c6000 architecture

35
0 - 0 - 1 © 2007 Texas Instruments Inc. Content developed in partnership with Tel-Aviv University From MATLAB ® and Simulink ® to Real Time with TI DSPs C6000 Architecture

Upload: silai-gaby

Post on 19-Jan-2016

49 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: C6000 Architecture

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

Page 2: 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).

Page 3: C6000 Architecture

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.

Page 4: C6000 Architecture

Slide Slide 44©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,

Processors in C6000 Family

• C67x floating-point processor.

• C64x fixed-point processor.

Page 5: C6000 Architecture

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.

Page 6: C6000 Architecture

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

Page 7: C6000 Architecture

Slide Slide 77©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,

The C6000 Block Diagram

Page 8: C6000 Architecture

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.

Page 9: C6000 Architecture

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.

Page 10: C6000 Architecture

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.

Page 11: C6000 Architecture

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!

Page 12: C6000 Architecture

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.

Page 13: C6000 Architecture

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.

Page 14: C6000 Architecture

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).

Page 15: C6000 Architecture

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.

Page 16: C6000 Architecture

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.

Page 17: C6000 Architecture

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.

Page 18: C6000 Architecture

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”.

Page 19: C6000 Architecture

Slide Slide 1919©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,

C6000 Interfaces

Page 20: C6000 Architecture

Slide Slide 2020©© 2007 Texas Instruments Inc, 2007 Texas Instruments Inc,

C6000 Interfaces • The DSP interfaces are on the left in the block diagram.

Page 21: C6000 Architecture

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.

Page 22: C6000 Architecture

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

Page 23: C6000 Architecture

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.

Page 24: C6000 Architecture

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.

Page 25: C6000 Architecture

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.

Page 26: C6000 Architecture

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.

Page 27: C6000 Architecture

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.

Page 28: C6000 Architecture

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).

Page 29: C6000 Architecture

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.

Page 30: C6000 Architecture

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!

Page 31: C6000 Architecture

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.

Page 32: C6000 Architecture

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.

Page 33: C6000 Architecture

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.

Page 34: C6000 Architecture

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.

Page 35: C6000 Architecture

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.