CN101248434B - 辅助网络处理器的散列 - Google Patents
辅助网络处理器的散列 Download PDFInfo
- Publication number
- CN101248434B CN101248434B CN2006800273750A CN200680027375A CN101248434B CN 101248434 B CN101248434 B CN 101248434B CN 2006800273750 A CN2006800273750 A CN 2006800273750A CN 200680027375 A CN200680027375 A CN 200680027375A CN 101248434 B CN101248434 B CN 101248434B
- Authority
- CN
- China
- Prior art keywords
- hash
- result
- engine
- request
- resource unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Abstract
一种具有用于使得资源单元能够接收请求和关联数据的请求接口的资源单元。该资源单元还具有用于产生所述关联数据的散列的散列引擎,用于产生模数结果的模引擎,用于执行存储器读取的读取引擎,和用于使得该设备能够返回结果的结果接口。
Description
背景技术
随着越来越多地使用基于分组的传输,许多诸如交换机和路由器之类的网络设备现使用网络处理器。网络处理器可以被认为是具有用于增强和/或优化网络内的分组处理的特定特征或架构的通用处理器。这些处理器通常适于针对它们的分组处理功能进行更灵活并且更容易的编程。
网络处理器的许多工作涉及诸如通过网络设备访问特定数据流的数据结构之类的行为。它们还可以确定一组并行接口的哪些接口应该接收来自特定输入的或对应于特定流的分组。例如,分组进入网络设备,然后处理器需要确定该分组属于哪个流。这涉及诸如分组的源地址、目的地址等之类的信息集群。
该信息集群被用于访问静态或动态的每个流的状态和其他信息,例如与该分组的流有关的网络设备内的任何实体的输入接口属性等的表。将该信息集群减小到更易于管理的大小有益于加速对这样的信息的访问,即被需要用于以它的方式路由分组的信息。例如,可将十个或更多个字节的源地址、目的地址和协议信息简化为三个字节的键,该三个字节的键可用于访问该特定流的状态信息。
通常通过使用散列和模函数来完成该简化,其中通过以表的大小为模进一步简化信息的散列,并且然后将其用作该表的访问键。然而,散列,尤其是将数据充分随机地分布在期望的地址空间的高质量散列,可能是非常耗时的,并且或者需要将增大成本的更多电路,或者需要将降低性能的更多处理器周期。
此外,许多网络处理器可能不具有用于执行散列结果的模简化的除法单元。通常对于硬件实现而言除法是高成本的操作,其使用要在软件中有效实现的过多循环,并且一般除对散列结果进行模简化之外任何分组处理操作都不需要该除法操作。因此,网络处理器架构通常不包括除法功能。
附图说明
通过参考附图阅读本公开可最佳地理解本发明的实施例,其中:
图1示出具有散列-模-读取(hash-mod-read)资源单元的网络处理器架构的实施例。
图2示出散列-模-读取资源单元的实施例。
图3示出散列-模-读取资源单元的操作的实施例的流程图。
具体实施方式
图1示出具有散列-模-读取资源单元的网络处理器10的实施例。该网络处理器仅是一个实施例,其中该单元可被用于并且仅在此讨论用于提供辅助理解本发明的实施例的框架。网络处理器10具有使得诸如14之类的分组处理元件或处理器能够与诸如散列-模-读取(HMR)资源单元16进行通信的资源互连12。可存在其他的资源,包括将在下文中更详细讨论的锁请求控制器。
可设置存储器互连18以使得资源单元16能够根据请求在需要时执行对存储器19的存储器访问。在不同的实施例中,存储器19可以是用于资源单元16的专用存储器,或者它可以是诸如由处理元件14到资源互连12共享的DRMA之类的通用存储器。这些存储器可以是片上存储器或片外存储器。
在其他实施例中,资源单元16可以经由资源互连12而不是经由如图1所示的专用连接来访问存储器19。资源单元是由硬件电路形成的逻辑“设备”。例如,HMR资源单元内的模引擎可以是整数除法器。
当诸如14之类的分组处理元件需要执行散列时,它通过资源互连12向HMR资源单元16发送请求。该请求可包括请求类型,以及要被散列的固定的或可变的信息量、该可变信息量的大小、简化模数和基本地址。将伴随该请求的信息称作请求信息。在此将要被散列的固定的或可变的信息量与该大小(如果该信息量是可变的)一起称作关联数据并被包含在请求信息中。作为对该请求的响应,HMR资源单元执行所请求的操作并返回作为对该请求的反应的结果。
在图2中示出HMR资源单元12的一个实施例的更详细视图。HMR单元具有资源互连请求接口(RQI)20,其使得资源单元能够接收请求和关联数据。该请求包含期望操作的参数,如将进一步更详细讨论的。在图2所示的实施例中,读取引擎显然被绕过。在其他实施例中,可通过发出哑读取(dummy read)来绕过读取引擎。在一个实施例中,资源单元可以仅执行散列,散列和模简化,仅模简化,模简化和读取,散列和读取,或者散列、模简化和读取,或者仅读取。
在一个实施例中,如果要发生散列,则首先完成散列是因为散列将关联数据的大小减小到更易于管理的比例。如果要完成散列,则通过向散列引擎22发送关联数据来开始该操作的执行。如果不要执行散列,则在某些实施例中关联数据将绕过散列引擎22并直接到达模引擎24。
散列是一项已知技术,并且可将散列引擎的各种实施例用于本发明的精神中。一种期望在硬件成本与散列质量之间取得折衷的技术是使用CRC(循环冗余校验)。CRC提供良好的键的伪随机分布,即,关联数据中一个比特的改变可以导致作为结果得到的键的很大改变。其他的实施例可以将散列引擎实现为处理器或微编码引擎。
在某些实施例中,操作类型包括关于要完成的散列类型的信息,然后散列引擎实现多种散列算法。在某些实施例中,散列引擎可以是完全流水线的,每次循环接受一个新的操作。在其他实施例中,散列引擎可以被实现为并行的散列处理器组,在这种情况下其吞吐量可能更加受限。
如上所述,散列提供了减小用于访问某种类型的数据结构的键大小的方法,所述数据结构例如表或存储器。例如,如果关联数据的大小是800比特,则没有足够的内存用于存储具有800比特键的表。例如,使用800比特键的具有32比特(四个字节)入口的表将需要2**802字节的存储空间。如果作为替代,从那些800比特产生散列,它可以将800比特简化到例如32比特,并且模2**20简化然后可以将作为结果得到的键简化到仅20比特。这20比特然后可以用于索引108字节的入口的表,在此108字节的入口是四个原始字节,加上用于链接任何碰撞入口(colliding entry)的“下一”指针的四个字节,加上用于消除任何碰撞的对应于该入口的关联数据的800比特(100字节)。现在总共需要的大小小于2Λ27字节,这是十分实用的。
因为散列是多对一的操作,所以可能存在不止一个组的关联数据产生相同的经散列的键。当关联数据的多个组映射到相同键时,键有时被称作“散列桶(hash bucket)”,因为关联数据的多个组在相同的桶中结束。在某些实现方式中,将这些项形成为由“下一”指针链接入口的“碰撞链”,。然后可每次一个结果地“遍历(walk)”碰撞链,以在具有相同键的入口组之中找到期望的入口。该链中的每个元素必须存储原始的、产生它的关联数据,从而使得能够进行比较来确定在碰撞链中的哪个入口(如果有多个)对应于期望的关联数据。
该方法的优点是处理器只需要搜索一个桶而不是整个的表或存储器来找到结果。搜索问题被从搜索很大的表简化到搜索小很多的几个碰撞入口。好的散列函数可最小化碰撞入口的数目,尤其是当给出关联数据可能很“密集”的组时,例如仅一个比特有差别。在这点上CRC可提供十分令人满意的散列函数。
如果不要执行散列,则将关联数据与模数分母一起,或者不变地通过散列引擎中的路径或者直接从RQI接口绕过散列引擎传递到模引擎24。在这些未完成散列的绕过情况下,在某些实施例中,可以将关联数据的大小限制为不大于散列引擎的正常输出的大小。可以执行模函数而不执行散列函数的过程的示例可包括当关联数据已经比由散列引擎正常产生的大小更小时,识别经由其上发送信息的伪随机链路、或者从向特定源目的地发送分组的少数几个接口中选择一个接口或者构造键。
可以以多种方式实现模引擎24。例如,在不同的实施例中它可以是整数除法器,或者它可以在诸如牛顿-拉弗森迭代法之类的修复或校正步骤之后任选地使用查找表或近似逆(approximate inverse)方案。在某些实施例中,模引擎可以是完全流水线的,每个周期接受一个新的操作,或者在其他实施例中它可以由一个或多个并行的引擎组成,这些并行引擎并不是完全流水线的因此具有吞吐量限制。
应注意术语“模(modulo)”用于指代操作、函数或执行该操作的电路,并且“模数(modulus)”和“模数结果”用于指代操作的自变量和结果。
如果要执行读取,则模数简化的结果被用于经由读取引擎26通过存储器互连访问存储器,并且将所读取的结果作为被发回请求分组处理元件的结果的一部分返回。类似于可绕过散列引擎22的方式,如果对于给定操作类型而言将不使用模引擎24,则或者可直接地或者在某些实施例中仅通过将模数分母设定为1来绕过模引擎24。
对于某些操作类型而言,某些实施例可以绕过散列引擎和模引擎二者,仅使用读取引擎26。在某些实施例中,读取引擎仅在这样的地址处对存储器进行简单的、单次的读取,所述地址通过将来自请求的基本地址与从模引擎和/或散列引擎获得的结果相加而被确定。在此将这种情况称作简单读取。
在其他实施例中,读取引擎也可以通过将第一次简单的读取结果的一部分与来自请求的关联数据进行比较,来完成散列表“遍历”。如果关联数据不匹配并且读取结果包含非空的“下一”指针,则过程跟随该指针到碰撞链中的下一元素并重复该比较。以这种方式,某些实施例可在资源中实现整个散列表搜索过程。
在其他实施例中,散列表搜索可以涉及附加操作以获取与散列表相关联的或者与到散列表的访问相关联的信号量(semaphore)(也称作锁)。可能存在一个或多个要被使用的锁,一个用于失败(miss),一个用于命中(hit),并且这些锁的地址或位置可以是请求中相应数据的一部分。这些锁在读取引擎完成其工作之后可被清除,或者代表然后将负责释放它们的请求处理器保持这些锁。读取引擎26可被实现为硬件引擎,或者它可以是专用处理器或微编码引擎。
当未进行散列或者进行了简化的散列时,模简化的结果可以仅是模数结果。因此,返回的结果可以仅是通过对关联数据进行散列而产生的散列;其后执行了模简化的散列,在此称作简化的散列;单独的模简化的结果,在此称作简化或简化结果;具有读取结果的散列;具有读取结果的简化;和具有读取结果的简化的散列。在其他的实施例中可期望其他的结果组合(包括返回这些结果的多个结果),而这些结果仅意欲作为可能结果的示例。
如上所述,根据所请求的操作返回这些结果。以下的讨论仅是请求参数的一个示例,并且决非意欲限制本发明的范围。如果一种情况希望假设散列引擎使用多项式的循环冗余校验(CRC),例如在请求中包括CRC多项式类型字段,那么该字段的值可以指示是否需要进行散列,以及如果需要则使用何种CRC多项式或其他散列函数。类似地,将模数分母设定为零或者非零可以判断是否期望模简化。类似地,根据是否返回读取结果,可以指定要被读取的数据的大小的读取字段可被设定为0或者被设定为期望大小。在某些实施例中,可以在操作类型中对确定操作的哪个组合进行编码。
资源单元的操作可以基于在请求中设定的参数,例如如上所述的那些示例。在图3中示出操作HMR资源单元的实施例的流程图。在40,接收请求和关联数据。在42,确定是否要发生散列。如果要执行散列,则过程前进到44,在44产生散列。
如果不期望进行散列,则过程跳过散列并直接移动到46,在46确定是否发生模简化。如果不期望模简化,则过程移至50。如果期望模简化,则在48执行简化。在50,作出是否执行读取的确定。如果不期望读取,则处理在54返回结果。如果期望读取,则访问存储器。在一个实施例中,在52,通过将与请求一起发送的基本地址添加到散列或模数结果来用作初始读取的地址来访问存储器。未示出的是其中读取引擎可以迭代地遍历散列链的实施例。
返回的结果将取决于所采用的路径。如上所述,结果可以是散列、简化的散列、简化的散列和读取结果、散列和读取结果、模数结果、模数和读取结果或仅是读取结果。这些可能结果的每一个可构成所返回的结果的至少一部分。
通过将HMR资源单元耦合到网络处理器中的存储器系统,并返回在偏移了模数结果(经散列的或未经散列的)的基本地址处的存储器位置的内容,HMR单元从请求线程的角度在一个单个操作中有效地执行散列表查找。如果读取引擎还检测到散列碰撞并且在发生这样的散列碰撞的情况下遍历散列链,则由HMR资源单元实现了完整的散列搜索。
线程是分组处理元件上的特定处理流。几百个计算循环加上用于一个或多个访问的等待时间被转换为一个资源访问,如果不进行这样的转换则这些循环和等待时间对于这些操作而言将是必需的。如果没有HMR资源,那么仅需要一个资源访问来访问用于该操作的简单读取部分的存储器。
通过在用于执行散列和模操作的硬件中采用流水线,资源单元可运行得足够快以处理来自多线程的请求。在一个实施例中,流水线HMR资源单元可支持多于200个线程。
其他变化和修改是可能的。可以以除CRC外的其他散列函数来实现散列。资源单元可以实现作为请求的一部分可选择的许多不同类型的散列函数。散列引擎可以实现诸如32比特、16比特等之类的不同大小的散列函数。
模数结果无需与散列结果同样大小,从而意味着被除数和除数不必是相同大小的。在大部分的实例中,16比特模数足够用于大部分用途,而24比特足够用于甚至更大的散列表。
关联数据即被散列的数据,在长度上可以是固定的或者可变的。在某些网络处理器中,处理器允许可变长度请求,因此允许散列可变长度的数据。
可以以各种方式进行模简化。上文提及的实施例是整数除法器。可将查找表用于近似该除法。可将该除法作为重复的减法来执行。也可以使用其他的除法近似。
使用存储器查找仅是耦合操作的一个示例。可存在一个或多个耦合操作。另一示例是用于锁资源的锁请求。仅当在通过存储器访问返回的散列桶中存在碰撞时,可以作出锁请求。在此情况下,请求中的诸如锁标识符(ID)之类的其他信息将使得读取引擎能够通过使用给定的锁ID,在检测到在被遍历的链中不会出现的散列碰撞之后请求锁,并且甚至可能插入碰撞链的新入口。在诸如此类的实施例中,HMR资源可以具有或者直接地或者通过资源互连连接到其他资源(例如锁资源)的连接。
在另一实施例中,HMR不需要被耦合到网络处理器;作为替代它可以驻存在存储器系统中。另一实施例可以具有多个HMR资源,它们可能全部相同、或者可能每个实现不同的散列函数、或者理解如何遍历不同类型的散列碰撞链或者其他结构。
因此,虽然已经针对此点描述了用于散列-模-读取资源的方法和装置的具体实施例,然而并非意欲将这样的具体参考认为是对本发明的范围的限制,除非在以下权利要求书中提出。
Claims (18)
1.一种资源单元,包括:
请求接口,用于使得所述资源单元能够接收来自分组处理元件的请求,其中所述请求包括关联数据、请求类型、简化模数和基本地址,所述关联数据包括固定的或可变量的信息和所述可变量的信息的大小;
散列引擎,用于产生所述关联数据的散列;
模引擎,通信耦合到所述散列引擎用于产生所述散列的模数结果;
读取引擎,用于在从所述请求中的基本地址偏移了来自所述散列引擎和/或所述模引擎的计算量的地址处执行存储器简单读取;以及
结果接口,用于使得所述资源单元能够向所述分组处理元件返回结果。
2.如权利要求1所述的资源单元,所述模引擎还包括来自由以下装置组成的组的至少一个装置:整数除法器、查找表近似和可重复减法单元。
3.如权利要求1所述的资源单元,所述散列引擎还用于使用循环冗余校验散列。
4.如权利要求1所述的资源单元,所述散列引擎用于执行通过所述请求可选择的多种类型和大小的散列函数。
5.如权利要求1所述的资源单元,所述读取引擎用于执行对碰撞链的遍历。
6.如权利要求1所述的资源单元,所述资源单元还包括通信耦合到所述结果接口的所述散列引擎,用于将所述散列作为所述结果的至少一部分返回。
7.如权利要求1所述的资源单元,所述资源单元还包括通信耦合到所述结果接口的所述模引擎,用于将所述模数结果作为所述结果的至少一部分返回。
8.如权利要求1所述的资源单元,所述资源单元还包括通信耦合到所述结果接口的所述读取引擎,用于将所述读取结果作为所述结果的至少一部分返回。
9.一种网络处理器,包括:
至少一个分组处理元件;
资源单元,包括:
请求接口,用于使得所述资源单元能够接收来自分组处理元件的请求,其中所述请求包括关联数据、请求类型、简化模数和基本地址,所述关联数据包括固定的或可变量的信息和所述可变量的信息的大小;
散列引擎,用于产生所述关联数据的散列;
模引擎,通信耦合到所述散列引擎用于产生所述散列的模数结果;
读取引擎,用于在从所述请求中的基本地址偏移了来自所述散列引擎和/或所述模引擎的计算量的地址处执行存储器简单读取;
结果接口,用于使得所述资源单元能够向所述分组处理元件返回结果;以及
资源互连,用于使得所述资源单元能够在所述请求接口处接收来自所述分组处理元件的请求,并且用于通过所述结果接口返回结果。
10.如权利要求9所述的网络处理器还包括存储器。
11.如权利要求10所述的网络处理器,所述网络处理器还包括耦合到所述资源单元以使得所述资源单元能够访问所述存储器的存储器互连。
12.如权利要求10所述的网络处理器,所述存储器耦合到所述资源互连以使得能够访问所述存储器。
13.如权利要求11所述的网络处理器,所述存储器耦合到所述资源互连以使得所述分组处理元件能够访问所述存储器。
14.如权利要求9所述的网络处理器,至少一个分组处理元件还包括多个分组处理元件,并且所述资源单元还用于处理来自所述多个分组处理元件的多个请求。
15.一种在资源单元处理请求的方法,包括:
接收来自分组处理元件的请求,其中所述请求包括关联数据、请求类型、简化模数和基本地址,所述关联数据包括固定的或可变量的信息和所述可变量的信息的大小;
确定是否要对所述关联数据执行散列以产生所述关联数据的散列;
确定是否要对所述关联数据或所述散列执行模简化以产生模数结果;
确定是否要在从所述请求中的基本地址偏移了来自所述散列和/或所述模简化的计算量的地址处执行对存储器的简单读取以产生读取结果;并且
向所述分组处理元件返回所述请求的结果。
16.如权利要求15所述的方法,接收请求还包括接收包括锁位置、锁标识符和锁地址的至少一个的请求信息。
17.如权利要求15所述的方法,返回所述请求的结果还包括返回由以下结果组成的组中的至少一个结果:散列、简化的散列、散列和读取结果、简化的散列和读取结果、模数结果、模数结果和读取结果以及读取结果。
18.一种资源单元,包括:
用于接收来自分组处理元件的请求的装置,其中所述请求包括关联数据、请求类型、简化模数和基本地址,所述关联数据包括固定的或可变量的信息和所述可变量的信息的大小;
用于确定是否要对所述关联数据执行散列以产生所述关联数据的散列的装置;
用于确定是否要对所述关联数据或所述散列执行模简化以产生模数结果的装置;
用于确定是否要在从所述请求中的基本地址偏移了来自所述散列和/或所述模简化的计算量的地址处执行对存储器的简单读取以产生读取结果的装置;以及
用于向所述分组处理元件返回所述请求的结果的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/189,584 | 2005-07-25 | ||
US11/189,584 US7657654B2 (en) | 2005-07-25 | 2005-07-25 | Hashing assist for network processors |
PCT/US2006/024019 WO2007032800A2 (en) | 2005-07-25 | 2006-06-20 | Hashing assist for network processors |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101248434A CN101248434A (zh) | 2008-08-20 |
CN101248434B true CN101248434B (zh) | 2012-08-29 |
Family
ID=37680264
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800273750A Active CN101248434B (zh) | 2005-07-25 | 2006-06-20 | 辅助网络处理器的散列 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7657654B2 (zh) |
EP (1) | EP1915712A2 (zh) |
CN (1) | CN101248434B (zh) |
WO (1) | WO2007032800A2 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7739426B1 (en) | 2005-10-31 | 2010-06-15 | Cisco Technology, Inc. | Descriptor transfer logic |
US9460144B2 (en) * | 2012-01-13 | 2016-10-04 | Oracle International Corporation | Lock acceleration |
US11126418B2 (en) * | 2012-10-11 | 2021-09-21 | Mcafee, Llc | Efficient shared image deployment |
US10564865B2 (en) | 2016-03-22 | 2020-02-18 | Seagate Technology Llc | Lockless parity management in a distributed data storage system |
US11010299B2 (en) * | 2019-05-20 | 2021-05-18 | Western Digital Technologies, Inc. | System and method for performing discriminative predictive read |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434662B1 (en) * | 1999-11-02 | 2002-08-13 | Juniper Networks, Inc. | System and method for searching an associative memory utilizing first and second hash functions |
US6795850B2 (en) * | 2002-12-13 | 2004-09-21 | Sun Microsystems, Inc. | System and method for sharing memory among multiple storage device controllers |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389513B1 (en) * | 1998-05-13 | 2002-05-14 | International Business Machines Corporation | Disk block cache management for a distributed shared memory computer system |
US6289375B1 (en) * | 1998-10-30 | 2001-09-11 | International Business Machines Corporation | Method and apparatus for invoking network agent functions using a hash table |
US7366100B2 (en) * | 2002-06-04 | 2008-04-29 | Lucent Technologies Inc. | Method and apparatus for multipath processing |
US20050049924A1 (en) * | 2003-08-27 | 2005-03-03 | Debettencourt Jason | Techniques for use with application monitoring to obtain transaction data |
US7962453B2 (en) * | 2004-04-26 | 2011-06-14 | Oracle International Corporation | Dynamic redistribution of a distributed memory index when individual nodes have different lookup indexes |
-
2005
- 2005-07-25 US US11/189,584 patent/US7657654B2/en active Active
-
2006
- 2006-06-20 CN CN2006800273750A patent/CN101248434B/zh active Active
- 2006-06-20 WO PCT/US2006/024019 patent/WO2007032800A2/en active Application Filing
- 2006-06-20 EP EP06836080A patent/EP1915712A2/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6434662B1 (en) * | 1999-11-02 | 2002-08-13 | Juniper Networks, Inc. | System and method for searching an associative memory utilizing first and second hash functions |
US6795850B2 (en) * | 2002-12-13 | 2004-09-21 | Sun Microsystems, Inc. | System and method for sharing memory among multiple storage device controllers |
Also Published As
Publication number | Publication date |
---|---|
US7657654B2 (en) | 2010-02-02 |
EP1915712A2 (en) | 2008-04-30 |
WO2007032800A2 (en) | 2007-03-22 |
CN101248434A (zh) | 2008-08-20 |
WO2007032800A3 (en) | 2007-05-31 |
US20070022084A1 (en) | 2007-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11003604B2 (en) | Procedures for improving efficiency of an interconnect fabric on a system on chip | |
US6675163B1 (en) | Full match (FM) search algorithm implementation for a network processor | |
EP3493084B1 (en) | Method for processing data in bloom filter and bloom filter | |
Miner et al. | Efficient reachability set generation and storage using decision diagrams | |
CN103684961B (zh) | 自动构建无死锁互连 | |
US7107265B1 (en) | Software management tree implementation for a network processor | |
US6947931B1 (en) | Longest prefix match (LPM) algorithm implementation for a network processor | |
US20050242976A1 (en) | Lookup engine | |
JP6594624B2 (ja) | 多数の共有メモリを用いる再構成可能な並行ルックアップの方法およびシステム | |
CN101248434B (zh) | 辅助网络处理器的散列 | |
Aiello et al. | Fast algorithms for bit-serial routing on a hypercube | |
CN101350716A (zh) | 用于可变位宽的哈希值的有效生成的系统和方法 | |
Lin et al. | Can we overcome the n log n barrier for oblivious sorting? | |
CN101276389A (zh) | 单个物理可信平台模块内的多个逻辑可信平台模块的分离 | |
Asharov et al. | Optimal Oblivious Parallel RAM∗ | |
CN105264525A (zh) | 内部搜索引擎架构 | |
Haeupler et al. | Faster algorithms for incremental topological ordering | |
Hernando et al. | Algorithm 994: fast implementations of the Brouwer-Zimmermann algorithm for the computation of the minimum distance of a random linear code | |
WO2013004193A1 (en) | Method and apparatus for index-based virtual addressing | |
JP3873027B2 (ja) | ビットストリングの検索装置および方法 | |
Bachtler et al. | Local Certification of Reachability. | |
Krajecki et al. | BFS traversal on multi-GPU cluster | |
Fantozzi et al. | Implementing shared memory on clustered machines | |
CN116489083A (zh) | 报文处理方法、分布式转发系统及相关设备 | |
CN112615894A (zh) | 交易的打包与交易信息的查询方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |