Board logo

标题: ARM指令周期及运行在sdram的一些疑问 [打印本页]

作者: DirectCG    时间: 2008-12-31 17:17     标题: ARM指令周期及运行在sdram的一些疑问

看了一下arm9的指令周期,很多概念不明白,比如他的指令周期都是有三个部分,cycles, instruction bus, data bus,这个大概可以理解,由cpu周期,指令总线周期,和数据总线周期三个,但表示指令总线周期和数据总线周期的都有三个类型,internal cycle, nonsequential cycle,sequential cycle,请知道的大概解释下

由上面的内容引发了我一个想法:
arm9的一般的速度都可以到200MHz以上,sdram的速度一般也就100Mhz,此时如果代码在sdram里面的话,sdram速度是cpu速度的一半,那么每次执行指令都取一下指令,都要花费至少2个cpu周期,那他的速度还怎么到达200MHz的速度呢?运行在sdram岂不是限制了cpu的性能,成为了速度瓶颈?


作者: dukehu    时间: 2009-2-2 16:37

指令cache就是起缓冲作用的,系统中的存储体系结构就是一级一级缓冲的,从cpu到ram到永久存储设备。ARM9采用哈佛体系结构,在运行时,指令预取会从指令cache中获取指令,而cache在不命中时,会访问外部ram,获取cache line长度的指令,一般都是8个长字或4个长字,如果没有跳转指令,以后相邻的指令都不需要访问ram,这样,慢速设备和高速处理器就同步了。


作者: fest    时间: 2009-2-10 15:57

看看资料在说






欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0