Texas Instruments and its subsidiaries (TI) reserve the right to make changes to their products
or to discontinue any product or service without notice, and advise customers to obtain the latest
version of relevant information to verify , before placing orders, that information being relied on
is current and complete. All products are sold subject to the terms and conditions of sale supplied
at the time of order acknowledgement, including those pertaining to warranty, patent
infringement, and limitation of liability.
TI warrants performance of its semiconductor products to the specifications applicable at the
time of sale in accordance with TI’s standard warranty. Testing and other quality control
techniques are utilized to the extent TI deems necessary to support this warranty . Specific testing
of all parameters of each device is not necessarily performed, except those mandated by
government requirements.
CERTAIN APPLICATIONS USING SEMICONDUCTOR PRODUCTS MAY INVOLVE
POTENTIAL RISKS OF DEATH, PERSONAL INJURY, OR SEVERE PROPERTY OR
ENVIRONMENTAL DAMAGE (“CRITICAL APPLICATIONS”). TI SEMICONDUCTOR
PRODUCTS ARE NOT DESIGNED, AUTHORIZED, OR WARRANTED TO BE SUIT ABLE FOR
USE IN LIFE-SUPPORT DEVICES OR SYSTEMS OR OTHER CRITICAL APPLICATIONS.
INCLUSION OF TI PRODUCTS IN SUCH APPLICATIONS IS UNDERSTOOD TO BE FULLY
AT THE CUSTOMER’S RISK.
In order to minimize risks associated with the customer’s applications, adequate design and
operating safeguards must be provided by the customer to minimize inherent or procedural
hazards.
TI assumes no liability for applications assistance or customer product design. TI does not
warrant or represent that any license, either express or implied, is granted under any patent right,
copyright, mask work right, or other intellectual property right of TI covering or relating to any
combination, machine, or process in which such semiconductor products or services might be
or are used. TI’s publication of information regarding any third party’s products or services does
not constitute TI’s approval, warranty or endorsement thereof.
Copyright 1999, Texas Instruments Incorporated
About This Manual
This reference guide describes the CPU architecture, pipeline, instruction set,
and interrupts for the TMS320C6000 digital signal processors (DSPs). Unless
otherwise specified, all references to the ’C6000 refer to the TMS320C6000
platform of DSPs, ’C62x refers to the TMS320C62x fixed-point DSPs in the
’C6000 platform, and ’C67x refers to the TMS320C67x floating-point DSPs in
the ’C6000 platform.
How to Use This Manual
Use this manual as a reference for the architecture of the TMS320C6000 CPU.
First-time readers should read Chapter 1 for general information about TI
DSPs, the features of the ’C6000, and the applications for which the ’C6000
is best suited.
Preface
Read This First
Read chapters 2, 5, 6, and 7 to grasp the concepts of the architecture. Chapter 3 and Chapter 4 contain detailed information about each instruction and is
best used as reference material; however, you may want to read sections 3.1
through 3.9 and sections 4.1 through 4.6 for general information about the
instruction set and to understand the instruction descriptions, then browse
through Chapter 3 and Chapter 4 to familiarize yourself with the instructions.
Contents
iii
Read This First
The following table gives chapter references for specific information:
If you are looking for information about:
T urn to these chapters:
Addressing modesChapter 3,
Instruction Set
Chapter 4,
Instruction Set
Conditional operationsChapter 3,
Instruction Set
Chapter 4,
Instruction Set
Control registersChapter 2,
CPU architecture and data
To help you easily recognize instructions and parameters throughout the
book, instructions are in bold face and parameters are in
italics
(except
in program listings).
tered as shown; portions of a syntax that are in
italics
describe the
type
of
information that should be entered. Here is an example of an instruction:
MPY
src1,src2,dst
MPY is the instruction mnemonic. When you use MPY, you must supply
two source operands (
appropriate types as defined in Chapter 3,
Point Instruction Set
.
src1
and
src2
) and a destination operand (
TMS320C62x/C67x Fixed-
dst
) of
Although the instruction mnemonic (MPY in this example) is in capital letters, the ’C6x assembler
is not case sensitive
— it can assemble mnemon-
ics entered in either upper or lower case.
- Square brackets, [ and ], and parentheses, ( and ), are used to identify op-
tional items. If you use an optional item, you must specify the information
within brackets or parentheses; however, you do not enter the brackets or
parentheses themselves. Here is an example of an instruction that has optional items.
[
label
] EXTU (
.unit) src2, csta, cstb, dst
The EXTU instruction is shown with a label and several parameters. The
[
label
] and the parameter (
cstb,
and
dst
are not optional.
- Throughout this book MSB means
least significant bit
- A special icon is used to indicate material that applies only to the floating-
.
.unit
) are optional. The parameters
most significant bit
src2, csta,
and LSB means
point (’C67x) DSP:
Read This First
v
Related Documentation From Texas Instruments
Related Documentation From Texas Instruments
The following books describe the TMS320C6x generation and related support
tools. To obtain a copy of any of these TI documents, call the Texas Instruments Literature Response Center at (800) 477–8924. When ordering, please
identify the book by its title and literature number.
TMS320C62x/C67x Technical Brief
introduction to the ’C62x/C67x digital signal processors, development
tools, and third-party support.
TMS320C6201 Digital Signal Processor Data Sheet
SPRS051) describes the features of the TMS320C6201 and provides
pinouts, electrical specifications, and timings for the device.
TMs320C6202 Digital Signal Processor Data Sheet
SPRS072) describes the features of the TMS320C6202 fixed-point DSP
and provides pinouts, electrical specifications, and timings for the device.
TMS320C6211 Digital Signal Processor Data Sheet
SPRS073) describes the features of the TMS320C621 1 fixed-point DSP
and provides pinouts, electrical specifications, and timings for the device.
TMS320C6701 Digital Signal Processor Data Sheet
SPRS067) describes the features of the TMS320C6701 floating-point
DSP and provides pinouts, electrical specifications, and timings for the
device.
TMS320C6000 Peripherals Reference Guide
describes common peripherals available on the TMS320C6000 digital
signal processors. This book includes information on the internal data
and program memories, the external memory interface (EMIF), the host
port, serial ports, direct memory access (DMA), clocking and phaselocked loop (PLL), and the power-down modes.
(literature number SPRU197) gives an
(literature number
(literature number
(literature number
(literature number
(literature number SPRU190)
TMS320C62x/C67x Programmer’s Guide
describes ways to optimize C and assembly code for the
TMS320C62x/C67x DSPs and includes application program examples.
TMS320C6000 Assembly Language Tools User’s Guide
SPRU186) describes the assembly language tools (assembler, linker,
and other tools used to develop assembly language code), assembler
directives, macros, common object file format, and symbolic debugging
directives for the ’C6000 generation of devices.
vi
(literature number SPRU198)
(literature number
Related Documentation From Texas Instruments / Trademarks
Trademarks
TMS320C6000 Optimizing C Compiler User’s Guide
(literature number
SPRU187) describes the ’C6000 C compiler and the assembly optimizer .
This C compiler accepts ANSI standard C source code and produces assembly language source code for the ’C6000 generation of devices. The
assembly optimizer helps you optimize your assembly code.
TMS320 Third-Party Support Reference Guide
(literature number
SPRU052) alphabetically lists over 100 third parties that provide various
products that serve the family of TMS320 digital signal processors. A
myriad of products and applications are offered—software and hardware
development tools, speech recognition, image processing, noise cancellation, modems, etc.
TI, XDS510, V elociTI, and 320 Hotline On-line are trademarks of T exas Instruments Incorporated.
Windows and Windows NT are registered trademarks of Microsoft Corporation.
Read This First
vii
If You Need Assistance
If You Need Assistance . . .
- World-Wide Web Sites
TI Onlinehttp://www.ti.com
Semiconductor Product Information Center (PIC)http://www.ti.com/sc/docs/pic/home.htm
DSP Solutionshttp://www.ti.com/dsps
320 Hotline On-linethttp://www.ti.com/sc/docs/dsps/support.htm
- North America, South America, Central America
Product Information Center (PIC)(972) 644-5580
TI Literature Response Center U.S.A.(800) 477-8924
Software Registration/Upgrades(214) 638-0333Fax: (214) 638-7742
U.S.A. Factory Repair/Hardware Upgrades(281) 274-2285
U.S. Technical Training Organization(972) 644-5580
DSP Hotline(281) 274-2320Fax: (281) 274-2324Email: dsph@ti.com
DSP Modem BBS(281) 274-2323
DSP Internet BBS via anonymous ftp to ftp://ftp.ti.com/pub/tms320bbs
- Europe, Middle East, Africa
European Product Information Center (EPIC) Hotlines:
Literature Response Center+852 2 956 7288Fax: +852 2 956 2200
Hong Kong DSP Hotline+852 2 956 7268Fax: +852 2 956 1002
Korea DSP Hotline+82 2 551 2804Fax: +82 2 551 2828
Korea DSP Modem BBS+82 2 551 2914
Singapore DSP HotlineFax: +65 390 7179
Taiwan DSP Hotline+886 2 377 1450Fax: +886 2 377 2718
Taiwan DSP Modem BBS+886 2 376 2592
Taiwan DSP Internet BBS via anonymous ftp to ftp://dsp.ee.tit.edu.tw/pub/TI/
- Japan
Product Information Center+0120-81-0026 (in Japan)Fax: +0120-81-0036 (in Japan)
DSP Hotline+03-3769-8735 or (INTL) 813-3769-8735Fax: +03-3457-7071 or (INTL) 813-3457-7071
DSP BBS via Nifty-ServeType “Go TIASP”
- Documentation
When making suggestions or reporting errors in documentation, please include the following information that is on the title
page: the full title of the book, the publication date, and the literature number.
Note:When calling a Literature Response Center to order documentation, please specify the literature number of the
viii
book.
+03-3457-0972 or (INTL) 813-3457-0972Fax: +03-3457-1259 or (INTL) 813-3457-1259
Contents
Contents
Summarizes the features of the TMS320 family of products and presents typical applications.
Describes the TMS320C62x/C67x DSPs and lists their key features.
Describes the assembly language instructions that are common to both the TMS320C62x and
TMS320C67x, including examples of each instruction. Provides information about addressing
modes, resource constraints, parallel operations, and conditional operations.
Describes the TMS320C67x floating-point instruction set, including examples of each
instruction. Provides information about addressing modes and resource constraints.
The TMS320C6x generation of digital signal processors is part of the TMS320
family of digital signal processors (DSPs). The TMS320C62x devices are
fixed-point DSPs in the TMS320C6x generation, and the TMS320C67x
devices are floating-point DSPs in the TMS320C6x generation. The
TMS320C62x and TMS320C67x are code compatible and both use the
VelociTI architecture, a high-performance, advanced VLIW (very long
instruction word) architecture, making these DSPs excellent choices for multichannel and multifunction applications.
The VelociTI architecture of the ’C62x and ’C67x make them the first of f-theshelf DSPs to use advanced VLIW to achieve high performance through
increased instruction-level parallelism. A traditional VLIW architecture
consists of multiple execution units running in parallel, performing multiple
instructions during a single clock cycle. Parallelism is the key to extremely high
performance, taking these DSPs well beyond the performance capabilities of
traditional superscalar designs. VelociTI is a highly deterministic architecture,
having few restrictions on how or when instructions are fetched, executed, or
stored. It is this architectural flexibility that is key to the breakthrough efficiency
levels of the ’C6x compiler. VelociTI’s advanced features include:
- Instruction packing: reduced code size
- All instructions can operate conditionally: flexibility of code
- Variable-width instructions: flexibility of data types
The TMS320 family consists of fixed-point, floating-point, and multiprocessor
digital signal processors (DSPs). TMS320 DSPs have an architecture designed specifically for real-time signal processing.
1.1.1History of TMS320 DSPs
In 1982, Texas Instruments introduced the TMS32010—the first fixed-point
DSP in the TMS320 family. Before the end of the year,
magazine awarded the TMS32010 the title “Product of the Year”. Today, the
TMS320 family consists of many generations: ’C1x, ’C2x, ’C2xx, ’C5x, and
’C54x fixed-point DSPs; ’C3x and ’C4x floating-point DSPs, and ’C8x multiprocessor DSPs. Now there is a new generation of DSPs, the TMS320C6x generation, with performance and features that are reflective of T exas Instruments
commitment to lead the world in DSP solutions.
1.1.2Typical Applications for the TMS320 Family
T able 1–1 lists some typical applications for the TMS320 family of DSPs. The
TMS320 DSPs offer adaptable approaches to traditional signal-processing
problems. They also support complex applications that often require multiple
operations to be performed simultaneously.
Electronic Products
1-2
Table 1–1. Typical Applications for the TMS320 DSPs
AutomotiveConsumerControl
TMS320 Family Overview
Adaptive ride control
Antiskid brakes
Cellular telephones
Digital radios
Engine control
Global positioning
Navigation
Vibration analysis
Voice commands
General PurposeGraphics/ImagingIndustrial
Adaptive filtering
Convolution
Correlation
Digital filtering
Fast Fourier transforms
Hilbert transforms
Waveform generation
Windowing
InstrumentationMedicalMilitary
Digital filtering
Function generation
Pattern matching
Phase-locked loops
Seismic processing
Spectrum analysis
Transient analysis
Digital radios/TVs
Educational toys
Music synthesizers
Pagers
Power tools
Radar detectors
Solid-state answering machines
Disk drive control
Engine control
Laser printer control
Motor control
Robotics control
Servo control
Numeric control
Power-line monitoring
Robotics
Security access
Image processing
Missile guidance
Navigation
Radar processing
Radio frequency modems
Secure communications
Sonar processing
TelecommunicationsVoice/Speech
1200- to 56Ă600-bps modems
Adaptive equalizers
ADPCM transcoders
Base stations
Cellular telephones
Channel multiplexing
Data encryption
Digital PBXs
Digital speech interpolation (DSI)
DTMF encoding/decoding
Echo cancellation
Faxing
Future terminals
Line repeaters
Personal communications
systems (PCS)
Personal digital assistants (PDA)
Speaker phones
Spread spectrum communications
Digital subscriber loop (xDSL)
Video conferencing
X.25 packet switching
Overview of the TMS320C6x Generation of Digital Signal Processors
1.2Overview of the TMS320C6x Generation of Digital Signal Processors
With a performance of up to 1600 million instructions per second (MIPS) and
an efficient C compiler , the TMS320C6x DSPs give system architects unlimited possibilities to differentiate their products. High performance, ease of use,
and affordable pricing make the TMS320C6x generation the ideal solution for
multichannel, multifunction applications, such as:
- Pooled modems
- Wireless local loop base stations
- Beam-forming base stations
- Remote access servers (RAS)
- Digital subscriber loop (DSL) systems
- Cable modems
- Multichannel telephony systems
- Virtual reality 3-D graphics
- Speech recognition
- Audio
- Radar
- Atmospheric modeling
- Finite element analysis
- Imaging (examples: fingerprint recognition, ultrasound, and MRI)
The TMS320C6x generation is also an ideal solution for exciting new applications; for example:
- Personalized home security with face and hand/fingerprint recognition
- Advanced cruise control with global positioning systems (GPS) navigation
and accident avoidance
- Remote medical diagnostics
1-4
Features and Options of the TMS320C62x/C67x
1.3Features and Options of the TMS320C62x/C67x
The ’C62x devices operate at 200 MHz (5-ns cycle time). The ’C67x devices
operate at 167 MHz (6-ns cycle time). Both DSPs execute up to eight 32-bit
instructions every cycle. The device’s core CPU consists of 32 generalpurpose registers of 32-bit word length and eight functional units:
- Two multipliers
- Six ALUs
The ’C62x/C67x have a complete set of optimized development tools, including an efficient C compiler, an assembly optimizer for simplified assemblylanguage programming and scheduling, and a Windows based debugger
interface for visibility into source code execution characteristics. A hardware
emulation board, compatible with the TI XDS510 emulator interface, is also
available. This tool complies with IEEE Standard 1149.1–1990, IEEE Standard Test Access Port and Boundary-Scan Architecture.
Features of the ’C62x/C67x include:
- Advanced VLIW CPU with eight functional units, including two multipliers
and six arithmetic units
J Executes up to eight instructions per cycle for up to ten times the
performance of typical DSPs
J Allows designers to develop highly effective RISC-like code for fast
development time
- Instruction packing
J Gives code size equivalence for eight instructions executed serially or
in parallel
J Reduces code size, program fetches, and power consumption.
- All instructions execute conditionally .
J Reduces costly branching
J Increases parallelism for higher sustained performance
- Code executes as programmed on independent functional units.
J Industry’s most efficient C compiler on DSP benchmark suite
J Industry’s first assembly optimizer for fast development and improved
parallelization
- 8/16/32-bit data support, providing efficient memory support for a variety
of applications
- 40-bit arithmetic options add extra precision for vocoders and other com-
putationally intensive applications
Introduction
1-5
Features and Options of the TMS320C62x/C67x
- Saturation and normalization provide support for key arithmetic opera-
tions.
- Field manipulation and instruction extract, set, clear, and bit counting
support common operation found in control and data manipulation
applications.
The ’C67x has these additional features:
- Peak 1336 MIPS at 167 MHz
- Peak 1G FLOPS at 167 MHz for single-precision operations
- Peak 250M FLOPS at 167 MHz for double-precision operations
- Peak 688M FLOPS at 167 MHz for multiply and accumulate operations
- Hardware support for single-precision (32-bit) and double-precision
(64-bit) IEEE floating-point operations
- 32 32-bit integer multiply with 32- or 64-bit result
A variety of memory and peripheral options are available for the ’C62x/C67x:
and other asynchronous memories for a broad range of external memory
requirements and maximum system performance
- 16-bit host port for access to ’C62x/C67x memory and peripherals
- Multichannel DMA controller
- Multichannel serial port(s)
- 32-bit timer(s)
1-6
1.4TMS320C62x/C67x Architecture
Á
Á
Á
Figure 1–1 is the block diagram for the TMS320C62x/C67x DSPs. The
’C62x/C67x devices come with program memory, which, on some devices,
can be used as a program cache. The devices also have varying sizes of data
memory. Peripherals such as a direct memory access (DMA) controller,
power-down logic, and external memory interface (EMIF) usually come with
the CPU, while peripherals such as serial ports and host ports are on only
certain devices. Check the data sheet for your device to determine the specific
peripheral configurations you have.
Figure 1–1. TMS320C62x/C67x Block Diagram
’C62x/’C67x device
Program cache/program memory
32-bit address
256-bit data
TMS320C62x/C67x Architecture
DMA, EMIF
Power
down
Data path AData path B
Data cache/data memory
32-bit address
8-, 16-, 32-bit data
Program fetch
Instruction dispatch
Instruction decode
.D1.M1.S1.L1
.D2 .M2 .S2 .L2
’C62x/C67x CPU
Control
registers
Control
Register file BRegister file A
logic
Test
Emulation
Interrupts
Additional
peripherals:
Timers,
serial ports,
etc.
Introduction
1-7
TMS320C62x/C67x Architecture
1.4.1Central Processing Unit (CPU)
The ’C62x/C67x CPU, shaded in Figure 1–1, is common to all the ’C62x/C67x
devices. The CPU contains:
- Program fetch unit
- Instruction dispatch unit
- Instruction decode unit
- Two data paths, each with four functional units
- 32 32-bit registers
- Control registers
- Control logic
- Test, emulation, and interrupt logic
The program fetch, instruction dispatch, and instruction decode units can
deliver up to eight 32-bit instructions to the functional units every CPU clock
cycle. The processing of instructions occurs in each of the two data paths (A
and B), each of which contains four functional units (.L, .S, .M, and .D) and 16
32-bit general-purpose registers. The data paths are described in more detail
in Chapter 2,
means to configure and control various processor operations. To understand
how instructions are fetched, dispatched, decoded, and executed in the data
path, see Chapter 5,
Pipeline
CPU Data Paths and Control
.
. A control register file provides the
TMS320C62x Pipeline
, and Chapter 6,
TMS320C67x
1.4.2Internal Memory
The ’C62x/C67x have a 32-bit, byte-addressable address space. Internal (onchip) memory is organized in separate data and program spaces. When offchip memory is used, these spaces are unified on most devices to a single
memory space via the external memory interface (EMIF).
The ’C62x/C67x have two 32-bit internal ports to access internal data memory .
The ’C62x/C67x have a single internal port to access internal program
memory, with an instruction-fetch width of 256 bits.
1-8
1.4.3Peripherals
TMS320C62x/C67x Architecture
The following peripheral modules can complement the CPU on the
’C62x/C67x DSPs. Some devices have a subset of these peripherals but may
not have all of them.
- Serial ports
- Timers
- External memory interface (EMIF) that supports synchronous and
asynchronous SRAM and synchronous DRAM
- DMA controller
- Host-port interface
- Power-down logic that can halt CPU activity, peripheral activity, and
phased-locked loop (PLL) activity to reduce power consumption
Introduction
1-9
Chapter 2
CPU Data Paths and Control
This chapter focuses on the CPU, providing information about the data paths
and control registers. The two register files and the data crosspaths are
described.
Figure 2–1 and Figure 2–2 show the components of the data paths the ’C62x
and C67x, repectively. These components consist of:
- Two general-purpose register files (A and B)
- Eight functional units (.L1, .L2, .S1, .S2, .M1, .M2, .D1, and .D2)