提示:本文共有 1912 个字,阅读大概需要 4 分钟。
火车长不长就是问有几节车厢
前面Jerry讲述了AXI协议“贩毒交易“的故事,相信大家记住了AXI的结构、基本重要信号、握手机制、依赖关系、验证中需要注意的角度等。
今天我们接着讲述关于AXI协议第二个故事——“火车”。
01.“火车”心法引出3个重要参数
火车这种交通工具,Jerry相信大家都见过,没见过的同学可以先百度下~
小明同学就没有见过火车,有一天他过来问坐过火车的Jerry这么两个问题
“你坐的火车长不长?”
“你坐的火车宽敞不宽敞?”
这是很不错的两个问题,我思考了一下问题的本质:
“火车长不长”其实就是问有几节车厢,因为通过车厢数目来衡量火车的长度是再合适不过的了。
“火车宽敞不宽敞”其实最好的衡量是每个车厢中多少人,人多就不宽敞了,即使是没多少座位车厢,假如站满持有站票的人那也自然不能叫作宽敞。
那这个问题和AXI什么关系?
没错,相信有人已经隐约猜出来了,今天主要讲的是AXI的burst传输。也就是突发传输。
刚才小明同学的这两个问题,是让大家先记住两个容易混淆的重要信号的含义:
1.AxLEN(其中x代表W或R):突发传输长度。“长度”就是火车长不长,有几节车厢。在AXI里,一节“车厢”就是一个burst。这辆火车最少1节车厢,最多16节车厢。也就是说这个信号对应的长度范围是1—16(对应的本信号值的范围是0—15)。
2.AxSIZE(其中x代表W或R):突发传输大小(也有叫突发传输宽度)。这个就是宽敞不宽敞,每个车厢装多少人。对于AXI火车里面的“人数”其实就是数据多少,准确说是“字节数”。人数很多,我们怎么用少数位宽的数表示更多呢?很容易我们想到使用指数的方式!所以AXI字节数信息正是由2的指数表示,此信号就是表示一个指出即可。如下协议里的图可以看到,每个突发的大小最多是2的7次方,128字节。
对于burst传输,除上面两个信号之外,还有一个信号很关键:
3.AxBURST(其中x代表W或R):用于描述地址的计算方式。如下图:
FIXED:burst传输地址是固定的。这个一般常用于FIFO的访问。
INCR:burst地址是递增的,被称作增量突发。递增的量就是AxSIZE体现的值。这个也就是我们最常用的memory访问。
WRAP:burst地址到了一个边界又跳回最低处重新开始,被称作回环突发。注意:回环传输突发的长度只能是2、4、8、16,传输首地址需要和每次突发大小对齐。一般用于cache line访问。
02.理解跨4KB问题
关于burst必须知道的一个重点问题“不能跨4KB”
AXI协议中,有这样一个规定:
这个跨4KB是什么含义?为什么不可以呢?
实际上,每个slave,他的“地盘”——地址空间都是4KB这么大的。
跨4KB意思就是一次burst传输站在了两个slave“地盘”的分界线上,如同“两个脚各站一边”。
为什么不让跨4KB?
因为,如果同时访问两个slave,只有一个控制和地址信息,两个slave你给谁?那只能一个有一个没有,就会出现问题了。
大家看下如下Jerry精心为大家绘制的示例图,一个火车停在原地(注意,这里的火车是静态的!车头车厢位置可以看作地址坐标),三个车厢就是3个burst,经过了两种颜色的“地盘”(地址空间),两个地盘都是4KB那么大。其中burst3跨越了2个地盘,也就是他跨越了4KB边界!交警即将赶到!!
有同学可能不清楚4KB多大怎么算,Jerry送佛送到西,服务到位:
1.首先,4KB,这里的B指的是byte,字节,为什么算成字节?因为我们AXI的地址是按照字节为单位递增的,地址加1个就是加了一个字节,这样表示容易理解点。当然你也可以换算成bit,1byte=8bit。
2.然后,4KB,这里的K指的是“千”,计算机里因为2进制的原因,不方便整数1000进位,所以近似使用1024(即2的10次方:2^10)代表K。
3.最后,4KB,这里的4是什么?4就是4,但是可以表示成2的2次方2^2。
所以综上所述:
4KB=(2^2)*(2^10) Byte=2^12 Byte=2^12( 个地址)
我们地址区域是2^12次方对齐,就是所有地址开头都是被2^12整除,所以我们看到上图的各个空间的启示地址后12bit全是0!
而burst3的地址一半属于 32’h1000—32’h1FFF,一半属于32’h2000—32’h2FFF,所以跨4KB空间。
哈哈,好了,今天Jerry就侃到这里,相信大家都能理解AXI的burst传输以及跨4KB问题了。
没接触过的朋友可以先收藏起来,以后碰到再看Jerry的文章将会印象深刻,恍然大悟。
记住AXI火车的故事了吗?
看到此处说明本文对你还是有帮助的,关于“AXI总线 关于“贩毒交易”“火车”“马匪”的故事”留言是大家的经验之谈相信也会对你有益,推荐继续阅读下面的相关内容,与本文相关度极高!