Browse Prior Art Database

Multi-dimensional Read Stride Command for Computer Systems

IP.com Disclosure Number: IPCOM000109606D
Original Publication Date: 1992-Sep-01
Included in the Prior Art Database: 2005-Mar-24
Document File: 3 page(s) / 168K

Publishing Venue

IBM

Related People

Desai, DM: AUTHOR [+4]

Abstract

Described is a multi-dimensional command for computer systems called Read Stride. It is an improvement over currently implemented stride commands in that it imposes no limits on the number of dimensions on which the stride operation can be executed. It provides the ability to read data from non-contiguous memory locations.

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

Multi-dimensional Read Stride Command for Computer Systems

       Described is a multi-dimensional command for computer
systems called Read Stride.  It is an improvement over currently
implemented stride commands in that it imposes no limits on the
number of dimensions on which the stride operation can be executed.
It provides the ability to read data from non-contiguous memory
locations.

      The Read Stride command capability is useful in computer
applications where data is not organized in a fully sequential
manner, but rather in some other deterministic pattern.  A commonly
used structure, such as multi-dimensional matrix, enables the Read
Stride command to extract a submatrix into a larger multi-dimensional
matrix.  Also, the Read Stride command can be used in applications
where data is extracted from a unidimensional data stream as in data
sampling.

      Implementing the Read Stride command in an input/output (I/O)
processor or co-processor can free the main processor from
compute-intensive operations, such as data reformatting and can
improve overall system performance.  In addition, the Read Stride
command function can conceptually be implemented anywhere in the
system.

      From a programming viewpoint, the implementation of the Read
Stride command is essentially the implementation of either nested or
sequentially executed FOR LOOPS.  For example, nested FOR LOOPS would
be used for extracting data into a matrix, whereas sequentially
executed FOR LOOPS would be used for sampling data from a data stream
at different sampling rates depending on the location within the data
stream.

      The Read Stride command can be implemented in hardware,
software or a combination of both.  The basic FOR LOOP can be
implemented in hardware with adders and counters.  An implementation
may contain the innermost FOR LOOPS in hardware, while the outer FOR
LOOPS may be implemented in software.  This would result in reduced
costs with relatively low impact to performance because the outer
loops would not execute as often as the inner loops.

      For the purpose of discussion, the following is a semantic for
the FOR LOOP:
                 FOR i = 1 step 1 until c DO d
where i = a counter which starts at the value 1 and takes on all
integer values between 1 and c inclusive in increments of 1.
       c = stop condition.  Loop is not executed if i is greater than
c.  Stop condition is checked before initial execution of loop.  If a
stop condition is true, d will not execute.
       d = instructions to be executed.

      For the Read Stride command, each FOR LOOP is specified as a
set of stride and hold values.  The stride values can be viewed as
address increments or decrements while the hold values can be viewed
as counters used to generate the stopping conditions.

      The Read Stride command can specify both a destination and a
source for data.  Stride and hold values ...