Browse Prior Art Database

Byte Extraction and Positioning by Generated Effective Address

IP.com Disclosure Number: IPCOM000105360D
Original Publication Date: 1993-Jul-01
Included in the Prior Art Database: 2005-Mar-19
Document File: 4 page(s) / 124K

Publishing Venue

IBM

Related People

Findley, RL: AUTHOR [+5]

Abstract

In image processing, it is often required to access byte addresses in memory. Since memory is accessed at word boundaries, it is not possible to load single bytes directly. Thus, the eba instruction has been added to allow the programmer to extract bytes or half-words by the effective address. Additionally, any byte may be positioned in the low order position. The significant contribution of this instruction is that the programmer need not know in advance which byte is to be extracted; it may be generated by the program itself.

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

Byte Extraction and Positioning by Generated Effective Address

      In image processing, it is often required to access byte
addresses in memory.  Since memory is accessed at word boundaries, it
is not possible to load single bytes directly.  Thus, the eba
instruction has been added to allow the programmer to extract bytes
or half-words by the effective address.  Additionally, any byte may
be positioned in the low order position.  The significant
contribution of this instruction is that the programmer need not know
in advance which byte is to be extracted; it may be generated by the
program itself.

      Fig. 1(a) shows the storage organization for the RISC
System/6000* Architecture.  Within the context of a program executing
in the RISC System/6000 Architecture, storage is organized into
doublewords, words, halfwords, and bytes which are constrained to lie
on boundaries which are multiples of their sizes.  The graphics
floating point engine Architecture, however, is organized into words
only (Fig. 1(b)), and any effective address that does not lie on the
word boundry will cause an alignment interrupt.

      In image processing, it is often necessary to access byte sized
pixel values from an image using a generated address.  That is, the
programmer does not know the address of the pixel in advance.  Due to
this requirement, the hardware must support a method of loading byte
addresses.

      Without this capability, the programmer must always know in
advance which byte in storage is going to be addressed, and what size
the data to be accessed will be.  This places serious restrictions on
the com plexity of the programs that can be written.  Addressing data
from generated addresses and sizes is necessary to support many
graphics and image processing algorithms and application interfaces
(e.g., JPEG).

      Described is a microprocessor instruction which will allow byte
addressing as a register to register operation.  Fig. 2 shows the
format for the new "Extract by Address" (eba) instruction.  This in
struction adds additional support to image processing applications,
especially image compression and decompression.

                   eba  RT, RA, RB, MB, ME

      Register RA is rotated left by the amount indicated by bits
30:31 in register RB as follows:

         b'00' = rotate right 24            b'10' = rotate right 8

         b'01' = rotate right 16            b'11' = rotate right 0

      This has the effect of positioning the byte in register RA
pointed to by the address in register RB in the low order byte
position of the intermediate result.  This result is then ANDed with
the mask generated by ME and MB.

EXAMPLE 1:    Extract Byte by Address

                   If   RA = 0x A1 B2 C3 D4
                        RB = effective add...