TAREA 1- 1.6
MICROINSTRUCCIONES Y MICROPROGRAMACIÓNFECHA DE ENTREGA: 2001-04-05
SUMARIO |
|
CAPÍTULO I Introduccción |
|
CAPÍTULO II Preliminares |
|
CAPÍTULO III Unidad de Control Microprogramada |
|
CAPÍTULO IV Microarquitectura |
|
CONCLUSIONES |
|
BIBLIOGRAFÍA |
La frontera entre el hardware y el software no está bien definida y, además varia constantemente. Las primeras computadoras tenían instrucciones para hacer operaciones finitas(aritméticas booleanas, comparaciones, iteraciones y otra que eran realizadas directamente por el hardware).Para cada instrucción había un circuito específico que la ejecutaba.
El presente informe introduce el concepto de microprogramación la complejidad del sistema digital que se deriva de la cantidad de secuencias de microoperaciones que se ejecutan cuando la circuitería genera señales de control por medio de tècnicas de diseño lógico convencional.
Además consta de cómo la microprogramación es una segunda alternativa para diseñar la unidad de control de una computadora digital, lo cual controlará los Componentes del hardware e interpretara el nivel de máquina (ordinaria) convencional.
Como la arquitectura del nivel de microprogramación denominada microarquitectura, esta definida por el hardware, suele ser primitiva y difícil de programar lo cual llevó a Rosin (1974) a definir la microprogramación como:
"El diseño de sistemas mas o menos razonables por medio de la interpretaciòn sobre máquinas irracionales"
CAPITULO I
INTRODUCCIÓN
El término microprograma lo acuñó M. V, Milkes al principio de los años 50 [Wilk51] lo cual propuso una aproximación al diseño de la unidad de Control que era ordenada y sistemática que evitaba la complejidad de la implementación cableada.
La microprogramación es una programación de bajo nivel que consiste en desarrollar programas en un lenguaje que exponga al programador los detalles del hardware del sistema. Con este lenguaje se puede ver la arquitectura de la máquina que se está programando.
Este informe tiene como objetivo presentar tan clara y completamente sea posible su función específica que es la de ejecutar intérpretes de otras máquinas virtuales mas o menos razonables.
A continuación haremos una breve sinopsis de los capítulos que trataremos en este informe .
El capítulo 2 (preliminares),tiene como objetivo revisar brevemente los elementos básicos ya que son parte de la arquitectura del nivel de microprogramación y, por tanto de interés para el microprogramador.
El capítulo 3 .Define la unidad de control microprogramada, el funcionamiento de la unidad de control que resulta de implementar la unidad de control sencillamente suministrando los mecanismos necesarios para la ejecución de un programa.
El capítulo 4. muestra en detalle los pasos que deben tenerse en cuenta en diseñar una arquitectura haciendo uso de microinstrucciones.El tiempo que se utiliza para dar paso a la información de la ALU
A continuación se dará algunas conclusiones y/o recomendaciones que se obtendrán del informe
Luego vendrá un alcance de todo el material de estudio que fue utilizado para este informe: Bibliografía, alguna páginas web.
El Autor.
El trabajo del microprogramador es escribir programas que controlen los registros, buses, unidades aritméticas y lógicas memorias y otros componentes del hardware de las máquinas,
Para esto revisaremos algunos términos que nos será muy útil para el entendimiento de este trabajo
La diferencia entre los diversos tipos de flip-flops está en el número de entradas. Que posean y la manera en la cual las entradas afectan el estado binario.
2.1.-Registro de Corrimiento.- Es un registro capaz de desplazar su información
binaria en una o en ambas direcciones. Cuya configuración lógica consta de una cadena de flip-flops en cascada con la salida de un flip-flop conectada a la entrada del siguiente flip-flop
3. Buses.- Un bus es un conjunto de alambres que se usan para transmitir señales en paralelo. Los buses son utilizados por ejemplo para permitir que el contenido de un registro se copie en otro. Puede ser Unidireccional o Bidireccional.
4. Relojes.- Los circuitos de los computadores funcionan normalmente al ritmo de un reloj. Dispositivo que emite una secuencia periódica de impulsos. Estos impulsos definen los ciclos de máquina, durante cada ciclo que tiene lugar a alguna actividad básica como la ejecución de una microinstrucción
Los circuitos que tienen una o más líneas de entrada calculan una o varios valores de salida determinadas únicamente por las entradas actuales se llaman circuitos combinacionales. Dos de los más importantes son:
de 2n líneas de datos de entrada y la dirige a una línea de salida única .
6. Codificadores y Decodificadores.- En la transmisión de señales se usa una línea por cada señal. Así, para transmitir n señales serán necesarias n líneas, lo cual en ciertas ocasiones resulta.
Para solucionar este inconveniente y siempre que las señales no ocurran simultáneamente, se pude utilizar un codificador que reduzca la cantidad de líneas que se transmiten y luego un decodificador que hace el proceso inverso.
3.1. Definición.- La tarea de la unidad de control es reconocer primero la instrucción a ejecutar y luego ejecutar un microprograma asociado a esa instrucción.
Dicho microprograma esta conformado por una secuencia de microinstrucciones, cada una de las cuales esta compuesta a su vez por microoperaciones (tales como: habilitar una o varias compuertas, enviar señales de control como ser Read, Write, ADDS, AND, etc.)
Cada microinstrucción requerirá un tiempo para ejecutar, en ese tiempo se llevara a cabo todas las microoperaciones. El tiempo de ejecución de una instrucción será el tiempo de ejecución de todas las microinstrucciones que compone la instrucción.
Cada ciclo de instrucción puede considerarse compuesto por varias pequeñas unidades. Una subdivisión práctica es:
Captación, ciclo indirecto, ejecución e interrupción lo cual puede ser representada mediante el siguiente diagrama
3.2. Funcionamiento de la Unidad de Control.- La unidad de control funciona como sigue la fig5.
a).- Para ejecutar una instrucción, la unidad de control emite una orden de lectura a la memoria de control.
b).- La palabra cuya dirección se especifica en el registro de dirección de control se lee en el registro intermedio de control.
c).- El registro intermedio de control genera las señales de control y contiene además la información de dirección siguiente para la unidad lógica de secuenciamiento.
d).- La unidad lógica de secuenciamiento carga en el registro de dirección de control una nueva dirección, basada en la información de dirección siguiente del registro intermedio de control y en los indicadores de la ALU.
Todo esto sucede durante un pulso de reloj.
Al final de cada microinstrucción, la unidad lógica de secuenciamiento carga una nueva dirección en el registro de dirección de control.
Fig5. Funcionamiento de una unidad de control microprogramada
MICROARQUITECTURA
Luego de repasar todos los componentes que se construye el nivel de microprogramación se verá ahora como se interconectan.
Esto será por medio de un ejemplo.
4.1.- La ruta de Datos.
Fig6. Ruta de datos del ejemplo de microarquitectura
4.2.- Microinstrucciones.- La microinstrucción especifica una o más microoperaciones para el sistema, donde cada microoperación representa una señal a un dispositivo como la memoria, la ALU o una compuerta. Dichas señales tomarán valores "0" o "1" donde 0=ausencia de señal y 1=envio de la misma.
Así se tiene una secuencia de ceros donde cada 0 ó 1 indica la realización o no de una microoperación respectivamente.
Una secuencia de microinstrucciones se conoce como microprograma, o firmware (entre hardware - software)
Un ejemplo para ver como se controla la trayectoria de Datos de la fig6.
Para esto se requiere de 61 señales (de acuerdo a la función estos se pueden dividir en 9 grupos que a continuación se describen)
16 para controlar la carga del bus A, a partir de registros internos.
16 para controlar la carga del bus B, a partir de registros internos
16 para controlar la carga de la memoria de anotaciones a partir del bus C
2 para controlar los registros de A y B
4. para controlar el MAR y el MBR
Con los valores de las 61 señales podemos realizar un ciclo de nuestra ruta de datos.
El siguiente paso en el diseño de la microarquitectura es inventar un formato de microinstrucción que contengan 22 bit. La siguiente fig7 mostrará uno de los posibles, con dos campos adicionales COND y ADDR
1 |
2 |
2 |
2 |
1 |
1 |
1 |
1 |
1 |
2 |
4 |
4 |
8 |
Amux |
Cond |
ALU |
SH |
MBR |
MAR |
RD |
WR |
ENC |
C |
B |
A |
ADDR |
Fig7.Estructura de una microinstrucción para controlar la ruta de datos en la fig6
.
La microinstrucción contiene 13 campos, 11 de los cuales son:
AMUX.- Controla la entrada izquierda a la ALU: 0=tampón de A, 1=MBR.
ALU.- Función de la ALU: 0= A+B; 1= A AND B; 2= A; 3= ?
SH.- Función del registro de corrimiento: 0=nada; 1= a la derecha; 2= a la izquierda.
MBR.- Carga del MBR a partir del registro de corrimiento 0= no carga;
1= carga.
MAR.- Carga el MAR a partir del registro de B: 0= no carga; 1= carga.
RD.- Petición de lectura de memoria: 0= no pide; 1= carga el MBR de memoria.
WR.- Petición de escrituras en memoria: 0= no pide; 1=escribir el MBR en memoria.
ENC.- Control de almacenamiento en registros de memoria interna: 0=no almacena; 1= almacena.
C.- Selecciona el registro donde almacenar Si ENC= 1; 0= PC; 1= AC etc.
B.- Selecciona la fuente del bus B: 0= PC; 1= AC; etc.
A.- Selecciona la fuente del bus A: 0= PC; 1= AC; etc.
El orden de los campos es completamente arbitrario
4.3.- Cronología de las Microinstrucciones.
Un ciclo básico de ALU consiste en cargar los registros A y B, darle tiempo a la ALU en realizar su trabajo y almacenar entonces el resultado. Para obtener la secuencia correcta se introducirá un reloj de 4 fases.
En el diagrama de bloque completo de microarquitectura fig8. Se vera que esta dividido en dos partes.
- La ruta de datos(a la izquierda) y
- La sección de control.
En la sección de control se encuentra la memoria de control, que es donde se guardan las microinstrucciones.
Como cualquier otra memoria, la de control necesita un MAR y un MBR.
Llamaremos al MAR el MPC(Contador de Microprograma ) porque su única función es señalar la siguiente instrucción que se va a ejecutar.
El MBR será el MIR.
La memoria principal y la de control son diferentes, teniendo la primera el programa de nivel de máquina convencional y el último el microprograma.
Fig8.Diagrama de bloques completo de la microarquitectura
En la figura8 observamos que la memoria de control intenta continuamente copiar la microinstrucción direccionada por el MPC al MIR. Sin embargo el MIR solamente se carga durante el primer subciclo.
4.4.- Secuenciamiento de las Microinstrucciones.
Las dos tareas básicas realizadas por una unidad de control microprogramada son:
El secuenciamiento de microinstrucciones.
La ejecución de microinstrucciones.
Aunque la mayoría de las veces basta extraer la siguiente microinstrucción en secuencia, se necesita algún mecanismo que presenta saltos condicionales. Por esta razón se dota a cada microinstrucción de dos campos adicionales: El ADDR que es la dirección de un sucesor potencial de la microinstrucción en curso y COND, que determina si la siguiente microinstrucción se extrae de MPC+1 o de ADDR.
La elección de la siguiente microinstrucción la realiza la caja rotulada "Lógica de Microsecuenciamiento". Durante el subciclo 4, cuando las salidas de la ALU N y Z son válidas
4.5.- Ejecución de Microinstrucciones.
El ciclo de microinstrucciones es el evento básico de una CPU microprogramada. Cada ciclo se compone de dos partes: Captación y Ejecución.
La parte de Captación depende de la generación de una dirección de microinstrucciones.
El resultado de la ejecución es la generación de señales de control. Algunas de estas señales controlan puntos internos de la CPU, las demás señales van al bus de control externo o a otras interfaces externas.
Como función accesoria, se determina la dirección e la siguiente microinstrucción.
4.6.- Taxonomía de las Microinstrucciones.
Se pueden clasificar de varia formas.
El conjunto actuales de la microprogramación incluye
.
volver a Tabla de Contenidos
Ventajas
Desventajas.
Tanenbaum,A. Organización de Computadoras,un enfoque estructurado. Tercera Edición.Prentice Hall.1998.
Stalling,W. Organización y Arquitectura de Computadores (4ª edición).Prentice Hall.1998
Morris,M. Arquitectura de Computadoras (3ª edición). Prentice Hall.1993
Enciclopedia de Informática
Páginas Web: