7 AMBA總線(6學時)



《7 AMBA總線(6學時)》由會員分享,可在線閱讀,更多相關《7 AMBA總線(6學時)(98頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,,*,單擊此處編輯母版標題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,,AMBA,總線,2,SEP3203,,3,目錄,AMBA,總線概述,AHB,APB,不同,IP,之間的互連,4,系統(tǒng)總線簡介,系統(tǒng)芯片中各個模塊之間需要有接口來連接,總線作為子系統(tǒng)之間共享的通信鏈路,優(yōu)點,低成本,方便易用,缺點,會造成性能瓶頸,5,AMBA,介紹,Advanced Microcontroller Bus Architecture,片上總線的標準,定義了三種總線,AHB (Advanced High-pe
2、rformance Bus),ASB (Advanced System Bus),APB (Advanced Peripheral Bus),,6,AMBA,發(fā)展歷史,AMBA 1.0,ASB,和,APB,AMBA 2.0,AHB, ASB,和,APB,AMBA 3.0,AMBA Advanced eXtensible Interface (AXI),,7,一個典型的,AMBA,系統(tǒng),處理器和其它主設備,/,從設備都是可以替換的,8,AHB,高速總線,高性能,流水線操作,可支持多個總線主設備(最多,16,個),支持,burst,傳輸,總線帶寬:,8,、,16,、,32,、,64,、,128bi
3、ts,上升沿觸發(fā)操作,對于一個新設計建議使用,AHB,,9,ASB,高速總線,流水線操作,支持多個總線主設備,支持,burst,傳輸,總線帶寬:,8,、,16,、,32bits,三態(tài)、雙向總線,(不適于做,DFT,),下降沿或者上升沿觸發(fā),10,APB,低速總線、低功耗,接口簡單,在,Bridge,中鎖存地址信號和控制信號,適用于多種外設,上升沿觸發(fā),,11,AHB,組成部分,AHB,主設備(,master,),初始化一次讀,/,寫操作,某一時刻只允許一個主設備使用總線,uP,、,DMA,、,DSP,、,LCDC …,AHB,從設備(,slave,),響應一次讀,/,寫操作,通過地址映射來選擇
4、使用哪一個從設備,外部存儲器控制器,EMI,、,APB bridge,、,UART,、,…,AHB,仲裁器(,arbiter,),允許某一個主設備控制總線,在,AMBA,協(xié)議中沒有定義仲裁算法,AHB,譯碼器(,decoder,),通過地址譯碼來決定選擇哪一個從設備,12,APB,組成部分,AHB2APB Bridge,可以鎖存所有的地址、數(shù)據(jù)和控制信號,進行二級譯碼來產生,APB,從設備選擇信號,APB,總線上的所有其他模塊都是,APB,從設備,不是流水線方式,接口是零功耗,,13,AMBA,協(xié)議其他有關問題,與工藝無關,沒有定義電氣特性,僅在時鐘周期級定義時序,提取時序參數(shù)依賴于所采用的工
5、藝和工作頻率,14,目錄,AMBA,總線概述,AHB,APB,不同,IP,之間的互連,,15,AHB,總線互連,,16,AHB,傳輸,,發(fā)起一個請求給仲裁器,驅動地址和控制信號,允許某個主設備控制總線,僅選中的從設備響應地址,/,控制信號,拉高,HREADY,信號,總線傳輸完成,17,Dummy/Default Master,Dummy Master,,Granted when all masters SPLIT,Generates IDLE cycles only,Typically Master #0,,Granted when Locked master gets SPLIT respo
6、nse,Implement as part of Address/Control Mux,Default Master,,Granted when no master requires bus,Generally master most likely to require bus,Generates IDLE cycles when not requesting bus,,Avoids minimum 2 cycle Arbitration period,Immediate access to bus,18,,,Default Slave,,Slave 3,(APB),Default Slav
7、e,0x0000_0000,0xFFFF_FFFF,case HADDR is,when …. =>,HSELebi <= ‘1’;,when …. =>,HSELsram <= ‘1’;,when …. =>,HSELapb <= ‘1’;,when,others,=>,HSELdefault <= ‘1’;,end case;,Decoder,logic,Slave 2,(Internal,Memory),Default_Slave,logic,case HTRANS is,when IDLE|BUSY =>,HRESP <= OKAY;,when others =>,HRESP <= E
8、RROR;,end case;,Slave 1,(External),0xCFFF_FFFF,,,0xC000_0000,,,,,,,0x5000_FFFF,,,0x5000_0000,,,,,,,,0x3FFF_FFFF,,,0x0000_0000,19,AHB,信號,20,基本,AHB,信號,HRESETn,低電平有效,HADDR[31:0],32,位系統(tǒng)地址總線,HWDATA[31:0],寫數(shù)據(jù)總線,從主設備寫到從設備,HRDATA[31:0],讀數(shù)據(jù)總線,從從設備讀到主設備,21,基本,AHB,信號(續(xù)),HTRANS,指出當前傳輸?shù)臓顟B(tài),NONSEQ,、,SEQ,、,IDLE,、,B
9、USY,HSIZE,指出當前傳輸?shù)拇笮?HBURST,指出傳輸?shù)?burst,類型,HRESP,從設備發(fā)給主設備的總線傳輸狀態(tài),OKAY,、,ERROR,、,RETRY,、,SPLIT,HREADY,高:從設備指出傳輸結束,低電平:從設備需延長傳輸周期,22,基本,AHB,傳輸,兩個階段,地址周期,只有一個,cycle,數(shù)據(jù)周期,由,HREADY,信號決定需要幾個,cycle,流水線傳送,先是地址周期,然后是數(shù)據(jù)周期,23,Master release address and control,Slave sample the address and control,Master sample
10、the data,,If slave hasn’t ready to receive data, how to do?,基本,AHB,傳輸(續(xù)),一次無需等待狀態(tài)的簡單傳輸,,24,Not ready,Not ready,Ready,One transfer need at least two cycles, how to promote its efficiency?,Note: slave shouldn’t insert more than 16 wait cycles!!!,基本,AHB,傳輸(續(xù)),需要兩個等待周期的簡單傳輸,,25,Pipeline,A Address,A Data
11、,B Address,B Data,C Address,C Data,Slave decodes every transfer, so many waits, how to decrease the wait cycles?,基本,AHB,傳輸(續(xù)),26,Burst Transfer,A,A,A+4,A+4,A+8,A+8,A+12,A+12,HBURST shows the burst types:,Single Transfer,Incrementing transfer with unspecified length,(,INCR,),4-beat,8-beat,16-beat,Sla
12、ve has know that master need 4 data, A/A+4/A+8/A+12,During burst transfer, if slave not ready, then hready=0; but if master is not ready, how to do?,基本,AHB,傳輸(續(xù)),27,傳輸類型,HTRANS[1:0],:當前傳輸?shù)臓顟B(tài),IDLE,、,BUSY,、,NONSEQ,、,SEQ,00,:,IDLE,主設備占用總線,但沒進行傳輸,兩次,burst,傳輸中間主設備發(fā),IDLE,01,:,BUSY,主設備占用總線,但是在,burst,傳輸過程中還
13、沒有準備好進行下一次傳輸,一次,burst,傳輸中間主設備發(fā),BUSY,,28,傳輸類型(續(xù)),10,:,NOSEQ,表明一次單個數(shù)據(jù)的傳輸,或者一次,burst,傳輸?shù)牡谝粋€數(shù)據(jù),地址和控制信號與上一次傳輸無關,11,:,SEQ,表明,burst,傳輸接下來的數(shù)據(jù),地址和上一次傳輸?shù)牡刂肥窍嚓P的,29,The first transfer,Master is busy,The subsequent transfer,The subsequent transfer,Slave is not ready,The subsequent transfer,傳輸類型舉例,30,其它,AHB,控制信號,
14、HWRITE,高電平:寫,低電平:讀,HSIZE[2:0],000:8bits 100:128bits,001:16bits 101:256bits,010:32bits 110:512bits,011:64bits 111:1024bits,最大值受總線的配置所限制,通常使用,32bits,(,010,),31,其它,AHB,控制信號(續(xù)),HPROT[3:0],HPROT[0]: OPCODE/DATA,HPROT[1]: USER/PRIVILGED,HPROT[2]: Bufferable/Non-Bufferable,HPROT[3]: Cacheable
15、/Non-Cacheable,,32,AHB,控制信號小結,HTRANS[1:0],IDLE,BUSY,NONSEQ,SEQ,HBURST[2:0],SINGLE,INCR,WRAP[4|8|16],INCR[4|8|16],HSIZE[2:0],Byte,Halfword,Word,Doubleword,...,HPROT[3:0],0 - data/opcode,1 - privileged/user,2 - bufferable,3 - cacheable,HADDR must be aligned to a multiple of data size as given by HSIZE
16、,33,BURST,傳輸,AHB Burst,操作,4beat,、,8beat,、,16beat,、單個字節(jié)傳輸、未定義長度的傳輸,支持,incrementing,和,wrapping,兩種,burst,傳輸,Incrementing burst,地址是上一次的傳輸?shù)刂芳?1,Wrapping burst,例:,4beat,的,wrapping burst,字傳輸(,4byte,):,0x34 -> 0x38 -> 0x3c -> 0x30,應用場合:,Cache,填充,,34,地址計算舉例,根據(jù),HSIZE,和,HBURST,來計算地址,例:起始地址是,0x48,,,HSIZE=010(32
17、bits),35,,INCR8 Burst,HCLK,SEQ,NSEQ,SEQ,SEQ,SEQ,SEQ,INCR8,0x60,0x68,0x64,0x6c,0x74,0x70,HTRANS,HBURST,HADDR,HRDATA,d1,d0,d2,d4,d3,d5,0x78,0x7c,SEQ,SEQ,d6,d7,36,,WRAP8 Burst,HCLK,SEQ,NSEQ,SEQ,SEQ,SEQ,SEQ,WRAP8,0x70,0x78,0x74,0x7c,0x64,0x60,HTRANS,HBURST,HADDR,HRDATA,d5,d4,d6,d0,d7,d1,0x68,0x6c,SEQ,SE
18、Q,d2,d3,start of line,37,INCR4 Burst,,38,WRAP4 Burst,,39,例:未定義長度的,Burst,傳輸,,40,,HCLK,SEQ,NSEQ,NSEQ,NSEQ,SEQ,SEQ,IDLE,INCR4,SI,SI,0x34,0x3C,0x38,0x40,0x48,0x44,HTRANS,HBURST,HADDR,HRDATA,HWDATA,r6,r5,r7,r9,r8,r10,Example LDM AHB Activity,SI = SINGLE,LDM ,{r5-r10},41,注意!,Burst,傳輸不能穿越,1K,邊界,一個從設備最小的地址間
19、隙是,1KB,NONSEQ -> SEQ -> 1KB Boundary ->,NONSEQ -> SEQ …,主設備不能試圖開始一個可能穿越,1K,邊界的固定長度的,incrementing burst,傳輸,,,,42,,INCR Burst over 1k boundary,HCLK,SEQ,NSEQ,SEQ,NSEQ,SEQ,SEQ,INCR,0x3F0,0x3F8,0x3F4,0x3FC,0x404,0x400,HTRANS,HBURST,HADDR,HRDATA,d1,d0,d2,d4,d3,d5,0x408,0x40C,SEQ,SEQ,d6,d7,start of 1k page
20、,43,地址譯碼,HSELx,:選擇從設備,指出由主設備所選擇的從設備,由地址譯碼器來提供選擇信號,一個從設備應該至少占用,1KB,的存儲空間,需要一個額外的缺省從設備來映射其他的存儲地址,44,地址譯碼(續(xù)),,45,從設備響應,所訪問的從設備必須響應這次傳輸,從設備可能返回的響應:,完成這次傳輸,插入等待狀態(tài)(,HREADY,信號),發(fā)出錯誤信號表示這次傳輸失敗,延遲傳輸,使得總線可用于其他傳輸(,split,),46,從設備響應信號,HREADY,:,transfer done,HRESP[1:0],:,transfer response,00,:,OKAY,成功,01,:,ERROR,
21、失敗,10,:,RETRY,傳輸未完成,請求主設備重新開始一個傳輸,11,:,SPLIT,傳輸未完成,請求主設備分離一次傳輸,47,兩周期的響應,HRESP[1:0],OKAY,:單周期響應,ERROR,:兩周期響應,RETRY,:兩周期響應,SPLIT,:兩周期響應,總線的流水特性需要從設備兩個周期的響應。可以使得主設備有足夠的時間處理下一次傳輸。,48,Slave Responses,,Mem A,Mem B,Mem D,Mem C,,Slave,,Processor,AMBA,Write Mem E,,I couldn’t write it because of no mem E!!!
22、!,ERROR,49,Slave Responses,,Mem A,Mem B,Mem D,Mem C,,Slave,,Processor,AMBA,Write Mem A,I couldn’t write it now for busy!!!You could retry write it latter!!,BUSY,RETRY|SPLIT,50,例:,Retry,響應,,51,RETRY,和,SPLIT,的不同,主要區(qū)別在于仲裁的方式,RETRY,:,arbiter,會繼續(xù)使用通常的優(yōu)先級,SPLIT,:,arbiter,會調整優(yōu)先級方案以便其他請求總線的主設備可以訪問總線,總線主設備應
23、該用同樣的方式處理,RETRY,響應和,SPLIT,響應,52,Locked Transfers,HCLK,,HADDR,,HWDATA,,HLOCK,,Address Phase,A,Data Phase A,Address Phase B,,A,,,,,,A,,,,,,Data Phase B,Address Phase C,,C,,,,,C,,,,,B,B,,,,Locked sequences of transfers cannot be interrupted by interconnect,HLOCK indicates next address phase is part of
24、a locked transfer,In the above transfers to addresses B & C are locked and should not be separated,ARM processors use HLOCK for SWP instruction only,53,數(shù)據(jù)總線,不是三態(tài)總線,讀總線和寫總線是分開的。,印第安序,在,AMBA,協(xié)議中沒有定義,主設備和從設備應該采用同樣的印第安序,不支持動態(tài)印第安序,對于,IP,設計, 只有應用面比較廣泛的應用程序才支持兩種印第安序。,54,32bit,小印第安數(shù)據(jù)總線的有效字節(jié),,55,32bit,大印第安數(shù)據(jù)
25、總線的有效字節(jié),,56,多個主設備,I am first,I am first!!!,57,AHB,仲裁信號,,58,仲裁信號(續(xù)),HBUSREQ,總線請求,HLOCKx,:,高電平:主設備請求鎖定總線,HGRANTx,指出主設備,x,可訪問總線,主設備,x,控制總線:,HGRANTx=1,且,HREADY=1,59,仲裁信號(續(xù)),HMASTER[3:0],指出哪個主設備正在進行傳輸,HMASTLOCK,指出主設備正在進行一次鎖定傳輸,HSPLITx[15:0],從設備用這個信號告訴仲裁器哪個主設備允許重新嘗試一次,split,傳輸。,每一位對應一個主設備,,60,仲裁舉例(,1,),沒有
26、等待狀態(tài)的,grant,61,仲裁舉例(,2,),有等待狀態(tài)的,grant,,62,仲裁舉例(,3,),Burst,傳輸之后移交總線,,63,總線主設備,Grant,信號,,Arbiter,64,幾點說明,對于固定長度的,burst,傳輸,不必持續(xù)請求總線,對于未定義長度的,burst,傳輸,主設備應該持續(xù)送出,request,信號,直到開始最后一次傳輸。,如果沒有主設備請求總線,則給缺省主設備,grant,信號,且,HTRANS=IDLE,建議主設備在鎖定總線傳輸結束之后插入,IDLE,傳輸,以重新仲裁優(yōu)先級。,65,Split,傳輸過程,由主設備開始傳輸。,如果從設備需要多個周期才能獲取數(shù)
27、據(jù),則從設備給出一個,SPLIT,傳輸響應。從設備記錄主設備號:,HMASTER,。接著仲裁器改變主設備的優(yōu)先級。,仲裁器,grant,其他的主設備,總線主設備移交。,當從設備準備結束本次傳輸,將設置給仲裁器的,HSPLITx,信號的相應位。,仲裁器恢復優(yōu)先級,仲裁器,grant,主設備,這樣主設備可以重新開始傳輸。,結束,66,防止,Deadlock,當多個不同的主設備試圖訪問同一個從設備,這個從設備發(fā)出了,SPLIT,或,RETRY,信號,這是很可能發(fā)生,deadlock,從設備最多可以接收系統(tǒng)中,16,個主設備的請求。只需要記錄主設備號(忽略地址和控制信號),給出,RETRY,響應的從設
28、備在某一時刻只能由一個主設備訪問。,可以使用一些硬件保護機制,比如,ERROR,67,AHB,主設備接口,,68,AHB,從設備接口,,69,AHB Arbiter,,70,AHB Decoder,,71,Typical Multi-layer example,Master 0,On-chip,RAM,Master 1,External,Memory,I/F,DMA,Slave,Slave,Mux,Slave,Mux,UART,Timer,GPIO,AHB2APB,Master 0 can access private RAM, APB and external interface,Maste
29、r 1 can access DMA slave, APB and external interface,Parallel access improves system bandwidth,72,AHB-Lite,Subset of AHB Functionality,Single Master,No need for HBUSREQ & HGRANT,Simple Slaves,No retry or split responses,Standard AHB modules can be used,Allows easier module design/debug,Master 0,Slav
30、e,#1,Slave,#2,Slave,#3,Slave,#4,73,AHB,總結,主要組成部分,Master,、,slaves,、,arbiter,、,decoder,傳輸?shù)倪^程,流水線機制,Address phase,和,data phase,如何提高性能,Burst read/write,仲裁機制,總線控制權的移交,74,AHB,總結(續(xù)),Slave,短時間內無法響應,HREADY,信號拉低,Slave,長時間內無法響應,插入,SPLIT/RETRY,Master,不能進行傳輸,插入,BUSY,75,AHB,的應用建議,Arbiter,的優(yōu)先級可以配置,Slave,長時間不能響應的話,
31、一般不支持,SPLIT,響應,使用,RETRY,響應,總線上如果只有一個,master,的話,可以使用,AHB lite,協(xié)議,不用,arbiter,設計一個新的,IP,時,要仔細核對,AMBA,的,Feature,和,IP,所支持的,Feature,是否匹配。,76,實現(xiàn),如果設計中既有主設備端口又有從設備端口,通過主設備端口讀,/,寫數(shù)據(jù),通過從設備端口配置寄存器等,如處理器設置的一些參數(shù),,,77,目錄,AMBA,總線概述,AHB,APB,不同,IP,之間的互連,78,APB,信號,,79,APB,信號(續(xù)),PADDR[31:0],地址總線,由設備總線的,bridge,單元驅動,PSE
32、Lx,從譯碼器來的信號,到每一個總線從設備,x,PENABLE,用于在設備總線上把所有訪問按時間階段進行,PWRITE,高電平:寫,低電平:讀,PRDATA,和,PWDATA,最多,32,位寬,80,,,Address Decoding Stages,,Slave 3,(APB),Slave 1,(EBI),Slave 2,(SRAM),0xCFFF_FFFF,,0xC000_0000,,,,,,,,0x5000_FFFF,,0x5000_0000,,,,,,0x3FFF_FFFF,,0x0000_0000,Peripheral 3,(UART),Peripheral 1,(Int Cont)
33、,Peripheral 2,(Timers),0xC3FF_FFFF,,0xC300_0000,,,,0xC2FF_FFFF,,0xC100_0000,,,,0xC000_FFFF,,0xC000_0000,APB,memory map,Timer 2,Timer 1,0xC2FF_FFFF,,0xC200_0000,,,,0xC1FF_FFFF,,0xC100_0000,AHB Decoder,HSELapb,PSELtim,APB Bridge,Timers,AHB,memory map,Timers,memory map,81,APB Interconnect,AHB2APB,Bridg
34、e,APB,Master,PADDR,HCLK,PSEL#1,PWRITE,PSEL#2,PSEL#3,PCLK,HADDR,HWRITE,,Peripheral,#1,,Peripheral,#3,,Peripheral,#2,PENABLE,,,,,,PWDATA,PRDATA,HRDATA,HSEL,HWDATA,AHB,APB,,,,,,,,,,,82,寫傳輸,,83,讀傳輸,,84,Bridge,How to translate ahb pipelined timing to 2-cycle apb timing?,85,Bridge FSM,AHB Transfer,86,APB
35、Slave,,87,APB,到,AHB,的接口-讀,,88,目錄,AMBA,總線概述,AHB,APB,不同,IP,之間的互連,89,通信方式,Cpu (master), IP (slave),IP (master) IP (slave),,90,Memory mapped IO,每一個從設備都占用系統(tǒng)中的一段地址空間,所有的從設備都是可尋址的,寄存器,/,存儲器都是內存映射方式訪問,CPU/IP,讀寫其他,IP,的數(shù)據(jù)類似于讀寫存儲器,91,IP,間的通信互連,主設備被,arbiter grant,之后,可以訪問總線上的所有從設備,,92,一個,IP,可以同時擁有主設備接口和從設備接口,,9
36、3,CPU,和,IP,之間的通信,CPU,總是作為主設備,IP,總是作為從設備,IP,可以發(fā)出一個中斷請求,CPU,進入中斷模式,由,interrupt service routine (ISR),來處理中斷,94,例:,DMA,,95,例:,DMA,Step0,:,CPU,檢查,DMA,的狀態(tài)以確認是否可用,,While(1),{,Read(0x30004,&status),if(status == 0),break;,},96,例:,DMA,Step1,:,CPU,設置(,source address,)、(,destination address,)(,size,),,,Write (0x30008,0x10000),Write(0x3000C,0x20000),Write(0x30010,0x100),,Step 2:,啟動,DMA,,Write(0x30000,0x1),97,例:,DMA,Step3,:,DMA,把數(shù)據(jù)從,memory 1,,傳送到,memory 2,98,例:,DMA,Step 4,:,DMA,向,CPU,發(fā)出中斷請求,Step 5,:,CPU,檢查,DMA,的狀態(tài),Read(0x30004, &status),
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 專題黨課講稿:以高質量黨建保障國有企業(yè)高質量發(fā)展
- 廉政黨課講稿材料:堅決打好反腐敗斗爭攻堅戰(zhàn)持久戰(zhàn)總體戰(zhàn)涵養(yǎng)風清氣正的政治生態(tài)
- 在新錄用選調生公務員座談會上和基層單位調研座談會上的發(fā)言材料
- 總工會關于2025年維護勞動領域政治安全的工作匯報材料
- 基層黨建工作交流研討會上的講話發(fā)言材料
- 糧食和物資儲備學習教育工作部署會上的講話發(fā)言材料
- 市工業(yè)園區(qū)、市直機關單位、市紀委監(jiān)委2025年工作計劃
- 檢察院政治部關于2025年工作計劃
- 辦公室主任2025年現(xiàn)實表現(xiàn)材料
- 2025年~村農村保潔員規(guī)范管理工作方案
- 在深入貫徹中央8項規(guī)定精神學習教育工作部署會議上的講話發(fā)言材料4篇
- 開展深入貫徹規(guī)定精神學習教育動員部署會上的講話發(fā)言材料3篇
- 在司法黨組中心學習組學習會上的發(fā)言材料
- 國企黨委關于推動基層黨建與生產經營深度融合工作情況的報告材料
- 副書記在2025年工作務虛會上的發(fā)言材料2篇