De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

El Intel 8088 ( " ochenta-ochenta-ocho ", también llamada iAPX 88 ) [2] [3] [4] microprocesador es una variante de la 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), solo que la unidad de interfaz de bus (BIU) es diferente. El originalIBM PC se basa en el 8088, al igual que sus clones . La PC Wang de Wang Laboratories utiliza Intel 8086 .

Historia y descripción [ editar ]

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 de Intel. [9] El 8088 estaba destinado a sistemas económicos al permitir el uso de una ruta de datos de ocho bits y un soporte de ocho bits y chips periféricos; Las placas de circuito complejas eran todavía bastante engorrosas y caras cuando se lanzó. La cola de captación previa del 8088 se redujo a cuatro bytes, de 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 completamente estático , que podía funcionar con velocidades de reloj de 0 a 8 MHz. También hubo varias 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 a 16 MHz. En 1984,Commodore International firmó un acuerdo para fabricar el 8088 para su uso en un clon de Dynalogic Hyperion con licencia , en un movimiento que se consideró como una señal de una nueva dirección importante para la empresa. [10]

Cuando se anunció, el precio de lista del 8088 era de 124,80 dólares. [11] [12]

Diferencias con el 8086 [ editar ]

El 8088 es arquitectónicamente muy similar al 8086. La principal diferencia es que solo 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 con 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). [13] : 5–97 En su lugar, genera un estado de modo máximo, SSO . Combinado con IO / M y DT / Rseñales, los ciclos de bus se pueden decodificar (generalmente indica cuando está en curso una operación de escritura o una interrupción). El segundo cambio es el pin que indica si se está realizando un acceso a la memoria o un acceso de entrada / salida que tiene sentido invertido. El pasador en el 8088 es IO / M . En la parte 8086 es IO / M. La razón de la inversión es que hace que el 8088 sea compatible con el 8085 . [13] : 5–98

Rendimiento [ editar ]

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 varió aproximadamente entre 0,33 y 1 millón de instrucciones por segundo . [14] Mientras tanto, las instrucciones y , tomando 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-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 una buena parte del tiempo. Reducir el bus a ocho bits lo convirtió en un cuello de botella serio 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 agotar rápidamente la cola de captura 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 requiere que la UE solo ejecute dos ciclos de reloj,en realidad, tarda ocho ciclos de reloj en 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 agota 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 hacer inactivo a la UE en el 8088 al menosDebido a que tantas 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 operandos de registro y algunas de estas en operandos de memoria, es prácticamente imposible evitar que la UE esté inactiva en el 8088 al menosDebido a que tantas 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 operandos de registro y algunas de estas en operandos de memoria, es prácticamente imposible evitar que la UE esté inactiva en el 8088 al menos14 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 corre aproximadamente la mitad de rápido que el 8086 a la misma velocidad, debido al cuello de botella del bus (la única diferencia importante).

Un efecto secundario del diseño del 8088, con el bus lento y la pequeña cola de captación previa, 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 ejecución prolongada con instrucciones cortas siempre que sea posible. Por ejemplo, una operación de cadena repetida o un cambio de tres o más tomará el tiempo suficiente para permitir que la cola de captación previa de 4 bytes se llene por completo. Si se colocan instrucciones cortas (es decir, unas que suman pocos bytes) entre instrucciones más lentas como estas, las cortas se pueden ejecutar a toda velocidad fuera de la cola. Si, por otro lado, las instrucciones lentas se ejecutan secuencialmente, una tras otra, después de la primera de ellas, la unidad de bus se verá obligada a estar inactiva porque la cola ya estará llena,con la consecuencia de que más adelante, más de las instrucciones más rápidas sufrirán retrasos en la búsqueda que podrían haber sido evitables. Como algunas instrucciones, como la posición de un solo bit cambia y rota, toman literalmente 4 veces más tiempo para buscar que para ejecutarse,[c] el efecto general puede ser una desaceleración en 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 usa para ejecutar instrucciones aritméticas y lógicas también se usa para calcular direcciones efectivas. Hay un sumador separado para agregar un registro de segmento desplazado a la dirección de desplazamiento, pero el EA de desplazamiento en sí mismo siempre se calcula completamente en la ALU principal. Además, el acoplamiento flojo 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 períodos de reloj 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 memoria, incluidas las operaciones comunes de movimiento de datos y ALU,son al menos cuatro veces más lentos para los operandos de memoria que para los operandos de registro solamente. Por lo tanto, los programas 8088 (y 8086) eficientes evitan el acceso repetido a los operandos de la memoria cuando es posible, cargando operandos desde la memoria en registros para trabajar con ellos allí y almacenando de nuevo sólo los resultados finales. El conjunto de registros generales relativamente grande del 8088 en comparación con sus contemporáneos ayuda en 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 volviéndolos a abrir 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 direcciones dedicadas y realizan accesos a la memoria mucho más rápido que los 8088 y 8086.

Finalmente, debido a que las llamadas, los saltos y las interrupciones restablecen la cola de captación previa, y porque la carga del 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 toman 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 tomen 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 anunciaban las instrucciones dedicadas de multiplicar y dividir (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 las potencias de 2, para las cuales se pueden usar cambios) se pueden hacer mucho más rápido usando subrutinas cortas dedicadas. El 80286 y el 80386 aumentan considerablemente la velocidad de ejecución de estas instrucciones de multiplicación y división. [D]

Selección para su uso en IBM PC [ editar ]

Computadora personal IBM

El IBM PC original es el microordenador más influyente que utiliza el 8088. Tiene una frecuencia de reloj de 4,77 MHz (4/3 de la frecuencia de explosión de color NTSC ). Algunos de los 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 simple, como el MOS Technology 6502 o 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 sobre el 8086 porque Intel ofrecía un mejor precio por el primero y podía suministrar más unidades. [15] 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. Estos eran componentes maduros y, por lo tanto, económicos. Esto incluía circuitos integrados originalmente destinados a funciones de soporte y periféricos 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 de los 8088 incluyen el 80188 , 80186 , 80286 , 80386 , 80486 , y más tarde de software - compatible con los procesadores, que son populares hoy en día.

Galería [ editar ]

  • Intel 8088, variante nMOS original de 5 MHz en paquete DIP de plástico

  • Plástico DIP40 8088, vista superior

  • Plástico DIP40 8088, vista inferior

  • Intel 80C88A-2, variante CMOS posterior

  • Intel 80C88 en paquete PLCC 44

Periféricos [ editar ]

  • Intel 8282 / 8283 : 8 bits de cierre
  • Intel 8284 : generador de reloj
  • Intel 8286 / 8287 : controlador bidireccional de 8 bits. Las versiones Intel I8286 / I8287 (grado industrial) estaban disponibles por 16,25 dólares EE.UU. en cantidades de 100. [16]
  • Intel 8288 : controlador de bus
  • Intel 8289 : árbitro de bus
  • Intel 8087 : Coprocesador matemático

Ver también [ editar ]

  • arquitectura x86
  • Computadora personal IBM
  • Motorola 68008
  • Modo máximo
  • Modo mínimo
  • iAPX para la designación iAPX
  • Controlador de gráficos profesional
  • Recuento de transistores

Notas [ editar ]

  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 captura previa a menos que al menos dos de los seis bytes de la cola estén vacíos, de modo que pueda obtener una palabra de 16 bits alineada completa, lo que hace en un ciclo de bus. El 8088, que tiene un bus de datos externo de 8 bits, solo puede obtener un byte por ciclo de bus, por lo que esperar para obtener una palabra completa no tendría ningún beneficio y solo retrasaría, lo que reduciría la posibilidad de que el siguiente byte de instrucción ya esté en la búsqueda previa. cola cuando sea necesario.
  2. ^ ALU significa una de las instrucciones ADD, ADC, SUB, SBC, CMP, AND, 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 recuperar.
  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 de IBM Instruments.
  6. ^ A cambio de otorgarle a Intel los derechos de susdiseños de memoria de burbujas . 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 a los microprocesadores.
  7. ^ Los componentes 68000 no estaban ampliamente disponibles en ese momento, aunque podían usarcomponentes Motorola 6800 hasta cierto punto.

Referencias [ editar ]

  1. ^ Historia de la CPU - Museo de la CPU - Ciclo de vida de la CPU .
  2. ^ "iAPX 86, iAPX 88 manual del usuario" (PDF) .
  3. ^ "iAPX 86, 88, 186 microprocesadores parte I, cuaderno de taller" (PDF) . Junio ​​de 1984.
  4. ^ "Manual de referencia de 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 . New Age International. 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, resolució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. ^ The Israel Test , Encounter Books, 10 de octubre de 2013, George F. Gilder, página 100.
  10. ^ "Commodore agrega Hyperion, chips" . 17 de abril - 1 de mayo de 1984.
  11. ^ "Intel presenta MPU de 8 bits con arquitectura de 16 bits" . Computerworld . 14 de mayo de 1979. p. 71 . Consultado el 21 de noviembre de 2011 .
  12. ^ Intel Corporation, "Componentes de microcomputadora: Intel presenta el 8089 IOP, un procesador de E / S para la familia de CPU avanzada 8088/8086, el primero de una serie de nuevos componentes de subsistema", Intel Preview, mayo / junio de 1979, pág. 9.
  13. ^ a b Manual del procesador Osborne de 16 bits (Adam Osborne y Gerry Kane) ISBN 0-931988-43-8 . 
  14. ^ "Olympus MIC-D: Galería de circuitos integrados - Microprocesador Intel 8088" . Archivado desde el original el 19 de mayo de 2009.
  15. Freiberger, Paul (23 de agosto de 1982). "Bill Gates, Microsoft y la computadora personal de IBM" . InfoWorld . pag. 22 . Consultado el 29 de enero de 2015 .
  16. ^ 8086 Disponible para entornos industriales, Edición especial de Intel Preview: Soluciones de 16 bits, Intel Corporation, mayo / junio de 1980, página 29.

Enlaces externos [ editar ]

  • chipdb.org: hoja de datos de Intel para 8088
  • PCJS: simulación original de IBM PC que se ejecuta en su navegador web