PCI bus switch architecture
AssigneeAltera Corporation
InventorsZiad M. Abu-Lebdeh, Jeffrey R. Fox
Life of this patent
Estimating the term…
Abstract
A computer-system bus switch architecture is presented that has high throughput and low latency. The architecture provides a multi-port PCI bus switch that includes a primary port controller, a crossbar switch, and a plurality of secondary port controllers. The primary port controller couples to a main system bus to which, for example, a system controller is coupled, and the secondary port controllers are each coupled to a local bus to which a plurality of peripheral devices are coupled. The crossbar switch selectively routes traffic from any port controller to any other port controller.
Claims27
A computer-system bus switch comprising:
- a primary port controller operative to transfer traffic to and from a main system bus;
- a plurality of secondary port controllers each operative to transfer traffic to and from a respective local bus;
- and
- a crossbar switch coupled to said primary port controller and to said secondary port controllers, said crossbar switch operative to selectively transfer traffic from each one of said primary and secondary port controllers to any other one of said primary and secondary port controllers wherein:
- said primary port controller operates at a speed higher than at least one of said secondary port controllers.
A computer-system bus switch comprising:
- a primary port controller operative to transfer traffic to and from a main system bus;
- a plurality of secondary port controllers each operative to transfer traffic to and from a respective local bus;
- and
- a crossbar switch coupled to said primary port controller and to said secondary port controllers, said crossbar switch operative to selectively transfer traffic from each one of said primary and secondary port controllers to any other one of said primary and secondary port controllers;
- wherein:
- said primary port controller has a bus width wider than at least one of said secondary port controllers.
A computer-system bus switch comprising:
- a primary port controller operative to transfer traffic to and from a main system bus;
- a plurality of secondary port controllers each operative to transfer traffic to and from a respective local bus;
- and
- a crossbar switch coupled to said primary port controller and to said secondary port controllers, said crossbar switch operative to selectively transfer traffic from each one of said primary and secondary port controllers to any other one of said primary and secondary port controllers;
- wherein said primary port controller comprises:
- a first queue operative to store traffic received from said crossbar switch;
- and
- a second queue operative to store traffic received from said main system bus.
A computer-system bus switch comprising:
- a primary port controller operative to transfer traffic to and from a main system bus;
- a plurality of secondary port controllers each operative to transfer traffic to and from a respective local bus;
- and
- a crossbar switch coupled to said primary port controller and to said secondary port controllers, said crossbar switch operative to selectively transfer traffic from each one of said primary and secondary port controllers to any other one of said primary and secondary port controllers;
- wherein each of said secondary port controllers comprises:
- a first queue operative to store traffic received from said crossbar switch;
- and
- at least two other queues each operative to store traffic received from a local bus.
A computer-system bus switch comprising:
- a primary port controller operative to transfer traffic to and from a main system bus;
- a plurality of secondary port controllers each operative to transfer traffic to and from a respective local bus;
- and
- a crossbar switch coupled to said primary port controller and to said secondary port controllers, said crossbar switch operative to selectively transfer traffic from each one of said primary and secondary port controllers to any other one of said primary and secondary port controllers;
- wherein said crossbar switch comprises:
- an array of multiplexers operative to selectively connect any one of said primary and secondary port controllers to any other one of said primary and secondary port controllers;
- and
- an arbiter coupled to said array of multiplexers, said arbiter operative to control connections made by said array and to resolve competing requests for connections to one of said primary and secondary port controllers, said requests received from other said primary and secondary port controllers.
A circuit board comprising a computer-system bus switch and a system controller mounted thereon, said system controller coupled to said bus switch, said bus switch comprising:
- a primary port controller operative to transfer traffic to and from a main system bus;
- a plurality of secondary port controllers each operative to transfer traffic to and from a respective local bus;
- and
- a crossbar switch coupled to said primary port controller and to said secondary port controllers, said crossbar switch operative to selectively transfer traffic from each one of said primary and secondary port controllers to any other one of said primary and secondary port controllers.
A method of transferring data-processing traffic between an initiator device and a target device through a bus switch, said bus switch comprising a plurality of port controllers each coupled to at least one device, said initiator device coupled to a first of said port controllers and said target device coupled to a second of said port controllers, said bus switch further comprising a crossbar switch coupled to each of said port controllers and operative to selectively transfer traffic from each one of said port controllers to any other one of said port controllers, said method comprising:
- receiving at said first port controller a request to transfer traffic between said initiator device and said target device;
- storing traffic received from said initiator device into a queue of said first port controller;
- instructing said crossbar switch to connect said first port controller to said second port controller, said second port controller being any other one of said port controllers;
- transferring said traffic from said first port controller queue to a queue of said second port controller;
- and
- transferring said traffic from said second port controller queue to said target device.
A computer-system bus switch comprising:
- a primary port controller operative to transfer traffic to and from a main system bus;
- a plurality of secondary port controllers each operative to transfer traffic to and from a respective local bus;
- and
- a crossbar switch coupled to said primary port controller and to said secondary port controllers, said crossbar switch operative to selectively transfer traffic from each one of said primary and secondary port controllers to any other one of said primary and secondary port controllers, said crossbar switch comprising an array of multiplexers and an arbiter coupled to said array, said crossbar switch further operative to transfer traffic from said primary port controller to a first said secondary port controller while transferring traffic concurrently from a second said secondary port controller to a third said secondary port controller.
A computer-system bus switch comprising:
- a primary port controller operative to transfer traffic to and from a main system bus;
- a plurality of secondary port controllers each operative to transfer traffic to and from a respective local bus;
- and
- a crossbar switch coupled to said primary port controller and to said secondary port controllers, said crossbar switch operative to selectively transfer traffic from each one of said primary and secondary port controllers to any other one of said primary and secondary port controllers;
- wherein:
- at least one of said primary and secondary port controllers comprises first and second queues operative to store traffic, said at least one port controller operative to concurrently send and receive traffic via said crossbar switch.
A computer-system bus switch comprising:
- a primary port controller operative to transfer traffic to and from a main system bus;
- a plurality of secondary port controllers each operative to transfer traffic to and from a respective local bus;
- and
- a crossbar switch coupled to said primary port controller and to said secondary port controllers, said crossbar switch operative to selectively transfer traffic from each one of said primary and secondary port controllers to any other one of said primary and secondary port controllers, said crossbar switch comprising an array of multiplexers and an arbiter coupled to said array, the number of multiplexers in said array equaling the number of said primary and secondary port controllers, at least one of said primary and secondary port controllers being operative to send traffic directly to itself via said crossbar switch.
A computer-system bus switch comprising:
- a primary port controller operative to transfer traffic to and from a main system bus;
- a plurality of secondary port controllers each operative to transfer traffic to and from a respective local bus;
- and
- a crossbar switch coupled to said primary port controller and to said secondary port controllers, said crossbar switch operative to selectively transfer traffic from each one of said primary and secondary port controllers to any other one of said primary and secondary port controllers;
- wherein:
- at least one of said primary and secondary port controllers comprises first and second queues operative to store traffic, at least one of said secondary port controllers being operative to send traffic via said crossbar switch concurrently to said primary port controller and another of said secondary port controllers.
A method of transferring data-processing traffic through a bus switch, said bus switch comprising a plurality of port controllers and a crossbar switch coupled to each of said port controllers, said crossbar switch comprising an array of multiplexers and an arbiter coupled to said array, said method comprising:
- transferring traffic from a first one of said port controllers through said array of said crossbar switch to a second one of said port controllers;
- and
- transferring traffic from a third one of said port controllers through said array of said crossbar switch to a fourth one of said port controllers concurrently as said transferring traffic from said first to said second port controllers.
A method of transferring data-processing traffic through a bus switch, said bus switch comprising a plurality of port controllers and a crossbar switch coupled to each of said port controllers, said crossbar switch comprising an array of multiplexers and an arbiter coupled to said array, said method comprising:
- transferring traffic from a first one of said port controllers through said array of said crossbar switch to a second one of said port controllers;
- and
- transferring said traffic from said first port controller through said array of said crossbar switch to a third one of said port controllers concurrently as said transferring traffic from said first to said second port controllers.
Dependencies are inferred from the claim text.