关联存储器

17 Mar 2025 | 阅读 2 分钟

相联存储器可以被认为是一种存储单元,其存储的数据可以通过数据本身的内容而不是地址或存储位置来识别以进行访问。

相联存储器通常被称为内容寻址存储器 (CAM)

当对相联存储器执行写入操作时,不会向该字提供地址或存储位置。 存储器本身能够找到一个空的未使用位置来存储该字。

另一方面,当要从相联存储器读取该字时,指定该字的内容或该字的一部分。 存储器定位到与指定内容匹配的字,并标记以供读取。

下图显示了相联存储器的框图表示。

Associative Memory

从框图可以看出,相联存储器由一个存储器阵列和逻辑组成,用于存储“m”个字,每个字“n”位。

功能寄存器(如参数寄存器 A 和键寄存器 K)各有 n 位,每个字一位。 匹配寄存器 Mm 位组成,每个存储字一位。

存储在存储器中的字与参数寄存器的内容并行比较。

键寄存器 (K) 提供一个掩码,用于选择参数字中的特定字段或键。 如果键寄存器包含全 1 的二进制值,则整个参数与每个存储字进行比较。 否则,仅比较参数中在其键寄存器的相应位置具有 1 的那些位。 因此,键提供了一个掩码,用于识别指定如何引用存储器的信息片段。

下图可以表示相联存储器中存储器阵列和外部寄存器之间的关系。

Associative Memory

存储器阵列内部的单元格用字母 C 标记,带有两个下标。 第一个下标给出字号,第二个下标指定字中的位位置。 例如,单元格 Cij 是字 i 中位 j 的单元格。

参数寄存器中的位 Aj 与阵列的列 j 中的所有位进行比较,前提是 Kj = 1。 对所有列 j = 1, 2, 3......, n 完成此过程。

如果在参数的所有未屏蔽位和字 i 中的位之间发生匹配,则匹配寄存器中的相应位 Mi 设置为 1。 如果参数的一个或多个未屏蔽位和该字不匹配,则 Mi 清除为 0。