基本概念
CAM(Content Addressable Memory)内容可寻址存储器,与经常使用到的 RAM(随机存储器)有很大的不同地方,它是通过输入的数据内容反查其对应的地址数据,并输出。在使用 RAM 时,是利用输入的地址,读取该地址位置上所存储的数据。而在使用 CAM 时,是通过输入的数据同时与 CAM内部已经存储的数据相比较,如果有相同的内容话,输出相同数据所存储的地址数据和查找成功信号,反之,不输出查找成功信号。
基本架构
对于 CAM 的数据匹配查找过程的实现,通过并行处理的大体思路,需要有多个小的存储数据和比较的模块,称作匹配模块,其中每个小模块中存储数据,并且有比较功能。如果 CAM 的存储深度越深,每次查找需要同时进行比较的匹配模块就越多。在有数据需要在 CAM 中查找时,CAM 中的每个匹配模块都要把内部存储的数据与输入的数据比较,如果数据相同输出高电平,不同就输出低电平。利用所有模块输出的高低电平通过编码输出对应的地址。如图所示,输入的数据为4’b1000,数据通过 D_in 总线分传到每一个匹配模块只有与其对应的匹配模块,输出高电平,其他模块中数据不相同的都输出低电平。对于这