TWI393138B - Content addressable memory - Google Patents

Content addressable memory Download PDF

Info

Publication number
TWI393138B
TWI393138B TW098101511A TW98101511A TWI393138B TW I393138 B TWI393138 B TW I393138B TW 098101511 A TW098101511 A TW 098101511A TW 98101511 A TW98101511 A TW 98101511A TW I393138 B TWI393138 B TW I393138B
Authority
TW
Taiwan
Prior art keywords
input
data
coupled
output
content
Prior art date
Application number
TW098101511A
Other languages
English (en)
Other versions
TW201029008A (en
Original Assignee
Univ Nat Taiwan
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Univ Nat Taiwan filed Critical Univ Nat Taiwan
Priority to TW098101511A priority Critical patent/TWI393138B/zh
Priority to US12/421,183 priority patent/US7952902B2/en
Publication of TW201029008A publication Critical patent/TW201029008A/zh
Application granted granted Critical
Publication of TWI393138B publication Critical patent/TWI393138B/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C15/00Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
    • G11C15/04Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements

Landscapes

  • Logic Circuits (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

內容定址記憶體
本發明係一種內容定址記憶體,尤其是指一種可接受任意長度的樣式字串的內容定址記憶體。
內容定址記憶體(Content Addressable Memory,以下簡稱CAM)可用於許多不同之應用,例如常用於網路入侵偵測系統中,用以比對封包中之內容,過濾出可疑之封包。然而習知的CAM只能比對固定長度的樣式(pattern)字串,相對地,入侵偵測系統中的樣式字串的長度是可變的。
請參照圖1,其繪示習知CAM的方塊示意圖。如圖所示,習知之內容定址記憶體300包括一儲存表310、一搜尋字元暫存器320以及一編碼器(encoder)330。其中,輸入的搜尋字元(search word)被暫存在該搜尋字元暫存器320中,與儲存在該儲存表310的樣式字串(pattern string)0~n比對。一個樣式字串的長度由32~144位元(4 to 18 bytes)。
而典型的CAM的儲存表310可以有數百到32K的項目,其對應的位址線由7位元(bit)至15位元。每一儲存的字元有一個對應的符合線(match-line),用以指示搜尋字元與儲存的樣式字串是否符合(match case或mismatch case,miss)。符合線的輸出至該編碼器330,由信號M_RES輸出二進位的符合位址,對應於符合狀態的符合線。
因為在內容定址記憶體300中,可能會有多個字元符合,所以該編碼器330一般是使用優先編碼器(priority encoder),而非一般單純的編碼器。優先編碼器會選擇最高優先的符合位址來映對到符合結果,通常較低位址的字元具有較高的優先。此外,該編碼器330的輸出信號命中(HIT)用來指示是否有符合的情形。基本上來說,內容定址記憶體300的功能就是接受搜尋字元,然後回傳符合的記憶體位址。可以把內容定址記憶體300視為一個可程式化裝置,將輸入的大空間(large space)的搜尋字元映對至小空間(small space)的輸出符合位址。
習知的內容定址記憶體300,其儲存表310只能儲存固定長度的樣式字串,如36位元至144位元,而在實際應用中,樣式字串的長度通常是不同的,當儲存較短的樣式字串時,剩下的空間會被浪費,相反的,超過儲存表310寬度的樣式字串將會被截斷。因此,習知的內容定址記憶體300的缺點為:1.浪費硬體空間;以及2.無法比對長度較長的樣式字串。
本發明的目的在於提供一種內容定址記憶體,其可接受任意長度的樣式字串的內容定址記憶體。
本發明的另一目的在於提供一種內容定址記憶體,其可以有效利用內容定址記憶體空間之結構。
為了達到上述目的,本發明之內容定址記憶體,可接受一輸入資料、一樣式資料及一資料時脈信號,並輸出一命中信號及一位址信號,其包括:複數個內容定址記憶單元,每一內容定址記憶單元接受該輸入資料、該資料時脈信號且彼此串接,並輸出一比對結果信號;以及一編碼器,分別耦接至該等內容定址記憶單元之比對結果信號,且可根據該等比對結果信號輸出一命中信號及一記憶體位址信號;俾藉由該等內容定址記憶單元之彼此串接,而使該樣式資料之長度為可變的。
為了達到上述目的,本發明之內容定址記憶體,可接受一輸入資料、一樣式資料及一資料時脈信號,並輸出一命中信號及一位址信號,其包括:複數個內容定址記憶單元,每一內容定址記憶單元接受該輸入資料、該資料時脈信號且彼此串接,並輸出一比對結果信號,且每一個內容定址記憶單元進一步包括:一第一暫存器,用以儲存該內容定址記憶單元之一設定資料;複數個儲存及比較模組,其中,第一個儲存及比較模組係耦接至該第一暫存器之輸出端,每一該儲存及比較模組用以儲存一樣式資料,且將該樣式字元與該輸入資料比較後可輸出一比較結果;一第一多工器,其一輸入端耦接至該第一暫存器之資料輸出端,另一輸入端則耦接至一進位輸入信號,其選擇輸入端則耦接至一串接控制輸入信號;複數個及閘,每一儲存及比較模組之一比較結果輸出端分別耦接至其中一及閘之一輸入端,第一個及閘之另一輸入端則耦接至該第一多工器之輸出端;複數個正反器,每一正反器之資料輸入端分別耦接至其中一及閘之輸出端,每一正反器之資料輸出端則分別耦接至其中一及閘之另一輸入端,且每一正反器係經由該及閘彼此串接;以及一第二多工器,其具有一選擇輸入端及複數個輸入端,該選擇輸入端耦接至該串接輸出信號,每一輸入端則分別耦接至其中一正反器之資料輸出端;以及一編碼器,分別耦接至該等內容定址記憶單元之比對結果信號,且可根據該等比對結果信號輸出一命中信號及一記憶體位址信號;俾藉由該等內容定址記憶單元之彼此串接,而使該樣式資料之長度為可變的。
為使 貴審查委員能進一步瞭解本發明之結構、特徵及其目的,茲附以圖式及較佳具體實施例之詳細說明如後。
請參照圖2,其繪示本發明一較佳實施例之內容定址記憶體之方塊示意圖。
如圖所示,本發明之內容定址記憶體1,可接受一輸入資料(DATA_IN)、一樣式資料(PATN_IN)及一資料時脈信號(D_CLK),並輸出一命中信號(HIT)及一位址信號(M_RES),其包括:複數個內容定址記憶單元10~12;以及一編碼器20。
其中,該等內容定址記憶單元10~12中每一內容定址記憶單元可接受該輸入資料、該資料時脈信號且藉由其串接輸入(CAS_IN)及串接輸出信號(CAS_OUT)彼此連接,以達到將該等內容定址記憶單元10~12彼此串接之目的,且每一內容定址記憶單元10~12可輸出一比對結果信號(M_OUT)。本發明之內容定址記憶單元10~12之數量可依之需要而改變,在本實施例中係以三個為例加以說明,但並不以此為限。
該編碼器20分別耦接至該等內容定址記憶單元10~12之比對結果信號(M_OUT),且可根據該等比對結果信號輸出該命中信號(HIT)及該記憶體位址信號(M_RES),如上所述,該記憶體位址信號(M_RES)可輸出二進位的符合位址,以指示對應於符合狀態的位址線。其中,該編碼器20例如但不限於為優先編碼器,優先編碼器會選擇最高優先的符合位址來映對到符合結果,通常較低位址的字元具有較高的優先。
如圖2所示,內容定址記憶單元10~12接受輸入資料(DATA_IN)及資料時脈信號(D_CLK),輸出命中信號(HIT)及位址信號(M_RES),該輸入資料(DATA_IN)配合該資料時脈信號(D_CLK),每一個時脈(clock)輸入一個字元(character)。當輸入資料(DATA_IN)與內容定址記憶單元10~12儲存的樣式資料符合時,該命中信號(HIT)會輸出為真(true),且該位址信號(M_RES)會輸出對應的符合位址。
每一內容定址記憶單元10~12接受該輸入資料(DATA_IN)、資料時脈信號(D_CLK)、進位輸入信號(C_IN)及串接輸入信號(CAS_IN),輸出進位輸出信(號C_OUT)及比對結果信號(M_OUT),該比對結果信號(M_OUT)被送至該編碼器20,該編碼器20依據比對結果及優先次序,送出比對結果(M_RES)及命中信號(HIT)。
在此實施例中,該位址信號(M_RES)的寬度為8位元,故其可對應於256個內容定址記憶單元,其輸出由0變化至255,而圖2中的n即為255(因為28 =256)。然而,可依據實際的內容定址記憶單元的數目,決定位址信號(M_RES)的寬度,例如當位址信號 (M_RES)的寬度為15位元時,可對應於32K的內容定址記憶單元。
如圖2所示,第一內容定址記憶單元10的進位輸出信號(C_OUT)及串接輸出信號(CAS_OUT)與後一級內容定址記憶單元11的信號進位輸入信號(C_IN)及串接輸入信號(CAS_IN)為互相串接的。透過串接控制(cascade control)信號(CAS_IN)及(CAS_OUT),以及進位輸入信號(C_IN)及進位輸出信號(C_OUT)傳遞狀態資料,可以將複數個相連之內容定址記憶單元10~12在功能上串接成可以比對任意長度的樣式字串。例如,當一個內容定址記憶單元10可以比對8個字元長度的樣式字串,則兩個內容定址記憶單元10、11串接後,可以比對16個字元長度的樣式字串,更多的內容定址記憶單元10~12串接後,則可比對更長的樣式字串。
在此實施例中,為了設定內容定址記憶單元10~12之設定資料,每一內容定址記憶單元10~12更包括PAT_IN輸入、P_ST輸入及PAT_OUT輸出,用以供設定內容定址記憶單元10~12的設定資料,其設定資料可以包括樣式資料、樣式資料的長度、致能控制(enable control)及串接控制。內容定址記憶單元10的PAT_IN及P_ST輸入可接受設定資料PATN_IN及設定控制信號PT_ST,設定資料PATN_IN配合設定控制信號PT_ST,將設定資料存入內容定址記憶單元10單元中,例如,以邊緣觸發(edge trigger)的暫存器(register)來儲存設定資料及樣式資料時,在設定控制信號PT_ST的上升緣(rising edge)或下降緣(falling edge)時會將設定資料PATN_IN送入的資料閂鎖至暫存器中。內容定址記憶單元10的輸出PAT_OUT可用以將設定資料送至後一級內容定址記憶單元11,藉以提供以串列方式來設定每一內容定址記憶單元10~12的設定資料。
在此實施例中,每一內容定址記憶單元10~12的輸入PAT_IN及輸出PAT_OUT為互相串接的,可以配合信號PT_ST以串列輸入的方式來設定各個內容定址記憶單元10~12的資料。然而,亦可 視需要,設計不同的資料設定機構,此為熟習相關技藝者所能輕易達成的。
請參照圖3,其繪示本發明一較佳實施例之內容定址記憶體之細部方塊示意圖。如圖所示,本發明之內容定址記憶單元10~12中之每一個內容定址記憶單元(在本實施例中係以內容定址記憶單元10為例加以說明,但並不以此為限,且每一內容定址記憶單元10~12具有相同之結構),其進一步包括:一第一暫存器101;複數個儲存及比較模組110~117;一第一多工器120;複數個及閘130~137;複數個正反器140~147;以及一第二多工器150。
其中,該第一暫存器101為多位元的暫存器,例如但不限於為8位元的暫存器,用以儲存該內容定址記憶單元10之一設定資料,且該設定資料包括例如但不限於一長度資料、一單元致能資料及一串接控制資料。該控制資料的規劃可以如下,例如第0~2位元為該內容定址記憶單元10的樣式字串長度,第6位元為串接控制信號(CAS_OUT),第7位元為致能控制信號EN。當然,可以視需要規劃不同的資料配置方式。在此實施例中,一個內容定址記憶單元10具有8個儲存及比較模組,亦即可以比對8個位元組(byte)的樣式字串,但實際設計時可依實際的需求,決定每一個內容定址記憶單元10能夠比對的樣式字串長度。
該複數個儲存及比較模組110~117,其中,第一個儲存及比較模組110係耦接至該第一暫存器101之輸出端,每一該儲存及比較模組110~117用以儲存一樣式資料(pattern data),且將該樣式資料與該輸入資料(DAT_IN)比較後可輸出一比較結果(EQ)。在此實施例中,一個內容定址記憶單元10具有8個儲存及比較模組110~117,亦即可以比對8個位元組(byte)的樣式字串,但實際實施時,可依實際的需求,決定每一個內容定址記憶單元10能夠比對的樣式字串長度。
該儲存及比較模組110~117具有儲存及比較的功能,儲存的 功能係用以儲存樣式資料,而比較的功能係用以比較儲存的樣式資料與由資料輸入(DAT_IN)輸入的字元資料,且由輸出比較結果。當輸入的字元資料符合(match)儲存的樣式資料,則比較結果(EQ)為真(true)。於設定該內容定址記憶單元10~12時,設定資料由PAT_IN輸入且與信號P_ST同步,將資料以串列的方式儲存至儲存及比較模組110~117及暫存器101。儲存及比較模組110~117的輸入PI及輸出PO,係供以例如但不限於為串列方式設定儲存及比較該儲存及比較模組110~117中的樣式資料,但並不以此為限,設定儲存及比較模組110~117中的樣式資料,亦可視需要,設計不同的資料設定機構,此為熟習相關技藝者所能輕易達成的,在此不擬重複贅述。
該第一多工器120之一輸入端耦接至該第一暫存器101之資料輸出端,另一輸入端則耦接至一進位輸入信號(C_IN),其選擇輸入端則耦接至該串接控制輸入信號(CAS_IN)。
該第一多工器120係接受由串接輸入信號(CAS_IN)的控制,選擇信號EN或進位輸入信號(C_IN),輸出至及閘130。當該多工器120選擇將信號EN輸出至該及閘130時,信號EN用來決定該內容定址記憶單元10是否被致能,在此實施例中,當信號EN為’1’時,該內容定址記憶單元10被致能,而信號EN為’0’時,該內容定址記憶單元10則被禁能。當該內容定址記憶單元10被致能時,則其將進行字串比對的功能,當該內容定址記憶單元10被禁能(DISABLE)時,則其不具字串比對的功能。當該第一多工器120選擇將進位輸入信號(C_IN)輸至及閘130時,則該內容定址記憶單元10為與前一級的內容定址記憶單元互相串接。
該複數個及閘130~137,每一儲存及比較模組110~117之一比較結果輸出端分別耦接至其中一及閘130~137之一輸入端,第一個及閘130之另一輸入端則耦接至該第一多工器120之輸出端。
複數個正反器140~147,每一正反器140~147之資料輸入端 分別耦接至其中一及閘130~137之輸出端,每一正反器140~147之資料輸出端則分別耦接至其中一及閘130~137之另一輸入端,且每一正反器140~147係經由該及閘130~137彼此串接。其中,該正反器140~147例如但不限於為D型正反器。在本實施例中,該複數個儲存及比較模組110~117、及閘130~137及正反器140~147之數量例如但不限於為2的倍數。
該等正反器140~147連接成串接的形式,係用以存放目前比對的狀態,並且由及閘130~137控制前一級正反器的狀態是否傳送至次一級正反器。當依據串接輸入信號(CAS_IN)的控制,該第一多工器120選擇將信號EN送至及閘130時,則正反器140的狀態係依據儲存及比較模組110的輸出信號EQ及信號EN決定。當依據串接輸入信號(CAS_IN)的控制,該第一多工器120選擇將進位輸入信號(C_IN)送至及閘130時,則正反器140的資料輸入(D)係依據儲存及比較模組110的輸出信號EQ及進位輸入信號(C_IN)來決定,該進位輸入信號(C_IN)連接至前一級內容定址記憶單元的進位輸出信號(C_OUT),即其最後比對結果,故能藉此達到與前一級內容定址記憶單元串接的效果。該等正反器140~147的狀態係分別依據對應的儲存及比較模組110~117的輸出信號(EQ)及對應的前面的正反器140~147的狀態來決定。正反器140的狀態輸出至進位輸出信號(C_OUT)。正反器140~147的輸入(CLR)係用以清除正反器140~147之狀態,在開始進行資料比對之前,應先清除正反器140~147的狀態。
該第二多工器150具有一選擇輸入端(SEL)及複數個輸入端,該選擇輸入端(SEL)耦接至該串接輸出信號(CAS_OUT),每一輸入端則分別耦接至其中一正反器140~147之資料輸出端(S0~S7)。該第二多工器150係依據該第一暫存器101儲存的設定資料,例如設定資料的第0~2位元,選擇該正反器140~147之S0~S7之中的一個的輸出,當作該內容定址記憶單元10的比對結果。串接輸 出信號(CAS_OUT)用以控制該內容定址記憶單元10後一級內容定址記憶單元11的串接功能。當依據串接輸出信號(CAS_OUT)決定要與後一級內容定址記憶單元11形成串接時,則該內容定址記憶單元10不輸出信號(M_OUT)。在此實施例中,該內容定址記憶單元10中能夠比較8個樣式字元,然而,可以依據實際需要決定該內容定址記憶單元10能夠處理的樣式字元的個數。
請參照圖4,其繪示本發明之儲存及比較模組之細部示意圖。如圖所示,本發明之每一個儲存及比較模組(在本實施例中係以儲存及比較模組110為例加以說明,但並不以此為限,且每一儲存及比較模組110~117具有相同之結構),其進一步包括:一第二暫存器1101;以及一比較器1102。
其中,該第二暫存器1101之輸入端耦接至一樣式資料輸入端(PI),其輸出端輸出一樣式資料輸出(PO),用以儲存樣式字元。
該比較器1102之第一輸入端耦接至該樣式資料輸出(PO),第二輸入端則耦接至該資料輸入(PI),並於比較後輸出該比較結果,當樣式字元與輸入字元一樣時,則該比較結果(EQ)為真(true)。
請參照圖5,其繪示本發明另一較佳實施例之儲存及比較模組之細部示意圖。如圖所示,本發明另一較佳實施例之儲存及比較模組(在本實施例中係以儲存及比較模組110為例加以說明,但並不以此為限,且每一儲存及比較模組110~117具有相同之結構),其進一步包括:一第三暫存器1103;一第四暫存器1104;以及一三元比較器1105。
其中,該第三暫存器1103之輸入端耦接至一樣式資料輸入端(PI),其輸出端輸出一樣式資料輸出(PO),用以儲存樣式字元。
該第四暫存器1104之輸入端耦接至該第三暫存器1103之樣式資料輸出(PO),其輸出端輸出一樣式資料輸出(PO),用以儲存三元遮罩(ternary mask)的資料。
該三元比較器1105之第一輸入端耦接至該第三暫存器1103之樣式資料輸出(PO),第二輸入端則耦接至該資料輸入(PI),其三元控制端(T)則耦接至該第四暫存器1104之樣式資料輸出(PO),並於比較後輸出該比較結果(EQ)。
該比較器1105係三元比較器,該第三暫存器1103中儲存的樣式資料送至被該三元比較器1105的輸入A,該第四暫存器1104中儲存的三元遮罩資料被送至該三元比較器1105的輸入T,輸入的字元資料DI則送至該三元比較器1105的輸入B,該三元比較器1105根據接收到的樣式字元及三元遮罩,與輸入的字元資料DI比較,再由輸出E輸出比較結果(EQ)。例如,當樣式字元為’a’(61h),且該三元遮罩資料為’DFh’(二進位的"1101|1111"),表示不比較第5個位元的值,則輸入的字元資料為大寫的’A’(41h)或小寫的’a’(61h)時,該比較器1105的比較結果(EQ)皆為真(true)。藉由提供此種架構的儲存及比較模組,可以實現三元內容定址記憶體(Ternary Content Addressable Memory,簡稱TCAM)的功能。在本實施例中,並未詳細說明三元比較器的實施細節,惟此乃習知技術,故在此不擬重複贅述。
本發明之儲存及比較模組110~117可以Xilinx公司的FPGA的SRL16E(16-Bit Shift Register Look-Up-Table(LUT)with Clock Enable)實施,請參照圖6,其繪示Xilinx公司的FPGA的SRL16E之示意圖。如其功能表所示,當SRL16E 1106的輸入CE為’1’時,其功能為位移暫存器,位移暫存器的長度則由輸入A0~A3決定。當SRL16E 1106的輸入CE為’0’時,則其功能為由輸入A0~A3決定暫存器的內容。依據SRL16E 1106的功能,可以用來達到本發明之儲存及比較模組110的功能。例如,要比較的樣式資料為十六進位的0x4時,則其內部的16個暫存器的內容為"0000|0000|0001|0000",注意,其中’|’符號只是助於閱讀,並非資料的一部分。可以利用其位移暫存器的功能,即將輸入CE設 為’1’,將對應的內容移送至對應的暫存器,再將輸入CE設為’0’,即可達到比較器功能。以前面的0x4為例,當輸入A0~A3為"0100"時,輸出Q會為’1’,而在其餘的狀況則會為’0’。
請參照圖7,其繪示本發明可用SRL16E來達成儲存及比較的功能之示意圖。如圖所示,本發明亦可以Xilinx公司的FPGA的SRL16E來達成儲存及比較的功能。如圖所示,該儲存及比較模組110包括SRL16E 1107及1108及及閘1109,其中SRL16E 1107及1108用來達成儲存及比較的功能。例如,要比較的樣式字元為’A’及’a’時,其ASCII碼分別為0x41及0x61。使用兩個SRL16E來實作,將輸入CE改變為’1’,且輸入A0~A3的值為"1111",即設定位移暫存器的長度為16,再從輸入D送入設定資料,配合改變輸入CLK,可以將設定資料存入SRL16E的暫存器中。其中用來比對MSB的0x4及0x6的SRL16E的暫存器被設定為"0000|0000|0101|0000",而用來比對LSB的0x1的SRL16E的暫存器被設定為"0000|0000|0000|0010"。將輸入CE改變為’0’,則SRL16E的功能將是比較器,例如比對MSB的SRL16E,只有在輸入A0~A3的值為0x4或0x6時,輸出Q的值才會為’1’,在其它的狀況時為’0’。
請參照圖8,其繪示本發明之具有三元遮罩功能的內容定址記憶單元之輸入字串比對的波形之示意圖。如圖所示,其中S0~S7分別代表儲存及比較模組110中的正反器140~147的輸出。假設本發明之具有三元遮罩功能的內容定址記憶單元10要比對的樣式字串為“authorization”。在設定該內容定址記憶單元10的樣式字串資料時,將樣式字串的第一個字元的遮罩設為(DFH),使得其可接受大寫的’A’(41H)或小寫的’a’(61H),因此雖然樣式字串的第一個字元為’a’,但是在輸入字元為’A’時,一樣會使暫存器S0變為’1’。所以藉由此設定,在輸入字串為“authorization”或“Authorization”時,皆會輸出符合的比對結果。
經由上述本發明提出的內容定址記憶體,藉由設定其中個別內容定址記憶單元的設定資料,可以決定個別內容定址記憶單元的比對樣式字串的長度,亦可將複數個內容定址記憶單元形成串接的形式,藉以比對更長的樣式資料,因此本發明提出的內容定址記憶體可以接受任意長度的樣式字串,其較習知技術之內容定址記憶體具有進步性。
本案所揭示者,乃較佳實施例之一種,舉凡局部之變更或修飾而源於本案之技術思想而為熟習該項技藝之人所易於推知者,俱不脫本案之專利權範疇。
綜上所陳,本案無論就目的、手段與功效,在在顯示其迥異於習知之技術特徵,且其首先發明合於實用,亦在在符合發明之專利要件,懇請 貴審查委員明察,並祈早日賜予專利,俾嘉惠社會,實感德便。
1...內容定址記憶體
10~12...內容定址記憶單元
20...編碼器
1101...第二暫存器
1102...比較器
1103...第三暫存器
1104...第四暫存器
1105...三元比較器
1106...SRL16E
1107及1108...SRL16E
1109...及閘
101...第一暫存器
110~117...儲存及比較模組
130~137...第一多工器120及閘
140~147...正反器
150...第二多工器
300...內容定址記憶體
310...儲存表
320...搜尋字元暫存器
330...編碼器
圖1為一示意圖,其繪示習知CAM的方塊示意圖。
圖2為一示意圖,其繪示本發明一較佳實施例之內容定址記憶體之方塊示意圖。
圖3為一示意圖,其繪示本發明一較佳實施例之內容定址記憶體之細部方塊示意圖。
圖4為一示意圖,其繪示本發明之儲存及比較模組之細部示意圖。
圖5為一示意圖,其繪示本發明另一較佳實施例之儲存及比較模組之細部示意圖。
圖6為一示意圖,其繪示Xilinx公司的FPGA的SRL16E之示意圖。
圖7為一示意圖,其繪示本發明可用SRL16E來達成儲存及比較的功能之示意圖。
圖8為一示意圖,其繪示本發明之具有三元遮罩功能的內容定址記憶單元之輸入字串比對的波形之示意圖。
10~12‧‧‧內容定址記憶單元
20‧‧‧編碼器

Claims (8)

  1. 一種內容定址記憶體,可接受一輸入資料、一樣式資料及一資料時脈信號,並輸出一命中信號及一記憶體位址信號,其包括:複數個內容定址記憶單元,各所述內容定址記憶單元接受該輸入資料、該資料時脈信號且彼此串接,並輸出一比對結果信號;以及一編碼器,分別耦接至該等內容定址記憶單元之所述比對結果信號,且可根據該等比對結果信號輸出該命中信號及該記憶體位址信號;俾藉由該等內容定址記憶單元之彼此串接,而使該樣式資料之長度為可變的,其中各所述內容定址記憶單元進一步包括:一第一暫存器,用以儲存該內容定址記憶單元之一設定資料;複數個儲存及比較模組,其中,第一個所述儲存及比較模組係耦接至該第一暫存器之輸出端,每一該儲存及比較模組用以儲存一所述樣式資料,及將其與該輸入資料比較後輸出一比較結果;一第一多工器,其一輸入端耦接至該第一暫存器之所述輸出端,另一輸入端則耦接至一進位輸入信號,其選擇輸入端則耦接至一串接控制輸入信號;複數個及閘,各具有一第一輸入端及一第二輸入端,每一儲存及比較模組之一比較結果輸出端分別耦接至一所述及閘之所述第一輸入端,第一個所述及閘之所述第二輸入端則耦接至該第一多工器之輸出端;複數個正反器,各所述正反器之資料輸入端分別耦接至一所述及閘之輸出端,各所述正反器之資料輸出端則分別耦接至一所述及閘之所述第二輸入端,且任二相鄰之所述正反器係經由一所述及閘彼此串接;以及 一第二多工器,其具有一選擇輸入端及複數個輸入端,該選擇輸入端耦接至該第一暫存器所輸出之一長度資料信號,各所述輸入端則分別耦接至一所述正反器之所述資料輸出端。
  2. 如申請專利範圍第1項所述之內容定址記憶體,其中該設定資料包括一長度資料、一單元致能資料及一串接控制資料。
  3. 如申請專利範圍第1項所述之內容定址記憶體,其中該複數個儲存及比較模組、及閘及正反器之數量為2的倍數。
  4. 如申請專利範圍第1項所述之內容定址記憶體,其中該正反器為D型正反器。
  5. 如申請專利範圍第1項所述之內容定址記憶體,其中該儲存及比較模組進一步具有:一第二暫存器,其輸入端耦接至一樣式資料輸入端,其輸出端輸出一樣式資料輸出;以及一比較器,其第一輸入端耦接至該樣式資料輸出,第二輸入端則耦接至該輸入資料,並於比較後輸出該比較結果。
  6. 如申請專利範圍第1項所述之內容定址記憶體,其中該儲存及比較模組進一步具有:一第三暫存器,其輸入端耦接至一樣式資料輸入端,其輸出端輸出一第一樣式資料輸出;一第四暫存器,其輸入端耦接至該第三暫存器之所述第一樣式資料輸出,其輸出端輸出一第二樣式資料輸出;以及一三元比較器,其第一輸入端耦接至該第三暫存器之所述第一樣式資料輸出,第二輸入端則耦接至該輸入資料,三元控制端則耦接至該第四暫存器之所述第二樣式資料輸出,並於比較後輸出該比較結果。
  7. 如申請專利範圍第1項所述之內容定址記憶體,其中該儲存及比較模組可以可程式邏輯閘陣列裝置(FPGA)實施。
  8. 如申請專利範圍第1項所述之內容定址記憶體,其中該編 碼器為優先編碼器。
TW098101511A 2009-01-16 2009-01-16 Content addressable memory TWI393138B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW098101511A TWI393138B (zh) 2009-01-16 2009-01-16 Content addressable memory
US12/421,183 US7952902B2 (en) 2009-01-16 2009-04-09 Content addressable memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW098101511A TWI393138B (zh) 2009-01-16 2009-01-16 Content addressable memory

Publications (2)

Publication Number Publication Date
TW201029008A TW201029008A (en) 2010-08-01
TWI393138B true TWI393138B (zh) 2013-04-11

Family

ID=42336834

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098101511A TWI393138B (zh) 2009-01-16 2009-01-16 Content addressable memory

Country Status (2)

Country Link
US (1) US7952902B2 (zh)
TW (1) TWI393138B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI417784B (zh) * 2010-08-03 2013-12-01 Univ Nat Taiwan 平行多字元字串比對裝置
US9792988B2 (en) 2014-08-12 2017-10-17 Ciena Corporation Parallel turbine ternary content addressable memory for high-speed applications
US10068645B2 (en) * 2016-05-31 2018-09-04 Qualcomm Incorporated Multiple cycle search content addressable memory

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW457423B (en) * 1997-10-30 2001-10-01 Netlogic Microsystems Inc Method and apparatus for cascading content addressable memory devices
US6493793B1 (en) * 2000-06-16 2002-12-10 Netlogic Microsystems, Inc. Content addressable memory device having selective cascade logic and method for selectively combining match information in a CAM device
US6553453B1 (en) * 1999-09-10 2003-04-22 Sibercore Technologies, Inc. Variable width content addressable memory device for searching variable width data
US20040001380A1 (en) * 2002-06-28 2004-01-01 Oswald Becca Method and apparatus for interconnecting content addressable memory devices
TWI227892B (en) * 2001-06-11 2005-02-11 Ibm Content addressable memory having cascaded sub-entry architecture
US7389377B2 (en) * 2005-06-22 2008-06-17 Netlogic Microsystems, Inc. Access control list processor

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW457423B (en) * 1997-10-30 2001-10-01 Netlogic Microsystems Inc Method and apparatus for cascading content addressable memory devices
US6553453B1 (en) * 1999-09-10 2003-04-22 Sibercore Technologies, Inc. Variable width content addressable memory device for searching variable width data
US6493793B1 (en) * 2000-06-16 2002-12-10 Netlogic Microsystems, Inc. Content addressable memory device having selective cascade logic and method for selectively combining match information in a CAM device
TWI227892B (en) * 2001-06-11 2005-02-11 Ibm Content addressable memory having cascaded sub-entry architecture
US20040001380A1 (en) * 2002-06-28 2004-01-01 Oswald Becca Method and apparatus for interconnecting content addressable memory devices
US7389377B2 (en) * 2005-06-22 2008-06-17 Netlogic Microsystems, Inc. Access control list processor

Also Published As

Publication number Publication date
US7952902B2 (en) 2011-05-31
TW201029008A (en) 2010-08-01
US20100182815A1 (en) 2010-07-22

Similar Documents

Publication Publication Date Title
US6502163B1 (en) Method and apparatus for ordering entries in a ternary content addressable memory
US6253280B1 (en) Programmable multiple word width CAM architecture
US9280609B2 (en) Exact match lookup scheme
US6246601B1 (en) Method and apparatus for using an inter-row configurable content addressable memory
US8199652B2 (en) IP address lookup method and apparatus by using Bloom filter and multi-hashing architecture
TWI512755B (zh) 存取記憶體之方法及系統
US6252789B1 (en) Inter-row configurability of content addressable memory
US5548775A (en) System and method for adaptive active monitoring of high speed data streams using finite state machines
US7694068B1 (en) Re-entrant processing in a content addressable memory
US20140317134A1 (en) Multi-stage parallel multi-character string matching device
CN111694545A (zh) 随机数产生器
TWI393138B (zh) Content addressable memory
US6954823B1 (en) Search engine device and method for generating output search responses from multiple input search responses
US9685979B2 (en) Circuitry and method for generating cyclic redundancy check signatures
US6671771B2 (en) Hash CAM having a reduced width comparison circuitry and its application
US4755969A (en) Pseudo random sequence generation
US6438674B1 (en) Hash Cam having a reduced size memory array and its application
WO2024066561A1 (zh) 查找空闲存储的装置、方法及芯片
US6904116B2 (en) Shift register
JP6219631B2 (ja) 論理演算装置
US8463988B2 (en) System and method for matching patterns
JP2004526272A (ja) 最長一致を検出するメモリ・システム
Pnevmatikatos et al. Variable-length hashing for exact pattern matching
JP2004526274A (ja) 異なるサイズのワードの検索
KR100205351B1 (ko) 반도체 기억 장치의 주소 정렬 장치

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees