TCAM 介绍

Synopsys 基础 IP 营销总监 Prasad Saggurti

简介

随着人工智能 (AI) 的速度和准确性逐渐接近人脑,系统越来越依赖集中式服务器,将应用从边缘连接到云。由于连接到互联网的设备数量激增,加上互联网流量呈指数级增长,所以如今的系统在很多情况下都需要极快的搜索速度。路由器是网络设备的关键组件,需要在接收数据包之后,决定将其发送到何处,以执行互联网协议 (IP) 转发或 IP 路由。如今的路由器需要在大量数据中进行快速查找,以实现快速的数据包路由。需要高速搜索的其他应用还包括 CPU、数据库引擎以及神经网络中的转换后备缓冲器 (TLB) 和全相联缓存控制器。

尽管设计人员有多种选择来执行这些搜索,但最有效的方法仍需要使用内容可寻址存储器 (CAM)。CAM 将搜索数据和一份列明存储数据的表格进行比对,并返回匹配数据的地址1。CAM 搜索功能的运行速度比软件中的同类功能快得多,因此 CAM 即将取代搜索密集型应用中的软件,例如互联网路由器中的地址查找、数据压缩和数据库加速2

并行搜索更加快速

读者们在上大学时可能已经了解,哈希表是最有效的搜索实现方式。CAM 则被视为这种构造的硬件实现方式。对一份列表执行线性搜索类似于遍历存储器的所有位置,然后再与串行搜索中的关键词进行比对。基于 CAM 的搜索等同于并行比对所有内容,然后返回比对成功的地址。这种方式固然会快很多,尽管构建起来比较复杂。

它虽然具有性能优势,却需要更大的面积和更高的功耗(图 1)。与具有简单存储单元的静态 RAM (SRAM) 不同,全并行 CAM 中的每个单独的存储位都必须具有与自身相关的比对电路,以检测存储位和输入位之间的匹配情况。此外,在使用 CAM 时,必须将数据字中每个单元的匹配输出组合起来,才能产生完整的数据字匹配信号。增加电路就会增大 CAM 的物理尺寸5。由于在给定的周期中并行搜索了所有条目,所以会有大量的电路处于活动状态。因此,最大的挑战就是如何尽量降低随着配置规模增大而升高的 CAM 功耗。

图 1. 基于 CAM 的搜索可以并行比对所有内容,这种方法比 SRAM 快得多,但是也增加了复杂性、面积和功耗

使用 TCAM 能够获得更多匹配结果

CAM 主要有两种: 二进制 CAM (BCAM) 和三进制 CAM (TCAM)。BCAM 是最简单的 CAM 类型,因为它们在存储的字符中仅使用 1 和 0。TCAM 还支持在搜索字符中含有第三种匹配状态,即一个或多个数位的 X 或“无关”。BCAM 用“10010”作为一个存储词,而 TCAM 可以用“10XX0”做存储词。“无关”状态可以让 TCAM 灵活匹配四个搜索词中的任何一个——"10000、" "10010、" "10100" 或 "10110。"通过为每个存储单元添加一个屏蔽位来添加“无关”状态,这进一步增加了复杂性。TCAM 中的优先级编码器可确保仅输出第一个匹配条目。X 的灵活编码减少了存储条目的数量,从而进一步提高了搜索效率。

高级网络 SoC 中的 TCAM

图 2 显示了网络应用中 TCAM 的三种可能配置,其中速度-就是每秒的 CAM 访问量 (Msps) 是核心配置。上述每个示例(MAC、交换和数据包处理)都是网络硬件的关键组件,需要很高的每秒访问量。虽然包处理的速度要求最高,但是 MAC 和交换模块也需要高速访问。此外,由于高级网络上的流量增加且设备数量增多,使得所有这三种应用都具有很高的端口带宽要求。

图 2. 网络应用中的 TCAM 配置

TCAM 的内容量逐渐增大,而企业、网络和路由片上系统 (SoC) 设计正朝着更小的几何形状发展(图 3)。TCAM 的几何形状变小了,功能还增多了 IP 和 MAC 查找以及纠错码 (ECC)。

活动控制列表 (ACL) 是一个过滤器,用于控制进出网络的网络流量。要么允许,要么拒绝数据包访问使用 TCAM 的特定端口或特定类型的服务。常用网关的 ACL 规则只能包含几千到几万个条目。例如,一个 2K 深度和 288 宽度的 ACL 规则列表可以处理 IPv4 和 IPv6 标准。IPv6 是新一代互联网协议 (IP) 地址标准,用于补充并最终替代 IPv4(当今大多数互联网服务使用的协议)。思科在《2015-2020 年 VNI 全球 IP 流量预测》中指出,到 2020 年,全球互联网流量的 34% 都会通过 IPv6 驱动。从 2015 年到 2020 年,IPv6 流量增长 16 倍,复合年增长率为 74%。

图 3 汇总代表性 SoC 中的 TCAM 内容

TCAM BIST 测试的挑战

测试 TCAM 既复杂又耗时,因为其中的逻辑和存储结合方式非常独特。对于 TCAM BIST 算法而言,覆盖所有故障机制并且高效完成至为关键。传统 TCAM 阵列 BIST 算法的顺序为 O(xy),其中 x 为字节数,y 为字节中的位数。除位单元外,还需要测试优先级编码器的子模块(多重匹配解析器和匹配地址编码器)。随着芯片上 TCAM 模块的大小和数量的增加,芯片设计人员应考虑设置冗余以提高良率。还需要考虑 ECC,以提高应用可靠性。

结语

TCAM 可为 AI 和云应用带来显著的性能优势。如果您需要在下一个芯片设计中集成 TCAM,Synopsys 可以为您提供帮助。经过硅验证的 DesignWare® TCAM 可用于多种工艺节点,例如 90nm、65nm、40nm、28nm、16nm、14nm 和 7nm。为了简化 TCAM 的测试,DesignWare STAR Memory System (SMS)-CAM 和 SMS ECC 编译器——提供了完整而强大的解决方案。敬请访问DesignWare 三进制和二进制内容可寻址存储器编译器DesignWare STAR Memory System™,了解有关此类产品的更多详情。

参考资料

1.      K. Pagiamtzis 和 A. Sheikholeslami,"使用流水线分层搜索方案的低功耗内容可寻址存储器 (CAM),"IEEE 固态电路杂志,第 39 期,9 号,第 1512-1519 页,2004 年 9 月

2.      T.-B. Pei,C. Zukowski,"在芯片中加入路由表",IEEE 网络杂志,第 6 期,第 42-50 页,1992 年 1 月

3.      L. Chisvin,R. J. Duckworth,"内容可寻址的联合存储器:替代无处不在的 RAM 的存储方案",IEEE 计算机,第 22 期,第 51-64 页,1989 年 7 月

4.       Mohan,Nitin & Fung,Wilson & Wright,Derek & Sachdev,Manoj,“低功耗 TCAM 的设计技巧和测试方法”,IEEE 超大规模集成 (VLSI) 系统汇刊,14. 573 - 586。10.1109/TVLSI.2006.878206

5.      https://en.wikipedia.org/wiki/Content-addressable_memory