《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > AHB總線接口的一種新實現(xiàn)方案

AHB總線接口的一種新實現(xiàn)方案

2007-12-10
作者:馬天翊,,薛 萍,馬衛(wèi)國

摘 要:針對標(biāo)準(zhǔn)AHB總線對具有特定訪問時序的設(shè)備數(shù)據(jù)傳輸效率較低的情況,,提出一種新的實現(xiàn)方案" title="實現(xiàn)方案">實現(xiàn)方案,。利用AHB總線突發(fā)傳輸時的組合信息,根據(jù)某種算法生成地址和控制信號" title="控制信號">控制信號,以提高慢速設(shè)備的總線訪問效率。
關(guān)鍵詞:AHB總線? 突發(fā)傳輸

?

??? 在系統(tǒng)級芯片設(shè)計中,,AMBA總線已經(jīng)得到廣泛的應(yīng)用,有效地解決了復(fù)雜芯片的互連設(shè)計難題,。目前AMBA總線的主要實現(xiàn)形式是先進(jìn)高性能總線(AHB),。AHB總線的關(guān)鍵是對接口和互連均進(jìn)行定義,,目的是在任何工藝條件下實現(xiàn)接口和互連的最大帶寬,。AHB總線互連的主要形式是帶有主模塊和從模塊的共享總線,將接口與互連分開,,主要由總線的中央資源負(fù)責(zé)仲裁,、重傳、拆分等操作,,這對芯片上各模塊的接口設(shè)計具有重要意義,。AMBA已不再僅僅是一種總線,而是一種帶有接口模塊的互連體系,。
??? 但隨著AHB總線的廣泛應(yīng)用,,一些問題也暴露出來。例如,,對于具有特定訪問時序的設(shè)備,,AHB總線讀取數(shù)據(jù)的效率較低。本文提出一種新的,、高效AHB-Slave接口方案,,可以在完全兼容AMBA2.0規(guī)范的前提下,將突發(fā)傳輸模式下的總線效率提高近一倍(具體提高依應(yīng)用而定,,可參見表1數(shù)據(jù)),。該方案主要通過判斷總線的控制信號,利用某種算法控制地址實現(xiàn),,并可處理突發(fā)讀數(shù)據(jù)的忙狀態(tài),、寫數(shù)據(jù)后立即回讀、單周期突發(fā)操作等特殊情況,。
1 標(biāo)準(zhǔn)AHB-Slave方案
??? AMBA2.0規(guī)范詳細(xì)定義了標(biāo)準(zhǔn)的AHB-Slave接口,,涵蓋了絕大部分操作,。但是對某些應(yīng)用的實現(xiàn)不夠高效,例如對具有較長延時的Slave設(shè)備的突發(fā)讀操作,。另外有些操作并沒有定義,,例如寫之后立即讀的操作。標(biāo)準(zhǔn)AHB-Slave實現(xiàn)方案介紹如下(AHB總線描述及信號列表請參閱參考文獻(xiàn)[1],。
1.1 標(biāo)準(zhǔn)方案實現(xiàn)
??? 標(biāo)準(zhǔn)的AHB-Slave總線接口首先判斷讀操作或?qū)懖僮?,如果判斷為寫,則對單次寫和突發(fā)寫執(zhí)行同樣操作,。如果判斷為讀,,對于單次讀和突發(fā)讀也不加區(qū)分,但由于突發(fā)讀時地址段與數(shù)據(jù)段會自然相互重疊(overlap),,所以突發(fā)讀相對于多筆單次讀的效率要高一些,。標(biāo)準(zhǔn)AHB-Slave總線接口不支持寫操作后立即執(zhí)行讀操作,要求二者之間至少有一個時鐘周期" title="時鐘周期">時鐘周期的間隔,,否則會產(chǎn)生錯誤,。考慮接口需求,,要求寫后立即讀的情況并不會很多,。但是作為一個典型的存儲設(shè)備檢測方法應(yīng)該被這種操作支持。
1.2 標(biāo)準(zhǔn)方案時序圖
??? 對于AHB總線,,一次完整的傳輸可以分成兩個階段:地址段(Address Phase)和數(shù)據(jù)段(Data Phase),。地址段負(fù)責(zé)發(fā)送地址和控制信號,數(shù)據(jù)段則用來傳輸數(shù)據(jù)和反饋信號,。如果從設(shè)備無法在數(shù)據(jù)段用一個時鐘周期完成讀寫,,則可以通過HREADY信號來展寬數(shù)據(jù)段。
??? AHB總線為提高傳輸效率定義了突發(fā)傳輸方式(Burst Transfer),。在一次需要傳輸多個數(shù)據(jù)時,,將前后數(shù)據(jù)的數(shù)據(jù)段和地址段重疊在一起以提高效率。限于篇幅,,關(guān)于突發(fā)傳輸方式的詳細(xì)描述請參閱文獻(xiàn)[1],。
??? 還有一點需要指出:突發(fā)傳輸時,前次傳輸?shù)臄?shù)據(jù)段和后次傳輸?shù)牡刂范沃丿B在一起,,如果前次的數(shù)據(jù)段由于某種原因被展寬,,后次傳輸?shù)牡刂范我矔S之展寬。這是AHB2.0協(xié)議中降低總線效率的重要原因,,也是可以采取方法來改進(jìn)的地方,。
??? 多周期讀寫時序如圖1所示,詳細(xì)說明如下。圖1未示出AHB總線的申請,、仲裁,、授權(quán)機(jī)制。

?


??? Cycle4~9:AHB總線的突發(fā)寫時序,,圖1所示從設(shè)備可正常接收,,不再詳述。
??? Cycle14:Master獲得總線控制權(quán),,發(fā)出地址A5和控制信號,,總線中央資源將其發(fā)往相關(guān)Slave。突發(fā)操作的第一個數(shù)據(jù)HTRANS信號值為NONSEQ,。
Cycle15:Slave采樣地址A5和控制信號,,并作出判斷和響應(yīng),如果不能立即存取數(shù)據(jù),,則將HREADY_OUT信號拉低相應(yīng)周期數(shù)(圖1中所示為一個周期),,但HRESP信號為OKAY。同時,,Master發(fā)出第二個傳輸?shù)牡刂泛涂刂菩盘?。此時HTRANS為SEQ。
????Cycle16:Slave可以完成數(shù)據(jù)存取,,將HREADY_OUT信號拉高" title="拉高">拉高,,將數(shù)據(jù)發(fā)送到HRDATA總線,,HRESP信號仍為OKAY,。因為突發(fā)傳輸時前后兩次數(shù)據(jù)段和地址段重疊,如果前次的數(shù)據(jù)段由于某種原因被展寬,,后次傳輸?shù)牡刂范我矔S之展寬,。圖1中所示,Master重復(fù)發(fā)出上一個時鐘周期的地址A6和控制信號,。
??? Cycle17:Master采樣反饋信號,。因為HREADY_IN信號為高(此時HREADY_IN與HREADY_OUT信號等價),表示Slave已經(jīng)將數(shù)據(jù)發(fā)出,,Master采樣數(shù)據(jù)" title="采樣數(shù)據(jù)">采樣數(shù)據(jù)D5,,同時發(fā)出地址A7和相應(yīng)控制信號。Slave采樣地址A6和控制信號,,因為不能立即存取數(shù)據(jù),,所以將HREADY_OUT信號再次拉低一個時鐘周期,但HRESP信號為OKAY,。
??? Cycle18,、19、20:分別與Cycle16,、17,、16類似,。
??? Cycle21:Master判斷HREADY_IN為高,采樣數(shù)據(jù)D7,,但不再發(fā)出新的地址和控制信號,。Slave采樣地址A8和控制信號,然后將HREADY_OUT信號拉低一個時鐘周期,,HRESP信號為OKAY,。
??? Cycle22:Slave將HREADY_OUT信號拉高(無效),將數(shù)據(jù)D8發(fā)送到HRDATA總線,,HRESP信號仍為OKAY,。
??? Cycle23:Master采樣反饋信號和數(shù)據(jù)D8,完成本次突發(fā)傳輸操作,,之后可選擇釋放總線,。
2 高效AHB-Slave方案
??? AMBA2.0規(guī)范中,對于具有較長延時的Slave設(shè)備的突發(fā)讀操作處理得不夠理想,。針對這一問題,,高效的AHB-Slave方案應(yīng)運而生。突發(fā)傳輸時,,從第二個數(shù)據(jù)開始的HTRANS信號為SEQ(Sequential,,連續(xù)),表示當(dāng)前地址與前一次地址相關(guān),,而控制信號與前次相同,。這就表明可以利用第一個數(shù)據(jù)的地址和控制信號根據(jù)突發(fā)傳輸?shù)念愋蛠砩善浜髷?shù)據(jù)的地址和控制信號。
?當(dāng)然,,由于AHB總線的功能豐富,,需要考慮的情況比較多,所以高效AHB-Slave接口的實現(xiàn)方案相對復(fù)雜,。但已經(jīng)證實,,當(dāng)AHB總線時鐘為150MHz時,可以在0.13um工藝條件下實現(xiàn),,且效果顯著,。
2.1 高效方案實現(xiàn)
??? 根據(jù)AHB總線的規(guī)則,突發(fā)傳輸過程中,,控制信號不會變化,,而地址會根據(jù)突發(fā)方式和傳輸數(shù)據(jù)的位寬增減,所以可以依據(jù)某種算法生成內(nèi)部信號HADDR_internal,,用于生成超前地址,,提高總線訪問效率。在AHB-Slave接口設(shè)計中,用HADDR_internal代替HADDR,。具體實現(xiàn)方案如圖2所示,。

?


????首先判斷讀操作或?qū)懖僮鳎绻袛酁閷?,則對于單次寫和突發(fā)寫執(zhí)行同樣操作,。如果判斷為讀,則區(qū)分三種情況:單次讀,、寫后立即讀與突發(fā)讀,。如果為單次讀,則執(zhí)行基本讀操作,。如果為寫后立即讀,,由于AHB-Slave接口內(nèi)部處理延時,讀操作會多延時一個時鐘周期,,亦即HREADY_OUT會被多拉低一個時鐘周期以通知總線的Master,。如果判斷為突發(fā)讀,則需作進(jìn)一步判斷,。
??? 當(dāng)判斷為突發(fā)讀時,,需進(jìn)一步判斷四種情況:突發(fā)讀的首數(shù)據(jù)、突發(fā)讀期間的忙狀態(tài),、突發(fā)讀忙狀態(tài)后首數(shù)據(jù),、突發(fā)讀基本狀態(tài)。前三種情況的處理方法如圖2所示,,如果判斷為突發(fā)讀的基本狀態(tài),,則內(nèi)部讀地址HADDR_internal每個時鐘周期遞增一個單元,直到該次突發(fā)讀結(jié)束,。對于具有較長讀延時的AHB-Slave設(shè)備,,執(zhí)行突發(fā)讀操作時,,由于第一個讀數(shù)據(jù)延后n拍送出,,所以外部地址HADDR從第2個地址開始延長n拍。假設(shè)n=1,,從第2個地址起,,外部地址HADDR比HADDR_internal延后1拍。內(nèi)部模塊根據(jù)HADDR_internal發(fā)出數(shù)據(jù),,此數(shù)據(jù)可以連續(xù)送到外部數(shù)據(jù)總線上,。
2.2 高效方案時序圖
??? 高效方案的多周期讀寫時序如圖3。圖中未示出AHB總線的申請,、仲裁,、授權(quán)機(jī)制。Cycle14以前各周期的功能不再詳述。

?


??? Cycle14:Master發(fā)出地址A5和控制信號,。依據(jù)某種算法生成內(nèi)部超前地址HADDR_internal以代替HADDR,,提高總線訪問效率。因為Cycle14為突發(fā)傳輸?shù)牡谝粋€周期,,所以HADDR_internal與HADDR相同,。
??? Cycle15:Slave采樣地址A5和控制信號,由于不能立即存取數(shù)據(jù)將HREADY_OUT信號拉低一個周期,。同時HADDR_internal從A5變?yōu)锳6,,增加一個HSIZE信號所指示的單元地址。Master發(fā)出第二個傳輸?shù)牡刂泛涂刂菩盘?。此時HTRANS為SEQ,。
??? Cycle16:Slave可以完成數(shù)據(jù)存取,將HREADY_OUT信號拉高,,將數(shù)據(jù)發(fā)送到HRDATA總線,。此時HADDR_internal遞增為A7,超越了HADDR,,因為設(shè)計中HADDR_internal代替HADDR輸出給內(nèi)部模塊,,所以數(shù)據(jù)也會提前輸出。
??? Cycle17:Master采樣反饋信號和數(shù)據(jù)D5,,同時發(fā)出地址A7和相應(yīng)控制信號,。Slave不再采樣地址和控制信號,而是用內(nèi)部生成的相應(yīng)信號代替,,發(fā)出數(shù)據(jù)D6,,并且不再拉低HREADY_OUT信號。
??? Cycle18:Master采樣反饋信號和數(shù)據(jù)D6,,同時發(fā)出地址A8和相應(yīng)控制信號,。Slave根據(jù)內(nèi)部信號發(fā)出數(shù)據(jù)D7。?

??? Cycle19,、20:分別與Cycle17,、18類似。
??? Cycle21~23:與標(biāo)準(zhǔn)方案的相應(yīng)時序類似,,不再贅述,。
??? 在突發(fā)傳輸操作中,Master與Slave之間的交互是連續(xù)的,,但如果Master因為某些原因無法及時發(fā)送或接收數(shù)據(jù),,則可以將HTRANS信號置為BUSY,使當(dāng)前傳輸暫停幾個時鐘周期,。此時Slave應(yīng)該發(fā)送OK的HRESP,。在一次讀的過程中插入busy的時序如圖4,。Cycle15以前各周期的功能不再詳述。

?


??? Cycle15:Master由于某種原因暫時無法接收數(shù)據(jù),,可以將HTRANS信號置為BUSY,,地址遞增為A11,控制信號可以保持上一時鐘周期的讀狀態(tài)不變,。AHB-Slave接口采樣到BUSY狀態(tài)(此次采樣為異步采樣,,不依賴時鐘上升沿),則HADDR_internal不再變化,,保持上一周期值,。數(shù)據(jù)總線依次送出數(shù)據(jù)D10,HRESP信號仍為OKAY,。
??? Cycle16:Master恢復(fù)采樣數(shù)據(jù),,將HTRANS信號置為Sequencial,但地址保持上一時鐘周期A11不變,,控制信號也保持為讀狀態(tài),。AHB-Slave接口采樣到HTRANS信號恢復(fù)Sequencial狀態(tài),重新將HADDR_internal與HADDR同步,,變?yōu)锳11,。將數(shù)據(jù)D11送到HRDATA總線,但此數(shù)據(jù)不被采樣,。
??? Cycle17:Master本周期不采樣數(shù)據(jù),。附帶指出:Master在Cycle15將HTRANS置為BUSY,即指Cycle17不采樣數(shù)據(jù),,而不是Cycle15不采樣,。Master發(fā)出遞增地址A12,控制信號保持為讀狀態(tài),。因為上一周期HADDR_internal與HADDR重新同步,,所以Slave無法立即送出數(shù)據(jù),將HREADY_OUT拉低一個時鐘周期,,但HRESP信號為OKAY,。同時HADDR_internal從A11變?yōu)锳12,增加一個HSIZE信號所指示的單元地址,。
??? Cycle18:Slave可以完成數(shù)據(jù)存取,,將HREADY_OUT信號拉高,將數(shù)據(jù)D11發(fā)送到HRDATA總線,。Master采樣反饋信號并判斷后重復(fù)發(fā)出上一時鐘周期的地址A12和控制信號。但HADDR_internal遞增為A13,。
??? Cycle19:Master采樣反饋信號,,判斷后采樣數(shù)據(jù)D11,,同時發(fā)出地址A13和相應(yīng)控制信號。AHB-Slave接口內(nèi)部遞增地址為A14,,并且不再采樣AHB總線的地址和控制信號,,而是用內(nèi)部生成的相應(yīng)信號代替,發(fā)出數(shù)據(jù)D12,,并且不再拉低HREADY_OUT信號,,HRESP信號保持為OKAY。
??? Cycle20~23:與前文類似,,不再贅述,。
??? 對單一寄存器寫之后讀的時序如圖5所示。如前文所述,,考慮AHB-Slave總線接口的需求,,要求寫后立即讀的情況并不會很多。但是這種操作作為一個典型的存儲設(shè)備檢測方法應(yīng)該支持,。此時HREADY會多拉低一個時鐘周期,,詳細(xì)時序不再贅述。

?


??? 這一AHB-Slave接口的新方案已經(jīng)分別通過Cadence公司的Specman和Synopsys公司的Vera兩種驗證平臺驗證,,并已實際應(yīng)用于一款芯片,。
??? 表1中所示為該款芯片采用兩種AHB-Slave接口方案的對比。表中最左邊一欄為待傳輸?shù)臄?shù)據(jù)區(qū)塊,,JD為聯(lián)合檢測(Joint Detection),。其中有些數(shù)據(jù)需要寫入含有AHB-Slave接口的模塊,而有些數(shù)據(jù)要讀出,。通過AHB總線寫入時兩種方案完全相同,,而讀出時高效接口方案所需工作周期只有標(biāo)準(zhǔn)接口方案工作周期的一半。


??? 從表1可以看出,,此應(yīng)用中高效接口方案比標(biāo)準(zhǔn)接口方案節(jié)省了大約44%((11804-6630)/11804=44%)的工作周期,。如果AHB總線時鐘按照150MHz計算,則表1中原始接口方案需要78.73us,,而高效接口方案需要44.22us,,節(jié)省了34.51us,這對于通信,、圖像處理等實時性要求較高的應(yīng)用來說是很關(guān)鍵的,。
參考文獻(xiàn)
[1] ARM.AMBA Specification(Rev 2.0).1999.
[2] 吳欣龍.AMBA總線系統(tǒng)介紹.臺灣:工研院內(nèi)部刊物,2002.
[3] Bruce Mathewson.AMBA總線在復(fù)雜系統(tǒng)級芯片片上互連中的應(yīng)用.電子工程專輯,,2004.
[4] 鐘文楓,,耿彥莉.AMBA片上總線在SOC芯片設(shè)計中的應(yīng)用.電子設(shè)計應(yīng)用,2006.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,,并不代表本網(wǎng)站贊同其觀點,。轉(zhuǎn)載的所有的文章、圖片,、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有,。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容,、版權(quán)和其它問題,,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,,避免給雙方造成不必要的經(jīng)濟(jì)損失,。聯(lián)系電話:010-82306118;郵箱:[email protected],。