Apparatus and methods allocate I/O bandwidth of an electrical component,
such as an IC, by configuring an I/O interface into various types of
interfaces. In an embodiment of the present invention, an I/O interface
is configured into either a bidirectional contact, unidirectional contact
(including either a dedicated transmit or dedicated receive contact) or a
maintenance contact used in a maintenance or calibration mode of
operation. The I/O interface is periodically reconfigured to optimally
allocate I/O bandwidth responsive to system parameters, such as changing
data workloads in the electronic components. System parameters include,
but are not limited to, 1) number of transmit-receive bus turnarounds; 2)
number of transmit and/or receive data packets; 3) user selectable
setting 4) number of transmit and/or receive commands; 5) direct requests
from one or more electronic components; 6) number of queued transactions
in one or more electronic components; 7) transmit burst-length setting,
8) duration or cycle count of bus commands, and control strobes such as
address/data strobe, write enable, chip select, data valid, data ready;
9) power and/or temperature of one or more electrical components; 10)
information from executable instructions, such as a software application
or operating system; 11) multiple statistics over respective periods of
time to determine if using a different bandwidth allocation would result
in better performance. The importance of a system parameter may be
weighted over time in an embodiment of the present invention.