シラバス参照 |
講義概要/Course Information |
科目基礎情報/General Information |
授業科目名 /Course title (Japanese) |
計算機工学 | ||
---|---|---|---|
英文授業科目名 /Course title (English) |
Computer Engineering | ||
科目番号 /Code |
COM601s | ||
開講年度 /Academic year |
2023年度 | 開講年次 /Year offered |
3/4 |
開講学期 /Semester(s) offered |
後学期 | 開講コース・課程 /Faculty offering the course |
情報理工学域 |
授業の方法 /Teaching method |
講義 | 単位数 /Credits |
2 |
科目区分 /Category |
専門科目 | ||
開講類・専攻 /Cluster/Department |
先端工学基礎課程 | ||
担当教員名 /Lecturer(s) |
大森 匡 | ||
居室 /Office |
西10号館528号室 | ||
公開E-mail |
omori[at]is.uec.ac.jp | ||
授業関連Webページ /Course website |
Google Classroom (クラスコード 44fwg2n )に掲載中.uecクラウドアカウント限定. | ||
更新日 /Last update |
2023/09/27 21:08:02 | 更新状況 /Update status |
公開中 /now open to public |
講義情報/Course Description |
主題および 達成目標(2,000文字以内) /Themes and goals(up to 2,000 letters) |
コンピュータシステムとは何か,どうやって動作するのか,という話題の入門編.学部2~3年生相当のアーキテクチャ系統の基本項目を学ぶ.達成目標は以下の通り. (1)コンピュータ内の数値表現の理解 (2)アセンブリ言語,機械語命令の実行とプロセッサ内部の動作の対応の理解 (3)プロセッサの各構成要素の理解 (4)パイプライン処理の構成,ハザードと解決法の理解 (5)キャッシュと入出力の基本動作が理解できること。 |
---|---|
前もって履修 しておくべき科目(1,000文字以内) /Prerequisites(up to 1,000 letters) |
論理回路の大学の講義.特に順序回路の設計は必須.大学2年次までのアルゴリズム学の単位履修も強く望まれる. |
前もって履修しておくこ とが望ましい科目(1,000文字以内) /Recommended prerequisites and preparation(up to 1,000 letters) |
アルゴリズム論の大学2年次までの講義単位履修と,Cプログラミングの大学1~2年次の内容を履修していることが非常に望ましい.Unix/Linux上のCプログラミングとコンパイルの経験があると本講義中盤のアセンブリ言語プログラミングやプロセス,アドレス空間の理解に役立つ.そのため,3年後期までの学生実験演習などで経験を踏んでほしいです. |
教科書等(1,000文字以内) /Course textbooks and materials(up to 1,000 letters) |
授業資料は独自作成版で毎回配布します.講義Classroom クラスコード 44fwg2n に順次掲載していきます.参考として2021年度に大森が担当したスライド配布資料を掲載ずみです. 以下に示す参考図書1の内容のうち,(第6版 MIPS editionなら)1章から4章のパイプライン処理までに対応する内容が全体での主要な講義になる.(第6版なら下巻の第5章キャッシュは概要のみを紹介,下巻付録A,Bは上巻の2,4章の詳細版だが,授業ではこれらに対応する内容を含めて講義中盤部で行う) 他に,本学の「計算機通論」(本学1類2年前期(昼)H29版,小宮准教授作成)から一部スライドを抜粋して使う場合があり,これは特に,アセンブリ言語プログラムとCプログラム,OSの間の対応関係を理解するのに役立つ.教科書参考書としては「計算機通論」のそれとほぼ同じです. 参考図書1.D. A. Patterson and J. L. Hennessy (成田光彰訳) 「コンビュータの構成と設計 第6版 MIPS Edition 第6版(上)」(日経BP、2021年)(授業自体は,この本の初版から2版,3版であれば第2~6章の内容に該当する.第5版では上巻に,第6版では上巻の4章途中までに相当する.) (第6版(下)からは第5章のキャッシュの入門部と,付録A:アセンブリ言語,SPIMシミュレータ,などが講義第8~11回目の詳述記載に対応する) 参考図書2.尾内理紀夫「コンピュータの仕組み」(情報科学こんせぷつ 1) 朝倉書店 -- 計算機通論(1類2年前期・昼)の元々の教科書. 参考図書3.坂井修一「コンピュータアーキテクチャ」(電子情報通信レクチャーシリーズC-9) コロナ社 --講義スライド4枚組の15回分が原著者により公開されている.内容は参考図書1の上巻を短く要約した上で下巻の中身を入れた内容の濃いもの. 参考図書4. 九州大学オープンコースウェア「コンピュータアーキテクチャI」 (参考図書1の第2版の上巻を丁寧に講義スライドにしたもの.本講義のうちアセンブリ言語プログラミングの項では,このスライドを断片的に母体にして独自解説版を作っています.) |
授業内容と その進め方(2,000文字以内) /Course outline and weekly schedule(up to 2,000 letters) |
この授業は寺田准教授と大森で隔年交替担当であり,I類昼2年の「計算機通論」の内容を中心にして,参考図書1の上巻の内容を加えたものです.(参考図書1は下巻の付録A,Bに講義で使うMIPSアセンブリ言語命令やアセンブラ擬似命令の詳述や浮動小数点コプロセッサ,論理回路設計の詳細記載があるので,講義には下巻記載の内容も入っているといえます.が,上下巻合わせると多すぎるので,授業資料でまとめて作り,参考図書1は「参考」扱いにしています).第1回目に講義概要や講義資料,参考図書,の紹介を行います.講義のGoogle Classroom(クラスコードは44fwg2n )にて大森が2021年度に行った講義資料スライドの年内分を掲載しています.今年はもっと簡略化したいですが資料は,ほぼ,同じです.今年度の資料改訂は毎回の講義前に順次掲載していきます. ----以下,講義日程---- 1.ガイダンス .「コンピュータシステムとは何か」と言う本講義を通しての課題の設定と,[プロセッサ」「命令」「データ」などの基本概念を概説する.(第1回) 2. 3. コンピュータの構造とプログラム実行方法の概要 (1)プロセッサ,メモリ,機械語命令,アセンブリ言語,(第2回) (2) プロセッサ内のレジスタ,命令処理モデル,など諸概念の紹介.(第3回) ---- 4. 数値表現 (第4回) 5. 6. 7. MIPS基本命令の導入 (1) add命令,ld命令,メモリアドレス方式 (第5回) (2) プロセッサの命令処理モデル(3ステージ実行の場合)(第6回) (3) branch命令,jump命令(第7回) ------ 8. アセンブリ言語のプログラム1 -- if文や算術計算式,whileループなど.(第8回) 9.10.11 同プログラム2 (複雑な場合) (1) mainルーチンとプロセスのアドレス空間モデル(第9回) (2) サブルーチン呼び出しとアドレス空間(第10回) (3) メモリアドレス指定方式とアセンブリ言語プログラムのまとめ(第11回) ----- 12. プロセッサの内部構成1(非パイプライン・マルチサイクル実行)(第12回) 13. 同2(パイプライン実行とハザード)(第13回) 14. 同3(キャッシュなど)(第14回) 15. まとめ (第15回) 参考図書1(第6版)MIPS editionになると特に後半部が量・質とも難しくなっていますので,この授業では,授業の進み具合や履修学生の理解度,3年後期までの履修項目,を考慮して,内容の前後や簡略化を入れます. |
実務経験を活かした 授業内容 (実務経験内容も含む) /Course content utilizing practical experience |
|
授業時間外の学習 (予習・復習等)(1,000文字以内) /Preparation and review outside class(up to 1,000 letters) |
参考図書1のうち,CプログラムとMIPSアセンブリ言語との対応を解説した2章と,プロセッサ内部設計の章(初版から3版なら第5,6章,第5,6版なら第4章)に注目して読むと良い.他に,この教科書の付録A,B,C(これらは下巻に記載)の論理回路・順序回路の基本,MIPS命令セット一覧の項目(これも下巻の付録Aにまとまっている)を読むと,プロセッサの理解の助けになる.他に,中間テスト相当の内容になるCとアセンブリ言語,手続き呼び出しのコンパイルを述べる第8~11回やOSのアドレス空間配置の理解は,OSなどのソースコードを読むときに要になるので,資料や録画を読みこんでほしい.学生実験環境でのCプログラムのアセンブリ言語プログラムへのコンパイルなどもやってみると中盤の理解に役立つ. |
成績評価方法 および評価基準 (最低達成基準を含む) (1,000文字以内) /Evaluation and grading (up to 1,000 letters) |
話題の節目ごとに宿題2回程度(必須,主に前半8回まで),12月最後に中間テストに相当する宿題(主にMIPSアセンブリ言語のプログラム),期末にレポート課題(主に11回目以後のプロセッサ・キャッシュ)として,この3つの総点で総合成績とします.要点は,以下: (1)コンピュータの構成,数値表現方法の理解 (2)アセンブリプログラムの動作の理解 (3)プロセッサの各構成要素の機能,命令フェッチ等の内部処理のステージ,の理解. (4)パイプラインの概要とハザード等の理解 (5)キャッシュの基本構成と動作の理解 |
オフィスアワー: 授業相談(1,000文字以内) /Office hours(up to 1,000 letters) |
授業の後にその場で質問や他の日時にメールで予約してもらって相談. |
学生へのメッセージ(1,000文字以内) /Message for students(up to 1,000 letters) |
参考図書1に基づいた講義ですが,コンピュータアーキテクチャに関する似たような大学講義や教科書はたくさんあり,特に2000年以後は参考図書1が元本となった日本語の大学講義資料が多いです.したがって,どのアーキテクチャ系の日本語教科書や講義スライドでも,MIPS命令セットを使う限り,ほぼ同じ内容です. |
その他 /Others |
参考図書1の内容を軸にして,コンピュータとは何かを,主にプロセッサと言う側面から学ぶ概論ととらえてもらい,細部よりも,コンピュータ全体の概念設計と動作機構を理解してもらえれば良い.本講義はI類2年次の「計算機通論」を担当する寺田准教授と,データベース研究分野の専門である大森の2名で隔年交代式で実施しています.2023年度の講義は2021年度の大森版とほぼ同じですが授業で教える項目は教員間で合わせてあります.参考図書1の奥深い話に行き過ぎず,できるだけ全体像をつかめるようにしたいです. |
キーワード /Keywords |
アセンブラ、コンピュータ・アーキテクチャ、CPU、データパス、パイプライン、フォワーディング、スケジューリング、キャッシュ |