CAMContentAddressable Memory的缩写,即“内容寻址存储器”的意思,它是在传统的存储技术的基础上实现的联想记忆存储器,关于CAM的基本操作有三种:

4B;`%r/Ds


\p0


      1).写操作:输入地址和数据,将数据写到指定的地址上,写入速度与RAM相同;

uugdk c)K0

      2).读操作:输入地址,返回该地址上的数据,读取速度与RAM相同;

{0{Q ]&R
@ DPe0

      3).查找操作:输入待查数据,返回该数据被存储的地址。这也是CAM的最主要用途,它能够从巨大的数据库中进行快速查找,并且返回最佳的匹配地址,最快查找速度能达到每秒一亿次以上。中国通信人博客*D9H lh-J)j P"S

      TCAMTernary Content Addressable Memory的缩写,即“三态内容寻址存储器”的意思,它是从CAM的基础上发展而来的。一般的CAM存储器中每个bit位的状态只有两个,“0”或“1”,而TCAM中每个bit位有三种状态,除掉“0”和“1”外,还有一个“don’t care”状态,所以称为“三态”,它是通过掩码来实现的,正是TCAM的这个第三种状态特征使其既能进行精确匹配查找,又能进行模糊匹配查找,而CAM没有第三种状态,所以只能进行精确匹配查找。

$U;@gM8Y0

      TCAM器件的生产厂商主要有CypressIDTNetlogic三家。这三家分别将TCAM器件称作Network Search Engine(NSE)Network SearchAccelerator(NSA)Knowledge-based Processor(KBP)

v%^B0|#y8g]


i0


中国通信人博客m3a GS5u

      TCAM器件在通信领域种有非常广泛的应用,主要有:中国通信人博客:bSC!D(D4k

      1).ATM Switching设备中的VCI/VPI转发和ATM-to-MPLS orATM-to-TCP-Flow地址映射表项的存储和查找;中国通信人博客 }0l7l] i


sL V _
]b nm


      2).Ethernet Switching设备中的二层MAC地址、ARP/RARP解析和三层IP路由表项的存储和查找;

g)ff.f Yu0

      3).Emerging Protocols and functions方面的MPLS label表项的存储和查找;

Y&{W%ftEub,G7j/g0

      4).Packet Classification业务中的Enforce securityEnforce departmental policiesQOS检测表项的存储和查找;

aV-T+lA1I:e0

      5).安全防护设备中的FIB/LBTMFIBACL表项存储和查找。

3n j5p b3l%f] t


Z0


中国通信人博客D$B%Q?X#S*t7}

传统的表项查找方法有很多,主要有:线型查找法、二叉树查找法、哈希表查找等,这些查找方法都是基于SRAM的软件查找方法,共同特点是查找速度慢。线型查找法需要遍历表中的所有表项;二叉树查找法需要遍历树中大多数节点,而且查找速度受树的深度影响较大;哈希表查找法是软件查找中计较快的一种方法,它是根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位置称为哈希地址或散列地址。虽然哈希表查找法相对来说比较快,但还是满足不了高速实时通信系统(40G/100G POS)的极速查找需求。中国通信人博客a2I%s_[#h'M

中国通信人博客 K'O
G)eK

基于硬件的TCAM查找法正是在这种背景下提出的,用此方法进行查找时,整个表项空间的所有数据在同一时刻被查询,查找速度不受表项空间数据大小影响,每个时钟周期完成一次查找,平均查找速度是基于SRAM算法查找的6倍,最坏情况下,能达到128倍。

qt:lf8G#st.[y,k0

中国通信人博客 E_u/lS+c-Yg y

      TCAM器件的硬件设计方式一般有三种,如下图所示:中国通信人博客


P*}t w s XV3?y


说明:http://blog.c114.net/p_w_uploads/2010/10/562315_201010192253521UMxg.jpg

,`.N Q3\-r7R'e`,}b0

网络处理器NP从报文头中把需要查找的信息提取出来,这个待查找的信息要整理成跟TCAM所存表项的格式一致,称之为KEYKEY作为TCAM的输入数据,经过与表项对照,如果有匹配的表项,就把该表项所在的地址作为输出,称之为Index。然后将Index作为RAM的地址输入,从RAM里得到所需查找的信息,称之为Data。最后将Data返回给发起查找操作的NP,至此完成一次查找操作。下图为TCAM在高端路由器中的应用及查找过程。中国通信人博客$O3]q:K7b

说明:http://blog.c114.net/p_w_uploads/2010/10/562315_201010192254101DlhS.jpg中国通信人博客a-t9L-|HA f

       CAMTCAM的基本存储单元如下图所示:

0vJM| ix6c!q0

说明:http://blog.c114.net/p_w_uploads/2010/10/562315_201010192257431esOy.jpg

'D s
M6P xus,eU0


2P K3RM$Q\


p0


说明:http://blog.c114.net/p_w_uploads/2010/10/562315_2010101922543218VIS.jpg中国通信人博客*A0CZ7q"kf9p

下面以NetlogicTCAM器件NL101024为例,介绍下TCAM器件的各管脚功能:中国通信人博客G-J&|)nm9`&l-R:E

      1).DBUS[71:0]KEY输入总线,共72根,与TCAM表项宽度相同(TCAM基本表项位宽为72位,32位源IP地址+32位目的IP地址+8位端口地址)IDT公司已开始推出用于IPV680位宽度TCAM器件;

U7l RM X6^R0

      2).RBUS[49:0]:查询结果Result返回总线,50位宽;中国通信人博客
Y7C!Ct`Nh Q


bAs:p.yY


      3).IBUS[7:0]:指令总线;

1q1n&c MnZ:g;i,fqy0

      4).CLK:系统时钟,上升沿有效;中国通信人博客%^Fv.U5C

      5)CLK0:输出时钟,读数据和比较数据时使用;

5^Z&Psa]` tL(S\0

      6).CE#:片选信号;中国通信人博客G2~oy:^

      7).RST#芯片复位信号;中国通信人博客5c$I
Ssh:MU(p K

      8).ODS-0/1:数据总线输出驱动选择信号;中国通信人博客fLc\8S_6u

      9).SMF[3:0]:系统匹配错误标识信号;

r%\5L&q5|bt&VPy0

     10).RV:结果有效信号;

-j3SlOfT0

     11).RFSL:只在HSTL/SSTL-2电平时使用,此时,RFSL=0表示使用内部参考电压VDDQ/2RFSL=1时表示由外部管脚VREF提供参考电压。使用LVCMOS电平时,该管脚直接接地;


Zc| Y,gn6q s"I0

     12).VREF[4:1]:参考电影,为HSTL/SSTL-2I/O端口提供参考电压,内部有弱下拉,当使用LVCMOS电平时,这些管脚直接接地。

ud
Z*^%q9r@5A/v0

有的TCAM器件对外提供LA-1接口,如NSE5512LA-1的位宽较小,只有16位宽度,不过它在TCAM器件内部先转换