ARM.SoC.Architecture

A floating point arm coprocessor has also been

Info iconThis preview shows page 1. Sign up to view the full content.

View Full Document Right Arrow Icon
This is the end of the preview. Sign up to access the rest of the document.

Unformatted text preview: the number of words transferred for each register is coprocessor dependent. The ARM generates the memory address, but the coprocessor controls the number of words transferred. A coprocessor may perform some type conversion as part of the transfer (for instance the floating-point coprocessor converts all loaded values into its 80-bit internal representation). In addition to the above, it is sometimes useful to move values between ARM and coprocessor registers. Again taking the floating-point coprocessor as an illustration, a 'FIX' instruction takes a floating-point value from a coprocessor register, converts it to an integer, and moves the integer into an ARM register. A floating-point comparison produces a result which is often needed to affect control flow, so the result of the compare must be moved to the ARM CPSR. Coprocessor data operations Coprocessor data transfers Coprocessor register transfers Coprocessor data operations 137 Taken together these instructions support a generalized extension of the ARM instruction set to support application-specific data types and functions. 5.17 Coprocessor data operations These instructions are used to control internal operations on data in coprocessor registers. The standard format follows the 3-address form of ARM's integer data processing instructions, but other interpretations of all the coprocessor fields are possible. Binary encoding 31 Figure 5.15 Coprocessor data processing instruction binary encoding. Description The ARM offers this instruction to any coprocessors that may be present. If it is accepted by one of them the ARM proceeds to the next instruction; if it is not accepted the ARM takes the undefined instruction trap (which may be used to implement a software emulation of the missing coprocessor). Normally the coprocessor identified with the coprocessor number CP# will accept the instruction and perform the operation denned by the Copl and Cop2 fields, using CRn and CRm as the source operands and placing the result in CRd. CDP{<cond>} <CP#>, <Copl>, CRd, CRn, CRm{, <Cop2>} Assembler format Examples Note...
View Full Document

This document was uploaded on 10/30/2011 for the course CSE 378 380 at SUNY Buffalo.

Ask a homework question - tutors are online