AHB中split机制简介

完整的AHB协议:1)可以多个master,并且需要外加一个Arbiter,和write multiplexor。为了保证每一时刻只有一个master拥有访问权。

                       2)为了增强pipeline的能力,允许Arbiter将一个未完成的burst中断,grant给另外一个transfer。所以还有两种

                         transfer;RETRY/SPLIT。   

Arbitration:主要是确保每个时间点,都从master的req中选择一个priority最高的访问bus;

                                                 从slave端接收req,来完成SPLIT操作。

 

Arbitration signals:

                      HBUSREQ,从master到Arbitration的总线请求信号。    

                      HLOCK,从master到Arbitration的原子操作请求,与AHB-Lite中的lock信号类似。为了保证transfer的完整性。

                      HGRANT,从Arbitration到master的总线应答信号。

                      HMASTER,4bit,由master驱动,表示当前拥有总线的master。方便支持SPLIT transfer的slave record此时的master。  

                      HMASTLOCK,由Arbitration发送给slave的lock信号。

                      HSPLIT,16bit,由slave发出,表示要进行SPLIT transfer,通知Arbitration哪一个bus master要继续进行操作。

以下是一个Arbitration的响应过程。在GRANT和HREADY都为高时,才表示总线赋予成功.

 

                      HRESP信号,2bit,表示OKAY、ERROR外,还可以表示RETRY、SPLIT。同样的RETRY、SPLIT也是2-cycle response。

                                                   RETRY和SPLIT的主要区别是,RETRY只是表示这个transfer还没有结束,

                                                                                           但并不会改变Arbitration接下来的调度。

                                                   SPLIT会将当前transfer的优先级调低,在slave准备好之后,通过SPLIT信号通知Arbitration,

                                                                                            而后再将优先级调高。

                                                   RETRY和SPLIT的会增加slave和Arbitration的设计复杂性,但是对master并没有影响,master应该始终req bus。

 

 

SPLIT机制最大限度的利用AHB的总线带宽。却增加了slave和Arbitration的设计复杂性。

posted @ 2015-08-18 11:36  _9_8  阅读(7161)  评论(0编辑  收藏  举报