六年后的回答:请问N路硬件高速缓存具体意思指什么?

来源:互联网 发布:java中间件有哪些 编辑:程序博客网 时间:2024/04/27 03:15

今天在网上看到一个帖子http://www.oldlinux.org/oldlinux/viewthread.php?tid=279,楼主提了一个问题:

请问N路硬件高速缓存具体意思指什么?

请问N路硬件高速缓存具体意思指什么?
对应Ram中的一个地址是如何映射到Cache中的行?
 
提问于2004-3-17 13:54 ,算一下已经过去六年了,当年提问的楼主现在应该已经成长为技术大牛了!
我搜索到这个问题说明我现在的水平和提问者当年的水平差不多,所以六年后我能成长为一个什么样的人呢?以此贴做个标记吧!
  
顺便从《深入理解Linux内核》第二章上抄下一段,应该可以回答当年提问者的问题吧!
硬件高速缓存是为了缩小CPU和RAM之间的速度不匹配而引入的,高速缓存被细分为行的子集。在一种极端的情况下,高速缓存可以是直接映射的(direct mapped),这时主存中的一个行总是存放在高速缓存中完全相同的位置。在另一种极端的情况下,高速缓存是充分关联的(fully associative),这意味着主存中的任意一个行可以存放在高速缓存中的任意位置。但是大多数缓存在某种程度上是N路组关联的(N-way set associative),这意味着主存中的任意一个行可以存放在高速缓存N行中的任意一行中。例如,内存中的一个行可以存放在一个2路组关联高速缓存的两个不同的行中。