Network intermediate system with message passing architecture
First Claim
1. An apparatus for transferring large amounts of input/output data among a plurality of processors having respective local memories, comprising:
- a bus interconnecting the plurality of processors;
a plurality of bus interface devices, coupled to the bus and to corresponding processors in the plurality of processors, a first bus interface device in the plurality of bus interface devices which originates a transfer without first obtaining permission to transfer to a destination device includinga command list storing a list of commands which characterize transfers of data from local memory across the bus,a bus data buffer which buffers data subject of a command being executed between local memory and the bus,and a second bus interface device in the plurality of bus interface devices which receives a transfer includinga free buffer list storing pointers to free buffers in local memory into which data may be loaded from the bus,a receive list storing pointers to buffers in local memory loaded with data from the bus, andan inbound data buffer which buffers data subject of a transfer addressed to the second bus interface between the bus and free buffers in local memory.
6 Assignments
0 Petitions
Accused Products
Abstract
A system uses a message passing paradigm for transferring large amounts of input/output data among a plurality of processors, such as a network intermediate system or router. A bus interconnects the plurality of processors with a plurality of bus interface devices. The bus interface device which originates a transfer includes a command list storing lists of commands which characterize transfers of data messages from local memory across the bus and a packing buffer which buffers the data subject of the command being executed between local memory and the bus. A bus interface device which receives a transfer includes a free buffer list storing pointers to free buffers in local memory into which the data may be loaded from the bus, and a receive list storing pointers to buffers in local memory loaded with data from the bus. The command list includes a first high priority command list and a second lower priority command list for managing latency of the higher priority commands in the software of the processor. The bus interface which receives the transfer includes control logic which manages data transfer into and out of an inbound buffer, including receiving burst transfers of message transfer cells from the bus, loading free buffers in local memory from the inbound buffer with message transtar cells, and updating the receive list. The receive list includes a first higher priority receive list and a second lower priority receive list for reliability management, and logic which monitors the free list so that lower priority messages may be dropped to prevent overflow of free buffer resources.
376 Citations
47 Claims
-
1. An apparatus for transferring large amounts of input/output data among a plurality of processors having respective local memories, comprising:
-
a bus interconnecting the plurality of processors; a plurality of bus interface devices, coupled to the bus and to corresponding processors in the plurality of processors, a first bus interface device in the plurality of bus interface devices which originates a transfer without first obtaining permission to transfer to a destination device including a command list storing a list of commands which characterize transfers of data from local memory across the bus, a bus data buffer which buffers data subject of a command being executed between local memory and the bus, and a second bus interface device in the plurality of bus interface devices which receives a transfer including a free buffer list storing pointers to free buffers in local memory into which data may be loaded from the bus, a receive list storing pointers to buffers in local memory loaded with data from the bus, and an inbound data buffer which buffers data subject of a transfer addressed to the second bus interface between the bus and free buffers in local memory. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A bus interface which provides access to a bus for a local processor having local memory, comprising:
-
a command list storing a list of commands which characterize transfers of data from local memory across the bus, a bus data buffer which buffers data subject of a command being executed between local memory and the bus, a free buffer list storing pointers to free buffers in local memory into which data may be loaded from the bus, an inbound data buffer which buffers data subject of a transfer addressed to the local processor between the bus and free buffers in local memory, and a receive list storing pointers to buffers in local memory loaded with data from the bus. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. An apparatus for transferring large amounts of input/output data among a plurality of processors having respective local memories, comprising:
-
a bus interconnecting the plurality of processors; a plurality of bus interface devices, coupled to the bus and to corresponding processors in the plurality of processors, including a first bus interface device in the plurality of bus interface devices which originates a transfer; and
a second bus interface device in the plurality of bus interface devices which receives a transfer, the second bus interface device, includinga free buffer list storing pointers to free buffers in local memory into which data may be loaded from the bus, a receive list storing pointers to buffers in local memory loaded with data from the bus, including a first high priority receive list and a second lower priority receive list, and logic which monitors the free buffer list which causes lower priority messages to be dropped to prevent overflow of the free buffer resources. - View Dependent Claims (30, 31, 32, 33, 34, 35)
-
-
36. A network traffic management system, comprising:
-
a bus; a plurality of processors, each including local memory, at least one network interface, a bus interface coupled to the bus, and resources for managing the at least one network interface and the bus interface;
the bus interface includinga command list storing a list of commands which characterize transfers of data from local memory across the bus, a bus data buffer which buffers data subject of a command being executed between local memory and the bus, a free buffer list storing pointers to free buffers in local memory into which data may be loaded from the bus, an inbound data buffer which buffers data subject of a transfer addressed to the second processor between the bus and free buffers in local memory, and a receive list storing pointers to buffers in local memory loaded with data from the bus. - View Dependent Claims (37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)
-
Specification