6.1.2. External coprocessor clocking

The coprocessor data processing instruction (CDP) is used for coprocessor instructions that do not operate on values in ARM registers or in main memory. For example, a floating-point multiply instruction for a floating-point accelerator processor.

To enable coprocessors to continue execution of CDP instructions whilst the ARM9E-S core pipeline is stalled (for instance while waiting for an AHB transfer to complete), the coprocessor receives the free running system clock CLK, and a clock enable signal CPCLKEN. If CPCLKEN is low around the rising edge of CLK then the ARM9E-S core pipeline is stalled and the coprocessor pipeline follower should not advance.

This prevents any new instructions entering execute within the coprocessor but allows a CDP instruction in execute to continue execution. The coprocessor will only be stalled when the current instruction leaves execute and new instructions are required from the ARM966E-S interface.This goes some way towards decoupling the external coprocessor from the ARM9E-S memory interface.

There are three classes of coprocessor instructions:

The following sections give examples of how a coprocessor should execute these instruction classes.

Copyright © 1999 ARM Limited. All rights reserved.ARM DDI 0164A
Non-Confidential