用于使用多个共享存储器可重配置并行查找的方法和系统的制作方法

文档序号:9235470阅读:269来源:国知局
用于使用多个共享存储器可重配置并行查找的方法和系统的制作方法
【技术领域】
[0001]本发明涉及使用共享存储器池的多个并行查找。更尤其地,本发明涉及用于使用多个共享存储器可重配置并行查找的方法和系统。
【背景技术】
[0002]在网络处理器中,存在许多应用,这些应用需要快速查找,诸如每流状态管理、IP查找和包分类。能够使用几种技术实现查找系统,诸如基于TCAM、基于哈希和直接访问查找。基于哈希的查找技术和直接访问查找技术具有较低的存储成本,并且比基于TCAM查找技术更快。现有技术的基于哈希的查找技术是基于D-LEFT哈希查找方案,因为其在使用存储器时效率高。然而,在使用这些查找技术的现有技术的查找系统中,用于每个查找的存储器的数目是固定的。这种不灵活性禁止在系统制造后对每个查找的存储量的任何改变。此夕卜,现有技术的查找系统不能从一种查找技术变为另一种查找技术,诸如从基于哈希到诸如直接访问,以实现100%存储器利用,而100%存储器利用能够在包括精确匹配查找的应用中有用。

【发明内容】

[0003]片上系统支持共享一个存储器池的多个并行查找。保留给每个查找的存储器的数目可基于该查找所需的存储器的量重配置。此外,每个查找能够被配置为实行为基于哈希查找或直接访问查找。共享存储器被分组成同质块。每个查找被分派一组块。该组中的块与其他组共享,以便所有查找能并行实行,而不冲突。系统也包括可重配置连接网络,其基于怎样为每个查找分派块来编程。
[0004]在一个方面,提供了片上系统,其被配置为使用共享存储器池支持N个并行查找。片上系统包括TXM个共享存储器,其被分组为T个块、用于每个查找路径的M索引转换器、用于将N个输入端口连接到T个块的中心可重配置互联结构、用于将T个块连接到N个输出端口的输出可重配置相互联接结构、和N个输出结果收集器。N个输出结果收集器的每个为每个查找路径。
[0005]在一些实施例中,T个块被分区并基于每个查找路径所需的存储器量被分派给查找路径。被分派给每个查找路径的块的数目为2的幂。块在分区间重叠。
[0006]在一些实施例中,T个块的每个都包括用于以每查找M个路径支持D-LEFT查找的M个存储器、用于比较M个存储器中的预编程密钥和输入密钥的匹配区块、和用于为块选择命中结果的选择区块。
[0007]在一些实施例中,每个共享存储器都具有2-个条目。每个条目容纳用于以每路P个桶支持D-LEFT查找的P对可编程密钥{密钥,数据}。
[0008]在一些实施例中,每个查找路径可配置为基于哈希查找或直接访问查找。
[0009]在一些实施例中,每个查找路径的M个索引转换器的索引转换器i被用于访问在为该查找路径分派的T个块的一个中的存储器i。
[0010]在一些实施例中,每个查找路径的M个索引转换器的每个可基于分派给该查找路径的块的数目配置。
[0011]在一些实施例中,每个查找路径的M个索引转换器每个都进一步包括log2(T)+l哈希函数和log2(T)+l非哈希函数,其中该函数的输出具有从m位到log2(T)+m位的位宽度、用于选择一个函数的第一可配置寄存器、和用于选择块偏移的第二可配置寄存器,以便查找索引指向该查找路径的所分派块中的正确块,其中分派的块从T个块中选择。
[0012]在一些实施例中,M个索引转换器的每个的输出索引具有log2(T)+m位。在输出索引中log2 (T)最高有效的位被用于指向T个块的一个,并且输出索引中m个最不高有效的位被用作存储器读取地址。
[0013]在一些实施例中,中央可重配置互联结构包括M个可配置的NXT个网络。NXT个网络的每个都能够是交叉开关(crossbar)或可配置蝶形开关。
[0014]在一些实施例中,输出可配置互联结构包括M个可配置的IXN去多路复用器。
[0015]在一些实施例中,与查找路径关联的N个输出结果收集器的一个被配置为从用于查找路径的分派块收集结果,并且被配置为从由分派的块输出的结果中选择一个最终结果O
[0016]在一些实施例中,用于T个块的每个的命中结果给予匹配该块的草丛中的预编程密钥和该块的输入密钥之间的结果的密钥。
[0017]在另一个方面,提供了使用共享存储器池实行N个并行查找的方法。该方法包括将T个块分区为N组。T个块的每个都包括M个存储器。每个查找路径与输入端口和输出端口关联。N个查找路径的每个都被分派到N个组中的一组。该方法也包括执行N个并行查找。
[0018]N个并行查找的执行对于每个TV输入密钥包括(I)将输入密钥转换为多个查找索弓丨,其中多个查找索引的每个都包括在由各自查找路径访问的N个组的一组中的特定块的块ID,并且也包括将从其读取数据的特定块中的存储器的存储器地址,(2)通过使用许多匹配信息从命中返回信息的特定块确定,和(3)通过使用许多命中信息,从由最终查找结果为与输入密钥关联的查找路径返回的多个查找索引所指示的块确定。
[0019]在一些实施例中,在确定从特定块返回的命中信息中,最高优先级给定在该特定块中的存储器,该特定块在这些特定块中的所有存储器中具有最低存储器ID。在一些实施例中,该命中信息包括命中数据和相应于匹配密钥的命中数据的位置。命中数据的位置包括存储器TD、与存储器ID关联的存储器的地址、和存储器中命中数据的位置。
[0020]在一些实施例中,在确定为查找路径返回的最终查找结果中,最高优先级给定在为查找路径分派的所有块中的块ID最低的块。在一些实施例中,最终查找结果包括命中数据、容纳命中数据的块的块ID、存储器ID和读取命中数据的存储器地址。
[0021]在一些实施例中,该方法也包括,在执行N个并行查找之前,为每个查找路径计算哈希尺寸、为哈希选择生成配置位,并为每个查找路径生成块偏移、配置连接查找路径和块的网络、和为每个查找路径编程存储器。在一些实施例中,用于为每个查找路径编程存储器的技术基于具有M种方式和P个桶的D-LEFT查找技术。
[0022]在还另一个方面,提供了转换器件,其被配置为支持N个并行密钥-到-查找索引转换。该转换器件包括在转换器接收的N个密钥。N个密钥的每个都与来自T个块的块组关联。T个块的每个都包括M个存储器。
[0023]转换器件也包括NXM个查找索引,以在N个密钥到NXM个查找索引的并行转换之后,从转换器返回。
[0024]转换器件也包括NXM个转换器。N X M个转换器每个都被配置为将来自N个密钥的密钥转换为来自NXM个查找索引的查找索引。NXM个转换器每个都包括log2(T)+l哈希函数和log2 (T)+1非哈希函数,其中该函数的输出具有从m位到log2 (T)+m位的位宽度、用于选择一个函数的第一可配置寄存器、和用于选择块偏移的第二可配置寄存器,以便查找索引指向来自与该密钥关联的块组的正确块。
[0025]在一些实施例中,NXM个查找索引传送到中央重配置互联结构。中央重配置互联结构被配置为将NXM个查找索引连接到T个块的一个,用于比较该密钥与该块中保存的预编程密钥。
[0026]在还另一个方面,提供了块器件。块器件包括M个存储器。M个存储器的每个都包括2m条目。每个条目都容纳P对可编程{密钥,数据}。
[0027]块器件也包括匹配和选择逻辑,其被配置为接收输入密钥并输出查找结果。匹配和选择逻辑包括匹配区块和选择区块,匹配区块被配置为确定输入密钥是否匹配M个存储器中任何预编程密钥,并且选择区块被配置为从容纳与输入密钥匹配的预编程密钥的M个存储器的这些存储器的存储器。选择的存储器在这些存储器中具有最低存储器ID。查找结果包括与预编程密钥配套的预编程数据。该查找结果也包括存储器ID和存储预编程数据的存储器地址。
[0028]在一输出些实施例中,查找结果传送到输出重配置互联结构。输出重配置互联结构被配置为将T个块的每个都连接到用于N个查找路径的N个最终输出选择器件的一个。在一些实施例中,N个最终输出选择器件每个都包括收集区块和选择区块,收集区块被配置为从各自查找路径保留的所有块接收查找结果,并且选择区块被配置为从由收集区块收集的所有查找结果选择一个最终查找结果,其中选择的最终查找结果来自具有最低块ID的命中块。选择的最终查找结果包括命中数据、块ID、存储器ID和存储命中数据的存储器地址。
【附图说明】
[0029]图1示出根据本发明的实施例的并行查找系统。
[0030]图2示出根据本发明的实施例的共享存储器的示例性分组的图表。
[0031]图3示出根据本发明的实施例的用于查找路径的共享块(tile)的示例性分派的图表。
[0032]图4示出根据本发明的实施例的密钥-到-查找索引转换器。
[0033]图5示出根据本发明的实施例的索引转换器。
[0034]图6示出根据本发明的实施例的中央可重配置的互联结构。
[0035]图7示出根据本发明的实施例在块内的存储器的格式。
[0036]图8示出根据本发明的实施例的示例性块的示意图。
[0037]图9示出根据
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1