Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de...

43
Electrocomponentes S.A. SASE 2011 Comparativas de CPU’s de 32 bits Agenda Microcontroladores vs. Microprocesadores. Elementos de la arquitectura. Core ARM. Core AVR32. Core Coldfire. Core Power PC. Concluciones.

Transcript of Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de...

Page 1: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Electrocomponentes S.A.SASE 2011

Comparativas de CPU’s de 32 bits

Agenda

• Microcontroladores vs. Microprocesadores.

• Elementos de la arquitectura.

• Core ARM.

• Core AVR32.

• Core Coldfire.

• Core Power PC.

• Concluciones.

Page 2: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

¿Qué es un Microprocesador?

• Un Microprocesador (uP) es un circuito integrado que incorpora en su interior una unidad central de proceso (CPU) y todo un conjunto de elementos lógicos que permiten enlazarlo con otros dispositivos como pueden ser memorias y puertos de entrada y salida (I/O). Es un sistema del tipo “ABIERTO”.

¿Qué es un Microcontrolador?

• Un microcontrolador (uC) es un circuito integrado que nos ofrece las posibilidades de un pequeño computador. Es decir, que en su interior podemos encontrar un procesador, memorias, y varios periféricos (puertos

I/O, A/Ds, D/A, etc.).

Page 3: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Bonus

• Un procesador digital de señales o DSP (sigla en inglés de digital signal processor) es un sistema basado en un microprocesador que posee un juego de instrucciones, un hardware (MAC) y un software optimizados para aplicaciones que requieran operaciones numéricas a muy alta velocidad. Debido a esto es especialmente útil para el procesado y representación de señales analógicas en tiempo real.

Distintos CORE

Page 4: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Arquitectura

• La arquitectura de un procesador esta formada por:

– La arquitectura del set de instrucciones (ISA).

– El ó los buses de comunicaciones.

– La segmentación (pipeline).

– El soporte de memoria (virtual/protegida).

ISA – Tipo de Instrucciones

• Cuando hablemos del set de instrucciones o mejor dicho la arquitectura del set de instrucciones (ISA), se tendrá en cuenta varios elementos.

– El tipo de datos con que trabaja.

• En nuestro caso todas las arquitecturas que analizaremos son de 32 bits. Todas van a soportar trabajar con datos 8, 16 y 32 bits. Ante cualquier excepción se hará una mención.

– El tipo de instrucciones propiamente dicho.

– Los registros.

– Los modos de direccionamiento.

– Las excepciones/interrupciones y su manejo.

Page 5: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

ISA – Tipo de Instrucciones

• Los sets de instrucciones suele estar comúnmente separados en dos grupos:

– RISC: Reduce Instuction Set Computer.

La filosofía de estos dispositivos se concentra en reducir la complexidad de las instrucciones desempeñadas por el hardware, porque es fácil proveer mayores flexibilidad e inteligencia en el software que en el hardware, lo que conlleva un aumento de la complejidad del compilador.

– CISC:Complex Instruction Set Computer.

Esta filosofía se basa en aumentar la complejidad del hardware para la funcionalidad de las instrucciones, lo que conlleva un set de instrucciones mas complicado, pero produce que el complidor utilice menos recursos.

ISA – Tipo de Instrucciones

• Todas las arquitecturas de procesadores que analizaremos poseen un set de instrucciones tipo RISC. A continuación veremos sus características.

• Las principales características de una arquitectura tipo RISC son:

– Gran cantidad y uniformidad de registros, que pueden almacenar datos y direcciones. Actuando como memoria local de acceso rápido para todas las operaciones de procesamiento de datos.

– Arquitectura Load-Store.

– Modos de direccionamiento simples, con todas las direcciones de load/store siendo determinadas desde contenidos de registros y campos de instrucciones.

– Cantidad de campos y largos de instrucciones fijos, lo que facilita la decodificación de la mismas.

– Reducido numero de instrucciones, las cuales debido a su simplicidad pueden ser ejecutadas en un solo ciclo de maquina. El complilador sintetizara operaciones complejas en múltiples operaciones sencillas.

• Estas características, generan un aumento del desempeño del procesador con el costo de un aumento en el tamaño del código.

Page 6: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

ISA – Terminos

• MIPS es el acrónimo de "millones de instrucciones por segundo". Es una forma de medir la potencia de los procesadores. Sin embargo,esta medida sólo es útil para comparar procesadores con el mismo juego de instrucciones y usando benchmarks que fueron compiladospor el mismo compilador y con el mismo nivel de optimización.

• El Dhrystone es un pequeño benchmark sintético que pretende ser representativo de programación entera de sistemas. Está basado en estadísticas publicadas sobre uso de particularidades de los lenguajesde programación, sistemas operativos, compiladores, editores, etc.

Bus de comunicaciones

Arquitectura Von Neumann

Arquitectura Harvard

Page 7: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Segmentación

• Segmentación: pipeline, es un método por el cual se consigue aumentar el rendimiento de algunos sistemas electrónicos digitales (microprocesadores). La segmentación consiste en descomponer la ejecución de cada instrucción en varias etapas para poder empezar a procesar una instrucción diferente en cada ciclo de maquina y de esta forma trabajar con varias simultáneamente.

Segmentación

• Algunos microprocesadores tienen las siguientes etapas en una instrucción:

– IF: búsqueda

– ID: decodificación

– EX: ejecución de unidad aritmético lógica

– MEM: memoria

– WB: escritura

• Cada una de estas etapas de la instrucción usa en exclusiva un hardware determinado del procesador, de tal forma que la ejecución de cada una de las etapas en principio no interfiere en la ejecución del resto.

Page 8: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Segmentación

• Algunos procesadores poseen una segmentación que permite comenzar mas de una instrucción por ciclo de maquina, es decir tiene “n” etapas de pipeline y de esta forma conseguir mayor paralelismo.

• Existen dos tipos de arquitecturas para este tipo de segmentación:

– Superescalar

– VLIW (Very Long Instruction Word)

• La diferencia de estas arquitecturas radica en quien decide que instrucciones se ejecutan en paralelo.

– Superescalar, lo decide el procesador en tiempo de ejecución.

– VLIW, lo decide el programador o el compilador.

Soporte de memoria

• La o las unidades de soporte de memoria son dispositivos de Hardware formado por un grupo de circuito integrados, responsable del manejo de los accesos a la memoria por parte de la Unidad de Procesamiento Central (CPU).

Entre las funciones de estos dispositivos se encuentran la traducción de las direcciones lógicas (o virtuales) a direcciones físicas (o reales), la protección de la memoria, el control de caché y, en arquitecturas de computadoras más simples (especialmente en sistemas de 8 bits), Bank switching.

• En la actualidad muchos procesadores separan la funciones de traducción de direcciones de memoria y de protección de memoria en dos unidades, llamando a la primera MMU (VMSA como lo suele llamar ARM) y a la segunda MPU (PMSA como lo suele llamar ARM).

• Cache: Un caché es un sistema especial de almacenamiento de alta velocidad. Puede ser tanto un área reservada de la memoria principal como un dispositivo de almacenamiento de alta velocidad independiente.

• TCM: Memoria fuertemente acoplada (en inglés: Tightly Coupled Memory), es la memoria del tipo que tiene los microcontroladores, a la que se accede directamente. La memoria en sistemas con cache no es este tipo de memoria, ya que esta entre la memoria y el micro se encuentra el cache.

Page 9: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Arquitecturas ARM

• ARM posee un gran numero de arquitecturas, las mas difundidas son:

– ARMv4T (ARM7TDMI y ARM9T)

– ARMv5TEJ (ARM926EJ y ARM7EJ)

– ARMv6 (ARM11)

– ARMv6-M (Cortex-M0)

– ARMv7

• Perfil M, diseñado para aplicaciones de microcontroladores, un procesamiento eficiente es tan importante como, el bajo consumo y un bajo costo.

• Perfil R, diseñado para aplicaciones embebidas de alta prestaciones, en los cuales un desempeño en tiempo real es necesario.

• Perfil A, diseñado para correr sistemas operativos tales como Linux o Windows CE.

Set de Instrucciones

• Inicialmente los procesadores ARM solo tenían un set de instrucciones de 32 bits (set ARM).

• A partir de la arquitectura ARMv4T, se incorpora un set de instrucciones de 16 bits (set Thumb).

• Este nuevo set de instrucciones:

– Reduce las funcionalidades del procesador, ya que para reducir el largo de instrucciones son eliminados de este los bits de ejecución condicional y uno de los operadores que las instrucciones de 32 bits incluían.

– Aumenta la cantidad de instrucciones para realizar una tarea particular, pero disminuye la densidad de código total.

– Esta reducción de funcionalidades produce una disminucion del desempeño, en el caso de un ARM7TDMI de los 0.94 DMIPS/Mhz en modo ARM, pasa a 0.74 DMIPS/Mhz en modo Thumb.

– En sistemas donde los puertos o el ancho del bus es menor a 32 bits se consigue un aumento de desempeño trabajando en modo Thumb respecto al modo ARM.

Page 10: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Set de instrucciones

• A partir del procesador ARM1156 (arquitectura ARMv6T2), se incorpora el set de instrucciones Thumb 2.

• Segunda generación del set Thumb.

– Blended 16 bit y 32 bit set de instrucciones.

– 25% mas rapido que Thumb

– 30% mas chico que ARM.

• Incrementa el desempeño pero mantiene la densidad de código.

• Maximiza el cache y el uso de la memoria TCM.

Modos de Operación

• La mayoría de los ARM poseen múltiples modos de operación:

– ARMv4/ARMv5 posee 7.

– ARMv6/ARMv7-R/ARMv7-A poseen 8.

– ARMv6-M/ARMv7-M poseen 3.

• Todos poseen un modo usuario (User) en el cual el procesador tiene acceso restringido a distintos recursos del sistema (memoria, registros) y no puede cambiar de modos. Este es el modo en que corren la mayoría de las aplicaciones.

• El modo de sistema (System) es un modo privilegiado que permite el uso de los recursos restringidos, con la salvedad de algunos registros destinados a los distintos modos en los cuales puede entrar el procesador a raíz de una excepción. Esto lo hace adecuado para sistemas operativos.

• Los modos restantes (FIQ,IRQ,Supervisor, Abort, Undefined, Monitor*), son modos privilegiados y se accede a ellos a través de excepciones, es por ello que se los denomina modos de excepción. Tienen acceso a los recursos restringidos del sistema y pueden cambiar de modo libremente.

Page 11: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Modos de Operación

• Los procesadores de arquitectura ARMv6-M y ARMv7-M poseen 2 modos de operación y 2 niveles de privilegio.

– Thread mode.

– Handler mode.

– Nivel privilegiado.

– Nivel usuario.• Los modos determinan si el

procesador esta corriendo un programa normal o corriendo un handler de excepción.

• Los niveles de privilegio proveen un mecanismo para salvaguardar los accesos a memoria en regiones criticas como también un modelo de seguridad básico.

Registros

• Las arquitecturas ARMv4/5/6/7-R/7-A poseen 37 registros de propósito general, los cuales pueden almacenar tanto datos como direcciones.Todos ellos son de 32 bits y son comunmente identificados con la letra “r”, por ejemplo r14.

• Hay hasta 18 registros activos, de los cuales 16 son registros de datos y 2 registros de estado del sistema.

• De los 16 registros de datos, tres estan asignados a particulares tareas o funciones especiales:

– r13, es tradicionalmente usado como “stack pointer”(sp), y almacena la cabeza de el stack en el modo de procesamiento actual.

– r14, es llamado “link register”(lr) y es donde el core almacena el valor de retorno si una subrutina es llamada.

– r15, es el “program counter” (pc) y contiene la direccion de la proxima instrucción que el procesador debe buscar.

• Los otros dos 2 registros son de estado de programa:

– cpsr, registro de estado de programa actual.

– spsr, registro de estado de programa de back up (saved).

Page 12: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

r0

r1

r2

r3

r4

r5

r6

r7

r8

r9

r10

r11

r12

r13 (sp)

r14 (lr)

r15 (pc)

cpsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r8

r9

r10

r11

r12

r13 (sp)

r14 (lr)

spsr

FIQ IRQ SVC Undef Abort

User Moder0

r1

r2

r3

r4

r5

r6

r7

r8

r9

r10

r11

r12

r13 (sp)

r14 (lr)

r15 (pc)

cpsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r8

r9

r10

r11

r12

r13 (sp)

r14 (lr)

spsr

Current Visible Registers

Banked out Registers

FIQ IRQ SVC Undef Abort

r0

r1

r2

r3

r4

r5

r6

r7

r15 (pc)

cpsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r8

r9

r10

r11

r12

r13 (sp)

r14 (lr)

spsr

Current Visible Registers

Banked out Registers

User IRQ SVC Undef Abort

r8

r9

r10

r11

r12

r13 (sp)

r14 (lr)

FIQ ModeIRQ Moder0

r1

r2

r3

r4

r5

r6

r7

r8

r9

r10

r11

r12

r15 (pc)

cpsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r8

r9

r10

r11

r12

r13 (sp)

r14 (lr)

spsr

Current Visible Registers

Banked out Registers

User FIQ SVC Undef Abort

r13 (sp)

r14 (lr)

Undef Moder0

r1

r2

r3

r4

r5

r6

r7

r8

r9

r10

r11

r12

r15 (pc)

cpsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r8

r9

r10

r11

r12

r13 (sp)

r14 (lr)

spsr

Current Visible Registers

Banked out Registers

User FIQ IRQ SVC Abort

r13 (sp)

r14 (lr)

SVC Moder0

r1

r2

r3

r4

r5

r6

r7

r8

r9

r10

r11

r12

r15 (pc)

cpsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r8

r9

r10

r11

r12

r13 (sp)

r14 (lr)

spsr

Current Visible Registers

Banked out Registers

User FIQ IRQ Undef Abort

r13 (sp)

r14 (lr)

Abort Moder0

r1

r2

r3

r4

r5

r6

r7

r8

r9

r10

r11

r12

r15 (pc)

cpsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r13 (sp)

r14 (lr)

spsr

r8

r9

r10

r11

r12

r13 (sp)

r14 (lr)

spsr

Current Visible Registers

Banked out Registers

User FIQ IRQ SVC Undef

r13 (sp)

r14 (lr)

Registros

Registros

• Los procesadores de arquitectura ARMv6-M y ARMv7-M poseen 16 registros de 32 bits (R0–R15) y un numero de registros especiales.

• Los registros R0–R12 son de propósito general , pero algunas instrucciones del modo Thumb 16-bits solo pueden acceder a R0–R7 (registros bajos), mientras que las instrucciones del modo Thumb-2 (32 bits) pueden acceder a todos los registros inclusive R8-R12 (registros altos).

• Los registros especiales tiene funciones predefinidas y pueden solo ser accedidos por instrucciones de acceso a registros especiales (MSR, MRS).

Page 13: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Excepciones/Interrupciones

• Una excepción es un evento que se produce durante la ejecución del programa y que necesita cambiar la secuencia normal de ejecución de las instrucciones.

• Las interrupciones son un tipo especial de excepciones que son causadas por periféricos externos al core.

• Para manejar las múltiples interrupciones que pueden generar los periféricos suele haber lo que se llama un controlador de interrupciones, quien es el que produce la excepción. (En algunas arquitecturas este control de interrupciones se realiza por software)

• Un concepto importante es la latencia, que definimos como el intervalo de tiempo desde que una señal de interrupción aparece hasta que se ejecuta la primera búsqueda (fetch) de una instrucción asociada a la rutina se servicio de la interrupción (ISR).

• Los handlers tienen dos métodos principales para reducir la latencia de las interrupciones:

– Handler de interrupciones anidadas, permite que una interrupción ocurra cuando se esta ejecutando una rutina de servicio de interrupción previa. Esto se logra reactivando las interrupciones una vez que se atiende la interrupción. Una vez que la interrupción anidada es completada, el control es devuelto a la rutina de servicio de la interrupción original.

– Handler de interrupciones priorizadas, se programa el controlador para que ignore interrupciones de menor o igual prioridad que la que se encuentre en curso. Esto reduce la latencia de interrupciones de mayor prioridad.

Manejo de Excepciones

• Cuando una excepcion ocurre, el ARM:

– Finaliza la ejecución de la instruccion en curso.

– Copia el registro CPSR dentro de SPSR_<mode>

– Se configura apropiadamente los bits de CPSR.

• Se cambia al estado ARM.

• Se cambia al modo de excepcion.

• Se deshabilitan las interrupciones (si se requiere)

– Se almacena la direccion de retorno en LR_<mode>

– Configura el PC al vector de direccion.*

– Se salva el contexto.

• Determinar la fuente de interrupcion, ir a la rutina de servicio correspondiente.

• Para retornan, el handler de la excepcion necesita:

– Recuperar el CPSR desde el SPSR_<mode>

– Recuperar el PC desde el LR_<mode>

– Recuperar el contexto.

– Activar las interrupciones (si estuvieran)26

Page 14: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Excepciones / Interrupciones

• Las arquitecturas ARMv4/v5/v6/v7-R/A tienen 7 tipos distintos de excepciones, cada uno de las cuales tiene una prioridad de ejecución y se traducen en 5 modos distintos de operación.

Excepción Modo Prioridad Vector

Reset SVC 1 0x00

UI UND 6 0x04

SWI SVC 6 0x08

Prefetch Abort ABT 5 0x0C

Data abort ABT 2 0x10

Not assigned 0x14

IRQ IRQ 4 0x18

FIQ FIQ 3 0x1C

Disable int.pc= vector table entry

spsr_{mode}=cpsr

Save Context

ISR

Interrupt handler

Restore Context

Enable int.pc= lr-4

cpsr=spsr_{mode}

Interrupt

SUB r14,r14,#4 ;r14-=4STMFD sp!,{r0-r3,r12,r14 } ;save contextLDR r0,=IRQStatus ;int status addrLDR r0,[r0] ;get int statusTST r0,#0x0080 ;if counter timerBNE timer_isr ;then branch to ISRTST r0,#0x0001 ;else if button pressBNE button_isr ;then call button ISRLMFD sp!, {r0-r3,r12,r14 } ;restore contextLDR pc,=debug_monitor ;else debug monitor

Nested Vectored Interrupt Controller (NVIC)

El NVIC es una parte integral del los procesadores ARMv6-M y ARMv7-M y provee la capacidad de

manejar las interrupciones pendientes de procesador.

Estos procesadores usa una tabla de vectores que contienen las direcciones de las funciones de

servicio de las interrupción. Para mejorar la flexibilidad del sistema, utilizan un modelo de

interrupciones basada en una pila (stack). Cuando una interrupción se lleva a cabo, registros críticos

de propósito general son almacenados en la pila. Una vez que el apilamiento y la instrucción de

búsqueda (fetch) se han completado, la rutina de servicio de interrupción, o de falla, se ejecuta. Una

ves terminada esta se produce la recuperación automática de los registros almacenados para que el

programa interrumpido reanude la ejecución normal. Este enfoque elimina la necesidad de escribir

código que se requieren para manipulación de la pila para realizar las rutinas tradicionales de servicio

de interrupción, lo que hace el desarrollo de aplicaciones mucho más fácil. El NVIC soporta anidación

de las interrupciones, lo que permite a una interrupción ser atendida antes, si presenta una mayor

prioridad.

Page 15: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Excepciones / Interrupciones

• Los procesadores ARMv6-M y ARMv7-M soportan el manejo de un numero de excepciones de sistema y de interrupciones externas.

• Los procesadores ARMv6-M y ARMv7-M soportan el manejo de un numero de excepciones de sistema y de interrupciones externas.

• Las excepciones son numeradas del 1 al 15 y las interrupciones del 16 en adelante.

• ARMv6-M soportan hasta 32 interrupciones externas, 4 niveles de prioridades (2 bits) y no soporta prioridades grupales.

• ARMv7-M soportan hasta 496 interrupciones externas, de 3 a 8 bits de niveles de prioridades y soporta prioridades grupales.

Cores ARM comparativas

Core Arquitectura CaracterísticasCache (I/D)/

MMUMIPS @ MHz

ARM7TDMIARMv4T

(Von Neumann)

3-stage pipeline,

Thumbnone

0.94 (ARM) /

0.74 (Thumb)

ARM926EJ-SARMv5TEJ

(Harvard)

5-stage pipeline

Thumb,

Jazelle DBX,

Enhanced DSP

instructions

variable,

TCMs, MMU1.1 DMIPS / MHz

ARM1136JF-SARMv6

(Harvard)

8-stage pipeline,

SIMD, Thumb,

Jazelle DBX, (VFP),

Enhanced DSP

instructions

variable, MMU 1.25 DMIPS/MHz

Page 16: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Cores ARM comparativa

Core Arq. CaracterísticasCache (I/D)/

MMUMIPS @ MHz

Cortex-M0ARMv6-M

(Von Neumann)

3-stage

Thumb, Thumb-2.No cache. 0.9 DMIPS/MHz

Cortex-M3 ARMv7-M (Harvard)

3-stage + branch

speculation

Thumb, Thumb-2.

no cache,

MPU optional.1.25 DMIPS/MHz

Cortex-M4 ARMv7-ME (Harvard)

3-stage + branch

speculation

Thumb, Thumb-2,

Floating Point Unit, DSP.

no cache,

MPU optional.1.25 DMIPS/MHz

Cortex-A8 ARMv7-A

?-stage superscalar

pipeline, ARM,VFP,

NEON,Thumb, Thumb-2.

variable (L1+L2),

MMU+TrustZone

2.0 DMIPS/MHz

in speed from 600

MHz to greater than

1 GHz

Core ARMv7-M (Harvard) CaracterísticasCache (I/D)/

MMUMIPS @ MHz

Cortex-A9 ARMv7-M (Harvard)

8-stage Superescala (OoO) Thumb, Thumb-2,

Jazelle,DSP, SIMD NEON ,FPU

variable (L1+L2),

MMU+TrustZone2.5 DMIPS/MHz

Hasta 2Ghz

Cortex-A15

ARMv7-M (Harvard)

12-stage Superescala (OoO) Thumb, Thumb-2,

Jazelle,DSP, SIMD NEON ,FPU

variable (L1+L2),

MMU+TrustZone Hasta 2.5Ghz

Cores ARM comparativa

Page 17: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Productos Freescale

Herramientas Hardware-Software

• CodeWarrior 10.1

– IDE de Freescale sobre Eclipse.

Limitación de código en 128K.

• KEIL

• IAR

• Freescale tiene implementado en sus placas Tower el OPENSOURCE BDM. Lo cual es una herramienta libre disponible en la web.

Page 18: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Productos Freescale

Herramientas - Software

IDE’s/Tool Chains• ARM LTD• Code Sourcery• Green Hills• IAR Systems• Mentor Graphics• Microcross• Wind River

► RTOS• Express Logic• Green Hills• Mentor Graphics• Micrium• Segger Systems• Quadros• QNX• Wind River

• Codecs• DivX• Visual On• Actimagine

• Browsers• Opera• Access

• Java• Aplix• Aonix

• Navigation• Elektrobit• NavinGo

• Graphics• Mazatech• Yappa• AGS

• Other• Futuremark• Nuance• Loquendo• Virtual Logix• Cidana

En sistemas embebidos, un paquete de soporte de placa (board support package (BSP) ) es una implementación de código para una placa especifica que conforma el sistema operativo. Comúnmente tiene un bootloader que contiene el soporte mínimo para los dispositivos para cargar el sistema operativo y los controladores para todos los dispositivos de la placa.

• Linux OS• Monta Vista• Wind River• Timesys

• Development Boards• Logic PD• Phytec• Eurotech• iWave• Atmark• Kyoto• Cogent• karo

• VoIP/V2IP• Trinity

Convergence• ITRI• Hellosoft• SpiritDSP

• Flash• Adobe• Bsquare• Calsoft

• GUI/UI/HMI• Trolltech• Mentor• QNX• Swell SW • Altia• Fluffy Spider

Page 19: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Herramientas - Hardware

PEEDI - JTAG/BDM/SWD Emulator and Flash Programmer

PEEDI is an EmbeddedICE solution that enables you to debug software running on ARM, CORTEX-M3, CORTEX-A8, Power Architecture, ColdFire, Blackfin, MIPS32, AVR32 processor cores via the JTAG/BDM/SWD port. PEEDI provides the services needed to perform all debugging operations

►JTAG Tools• ARM LTD• American Arium• Green Hills• IAR Systems• Kyoto

Microsystem• Lauterbach• Macragigor

Systems• Mentor Graphics• Sophia Systems• Signum• Wind River

Productos ATMEL

Page 20: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Productos ATMEL

• SAM3S

– Microcontrolador de propósito general, con hasta 256KB de Flash, USB y compatible con AT91SAM7S serie. Opera a 64Mhz.

• SAM3U

– Microcontrolador pensado para aplicaciones con alta taza de transmision de datos, incluye USB HS (480Mbps), interfase SDIO/SD/MMC. Opera a 96Mhz.

• SAM3N

– Microcontrolador pensado para aplicaciones de bajo consumo, compatible con familia SAM3S. Opera a 48Mhz.

Productos ATMEL

• AT91SAM9XE

– Microcontrolador con hasta 512K de Flash, múltiples interfases. Opera a 180Mhz.

• AT91SAM9Gxx

– Microprocesador con gran número de periféricos para conectividad e interfase de

usuario, soporta DDR2. Opera a 400Mhz.

• AT91SAM9M1x

– Especialmente diseñado para aplicaciones multimedias, incluye un decodificador

de video por hardware, acelerador 2D y controlador TFT LCD. Opera a 400Mhz.

Page 21: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Herramientas Hardware-Software

AT91SAM-ICE JTAG Emulator

Permite programar y debuggear toda la linea de core ARM de Atmel, es decir SAM7 (ARM7)/ SAM9 (ARM9)/SAM3 (Cortex-M3)

http://www.atmel.com/dyn/resources/prod_documents/atmel_tutorial_source.ziphttp://www.yagarto.de/

Arquitecturas AVR32

• La arquitectura AVR32 tiene lo que ellos llamas 2 microarquitecturas, las cuales le permiten adaptar un mismo procesador a distintos tipos de aplicaciones.

– AVR32A, pensada para aplicaciones de microcontroladores, tales como AT32UC3A/B.

– AVR32B, pensada para aplicaciones de microprocesadores, tales como la línea AP7000.

Page 22: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Set de Instrucciones

• El procesador puede trabajar con datos de 8,16,32 y 64 bits.

• El procesador AVR32A posee dos set de instrucciones .

– Un set de instrucciones compacto, el cual es de 16 bits.

– Un set de instrucciones extendido, el cual es de 32 bits.

• Al igual que lo comentado para las arquitecturas ARM, esto permite reducir la densidad de código pero tiene como consecuencia la reducción del desempeño.

• Todas las instrucciones deben ser puestas en memoria en el limite de 16 bits (halfword). Las instrucciones mas extensas pueden ser colocadas en forma alineada o no.

• Las instrucciones son almacenadas en formato big endian.

Modos de operación

• Los procesadores AVR32 poseen multiples modos de operaciones, los cuales los podemos separar en modos privilegiados y modos sin privilegio. Los primeros son llamados modos de sistema.

• Luego del reset el procesador estará en el modo supervisor.

• El cambio modo se puede llevar a cabo a través de software, o puede ser causado por una interrupción externa o un proceso de excepción.

• En el modo de aplicación, modo sin privilegios, la mayoría de los registros de sistema, la parte superior del registro de estado y las áreas de memoria protegida, no podrán ser accedidas.

Page 23: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Registros

• La procesadores AVR32A poseen 23 registros de propósito general los cuales pueden almacenar tanto datos como direcciones.Todos ellos son de 32 bits y son comúnmente identificados con la letra “R”, por R12.

• Tres de ellos poseen funciones particulares, stack pointer, link register y program counter. Además de estos existe el registro de estado “SR”, por lo que en todo momento habrá 17 registros activos.

• A diferencia de los ARMv4 y al igual que los ARMv7-M, los AVR32A no poseen “shadow register”, es decir que cuando hay un cambio de modo, producido por una excepción, interrupción o por comandos, los registros que nos interesen deben ser stackeados.

• Solo el registro stack pointer posee registros de respaldo para los modos privilegiados, lo que facilita un stack de sistema dedicado.

• Cuando sucede una excepción el registro de estado (SR) y el de la dirección de retorno son almacenados automaticamente en el stack.

• Si sucede una interrupción son almacenados automaticamente el registro de estado, la direccion de retorno y los registros R8-R12 y LR.

Registros

Page 24: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Excepciones / Interrupciones

• En el manual del AVR32 se los engloba a las excepciones e interrupciones como eventos.

• El procesador AVR32A posee 28 fuentes distintas de eventos.

• Cada una de las cuales posee una prioridad y dirección a la cual el handler accede cuando el evento es aceptado.

• La mayoría de los handler de evento estan ubicados secuencialmente, y en ellos hay una instrucción de salto a la rutina de servicio. Pero existen algunos pocos handler que tiene espacio suficiente para escribir una pequeña rutina en ellos.

• Posee un controlador de interrupciones, en el cual todas las fuentes de interrupción externa poseen una rutina de servicio vectorizadas.

• El controlador permite configurar distintos niveles de prioridades e inclusive activar la ejecución de interrupciones anidadas.

• Como ejemplo el controlador AVR32UC3A maneja hasta 2048 líneas de interrupciones separadas en 64 grupos de 32 interrupciones.

Excepciones / Interrupciones

• Cuando sucede un evento, y este no esta enmascarado, el hardware automáticamente inhibe la generación de eventos de igual o menor prioridad.

• Luego el contexto es automáticamente salvado. Por default son salvados el Status register y el Program counter, pero si el evento es INT0-INT3, se le suman R8-R12 y LR.

• En anidamiento de interrupciones se inhibio en el primer paso pero se puede activar en la rutina a traves de los bits EM y GM.

• A continuación la dirección del Handler del evento es cargado en el Program counter.

Page 25: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Excepciones / Interrupciones

• En la figura de la diapositiva anterior, podemos que cada fuente de excepción posee una dirección en la cual se encontrara el handler del evento en cuestión.

• Alguna están definidas, como el Reset, y otras son en función de una dirección base para el vector de excepciones (EVBA) mas un offset definido.

• Las excepciones INT0,1,2 y 3 que corresponden a las interrupciones externas figuran como “Autovectored”. Esto significa que la dirección del handler de cada interrupción externa, que el numero es mucho mayor que las 4 excepciones, esta definido por la EVBA mas un offset, el cual es definido por el controlador de interrupciones.

Bus de comunicaciones

• Las Arquitecturas AVR32 poseen un bus de comunicaciones con arquitectura Harvard.

Page 26: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Segmentación

• La Arquitectura AVR32A posee 3 etapas de segmentación, mientras que la AVR32B posee 7.

Cores AVR32 Comparativa

Core Arquitectura CaracterísticasCache (I/D)/

MMUMIPS @ MHz

AVR32UCAVR32A

(Harvard)

3-stage pipeline,

Set de intrucciones de

16 y 32 bits.

Instrucciones de DSP.

Flash Vault.

Unidad de punto flotante

opcional.

MPU opcional

Entre

1.4 y 1.25 DMIPS/Mhz.

91MIPS/66Mhz

61MIPS/50Mhz

AVR32APAVR32B

(Harvard)

7-stage pipeline

Set de intrucciones de

16 y 32 bits.

Unidad de punto flotante

Instrucciones de DSP y

SIMD

Cache de

intrucciones y datos

MMU

1.4DMIPS/Mhz

210MIPS/150Mhz

Page 27: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

ATMEL-AVR32

AT32UC3

Esta línea de dispositivos esta pensada para aplicaciones que requieran una conectividad USB de muy alta velocidad (HS), un gran desempeño de computo y interfaces de memoria rápidas. Posee un desempeño de 91DMIPS@66Mhz, Hi Speed USB con OTG, SD/SDIO interfaz, NAND Flash y SDRAM interfaz, DAC para audio y esta disponible en 100 y 144 pines. Existe versiones con encriptación AES de 128 y 256 bits.

Esta línea de dispositivos esta pensada para aplicaciones que requieran conectividad, bajo consumo y un gran desempeño de computo, el cual es del orden de 91DMIPS@66Mhz con un consumo de 40mA@3,3V. Además incluye USB 2.0 (FS) con On-The-Go , controlador de Ethernet, interfaz para SDRAM, DAC para audio y esta disponible en 100 y 144 pines.

ATMEL-AVR32

Esta línea de dispositivos esta pensado para aplicaciones portátiles donde el bajo consumo es fundamental. Gracias a la tecnología Picopower logra 0,48mW/Mhz y hasta un consumo de 100nA. Incluye un periférico con capacidad touch sense, FlashVault, corre a una frecuencia de clock de hasta 50Mhz y en tan solo 48 pines.

Esta linea de dispositivos esta pensada para aplicaciones que requieran una tasa de transmisión de datos alta, bajo consumo y un gran desempeño de computo. Esta familia tiene un desempeño del orden de 83DMIPS@60Mhz con un consumo de 23mA@3,3V. Ademas incluye USB 2.0 (FS) con On-The-Go y esta disponible en 48 y 64 pines.

Esta línea de dispositivos esta pensada para aplicaciones automotrices e industriales, optimizada para comunicaciones rápidas y control de motores. Posee interfases CAN, LIN, USB OTG, además PWM con dead-time, ADC, DAC, FPU. Es 5V tolerable y posee un desempeño de 91DMIPS@66Mhz

Page 28: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Herramientas - Software

UC3 Software Framework, este provee drivers y librerias para realizar una aplicación para los productos de la familia AVR32 UC3. Este incluye Drivers para los perifericos, librerias optimzadas para AVR32, aplicaciones Demo, codigo fuente de un RTOS listo para usar. Todo esto en codigo C y compatible con GNU GCC y IAR.

AVR32 GNU Toolchain, este provee un conjunto de programas de linea de comando para crear aplicaciones para microcontroladoresAVR32. Incluye compliador, ensamblador, linker, debugger, herramientas de programación y librerias en C.

AVR32 Studio, es un entorno de desarrollo (IDE) para desarrollarapliciaciones sobre los productos de 32 bits de core AVR. Esta construido sobre Eclipse permitiendo una rapida integracion con terceras partes.

Herramientas - Hardware

AVRDragon

JTAG mkII

AVR ONE!

Page 29: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Arquitecturas ColdFire

• Coldfire es una arquitectura propietaria de Freescale. La primera versión del set de instrucciones de Coldfire fue desarrollada como una verisón reducida del set del M68000.

• A medida que la familia de procesadores Coldfire fue creciendo nuevos set de instrucciones se fueron desarrollando para mejorar el desempeño y la densidad de código.

• Las revisiones disponibles del ISA son:

– ISA_A: The original ColdFire instruction set architecture

– ISA_A+: Combining a major revision with selected instructions from other revisions.

– ISA_B: Added improved data movement instructions, byte- and word-sized compares,

– miscellaneous enhancements

– ISA_C: Added instructions for improved bit manipulation

– FPU: Original ColdFire instruction set architecture for floating-point unit (FPU)

– MAC: Original ColdFire instruction set architecture for multiply-accumulate unit (MAC)

– EMAC: Revised ISA for enhanced multiply-accumulate unit (EMAC)

– EMAC_B: Added instructions for dual-accumulation operations

Arquitecturas Coldfire

• Freescale ofrece varios core con arquitectura Coldfire.

• La principal diferencia entre los core de Colfire es la organización del pipeline.

– V1, estos implementan el ISA C.

– V2, estos implementan el ISA A, con el agregado de soporte para utilización de stack pointer separado y nuevas instrucciones para para el manejo de bits (ISA A+). Además el core incluye una EMAC para el procesamiento de señales.

– V3, estos implementan el ISA A+.

– V4, estos implementan el ISA C, además de incluir una EMAC y una MMU.

Page 30: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Set de Instrucciones

• Los core Coldfire están basados en el concepto de set de instrucciones reducido de largo variable.

• La utilización de este tipo de instrucciones permite un aumento de la densidad de código.

• Mientras la muchas de las operaciones que realiza el core utilizan opcodes de 16 bits, el largo de las instrucciones puede consistir de 16, 32 o 48 bits dependiendo los modos de direccionamiento.

Modos y Registros

• Los procesadores Coldfire poseen dos modos de operación.

– Modo Supervisor.

– Modo usuario.

• En modo usuario todos los core poseen

– 8 registros de 32 bits para datos.

– 8 registros de 32 bits para direcciones.

– 1 registro de 32 bits como PC.

– 1 registro de 8 bits como registro de condición.

• En función de las distintas unidades que se pueden implementar, existiran un conjunto de registros asociados a estos.

– FPU (Unidad de punto flotante)

– MAC

– EMAC

• En modo supervisor posee un conjunto de registros adicionales, los cuales no son todos implementados en las distintas versiones.

Page 31: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Excepciones / Interrupciones

• Una vez que la excepción es detectada y tomada, el procesador realiza cuatro pasos, lo que no incluyen la ejecución de la rutina de excepción:

– Se copia el contenido del status register (SR) en una localización temporaria, se conmuta a modo supervisor, se deshabilita el modo trace y se configura la mascara de interrupciones para evitar ser interrumpido por alguna de menor prioridad.

– El procesador determina el numero del vector de excepción, para cada una de las excepción que pertenece al core (fault excep interrup) existe un numero de vector determinado. Si corresponde a una interrupción de un periferico, el procesador realiza un ciclo reconocimeinto de la interrupción para obtener el numero del periferico y de esta forma determinar el vector de excepción.

– El procesador salva el contexto (SR y PC).

– Se carga en el PC la del vector de excepción

Excepciones / Interrupciones

• La tabla de vectores de excepciones contiene 256 entradas. Las entradas del 0x00 al 0x3F o los primeros 64 vectores son reservados para excepciones del procesador. Los restantes 192 vectores son reservados para el usuario y pueden ser asignados a los periféricos.

• Los Coldfire implementan un controlador de interrupciones (INTC) de 64 entradas, las cuales estan organizadas en 7 niveles de prioridad. Si suceden interrupciones con el mismo nivel de prioridad, se atenderá primero la que tenga numero mayor.

• Dentro de un mismo dispositivo se pueden integrar hasta 3 INTC, permitiendo hasta 192 fuentes de interrupción.

Page 32: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Bus de Comunicación

• Salvo los Coldfire V4, el resto del los procesadores poseen una arquitectura de Bus tipo Von Neumann

Segmentación

• Todos los core de Coldfire incluyen dos

“bloques” de pipeline independientes y

desacopladas.

– Un pipelinde de búsqueda de instrucciones.

– Un pipeline de ejecución.

• Ambos bloques de pipeline están

conectados por un buffer de instrucciones

tipo FIFO, el cual permite búsqueda

adelantada de instrucciones.

• Sin contar IAG ni IB podemos decir que las

etapas de pipeline de cada versión de

Coldfire son:

– V1 y V2 tres etapas.

– V3, cinco etapas

– V4, nueve etapas, mas algunas etapas para

manejo de saltos.

Page 33: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Segmentación

Cores Coldfire comparativa

Core Arq. CaracterísticasCache (I/D)/

MMUMIPS @ MHz

CF V1ISA C

(Von Neumann)

3-stage

Core V2, periphal 8bits

VLI (Varible Length Instruction)

No cache.0.95 DMIPS/Mhz

50Mhz

CF V2ISA A, ISA A+

(Von Neumann)

3-stage

EMAC, FPU

VLI (Varible Length Instruction)

No cache

0.95 DMIPS/Mhz

76MIPS@80Mhz

CF V3ISA A+

(Von Neumann)

5-stage

EMAC, FPU and exta MAC optinal

VLI (Varible Length Instruction)

Cache

0.88 DMIPS/Mhz

211MIPS@240Mhz

CF V4ISA B, ISA C

(Harvard)

9-stage superscalar

pipeline, EMAC, FPU

VLI (Varible Length Instruction)

Cache / MMU

1.54 DMIPS/Mhz

410MIPS@266Mhz

Page 34: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Productos

Productos

Page 35: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Herramientas Hardware-Software

• CodeWarrior V10.1, para ColdFire V1/2/3/4 (Hasta 64 K para V1 y 128K para el resto)

• CodeWarrior V6,3 para ColdFire V1. (Hasta 64Kb de codigo en C gratis)

• Code Warrior V7,2 para ColdFire V2/3/4. (Version para linux disponible)

USB BDM Multilink.(Para micros de 9S08/HC12/V1)

USB Coldfire Multilink(Para micros V2/V3/V4)

Arquitecturas Power PC

• Las POWER ARCHITECTURES las podemos dividir en dos grandes grupos:

– POWER, arquitectura creada por IBM para estaciones de trabajo y servers.

– POWER PC, arquitectura creada por AIM (Apple, IBM y Motorola) para aplicaciones de mercado masivo, tales como set top boxes, consolas de juego, aplicaciones embebidas y computadoras portátiles.

• A diferencia de las arquitectura previamente vistas, existen varias empresas que evolucionan esta arquitectura. Inclusive existe una organización “power.org” cuya función es desarrollar productos con esta arquitectura y definir especificaciones para nuevas arquitecturas.

• Cores en la actualidad.

– e200, e300 and e300e/PPC G2, e500, e600/PPC G4, e5500 – Freescale.

– POWER5,POWER6,POWER7, PowerPC 970– IBM.

– PPC400, Titan - Applied Micro Circuits Corporation (AMCC).

– PowerPC 7xx - IBM / Motorola (freescale).

– Cell – Sony, IBM, Toshiba.

Page 36: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Arquitecturas Power PC

• Existen varias arquitecturas del set de instrucciones (ISA) algunas de las cuales están publicadas y otras no.

– e200: esta basado en la especificación ISA V2.03

– e300: esta basado en las especificaciones del MPC603e (PPC G2).

– e500: esta basado en la especificación ISA V2.03 y el viejo Book E (PPC G2)

– e600: esta basado las especificaciones del PPC G4.

– e5500: esta basado en la especificación ISA v2.06.

Set de instrucciones

• Los cores e200 implementan la arquitectura detallada en la especificación ISA v2.03.

• Esta arquitectura detalla 4 tipo de instrucciones básicas, a las cuales suele asociarse un conjunto de registros.

– Instrucciones de salto.

– Instrucciones de punto fijo.

• 32 registros de propósito general (GPR) de hasta 64 bits

– Instrucciones de punto flotante.

• 32 registros de punto flotante (FPR) de hasta 64 bits.

– Instrucciones de vectores

• 32 registros de vectores (VR) de hasta 128 bits.

• Independiente de los registros para cada tipo de instrucciones, estas arquitecturas implementar otros registros como LR (link register), CTR (Counter register), etc.

• La cantidad de bits de estos registros dependerá de cada implementación.

• Estas arquitecturas puede trabajar con datos enteros de 8,16,32 y 64 bits, de punto flotante de 32 y 64 bits y vectores de 8,16,32 y 128 bits.

Page 37: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Set de instrucciones y Modos de operación

• La arquitectura Power ISA v2.03 define una extensión del set de instrucciones llamada VLE (Variable Length Encoding). Este nuevo set redefine muchas de las instrucciones UISA ( instrucciones de usuario) para que poseen un opcode de 16 bits. De esta forman logran menor tamaño de código y aumento de desempeño en aplicaciones particulares.

• Power ISA v2.03 define también una unidad SPE (Signal Processing Engine).

• Los procesadores Power PC poseen dos modos de operación.

– Modo Supervisor ó Estado privilegiado.

– Modo usuario ó Estado problema.

Registros

• En función del modo de operación es el conjunto de registros que pueden ser accedidos por el procesador.

• Todas las arquitecturas e200 poseen 32 registros de propósito general.

– e200z0, e200z0h y e200z1, poseen registros de 32 bits.

– e200z3 y e200z6, poseen registros de 64 bits.

• Ninguna de las arquitecturas e200 implementa los registros de punto flotante ni los registros de vectores.

– Es decir que las instrucciones de punto flotante descripatas en Power Architecture Book E floating-point no son soportadas por hardware, pero pueden llegar a ser emulados por software.

– Todas las instrucciones aritméticas que ejecute el core se realizaran sobre los registros de propósito general.

– Los core e200z3 y e200z6 implementa registro de propósito general de 64 bits con el fin de soportar las instrucciones de las unidades de punto flotante (FPU) y procesamiento digital de senales(SPE)

Page 38: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Bus de Comunicaciones

• La gran mayoría de los procesadores Power PC posee una arquitectura de Bus tipo Von Neumann.

• Los core e200, son implementan ambos tipos de Bus (Von Neumann y Harvard)

• El caso mas significativo es el e200z0 que posee un modelo Von Neumann, el e200z0, y un modelo Harvard, el e200z0h.

Bus de Comunicaciones

• e200:

– e200z0, e200z6 - Von Neumann.

– e200z0h, e200z1, e200z3 – Harvard.

• e300 – Von Neumann.

• e500 – Von Neumann.

• e600 – Von Neumann.

• e5500 – Von Neumann*.

Page 39: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Excepciones

• La documentación de PPC utiliza las siguientes definiciones:

• Interrupción es la acción en la cual el procesador salva su viejo contexto y comienza la ejecución de un handler de interrupción en una dirección predeterminada.

• Excepciones son referenciadas como eventos los cuales, cuando están habilitados, causan que el procesador realice una interrupción.

• El mecanismo de excepción de la arquitectura PPC produce un cambio de modo del procesador, el cual pasa a modo supervisor.

• Cuando sucede una interrupción, la información del estado del procesador es salvada en los registros “machine state save/restore” (SRR0 y SRR1 para interrupciones no criticas, CSRR0 y CSRR1 para interrupciones criticas, DSRR0 y DSRR1 para interrupciones de debug) y el procesador comienza la ejecución del handler de interrupción.

• La dirección del handler esta determinada por el registro IVPR (Interrupt Vector Prefix register) y un valor de offset

Excepciones

• Múltiples condiciones de excepciones pueden ser mapeadas a un simple vector de interrupción, y pueden ser distinguidas examinando registros asociados con las interrupciones. El registro ESR (Exception Syndrome register) se actualiza con información especifica de la excepción cuando la interrupción sucede.

• Para prevenir perdidas de la información de estado, el handler de interrupciones debe salvar la información almacenada en los registros “machine state save/restore”, tan pronto la interrupción ha sido tomada.

Page 40: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Excepciones

• El hardware soporta el anidado de interrupciones criticas dentro de interrupciones no criticas y el de interrupciones de debug dentro de las otras dos.

• Los pasos en un proceso de excepción son:

• Reconocimiento de la excepción.

• Se obtiene la dirección del handler de la interrupción y se salva en contexto.

• Ejecución del handler de interrupciones

• Como es lógico pensar las excepciones poseen prioridades.

Cores PPC e200 Comparativa

Page 41: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Productos

• La línea de Power PC de Freescale es muy amplia, incluye microcontroladores y microprocesadores.

• Las líneas PPC podemos decir que estan orientadas a dos tipos de aplicaciones fundamentales Networking.

– Plataforma QorIQ.

• Son procesadores de 32 y 64 bits, simple y multiple core (e500, e5500) integrados en 45nm.

– Plataforma PowerQUICC.

• Son procesadores de 32 bits basados en los core e300e, MPC603 (PPC G2), MPC8xxx (PPC G1).

– Host Processors

• Son procesadores de 32 bits basados en los core e500 y e600.

• Y aplicaciones automotrices.

– Plataforma Qorivva MPC 55xx/MPC56xx

• Microcontroladores basados en distintas aplicaciones del core e200.

– Plataforma mobileGT

• Procesadores basados en los core MPC603 (PPCG2) y en los e300.

– Plataforma 5xx

• Microcontroladores y micropocesadores basados en la implementacion original PPC G1 (MPC8xx)

Productos

Page 42: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Herramientas Hardware-Software

• Freescale's CodeWarrior Development Studio for MPC55xx/MPC56xx v2.7, versión gratis hasta 128K de código.

• USBMLPPCNEXUS: USB Power Architecture Nexus Multilink

Conclusiones

• Procesadores pensados para el mismo tipo de mercados, si bien pueden tener alguna diferencia a nivel arquitectura, no presentan grandes diferencias. Por lo tanto la tarea puede ser realizada por cualquiera de ellos sin una notoria diferencia del desempeño.

• La selección de un core en lugar de otro dependerá:

• De los periféricos que el dispositivo integre.

• Costo del dispositivo.

• Costo de herramientas.

• Portabilidad.

Page 43: Electrocomponentes S.A. SASE 2011 · una unidad central de proceso (CPU) y todo un conjunto de elementos ... • Cuando hablemos del set de instrucciones o mejor dicho la arquitectura

Conclusiones

¡¡¡¡¡COMPRE EN

ELECTROCOMPONENTES!!!!!

¡Muchas Gracias!

Electrocomponentes S.A.Ing. Ignacio J. Zaradnik

[email protected]