Contents
xi
Contents
7
Interrupts
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Describes interrupts from a software programming point of view.
7.1
Overview of Interrupts
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2
Single Assignment vs. Multiple Assignment
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3
Interruptible Loops
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4
Interruptible Code Generation
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.1
Level 0 - Specified Code is Guaranteed to Not Be Interrupted
. . . . . . . . . . . . .
7.4.2
Level 1 – Specified Code Interruptible at All Times
. . . . . . . . . . . . . . . . . . . . . . .
7.4.3
Level 2 – Specified Code Interruptible Within Threshold Cycles
. . . . . . . . . . . .
7.4.4
Getting the Most Performance Out of Interruptible Code
. . . . . . . . . . . . . . . . . .
7.5
Interrupt Subroutines
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.1
ISR with the C/C++ Compiler
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.2
ISR with Hand-Coded Assembly
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5.3
Nested Interrupts
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
’C64x Programming Considerations
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Describes programming considerations for the ’C64x.
8.1
Overview of ’C64x Architectural Enhancements
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1.1
Improved Scheduling Flexibility
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1.2
Greater Memory Bandwidth
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1.3
Support for Packed Data Types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1.4
Non-aligned Memory Accesses
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1.5
Additional Specialized Instructions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2
Packed-Data Processing on the ’C64x
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.1
Introduction to Packed Data Processing Techniques
. . . . . . . . . . . . . . . . . . . . .
8.2.2
Packed Data Types
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.3
Storing Multiple Elements in a Single Register
. . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.4
Packing and Unpacking Data
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.5
Optimizing for Packed Data Processing
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.6
Vectorizing With Packed Data Processing
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.7
Combining Multiple Operations in a Single Instruction
. . . . . . . . . . . . . . . . . . .
8.2.8
Non-Aligned Memory Accesses
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2.9
Performing Conditional Operations with Packed Data
. . . . . . . . . . . . . . . . . . .
8.3
Linear Assembly Considerations
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.1
Using BDEC and BPOS in Linear Assembly
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.3.2
Avoiding Cross Path Stalls
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
FeedbackSolutions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1
Loop Disqualification Messages
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.2
Pipeline Failure Messages
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.3
Investigative Feedback
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .