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 ISE3: Electrónica para sistemas industriales (EIS) MÓDULO 4: Circuitos básicos VLSI en las arquitecturas de computadoras TAREA 4-1: Sistemas Microprocesador Introducción a los Sistemas Industriales Contenido TAREA 4-1: Sistemas microprocesador ......................................................................... 3 1. INTRODUCCIÓN Y OBJETIVOS ................................................................................. 3 2. CONTENIDO..................................................................................................................... 3 2.1 Microprocesador vs Microcontrolador ............................................................. 3 2.2 Arquitectura de un microprocesador............................................................... 4 2.3 Relojes, núcleos y otros aspectos: Las especificaciones de la CPU .... 8 2.4 Conjunto de instrucciones ................................................................................. 12 2.5 Microarquitectura .................................................................................................. 13 2.6 Paralelismo .............................................................................................................. 15 2.7 Sistemas embebidos............................................................................................ 16 2.8 Importancia del avance de la tecnología ..................................................... 17 2.9 Concepto de familia ............................................................................................. 18 2.10 Generaciones ....................................................................................................... 19 3. CONCLUSIONES ........................................................................................................... 23 4. BIBLIOGRAFÍA Y/O REFERENCIAS ....................................................................... 23 5. ENLACES DE INTERÉS ............................................................................................... 23 Índice de figuras Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura Figura 1 Organización del microprocesador .................................................................................. 4 2 Organización del microprocesador .................................................................................. 5 3 Buses .................................................................................................................................................... 8 4 Rendimiento y precio ................................................................................................................ 9 5 Buses en el MP .......................................................................................................................... 11 6 Etapas en la ejecución de instrucciones microprocesador ......................... 13 7 Etapas de las instrucciones............................................................................................... 14 8 Entubado de instrucciones ................................................................................................. 15 9 Extensiones en el MP ............................................................................................................. 18 10 Arquitectura 80286 ............................................................................................................... 20 11 Arquitectura 80486 ............................................................................................................... 21 12 Arquitectura Pentium ............................................................................................................ 22 13 Arquitectura interna Itanium ........................................................................................... 23 SISTEMAS MICROPROCESADOR 2 Introducción a los Sistemas Industriales TAREA 4-1: Sistemas microprocesador 1. INTRODUCCIÓN Y OBJETIVOS Primeramente vemos la diferencia entre lo que es un microcontrolador y un microprocesador. Seguidamente estudiamos parámetros que caracterizan al microprocesador y que le otorgan ciertas ventajas frente a otros. Estudiar como mejorando la forma en que se ejecutan de las instrucciones podemos conseguir mayores velocidades. Finalmente se ve la estructura y arquitectura de los Intel. 2. CONTENIDO 2.1 Microprocesador vs Microcontrolador La CPU es el cerebro del microcomputador y actúa bajo el control del programa almacenado en la memoria. La CPU se ocupa básicamente de traer las instrucciones del programa desde la memoria, interpretarlas y hacer que se ejecuten. La CPU también incluye los circuitos para realizar operaciones aritméticas y lógicas elementales con los datos binarios, en la denominada Unidad Aritmética y Lógica (ALU). En un microcomputador, la CPU no es otra cosa que el microprocesador, el circuito integrado capaz de realizar las funciones antes mencionadas. Un microcontrolador es un microcomputador realizado en un circuito integrado (chip). Históricamente, los microcontroladores aparecieron con posterioridad a los microprocesadores y han tenido evoluciones independientes. Los microprocesadores se han desarrollado fundamentalmente orientados al mercado de los ordenadores personales y las estaciones de trabajo, donde se requiere una elevada potencia de cálculo, el manejo de gran cantidad de memoria y una gran velocidad de procesamiento. Un parámetro importante en los microprocesadores es el tamaño de sus registros internos (8, 16, 32 ó 64 bits), que determina la cantidad de bits que pueden procesar simultáneamente. SISTEMAS MICROPROCESADOR 3 Introducción a los Sistemas Industriales Los microcontroladores se han desarrollado para cubrir las más diversas aplicaciones. Se usan en automoción, en equipos de comunicaciones y de telefonía, en instrumentos electrónicos, en equipos de médicos e industriales de todo tipo, en electrodomésticos, en juguetes, etc. 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 menor costo posible. En estas aplicaciones, el microcontrolador ejecuta un programa almacenado permanentemente en su 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 es parte de la aplicación (embedded controller). En aplicaciones de cierta envergadura se utilizan varios microcontroladores, cada uno de los cuales se ocupa de un pequeño grupo de tareas. 2.2 Arquitectura de un microprocesador En la Figura 1 se ha representado el esquema simplificado de un microprocesador. Figura 1 Organización del microprocesador SISTEMAS MICROPROCESADOR 4 Introducción a los Sistemas Industriales Nota: La mayoría de los microprocesadores actuales cuentan con varios núcleos, por lo que los elementos que aparecen en la Figura 1 estarían replicados dos veces, cuatro, etc. Además existirían buses de comunicación adicionales, tanto entre procesadores como con la memoria. Otro esquema de la organización de un microprocesador se muestra en la Figura 2: Figura 2 Organización del microprocesador LA UNIDAD DE CONTROL Un microprocesador es un circuito integrado formado por millones de componentes lógicos que es necesario coordinar para que cada uno realice su trabajo en el momento que se espera, tarea que recae fundamentalmente en la conocida como CU (Control Unit) o unidad de control. Es tarea de la CU emitir las señales necesarias para que la siguiente instrucción de un programa, cuya localización en memoria la indica un registro específico al que suele llamarse “contador de programa” o “puntero de instrucción”, sea transferida hasta el interior del microprocesador (fase de captación). A continuación esa instrucción se analiza y se preparan los operandos que precise (fase de descodificación) para a continuación ejecutarla (fase de ejecución) y generar los resultados que correspondan (fase de escritura en memoria y registros). A través de un bus interno la unidad de control se comunica con el resto de elementos del microprocesador, estableciendo SISTEMAS MICROPROCESADOR 5 por ejemplo los Introducción a los Sistemas Industriales registros que han de utilizarse como operandos en un cálculo o fijando la operación que debe llevar a cabo la ALU sobre dichos operandos. LA UNIDAD ARITMÉTICO LÓGICA Es quien realiza los cálculos del microprocesador, con capacidad de realizar operaciones aritméticas pero también de tipo lógico. Las operaciones aritmético lógicas que puede ejecutar por sí mismo un microprocesador dependerán del diseño de la ALU. Los x86 hasta el 80386, por ejemplo, contaban con una ALU que ofrecía únicamente operaciones con aritmética entera y solamente se contemplaban las cuatro operaciones aritméticas básicas. Las aplicaciones que requerían trabajar con coma flotante, y realizar operaciones más complejas, tenían que hacerlo por software, lo cual era lento, o bien requerir que el sistema contase con un coprocesador matemático. En la actualidad los microprocesadores disponen de una ALU preparada para operar con aritmética entera y de punto flotante, ejecutando por hardware operaciones complejas que, de ser implementadas mediante software, requerirían mucho más tiempo. Incluso se contempla la posibilidad de realizar operaciones de tipo SIMD, en las que un mismo cálculo se aplica paralelamente a un grupo de datos independientes. Nota: En documentación de fabricantes como Intel, AMD es fácil encontrar acrónimos del precisamente, tipo al MMX, tipo SSE, de SSE2 y operaciones similares SIMD que que hacen permite mención, realizar el microprocesador. BANCO DE REGISTROS Cualquier información sobre la que vaya a actuar el microprocesador, por ejemplo para realizar un cálculo, debe haberse transferido previamente al interior de la CPU. Esto es así porque la ALU no puede operar directamente sobre el contenido de la memoria del sistema, físicamente alojada en circuitos integrados independientes y, por tanto, externa al microprocesador. En consecuencia debe contar con una zona de almacenamiento interno, accesible directamente para la ALU y la unidad de control. Esa pequeña área de memoria se divide en porciones de cierto tamaño, llamadas registros, asignándole a cada porción un nombre concreto. Tradicionalmente el banco de registros se ha dividido en dos grupos: los registros de propósito general y los que tienen una función específica. Al primer grupo pertenecen aquellos que el programador puede usar libremente SISTEMAS MICROPROCESADOR 6 Introducción a los Sistemas Industriales para almacenar temporalmente datos, mientras que los segundos se utilizan de manera indirecta. Los registros con función específica más usuales son: • Contador de programa: contiene la dirección de la memoria donde está alojada la siguiente instrucción a ejecutar. • Puntero de pila: en ocasiones es necesario guardar temporalmente el contador de programa, por ejemplo al saltar a una subrutina o cuando el microprocesador debe atender una interrupción externa, con la intención de recuperarlo posteriormente. • Acumulador: puede ser utilizado como registro de propósito general. • Estado: mantiene una serie de bits indicando el estado en que se encuentra el microprocesador. • Otros registros. En un principio los microprocesadores contaban sólo con registros de 8 ó 16 bits pensados para operación aritmética entera, pero en la actualidad el tamaño ha crecido hasta los 32, 64 bits e incluso 80 bits, contemplándose tanto la aritmética entera como la de punto flotante. Nota: El programador en ensamblador debe conocer con precisión el banco de registros del microprocesador con el que va a trabajar, dado que es uno de los recursos básicos con los que cuenta. La mayoría de las operaciones: carga, almacenamiento, cálculo e incluso salto, implicarán siempre la utilización de uno o más registros. BUSES Bus de datos: es bidireccional, permitiendo tanto enviar datos desde el microprocesador hacia el exterior como a la inversa. Bus de direcciones: mediante este bus el microprocesador selecciona la posición de memoria en la que va a escribir o la que se quiere leer. Bus de control: sirve para que el microprocesador comunique al sistema si la dirección que está colocando en el bus de direcciones ha de ser enviada a la memoria o a un dispositivo E/S o si lo que quiere es efectuar una lectura o una escritura. SISTEMAS MICROPROCESADOR 7 Introducción a los Sistemas Industriales Figura 3 Buses 2.3 Relojes, núcleos y otros aspectos: Las especificaciones de la CPU La mayoría de los microprocesadores se caracterizan por las siguientes especificaciones: • • • • • • • • • • Intel: obviamente, es el nombre del fabricante. Otros: AMD,… Core 2: hace referencia al nombre del modelo al cual pertenece el procesador dentro de la familia de productos de Intel. De hecho, se le conoce como “familia del microprocesador”. Duo: indica que la CPU tiene dos núcleos. E675O: es el nombre del procesador. Puede ser otro. 2.66 GHz: indica la velocidad del reloj del procesador. LGA775: el zócalo de la placa base donde se colocará el procesador. 1333MHz FSB: hace referencia a la velocidad del bus. 4MB L2 caché: es el tamaño de la memoria caché L2 de la CPU. Conroe: es el tipo de núcleo que utiliza procesador. 65nm: es el proceso de fabricación de la CPU. FAMILIA DEL PROCESADOR El nombre de la familia del procesador es un término que engloba a todos los procesadores que utilizan el mismo tipo de arquitectura. Por ejemplo, los procesadores Core 2 de Intel utilizan la segunda generación de la arquitectura Core, que incluye propiedades como la caché inteligente avanzada (Advanced. Smart Cache), el acceso a memoria inteligente (Smart Memory Access) y la capacidad de utilizar la energía de forma inteligente (Intelligent Power Capability). Hablando de una forma genérica, estas familias se podrían clasificar según su nivel de rendimiento. Así, tendríamos niveles de rendimiento bajo, medio y alto. SISTEMAS MICROPROCESADOR 8 Introducción a los Sistemas Industriales Figura 4 Rendimiento y precio NÚCLEO DE LOS PROCESADORES El núcleo del procesador (o para abreviar simplemente "núcleo") hace referencia a la verdadera unidad de proceso que se encarga de realizar todas las tareas de la CPU. Hasta hace bien poco, los términos núcleo y procesador eran equivalentes porque todas las CPU contienen un núcleo. Sin embargo, a principios del año 2OO5 Intel lo cambió todo cuando presentó el Pentium D y el Pentium Extreme Edition. Estos dos procesadores tenían dos núcleos dentro de un mismo chip. Ahora, nos referimos a las CPU más antiguas como single core y a los nuevos procesadores como dual core. EL NOMBRE DEL PROCESADOR A cada CPU se le asigna un nombre (también conocido como el número del modelo). Este nombre nos dice mucho sobre las propiedades del procesador. Por ejemplo: SISTEMAS MICROPROCESADOR 9 Introducción a los Sistemas Industriales LA VELOCIDAD DEL RELOJ DEL PROCESADOR La velocidad del reloj del procesador (o simplemente velocidad del procesador) indica la velocidad con la que se ejecutan los procesos. Dentro de cada tic-tac del reloj (también conocido como "ciclo del reloj") el procesador efectúa una operación. Por lo tanto, cuantos más ciclos por segundo haya, tanto más rápido será el procesador y mejor rendimiento tendrá el ordenador. En la actualidad la velocidad del reloj se mide en gigahercios (GHz), donde 1 GHz representa mil millones de ciclos por segundo. La velocidad del procesador es a menudo un múltiplo de la velocidad del bus externo: por ejemplo, un chip de 500 MHz instalado en una placa base 100 MHz funcionará a 5 veces la velocidad del bus. Sin embargo, es importante tener en cuenta que una CPU de 1,8 GHz no es necesariamente dos veces más rápido que una CPU de 900 MHz. Esto se debe a que diferentes procesadores a menudo utilizan diferentes arquitecturas. Por ejemplo, puede haber algún procesador puede requiera más ciclos de reloj para completar una instrucción de multiplicación que otro procesador. Una CPU de 1,8 GHz puede completar una instrucción de multiplicación en 4 ciclos, mientras que una CPU de 900 MHz toma 7 ciclos, por lo tanto, el procesador de 1,8 GHz será de dos veces más rápido. Pero puede ocurrir la situación inversa, que el procesador de 1,8 GHz tome más de dos ciclos para llevar a cabo la instrucción, será por tanto dos veces más lento que el procesador de 900 MHz. Otros factores, tales como la velocidad de un bus de ordenador, el tamaño de la caché, la velocidad de la memoria RAM, y la velocidad del disco duro también contribuyen al rendimiento global de la máquina. Por lo tanto, mientras que la velocidad de reloj del procesador es un indicador importante de lo rápido que un ordenador es, no es el único factor que importa. MILLONES DE INSTRUCCIONES POR SEGUNDO (MIPS) La velocidad de reloj no se refiere directamente a la velocidad a la que la CPU ejecuta instrucciones. Los primeros microprocesadores requerían un máximo de 10 ciclos de reloj para completar una sola instrucción. Los microprocesadores modernos, llamados de "arquitectura superescalar" tienen doble o múltiples "tuberías" de manera que más de una instrucción se puede ejecutar a la vez. Por lo tanto, una medida más precisa de la velocidad del procesador es MIPS (millones de instrucciones por segundo), aunque la número de instrucciones reales del procesador rara vez alcanza el máximo teórico. SISTEMAS MICROPROCESADOR 10 Introducción a los Sistemas Industriales LA VELOCIDAD DEL BUS PROCESADOR El bus del sistema es la vía de transmisión de datos de la placa madre que conecta el procesador y northbridge. Es la vía de datos más importante del ordenador porque todos deberán viajar por ella en un momento determinado. En las máquinas Intel, al bus del sistema se le conoce como "bus de la parte frontal" (FSB), mientras que en las máquinas AMD se le conoce como "bus de hípertransporte" (HT). Como ya se habrá imaginado, cuanto más rápido se puedan transferir los datos, mucho más rápido será el ordenador. Es decir, que un procesador que trabaje con un sistema que tenga una velocidad de bus muy alta dará mejor rendimiento que el Figura 5 Buses en el MP mismo procesador en otro ordenador con una velocidad de bus más baja (asumiendo que el resto de propiedades que afectan al rendimiento del ordenador sean idénticas). La velocidad del bus se mide en megahercios (MHz) o, lo que es lo mismo, en millones de ciclos por segundo. En la actualidad, las velocidades del bus de datos oscilan entre los 8OO MHz y los 1.333 MHz para los FSB de Intel y entre los 8OO MHz y los 1.OOO MHz para los bus HT de AMD. TAMAÑO DE LA MEMORIA CACHÉ L2 DEL PROCESADOR Una de las tareas principales de la CPU es enviar y recibir datos de las zonas de almacenamiento (discos duros y memoria) del sistema. Si vamos a recuperar tan sólo un dato de cualquiera de estos dispositivos, el tiempo que empleará el procesador en la tarea será despreciable. Sin embargo, los procesadores están trabajando constantemente con montañas de datos. En este caso, si estuviésemos solicitando constantemente datos al disco duro o a la memoria del sistema, el rendimiento del ordenador sería muy bajo. SISTEMAS MICROPROCESADOR 11 Introducción a los Sistemas Industriales El procesador cuenta con un par de áreas reservadas en el chip de la memoria que utiliza para guardar los datos a los que se accede con cierta frecuencia. A estas áreas se la llama "cachés de memoria" y todas las CPU tienen por lo menos dos: una memoria caché L1 y otra L2. La primera es muy pequeña y apenas afecta al rendimiento de la CPU. Así que podemos ignorarla. La importante es la memoria caché L2 que sí influye en el rendimiento del sistema. Por regla general (y dando por hecho que el resto de propiedades de la CPU son exactamente iguales) cuanto mayor sea el tamaño de la caché L2, mejor será el rendimiento del procesador. El tamaño de la memoria caché L2 se mide en kilobytes (KB) o, más frecuentemente en, megabytes (MB). El tamaño de las memorias caché L2 delos procesadores Intel que podemos encontrar en la actualidad en el mercado está entre los 512 KB y los 8 MB, mientras que la memoria caché L2 de los procesadores AMD va desde los 128 KB a los 2 MB. 2.4 Conjunto de instrucciones Un conjunto de instrucciones, o la arquitectura del conjunto de instrucciones (ISA), es la parte de la arquitectura de computadores que se encarga de la programación, se incluyen los tipos de datos, instrucciones, registros, modos de direccionamiento, arquitectura de la memoria, interrupciones y manejo de excepciones y los puertos externos I/O. La arquitectura del conjunto de instrucciones se distingue de la microarquitectura, que es el conjunto de técnicas de diseño de procesadores utilizadas para implementar el conjunto de instrucciones. Ordenadores con diferentes microarquitecturas pueden compartir un conjunto de instrucciones comunes. Por ejemplo, el procesador Intel Pentium y el AMD Athlon implementan un conjunto de instrucciones idénticos de la x86, pero tienen diferentes diseños internos. CLASIFICACIÓN DE LOS CONJUNTOS DE INSTRUCCIONES Los microprocesadores CISC fueron los primeros en aparecer, caracterizándose por tener un conjunto de instrucciones que fue ganando en complejidad a medida que la escala de integración lo permitía. Los programas escritos para microprocesadores CISC resultan compactos, ya que existen instrucciones capaces de efectuar operaciones relativamente complejas. Dichas instrucciones, sin embargo tardan más en ejecutarse que otras más sencillas. SISTEMAS MICROPROCESADOR 12 Introducción a los Sistemas Industriales El diseño RISC surgió con el objetivo de conseguir microprocesadores capaces de ejecutar un mayor número de instrucciones por segundo. Para ello se decidió que el microprocesador implementase un conjunto reducido de instrucciones, todas ellas de una longitud similar y fácil de ejecutar. Durante unos años los procesadores RISC ofrecieron un rendimiento muy superior a los diseños CISC, ya que el aumento en las frecuencias de reloj y las técnicas de paralelización favorecían en mayor medida a la arquitectura RISC. En la actualidad no existen diseños RISC o CISC puros, sino que se tiende a utilizar lo mejor de ambos mundos. Los microprocesadores x86 de los últimos años, por ejemplo, cuentan con un conjunto de instrucciones CISC, muy amplio y con operaciones complejas, pero la unidad de ejecución es de tipo RISC, existiendo una etapa intermedia en la que las instrucciones son divididas en microoperaciones más simples. 2.5 Microarquitectura La microarquitectura, también llamada como organización de la computadora, es la manera que un conjunto de instrucciones (ISA) es implementada por el procesador. Un ISA puede ser implementado con diferentes microarquitecturas. Las implementaciones pueden variar debido a diferentes objetivos de un diseño dado o debido a los cambios en la tecnología. La arquitectura de la computadora es la combinación del diseño de la microarquitectura y del conjunto de instrucciones. CICLO DE INSTRUCCIONES: ETAPAS La unidad de búsqueda (Fetch) obtiene la siguiente instrucción de la memoria caché. La unidad decodificadora (Decode Unit) determina el tipo de instrucción. La instrucción y el dato son enviados a la unidad de ejecución (Execution Unit). Se almacenan los datos en la unidad de escritura (Write unit). Figura 6 Etapas en la ejecución de instrucciones microprocesador SISTEMAS MICROPROCESADOR 13 Introducción a los Sistemas Industriales Ejemplo de procesamiento secuencial de una instrucción: Figura 7 Etapas de las instrucciones Requiere una cantidad de hardware considerable. En los procesos sencillos solo una parte del hardware se activa en un determinado momento: la que se necesita para resolver la microoperación. Por todo lo anterior este método es poco eficiente. ENTUBADO DE INSTRUCCIONES Es una técnica que permite superponer en el tiempo la ejecución de varias instrucciones a la vez. No requiere hardware adicional. Sólo se necesita lograr que todas las partes del procesador trabajen a la vez. SISTEMAS MICROPROCESADOR 14 Introducción a los Sistemas Industriales Figura 8 Entubado de instrucciones • • • Cada operación se descompone en partes. Se ejecutan en un mismo momento diferentes partes de diferentes operaciones. Cada parte se denomina etapa. 2.6 Paralelismo El paralelismo es un paradigma de la programación concurrente que consiste en subdividir el conjunto de datos de entrada a un programa, de manera que a cada procesador le corresponda un subconjunto de esos datos. Cada procesador efectuará la misma secuencia de operaciones que los otros procesadores sobre su subconjunto de datos asignado. En resumen: se distribuyen los datos y se replican las tareas. Idealmente, esta ejecución simultánea de operaciones, resulta en una aceleración neta global del cómputo. El paralelismo de datos es un paradigma suficientemente adecuado para operaciones sobre vectores y matrices, dado que muchas de ellas consisten en aplicar la misma operación sobre cada uno de sus elementos. La computación paralela es inevitable: • • • Demanda de las aplicaciones: Insaciable necesidad de potencia de cálculo. o De propósito general: vídeo, gráficos, CAD, bases de datos… o Científica: Biología, Química, Física,…. Tendencias tecnológicas: o El número de transistores en un CI crece rápidamente. o Se esperan crecimientos lentos de la frecuencia de reloj. Tendencias en arquitectura: SISTEMAS MICROPROCESADOR 15 Introducción a los Sistemas Industriales • • o Límites del paralelismo a nivel de instrucción (superescalares). o Paralelismo a nivel de tareas la vía más adecuada. Tendencias actuales: o Los microprocesadores actuales tienen soporte para multiproceso. o Aparición de estaciones de trabajo multiprocesador: Sun, SGI, HP,… o Los microprocesadores del mañana serán multiproceso Tendencia en las aplicaciones o Realimentación entre la demanda de potencia y la complejidad de las aplicaciones. o Amplio rango de prestaciones demandadas. o Progresiva potencia con coste progresivo. 2.7 Sistemas embebidos Un sistema embebido (anglicismo embedded) o empotrado es un sistema de computación diseñado para realizar una o algunas pocas funciones dedicadas frecuentemente en un sistema de computación en tiempo real. Al contrario de lo que ocurre con los ordenadores de propósito general (como por ejemplo una computadora personal o PC) que están diseñados para cubrir un amplio rango de necesidades, los sistemas embebidos se diseñan para cubrir necesidades específicas. En un sistema embebido la mayoría de los componentes se encuentran incluidos en la placa base (la tarjeta de vídeo, audio, módem, etc.) y muchas veces los dispositivos resultantes no tienen el aspecto de lo que se suele asociar a una computadora. Algunos ejemplos de sistemas embebidos podrían ser dispositivos como un taxímetro, un sistema de control de acceso, la electrónica que controla una máquina expendedora o el sistema de control de una fotocopiadora entre otras múltiples aplicaciones. Por lo general los sistemas embebidos se pueden programar directamente en el lenguaje ensamblador del microcontrolador o microprocesador incorporado sobre el mismo, o también, utilizando los compiladores específicos, pueden utilizarse lenguajes como C o C++; en algunos casos, cuando el tiempo de respuesta de la aplicación no es un factor crítico, también pueden usarse lenguajes interpretados como JAVA. Puesto que los sistemas embebidos se pueden fabricar por decenas de millares o por millones de unidades, una de las principales preocupaciones es reducir los costes. Los sistemas embebidos suelen usar un procesador relativamente pequeño y una memoria pequeña para ello. Los primeros equipos embebidos que se desarrollaron fueron elaborados por IBM en los años 1980. Los programas de sistemas embebidos se enfrentan normalmente a tareas de procesamiento en tiempo real. SISTEMAS MICROPROCESADOR 16 Introducción a los Sistemas Industriales 2.8 Importancia del avance de la tecnología Entre los primeros microprocesadores hasta los que se fabrican hoy en día la diferencia es abismal. En los primeros se trabajaba a una frecuencia de 100KHz con palabras de 4 bits y la memoria alcanzaba una capacidad de 640 bytes. Los actuales tienen frecuencias que alcanzan varios GHz, trabajan con palabras de 64 bits y manejan memorias de decenas de Gbytes. LEY DE MOORE Esta ley establece que el número de transistores que hay en un circuito integrado se duplica aproximadamente cada dieciocho meses. Esto supone que cada año y medio se duplica el número de elementos que contienen los microprocesadores, lo que significa un tremendo aumento de la potencia y del rendimiento. LIMITACIONES EN EL AVANCE DE LA TECNOLOGÍA Entro otros destacan tres parámetros que limitan el avance de la tecnología: o o La temperatura: La miniaturización y la frecuencia actual de los procesadores provoca que se genere mucho calor. Hasta el momento, la solución práctica es el uso de sistemas de refrigeración. El espacio y la velocidad: Al aumentar el número de transistores, aumenta la superficie del procesador y al aumentar la escala de integración, los transistores están más juntos. Como consecuencia de lo anterior aparecen los siguientes problemas: SISTEMAS MICROPROCESADOR 17 Introducción a los Sistemas Industriales Fenómenos de inversión: al comunicarse transistores relativamente lejanos a frecuencias elevadas, puede ocurrir que el transistor emisor envíe un nivel lógico y el transistor receptor lo reciba invertido. Electromigración: debido a la miniaturización de los transistores los materiales que los componen quedan más cerca el uno del otro y los electrones pueden migrar indebidamente entre los propios materiales o capas próximas. 2.9 Concepto de familia Una familia de microprocesadores es un conjunto de modelos ligados por algunas características comunes. FAMILIA x86 Los procesadores de esta familia son del fabricante Intel, y su arquitectura responde al nombre IA-32. El núcleo de esta arquitectura es común para todos los microprocesadores y cada modelo añade extensiones y recursos a dicho núcleo. Figura 9 Extensiones en el MP El juego de instrucciones de esta arquitectura es tipo CISC siendo las instrucciones numerosas complejas y largas, necesitando múltiples ciclos de reloj para su ejecución. La compatibilidad ascendente en el software es la clave del éxito comercial de la familia x86 y consiste en que los nuevos modelos de SISTEMAS MICROPROCESADOR 18 Introducción a los Sistemas Industriales microprocesadores pueden ejecutar el software desarrollado para los modelos previos. Se cambia el hardware, pero se mantiene el software. Un Pentium III puede ejecutar programas desarrollados para el Pentium II, el 486 y el 386. La segunda característica consiste en el aumento del número de transistores y la incorporación de los recursos más avanzados del momento en cada nuevo modelo. Intel incorpora nuevas características a sus nuevos modelos, pero mantiene la compatibilidad con el software anterior. 2.10 Generaciones La familia x86 ha ido creciendo a través de seis generaciones y dentro de cada una, hay diferentes modelos de microprocesadores con diversas cualidades. Cada modelo de esta familia está orientado a cubrir un sector de mercado donde el factor del precio, energía o de otras prestaciones sea sustancial, pero manteniendo siempre la compatibilidad entre todos ellos. PRIMERA GENERACIÓN 8086 En 1978 aparecen los microprocesadores 8086 y 8088, que se desarrollaron a partir de un procesador anterior, el 8080, que fue un microprocesador de 8 bits de gran éxito. El 8086 tiene un bus de 16 bits, 29.000 transistores, un rendimiento 10 veces mayor que el 8080 y lo utilizó IBM para construir el primer PC. La filosofía seguida por la familia de microprocesadores 8086 es la de permitir la compatibilidad y la creación de sistemas informáticos integrados, para lo cual, se diseñaron diversos coprocesadores: o 8089 coprocesador de E/S. SISTEMAS MICROPROCESADOR 19 Introducción a los Sistemas Industriales o 8087 coprocesador matemático de coma flotante. SEGUNDA GENERACIÓN 80286 En 1982, nuevo impulso funcionamiento completamente o o con la aparición de los primeros 80286, Intel trató de dar un a la industria de los microprocesadores. Admitían el en modo multitarea y poseían dos modos de funcionamiento diferenciados: Modo Real: Se comporta igual que un 8086 pero con mayor velocidad. Nada más ser conectado a la alimentación, el microprocesador arranca en este modo. Modo Protegido: Funciona con capacidad de proceso multitarea y memoria virtual. Este modo de funcionamiento es propio del 286 y funcionando en este modo se pierde la compatibilidad con los procesadores anteriores. Figura 10 Arquitectura 80286 SISTEMAS MICROPROCESADOR 20 Introducción a los Sistemas Industriales TERCERA GENERACIÓN 80386 El 80386 fue el primer procesador de 32 bits del mundo y ha llegado a ser un estándar en la industria. En lugar de los registros de 16 bits de los microprocesadores anteriores, dispone de registros de 32 bits en la arquitectura, que sirven para almacenar operandos y direcciones. CUARTA GENERACIÓN 80486 El 80486 es una versión mejorada del 80386 que además tiene integrada una memoria caché de 8 Kbyte y un coprocesador matemático 40382, con lo que se consigue que casi la mitad de las instrucciones del 486 se ejecuten en un periodo de reloj, en vez de 1os dos periodos que requiere el 386. Figura 11 Arquitectura 80486 QUINTA GENERACIÓN PENTIUM En 1992 Intel anunció que la quinta generación de su línea de procesadores compatibles llevaría el nombre de Pentium en yez de 586 u 80586. De este modo, Intel pudo diferenciar el nombre de sus procesadores de los de sus competidores. • Las características principales de los primeros modelos Velocidades iniciales de 60 y 66 MHz. SISTEMAS MICROPROCESADOR 21 de Pentium son: Introducción a los Sistemas Industriales • • • • • • • 3.100.000 transistores. Caché interna de 8 KB para datos y 8 KB para instrucciones. Permite la ejecución de dos instrucciones simultáneamente. Mejora el rendimiento respecto a los microprocesadores anteriores. El chip se empaqueta en formato PGA («Pin Grid Array») de 273 pines. Las principales aportaciones del Pentium son: Supersegmentación con 14 etapas. Arquitectura superescalar. Dos cauces de datos, por lo que en un ciclo se ejecutan más de una instrucción. Figura 12 Arquitectura Pentium SEXTA GENERACIÓN ITANIUM Es el primer procesador con arquitectura completa de 64 bits y surge de la colaboración de Intel y HP. Es compatible con la familia x86, pero va a ejecutar más lentamente los programas de 32 bits. Su arquitectura se denomina EPIC (Explicity Parallel Instruction Computing o <<Proceso de Instrucciones Explícitamente Paralelo»), que le permite ejecutar hasta seis instrucciones en paralelo por ciclo de reloj, siendo el compilador quien decide cuáles son las instrucciones que se pueden ejecutar en paralelo sin conflictos. Esto es posible gracias a la duplicidad de unidades funcionales dentro del mismo procesador, ya que en el Itanium hay seis unidades de proceso, dos de coma flotante y cuatro de enteros. SISTEMAS MICROPROCESADOR 22 Introducción a los Sistemas Industriales Figura 13 Arquitectura interna Itanium 3. CONCLUSIONES La evolución de los microprocesadores está ligada a las necesidades que las personas necesitan en cada momento, así aparecieron en primer lugar los microprocesadores de uso general y más tarde siendo necesario microprocesadores más simples pero que sólo realizaran unas pocas aplicaciones aparecieron los microcontroladores. Con el desarrollo de nuevos programas y el peso que estos tienen en la sociedad actual para el diseño, control,… se requieren microprocesadores que tengan una velocidad elevada, surgen así nuevos diseños que hacen que las instrucciones se ejecuten a mayor velocidad, paralelismo, microestructuras,… 4. BIBLIOGRAFÍA Y/O REFERENCIAS [1] Fernando Valdés Pérez, Ramón Pallás Areny. Microcontroladores: Fundamentos y aplicaciones PIC. Ed. Marcombo 2007 [2] José María Martínez. Angulo Usategui, José Luis Gutiérrez Temiño, Ignacio Angulo Arquitectura de Microprocesadores: Los Pentium a fondo. Ed. Thomson 2003 [3] John Freer. Diseño de Sistemas con Microprocesadores Avanzados. Ed. Anaya 1989 5. ENLACES DE INTERÉS SISTEMAS MICROPROCESADOR 23