CN106250351A - 具有集成的搜索引擎的硬件可编程设备 - Google Patents
具有集成的搜索引擎的硬件可编程设备 Download PDFInfo
- Publication number
- CN106250351A CN106250351A CN201610394297.3A CN201610394297A CN106250351A CN 106250351 A CN106250351 A CN 106250351A CN 201610394297 A CN201610394297 A CN 201610394297A CN 106250351 A CN106250351 A CN 106250351A
- Authority
- CN
- China
- Prior art keywords
- addressable memory
- content addressable
- search engine
- search
- content
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 claims abstract description 90
- 238000012545 processing Methods 0.000 claims abstract description 17
- 230000004044 response Effects 0.000 claims abstract description 10
- 230000006870 function Effects 0.000 claims description 18
- 108091023043 Alu Element Proteins 0.000 claims description 2
- 230000005611 electricity Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 11
- 238000000034 method Methods 0.000 description 9
- 238000003491 array Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000010276 construction Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 230000006855 networking Effects 0.000 description 4
- 102100026413 Branched-chain-amino-acid aminotransferase, mitochondrial Human genes 0.000 description 3
- 101000935638 Homo sapiens Basal cell adhesion molecule Proteins 0.000 description 3
- 101000766294 Homo sapiens Branched-chain-amino-acid aminotransferase, mitochondrial Proteins 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000000151 deposition Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013036 cure process Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000009828 non-uniform distribution Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C15/00—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores
- G11C15/04—Digital stores in which information comprising one or more characteristic parts is written into the store and in which information is read-out by searching for one or more of these characteristic parts, i.e. associative or content-addressed stores using semiconductor elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90339—Query processing by using parallel associative memories or content-addressable memories
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Logic Circuits (AREA)
Abstract
本公开涉及具有集成的搜索引擎的硬件可编程设备。公开了一种用于内容可寻址存储器的包括具有可配置嵌入式搜索引擎的硬件处理元件的集成电路管芯。电路管芯包括具有硬件处理电路的区域。搜索引擎经由互连耦合至电路管芯。搜索引擎接收对数据内容的请求。内容可寻址存储器耦合至搜索引擎。内容可寻址存储器能够由搜索引擎响应于来自硬件处理电路对数据内容的搜索请求而被搜索。
Description
技术领域
本公开总体上涉及可编程硬件,并且更具体地涉及用于硬件处理器的集成的搜索引擎。
背景技术
硬件设备通常需要数据以便执行不同的功能。例如,网络路由器的控制器需要关于传入二进制IP地址的数据以便快速地路由分组。控制器必须访问存储器中存储的数据并且返回用于对应IP地址的正确的端口以便路由分组。因此,硬件设备需要访问存储数据的存储器并且必须能够快速地运行搜索以发现想要的数据的地址。操作硬件设备的速度部分取决于在存储器结构中寻找并且因此访问所需要的数据所需要的速度。
通常,使用标准的存储器结构(即SRAM/DRAM)来存储可编程设备的数据。在标准的存储器结构中寻找数据需要给出地址并且访问所存储的数据的所请求的地址。传统的读取将存储器地址位置作为输入并且在返回这些地址处的单元内容。然而,如果地址未知,则必须采用算法来识别并且返回存储与搜索准则匹配的内容的存储位置。这一处理通常涉及运行搜索算法以筛选存储器中所存储的内容从而找到想要的数据。
例如,算法搜索引擎的一般实现基于使用“哈希表”来创建使得搜索关键字与所存储的值匹配的相关阵列。使用哈希函数来计算到种类(储存区)的阵列的索引,根据其能够找到正确的匹配值。理想情况下,哈希函数向每个关键字分配唯一的储存区,但是这一情况实际上不太可实现(通常一些关键字哈希到相同的储存区)。取而代之,多数哈希表设计假定会出现哈希冲突(向相同的储存区分配的不同的关键字)并且必须以某种方式来调解这一哈希冲突。
在哈希表中,每个查找的平均成本独立于表中存储的元素的数目。对于诸如相联阵列、数据库索引和缓存等一些应用,哈希表可能比查找树更高效。基本的要求是,该功能应当提供哈希值的均匀分布。非均匀分布增加了冲突的数目以及解决冲突的成本。然而,不管哈希表中的分布如何,搜索处理需要另外的时钟周期来找到想要的内容。
某些存储器基于内容可寻址存储器(CAM)采用基于电路的搜索引擎。内容可寻址存储器(CAM)使得能够输入搜索字(例如二进制IP地址)并且在单个循环操作中搜索整个存储器以返回搜索字的一个(或多个)匹配。不同于其中地址被呈现给存储器结构并且返回存储器的内容的传统的存储器,在CAM设计中,描述搜索准则的“关键字”被呈现给存储器结构并且返回具有匹配关键字的内容的位置的地址。使用特殊存储器单元来实现存储数据的CAM设计,使得存储器的搜索能够在单个时钟周期上发生。
使用CAM类型电路来缩短搜索时间涉及使用专用集成电路用于存储器搜索。存储器阵列还需要另外的专用比较电路装置以使得能够实现来自阵列中的所有单元的同时的搜索和匹配指示。然而,这样的基于CAM的集成电路比标准的RAM和相关联的搜索引擎更复杂,并且通常必须连接在存储器与硬件处理设备之间。因此,搜索集成电路与存储器之间的距离增加了检索所请求的数据的潜伏时间。
另外,这样的外部搜索专用芯片当前由于供应商有限而很昂贵。另外,这样的设备消耗相对较大量的电力。例如,最大电流搜索设备在最快搜索速率下消耗最高达120W。由于存储器芯片在印刷电路板上与处理芯片相关地放置,硬件与存储器之间的输入输出接口必须相对较长。这增加了需要更高电压和更高电流来克服的电容负载。单独的TCAM存储器的使用还消耗基本上大量输入/输出端口并且在印刷电路板上需要大的占地面积。
发明内容
一个示例是采用内容可寻址存储器的具有集成的搜索引擎的硬件设备。硬件设备与集成的三进制内容可寻址存储器(TCAM)搜索引擎和TCAM阵列在同一管芯上以最小化TCAM阵列中存储的数据的搜索请求的功耗和延迟。另一示例是包括具有搜索引擎的TCAM阵列的单独的存储器管芯,搜索引擎具有连接至硬件处理管芯的低功率接口。另一示例是具有在软可编程硬件区域附近在柱状区域中的并行TCAM搜索引擎和阵列的处理管芯。
本领域普通技术人员鉴于参考附图做出的对各种实施例的详细描述将很清楚另外的方面,下面提供附图的简要描述。
附图说明
以上和其他优点在阅读以下详细描述并且参考附图时将变得很清楚。
图1是在管芯上的处理系统的框图,其图示不同的逻辑区域之间的互连以及设备I/O的示例;
图2是请求搜索集成的TCAM阵列中存储的数据的示例硬件处理设备的流程图;
图3是具有一个或多个集成的TCAM搜索引擎的示例硬件处理管芯的部件的框图;
图4是图3中的管芯上的集成的TCAM搜索引擎和TCAM阵列的框图;
图5A图示示出了基于TCAM的存储器阵列的示例分区的表;
图5B图示多个示例双TCAM组合的表,每个组合具有原始TCAM的容量的一半;
图6是具有在硬件处理管芯附近的单独的管芯上芯片上的集成的搜索引擎的示例硬件系统的框图;
图7是图6中的搜索引擎管芯芯片的框图;以及
图8是具有嵌入在可编程硬件区域之间的列内的并行TCAM搜索引擎的示例硬件处理系统管芯的框图。
虽然本发明会有各种修改和替选形成,然而附图中示出了并且在本文中将详细描述具体的示例。然而,应当理解,本发明并非意图限于所公开的特定形式。相反,本发明应当覆盖落入所附权利要求定义的本发明的精神和范围内的所有修改、等同和替选方案。
具体实施方式
图1中示出了根据实施例的可编程逻辑设备(PLD)100,其是在集成电路部件管芯中包括数据交换的计算系统的说明性示例。可编程逻辑设备100具有输入/输出电路装置110,输入/输出电路装置110用于经由输入/输出引脚120来驱动信号离开设备100并且从其他设备接收信号。可以使用诸如全局和局部竖直和水平传导线路和总线等互连资源115来在设备100上路由信号。
输入/输出电路装置110包括传统的输入/输出电路装置、串行数据收发器电路装置、差分接收器和发射器电路装置、或者用于将一个集成电路连接至另一集成电路的其他电路装置。
互连资源115包括传导线路以及在相应传导线路之间的可编程连接,并且因此有时称为可编程互连115。
可编程逻辑区域140可以包括可编程部件,诸如数字信号处理电路装置、存储电路装置、算术电路装置、或者其他组合和顺序逻辑电路装置,诸如可配置寄存器电路装置。作为示例,可配置寄存器电路装置可以作为传统的寄存器来操作。替选地,可配置寄存器电路装置可以作为具有错误检测和错误纠正能力的寄存器来操作。
可编程逻辑区域140可以被配置成执行定制逻辑功能。可编程逻辑区域140还可以包括执行给定应用或功能并且具有有限的可配置性的专用块。例如,可编程逻辑区域140可以包括专用块,诸如可配置存储块、可配置处理块、可编程锁相环电路装置、可编程延迟锁相环电路装置、或者具有可能有限的可配置性的其他专用块。可编程互连115可以被认为是一种可编程逻辑区域140。
可编程逻辑设备100包含可编程存储器元件130。存储器元件130可以使用引脚120和输入/输出电路装置110被加载配置数据(也称为编程数据)。一旦被加载,存储器元件均提供控制可编程逻辑区域140中的相关联的逻辑部件的操作的对应的静态控制信号。在典型的场景中,被加载的存储器元件130的输出被应用到可编程逻辑区域140中的金属氧化物半导体晶体管的栅极以接通或断开某些晶体管并且从而配置可编程逻辑区域140中的逻辑以及路由路径。可以用这一方式来控制的可编程逻辑电路元件包括部分复用器(例如用于形成可编程互连115中的路由路径的复用器)、查找表、逻辑阵列、AND、OR、NAND和NOR逻辑门、通门等。
存储器元件130可以使用任意合适的易失性和/或非易失性存储器结构,诸如随机存取存储器(RAM)单元、熔丝、反熔丝、可编程只读存储器存储器单元、掩模编程的和激光编程的结构、这些结构的组合等。由于存储器元件130在编程期间被加载有配置数据,所以存储器元件130有时称为配置存储器、配置RAM(CRAM)或者可编程存储器元件。
设备100的电路装置可以使用任意合适的架构来组织。作为示例,可编程逻辑设备100的逻辑可以被组织成一系列行和列的更大的可编程逻辑区域,其中每一个包含多个更小的逻辑区域。更小的区域例如可以是有时称为逻辑元件(LE)的逻辑区域,每一个包含查找表、一个或多个寄存器、以及可编程复用器电路装置。更小的区域例如也可以是有时称为自适应逻辑模块(ALM)、可配置逻辑块(CLB)、切片、半切片等的逻辑区域。每个自适应逻辑模块可以包括一对加法器、一对相关联的寄存器以及查找表或者共享的组合逻辑的其他块(即来自一对LE的资源——在本上下文中有时称为自适应逻辑元件或ALE)。更大的区域例如可以是逻辑阵列块(LAB)或者包含例如多个逻辑元件或多个ALM的逻辑区域的逻辑簇。
在设备编程期间,配置数据被加载到设备100中,设备100配置可编程逻辑区域140,使得其逻辑资源执行期望的逻辑功能。例如,配置数据可以配置可配置寄存器电路装置的部分作为传统的寄存器来操作。如果期望,则配置数据可以配置可配置寄存器电路装置中的一些作为具有错误检测和错误纠正能力的寄存器来操作。
如下面将要解释的,设备100还包括内容可寻址存储器区域150,内容可寻址存储器区域150用于经由作为存储器区域150的部分的搜索引擎来快速访问存储器区域150中存储的数据。本示例中的嵌入式搜索引擎使用如下面将描述的内容可访问存储器方法以与传统的外部搜索引擎设备相比实现快速数据搜索并且最小化功耗和延迟。
图2是集成的处理系统200的搜索过程的框图。集成的处理系统200包括硬件管芯202(其在逻辑上等同于图1中的设备100上的逻辑设备)。在本示例中,硬件管芯202基于诸如FGPA等可编程硬件。可编程硬件管芯202耦合至搜索引擎204和内容可寻址存储器206。硬件管芯202包括与搜索引擎命令接口212和搜索引擎搜索接口214接口连接的搜索请求者210,搜索引擎命令接口212和搜索引擎搜索接口214二者耦合至搜索引擎204。在本示例中,搜索请求者210反映负责从存储器分派搜索请求的逻辑,存储器在这种情况下是内容可寻址存储器206。搜索请求者210分派搜索命令,并且搜索引擎命令接口212分派与要搜索的数据相关联的关键字。搜索用户220通过搜索引擎结果接口224从搜索引擎响应接口222捕获搜索响应和结果,搜索引擎结果接口224和搜索引擎响应接口222二者耦合至搜索引擎204。在本示例中,搜索用户220是处理来自存储器的数据的任何硬件逻辑。
搜索引擎204包括耦合至搜索引擎控制器232的信号分配通道230。本示例中的搜索引擎控制器232操作以执行访问搜索表存储器234的三进制内容可寻址存储器(TCAM)搜索。如所理解的,三进制CAM(TCAM)是指使用能够使用三个不同输入值——0、1和X——来存储和查询数据的存储器的设计。通常被称为“不关心”或“通配符”状态的“X”输入使得TCAM能够基于部分模式匹配来执行更广搜索。控制器232还可以被配置成关于传统的SRAM或DRAM执行基于算法的搜索。在本示例中,搜索引擎204作为管芯上的嵌入式部件紧紧地耦合至示例硬件核管芯202中的FPGA核,或者可以松散地耦合在与核管芯202紧邻的单独的管芯上。
搜索引擎控制器232可以基于内容可寻址存储器搜索以便在单个时钟周期内执行搜索。二进制内容可寻址存储器(BCAM)是指使用能够使用两个不同的输入值——0和1——来存储和查询数据的存储器的设计。BCAM实现通常用在组网设备、诸如高性能开关中以加快端口地址查找并且减小分组转发和地址控制列表搜索的延迟。因此,当硬件管芯202用于这样的功能或类似功能时,控制器232可以使用BCAM。
在本示例中,搜索引擎控制器232基于三进制内容可寻址存储器(TCAM)搜索,其是指使用能够使用三个不同的输入值——0、1和X——来存储和查询数据的存储器的设计。最低匹配地址内容响应于返回多个地址的搜索被首先返回。TCAM实现通常用在组网设备、诸如高性能路由器和交换机中以加快路由查找并且减小分组转发和地址控制列表搜索的延迟。
图3示出了嵌入了搜索能力的可编程硬件设备300的部件的管芯布局。硬件设备300具有基底,基底被分为不同的管芯,管芯包括处理硬件管芯302以及4个SRAM管芯304、306、308和310。本示例中的硬件处理管芯302是基于FPGA的管芯并且还包括不同的逻辑构造区域(logic fabric region)312。管芯302还包括2个TCAM模块320和322,2个TCAM模块320和322每个包括TCAM阵列和管理TCAM阵列中存储的数据的搜索的TCAM搜索引擎。TCAM模块320和322的搜索引擎还可以包括用于标准SRAM管芯304、306、308和310上存储的数据的传统的算法搜索的另外的搜索功能。
来自标准SRAM管芯304、306、308和310的数据由相应存储器控制器324、326、328和330来管理。存储器控制器324、326、328和330分配去往和来自存储器304、306、308和310的数据。高速串行接口332和334向和从管芯302移动数据。单独的存储器控制器还通过并行外部存储器输入/输出总线336和338在存储器304、306、308和310与构造逻辑区域312之间分配数据。可以包括可选的硬化处理器(hardened processor)系统340。
硬件处理管芯区域302包括耦合至相应存储器管芯304、306、308和310的4个基于微凸块的存储器接口344、346、348和350。微凸块存储器接口344、346、348和350连接至相应公共集成总线354、356、358和360。相应存储器控制器324、326、328和330耦合至公共集成总线354、356、358和360以从存储器304、306、308和310接收读取数据并且向存储器304、306、308和310发送写入数据。
对于诸如组网、模式识别、搜索分析和计算存储等应用,管芯上eTCAM模块320和322通过提供快速、低功率、低成本搜索能力来增强基本硬件设备管芯302、诸如FPGA设备的功能。
图4是诸如系统300中的FPGA架构中的图3中的TCAM模块322的板上布置的详细框图。示例TCAM模块322通过构造接口410耦合至FGPA逻辑402。TCAM模块322包括2个TCAM阵列412和414,2个TCAM阵列412和414用于存储可以由图3中的逻辑302请求的数据。本示例中的TCAM阵列412和414每个具有32个512x80阵列,本示例中总计64个512x80阵列。当然,可以使用其他大小的阵列。在本示例中,有两个TCAM阵列412和414,以实现存储器的同时搜索。TCAM搜索引擎包括硬控制逻辑区域420。控制逻辑区域420组成TCAM搜索引擎并且包括接口逻辑区域422和424以及控制和XY拦截逻辑426。
接口逻辑由控制和拦截逻辑426来控制,控制和拦截逻辑426访问接口区域422和424以向TCAM阵列412和414提供搜索关键字数据并且从每个阵列接收搜索数据结果。搜索关键字同时与TCAM阵列412和414的全部元素相比较,并且与期望的关键字相关联的数据被返回到逻辑模块422和424。
如将要解释的,多个独立的TCAM实例可以共同存在于给定FGPGA管芯内,如通过模块320和322表示的。另外,应当可能将每个TCAM实例分区为具有变化的预配置的宽度和/或深度的若干分区之一。图5A示出表500,其包括具有4个典型有用分区的单个TCAM实例的示例分区配置。第一条目502示出了具有288-576的唯一比特范围的第一分区4Kx640。示例应用包括访问控制列表(ACL)、最长前缀匹配(LPM)、因特网协议版本4或6或者用于有线应用的软件定义网络(SDN)。应用使用模型实现了所提供的业务负载为100、200或400吉比特/秒(Gbit/sec)的分组处理。第二条目504示出了典型有用范围为144-288的第二分区8Kx320。第二分区可以用于潜在有线应用,其包括Openflow软件定义组网。其他应用使用模型可以包括促进物理端口地址到层2MAC地址的映射的硬件配置。
第三条目506示出了典型有用比特范围为32-144的第三分区16Kx160。第四条目508示出了典型有用比特范围为16-72的第四分区32Kx80。第三和第四示例分区都可以用于虚拟局域网(VLAN)和多协议标签交换(MPLS)二者的层2交换机。使用因此可以包括桥接、交换和聚合。
示例eTCAM阵列实例是“N”个TCAM IP块的有序阵列(每个块“M”比特宽(列)乘以N行深(例如512x80))并且包括用于整个阵列的集成的优先级编码器逻辑。因此,整个阵列大小可以是Y,Y等于MxN。在另一示例中,一个全尺寸eTCAM阵列可以分区成多个eTCAM阵列,每个阵列具有一半的容量。例如,可以有单个TCAM阵列实例具有NK个TCAM IP块,每个块具有Y个阵列元素。然而,可以使用更少(Y/2)个阵列元素产生更多单个TCAM阵列实例,诸如2NK个TCAM IP块。这可以进一步分区成另外的多个eTCAM阵列,每个阵列具有更大的eTCAM阵列的容量的一半。熟悉本领域的人员应当理解,每个另外的分区需要适当的量的另外的输入/输出接口,即使每个分区可以提供一半的容量。
例如,如图5B中的表520所示,可以在具有多个N个TCAM IP块但是具有更小阵列的不同配置中分配4Kx640的全尺寸单个eTCAM实例。表520示出了一系列潜在分区,其包括640元素阵列的2K个TCAM IP块、320元素阵列的4K个TCAM IP块、160元素阵列的8K个TCAM IP块以及80元素阵列的16K个TCAM IP块。4Kx640全尺寸单个eTCAM可以可选地分区作为表520中的组合中的任两个。
如下面将解释的,TCAM引擎可以实例在管芯上,或者通过专用芯片到芯片接口实例在管芯外部(在封装中)。单个eTCAM可以被配置成使得多个eTCAM具有唯一的搜索阵列。例如,一个TCAM模块、诸如图3中的TCAM模块320可以被配置为2Kx640阵列和4Kx320阵列,而其他TCAM模块322可以被配置为4Kx320阵列和8Kx160阵列。替选地,多个eTCAM实例可以在逻辑上连结为聚合总容量的一个单个eTCAM,但每个具有同时的独立的搜索的能力。
图6是包括可以是FPGA的硬件处理管芯602以及在多管芯系统600附近的单独的一组内容可寻址存储器模块604、606、608和610的多管芯系统600的框图。在本示例中,存储器模块604、606、608和610包括TCAM阵列和TCAM搜索引擎。管芯602包括逻辑构造区域612。存储器控制器624、626、628和630经由并行外部存储器输入/输出总线632和634在单独的存储器(未示出)与逻辑区域612之间分配数据。高速串行接口636和638向和从管芯602移动数据。包括可选的硬化处理器系统。
硬件处理管芯602包括耦合至相应TCAM存储器模块604、606、608和610的4个基于微凸块的存储器接口644、646、648和650。微凸块存储器接口644、646、648和650使得能够经由相应低功率公共集成总线654、656、658和660将TCAM存储器模块604、606、608和610连接至管芯602上的设备。
图7是图示图6中的示例TCAM模块610的逻辑视图和平面布局图连同到主处理管芯600的桥接接口710的框图。示例TCAM存储器模块管芯608通过构造接口710耦合至硬件逻辑602。构造接口710是硬IP桥接器并且例如可以是JEDEC 235兼容的(例如高带宽存储器HBM)。桥接构造接口710在本示例中每比特消耗更少的输入/输出功率并且以减小的电路驱动低功率使得存储器模块管芯608的使用的功耗最小化。这由于桥接接口710上的短的到达导线的电容减小而是可能的。
存储器模块管芯608包括用于存储可以通过由搜索引擎执行的搜索来访问的数据的2个TCAM阵列712和714。TCAM阵列712和714中的每个使得能够同时搜索相应数据内容。TCAM搜索引擎包括硬控制逻辑区域720。控制逻辑区域720包括接口逻辑区域722和724以及控制和XY拦截逻辑726。
接口逻辑由控制和拦截逻辑726来控制,控制和拦截逻辑726访问接口区域722和724以向TCAM阵列712和714提供所接收的搜索关键字并且从TCAM阵列712和714获取搜索命中响应和所得到的命中数据。UIB桥接器710用作实施客户端侧搜索逻辑602的通用构造逻辑600与TCAM接口730之间的接口。
图8是基于管芯的处理系统800的框图,其包括具有CAM搜索引擎的并行硬IP电路柱状区域。基于管芯的处理系统800具有在管芯802上的可编程部件。管芯802包括软构造区域804,软构造区域804包含可编程硬件,诸如FPGA计算元件或其他硬件处理器电路。某些并行柱状区域810和812包括特定功能硬件,诸如存储器元件、数字信号处理器、ALU元件等。在本示例中,特定功能硬件布置在跨管芯802的柱状区域中。用户可以经由互连来对软构造区域804中的硬件处理器电路编程以执行不同功能。这样的功能可以使用在软构造区域804附近的并行硬件柱状区域的专用功能。
在一个示例中,并行硬件柱状区域还可以包括在本示例中在柱状区域822、824和826中的内容可寻址存储器模块。存储器模块822、824和826可以包括一个或多个TCAM阵列以及在一个或多个硬IP列内的相关的搜索引擎硬PI实例。TCAM搜索引擎使得能够如以上解释地搜索TCAM阵列中的数据。在本示例中,TCAM存储器阵列和TCAM搜索引擎布置在柱状区域中,类似于其他特定功能硬件,以使得能够实现具有可能需要存储器搜索功能的软构造区域804紧密耦合的接口。
以上示例中在硬件处理设备附近的不同的搜索引擎使得多个可变类型的可配置搜索引擎机制能够共同存在于硬件处理器核中。例如,可以基于搜索应用要求而使用包括二进制CAM、三进制CAM和基于哈希的算法的不同的存储器搜索用于数据存储。因此,多个分布式搜索引擎和内容可寻址存储器、诸如存储器模块822、824和826的基于列的集成实现了对核心客户端侧搜索逻辑的低延迟(紧密靠近的)访问。
多个eTCAM模块实现了多个独立的、同时的搜索。例如,图3中的每个TCAM模块320和322可以具有唯一的分区。TCAM模块320和322每个可以用作单独的进入/离开搜索引擎。另一替选是将2个TCAM模块320和322组合作为具有各个TCAM模块320和322的两倍的容量的一个逻辑TCAM。
图3和6中的嵌入式或封装搜索引擎需要显著降低的功耗(每个搜索),保存FGPAI/O,并且减小了印刷电路板拥堵和路由复杂性。如以上所解释的,嵌入式搜索引擎提供集成的单个循环搜索的优点同时使得延迟最小化。可配置eTCAM根据应用和查找要求实现了具有变化的宽度、深度和操作频率的多个用户定义的搜索配置。
虽然已经参考一个或多个特定示例描述了本原理,然而本领域技术人员应当认识到,可以在不偏离本公开的精神和范围的情况下对其做出很多变化。这些示例及其各种变型中的每个被预期落入以下权利要求中给出的本公开的精神和范围内。
Claims (20)
1.一种集成电路管芯,包括:
包括硬件处理器电路的区域;
接收对数据内容的搜索请求的搜索引擎;
在所述搜索引擎与所述硬件处理器电路中的至少一个硬件处理器电路之间的互连;以及
耦合至所述搜索引擎的内容可寻址存储器,所述内容可寻址存储器能够由所述搜索引擎响应于来自所述硬件处理器电路的对数据内容的请求而被搜索。
2.根据权利要求1所述的集成电路管芯,其中所述内容可寻址存储器能够被分区有预配置的宽度和深度。
3.根据权利要求1所述的集成电路管芯,其中所述内容可寻址存储器是二进制内容可寻址存储器。
4.根据权利要求1所述的集成电路管芯,其中所述内容可寻址存储器是三进制内容可寻址存储器。
5.根据权利要求1所述的集成电路管芯,还包括基于RAM的存储器,并且其中所述搜索引擎响应于来自所述硬件处理器电路中的至少一个硬件处理器电路的请求而执行对所述基于RAM的存储器中存储的数据内容的算法搜索。
6.根据权利要求1所述的集成电路管芯,其中所述内容可寻址存储器被分区为不同的虚拟存储器。
7.根据权利要求1所述的集成电路管芯,其中所述内容可寻址存储器能够与另一内容可寻址存储器组合以形成虚拟内容可寻址存储器。
8.根据权利要求1所述的集成电路管芯,其中所述搜索引擎和所述内容可寻址存储器在柱状区域中,并且其中所述硬件处理器电路在与所述柱状区域相邻的区域中,所述硬件处理器电路能够经由所述互连被互连和编程以执行功能。
9.根据权利要求8所述的集成电路管芯,还包括在第二柱状区域中的固定功能硬件电路。
10.一种处理系统,包括:
包括存储器接口的硬件处理器管芯;以及
在所述硬件处理器管芯附近的存储器管芯,所述存储器管芯包括内容可寻址存储器阵列、处理器接口和接收对所述内容可寻址存储器阵列中存储的数据内容的请求的搜索引擎;
其中所述存储器接口以低功率和低电压操作。
11.根据权利要求10所述的处理系统,其中所述内容可寻址存储器能够被分区有预配置的宽度和深度。
12.根据权利要求10所述的处理系统,其中所述内容可寻址存储器阵列是二进制内容可寻址存储器。
13.根据权利要求10所述的处理系统,其中所述内容可寻址存储器阵列是三进制内容可寻址存储器。
14.根据权利要求10所述的处理系统,其中所述存储器管芯包括基于RAM的存储器,并且其中所述搜索引擎响应于来自所述硬件处理器管芯的请求而执行对所述基于RAM的存储器中存储的数据内容的算法搜索。
15.根据权利要求10所述的处理系统,其中所述内容可寻址存储器阵列被分区为不同的虚拟存储器。
16.根据权利要求10所述的处理系统,其中所述内容可寻址存储器阵列能够与另一内容可寻址存储器阵列组合以形成虚拟内容可寻址存储器阵列。
17.一种集成电路管芯,包括:
包括硬件处理器电路的软构造区域;
与所述软构造区域相邻的第一柱状区域,所述第一柱状区域包括接收对数据内容的搜索请求的搜索引擎以及耦合至所述搜索引擎的内容可寻址存储器,所述内容可寻址存储器能够由所述搜索引擎响应于来自所述硬件处理器电路的对数据内容的请求而被搜索;以及
在所述搜索引擎与所述硬件处理器电路之间的互连。
18.根据权利要求17所述的集成电路管芯,还包括与所述第一柱状区域平行的第二柱状区域,所述第二柱状区域包括固定功能硬件电路。
19.根据权利要求18所述的集成电路管芯,其中所述固定功能硬件电路是由存储器元件、数字信号处理器元件或算术逻辑单元元件组成的组中的一项。
20.根据权利要求17所述的集成电路管芯,其中所述内容可寻址存储器阵列是三进制内容可寻址存储器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/733,662 US20160358653A1 (en) | 2015-06-08 | 2015-06-08 | Hardware programmable device with integrated search engine |
US14/733,662 | 2015-06-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106250351A true CN106250351A (zh) | 2016-12-21 |
Family
ID=56024132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610394297.3A Pending CN106250351A (zh) | 2015-06-08 | 2016-06-06 | 具有集成的搜索引擎的硬件可编程设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20160358653A1 (zh) |
EP (1) | EP3104283B1 (zh) |
CN (1) | CN106250351A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110047539A (zh) * | 2017-12-27 | 2019-07-23 | 瑞萨电子株式会社 | 搜索存储器 |
CN110046286A (zh) * | 2018-01-16 | 2019-07-23 | 马维尔以色列(M.I.S.L.)有限公司 | 用于搜索引擎缓存的方法和装置 |
CN111788632A (zh) * | 2018-12-26 | 2020-10-16 | 西部数据技术公司 | 片上非易失性存储器(nvm)搜索 |
US12002508B2 (en) | 2021-10-14 | 2024-06-04 | Western Digital Technologies, Inc. | On-chip non-volatile memory (NVM) search |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9967272B1 (en) * | 2017-12-05 | 2018-05-08 | Redberry Systems, Inc. | Real-time regular expression search engine |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1825481A (zh) * | 2005-02-17 | 2006-08-30 | 株式会社日立制作所 | 半导体器件 |
US7120731B1 (en) * | 2003-07-15 | 2006-10-10 | Integrated Device Technology, Inc. | CAM-based search engines that support pipelined multi-database search operations using replacement search key segments |
US7185172B1 (en) * | 2003-10-31 | 2007-02-27 | Integrated Device Technology, Inc. | CAM-based search engine devices having index translation capability |
EP1548747B1 (en) * | 2003-12-25 | 2008-03-05 | Hitachi, Ltd. | Content addressed memory with comprising hierarchically structured match-lines and with search function based on conversion of decimals into blocks of bits |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5451887A (en) * | 1986-09-19 | 1995-09-19 | Actel Corporation | Programmable logic module and architecture for field programmable gate array device |
US5894565A (en) * | 1996-05-20 | 1999-04-13 | Atmel Corporation | Field programmable gate array with distributed RAM and increased cell utilization |
US6326806B1 (en) * | 2000-03-29 | 2001-12-04 | Xilinx, Inc. | FPGA-based communications access point and system for reconfiguration |
WO2008067323A2 (en) * | 2006-11-27 | 2008-06-05 | Bay Microsystems, Inc. | Network processor integrated circuit with a software programmable search engine communications module |
US9262312B1 (en) * | 2012-10-17 | 2016-02-16 | Marvell International Ltd. | Apparatus and methods to compress data in a network device and perform content addressable memory (CAM) processing |
-
2015
- 2015-06-08 US US14/733,662 patent/US20160358653A1/en not_active Abandoned
-
2016
- 2016-05-18 EP EP16170049.7A patent/EP3104283B1/en active Active
- 2016-06-06 CN CN201610394297.3A patent/CN106250351A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7120731B1 (en) * | 2003-07-15 | 2006-10-10 | Integrated Device Technology, Inc. | CAM-based search engines that support pipelined multi-database search operations using replacement search key segments |
US7185172B1 (en) * | 2003-10-31 | 2007-02-27 | Integrated Device Technology, Inc. | CAM-based search engine devices having index translation capability |
EP1548747B1 (en) * | 2003-12-25 | 2008-03-05 | Hitachi, Ltd. | Content addressed memory with comprising hierarchically structured match-lines and with search function based on conversion of decimals into blocks of bits |
CN1825481A (zh) * | 2005-02-17 | 2006-08-30 | 株式会社日立制作所 | 半导体器件 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110047539A (zh) * | 2017-12-27 | 2019-07-23 | 瑞萨电子株式会社 | 搜索存储器 |
CN110046286A (zh) * | 2018-01-16 | 2019-07-23 | 马维尔以色列(M.I.S.L.)有限公司 | 用于搜索引擎缓存的方法和装置 |
CN111788632A (zh) * | 2018-12-26 | 2020-10-16 | 西部数据技术公司 | 片上非易失性存储器(nvm)搜索 |
US12002508B2 (en) | 2021-10-14 | 2024-06-04 | Western Digital Technologies, Inc. | On-chip non-volatile memory (NVM) search |
Also Published As
Publication number | Publication date |
---|---|
US20160358653A1 (en) | 2016-12-08 |
EP3104283B1 (en) | 2018-06-20 |
EP3104283A1 (en) | 2016-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10749528B2 (en) | Stacked programmable integrated circuitry with smart memory | |
US6629099B2 (en) | Paralleled content addressable memory search engine | |
US8780926B2 (en) | Updating prefix-compressed tries for IP route lookup | |
Ullah et al. | E-TCAM: An efficient SRAM-based architecture for TCAM | |
CN104871145A (zh) | 网络设备中的存储器共享 | |
CN106250351A (zh) | 具有集成的搜索引擎的硬件可编程设备 | |
US9218862B1 (en) | Method and apparatus for operating finite-state machines in configurable storage circuits | |
Jedhe et al. | A scalable high throughput firewall in FPGA | |
Bando et al. | FlashTrie: beyond 100-Gb/s IP route lookup using hash-based prefix-compressed trie | |
JP2006313949A (ja) | パケット転送装置 | |
US9264257B2 (en) | Dynamic ternary content-addressable memory carving | |
US10623316B2 (en) | Scaling of switching tables with high bandwidth | |
US8098081B1 (en) | Optimization of interconnection networks | |
CN105791455A (zh) | 三态内容寻址存储器tcam空间的处理方法及装置 | |
Hatami et al. | High-performance architecture for flow-table lookup in SDN on FPGA | |
EP3180860B1 (en) | Reconfigurable integrated circuit with on-chip configuration generation | |
McLaughlin et al. | Exploring CAM design for network processing using FPGA technology | |
US9571395B2 (en) | Reconfigurable interconnect element with local lookup tables shared by multiple packet processing engines | |
CN114911728A (zh) | 一种数据查找方法、装置及集成电路 | |
CN106789706A (zh) | 一种基于tcam的网络分流系统 | |
Sun et al. | Minimally buffered router and deflection routing algorithm for 3D mesh NoC | |
Irfan et al. | High-throughput re-configurable content-addressable memory on FPGAs | |
Ejlali et al. | Design and implementation of a shared memory switch fabric | |
EP3223172A1 (en) | Method and system for parallel query using bitmask multicast | |
RAJ et al. | Energy Efficient and Low dynamic power Consumption TCAM on FPGA |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20161221 |
|
WD01 | Invention patent application deemed withdrawn after publication |