Browse Prior Art Database

Method of Providing Small Computer Systems With Multiple Input/ Output Operations

IP.com Disclosure Number: IPCOM000122643D
Original Publication Date: 1991-Dec-01
Included in the Prior Art Database: 2005-Apr-04
Document File: 4 page(s) / 220K

Publishing Venue

IBM

Related People

Dayan, RA: AUTHOR [+2]

Abstract

Described is a method whereby small computer systems which use busmaster adapters have the ability to accommodate a direct memory access (DMA) transfer of data where the physical address locations of the input/output (I/O) buffer are not contiguous. A series of algorithms are described to split single multi-element I/O requests into multiple I/O operations for use in element-constrained environments.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 28% of the total text.

Method of Providing Small Computer Systems With Multiple Input/ Output
Operations

      Described is a method whereby small computer systems
which use busmaster adapters have the ability to accommodate a direct
memory access (DMA) transfer of data where the physical address
locations of the input/output (I/O) buffer are not contiguous.  A
series of algorithms are described to split single multi-element I/O
requests into multiple I/O operations for use in element-constrained
environments.

      Typically, small computer systems interface (SCSI) busmaster
adapters support the functions of scatter/gather in a virtual, paged
environment.  Scatter/gather is also known as data chaining.  Some
system bus master adapters may allow only sixteen regions of
fragmented memory to be accessed in a single I/O request.  However,
an I/O buffer may end up being composed of more than sixteen regions
of memory. Therefore, in order to maintain a compatible channel basic
input/output system (CBIOS) interface for the SCSI disks, the BIOS
must break the I/O request into multiple I/O operations.  The concept
described herein provides a series of optimal algorithms for breaking
an I/O request into multiple I/O operations, so as to satisfy the
original request.

      With operating systems encompassing a virtual demand paging
environment, or a multiple disk operating system (DOS) hypervisor
environment, the two environments create the situation where the
address of an object, as viewed by the application, may not
necessarily be the address where the object actually resides.  This
address, referred to as a logical or linear address, must be
translated to an absolute physical address prior to performing an I/O
operation to the specified area in memory.  Problems can occur where
software entities, such as device drivers, paging managers, or
subsystems, generate what they believe are physical addresses and
pass them to a busmaster adapter as data.

      In reality, the address generated is a linear address, not a
physical address.  Generally, the busmaster uses this data as a
physical address on the bus to access real memory. Since the address
is linear and not physical, the busmaster either fetches the wrong
data or writes over the area addressed.

      Furthermore, objects stored in memory may not be physically
contiguous.  Therefore, to support data access in such an
environment, the busmaster adapters are required to support
scatter/gather operations.  Scatter/gather operations are considered
important in virtual and paged environments created by several
operating systems. Often, confusion can exist in that a user may
believe that the address space being used is contiguous and physical,
while in reality it is not. In this environ ment, to read or write
records to an I/O buffer may require several individual I/O
operations, if scatter/gather was not supported.  As a result, an
adapter which supports access to several discontiguous blo...