不解,请教:ZYNQ中CPU读写OCM,为何速度这么慢?

[复制链接]
 楼主| and 发表于 2013-6-24 21:51 | 显示全部楼层 |阅读模式
本帖最后由 and 于 2013-6-24 21:53 编辑

用的是ZedBoard,CPU时钟采用4:2:1,CPU主频250MHz,OCM时钟125MHz.想测试一下片内RAM的读写速度。
经过几次试验后测算,发现
1.一条NOP指令的执行时间是 4 nS,符合250MHz的主频;
2.一条RAM读的指令 LDR R4,[R3] 执行时间 72 nS,相当于18条NOP指令的时间;
3.一条RAM写的指令 STR R4,[R3] 执行时间 80 nS,相当于20条NOP指令的时间;

测试中,I-CACHE使能,D-CACHE未使能。

不能理解的是,片内的RAM,为何读写速度这么慢呢?
请指教,谢谢!!
GoldSunMonkey 发表于 2013-6-24 23:29 | 显示全部楼层
DMA功能开启了没?
 楼主| and 发表于 2013-6-25 00:25 | 显示全部楼层
没动用DMA呢。就是拿CPU跑个死循环,用示波器测信号宽度,然后除一下重复的次数。应该是CPU自己的事情。
会不会是CPU和OCM之间的那个SCU里有FIFO,导致需要这么多的周期才能完成一次读写?但是我的SCU没有启用啊。
 楼主| and 发表于 2013-6-25 17:56 | 显示全部楼层
在xilinx forum上问了一下,看来是找到根据了:在《Zynq-7000 All Programmable SoC Technical Reference Manual》的 29.1.2 小节,有这样一句话:
  Low latency path for CPU/ACP reads to OCM (CPU at 667 MHz – minimum 23 cycles)
如果需要那么多cycles的话,看来就是这样的速度了------没有之前想像的那么快,这也许就是那么多的interconnect带来方便的时候所需要付出的代价----延迟。
GoldSunMonkey 发表于 2013-6-25 23:03 | 显示全部楼层
and 发表于 2013-6-25 17:56
在xilinx forum上问了一下,看来是找到根据了:在《Zynq-7000 All Programmable SoC Technical Reference M ...

:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

and
个人签名:小代码

47

主题

829

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部
and
个人签名:小代码

47

主题

829

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部