Motorola’s High-Performance DSP TechnologyAPR20/DDSP56300/DSP56600ApplicationOptimizationfor the Digital SignalProcessors
IntroductionEnhancements over the DSP56000 MOTOROLA Optimizing DSP56300/DSP56600 Applications 1-3 The first members of DSP chips that use the DSP566
MOTOROLA Optimizing DSP56300/DSP56600 Applications B-1This section describes way to optimize the application for minimal power consumption.Appendix B
B-2 Optimizing DSP56300/DSP56600 Applications MOTOROLADebug and Test SupportJTAG Port Features• Trace one (single stepping) or up to 256 instruction
Debug and Test SupportAddress Tracing MOTOROLA Optimizing DSP56300/DSP56600 Applications B-3• Force test data onto the outputs of a DSP or DSPs, while
B-4 Optimizing DSP56300/DSP56600 Applications MOTOROLADebug and Test SupportAddress Tracing
MOTOROLA Optimizing DSP56300/DSP56600 Applications C-1This section describes way to optimize the application for minimal power consumptionAppendix CU
C-2 Optimizing DSP56300/DSP56600 Applications MOTOROLAUsing the ProfilerC.3 THE PROFILING REPORTThe profiling report is provided in two formats: ASC
Using the Profiler MOTOROLA Optimizing DSP56300/DSP56600 Applications C-3C.3.2 Symbol ReportThe symbol report section provides a profile of the access
C-4 Optimizing DSP56300/DSP56600 Applications MOTOROLAUsing the ProfilerFor move instructions, statistics are provided to describe the level of para
Using the Profiler MOTOROLA Optimizing DSP56300/DSP56600 Applications C-5C.3.4 Code Coverage ReportThe code coverage report juxtaposes the assembly so
C-6 Optimizing DSP56300/DSP56600 Applications MOTOROLAUsing the ProfilerC.3.5 Basic Subroutine ReportThis section of the profile report lists the su
1-4 Optimizing DSP56300/DSP56600 Applications MOTOROLA IntroductionEnhancements over the DSP56000 MAC (uu) Unsigned MAC √√ DMAC Double-Precision MA
Using the Profiler MOTOROLA Optimizing DSP56300/DSP56600 Applications C-7C.3.7 Subroutine Dependency ReportThis section of the profile report presents
C-8 Optimizing DSP56300/DSP56600 Applications MOTOROLAUsing the ProfilerC.3.8 Subroutine Call ReportThis section exists only in the Postscript profi
Motorola reserves the right to make changes without further notice to any products herein. Motorola makes no warranty, representation or guarantee re
IntroductionEnhancements over the DSP56000 MOTOROLA Optimizing DSP56300/DSP56600 Applications 1-5 1.3.2 Architectural Enhancements The programmer’s
1-6 Optimizing DSP56300/DSP56600 Applications MOTOROLA IntroductionApplication Note Structure 1.4 APPLICATION NOTE STRUCTURE This document has thre
IntroductionApplication Note Structure MOTOROLA Optimizing DSP56300/DSP56600 Applications 1-7 • Section 4—Using the DMA– How to reduce core MIPS by
1-8 Optimizing DSP56300/DSP56600 Applications MOTOROLA IntroductionApplication Note Structure – Cycle count of an instruction– Addressing modes– Wo
MOTOROLA Optimizing DSP56300/DSP56600 Applications 2-1 This section discusses important features and new additions to the DSP56000 core Data Arithme
2-2 Optimizing DSP56300/DSP56600 Applications MOTOROLAData OperationsUsing the Dual Data PathsThere are two ways to generate the operand addresses f
Data OperationsUsing the Dual Data Paths MOTOROLA Optimizing DSP56300/DSP56600 Applications 2-3Arithmetic Shift Accumulator Right ASRSingle bit, non-
2-4 Optimizing DSP56300/DSP56600 Applications MOTOROLAData OperationsUsing the Dual Data PathsParallel moves are also restricted in their use of reg
MOTOROLA Optimizing DSP56300/DSP56600 Applications iii TABLE OF CONTENTS SECTION 1 INTRODUCTION . . . . . . . . . . . . . . . 1-1 1.1 DSP56300 CORE
Data OperationsUsing the Dual Data Paths MOTOROLA Optimizing DSP56300/DSP56600 Applications 2-5Keeping those restrictions in mind, writing a critical
2-6 Optimizing DSP56300/DSP56600 Applications MOTOROLAData Operations16-bit Arithmetic Mode (DSP56300 Only)2.2 16-BIT ARITHMETIC MODE (DSP56300 ONLY
Data OperationsThe Max instruction MOTOROLA Optimizing DSP56300/DSP56600 Applications 2-72.3 THE MAX INSTRUCTIONMAX is a new instruction in the DSP563
2-8 Optimizing DSP56300/DSP56600 Applications MOTOROLAData OperationsUsing the barrel shifter2.4 USING THE BARREL SHIFTERThe DSP56300/DSP56600 inclu
Data OperationsUsing the barrel shifter MOTOROLA Optimizing DSP56300/DSP56600 Applications 2-9will normalize A, so that in the DSP56300 it’s leading o
2-10 Optimizing DSP56300/DSP56600 Applications MOTOROLAData OperationsBIt manipulation instructionsmove #base-1,r4 ; 1move a1,x1 ; 1move x:(r0)+,a ;
Data OperationsDouble precision arithmetic MOTOROLA Optimizing DSP56300/DSP56600 Applications 2-11is specified by its width (in bits) and its starting
2-12 Optimizing DSP56300/DSP56600 Applications MOTOROLAData OperationsDouble precision arithmeticThe (U) means an unsigned operand, and the (S) a si
Data OperationsUsing Less Straight-Forward Instructions MOTOROLA Optimizing DSP56300/DSP56600 Applications 2-13The features that help in this case are
2-14 Optimizing DSP56300/DSP56600 Applications MOTOROLAData OperationsUsing Less Straight-Forward Instructions;determine partial 6th termmpy -x1,y0,
iv Optimizing DSP56300/DSP56600 Applications MOTOROLA SECTION 4 USING THE DMA . . . . . . . . . . . . . . .4-1 4.1 INTRODUCTION . . . . . . . . . .
MOTOROLA Optimizing DSP56300/DSP56600 Applications 3-1This section discusses important program control features and new additions.Section 3PROGRAM CO
3-2 Optimizing DSP56300/DSP56600 Applications MOTOROLAProgram ControlHardware LoopsA common programming technique is known as “loop unrolling”, in w
Program ControlThe Hardware Stack MOTOROLA Optimizing DSP56300/DSP56600 Applications 3-3Note: The BRKcc instruction has the same functionality as the
3-4 Optimizing DSP56300/DSP56600 Applications MOTOROLAProgram ControlThe Hardware StackThe current stack location is pointed by the SP register. A s
Program ControlThe Hardware Stack MOTOROLA Optimizing DSP56300/DSP56600 Applications 3-5The next example shows loop and subroutine nesting. Figure 3-1
3-6 Optimizing DSP56300/DSP56600 Applications MOTOROLAProgram ControlThe Hardware Stack;example of loop and subroutine nesting.;interrupt definition
Program ControlUsing the Stack Extension MOTOROLA Optimizing DSP56300/DSP56600 Applications 3-73.3 USING THE STACK EXTENSIONThe hardware stack could b
3-8 Optimizing DSP56300/DSP56600 Applications MOTOROLAProgram ControlUsing the Stack Extensionfollowing formula, which takes into account that each
Program ControlUsing the Stack Extension MOTOROLA Optimizing DSP56300/DSP56600 Applications 3-9Table 3-3. The use of SP bits for stack status when the
3-10 Optimizing DSP56300/DSP56600 Applications MOTOROLAProgram ControlTask Switching with the Stack Extension3.4 TASK SWITCHING WITH THE STACK EXTEN
MOTOROLA Optimizing DSP56300/DSP56600 Applications v 6.3 STACK EXTENSION DELAYS . . . . . . . . . . . 6-86.3.1 Stack Extension Full/Empty Cases .
Program ControlConditional DALU Instructions MOTOROLA Optimizing DSP56300/DSP56600 Applications 3-115. In order to activate the new task T2, the Opera
3-12 Optimizing DSP56300/DSP56600 Applications MOTOROLAProgram ControlConditional DALU Instructionsspecify that the instruction will update the CCR
Program ControlPC Relative Instructions MOTOROLA Optimizing DSP56300/DSP56600 Applications 3-13add b,x1bra _CONT_TRUEadd b,x0_CONT...Using condition
3-14 Optimizing DSP56300/DSP56600 Applications MOTOROLAProgram ControlPC Relative InstructionsIn absolute addressing, the argument is the numerical
Program ControlPC Relative Instructions MOTOROLA Optimizing DSP56300/DSP56600 Applications 3-15jump to subroutinedestinationJSR address < 4096+– +B
3-16 Optimizing DSP56300/DSP56600 Applications MOTOROLAProgram ControlPC Relative InstructionsThere are two main advantages for using PC relative ad
Program ControlUsing Fast Interrupts MOTOROLA Optimizing DSP56300/DSP56600 Applications 3-17instructs the assembler to try and compact the argument in
3-18 Optimizing DSP56300/DSP56600 Applications MOTOROLAProgram ControlUsing Fast Interruptsready to transmit another word and expects the core to mo
Program ControlUsing Fast Interrupts MOTOROLA Optimizing DSP56300/DSP56600 Applications 3-19org p:I_SI0RD ;essi0 receive data interruptmovep x:<&
3-20 Optimizing DSP56300/DSP56600 Applications MOTOROLAProgram ControlUsing Fast Interrupts
vi Optimizing DSP56300/DSP56600 Applications MOTOROLA 7.4.1 Dual Data Spaces . . . . . . . . . . . . . . . . . . . .7-77.4.2 Using the TFR instructi
MOTOROLA Optimizing DSP56300/DSP56600 Applications 4-1This section describes the main DMA features and how they can be used to enhance performance.Se
4-2 Optimizing DSP56300/DSP56600 Applications MOTOROLAUsing the DMAConserving Core MIPS by Working In ParallelThe core may contend with the DMA in o
Using the DMAConserving Core MIPS by Working In Parallel MOTOROLA Optimizing DSP56300/DSP56600 Applications 4-3move #0,m1 ;modulo 1. each increment, R
4-4 Optimizing DSP56300/DSP56600 Applications MOTOROLAUsing the DMAUsing Slow, Low-Cost MemoriesAnother possible application of this kind is in a mu
Using the DMAUsing Slow, Low-Cost Memories MOTOROLA Optimizing DSP56300/DSP56600 Applications 4-5memory locations. In a read access, the 3 bytes are c
4-6 Optimizing DSP56300/DSP56600 Applications MOTOROLAUsing the DMAServicing a Peripheral;DAM[5:3]101 destination address post-increment ;DAM[2:0]00
Using the DMAServicing a Peripheral MOTOROLA Optimizing DSP56300/DSP56600 Applications 4-7In the following example, the DMA receives data from the ESS
4-8 Optimizing DSP56300/DSP56600 Applications MOTOROLAUsing the DMAServicing a PeripheralNote: Before servicing the data processing interrupt after
Using the DMAServicing a Peripheral MOTOROLA Optimizing DSP56300/DSP56600 Applications 4-9Mx), and the MIPS required to process a fast interrupt for e
4-10 Optimizing DSP56300/DSP56600 Applications MOTOROLAUsing the DMAServicing a PeripheralThe following assembler code is needed for this configurat
MOTOROLA Optimizing DSP56300/DSP56600 Applications vii LIST OF FIGURES Figure 2-1 The Fast Normalization Operation for the DSP56300 . . . . . . . .
Using the DMAServicing a Peripheral MOTOROLA Optimizing DSP56300/DSP56600 Applications 4-11movep #0,x:M_DOR2 ;offset register 2, ;added every word;(DC
4-12 Optimizing DSP56300/DSP56600 Applications MOTOROLAUsing the DMAData Transfer Optimization Hints4.5 DATA TRANSFER OPTIMIZATION HINTSSome points
MOTOROLA Optimizing DSP56300/DSP56600 Applications 5-1This section discusses the instruction cache and some other memory features.Section 5INSTRUCTIO
5-2 Optimizing DSP56300/DSP56600 Applications MOTOROLAInstruction Cache and Memory FeaturesThe Instruction CacheActivating the cache requires only s
Instruction Cache and Memory FeaturesThe Instruction Cache MOTOROLA Optimizing DSP56300/DSP56600 Applications 5-3preceding it. The DO instruction, bei
5-4 Optimizing DSP56300/DSP56600 Applications MOTOROLAInstruction Cache and Memory FeaturesThe Instruction Cacheindependent addresses. The instructi
Instruction Cache and Memory FeaturesThe Instruction Cache MOTOROLA Optimizing DSP56300/DSP56600 Applications 5-5and written over. Locking a sector is
5-6 Optimizing DSP56300/DSP56600 Applications MOTOROLAInstruction Cache and Memory FeaturesThe Instruction CacheNotes:1. Disabling the cache control
Instruction Cache and Memory FeaturesThe Instruction Cache MOTOROLA Optimizing DSP56300/DSP56600 Applications 5-7controlled by the user. In a program
5-8 Optimizing DSP56300/DSP56600 Applications MOTOROLAInstruction Cache and Memory FeaturesThe Instruction CacheDuring non-burst pipeline operation,
viii Optimizing DSP56300/DSP56600 Applications MOTOROLA LIST OF TABLES Table 1-1 New Instructions in DSP56300 and DSP56600 . . . . . . . . . . . .
Instruction Cache and Memory FeaturesMemory Switch MOTOROLA Optimizing DSP56300/DSP56600 Applications 5-9When the same code is run in Burst mode, ever
5-10 Optimizing DSP56300/DSP56600 Applications MOTOROLAInstruction Cache and Memory FeaturesMemory SwitchFigure 5-1 DSP56302 Memory MapsInternalMem
Instruction Cache and Memory FeaturesUsing the Bootstrap ROM MOTOROLA Optimizing DSP56300/DSP56600 Applications 5-11Possible advantages for using the
5-12 Optimizing DSP56300/DSP56600 Applications MOTOROLAInstruction Cache and Memory FeaturesUsing the Bootstrap ROMmemory port, etc. The boot progra
MOTOROLA Optimizing DSP56300/DSP56600 Applications 6-1This section describes various Pipeline Interlocks and suggests ways to avoid them.Section 6PIP
6-2 Optimizing DSP56300/DSP56600 Applications MOTOROLAPipeline InterlocksData ALU Pipeline Interlocks6.1.1 What are the Data ALU Pipeline Interlocks
Pipeline InterlocksData ALU Pipeline Interlocks MOTOROLA Optimizing DSP56300/DSP56600 Applications 6-3and Status Interlock may be avoided by adding so
6-4 Optimizing DSP56300/DSP56600 Applications MOTOROLAPipeline InterlocksData ALU Pipeline Interlocks;A=next a,PUT d’move x:(r4)+,AA,y:(r1) ;PUT b’,
Pipeline InterlocksData ALU Pipeline Interlocks MOTOROLA Optimizing DSP56300/DSP56600 Applications 6-5The read operations in the tenth and eleventh in
6-6 Optimizing DSP56300/DSP56600 Applications MOTOROLAPipeline InterlocksData ALU Pipeline Interlocks;previous datamove x:(r0)+,bb,y:(r4)+ ;write de
MOTOROLA Optimizing DSP56300/DSP56600 Applications 1-1 This application note describes how to optimize an application for the DSP56300 and DSP56600
Pipeline InterlocksAddress Generation Pipeline Interlocks MOTOROLA Optimizing DSP56300/DSP56600 Applications 6-76.2 ADDRESS GENERATION PIPELINE INTERL
6-8 Optimizing DSP56300/DSP56600 Applications MOTOROLAPipeline InterlocksStack Extension Delaysinstruction and no interlock cycles will be added to
Pipeline InterlocksProgram Flow-Control Pipeline Interlocks MOTOROLA Optimizing DSP56300/DSP56600 Applications 6-9hardware stack so that it will not b
6-10 Optimizing DSP56300/DSP56600 Applications MOTOROLAPipeline InterlocksProgram Flow-Control Pipeline Interlocks6.4.1 What are the Program Flow-Co
Pipeline InterlocksProgram Flow-Control Pipeline Interlocks MOTOROLA Optimizing DSP56300/DSP56600 Applications 6-116.4.1.3 JMP to Last Addresses of a
6-12 Optimizing DSP56300/DSP56600 Applications MOTOROLAPipeline InterlocksProgram Flow-Control Pipeline Interlockscmp B,x0 ;compare to thresholdblt
MOTOROLA Optimizing DSP56300/DSP56600 Applications 7-1This section describes ways to optimize the size and speed of the code by efficiently using the
7-2 Optimizing DSP56300/DSP56600 Applications MOTOROLACompact Opcode UseCycle Count of an Instructionmove r4,n4move r0,n0do #N,_loop...move x:(r0)+,
Compact Opcode UseCycle Count of an Instruction MOTOROLA Optimizing DSP56300/DSP56600 Applications 7-3In the second example, the Tcc instruction is us
7-4 Optimizing DSP56300/DSP56600 Applications MOTOROLACompact Opcode UseCycle Count of an InstructionExample:tst ablt rare_errorfrequent_code...rare
1-2 Optimizing DSP56300/DSP56600 Applications MOTOROLA IntroductionDSP56600 Core Family • Position Independent Code (PIC) instruction-set support•
Compact Opcode UseAddressing Modes MOTOROLA Optimizing DSP56300/DSP56600 Applications 7-5By choosing the conditions more carefully, the code can be op
7-6 Optimizing DSP56300/DSP56600 Applications MOTOROLACompact Opcode UseAddressing Modes7.2.2 Short Addressing ModeThe lower portion (first 64 locat
Compact Opcode UsePeripheral Addressing MOTOROLA Optimizing DSP56300/DSP56600 Applications 7-77.2.5 Register AddressingThe register addressing can als
7-8 Optimizing DSP56300/DSP56600 Applications MOTOROLACompact Opcode UseSpecial Instructions7.4 SPECIAL INSTRUCTIONS7.4.1 Dual Data SpacesThe Harvar
Compact Opcode UseSpecial Instructions MOTOROLA Optimizing DSP56300/DSP56600 Applications 7-97.4.3 Clearing RegistersIt is often needed to clear a cer
7-10 Optimizing DSP56300/DSP56600 Applications MOTOROLACompact Opcode UseSpecial Instructions
MOTOROLA Optimizing DSP56300/DSP56600 Applications A-1This section describes way to optimize the application for minimal power consumption.Appendix A
A-2 Optimizing DSP56300/DSP56600 Applications MOTOROLASaving PowerLow Power Modesperipheral, an interrupt request is generated to take the core out
Saving PowerDisabling Functional Blocks MOTOROLA Optimizing DSP56300/DSP56600 Applications A-3A.2 DISABLING FUNCTIONAL BLOCKSThe are few functional bl
A-4 Optimizing DSP56300/DSP56600 Applications MOTOROLASaving PowerDisabling Functional Blocks
Commentaires sur ces manuels