「博文連載」Wishbone總線同步結束與異步結束對比

「博文连载」Wishbone总线同步结束与异步结束对比

為了實現在給定時鐘頻率下的最大可能吞吐量,Wishbone採用了週期異步結束方式。這樣做的結果是從主設備的STB_O到從設備的ACK_O/ERR_O/RTY_O再到主設備的ACK_I/ERR_I/RTY_I輸入形成了一個異步迴路,如圖23。在大型SoC設計中,該回路往往成為整個設計的關鍵路徑,限制系統時鐘頻率的進一步提高。在深亞微米時代,由於線延遲往往比門延遲更大,這一異步迴路更加可能成為系統性能的瓶頸。

「博文连载」Wishbone总线同步结束与异步结束对比

圖23 Wishbone總線的異步週期結束路徑

這一問題的最簡單解決方法是插入寄存器將回路斷開,但這樣做的缺點是在每一次總線操作中都需要插入一個等待週期,從而制約了總線吞吐量。如圖24所示,在上升沿0主設備發起了一次操作,在上升沿1從設備發起響應將ACK_O置高,在上升沿2主設備檢測到ACK_I為高完成第一次操作併發起第二次操作,但是在上升沿2從設備並不知道主設備會發起第二次操作,因此只能將ACK_O信號置低。在上升沿3從設備才能對第二次操作發起響應將ACK_O置高,在上升沿3主設備檢測到ACK_I為高完成第二次操作。

「博文连载」Wishbone总线同步结束与异步结束对比

圖24 Wishbone總線的傳統同步週期結束方式

在圖24中,每一次傳輸都需要兩個時鐘週期,一半的帶寬被浪費。如果從設備在上升沿3知道主設備將發起新的操作,它將能夠在上升沿3就對主設備的操作發起響應,從而節省時鐘週期提高了系統的吞吐量,利用該思想改進後的同步時序如圖25所示。

「博文连载」Wishbone总线同步结束与异步结束对比

圖25 Wishbone總線改進的同步週期結束方式

在圖25的上升沿1,主設備發起操作,在上升沿2,從設備將ACK_O置高,在上升沿3,從設備知道主設備將發起新的操作,於是將ACK_O繼續置高。因此, 3個時鐘週期就完成了2次操作,而不是原來大的4個時鐘週期,於是吞吐量提高了25%。一般的,改進後,N次操作需要N+1個時鐘週期,而不是2N個時鐘週期,吞吐量改善為(N-1)/N%。

改進後的同步週期結束方式具備異步週期結束方式的吞吐量優勢,同時具備傳統同步結束方式的延遲優勢。改進後的同步週期結束方式稱作Wishbone寄存反饋週期結束方式。

「博文连载」Wishbone总线同步结束与异步结束对比

表2 優化結果比較

「博文连载」Wishbone总线同步结束与异步结束对比
「博文连载」Wishbone总线同步结束与异步结束对比


分享到:


相關文章: