【授業の概要と目的(何を学ぶか) / Outline and objectives】
本授業では RISC-V 命令セットアーキテクチャ、アセンブリ言語プログラム、シングル・マルチサイクル CPU のデータパスと制御ユニット設計、パイプライン CPU のデータパスと制御ユニット設計(内部フォワーディングとパイプラインストール)、整数乗除回路、浮動小数点演算装置FPU、メモリ、キャッシュ、仮想メモリ、TLB、入出力システム、コンピュータの性能評価と高性能コンピューティング(スーパースカラ、マルチスレッド、マルチコア、インターコネクションネットワーク、スーパーコンピュータ)について学びます。
【Outline and objectives】
The objective of this lecture is to understand the fundamentals of the computer system and its design method. The contents of the lecture contain RISC-V instruction set architecture, assembly language programming, datapath and control unit design of single-cycle and multiple-cycle CPUs, design of pipelined CPU with internal forwarding and pipeline stall mechanism, memory, caches, virtual memory management, TLB (Translation lookaside buffer), input/output interface controller, interrupt, computer performance evaluation, superscalar, multithreading, multicore, interconnection network, and supercomputers. The CPUs will be designed in schematic and/or Verilog HDL and simulated with EDA tools. Students will be expected to spend more than four hours to study each theme per week. Grading will be decided based on the homework (80%) and a quiz (20%).
【到達目標 / Goal】
コンピュータの物理的な仕組みと設計方法の理解。ハードウェアレベルのプログラミング言語であるアセンブラプログラミングについても学び、プロセッサの基本動作を理解します。さらに、シングルサイクル CPU、マルチサイクル CPU、パイプライン CPU、FPU、キャッシュ、TLB、マルチスレッド CPU、マルチコア CPU などの設計方法を理解します。そして、現代のコンピュータにおいて高速化の鍵となっている記憶階層についての理解、外部記憶その他の周辺装置や高性能コンピュータ構成と設計についても理解することを目標とします。
【授業の進め方と方法 / Method(s)】
RISC-V シミュレータ Rivasm ( https://yamin.cis.k.hosei.ac.jp/rivasm/ )を使用して、命令の意味と使い方を理解します。コンピュータを構成するプロセッサ内部のデータの流れ(データパス)とその制御ユニットに関して,具体的な構成方法と設計の原理を理解します。さらに iverilog と gtkwave を使用してプロセッサを設計し動作検証シミュレーションを行います。講義の冒頭で、前回の課題について説明・フィードバックします。
【授業計画 / Schedule】
回 / No. | テーマ / Theme | 内容 / Contents | スライド / Slides | |
---|---|---|---|---|
1 (2024/09/26) | 命令セットアーキテクチャ(1) | 命令セットアーキテクチャとアセンブリ言語(算術、論理、シフト演算命令)及び Rivasm シミュレーターの使い方 | 1. pdf | 1. zip |
2 (2024/10/03) | 命令セットアーキテクチャ(2) | 命令セットアーキテクチャとアセンブリ言語(関数の呼び出し、条件分岐、無条件ジャンプ、メモリ load、store 命令) | 2. pdf | 2. tex |
3 (2024/10/10) | コンピュータの基本的な回路設計 | 回路図とVerilog HDLを用いた基本的な回路(バレルシフタやALUなど)設計 | 3. pdf | 3. tex |
4 (2024/10/17) | シングルサイクル CPU 設計(1) | シングルサイクル CPU の構成とレジスタファイルの設計とシミュレーション | 4. pdf | 4. tex |
5 (2024/10/24) | シングルサイクル CPU 設計(2) | シングルサイクル CPU のデータパスと制御ユニットの設計とシミュレーション | 5. pdf | 5. tex |
6 (2024/11/07) | シングルサイクル CPU 設計(3) | シングルサイクル CPU + メモリ + テストプログラム、整数乗除/剰余回路 (RV32M) | 6. pdf | 6. tex |
7 (2024/11/14) | マルチサイクル CPU 設計(1) | マルチサイクル CPU のデータパスの設計とシミュレーション | 7. pdf | 7. tex |
8 (2024/11/21) | マルチサイクル CPU 設計(2) | マルチサイクル CPU の制御構造とコンピュータの設計とシミュレーション | 8. pdf | 8. tex |
9 (2024/11/28) | パイプライン CPU 設計 | パイプライン CPU(内部フォワーディングとパイプラインストール)の設計とシミュレーション | 9. pdf | 9. tex |
10 (2024/12/05) | 浮動小数点数と FPU 設計 | IEEE 754 浮動小数点数と FPU (浮動小数点数の加減乗除と平方根の回路) の設計とシミュレーション | 10. pdf | 10. tex |
11 (2024/12/12) | メモリ階層とその管理 | メモリ階層(SRAM、DRAM、キャッシュ、仮想記憶、MMU、TLB)の設計とシミュレーション | 11. pdf | 11. tex |
12 (2024/12/19) | 入出力システム | 入出力システム(入出力割込み、キーボードと VGA のインターフェースコントローラ)の設計とシミュレーション | 12. pdf | 12. tex |
13 (2025/01/09) | 性能評価と高性能コンピューティング | 性能評価と高性能コンピューティング(スーパースカラ、マルチスレッド、マルチコア、相互接続ネットワーク、スーパーコンピュータ) | 13. pdf | 13. tex |
14 (2025/01/16) | まとめとクイズ | まとめとクイズ | 14. --- | 14. --- |
【授業時間外の学習(準備学習・復習・宿題等) / Work to be done outside of class (preparation, etc.)】
本授業の準備・復習時間は、計4時間を標準とします。講義資料を事前に目を通すこと。また、レポート(宿題)を完成させて提出すること。
【テキスト(教科書) / Textbooks】
担当教員 Website に掲載。
【参考書 / References】
【成績評価の方法と基準 / Grading criteria】
課題レポート80%+クイズ20%
【学生の意見等からの気づき / Changes following student comments】
課題の難易度を調整します。
設計サンプルを追加します。
【学生が準備すべき機器他 / Equipment student needs to prepare】
ノートPCをクラスに持参してください。
【Useful Links】