以前一直看不太懂什么叫按内容访存,为什么按内容访存会更快,后来去看了下相关视频,明白了其中的原理。它是直接用硬件实现,因此可以并行比较,达到很高的速度
cache、快表就是一种相联存储器,运用他们可以达到更高的查找效率
结合下方图像,原理/过程如下:
①我们要找寻的信息(即要找的主存地址)放置在检索寄存器中, 通过屏蔽寄存器得到key
屏蔽寄存器原理:如图片右上方,假如我们要比较的只是画三角形的3bit,则屏蔽寄存器中将该3位设为1,其余为0,这样通过屏蔽寄存器后就只会得到我们所需要的3位,作为我们的key。
图中,由01010010,知第1、3、6位是我们标记的位。则原数据11001110通过后只取该三位,得到key=101
②读选择电路的m代表了cache行,如图中即有m行cache,将m行与key在多路并发比较线路中比较,比较结果存储在符合寄存器中。
符合寄存器内容:如果key值完全相同,则相应位为1。
③符合寄存器中为1的单元位置传入读选择电路=选中匹配成功的存储单元/一行
④将选中存储单元的data信息传入到代码寄存器,得到我们要的内容
(图片来源b站视频https://www.bilibili.com/video/BV14i4y187cK?from=search&seid=13416260846090671928)