22023201

コンピュータ工学COM601t 

3年, 4年後学期月7

計算機工学

Computer Engineering

大森 匡

単位区分

単位数: 2単位
必修
課程・類・プログラム
種別
先端工学基礎課程

関連Webサイト

Google Classroom (遠隔授業の欄に掲載中. 学内ネットワークからシラバスを見よ)に資料掲載

主題および達成目標

コンピュータシステムとは何か, どうやって動作するのか, という話題の入門編. 学部2~3年生相当のアーキテクチャ系統の基本項目を学ぶ. 達成目標は以下の通り.
(1)コンピュータ内の数値表現の理解
(2)アセンブリ言語, 機械語命令の実行とプロセッサ内部の動作の対応の理解
(3)プロセッサの各構成要素の理解
(4)パイプライン処理の構成, ハザードと解決法の理解
(5)キャッシュと入出力の基本動作が理解できること。

前もって履修しておくべき科目

論理回路の大学の講義. 特に順序回路の設計は必須. 大学2年次までのアルゴリズム学の単位履修も望ましい.

前もって履修しておくことが望ましい科目

アルゴリズム論の大学2年次までの講義単位履修と, Cプログラミングの大学1~2年次の内容を履修していること. Unix/Linux上のCプログラミングとコンパイルの経験があると本講義中盤のアセンブリ言語プログラミングやプロセス, アドレス空間の理解に役立つ.

教科書等

授業資料は独自作成版で毎回配布し Google Classroom に順次掲載していきます. クラスコードはこのシラバスの遠隔講義の欄に掲載中で, 学内ネットワークに接続してこのシラバスを見ること.
登録数が全然増えないので暫時載せると t5qmqmes です. UECクラウドアカウント限定. 初回を越えたら消します.

本講義は, 以下の参考図書1の内容のうち, (第6版 MIPS editionなら上巻の)1章から4章のパイプライン処理までに対応する中身を, 独自にわかりやすく整理して紹介します. (第6版なら, 下巻の第5章キャッシュは概要のみ紹介であり, 下巻の付録A, Bは上巻の2, 4章の補助なので, 講義の中で該当する箇所を要約して紹介する. )

このほか, 本学の講義「計算機通論」(本学1類2年前期(昼)H29版, 小宮准教授作成)から一部スライドを抜粋して使います. 特にアセンブリ言語プログラムとCプログラム, OSの間の対応関係を理解する講義回・11月12月ごろの回でそうします. 「計算機通論」の講義教科書・参考書も, 本講義では参考になります.

参考図書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版の上巻を丁寧に講義スライドにしたもの. 本講義のうちアセンブリ言語プログラミングの項では, このスライドを断片的に母体にして独自解説版を作っています. )

授業内容とその進め方

この授業は過去8年間寺田准教授と大森で隔年交替であり, I類昼2年の「計算機通論」の内容を中心に参考図書1の上巻の内容を加えたものでした. 参考図書1は下巻の付録A,Bに講義で使うMIPSアセンブリ言語命令やアセンブラ擬似命令の詳述や浮動小数点コプロセッサ, 論理回路設計の詳細記載があるので, 講義には下巻記載の内容も入っているといえます. が, 上下巻合わせると多すぎるので, 授業資料でまとめて作り, 参考図書1は「参考」扱いにしています).

第1回目に講義概要や講義資料, 参考図書, の紹介を行います. 講義のGoogle Classroom(クラスコードは遠隔講義の欄に掲載中)に毎回の講義資料を載せます. (前回2023年度に行った講義資料スライドも前半を掲載予定). 今年はもっと簡略化した内容としたいですが資料は, ほぼ, 同じです. 今年度の資料改訂は毎回の講義前に順次掲載していきます.

----以下, 講義回----
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年後期までの履修項目, を考慮して, 内容の前後や相当に簡略化を入れます.

授業時間外の学習

参考図書1のうち, CプログラムとMIPSアセンブリ言語との対応を解説した2章と, プロセッサ内部設計の章(初版から第3版なら第5と6章, 第5版, 6版なら第4章)が講義の中心です. 他に, この教科書の下巻・付録A, B, Cにある, 論理回路・順序回路の基本, MIPS命令セット一覧の項目(これも下巻の付録Aにまとめてある)を読むと, プロセッサの理解の助けになる.

成績評価方法および評価基準

話題の節目ごとに宿題2回程度(必須, 主に前半8回まで), 第11回の最後(年末)に中間テストに相当する宿題(主にMIPSアセンブリ言語のプログラム)を出し, 期末にレポート課題(主に12回目以後のプロセッサ・キャッシュについてとアーキテクチャ全体の理解度チェック)として, この3つの総点で総合成績とします. 要点は, 以下:
(1)コンピュータの構成, 数値表現方法の理解
(2)アセンブリプログラムの動作の理解
(3)プロセッサの各構成要素の機能, 命令フェッチ等の内部処理のステージ, の理解.
(4)パイプラインの概要とハザード等の理解
(5)キャッシュの基本構成と動作の理解

オフィスアワー・授業相談

授業の後にその場で質問や他の日時にメールで予約してもらって相談.

学生へのメッセージ

参考図書1に基づいた講義ですが, コンピュータアーキテクチャに関するほぼ同じ大学講義や教科書はたくさんあり, 特に2000年以後は参考図書1が元本となった日本語の大学講義資料が多いです. したがって, どのアーキテクチャ系の日本語教科書や講義スライドでも, MIPS命令セットを使う限り, ほぼ同じ内容です. 今はRISC-V版(というMIPSプロセッサの系統のオープンソース版のプロセッサに変更したもの)で参考図書1も出ており, 日本語でもRISC-Vに限ったプロセッサ設計を教える教科書が増えています. そのため, MIPSプロセッサ版の基本命令だけで解説する本講義の中身は, 技術的には2000年ごろに属しています. 2025年現在では, 細部よりも計算機工学概論のような範囲で抽象度を上げて行いたい, です.

その

参考図書1の内容を軸にして, コンピュータとは何かを, 主にプロセッサと言う側面から学ぶ概論ととらえてもらい, 細部よりも, コンピュータ全体の概念設計と動作機構を理解してもらえれば良い. 本講義はこの8年ほどI類2年次の「計算機通論」を担当する寺田准教授と, データベース研究分野の専門であり(だからアーキテクチャやコンパイラで特に専門とは言えない)大森の2名で隔年交代式で実施してきました. 今年度の講義は2023年度の大森版とほぼ同じです.

キーワード

CPU
アセンブラ
アーキテクチャ
キャッシュ
コンピュータ
スケジューリング
データパス
パイプライン
フォワーディング
最終変更日時: 2025/09/17 23:34:36