PAC- Performance-centered Adaptive Curriculum for Employment Needs Programa ERASMUS: Acción Multilateral -517742-LLP-1-2011-1-BG-ERASMUS-ECUE MASTER DEGREE: Industrial Systems Engineering ASIGNATURA ISE1: Introducción a los Sistemas Industriales MÓDULO 2: Microprocesadores y sistemas MP TAREA 2-1: MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP Introducción a los Sistemas Industriales Contenido TAREA 2-1: MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP. ............ 4 1. INTRODUCCIÓN Y OBJETIVOS....................................................................................................... 4 2. CONTENIDO ................................................................................................................................................ 4 2.1 Qué es un microprocesador................................................................................................... 4 2.2 Microprocesadores y microcontroladores ...................................................................... 5 2.3 Componentes, funcionamiento y organización de un microprocesador ... 6 2.4 Arquitectura del Set de Instrucciones (ISA) .............................................................. 10 2.5 Interfaz de la memoria (arquitectura von Neumann y Harvard)................. 10 2.6 Ejemplo microcontrolador, diagrama de bloques .................................................. 12 2.7 Microprocesadores y microcontroladores ARM ....................................................... 14 2.8 Sistemas integrados (embebidos) ..................................................................................... 16 2.9 Paralelismo en MP ...................................................................................................................... 19 2.10 Evolución de los microprocesadores. Resumen de los microprocesadores Intel. .................................................................................................................. 23 3. CONCLUSIONES .................................................................................................................................... 26 4. BIBLIOGRAFÍA Y/O REFERENCIAS .............................................................................................. 27 5. ENLACES DE INTERÉS ....................................................................................................................... 28 Índice de figuras Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura 1: Microcontrolador y microprocesador ............................................................................ 5 2: Configuración mínima de un microprocesador ...................................................... 9 3: Diagrama de bloques simplificado de un microprocesador .......................... 9 4: Arquitectura Von Neumann ............................................................................................... 11 5: Arquitectura Harvard.............................................................................................................. 11 6: Diagrama de bloques de un microcontrolador ................................................... 12 7: Aspecto externo del PIC ..................................................................................................... 13 8: Esquema de arquitectura ARM ....................................................................................... 15 9: Diagrama de la ley de Moore, 1970 -2010 .......................................................... 20 10: Diagrama ejecución sin pipeline ................................................................................. 22 11: Diagrama de ejecución con pipeline ....................................................................... 22 12: Intel 4004 ................................................................................................................................... 23 13: Microprocesador Intel 8008 ........................................................................................... 23 14: Microprocesador Intel 8080 ........................................................................................... 23 MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 2 Introducción a los Sistemas Industriales Figura Figura Figura Figura Figura Figura Figura Figura 15: 16: 17: 18: 19: 20: 21: 22: Microprocesador Microprocesador Microprocesador Microprocesador Microprocesador Microprocesador Microprocesador Microprocesador Intel 8086/8088 ............................................................................. 24 Intel 80286 ........................................................................................ 24 Intel 8386 ........................................................................................... 24 Intel 80486 ........................................................................................ 25 Intel Pentium..................................................................................... 25 Intel Pentium Pro/II/III ............................................................... 25 Intel Pentium 4 ............................................................................... 25 Itanium 2............................................................................................. 26 MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 3 Introducción a los Sistemas Industriales TAREA 2-1: MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP. 1. INTRODUCCIÓN Y OBJETIVOS Los sistemas embebidos están completamente integrados en la vida cotidiana. Si el lector no está familiarizado con este término, seguramente sea escéptico a esta afirmación. Sin embargo, es raro ir a un hogar y que no haya electrodomésticos o una televisión; es bastante inusual que cuando se viaja no se utilice un aparato fotográfico. De hecho, lo habitual es cruzarse continuamente con personas que están utilizando su teléfono móvil, ya sea para conectarse a redes, para hablar, para plasmas cada momento o incluso para guiarse gracias a la función GPS. Todos estos aparatos son sistemas embebidos, o, lo que es lo mismo, sistemas integrados. En este documento, se definirán los microprocesadores y se establecerán las principales diferencias y ventajas frente a los microcontroladores, dispositivos que hoy en día tienen amplio campo de acción y que de una u otra forma representan gran parte del desarrollo tecnológico que se viene dando. Se estudiarán los componentes básicos así como la Arquitectura del Set de Instrucción (ISA). Se estudiará la necesidad del paralelismo en los microprocesadores debido a la demanda cada vez más exigente de los usuarios y la utilización de pipeline. De hecho, se verá cómo ya JL Moore ya en 1965 predijo la tendencia actual, en cuanto al número de transistores por microprocesador. Para finalizar, se hará un repaso a la evolución del microprocesador Intel. 2. CONTENIDO 2.1 Qué es un microprocesador Un microprocesador es un microcircuito muy potente que controla los demás componentes de un sistema dado. Los componentes controlados por un microprocesador pueden ser plaquetas diferentes, o piezas separadas de un equipo eléctrico. Se le tienen que dar instrucciones a un microprocesador para que sepa qué tiene que hacer y cómo debe funcionar. Estas instrucciones están contenidas en un microcircuito aparte. Esto significa que se puede usar el mismo microprocesador con diferentes juegos de instrucciones para varias aplicaciones diferentes. A pesar de ello, hay numerosos diseños de microprocesadores –algunos más potentes que otros, los cuales se usan para objetivos completamente diferentes. Por ejemplo, un microprocesador que se MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 4 Introducción a los Sistemas Industriales usa para navegación aeronáutica seguramente será más potente que uno que se usa para un reloj despertador. 2.2 Microprocesadores y microcontroladores Si se optimiza el microprocesador para aplicaciones de control embebidas se hablará de microcontrolador. Estas aplicaciones típicamente monitorean y fijan numerosas señales de control de un único bit, pero no realizan cálculos exhaustivos. Así, los microcontroladores tienden a tener caminos de datos sencillos que se destacan en operaciones a nivel de bit, para su lectura y escritura a nivel externo. Además tienden a incorporar en el chip del microprocesador varios componentes periféricos comunes en el control de aplicaciones, tales como: periféricos de comunicación serial, temporizadores, contadores, modulador de amplitud de pulso, etc. Esta incorporación de periféricos permite la implementación de un único chip, lo que genera productos de menor costo. Algunos ejemplos de microcontroladores son los MCS-48 y MCS-51 de Intel. Figura 1: Microcontrolador y microprocesador Podemos empezar estableciendo que el uso de una u otra tecnología depende del fin que se espera, pues debido a sus características propias, los microcontroladores y los microprocesadores pueden adquirir variados y diferentes espacios de implementación, por ejemplo, los microprocesadores se han desarrollado fundamentalmente orientados al mercado de los ordenadores personales y las estaciones de trabajo, pues allí se requiere una elevada potencia de cálculo, el manejo de gran cantidad de memoria y una gran velocidad de procesamiento, mientras que los microcontroladores están concebidos fundamentalmente para ser utilizados en aplicaciones puntuales, es decir, aplicaciones donde el microcontrolador debe realizar un pequeño número de tareas, al menos costo posible. En estas aplicaciones el microcontrolador ejecuta un programa almacenado permanentemente en su MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 5 Introducción a los Sistemas Industriales memoria, el cual trabaja con algunos datos almacenados temporalmente e interactúa con el exterior a través de las líneas de entrada y salida de que dispone. El microcontrolador incluye todos estos elementos del microprocesador en un solo circuito integrado por lo que implica una gran ventaja en varios factores: • • • • • • El costo para un sistema basado en microcontrolador es mucho menor, mientras que para el microprocesador es muy alto en la actualidad. Los microprocesadores tradicionales se basan en la arquitectura de Von Newmann, mientras que los microcontroladores trabajan con arquitectura de Harvard. El tiempo de desarrollo de su proyecto electrónico es menor para los microcontroladores. En los microcontroladores tradicionales todas las operaciones se realizan sobre el acumulador. La salida del acumulador está conectada a una de las entradas de la Unidad Aritmética y Lógica (ALU), y por lo tanto este es siempre uno de los dos operandos de cualquier instrucción, las instrucciones de simple operando (borrar, incrementar, decrementar, complementar), actúan sobre el acumulador. En los microcontroladores PIC, la salida de la ALU va al registro W y también a la memoria de datos, por lo tanto el resultado puede guardarse en cualquiera de los dos destinos. La gran ventaja de esta arquitectura (Microcontroladores) es que permite un gran ahorro de instrucciones ya que el resultado de cualquier instrucción que opere con la memoria, ya sea de simple o doble operando, puede dejarse en la misma posición de memoria o en el registro W, según se seleccione con un bit de la misma instrucción. 2.3 Componentes, microprocesador funcionamiento y organización de un Componentes: ALU - Unidad aritmética y lógica: Está formada por una serie de circuitos electrónicos que son capaces de efectuar operaciones: aritméticas (suma y resta binaria), lógicas (AND, OR, NOT Y XOR) y de corrimiento. Para que la ALU efectúe operaciones, los operandos se guardan en los registros de trabajo (operando 1 y operando 2), el resultado de la operación se guarda en un registro llamado ACUMULADOR, antes de transferir el resultado a la memoria o a la unidad de Entrada/Salida. Registro de estados: Contiene los indicadores de estado que son una serie de bits que se modifican según el resultado de las operaciones aritméticas o lógicas, y se guardan en un registro, para posteriormente la UC las considere para tomar una decisión. MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 6 Introducción a los Sistemas Industriales Unidad de control: Para efectuar una tarea, necesita conocer instrucciones e informaciones adicionales que deberán tener en cuenta para coordinar la ejecución de las instrucciones. Una computadora no emite todas las órdenes al mismo tiempo, sino que sigue una determinada secuencia. La fase o rapidez con que se ejecuta una instrucción está determinada por el reloj. La unidad de control está formada, básicamente, por un elemento que interpreta la instrucción (Decodificación) y varios elementos de memoria denominados REGISTROS; Por la UC, deberá conocer cuál es la dirección de la próxima instrucción para poder ir a buscarla una vez que finalice la que se ejecuta, dicha dirección se guarda en un registro llamado Contador de Programa (P.C.). Unidad de Memoria.- Consta de dos dispositivos que son la Memoria RAM y ROM. La memoria RAM se usa para almacenar datos iniciales, resultados parciales y finales, durante la ejecución del programa. Esta RAM introduce, saca y almacena datos como palabras de 8 bits (Tamaño del Bus de Datos). En esta memoria también es posible correr programas que puedan alterarse por el usuario sin necesidad de programar la memoria ROM. La memoria ROM almacena instrucciones y datos que no varían, a lo anterior se llama Programa Principal o Monitor del Sistema. También esta memoria tiene 8 bits de salida y se conecta al Bus de Datos. La sección de Entrada y Salida (E/S) contienen los circuitos de interfase que se requieren para permitir que los dispositivos E/S se comuniquen adecuadamente con el resto de la computadora o sistema mínimo. El Puerto de Entrada se usa para introducir datos al sistema, normalmente se conecta un teclado. El Puerto de Salida saca los datos resultantes del programa, normalmente se conecta un visualizador (DISPLAY) tipo LED o LCD. El bus de direcciones tiene 16 líneas, con ellas se pueden direccionar como 16 máximo 65 536 (2 ) palabras de memoria (patrones de unos y ceros). Las líneas del Bus de Direcciones se conectan tanto a la RAM, la ROM e interfaces de E/S [7]. Buses de conexión: los microprocesadores tiene tres buses que transportan toda la información y las señales involucradas en la operación del sistema. Estos buses conectan el microprocesador (CPU) con cada uno de los elementos de memoria y de E/S, de modo que datos e información puedan fluir entre la CPU y cualquiera de estos elementos. En otras palabras, la CPU está continuamente ocupada en enviar información o recibirla de una ubicación en memoria, de un dispositivo de entrada o hacia un dispositivo de salida (SIS). Los principales buses del sistema son: - Bus de direcciones: el microprocesador emite una combinación binaria para seleccionar un registro de la memoria o de la unidad de E/S para escribir o leer algún dato en el registro seleccionado. MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 7 Introducción a los Sistemas Industriales • Bus de datos: por este canal el microprocesador recibe el contenido de los registros seleccionados por el bus de direcciones o envía desde el microprocesador los datos que se desean almacenar en las memorias. También circulan por este canal los datos que emite o recibe la unidad E/S. Este es un bus bidireccional, pues los datos pueden fluir hacia o desde la CPU. En algunos microprocesadores, el bus de datos se usa para transmitir otra información además de los datos (por ejemplo, bits de dirección o información de condiciones). Es decir, el bus de datos es compartido en el tiempo o multiplexado. En general se adoptó 8 bits como ancho estándar para el bus de datos de los primeros computadores PC y XT. Usualmente el computador transmite un carácter por cada pulsación de reloj que controla el bus (bus clock), el cual deriva sus pulsaciones del reloj del sistema (system clock). Algunos computadores lentos necesitan hasta dos pulsaciones de reloj para transmitir un carácter. Los computadores con procesador 80286 usan un bus de datos de 16 bits de ancho, lo cual permite la comunicación de dos caracteres o bytes a la vez por cada pulsación de reloj en el bus. Los procesadores 80386 y 80486 usan buses de 32 bits. El PENTIUM de Intel utiliza bus externo de datos de 64 bits, y uno de 32 bits interno en el microprocesador. • Bus de control: por este canal se transmiten las señales para la coordinación de todos los elementos del sistema: sincronización, órdenes de lectura/escritura, selección de memoria, de unidad (E/S), etc. Este conjunto de señales se usa para sincronizar las actividades y transacciones con los periféricos del sistema. Algunas de estas señales, como R/W, son señales que la CPU envía para indicar que tipo de operación se espera en ese momento. Los periféricos también pueden remitir señales de control a la CPU, como son INT, RESET, BUS RQ. Las señales más importantes en el bus de control son las señales de cronómetro, que generan los intervalos de tiempo durante los cuales se realizan las operaciones. Este tipo de señales depende directamente del tipo del microprocesador. Algunas líneas típicas de control son: Una línea de RD (lectura) y WR (escritura) Una línea de reloj Una línea de reinicio MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 8 Introducción a los Sistemas Industriales Figura 2: Configuración mínima de un microprocesador Funcionamiento de un microprocesador La secuencia de funcionamiento sería la siguiente: El microprocesador busca las instrucciones o datos. Envía a través del bus de direcciones la combinación binaria de la dirección de la posición de la memoria o de la unidad (E/S) de la que quiere extraer las instrucciones o datos. El microprocesador controla las operaciones de lectura o escritura, de salidad de datos y de selección de chip con combinaciones binarias, a través del bus de control. Se transmite la información de la memoria o de la unidad (E/S) a través del bus de datos al microprocesador, que la interpretará o decodificará para después ejecutarla. Una vez buscada, interpretada y ejecutada la primera instrucción, el microprocesador automáticamente buscará y ejecutará la siguietne y así sucesivamente, cambiando de unas secuencias a otras, según aparezcan nuevas instrucciones en la unidad E/S [7]. Figura 3: Diagrama de bloques simplificado de un microprocesador MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 9 Introducción a los Sistemas Industriales 2.4 Arquitectura del Set de Instrucciones (ISA) Los distintos computadores existentes, aunque similares en los elementos fundamentales, presentan diversas diferencias en sus componentes de hardware y su definición de instrucciones. Las variaciones existentes dependerán del uso en que esté enfocado el computador particular, pudiendo incluir mayores funcionalidades o mejoras en la eficiencia. En general la arquitectura de un computador se puede caracterizar en base a dos elementos fundamentales: la microarquitectura y la arquitectura del set de instrucciones o ISA. La arquitectura del Set de Instrucciones (ISA) es el segundo elemento que define la arquitectura de un computador. Las instrucciones de un computador definirán cómo se deben escribir programas, y se diferenciarán por los siguientes factores: • Tipos de instrucciones: Dependiendo del ISA, existirán distintos tipos de instrucciones disponibles. En general los tipos de instrucciones mínimos que se soportan en un ISA son: o Instrucciones de carga o Instrucciones aritméticas o Instrucciones lógicas y shifts o Instrucciones de salto o Instrucciones de subrutina • • Tipos de datos: Distintos ISA pueden definir distintos tipos de datos que son soportados. Modos de direccionamiento: Además de las instrucciones, el ISA debe definir que modos de direccionamiento son soportados por el sistema para generar la dirección efectiva (effective address) con la que se accederá a memoria. 2.5 Interfaz de la memoria (arquitectura von Neumann y Harvard) Arquitectura von Neumann A finales de la década de los 40, el matemático John von Neumann revolucionó el mundo de la computación cuando publicó una nueva arquitectura conocida desde entonces con el nombre de “arquitectura Von Neumann”. En esta arquitectura tanto las instrucciones como los datos comparten una misma memoria [1]. Esto significa que con un mismo bus de direcciones se localizan (direccionan) instrucciones y datos y que por un único bus de datos transitan tanto instrucciones como datos. La misma señal de control que emite la CPU para leer un dato sirve para leer una instrucción. No hay señales de control diferentes para datos e instrucciones. Debe quedar claro que aunque se use memoria ROM para almacenar el programa y RAM MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 10 Introducción a los Sistemas Industriales para los datos, para la CPU no hay tal distinción, sino que ROM y RAM forman un conjunto único (una memoria de lectura y escritura) para el cual la CPU emite señales de control, de dirección y de datos [9]. Figura 4: Arquitectura Von Neumann Arquitectura Harvard Se trata de una configuración de dispositivos con una CPU (Unidad Central de Procesamiento) y dos memorias que almacenan por separado las instrucciones y los datos tanto de entrada como de salida. El término Harvard procede del primer computador digital automático electromecánico, el “Harvard Mark I” (1944) diseñado conjuntamente por IBM y la Universidad de Harvard [1]. En este caso, la memoria de programa (que almacena instrucciones) tiene su bus de direcciones (de instrucciones), su propio bus de datos (más bien es un bus de instrucciones) y su bus de control. Por otra parte, la memoria de datos tiene sus propios buses de direcciones, datos y control, independientes de los buses de la memoria de programa. La memoria de programa es sólo lectura, mientras que en la de datos se puede leer y escribir. Figura 5: Arquitectura Harvard La arquitectura von Neumann requiere menos líneas que la Harvard para conectar la CPU con la memoria, lo que significa una conexión más simple entre ambas. Pero con esta arquitectura es imposible manipular simultáneamente datos e instrucciones, debido a la estructura de buses únicos, algo que sí es posible en la arquitectura Harvard, que tiene buses separados. Esto confiere a la arquitectura Harvard la ventaja de una mayor velocidad de ejecución de los programas. MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 11 Introducción a los Sistemas Industriales 2.6 Ejemplo microcontrolador, diagrama de bloques Los microcontroladores PIC son integrados capaces de ser programados desde un computador y seguir una secuencia. Conviene recordar que un PIC16F628A es uno de los más conocidos, razón por la cual su estructura brinda un esquema universal. El siguiente es su diagrama circuital por bloques, que se debe entender desde la electrónica, que es la base del trabajo de programación de los PIC. Figura 6: Diagrama de bloques de un microcontrolador La distribución de pines es la siguiente, así es como se ve por fuera y cada pin tiene una o más funciones asignadas, cada vez que se utiliza una función hay que tener en cuenta que no se deben usar las otras asignadas en el mismo pin, es decir, un terminal solo puede realizar una función al tiempo, así en la etapa de planeación del proyecto se debe definir qué función utilizar para cada pin, de las que este está en habilidad de desempeñar. • • Tiene 13 entradas salidas programables, que permiten llevar a cabo una gran cantidad de proyectos. Las salidas se corresponden con pines. Tiene 64 bytes de EEProm, para guardar información. Esta memoria es electrónicamente grabable y borrable. Últimamente se ha introducido la memoria Flash que puede ampliar su capacidad. MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 12 Introducción a los Sistemas Industriales • • • Tiene 1 Mb de memoria con código lo suficientemente comprimido como para aprovechar al máximo la memoria. Tiene un oscilador a cristal o a RC de velocidad media: 4 Mhz o 20 Mhz en los Hs. Cuatro fuentes de interrupción diferentes para llamar la atención en cualquier momento. La ficha técnica de este PIC es la siguiente: • • • • • • • • • • • • • • • Memoria de programa: 1Kx14, EEPROM (PIC16C84) y Flash (PIC16F84) Memoria de datos RAM: 36 bytes (PIC16C84) y 68 bytes (PIC16F84) Memoria de datos EEPROM: 64 bytes para todos los modelos Pila (stack): De 8 Niveles Interrupciones: 4 tipos diferentes Encapsulado: Plástico DIP de 18 patitas Frecuencia de trabajo: 10MHz máxima Temporizadores: Sólo uno, el TMR0. También tienen “Perro guardián (WDT)” Líneas de E/S Digitales: 13 (5 Puerta A y 8 Puesta B) Corriente máxima absorbida: 80mA Puerta A y 150mA Puerta B Corriente máxima suministrada: 50mA Puerta A y 100mA Puerta B Corriente máxima absorbida por línea: 25mA Corriente máxima suministrada por línea: 20mA Voltaje de alimentación (VDD): De 2 a 6 V DC Voltaje de grabación (VPP): De 12 a 14 VDC Ya hemos tenido en cuenta la estructura del PIC. Veamos ahora su aspecto externo: Figura 7: Aspecto externo del PIC Este PIC está desarrollado con tecnología CMOS de altas prestaciones y encapsulado en plástico con 18 patillas. Veamos la misión de cada patilla. MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 13 Introducción a los Sistemas Industriales • • • • • • • VDD: Patilla por la que se aplica la tensión positiva de la alimentación. VSS: Patilla conectada a la tierra o negativo de la alimentación. OSC1/CLKIN: Patilla por la que se aplica la entrada del circuito oscilador externo que proporciona la frecuencia de trabajo del microcontrolador. OSC2/CLKOUT: Patilla auxiliar del circuito oscilador. MCLR#: Esta patilla es activa con nivel lógico bajo, lo que se representa con el símbolo #. En pocas palabras con esta reseteas el PIC. RA0-RA4: Son las líneas de E/S digitales correspondientes a la puerta A. La línea RA4. RB0-RB7: estas 8 patillas corresponden a las 8 líneas de E/S digitales de la puerta B. La línea RB0 multiplexa otra función, que es la de servir como entrada a otra petición externa de interrupción, por eso se le denomina RB0/INT. 2.7 Microprocesadores y microcontroladores ARM [1] El desarrollo de la arquitectura ARM comenzó en 1983 en ACORN, UK, como un sucesor de coste efectivo para los sistemas existentes de la familia 6502. La arquitectura ARM tiene un conjunto de instrucciones simple pero eficiente que permite un tamaño de silicio compacto y ofrece alta velocidad de ejecución a bajo consumo. ACORN se dio cuenta del potencial de esta arquitectura y junto con un grupo de socios-capital, creó una compañía independiente llamada ARM en 1990. Desde entonces, la arquitectura ARM ha crecido hasta convertirse en la arquitectura más popular del planeta. La arquitectura ARM ha sido utilizada en numerosos diseños y aplicaciones específicas para productos estándar (ASSP’s) que pueden encontrarse actualmente en prácticamente todos los teléfonos móviles y la mayoría de los MP3, PDAs, cámaras y sistemas de Navegación. Además de ser utilizada en muchos productos de automoción y aplicaciones médicas e industriales. MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 14 Introducción a los Sistemas Industriales Figura 8: Esquema de arquitectura ARM Tabla 1: Núcleos ARM para Microcontroladores Tipos especiales de MP (ASIC, DSP…) ASIC – Application-Specific Integrated Circuit – es un circuito integrado (IC) personalizado para un uso particular (tarea única), más que para un uso general. Por ejemplo, un chip diseñado únicamente para hacer funcionar un teléfono móvil es un ASIC *. DSP – A digital signal processor es un MP especializado diseñado específicamente para procesado de señales digitales, generalmente en tiempo real. FPGA – Field Programmable Gate Array – el día moderno equivalente a 7400 series lógicas, que contiene bloques lógicos programables y permite que el mismo FPGA se utilice en aplicaciones diferentes.** . (Los diseñadores de los sistemas basados en FPGL normalmente utilizan HDL como Verilog y VHDL) MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 15 Introducción a los Sistemas Industriales Media Processors es un sistema en chip (SoC)avanzado especialmente adecuado para distribuir una alta calidad de vídeo, audio, gráficos, imágenes y aplicaciones informáticas intensivas dentro de un entorno de baja energía. 2.8 Sistemas integrados (embebidos) Existen numerosas definiciones de sistemas embebidos, algunas son: “Un sistema embebido es cualquier dispositivo que incluye un computador programable, pero en sí mismo no es un computador de propósito general” [11]. “Un sistema embebido es un sistema electrónico que contiene un microprocesador o microcontrolador; sin embargo, no pensamos en ellos como un computador” [5]. “Un sistema embebido es un sistema cuya función principal no es computacional, pero es controlado por un computador integrado. Este computador puede ser un microcontrolador o un microprocesador. La palabra embebido implica que se encuentra dentro del sistema general, oculto a la vista, y forma parte de un todo de mayores dimensiones” [12]. Un sistema embebido posee hardware de computador junto con software embebido como uno de sus componentes más importantes. Es un sistema computacional dedicado para aplicaciones o productos. Puede ser un sistema independiente o parte de un sistema mayor, y dado que usualmente su software está embebido en ROM (Read Only Memory) no necesita memoria secundaria como un computador. Un sistema embebido tiene tres componentes principales: 1. Hardware. 2. Un software primario o aplicación principal. Este software o aplicación lleva a cabo una tarea en particular, o en algunas ocasiones una serie de tareas. 3. Un sistema operativo que permite supervisar la(s) aplicación(es), además de proveer los mecanismos para la ejecución de procesos. En muchos sistemas embebidos es requerido que el sistema operativo posea características de tiempo real [10]. MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 16 Introducción a los Sistemas Industriales ¿Dónde encuentro sistemas embebidos? En todas partes, pues un sistema embebido es un ordenador más, que a diferencia de un Personal Computer, por ejemplo, carece de teclado y pantalla en la mayoría de los casos. Dicho de otra manera, un sistema embebido consiste de una electrónica programable especialmente diseñada para soluciones específicas. Estas pueden ser: • • • • • • • Sistemas de telefonía fija o móvil, por ejemplo un terminal telefónico móvil. Automatización de procesos de producción Equipos e instrumentación industrial Sistemas de transporte, desde cintas transportadoras, sistemas robotizados hasta vehículos de transporte de todo tipo. En este capítulo cabe resaltar el sector de la automoción, en donde un turismo de diseño actual puede incorporar hasta más de 40 sistemas embebidos. Estos controlan áreas tan especiales, como el funcionamiento del motor de gasolina o gasóleo como el control de par MSR, sistema de frenado antibloqueo ABS, bloqueo diferencial electrónico EDS, sistema de control de tracción ASR, control de estabilidad con asistencia de frenado ESP, airbags, la cerradura centralizada con su mando a distancia, etc. etc. Electrodomésticos de todo tipo, como microondas, lavadoras, frigoríficos, lavavajillas, etc. Tiene una gran aplicación en la industria juguetera y de ocio Sistemas periféricos de un PC, como los MODEM, router, teclados, ratones de nueva generación, equipos multimedia, etc. El sistema embebido es por tanto un ordenador especializado para una solución especializada en donde prevalecen las siguientes características: • • • • Esta especialmente diseñado para la solución óptima de la tarea o tareas a resolver. Generalmente es una "pieza especializada" instalada en un sistema anfitrión A diferencia de un PC, el sistema embebido se dota con los módulos estrictamente necesarios para su función. De ahí su coste óptimo. Es una solución única en el mercado, no existe otra igual. La incorporación de un sistema embebido proporciona a un producto un valor añadido importante que lo distingue claramente de los productos de la competencia. Esto es posible gracias a que el sistema embebido con respecto a la solución anterior proporciona una: • Solución más precisa y rápida en su especialidad respecto a la solución anterior MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 17 Introducción a los Sistemas Industriales • • • Mayor número de opciones respecto a la solución anterior Coste reducido, por lo tanto reducción de costes en el proceso de fabricación Aumenta la competitividad del producto por su diferenciación respecto a otros productos similares Los sistemas embebidos poseen ciertas características que los distinguen de otros sistemas de cómputo, a continuación estudiaremos las más importantes [10]: 1. Funcionamiento específico. Un sistema embebido usualmente ejecuta un programa específico de forma repetitiva. Por ejemplo un pager, siempre en un pager. En contraste, un sistema de escritorio ejecuta una amplia variedad de programas, como hojas de cálculo, juegos, etc.; además nuevos programas son añadidos frecuentemente. Por supuesto pueden haber excepciones, podría ocurrir que el programa del sistema embebido fuese actualizado a una nueva versión. Por ejemplo, un teléfono celular podría actualizarse de alguna manera. 2. Fuertes limitaciones. Todos los sistemas de computación poseen limitaciones en sus métricas de diseño, pero en los sistemas embebidos son muy fuertes. Una métrica de diseño es una medida de algunas características de implementación, como: costo, tamaño, desempeño, y consumo de energía. Los sistemas embebidos generalmente deben ser poco costosos, poseer un tamaño reducido, tener un buen desempeño para procesar datos en tiempo real, y además consumir un mínimo de energía para extender el tiempo de vida de las baterías o prevenir la necesidad de elementos adicionales de enfriamiento. 3. Reactivos y tiempo real. Muchos sistemas embebidos deben ser reactivos o reaccionar ante cambios en el ambiente, además de realizar algunos cálculos en tiempo real sin ningún retraso, es decir, se deben tener resultados en tiempos fijos ante cualquier eventualidad. Por ejemplo, el módulo de control de viaje de un automóvil continuamente monitorea la velocidad y los sensores de frenos, reaccionando ante cualquier eventualidad. Ante un estímulo anormal, el módulo de control debe realizar los cálculos de forma precisa y acelerada para garantizar la entrega de los resultados dentro de un tiempo límite, una violación en este tiempo podría ocasionar la pérdida del control del automóvil. En contraste, un sistema de escritorio se enfoca en realizar cálculos con una frecuencia no determinada y la demora de los mismos no producen fallas en el sistema. MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 18 Introducción a los Sistemas Industriales 2.9 Paralelismo en MP Necesidad de paralelismo Un computador paralelo es un conjunto de elementos de proceso que cooperan para resolver rápidamente grandes problemas. Con la arquitectura clásica, existe una limitación en las posibilidades debido a la presencia de múltiples cuellos de botella, memoria, unidades funcionales así como, límites en la capacidad de integración, dificultades de manejo de altas frecuencias en circuitos y crecimiento incontrolado de la disipación de calor al aumentar la frecuencia [4]. La computación paralela es inevitable para satisfacer la demanda de las aplicaciones con gran necesidad de potencia de cálculo. Las tendencias de las demandas se pueden clasificar en: Tendencias tecnológicas: el número de transistores en un CI crece rápidamente. Se esperan crecimientos lentos de la frecuencia de reloj. Tendencias en arquitectura: límites del paralelismo a nivel de instrucción (superescalares) y paralelismo a nivel de tareas la vía más adecuada. Tendencias actuales: los microprocesadores actuales tienen soporte para multiproceso. Aparecen estaciones de trabajo multiprocesador: Sun, SGI, HP. Los microprocesadores del mañana serán multiprocesadores. Tendencia en las aplicaciones: Realimentación entre la demanda de potencia y la complejidad de las aplicaciones, amplio rango de prestaciones demandadas y progresiva potencia con coste progresivo [4]. Ley de Moore y evolución de la arquitectura de microprocesadores El fundador y primer directivo de Intel, Gordon Moore, formuló la llamada ley de Moore que en una versión simplificada dice: cada tres años la potencia de los ordenadores se multiplica por cuatro, es decir, que cada dieciocho meses se duplica el número de transistores por chip. De hecho, la evolución de las prestaciones de las computadoras es mucho más rápida que la de otro tipo de artefactos como, por ejemplo, los medios de transporte (coches, barcos, aviones) [7]. La estadística de los últimos veinticinco años lo confirma, y las previsiones de los especialistas no prevén un cambio de la ley en los próximos años. MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 19 Introducción a los Sistemas Industriales Figura 9: Diagrama de la ley de Moore, 1970 -2010 Hay que señalar, de todas maneras, que la ley de Moore se refiere a la parte física (hardware) de los ordenadores. Desgraciadamente, la capacidad de producción de software no sigue una dinámica tan acelerada. Hay problemas muy de fondo, ligados a la modesta capacidad del ser humano para transformar su conocimiento sobre algún tema en automatismos conceptuales estructurados. De todos modos, se han producido avances importantes de productividad en la construcción de software. La mejora de las técnicas de concepción y elaboración de programas, así como una tendencia creciente en la reutilización de sistemas informáticos en entornos similares permiten seguir, aunque sea siempre con cierto retraso, el ritmo acelerado de incremento de la potencia del hardware [7]. Sin embargo, las necesidades actuales de la sociedad nos llevan a gestionar el conocimiento estructurado y no sólo datos. Si hasta hace poco la potencia del hardware era una limitación significativa para llevar a cabo esta gestión, con la potencia actual y las perspectivas abiertas a corto plazo, esta limitación se está reduciendo. Nuevos modelos de programas, basados en la aplicación intensiva de modelos matemáticos y en inteligencia artificial, van permitiendo abordar nuevos campos de aplicación inteligente [7]. Pipe-line de instrucción Las principales mejoras en eficiencia de los computadores no ocurren sólo por mejoras en la tecnología de construcción de estos, sino también por el desarrollo de técnicas que permiten aprovechar procesamiento paralelo en el computador. Existen distintos niveles a los cuales se puede aprovechar el paralelismo, siendo el más básico el paralelismo a nivel de la instrucción [3]. MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 20 Introducción a los Sistemas Industriales Cada instrucción que se ejecuta un computador pasa por un ciclo, que va desde que es seleccionada desde memoria hasta que completa su objetivo. Este ciclo aunque es similar en todas las arquitecturas de computadores, presenta algunas variaciones, dependiendo de la complejidad de la microarquitectura y de decisiones de diseño. El computador básico Harvard por ejemplo, tendrá un cierto ciclo, pero este no será exactamente igual al de una arquitectura x86 o de un PIC16F87AA El ciclo de una instrucción se caracteriza por corresponder a una secuencia de pasos que debe recorrer la instrucción, cada uno de los cuales estará a cargo de una unidad funcional distinta. Este tipo de procesos secuenciales con etapas independientes se conoce como pipeline. Existen diversos procesos que pueden ser modelados como un pipeline, siendo los más comunes las líneas de ensamblaje industriales, en las cuales distintas tareas son ejecutadas sobre un producto (por ejemplo, automóvil) y luego de ejecutar todas las tareas se obtiene un producto final terminado [3]. En el caso del procesamiento de la instrucción, esta secuencia de etapas se conoce como instruction pipeline, que contiene las distintas partes del ciclo de la instrucción antes descrito. A diferencia de las líneas de ensamblaje, en el instruction pipeline no se obtiene un producto final, sino que el resultado corresponde a lo que haya ocurrido a lo largo del proceso. La gran ventaja de un pipeline de ensamblaje está en que es posible paralelizar la producción de un producto (por ejemplo, auto), dado que al mismo tiempo que se le esté aplicando un proceso a un elemento (por ejemplo, agregar las puertas), es posible estar ejecutando otra tarea sobre otro elemento (por ejemplo, construir el chasis). De esta forma, al dividir la producción completa en tareas menores se logra reducir el tiempo, ya que se aprovecha que cada parte del proceso es independiente, y que por tanto queda ((libre)) una vez que un determinado elemento ha pasado por esta. En el instruction pipeline ocurre lo mismo que en el pipeline de ensamblaje: la idea es poder reutilizar cada una de las subetapas para ir procesando otras instrucciones de manera simultánea. Supongamos el siguiente ejemplo: se quieren ejecutar 3 instrucciones seguidas en el computador básico modificado. Como señalamos anteriormente, dado que la instrucción más lenta toma 12 nanosegundos (ns), el ciclo del clock debe tardar ese tiempo como mínimo siempre. Considerando esto, las tres instrucciones tomarían 36 ns. MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 21 Introducción a los Sistemas Industriales Figura 10: Diagrama ejecución sin pipeline Para poder aprovechar la instrucción pipeline, hay que considerar que cada instrucción se ejecuta en una secuencia de etapas, cada una de las cuales ocupa una unidad funcional distinta (al igual que en la línea de ensamblaje) y por tanto, una vez que se desocupa una etapa de procesar una instrucción puede inmediatamente comenzar a procesar la siguiente. Para lograr esto es necesario que en cada ciclo del clock no se procese toda una instrucción, sino sólo una etapa del ciclo. Con esto podemos tener ciclos de clocks más rápidos. El tiempo del ciclo estará limitado ahora no por la instrucción más lenta, sino por la etapa más lenta, lo que continuando con el ejemplo anterior serían 4 ns para las etapas de acceso a memoria. Con esta modificación, el procesamiento de las 3 instrucciones quedaría de la siguiente manera: Figura 11: Diagrama de ejecución con pipeline MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 22 Introducción a los Sistemas Industriales 2.10 Evolución de los microprocesadores Intel. microprocesadores. Resumen de los Han pasado más de 25 años desde que Intel diseñara el primer microprocesador, siendo la compañía pionera en el campo de la fabricación de estos productos, y que actualmente cuenta con más del 90 por ciento del mercado. Intel 4004 Primer procesador 4004, presentado en el mercado en 1971, con características únicas para su tiempo: la velocidad de reloj sobrepasaba por poco los 100 KHz, disponía de un ancho de bus de 4 bits y podía manejar un máximo de 640 bytes de memoria. Entre sus aplicaciones, cabe destacar su presencia en la calculadora Busicom, así como dotar de los primeros tintes de inteligencia a objetos inanimados. Figura 12: Intel 4004 Intel 8008 En 1972, Intel anunciaba una versión mejorada de su procesador: Intel 8008, con un bus de 8 bits, y memoria direccionable ampliada a los 16 Kb. Además, llegaba a la cifra de los 3500 transistores, casi el doble que su predecesor, y se le puede considerar como el antecedente del procesador que serviría de corazón al primer ordenador personal. Figura 13: Microprocesador Intel 8008 Intel 8080 Apareció en 1974. Fue usado en el ordenador Altair, cuyo nombre proviene de un destino de la nave Enterprise en uno de los capítulos de la popular serie de televisión Star Trek la semana en la que se creó el ordenador Contaba con 4500 transistores, y velocidad de reloj de 2 MHZ. Figura 14: Microprocesador Intel 8080 MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 23 Introducción a los Sistemas Industriales Intel 8086/8088 En junio de 1978 y de 1979 hacían su aparición los microprocesadores 8086 y 8088, que pasaron a formar el denominado IBM PC, con millones de unidades de ordenadores de sobremesa vendidas. De los dos procesadores, el más potente era el 8086, con un bus de 16 bits, velocidades de reloj de 5, 8 y 10 MHz, 29000 transistores usando la tecnología de 3 micras y hasta un máximo de 1 Figura 15: Microprocesador Intel Mega de memoria direccionable. El rendimiento se 8086/8088 multiplicó por 10 con respecto a su antecesor, lo que suponía un auténtico avance en lo que al mundo de la informática se refiere. En cuanto al procesador 8088, era exactamente igual a éste, salvo su bus, de 8 bits en lugar de uno de 16, siendo más barato y obteniendo mejor respaldo en el mercado. Intel 80286 1982, aparición de los primeros 80286. Con memoria virtual de hasta 1 Giga. Bus de 16 bits, 134000 transistores usando una tecnología de 1.5 micras, un máximo de memoria direccionable de 16 Megas y velocidades de reloj de 8, 10 y 12 MHz. En términos de rendimiento, podíamos decir que se había multiplicado entre tres y seis veces la capacidad del 8086, y suponía el primer ordenador que no fabricaba IBM en exclusiva, sino que otras muchas compañías se decidieron a crear sus propias máquinas. Figura 16: Microprocesador Intel 80286 Intel 80386 1985, aparición del procesador 80386DX, con arquitectura de 32 bits. El reloj llegaba ya hasta un máximo de 33 MHz, y era capaz de direccionar 4 Gigas de memoria, tamaño que todavía no se ha superado por otro procesador de Intel dedicado al mercado doméstico. En 1988, Intel desarrollaba un poco tarde un sistema sencillo de actualizar los antiguos 286 gracias a la aparición del 80386SX, con el bus de datos en 16 bits, pero a menor coste. Estos procesadores irrumpieron con la explosión del entorno gráfico Windows, desarrollado por Microsoft unos años antes, pero que no había Figura 17: Microprocesador Intel tenido la suficiente aceptación por parte de los 8386 usuarios. MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 24 Introducción a los Sistemas Industriales Intel 80486 Apareció en 1989. Ya cuenta con una unidad de punto flotante en el chip. Cuenta con caché, ruta de datos íntegra y FPU. Figura 18: Microprocesador Intel 80486 Intel Pentium Primero procesadores Intel que a un número nombre, sino una palabra. Estos procesadores partían de una velocidad inicial de 60 MHz, llegado hasta los 200 MHz, algo que nadie había capaz de augurar unos años antes. por que han sido Figura 19: Microprocesador Intel Pentium Intel Pentium Pro / II/III 1995, aparición del procesador Pentium Pro. Arquitectura de 64 bits y empleo de una tecnología revolucionaria de 32 micras. El procesador contaba con un segundo chip en el mismo encapsulado, que se encargaba de mejorar la velocidad de la memoria caché, lo que resultaba en un incremento del rendimiento sustancioso. Las frecuencias de reloj se mantenían como límite por arriba en 200 MHz, partiendo de un mínimo de 150 MHz. Figura 20: Microprocesador IntelPentium Pro/II/III Intel Pentium 4 Creado en 2001, cuenta con una pipeline profunda y alta velocidad de reloj. Las unidades comienzan a hacerse invisibles en esta escala. Figura 21: Microprocesador Intel Pentium 4 MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 25 Introducción a los Sistemas Industriales Itanium 2 Creado en 2002, conjuntamente por Intel y HP. Basado en la tecnología EPIC. Bus de doble velocidad de datos (DDR). Jerarquía de caché común. Figura 22: Microprocesador Itanium 2 3. CONCLUSIONES Un microprocesador es un microcircuito muy potente que controla los demás componentes de un sistema dado. Los componentes controlados por un microprocesador pueden ser plaquetas diferentes, o piezas separadas de un equipo eléctrico. Si se optimiza el microprocesador para aplicaciones de control embebidas se hablará de microcontrolador, especialmente diseñado para una tarea específica. Los componentes de un microprocesador son: la ALU, el registro de datos, la unidad de control, la unidad de memoria, donde se encuentran la ROM y la RAM y los buses de conexión (de direcciones, datos y control). Para que las instrucciones tengan una coherencia se ha creado la arquitectura del Set de Instrucciones (ISA), que indica cómo se deben escribir los programas. Los conceptos que se especifican son: los tipos de instrucciones (de carga, aritméticas, lógicas, etc.), los tipos de datos y los modos de direcciones. Según la interfaz de la memoria se pueden tener dos tipos de arquitectura: Von Neumann, con un mismo bus para la memoria ROM y RAM, ambas como un conjunto único, o la arquitectura Harvard, con buses separados, independientes de la memoria. La arquitectura von Neumann requiere menos líneas que la Harvard para conectar la CPU con la memoria, lo que significa una conexión más simple entre ambas. Pero con esta arquitectura es imposible manipular simultáneamente datos e instrucciones, debido a la estructura de buses únicos, algo que sí es posible en la arquitectura Harvard, que tiene buses separados. Esto confiere a la arquitectura Harvard la ventaja de una mayor velocidad de ejecución de los programas. Una gran parte de los microcontroladores se encuentran en sistemas embebidos (o integrados) que se encuentran prácticamente en todos los aparatos electrónicos: reloj despertador, electrodomésticos, teléfonos móviles, MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 26 Introducción a los Sistemas Industriales etc. Estos sistemas integrados cumplen una función específica, por lo que tienen limitaciones en cuanto a su función y han de ser reactivos en tiempo real. Dadas las exigencias de la demanda, se hace necesario el paralelismo en los sistemas de computación, para adquirir más potencia. Ya se predijo, con la ley de Moore en los años sesenta, que la potencia de ordenadores se multiplicaría por 4 cada 3 años (se duplicaría el número de transistores por chip cada 18 meses), lo que se ha venido cumpliendo durante los últimos 30 años. Es por ello, que cada vez se necesita mayor rendimiento y potencia. Esto se consigue con la pipeline de instrucción. Por último, se ha hecho repasado la evolución de los microprocesadores de Intel: desde el primer Intel 4004 creado en 1972 hasta el Itanium 2, creado en 2002. 4. BIBLIOGRAFÍA Y/O REFERENCIAS [1](ALU) A. Zuluaga y A Astarloa. Sistemas de procesamiento digital. Publicaciones Delta 2008. [2] CAPEL. Microcontroladores ARM. Departamento técnico. 2008. Disponible en www.captura-el.com. Accedido el 10 de Agosto 2013. [3] A. Echevarria. Pipeline: paralelismo a nivel de instrucción. Departamento de Ciencia de la Computación. Universidad pontificia de Chile. [4] J.A. Frutos, R Durán. Universidad de Alcalá. Asignatura Arquitectura e ingeniería de computadores. Disponible en atc2.aut.uah.es. [5] Morton, T. “Embedded Microcontrollers”. Prentice Hall. 2000. [6] Simon, D. “And Embedded Software Primer”. Addison-Wesley Professional. 1999. [7] I. Tubella y J. Vilaseca. Sociedad del conocimiento: cómo cambia el mundo ante nuestros ojos. Editorial UOC 2005. [8] D.A Pérez. Sistemas embebidos y sistemas operativos embebidos. Lecturas en Ciencias de la Computación. Universidad Central de Venezuela. Centro de Investigación en Comunicación y Reces (CICORE). 2009. [9] J.G. Tena. Sistemas de carga y arranque. Editorial Paraninfo. 2ª Edición. 2011 [10] F. Vahid y T. Givargis. Embedded System Design. John Wiley & Sons, Inc. 2002. [11] F.E. Valdés y R. Pallás. Microcontroladores: fundamentos y aplicaciones con PIC. Editorial Marcombo, 2007. [12] T. Wilmshurst. An Introduction to the Design of Small Scale Embedded Systems with examples from PIC, 80C51 and 68HC05/08 Microcontrollers. Palgrave Foundations 2003. MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 27 Introducción a los Sistemas Industriales [13] W. Wolf. Computers as Components: Principles or Embedded Computing System Design. Segunda edición. Morgan Kaufmann 2008. 5. ENLACES DE INTERÉS http://es.wikiversity.org http://howardhuang.us/teaching/ http://ocw.uc3m.es/ MICROPROCESADORES Y SISTEMAS MP. PARALELISMO EN MP 28