東大の授業ではCPUやコンパイラを作ってレイトレイサを動かすという授業があります。高橋さんのチームはRISC-Vプロセッサを実装して汎用OSを動かそうとしました。その話を伺いました。
出演者: 高橋祐花 (@00_)、Rui Ueyama (@rui314)
https://turingcomplete.fm/21
ハッシュタグは#tcfmです。
TCFMはサポーターの投げ銭によって収益を上げています。このコンテンツに課金してもいいよという方はぜひクリエイター支援サイトPatreonから登録してご協力ください。
- イントロ (0:00)
- CPU実験のコア係とコンパイラ係 (1:46)
- CPU実験と商業的なプロセッサとの比較 (6:43)
- CPUシミュレータ作成係 (9:29)
- コアのデバグの辛さ (10:58)
- Intel 4004(Intel最初のCPU)の設計の話 (13:08)
- チップアート(シリコンの上の微小な落書き) (14:20)
- 各社のCPUID命令 (15:33)
- コア係をするかコンパイラ係をするか (17:43)
- 自作CPUにLinuxを移植したかったが頓挫 (19:55)
- 1日で代替の自作OSを作成 (21:01)
- 自作OSはマルチタスクもサポート (27:11)
- ユーザスレッドとカーネルスレッド (28:16)
- 自作CPU作成に必要な機材 (31:41)
- ミニマムなCPUを作って最小限の命令を次第に足していく (34:21)
- 自作CPUではDRAMは使っていない (40:23)
- SRAMとDRAMの解説 (41:24)
- 浮動小数点数の演算はIPコアを使ってよいルール (43:24)
- 浮動小数点数の丸めモード (45:48)
- IOはUARTでシリアル通信をサポート (48:20)
- UARTはデバグが辛い (49:33)
- 暗中模索になりがちな低レイヤのデバグの話 (50:54)
- 命令セットにはRISC-Vを選択 (54:09)
- Linuxが動くCPUを作るのは大変 (55:44)
- ELFフォーマットのカーネルをロードするのも面倒 (57:56)
- MMUを実装する必要性 (1:00:19)
- 1stコアはハーバードアーキテクチャ (1:01:56)
- MMUの解説 (1:04:05)
- 残り5日でOSを実装 (1:05:52)
- タイマ割り込みはクロックを数えて実現 (1:06:54)
- 自作CPUをメインで作った3人は公立高校出身 (1:08:56)
- RISC-Vなのでgccの移植は不要 (1:14:04)
- CERNの仕事を学業と比べると (1:16:17)
- 牧場系スマホゲームとスーパーエンジニア (1:18:49)
- ドラクエの乱数調整でのリアルタイムアタック (1:21:21)
- 学祭でのドラクエのリアルタイムアタック (1:25:20)