This preview shows page 1. Sign up to view the full content.
Unformatted text preview: ffers a much more straightforward programming model than does a system that combines an ARM core with a conventional signal processing core. However, some care is still required to synchronize the ARM code with the Piccolo code, and in an intensive signal processing application the ARM core is kept quite busy with the operand and result transfers, and is therefore unable to carry out extensive control functions at the same time. An even more straightforward programming model is offered by the ARM architecture v5TE instruction set extensions. Signal processing support 241 Figure 8.20 Piccolo organization. V5TE signal processing instructions The signal processing instruction set extension defined by ARM architecture v5TE, first implemented on the ARM9E-S synthesizable core, represents a very different approach to the problem from that used in the design of Piccolo. All that is used here is a carefully chosen addition to the native ARM instruction set to provide much better intrinsic support for the data types used in signal processing applications. The ARM programmers' model is extended in architecture v5TE as shown in Figure 8.21 on page 242. The 'Q' flag is added in bit 27 of the CPSR, and all SPSRs also have a Q flag. Q is a 'sticky' overflow flag which may be set by certain v5TE instructions, and then reset by a suitable MSR instruction (see Section 5.14 on page 133). The term 'sticky' describes the fact that once set, the Q flag remains set until explicitly reset by an MSR instruction, so a series of instructions may be 242 Architectural Support for System Development executed and the Q flag inspected only once (using an MRS instruction) at the end to see if an overflow occurred at any point in the sequence. Figure 8.21 ARM v5TE PSR format. The signal processing instructions fall into two groups: multiplication, and addition/subtraction. The addition/subtraction instructions use saturating arithmetic, which means that when the result overflows the range that can be represented in the data type the nearest value that can be rep...
View Full Document
- Spring '09