| 摘要:介紹了內(nèi)容可尋址存儲(chǔ)器CAM MCM69C233的特點(diǎn)及使用。通過(guò)某交換機(jī)應(yīng)用表明,可大幅度提高數(shù)據(jù)檢索速度,增強(qiáng)系統(tǒng)可靠性。 關(guān)鍵詞:CAM 數(shù)據(jù)檢索 嵌入式實(shí)時(shí)控制系統(tǒng) MAC RTOS 內(nèi)容可尋址存儲(chǔ)器CAM(Content Addressable Memory是一種特殊的存儲(chǔ)陣列。它具有將輸入數(shù)據(jù)與CAM中存儲(chǔ)的所有數(shù)據(jù)項(xiàng)同時(shí)進(jìn)行比較,迅速判斷輸入數(shù)據(jù)是否與CAM中存儲(chǔ)的數(shù)據(jù)項(xiàng)相匹配,并給出數(shù)據(jù)項(xiàng)對(duì)應(yīng)地址和匹配信息的特點(diǎn),因而被廣泛地應(yīng)用于通信、模式識(shí)別等領(lǐng)域。在某型號(hào)交換機(jī)的設(shè)計(jì)中,筆者應(yīng)用MOTOROLA公司的CAM芯片——MCM69C233實(shí)現(xiàn)數(shù)據(jù)檢索功能,既提高了系統(tǒng)資源的利用率,又保障了系統(tǒng)性能,大大縮短開(kāi)發(fā)周期。 1 MCM69C233功能簡(jiǎn)述 CAM是一種基于RAM技術(shù)的存儲(chǔ)器,數(shù)據(jù)項(xiàng)存儲(chǔ)在CAM內(nèi)部的陣列中。每個(gè)數(shù)據(jù)項(xiàng)的位數(shù)叫字寬,陣列內(nèi)所有數(shù)據(jù)項(xiàng)的條數(shù)叫做CAM的深度,CAM的容量通過(guò)字寬和深度來(lái)表征。MCM69C233可存儲(chǔ)4096條寬度為64 位的數(shù)據(jù)項(xiàng)。圖1所示為MCM69C233的結(jié)構(gòu)框圖。 用戶(hù)可對(duì)MCM69C233的匹配規(guī)則進(jìn)行編程,在讀CAM模式(查找匹配)時(shí),MCM69C233直接從匹配口數(shù)據(jù)線(xiàn)MQ0~MQ31讀入數(shù)據(jù),并按照預(yù)先定義的匹配規(guī)則將輸入數(shù)據(jù)項(xiàng)與陣列中的所有數(shù)據(jù)項(xiàng)進(jìn)行并行比較。如果數(shù)據(jù)項(xiàng)存在,匹配口輸出該數(shù)據(jù)項(xiàng)的索引值,且MS為0;如果數(shù)據(jù)項(xiàng)不存在,MS為1。由于比較過(guò)程只需一個(gè)時(shí)鐘周期,所以速度極快。MCM69C233的最長(zhǎng)匹配時(shí)間為210ns。 MCM69C233有兩種工作模式:ATM模式和基本模式。ATM模式主要用于ATM交換機(jī)中對(duì)ATM信元的處理。基本模式的應(yīng)用十分靈活,由于匹配規(guī)則可編程,用戶(hù)可根據(jù)不同的應(yīng)用場(chǎng)合實(shí)現(xiàn)檢索功能。 2 應(yīng)用實(shí)例 2.1 設(shè)計(jì)要求 某型號(hào)交換機(jī)根據(jù)產(chǎn)品定義用于ATM網(wǎng)絡(luò)和基于以態(tài)網(wǎng)的城域網(wǎng)E-MAN(Ethernet Metropolitan Area Network)的連接。其ATM端口工作速率為155Mbps,以太網(wǎng)端口工作速率為100Mbps。系統(tǒng)數(shù)據(jù)流如圖2所示。 輸入的ATM信元經(jīng)協(xié)議處理后,包含在ATM信元中的以太網(wǎng)幀被提取出來(lái)。交換機(jī)接著對(duì)以太網(wǎng)幀的源MAC地址進(jìn)行檢索,判斷該以太網(wǎng)幀是否來(lái)自已知的用戶(hù)。如果在系統(tǒng)內(nèi)嵌的MAC-VP/VC表中檢索到該MAC地址,則表明該以太網(wǎng)幀來(lái)自已知的用戶(hù),系統(tǒng)隨即刷新老化標(biāo)記,將其轉(zhuǎn)發(fā)至以太網(wǎng)接口;如果不存在,則系統(tǒng)將在MAC-VP/VC表中添加該MAC地址并設(shè)置老化標(biāo)記,而后交換機(jī)將該以太網(wǎng)幀轉(zhuǎn)發(fā)至以太網(wǎng)接口。 下行方向,系統(tǒng)首先以輸入以太網(wǎng)幀的目的MAC地址為關(guān)鍵字在MAC-VP/VC表中進(jìn)行檢索,該地址就是上文提到的源MAC地址。如果目的MAC地址不存在,則將輸入的以太網(wǎng)幀轉(zhuǎn)換為ATM信元,向所有用戶(hù)端口廣播;如果匹配成功,交換機(jī)獲得與該MAC地址對(duì)應(yīng)的VPI/VCI,將以太網(wǎng)幀轉(zhuǎn)換為ATM信元,并根據(jù)VPI/VCI通道表,從指定的用戶(hù)端口轉(zhuǎn)發(fā)至ADSL終端,最后送達(dá)用戶(hù)主機(jī)。 嵌入式實(shí)時(shí)控制系統(tǒng)的性能主要取決于兩方面:硬件平臺(tái)的運(yùn)算性能和算法的優(yōu)越性。其中硬件平臺(tái)的運(yùn)算性能最為關(guān)鍵,這一點(diǎn)在交換機(jī)中表現(xiàn)得由為突出。按照設(shè)計(jì)要求,ATM信元的VPI/VCI檢索必須在1/4~1/2的信元接收時(shí)間內(nèi)完成,即684ns~1.37μs,以太網(wǎng)幀的MAC地址的檢索時(shí)間不能超過(guò)5.12μs。因此首先要保證數(shù)據(jù)檢索任務(wù)的響應(yīng)速度;其次,由于交換機(jī)數(shù)據(jù)流量大,對(duì)于本系統(tǒng)的ATM端口,系統(tǒng)每秒必須處理約365,566幀ATM信元,數(shù)據(jù)檢索任務(wù)十分繁重;另外,除了業(yè)務(wù)數(shù)據(jù)的ATM-Ethernet雙向協(xié)議處理外,交換機(jī)還必須完成SNMP(Simple Network Management Protocol)協(xié)議處理、命令行處理等任務(wù),所以還必須解決數(shù)據(jù)檢索對(duì)系統(tǒng)資源的占用問(wèn)題。 提高性能的方法一般有兩種,最直接的方法就是采用高性能的硬件平臺(tái),如采用分布式控制系統(tǒng),一個(gè)CPU用于協(xié)議處理,另一個(gè)CPU用于網(wǎng)管等事務(wù)處理;或者協(xié)議處理部分由ASIC完成,事務(wù)處理部分由CPU實(shí)現(xiàn)。但這些方案會(huì)帶來(lái)硬件成本的大幅提高。另外一種方案就是采用更優(yōu)化的算法。通過(guò)分析發(fā)現(xiàn),盡管利用軟件實(shí)現(xiàn)對(duì)ATM信元的VPI/VCI和以太網(wǎng)幀的MAC地址檢索并不復(fù)雜,但由于檢索次數(shù)頻繁,大量的系統(tǒng)資源被占用,系統(tǒng)的響應(yīng)速度大大降低,滿(mǎn)足不了大流量數(shù)據(jù)通信的要求。因此純軟件算法解決不了數(shù)據(jù)檢索部分對(duì)資源占用的問(wèn)題。為提高系統(tǒng)的響應(yīng)速度,必須將這兩部分?jǐn)?shù)據(jù)檢索的任務(wù)分離出來(lái)由硬件實(shí)現(xiàn),協(xié)議處理部分還由CPU完成。數(shù)據(jù)檢索模塊和協(xié)議處理模塊并行工作,兩部分通過(guò)數(shù)據(jù)耦合,既可以提高模塊的內(nèi)聚度,又增強(qiáng)了算法的健壯性;并且利用硬件實(shí)現(xiàn)數(shù)據(jù)檢索還可以提高檢索速度,降低系統(tǒng)資源的占用率。 |






