Accelerator Manual (G06.24+, H06.03+)

Accelerator Manual527303-002
1-1
1 Introduction
The Accelerator processes TNS object code to produce accelerated object code. On
TNS/R systems, accelerated object code runs significantly faster than TNS object
code. This section describes how the Accelerator works, how to determine which
programs to accelerate, and the cost in time and space to accelerate your programs.
How the Accelerator Works
The Accelerator takes as input an executable TNS object file and produces as output
an accelerated object file. The accelerated object file contains both the original TNS
code and the logically equivalent optimized RISC instructions (accelerated object
code.)
Figure 1-1, The Acceleration Process, on page 1-1 illustrates the acceleration process.
The Accelerator produces for each TNS instruction its functional equivalent on the
TNS/R system, in the form of either:
A sequence of zero or more (usually more than one) RISC instructions
A call on a millicode routine
In the first and more common case, the Accelerator treats a TNS instruction as though
it were a macro instruction, expanding it into RISC instructions. In the second, the
Accelerator treats a TNS instruction as though it were a call on a closed subroutine,
referred to as a millicode routine. Millicode routines are sets of RISC instructions that
implement various complex TNS instructions and low-level functions such as exception
handling, real-time translation routines, and floating-point and quad arithmetic.
Millicode is functionally equivalent to TNS microcode.
The Accelerator can only produce optimized RISC instructions for TNS instruction
sequences whose exact meaning can be determined before runtime. In cases where
the exact meaning cannot be determined until run-time, the program makes a transition
into TNS code and executes the original TNS instructions. These transitions into TNS
code can often be prevented by either modifying the program or changing some
Figure 1-1. The Acceleration Process
TNS
Compiler
TNS
Object Code
TNS Object File
Accelerator
Accelerated Object File
TNS
Object Code
Accelerated
Object Code
VST0101.vsd