ATM reassembly controller and method
First Claim
1. An ATM reassembly controller for reassembling ATM cells into protocol data units for storage in main memory having main memory buffers and reassembly descriptor lists, comprising:
- an input port for receiving an ATM cell;
a processor, operatively coupled to the input port, for identifying a virtual channel for the ATM cell, stripping a payload from the ATM cell associated with the identified virtual channel, and building a protocol data unit descriptor header for a reassembled protocol data unit constructed with the payload from the ATM cell;
a local memory buffer, coupled to the processor, for storing the payload and protocol data unit descriptor header;
a memory manager, operatively coupled to the processor, for assigning pointers to the local memory buffer and determining when the local memory buffer is full; and
a memory access controller, operatively coupled to the local memory buffer, for writing the content of the local memory buffer in a single burst to host memory for accessing by an application in response to determining that the local memory buffer is full.
2 Assignments
0 Petitions
Accused Products
Abstract
An ATM reassembly controller is disclosed that optimizes the utilization of host memory space and hardware resources such as I/O bus bandwidth, host memory bandwidth, memory system bandwidth and CPU resources. The system combines, whenever possible, the PDU status, PDU data and pointers to the host memory data buffers into a large burst write to the status queue. In addition, multiple status bundles are packed into a host memory buffer for efficient use of memory. An additional benefit of combining and packing information is that CPU resources are conserved by having combined the information the CPU must access into to a contiguous memory area.
140 Citations
27 Claims
-
1. An ATM reassembly controller for reassembling ATM cells into protocol data units for storage in main memory having main memory buffers and reassembly descriptor lists, comprising:
-
an input port for receiving an ATM cell; a processor, operatively coupled to the input port, for identifying a virtual channel for the ATM cell, stripping a payload from the ATM cell associated with the identified virtual channel, and building a protocol data unit descriptor header for a reassembled protocol data unit constructed with the payload from the ATM cell; a local memory buffer, coupled to the processor, for storing the payload and protocol data unit descriptor header; a memory manager, operatively coupled to the processor, for assigning pointers to the local memory buffer and determining when the local memory buffer is full; and a memory access controller, operatively coupled to the local memory buffer, for writing the content of the local memory buffer in a single burst to host memory for accessing by an application in response to determining that the local memory buffer is full. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. An ATM reassembly controller, comprising:
-
an input port for receiving a cell; a register, operatively coupled to the input port, for determining a virtual channel associated with the received cell; a local memory buffer allocator, coupled to the register, for allocating a local memory buffer and for storing in the local memory buffer a payload stripped from the received cell; a main memory buffer allocator, operatively coupled to the local memory buffer allocator for allocating a main memory buffer; and a memory access controller, coupled to the local memory buffer, for writing the contents of the local memory buffer into the main memory buffer in a single burst write operation. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method of reassembling ATM cells, comprising the steps of:
-
receiving a cell; determining a virtual channel number associated with the received cell; determining the state of the virtual channel; allocating a local memory buffer for storing a payload stripped from the received cell associated with the virtual channel; storing the payload in a local memory buffer; allocating a main memory buffer; and writing the contents of the local memory buffer into the main memory buffer in a single burst write operation. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26, 27)
-
Specification