arquitectura de von neumann. unidad de control ula registradores bus de direcciones bus de datos bus...

24
Arquitectura de Von Neumann

Upload: rosa-maria-caceres-morales

Post on 23-Jan-2016

245 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Arquitectura de Von Neumann

Page 2: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Unidad de Control

ULA

Reg

istra

do

res

Bus de direcciones

Bus de Datos

Bus de control

Arquitectura de Von Neumann

Memoria

Procesador

Page 3: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Arquitectura de Von Neumann

El procesador está compuesto:

a) Unidad de Control

b) Unidad Lógica Aritmética (ULA/ALU)

c) Tres registros básicos (puede tener muchos más):

Registro de Instrucción

Registro de direcciones o Contador de Programa (PC)

Acumulador

Page 4: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Ciclo de Instrucción

La ejecución de una Instrucción puede ser dividida en cinco partes:

• Ciclo de lectura.

• Ciclo de decodificación.

• Ciclo de cálculo de direcciones (de los operandos).

• Ciclo de Ejecución.

• Ciclo de Escritura .

Page 5: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Ciclo de Lectura En el ciclo de lectura el procesador realiza las siguientes tareas:

•La Unidad de Control calcula la dirección de la próxima instrucción (la que va ser ejecutada) y la coloca en el PC.

•La unidad de control coloca el contenido del PC en el bus de direcciones.

•La Unidad de control envía una señal de control (por el bus de control) informando que la operación es de lectura a la memoria.

•Se hace la lectura de la memoria y se coloca el contenido de la palabra solicitada en el bus de datos.

•la memoria envía una señal de control (por el bus de control) informando que la información ya esta en el bus de datos.

•La unidad de control carga la información que se encuentra en el bus de datos en el registro de instrucción.

•En este punto termina el ciclo de lectura

Page 6: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Ciclo de DecodificaciónDecodificar significa interpretar o determinar la semántica de la instrucción.

•La unidad de control debe interpretar la instrucción que se encuentra en el registro de instrucción.

•En este sentido, debe conocer la semántica de cada instrucción de todo el conjunto de instrucciones ofrecido por la arquitectura

•El diseñador coloca el conocimiento sobre la semántica de las instrucciones en la unidad de control.

•De la misma manera, el diseñador coloca la unidad de control el conocimiento de como una instrucción debe ser ejecutada.

•En la verdad, lo que es decodificado (o interpretado) es el OPCODE de la instrucción.

•En la ejecución de una instrucción, la unidad de control envía las señales de control necesarias (y en orden correcto) para que la instrucción sea ejecutada correctamente.

Page 7: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Ciclo de Cálculo de direcciónLa unidad de control necesita saber donde están los operandos que serán usados en la ejecución de la instrucción.

•En el caso de la instrucción SUM #13, el primer operando está en el acumulador y el segundo está en el byte que sigue a la instrucción.

•Este operado requiere ser traído para el procesador mediante una operación de lectura.

•El cálculo de las direcciones depende de la arquitectura y del modo de direccionamiento del conjunto de instrucciones.

Page 8: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Ciclo de EjecuciónTomemos el caso del ciclo de ejecución para la instrucción siguiente:

 SUM A, #13

Semántica: sumar al contenido del acumulador el valor especificado en el segundo byte de la instrucción (en este caso: 13)

•El procesador carga el contenido del acumulador en una de las entradas de la ULA.

•El procesador carga el valor de 13 (en binario) en la otra entrada de la ULA

•El procesador indica a ULA que la operación va ser la suma

•La ULA realiza la operación y la unidad de control direcciona el resultado para el acumulador.

Page 9: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Ciclo de EscrituraEn el ciclo de escritura la Unidad de Control ejecuta las siguientes tareas:

•La Unidad de Control calcula la dirección (si fuera necesario) de la posición de la memoria donde será copiado el resultado de la instrucción.

•La dirección es cargada en el bus de direcciones.

•La Unidad de Control coloca la información del resultado en el bus de datos

•La Unidad de Control envía una señal de control indicando que la operación es de escritura.

•La memoria realiza la operación de escritura en la posición respectiva de memoria.

Page 10: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Unidad de Control

ULA

Reg

istra

do

res

Bus de direcciones

Bus de Datos

Bus de Control

Recapitulando…

La arquitectura está formada por el procesador, memoria, buses y por el Conjunto de Instrucciones, y este es determinado por el diseñador !

Page 11: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Unidad de Controle

ULA Reg

istra

dor

es

Bus de direcciones

Bus de Datos

Bus de Control

Toda Instrucción tiene un código en binario. Ejemplo:

SUM = 10101101 (código de la instrucción en binario)

El código de la instrucción en binario es denominado OPCODE (Código de operación). En este caso, el OPCODE ocupa un byte y el operando ocupa otro o byte. La instrucción completa ocupa dos bytes

SUM13

Page 12: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Modos de direccionamientoEn la instrucción SUM #13 un operando es el contenido del acumulador y el otro operando está incluido en la propia instrucción

•En este caso, el segundo byte de la instrucción contiene el segundo operando de la instrucción.

•Observe que el primer operando ya está en el acumulador y solo requiere ser cargado en este registrador para la ULA

•El segundo operando está en la memoria (luego debe ser traído mediante una operación típica de lectura)

•La manera como son obtenidos los operandos de una instrucción es denominada el Modo de direccionamiento.

•Está instrucción tiene un modo de direccionamiento para el primer operando y otro modo para el segundo operando.

Page 13: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Modos más comunes de DireccionamientoModo de

direccionamiento

Ejemplo de instrucción

Semántica En que caso es usado

Registro Add Acc, B Acc Acc + B cuando un valor está en un registro. En este caso, el

acumulador (Acc) recibe su valor actual mas el

contenido del registrador B Inmediato Add Acc, #3 Acc Acc + 3 Para constantes Directo o absoluto

Add B, (1001) B B + Mem[1001] Usado para acesar datos estáticos; la constante de

endereccionamiento puede requerir ser grande. En este caso, el registrador

B recibe su valor actual pero el contenido de la

posiçión de memoria 1001 Indirecto de

memoria Add B, @(1000) B B+

Mem[Mem[1000]] Si 1000 es la dirección de

un puntero p, entonces este modo produce *p

Page 14: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Unidade de Controle

ULA Reg

istra

dor

es

Bus de direcciones

Bus de Datos

Bus de Control

13SUM

Limitaciones del Modelo de Von Neumann

“El embotellamiento de Von Neumann !”

El problema del tráfico en le bus de

datos

Page 15: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Aún no hemos hablado sobre el problema de las limitaciones del Modelo de Von Neumann !

• Los buses pueden ser vistos como canales de comunicación.

•Específicamente, el bus de datos soporta el transito de las instrucciones y de los datos.

• Además, el bus de datos es bidireccional

• que sucede en una avenida donde se duplica el flujo de carros por unidad de tiempo ?.

Limitaciones del Modelo de Von Neumann

Page 16: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

• Debe ser observado que esto es una limitación del modelo computacional.

• Podemos mejorar el canal:

�eje: aumentando el ancho de banda (por ejemplo,

pasando de 32 bits a 64 bits)

Limitaciones del Modelo de Von Neumann

Entretanto, el nuevo canal volverá a tene una limitación de la misma naturaleza!!!

Page 17: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

“Embotellamiento de Von Neumann”

• La expresión embotellamiento de Von Neumann parece haber sido usada por primera vez por Backus (1978), en 1977

• Sucedió cuando daba una conferencia cuando recibió el primio Turing de la ACM, intitulada “Can programming be liberated from the von Neumann style? A functionl style and íts algebra of proqrams”

• Backus critica el hecho de que más de 30 años después de la la introducción de las arquitecturas de Von Neumann aún son dominantes

Page 18: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

“Embotellamiento de Von Neumann”

• Podemos resumir el problema del embotellamiento de Von Neumann en dos dos términos

a) el canal de comunicación (bus) entre el procesador y la memoria tiene capacidad limitada

b) ejecución del programa es secuencial !

Page 19: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Como resolver el problema?

• en la verdad, solo podemos “aliviar” el problema del embotellamiento de Von Neumann

• Esto sucede, debido a que son limitaciones intrínsecas del modelo

• En el primer punto, podemos aumentar el ancho de la banda del canal.

Estas ha sido las tendencias en desarrollo de los procesadores !

a) aumentando el tamaño (en bits) del bus

b) usando fibras ópticas para implementar el bus.

Page 20: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Como resolver el problema?

En el segundo punto podemos usar Paralelismo

Podemos dividir el programa en vários subprogramas

Estos subprogramas deben ser independientes entre sí

Desta manera, pueden ser ejecutados en paralelo (en processadores independientes)

Desafortunademente no siempre se puede usar paralelismo!!! Los programas tienen un grado de paralelismo....

Esta ha sido otra tendencia en desarrollo de los computadores….

Page 21: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

El problema de usar paralelismo !

•Supongamos este trecho de programa:

1a instrucción: a = b + c

2a instrucción: d = a * d

3a instrucción: z = a + d

• Si tuvieramos 3 procesadores, solo uno podrá trabajar !

• Los otros 2 procesadores quedarán de “brazos cruzados”

• Esto sucede por la denominada “Dependencia de Datos !”

• Este programa solo puede ser ejecutado secuencialmente!!!

Page 22: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

El problema de usar paralelismo

• Un programa ejecutado en paralelo (usando vários procesadores) debe dar el mismo resultado que si es ejecutado secuencialmente !

• Esto es, la integridad secuencial del programa debe ser mantenida cuando es ejecutado usando varios procesadores !

Page 23: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Proc60%/yr.(2X/1.5 ano)

DRAM9%/yr.(2X/10 ano)1

10

100

10001980

1981

1983

1984

1985

1986

1987

1988

1989

1990

1991

1992

1993

1994

1995

1996

1997

1998

1999

2000

1982

Processador-memoria“gap”de desempeño:(crece 50% / year)

Des

emp

eño

Año

Ley de Moore

El problema del gap entre procesador y las Memórias

Esto muestra el drama: el desempeño de los procesadores avanza mas rápido que el desempeño de la memórias !

Page 24: Arquitectura de Von Neumann. Unidad de Control ULA Registradores Bus de direcciones Bus de Datos Bus de control Arquitectura de Von Neumann Memoria Procesador

Unidad de Control

ULA Reg

istra

dor

es

Bus de didrecciones

Bus de Datos

Bus de Control

13SUM

Cual ha sido una forma de resolver el problema !

Memoria Cache