首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ARM指令周期及运行在sdram的一些疑问

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的性能,成为了速度瓶颈?

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

看看资料在说

返回列表