
53
Chapter 1 Architectural Overview
The upper 8–bits of the CFG register are used for processor version and revision
identification. The upper 3–bits of this field, known as the PRL (processor revision
level) identify the processor. The Am29000 processor is identified by processor
number 0, the Am29050 is processor number 1, and so on. The lower 5–bits of the
PRL give the the revision level; a value of 3 indicates revision ‘D’. The PRL field is
read–only.
Data Access Channel
Three special registers,
sr4–sr6
, known as CHA (channel address), CHD (chan-
nel data) and CHC (channel control), are used to control and record all access to ex-
ternal data memory. Processors in the 29K family can perform data memory access in
parallel with instruction execution. This offers a considerable performance boost,
particularly where there is high data memory access latency. Parallel operation can
only occur if the instruction pipeline can be kept
fed
from the instruction prefetch
buffer (IPB), instruction memory cache, or via separate paths to data and instruction
memory (Harvard style 3–bus processors). It is an important task of a high level lan-
guage compiler to schedule load and store instructions such that they can be success-
fully overlapped with other nondependent instructions (see section 1.13).
When data memory access runs in parallel, its completion will occur some time
after the instruction originally making the data access. In fact it could be several
cycles after the original request, and it may not be possible to determine the original
instruction. On many processors, keeping track of the original instruction is required
in case the load or store operation does not complete for some reason. The original
instruction is restarted after the interrupting complication has been dealt with. How-
ever, with the 29K family the original instruction is not restarted. All access to exter-
nal memory is via the processor Data Channel. The three channel support registers
are used to restart any interrupted load or store operation. Should an exception occur
during data memory access, such as an address translation fault, memory access
violation, or external interrupt, the channel registers are updated by the processor re-
porting the state of the in–progress memory access.
The channel control register (CHC) contains a number of bit–fields. The con-
tents–valid bit (CV) indicates that the channel support registers currently describe a
valid data access. The CV bit is normally seen set when a channel operation is inter-
rupted. The ML bit indicates a load– or store–multiple operation is in progress.
LOADM and STOREM instructions set this bit when commencing and clear it when
complete. It is important to note that non–multiple LOAD and STORE instructions
do not set or clear the ML bit. When a load– or store–multiple operation is interrupted
and nested interrupt processing is supported, it is not sufficient to just clear the CV bit
to temporary cancel the channel operation. If the ML bit was left set, a subsequent
load or store operation would become confused with a multiple type operation. The
ML bit should be cleared along with the CV bit; this is best done by writing zero into
the CHC register. (See section 4.3.8 for more information about clearing CHC.)