專(zhuān)利名稱(chēng):一種異步橋及數(shù)據(jù)傳輸方法
技術(shù)領(lǐng)域:
本發(fā)明涉及芯片設(shè)計(jì)技術(shù),確切地說(shuō),涉及芯片內(nèi)部不同時(shí)鐘域之間的異步橋及使用異步橋進(jìn)行數(shù)據(jù)傳輸?shù)姆椒ā?br>
背景技術(shù):
在目前的SOC(System On Chip,片上系統(tǒng))芯片中,比較普遍的采用了雙核或多核的設(shè)計(jì)架構(gòu),即SOC芯片的內(nèi)部同時(shí)集成了兩個(gè)或者多個(gè)處理器,例如ARM處理器和DSP處理器,不同的處理器之間通常采用AMBA(Advanced Microcontroller Bus Architecture,高級(jí)微控制器總線架構(gòu))規(guī)范中的AHB(Advanced High-performance Bus,先進(jìn)高性能總線)總線相連,處理器之間可以通過(guò)AHB總線訪問(wèn)對(duì)方的AHB接口設(shè)備。但由于不同處理器一般工作在不同的時(shí)鐘域,因此AHB總線上的時(shí)鐘頻率不同,不能直接進(jìn)行訪問(wèn),而是需要先進(jìn)行AHB總線異步時(shí)鐘域之間的同步轉(zhuǎn)換,這就需要通過(guò)AHB2AHB異步橋來(lái)完成。
AHB2AHB異步橋有兩個(gè)AHB接口,其中AHB從設(shè)備接口(AHBSLAVE)為總線輸入口,它接收來(lái)自時(shí)鐘域1如ARM時(shí)鐘域的主設(shè)備ARM核的總線傳輸,經(jīng)過(guò)內(nèi)部的同步轉(zhuǎn)換后,變?yōu)闀r(shí)鐘域2如DSP時(shí)鐘域的AHB總線傳輸,經(jīng)AHB主設(shè)備接口(AHB MASTER)輸出。
如圖1所示的雙核系統(tǒng)中,使用了兩個(gè)這樣的AHB2AHB異步橋。其中,連到ARM核的AHB1總線傳輸經(jīng)過(guò)異步橋1的同步轉(zhuǎn)換,變?yōu)镈SP時(shí)鐘域的AHB總線傳輸,完成對(duì)DSP時(shí)鐘域AHB從設(shè)備的訪問(wèn);類(lèi)似的,連到DSP核的AHB2總線傳輸經(jīng)過(guò)異步橋2的同步轉(zhuǎn)換,變?yōu)锳RM時(shí)鐘域的AHB總線傳輸,完成對(duì)ARM時(shí)鐘域AHB從設(shè)備的訪問(wèn)。
以AHB2AHB異步橋1為例,現(xiàn)有技術(shù)工作原理如下,異步橋1的AHB從設(shè)備接口接收ARM時(shí)鐘域總線傳輸后,AHB從設(shè)備接口側(cè)狀態(tài)機(jī)將該傳輸寄存(即將AHB總線上的控制信號(hào)寄存),然后向AHB主設(shè)備接口側(cè)發(fā)出傳輸請(qǐng)求。
由于跨越不同時(shí)鐘域,該傳輸請(qǐng)求信號(hào)被兩級(jí)同步,在DSP時(shí)鐘域,主設(shè)備接口側(cè)狀態(tài)機(jī)接收到該同步后的傳輸請(qǐng)求后,根據(jù)已寄存的控制信號(hào)在DSP時(shí)鐘域重建AHB總線上的傳輸,訪問(wèn)DSP時(shí)鐘域的AHB從設(shè)備;訪問(wèn)結(jié)束后,AHB主設(shè)備接口側(cè)狀態(tài)機(jī)向AHB從設(shè)備接口側(cè)發(fā)出傳輸結(jié)束響應(yīng)。同樣的,該響應(yīng)信號(hào)也被兩級(jí)同步后,轉(zhuǎn)換為ARM時(shí)鐘域信號(hào);AHB從設(shè)備接口側(cè)狀態(tài)機(jī)接收到傳輸結(jié)束的響應(yīng)信號(hào)后,完成本次傳輸,接著進(jìn)行下一次傳輸,或者進(jìn)入空閑狀態(tài)。
但對(duì)于AHB總線突發(fā)(Burst)傳輸,這種方案中異步橋?qū)鬏斨械拿恳粋€(gè)動(dòng)作(beat),都要經(jīng)過(guò)寄存—請(qǐng)求—重建傳輸(新時(shí)鐘域)—響應(yīng)—結(jié)束這樣一個(gè)過(guò)程,換言之,就是對(duì)AHB總線突發(fā)傳輸都轉(zhuǎn)換為單一(single)傳輸來(lái)處理,并不能真正支持突發(fā)傳輸。這種處理方式導(dǎo)致總線效率過(guò)低,嚴(yán)重影響了跨時(shí)鐘域傳輸時(shí)總線帶寬,特別當(dāng)雙核之間數(shù)據(jù)吞吐量較大時(shí),將稱(chēng)為系統(tǒng)的瓶頸。
發(fā)明內(nèi)容
本發(fā)明目的在于提供一種異步橋及其通信方法,能夠支持跨時(shí)鐘域的AHB總線突發(fā)傳輸,從而提升總線效率。
本發(fā)明提供的異步橋,包括異步從接口,檢測(cè)到第一時(shí)鐘域內(nèi)存在總線傳輸時(shí)發(fā)出傳輸請(qǐng)求信號(hào);二級(jí)同步單元,二級(jí)同步所述傳輸請(qǐng)求信號(hào);異步主接口,接收二級(jí)同步后的傳輸請(qǐng)求信號(hào),建立第二時(shí)鐘域的總線傳輸;雙向存儲(chǔ)器,所述雙向存儲(chǔ)器一端與所述異步從接口相連接,另一端與所述異步主接口相連接,存儲(chǔ)總線突發(fā)傳輸時(shí)的數(shù)據(jù)信號(hào);當(dāng)突發(fā)傳輸為突發(fā)讀傳輸類(lèi)型時(shí),所述異步主接口向雙向存儲(chǔ)器中寫(xiě)入數(shù)據(jù)信號(hào),所述異步從接口從所述雙向存儲(chǔ)器中讀出所述數(shù)據(jù)信號(hào);或當(dāng)突發(fā)傳輸為突發(fā)寫(xiě)傳輸類(lèi)型時(shí),所述異步從接口向雙向存儲(chǔ)器中寫(xiě)入數(shù)據(jù)信號(hào),所述異步主接口從所述雙向存儲(chǔ)器中讀出所述數(shù)據(jù)信號(hào)。
所述異步主接口在第二時(shí)鐘域的總線傳輸結(jié)束后,發(fā)出應(yīng)答信號(hào);所述二級(jí)同步單元二級(jí)同步所述應(yīng)答信號(hào);所述異步從接口接收二級(jí)同步后的應(yīng)答信號(hào),結(jié)束第一時(shí)鐘域的總線傳輸。
所述雙向存儲(chǔ)器是FIFO或雙端口RAM。
所述FIFO包括寫(xiě)數(shù)據(jù)FIFO和讀數(shù)據(jù)FIFO。
本發(fā)明提供的使用異步橋進(jìn)行數(shù)據(jù)傳輸?shù)姆椒?,其中所述異步橋包括異步從接口、二?jí)同步單元、異步主接口和雙向存儲(chǔ)器,該方法包括如下步驟異步從接口對(duì)從設(shè)備接口側(cè)總線上的控制信號(hào)進(jìn)行寄存,發(fā)出傳輸請(qǐng)求信號(hào),根據(jù)所述控制信號(hào)確定傳輸類(lèi)型為突發(fā)讀傳輸時(shí),等待讀取數(shù)據(jù);二級(jí)同步單元對(duì)所述傳輸請(qǐng)求信號(hào)進(jìn)行二級(jí)同步;異步主接口接收二級(jí)同步后的傳輸請(qǐng)求信號(hào),根據(jù)所述寄存的控制信號(hào)確定傳輸類(lèi)型為突發(fā)讀傳輸;異步主接口在主設(shè)備接口側(cè)建立突發(fā)讀傳輸,向雙向存儲(chǔ)器中寫(xiě)入數(shù)據(jù)信號(hào);異步從接口從雙向存儲(chǔ)器中讀出所述數(shù)據(jù)信號(hào),利用所述從設(shè)備接口側(cè)總線傳輸所述數(shù)據(jù)信號(hào)。
所述異步從接口從雙向存儲(chǔ)器中讀出所述數(shù)據(jù)信號(hào)之前還包括異步從接口檢測(cè)出雙向存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)已超過(guò)預(yù)設(shè)門(mén)限值。
所述異步從接口從雙向存儲(chǔ)器中讀出所述數(shù)據(jù)信號(hào)之前還包括異步主接口在主設(shè)備接口側(cè)的突發(fā)讀傳輸結(jié)束后發(fā)出應(yīng)答信號(hào);二級(jí)同步單元對(duì)所述響應(yīng)信號(hào)進(jìn)行二級(jí)同步;異步從接口接收二級(jí)同步后的響應(yīng)信號(hào)。
本發(fā)明提供的使用異步橋進(jìn)行數(shù)據(jù)傳輸?shù)姆椒?,其中所述異步橋包括異步從接口、二?jí)同步單元、異步主接口和雙向存儲(chǔ)器,該方法包括如下步驟異步從接口對(duì)從設(shè)備接口側(cè)總線上的控制信號(hào)進(jìn)行寄存,發(fā)出傳輸請(qǐng)求信號(hào),根據(jù)所述控制信號(hào)確定傳輸類(lèi)型為突發(fā)寫(xiě)傳輸時(shí),向雙向存儲(chǔ)器中寫(xiě)入總線上的數(shù)據(jù)信號(hào);二級(jí)同步單元對(duì)所述傳輸請(qǐng)求信號(hào)進(jìn)行二級(jí)同步;異步主接口接收二級(jí)同步后的傳輸請(qǐng)求信號(hào),根據(jù)所述寄存的控制信號(hào)確定傳輸類(lèi)型為突發(fā)寫(xiě)傳輸時(shí),等待讀取數(shù)據(jù);異步主接口檢測(cè)出雙向存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)已超過(guò)預(yù)設(shè)門(mén)限值時(shí),從雙向存儲(chǔ)器中讀出所述數(shù)據(jù)信號(hào),在主設(shè)備接口側(cè)建立突發(fā)寫(xiě)傳輸。
在主設(shè)備接口側(cè)突發(fā)寫(xiě)傳輸結(jié)束后,進(jìn)一步包括如下步驟異步主接口發(fā)出應(yīng)答信號(hào);二級(jí)同步單元對(duì)所述響應(yīng)信號(hào)進(jìn)行二級(jí)同步;異步從接口接收二級(jí)同步后的響應(yīng)信號(hào),停止向雙向存儲(chǔ)器中寫(xiě)數(shù)據(jù)信號(hào),結(jié)束從設(shè)備接口側(cè)總線傳輸。
與現(xiàn)有技術(shù)將突發(fā)傳輸轉(zhuǎn)化為單一傳輸?shù)奶幚矸绞较啾?,本發(fā)明方案通過(guò)在異步橋中采用雙向存儲(chǔ)器暫存AHB總線突發(fā)傳輸時(shí)的讀寫(xiě)數(shù)據(jù),實(shí)現(xiàn)了對(duì)跨時(shí)鐘域的AHB總線突發(fā)傳輸?shù)闹С?,大大提高了總線效率。
圖1是現(xiàn)有技術(shù)方案中跨時(shí)鐘域系統(tǒng)結(jié)構(gòu)示意圖;圖2是本發(fā)明中異步橋結(jié)構(gòu)示意圖;圖3是圖2所示異步橋中異步從接口狀態(tài)轉(zhuǎn)換圖;圖4是圖2所示異步橋中異步主接口狀態(tài)轉(zhuǎn)換圖;圖5是圖2所示異步橋工作流程示意圖。
具體實(shí)施例方式
本發(fā)明提供一種異步橋及其通信方法,以解決現(xiàn)有技術(shù)中異步橋需要將AHB總線突發(fā)傳輸轉(zhuǎn)換為單一傳輸來(lái)處理,從而導(dǎo)致總線效率過(guò)低的問(wèn)題。本發(fā)明在異步橋中增設(shè)有雙向存儲(chǔ)器,由于總線一個(gè)時(shí)刻只處理一個(gè)傳輸(讀傳輸或?qū)憘鬏?,突發(fā)傳輸中讀寫(xiě)操作不會(huì)同時(shí)發(fā)生,因此只需要一個(gè)雙向存儲(chǔ)器就可以滿(mǎn)足需要,所述雙向存儲(chǔ)器一端與異步從接口相連接,另一端與異步主接口相連接,用于存儲(chǔ)AHB總線突發(fā)傳輸時(shí)的數(shù)據(jù)信號(hào),所述異步從接口和所述異步主接口通過(guò)對(duì)所述雙向存儲(chǔ)器進(jìn)行讀寫(xiě)控制,完成AHB總線突發(fā)傳輸。
下面將結(jié)合附圖對(duì)本發(fā)明方案作進(jìn)行進(jìn)一步的闡述,請(qǐng)參閱圖2所示,本發(fā)明提供的異步橋5包括異步從接口51、異步主接口52、二級(jí)同步寄存器53、二級(jí)同步寄存器54以及寫(xiě)數(shù)據(jù)FIFO(先入先出存儲(chǔ)器)55和讀數(shù)據(jù)FIFO56。其中異步從接口51位于hclks時(shí)鐘域(AHB SLAVE側(cè)所在時(shí)鐘域),異步主接口52位于hclkm時(shí)鐘域(AHB MASTER側(cè)所在時(shí)鐘域);寫(xiě)數(shù)據(jù)FIFO55和讀數(shù)據(jù)FIFO56均為一端與異步從接口51相連接,另一端與異步主接口52相連接。之所以提供兩個(gè)FIFO,是為了更好的進(jìn)行讀寫(xiě)操作控制;這里也可以把寫(xiě)數(shù)據(jù)FIFO55和讀數(shù)據(jù)FIFO56合并為一個(gè)FIFO,同樣能夠完成設(shè)計(jì)目的。對(duì)普通技術(shù)人員來(lái)講,這里顯然也可以用雙端口RAM替代寫(xiě)數(shù)據(jù)FIFO和/或讀數(shù)據(jù)FIFO。
在總線由AHB從設(shè)備接口向AHB主設(shè)備接口傳輸時(shí),也就是從hclks時(shí)鐘域向hcklm時(shí)鐘域進(jìn)行AHB總線傳輸時(shí),異步從接口51接收hclks時(shí)鐘域AHB總線突發(fā)傳輸,將AHB總線上的控制信號(hào)寄存,將AHB總線上的數(shù)據(jù)信號(hào)寫(xiě)入寫(xiě)數(shù)據(jù)FIFO55,并向異步主接口52發(fā)出傳輸請(qǐng)求信號(hào);二級(jí)同步寄存器53對(duì)傳輸請(qǐng)求信號(hào)進(jìn)行二級(jí)同步;異步主接口52接收二級(jí)同步后的傳輸請(qǐng)求信號(hào),從寫(xiě)數(shù)據(jù)FIFO55中讀出AHB總線數(shù)據(jù)信號(hào),結(jié)合寄存的AHB總線控制信號(hào)在hcklm時(shí)鐘域建立AHB總線傳輸。
在hcklm時(shí)鐘域向hclks時(shí)鐘域進(jìn)行AHB總線傳輸時(shí),異步從接口51向異步主接口52發(fā)出傳輸請(qǐng)求信號(hào);二級(jí)同步寄存器53對(duì)傳輸請(qǐng)求信號(hào)進(jìn)行二級(jí)同步;異步主接口52接收二級(jí)同步后的傳輸請(qǐng)求信號(hào),在hcklm時(shí)鐘域建立AHB總線傳輸,將AHB總線數(shù)據(jù)信號(hào)寫(xiě)入讀數(shù)據(jù)FIFO56;異步從接口51從讀數(shù)據(jù)FIFO56中讀出AHB總線數(shù)據(jù)信號(hào),在hckls時(shí)鐘域建立AHB總線傳輸。
不論上述哪種情況,hcklm時(shí)鐘域AHB總線傳輸首先結(jié)束,異步主接口52發(fā)送應(yīng)答信號(hào)給異步從接口51;二級(jí)同步寄存器54對(duì)應(yīng)答信號(hào)進(jìn)行二級(jí)同步;異步從接口51接收二級(jí)同步后的應(yīng)答信號(hào),結(jié)束hcklm時(shí)鐘域AHB總線傳輸。
請(qǐng)參閱圖3所示,圖3揭示了異步從接口各種狀態(tài)轉(zhuǎn)換及相應(yīng)的控制條件,各狀態(tài)的含義下所示
IDLE空閑狀態(tài);ADDR地址狀態(tài),寄存總線控制信號(hào),判斷傳輸類(lèi)型并向主設(shè)備接口側(cè)發(fā)出傳輸請(qǐng)求信號(hào);SINGLE_DATA單一傳輸狀態(tài),等待主設(shè)備接口側(cè)完成本次單一傳輸;DATA_ST寫(xiě)數(shù)據(jù)狀態(tài),控制向?qū)憯?shù)據(jù)FIFO寫(xiě)入本次突發(fā)寫(xiě)傳輸?shù)臄?shù)據(jù)信號(hào);ST_WAIT寫(xiě)等待狀態(tài),等待主設(shè)備接口側(cè)完成本次突發(fā)寫(xiě)傳輸;LD_WAIT讀等待狀態(tài),等待主設(shè)備接口側(cè)完成本次突發(fā)讀傳輸;DATA_LD讀數(shù)據(jù)狀態(tài),控制從讀數(shù)據(jù)FIFO中讀出本次突發(fā)讀傳輸?shù)臄?shù)據(jù)信號(hào);ERR1錯(cuò)誤狀態(tài)1,AHB總線上兩拍錯(cuò)誤響應(yīng)的第一拍;ERR2錯(cuò)誤狀態(tài)2,AHB總線上兩拍錯(cuò)誤響應(yīng)的第二拍;OKAY傳輸成功狀態(tài)。
下面從IDLE狀態(tài)出發(fā),對(duì)異步從接口各種狀態(tài)轉(zhuǎn)換進(jìn)行說(shuō)明,當(dāng)AHB總線上存在有效傳輸并且總線已就緒時(shí)(條件1),異步從接口中狀態(tài)機(jī)進(jìn)入ADDR狀態(tài)并發(fā)出傳輸請(qǐng)求,該傳輸請(qǐng)求經(jīng)過(guò)兩級(jí)同步送至主設(shè)備接口側(cè)。
在ADDR狀態(tài)下,根據(jù)總線上的控制信號(hào)進(jìn)行判斷,如果是單一讀/寫(xiě)傳輸(條件17)則進(jìn)入SINGLE_DATA狀態(tài);如果是突發(fā)寫(xiě)傳輸(條件5),則狀態(tài)機(jī)進(jìn)入DATA_ST狀態(tài);如果是突發(fā)讀傳輸(條件2),則進(jìn)入LD_WAIT狀態(tài)。
在SINGLE_DATA狀態(tài)下,進(jìn)行等待,直至收到主設(shè)備接口側(cè)完成該單一讀/寫(xiě)后返回的響應(yīng)信號(hào),如果傳輸成功(條件18)則進(jìn)入OKAY狀態(tài),如果傳輸錯(cuò)誤(條件19)則進(jìn)入ERR1狀態(tài)而后進(jìn)入ERR2狀態(tài)。然后進(jìn)入下次傳輸或IDLE狀態(tài)。
在DATA_ST狀態(tài)下,向?qū)憯?shù)據(jù)FIFO中寫(xiě)入寫(xiě)數(shù)據(jù)(條件8),當(dāng)寫(xiě)入的數(shù)據(jù)的計(jì)數(shù)值達(dá)到本次突發(fā)寫(xiě)傳輸?shù)拈L(zhǎng)度時(shí)(條件6),停止寫(xiě)入,進(jìn)入ST_WAIT狀態(tài);在ST_WAIT狀態(tài)下,狀態(tài)機(jī)等待直至收到主設(shè)備接口側(cè)完成本次突發(fā)寫(xiě)傳輸后返回的響應(yīng)信號(hào),如果傳輸成功(條件7)則進(jìn)入OKAY狀態(tài),如果傳輸錯(cuò)誤(條件12)則進(jìn)入ERRl狀態(tài)而后進(jìn)入ERR2狀態(tài);然后進(jìn)入下次傳輸或IDLE狀態(tài)。
在LD_WAIT狀態(tài)下,進(jìn)行等待(條件9),直至讀數(shù)據(jù)FIFO內(nèi)數(shù)據(jù)超過(guò)預(yù)設(shè)的FIFO門(mén)限或者主設(shè)備接口側(cè)讀操作已經(jīng)結(jié)束(條件3),進(jìn)入DATA_LD狀態(tài);在DATA_LD狀態(tài)下,從讀數(shù)據(jù)FIFO中讀出全部數(shù)據(jù)信號(hào),如果傳輸成功(條件4),則進(jìn)入OKAY狀態(tài),;如果傳輸錯(cuò)誤(條件11)則進(jìn)入ERR1狀態(tài)而后進(jìn)入ERR2狀態(tài);然后進(jìn)入下次傳輸或IDLE狀態(tài)。
請(qǐng)參閱圖4所示,圖4揭示了異步主接口各種狀態(tài)轉(zhuǎn)換及相應(yīng)的控制條件,各狀態(tài)的含義下所示IDLE空閑狀態(tài)。
REQ請(qǐng)求狀態(tài),請(qǐng)求總線使用權(quán);ADDR地址狀態(tài),判斷當(dāng)前傳輸類(lèi)型,并根據(jù)寄存的控制信號(hào)開(kāi)始重建傳輸;SINGLE_DATA單一傳輸狀態(tài),等待AHB從設(shè)備完成當(dāng)前單一傳輸;DATA_ST突發(fā)傳輸寫(xiě)狀態(tài),控制從寫(xiě)數(shù)據(jù)FIFO中讀出數(shù)據(jù)信號(hào)重建主設(shè)備接口側(cè)時(shí)鐘域的突發(fā)寫(xiě)傳輸;DATA_LD突發(fā)傳輸讀狀態(tài),在主設(shè)備接口側(cè)時(shí)鐘域重建突發(fā)讀傳輸,控制將讀出的數(shù)據(jù)寫(xiě)入讀數(shù)據(jù)FIFO。
下面仍從IDLE狀態(tài)出發(fā),對(duì)異步主接口各種狀態(tài)轉(zhuǎn)換進(jìn)行說(shuō)明,在IDLE狀態(tài)下,當(dāng)收到單一傳輸請(qǐng)求或者在突發(fā)寫(xiě)傳輸時(shí)寫(xiě)數(shù)據(jù)FIFO中寫(xiě)入的數(shù)據(jù)已超過(guò)FIFO門(mén)限,并且此時(shí)有總線使用權(quán)且總線就緒時(shí)(條件1),狀態(tài)機(jī)進(jìn)入ADDR狀態(tài);當(dāng)從設(shè)備接口側(cè)的傳輸請(qǐng)求到達(dá)時(shí),如果主設(shè)備接口側(cè)還沒(méi)有獲得總線授權(quán)或者總線還沒(méi)有就緒時(shí)(條件10),進(jìn)入REQ狀態(tài)。
REQ狀態(tài)下,如果獲得總線授權(quán)并且總線就緒時(shí)(條件11)進(jìn)入ADDR狀態(tài)。
在ADDR狀態(tài)下,若當(dāng)前傳輸為單一傳輸(條件8),則發(fā)出單一傳輸?shù)腁HB總線控制信號(hào);若當(dāng)前傳輸為突發(fā)寫(xiě)傳輸(條件5),進(jìn)入DATA_ST狀態(tài);若當(dāng)前傳輸為突發(fā)讀傳輸(條件2),進(jìn)入DATA_LD狀態(tài)。
在SINGLE_DATA狀態(tài)下,進(jìn)行單一傳輸,當(dāng)AHB從設(shè)備完成當(dāng)前單一傳輸(條件9),向從設(shè)備接口側(cè)發(fā)出應(yīng)答信號(hào)。
在DATA_ST狀態(tài)下,根據(jù)寄存的總線控制信號(hào),控制從寫(xiě)數(shù)據(jù)FIFO中讀出數(shù)據(jù)信號(hào)重建主設(shè)備接口側(cè)時(shí)鐘域的突發(fā)寫(xiě)傳輸(條件6);當(dāng)完成本次突發(fā)寫(xiě)傳輸后(條件7),向從設(shè)備接口側(cè)發(fā)出應(yīng)答信號(hào)。
在DATA_LD狀態(tài)下,根據(jù)寄存的總線控制信號(hào)重建主設(shè)備接口側(cè)時(shí)鐘域的突發(fā)讀傳輸并控制將數(shù)據(jù)信號(hào)寫(xiě)入讀數(shù)據(jù)FIFO;當(dāng)完成本次突發(fā)讀傳輸后(條件4),向從設(shè)備接口側(cè)發(fā)出應(yīng)答信號(hào)。
請(qǐng)一并參閱圖5所示,圖5揭示了整個(gè)異步橋工作流程,下面將結(jié)合圖2進(jìn)行說(shuō)明。
在虛線右側(cè),對(duì)異步從接口,一開(kāi)始時(shí)在hclks時(shí)鐘域處于空閑狀態(tài);接著檢測(cè)AHB從設(shè)備接口側(cè)(AHB SLAVE側(cè))時(shí)鐘域也就是hclks時(shí)鐘域是否出現(xiàn)AHB總線傳輸,若否,則繼續(xù)保持空閑狀態(tài);若hclks時(shí)鐘域出現(xiàn)AHB總線傳輸,寄存AHB總線上的控制信號(hào),并向主設(shè)備接口側(cè)發(fā)出傳輸請(qǐng)求信號(hào);接著通過(guò)傳輸總線上的控制信號(hào)對(duì)傳輸類(lèi)型進(jìn)行判斷;若是單一傳輸(single傳輸)類(lèi)型,處理過(guò)程跟現(xiàn)有技術(shù)方案一樣,不論是讀傳輸還是寫(xiě)傳輸,均不需要利用寫(xiě)數(shù)據(jù)FIFO或讀數(shù)據(jù)FIFO,直接等待主設(shè)備接口側(cè)的應(yīng)答信號(hào);若是突發(fā)寫(xiě)傳輸(burst寫(xiě)傳輸),將AHB總線上的數(shù)據(jù)信號(hào)寫(xiě)入寫(xiě)數(shù)據(jù)FIFO,然后等待主設(shè)備接口側(cè)的應(yīng)答信號(hào);接著判斷是否接收到主設(shè)備接口側(cè)發(fā)來(lái)的應(yīng)答信號(hào),若否,繼續(xù)等待;若接收到應(yīng)答信號(hào),結(jié)束hclks時(shí)鐘域AHB域總線傳輸。
若判斷出傳輸類(lèi)型是突發(fā)讀傳輸(burst讀傳輸),也同樣等待主設(shè)備接口側(cè)的應(yīng)答信號(hào);接著判斷是否收到主設(shè)備接口側(cè)發(fā)來(lái)的應(yīng)答信號(hào),若否,繼續(xù)等待;若收到主設(shè)備接口側(cè)發(fā)來(lái)的應(yīng)答信號(hào),從讀FIFO中讀出數(shù)據(jù)信號(hào),利用hclks時(shí)鐘域已存在的AHB總線傳輸所述數(shù)據(jù)信號(hào),當(dāng)讀FIFO中數(shù)據(jù)信號(hào)被全部讀出后,結(jié)束hclks時(shí)鐘域傳輸。
對(duì)突發(fā)讀傳輸,還可以設(shè)置成當(dāng)異步從接口檢測(cè)出讀FIFO中存儲(chǔ)的數(shù)據(jù)已超過(guò)預(yù)設(shè)FIFO門(mén)限時(shí),就直接從讀FIFO中讀出數(shù)據(jù)信號(hào),在收到主設(shè)備接口側(cè)發(fā)來(lái)的應(yīng)答信號(hào)后從雙向存儲(chǔ)器中讀出全部數(shù)據(jù)信號(hào)后結(jié)束hclks時(shí)鐘域傳輸。由于一次突發(fā)讀傳輸?shù)男畔⑼ǔ2怀^(guò)16個(gè)字節(jié),這里選擇采用前一種處理方式。
在虛線左側(cè),對(duì)異步主接口,AHB主設(shè)備接口側(cè)(AHB MASTER側(cè))接收到二級(jí)同步寄存器53二級(jí)同步后的傳輸請(qǐng)求信號(hào)后,根據(jù)寄存的AHB總線上的控制信號(hào)對(duì)傳輸類(lèi)型進(jìn)行判斷,若是單一傳輸請(qǐng)求,直接在hclkm時(shí)鐘域建立單一傳輸,處理過(guò)程跟現(xiàn)有技術(shù)方案一樣;若是突發(fā)讀傳輸,在hclkm時(shí)鐘域建立AHB總線突發(fā)讀傳輸,將AHB總線上的數(shù)據(jù)信號(hào)寫(xiě)入讀FIFO;若是突發(fā)寫(xiě)傳輸請(qǐng)求,當(dāng)檢測(cè)出寫(xiě)FIFO中存儲(chǔ)數(shù)據(jù)已超過(guò)預(yù)設(shè)門(mén)限值時(shí),從寫(xiě)FIFO中讀出數(shù)據(jù)信號(hào),在hclkm時(shí)鐘域建立AHB總線突發(fā)寫(xiě)傳輸;上述三種傳輸在hclkm時(shí)鐘域結(jié)束后,異步主接口均會(huì)向AHB從設(shè)備接口側(cè)發(fā)出應(yīng)答信號(hào),該響應(yīng)信號(hào)被二級(jí)同步寄存器54二級(jí)同步后發(fā)送給異步從接口。
本發(fā)明方案在異步橋中采用雙向存儲(chǔ)器暫存AHB總線突發(fā)傳輸時(shí)的讀寫(xiě)數(shù)據(jù),并進(jìn)行了相應(yīng)的狀態(tài)轉(zhuǎn)換控制調(diào)整,使得異步橋能夠支持跨鐘域的AHB總線突發(fā)傳輸,大大提高了總線效率。對(duì)突發(fā)傳輸轉(zhuǎn)換成單一傳輸進(jìn)行處理的異步橋,每個(gè)動(dòng)作(beat)傳輸大概需要9個(gè)慢速時(shí)鐘周期(cycle),因而長(zhǎng)度為16的突發(fā)傳輸需要約16×9=144個(gè)周期。而使用本發(fā)明方案的突發(fā)異步橋進(jìn)行長(zhǎng)度為16的突發(fā)傳輸只需要約32個(gè)慢速時(shí)鐘周期,平均每個(gè)動(dòng)作約2個(gè)慢速時(shí)鐘周期,效率可提高4倍左右。
以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理的前提下,還可以作出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種異步橋,其特征在于,包括異步從接口,檢測(cè)到第一時(shí)鐘域內(nèi)存在總線傳輸時(shí)發(fā)出傳輸請(qǐng)求信號(hào);二級(jí)同步單元,二級(jí)同步所述傳輸請(qǐng)求信號(hào);異步主接口,接收二級(jí)同步后的傳輸請(qǐng)求信號(hào),建立第二時(shí)鐘域的總線傳輸;雙向存儲(chǔ)器,所述雙向存儲(chǔ)器一端與所述異步從接口相連接,另一端與所述異步主接口相連接,存儲(chǔ)總線突發(fā)傳輸時(shí)的數(shù)據(jù)信號(hào)。
2.如權(quán)利要求1所述的異步橋,其特征在于,當(dāng)突發(fā)傳輸為突發(fā)讀傳輸類(lèi)型時(shí),所述異步主接口向雙向存儲(chǔ)器中寫(xiě)入數(shù)據(jù)信號(hào),所述異步從接口從所述雙向存儲(chǔ)器中讀出所述數(shù)據(jù)信號(hào);或當(dāng)突發(fā)傳輸為突發(fā)寫(xiě)傳輸類(lèi)型時(shí),所述異步從接口向雙向存儲(chǔ)器中寫(xiě)入數(shù)據(jù)信號(hào),所述異步主接口從所述雙向存儲(chǔ)器中讀出所述數(shù)據(jù)信號(hào)。
3.如權(quán)利要求1或2所述的異步橋,其特征在于,所述異步主接口在第二時(shí)鐘域的總線傳輸結(jié)束后,發(fā)出應(yīng)答信號(hào);所述二級(jí)同步單元二級(jí)同步所述應(yīng)答信號(hào);所述異步從接口接收二級(jí)同步后的應(yīng)答信號(hào),結(jié)束第一時(shí)鐘域的總線傳輸。
4.如權(quán)利要求1或2所述的異步橋,其特征在于,所述雙向存儲(chǔ)器是FIFO或雙端口RAM。
5.如權(quán)利要求4所述的異步橋,其特征在于,所述FIFO包括寫(xiě)數(shù)據(jù)FIFO和讀數(shù)據(jù)FIFO。
6.一種使用異步橋進(jìn)行數(shù)據(jù)傳輸?shù)姆椒?,其特征在于,所述異步橋包括異步從接口、二?jí)同步單元、異步主接口和雙向存儲(chǔ)器,所述方法包括如下步驟異步從接口對(duì)從設(shè)備接口側(cè)總線上的控制信號(hào)進(jìn)行寄存,發(fā)出傳輸請(qǐng)求信號(hào),根據(jù)所述控制信號(hào)確定傳輸類(lèi)型為突發(fā)讀傳輸時(shí),等待讀取數(shù)據(jù);二級(jí)同步單元對(duì)所述傳輸請(qǐng)求信號(hào)進(jìn)行二級(jí)同步;異步主接口接收二級(jí)同步后的傳輸請(qǐng)求信號(hào),根據(jù)所述寄存的控制信號(hào)確定傳輸類(lèi)型為突發(fā)讀傳輸;異步主接口在主設(shè)備接口側(cè)建立突發(fā)讀傳輸,向雙向存儲(chǔ)器中寫(xiě)入數(shù)據(jù)信號(hào);異步從接口從雙向存儲(chǔ)器中讀出所述數(shù)據(jù)信號(hào),利用所述從設(shè)備接口側(cè)總線傳輸所述數(shù)據(jù)信號(hào)。
7.如權(quán)利要求6所述的異步橋的數(shù)據(jù)傳輸?shù)姆椒ǎ涮卣髟谟?,所述異步從接口從雙向存儲(chǔ)器中讀出所述數(shù)據(jù)信號(hào)之前還包括異步從接口檢測(cè)出雙向存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)已超過(guò)預(yù)設(shè)門(mén)限值。
8.如權(quán)利要求6所述的異步橋的數(shù)據(jù)傳輸?shù)姆椒ǎ涮卣髟谟?,所述異步從接口從雙向存儲(chǔ)器中讀出所述數(shù)據(jù)信號(hào)之前還包括異步主接口在主設(shè)備接口側(cè)的突發(fā)讀傳輸結(jié)束后發(fā)出應(yīng)答信號(hào);二級(jí)同步單元對(duì)所述響應(yīng)信號(hào)進(jìn)行二級(jí)同步;異步從接口接收二級(jí)同步后的響應(yīng)信號(hào)。
9.一種使用異步橋進(jìn)行數(shù)據(jù)傳輸?shù)姆椒ǎ涮卣髟谟?,所述異步橋包括異步從接口、二?jí)同步單元、異步主接口和雙向存儲(chǔ)器,所述方法包括如下步驟異步從接口對(duì)從設(shè)備接口側(cè)總線上的控制信號(hào)進(jìn)行寄存,發(fā)出傳輸請(qǐng)求信號(hào),根據(jù)所述控制信號(hào)確定傳輸類(lèi)型為突發(fā)寫(xiě)傳輸時(shí),向雙向存儲(chǔ)器中寫(xiě)入總線上的數(shù)據(jù)信號(hào);二級(jí)同步單元對(duì)所述傳輸請(qǐng)求信號(hào)進(jìn)行二級(jí)同步;異步主接口接收二級(jí)同步后的傳輸請(qǐng)求信號(hào),根據(jù)所述寄存的控制信號(hào)確定傳輸類(lèi)型為突發(fā)寫(xiě)傳輸時(shí),等待讀取數(shù)據(jù);異步主接口檢測(cè)出雙向存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)已超過(guò)預(yù)設(shè)門(mén)限值時(shí),從雙向存儲(chǔ)器中讀出所述數(shù)據(jù)信號(hào),在主設(shè)備接口側(cè)建立突發(fā)寫(xiě)傳輸。
10.如權(quán)利要求9所述的異步橋的數(shù)據(jù)傳輸?shù)姆椒?,其特征在于,在主設(shè)備接口側(cè)突發(fā)寫(xiě)傳輸結(jié)束后,進(jìn)一步包括如下步驟異步主接口發(fā)出應(yīng)答信號(hào);二級(jí)同步單元對(duì)所述響應(yīng)信號(hào)進(jìn)行二級(jí)同步;異步從接口接收二級(jí)同步后的響應(yīng)信號(hào),停止向雙向存儲(chǔ)器中寫(xiě)數(shù)據(jù)信號(hào),結(jié)束從設(shè)備接口側(cè)總線傳輸。
全文摘要
本發(fā)明提供的一種異步橋,包括異步從接口,檢測(cè)到第一時(shí)鐘域內(nèi)存在總線傳輸時(shí)發(fā)出傳輸請(qǐng)求信號(hào);二級(jí)同步單元,二級(jí)同步所述傳輸請(qǐng)求信號(hào);異步主接口,接收二級(jí)同步后的傳輸請(qǐng)求信號(hào),建立第二時(shí)鐘域的總線傳輸;以及雙向存儲(chǔ)器,所述雙向存儲(chǔ)器一端與所述異步從接口相連接,另一端與所述異步主接口相連接,存儲(chǔ)總線突發(fā)傳輸時(shí)的數(shù)據(jù)信號(hào)。此外本發(fā)明還提供了一種使用異步橋進(jìn)行數(shù)據(jù)傳輸?shù)姆椒ā1景l(fā)明方案無(wú)需將突發(fā)傳輸轉(zhuǎn)化為單一傳輸進(jìn)行處理,就能實(shí)現(xiàn)對(duì)跨時(shí)鐘域的AHB總線突發(fā)傳輸?shù)闹С郑蟠筇岣吡丝偩€效率。
文檔編號(hào)G06F13/38GK1983223SQ20061006082
公開(kāi)日2007年6月20日 申請(qǐng)日期2006年5月17日 優(yōu)先權(quán)日2006年5月17日
發(fā)明者劉強(qiáng)國(guó), 劉宇, 季淵 申請(qǐng)人:華為技術(shù)有限公司