| 華中科技大學(xué) 楊黎明 內(nèi)容可尋址存儲器CAM(Content-Addressable Memory)是以內(nèi)容進(jìn)行尋址的存儲器,是一種特殊的存儲陣列RAM,它的主要工作機制就是將一個輸入數(shù)據(jù)項與存儲在CAM中的所有數(shù)據(jù)項自動同時進(jìn)行比較,判別該輸入數(shù)據(jù)項與CAM中存儲的數(shù)據(jù)項是否相匹配,并輸出該數(shù)據(jù)項對應(yīng)的匹配信息,美國Motorola公司的CAM芯片MCM69C232在市場上是性價比較高的產(chǎn)品,因而被廣泛地應(yīng)用于網(wǎng)絡(luò)通信,模式識別等領(lǐng)域,其用于數(shù)據(jù)檢索的優(yōu)勢是軟件無法比擬的,可以極大的提高系統(tǒng)性能。 1 MCM69C32芯片介紹 內(nèi)容可尋址存儲器(CAM)從本質(zhì)上講是一種基于RAM技術(shù)的特殊存儲器,數(shù)據(jù)項存儲在CAM內(nèi)部的陣列單元中,每個數(shù)據(jù)項中的位數(shù)稱為"字寬",陣列內(nèi)所有數(shù)據(jù)項的條數(shù)稱為"深度",CAM的容量通過字寬和深度來表征,MCM69C232設(shè)計可存儲4096條寬度為64位的數(shù)據(jù)項。 MCM69C232有兩組數(shù)據(jù)端口:控制端口(control port)和匹配端口(match port)。控制端口用于處理器(CPU)對CAM表的操作,包括插入、刪除數(shù)據(jù)表項、模式設(shè)置和模擬匹配,以及讀取芯片內(nèi)部狀態(tài)寄存器的信息等,數(shù)據(jù)項的檢索通過匹配端口完成。 盡管基于RAM技術(shù),但CAM的存儲機制卻與RAM大相徑庭,圖1為MCM69C232的結(jié)構(gòu)框圖,圖中MCM69C232沒有用于確定內(nèi)容存儲單元的地址總線,其地址線A0-A2用于對片內(nèi)控制寄存器的尋址。處理器通過操作MCM69C232的控制端口(數(shù)據(jù)線DQ0-DQ15)可以讀/寫CAM表中的數(shù)據(jù)項,數(shù)據(jù)項的存儲地址由芯片內(nèi)部邏輯控制。MCM69C232有兩種工作模式:ATM模式和基本模式。ATM模式主要用于ATM交換機對ATM信元進(jìn)行虛擬通路標(biāo)識號/虛擬通道標(biāo)識號(VPI/VCI)的轉(zhuǎn)換處理,基本模式主要用于以太網(wǎng)上的IP/MAC地址匹配等數(shù)據(jù)檢索。  MCM69C232芯片的主要特性如下: 160ns的匹配時間; 沒有屏蔽寄存器; 通過芯片級聯(lián)擴展深度; 時鐘頻率最高為50MHz; 匹配字寬和輸出結(jié)果位寬可自定義; 在ATM模式下可進(jìn)行VPC(Virtual Path Circuits)和VCC(Virtual Connection Circuits)的同時匹配; 端口主要分為控制和匹配端口; 200ns的插入時間(在12個端口數(shù)據(jù)項隊列未滿的情況下); 12ms的初始化時間(在設(shè)置了快速寫入模式后); 具有符合IEEE標(biāo)準(zhǔn)1149.1的測試端口(JTAG)。 2 MCM69C232芯片的使用 在基本操作模式下,MCM69C232的讀取輸入數(shù)據(jù)并與CAM表中的所有表項相比較,無論匹配項找到與否,當(dāng)比較完成后,MC(Match Complete)引腳均有效,如果找到了匹配項,則MS(Match Successful)引腳有效,同時在MQ總線上輸出與匹配數(shù)據(jù)項相關(guān)的數(shù)據(jù),如果沒有找到,則MQ總線保持高阻態(tài),以便級聯(lián)CAM芯片來擴展存儲深度。 MCM69C232上電后,默認(rèn)工作模式為基本模式,在進(jìn)入數(shù)據(jù)檢索操作之前,芯片必須先完成幾個啟動操作過程:首先,要設(shè)置全局屏蔽寄存器,定義匹配字寬和輸出結(jié)果位寬;其次,要選擇數(shù)據(jù)表項的寫入模式,即快速寫入模式還是動態(tài)寫入模式;再次,要把用戶需要的數(shù)據(jù)項(共64位,包括匹配字節(jié)和與其對應(yīng)的輸出結(jié)果字節(jié))逐次裝入CAM表中。 CAM表數(shù)據(jù)項寫入模式的選擇,往往是在寫入速度和啟動匹配操作花費的時間中取個平衡,快速寫入模式,常用于將大量的數(shù)據(jù)項初始寫入CAM表中,而動態(tài)寫入模式,則常用于啟動匹配后往CAM表中插入少量的數(shù)據(jù)項。用戶通過操作控制口4個I/O寄存器來插入或刪除CAM表項,當(dāng)有異常狀態(tài)出現(xiàn)時,可以從標(biāo)志寄存器和錯誤代碼寄存器反應(yīng)出來,MCM69C232內(nèi)部的寄存器如圖2所示。  MCM69C232芯片的主要特性如下: 160ns的匹配時間; 沒有屏蔽寄存器; 通過芯片級聯(lián)擴展深度; 時鐘頻率最高為50MHz; 匹配字寬和輸出結(jié)果位寬可自定義; 在ATM模式下可進(jìn)行VPC(Virtual Path Circuits)和VCC(Virtual Connection Circuits)的同時匹配; 端口主要分為控制和匹配端口; 200ns的插入時間(在12個端口數(shù)據(jù)項隊列未滿的情況下); 12ms的初始化時間(在設(shè)置了快速寫入模式后); 具有符合IEEE標(biāo)準(zhǔn)1149.1的測試端口(JTAG)。 2 MCM69C232芯片的使用 在基本操作模式下,MCM69C232的讀取輸入數(shù)據(jù)并與CAM表中的所有表項相比較,無論匹配項找到與否,當(dāng)比較完成后,MC(Match Complete)引腳均有效,如果找到了匹配項,則MS(Match Successful)引腳有效,同時在MQ總線上輸出與匹配數(shù)據(jù)項相關(guān)的數(shù)據(jù),如果沒有找到,則MQ總線保持高阻態(tài),以便級聯(lián)CAM芯片來擴展存儲深度。 MCM69C232上電后,默認(rèn)工作模式為基本模式,在進(jìn)入數(shù)據(jù)檢索操作之前,芯片必須先完成幾個啟動操作過程:首先,要設(shè)置全局屏蔽寄存器,定義匹配字寬和輸出結(jié)果位寬;其次,要選擇數(shù)據(jù)表項的寫入模式,即快速寫入模式還是動態(tài)寫入模式;再次,要把用戶需要的數(shù)據(jù)項(共64位,包括匹配字節(jié)和與其對應(yīng)的輸出結(jié)果字節(jié))逐次裝入CAM表中。 CAM表數(shù)據(jù)項寫入模式的選擇,往往是在寫入速度和啟動匹配操作花費的時間中取個平衡,快速寫入模式,常用于將大量的數(shù)據(jù)項初始寫入CAM表中,而動態(tài)寫入模式,則常用于啟動匹配后往CAM表中插入少量的數(shù)據(jù)項。用戶通過操作控制口4個I/O寄存器來插入或刪除CAM表項,當(dāng)有異常狀態(tài)出現(xiàn)時,可以從標(biāo)志寄存器和錯誤代碼寄存器反應(yīng)出來,MCM69C232內(nèi)部的寄存器如圖2所示。 CAM表的匹配位取決于全局屏蔽寄存器的定義,屏蔽寄存器為0的位要求數(shù)據(jù)項的對應(yīng)位作匹配操作;為1,則對應(yīng)位無需匹配,典型的應(yīng)用中用戶總是把數(shù)據(jù)項的高位序位定義為"待匹配字節(jié)",低位序位定義為"結(jié)果輸出字節(jié)"。64位中的任何位都可以定義為"匹配操作",但實際上輸出到匹配口MQ0-MQ31總線上的總是最低32位數(shù)據(jù),并非可任意編程輸出的。如果設(shè)置的輸出結(jié)果字節(jié)超過32位,則是無意義的。 通常情況下,MCM69C232通過寫控制口數(shù)據(jù)和指令來準(zhǔn)備匹配操作,一般步驟是把數(shù)據(jù)項裝入4個I/O寄存器,然后往操作代碼寄存器寫入操作代碼,即可完成一種指令的操作,指令完成后CAM表的內(nèi)容可能會被修改,標(biāo)志寄存器的相應(yīng)位會被置位,錯誤代碼寄存器會返回錯誤碼,當(dāng)使能時,還會觸發(fā)中斷。 芯片的操作指令如表1所列。 |