General Registers And Register Block Pointer; Memory Control Storage; Memory Map And Access Protection; Instruction Format - Xerox Sigma 6 Reference Manual

Table of Contents

Advertisement

GENERAL REGISTERS AND REGISTER BLOCK POINTER
A register block is a high-speed memory consisting of six-
teen 32-bit words contained in the basic SIGMA 6 CPU for
general-purpose register usage. A SIGMA 6 contains two
such register blocks (expandable to 32), and a 5-bit control
field (called the register block pointer) in the arithmetic
and control unit selects the block currently available to
a program.
The 16 general registers selected by the
register block pointer are referred to as the current register
'block.
The register block pointer can be changed only
when the computer is in the master mode; thus, a slave
program cannot change the register block pointer.
Each general register in a current register block is identified
by a 4-bit code in the range 0000 through 1111 (0 through 15
in decimal, or
X'O'
through
X'F'
in hexadecimcl notation).
Any general register can be used as a fixed-point accumu-
lator, floating-point accumulator, temporary storage, or can
contain control information such as a data address, count,
pointer, etc. Any (or all) of general registers 1 through 7
can be used as index registers.
Registers 12 through 15 are
used as a decimal accumulator that is capable of containing
31 decimal digits plus sign. The use of registers 12 through 15
is automatic when a decimal instruction is executed; how-
ever, these registers may be used for other purposes by in-
structions not in the decimal instruction set.
MEMORY CONTROL STORAGE
Three high-speed integrated-circuit memories are avai
1-
able for storage of a memory map, a set of memory access-
protection codes, and a set of memory write-protection
codes, all of which can be changed only when the computer
is in the master mode.
MEMORY MAP AND ACCESS PROTECTION
The memory map feature includes high-speed memories for
both the memory map and the access-protection codes.
Use
of the map is determined by the state of the memory map
control bit in the arithmetic and control unit.
Memory Map.
Two terms are essential to a proper under-
standing of the memory mapping concept: virtual address
(Jnd actua I address.
A virtual address is a value used by a machine-level pro-
gram to designate the location of an instruction, the loca-
tion of an element of data, the location of a data address
(indirect address), or to designate an explicit quantity,
such as a count.
Normally, virtual addresses are derived
from programmer-suppl ied labels through an assembly (or
compi lation) process followed by a loading process. Virtual
addresses maya Iso be computed during a program's execu-
tion.
Thus, virtual addresses include all instruction ad-
dresses, data addresses, indirect addresses, and addresses
used as counts within a
s~ored
program, as well as those
addresses computed by the program.
An actual address is a value used by the CPU
t:.
access
mem-
ory for storage or retrieval of information, as required b>, tl1e
execution sequence of an instruction.
Thus, actual addresses
designate wired-in hardware storage locations.
When the memory map is not in effect in a SIGMA 6 com-
puter, as determined by the memory map control bit, all
virtual address values above 15 are used by the CPU as ac-
tual addresses. Virtual addresses in the range 0 through 15
are always used by the CPU as general register addresses
rather than as core memory addresses. Thus, for example,
if an instruction uses a virtual address of 5 as the address
where a result is to be stored, the result is stored in general
register 5 in the current register block instead of in core
memory location 5.
When the computer is operating with the memory map, vir-
tual addresses in the range 0 through 15 are sti II used as
general register addresses.
However, all virtual addresses
above 15 are transformed into actual addresses, by replacing
the high-order portion of the virtual address with a value ob-
tained from the memory map. The memory map replacement
process is descri bed in the secti on
II
Memory Address Control" .
Memory Access Protection.
When the computer is oper-
ati ng in the slave mode with the memory map, the access-
protection codes determine whether or not the program may
access instructions from, read from, or write into specific
regions of the virtual address continuum (virtual memory).
If the slave program attempts to access a region of virtual
memory that is so protected, program control is returned to
the executive program.
(The access-protection codes are
described in the section "Memory Address Control".)
MEMORY WRITE PROTECTION
The memory write-protection feature operates independently
of the memory map and access protection.
The memory
write-protection feature includes the high-speed memory
for the memory write locks.
These locks operate in con-
junction with a 2-bit field, called the write key, in the
arithmetic and control unit. The locks and the key de-
termine whether or not the program (slave or master) may
alter the contents of specific regions of core memory as
accessed by actual addresses.
The write key can be changed
only when the computer is in the master mode; thus the cur-
rent write key cannot be changed by a slave program. (The
functions of the locks and key are described in the section
"Memory Address Control".)
INSTRUCTION FORMAT
The normal SIGMA 6 memory-addressing instruction has the
following format:
*
This bit position indicates whether or not in-
direct addressing is to be performed.
Indirect
addressing is performed (one level only) if this
Instruction Format
11

Advertisement

Table of Contents
loading

Table of Contents