| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1901 人关注过本帖
标题:CPU和内存中间加个缓存为什么会提高CPU利用率?
只看楼主 加入收藏
lantianye
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-8-6
收藏
 问题点数:0 回复次数:3 
CPU和内存中间加个缓存为什么会提高CPU利用率?

800MHz 的PIII CPU 的一条指令执行时间约为1.25ns ,而133MHz 的SDRAM 存取时间为7.5ns ,
即83% 的时间CPU 都处于等待状态,运行效率极低。

这句话怎么理解?是内存向外设取指令需要7.5ns,而CPU必须等待内存把指令取过来才能再从内存里把指令取到CPU的吧?就是说,内存在向外设取指令的时候CPU得在那看着内存把指令取到内存里?
而中间加了个缓存就相当于中间加了个传送带,每次内存取了指令就放传送带上,CPU就是从传送带上去指令,这是一本书上的解释。
但是我不明白了,CPU取的快,内存放的慢,一会CPU不就把传送带上的指令取完了吗?那取完了他不还得等?
CPU运算一条指令只需要1.25ns,而内存取个指令就7.5ns,也就是说,CPU运算完6条指令内存才取过来1条,比如传送带上有6条,CPU把这6条都运算完了,内存这才取过来1条而已,内存取来指令不是立即就能被CPU取走吗?接下来CPU运算完那一条,内存这边那个7.5ns还没过完指令还没取到呢,不就又成CPU等待内存了吗?

我到底哪理解错了?请高人指点一下,快快!!拜托了!!!

搜索更多相关主题的帖子: CPU 内存 缓存 利用率 指令 
2007-08-24 00:05
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
收藏
得分:0 

是cpu向内存的存取时间要7.5ns,如果是内存与外设的话那更慢,而且一般是DMA控制,就是说内存在于外设交换数据的话,CPU只在开始和结束的时候需要参与,其他的时候都是DMA控制器控制传输

内存到缓存是有很多种机制的,这种机制互相结合,其主要目的就是在于把CPU经常执行的指令放到缓存,然后CPU需要执行
的时候就到缓存中去找,如果找到就叫命中。如果内存到缓冲的这种机制设计得好(现在基本上都可达到99% 以上),那么CPU所需要的大部分指令都在缓存中,而且指令中很多重复指令,从而就大大减少了CPU的等待时间。


天行健,君子以自强不息!!QQ:68660681
2007-08-24 11:47
lantianye
Rank: 1
等 级:新手上路
帖 子:30
专家分:0
注 册:2007-8-6
收藏
得分:0 
回复:(maoguoqing)是cpu向内存的存取时间要7.5ns,...
恩,明白了你的道理,但是我还有一问,据说8086里EU和BIU之间是指令队列来连接的,这个指令队列起到什么作用?
2007-08-24 22:24
栖柏
Rank: 2
等 级:论坛游民
威 望:3
帖 子:1103
专家分:17
注 册:2007-8-23
收藏
得分:0 
和现在的缓存类似差不多吧,是六个字节,把要处理的六个字节数字取到指令队列,供cpu取用
提高了效率。以后的cpu都是在8086基础上做的,8086也是做的最成功的,现在都是其基础上的产品
理解8086就容易理解现在d的cpu。原理一样!

You have lots more to work on! Never give up!c language!
2007-08-24 22:35
快速回复:CPU和内存中间加个缓存为什么会提高CPU利用率?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.040467 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved