加载中…
个人资料
大鹏
大鹏
  • 博客等级:
  • 博客积分:0
  • 博客访问:2,004
  • 关注人气:5
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

AXIprotocol学习记录(6)——多个传输

(2018-10-14 10:05:54)
标签:

it

分类: IC设计

本章主要讲述out-of-order实现传输和多个outstanding的解决方法。

6.1 AXI 传输分辨方法

AXI 协议包括AXI ID传输识别码,master可以用这些去识别区分传输是否必须保序返回。

赋值AXI ID相同的所有传输必须保序,但是在不同AXI ID的传输之间并没有这个限制。这也意味着同一个物理端口可以通过逻辑端口号来支持out-of-order传输,每一个逻辑端口号保证传输的保序性。

通过AXI IDmaster 可以在上一次传输没有完成的时候发送下一次传输,这样可以提高系统性能,因为这样使得传输并行处理。

这些对slave 或者master使用AXI 传输ID没有要求,masterslave同一时间可以处理一个传输,意味着传输顺序是按照他们的处理顺序进行。

slave master得到AXI ID后,需要返回BID或者RID响应。

6.2 传输ID

每个传输通道有它自己的传输ID,具体如下

http://s3/mw690/002pcoHFzy7oo2Qmm0We2&690

6.3 传输保序

master使用AWIDAEID传输ID为了指示它的保序需求,规则如下:

  • l  不同的master传输没有保序限制,它们可以以任意顺序完成;

 

  • l  相同的master,使用不同的ID值也没有保序限制,它们可以以任意顺序完成;

 

  • l  读传输有相同ARID序列的命令必须保序完成,master 管理地址;

 

  • l  写传输有相同AWID序列的命令必须保序完成,master管理地址;

 

  • l  读写传输ARIDAWID值相同,没必要保序执行;

 

6.3.1 读保序

master接口,从相同ARID来的读传输数据,必须保序,此时master分配地址。从不同ARID来的读数据可以不保序,不同ARID读到的数据可以交互抵达。

相同ARID读序列的数据,slave必须按照顺序返回读数据,数据按照顺序得到地址。不同ARID 读序列的数据,slave 可以以任意顺序返回读数据,不考虑传输命令到达顺序。

slave 必须保证返回数据的RID值和返回地址的ARID的值相匹配。

来自不同的slave相同ARID读序列的读数据,跟master收到的数据顺序,这个交互顺序必须一致,此时,master按照顺序分配地址。

读数据命令深度是slave挂起返回地址的个数,slave 一次响应一个读数据命令,读数据命令深度是一个静态值,必须由slave的设计师确定。

6.3.2 普通写保序

除非master知道slave支持写数据间插,此时必须指定写传输数据命令顺序跟传输地址相同。

master没有检查slave是否支持写数据间插的机制,AXI4 不支持写数据间插。

很多slave 设计 不支持写数据间插,因此必须按照保序命令顺序接收写数据,这样得到地址。

如果间插不同master向一个slave的写传输,此时必须保证写数据按照地址顺序。这个限制试用于不同的AWID值和不同的master

6.3.3 写数据间插

和写数据一样,slave可以接收写数据用不同的AWID间插,写数据间插深度是slave可以接收的间插数据地址个数。

slave可以支持写数据间插,不同的写传输使用相同的AWID时不能间插。

对于一个支持写数据间插的slave而言,每次接收第一个写传输数据顺序,必须和接收到的地址顺序相同。

为了防止死锁,支持写数据间插的slave必须可以连续接收间插写的数据,不能改变保序写数据命令的数据顺序。

写数据间插模型的使用:

slave接收到多个互联写数据流的时候,写数据间插可以避免操作停止。例如,一个快的写数据流和一个慢的写数据流汇聚到一起,通过两个数据流的写间插可以提高系统性能。

因为大多数master可以控制写数据过程,所有写数据间插没有必要。这些master控制写数据过程,这样也为了生成地址。然而,master接口以不同的速率从不同的地方传输数据,这样也保证最大可能的使用互联接口。

6.3.4 读写交互

AXI 在读写之间传输没有顺序限制,可以以任何顺序进行,即使读传输的ARID和写传输的AWID相同。

如果master需要确定读写之间的明确关系,就需要一次传输完成才能进行下一次传输。master也可以只考虑更早的传输是否完成当:

  • l  读传输时,接收到最后一个读数据;

 

  • l  写传输时,得到最后一个写响应;

 

正在传输写数据时,不能当做传输完成。

另外,当master向外围设备写数据时,读写之间必须等待上一次传输完成才能开始下一次传输。

对于读写memorymaster可以在outstanding传输的时候检查地址,检查两次传输是否相同,或者memory的地址是否别覆盖。如果地址没有被覆盖,mater就可以在上次传输没有完成的时候开始新的传输。

6.3.5 传输交叉互联使用识别

master使用互联的时候,交叉互联需要额外的bit为给ARIDAWIDWID,这些和master端口一致,需要两个处理:

  • l  master没必要知道其他master使用的ID值,因为互联使得mater之间的ID值一致,最初按照master 号码来识别;

 

  • l  slave接口的ID识别码比master接口的ID识别码位宽要宽;

 

对于读数据,使用RID识别码的额外bit位,来确定哪一个master端口的读数据。互联通过BID识别码链接到master之前,删除BID识别码的bit位。

对于读响应,互联使用BID额外的bit位确定哪个master端口的写响应。互联在RID到达正确的master之前删除RID的标识位。

6.3.6 传输ID域段的位宽

 

传输ID域段的位宽是IMPLEMENTATION DEFINED(使用的时候定义),然而协议要求以下传输ID位宽:

  • l  对于master端口,使用的传输ID域段位宽大于4bit

 

  • l  对于多个互联master互联接口,需要在传输域段的基础上再加4bit

 

  • l  对于slave端口,使用的传输域段需要支持8bit

 

对于支持单个保序接口的master,可以固定输出传输ID域段的值,比如0

对于不使用顺序信息、且按照顺序处理所有传输命令的slave,传输ID可以按照slave的基地址增加。

6.4 写间插移除

AXI4 不支持写数据间插,AXI4 中写数据必须在写数据通道连续传输,这也就意味着AXI4 不支持WID

6.4.1 移除WID

移除写间插使得WID信号冗余,所有写数据必须和写地址顺序相同。

AXI 4 移除WID,减少了接口数量。

6.4.2 考虑延迟

大多数AXI3 mater不支持写间插,所以不要求AXI4 为了满足没有写间插来更新。

对于AXI3不支持写间插的master必须支持配置写间插深度为定值1,保证不支持写间插的slave正常运行。这些master也必须将写间插深度配置为1,为了适配AXI4.

任何AXI3 slave都可以接收非间插写数据,因此不用考虑AXI3 slave的延迟。

另外,任何AXI3 的设备都支持WIDAWID赋值。



0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有