Arquitecturas de DSP TMS320F28xxxodin.fi-b.unam.mx/labdsp/files/ADSP/apuntes/Pre07_c2xxx.pdf ·...

38
Kernel de un DSP CPU de DSP TMS320F28xxx Modos de direccionamiento Unidad de direccionamiento Sistema de control Periféricos Arquitecturas de DSP TMS320F28xxx ...... Larry Escobar 7 de febrero de 2017 Universidad Nacional Autónoma de México Larry Escobar Arquitecturas de DSP TMS320F28xxx

Transcript of Arquitecturas de DSP TMS320F28xxxodin.fi-b.unam.mx/labdsp/files/ADSP/apuntes/Pre07_c2xxx.pdf ·...

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Arquitecturas de DSP TMS320F28xxx

......

Larry Escobar

7 de febrero de 2017

Universidad Nacional Autónoma de México

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Indice

1 Kernel de un DSPUnidad central de proceso

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Indice

1 Kernel de un DSPUnidad central de proceso

2 CPU de DSP TMS320F28xxxUnidad central de proceso

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Indice

1 Kernel de un DSPUnidad central de proceso

2 CPU de DSP TMS320F28xxxUnidad central de proceso

3 Principales Modos de direccionamientoDirectoModo directo

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Indice

1 Kernel de un DSPUnidad central de proceso

2 CPU de DSP TMS320F28xxxUnidad central de proceso

3 Principales Modos de direccionamientoDirectoModo directo

4 Unidad de direccionamientoUnidad ARAUDireccionamiento por PilaModo indirectoDireccionamiento circular

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Indice

1 Kernel de un DSPUnidad central de proceso

2 CPU de DSP TMS320F28xxxUnidad central de proceso

3 Principales Modos de direccionamientoDirectoModo directo

4 Unidad de direccionamientoUnidad ARAUDireccionamiento por PilaModo indirectoDireccionamiento circular

5 Sistema de control

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Indice

1 Kernel de un DSPUnidad central de proceso

2 CPU de DSP TMS320F28xxxUnidad central de proceso

3 Principales Modos de direccionamientoDirectoModo directo

4 Unidad de direccionamientoUnidad ARAUDireccionamiento por PilaModo indirectoDireccionamiento circular

5 Sistema de control

6 PeriféricosLarry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Sistema embebido

��������

������

������

������

������

������

������

������

������

��������S

ENSO RES

A

C

D

PWM2

PWM3

PWM1

QEP

Puertos

Paralelos

Interfaz

Bus CAN

Teclado

JTAG

S C I

S P I

McBSP1

McBSP2

Dispositivo

DispositivoOtro

Otro

Otro

Dispositivo

Otro

Dispositivo

I2C

Dispositivo

I2CI2C

Capturadores EVA

Motores

...

...

M O N I TO R

GPIO

GPIO

C P U

Timers

Mem.RAMFLASH

D M A

Dispositivo

HOST

Interfaz

Interfaz

Dispositivo

Bus I2C

EVB

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Características de DSP TMS320F28xxx

• Arquitectura tipo Harvard modificada de 16b• Ejecuta instrucciones de 32b en punto entero, para mejorar laprecisión numérica• Ejecuta instrucciones de 16b en punto entero, para mejorar laeficiencia en el código• Unidad aritmética lógica (ALU) de 32b• Unidad aritmética de registros auxiliares (ARAU):Genera direcciones de memoria datoOperaciones de la ALU• Registro de corrimiento, hacia la derecha o izquierda 16b

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Características de DSP TMS320F28xxx

• Ejecuta multiplicaciones de 32 x 32b con resultado de 64b• Operación multiplicación acumulación (MAC) de 32 x 32ben un ciclo de reloj• Dos operaciones MAC de 16 x 16b (DMAC) en un ciclo de reloj• Emulación de su funcionamiento en tiempo real• Protección de código• En un ciclo de instrucción puede ejecutar instrucciones que leen,modifican y escriben en memoria• Respuesta de interrupciones rápida con salvado automático delcontexto• Sincronía de eventos con latencia mínima

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Comparación de algunos DSP F28xxx

2808 2812 28027 28069 28235 28335

CLK (Mhz) 100 150 60 80 150 150RAM (Kw) 18 18 6 50 36 36FLASH (Kw) 64 128 36 128 256 256PWM 16 16 9 16 18 18HRPWM 4 – 4 8 6 6QEP 2 2 0 2 2 2EV 4 6 1 3 6 6Timers 14 8 9 16 16 16I2C 1 – 1 1 1 1SCI UART 2 2 1 2 3 3SPI 4 1 1 2 1 1CAN 2 1 – 1 2 2GPIO 35 56 22 54 88 88McBSP – 1 – 1 2 2DMA – – – 6 6 6Canales ADC 16 16 16 16 16 16ADC Tc (ns) 160 80 217 180 80 80

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Características avanzadas TMS320F2833x

• Módulo McBSP (multichannel buffered serial port): puerto seriesíncrono multicanal con características principales:- Hasta 128 canales- Comunicación full-duplex- Relojes y tramas independientes para transmisión y recepción- Dos registros FIFOs de 32 bits y 16 niveles.• Seis canales de acceso directo a memoria (DMA).• Unidad aceleradora de punto flotante a 32 bits.• Unidad de punto flotante (FPU) con precisión simple IEEE-754.• Unidad de trigonométrica de punto flotante (TMU)• Unidad de matemáticas complejas y el algoritmo Viterbi (VCU).

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Arquitectura General TMS320F28xxx

Familias: F2808, F2812, F28027, F28069, F28335

S P I

G P I O

Manejador de

S C I B

S C I A

ADC, 12 bits

Watchdog

McBSP

Convertidor

Manejador deEventos A

Eventos BMemoria

FLASH

Memoria

Multiplicador

32 x 32

de

PIE

Unidad

Timers

Tresde

AuxiliaresRegistros

32 bits

Bus de Datos

C P U

A L U

D(15..0)

32

22

32

32

Bus de Programa

ROM

Memoria

(boot)RAM

A(18..0)

en TiempoReal

JTAG

CAN

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Arquitectura General TMS320F28377s

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Tarjeta de desarrollo: Delfino TMS320F377s

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Diagrama de pines DSK TMS320F28377s

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Arquitectura general de un DSP

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Cuatro niveles de pipeline

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Seis niveles de pipeline

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Ocho niveles de pipeline

CLK

T

I8I7I6I5I4I3I2

I7I6I5I4I3I2I1

I6I5I4I3I2I1

I5I4I3I2I1

I1

UNIDADES

I1

I1

I2

I2 I3

I4I3

CICLO DE MAQUINA EN UNA ARQUITECTURA SECUENCIAL

I1

I1

I2

I2

I3

I3

I4

I4

I4

I5

I5

I5

I5

I6

I6

I6

I6

I7

I7

I7

I7

I8

I8

I8

I8

I9 I10 I11 I12

I9

I9

I9

I10

I10

I11

D1F1 F2 D2 R1 R2 X W

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−−

−− −−

F1 F2 D1 D2

T T T T T T T T T T T

I1 I 2

F1

F2

D1

D2

R1

R2

X

W

CICLO DE MAQUINA DE LA ARQUITECTURA PIPELINE DEL C28x

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Pipeline de 8 niveles

F1: Dirección de instrucción de 22b en PAB

F2: Contenido de instrucción de 32b en PRDB

D1: Decodificación de instrucción de 16b o 32b

D2: Resuelve la dirección del operando

R1: Dirección del operando

R2: Toma el operando

X: Ejecuta la instrucción

W: Almacena el contenido en memoria

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Kernel de un DSP

y(n) =N−1∑

i=0

hix(n − i) (1)

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Kernel de un DSP

y(n) =N−1∑

i=0

hix(n − i) (1)

hN−1

SUMADOR

MULTIPLICADOR

+

BUS DE DATOS

UNIDAD

DIRECCIONA−

DE

MIENTO

CONTROL

UNIDAD

DE

hoh1h2h3

.

.

.

.

x(n−1)x(n−2)x(n−3)

x(n)

.

.

..

x(n−N−1)

BUS

INTERFAZ

PERIFERICOS

A

DE

DIRECCIONES

x(n−i)hi

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Partes a estudiar

Registros

Memoria y modos de direccionamiento

Unidad central de proceso

Unidad de control

Periféricos

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

CPU de DSP TMS320F28xxx

Perifericos

Bus de lectura de Datos (32b)

Bus de Escritura de Datos y Programa (32b)Interfaces

4G x 16b

Datos

Programa

4M x 16bDecod.

Bus de direcciones de Programa (22b)

Bus de lectura de Datos de Programa (32b)

Bus de direcciones de Datos (32b)

A R A U

SP

DP @ x

en

Tiempo

Real

JTAG

Bus de direcciones de Escritura (32b)

Bus de Registros y Resultados

M E M O R I A

MULT.32 x 32

PC

A L U

XAR7. . .XAR0

Externas

ACC

P

Emulacion

T

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Unidad central de proceso

SH(m) R / L(0..6)

MUX

MULTIPLICADOR

XT(32) o T / TL

Dual 16 x 16b32 x 32b

P(32) o PH / PL

A L U (32b)

A C C (32b)

AH(16) AL(16)

MSB LSBLSB MSBAH AH AL AL

CSXM

VZ

N

OVM

OVC/OVCU

SH(o) R / L(0..16)

SH(i) R / L(0..16)

16/32

8/16

16

32

3232

TC

Bus de datos

Bus de datos

Bus de programa

32

32

32

32

3232

32

32

MUX

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Registros

• ACC Acumulador de 32b• AH Parte alta del ACC, 16b• AL Parte baja del ACC, 16b• XAR0 Registro auxiliar 0, 32b• XAR1 Registro auxiliar 1, 32b• XAR2 Registro auxiliar 2, 32b• XAR3 Registro auxiliar 3, 32b• XAR4 Registro auxiliar 4, 32b• XAR5 Registro auxiliar 5, 32b• XAR6 Registro auxiliar 6, 32b• XAR7 Registro auxiliar 7, 32b

• AR0 Parte baja de XAR0, 16b• AR1 Parte baja de XAR1, 16b• AR2 Parte baja de XAR2, 16b• AR3 Parte baja de XAR3, 16b• AR4 Parte baja de XAR4, 16b• AR5 Parte baja de XAR5, 16b• AR6 Parte baja de XAR6, 16b• AR7 Parte baja de XAR7, 16b

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Registros

• DP Apuntador de página, 16 b• IFR Banderas de interrupción,16b• IER Habilitador deinterrupciones, 16b• DBGIER Habilitador dedepuración de interrupciones,16b• P Registro producto, 32b• PH Parte alta de P, 16b• PL Parte baja de P, 16b

• PC Contador de programa,22b• RPC Retorno del contador deprograma 22b• SP Apuntador de pila, 16b• ST0 Registro de estado 0, 16b• ST1 Registro de estado 1, 16b• XT Registro multiplicando,32b• T Parte alta de XT, 16b• TL Parte baja de XT, 16b

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Principales modos de direccionamiento

Inmediato

Directo:• Paginado• Por Stack

Indirecto• Acarreo inverso• Buffer circular

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Modo directo

BUS DE DATOS

XYWT

OFFSET

DP 16b OFFSET

6b

DIR_22b

MOV @W, AL

ADD AL, @Y

MOVW DP, #PAG_X

BUS DE DIRECCIONES

PAG_n.

PAG_n+1.

PAG_X.

MEMORIA DE DATOS

MOV AL, @X

PAGINA DE DATOS

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Unidad de direccionamiento y unidad ARAU

XAR0XAR1XAR2XAR3XAR4XAR5XAR6XAR7

A R A U

32

16

22

SP +−[ 6 b]22

6

6 LSbDP (16)

Bus de datos

Bus de Programa

Datosde

MemoriaMUX

X

U

M

Indirecto

Por la pila

Directo

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Direccionamiento por Pila

Operando Descripción

* -SP[6b] Dir. dato = SP(16b) - Offset (cte. de 6b)* SP++ si loc16 SP = SP + 1

si loc32 SP = SP + 2* SP– si loc16 SP = SP - 1

si loc32 SP = SP - 2

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Modo de direccionamiento indirecto

BUS DE DATOS

MEMORIA DE DATOS

Dir_dato 32b

dir_X

ADD ACC, *XAR2++

*XARi++

MOVL XAR3, #W

MOVL XAR1, #X

MOVL XAR2, #Y

MOVL *XAR3−−, ACC

MOVL ACC, *XAR10++

*XARi0−−

*XARi 0++

*XARi−−

XAR0XAR1XAR2XAR3XAR4XAR5XAR6XAR7

A R A U

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Direccionamiento circular

12

3

4

5

6

789

10

11

12

13

14

1516

123456789

10111213141516

BUFFER CIRCULARMEMORIA

*XAR6%++

XAR6(7..0)

XAR1(7.. 0)

*XAR6%++*XAR6%++

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Algoritmo de direccionamiento circular

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Sistema de control

La lógica del generador de direcciones en memoria programa

Registros de control y estado ST0 y ST1

El contador de programa (PC)

El apuntador de pila (SP)

La señal de reset externo

Las interrupciones

El contador de repetición (RPTC)

Iinstrucciones que cambian el flujo del programa

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Operación de la pila

La pila crece de la parte baja de la memoria a la parte alta.

El SP siempre apunta la próxima localidad vacía en la pila.

En el reset el SP es inicializado con la dirección 0000 0400h.

Cuando se salva algún valor de 32b en la pila, la palabramenos significativa se salva primero y en la siguiente localidadla palabra más significativa (formato little endian).

Cuando ocurre un sobreflujo del SP, con una dirección más alláde FFFFh o 0000h, el SP opera en forma circular.

Larry Escobar Arquitecturas de DSP TMS320F28xxx

Kernel de un DSPCPU de DSP TMS320F28xxx

Modos de direccionamientoUnidad de direccionamiento

Sistema de controlPeriféricos

Periféricos

Entradas y salidas (I/O) digitales de propósito general (GPIO).

Temporizadores del CPU de 32b.

Dos módulos manejadores de eventos (EVA y EVB).

Un módulo de conversión análogo - digital (ADC).

Módulo de interfaz de comunicación serial (SCI-A, SCI-B).

Módulo de interfaz de puerto serial (SPI).

Controlador de red de área (eCAN) mejorado.

Módulo I2C.

Módulo de puerto serial multicanal con buffer (McBSP).

Transferencia por DMA

Larry Escobar Arquitecturas de DSP TMS320F28xxx