c6000 architecture
TRANSCRIPT
0 - 0 - 11
© 2007 Texas Instruments Inc.
Content developed in partnership with Tel-Aviv University
From MATLAB® and Simulink® to Real Time with TI DSPs
C6000 Architecture
Slide Slide 22©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Introduction
• The Texas Instruments C6000 family of Digital Signal Processors (DSPs) are used in a wide range of applications, amongst them:
– Radar and sonar
– Medical imaging
– Professional audio processing (C67x)
– Data communications (base-stations)
– Robotic control
– Video processing (C64x).
Slide Slide 33©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Objectives
• Give an overview of the architecture of the Texas Instruments C6000 DSP Processors.
• Describe (in brief) the key features and how to use them.
Slide Slide 44©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Processors in C6000 Family
• C67x floating-point processor.
• C64x fixed-point processor.
Slide Slide 55©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Fixed Point vs Floating Point
• Floating-point Processors:
– cover a wider numeric range than their fixed-point equivalents
– scientific work (e.g. logarithms and tangents).
• Fixed-point Processors:
– Execute faster
– Less expensive to implement
– Lower power consumption (typically) power/ battery applications.
Slide Slide 66©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Decimals using Fixed Point
• Values between –1.000 and +1.000 can be represented in Q15 format.
• The left-most bit is the sign:
– most positive number: 0 111 1111 1111 1111b
– most negative number:1 000 0000 0000 0000b
• The remaining 15 bits are the fraction:
+0.5000 decimal = 0 100 0000 0000 0000b
Slide Slide 77©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
The C6000 Block Diagram
Slide Slide 88©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
The C6000 DSP CPU Core
• The heart of the C6000 is the Central Processing Unit (CPU).
• This is where the computations are carried out.
Slide Slide 99©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
The C67x Data Paths
• The C67x CPU is divided into two parallel parts, Data path A and Data path B.
• It is stereo.
• With this architecture, it is possible to process both left and right channels of an audio signal at the same time.
Slide Slide 1010©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
The C64x Data Paths
• The C64x has a similar data path architecture to the C67x, but with an additional set of 32 registers.
• Some restrictions with register use in the C67x have been overcome in the C64x.
Slide Slide 1111©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
The Units • Within the CPU are four units per data path:
– the L. Unit. Used for logical operations (AND, OR etc).
– the M. Unit. Used for carrying out multiplications.
– the S. Unit. Used for carrying out shifts.
– the D. Unit. Used to move data.
• At any time, it is possible to carry out an operation in each of the L. M. S. and D. units.
• This means the processor can do up to 8 things at once!
Slide Slide 1212©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
The C6000 Registers
• Operations within the C6000 are carried out in two groups of 16 registers called A0 to A15 and B0 to B15.
• All computations are done directly using these registers.
Slide Slide 1313©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Register Files
• The C67x contains two sets of 16 32-bit registers.
• The C64x contains an additional set of 32 registers.
Slide Slide 1414©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Fixed Point Data Size
• A 32-bit register can hold a fixed-point value between –2147483648 and + 2 147483647.
• You can store 16-bit, 20-bit or 24-bit data in a 32-bit register, for example audio data.
• When converting from 16-bit to 32-bit:
-1 = 0xFFFF(Q15)
-1 = 0xFFFF FFFF (Q31).
Slide Slide 1515©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Single Precision Floating Point
• The first floating-point type is single-precision, also referred to as “single”.
• The type “single” fits into a 32-bit register.
Slide Slide 1616©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Single Precision Floating Point
• The table below gives the largest single floating-point number (LFPN) and the smallest single floating-point number (SFPN).
• The term NaN stands for “Not a Number” and is an unsupported value.
Slide Slide 1717©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Double Precision Floating Point
• The second floating-point type is double-precision, also referred to as “double”.
• This requires two 32-bit registers to store a value.
Slide Slide 1818©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Double Precision Floating Point
• The range of supported values is given in the table below.
• This type has a wider data range than the type “single”.
Slide Slide 1919©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
C6000 Interfaces
Slide Slide 2020©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
C6000 Interfaces • The DSP interfaces are on the left in the block diagram.
Slide Slide 2121©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
The C6000 Components
• The C67x and C64x processors are a C6000 DSP core with peripherals around it.
• Data values are input and output to the processor in fixed-point form.
Slide Slide 2222©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
External Memory Interface (EMIF)
• The C6000 contains a limited amount of memory (RAM) on chip.
• The External Memory Interface (EMIF) allows access to external memory (RAM).
External RAM EMIF CPU
EMIF
Slide Slide 2323©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Direct Memory Access (DMA)
• Direct Memory Access (DMA) provides an efficient way to transfer data without using the CPU.
• It is very useful for transferring large blocks of data, for example video and audio.
Slide Slide 2424©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Data Transfer without DMA
• Without Direct Memory Access (DMA), any data transfer has to be handled by the CPU.
Slide Slide 2525©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Data Transfer with DMA
• With DMA, data values are transferred directly to memory.
• This enables the CPU to allocates its resources for other tasks.
Slide Slide 2626©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
The McBSP
• The multi-channel buffered serial peripheral interfaces (McBSP) are simple serial interfaces.
• They can be used as a simple interface, in particular to audio ADCs/DACs.
Slide Slide 2727©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
The McBSP Data Format
• The data transfer is initiated with a pulse on the frame select (FS) line.
• McBSP is implemented as hardware, so when the data transfer begins, no intervention is required by the CPU.
Slide Slide 2828©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
The Timers
• The C6000 contains two 32-bit timer/counters which can:
– transfer data at regular intervals.
– generate physical outputs (TOUT pin) to start processes e.g. a robot.
– measure the timing of external events via a physical input (TINP pin).
Slide Slide 2929©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Interrupts
• The C6000 CPU has a range of interrupts.
• With interrupts you can automatically send / receive data, while carrying out another task.
Slide Slide 3030©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
How does an interrupt work?
• An everyday example of an interrupt is the telephone.
• Imagine you are working at your desk.
– the phone rings
– you choose to answer the phone
– you then continue with your work.
• Short telephone conversation – slight delay to work.
• Long telephone conversation – can miss deadline!
Slide Slide 3131©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Interrupt Priorities
• In the real world, there will be several interrupts – telephone, fax, e-mail, pager, visitors.
• However, you can only do one thing at a time.
• Interrupts must therefore have a priority level:
– important tasks – high priority e.g. customer calls.
– less important tasks – low priority e.g. junk e-mails.
Slide Slide 3232©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Interrupt Characteristics
• In terms of the telephone conversation:
– the phone rings (interrupt source)
– you answer the phone (priority and suspend original task)
– you then continue with your work (resume original task).
• When applied to a CPU, an interrupt is an event that automatically invokes a task by temporarily suspending another task.
Slide Slide 3333©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
CPU Interrupt Priority
• Reset has highest priority. It is equivalent to “Ctl-Alt-Del” on a PC.
• NMI (non-maskable interrupt) is next. You might use this for an emergency shutdown.
• McBSP used to read ADC/DAC has lower priority.
Slide Slide 3434©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
Summary
• We have briefly looked at the architecture of the C6000 family.
• You should now understand some of the capabilities of the C6000 family.
Slide Slide 3535©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,
References
• The following data sheets are available on the Texas Instruments website at www.ti.com:
– SPRU189. TMS320C6000 DSP CPU and Instruction Set Reference.
– SPRU 190. TMS320C6000 DSP Peripherals Overview Reference Guide.
– SPRU582. TMS320C6000 DSP 32-bit Timer Reference Guide.
– SPRU646. TMS320C6000 DSP Interrupt Selector Reference Guide.