專利名稱:具有增強能力的關聯存儲器的制作方法
技術領域:
本發(fā)明特別涉及計算機和通信系統(tǒng)、尤其是網絡路由器和交換機;更 具體地說,本發(fā)明涉及用于使用關聯存儲器執(zhí)行查找操作的方法和裝置, 所述關聯存儲器包括但不限于二進制和三進制內容可尋址存儲器,所述査 找操作可選地包括修改檢索關鍵字以生成查找字,響應于匹配特定條目強 制生成未命中指示,選擇性地確定使用哪些關聯存儲器塊來識別結果,和/ 或傳播錯誤指示。
背景技術:
通信業(yè)正在迅速地發(fā)生著變化,以適應新興的技術和日益增長的用戶 需求。這種對于新應用和現有應用的增強性能的用戶需求促使通信網絡和 系統(tǒng)供應商采用具有更高速度和容量(例如,更大帶寬)的網絡和系統(tǒng)。 為了實現這些目標,許多通信供應商常用的方法是使用分組交換技術。目 前,正越來越多地使用例如因特網協(xié)議(IP)的各種分組技術來建立和擴 展公共通信網絡和專用通信網絡。
例如交換機或路由器的網絡設備一般基于一個或多個標準接收、處理 以及轉發(fā)或丟棄分組,所述一個或多個分組包括分組使用的協(xié)議類型、分 組地址(例如,源、目的地、群)和所要求服務的類型或質量。此外,一 般對每個分組執(zhí)行一項或多項安全操作。但是在可以執(zhí)行這些操作之前, 一般必須對分組執(zhí)行分組分類操作。
訪問控制列表(ACL)和轉發(fā)判決等所需的分組分類是交換機和路由
器設計中的要求很高的部分。由于日益增大的分組速率和分組分類數目,
接收分組的分組分類正變得越來越難。例如,ACL要求以順序檢索ACL 規(guī)則的語義,在分組流標簽的字段子集上匹配分組。IP轉發(fā)要求最長前綴 匹配。
已知的分組分類的方法包括使用定制專用集成電路(ASIC)、定制電 路、軟件或固件控制處理器和關聯存儲器,所述關聯存儲器包括但不限于 二進制內容可尋址存儲器(二進制CAM)和三進制內容可尋址存儲器 (三進制CAM或TCAM)。每個二進制CAM的條目一般包括用于匹配 的值,而每個TCAM條目一般包括值和掩碼。關聯存儲器并行的將查找字 與所有條目相比較,并一般生成匹配査找字的最高優(yōu)先級的條目的指示。 在二進制CAM中如果查找字和條目值相同則條目匹配査找字,而在 TCAM中如果査找字和條目值中不被掩碼所指示的比特相同,則條目匹配 查找字,其中,被掩碼所指示的比特與比較操作不相關。
關聯存儲器在執(zhí)行分組分類操作中是非常有用的。在執(zhí)行分組分類 中,經常主要基于同樣的檢索關鍵字或其變量使用多個關聯存儲器并行地 或串行地執(zhí)行多個查找操作,因為一個查找操作可能與分組轉發(fā)有關而另 一個與服務質量的確定有關。人們期望關聯存儲器中新的功能、特征和機 制支持分組分類和其他的應用。
此外,所有的系統(tǒng)都可能發(fā)生錯誤。例如,在某些內容可尋址存儲器 中,作為記次失效(failure-in-time)錯誤的結果,可能發(fā)生數組奇偶校驗 錯誤,記次失效錯誤是半導體器件中常見的錯誤。此外,可能發(fā)生通信和 其他錯誤?,F有的系統(tǒng)已知能夠檢測某些錯誤并給出信號標明己發(fā)生了某 些錯誤條件,但是一般不能提供足夠的信息以識別并隔離錯誤。人們期望 新的功能以執(zhí)行錯誤檢測和識別。
發(fā)明內容
本發(fā)明公開了使用關聯存儲器執(zhí)行査找操作的方法和裝置。在一個實 施例中,接收檢索關鍵字,并識別修改映射?;谛薷挠成湫薷臋z索關鍵 字以生成查找字?;跂苏易謱Χ鄠€關聯存儲器條目執(zhí)行査找操作。在一
個實施例中,接收用戶ID (profile ID)并基于用戶ID識別修改映射,例 如從存儲器中獲取修改映射。在一個實施例中,還接收修改數據,并通過 基于修改映射以來自所述修改數據的數據替換檢索關鍵字中的一個或多個 比特或字節(jié)來修改檢索關鍵字。
在一個實施例中,每個關聯存儲器條目包括第一字段和第二字段,其 中,第一字段包括用于對查找字的匹配操作中的值,第二字段包括指示對 條目的成功匹配應當或不應當強制生成未命中結果的數據。在一個實施例 中,當執(zhí)行査找操作并且包括強制未命中指示的特定條目被識別為關聯存 儲器條目集(例如, 一個或多個條目、關聯存儲器塊、關聯存儲器等)中 的最高優(yōu)先級匹配條目時,基于該特定條目被識別為強制未命中條件,對 該集合的查找操作的結果或中間結果被解釋為未命中結果(即,不是對特 定條目的成功命中或匹配)。
在一個實施例中, 一般對于關聯存儲器的每個輸出,從存儲器中獲取 要選擇的關聯存儲器條目子集的指示以確定最終的查找結果。在一個實施 例中,通過一個或多個下游級聯關聯存儲器傳播所識別的錯誤條件指示。
所附權利要求具體闡明了本發(fā)明的特征。從下面結合附圖的詳細描述 中,可以最好地理解本發(fā)明及其優(yōu)點,在附圖中
圖1A-E是包括一個或多個使用關聯存儲器執(zhí)行査找操作的實施例的 各種示例性系統(tǒng)的方框圖。
圖2是包括一個或多個執(zhí)行査找操作的實施例的關聯存儲器的方框
圖3A-D圖示了用于一個執(zhí)行查找操作的實施例中的控制的各方面; 圖4A-G圖示了用于一個執(zhí)行査找操作的實施例中的關聯存儲器塊的 各方面;以及
圖5A-C圖示了用于一個執(zhí)行查找操作的實施例中的輸出選擇器的各 方面。
具體實施例方式
本發(fā)明公開了使用關聯存儲器執(zhí)行查找操作的方法和裝置,所述査找 操作包括但不限于基于修改映射修改關聯存儲器內的檢索關鍵字、響應于 包括強制未命中指示的最高優(yōu)先級匹配條目強制生成未命中條件、在各個 關聯存儲器塊或集或關聯存儲器條目庫中選擇以確定査找結果以及檢測并 傳輸錯誤條件。這里描述的實施例包括各種因素和限制,其中沒有一個因 素和限制是不可或缺的。每個權利要求獨立地從整體上陳述了本發(fā)明的某 一方面。而且,除了其他以外,描述的某些實施例可包括但不限于系統(tǒng)、 網絡、集成電路芯片、嵌入式處理器、ASIC、方法和包含指令的計算機可 讀介質。下文中描述的實施例實施了本發(fā)明范圍和精神內的各個方面和各 種配置,而附示了示例性的和非限制性的配置。
術語"分組"在這里被用來指所有類型的分組或任何其他的信息或數 據單位,包括但不限于固定長度單元和可變長度分組,其中的每一個都可 以被分割為更小的分組或單元,也可以不被分割為更小的分組或單元。術 語"分組"在這里也用來指分組自身以及分組指示,例如但不限于分組或 分組頭的全部或部分、數據結構值、指針或索引、或者分組的任何其他的 部分或標識。而且,這些分組可包含一種或多種類型的信息,包括但不限 于語音、數據、視頻和音頻信息。術語"項"在這里被用來指分組或任何 其他的信息或數據單位或塊。短語"處理分組"和"分組處理" 一般指的 是基于分組執(zhí)行某些步驟或動作,并且所述某些步驟或動作可以包括修改 和/或轉發(fā)分組,也可以不包括修改和/或轉發(fā)分組。
術語"系統(tǒng)"在這里一般被用來描述任何數目的組件、元件、子系 統(tǒng)、設備、分組交換元件、分組交換機、路由器、網絡、計算機和/或通信 設備或機制,或者這些組件的組合。術語"計算機"在這里一般被用來描 述任何數目的計算機,包括但不限于個人計算機、嵌入式處理元件和系
統(tǒng)、控制邏輯、ASIC、芯片、工作站、主機等等。術語"處理元件"在 這里一般被用來描述任何類型的處理機制或設備,例如處理器、ASIC、現 場可編程門陣列、計算機等等。術語"設備"在這里一般被用來描述任何 類型的機制,包括計算機或系統(tǒng)或其組件。術語"任務"和"過程"在這
里一般被用來描述任何類型的運行程序,包括但不限于計算機進程、任 務、線程、執(zhí)行應用、操作系統(tǒng)、用戶進程、設備驅動、本地代碼、機器 或其他語言等等,并且可以是交互式的和/或非交互式的、可以在本地和/ 或遠程執(zhí)行、可以在前臺和/或后臺執(zhí)行、可以在用戶端和/或操作系統(tǒng)地 址空間中執(zhí)行、可以是程序庫和/或孤立應用,并且不限于任何具體的存儲 器分區(qū)技術。附圖中圖示的步驟、連接以及信號和信息的處理包括但不限 于任何方框和流程圖以及消息序列圖,這些步驟、連接以及信號和信息的 處理可以相同的或不同的串行或并行順序執(zhí)行,以及/或者由不同的組件和 /或進程、線程等執(zhí)行,以及/或者經由不同的連接執(zhí)行,并且這些步驟、 連接以及信號和信息的處理可以與其他實施例中的其他功能組合,仍然在 本發(fā)明的范圍和精神內。
而且,術語"網絡"和"通信機制"在這里一般被用來描述一個或多 個網絡、通信介質或通信系統(tǒng)和例如消息傳遞、進程間通信、共享存儲器 等的內部通信機制,其中,所述通信介質或通信系統(tǒng)包括但不限于因特 網、個人或公共電話、蜂窩的、無線的、衛(wèi)星的、電纜的局域、城域和/或 廣域網絡,電纜的、電氣的連接、總線等等。
術語"存儲機制"包括任何類型的存儲器、存儲設備或者用來以任何 格式維持指令或數據的其他機制。"計算機可讀介質"是一個可擴展術 語,其包括任何存儲器、存儲設備、存儲機制和其他存儲和信令機制,所 述其他存儲和信令機制包括例如為網絡接口卡及其中的緩沖器的接口和設 備、任何通信設備與所接收和發(fā)送的信號、以及計算機化的系統(tǒng)可以中 斷、接收和/或發(fā)送的其他當前技術和正在發(fā)展的技術。術語"存儲器"包
括任何隨機存取存儲器(RAM)、只讀存儲器(ROM)、閃存、集成電 路和/或其他存儲器組件或元件。術語"存儲設備"包括任何固態(tài)存儲介 質、磁盤驅動器、磁盤、網絡化服務、磁帶驅動器和其他存儲設備。存儲 器和存儲設備可以存儲將由處理元件和/或控制邏輯執(zhí)行的計算機可讀指 令,以及由處理元件和/或控制邏輯操作的數據。術語"數據結構"是可擴 展的術語,其指任何數據元素、變量、數據結構、數據庫和/或一種或多種 組織方案,所述方案可以被應用到數據,來使得便于解釋該數據,或者便
于對數據執(zhí)行操作,所述方案例如但不限于存儲單元(memory location),或者設備、集合、隊列、樹、堆、列表、鏈接表、數組、表、 指針等。數據結構一般維持在存儲機制內。
術語"指針"和"鏈接"在這里一般被用來識別某些用于引用或者識 別另一個元件、組件或其他實體的機制,這些可以包括,但又不限于對存 儲器或者其他存儲機制或者其中的存儲單元、數據結構中的索引、值等的 引用。術語"關聯存儲器"指任何類型已知的或者將來會開發(fā)出來的關聯 存儲器,包括但不限于二進制和三進制內容可尋址存儲器、哈希表、TRIE 和其他數據結構等。
術語"一個實施例"在這里用來指一個具體實施例,其中每次引用 "一個實施例"可以指不同的實施例,并且在這里使用該術語描述相關聯 的特征、元素和/或限制時,盡管一個實施例一般可以包括所有這些特征、 元素和/或限制,但是反復使用該術語并不建立每個實施例都必須包括的相 關聯特征、元素和/或限制的累加集合。另外,短語"用于xxx的裝置"一 般包括計算機可讀介質,所述介質包含有用于執(zhí)行xxx的計算機可執(zhí)行指
另外,術語"第一"、"第二"等在這里一般被用來表示不同的單元 (例如,第一元件、第二元件)。這里使用這些術語并不必然意味著具有 順序,例如一個單元或者事件在另一個之前發(fā)生或者到來,而是提供了一 種區(qū)分具體單元的機制。此外,名詞單數時態(tài)的使用是非限制性的,其使 用一般包括一個或多個具體的項,而不是剛好一個(例如,使用詞"存儲 器" 一般指一個或多個存儲器,而不用必須指定"存儲器或多個存儲 器"、或"一個或多個存儲器"、或"至少一個存儲器"等)。而且,短 語"基于x"和"響應于x"被用來指出項x的最小集合,從該項x的最 小集合中可導出或導致某事或某物,其中"x"是可擴展的,而且沒有必 要描述在其上執(zhí)行操作等的項的完整列表。此外,短語"耦合到"被用來 指示兩個元件或設備之間的某種級別的直接連接或間接連接,耦合的一個 設備或者多個設備修改或不修改所耦合的信號或所傳輸的信息。術語"子 集"被用來指示一組集合的所有元素或不到所有的元素。而且,術語"或
者"在這里被用來識別一個或多個連接項、包括所有連接項的可替代選 擇。
本發(fā)明公開了使用關聯存儲器執(zhí)行査找操作的方法和裝置,所述查找 操作包括但不限于基于修改映射修改關聯存儲器內的檢索關鍵字、響應于 包括強制未命中指示的最高優(yōu)先級匹配條目強制生成未命中條件、在各個 關聯存儲器塊或集或關聯存儲器條目庫中選擇以確定查找結果以及檢測并 傳輸錯誤條件。在一個實施例中,每個塊從本地存儲器中獲取修改映射, 并基于該映射和接收的修改數據修改所接收的檢索關鍵字。在一個實施例 中,每個關聯存儲器條目包括指示對條目的成功匹配應當或不應當強制生 成未命中結果的字段。在一個實施例中,從存儲器中獲取在具體查找操作 中使用哪些關聯存儲器集或庫或條目的指示。
一個實施例通過識別、處理和傳送錯誤執(zhí)行錯誤檢測和處理,所述錯 誤可包括但不限于關聯存儲器條目中的數組奇偶校驗錯誤和通信錯誤,所 述通信錯誤例如是協(xié)議錯誤和輸入端口上的接口錯誤。數組奇偶校驗錯誤 的發(fā)生可能是記次失效錯誤的結果,所述記次失效錯誤一般存在于半導體 器件中。 一個實施例包括一種機制,所述機制在后臺掃描關聯存儲器條 目,并且識別出任何檢測的錯誤,并將其發(fā)送回控制處理器,以重寫或更 新有缺陷的條目。在一個實施例中,某些識別出的錯誤或接收的錯誤條件 是致命性的,在其中不能執(zhí)行任何處理。例如在一個實施例中,致命錯誤 導致異常中斷條件。作為響應,該器件停止進行中的査找操作,并僅僅轉 發(fā)錯誤和可能未命中信號。 一般地說,在包括關聯存儲器的系統(tǒng)中,如果 進行中的査找操作未被中斷,則在查找操作生成其結果時生成錯誤和可能 未命中信號,以維持器件之間的時序。
在一個實施例中,傳輸包括級聯或連接的關聯存儲器設備、指示任何 錯誤類型的錯誤狀態(tài)消息以及其對應源的信息以指示到下一個設備和/或控 制處理器的錯誤狀態(tài)。另外,傳送的信號可指示并在接收設備中生成異常 中斷條件。在一個實施例中,接收設備不執(zhí)行其下一個操作或接收指令, 或者接收設備可能中斷其當前操作或指令。而且,接收設備可能延時,也 可能不延時這樣的時間量以盡可能地維持操作的事務序列的時序,所述時
間量對應于接收設備的處理執(zhí)行或完成該操作或指令所需的時間。
圖1A-E是各種示例性系統(tǒng)和其配置的方框圖,這些示例性系統(tǒng)包括 使用關聯存儲器執(zhí)行査找操作的一個或多個實施例。首先,圖1圖示了系 統(tǒng)的一個實施例,所述系統(tǒng)可以是路由器或者其他通信或計算機系統(tǒng),用 于執(zhí)行查找操作以產生可用在分組處理中的結果。在一個實施例中,控制
邏輯110經由信號111對一個或多個關聯存儲器115進行編程和更新,所 述一個或多個關聯存儲器115例如但不限于一個或多個關聯存儲器設備、 庫(bank)和/或關聯存儲器條目集,所述關聯存儲器條目可以是也可以不 是相同的關聯存儲器設備和/或庫的一部分。在一個實施例中,控制邏輯 110還經由信號123對存儲器120編程。在一個實施例中,控制邏輯110 包括定制電路,所述定制電路例如但不限于分立電路、ASIC、存儲器設 備、處理器等。
在一個實施例中,分組處理器105接收分組101。除了其他操作(例 如,分組路由、安全等)之外,分組處理器105 —般基于一個或多個接收 的分組101中的一個或多個字段以及可能從存儲在數據結構中或從其他來 源獲得的信息,生成包括但不限于一種或多種分組流標識符的一個或多個 項。分組處理器105 —般產生査找值103,查找值103被提供給控制邏輯 110以向一個或多個關聯存儲器115提供控制和數據信息(例如,査找 字、修改數據、用戶(profile) ID等), 一個或多個關聯存儲器115執(zhí)行 查找操作并生成一個或多個結果117。在一個實施例中,結果117被存儲 器120用來產生結果125。然后,控制邏輯110基于結果117和/或結果 125,轉發(fā)結果107到分組處理器105。作為響應, 一個或多個接收的分組 被分組處理器105操作和轉發(fā),如分組109所指示的那樣。注意,結果 117、 125和107可包括錯誤條件的指示。
圖1B圖示了一個使用關聯存儲器執(zhí)行査找操作的實施例,所述查找 操作包括但不限于基于修改映射修改關聯存儲器內的檢索關鍵字、響應于 包括強制未命中指示的最高優(yōu)先級匹配條目強制生成未命中條件、在各個 關聯存儲器塊或集或關聯存儲器條目庫中選擇以確定查找結果以及檢測并 傳輸錯誤條件??刂七壿?30經由信號132對一個或多個關聯存儲器136
編程。另外,控制邏輯130向一個或多個關聯存儲器136提供控制和數據 信息(例如,査找字、修改數據、用戶ID等), 一個或多個關聯存儲器 136執(zhí)行査找操作以生成結果和錯誤信號134,結果和錯誤信號134由控 制邏輯130接收。
圖1C圖示了一個使用關聯存儲器執(zhí)行查找操作的實施例,所述查找 操作包括但不限于基于修改映射修改關聯存儲器內的檢索關鍵字、響應于 包括強制未命中指示的最高優(yōu)先級匹配條目強制生成未命中條件、在各個 關聯存儲器塊或集或關聯存儲器條目庫中選擇以確定查找結果以及檢測并 傳播錯誤條件??刂七壿?40經由信號141-143對關聯存儲器146-148編 程。另外,控制邏輯140向關聯存儲器146-148提供控制和數據信息(例 如,査找字、修改數據、用戶ID等),關聯存儲器146-148執(zhí)行査找操作 以生成結果和錯誤信號144-145。如圖所示每個累進級轉發(fā)錯誤消息到下 一級關聯存儲器或控制邏輯140。例如,關聯存儲器148經由信號145轉 發(fā)錯誤指示到控制邏輯140,其中,錯誤指示經由信號144接收。
而且,在一個實施例中,在器件140和146-148之間傳送的消息141-145中包括同步比特字段,其值以預定的周期間隔設置或改變,從而使得 每個器件140、 146-148都可預期該變化。 一個實施例使用單個同歩比特, 如果該比特在到器件146-148的請求或輸入數據141-145中設置,則器件 146-148將在對應的回復或輸出數據143-145中設置該比特。例如,在一個 實施例中,控制處理器或邏輯140在其請求數據141中周期性地設置同步 比特,也即每八個請求一次??刂铺幚砥骰蜻壿?40也在回復數據145中 監(jiān)視同步比特。如果有任意種類的錯誤改變了控制處理器或邏輯140與關 聯存儲器146-148之間的請求-回復關聯(或事務時序),則控制處理器或 邏輯140可檢測到該錯誤,并從該錯誤恢復(通過刷新流水線等)。
以這種方式,器件尤其是那些作為事務序列的一部分的器件,可以彼 此之間保持同步。當例如發(fā)生錯誤條件時,如傳送的指令信號中的未檢測 出的奇偶校驗錯誤(例如,奇偶校驗錯誤數超過了錯誤檢測機制),器件 之間的再同步是很重要的。存在這樣的可能性,即指令中的奇偶校驗錯誤 未被檢測出,且完全改變了事務時序。同樣地,可能存在其他類型的"未
知"錯誤,使得控制處理器或邏輯與關聯存儲器鏈之間脫離同步。
圖ID圖示了一個使用關聯存儲器執(zhí)行查找操作的實施例,所述查找 操作包括但不限于基于修改映射修改關聯存儲器內的檢索關鍵字、響應于 包括強制未命中指示的最高優(yōu)先級匹配條目強制生成未命中條件、在各個 關聯存儲器塊或集或關聯存儲器條目庫中選擇以確定査找結果以及檢測并
傳播錯誤條件??刂七壿?50經由信號151-153對關聯存儲器156-158編 程。另外,控制邏輯150向關聯存儲器156-158提供控制和數據信息(例 如,查找字、修改數據、用戶ID等),關聯存儲器156-158執(zhí)行查找操作 以生成結果和錯誤信號154-155,結果和錯誤信號154-155被傳送到控制邏 輯150。
圖1E圖示了系統(tǒng)180,系統(tǒng)180可以是路由器或者其他通信或計算機 系統(tǒng)的一部分,在一個實施例中,系統(tǒng)180用于當執(zhí)行查找操作時在多個 關聯存儲器單元之間分發(fā)條目并選擇性地使能部分的關聯存儲器單元。在 一個實施例中,系統(tǒng)180包括處理元件181、存儲器182、存儲設備183、 一個或多個關聯存儲器184以及連接到其他設備的接口 185,這些組件經 由一種或多種通信機制189 (為了說明目的,圖示為總線)耦合在一起。
系統(tǒng)180的各種實施例可包括或多或少的元件。系統(tǒng)180的操作一般 由處理元件181使用存儲器182和存儲設備183控制,以執(zhí)行一個或多個 任務或進程,例如使用一個或多個關聯存儲器184編程以及執(zhí)行査找操 作。存儲器182是一種類型的計算機可讀介質, 一般包括隨機存取存儲器 (RAM)、只讀存儲器(ROM)、閃存、集成電路和/或其他存儲器組 件。根據本發(fā)明的一個實施例,存儲器182—般存儲要被處理元件181執(zhí) 行的計算機可執(zhí)行指令和/或被處理元件181操作的數據以實現功能。存儲 設備183是另一種類型的計算機可讀介質, 一般包括固態(tài)存儲介質、磁盤 驅動器、磁盤、網絡化服務、磁帶驅動器和其他存儲設備。根據本發(fā)明的 一個實施例,存儲設備183 —般存儲要被處理元件181執(zhí)行的計算機可執(zhí) 行指令和/或被處理元件181操作的數據以實現功能。
在一個實施例中,處理元件181向一個或多個關聯存儲器184提供控 制和數據信息(例如,查找字、修改數據、用戶ID等), 一個或多個關
聯存儲器184執(zhí)行查找操作以生成查找結果和可能錯誤指示,査找結果和
可能錯誤指示被處理元件181接收并使用以及/或者經由接口 185被傳送到 其他設備。
圖2圖示了用在一個使用關聯存儲器執(zhí)行查找操作的實施例中的關聯 存儲器200,所述查找操作包括但不限于基于修改映射修改關聯存儲器內 的檢索關鍵字、響應于包括強制未命中指示的最高優(yōu)先級匹配條目強制生 成未命中條件、在各個關聯存儲器塊或集或關聯存儲器條目庫中選擇以確 定查找結果以及檢測并傳播錯誤條件。如圖所示,控制邏輯210接收可包 括編程信息的輸入控制信號202??刂七壿?10可依次地更新其內部的信 息和數據結構,對關聯存儲器塊218-219和/或輸出選擇器231-232編程/更 新。注意,在一個實施例中,每個關聯存儲器塊218-219包括一個或多個 關聯存儲器集或關聯存儲器條目庫以及用于執(zhí)行査找操作的邏輯或電路。
在一個實施例中,輸入數據210被關聯存儲器200接收,并被分發(fā)至 關聯存儲器塊218-219,并且在級聯配置中可能被轉發(fā)至其他的下游關聯 存儲器,其中,輸入數據210可包括但不限于檢索關鍵字和修改數據。另 外,輸入控制信息202被控制邏輯接收,并且在級聯配置中可能被轉發(fā)至 其他的下游關聯存儲器,其中,輸入控制信息202可包括但不限于用戶ID (例如,值)、指令、編程信息。另外,在一個實施例中,在級聯配置中 從前級的關聯存儲器接收前級的查找結果和/或錯誤指示或者由控制邏輯 210從其他設備接收前級的査找結果和/或錯誤指示。注意,在一個實施例 中,輸入數據201、輸入控制202、前級結果和錯誤203和/或其中的一部 分被直接傳送到關聯存儲器塊218-219和/或輸出選擇器231 -232。
控制邏輯210可能處理接收的信息,并且/或者經由塊控制信號211-212將接收的信息轉發(fā)至關聯存儲器塊218-219,以及經由選擇器控制信號 和前級結果215 (—般包括接收的用戶ID)將接收的信息轉發(fā)至輸出選擇 器231-232。另外,控制邏輯210可基于在接收的信息中檢測到的錯誤或 者響應于接收的錯誤條件指示,生成錯誤信號216。注意,在一個實施例 中,控制邏輯210僅僅分割或重新生成整個接收的輸入控制202和可選前 級結果和錯誤203的一部分,作為選擇器控制信號和前級結果信號215和/
或錯誤信號216。另外,控制邏輯210可以啟動異常中斷操作,其中,由
于檢測到的或接收到的錯誤條件通知,不會發(fā)生査找操作。
在一個實施例中,控制邏輯210識別這樣的數據,所述數據代表了使 能哪些關聯存儲器塊218-219、每個輸出選擇器231-232應當考慮哪些關聯 存儲器塊218-219以確定其査找結果、和/或每個關聯存儲器塊218-219在 修改輸入檢索關鍵字時應當使用的修改映射。在一個實施例中,基于接收 的輸入控制信息202 (例如,用戶ID或其他指示),從一個或多個存儲 器、數據結構和/或其他存儲機制中獲取該數據。然后,該信息經由塊控制 信號211-212被適當地傳送到關聯存儲器塊218-219,以及/或者經由選擇 器控制信號和前級結果信號215被傳送到輸出選擇器231-232。
在一個實施例中,每個關聯存儲器塊218-219經由信號201接收檢索 關鍵字和可能修改數據,并且經由塊控制信號211-212接收可能控制信 息。然后,每個使能的關聯存儲器塊218-219基于接收的檢索關鍵字執(zhí)行 查找操作,査找操作可包括基于接收的修改數據和/或修改映射,通過修改 檢索關鍵字的某些部分生成查找字。每個關聯存儲器218-219 —般生成結 果228-229,每個結果228-229被傳送到輸出選擇器231-232中的每一個。 在一個實施例中,每個未被使能的關聯存儲器塊218-219生成未命中信號 作為其相應結果228-229。在一個實施例中,輸出選擇器231-232接收未被 使能的關聯存儲器塊218-219的指示。
輸出選擇器231估計關聯存儲器結果228-229以產生結果240。在一 個實施例中,每個輸出選擇器具有對應的已識別出的關聯存儲器結果228-229的靜態(tài)或動態(tài)的子集,以估計確定結果240。在一個實施例中,該對 應子集的標識經由選擇器控制信號215被提供給每個輸出選擇器231-232。在一個實施例中,每個輸出選擇器231-232經由選擇器控制信號215 接收用戶ID,并基于接收的用戶ID執(zhí)行存儲器查找操作,以獲取具體關 聯存儲器結果228-229的指示來估計確定結果240。
而且,在一個實施例中,結果240經由一個或多個輸出總線240輸 出,所述一個或多個輸出總線240中的每一個連接到關聯存儲器芯片的一 個或多個管腳的不同集合。在一個實施例中,所使用的輸出總線數目和它
們到輸出選擇器231-232的連接是靜態(tài)的,而在另一個實施例中,所使用 的輸出總線數目和它們到輸出選擇器231-232的連接是可配置的,例如, 在初始化時或者對于每次或多個査找。在一個實施例中,輸出選擇器231-232接收輸出總線指示,并使用輸出總線指示來確定使用哪一個或哪幾個 輸出總線。例如,該判決可包括但不限于直接解釋接收的輸出總線指示、 基于接收的輸出總線指示執(zhí)行存儲器讀操作等等。在一個實施例中,輸出 選擇器231-232基于用戶ID執(zhí)行存儲器存取操作以確定對于特定査找操作 使用哪一個或哪幾個輸出總線。從而,取決于配置,可以選擇性地使用單 個或多個輸出總線/管腳以傳送結果240,并且可能基于同時接收的多個結 果相對于所需要的管腳數之間的平衡而作出該判決。
關聯存儲器200提供了許多強大功能以同時產生一個或多個結果 240。例如,在一個實施例中,控制邏輯210基于接收的用戶ID識別使能 一個或多個關聯存儲器塊中的哪些,然后將其使能,并向輸出選擇器231 提供用戶ID以在多個關聯存儲器塊218-219之間選擇査找結果。每個關聯 存儲器塊218-219可基于用戶ID接收/識別修改映射,該修改映射對于該 關聯存儲器塊可能是唯一的。然后,該修改映射可與接收的修改數據一起 被用來改變接收的檢索關鍵字中的一部分,以產生被用于查找操作中的實 際的査找字。同樣地,如果對應的條目被識別為匹配查找字的最高優(yōu)先級 條目,則對于對應的關聯存儲器塊218-219,可以強制未命中指示對這些 條目編程以生成未命中結果。這些被使能的關聯存儲器218-219中的每一 個一般生成這樣的結果(例如,未命中、命中最高優(yōu)先級匹配條目或其位 置被識別),所述結果一般被傳送至輸出選擇器231-232中的每一個。注 意,在一個實施例中,這些結果只被傳送到這樣的特定輸出選擇器231-232,所述特定輸出選擇器231-232將在選擇接收自關聯存儲器塊218-219 的各個最高優(yōu)先級結果和來自前級關聯存儲器的其他可能査找結果時,考 慮該具體結果。另外,在某些配置中,多個關聯存儲器200被以其他方法 級聯或耦合,從而使得來自一個或多個級的結果可依賴于前級結果,從而 可編程使得跨過多個關聯存儲器200執(zhí)行查找。由關聯存儲器200提供的 這些和其他的構造及其配置使用一級或多級關聯存儲器200,提供了強大
的可編程査找檢索能力和結果選擇機制,其中,每個關聯存儲器200包括
N個關聯存儲器塊218-219和M個輸出選擇器231-232。在一個實施例 中,在各個關聯存儲器200中N和M的實際值可以不同。
圖3A圖示了用在一個實施例中的關聯存儲器的控制300 (可以對應 于圖2的控制邏輯210,也可以不對應于圖2的控制邏輯210)。如圖所 示,控制300包括控制邏輯310和存儲器311。在一個實施例中,接收編 程信號303,并且作為響應,更新存儲器311中的一個或多個數據結構。 另外,控制邏輯生成編程信號318。在一個實施例中,編程318與編程信 號303相同,從而可使用物理連接,而不是經過控制邏輯310傳輸。編程 過程的一個實施例如圖3C所示,該處理開始于過程框380。然后,處理前 進到過程框382,在其中接收編程信號。下一步,在過程框384,更新數 據結構和其他元件(例如,關聯存儲器塊、輸出選擇器等)。過程框386 指示處理完成。
返回圖3A,在執(zhí)行查找操作時,控制邏輯310接收輸入數據301、輸 入控制302和可選的前級結果和錯誤304 (如在級聯的關聯存儲器配置 中)。作為響應,引用存儲器311中的一個或多個數據結構??刂七壿?310生成輸入數據314、塊控制信號315、輸出選擇器控制信號和(可選 地)前級結果316,還可能生成錯誤信號319,錯誤信號319指示檢測的 錯誤條件或接收的錯誤指示符。在一個實施例中,輸入數據314與輸入數 據301相同,從而可使用物理連接,而不是經過控制邏輯310傳輸。
圖3B圖示了用在一個實施例中的一種數據結構集。對于使用的每個 用戶ID 321,以關聯存儲器塊使能指示符325對使能數組320編程。每個 關聯存儲器塊使能指示符325標識對于給定查找操作使能哪些關聯存儲器 塊。從而,基于經由輸入控制302 (圖3A)接收的用戶ID321,可以從存 儲器311 (圖3A)中獲取使能數組320,然后使能數組320可被用來生成 包括在塊控制信號315 (圖3A)中的關聯存儲器塊使能信號。在一個實施 例中,關聯存儲器塊使能指示符325是位圖數據結構,而在另一個實施例 中,關聯存儲器塊使能指示符325是列表、集合、數組或任何其他的數據 結構。
用輸出選擇器ID 335對輸出選擇器數組330編程,輸出選擇器ID 335 用于標識對于每個元組(tuple)(用戶ID 331、關聯存儲器塊ID 332)是 哪個輸出選擇器,所述輸出選擇器例如但不限于輸出選擇器231-232 (圖 2)。從而,基于經由輸入控制302 (圖3A)接收的用戶ID 331,對于每 個關聯存儲器塊ID 332可識別出輸出選擇器ID 335。在一個實施例中,輸 出選擇器ID 335是數值標識符,而在另一個實施例中,輸出選擇器ID335 是任意值或數據結構。
對于每個元組(用戶ID341、輸出選擇器ID 342)以修改映射345對 修改映射數組340編程。從而,基于經由輸入控制302 (圖3A)接收的用 戶ID 341,對于每個輸出選擇器ID 342可識別出修改映射345。在一個實 施例中,每個修改映射是這樣的數據結構,所述數據結構標識如何以接收 的修改數據修改接收的檢索關鍵字。
圖3D圖示了用在一個實施例中的用于啟動査找操作的處理。處理開 始于過程框360,并前進到過程框362,在過程框362接收輸入數據和控 制信號。下一步,在過程框364,接收任何前級結果和錯誤指示。如在過 程框366所確定的,如果應當執(zhí)行異常中斷操作,例如但不限于響應于接 收到的致命錯誤指示或識別出的致命錯誤指示,則處理前進到過程框374
(將在下文中論述)。否則,在過程框368,基于用戶ID接收使能位圖、 輸出選擇器配置和修改映射。下一步,在過程框370,基于獲取和接收的 信息,將數據和控制信號轉發(fā)至關聯存儲器塊和輸出選擇器。如在過程框 372所確定的,如果識別出錯誤條件或已接收到錯誤條件,則在過程框 374,生成或轉發(fā)錯誤指示,所述錯誤指示一般包括錯誤類型和其來源的 指示。過程框376指示處理完成。
圖4A圖示了用在一個實施例中的關聯存儲器塊400。關聯存儲器塊 400 —般包括控制邏輯410與關聯存儲器條目、全局掩碼寄存器(global mask registers)、運行邏輯和優(yōu)先級編碼器412 (例如,對接收的查找字 執(zhí)行關聯存儲器匹配操作的元件)。在一個實施例中,關聯存儲器條目的 集合被歸集為關聯存儲器條目庫。在一個實施例中,接收編程信號401, 并且作為響應,更新方框412中的一個或多個關聯存儲器條目和/或全局掩
碼寄存器。在一個實施例中,關聯存儲器塊400對應于一個關聯存儲器條 目集或庫以及一種對該關聯存儲器條目集或庫執(zhí)行查找操作以產生一個或
多個結果的機制。在一個實施例中,關聯存儲器塊400中不包括掩碼寄存 器°
而且,關聯存儲器塊400的一個實施例包括存儲配置信息的存儲器 413,這樣可允許關聯存儲器塊400從存儲器413獲取信息,而不是從另 外的來源處接收信息。例如,在一個實施例中,修改映射數據(例如,圖 3B的修改映射345)或其他信息被編程進存儲器413中。然后,關聯存儲 器塊400例如基于接收的用戶ID (例如,而不是接收修改映射信號404) 獲取修改映射信息。
另外,在一個實施例中,接收檢索關鍵字402、修改數據403、修改 映射404、使能信號405、全局掩碼使能信號406和全局掩碼選擇信號 407。響應于執(zhí)行査找操作和/或檢測錯誤條件,例如一個關聯存儲器條目 中的奇偶校驗故障,生成結果和錯誤指示411。在一個實施例中,在后臺 檢查關聯存儲器條目的奇偶校驗錯誤。聯系圖4B-4G進一步描述了在一個 實施例中這些信號和信息的使用。
轉到圖4B, 一個實施例包括用于對關聯存儲器條目416的查找操作中 的多個全局掩碼寄存器415。全局掩碼使能信號406使能全局掩碼寄存器 的使用,而全局掩碼選擇407標識對于每個關聯存儲器條目應用多個掩碼 中的哪一個。査找字414被應用到關聯存儲器條目416,并且可能使用一 個或多個存儲在全局掩碼寄存器415中的全局掩碼,以生成命中/未命中指 示417與可能命中位置418和/或錯誤指示419, 417、 418和/或419被直接 或非直接地合并進結果和錯誤指示411中(圖4A)。
圖4C圖示了用在一個實施例中的錯誤指示420。如圖所示,錯誤指示 420包括錯誤指示421,錯誤指示421用于標識其中是否有錯誤指示或可 能的錯誤指示的數目。對于任何識別的錯誤指示或接收的錯誤指示,在一 個或多個錯誤描述符422-423中包括有每個錯誤的編碼描述。在一個實施 例中,位圖被用于一個或多個錯誤描述符422-423,其中,每個比特代表 可能的錯誤條件,且比特值指示對應的錯誤是否已被識別(包括從在先的 組件或級接收)。在一個實施例中,每個錯誤描述符422-423對應于不同 的組件、接口或前級。在一個實施例中,錯誤指示420被其他組件用于傳 送錯誤條件或其不足。
圖4D圖示了用在一個實施例中的關聯存儲器條目430。如圖所示, 關聯存儲器條目430包括值431、可選掩碼432、強制未命中指示433、有 效/無效標記434和錯誤檢測值435。錯誤檢測值435可以是一個或多個奇 偶校驗比特、循環(huán)冗余校驗和或者對應于任何其他用于檢測數據損壞錯誤 的機制的值。在一個實施例中,值431的寬度可配置。在一個實施例中, 該可配置寬度包括80比特、160比特和320比特。在一個實施例中,例如 在二進制內容可尋址存儲器中,不包括掩碼字段432。在一個實施例中, 掩碼字段432的寬度是可變的,并且一般與值字段431的寬度相匹配,盡 管這一點不作要求。在一個實施例中,字段431-435存儲在單個物理存儲 器中;而在另一個實施例中,字段431-435存儲在多個物理存儲器中。
圖4E圖示了用在一個實施例中的基于修改映射和修改信息修改檢索 關鍵字的機制。如圖所示,修改映射比特443被用來控制選擇器440,選 擇器440選擇檢索關鍵字單位(例如, 一個或多個比特、字節(jié)等)441或 者修改數據單位442中的任一個作為査找單位445的值,在查找操作中, 查找單位445 —般是用在匹配關聯存儲器條目中的實際查找字的一部分。
圖4F圖示了用在一個實施例中的基于修改映射450和修改數據454 修改檢索關鍵字456的機制。在一個實施例中,修改映射450對應于修改 映射345 (圖3B)。如圖4F所示,修改映射450包括源部分451和目的 地部分452。參照圖4F靠下的部分,修改數據454包括四個字節(jié),檢索關 鍵字456包括八個字節(jié)。修改映射450的源部分451標識修改數據454的 哪些字節(jié)被用于生成査找字458,而修改映射450的目的地部分452標識 修改數據454使用的對應字節(jié)被放置在查找字458中的何處,查找字458 中的其余字節(jié)來自檢索關鍵字456。換句話說,修改映射450和修改數據 454被用來替換檢索關鍵字456中某些指定的數據單元,以產生將被用于 匹配關聯存儲器條目的值。當然,對于修改映射450和修改數據454,各 個實施例使用不同的比特數和字節(jié)數。在一個實施例中,修改映射450包
括檢索關鍵字456要修改部分(例如,在一個實施例中為J的值,高位字 節(jié)、低位字節(jié)等)的指示。
圖4G圖示了用在一個實施例中的執(zhí)行查找操作的關聯存儲器處理過 程。處理開始于過程框470,并前進到過程框472。如果關聯存儲器未被 使能,則處理前進到過程框490,在過程框490生成未命中指示的結果, 并且處理繼續(xù)前進到過程框484。否則,在過程框474, 一般基于檢索關 鍵字、修改映射和修改數據確定查找字。注意,在一個實施例中,檢索關 鍵字被用作査找字,并且不存在修改映射或修改數據的概念。下一步,在 過程框476,如果有所選擇和使能的全局掩碼,則考慮到該全局掩碼,使 用查找字來匹配關聯存儲器條目。注意,在一個實施例中,不存在全局掩 碼的概念。
如在過程框478所確定的,如果識別出至少一個匹配,則處理前進到 過程框480,否則前進到過程框490,在過程框490生成帶有未命中指示 的結果,并且處理前進到過程框484。否則,如在過程框480所確定的, 如果具有最高優(yōu)先級的匹配條目包括強制未命中指示,則處理前進到過程 框490,在過程框490生成帶有未命中指示的結果,并且處理前進到過程 框484。否則,在過程框482,生成指示命中(即,成功匹配)且識別出 具有最高優(yōu)先級的匹配條目的結果。
在過程框484,將結果傳送至至少已識別出的單個或多個輸出選擇 器。在一個實施例中,要向其傳送結果的輸出選擇器由輸出選擇器ID 335
(圖3B)標識。如在過程框486所確定的,如果識別或接收到錯誤條件, 則在過程框492生成指示錯誤類型和位置的信號。在一個實施例中,使用 錯誤指示420 (圖4C)。過程框499指示處理完成。
圖5A圖示了用在一個實施例中的輸出選擇器500 (可以對應于圖2的 輸出選擇器231-232,也可以不對應于圖2的輸出選擇器231-232)。如圖 所示,輸出選擇器500包括控制邏輯510和存儲器511。在一個實施例 中,接收編程信號504,并且作為響應,更新存儲器511中的一個或多個 數據結構。
圖5B圖示了用在一個實施例中的一個數據結構。對于使用的每個用
戶ID 521,以可用的關聯存儲器塊和可選的前級結果指示符525對可用數 組520編程。每個指示符525標識如果有任何的關聯存儲器塊、條目集或 關聯存儲器庫存在,則考慮其中的哪些來確定選擇哪個匹配關聯條目作為 最終的最高優(yōu)先級匹配關聯存儲器條目。在一個實施例中,指示符525還 標識考慮哪些前級結果。從而,基于經由選擇器控制信號501 (圖5A)接 收的用戶ID 521,可從存儲器511 (圖5A)中獲取可用數組520。在一個 實施例中,關聯存儲器塊和任何前級結果的優(yōu)先級次序是隱含的,而在另 一個實施例中,用于確定最終的最高優(yōu)先級匹配條目的該優(yōu)先級次序是可 編程的以及/或者是每次查找操作可變的。在一個實施例中,可用的關聯存 儲器塊指示符525位圖數據結構,而在另一個實施例中,可用的關聯存儲 器塊指示符525是列表、集合、數組或任何其他數據結構。
回到圖5A,在査找操作的執(zhí)行過程中,輸出選擇器500接收可包括 用戶ID的選擇器控制信號501。另外,輸出選擇器500從零個或多個關聯 存儲器塊中接收任何相關的前級結果502和結果503,其中,將從零個或 多個關聯存儲器塊中選擇最高優(yōu)先級的條目,并且如果存在的話,將在生 成的結果515中標識。
而且,在一個實施例中,選擇器控制信號501包括使能指示,使能指 示包括被使能的或不被使能的值,從而使得無論何時當接收不被使能的值 時,輸出選擇器500都不被使能,且不從來自塊l-N的結果503或可選前 級結果502中選擇。在一個實施例中,當不被使能時,輸出選擇器500生 成結果信號515,結果信號515告知未命中、不被使能、或某些其他的預 定或浮點值。
另外,在一個實施例中,結果515通過固定的輸出總線傳送,該結果 515可以與其他輸出選擇器500生成的其他結果515復用,也可以不復 用。在一個實施例中,關聯存儲器可包括一個或多個輸出總線,每個輸出 總線一般連接到關聯存儲器芯片的單個管腳,具體輸出總線的選擇可能是 硬連線的或可配置的,配置可能基于每次査找進行,例如可以從接收值或 從存儲器中獲取的配置信息確定(例如,基于當前用戶ID)。在這樣的配 置中,控制邏輯510 (或其他機制) 一般選擇對于具體或所有的結果
515,使用哪個輸出總線(和發(fā)送結果515的時序)。
圖5C圖示了用在一個實施例中的用于接收并選擇最高優(yōu)先級關聯存 儲器條目的處理過程,如果該條目存在的話。處理開始于過程框540,并 前進到過程框542,在過程框542接收來自關聯存儲器塊的結果和用戶 ID。在過程框544,基于用戶ID從數據結構/存儲器中獲取在確定結果時 要考慮的關聯存儲器塊的集合。在過程框546,從耦合的關聯存儲器中接 收任何相關的前級結果。下一步,在過程框548,從可用的關聯存儲器塊 和前級結果中識別出最高優(yōu)先級匹配,如果存在的話。然后,在過程框 550,結果通過固定的或識別出的輸出總線/管腳傳送,或者被傳送到某些 其他目的地,該結果一般包括未命中指示或命中指示以及最終的最高優(yōu)先 級匹配關聯存儲器條目的標識。過程框552指示處理完成。
考慮到本發(fā)明的原理可以被應用到許多可能的實施例,應當理解,這 里參照附圖描述的本發(fā)明的實施例和各方面僅是說明性的,不應當被用作 限制本發(fā)明的范圍。例如,對于本領域的技術人員來說以下是很清楚的, 即可以對許多的過程框操作重新排序,以在其他操作之前執(zhí)行、在其他操 作之后執(zhí)行或者與其他操作實質上同時執(zhí)行。同樣地,在各種實施例中可 以使用許多不同形式的數據結構。這里描述的本發(fā)明企圖將所有這些實施 例都囊括在所附權利要求及其等同物的范圍內。
權利要求
1.一種關聯存儲器,包括多個關聯存儲器條目,所述多個關聯存儲器條目中的每一特定關聯存儲器條目包括用于在查找操作中與查找字相匹配的值,以及用于標識所述關聯存儲器條目被判定為所述查找操作的最高優(yōu)先級匹配條目時是否強制生成未命中結果的值;以及控制邏輯,所述控制邏輯用于執(zhí)行基于所述查找字的對所述多個關聯存儲器條目的查找操作,以識別特定最高優(yōu)先級匹配條目;其中所述控制邏輯被配置為當所述特定最高優(yōu)先級匹配條目包含用于標識了強制生成未命中結果的值時,發(fā)出未命中指示信號。
2. —種關聯存儲器條目,包括第一字段,所述第一字段包括用在對查找字的匹配操作中的值;以及 第二字段,所述第二字段包括所述關聯存儲器條目是最高優(yōu)先級匹配 條目時強制生成未命中結果的數據。
3. 如權利要求2所述的關聯存儲器條目,其中,所述關聯存儲器條目 包括第三字段,所述第三字段包括用在對所述查找字的匹配操作中的掩 碼。
4. 如權利要求2所述的關聯存儲器條目,其中,所述關聯存儲器條目 包括第三字段,所述第三字段指示所述條目是否有效。
5. 如權利要求2所述的關聯存儲器條目,其中,所述關聯存儲器條目 包括第三字段,所述第三字段指示所述條目的錯誤檢測值。
6. —種設備,包括用于基于査找字對包含要被匹配的值的多個關聯存儲器條目執(zhí)行査找 操作以識別作為最高優(yōu)先級匹配條目的特定條目的裝置,所述多個條目中 的特定條目至少包括強制未命中指示,所述強制未命中指示標識對所述特定條目的成功匹配應當或不應當強制生成未命中結果;以及用于響應于特定條目被識別為所述最高優(yōu)先級匹配條目并且所述特定 條目包括所述強制未命中指示,生成未命中信號的裝置。
7. 如權利要求6所述的裝置,其中,所述多個關聯存儲器條目中的每 一個是三進制或二進制內容可尋址存儲器條目。
8. 如權利要求7所述的裝置,包括用于編程具有所述強制未命中指 示并且具有被與所述查找字匹配的值的所述多個關聯存儲器條目的裝置。
9. 如權利要求6所述的裝置,包括用于編程具有所述強制未命中指 示并且具有被與所述査找字匹配的值的所述多個關聯存儲器條目的裝置。
10. —種用于生成查找結果的方法,所述方法包括基于查找字對包含要被匹配的值的多個關聯存儲器條目執(zhí)行査找操 作,以識別作為最高優(yōu)先級匹配條目的特定條目,所述多個條目中的特定 條目至少包括包括強制未命中指示,所述強制未命中指示標識對所述特定條目的成功匹配應當或不應當強制生成未命中結果;以及響應于特定條目被識別為所述最高優(yōu)先級匹配條目并且所述特定條目 包括所述強制未命中指示,生成未命中信號。
11. 如權利要求IO所述的方法,其中,所述多個關聯存儲器條目中的 每一個是三進制或二進制內容可尋址存儲器條目。
12. 如權利要求11所述的方法,包括編程具有所述強制未命中指示并且具有被與所述查找字匹配的值的所述多個關聯存儲器條目。
13. 如權利要求10所述的方法,包括編程具有所述強制未命中指示并且具有所述被與所述査找字匹配的值的所述多個關聯存儲器條目。
14. 一種用于生成査找結果的方法,所述方法包括基于第一查找字對第一多個關聯存儲器條目執(zhí)行査找操作以識別作為 所述第一多個關聯存儲器條目中的最高優(yōu)先級匹配條目的第一特定條目, 以及基于第二査找字對第二多個關聯存儲器條目執(zhí)行査找操作以識別作為 所述第二多個關聯存儲器條目中的最高優(yōu)先級匹配條目的第二特定條目; 其中,在判定査找結果時,所述第一多個關聯存儲器條目具有比所述第二多個關聯存儲器條目更高的優(yōu)先級;響應于所述第一多個關聯存儲器條目被識別為所述第一特定條目中的 最高優(yōu)先級匹配條目并且所述第一特定條目包含強制未命中指示,為所述第一多個關聯存儲器條目產生第一未命中信號;以及響應于所述第二特定 條目被識別為所述第二多個關聯存儲器條目中的所述最高優(yōu)先級匹配條 目,產生識別所述第二特定條目的第二最高優(yōu)先級信號;以及響應于所述第一未命中信號和所述第二最高優(yōu)先級信號,識別所述第 二特定條目作為所述査找結果。
15. 如權利要求14所述的方法,其中,第一關聯存儲器庫包括所述第 一多個關聯存儲器條目,第二關聯存儲器庫包括所述第二多個關聯存儲器 條目。
16. 如權利要求15所述的方法,其中,所述第一查找字和所述第二查 找字是相同的。
17. 如權利要求14所述的方法,其中,所述第一査找字和所述第二査 找字是相同的。
全文摘要
本發(fā)明公開了使用關聯存儲器執(zhí)行查找操作的方法和裝置,所述查找操作包括但不限于基于修改映射來修改關聯存儲器內的檢索關鍵字、響應于包括強制未命中指示的最高優(yōu)先級匹配條目強制生成未命中條件、在各個關聯存儲器條目集或庫中選擇以確定查找結果以及檢測并傳輸錯誤條件。在一種實施方式中,每個塊從本地存儲器中獲取修改映射,并基于該映射和接收的修改數據修改接收的檢索關鍵字。在一種實施方式中,每個關聯存儲器條目包括指示對條目的成功匹配應當或不應當強制生成未命中結果的字段。在一種實施方式中,從存儲器中獲取在特定查找操作中使用哪些關聯存儲器塊或條目集的指示。
文檔編號G06F17/30GK101354719SQ20081013494
公開日2009年1月28日 申請日期2003年7月19日 優(yōu)先權日2002年8月10日
發(fā)明者休·韋伯·霍爾布魯克, 威廉·N·伊瑟頓, 布尚·曼格什·卡內卡爾, 文卡特斯瓦爾·拉奧·普萊拉, 普里揚克·拉梅什·瓦爾科和德, 班加洛·L·普里亞達爾尚, 若恩·李, 菲松·埃爾馬普, 迪利普·庫馬爾·德維銳迪 申請人:思科技術公司