TC1796
System Units (Vol. 1 of 2)
Peripheral Control Processor (PCP)
User’s Manual 11-3 V2.0, 2007-07
PCP, V2.0
11.2.1 PCP Processor
The PCP Processor is the main engine of the PCP. It contains an instruction pipeline, a
set of GPRs, an arithmetic/logic unit, as well as control and status registers and logic. Its
instruction set is optimized especially for the tasks it has to perform. Table 11-1 provides
an overview of the PCP instruction set.
The PCP Processor Core receives service requests from peripherals or other modules
in the system via its PCP Interrupt Control Unit (PICU), and executes a channel program
(see Page 11-6) selected via the priority number of each service request. It first restores
the channel program’s context from the PRAM and then starts to execute the channel
program’s instructions stored in the Code Memory (CMEM). Upon an exit condition, it
terminates the channel program and saves its context into PRAM. It is then ready to
receive the next service request.
The PCP Processor Core is capable of suspending execution of a channel program on
receipt of a service request with a higher priority than the channel currently being
executed. The Core will automatically resume processing of the original channel
program once the higher-priority request (or requests) has been processed. A channel
that has been suspended in this way is termed a “Suspended Channel”.
The PCP is fully interrupt-driven, meaning it is only activated through service requests;
there is no main program running in the background as with a conventional processor.
Table 11-1 PCP Instruction Set Overview
Instruction Group Description
DMA Primitives Efficient DMA channel implementation
Load/Store Transfer data between PRAM or FPI memory and the GPRs,
as well as move or exchange values between registers
Arithmetic Add, subtract, compare and complement
Divide/Multiply Divide and multiply
Logical And, Or, Exclusive Or, Negate
Shift Shift right or left, rotate right or left, prioritize
Bit Manipulation Set, clear, insert, and test bits
Flow Control Jump conditionally, jump long, exit
Miscellaneous No operation, Debug