Download User`s Manual

Transcript
C167CS
Derivatives
The Central Processing Unit (CPU)
4.2
Particular Pipeline Effects
Since up to four different instructions are processed simultaneously, additional hardware
has been spent in the C167CS to consider all causal dependencies which may exist on
instructions in different pipeline stages without a loss of performance. This extra
hardware (i.e. for ‘forwarding’ operand read and write values) resolves most of the
possible conflicts (e.g. multiple usage of buses) in a time optimized way and thus avoids
that the pipeline becomes noticeable for the user in most cases. However, there are
some very rare cases, where the circumstance that the C167CS is a pipelined machine
requires attention by the programmer. In these cases the delays caused by pipeline
conflicts can be used for other instructions in order to optimize performance.
Context Pointer Updating
An instruction, which calculates a physical GPR operand address via the CP register, is
mostly not capable of using a new CP value, which is to be updated by an immediately
preceding instruction. Thus, to make sure that the new CP value is used, at least one
instruction must be inserted between a CP-changing and a subsequent GPR-using
instruction, as shown in the following example:
:SCXT CP,#0FC00h ;select a new context
In
;must not be an instruction using a GPR
In + 1: …
;write to GPR 0 in the new context
In + 2:MOV R0,#dataX
Data Page Pointer Updating
An instruction, which calculates a physical operand address via a particular DPPn
(n = 0 to 3) register, is mostly not capable of using a new DPPn register value, which is
to be updated by an immediately preceding instruction. Thus, to make sure that the new
DPPn register value is used, at least one instruction must be inserted between a DPPnchanging instruction and a subsequent instruction which implicitly uses DPPn via a long
or indirect addressing mode, as shown in the following example:
:MOV DPP0,#4
;select data page 4 via DPP0
In
;must not be an instruction using DPP0
In + 1:…
In + 2:MOV DPP0:0000H,R1;move contents of R1 to address location
;01’0000H (in data page 4) supposed segment.
;is enabled
User’s Manual
4-6
V2.0, 2000-07