今天威盛(VIA)的一道考题,求解!
题干为:
parameter:
1)Bus's clock is 500Mhz,width is 16 bit.
2)The tipycal data payload packet is 8QW,the ACK packet is 2 DW.
3)The latency from receiver receiving the complete data packet to send out the ACKpacket is 20ns.
4)The throughput of transmitter FIFO's input and output is equaled.
Caculate the optimized FIFO depth N?
怎么算深度N啊?参数8QW和2 DW是什么意思?请好心人仔细的指点一下!
求解啊!
求解啊!好心人!
我猜想8QW是 quad work,也就是四字的意思,而DW可能是double world, 双字的意思。
答案大致如下:
clk是500MHz
延时20ns = 10clk
bus一个clk传16bits = 2bytes
FIFO中每个entry = 64bits=8bytes, bus传输用时4clk
一个payload包=8QW=32bytes=4entry,bus传输用时16clk
一个ACK包=2DW=4bytes= 1entry(虽然实际数据只占有半个entry,但是还是要占用一个整entry),bus传输用时2clk
因为FIFO延时固定是10clk, bus延时最大是4clk(payload包出fifo时,bus传一个entry用4clk; ack包出fifo时,bus传一个entry用2clk),
所以 N = (10+4)/ 4 +1 = 4 (进一) +1 = 5
谢谢楼上的,高手啊!
我再问您一下,一般的FIFO的N怎么确定?有什么公式吗?
看一下 ,瞧一下!
呵呵,不懂,学习学习~
以前还没想到有这个,今天你提到了,让我受益非浅啊
谢谢!
:lol :lol
一个word是1个字节还是2个字节啊?
对fifo也不是很理解啊,好好学习
还是没有看懂,有没有人再解释一下啊
怎么没人讨论个对错啊
学习,好好学习
强人,这题是你出的吧!
我来解释下好了:
一个payload packet 8QW=32bytes=4entries,接收时产生一个ACK packet 1entries。
ACK packet 发送需要20ns,10clk。
因为bus为16bit,所以发送一个entries需4clk。
所以,一个entry从接受到发送出需要(10+4)clk,可以接收的entries=14/4=4,
同时要考虑到ACK packet占一个entry,所以N=5。
不懂,正在学习这个,楼上的是高手啊,学习了
bucuobucuobucuo
我有些不同的意见
Word = 16 bit
DW = 32bit
QW = 64bit
一个entry是 64bit
bus 一次可以传送 16bit的数据。 你一个包收到以后,需要发一个ack给sender,这样才表示包收到了。所以这个时间是延时 20ns + (ack 在bus上传输的时间)
等于 20 + (2*32/16) * 1/(500Mhz) = 28ns = 14clock
按照楼上几位的解法:
就是所在这14个clock的时间里面,fifo要存数据一个entry是64bit需要4个clock,所以 N= 14/4 约等于 4 至于为什么要加1,我就不明白了。
还有fifo的深度,应该是跟读,写速度的不一致有关的,这也是为什么要有fifo的原因,但是题目只告诉你写那块,并没有说读那块,何来的深度计算?
vocol8288的理解有些问题, 很明确的一点, FIFO是单向的!
sender ---> FIFO -----> receiver
receiver不可能用这个FIFO把数据回给sender。
题中的ACK packet是协议中的数据包, 而不是收发者之间的ACK信息
可能我表述的有点问题,楼上的是正解。
同意该观点
当写完1个entiy时,到可以读的时候需要10个clk cycle,在这个10个cycle中,最多还可以写3个entity的深度,为了不让数据丢失,所以还需要加3个entity的深度;
所以3+1=4,不知道为什么还要加1
真是高手啊,佩服佩服
via出的这个题好象表述很不好哦。本来打算面试的时候问清楚的,结果人家面试的时候不讨论笔试题目
字=32bit=4BYTE
还没看到过这样的
真好,这道题目BBS上讨论了好多,正好没解决呢~~
感谢感谢
Buffersize = 1 burst transfer size*(1-(4/18)) = 1 burst transfer size*(14/18) =1 burst transfer size=8QW=32Bytes = 4* 64=>N=4;
同意哦
见www.asic.com FIFO CA
8 :victory: