EasyManuals Logo

Texas Instruments TMS320 DSP User Manual

Texas Instruments TMS320 DSP
88 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #46 background imageLoading...
Page #46 background image
www.ti.com
5.1 CPU Register Types
Read−only Scratch Preserve
Init
Global
Local
Read−write
CPU Register Types
DSP algorithms are often written in assembly language and, as a result, they will take full advantage of
the instruction set. Unfortunately for the system integrator, this often means that multiple algorithms
cannot be integrated into a single system because of incompatible assumptions about the use of specific
features of the DSP (e.g., use of overflow mode, use of dedicated registers, etc.). This chapter covers
those guidelines that are specific to a particular DSP instruction set. These guidelines are designed to
maximize the flexibility of the algorithm implementers, while at the same time ensure that multiple
algorithms can be integrated into a single system.
For the purpose of the guidelines below, we define several categories of register types.
Scratch register - these registers can be freely used by an algorithm, cannot be assumed to contain
any particular value upon entry to an algorithm function, and can be left in any state after exiting a
function.
Preserve registers - these registers may be used by an algorithm, cannot be assumed to contain any
particular value upon entry to an algorithm function, but must be restored upon exit from an algorithm
to the value it had at entry.
Initialized register - these registers may be used by an algorithm, contain a specified initial value upon
entry to an algorithm function (as stated next to the register), and must be restored upon exit from the
algorithm.
Read-only register - these registers may be read but must not be modified by an algorithm.
In addition to the categories defined above, all registers can be further classified as being either local or
global. Local registers are thread specific; i.e., every thread maintains its own copy of this register and it is
active whenever this thread is running. Global registers, on the other hand, are shared by all threads in
the system; if one thread changes a global register then all threads will see the change.
Figure 5-1 below depicts the relationship among the various register types defined above.
Figure 5-1. Register Types
In preemptive systems, global registers can change at any point that preemption may occur. Local
registers, on the other hand, can only be modified by the current executing thread. Thus, application code
that depends exclusively on local registers will be unaffected by other preempting threads. Conversely,
application code that depends on global registers must prevent preemption around those sections that
have this dependence.
Guideline 10
Algorithms should avoid the use of global registers.
DSP-Specific Guidelines46 SPRU352G June 2005 Revised February 2007
Submit Documentation Feedback

Table of Contents

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the Texas Instruments TMS320 DSP and is the answer not in the manual?

Texas Instruments TMS320 DSP Specifications

General IconGeneral
BrandTexas Instruments
ModelTMS320 DSP
CategoryComputer Hardware
LanguageEnglish

Related product manuals