A memory controller circuit arrangement and method utilize a tuning circuit
that dynamically controls the timing of memory control operations, rather
than simply relying on fixed timing parameters that are either hardwired
or initialized upon startup of a memory controller. Dynamic control over
the timing of memory control operations typically incorporates memory test
control logic that verifies whether or not a memory storage device will
reliably operate using the dynamically-selected values of given timing
parameters. Then, based upon the results of such testing, such
dynamically-selected values are selectively updated and retested until
optimum values are found. The dynamically-selected values may be used to
set one or more programmable registers, each of which may in turn be used
to control the operation of a programmable delay counter that enables a
state transition in a state machine logic circuit to initiate performance
of a memory control operation by the logic circuit. Dynamic tuning may
also utilize a unique binary search engine circuit arrangement that
updates one of two registers with an average of the current values stored
in such registers based upon the result of a test performed using that
average value. By selectively updating such registers, a fast convergence
to an optimum value occurs with minimal circuitry.