CONCEPTOS Y FUNCIONALIDADES BÁSICAS
i.
Diagrama a Bloques de un Microprocesador.
ii.
Reloj.
iii.
Longitud de la Palabra.
iv.
Arquitectura.
v.
Coprocesador.
vi.
Arquitectura de Procesadores: CISC / RISC.
i.
Unidad Aritmético Lógica. (ALU)
ii.
Registros Internos.
1.
Contador
de Programa.
2.
Acumulador.
3.
Registro
de Status o Señalizadores.
4.
Registros
de propósito General.
5.
Registro
Índice.
6.
Registro
de puntero de Pila.
i.
Bus.
ii.
Comunicación del Microprocesador.
1.
Líneas
de Datos.
2.
Líneas
de Dirección.
3.
Líneas
de Control.
iii.
Unidad de Control (UC).
iv.
Control de Interrupciones.
v.
Uso de las Interrupciones.
vi.
Ventajas y desventajas de las interrupciones.
vii.
Tipos de Interrupciones.
viii.
Respuesta a una interrupción.
ix.
Polling.
i.
Tipos de Conexión.
ii.
Valorización del Rendimiento de un Microprocesador.
iii.
Microprocesadores de 8 Bits.
1.
Introducción.
2.
Características
generales Intel 8085.
3.
Terminales
(PINOUT) del 8085.
4.
Puntero
de Pila.
5.
Unidad
Aritmético lógica.
6.
Registro
de Instrucción y Decodificador.
7.
Generador
Interno de Reloj.
8.
Interrupciones.
9.
Control
de Entrada / Salida Serie.
10.
Reinicio
e interrupción.
11.
Conjunto
de Instrucciones del 8085.
iv.
Microprocesadores de 16 Bits.
1.
Los
Microprocesadores 8086 y 8088.
2.
Historia
del 8086 / 8088.
3.
Arquitectura
de los procesadores 8086 y 8088.
4.
Registros
de uso General del 8086 y 8088.
5.
Unidad
Aritmética Lógica.
6.
Indicadores
(FLAGS).
7.
Sistema
de Control de la Unidad de Ejecución.
8.
Cola
de Instrucciones.
9.
Registros
de la Unidad de Interfaz con el Bus.
MODULO II
UNIDAD CENTRAL DE PROCESO
CONCEPTOS Y FUNCIONALIDADES BÁSICAS
Los PC’s están constituidos por los siguientes dispositivos:
Todos ellos se comunican entre sí por medio de buses y ejecutan sus funciones específicas sincronizados por un reloj.
Es el componente encargado de llevar a cabo el proceso de la información y regular la actividad de todo el sistema del ordenador. Está formada por una unidad de control que lee, interpreta y realiza las instrucciones del programa en ejecución, una unidad aritmético-lógica que ejecuta las operaciones lógicas y aritméticas, y una zona de registros o zonas de almacenamiento donde se guardan los datos que se están procesando. La unidad central de proceso suele denominarse con las siglas CPU (Central Process Unit) o UCP (Unidad Central de Proceso), procesador o microprocesador.
Las unidades centrales de proceso se caracterizan principalmente por la tecnología empleada (CISC o RISC), la longitud de la palabra de datos en bits, la utilización de coprocesadores y por la frecuencia de reloj en MHz.
DIAGRAMA A BLOQUES DE UN MICROPROCESADOR
Microcomputadora en una
pastilla
Figura 1.- Diagrama de bloques de un microprocesador y de
una microcomputadora en una pastilla
RELOJ
El ordenador posee un funcionamiento síncrono gobernado por un reloj, de tal manera que el tratamiento de la información se realiza con arreglo a una secuencia ordenada de operaciones en el tiempo.
El reloj genera los impulsos eléctricos que permiten sincronizar las operaciones, esto es, marca el principio, la duración y el final de cada operación. El número de impulsos generados se mide en Megahertzios (MHz) que indica el número de millones de pulsos generados por el reloj en un segundo.
La frecuencia de reloj determina la velocidad en la transferencia de un dato entre dos dispositivos conectados al mismo bus (por ejemplo, lectura de una palabra de memoria por parte de la UCP). Para la transferencia completa de un dato pueden ser necesarios varios ciclos de reloj, en cada uno de los cuales son ejecutadas las operaciones más elementales que conforman dicha transferencia.
El incremento de la velocidad de proceso en los ordenadores personales se ha conseguido gracias a la utilización de los últimos avances tecnológicos. Con el empleo de la tecnología VLSI (Very Large Scale Integration, Integración a Escala Muy Grande) disminuyen los costes asociados a todos los circuitos electrónicos.
LONGITUD DE LA PALABRA DE DATOS
La longitud de la palabra de datos determina la cantidad de información que es capaz de procesar simultáneamente la unidad central de proceso en cada pulso de reloj. Se mide en bits. A mayor longitud de palabra mayor complejidad y circuitería necesaria en la UCP, pero mayor potencia de proceso.
El conjunto de registros que
constituyen un sistema en particular y las transferencias de datos que sean
posibles entre ellos forman la arquitectura del sistema. Los tipos de registro
en el microprocesador y las posibles transferencias de datos entre ellos
determinan la arquitectura del microprocesador.
Casi todos los
microprocesadores contienen como mínimo lo siguiente:
1.
Unidad aritmético y lógica (ALU).
2.
Varios registros.
3.
Contador de programa
4.
Circuitería de decodificación de
instrucciones.
5.
Sección de control y
temporización.
6.
Cerrojos y buffers de datos.
7.
Líneas de control y buses
internos.
8.
Varias entradas y salidas de
control.
Además de estos elementos,
una pastilla microprocesadora puede contener también algunas de las unidades funcionales
siguientes:
1.
Memoria ROM.
2.
Memoria RAM.
3.
Puertos de entrada/salida serie.
4.
Circuitería de reloj interna.
5.
Temporizadores programables.
6.
Circuitería de arbitración de
prioridad de interrupciones.
7.
Lógica de interfaz de comunicación
de E/S serie a paralelo.
8.
Lógica de control de acceso
directo a memoria.
COPROCESADOR
La arquitectura de un PC también puede contar con coprocesadores. Estos son microprocesadores especializados en la ejecución de determinados cálculos, que descargan de estas funciones a la unidad central de proceso. Su necesidad depende de la complejidad de las aplicaciones que van a ser ejecutadas.
ARQUITECTURAS DE PROCESADORES: CISC / RISC
La arquitectura CISC (Complex Instruction Set Computer) se caracteriza por disponer de un grupo muy amplio de instrucciones muy complejas y potentes. Es más antigua que la arquitectura RISC y por tanto su diseño está marcado por la tecnología existente en los años 60.
En las primeras arquitecturas los ordenadores tendían a aumentar su potencia a base de ampliar su repertorio de instrucciones y de añadir instrucciones más potentes. El hecho de que el tiempo de ejecución de una instrucción fuera de varios ciclos de reloj no representaba un problema puesto que las velocidades de la memoria de control eran muy superiores a las velocidades de la memoria principal. Así, aunque el proceso de las microinstrucciones se completase en un ciclo de reloj, no se podría continuar con el proceso de la siguiente instrucción inmediatamente, ya que estaría alojada en la memoria principal, de velocidad mucho más lenta que la memoria de control.
En los años 70, las mejoras tecnológicas permitieron tener velocidades en la memoria principal similares a la memoria de control, lo que hizo posible trabajar con instrucciones simples (que se completan en un ciclo de reloj) y por tanto acelerar considerablemente la ejecución de instrucciones (nada más terminar la ejecución de todas las microinstrucciones se empieza con la ejecución de la siguiente instrucción).
Esta arquitectura, denominada RISC (Reduced Instruction Set Computer), se caracteriza por poseer un juego de instrucciones lo más reducido posible con un porcentaje alto de ellas que se completan en un ciclo de reloj. Si hubiese que ejecutar alguna instrucción compleja, necesitaría más de un ciclo de reloj, pero la mayor parte de ellas se pueden realizar a partir de operaciones fundamentales. Por otra parte, es una constatación estadística que la potencia práctica de un ordenador reside en un conjunto pequeño de su repertorio de instrucciones, con lo cual si se reduce dicho repertorio se sigue conservando la potencia del ordenador, y disminuye la complejidad del diseño y el coste.
Para ejecutar una tarea se necesitan más instrucciones en RISC que en CISC, ya que en RISC las instrucciones son más elementales. Pero el hecho de tener actualmente unos mecanismos rápidos de acceso a memoria, buses de alta velocidad y compiladores especializados en estas arquitecturas, hace que los ordenadores RISC obtengan en general unos mejores rendimientos.
Ahora bien, algunas de las formas tradicionales de medir el rendimiento, como es el número de MIPS, no son adecuadas para comparar el rendimiento de máquinas CISC y RISC. Esto se debe a que los MIPS dan la cantidad de millones de instrucciones por segundo que desarrolla una máquina, pero no tienen en cuenta la potencia de esas instrucciones. Por el propio diseño de la arquitectura RISC, estas máquinas tienden a desarrollar más MIPS que las CISC.
2. UNIDADES CENTRALES
Las unidades centrales de proceso empleadas en los PCs pertenecen mayoritariamente a la familia Intel o compatibles (AMD, Cyrix o IDT). La familia Intel constituye el punto de referencia obligado para los otros fabricantes cuyos productos deben demostrar su compatibilidad con Intel. Todas ellas se basan en tecnología CISC y poseen una longitud de palabra de datos de 32 bits. La más reciente familia de microprocesadores Intel se compone de los modelos siguientes:
Modelo |
Velocidades Alcanzadas
(Mhz) |
Tecnología empleada |
486SX |
16,
25, 33 |
1
micra |
486SX2 |
50 |
1
micra |
486DX |
25,
33, 50 |
1
micra |
486
DX2 |
50,
66 |
1
micra |
486
DX4 |
75,
100 |
0.8
micras |
486SL |
16 |
1
micra |
Pentium |
60,
66, 90, 100, 120, 133, 150, 166, 200 |
0.8,
0.6, 0.35 micras |
Pentium
MMX |
150,
166, 200, 233 |
0.35
micras |
Pentium
Pro |
150,
155, 180, 200 |
0.6,
0.35 micras |
Pentium
II |
233,
266, 300, 333, 350, 400 |
0.35,
0.25 micras |
La familia de procesadores 486 vieron la luz en abril de 1989, y enterraron la antigua familia 386, al incorporar novedades como la memoria cache de primer nivel, de 8 o 16 KB, que aumentaban considerablemente las prestaciones del procesador. Dicha cache se encuentra incluída dentro del propio procesador.
Las unidades centrales de proceso 486DX y 486SX se diferencian por la existencia de un coprocesador matemático integrado en la primera y, por tanto, en sus prestaciones referidas a cálculo matemático.
El procesador 486DX2 es equivalente a el 486DX pero se caracteriza por incorporar una tecnología que duplica la frecuencia interna de reloj, esto es, la unidad central de proceso realiza las operaciones al doble de velocidad que el resto de componentes del sistema aumentando notablemente las prestaciones del ordenador.
La unidad central de proceso 486DX4 es análoga al 486DX pero internamente triplica la frecuencia de reloj, es decir, los componentes externos a la unidad central de proceso trabajan tres veces más lento que ésta. En la práctica constituye el procesador más rápido de la gama 486.
El procesador 486SL es una versión del 486DX que se caracteriza por haber sido específicamente diseñado para su utilización en ordenadores portátiles, cuidando sus necesidades especiales de baja potencia y ahorro de energía.
El salto en la velocidad del procesador sucedido con la aparición de los microprocesadores DX4 tuvo relación directa con el cambio en la tecnología de fabricación de los microprocesadores: hasta entonces, la tecnología empleada era de 1 micra, pero en estos nuevos procesadores se comenzó a emplear la tecnología de 0.8 micras, que proporcionó una mayor integración del chip, al poder incluir éste un mayor número de transistores, y también un notable aumento en la velocidad del procesador, como consecuencia de emplear una tecnología más evolucionada.
Una característica importante de la familia 486 de Intel es la capacidad de actualización de la unidad central de proceso mediante el denominado OverDrive, cuyo nombre identifica indistintamente al zócalo vacío que el fabricante puede incluir en la placa base como al procesador que se puede insertar en dicho zócalo. Esta facilidad resulta altamente recomendable pues permite aumentar la vida útil del ordenador.
El Pentium, aparecido en marzo de 1993, fue el procesador que significó un salto cualitativo en velocidad y prestaciones dentro la familia Intel. Su novedoso diseño le posibilitaba la ejecución de hasta dos instrucciones por ciclo de reloj. Se trata de un procesador con una longitud de palabra de datos externa de 64 bits e interna de 32, que incluye una memoria cache de primer nivel de 16 KB. Las primeras versiones continuaban empleando la tecnología de 0.8 micras, lo que posibilitó al Pentium llegar a la velocidad de 100 Mhz, pero el paso a las 0.6 micras permitió alcanzar velocidades de hasta 150 Mhz. Finalmente, un nuevo salto a la tecnología de 0.35 micras permitió al Pentium alcanzar los 200 Mhz.
A continuación se presenta el índice ICOMP para algunos de los procesadores de la familia Intel. El índice ICOMP evalúa las prestaciones del procesador para poder establecer comparaciones y no refleja el diseño de un equipo en particular :
En noviembre de 1995 apareció el Pentium Pro, desarrollado inicialmente con tecnología de 0.6 micras, y con las velocidades de 150 y 166 Mhz. Su principal novedad fue la inclusión de una memoria cache de segundo nivel de 256KB o de 512KB dentro del propio procesador, que alcanza la misma velocidad que el procesador, lo que le permitia superar ampliamente las prestaciones ofrecidas por su hermano pequeño, el Pentium, que aunquetambién suele contar con una cache de este tipo, se tiene que situar fuera del procesador, por lo que no alcanza la velocidad de éste, y su velocidad es del bus, normalmente de 66 Mhz.
Pero en enero de 1997, Intel sacó el mercado nuevos procesadores Pentium que incluían la tecnología que ha supuesto el más significativo avance en el campo de los procesadores en los últimos años: la tecnología MMX. Esta tecnología consiste en 57 nuevas instrucciones de procesador que permiten un rendimiento en el campo multimedia y en las comunicaciones bastante superior, ofreciendo además otra serie de posibilidades. De esta manera, Intel consiguió abrirse camino dentro del creciente campo de la multimedia. Estos procesadores, llamados Pentium MMX, han alcanzado velocidades de 166, 200 y 233 Mhz. Además, cuentan con una cache de primer nivel de 32 KB, lo cual les proporciona una ventaja adicional respecto a los Pentium convencionales, llegando incluso a superar las prestaciones del Pentium Pro a 150 y 166 Mhz.
La aparición de la tecnología MMX, y el alto coste que produce incluir la cache de segundo nivel dentro del procesador, jubiló anticipadamente a los Pentium Pro, dando lugar a la aparición, en mayo de 1997, del Pentium II, que ya incluye la tecnología MMX. Además cuenta con una novedosa arquitectura de bus, llamada "Arquitectura de doble bus independiente", que resuelve el problema del alto coste de la cache de segundo nivel. Dentro de la carcasa del Pentium II hay dos buses: uno se comunica con el bus del sistema, mientras que el otro se comunica con la memoria cache de segundo nivel, de 512 KB, que se encuentra fuera del propio procesador pero dentro de carcasa que envuelve a éste. Este segundo bus alcanza la mitad de la velocidad del procesador, con lo que se consiguen unas prestaciones muy buenas, reduciendo los costes de producción. Los Pentium II, fabricados con tecnología de 0.35 micras, alcanzan una velocidad de hasta 300 Mhz. Además, la novedosa tecnología empleada en la fabricación del Pentium II le permite ejecutar hasta 3 instrucciones por ciclo de reloj.
A continuación se presenta un esquema de la Arquitectura de Doble Bus del Pentium II:
En Enero de 1998 aparece el primer procesador fabricado con tecnología de 0.25 micras, el Pentium II con velocidad de 333 Mhz. En abril de 1998 aparecen los Pentium II a 350 y 400 Mhz, también fabricados con tecnología de 0.25 micras. Dicha tecnología es la actualmente la mejor disponible en el mercado, pudiéndose llegar con ella a velocidades de 500 Mhz. También aparece el procesador Celeron a 266 Mhz, versión reducida del Pentium II que no contiene cache de segundo nivel, a costa de un menor coste de fabricación.
A continuación se presenta el índice ICOMP 2.0. ( versión modificada del índice ICOMP que contempla las novedades de los últimos procesadores) para algunos de los procesadores Pentium, Pentium MMX, Pentium Pro, PentiumIIy Celeron de la familia Intel:
Aparte de Intel, existe otras tres compañías que fabrican procesadores para el mundo de los PC compatibles: AMD, Cyrix e IDT.
AMD tiene en su serie de procesadores más recientes el AMD K5, que proporciona unas prestaciones y características similares a las del Pentium clásico. Del K5 existen los modelos PR75, PR90, PR100, PR120, PR133 Y PR166. Los números que aparecen en el modelo del procesador indican que las prestaciones ofrecidas por el procesador son similares a las del Pentium de Intel que funciona a dicha velocidad, es decir, dichos modelos no alcanzan esta velocidad de reloj sino que es un poco inferior. Señalar que estos modelos llevan una cache de primer nivel de 24 KB frente a los 16 KB del Pentium. A continuación aparece el AMD K6, del cual existen tres modelos: K6 a 166 Mhz, a 200 Mhz y a 233 Mhz. En este caso sí que se trata de la auténtica velocidad de reloj. Se trata de procesadores similares al Pentium II,que llevan incluídas el conjunto de instrucciones MMX, si bien su rendimiento es menor a su equivalente en velocidad de reloj. Como contrapartida, su precio es mucho más asequible. Por último, el procesador de más reciente aparición en el mercado es el AMD K6 3D, con modelos a 300 y 350 Mhz que incorporan un nuevo conjunto de instrucciones para acelerar los gráficos 3D, multimedia, etc.
Respecto a Cyrix, se pueden encontrar los 6x86L, equivalentes a los Pentium, si bien sólo alcanzan hasta los 120 Mhz; los 6x86MX, equivalentes a los Pentium II, de los que existe los modelos PR166, PR200 y PR233, si bien tampoco se trata de la velocidad real, sino de la comparación con las prestaciones ofrecidas por los procesadores de Intel a dicha velocidad. Por otro lado aparece el revolucionario procesador MediaGX a 200 Mhz, que integra al propio procesador, un chip de sonido, un chip gráfico, el controlador de memoria y el conjunto de chips que controlan el bus PCI. Con ello se consigue que los gráficos y el sonido se procesen a la velocidad del procesador y no a la del bus, a la vez que permiten que la construcción de ordenadores a partir de este procesador sea mucho más económica.
Por último aparece IDT, empresa que aparece en el mercado en 1997, que cuenta con un procesador llamado C6, de 225 y 240 Mhz, similar al Pentium MMX, que no alcanza las prestaciones de éste, pero cuyo precio es mucho más económico, y con el procesador C6+, fabricado con tecnología de 0.25 micras, que cuenta con una velocidad de 300 Mhz, un conjunto de instrucciones 3D y una cache de segundo nivel de 256 KB dentro del chip, con lo que sus prestaciones se acercan a las del correspondiente Pentium II de Intel, contando con la ventaja del precio mucho más económico.
Los Macintosh emplean dos modelos de unidades centrales de proceso: la familia PowerPc y la familia Motorola.
La familia PowerPc se compone hasta el momento de la unidad central de proceso 601, que está constituido por un bus de 32 bits y trabaja a frecuencias de 60, 66 y 80 MHz; la 602 con velocidades de hasta 200 Mhz, y la unidad 603, con bus de 64 bits y que alcanza hasta los 275 Mhz. Esta unidad central de proceso utiliza tecnología RISC y su principal virtud es su gran velocidad de proceso, pudiendo ejecutar hasta tres instrucciones por ciclo de reloj. Aunque la aparición de la unidad central de proceso PowerPc es muy reciente, es de esperar que paulatinamente vaya incrementando su penetración en el mercado dadas sus elevadas prestaciones.
En cuanto a la familia Motorola su gama se compone por los modelos 68030 (16, 25 MHz), 68040 (25, 33 MHz), 68050 (33, 50, 66 Mhz), 68060 (75, 90, 100, 120, 150 Mhz), 68070 (166, 200, 233, 266 Mhz) y 68080 (hasta los 400 Mhz). Son procesadores CISC con 32 bits de longitud de palabra de datos, en el caso de los modelos 68030, 68040, y de 64 bits en el resto.
La selección del procesador más adecuado en cada caso dependerá tanto de la naturaleza de las aplicaciones a explotar (orientada a las necesidades de unidad central de proceso, de entrada/salida, etc.) como del modo de operación del equipo en cuestión (modo monousuario versus multiusuario, multitarea, etc.). Sobre estos puntos se tratará en los apartados de análisis de necesidades y factores relevantes en el proceso de adquisición.
UNIDAD ARITMÉTICO-LÓGICA (ALU)
La unidad aritmética y lógica, llamada también unidad de cálculo, es la encargada de efectuar el conjunto de operaciones con las que está dotado el ordenador. Se compone de registros y de un conjunto de circuitos lógicos responsables de realizar las operaciones lógicas y aritméticas prefijadas desde la etapa de diseño del ordenador.
Las operaciones aritméticas
o lógicas en uno o dos operandos constituyen las transformaciones básicas de
datos implementadas en un microprocesador.
El microprocesador contiene
una unidad aritmética y lógica, ALU,
para dicho fin. Uno de los dos registros de la ALU, el acumulador, contiene un operando; el otro, un registro temporal,
contiene el segundo. El resultado de una operación aritmética o lógica se
coloca en el acumulador al final de la operación, reemplazando a uno de los
operandos originales.
La ALU es capaz de realizar
las siguientes operaciones en datos binarios:
1.
Suma y resta binaria.
2.
AND, OR, EX – OR lógico.
3.
Complemento.
4.
Rotación a la izquierda o a la derecha.
La ALU contiene también un
cierto número de biestables llamados flags,
que contienen información relativa al resultado de la operación aritmética o
lógica. Reunidos, dichos flags constituyen el registro de flags. Por ejemplo, un flag indica si tuvo un acarreo
del bit más significativo después de una operación de suma; otro flag indica
que el resultado del acumulador después de alguna operación aritmética o lógica
es cero. La mayoría de los microprocesadores contienen varios flags.
En muchas aplicaciones es
apropiado representar datos en decimal codificado en binario, BCD. La ALU
mostrada contiene lógica adicional para ajustar los resultados de operaciones
de suma cuando los operandos son interpretados como datos BCD.
REGISTROS INTERNOS
Los registros internos son unidades de almacenamiento temporal dentro de la CPU. Algunos de ellos tienen usos específicos, mientras que otros son de propósito general.
Contador de Programa.
El contador de programa (PC) es el registro que contiene la dirección de la siguiente instrucción del programa. La longitud del contador de programa es igual que la anchura del bus de direcciones. El contador de programa normalmente contiene 16 bits en los microprocesadores de 8 bits pero es mayor en la MPU de 16 y 32 bits.
Acumulador.
El acumulador es el registro o registros
asociados a las operaciones de al ALU y a veces a las operaciones de E/S. Puede
ser de 8,16 o 32 bits. Las MPU del 8080/8085,6800 y 6502 tienen todas
acumuladores de 8 bits. Algunos procesadores (68000 y Z8000) tienen sólo
registros de propósito general que pueden ser utilizados como acumuladores.
Registro de Status O Señalizadores.
El registro de status está
en todos los microprocesadores. Los bits individuales del registro se denominan
señalizadores. Las condiciones de los
señalizadores se asocian, generalmente, a las operaciones de la ALU y son
utilizados por instrucciones de bifurcación posteriores para tomar decisiones.
Registros de Propósito General.
Los registros de propósito
general pueden utilizarse para almacenar datos temporalmente o para que
contengan una dirección. No tienen asignada ninguna tarea específica. En los
microprocesadores de 8 bits, los registros de propósito general no pueden
funcionar como un acumulador en la ALU y en operaciones de E/S. Sin embargo,
las MPU de 16 bits habitualmente permiten que los registros de propósito
general se utilicen como acumuladores.
Registro Índice.
El registro índice se
utiliza para que contenga la dirección de un operando cuando se utiliza el modo
de direccionamiento indexado (8080/8085,6800,6502,Z80,8086). Los registros de
propósito general son utilizados como registros índice en los microprocesadores
Z8000 y 68000.
Registro del Puntero de Pila.
El puntero de pila (SP) es un registro
especializado que sigue la pista de la siguiente posición de memoria disponible
en la pila. La pila es un área reservada de la RAM utilizada para
almacenamiento temporal de datos, direcciones de vuelta y contenido de
registros. La pila se utiliza durante las llamadas a subrutina y durante las
interrupciones.
BUSES, UNIDAD DE CONTROL, POLLING E INTERRUPCIONES
BUS
Entre los componentes básicos que definen la estructura de un ordenador hay que incluir el bus. Constituye el medio físico a través del cual se comunican entre sí todos los componentes de un ordenador. Su capacidad y rendimiento deben estar en correspondencia con la demanda de servicio que realizan los componentes a él conectados, tales como la unidad central de proceso, la memoria, etc.
Un bus se puede caracterizar desde el punto de vista tecnológico por varios factores, de los cuales los más significativos son su longitud de palabra de datos, el protocolo de arbitrio y su velocidad de transferencia en MegaBytes/s.
El bus de datos original de los primeros PCs es la arquitectura ISA (Industry Standard Architecture) que maneja palabras de 16 bits y posee una velocidad de transferencia de 10 MB/s. Esta arquitectura constituye la base de la mayoría de los equipos instalados aunque puede ocasionar cuellos de botella cuando se trata de dar servicio a periféricos de alta velocidad como por ejemplo al sistema gráfico.
La solución a este problema ha sido abordada desde varias alternativas. La primera es la denominada arquitectura EISA (Extended Industry Standard Architecture) que está constituida por un bus de 32 bits, proporciona una velocidad de transferencia de 33 MB/s y mantiene plena compatibilidad con las tarjetas ISA. Aún siendo tres veces más rápida que la arquitectura ISA, su rendimiento es inferior a la demanda de servicio realizada por el sistema gráfico, por lo que su presencia prácticamente se reduce a servidores de red de área local como segundo bus de baja velocidad.
La arquitectura MCA (Micro Channel Architecture) está también constituida por un bus de 32 bits y una velocidad de transferencia de 40 MB/s. Esta arquitectura posee como principal inconveniente la incompatibilidad absoluta con la arquitectura ISA. Ello significa una amenaza potencial a las inversiones realizadas previamente en tarjetas de ampliación. En la actualidad su utilización es residual en la línea de equipos PS/2 de IBM.
Otra posible solución ha sido propuesta bajo el nombre de VL-Bus (Vesa Local Bus), que utiliza un bus de 32 bits y ofrece una velocidad de transferencia de 132 MB/s. Esta solución presenta la ventaja de sus elevadas prestaciones a cambio de soportar un número pequeño de periféricos y ser dependiente de la unidad central de proceso utilizada. La solución adoptada mayoritariamente por los fabricantes consiste en la utilización de esta arquitectura para los componentes más rápidos del ordenador, tales como el sistema gráfico y el sistema de almacenamiento en disco, y el empleo de la arquitectura ISA para dar servicio a los periféricos más lentos. Esta arquitectura soluciona eficazmente los problemas más críticos de la arquitectura ISA y resuelve las necesidades actuales en cuanto a potencia y rendimiento del ordenador.
La quinta alternativa, denominada arquitectura PCI (Peripheral Component Interconnect) está también constituida por un bus de 32 bits con velocidad de transferencia de 33 Mhz en sus primeras versiones, y de 64 bits con 66 Mhz de velocidad en las más actuales, . La arquitectura PCI presenta como principales ventajas sus elevadas prestaciones, la configuración automática de periféricos y su independencia con respecto a la unidad central de proceso utilizada. El enfoque adoptado por los fabricantes es similar al utilizado en la arquitectura VL-Bus: conectan al bus PCI los componentes más rápidos del ordenador y emplean la arquitectura ISA para dar servicio a los periféricos más lentos. Esta arquitectura ha sido diseñada para trabajar con unidades centrales de proceso de altas prestaciones (Pentium, PowerPc, etc.) y ha conseguido el respaldo de los grandes fabricantes de ordenadores.
En la práctica la arquitectura VL-Bus domina los equipos basados en 486 mientras que la arquitectura PCI constituye la base de la mayoría de equipos basados en Pentium y Pentium II.
La asociación de fabricantes PCMCIA (Personal Computer Memory Card International Association) ha desarrollado un bus de 32 bits que presenta, como principales ventajas, la capacidad de configuración automática de los periféricos y la posibilidad de insertar o extraer tarjetas del equipo sin necesidad de apagarlo, pero al mismo tiempo adolece de inconvenientes potenciales en cuanto a posibilidad de intercambio de tarjetas entre equipos de distintos fabricantes. La arquitectura PCMCIA se diseñó por requisito exclusivo de la industria de ordenadores portátiles y hoy en día es el estándar de este tipo de ordenadores. Existen distintos tipos de tarjetas PCMCIA dependiendo de su grosor: tipo I (3,3 mm), tipo II (5 mm) y tipo III (10,5 mm). Lo más conveniente en un portátil es que posea el mayor número posible de ranuras del tipo III, pues en ellas se podrá conectar cualquier tarjeta PCMCIA.
Los Macintosh utilizan la denominada arquitectura NUBUS, que está constituida en torno a un bus de 32 bits y presenta como principal ventaja la incorporación de una ranura de expansión denominada PDS (Processor Direct Slot) que permite la comunicación directa con la unidad central de proceso.
Sin embargo, hay que tener en cuenta que el bus del puerto de vídeo funciona a 33 Mhz, con lo que sólo puede alcanzar una velocidad de transferencia de 133 MB/s, cantidad que se alcanza fácilmente con una aplicación de elevada potencia gráfica.. Para solucionar este problema, se ha desarrollado un nuevo bus denominado AGP (Puerto Gráfico Acelerado), empleado exclusivamente para el puerto de vídeo, pues son las aplicaciones gráficas las que mayor uso hacen del bus. Una ventaja del puerto AGP es que libera al bus PCI de todas las tareas gráficas, aumentando de esta manera el ancho de banda del resto de periféricos que utilizan dicho bus. El estándar AGP se basa en las especificaciones del propio estándar PCI, pudiendo acogerse a tres formatos distintos, mediante los que se obtienen distintas velocidades:
Especificación |
Velocidad de bus equivalente |
Velocidad de transferencia alcanzada |
Transferencias de datos x ciclo de reloj |
AGP
1X |
66
Mhz |
266
MB/s |
1 |
AGP
2X |
133
Mhz |
533
MB/s |
2 |
AGP
4X |
266
Mhz |
1066 MB/s |
4 |
Teniendo en cuenta que el bus AGP (al igual que el PCI) es capaz de procesar 4 bytes de información de forma simultánea, y que la velocidad del bus AGP es de 66 Mhz, se comprueba que el estándar AGP 4X puede alcanzar la velocidad de 66Mhz x 4 bytes x 4 transferencias = 1066 MB/s, cantidad muy superior a los 533 MB/s que puede gestionar el resto de bus del sistema, de 64 bits a 66 Mhz.
El esquema de funcionamento del bus, incorporado el nuevo bus AGP es el siguiente:
Durante 1998 se han desarrollado nuevos buses que alcanzan los 100 Mhz, con los que la velocidad de transmisión de datos del ordenador llega hasta los 800 MB/s, aún insuficiente para alcanzar los 1066 MB/s del estándar AGP 4X.
A continuación se presenta un gráfico que muestra la evolución de la arquitectura y velocidad del bus en los ordenadores montados en la era del Pentium (1995-1997) y en la era del Pentium II (a partir de 1998).
Merece una mención aparte el USB (Universal Serial Bus), mediante el cual se pretende la desaparición de los puertos de conexión en serie, en paralelo, el puerto del ratón, teclado, etc. Este bus permite conectar hasta 128 periféricos, que serán reconocidos automáticamente por los sistemas operativos que soporten este estándar. Con este bus se facilita la conexión de los distintos periféricos que pueden conectarse a la placa de un ordenador personal.
COMUNICACIÓN DEL MICROPROCESADOR
Un microprocesador se
comunica con los otros circuitos del sistema a través de grupos de líneas de
interconexión o buses de interconexión. Con base en el tipo de información que
conducen, las líneas de interconexión se pueden agrupar en tres buses: datos,
direcciones y control.
Líneas de Datos.
Los microprocesadores
transfieren datos e instrucciones entre la MPU y memoria (o E/S) vía un bus de
datos bidireccional. El 6800, 6502, Z80 y 8088 son procesadores que utilizan
buses externos de datos de 8 bits. Muchos miembros de la familia 8080
multiplexan direcciones o información de control en las líneas de datos parte
del tiempo.
Líneas de Dirección.
Los microprocesadores más
antiguos (8080/8085,6800,6502) utilizan buses de dirección de 16 bits que
pueden direccionar solamente 2 exp16 o 64 K de memoria. Las MPU más modernas de
16 bits tienen buses de direcciones de 16,20 o 23 bits. Un bus de direcciones
más ancho permite direccionar memorias mayores.
Líneas de Control.
La mayoría de los microprocesadores se caracterizan porque tienen todas o algunas de las siguientes líneas de control:
1.- Líneas de reloj.
2.- Líneas de lectura/escritura.
3.- Líneas de entrada/salida.
4.- Líneas de interrupción.
5.- Líneas de reinicialización.
6.- Líneas de control del bus.
7.- Líneas de status del ciclo.
Además de los buses de interconexión externos existen otros dentro del microprocesador que sirven para comunicar entre sí a la ALU, los registros internos y la unidad de control. A éstos se les denomina BUSES INTERNOS.
UNIDAD DE CONTROL (UC)
La circuitería de control es
la unidad funcional primaria dentro del microprocesador. Utilizando señales de
reloj, la unidad de control mantienen la secuencia de eventos apropiada para
llevar a cabo cualquier tarea de procesamiento. Es decir, el microprocesador es
un dispositivo síncrono. La actividad fundamental de un microprocesador,
regulada por la unidad de control, es cíclica y consiste en la búsqueda y
obtención de datos e instrucciones, y en la ejecución secuencial de estas
últimas. Después de que una instrucción ha sido obtenida y decodificada, la
circuitería de control envía las señales apropiadas a dispositivos tanto
internos como externos a la CPU, para iniciar la acción de procesamiento
indicada por la instrucción. Frecuentemente, la unidad de control es capaz de
responder a señales externas que alteran el estado del microprocesador, ya sea
interrumpiendo temporalmente su funcionamiento o provocando la ejecución de
instrucciones especiales.
El corazón de la unidad de
control lo constituye el GENERADOR DE CICLO DE MÁQUINA (GCM) , que se encarga
de producir las señales de control, derivándolas de un reloj u oscilador
maestro como referencia.
La unidad de control es la encargada de gobernar el funcionamiento del ordenador.
La UC tiene como responsabilidad recibir e interpretar cada instrucción a ejecutar por el ordenador, para posteriormente transformarla en una serie de microinstrucciones a muy bajo nivel, particulares para cada arquitectura de ordenador.
La UC dispone de la circuitería necesaria para leer la dirección de memoria que contiene la instrucción a ejecutar, localizar dicha instrucción y escribirla en un registro destinado para tal fin en la UC (registro de instrucción). Posteriormente otro elemento de la unidad de Control (Decodificador) transforma la información de este registro en una información más amplia e inteligible para el secuenciador.
El secuenciador analiza e interpreta la salida del decodificador, y en función de esta información ejecuta un microprograma contenido en la memoria de control, que produce las microinstrucciones necesarias para que se ejecute la instrucción.
Esta forma de ejecutar las instrucciones (por firmware) es propia de las UC programadas que son las más extendidas. Existen otro tipo de UC, llamadas UC cableadas donde las instrucciones están implementadas por hardware.
Al finalizar la ejecución de la instrucción en curso, el registro contador de programa contiene información sobre la dirección de memoria en que se encuentra la siguiente instrucción que debe ejecutarse. Por tanto, una vez finalizada la ejecución de una instrucción, la circuitería de la UC lee de este registro contador de programa la dirección de la instrucción siguiente para su ejecución, volviendo nuevamente a comenzar el ciclo.
Si la instrucción es compleja, generará muchas microinstrucciones y algunas de ellas necesitarán varios ciclos de reloj para completarse. Como la ejecución de la instrucción se dará por terminada cuando se hayan ejecutado todas las microinstrucciones, esta instrucción compleja necesitará varios ciclos de reloj para su finalización.
Una interrupción (Interrupt) se puede definir como una
señal proveniente de un dispositivo externo, que llega a una entrada del
microprocesador dedicada a este propósito y que le indica al microprocesador
que el dispositivo que la originó está solicitando el servicio.
Cuando ocurre una
interrupción, el microprocesador suspende temporalmente la ejecución del
programa principal y transfiere el control a una subrutina especialmente
diseñada para atender al dispositivo que provocó la interrupción, a esta
subrutina se le denomina SUBRUTINA DE SERVICIO DE LA INTERRUPCIÓN (Interrupt Service Routine) o MANEJADOR
DE INTERRUPCIÓN (Interrupt Handler).
Al terminar el servicio, el microprocesador regresa al programa principal,
continuando con sus actividades normales. Desde este punto de vista, una
interrupción es esencialmente una llamada a subrutina iniciada por un circuito
externo (hardware) y con un retorno por programa (software).
Además las interrupciones
tienen la característica de que son eventos asíncronos, es decir, pueden
ocurrir en cualquier momento durante la ejecución del programa principal sin
posibilidad de hacer una predicción exacta. Por ello hay que hacer
consideraciones especiales y tener cuidados adicionales al manejarlas.
USOS DE LAS INTERRUPCIONES.
Las interrupciones se
utilizan:
A)
En la detección de eventos catastróficos para
el sistema, tales como las fallas súbitas en las fuentes de alimentación. Por
medio de una interrupción el microprocesador puede ser alertado a tiempo de
preservar la información vital y desconectar los dispositivos que puedan
dañarse.
B)
En dispositivos donde el microprocesador no
necesita obtener información con mucha frecuencia. Por ejemplo, en sistemas de
alarma, ya que el microprocesador no sabe cuando va a aparecer una situación
que requiera sus servicios. El dispositivo genera una interrupción cuando llega
el momento, y mientras tanto el microprocesador puede ejecutar otras tareas.
C)
En la atención a dispositivos periféricos que
son mucho más lentos que el microprocesador: teclados, pantallas, impresoras.
En vez de que el microprocesador los espere, es más eficiente que los
dispositivos lo interrumpan cuando tengan algo nuevo que enviar o estén listos
para recibir.
D)
En el servicio de periféricos de alta velocidad
(discos) o dispositivos para los cuales sea muy difícil mantener la información
hasta el momento en que el microprocesador la solicite.
VENTAJAS Y DESVENTAJAS DE LAS INTERRUPCIONES.
Ventajas:
1.- Liberan
al microprocesador de la pérdida de tiempo causada por esperar a que ocurra
cierto evento.
2.- Permiten
la ejecución de un programa principal junto con el control simultáneo de varios
dispositivos externos.
3.- Proporcionan
servicio prioritario a dispositivos críticos dentro del sistema.
4.- Facilitan
la detección de eventos en “tiempo real”.
Desventajas:
1.- Pueden
ser necesarios circuitos externos adicionales para la generación de la señal de
interrupción y la identificación del dispositivo.
2.- Dada
su naturaleza asíncrona, es muy difícil probar su funcionamiento, y todavía
más, encontrar posibles fallas.
3.- Pueden
requerir instrucciones adicionales además de las estrictamente necesarias para
dar servicio al dispositivo. Por ejemplo, para preservar registros o
identificar al dispositivo.
TIPOS DE INTERRUPCIONES.
Un microprocesador puede
tener entradas para responder a dos tipos de interrupciones: inhibibles (maskables) y no inhibibles (non maskables).
Cuando se activa una entrada
de interrupción no inhibible, el
microprocesador siempre es interrumpido, es decir, la señal de interrupción es
aceptada bajo cualquier condición. Esto hace que las interrupciones no
inhibibles sean las más apropiadas para manejar eventos catastróficos tales
como la pérdida de energía.
Cuando se activa una entrada
de interrupción inhibible, el microprocesador
reconoce la interrupción solamente si esa entrada se encuentra habilitada. Las
entradas de interrupción inhibibles se habilitan bajo el control del programa.
Si la entrada está inhabilitada, el microprocesador ignora la interrupción. En
la siguiente figura se muestra la configuración interna de las entradas de
interrupción inhibible y no inhibible en un microprocesador.
Una entrada de interrupción
no inhibible se puede habilitar externamente por medio de una señal proveniente
de un puerto de salida.
RESPUESTA A UNA INTERRUPCIÓN.
En respuesta a una
interrupción el microprocesador realiza las siguientes operaciones:
v
Se completa la instrucción que está en proceso.
v
Se ejecuta un ciclo de máquina especial, durante el
cual se almacena el contenido del contador del programa y se transfiere el
control a una dirección apropiada.
v
Se inicia la ejecución de la subrutina de servicio a
la interrupción, preservando el estado de la CPU si esto es necesario.
v
Si son varios los dispositivos que pudieron haber
causado la interrupción, se identifica aquel que haya solicitado la
interrupción primero y tenga mayor prioridad.
v
Se ejecuta la parte de la subrutina de servicio que
compete directamente a la atención del dispositivo que interrumpió.
v
Se restaura el estado original del microprocesador.
v
Se devuelve el control a la instrucción siguiente, a
aquélla donde ocurrió la interrupción.
La siguiente figura muestra
la secuencia descrita. Cada etapa requiere de una cierta cantidad de tiempo. La
combinación de los tiempos para un microprocesador dado, junto con la
circuitería externa de interrupción, determinan la velocidad de respuesta del
microprocesador a una solicitud de servicio generada por un dispositivo E/S.
INTERRUPCIÓN
1
1 2 3 4 5 6
7
Secuencia de acciones asociadas con la respuesta a una interrupción.
El tiempo que transcurre
entre la ocurrencia de la interrupción y el inicio de la ejecución de la
subrutina de servicio se conoce como el TIEMPO DE RESPUESTA y es la suma de los
tiempos de las etapas 1 a 4. A diferencia entre el tiempo total que el
microprocesador dura interrumpido y al tiempo real de ejecución de la subrutina
de servicio se les llama sobrecarga (overhead).
El número de circuitos
adicionales requeridos para producir la respuesta a una interrupción varía
mucho. Algunos microprocesadores construyen internamente la instrucción que
transfiere el control a la subrutina de servicio; otros necesitan circuitos externos
para generar la instrucción de transferencia de control o para formar la
dirección de la subrutina de servicio.
El número de entradas de
interrupción que tenga el circuito integrado de un microprocesador determina el
número de respuestas que puede producir sin hardware o software adicionales. La
CPU solamente puede generar una instrucción o dirección diferente por cada
entrada de interrupción.
Si el número de dispositivos
que pueden provocar una interrupción excede al número de entradas de interrupción,
el microprocesador necesitará hardware o software extra para identificar el
causante de la interrupción. En el caso más simple, el software puede ser una
subrutina de encuesta o muestreo
(polling) que revise el
estado de los dispositivos que pudieran haber interrumpido. La solución
alternativa es hardware adicional que proporcione una clave específica o
“vector” para cada dispositivo. Las dos alternativas se pueden mezclar; los
vectores pueden identificar grupos de dispositivos y en ellos se puede detectar
un dispositivo particular por medio de muestreo (polling).
Microprocesadores
Es el cerebro del ordenador. Se encarga de realizar todas las operaciones de cálculo y de controlar lo que pasa en el ordenador recibiendo información y dando órdenes para que los demás elementos trabajen. Es el jefe del equipo y, a diferencia de otros jefes, es el que más trabaja. En los equipos actuales se habla de los procesadores Pentium MMX y Pentium II/III de Intel además de las alternativas de AMD (familias K6 y K7) y Cyrix (6x86, MII).
TIPOS DE CONEXIÓN
El rendimiento que dan los microprocesadores no sólo dependen de ellos mismos, sino de la placa donde se instalan. Los diferentes micros no se conectan de igual manera a las placas:
VALORACIÓN DEL RENDIMIENTO DE UN MICROPROCESADOR
El microprocesador es uno de los componentes que hay que prestar más atención a la hora de actualizarlo, ya que en su velocidad y prestaciones suele determinar la calidad del resto de elementos. Esta afirmación implica lo siguiente: por ejemplo, en un Pentium de baja gama es absurdo poner 8 Mb. de RAM y un disco duro de 3 ó 4 Gb; y en un PII de alta gama también es absurdo poner 32 Mb. de RAM y un disco duro de 2 Gb. Hay que hacer una valoración de todos los elementos del ordenador, actualmente en las tiendas suelen venderse digamos "motores de un mercedes en la carrocería de un 600". Esto tenemos que evitarlo. Además del microprocesador, la velocidad general del sistema se verá muy influenciada (tanto o más que por el micro) debido a la placa base, la cantidad de memoria RAM, la tarjeta gráfica y el tipo de disco duro. Profundizar sobre estos temas se escapa de esta sección de microprocesadores, accede a la sección de componente en particular para más información.
Hoy día, hay que fijarse el propósito de la utilización del ordenador para elegir el correcto microprocesador. Por ejemplo, si se va a trabajar con los típicos programas de ofimática (Word, Excel...), un 486 con Windows 95 y 16 Mb. de RAM es más que suficiente, al igual que para navegar por Internet. Sin embargo, según sean más complejos los programas, más complejos serán los equipos. Los programas multimedia y enciclopedias, requieren un procesador Pentium de gama media. A los programas de retoque fotográfico se les puede poner también un procesador Pentium de gama media, aunque influirá sobre todo la memoria RAM (harán falta un mínimo de 128 Mb. para un rendimiento óptimo, según nuestras pruebas). Y últimamente se está incitando a la adquisición de equipos mejores debido sobre todo a los últimos juegos 3D, descompresión MPEG-2 por software para visualizar DVDs (la tarea la realiza el micro conjuntamente con la tarjeta gráfica)... y a un nivel menos doméstico, la renderización de gráficos tridimensionales o la ejecución multitarea de servidores de red. Para esto, nada es suficiente, por ello los micros son cada vez más y más rápidos y complejos. Aunque si lo que quieres son juegos, mejor decántate por una aceleradora 3D, ya que se tiene una experiencia mejor en un Pentium a 133 MHz con una Voodoo Graphics que en un Pentium II/K6-2 a 300 MHz sin aceleradora. Lo ideal, lógicamente, es un PII/K6-2 con una aceleradora gráfica
Y ya por último, diremos que el disipador + ventilador puede reducir la temperatura del micro unos 40 grados centígrados y aumentar el rendimiento un 30%. En los procesadores actuales este componente es imprescindible para el funcionamiento del microprocesador, que de lo contrario terminaría quemado.
MICROPROCESADORES
DE 8 BITS
El siguiente microprocesador creado por la empresa
Intel fue el 8085 en 1977. La alimentación es única: requiere sólo +5V. Esto se
debe a la nueva tecnología utilizada para la fabricación llamada HMOS (High performance N-channel MOS)
que además permite una mayor integración, llegando a la VLSI (Very Large Scale
of Integration o muy alta escala de integración) con más de diez mil
transistores (el 8085 no es VLSI, pero sí el 8088, como se verá más adelante).
Tiene incorporado el generador de pulsos de reloj con lo que sólo hace falta un
cristal de cuarzo y un par de capacitores externos (para el 8080 se necesitaba
el circuito integrado auxiliar que lleva el código 8224). Además está mejorado
en lo que se refiere a las interrupciones. Incluye las 74 instrucciones del
8080 y posee dos adicionales (RIM y SIM) referidas a este sistema de
interrupciones y a la entrada y salida serie. El bus de datos está multiplexado
con los ocho bits menos significativos del bus de direcciones (utiliza los
mismos pines para ambos buses), con lo que permite tener más pines libres para
el bus de control del microprocesador (el 8080 necesitaba un integrado
especial, el 8228, para generar el bus de control). Intel produjo ROMs, RAMs y
chips de soporte que tienen también el bus multiplexado de la misma manera que
el microprocesador. Todos estos integrados forman la familia MCS-85.
Debido a la gran densidad de integración comparado con el 8080, se utilizó mucho este microprocesador en aplicaciones industriales. Sin embargo, para aplicaciones de computación de uso general, se extendió más el uso del microprocesador Z-80 como se indicó en el apartado referente al 8080.
CARACTERISTICAS GENERALES
INTEL 8085
Al igual que el microprocesador generico, la MPU 8085 utiliza registros de 8 y 16 bits. El 8085 tiene 8 registros direccionables de 8 bits. Seis de estos registros pueden utilizarse como registros de 8 bits o como registros de 16 bits. _demas, el 8085 contiene dos registros mas de 16 bits. Los registros del 8085 son los siguientes:
1) El acumulador (registro A) es el foco de todas las operaciones del acumulador que incluyen instrucciones aritmeticas, logicas , de carga y almacenamiento y de E/S. Es un registro de 8 bits
2) Los registros ede proposito general BC, DE y HL pueden ser utilizados como seis registros de 8 bits o como tres registros de 16 bits dependiendo de la instruccion que se vaya a ejecutar . Como en el microprocesador generico, el registro HL llamado puntero de datos por intel puede ser apuntado a direcciones. Pocas instrucciones utilizan los registros BC yDE como punteros de direccion , Ya que normalmente se utilizan como registros de datos de proposito general.
3) El contador de programa (PC) siempre señala la posicion de la memoria de la siguiente instruccion que se va a ejecutar . Siempre contiene una direccion de 16 bits.
4) El puntero de pila (SP) es un puntero de direccion de proposito especial (o puntero de dato ) que siempre apunta ala parte superior de la pila de la RAM . Es un registro de 16 bits .
5) El registro de señalizadores contiene cinco señalizadores de 1 bit que contienen informacion del estado de la CPU. Estos señalizadores son utilizados entonces por instrucciones de bifurcacion condicional, llamada, y vuelta de subrutina.
Los cinco señalizadores encontrados en la CPU del 8085, y son los siguientes:
El señalizador de arrastre es puesto a 1 o 0 p[or operaciones aritmeticas y su estatus es examinado por las instrucciones del programa. Como en el microprocesador generico, un over flow (rebose ) de una suma de 8 bits hara que el bit se ponga a 1. En la resta el señalizador de arrastre es puesto como un señalizador de "prestamo", indicando que el minuendo es menor que el sustraendo si el señalizador es esta a 1.
El señalizador de cero se pone a uno si el resultado de ciertas instrucciones es cero. Este esta en cero si el resultado no es cero. La accion de señalizador de cero se observo en el microprocesador se observo en la parte generica del mismo.
El señalizador de signo(S) indica la condicion del bit mas significativo del acumulador despues de la ejecucion de instrucciones aritmetico logicas. Estas instrucciones utilizan el MSB signo a uno representa un numero contenido en el acumulador . Un señalizador de sino a uno representa un numero negativo, mientras que a cero significa un numero positivo.
El señalizador de arrastre auxiliar (AC) indica un over folw o arrastre del bit 3 del acumulador de la misma forma que el señalizador de arrastre indica un overflow del bit 7. Esta señalizacion es uutilizada comunmente en BCD.
El señalizador de paridad (P) examina el numero de bits 1. Si este contiene un numero par de uno , se dice que existe paridad par y el señalizador de paridad se pone a 1. Sin embargo, si el acumulador contiene un numero impar de 1, el señalizador de paridad del 8085 se pone a cero.
Este microprocesador estaba 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).
Nótese en el gráfico el semicírculo que identifica la posición de la pata 1. Esto sirve para no insertar el chip al revés en el circuito impreso.
Las funciones de las 40 patas con las que se conecta el 8085 con el exterior son las siguientes:
Pata |
Nombre |
Descripción |
1
|
X1 |
Entre
estas dos patas se ubica el cristal |
2 |
X2
|
|
3 |
RESET
OUT |
Para
inicializar periféricos |
4
|
SOD |
Salida
serie |
5
|
SID |
Entrada
serie |
6
|
TRAP |
Entrada
de interrupción no enmascarable |
7
|
RST 7.5 |
Entrada
de interrupción (máxima prioridad) |
8
|
RST 6.5 |
Entrada
de interrupción |
9
|
RST 5.5 |
Entrada
de interrupción |
10
|
INTR |
Entrada
de interrupción (mínima prioridad) |
11
|
/INTA |
Reconocimiento
de interrupción |
12
|
AD0 |
Bus
de direcciones y datos multiplexado |
13
|
AD1 |
Bus
de direcciones y datos multiplexado |
14
|
AD2 |
Bus
de direcciones y datos multiplexado |
15
|
AD3 |
Bus
de direcciones y datos multiplexado |
16
|
AD4 |
Bus
de direcciones y datos multiplexado |
17
|
AD5 |
Bus
de direcciones y datos multiplexado |
18
|
AD6 |
Bus
de direcciones y datos multiplexado |
19
|
AD7 |
Bus
de direcciones y datos multiplexado |
20
|
GND |
Referencia
de tierra. Todas las tensiones se miden con respecto a este punto. |
21
|
A8 |
Bus
de direcciones |
22
|
A9 |
Bus
de direcciones |
23
|
A10 |
Bus
de direcciones |
24
|
A11 |
Bus
de direcciones |
25
|
A12 |
Bus
de direcciones |
26
|
A13 |
Bus
de direcciones |
27
|
A14 |
Bus
de direcciones |
28
|
A15 |
Bus
de direcciones |
29
|
S0 |
Bit
de estado del 8085 |
30
|
ALE |
Cuando
está uno indica que salen direcciones por las patas ADn, en caso contrario,
entran o salen datos |
31
|
/WR |
Cuando
vale cero hay una escritura |
32
|
/RD |
Cuando
vale cero hay una lectura |
33
|
S1 |
Bit
de estado del 8085 |
34
|
IO/M |
Si
vale 1: operaciones con ports, si vale 0: operaciones con la memoria |
35
|
READY |
Sirve
para sincronizar memorias o periféricos lentos |
36
|
/RESET IN |
Cuando
está a cero inicializa el 8085 |
37
|
CLK OUT |
Salida
del reloj para los periféricos |
38
|
HLDA |
Reconocimiento
de HOLD |
39
|
HOLD |
Sirve
para poner los buses en alta impedancia para el manejo de DMA (acceso directo
a memoria) |
40
|
VCC |
tensión
de alimentación: +5Vdc |
PUNTERO DE PILA
Este contiene la direccion del unltimo byte introducido en la pila. El puntero de pila pude ser inicializado para utilizar cualquier parte de la RAM como pila . Como en el microprocesador generico, el puntero de pila se decrementa cada vez que se introduce un dato en la pila y se incrementa cada vez que se saca el dato de la pila.
UNIDAD ARITMETICO LOGICA
La ALU esta muy relacionada con el acumulador, registro de señalizadores y algunos registros temporales que son inaccesibles al programador.
REGISTRO DE INSTRUCCION Y DECODIFICADOR
Durante una busqueda de instruccion, el primer byte de la instruccion, el codigo de operacion es transferido al registro de instruccion de 8 bits. El contenido del registro de instruccion esta disponible al decodificador de instrucciones.
GENERADOR INTERNO DE RELOJ.
La MPU 8085 incorpora un generador completo de rerloj en su pastilla . Requiere solamente la adicion de un cristal de cuarzo para establecer la temporizacion de su operacion .
Las cinco entradas de interrupcion hardware estan listadas por prioridades en la columna izquierda. La interupcion de mas alta prioridad es la de la entrada TRAP. Una vez que alcanza el nivel ALTO, la entrada TRAP hara que el 8085 guarde en la pila el contenido del contador de programa y salte a la posicion de memoria 002eH. La entrada TRAP no puede ser inhabilitada y por tanto se denomina interrupcion no enmascarable.
El
microprocesador 8085 posee un complejo y completo sistema de interrupciones.
Esta uP posee cinco terminales destinados al tratamiento de interrupciones.
Recordemos que una interrupción es un artificio hardware/software por el cual es posible detener el programa en curso para que, cuando se produzca un evento predeterminado, después de concluir la instrucción que está ejecutando, efectúe un salto a una determinada subrutina en donde se efectuará el tratamiento de la interrupción; una vez acabado éste, el uP continúa con la instrucción siguiente del programa principal.
Así pues, el 8085 dispone de tres formas diferentes de tratar las interrupciones que le llegan por los citados cinco terminales. Los nombres de estos cinco terminales son:
Estas interrupciones se pueden habilitar o deshabilitar mediante las instrucciones EI y DI, como en el caso de INTR; pero además son enmascarables por software mediante la instrucción SIM (Set Interrupt Mask). Es posible leer tanto el estado de la máscara como las interrupciones que se han producido y aún no se atendieron mediante la instrucción RIM.
Nivel de prioridad |
Nombre de la interrupción |
Valor leído en el bus de
datos |
Dirección de la subrutina
en hexadecimal |
Mayor
prioridad |
TRAP |
No
importa |
0024
|
-
|
RST 7.5 |
003C |
|
- |
RST
6.5 |
0034 |
|
- |
RST
5.5 |
002C
|
|
Menor
prioridad |
INTR |
11000111
|
0000
|
11001111
|
0008
|
||
11010111
|
0010
|
||
11011111
|
0018
|
||
11100111
|
0020
|
||
11101111
|
0028
|
||
11110111
|
0030
|
||
11111111
|
0038
|
Este microprocesador posee dos terminales
denominados SID (Serial Input Data)
y SOD (Serial Output Data). Estos
terminales se pueden usar con propósitos generales. Por ejemplo el terminal SID se puede conectar a un interruptor
y el SOD a un LED (a través de una
compuerta inversora externa). Para leer el estado del terminal SID se ejecuta la instrucción RIM, con lo que se puede
leer en el bit 7 del acumulador el estado de dicho terminal.
Para enviar un dato por el terminal SOD se ejecuta la instrucción SIM, donde el bit 7 del acumulador debe tener el valor a poner en el terminal, y el bit 6 debe estar a uno.
Las patillas de entrada y salida serie del 8085 ayudan a minimizar la cuenta de pasillas en los pequeños sistemas al proporcionar un puerto de interfaz serie. La instruccion especial RIM del 8085 transfiere datos desde la patilla de entrada serie (SID) al bit 7 del acumulador.
Un solo bit serie puede sacarse via la patilla de salida serie (SOD) utilizando la instruccion especial SIM del 8085. Un nivel BAJO sale a la patilla SOD via el cerrojo de salida serie. Observar que la fuente del dato era el bit 7 del acumulador. Para que se produzca la salida serie hay que poner a 1 el bit 6 (B6) del acumulador.
El entrada serie (SID) tambien puede utilizarse como una entrada de TEST de proposito general, mientras que las patillas de salida serie (SOD) pueden servir como salida de control de 1 bit. En una seccion posterior sobre el repertorio de instrucciones del 8085 las instrucciones RIM y SIM se explicaran con mas detalle. Son instrucciones que tienen varios propositos. El nemotecnico RIM realmente significa mascara de lectura de interrupcion (read interrupt mask), mientras que el nemotecnico SIM significa mascara de inicializacion de interrupcion (set interrupt mask).
Los registros programables de la unidad microprocesadora 8085 estan resumidos.
Estos son los registros de principal interes para el programador. Este tipo de diagrama a veces se denomina modelo de programacion para la MPU 8085.
El acumulador principal de 8 bits se etiqueta con A en el modelo de programacion. Los otros registros de proposito general de 8 bits (etiquetados B,C,D,E,H y L) tambien se denominan, comunmente acumuladores secundarios/contadores de datos. Este nombre sugiere su doble uso como acumuladores auxiliares o contadores de datos (o punteros de dirección).
El microprocesador (MP). El MPU es el corazon de cualquier microcomputadora. Realiza muchas funciones, entre las que se incluyen:
1.
Proporcionar las señales de control y temporizacion para
todos los elementos de la microcomputadora.
2.
Extraer las instrucciones y los datos de la memoria.
3.
Transferir los datos a y desde la memoria y los
dispositivos de entrada/salida.
4.
Decodificación de instrucciones.
5.
Ejecutar las operaciones aritméticas y lógicas invocadas por
las instrucciones.
REINICIO E INTERRUPCION.
El MPU contiene toda la circuiteria lógica necesaria para llevar a cabo las funciones anteriores pero, en general, no existe manera de tener acceso a la lógica interna. En lugar de ello, se puede controlar lo que ocurre dentro del MPU mediante un programa formado por varias instrucciones mismo que se coloca en la memoria para que el MPU lo ejecute. Esto es lo que hace al MPU tan versátil y flexible -cuando se desea cambiar su operación, solo es necesario cambiar los programas almacenados en la RAM (software) o grabada en la ROM (firmware) sin necesidad de cambiar la electrónica (hardware).
La lógica interna del MPU es muy compleja pero puede considerarse como formada por tres secciones básicas: la sección de control y temporizacion, las sección de registros y la ALU. Aunque existen interacciones bien definidas entre secciones, cada una tiene funciones especificas.
La función principal de la sección de control y temporizacion es traer de la memoria y decodificar (interpretar) las instrucciones que están en la memoria y que forman parte de un programa, para después generar las señales de control necesarias para ejecutar las instrucciones. Esta sección también genera las señales de control y temporizaciones (por ejemplo, R/W y de reloj) para la RAM, ROM y dispositivos de E/S externos.
La sección de registros contiene varios registros (dentro del MPU) y cada uno tiene una función especial. El mas importante de todos ellos es el contador del programa (PC), el cual mantiene la dirección donde se encuentra la siguiente instrucción que se extraerá de la memoria. Se hará uso de las siglas PC en la descripción de la ejecución de un programa. Los demás registros del MPU se emplean para realizar funciones tales como guardar los códigos correspondientes a las instrucciones mientras estas son decodificadas, retener los datos que constituyen los operandos con los que trabaja la ALU, almacenar las direcciones donde se encuentran los datos en la memoria y varias funciones mas de conteo y almacenamiento con propósito generales.
La ALU efectúa una gran variedad de operaciones aritméticas y lógicas. Estas operaciones siempre incluyen la adición y la sustracción, y las operaciones lógicas AND, OR, EX-OR, corrimiento, incremento, y decremento. Los MPU mas avanzados tienen una ALU que realiza operaciones de multiplicación y división. Durante la operación de la microcomputadora, las operaciones que la ALU realiza se llevan a cabo bajo el control de la sección de control y temporizacion la que, claro esta, hace lo que indican los códigos de instrucción que trae de la memoria.
Aparte
de las 74 instrucciones del 8080, este procesador posee dos instrucciones más.
Estos datos deben estar cargados en el acumulador y son:
Luego de la ejecución de esta instrucción, el acumulador tiene lo siguiente:
MICROPROCESADORES
DE 16 BITS
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 software que 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. Si se observan de cerca ambos conjuntos de instrucciones, queda claro que la transformación es sencilla si los registros se traducen así: A -> AL, B -> CH, C -> CL, D -> DH, E -> DL, H -> BH y L -> BL. Puede parecer complicado traducir LDAX B (por ejemplo) ya que el 8088 no puede utilizar el registro CX para direccionamiento indirecto, sin embargo, se puede hacer con la siguiente secuencia: MOV SI, CX; MOV AL, [SI]. Esto aprovecha el hecho que no se utiliza el registro SI. Por supuesto el programa resultante es más largo (en cantidad de bytes) y a veces más lento de correr que en su antecesor 8085. 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 plaquetas 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).
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.
Tienen
16 bits cada uno y son ocho:
Cualquiera de estos registros puede utilizarse como fuente o destino en operaciones aritméticas y lógicas, lo que no se puede hacer con ninguno de los seis registros que se verán más adelante.
Además de lo anterior, cada registro tiene usos especiales:
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.
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).
Registro
de indicadores (16 bits) |
||||||||||||||||
Bit
|
15 |
14 |
13 |
12 |
11 |
10 |
9 |
8 |
7 |
6 |
5 |
4 |
3 |
2 |
1 |
0 |
Flag
|
-- |
-- |
-- |
-- |
OF |
DF |
IF |
TF |
SF |
ZF |
0 |
AF |
0
|
PF
|
1
|
CF
|
CF (Carry Flag, bit 0): Si vale 1, indica que hubo "arrastre" (en caso de suma) hacia, o "préstamo" (en caso de resta) desde el bit de orden más significativo del resultado. Este indicador es usado por instrucciones que suman o restan números que ocupan varios bytes. Las instrucciones de rotación pueden aislar un bit de la memoria o de un registro poniéndolo en el CF.
PF (Parity Flag, bit 2): Si vale uno, el resultado tiene paridad par, es decir, un número par de bits a 1. Este indicador se puede utilizar para detectar errores en transmisiones.
AF (Auxiliary carry Flag, bit 4): Si vale 1, indica que hubo "arrastre" o "préstamo" del nibble (cuatro bits) menos significativo al nibble más significativo. Este indicador se usa con las instrucciones de ajuste decimal.
ZF (Zero Flag, bit 6): Si este indicador vale 1, el resultado de la operación es cero.
SF (Sign Flag, bit 7): Refleja el bit más significativo del resultado. Como los números negativos se representan en la notación de complemento a dos, este bit representa el signo: 0 si es positivo, 1 si es negativo.
TF (Trap Flag, bit 8): Si vale 1, el procesador está en modo paso a paso. En este modo, la CPU automáticamente genera una interrupción interna después de cada instrucción, permitiendo inspeccionar los resultados del programa a medida que se ejecuta instrucción por instrucción.
IF (Interrupt Flag, bit 9): Si vale 1, la CPU reconoce pedidos de interrupción externas enmascarables (por el pin INTR). Si vale 0, no se reconocen tales interrupciones. Las interrupciones no enmascarables y las internas siempre se reconocen independientemente del valor de IF.
DF (Direction Flag, bit 10): Si vale 1, las instrucciones con cadenas sufrirán "auto-decremento", esto es, se procesarán las cadenas desde las direcciones más altas de memoria hacia las más bajas. Si vale 0, habrá "auto-incremento", lo que quiere decir que las cadenas se procesarán de "izquierda a derecha".
OF (Overflow flag, bit 11): Si vale 1, hubo un desborde en una operación aritmética con signo, esto es, un dígito significativo se perdió debido a que tamaño del resultado es mayor que el tamaño del destino.
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).
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.
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.