經過上兩篇文章的閱讀,大家應該清楚自己的CPU大致是如何處理數據的,而又是如何執行指令的。我們現在來在簡略的說一下流水線CPU的設計。(源碼在CSDN下載頁,請自取)
流水線CPU的基本數據通路和單周期沒有什么太大區別,而且也是每個時鐘周期都有一條指令執行結束。但是他又和多周期CPU一樣一條指令需要多個時鐘周期完成。而同時使這兩條條件同時滿足的就是流水線技術了。先上一張圖
由于在多周期CPU中,比如我們正在第三級執行第五條指令的執行操作,對于整個數據通路來講,其它幾級都是空閑狀態,那我們為了提高CPU的工作效率,就讓他提前后邊指令的其他幾級操作。這樣一來,我們的CPU就像工廠內的流水線一樣,每一級都在工作,大大提升了他的工作效率。
在設計中,流水線CPU甚至會比多周期CPU更好實現。由于數據是一級一級向下流,我們都無需進行狀態機的狀態轉移來控制,只需要讓數據與他的控制信號同步流向器件。每一個時鐘周期數據都是從上一級流向下一級。而對應的寄存器就是在每個時鐘上升沿都讀出舊數據,寫入新數據。
但是在流水線CPU中,分支跳轉語句變成了一個難點,當指令發現是分支跳轉指令時,輸出branch信號,后等待ALU輸出比較值是否相等。如果相等,進行跳轉。但是跳轉時,我們的流水線已將后三條指令讀入并操作了一部分了。這時我們便需要清空存儲器。或者我們也可以當檢測到branch信號時CPU停止讀入指令,直到判斷結果輸出時在進行跳轉。、
流水線CPU是非常好用的CPU,在我們后續的程序編寫的時候基本上都會使用流水線CPU,偶爾也會用多周期CPU。
-
FPGA
+關注
關注
1660文章
22408瀏覽量
636239
發布評論請先 登錄
軟通動力ASDM AI優先軟件研發流水線助力軟件工程發展
智造中樞:疆鴻智能DEVICENET轉MODBUS RTU網關在食品包裝流水線的融合之舞
流水線基本結構
如何更好地選擇工業流水線上用的條碼掃碼器?
固定式掃碼器,用于流水線掃紙盒子上的條碼進行分揀
工業讀碼器在SMT流水線上讀一維碼或二維碼
流水線掃碼升級選NVF230!工業二維碼讀碼器方案實測
自動化開裝封碼流水線數據采集解決方案
面包成型流水線數據采集遠程監控系統
遠程io模塊在汽車流水線的應用
工業4.0時代,為什么你的流水線必須配備固定式掃碼器?
工業流水線上用的條碼掃碼器,如何選擇與使用?
RISC-V五級流水線CPU設計
效率卡在掃碼環節?工廠流水線加裝工業級掃碼設備,產能直接拉滿
自制CPU(三)流水線
評論