接上次,我們簡(jiǎn)單的說(shuō)了一下單周期的理解,下面我們說(shuō)一下多周期。
單周期每一條指令都是一個(gè)時(shí)鐘周期結(jié)束。但是不同類(lèi)型的指令可能進(jìn)行的步驟不同,導(dǎo)致最終CPU的頻率上不去,這是由于木桶原則,時(shí)鐘必須大于最長(zhǎng)一條指令完成的時(shí)間。
而在多周期的設(shè)計(jì)中,我們將一條指令的執(zhí)行分解成為多個(gè)部分,不同部分的每個(gè)時(shí)鐘從上一級(jí)寄存器中讀入數(shù)據(jù),進(jìn)行計(jì)算,然后將數(shù)據(jù)送入下一級(jí)寄存器。這樣一條指令就有多個(gè)時(shí)鐘周期完成。每個(gè)時(shí)鐘周期完成指令中的一部分操作。
在多周期的設(shè)計(jì)中,基本與單周期相同,只是要將單周期數(shù)據(jù)通路中的純組合電路(注意,在單周期設(shè)計(jì)中不包含存儲(chǔ)的都是組合電路)在不同級(jí)中間加一個(gè)寄存器,使每一級(jí)計(jì)算出數(shù)據(jù)后都可以把數(shù)據(jù)寫(xiě)入到寄存器以供下個(gè)時(shí)鐘上升沿到來(lái)時(shí)下一級(jí)從中讀取輸入。
而多周期需要一個(gè)部件就是一個(gè)狀態(tài)機(jī),用狀態(tài)機(jī)來(lái)控制當(dāng)前指令到一個(gè)指令的執(zhí)行部位(即有效數(shù)據(jù)正在從哪一級(jí)流向哪一級(jí)),然后輸出該級(jí)運(yùn)算的狀態(tài)控制信號(hào)來(lái)控制數(shù)據(jù)通路。
多周期同時(shí)要注意直接跳轉(zhuǎn)和跳轉(zhuǎn)分支的執(zhí)行,狀態(tài)機(jī)在此處注意狀態(tài)的正確轉(zhuǎn)移。(由于他們的狀態(tài)不一致)
-
FPGA
+關(guān)注
關(guān)注
1645文章
22050瀏覽量
618604
發(fā)布評(píng)論請(qǐng)先 登錄
季豐精密機(jī)械成功完成三溫工程Kit自制
循環(huán)經(jīng)濟(jì) 2.0:海翔科技如何用區(qū)塊鏈技術(shù)追溯二手設(shè)備全生命周期


CPU的各種指令和執(zhí)行流程
Arm解讀Armv9 CPU為何是打造高性能、高能效移動(dòng)計(jì)算的關(guān)鍵
二維周期光柵結(jié)構(gòu)(菱形)光波導(dǎo)的應(yīng)用
EE-197:ADSP-BF531/532/533 Blackfin處理器多周期指令和延遲

EE-171:ADSP-BF535 Blackfin處理器多周期指令和延遲

評(píng)論