TW577079B - Circuit and method for performing variable width searches in a content addressable memory - Google Patents

Circuit and method for performing variable width searches in a content addressable memory Download PDF

Info

Publication number
TW577079B
TW577079B TW91122134A TW91122134A TW577079B TW 577079 B TW577079 B TW 577079B TW 91122134 A TW91122134 A TW 91122134A TW 91122134 A TW91122134 A TW 91122134A TW 577079 B TW577079 B TW 577079B
Authority
TW
Taiwan
Prior art keywords
search
matching
cam
match
signal
Prior art date
Application number
TW91122134A
Other languages
Chinese (zh)
Inventor
Peter Gillingham
Original Assignee
Mosaid Technologies Inc
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 Mosaid Technologies Inc filed Critical Mosaid Technologies Inc
Application granted granted Critical
Publication of TW577079B publication Critical patent/TW577079B/en

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A content addressable memory (CAM) for generating intermediate search results in a search on a stored data word sequence. The CAM comprises a plurality of rows of CAM cells each for storing a data word in the data word sequence; a plurality of match lines each coupled to a corresponding row of CAM cells, each for generating a corresponding match line signal. A priority encoder is coupled to the match line for generating a match address in response to a match line signal; and a plurality of logic circuits, each coupled to corresponding match lines for selectively coupling the match line signal to the priority encoder in response to an instruction signal, the instruction signal for instructing the CAM to generate a match address output on a new search or on a continuation of a previous search, such that portions of the data word sequence occurring at any intermediate location within the sequence provides match results in response to input search data which are equivalent to portions of the stored data word sequence.

Description

577079 A7 _- _ B7 五、發明説明(彳 ) 本發明概略關於内容可定址記憶體(CAM)的範疇且更明 確地關於一種用以搜尋具有可變字組寬度之搜尋資料的 CAM之電路與方法。 發明背景 内谷可疋址記憶體(content addressable memory CAM) 是一種記憶體裝置,其中資料基於儲存資料之内容而非根 據資料儲存的位置被存取並修改。一般而言,典型的CAM 搜尋作業包括接收一搜尋資料字組並將該搜尋資料字組與 CAM内的所有項目比對以判斷搜尋資料字組與CAM内的項目 之間是存在單一個匹配、多重匹配、還是不匹配。在cam 列内的每個儲存位置連接至一匹配線,該匹配線表示儲存 資料字組與搜尋字組之間的比對之匹配或不匹配結果。表 示匹配狀況的所有匹配線一般由一優先順序編碼器處理以 決定一最高優先順序的匹配位址提供當作CAM的輸出。 每個資料字組與匹配線組合在CAM内有唯一的N位元位址 。所以,對任何一個搜尋循環而言會有多達2N個匹配線被 活化。如上文所述,CAM—般包括一優先順序編碼器以產生 對應於最高優先順序之有效匹配線的N位元位址。此N位元 位址可被使用做諸如網際網路通信協定(internet Protocol IP)路由表查對等網路應用、壓縮及解壓縮、以 及微處理器系統内之全關聯快取記憶體實施等應用。 三元CAM因其能夠儲存邏輯“0”、邏輯“1”、以及“隨意,,狀 態而廣泛使用於網路應用中。CAM在72位元與144位元資料 -4- 本纸張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 五、發明説明(2 ) 寬度及最近的288位元寬度中一般可用。一般在網路應用中 使用72位元儲存模式來儲存做第二層橋接表(Layer 2 bridging table)的中速存取控制器(mediuin access controller MAC)位址,而第三層網際網路通信協定(Layer 3 Internet Protocol)路由表則使用144位元模式儲存。每 個網際網路通信協定路由表項目包含資料源位址、資料源 埠、目的地位址、目的地埠與某些種類的服務品質(Qual ity of Service QOS)或服務型態(Type of Service T0S)攔位 。在支援兩種資料寬度的CAM中,可維護兩種型式的表,藉 此降低系統成本而讓兩種功能使用一共用CAM資源。 當事先知道搜尋資料寬度時,此種CAM很有用,但是在諸 如統一資源定位器(Uniform Resource Locator URL)查對 表等應用中,搜尋資料寬度一般很長且是未定長度者。現 行的可變資料寬度CAM仍受限於單個的預定寬度,所以為此 目的使用CAM未獲得很多支持。 如上文所述,若儲存URL於CAM内以加速伴隨被頻繁存取 之全球網路網頁之網路交通流速並有效處理網頁快取記憶 將非常有用。若可實施一能夠處理大部分URL長度之非常寬 的CAM(幾百到幾千個位元寬度),則當儲存一般的或簡短的 URL時將會浪費很大量的儲存空間。在此情況下,利用相同 的CAM做橋接或路由項目將變成一種浪費。 所以,雖然可變預設字組寬度CAM的確存在,但仍需要一 種支援任意字組寬度搜尋且能夠隨時任意在一種或更多種 型式的搜尋之間切換的CAM。此外,不同的字組寬度項目應 -5- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) 577079 A7 _ B7 __ 五、發明説明(3 ) 儲存在具有任意邊界之CAM字組内以使整個CAM均可被利用 而在項目之間沒有未被使用或浪費的間隙。 授與Pereira等人之第6, 252, 789號美國專利中提出用以 搜尋較儲存在CAM内之系統預定字組寬度為寬之字組的系 統之一種範例。Pereira描述讓比CAM列寬度為寬的資料字 組鏈可在一個或更多個CAM列中被儲存並搜尋的電路。結果 可用實體上被組織成多重較小字組之CAM執行較寬字組的 搜尋。在Pereira的專利中,一序列的一個或更多個資料字 組儲存在一個或更多個CAM格子列内。每一列有一伴隨的匹 配線與寬度擴展邏輯電路。寬度擴展電路彼此連接且各有 一進位輸入、一進位輸出和一匹配線輸出以決定如何提供 匹配結果給優先順序編碼器並彼此提供匹配結果。由一指 令解碼器產生之控制信號提供給各個寬度擴展邏輯電路以 決定何時提供資料字組鏈中的第一、後續和最末字組以和 儲存在CAM内的資料比對。若提供一具有系統預定字組寬度 之搜尋資料字組,則各寬度擴充邏輯電路内的匹配輸出信 號提供給優先順序編碼器且進位輸出信號維持在不動作狀 態。但若提供給CAM之搜尋資料字組是一多重字組鏈的第一 字組,則各匹配線輸出信號被設定為表示不匹配—意即其 被抑制’且各進位輸出信號被傳播到次一個寬度擴展電路 。若提供給CAM之搜尋資料字組是一多重字組鍵中的後蹟字 組’則各匹配線輸出信號表示不匹配且各進位輸出信號由 進位輸入信號與中間匹配線結果的邏輯組合產生且類似地 傳播給次一個寬度擴展電路。若提供給CAM2搜尋資料字組 •6- 本紙張尺度適用巾Η Η家標準(CNS) A4規格(210 X 297公釐) ----577079 A7 _- _ B7 V. Description of the invention (彳) The present invention outlines the scope of the content addressable memory (CAM) and more specifically a circuit and a CAM for searching for search data with variable block width. method. BACKGROUND OF THE INVENTION Content addressable memory CAM is a memory device in which data is accessed and modified based on the content of the stored data rather than the location where the data is stored. Generally speaking, a typical CAM search operation includes receiving a search data block and comparing the search data block with all the items in the CAM to determine whether there is a single match between the search data block and the items in the CAM. Multiple matches or no matches. Each storage location in the cam column is connected to a matching line, which indicates the result of a match or mismatch between the stored data block and the search block. All match lines indicating the match status are generally processed by a priority encoder to determine a match address with the highest priority provided as the output of the CAM. Each data block and matching line combination has a unique N-bit address in the CAM. Therefore, as many as 2N matching lines are activated for any one search cycle. As mentioned above, CAM generally includes a priority encoder to generate N-bit addresses corresponding to the valid matching lines of the highest priority. This N-bit address can be used for network applications such as Internet Protocol IP routing table lookups, compression and decompression, and full associative cache memory implementation in microprocessor systems. application. Ternary CAM is widely used in network applications because it can store logic "0", logic "1", and "optional," state. CAM is available in 72-bit and 144-bit data Chinese National Standard (CNS) A4 specification (210 X 297 mm) 5. Description of the invention (2) Generally available in the width and the latest 288-bit width. Generally, 72-bit storage mode is used to store data in network applications. The medium access controller MAC address of the Layer 2 bridging table, and the Layer 3 Internet Protocol routing table is stored in 144-bit mode Each Internet Protocol routing table entry contains the data source address, data source port, destination address, destination port, and some kind of Quality of Service (QOS) or Type of Service T0S). In the CAM that supports two data widths, two types of tables can be maintained, thereby reducing the system cost and allowing the two functions to use a common CAM resource. When the search data width is known in advance, this CAM Useful, but in applications such as Uniform Resource Locator URL lookup tables, the search data width is generally long and undetermined. The current variable data width CAM is still limited to a single predetermined width. Therefore, the use of CAM for this purpose has not received much support. As mentioned above, it would be very useful to store URLs in CAM to speed up the network traffic flow with frequently accessed global web pages and effectively handle web cache memory. If a very wide CAM (several hundreds to thousands of bits width) that can handle most URL lengths can be implemented, a lot of storage space will be wasted when storing general or short URLs. In this case Using the same CAM for bridging or routing items will become a waste. So, although variable preset block width CAM does exist, there is still a need to support an arbitrary block width search and be able to use one or more types at any time. CAM to switch between search. In addition, different word width items should be -5- This paper size applies Chinese National Standard (CNS) A4 specifications (210 X 297 (Mm) 577079 A7 _ B7 __ V. Description of the invention (3) Stored in CAM blocks with arbitrary boundaries so that the entire CAM can be used without any unused or wasted gaps between projects. Granted to Pereira U.S. Patent No. 6,252,789 et al. Proposes an example of a system for searching for a block that is wider than a predetermined block width of the system stored in the CAM. Pereira describes a circuit that allows a data block chain wider than the width of a CAM column to be stored and searched in one or more CAM columns. As a result, a wider block search can be performed with a CAM that is physically organized into multiple smaller blocks. In Pereira, a sequence of one or more data blocks is stored in one or more CAM grid rows. Each column has accompanying wiring and width extension logic. The width extension circuits are connected to each other and each has a carry input, a carry output, and a match line output to determine how to provide a matching result to the priority encoder and to provide a matching result to each other. A control signal generated by an instruction decoder is provided to each width expansion logic circuit to decide when to provide the first, subsequent and last blocks in the data block chain and compare them with the data stored in the CAM. If a search data block having a predetermined block width of the system is provided, the matching output signal in each width expansion logic circuit is provided to the priority encoder and the carry output signal is maintained in a non-operation state. But if the search data block provided to the CAM is the first block of a multi-block chain, the output signals of each matching line are set to indicate a mismatch-meaning it is suppressed 'and each carry output signal is propagated to One width extension circuit at a time. If the search data block provided to the CAM is a trailing block in a multiple block key, then the output signals of each match line indicate a mismatch and each carry output signal is generated by a logical combination of the carry input signal and the result of the middle match line And similarly propagated to the next width extension circuit. If provided to the CAM2 search data block • 6- This paper size is suitable for household use (CNS) A4 size (210 X 297 mm) ----

裝 訂Binding

線 577079 A7 __ B7 五、發明説明(4 ) 是一多重字組鏈的最末字組,則各匹配線輸出信號在進位 輸入信號與中間匹配線結果之邏輯組合均為有效時表示匹 配。其結果是,匹配結果不會在一多重字組資料鍵中的最 末字組已經與CAM内容比較完成之前提供給優先順序編碼 器。所以這種方法僅在精確匹配多重字組搜尋時有效。結 果,此方法的一個缺點是無法得到中間搜尋結果。譬如在 多重字組搜尋資料的最末字組備妥之前發生最接近匹配的 情況下,該最接近匹配結果實際上會被遮蔽。 所以仍需要一種能夠搜尋可變寬度資料字組且其中資料 字組的儲存對CAM做有效使用的CAM。 發明概要 一種用以在儲存資料字組序列上之搜尋内產生中間搜尋 結果的内容可定址記憶體(content addressable memory CAM),該種内容可定址記憶鱧包括複數個各儲存資料字組 序列中的一個資料字組之CAM格子列、複數個各耦合至一對 應的CAM格子列且各產生一對應的匹配線信號之匹配線、耦 合至匹配線以因應於一匹配線信號產生一匹配位址的優先 順序編碼器、及複數個各耦合至對應的匹配線以根據一指 令信號將該匹配線信號選擇性地耦合至優先順序編碼器的 邏輯電路,該指令信號用來指示CAM在一新的搜尋上或前一 搜尋的後續搜尋上產生一匹配位址輸出以使發生在序列内 任一中間位置處的資料字組序列部分根據等同於儲存資料 字組序列部分之輸入搜尋資料提供匹配結果。 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)Line 577079 A7 __ B7 V. Description of the Invention (4) is the last block of a multiple block chain, and the output signal of each match line indicates a match when the logical combination of the carry input signal and the result of the middle match line is valid. As a result, the matching result will not be provided to the priority encoder before the last block in a multi-block data key has been compared with the CAM content. Therefore, this method is only effective in the exact matching multi-word search. As a result, one disadvantage of this method is that intermediate search results cannot be obtained. For example, in the case where the closest match occurs before the last phrase of the multi-word search data is ready, the closest match result will actually be obscured. Therefore, there is still a need for a CAM that is capable of searching for variable-width data words and in which the storage of data words effectively uses the CAM. SUMMARY OF THE INVENTION A content addressable memory (CAM) is used to generate intermediate search results in a search on a sequence of stored data blocks. The content addressable memory (CAM) includes a plurality of stored data block sequences. A CAM grid column of a data block, a plurality of matching lines each coupled to a corresponding CAM grid column and each generating a corresponding matching line signal, and a coupling line coupled to the matching line to generate a matching address in response to a matching line signal The priority encoder and a plurality of logic circuits each coupled to the corresponding matching line to selectively couple the matching line signal to the priority encoder according to a command signal, the instruction signal is used to instruct the CAM in a new search A matching address output is generated on a subsequent search of the previous or previous search such that the sequence portion of the data block that occurs at any intermediate position within the sequence provides a match result based on the input search data equivalent to the sequence portion of the stored data string. This paper size applies to China National Standard (CNS) A4 (210 X 297 mm)

裝 訂Binding

k 577079 A7 ___ B7 五、發明説明(5 Γ _ 圖式之簡述 本發明之特徵與優點藉由範例說明且絕非意在限制本發 明之範疇,其特定具體實例描述於下列圖式中: 圖1是根據本發明之一種具體實例的CAM陣列之示意簡化 方塊圖; 圖2是顯示圖1之CAM陣列的搜尋時序之時程圖; 圖3是顯示圖1之CAM陣列的一部份之方塊圖; 圖4是顯示圖3之CAM陣列的匹配線時序之時程圖; 圖5是顯示儲存在圖1之CAM内許多個順序位址位置處的 範例資料圖; 圖6(a)與6(b)是施加給CAM之搜尋資料序列的示意圖; 圖7(a)與7(b)是分別使用圖6(a)與6(b)内之搜尋資料做 搜尋作業的時程圖; 圖8是顯示儲存在根據本發明另一種具體實例之CAM内的 資料圖; 圖9是要施加給圖8中所示CAM資料的搜尋序列圖; 圖10是顯示儲存在根據本發明另一種具體實例之CAM格 子内的資料圖;且 圖11是顯示根據本發明的一種具體實例用以處理匹配線 輸出之電路的示意圖。 較佳具體實例之詳述 下文中類似的編號表示圖式中類似的結構體。 請參考圖1,該圖顯示根據本發明之一種具體實例被組織 成128k X 72位元項目之單一 [128k X 72非9M]CAM陣列100 本紙張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 577079 A7 B7 五、發明説明(6 。72位元的字組在一72位元資料匯流排上被存取,該72位 元資料匯流排有三個作用··當執行搜尋作業時提供72位元 的搜尋資料;提供72位元的寫入資料給儲存項目;及讀取 已經儲存在表内的72位元下載項目。該資料匯流排是雙向 的所以可以包容這三種功能。CAM包括一優先順序編碼器及 多重匹配解析器(multiple match resolver MMR)120,其 操作與結構描述於第09/954, 074號美國專利申請案中,該 專利申請案在此附呈供卓參,但是也可採用其他傳統的優 先順序編碼電路而不會影響到本發明之具體實施。基本上 ,優先順序編碼器和多重匹配解析器120接收所有的匹配線 栓鎖輸出當作輸入並產生一最高優先順序匹配位址。k 577079 A7 ___ B7 V. Description of the invention (5 Γ _ Brief description of the features and advantages of the present invention By way of example and by no means intended to limit the scope of the present invention, specific specific examples are described in the following drawings: FIG. 1 is a schematic simplified block diagram of a CAM array according to a specific example of the present invention; FIG. 2 is a time history chart showing a search timing of the CAM array of FIG. 1; Block diagram; Figure 4 is a timing diagram showing the timing of the matching lines of the CAM array of Figure 3; Figure 5 is an example data diagram showing a number of sequential address locations stored in the CAM of Figure 1; Figure 6 (a) and 6 (b) is a schematic diagram of the search data sequence applied to the CAM; Figs. 7 (a) and 7 (b) are time charts of the search operation using the search data in Figs. 6 (a) and 6 (b), respectively; Fig. 8 is a diagram showing data stored in a CAM according to another embodiment of the present invention; Fig. 9 is a search sequence diagram to be applied to the CAM data shown in Fig. 8; The data map in the CAM grid of the example; and FIG. 11 shows a specific embodiment according to the present invention. Schematic diagram of the circuit used to process the output of the matching line. Detailed description of the preferred embodiment. Similar numbers in the following represent similar structures in the figure. Please refer to FIG. 1, which shows that a specific example according to the present invention is organized into 128k X 72-bit single [128k X 72 non-9M] CAM array 100 This paper size is applicable to Chinese National Standard (CNS) A4 specifications (210X 297 mm) 577079 A7 B7 V. Description of the invention (6. 72-bit The word is accessed on a 72-bit data bus, which has three functions. · Provides 72-bit search data when performing a search operation; provides 72-bit written data to storage And read the 72-bit download items that have been stored in the table. The data bus is bidirectional and can accommodate these three functions. CAM includes a priority encoder and multiple match resolver (MMR) 120 Its operation and structure are described in US Patent Application No. 09/954, 074. This patent application is attached here for reference, but other traditional prioritized coding circuits can also be used instead Effect of the specific embodiment of the present invention. Basically, the priority encoder and multiple match resolver 120 receive all match line latch input and generates as output a highest priority match address.

在搜尋期間,伴隨各匹配線的匹配線栓鎖107載有每個項 目之儲存資料與搜尋資料間比對的搜尋結果一意即"中的" (匹配)或"未中的”(不匹配)。優先順序編碼器與MMR (Multiple Match Resolver)120將 128k的"中的丨?或"未中 的’’指標轉換成代表最高有效"中的"的單一個最高優先順 序位址。儲存位置從最高到最低優先順序次序排列。此外 ’一表示陣列中是否已經發生匹配的匹配(MATCH)位元被提 供當作輸出。此外,一多重匹配(multiple match MM)旗標 也被提供當作輸出來表示是否發生多重匹配。若沒有"中 的"(或匹配),則匹配位元維持為邏輯"低”狀態。若至少有 一個”中的",則匹配(MATCH)位元將被設定為邏輯"高"狀態 。若在任何特定搜尋中發生多於一個"中的",則匹配 (MATCH)位元將被設定為邏輯"高”狀態且多重匹配(MM)旗 -9 - 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)During the search, the matching line latch 107 accompanying each matching line contains the search result of the comparison between the stored data of each item and the search data, which means " (match) in " (match) or " missing "(" Mismatch). The priority encoder and MMR (Multiple Match Resolver) 120 convert the 128k "? or " missing " indicator into a single one with the highest priority " in the highest priority " Sequential address. Storage locations are ordered from highest to lowest priority. In addition, a 'MATCH' bit indicating whether a match has occurred in the array is provided as output. In addition, a multiple match (MM) flag The marker is also provided as an output to indicate whether multiple matches have occurred. If there is no " (or match), the match bit is maintained at a logic " low " state. If there is " in at least one ", the MATCH bit will be set to a logical " high " state. If more than one " in " occurs in any particular search, then the match (MATCH) ) The bit will be set to logic " high " and multiple matching (MM) flag-9-This paper size applies to China National Standard (CNS) A4 (210 X 297 mm)

裝 訂Binding

線 577079 A7 B7 五、發明説明(7 ) 標也將被設定為邏輯"高"狀態。 請參考圖2,該圖舉例顯示在cam陣列1 〇〇上執行的一系列 一個典型搜尋作業。在系統時脈信號CLK的第一個升起^緣 202上’搜尋資料si被時脈推進入cam。約在兩個半(2 % ) 時脈循環之後204,可得到搜尋匹配位址(MA)的結果R1。在 CAM陣列輸出處由MATCH = 1及ΜΜ=0表示有單一個匹配。該结 果由外部電路(未顯示)在第三個時脈邊緣2〇6上取得並栓 鎖,所以這稱為延遲3作業一意即在發出搜尋指令和獲得搜 尋結果之間有3個系統時脈循環的延遲。這數個時脈循環是 CAM内部需要的,用來栓鎖入搜尋資料、將其格式化以利搜 尋' 預充電匹配線、產生各項目之匹配結果、編碼最高有 效匹配及驅動輸出接腳。 搜尋可藉實施一内部管線架構以在每個時脈邊緣上執行 。搜尋2的結果是”未中的",所以沒有匹配位址輸出。搜尋 S3的結果是多重匹配(設定高狀態),所以僅最高有效匹 配位址R3出現在MA匯流排輸出上。 請參考圖3,該圖顯示一三元CAM 300之格子陣列32〇的一 個小次集合。每個三元格子322包含兩個用來儲存標示為 與bkl的兩個位元之儲存單元以及用來比對儲存資料與搜尋 資料的比對電晶體。儲存單元可為任何型式的靜態隨機存 取記憶體(Static Random Access Memory SRAM)或動態隨 機存取記憶體(Dynamic Random Access Memory DRAM)格子 ’該兩種記憶體都疋本技術領域中所熟知的三元資料如 下表I所示般儲存。陣列内每列格子形成一資料字組,而列 -10- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)Line 577079 A7 B7 Fifth, the invention description (7) mark will also be set to a logic " high " state. Please refer to Figure 2, which shows an example of a series of typical search jobs performed on a cam array 100. On the first rising edge 202 of the system clock signal CLK, the search data si is pushed into the cam by the clock. After about two and a half (2%) clock cycles 204, the result R1 of searching for a matching address (MA) is obtained. There is a single match at the CAM array output by MATCH = 1 and MM = 0. The result is obtained and latched on the third clock edge 206 by an external circuit (not shown), so this is called a delay 3 operation, which means that there are 3 system clocks between issuing a search command and obtaining the search result Cyclic delay. These clock cycles are needed internally by the CAM to lock in search data, format it to facilitate searching for a 'pre-charged match line, generate match results for each item, encode the most effective match, and drive output pins. Searching can be performed on each clock edge by implementing an internal pipeline architecture. The result of search 2 is "missing", so there is no matching address output. The result of searching S3 is multiple matching (set high state), so only the highest valid matching address R3 appears on the MA bus output. Please refer to Figure 3, which shows a small set of lattice arrays 32 of a ternary CAM 300. Each ternary lattice 322 contains two storage units for storing two bits labeled as bkl and for comparison Comparison transistor for storing data and searching data. The storage unit can be any type of Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM) grid. These types of memory are ternary data well known in the technical field as shown in Table I. Each column in the array forms a data block, and column -10- This paper size applies to China National Standard (CNS) A4 Specifications (210 X 297 mm)

裝 訂Binding

線 577079 A7 B7 五、發明説明(8 内的各格子耗合至匹配線ML。匹配線MLQ-MLn各經由各自的 預充電電晶體耦合至Vdd。該等電晶體由一有效邏輯"低"預 充電信號PRE\控制。陣列内的格子行耦合至各自的搜尋線 S°i; SO0; SI1; si0; SN1; SN〇 °Line 577079 A7 B7 V. Invention description (Each grid within 8 is consumed to match line ML. Match lines MLQ-MLn are each coupled to Vdd via their respective pre-charged transistors. These transistors are powered by an effective logic "Low" ; Precharge signal PRE \ control. The grid rows in the array are coupled to their respective search lines S ° i; SO0; SI1; si0; SN1; SN〇 °

表I b, 資料 邏輯“0” 邏輯“Γ “隨意” 〇 1 1 ο ο ο 套用至每個資料欄的搜尋資料按照相同的格式 請參考圖4,該圖顯示圖3之CAM陣列的搜尋作業期間之控 制與資料信號的時程圖。在每個時脈循環的起始處,PRE\ 信號被脈衝推進為邏輯"低"狀態以將各匹配線ML充電達到 正供電位準Vdd。然後搜尋資料在搜尋線上被致能,譬如在 圖4中顯示三個順序搜尋,第一個為&严,相當於 以一邏輯"丨’’搜尋;第二個為Sx() = 0且sxl = l,相當於以一邏 輯"〇"搜尋;而第三個為SxG = 0且sxl = 0,相當於以一邏輯"隨 意"狀態搜尋或實際上是遮蔽該CAM格子。所以一般對此較 佳具體實例而言,儲存一"隨意"狀態的任何CAM格子將無法 把匹配線從其被預充電為"高"的位準放電到vdd狀態。行内 任何其中搜尋資料是一"隨意"(意即Sx() = 0, Sxl = 0)的CAM格 子也將無法拉下匹配線。若儲存在格子内的資料與搜尋資 料匹配,則該特定格子也將不會拉下匹配線。只有在”隨 意"資料未儲存在格子内或搜尋線上的CAM格子且儲存資料 與搜尋資料互補(意即bfcfl = Skl且bke = Sk0)的格子之情況下, -11 · 本纸張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) A7 B7 五、發明説明(9 ) 匹配線才會被放電以表示一"未中的"。耦合至其對應匹配 線之任何格子上的一個"未中的"都將造成整個列的"未中 的"。換言之,匹配線被預充電到一 ”令的"情況且被任何關 聯格子上的”未中的”情況放電。 如參考圖1之时論,栓鎖在個別匹配線栓鎖内的,’中的/ 未中的4曰標&供給優先順序編碼器/多重匹配解析器電路 區段,該電路區段提供最高優先順序之中的單一個編碼位 址。CAM内的項目從最低優先順序到最高優先順序依序排 列。 上文所述根據本發明之具體實例的CAM陣列之一般操作 被當作表達本發明解決之特定問題的背景。在本發明說明 之發明背景中簡述之本發明解決的特定問題係關於如何處 理可變字組寬度搜尋之匹配線結果。更明確地說,很希望 能快速且有彈性地對寬度大於儲存在CM陣列内系統預定 字組寬度之搜尋字組提供搜尋結果。如上文所述,pereira 專利中所述的傳統方法僅在搜尋資料之位元與儲存在CAM 相關列内之位元間精確匹配的情況下才提供一"匹配"結果 且僅在整個搜尋字串已經被搜尋之後才提供此匹配結果。 結果,雖然一寬字組(諸如URL)可能已經被儲存在CAM内, 當一搜尋僅在該字組的一部分上執行時,其無法被使用來 辨識一"匹配"。迄今為止的其他電路也無法達成此目的。 此問題還可藉參考一範例來描述。請參考圖5,該圖顯示 一陣列的以符號代表被用來儲存各種長度之URL的CAM陣列 的許多列之内容的範例之字元。符號陣列上的每個元素代 -12 - 本纸張尺度適用中國國家標準(CNS) A4規格(210X 297公釐) 577079 A7 B7 五、發明説明(1〇 ) 表需要8位元之CAM的URL的一個字元。圖式中有些位置使用 空白字元藉此讓精確匹配得以發生。所以圖5中所示的結構 相當於一 72位元寬的CAM陣列。從該範例中可見CAM陣列内 的各種項目可對應於由使用者存取之連續網頁。若使用者 之前曾經在"www· mosaid. com/licensing"處存取一儲存在 CAM内之URL,而當使用者下一次希望能簡單地存取 n www. mosaid. com"網頁時,除非該精確的URL已經儲存在 CAM内,否則不會在CAM内產生一匹配位址。此精確匹配要 求的結果是使用者在相同網站處可能需要存取的每個URL 都須被輸入到CAM内才能確保精確的匹配。這是對CAM空間 的浪費。換言之,假設儲存在列0與1内的位址不是位址 "www· mosaid. comfr 而是對應於"www· mosaid· com/ip"且使 用者希望存取"www. mosaid. com"。專利’789中所提的以前 技術方法就不會輸出一匹配位址一即使對應於 ” www. mosai ”之72位元字組的一部分在位址列0, 2與5處發 生多重匹配。 所以本發明對此問題提供一種解決方案。根據本發明的 一種具體實例,字組寬度比儲存在CAM内之系統預定字組寬 度為寬的搜尋資料字串被分割成一群具有系統預定寬度的 字組且在CAM内被連續順序搜尋。中間搜尋結果在各個搜尋 完成的當下就提供給優先順序編碼器和多重搜尋解析器。 一旦字組群内的最後一個字組完成搜尋,使用者就可根據 中間搜尋結果判斷何者是最佳匹配且若需要的話繼續更小 範圍的搜尋。 -13- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)Table I b, data logic “0” logic “Γ“ arbitrary ”〇1 1 ο ο ο search data applied to each data column according to the same format, please refer to Figure 4, which shows the search operation of the CAM array of Figure 3 The timing chart of the control and data signals during the period. At the beginning of each clock cycle, the PRE \ signal is pulsed into a logic "low" state to charge each matching line ML to the positive power supply level Vdd. Then the search data is enabled on the search line. For example, three sequential searches are shown in Figure 4. The first is & strict, which is equivalent to searching with a logic " 丨 ''; the second is Sx () = 0. And sxl = l is equivalent to searching with a logic " 〇 "; the third is SxG = 0 and sxl = 0, equivalent to searching with a logic " random " state or actually covering the CAM grid So generally speaking for this better specific example, any CAM grid that stores a "random" state will not be able to discharge the matching line from its pre-charged level to "high" to the vdd state. Anything in the line The search data is a " arbitrary " (meaning Sx () = 0 , Sxl = 0) CAM grid will not be able to pull down the matching line. If the data stored in the grid matches the search data, the specific grid will not pull down the matching line. In the case of a grid in a grid or a CAM grid on a search line and the stored data is complementary to the search data (meaning bfcfl = Skl and bke = Sk0), -11 · This paper size applies the Chinese National Standard (CNS) A4 specification ( 210 X 297 mm) A7 B7 V. Description of the Invention (9) The matching line will be discharged to indicate a "missing". A " missing " on any grid coupled to its corresponding matching line will result in a " missing " of the entire column. In other words, the matching wires are pre-charged to a "order" situation and discharged by the "missing" situation on any associated grid. As shown in Fig. 1, when latched in the individual matching wire latches, ' Medium / Unsuccessful 4th & Supply Priority Encoder / Multiple Matching Resolver Circuit Section, This circuit section provides a single encoding address among the highest priorities. Items in the CAM are ordered from the lowest priority They are listed in order of highest priority. The general operation of the CAM array according to the specific examples of the present invention described above is used as a background to express the specific problems solved by the present invention. The invention briefly described in the background of the invention The specific problem to be solved is how to deal with the matching line result of the variable block width search. More specifically, it is highly desirable to provide search blocks with widths larger than the predetermined block width of the system stored in the CM array. Search results. As mentioned above, the traditional method described in the pereira patent only searches for exact matches between the bits of data and the bits stored in the relevant row of the CAM Provide a " match " result and provide this match result only after the entire search string has been searched. As a result, although a wide block (such as a URL) may have been stored in the CAM, when a search When executed on a part of a block, it cannot be used to identify a " match ". Other circuits so far have not been able to achieve this. This problem can also be described by referring to an example. Please refer to Figure 5, which An example character showing an array of symbols representing the contents of many rows of a CAM array that is used to store URLs of various lengths. Each element on the symbol array is -12-This paper size applies Chinese National Standard (CNS ) A4 specification (210X 297 mm) 577079 A7 B7 V. Description of the invention (1) The table requires one character of the URL of the 8-bit CAM. Blank characters are used in some places in the drawing to allow exact matching to occur. So the structure shown in Figure 5 is equivalent to a 72-bit wide CAM array. From this example, it can be seen that various items in the CAM array can correspond to continuous web pages accessed by the user. If the user has previously been in & qu ot; www · mosaid. com / licensing " to access a URL stored in the CAM, and the next time the user wishes to simply access the www.mosaid.com " webpage, unless the precise URL is already stored In the CAM, otherwise a matching address will not be generated in the CAM. The result of this exact matching requirement is that every URL that a user may need to access at the same website must be entered into the CAM to ensure an exact match. This is a waste of CAM space. In other words, suppose that the addresses stored in columns 0 and 1 are not addresses " www · mosaid. Comfr but correspond to " www · mosaid · com / ip " and the user wants to save Take " www. Mosaid. Com ". The prior art method proposed in the patent '789 does not output a matching address-even if a part of the 72-bit byte corresponding to "www. Mosai" has multiple matches in the address columns 0, 2 and 5. The invention therefore provides a solution to this problem. According to a specific example of the present invention, a search data string having a block width wider than a system predetermined block width stored in a CAM is divided into a group of blocks having a system predetermined width and sequentially searched in the CAM. Intermediate search results are provided to priority encoders and multiple search parsers as soon as each search is completed. Once the last word in the word group is searched, the user can determine which is the best match based on the intermediate search results and continue the search in a smaller range if necessary. -13- This paper size applies to China National Standard (CNS) A4 (210 X 297 mm)

裝 訂Binding

577079 A7 B7 五、發明説明(11 ) 經修改之CAM的優點可藉參考圖6(a)中所示加諸CAM之内 容(顯示於圖5中)的範例性搜尋資料輸入來闡述。對資料項 目D5而言,空白字元或π隨意”字元可根據要如何搜尋CAM —譬如需要精確匹配或需要部分匹配一而儲存。這些字元 可由CAM登記使用者在CAM之内容被初始化時寫入。圖7(a) 顯示從使用者觀點所見根據本發明在搜尋作業期間提供中 間結果對應於圖6(a)中之資料搜尋的搜尋時程。CAM内的指 令解碼器(未顯示)接收各個連續搜尋指令並產生對應於各 搜尋字組的指令位元以表示該72位元搜尋字組代表一新的 搜尋作業還是一後續搜尋作業。 請參考圖6(a)與7(a),假設使用者想要存取的搜尋輸入 是 URL"www.mosaid.com/1icensing/patents_role.htm" o 此URL被如圖6(a)中所示分割成5個72位元搜尋字組D卜D5 。搜尋輸入的各個72位元搜尋字組D卜D5連同一對應的指令 字組(INST)在時脈信號的升起邊緣處施加給CAM。指令字組 内的一位元(C0NT/NEW)表示其對應搜尋字組是一新的搜尋 字組還是一後續搜尋的搜尋字組。包含部分URL "www. mosai"的第一個72位元搜尋字組D1基於圖5中所示 CAM陣列之内容造成位址0, 2與5處的多重匹配。CAM電路斷 定MATCH位元與多重匹配旗標(MM)為邏輯"高"狀態並輸出 最高優先順序匹配位址ΜΑ=0。對後續的對應於部分URL "d· com/lie"之72位元搜尋字組D2而言,在位址3與6處指出 有匹配且最高優先順序匹配位址被輸出MA = 3。當第三個搜 尋被執行且D3(包含部分URL"ensing/pa")被提供之後,沒 -14- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)577079 A7 B7 V. Description of the Invention (11) The advantages of the modified CAM can be explained by referring to the exemplary search data input added to the CAM content (shown in Figure 5) shown in Figure 6 (a). For data item D5, blank characters or π random "characters can be stored according to how to search for CAM-such as exact matching or partial matching. These characters can be registered by CAM users when the content of CAM is initialized Write. Figure 7 (a) shows from the user's point of view the search schedule that provides intermediate results during the search operation according to the present invention corresponding to the data search in Figure 6 (a). Instruction decoder (not shown) in the CAM Receives each successive search instruction and generates instruction bits corresponding to each search word to indicate whether the 72-bit search word represents a new search operation or a subsequent search operation. Please refer to FIGS. 6 (a) and 7 (a) Suppose the search input that the user wants to access is the URL "www.mosaid.com/1icensing/patents_role.htm" o This URL is divided into five 72-bit search words D as shown in Figure 6 (a) Bu D5. Each 72-bit search block D of the search input is connected to the same corresponding instruction block (INST) to the CAM at the rising edge of the clock signal. One bit (C0NT / NEW) indicates that its corresponding search phrase is a new search The search phrase is also a search phrase for subsequent searches. The first 72-bit search phrase D1 containing part of the URL " www. Mosai " results in addresses 0, 2 and 5 based on the contents of the CAM array shown in FIG. 5 Multiple matching at the location. The CAM circuit determines that the MATCH bit and the multiple matching flag (MM) are logical " high " status and outputs the highest priority matching address Μ = 0. For the subsequent corresponding partial URL " d · com / lie " for the 72-bit search block D2, a match is found at addresses 3 and 6 and the highest-priority matching address is output as MA = 3. When the third search is performed and D3 (including part After URL " ensing / pa ") is provided, no -14- This paper size applies Chinese National Standard (CNS) A4 specification (210 X 297 mm)

裝 訂Binding

577079577079

有其他的匹配。結果,因為發生了兩個多重匹配結果且沒 有其他匹配結果,所以使用者最可能基於所提供之令間多 重匹,結果繼續進行更精禮的搜尋。請注意和抑制這些中 間搜哥結果的以前技術方法不同,在整個肌之搜尋被執行搜 尋之前就已經提供了中間多重匹配結果MA=〇, 使用者從中間匹配位址輸出可判斷對第一與第二連續的 搜尋字組有搜尋輪入的一部份之匹配。使用者會發現此部 份匹配表不可能有一 URL位址儲存在CAM内而包含繼續搜尋 所需的充分資訊而在實質上找尋精確匹配於一更精準的搜 尋μ料子組。基於此資訊,如圖6(b)中所示的第二搜尋序 列 ’’WWW· mosaid· com/l icensing"可提供給CAM。若在此情況 下使用以前技術方法,則因為不存在直接匹配,搜尋的結 果將為“未中的’’。但在本發明的情況下,圖6(b)中所示第 二搜尋序列的結果將為最高優先順序匹配位址輸出為MA = 〇 的多重匹配、最高優先順序匹配位址為MA = 3的多重匹配、 和最終的單一匹配MA=4。後者為最佳匹配URL。在此情況下 ,捷尋資料内未被使用的尾隨字元被設定為"隨意"。即使 已經發現到精確匹配,CAM仍不會如以前技術方法般遮罩或 壓抑被發現的部分匹配,所以使用者(而非CAM本身)可選擇 忽略之刖的位址(ΜΑ=0與MA = 3 )—如果該等位址沒有用。此 搜尋的時程圖顯示於圖7(1〇中。 或者’也可不如圖5中所示般儲存一 [JRL於CAM中而將URL 剖析或分割以使各區段以一新的CAM字組位置為起點儲存 一意即沒有區段跨越CAM字組邊界。圖8中顯示在根據本發 •15- 本紙張尺度適用中國國家標準(CNS) A4規格(210X297公釐) 577079 A7 _ B7 五、發明説明(13~~" 明另一種具體之儲存結構内儲存URL"www. m〇saicL CQm/ licensing/whatis一patent.htm"的範例。如該圖所示,此 結構和圖5中所示結構比較起來節省了 3個儲存位置。一般 而言,若被儲存的URL彼此緊密相關,則使用此種經剖析的 資料儲存是有利的。若要儲存在CAM内的URL非彼此相關, 則此種方法會比根據圖5所述之方法需要更多的CAM空間。 而且’此方法在單一搜尋序列中提供最佳匹配而無須如前 一範例般提交另一組輸入以解析一多重匹配情況。此方法 也提供精確儲存之URL的搜尋彈性,其方法是插入空白字元 或藉在輸入字串中插入“隨意”字元以讓一片段造成一"中 的"。 用如圖10中所示的輸入搜尋資料序列"www.mosaid c()m/ 1 icensing/patents_role· htm"對圖9中所示儲存之資料執 行搜尋會造成匹配ΜΑ=0, 1,2, 3與4後面跟著"未中的"。即使 輸入序列比之前的方法者更長,結果可在單一個轉化過程 中產生,藉此避免如參考圖6(b)與7(b)所述般需要第二個 搜尋。 如圖9中所示範例般可見經剖析之資料結構所需的儲存 體較小,因為字首不必被重複,雖然此會隨著個案而根據 共用一共通字首的URL數目而改變。另一種變體是採用壓縮 資料結構但以尾隨的"隨意"字元搜尋。在此情況下,項目〇 到4非必需者。 請參考圖11,該圖顯示根據本發明的一種具體實例用以 處理匹配線信號以支援可變字組寬度搜尋的電路。 -16- 本紙張尺度適用巾® Η家標準(CNS) A4規格(⑽X撕公I) "' 一 577079 A7 ______B7 五、發明説明(14 ) C0NT/NEW信號可由指令解碼得到或者其也可為指令字組中 的一個獨立位元。藉著栓鎖合併搜尋的結果而不僅是栓鎖 個別匹配結果,字組搜尋可被插斷進行背景作業。譬如, 表單維護的讀取或寫入作業可插入在圖6中所示的任何搜 尋作業之間而不會影響多重字組搜尋功能。在圖丨丨中,匹 配線信號MLO,ML1,ML2,…被反轉器125放大然後輸入到 邏輯電路122内。對每個對應匹配線輸出而言,邏輯電路122 包括一 AND-N0R閘123與一反轉器124。每個AND-N0R閘123 在個別輸入端接收由反轉器125驅動的匹配線輸出,並以 C0NT/NEW邏輯信號與經由反轉器124提供之在一較低優先 順序匹配線上之被栓鎖的匹配情況結果的組合當作另一個 輸入。AND - N0R閘123的輸出被提供當作匹配線D型正反器 126的輸入,正反器126的Q輸出被提供給優先順序編碼器與 多重匹配解析器127。 下文將說明邏輯電路122的操作。在一新多重字組搜尋的 起始處,第一資料字組被加諸CAM陣列以在匹配線上產生個 別的匹配指示信號。同時,從指令解碼器提供適當的位元 以產生内部C0NT/NEW控制信號,該信號被設定為邏輯"〇" 以表示一新的多重字組搜尋正要開始。結果,D型正反器會 栓鎖個別的匹配線結果而不論相鄰之匹配線正反器的狀態 如何。在多重字組搜尋的後績字組上,藉著適當解碼指令 字組將内部C0NT/NEW控制信號設定為邏輯π 1"。一旦 C0NT/NEW已經被設定為邏輯"1"而表示多重字組搜尋的後 續字組正在被搜尋,為了讓任何D型正反器能記錄一匹配, -17 - 本纸張尺度適用中國國家標準(CNS) Α4規格(210X 297公釐) 577079 A7 ______ B7 五、發明説明(15 ) 其相關的匹配線以及CAM陣列内前一匹配線位置都必須在 前一循環中暫存一匹配。由圖n中可見,各D型正反器接收 其相關AND-N0R閘123的輸出,該輸出合併相關匹配線的輸 出以及由前一 D型正反器經由反轉器124提供之較低優先順 序匹配線的結果。依此方式,從最低到最高優先順序之各 匹配線的累計匹配結果在多重字組搜尋期間從一個位置傳 播到另一個位置,從而產生由傳統優先順序編碼器和多重 匹配解析器使用的中間匹配結果。 雖然使用URL當作範例,幾乎任何種類的搜尋都可執行。 譬如句子和片語可以相同的方法儲存。如圖n中所示,句 子is this a wretched demi bee”可以經剖析的模式儲存 在6個72位元的字組内。在此情況下假設使用者想要搜尋不 一定從該項目的起始點開始的片語—譬如„demi bee ”。以 前技術方法將無法提供該資訊所在位置的提示,因為其尋 找的是精確的匹配。結果部分匹配的結果被拋棄了,從而 失去了知道CAM内有被搜尋資料的一個匹配的好處。但利用 本發明,提供部分匹配結果的能力將告知使用者搜尋資料 包含於CAJI内某一位置處—在此情況下是在字組4與5處。有 了這個結果,使用者可判斷找到的資料對所需搜尋的重要 性。 在所有這些範例中,在輸入整個輸入資料字串之前獲得 部分匹配結果的好處很清楚地獲得證實。部分匹配的URL 提供有關可在何處找到一網頁的好指引給路由器。這遠比 重複地搜尋URL之依次刪簡版本直到發生匹配為止來得有 -18 -There are other matches. As a result, because two multiple matching results have occurred and there are no other matching results, the user is most likely to continue to perform a more elaborate search based on the multiple matches provided. Please note that different from the previous technical methods of suppressing these intermediate search results, the intermediate multiple matching result MA = 〇 was provided before the entire muscle search was performed. The user can judge the first and The second consecutive search phrase has a match that is part of the search turn. Users will find that this part of the matching table cannot have a URL address stored in the CAM and contain sufficient information needed to continue the search, and essentially find an exact match with a more accurate search μ sub-group. Based on this information, a second search sequence ′ ’WWW · saisai · com / l icensing " as shown in Fig. 6 (b) can be provided to the CAM. If the prior art method is used in this case, the search result will be "missing" because there is no direct match. However, in the case of the present invention, the second search sequence shown in Figure 6 (b) The result will be multiple matches with the highest priority match address as MA = 0, multiple matches with the highest priority match address as MA = 3, and the final single match as MA = 4. The latter is the best match URL. Here In the case, the unused trailing characters in the Quick Find data are set to "optional". Even if an exact match has been found, the CAM will not mask or suppress the partial match found as in the previous technical methods, so The user (not the CAM itself) can choose which addresses to ignore (MA = 0 and MA = 3)-if such addresses are not useful. The timeline of this search is shown in Figure 7 (10) or 'You may not store a [JRL in CAM but parse or divide the URL as shown in Figure 5 so that each segment is stored with a new CAM block position as the starting point, meaning that no segment crosses the CAM block boundary. Figure 8 shows the paper size according to this paper Applicable to Chinese National Standard (CNS) A4 specification (210X297 mm) 577079 A7 _ B7 V. Description of the invention (13 ~~ " Specify another specific storage structure to store URL " www. M〇saicL CQm / licensing / whatis a patent.htm " example. As shown in this figure, this structure saves 3 storage locations compared to the structure shown in Figure 5. Generally, if the stored URLs are closely related to each other, this analysis is used Data storage is advantageous. If the URLs to be stored in the CAM are not related to each other, this method will require more CAM space than the method described in Figure 5. And 'this method provides the most in a single search sequence To match without having to submit another set of input as in the previous example to resolve a multiple match. This method also provides the search flexibility of a precisely stored URL by inserting blank characters or by inserting " Random "characters so that a fragment creates a" quote. "Use the input shown in Figure 10 to search the data sequence" www.mosaid c () m / 1 icensing / patents_role · htm "to Figure 9 Data stored as shown A line search will result in a match Μ = 0 = 0, 1, 2, 3, and 4 followed by " missing ". Even if the input sequence is longer than the previous method, the result can be generated in a single conversion process, thereby avoiding A second search is required as described with reference to Figures 6 (b) and 7 (b). As shown in the example shown in Figure 9, it can be seen that the parsed data structure requires less storage because the prefix does not have to be repeated, Although this varies from case to case depending on the number of URLs sharing a common prefix. Another variation is a compressed data structure but a trailing " free " character search. In this case, items 0 to 4 are not required. Please refer to FIG. 11, which shows a circuit for processing a matching line signal to support variable block width searching according to a specific example of the present invention. -16- This paper size is suitable for Towel ® Standards (CNS) A4 (⑽X Tear Male I) " '577079 A7 ______B7 V. Description of the invention (14) The C0NT / NEW signal can be decoded by instructions or it can also be An independent bit in an instruction block. By latching the results of the combined search, not just the individual matching results, the block search can be interrupted for background work. For example, a form maintenance read or write job can be inserted between any search job shown in Figure 6 without affecting the multi-word search function. In the figure, the wiring signals MLO, ML1, ML2, ... are amplified by the inverter 125 and then input into the logic circuit 122. For each corresponding matching line output, the logic circuit 122 includes an AND-N0R gate 123 and an inverter 124. Each AND-N0R gate 123 receives the matching line output driven by the inverter 125 at an individual input, and is latched with a CONT / NEW logic signal and a lower priority matching line provided through the inverter 124 The combination of the results of the matching case is used as another input. The output of the AND-N0R gate 123 is provided as an input of the matching line D-type flip-flop 126, and the Q output of the flip-flop 126 is supplied to the priority encoder and the multiple matching parser 127. The operation of the logic circuit 122 will be described below. At the beginning of a new multiple block search, the first data block is added to the CAM array to generate a separate match indicator signal on the match line. At the same time, the appropriate bits are provided from the instruction decoder to generate the internal CONT / NEW control signal, which is set to logic " 〇 " to indicate that a new multiblock search is about to begin. As a result, D-type flip-flops lock up individual matching line results regardless of the state of adjacent matching line flip-flops. On the afterword block of the multiple block search, the internal CONT / NEW control signal is set to logic π 1 " by an appropriate decoding instruction block. Once C0NT / NEW has been set to logic " 1 " and the subsequent block indicating multi-block search is being searched, in order to allow any D-type flip-flop to record a match, -17-This paper scale applies to China Standard (CNS) A4 specification (210X 297 mm) 577079 A7 ______ B7 V. Description of the invention (15) The relevant matching line and the position of the previous matching line in the CAM array must be temporarily stored with a match in the previous cycle. As can be seen in Figure n, each D-type flip-flop receives the output of its associated AND-N0R gate 123, which combines the output of the relevant matching line with the lower priority provided by the previous D-type flip-flop through the inverter 124 The result of matching lines sequentially. In this way, the cumulative matching results of the matching lines from the lowest to the highest priority are propagated from one position to another during the multi-word search, thereby generating intermediate matches used by the traditional priority encoder and the multiple match parser. result. Although URLs are used as examples, almost any kind of search can be performed. For example, sentences and phrases can be stored in the same way. As shown in Figure n, the sentence is this a wretched demi bee "can be parsed and stored in six 72-bit words. In this case, suppose the user wants to search without necessarily starting from the item Phrase starting point—such as “demi bee”. The previous technical methods will not be able to provide a hint of where the information is located, because it is looking for an exact match. As a result, the result of partial matching is discarded, and it is lost to know that the CAM has One of the benefits of matching the searched data. But with the present invention, the ability to provide partial matching results will inform the user that the searched data is contained somewhere within CAJI-in this case, in words 4 and 5. There is With this result, the user can judge the importance of the found data for the desired search. In all of these examples, the benefits of getting partial matches before entering the entire input data string are clearly proven. Partially matching URLs provide information about Where can I find a good guide for a web page to the router. This is far more than -18 searching for successively abbreviated versions of the URL until a match occurs. -

本纸張尺度適用中國國家標準(CNS) A4規格(210X297公D 577079 A7 B7五、發明説明(16 ) 效。 雖然上文以本發明之特定具體實例與明確使用描述本發 明,精於本技術領域者可不背離本發明之精神而產生許多 種修改。 本發明說明中採用的名詞與表示法是當作描述用語而非 限制用語,使用這類名詞與表示法不是用來排除所示及所 述本發明的特徵或其一部分之相等物,並請注意本發明的 範疇内可能有各種修改物。 -19- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐)This paper size applies to China National Standard (CNS) A4 specifications (210X297 male D 577079 A7 B7 V. Description of the invention (16). Although the invention is described above with specific specific examples of the invention and its explicit use, it is proficient in this technology Those skilled in the art can make many modifications without departing from the spirit of the present invention. The terms and notations used in the description of the present invention are used as descriptive terms rather than restrictive terms. The use of such terms and notations is not intended to exclude the shown and described. The features of the present invention or a part of them are equivalent, and please note that there may be various modifications within the scope of the present invention. -19- This paper size applies the Chinese National Standard (CNS) A4 specification (210 X 297 mm)

Claims (1)

577079 A8 B8 C8 __D8_________ 六、申請專利範園 _ ^ ~ 1· 一 種内容可定址記憶體(content addressable memory ;CAM),用來在對儲存資料字組序列之搜尋内產生中 間搜尋結果,該CAM包括: (a) 複數個CAM格子列,各用來儲存該資料字組序列中的 一個資料字組; (b) 複數個匹配線,各耦合至一對應CAM格子列,各用來 產生一對應的匹配線信號; (c) 優先順序編碼器,耦合至該匹配線用來因應於一匹 配線信號產生一匹配位址;及 (d) 複數値邏輯電路,各耦合至對應的匹配線用來根據 一指令信號選擇性地將該匹配線信號耦合至該優先 順序編碼器,該指令信號用來指示CAM對一新搜尋或 前一搜尋的後續搜尋產生一匹配位址輸出,以使發 生在序列内任何中間位置處的資料字組序列部分可 因應於等同儲存資料字組序列部分之輸入搜尋資料 提供匹配結果。 2·如申請專利範圍第1項之内容可定址記憶體,包括耦合 至對應匹配線用以因應於一時脈信號栓鎖該匹配線信 號以栓鎖一匹配信號的匹配栓鎖。 3·如申請專利範圍第2項之内容可定址記憶鱧,對各匹配 線而言,該邏輯電路用來在邏輯上合併其匹配線信號與 來自前一匹配線的匹配信號以輪出一信號到該匹配栓 鎖,以使在一後續搜尋中,匹配栓鎖只在現行搜尋字組 匹配且前一匹配栓鎖在前一搜尋中栓鎖一匹配的情況 下才栓鎖一匹配。 •20- 本纸張尺度適用中國國家揉準(CNS) A4規格(210X 297公釐)577079 A8 B8 C8 __D8_________ VI. Patent Application Park _ ^ ~ 1 · A content addressable memory (CAM) is used to generate intermediate search results in the search of stored data word sequences. The CAM includes : (A) a plurality of CAM grid rows, each for storing a data block in the data block sequence; (b) a plurality of matching lines, each coupled to a corresponding CAM grid row, each for generating a corresponding Matching line signals; (c) a priority sequence encoder coupled to the matching line to generate a matching address in response to a matching line signal; and (d) a complex unitary logic circuit, each coupled to a corresponding matching line for An instruction signal selectively couples the matching line signal to the priority encoder, and the instruction signal is used to instruct the CAM to generate a matching address output for a new search or a subsequent search of the previous search, so that it occurs within the sequence The sequence portion of the data block at any intermediate position can provide a matching result based on the input search data equivalent to the sequence portion of the stored data string. 2. The addressable memory, as described in item 1 of the patent application scope, includes a matching latch coupled to a corresponding matching line to latch the matching line signal in response to a clock signal to latch a matching signal. 3. If the content of the second item of the scope of patent application can be addressed, for each matching line, the logic circuit is used to logically merge its matching line signal with the matching signal from the previous matching line to round out a signal. To the matching latch so that in a subsequent search, the matching latch only latches a match if the current search phrase matches and the previous match latch locks a match in the previous search. • 20- This paper size applies to China National Standard (CNS) A4 (210X 297mm)
TW91122134A 2001-09-28 2002-09-26 Circuit and method for performing variable width searches in a content addressable memory TW577079B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US32521701P 2001-09-28 2001-09-28

Publications (1)

Publication Number Publication Date
TW577079B true TW577079B (en) 2004-02-21

Family

ID=23266927

Family Applications (1)

Application Number Title Priority Date Filing Date
TW91122134A TW577079B (en) 2001-09-28 2002-09-26 Circuit and method for performing variable width searches in a content addressable memory

Country Status (2)

Country Link
CA (1) CA2364477A1 (en)
TW (1) TW577079B (en)

Also Published As

Publication number Publication date
CA2364477A1 (en) 2003-03-28

Similar Documents

Publication Publication Date Title
US6708250B2 (en) Circuit and method for performing variable width searches in a content addressable memory
US6069573A (en) Match and match address signal prioritization in a content addressable memory encoder
US6502163B1 (en) Method and apparatus for ordering entries in a ternary content addressable memory
JP3593920B2 (en) Associative memory with shortest mask output function capable of continuous search operation
US7584323B2 (en) Method of generating TCAM entry and method and apparatus for searching for TCAM entry
TWI313005B (en) Method and apparatus for wide word deletion in content addressable memories
KR910003488A (en) Data processing device for variable word length command system with short instruction execution time and small footprint
US7386660B2 (en) CAM with automatic writing to the next free address
TW577079B (en) Circuit and method for performing variable width searches in a content addressable memory
US6868475B2 (en) Content addressable memory having data width extension capability
CN101739142A (en) Five-stroke input system and method
KR910009406B1 (en) Serial access type semiconductor memory device
WO2014038306A1 (en) Full-text search system using non-volatile content addressable memory, and text string comparison method employing same
US6809944B2 (en) CAM with automatic next free address pointer
US7107391B2 (en) Automatic learning in a CAM
JPWO2002056315A1 (en) Associative memory
KR950006603A (en) Memory addressing method to increase the number of memory address locations available within a computer that stores high-precision numbers
JPH06215583A (en) Associative memory
JP2638777B2 (en) Kana-Kanji conversion device
JPH10145453A (en) Method and device for processing communication protocol
JP2000149573A (en) Associative memory and data retrieval method of associative memory
JPS59116835A (en) Japanese input device with input abbreviating function
JP2001023379A (en) Associative storing circuit
JPS62251962A (en) Word processor
JPH11273364A (en) Associative memory

Legal Events

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