La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Arquitectura de Von Neumann

Presentaciones similares


Presentación del tema: "Arquitectura de Von Neumann"— Transcripción de la presentación:

1 Arquitectura de Von Neumann

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

3 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

4 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 .

5 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

6 Ciclo de Decodificación
Decodificar 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.

7 Ciclo de Cálculo de dirección
La 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.

8 Ciclo de Ejecución Tomemos 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.

9 Ciclo de Escritura En 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.

10 Recapitulando… Bus de direcciones Unidad de Control Bus de Datos ULA
Registradores Bus de direcciones Bus de Datos Bus de Control La arquitectura está formada por el procesador, memoria, buses y por el Conjunto de Instrucciones, y este es determinado por el diseñador !

11 SUM = 10101101 (código de la instrucción en binario)
Bus de direcciones SUM 13 Unidad de Controle Bus de Datos ULA Registradores Bus de Control Toda Instrucción tiene un código en binario. Ejemplo: SUM = (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

12 Modos de direccionamiento
En 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.

13 Modos más comunes de Direccionamiento

14 Limitaciones del Modelo de Von Neumann
“El embotellamiento de Von Neumann !” Unidade de Controle ULA Registradores Bus de direcciones Bus de Datos Bus de Control 13 SUM El problema del tráfico en le bus de datos

15 Limitaciones del Modelo de Von Neumann
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 ?.

16 Limitaciones del Modelo de Von Neumann
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) Entretanto, el nuevo canal volverá a tene una limitación de la misma naturaleza!!!

17 “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

18 “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 !

19 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.

20 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….

21 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!!!

22 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 !

23 El problema del gap entre procesador y las Memórias
1000 Proc 60%/yr. (2X/1.5 ano) Ley de Moore 100 Processador-memoria “gap”de desempeño: (crece 50% / year) Desempeño 10 DRAM 9%/yr. (2X/10 ano) 1 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 Año Esto muestra el drama: el desempeño de los procesadores avanza mas rápido que el desempeño de la memórias !

24 Cual ha sido una forma de resolver el problema !
Bus de Datos Bus de didrecciones SUM Unidad de Control ULA Registradores 13 Memoria Cache Bus de Control


Descargar ppt "Arquitectura de Von Neumann"

Presentaciones similares


Anuncios Google