Patent ID: 7813283
Filing Date: 2010-10-12
Classification: H04L

Abstract:
1. A circuit producing an outgoing, electronic data stream by arbitrating between a plurality of incoming data streams, comprising: (a) a first electronic memory storing a first plurality of data records, (b) a second electronic memory storing a second plurality of data records, (c) a third electronic memory storing a third plurality of data records, (d) a fourth electronic memory storing one data record, (e) a first plurality of electronic comparators, (f) a second plurality of electronic comparators, (g) a third plurality of electronic comparators, (h) an arbitration goal between said plurality incoming data streams, (i) said first plurality of data records store a current priority for each of said plurality of incoming data streams to conform with said arbitration goal, (j) each of the records, of said second plurality of data records, stores a value identifying the record of highest priority amongst a subset of said first plurality of data records, (k) each of the records, of said third plurality of data records, stores a value identifying the record of highest priority amongst a subset of the records of highest priority identified by said second plurality of data records, (l) the record, stored within said fourth electronic memory, stores a value identifying the record of highest priority amongst the records of highest priority identified by said third plurality of data records, (m) the subsets used by the second plurality of records are disjoint, (n) the subsets used by the third plurality of records are disjoint, (o) the records of the first, second, third, and fourth electronic memories from a tree with the record stored within the fourth electronic memory representing a root, the first plurality of records representing a plurality of leaves, and each record of the second plurality of records and the third plurality of records representing nodes with edges to the respective subsets of records, (p) a first electronic process that, upon a departure of data to the outgoing data stream, modifies the record, of said first plurality of data records, for said outgoing data stream with a new current priority, as needed to conform with said arbitration goal, (q) a second electronic process that, upon an arrival of data from a first data stream of said plurality of incoming data streams, modifies the record, of said first plurality of data records, for said first data stream with a new current priority, as needed to conform with said arbitration goal, (r) said first plurality of electronic comparators first calculate, after each execution of said first electronic process, the record of highest priority for each node along a first tree traversal, from the leaf associated with said outgoing data stream to said root of said tree, respectively, (s) the first calculations are performed in parallel by comparing the priority of said outgoing data stream to the priority of each of the incoming data streams indicated by the value at each node along said first tree traversal respectively, and changing the value of the respective nodes to indicate the higher priority incoming data stream, (t) said second plurality of electronic comparators second calculate, after each execution of said second electronic process, the record of highest priority for each node along a second tree traversal, from the leaf associated with said incoming data stream to said root of said tree, respectively, (u) the second calculations are performed in parallel by comparing the priority of said first incoming data stream to the priority of each of the incoming data streams indicated by the value at each node along said second tree traversal respectively, and changing the value of the respective nodes to indicate the higher priority incoming data stream, (v) said third plurality of electronic comparators make a final calculation of the highest priority incoming data stream amongst the priorities of incoming data streams indicated by the value at each node along said first tree traversal as well as said outgoing data stream and said first incoming data stream, (w) an arbitration decision is constituted by the value of said final calculation and becomes a next outgoing data stream in a cyclic arbitration process.