Electrocomponentes S.A. SASE 2011
Total Page:16
File Type:pdf, Size:1020Kb
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. ¿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.). 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 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 . 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. 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 compilados por 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 lenguajes de programación, sistemas operativos, compiladores, editores, etc. Bus de comunicaciones Arquitectura Von Neumann Arquitectura Harvard 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. 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. 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. 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,