您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 国内外标准规范 > 19-总线及总线标准(一)
1《微型计算机原理》主要内容一、总线的基本结构二、总线协议实例教材相关章节:《微型计算机基本原理与应用(第二版)》第14章总线及总线标准第7章微处理器的内部结构及外部功能特性参考材料:“AMBASpecification”(Rev2.0)Chapter3AMBAAHB2《微型计算机原理》主要内容一、总线的基本结构二、总线协议实例3《微型计算机原理》总线的基本概念总线在多于两个模块(设备或子系统)间传送信息的公共通路总线的组成传输信息的电路管理信息传输的协议4《微型计算机原理》基于总线的典型系统示意图从模块1仲裁器总线译码器地址数据控制主模块2主模块1地址数据控制从模块2从模块35《微型计算机原理》总线模块总线主模块(BusMaster)具有总线控制能力,在获得总线控制权之后能启动总线传输(读数据或写数据)示例:CPU、DMA控制器总线从模块(BusSlave)能够对总线传输作出响应(接收写数据、返回读数据、返回“错误”响应等),但本身不具备总线控制能力示例:存储器6总线仲裁器(BusArbiter)功能:在总线上有多个主模块同时请求使用总线时,决定由哪个主模块获得总线控制权目的:让总线得到合理、高效地使用主模块1主模块2仲裁器bus_busyreq1gnt1req2gnt2if(bus_busyisfalse)beginif(req1==1)gnt1=1;elseif(req2==1)gnt2=1;end仲裁策略示例《微型计算机原理》译码示例7《微型计算机原理》总线译码器(BusDecoder)功能:根据当前控制总线的主模块提供的地址,选择作为本次总线传输目标的从模块译码器从模块1从模块2addrsel1sel2从模块3sel3case(addr[15:12])4’b0000:sel1=1;4’b0001:sel2=1;4’b0010:sel3=1;...endcaseaddr[15:0]0000H~0FFFHaddr[15:0]1000H~1FFFHaddr[15:0]2000H~2FFFH假设总线地址为16位宽,并以4K为单位划分从模块的地址空间8《微型计算机原理》总线逻辑电路示意图申请授权选中从模块仲裁器1从模块2从模块3主模块1主模块2地址和控制写数据读数据和响应译码器HOLDHLDA9《微型计算机原理》80386DX所对应的总线模型总线主模块从模块I/O接口存储器从模块译码器主模块80386DX仲裁器DMA控制器10《微型计算机原理》一个包含多条总线的复杂系统总线A译码器仲裁器微处理器存储控制器MSM总线桥接器SM以太网S控制器仲裁器S总线MP译码器真实系统中的很多总线模块包含主模块和从模块的双重功能及接口M:主模块接口S:从模块接口11《微型计算机原理》主要内容一、总线的基本结构二、总线协议实例12《微型计算机原理》13《微型计算机原理》AHB的基本结构14《微型计算机原理》时序图1:一次简单AHB传输主模写数据准备好读数据块从模块时钟地址控制主模块发出地址和控制从模块采样地址和控制传输完成从模块采样写数据主模块发出写数据主模块采样读数据15《微型计算机原理》要点说明①在第一个时钟上升沿之后,主模块驱动HADDR和Control信号②在第二个时钟上升沿,从模块采样HADDR和Control信号③在第二个时钟上升沿之后写传输:主模块驱动HWDATA信号读传输:从模块驱动HRDATA信号④在第三个时钟上升沿写传输:从模块采样HWDATA信号,完成传输读传输:主模块采样HRDATA信号,完成传输16《微型计算机原理》时序图2:从模块插入等待周期的传输未准备好未准备好扩展扩展准备好主模块发出地址从模块采样地址主模块采样读数据从模块采样写数据RowDecoderWordLines……17CPU内存BUS控制器地址ColumnDecoderSenseAmplifiersDataIn/OutBuffersBitLines……MemoryArray《微型计算机原理》数据预充电BUS行选从模块插入等待周期的典型情况CPU作为主模块,读取内存数据时,内存控制器作为总线从模块,往往需要插入数十到数百个等待周期列选数据输出18《微型计算机原理》要点说明从模块可以在传输过程中插入等待周期,以便获得额外的时间如暂存写数据的缓冲已满、读数据未准备好等在等待周期中,主模块必须保持地址、控制和写数据等信号的稳定19《微型计算机原理》时序图3:三次连续的总线传输未准备好扩展传输A完成传输B完成传输C完成注意不同传输的地址和数据在时间上的重叠(overlap)发出地址A发出地址C发出地址B发出数据A20《微型计算机原理》要点说明等待周期地址A和C的传输中没有等待周期地址B的传输中有一个等待周期,该传输的数据阶段扩展了一个周期等待周期的副作用因为地址B的传输中的等待周期,所以地址C的传输的地址阶段受其影响而扩展了一个周期编码类型说明00IDLEIndicatesthatnodatatransferisrequired.TheIDLEtransfertypeisusedwhenabusmasterisgrantedthebus,butdoesnotwishtoperformadatatransfer.01BUSYIndicatesthatthebusmasteriscontinuingwithaburstoftransfers,butthenexttransfercannottakeplaceimmediately.Thetransfershouldbeignoredbytheslave.10NONSEQIndicatesthefirsttransferofaburstorasingletransfer.Theaddressandcontrolsignalsareunrelatedtotheprevioustransfer.(NONSEQUENTIAL)11SEQTheremainingtransfersinaburstareSEQUENTIALandtheaddressisrelatedtotheprevioustransfer.Thecontrolinformationisidenticaltotheprevioustransfer.21《微型计算机原理》主模块控制信号:HTRANSHTRANS[1:0]定义传输中各周期的类型*编码为二进制编码类型说明000SINGLESingletransfer001INCRIncrementingburstofunspecifiedlength010WRAP44-beatwrappingburst011INCR44-beatincrementingburst100WRAP88-beatwrappingburst101INCR88-beatincrementingburst110WRAP1616-beatwrappingburst111INCR1616-beatincrementingburst22《微型计算机原理》主模块控制信号:HBURSTHBURST[2:0]定义了传输长度和地址变化方式*编码为二进制23《微型计算机原理》时序图4:HTRANS和HBURST信号示例主模块忙地址总线空闲IDLEINCR4地址递增的4个数据的传输传输开始传输进行中24《微型计算机原理》要点说明T1:传输开始,主模块发出第一个地址,驱动HTRANS=NONSEQ,HBURST=INCR4T2:主模块由于自身原因,暂时无法发出第二个地址,因此驱动HTRANS=BUSYT3:主模块恢复正常传输,发出第二个地址,驱动HTRANS=SEQT7:主模块发出的第四个地址已被从模块采样,无需再发出新的地址和控制信号,因此驱动HTRANS=IDLE有效位地址数据110001111222233334444030185555666677778888145304444333322221111………………………………Block25《微型计算机原理》Burst传输的应用(1)高速缓存的行填充(读)、行替换(写)CPUCore地址数据Cache地址数据MainMemoryBlockCacheLineCacheLineCacheLineDMAC26《微型计算机原理》Burst传输的应用(2)外设和主存之间的大量连续数据传输若传输过程中出现外设未准备好的情况,则可以使用传输状态“BUSY”主存中不同区域之间的大量连续数据传输网络控制器MS存储器SM:主模块接口SS:从模块接口MDMACCPUM27《微型计算机原理》时序图5:地址回卷的四个数据的传输地址回卷*HWRITE信号:1表示写传输,0表示读传输地址数据块1001H04H03H02H01H………..28《微型计算机原理》地址回卷的传输应用举例“关键字优先”的高速缓存行填充;数据地址MOVBX,[18H];10018HCX,[30H];10030HDX,ES:[10H];20010HCache未命中,读主存地址10010H,添加表项1,返回03H设:DS=1000HES=2000HMOVMOV表项0表项1表项2表项3……10010H对应地址问题:实际上,地址[10018H]对应的数据是“关键字”,是影响性能的关键因素地址数据块1001H04H03H02H01H………..29《微型计算机原理》地址回卷的传输应用举例“关键字优先”的高速缓存行填充本例中可采用WRAP4类型的总线传输地址[10080H]对应的数据将首先返回若采用INCR4类型的总线传输,则地址[10080H]对应的数据将作为第三个数据返回,延迟较大Cache表项0表项1表项2表项3……10010H对应地址30《微型计算机原理》地址回卷的要点说明地址回卷的边界(假设数据宽度为4字节)WRAP4:在16的整数倍的地址处回卷(4×4)WRAP8:在32的整数倍的地址处回卷(4×8)WRAP16:在64的整数倍的地址处回卷(4×16)传输地址变化示例INCR4:0x380x3C0x400x44WRAP4:0x380x3C0x300x34INCR4:0x300x340x380x3C起始地址相同访问区域相同编码宽度(bit)说明0008字节(Byte)00116半字(Halfword)01032字(Word)01164-100128四字(4-wordline)101256八字(8-wordline)110512-1111024-31《微型计算机原理》主模块控制信号:HSIZEHSIZE[2:0]定义了传输数据的宽度ARM体系结构中定义的“字”为32位(4个字节),与x86体系结构的定义不同*编码为二进制32《微型计算机原理》时序图6:两次不同数据宽度的总线传输“2个半字数据”的传输地址递增2“3个字数据”的传输地址递增433《微型计算机原理》从模块输出的响应信号在AHB协议中,主模块一旦发起传输,就无法取消被访问的从模块必须给出响应(HREADY和HRESP[1:0]信号),决定该传输如何继续:①②③④立即完成传输插入若干等待周期后,完成传输给出“错误”信号,表明传输失败延后完成传输(RETRY和SPLIT两种方式可供选择),并允许主从模块让出总线,以便进行其它传输34《微型计算机原理》从模块响应信号:HREADY若在时钟上升沿,主模块采样到HREADY信号为1,表明:从模块已经采样地址和控制信号从模块已经采样写数据信号此时从模块提供的读数据信号是有效的注意事项AHB协议建议从模块最多插入不超过16个等待周期,以免占用总线时间过长如果从模块需要等待更长的时间,应当先让出总线,延后完成传输编码类型说明00OKAYThetransferisprogressingnormallyandwhenHREADYgoesHIGHthisshowsthetransferhascompletedsuccessfully.01ERRORA
本文标题:19-总线及总线标准(一)
链接地址:https://www.777doc.com/doc-4131686 .html