7 AMBA总线(6学时)_第1页
7 AMBA总线(6学时)_第2页
7 AMBA总线(6学时)_第3页
7 AMBA总线(6学时)_第4页
7 AMBA总线(6学时)_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 AMBA总线SEP32032目录AMBA总线概述AHBAPB不同IP之间的互连3系统总线简介系统芯片中各个模块之间需要有接口来连接总线作为子系统之间共享的通信链路优点低成本方便易用缺点会造成性能瓶颈4AMBA介绍Advanced Microcontroller Bus Architecture片上总线的标准定义了三种总线AHB (Advanced High-performance Bus)ASB (Advanced System Bus)APB (Advanced Peripheral Bus)5AMBA发展历史AMBA 1.0ASB 和 APBAMBA 2.0AHB, ASB 和 APBA

2、MBA 3.0AMBA Advanced eXtensible Interface (AXI)6一个典型的AMBA系统处理器和其它主设备/从设备都是可以替换的7AHB高速总线,高性能流水线操作可支持多个总线主设备(最多16个)支持burst传输总线带宽:8、16、32、64、128bits上升沿触发操作对于一个新设计建议使用AHB 8ASB高速总线流水线操作支持多个总线主设备支持burst传输总线带宽:8、16、32bits三态、双向总线(不适于做DFT)下降沿或者上升沿触发9APB低速总线、低功耗接口简单在Bridge中锁存地址信号和控制信号适用于多种外设上升沿触发10AHB组成部分AHB

3、主设备(master)初始化一次读/写操作某一时刻只允许一个主设备使用总线uP、DMA、DSP、LCDC AHB从设备(slave)响应一次读/写操作通过地址映射来选择使用哪一个从设备外部存储器控制器EMI、APB bridge、UART、 AHB仲裁器(arbiter)允许某一个主设备控制总线在AMBA协议中没有定义仲裁算法AHB译码器(decoder)通过地址译码来决定选择哪一个从设备11APB组成部分AHB2APB Bridge可以锁存所有的地址、数据和控制信号进行二级译码来产生APB从设备选择信号APB总线上的所有其他模块都是APB从设备不是流水线方式接口是零功耗12AMBA协议其他有

4、关问题与工艺无关没有定义电气特性仅在时钟周期级定义时序提取时序参数依赖于所采用的工艺和工作频率13目录AMBA总线概述AHBAPB不同IP之间的互连14AHB总线互连15AHB传输发起一个请求给仲裁器驱动地址和控制信号允许某个主设备控制总线仅选中的从设备响应地址/控制信号拉高HREADY信号,总线传输完成16Dummy/Default MasterDummy MasterGranted when all masters SPLITGenerates IDLE cycles onlyTypically Master #0Granted when Locked master gets SPLIT

5、responseImplement as part of Address/Control MuxDefault MasterGranted when no master requires busGenerally master most likely to require busGenerates IDLE cycles when not requesting busAvoids minimum 2 cycle Arbitration periodImmediate access to bus17Default SlaveSlave 3(APB)Default Slave0 x0000_000

6、00 xFFFF_FFFFcase HADDR is when . = HSELebi HSELsram HSELapb HSELdefault HRESP HRESP 0 x38 - 0 x3c - 0 x30应用场合:Cache填充33地址计算举例根据HSIZE和HBURST来计算地址例:起始地址是0 x48,HSIZE=010(32bits)34INCR8 BurstHCLKSEQNSEQSEQSEQSEQSEQINCR80 x600 x680 x640 x6c0 x740 x70HTRANSHBURSTHADDRHRDATAd1d0d2d4d3d50 x780 x7cSEQSEQd6d

7、735WRAP8 BurstHCLKSEQNSEQSEQSEQSEQSEQWRAP80 x700 x780 x740 x7c0 x640 x60HTRANSHBURSTHADDRHRDATAd5d4d6d0d7d10 x680 x6cSEQSEQd2d3start of line36INCR4 Burst37WRAP4 Burst38例:未定义长度的Burst传输39HCLKSEQNSEQNSEQNSEQSEQSEQIDLEINCR4SISI0 x340 x3C0 x380 x400 x480 x44HTRANSHBURSTHADDRHRDATAHWDATAr6r5r7r9r8r10Examp

8、le LDM AHB ActivitySI = SINGLELDM ,r5-r1040注意!Burst传输不能穿越1K边界一个从设备最小的地址间隙是1KBNONSEQ - SEQ - 1KB Boundary - NONSEQ - SEQ 主设备不能试图开始一个可能穿越1K边界的固定长度的incrementing burst传输41INCR Burst over 1k boundaryHCLKSEQNSEQSEQNSEQSEQSEQINCR0 x3F00 x3F80 x3F40 x3FC0 x4040 x400HTRANSHBURSTHADDRHRDATAd1d0d2d4d3d50 x4080

9、 x40CSEQSEQd6d7start of 1k page42地址译码HSELx:选择从设备指出由主设备所选择的从设备由地址译码器来提供选择信号一个从设备应该至少占用1KB的存储空间需要一个额外的缺省从设备来映射其他的存储地址43地址译码(续)44从设备响应所访问的从设备必须响应这次传输从设备可能返回的响应:完成这次传输插入等待状态(HREADY信号)发出错误信号表示这次传输失败延迟传输,使得总线可用于其他传输(split)45从设备响应信号HREADY:transfer doneHRESP1:0:transfer response00:OKAY成功01:ERROR失败10:RETRY传输

10、未完成请求主设备重新开始一个传输11:SPLIT传输未完成请求主设备分离一次传输46两周期的响应HRESP1:0OKAY:单周期响应ERROR:两周期响应RETRY:两周期响应SPLIT:两周期响应总线的流水特性需要从设备两个周期的响应。可以使得主设备有足够的时间处理下一次传输。47Slave ResponsesMem AMem BMem DMem CSlaveProcessorAMBAWrite Mem EI couldnt write it because of no mem E!ERROR48Slave ResponsesMem AMem BMem DMem CSlaveProcesso

11、rAMBAWrite Mem AI couldnt write it now for busy!You could retry write it latter!BUSYRETRY|SPLIT49例:Retry 响应50RETRY和SPLIT的不同主要区别在于仲裁的方式RETRY:arbiter会继续使用通常的优先级SPLIT:arbiter会调整优先级方案以便其他请求总线的主设备可以访问总线总线主设备应该用同样的方式处理RETRY响应和SPLIT响应51Locked TransfersHCLKHADDRHWDATAHLOCKAddress PhaseAData Phase AAddress P

12、hase BAAData Phase BAddress Phase CCCBB Locked sequences of transfers cannot be interrupted by interconnect HLOCK indicates next address phase is part of 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 on

13、ly52数据总线不是三态总线,读总线和写总线是分开的。印第安序在AMBA协议中没有定义主设备和从设备应该采用同样的印第安序不支持动态印第安序对于IP设计, 只有应用面比较广泛的应用程序才支持两种印第安序。5332bit小印第安数据总线的有效字节5432bit大印第安数据总线的有效字节55多个主设备I am first I am first!56AHB仲裁信号57仲裁信号(续)HBUSREQ总线请求HLOCKx:高电平:主设备请求锁定总线HGRANTx指出主设备x可访问总线主设备x控制总线:HGRANTx=1且HREADY=158仲裁信号(续)HMASTER3:0指出哪个主设备正在进行传输HMA

14、STLOCK指出主设备正在进行一次锁定传输HSPLITx15:0从设备用这个信号告诉仲裁器哪个主设备允许重新尝试一次split传输。每一位对应一个主设备59仲裁举例(1)没有等待状态的grant60仲裁举例(2)有等待状态的grant61仲裁举例(3)Burst传输之后移交总线62总线主设备Grant信号Arbiter63几点说明对于固定长度的burst传输,不必持续请求总线对于未定义长度的burst传输,主设备应该持续送出request信号,直到开始最后一次传输。如果没有主设备请求总线,则给缺省主设备grant信号,且HTRANS=IDLE建议主设备在锁定总线传输结束之后插入IDLE传输,以

15、重新仲裁优先级。64Split传输过程由主设备开始传输。如果从设备需要多个周期才能获取数据,则从设备给出一个SPLIT传输响应。从设备记录主设备号:HMASTER。接着仲裁器改变主设备的优先级。仲裁器grant其他的主设备,总线主设备移交。当从设备准备结束本次传输,将设置给仲裁器的HSPLITx信号的相应位。仲裁器恢复优先级仲裁器grant主设备,这样主设备可以重新开始传输。结束65防止Deadlock当多个不同的主设备试图访问同一个从设备,这个从设备发出了SPLIT或RETRY信号,这是很可能发生deadlock从设备最多可以接收系统中16个主设备的请求。只需要记录主设备号(忽略地址和控制信

16、号)给出RETRY响应的从设备在某一时刻只能由一个主设备访问。可以使用一些硬件保护机制,比如ERROR66AHB主设备接口67AHB从设备接口68AHB Arbiter69AHB Decoder70Typical Multi-layer exampleMaster 0On-chipRAMMaster 1ExternalMemoryI/FDMASlaveSlave MuxSlave MuxUARTTimerGPIOAHB2APB Master 0 can access private RAM, APB and external interface Master 1 can access DMA

17、slave, APB and external interfaceParallel access improves system bandwidth71AHB-LiteSubset of AHB FunctionalitySingle Master No need for HBUSREQ & HGRANTSimple SlavesNo retry or split responses Standard AHB modules can be usedAllows easier module design/debugMaster 0Slave#1Slave#2Slave#3Slave#472AHB

18、总结主要组成部分Master、slaves、arbiter、decoder传输的过程流水线机制Address phase和data phase如何提高性能Burst read/write仲裁机制总线控制权的移交73AHB总结(续)Slave短时间内无法响应HREADY信号拉低Slave长时间内无法响应插入SPLIT/RETRYMaster不能进行传输插入BUSY74AHB的应用建议Arbiter的优先级可以配置Slave长时间不能响应的话,一般不支持SPLIT响应,使用RETRY响应总线上如果只有一个master的话,可以使用AHB lite协议,不用arbiter设计一个新的IP时,要仔细核

19、对AMBA的Feature和IP所支持的Feature是否匹配。75实现如果设计中既有主设备端口又有从设备端口通过主设备端口读/写数据通过从设备端口配置寄存器等如处理器设置的一些参数76目录AMBA总线概述AHBAPB不同IP之间的互连77APB信号78APB信号(续)PADDR31:0地址总线,由设备总线的bridge单元驱动PSELx从译码器来的信号,到每一个总线从设备xPENABLE用于在设备总线上把所有访问按时间阶段进行PWRITE高电平:写低电平:读PRDATA和PWDATA最多32位宽79Address Decoding StagesSlave 3(APB)Slave 1(EBI)

20、Slave 2(SRAM)0 xCFFF_FFFF0 xC000_00000 x5000_FFFF0 x5000_00000 x3FFF_FFFF0 x0000_0000Peripheral 3(UART)Peripheral 1(Int Cont)Peripheral 2(Timers)0 xC3FF_FFFF0 xC300_00000 xC2FF_FFFF0 xC100_00000 xC000_FFFF0 xC000_0000APBmemory mapTimer 2Timer 10 xC2FF_FFFF0 xC200_00000 xC1FF_FFFF0 xC100_0000AHB Deco

21、derHSELapbPSELtimAPB BridgeTimersAHBmemory mapTimersmemory map80APB InterconnectAHB2APBBridgeAPBMasterPADDRHCLKPSEL#1PWRITEPSEL#2PSEL#3PCLKHADDRHWRITEPeripheral #1Peripheral #3Peripheral #2PENABLEPWDATAPRDATAHRDATAHSELHWDATAAHBAPB81写传输82读传输83BridgeHow to translate ahb pipelined timing to 2-cycle apb timing?84Bridge FSMAHB Transfer85APB Slave86

温馨提示

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

评论

0/150

提交评论