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. Sin embargo, los registros de 16 bits y el rango de direcciones de un megabyte no han cambiado. De hecho, según la documentación de Intel, el 8086 y el 8088 tienen la misma unidad de ejecución (EU) ; solo la unidad de interfaz de bus (BIU) es diferente. El 8088 se utilizó en el IBM PC original y en clones compatibles con IBM PC .
Historia y descripción
El 8088 fue diseñado en el laboratorio de Intel en Haifa , Israel (al igual que un gran número de procesadores de Intel) como una versión de menor costo del 8086. [ 9 ] El 8088 estaba dirigido a sistemas económicos al permitir el uso de una ruta de datos de ocho bits y chips periféricos y de soporte de ocho bits; las placas de circuito complejas aún eran bastante engorrosas y costosas cuando se lanzó. La cola de precarga del 8088 se acortó a cuatro bytes desde los seis bytes del 8086, y el algoritmo de precarga 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 superior a 5 MHz incluyen el 8088-2, fabricado con el nuevo proceso nMOS mejorado de Intel, denominado HMOS , y especificado para una frecuencia máxima de 8 MHz. Posteriormente, apareció el 80C88, un diseño CHMOS totalmente estático , que podía operar con velocidades de reloj de 0 a 8 MHz. También existieron otras variantes, más o menos similares, de otros fabricantes. Por ejemplo, el NEC V20 era una variante del 8088 compatible en pines y ligeramente más rápida (a la misma frecuencia de reloj), diseñada y fabricada por NEC . Los procesadores compatibles con el 8088 de NEC posteriores alcanzarían hasta 16 MHz. En 1984, Commodore International firmó un acuerdo para fabricar el 8088 para su uso en un clon de Dynalogic Hyperion con licencia , un movimiento que se consideró un importante cambio de rumbo para la compañía. [ 10 ] La versión CMOS disponible fue subcontratada a Oki Electronic Industry Co., Ltd. [ 11 ] Cuando se anunció, el precio de lista del 8088 era de US$124.80. [ 12 ] [ 13 ] La versión con encapsulado de plástico se introdujo en julio de 1981 por USD $14.10. Los precios citados son para cantidades de 100. [ 14 ] Intel subcontrató este microprocesador a Fujitsu Limited . [ 15 ]
Diferencias con respecto al 8086
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 en el 8086 con dos excepciones. Primero, el pin 34 ya no es BHE (este es el byte de selección de orden alto en el 8086; el 8088 no tiene un byte de orden alto en su bus de datos de ocho bits). [ 16 ] : 5–97 En cambio, emite un estado de modo máximo, SS0 . Combinado con las señales IO/ M y DT/ R , los ciclos del bus se pueden decodificar (generalmente indica cuándo una operación de escritura o una interrupción está en curso). El segundo cambio es que el pin que señala si se está realizando un acceso a memoria o un acceso de entrada/salida ha tenido su sentido invertido. El pin 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. [ 16 ] : 5–98
Actuación
Dependiendo de la frecuencia del reloj , el número de estados de espera de memoria , así como de las características del programa de aplicación en particular, el rendimiento promedio para el Intel 8088 osciló aproximadamente entre 0,33 y 1 millón de instrucciones por segundo . [ 17 ] Mientras tanto, las instrucciones y , que toman dos y tres ciclos respectivamente, arrojaron un rendimiento máximo absoluto de entre 1/3 y 1/2 MIPS por MHz, es decir, en algún lugar del 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 del bus de la CPU 8086 estaba bien equilibrada; con una combinación típica de instrucciones, un 8086 podía ejecutar instrucciones de la cola de precarga 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 vaciar rápidamente la cola de precarga de cuatro bytes. Cuando la cola está vacía, las instrucciones tardan tanto en completarse como en buscarse. 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 ciclos de reloj para transferir dos bytes, en el 8088 son cuatro ciclos de reloj por byte. Por lo tanto, por ejemplo, una instrucción de desplazamiento o rotación de dos bytes, que la EU tarda solo dos ciclos de reloj en ejecutarse, en realidad tarda ocho ciclos de reloj en completarse si no está en la cola de precarga. Una secuencia de instrucciones tan rápidas impide que la cola se llene tan rápido como se vacía, y en general, debido a que muchas instrucciones básicas se ejecutan en menos de cuatro ciclos de reloj por byte de instrucción —incluidas casi todas las instrucciones de la ALU y de movimiento de datos en operandos de registro y algunas de estas en operandos de memoria— es prácticamente imposible evitar que la EU del 8088 permanezca inactiva al menos 1/4 del tiempo mientras se ejecutan programas útiles del mundo real, y no es difícil que permanezca inactiva la mitad del tiempo. En resumen, un 8088 suele funcionar aproximadamente a la mitad de la velocidad de un 8086 con la misma frecuencia de reloj, debido al cuello de botella del bus (la única diferencia importante).
Un efecto secundario del diseño del 8088, con su bus lento y su pequeña cola de precarga, es que la velocidad de ejecución del código puede depender mucho del orden de las instrucciones. Al programar el 8088, para optimizar la eficiencia de la CPU, es fundamental intercalar instrucciones largas con instrucciones cortas siempre que sea posible. Por ejemplo, una operación de cadena repetida o un desplazamiento de tres o más posiciones tardará lo suficiente como para que la cola de precarga de 4 bytes se llene por completo. Si se colocan instrucciones cortas (es decir, de pocos bytes) entre instrucciones más lentas como estas, las cortas pueden ejecutarse a máxima velocidad desde la cola. Si, por otro lado, las instrucciones lentas se ejecutan secuencialmente, una tras otra, después de la primera, la unidad de bus se verá obligada a entrar en reposo porque la cola ya estará llena, con la consecuencia de que más adelante las instrucciones más rápidas sufrirán retrasos de búsqueda que podrían haberse evitado. Dado que algunas instrucciones, como los desplazamientos y rotaciones de una sola posición de bit, tardan literalmente cuatro veces más en obtenerse que en ejecutarse, [ c ] el efecto general puede ser una ralentización de un factor de dos o más. Si esos segmentos de código son los cuerpos de bucles, la diferencia en el tiempo de ejecución puede ser muy perceptible en la escala temporal humana.
El 8088 también es lento (al igual que el 8086) en el acceso 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 independiente para agregar un registro de segmento desplazado a la dirección de desplazamiento, pero la dirección efectiva de desplazamiento en sí misma siempre se calcula completamente en la ALU principal. Además, el acoplamiento débil de la EU y la BIU (unidad de bus) introduce una sobrecarga de comunicación entre las unidades, y el ciclo de transferencia del bus de cuatro ciclos de reloj no es particularmente eficiente. Compárese esto con el ciclo de bus de dos ciclos de reloj de la CPU 6502 y el ciclo de bus de tres ciclos de reloj del 80286 con segmentación que reduce el tiempo a dos ciclos para la mayoría de las transferencias. La mayoría de las instrucciones del 8088 que pueden operar tanto en registros como en memoria, incluidas las operaciones comunes de la ALU y de movimiento de datos, son al menos cuatro veces más lentas para operandos de memoria que para operandos solo de registro. Por lo tanto, los programas eficientes para 8088 (y 8086) evitan el acceso repetido a operandos de memoria siempre que sea posible, cargándolos desde la memoria a los 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, facilita esta estrategia. Cuando no hay suficientes registros para todas las variables que se necesitan a la vez, guardar registros insertándolos en la pila y recuperándolos es la forma más rápida de usar la memoria para ampliar los registros, ya que las instrucciones PUSH y POP de la pila son las operaciones de memoria más rápidas. Probablemente esto no sea cierto para el 80186 y posteriores; estos tienen ALU de direcciones dedicadas y realizan accesos a memoria mucho más rápido que el 8088 y el 8086.
Finalmente, debido a que las llamadas, los saltos y las interrupciones reinician la cola de precarga, y a que la carga del registro IP requiere comunicación entre la EU y la BIU (ya que el registro IP se encuentra en la BIU, no en la EU, 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 ejecuta, pero si se ejecuta, requiere 16 ciclos además de reiniciar la cola de precarga; por lo tanto, los saltos condicionales deben estar diseñados para no ejecutarse la mayor parte del tiempo, especialmente dentro de 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 los procesadores 8086 y 8088 anunciaban 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 (excepto las potencias de 2, para las que se pueden usar desplazamientos) se pueden realizar mucho más rápido usando subrutinas cortas dedicadas. Los procesadores 80286 y 80386 aumentan considerablemente la velocidad de ejecución de estas instrucciones de multiplicación y división. [ d ]
Selección para su uso en el IBM PC

El IBM PC original es el microordenador más influyente que utilizó el 8088. Tiene una frecuencia de reloj de 4,77 MHz (4/3 de la frecuencia de ráfaga de color NTSC ). Algunos ingenieros y otros empleados de IBM querían usar el procesador IBM 801 , otros 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 encontraban en ordenadores personales anteriores. Sin embargo, IBM ya tenía experiencia en el 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 ofreció un mejor precio para 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 modificado del 8085 , 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 alrededor del 8085 y procesadores similares (no exclusivamente de Intel), que ya eran bien conocidos por muchos ingenieros, lo que redujo aún más el costo. [ g ]
Entre los descendientes del 8088 se incluyen el 80188 , el 80186 , el 80286 , el 80386 , el 80486 y procesadores posteriores compatibles con software , incluidos los procesadores Intel Core , que son populares en la actualidad.
Galería

Plástico DIP40 8088, vista superior
Plástico DIP40 8088, vista inferior
Intel 80C88A-2, variante CMOS posterior
- ↑ Muestreo del cuarto trimestre de 1985
Periféricos
- Intel 8237 : controlador de acceso directo a memoria (DMA)
- Intel 8253 : temporizador de intervalo programable, 3 x 16 bits, máximo 10 MHz
- Intel 8255 : interfaz periférica programable, 3 pines de E/S de 8 bits utilizados para la conexión de impresoras, etc.
- Intel 8259 A: controlador de interrupciones programable
- Intel 8282 / 8283 : Latch de 8 bits
- Intel 8284 : generador de reloj
- Intel 8286 / 8287 : controlador bidireccional de 8 bits. Ambas versiones Intel I8286/I8287 (grado industrial) estaban disponibles por US$16,25 en cantidades de 100. [ 20 ]
- Intel 8288 : controlador de bus
- Intel 8289 : árbitro de bus
- Intel 8087 : Coprocesador matemático
Véase también
Notas
- ↑ En concreto, el cambio más evidente es que la unidad de bus del 8088 precargará un byte cuando pueda si al menos un byte de la cola está vacío; la unidad de bus del 8086 no precargará a menos que al menos dos de los seis bytes de la cola estén vacíos, de modo que pueda precargar una palabra completa alineada de 16 bits, lo que hace en un ciclo de bus. El 8088, al tener un bus de datos externo de 8 bits, solo puede obtener un byte por ciclo de bus, por lo que esperar a precargar una palabra completa no tendría ningún beneficio y solo retrasaría, reduciendo la probabilidad de que el siguiente byte de instrucción ya esté en la cola de precarga cuando se necesite.
- ↑ ALU significa una de las instrucciones ADD, ADC, SUB, SBC, CMP, AND, OR, XOR, TEST.
- ↑ En el 8088, una instrucción de desplazamiento con un conteo de desplazamiento implícito de 1, que puede ejecutarse en dos ciclos de reloj, tiene dos bytes de longitud y, por lo tanto, tarda ocho ciclos de reloj en obtenerse.
- ↑ 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.
- ↑ Posteriormente se utilizó para el ordenador de laboratorio de IBM Instruments .
- ↑ A cambio de ceder a Intel los derechos de sus diseños de memoria de burbuja . Sin embargo, debido a la feroz competencia de los fabricantes japoneses, que lograron reducir costos, Intel pronto abandonó este mercado y cambió su enfoque hacia los microprocesadores.
- ↑ Los componentes del 68000 no estaban ampliamente disponibles en ese momento, aunque podía utilizar componentes del Motorola 6800 hasta cierto punto.
Referencias
- ↑ Historia de la CPU – El Museo de la CPU – Ciclo de vida de la CPU .
- ↑ "Manual de usuario de iAPX 86, iAPX 88" (PDF) . Consultado el 5 de octubre de 2024 .
- ↑ "Microprocesadores iAPX 86, 88, 186, Parte I, Cuaderno de taller" (PDF) . Junio de 1984.
- ↑ "Manual de referencia del programador iAPX 286" (PDF) . 1983. página 1-1.
- ↑ "Guía de referencia rápida de microprocesadores" . Intel . Intel . Consultado el 1 de junio de 2019 .
- ↑ "Guía de referencia rápida de microprocesadores" . Intel . Intel . Consultado el 1 de junio de 2019 .
- ↑ Singh, Renu (2006). Interfaz y aplicaciones de microprocesadores . New Age International. págs. 2–27 . ISBN 81-224-1400-1. Consultado el 1 de junio de 2019 .
- ↑ Govindarajalu, B. (2002). IBM PC and Clones: Hardware, Troubleshooting and Maintenance (2.ª ed.). McGraw-Hill. p. 248. ISBN 978-0-07-048286-9. Consultado el 1 de junio de 2019 .
- ↑ Liebson, Steven. "Cómo el Intel 8088 obtuvo su bus" . Electronic Engineering Journal . Consultado el 4 de noviembre de 2025 .
- ↑ Cook, Karen (17 de abril - 1 de mayo de 1984). "Commodore añade Hyperion y chips" . PC Magazine . Vol. 1, n.º 8, pág. 52.
- ↑ Intel Corporation, "Noticia breve: Intel licencia a Oki para la versión CMOS de varios productos", Solutions, julio/agosto de 1984, página 1.
- ↑ "Intel lanza una MPU de 8 bits con arquitectura de 16 bits" . Computerworld . Vol. XIII, n.º 20. 14 de mayo de 1979. pág. 71. Consultado el 21 de noviembre de 2011 .
- ↑ 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ág. 9.
- ↑ Intel Corporation, "Noticias breves", Soluciones, julio/agosto de 1981, página 1
- ^ Intel Corporation, "NewsBits: Second Source News", Soluciones, enero/febrero de 1985, página 1
- 1 2 Manual del procesador Osborne de 16 bits (Adam Osborne y Gerry Kane) ISBN 0-931988-43-8.
- ↑ "Olympus MIC-D: Galería de circuitos integrados - Microprocesador Intel 8088" . Archivado del original el 19 de mayo de 2009.
- ↑ Freiberger, Paul (23 de agosto de 1982). "Bill Gates, Microsoft y la computadora personal de IBM" . InfoWorld . Vol. 4, n.° 33, pág. 22. Consultado el 29 de enero de 2015 .
- ↑ Ashborn, Jim; "Empaquetado avanzado: Un poco rinde mucho", Intel Corporation, Solutions, enero/febrero de 1986, página 2
- ↑ 8086 Disponible para entornos industriales, Intel Preview Special Issue: 16-Bit Solutions, Intel Corporation, mayo/junio de 1980, página 29.
Enlaces externos
- chipdb.org - Hoja de datos de Intel para el 8088
- PCJS: Simulación original de IBM PC que se ejecuta en tu navegador web.
- Microprocesadores Intel x86
- microprocesadores de 16 bits
- Introducciones relacionadas con la informática en 1979
- microarquitecturas X86
- Productos y servicios descontinuados en 1998.