martes, 27 de noviembre de 2012

Arquitectura Intel(Componentes, Modelo de programación, organización de memoria)


El Microprocesador.

El microprocesador es un circuito integrado de gran complejidad. Tiene capacidad para poder ejecutar miles de millones de instrucciones por segundo provenientes de un programa o software (grupo de instrucciones).

El microprocesador realiza tres tareas principales para el sistema de cómputo:
1. Transferencia de datos entre él mismo y la memoria o dispositivos de Entrada/Salida.
2. Operaciones Lógicas y Aritméticas.
3. Control de flujo del programa.

Internamente consta de varias partes:
Memoria cache o de almacenamiento intermedio (uno o dos niveles)

Unidad de recuperación de instrucciones

Cola de instrucciones
Unidades de ejecución.  

La figura siguiente figura muestra un esquema a bloques muy simplificado de un microprocesador y los elementos que le permiten comunicarse con la memoria a fin de recuperar instrucciones y ejecutarlas.

Asumiendo que en la memoria hay un espacio que contiene un programa, recuperado de un ejecutable, los pasos que daría el procesador serían más o menos los siguientes:

La BU (Bus Unit – Unidad de Bus-)  recupera de la memoria las instrucciones y, en el caso de las actuales Pentium y compatibles., las va almacenando en una cola, de tal manera que se encuentren ya en el microprocesador con antelación para acelerar la ejecución.

Las instrucciones van pasando de esa cola interna de la BU a la IU (Instruction Unit – Unidad de Instrucción-), que se encarga de decodificar las instrucciones y recuperar los datos que pudieran llevar asociados.  La UI conjuntamente con la BU, conforman la parte del microprocesador que se ocupa de ir recuperando y preparando las instrucciones del microprocesador.

Los dos bloques que aparecen a la izquierda, en el interior del microprocesador, forman la Unidad de Ejecución, compuesta de la CU (Control Unit –Unidad de Control -) y la ALU (Arithmetic Logic Unit –Unidad Lógica Aritmética-) Observe que estas unidades comparten el acceso a los registros.

Las instrucciones pasan de la IU a la CU, encargada de ejecutarlas sirviéndose para ello de los datos alojados en los registros y apoyándose en la ALU.  En consecuencia, se modificarán esos registros, por ejemplo el de indicadores y si es necesario se enviará de vuelta a la memoria el dato que corresponda.  Para ello la CU se comunica con la BU.


El microprocesador 8086/8088 está constituido por dos unidades que operan de manera independiente y estas son:

1. UNIDAD DE INTERFAZ DE BUS (BIU).
a)  Realiza la fase de captura de la instrucción.
b)  La coloca en la cola de espera.
(4 bytes para el 8088)
(6 bytes para el 8086)
c)  Realiza el control del Bus.
d)  Contiene los registros de segmento.

2.  UNIDAD DE EJECUCION. (EU)
a) Extrae la primera instrucción en la cola de la BIU
b) Ejecuta la instrucción.
c) Contiene los registros de propósito general, registros de pila y registro índice.

En la figura se muestra el diagrama del Modelo de Programación para este microprocesador.



El microprocesador tiene disponibles 20 bits de direccionamiento a memoria, es organizada en un arreglo lineal de 1'048,576 de bytes, direccionables del 00000H a 0FFFFFH.  La memoria es dividida lógicamente en segmentos llamados: CODE, DATA, EXTRA DATA y STACK. Cada uno puede tener desde 16 bytes hasta 64 KB de longitud.

La referencia a memoria se realiza mediante un DIRECCIONAMIENTO BASE él cual se encuentra en registros de segmento de alta velocidad. El tipo segmento se escogió de acuerdo a las necesidades de los programas.  El registro de segmento es seleccionado de acuerdo a la siguiente regla:
Toda la información con los mismos atributos es colocada en un mismo segmento; por ejemplo todo el código es colocado en el segmento de código (CS) y todos los datos son colocados en el segmento de datos (DS). Esta manera de hacer las cosas da como resultado programas más rápidos, cortos y estructurados.

La figura muestra  la organización de la memoria del microprocesador.



Hay localidades de la memoria las cuales son reservadas para operaciones específicas del microprocesador:

a)  De la dirección  00000H a la 003FFH son reservadas para interrupciones, lo que permite manejar hasta 256 interrupciones.
Cada interrupción usa 4 bytes:
*  2 bytes para la dirección del segmento.
*  2 bytes para la dirección del offset .

b) De la dirección FFFF0H a la FFFFFH son reservadas para rutinas de inicialización del sistema.

El microprocesador 8086/8088 puede manejar alrededor de 65536 puertos de Entrad/Salida. La dirección de Entrada/Salida permanece en el mismo formato en las líneas A0 a A15, las restantes líneas de dirección se mantienen en CERO en operaciones de entrada/salida. Las instrucciones de Entrada/Salida utilizan el registro DX como un apuntador, con ello se logra un acceso directo a cualquier dispositivo de Entrada/Salida.  En la figura 4 se muestra el diagrama del manejo del direccionamiento del microprocesador 8088/8086.

No hay comentarios:

Publicar un comentario