Transactional memory that performs a statistics add-and-update operation

    公开(公告)号:US10659030B1

    公开(公告)日:2020-05-19

    申请号:US15874860

    申请日:2018-01-18

    Abstract: A transactional memory (TM) of an island-based network flow processor (IB-NFP) integrated circuit receives a Stats Add-and-Update (AU) command across a command mesh of a Command/Push/Pull (CPP) data bus from a processor. A memory unit of the TM stores a plurality of first values in a corresponding set of memory locations. A hardware engine of the TM receives the AU, performs a pull across other meshes of the CPP bus thereby obtaining a set of addresses, uses the pulled addresses to read the first values out of the memory unit, adds the same second value to each of the first values thereby generating a corresponding set of updated first values, and causes the set of updated first values to be written back into the plurality of memory locations. Even though multiple count values are updated, there is only one bus transaction value sent across the CPP bus command mesh.

    Pop stack absolute instruction
    162.
    发明授权

    公开(公告)号:US10474465B2

    公开(公告)日:2019-11-12

    申请号:US14267362

    申请日:2014-05-01

    Inventor: Gavin J. Stark

    Abstract: A pipelined run-to-completion processor executes a pop stack absolute instruction. The instruction includes an opcode, an absolute pointer value, a flag don't touch bit, and predicate bits. If a condition indicated by the predicate bits is not true, then the opcode operation is not performed. If the condition is true, then the stack of the processor is popped thereby generating an operand A. The absolute pointer value is used to identify a particular register of the stack, and the content of that particular register is an operand B. The arithmetic logic operation specified by the opcode is performed using operand A and operand B thereby generating a result, and the content of the particular register is replaced with the result. If the flag don't touch bit is set to a particular value, then the flag bits (carry flag and zero flag) are not affected by the instruction execution.

    Efficient intercept of connection-based transport layer connections

    公开(公告)号:US10419348B2

    公开(公告)日:2019-09-17

    申请号:US15924193

    申请日:2018-03-17

    Abstract: A TCP connection is established between a client and a server, such that packets communicated across the TCP connection pass through a proxy. Based at least in part on a result of monitoring packets flowing across the TCP connection, the proxy determines whether to split the TCP control loop into two TCP control loops so that packets can be inspected more thoroughly. If the TCP control loop is split, then a first TCP control loop manages flow between the client the proxy and a second TCP control loop manages flow between the proxy and the server. Due to the two control loops, packets can be held on the proxy long enough to be analyzed. In some circumstances, a decision is then made to stop inspecting. The two TCP control loops are merged into a single TCP control loop, and thereafter the proxy passes packets of the TCP connection through unmodified.

    Multiprocessor system having fast clocking prefetch circuits that cause processor clock signals to be gapped

    公开(公告)号:US10365681B1

    公开(公告)日:2019-07-30

    申请号:US15256588

    申请日:2016-09-04

    Inventor: Gavin J. Stark

    Abstract: A multiprocessor system includes several processors, a prefetching instruction code interface block, a prefetching data code interface block, a Shared Local Memory (SLMEM), and Clock Gapping Circuits (CGCs). Each processor has the same address map. Each fetches instructions from SLMEM via the instruction interface block. Each accesses data from/to SLMEM via the data interface block. The interface blocks and the SLMEM are clocked at a faster rate than the processors. The interface blocks have wide prefetch lines of the width of the SLMEM. The data interface block supports no-wait single-byte data writes from the processors, and also supports no-wait multi-byte data writes. An address translator prevents one processor from overwriting the stack of another. If a requested instruction or data is not available in the appropriate prefetching circuit, then the clock signal of the requesting processor is gapped until the instruction or data can be returned to the requesting processor.

    NFA completion notification
    165.
    发明授权

    公开(公告)号:US10362093B2

    公开(公告)日:2019-07-23

    申请号:US14151699

    申请日:2014-01-09

    Abstract: Multiple processors share access, via a bus, to a pipelined NFA engine. The NFA engine can implement an NFA of the type that is not a DFA (namely, it can be in multiple states at the same time). One of the processors communicates a configuration command, a go command, and an event generate command across the bus to the NFA engine. The event generate command includes a reference value. The configuration command causes the NFA engine to be configured. The go command causes the configured NFA engine to perform a particular NFA operation. Upon completion of the NFA operation, the event generate command causes the reference value to be returned back across the bus to the processor.

    Packet prediction in a multi-protocol label switching network using operation, administration, and maintenance (OAM) messaging

    公开(公告)号:US10250528B2

    公开(公告)日:2019-04-02

    申请号:US14264003

    申请日:2014-04-28

    Abstract: A first switch in a MPLS network receives a plurality of packets that are part of a pair of flows. The first switch performs a packet prediction learning algorithm on the first plurality of packets and generates packet prediction information that is communicated to a second switch within the MPLS network utilizing an Operations, Administration, and Maintenance (OAM) packet (message). In a first example, the first switch communicates a packet prediction information notification to a Network Operations Center (NOC) that in response communicates a packet prediction control signal to the second switch. In a second example, the first switch does not communicate a packet prediction information notification. In the first example, the second switch utilizes the packet prediction control signal to determine if the packet prediction information is to be utilized. In the second example, second switch independently determines if the packet prediction information is to be used.

    Multiprocessor system having posted transaction bus interface that generates posted transaction bus commands

    公开(公告)号:US10191867B1

    公开(公告)日:2019-01-29

    申请号:US15256583

    申请日:2016-09-04

    Inventor: Gavin J. Stark

    Abstract: A multiprocessor system includes several processors, a Shared Local Memory (SLMEM), and an interface circuit for interfacing the system to an external posted transaction bus. Each processor has the same address map. Each fetches instructions from SLMEM, and accesses data from/to SLMEM. A processor can initiate a read transaction on the posted transaction bus by doing an AHB-S bus write to a particular address. The AHB-S write determines the type of transaction initiated and also specifies an address in a shared memory in the interface circuit. The interface circuit uses information from the AHB-S write to generate a command of the correct format. The interface circuit outputs the command onto the posted transaction bus, and then receives read data back from the posted transaction bus, and then puts the read data into the shared memory at the address specified by the processor in the original AHB-S bus write.

    Modular and partitioned SDN switch
    169.
    发明授权

    公开(公告)号:US10009270B1

    公开(公告)日:2018-06-26

    申请号:US14634844

    申请日:2015-03-01

    CPC classification number: H04L45/745 H04L45/54 H04L49/25

    Abstract: A Software-Defined Networking (SDN) switch includes external network ports for receiving external network traffic onto the SDN switch, external network ports for transmitting external network traffic out of the SDN switch, a first Network Flow Switch (NFX) integrated circuit that has multiple network ports and that maintains a first flow table, another Network Flow Switch (NFX) integrated circuit that has multiple network ports and that maintains a second flow table, a Network Flow Processor (NFP) circuit that maintains a third flow table, and a controller processor circuit that maintains a fourth flow table. The controller processor circuit is coupled by a serial bus to the NFP circuit but is not directly coupled by any network port to either the NFP circuit nor the first NFX integrated circuit nor the second NFX integrated circuit.

    Method of handling SDN protocol messages in a modular and partitioned SDN switch

    公开(公告)号:US09998374B1

    公开(公告)日:2018-06-12

    申请号:US14634845

    申请日:2015-03-01

    CPC classification number: H04L45/745 H04L45/54 H04L49/25 H04L49/35

    Abstract: A method involves a Software-Defined Networking (SDN) switch that includes multiple Network Flow Switch (NFX) integrated circuits, a Network Flow Processor (NFP) circuit, and a controller processor. The controller processor is coupled to the NFP circuit by a serial bus. A flow table is maintained on each of the NFX integrated circuits. A SDN flow table is maintained on the NFP circuit. A copy of each of the flow tables is maintained on the NFP circuit. Another SDN flow table is maintained on the controller processor. A SDN protocol stack is executed on the controller processor. A SDN protocol message is received onto the SDN switch via one of the NFX integrated circuits. The SDN protocol message is communicated across a network link to the NFP circuit, and across the serial bus from the NFP circuit to the controller processor such that the SDN protocol message is received and processed by the SDN protocol stack executing on the controller processor.

Patent Agency Ranking