劉鐘宇
(中國(guó)電子科技集團(tuán)公司第四十七研究所,沈陽110032)
嵌入式CPU總線接口單元設(shè)計(jì)
劉鐘宇
(中國(guó)電子科技集團(tuán)公司第四十七研究所,沈陽110032)
隨著嵌入式技術(shù)的不斷發(fā)展,對(duì)嵌入式CPU的要求越來越高,而總線接口單元是嵌入式CPU不可或缺的重要組成部分,它為嵌入式CPU和外設(shè)及存儲(chǔ)器之間提供了接口控制,是決定系統(tǒng)性能的重要因素。深入了解總線接口單元的基本結(jié)構(gòu)和設(shè)計(jì)方法對(duì)嵌入式的開發(fā)大有好處。
總線接口單元;處理器;片上系統(tǒng);主機(jī);從機(jī)
AHB是基于集中多總線機(jī)制的,這使得AHB總線可以在比較高的時(shí)鐘頻率下運(yùn)行。一個(gè)以AMBA AHB為系統(tǒng)總線架構(gòu)的SoC,一般來說包含了高性能的系統(tǒng)總線與低功耗的外設(shè)總線。AHB系統(tǒng)總線負(fù)責(zé)連接嵌入式處理器與DMA控制器,片上存儲(chǔ)器和其他接口外設(shè)。而外設(shè)總線則用來連接系統(tǒng)的周邊組件,其協(xié)議相對(duì)AHB來講較為簡(jiǎn)單,與AHB之間則通過橋相連。
AHB系統(tǒng)由主機(jī),從機(jī),AHB總線接口邏輯三部分組成。整個(gè)AHB總線上的傳輸都是由主機(jī)所發(fā)出,由從機(jī)負(fù)責(zé)響應(yīng)。
AHB之所以會(huì)需要仲裁器,是因?yàn)樗С侄鄠€(gè)主機(jī),因此需要仲裁器來仲裁。而譯碼器則負(fù)責(zé)地址譯碼,從多個(gè)從機(jī)中選擇要響應(yīng)傳輸?shù)膹臋C(jī)。兩個(gè)選擇器負(fù)責(zé)總線路由,將總線上的信號(hào)在主機(jī)和從機(jī)中傳送。圖1介紹了AHB大概的總線互聯(lián)網(wǎng)絡(luò)。
圖1 AHB總線互聯(lián)網(wǎng)絡(luò)
3.1 AHB總線接口單元時(shí)序分析
經(jīng)過對(duì)AHB總線協(xié)議的詳細(xì)研究,嵌入式微處理器中的總線接口單元時(shí)序如圖2所示。
圖2 BIU接口時(shí)序圖
首先討論不使用cache(高速緩沖存儲(chǔ)器)的總線訪問操作模式。有兩種情況不會(huì)使用cache而直接通過總線操作:一是外部存儲(chǔ)器的請(qǐng)求在一個(gè)不可cache的區(qū)域;二是cache沒有使能。連續(xù)取指會(huì)做成不連續(xù)的讀操作。下面討論使用cache的總線訪問操作模式。如果外部存儲(chǔ)器請(qǐng)求到可cache區(qū)域且失效,處理器會(huì)完成一個(gè)行取值填充的傳輸。
下面是從機(jī)傳輸響應(yīng)操作模式。主機(jī)發(fā)起傳輸后,從機(jī)的響應(yīng)決定傳輸如何繼續(xù)。從機(jī)傳輸響應(yīng)類型如表1所示。
表1 從機(jī)響應(yīng)類型
3.2 AHB總線接口單元的模塊劃分和設(shè)計(jì)
BIU主要?jiǎng)澐譃?個(gè)模塊,包括地址信號(hào)生成模塊、控制信號(hào)生成模塊、數(shù)據(jù)信號(hào)生成模塊、使能信號(hào)生成模塊、地址控制信號(hào)仲裁模塊、寫數(shù)據(jù)信號(hào)仲裁模塊、Split/retry邏輯模塊、對(duì)內(nèi)接口信號(hào)生成模塊。其結(jié)構(gòu)框圖如圖3所示。
地址信號(hào)生成模塊:地址在時(shí)鐘上升沿產(chǎn)生,包括三類地址,SRADDR1是第一個(gè)split(傳輸斷開)響應(yīng)的保持地址,SRADDR2是第二個(gè)split響應(yīng)的保持地址,NextAddr是地址仲裁產(chǎn)生的核或cache地址。結(jié)構(gòu)如圖4所示。
控制信號(hào)生成模塊:控制信號(hào)生成模塊中按結(jié)構(gòu)分成兩類控制信號(hào),一類包括HWRITE、HSIZE及HPROT信號(hào),它們有著與地址信號(hào)生成邏輯相似的結(jié)構(gòu)。包括HTRANS、HBURST、HBUSREQ信號(hào),它們由狀態(tài)機(jī)時(shí)序結(jié)構(gòu)實(shí)現(xiàn)。
圖3 BIU硬件結(jié)構(gòu)框圖
圖4 BIU地址寄存器
(1)傳輸類型信號(hào)狀態(tài)機(jī)
這個(gè)狀態(tài)機(jī)用于生成傳輸類型信號(hào)HTRANS,包括:IDLE(空閑)、NSEQ(單個(gè)傳輸)和SEQ(連續(xù)傳輸)。
(2)傳輸個(gè)數(shù)信號(hào)狀態(tài)機(jī)
這個(gè)狀態(tài)機(jī)用于生成傳輸個(gè)數(shù)信號(hào)HBURST,包括:未定義長(zhǎng)度(INCR)、單個(gè)(SINGLE)、4個(gè)(INCR4)和8個(gè)(INCR8)。
(3)請(qǐng)求信號(hào)狀態(tài)機(jī)
這個(gè)狀態(tài)機(jī)用于生成BIU的請(qǐng)求信號(hào)HBUSREQ。REQ、LAST和SINGLE狀態(tài)都生成HBUSREQ信號(hào),IDLE狀態(tài)不生成HBUSREQ信號(hào)。
數(shù)據(jù)信號(hào)生成模塊:BIU有兩類數(shù)據(jù),一類是讀入數(shù)據(jù),一類是寫出數(shù)據(jù)。讀入數(shù)據(jù)從外部存儲(chǔ)器讀入,通過BIU分別輸出到DEXT、IEXT兩個(gè)模塊,信號(hào)是DBIURD、IBIURD。寫出數(shù)據(jù)從內(nèi)部寫入,通過BIU輸出到外部存儲(chǔ)器,信號(hào)是HWDATA。結(jié)構(gòu)如圖5所示。
使能信號(hào)生成模塊:使能信號(hào)狀態(tài)機(jī)是標(biāo)志當(dāng)前總線工作狀態(tài)的,總線傳輸時(shí)的狀態(tài)是ACTIVE,空閑時(shí)的狀態(tài)是IDLE。
圖5 寫出數(shù)據(jù)寄存器
地址控制信號(hào)仲裁模塊:BIU對(duì)地址和控制信號(hào)通過仲裁模塊進(jìn)行選擇輸入。仲裁原則是先數(shù)據(jù)后指令,先核后cache。結(jié)構(gòu)如圖6所示。
圖6 地址及控制信號(hào)仲裁器示意圖
寫數(shù)據(jù)仲裁模塊:BIU的寫數(shù)據(jù)由核與cache提供,通過寫信號(hào)仲裁器選擇輸出NextWD。如圖7所示。
圖7 寫數(shù)據(jù)信號(hào)仲裁器示意圖
SPLIT/RETRY(傳輸斷開和重試)邏輯模塊:這部分邏輯用于產(chǎn)生SPLIT/RETRY狀態(tài)后地址和控制信號(hào)狀態(tài)。當(dāng)傳輸可以繼續(xù)后,上一次傳輸未成功的地址和控制信號(hào)要進(jìn)行重發(fā)。
反饋信號(hào)生成模塊:BIU的輸出信號(hào)有一部分需要反饋給內(nèi)部模塊,包括DEXT、IEXT、DCACHE、 ICACHE等模塊。該模塊向其他內(nèi)部模塊產(chǎn)生應(yīng)答、準(zhǔn)備、出錯(cuò)等反饋信號(hào)。
3.3 驗(yàn)證平臺(tái)建立
對(duì)于功能驗(yàn)證,采用的驗(yàn)證平臺(tái)為能夠組成最小系統(tǒng)的嵌入式平臺(tái)。連接CPU、仲裁器、譯碼器、選擇器、LED、Flash存儲(chǔ)器、Flash控制器、PSRAM存儲(chǔ)器和PSRAM控制器等部件。驗(yàn)證過程是在復(fù)位之后進(jìn)入工作狀態(tài),將Flash中的程序搬運(yùn)到PSRAM中,然后執(zhí)行PSRAM中的程序。圖8為驗(yàn)證平臺(tái)結(jié)構(gòu)圖。
圖8 驗(yàn)證平臺(tái)結(jié)構(gòu)框圖
主要介紹了基本的AHB協(xié)議,由于AHB的復(fù)雜性,因此也探討了一些AHB重要的規(guī)范和特性,并重點(diǎn)介紹了在嵌入式微處理器中AHB總線接口單元的設(shè)計(jì)。希望可以為嵌入式處理器的設(shè)計(jì)工程師帶來一定的幫助。
[1]Steve Furber著.ARM SoC體系結(jié)構(gòu)[M].田澤,于敦山,盛世敏,譯.北京:北京航空航天大學(xué)出版社,2002.
[2]杜春雷.ARM體系結(jié)構(gòu)與編程[M].北京:清華大學(xué)出版社,2003.
Design on BIU of Built-in CPU
LIU Zhong-yu
(The 47th Research Institute of China Electronics Technology Group Corporation,Shenyang 110032,China)
According to the development of built-in technology,the requirement for the built-in CPU is getting higher and higher.The BIU,as the important port,provides the interface between CPU and peripheral equipmentwhich controls the capability of the system.It is useful for development of BIU to deeply study its structure and design.
BIU;CPU;SoC;Master;Slave
10.3969/j.issn.1002-2279.2014.04.004
TN4
:B
:1002-2279(2014)04-0012-03
劉鐘宇(1981-),男,遼寧沈陽人,學(xué)士學(xué)位,工程師,主研方向:集成電路設(shè)計(jì)及驗(yàn)證。
2014-01-17