2019年度工学院大学 情報学部システム数理学科

応用情報システム(k)[0343]

試験情報を見る] [授業を振り返ってのコメント(学内限定)

2単位
高村 明裕 非常勤講師  
最終更新日 : 2019/11/12

<学位授与の方針>
1. 基礎知識の習得
2. 専門分野知識の習得
3. 汎用的問題解決技能
4. 道徳的態度と社会性

<授業のねらい>
日本で作られる多くの製品にはマイクロコンピュータとそのソフトウェアが組み込まれ、製品の価値向上の一端を担っている。しかし、組み込みシステムのソフトウェア開発はPC、スマートフォン、サーバ上のプログラム開発より制限が厳しいことが多い。
そこで、本講義では組み込みシステムのソフト開発において、制限と、それに対応するための方法を学び、実践で活用できるように知識を身につける。
演習で実際にソフトを書いたり、動作させてみたりすることで知識を身につける。

<受講にあたっての前提条件>
ソフトウェアとハードウェアの基礎的な知識が必要である。さらに、ソフトウェアとハードウェアが、どのような原理で動いているかを自分の専門外であっても探求していく意欲を持っていることが求められる。
これは、組み込みソフトの開発中に何らか問題が起きることが良くあるが、その問題を解決していくために必要だからである。

<具体的な到達目標>
・組み込みソフトウェアエンジニアが実践で求められる知識を習得する
・ソフトウェア、ハードウェアの仕組みを理解して、何か問題が起きたときに問題を掘り下げて解決するために必要な知識を習得する

<授業計画及び準備学習>
1. ガイダンス
まず講義のゴールと対象とする組み込みシステムとは何かを説明する
次に組み込みは普通と何が違い、その違いによってどのような知識が必要になるかを説明する
 事前学習:ソフトウェアに関する科目を復習しておくこと

2. 組み込みソフト開発フロー、開発環境
組み込みにおけるソフト開発フローの概略とソフト開発に使用する環境とを説明する
 事前学習:事前配布資料により予習を必ず行うこと

3. 組み込みソフト検証
組み込みソフトの品質を高くするために必要となる検証の概要を説明する
 また、演習でテストプランに合わせてテストコーディングして、バグの有無を確認する
 事前学習:事前配布資料により予習を必ず行うこと

4. 組み込みソフトの動作環境
組み込みにおけるソフトスタックの例を開発規模に応じていくつか説明する。
その上で、使用されるOSの種類とそれぞれの特徴、デバイスドライバ、
 ミドルウェア、アプリケーションについて説明する。
 事前学習:事前配布資料により予習を必ず行うこと

5. 組み込みソフトの動作環境 演習
 データの2進数表現、ビット幅と数の範囲、エンディアンの変換について、実際にプログラムを書いて確認する
 事前学習:事前配布資料により予習を必ず行うこと

6. 組み込み製品のデータ処理フローと構成
組み込み製品のデータ処理フローと、処理フローに現れる構成部品を説明し、
組み込み製品の中で何がおこなわれているかを想像できるようにする
 事前学習:事前配布資料により予習を必ず行うこと

7. キャッシュの目的としくみ
 多くのCPUが備える高速化機構であるキャッシュの目的としくみを説明する
また、期待するほど高速にならない場合の原因をしくみに立ち戻って説明し、
調査と対応方法について説明する。
 事前学習:事前配布資料により予習を必ず行うこと

8. キャッシュによる問題と対応
キャッシュはプログラムを高速化する利点がある一方で
他のCPU、ハードウェアとの協調動作の際に問題が起きることがある。
これらの問題について、原因と対応方法について説明する。
 事前学習:事前配布資料により予習を必ず行うこと

9. キャッシュの演習
 キャッシュがあることによる速度向上効果の確認と他のCPU、ハードウェアとの協調動作
の際に必要となるキャッシュ操作について演習を行う
 事前学習:事前配布資料により予習を必ず行うこと

10. ハードウェアの制御と割り込み処理
 組み込みシステムにはソフトウェアが動作するCPUの他に、入出力処理や
処理の高速化の為のハードウェアが搭載されていることがある。
 このハードウェアについて、目的と動作、制御方法について説明する。
一方、割り込み処理とはCPU内外のイベントをきっかけに現在行っている処理を中断し
別の処理に切り替える事である。これを用いてハードウェアを制御する方法、ソフトウェアの実装上注意することを説明する。
 事前学習:事前配布資料により予習を必ず行うこと

11. ハードウェアの制御と割り込み処理の演習
割り込みを使用することで、CPUの負荷を下げることができることを確認する
さらに、ハードウェアとの協調動作に割り込み処理を適用する
 事前学習:事前配布資料により予習を必ず行うこと

12. アドレス変換
アドレス変換は、ソフトウェアから見えるアドレス空間のサイズ制限の回避、
記憶保護、ハードウェアでの高速化等のためにソフトウェアから見えるアドレスから
実際のシステム上のアドレスへ変換することである。
これらのアドレス変換の目的、しくみとソフトウェアの実装上注意することを説明する。
 事前学習:事前配布資料により予習を必ず行うこと

13. シリアライズ、排他制御(排他処理)
ここで説明するシリアライズとは、平行して行っている処理の間でやりとりする際に、
順序関係を保証することである。シリアライズ処理が必要になる事例と、注意することを説明する。
排他制御とは、複数の処理が一つの共有資源を利用する際に、
共有資源を利用する処理を一つに制限し、他の処理が利用できないようにする事である。
排他制御が必要になる事例と、注意することを説明する。
 事前学習:事前配布資料により予習を必ず行うこと

14. 全体の振り返りと発展
 これまでの講義の振り返りを行い、理解の足りていない項目について説明を補足する
 準備学習:前回までのすべての復習と課題の再確認

<成績評価方法>
学期末の試験で70%,授業中課題等にて30%を評価し、A+,A,B,C,D,Fの6段階評価にてD以上を合格とする。

<教科書>
配布する講義資料をテキストとして用いる
指定教科書はない

<参考書>
講義の中で適宜指定する

<オフィスアワー>
講義終了後に講義室または23階共用スペースにて

<学生へのメッセージ>
この科目はハードウェアを前提としたソフトウェア技術をマスターする
ゲームソフト、自動車自動運転、ロボット制御等、ハードに絡むソフトウェアの分野を志望する学生に強くお勧めする


ナンバリングはこちら
このページの著作権は学校法人工学院大学が有しています。
Copyright(c)2019 Kogakuin University. All Rights Reserved.