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

輔助網(wǎng)絡(luò)處理器的散列的制作方法

文檔序號(hào):6568363閱讀:156來(lái)源:國(guó)知局
專利名稱:輔助網(wǎng)絡(luò)處理器的散列的制作方法
輔助網(wǎng)絡(luò)處理器的散列背景技術(shù)隨著越來(lái)越多地使用基于分組的傳輸,許多諸如交換機(jī)和路由器之類 的網(wǎng)絡(luò)設(shè)備現(xiàn)使用網(wǎng)絡(luò)處理器。網(wǎng)絡(luò)處理器可以被認(rèn)為是具有用于增強(qiáng)和/ 或優(yōu)化網(wǎng)絡(luò)內(nèi)的分組處理的特定特征或架構(gòu)的通用處理器。這些處理器通 常適于針對(duì)它們的分組處理功能進(jìn)行更靈活并且更容易的編程。網(wǎng)絡(luò)處理器的許多工作涉及諸如通過(guò)網(wǎng)絡(luò)設(shè)備訪問(wèn)特定數(shù)據(jù)流的數(shù)據(jù) 結(jié)構(gòu)之類的行為。它們還可以確定一組并行接口的哪些接口應(yīng)該接收來(lái)自 特定輸入的或?qū)?yīng)于特定流的分組。例如,分組進(jìn)入網(wǎng)絡(luò)設(shè)備,然后處理 器需要確定該分組屬于哪個(gè)流。這涉及諸如分組的源地址、目的地址等之 類的信息集群。該信息集群被用于訪問(wèn)靜態(tài)或動(dòng)態(tài)的每個(gè)流的狀態(tài)和其他信息,例如 與該分組的流有關(guān)的網(wǎng)絡(luò)設(shè)備內(nèi)的任何實(shí)體的輸入接口屬性等的表。將該 信息集群減小到更易于管理的大小有益于加速對(duì)這樣的信息的訪問(wèn),即被 需要用于以它的方式路由分組的信息。例如,可將十個(gè)或更多個(gè)字節(jié)的源 地址、目的地址和協(xié)議信息簡(jiǎn)化為三個(gè)字節(jié)的鍵,該三個(gè)字節(jié)的鍵可用于 訪問(wèn)該特定流的狀態(tài)信息。通常通過(guò)使用散列和模函數(shù)來(lái)完成該簡(jiǎn)化,其中通過(guò)以表的大小為模 進(jìn)一步簡(jiǎn)化信息的散列,并且然后將其用作該表的訪問(wèn)鍵。然而,散列, 尤其是將數(shù)據(jù)充分隨機(jī)地分布在期望的地址空間的高質(zhì)量散列,可能是非 常耗時(shí)的,并且或者需要將增大成本的更多電路,或者需要將降低性能的 更多處理器周期。此外,許多網(wǎng)絡(luò)處理器可能不具有用于執(zhí)行散列結(jié)果的模簡(jiǎn)化的除法 單元。通常對(duì)于硬件實(shí)現(xiàn)而言除法是高成本的操作,其使用要在軟件中有 效實(shí)現(xiàn)的過(guò)多循環(huán),并且一般除對(duì)散列結(jié)果進(jìn)行模簡(jiǎn)化之外任何分組處理 操作都不需要該除法操作。因此,網(wǎng)絡(luò)處理器架構(gòu)通常不包括除法功能。


通過(guò)參考附圖閱讀本公開(kāi)可最佳地理解本發(fā)明的實(shí)施例,其中圖l示出具有散列一模一讀取(hash- mod-read)資源單元的網(wǎng)絡(luò)處理 器架構(gòu)的實(shí)施例。圖2示出散列一模一讀取資源單元的實(shí)施例。 圖3示出散列一模一讀取資源單元的操作的實(shí)施例的流程圖。
具體實(shí)施方式
圖1示出具有散列一模一讀取資源單元的網(wǎng)絡(luò)處理器10的實(shí)施例。 該網(wǎng)絡(luò)處理器僅是一個(gè)實(shí)施例,其中該單元可被用于并且僅在此討論用于 提供輔助理解本發(fā)明的實(shí)施例的框架。網(wǎng)絡(luò)處理器IO具有使得諸如14之 類的分組處理元件或處理器能夠與諸如散列一模一讀取(HMR)資源單元 16進(jìn)行通信的資源互連12??纱嬖谄渌馁Y源,包括將在下文中更詳細(xì) 討論的鎖請(qǐng)求控制器??稍O(shè)置存儲(chǔ)器互連18以使得資源單元16能夠根據(jù)請(qǐng)求在需要時(shí)執(zhí)行 對(duì)存儲(chǔ)器19的存儲(chǔ)器訪問(wèn)。在不同的實(shí)施例中,存儲(chǔ)器19可以是用于資 源單元16的專用存儲(chǔ)器,或者它可以是諸如由處理元件14到資源互連12 共享的DRMA之類的通用存儲(chǔ)器。這些存儲(chǔ)器可以是片上存儲(chǔ)器或片外 存儲(chǔ)器。在其他實(shí)施例中,資源單元16可以經(jīng)由資源互連12而不是經(jīng)由如圖 1所示的專用連接來(lái)訪問(wèn)存儲(chǔ)器19。資源單元是由硬件電路形成的邏輯 "設(shè)備"。例如,HMR資源單元內(nèi)的模引擎可以是整數(shù)除法器。當(dāng)諸如14之類的分組處理元件需要執(zhí)行散列時(shí),它通過(guò)資源互連12 向HMR資源單元16發(fā)送請(qǐng)求。該請(qǐng)求可包括請(qǐng)求類型,以及要被散列的 固定的或可變的信息量、該可變信息量的大小、簡(jiǎn)化模數(shù)和基本地址。將 伴隨該請(qǐng)求的信息稱作請(qǐng)求信息。在此將要被散列的固定的或可變的信息 量與該大小(如果該信息量是可變的) 一起稱作關(guān)聯(lián)數(shù)據(jù)并被包含在請(qǐng)求 信息中。作為對(duì)該請(qǐng)求的響應(yīng),HMR資源單元執(zhí)行所請(qǐng)求的操作并返回作為對(duì)該請(qǐng)求的反應(yīng)的結(jié)果。在圖2中示出HMR資源單元12的一個(gè)實(shí)施例的更詳細(xì)視圖。HMR 單元具有資源互連請(qǐng)求接口 (RQI) 20,其使得資源單元能夠接收請(qǐng)求和 關(guān)聯(lián)數(shù)據(jù)。該請(qǐng)求包含期望操作的參數(shù),如將進(jìn)一步更詳細(xì)討論的。在圖 2所示的實(shí)施例中,讀取引擎顯然被繞過(guò)。在其他實(shí)施例中,可通過(guò)發(fā)出 啞讀取(dummy read)來(lái)繞過(guò)讀取引擎。在一個(gè)實(shí)施例中,資源單元可以 僅執(zhí)行散列,散列和模簡(jiǎn)化,僅模簡(jiǎn)化,模簡(jiǎn)化和讀取,散列和讀取,或 者散列、模簡(jiǎn)化和讀取,或者僅讀取。在一個(gè)實(shí)施例中,如果要發(fā)生散列,則首先完成散列是因?yàn)樯⒘袑㈥P(guān) 聯(lián)數(shù)據(jù)的大小減小到更易于管理的比例。如果要完成散列,則通過(guò)向散列 引擎22發(fā)送關(guān)聯(lián)數(shù).據(jù)來(lái)開(kāi)始該操作的執(zhí)行。如果不要執(zhí)行散列,則在某 些實(shí)施例中關(guān)聯(lián)數(shù)據(jù)將繞過(guò)散列引擎22并直接到達(dá)模引擎24。散列是一項(xiàng)已知技術(shù),并且可將散列引擎的各種實(shí)施例用T本發(fā)明的 精神中。 一種期望在硬件成本與散列質(zhì)量之間取得折衷的技術(shù)是使用CRC (循環(huán)冗余校驗(yàn))。CRC提供良好的鍵的偽隨機(jī)分布,g卩,關(guān)聯(lián)數(shù)據(jù)中一 個(gè)比特的改變可以導(dǎo)致作為結(jié)果得到的鍵的很大改變。其他的實(shí)施例可以 將散列弓I擎實(shí)現(xiàn)為處理器或微編碼引擎。在某些實(shí)施例中,操作類型包括關(guān)于要完成的散列類型的信息,然后 散列引擎實(shí)現(xiàn)多種散列算法。在某些實(shí)施例中,散列引擎可以是完全流水 線的,每次循環(huán)接受一個(gè)新的操作。在其他實(shí)施例中,散列引擎可以被實(shí) 現(xiàn)為并行的散列處理器組,在這種情況下其吞吐量可能更加受限。如上所述,散列提供了減小用于訪問(wèn)某種類型的數(shù)據(jù)結(jié)構(gòu)的鍵大小的 方法,所述數(shù)據(jù)結(jié)構(gòu)例如表或存儲(chǔ)器。例如,如果關(guān)聯(lián)數(shù)據(jù)的大小是800 比特,則沒(méi)有足夠的內(nèi)存用于存儲(chǔ)具有800比特鍵的表。例如,使用800 比特鍵的具有32比特(四個(gè)字節(jié))入口的表將需要2**802字節(jié)的存儲(chǔ)空 間。如果作為替代,從那些800比特產(chǎn)生散列,它可以將800比特簡(jiǎn)化到 例如32比特,并且模2**20簡(jiǎn)化然后可以將作為結(jié)果得到的鍵簡(jiǎn)化到僅 20比特。這20比特然后可以用于索引108字節(jié)的入口的表,在此108字 節(jié)的入口是四個(gè)原始字節(jié),加上用于鏈接任何碰撞入口 (colliding entry)的"下一"指針的四個(gè)字節(jié),加上用于消除任何碰撞的對(duì)應(yīng)于該入口的關(guān)聯(lián)數(shù)據(jù)的800比特(100字節(jié))?,F(xiàn)在總共需要的大小小于2A27字節(jié),這是十分實(shí)用的。因?yàn)樯⒘惺嵌鄬?duì)一的操作,所以可能存在不止一個(gè)組的關(guān)聯(lián)數(shù)據(jù)產(chǎn)生 相同的經(jīng)散列的鍵。當(dāng)關(guān)聯(lián)數(shù)據(jù)的多個(gè)組映射到相同鍵時(shí),鍵有時(shí)被稱作"散列桶(hash bucket)",因?yàn)殛P(guān)聯(lián)數(shù)據(jù)的多個(gè)組在相同的桶中結(jié)束。 在某些實(shí)現(xiàn)方式中,將這些項(xiàng)形成為由"下一"指針鏈接入口的"碰撞 鏈",。然后可每次一個(gè)結(jié)果地"遍歷(walk)"碰撞鏈,以在具有相同 鍵的入口組之中找到期望的入口。該鏈中的每個(gè)元素必須存儲(chǔ)原始的、產(chǎn) 生它的關(guān)聯(lián)數(shù)據(jù),從而使得能夠進(jìn)行比較來(lái)確定在碰撞鏈中的哪個(gè)入口 (如果有多個(gè))對(duì)應(yīng)于期望的關(guān)聯(lián)數(shù)據(jù)。該方法的優(yōu)點(diǎn)是處理器只需要搜索一個(gè)桶而不是整個(gè)的表或存儲(chǔ)器來(lái) 找到結(jié)果。搜索問(wèn)題被從搜索很大的表簡(jiǎn)化到搜索小很多的幾個(gè)碰撞入 口。好的散列函數(shù)可最小化碰撞入口的數(shù)目,尤其是當(dāng)給出關(guān)聯(lián)數(shù)據(jù)可能 很"密集"的組時(shí),例如僅一個(gè)比特有差別。在這點(diǎn)上CRC可提供十分 令人滿意的散列函數(shù)。如果不要執(zhí)行散列,則將關(guān)聯(lián)數(shù)據(jù)與模數(shù)分母一起,或者不變地通過(guò) 散列引擎中的路徑或者直接從RQI接口繞過(guò)散列引擎?zhèn)鬟f到模引擎24。 在這些未完成散列的繞過(guò)情況下,在某些實(shí)施例中,可以將關(guān)聯(lián)數(shù)據(jù)的大 小限制為不大于散列引擎的正常輸出的大小。可以執(zhí)行模函數(shù)而不執(zhí)行散 列函數(shù)的過(guò)程的示例可包括當(dāng)關(guān)聯(lián)數(shù)據(jù)已經(jīng)比由散列引擎正常產(chǎn)生的大小 更小時(shí),識(shí)別經(jīng)由其上發(fā)送信息的偽隨機(jī)鏈路、或者從向特定源目的地發(fā) 送分組的少數(shù)幾個(gè)接口中選擇一個(gè)接口或者構(gòu)造鍵??梢砸远喾N方式實(shí)現(xiàn)模引擎24。例如,在不同的實(shí)施例中它可以是整數(shù)除法器,或者它可以在諸如牛頓-拉弗森迭代法之類的修復(fù)或校正步驟之 后任選地使用查找表或近似逆(approximate inverse)方案。在某些實(shí)施例 中,模引擎可以是完全流水線的,每個(gè)周期接受一個(gè)新的操作,或者在其 他實(shí)施例中它可以由一個(gè)或多個(gè)并行的引擎組成,這些并行引擎并不是完 全流水線的因此具有吞吐量限制。應(yīng)注意術(shù)語(yǔ)"模(modulo)"用于指代操作、函數(shù)或執(zhí)行該操作的電 路,并且"模數(shù)(modulus)"和"模數(shù)結(jié)果"用于指代操作的自變量和結(jié)果。如果要執(zhí)行讀取,則模數(shù)簡(jiǎn)化的結(jié)果被用于經(jīng)由讀取引擎26通過(guò)存 儲(chǔ)器互連訪問(wèn)存儲(chǔ)器,并且將所讀取的結(jié)果作為被發(fā)回請(qǐng)求分組處理元件 的結(jié)果的一部分返回。類似于可繞過(guò)散列引擎22的方式,如果對(duì)于給定 操作類型而言將不使用模引擎24,則或者可直接地或者在某些實(shí)施例中僅 通過(guò)將模數(shù)分母設(shè)定為l來(lái)繞過(guò)模引擎24。對(duì)于某些操作類型而言,某些實(shí)施例可以繞過(guò)散列引擎和模引擎二 者,僅使用讀取引擎26。在某些實(shí)施例中,讀取引擎僅在這樣的地址處對(duì) 存儲(chǔ)器進(jìn)行簡(jiǎn)單的、單次的讀取,所述地址通過(guò)將來(lái)自請(qǐng)求的基本地址與 從模引擎和/或散列引擎獲得的結(jié)果相加而被確定。在此將這種情況稱作簡(jiǎn) 單讀取。在其他實(shí)施例中,讀取引擎也可以通過(guò)將第一次簡(jiǎn)單的讀取結(jié)果的一 部分與來(lái)自請(qǐng)求的關(guān)聯(lián)數(shù)據(jù)進(jìn)行比較,來(lái)完成散列表"遍歷"。如果關(guān)聯(lián) 數(shù)據(jù)不匹配并且讀取結(jié)果包含非空的"下一"指針,則過(guò)程跟隨該指針到 碰撞鏈中的下一元素并重復(fù)該比較。以這種方式,某些實(shí)施例可在資源中 實(shí)現(xiàn)整個(gè)散列表搜索過(guò)程。在其他實(shí)施例中,散列表搜索可以涉及附加操作以獲取與散列表相關(guān) 聯(lián)的或者與到散列表的訪問(wèn)相關(guān)聯(lián)的信號(hào)量(semaphore)(也稱作鎖)。 可能存在一個(gè)或多個(gè)要被使用的鎖, 一個(gè)用于失敗(miss), 一個(gè)用于命 中(hit),并且這些鎖的地址或位置可以是請(qǐng)求中相應(yīng)數(shù)據(jù)的一部分。這 些鎖在讀取引擎完成其工作之后可被清除,或者代表然后將負(fù)責(zé)釋放它們 的請(qǐng)求處理器保持這些鎖。讀取引擎26可被實(shí)現(xiàn)為硬件引擎,或者它可 以是專用處理器或微編碼引擎。當(dāng)未進(jìn)行散列或者進(jìn)行了簡(jiǎn)化的散列時(shí),模簡(jiǎn)化的結(jié)果可以僅是模數(shù) 結(jié)果。因此,返回的結(jié)果可以僅是通過(guò)對(duì)關(guān)聯(lián)數(shù)據(jù)進(jìn)行散列而產(chǎn)生的散 列;其后執(zhí)行了模簡(jiǎn)化的散列,在此稱作簡(jiǎn)化的散列;單獨(dú)的模簡(jiǎn)化的結(jié) 果,在此稱作簡(jiǎn)化或簡(jiǎn)化結(jié)果;具有讀取結(jié)果的散列;具有讀取結(jié)果的簡(jiǎn)化;和具有讀取結(jié)果的簡(jiǎn)化的散列。在其他的實(shí)施例中可期望其他的結(jié)果 組合(包括返回這些結(jié)果的多個(gè)結(jié)果),而這些結(jié)果僅意欲作為可能結(jié)果 的示例。如上所述,根據(jù)所請(qǐng)求的操作返回這些結(jié)果。以下的討論僅是請(qǐng)求參 數(shù)的一個(gè)示例,并且決非意欲限制本發(fā)明的范圍。如果一種情況希望假設(shè)散列引擎使用多項(xiàng)式的循環(huán)冗余校驗(yàn)(CRC),例如在請(qǐng)求中包括CRC多項(xiàng)式類型字段,那么該字段的值可以指示是否需要進(jìn)行散列,以及如果需要?jiǎng)t使用何種CRC多項(xiàng)式或其他散列函數(shù)。類似地,將模數(shù)分母設(shè)定 為零或者非零可以判斷是否期望模簡(jiǎn)化。類似地,根據(jù)是否返回讀取結(jié) 果,可以指定要被讀取的數(shù)據(jù)的大小的讀取字段可被設(shè)定為0或者被設(shè)定 為期望大小。在某些實(shí)施例中,可以在操作類型中對(duì)確定操作的哪個(gè)組合 進(jìn)行編碼。資源單元的操作可以基于在請(qǐng)求中設(shè)定的參數(shù),例如如上所述的那些 示例。在圖3中示出操作HMR資源單元的實(shí)施例的流程圖。在40,接收 請(qǐng)求和關(guān)聯(lián)數(shù)據(jù)。在42,確定是否要發(fā)生散列。如果要執(zhí)行散列,則過(guò)程 前進(jìn)到44,在44產(chǎn)生散列。如果不期望進(jìn)行散列,則過(guò)程跳過(guò)散列并直接移動(dòng)到46,在46確定 是否發(fā)生模簡(jiǎn)化。如果不期望模簡(jiǎn)化,則過(guò)程移至50。如果期望模簡(jiǎn)化, 則在48執(zhí)行簡(jiǎn)化。在50,作出是否執(zhí)行讀取的確定。如果不期望讀取, 則處理在54返回結(jié)果。如果期望讀取,則訪問(wèn)存儲(chǔ)器。在一個(gè)實(shí)施例 中,在52,通過(guò)將與請(qǐng)求一起發(fā)送的基本地址添加到散列或模數(shù)結(jié)果來(lái)用 作初始讀取的地址來(lái)訪問(wèn)存儲(chǔ)器。未示出的是其中讀取引擎可以迭代地遍 歷散列鏈的實(shí)施例。返回的結(jié)果將取決于所采用的路徑。如上所述,結(jié)果可以是散列、簡(jiǎn) 化的散列、簡(jiǎn)化的散列和讀取結(jié)果、散列和讀取結(jié)果、模數(shù)結(jié)果、模數(shù)和 讀取結(jié)果或僅是讀取結(jié)果。這些可能結(jié)果的每一個(gè)可構(gòu)成所返回的結(jié)果的 至少一部分。通過(guò)將HMR資源單元耦合到網(wǎng)絡(luò)處理器中的存儲(chǔ)器系統(tǒng),并返回在 偏移了模數(shù)結(jié)果(經(jīng)散列的或未經(jīng)散列的)的基本地址處的存儲(chǔ)器位置的內(nèi)容,HMR單元從請(qǐng)求線程的角度在一個(gè)單個(gè)操作中有效地執(zhí)行散列表 查找。如果讀取引擎還檢測(cè)到散列碰撞并且在發(fā)生這樣的散列碰撞的情況下遍歷散列鏈,則由HMR資源單元實(shí)現(xiàn)了完整的散列搜索。線程是分組處理元件上的特定處理流。幾百個(gè)計(jì)算循環(huán)加上用于一個(gè) 或多個(gè)訪問(wèn)的等待時(shí)間被轉(zhuǎn)換為一個(gè)資源訪問(wèn),如果不進(jìn)行這樣的轉(zhuǎn)換則這些循環(huán)和等待時(shí)間對(duì)于這些操作而言將是必需的。如果沒(méi)有HMR資 源,那么僅需要一個(gè)資源訪問(wèn)來(lái)訪問(wèn)用于該操作的簡(jiǎn)單讀取部分的存儲(chǔ)驅(qū) 奮。通過(guò)在用于執(zhí)行散列和模操作的硬件中采用流水線,資源單元可運(yùn)行得足夠快以處理來(lái)自多線程的請(qǐng)求。在一個(gè)實(shí)施例中,流水線HMR資源 單元可支持多于200個(gè)線程。其他變化和修改是可能的。可以以除CRC外的其他散列函數(shù)來(lái)實(shí)現(xiàn) 散列。資源單元可以實(shí)現(xiàn)作為請(qǐng)求的一部分可選擇的許多不同類型的散列 函數(shù)。散列引擎可以實(shí)現(xiàn)諸如32比特、16比特等之類的不同大小的散列 函數(shù)。模數(shù)結(jié)果無(wú)需與散列結(jié)果同樣大小,從而意味著被除數(shù)和除數(shù)不必是 相同大小的。在大部分的實(shí)例中,16比特模數(shù)足夠用于大部分用途,而 24比特足夠用于甚至更大的散列表。關(guān)聯(lián)數(shù)據(jù)即被散列的數(shù)據(jù),在長(zhǎng)度上可以是固定的或者可變的。在某 些網(wǎng)絡(luò)處理器中,處理器允許可變長(zhǎng)度請(qǐng)求,因此允許散列可變長(zhǎng)度的數(shù) 據(jù)??梢砸愿鞣N方式進(jìn)行模簡(jiǎn)化。上文提及的實(shí)施例是整數(shù)除法器??蓪?查找表用于近似該除法。可將該除法作為重復(fù)的減法來(lái)執(zhí)行。也可以使用 其他的除法近似。使用存儲(chǔ)器查找僅是耦合操作的一個(gè)示例??纱嬖谝粋€(gè)或多個(gè)耦合操 作。另一示例是用于鎖資源的鎖請(qǐng)求。僅當(dāng)在通過(guò)存儲(chǔ)器訪問(wèn)返回的散列 桶中存在碰撞時(shí),可以作出鎖請(qǐng)求。在此情況下,請(qǐng)求中的諸如鎖標(biāo)識(shí)符 (ID)之類的其他信息將使得讀取引擎能夠通過(guò)使用給定的鎖ID,在檢測(cè) 到在被遍歷的鏈中不會(huì)出現(xiàn)的散列碰撞之后請(qǐng)求鎖,并且甚至可能插入碰撞鏈的新入口。在諸如此類的實(shí)施例中,HMR資源可以具有或者直接地 或者通過(guò)資源互連連接到其他資源(例如鎖資源)的連接。在另一實(shí)施例中,HMR不需要被耦合到網(wǎng)絡(luò)處理器;作為替代它可以駐存在存儲(chǔ)器系統(tǒng)中。另一實(shí)施例可以具有多個(gè)HMR資源,它們可能 全部相同、或者可能每個(gè)實(shí)現(xiàn)不同的散列函數(shù)、或者理解如何遍歷不同類 型的散列碰撞鏈或者其他結(jié)構(gòu)。因此,雖然已經(jīng)針對(duì)此點(diǎn)描述了用于散列一模一讀取資源的方法和裝 置的具體實(shí)施例,然而并非意欲將這樣的具體參考認(rèn)為是對(duì)本發(fā)明的范圍 的限制,除非在以下權(quán)利要求書(shū)中提出。
權(quán)利要求
1.一種資源單元,包括請(qǐng)求接口,用于使得所述單元能夠接收請(qǐng)求和請(qǐng)求信息,其中所述請(qǐng)求信息包括關(guān)聯(lián)數(shù)據(jù);散列引擎,用于產(chǎn)生所述關(guān)聯(lián)數(shù)據(jù)的散列;模引擎,用于產(chǎn)生模數(shù)結(jié)果;讀取引擎,用于執(zhí)行存儲(chǔ)器讀??;以及結(jié)果接口,用于使得所述設(shè)備能夠返回結(jié)果。
2. 如權(quán)利要求1所述的資源單元,所述模引擎還包括來(lái)自由以下裝置 組成的組的至少一個(gè)裝置整數(shù)除法器、査找表近似和可重復(fù)減法單元。
3. 如權(quán)利要求1所述的資源單元,所述散列引擎還用于使用循環(huán)冗余 校驗(yàn)散列。
4. 如權(quán)利要求1所述的資源單元,所述散列引擎用于執(zhí)行通述請(qǐng)求可 選擇的多種類型和大小的散列函數(shù)。
5. 如權(quán)利要求1所述的資源單元,所述讀取引擎還用于在從所述請(qǐng)求 中的基本地址偏移了來(lái)自所述散列引擎和/或所述模引擎的計(jì)算量的地址處 執(zhí)行簡(jiǎn)單讀取。
6. 如權(quán)利要求1所述的資源單元,所述讀取引擎用于執(zhí)行對(duì)碰撞鏈的 遍歷。
7. 如權(quán)利要求1所述的資源單元,所述散列引擎和所述模引擎被通信 耦合以使得所述模引擎能夠產(chǎn)生所述散列的模數(shù)結(jié)果。
8. 如權(quán)利要求1所述的資源單元,所述資源單元還包括通信耦合到所 述結(jié)果接口的所述散列引擎,用于將所述散列作為所述結(jié)果的至少一部分 返回。
9. 如權(quán)利要求1所述的資源單元,所述資源單元還包括通信耦合到所 述結(jié)果接口的所述模引擎,用于將所述模數(shù)結(jié)果作為所述結(jié)果的至少一部 分返回。
10. 如權(quán)利要求1所述的資源單元,所述資源單元還包括通信耦合到所述結(jié)果接口的所述讀取引擎,用于將所述讀取結(jié)果作為所述結(jié)果的至少 一部分返回。
11. 一種網(wǎng)絡(luò)處理器,包括 至少一個(gè)分組處理元件;資源單元,包括 請(qǐng)求接口 ; 散列引擎;模引擎; 讀取引擎; 結(jié)果接口;以及資源互連,用于使得所述資源斧元能夠在所述請(qǐng)求接口處接收來(lái)自所 述分組處理元件的請(qǐng)求,并且用于通過(guò)所述結(jié)果接口返回結(jié)果。
12. 如權(quán)利要求11所述的網(wǎng)絡(luò)處理器還包括存儲(chǔ)器。
13. 如權(quán)利要求12所述的網(wǎng)絡(luò)處理器,所述網(wǎng)絡(luò)處理器還包括耦合到 所述資源單元以使得所述資源單元能夠訪問(wèn)所述存儲(chǔ)器的存儲(chǔ)器互連。
14. 如權(quán)利要求12所述的網(wǎng)絡(luò)處理器,所述存儲(chǔ)器耦合到所述資源互 連以使得能夠訪問(wèn)所述存儲(chǔ)器。
15. 如權(quán)利要求13所述的網(wǎng)絡(luò)處理器,所述存儲(chǔ)器耦合到所述資源互 連以使得所述分組處理元件能夠訪問(wèn)所述存儲(chǔ)器。
16. 如權(quán)利要求11所述的網(wǎng)絡(luò)處理器,至少一個(gè)分組處理元件還包括 多個(gè)分組處理元件,并且所述資源單元還用于處理來(lái)自所述多個(gè)分組處理 元件的多個(gè)請(qǐng)求。
17. 如權(quán)利要求11所述的網(wǎng)絡(luò)處理器,所述資源單元耦合到鎖請(qǐng)求控 制器。
18. 如權(quán)利要求17所述的網(wǎng)絡(luò)處理器,所述鎖請(qǐng)求控制器還包括資源 單元。
19. 一種在資源單元處理請(qǐng)求的方法,包括接收請(qǐng)求和包括關(guān)聯(lián)數(shù)據(jù)的請(qǐng)求信息; 確定是否要執(zhí)行散列以產(chǎn)生散列;確定是否要執(zhí)行模簡(jiǎn)化以產(chǎn)生模數(shù)結(jié)果;確定是否要執(zhí)行讀取以產(chǎn)生讀取結(jié)果;并且返回所述請(qǐng)求的結(jié)果。
20. 如權(quán)利要求19所述的方法,接收請(qǐng)求和包括關(guān)聯(lián)數(shù)據(jù)的請(qǐng)求信息 還包括接收可變長(zhǎng)度的關(guān)聯(lián)數(shù)據(jù)。
21. 如權(quán)利要求19所述的方法,接收請(qǐng)求和請(qǐng)求信息還包括接收請(qǐng)求 和包括鎖位置、鎖標(biāo)識(shí)符和鎖地址的至少一個(gè)的請(qǐng)求信息。
22. 如權(quán)利要求19所述的方法,返回所述請(qǐng)求的結(jié)果還包括返回由以 下結(jié)果組成的組中的至少一個(gè)結(jié)果散列、簡(jiǎn)化的散列、散列和讀取結(jié) 果、簡(jiǎn)化的散列和讀取結(jié)果、模數(shù)結(jié)果、模數(shù)結(jié)果和讀取結(jié)果以及讀取結(jié) 果。
23. —種資源單元,包括用于接收請(qǐng)求和關(guān)聯(lián)數(shù)據(jù)的裝置; 用于執(zhí)行散列的裝置; 用于執(zhí)行模簡(jiǎn)化的裝置; 用于從存儲(chǔ)器進(jìn)行讀取的裝置;以及 用于返回作為對(duì)所述請(qǐng)求的響應(yīng)的結(jié)果的裝置。
24. 如權(quán)利要求23所述的資源單元,所述用于執(zhí)行散列的裝置還包括執(zhí)行循環(huán)冗余校驗(yàn)散列。
25. 如權(quán)利要求23所述的資源單元,所述用于執(zhí)行模簡(jiǎn)化的裝置還包 括來(lái)自由以下裝置組成的組的至少一個(gè)裝置整數(shù)除法器、查找表近似和 可重復(fù)減法單元。
26. 如權(quán)利要求23所述的資源單元,所述用于從存儲(chǔ)器進(jìn)行讀取的裝 置還包括存儲(chǔ)器互連。
27. 如權(quán)利要求23所述的資源單元,所述用于從存儲(chǔ)器進(jìn)行讀取的裝 置還包括資源互連。
全文摘要
一種具有用于使得資源單元能夠接收請(qǐng)求和關(guān)聯(lián)數(shù)據(jù)的請(qǐng)求接口的資源單元。該資源單元還具有用于產(chǎn)生所述關(guān)聯(lián)數(shù)據(jù)的散列的散列引擎,用于產(chǎn)生模數(shù)結(jié)果的模引擎,用于執(zhí)行存儲(chǔ)器讀取的讀取引擎,和用于使得該設(shè)備能夠返回結(jié)果的結(jié)果接口。
文檔編號(hào)G06F17/30GK101248434SQ200680027375
公開(kāi)日2008年8月20日 申請(qǐng)日期2006年6月20日 優(yōu)先權(quán)日2005年7月25日
發(fā)明者喬納森·羅森, 厄爾·T·科亨, 易卜拉欣·德利博塔 申請(qǐng)人:思科技術(shù)公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1