2011-10-07 191 views
1

我知道高速缓存存储了常用数据以加速进程执行,而不是从主内存中获取 - 每次都比较慢,而且它的大小总是比主内存小,因为它是昂贵的技术因为一次处理的实际数据总是比主存储器保存的整个数据处理小得多。高速缓存内存大小限制

但是,在某些CPU速度或某些主内存大小下,缓存内存大小是否存在限制或限制?从理论上讲,如果我们将缓存内存增加得太多了,会不会以相反的方式影响?或者只是它会浪费增加?

回答

0

缓存很小,因为用于构建它们的硅非常昂贵,特别是在CISC类型的CPU上,芯片上可能没有足够的空间来容纳它们。另外制作芯片的成本更高,并且有可能不适合其插槽,这增加了更多的问题。这不是那么简单;)

编辑:
嗯,我还没有得到这方面有任何的文件,但我会用一个简单的问题,反正解释我的观点:如果一个程序需要X字节的内存,如果缓存的大小是10 * x字节或100 * x,那么区别是什么?一旦所有的数据都被加载到缓存中(这完全不取决于它的大小),所有这些差异都在缓存的访问速度中。并且给定locality of reference,没有必要将所有内容都放在缓存上。
此外,拥有较大的chaches需要更好的算法来搜索其中所请求的数据。例如,访问fully associative caches中的数据将比缓存大小增加时访问主内存慢(这意味着有更多地方查找数据)的速度会更慢。然而,考虑到多任务系统,引入了我其实并不了解的其他问题。总之,随着缓存大小的增加而导致的性能增益变得更小,因为它接近在给定机器上运行的整个软件所使用的通常数据量。

+0

谢谢你,我跟你和那个同意所以我说“理论上“如果我们消除成本,制造和兼容因素......理论上会给我们一个适得其反的行为吗?或者它会只是一个增长? 在一些文章中,我看到缓存内存大小和主内存大小之间的关系更可能是1到1000,并且缓存大小的任何增加都会导致性能几乎没有变化.....有没有图形,公式或有关这方面的文章? –

0

事实上,在64KB的高速缓存大小之后,性能增益变得越来越低。 这里是wikipedia图显示,不管组关联的命中率下降的方法,只有轻微的缓存增加通过您的回复64KB Miss rate versus cache size on the Integer portion of the SPEC CPU2000