Clock Crossing Adapter传输效率分析 (Latency增长,传输效率下降)

原创By DeeZeng [ Intel FPGA笔记 ]ios

在用Nios II测试 DDR3时候发现一个现象 (测试为:写全片,读全片+比对)架构

  1. 用单独的PLL产生时钟(200MHz)驱动 Nios II,  测试DDR3时间为87s
  2. 用 DDR3 IP的 afi_clk(200MHz) 驱动 Nios II,  测试DDR3时间为67s

 

只是换了个时钟为何影响这么大?相差近 20s测试

 分析发现spa

  1. PLL 产生的时钟 和 DDR3 的afi_clk 是两个时钟域
  2. Qsys interconnect 会在 Avalon MM 不一样时钟域 自动插入 Clock Crossing Adapter
  3. Nios II的读写 和 Clock Crossing Adapter 特性形成传输效率低下

 


 

接下来将具体分析一下,为何测试时间会相差那么大:orm

1、跨时钟域 Qsys自动插入 Clock Crossing Adapter
blog

 1. 当Avalon MM Master  和 Avalon MM Slave 的时钟为不一样时钟的时候  (相似Nios II 用pll 200MHz , DDR3 都用了 afi_clk 200MHz)ip

 adapter_insert

 咱们将鼠标悬浮在 黑圆点那 能够看到链接信息,而且 红点提示:A Clock Crossing adapter will be inserted资源

2. 当Avalon MM Master  和 Avalon MM Slave 的时钟为同一个的时候  (相似Nios II 和 DDR3 都用了 afi_clk)get

咱们将鼠标悬浮在 黑圆点那 能够看到链接信息, 而后不会有Clock Crossing Bridge提示it

 

2、 Clock Crossing Adapter 将增长 多个周期 的 latency

clock crossing adapter

如上两图,能够看出Clock Crossing Adapter的架构 将致使增长几个周期的 latency

 

3、增长的Latency 对传输效率有什么影响?

 1. 低效率的读写操做,雪上加霜

low

若是自己传输协议就是如上图这种低效的。 动做半天,只读了一个word。 那增长几个latency后效率变得更低下

举例:

       若是原来4个周期出一个Word, 那效率是 25%

       而加上5个周期 latency后,变为9个周期出一个Word,效率下降为 11%

 

2. 高效率的读写操做,影响不大

high

  若是自己传输协议就是如上图这种高效的。 burst传输,只是延迟几个周期

 举例:

        若是原来4个周期出delay,一次传输100个word 耗时 104 ,效率为 96%

        而加上5个周期 latency后,变为109个周期出100 Word,效率下降为 92%

 

、Nios II 的读写是什么状况呢?

 

从上面 一 二 三 点分析,咱们已经知道测试时间增加的缘由:增长的 Timing Crossing Adapter形成传输效率变低了

经查手册,找到一个 Nios II 的 操做时序图(并不是Nios II 操做DDR3的) ,操做 latency4个周期 一次操做8个

nios

举例:

        若是原来4个周期出delay,一次传输8个word 耗时 12,效率为 66%

        插入Timing Adapter 假设增长了5个周期 latency后,变为17个周期出8Word,效率下降为 47%

     (这里只是举例, Nios II操做DDR3实际并不是这种时序。 DDR3 -> DDR -> Quarter Bridge ->,

        DDR3的read latency也会随着这些bridge变换。bus变换过程当中也增长了Width Adapter等,因此只是简单判断缘由 )

 

因此 测试DDR3为:写全片,读全片+比对。比对耗时一致。读写变慢致使时间差别

 


 

这篇博文的目的:

1. 关注带宽和吞吐量的应用,注意一下这些 Clock Crossing Adapter  和 Pipe Bridge 的添加  (注意到 Bridge有可能下降传输效率这回事)

     分析 bridge带来 fmax 的提高,和效率下降的权衡。 (其实关键就是尽可能burst 提高传输效率)

2. 这篇分析 并非不建议用 Timing Clock Crossing Adapter (注意到 Bridges 还有不少其余做用)

    它还有不少的做用 如 

       1. 提高fmax

       2.调节架构(多个master,多个slave)节省逻辑资源

       3. ...

 

详细资料请参考:https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/ug/ug-qps-platform-designer.pdf

相关文章
相关标签/搜索