郑州网站建设动态,凡科网站建设是免费的吗,wordpress调用分类产品,php开发系统网站建设#x1f4a1;Note#xff1a;本文是根据AXI协议IHI0022F_b_amba_axi_protocol_spec.pdf#xff08;issue F#xff09;整理的。主要是分享AXI3.0和4.0部分。如果内容有问题请大家在评论区中指出#xff0c;有补充或者疑问也可以发在评论区#xff0c;互相学习#x1f64…Note本文是根据AXI协议IHI0022F_b_amba_axi_protocol_spec.pdfissue F整理的。主要是分享AXI3.0和4.0部分。如果内容有问题请大家在评论区中指出有补充或者疑问也可以发在评论区互相学习OrderingRead ordering相同的master发出相同ARID的burst到不同的slave这些burst数据返回的顺序必须跟发出的地址顺序一样RID要和ARID一样。 Write orderingAXI4.0中写数据必须跟地址的顺序是一样的因为缺少WID来跟AWID对应。 总线得到master 的ARID, AWID, WID之后会增加几个bit用以区分不同master的ID这样master不必考虑它发出的ID跟其他master相同总线会将拓宽之后的ARID, AWID, WID发给slave所以slave收到的ID可能会宽一些并且可能跟mater发出的ID不同。Slave返回的RID也是经过拓宽的因为slave发出的RID和ARID相同这个RID在经过总线的时候总线将多余的bit去掉再给到mater所以master收到的RID和它发出的ARID是一样的。BID也是一样的 同一个burst的不同transfer的ID一定是相同的吗对于读操作ARID只采样一次每次transfer的RID都要跟ARID相同所以不同transfer的RID是相同的。对于写操作BRESP只有一次它也要跟AWID相同所以也是相同的 同一个burst的不同transfer的完成顺序跟发起顺序是相同的吗因为同一个burst中的transfer用的是相同的RID没法区分不同transfer RDATA所以只能要求transfer完成顺序是跟发起顺序是一样的。写的话只对burst回一个resp。 AXI对ordering的要求相同channel的、相同ID的burst如果destination写的destination是slave读是master也是相同的那么这些burst请求要in-order。这句话怎么理解呢比如master在AR通道发出了相同ID的多笔burst命令如果这些burst都是传给同一个memory location那么它们到达memory的顺序跟master request顺序一样。但是如果是发给不同的memory location那不需要保证请求到达slave的顺序不符合上面“同一个destination”这个条件。 相同ID的response他们在返回给master的时候也要跟请求的顺序是相同的。AXI没有要求ordering的地方• Transactions from different Managers • Read and write transactions • Transactions with different IDs • Transactions to different Peripheral regions • Transactions to different Memory locations 保序和乱序这里讨论的保序和乱序都是基于一个master发出的请求。并且粒度是一个burst传输。 问题1什么是保序Master对同一memory location发出的读burst请求按照master发出的顺序到达memory。Memory location对master的读响应按照请求的顺序返回给master。Master对同一memory location发出的写burst请求按照master发出的顺序到达memory。Memory location对master的写响应按照请求的顺序返回给master。Master对同一memory location先发写再发读确保写先到达memory。读到的是写进去的数据。 问题2什么是乱序读响应返回的顺序跟读请求的顺序不同。写响应返回的顺序跟写请求的顺序不同 问题3什么时候要保序相同channel、相同ID并且相同destination那这些传输用in-order。比如master发出相同ID的请求到一个或者多个slave那它收到的响应要跟请求顺序是一样的。 问题4什么时候可以乱序同一master发出请求的ID不同。同一master对不同的memory location或者peripheral space发出的请求。不同master发出的请求之间。是否会操作相同的地址不在AXI考虑范围内AXI不解决一致性问题 out-order不是master决定的因为这不会增加master的效率而是由slave决定的比如不同slave返回数据的距离和速度不同。 slave 会保证如果先收后到对于同一memory location的写和读那么写的顺序在读之前。如果先收后到对于同一memory location的读和写那么读的顺序在写之前。