Systems and methods for data transformation and transfer in networks
AssigneeMMC Networks, Inc.
InventorsAlexander Joffe, Dmitry Vyshetsky
Life of this patent
Estimating the term…
Abstract
A processor system suitable to provide an interface between networks includes a software programmable processor and a channel processor that receives data from a network and transforms data at commands from the software programmable processor. The channel can execute only a few simple commands, but these commands are sufficient for a wide range of systems. The commands include (1) a command to transmit received data, perhaps skipping some data; and (2) a command to transmit data specified by the command itself rather than the received data. The channel is fast, simple and inexpensive.
Claims41
A network processor system comprising:
- a circuit C1 for receiving network data units flowing sequentially between a network port and a network switch, writing the network data units into a first queue, and for generating requests to process the data units, wherein each data unit has first address information specifying the data unit's destination;
- a first circuit operable to execute computer instructions to (i) receive said requests, (ii) read portions of the data units corresponding to the requests, (iii) determine based on said portions whether and how the data units are to be transformed, (iv) generate commands specifying how the data units are to be transformed, and (v) write the commands to a memory, wherein the first circuit is programmable with said computer instructions to read at least portions of the first address information from the data units, to determine second address information, and generate commands specifying that the second address information is to be supplied for the data units when the data units are transferred to the network port or the network switch;
- and
- a second circuit for reading the commands from the memory and executing the commands to transfer the data units to the network port or the network switch, wherein the memory is operable to contain a plurality of commands which have been written to the memory by the first circuit but have not yet been executed by the second circuit;
- wherein the circuit C1 is operable to write a data unit into the first queue in parallel with the first circuit executing said computer instructions and in parallel with the second circuit executing said commands.
A network processor system comprising:
- circuitry for maintaining a first FIFO, a second FIFO, and a third FIFO;
- a circuit C1 for receiving a first flow of network data units, for writing the network data units to the first FIFO, and for writing to the third FIFO a request to process each data unit;
- a first circuit for (i) reading the requests from the third FIFO, (ii) generating, in response to the requests, commands defining whether and how the data in the first flow are to be transformed and sequentially transmitted outside of the network processor system, and (iii) writing the commands to the second FIFO;
- and
- a second circuit for executing the commands in the second FIFO to transform and transmit the data in the first flow.
A method for processing a flow of network data flowing to or from a network via a network port of an apparatus which receives and transmits network data, wherein the network data received or transmitted on the network port comprise first address information, the method comprising:
- writing the network data to a first FIFO;
- obtaining, by a first processor programmed with software prepared before the first processor begins operation, at least a portion of the first address information from the network data, and determining, by the first processor, whether and how the first address information is to be modified in order to deliver the network data to the data's destination;
- based on said determining whether and how the first address information is to be modified, the first processor writing, to a second FIFO, commands specifying whether and how the network data is to be modified;
- and
- a second processor reading the commands from the second FIFO and executing the commands to modify the network data.
Dependencies are inferred from the claim text.