流水線中的相關(guān)培訓(xùn)教程[3]
流水線中的相關(guān)培訓(xùn)教程[3]
(1) 寫后讀相關(guān)(RAW:Read After Write) (命名規(guī)則) :j 的執(zhí)行要用到 i 的計(jì)算結(jié)果,當(dāng)它們?cè)诹魉€中重疊執(zhí)行時(shí),j 可能在 i 寫入其計(jì)算結(jié)果之前就先行對(duì)保存該結(jié)果的寄存器進(jìn)行讀操作,從而得到錯(cuò)誤的值。這是最常見的一種數(shù)據(jù)相關(guān),圖3.3.6和圖3.3.7中采用定向技術(shù)消除的數(shù)據(jù)相關(guān)就屬于這種類型。
??? (2) 寫后寫相關(guān)(WAW:Write After Write ):j 和 i 的目的寄存器相同,當(dāng)它們?cè)诹魉€中重疊執(zhí)行時(shí),j 可能在 i 寫入其計(jì)算結(jié)果之前就先行對(duì)該結(jié)果寄存器進(jìn)行寫操作,從而導(dǎo)致寫入順序錯(cuò)誤,在目的寄存器中留下的是 i 寫入的值,而不是 j 寫入的值。
??? 如果在流水線中不只一個(gè)段可以進(jìn)行寫操作,或者當(dāng)流水線暫停某條指令時(shí),允許該指令之后的指令繼續(xù)前進(jìn),就可能會(huì)產(chǎn)生這種類型的數(shù)據(jù)相關(guān)。由于 DLX 流水線只在 WB 段寫寄存器,所以在 DLX 流水線中執(zhí)行的指令不會(huì)發(fā)生這種類型的數(shù)據(jù)相關(guān)。如果我們對(duì)DLX流水線作如下改變,在DLX流水線中執(zhí)行的指令就有可能發(fā)生WAW相關(guān)。首先,將 ALU 運(yùn)算結(jié)果的寫回操作移到 MEM 段進(jìn)行,因?yàn)檫@時(shí)計(jì)算結(jié)果已經(jīng)有效;其次,假設(shè)訪問數(shù)據(jù)存儲(chǔ)器占兩個(gè)流水段。下面是兩條指令在修改后的 DLX 流水線中執(zhí)行的情況:
??? 可以看出,在修改后的 DLX 流水線中執(zhí)行上述指令序列后,寄存器 R1 中的內(nèi)容是第一條指令(LW)的寫入結(jié)果,而不是 ADD 指令的寫入結(jié)果。這就是由于 WAW 相關(guān)所帶來的錯(cuò)誤執(zhí)行結(jié)果。
??? (3) 讀后寫相關(guān)(WAR:Write After Read ):j 可能在 i 讀取某個(gè)源寄存器的內(nèi)容之前就先對(duì)該寄存器進(jìn)行寫操作,導(dǎo)致 i 后來讀取到的值是錯(cuò)誤的。
??? 由于 DLX 流水線在 ID 段完成所有的讀操作,在 WB 段完成所有的寫操作。所以,在 DLX 流水線中不會(huì)產(chǎn)生這種類型的數(shù)據(jù)相關(guān)?;谏厦嫘薷暮蟮?DLX 流水線,考察下面兩條指令的執(zhí)行情況:
??? 如果 SW 指令在 MEM2 段的后半部分讀取寄存器 R2 的值,ADD 指令在 WB 段的前半部分將計(jì)算結(jié)果寫回寄存器 R2,則 SW 將讀取錯(cuò)誤的值,將 ADD 指令的計(jì)算結(jié)果寫入存儲(chǔ)器中。值得注意的是,在讀后讀(RAR: Read After Read)的情況下,不存在數(shù)據(jù)相關(guān)問題。
4. 需要暫停的數(shù)據(jù)相關(guān)
??? 前面我們討論了如何利用定向技術(shù)消除由于數(shù)據(jù)相關(guān)帶來的暫停。但是,并不是所有數(shù)據(jù)相關(guān)帶來的暫停都可以通過定向技術(shù)消除。
??? 為了保證流水線正確執(zhí)行上述指令序列,可以設(shè)置一個(gè)稱為流水線互鎖(pipeline interlock)的功能部件。一旦流水線互鎖檢測(cè)到上述數(shù)據(jù)相關(guān),流水線暫停執(zhí)行LW指令之后的所有指令,直到能夠通過定向解決該數(shù)據(jù)相關(guān)為止。
圖3.3.12為流水線互鎖插入暫停后流水線數(shù)據(jù)通路;
??? 圖3.3.13是 加入暫停前后的流水線時(shí)空?qǐng)D。
?
非常好我支持^.^
(2) 100%
不好我反對(duì)
(0) 0%
相關(guān)閱讀:
- [電子說] 淺析OpenVINO 2024.5的新功能 2024-11-25
- [電子說] 工業(yè)讀碼器解決方案在自動(dòng)化流水線上掃描條碼的應(yīng)用 2024-11-20
- [電子說] SMT流水線布局優(yōu)化技巧 2024-11-14
- [電子說] 工業(yè)流水線的智能助手——智能計(jì)數(shù),效率倍增 2024-11-06
- [電子說] 流水線中Half-Buffer與Skid-Buffer的使用 2024-11-05
- [電子說] 使用PVA引擎優(yōu)化自動(dòng)駕駛汽車CV開發(fā)流水線 2024-11-05
- [電子說] 簡(jiǎn)述光電開關(guān)在流水線上的應(yīng)用BR100-DDT如計(jì)數(shù)等 2024-10-31
- [電子說] 工廠自動(dòng)化流水線上安裝固定式工業(yè)掃描器有什么好處? 2024-10-30
( 發(fā)表人:admin )