Historia
En junio de 1978 Intel lanzó
al mercado el primer microprocesador de 16 bits: el 8086. En junio de
1979 apareció el 8088 (internamente igual que el 8086 pero con
bus de datos de 8 bits) y en 1980 los coprocesadores 8087 (matemático)
y 8089 (de entrada y salida). El primer fabricante que desarrolló
software y hardware para estos chips fue la propia Intel.
Reconociendo la necesidad
de dar soporte a estos circuitos integrados, la empresa invirtió
gran cantidad de dinero en un gran y moderno edificio en Santa Clara,
California, dedicado al diseño, fabricación y venta de
sus sistemas de desarrollo que, como se explicó anteriormente,
son computadoras autosuficientes con el hardware y software necesario
para desarrollar software de microprocesadores.
Los sistemas de desarrollo
son factores clave para asegurar las ventas de una empresa fabricantes
de chips. La inmensa mayoría de ventas son a otras empresas,
las cuales usan estos chips en aparatos electrónicos, diseñados,
fabricados y comercializados por ellas mismas. A estas empresas se las
llama "fabricantes de equipo original", o en inglés,
OEM (Original Equipment Manufacturer).
El disminuir el tiempo de
desarrollo de hardware y software para las OEM es esencial, ya que el
mercado de estos productos es muy competitivo. Necesitan soporte pues
los meses que les puede llevar el desarrollo de las herramientas apropiadas
les puede significar pérdidas por millones de dólares.
Además quieren ser los primeros fabricantes en el mercado, con
lo cual pueden asegurarse las ventas en dos áreas importantes:
a corto plazo, ya que al principio la demanda es mucho mayor que la
oferta, y a largo plazo, ya que el primer producto marca a menudo los
estándares.
De esta manera la empresa
Intel había desarrollado una serie completa de softwareque
se ejecutaba en una microcomputadora basada en el 8085 llamada "Intellec
Microcomputer Development System". Los programas incluían
ensambladores cruzados (éstos son programas que se ejecutan en
un microprocesador y generan código de máquina que se
ejecuta en otro), compiladores de PL/M, Fortran y Pascal y varios programas
de ayuda. Además había un programa traductor llamado CON
V86 que convertía código
fuente 8080/8085 a código fuente 8086/8088.
Este programa de conversión
sólo servía para no tener que volver a escribir los programas
en una primera etapa. Luego debería reescribirse el código
fuente en assembler para poder obtener las ventajas de velocidad ofrecidas
por el 8088.
Luego debía correr
el programa en la iSBC 86/12 Single Board Computer basado en el 8086.
Debido al engorro que resultaba tener dos placaas diferentes, la empresa
Godbout Electronics (también de California) desarrolló
una placa donde estaban el 8085 y el 8088, donde se utilizaba un ensamblador
cruzado provisto por la compañía Microsoft. Bajo control
de software, podían conmutarse los microprocesadores. El sistema
operativo utilizado era el CP/M (de Digital Research).
El desarrollo más notable para la familia 8086/8088 fue la elección
de la CPU 8088 por parte de IBM (International Business Machines) cuando
en 1981 entró en el campo de las computadoras personales.
Esta computadora se desarrolló bajo un proyecto con el nombre
"Acorn" (Proyecto "Bellota") pero se vendió
bajo un nombre menos imaginativo, pero más correcto: "Computadora
Personal IBM", con un
precio inicial entre 1260 dólares y 3830 dólares según
la configuración (con 48KB de memoria RAM y una unidad de discos
flexibles con capacidad de 160KB costaba 2235 dólares). Esta
computadora entró en competencia directa con las ofrecidas por
Apple (basado en el 6502) y por Radio Shack
(basado en el Z-80).
Arquitectura de los procesadores
8088 y 8086
El 8086 es un microprocesador de 16 bits, tanto en lo que se refiere
a su estructura como en sus conexiones externas, mientras que el 8088
es un procesador de 8 bits que internamente es casi idéntico
al 8086. La única diferencia entre ambos es el tamaño
del bus de datos externo. Intel trata esta igualdad interna y desigualdad
externa dividiendo cada procesador 8086 y 8088 en dos sub-procesadores.
O sea, cada uno consta de una unidad de ejecución (EU: Execution
Unit) y una unidad interfaz del bus (BIU:
Bus Interface Unit). La unidad de ejecución es la encargada de
realizar todas las operaciones mientras que la unidad de interfaz del
bus es la encargada de acceder a datos e instrucciones del mundo exterior.
Las unidades de ejecución son idénticas en ambos microprocesadores,
pero las unidades de interfaz del bus son diferentes en varias cuestiones,
como se desprende del siguiente diagrama en bloques:
La ventaja de esta división fue el ahorro de esfuerzo necesario
para producir el 8088. Sólo una mitad del 8086 (el BIU) tuvo
que rediseñarse para producir el 8088.
La explicación del diagrama en bloques es la siguiente:
Unidad aritmética y lógica
Es la encargada de realizar las operaciones aritméticas (suma,
suma con "arrastre", resta, resta con "préstamo"
y comparaciones) y lógicas (AND, OR, XOR y TEST). Las operaciones
pueden ser de 16 bits o de 8 bits.
Indicadores (flags)
Hay nueve indicadores de un bit en este registro de 16 bits. Los cuatro
bits más significativos están indefinidos, mientras que
hay tres bits con valores determinados: los bits 5 y 3 siempre valen
cero y el bit 1 siempre vale uno (esto también ocurría
en los procesadores anteriores).
Sistema de control de la unidad
de ejecución
Es el encargado de decodificar las instrucciones que le envía
la cola y enviarle las órdenes a la unidad aritmética
y lógica según una tabla que tiene almacenada en ROM llamada
CROM (Control Read Only Memory).
Cola de instrucciones
Almacena las instrucciones para ser ejecutadas. La cola se carga cuando
el bus está desocupado, de esta manera se logra una mayor eficiencia
del mismo. La cola del 8086 tiene 6 bytes y se carga de a dos bytes
por vez (debido al tamaño del bus de datos), mientras que el
del 8088 tiene cuatro bytes. Esta estructura tiene rendimiento óptimo
cuando no se realizan saltos, ya que en este caso habría que
vaciar la cola
(porque no se van a ejecutar las instrucciones que van después
del salto) y volverla a cargar con instrucciones que se encuentran a
partir de la dirección a donde se salta. Debido a esto las instrucciones
de salto son (después de multiplicaciones y divisiones) las más
lentas de este microprocesador.
Registros de la unidad de interfaz
con el bus
El programador puede acceder a cinco registros de 16 bits cada uno,
siendo cuatro de ellos registros de segmento y el restante el puntero
de instrucción (IP).
Los registros de segmento se llaman:
CS: Registro de segmento de código.
DS: Registro de segmento de datos.
ES: Registro de segmento extra.
SS: Registro de segmento de pila.
Lógica de control del
bus
El cometido de este bloque es poder unir los bloques anteriormente
mencionados con el mundo exterior, es decir, la memoria y los periféricos.
El 8088 tiene un bus de datos externo reducido de 8 bits. La razón
para ello era prever la continuidad entre el 8086 y los antiguos procesadores
de 8 bits, como el 8080 y el 8085. Teniendo el mismo tamaño del
bus (así como similares requerimientos de control y tiempo),
el 8088, que es internamente un procesador de 16 bits, puede reemplazar
a los microprocesadores ya nombrados en un sistema ya existente.
El 8088 tiene muchas señales en común con el 8085, particularmente
las asociadas con la forma en que los datos y las direcciones están
multiplexadas, aunque el 8088 no produce sus propias señales
de reloj como lo hace el 8085 (necesita un chip de soporte llamado 8284,
que es diferente del 8224 que necesitaba el microprocesador 8080). El
8088 y el 8085 siguen el mismo esquema de compartir los terminales correspondientes
a los 8 bits más bajos del bus de direcciones con los 8 bits
del bus de datos, de manera que se ahorran 8 terminales para otras funciones
del microprocesador. El 8086 comparte los 16 bits del
bus de datos con los 16 más bajos del bus de direcciones.
El 8085 y el 8088 pueden, de hecho, dirigir directamente los mismos
chips controladores de periféricos.
Las investigaciones de hardware para sistemas basados en el 8080 o el
8085 son, en su mayoría, aplicables al 8088. En todo lo recién
explicado se basó el éxito del 8088.
Pinout del 8088
Este microprocesador está encapsulado en el formato DIP (Dual
Inline Package) de 40 patas (veinte de cada lado). La distancia entre
las patas es de 0.1 pulgadas (2.54 milímetros), mientras que
la distancia entre patas enfrentadas es de 0.6 pulgadas (15.32 milímetros).
El 8086/8088 puede conectarse al circuito de dos formas distintas:
el modo máximo y el modo mínimo. El modo queda determinado
al poner un determinado terminal (llamado MN/MX) a tierra o a la tensión
de alimentación. El 8086/8088 debe estar en modo máximo
si se desea trabajar en colaboración con el Procesador de Datos
Numérico 8087 y/o el Procesador de Entrada/Salida 8089 (de aquí
se desprende que en la IBM PC el 8088 está en modo máximo).
En este modo el 8086/8088 depende de otros chips adicionales como el
Controlador de Bus 8288 para generar el conjunto completo de señales
del bus de control. El modo mínimo permite al 8086/8088 trabajar
de una forma más autónoma (para circuitos más sencillos)
en una manera casi idéntica al microprocesador 8085.
|