2011 capítulo 03. tms320c6713 - … cap_03 el procesador de datos el c6713 consiste de tres partes...

16
TMS320C6713 Cap_03 MI. Mario Alfredo Ibarra Carrillo Año 2012 2011 Capítulo 03. TMS320C6713 MI. Mario Alfredo Ibarra Carrillo Facultad de Ingeniería; Telecomunicaciones 16/03/2011 Ver_01_01_04

Upload: trandien

Post on 22-May-2018

221 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

MI. Mario Alfredo Ibarra Carrillo Año 2012

2011

Capítulo 03. TMS320C6713

MI. Mario Alfredo Ibarra CarrilloFacultad de Ingeniería; Telecomunicaciones16/03/2011Ver_01_01_04

Page 2: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 3: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

Hardware includido en el TMS320C6713

Entre las características que resaltan al TMS320C6713 están:

• El TMSC6713 es un procesador en punto flotante.

• Basado en la arquitectura VLIW (Very Long Instruction Word) de 256 bits. Esto implica que pueden recuperarse de memoria hasta 8 instrucciones de 32 bits a la vez.

• La memoria interna incluye una arquitectura de dos niveles de cahcé.

◦ El primer nivel de cache, sin una dirección en el mapa de memoria, consiste de un banco de 4KB para instrucciones (L1P) y de un segundo banco de 4KB para datos (L1D).

◦ El segundo nivel de caché, ocupando los primeros 256 kB en el mapa de memoria, consiste de dos bancos que suman 256KB. El primer banco puede ocupar hasta 192KB en tanto que el segundo banco puede ocupar hasta 64KB. Esta división del cache L2 permite dos accesos de lectura o dos acceso de escritura, al mismo tiempo.

• Cuenta con dos bancos de registros de propósito general. El banco A tiene 16 registros numerados como A0, A1, ..., A15 y el banco B contiene 16 registros numerados como B0, B1, ..., B15.

• Hay ocho ALU, cada ALU tiene dos registros de entrada en donde se copian los operandos y un registro de salida en donde se almacena el resultado. Estos registros adicionales liberan los registros de propósito general para ser usados por otras ALU.

◦ Hay cuatro ALU o unidades operativas (L1, S1, M1, D1) que toman sus operandos del banco de registros A.

◦ Hay cuatro ALU o unidades operativas (L2, S2, M2, D2) que toman sus operandos del banco de registros B.

◦ Mediante dos buses cruzados X1 y X2, las unidades operativas pueden operar sobre los registros del banco opuesto.

• En el encapsulado del DSP se incluyen también diversos CI que implementan puertos de comunicación para varios protocolos. Estos puertos son

◦ EMIF (External Memory Interface File) es un CI que permite conectar varios tipos de CI de memoria externa. El DSK incluye un CI con SDRAM de 16MB y un CI de Flash ROM de 512KB.

◦ McASP (Multichannel “A “ Serial Port) Se incluyen dos CI de este puerto

◦ McBSP (Multichannel “B “ Serial Port) Se incluyen dos CI de este puerto

◦ I2C es un puerto usado en robótica para comunicar senosres y circuitos de control basados en microcontrolador.

◦ Timer. Se incluyen dos CI contadores de las pulsasiones de de reloj.

◦ GPIO (GeneralPurpose IO).

• Mediante un circuito EMIF (Extende Memory Interface File) se pueden conectar bancos de memoria externos.

◦ El EMIF CE0 conecta un CI de SDRAM de 16MB.

◦ El EMIF CE1 conecta un CI de Flash ROM de 512KB. Este banco se divide en dos bancos. El primer banco de 256KB es para aplicaciones del usuario. El segundo banco de 256KB contiene un código de arranque para la DSK.

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 4: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

El procesador de datos

El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son:

• El nucleo (C67x DSP Core)

• La memoria

◦ La memoriade cache L1. Formada por dos bancos

▪ 4Kbytes de memoria para programa (L1P Cache)

▪ 4 Kbytes de memoria de datos (L1D Cache)

◦ La memoria de cache L2 de programa y datos

• Los periericos

• Las rutas de datos

◦ Ruta A (Data Path A)

▪ Con 16 Registros de propósito general de 32 bits cada uno.

▪ Cuatro ALU conocidas mejor como unidades funcionales, las cuales pueden operar en paralello.

◦ Ruta B (Data Path B)

MI. Mario Alfredo Ibarra Carrillo Año 2012

Illustration 1: Diagrama a bloques del encapsulado DSP C6713.

Page 5: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

▪ Con 16 Registros de propósito general de 32 bits cada uno.

▪ Cuatro ALU conocidas mejor como unidades funcionales, las cuales pueden operar en paralello.

Debido a la posibilidad de operar las ALU a un mismo tiempo, es posible ejecutar instrucciones en paralelo. Este paralelismo es definido en tiempo de compilación.

El C6713 incluye en su encapsulado 8kbytes de RAM, 4kbytes para código y 4kbytes para datos. Esta memoria se puede configurar como memoria caché empleando las herramientas del CODE COMPOSER. Los periféricos incluyen un controlador DMA (Direct Memory Access), interfaz para memoria externa (EMIF: External Memory Interface), puertos seriales, bus de expansión y timers.

La unidad central de proceso

La UCP o nucleo del DSP contiene:

• Unidad de búsqueda de instrucciones

• Unidad de despacho de instrucciones

• Unidad de decodificación de instrucciones

• 32 registros de propósito general de 32 bits

• 8 unidades funcionales o ALU

• Registros de control

• Un control de interrupciones

• Circuitería para control y observación del DSP.

Bancos de registros de propósito general

• Tal como se ve en la figura 2, el DSP cuenta con dos bancos de registros de propósito general. El banco A (A Register File) tiene 16 registros numerados como A0, A1, ..., A15 y el banco B (B Register File) contiene 16 registros numerados como B0, B1, ..., B15.

◦ Los registros de propósito general pueden ser usador para manejar datos.

◦ Los registros de propósito general pueden ser usados para menajar punteros a datos en memoria (direccionamientoo indirecto)

• Los registros de propósito general suele tener un uso específico convenido a continuación:

◦ Los registros A0, A1, B0,B1,B2 pueden ser usados como registros de condición para ciclos.

◦ Los registros A4,A5,A6,A7 pueden er usados para direccionamiento circular (búfer circular)

◦ Los registros B4,B5,B6,B7 pueden ser usados para direccionamiento circular (búfer circular)

◦ Los registros A10, A11,A12,A13,A14,A15 se llaman registros de usuario y pueden ser usados para

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 6: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

manejar datos y para manejar punteros a dost en memoria (direccionamientoo indirecto): registros para el usuario. Estos registros se guardan en la pila cuando se invoca una subrutina.

◦ Los registros B10, B11,B12,B13,B14 se llaman registros de usuario y pueden ser usados para manejar datos y para manejar punteros a dost en memoria (direccionamientoo indirecto): registros para el usuario. Estos registros se guardan en la pila cuando se invoca una subrutina.

◦ B15: Apuntador de la pila

• Los registros de propósito general soportan datos de 32 bits para punto fijo y para punto flotante

• Empleando dos registros de propósito general se pueden soportar datos de 40 bits para punto fijo.

◦ Los 32 bits menos significativos son colocados en un registro par y

◦ los restantes ocho bits mas significartivos son colocados en las localidades menos significativas del próximo registro superior (registro impar).

• Los registros pueden ser usados en parejas para sintentizar registros de 64bits tal como se ilustra en la tabla 2.

Unidades operativas o ALUs

• En la figura 1 pueden notarse, centro derecha, las ocho unidades operativas denominadas como: .L1, .S1, .M1, .D1 y .L2 .S2, .M2, .D2

• Cada ALU tiene dos registros de entrada en donde se copian los operandos y un registro de salida en donde se almacena el resultado. La figura 2 ilustra el diagrama a bloques general de las ALU.

• Hay cuatro unidades operativas (.L1, .S1, .M1, .D1) o ALU que toman sus operandos en el banco de registros A. El resumen de las operaciones que realiza cada ALU puede verse en la tabla 2.

◦ L1

▪ Realiza operaciones lógicas.

▪ Realiza operaciones aritméticas (suma y resta) en punto fijo.

▪ Realiza operaciones aritméticas (suma y resta) en punto flotante.

◦ S1

▪ Realiza operaciones de manipulación de bits.

MI. Mario Alfredo Ibarra Carrillo Año 2012

Register filesApplicable DevicesA B

A1:A0 B1:B0

C62x/C64x/C65x

A3:A2 B3:B2A5:A4 B5:B4A7:A6 B7:B6A9:A8 B9:B8A11:A10 B11:B10A13:A12 B13:B12A15:A14 B15:B14

Tabla 1. Formación de registro sde 32 bits para formar registros de 64 bits

Page 7: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

▪ Realiza operaciones de corrimiento de bits.

▪ Realiza operaciones de salto.

▪ Generación de constantes.

▪ Realiza operaciones aritméticas (suma y resta) en punto fijo.

▪ Realiza operaciones aritméticas (suma y resta) en punto flotante.

◦ D1

▪ Realiza operaciones de lectura de datos (load).

▪ Realiza operaciones de esritura de datos (store).

▪ Realiza operaciones ariméticas (suma y resta) en punto fijo.

◦ M1

▪ Realiza operaciones de multiplicación en punto fijo.

▪ Realiza operacines de multiplicación en punto flotante.

▪ Calcula el recíproco.

• Hay cuatro unidades operativas (.L2, .S2, .M2, .D2) o ALU que toman sus operandos en el banco de registros B. Sus funciones son idénticas a las de las unidades 1.

• Mediante dos buses cruzados X1 y X2, las unidades operativas pueden tomar y operar sobre los registros del banco opuesto.

• Las unidades .L1, .L2, .D1, .D2 tienen un puerto extra de 8 bits para operaciones de 40 bits.

• Debido a que cada unidad tiene su propio conjunto de puertos, las 8 unidades pueden ser usadas en paralelo en cada ciclo.

MI. Mario Alfredo Ibarra Carrillo Año 2012

Unidad Operaciones Suma suma Multiplicación Multiplicación Desplaz. LecturaLogicas punto fijo punto flotante punto fijo punto flotante de bits Saltos escritura

L * * *S * * * *D * *M * *

Tabla 2. Operaciones que realiza cada unidad operativa

Illustration 2: Diagrama a bloques de las unidades operativas.

Page 8: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

Los caminos de datos del UCP

• El camino de datos puede verse en la figura 3.

• El procesador de datos consta de los elementos siguientes:

◦ Registros: Hay dos bancos de registros, el banco A tiene 16 registros numerados como A0, A1, ..., A15 y el banco B contiene 16 registros numerados como B0, B1, ..., B15.

◦ Unidades operativas: Hay cuatro unidades operativas (.L1, .S1, .M1, .D1) o ALU que toman sus operandos en el banco de registros A. Hay cuatro unidades operativas (.L2, .S2, .M2, .D2) o ALU que toman sus operandos en el banco de registros B.

◦ Los buses.

• Hay dos caminos de direccionamiento de datos DA1 (Data Address 1) y DA2 (Data Address 2) que son direcciones de memoria.

• Hay dos caminos de lectura de datos desde memoria (LD1 y LD2). controlados por las unidades .D1 y .D2. Nótese de la figura 2 que es posible cruzar las direcciones.

• Hay dos caminos de escritura de datos hacia memoria (ST1 y ST2) controlador por las unidades .D1 y .D2.

• Mediante caminos 1X y 2X, las unidades operativas pueden tomar y operar sobre los registros del banco opuesto.

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 9: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

MI. Mario Alfredo Ibarra Carrillo Año 2012

Illustration 3: Figura tomada de spru197d: TMS320C6000 Technical Brief

Page 10: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

Mapeo entre instrucciones y unidades funcionales

La tabla 2 resume el mapeo de las instrucciones con las unidades operativas, es decir, la tabla muestra como asociar las instrucciones a una unidad operativa

MI. Mario Alfredo Ibarra Carrillo Año 2012

Unidad .L Unidad .M Unidad .S Unida. DABS MPY ADD SET ADD STB (15-bit offset) Solo.S2ADD MPYU ADDK SHL ADDAB STH (15-bit offset) solo .S2ADDU MPYUS ADD2 SHR ADDAH STW (15-bit offset) solo .S2AND MPYSU AND SHRU ADDAW SUBCMPEQ MPYH B disp SHRL LDB SUBABCMPGT MPYHU B IRP SUB LDBU SUBAHCMPGTU MPYHUS B NRP SUBU LDH SUBAWCMPLT MPYHSU B reg SUB2 LDHU ZEROCMPLTU MPYHL CLR XOR LDWLMBD MPYHLU EXT ZERO LDBMV MPTHULS EXTU LDBUNEG MPYHSLU MV LDHNORM MPYLH MVC LDHUNOT MPYLHU MVK LDWOR MPYLUHS MVKH MVSADD MPYLSHU MVLKH STBSAT SMPY NEG STHSSUB SMPYHL NOT STWSUB SMPYLH ORSUBU SMPYHSUBCXOR

Tabla 2. Mapeo de instrucciones de punto fijo y unidades operativas

Page 11: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

La tabla 3 resume el mapeo de las instrucciones de punto flotante con las unidades operativas.

El banco de registros de control

Hay un banco de registros que controlan e modo de operación del DSP. Una unidad (.S2) puede leer de y escribir hacia los registros de control. La tabla 4 describe los registros de control. Cada registro es accesado mediante la instrucción MVC.

El C67x posee tres registros de configuraciónb adicionales, para soportar operaciones de punto flotante (vea la tabla 5). Los registros especifican los modos de redondeo de punto flotante para las unidades .M y .L Tabmién poseen campos de bits para adverrit si src1 y src2 son aN (no es un número) o números desnormalizados. Además si resulta overfloweo underflow, es inexacto, infinito o inválido. Hay campos que advierte si una división por cero fue ejecutada o si una comparación fue ejecutada con un NaN.

MI. Mario Alfredo Ibarra Carrillo Año 2012

Unidad .L Unidad .M Unidad .S Unidad .DADDDP MPYDP ABSDP ADDADADDSP MPYI ABSSP LDDWDPINT MPYID CMPEQDPDPSP MPYSP CMPEQSPINTDP CMPGTDPINTDPU CMPGTSPINTSP CMPGTDPINTSPU CMPLTSPSPINT RCPDPSPTRUNC RCPSPSUBDP RSQRDPSUBSP RSQRSPSPDP

Tabla 3. Mapeo de instrucciones de punto flotantes y unidades funcionales

Page 12: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

Mapa de memoria

El DSK provee un mapa de memoria al cual puede acceder el DSP através de las unidades .D1 y .D2. La figura siguiente ilustra tal mapa.

MI. Mario Alfredo Ibarra Carrillo Año 2012

Abreviatura Nombre Descripción

AMR

CSR

IFR Despliega el estado de las interrupciones.

ISR Permite activar interrupciones manualmente.

ICR Registro para interrución Permite limpiar interrupciones pendientes manualmente.

IER Permite habilitar /deshabilitar interrupciones individuales.

NRP

PCEI

Tabla 4. Registros de control

Regitro de modo de direccionamiento

Especifica si utiliza direccionamiento lineal o circular oara cada uno de los ocho registros, también contiene el tamalo para el direccionamiento circular.

Registro de control de estado

Contiene el bit de interrućión global, los bits de control del cache y tros bits de contro de estado misceláneos.

Registgro de bandera de interrupción

Registros para activar interrupción

Registro para retorno de interrupción

Puntero de retorno de interrupción no mascarable

Contiene la dirección de retorno de una interrupción no mascarable.

Contador del programa, fase E1

Contiene la dirección del paquete fetch (contiene le paquete de ejecución del pipeline) en la etapa E1.

Abreviatura Nombre Descripción

FADCR

FAUCR

FMCR

Tabla 5. Registros de control extendidos

Registro de configuración del sumador del punto flotante.

Especifica el modo de underflow, modo de redondeo, NaN y otras excepciones para la unidad .L

Regitro de configuración auxiliar de punto flotante.

Especifica modos de underflow, modos de redondeo, NaN y otras excepciones para la unidad .S

Regsitro de configuración del cmultiplicador de punto flotante.

Especifica modos de underflow, modos de redondeo, NaN y otras excepciones para la unidad .M

Page 13: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 14: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

Bibliografía

spru197d: TMS320C6000 Technical Brief

Direcciones web

Descargar versiones con límite de tiempo:

http://tiexpressdsp.com/index.php/Download_CCS

Descargar manuales

http://wisconsin.cern.ch/ROD/ti_documents/manuals_ccs_full_c6000.html

Tutorial de programación C

http://www.ece.mtu.edu/labs/EElabs/EE3306/C_Programming_Tutorial.htm

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 15: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

Manuales TI

• SPRA478

• SPRA433A

• SPRA434

• SPRA476

• SPRA479

• SPRA488

• SPRA519

• SPRA522

• SPRA529

• SPRA533

• SPRA536

• SPRA542

• SPRA543

• SPRA568

• SPRA595

• SPRA598

• SPRA614a

• SPRA631

• SPRA636

• SPRA640

• SPRA643

• SPRA646

• SPRA653

• SPRA662

• SPRA683

• SPRA697

• SPRS073d

• SPRU186g

• SPRU187g

• SPRU188d

• SPRU269d

• SPRU273b

• SPRU305

• SPRU400

• SPRU403a

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 16: 2011 Capítulo 03. TMS320C6713 - … Cap_03 El procesador de datos El C6713 consiste de tres partes principales que pueden verse en la figura 1. Estos son: • El nucleo (C67x DSP

TMS320C6713Cap_03

• sprv034b

MI. Mario Alfredo Ibarra Carrillo Año 2012