横河CP461-50 S2
内容可寻址存储器CAM(Coment-AddressableMemo-ry)以内容进行寻址的存储器,是一种特殊的存储阵列RAM。它的主要工作机制就是将一个输入数据项与存储在CAM中的所有数据项自动同时进行比较,判别该输入数据项与CAM中存储的数据项是否相匹配,并输出该数据项对应的匹配信息。美Motorola公司的CAM芯片MCM69C232在市场上是性价比较高的产品,因而被广泛地应用于网络通信、模式识别等领域,其用于数据检索的优势是软件无法比拟的,可以极大地提高系统性能。
1MCM69C232芯片介绍
内容可寻址存储器(CAM)从本质上讲是一种基于RAM技术的特殊存储器,数据项存储在CAM内部的阵列单元中。每个数据项的位数称为“字宽”,阵列内所有数据项的条数称为“深度”,CAM的容量通过字宽和深度来表征。MCM69C232设计可存储4096条宽度为64位的数据项。
MCM69C232有两组数据端口:控制端口(controlport)和匹配端口(matchport)。控制端口用于处理器(CPU)对CAM表的操作,包括插入、删除数据表项、模式设置和模拟匹配,以及读取芯片内部状态寄存器的信息等。数据项的检索通过匹配端口完成。
尽管基于RAM技术,但CAM的存储机制却与RAM大相径庭。图1为MCM69C232的结构框图。图中MCM69C232没有用于确定内容存储单元的地址总线,其地址线A0~A2用于对片内控制寄存器的寻址。处理器通过操作MCM69C232的控制端口(数据线DQ0~DQl5)可以读/写CAM表中的数据项,数据项的存储地址由芯片内部逻辑控制。MCM69C232有两种工作模式:ATM模式和基本模式。ATM模式主要用于ATM交换机对ATM信元进行虚拟通路标识号/虚拟通道标识号(VPI/VCI)的转换处理;基本模式主要用于以太网上的IP/MAC地址匹配等数据检索。

MCM69C232的结构框图
MCM69C232芯片的主要特性如下:
◇160ns的匹配时间;
◇设有屏蔽寄存器;
◇通过芯片级联扩展深度;
◇时钟频率***高为50MHz;
◇匹配字宽和输出结果位宽可自定义;
◇在ATM模式下可进行VPC(VirtualPathCircuits)和VCC(VirtualConnectionCircuits)的同时匹配;
◇端口主要分为控制和匹配端口;
◇20***的插入时间(在12个输入数据项队列未满的情况下);
◇12ms的初始化时间(在设置了快速写入模式后);
◇具有符合IEEE标准1149.1的测试端口(JTAG)。
2MCM69C232芯片的使用
在基本操作模式下,MCM69C232读取输入数据并与CAM表中的所有表项相比较。无论匹配项找到与否,当比较完成后,MC(MatchComplete)引脚均有效。如果找到了匹配项,则MS(MatehSuccessful)引脚有效,同时在MQ总线上输出与匹配数据项相关的数据;如果没有找到,则MQ总线保持高阻态,以便级联CAM芯片来扩展存储深度。
MCM69C232上电后,默认工作模式为基本模式。在进入数据检索操作之前,芯片必须先完成几个启动操作过程:首先,要设置全局屏蔽寄存器,定义匹配字宽和输出结果位宽;其次,要选择数据表项的写入模式,即快速写入模式还是动态写入模式;再次,要把用户需要的数据项(共64位,包括匹配字节和与其对应的输出结果字节)逐次装入CAM表中。
CAM表数据项写入模式的选择,往往是在写入速度和启动匹配操作花费的时间中取个平衡。快速写入模式,常用于将大量的数据项初始写入CAM表中;而动态写入模式,则常用于启动匹配后往CAM表中插入少量的数据项。用户通过操作控制口4个I/O寄存器来插入或删除CAM表项,当有异常状态出现时,可以从标志寄存器和错误代码寄存器反映出来。MCM69C232内部的寄存器如图2所示。

内部的寄存器
CAM表的匹配位取决于全局屏蔽寄存器的定义。屏蔽寄存器为0的位要求数据项的对应位作匹配操作;为1,则对应位无需匹配。典型的应用中用户总是把数据项的高位序位定义为“待匹配字节”,低位序位定义为“结果输出字节”。64位中的任何位都可以定义为“匹配操作”,但实际上输出到匹配口MQ0~MQ31总线上的总是***低32位数据,并非可任意编程输出的。如果设置的输出结果字节超过32位,则是无意义的。
通常情况下,MCM69C232通过写控制口数据和指令来准备匹配操作。一般步骤是把数据项装入4个I/O寄存器,然后往操作代码寄存器写入操作代码,即可完成一种指令的操作。指令完成后,CAM表的内容可能会被修改,标志寄存器的相应位会被置位,错误代码寄存器会返回错误码,当使能时,还会触发中断。芯片的操作指令如表1所列。
MCM69C232操作指令
复位。复位同步于主时钟的上升沿,一个时钟周期的复位就能清空CAM表和输入数据项队列,置标志寄存器为1C,错误代码寄存器为FFFF,几乎满寄存器为FFF,并清除中断屏蔽。控制口时序。访问控制口如同处理器访问RAM一样,时序较为简单。
匹配口时序。访问匹配口分两种情况:一种是匹配字节小于等于32位,只用LH/***信号装载匹配数据,LL信号无用;另一种是匹配字节大于32位,先用LL信号装载匹配数据低位部分,再由LH/***信号装载高位部分。匹配结果由MC信号和MS信号指示,使能G信号读取匹配结果数据。匹配口时序见参考文献。
两口同时匹配。控制口模拟匹配和匹配口匹配同时进行时,匹配口优先权较高。另外控制口模拟匹配操作之前要求输入队列为空,以便接收结果。深度扩展。芯片简单级联即可扩展深度,具体的扩展连线方法请参见参考文献。
3MCM69C232芯片的应用
3.1MCM69C232在交换机中的应用
在以太网上.交换机维护一张用于二层交换的地址表(通常称为“CAM表”),该表维护MAC地址与出接口的对应关系。样每当接收到一个以太网数据帧,交换机就会进行判断。如果该数据帧不是发送给自己的,则根据数据帧的目的MAC地址查询CAM表;如果能命中(所谓命中,就是在CAM表中找到与该MAC地址对应的转发项),则根据查询的结果(通常是一个出接口列表)进行转发;如果不能命中,则向所有端口广播该数据帧。
交换机的这张CAM表可以通过多种方式获得,比如静态配置、动态学习。针对多播,还可以通过各种多播协议(如IGMP窥探、GMRP协议等方式)获得(多播转发表不能通过学习获得,而且多播转发项跟普通转发项不同,与其对应的出口可能不只一个,而是一个出口集合);但对于单播,***重要的一种建立方式是动态学习。
当交换机接收到一个数据帧时,提取出该数据帧的目的MAC地址,并以此为根据进行CAM表查询。如果能查找到结果,则根据结果进行数据帧的转发;如果不能命中,则对除接收端口外的所有端口进行***。在进行数据转发的同时,交换机还进行一个学习的过程。它把数据帧的源MAC地址提取出来,查询CAM表,看CAM表中是否有针对该MAC地址的转发项。如果没有,则把该MAC地址和接收到该MAC地址的端口绑定起来,插入CAM表项。这样当接收到一个发送到该MAC地址的数据帧时,就不需要向所有端口广播,而仅向这个端口发送即可。需要注意的是,数据帧的转发是依据目的MAC地址查询CAM表,而CAM表的学习则是以源MAC地址为依据的。
之所以在交换机中使用CAM,是因为交换机对性能要求特别高。交换机中的嵌入式实时控制系统的性能主要取决于两方面:硬件平台的运算性能和算法的优越性。其中,硬件平台的运算性能***为关键,这一点在交换机中表现得尤为突出。按照设计要求,以太网帧的MAC地址的检索时间一般都是μs级,因此首先要保证数据检索任务的响应速度;除了十分繁重的数据检索任务外,交换机还必须完成SNMP(SimpleNetworkManagementPmtocol)协议处理、命令行处理等任务,所以还必须解决数据检索对系统资源的占用问题。利用软件实现对以太网帧的MAC地址检索并不复杂,但由于检索次数频繁,大量的系统资源被占用,致使系统的响应速度大大降低,满足不了大流量数据通信的要求。因此纯软件算法解决不了数据检索部分占用大量资源的问题,为提高系统的响应速度,
必须将这数据检索的任务分离出来由硬件实现,而协议处理部分仍由CPU完成。数据检索模块和协议处理模块并行工作,利用硬件实现数据检索还可以提高检索速度,降低系统资源的占用率。在这里CAM的优势就体现出来了。
3.2检索操作
当进行MAC地址检索时,CPU首先以MAC地址为关键字通过MAC-CAM表的检索得到对应的索引值,然后再根据索引值找到RAM表中该MAC地址对应的相关信息的存储位置,并由此地址获得相关配置信息。在RAM中的相关配置信息中可以存放诸如MAC地址、用户端口、有效标志域等其他信息。CAM表与RAM的映射关系如图3所示。

CAM表与RAM的映射关系
按协议规定MAC地址占48位,表示为6字节的数组,故对于MAC地址的匹配操作,屏蔽字设为00000_0000_0000_FFFF,即48位匹配。屏蔽字的设定必须在CAM初始化时完成。在执行匹配操作前,CAM须进行初始化。MCM69C232上电后,默认工作模式为基本模式,因此不必再设置工作模式。前面已提到过,CAM中MAC表的形成是通过自学习得到的,因此无需向CAM表中写入数据项。
匹配操作通过对匹配口读/写来完成。匹配口数据线MQ只有32位。由于MAC地址占48位,因此需要两次写操作才能完整地将一个MAC地址表达出来。当进行MAC地址检索时,CPU先向匹配口写入MAC地址的低32位数据,其中高16位有效,低16位可以为任意值;紧接着CPU向匹配口写入高32位数据;随后CPU读匹配口,即可得到匹配结果。
结语
采用内容可寻址存储器MCM69C232,极大地提高了数据检索速度.而这是用纯软件检索算法所不能比拟的。设备的数据处理能力满足了大流量网络通信的要求,使产品获得了良好的社会效益和经济效益
ABB 1000/1333 kVA 13800 V 480Y/277 3R Encl. Dry Type Transformer 13,800 13.8 kV
ABB 1500 KVA 22860 GRD Y / 13200/480Y/277 3 PH Padmount Transformer F3IE14CPL9
ABB F4S3200 MEGAMAX SACE-F4 3200A 690V, PR1/P LSIG Trip, Ctrl PR1/C F4S 3200 Amp
ABB ADVAC 2000 Amp 15 KV AA3J2777XX000UP vacuum circuit breaker ANSI 2005
ABB 500 HP Drive SAFUI 460F460 Stromberg 500F500 400F415 Allen Bradley 460 KVA
ABB KP-40 KP40 4000 Amp 4000A Air Breaker MPS-C 2000
ABB ADVAC 1200 Amp 15 KV AA3J177700000UP vacuum circuit breaker ANSI 2005
Brown Boveri 1200 Amp 15 KV Model 03-C Vacuum Circuit Breaker ITE Power Breaker
ABB E4S-A 3200 Amp SACE Breaker EMAX 600V E4SA 32 E4S3200 Bolt On BO
ABB ADVAC 15kV 1200A AA251777000000P Vacuum Circuit Breaker 5 cyc 15 kV 1200 Amp
BBC LK-25 2500A Breaker w LSG Solid State Trip Device LSS 4 611250-T24 Gould ABB
ABB ADVAC 5kV 1200 Amp AA211777000000P Vacuum Circuit Breaker 5 cycles 5KV 1200A
ABB KP-20 KP20 2000 Amp 2000A Air Breaker MPS-C 2000
ABB 500 HP AC Drive SAFUC 500F500 Stromberg Allen Bradley 460 KVA 460V AB 345050
ABB 500 HP AC Drive SAFUB 500F500 Stromberg Allen Bradley 460 KVA 460V AB 381348
ABB 150 HP ACX550-U0-180A-?4 180A AC VS Drive 150HP ACX550U0180A4 ACX 550
ABB Advant 500 Industrial Work station HP A4310A 748i 9000 CPU 700i
ABB KPE-16 KPE16 1600 Amp Air Circuit Breaker MPS-C 2000 Trip Unit K-Line 600V
ABB 100 HP ACS550-U1-124A-?4 124 Amp AC VS Drive 100HP ACS550U1124A4 ACS 550
ABB 2" Coriolis Flowmeter /w TRIO-MASS MC230 Sensor MC2 Hygiene FCM2000 F316Ti
ABB Type K800 S K800S 800 Amp 800A Air Breaker LI
ABB 1600 Amp Type LKE-16 LKE16 MPS-5 MPS5 Air Breaker
ABB ACS550-U1-078A-?4 60 HP ACS 500 AC VS Drive ACS550U1078A4 480V 3 PH 77A 60HP
ABB DSQC500 3HAC3616-1/03 Robot Controller Main Computer Ethernet PLC DSQC 500
ABB Aq Trafo AB SLTF 4 Robot Transformer 3HAC6162-1 SLTF4 478119J5
ABB Industrial PFVI 101 Power Supply Module PFVI101 PS PFVI 101 YM 110 001-SP
ABB 3HAC6550-1 Robot Power Module PLC
ABB Drawout Control Power Transformer Fuse Unit GE EJ 0-1 C Advac DO 15 KV
ABB Drawout Control Power Transformer Fuse Unit CPT 25E. 4.8KV Advac DO 5 KV
ABB 6668D37A27 High Impendance Bus Differential Relay KAB 400V 9643A94 41-337.4
ABB 5 KV Advac Drawout Voltage Transformer DO MetalClad 40:1, 3x PTG3-1-60-482F
ABB NEW COPA-XE Flowmeter PFA 240171502/X001 210000293273 DN 15 DE23 Tran***itter
ABB 5 KV Drawout Voltage Transformer Unit Advac DO MetalClad 40:1 PTG3-2-60-482F
ABB 5 KV Fuse Drawout Unit Advac DO MetalClad GE EJO-1 C 9F60 DJD010 5KV
ABB DSQC 346 E 3HAB8101-11 Atlas Copco Servo Drive Unit Robot DSQC346E
ASEA SEK 1600K3 SEK1600K3 Contactor 1600 Amp 1600A A
ABB DSQC 346 B 3HAB8101-6 Atlas Copco Servo Drive Unit S*** Robot DSQC346B
ABB DSQC 345 A 3HAB8101-1 Atlas Copco Servo Drive Unit S*** Robot DSQC345A
ABB S6H 800 Amp 600V Circuit Breaker SACE S6 PR212/P LSIG Q Series AA00211439
ABB DSQC 522 3HAC8848-1 Robot Controller I/O Ethernet PLC DSQC 522 3HAC 8848-1
ABB Industrial PFVI 102 Power Supply Module PFVI102 PS PFVI 102 YM 110 001-SN
ABB 422C1276 Circuit Shield Frequency Relay Asea Brown Boveri
ABB LKE 8 800A Breaker 600V 800 Amp A BBC Micro Power Shield Type MPS 5G LSIG
BBC LKE-8 800A Breaker /w LSIG Siemens Westrip RMS-2000 2KLSIG-2A Gould ABB LKE8
Taylor ABB MOD 300 6241BP10421B-N In 6241BP10421 B N
BBC Type K1600 K 1600 1600 Amp 1600A Air Breaker LI
Taylor ABB MOD 300 6231BP10920D-K In Out 6231BP10920
Taylor ABB MOD 300 6247BP10720AC Input 6247BP10720A-C