亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于在按內(nèi)容尋址的存儲(chǔ)器中執(zhí)行可變寬度搜索的電路和方法

文檔序號(hào):6750228閱讀:162來(lái)源:國(guó)知局
專利名稱:用于在按內(nèi)容尋址的存儲(chǔ)器中執(zhí)行可變寬度搜索的電路和方法
技術(shù)領(lǐng)域
本發(fā)明涉及按內(nèi)容尋址的存儲(chǔ)器(CAM),尤其涉及利用具有可變碼字寬度的搜索數(shù)據(jù)搜索CAM的電路和方法。
背景技術(shù)
按內(nèi)容尋址的存儲(chǔ)器(CAM)是一種存儲(chǔ)裝置,其中根據(jù)存儲(chǔ)數(shù)據(jù)的內(nèi)容而不是根據(jù)存儲(chǔ)數(shù)據(jù)的位置來(lái)訪問(wèn)和修改存儲(chǔ)的數(shù)據(jù)。通常,普通的CAM搜索操作包括接收一個(gè)搜索數(shù)據(jù)碼字并且把該搜索數(shù)據(jù)碼字與該CAM中的全部輸入項(xiàng)比較,確定其中是否存在單個(gè)匹配相、多個(gè)匹配相或在該搜索數(shù)據(jù)碼字和該CAM中的輸入項(xiàng)之間的不匹配的情況。CAM的一行中的每一個(gè)存儲(chǔ)位置都連接到一個(gè)匹配線,該匹配線指示在存儲(chǔ)的數(shù)據(jù)碼字和搜索碼字之間的比較結(jié)果的匹配或不匹配的情況。表示一個(gè)匹配條件的全部匹配線通常由一個(gè)優(yōu)先級(jí)編碼器處理,以便確定被作為該CAM的一個(gè)輸出提供的最高的優(yōu)先級(jí)匹配地址。
數(shù)據(jù)碼字和匹配線的每一個(gè)組合都具有在該CAM之內(nèi)的唯一N比特地址。因此,針對(duì)任何搜索周期都可能有高達(dá)2N次的匹配線啟動(dòng)。如提到的那樣,該CAM通常包括用于產(chǎn)生對(duì)應(yīng)于最高的優(yōu)先級(jí)啟動(dòng)匹配線的N比特地址的一個(gè)優(yōu)先級(jí)編碼器。此N比特地址可被用于例如網(wǎng)際協(xié)議(IP)路由選擇表查尋的網(wǎng)絡(luò)應(yīng)用、壓縮和解壓縮以及在微處理機(jī)系統(tǒng)中的完全相關(guān)聯(lián)的高速緩存實(shí)施方案。
由于其存儲(chǔ)邏輯″1″、邏輯″0″以及″無(wú)關(guān)″狀態(tài)的能力,三態(tài)CAM被廣泛地使用在網(wǎng)絡(luò)應(yīng)用中。CAM通常可用的數(shù)據(jù)寬度是72比特和144比特,而最新的CAM可用于288比特的數(shù)據(jù)寬度。一般在網(wǎng)絡(luò)應(yīng)用中,該72比特存儲(chǔ)模式被用于存儲(chǔ)針對(duì)層2橋接表格的介質(zhì)存取控制器(MAC),而層3的網(wǎng)際協(xié)議(IP)路由選擇表則使用144比特模式存儲(chǔ)。每一個(gè)IP路由選擇表輸入項(xiàng)都包括一個(gè)信源地址、信源端口、目的地址、目的端口和某些種類的QOS(業(yè)務(wù)質(zhì)量)或TOS(業(yè)務(wù)類型)字段。在支持兩個(gè)數(shù)據(jù)寬度的CAM中,兩個(gè)類型的表格都能夠被保持,從而降低系統(tǒng)造價(jià),實(shí)現(xiàn)一個(gè)共同的CAM資源用于該兩個(gè)功能。
當(dāng)事先知道搜索數(shù)據(jù)寬度時(shí),這樣的可變寬度CAM是有用的,但是在應(yīng)用例如URL(統(tǒng)一資源定位器)的查尋中,搜索數(shù)據(jù)寬度通常很長(zhǎng),并且是長(zhǎng)度未定。目前可變數(shù)據(jù)寬度的CAM仍然局限于不連續(xù)預(yù)定的寬度,并且因此針對(duì)此目的CAM的使用很少得到支持。
如上所述,在CAM中存儲(chǔ)URL將有助于加速與頻繁訪問(wèn)的萬(wàn)維網(wǎng)頁(yè)相關(guān)的網(wǎng)絡(luò)信息流通量,以及有效地處理網(wǎng)頁(yè)緩存。如果能夠?qū)崿F(xiàn)操作大部分URL長(zhǎng)度的一個(gè)很寬的CAM(數(shù)百到數(shù)千比特寬度),則當(dāng)存儲(chǔ)普通的或短的URL時(shí),將有大量的儲(chǔ)存空間的浪費(fèi)。在這種情況下,利用同一個(gè)CAM來(lái)針對(duì)橋接或路由選擇輸入項(xiàng)則將變得很浪費(fèi)。
因此,雖然確實(shí)存在可變預(yù)置碼字寬度的CAM,但是仍然需要一種支持任意碼字寬度搜索并且能夠在一個(gè)或者多個(gè)搜索″運(yùn)行(on-the-fly)″類型之間切換的CAM。而且,不同碼字寬度的輸入項(xiàng)應(yīng)該存儲(chǔ)在具有任意邊界的CAM中,使得整個(gè)CAM都能被使用而在輸入項(xiàng)之間沒(méi)有不用的或浪費(fèi)的間隙。
用于在CAM中搜索比省缺碼字寬度更寬的存儲(chǔ)字的一種系統(tǒng)的實(shí)例出現(xiàn)于Pereira等人的美國(guó)專利U.S.6252789中。Pereira描述的電路實(shí)現(xiàn)了在該CAM的一個(gè)或者多個(gè)行中的比CAM行的寬度更寬的一個(gè)數(shù)據(jù)碼字的存儲(chǔ)和搜索。結(jié)果是,該更寬的碼字搜索能夠利用實(shí)體上組構(gòu)成多個(gè)較小碼字的一種CAM來(lái)執(zhí)行。在Pereira等人的專利中,一個(gè)或者多個(gè)數(shù)據(jù)碼字的序列被存儲(chǔ)在一個(gè)或者多個(gè)CAM單元行中。每一行都有相關(guān)的匹配線和寬度擴(kuò)展邏輯電路。該寬度擴(kuò)展電路被互連,并且每一個(gè)都有進(jìn)位輸入、進(jìn)位輸出和匹配線輸出,用于確定把匹配結(jié)果提供到該優(yōu)先級(jí)編碼器以及相互匹配的方式。由一個(gè)指令譯碼器產(chǎn)生的控制信號(hào)被提供到每一個(gè)寬度擴(kuò)展邏輯電路,用于確定提供在該數(shù)據(jù)碼字中的第一、隨后以及最后的碼字的時(shí)間,以便與存儲(chǔ)在該CAM中的數(shù)據(jù)比較。如果提供了具有一個(gè)省缺碼字寬度的搜索數(shù)據(jù)碼字,則在每一個(gè)寬度擴(kuò)展邏輯電路中的該匹配輸出信號(hào)都被提供到該優(yōu)先級(jí)編碼器,并且該進(jìn)位輸出信號(hào)被保持在一個(gè)非啟動(dòng)狀態(tài)。然而,如果提供到該CAM的搜索數(shù)據(jù)碼字是一個(gè)多碼字鏈的第一碼字,則每一個(gè)匹配線輸出信號(hào)都被設(shè)置為指示一個(gè)不匹配,即被抑制,并且每一個(gè)進(jìn)位輸出信號(hào)都被傳送到下一個(gè)寬度擴(kuò)展電路。如果提供到該CAM的搜索數(shù)據(jù)碼字是一個(gè)多碼字鏈的隨后的碼字,則每一個(gè)匹配線輸出信號(hào)都指示一個(gè)不匹配,并且每一個(gè)進(jìn)位輸出信號(hào)都由該進(jìn)位輸入信號(hào)和該中間匹配線結(jié)果的邏輯組合產(chǎn)生,并且被類似地傳送到下一個(gè)寬度擴(kuò)展電路。如果提供該CAM的搜索數(shù)據(jù)碼字是一個(gè)多碼字鏈的最后碼字,則如果該進(jìn)位輸入信號(hào)和該中間匹配線結(jié)果的邏輯組合都被啟動(dòng),每一個(gè)匹配線輸出信號(hào)都指示一個(gè)匹配。結(jié)果是,直至在一個(gè)多碼字?jǐn)?shù)據(jù)鏈中的最后碼字已經(jīng)被與該CAM的內(nèi)容比較為止,一個(gè)匹配結(jié)果將不被提供到該優(yōu)先級(jí)編碼器。因此這種方案只在嚴(yán)格匹配多個(gè)碼字的搜索中才有效。結(jié)果是,這一方案的缺點(diǎn)是得不到該中間的搜索結(jié)果。例如,如果一個(gè)最接近的匹配發(fā)生在提供該多碼字搜索數(shù)據(jù)的最后的碼字之前,則該最接近匹配結(jié)果將實(shí)際上是屏蔽。
因此,仍然需要一種CAM,其能夠搜索可變寬度的數(shù)據(jù)碼字并且其中的數(shù)據(jù)碼字的存儲(chǔ)實(shí)現(xiàn)該CAM的高效使用。
發(fā)明概要一種按內(nèi)容尋址的存儲(chǔ)器(CAM),用于在關(guān)于一個(gè)存儲(chǔ)數(shù)據(jù)碼字序列的搜索中產(chǎn)生中間搜索結(jié)果,該CAM包括CAM單元的多個(gè)行,每一個(gè)單元用于以該數(shù)據(jù)碼字的順序存儲(chǔ)一個(gè)數(shù)據(jù)碼字;多個(gè)匹配線,每一個(gè)匹配線都耦合到CAM單元的一個(gè)對(duì)應(yīng)行,每一個(gè)匹配線用于產(chǎn)生一個(gè)對(duì)應(yīng)于的匹配線信號(hào);耦合到該匹配線的一個(gè)優(yōu)先級(jí)編碼器,用于響應(yīng)一個(gè)匹配線信號(hào)而產(chǎn)生一個(gè)匹配地址;以及多個(gè)邏輯電路,每一個(gè)邏輯電路耦合到對(duì)應(yīng)的匹配線,用于響應(yīng)一個(gè)指令信號(hào)而有選擇地把該匹配線信號(hào)耦合到該優(yōu)先級(jí)編碼器,該指令信號(hào)用于指令該CAM產(chǎn)生關(guān)于一個(gè)新搜索或關(guān)于一個(gè)先前搜索的繼續(xù)搜索的一個(gè)匹配地址輸出,使得出現(xiàn)在該序列中的任何中間位置的數(shù)據(jù)碼字序列的部分都響應(yīng)等于該存儲(chǔ)數(shù)據(jù)碼字序列的一部分的輸入搜索數(shù)據(jù)而提供匹配結(jié)果。
附圖描述以實(shí)例而又不打算限制本發(fā)明范圍的方式示出本發(fā)明的特征和優(yōu)點(diǎn),
本發(fā)明的具體實(shí)施例將參照下列附圖描述

圖1是根據(jù)本發(fā)明實(shí)施例的CAM的示意簡(jiǎn)化方框圖;圖2是表示用于圖1的CAM陣列的搜索定時(shí)的一個(gè)定時(shí)示意圖;圖3是表示圖1的一個(gè)CAM陣列部分的方框圖;圖4是表示用于圖3的CAM陣列的匹配線定時(shí)的一個(gè)定時(shí)示意圖;圖5是一個(gè)示意圖,示出存儲(chǔ)在圖1的CAM陣列中的幾個(gè)按序編址位置的示例數(shù)據(jù);圖6(a)和6(b)是用于一個(gè)CAM的搜索數(shù)據(jù)序列的示意圖;圖7(a)和7(b)是分別使用圖6(a)和圖6(b)中的搜索數(shù)據(jù)搜索操作的定時(shí)圖;圖8是表示在根據(jù)本發(fā)明另一實(shí)施例的CAM中存儲(chǔ)的數(shù)據(jù)的示意圖;圖9是應(yīng)用到圖8中示出的CAM數(shù)據(jù)的搜索序列的示意圖;圖10是表示存儲(chǔ)在根據(jù)本發(fā)明另一實(shí)施例的CAM單元中的數(shù)據(jù)的示意圖;和圖11是表示根據(jù)本發(fā)明一個(gè)實(shí)施例的用于處理匹配線輸出的一個(gè)電路的示意圖。
最佳實(shí)施例的詳細(xì)描述在下列描述中,相同的數(shù)字在附圖中表示相同的結(jié)構(gòu)。
參考圖1,其中示出根據(jù)本發(fā)明一個(gè)實(shí)施例而構(gòu)成為128k×72比特輸入的單個(gè)[128k×72不是9M]CAM陣列100。一個(gè)72比特的碼字被接入在一個(gè)72比特?cái)?shù)據(jù)總線上用于三個(gè)目的當(dāng)執(zhí)行搜索操作時(shí)提供72比特的搜索數(shù)據(jù);提供寫入數(shù)據(jù)的72比特用于存儲(chǔ)輸入項(xiàng);以及讀出72比特,以便下載已經(jīng)存儲(chǔ)在該表格中的輸入項(xiàng)。該數(shù)據(jù)總線是雙向的數(shù)據(jù)總線,使得其能夠適應(yīng)這三個(gè)功能。該CAM包括一個(gè)優(yōu)先級(jí)編碼器和多個(gè)匹配分解器(MMR)120,其操作和結(jié)構(gòu)在待決美國(guó)專利申請(qǐng)09/954,074中有所描述,盡管能夠采用其它傳統(tǒng)的優(yōu)先級(jí)編碼電路而不影響本發(fā)明的該實(shí)施例,但是美國(guó)專利申請(qǐng)09/954,074被結(jié)合在此參考。實(shí)質(zhì)上,該優(yōu)先級(jí)編碼器和多個(gè)匹配分解器102接收作為輸入的全部匹配線鎖存輸出,并且產(chǎn)生一個(gè)最高優(yōu)先級(jí)匹配地址。在檢索過(guò)程中,與每一個(gè)匹配線相關(guān)的該匹配線鎖存器107傳送該搜索結(jié)果,即在針對(duì)每一個(gè)輸入項(xiàng)的存儲(chǔ)數(shù)據(jù)和搜索數(shù)據(jù)之間的一個(gè)比較的″符合(hit)″(匹配)或″失合(miss)″(不匹配)結(jié)果。該優(yōu)先級(jí)編碼器和MMR(多匹配分解器)120把該128k的″符合″或″失合″指示信號(hào)轉(zhuǎn)換成表示該最重要的″符合″的單個(gè)最高的優(yōu)先級(jí)地址從最高到最低優(yōu)先級(jí)組構(gòu)存儲(chǔ)位置。另外,指示在該陣列中是否已經(jīng)出現(xiàn)一個(gè)匹配的(MATCH)比特被提供作為一個(gè)輸出。而且一個(gè)多匹配MM標(biāo)志輸出提供作為一個(gè)輸出,指示是否已經(jīng)出現(xiàn)了多個(gè)匹配。如果沒(méi)有″符合″(即匹配),則該MATCH比特保持為邏輯″低″值。如果至少有一個(gè)“符合”,則該MATCH比特將被設(shè)置為邏輯″高″值。如果在任意給定搜索中出現(xiàn)一個(gè)以上的“符合”,則該MATCH比特將設(shè)置為邏輯″高″值,并且該多匹配MM標(biāo)志也將被設(shè)置為邏輯″高″值。
參考圖2,其中示出對(duì)于該CAM陣列100執(zhí)行的三個(gè)典型搜索的操作系列。在系統(tǒng)時(shí)鐘信號(hào)CLK的第一上升沿,搜索數(shù)據(jù)S1被時(shí)鐘輸入到CAM中。大體在兩個(gè)半(2 1/2)時(shí)鐘周期204后,可得到搜索匹配地址(MA)的結(jié)果R1。以CAM陣列輸出由MATCH=1和MM=0指示的單個(gè)匹配。該結(jié)果是可供在第三個(gè)時(shí)鐘邊沿206上由外部電路(沒(méi)所示)鎖存,因此稱為等待時(shí)間3操作,即在檢索指令的發(fā)出和搜索結(jié)果的可得到之間的3個(gè)系統(tǒng)時(shí)鐘周期的延遲。這幾個(gè)時(shí)鐘周期是CAM內(nèi)部需要的時(shí)鐘周期,用于搜索數(shù)據(jù)的鎖存、對(duì)數(shù)據(jù)格式化以便搜索、預(yù)充電匹配線、產(chǎn)生針對(duì)每一個(gè)輸入項(xiàng)的匹配結(jié)果、編碼該最重要的匹配以及驅(qū)動(dòng)該輸出接端。
通過(guò)實(shí)施一個(gè)內(nèi)部流水線結(jié)構(gòu),可以在每時(shí)鐘邊沿上執(zhí)行搜索。搜索數(shù)據(jù)S2導(dǎo)致的是一個(gè)″失合″,所以沒(méi)有匹配地址輸出。搜索S3數(shù)據(jù)導(dǎo)致的是一個(gè)多匹配(設(shè)置MM=高值),使得只有該最重要的匹配地址R3出現(xiàn)在MA總線輸出上。
參考圖3,其中示出三態(tài)CAM 300的單元陣列320的一個(gè)小子集。每一個(gè)三態(tài)單元322都包含兩個(gè)表示為bk0和bk1的用于存儲(chǔ)兩比特?cái)?shù)據(jù)的存儲(chǔ)元件,以及用于比較存儲(chǔ)數(shù)據(jù)和搜索數(shù)據(jù)的比較晶體管。存儲(chǔ)元件可以是任意類型的靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)或動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM)單元,這兩種存儲(chǔ)元件在本專業(yè)是公知的。三態(tài)數(shù)據(jù)被存為下面的表1所示。該陣列中的每一個(gè)單元行形成一個(gè)數(shù)據(jù)碼字,該行中的每一單元都耦合到匹配線ML。匹配線ML0-MLn被逐一通過(guò)分別的預(yù)充電晶體管耦合到Vdd。該晶體管由一個(gè)啟動(dòng)邏輯″低″預(yù)充電信號(hào)PRE控制。陣列中的單元列被耦合到各自的搜索線S01;S00;S11;S10;SN1;SN0。
表格1

按照相同的格式把搜索數(shù)據(jù)加到每一列。
參考圖4,其中示出了在針對(duì)圖3的CAM陣列的搜索操作過(guò)程中該控制和數(shù)據(jù)信號(hào)的一個(gè)定時(shí)圖。在每一時(shí)鐘周期的開(kāi)始,PRE信號(hào)被脈沖到邏輯″低″值,以把每一個(gè)匹配線ML充電到一個(gè)正的供電電平Vdd。隨后在搜索線上啟動(dòng)搜索數(shù)據(jù),例如在圖4中,三示出個(gè)順序搜索,第一個(gè)是對(duì)應(yīng)于以邏輯″1″進(jìn)行的搜索Sx0=1和Sx1=0;第二個(gè)是對(duì)應(yīng)于以邏輯″0″進(jìn)行的搜索Sx0=0和Sx1=1;以及第三個(gè)是對(duì)應(yīng)于以邏輯″無(wú)關(guān)″狀態(tài),即實(shí)際上屏蔽CAM單元的狀態(tài)進(jìn)行的搜索,Sx0=0和Sx1=0。因此,對(duì)于此最佳實(shí)施例來(lái)說(shuō),通常任何存儲(chǔ)一個(gè)″無(wú)關(guān)″狀態(tài)的CAM單元都將不能把該匹配線從其預(yù)充電的″高″狀態(tài)放電成Vdd狀態(tài)。在其中搜索數(shù)據(jù)是一個(gè)″無(wú)關(guān)″(即Sx0=0,Sx1=0)狀態(tài)的列中的任何CAM單元也將不能下拉該匹配線。如果存儲(chǔ)在單元中的數(shù)據(jù)匹配將搜索數(shù)據(jù),則該具體單元將不下拉該匹配線。只有在CAM單元沒(méi)有把″無(wú)關(guān)″數(shù)據(jù)存儲(chǔ)在該單元中或該搜索線上、并且一個(gè)單元中存儲(chǔ)的數(shù)據(jù)與該搜索數(shù)據(jù)互補(bǔ)的情況下(即bk0=Sk1和bk0=Sk0),該匹配線才被放電,以指示一個(gè)″失合″狀態(tài)。耦合到其對(duì)應(yīng)匹配線的任何單元上的一個(gè)″失合″狀態(tài)都將導(dǎo)致一個(gè)整行的″失合″狀態(tài)。換句話說(shuō),匹配線被預(yù)充電至一個(gè)″符合″狀態(tài),并且由在任一相關(guān)單元上的″失合″狀態(tài)放電。
如參照?qǐng)D1討論的那樣,鎖存在單個(gè)匹配線鎖存器中的該″符合/失合″指示信號(hào)被提供到該優(yōu)先級(jí)編碼器/多匹配分解器電路部分,該電路提供最高優(yōu)先級(jí)的“符合”的單個(gè)編碼地址。CAM中的輸入項(xiàng)按照從最低優(yōu)先級(jí)到最高優(yōu)先級(jí)的順序構(gòu)制。
到目前為止,根據(jù)本發(fā)明一個(gè)實(shí)施例的CAM陣列的通常操作是被提供作為用于構(gòu)成由本發(fā)明解決的具體問(wèn)題的背景。如在發(fā)明背景部分中簡(jiǎn)要描述的那樣,本發(fā)明解決的具體問(wèn)題涉及如何處理一個(gè)可變碼字寬度搜索的匹配線結(jié)果。更具體地說(shuō),期望快速和靈便地提供針對(duì)其碼字寬度大于存儲(chǔ)在CAM陣列中的省缺碼字寬度的搜索碼字的搜索結(jié)果。如先前描述的那樣,Pereira的專利中描述的傳統(tǒng)方案僅在搜索數(shù)據(jù)的比特和存儲(chǔ)在CAM的分別行中數(shù)據(jù)的比特之間嚴(yán)格匹配的情況下才提供一個(gè)″匹配″結(jié)果,并且僅在搜索了整個(gè)搜索字符串之后才提供這樣的一個(gè)匹配結(jié)果。結(jié)果是,雖然一個(gè)寬碼字(例如URL)有可能已經(jīng)存儲(chǔ)在CAM中,但是在當(dāng)僅對(duì)于該碼字的一部分執(zhí)行搜索的情況下,該寬碼字將不能被用于標(biāo)識(shí)一個(gè)″匹配″。其它記載的電路也不能實(shí)現(xiàn)這一目標(biāo)。
通過(guò)參考一個(gè)實(shí)例進(jìn)一步說(shuō)明此問(wèn)題。因此參考圖5,其中示出一個(gè)符號(hào)陣列,象征性地表示被用于存儲(chǔ)各種長(zhǎng)度的URL的一個(gè)CAM陣列的幾行內(nèi)容的取樣。該符號(hào)陣列上的每一單元都表示需要CAM的8比特的該URL的一個(gè)符號(hào)??瞻鬃址挥糜趫D中指示的位置,從而允許嚴(yán)格匹配出現(xiàn)。因此圖5中描述的結(jié)構(gòu)可與一個(gè)72比特寬的CAM陣列相比。如可從該實(shí)例中看到的那樣,在該CAM陣列中的各種輸入項(xiàng)可以對(duì)應(yīng)于由用戶訪問(wèn)的連續(xù)網(wǎng)頁(yè)。如果用戶先前已經(jīng)在″www.mosaid.com/licensing″訪問(wèn)了URL,則其連續(xù)網(wǎng)頁(yè)被存儲(chǔ)在該CAM中,下一次用戶想簡(jiǎn)單地接入網(wǎng)頁(yè)″www.mosaid.com″,除非該確切的URL已經(jīng)存儲(chǔ)在該CAM中,在該CAM中將不產(chǎn)生一個(gè)匹配地址。作為這種嚴(yán)格匹配需求的結(jié)果,可能需要把由用戶在同一個(gè)站點(diǎn)接入的每一URL都必須被輸入到該CAM,以便確保一個(gè)嚴(yán)格匹配。這是CAM空間的數(shù)據(jù)項(xiàng)中的浪費(fèi)。換句話說(shuō),假設(shè)不是地址″www.mosaid.com″,存儲(chǔ)在行0和1中地址對(duì)應(yīng)于″www.mosaid.com/ip″,并且用戶想接入″www.mosaid.com″。即使在地址行0、2和5出現(xiàn)針對(duì)與″www.mosai″對(duì)應(yīng)的72比特字的一個(gè)部分的多個(gè)匹配,該U.S.6252789專利建議的現(xiàn)有技術(shù)的方案也不會(huì)輸出一個(gè)匹配地址。
因此本發(fā)明提供了解決這一問(wèn)題的方案。根據(jù)本發(fā)明的一個(gè)實(shí)施例,具有的碼字寬度比存儲(chǔ)在CAM中的省缺碼字寬度更寬的一個(gè)搜索數(shù)據(jù)字符串被分段成具有在該CAM中被接連搜索的省缺寬度的一組碼字。在每一個(gè)搜索的結(jié)束時(shí),中間搜索結(jié)果被提供到該優(yōu)先級(jí)編碼器和多個(gè)匹配分解器。一旦已經(jīng)搜索了該組碼字中的最后碼字,用戶就能夠根據(jù)該中間搜索結(jié)果來(lái)確定哪個(gè)碼字是該最佳匹配,并且如果需要的話,則將繼續(xù)進(jìn)行進(jìn)一步更多的限定搜索。
該改進(jìn)的CAM的優(yōu)點(diǎn)可以通過(guò)參考圖6(a)示出的取樣搜索數(shù)據(jù)輸入而示出,該6(a)示出的取樣搜索數(shù)據(jù)輸入被用于CAM的內(nèi)容((圖5示出)。對(duì)于數(shù)據(jù)碼碼字D5來(lái)說(shuō),可以根據(jù)該CAM被搜索的方式,即根據(jù)是否期望一個(gè)嚴(yán)格匹配或是否期望一個(gè)部分匹配而存儲(chǔ)空白字符或″無(wú)關(guān)″字符。這些符號(hào)將由CAM的持卡人在CAM的內(nèi)容被初始化時(shí)寫入。圖7(a)示出根據(jù)本發(fā)明從對(duì)應(yīng)于搜索圖6(a)中的數(shù)據(jù)用戶角度來(lái)看的搜索定時(shí),以便在搜索操作過(guò)程中提供中間搜索結(jié)果。在該CAM(沒(méi)示出)中的一個(gè)指令譯碼器接收每一個(gè)連續(xù)的檢索指令,并且產(chǎn)生對(duì)應(yīng)于每一個(gè)搜索碼字的一個(gè)指令比特,指示該72比特的搜索碼字是否表示一個(gè)新的搜索操作或一個(gè)繼續(xù)的搜索操作。
參照?qǐng)D6(a)和圖7(a),假設(shè)該搜索輸入是用戶想接入的URL″www.mosaid.com/licensing/patents role.htm″。該URL被分解成圖6(a)示出的五個(gè)72比特的搜索碼字D1-D5。該搜索輸入的每一個(gè)72比特搜索碼字D1-D5都在該時(shí)鐘信號(hào)的上升沿隨著一個(gè)對(duì)應(yīng)于指令字(INST)被加到該CAM。在該指令字中的一個(gè)比特(CONT/NEW)指示它的對(duì)應(yīng)搜索碼字是否為一個(gè)新的搜索碼字或一個(gè)繼續(xù)搜索的搜索碼字。根據(jù)圖5示出的CAM陣列的內(nèi)容,包括部分″www.mosai″的第一個(gè)72比特的搜索碼字D1在地址0、2和5產(chǎn)生多個(gè)匹配。該CAM電路因此認(rèn)定該MATCH比特和一個(gè)多匹配標(biāo)志(MM)為邏輯″高″值,并且輸出該最高優(yōu)先級(jí)匹配地址MA=0。對(duì)于與部分URL″d.com/lic″對(duì)應(yīng)的隨后72比特的搜索碼字D2,以地址3和6指示匹配,并且該最高優(yōu)先級(jí)匹配地址被輸出MA=3。在執(zhí)行第三個(gè)搜索并且提供D3(包括部分URL″e(cuò)nsing/pa″)之后,沒(méi)有進(jìn)一步的匹配。結(jié)果是,由于有兩個(gè)多匹配結(jié)果和沒(méi)有進(jìn)一步的匹配結(jié)果出現(xiàn),所以用戶很可以根據(jù)提供的中間的多個(gè)匹配結(jié)果而繼續(xù)更精確的搜索。應(yīng)該指出,不同于抑制這些中間搜索結(jié)果的現(xiàn)有技術(shù)的方案,中間的多個(gè)匹配結(jié)果MA=0、MA=3是在搜索了整個(gè)URL的搜索之前提供的。
從該中間的匹配地址輸出中,用戶能夠確定對(duì)于前兩個(gè)連續(xù)的搜索碼字來(lái)說(shuō)存在有針對(duì)搜索輸入的一部分的匹配。用戶可以發(fā)現(xiàn),這種部分匹配表明其中可能有存儲(chǔ)在該CAM中的一個(gè)URL地址,它包含了繼續(xù)該搜索而實(shí)質(zhì)尋找對(duì)于一個(gè)更精確搜索數(shù)據(jù)碼字的嚴(yán)格匹配的足夠信息。根據(jù)此信息,如圖6(b)中所示第二個(gè)搜索序列″www.mosaid.com/licensing″能被提供到該CAM。如果把已有技術(shù)的方案使用在此情況,則由于不存在直接匹配,而該搜索的結(jié)果將是一個(gè)″失合″。但是在本發(fā)明的情況下,圖6(b)中示出的第二搜索序列的結(jié)果將是一個(gè)多匹配,具有最高優(yōu)先級(jí)匹配地址MA=0的輸出、最高優(yōu)先級(jí)匹配地址MA=3的輸出、以及最后的單個(gè)匹配MA=4的輸出。該最后的單個(gè)匹配MA=4的輸出是最佳匹配URL。在此情況中,搜索數(shù)據(jù)中的不用的后綴字符被設(shè)置為″無(wú)關(guān)″。即使發(fā)現(xiàn)了一個(gè)嚴(yán)格匹配,該CAM也將不象已有技術(shù)方案的情況那樣來(lái)屏蔽或抑制該發(fā)現(xiàn)的部分匹配,所以如果先前的地址(MA=0和MA=3)沒(méi)有用的話,則用戶(而不是CAM自己)能夠選擇忽略該先前的地址(MA=0和MA=3)。對(duì)于該搜索的定時(shí)圖在圖7(b)中示出。
另外,不象圖5示出的那樣把URL存儲(chǔ)在該CAM中,可以解析或分段該URL,使得以一個(gè)新CAM碼字位置開(kāi)始而存儲(chǔ)每一個(gè)分段,即沒(méi)有分段相交一個(gè)CAM碼字邊界。圖8示出了在根據(jù)本發(fā)明的另一實(shí)施例的存儲(chǔ)裝置中,表示URL″www.mosaid.com/licensing/whatis_patent.htm″的存儲(chǔ)的一個(gè)實(shí)例。如可以看到的那樣,與圖5示出的裝置比較,此裝置節(jié)省了三個(gè)存儲(chǔ)位置。通常,如果正在存儲(chǔ)的URL是緊密相關(guān)的,則使用這類分析數(shù)據(jù)存儲(chǔ)是有益的。如果將要存儲(chǔ)在CAM中的URL不相關(guān),則這樣一個(gè)方案需要的空間將比參考圖5描述的方案需要的空間更多。此方案還給出在單個(gè)搜索序列中的最佳匹配,而不必象在前面實(shí)例中那樣必須提交另一組輸入來(lái)解析一個(gè)MM狀態(tài)。通過(guò)插入空白字符或通過(guò)在該輸入字符串中插入″無(wú)關(guān)″來(lái)使得一個(gè)分段產(chǎn)生一個(gè)“符合”,此方案還給出尋找該確切存儲(chǔ)的URL的靈活性。
利用圖10所示的輸入搜索數(shù)據(jù)序列″www.mosaid.com/licensing/patents-role.htm″執(zhí)行對(duì)于圖9所示存儲(chǔ)數(shù)據(jù)的一個(gè)搜索,將導(dǎo)致匹配MA=0、1、2、3和4,隨后是失合。即使該輸入序列比先前方案中的輸入序列更長(zhǎng),也將在單個(gè)傳送中獲得該結(jié)果,從而避免象參考圖6(b)和7(b)討論的那樣需要一個(gè)第二搜索。
如可以從圖9示出的實(shí)例中所見(jiàn),針對(duì)該分析的數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)器需求較小,因?yàn)椴槐刂貜?fù)該前綴,雖然這可能隨著共享一個(gè)共同前綴的URL的數(shù)量而根據(jù)具體情況改變。一個(gè)進(jìn)一步的變型是采用壓縮的數(shù)據(jù)結(jié)構(gòu),但是利用后綴″無(wú)關(guān)″字符檢索。在此情況中,輸入項(xiàng)0到4將是不必要的。
參考圖11,示出根據(jù)本發(fā)明一個(gè)實(shí)施例的電路,用于處理匹配線信號(hào)以便支持可變碼字寬度搜索。能夠從指令解碼該CONT/NEW信號(hào)或其可以是在該指令字中的一個(gè)單獨(dú)的比特。通過(guò)鎖存該組合搜索的結(jié)果,而不是僅該單獨(dú)的匹配結(jié)果,碼字搜索能夠被中斷用于背景操作。例如,用于表格維護(hù)的讀出或?qū)懭氩僮髂軌虮徊迦朐趫D6示出的任意搜索操作之間,而該多碼字搜索功能將不受影響。
在圖12中,通過(guò)反相器125放大匹配線信號(hào)ML0、ML1、ML2...,然后輸入到一個(gè)邏輯電路122中。邏輯電路122包括針對(duì)每個(gè)對(duì)應(yīng)的匹配線輸出的一個(gè)″與或非″門123和一個(gè)反相器124。每個(gè)″與或非″門123以一個(gè)各自的輸入端接收由該反相器125驅(qū)動(dòng)的該匹配線輸出,并且作為另一輸入,是CONT/NEW邏輯信號(hào)與通過(guò)反相器124提供在一個(gè)低優(yōu)先級(jí)匹配線上的一個(gè)寄存匹配條件的結(jié)果的組合?!迮c或非″門123的輸出被作為輸入提供到匹配線D型觸發(fā)器126,其Q輸出被提供到該優(yōu)先級(jí)編碼器和多個(gè)匹配分解器127。
邏輯電路122的操作可以說(shuō)明如下。在一個(gè)新的多碼字搜索的開(kāi)始,第一個(gè)數(shù)據(jù)碼字被加到CAM陣列以便產(chǎn)生在該匹配線上的單獨(dú)的匹配指示。同時(shí)從指令譯碼器提供適當(dāng)?shù)谋忍?,產(chǎn)生被設(shè)置為邏輯″0″的CONT/NEW控制信號(hào),指示一個(gè)新的多碼字搜索的開(kāi)始。結(jié)果是,該D型觸發(fā)器將鎖存單獨(dú)匹配線的結(jié)果,而與相鄰的匹配線觸發(fā)器的狀態(tài)無(wú)關(guān)。根據(jù)多碼字搜索的隨后的碼字,通過(guò)該指令字的適當(dāng)?shù)慕獯a,內(nèi)部CONT/NEW控制信號(hào)被設(shè)置為邏輯″1″。一旦CONT/NEW已經(jīng)設(shè)置為邏輯″1″,指示一個(gè)多碼字搜索的隨后碼字正被搜索,則為了任一D型觸發(fā)器記錄一個(gè)匹配,在該CAM陣列中的其相關(guān)的匹配線以及先前匹配線位置都將必須該先前周期中寄存一個(gè)匹配。如能夠在圖12中看到的那樣,每一個(gè)D型觸發(fā)器接收其相關(guān)的″與或非″門123的輸出,該″與或非″門123把相關(guān)的匹配線的結(jié)果與經(jīng)反相器124從前個(gè)D型觸發(fā)器提供一個(gè)低優(yōu)先級(jí)匹配線的結(jié)果相組合。以此方式,從由最低到最高優(yōu)先級(jí)的每一匹配線產(chǎn)生的一個(gè)累積的匹配在一個(gè)多碼字的搜索過(guò)程中從一個(gè)位置傳送到一個(gè)位置,產(chǎn)生中間的匹配結(jié)果,供一個(gè)傳統(tǒng)的優(yōu)先級(jí)編碼器和多個(gè)匹配分解器電路使用。
雖然URL被用作一個(gè)實(shí)例,但實(shí)際上能夠執(zhí)行任何種類的搜索。例如能夠以同樣方式存儲(chǔ)語(yǔ)句和短語(yǔ)。如圖11所示,語(yǔ)句″is this awretched demibee″能夠以解析模式存儲(chǔ)在72比特的6個(gè)碼字之內(nèi)。在此情況中,假設(shè)用戶想尋找不一定以該輸入項(xiàng)的開(kāi)頭為起始的一個(gè)短語(yǔ),例如想尋找″demibee″。該已有技術(shù)方案將不能提供信息所在放置的提示,因?yàn)橐延屑夹g(shù)要尋找的是一個(gè)嚴(yán)格匹配。結(jié)果是,一個(gè)部分結(jié)果將被放棄,因此失去了已知在該CAM中有該搜索數(shù)據(jù)的一個(gè)匹配的優(yōu)勢(shì)。但是,利用本發(fā)明的提供部分匹配結(jié)果的能力,將指示用戶在該CAM的一個(gè)確定的地址,在此情況中中是在碼字4和碼字5,包含了該數(shù)據(jù)搜索。據(jù)此結(jié)果,用戶能夠確定該發(fā)現(xiàn)的數(shù)據(jù)是否與該期望的搜索相關(guān)。
在所有的這些實(shí)例中,在整個(gè)輸入數(shù)據(jù)字符串被輸入之前獲得一個(gè)部分匹配結(jié)果的好處是清楚顯見(jiàn)的。一個(gè)部分匹配的URL將給予該路由器關(guān)于一個(gè)網(wǎng)頁(yè)可能處在何處的一個(gè)良好的指示。這要比反復(fù)地搜索該URL的連續(xù)截?cái)喟姹径钡揭粋€(gè)匹配出現(xiàn)有高得多的效率。
雖然已經(jīng)結(jié)合具體實(shí)施例和具體的使用描述了本發(fā)明,但是在不背離本發(fā)明精神的條件下,本領(lǐng)域的技術(shù)人員將能夠想到各種修改。
說(shuō)明書(shū)中已經(jīng)采用的術(shù)語(yǔ)和表達(dá)式被用作描述的術(shù)語(yǔ)與非限制,其中無(wú)意使用這種術(shù)語(yǔ)和表達(dá)式來(lái)排除展示和描述的等效特征或等效部分,而是認(rèn)識(shí)到可能在本發(fā)明的范圍之內(nèi)有各種修改。
權(quán)利要求
1.一種按內(nèi)容尋址的存儲(chǔ)器(CAM),用于在對(duì)于一個(gè)存儲(chǔ)的數(shù)據(jù)碼字序列搜索中產(chǎn)生中間的搜索結(jié)果,該CAM包括(a)CAM單元的多個(gè)行,每一個(gè)單元用于存儲(chǔ)在所說(shuō)數(shù)據(jù)碼字序列中的一個(gè)數(shù)據(jù)碼字;(b)多個(gè)匹配線,每一個(gè)匹配線都耦合到CAM單元的一個(gè)對(duì)應(yīng)行,每一個(gè)匹配線用于產(chǎn)生一個(gè)對(duì)應(yīng)于的匹配線信號(hào);(c)耦合到所說(shuō)的匹配線的一個(gè)優(yōu)先級(jí)編碼器,用于響應(yīng)一個(gè)匹配線信號(hào)而產(chǎn)生一個(gè)匹配地址;和(d)多個(gè)邏輯電路,每一個(gè)邏輯電路耦合到對(duì)應(yīng)的匹配線,用于響應(yīng)一個(gè)指令信號(hào)而有選擇地把所說(shuō)的匹配線信號(hào)耦合到所說(shuō)的優(yōu)先級(jí)編碼器,所說(shuō)的指令信號(hào)用于指令該CAM產(chǎn)生關(guān)于一個(gè)新搜索或關(guān)于一個(gè)先前搜索的繼續(xù)搜索的一個(gè)匹配地址輸出,使得出現(xiàn)在該序列中的任何中間位置的數(shù)據(jù)碼字序列的部分都響應(yīng)等于該存儲(chǔ)數(shù)據(jù)碼字序列的一部分的輸入搜索數(shù)據(jù)而提供匹配結(jié)果。
2.如權(quán)利要求1中定義的一種CAM,包括耦合到對(duì)應(yīng)匹配線的一個(gè)匹配鎖存器,用于鎖存所說(shuō)的匹配線信號(hào),以便響應(yīng)一個(gè)時(shí)鐘信號(hào)鎖存一個(gè)匹配信號(hào)。
3.如權(quán)利要求2中定義的一種CAM,針對(duì)每個(gè)匹配線,所說(shuō)的邏輯電路用于把其匹配線信號(hào)與來(lái)自一個(gè)先前匹配線的匹配信號(hào)進(jìn)行邏輯組合,以便把一個(gè)信號(hào)輸出到所說(shuō)的匹配鎖存器,使得只要當(dāng)前搜索碼字匹配并且在先前搜索中該先前匹配鎖存器鎖存了一個(gè)匹配,則在一個(gè)繼續(xù)搜索中該匹配鎖存器將鎖存一個(gè)匹配。
全文摘要
一種按內(nèi)容尋址的存儲(chǔ)器(CAM),用于在對(duì)于一個(gè)存儲(chǔ)的數(shù)據(jù)碼字序列搜索中產(chǎn)生中間的搜索結(jié)果。該CAM包括CAM單元的多個(gè)行,每一個(gè)單元用于存儲(chǔ)在該數(shù)據(jù)碼字序列中的一個(gè)數(shù)據(jù)碼字;多個(gè)匹配線,每一個(gè)匹配線都耦合到CAM單元的一個(gè)對(duì)應(yīng)行,每一個(gè)匹配線用于產(chǎn)生一個(gè)對(duì)應(yīng)于的匹配線信號(hào)。耦合到該匹配線的一個(gè)優(yōu)先級(jí)編碼器,用于響應(yīng)一個(gè)匹配線信號(hào)而產(chǎn)生一個(gè)匹配地址;以及多個(gè)邏輯電路,每一個(gè)邏輯電路耦合到對(duì)應(yīng)的匹配線,用于響應(yīng)一個(gè)指令信號(hào)而有選擇地把該匹配線信號(hào)耦合到該優(yōu)先級(jí)編碼器,該指令信號(hào)用于指令該CAM產(chǎn)生關(guān)于一個(gè)新搜索或關(guān)于一個(gè)先前搜索的繼續(xù)搜索的一個(gè)匹配地址輸出,使得出現(xiàn)在該序列中的任何中間位置的數(shù)據(jù)碼字序列的部分都響應(yīng)等于該存儲(chǔ)數(shù)據(jù)碼字序列的一部分的輸入搜索數(shù)據(jù)而提供匹配結(jié)果。
文檔編號(hào)G11C15/04GK1561522SQ02819188
公開(kāi)日2005年1月5日 申請(qǐng)日期2002年9月27日 優(yōu)先權(quán)日2001年9月28日
發(fā)明者彼得·吉林厄姆 申請(qǐng)人:睦塞德技術(shù)公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1