Claims
- 1. A high-speed memory having a write port and a read port, comprising:
a plurality of N memory modules for storing fixed size cells which are grouped into one or more groups of cells destined for the same read port, each group including up to N cells; a read-write control block for receiving cells from the write port and storing each cell, which belongs to the same group, in a selected different one of the N memory modules at a memory address, the memory address being selected from a sub-set of N memory addresses, the addresses in the sub-set being related among the N memory modules according to a first relationship, and for retrieving each of said cells from the memory modules and sending said cells to the read port; a multi-cell pointer (MCP) storage for storing an MCP for each group of cells (the associated MCP), each MCP having N memory module identifiers to record the order in which said cells of said each group are stored in each of the selected different ones of the N memory modules; and the MCP being stored in the MCP storage at an MCP address, which is related to one of the memory, addresses in the sub-set of N memory addresses according to a second relationship.
- 2. A high-speed memory as described in claim 1, wherein the cells are segments of a variable size packet divided into X cells, the packet including ┌X/N┐ groups of cells.
- 3. A high-speed memory as described in claim 2, wherein X=1 (single cell packet) and N>1.
- 4. A high-speed memory as described in claim 3, wherein the group includes one or more single cell packets.
- 5. A high-speed memory as described in claim 4, wherein the group including more than one single cell packet includes packets arriving at the write port within a predetermined time interval.
- 6. A high-speed memory as described in claim 1, wherein the read-write control block comprises a means for retrieving each of said cells from said group of cells from the memory modules and sending said cells to the read port.
- 7. A high-speed memory as described in claim 6, wherein the read-write control block further comprises an MCP storage access logic block for retrieving and storing MCPs, and a memory module access logic block for providing read and write access to the N memory modules.
- 8. A high-speed memory as described in claim 6, wherein the means for retrieving includes a means for receiving read commands from the read port, and a read queue means for queuing the retrieved cells.
- 9. A high-speed memory as described in claim 8, wherein the means for retrieving further comprises a scheduler for retrieving the cells from a plurality of the read queue means and sending the cells to the read port.
- 10. A high-speed memory as described in claim 6, wherein the means for receiving and storing comprises means for reading cell information, write queue means for queuing the cells to be stored in the memory modules.
- 11. A high-speed memory as described in claim 6, wherein the means for retrieving provides retrieval of said cells of said group of cells from the N memory modules in the order recorded by the associated MCP.
- 12. In combination, a high-speed memory as described in claim 2, and a packet processor for processing variable size packets buffered in the high-speed memory.
- 13. A high-speed memory as described in claim 1, wherein the read write control block further comprises means for monitoring the number of cells presently stored in the plurality of N memory modules and for generating a backpressure control signal when the number of cells exceeds a threshold.
- 14. A high-speed memory as described in claim 7, wherein the MCP storage access logic comprises means for selecting one of the N memory modules for storing a cell arriving at the write port.
- 15. A packet switch, comprising a plurality of port interfaces associated with packet processing means and connected to a packet memory, the packet memory being the high-speed memory as described in claim 1.
- 16. A packet switch, comprising a plurality of port modules, each comprising a packet processing means and a packet memory, the packet memory being the high-speed memory as described in claim 1, the plurality of port modules being interconnected.
- 17. A packet switch as described in claim 16, wherein the plurality of port modules is interconnected through a switch fabric.
- 18. A packet switch as described in claim 16, wherein each of the plurality of port modules comprises multiple ports to provide a mesh interconnection between the port modules.
- 19. A high-speed memory as described in claim 1, wherein cells from the variable size packet are assigned to the ┌X/N┐ groups of cells sequentially.
- 20. A high-speed memory as described in claim 1, wherein the first relationship is such that each memory address in the sub-set of N memory addresses is the same.
- 21. A high-speed memory as described in claim 20, wherein the second relationship is such that the MCP address is the same as each of the memory addresses in the sub-set of N memory addresses.
- 22. A high-speed memory as described in claim 1, further comprising a memory interface between the read-write control block and the plurality of N memory modules.
- 23. A high-speed memory as described in claim 21, wherein N=5.
- 24. A high-speed memory as described in claim 21, wherein X ranges from X=1 to about 200.
- 25. A high-speed memory having a write port and a read port, comprising:
a plurality of N memory modules for storing fixed size cells, which are segments of a variable size packet divided into X cells, the X cells being grouped into ┌X/N┐ groups of cells; a read-write control block comprising a means for receiving cells from the write port and storing each cell, which belongs to the same group, in a selected different one of the N memory modules at the same memory address (the group address); a multi-cell pointer (MCP) storage for storing an MCP for said group of cells (the associated MCP) at an MCP address, the MCP having N memory module identifiers to record the order in which cells of said group of cells are stored in the N memory modules; and the MCP address being the same as the group address.
- 26. A high-speed memory as described in claim 25, wherein the read-write control block comprises means for retrieving each of said cells from said group of cells from the memory modules and sending said cells to the read port when all cells of the variable size packet have been stored.
- 27. A high-speed memory as described in claim 26, wherein the read-write control block further comprises an MCP storage access logic block for retrieving and storing MCPs, and a memory module access logic block (602) for providing read and write access to the N memory modules.
- 28. A high-speed memory as described in claim 26, wherein the means for retrieving includes a means for receiving read commands from the read port, and a read queue means for queuing the retrieved cells.
- 29. A high-speed memory as described in claim 28, wherein the means for retrieving further comprises a scheduler for retrieving the cells from a plurality of the read queue means and sending the cells to the read port.
- 30. A high-speed memory as described in claim 26, wherein the means for receiving and storing comprises means for reading cell information, and write queue means for queuing the cells to be stored in the memory modules.
- 31. A high-speed memory as described in claim 26, wherein the means for retrieving provides retrieval of said cells of said group of cells from the N memory modules in the order recorded by the associated MCP.
- 32. A combination of a high-speed memory as described in claim 25, and a packet processor for processing variable size packets buffered in the high-speed memory.
- 33. A high-speed memory as described in claim 25 wherein the read write control block further comprises means for monitoring the number of cells presently stored in the plurality of N memory modules and for generating a backpressure control signal when the number of cells exceeds a threshold.
- 34. A high-speed memory as described in claim 27, wherein the MCP storage access logic comprises means for selecting one of the N memory modules for storing a cell arriving at the write port.
- 35. A packet switch, comprising a plurality of port interfaces associated with packet processing means and connected to a packet memory, the packet memory being the high-speed memory as described in claim 25.
- 36. A packet switch, comprising a plurality of port modules, each comprising a packet processing means and a packet memory, the packet memory being the high-speed memory as described in claim 21, the plurality of port modules being interconnected.
- 37. A packet switch as described in claim 36, wherein the plurality of port modules being interconnected through a switch fabric.
- 38. A packet switch as described in claim 36, wherein each of the plurality of port modules comprises multiple ports to provide a mesh interconnection between the port modules.
- 39. A high-speed memory as described in claim 25, wherein cells from the variable size packet are assigned to the ┌X/N┐ groups of cells sequentially.
- 40. A high-speed memory as described in claim 25, wherein the first relationship is such that each memory address in the sub-set of N memory addresses is the same.
- 41. A high-speed memory as described in claim 40, wherein the second relationship is such that the MCP address is the same as each of the memory addresses in the sub-set of N memory addresses.
- 42. A high-speed memory as described in claim 25, further comprising a memory interface between the read-write control block and the plurality of N memory modules.
- 43. A high-speed memory as described in claim 41, wherein N=5.
- 44. A high-speed memory as described in claim 41, wherein X ranges from X=1 to about 200.
- 45. A method for storing a cell in the high-speed memory of claim 25, comprising the steps of:
(a) if the cell is the first cell in a group of cells:
obtaining an unused group address; creating the associated MCP; storing the cell in one of the N memory modules at the group address; storing the memory module identifier of said one of the N memory modules in the MCP; and storing the associated MCP in the MCP storage; (b) if the cell is not the first cell in the group of cells:
retrieving the associated MCP from the MCP storage; storing the cell in another one of the N memory modules at the group address; storing the memory module identifier of said one of the N memory modules in the MCP; and storing the associated MCP in the MCP storage.
- 46. A method for storing and retrieving a variable size packet in a memory having N memory modules, comprising the steps of:
(a) dividing the variable size packet into X fixed size cells; (b) grouping the X cells into ┌X/N┐ groups of cells; (c) storing each cell, which belongs to the same group of cells, in a selected different one of the N memory modules at the same memory address (the group address); (d) creating a multi-cell pointer (MCP) having N memory module identifiers, the N memory module identifiers being recorded in the order in which the cells of the same group are stored in the N memory modules; (e) storing the MCP in an MCP storage at an MCP address, the MCP address being the same as the group address; and (f) repeating the steps (c) to (e) if required.
- 47. A method for storing and retrieving a sequence of single cell packets in a memory having N memory modules, comprising the steps of:
(a) accumulating the packets having the same destination identifiers into groups of up to N cells; (b) storing each cell, which belongs to the same group of cells, in a selected different one of the N memory modules at the same memory address (the group address); (c) creating a multi-cell pointer (MCP) having N memory module identifiers, the N memory module identifiers being recorded in the order in which the cells of the same group are stored in the N memory modules; (d) storing the MCP in an MCP storage at an MCP address, the MCP address being the same as the group address; and (e) repeating the steps (a) to (d) if required.
- 48. A method as described in claim 46, further comprising the step of retrieving the cells representing the variable size packet when all cells of the variable size packet have been stored.
- 49. A method as described in claim 48, wherein the step of retrieving comprises:
(g) retrieving the MCP at the MCP address of the associated group of cells; (h) retrieving a cell at the group address from the memory module indicated by the memory module identifier of the MCP; (i) sending the cell to an read queue to be forwarded to the read port; and (j) repeating the steps (g) to (i) until all cell of the variable size packet have been retrieved.
- 50. A method as described in claim 46, wherein the step (c) comprises the steps of selecting the one of the N memory modules by taking into account the following criteria:
the number of cells already stored in each of the N available memory modules; and the memory module identifier of the memory module most recently used for storing a cell.
RELATED APPLICATIONS
[0001] This application claims priority from U.S. Provisional Patent Application Serial No. 60/363,248 filed on Mar. 12, 2002 (VAN ASTEN, et al), and from U.S. patent application Ser. No. 10/194,277 filed on Jul. 15, 2002 (VAN ASTEN, et al).
Provisional Applications (1)
|
Number |
Date |
Country |
|
60363248 |
Mar 2002 |
US |
Continuation in Parts (1)
|
Number |
Date |
Country |
Parent |
10194277 |
Jul 2002 |
US |
Child |
10247568 |
Sep 2002 |
US |