CAM(Content Addressable Memory)介绍

CAM是一种特殊的存储器。所谓CAM,即内容寻址存储器。CAM存储器在其每个存储单元都包含了一个内嵌的比较逻辑,写入CAM的数据会和其内部存储的每一个数据进行比较,并返回与端口数据相同的所有内部数据的地址。概括地讲,RAM是一个根据地址读、写数据的存储单元,而CAM和RAM恰恰相反,它返回的是与端口数据内容相匹配的地址。CAM的应用也比较广泛,比如在路由器中的地址交换表,CPU的Cache控制器(Tag阵列)等。

CAM(Content Addressable Memory)介绍

CAM工作原理:

CAM(Content Addressable Memory)介绍

一次典型的CAM查找操作过程为:首先,CAM接收外部的查找命令并把查找数据存储到比较寄存器中,比较寄存器和掩码寄存器的内容来共同组成系统的一个查找字(search word),这些查找字广播到每一组相关联字中,每一组相关联字都有一个匹配链(matchline),匹配链指示查找字与存储字是否一致(匹配或不匹配),匹配链把结果反馈到优先译码器中,优先译码器产生一个二进制的匹配位置定位和一个匹配命中信号。
由于在CAM存储器中可能存在多个字的同时匹配,因而使用了一个优先译码器而不是简单的译码器。当有多个字同时匹配时,优先译码器选择最高优先权的匹配地址映射到匹配结果,在CAM中低地址字具有高优先权。

匹配炼工作原理:

CAM(Content Addressable Memory)介绍

Ø  The search-data word is loaded into the search-data register.

Ø  All match-lines are pre-charged to high (temporary match state).

Ø  Search line drivers broadcast the search word onto the differential
search lines.

Ø  Each CAM core compares its stored bit against the bit on the
corresponding search-lines.

Ø  Match words that have at least one missing bit, discharge to
ground.

CAM在Cache控制其中的应用

CAM在Cache控制其中的应用

CPU对Cache的搜索叫做Tag
search,即通过Cache中的CAM(Content Addressed Memory)对希望得到的Tag数据进行搜索。CAM是一种存储芯器,延迟很低。

CPU与Cache之间交换数据是以字为单位的,而Cache与内存之间交换数据是以块为单位的,并且在Cache中,是以若干字组成的块为基本单位的。一般情况下,CPU需要某个数据的时候,它会把所需数据的地址通过地址总线发出,一份发到与内存中,一份发到与Cache匹配的相联存储器(CAM)中,CAM通过分析对比地址,来确定所要的数据是否在Cache中,如果在,则以字为单位把CPU所需要的数据传送给CPU,如果不在,则 CPU在内存中寻找到该数据,然后通过数据总线传送给CPU,并且把该数据所在的块传送到Cache中。

CAM使用一组比较器,以比较输入的标签地址和存储在每一个有效cache行中的cache-tag。访问地址的tag部分被作为CAM的输入,输入标签同时与所有cache标签相比较。如果有一个匹配,那么数据就由cache存储器提供;如果没有匹配,存储器控制器就会产生一个失效(miss)信号。

来源: http://blog.sina.com.cn/s/blog_541cfd6601010j7b.html

上一篇:[LintCode] Trapping Rain Water 收集雨水


下一篇:[日常] Go语言圣经-并发的非阻塞缓存