跳到正文
半导体开放世界

内容寻址存储器与匹配线

Content-Addressable Memory and Matchlines

用搜索字并行比较已存条目,区分逐位匹配、查询掩码、存储X及匹配后的结果接口。

报告问题

速览

约 1 分钟

CAM不是按行号直接读取,而是先找哪些行符合内容条件;比较本身和命中结果怎么使用需要分别设计。

系统理解

约 2 分钟

CAM在存储节点旁增加比较电路,并将位结果合并成行匹配。预充高失配放电结构使大量不命中行也会消耗能量。查询掩码作用于本次搜索,TCAM的X保存在具体条目中;二者不能互换。由匹配线驱动关联RAM还必须满足有效性和电气时序。

在数字逻辑与SRAM存储基础上学习按内容选择,区别于普通随机地址存储概览。

关键参数

关键参数
参数单位含义
行数与字宽—分别决定匹配向量长度和单行比较范围
掩码极性与有效性—规定参与比较的位和可用行
匹配线时序—区分预充、评估、结果稳定与关联RAM选通

常见误区

  • 不命中多就表示搜索能量低。
  • 查询掩码就是每行独立存储的X。
  • 编码地址0一定表示第0行命中。

工程深入

12 条结论 · 1 道例题

匹配语义

定义

CAM以比较内容选择匹配行

按内容寻址存储器接收搜索字,将它与已存的字比较并产生匹配结果;普通地址读写则由行地址选定存储位置。CAM可以同时提供地址读写接口,不能把搜索操作与写入操作当成同一事务。12

成立条件 本页讨论二进制CAM及明确标出的TCAM扩展。;搜索结果可以先保留为每行一位的匹配向量。

机制

存储节点与比较电路承担不同任务

一种CAM单元在静态存储节点外增加比较支路,前者保存数据,后者判断搜索位与存储位是否一致。增加比较功能会改变面积和电容,不能把普通SRAM单元不加修改就视为CAM。12

成立条件 教材的9管和10管单元只是两种具体拓扑。;不把某个晶体管数或旧工艺面积比当作全部CAM的规格。

公式

屏蔽比较只要求参与位相等

在定义掩码位为1表示参与比较时,单行匹配条件是所有参与位的搜索位和存储位相同;被屏蔽的位对本次匹配为真。掩码极性属于接口约定,必须先定义再代入。12

match=⋀j=0W−1[¬mj∨¬(qj⊕dj)]\mathrm{match}=\bigwedge_{j=0}^{W-1}\left[\lnot m_j\lor\lnot(q_j\oplus d_j)\right]
match = ∧(j=0…W−1)[¬mj ∨ ¬(qj ⊕ dj)]
W
比较字位宽,单位 1
dj、qj
本行存储位与搜索位,单位 1
mj
1参与、0忽略的查询掩码位,单位 1

成立条件 dj为本行存储位,qj为搜索位;mj=1参与、mj=0忽略。;只给出逻辑匹配,不含有效位、优先级或电气判定时间。

例题:动手算一次教学假设,可复算

4位CAM保存1010、1011、0010,搜索字1010,掩码1110(1参与)。哪些行匹配?

已知

  1. 按从高位到低位书写二进制字。
  2. 最低位被忽略,全部三行均有效。

步骤

  1. 1010⊕1010=0000;0000∧1110=0000,第0行没有参与位不一致。
  2. 1010⊕1011=0001;0001∧1110=0000,第1行只在被忽略的最低位不同。
  3. 1010⊕0010=1000;1000∧1110=1000,第2行最高位不一致。
结果 匹配向量(行0、1、2)为(1,1,0),共有2行匹配。

查询掩码可能使不同存储字在同次搜索中同时命中。

不能外推到 教学位模式,不指定优先级编码,也不保证特定电路一次搜索的耗时。

匹配线电路

机制

任一参与位不符就足以否定整行

在预充高、失配下拉的或非式匹配线中,同一行各比较单元共同连接匹配线。只要一个参与位失配就能形成放电通路;只有没有失配支路导通,匹配线才保持匹配电平。12

成立条件 限定教材所示预充高、失配下拉结构。;其他CAM电路可采用不同极性和连接方式,不能只看电平名称判断。

边界

并行搜索改变依赖却不消除资源代价

多行同时比较可避免逐行顺序扫描,但需要将搜索字分发给比较阵列并判断多条匹配线。更多行和更宽字会增加相应比较、布线及负载,不能据此宣称任意容量都拥有相同物理搜索时间。12

成立条件 并行指逻辑组织,不给未经表征的常数纳秒承诺。;比较数量、外围编码与单元负载分开检查。

边界

大量失配行也可能消耗搜索能量

预充高、失配放电的匹配线在每次搜索中可能反复充放电。数据很少命中不表示活动很小,因为大量未命中行仍会使匹配线翻转;能量评估应包含搜索线和匹配线而不只统计结果位。12

成立条件 限定该预充放电结构;不把所有CAM功耗固定成同一个比例。;实际能量还取决于分区、摆幅、数据模式及外围控制。

结果与三态边界

边界

多行匹配需要显式规定结果处理

掩码或重复条目可能产生多行匹配。若接口只返回一个地址,必须定义优先级并同时提供命中有效性;一个编码地址本身不能区分第0行命中与完全未命中。2

成立条件 教材示例采用最高地址优先,但其他实现可以另定规则。;优先级选择不等于自动执行最长前缀匹配。

机制

不命中表示没有有效匹配而不是搜索字全零

不命中由所有可用行的匹配结果共同判定。全零搜索字也可能命中,任何非零搜索字也可能不命中;这一状态必须与编码后的行号和搜索数据本身分开表达。12

成立条件 假定接口已经规定哪些行有效。;不命中后的替换、缺页或外部访问行为由上层系统决定。

机制

TCAM的X是存储条目的无关状态

三态CAM可在每个条目位存放0、1或无关X,从而使该位对两种搜索值都匹配。教材的一种实现用两个状态位编码这三个逻辑状态,第四种编码不能未经定义就赋予新的业务含义。1

成立条件 图12.72示例A/B为10匹配0、01匹配1、00匹配两者。;这不是普通三值电压逻辑,也不规定所有TCAM采用相同内部编码。

边界

查询掩码与条目内存储X的作用范围不同

查询掩码描述本次搜索忽略哪些位;条目内存储X则可以随各行存储内容不同而不同。二者都能使某位不参与相等判断,但不能把全局查询掩码误认为每行都能独立保存的三态模式。12

成立条件 仅比较语义,不断言某个产品一定同时提供两种机制。;查询掩码极性及存储X编码分别查接口。

接口与实现

边界

预充匹配线不能未经选通直接作为RAM字线

动态匹配线最初可能全部为高,随后失配行才下降;若直接驱动关联RAM,会在判定前错误选中多行。可在匹配线稳定后选通字线,并在下一次预充前撤销选通,时序须覆盖设计角。1

成立条件 限定预充高、评估下降及要求单调上升字线的组合。;不把示意反相器链当作已经签核的跨角延时。

关联

CAM可以保存标签而由关联RAM保存载荷

一个常见组织把搜索所需标签放在CAM,把对应的数据或地址放在关联RAM。匹配结果选择关联行,使搜索功能与较宽载荷存储分工;缓存和TLB的业务含义不同,不能因此当作同一接口。12

成立条件 匹配到多行时仍需系统规定选择或唯一性。;本条不展开缓存替换算法或地址翻译权限检查。

出处

2 本教材 · 21 处引用
  1. 1

    CMOS超大规模集成电路设计(第4版)

    查看这个来源 →
  2. 2