Patent ID: 7773621

Claim:
A switch, comprising: a network; and a plurality of ports, each coupled to receive transactions from others of said ports via said network, each of said ports comprising: a port interface configured to transmit said transactions to a device coupled to said port; N transaction queues configured to receive said transactions from said network, each of the N transaction queues having a priority, the priority being one of P priorities; and a transaction selector coupled to said port interface and said N transaction queues, configured to select for transmission transactions in the N transaction queues in a round-robin fashion within each of the P priorities independent of the other P priorities, said transaction selector comprising: P round-robin vectors, corresponding to the respective ones of the P priorities, each having N bits corresponding to the N transaction queues, each being a 1-bit left-rotated and subsequently sign-extended version of an N-bit input vector, said input vector having a single bit true corresponding to a last one of the N transaction queues selected for transmitting out the port at a corresponding one of the P priorities; N P-input muxes, each coupled to receive a corresponding one of said N bits of each of said P round-robin vectors, each configured to select for output one of said P inputs specified by the corresponding transaction queue priority; selection logic, coupled to receive a transaction from each of the N transaction queues and to select for transmitting out the port one of said N transactions corresponding to one of the N transaction queues having a transmit value greater than or equal to any of the N transaction queues left thereof in said N-bit input vectors; wherein said transmit value of each of the N transaction queues comprises a least-significant bit equal to said corresponding P-input mux output, a most-significant bit that is true if said corresponding transaction is transmittable, and middle bits comprising the priority of the transaction queue and, priority setting logic configured to set the priority of each of the N transaction queues based on a characteristic of the port with which each respective transaction queue is associated.