This preview shows page 1. Sign up to view the full content.
Unformatted text preview: 166 Architectural Support for High-Level Languages is returned to the N, Z, C and V flags in the ARM CPSR where they can directly control the execution of conditional instructions: N indicates 'less than'. Z indicates equality. C and V indicate more complex conditions, including 'unordered' comparison results which can arise when an operand is a 'NaN' (not a number). Floating-point instruction frequencies The design of the FPAIO is guided by the typical frequencies of the various floatingpoint instructions. These were measured running compiled programs using the floating-point emulator software and are summarized in Table 6.1. The statistics are dominated by the number of load and store operations that take place. As a result, the FPAIO has been designed to allow these to operate concurrently with internal arithmetic operations.
Table 6.1 Floating-point instruction frequencies. FPA10 organization The internal organization of the FPAIO is illustrated in Figure 6.11 on page 167. Its external interface is to the ARM data bus and the coprocessor handshake signals, so it has a modest pin-count requirement. The major components are: The coprocessor pipeline follower (see Section 4.5 on page 101). The load/store unit that carries out format conversion on floating-point data types as they are loaded from and stored to memory. The register bank which stores eight 80-bit extended precision floating-point operands. The arithmetic unit which incorporates an adder, a multiplier and a divider, together with rounding and normalizing hardware. The ARM floating-point architecture 167 Figure 6.11 FPA10 internal organization. The load/store unit operates concurrently with the arithmetic unit, enabling new operands to be loaded from memory while previously loaded operands are being processed. Hardware interlocks protect against data hazards. FPA10 pipeline The FPA10 arithmetic unit operates in four pipeline stages: 1. Prepare: align operands. 2. Calculate: add, multiply or divide. 3. Align: normalize the result. 4. Round: apply appropr...
View Full Document
- Spring '09