IP Library Granted Patent US 8,995,302
Granted Patent B1
US 8,995,302 · App. 13/743,281 · Granted Mar 31, 2015

Method and apparatus for translated routing in an interconnect switch

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 8,995,302
App. No.
13/743,281
Granted
Mar 31, 2015
Kind
B1
Abstract

A system and method are disclosed for a flexible routing engine in a PCIe switch. The system may include a switch manager that is enabled, through firmware, to configure one or more routing tables associated with a switch stack of a PCIe switch. To enable non-transparent bridging and non-standard routing, the method may include receiving a transaction layer packet at a translated routing port of a PCIe switch, and performing translation of the address and requester ID of the packet utilizing tables that are updated by the firmware of the switch manager to route the packet through the switch.

Claims (36)

1. A method for translated routing in an interconnect switch, the method comprising

receiving, at a switch manager of a switch, a configuration transaction layer packet from a root complex coupled to the switch;

running firmware at the switch manager to identify a desired behavior for a switch stack of the switch from the received configuration transaction layer packet, wherein the switch stack comprises port logic that implements a physical layer, a data link layer and a transaction layer function of an interconnect protocol of the switch;

updating an address translation table and a requester ID search table of a translated routing port of the switch based upon the desired behavior for the switch stack;

receiving a transaction layer packet request employing address routing at the translated routing port of the switch from a source port, the transaction layer packet request originating inside the switch and comprising a memory address and a requester identification (ID);

translating the memory address at the translated routing port utilizing an internal address translation table of the port to generate a translated address;

translating the requester ID at the translated routing port utilizing an internal requester ID search table of the port;

searching a translated memory address search table utilizing the translated address to identify a destination port; and

routing the transaction layer packet and the translated requester ID to the destination port identified by the translated memory address.

2. The method of claim 1 , wherein the switch is a Peripheral Component Interconnect Express (PCIe) switch.

3. The method of claim 1 , wherein the switch is a RapidIO switch.

4. The method of claim 1 , wherein the switch further comprises an external address translation table for translating the address of requests originating and terminating outside of the switch.

5. The method of claim 1 , wherein the switch further comprises an external requester ID search table for translating the requester ID of requests originating and terminating outside of the switch.

6. The method of claim 1 , wherein the updating an address translation table and a requester ID search table of a translated routine port of the switch based upon the desired behavior for the switch stack further comprises updating the internal address translation table and the internal requester ID search table of a translated routing port of the switch based upon the desired behavior for the switch stack.

7. The method of claim 1 , wherein the transaction layer packet request terminates inside switch.

8. The method of claim 1 , further comprising:

generating a completion;

untranslating the translated requester ID; and

routing the completion to the source port based upon the untranslated requester ID.

9. The method of claim 1 , wherein the source port is a peer-to-peer port and the method further comprises multicast routing the translated request to a plurality of destination ports, including peer-to-peer ports and translated routing ports.

10. A system for translated routing in an interconnect switch, the system comprising:

a switch comprising a switch manager operable to receive a configuration transaction layer packet from a root complex coupled to the switch, run firmware to identify a desired behavior for a switch stack of the switch from the received configuration transaction layer packet, wherein the switch stack comprises port logic that implements a physical layer, a data link layer and a transaction layer function of an interconnect protocol of the switch, update an address translation table and a requester ID search table of a translated routing port of the switch based upon the desired behavior for the switch stack, and the switch further comprising at least one translated routing port, the translated routing port for;

receiving a transaction layer packet request employing address routing from a source port, the transaction layer packet request originating inside the switch and comprising a memory address and a requester ID;

translating the memory address at the translated routing port utilizing an internal address translation table of the port to generate a translated address;

translating the requester ID at the translated routing port utilizing an internal requester ID search table of the port;

searching a translated memory address search table utilizing the translated address to identify a destination port; and

routing the transaction layer packet and the translated requester ID to the destination port identified by the translated memory address.

11. The system of claim 10 further comprising an external address translation table for translating the address of requests originating and terminating outside of the switch.

12. The system of claim 10 further comprising an external requester ID search table for translating the requester ID of requests originating and terminating outside of the switch.

13. A switch for translated routing, the switch comprising:

a switch manager, the switch manager operable upon receiving a configuration transaction layer packet from a root complex coupled to the switch to run firmware to identify a desired behavior for a switch stack of the switch from the received configuration transaction layer packet, wherein the switch stack comprises port logic that implements a physical layer, a data link layer and a transaction layer function of an interconnect protocol of the switch and operable to update an address translation table and a requester ID search table of a translated routing port of the switch based upon the desired behavior for the switch stack; and

at least one translated routing port, the translated routing port operable to receive a transaction layer packet request employing address routing from a source port, the transaction layer packet request originating inside the switch and comprising a memory address and a requester identification (ID), operable to translate the memory address at the translated routing port utilizing an internal address translation table of the port to generate a translated address, operable to translate the requester ID at the translated routing port utilizing an internal requester ID search table of the port, operable to search a translated memory address search table utilizing the translated address to identify a destination port and operable to route the transaction layer packet and the translated requester ID to the destination port identified by the translated memory address.

14. The switch of claim 13 further comprising an external address translation table for translating the address of requests originating and terminating outside of the switch and an external requester ID search table for translating the requester ID of requests originating and terminating outside of the switch.

15. The switch of claim 14 wherein the switch manager is operable to instantiate an internal peer to peer port for each transparent virtual bus of a plurality of transparent virtual buses that the one or more translated routing port connects to, the one or more translated routing port connected to a translated virtual bus that is coupled to the internal peer to peer port.

16. The switch of claim 13 wherein the stack utilizes both type 0 and type 1 headers, the switch manager operable upon receiving a type 0 configuration request translation packet from the root complex to interpret the type 0 configuration request and update one or more of the routing tables of the switch stack, and operable upon receiving a type 1 configuration request translation packet from the root complex to interpret the type 1 configuration request and update one or more of the routing tables of the switch stack.

17. The switch of claim 16 wherein the switch manager is operable to modify the memory address search table to implement routing control for the memory space enable (MSE) and bus master enable (BME) bits of the type 0 headers and the type 1 headers.

Assignments (9)
RELEASE OF SECURITY INTEREST Recorded May 29, 2018
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: MICROSEMI STORAGE SOLUTIONS, INC.; MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
Reel/Frame 046251/0271 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE NAME AND ADDRESS PREVIOUSLY RECORDED AT REEL: 037961 FRAME: 0519. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Mar 15, 2016
From: PMC-SIERRA US, INC.
To: MICROSEMI STORAGE SOLUTIONS (US), INC.
Reel/Frame 038102/0874 →
CHANGE OF NAME Recorded Mar 1, 2016
From: PMC-SIERRA US, INC.
To: MICROSEMI STORAGE SOLUTIONS (U.S.), INC.
Reel/Frame 037961/0519 →
PATENT SECURITY AGREEMENT Recorded Feb 3, 2016
From: MICROSEMI STORAGE SOLUTIONS, INC. (F/K/A PMC-SIERRA, INC.); MICROSEMI STORAGE SOLUTIONS (U.S.), INC. (F/K/A PMC-SIERRA US, INC.)
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 037689/0719 →
RELEASE OF SECURITY INTEREST Recorded Feb 1, 2016
From: BANK OF AMERICA, N.A.
To: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
Reel/Frame 037675/0129 →
SECURITY INTEREST IN PATENTS Recorded Aug 6, 2013
From: PMC-SIERRA, INC.; PMC-SIERRA US, INC.; WINTEGRA, INC.
To: BANK OF AMERICA, N.A.
Reel/Frame 030947/0710 →
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING AND RECEIVING PARTIES PREVIOUSLY RECORDED ON REEL 030832 FRAME 0604. ASSIGNOR(S) HEREBY CONFIRMS THE CONVEYING PARTY DATA: INTEGRATED DEVICE TECHNOLOGY, INC. TECEIVING: PMC-SIERRA US, INC. Recorded Jul 23, 2013
From: INTEGRATED DEVICE TECHNOLOGY, INC.
To: PMC-SIERRA US, INC.
Reel/Frame 030919/0040 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2013
From: PMC-SIERRA US, INC.
To: INTEGRATED DEVICE TECHNOLOGY, INC.
Reel/Frame 030832/0604 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2013
From: BROWN, DAVID ALAN; ONUFRYK, PETER Z.; TALLEDO, CESAR
To: INTEGRATED DEVICE TECHNOLOGY, INC.
Reel/Frame 029644/0486 →