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

下载本文档

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

文档简介

,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、LCDCAHB从设备(slave)响应一次读/写操作通过地址映射来选择使用哪一个从设备外部存储器控制器EMI、APBbridge、UART、AHB仲裁器(arbiter)允许某一个主设备控制总线在AMBA协议中没有定义仲裁算法AHB译码器(decoder)通过地址译码来决定选择哪一个从设备,12,APB组成部分,AHB2APBBridge可以锁存所有的地址、数据和控制信号进行二级译码来产生APB从设备选择信号APB总线上的所有其他模块都是APB从设备不是流水线方式接口是零功耗,13,AMBA协议其他有关问题,与工艺无关没有定义电气特性仅在时钟周期级定义时序提取时序参数依赖于所采用的工艺和工作频率,14,例:DMA,15,例:DMA,Step0:CPU检查DMA的状态以确认是否可用While(1)Read(0 x30004,16,例:DMA,Step1:CPU设置(sourceaddress)、(destinationaddress)(size)Write(0 x30008,0 x10000)Write(0 x3000C,0 x20000)Write(0 x30010,0 x100)Step2:启动DMAWrite(0 x30000,0 x1),17,例:DMA,Step3:DMA把数据从memory1传送到memory2,18,例:DMA,Step4:DMA向CPU发出中断请求Step5:CPU检查DMA的状态Read(0 x30004,&status),19,目录,AMBA总线概述AHBAPB不同IP之间的互连,20,AHB总线互连,21,AHB传输,发起一个请求给仲裁器,驱动地址和控制信号,允许某个主设备控制总线,仅选中的从设备响应地址/控制信号,拉高HREADY信号,总线传输完成,22,Dummy/DefaultMaster,DummyMasterGrantedwhenallmastersSPLITGeneratesIDLEcyclesonlyTypicallyMaster#0GrantedwhenLockedmastergetsSPLITresponseImplementaspartofAddress/ControlMux,DefaultMasterGrantedwhennomasterrequiresbusGenerallymastermostlikelytorequirebusGeneratesIDLEcycleswhennotrequestingbusAvoidsminimum2cycleArbitrationperiodImmediateaccesstobus,23,DefaultSlave,Slave3(APB),DefaultSlave,0 x0000_0000,0 xFFFF_FFFF,caseHADDRiswhen.=HSELebiHSELsramHSELapbHSELdefaultHRESPHRESP0 x38-0 x3c-0 x30应用场合:Cache填充,41,地址计算举例,根据HSIZE和HBURST来计算地址例:起始地址是0 x48,HSIZE=010(32bits),42,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,43,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,44,INCR4Burst,45,WRAP4Burst,46,例:未定义长度的Burst传输,47,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,48,注意!,Burst传输不能穿越1K边界一个从设备最小的地址间隙是1KBNONSEQ-SEQ-1KBBoundary-NONSEQ-SEQ主设备不能试图开始一个可能穿越1K边界的固定长度的incrementingburst传输,49,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,50,地址译码,HSELx:选择从设备指出由主设备所选择的从设备由地址译码器来提供选择信号一个从设备应该至少占用1KB的存储空间需要一个额外的缺省从设备来映射其他的存储地址,51,地址译码(续),52,从设备响应,所访问的从设备必须响应这次传输从设备可能返回的响应:完成这次传输插入等待状态(HREADY信号)发出错误信号表示这次传输失败延迟传输,使得总线可用于其他传输(split),53,从设备响应信号,HREADY:transferdoneHRESP1:0:transferresponse00:OKAY成功01:ERROR失败10:RETRY传输未完成请求主设备重新开始一个传输11:SPLIT传输未完成请求主设备分离一次传输,54,两周期的响应,HRESP1:0OKAY:单周期响应ERROR:两周期响应RETRY:两周期响应SPLIT:两周期响应总线的流水特性需要从设备两个周期的响应。可以使得主设备有足够的时间处理下一次传输。,55,SlaveResponses,MemA,MemB,MemD,MemC,Slave,Processor,AMBA,WriteMemE,IcouldntwriteitbecauseofnomemE!,ERROR,56,SlaveResponses,MemA,MemB,MemD,MemC,Slave,Processor,AMBA,WriteMemA,Icouldntwriteitnowforbusy!Youcouldretrywriteitlatter!,BUSY,RETRY|SPLIT,57,例:Retry响应,58,RETRY和SPLIT的不同,主要区别在于仲裁的方式RETRY:arbiter会继续使用通常的优先级SPLIT:arbiter会调整优先级方案以便其他请求总线的主设备可以访问总线总线主设备应该用同样的方式处理RETRY响应和SPLIT响应,59,数据总线,不是三态总线,读总线和写总线是分开的。印第安序在AMBA协议中没有定义主设备和从设备应该采用同样的印第安序不支持动态印第安序对于IP设计,只有应用面比较广泛的应用程序才支持两种印第安序。,60,32bit小印第安数据总线的有效字节,61,32bit大印第安数据总线的有效字节,62,多个主设备,Iamfirst,Iamfirst!,63,AHB仲裁信号,64,仲裁信号(续),HBUSREQ总线请求HLOCKx:高电平:主设备请求锁定总线HGRANTx指出主设备x可访问总线主设备x控制总线:HGRANTx=1且HREADY=1,65,仲裁信号(续),HMASTER3:0指出哪个主设备正在进行传输HMASTLOCK指出主设备正在进行一次锁定传输HSPLITx15:0从设备用这个信号告诉仲裁器哪个主设备允许重新尝试一次split传输。每一位对应一个主设备,66,仲裁举例(1),没有等待状态的grant,67,仲裁举例(2),有等待状态的grant,68,仲裁举例(3),Burst传输之后移交总线,69,总线主设备Grant信号,Arbiter,70,几点说明,对于固定长度的burst传输,不必持续请求总线对于未定义长度的burst传输,主设备应该持续送出HBUSREQ信号,直到开始最后一次传输。如果没有主设备请求总线,则给缺省主设备grant信号,且HTRANS=IDLE建议主设备在锁定总线传输结束之后插入IDLE传输,以重新仲裁优先级。,71,Split传输过程,由主设备开始传输。如果从设备需要多个周期才能获取数据,则从设备给出一个SPLIT传输响应。从设备记录主设备号:HMASTER。接着仲裁器改变主设备的优先级。仲裁器grant其他的主设备,总线主设备移交。当从设备准备结束本次传输,将设置给仲裁器的HSPLITx信号的相应位。仲裁器恢复优先级仲裁器grant主设备,这样主设备可以重新开始传输。结束,72,防止Deadlock,当多个不同的主设备试图访问同一个从设备,这个从设备发出了SPLIT或RETRY信号,这时很可能发生deadlock从设备最多可以接收系统中16个主设备的请求。只需要记录主设备号(忽略地址和控制信号)给出RETRY响应的从设备在某一时刻只能由一个主设备访问。可以使用一些硬件保护机制,比如ERROR,73,AHB主设备接口,74,AHB从设备接口,75,AHBArbiter,76,AHBDecoder,77,TypicalMulti-layerexample,Master0canaccessprivateRAM,APBandexternalinterfaceMaster1canaccessDMAslave,APBandexternalinterfaceParallelaccessimprovessystembandwidth,78,AHB-Lite,SubsetofAHBFunctionalitySingleMasterNoneedforHBUSREQ&HGRANTSimpleSlavesNoretryorsplitresponsesStandardAHBmodulescanbeusedAllowseasiermoduledesign/debug,79,AHB总结,主要组成部分Master、slaves、arbiter、decoder传输的过程流水线机制Addressphase和dataphase如何提高性能Burstread/write仲裁机制总线控制权的移交,80,AHB总结(续),Slave短时间内无法响应HREADY信号拉低Slave长时间内无法响应插入SPLIT/RETRYMaster不能进行传输插入BUSY,81,AHB的应用建议,Arbiter的优先级可以配置Slave长时间不能响应的话,一般不支持SPLIT响应,使用RETRY响应总线上如果只有一个master的话,可以使用AHBlite协议,不用arbiter设计一个新的IP时,要仔细核对AMBA的Feature和IP所支持的Feature是否匹配。,82,实现,如果设计中既有主设备端口又有从设备端口通过主设备端口读/写数据通过从设备端口配置寄存器等如处理器设置的一些参数,83,目录,AMBA总线概述AHBAPB不同IP之间的互连,84,APB信号,85,APB信号(续),PADDR31:0地址总线,由设备总线的bridge单元驱动PSELx从译码器来的信号,到每一个总线从设备xPENABLE用于在设备总线上把所有访问按时间阶段进行PWRITE高电平:写低电平:读PRDATA和PWDATA最多32位宽,86,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 xC200_00000 xC1FF_FFFF0 xC100_0000,AHBDecoder,HSELapb,PSELtim,APBBridge,Timers,AHBmemorymap,Timersmemorymap,87,APBInterconnect,88,写传输,89,读传输,90,Bridge,Howtotranslateahbpipelinedtimingto2-cycleapbtiming?,91,BridgeFSM,92,APBSlave,93,APB到AHB的接口读,94,目录,AMBA总线概述AHBAPB不同IP之间的互连,95,通信方式,Cpu(master)IP(slave)IP(master)IP(slave),96,MemorymappedIO,每一个从设备都占用系统中的一段地址空间所有的从设备都是可寻址的寄存器/存储器都是内存映射方式访问CPU/IP读写其他IP的数据类似于读写存储器,97,IP间的通信互连,主设备被arbitergrant之后,可以访问总线上的所有从设备,98,一个IP可以同时拥有主设备接口和从设备接口,99,CPU和IP之间的通信,CPU总是作为主设备IP总是作为从设备IP可以发出一个中断请求CPU进入中断模式,由interruptserviceroutine(ISR)来处理中断,100,例:DMA,101,例:DMA,Step0:CPU检查DMA的状态以确认是否可用While(1)Read(0 x30004,102,例:DMA,Step1:CPU设置(sourceaddress)、(destinationaddress)(size)Write(0 x30008,0 x10000)Write(0 x3000C,0 x20000)Write(0 x30010,0 x100)Step2:启动DMAWrite(0 x30000,0 x1),103,例:DMA,Step3:DMA把数据从memory1传送到memory2,104,例:DMA,Step4:DMA向CPU发出中断请求Step5:CPU检查DMA的状态Re

温馨提示

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

评论

0/150

提交评论