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
マイクロプロセッサの設計と実装実験成果スライド
Search
Yuto Nakamura
December 23, 2022
Education
0
2.4k
マイクロプロセッサの設計と実装実験成果スライド
Yuto Nakamura
December 23, 2022
Tweet
Share
More Decks by Yuto Nakamura
See All by Yuto Nakamura
車載エッジデバイスにおけるAI実装
yutyan0119
0
1.3k
Other Decks in Education
See All in Education
2024-2025 CBT top items
cbtlibrary
0
120
沖ハック~のみぞうさんとハッキングチャレンジ☆~
nomizone
1
260
Transición del Management al Neuromanagement
jvpcubias
0
240
生態系ウォーズ - ルールブック
yui_itoshima
1
270
20250807_がんばらないコミュニティ運営
ponponmikankan
0
180
[Segah 2025] Gamified Interventions for Composting Behavior in the Workplace
ezefranca
0
160
バケットポリシーの記述を誤りマネコンからS3バケットを操作できなくなりそうになった話
amarelo_n24
1
110
Human Perception and Cognition - Lecture 4 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
1.2k
フィードバックの伝え方、受け身のココロ / The Way of Feedback: Words and the Receiving Heart
spring_aki
1
170
(2025) L'origami, mieux que la règle et le compas
mansuy
0
150
Avoin jakaminen ja Creative Commons -lisenssit
matleenalaakso
0
2k
the difficulty into words
ukky86
0
140
Featured
See All Featured
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
2.7k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
860
For a Future-Friendly Web
brad_frost
180
9.9k
Being A Developer After 40
akosma
91
590k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
127
53k
Balancing Empowerment & Direction
lara
4
680
Navigating Team Friction
lara
189
15k
YesSQL, Process and Tooling at Scale
rocio
173
14k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Transcript
MICROPROCESSOR DESIGN & IMPLEMENTATION
実装方針 • 5段パイプライン • 2bit分岐予測 • フォワーディング有り • スーパースカラー ◦
2つ目のパイプライ ンは制約有り ◦ ALU/Branch x 2 ◦ RegRead x 4 2
第一世代 2K performance run parameters for coremark. CoreMark Size :
666 Total ticks : 1093050850 Total time (secs): 13 Iterations/Sec : 23 Iterations : 300 3 • 5サイクル化 • パイプライン化はしない ◦ FDEMW -> FDEMW … • 80Mhzで実機動作
第二世代 2K performance run parameters for coremark. CoreMark Size :
666 Total ticks : 2095233356 Total time (secs): 17 Iterations/Sec : 117 Iterations : 2000 4 • パイプライン化 • 常に分岐しない予測 ◦ ストールを短くする ◦ ストールは addi x0, 0 で命令 を差し替える • メモリアドレス専用の加算機 • 123Mhzで実機動作 D E M W F D X X X F X X X X F F D E M W
第三世代 5 • 第二世代に分岐予測を足した • 118Mhzで実機動作
第三世代 2K performance run parameters for coremark. CoreMark Size :
666 Total ticks : 1958052487 Total time (secs): 15 Iterations/Sec : 133 Iterations : 2000 6 • 第二世代に分岐予測を足した • 118Mhzで実機動作 ※2bit分岐予測でも2レベル適応型分岐予測でもCoremarkのスコアは変わらず🤔
第四世代 7 • スーパースカラー化 • 以下のときは2つ目は実行しない ◦ 1つ目が分岐予測のとき ◦ メモリ命令のとき
◦ 1つ目の命令とRAWハザード ◦ 1つ目の命令とWAWハザード すべてのテストに通過したが CoreMarkは動作せず… 参考: IntRegReg 47clock-> 35clock IntRegImm 48clock -> 31clock
困った事 • すべてのテストに通ってCoremarkのトレースが一致しても Coremark_for_Synthesisが動かないことがあった ◦ Hardware counterの実装バグ ◦ 自前でテストを書いて解決 •
LoadAndStoreの仕様に気づくのに時間がかかる • ALU内で >>> が想定動作をしない($signedつけてもダメ) • vivadoのsimulationが結構な頻度で落ちる 8
やりたかったこと • スーパースカラー化完遂 • メモリアライメントを無視した命令への対応 (公式曰くoptional) • M命令、 FPU実装など… •
公式テストの実行 ◦ https://github.com/riscv-software-src/riscv-tests ◦ jalrはこれでテストしてみたがあってるかわからない (Privileged/CSR Instructionを実装していないため) 9
おわり 10 楽しかったです!!!