打印

关于RISC CPU读写内存的疑惑

[复制链接]
2120|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tf_0991|  楼主 | 2011-5-4 16:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 tf_0991 于 2011-5-4 19:41 编辑

RISC指令集的CPU可以实现每个工作周期执行一条指令(大多数常用指令),但是CPU读写内存的周期往往大于CPU的工作周期,当执行读写内存的指令时,CPU是怎样处理的呢?如果读写内存的周期不是一个CPU时钟周期,对于不同读写速度的内存,读写内存指令执行周期一样吗?关于这个问题一直困惑,望前辈指点。。。

相关帖子

沙发
yewuyi| | 2011-5-4 20:48 | 只看该作者
如果是读写RAM就是单周期的,如果是读FLASH.ROM的,也应该是单周期的,写FLASH.ROM则需要时间,一般需要执行几个毫秒的延迟

使用特权

评论回复
板凳
tf_0991|  楼主 | 2011-5-4 21:13 | 只看该作者
2# yewuyi
以S3C2440为例,CPU工作时钟可以400M,它的指令周期是2.5ns(这样理解不知道有没有问题),但是如果外扩SDRAM,其读写操作可以在2.5ns完成吗?因为这些SDRAM周期一般要7ns左右。
如前辈所言,那么在读写FLASH、ROM时,CPU的这条读写指令能够自行调整其工作时间?这样理解对吗?

使用特权

评论回复
地板
HWM| | 2011-5-4 21:54 | 只看该作者
re LZ:

RISC CPU 的指令可以是采用流水线方式执行,此外还有数据和指令CACHE。另外,外扩总线的时钟是和内部总线不同的,其时序可根据需要作适当调整。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
tf_0991 + 1 一语惊醒啊
5
tf_0991|  楼主 | 2011-5-4 22:17 | 只看该作者
本帖最后由 tf_0991 于 2011-5-4 22:19 编辑

4# HWM
有些明白了,也就是一般外接的RAM都是挂接在外部总线上,通过对外部总线的设置来调整对应指令的指令周期,一直没有考虑这个问题,S3C2440的确可以通过寄存器设置外部总线访问周期。那么也就是说这些指令应该都不是单周期指令吧?所以采用外扩存储器时一般不建议高速且要频繁访问内存的程序不要将所申明的变量放在外部存储器中?

使用特权

评论回复
6
HWM| | 2011-5-4 22:24 | 只看该作者
to 5L:

是的。

使用特权

评论回复
7
tf_0991|  楼主 | 2011-5-4 23:11 | 只看该作者
有的时候脑子真是糊涂啊,多谢HWM老师

使用特权

评论回复
8
chunyang| | 2011-5-5 04:08 | 只看该作者
另外有些处理器在读写慢速外设时可以插入等待周期来适应较低的读写速率。

使用特权

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

本版积分规则

个人签名:学须富,志须诚

11

主题

158

帖子

2

粉丝