用于使用多個共享存儲器可重配置并行查找的方法和系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及使用共享存儲器池的多個并行查找。更尤其地,本發(fā)明涉及用于使用多個共享存儲器可重配置并行查找的方法和系統(tǒng)。
【背景技術】
[0002]在網(wǎng)絡處理器中,存在許多應用,這些應用需要快速查找,諸如每流狀態(tài)管理、IP查找和包分類。能夠使用幾種技術實現(xiàn)查找系統(tǒng),諸如基于TCAM、基于哈希和直接訪問查找?;诠5牟檎壹夹g和直接訪問查找技術具有較低的存儲成本,并且比基于TCAM查找技術更快。現(xiàn)有技術的基于哈希的查找技術是基于D-LEFT哈希查找方案,因為其在使用存儲器時效率高。然而,在使用這些查找技術的現(xiàn)有技術的查找系統(tǒng)中,用于每個查找的存儲器的數(shù)目是固定的。這種不靈活性禁止在系統(tǒng)制造后對每個查找的存儲量的任何改變。此夕卜,現(xiàn)有技術的查找系統(tǒng)不能從一種查找技術變?yōu)榱硪环N查找技術,諸如從基于哈希到諸如直接訪問,以實現(xiàn)100%存儲器利用,而100%存儲器利用能夠在包括精確匹配查找的應用中有用。
【發(fā)明內容】
[0003]片上系統(tǒng)支持共享一個存儲器池的多個并行查找。保留給每個查找的存儲器的數(shù)目可基于該查找所需的存儲器的量重配置。此外,每個查找能夠被配置為實行為基于哈希查找或直接訪問查找。共享存儲器被分組成同質塊。每個查找被分派一組塊。該組中的塊與其他組共享,以便所有查找能并行實行,而不沖突。系統(tǒng)也包括可重配置連接網(wǎng)絡,其基于怎樣為每個查找分派塊來編程。
[0004]在一個方面,提供了片上系統(tǒng),其被配置為使用共享存儲器池支持N個并行查找。片上系統(tǒng)包括TXM個共享存儲器,其被分組為T個塊、用于每個查找路徑的M索引轉換器、用于將N個輸入端口連接到T個塊的中心可重配置互聯(lián)結構、用于將T個塊連接到N個輸出端口的輸出可重配置相互聯(lián)接結構、和N個輸出結果收集器。N個輸出結果收集器的每個為每個查找路徑。
[0005]在一些實施例中,T個塊被分區(qū)并基于每個查找路徑所需的存儲器量被分派給查找路徑。被分派給每個查找路徑的塊的數(shù)目為2的冪。塊在分區(qū)間重疊。
[0006]在一些實施例中,T個塊的每個都包括用于以每查找M個路徑支持D-LEFT查找的M個存儲器、用于比較M個存儲器中的預編程密鑰和輸入密鑰的匹配區(qū)塊、和用于為塊選擇命中結果的選擇區(qū)塊。
[0007]在一些實施例中,每個共享存儲器都具有2-個條目。每個條目容納用于以每路P個桶支持D-LEFT查找的P對可編程密鑰{密鑰,數(shù)據(jù)}。
[0008]在一些實施例中,每個查找路徑可配置為基于哈希查找或直接訪問查找。
[0009]在一些實施例中,每個查找路徑的M個索引轉換器的索引轉換器i被用于訪問在為該查找路徑分派的T個塊的一個中的存儲器i。
[0010]在一些實施例中,每個查找路徑的M個索引轉換器的每個可基于分派給該查找路徑的塊的數(shù)目配置。
[0011]在一些實施例中,每個查找路徑的M個索引轉換器每個都進一步包括log2(T)+l哈希函數(shù)和log2(T)+l非哈希函數(shù),其中該函數(shù)的輸出具有從m位到log2(T)+m位的位寬度、用于選擇一個函數(shù)的第一可配置寄存器、和用于選擇塊偏移的第二可配置寄存器,以便查找索引指向該查找路徑的所分派塊中的正確塊,其中分派的塊從T個塊中選擇。
[0012]在一些實施例中,M個索引轉換器的每個的輸出索引具有l(wèi)og2(T)+m位。在輸出索引中l(wèi)og2 (T)最高有效的位被用于指向T個塊的一個,并且輸出索引中m個最不高有效的位被用作存儲器讀取地址。
[0013]在一些實施例中,中央可重配置互聯(lián)結構包括M個可配置的NXT個網(wǎng)絡。NXT個網(wǎng)絡的每個都能夠是交叉開關(crossbar)或可配置蝶形開關。
[0014]在一些實施例中,輸出可配置互聯(lián)結構包括M個可配置的IXN去多路復用器。
[0015]在一些實施例中,與查找路徑關聯(lián)的N個輸出結果收集器的一個被配置為從用于查找路徑的分派塊收集結果,并且被配置為從由分派的塊輸出的結果中選擇一個最終結果O
[0016]在一些實施例中,用于T個塊的每個的命中結果給予匹配該塊的草叢中的預編程密鑰和該塊的輸入密鑰之間的結果的密鑰。
[0017]在另一個方面,提供了使用共享存儲器池實行N個并行查找的方法。該方法包括將T個塊分區(qū)為N組。T個塊的每個都包括M個存儲器。每個查找路徑與輸入端口和輸出端口關聯(lián)。N個查找路徑的每個都被分派到N個組中的一組。該方法也包括執(zhí)行N個并行查找。
[0018]N個并行查找的執(zhí)行對于每個TV輸入密鑰包括(I)將輸入密鑰轉換為多個查找索弓丨,其中多個查找索引的每個都包括在由各自查找路徑訪問的N個組的一組中的特定塊的塊ID,并且也包括將從其讀取數(shù)據(jù)的特定塊中的存儲器的存儲器地址,(2)通過使用許多匹配信息從命中返回信息的特定塊確定,和(3)通過使用許多命中信息,從由最終查找結果為與輸入密鑰關聯(lián)的查找路徑返回的多個查找索引所指示的塊確定。
[0019]在一些實施例中,在確定從特定塊返回的命中信息中,最高優(yōu)先級給定在該特定塊中的存儲器,該特定塊在這些特定塊中的所有存儲器中具有最低存儲器ID。在一些實施例中,該命中信息包括命中數(shù)據(jù)和相應于匹配密鑰的命中數(shù)據(jù)的位置。命中數(shù)據(jù)的位置包括存儲器TD、與存儲器ID關聯(lián)的存儲器的地址、和存儲器中命中數(shù)據(jù)的位置。
[0020]在一些實施例中,在確定為查找路徑返回的最終查找結果中,最高優(yōu)先級給定在為查找路徑分派的所有塊中的塊ID最低的塊。在一些實施例中,最終查找結果包括命中數(shù)據(jù)、容納命中數(shù)據(jù)的塊的塊ID、存儲器ID和讀取命中數(shù)據(jù)的存儲器地址。
[0021]在一些實施例中,該方法也包括,在執(zhí)行N個并行查找之前,為每個查找路徑計算哈希尺寸、為哈希選擇生成配置位,并為每個查找路徑生成塊偏移、配置連接查找路徑和塊的網(wǎng)絡、和為每個查找路徑編程存儲器。在一些實施例中,用于為每個查找路徑編程存儲器的技術基于具有M種方式和P個桶的D-LEFT查找技術。
[0022]在還另一個方面,提供了轉換器件,其被配置為支持N個并行密鑰-到-查找索引轉換。該轉換器件包括在轉換器接收的N個密鑰。N個密鑰的每個都與來自T個塊的塊組關聯(lián)。T個塊的每個都包括M個存儲器。
[0023]轉換器件也包括NXM個查找索引,以在N個密鑰到NXM個查找索引的并行轉換之后,從轉換器返回。
[0024]轉換器件也包括NXM個轉換器。N X M個轉換器每個都被配置為將來自N個密鑰的密鑰轉換為來自NXM個查找索引的查找索引。NXM個轉換器每個都包括log2(T)+l哈希函數(shù)和log2 (T)+1非哈希函數(shù),其中該函數(shù)的輸出具有從m位到log2 (T)+m位的位寬度、用于選擇一個函數(shù)的第一可配置寄存器、和用于選擇塊偏移的第二可配置寄存器,以便查找索引指向來自與該密鑰關聯(lián)的塊組的正確塊。
[0025]在一些實施例中,NXM個查找索引傳送到中央重配置互聯(lián)結構。中央重配置互聯(lián)結構被配置為將NXM個查找索引連接到T個塊的一個,用于比較該密鑰與該塊中保存的預編程密鑰。
[0026]在還另一個方面,提供了塊器件。塊器件包括M個存儲器。M個存儲器的每個都包括2m條目。每個條目都容納P對可編程{密鑰,數(shù)據(jù)}。
[0027]塊器件也包括匹配和選擇邏輯,其被配置為接收輸入密鑰并輸出查找結果。匹配和選擇邏輯包括匹配區(qū)塊和選擇區(qū)塊,匹配區(qū)塊被配置為確定輸入密鑰是否匹配M個存儲器中任何預編程密鑰,并且選擇區(qū)塊被配置為從容納與輸入密鑰匹配的預編程密鑰的M個存儲器的這些存儲器的存儲器。選擇的存儲器在這些存儲器中具有最低存儲器ID。查找結果包括與預編程密鑰配套的預編程數(shù)據(jù)。該查找結果也包括存儲器ID和存儲預編程數(shù)據(jù)的存儲器地址。
[0028]在一輸出些實施例中,查找結果傳送到輸出重配置互聯(lián)結構。輸出重配置互聯(lián)結構被配置為將T個塊的每個都連接到用于N個查找路徑的N個最終輸出選擇器件的一個。在一些實施例中,N個最終輸出選擇器件每個都包括收集區(qū)塊和選擇區(qū)塊,收集區(qū)塊被配置為從各自查找路徑保留的所有塊接收查找結果,并且選擇區(qū)塊被配置為從由收集區(qū)塊收集的所有查找結果選擇一個最終查找結果,其中選擇的最終查找結果來自具有最低塊ID的命中塊。選擇的最終查找結果包括命中數(shù)據(jù)、塊ID、存儲器ID和存儲命中數(shù)據(jù)的存儲器地址。
【附圖說明】
[0029]圖1示出根據(jù)本發(fā)明的實施例的并行查找系統(tǒng)。
[0030]圖2示出根據(jù)本發(fā)明的實施例的共享存儲器的示例性分組的圖表。
[0031]圖3示出根據(jù)本發(fā)明的實施例的用于查找路徑的共享塊(tile)的示例性分派的圖表。
[0032]圖4示出根據(jù)本發(fā)明的實施例的密鑰-到-查找索引轉換器。
[0033]圖5示出根據(jù)本發(fā)明的實施例的索引轉換器。
[0034]圖6示出根據(jù)本發(fā)明的實施例的中央可重配置的互聯(lián)結構。
[0035]圖7示出根據(jù)本發(fā)明的實施例在塊內的存儲器的格式。
[0036]圖8示出根據(jù)本發(fā)明的實施例的示例性塊的示意圖。
[0037]圖9示出根據(jù)