Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
RISC-V CPU 自作本の実装と執筆/cybozulabs-youth10-hosoya
Search
Cybozu
PRO
March 31, 2021
Technology
0
620
RISC-V CPU 自作本の実装と執筆/cybozulabs-youth10-hosoya
Cybozu
PRO
March 31, 2021
Tweet
Share
More Decks by Cybozu
See All by Cybozu
Recruitment Pitch in New Business Division
cybozuinsideout
PRO
0
12
サイボウズ Office/メールワイズチームの改善の取り組み「困りごと共有会」
cybozuinsideout
PRO
1
16
サイボウズのOSPO
cybozuinsideout
PRO
1
91
非エンジニアの私が試行錯誤の末見出したスクラムマスターの道
cybozuinsideout
PRO
2
130
Kubernetes でもJava アプリでTLS 接続を終端したい
cybozuinsideout
PRO
2
150
Google I/O - 2024 What’s new in flutter
cybozuinsideout
PRO
2
260
Waffle Festival2024(斉藤裕希)
cybozuinsideout
PRO
3
560
主体的な活動で巨大な影響範囲のテストを乗りこなしていく話
cybozuinsideout
PRO
2
360
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
9
40k
Other Decks in Technology
See All in Technology
MySQLのロックの種類とその競合
yoku0825
6
1.6k
AWSでRAGを作る法方
sonoda_mj
1
140
クラウド利用者の「責任」をどう果たす?AWSセキュリティ対策のススメ #AWSSummit
hiashisan
0
280
エンジニア向け会社紹介資料
caddi_eng
14
230k
成長期に歩みを止めないための創業期の開発文化形成
mayah
6
420
GoとアクターモデルでES+CQRSを実践! / proto_actor_es_cqrs
ytake
1
160
エンジニアリングマネージャーはどう学んでいくのか #devsumi / How Do Engineering Managers Continue to Learn and Grow?
expajp
4
1.3k
Datadog Cloud SIEMを使ってAWS環境の脅威を可視化した話/lifeistech-datadog-cloud-siem
gidajun
0
480
ペパボのオブザーバビリティ研修2024 説明資料
kesompochy
0
1.1k
技術負債による事業の失敗はなぜ起こるのか / Why do business failures due to technical debt occur?
i35_267
0
190
dxd2024-生成AIに振り回された3か月間の成功と失敗/dxd2024-link-and-motivation
lmi
2
260
ABEMAにおけるLLMを用いたコンテンツベース推薦システム導入と効果検証
cyberagentdevelopers
PRO
1
760
Featured
See All Featured
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
78
15k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
17
1.5k
WebSockets: Embracing the real-time Web
robhawkes
59
7.2k
A Philosophy of Restraint
colly
200
16k
The Invisible Customer
myddelton
117
13k
Automating Front-end Workflow
addyosmani
1362
200k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
277
13k
Visualization
eitanlees
139
14k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
29
2.5k
Creatively Recalculating Your Daily Design Routine
revolveconf
214
11k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
662
120k
Transcript
RISC-V CPU 自作本の実装と執筆 細谷 啓 (Hosoya Kei) March 30, 2021
サイボウズ・ラボユーズ第 10 期生 C/C++によるソフトウェア開発ゼミ
話す内容 1. テーマの説明・行うこと 2. CPU 自作はどういうものか 3. テーマの進捗状況 4. 今後について
1
テーマの説明・行うこと
なんのために CPU 自作をするか コンピュータアーキテクチャの座学では CPU の事を理解したつも りでも、CPU はやってみなきゃわからない事が多すぎる。 現実の CPU
実装では色々なペリフェラル (周辺機器) やバス・ キャッシュ等の様々な事を考慮する必要が有る (Ready-Valid プロ トコルや AXI4, AMBA, PCIe 等のバスプロトコル。当然ながら割込 コントローラ) 自分のコンピュータをどれくらい理解出来ているかを試すには CPU 自作は最適。 あと楽しい 2
CPU とは (a) (b) Figure 1: 筆者所有の Intel 8088(a, 1979
年発売) と AMD ThreadRipper 2920X(b, 2018 年発売)。 両方とも時代は違えど CPU。 3
(現代の)CPU 自作は大変 CPU 自作で必要な知識を大雑把に分解すると.... • ISA 設計 • バス設計 •
周辺機器設計 • 回路設計知識 • ECAD 習熟 • メモリコントローラ設計 • RTL 設計技術 • 消費電力推定 • ベンチマーク • …etc … どう考えても一気には出来ない =⇒ 各個撃破が肝要 4
本テーマの目標 本テーマでは高速化と機能拡張の二つを目指す CPU を目標とし て、最小限の実装から段階的にステップを踏んで CPU を実装して いき、参考実装とその実装解説書籍を作成し公開する事を目標と した。 5
具体的に何をやるか • ISA 設計, コンパイラバックエンド対応等の部分は切り捨てる • Chisel と Verilog-HDL というハードウェア記述言語を使い、
主に 64bit RISC-Ⅴの段階的な実装 (論理合成可能な状態で) をする1 • 上記 CPU の実装に関する詳細な実装指南書の執筆 1RiSC-16 など他の ISA も演習で行います 6
具体的には:高速化 • 5 ステージパイプライン化 (Back Forwarding 等のハザード軽 減等も含む) • 4,
8-Way Set Associative キャッシュ • 単純な分岐予測 Always (not) Taken の追加 • 2bit 分岐予測器 • Tomasulo Algorithm の実装による Out-of-Order(OoO) 化 (in-order issue, out-of-order execution.) • ReOrder Buffer の追加 (効率的な OoO 実行が出来るように なる) 7
具体的には:機能拡張 • 最小限の RISC-V の実装 (RV64I User-Mode) • 整数乗算・除算命令の追加 (M
拡張) • アトミック命令の追加 (A 拡張) • 圧縮命令 (16bit 命令長化) の追加 (C 拡張) • Machine-Mode の追加 (PLIC, CLIC といった例外コントロー ラ含む) • Supervisor-Mode の追加 • (本当に余裕があれば) 単精度浮動小数点命令の追加 (F 拡張) 8
CPU 自作はどういうものか
CPU のデバッグってどうするの? 基本的には命令列をメモリにマップし、命令コミット時点でのレ ジスタステート等をゴールデンモデル2と比較。 2様々な定義がありますが、ここでは ISA に対し真正な挙動をするモデルの意味 9
デバッグ:波形? 10
デバッグ:ターミナル printf デバッグの方が楽! 11
デバッグ:ゴールデンモデルとの比較 テスト自動化出来る場合は多いが、基本的に複数命令に跨った問 題が発生するので見比べる必要がある 例:モデルのダンプ … C0: 21 [0] pc=[0000001002] W[r
0=0000000000000000][0] R[r 0=0000000000000000] R[r 0=918250ce690efa03] inst=[00006db7] lui s11, 0x6 … 12
テーマの進捗状況
進捗:書籍 一先ずある程度読める形になったのが以下の章 • Verilog-HDL 解説&回路設計基礎 • Chisel 解説 • RISC-V
解説 • キャッシュ解説 • シングルサイクルプロセッサ実装 • 5 ステージパイプライン実装 が、まだ不完全で本としての流れが出来ていない。 13
進捗:CPU 実装 Set Associative キャッシュ等を作れたのは良いが、メインの 5 ス テージ パイプライン RV64IM(User-Mode
Only) が非自明なバグを 埋め込んでしまったので再実装中。 Register File IF ID EX MEM WB Memory Register File IF ID EX MEM WB Memory 14
現状の問題 • Chisel が相当不安定 (この一年で API 含めエコシステムがか なり変更された, 公式ドキュメントが古くて内容が通用し ない…etc
…) • 初学者が何に躓くのかわからなくなってしまい悩み込む3 • ご時世で時間捻出が大変 3個人的に、分かれば自明病 (分かってしまうと勉強してた時なにに躓いていた のがわからなくなる) と呼んでいます 15
今後について
今後の予定 4,5 月中 人を募ってプライベートプレビューをして貰う 6,7 月 (開始から一年の区切り) にキャッシュ付きパイプライン章 までを纏めた本として公開予定 16
ご清聴ありがとうございました この場でもサイボウズラボの方々、特にメンターである光成さん にお礼を言わせてください。ご面倒ばかりおかけしてしまいまし たが、約一年間指導して頂きありがとうございました! 発表には間に合いませんでしたが、6 月までには本として発表す る予定なので、その際はよろしくお願いします。 17