2018年度工学院大学 情報学部システム数理学科
△応用情報システム(k)[0343]
2単位 高村 明裕 非常勤講師
- <学位授与の方針>
| 1. 基礎知識の習得 | ○ | 2. 専門分野知識の習得 | ◎ | 3. 汎用的問題解決技能 | ○ | 4. 道徳的態度と社会性 |
- <授業のねらい>
- 日本で作られる多くの製品にはマイクロコンピュータとそのソフトウェアが組み込まれ、製品の価値向上の一端を担っている。しかし、組み込みシステムのソフトウェア開発はPC、スマートフォン、サーバ上のプログラム開発より制限が厳しいことが多い。
そこで、本講義では組み込みシステムのソフト開発において、制限と、それに対応するための方法を学び、実践で活用できるように知識を身につける。
- <受講にあたっての前提条件>
- ソフトウェアとハードウェアの基礎的な知識が必要である。さらに、ソフトウェアとハードウェアが、どのような原理で動いているかを自分の専門外であっても探求していく意欲を持っていることが求められる。
これは、組み込みソフトの開発中に何らか問題が起きることが良くあるが、その問題を解決していくために必要だからである。
- <具体的な到達目標>
- ・組み込みソフトウェアエンジニアが実践で求められる知識を習得する
・ソフトウェア、ハードウェアの仕組みを理解して、何か問題が起きたときに問題を掘り下げて解決するために必要な知識を習得する
- <授業計画及び準備学習>
- 1. ガイダンス
まず講義のゴールと対象とする組み込みシステムとは何かを説明する 次に組み込みは普通と何が違い、その違いによってどのような知識が必要になるかを説明する 事前学習:ソフトウェアに関する科目を復習しておくこと
2. 組み込みソフト開発フロー、開発環境 組み込みにおけるソフト開発フローの概略とソフト開発に使用する環境とを説明する 事前学習:事前配布資料により予習を必ず行うこと
3. 組み込みソフトの動作環境 組み込みにおけるソフトスタックの例を開発規模に応じていくつか説明する。 その上で、使用されるOSの種類とそれぞれの特徴、デバイスドライバ、 ミドルウェア、アプリケーションについて説明する。 事前学習:事前配布資料により予習を必ず行うこと
4. 組み込み製品のデータ処理フローと構成 組み込み製品のデータ処理フローと、処理フローに現れる構成部品を説明し、 組み込み製品の中で何がおこなわれているかを想像できるようにする 事前学習:事前配布資料により予習を必ず行うこと
5. キャッシュの目的としくみ 多くのCPUが備える高速化機構であるキャッシュの目的としくみを説明する また、期待するほど高速にならない場合の原因をしくみに立ち戻って説明し、 調査と対応方法について説明する。 事前学習:事前配布資料により予習を必ず行うこと
6. キャッシュによる問題と対応 キャッシュはプログラムを高速化する利点がある一方で 他のCPU、ハードウェアとの協調動作の際に問題が起きることがある。 これらの問題について、原因と対応方法について説明する。 事前学習:事前配布資料により予習を必ず行うこと
7. アドレス変換 アドレス変換は、ソフトウェアから見えるアドレス空間のサイズ制限の回避、 記憶保護、ハードウェアでの高速化等のためにソフトウェアから見えるアドレスから 実際のシステム上のアドレスへ変換することである。 これらのアドレス変換の目的、しくみとソフトウェアの実装上注意することを説明する。 事前学習:事前配布資料により予習を必ず行うこと
8. 割り込み処理 割り込み処理とは、CPU内外のイベントをきっかけに現在行っている処理を中断し 別の処理に切り替える事である。 割り込み処理を活用する事例と、ソフトウェアの実装上注意することを説明する。 事前学習:事前配布資料により予習を必ず行うこと
9. シリアライズ、排他制御(排他処理) ここで説明するシリアライズとは、平行して行っている処理の間でやりとりする際に、 順序関係を保証することである。シリアライズ処理が必要になる事例と、注意することを説明する。 排他制御とは、複数の処理が一つの共有資源を利用する際に、 共有資源を利用する処理を一つに制限し、他の処理が利用できないようにする事である。 排他制御が必要になる事例と、注意することを説明する。 事前学習:事前配布資料により予習を必ず行うこと
10. ハードウェアとその制御 組み込みシステムにはソフトウェアが動作するCPUの他に、入出力処理や 処理の高速化の為のハードウェアが搭載されていることがある。 このハードウェアについて、目的と動作、制御方法について説明する。 事前学習:事前配布資料により予習を必ず行うこと
11. ハードウェアがソフトウェアに与える影響 組み込みシステムの中でハードウェアは大事な要素である一方、ハードウェア のバグの回避、修正の為の処理がソフトウェアで実現しなければならなかったり、 ソフトウェアが動作するCPUに加えてハードウェアがあるために、ソフトウェアに処理速度の面で影響が出た りする。このようにハードウェアがソフトウェアに与える影響と、ソフトウェア で必要な対応を説明する。 また、製品開発作業の中でハードウェア開発者との共同作業が必要になる。こ の共同作業円滑に行うための方法を説明する。 事前学習:事前配布資料により予習を必ず行うこと
12. ソフトウェアに要求される特性 リアルタイム性 組み込みシステムでは、決められた時間内に要求された処理を行うリアルタイ ム性が求められることがある。リアルタイム性を実現するシステムの適用分野と 特徴、決められた時間内に処理を行うためのスケジューリングについて説明する。 事前学習:事前配布資料により予習を必ず行うこと
13. 組み込みソフトのトラブルシューティング 組み込みソフトの開発をしていると、起こりえないと思う様な問題に当たってしまうことがある。 このような問題の例としては、ツールやライブラリのバグ、ハードウェアや他のCPUでの処理のバグ、 キャッシュの特性等がある。このような事例をとりあげ、問題解決のために行うべきことを説明する。 事前学習:事前配布資料により予習を必ず行うこと
14. 全体の振り返りと発展 これまでの講義の振り返りを行い、理解の足りていない項目について説明を補足する 準備学習:前回までのすべての復習と課題の再確認
- <成績評価方法>
- 学期末の試験で60%,授業中課題等にて(40%)を評価し、A+,A,B,C,D,Fの6段階評価にてD以上を合格とする。
- <教科書>
- 配布する講義資料をテキストとして用いる
- <参考書>
- 講義の中で適宜指定する
- <オフィスアワー>
- 講義終了後に講義室または23階共用スペースにて
- <学生へのメッセージ>
- この科目はハードウェアを前提としたソフトウェア技術をマスターする
ゲームソフト、自動車自動運転、ロボット制御等、ハードに絡むソフトウェアの分野を志望する学生に強くお勧めする
ナンバリングはこちら
このページの著作権は学校法人工学院大学が有しています。
Copyright(c)2018 Kogakuin University. All Rights Reserved. |
|