打印

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

[复制链接]
3150|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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带来方便的时候所需要付出的代价----延迟。

使用特权

评论回复
5
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

粉丝