新聞中心

EEPW首頁 > 元件/連接器 > 設計應用 > 內容可尋址存儲器MCM69C232及其應用

內容可尋址存儲器MCM69C232及其應用

——
作者:華中科技大學 楊黎明 時間:2007-01-26 來源:《單片機與嵌入式系統(tǒng)應用》 收藏

內容可尋址cam(content-addressable memory)是以內容進行尋址的,是一種特殊的存儲陣列ram,它的主要工作機制就是將一個輸入數據項與存儲在cam中的所有數據項自動同時進行比較,判別該輸入數據項與cam中存儲的數據項是否相匹配,并輸出該數據項對應的匹配信息,美國motorola公司的cam芯片mcm69c232在市場上是性價比較高的產品,因而被廣泛地應用于網絡通信,模式識別等領域,其用于數據檢索的優(yōu)勢是軟件無法比擬的,可以極大的提高系統(tǒng)性能。

1 mcm69c32芯片介紹

內容可尋址(cam)從本質上講是一種基于ram技術的特殊存儲器,數據項存儲在cam內部的陣列單元中,每個數據項中的位數稱為"字寬",陣列內所有數據項的條數稱為"深度",cam的容量通過字寬和深度來表征,mcm69c232設計可存儲4096條寬度為64位的數據項。

mcm69c232有兩組數據端口:控制端口(control port)和匹配端口(match port)??刂贫丝谟糜谔幚砥鳎╟pu)對cam表的操作,包括插入、刪除數據表項、模式設置和模擬匹配,以及讀取芯片內部狀態(tài)寄存器的信息等,數據項的檢索通過匹配端口完成。

本文引用地址:http://butianyuan.cn/article/21554.htm

盡管基于ram技術,但cam的存儲機制卻與ram大相徑庭,圖1為mcm69c232的結構框圖,圖中mcm69c232沒有用于確定內容存儲單元的地址總線,其地址線a0-a2用于對片內控制寄存器的尋址。處理器通過操作mcm69c232的控制端口(數據線dq0-dq15)可以讀/寫cam表中的數據項,數據項的存儲地址由芯片內部邏輯控制。mcm69c232有兩種工作模式:atm模式和基本模式。atm模式主要用于atm交換機對atm信元進行虛擬通路標識號/虛擬通道標識號(vpi/vci)的轉換處理,基本模式主要用于以太網上的ip/mac地址匹配等數據檢索。

mcm69c232芯片的主要特性如下:

160ns的匹配時間;

沒有屏蔽寄存器;

通過芯片級聯擴展深度;

時鐘頻率最高為50mhz;

匹配字寬和輸出結果位寬可自定義;

在atm模式下可進行vpc(virtual path circuits)和vcc(virtual connection circuits)的同時匹配;

端口主要分為控制和匹配端口;

200ns的插入時間(在12個端口數據項隊列未滿的情況下);

12ms的初始化時間(在設置了快速寫入模式后);

具有符合ieee標準1149.1的測試端口(jtag)。

2 mcm69c232芯片的使用

在基本操作模式下,mcm69c232的讀取輸入數據并與cam表中的所有表項相比較,無論匹配項找到與否,當比較完成后,mc(match complete)引腳均有效,如果找到了匹配項,則ms(match successful)引腳有效,同時在mq總線上輸出與匹配數據項相關的數據,如果沒有找到,則mq總線保持高阻態(tài),以便級聯cam芯片來擴展存儲深度。

mcm69c232上電后,默認工作模式為基本模式,在進入數據檢索操作之前,芯片必須先完成幾個啟動操作過程:首先,要設置全局屏蔽寄存器,定義匹配字寬和輸出結果位寬;其次,要選擇數據表項的寫入模式,即快速寫入模式還是動態(tài)寫入模式;再次,要把用戶需要的數據項(共64位,包括匹配字節(jié)和與其對應的輸出結果字節(jié))逐次裝入cam表中。

cam表數據項寫入模式的選擇,往往是在寫入速度和啟動匹配操作花費的時間中取個平衡,快速寫入模式,常用于將大量的數據項初始寫入cam表中,而動態(tài)寫入模式,則常用于啟動匹配后往cam表中插入少量的數據項。用戶通過操作控制口4個i/o寄存器來插入或刪除cam表項,當有異常狀態(tài)出現時,可以從標志寄存器和錯誤代碼寄存器反應出來,mcm69c232內部的寄存器如圖2所示。

mcm69c232芯片的主要特性如下:

160ns的匹配時間;

沒有屏蔽寄存器;

通過芯片級聯擴展深度;

時鐘頻率最高為50mhz;

匹配字寬和輸出結果位寬可自定義;

在atm模式下可進行vpc(virtual path circuits)和vcc(virtual connection circuits)的同時匹配;

端口主要分為控制和匹配端口;

200ns的插入時間(在12個端口數據項隊列未滿的情況下);

12ms的初始化時間(在設置了快速寫入模式后);

具有符合ieee標準1149.1的測試端口(jtag)。

2 mcm69c232芯片的使用

在基本操作模式下,mcm69c232的讀取輸入數據并與cam表中的所有表項相比較,無論匹配項找到與否,當比較完成后,mc(match complete)引腳均有效,如果找到了匹配項,則ms(match successful)引腳有效,同時在mq總線上輸出與匹配數據項相關的數據,如果沒有找到,則mq總線保持高阻態(tài),以便級聯cam芯片來擴展存儲深度。

mcm69c232上電后,默認工作模式為基本模式,在進入數據檢索操作之前,芯片必須先完成幾個啟動操作過程:首先,要設置全局屏蔽寄存器,定義匹配字寬和輸出結果位寬;其次,要選擇數據表項的寫入模式,即快速寫入模式還是動態(tài)寫入模式;再次,要把用戶需要的數據項(共64位,包括匹配字節(jié)和與其對應的輸出結果字節(jié))逐次裝入cam表中。

cam表數據項寫入模式的選擇,往往是在寫入速度和啟動匹配操作花費的時間中取個平衡,快速寫入模式,常用于將大量的數據項初始寫入cam表中,而動態(tài)寫入模式,則常用于啟動匹配后往cam表中插入少量的數據項。用戶通過操作控制口4個i/o寄存器來插入或刪除cam表項,當有異常狀態(tài)出現時,可以從標志寄存器和錯誤代碼寄存器反應出來,mcm69c232內部的寄存器如圖2所示。

cam表的匹配位取決于全局屏蔽寄存器的定義,屏蔽寄存器為0的位要求數據項的對應位作匹配操作;為1,則對應位無需匹配,典型的應用中用戶總是把數據項的高位序位定義為"待匹配字節(jié)",低位序位定義為"結果輸出字節(jié)"。64位中的任何位都可以定義為"匹配操作",但實際上輸出到匹配口mq0-mq31總線上的總是最低32位數據,并非可任意編程輸出的。如果設置的輸出結果字節(jié)超過32位,則是無意義的。

通常情況下,mcm69c232通過寫控制口數據和指令來準備匹配操作,一般步驟是把數據項裝入4個i/o寄存器,然后往操作代碼寄存器寫入操作代碼,即可完成一種指令的操作,指令完成后cam表的內容可能會被修改,標志寄存器的相應位會被置位,錯誤代碼寄存器會返回錯誤碼,當使能時,還會觸發(fā)中斷。

芯片的操作指令如表1所列。


復位。復位同步于主時鐘的上升沿,一個時鐘周期的復位就能清空cam表和輸入數據項隊列,置標志寄存器為1c,錯誤代碼寄存器為ffff,幾乎滿寄存器fff,并清除中斷屏蔽。

控制口時序,訪問控制口如同處理器訪問ram一樣,時序較為簡單。

匹配口時序,訪問匹配口分兩種情況:一種是匹配字節(jié)小于等于32位,只用lh/sm信號裝載匹配數據,ll信號無用,另一種是匹配字節(jié)大于32位,先用ll信號裝載匹配數據低位部分,再由lh/sm信號裝載高位部分,匹配結果由mc信號和ms信號指示,使能g信號讀取匹配結果數據,匹配口時序參見參考文獻[1]。

兩口同時匹配,控制口模擬匹配和匹配口匹配同時進行時,匹配口優(yōu)先權較高,另外控制口模擬匹配操作之前要求輸入隊列為空,以便接收結果。

深度擴展。芯片簡單級聯即可擴展深度,具體的擴展連接方法請參見參考文獻[1]。

3 mcm69c232芯片的應用

3.1 mcm69c232在交換機中的應用

在以太網上,交換機維護一張用于二層交換的地址表(通常稱為"cam表"),該表維護mac地址與出接口的對應關系,這樣每當接收到一個以太網數據幀,交換機就會進行判斷,如果該數據幀不是發(fā)送給自己的,則根據數據幀的目的mac地址查詢cam表,如果能命中(所謂命中,就是在cam表中找到與該mac地址對應的轉發(fā)項),則根據查詢的結果(通常是一個出接口列表)進行轉發(fā);如果不能命中,則向所有端口廣播該數據幀。

交換機的這張cam表可以通過多種方式獲得,比如靜態(tài)匹配、動態(tài)學習。針對多播,還可以通過各種多播協議(如igmp窺探、gmrp協議等方式)獲得(多播轉發(fā)表不能通過學習獲得,而且多播轉發(fā)項跟普通轉發(fā)項不同,與其對應的出口可能不只一個,而是一個出口集合);但對于單播,最重要的一種建立方式是動態(tài)學習。

當交換機接收到一個數據幀時,提取出該數據幀的目的mac地址,并以此為根據進行cam表查詢,如果能查找到結果,則根據結果進行數據幀的轉發(fā),如果不能命中,則對除接收端口外的所有端口進行復制。在進行數據轉發(fā)的同時,交換機還進行一個學習的過程,它把數據幀的源mac地址提取出來,查詢cam表,看cam表中是否有針對該mac地址的轉發(fā)項,如果沒有,則把該mac地址和接收到該mac地址的端口綁定起來,插入cam表項,這樣當接收到一個發(fā)送到該mac地址的數據幀時,就不需要向所有端口廣播,而僅向這個端口發(fā)送即可,需要注意的是,數據幀的轉發(fā)是依據目的mac地址查詢mac表,而cam表的學習則是以源mac地址為依據的。

之所以在交換機中使用cam,是因為交換機對性能要求特別高, 交換機中的嵌入式實時控制系統(tǒng)的性能主要取決于兩方面:硬件平臺的運算性能和算法優(yōu)越性,其中,硬件平臺的運算性能最為關鍵,這一點在交換機中表現的尤為突出,按照設計要求,以太網幀的mac地址的檢索時間一般都是μs級,因此首先要保證數據檢索任務的響應速度;除了十分繁重的數據檢索任務外,交換機還必須完成snmp(simple network management protocol)協議處理、命令行處理等任務,所以還必須解決數據檢索對系統(tǒng)資源的占用問題,利用軟件實現對以太網幀的mac地址檢索并不復雜,但由于檢索次數頻繁,大量的系統(tǒng)資源被占用,致使系統(tǒng)的響應速度大大降低,滿足不了大流量數據通信的要求,因此純軟件算法解決不了數據檢索部分占用大量資源的問題,為提高系統(tǒng)的響應速度,必須將數據檢索的任務分離出來由硬件實現,而協議處理部分仍由cpu完成,數據檢索模塊和協議處理模塊并行工作,利用硬件實現數據檢索還可以提高檢索速度,降低系統(tǒng)資源的占用率。在這里cam的優(yōu)勢就體現出來了。


3.2 檢索操作

當進行mac地址檢索時,cpu首先以mac地址為關鍵字通過mac-cam表的檢索得到對應的索引值,然后再根據索引值找到ram表中該mac地址對應的相關信息的存儲位置,并也此地址獲得相關配置信息,在ram中的相關配置中可以存放諸如mac地址、用戶端口、有效標志域等其他信息。cam表示ram的映射關系如圖3所示。

按協議規(guī)定mac地址占48位,表示為6字節(jié)的數組,故對于mac地址的匹配操作,屏蔽字設為0x0000_0000_0000_ffff,即48位匹配,屏蔽字的設定必須在cam初始化時完成,在執(zhí)行匹配操作前,cam須進行初始化,mcm69c232上電后,默認工作模式為基本模式,因此不必再設置工作模式,前面已提到過,cam中mac表的形成是通過自學習得到的,因此無需向cam表中寫入數據項。

匹配操作通過對匹配口讀/寫來完成,匹配口數據線mq只有32位,由于mac地址占48位,因此需要兩次寫操作才能完整地將一個mac地址表達出來,當進行mac地址檢索時,cpu先向匹配口寫入mac地址的低32位數據,其中高16位有效,低16位可以為任意值;緊接著cpu向匹配口寫入高32位數據,隨后cpu讀匹配口,即可得到匹配結果。

結語

采用內容可尋址存儲器mcm69c232,極大的提高了數據檢索速度,而這是用純軟件緊縮算法所不能比擬的,設備的數據處理能夠滿足了大流量網絡通信的要求,使產品獲得了良好的社會效益和經濟效益。




關鍵詞: 存儲器

評論


相關推薦

技術專區(qū)

關閉