Patent ID: 7287111

Claim:
A method of dynamically selecting an arbiter in a data processing system, said method comprising: selecting a first arbiter for current use in arbitrating between requestors for a resource; during operation of said data processing system, detecting requests by said requestors for said resource, wherein said detecting further comprises: detecting a plurality of diverse commands represented by said requests without regard to one or more sources of said requests, tracking requests for said resource containing a write command with a write counter, and tracking requests for said resource containing a read command with a read counter; and during operation of said data processing system, selecting a second arbiter in response to said detected plurality of diverse commands, wherein said selecting further includes: determining values of said write counter and said read counter; tracking requests for said resource with a command counter; receiving an instruction to select said second arbiter and a boundary value for said command counter; calculating a ratio of said value of said read counter to a value of said write counter; in response to reaching said boundary value, selecting a second arbiter with an ideal value of a read/write ratio approximating said ratio; and in response to said first arbiter making a transition to a new state, implementing said second arbiter.