打印

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

[复制链接]
4100|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
foxdesert|  楼主 | 2008-12-26 11:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
看了一下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的性能,成为了速度瓶颈?

相关帖子

沙发
wuzhsky| | 2008-12-28 11:07 | 只看该作者

SDRAM没有瓶颈

SDRAM中运行是最快的了,其速度可以设置为200M

使用特权

评论回复
板凳
wangkj| | 2008-12-28 11:29 | 只看该作者

你说的没错,所以才有了cache

使用特权

评论回复
地板
foxdesert|  楼主 | 2008-12-30 10:58 | 只看该作者

先不说普通的我看到的SDRAM大都是133Mhz

先不说普通的我看到的SDRAM大都是133Mhz以内,就算是arm的支持,我看得是atmel的at91sam9261,他的mck最高才支持120MHz,所以说sdram的速度相对处理器来说还是比较慢的

cache是起到一定作用,但是如果是连续指令呢,那么cache又能有什么用呢,不还是得连续的把sdram里面的数据搬到cache里面,这个还是依赖于sdram的速度呀,

我想是不是这样,因为大部分的指令可能都不会是单指令周期,所以cpu处理虽说200M甚至以上,但是大部分指令都要2个以上pck时钟周期,所以这个时间也就够他读取一次指令的了,所以不会太影响速度,但是还是有些指令是单时钟周期,所以还是会影响些速度

根据以上想法我查看了arm926ej-s的指令周期,看到确实好多指令是2周期以上,但是也有不少是单指令周期的,
在指令周期表里面也都说了每条指令会花费指令总线的时间,大部分是1s+ni,有意的朋友可以看看,分析下这个internal cycle的意义

使用特权

评论回复
5
洗碗机| | 2008-12-30 11:36 | 只看该作者

你找一本x86或者arm硬件手册,好好看看就明白了

里面有详细的解释。不过,你得有那个耐心和毅力。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

5

主题

16

帖子

0

粉丝