AMBA总线学时.ppt_第1页
AMBA总线学时.ppt_第2页
AMBA总线学时.ppt_第3页
AMBA总线学时.ppt_第4页
AMBA总线学时.ppt_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

AMBA总线 2 SEP3203 3 目录 AMBA总线概述AHBAPB不同IP之间的互连 4 系统总线简介 系统芯片中各个模块之间需要有接口来连接总线作为子系统之间共享的通信链路优点低成本方便易用缺点会造成性能瓶颈 5 AMBA介绍 AdvancedMicrocontrollerBusArchitecture片上总线的标准定义了三种总线AHB AdvancedHigh performanceBus ASB AdvancedSystemBus APB AdvancedPeripheralBus 6 AMBA发展历史 AMBA1 0ASB和APBAMBA2 0AHB ASB和APBAMBA3 0AMBAAdvancedeXtensibleInterface AXI 7 一个典型的AMBA系统 处理器和其它主设备 从设备都是可以替换的 8 AHB 高速总线 高性能流水线操作可支持多个总线主设备 最多16个 支持burst传输总线带宽 8 16 32 64 128bits上升沿触发操作对于一个新设计建议使用AHB 9 ASB 高速总线流水线操作支持多个总线主设备支持burst传输总线带宽 8 16 32bits三态 双向总线 不适于做DFT 下降沿或者上升沿触发 10 APB 低速总线 低功耗接口简单在Bridge中锁存地址信号和控制信号适用于多种外设上升沿触发 11 AHB组成部分 AHB主设备 master 初始化一次读 写操作某一时刻只允许一个主设备使用总线uP DMA DSP LCDC AHB从设备 slave 响应一次读 写操作通过地址映射来选择使用哪一个从设备外部存储器控制器EMI APBbridge UART AHB仲裁器 arbiter 允许某一个主设备控制总线在AMBA协议中没有定义仲裁算法AHB译码器 decoder 通过地址译码来决定选择哪一个从设备 12 APB组成部分 AHB2APBBridge可以锁存所有的地址 数据和控制信号进行二级译码来产生APB从设备选择信号APB总线上的所有其他模块都是APB从设备不是流水线方式接口是零功耗 13 AMBA协议其他有关问题 与工艺无关没有定义电气特性仅在时钟周期级定义时序提取时序参数依赖于所采用的工艺和工作频率 14 目录 AMBA总线概述AHBAPB不同IP之间的互连 15 AHB总线互连 16 AHB传输 发起一个请求给仲裁器 驱动地址和控制信号 允许某个主设备控制总线 仅选中的从设备响应地址 控制信号 拉高HREADY信号 总线传输完成 17 Dummy DefaultMaster DummyMasterGrantedwhenallmastersSPLITGeneratesIDLEcyclesonlyTypicallyMaster 0GrantedwhenLockedmastergetsSPLITresponseImplementaspartofAddress ControlMux DefaultMasterGrantedwhennomasterrequiresbusGenerallymastermostlikelytorequirebusGeneratesIDLEcycleswhennotrequestingbusAvoidsminimum2cycleArbitrationperiodImmediateaccesstobus 18 DefaultSlave Slave3 APB DefaultSlave 0 x0000 0000 0 xFFFF FFFF caseHADDRiswhen HSELebiHSELsramHSELapbHSELdefault 1 endcase Decoderlogic Slave2 InternalMemory Default Slavelogic caseHTRANSiswhenIDLE BUSY HRESPHRESP ERROR endcase Slave1 External 0 xCFFF FFFF0 xC000 00000 x5000 FFFF0 x5000 00000 x3FFF FFFF0 x0000 0000 19 AHB信号 20 基本AHB信号 HRESETn低电平有效HADDR 31 0 32位系统地址总线HWDATA 31 0 写数据总线 从主设备写到从设备HRDATA 31 0 读数据总线 从从设备读到主设备 21 基本AHB信号 续 HTRANS指出当前传输的状态NONSEQ SEQ IDLE BUSYHSIZE指出当前传输的大小HBURST指出传输的burst类型HRESP从设备发给主设备的总线传输状态OKAY ERROR RETRY SPLITHREADY高 从设备指出传输结束低电平 从设备需延长传输周期 22 基本AHB传输 两个阶段地址周期 只有一个cycle数据周期 由HREADY信号决定需要几个cycle流水线传送先是地址周期 然后是数据周期 23 Masterreleaseaddressandcontrol Slavesampletheaddressandcontrol Mastersamplethedata Ifslavehasn treadytoreceivedata howtodo 基本AHB传输 续 一次无需等待状态的简单传输 24 Notready Notready Ready Onetransferneedatleasttwocycles howtopromoteitsefficiency Note slaveshouldn tinsertmorethan16waitcycles 基本AHB传输 续 需要两个等待周期的简单传输 25 Pipeline AAddress AData BAddress BData CAddress CData Slavedecodeseverytransfer somanywaits howtodecreasethewaitcycles 基本AHB传输 续 26 BurstTransfer A A A 4 A 4 A 8 A 8 A 12 A 12 HBURSTshowsthebursttypes SingleTransferIncrementingtransferwithunspecifiedlength INCR 4 beat8 beat16 beat Slavehasknowthatmasterneed4data A A 4 A 8 A 12 Duringbursttransfer ifslavenotready thenhready 0 butifmasterisnotready howtodo 基本AHB传输 续 27 传输类型 HTRANS 1 0 当前传输的状态IDLE BUSY NONSEQ SEQ00 IDLE主设备占用总线 但没进行传输两次burst传输中间主设备发IDLE01 BUSY主设备占用总线 但是在burst传输过程中还没有准备好进行下一次传输一次burst传输中间主设备发BUSY 28 传输类型 续 10 NOSEQ表明一次单个数据的传输或者一次burst传输的第一个数据地址和控制信号与上一次传输无关11 SEQ表明burst传输接下来的数据地址和上一次传输的地址是相关的 29 Thefirsttransfer Masterisbusy Thesubsequenttransfer Thesubsequenttransfer Slaveisnotready Thesubsequenttransfer 传输类型举例 30 其它AHB控制信号 HWRITE高电平 写低电平 读HSIZE 2 0 000 8bits100 128bits001 16bits101 256bits010 32bits110 512bits011 64bits111 1024bits最大值受总线的配置所限制通常使用32bits 010 31 其它AHB控制信号 续 HPROT 3 0 HPROT 0 OPCODE DATAHPROT 1 USER PRIVILGEDHPROT 2 Bufferable Non BufferableHPROT 3 Cacheable Non Cacheable 32 AHB控制信号小结 HTRANS 1 0 IDLEBUSYNONSEQSEQ HBURST 2 0 SINGLEINCRWRAP 4 8 16 INCR 4 8 16 HSIZE 2 0 ByteHalfwordWordDoubleword HPROT 3 0 0 data opcode1 privileged user2 bufferable3 cacheable HADDRmustbealignedtoamultipleofdatasizeasgivenbyHSIZE 33 BURST传输 AHBBurst操作4beat 8beat 16beat 单个字节传输 未定义长度的传输支持incrementing和wrapping两种burst传输Incrementingburst地址是上一次的传输地址加1Wrappingburst例 4beat的wrappingburst字传输 4byte 0 x34 0 x38 0 x3c 0 x30应用场合 Cache填充 34 地址计算举例 根据HSIZE和HBURST来计算地址例 起始地址是0 x48 HSIZE 010 32bits 35 INCR8Burst HCLK SEQ NSEQ SEQ SEQ SEQ SEQ INCR8 0 x60 0 x68 0 x64 0 x6c 0 x74 0 x70 HTRANS HBURST HADDR HRDATA d1 d0 d2 d4 d3 d5 0 x78 0 x7c SEQ SEQ d6 d7 36 WRAP8Burst HCLK SEQ NSEQ SEQ SEQ SEQ SEQ WRAP8 0 x70 0 x78 0 x74 0 x7c 0 x64 0 x60 HTRANS HBURST HADDR HRDATA d5 d4 d6 d0 d7 d1 0 x68 0 x6c SEQ SEQ d2 d3 startofline 37 INCR4Burst 38 WRAP4Burst 39 例 未定义长度的Burst传输 40 HCLK SEQ NSEQ NSEQ NSEQ SEQ SEQ IDLE INCR4 SI SI 0 x34 0 x3C 0 x38 0 x40 0 x48 0 x44 HTRANS HBURST HADDR HRDATAHWDATA r6 r5 r7 r9 r8 r10 ExampleLDMAHBActivity SI SINGLE LDM r5 r10 41 注意 Burst传输不能穿越1K边界一个从设备最小的地址间隙是1KBNONSEQ SEQ 1KBBoundary NONSEQ SEQ 主设备不能试图开始一个可能穿越1K边界的固定长度的incrementingburst传输 42 INCRBurstover1kboundary HCLK SEQ NSEQ SEQ NSEQ SEQ SEQ INCR 0 x3F0 0 x3F8 0 x3F4 0 x3FC 0 x404 0 x400 HTRANS HBURST HADDR HRDATA d1 d0 d2 d4 d3 d5 0 x408 0 x40C SEQ SEQ d6 d7 startof1kpage 43 地址译码 HSELx 选择从设备指出由主设备所选择的从设备由地址译码器来提供选择信号一个从设备应该至少占用1KB的存储空间需要一个额外的缺省从设备来映射其他的存储地址 44 地址译码 续 45 从设备响应 所访问的从设备必须响应这次传输从设备可能返回的响应 完成这次传输插入等待状态 HREADY信号 发出错误信号表示这次传输失败延迟传输 使得总线可用于其他传输 split 46 从设备响应信号 HREADY transferdoneHRESP 1 0 transferresponse00 OKAY成功01 ERROR失败10 RETRY传输未完成请求主设备重新开始一个传输11 SPLIT传输未完成请求主设备分离一次传输 47 两周期的响应 HRESP 1 0 OKAY 单周期响应ERROR 两周期响应RETRY 两周期响应SPLIT 两周期响应总线的流水特性需要从设备两个周期的响应 可以使得主设备有足够的时间处理下一次传输 48 SlaveResponses MemA MemB MemD MemC Slave Processor AMBA WriteMemE Icouldn twriteitbecauseofnomemE ERROR 49 SlaveResponses MemA MemB MemD MemC Slave Processor AMBA WriteMemA Icouldn twriteitnowforbusy Youcouldretrywriteitlatter BUSY RETRY SPLIT 50 例 Retry响应 51 RETRY和SPLIT的不同 主要区别在于仲裁的方式RETRY arbiter会继续使用通常的优先级SPLIT arbiter会调整优先级方案以便其他请求总线的主设备可以访问总线总线主设备应该用同样的方式处理RETRY响应和SPLIT响应 52 LockedTransfers HCLKHADDRHWDATAHLOCK AddressPhaseA DataPhaseAAddressPhaseB A A DataPhaseBAddressPhaseC C C B B LockedsequencesoftransferscannotbeinterruptedbyinterconnectHLOCKindicatesnextaddressphaseispartofalockedtransferIntheabovetransferstoaddressesB CarelockedandshouldnotbeseparatedARMprocessorsuseHLOCKforSWPinstructiononly 53 数据总线 不是三态总线 读总线和写总线是分开的 印第安序在AMBA协议中没有定义主设备和从设备应该采用同样的印第安序不支持动态印第安序对于IP设计 只有应用面比较广泛的应用程序才支持两种印第安序 54 32bit小印第安数据总线的有效字节 55 32bit大印第安数据总线的有效字节 56 多个主设备 Iamfirst Iamfirst 57 AHB仲裁信号 58 仲裁信号 续 HBUSREQ总线请求HLOCKx 高电平 主设备请求锁定总线HGRANTx指出主设备x可访问总线主设备x控制总线 HGRANTx 1且HREADY 1 59 仲裁信号 续 HMASTER 3 0 指出哪个主设备正在进行传输HMASTLOCK指出主设备正在进行一次锁定传输HSPLITx 15 0 从设备用这个信号告诉仲裁器哪个主设备允许重新尝试一次split传输 每一位对应一个主设备 60 仲裁举例 1 没有等待状态的grant 61 仲裁举例 2 有等待状态的grant 62 仲裁举例 3 Burst传输之后移交总线 63 总线主设备Grant信号 Arbiter 64 几点说明 对于固定长度的burst传输 不必持续请求总线对于未定义长度的burst传输 主设备应该持续送出request信号 直到开始最后一次传输 如果没有主设备请求总线 则给缺省主设备grant信号 且HTRANS IDLE建议主设备在锁定总线传输结束之后插入IDLE传输 以重新仲裁优先级 65 Split传输过程 由主设备开始传输 如果从设备需要多个周期才能获取数据 则从设备给出一个SPLIT传输响应 从设备记录主设备号 HMASTER 接着仲裁器改变主设备的优先级 仲裁器grant其他的主设备 总线主设备移交 当从设备准备结束本次传输 将设置给仲裁器的HSPLITx信号的相应位 仲裁器恢复优先级仲裁器grant主设备 这样主设备可以重新开始传输 结束 66 防止Deadlock 当多个不同的主设备试图访问同一个从设备 这个从设备发出了SPLIT或RETRY信号 这是很可能发生deadlock从设备最多可以接收系统中16个主设备的请求 只需要记录主设备号 忽略地址和控制信号 给出RETRY响应的从设备在某一时刻只能由一个主设备访问 可以使用一些硬件保护机制 比如ERROR 67 AHB主设备接口 68 AHB从设备接口 69 AHBArbiter 70 AHBDecoder 71 TypicalMulti layerexample Master0canaccessprivateRAM APBandexternalinterfaceMaster1canaccessDMAslave APBandexternalinterfaceParallelaccessimprovessystembandwidth 72 AHB Lite SubsetofAHBFunctionalitySingleMasterNoneedforHBUSREQ HGRANTSimpleSlavesNoretryorsplitresponsesStandardAHBmodulescanbeusedAllowseasiermoduledesign debug 73 AHB总结 主要组成部分Master slaves arbiter decoder传输的过程流水线机制Addressphase和dataphase如何提高性能Burstread write仲裁机制总线控制权的移交 74 AHB总结 续 Slave短时间内无法响应HREADY信号拉低Slave长时间内无法响应插入SPLIT RETRYMaster不能进行传输插入BUSY 75 AHB的应用建议 Arbiter的优先级可以配置Slave长时间不能响应的话 一般不支持SPLIT响应 使用RETRY响应总线上如果只有一个master的话 可以使用AHBlite协议 不用arbiter设计一个新的IP时 要仔细核对AMBA的Feature和IP所支持的Feature是否匹配 76 实现 如果设计中既有主设备端口又有从设备端口通过主设备端口读 写数据通过从设备端口配置寄存器等如处理器设置的一些参数 77 目录 AMBA总线概述AHBAPB不同IP之间的互连 78 APB信号 79 APB信号 续 PADDR 31 0 地址总线 由设备总线的bridge单元驱动PSELx从译码器来的信号 到每一个总线从设备xPENABLE用于在设备总线上把所有访问按时间阶段进行PWRITE高电平 写低电平 读PRDATA和PWDATA最多32位宽 80 AddressDecodingStages Slave3 APB Slave1 EBI Slave2 SRAM 0 xCFFF FFFF0 xC000 00000 x5000 FFFF0 x5000 00000 x3FFF FFFF0 x0000 0000 Peripheral3 UART Peripheral1 IntCont Peripheral2 Timers 0 xC3FF FFFF0 xC300 00000 xC2FF FFFF0 xC100 00000 xC000 FFFF0 xC000 0000 APBmemorymap Timer2 Timer1 0 xC2FF FFFF0 xC2

温馨提示

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

评论

0/150

提交评论