内容可寻址存储器CAM在交换机中的应用
数据检索功能的实现。如图3所示,MAC-VP/VC表由硬件、软件两个子模块构成。MAC-CAM表实现MAC地址到偏移地址的查询,这部分由硬件实现;RAM表实现偏移地址到配置信息的查询,这部分由软件实现;两者通过偏移地址耦合。本系统将每一个VP/VC认为是一个用户端口,VP/VC的值保存在用户端口域。
当进行MAC地址检索时,CPU首先以MAC地址为关键字通过MAC-CAM表的检索得到对应的偏移地址a,然后再根据公式(1)得到RAM表中该MAC地址的存储位置,并由此地址获得相关配置信息。RAM表中标志域1、标志域2分别表示用户MAC地址的状态信息,限于篇幅这里不详述了。
RAM地址=基地址+a×b(1)
公式(1)中,基地址是RAM表的起始地址;a是通过MAC-CAM表查询得到的偏移量,即MAC地址的索引值;b表示RAM表中的一个表项的宽度为多少字节。
与MAC-VP/VC表的实现基本相同,VPI/VCI通道表的实现也分为两部分,一部分由硬件CAM实现,另一部分由软件实现。执行VPI/VCI检索时,CPU先通过CAM得到某VPI/VCI的偏移地址,然后再根据该偏移地址得到RAM表中保存的具体配置。
正是通过MAC-VP/VC表和VPI/VCI通道表,本系统实现了ATM网络与E-MAN的交换。
2.3检索算法的实现
按协议规定MAC地址占48位,表示为6字节的数组。图4和图5分别表示了MAC-CAM表中MAC地址的高32位数据和低16位数据的数据结构。
图6所示为MAC地址索引项的数据结构,它分为两部分:最高位为匹配标志(MS),0表示匹配成功,1表示匹配失败;匹配输出的低16位为MAC地址的索引(macIndex),用户可按需要对其进行定义,如MAC地址00-3C-CD-17-65-AB的索引值为0x03EF。
不同的协议要求,VPI/VCI表的数据结构与MAC表的数据结构并不相同。但由于处理方式相近,这里就不赘述了。
MCM69C233的匹配规则由通用屏蔽字(GlobalMask)制定。进行检索时,MCM69C233将检索内容与通用屏蔽字进行按位或运算,1表示屏蔽该位的值,0表示对该位敏感。从上文可看到,两种数据检索的数据结构大不相同,因此需要不同的匹配规则。根据本系统设计要求,ATM信元的检索只对VPI/VCI敏感,因此通用屏蔽字为0xFF00_0000_FFFF_FFFF,即忽略GFC字段和PHY地址标识段。对于MAC地址的匹配操作,通用屏蔽字为0x0000_0000_0000_FFFF,即48位匹配。通用屏蔽字的设定必须在CAM初始化时完成。
在执行匹配操作前,CAM须进行初始化。由于ATM-CAM和MAC-CAM的工作模式不同,因此两者的初始化过程亦不尽相同。下面以ATM-CAM为例,用伪码形式说明初始化过程。
atmCamInit()
{
SetATM_CAMworkingonATMmode;
SettheGlobalmaskregisterforVPI/VCItranslation;
SettheATM_CAMtofastentrymode;
《内容可寻址存储器CAM在交换机中的应用(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/145153.html
当进行MAC地址检索时,CPU首先以MAC地址为关键字通过MAC-CAM表的检索得到对应的偏移地址a,然后再根据公式(1)得到RAM表中该MAC地址的存储位置,并由此地址获得相关配置信息。RAM表中标志域1、标志域2分别表示用户MAC地址的状态信息,限于篇幅这里不详述了。
RAM地址=基地址+a×b(1)
公式(1)中,基地址是RAM表的起始地址;a是通过MAC-CAM表查询得到的偏移量,即MAC地址的索引值;b表示RAM表中的一个表项的宽度为多少字节。
与MAC-VP/VC表的实现基本相同,VPI/VCI通道表的实现也分为两部分,一部分由硬件CAM实现,另一部分由软件实现。执行VPI/VCI检索时,CPU先通过CAM得到某VPI/VCI的偏移地址,然后再根据该偏移地址得到RAM表中保存的具体配置。
正是通过MAC-VP/VC表和VPI/VCI通道表,本系统实现了ATM网络与E-MAN的交换。
2.3检索算法的实现
按协议规定MAC地址占48位,表示为6字节的数组。图4和图5分别表示了MAC-CAM表中MAC地址的高32位数据和低16位数据的数据结构。
图6所示为MAC地址索引项的数据结构,它分为两部分:最高位为匹配标志(MS),0表示匹配成功,1表示匹配失败;匹配输出的低16位为MAC地址的索引(macIndex),用户可按需要对其进行定义,如MAC地址00-3C-CD-17-65-AB的索引值为0x03EF。
不同的协议要求,VPI/VCI表的数据结构与MAC表的数据结构并不相同。但由于处理方式相近,这里就不赘述了。
MCM69C233的匹配规则由通用屏蔽字(GlobalMask)制定。进行检索时,MCM69C233将检索内容与通用屏蔽字进行按位或运算,1表示屏蔽该位的值,0表示对该位敏感。从上文可看到,两种数据检索的数据结构大不相同,因此需要不同的匹配规则。根据本系统设计要求,ATM信元的检索只对VPI/VCI敏感,因此通用屏蔽字为0xFF00_0000_FFFF_FFFF,即忽略GFC字段和PHY地址标识段。对于MAC地址的匹配操作,通用屏蔽字为0x0000_0000_0000_FFFF,即48位匹配。通用屏蔽字的设定必须在CAM初始化时完成。
在执行匹配操作前,CAM须进行初始化。由于ATM-CAM和MAC-CAM的工作模式不同,因此两者的初始化过程亦不尽相同。下面以ATM-CAM为例,用伪码形式说明初始化过程。
atmCamInit()
{
SetATM_CAMworkingonATMmode;
SettheGlobalmaskregisterforVPI/VCItranslation;
SettheATM_CAMtofastentrymode;
《内容可寻址存储器CAM在交换机中的应用(第3页)》