コンピュータ構成と設計 / Computer Organization and Design

李 亜民(Li Yamin)

【授業の概要と目的(何を学ぶか) / Outline and objectives】
本授業では RISC-V 命令セットアーキテクチャ、アセンブリ言語プログラム、シングル・マルチサイクル CPU のデータパスと制御ユニット設計、パイプライン CPU のデータパスと制御ユニット設計(内部フォワーディングとパイプラインストール)、整数乗除回路、浮動小数点演算装置FPU、メモリ、キャッシュ、仮想メモリ、TLB、入出力システム、コンピュータの性能評価と高性能コンピューティング(スーパースカラ、マルチスレッド、マルチコア、インターコネクションネットワーク、スーパーコンピュータ)について学びます。この講義では、MIPS ISA と MIPS CPU の設計についても説明します。

【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. The MIPS ISA and MIPS CPUs design will be also taught in this lecture. Students will be expected to spend more than four hours to study each theme per week. Grading will be decided based on the homework (70%) and a project (30%).

【到達目標 / Goal】
コンピュータの物理的な仕組みと設計方法の理解。ハードウェアレベルのプログラミング言語であるアセンブラプログラミングについても学び、プロセッサの基本動作を理解します。さらに、シングルサイクル CPU、マルチサイクル CPU、パイプライン CPU、FPU、キャッシュ、TLB、マルチスレッド CPU、マルチコア CPU などを設計します。そして、現代のコンピュータにおいて高速化の鍵となっている記憶階層についての理解、外部記憶その他の周辺装置や高性能コンピュータ構成と設計についても理解することを目標とします。

【授業の進め方と方法 / Method(s)】
RISC-V シミュレータ Rivasm ( https://yamin.cis.k.hosei.ac.jp/rivasm/ ) と MIPS シミュレータ AsmSim ( https://yamin.cis.k.hosei.ac.jp/asm/ ) を使用して、アセンブリプログラムを開発します。コンピュータを構成するプロセッサ内部のデータの流れ(データパス)とその制御ユニットに関して,具体的な構成方法と設計の原理を理解します。さらに Intel Altera Quartus II と ModelSim という実際のハードウェア設計にも使われている EDA ツールを使用して RISC-V および MIPS プロセッサを設計し動作検証シミュレーションを行います。講義の冒頭で、前回の課題について説明・フィードバックします。

【授業計画 / Schedule】

回 / No. テーマ / Theme 内容 / Contents スライド / Slides
1 (09/26) RISC-V 命令セットアーキテクチャ(1) RISC-V 命令セットアーキテクチャとアセンブリ言語(算術、論理、シフト演算命令)及び Rivasm シミュレーターの使い方 pdf tex
2 (10/03) RISC-V 命令セットアーキテクチャ(2) RISC-V 命令セットアーキテクチャとアセンブリ言語(関数の呼び出し、条件分岐、無条件ジャンプ、メモリ load、store 命令) pdf tex
3 (10/10) コンピュータの基本的な回路設計 回路図とVerilog HDLを用いた基本的な回路(バレルシフタやALUなど)設計 pdf tex
4 (10/17) RISC-V シングルサイクル CPU 設計(1) RISC-V シングルサイクル CPU の構成とレジスタファイルの設計とシミュレーション pdf tex
5 (10/24) RISC-V シングルサイクル CPU 設計(2) RISC-V シングルサイクル CPU のデータパスと制御ユニットの設計とシミュレーション pdf tex
6 (10/31) RISC-V シングルサイクル CPU 設計(3) RISC-V シングルサイクル CPU + メモリ + テストプログラム、整数乗除/剰余回路 (RV32M) pdf tex
7 (11/07) RISC-V マルチサイクル CPU 設計(1) RISC-V マルチサイクル CPU のデータパスの設計とシミュレーション pdf tex
8 (11/14) RISC-V マルチサイクル CPU 設計(2) RISC-V マルチサイクル CPU の制御構造とコンピュータの設計とシミュレーション pdf tex
9 (11/21) RISC-V パイプライン CPU 設計 RISC-V パイプライン CPU(内部フォワーディングとパイプラインストール)の設計とシミュレーション pdf tex
10 (11/28) 浮動小数点数と FPU 設計 IEEE 754 浮動小数点数と FPU (浮動小数点数の加減乗除と平方根の回路) の設計とシミュレーション pdf tex
11 (12/05) メモリ階層とその管理 メモリ階層(SRAM、DRAM、キャッシュ、仮想記憶、MMU、TLB)の設計とシミュレーション pdf tex
12 (12/12) 入出力システム 入出力システム(入出力割込み、キーボードと VGA のインターフェースコントローラ)の設計とシミュレーション pdf tex
13 (12/19) 性能評価と高性能コンピューティング 性能評価と高性能コンピューティング(スーパースカラ、マルチスレッド、マルチコア、相互接続ネットワーク、スーパーコンピュータ) pdf tex
14 (01/16) MIPS CPU 設計とまとめ MIPS 命令セットアーキテクチャ及び AsmSim シミュレーターの使い方と MIPS CPUs 設計とまとめ pdf tex

【授業時間外の学習(準備学習・復習・宿題等) / Work to be done outside of class (preparation, etc.)】
本授業の準備・復習時間は、計4時間を標準とします。講義資料を事前に目を通すこと。また、レポート(宿題)を完成させて提出すること。

【テキスト(教科書) / Textbooks】
担当教員 Website に掲載。

【参考書 / References】

  1. Computer Organization and Design RISC-V Edition : The Hardware Software Interface (コンピュータの構成と設計 : ハードウエアとソフトウエアのインタフェースRisc-V版) 著者名: David A.Patterson and John L. Hennessy. Morgan Kaufmann(2017/05/12発売)
  2. Computer Principles and Design in Verilog HDL, Wiley, 2015.

【成績評価の方法と基準 / Grading criteria】
課題レポート70%+プロジェクトレポート30%

【学生の意見等からの気づき / Changes following student comments】
課題の難易度を調整します。
設計サンプルを追加します。

【学生が準備すべき機器他 / Equipment student needs to prepare】
ノートPCをクラスに持参してください。

【Useful Links】


Yamin Li, CIS, Hosei University, Tokyo, Japan