流水線設計

2022-06-04 18:27:10 字數 2137 閱讀 7945

流水線使用儲存器件將時鐘週期內關鍵路徑(最大組合延遲的路徑)分割開來,減少了關鍵路徑上各階段延遲並使迪娜路能以更高頻率工作。

優點:提高了時鐘頻率,增加了各階段時鐘的計算能力;

缺點

所有共享一條流水線的指令的階段和階段次序必須相同,例如「add」指令在儲存器階段什麼也不做;

所有中間值必須在各週期鎖存;

不能復用任何功能模組;

乙個階段的所有操作都應在乙個週期內完成;

冒險會干擾流水線並阻止下一條指令在目標週期內的執行,會降低流水線在理想情況下所能帶來的速度提公升。

主要分為三類:結構冒險、資料冒險、控制冒險。

參考:含義

由於資源衝突使硬體無法支援所有可能的指令組合同時執行,即多個指令同時要求訪問同乙個位址,或流水線不同階段需要使用同一模組;

如果一條指令需要的硬體部件還在為之前的指令工作,而無法為這條指令提供服務,那就導致了結構冒險。

1、在發生衝突時將流水線停乙個時鐘週期,產生乙個流水線氣泡,在增加乙個時鐘延遲的情況下執行。

2、增加乙個額外的mem模組(本問題中),使不同指令使用不同的模組進行工作,但是增加了硬體資源。

含義:指當前指令的執行需要依賴前面指令執行的結果,後一條指令需要使用前一條指令的輸出。

如果一條指令需要某資料而該資料正在被之前的指令操作,那這條指令就無法執行,就導致了資料冒險。

解決方法:

1、資料/暫存器轉移

含義:通常發生在由於分支語句使程式計數器(pc)發生變化的情況下。

如果現在要執行哪條指令,是由之前指令的執行結果決定,而現在那條之前指令的結果還沒產生,就導致了控制冒險。

時鐘頻率是根據資料流入系統後在輸出端出現的速率,許多因素都會影響系統的最大時鐘頻率。

以下圖為例,當不存在時鐘偏移、a輸入輸出響應為0,b建立時間和儲存時間為0時,最大之中頻率僅與中間組合邏輯延遲tcomb有關,成反比。

但是實際中存在許多其他因素會影響時鐘頻率,如時鐘偏移和抖動。

時鐘偏移對流水線最大頻率的影響

當流水線相鄰兩個暫存器的時鐘延遲tskw大於tcomb時,會產生負時鐘偏移,先到的時鐘會引起競爭條件,即資料在未成功鎖存時就出發了暫存器。

時鐘偏移傾向於增加電路所能承受的最大時鐘頻率。

時鐘抖動對流水線最大頻率的影響

時鐘抖動:到達電路中某一點的連續時鐘邊沿之間間隔的變化稱為時鐘抖動tjit

以下圖中關鍵路徑co的路徑為例討論時鐘抖動的影響:

時序圖如下:

因此,最大的時鐘週期應該為,需要考慮最壞情況下最大的時鐘抖動,導致時鐘頻率減小:

可以考慮在組合邏輯中增加暫存器構建流水線結構來提高最大頻率。

根據mips處理器的特點,將整體的處理過程分為取指令(if)、指令解碼(id)、執行(ex)、儲存器訪問(mem)和暫存器回寫(wb)五級,對應多週期的五個處理階段。

乙個指令的執行需要5個時鐘週期,每個時鐘週期的上公升沿來臨時,此指令所代表的一系列資料和控制資訊將轉移到下一級處理。

流水線設計

在這裡記錄一下自己插流水的心得。最近是做了乙個補邊的模組,補完給卷積核做卷積運算。因為只用了乙個fifo還是怎麼樣,時序緊張了,就是大的行快取fifo的輸出接回去fifo的輸入,另一路接到另乙個輸出fifo上。因此插了一級暫存器,插的過程中發現兩個可能會矛盾的點。再加上之前梯度計算部分也涉及到了許多...

流水線設計思想

在硬體電路設計中,流水線設計思想是一種很重要的設計思想,這種思想是一種用面積換速度的思想,用更多的資源來實現高速。面積就是需要的硬體數量,如觸發器的數量 顧名思義,流水線思想,就像工廠中的流水線一樣。假設是乙個手機組裝的流水線,乙個三個步驟 a,將電池裝入手機起來 b,將螢幕組裝起來 c,將外殼組裝...

反壓流水線設計

當然,除了cpu,只要是乙個週期無法完成的功能,在效能優先的設計中,為了提高吞吐率,都可以採用流水線技術來對功能路徑進行切分,比如乘法器等。2流水線的stage劃分 我們知道,流水線的分割線是一組暫存器,這條分割線放在哪個位置完全由設計者決定。一般來說,劃分流水線的時候主要有以下三點考慮 如果流水線...