Method of Using Scatter/Gather Indirect List in Micro Channel Computer Systems
Original Publication Date: 1991-Mar-01
Included in the Prior Art Database: 2005-Apr-02
Bonevento, FM: AUTHOR [+4]
Described is a method of utilizing Scatter/Gather indirect list (IL) techniques in MICRO CHANNEL* computer systems to enable a device to scatter or gather data to or from non-contiguous storage locations. The method uses a descriptor list that contains pairs of data transfer addresses and counts.
Method of Using Scatter/Gather Indirect List in Micro
a method of utilizing Scatter/Gather
indirect list (IL) techniques in MICRO CHANNEL* computer systems to
enable a device to scatter or gather data to or from non-contiguous
storage locations. The method uses a descriptor list that contains
pairs of data transfer addresses and counts.
implementation of a descriptor list allows a single
subsystem control block (SCB) command to scatter (Write) the data or
gather (Read) data from non-contiguous data areas (buffers) in
memory. The maximum amount of elements, pairs of addresses and
counts, is limited only by implementation. The use of IL techniques
is useful for software systems which are running user programs in a
protected paging mode. In this case, a user request to read or write
from a contiguous area of virtual space may require the input/output
(I/O) to a set of non-contiguous real memory pages. Also, the
indirect buffer list would describe the physical pages which map the
contiguous virtual area. The start of such an area might fall on an
arbitrary byte boundary.
architecture does not require that a device write the
elements of an IL as a single physical block. However, if the device
is capable of being written and later read, the architecture does
require that the same IL used on the Write be capable of retrieving
the same data blocks on the Read. Fig. 1 shows a general format of
the scatter/gather list with Fig. 1a, the SCB direct case, and Fig.
1b, the SCB indirect case.
command is delivered to the subsystem or device using
the SCB command delivery protocol. Once the command is accepted, the
subsystem or device fetches the control block from memory and decodes
the command. If the command is decoded as an IL command, the
following will occur:
- The Storage Address is used as a pointer to the IL list
and the Byte Count field is used to determine the length of the list.
- The data transfer begins using Buffer 1 address and Buffer
- When the Byte count Buffer 1 length is exhausted, the
subsystem then uses Buffer 2 address and Buffer 2 length.
- When the byte count of Buffer 2 length is exhausted, the
subsystem then uses the next Buffer address and the next Buffer
- The data transfers continue until all the elements in the
IL are used or an exception condition arises.
transmitted using buffer descriptions.
When a read
operation is in progress, bytes are moved from the device to the
storage area located by the buffer description using ascending
storage addresses. A buffer description is a term used to denote the
starting of the main processor storage address and length in bytes of
an area to be used as the target of a read operation. If no IL
is used, then the starting address of the buffer area will b...