我知道高速缓冲存储器存储经常使用的数据以加速进程执行,而不是每次都从主内存中取出它们,并且它的大小总是比主内存小,因为它是昂贵的技术,因为它始终是一次处理的实际数据比主存的整个数据处理要小得多。
但是,在某些CPU速度或某些主内存大小的情况下,是否有关于高速缓存大小的限制或约束?从理论上讲,如果我们增加缓存很多..会以相反的方式影响吗?或者只是浪费增加?
答案 0 :(得分:1)
实际上,在64KB的高速缓存大小之后,性能增益变得越来越不重要。 以下是来自wikipedia的图表,显示无论设置关联性方案如何,当缓存大小增加时,未命中率仅会略微降低64 KB
答案 1 :(得分:0)
缓存很小,因为用于构建它们的硅非常昂贵,特别是在CISC型CPU上,芯片上可能没有足够的空间来容纳它们。同时制造更大的芯片需要它的成本,并且它可能不适合它的插座,这增加了更多的问题。这不是那么简单;)
修改强>
好吧,我还没有任何关于此的论文,但无论如何我都会用一个简单的问题来解释我的观点:如果一个程序需要x字节的内存,那么如果缓存的大小是10 * x字节或100,那将会有什么不同* X?一旦所有数据都加载到缓存中(根本不依赖于它的大小),差异就在于缓存的访问速度。并且考虑到locality of reference,没有必要将所有内容都放在缓存中
此外,拥有大容量需要有更好的算法来搜索其中的请求数据。例如,随着缓存大小的增加,访问fully associative caches中的数据将变得比访问主内存慢(这意味着有越来越多的位置来查找数据)。但是,考虑到多任务系统,引入了其他我不太了解的问题。
总而言之,随着高速缓存大小增加而导致的性能提升变得越来越小,因为它接近了在给定计算机上运行的整个软件所使用的通常数据量。