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
Top Related