什么是关联内存?
关联内存可以被视为一个存储单元,其存储的信息可以通过信息本身的内容而不是地址或存储位置来识别访问。关联内存也称为**内容寻址内存 (CAM)**。
关联内存的框图如图所示。它包括一个内存阵列和用于m个字(每个字n位)的逻辑。参数寄存器A和键寄存器K各有n位,每个字一位。
匹配寄存器M有m位,每个内存字一位。内存中的每个字都与参数寄存器的内容并行比较。
与参数寄存器位匹配的字会在匹配寄存器中设置相应的位。匹配过程结束后,匹配寄存器中已设置的位表示其对应的字已匹配。
对于那些在匹配寄存器中对应的位已设置的字,可以通过顺序访问内存来高效读取。
键寄存器支持掩码,用于选择参数字中的特定字段或键。如果键寄存器包含全1,则整个参数将与每个内存字进行比较。
因此,只有那些在键寄存器中相应位置为1的参数位才会被比较。因此,键提供了一个掩码或识别数据片段,它决定了如何创建对内存的引用。
下图可以定义关联内存中内存阵列和外部寄存器之间的关系。
阵列中的单元用字母C表示,有两个下标。第一个下标表示字号,第二个下标表示字中的位位置。因此,单元Cij是字i中位j的单元。
参数寄存器中的位与阵列中第j列的所有位进行比较,条件是Kj = 1。这对于所有列j = 1, 2,..., n都适用。
如果参数的所有未掩码位与字i中的位匹配,则匹配寄存器中相应的位Mi被设置为1。如果参数的一个或多个未掩码位与该字不匹配,则Mi被清零。
广告