zoukankan      html  css  js  c++  java
  • AMBA interconnector PL301(一)

    HPM(High-Performance Matrix)是一个自生成的AMBA3 bus subsystem。

    由一个AXI bus matrix,Frequency Conversion Components,Data Bus Width Conversion Components,

                                     Interface Protocol Conversion Components,Buffering Components组成。

    一个HPM可以实现,SI/MI的个数配置;multi-layer AXI routing;32bit/64bit/128bit的互联;AHB-Lite/AXI/APB的bridge实现;

                                                       async/sync频率转换;各个clock domain的sync;register slice的自配置来提高最高工作频率;

                                                       QoS/Arbitration来实现各个master的轮流访问。

    AMBA Designer是一个可配置的工具,来产生HPM的RTL,Testbench,Stimulus。

    HPM的几个基本feature:Routing data width---native data width,AXI bus matrix的默认数据位宽。32bit/64bit/128bit。

                                      Routing address width---native address width,AXI bus matrix的默认地址位宽,

                                                                          必须大于等于slave中的最大地址线宽度。32bit/64bit。

                                      number of master interface;

                                      number of slave interface。

    Slave interface的几个feature:1)Name,最多16个ASCII码组成,字母加数字。然后自动加上AXI/AHB/APB的信号前缀。

                                               2)ID width,针对AXI,表示ID信号的位宽。

                                               3)Decode register,在decode address 加入register slice,目的是分隔critical path,

                                                                            以增加latency为代价提高工作频率。

                                               4)Read acceptance capability,SI可以缓存的最大数目的read transaction,一般就是内部FIFO深度。

                                                                                            注意它与interface protocol相互制约,只能最小值,起作用。

                                               5)Write acceptance capability,SI可以缓存的最大数目的write transaction,一般就是内部FIFO深度。

                                                                                            注意它与interface protocol相互制约,只能最小值,起作用。 

                                               6)Arbitration scheme,在HPM内部的不同master的transaction调度算法,一般有两大类:

                                                                                 fixed-priority style scheme;

                                                                                 round-robin style scheme;

                                                                                 用户可以直接通过AMBA designer生成,也可以SoC通过APB配置。

                                                                                 HPM对read和write实现一个共享的arbiter,所以一个slave只能同时接受一个master的

                                                                                 读写。

                                               7)Sparse connect,在HPM中每个SI都有自己的decoder,在SI和MI之间只是mapping关系时,可以定义一个

                                                                           Sparse connect来减少不必要的逻辑。

                                               8)Cyclic scheme,针对一个master发送transaction时,防止deadlock。具体方式:

                                                                          Single slave scheme:同一时刻,一个master只能发给一个slave transaction。

                                                                          Higher rank scheme:master可以连续的发送多个transaction给不同的slave,但是必须按

                                                                                                          higher rank的顺序来。即一个master一个transaction未结束时,再

                                                                                                          给一个higher rank的slave发送。

                                                                          Unique ID scheme:一个master的transaction都是Unique ID的,那么可以多发给N个

                                                                                                       slave。

                                                                          Hybrid scheme:一个master对于同一个slave,不论ID,transaction可以共发多个,

                                                                                                 对于不同的slave,transaction ID必须unique。

                                                                          Single-slave-per-ID:最灵活的配置,同一ID的transaction必须去同一slave,其余

                                                                                                         transaction可以任意共发。

                                             9)Peripheral register slices:可配置的插入一到两个register slices到peripheral。位置由AMBA designer决定

                                                                                      一般一个靠近peripheral,一个靠近interconnect。register对于AXI每个channel都

                                                                                      是独立的,私有的。

                                           10)Clock domain crossing:Crossing type分为三种:downwards-sync scheme;upwards-sync scheme;

                                                                                   re-sync scheme(async domain buffer)。

                                           11)Interface data width:可以配置为32bit/64bit/128bit;可以分为downsizer component;

                                                                                   upsizer component。

                                           13)Interface address width:包含两个attributes:address width、address tie-off value。

                                                                                     这个width不能大于routing address width。

                                           12)Interface protocol conversion:包含AXI/AHB-Lite Master/AHB-Lite Slave。

    Master interface的几个feature:大致与SI类似,除了以下几个:

                                      1)write issuing capability,表示MI接口中写操作的FIFO深度,如果小于SI中的write acceptance capability可能会影响

                                                                             性能。

                                      2)Address map,分为Address range和RemapRange。

                                                               MemLo/MemHi:用64bit表示;还有一组remap的参数。

                                                               RemapMove:针对remap的slave的remap使能。

                                     3)Interface protocol conversion,增加APB interface。

                                     4)Programmable QoS,只支持有一定acceptance capability的slave。当某一个MI上的outstanding

                                                            transaction达到一定的value,然后MI还可以接受由QoS指定的SI上的transaction。                         

    在subsystem中,master连接到Slave Interface(SI),slave连接到Master Interface(MI)。

    3X4 的interconnector表示连接三个master,四个slave的bus system。

    CDAS,cyclic dependency avoidance schemes。为了避免从master路由到slave的时候,由于多个trans的共发,而导致死锁的一些规则。

      每一个ASIB都可以有不同的CDAS config,同一个cdas的config,针对read和write是相同的。

      1. single slave,所有outstanding的read trans都必须到同一个destination。

                所有的outstanding的write trans都必须到同一个destination。

                如果asib端口收到了一个与当前的destination不同的trans,network会stall住trans,拉低ready,直到该笔trans通过cdas检查。

      2.single slave per id,所有的outstanding的read trans,相同id的必须去同一个destination。 

                  所有的outstanding的write trans,相同id的必须去同一个destination。

              如果asid端口的trans id不匹配现在所有的outstanding id,pass cdas检查。

              如果asid端口的trans id匹配当前的某一个outstanding id,destination 相同,pass cdas。否则fail cdas检查,stall该trans。

    尽管amba有cdas的scheme rules,但是aw与w之间的order rules还是有可能造成cyclic dependency deadlock。这个需要在生成fabric的时候,由amba designer来检查

    fabric中的valid和ready,通过clock同步fifo的empty和full来产生,master和slave两端可以通过register slice来isolation timing。

      但是ready和valid,由register delay一拍,fabric中就会缓存住该笔trans。

      所以在ready由无效变有效之后,fabric内部向pipeline一样的向前传递trans。

    matrix中的tidemark,应用在慢时钟域向快时钟域进行数据传输时,可以设置tidemark,FIFO首先缓存慢时钟域的数据到一定的数量,

    之后才向快时钟域传输数据。

    设置tidemark的好处是增加了快时钟域的带宽利用率,缺点是增加了处于慢时钟域的master的latency。

  • 相关阅读:
    Python随笔,day1
    利用php抓取蜘蛛爬虫痕迹的示例代码
    explain(执行计划)工具使用
    MyISAM和 InnoDB中索引的数据结构
    页面静态化技术(真静态和伪静态的实现)
    关于MySQL字符集和校对集问题
    客户端禁用cookie后session的解决方法
    解决Ajax中的缓存问题
    MySQL中列类型的选择需要注意的问题
    MySQL中索引的分类和基本操作
  • 原文地址:https://www.cnblogs.com/-9-8/p/4748997.html
Copyright © 2011-2022 走看看