A storage target device controller (such as an
embedded controller in a
SCSI disk drive) processes multiple commands concurrently in accordance with the methods and structures of the present invention. Each command is stored within its own context within the target device controller to retain all unique parameters required for the
processing of each command.
Processing of multiple commands permits switching of command contexts within the target device to improve utilization of resources associated with the target device. For example, when a first, active, command context is prevented from further
processing due to the status of the disk channel, an inactive command context may be swapped with the active command context to better utilize the host channel
communication bandwidth. Similarly, a first active command context may be configured to automatically switch to a linked command context upon completion of
processing to further ease management of multiple contexts. In a preferred embodiment of the present invention, a set of registers contain the active context while a second set of registers contains an inactive command context. The sets of registers are configured in such a way that the active and inactive context may be rapidly switched with no intervention by the
microprocessor. The inactive register set may be read or written directly by the
microprocessor, or may be automatically loaded / stored from / to a buffer memory in the target device by shifting a predetermined context structure into the inactive register set through an interface pad with the buffer memory.