現代のコンピュータは、シリコン上のトランジスタによるデジタル回路によって構成されています。ところが人間が実際にプログラミングするのはC++やPythonなどの高級プログラム言語であり、それぞれの言語において人間が抽象的に捉えている抽象的な実行のモデルが、どのようにそれらのハードウェアでの実際に動作するのか、は一般には自明ではありません。それらは計算機内で幾層もの抽象化をもって実現されていますが、本講義ではCPUと人間の最も低位なインターフェースである機械語の構成を学習し、さらに機械語のそれぞれの命令の動作がどのように電子回路で実現されるのか、を習得し、情報システムのプロフェッショナルとしての基礎を習得します。また、実験では実際の計算機の組み立ての演習なども行います。 1回の授業あたり、講義2時限、演習2時限を行います。
【到達目標】 計算機(コンピュータ)システムを、ハードウェアアーキテクチャの構成を中心に学習し、計算機の動作原理を学習する事を目標とします。更に、計算機アーキテクチャが進歩や、最近のコンピュータにおける性能や高速化のアーキテクチャ上の技法を学び、効率の良い計算機システムの構成法の知見を得る事をも目標とします。
【テーマ】もっとも低位なプログラミング言語であるアセンブラや機械語を習得し、次にそれらの演算やメモリ参照などの基本操作が、どのようにデジタル回路によって実現されるか、を通じて、様々なプログラム言語の動作が、どのように基本的なフォン・ノイマン型計算機の動作原理により電子回路で実現されるのか、の基礎を身につけます。
計算機アーキテクチャ、機械語、アドレッシング、フォン・ノイマンマシン、デジタル回路、演算回路、加算器、二進法による数の表現、ALU、組合わせ回路、真理値表、状態回路、データパス、シングルサイクル実行、マルチサイクル実行、状態遷移機械・オートマトン、マイクロプログラミング、パイプライン、記憶措置・メモリ、DRAM、メモリ階層、キャッシュ、ページング、MMU、I/O、データバス、PCI、ハードディスク、フラッシュメモリ、性能、アムダールの法則
✔ 専門力 | 教養力 | コミュニケーション力 | 展開力(探究力又は設定力) | ✔ 展開力(実践力又は解決力) |
講義は事前にパワーポイントの資料を配るが、極力対話形式で行い、事前の予習を前提とする。演習は1~2回ごとに課題を出し、レポートを提出する。全体の採点は期末試験と、レポートの成績の複合的な指標で行う。
授業計画 | 課題 | |
---|---|---|
第1回 | 計算機システム入門、計算機の歴史など | 授業受講前に資料スライドを予習 |
第2回 | 計算機アーキテクチャとは、アセンブラ・機械語(1):演算命令 | 授業受講前に資料スライドを予習 |
第3回 | アセンブラ・機械語(2):メモリ命令・制御命令 | 授業受講前に資料スライドを予習 |
第4回 | アセンブラ・機械語(3):関数の実現法、様々な命令セットアーキテクチャ | 授業受講前に資料スライドを予習 |
第5回 | 計算機の性能(1):性能のモデル化 | 授業受講前に資料スライドを予習 |
第6回 | 計算機の性能(2):様々な性能メトリック | 授業受講前に資料スライドを予習 |
第7回 | デジタル回路入門(1):組合せ回路、真理値表と積和標準形 | 授業受講前に資料スライドを予習 |
第8回 | デジタル回路入門(2):計算機内部の数の表現法とALUの実現 | 授業受講前に資料スライドを予習 |
第9回 | デジタル回路入門(2):様々な状態回路とその設計法 | 授業受講前に資料スライドを予習 |
第10回 | CPU構成法(1): シングルサイクル実装 | 授業受講前に資料スライドを予習 |
第11回 | CPU構成法(2): マルチサイクル実装 | 授業受講前に資料スライドを予習 |
第12回 | CPUの高速化技法: パイプライニングとスーパスカラー実行 | 授業受講前に資料スライドを予習 |
第13回 | メモリ: 様々なメモリとその階層、キャッシュメモリ、仮想記憶の仕組み | 授業受講前に資料スライドを予習 |
第14回 | 様々な入出力系と通信ネットワークによるコミュニケーションの仕組み | 授業受講前に資料スライドを予習 |
第15回 | ハードウェアセキュリティ技術 | 授業受講前に資料スライドを予習 |
特になし
特になし
最終試験(50%)と演習におけるレポート(50%)によって総合的に判断する。
基本的なオートマトン、プログラミング、論理学(ブール代数)の知識が必要