A programmable arbitration system including control logic to select one of
several arbitration schemes for selecting the ports of a network switch, a
memory to store priority values indicating the relative priority of each
of the ports, monitor logic to monitor each of the ports and to program
the priority values in the memory based on a priority scheme selected by
the control logic, and arbitration logic to select a port having the next
highest priority. The arbitration schemes preferably include a round-robin
priority scheme, a first-come, first-served (FCFS) priority scheme, a
weighted priority scheme, or any other desirable priority scheme. The
monitor logic includes polling logic to periodically poll the ports and to
program a priority value of each port. The memory includes receive and
transmit lists to indicate of which of the ports have indicated needing
service and a corresponding priority value. The arbitration logic includes
a receive arbiter and a transmit arbiter, each of which use a
corresponding arbitration count.