designfeature DSP assembly language - EDN
designfeature DSP assembly language - EDN
designfeature DSP assembly language - EDN
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>designfeature</strong> <strong>DSP</strong> <strong>assembly</strong> <strong>language</strong><br />
cle-accurate, instructionlevel<br />
simulator lets you simulate<br />
your application in real<br />
time. Also, the Visual<strong>DSP</strong><br />
tool features a well-defined<br />
application programming<br />
interface (API). Third-party<br />
products, runtime operating<br />
systems, emulators, HLL<br />
compilers, and multiprocessor<br />
hardware can interface<br />
seamlessly with Visual<strong>DSP</strong><br />
and thereby simplify tool integration.Visual<strong>DSP</strong><br />
follows<br />
the COM API format. Two<br />
API tools, Target Wizard and<br />
API Tester, are also available.<br />
You can find links to third<br />
parties that support Analog’s<br />
<strong>DSP</strong> product lines at www.<br />
analog.com/support/3rd_<br />
party/third_party.html.<br />
Texas Instruments TMS-<br />
320C6x <strong>DSP</strong> features two<br />
datapaths—each with 16 32-bit registers—shared<br />
by eight functional units.<br />
The C6x is a very-long-instructionword<br />
(VLIW) processor; a composite<br />
instruction (line), formed by concatenating<br />
n short instructions, controls its<br />
functional units. In the C6x, the short<br />
instructions are 32 bits wide, and the<br />
line consists of a maximum of eight<br />
32-bit instructions. Therefore,<br />
the C6x packs instructions to avoid inefficient<br />
use of program memory.<br />
FOR MORE INFORMATION...<br />
Instruction packing may result in<br />
alignment restrictions between lines and<br />
the physical-memory organization. In<br />
the C6x, the program is organized as<br />
eight instruction lines, or fetch packets.<br />
You may divide each fetch packet into<br />
groups of instructions or “execute packets,”which<br />
are issued in parallel. The C6x<br />
is restricted because the execute packet<br />
must be within an eight-word boundary.<br />
Every fetch packet must start with an execute<br />
packet. This stipulation implies that<br />
For information on products such as those discussed in this article, circle the appropriate numbers<br />
on the Information Retrieval Service card or use <strong>EDN</strong>’s InfoAccess service. When you contact<br />
any of the following manufacturers directly, please let them know you read about their products<br />
in <strong>EDN</strong>.<br />
Analog Devices<br />
Norwood, MA<br />
1-781-329-4700<br />
fax 1-781-326-8703<br />
www.analog.com/dsp/<br />
Circle No. 301<br />
<strong>DSP</strong>ecialists GmbH<br />
Berlin, Germany<br />
+49 30 467 805 60<br />
fax +49 30 467 805 99<br />
www.<strong>DSP</strong>ecialists.de<br />
Circle No. 302<br />
Texas Instruments<br />
Dallas, TX<br />
1-972-644-5580<br />
fax 1-972-480-7800<br />
www.ti.com<br />
Circle No. 303<br />
ZSP Corp<br />
Santa Clara, CA<br />
1-408-450-6207<br />
fax 1-408-986-1687<br />
www.zsp.com<br />
Circle No. 304<br />
The Code Composer IDE features the Assembly Optimizer tool. Using the<br />
Assembly Optimizer, you can write conventional-looking C6000 <strong>assembly</strong><br />
code without bothering with parallel instructions, instruction latencies, or<br />
register usage. The Assembly Optimizer then schedules the instructions,<br />
taking into account the C6000’s parallel architecture.<br />
SUPER CIRCLE NUMBER<br />
For more information on the<br />
products available from all of<br />
the vendors listed in this box,<br />
circle one number on the reader<br />
service card. Circle No. 305<br />
you must pad fetch packets<br />
that do not end with an execute<br />
packet with no-op-<br />
Figure 3<br />
eration instructions. Furthermore,<br />
the need to track<br />
various functional units in a<br />
VLIW architecture can rapidly<br />
overwhelm a <strong>DSP</strong> programmer.<br />
To help application developers,<br />
TI has introduced the<br />
concept of “linear” <strong>assembly</strong><br />
<strong>language</strong>. Linear <strong>assembly</strong> <strong>language</strong><br />
allows you to write <strong>assembly</strong><br />
<strong>language</strong> without regard<br />
to registers and pipeline<br />
behavior, significantly easing<br />
the task of writing low-level<br />
code. An Assembly Optimizer,<br />
which performs many compilerlike<br />
optimizations, processes<br />
linear <strong>assembly</strong> by assigning<br />
registers and scheduling<br />
the instructions, effectively<br />
handling all the “hard” problems<br />
associated with writing code for a<br />
pipelined processor (Figure 3).<br />
TI claims that the C6000 compiler offers<br />
an average improvement in execution<br />
speed; it is three times faster than<br />
state-of-the-art fixed-point <strong>DSP</strong> C compilers.<br />
The C compiler accepts ANSI C<br />
source code and produces efficient C6000<br />
<strong>assembly</strong>-<strong>language</strong> source code, performing<br />
a variety of optimizations to improve<br />
the efficiency of the compiled code.<br />
The compiler incorporates four levels of<br />
state-of-the-art generic and target-specific<br />
optimizations. The level of optimizations<br />
is selectable.<br />
Optimizations include those features<br />
specific to the TMS320C6201 processor,<br />
such as software pipelining, if conversion/predicated<br />
execution, memory-address<br />
cloning, memory-address-dependence<br />
elimination, branch optimizations/control-flow<br />
simplification, alias<br />
disambiguation, copy propagation, common<br />
subexpression elimination, redundant<br />
assignment elimination, loop-induction-variable<br />
optimizations/strength<br />
reduction, loop rotation, loop invariant<br />
code motion, inline expansion of function<br />
calls, register tracking/targeting, and<br />
cost-based register allocation. For more<br />
information, visit TI’s <strong>DSP</strong> third-party<br />
Web site (www.ti.com/sc/docs/dsps/<br />
develop/3party.htm).<br />
Even with all these development tools,<br />
108 edn | January 21, 1999 www.ednmag.com