User’s Manual
C166S V1 SubSystem
System Overview
User’s Manual
2-3
V 1.6, 2001-08
If this technique were not used, each instruction would require four machine cycles. This
increased performance allows a greater number of tasks and interrupts to be processed.
Instruction Decoder
Instruction decoding is primarily generated from PLA (Programmable Logic Array)
outputs based on the selected opcode. No microcode is used and each pipeline stage
receives control signals staged in control registers from the decode stage PLAs. Pipeline
holds are primarily caused by waitstates for external memory accesses and cause the
holding of signals in the control registers. Multiple-cycle instructions are performed
through instruction injection and simple internal state machines which modify required
control signals.
2.1.2
High Function 8-bit and 16-bit Arithmetic and Logic Unit
All standard arithmetic and logical operations are performed in a 16-bit ALU. In addition,
for byte operations, signals are provided from bits six and seven of the ALU result to
correctly set the condition flags. Multiple precision arithmetic is provided through a
’CARRY-IN’ signal to the ALU from previously calculated portions of the desired
operation.
Most internal execution blocks have been optimized to perform operations on either 8-
bit or 16-bit quantities. Once the pipeline has been filled, one instruction is completed per
machine cycle, except for multiply and divide. An advanced Booth algorithm has been
incorporated to allow four bits to be multiplied and two bits to be divided per machine
cycle. Thus, these operations use two coupled 16-bit registers, MDL (Multiply Divide
Low Word) and MDH (Multiply Divide High Word), and require four and nine machine
cycles, respectively, to perform a 16-bit by 16-bit (or 32-bit by 16-bit) calculation plus one
machine cycle to setup and adjust the operands and the result. Even these longer
multiply and divide instructions can be interrupted during their execution to allow for very
fast interrupt response. Instructions have also been provided to allow byte packing in
memory while providing sign extension of bytes for word wide arithmetic operations. The
internal bus structure also allows transfers of bytes or words to or from peripherals based
on the peripheral requirements.
A set of consistent flags is automatically updated in the PSW (Program Status Word)
after each arithmetic, logical, shift, or movement operation. These flags allow branching
on specific conditions. Support for both signed and unsigned arithmetic is provided
through user-specifiable branch tests. These flags are also preserved automatically by
the CPU upon entry into an interrupt or trap routine. All targets for branch calculations
are also computed in the central ALU.
A 16-bit barrel shifter provides multiple bit shifts in a single cycle. Rotates and arithmetic
shifts are also supported.
Содержание C166S V1 SubSystem
Страница 10: ...User s Manual C166S V1 SubSystem User s Manual I 6 V 1 6 2001 08...
Страница 16: ...User s Manual C166S V1 SubSystem Introduction User s Manual 1 6 V 1 6 2001 08...
Страница 126: ...User s Manual C166S V1 SubSystem Central Processing Unit User s Manual 3 96 V 1 6 2001 08...
Страница 178: ...User s Manual C166S V1 SubSystem Memory Organization User s Manual 4 52 V 1 6 2001 08...
Страница 206: ...User s Manual C166S V1 SubSystem Instruction Set User s Manual 5 28 V 1 6 2001 08...
Страница 306: ...User s Manual C166S V1 SubSystem Detailed Instruction Set User s Manual 6 100 V 1 6 2001 08...
Страница 362: ...User s Manual C166S V1 SubSystem The External Bus Interface User s Manual 8 40 V 1 6 2001 08...
Страница 452: ...User s Manual C166S V1 SubSystem General Purpose Timer Unit User s Manual 12 44 V 1 6 2001 08...
Страница 454: ...User s Manual C166S V1 SubSystem Instruction Index User s Manual 13 2 V 1 6 2001 08...
Страница 459: ......