計(jì)算機(jī)組成原理之處理器(流水線)

引言

為什么不采用單周期實(shí)現(xiàn),硬件比較簡單?

主要是因?yàn)樾侍退傅牵幚砥髦凶铋L的路徑(一般是ld指令)決定了時鐘周期

流水線概述

流水線是一種能使多條指令重疊執(zhí)行的技術(shù)。

流水線更快的原因是所有的工作都在并行執(zhí)行,所以單位時間能夠完成更多的工作狗热,流水線提高了吞吐率。

file

RISC-V是五級流水線 約等于五倍加速比

  • 從存儲器中取出指令I(lǐng)F
  • 讀寄存器并譯碼指令I(lǐng)D
  • 執(zhí)行操作或計(jì)算地址EX
  • 訪問數(shù)據(jù)存儲器的操作數(shù)MEM
  • 將結(jié)果寫入寄存器WB
file

流水線冒險

當(dāng)講到流水線型的處理器的時候虑省,冒險是絕對不能忽視的匿刮。

結(jié)構(gòu)冒險

即硬件不支持多條指令在同一時鐘周期執(zhí)行。但是RIscv是面向流水線設(shè)計(jì)的探颈,一些結(jié)構(gòu)冒險早已經(jīng)考慮到了熟丸。比如IM與DM的硬件分離。

數(shù)據(jù)冒險

由于一個步驟必須等待另一個步驟完成而導(dǎo)致的流水線停頓加Data Hazard

一種基本的解決方案是前遞法伪节,后面再詳細(xì)介紹光羞,這里提一下。

例子:

add x19, x0, x1

sub x2, x19 ,x3

sub指令x19使用的是add指令的rd也就是19號寄存器架馋,這里會產(chǎn)生冒險狞山。

前遞解決圖示:

file

但是請注意,前遞不能解決所有的數(shù)據(jù)冒險叉寂,比如有ld use型指令萍启。ld指令的rd被下一條指令進(jìn)行使用,這個時候必須要停頓一個周期才能用前遞解決。

file

控制冒險

出現(xiàn)在需要根據(jù)一條指令的結(jié)果后做決定勘纯,而其他指令在執(zhí)行局服。

控制冒險的解決,可以采用停頓法或者預(yù)測法驳遵。停頓法這種保守的方法固然有效淫奔,但是太慢了。但是預(yù)測也有時候會出錯堤结,總之這個是個有優(yōu)化空間的方案唆迁。

file

預(yù)測其實(shí)有種動態(tài)預(yù)測的方法來處理分支。就是比如:上一次預(yù)測失敗了竞穷,這次改變預(yù)測的策略唐责。

流水線的通路與控制

概覽圖

file

流水線:

file

WB階段問題

考慮:

ld x10 0(x11)   A
add x1 x2 x3    B
add x4 x5 x6    C
add x7 x8 x9    D

ld運(yùn)行到WB階段,將DM中的值寫回寄存器但是由于D號指令此時正讀瘾带,表示X7為writeReg,那么值就會寫錯鼠哥!解決這個問題要添加額外的數(shù)據(jù)通路

如圖:

file

時鐘周期切片

如圖

file

控制的添加

既然添加了額外的器件,為了實(shí)現(xiàn)流水線看政,還要添加控制

file

完整的數(shù)據(jù)通路

看圖看圖朴恳!

file

關(guān)于冒險進(jìn)一步說明

關(guān)于數(shù)據(jù)冒險

數(shù)據(jù)冒險實(shí)際上有兩對條件。

EX/MEM.RegisterRd = ID/EX.RegisterRs1

EX/MEM.RegisterRd = ID/EX.RegisterRs2

MEM/WB.RegisterRd = ID/EX.RegisterRs1

MEM/WB.RegisterRd = ID/EX.RegisterRs2

下一條要用到上一條的結(jié)果允蚣。

前遞法解決

file

檢測冒險的條件以及解決相應(yīng)冒險的控制信號

EX冒險

file
file

ME冒險

file

更復(fù)雜的

file

數(shù)據(jù)冒險與停頓

載入使用型指令必要阻塞(停頓)stall

file

完整圖示

file

本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布于颖!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市嚷兔,隨后出現(xiàn)的幾起案子恍飘,更是在濱河造成了極大的恐慌,老刑警劉巖谴垫,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異母蛛,居然都是意外死亡翩剪,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進(jìn)店門彩郊,熙熙樓的掌柜王于貴愁眉苦臉地迎上來前弯,“玉大人,你說我怎么就攤上這事秫逝∷〕觯” “怎么了?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵违帆,是天一觀的道長浙巫。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么的畴? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任渊抄,我火速辦了婚禮,結(jié)果婚禮上丧裁,老公的妹妹穿的比我還像新娘护桦。我一直安慰自己,他們只是感情好煎娇,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布二庵。 她就那樣靜靜地躺著,像睡著了一般缓呛。 火紅的嫁衣襯著肌膚如雪催享。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天强经,我揣著相機(jī)與錄音睡陪,去河邊找鬼。 笑死匿情,一個胖子當(dāng)著我的面吹牛兰迫,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播炬称,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼汁果,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了玲躯?” 一聲冷哼從身側(cè)響起据德,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎跷车,沒想到半個月后棘利,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡朽缴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年善玫,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片密强。...
    茶點(diǎn)故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡茅郎,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤空闲,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站掌敬,受9級特大地震影響惯豆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜涝开,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一循帐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧舀武,春花似錦拄养、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至寻馏,卻和暖如春棋弥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诚欠。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工顽染, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人轰绵。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓粉寞,卻偏偏與公主長得像,于是被迫代替她去往敵國和親左腔。 傳聞我的和親對象是個殘疾皇子唧垦,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內(nèi)容