|
发表于 2024-11-3 16:28:41
|
显示全部楼层
id主要是为了表示本次发起的事务,它多少个mst,多少个slv没有直接的关系。一个mst也可以有多个id,同样的一个slv也可以有多个id。 举个例子,比如一个视频解码器他作为mst,它同时解码了4路视频数据,需要送给4个显示模块,这个4个显卡模块控制了4个显示屏幕。这个场景下,一个视频解码器它可以使用4个不同的id来解码传输4条视频流,分别是id0,1,2,3,每个视频流都是由很多图像帧组成,每帧又对应了多次axi 读写地址,在这个场景下,比如id=0发起的视频流,需要保证都是这个id=0的顺序是相同的即可。对于id=1和id=0的两组视频流来说,他们要送到两个不同的显示器显示,他们2个流没有任何关系,完全不需要保证顺序,这种不同id可以乱序的做法,给总线调度【通常是ddr控制器的mem sch】提供了很大的调整空间,他们可以根据访问的地址进行调整或者对齐等操作,保证ddr的效率得到提高,通过这种方法使得性能得到很大提升。
这就是axi总线id的妙用之处。
另外axi总线实现读写数据,读写地址通道分离的做法,也为总线性能提升提供了保证,较为遗憾的地方就是线多,面积大些,实现起来和ahb,apb等相比,稍显复杂,但的确是应用最为广泛切性能优异的总线 |
|