0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Wishbone II交易總線:速度的另一個(gè)等級(jí)

星星科技指導(dǎo)員 ? 來源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Uros Platise ? 2022-11-14 15:38 ? 次閱讀

OpenCore和Silicore的Wishbone規(guī)范,旨在提供標(biāo)準(zhǔn)的IP核互連方案,以滿足現(xiàn)代片上系統(tǒng)(SoC)設(shè)計(jì)的要求,包括CPUDMA引擎,內(nèi)存接口,外設(shè)接口等。

andEuros公司自成立以來一直使用Wishbone規(guī)范,并開發(fā)了Wishbone總線的改進(jìn)版本,稱為Wishbone II,以提出一種先進(jìn)的流水線架構(gòu),其中讀寫事務(wù)是分開的,總線充當(dāng)事務(wù)總線。通過這種方式,可以同時(shí)進(jìn)行多個(gè)事務(wù),通過采用新的每單元鎖定概念,消除路徑上的所有延遲并停止 RMW 周期。當(dāng)然,最終的好處是最終總線吞吐量已增加到最大。

大規(guī)模FPGA/ASIC SoC設(shè)計(jì)的設(shè)計(jì)和開發(fā)迫使設(shè)計(jì)人員實(shí)現(xiàn)具有標(biāo)準(zhǔn)化模塊接口的模塊化架構(gòu),該接口以任何可能的配置連接各種IP模塊。OpenCores發(fā)布了最流行的互連架構(gòu)之一,稱為Wishbone B.3總線。以類似的方式,Altera引入了自己的互連方案,稱為Avalon Bus,SOPC Builder和Nios(II)系統(tǒng)就是圍繞該方案制造的。Xilinx 還推出了自己的總線,稱為片上外設(shè)總線與處理器本地總線 相結(jié)合。

這些互連架構(gòu)是面向單事務(wù)主/從的,這意味著只要沒有收到該字,從給定地址請(qǐng)求單詞的 CPU 就會(huì)停止自身和到目標(biāo)的路徑(總線)。以這種方式丟失了大量總線周期,盡管系統(tǒng)總線頻率相對(duì)較高,但實(shí)際數(shù)據(jù)吞吐量仍低于預(yù)期。即使特殊信號(hào)引入了快速突發(fā)讀取和寫入,總線周期仍然會(huì)丟失,直到接收到第一個(gè)字,代價(jià)是源和目標(biāo)兩端的突發(fā)邏輯加倍。當(dāng)訪問具有較大延遲的較慢模塊時(shí),總線停滯更為明顯。在這些情況下,系統(tǒng)性能會(huì)顯著下降;例如,100 MHz 系統(tǒng)的吞吐量可能會(huì)下降到每秒幾 MB。

這就是為什么迫切需要開發(fā)采用新概念的總線架構(gòu)的原因。引入了一些新信號(hào)來支持基于 Wishbone B.3 架構(gòu)的新事務(wù)總線概念,克服了延遲問題,同時(shí)保持了向后兼容性。

叉骨II交易總線概念

在我們提議的總線中,交易由一個(gè)交易向量表示,其中包含:

源(模塊)地址

目標(biāo)(模塊)地址

算子

數(shù)據(jù)

源地址和目標(biāo)地址定義路徑;操作員描述要沿路徑和/或目標(biāo)地址執(zhí)行的一個(gè)或多個(gè)操作;某些操作需要提供補(bǔ)充數(shù)據(jù)才能完成交易。實(shí)際實(shí)現(xiàn)需要額外的握手信號(hào)。

事務(wù)向量被放置在事務(wù)總線上,將向量從源傳輸?shù)侥繕?biāo),并根據(jù)向量的請(qǐng)求執(zhí)行面向總線的操作。一旦事務(wù)向量被放置(發(fā)送),源就沒有進(jìn)一步的責(zé)任,事務(wù)總線將完全控制它。然后,源已準(zhǔn)備好發(fā)出下一個(gè)事務(wù)向量??梢允孪劝l(fā)出多個(gè)任務(wù)或請(qǐng)求,每個(gè)總線周期一個(gè),這減少了目標(biāo)模塊上任何預(yù)測(cè)邏輯的需求,以支持突發(fā)讀取或?qū)懭胱鳛楦鞣N突發(fā)讀取的預(yù)測(cè)邏輯。

有兩種類型的事務(wù):

獨(dú)立

依賴(當(dāng)它們的順序很重要時(shí))

為了支持依賴事務(wù),事務(wù)總線絕不能更改已放置事務(wù)的順序。事務(wù)總線具有完全確認(rèn)的機(jī)制,用于接受新的事務(wù)向量、執(zhí)行內(nèi)部轉(zhuǎn)發(fā)并傳遞到目標(biāo)模塊。透明架構(gòu)將自身反映為一個(gè)簡(jiǎn)單的輸入輸出黑匣子;但是,該實(shí)現(xiàn)基于多管道結(jié)構(gòu),其中每個(gè) (FIFO) 行包含一個(gè)事務(wù)向量。

Wishbone II 事務(wù)總線僅提供四種基本操作:

單次讀取

單次寫入

細(xì)胞鎖

總線鎖

單次讀取和寫入由模塊發(fā)出,其中單元和總線鎖定操作位于事務(wù)總線域中。突發(fā)讀取和突發(fā)寫入是通過發(fā)出讀取或?qū)懭胧聞?wù)流來完成的。RMW周期通過總線得到支持,甚至更好的是,可以使用新的單元鎖定概念來促進(jìn)它們,該概念不會(huì)使整個(gè)SoC總線停滯,而是將單個(gè)或多個(gè)存儲(chǔ)單元鎖定到給定的所有者。只要未解鎖,其他人就無法訪問這些單元格。

叉骨II信號(hào)

Wishbone II 事務(wù)向量由 Wishbone B.3 規(guī)范組成,引入了以下新信號(hào):

WB_ACW寫入確認(rèn)

WB_ACR閱讀致謝

WB_TGA雙向地址標(biāo)簽

WB_ALK地址鎖

在進(jìn)一步的文本中,前綴WB可以更改為WBM表示主接口,WBS表示從接口,也可以留空以描述任何主接口或從接口。輸入信號(hào)附加在末尾_I,輸出信號(hào)帶有_O。建議的總線丟棄了Wishbone B.3 ACK信號(hào),因?yàn)樗墓δ墁F(xiàn)在在ACR和ACW信號(hào)之間分配。表1列出了主機(jī)和從站的完整基本信號(hào)說明。新信號(hào)以粗體標(biāo)記。

叉骨二期巴士交易

寫入事務(wù)

寫入事務(wù)幾乎與 Wishbone B.3 規(guī)范中給出的寫入事務(wù)相同,除了 Wishbone II 使用 ACW 信號(hào)來確認(rèn)寫入周期。讀寫事務(wù)由與寫入事務(wù)相同的讀取請(qǐng)求組成,只是設(shè)置了目標(biāo)操作信號(hào) WE。

讀取事務(wù)

讀取事務(wù)由兩個(gè)事務(wù)組成:

源發(fā)出的讀取請(qǐng)求事務(wù)

目標(biāo)發(fā)出的讀取響應(yīng)事務(wù)

讀取請(qǐng)求由表示源的主模塊發(fā)送,方法是首先發(fā)出一個(gè)寫入事務(wù),并將目標(biāo)操作 WE 設(shè)置為讀取。主機(jī)應(yīng)設(shè)置地址標(biāo)記寫入向量以識(shí)別讀取響應(yīng)。(如果只有一個(gè)主控形狀,則不需要這樣做。讀取請(qǐng)求事務(wù)的確認(rèn)方式與寫入事務(wù)相同。

目標(biāo)通過返回由確認(rèn)信號(hào) ACR 標(biāo)記的單獨(dú)讀取響應(yīng)事務(wù)并提供有效數(shù)據(jù)和地址標(biāo)記讀取信息來完成事務(wù)。地址標(biāo)記讀取是地址標(biāo)記寫入的副本。

圖1顯示了一個(gè)示例系統(tǒng),在源(主)和目標(biāo)(從)設(shè)備之間的寫入(輸入)和讀?。ㄝ敵觯┞窂缴嫌幸粋€(gè)流水線級(jí)。該系統(tǒng)在兩個(gè)方向上都有 1 個(gè)循環(huán)方向;因此,請(qǐng)求-響應(yīng)循環(huán)至少需要 2 個(gè)等待周期。從屬(內(nèi)存)還可以執(zhí)行一些內(nèi)部管理,如刷新,這增加了等待狀態(tài)的總數(shù)。

圖1

21

您可以看到,圖 2 描述了給定示例的事務(wù)總線數(shù)據(jù)流圖,其中主站放置的三個(gè)讀取請(qǐng)求事務(wù)為 AD0、AD1 和 AD2,以及關(guān)聯(lián)的返回讀取響應(yīng)事務(wù)為 DO0、DO1 和 DO2。假設(shè)所有三個(gè)事務(wù)的信號(hào) WE 都被清除,以指示讀取操作。事務(wù) AD0 和 AD1 是突發(fā)事務(wù),這意味著 AD1 = AD0 + 1,而 AD2 是同時(shí)觸發(fā)的獨(dú)立事務(wù),可能是加載其中斷向量的外部中斷的原因,依此類推。

圖2

22

每個(gè)讀取請(qǐng)求事務(wù)由 ACW 信號(hào)確認(rèn),返回的讀取響應(yīng)事務(wù)由 ACR 信號(hào)標(biāo)記(確認(rèn))。請(qǐng)注意,由于其他更高優(yōu)先級(jí)的主節(jié)點(diǎn)或內(nèi)存刷新函數(shù)等原因,延遲順序可能不同。在前面的示例中,AD0 會(huì)立即得到確認(rèn),但需要 3 個(gè)等待周期才能返回 DO0;AD1 在 1 個(gè)周期后得到確認(rèn),而 DO1 僅在 2 個(gè)等待周期內(nèi)返回,DO2 再次需要 3 個(gè)等待周期。所有三筆交易都在 9 個(gè)周期內(nèi)完成;理論上,如果不添加兩個(gè)說明性等待周期,它們只會(huì)在 7 個(gè)周期內(nèi)完成。使用 Wishbone B.3 規(guī)范時(shí),圖 3 顯示了相同的場(chǎng)景。

圖3

23

AD0和AD1再次為突發(fā),AD1 = AD0 + 1,AD2為獨(dú)立請(qǐng)求。所有三個(gè)事務(wù)都在 12 個(gè)周期內(nèi)完成,性能降低了 41%(在 Wishbone II 中至少 7 個(gè)周期),即使額外的硅成本,這是源和目標(biāo)兩端的內(nèi)存突發(fā)邏輯實(shí)現(xiàn)。

想象一下,當(dāng)系統(tǒng)中共存多個(gè)主站以發(fā)出第一個(gè)單詞時(shí),連續(xù)突發(fā) Wishbone II 將在從屬端執(zhí)行 0 個(gè)等待周期(完全消除延遲)并且絕對(duì)沒有損失(再次是 0 個(gè)等待周期)。對(duì)于以 150 MHz 運(yùn)行的系統(tǒng)來說,更能說明問題,固定延遲為 2 個(gè)周期的長(zhǎng)突發(fā)將產(chǎn)生 150 M 字的 Wishbone II 帶寬,而 Wishbone B.3 僅產(chǎn)生 50 Mwords 的帶寬。

讀寫周期和專用總線/地址鎖定

可以使用總線 LOCK 信號(hào)進(jìn)行讀-修改-寫循環(huán),方法是發(fā)出讀取請(qǐng)求和 LOCK 信號(hào)集,等待讀取響應(yīng),然后進(jìn)行寫入,最后釋放 LOCK。為了不使整個(gè)總線失速,Wishbone II 引入了使用 ALK 信號(hào)的每單元內(nèi)存鎖定功能,該功能的使用方式與 Wishbone LOCK 信號(hào)幾乎相同,只是它不會(huì)停止整個(gè)總線,而是授予對(duì)由源 TGA 區(qū)分的給定模塊的獨(dú)占權(quán)限。

叉骨II駛向未來

Wishbone II 總線為 FPGA 和 ASIC 的 SoC 設(shè)計(jì)提出了一種面向事務(wù)總線的高級(jí)架構(gòu),其中架構(gòu)寫入和讀取操作作為單獨(dú)的寫入和讀取事務(wù)處理。每個(gè)事務(wù)都存儲(chǔ)在一行中,多管道架構(gòu)充當(dāng) FIFO 緩沖區(qū),從多個(gè)源模塊和目標(biāo)模塊傳輸多個(gè)事務(wù)。先進(jìn)的鎖定機(jī)制使用臨時(shí)的每單元鎖定機(jī)制,防止整個(gè)總線因 RMW 周期而失速。通過這種方式,整體設(shè)計(jì)數(shù)據(jù)吞吐量提高到最大,同時(shí)設(shè)計(jì)成功集成了慢速和高速、低延遲和高延遲外設(shè)和 CPU。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8360

    瀏覽量

    150530
  • soc
    soc
    +關(guān)注

    關(guān)注

    38

    文章

    4067

    瀏覽量

    217561
  • 總線
    +關(guān)注

    關(guān)注

    10

    文章

    2849

    瀏覽量

    87842
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    個(gè)總線傳輸周期包括哪四個(gè)階段

    的起始階段,它標(biāo)志著個(gè)設(shè)備(如CPU)需要訪問另一個(gè)設(shè)備(如內(nèi)存或I/O設(shè)備)的數(shù)據(jù)或服務(wù)。 1.1 請(qǐng)求信號(hào)的產(chǎn)生
    的頭像 發(fā)表于 10-12 09:05 ?195次閱讀

    tpa3255個(gè)聲道正常,另一個(gè)聲音大就保護(hù),為什么?

    TPA3255,2XBTL 模式,其中個(gè)聲道正常,另一個(gè)大動(dòng)態(tài)時(shí)FAULT保護(hù),OTW不亮.兩個(gè)聲道帶4R電阻負(fù)載測(cè)試都正常,280W左右,OTW會(huì)亮,幾十秒后超溫亮FAULT燈.
    發(fā)表于 10-11 06:43

    vca821的Vcc是1和14是否可以只對(duì)個(gè)引腳供電另一個(gè)懸空,內(nèi)部是否是通路?

    vca821的Vcc是1和14是否可以只對(duì)個(gè)引腳供電另一個(gè)懸空內(nèi)部是否是通路
    發(fā)表于 09-06 07:05

    電感的電流能否分流給另一個(gè)電感

    電感的電流能否分流給另一個(gè)電感,這個(gè)問題涉及到電感器的工作原理、特性以及在電路中的應(yīng)用。 電感器的基本概念 電感器是種被動(dòng)電子元件,其主要功能是存儲(chǔ)能量。電感器由個(gè)或多個(gè)導(dǎo)線繞成的
    的頭像 發(fā)表于 08-21 10:02 ?209次閱讀

    如何為SPI OLED顯示屏添加另一個(gè)設(shè)備?

    SPI 數(shù)據(jù)接口將圖像傳送到 OLED 顯示屏。使用 UVC 應(yīng)用說明中的說明操作 UVC 部件。如何為 SPI OLED 顯示屏添加另一個(gè)設(shè)備? 謝謝。
    發(fā)表于 05-31 06:18

    CYT2CL是否可以通過另一個(gè)內(nèi)核(CM4)控制在個(gè)內(nèi)核(CM0+)中配置的 SCB?

    在 CYT2CL 中,是否可以通過另一個(gè)內(nèi)核(CM4)控制在個(gè)內(nèi)核(CM0+)中配置的 SCB?
    發(fā)表于 03-06 07:53

    在tc275上怎么用個(gè)核觸發(fā)另一個(gè)核產(chǎn)生軟中斷?

    在tc275上怎么用個(gè)核觸發(fā)另一個(gè)核產(chǎn)生軟中斷?
    發(fā)表于 02-19 08:14

    如何使用BLE將數(shù)據(jù)從個(gè)PSOC發(fā)送到另一個(gè)PSOC?

    我有個(gè) PSOC 板(我正在使用 CY8CPROTO-063-BLE )采樣數(shù)據(jù),我想通過 BLE 將其發(fā)送到另一個(gè) PSOC 板。 我需要以 1.024 Mbit/sec 的速率傳輸數(shù)據(jù)(我正在
    發(fā)表于 01-29 07:53

    如何使用PWM信號(hào)控制Aurix TC39x板上的另一個(gè)信號(hào)?

    我正在使用 GTM.ATOM 生成 PWM 信號(hào),我想使用這個(gè) PWM 信號(hào)在主從模式下控制另一個(gè) PWM 信號(hào)。 例如,在主 PWM 信號(hào)的上升沿,從屬 PWM 信號(hào)處于啟用狀態(tài),在下降沿,從屬
    發(fā)表于 01-23 07:38

    路由器是干什么用的 路由器怎樣橋接另一個(gè)路由器

    路由器是個(gè)網(wǎng)絡(luò)設(shè)備,用于將數(shù)據(jù)包從個(gè)網(wǎng)絡(luò)傳輸?shù)?b class='flag-5'>另一個(gè)網(wǎng)絡(luò)。它通過控制數(shù)據(jù)包的路徑來實(shí)現(xiàn)互聯(lián)網(wǎng)上多個(gè)網(wǎng)絡(luò)之間的通信。路由器在家庭、辦公室和
    的頭像 發(fā)表于 01-19 17:12 ?1257次閱讀

    當(dāng)個(gè)電源的正接到另一個(gè)電源的負(fù)會(huì)怎樣?為什么?

    當(dāng)個(gè)電源的正接到另一個(gè)電源的負(fù)會(huì)怎樣?為什么? 當(dāng)個(gè)電源的正極連接到另一個(gè)電源的負(fù)極時(shí),會(huì)發(fā)
    的頭像 發(fā)表于 01-16 11:06 ?2914次閱讀

    FPGA系列之“速度等級(jí)”選型介紹

    大家在進(jìn)行FPGA選型時(shí)都會(huì)看見個(gè)參數(shù):Speed Grade,這就是芯片的速度等級(jí)。
    的頭像 發(fā)表于 01-08 09:20 ?2822次閱讀
    FPGA系列之“<b class='flag-5'>速度</b><b class='flag-5'>等級(jí)</b>”選型介紹

    SD/TF卡的速度等級(jí),如何讀懂TF的速度標(biāo)識(shí)

    SD/TF卡的速度等級(jí)下圖是SD協(xié)會(huì)的速度等級(jí)圖,從圖中可以看出不同的符號(hào)對(duì)應(yīng)的速度等級(jí)信息。如
    的頭像 發(fā)表于 01-02 16:38 ?9411次閱讀
    SD/TF卡的<b class='flag-5'>速度</b><b class='flag-5'>等級(jí)</b>,如何讀懂TF的<b class='flag-5'>速度</b>標(biāo)識(shí)

    如何把個(gè)函數(shù)的參數(shù)指向另一個(gè)函數(shù)?

    就是有個(gè)平均值濾波函數(shù)filter();另一個(gè)函數(shù)getADC(); 大概結(jié)構(gòu)如下: filter() { for() { vlaue=getADC();? } } 因?yàn)橐笃骄?/div>
    發(fā)表于 11-08 06:52

    AR/VR:呈現(xiàn)在眼前的另一個(gè)世界

    與同伴們進(jìn)行交流 。 新的科技將開拓智能生活的未來。 元宇宙是在數(shù)字空間擴(kuò)展的另一個(gè)世界。進(jìn)入元宇宙離不開小巧輕便且能夠投射高分辨率圖像的成像設(shè)備。 TDK的超小型全彩激光模塊就是可通過AR/VR智能眼鏡顯示圖像的設(shè)備。這些模塊可
    的頭像 發(fā)表于 10-25 15:50 ?459次閱讀
    AR/VR:呈現(xiàn)在眼前的<b class='flag-5'>另一個(gè)</b>世界