martes, 27 de noviembre de 2012

Buses de un Sistema de computo

Un BUS es un conjunto de conductores comunes que interconectan componentes en un sistema de cómputo.  Los buses que interconectan partes de un sistema de cómputo transfieren direcciones, datos e información de control entre el microprocesador y sus sistemas de memoria y de entrada/salida.  En el sistema de cómputo basado en el microprocesador, existen tres tipos de buses para esta transferencia de información: el bus de datos, el bus de direcciones y el bus de control.  La figura 5 muestra cómo estos buses interconecta a varios componentes del bus del sistema, como el microprocesador, la RAM, la ROM y algunos pocos dispositivos de entrada/salida.


El bus de direcciones solicita a la memoria una localidad de memoria o a los dispositivos de entrada/salida  una localidad de entrada/salida.  Si la entrada/salida es direccionada, el bus de direcciones contiene una dirección de entrada/salida de 16 bits; si la memoria es direccionada, el bus de direcciones contiene una dirección de memoria que varía en ancho dependiendo de una versión  del microprocesador a otro microprocesador.

El bus de datos transfiere información entre el microprocesador y su espacio de direccionamiento de memoria y entrada/salida; la transferencia de datos varía tamaño dependiendo del tipo de microprocesador que se trate.  La ventaja de un bus más ancho es la velocidad de las aplicaciones que utilizan formatos grandes.

El bus de control contiene líneas que seleccionan ya sea a la memoria o la entrada/salida y que ocasionan que éstas efectúen una operación de lectura o escritura.  En la mayoría de los sistemas de cómputo existen cuatro líneas del bus de control: MRDC (Control de lectura de memoria), MWTC (Control de escritura de memoria), IORC (Control de lectura de entrada/salida) e IOWC (Control de escritura de entrada/salida).  Por ejemplo, si IOWC = 0, el microprocesador está escribiendo datos desde el bus de datos hacia un dispositivo de entrada/salida, cuya dirección aparece en el bus de direcciones.


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.