2013年度 シラバス大学院

SY教育研究領域 (コンピュータシステム)

SYC01 MOS Device Modeling for VLSI Design

概要

 CMOS VLSI は今や電子機器の中心的存在あり、コンピュータの心臓部である。微細化が進むにつれて、MOSトランジスタの本質をより良く理解しておく必要がある。さらに、最近ではアナログ・RF (Radio Frequency)回路を含むミックスト・シグナルLSIが、民生機器、通信機器を中心に不可欠となっている。この授業では先端的なCMOS デバイスとそのモデルについて扱う。授業のはじめには、学部レベルの半導体デバイスの復習を行い、高速伝送の考え方に必須な分布定数回路モデルを紹介する。つづいて、教科書の2〜5章を中心に、より詳細なMOSトランジスタモデルについて理解し、ディープ・サブミクロン時代に不可欠な知識を習得する。最後にミックスト・シグナルLSIの実例など、いくつかのトピックを紹介する。

目的

この科目を履修した学生は、以下の項目などについて説明できることが期待される。
・半導体素子の基本概念の理解
・CMOS VLSI の設計の流れ
・回路設計に使うMOSトランジスタモデル
・VLSI技術の将来:微細化の動向、ミックスト・シグナルLSI

日程及びテーマ

1.半導体デバイス(学部)の復習
2.分布定数回路モデルと熱雑音の基礎
3.デバイス物理の基礎(2章):MOSキャパシタ、高電界効果を中心
4.MOSFETデバイス(3章)
5.CMOSデバイス設計(4章):スケーリング、しきい値ばらつきを中心
6.CMOS性能因子−その1(5章):基本回路、寄生成分の影響
7.CMOS性能因子−その2(5章):デバイスパラメータと遅延時間、先端デバイス
8.ミックスト・シグナルLSIの実例:CMOS RF回路など

教科書

1. Y. Taur and T. H. Ning, "Fundamentals of Modern VLSI Devices", Cambridge University Press, ISBN 0-521-55959-6 (paperback), (1998).

先修科目及び重要な関連科目

The following are recommended to take:
Under Graduate Courses:
・Electronic Circuits
・Semiconductor Devices
・VLSI Design
・VLSI Device Technology
Also
・"Logic Circuit Design" and "Advanced Logic Circuit Design" courses are related.

Graduate School Courses:
VLSI Design related courses are relevant to this course.

評価方法

期末に与えられたテーマでレポートを提出する。

参考(授業ホームーページ、図書など)

1. T. Tsividis, “Operation and Modeling of the MOS Transistors,” 2nd Edition, ISBN 0-07-065523-5, (1999).
2. 束原、「CMOS RF回路設計」、丸善、ISBN: 978-4-621-08203-4、2009年 11月発行


SYC02 デジタルVLSI設計論

概要

サブミクロン MOSトランジスターを用いたディジタルCMOS集積回路設計及解析。

目的

サブミクロンMOS素子の特性、接続線及びクロック配線のモデリング、送電線の特徴、ディジタルCMOS回路設計の最適化、回路消費電力の理解。

日程及びテーマ

1)最新のディジタルCMOS集積回路の性能、チップ面積、消費電力。
2)サブミクロン MOSトランジスターの理論及び特徴。
3)寄生容量、寄生抵抗、寄生インダクタンス。
4)MOS素子及び配線のスケーリング効果。
5)配線による遅延モデル。
6)配線の送電線モデル。
7)サブミクロン MOS CMOS インバーターの特性。
8)CMOS論理回路。
9)ロジカル エッフォート。
10)低消費電力CMOS論理回路。
11)クロック配線、システム同期問題、メタスタビリティー。

教科書

1)教科書:Digital Integrated Circuits, J.M. Rabaey, 2nd edition, Prentice Hall.
2)複数のレクチャー ハンドアウト

先修科目及び重要な関連科目

学部教育で、半導体工学、集積回路工学等のVLSI設計の科目を履修していることがのぞましい。

評価方法

試験、宿題。

参考(授業ホームーページ、図書など)


SYC03 Electronic Design Automation for Digital VLSI Implementation

概要

半導体微細化技術の向上に伴い,様々な機能を1つのチップに実現することが可
能です.こうしたチップには実に数千万から数十億規模のトランジスタ が集積
されています.

こうしたチップを実現するにあたって,設計を手で行うことは現実的に不可能で
す.このため,近年では,集積回路の設計は様々なCADツールによっ て支援され
ています.例えば,設計者がアプリケーションのモデルを記載すると,CADツー
ルはそのモデルから集積回路を自動で生成してくれます. こうしたことより,
集積回路の設計に従事する人は,設計支援技術の知識が必要不可欠です.

目的

本講義では,集積回路の設計支援技術のうち,下流設計に焦点をあて解説を行い
ます.ここでいう下流設計は,アプリケーションの構造モデルからレイ アウト
設計までをさします.

また,CADツールを用いた演習を行います.具体的には,ハードウェア記述言語
によるアプリケーションの構造モデルからレイアウト設計までを行っ てもらい
ます.

日程及びテーマ

1. はじめに
2. 演習の説明
3. Verilog HDL
4. 論理合成の概要
5. 論理最適化
6. 演習
7. 順序回路の最適化
8. BDD, 検証,テスト
9. 演習
10. レイアウト合成 1
11. レイアウト合成 2
12. レイアウト合成 3
13. 演習
14. 演習課題の発表
15. 演習課題の発表

教科書

先修科目及び重要な関連科目

Electronic Design Automation for System-level Design

評価方法

出席 (30%),演習課題 (70%)

参考(授業ホームーページ、図書など)


SYC04 Advanced Computer Organization

概要

As we build increasingly complex parallel systems (e.g. MCSoCs) one of the greatest challenges is in providing the interconnection networks that permit the system components to communicate.
These must be must be high-performance, scalable, simple to design with and power efficient. Network-on-chip architecture is an increasingly popular and feasible alternative to close the productivity gap and achieve the desired performance.

The first part of this course should help the student gain an appreciation of NoC approach.

The second part of this course is about advanced design and performance issues of
computers, such us Multicore Systems, design alternatives for I/O, direct memory access, etc.

目的

After taking this course a student will be able to:

- Describe what interconnections (NoC, buses) are and describe their role in
connecting the major system components.

- Identify several approaches to processor implementations.

- Describe how a system identifies different sources of interrupts and
exceptions.

日程及びテーマ

-On-chip communication organization ( architecture standards, models for performance exploration, synthesis of on-chip communication architectures, NoC topology, routing, switching strategies)

-Processor organization (Branch prediction, Trace cache, Value Prediction, Reliability and availability)

-Advanecd design issues in multicore-based embedded system

教科書

- Textbook: Multicore Systems-on-Chip: Practical Hardware/Software Design, 2nd Ed., By Abderazek Ben Abdallah,
ISBN-13: 978-9491216916,
Publisher: Springer, 2013

- Various other materials prepared by the instructor.

先修科目及び重要な関連科目

- Parallel Computer Architecture
- Computer Architecture and Organization

評価方法

There will be 3 homework assignments, term project, and a research paper.

For the research paper a student will be asked to investigate a current topic in processor architecture, write a short paper on the topic, and present his/her results to the class.

参考(授業ホームーページ、図書など)

Course web page and reference materials will be given during the first lecture.

For last year's course, please refer to:
http://web-ext.u-aizu.ac.jp/~benab/classes/aco/


SYC05 Embedded Real-Time Systems

概要

Embedded Real-time systems are systems that require timely responses to facilitate
their operation or they risk performance degradation or even total system failure.
This course introduces the various building blocks and underlying scientific and
engineering principles behind embedded real-time systems. It covers the integrated
hardware and software aspects of embedded processor architectures, along with
advanced topics such as real-time, resource and memory management, and RTOS
scheduling.

目的

1. Learn advanced issues about embedded real-time system design and scheduling.
2. Learn how to program with real-time embedded architecture.
3. Learn and apply real-time principles that are used to drive critical embedded
systems.

日程及びテーマ

Topics covered are:
-Embedded architectures (building up to modern embedded processors);
- Interaction with devices (buses, memory architectures, device drivers);
- Concurrency (software and hardware interrupts, timers);
- Real-time principles (multi-tasking, scheduling, synchronization);
- Implementation trade-offs,
- Profiling and code optimization (for performance and memory);
- Embedded software (exception handling, loading, mode-switching,programming embedded systems).

教科書

Real-Time Embedded Components and Systems, By Sam Siewert
Hardcover: 384 pages
Publisher: Charles River Media; 1 edition (June 27, 2006)
Language: English
ISBN-10: 1584504684
ISBN-13: 978-1584504689

先修科目及び重要な関連科目

Knowledge about Embedded Systems, Computer Architecture/organization.

評価方法

There will be 3 homework assignments, term project, and a research paper.
For the research paper a student will be asked to investigate a current topic in real time systems, write a short paper on the topic, and present his/her results to the class.
For the term project a student (or a group) will be asked to work on a term project to
design a microprocessor-based embedded real-time system.

参考(授業ホームーページ、図書など)

For previous year's course, please refer to this site: http://web-ext.u-aizu.ac.jp/~benab/classes/erts/


SYC06 Advanced Computer Architectur

概要

In this course, many topics, Pipelining with out-order execution, memory hierachy, instruction/data level parallelism, and so on, which are adopted in the advanced computer architecture, such as high-performance general purpose computers, GPGPUs, embedded processors, are explained.

目的

In this course, our students understand the computer architecture which keeps evolving and obtain the base for more advanced development of it. They can use the knowledge obtained in this lecture to research at their Lab.

日程及びテーマ

1-2: Pipelining: Basic and Intermediate Concepts
3-4: Fundamentals of Quantitative Design and Analysis
5-6: Memory Hierarchy Design
7-8: Instruction-Level Parallelism and Its Exploitation
9-10: Data-Level Parallelism in Vector, SIMD, and GPU Architectures
11- : Other topics

教科書

Computer Architecture, 5th Edition: A Quantitative Approach by John L. Hennessy & David A. Patterson

先修科目及び重要な関連科目

None

評価方法

Reports and tests

参考(授業ホームーページ、図書など)

CQ出版社 マイクロプロセッサ・アーキテクチャ入門 中森 章 著


SYC07 Advanced Operating Systems

概要

Advanced Operating Systems is one of core courses in the graduate program at the University of Aizu, to be offered from the 3rd quarter of AY2012

目的

This is one of course courses in the graduate program in Computer Science and Engineering at the University of Aizu. The course covers from basic design concepts of the modern operating systems to the case studies in the actual implementations of the operating systems to see how they utilize and manage advanced hardware technologies for newly emerging applications. Topics covered overlap with those in the undergraduate operating systems course. However, it is expected that students understand each topic in more detail and at a higher standard.

In the first few weeks, basic concepts of OSs will be reviewed. During this period, students will decide the topics for their reports. In the next few weeks, advanced topics (such as distributed systems) and case studies will be covered.

日程及びテーマ

Week Topics Remarks
1 Course Introduction
Multiprocessors Textbook: Section 8.1
2 Multicomputers Textbook: Section 8.2
3 Virtualization Textbook: Section 8.3
4 Distributed Systems Textbook: Section 8.4
5 Case Study: Linux Overview and Processes Textbook: Sections 10.1 to 10.3
6 Case Study: Linux Memory Management,
I/O, File System and Security Textbook: Sections 10.4 to 10.8
7 Advanced Topics and Case Studies TBD
8 Advanced Topics and Case Studies TBD
9 Final exam and Project Presentations TBD

教科書

Modern Operating Systems, International Edition, 3/E , by Andrew S. Tanenbaum, ISBN-10: 0138134596, ISBN-13:9780138134594, Prentice Hall.

Academic papers and articles from technical magazines will also be used as the reading materials.

先修科目及び重要な関連科目

B or better grades for the Computer Architecture and Operating Systems courses in undergraduate program (or equivalent).
C programming proficiency.
Understanding and familiarity to *nix concepts and operations.

評価方法

The final course grade will be a combination of written exam(s), term paper (or project) and class participation. Letter grades will follow the University Standard (A >= 80, B >= 65, C >= 50).

参考(授業ホームーページ、図書など)

http://web-ext.u-aizu.ac.jp/~hitoshi/COURSES/AOS/


SYA01 アプリケーション指向並列アルゴリズム及び構造論

概要

目的

日程及びテーマ

教科書

先修科目及び重要な関連科目

評価方法

参考(授業ホームーページ、図書など)


SYA02 リコンフィギャラブル・コンピューティング

概要

Reconfigurable Computing (RC) is some mechanisms with highly flexible computing fabrics such as PLDs/FPGAs (Programmable Logic Devices/Field Programmable Gate Arrays), in order to realize low-cost and high-performance custom solvers suitable for given problems. The principal difference compared to using ordinary microprocessors is the ability to make substantial changes to the datapath itself in addition to the control flow. From this point of view, RC is often called "Field-Programmable Custom Computing Machines (FCCMs)." To realize RC, we have to provide a software or CAD (Computer Aided Design) environment as well as hardware equipment utilizing FPGAs. In this course, the students will learn an overview of the RC concept first, and then hardware and software technologies needed to realize RC.

目的

・To understand the RC concept
・To learn PLDs/FPGAs
・To learn CAD tools and their algorithms needed to RC
・To know RC examples and applications

日程及びテーマ

-Programmable Logic Devices (PLDs): structures and variations based on the device technologies

-CAD environment and algorithms for PLDs: Technology mapping, place & route, logic partitioning

-High-level synthesis and algorithms: mapping software into hardware

-RC Architectures

-Parallel processing in RC

-Reconfigurable computing: Case study (1)

-Reconfigurable computing: Case study (2)

-Dynamic reconfigurable devices and parallel processing utilizing them

-Related device technologies: Course-grain FPGAs and Configurable Processors

-Report and presentation from the students

教科書

Original handouts and materials will be distributed via WEB site.
The detail information will be announced at the first lecture.

先修科目及び重要な関連科目

Basic knowledge of the following fields is needed;
Logic Circuits and Computer Architecture

評価方法

Report & Presentation

参考(授業ホームーページ、図書など)

-Scott Hauck, Andre DeHon Edt., “Reconfigurable Computing: The Theory and Practice of FPGA-based Computation,” Publisher: Horgan Kaufmann Publishers, 2007; ISBN: 978-0-12-370522-8

-Maya B. Gokhale, Paul S. Graham "Reconfigurable Computing : Accelerating Computation with Field-Programmable Gate Arrays" Publisher: Springer, 2005; ISBN: 0387261052

-Patrick Lysaght, Wolfgang Rosenstiel Edt., "New Algorithms, Architectures and Applications for Reconfigurable Computing", Publisher: Springer, 2005; ISBN: 1402031270

-末吉敏則,天野英晴 編, "リコンフィギャラブルシステム," オーム社, 2005; ISBN:427420071X (in Japanese)

-Wayne Wolf, "FPGA-Based System Design" Publisher: Prentice Hall, 2004; ISBN:0-13-142461-0


SYA03 Special Topics in Computer Architecture

概要

This is a project-oriented course to learn and experiments in design and implementation techniques of modern computer systems
(Formerly offered as "Advanced Computer
Architecture" by 2011).

目的

This is a project-oriented course to learn and experiments in design and implementation techniques of modern computer systems.

日程及びテーマ

In the first few weeks, the related topics will be reviewed using reading materials such as journal/conference papers and magazine articles. Possible topics and tools that can be used for the projects will be introduced during this period. For the rest of the quarter, in addition to the literature study, students will report the progress of their project. Some tools can be used on the workstation provided by the school, but some others will require root access (privileged). Since this is a graduate course, you should have access to the computer in your lab for such tools. The instructor will assist student who have difficulties in using such tools.

教科書

Selected journal and conference papers and magazine articles will be used. No textbook required. However, the following book is recommended as a reference:
COMPUTER ARCHITECTURE, A Quantitative Approach, Fourth Edition.
ISBN-13: 978-0-12-370490-0, ISBN-10: 0-12-370490-1, MORGAN KAUFFMAN .

先修科目及び重要な関連科目

- Undergraduate Computer Architecture,
and Operating Systems (B or better).

- Proficiency in *nix and C language.


評価方法

Grading Scheme and Policies
Project report (60%) + Presentation (20%) + Class Participation (20%) (tentative).


参考(授業ホームーページ、図書など)

http://www.u-aizu.ac.jp/~hitoshi/COURSES/SCA/


SYA04 オプトエレクトロニクスコンピュータと通信デバイス

概要

目的

日程及びテーマ

教科書

先修科目及び重要な関連科目

評価方法

参考(授業ホームーページ、図書など)


SYA05 アナログVLSI設計論

概要

MOSとbipolarトランジスター アナログ集積回路設計及び解析方法を学びます。サーキット理論、小信号MOS/BJT トランジスターモデル、一個及び数個のトランジスターからなる基本増幅回路の設計及び解析、オペアンプ回路設計及び解析。

目的

線形及び低周波数Bipolar/MOSトランジスター アナログ回路設計方法及び解析の理解。

日程及びテーマ

1)電気回路理論
2)Bipolarトランジスター、MOSトランジスターの動作領域
3)Bipolar/MOSトランジスター小信号モデル
4)アナログ回路DCバイアス設定
5)一段層アナログ アンプ設計及び解析
6)マルチ層アナログ アンプ設計及び解析
7)差動アンプ
8)オペアンプ設計及び解析

教科書

1)教科書:"Analysis and Design of Analog Integrated Circuits", Paul R. Gray and Robert G. Meyer, third edition, John Wiley Publishers.
2)複数のレクチャー ハンドアウト

先修科目及び重要な関連科目

学部教育で、半導体工学、集積回路工学等のVLSI設計,電気回路、電子回路の科目を履修していることがのぞましい。

評価方法

試験、宿題。

参考(授業ホームーページ、図書など)


SYA06 コンピュータ及び通信システム用デバイス特論

概要

The course considers physics of classical and heterostructure quantum
semiconductor devices for computer and communication systems.

目的

日程及びテーマ

1. Electronic structure of semiconductor materials
2. Transport of carriers and optoelectronic properties
3. p-n junctions and devices based on them
4. Semiconductor heterostructures and heterostructure devices
5. Optoelectronic devices
6. Quantum electronics devices
7. Tunneling semiconductor devices
8. Basic semiconductor technology

The course consists of lectures (1 per week) and discussion seminars (1 per
week).
During the seminars students should submit weekly homework reports.
The course work report should be prepared at the end of the course (about 4
pages).

教科書

1. Kwok K.Ng “Complete Guide to Semiconductor Devices”
2. John G. Webster (editor) “Wiley Encyclopedia of Electrical and
Electronics Engineering” vol. 8

先修科目及び重要な関連科目

- Semiconductor Devices (NS4)
- Quantum Mechanics (NS3)
- Introduction to Optoelectronics (NS7)

評価方法

Grading is based on the evaluation of weekly homework assignment reports
(30%) and course report (70%).

参考(授業ホームーページ、図書など)


SYA07 デバイスモデリング特論

概要

Students will study basic principles of semiconductor device modeling
techniques, study the software source code based on Ensemble Monte Carlo
particle simulation method (some programming work on SUN Workstation is
necessary).
Students will modify and run the software and obtain different
characteristics of semiconductor GaAs n-i-n diode.

目的

Ensemble Monte Carlo particle simulation method and its application to
semiconductor device modeling.
Understanding of different aspects and phenomena of transient electron
transport in semiconductor diode.
Graphical visualization of the obtained results.

日程及びテーマ

Lectures and seminars (in computer class).

教科書

- Tomizawa Kazutaka, "Numerical Simulation of Submicron Semiconductor
Devices"

先修科目及び重要な関連科目

- Electric circuits, Advanced electric circuits,
- Semiconductor devices (NS4).
- Unix, Fortran, C, xmgrace plotting software

評価方法

Course report (100%) with plots obtained during simulations.

参考(授業ホームーページ、図書など)


SYA08 Electronic Design Automation for System-level Design

概要

半導体微細化技術の向上に伴い,様々な機能を1つのチップに実現することが可能です.こうしたチップには実に数千万から数十億規模のトランジスタが集積されています.

こうしたチップを実現するにあたって,設計を手で行うことは現実的に不可能です.このため,近年では,集積回路の設計は様々なCADツールによって支援されています.例えば,設計者がアプリケーションのモデルを記載すると,CADツールはそのモデルから集積回路を自動で生成してくれます.こうしたことより,集積回路の設計に従事する人は,設計支援技術の知識が必要不可欠です.

目的

本講義では,集積回路の設計支援技術のうち,上流設計に焦点をあて解説を行います.ここでいう上流設計は,言語で記載されたアプリケーションから構造モデルまでの合成と検証を指します.

また,CADツールを用いた演習を行います.

日程及びテーマ

1. はじめに
2. 演習課題の説明
3. トランザクションレベル設計と検証のための言語
4. SystemC
5. TLMドリブン設計・検証方法論
6. 演習
7. 高位合成の基礎
8. 高位合成で用いられるアルゴリズム
9. CtoS
10. 演習
11. 検証の基礎
12. TLMドリブン検証フロー
13. 演習
14. 演習課題の発表
15. 演習課題の発表

演習に関しては、各学生、簡単な信号処理アルゴリズムをSystemCを用いてモデリングし、
Cadence社のC-to-Silicon compilerにて構造モデルを合成、Incisiveシミュレータにて検証を行い、
性能、回路面積などの面で評価を行い、最適化に関する考察を行ってもらいます.

教科書

B. Bailey et al., "TLM-driven Design and Verification Methodology", Cadence

先修科目及び重要な関連科目

Electronic Design Automation for Digital VLSI Implementation

評価方法

出席 30%
演習 70%

参考(授業ホームーページ、図書など)


SYA09 Multicore Computing

概要

The era of Moore's law induced performance gains of sequential programs is almost over. As hardware designers turn to multicore CPUs and GPUs, software developers must embrace parallel programming to increase performance.

The goal of this course is to teach how to program these complex multicore systems, study the implications of software and hardware, and develop parallel programming and multi-thread software design capabilities on multicore platforms.

目的

This course will provide a foundation in:

(1) Identify best opportunities to use parallelism
(2) Share data safely between multiple threads
(3) Write applications using POSIX or Windows threads
(4) Hand-code synchronization and sharing
(5) Take advantage of automatic parallelization and OpenMP
(6) Apply new approaches to writing correct, fast, and scalable parallel code

日程及びテーマ

1. Hardware, Processes, and Threads
2. Coding for Performance
3. Memory hierarchy and caching
4. Synchronization and Data Sharing
5. Using POSIX Threads
6. Windows Threading
7. Using Automatic Parallelization and OpenMP
8. Hand-Coded Synchronization and Sharing
9. Scaling with Multicore Processors
10. Advanced Parallelization Technologies

教科書

Multicore Application Programming: For Windows, Linux, and OracleR Solaris
By: Darryl Gove
Publisher: Addison-Wesley Professional
Print ISBN-10: 0-321-71137-8
Web ISBN-13: 978-0-321-71144-1

先修科目及び重要な関連科目

Knowledge about C/C++ programming, Operating System, and Parallel Processing.

評価方法

There will be 3 homework assignments, term project, and a research paper.

For the research paper a student will be asked to investigate a current topic in processor architecture, write a short paper on the topic, and present his/her results to the class.

参考(授業ホームーページ、図書など)

Course web page and reference materials will be given during the first lecture.

For last year's course, please refer to:
http://web-ext.u-aizu.ac.jp/~benab/classes/multicore/


SYA10 組み込みソフトウェア工学基礎

概要

近年のあらゆる装置には見えない形で組込計算機が実装され、知的な装置制御、安全確保、柔軟な人間との対話機能など、装置の高性能化に欠かせない役割を果たしている。この装置組み込みの計算機システムの開発に必要な理論と実装技術の概要を学ぶ。
*授業は日本語で行います。
履修は設備の都合で18名までとします。これを超えた場合、担当教員の判断で履修を制限させてもらうことがあります。

目的

日程及びテーマ

・要求仕様分析・ソフトウェア設計技法(潟泣lサス北日本セミコンダクタ)
・リアルタイムOS概要(潟泣lサス北日本セミコンダクタ)
・リアルタイムシステムのプログラミング技法(潟泣lサス北日本セミコンダクタ)
・イベントドリブンプログラミング(潟泣lサス北日本セミコンダクタ)
・プロジェクトマネージメントと品質管理(潟泣lサス北日本セミコンダクタ)
・最近の組込みシステムの話題(齋藤)

教科書

ハンドアウト

先修科目及び重要な関連科目

SYA11組み込みソフトウェア工学演習

評価方法

二つのレポートにより評価します
1.リアルタイムシステム関連 80%
2.最近の組込みシステム関連 20%

参考(授業ホームーページ、図書など)

組み込みシステムおよび形式記述・検証に関わる資料
参考図書として下記を推奨いたします。
『図解μITRONによる組込みシステム入門』 価格2,800円(税別) 森北出版社


SYA11 組み込みソフトウェア工学演習

概要

限られたCPUパフォ-マンス、メモリ容量で高速なレスポンスが必要とされる組込みシステムでは、リアルタイムカーネルというオーバーヘッドの小さいOS が使われている。
 本科目では、演習を通し、リアルタイムカーネルを用いたソフトウェア開発の具体的手法を学ぶ。
 演習の前半ではH8マイコンを用い、後半ではFPGAを用いてソフトウェア開発を行う。

目的

本科目は,国内で最も多くのシェアを有するμITRON仕様リアルタイムカーネルについて、サービスコールや内部動作をプログラミング実習で体験的に理解し、リアルタイムプログラミングのスタイルを修得することを目的とする。
ターゲットとしてH8マイコンとFPGAのソフトコアCPUに対するプログラムを行うことによって、最終的に少ないリソースで構成された組込みシステムにおいて、ターゲットが変わった場合でも効率良いソフトウェア開発を行うことができるようになる。

日程及びテーマ

1.C言語による組み込みアプリケーション開発環境の構築
2.リアルタイムオペレーティングシステム
3.タスクの生成と起動
4.周期起床
5.タスクのスケジューリングについて
6.メッセージボックス
7.イベントフラグ
8.割込み
9.セマフォ
10.リアルタイムプログラミング手法について
11.FPGAに対するNiosII(CPUコア)システムの実装
12.NiosIIシステムにおける組込みアプリケーションの構築

教科書

1. μITRON4.0仕様 Ver.4.02.00 (社) トロン協会 ITRON仕様検討グループ
  坂村健 監修/高田広章 編
2. その他、配布テキスト

先修科目及び重要な関連科目

1.FPGAに関する講義(実習)を受けていない方は、事前にシステム構築に関する簡単な知識を習得しておいてください。
2.講義に必要な資料は当日配布します。
3.課題および提出方法は講義最終日にお知らせします。
4.一コマの履修時間は基本的に通常の履修時間に従いますが、進捗状況により多少変動することがあります。

評価方法

1.出席(50%)
2.レポートもしくは演習問題の進捗状況(50%)

参考(授業ホームーページ、図書など)


SYA12 Best Practices in Embedded Software Development

概要

自動車や携帯電話に代表される組込みシステムは計算資源・配置スペース・熱容量など厳しい制約の中でソフトウェアとハードウェアを高度に組み合わせて性能を最大化したシステムである。システム構築には、ソフトウェアとハードウェアの個別の知識を高度に融合させ、システム全体を見渡す能力が必要となる。本コースでは、簡易組込みシステムを自ら構築することで、ハードウェアアーキテクチャからアプリケーション層まで組込みシステムの全体を俯瞰する実践的なモデル(best
practice)を提示する。組込みシステムの脆弱性とその評価についても論じる。
具体的には、H8マイコンのアーキテクチャとシステム構成を詳説し、自作したマイコンボードに搭載されたI/O(LED,DIP-SWやLCD)をH8マニュアルからの情報だけで動作させる。次に、HTTPサーバを構築して組込みシステムを体験的に理解する。その後組込みHTTPサーバの脆弱性をつく攻撃を行ってシステムを評価する。さらに、GPS素子の組み込みのための回路設計、回路制作、プログラミングを行う。
*授業はすべて日本語で行う。またマニュアルを読み解く上で日本語のリテラシーが必要となる。
下記に記す先修科目/関連科目における基本的知識を得た上で履修すること。
履修は設備の都合上8名までとします。これを超えた場合、担当教員の判断で履修を制限することがあります。

目的

組込みシステムの開発から評価までの勘所を押さえ、最も基本的な組込みシステムを自力で構築できる力を養うことを目的とする。
→IC(CPU、RAMなど)のマニュアルとコンパイラの仕様からだけで、組み込みシステム用プログラミングができる
→各種I/Oデバイス(LED,DIP-SW,LCDやGPS)の勘所を理解したうえで、回路設計からプログラミングまで開発を行うことができる
→組み込みシステムの基本的脆弱性を理解し、システム評価ができる

日程及びテーマ

4日間集中講義形式をとる。
Day 1:
 1.H8マイコン基礎
 2.基板作成(1)
   ・はんだ付けの基礎
   ・部品の名称と熱耐性
 3.基板作成(2)
   ・はんだ付け順の検討と実施
 4.基板作成(3)
   ・基板仕上げ
   ・動作確認
 5.I/Oアクセス基礎1(LED)
   ・出力ポートをたたくために必要な情報とは
   ・H8マニュアルの見方
   ・LEDアクセスプログラミング
Day 2:
 6.I/Oアクセス基礎2(DIP-SW)
   ・入力ポートからの情報を受け取るためには
   ・DIP-SWアクセスプログラミング
 7.I/Oアクセス応用1(LCD)
   ・LCDアクセスシーケンス理解
 8.I/Oアクセス応用2(LCD)
   ・LCDアクセスプログラミング
 9.GPS素子理解と回路設計
   ・GPS素子理解
   ・シリアル通信理解
   ・3端子レギュレータ理解
   ・回路図作成
10.H8マイコン基盤にGPS用回路を追加制作
Day 3:
11.GPSモニタソフト開発(1)
   ・シリアル通信のハンドシェイク
12.GPSモニタソフト開発(2)
   ・GPS情報(時刻、現在座標)の取得と表示
Day 4:
13.HTTPサーバソフト開発
14.HTTPサーバソフトの脆弱性評価
   ・バッファオーバーフローによる自作コード実行
15.まとめ

教科書

授業ごとに配布する。
ノートPC(Windows)を必要とする。
教材としてマイコンボードを使用する。

先修科目及び重要な関連科目

C言語、OS、プロセッサアーキテクチャに関する基本的な知識を有することが望ましい。
先修科目/関連科目
[学部授業]
 P2 プログラミングC
 F5 コンピュータアーキテクチャ論
 F6 オペレーティングシステム論
 S1 コンピュータ構築設計論
 S2 電子回路
 S3 電子回路特論
 S4 組み込みシステム
 N1 通信ネットワーク I
 N2 通信ネットワーク II
 N3 ネットワーク構築学
 SE2 ウェブプログラミング
[大学院授業]
 SYA10 組み込みソフトウェア工学基礎
 SYA11 組み込みソフトウェア工学演習

評価方法

授業中の実習  20%
毎週のレポート  40%
最終レポート   40%
出席が規定の条件を満たさない者は評価しない。 試験は実施しない。

参考(授業ホームーページ、図書など)

H8/3069 F-ZTATTM ハードウェアマニュアル 文書番号:ADJ-602-277A
H8/300H シリーズ プログラミングマニュアル 文書番号:RJJ09B0141-0400O

オフィスアワー:授業終了後


SYA13 安心・安全な組み込みシステムの基礎と実践

概要

The developers for embedded systems with knowledge on safety and quality is very expected in fields of electrical appliance, the automobiles, cellular phones, and the factory automation, with in the rapid increase of the development requirement, the frequent occurrence of the accidents due to the failures and bugs of the systems, and demand for global business.

This course introduces basic knowledge of the embedded system development; experience embedded systems by the demonstration and exercises. In addition, safety and quality problems in the development of the embedded systems will also be discussed. Lectures including practicing content given by engineers who have the development experience of safety related embedded systems, will also be conducted.

The course is related with the carrier development program for foreign students from Asia, and this class will be conducted basically in Japanese. Foreign students in the mentioned program are required to attend the course.

目的

The students will study basic knowledge of embedded system structure and their safety and quality aspects, and experience the embedded systems through demonstration and exercises.

日程及びテーマ

1.Outline of embedded systems, and safety problems of embedded systems
2.Hardware of embedded systems and their safety problems (1)
3.Hardware of embedded systems and their safety problems (2)
4.Software of embedded systems and their safety problems (1)
5.Software of embedded systems and their safety problems (1)
6.Development of embedded systems (1)
7.Development of embedded systems (2)
8.Presentation and Examination

教科書

Handout will be delivered to students in the classes

先修科目及び重要な関連科目

None

評価方法

・Quiz and question in classes 10%
・Exercise work, project accomplishment and presentation 50%
・Homework in every week 10%
・Final examination 30%
・Attendance to the classes are required. Those who couldn’t attend enough lectures and exercises will not be assessed.

参考(授業ホームーページ、図書など)

Programming Textbook for Embedded Systems