stringtranslate.com

Intel 8088

El microprocesador Intel 8088 (" ochenta y ochenta y ocho ", también llamado iAPX 88 ) [2] [3] [4] es una variante del Intel 8086 . Introducido el 1 de junio de 1979, [5] [6] [7] [8] el 8088 tiene un bus de datos externo de ocho bits en lugar del bus de 16 bits del 8086. Los registros de 16 bits y la dirección de un megabyte Sin embargo, el rango no cambia. De hecho, según la documentación de Intel, el 8086 y el 8088 tienen la misma unidad de ejecución (EU); sólo la unidad de interfaz de bus (BIU) es diferente. El 8088 se utilizó en la PC IBM original y en clones compatibles con PC IBM .

Historia y descripción

Muere de AMD 8088

El 8088 fue diseñado en el laboratorio de Intel en Haifa , Israel , al igual que una gran cantidad de procesadores Intel. [9] El 8088 estaba dirigido a sistemas económicos al permitir el uso de una ruta de datos de ocho bits y soporte de ocho bits y chips periféricos; Las placas de circuitos complejas todavía eran bastante engorrosas y caras cuando se lanzaron al mercado. La cola de captación previa del 8088 se redujo a cuatro bytes, desde los seis bytes del 8086, y el algoritmo de captación previa se modificó ligeramente para adaptarse al bus más estrecho. [a] Estas modificaciones del diseño básico del 8086 fueron uno de los primeros trabajos asignados a la nueva oficina de diseño y laboratorio de Intel en Haifa.

Las variantes del 8088 con una frecuencia de reloj máxima de más de 5 MHz incluyen el 8088–2, que se fabricó utilizando el nuevo proceso nMOS mejorado de Intel llamado HMOS y especificado para una frecuencia máxima de 8 MHz. Más tarde siguió el 80C88, un diseño CHMOS totalmente estático , que podía funcionar con velocidades de reloj de 0 a 8 MHz. También hubo otras variantes más o menos similares de otros fabricantes. Por ejemplo, el NEC V20 era una variante compatible con pines y ligeramente más rápida (a la misma frecuencia de reloj) del 8088, diseñado y fabricado por NEC . Los sucesivos procesadores compatibles con NEC 8088 funcionarían hasta 16 MHz. En 1984, Commodore International firmó un acuerdo para fabricar el 8088 para su uso en un clon con licencia de Dynalogic Hyperion , en una medida que se consideró que marcaba una nueva dirección importante para la empresa. [10] La versión CMOS disponible se subcontrató a Oki Electronic Industry Co., Ltd. [11] Cuando se anunció, el precio de lista del 8088 era de 124,80 dólares estadounidenses. [12] [13] La versión del paquete de plástico se introdujo en julio de 1981 por 14,10 dólares estadounidenses por 100 en cantidades. [14] Intel adquirió en segundo lugar este microprocesador para Fujitsu Limited . [15]

Diferencias con el 8086

El 8088 es arquitectónicamente muy similar al 8086. La principal diferencia es que sólo hay ocho líneas de datos en lugar de las 16 líneas del 8086. Todos los demás pines del dispositivo realizan la misma función que el 8086 con dos excepciones. Primero, el pin 34 ya no es BHE (esta es la selección de bytes de orden superior en el 8086; el 8088 no tiene un byte de orden superior en su bus de datos de ocho bits). [16] : 5–97  En su lugar, genera un estado de modo máximo, SS0 . Combinados con las señales IO/ M y DT/ R , ​​los ciclos del bus se pueden decodificar (generalmente indica cuando una operación de escritura o una interrupción está en progreso). El segundo cambio es que el pin que señala si se está realizando un acceso a la memoria o un acceso de entrada/salida tiene el sentido invertido. El pin del 8088 es IO/ M . En la parte 8086 es IO /M. El motivo de la reversión es que hace que el 8088 sea compatible con el 8085 . [16] : 5–98 

Actuación

Dependiendo de la frecuencia del reloj , el número de estados de espera de la memoria , así como de las características del programa de aplicación en particular, el rendimiento promedio del Intel 8088 osciló aproximadamente entre 0,33 y 1 millón de instrucciones por segundo . [17] Mientras tanto, las instrucciones y , que tomaron dos y tres ciclos respectivamente, produjeron un rendimiento máximo absoluto de entre 13 y 12  MIPS por MHz, es decir, en algún lugar en el rango de 3 a 5 MIPS a 10 MHz.mov reg,regALU[b] reg,reg

La velocidad de la unidad de ejecución (EU) y el bus de la CPU 8086 estaba bien equilibrada; con una combinación de instrucciones típica, un 8086 podría ejecutar instrucciones fuera de la cola de captación previa la mayor parte del tiempo. Reducir el bus a ocho bits lo convirtió en un serio cuello de botella en el 8088. Con la velocidad de búsqueda de instrucciones reducida en un 50% en el 8088 en comparación con el 8086, una secuencia de instrucciones rápidas puede drenar rápidamente la cola de búsqueda previa de cuatro bytes. Cuando la cola está vacía, las instrucciones tardan tanto en completarse como en recuperarse. Tanto el 8086 como el 8088 necesitan cuatro ciclos de reloj para completar un ciclo de bus; Mientras que para el 8086 esto significa cuatro relojes para transferir dos bytes, en el 8088 son cuatro relojes por byte. Por lo tanto, por ejemplo, una instrucción de desplazamiento o rotación de dos bytes, que a la UE le toma solo dos ciclos de reloj para ejecutarse, en realidad toma ocho ciclos de reloj para completarse si no está en la cola de captación previa. Una secuencia de instrucciones tan rápidas evita que la cola se llene tan rápido como se vacía y, en general, porque muchas instrucciones básicas se ejecutan en menos de cuatro relojes por byte de instrucción, incluidas casi todas las ALU y las instrucciones de movimiento de datos en el registro. operandos y algunos de estos en operandos de memoria: es prácticamente imposible evitar dejar inactivo el EU en el 8088 al menos ¼ del tiempo mientras se ejecutan programas útiles del mundo real, y no es difícil dejarlo inactivo la mitad del tiempo. En resumen, un 8088 normalmente funciona aproximadamente la mitad de rápido que un 8086 con la misma velocidad, debido al cuello de botella del autobús (la única diferencia importante).

Un efecto secundario del diseño 8088, con el bus lento y la cola de captación previa pequeña, es que la velocidad de ejecución del código puede depender mucho del orden de las instrucciones. Al programar el 8088, para la eficiencia de la CPU, es vital intercalar instrucciones de larga duración con instrucciones cortas siempre que sea posible. Por ejemplo, una operación de cadena repetida o un cambio de tres o más tardará lo suficiente como para que la cola de captación previa de 4 bytes se llene por completo. Si se colocan instrucciones cortas (es decir, aquellas que suman unos pocos bytes) entre instrucciones más lentas como estas, las cortas pueden ejecutarse a toda velocidad fuera de la cola. Si, por el contrario, las instrucciones lentas se ejecutan secuencialmente, consecutivamente, después de la primera de ellas la unidad de bus se verá forzada a estar inactiva porque la cola ya estará llena, con la consecuencia de que más adelante se ejecutarán más instrucciones más rápidas. sufrirá retrasos en la recuperación que podrían haberse evitado. Como algunas instrucciones, como los cambios y rotaciones de posición de un solo bit, tardan literalmente 4 veces más en recuperarse que en ejecutarse, [c] el efecto general puede ser una desaceleración de un factor de dos o más. Si esos segmentos de código son cuerpos de bucles, la diferencia en el tiempo de ejecución puede ser muy notable en la escala de tiempo humana.

El 8088 también (como el 8086) es lento para acceder a la memoria. La misma ALU que se utiliza para ejecutar instrucciones aritméticas y lógicas también se utiliza para calcular direcciones efectivas. Hay un sumador separado para agregar un registro de segmento desplazado a la dirección de compensación, pero el EA de compensación en sí siempre se calcula en su totalidad en la ALU principal. Además, el débil acoplamiento de EU y BIU (unidad de bus) inserta una sobrecarga de comunicación entre las unidades, y el ciclo de transferencia de bus de cuatro horas no está particularmente optimizado. Compare esto con el ciclo de bus de período de dos relojes de la CPU 6502 y el ciclo de bus de período de tres relojes del 80286 con canalización hasta dos ciclos para la mayoría de las transferencias. La mayoría de las instrucciones 8088 que pueden operar en registros o en memoria, incluidas las operaciones comunes de movimiento de datos y ALU, son al menos cuatro veces más lentas para los operandos de memoria que para los operandos de registro únicamente. Por lo tanto, los programas 8088 (y 8086) eficientes evitan el acceso repetido a los operandos de la memoria cuando es posible, cargando operandos de la memoria en registros para trabajar con ellos allí y almacenando solo los resultados finales. El conjunto de registros generales relativamente grande del 8088 en comparación con sus contemporáneos ayuda a esta estrategia. Cuando no hay suficientes registros para todas las variables que se necesitan a la vez, guardar registros empujándolos a la pila y retirándolos para restaurarlos es la forma más rápida de usar la memoria para aumentar los registros, ya que las instrucciones PUSH y POP de la pila son las operaciones de memoria más rápidas. Probablemente no ocurra lo mismo en el 80286 y posteriores; Tienen ALU de dirección dedicada y realizan accesos a la memoria mucho más rápido que el 8088 y el 8086.

Finalmente, debido a que las llamadas, saltos e interrupciones restablecen la cola de captación previa, y porque cargar el registro de IP requiere comunicación entre la UE y la BIU (dado que el registro de IP está en la BIU, no en la UE, donde están los registros generales), estas operaciones son costosas. Todos los saltos y llamadas requieren al menos 15 ciclos de reloj. Cualquier salto condicional requiere cuatro ciclos de reloj si no se realiza, pero si se realiza, requiere 16 ciclos además de restablecer la cola de captación previa; por lo tanto, los saltos condicionales deben organizarse para que no se realicen la mayor parte del tiempo, especialmente dentro de los bucles. En algunos casos, una secuencia de operaciones lógicas y de movimiento es más rápida que un salto condicional que omite una o dos instrucciones para lograr el mismo resultado.

Las hojas de datos de Intel para 8086 y 8088 anuncian las instrucciones dedicadas de multiplicación y división (MUL, IMUL, DIV e IDIV), pero son muy lentas, del orden de 100 a 200 ciclos de reloj cada una. Muchas multiplicaciones simples por constantes pequeñas (además de potencias de 2, para las cuales se pueden usar cambios) se pueden realizar mucho más rápido usando subrutinas cortas dedicadas. Tanto el 80286 como el 80386 aumentan considerablemente la velocidad de ejecución de estas instrucciones de multiplicación y división. [d]

Selección para uso en IBM PC

Computadora personal IBM

La IBM PC original es la microcomputadora más influyente en utilizar el 8088. Tiene una frecuencia de reloj de 4,77 MHz (4/3 de la frecuencia de explosión de color NTSC ). Algunos ingenieros y otros empleados de IBM querían utilizar el procesador IBM 801 , algunos preferían el nuevo Motorola 68000 , [e] y otros abogaban por un microprocesador pequeño y sencillo, como el MOS Technology 6502 o el Zilog Z80 , que se encuentran en versiones personales anteriores. ordenadores. Sin embargo, IBM ya tenía un historial de uso de chips Intel en sus productos y también había adquirido los derechos para fabricar la familia 8086 . [F]

IBM eligió el 8088 en lugar del 8086 porque Intel ofrecía un mejor precio por el primero y podía suministrar más unidades. [18] Otro factor fue que el 8088 permitió que la computadora se basara en un diseño 8085 modificado , ya que podía interactuar fácilmente con la mayoría de los chips nMOS con buses de datos de 8 bits. Se trataba de componentes maduros y, por tanto, económicos. Esto incluía circuitos integrados originalmente destinados a soporte y funciones periféricas en torno al 8085 y procesadores similares (no exclusivamente de Intel), que ya eran bien conocidos por muchos ingenieros, lo que reducía aún más los costos. [gramo]

Los descendientes del 8088 incluyen los procesadores 80188 , 80186 , 80286 , 80386 , 80486 y posteriores compatibles con software , incluidos los procesadores Intel Core , que son populares en la actualidad.

Galería

  1. ^ Muestreo del cuarto trimestre de 1985

Periféricos

Ver también

Notas

  1. ^ Específicamente, el cambio más obvio es que la unidad de bus 8088 buscará previamente un byte cuando pueda si al menos un byte de la cola está vacío; la unidad de bus 8086 no realizará una captación previa a menos que al menos dos de los seis bytes de la cola estén vacíos, de modo que pueda captar previamente una palabra completa alineada de 16 bits, lo que hace en un ciclo de bus. El 8088, que tiene un bus de datos externo de 8 bits, solo puede recuperar un byte por ciclo de bus, por lo que esperar a capturar previamente una palabra completa no tendría ningún beneficio y sólo retrasaría, reduciendo la posibilidad de que el siguiente byte de instrucción ya esté en la búsqueda previa. cola cuando sea necesario.
  2. ^ ALU representa una de las instrucciones ADD, ADC, SUB, SBC, CMP y, OR, XOR, TEST.
  3. ^ En el 8088, una instrucción de cambio con un recuento de cambios implícito de 1, que se puede ejecutar en dos ciclos de reloj, tiene dos bytes de longitud y, por lo tanto, se necesitan ocho ciclos de reloj para recuperarse.
  4. ^ La mayor parte de la información técnica de esta sección proviene del Manual del usuario de Intel iAPX 86,88, agosto de 1981 (Número de pedido: 210201-001) de Intel Corporation.
  5. ^ Posteriormente utilizado para la computadora de laboratorio IBM Instruments .
  6. ^ A cambio de otorgarle a Intel los derechos sobre sus diseños de memoria burbuja . Sin embargo, debido a la feroz competencia de los fabricantes japoneses, que pudieron reducir los costos, Intel pronto abandonó este mercado y cambió su enfoque hacia los microprocesadores.
  7. ^ Los componentes 68000 no estaban ampliamente disponibles en ese momento, aunque podían usar componentes Motorola 6800 hasta cierto punto.

Referencias

  1. ^ Historia de la CPU - Museo de la CPU - Ciclo de vida de la CPU.
  2. ^ "Manual del usuario de iAPX 86, iAPX 88" (PDF) .
  3. ^ "Microprocesadores iAPX 86, 88, 186 Parte I, Cuaderno de taller" (PDF) . Junio ​​de 1984.
  4. ^ "Manual de referencia para programadores de iAPX 286" (PDF) . 1983. página 1-1.
  5. ^ "Guía de referencia rápida del microprocesador". Intel . Intel . Consultado el 1 de junio de 2019 .
  6. ^ "Guía de referencia rápida del microprocesador". Intel . Intel . Consultado el 1 de junio de 2019 .
  7. ^ Singh, Renu (2006). Interfaces y aplicaciones de microprocesadores. Nueva Era Internacional. págs. 2–27. ISBN 81-224-1400-1. Consultado el 1 de junio de 2019 .
  8. ^ Govindarajalu, B. (2002). IBM PC y clones: hardware, solución de problemas y mantenimiento (2ª ed.). McGraw-Hill. pag. 248.ISBN _ 978-0-07-048286-9. Consultado el 1 de junio de 2019 .
  9. ^ Gilder, George F. (10 de octubre de 2013). La prueba de Israel . Libros de encuentro . pag. 100.ISBN _ 978-1594036125.
  10. ^ Cook, Karen (17 de abril - 1 de mayo de 1984). "Commodore agrega Hyperion y chips". Revista PC . vol. 1, núm. 8. pág. 52.
  11. ^ Intel Corporation, "NewsBit: Intel otorga licencia a Oki en la versión CMOS de varios productos", Solutions, julio/agosto de 1984, página 1.
  12. ^ "Intel presenta una MPU de 8 bits con arquitectura de 16 bits". Mundo de la informática . vol. XIII, núm. 20. 14 de mayo de 1979. pág. 71 . Consultado el 21 de noviembre de 2011 .
  13. ^ Intel Corporation, "Componentes de microcomputadoras: Intel presenta el 8089 IOP, un procesador de E/S para la avanzada familia de CPU 8088/8086, el primero de una serie de nuevos componentes de subsistema", Intel Preview, mayo/junio de 1979, página 9.
  14. ^ Intel Corporation, "News Bits", Solutions, julio/agosto de 1981, página 1
  15. ^ Intel Corporation, "NewsBits: Second Source News", Soluciones, enero/febrero de 1985, página 1
  16. ^ ab Manual del procesador Osborne de 16 bits (Adam Osborne y Gerry Kane) ISBN 0-931988-43-8
  17. ^ "Olympus MIC-D: Galería de circuitos integrados - Microprocesador Intel 8088". Archivado desde el original el 19 de mayo de 2009.
  18. ^ Freiberger, Paul (23 de agosto de 1982). "Bill Gates, Microsoft y la computadora personal IBM". InfoMundo . vol. 4, núm. 33. pág. 22 . Consultado el 29 de enero de 2015 .
  19. ^ Ashborn, Jim; "Embalaje avanzado: con poco se consigue mucho", Intel Corporation, Solutions, enero/febrero de 1986, página 2
  20. ^ 8086 Disponible para entornos industriales, Edición especial de vista previa de Intel: Soluciones de 16 bits, Intel Corporation, mayo/junio de 1980, página 29.

enlaces externos