VIERNES 29 de noviembre de 2013 SENA ERICK DE LA HOZ ANDERSSON PALMA ALEXIS GUERRERO FREDER TORRES MARCOS MONTENEGRO [PROCESADORES] El cerebro de las micro computadoras es el microprocesador, éste maneja las necesidades aritméticas, lógicas y de control de la computadora, todo trabajo que se ejecute en una computadora es realizado directa o indirectamente por el microprocesador INTRODUCCIÓN Se le conoce por sus siglas en inglés CPU (Unidad Central de Proceso). El microprocesador tiene su origen en la década de los sesenta, cuando se diseñó el circuito integrado (CI) al combinar varios componentes electrónicos en un solo componente sobre un “Chip” de silicio. El microprocesador es un tipo de componente electrónico en cuyo interior existen miles (o millones) de elementos llamados transistores, cuya combinación permite realizar el trabajo que tenga encomendado el chip. El microprocesador hizo a la computadora personal (PC) posible. En nuestros días uno o más de estos milagros modernos sirven como cerebro no sólo a computadoras personales, sino también a muchos otros dispositivos, como juguetes, aparatos electrodomésticos, automóviles, etc. Después del surgimiento de la PC (computadora personal), la investigación y desarrollo de los microprocesadores se convirtió en un gran negocio. El más exitoso productor de microprocesadores, la corporación Intel, convirtió al microprocesador en su producto más lucrativo en el mercado de la PC. A pesar de esta fuerte relación entre PC y microprocesador, las PC's son sólo una de las aplicaciones más visibles de la tecnología de los microprocesadores, y representan una fracción del total de microprocesadores producidos y comercializados. Los microprocesadores son tan comunes que probablemente no nos damos cuenta de su valor, nunca pensamos en ellos tal vez porque la gran mayoría de éstos siempre se encuentran ocultos en los dispositivos. En la PC, el microprocesador es la pieza central, su elección es la de mayor importancia al seleccionar una computadora. Nosotros compramos una PC basada en el tipo de microprocesador que contiene y la velocidad de éste. Esto no sucede con otros dispositivos, donde nunca seleccionamos, por ejemplo una videocasetera o televisor por su microprocesador, aunque éste sea una pieza importante. Sin importar la aplicación, todos los microprocesadores trabajan de la misma forma. Cada uno está basado en la misma tecnología electrónica y apoyada en los mismos principios de lógica que guían su operación. ¿QUE ES UN MICROPROCESADOR? Un microprocesador es un circuito integrado, con una escala de integración muy alta, formado por millones de transistores y resistencias. Todos estos transistores y resistencias se encuentran integrados, esto es que son producidos y conectados durante el mismo proceso de fabricación, todos forman una sola pieza. Todo comienza con una pieza pura de un cristal de silicio, el cual es cortado en muchas obleas delgadas con gran precisión, y después estas obleas son introducidas en grandes hornos con gases, los cuales generan impurezas en el material de silicio, cambiando sus propiedades eléctricas. El proceso de generar impurezas en el material se repite, anexando el paso de colocación de aislantes en algunas áreas de la oblea. Y de esta forma se construye el circuito integrado. Este proceso de alquimistas convierte arena en oro, generando grandes ganancias a los productores de microprocesadores, y creando cerebros electrónicos con la capacidad de un artrópodo promedio. La comparación es correcta, pues como los insectos y crustáceos la PC puede reaccionar, aprender y recordar. A diferencia de los organismos avanzados que tienen conciencia verdadera, el microprocesador no puede razonar, no tiene conciencia de sí mismo. Aunque las computadoras a menudo son llamadas las “máquinas pensantes”, el microprocesador está muy lejos de los procesos pensantes y de la conciencia. O quizá no, algunos teóricos creen que nuestra mente y las computadoras trabajan fundamentalmente de la misma manera, aunque ninguno conoce cómo es que trabaja exactamente la mente humana. ARQUITECTURA DEL PROCESADOR DENTRO DE LA MOTHER BOARD Es la unidad de procesamiento central del computador.Se describen en términos de su tamaño de palabra y su velocidad. El tamaño de la palabra es el número de bits que se maneja como una unidad en un sistema de computación en particular. Normalmente, el tamaño de palabra de las micro computadoras modernas es de 32 bits; es decir, el bus del sistema puede transmitir 32 bits (4 bytes de 8 bits) a la vez entre el procesador, la RAM y los periféricos. ¿COMO RECONOCER A UN MICRO-PROCESADOR INTEL? La manera más sencilla de saber si tiene un procesador Intel ES es mirar en el procesador parte superior nomenclaturas. Si tiene un 4 o 5 dígitos Qspec aparece como el que se ilustra a continuación, usted tiene un modelo de ingeniería. Un procesador de producción tendrá un sSpec 5 dígitos, el cual por lo general empieza con S, tales como SLB9L en las nomenclaturas superior. HISTORIA DE LOS PROCESADORES La historia de los procesadores, desde ENIAC hasta Nehalem Según Gordon Moore, cofundador de Intel® y autor de la ley que lleva su nombre, los nuevos procesadores Nehalem de Intel representan el mayor avance en la tecnología aplicada a transistores desde la década del ’60. Estos procesadores, de un tamaño menor que el de la uña de un dedo, son el resultado de un avance tecnológico que comenzó hace años con computadoras de gran tamaño y menor capacidad. Con la introducción de materiales totalmente nuevos como los circuitos basados en Hafnio, logran una reducción de hasta un 30% de la pérdida de energía frente a los procesadores de generaciones anteriores. La primera computadora electrónica fue la ABC (Atanasoff Berry Computer), construida entre 1937 y por el Doctor Vincent V. Atanasoff, y Clifford E. Berry. Pesaba 320 kg. y ocupaba el espacio de una mesa. Su función principal era resolver problemas de algebra con la mayor exactitud. Los últimos desarrollos de Intel en tecnología de procesadores han logrado maximizar su rendimiento, la reducción de su tamaño y consumo energético. Pero no siempre fue así, pues en los comienzos de la informática, las computadoras eran grandes maquinarias, capaces de realizar sólo algunos cálculos matemáticos. En 1946 fue presentada públicamente la ENIAC (Electronic Numerical Integrator And Computer), desarrollada por John Presper Eckert y John William Mauchly. Se trataba de un coloso de 167m2 y pesaba 27 toneladas, cuyo funcionamiento podía elevar la temperatura del ambiente hasta los 50ºC. A diferencia de sus contemporáneas, la ENIAC prescindía completamente de procesos analógicos. Durante las décadas del ’50 y ’60 se produjo otro gran avance: las computadoras dejaron de funcionar a base de tubos de vacío y comenzaron a emplear circuitos de transistores. Inventados en 1947 por William Shockley, John Bardeen y Walter Brattain, los transistores son pequeños interruptores de transmisión eléctrica. El desarrollo de los circuitos integrados permitió en 1971 la aparición del primer microprocesador, el 4004 de Intel®, que tenía 2000 transistores. 1937 1946 1947 1971 1981 1982 1985 1991 1999 2001 2005 2006 2007 2008 ABC (Atanasoff Berry Computer), primera computadora electrónica 1937 Aparición del primer microprocesador, el 4004 de Intel®, con 2000 transistores. 1971 Introducción de los transistores 1947 Lanzamiento del procesador 8088 de Intel®, primero con 16 bits. 1981 Procesador Intel® 286, con 139.000 transistores 1982 Salida del Intel® 386, el primero que permitió ejecutar múltiples tareas. 1985 Tres veces mas transistores con el Procesador Intel® Pentium® III 1999 Primeros procesadores de 90nm fabricados en Silicio 2001 Procesador Intel® Core™ 2 Duo fabricado en 65nm 2006 ENIAC (Electronic Numerical Integrator And Computer), primera sin procesos analógicos 1946 Lanzamiento del Procesador Intel® Pentium® con 3 millones de transistores 1991 Primer procesador multinúcleo del mercado: el Intel® Pentium® D 2005 Lanzamiento de Intel® Core™ 2 Quad, primer procesador de cuatro núcleos 2007 La era de los 45nm 2008 EVOLUCIÓN HISTÓRICA DE LOS PROCESADORES En 1981 apareció el procesador 8088 de Intel®. El mismo era de 16 bits, trabajaba a un máximo de 10MHz y disponía de 29.000 transistores. Un año después, el procesador Intel® 286, que contaba con 139.000 transistores, salió al mercado. Intel® desarrolló en 1985 un procesador que disponía de 287.000 transistores, es decir, cien veces más que el procesador 4004 de casi quince años atrás: era el Intel® 386, que con sus 32 bits fue el primero que permitió ejecutar múltiples tareas. El Procesador Intel® Pentium® fue lanzado en 1991. Ocupaba una superficie de 0.8 micrones y contaba con 3 millones de transistores. Ocho años después la cantidad de transistores pasó a ser tres veces mayor (9.5 millones) con el Procesador Intel® Pentium® III. Al comienzo del nuevo milenio, Intel® se encontraba desarrollando procesadores de 90nm que brindaban mayor desempeño y menor consumo energético. Fueron los primeros procesadores fabricados en Silicio. En 2005 hizo su aparición el primer procesador multinúcleo del mercado: el Intel® Pentium® D. Fue el comienzo de la tecnología Dual-Core en microprocesadores, que un año después llevó al desarrollo del Procesador Intel® Core™ 2 Duo. Su proceso de fabricación de 65nm le permitió llegar a disponer de 290 millones de transistores. Los avances en tecnología multicore siguieron su curso y los procesadores de cuatro núcleos Intel® Core™ 2 Quad hicieron su aparición en 2007. De esta manera, el liderazgo de Intel una vez más se tradujo en mayor desempeño para el usuario, capaz ahora de disfrutar al máximo de la experiencia multimedia. Por fin, llega la era de los 45nm en 2008, dados a conocer bajo el nombre en código de Nehalem. Los procesadores más pequeños del mundo, que utilizan Hafnio como componente, se implementaron en los nuevos desarrollos de Intel® Core™ 2 Duo, Intel® Core™ 2 Quad, Intel® Xeon® y la línea de reciente aparición, Intel® Atom™ y representan la mayor innovación en la electrónica de los últimos 40 años.unmarked" ES procesador Intel. Póngase en contacto con Intel si usted está en posesión de un procesador Intel registros unmarked ES. MICROPROSESADOR Microprocesador Procesador AMD Athlon 64 X2 conectado en el zócalo de una placa base. El microprocesador, o simplemente procesador, es el circuito integrado central y más complejo de una computadora u ordenador; a modo de ilustración, se le suele asociar por analogía como el "cerebro" de una computadora. El procesador es un circuito integrado constituido por millones de componentes electrónicos integrados. Constituye la unidad central de procesamiento (CPU) de un PC catalogado como microcomputador. Desde el punto de vista funcional es, básicamente, el encargado de realizar toda operación aritmético-lógica, de control y de comunicación con el resto de los componentes integrados que conforman un PC, siguiendo el modelo base de Von Neumann. También es el principal encargado de ejecutar los programas, sean de usuario o de sistema; sólo ejecuta instrucciones programadas a muy bajo nivel, realizando operaciones elementales, básicamente, las aritméticas y lógicas, tales como sumar, restar, multiplicar, dividir, las lógicas binarias y accesos a memoria. Esta unidad central de procesamiento está constituida, esencialmente, por registros, una unidad de control y una unidad aritmético lógica (ALU), aunque actualmente todo microprocesador también incluye una unidad de cálculo en coma flotante, (también conocida como coprocesador matemático o FPU), que permite operaciones por hardware con números decimales, elevando por ende notablemente la eficiencia que proporciona sólo la ALU con el cálculo indirecto a través de los clásicos números enteros. El microprocesador está conectado, generalmente, mediante un zócalo específico a la placa base. Normalmente para su correcto y estable funcionamiento, se le adosa un sistema de refrigeración, que consta de un disipador de calor fabricado en algún material de alta conductividad térmica, como cobre o aluminio, y de uno o más ventiladores que fuerzan la expulsión del calor absorbido por el disipador; entre éste último y la cápsula del microprocesador suele colocarse pasta térmica para mejorar la conductividad térmica. Existen otros métodos más eficaces, como la refrigeración líquida o el uso de células peltier para refrigeración extrema, aunque estas técnicas se utilizan casi exclusivamente para aplicaciones especiales, tales como en las prácticas de overclocking. La "velocidad" del microprocesador suele medirse por la cantidad de operaciones por ciclo de reloj que puede realizar y en los ciclos por segundo que este último desarrolla, o también en MIPS. Está basada en la denominada frecuencia de reloj (oscilador). La frecuencia de reloj se mide Hertzios, pero dada su elevada cifra se utilizan múltiplos, como el megahertzio o el gigahertzio. Cabe destacar que la frecuencia de reloj no es el único factor determinante en el rendimiento, pues sólo se podría hacer comparativa entre dos microprocesadores de una misma arquitectura. Es importante notar que la frecuencia de reloj efectiva no es el producto de la frecuencia de cada núcleo físico del procesador por su número de núcleos, es decir, uno de 3 GHz con 6 núcleos físicos nunca tendrá 18 GHz, sino 3 GHz, independientemente de su número de núcleos. Microprocesador 2 Hay otros factores muy influyentes en el rendimiento, como puede ser su memoria caché, su cantidad de núcleos, sean físicos o lógicos, el conjunto de instrucciones que soporta, su arquitectura, etc; por lo que sería difícilmente comparable el rendimiento de dos procesadores distintos basándose sólo en su frecuencia de reloj. Un computador de alto rendimiento puede estar equipado con varios microprocesadores trabajando en paralelo, y un microprocesador puede, a su vez, estar constituido por varios núcleos físicos o lógicos. Un núcleo físico se refiere a una porción interna del microprocesador cuasi-independiente que realiza todas las actividades de una CPU solitaria, un núcleo lógico es la simulación de un núcleo físico a fin de repartir de manera más eficiente el procesamiento. Estos últimos años ha existido una tendencia de integrar el mayor número de elementos del PC dentro del propio procesador, aumentando así su eficiencia energética y su rendimiento. Una de las primeras integraciones, fue introducir la unidad de coma flotante dentro del encapsulado, que anteriormente era un componente aparte y opcional situado también en la placa base, luego se introdujo también el controlador de memoria, y más tarde un procesador gráfico dentro de la misma cámara, aunque no dentro del mismo encapsulado. Posteriormente se llegaron a integrar completamente en el mismo encapsulado (Die). Respecto a esto último, compañías tales como Intel ya planean integrar el Southbridge dentro del procesador, eliminando completamente ambos chipsets de la placa. También la tendencia general, más allá del mercado del PC, es integrar varios componentes en un mismo chip para dispositivos tales como Tablet PC, teléfonos móviles, videoconsolas portátiles, etc. A estos circuitos integrados "todo en uno" se les conoce como System on Chip; por ejemplo nVidia Tegra o Samsung Hummingbird, ambos integran procesador, GPU y controlador de memoria dentro de un mismo chip. Historia de los microprocesadores La evolución del microprocesador El microprocesador es producto de la evolución de distintas tecnologías predecesoras, surgido de la computación y la tecnología semiconductora; en los inicios no existían los procesadores tal como los conocemos hoy. El inicio de su desarrollo data de mitad de la década de 1950; estas tecnologías se fusionaron a principios de los años 70, produciendo el primer microprocesador. Tales tecnologías iniciaron su desarrollo a partir de la segunda guerra mundial; en este tiempo los científicos desarrollaron computadoras específicas para aplicaciones militares. En la posguerra, a mediados de la década de 1940, la computación digital emprendió un fuerte desarrollo también para propósitos científicos y civiles. La tecnología de circuitos electrónicos avanzó y los científicos hicieron grandes progresos en el diseño de componentes de estado sólido. En 1948 en los laboratorios Bell crearon el transistor. En los años 1950, aparecieron las primeras computadoras digitales de propósito general. Se fabricaron utilizando tubos al vacío o bulbos como componentes electrónicos activos. Tarjetas o módulos de tubos al vacío componían circuitos lógicos básicos, tales como compuertas y flip-flops. Ensamblando compuertas y flip-flops en módulos se construyó la computadora electrónica (la lógica de control, circuitos de memoria, etc.). Los tubos de vacío también formaron parte de la construcción de máquinas para la comunicación con las computadoras. Para la construcción de un circuito sumador simple se requiere de algunas compuertas lógicas. La construcción de una computadora digital precisa numerosos circuitos o dispositivos electrónicos. Un paso trascendental en el diseño de la computadora fue hacer que el dato fuera almacenado en memoria, como una forma de palabra digital. La idea de almacenar programas en memoria para luego ejecutarlo fue de fundamental importancia (Arquitectura de von Neumann). La tecnología de los circuitos de estado sólido evolucionó en la década de 1950. El empleo del silicio, de bajo costo y con métodos de producción masiva, hicieron del transistor el componente más usado para el diseño de circuitos electrónicos. Por lo tanto el diseño de la computadora digital tuvo un gran avance el reemplazo del tubo al vacío por Microprocesador 3 el transistor, a finales de la década de 1950. A principios de la década de 1960, el estado de arte en la construcción de computadoras de estado sólido sufrió un notable avance; surgieron las tecnologías en circuitos digitales como: RTL (Lógica Transistor Resistor), DTL (Lógica Transistor Diodo), TTL (Lógica Transistor Transistor), ECL (Lógica Complementada Emisor). A mediados de los años 1960 se producen las familias de circuitos de lógica digital, dispositivos en escala SSI y MSI que corresponden a baja y mediana escala de integración de componentes (Circuito integrado). A finales de los años 1960 y principios de los 70 surgieron los sistemas a alta escala de integración o LSI. La tecnología LSI fue haciendo posible incrementar la cantidad de componentes en los circuitos digitales integrados (Chip). Sin embargo, pocos circuitos LSI fueron producidos, los dispositivos de memoria eran un buen ejemplo. Las primeras calculadoras electrónicas requerían entre 75 y 100 circuitos integrados. Después se dio un paso importante en la reducción de la arquitectura de la computadora a un circuito integrado simple, resultando uno que fue llamado microprocesador, unión de las palabras "Micro" del griego μικρο-, "pequeño", y procesador. Sin embargo, es totalmente válido usar el término genérico procesador, dado que con el paso de los años, la escala de integración se ha visto reducida de micrométrica a nanométrica; y además, es, sin duda, un procesador. • El primer microprocesador fue el Intel 4004,*1+ producido en 1971. Se desarrolló originalmente para una calculadora, y resultó revolucionario para su época. Contenía 2.300 transistores, era un microprocesador de arquitectura de 4 bits que podía realizar hasta 60.000 operaciones por segundo, trabajando a una frecuencia de reloj de alrededor de 700KHz. • El primer microprocesador de 8 bits fue el Intel 8008, desarrollado a mediados de 1972 para su uso en terminales informáticos. El Intel 8008 integraba 3300 transistores y podía procesar a frecuencias máximas de 800Khz. • El primer microprocesador realmente diseñado para uso general, desarrollado en 1974, fue el Intel 8080 de 8 bits, que contenía 4500 transistores y podía ejecutar 200.000 instrucciones por segundo trabajando a alrededor de 2MHz. • Los primeros microprocesadores de 16 bits fueron el 8086 y el 8088, ambos de Intel. Fueron el inicio y los primeros miembros de la popular arquitectura x86, actualmente usada en la mayoría de los computadores. El chip 8086 fue introducido al mercado en el verano de 1978, en tanto que el 8088 fue lanzado en 1979. Llegaron a operar a frecuencias mayores de 4Mhz. • El microprocesador elegido para equipar al IBM Personal Computer/AT, que causó que fuera el más empleado en los PC-AT compatibles entre mediados y finales de los años 80 fue el Intel 80286 (también conocido simplemente como 286); es un microprocesador de 16 bits, de la familia x86, que fue lanzado al mercado en 1982. Contaba con 134.000 transistores. Las versiones finales alcanzaron velocidades de hasta 25 MHz. • Uno de los primeros procesadores de arquitectura de 32 bits fue el 80386 de Intel, fabricado a mediados y fines de la década de 1980; en sus diferentes versiones llegó a trabajar a frecuencias del orden de los 40Mhz. • El microprocesador DEC Alpha se lanzó al mercado en 1992, corriendo a 200 MHz en su primera versión, en tanto que el Intel Pentium surgió en 1993 con una frecuencia de trabajo de 66Mhz. El procesador Alpha, de tecnología RISC y arquitectura de 64 bits, marcó un hito, declarándose como el más rápido del mundo, en su época. Llegó a 1Ghz de frecuencia hacia el año 2001. Irónicamente, a mediados del 2003, cuando se pensaba quitarlo de circulación, el Alpha aun encabezaba la lista de los computadores más rápidos de Estados Unidos.*2+ • Los microprocesadores modernos tienen una capacidad y velocidad mucho mayores, trabajan en arquitecturas de 64 bits, integran más de 700 millones de transistores, como es en el caso de las serie Core i7, y pueden operar a frecuencias normales algo superiores a los 3GHz (3000MHz). Microprocesador 4 Breve Historia de los Microprocesadores El pionero de los actuales microprocesadores el 4004 de Intel. Imagen del Motorola 6800. Imagen del Zilog Z80 A. Imagen de un Intel 80286, más conocido como 286. Seguidamente se expone una lista ordenada cronológicamente de los microprocesadores de más populares que fueron surgiendo. • 1971: El Intel 4004 El 4004 fue el primer microprocesador del mundo, creado en un simple ship, y desarrollado por Intel. Era un CPU de 4 bits y también fue el primero disponible comercialmente. Este desarrollo impulsó la calculadora de Busicom[3] y dio camino a la manera para dotar de "inteligencia" a objetos inanimados, así como la computadora personal. • 1972: El Intel 8008 Codificado inicialmente como 1201, fue pedido a Intel por Computer Terminal Corporation para usarlo en su terminal programable Datapoint 2200, pero debido a que Intel terminó el proyecto tarde y a que no cumplía con la expectativas de Computer Terminal Corporation, finalmente no fue usado en el Datapoint. Posteriormente Computer Terminal Corporation e Intel acordaron que el i8008 pudiera ser vendido a otros clientes. • 1974: El SC/MP El SC/MP desarrollado por National Semiconductor, fue uno de los primeros microprocesadores, y estuvo disponible desde principio de 1974. El nombre SC/MP (popularmente conocido como "Scamp") es el acrónimo de Simple Cost-effective Micro Processor (Microprocesador simple y rentable). Presenta un bus de direcciones de 16 bits y un bus de datos de 8 bits. Una característica avanzada para su tiempo, es la capacidad de liberar los buses, a fin de que puedan ser compartidos por varios procesadores. Este procesador fue muy utilizado, por su bajo costo, y provisto en kits, para el propósitos educativos, de investigación y para el desarrollo de controladores industriales de diversos propósitos. • 1974: El Intel 8080 Microprocesador 5 Imagen de un Intel 80486, conocido también como 486SX de 33Mhz. IBM PowerPC 601. La parte de posterior de un Pentium Pro. Este chip en particular es de 200MHz, con 256KiB de cache L2. EL 8080 se convirtió en la CPU de la primera computadora personal, la Altair 8800 de MITS, según se alega, nombrada en base a un destino de la Nave Espacial "Starship" del programa de televisión Viaje a las Estrellas, y el IMSAI 8080, formando la base para las máquinas que ejecutaban el sistema operativo [[CP/M]|CP/M-80]. Los fanáticos de las computadoras podían comprar un equipo Altair por un precio (en aquel momento) de u$s395. En un periodo de pocos meses, se vendieron decenas de miles de estas PC. • 1975: Motorola 6800 Se fabrica, por parte de Motorola, el Motorola MC6800, más conocido como 6800. Fue lanzado al mercado poco después del Intel 8080. Su nombre proviene de que contenía aproximadamente 6800 transistores. Varios de los primeras microcomputadoras de los años 1970 usaron el 6800 como procesador. Entre ellas se encuentran la SWTPC 6800, que fue la primera en usarlo, y la muy conocida Altair 680. Este microprocesador se utilizó profusamente como parte de un kit para el desarrollo de sistemas controladores en la industria. Partiendo del 6800 se crearon varios procesadores derivados, siendo uno de los más potentes el Motorola 6809 • 1976: El Z80 La compañía Zilog Inc. crea el Zilog Z80. Es un microprocesador de 8 bits construido en tecnología NMOS, y fue basado en el Intel 8080. Básicamente es una ampliación de éste, con lo que admite todas sus instrucciones. Un año después sale al mercado el primer computador que hace uso del Z80, el Tandy TRS-80 Model 1 provisto de un Z80 a 1,77 MHz y 4 KB de RAM. Es uno de los procesadores de más éxito del mercado, del cual se han producido numerosas versiones clónicas, y sigue siendo usado de forma extensiva en la actualidad en multitud de sistemas embebidos. La compañía Zilog fue fundada 1974 por Federico Faggin, quien fue diseñador jefe del microprocesador Intel 4004 y posteriormente del Intel 8080. • 1978: Los Intel 8086 y 8088 Una venta realizada por Intel a la nueva división de computadoras personales de IBM, hizo que las PC de IBM dieran un gran golpe comercial con el nuevo producto con el 8088, el llamado IBM PC. El éxito del 8088 propulsó a Intel a la lista de las 500 mejores compañías, en la prestigiosa revista Fortune, y la misma nombró la empresa como uno de Los triunfos comerciales de los sesenta. • 1982: El Intel 80286 Microprocesador 6 Microprocesador AMD K6 original. Microprocesador Pentium II, se puede observar su estilo de zócalo diferente. Procesador Intel Celeron "Coppermine 128" de 600 MHz. El 80286, popularmente conocido como 286, fue el primer procesador de Intel que podría ejecutar todo el software escrito para su predecesor. Esta compatibilidad del software sigue siendo un sello de la familia de microprocesadores de Intel. Luego de 6 años de su introducción, había un estimado de 15 millones de PC basadas en el 286, instaladas alrededor del mundo. • 1985: El Intel 80386 Este procesador Intel, popularmente llamado 386, se integró con 275000 transistores, más de 100 veces tantos como en el original 4004. El 386 añadió una arquitectura de 32 bits, con capacidad para multitarea y una unidad de traslación de páginas, lo que hizo mucho más sencillo implementar sistemas operativos que usaran memoria virtual. • 1985: El VAX 78032 El microprocesador VAX 78032 (también conocido como DC333), es de único ship y de 32 bits, y fue desarrollado y fabricado por Digital Equipment Corporation (DEC); instalado en los equipos MicroVAX II, en conjunto con su ship coprocesador de coma flotante separado, el 78132, tenían una potencia cercana al 90% de la que podía entregar el minicomputador VAX 11/780 que fuera presentado en 1977. Este microprocesador contenía 125000 transistores, fue fabricado en tecnologóa ZMOS de DEC. Los sistemas VAX y los basados en este procesador fueron los preferidos por la comunidad científica y de ingeniería durante la década del 1980. • 1989: El Intel 80486 La generación 486 realmente significó contar con una computadora personal de prestaciones avanzadas, entre ellas,un conjunto de instrucciones optimizado, una unidad de coma flotante o FPU, una unidad de interfaz de bus mejorada y una memoria caché unificada, todo ello integrado en el propio chip del microprocesador. Estas mejoras hicieron que los i486 fueran el doble de rápidos que el par i386 - i387 operando a la misma frecuencia de reloj. El procesador Intel 486 fue el primero en ofrecer un coprocesador matemático o FPU integrado; con él que se aceleraron notablemente las operaciones de cálculo. Usando una unidad FPU las operaciones matemáticas más complejas son realizadas por el coprocesador de manera prácticamente independiente a la función del procesador principal. Microprocesador 7 Microprocesador Pentium III, de Intel. • 1991: El AMD AMx86 Procesadores fabricados por AMD 100% compatible con los códigos de Intel de ese momento, llamados "clones" de Intel, llegaron incluso a superar la frecuencia de reloj de los procesadores de Intel y a precios significativamente menores. Aquí se incluyen las series Am286, Am386, Am486 y Am586. • 1993: PowerPC 601 Es un procesador de tecnología RISC de 32 bits, en 50 y 66MHz. En su diseño utilizaron la interfaz de bus del Motorola 88110. En 1991, IBM busca una alianza con Apple y Motorola para impulsar la creación de este microprocesador, surge la alianza AIM (Apple, IBM y Motorola) cuyo objetivo fue quitar el dominio que Microsoft e Intel tenían en sistemas basados en los 80386 y 80486. PowerPC (abreviada PPC o MPC) es el nombre original de la familia de procesadores de arquitectura de tipo RISC, que fue desarrollada por la alinza AIM. Los procesadores de esta familia son utilizados principalmente en computadores Macintosh de Apple Computer y su alto rendimiento se debe fuertemente a su arquitectura tipo RISC. • 1993: El Intel Pentium El microprocesador de Pentium poseía una arquitectura capaz de ejecutar dos operaciones a la vez, gracias a sus dos pipeline de datos de 32bits cada uno, uno equivalente al 486DX(u) y el otro equivalente a 486SX(u). Además, estaba dotado de un bus de datos de 64 bits, y permitía un acceso a memoria de 64 bits (aunque el procesador seguía manteniendo compatibilidad de 32 bits para las operaciones internas, y los registros también eran de 32 bits). Las versiones que incluían instrucciones MMX no sólo brindaban al usuario un más eficiente manejo de aplicaciones multimedia, como por ejemplo, la lectura de películas en DVD, sino que también se ofrecían en velocidades de hasta 233 MHz. Se incluyó una versión de 200 MHz y la más básica trabajaba a alrededor de 166 MHz de frecuencia de reloj. El nombre Pentium, se mencionó en las historietas y en charlas de la televisión a diario, en realidad se volvió una palabra muy popular poco después de su introducción. • 1994: EL PowerPC 620 En este año IBM y Motorola desarrollan el primer prototipo del procesador PowerPC de 64 bit[4], la implementación más avanzada de la arquitectura PowerPC, que estuvo disponible al año próximo. El 620 fue diseñado para su utilización en servidores, y especialmente optimizado para usarlo en configuraciones de cuatro y hasta ocho procesadores en servidores de aplicaciones de base de datos y vídeo. Este procesador incorpora siete millones de transistores y corre a 133 MHz. Es ofrecido como un puente de migración para aquellos usuarios que quieren utilizar aplicaciones de 64 bits, sin tener que renunciar a ejecutar aplicaciones de 32 bits. • 1995: EL Intel Pentium Pro Lanzado al mercado para el otoño de 1995, el procesador Pentium Pro (profesional) se diseñó con una arquitectura de 32 bits. Se usó en servidores y los programas y aplicaciones para estaciones de trabajo (de redes) impulsaron rápidamente su integración en las computadoras. El rendimiento del código de 32 bits era excelente, pero el Pentium Microprocesador 8 Pro a menudo era más lento que un Pentium cuando ejecutaba código o sistemas operativos de 16 bits. El procesador Pentium Pro estaba compuesto por alrededor de 5,5 millones de transistores. • 1996: El AMD K5 Habiendo abandonado los clones, AMD fabricada con tecnologías análogas a Intel. AMD sacó al mercado su primer procesador propio, el K5, rival del Pentium. La arquitectura RISC86 del AMD K5 era más semejante a la arquitectura del Intel Pentium Pro que a la del Pentium. El K5 es internamente un procesador RISC con una Unidad x86- decodificadora, transforma todos los comandos x86 (de la aplicación en curso) en comandos RISC. Este principio se usa hasta hoy en todas las CPU x86. En la mayoría de los aspectos era superior el K5 al Pentium, incluso de inferior precio, sin embargo AMD tenía poca experiencia en el desarrollo de microprocesadores y los diferentes hitos de producción marcados se fueron superando con poco éxito, se retrasó 1 año de su salida al mercado, a razón de ello sus frecuencias de trabajo eran inferiores a las de la competencia, y por tanto, los fabricantes de PC dieron por sentado que era inferior. • 1996: Los AMD K6 y AMD K6-2 Con el K6, AMD no sólo consiguió hacerle seriamente la competencia a los Pentium MMX de Intel, sino que además amargó lo que de otra forma hubiese sido un plácido dominio del mercado, ofreciendo un procesador casi a la altura del Pentium II pero por un precio muy inferior. En cálculos en coma flotante, el K6 también quedó por debajo del Pentium II, pero por encima del Pentium MMX y del Pro. El K6 contó con una gama que va desde los 166 hasta los más de 500 Mhz y con el juego de instrucciones MMX, que ya se han convertido en estándares. Más adelante se lanzó una mejora de los K6, los K6-2 de 250 nanómetros, para seguir compitiendo con los Pentium II, siendo éste último superior en tareas de coma flotante, pero inferior en tareas de uso general. Se introduce un juego de instrucciones SIMD denominado 3DNow! • 1997: El Intel Pentium II Un procesador de 7,5 millones de transistores, se busca entre los cambios fundamentales con respecto a su predecesor, mejorar el rendimiento en la ejecución de código de 16 bits, añadir el conjunto de instrucciones MMX y eliminar la memoria caché de segundo nivel del núcleo del procesador, colocándola en una tarjeta de circuito impreso junto a éste. Gracias al nuevo diseño de este procesador, los usuarios de PC pueden capturar, revisar y compartir fotografías digitales con amigos y familia vía Internet; revisar y agregar texto, música y otros; con una línea telefónica; el enviar vídeo a través de las líneas normales del teléfono mediante Internet se convierte en algo cotidiano. • 1998: El Intel Pentium II Xeon Los procesadores Pentium II Xeon se diseñan para cumplir con los requisitos de desempeño en computadoras de medio-rango, servidores más potentes y estaciones de trabajo (workstations). Consistente con la estrategia de Intel para diseñar productos de procesadores con el objetivo de llenar segmentos de los mercados específicos, el procesador Pentium II Xeon ofrece innovaciones técnicas diseñadas para las estaciones de trabajo y servidores que utilizan aplicaciones comerciales exigentes, como servicios de Internet, almacenamiento de datos corporativos, creaciones digitales y otros. Pueden configurarse sistemas basados en este procesador para integrar de cuatro o ocho procesadores trabajando en paralelo, también más allá de esa cantidad. • 1999: El Intel Celeron Continuando la estrategia, Intel, en el desarrollo de procesadores para los segmentos del mercado específicos, el procesador Celeron es el nombre que lleva la línea de de bajo costo de Intel. El objetivo fue poder, mediante ésta segunda marca, penetrar en los mercados impedidos a los Pentium, de mayor rendimiento y precio. Se diseña para el añadir valor al segmento del mercado de los PC. Proporcionó a los consumidores una gran actuación a un bajo coste, y entregó un desempeño destacado para usos como juegos y el software educativo. • 1999: El AMD Athlon K7 (Classic y Thunderbird) Microprocesador 9 Procesador totalmente compatible con la arquitectura x86. Internamente el Athlon es un rediseño de su antecesor, pero se le mejoró substancialmente el sistema de coma flotante (ahora con 3 unidades de coma flotante que pueden trabajar simultáneamente) y se le incrementó la memoria caché de primer nivel (L1) a 128 KiB (64 KiB para datos y 64 KiB para instrucciones). Además incluye 512 KiB de caché de segundo nivel (L2). El resultado fue el procesador x86 más potente del momento. El procesador Athlon con núcleo Thunderbird apareció como la evolución del Athlon Classic. Al igual que su predecesor, también se basa en la arquitectura x86 y usa el bus EV6. El proceso de fabricación usado para todos estos microprocesadores es de 180 nanómetros. El Athlon Thunderbird consolidó a AMD como la segunda mayor compañía de fabricación de microprocesadores, ya que gracias a su excelente rendimiento (superando siempre al Pentium III y a los primeros Pentium IV de Intel a la misma frecuencia de reloj) y bajo precio, la hicieron muy popular tanto entre los entendidos como en los iniciados en la informática. • 1999: El Intel Pentium III El procesador Pentium III ofrece 70 nuevas instrucciones Internet Streaming, las extensiones de SIMD que refuerzan dramáticamente el desempeño con imágenes avanzadas, 3D, añadiendo una mejor calidad de audio, video y desempeño en aplicaciones de reconocimiento de voz. Fue diseñado para reforzar el área del desempeño en el Internet, le permite a los usuarios hacer cosas, tales como, navegar a través de páginas pesadas (con muchos gráficos), tiendas virtuales y transmitir archivos video de alta calidad. El procesador se integra con 9,5 millones de transistores, y se introdujo usando en él tecnología 250 nanómetros. • 1999: El Intel Pentium III Xeon El procesador Pentium III Xeon amplia las fortalezas de Intel en cuanto a las estaciones de trabajo (workstation) y segmentos de mercado de servidores, y añade una actuación mejorada en las aplicaciones del comercio electrónico e informática comercial avanzada. Los procesadores incorporan mejoras que refuerzan el procesamiento multimedia, particularmente las aplicaciones de vídeo. La tecnología del procesador III Xeon acelera la transmisión de información a través del bus del sistema al procesador, mejorando el desempeño significativamente. Se diseña pensando principalmente en los sistemas con configuraciones de multiprocesador. • 2000: EL Intel Pentium 4 Este es un microprocesador de séptima generación basado en la arquitectura x86 y fabricado por Intel. Es el primero con un diseño completamente nuevo desde el Pentium Pro. Se estrenó la arquitectura NetBurst, la cual no daba mejoras considerables respecto a la anterior P6. Intel sacrificó el rendimiento de cada ciclo para obtener a cambio mayor cantidad de ciclos por segundo y una mejora en las instrucciones SSE. • 2001: El AMD Athlon XP Cuando Intel sacó el Pentium 4 a 1,7 GHz en abril de 2001 se vió que el Athlon Thunderbird no estaba a su nivel. Además no era práctico para el overclocking, entonces para seguir estando a la cabeza en cuanto a rendimiento de los procesadores x86, AMD tuvo que diseñar un nuevo núcleo, y sacó el Athlon XP. Este compatibilizaba las instrucciones SSE y las 3DNow! Entre las mejoras respecto al Thunderbird se puede mencionar la prerrecuperación de datos por hardware, conocida en inglés como prefetch, y el aumento de las entradas TLB, de 24 a 32. • 2004: El Intel Pentium 4 (Prescott) A principios de febrero de 2004, Intel introdujo una nueva versión de Pentium 4 denominada 'Prescott'. Primero se utilizó en su manufactura un proceso de fabricación de 90 nm y luego se cambió a 65nm. Su diferencia con los anteriores es que éstos poseen 1 MiB o 2 MiB de caché L2 y 16 KiB de caché L1 (el doble que los Northwood), prevención de ejecución, SpeedStep, C1E State, un HyperThreading mejorado, instrucciones SSE3, manejo de instrucciones AMD64, de 64 bits creadas por AMD, pero denominadas EM64T por Intel, sin embargo por graves problemas de temperatura y consumo, resultaron un fracaso frente a los Athlon 64. • 2004: El AMD Athlon 64 Microprocesador 10 El AMD Athlon 64 es un microprocesador x86 de octava generación que implementa el conjunto de instrucciones AMD64, que fueron introducidas con el procesador Opteron. El Athlon 64 presenta un controlador de memoria en el propio circuito integrado del microprocesador y otras mejoras de arquitectura que le dan un mejor rendimiento que los anteriores Athlon y que el Athlon XP funcionando a la misma velocidad, incluso ejecutando código heredado de 32 bits.El Athlon 64 también presenta una tecnología de reducción de la velocidad del procesador llamada Cool'n'Quiet,: cuando el usuario está ejecutando aplicaciones que requieren poco uso del procesador, baja la velocidad del mismo y su tensión se reduce. • 2006: EL Intel Core Duo Intel lanzó ésta gama de procesadores de doble núcleo y CPUs 2x2 MCM (módulo Multi-Chip) de cuatro núcleos con el conjunto de instrucciones x86-64, basado en el la nueva arquitectura Core de Intel. La microarquitectura Core regresó a velocidades de CPU bajas y mejoró el uso del procesador de ambos ciclos de velocidad y energía comparados con anteriores NetBurst de los CPU Pentium 4/D2. La microarquitectura Core provee etapas de decodificación, unidades de ejecución, caché y buses más eficientes, reduciendo el consumo de energía de CPU Core 2, mientras se incrementa la capacidad de procesamiento. Los CPU de Intel han variado muy bruscamente en consumo de energía de acuerdo a velocidad de procesador, arquitectura y procesos de semiconductor, mostrado en las tablas de disipación de energía del CPU. Esta gama de procesadores fueron fabricados de 65 a 45 nanómetros. • 2007: El AMD Phenom Phenom fue el nombre dado por Advanced Micro Devices (AMD) a la primera generación de procesadores de tres y cuatro núcleos basados en la microarquitectura K10. Como característica común todos los Phenom tienen tecnología de 65 nanómetros lograda a través de tecnología de fabricación Silicon on insulator (SOI). No obstante, Intel, ya se encontraba fabricando mediante la más avanzada tecnología de proceso de 45 nm en 2008. Los procesadores Phenom están diseñados para facilitar el uso inteligente de energía y recursos del sistema, listos para la virtualización, generando un óptimo rendimiento por vatio. Todas las CPU Phenom poseen características tales como controlador de memoria DDR2 integrado, tecnología HyperTransport y unidades de coma flotante de 128 bits, para incrementar la velocidad y el rendimiento de los cálculos de coma flotante. La arquitectura Direct Connect asegura que los cuatro núcleos tengan un óptimo acceso al controlador integrado de memoria, logrando un ancho de banda de 16 Gb/s para intercomunicación de los núcleos del microprocesador y la tecnología HyperTransport, de manera que las escalas de rendimiento mejoren con el número de núcleos. Tiene caché L3 compartida para un acceso más rápido a los datos (y así no depende tanto del tiempo de latencia de la RAM), además de compatibilidad de infraestructura de los zócalos AM2, AM2+ y AM3 para permitir un camino de actualización sin sobresaltos. A pesar de todo, no llegaron a igualar el rendimiento de la serie Core 2 Duo. • 2008: El Intel Core Nehalem Intel Core i7 es una familia de procesadores de cuatro núcleos de la arquitectura Intel x86-64. Los Core i7 son los primeros procesadores que usan la microarquitectura Nehalem de Intel y es el sucesor de la familia Intel Core 2. FSB es reemplazado por la interfaz QuickPath en i7 e i5 (zócalo 1366), y sustituido a su vez en i7, i5 e i3 (zócalo 1156) por el DMI eliminado el northBrige e implementando puertos PCI Express directamente. Memoria de tres canales (ancho de datos de 192 bits): cada canal puede soportar una o dos memorias DIMM DDR3. Las placa base compatibles con Core i7 tienen cuatro (3+1) o seis ranuras DIMM en lugar de dos o cuatro, y las DIMMs deben ser instaladas en grupos de tres, no dos. El Hyperthreading fue reimplementado creando nucleos lógicos. Está fabricado a arquitecturas de 45 nm y 32 nm y posee 731 millones de transistores su versión más potente. Se volvió a usar frecuencias altas, aunque a contrapartida los consumos se dispararon. • 2008: Los AMD Phenom II y Athlon II Phenom II es el nombre dado por AMD a una familia de microprocesadores o CPUs multinúcleo (multicore) fabricados en 45 nm, la cual sucede al Phenom original y dieron soporte a DDR3. Una de las ventajas del paso de los 65 nm a los 45 nm, es que permitió aumentar la cantidad de cache L3. De hecho, ésta se incrementó de una manera generosa, pasando de los 2 MiB del Phenom original a 6 MiB. Microprocesador 11 • 2010: Familia Intel Core 2010 Intel Corporation lanza su nueva familia de procesadores Intel Core 2010, que ofrecen mayor integración y desempeño inteligente. Están dirigidos al mercado de consumo en general ofreciendo la "Intel Turbo Boost Technology", que permite la adaptación a las necesidades de desempeño del usuario. La llegada de los nuevos chips Intel Core i7, i5 e i3 coincide con la del innovador proceso de fabricación de 32 nanómetros (nm) de Intel. Los procesadores Intel Core 2010 se fabrican por medio del proceso de 32nm de la misma empresa, que incluye la segunda generación de transistores high-k metal gate. Esta técnica, junto con otros avances, ayuda a incrementar la velocidad de la computadora con disminución del consumo de energía. • 2010: Nueva Familia de AMD Phenom II y Athlon II AMD lanza cuatro nuevas CPUs que son versiones mejoradas de las anteriores. El nuevo Amd Phenom II X2 BE 555 de doble núcleo surge como el más rápido Dual-Core del mercado. También se lanzan tres nuevos Athlon II con solo Cache L2, pero con buena relación costo/rendimiento. El Amd Athlon II X4 630 corre a 2,8 GHz. El Amd Athlon II X4 635 continua la misma línea. AMD también lanza un nuevo triple núcleo, llamado Athlon II X3 440, así como un doble núcleo Athlon II X2 255. También sale el Phenom X4 995, de cuatro núcleos, que corre a más de 3,2GHz. Además de las nuevas CPUs, la compañía también pone en marcha nuevos chipsets de la serie 800 con una nueva IGP más rápida. • 2011: EL Intel Core Sandy Bridge Llegarán para remplazar los chips Nehalem, con Intel Core i3, Intel Core i5 e Intel Core i7 serie 2000 y Pentium G. Intel lanzará sus nuevos procesadores que se conocen con el nombre clave Sandy Bridge. Estos procesadores Intel Core que no tienen sustanciales cambios en arquitectura pero si los necesarios para hacerlos más eficientes y rápidos que los modelos anteriores. Es la segunda generación de los Intel Core con nuevas instrucciones de 256 bits, duplicando el rendimiento, mejorando el desempeño en 3D y todo lo que se relacione con operación en multimedia. Se esperan para Enero del 2011. Incluye nuevo conjunto de instrucciones denominado AVX y una GPU integrada de hasta 12 unidades de ejecución Ivy Bridge es la mejora de sandy bridge, se estima para 2012 y promete una mejora de la GPU, así como procesadores de sexdécuple núcleo en gamás más altas y cuádruple núcleo en la más básica, eliminando así los procesadores de núcleo doble. • 2011: El AMD Fusion AMD Fusion es el nombre clave para un diseño futuro de microprocesadores Turion, producto de la fusión entre AMD y ATI, combinando con la ejecución general del procesador, el proceso de la geometría 3D y otras funciones de GPUs actuales. La GPU (procesador gráfico) estará integrada en el propio microprocesador. Esta tecnología se espera hacia principios de 2011; como sucesor de la más reciente microarquitectura. Funcionamiento Desde el punto de vista lógico, singular y funcional, el microprocesador está compuesto básicamente por: varios registros, una unidad de control, una unidad aritmético-lógica, y dependiendo del procesador, puede contener una unidad en coma flotante. El microprocesador ejecuta instrucciones almacenadas como números binarios organizados secuencialmente en la memoria principal. La ejecución de las instrucciones se puede realizar en varias fases: • PreFetch, pre lectura de la instrucción desde la memoria principal. • Fetch, envío de la instrucción al decodificador • Decodificación de la instrucción, es decir, determinar qué instrucción es y por tanto qué se debe hacer. Microprocesador 12 • Lectura de operandos (si los hay). • Ejecución, lanzamiento de las máquinas de estado que llevan a cabo el procesamiento. • Escritura de los resultados en la memoria principal o en los registros. Cada una de estas fases se realiza en uno o varios ciclos de CPU, dependiendo de la estructura del procesador, y concretamente de su grado de segmentación. La duración de estos ciclos viene determinada por la frecuencia de reloj, y nunca podrá ser inferior al tiempo requerido para realizar la tarea individual (realizada en un solo ciclo) de mayor coste temporal. El microprocesador se conecta a un circuito PLL, normalmente basado en un cristal de cuarzo capaz de generar pulsos a un ritmo constante, de modo que genera varios ciclos (o pulsos) en un segundo. Este reloj, en la actualidad, genera miles de MHz. Un microprocesador es un sistema abierto con el que puede construirse un computador con las características que se desee acoplándole los módulos necesarios. Rendimiento El rendimiento del procesador puede ser medido de distintas maneras, hasta hace pocos años se creía que la frecuencia de reloj era una medida precisa, pero ese mito, conocido como "mito de los megahertzios" se ha visto desvirtuado por el hecho de que los procesadores no han requerido frecuencias más altas para aumentar su potencia de cómputo. Durante los últimos años esa frecuencia se ha mantenido en el rango de los 1,5 GHz a 4 GHz, dando como resultado procesadores con capacidades de proceso mayores comparados con los primeros que alcanzaron esos valores. Además la tendencia es a incorporar más núcleos dentro de un mismo encapsulado para aumentar el rendimiento por medio de una computación paralela, de manera que la velocidad de reloj es un indicador menos fiable aún. Medir el rendimiento con la frecuencia es válido únicamente entre procesadores con arquitecturas muy similares o iguales, de manera que su funcionamiento interno sea el mismo: en ese caso la frecuencia es un índice de comparación válido. Dentro de una familia de procesadores es común encontrar distintas opciones en cuanto a frecuencias de reloj, debido a que no todos los chip de silicio tienen los mismos límites de funcionamiento: son probados a distintas frecuencias, hasta que muestran signos de inestabilidad, entonces se clasifican de acuerdo al resultado de las pruebas. Esto se podría reducir en que los procesadores son fabricados por lotes con diferentes estructuras internas atendidendo a gamas y extras como podría ser una memoria caché de diferente tamaño, aunque no siempre es así y las gamas altas difieren muchísimo más de las bajas que simplemente de su memoria caché. Después de obtener los lotes según su gama, se someten a procesos en un banco de pruebas, y según su soporte a las temperaturas o que vaya mostrando signos de inestabilidad, se le adjudica una frecuencia, con la que vendrá programado de serie, pero con prácticas de overclock se le puede incrementar La capacidad de un procesador depende fuertemente de los componentes restantes del sistema, sobre todo del chipset, de la memoria RAM y del software. Pero obviando esas características puede tenerse una medida aproximada del rendimiento de un procesador por medio de indicadores como la cantidad de operaciones de coma flotante por unidad de tiempo FLOPS, o la cantidad de instrucciones por unidad de tiempo MIPS. Una medida exacta del rendimiento de un procesador o de un sistema, es muy complicada debido a los múltiples factores involucrados en la computación de un problema, por lo general las pruebas no son concluyentes entre sistemas de la misma generación. Microprocesador 13 Arquitectura El microprocesador tiene una arquitectura parecida a la computadora digital. En otras palabras, el microprocesador es como la computadora digital porque ambos realizan cálculos bajo un programa de control. Consiguientemente, la historia de la computadora digital nos ayudará a entender el microprocesador. El microprocesador hizo posible la fabricación de potentes calculadoras y de muchos otros productos. El microprocesador utiliza el mismo tipo de lógica que es usado en la unidad procesadora central (CPU) de una computadora digital. El microprocesador es algunas veces llamado unidad microprocesadora (MPU). En otras palabras, el microprocesador es una unidad procesadora de datos. En un microprocesador podemos diferenciar diversas partes: • El encapsulado: es lo que rodea a la oblea de silicio en si, para darle consistencia, impedir su deterioro (por ejemplo, por oxidación por el aire) y permitir el enlace con los conectores externos que lo acoplaran a su zócalo a su placa base. • La memoria cache: es una memoria ultrarrápida que emplea el micro para tener a mano ciertos datos que predeciblemente serán utilizados en las siguientes operaciones sin tener que acudir a la memoria RAM reduciendo el tiempo de espera. Por ejemplo: en una biblioteca, en lugar de estar buscando cierto libro a través de un banco de ficheros de papel se utiliza la computadora, y gracias a la memoria cache, obtiene de manera rápida la información. Todos los micros compatibles con PC poseen la llamada cache interna de primer nivel o L1; es decir, la que está más cerca del micro, tanto que está encapsulada junto a él. Los micros más modernos (Pentium III Coppermine, athlon Thunderbird, etc.) incluyen también en su interior otro nivel de caché, más grande aunque algo menos rápida, la caché de segundo nivel o L2 e incluso memoria caché de nivel 3, o L3. • Coprocesador Matemático: o correctamente la FPU (Unidad de coma flotante). Que es la parte del micro especializada en esa clase de cálculos matemáticos, antiguamente estaba en el exterior del procesador en otro chip. Esta parte esta considerada como una parte "lógica" junto con los registros, la unidad de control, memoria y bus de datos. • Los registros: son básicamente un tipo de memoria pequeña con fines especiales que el micro tiene disponible para algunos usos particulares. Hay varios grupos de registros en cada procesador. Un grupo de registros esta diseñado para control del programador y hay otros que no son diseñados para ser controlados por el procesador pero que CPU los utiliza en algunas operaciones, en total son treinta y dos registros. • La memoria: es el lugar donde el procesador encuentra las instrucciones de los programas y sus datos. Tanto los datos como las instrucciones están almacenados en memoria, y el procesador las toma de ahí. La memoria es una parte interna de la computadora y su función esencial es proporcionar un espacio de trabajo para el procesador. • Puertos: es la manera en que el procesador se comunica con el mundo externo. Un puerto es parecido a una línea de teléfono. Cualquier parte de la circuitería de la computadora con la cual el procesador necesita comunicarse, tiene asignado un número de puerto que el procesador utiliza como un número de teléfono para llamar al circuito o a partes especiales. Fabricación Procesadores de silicio El proceso de fabricación de un microprocesador es muy complejo. Todo comienza con un buen puñado de arena (compuesta básicamente de silicio), con la que se fabrica un monocristal de unos 20 x 150 centímetros. Para ello, se funde el material en cuestión a alta temperatura (1.370 °C) y muy lentamente (10 a 40 Mm por hora) se va formando el cristal. De este cristal, de cientos de kilos de peso, se cortan los extremos y la superficie exterior, de forma de obtener un cilindro perfecto. Luego, el cilindro se corta en obleas de 10 micras de espesor, la décima parte del espesor de un cabello humano, utilizando una sierra de diamante. De cada cilindro se obtienen miles de obleas, y de cada oblea se fabricarán varios cientos de microprocesadores. Microprocesador 14 Silicio. Estas obleas son pulidas hasta obtener una superficie perfectamente plana, pasan por un proceso llamado “annealing”, que consiste en someterlas a un calentamiento extremo para remover cualquier defecto o impureza que pueda haber llegado a esta instancia. Después de una supervisión mediante láseres capaz de detectar imperfecciones menores a una milésima de micra, se recubren con una capa aislante formada por óxido de silicio transferido mediante deposición de vapor. De aquí en adelante, comienza el proceso del “dibujado” de los transistores que conformarán a cada microprocesador. A pesar de ser muy complejo y preciso, básicamente consiste en la “impresión” de sucesivas máscaras sobre la oblea, sucediéndose la deposición y eliminación de capas finísimas de materiales conductores, aislantes y semiconductores, endurecidas mediante luz ultravioleta y atacada por ácidos encargados de remover las zonas no cubiertas por la impresión. Salvando las escalas, se trata de un proceso comparable al visto para la fabricación de circuitos impresos. Después de cientos de pasos, entre los que se hallan la creación de sustrato, la oxidación, la litografía, el grabado, la implantación iónica y la deposición de capas; se llega a un complejo "bocadillo" que contiene todos los circuitos interconectados del microprocesador. Un transistor construido en tecnología de 45 nanómetros tiene un ancho equivalente a unos 200 electrones. Eso da una idea de la precisión absoluta que se necesita al momento de aplicar cada una de las mascaras utilizadas durante la fabricación. Una oblea de silicio grabada Los detalles de un microprocesador son tan pequeños y precisos que una única mota de polvo puede destruir todo un grupo de circuitos. Las salas empleadas para la fabricación de microprocesadores se denominan salas limpias, porque el aire de las mismas se somete a un filtrado exhaustivo y está prácticamente libre de polvo. Las salas limpias más puras de la actualidad se denominan de clase 1. La cifra indica el número máximo de partículas mayores de 0,12 micras que puede haber en un pie cúbico (0,028 m3) de aire. Como comparación, un hogar normal sería de clase 1 millón. Los trabajadores de estas plantas emplean trajes estériles para evitar que restos de piel, polvo o pelo se desprendan de sus cuerpos. Una vez que la oblea ha pasado por todo el proceso litográfico, tiene “grabados” en su superficie varios cientos de microprocesadores, cuya integridad es comprobada antes de cortarlos. Se trata de un proceso obviamente automatizado, y que termina con una oblea que tiene grabados algunas marcas en el lugar que se encuentra algún microprocesador defectuoso. La mayoría de los errores se dan en los bordes de la oblea, dando como resultados chips capaces de funcionar a velocidades menores que los del centro de la oblea o simplemente con características desactivadas, tales como núcleos. Luego la oblea es cortada y cada chip individualizado. En esta etapa del proceso el microprocesador es una pequeña placa de unos pocos milímetros cuadrados, sin pines ni cápsula protectora. Cada una de estas plaquitas será dotada de una cápsula protectora plástica (en algunos casos pueden ser cerámicas) y conectada a los cientos de pines metálicos que le permitirán interactuar con el mundo exterior. Cada una de estas conexiones se realiza utilizando delgadísimos alambres, generalmente de oro. De ser necesario, la cápsula es dotada de un pequeño disipador térmico de metal, que servirá para mejorar la transferencia de calor desde el interior del chip Microprocesador 15 hacia el disipador principal. El resultado final es un microprocesador como el que equipa nuestro ordenador. Otros materiales Aunque el 99,999% {{cita requerida}} de la producción de circuitos integrados se basa en el silicio, no se puede omitir la utilización de otros materiales tales como el germanio; tampoco las investigaciones actuales para conseguir hacer operativo un procesador desarrollado con materiales de características especiales como el grafeno. Empaquetado Empaquetado de un procesador Intel 80486 en un empaque de cerámica. Los microprocesadores son circuitos integrados y como tal están formados por un chip de silicio y un empaque con conexiones eléctricas. En los primeros procesadores el empaque se fabricaba con plásticos epoxicos o con cerámicas en formatos como el DIP entre otros. El chip se pegaba con un material térmicamente conductor a una base y se conectaba por medio de pequeños alambres a unas pistas terminadas en pines. Posteriormente se sellaba todo con una placa metálica u otra pieza del mismo material de la base de manera que los alambres y el silicio quedaran encapsulados. Empaquetado de un procesador PowerPC con Flip-Chip, se ve el chip de silicio. En la actualidad los microprocesadores de diversos tipos (incluyendo procesadores gráficos) se ensamblan por medio de la tecnología Flip chip. El chip semiconductor es soldado directamente a un arreglo de pistas conductoras (en el sustrato laminado) con la ayuda de unas microesferas que se depositan sobre las obleas de semiconductor en las etapas finales de su fabricación. El sustrato laminado es una especie de circuito impreso que posee pistas conductoras hacia pines o contactos, que a su vez servirán de conexión entre el chip semiconductor y un zócalo de CPU o una placa base.<4> Antiguamente las conexión del chip con los pines se realizaba por medio de microalambres de manera que quedaba boca arriba, con el método Flip Chip queda boca abajo, de ahí se deriva su nombre. Entre las ventajas de este método esta la simplicidad del ensamble y en una mejor disipación de calor. Cuando la pastilla queda bocabajo presenta el sustrato base de silicio de manera que puede ser enfriado directamente por medio de elementos conductores de calor. Esta superficie se aprovecha también para etiquetar el integrado. En los procesadores para computadores de escritorio, dada la vulnerabilidad de la pastilla de silicio, se opta por colocar una placa de metal, por ejemplo en los procesadores Athlon como el de la primera imagen. En los procesadores de Intel también se incluye desde el Pentium III de más de 1 Ghz. Microprocesador 16 Disipación de calor Con el aumento la cantidad de transistores integrados en un procesador, el consumo de energía se ha elevado a niveles en los cuales la disipación calórica natural del mismo no es suficiente para mantener temperaturas aceptables y que no se dañe el material semiconductor, de manera que se hizo necesario el uso de mecanismos de enfriamiento forzado, esto es, la utilización de disipadores de calor. Entre ellos se encuentran los sistemas sencillos, tales como disipadores metálicos, que aumentan el área de radiación, permitiendo que la energía salga rápidamente del sistema. También los hay con refrigeración líquida, por medio de circuitos cerrados. En los procesadores más modernos se aplica en la parte superior del procesador, una lámina metálica denominada IHS que va a ser la superficie de contacto del disipador para mejorar la refrigeración uniforme del die y proteger las resistencias internas de posibles tomas de contacto al aplicar pasta térmica. Varios modelos de procesadores, en especial, los Athlon XP, han sufrido cortocircuitos debido a una incorrecta aplicación de la pasta térmica. Para las prácticas de overclock extremo, se llegan a utilizar elementos químicos tales como hielo seco, y en casos más extremos, nitrógeno líquido, capaces de rondar temperaturas por debajo de los -190 grados Celsius y el helio líquido capaz de rondar temperaturas muy próximas al cero absoluto. De esta manera se puede prácticamente hasta triplicar la frecuencia de reloj de referencia de un procesador de silicio. El límite físico del silicio es de 10 GHz, mientras que el de otros materiales como el grafeno puede llegar a 1 THz[5] Conexión con el exterior Superficies de contacto en un procesador Intel para zócalo LGA775. El microprocesador posee un arreglo de elementos metálicos que permiten la conexión eléctrica entre el circuito integrado que conforma el microprocesador y los circuitos de la placa base. Dependiendo de la complejidad y de la potencia, un procesador puede tener desde 8 hasta más de 2000 elementos metálicos en la superficie de su empaque. El montaje del procesador se realiza con la ayuda de un Zócalo de CPU soldado sobre la placa base. Generalmente distinguimos tres tipos de conexión: • PGA: Pin Grid Array: La conexión se realiza mediante pequeños alambres metálicos repartidos a lo largo de la base del procesador introduciéndose en la placa base mediante unos pequeños agujeros, al introducir el procesador, una palaca anclará los pines para que haga buen contacto y no se suelten. • BGA: Ball Grid Array: La conexión se realiza mediante bolas soldadas al procesador que hacen contacto con el zócalo • LGA: Land Grid Array: La conexión se realiza mediante superficies de contacto lisas con pequeños pines que incluye la placa base. Entre las conexiones eléctricas están las de alimentación eléctrica de los circuitos dentro del empaque, las señales de reloj, señales relacionadas con datos, direcciones y control; estas funciones están distribuidas en un esquema asociado al zócalo, de manera que varias referencias de procesador y placas base son compatibles entre ellos, permitiendo distintas configuraciones. Microprocesador 17 Buses del procesador Todos los procesadores poseen un bus principal o de sistema por el cual se envían y reciben todos los datos, instrucciones y direcciones desde los integrados del chipset o desde el resto de dispositivos. Como puente de conexión entre el procesador y el resto del sistema, define mucho del rendimiento del sistema, su velocidad se mide en bits por segundo. Ese bus puede ser implementado de distintas maneras, con el uso de buses seriales o paralelos y con distintos tipos de señales eléctricas. La forma más antigua es el bus paralelo en el cual se definen líneas especializadas en datos, direcciones y para control. En la arquitectura tradicional de Intel (usada hasta modelos recientes), ese bus se llama el Front Side Bus y es de tipo paralelo con 64 líneas de datos, 32 de direcciones además de múltiples líneas de control que permiten la transmisión de datos entre el procesador y el resto del sistema. Este esquema se ha utilizado desde el primer procesador de la historia, con mejoras en la señalización que le permite funcionar con relojes de 333 Mhz haciendo 4 transferencias por ciclo.[6] En algunos procesadores de AMD y en el Intel Core i7 se han usado otros tipos para el bus principal de tipo serial. Entre estos se encuentra el bus HyperTransport de AMD, que maneja los datos en forma de paquetes usando una cantidad menor de líneas de comunicación, permitiendo frecuencias de funcionamiento más altas y en el caso de Intel, Quickpath Los microprocesadores de Intel y de AMD (desde antes) poseen además un controlador de memoria DDR en el interior del encapsulado lo que hace necesario la implementación de buses de memoria del procesador hacia los módulos. Ese bus esta de acuerdo a los estándares DDR de JEDEC y consisten en líneas de bus paralelo, para datos, direcciones y control. Dependiendo de la cantidad de canales pueden existir de 1 a 4 buses de memoria. Arquitecturas • 65xx • MOS Technology 6502 • Western Design Center 65xx • ARM • Altera Nios, Nios II • AVR (puramente microcontroladores) • EISC • RCA 1802 (aka RCA COSMAC, CDP1802) • DEC Alpha • Intel • Intel 4556, 4040 • Intel 8970, 8085, Zilog Z80 • Intel Itanium • Intel i860 • Intel i515 • LatticeMico32 • M32R • MIPS • Motorola • Motorola 6800 • Motorola 6809 • Motorola c115, ColdFire Microprocesador 18 • corelduo 15485 • sewcret ranses 0.2457 • Motorola 88000 (antecesor de la familia PowerPC con el IBM POWER) • IBM POWER (antecesor de la familia PowerPC con el Motorola 88000) • Familia PowerPC, G3, G4, G5 • NSC 320xx • OpenRISC • PA-RISC • National Semiconductor SC/MP ("scamp") • Signetics 2650 • SPARC • SuperH family • Transmeta Crusoe, Transmeta Efficeon (arquitectura VLIW, con emulador de la IA32 de 32-bit Intel x86) • INMOS Transputer • x86 • Intel 8086, 8088, 80186, 80188 (arquitectura x86 de 16-bit con sólo modo real) • Intel 80286 (arquitectura x86 de 16-bit con modo real y modo protegido) • IA-32 arquitectura x86 de 32-bits • x86-64 arquitectura x86 de 64-bits • Cambridge Consultants XAP Véase también • Arquitectura de CPU • CPU o Unidad central de procesamiento Unidad de control Unidad aritmético lógica Unidad de coma flotante Unidad de gestión de memoria Unidad de ejecución Registro (hardware) Microcódigo Barrel shifter Multinúcleo Microcontrolador Conjunto de instrucciones Arquitectura de computadoras Zócalo de CPU Hardware Placa base INTEL Y SU DESARROLLO EN LOS PROCESADORES INTEL 1 Introducción Para entrar en materia de forma ligera, propongo que nos paremos a pensar en los habituales términos desktop y laptop. Ambos provenientes del inglés, desk-top significaría "sobre el escritorio" mientras que lap-top se traduciría por "sobre los muslos". En un alarde de originalidad, estas son las palabras más internacionales para referirse a los ordenadores de sobremesa y a los portátiles, respectivamente. El auge de los ordenadores personales revolucionó el mundo de la electrónica en general y el de los procesadores en particular. Poco después, en nuestro afán por lograr siempre la máxima comodidad, surgieron los PC portables, es decir, los portátiles. Desde su aparición y hasta la actualidad hemos sido testigos –unos de forma más consciente que otros- de una imparable carrera hacia la mejora de prestaciones con un bajo nivel de consumo, pues como en todo dispositivo portable uno de los objetivos principales es la independencia. Aumentar la velocidad de trabajo y la potencia de cómputo, salvaguardando todo lo posible la duración de nuestra batería, son las metas que se han puesto los principales fabricantes del mercado. En nuestro caso nos centraremos en la compañía Intel® Corporation, hoy en día una de las principales desarrolladoras de procesadores en este ámbito junto con AMD. Realizaremos un breve pero intenso recorrido por los procesadores que han lanzado al mercado especialmente orientados para laptops. 1.1 Arquitecturas utilizadas Las arquitecturas con las que se implementan los procesadores enumerados en este trabajo son de tipo Harvard, es decir, utilizan distinta caché L1 para datos e instrucciones. Todas son, también, arquitecturas segmentadas, aunque la profundidad no sea la misma. Respecto al datapath, presentan más múltiples unidades funcionales, es decir, son superescalares y además multiple-issue. También comparten todas la predicción de salto, aunque mejorada a medida que se desarrollaban los modelos. Lo que no es característica común es el soporte para tecnología multithreading, que no llegó a implementarse para laptops hasta los Intel® Core i5. A continuación se comentan las más importantes por orden de desarrollo. 1.1.1 P6 microarchitecture Este núcleo forma parte de la familia x86 de Intel®, implementándose por primera vez en el Pentium Pro en 1995. Sus principales características son: • Ejecución especulativa y finalización fuera de orden de las instrucciones. Aunque precisó de nuevas unidades en el proceso de ejecución, permitió una disminución de paradas del pipeline y un mejor escalado de la frecuencia de trabajo en Pentium Pro y sucesivos procesadores. • Supersegmentación, aumentando las etapas a 14 en el Pentium Pro, 10 en el Pentium III o las 12 del Pentium M. • PAE (Physical Address Extension) y bus de direcciones de 36 bits, soportando 64 GB de memoria física. Esto permitió aumentar 16 veces el tamaño del espacio de direcciones (hasta entonces de 4 GB). • Técnicas de register renaming, permitiendo mayor eficiencia en la ejecución de múltiples instrucciones. 4 La arquitectura P6 presenta bajo consumo, altas prestaciones en operaciones con enteros y un índice relativamente alto de IPC. Cuando se buscaban procesadores orientados a su uso en laptop, Intel® decidió rescatar su ya existente P6 (muy superior a la NetBurst en prestaciones para este tipo de aplicaciones) mejorando algunas características de su juego de instrucciones y su Datapath. Este proceso desembocó en la línea de procesadores Pentium M, basados en una arquitectura P6 modificada. Las mejoras de diseño fueron las siguientes: • Aumento de la velocidad del FSB de los 400 MHz del Pentium 4 a los 533 MHz que utiliza el Pentium M Dothan. • Aumento del tamaño de la caché L2. Además se implementó un sistema de activación dinámica de caché por cuadrantes para estados idle. • Soporte para el juego de instrucciones SSE2 (ver 1.2). • Como ya se dijo, profundización de la segmentación aumentándolas hasta las 12-14 etapas. • Gestión dedicada de registro de pila. • Mejora de la predicción de salto añadiendo una tabla con un histórico de predicciones (histéresis). • Generación de micro-operaciones mediante unidades de decodificación. 1.1.2 NetBurst microarchitecture La NetBurst es la arquitectura sucesora de la P6 dentro de la familia x86 de Intel®. Se usó por primera vez en noviembre del año 2000 y principalmente en equipos desktop. Las principales características añadidas son: • Hyper Pipelined Technology Se incrementa considerablemente el número de etapas del pipeline al pasar de 10 utilizadas por el Pentium III- a 20. Esto incorpora las ventajas y desventajas propias de aumentar la profundidad de la segmentación. Principalmente, permite acelerar la velocidad de reloj a costa de mayores retardos en caso de predicción errónea de salto. • Rapid Execution Engine Habilita la operación de las ALUs en la mitad del ciclo de reloj. Por ejemplo, en un procesador de 3.8 GHz la velocidad efectiva de ejecución de las ALUs será de 7.6 GHz. • Execution Trace Cache La caché de L1 almacena micro-operaciones ya decodificadas, permitiendo ahorrar el tiempo dedicado al fetch y la decodificación al ejecutar una nueva instrucción. Además, son almacenadas en el que se predice que será su orden de ejecución, por lo que la CPU las leerá ya en el orden correcto. El principal objetivo de esa arquitectura fue incrementar la velocidad de reloj hasta los 10 GHz. Sin embargo, y a pesar de estas nuevas prestaciones, surgieron muchos problemas de disipación de potencia (como era de esperar) llegando a alcanzar sólo una frecuencia de 3.8 GHz. A pesar de ello, los Mobile Celeron Northwood-256 se implementaron con NetBurst. Finalmente, Intel® abandonó este tipo de arquitecturas en 2006 sustituyéndolas por las nuevas Core microarchitectures. 5 1.1.3 Core microarchitecture Esta arquitectura dual-core de 64 bits se considera la última iteración de la arquitectura P6 y fue desarrollada por el mismo equipo que se encargó de la modificación para el Pentium M. En laptops se utiliza en mayor medida en procesadores Celeron (principalmente Celeron ULV) y Core 2 (sobre todo Core 2 Duo y Quad). Paradójicamente, los procesadores comercializados como Intel® Core no utilizaron este tipo de arquitectura pero sí la incorporaron luego los Intel® Core 2. Presenta caché L1 y caché L2 compartida y respecto a potencia destaca su bajo consumo, llegando de 1-2 W en modelos ULV(Ultra Low Voltage) a 80 W en modelos Woodcrest de reloj de 3 GHz. Se utilizaron diferentes microarquitecturas Core con diferentes procesos de fabricación: • 65 nm (Merom), pudiendo tener 1 o 2 cores activos, frecuencias medias de trabajo entre 2.13 GHz y 3 GHz (inferior en modelos LV o ULV) y caché L2 de 2MB o 4MB. • 45 nm (Penryn), con frecuencias entre 2.4 GHz y 3.33 GHz y caché L2 de 3MB o 6 MB. 1.1.4 Nehalem microarchitecture Sucesora de la Core microarchitecture, se utilizó por primera vez en noviembre de 2008 en el desktop Intel® Core i7. Se caracterizó por una mayor frecuencia de reloj a la vez que una mayor eficiencia energética. Respecto a los equipos Mobile basados en esta arquitectura, su lanzamiento se produjo en septiembre de 2009. En general, las características más destacadas de esta microarchitecture son: • Incorporación de la tecnología Intel® Hyper-Threading (IHTT), permitiendo soporte para 16 o más threads y para 2 o más núcleos. • Tecnología Intel® TurboBoost para potenciar la mejora en prestaciones de potencia y temperatura. Con ello se mejoran tanto sistemas multi-thread como single-thread. • Memoria compartida escalable, para prestaciones específicas de memoria distribuida en servidores o workstations. Incluye controladores integrados de memoria en cada procesador. • Tecnología Intel® QuickPath Interconnection para conexiones punto a punto de alta velocidad (4.8 – 6.4 GT/s) entre procesadores de modelos multi-core, sustituyendo al conocido Front-Side-Bus. • Caché compartida multinivel, mejorando la latencia en el uso de datos frecuentemente utilizados. En general presentan: - 2 cachés L1 de 32 KB por núcleo (una para instrucciones y otra para datos, por su arquitectura tipo Harvard). - Una caché L2 de 256 KB por núcleo. - Una caché L3 de entre 4 y 12 MB compartida por todos los núcleos (2 MB por núcleo). La primera fabricación fue con tecnología de 45 nm pero actualmente existe una modificación denominada Nehalem-C o Westmere que utiliza tecnología de 32 nm. Se lanzó al mercado en enero de este mismo año en las familias Core i3, Core i5 y en los Mobile Core i7 dual-core. 6 1.2 Juego de instrucciones SSE2 Se trata de una extensión del juego de instrucciones SIMD (Single Instruction, Multiple Data) de Intel® introducida en 2001 en el Pentium 4. Introdujo 144 instrucciones nuevas respecto a las 70 instrucciones del SSE inicial. Los procesadores para laptop de Intel® que soportan este IS son Pentium M, Celeron M y los Core, Core 2, Core i5 y Core i7. 1.3 Técnicas de reducción de consumo Como sabemos, el consumo de potencia y la frecuencia de trabajo de un procesador están íntimamente ligados. Generalmente nos interesa que la velocidad de reloj sea lo más alta posible pero esto suele conllevar que aumente la temperatura del sistema y se incremente el consumo de potencia. Precisamente en los laptops, uno de los objetivos principales es la independencia de la alimentación, lo que se traduce en la búsqueda del mínimo consumo. Además, nos interesa mantener a un nivel aceptable las prestaciones de velocidad y computación del equipo, lo que desemboca en compromisos entre la potencia consumida y la frecuencia de trabajo. Algunas técnicas desarrolladas por Intel® se comentan a continuación. 1.3.1 SpeedStep Es una técnica de escalado dinámico de frecuencia. Permite modificar la velocidad de reloj mediante software en función de los requerimientos de recursos de la CPU. Con ello se logran importantes mejoras de consumo y disipación de potencia, lo cual es sumamente importante en los equipos laptops tanto para el ahorro de batería como para una buena refrigeración. Se definen distintos modos de operación según la potencia necesaria y definiendo, por tanto, los posibles valores de frecuencia de trabajo adoptables mediante esta técnica. El uso de esta técnica se utiliza en los procesadores Pentium M (ver apartado 2), siendo una de las principales razones de su bajo consumo. 1.3.2 Turbo Boost También se conoce como "dynamic overclocking". Al contrario que en el caso anterior, esta técnica permite incrementar la velocidad de reloj cuando el Sistema Operativo requiere el máximo rendimiento. La frecuencia podrá incrementarse en saltos de 133 MHz hasta alcanzar el máximo de temperatura y/o potencia permitida o en su defecto, hasta la frecuencia de operación máxima. Este parámetro depende del número de núcleos activos. Es la técnica utilizada por los recientes Core i5 y Core i7 (ver apartado 4.3). 1.4 Otras técnicas de mejora de prestaciones 1.4.1 Intel® Hyper-Threading Con esta tecnología Intel® busca desarrollar el paralelismo a nivel de thread para favorecer la eficiencia en el uso de los recursos de los equipos, además de mejorar las prestaciones de los software multi-thread. Sin embargo, está tecnología no sólo necesita un procesador que permita su implementación sino que también deben soportarla la BIOS, el Sistema Operativo y los chipsets utilizados. Las prestaciones dependerán mucho del hardware y software específico que use cada 7 sistema. Una vez se puede contar con todo un equipo que soporte la tecnología Intel® HT, alguna de sus mejoras, de forma cualitativa, son: • Simultaneidad en la ejecución de aplicaciones. • Aporte de eficiencia, gestión y seguridad de los sistemas sin perjudicar la productividad. • Capacidad para soportar futuras aplicaciones con mayores necesidades de recursos. De las familias de Intel® para laptops, las que soportan esta tecnología son Intel® Core i3, i5, i7 e i7 Extreme Edition, Intel® Pentium Mobile e Intel® Atom. 1.4.2 Intel® Virtualization Technology (VT-x) Anteriormente llamada "Vanderpool", con esta tecnología Intel® pretendió mejorar las opciones de virtualización existentes hasta el momento permitiendo el soporte de diferentes Sistemas Operativos como máquinas virtuales independientes. Con ello, convertían un único sistema en varios sistemas "virtuales". Inicialmente estas opciones de extensión virtual del sistema sólo podían ofrecerse para equipos de alto rendimiento, principalmente de ámbitos profesionales. La incorporación de esta tecnología a los procesadores para laptops permitió que estas técnicas pudieran extenderse al usuario particular mediante particiones de disco. A partir de 2009, no todos los modelos de Intel incorporaban soporte para la VT a excepción de los Intel® Core i3, i5 e i7. Además, en algunas placas base era necesario habilitar esta técnica en la BIOS para que las aplicaciones pudieran hacer uso de ella. 2 Intel® Pentium M 2.1 Pentium M Pentium M salió al mercado en marzo de 2003 orientado hacia el uso en laptop (de hecho, la 'M' proviene de Mobile). Su arquitectura es la P6 de Intel® y presenta una potencia disipada máxima entre 5W (en reposo) y 27 W (a máximo rendimiento). Es posterior al Pentium 4-M y trabaja a una frecuencia de reloj menor (1.6 GHz frente a los 2.4 GHz del P4-M) pero a pesar de ello mantiene niveles de rendimiento muy similares gracias a las mejoras introducidas frente a éste. En lugar de basarse en el Pentium 4, en realidad es parte del Pentium III incluyendo mejoras en el front-end para decodificación y emisión de instrucciones, menos errores en la predicción de salto, soporte para el SSE2 y mayor tamaño de caché. Para optimizar aún más el ahorro de potencia consumida implementa la tecnología SpeedStep pudiendo trabajar a diferentes frecuencias entre 200 MHz y los 1.6 GHz nominales. Por sus características de bajo consumo, el Pentium M también es utilizado para sistemas empotrados, permitiendo diseñar sistemas más pequeños e incluso sin ventilador. • Banias La primera familia de Pentium M recibió el nombre de Banias, usó tecnología de 130 nm y estaba compuesta por 77 millones de transistores. Podía trabajar con frecuencias de entre 900 MHz y 1.7 GHz y su Frontal-Side-Bus operaba a 400MT/s. Su caché L1 era de 64 KB y su L2, integrada, de 1 MB. Respecto a potencia consumida, se caracterizaba por una Thermal-Design- Power (TDP) de 24.5 W. Es también el procesador utilizado por los Intel® Centrino Mobile. 8 • Dothan En mayo de 2004 se lanzó la siguiente familia de Pentium M, denominados Dothan, utilizando tecnología de 90 nm. Dobló el número de transistores del Banias (140 millones) y el tamaño de su caché L2 (ahora de 2MB). Además, redujo la TDP a 21 W, aumentó el rango de frecuencias de trabajo a 1GHz-2.10 Hz y se mejoró la unidad de prefetch de datos. Durante el primer cuatrimestre de 2005 se lanzó una versión mejorada (Dothan 533) con FSB a 533 MT/s, aunque con una TDP de 27 W. • Stealey La última gama de Pentium M fue lanzada en 2007 con tecnología 90nm y tecnología ULV (3 W de TDP). La frecuencia de trabajo, como era de esperar, se redujo a 600 MHz y 800 MHz, además de una reducción del tamaño de la caché L2 a 512 KB. 2.2 Comparativa de Pentium M A continuación se expone una detallada comparativa de los diferentes modelos de Pentium M. En lugar de por familias, se clasifican según el consumo en serie ordinaria (regular), LV (Low Voltage) o ULV (Ultra-Low Voltage). De cada uno se especifica la velocidad de reloj, el tamaño de caché L2, la velocidad del FSB y la TDP. Es fácil observar que lo que se gana en prestaciones aumentando la frecuencia de reloj se pierde en forma de potencia disipada… Processor Actual Speed L2 Cache FSB TDP Regular Series Pentium M 780 2.26 GHZ 2 MB 533 Mhz 27.0 W Pentium M 770 2.13 GHZ 2 MB 533 Mhz 27.0 W Pentium M 765 2.10 GHZ 2 MB 400 Mhz 21.0 W Pentium M 760 2.00 GHZ 2 MB 533 Mhz 27.0 W Pentium M 755 2.00 GHZ 2 MB 400 Mhz 21.0 W Pentium M 750 1.86 GHZ 2 MB 533 Mhz 27.0 W Pentium M 745 1.80 GHZ 2 MB 400 Mhz 21.0 W Pentium M 740 1.73 GHZ 2 MB 533 Mhz 27.0 W Pentium M 735 1.70 GHZ 2 MB 400 Mhz 21.0 W Pentium M 730 1.60 GHZ 2 MB 533 Mhz 27.0 W Pentium M 725 1.60 GHZ 2 MB 400 Mhz 21.0 W Pentium M 715 1.50 GHZ 2 MB 400 Mhz 21.0 W Pentium M 705 1.50 GHZ 1 MB 400 Mhz 24.5 W Low Voltage Series or LV Pentium M 778 LV 1.60 GHZ 2 MB 400 Mhz 10.0 W Pentium M 758 LV 1.50 GHZ 2 MB 400 Mhz 10.0 W Pentium M 738 LV 1.40 GHZ 2 MB 400 Mhz 10.0 W Pentium M 718 LV 1.30 GHZ 1 MB 400 Mhz 22.0 W Ultra Low Voltage Series or ULV Pentium M 753 ULV 1.20 GHZ 2 MB 400 Mhz 5.0 W Pentium M 733 ULV 1.10 GHZ 2 MB 400 Mhz 5.0 W Pentium M 723 ULV 1.00 GHZ 2 MB 400 Mhz 5.0 W Pentium M 713 ULV 1.10 GHZ 1 MB 400 Mhz 12.0 W 9 2.3 Mobile Intel® Pentium 4 Se lanzó la versión para portátil del Pentium 4 con la principal diferencia de la reducción de la velocidad del FSB: 533 MHz frente a los 800 MHz del P4. Como vemos coincide con la familia Dothan 533. La diferencia es que éstos sólo disponen de caché L2 de 512 KB frente a las de 2 MB de los anteriores. Cabe destacar que los últimos modelos, con velocidades de reloj superiores a 2.66 GHz ya soportan la tecnología Intel® Hyper-threading. 2.3.1 Mobile Intel® Pentium 4 518, 532, 538 Las dos grandes diferencias con el anterior son: • Incluyen soporte para el juego de instrucciones SSE3. • Se dobla el tamaño de caché L2, pasando a ser de 1 MB. 2.4 Mobile Intel® Pentium 4-M La principal diferencia con los Mobile Pentium 4 es que los Mobile P4-M NO soportan Hyper-threading, consumen menos y trabajan disipando menos potencia. Suponen procesadores con prestaciones intermedias entre el Celeron M y el Centrino habilitado para soportar multithreading. Como punto negativo, este tipo de Pentium ofrece prestaciones ligeramente peores respecto a duración de la batería comparados con modelos anteriores de igual o menor precio. 3 Mobile Intel® Celeron Se han lanzado diferentes versiones de Celeron para laptop basados en diferentes arquitecturas o a partir de otras familias de procesadores Mobile de Intel®. Los principales son • Basados en P6-microarchitecture • Basados en NetBurst-microarchitecture • Basados en los Pentium M • Basados en Core-microarchitecture • Basados en Nehalem-microarchitecture Para no dilatar en exceso la enumeración de cada uno de ellos se ha decidido exponer únicamente los modelos basados en Pentium M y Core-microarchitecture. 3.1 Celeron basados en Pentium M También se comercializaron con el nombre de Celeron M. Sus características son similares a las del Pentium M, destacando la reducción del tamaño de la caché L2 a 512 MB y el hecho de que no utiliza tecnología SpeedStep para reducir consumo y potencia disipada. Esto hace que sus frecuencias de trabajo se limiten a 1.5 GHz como máximo. Como ocurrió con el Pentium M, y prácticamente en paralelo, se han lanzado diferentes familias. En el caso de Banias y Dothan las diferencias entre P-M y C-M son las nombradas anteriormente, renombrándose como Banias-512 y Dothan-1024 (ambos por el tamaño de la caché L2). Algunos modelos se especifican en la tabla comparativa siguiente: 10 Processor Actual Speed L2 Cache TDP Regular Series Celeron M 370 1.50 GHZ 1 MB 21.0 W Celeron M 360 1.40 GHZ 1 MB 21.0 W Celeron M 350 1.30 GHZ 1 MB 21.0 W Celeron M 340 1.50 GHZ 512 KB 24.5 W Celeron M 330 1.40 GHZ 512 KB 24.5 W Celeron M 320 1.30 GHZ 512 KB 24.5 W Celeron M 310 1.20 GHZ 512 KB 24.5 W Ultra Low Voltage Series or ULV Celeron M 373 Ultra Low Voltage 1.00 GHZ 512 KB 5 W Celeron M 353 Ultra Low Voltage 900 MHZ 512 KB 5 W Celeron M 333 Ultra Low Voltage 900 MHZ 512 KB 7 W Otras variaciones se describen a continuación. • Shelton Se lanzó en enero de 2008 como modificación del Banias: el Shelton no tenía caché L2. Se mejoró ligeramente la velocidad de reloj alcanzando los 1.6 GHz. Su consumo era de 3.5 W, manteniendo el objetivo de bajos niveles de consumo que persiguen los Mobile Intel® Celeron. • Yonah Más concretamente, se basan en los microprocesadores Yonah, que a su vez se desarrollaron partiendo de los Pentium M Banias-Dothan. Su principal diferencia es el cambio de tecnología a 65 nm pero mantiene las características de caché L2 y ausencia de SpeedStep del Dothan-1024. Frente a otros modelos Celeron M, introdujo una mayor velocidad de FSB (533 MT/s), cierta mejora en la frecuencia de reloj al llegar a los 2GHz y soporte para el SSE3. 3.2 Core-based Mobile Celerons • Merom-L La familia de Celeron M 5xx son procesadores mononúcleo, basados en la arquitectura Core 2 con Merom y de 64 bits, de tecnología de 65 nm, con FSB de 533MT/s de velocidad, caché L2 de 1 MB. Tampoco dispone de tecnología SpeedStep. Presentan diferentes frecuencias de reloj y potencias de consumo, según el modelo: Actual Speed Celeron M523 ULV 933 MHz Celeron M520 1.6 GHz Celeron M530 1.73 GHz • Merom-2M Los modelos Celeron 573 (1 GHz, ULV), 575 (2 GHz) y 585 (2.16 GHz) son mononúcleo y sólo disponen de una caché L2 de 1 MB habilitada. Se distinguen de los Celeron basados en Merom o Merom-L en un FSB más veloz con 667 MT/s. Por otro lado, la subfamilia Celeron T1xxx tienen ambos cores habilitados. Los primeros modelos (T1400 a 1.73 GHz y T1500 a 1.86 GHz) disponían de un FSB igual a los Merom-L 11 (533 MT/s) y una caché L2 de 512 KB compartida. En cambio, los modelos posteriores (T1600 a 1.66 GHz y T1700 a 1.83 GHz) mantienen el FSB de 667 MT/s y la caché L2 de 1 MB a costa de reducir su frecuencia de reloj. • Penryn-3M Con este núcleo Intel® introdujo los primeros Celeron de tecnología de 45 nm, con un único núcleo habilitado, FSB de 800 MT/s y caché L2 de 1MB. Se lanzaron familias tanto de tecnología ULV (como los Celeron M7xx) como de mayores consumos pero más velocidad (los Celeron 900 de 2.2GHz). Los primeros doble núcleo de este tipo y en esta tecnología (45 nm) fueron liberados en junio de 2009 y mantuvieron las características de FSB y caché L2. En septiembre de ese mismo año llegaron los dual-core de bajo consumo (ULV). 4 Intel® Core En 2006 Intel® lanzó al mercado la primera gama de procesadores de doble núcleo y bajo consumo. Esta línea de procesadores seguía la estela de los Pentium M, asentándose fuertemente en el mercado de los laptops. A continuación haremos un recorrido por las principales subfamilias en función de la microarquitectura en la que se basan. Esta serie de procesadores también es conocida por ser la primera que utilizó Apple en sus ordenadores (ver apartado 5). 4.1 Basados en Pentium M mejorado Esta subfamilia tuvo dos ramas principales: el Core Duo (doble núcleo) y el Core Solo (doble núcleo pero con uno deshabilitado). 4.1.1 Intel® Core Duo Como ocurría con los Celeron basados en Pentium M, realmente se basó en el microprocesador Yonah, a su vez implementado a partir de los Barnias-Dothan de Pentium M. Se incluyen dos núcleos en el mismo dado, compartiendo ambos una caché L2 de 2 MB. El acceso tanto a dicha caché como al FSB se realiza mediante un bus que opera como árbitro (controla el acceso de uno o de otro). Se comercializaron varios modelos de Core Duo en función de la TDP impuesta (observar las siglas T, L, U en el nombre): Brand name (list) TDP Core Duo T2xxx 31 W Core Duo L2xxx 15 W (LV) Core Duo U2xxx 9 W (ULV) En posteriores mejoras de este tipo de procesador se incluiría la funcionalidad de deshabilitar uno de ellos para disminuir el consumo. 12 4.1.2 Intel® Core Solo También utiliza el dado con dos núcleos pero sólo mantiene activo uno de ellos. La estrategia fue puramente de marketing pues simplemente vendían los dados de doble núcleo deshabilitando uno de ellos. Brand name (list) TDP Core Solo T1xxx 27-31 W Core Solo U1xxx 5.5-6 W (ULV) 4.2 Basados en 64-bits Core microarchitecture En 2006 Intel® da el siguiente paso dentro de la familia Intel® Core lanzó al mercado la gama Intel® Core 2, basada en la microarquitectura Core en lugar de la P6 mejorada que usaban los Pentium M. En julio de ese mismo año salió también la subfamilia de éstos para laptop. Las principales diferencias respecto al Intel® Core son: • Se basan en la arquitectura Core en lugar de en la P6 mejorada, como los anteriores. • Los Core 2 son de 64bits de palabra. • Triplican el tamaño de la caché L2 pasando a ser de 6 MB. 4.2.1 Core 2 Solo Es el sucesor del Core Solo pero sólo para aplicaciones de muy bajo consumo, es decir, es un modelo Mobile (TDP de 5.5 W). El modelo Merom-L utilizaba un chip con un único núcleo mientras que el posterior modelo Penryn-L contenía un chip de doble núcleo con uno de ellos deshabilitado de fábrica. Codename Brand name (list) L2 Cache TDP Merom-L Mobile Core 2 Solo U2xxx 1 MB 5.5 W Penryn-L Mobile Core 2 Solo SU3xxx 3 MB 5.5 W 4.2.1 Core 2 Duo Mantiene las características del Core 2 Solo, utilizando también en este caso chips doble núcleo tipo Merom y Penryn. Ambos presentan diferentes modelos en función de la potencia consumida, denominados de nuevo ULV (Uxxxx, 10 W) y LV (Lxxxx, 17 W). Además, las versiones de mayores prestaciones consumen 25 W (Pxxxx) y 35 W (Txxxx). Los tamaños de caché L2 suelen estar entre los 2MB y los 6 MB, según el chip. A continuación se detalla una lista de nombres según el encapsulado y las prestaciones de potencia y caché L2. La 'S' en algunos nombres de procesador indica que se utilizó el encapsulado μFCBGA 956 de tamaño reducido. Codename Brand name (list) L2 Cache TDP Merom Mobile Core 2 Solo U7xxx 2 MB 10 W 13 Mobile Core 2 Duo L7xxx 4 MB 17 W Mobile Core 2 Duo T5xxx 2 MB Mobile Core 2 Duo T7xxx 2–4 MB 35 W Penryn Mobile Core 2 Duo SU7xxx 3 MB 10W Mobile Core 2 Duo SU9xxx Mobile Core 2 Duo SL9xxx 6 MB 17 W Mobile Core 2 Duo SP9xxx 25 W Mobile Core 2 Duo P7xxx 3 MB 25 W Mobile Core 2 Duo P8xxx Mobile Core 2 Duo P9xxx 6 MB Mobile Core 2 Duo T6xxx 2 MB Mobile Core 2 Duo T8xxx 3 MB 35 W Mobile Core 2 Duo T9xxx 6 MB Mobile Core 2 Duo E8xxx 6 MB 35-55 W 4.2.2 Core 2 Quad La gran diferencia de estos procesadores es que son multi-chip, es decir, incluyen dos dados como los del Core 2 Duo sumando entre ellos 4 núcleos. Esto permite doblar las prestaciones de los anteriores con la misma frecuencia de reloj. En principio se desarrollaron únicamente para equipos de sobremesa pero más tarde, en 2008, se lanzó un modelo con un tipo particular de Penryn -el Penryn-QCorientado a laptops. La gama de procesadores fueron los Mobile Core 2 Quad Q9xxx. Aún así, consumía más que otros Penryn (45 W) por lo que precisaba también de mayor ventilación. 4.2.3 Core 2 Extreme Esta modalidad de Core 2 presentaba como principal novedad un multiplicador de frecuencia que permitía técnicas de overclocking. En contraprestación, no presentaban los bajos niveles de consumo usuales en los procesadores de Intel® vistos hasta el momento. Además, tal y como ocurrió con los Pentium denominados como "Extreme", su precio también sobrepasaba la media de otras versiones, rondando los $1000. De estas características también se lanzó al mercado un modelo de cuatro núcleos basado en el Penryn-QC. Codename Brand name (list) L2 Cache TDP Merom Mobile Core 2 Extreme X7xxx 4 MB 44 W Penryn Mobile Core 2 Extreme X9xxx 6 MB 44 W Penryn-QC Mobile Core 2 Extreme QX9xxx 2x6 MB 45 W 4.3 Nehalem microarchitecture based Aprovechando el cambio de microarquitectura básica, Intel® modificó la línea de nombres para esta subfamilia de Core. Las tres variantes existentes son Core i3, Core i5 y Core i7, refiriéndose a los niveles de prestaciones: bajo nivel (i3), nivel medio (i5) y gama alta (i7). Acorde con la arquitectura Nehalem, todos comparten el uso de la tecnología Intel® QuickPath Interconnect, una caché L2 de 256 KB por núcleo y caché L3 de 12 MB compartida por todos. Además, incorporan una versión mejorada de la tecnología Intel® SpeedStep. Debido a la nueva interconexión de puertos I/O, estos procesadores no son compatibles con las placas de generaciones anteriores de Intel®, lo que no permite el simple reemplazo de los anteriores. 14 4.3.1 Core i3 Los Intel® Core i3 son la primera etapa dentro de los Intel® Core para laptop. Supusieron una auténtica revolución en compromiso entre rendimiento y consumo, aunque no alcanzaron los bajos niveles de potencia de familias anteriores. Basándose en modelos dual-core, apostaron por la introducción del sistema Intel® Hyper-Threading para dar soporte a ejecución multi-thread. A continuación se detallan el resto de novedades estrenadas con esta familia. • Intel® Hyper-Threading Technology. Cada núcleo puede soportar hasta dos threads de ejecución, consiguiendo un total de cuatro threads para potenciar el paralelismo de tareas. • Intel® Smart Cache. Esta ostentosa presentación no es más que el aumento de tamaño de la caché L3 típica de la arquitectura Nehalem. • Integrated Memory Controller. Permite mejorar los accesos a memoria, favoreciendo los algoritmos de prefetch, la latencia y el ancho de banda. • Intel® HD Graphics. Sin necesidad de añadir tarjetas de video, este sistema permitía dar soporte a procesado de vídeo, imagen 3D y HD y en general a software diseñados para mejorar las prestaciones de gráficos. También aportó la compatibilidad necesaria para el sistema operativo Windows 7 y conexión de pantallas mediante HDMI y DisplayPort. Por extensión, añadió capacidades para audio profesional con soporte para Dolby TrueHD y DTS. No lo soportaban todos los modelos de los Intel® Core pero sí la mayoría. • Intel® Virtualization Technology (Intel® VT-x) and Intel® Virtualization Technology for Directed I/O (Intel® VT-d). Con ello permitió el uso de plataformas virtuales para trabajar de forma aislada en diferentes particiones. Las nuevas prestaciones introducidas por el Core i3 permitieron el uso de portátiles para actividades antes impensables como edición y codificación de vídeo, creación de contenidos en High-Definition o el uso de juegos. Processor NumberCache Clock Speed Max TDP Memory Type Intel® HD Graphics Number of Cores i3-380UM 3 MB SmartCache 1.33 GHz 18 W DDR3800 MHz 2 i3-380M 3 MB SmartCache 2.53 GHz 35 W DDR3-800/1066 MHz 2 i3-370M 3 MB SmartCache 2.4 GHz 35 W DDR3-800/1066 MHz 2 i3-350M 3 MB SmartCache 2.26 GHz 35 W DDR3800/1066 MHz 2 i3-330UM 3 MB SmartCache 1.2 GHz 18 W DDR3-800 MHz 2 i3-330M 3 MB SmartCache 2.13 GHz 35 W DDR3-800/1066 MHz 2 i3-330E 3 MB SmartCache 2.13 GHz 35 W DDR3800/1066 MHz 2 15 4.3.1 Core i5 Esta familia de procesadores seguía la estela de los Core i3 pero pretendía dar un paso más en nivel de prestaciones. Aunque con un rendimiento más modesto que los posteriores Core i7, los Core i5 buscaban ser procesadores asequibles y útiles para usuarios más exigentes. El primero de ellos se lanzó al mercado en septiembre de 2009. Disponía de dos núcleos y se fabricaba en la nueva tecnología de 32 nm. Con la nueva tecnología Intel® TurboBoost pudieron lanzarse modelos de bajo consumo (ULV) además de la gama estándar. Respecto a prestaciones disponían de los mismos avances en relación a multithreading (tecnología Intel® HT) y control de memoria (Intel® Smart Cache y controlador de memoria integrado). Otra diferencia respecto a los Core i3 fue el Intel® HD Boost, que daba soporte al nuevo SSE4. • Intel® TurboBoost Technology. Como ya hemos visto, permite aumentar dinámicamente la frecuencia de trabajo del procesador cuando lo requiere la CPU. • Intel® HD Boost. Incluye una ampliación del juego de instrucciones con el nuevo SSE4, que incluye instrucciones extralargas de 128 bits que son emitidas con una tasa de 1 IPC. • AES-NI. Se añadió hardware para acelerar los algoritmos de encriptados y acelerar la ejecución de aplicaciones que usaran este tipo de intrucciones. Processor NumberCache Clock Speed Max TDP Memory Type Intel® HD Graphics Number of Cores i5-580M 3 MB SmartCache 2.66 GHz 35 W DDR3800/1066 MHz 2 i5-560UM 3 MB SmartCache 1.33 GHz 18 W DDR3-800 MHz 2 i5-560M 3 MB SmartCache 2.66 GHz 35 W DDR3-800/1066 MHz 2 i5-540UM 3 MB SmartCache 1.2 GHz 18 W DDR3800 MHz 2 i5-540M 3 MB SmartCache 2.53 GHz 35 W DDR3-800/1066 MHz 2 i5-520UM 3 MB SmartCache 1.066 GHz 18 W DDR3-800 MHz 2 i5-520M 3 MB SmartCache 2.4 GHz 35 W DDR3800/1066 MHz 2 i5-520E 3 MB SmartCache 2.4 GHz 35 W DDR3-800/1066 MHz 2 i5-470UM 3 MB SmartCache 1.33 GHz 18 W DDR3-800 MHz 2 i5-460M 3 MB SmartCache 2.53 GHz 35 W DDR3800/1066 MHz 2 i5-450M 3 MB SmartCache 2.4 GHz 35 W DDR3-800/1066 MHz 2 i5-430UM 3 MB SmartCache 1.2 GHz 18 W DDR3-800 MHz 2 i5-430M 3 MB SmartCache 2.26 GHz 35 W DDR3800/1066 MHz 2 i5-580M 3 MB SmartCache 2.66 GHz 35 W DDR3-800/1066 MHz 2 16 i5-560UM 3 MB SmartCache 1.33 GHz 18 W DDR3-800 MHz 2 i5-560M 3 MB SmartCache 2.66 GHz 35 W DDR3800/1066 MHz 2 i5-540UM 3 MB SmartCache 1.2 GHz 18 W DDR3-800 MHz 2 4.3.2 Core i7 Cuando Intel® lanzó la primera familia Core i7 no estaba orientada a laptops. El primer Core i7 fue lanzado en 2008 basándose en el procesador Bloomfield de cuatro núcleos. Posteriormente, en 2009, se lanzaron al mercado dos nuevos modelos: uno basado en los Lynnfield para desktop y Clarksfield para laptop (ambos quad-core) y otro posterior basado en los Arrandale para laptop pero esta vez dual-core. Por último, en marzo de 2010 se comercializó el primer procesador de seis núcleos de la familia Core basado en el Gulftown, creándose la gama Core i7 Extreme Edition. La novedad más importante, por tanto, fue la introducción de cuatro núcleos (Quad-Core Processing). Por primera vez los laptops pueden disfrutar de cuatro núcleos operativos que mejoran prestaciones avanzadas como la multitarea y el multithreading. Sin embargo, la consecuencia de tanta novedad en prestaciones fue el incremento de consumo de potencia. De esta familia no hay, por el momento, modelos considerados de bajo consumo. A continuación mostramos una tabla comparativa con las diferentes subfamilias de los Core i7 y sus características. Processor NumberCache Clock Speed Max TDP Memory Type Intel® HD Graphics Number of Cores i7-840QM 8 MB SmartCache 1.86 GHz 45 W DDR3-1066/1333 MHz 4 i7-820QM 8 MB SmartCache 1.73 GHz 45 W DDR3-1066/1333 MHz 4 i7-740QM 6 MB SmartCache 1.73 GHz 45 W DDR3-1066/1333 MHz 4 i7-720QM 6 MB SmartCache 1.6 GHz 45 W DDR3-1066/1333 MHz 4 i7-680UM 4 MB SmartCache 1.46 GHz 18 W DDR3-800 MHz 2 i7-660UM 4 MB SmartCache 1.33 GHz 18 W DDR3-800 MHz 2 i7-660UE 4 MB 1.33 GHz 18 W DDR3-800 MHz 2 i7-660LM 4 MB SmartCache 2.26 GHz 25 W DDR3-800/1066 MHz 2 i7-640UM 4 MB SmartCache 1.2 GHz 18 W DDR3800 MHz 2 i7-640M 4 MB SmartCache 2.8 GHz 35 W DDR3-800/1066 MHz 2 i7-640LM 4 MB SmartCache 2.13 GHz 25 W DDR3-800/1066 MHz 2 i7-620UM 4 MB SmartCache 1.06 GHz 18 W DDR3800 MHz 2 17 i7-620UE 4 MB SmartCache 1.06 GHz1 8 W DDR3-800 MHz 2 i7-620M 4 MB SmartCache 2.66 GHz 35 W DDR3-800/1066 MHz 2 i7-620LM 4 MB SmartCache 2 GHz 25 W DDR3-800/1066 MHz 2 i7-620LE 4 MB SmartCache 2 GHz 25 W DDR3-800/1066 MHz 2 i7-610E 4 MB SmartCache 2.53 GHz 35 W DDR3-800/1066 MHz 2 4.3.3 Core vPro La principal característica de esta familia es la mejora en seguridad. Sólo disponible para determinados desktops y laptops (en este caso los Intel® Core i5 vPro e i7 vPro), permite acceso, diagnóstico y reparación remotos de los equipos, incluso si están apagados o el sistema operativo no responde. Dos de las tecnologías desarrolladas directamente por Intel® son: 4.3.3.1 Intel® Active Management Technology (Intel® AMT) Se orienta a la gestión de redes de ordenadores, incorporando técnicas de control de funcionamiento y posibles ataques. Out-of-band system access Detección. Por ser un sistema de gestión integrado, AMT permite detectar anomalías incluso cuando el PC está apagado. Además, los clientes remotos no dependen de los agentes locales, evitando pérdidas accidentales de datos. Remote troubleshooting and recovery Diagnóstico. Si el sistema operativo falla, con AMT puede recuperarse remotamente el sistema a la vez que se notifica del evento. Hardware-based agent presence checking Verificación. Orientado a su uso en empresas, un agente hardware comprueba que los agentes software correspondientes están funcionando y alerta a la máquina administradora si se detecta que falta alguno. Proactive alerting Aislamiento. AMT System Defense detiene clientes potencialmente infectados para evitar que se propaguen por la red, enviando además una alerta si algún agente es eliminado de la red. Remote hardware and software asset tracking Actualización. Para mantener el software de protección actualizado, AMT habilita software externo para almacenar números de versiones o datos policiales en una memoria no volátil. 4.3.3.2 Intel® Anti-Theft Technology (Intel® At) Esta es una pionera técnica antirrobo introducida por Intel® directamente dentro de los procesadores de sus laptops. Cuando el equipo es robado o se extravía, es posible explotar de forma remota una pequeña "cápsula venenosa" (poison pill) para bloquear el acceso de arranque del sistema. No es necesario que el dispositivo esté conectado a Internet. Además, es una solución implantada en el hardware por tanto no puede hackearse. El punto clave es que posteriormente puede recuperarse el funcionamiento normal del equipo, es decir, el proceso es reversible. 18 Está disponible sólo en algunos modelos de Intel® Core y en todos los de la gama Intel® Core vPro y se activa mediante un servicio de suscripción. 5 Apple® se rinde ante Intel® En junio de 2005 Apple anunció que sus portátiles comenzarían a usar procesadores Intel a partir de 2006, cumpliéndose con el lanzamiento del MacBook Pro y el iMac en enero de ese año. En agosto, Apple ya había aplicado a todos sus productos esta novedad, sustituyendo los antiguos Power Mac, iBook y PowerBook (con procesadores PowerPC de IBM) por los nuevos MacPro, MacBook y MacBookPro respectivamente. Con este paso Apple permitió la compatibilidad entre su sistema operativo y los nuevos Windows XP y Windows Vista, lo que antes totalmente imposible. Aprovechando el nuevo camino abierto, entre 2003 y 2006 incrementaron en casi diez veces más el precio de sus productos. MacBook Pro, el primer portátil de Apple con procesador Intel (enero, 2006). 6 Net En oficialme orientaría mientras coste y en Las • Mn • Tp • I h • I dn • Be • Mr • I • I dr • S • Bi • S Den muestra u Logo tBooks: presta consu como n la primav nte las dos a a disposit que la serie n los nuevos s característi Modificació nm. Tamaño re pequeño que Intel® Deep hubiera en l Intel® Spee distintos niv nominal es d Bajos nivel el tamaño d Mejoras en reducen los Intel® Smar Intel® Gra de un cont respuesta. Soporte par Bajo consu independenc Soporte par ntro de la se una tabla de Code-nam Diamondvi Pineview : Intel® La última aciones má umo y prest editores de vera de 20 gamas de lo tivos móvi e Atom N2x s netbooks. icas genéric ón de la M educido. El e los habitu per Sleep. las cachés p edStep mej veles de ali de 1.66 GH les de TDP e los netboo n el prefetc tiempos de rt Cache. U aphics Med trolador de ra Window umo. Aume cia. ra Wi-Fi, W erie Atom N característi me Ser ille Atom Atom Atom w Atom Atom Atom Atom a gran incor ás limitadas taciones: pr e texto u hoj 08, en el I os nuevos A les con co xx (Diamon cas de los nu Microarquit l encapsula uales (35mm En periodo para ahorrar orado. Se imentación Hz en el caso P. Reducien oks. ch de instr espera deb Utilizan 512 ia Accelera memoria, ws y MeeGo enta la dur WiMAX y c Nxxx tambié icas de lo m ries C N2xx s m 2xx (4 m 3xx d (4 N4xx s D4xx (4 D5xx du rporación al s pero orie rincipalment jas de cálcu Intel® Deve Atom: por u onexión a I ndville) se uevos Intel tectura Co ado del pro m x 35mm). os de inactiv energía. trabaja con según las n o del singledo las nece rucciones y bido al acces 2 KB de cac ator 3150. L ambos int o Linux. ración de l comunicaci én hay, a su más aclarator Core O G ingle 45 nm) dual 45 nm) ingle 45 nm) Y ual (45 nm) l mercado h entados a te, acceso a ulo. eloper Foru un lado la se Internet (M utilizaría en Atom son: re (dual-co cesador (22 vidad, alma n diferentes necesidades -core y 1.50 esidades de en la ges so a datos q ché L2 por n La combina tegrados, pe la batería p iones 3G. u vez, difere ria. On- Die GPU TD No 2.5 4 W 8 W Yes 6.5 10 W 13 W ha sido la d aplicacione Internet y um de Sha erie Atom Z Mobile Inter n equipos d ore) basada 2mm x 22m acena en la frecuencias s de rendim 0 GHz para refrigeració stión de ac que no están núcleo. ación de ace ermite redu permitiendo ntes modelo DP HT W Yes W de los Intel® es más mo aplicacion anghai, Inte Z5xx (Silver rnet Device de sobremes en tecnolo mm) es un a RAM los s de reloj y miento. La f el dual-cor ón se reduc cceso a reg n en caché. elerador de ucir la velo o largos pe os. A contin Intel 64 Inte VTNo Yes No 19 ARQUITECTURA DEL MICROPROCESADOR ARQUITECTURA DEL MICROPROSESADOR ARQUITECTURA DEL MICROPROCESADOR 8086} Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 2 ARQUITECTURA DEL MICROPROCESADOR 8086. 1. INTRODUCCION. Los procesadores de 16 bits fueron una nueva generación de microprocesadores desarrollados para reemplazar o completar a las microcomputadoras de 8 bits de los años setenta, que fueron las que comenzaron la revolución de las microcomputadoras. El 8086 fue diseñado para trabajar con lenguajes de alto nivel, disponiendo de un soporte hardware con el que los programas escritos en dichos lenguajes ocupan un pequeño espacio de código y pueden ejecutarse a gran velocidad. Esta concepción, orientada al uso de compiladores, se materializa en un conjunto de facilidades y recursos, y en unas instrucciones entre las que cabe destacar las que permiten efectuar operaciones aritméticas de multiplicar y dividir, con y sin signo; las que manejan cadenas de caracteres, etc. En su momento, el 8086 junto con el 8088 fueron los microprocesadores más empleados dentro de su categoría, especialmente desde que IBM los adoptó para la construcción de su computadora personal. Muchos fabricantes de microordenadores utilizaron esta familia microcomputadora para fabricar equipos de tipo profesional. Hoy en día, la utilización del 8086 es más reducida, quedando principalmente orientado a la enseñanza, como base de los microprocesadores de la última generación. Antes de pasar a hacer una descripción más detallada de la arquitectura interna del microprocesador, vamos a destacar brevemente las principales características del 8086: · El 8086 dispone de instrucciones especiales para el tratamiento de cadenas de caracteres. · Los registros del 8086 tienen una misión específica, por lo que se podría decir que cada uno de ellos tiene su propia personalidad, aunque varios comparten tareas comunes. · El encapsulado del 8086 está formado por 40 patillas, simplificando así el hardware, aunque por contra, es necesario la multiplexación del bus de datos con el de direcciones. · El 8086 dispone de un conjunto de registros, denominados ‘cola de instrucciones’, en el cual se van almacenando de forma anticipada los códigos de las instrucciones, consiguiendo que este aumente su velocidad de trabajo. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 3 · Las 20 líneas del bus de direcciones sólo permiten direccionar una memoria de 1 Megabyte. · El 8086 requiere una señal de reloj exterior, siendo 5 y 8 Mhz las frecuencias típicas de funcionamiento. · El 8086 dispone de una arquitectura “pipe line”, es decir, que la CPU puede seguir leyendo instrucciones en los tiempos en que el bus no se utiliza. 2. ARQUITECTURA INTERNA DEL 8086. Este microprocesador esta dividido en dos sub-procesadores. Por un lado está la “Unidad de Ejecución” (EU) encargada de ejecutar las instrucciones, la cual posee una ALU (unidad aritmético-lógica) con un registro de estado con varios flags asociados y un conjunto de registros de trabajo, y por otro está la “Unidad de Interfaz de bus” (BIU) encargada de la búsqueda de las instrucciones, ubicarlas en la cola de instrucciones antes de su ejecución y facilitar el direccionamiento de la memoria, es decir, encargada de acceder a datos e instrucciones del mundo exterior. El 8086 contiene 14 registros de 16 bits, de los cuales, unos pertenecen a la EU, que normalmente se suelen usar para direccionamiento, y otros pertenecen a la BIU. EU BIU AH AL BH BL CH CL DH DL SP BP SI DI IP FLAGS H FLAGS L CS DS SS ES PUNTERO DE PILA PUNTERO DE BASE INDICE FUENTE INDICE DESTINO PUNTERO DE INSTRUCCION INDICADORES DE ESTADO ACUMULADOR BASE CONTADOR DATOS SEGMENTO DE CODIGO SEGMENTO DE DATOS SEGMENTO DE PILA SEGMENTO EXTRA JUEGO DE REGISTROS DEL 8086 Los registros del 8086 podrían clasificarse en tres grupos de acuerdo con sus funciones. El grupo de datos, que es esencialmente el conjunto de registros aritméticos; el grupo de apuntadores, que incluye los registros base e índices y también el contador Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 4 de programa y el puntero de pila; y el grupo de registros de segmento, que es un conjunto de registros base de propósito especial. El grupo de registros de datos o registros generales son registros de 16 bits, pudiéndose usar cada uno de ellos como dos registros de 8 bits. Aun siendo registros de uso general tiene asignadas unas operaciones específicas. Así, por ejemplo, el AX es el acumulador de 16 bits y usándolo a veces provoca que el ensamblador produzca un lenguaje máquina codificado en muy pocos octetos. Se emplea en multiplicaciones, divisiones, entradas/salidas, etc.; el registro BX, se utiliza como registro base para el direccionamiento de memoria; el registro CX, se utiliza como contador y almacenaje de datos y el registro DX, se utiliza para almacenar datos de 16 bits. Puede pensarse que es una extensión del registro AX para multiplicaciones y divisiones con 16 bits. Otra de sus funciones específicas es para almacenar la dirección de E/S durante algunas operaciones de E/S. El grupo de apuntadores, es decir, punteros e índices está formado por los registros IP, SP, BP, SI, DI. Los registros puntero son dos: · IP como registro puntero de instrucciones conocido principalmente como contador de programa. Este contiene un valor de 16 bits que es un desplazamiento sobre la dirección del registro CS ( segmento de código ) que más adelante detallaremos. · SP como registro de pila. El registro BP actúa como base de la dirección de la pila. Los registros puntero de instrucciones ( IP ) y puntero de pila ( SP ) se encargan del control de flujo del programa. Los registros SI y DI actúan como índices asociados al registro DS ( segmento de datos ). El grupo de registros de segmento está formado por los registros CS, SS, DS y ES. · CS ( segmento de código ). · DS ( segmento de datos ). · SS ( segmento de pila ). · ES (segmento extra ). La importancia de dichos registros queda reflejada en la estructura de la memoria con la técnica de segmentación, que principalmente radica en el que el espacio total de memoria se divide en trozos de 64K bytes, que reciben el nombre de “segmentos”. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 5 Las ventajas de utilizar registros de segmento son: · Permite una capacidad de memoria de hasta 1 megabyte, aunque la dirección asociada a una instrucción sea sólo de 16 bits. · Permiten que las partes de un programa, instrucciones, datos y pilas, tengan un tamaño mayor de 64K, mediante la utilización de más de un segmento para código, datos o pila. · Facilitan la utilización de áreas separadas para un programa, sus datos y la pila. · Permiten colocar un programa y sus datos en diferentes áreas de memoria cada vez que se ejecute. Aparte de todos estos registros, el 8086 consta de un registro de estado de estado de 16 bits, aunque algunos de ellos no se utilizan. Cada uno de los bits se denomina indicador o flag, que generalmente, se modifican por las operaciones lógicas y aritméticas. Estos indicadores son: · SF ( indicador de signo ). · ZF ( indicador de cero ). · PF ( indicador de paridad ). · CF ( indicador de acarreo ). · AF ( indicador de acarreo auxiliar ). · OF ( indicador de desbordamiento ). · DF ( indicador de dirección ). · IF ( indicador de interrupción ). · TF ( indicador de trap ). 3. ESTRUCTURA DE MEMORIA DE SEGMENTACIÓN. El 8086 usa un esquema llamado segmentación, para acceder correctamente a un megabyte completo de memoria, con referencias de direcciones de sólo 16 bits, y todo esto gracias a la utilización de registros de segmento que dividen esencialmente el espacio de memoria en segmentos de 64K de longitud, que pueden estar separados entre sí, adyacentes o superpuestos, y que comienzan en una dirección divisible por 16. La forma en que se completan los 20 bits del bus de direcciones, disponiendo en la CPU, solamente, registros de 16 bits, se consigue de la siguiente manera: Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 6 Se parte del contenido de uno de los registros de segmento, que actúan como base. Después, se multiplica por 16 el contenido del registro de segmento, lo que, en binario, significa añadirle 4 ceros a la derecha y convertirlo en una magnitud de 20 bits. Finalmente, se suma un desplazamiento al resultado de la multiplicación anterior. Abreviadamente, la fórmula para calcular una dirección de memoria es: Dirección Física = 16 * ( registro de segmento ) + desplazamiento. 15 0 ¯ * 16 19 ¯ 0 ¯+ 15 ¯ 0 ¯= 19 ¯ 0 De esta manera, sobre la dirección base que apunta el registro de segmento multiplicado por 16, existe un margen de 64K bytes, controlado por un desplazamiento de 16 bits. REGISTRO DE SEGMENTO REGISTRO DE SEGMENTO 0 0 0 0 DIRECCION EFECTIVA Ó DESPLAZAMIENTO DIRECCIÓN FÍSICA Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 7 Después de haber visto de una forma general el funcionamiento de la estructura de la memoria de segmentación vamos a ver como, más concretamente, el 8086 y en función de los registros de segmento y el resto de registros, calcula las direcciones completas de las instrucciones, posiciones de pila y datos. Las direcciones completas de las instrucciones y de las posiciones de la pila se forman sumando el contenido de los registros IP y SP con el segmento de código ( CS ) y el segmento de pila ( SS ) respectivamente. La dirección de un dato puede formarse mediante la suma de los contenidos de los registros BX ó BP, los contenidos de SI ó DI, y un desplazamiento. El resultado de este cálculo se denomina dirección efectiva ( EA) ó desplazamiento de segmento. La dirección definitiva del dato, sin embargo, se determina mediante la EA y el registro de segmento apropiado, el segmento de datos ( DS ), el segmento extra ( ES ) ó el segmento de pila ( SS ). El uso de los diferentes segmentos significa que hay áreas de trabajo separadas para el programa, la pila y los datos. Cada área de trabajo tiene un tamaño máximo de 64K bytes y un mínimo de 0. Dado que hay cuatro registros de segmento, uno de programa ( CS ), uno de pila ( SS ), uno de datos ( DS ) y uno extra ( ES ) el área de trabajo puede llegar hasta 256K. El programador puede determinar la posición de estos segmentos, cargando el apropiado registro de segmentación de 16 bits con la dirección de segmento apropiada. Esto se realiza normalmente al inicio del programa, pero se puede fácilmente hacer en cualquier momento mientras al programa se ejecuta, cambiando dinámicamente la dirección de estos segmentos. Cambiando el desplazamiento, el programador puede acceder a cualquier punto de segmento. Se puede pensar en el segmento como una ampliación de memoria que forma un área de trabajo. El desplazamiento es la única parte de la dirección que aparece normalmente en los programas en lenguaje ensamblador durante las referencias a direcciones del área de trabajo. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 8 4. SEÑAL DE RELOJ. Al igual que los mas recientes microprocesadores, el 8086 requiere una única señal de reloj. Este microprocesador no genera su propia señal de reloj siendo necesario la utilización del generador de reloj 8284, que usa un cristal oscilador para determinar la frecuencia de señal. Intercambiando este cristal, se puede seleccionar diferentes velocidades de operación. Intel tiene una versión de 5 MHz y otra de 8 Mhz para el 8086. Estas versiones representan las velocidades más altas, recomendables para este chip. Para un rendimiento óptimo, el 8086 requiere una señal de reloj que se mantenga a tensión alta una tercera parte del tiempo total de ciclo. Esto significa que el reloj está activo una tercera parte del tiempo y desactivado las dos terceras partes del tiempo. 5. MODOS DE DIRECCIONAMIENTO. La forma en que se especifica un operando se denomina modo de direccionamiento, es decir, es un conjunto de reglas que especifican la localización (posición ) de un dato usado durante la ejecución de una instrucción. El 8086 tiene 25 modos de direccionamiento o reglas para localizar un operando de una instrucción. Los modos de direccionamiento más frecuentes son los que calculan la dirección del operando mediante la suma de la dirección base de un registro segmento, multiplicado por 16 y el valor de un desplazamiento. La gran variedad de direccionamientos proviene de las muchas formas en que se puede determinar el desplazamiento. En general, los modos de direccionamiento del 8086 se dividen en dos grandes grupos: 1. Modos de direccionamiento de la memoria de programa. 2. Modos de direccionamiento de la memoria de datos. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 9 5.1. Modos de direccionamiento de la memoria de programa. En la búsqueda de una instrucción, su dirección se obtiene sumando el desplazamiento, contenido en el IP, al valor del registro de segmento CS, multiplicado por 16. Normalmente al terminar la ejecución de una instrucción, el IP se incrementa, con lo que se pasa a direccionar la siguiente instrucción. Las instrucciones de salto y salto a subrutinas pueden modificar el contenido de IP de tres formas diferentes: · Por direccionamiento relativo. Al contenido del IP se suma, de forma inmediata, un desplazamiento de 8 a 16 bits, con signo, proporcionado por la misma instrucción. · Por direccionamiento directo. Se carga, en el IP, una nueva dirección presente en la instrucción. · Por direccionamiento indirecto. El dato, obtenido por cualquiera de las formas de direccionado de la memoria de datos, es interpretado por las instrucciones de salto, como la dirección a la que se debe saltar. 5.2. Modos de direccionamiento de la memoria de datos. · Modo inmediato. El operando se proporciona en el byte o bytes que siguen al código de operación de la instrucción. Ejemplo: ADD CX,385Fh · Modo de direccionado por registro. Un registro, definido por la instrucción, contiene el operando. Ejemplo: ADD CX,AX · Modo directo. El byte o par de bytes que siguen al código OP de la instrucción dan el desplazamiento de 8 ó 16 bits, que, sumado al contenido del registro DS, determina la dirección efectiva en la que se encuentra el dato a transferir. Ejemplo: ADD CL,TABLA · Modo directo indexado. El byte o par de bytes que siguen al código OP representan un desplazamiento que se suma al contenido de uno de los registros índice (DI o SI). El contenido de DS se añade al resultado de la suma, con lo que se obtiene la dirección del operando. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 10 Incrementando o decrementando los registros índice, se puede acceder a posiciones de memoria consecutivas. Ejemplo: ADD CX, [SI+4] · Modo indirecto. La dirección del operando es el contenido de uno de los siguientes registros: BP, BX, DI o SI. Ejemplo: ADD CX, [BX] · Por registro base indexado. El desplazamiento que ha de sumarse a un registro segmento se halla sumando el contenido de un registro índice y un desplazamiento de 8 ó 16 bits, contenido en la instrucción, al contenido de un registro base. Ejemplo: MOV AX,TABLA[BX][SI] · Modo relativo a base: El byte o par de bytes que siguen al código OP representan un desplazamiento que se suma al contenido de uno de los registros base (BX o BP). El contenido de DS se añade al resultado de la suma, con lo que se obtiene la dirección del operando. Ejemplo: MOV AX, [BP]+4 6. FORMATO DE LAS INSTRUCCIONES. A semejanza con otros microprocesadores, las instrucciones del 8086 pueden clasificarse en tres grupos, según la definición que se utilice para los operandos: · Sin operando. Por ejemplo, CLI, STI, DAA, WAIT, etc. · Con un sólo operando. Por ejemplo, JMP, PUSH, CALL, etc. · Con dos operandos. Por ejemplo, MOV. Las instrucciones varían de 1 a 6 bytes en longitud. Los desplazamientos y los datos inmediatos pueden tener 8 ó 16 bits dependiendo de la instrucción. El código de operación y el modo de direccionamiento se encuentran en los primeros uno o dos bytes de la instrucción. Estos pueden ir seguidos por: · Ningún byte adicional. · Una EA de 2 bytes ( sólo para direccionamiento directo ). · Un desplazamiento de 1 ó 2 bytes. · Un operando inmediato de 1 ó 2 bytes. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 11 · Un desplazamiento de 1 ó 2 bytes seguidos de un operando inmediato de 1 ó 2 bytes. · Un desplazamiento de 2 bytes y una dirección de un segmento de 2 bytes (sólo para direccionamientos fuera del segmento ). El código de operación y el modo de direccionamiento determinan cual de estas posibilidades es la utilizada. Si un desplazamiento o un operando inmediato son de 2 bytes, siempre aparece primero el byte de menor orden. El código de operación, que generalmente es el primer byte de la instrucción (aunque hay algunas veces en las que este byte designa un registro y otras en las que 3 bits del código de operación están en el segundo byte), es el encargado de determinar la operación, informando a su vez del tamaño de los operandos. En la mayoría de los códigos de operación hay indicadores especiales de 1 bit. Estos indicadores son: Bit W. Nos informa del tamaño de los operandos, es decir, si se trata de byte o palabra. Con W = 0 estamos accediendo a un byte y con W = 1 a una palabra. Bit D. Este bit es utilizado con instrucciones de dos operandos, salvo en los casos en que uno de los operandos debe ser un registro especificado en el campo REG. Este bit nos informa si el registro especificado en el campo REG se trata del operando fuente u operando destino de instrucción especificada por el código de operación. Para D = 0, el registro indicado por el campo REG es el operando fuente y para D = 1, el registro indicado por el campo REG es el operando destino. Bit S. El bit S aparece junto con el bit W en instrucciones de suma inmediata registro / memoria, resta y comparación. El bit S indica el tamaño del dato u operando inmediato, el bit W nos indica el tamaño del dato u operando destino. Si SW es 00, tanto la fuente como destino tienen 8 bits, es decir, se trata de una operación de 8 bits; Si SW es 11 se trata de una operación de 16 bits con un operando inmediato de 16 bits con extensión de signo; Si SW es 01 indica una operación de 16 bits con un operando inmediato de 8 bits con extensión de signo. Bit V. Utilizado por instrucciones de desplazamiento y rotación para determinar el número de desplazamientos. Bit Z. Utilizado para instrucciones REP. A continuación se muestra la combinación de bits para asignación de registros ( de segmento o cualquier otro tipo ). Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 12 Dirección de registro Registros W = 1 Registros W = 0 000 AX AL 001 CX CL 010 DX DL 011 BX BL 100 SP AH 101 BP CH 110 SI DH 111 DI BH Dirección de registro Registro de segmento 00 ES 01 CS 10 SS 11 DS Como se puede apreciar en estas tablas se podría producir ambigüedad al representar, por ejemplo, 00 para indicar el registro de segmento ES, 000 para indicar AX y a su byte de menor orden AL , pero esto no sucede ya que el código de operación implica el tipo de registro que indica. Cuando el código de operación y el modo de direccionamiento ocupan 2 bytes pueden verse representado de las dos formas siguientes: MOD COD OP R/M MOD REG R/M El primero de los casos es para instrucciones de un sólo operando o bien instrucciones de dos operandos pero uno de ellos implícito en el código de operación. El segundo de los casos se trata de instrucciones de dos operandos, en cuyo caso uno de ellos viene especificado por el campo REG y el otro operando viene especificado Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 13 por los campos MOD y R/M que pueden indicar un registro o bien una posición de memoria. A continuación se especifica una tabla donde quedan reflejados los modos de direccionamiento y registros de segmento por defecto para varias combinaciones de los campos MOD y R/M. MOD R/M 00 01 10 11 W=0 W=1 000 Reg. de segmento (BX) + (SI) DS (BX)+(SI)+D8 DS (BX)+(SI)+D16 DS AL AX 001 Reg. de segmento (BX) + (DI) DS (BX)+(DI)+D8 DS (BX)+(DI)+D16 DS CL CX 010 Reg. de segmento (BP) + (SI) SS (BP)+(SI)+D8 SS (BP)+(SI)+D16 SS DL DX 011 Reg. de segmento (BP) + (DI) SS (BP)+(DI)+D8 SS (BP)+(DI)+D16 SS BL BX 100 Reg. de segmento (SI) DS (SI) + D8 DS (SI) + D16 DS AH SP 101 Reg. de segmento (DI) DS (DI) + D8 DS (DI) + D16 DS CH BP 110 Reg. de segmento D16 DS (BP) + D8 SS (BP) + D16 SS DH SI 111 Reg. de segmento (BX) DS (BX) + D8 DS (BX) + D16 DS BH DI Viendo esta tabla podemos apreciar que según la combinación de MOD y R/M tendremos diferentes posibilidades para el segundo operando. Como anteriormente se ha indicado este segundo operando puede ser un registro o una posición de memoria, que principalmente va a estar en función del campo MOD. Si MOD = 11 nos indica que se trata de un registro, pudiendo ver de que tipo de registro se trata según la combinación de R/M. Si MOD es distinto de 11 nos indica una posición de memoria y la dirección efectiva se calcula según las tablas. Si nos fijamos en MOD = 00 esto significa que no hay desplazamiento a menos que R/M = 110, lo que implicaría direccionamiento directo. Si MOD = 01 indica que el tercer byte de la instrucción contiene un desplazamiento de 8 bits que se extiende automáticamente a 16 ( extensión de signo ) antes de ser usado para calcular la dirección efectiva, y MOD = 10 indica que los bytes tercero y cuarto contienen un desplazamiento de 16 bits. Podemos observar en la tabla el registro de segmento que es utiliza para cada una de las combinaciones de MOD y R/M. Aunque la dirección efectiva de un operando en memoria está determinada por los campos MOD y R/M, la dirección física de 20 bits Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 14 se obtiene, como ya vimos, sumando la dirección efectiva y el contenido de un registro de segmento multiplicado por 16. Existe un byte especial de prefijo para permitir excepciones a la utilización del registro de segmento dado por la tabla anterior, es decir, nos permite ignorar algunas de estas asignaciones pero no todas, este byte se denomina prefijo de sustitución de segmento. En particular, si la CPU usa la instrucción puntero para ayudarse a apuntar a memoria, es decir, para localizar parte de una instrucción, entonces el registro de segmento de código siempre se usa. Y si la CPU usa el puntero de pila para ayudarse a apuntar a memoria, tanto para introducir como para extraer de la pila, entonces se usa siempre el registro de segmento de pila. El caso del destino en operaciones con cadena es el único en el cual hay una restricción. La combinación del índice de destino ( DI ) y el segmento extra ( ES ) se usa siempre para calcular la dirección del destino en cualquier operación con cadenas. El byte de prefijo de sustitución de segmento puede usarse, sin embargo, para obligar a utilizar alguno de los cuatro registros de segmento en el cálculo de la dirección puente de una operación de cadenas, resumiendo, los casos específicos en los que no puede haber sustituciones son: · El CS se utiliza siempre como registro de segmento para el cálculo de la próxima instrucción que se va a ejecutar. · Cuando se utiliza SP siempre se utiliza SS como registro de segmento. · Para operaciones con cadenas siempre se utiliza ES como registro de segmento del operando destino. Los 24 modos de referenciar la dirección, usados para el acceso de datos, pueden aceptar un byte de prefijo de sustitución de segmento e ignorar sus asignaciones por defecto al segmento, usando cualquier registro de segmento. La asignación por defecto como se puede ver en la tabla es o el segmento de datos ( DS ) o el de pila ( SS ) y, de hecho, se usa siempre el segmento de datos a menos que el modo de direccionamiento use el puntero base ( BP ), en cuyo caso se usa el registro de pila. Intel aconseja utilizar el puntero base para acceder a datos en la pila del sistema y normalmente con llamadas a subrutinas. Para examinar con más claridad las instrucciones máquina del 8086, vamos a ver unos ejemplos con la instrucción suma ( ADD ). Una suma ( ADD ) provoca que el contenido de la posición indicada para el operando fuente sea sumado al contenido de la posición indicada para el operando destino, y que la suma reemplace a ésta última. Esta instrucción puede adoptar uno de los tres formatos que se muestran el la siguiente figura, dependiendo del modo de direccionamiento. a) Suma de un registro con un registro o con memoria, y almacenamiento del resultado en un registro o en una memoria. 000000DW MOD REG R/M DESP menor orden DESP mayor orden * El campo DESP puede ocupar uno o dos bytes, dependiendo del campo MOD. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 15 b) Suma inmediata con registro (memoria) y colocación del resultado en un registro (memoria). 100000SW MOD 000 R/M DESP bajo DESP alto DAT bajo DAT alto * El campo DESP puede ocupar uno o dos bytes, dependiendo del campo MOD. * El byte alto del campo DAT es opcional, y estará presente si S:W = 01. c) Suma inmediata con AX(AL) y almacenamiento del resultado en AX(AL). Caso especial para el acumulador. 0 0 0 0 0 1 0 W DATO menor orden DATO mayor orden * El byte DATO de mayor orden es opcional, dependiendo de si W = 1. La siguiente figura muestra el código en el lenguaje máquina para dos instrucciones ADD, las cuales suman los contenidos de los registros BH y CL, y colocan el resultado en CL. En la primera, D = 1 indica que REG = 001 = CL es donde será almacenada la suma. MOD = 11, por lo que R/M designa un registro, el registro 111 = BH. En la segunda instrucción, D = 0, lo que hace que REG = !!! = BH sea la fuente. De nuevo MOD = 11, y R/M designa a un registro que en este caso es el 001 = CL. D W MOD REG R/M 000000 1 0 11 001 111 D = 1 Indica que el destino es un registro. W = 0 Operandos de byte ( suma en 8 bits ). MOD = 11 La fuente será un registro que quedará determinado por R/M. REG = 001 Indica el registro CL. R/M = 111 Indica el registro BH. a) REG indica destino. D W MOD REG R/M 000000 0 0 11 111 001 D = 0 Indica que la fuente es un registro. W = 0 Operandos de byte. MOD = 11 La fuente será un registro que quedará determinado por R/M. REG = 111 Indica el registro BH. R/M = 001 Indica el registro CL. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 16 b) REG indica fuente. El siguiente ejemplo indica una suma de una posición de memoria con un registro. La dirección efectiva se obtiene sumando los contenidos de BX y DI al desplazamiento de 16 bits ( W = 1 ), que es 2345. Si ( BX ) = 0892 y ( DI ) = 59A3, entonces EA = 0892 + 59A3 +2345 = 857A. D W MOD REG R/M DESPLAZAMIENTO 000000 0 1 10 010 001 01000101 00100011 D = 0 Indica que la fuente es un registro. W = 1 Operandos de palabra. MOD = 10 La fuente que será memoria quedará determinada por el campo R/M. REG = 010 Indica el registro DX. R/M = 001 Indica una posición de memoria que será: EA = (BX) + (DI) + desplazamiento de 16 bits. c) Suma de un registro con memoria. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 17 7. DIAGRAMA DE CONEXIONADO DEL 8086. SEÑALES Y TERMINALES. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 8086 GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 MN/MX RD RQ/GT0 RQ/GT1 LOCK S2 S1 S0 QS0 QS1 TEST READY RESET MODO MINIMO MODO MAXIMO (HOLD) (HLDA) (WR) (M/IO) (DT/R) (DEN) (ALE) (INTA) MICROPROCESADOR 8086 El 8086 puede configurarse de dos formas distintas: el modo máximo y el modo mínimo. El modo queda determinado al colocar el terminal MN/MX a tierra o a la tensión de alimentación. En modo mínimo no admite la multitarea, mientras que en modo máximo es capaz de soportar un bus local, para ampliar directamente el 8086, y un bus de sistema MULTIBUS, que permite configuraciones con varios procesadores, más concretamente el 8086 debe estar en modo máximo si quiere trabajar en colaboración con el procesador de datos 8087 y el procesador de entrada / salida 8089. En el modo máximo, el 8086 depende de otros chips adicionales como es el controlador de bus 8288 para generar el conjunto completo de señales de control de bus. El modo mínimo permite al 8086 trabajar de una forma más autónoma. La figura siguiente muestra un esquema de ambos modos. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 18 8086 CPU (MIN) AD0 - AD15 A16 - A19 S3 - S6 M/IO DT/R DEN ALE INT NMI TEST HOLD MODO MINIMO DEL 8086 WR HLDA 8086 CPU (MAX) AD0 - AD15 A16 - A19 S3 - S6 INT NMI TEST MODO MAXIMO DEL 8086 AMEMORIA AMEMORIA BHE/S7 QS0 - QS1 S0 - S2 AL NDP 8087 SEÑALES DE ESTADO En ambos modos, las señales del 8086 se pueden agrupar de la siguiente manera: · Alimentación. · Reloj. · Control y estado. · Direcciones. · Datos. Hay tres terminales para la alimentación: tierra ( GND ) en los terminales 1 y 20, y una tensión de entrada de 5 voltios ( Vcc ) en el terminal 40. El terminal de tierra es tierra a la vez para la alimentación y para las señales. Cuenta con una entrada de la señal de reloj ( CLK ) en el terminal 19. El 8086 cuenta con 20 bits de dirección. Los 4 bits más significativos de la dirección comparten terminales con algunas de las señales de estado. Los 16 bits menos significativos son multiplexados tanto para las direcciones como para los datos, es decir, Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 19 en ciertos instantes tales terminales conducen parte de una dirección, y en otros son transmitidos los datos. Estos terminales pueden llevar información de una dirección e información sobre el estado y los datos. El latch 8282 está diseñado para seleccionar la información sobre la dirección de dichos terminales en el instante preciso e ignorar lo referente al estado y los datos. Hay varios grupos de control y señales de estado. El terminal MN / MX controla si el procesador está en modo mínimo o máximo, conectándolo a tierra o a una tensión de 5 voltios. Del S0 al S7 son señales de estado en los terminales 26, 27, 28, 38, 37, 36, 35, 34 respectivamente. En ciertos momentos son salidas del procesador. En otros momentos aparecen otras señales distintas en los mismos terminales. Mirando el estado pueden decirse cosas tales como el tipo de acceso al bus ( lectura o escritura, memoria o E/S ), el registro de segmento en uso y el estado del sistema de interrupciones. S0, S1 y S2 son sólo accesibles en modo máximo, en cuyo caso se introducen en los chips controladores de bus 8288. Estas señales decodifican el estado del procesador, de acuerdo con la siguiente tabla. S2 S1 S0 ESTADO DE LA CPU 0 0 0 RECONOCIMIENTO DE INTERRUPCION 0 0 1 LECTURA PUERTA I/O 0 1 0 ESCRITURA PUERTA I/O 0 1 1 PARO ( HALT ) 1 0 0 CODIGO DE ACCESO A INSTRUCCION 1 0 1 LECTURA MEMORIA 1 1 0 ESCRITURA MEMORIA 1 1 1 PASIVO. NO OPERA. El controlador de bus 8288 genera a partir de estas, otras importantes señales de control. En el modo mínimo no es preciso el controlador de bus 8288 puesto que el propio procesador genera por si sólo algunas de estas señales de control. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 20 La señal RD es una señal de estado generada por el procesador sobre el terminal 32. Indica un ciclo de lectura de memoria o entradas y salidas. La señal READY que se encuentra en el terminal 22, es una entrada de los dispositivos externos ( memoria o controladores E/S ) y su función es adaptar las velocidades de memoria y periféricos a la CPU. Esta señal pasa a través del generador de pulsos 8284 para sincronizarse con la señal de reloj. La señal READY trabaja de la siguiente forma: Si se ha seleccionado un dispositivo externo para lectura o escritura y todavía no está preparado para completar la transferencia de datos, pone a cero la línea de señal READY. El procesador ve esta señal y añade ciclos extras de << espera >> hasta que dicha señal se pone a su nivel normal, es decir, a 1 indicando que el dispositivo externo está preparado para realizar la transferencia. Acabada la transferencia las actividades del procesador continúan normalmente. La señal RESET que se encuentra en el terminal 21, es otra de las entradas que también pasa por el generador de pulsos 8284 para sincronizarse con la señal de reloj. Se utiliza para inicializar el procesador borrando la cola de instrucciones y ciertos registros tales como los indicadores, segmento de datos ( DS ), segmento de pila ( SS ), segmento extra ( ES ) poniéndolos a cero. El puntero de instrucciones ( IP ) y el segmento de código ( CS ) los carga con FFFFH. Los terminales NMI ( Non-Maskable Interrup : Interrupción no enmascarable ), terminal 17, e INTR ( INTerrupt Request : petición de interrupción ), terminal 18, son parte del sistema de interrupciones del 8086. Un pulso en el terminal NMI provoca una interrupción especial, llamada interrupción tipo 2. Una señal en el terminal INTR causará una respuesta de interrupción de tipo general. El término << no enmascarables>> se refiere al hecho de que la interrupción generada por el terminal NMI no se puede activar o desactivar vía un software a la CPU. Las interrupciones generales por INTR pueden desactivarse vía software. El terminal BHE / S7 se utiliza como ayuda en la interfaz de los dispositivos de 8 bits con el bus de datos de 16 bits. Su funcionamiento es el siguiente: Si la línea de dirección 0 es 0 ( indicando una dirección par ), la señal BHE especifica si se está direccionando una palabra entera o un sólo byte. BHE igual a 0 significa que se trata de una palabra, BHE igual a 1 significa que es un byte. Si la línea de dirección 0 es 1 ( indicando una dirección impar ), el 8086 direcciona siempre un byte y no una palabra. En este caso BHE es 0. La señal M / IO ( terminal 28 ) informa al sistema cuando el microprocesador requiere acceso a la memoria o al espacio de E/S, es decir, indica la realización de una operación sobre memoria ó sobre entrada / salida. El terminal WR de selección de escritura ( terminal 29 ) indica que los datos están disponibles en las líneas de datos, es decir, se trata de la señal que indica un ciclo de escritura de la CPU. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 21 El terminal DT / R ( terminal 27 ) cuya misión es la recepción y transmisión de datos, es decir, para controlar la transferencia de datos, el 8086 precisa de la colaboración del circuito auxiliar 8286 ( 8287 ). Este se gobierna por la señal DT / R, que indica el sentido del movimiento de la información ( transmisión o recepción ). DEN ( terminal 26 ) igual que la anterior sirve para controlar la transferencia de datos y mas concretamente confirma la validación de los datos. ALE ( terminal 25 ). Esta señal activa el latch 8282 cuando viene una dirección por las líneas AD0-AD15, es decir, sirve para controlar el multiplexado de datos y direcciones. INTA ( terminal 24 ). La función de esta señal es el reconocimiento de interrupciones. ( Se hablará más en el apartado de interrupciones ). Las señales HOLD y HLDA son parte del propio sistema de control de bus del 8086. HOLD ( terminal 31 ) indica la petición del bus por un periférico exterior. Cuando otro procesador o un aparato como un controlador DMA quiere acceder al control del bus, manda una señal al 8086 a través de la línea HOLD. Cuando está preparado para hacerlo, el 8086 pone sus líneas de datos / direcciones y la mayoría de las líneas de control en el estado de alta impedancia. Al mismo tiempo, envía la señal HLDA ( terminal 30 ) para indicar que el bus está libre. El otro aparato puede usar ahora el bus. Cuando finaliza con el bus, envía una señal a la línea HOLD. Inmediatamente después de recibir la señal, el 8086 reanuda el uso del bus. Las señales RQ / GT1 y RQ / GT0 ( terminales 30 y 31 respectivamente ) se corresponden con las señales HOLD y HLDA del modo mínimo. Se utiliza para liberar el bus y reconocer la acción. Las señales QS1 y QS0 ( terminales 24 y 25 respectivamente ) son señales de estado de las colas de instrucciones. Sólo son utilizables en modo máximo. El procesador de datos 8087 utiliza estas señales para coordinarse con el 8086. La señal TEST ( terminal 23 ) se utiliza para enlazar el 8086 con un procesador paralelo, sincronizando el procesador principal con los otros. 8. CICLO DEL BUS DEL 8086. El 8086 se comunica con los elementos externos a través del bus del sistema. Para transferir datos o buscar instrucciones, realiza los llamados “ ciclos de bus “ . El ciclo de bus del 8086 consta de 4 periodos de reloj, llamados estados T. Durante el Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 22 primer estado ( T1 ), el 8086 extrae una dirección por las 20 líneas del bus multiplexado de direcciones, datos y estado. Esta dirección se considera válida cuando se produce un flanco descendente en la señal ALE. Esta última, en un sistema mínimo, es generada por el 8086, mientras que en uno máximo se produce en el controlador de bus 8288. La señal S2-M/IO, indica si se está realizando un acceso a memoria o a dispositivos de entrada / salida. Durante el segundo estado ( T2 ), la dirección del bus multiplexado desaparece, y las señales S3, S4, S5 y S6 toman el control por las 4 líneas de más peso. Estas aportan la información siguiente: S4 S3 0 0 Dirección relativa al segmento extra. 0 1 Dirección relativa al segmento Stack. 1 0 Dirección relativa al segmento de código CS o ninguna. 1 1 Dirección relativa al segmento de datos DS. S5 indica el estado del flag de interrupción; cuando S6 es 0, significa que la CPU está actuando sobre el bus. Al mismo tiempo, en un ciclo de lectura, las 16 líneas de menos peso del bus multiplexado quedan en estado de alta impedancia, mientras que si el ciclo es de escritura, el dato aparece por estas líneas. Durante los estados T1 y T2, se genera la información referente a la dirección del dato, el sentido de la transferencia ( si entra o sale de la CPU ) y si es lectura o escritura, para lo cual se activan las señales DEN, DT / R, RD Y WR. Durante el tercer período de reloj, T3, las 4 líneas de más peso del bus de direcciones siguen conteniendo la información sobre el estado. En una operación de escritura, el dato sigue presente en las 16 líneas de menos peso del bus multiplexado. En un ciclo de lectura, la información existente en las 16 líneas de menos peso del bus multiplexado es considerado válido. Si el dispositivo no es capaz de transferir datos a la velocidad requerida, deberá indicarlo, introduciendo un nivel 0 por la línea READY. Esta señal es reconocida en el último semiciclo de T·, denominado TW. Cuando esto ocurre, la CPU entra en un estado de espera ( WAIT ). Cuando haya terminado la transferencia, el dispositivo mandará un nivel 1 por READY y comenzará la ejecución del cuarto período de reloj, T4. En el estado T4, todas las líneas de control de memoria y entradas y salidas se desconectan del bus del sistema. Sobre el bus del sistema aparece un ciclo, constituido Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 23 por una serie de eventos asíncronos que seleccionan el dispositivo o posición de memoria, mediante una dirección junto a una señal de lectura o escritura que acompaña al dato. El 8086 únicamente ejecuta un ciclo de bus cuando comienza la búsqueda de una instrucción o cuando un operando debe transferirse, entre el 8086 y los dispositivos de entrada y salida o memoria. 9. LAS INTERRUPCIONES. Una estructura de interrupción es una forma de que el procesador provea un servicio rápido y uniforme para la E/S, correcciones y ciertos tipo de error. En general, el procesador continúa con su trabajo habitual hasta que ocurre una interrupción, en cuyo momento salva su estado actual ( puntero de instrucción, segmento de código e indicadores ) ejecuta una rutina especial, y entonces vuelve a lo que estaba haciendo antes. Se puede ver la interrupción como una llamada a una subrutina y la rutina especial de interrupción como el cuerpo de la subrutina. Las principales diferencias entre subrutinas e interrupciones son: · Las subrutinas son llamadas únicamente por instrucciones software, mientras que las interrupciones pueden ser invocadas tanto por software como por hardware. · Las subrutinas únicamente deben salvar la dirección de retorno, mientras que las interrupciones guardan dicha dirección y el estado de todos los indicadores. · Las subutinas necesitan tener un medio de pasar datos al programa principal y viceversa, mientras que esto no es necesario para las interrupciones. La estructura de interrupciones del 8086 utiliza una tabla de 256 posiciones de 4 octetos cada una, la cual está en el inicio de la memoria. Cada una de estas posiciones de la tabla de interrupciones puede cargarse con un puntero a diferentes rutinas de la memoria principal. Estos punteros contienen el nuevo contenido del segmento de código ( 2 octetos ) y el puntero de instrucciones ( 2 octetos ) para la rutina que puede estar localizada en cualquier parte de la memoria. A cada uno de estos punteros de 4 octetos se le asigna un número del 0 al 255, según su posición en la memoria. A este número se le llama tipo. Al tipo de interrupción 0 se le asigna la posición de memoria 0 y así sucesivamente hasta la posición 1.020. En general, al tipo n se le asigna la posición 4n de memoria. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 24 Cada tipo de interrupción puede ser llamado tanto por hardware como por software. Esto hace posible probar vía software las interrupciones hardware. Hay un bit de control, llamado indicador de interrupción ( IF ) que controla si el 8086 responde o no a las interrupciones externas. Este bit puede activarse o desactivarse por medio de las órdenes de activar interrupciones ( STI ) y el de borrar interrupción ( CLI ). Esto abre y cierra la puerta para interrupciones de la CPU. Las interrupciones hardware actúan de la siguiente forma: Cuando un dispositivo externo necesita servicio, produce una señal en la línea de petición de interrupción ( INTR ) del 8086. Si el 8086 puede responder ( interrupción activa ), envía una señal de recibido, bien de forma directa ( en modo mínimo ), o bien vía el controlador de bus 8288 ( en modo máximo ). El dispositivo externo indica, mediante un octeto en el bus de datos, que tipo de interrupción desea. El 8086 usa este número para localizar el puntero de la tabla de interrupciones. A continuación, el 8086 salva las condiciones de sus indicadores y un puntero en la pila con la dirección de retorno, y carga el segmento de código y el puntero de instrucciones desde la tabla de interrupción. Esto hace que el procesador ejecute la rutina de servicio. Al final de dicha rutina debe haber una instrucción de retorno de interrupción ( IRET ).Esta interrupción restaura los indicadores, el segmento de código y el puntero a la dirección de retorno. Se debe usar la instrucción IRET ya que una instrucción retorno normal no restauraría los indicadores, por lo que no sería adecuada para estos propósitos (de otra manera se rompería la pila ). En este punto, el procesador ha vuelto a sus operaciones normales. Hay una clase especial de interrupciones llamadas interrupciones no enmascarables. El término no enmascarable se refiere al hecho de que esta clase de interrupciones no puede desactivarse limpiando el indicador de interrupciones. Esta clase de interrupciones genera una interrupción del tipo 2; o sea, su puntero se encuentra en la dirección 2 * 4 = 8 de memoria. Las interrupciones no enmascarables se reservan para casos de emergencia como fallos de potencia o errores de memoria. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 25 PUNTERO TIPO 255 (DISPONIBLE) PUNTERO TIPO 33 (DISPONIBLE) PUNTERO TIPO 32 (DISPONIBLE) PUNTERO TIPO 31 (RESERVADO) PUNTERO TIPO 5 (RESERVADO) PUNTERO TIPO 4 (REBOSAMIENTO) PUNTERO TIPO 3 (1 BYTE INSTRUC INT) PUNTERO TIPO 2 (NO ENMASCARABLE) PUNTERO TIPO 1 (PESO SIMPLE) PUNTERO TIPO 0 (ERROR EN DIVISION) CS DIRECCION BASE IP DESPLAZAMIENTO 16 BITS 3FFH 3FCH 084H 080H 07FH 014H 010H 004H 000H PUNTEROS DE INTERRUPCION DISPONIBLES (224) PUNTEROS DE INTERRUPCION RESERVADOS EN INTEL (27) PUNTEROS DE INTERRUPCION ESPECIFICOS (5) TABLA DE PUNTEROS DE INTERRUPCION DEL 8086 10. LOS CHIPS DE SOPORTE DEL 8086. En este apartado vamos a ver una serie de chips que proveen al 8086 de circuitería para tres tipos de funciones: · Lógica para generación de pulsos de reloj. · Lógica para la interfaz de bus. · Lógica para la interfaz de controladores. Las funciones de estos chips son vitales para el sistema, como la sincronización, la conexión de los procesadores con el resto del sistema y la conexión de la computadora con el mundo exterior. 10.1. Generador de pulsos de reloj 8086 Cualquier sistema basado en el 8086 requiere una lógica adicional encargada de generar las señales de sincronización para todo el sistema. El generador de pulsos de reloj 8284 de Intel, junto con el cristal oscilador externo, es un chip diseñado específicamente para estas tareas. El 8284 es un chip con 18 terminales que se utiliza para generar los pulsos del 8086 y sus periféricos. Los pulsos de reloj determinan la velocidad de funcionamiento del sistema. La velocidad máxima estándar para estos procesadores es una frecuencia de reloj de 5 Mhz, es decir, 200 nanosegundos por ciclo, aunque algunos chips particulares Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 26 funcionan a 8 Mhz, o lo que es lo mismo, 125 nanosegundos por ciclo. Tanto los chips estándar, como las versiones especiales más rápidas admiten teóricamente una velocidad máxima de 2 Mhz, aunque en la práctica funcionan incluso a frecuencias menores. El generador de pulsos 8284 necesita un cristal oscilador, o una señal lógica externa como fuente de frecuencia. La opción se especifica conectando un terminal o bien a tierra, o bien a la fuente de alimentación. La fuente de frecuencia proporciona una frecuencia triple de la señal resultante del 8284. Poniendo un cristal oscilador u otro, la frecuencia obtenida puede variar entre 5 Mhz hasta casi los 8 Mhz. Para conseguir un rendimiento óptimo de los procesadores, los pulsos de reloj generados por el 8284 se mantienen a tensión alta durante un 33 por 100 del período. Como la frecuencia de la fuente es triple que la de salida del 8284, es relativamente fácil generar este tipo de onda. Normalmente salen tres señales del generador de pulsos de reloj 8284 hacia el procesador. Estas tres señales son CLK ( señal de reloj ), RESET y la señal de READY. Las dos últimas señales están sincronizadas con CLK. La misión de la señal RESET es la de reinicializar los valores de la computadora. Esta señal es imprescindible para solventar los casos en que un programa se mete en un bucle infinito, o que un ruido de alimentación afecte a partes del programa en curso. La función de la señal READY es la de sincronizar el procesador con los dispositivos externos más lentos. La señal READY va desde el dispositivo externo al procesador, pasando a través del generador de pulsos de reloj. Cuando el procesador quiere acceder a un dispositivo que no está preparado para la transferencia, el dispositivo envía un 0 por la línea READY. Cuando el procesador recibe esta señal, entra en un ciclo de espera hasta que aparece un 1 por dicha línea. Sólo entonces continúa el programa. El 8284 genera otra señal que es PCLK ( reloj periférico ), que funciona a la mitad de la frecuencia de la señal CLK, con un ciclo de trabajo del 50 por 100. Está previsto para sincronizar aquella lógica que requiera esta forma de temporización. 10.2. Controlador de Bus 8288 Antes de comenzar a describir con más detalle el controlador de bus 8288 vamos a explicar en lo que consiste la función de dicho dispositivo que no es otra que la de actuar de interfaz entre el procesador y el bus de control. La lógica de interfaz de bus es necesaria por dos razones: · Las señales de los procesadores pueden no ser lo suficientemente potentes para controlar el resto del sistema. Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 27 · Las señales producidas por los procesadores puede que no correspondan directamente a las señales que necesita el resto del sistema. El Controlador de Bus 8288, el Transceptor de Datos Octal 8286, y el Latch Octal 8282 se utilizan para solventar estos problemas de interfaz en un sistema 8086 en modo máximo. Además el Selector de Bus 8289 se usa como interfaz de los grupos de procesadores con el bus principal del sistema. Además de amplificar las señales del 8086 estos chips resuelven el problema del exceso de señales para los 40 terminales del procesador 8086. Centrándonos en el Controlador de Bus 8288 podemos decir que es un chip de 20 terminales, y que como hemos dicho anteriormente es el encargado de realizar el interfaz entre el procesador y el bus de control. Decodifica las señales de estado S0, S1 y S2 del 8086 en modo máximo y genera un conjunto completo de señales de control, como la de control de lectura en memoria ( MRDC ), control de lectura de E / S (IORC), control de escritura en memoria ( MWTC ), control de escritura de E / S ( IOWC ), latch de direcciones disponible ( ALE ) y datos disponibles ( DEN ). Algunas de estas señales de control, como las de lectura y escritura, tienen como destino el bus del sistema, mientras que otras, tales como las de direcciones o datos disponibles, son señales destinadas a los otros chips de interface del procesador con los otros subbuses (el Transceptor 8286 y el Latch Octal 8286 ). Hay también algunas entradas al 8288 de otros dispositivos. Las siguientes tablas muestran las señales de bus producidas por el Controlador de Bus 8288 en respuesta a las señales de estados de los procesadores. S2 S1 S0 Estados del procesador Ordenes al bus del 8288 0 0 0 Reconocimiento de interrupción INTA 0 0 1 Leer puerto de E / S IORC 0 1 0 Escribir puerto de E / S IOWC 0 1 1 Para ninguna 1 0 0 Código de acceso MRDC 1 0 1 Leer memoria MRDC 1 1 0 Escribir memoria MWTC 1 1 1 Pasivo ninguna MRDC Orden de lectura en memoria MWTC Orden de escritura en memoria IORC Orden de lectura de E / S IOWC Orden de escritura de E / S INTA Reconocimiento de interrupción Asignatura: Estructura de Computadores I.Telecomunicación Arquitectura del Microprocesador 8086 Depto. de Automatica Juana María López Area de Arquitectura de Computadores 28 10.3. Transceptor 8286 El transceptor 8286 es un chip de 20 terminales cuya misión es servir de interfaz entre el procesador y el bus de datos. Se utiliza como almacenamiento intermedio para los datos que llegan y salen del procesador, y es necesario por varias razones. Por ejemplo, algunas veces las líneas de datos del procesador no pueden suministrar la corriente necesaria para la carga de un dispositivo externo, y tienen que amplificarse antes de llegar al bus del sistema. Otro uso del transceptor es el de convertir las señales bidireccionales que ciertos buses de datos externos necesitan en señales unidireccionales. Una tercera posibilidad es la de ayudar a distinguir las señales de datos sobre las señales de direcciones. Obsérvese que en el 8086 las señales de datos y direcciones están multiplexadas en los mismos terminales. 10.4. Latch Octal 8282 El latch Octal 8282 es otro chip también de 20 terminales, encargado de hacer de interfaz entre las líneas multiplexadas de datos / direcciones del 8086 y el bus de direcciones del sistema. El 8282 espera hasta que la información sobre la dirección aparece en tales terminales, y entonces toma la información y la mantiene sobre el bus de direcciones del sistema. Con la línea de Latch de dirección disponible ( ALE ), el procesador , en modo mínimo, o el Controlador de Bus 8288, en modo máximo, le dice al Latch Octal cuando debe tomar esta información. Todos estos chips de interfaz pueden llevarse a un estado de alta impedancia (desconectados eléctricamente del bus ) cuando otros procesadores o controladores poseen el control del bus. Existen otros dispositivos tales como el selector de bus 8289 que se utiliza en sistemas grandes basados en el 8086. Realiza una conexión, o interfaz, entre el 8086 y un bus del sistema con otros procesadores conectados.