BCAM

与具有简单存储单元的静态 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 的灵活编码减少了存储条目的数量,从而进一步提高了搜索效率。

  • Expensive
  • Limited Capacity
  • Large Power Consumption

高级网络 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 内容

参考

Synopsys 基础 IP TCAM 介绍

PPT:Packet Classification Using Binary Content Addressable Memory

论文:Packet Classification Using Binary Content Addressable Memory

TCAM完全说明

BCAM(Binary Content Addressable Memory)和TCAM(Ternary Content Addressable Memory)相关推荐

  1. ora 27102 linux,ORA-27102: out of memory Linux-x86_64 Error: 12: Cannot allocate memory

    本帖最后由 cyndi5566 于 2016-3-10 11:04 编辑 今天凌晨2点执行rman报错了,而且开发部的同事告诉我网站也打不开了,请大家帮忙看看..谢谢.. (补充:现在网站可以正常打开 ...

  2. The system is running out of memory. Please close applications to free memory

    The system is running out of memory. Please close applications to free memory or free up space on th ...

  3. oracle memory_error,ORA-27102: out of memory Linux-x86_64 Error: 12: Cannot allocate memory

    本帖最后由 cyndi5566 于 2016-3-10 11:04 编辑 今天凌晨2点执行rman报错了,而且开发部的同事告诉我网站也打不开了,请大家帮忙看看..谢谢.. (补充:现在网站可以正常打开 ...

  4. 关于FLEX输出时:IE提示Alternate HTML content should be placed here. This content requir

    最近在用FLEX写东西,运行HTML时候总提示:Alternate HTML content should be placed here. This content requires the Adob ...

  5. Elasticsearch】es memory locking requested for process but memory is not locked

    文章目录 1.场景1 1.1 概述 1.场景1 1.1 概述 进程内存锁定失败:"memory locking requested for elasticsearch process but ...

  6. matlab中memory模块初始值,Matlab的memory模块消除代数环

    什么是代数环? 发生在两个或多个模块在输入端口具有信号直接传递而形成反馈的情况时,直接传递的模块在不知输入端口的值的情况下无法计算出输出端的值,也就是现在时刻的输出是依赖现在时刻的输入值来计算的.当这 ...

  7. torch.backends.cudnn.enabled = False会引起CUDA out of memory和CUDA error: an illegal memory access was

            一般来说,题目所示这种问题都是由batch_size的设置引起的,修改batch_size之后就能有效解决.但是,我今天遇到一种情况,这个问题不是由batch_size引起的,而是由t ...

  8. HP-UX top 输出中实存(real memory)/虚存(virtual memory)数据解释

    top 是 Unix/Linux 中一个非常直观的性能观察工具,它能把与系统负载.CPU.内存.进程.I/O 相关的性能数据展示在一个画面中.在 AIX 中 top 有另一个名字叫 topas,今天想 ...

  9. tcam开发C语言,TCAM

    TCAM (ternary content addressable memory)是一种三态内容寻址存储器,主要用于快速查找ACL.路由等表项. 它是从CAM的基础上发展而来的.一般的CAM存储器中每 ...

最新文章

  1. 有状态bean与无状态bean
  2. linux su -c命令
  3. Imagination升级PowerVR图形架构,高端移动设备或将迎来重大升级
  4. 《FreeFlow: Software-based Virtual RDMA Networking for Containerized Clouds》
  5. wireshark从入门到精通(协议排错安全篇)4
  6. 图解Android Studio 2.0安装步骤
  7. mysql illegal mix of_mysql字符集问题:Illegal mix of collations
  8. MySQL优化之推荐使用规范
  9. 【luogu 2709 / BZOJ 3781】小B的询问
  10. 【转】卖场开设社区便利店,不仅卖货,还有家政服务、售后衔接等(图)
  11. Java数组概述和定义
  12. nfc卡模式与标准模式_张家口市环卫进入首都标准“京环模式”
  13. silverlight动态添加xaml物件
  14. [C++11] 右值引用和移动语义
  15. 一天一个设计模式:工厂方法模式
  16. 综述 | 注意力机制
  17. 【精选】Java高频面试题278道附答案,通关中大型互联网企业工程师必备
  18. Luogu2602[ZJOI2010] 数字计数
  19. Java链表创建及遍历方法
  20. iso镜像添加软件包_ubuntu安装 win7_怎么把自己需要的程序添加到WIN7的原版ISO镜像中? - Win7之家...

热门文章

  1. [11]JDK9新特性
  2. 【显著目标检测论文】Pyramid Feature Attention Network for Saliency detection
  3. 【JS基础】利用函数实现:用户输入一个数,判断是否是素数
  4. Java~Java代理模式
  5. CSS3多列布局 columns 弹性布局 flex
  6. 数字电路中的基础电路结构
  7. STM32全链路开发实战教程专栏总目录(2022.10.19更新)
  8. linux实验实训报告,linux实验实训报告.doc
  9. 一个ntohs函数的实现
  10. DVWA通过攻略之SQL注入