棋子 · 2019年12月18日

amba axi的应用有哪些呢?

我已经阅读了整个axi协议。我想知道该协议的应用。是在实时应用程序或某些特定设备中使用的任何位置。如果有的话请告诉我。
我还想知道axi协议相对于常规数据传输协议的优势。请提供详细信息...

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2019年12月18日

“支持写入数据交织”

(这在AXI规范的8.5节中进行了定义。)请参阅AXI内存控制器和互连生成器的文档。写数据交错是互连的性能增强,该互连组合了来自不同主设备的多个写流。在某些规范中,例如AHB,突发写入是原子的,并且不允许交织。但是,这意味着慢速的主机可能会长时间阻塞总线。在AHB中,也许split-retry机制在某种程度上允许非常粗粒度的数据交织,但会浪费主机成本。

考虑正在写入AXI存储器控制器的AHB上的DMA控制器。通过宽度转换或时钟频率交叉,DMA控制器可能每隔几个周期在AXI上写入1个字。交织将允许互连允许ARM处理器在慢脉冲的字之间的那些间隙中写入AXI存储器控制器。

发生交织的最可能情况是来自互连,它聚合了来自多个主设备的写入。ARM处理器不交织其写数据(写交织深度为1)。同样,尽管ARM的内存控制器文档说它支持交错,但并非所有从机都可以支持数据交错。互连允许您指示每个端口的交错深度。尽管在存在慢速主设备的情况下交错处理可以优化总线带宽,但这可能意味着您必须在内存控制器中有很多缓冲才能支持不同的数据流。

“地址和数据传输之间没有定义的时序关系”

(请参阅第3.2节),这有点有趣,但是有一个单独的写地址和写数据通道(除了写响应通道之外)。写地址和写数据通道的独立握手,并且顺序未定义。我认为可能的情况是,因为每个突发写入只有1个地址传输,所以如果您有背对背突发传输,则有可能在完成第一个请求的数据传输之前可以同时请求两个地址。我不确定“真正的”主机何时会在请求地址通道的写入请求之前请求数据,尽管互连可能会导致顺序差异,具体取决于每个通道获得的路由。

我相信,ARM的AXI互连是完全组合的。这本身不能很好地扩展。因此,如果您有大型互连,则可能需要在互连的端口上添加一些流水线寄存器,以满足您的时序目标(假设您想要高速)。“寄存器片”的含义是,您可以简单地沿通道添加寄存器,而不是使用从属端口和主端口创建真正的AXI过渡模块,这实际上必须在每个阶段进行仲裁,并且可能涉及一些缓冲区和状态机。

我对此也有一个疑问,那就是:ARM是否具有AXI regsiter slice原始单元?还是沿着通道添加寄存器真的有效吗?“有效”和“就绪”信号都可以有寄存器吗?另外,是否有针对AXI主站和从站(非互连)的推荐时序规范?

你的回答