el nivel de la microprogramación procesamiento de datos i para cada instrucción de un circuito...

38
El nivel de la El nivel de la Microprogramación Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones son realizadas paso a paso por un Intérprete que se ejecuta en el nivel de multiprogramación (Máquina Multinivel) Nivel n Máquina Física E V O L U C I Ó N

Upload: veronica-arguijo

Post on 07-Feb-2015

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

El nivel de la MicroprogramaciónEl nivel de la Microprogramación

PROCESAMIENTO DE DATOS I

Para cada instrucción de un circuito específico.

Uno para dividir, sumar, etc....

Las instrucciones son realizadas paso a paso por un Intérprete que se ejecuta en el nivel de multiprogramación (Máquina Multinivel)

Nivel n

Máquina

Física

E

V

O

L

U

C

I

Ó

N

E

V

O

L

U

C

I

Ó

N

Page 2: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

El nivel de la MicroprogramaciónEl nivel de la Microprogramación

PROCESAMIENTO DE DATOS I

Ejecutar Intérpretes de otras máquinas virtuales

Escribiendo programas que controlen los registros, buses, unidades aritméticas y lógicas, memorias y otros componentes del Hardware de las máquinas.

Page 3: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Conceptos...Conceptos...

PROCESAMIENTO DE DATOS I

Dispositivo capaz almacenar información. Es una forma de memoria, pero se diferencia de la tradicional porque residen dentro del procesador (velocidad R/W).

El grupo de N Registros de una máquina, se denomina memoria local o de anotaciones.

Los registros almacenan información representada por BITS. Su tamaño está en en proporción a la cantidad de bits que puede almacenar.

REGISTROSREGISTROS

0

1

0

1

0

1

2

3

Nro. Registro

Page 4: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Conceptos...Conceptos...

PROCESAMIENTO DE DATOS I

Grupo de alambres usados para transmitir señales en paralelo, no seriales.

Con un BUS podemos copiar el contenido de un registro a otro.

Según la dirección pueden ser:

UNIDIRECCIONAL (registros fuente o destino) ó

BIDIRECCIONAL NO SIMULTÁNEA (registros fuente y destino a la vez)

Un bus que puede conectarse y desconectarse eléctricamente de los buses a los que están conectados físicamente se denomina TRIESTADO

BUSESBUSES

Page 5: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Conceptos...Conceptos...

PROCESAMIENTO DE DATOS I

Registro de 8 bits que recibe datos de un bus de entrada y entrega datos a un bus de salida. Para ello usa señales de control como CK que activa la carga de registro y DE que habilita la salida de los datos del registro.

Cuando CK está desactivada, el contenido del registro no es afectado por las señales del bus.

Cuando DE está activo, el contenido de registro pasa al bus de salida.

Qué sucedería si existiese otro registro R conectado al bus de salida de nuestro registro. Cómo transferiríamos información de un registro a otro.

La mayoría de las computadoras tiene 3 buses, de datos, de dirección y de control.

Page 6: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Conceptos...Conceptos...

PROCESAMIENTO DE DATOS I

BUSBUS

Page 7: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Conceptos...Conceptos...

PROCESAMIENTO DE DATOS I

Page 8: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Conceptos...Conceptos...

PROCESAMIENTO DE DATOS I

MULTIPLEXORES

Y

DECODIFICADORES

MULTIPLEXORES

Y

DECODIFICADORES

Multiplexor:Multiplexor: 2n entradas de datos (líneas o buses) y una salida de idéntica estructura que la entrada. Además de una entrada de control de n bits que encamina una de las entradas a la salida. El mecanismo que encamina su única entrada a una de sus 2n salidas según su línea de control se llama Demultiplexor.

Decodificador:Decodificador: tiene n líneas de entrada y 2nde salida. Siempre tiene una sola salida activada (1) y las demás en 0 (desactivada). Su inverso es el Codificador.

Page 9: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Conceptos...Conceptos...

PROCESAMIENTO DE DATOS I

Page 10: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Conceptos...Conceptos...

PROCESAMIENTO DE DATOS I

UNIDADES ARITMÉTICAS Y

LÓGICAS

REGISTROS DE CORRIMIENTO

UNIDADES ARITMÉTICAS Y

LÓGICAS

REGISTROS DE CORRIMIENTO

ALU:ALU: Toma dos entradas de n bits y produce su suma como salida. Además de algunas entradas y salidas de control.

F0 y F1 determinan qué función deberá realizar (control de entrada).

N si la salida es negativa y Z si es cero (control de salida).

Registro de Corrimiento:Registro de Corrimiento: puede desplazar su entrada un bit a la I/D.

Page 11: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Conceptos...Conceptos...

PROCESAMIENTO DE DATOS I

Page 12: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Conceptos...Conceptos...

PROCESAMIENTO DE DATOS I

RELOJESRELOJES Es un dispositivo que emite una secuencia periódica de impulsos. Estos impulsos definen los ciclos de máquina.

En cada ciclo tiene lugar alguna actividad básica, como sería una microinstrucción.

Un ciclo dividido, recibe el nombre de subciclo y se justifica ante la necesidad de identificar la ejecución de las partes de una microinstrucción.

En un reloj de 4 salidas, la principal es la de arriba, las restantes se derivan de ella al someterlas a retardos.

Page 13: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Conceptos...Conceptos...

PROCESAMIENTO DE DATOS I

Page 14: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Una Microarquitectura TípicaUna Microarquitectura Típica

PROCESAMIENTO DE DATOS I

Cómo se interconectan los componentes básicos

(anteriormente mencionados)

• La ruta de datos

• Microinstrucciones

• Cronología de las microinstrucciones

• Secuenciamiento de las microinstrucciones

Page 15: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

La Ruta de Datos ILa Ruta de Datos I

PROCESAMIENTO DE DATOS I

Es la parte de la CPU que contiene a la ALU, sus entradas y sus salidas.

En nuestro caso tenemos 16 registros idénticos de 16 bits (PC, AC, SP...) que conforman la memoria de anotaciones.

Cada registro puede sacar su contenido de los buses A o B o a ambos y tomarlo de un tercero C.

Los buses A y B alimentan a la ALU. Esta puede realizar las siguientes funciones: A + B, A AND B, A, NOT A. Las entradas de control de la ALU F0 y F1 indican la operación a realizar. Las salidas de control (bits de estado) son N para indicar si es negativo el resultado (se coloca en 1) y Z para indicar si el resultado es 0 (se coloca en 1).

Page 16: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

La Ruta de Datos IILa Ruta de Datos II

PROCESAMIENTO DE DATOS I

La salida de la ALU pasa por un registro de corrimiento que puede desplazar un bit a la I/D o bien no realizar ningún desplazamiento.

Los buses A y B no están conectados directamente a la ALU, existen 2 registros buffer intermedios. Esto se debe a que la ALU calcula continuamente la salida en función de las entradas y el código en función, con lo cual si no existiesen un cálculo del tipo A = A + B, generaría problemas.

Quienes son los encargados de controlar los buffers son L0 y L1. Los registros MAR y MBR, nos permiten la comunicación con la memoria. MAR puede cargarse a partir de B, en paralelo con una operación de la ALU. La línea M0 controla la carga de MAR.

Page 17: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

La Ruta de Datos IIILa Ruta de Datos III

PROCESAMIENTO DE DATOS I

En las operaciones de escritura se puede cargar el MBR con la salida del registro de corrimiento, en paralelo con el almacenamiento en la memoria de anotaciones o M1 controla la carga del MBR a partir de la salida del registro de corrimiento, M2 y M3 controlan las lecturas y escrituras de memoria.

AMUX, es un multiplexor que con la línea A0, permite seleccionar si la entrada de la ALU será el contenido del bus A o el contenido del registro MBR.

Page 18: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

La Ruta de DatosLa Ruta de Datos

PROCESAMIENTO DE DATOS I

RUTA DE RUTA DE DATOSDATOS

Page 19: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

La Ruta de DatosLa Ruta de Datos

PROCESAMIENTO DE DATOS I

Page 20: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

MicroinstruccionesMicroinstrucciones

PROCESAMIENTO DE DATOS I

Para controlar la trayectoria de los datos, son necesarias:

•16 para controlar la carga del bus A de registros internos

•16 para controlar la carga del bus B de registros internos

•16 para controlar la carga de la memoria local, bus C

•2 para controlar los buffers A y B

•2 para controlar las funciones de la ALU

•2 para controlar el registro de corrimiento

•4 para controlar MAR y MBR

•2 para indicar si es R/W de memoria

•1 controlar AMUX

En total, son 61 señales para realizar un ciclo en la Ruta de Datos

Page 21: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

MicroinstruccionesMicroinstrucciones

PROCESAMIENTO DE DATOS I

Un CICLO es:

• Inicializar los buses A y B

• Almacenarlos en los buffers

• Pasarlos por la ALU y el Registro de Corrimiento

• Almacenar su resultado en memoria interna o MBR

• Cargarse el MAR

Registro de Control de 61 bits = señales de controlRegistro de Control de 61 bits = señales de control

Page 22: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

MicroinstruccionesMicroinstrucciones

PROCESAMIENTO DE DATOS I

Page 23: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

MicroinstruccionesMicroinstrucciones

PROCESAMIENTO DE DATOS I

•AMUX: 0 entra de Buffer A, 1 entra de MBR

•ALU: 0 = A+B, 1=A AND B, 2=A, 3=NOT A

•SH: Registro de corrimiento, 0=nada, 1=derecha, 2=izquierda

•MBR: Carga desde el Reg. de Corrimien., 0=no carga, 1=carga

•MAR: Carga del MAR a partir 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 escritura de memoria, 0=no pide, 1=escribe el MBR en Memoria.

•ENC: Control de almacenamiento en registros de memoria interna, 0=no almacena, 1=almacena

•A,B: Selecciona la fuente del Bus, 0=PC, 1=AC, etc.

•C: Selecciona el registro donde almacenar. Si ENC=1 => 0=PC

Page 24: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Cronología de las MicroinstruccionesCronología de las Microinstrucciones

PROCESAMIENTO DE DATOS I

El orden en que se ejecutan las órdenes para controlar la Ruta de Datos, se llama cronologíacronología. Para ello utilizaremos un reloj de 4 fases o subciclos.

•Carga de la microinstrucción en el MIR (Reg. de Mic.)

•Salida del contenido de los registros a los Buses A y B y su captura por los registros A y B

•Una vez que se estabilizan las entradas a la ALU, se genera la salida estable de ALU (Operación elegida) y se carga el MAR si es necesario

•Una vez estabilizada la salida del Registro de Corrimiento, se almacena el bus C en la memoria de anotaciones y el MBR si es necesario

Page 25: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Cronología de las MicroinstruccionesCronología de las Microinstrucciones

PROCESAMIENTO DE DATOS I

En el diagrama de bloques, se observa a la Izquierda la Ruta de Datos y a la derecha la sección de controlsección de control

Memoria de control: almacenamiento de las microinstrucciones. Puede ser R, R/W.

En nuestro ejemplo:

Microinstrucciones de 32 bits

Espacio de direcciones de 256 palabras

MPC: cumple la función de MAR

MIR: cumple la función de MBR

Page 26: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Cronología de las MicroinstruccionesCronología de las Microinstrucciones

PROCESAMIENTO DE DATOS I

Page 27: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Secuenciamiento de las MicroinstruccionesSecuenciamiento de las Microinstrucciones

PROCESAMIENTO DE DATOS I

Cómo se extrae la siguiente microinstrucción?

Secuencia inmediata

Saltos condicionales

Saltos Condicionales ADDR: dirección del sucesor potencial

COND: si se extrae de Secuencia

inmediata (MPC + 1) o de ADDR

MMUX: es un multiplexor que encamina a MPC+1 o ADDR al MPC

COND: 0=MPC+1, 1=Jump ADDR si N es 1, 2=Jump ADDR si Z=1, 3=Jump ADDR incondicionalmente.

Page 28: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

MacroarquitecturaMacroarquitectura

PROCESAMIENTO DE DATOS I

Arquitectura de Nivel 2-3

Arquitectura del Nivel de máquina convencional que deberá ser soportado por el intérprete que se ejecuta en la máquina de nivel 0

* Pilas* Pilas

* Juego de Macroinstrucciones* Juego de Macroinstrucciones

Page 29: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

PilasPilas

PROCESAMIENTO DE DATOS I

Definición

Componentes (SP)

Operaciones

PUSHPUSH

POPPOP

Aplicaciones

DireccionamientoDireccionamiento

Variables localesVariables locales

RecursividadRecursividad

Etc.Etc.

Page 30: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

El Juego de MacroinstruccionesEl Juego de Macroinstrucciones

PROCESAMIENTO DE DATOS I

4096 palabras de 16 bits

Registros:

Program Counter (PC)Program Counter (PC)

Stack Pointer (SP)Stack Pointer (SP)

Acumulator (AC)Acumulator (AC)

Modos de Direccionamiento

DirectoDirecto

IndirectoIndirecto

Local DesplazamientoLocal Desplazamiento

Page 31: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

El Juego de El Juego de MacroinstruccionesMacroinstrucciones

PROCESAMIENTO DE DATOS I

Page 32: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Procesamiento PIPELINEProcesamiento PIPELINE

PROCESAMIENTO DE DATOS I

Conformar un Hardware con varias unidades funcionales para después unirlas para que trabajen en línea o en forma escalonada

Obtenemos así un promedio de ejecución de una instrucción por ciclo y no una instrucción cada 5 ciclos

Page 33: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Procesamiento PIPELINEProcesamiento PIPELINE

PROCESAMIENTO DE DATOS I

Observaciones: Los saltos condicionales (ver B en diagrama), alteran la línea de procesamiento, pueden ser:

- Condicionales

- Incondicionales

- Iterativos

Page 34: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Memoria CACHÉMemoria CACHÉ

PROCESAMIENTO DE DATOS I

Memoria pequeña y rápida, bajo el control del microprograma.

C: Tiempo de acceso a caché

M: Tiempo de acceso a memoria

H: Proporción de aciertos

Tiempo medio de Acceso esC+(1-H)M

Proporción de Fallas1-H

Tiempo medio de Acceso esC+(1-H)M

Proporción de Fallas1-H

Se basa en el principio de localidad, en donde las referencias a las memorias realizadas en un intervalo de tiempo corto, tienden a usar solo una fracción de la memoria total.

Page 35: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Memoria CACHÉMemoria CACHÉ

PROCESAMIENTO DE DATOS I

Memoria Caché ASOCIATIVA:Memoria Caché ASOCIATIVA: cada renglón contiene el número de bloque y su entrada

Page 36: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Memoria CACHÉMemoria CACHÉ

PROCESAMIENTO DE DATOS I

Memoria Caché de MAPEO DIRECTO:Memoria Caché de MAPEO DIRECTO: Calcula el número de renglón de la dirección A como (A/4) módulo 1024

Page 37: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Memoria CACHÉMemoria CACHÉ

PROCESAMIENTO DE DATOS I

Memoria Caché ASOCIATIVA AGRUPADA:Memoria Caché ASOCIATIVA AGRUPADA: Combinación de las dos anteriores.

Page 38: El nivel de la Microprogramación PROCESAMIENTO DE DATOS I Para cada instrucción de un circuito específico. Uno para dividir, sumar, etc.... Las instrucciones

Ejemplo: Microarquitectura Ejemplo: Microarquitectura INTEL 8088INTEL 8088

PROCESAMIENTO DE DATOS I