iT邦幫忙

2026 iThome 鐵人賽

DAY 8
0
Software Development

猴子都寫得出來的 RISC-V OoO CPU系列 第 8 篇

In Order CPU 的接縫(seam)

  • 分享至 

  • xImage
  •  

從昨天的描述我們可以知道接縫有很多層面
今天專注在拆解 pipeline 的部分

在開始之前,我們可以先欣賞 Jserv 前輩的作品 ca2025-mycpu
雖然這是用 chisel 的實作,但各種 HDL 的表現形式都很像
我們先忽略那些語法上的不同,可以從名稱很明顯地看到整個 pipeline 結構

inst_fetch.io
...
if2id.io
...
id.io
...
id2ex.io
...
ex.io
...
ex2mem.io
...
mem.io
...
mem2wb.io
...
wb.io

只要是想讓自己生活舒服一點的工程師
大部分都會形成這類把細節隱藏,展現意圖和流程的設計共識
除非在時程不允許或者有特殊需求的情況下
迫於無奈才會跟實作細節混合在一起
產生俗稱"義大利麵式"的設計

而現在,我們面對的就是這個狀況
昨天有看過這份 in order CPU 實作的朋友應該都會發現 core_pipeline.sv 跟預期的結構不一樣

fetch
...
decoder
...
decode_dispatch_register
...
<combinational logic>       <------ ????
...
issue_buffer 
...
issue_execute_register 
...
execution
...
completion
...
retirement

碰到這種情況
最終只能從 waveform 觀察結果
從這邊我們就看到有趣的東西了
大家可以一起來看一下,這個行為跟昨天預期的是一樣的嗎?
https://ithelp.ithome.com.tw/upload/images/20260922/20140342GfV56hpHNy.png
.
.
.
.
.
.
.
.
.
防雷頁
.
.
.
.
.
.
.
.
.
.
蝦密!!
if 到 id 中間竟然多了一個 cycle
跟神燈精靈昨天告訴我們的不一樣!
沒學過怎麼追 waveform 是真的會被騙過去的

剛好對應到前輩最近的貼文
感謝前輩的提醒,小猴還有很多努力的空間
https://ithelp.ithome.com.tw/upload/images/20260922/20140342f8EQicjrWA.png
(偷偷說 Jev 太有趣,玩一玩就要超時了(艸

git link with tag: https://github.com/hsufit/TINY5_OOO/tree/ithome2026_D8


上一篇
In Order CPU 長怎樣? 能吃嗎?
下一篇
In Order CPU Pipeline Flow
系列文
猴子都寫得出來的 RISC-V OoO CPU 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言