Data communication system utilizing a scalable, non-blocking, high bandwidth central memory controller and method
First Claim
1. A memory controller comprising:
- a dual port memory coupled to a time division multiplexed input bus for receiving data frames from a plurality of system ports, said dual port memory also being coupled to a time division multiplexed output bus for delivering said data frames to other ones of said plurality of system ports, said dual port memory comprising a plurality of N-byte buffers; and
a switch controller coupled to said dual port memory for establishing a number of data queues therein comprising dynamically designated subsets of said plurality of N-byte buffers sufficient to store said data frames from a number of transmitting ones of said plurality of system ports having at least one data frame intended for a designated receiving one of said other ones of said system ports, wherein at least some of the subset of buffers comprise more than one N-byte buffer;
said switch controller designating whether each of said N-byte buffers is an only, first, middle or last buffer for said at least one data frame.
2 Assignments
0 Petitions
Accused Products
Abstract
A high bandwidth central memory controller utilizing a pipelined TDM bus such that each serial interface can sustain a bandwidth of up to 100 MByte/second for both the transmission and reception of variable length frames. Each port is assigned a fixed number of queues, a TDM slot number and the address routing for all other queues associated with the remaining ports at initialization, such that when a frame is received, the appropriate queue is determined from the addressing in the frame header and the initialized route tables. When the port'"'"'s TDM slot for a memory request is active, a request for the output queue is made to the central memory controller if an "output queue available" indication is returned and the frame data is placed on the bus during the input port'"'"'s data TDM slot. If the output queue is not available, the input port may either discard the received data frame or generate a busy/reject frame to be placed on one of its own output queues during its TDM data slot.
39 Citations
34 Claims
-
1. A memory controller comprising:
-
a dual port memory coupled to a time division multiplexed input bus for receiving data frames from a plurality of system ports, said dual port memory also being coupled to a time division multiplexed output bus for delivering said data frames to other ones of said plurality of system ports, said dual port memory comprising a plurality of N-byte buffers; and a switch controller coupled to said dual port memory for establishing a number of data queues therein comprising dynamically designated subsets of said plurality of N-byte buffers sufficient to store said data frames from a number of transmitting ones of said plurality of system ports having at least one data frame intended for a designated receiving one of said other ones of said system ports, wherein at least some of the subset of buffers comprise more than one N-byte buffer; said switch controller designating whether each of said N-byte buffers is an only, first, middle or last buffer for said at least one data frame. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 24, 25, 26, 27)
-
-
9. A dual port memory for selectively directing data frames received on an input data bus to designated system nodes coupled to an output data bus in response to a switch controller, said memory including a plurality of N-byte buffers comprising:
-
queue and horizontal link memory portions for receiving a queue link address signal from said switch controller and providing respective queue and horizontal link data signals in response thereto, said queue and horizontal link memory portions also receiving an input address and output address from said switch controller; and free queue and data memory portions for receiving said input address and output address signals from said switch controller, said free queue memory portion also receiving an output free queue address signal from said switch controller and providing an input free queue data signal in response thereto, said data memory portion operative to store at least a portion of a data frame received on an input data bus and to direct said at least a portion of said data frame to an output data bus. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method for data transfer between a plurality of data ports in a communications system, said method comprising the steps of:
-
initializing said communications system; assigning a number of data queues corresponding to each of said data ports together with an associated time division multiplex slot number; said data queues comprising vertically linked buffers having a beginning and an ending buffer denominated as being selected from the group only buffer and first buffer; said data queues additionally comprising horizontally linked buffers having a beginning buffer denominated as being a first buffer, having an ending denominated as being a last buffer, and if one or more intermediate buffers exist in said horizontally linked buffers, said one or more intermediate buffers being denominated as being denominated as middle buffers; determining an address routing for each of said data queues; receiving an input data frame on an input data bus; reading address information from said input data frame; placing said input data frame in a designated one of said data queues in accordance with said address information; awaiting said time division multiplex slot number for said port; and placing said input data frame on an output data bus. - View Dependent Claims (20, 21, 22)
-
-
23. A method for transferring data between a plurality of system nodes:
-
assigning a time division multiplex slot for each of said plurality of nodes; transmitting a data frame from at least one of said plurality of nodes intended for another of said plurality of nodes during a respective time division multiplex slot; determining a byte size of said data frame; designating a sufficient number of N-byte buffers to store said data frame in one or more data frame portions thereof; storing said data frame portions in said number of designated N-byte buffers; reading out said data frame portions from said number of designated N-byte buffers; retransmitting said data frame portions to said another of said plurality of nodes during a respective time division multiplex slot; and denominating each of said N-byte buffers as an only, first, middle or last buffer.
-
-
28. A memory controller comprising:
-
a dual port memory coupled to a time division multiplexed input bus for receiving data frames from a plurality of system ports, said dual port memory also being coupled to a time division multiplexed output bus for delivering said received data frames to other ones of said plurality of system ports, said dual port memory comprising a plurality of N-byte buffers; a switch controller coupled to said dual port memory for establishing a number of data queues comprising dynamically designated subsets of said plurality of N-byte buffers sufficient to store said data frames from a number of transmitting ones of said plurality of system ports having at least one data frame intended for a designated receiving one of said other ones of said system ports; said subsets of N-byte buffers including vertically linked N-byte buffers including a beginning N-type buffer denominated as an only buffer or as a first buffer; and said subsets of N-type buffers including horizontally linked N-byte buffers including a beginning N-type buffer denominated as a first buffer, an ending N-type buffer denominated as a last buffer, and providing that any N-type buffers that are intermediate said beginning N-type buffer and said ending N-type buffer are denominated as middle buffers. - View Dependent Claims (29, 30, 31, 32, 33, 34)
-
Specification