7 AMBA总线(6学时)

上传人:痛*** 文档编号:253201420 上传时间:2024-12-01 格式:PPTX 页数:98 大小:2.30MB
收藏 版权申诉 举报 下载
7 AMBA总线(6学时)_第1页
第1页 / 共98页
7 AMBA总线(6学时)_第2页
第2页 / 共98页
7 AMBA总线(6学时)_第3页
第3页 / 共98页
资源描述:

《7 AMBA总线(6学时)》由会员分享,可在线阅读,更多相关《7 AMBA总线(6学时)(98页珍藏版)》请在装配图网上搜索。

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,,AMBA,总线,2,SEP3203,,3,目录,AMBA,总线概述,AHB,APB,不同,IP,之间的互连,4,系统总线简介,系统芯片中各个模块之间需要有接口来连接,总线作为子系统之间共享的通信链路,优点,低成本,方便易用,缺点,会造成性能瓶颈,5,AMBA,介绍,Advanced Microcontroller Bus Architecture,片上总线的标准,定义了三种总线,AHB (Advanced High-pe

2、rformance Bus),ASB (Advanced System Bus),APB (Advanced Peripheral Bus),,6,AMBA,发展历史,AMBA 1.0,ASB,和,APB,AMBA 2.0,AHB, ASB,和,APB,AMBA 3.0,AMBA Advanced eXtensible Interface (AXI),,7,一个典型的,AMBA,系统,处理器和其它主设备,/,从设备都是可以替换的,8,AHB,高速总线,高性能,流水线操作,可支持多个总线主设备(最多,16,个),支持,burst,传输,总线带宽:,8,、,16,、,32,、,64,、,128bi

3、ts,上升沿触发操作,对于一个新设计建议使用,AHB,,9,ASB,高速总线,流水线操作,支持多个总线主设备,支持,burst,传输,总线带宽:,8,、,16,、,32bits,三态、双向总线,(不适于做,DFT,),下降沿或者上升沿触发,10,APB,低速总线、低功耗,接口简单,在,Bridge,中锁存地址信号和控制信号,适用于多种外设,上升沿触发,,11,AHB,组成部分,AHB,主设备(,master,),初始化一次读,/,写操作,某一时刻只允许一个主设备使用总线,uP,、,DMA,、,DSP,、,LCDC …,AHB,从设备(,slave,),响应一次读,/,写操作,通过地址映射来选择

4、使用哪一个从设备,外部存储器控制器,EMI,、,APB bridge,、,UART,、,…,AHB,仲裁器(,arbiter,),允许某一个主设备控制总线,在,AMBA,协议中没有定义仲裁算法,AHB,译码器(,decoder,),通过地址译码来决定选择哪一个从设备,12,APB,组成部分,AHB2APB Bridge,可以锁存所有的地址、数据和控制信号,进行二级译码来产生,APB,从设备选择信号,APB,总线上的所有其他模块都是,APB,从设备,不是流水线方式,接口是零功耗,,13,AMBA,协议其他有关问题,与工艺无关,没有定义电气特性,仅在时钟周期级定义时序,提取时序参数依赖于所采用的工

5、艺和工作频率,14,目录,AMBA,总线概述,AHB,APB,不同,IP,之间的互连,,15,AHB,总线互连,,16,AHB,传输,,发起一个请求给仲裁器,驱动地址和控制信号,允许某个主设备控制总线,仅选中的从设备响应地址,/,控制信号,拉高,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,位系统地址总线,HWDATA[31:0],写数据总线,从主设备写到从设备,HRDATA[31:0],读数据总线,从从设备读到主设备,21,基本,AHB,信号(续),HTRANS,指出当前传输的状态,NONSEQ,、,SEQ,、,IDLE,、,B

9、USY,HSIZE,指出当前传输的大小,HBURST,指出传输的,burst,类型,HRESP,从设备发给主设备的总线传输状态,OKAY,、,ERROR,、,RETRY,、,SPLIT,HREADY,高:从设备指出传输结束,低电平:从设备需延长传输周期,22,基本,AHB,传输,两个阶段,地址周期,只有一个,cycle,数据周期,由,HREADY,信号决定需要几个,cycle,流水线传送,先是地址周期,然后是数据周期,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,传输(续),一次无需等待状态的简单传输,,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,传输(续),需要两个等待周期的简单传输,,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,传输(续),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,传输(续),27,传输类型,HTRANS[1:0],:当前传输的状态,IDLE,、,BUSY,、,NONSEQ,、,SEQ,00,:,IDLE,主设备占用总线,但没进行传输,两次,burst,传输中间主设备发,IDLE,01,:,BUSY,主设备占用总线,但是在,burst,传输过程中还

13、没有准备好进行下一次传输,一次,burst,传输中间主设备发,BUSY,,28,传输类型(续),10,:,NOSEQ,表明一次单个数据的传输,或者一次,burst,传输的第一个数据,地址和控制信号与上一次传输无关,11,:,SEQ,表明,burst,传输接下来的数据,地址和上一次传输的地址是相关的,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,控制信号(续),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,、单个字节传输、未定义长度的传输,支持,incrementing,和,wrapping,两种,burst,传输,Incrementing burst,地址是上一次的传输地址加,1,Wrapping burst,例:,4beat,的,wrapping burst,字传输(,4byte,):,0x34 -> 0x38 -> 0x3c -> 0x30,应用场合:,Cache,填充,,34,地址计算举例,根据,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,地址译码(续),,45,从设备响应,所访问的从设备必须响应这次传输,从设备可能返回的响应:,完成这次传输,插入等待状态(,HREADY,信号),发出错误信号表示这次传输失败,延迟传输,使得总线可用于其他传输(,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,的不同,主要区别在于仲裁的方式,RETRY,:,arbiter,会继续使用通常的优先级,SPLIT,:,arbiter,会调整优先级方案以便其他请求总线的主设备可以访问总线,总线主设备应

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,数据总线,不是三态总线,读总线和写总线是分开的。,印第安序,在,AMBA,协议中没有定义,主设备和从设备应该采用同样的印第安序,不支持动态印第安序,对于,IP,设计, 只有应用面比较广泛的应用程序才支持两种印第安序。,54,32bit,小印第安数据总线的有效字节,,55,32bit,大印第安数据

25、总线的有效字节,,56,多个主设备,I am first,I am first!!!,57,AHB,仲裁信号,,58,仲裁信号(续),HBUSREQ,总线请求,HLOCKx,:,高电平:主设备请求锁定总线,HGRANTx,指出主设备,x,可访问总线,主设备,x,控制总线:,HGRANTx=1,且,HREADY=1,59,仲裁信号(续),HMASTER[3:0],指出哪个主设备正在进行传输,HMASTLOCK,指出主设备正在进行一次锁定传输,HSPLITx[15:0],从设备用这个信号告诉仲裁器哪个主设备允许重新尝试一次,split,传输。,每一位对应一个主设备,,60,仲裁举例(,1,),没有

26、等待状态的,grant,61,仲裁举例(,2,),有等待状态的,grant,,62,仲裁举例(,3,),Burst,传输之后移交总线,,63,总线主设备,Grant,信号,,Arbiter,64,几点说明,对于固定长度的,burst,传输,不必持续请求总线,对于未定义长度的,burst,传输,主设备应该持续送出,request,信号,直到开始最后一次传输。,如果没有主设备请求总线,则给缺省主设备,grant,信号,且,HTRANS=IDLE,建议主设备在锁定总线传输结束之后插入,IDLE,传输,以重新仲裁优先级。,65,Split,传输过程,由主设备开始传输。,如果从设备需要多个周期才能获取数

27、据,则从设备给出一个,SPLIT,传输响应。从设备记录主设备号:,HMASTER,。接着仲裁器改变主设备的优先级。,仲裁器,grant,其他的主设备,总线主设备移交。,当从设备准备结束本次传输,将设置给仲裁器的,HSPLITx,信号的相应位。,仲裁器恢复优先级,仲裁器,grant,主设备,这样主设备可以重新开始传输。,结束,66,防止,Deadlock,当多个不同的主设备试图访问同一个从设备,这个从设备发出了,SPLIT,或,RETRY,信号,这是很可能发生,deadlock,从设备最多可以接收系统中,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,传输的过程,流水线机制,Address phase,和,data phase,如何提高性能,Burst read/write,仲裁机制,总线控制权的移交,74,AHB,总结(续),Slave,短时间内无法响应,HREADY,信号拉低,Slave,长时间内无法响应,插入,SPLIT/RETRY,Master,不能进行传输,插入,BUSY,75,AHB,的应用建议,Arbiter,的优先级可以配置,Slave,长时间不能响应的话,

31、一般不支持,SPLIT,响应,使用,RETRY,响应,总线上如果只有一个,master,的话,可以使用,AHB lite,协议,不用,arbiter,设计一个新的,IP,时,要仔细核对,AMBA,的,Feature,和,IP,所支持的,Feature,是否匹配。,76,实现,如果设计中既有主设备端口又有从设备端口,通过主设备端口读,/,写数据,通过从设备端口配置寄存器等,如处理器设置的一些参数,,,77,目录,AMBA,总线概述,AHB,APB,不同,IP,之间的互连,78,APB,信号,,79,APB,信号(续),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,每一个从设备都占用系统中的一段地址空间,所有的从设备都是可寻址的,寄存器,/,存储器都是内存映射方式访问,CPU/IP,读写其他,IP,的数据类似于读写存储器,91,IP,间的通信互连,主设备被,arbiter grant,之后,可以访问总线上的所有从设备,,92,一个,IP,可以同时拥有主设备接口和从设备接口,,9

36、3,CPU,和,IP,之间的通信,CPU,总是作为主设备,IP,总是作为从设备,IP,可以发出一个中断请求,CPU,进入中断模式,由,interrupt service routine (ISR),来处理中断,94,例:,DMA,,95,例:,DMA,Step0,:,CPU,检查,DMA,的状态以确认是否可用,,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,把数据从,memory 1,,传送到,memory 2,98,例:,DMA,Step 4,:,DMA,向,CPU,发出中断请求,Step 5,:,CPU,检查,DMA,的状态,Read(0x30004, &status),

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  sobing.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!