IP Library Granted Patent US 7,907,624
Granted Patent B2
US 7,907,624 · App. 12/133,034 · Granted Mar 15, 2011

Switch matrix

Assignee: Oracle America, Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,907,624
App. No.
12/133,034
Granted
Mar 15, 2011
Kind
B2
Abstract

A switch system comprises a switch matrix providing a configurable, protocol agnostic, packet switching core, the switch matrix providing a non-blocking switch connecting a configurable number of ports together.

Claims (32)

1. A switch system for connecting a configurable number of ports together, the switch system comprising:

a switch matrix including a configurable, protocol agnostic, packet switching core, the switch matrix providing a non-blocking switch connecting together the configurable number of ports;

wherein the switch system is configured so that received packets are separated in packet categories, wherein each packet category is separately flow controlled, wherein the switch system includes a buffer for each packet category, and wherein each packet is stored in the buffer for the packet category for the packet by storing the packet in parts of a predetermined size; and

wherein storing the packet in the buffer involves distributing the parts of the packet in a scattered pattern throughout a random-access memory (RAM) in which the buffer is located in accordance with a pattern determined using a scatter/gather algorithm.

2. The switch system of claim 1 , comprising a plurality of switch matrix units and a switch interconnect interconnecting the switch matrix units, at least one said switch matrix unit providing a port connection to a port and providing a plurality of virtual output queues for respective destination ports, each virtual output queue being configured to buffer received packets to be transmitted to a respective destination port.

3. The system of claim 2 , wherein the switch matrix unit comprises at least one virtual output queue per destination port.

4. The system of claim 3 , wherein said at least one switch matrix unit comprises a plurality of virtual output queues for respective packet categories per destination port.

5. The system of claim 2 , wherein said at least one switch matrix unit is operable to receive data packets as a raw stream of data with sideband control signals indicating start/stop, size and routing instructions for the data packets.

6. The system of claim 2 , wherein said at least one switch matrix unit is operable to allocate received data packets to the virtual output queues according to sideband control signals indicating routing instructions for the data packets.

7. The system of claim 2 , wherein said at least one switch matrix unit is operable to transmit a data packet to a destination output port on completion of scheduling for transmission to the destination output port.

8. The system of claim 2 , wherein said at least one switch matrix is operable to schedule buffered data packets for transmission using a distributed, iterative routing mechanism.

9. The system of claim 2 , having a data path of configurable width.

10. The system of claim 2 , wherein said at least one switch matrix unit is configured to operate in a time division multiplex mode in which each switch matrix unit is configured to implement multiple ports simultaneously.

11. The system of claim 10 , having a data path width comprises a number of bytes divisible by a number ports supported.

12. The system of claim 2 , wherein said at least one switch matrix unit comprises an alignment buffer into which a first flit of a received data packet is written.

13. The switch system of claim 1 , wherein the switch system is configured to maintain, for each packet category:

a free list that includes addresses of unused buffer spaces; and

a packet list that includes addresses of all parts of received packets that are stored in the buffer.

14. A method of connecting a configurable number of ports together, comprising:

providing a switch system comprising a switch matrix including a configurable, protocol agnostic, packet switching core; and

operating the switch matrix to provide a non-blocking switch connecting together the configurable number of ports, wherein operating the switch matrix comprises: and

separating received packets into packet categories, wherein each packet category is separately flow-controlled; and

storing each packet in a buffer for the packet category in the switch in parts of a predetermined size, wherein storing the packet in the buffer involves distributing the parts of the packet in a scattered pattern throughout a random-access memory (RAM) in which the buffer is located in accordance with a pattern determined using a scatter/gather algorithm.

15. The method of claim 14 comprising:

providing a plurality of switch matrix units and a switch interconnect interconnecting the switch matrix units;

providing port connections to the ports via respective switch matrix units;

buffering packets from the ports to be transmitted to destination ports in respective virtual output queues in the switch matrix unit, each virtual output queue being configured to buffer received packets to be transmitted to a respective destination port.

16. The method of claim 15 , comprising receiving input data packets of as a raw stream of data with sideband control signals indicating start/stop, size and routing instructions for the packets.

17. The method of claim 15 , comprising scheduling buffered data packets for transmission using a distributed, iterative routing mechanism.

18. The method of claim 17 , comprising transmitting a data packet to a destination output port on completion of scheduling.

19. The switch matrix of claim 15 , comprising providing a data path of configurable width.

20. The method of claim 15 , comprising providing a plurality of switch matrix units and a switch interconnect interconnecting the switch matrix units, connecting at least one said switch matrix unit to a port and providing a plurality of virtual output queues, and buffering received packets to be transmitted to destination ports in the virtual output queues allocated to respective destination ports.

Assignments (2)
MERGER AND CHANGE OF NAME Recorded Dec 16, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037311/0056 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2009
From: MANULA, BRIAN; TORUDBAKKEN, OLA; RYGH, HANS OLAF
To: SUN MICROSYSTEMS, INC.
Reel/Frame 022084/0513 →
Continuity (2)
Provisional Application 60945778 · Jun 22, 2007
Related Publication 20080317025A1 · Dec 25, 2008