專利名稱:可編程并行查找存儲器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明的實施方案涉及內(nèi)容可尋址存儲器(CAM)結(jié)構(gòu),更具體地,涉及可由軟件程序靈活操縱的CAM結(jié)構(gòu)。
背景技術(shù):
CAM本身是公知的。CAM是可以通過其內(nèi)容來訪問的存儲器。CAM一般包括存儲數(shù)據(jù)的不同條目(entry)。每個CAM條目都包括值匹配邏輯,該邏輯將存儲在各個條目中的數(shù)據(jù)與輸入值進行比較,以確定它們是否相同。當接收到輸入字時,逐個位地將輸入與存儲在CAM中的每個字進行比較。有些CAM要求輸入字的所有位與存儲在CAM中的字之一的所有位全都匹配。而有些CAM只需要預定的位匹配。無論如何,由各個CAM條目執(zhí)行的比較都是并行執(zhí)行的,并且提供對數(shù)據(jù)非??斓脑L問。
相反,軟件程序是依次來識別由微處理器、數(shù)字控制器等(統(tǒng)稱為“處理器”)執(zhí)行的操作。一般地,利用軟件的內(nèi)容搜索需要在大量數(shù)據(jù)項上迭代地進行搜索,直到檢測出值匹配。已經(jīng)提出了各種算法來減少需要執(zhí)行搜索的迭代次數(shù)。例如,哈希(Hash)算法可以使用輸入值的一部分作為數(shù)據(jù)鏈表的直接索引。但是,最終還是需要在整個鏈表上的迭代搜索??紤]一個通過電話號碼來對顧客記錄進行列表的系統(tǒng)。哈希表可以使用顧客號碼的一部分(例如最后五個數(shù)字)作為具有10,000個條目(10^n,其中n是借助其對哈希表進行索引的數(shù)字的個數(shù))的哈希表的索引。哈希表中的每個條目都將包括指向條目鏈表的指針。鏈表中的每個條目將存儲正被搜索的數(shù)字的余數(shù),指向鏈表中的下一項的指針(如果條目不是匹配的話),以及指向與所述顧客相關(guān)聯(lián)的數(shù)據(jù)記錄的指針(如果條目是匹配的話)。繼續(xù)上述例子,十位數(shù)字的電話號碼可能需要每個具有10,000個條目的鏈表(10^I-n,其中I是搜索參數(shù)的總長度,n是哈希表索引的長度)。為了完整地對電話號碼進行搜索,可能需要對整個鏈表的迭代檢查。執(zhí)行哈希表查找的軟件程序可能需要搜索并且逐個地檢查所有的10,000個條目,直到它找到了匹配條目或者它斷定根本沒有任何匹配。當然,這種迭代搜索會消耗大量的時間。
由此,在本領(lǐng)域中需要一種提供數(shù)據(jù)并行查找的軟件控制過程。
發(fā)明內(nèi)容
本發(fā)明的實施方案提供了可由軟件程序操縱來提供并行硬件查找的并行查找存儲器(PLM)結(jié)構(gòu)。根據(jù)本發(fā)明的一個方面,提供了一種并行查找存儲器,包括內(nèi)容可尋址存儲器(CAM)陣列和控制器,所述CAM陣列包括多個CAM條目,每個CAM條目包括至少兩個存儲位置,所述位置之一包括值匹配邏輯,所述控制器響應于外部命令,將搜索值應用于所述CAM條目的一個子集,所述子集和搜索值是由所述外部命令來標識的。
根據(jù)本發(fā)明的另一個方面,提供了一種處理器核,包括調(diào)度器,其接收指令并將所述指令指派給適當?shù)膱?zhí)行單元;和其中包括并行查找存儲器的執(zhí)行單元組,所述并行查找存儲器包括內(nèi)容可尋址存儲器(CAM)陣列,用以生成結(jié)果數(shù)據(jù)以存儲在目的寄存器中。
根據(jù)本發(fā)明的又一個方面,提供了一種處理器,包括具有執(zhí)行指令的執(zhí)行單元的處理器核;具有不同級的緩存層次結(jié)構(gòu),包括在L1緩存的級上提供的、與執(zhí)行單元相互通信的并行查找存儲器(PLM),所述PLM具有存儲數(shù)據(jù)的多個內(nèi)容可尋址存儲器(CAM)條目,其中響應于從所述執(zhí)行單元接收的PLM指令,所述PLM確定在查找值和存儲在CAM條目中的數(shù)據(jù)之間是否存在匹配。
根據(jù)本發(fā)明的再一個方面,提供了一種多處理器計算機系統(tǒng),包括耦合到公共通信總線上的多個主體(agent),所述多個主體具有處理數(shù)據(jù)的處理器和與所述處理器進行通信以存儲由所述處理器處理的數(shù)據(jù)的存儲器,所述存儲器進一步包括接收搜索值的存儲器控制器;和具有內(nèi)容可尋址存儲器(CAM)陣列的并行查找存儲器(PLM),所述PLM在所述搜索值和存儲在所述CAM陣列中的數(shù)據(jù)之間執(zhí)行值匹配。
根據(jù)本發(fā)明的再一個方面,提供了一種處理器,包括具有執(zhí)行指令的執(zhí)行單元的處理器核;耦合到所述執(zhí)行單元的查找存儲器,其中,響應于具有一個或多個定義了所述查找存儲器內(nèi)的查找范圍的操作數(shù)(operand)的指令,所述查找存儲器確定在查找值和存儲在內(nèi)容可尋址存儲器(CAM)條目中的數(shù)據(jù)之間是否存在匹配。
圖1圖示了根據(jù)本發(fā)明一種實施方案的并行查找存儲器。
圖2圖示了根據(jù)本發(fā)明另一種實施方案的并行查找存儲器。
圖3是圖示了根據(jù)本發(fā)明的一種實施方案適于使用的示例性處理器核的框圖。
圖4是圖示了根據(jù)本發(fā)明的一種實施方案在適于使用的一個主體內(nèi)的功能單元的簡化框圖。
圖5是圖示了根據(jù)本發(fā)明的另一種實施方案適于使用的示例性微處理器系統(tǒng)的框圖。
具體實施例方式
本發(fā)明的實施方案提供了可由軟件程序操縱來提供并行硬件查找的并行查找存儲器(PLM)結(jié)構(gòu)。硬件PLM結(jié)構(gòu)可以包括PLM控制器和內(nèi)容可尋址存儲器(CAM)陣列。CAM陣列可以包括多個CAM條目,每個CAM條目具有一個CAM部分和一個指針部分。PLM可被映射到用戶空間上,并且直接由寫邏輯(未示出)來寫,這在存儲系統(tǒng)領(lǐng)域中是常見的技術(shù)。使用軟件程序,CAM陣列可以被劃分成一個或多個同時代表不同結(jié)構(gòu)的“區(qū)段”。用戶可以在一個區(qū)段內(nèi)指定對其執(zhí)行值匹配的CAM條目。因此,本發(fā)明的實施方案大大減小了現(xiàn)有技術(shù)方法的匹配和掃描延時。同時,本發(fā)明的實施方案提供了一種通用CAM結(jié)構(gòu),可以使用軟件程序?qū)崿F(xiàn)對上述結(jié)構(gòu)的靈活操縱,以滿足各種應用的需要。
圖1圖示了根據(jù)本發(fā)明一種實施方案的并行查找存儲器100。PLM 100可以包括CAM陣列110和PLM控制器120。CAM陣列110可以包括多個CAM條目。雖然在圖1中僅示出了20個CAM條目,但是CAM陣列110可以包括所期望的任何數(shù)量的條目。每個CAM條目可以包括CAM部分130和指針部分140。CAM部分130可以存儲數(shù)據(jù)。它還可以包括值匹配邏輯,該邏輯允許對存儲在CAM條目中的數(shù)據(jù)和輸入線121上的查找值進行比較。值匹配邏輯將查找值與存儲在各個CAM條目中的值進行比較,如果它們匹配,則可以在輸出端上生成一個命中值。命中值可以使得指針部分140輸出其中所存儲的數(shù)據(jù)。命中值可以從CAM陣列110中輸出,用以指示發(fā)生了值匹配。指針部分140可以存儲代表了指向以下數(shù)據(jù)項的指針的數(shù)據(jù),所述數(shù)據(jù)項是關(guān)聯(lián)于存儲在關(guān)聯(lián)的CAM部分130中的搜索參數(shù)而存儲的。根據(jù)本發(fā)明的一種實施方案,指針部分140可以是64位指針。CAM部分130還可以有64位來匹配其各自的指針部分140。本領(lǐng)域的技術(shù)人員將會清楚的是,CAM部分130和指針部分140都可以包括所期望的任意數(shù)量的位,以滿足具體實現(xiàn)方式的需要。
PLM控制器120在一種實施方案中管理PLM 100的查找功能。PLM控制器120可以與存在于處理系統(tǒng)中其他某處的外部主體相接口,以接收查找命令并且管理PLM 100的操作以執(zhí)行這些命令。例如,PLM命令可以標識PLM 100將對其執(zhí)行值匹配的數(shù)據(jù)以及其上將執(zhí)行值匹配的PLM條目的范圍。在圖1所示出的實施例中,所述范圍由PLM 100內(nèi)的CAM條目的起始地址和結(jié)束地址來標識??商鎿Q地,所述范圍可以由起始地址和一個長度值來標識,所述長度值標識出從起始位置開始其上應當進行搜索的CAM條目的數(shù)量。作為進一步的實施方案,可以使用符號標識符(下面將討論)來標識所述范圍。響應于PLM命令,PLM控制器120識別出其上將進行搜索的CAM條目,并將查找值應用于所指定的條目。
因此,PLM 100可被用作大的CAM,其具有可被分配用于多種目的的若干部分。第一范圍的CAM條目(塊1)可被分配用于第一數(shù)據(jù)陣列,獨立的第二范圍的CAM條目(塊2)可被分配用于具有不同目的的第二數(shù)據(jù)陣列??梢杂绍浖凑疹愃朴诖笠?guī)模隨機訪問存儲器(RAM)的分配和解除分配的方式來執(zhí)行并管理CAM分配。
對于超大PLM(例如,有數(shù)以百萬甚至更多的條目),PLM 100可以被組織成多個塊。PLM 100還可以包括塊地址單元150和命中/擊不中(hit/miss)合并單元160。塊地址單元150可以控制發(fā)生在起始條目和結(jié)束條目之間的、輸入信號到不同塊的CAM條目的傳輸。例如,時序控制單元150可以將輸入信號到(多個)塊的傳輸分布在多個時鐘周期中,以管理功耗和/或時序問題。命中/擊不中合并單元160也可以從中生成總輸出信號。
因此,本發(fā)明的實施方案提供了兩個指令,這兩個指令可被包括在為PLM提供了直接搜索能力的處理器指令集中。當被執(zhí)行時,所述指令將由處理器內(nèi)的執(zhí)行單元來解譯,并且如上所述地被提交給PLM。指令的示例性格式可以包括OPCODE<SRegister>,<ERegister>,OPCODE2<VRegister>,<DRegister>,其中opcode和opcode2是唯一地標識PLM查找操作的數(shù)據(jù)樣式。SRegister標識出存儲將被搜索的某一范圍CAM條目的起始處的寄存器,ERegister標識出用于標識將被搜索的某一范圍CAM條目的末尾處的寄存器,VRegister標識出將從中讀出搜索值的寄存器,并且DRegister標識出在命中的情況下從PLM輸出的數(shù)據(jù)將被存儲其中的寄存器。根據(jù)本發(fā)明一種實施方案的PLM 100在具有四個寄存器的處理器或系統(tǒng)(例如x86處理器)中可以具有特定的應用。
因此,根據(jù)本發(fā)明的實施方案,PLM 100可以提供通用CAM結(jié)構(gòu),該結(jié)構(gòu)可被用戶操縱來代表所期望的任何設備或電路元件。為了這樣做,使用軟件程序的用戶可以使用PLM指令將PLM 100劃分成不同的區(qū)段。此外,通過指定多個CAM條目中將對其執(zhí)行值匹配的準確部分,本發(fā)明的實施方案可以大大減小匹配和掃描延時。
圖2圖示了根據(jù)本發(fā)明第二實施方案的并行查找存儲器200。PLM 200可以包括CAM陣列210和PLM控制器220。CAM陣列210可以包括多個CAM條目。每個CAM條目可以包括存儲數(shù)據(jù)和值匹配邏輯的CAM部分230,還可以包括存儲指針的指針部分240,所述指針用于返回與存儲在CAM部分230中的數(shù)據(jù)相關(guān)的數(shù)據(jù)項。
PLM 200還可以包括分配表250,該表標識出CAM存儲器空間中已被分配用于每個用戶進程的部分。因此,分配表250可以存儲起始ID 252和結(jié)束ID 254,代表了每個已分配空間的起始位置和結(jié)束位置。表條目還可以包括第三部分256,用于存儲每個已分配區(qū)域的用戶進程ID。第三部分256可以包括同樣支持內(nèi)容尋址的值匹配邏輯。
在操作過程中,通過用戶進程ID 256來尋址PLM的已分配區(qū)域就足夠了,不用明確標識起始位置和結(jié)束位置。響應于查找命令,PLM控制器220可以將輸入的標識符與存儲在表250中的用戶進程ID進行比較。如果匹配的話,PLM控制器220可以從中取得起始位置和結(jié)束位置。PLM 200此后可以將搜索值應用于CAM陣列210中所識別出的位置。
圖2的實施方案特別適用于以下應用,所述應用利用的處理器具有僅三個寄存器的指令格式,例如是Itanium處理器,商業(yè)上可從位于加利福尼亞州圣克拉拉的Intel公司獲得。所述指令格式可以采用以下形式OPCODE<SRegister>,<VRegister>,<DRegister>,其中opcode是唯一地標識PLM查找操作的數(shù)據(jù)樣式,SRegister值標識出存儲了PLM搜索范圍的符號標識符的寄存器,VRegister值標識出存儲了搜索值的寄存器,DRegister值標識出將存儲搜索結(jié)果的寄存器。
前面的討論給出了一種通用CAM結(jié)構(gòu),使用軟件程序可以以用戶所期望的任何方式來靈活地操縱該結(jié)構(gòu)。用戶可以識別存儲器結(jié)構(gòu)中對其執(zhí)行值匹配的特定部分。繼而,這可以允許用戶避免對匹配條目的反復搜索,并且減小匹配和掃描延時。
圖3是根據(jù)本發(fā)明實施方案的處理器核300的簡化框圖。本發(fā)明的原理可以應用于從亂序執(zhí)行中獲益的處理器核,以實現(xiàn)更快的數(shù)據(jù)訪問。處理器核300中可以具有指令緩存310、指令譯碼器320、寄存器分配器330和寄存器文件340。指令緩存310一般存儲將由處理器核300執(zhí)行的指令。即使這些指令可以被亂序執(zhí)行,它們也都按照程序順序被存儲在指令緩存310中。指令譯碼器320可以對指令進行譯碼,并且確定如何執(zhí)行它們。寄存器分配器330可以分配寄存器文件340中可存儲所述指令的結(jié)果數(shù)據(jù)的寄存器(未示出)。寄存器文件340可以存儲所述指令的源數(shù)據(jù)和結(jié)果數(shù)據(jù)。
處理器核300還可以包括調(diào)度器350以及各種執(zhí)行單元。調(diào)度器350可以在指令準備好被執(zhí)行時調(diào)度這些指令。執(zhí)行單元可以包括PLM 360、算術(shù)邏輯單元(ALU)370等。這些執(zhí)行單元可以執(zhí)行指令。在操作中,分配器330可以將PLM指令轉(zhuǎn)發(fā)給調(diào)度器350。當PLM指令及其關(guān)聯(lián)數(shù)據(jù)變得容易獲得時,調(diào)度器350可以將PLM指令分派到PLM 360。當指令被亂序執(zhí)行時,可以執(zhí)行值匹配操作。
調(diào)度器350可以檢查各條指令,并且基于指令類型將它們指派給適當?shù)膱?zhí)行單元。調(diào)度器350可以調(diào)度指令來執(zhí)行,并使得源數(shù)據(jù)從所識別的源寄存器中被取出并被傳遞到所指派的執(zhí)行單元。結(jié)果數(shù)據(jù)被存儲在寄存器文件340中已指派的寄存器中。
根據(jù)一種實施方案,PLM 360可以作為處理器核300的執(zhí)行單元來使用。在這方面,它可以在調(diào)度器350的控制下接收控制命令和源數(shù)據(jù),并生成結(jié)果數(shù)據(jù)以存儲在目的寄存器中。在這方面,PLM360可以增補在當前處理器核中常見的執(zhí)行單元。
當前的處理器包括多層存儲器系統(tǒng)。例如,處理器通常包括位于核系統(tǒng)之外的較大片上緩存,用于存儲指令和/或數(shù)據(jù)以供核隨后使用。有些處理器包括多層緩存(cache),例如L1緩存以及更大的L2緩存,用以提高處理器性能。圖3的指令緩存可被認為是最低層的緩存,被稱為L0。一般地,L1緩存比L0緩存更大但更慢,L2緩存比L1緩存更大但更慢。緩存管理過程可以有利地分層次管理在整個緩存中所存儲的多種類型數(shù)據(jù),以提高處理器性能。
根據(jù)本發(fā)明的實施方案,可以在緩存層次結(jié)構(gòu)中的不同級上提供上述實施方案的PLM。圖3的實施方案圖示了作為執(zhí)行單元300來使用的PLM,這與L0緩存相似??商鎿Q地,如圖4所示,PLM可被提供在緩存層次結(jié)構(gòu)420中的一個級上,使得PLM 400分別類似于L1緩存或L2緩存。圖4圖示了在L1緩存460的級上提供PLM 400的實施例。根據(jù)這些實施方案,PLM 400提供了基于CAM的L1或L2緩存的對應物。
在這種實施方案中,PLM具有與處理核410之間的接口。當處理核410確定從PLM 400搜索數(shù)據(jù)時,它向PLM 400提供命令,該命令標識出搜索值以及將被搜索的一定范圍的條目。如果發(fā)生命中的話,PLM 400用命中所標識的搜索結(jié)果作出響應。一般地,進出核410的數(shù)據(jù)交換并不特意寄存在核的寄存器文件內(nèi)。相反,核內(nèi)的加載單元(未示出)可以管理與外部PLM 450之間的數(shù)據(jù)交換,并且管理對寄存器的訪問,以實現(xiàn)數(shù)據(jù)傳輸。
根據(jù)本發(fā)明的實施方案,PLM也可以作為系統(tǒng)存儲器的對應物來使用,如圖5所示。圖5圖示了包括耦合到公共通信總線的多個主體510、520的系統(tǒng)500。所述主體可以包括微處理器、數(shù)字信號處理器、橋接口芯片、存儲器控制器等。一般地,主體通過在通信總線上發(fā)起事務來交換數(shù)據(jù)。所述事務相對于所尋址的數(shù)據(jù)(例如讀或?qū)?、所尋址數(shù)據(jù)的存儲器位置以及數(shù)據(jù)自身的傳輸來標識所要采取的動作。
在圖5所示的實施方案中,PLM 590可以按照類似于當前計算機系統(tǒng)的系統(tǒng)RAM 580的方式被耦合到存儲器控制器570。因此,總線上的處理器510或其他主體可以發(fā)起標識出PLM查找的事務,例如提供搜索值作為事務的地址并且標識出搜索范圍。響應于事務的類型,存儲器控制器570可以調(diào)動PLM系統(tǒng)590,并將所述地址傳遞到PLM 590作為其搜索值。PLM系統(tǒng)590可以對所選擇的范圍執(zhí)行PLM查找操作,并且生成標識出是否發(fā)生命中的響應。如果已發(fā)生了命中,則PLM系統(tǒng)590可以輸出與所述搜索值相關(guān)聯(lián)的存儲數(shù)據(jù)。存儲器控制器570可以用包括來自PLM 590的輸出的響應對所投寄的事務作出響應。
本發(fā)明的上述實施方案有利地提供了一種可由程序指令直接管理并使用的內(nèi)容可尋址存儲器。這樣,它就可以為軟件設計者提供一種在通常的軟件設計中不存在的搜索能力。例如,PLM存儲器系統(tǒng)可被用來完全取代大多數(shù)哈希查找函數(shù)的操作。與參考哈希表,然后迭代地步進通過長的鏈表數(shù)據(jù)結(jié)構(gòu),以獲取指向所期望數(shù)據(jù)記錄的指針的設計軟件不同,PLM系統(tǒng)可以在少至單個處理步驟中取得所期望的數(shù)據(jù)結(jié)構(gòu)。包括存儲在CAM部分中的搜索值以及在關(guān)聯(lián)的存儲部分中的數(shù)據(jù)記錄指針的PLM存儲器將用單個并行查找操作來直接訪問指向所期望數(shù)據(jù)記錄的指針。
這里具體地圖示并描述了本發(fā)明的幾種實施方案。然而,將理解的是,在不偏離本發(fā)明的精神和預想范圍的情況下,本發(fā)明的多種修改和變化都被以上教導所覆蓋,并屬于所附權(quán)利要求書的范圍當中。
權(quán)利要求
1.一種并行查找存儲器,包括內(nèi)容可尋址存儲器(CAM)陣列,包括多個CAM條目,每個CAM條目包括至少兩個存儲位置,所述位置之一包括值匹配邏輯,以及控制器,所述控制器響應于外部命令,將搜索值應用于所述CAM條目的一個子集,所述子集和搜索值由所述外部命令來標識。
2.如權(quán)利要求1所述的并行查找存儲器,其中所述外部命令包括以下數(shù)據(jù),所述數(shù)據(jù)標識出作為所述子集的起始位置和結(jié)束位置的CAM條目。
3.如權(quán)利要求1所述的并行查找存儲器,其中所述外部命令包括以下數(shù)據(jù),所述數(shù)據(jù)標識出作為所述子集的起始位置的CAM條目以及代表將被搜索的CAM條目的數(shù)量的長度標識符。
4.如權(quán)利要求1所述的并行查找存儲器,進一步包括具有以下條目的分配表,所述條目存儲了所述CAM陣列中在用部分的起始標識符和結(jié)束標識符,并且存儲了各個部分的符號標識符,并且其中所述外部命令通過對應的符號標識符來標識所述子集。
5.如權(quán)利要求1所述的并行查找存儲器,其被配備在處理器核中。
6.如權(quán)利要求1所述的并行查找存儲器,其被配備在位于處理器核之外的處理器芯片中,作為一層緩存的對應物。
7.如權(quán)利要求1所述的并行查找存儲器,其被配備在計算機系統(tǒng)中,所述計算機系統(tǒng)包括耦合到外部通信總線的多個主體,其中所述并行查找存儲器被配備在第一主體中,而處理器被配備在第二主體中。
8.一種處理器核,包括調(diào)度器,其接收指令并將所述指令指派給適當?shù)膱?zhí)行單元;并且所述執(zhí)行單元的組包括并行查找存儲器,所述并行查找存儲器包括內(nèi)容可尋址存儲器(CAM)陣列,用以生成結(jié)果數(shù)據(jù)以存儲在目的寄存器中。
9.如權(quán)利要求8所述的處理器核,其中所述內(nèi)容可尋址存儲器(CAM)陣列包括多個CAM條目,每個CAM條目包括至少兩個存儲位置,所述位置之一包括值匹配邏輯。
10.如權(quán)利要求8所述的處理器核,進一步包括控制器,所述控制器響應于外部命令,將搜索值應用于所述CAM條目的一個子集,所述子集和搜索值是由所述外部命令來標識的。
11.如權(quán)利要求10所述的處理器核,其中所述外部命令包括以下數(shù)據(jù),所述數(shù)據(jù)標識出作為所述子集的起始位置和結(jié)束位置的CAM條目。
12.如權(quán)利要求10所述的處理器核,其中所述外部命令包括以下數(shù)據(jù),所述數(shù)據(jù)標識出作為所述子集的起始位置的CAM條目以及代表將被搜索的CAM條目的數(shù)量的長度標識符。
13.如權(quán)利要求10所述的處理器核,其中所述并行查找存儲器進一步包括具有以下條目的分配表,所述條目存儲了所述CAM陣列中在用部分的起始標識符和結(jié)束標識符,并且存儲了各個部分的符號標識符,并且其中所述外部命令通過對應的符號標識符來標識所述子集。
14.如權(quán)利要求8所述的處理器核,進一步包括接收所述指令的指令緩存;對從所述指令緩存接收的指令進行譯碼的指令譯碼器;存儲所述指令的源數(shù)據(jù)和結(jié)果數(shù)據(jù)的寄存器文件;以及分配器,所述分配器從所述指令譯碼器接收指令,并且分配所述寄存器文件中可存儲所述指令的數(shù)據(jù)的寄存器,所述分配器將所述指令轉(zhuǎn)發(fā)給所述調(diào)度器。
15.一種處理器,包括具有執(zhí)行指令的執(zhí)行單元的處理器核;具有不同級的緩存層次結(jié)構(gòu),包括在L1緩存的級上提供的、與執(zhí)行單元通信的并行查找存儲器(PLM),所述PLM具有多個內(nèi)容可尋址存儲器(CAM)條目來存儲數(shù)據(jù),其中響應于從所述執(zhí)行單元接收的PLM指令,所述PLM確定在查找值和存儲在CAM條目中的數(shù)據(jù)之間是否存在匹配。
16.如權(quán)利要求15所述的處理器,其中所述PLM包括內(nèi)容可尋址存儲器(CAM)陣列,包括多個CAM條目,每個CAM條目包括至少兩個存儲位置,所述位置之一包括值匹配邏輯,以及控制器,所述控制器響應于外部命令,將搜索值應用于所述CAM條目的一個子集,所述子集和搜索值由所述外部命令來標識。
17.如權(quán)利要求16所述的處理器,其中所述外部命令包括以下數(shù)據(jù),所述數(shù)據(jù)標識出作為所述子集的起始位置和結(jié)束位置的CAM條目。
18.如權(quán)利要求16所述的處理器,其中所述外部命令包括以下數(shù)據(jù),所述數(shù)據(jù)標識出作為所述子集的起始位置的CAM條目以及代表將被搜索的CAM條目的數(shù)量的長度標識符。
19.一種多處理器計算機系統(tǒng),包括耦合到公共通信總線上的多個主體,所述多個主體具有處理數(shù)據(jù)的處理器和與所述處理器進行通信以存儲由所述處理器處理的數(shù)據(jù)的存儲器,所述存儲器進一步包括接收搜索值的存儲器控制器;以及具有內(nèi)容可尋址存儲器(CAM)陣列的并行查找存儲器(PLM),所述PLM在所述搜索值和存儲在所述CAM陣列中的數(shù)據(jù)之間執(zhí)行值匹配。
20.如權(quán)利要求19所述的系統(tǒng),其中所述CAM陣列包括多個CAM條目,每個CAM條目包括至少兩個存儲位置,所述位置之一包括值匹配邏輯。
21.如權(quán)利要求19所述的系統(tǒng),其中所述PLM進一步包括控制器,所述控制器響應于外部命令,將搜索值應用于所述CAM條目的一個子集,所述子集和搜索值是由所述外部命令來標識的。
22.如權(quán)利要求21所述的系統(tǒng),其中所述外部命令包括以下數(shù)據(jù),所述數(shù)據(jù)標識出作為所述子集的起始位置和結(jié)束位置的CAM條目。
23.如權(quán)利要求21所述的系統(tǒng),其中所述外部命令包括以下數(shù)據(jù),所述數(shù)據(jù)標識出作為所述子集的起始位置的CAM條目以及代表將被搜索的CAM條目的數(shù)量的長度標識符。
24.一種處理器,包括具有執(zhí)行指令的執(zhí)行單元的處理器核;耦合到所述執(zhí)行單元的查找存儲器,其中,響應于具有一個或多個定義了所述查找存儲器內(nèi)的查找范圍的操作數(shù)的指令,所述查找存儲器確定在查找值和存儲在內(nèi)容可尋址存儲器(CAM)條目中的數(shù)據(jù)之間是否存在匹配。
25.如權(quán)利要求24所述的處理器,其中所述處理器將結(jié)果數(shù)據(jù)項存儲在由所述指令的操作數(shù)指定的目的位置中。
26.如權(quán)利要求24所述的處理器,其中所述查找存儲器是上下文敏感的查找存儲器。
27.如權(quán)利要求24所述的處理器,其中所述查找存儲器將輸入的標識符與和所述查找存儲器相關(guān)聯(lián)的進程標識進行比較。
全文摘要
提供了一種并行查找存儲器(PLM)。PLM包括具有多個CAM條目的內(nèi)容可尋址存儲器(CAM)陣列。每個CAM條目具有至少兩個存儲位置,所述位置之一包括值匹配邏輯。PLM還包括PLM控制器,其響應于外部命令,將搜索值應用于CAM條目的一個子集。所述子集和搜索值是由所述外部命令來標識的,所述外部命令包括標識出作為所述子集的起始和結(jié)束位置的CAM條目的數(shù)據(jù)、或者標識出作為所述子集的起始的CAM條目以及代表將被搜索的CAM條目的數(shù)量的長度標識符的數(shù)據(jù)。PLM可被配備在處理器核中,配備在位于處理器核之外的處理器芯片中作為一層緩存的對應物,或者被配備在具有耦合到外部通信總線的多個主體的微處理器計算機系統(tǒng)中,其中PLM位于第一主體中,而處理器位于第二主體中。
文檔編號G11C15/00GK1702773SQ20051007107
公開日2005年11月30日 申請日期2005年5月24日 優(yōu)先權(quán)日2004年5月25日
發(fā)明者舒布亨杜·穆克赫基 申請人:英特爾公司