授業情報/Course information

開講学期/Course Start 2024年度/Academic Year   後期/Second
開講曜限/Class period 金/Fri 5 , 金/Fri 6
授業区分/Regular or Intensive 週間授業
対象学科/Department システム理化学科数理情報システムコース
対象学年/Year 2年 , 3年 , 4年
授業科目区分/Category 教育課程 システム理化学科
必修・選択/Mandatory or Elective 選択
授業方法/Lecture or Seminar 講義科目
授業科目名/Course Title マイクロプロセッサ/Microprocessor
単位数/Number of Credits 2
担当教員名/Lecturer 小林 洋介 (システム理化学科数理情報システムコース)
時間割コード/Registration Code J4177
連絡先/Contact 小林 洋介(V612
0143-46-5440
ykobayashi(at)muroran-it.ac.jp
スパム対策のため@を(at)で表記しています。
緊急時を除き,極力E-mailで連絡ください))
オフィスアワー/Office hours 小林 洋介(水曜日16:00-17:00)
実務経験/Work experience
更新日/Date of renewal 2024/08/19
授業のねらい
/Learning Objectives
ソフトウェアを動作させるハードウェアにおいて最も重要な部品がCPUに代表されるマイクロプロセッサです。この授業では,プログラマーが効率的なソフトウェアをコーディングする際に必要なCPUに関する技術を学びます。特にハードウェア開発者向けの「回路や構造」ではなく,ソフトウェアエンジニアが考慮する必要がある「命令の流れ」や「クロックサイクルごとの動作」といったミクロな視点からCPUの仕組みを理解することを狙います。
到達度目標
/Outcomes Measured By:
本授業最大の目的は「CPUの仕組みを理解する」ことです。この目標を達成するために以下の小目標を設定します。
1. CPUの命令処理に関して命令密度向上や分岐命令を理解する。
2. キャッシュメモリと仮想記憶の処理を理解する。
3. システムコール,例外,割り込みといったイレギュラー処理を理解する。
4. マルチプロセッサによる並列処理を理解する。
5. メモリアクセスについて理解する。
授業計画
/Course Schedule
1週目: ガイダンス,CPUと命令流
2週目: 命令密度向上のための工夫
3週目: データ依存関係
4週目: 分岐命令
5週目: ここまでのまとめ1
6週目: キャッシュメモリ
7週目: 仮想記憶
8週目: I/Oアクセス
9週目: システムコール,例外,割り込み
10週目:ここまでのまとめ2
11週目:マルチプロセッサ
12週目:キャッシュコヒーレンス制御
13週目:メモリ順序付け
14週目:不可分操作
15週目:ここまでのまとめ3, 全体のまとめ
16週目:期末試験

総授業時間数: 22時間30分(15回×90分)

各回の講義終了後に,講義で使用した資料をMoodleで公開しますので,積極的に復習に取り組んでください。
各回の学修時間の目安は,事前・事後合わせて4時間です。
教科書
/Required Text
プログラマーのためのCPU入門 : CPUは如何にしてソフトウェアを高速に実行するか Takenobu Tani著  ラムダノート 2023(ISBN:9784908686160)
参考書等
/Required Materials
ヘネシー・パターソンコンピュータアーキテクチャ : 定量的アプローチ ジョン・L・ヘネシー, デイビッド・A・パターソン著 ; 中條拓伯, 天野英晴, 鈴木貢訳  エスアイビー・アクセス 2019(ISBN:9784434264009)
コンピュータの構成と設計 : ハードウエアとソフトウエアのインタフェース David A. Patterson, John L. Hennessy著 ; 成田光彰訳  日経BP 2021(ISBN:9784296070091)
コンピュータの構成と設計 : ハードウエアとソフトウエアのインタフェース David A. Patterson, John L. Hennessy著 ; 成田光彰訳  日経BP 2021(ISBN:9784296070107)
教科書・参考書に関する備考 教科書は電子書籍版も販売されています。授業中の閲覧端末を各自で用意できる場合は電子書籍版を利用を強く推奨します。
成績評価方法
/Grading Guidelines
期末試験と,各回でmoodleに提出する課題小レポートを課します。課題小レポートについてはガイダンスで説明します。

小レポート 3点 * 14回 = 42点
期末試験 58点
合計100点満点とし,100点満点中60点以上を合格とします。

※何らかの事情で課題小レポートの実施回数が14回未満だった場合,未実施分の点数は期末試験の配点に加算します(例:小レポート13回だった場合の期末試験は61点となります)。
履修上の注意
/Notices
再試験は行いませんので,不合格者は再履修してください。
教員メッセージ
/Message from Lecturer
ソフトウェアエンジニア(プログラマー)はソフトウェア開発ができればハードウェアの知識は不要でしょうか?半導体素子や電子回路レベルの知識が必要になることはないかもしれません。しかし,近年のAIブームを支えているGPGPUは,並列演算に特化した画像処理のためのマイクロプロセッサであるGPUを数値計算に利用できるようにして高速化を実現しています。
このように効率的な計算ができるプログラムを書こうとする際には,そのプログラムが動作するマイクロプロセッサの仕組みや特性を知っている必要があります。言い換えればCPUに代表されるマイクロプロセッサの知識はソフトウェアエンジニアに必須の知識と言えます。
本講義では,マイクロプロセッサの代表としてCPUの仕組みと特性を学ぶことでプログラムのソースコードと計算機の処理の両方に対してイメージを持てる技術者になることを目指します。
また,本科目は専門の技術書を教科書指定しました。このため多数の専門用語が出てきます。しかし,大事なのは用語を覚えることではなく,全体的なCPUの処理フローのイメージを持つことです。このため,教科書の図表の意味解釈に注力して取り組んでください。
学習・教育目標との対応
/Learning and Educational Policy
学生便覧「学習目標と授業科目との関係表」参照
関連科目
/Related course
情報システム概論,プログラミング演習,プログラミングA
No. 回(日時)
/Time (date and time)
主題と位置付け(担当)
/Subjects and instructor's position
学習方法と内容
/Methods and contents
備考
/Notes
該当するデータはありません
Active learning 1-1
/主体的学修(反転授業,小テスト,振り返り 等)
毎週提出の小レポート課題は十分記述されていない場合や提出遅れの場合は減点や零点とする場合があります。
Active learning 1-2
/上記項目に係るALの度合い
15%未満
Active learning 2-1
/対話的学修(グループ学習,協働,調査体験 等)
Active learning 2-2
/上記項目に係るALの度合い
該当なし
Active learning 3-1
/深い学修(複数科目の知識の総合化や問題解決型学修 等)
この科目を深く理解するには「情報システム概論」で学んだ基礎的なコンピュータアーキテクチャの知識と「プログラミングA」で学ぶコンピュータのメモリに関わるプログラミングの知識を組み合わせることが非常に有効です。これらの科目の教科書や参考資料も必要に応じて復習してください。
Active learning 3-2
/上記項目に係るALの度合い
15%~50%