1、Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,本幻灯片资料仅供参考,不能作为科学依据,如有不当之处,请参考专业资料。谢谢,AHB Introduction,ICD/SID Bob Qin(,覃海洋,),/12/25,第1页,1,Topic 1,What is the AHB?,第2页,2,AMBA,介绍,Advanced Microcontroller Bus Architecture,片上总线标准,定义
2、了三种总线,AHB(Advanced High-performance Bus),ASB(Advanced System Bus),APB(Advanced Peripheral Bus),第3页,3,一个经典,AMBA,系统,处理器和其它主设备,/,从设备都是能够替换,第4页,4,AHB,高速总线,高性能,流水线操作,可支持多个总线主设备(最多,16,个),支持,burst,传输,总线带宽:,8,、,16,、,32,、,64,、,128bits,上升沿触发操作,第5页,5,Topic 2,What constitutes the AHB?,第6页,6,AHB,组成部分,AHB,主设备(,ma
3、ster,),发起一次读,/,写操作,某一时刻只允许一个主设备使用总线,AHB,从设备(,slave,),响应一次读,/,写操作,经过地址映射来选择使用哪一个从设备,AHB,仲裁器(,arbiter,),允许某一个主设备控制总线,在,AMBA,协议中没有定义仲裁算法,AHB,译码器(,decoder,),经过地址译码来决定选择哪一个从设备,第7页,7,Internal Connection of AHB,发起一个请求给仲裁器,驱动地址和控制信号,允许某个主设备控制总线,选中所需从设备,拉高,HREADY,信号,总线传输完成,第8页,8,AHB,信号,第9页,9,基本,AHB,信号,HCLK,总
4、线时钟,HRESETn,总线复位,低电平有效,HADDR31:0,32,位系统地址总线,HWDATA31:0,写数据总线,从主设备写到从设备,HRDATA31:0,读数据总线,从从设备读到主设备,第10页,10,基本,AHB,信号(续),HTRANS,指出当前传输类型,NONSEQ,、,SEQ,、,IDLE,、,BUSY,HSIZE,指出当前传输大小,HBURST,指出传输,burst,类型,HRESP,从设备发给主设备总线传输状态,OKAY,、,ERROR,、,RETRY,、,SPLIT,HREADY,高:从设备指出传输结束,低电平:从设备需延长传输周期,第11页,11,Topic 3,Ho
5、w can you make a transfer on AHB?,第12页,12,Basic AHB,transfer,两个阶段,Address Phase,,只有一个有效周期,Data Phase,,由,HBURST,信号决定需要几个有效周期,流水线传送,先是有效地址周期,然后是有效数据周期,第13页,13,Master release address and control,Slave sample the address and control,Master sample the data,If slave hasnt ready to receive data,how to deal
6、 with it?,基本,AHB,传输,一次无需等候状态简单传输,第14页,14,Not ready,Not ready,Ready,One transfer need at least two cycles,how to promote its efficiency?,Note:according to spec,slave shouldnt insert more than 16 wait cycles!,基本,AHB,传输(续),需要两个等候周期简单传输,第15页,15,Pipeline,A Address,A Data,B Address,B Data,C Address,C Data
7、Slave decodes every transfer,one transfer on wait,how to decrease the wait cycles?,基本,AHB,传输(续),第16页,16,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,4-beat,8-beat,16-beat,Slave has know that master need 4 da
8、ta,A/A+4/A+8/A+12,During burst transfer,if slave is not ready,then hready=0;but if master is not ready,how to do?,基本,AHB,传输(续),第17页,17,传输类型,HTRANS1:0,:传输类型,四种类型:,IDLE,、,BUSY,、,NONSEQ,、,SEQ,00,:,IDLE,主设备占用总线,但没进行传输,两次,burst,传输中间主设备可发,IDLE,01,:,BUSY,主设备占用总线,不过在,burst,传输过程中还没有准备好进行下一次传输,一次,burst,传输中间主设
9、备可发,BUSY,第18页,18,传输类型(续),10,:,NOSEQ,表明一次单个数据传输,或者一次,burst,传输第一个数据,地址和控制信号与上一次传输无关,11,:,SEQ,表明,burst,传输接下来数据,地址和上一次传输地址是相关,第19页,19,The first transfer,Master is busy,The subsequent transfer,The subsequent transfer,Slave is not ready,The subsequent transfer,传输类型举例,第20页,20,BURST,传输,AHB Burst,操作,4beat,、,
10、8beat,、,16beat,、单个字节传输、未定义长度传输,支持,incrementing,和,wrapping,两种,burst,传输,Incrementing burst,地址是上一次传输地址加,1,个传输单位,Wrapping burst,例:,4beat,wrapping burst,字传输(,4byte,):,0 x34-0 x38-0 x3c-0 x30,应用场所:,Cache,填充,第21页,21,地址计算举例,依据,HSIZE,和,HBURST,来计算地址,例:起始地址是,0 x48,,,HSEZE=010(32bits),第22页,22,INCR8 Burst,HCLK,S
11、EQ,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,第23页,23,WRAP8 Burst,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,
12、start of line,第24页,24,INCR4 Burst,第25页,25,WRAP4 Burst,第26页,26,例,:,未定义长度,Burst,传输,第27页,27,注意!,Burst,传输不能穿越,1K,边界,一个从设备最小地址间隙是,1KB,NONSEQ-SEQ-1KB Boundary-,NONSEQ-SEQ,主设备不能试图开始一个可能穿越,1K,边界,INCR,传输,第28页,28,INCR Burst over 1k boundary,HCLK,SEQ,NSEQ,SEQ,NSEQ,SEQ,SEQ,INCR,0 x3F0,0 x3F8,0 x3F4,0 x3FC,0 x40
13、4,0 x400,HTRANS,HBURST,HADDR,HRDATA,d1,d0,d2,d4,d3,d5,0 x408,0 x40C,SEQ,SEQ,d6,d7,start of 1k page,第29页,29,Topic 4,Talking about slaver in detail?,第30页,30,地址译码(续),第31页,31,从设备响应,所访问从设备,必须响应,这次传输,从设备可能返回响应:,完成这次传输,插入等候状态(,HREADY,信号),发犯错误信号表示这次传输失败,分离传输,使得总线可用于其它传输(,SPLIT,),第32页,32,从设备响应信号,HREADY,:,tra
14、nsfer done,HRESP1:0,:,transfer response,00,:,OKAY,成功,01,:,ERROR,失败,10,:,RETRY,传输未完成,请求主设备重新开始一个传输,11,:,SPLIT,传输未完成,请求主设备分离一次传输,第33页,33,两周期响应,HRESP1:0,OKAY,:单周期响应,ERROR,:两周期响应,RETRY,:两周期响应,SPLIT,:两周期响应,总线流水特征需要从设备两个周期响应。能够使得主设备有足够时间处理下一次传输。,第34页,34,Slave Responses,Mem A,Mem B,Mem D,Mem C,Slave,Proces
15、sor,AMBA,Write Mem A,第35页,35,Slave Responses,Mem A,Mem B,Mem D,Mem C,Slave,Processor,AMBA,Write Mem E,I couldnt write it because of no mem E!,ERROR,第36页,36,Slave Responses,Mem A,Mem B,Mem D,Mem C,Slave,Processor,AMBA,Write Mem A,I couldnt write it now for busy!You could retry write it latter!,BUSY,R
16、ETRY|SPLIT,BUSY,第37页,37,例:,Retry,响应,第38页,38,RETRY,和,SPLIT,不一样,主要区分在于仲裁方式,RETRY,:,arbiter,会继续使用通常优先级,SPLIT,:,arbiter,会调整优先级方案方便其它请求总线主设备能够访问总线,总线主设备应该用一样方式处理,RETRY,响应和,SPLIT,响应,第39页,39,数据总线,不是三态总线,读数据总线和写数据总线分开,印第安序,在,AMBA,定义中没有定义,主设备和从设备应该采取一样印第安序,不支持动态印第安序,对于,IP,设计,只有应用面比较广泛应用程序才支持两种印第安序。,第40页,40,小
17、印第安数据有效字节,第41页,41,大印第安数据有效字节,第42页,42,Topic 5,Talking about slaver in detail?,第43页,43,多个主设备,I am first,I am first!,第44页,44,AHB,仲裁信号,第45页,45,仲裁信号(续),HBUSREQ,总线请求,HLOCKx,:,高电平:主设备请求锁定总线,HGRANTx,指出主设备,x,可访问总线,主设备,x,控制总线:,HGRANTx=1,且,HREADY=1,第46页,46,仲裁信号(续),HMASTER3:0,指出哪个主设备正在进行传输,提供进行,split,信息,HMASTLO
18、CK,指出主设备正在进行一次锁定传输,HSPLITx15:0,从设备用这个信号告诉仲裁器哪个主设备允许重新尝试一次,split,传输。,每一位对应一个主设备,第47页,47,仲裁举例(,1,),没有等候状态,grant,第48页,48,仲裁举例(,2,),有等候状态,grant,第49页,49,仲裁举例(,3,),Burst,传输之后移交总线,第50页,50,总线主设备,Grant,信号,第51页,51,几点说明,对于固定长度,burst,传输,无须连续请求总线,对于未定义长度,burst,传输,主设备应该连续送出,request,信号,直到开始最终一次传输。,假如没有主设备请求总线,则给,d
19、efault Master grant,信号,且,HTRANS=IDLE,第52页,52,Split,传输过程,由主设备开始传输,假如从设备需要多个周期才能获取数据,则从设备给出一个,SPLIT,传输响应,从设备统计主设备号:,HMASTER,接着仲裁器改变主设备优先级,仲裁器,grant,其它主设备,总线主设备移交。,当从设备准备结束此次传输,将设置给仲裁器,HSPLITx,信号对应位,仲裁器恢复优先级,仲裁器,grant,主设备,这么主设备能够重新开始传输,结束,第53页,53,预防,Deadlock,当多个不一样主设备试图访问同一个从设备,这个从设备发出了,SPLIT,或,RETRY,信
20、号,这是很可能发生,deadlock,给出,RETRY,响应从设备在某一时刻只能由一个主设备访问,能够使用一些硬件保护机制,比如,ERROR,第54页,54,Topic 6,See it again.,第55页,55,AHB,Master,第56页,56,AHB Slaver,第57页,57,AHB Arbiter,第58页,58,AHB Decoder,第59页,59,Topic 7,Making a conclusion.,第60页,60,AHB,总结,(1),主要组成部分,Master,、,slaves,、,arbiter,、,decoder,传输过程,流水线机制,Address pha
21、se,和,data phase,怎样提升性能,Burst read/write,仲裁机制,总线控制器移交,第61页,61,AHB,总结(,2,),Slave,短时间内无法响应,HREADY,信号拉低,Slave,长时间内无法响应,插入,SPLIT/RETRY,Master,不能进行传输,插入,BUSY,第62页,62,Arbiter,优先级能够配置,Slave,长时间不能响应话,普通不支持,SPLIT,响应,使用,RETRY,响应,总线上假如只有一个,master,话,能够使用,AHB lite,协议,不用,arbiter,AHB,总结(,3,),第63页,63,My Questions,1.What is the Dummy Master,and its function?,2.What is the HPROT3:0,and its function?,3.Why bursting transfer can not across the 1k boundary?,第64页,64,






