Configurable mesh data bus in an island-based network flow processor

    公开(公告)号:US09612981B2

    公开(公告)日:2017-04-04

    申请号:US13399324

    申请日:2012-02-17

    申请人: Gavin J. Stark

    发明人: Gavin J. Stark

    IPC分类号: G06F13/00 G06F13/14

    摘要: An island-based network flow processor (IB-NFP) integrated circuit includes rectangular islands disposed in rows. A configurable mesh data bus includes a command mesh, a pull-id mesh, and two data meshes. The configurable mesh data bus extends through all the islands. For each mesh, each island includes a centrally located crossbar switch and eight half links. Two half links extend to ports on the top edge of the island, a half link extends to a port on a right edge of the island, two half links extend to ports on the bottom edge of the island, and a half link extents to a port on the left edge of the island. Two additional links extend to functional circuitry of the island. The configurable mesh data bus is configurable to form a command/push/pull data bus over which multiple transactions can occur simultaneously on different parts of the integrated circuit.

    Commonality of memory island interface and structure
    2.
    发明授权
    Commonality of memory island interface and structure 有权
    记忆岛界面和结构的共性

    公开(公告)号:US09405713B2

    公开(公告)日:2016-08-02

    申请号:US13399915

    申请日:2012-02-17

    IPC分类号: G06F13/00 G06F13/20

    CPC分类号: G06F13/20 G06F13/385

    摘要: The functional circuitry of a network flow processor is partitioned into a number of rectangular islands. The islands are disposed in rows. A configurable mesh data bus extends through the islands. A first island includes a first memory and a first data bus interface. A second island includes a processor, a second memory, and a second data bus interface. The processor can issue a command for a target memory to do an action. If a field in the command has a first value then the target memory is the first memory, whereas if the field has a second value then the target memory is in the second memory. The command format is the same, regardless of whether the target memory is local or remote. If the target memory is remote, then a data bus bridge adds destination information before putting the command onto the global configurable mesh data bus.

    摘要翻译: 网络流处理器的功能电路被划分成多个矩形岛。 这些岛屿排列成行。 可配置的网状数据总线延伸穿过岛。 第一岛包括第一存储器和第一数据总线接口。 第二岛包括处理器,第二存储器和第二数据总线接口。 处理器可以为目标内存发出一个命令来执行一个动作。 如果命令中的字段具有第一个值,则目标存储器是第一个存储器,而如果该字段具有第二个值,则目标存储器位于第二个存储器中。 命令格式相同,无论目标内存是本地还是远程目标内存。 如果目标存储器是远程的,则在将命令放入全局可配置的网格数据总线之前,数据总线桥接器将添加目标信息。

    Flow key lookup involving multiple simultaneous cam operations to identify hash values in a hash bucket
    3.
    发明授权
    Flow key lookup involving multiple simultaneous cam operations to identify hash values in a hash bucket 有权
    涉及多个同步凸轮操作以识别散列桶中的散列值的流键查找

    公开(公告)号:US09385957B1

    公开(公告)日:2016-07-05

    申请号:US14537514

    申请日:2014-11-10

    摘要: A flow key is determined from an incoming packet. Two hash values A and B are then generated from the flow key. Hash value A is an index into a hash table to identify a hash bucket. Multiple simultaneous CAM lookup operations are performed on fields of the bucket to determine which ones of the fields store hash value B. For each populated field there is a corresponding entry in a key table and in other tables. The key table entry corresponding to each field that stores hash value B is checked to determine if that key table entry stores the original flow key. When the key table entry that stores the original flow key is identified, then the corresponding entries in the other tables are determined to be a “lookup output information value”. This value indicates how the packet is to be handled/forwarded by the network appliance.

    摘要翻译: 从输入包确定流密钥。 然后从流密钥生成两个散列值A和B. 哈希值A是哈希表中用于标识哈希桶的索引。 在桶的字段上执行多个同时的CAM查找操作,以确定哪些字段存储散列值B.对于每个填充字段,在键表和其他表中都有相应的条目。 检查对应于存储散列值B的每个字段的密钥表条目,以确定该密钥表条目是否存储原始流密钥。 当存储原始流密钥的密钥表条目被识别时,其他表中的相应条目被确定为“查找输出信息值”。 该值指示如何由网络设备处理/转发数据包。

    Transactional memory that performs a CAMR 32-bit lookup operation
    4.
    发明授权
    Transactional memory that performs a CAMR 32-bit lookup operation 有权
    执行CAMR 32位查找操作的事务性内存

    公开(公告)号:US09152452B2

    公开(公告)日:2015-10-06

    申请号:US13598448

    申请日:2012-08-29

    申请人: Gavin J. Stark

    发明人: Gavin J. Stark

    摘要: A transactional memory (TM) receives a lookup command across a bus from a processor. The command includes a base address, a starting bit position, and a mask size. In response to the command, the TM pulls an input value (IV). A selecting circuit within the TM uses the starting bit position and the mask size to select a first portion of the IV. The first portion of the IV and the base address value are summed to generate a memory address. The memory address is used to read a word containing multiple result values and multiple reference values from memory. A second portion of the IV is compared with each reference value using a comparator circuit. A result value associated with the matching reference value is selected using a multiplexing circuit and a select value generated by the comparator circuit. The TM sends the selected result value to the processor.

    摘要翻译: 事务存储器(TM)从处理器接收总线上的查找命令。 该命令包括基地址,起始位位置和掩码大小。 响应该命令,TM拉动输入值(IV)。 TM内的选择电路使用起始位位置和掩模尺寸来选择IV的第一部分。 IV的第一部分和基地址值相加以生成存储器地址。 存储器地址用于从存储器读取包含多个结果值和多个参考值的单词。 使用比较器电路将IV的第二部分与每个参考值进行比较。 使用复用电路和由比较器电路产生的选择值来选择与匹配参考值相关联的结果值。 TM将选定的结果值发送到处理器。

    Transactional memory that performs an atomic look-up, add and lock operation
    5.
    发明授权
    Transactional memory that performs an atomic look-up, add and lock operation 有权
    执行原子查询,添加和锁定操作的事务内存

    公开(公告)号:US09146920B2

    公开(公告)日:2015-09-29

    申请号:US13609039

    申请日:2012-09-10

    IPC分类号: G06F17/30 G06F9/46

    摘要: A transactional memory (TM) receives an Atomic Look-up, Add and Lock (ALAL) command across a bus from a client. The command includes a first value. The TM pulls a second value. The TM uses the first value to read a set of memory locations, and determines if any of the locations contains the second value. If no location contains the second value, then the TM locks a vacant location, adds the second value to the vacant location, and sends a result to the client. If a location contains the second value and it is not locked, then the TM locks the location and returns a result to the client. If a location contains the second value and it is locked, then the TM returns a result to the client. Each location has an associated data structure. Setting the lock field of a location locks access to its associated data structure.

    摘要翻译: 事务性存储器(TM)通过客户机的总线接收原子查询,添加和锁定(ALAL)命令。 该命令包含第一个值。 TM拉第二个值。 TM使用第一个值来读取一组存储器位置,并确定是否有任何位置包含第二个值。 如果没有位置包含第二个值,则TM锁定空闲位置,将第二个值添加到空闲位置,并将结果发送给客户端。 如果某个位置包含第二个值并且未锁定,则TM锁定位置并将结果返回给客户端。 如果一个位置包含第二个值并被锁定,那么TM将结果返回给客户机。 每个位置都有相关的数据结构。 设置位置的锁定字段锁定其相关数据结构的访问。

    Recursive use of multiple hardware lookup structures in a transactional memory
    6.
    发明授权
    Recursive use of multiple hardware lookup structures in a transactional memory 有权
    在事务性存储器中递归使用多个硬件查找结构

    公开(公告)号:US09069558B2

    公开(公告)日:2015-06-30

    申请号:US13552619

    申请日:2012-07-18

    申请人: Gavin J. Stark

    发明人: Gavin J. Stark

    IPC分类号: G06F12/00 G06F9/34 G06F13/40

    摘要: A lookup engine of a transactional memory (TM) has multiple hardware lookup structures, each usable to perform a different type of lookup. In response to a lookup command, the lookup engine reads a first block of first information from a memory unit. The first information configures the lookup engine to perform a first type of lookup, thereby identifying a first result value. If the first result value is not a final result value, then the lookup engine uses address information in the first result value to read a second block of second information. The second information configures the lookup engine to perform a second type of lookup, thereby identifying a second result value. This process repeats until a final result value is obtained. The type of lookup performed is determined by the result value of the preceding lookup and/or type information of the block of information for the next lookup.

    摘要翻译: 事务存储器(TM)的查找引擎具有多个硬件查找结构,每个硬件查找结构可用于执行不同类型的查找。 响应于查找命令,查找引擎从存储器单元读取第一信息块。 第一信息配置查找引擎执行第一类型的查找,从而识别第一结果值。 如果第一结果值不是最终结果值,则查找引擎使用第一结果值中的地址信息来读取第二信息块。 第二信息配置查找引擎执行第二类型的查找,从而识别第二结果值。 该过程重复,直到获得最终结果值。 执行的查找类型由下一次查找的信息块的前一查找和/或类型信息的结果值确定。

    Staggered island structure in an island-based network flow processor
    7.
    发明授权
    Staggered island structure in an island-based network flow processor 有权
    基于岛屿网络流处理器的交错岛结构

    公开(公告)号:US08930872B2

    公开(公告)日:2015-01-06

    申请号:US13399433

    申请日:2012-02-17

    申请人: Gavin J. Stark

    发明人: Gavin J. Stark

    IPC分类号: G06F17/50 H04L12/00 G06F13/00

    摘要: An island-based network flow processor (IB-NFP) integrated circuit includes rectangular islands disposed in rows. In one example, the configurable mesh data bus is configurable to form a command/push/pull data bus over which multiple transactions can occur simultaneously on different parts of the integrated circuit. The rectangular islands of one row are oriented in staggered relation with respect to the rectangular islands of the next row. The left and right edges of islands in a row align with left and right edges of islands two rows down in the row structure. The data bus involves multiple meshes. In each mesh, the island has a centrally located crossbar switch and six radiating half links, and half links down to functional circuitry of the island. The staggered orientation of the islands, and the structure of the half links, allows half links of adjacent islands to align with one another.

    摘要翻译: 基于岛屿的网络流处理器(IB-NFP)集成电路包括以行排列的矩形岛。 在一个示例中,可配置的网格数据总线可配置成形成命令/推/拉数据总线,多个事务可以同时发生在集成电路的不同部分上。 一行的矩形岛相对于下一行的矩形岛定向成交错关系。 一行中的岛的左边缘和右边缘与行结构中两行向下的岛的左边缘和右边缘对齐。 数据总线涉及多个网格。 在每个网格中,岛具有位于中心的交叉开关和六个辐射半连接,并且一半连接到岛的功能电路。 岛屿的交错取向和半连接的结构允许相邻岛屿的一半链接彼此对齐。

    Transactional memory that performs a PPM 32-bit lookup operation
    8.
    发明授权
    Transactional memory that performs a PPM 32-bit lookup operation 有权
    执行PPM 32位查找操作的事务内存

    公开(公告)号:US08930639B2

    公开(公告)日:2015-01-06

    申请号:US13675394

    申请日:2012-11-13

    申请人: Gavin J. Stark

    发明人: Gavin J. Stark

    IPC分类号: G06F12/00 G06F9/46 G06F9/34

    摘要: A transactional memory (TM) receives a lookup command across a bus from a processor. The command includes a memory address. In response to the command, the TM pulls an input value (IV). The memory address is used to read a word containing multiple result values (RVs), multiple reference values, and multiple prefix values from memory. A selecting circuit within the TM uses a starting bit position and a mask size to select a portion of the IV. The portion of the IV is a lookup key value (LKV). Mask values are generated based on the prefix values. The LKV is masked by each mask value thereby generating multiple masked values that are compared to the reference values. Based on the comparison a lookup table generates a selector value that is used to select a result value. The selected result value is then communicated to the processor via the bus.

    摘要翻译: 事务存储器(TM)从处理器接收总线上的查找命令。 该命令包括一个内存地址。 响应该命令,TM拉动输入值(IV)。 存储器地址用于从存储器读取包含多个结果值(RV),多个引用值和多个前缀值的单词。 TM内的选择电路使用起始位位置和掩码大小来选择IV的一部分。 IV的部分是查询键值(LKV)。 基于前缀值生成掩码值。 LKV由每个掩码值屏蔽,从而产生与参考值进行比较的多个掩蔽值。 基于比较,查找表生成用于选择结果值的选择器值。 所选择的结果值然后经由总线传送到处理器。

    TRANSACTIONAL MEMORY THAT PERFORMS A TCAM 32-BIT LOOKUP OPERATION
    9.
    发明申请
    TRANSACTIONAL MEMORY THAT PERFORMS A TCAM 32-BIT LOOKUP OPERATION 有权
    实现TCAM 32位查询操作的交互式存储器

    公开(公告)号:US20140136813A1

    公开(公告)日:2014-05-15

    申请号:US13675353

    申请日:2012-11-13

    申请人: Gavin J. Stark

    发明人: Gavin J. Stark

    IPC分类号: G06F12/08

    摘要: A transactional memory (TM) receives a lookup command across a bus from a processor. The command includes a memory address. In response to the command, the TM pulls an input value (IV). The memory address is used to read a word containing multiple result values (RVs), multiple reference values, and multiple mask values from memory. A selecting circuit within the TM uses a starting bit position and a mask size to select a portion of the IV. The portion of the IV is a lookup key value (LKV). The LKV is masked by each mask value thereby generating multiple masked values. Each masked value is compared to a reference value thereby generating multiple comparison values. A lookup table generates a selector value based upon the comparison values. A result value is selected based on the selector value. The selected result value is then communicated to the processor via the bus.

    摘要翻译: 事务存储器(TM)从处理器接收总线上的查找命令。 该命令包括一个内存地址。 响应该命令,TM拉动输入值(IV)。 存储器地址用于从存储器读取包含多个结果值(RV),多个参考值和多个掩码值的单词。 TM内的选择电路使用起始位位置和掩码大小来选择IV的一部分。 IV的部分是查询键值(LKV)。 每个掩码值屏蔽LKV,从而产生多个掩蔽值。 将每个屏蔽值与参考值进行比较,从而生成多个比较值。 查找表根据比较值生成选择器值。 根据选择器值选择结果值。 所选择的结果值然后经由总线传送到处理器。

    TRANSACTIONAL MEMORY THAT PERFORMS AN ALUT 32-BIT LOOKUP OPERATION
    10.
    发明申请
    TRANSACTIONAL MEMORY THAT PERFORMS AN ALUT 32-BIT LOOKUP OPERATION 有权
    执行32位查找操作的交互式存储器

    公开(公告)号:US20140136812A1

    公开(公告)日:2014-05-15

    申请号:US13675309

    申请日:2012-11-13

    申请人: Gavin J. Stark

    发明人: Gavin J. Stark

    IPC分类号: G06F12/10

    摘要: A transactional memory (TM) receives a lookup command across a bus from a processor. The command includes a memory address, a starting bit position, and a mask size. In response to the command, the TM pulls an input value (IV). The memory address is used to read a word containing multiple result values (RVs) and multiple key values from memory. Each key value is indicates a single RV to be output by the TM. A selecting circuit within the TM uses the starting bit position and mask size to select a portion of the IV. The portion of the IV is a key selector value. A key value is selected based upon the key selector value. A RV is selected based upon the key value. The key value is selected by a key selection circuit. The RV is selected by a result value selection circuit.

    摘要翻译: 事务存储器(TM)从处理器接收总线上的查找命令。 该命令包括存储器地址,起始位位置和掩码大小。 响应该命令,TM拉动输入值(IV)。 存储器地址用于从存储器读取包含多个结果值(RV)和多个键值的单词。 每个键值表示由TM输出的单个RV。 TM内的选择电路使用起始位位置和掩码大小来选择IV的一部分。 IV的部分是关键选择器值。 基于键选择器值选择键值。 基于键值选择RV。 键值由键选择电路选择。 RV由结果值选择电路选择。