Patent ID: 7930456

Claim:
A data packet arbitration system for routing data transfers from a plurality of clients to a data transmission line, at least one of the plurality of clients including a plurality of functions initiating data transfers, the system comprising: a first arbitration stage including a first switch device receiving write data transfers from at least one of the plurality of functions of at least one of the plurality of clients and a second switch device receiving read data transfers from at least one of the plurality of functions of at least one of the plurality of clients, the first and second switch devices outputting write data transfers and read data transfers, respectively; a second arbitration stage including a third switch device receiving write data transfers from the first switch device and a fourth switch device receiving read data transfers from the second switch device, the third and fourth switch devices outputting write data transfers and read data transfers, respectively; a third arbitration stage including a fifth switch device receiving write data transfers from the third switch device, read data transfers from the fourth switch device, and completion data transfers from at least one of the plurality of clients; and a fourth arbitration stage including a sixth switch device receiving write data transfers, read data transfers and completion data transfers from the fifth switch device and low latency data transfers from at least one of the plurality of clients, the fourth arbitration stage outputting data transfers to the data transmission line; wherein data transfers are routed through the first arbitration stage based on arbitration logic that prioritizes data transfers from certain functions of each client over data transfers from other functions of the respective client, based on a programmable priority scheme; and wherein data transfers are routed through the second arbitration stage based on arbitration logic that prioritizes data transfers from certain clients over data transfers from other clients, based on a programmable priority scheme.