- 主题:请教ahb的连读连写的效率!
cpu想对外设的一片片上sram连读,比如一次读32个地址连续的32bits数(数已经准备好,不考虑从设备反馈),如果ahb的时钟,100M,看协议好像每2拍执行一次读。请问能达到50M/32bits的速度吗?
不考虑burst模式。对应的cpu软件(c语言),用for循环,地址自增加,能达到完全流水吗?也就是,读完第一个,立马能开始下一次读吗?还是中间总线会挂起,插等待。
--
FROM 114.253.86.*
感谢指点!对于cpu编程(c语言)有什么需要注意的地方?可以保证cpu读读取时,数据已经稳定,用c语言for循环,地址自增,能否形成很快速的中间不插等待的连续访问呢?
【 在 bloodtea 的大作中提到: 】
: ahb的地址相位和数据相位是可以overlap的,如图所示。
: 也就是在slave ready一直有效时,极限情况下可以做到每一个周期都可以发送一个hwdata。
--
FROM 223.104.38.*
看来要快,且cpu不参与,得dma或者axi
【 在 bloodtea 的大作中提到: 】
: 从软件层面,到处理器硬件实现,中间的环节牵扯的太多了。
: 比如编译器的优化力度;
: 再比如for循环,在汇编层面可能会有跳转,处理器是否支持分支预测,以及分支预测的准确率。
: ...................
--
FROM 223.104.38.*