分享

AXI Register Slice

 罗森内力 2017-01-10

   AXI协议是目前广泛采用的总线协议。为了使总线能够跑上更高的频率,获得更好的timing性能,register slice 被广泛采用,用于切断/分割AXI总线的criticle path。

   通常来讲,register slice有4种工作模式:

   1. Pass Through

   2. Forward Registered

   3. Backward Registered (Reverse Registered)

   4. Full Registered

   下面我们分别介绍一下。

 

1. Pass Through

   没什么好说的,直连。等于没有用register slice。

2. Forward Registered

AXI <wbr>Register <wbr>Slice

    Valid(from source)/channel payload 路径被插入了registers.

    对于destination来讲,其得到的valid/payload必然来自RS中的registers,即若payload为full,则valid(to destination)有效。

    对于source来讲,ready(to source)表明在下一个cycle,内部registers可以接受新的payload。在如下两种情况下为高:1.当前payload为空;2.当前payload为full,但同时destination的ready为高。

AXI <wbr>Register <wbr>Slice

3. Backward Registered (Reverse Registered)

AXI <wbr>Register <wbr>Slice

    这种模式下,forward control path/payload没有刻意插入registers,而backward control path/payload(尤其指ready from destination这条路上),被插入了registers。

    对于source来讲,其valid和payload直接的交易对象是RS内部的registers,ready(to source)有效的条件是内部payload为空。

    对于destination来讲,其交易的对象可能是RS内部的payload,也可能直接来自于source。valid(to destination)表明当前是否有有效的payload给destination,这分为两种情况:1.RS内部payload为full;2.若payload为空,但此时valid(from source)有效。

AXI <wbr>Register <wbr>Slice

4. Full Registered

AXI <wbr>Register <wbr>Slice
   Full Registered就是前两者的集合,即在forward path和backward path上都插入了registers, 切断了相关的path。在forward path上,使用了两套registers,类似ping-pong buffer的实现方式。

   对于source来讲,其直接交易对象是ping-pong buffer,ready(to source)在ping-pong buffer至少其中一组为空时有效。

   对于destination来讲,其直接交易对象也仅是ping-pong buffer,valid(to destination)在ping-pong buffer不为空时有效。

AXI <wbr>Register <wbr>Slice

Summary

    Register slice的使用可以打断forward control/payload path或者backward control/payload path,在timing比较紧张的时候,选择适当的模式可以提高bus的频率。当然,register slice的引入会增大size,引入latency,因此也不建议随意使用。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多