Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Cross Region Code Relocation Method for Intel 80960 Architecture

IP.com Disclosure Number: IPCOM000110252D
Original Publication Date: 1992-Nov-01
Included in the Prior Art Database: 2005-Mar-25
Document File: 5 page(s) / 200K

Publishing Venue

IBM

Related People

Pfeiffer, RT: AUTHOR

Abstract

Disclosed is a pair of programs. One program implements a method for creating two-region, relocatable object files for the Intel 80960*. The other program implements a method for loading and relocating these created object files within the Intel 80960 memory space.

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

Cross Region Code Relocation Method for Intel 80960 Architecture

       Disclosed is a pair of programs.  One program implements
a method for creating two-region, relocatable object files for the
Intel 80960*.  The other program implements a method for loading and
relocating these created object files within the Intel 80960 memory
space.

      The method for creating a two-region, relocatable code module
requires two executions of the Intel 80960 linkage editor (linker)
using separate, unique linker directive files.  In one pass, the
Intel 80960 linker takes as input a linker directive file constructed
in such a manner as to force relocation directives into an output
object file.  This is output object file A.  In the next pass, the
Intel 80960 linker utilizes a linker directive file which positions
the output object code into one or two distinct regions of memory
designated by an arbitrary, fixed address. This is output object file
B.  The method assigns these fixed addresses such that the memory
address space referenced was not used by the targeted hardware
design.  One of the invented programs uses output object file A and B
as input.  It creates as output, a single file containing Intel 80960
executable object code and relocation directives.  The program does
this by appending the relocation directives from output file A to the
end of output file B.  This file serves as input to the second
program disclosed.

      The second program implements a set of algorithms for
correcting memory references within the executable object code file.
The program writes a named section of the relocatable object code
file into the appropriate real memory address space.  The program
then determines the type of each relocation directive and uses a
particular algorithm to adjust the memory reference to the correct
real address.

      To understand the relocation algorithms, refer to Fig. 1.  Any
address calculated at link edit time and placed in the output file is
considered a virtual address.  When the output file is placed in real
memory, the resulting address is considered a real address.  In Fig.
1, the solid boxes represent a single program module with code
designed for execution in two separate regions.  The dashed boxes
represent the same program module located in virtual space defined as
real in the LNK960 configuration file.  The term address of reference
refers to the first field in any relocation directive record.  The
term base link address is a constant virtual address set up in the
LNK960 configuration file.  For example, assume the design uses two
regions.  One region has very fast access Static Random-Access Memory
(SRAM) and the other region has slower access Dynamic Random-Access
Memory (DRAM).
Variable Definitions
X    Base link address for SRAM resident code and/or data.  This
address is fixed at 0x70000000.
Y    Base link address for DRAM resident code and/or data.  This
address is fixed at...