Modelo von newman

32
El modelo de Von Neumann El modelo de Von Neumann Antes: programar Antes: programar era conectar era conectar cables… (ENIAC) cables… (ENIAC) Hacer programas era Hacer programas era mas una cuestión de mas una cuestión de ingeniería ingeniería electrónica electrónica Cada vez que había Cada vez que había que calcular algo que calcular algo distinto había que distinto había que reconectar todo. reconectar todo. Imaginen eso ! Imaginen eso !

description

aaaaaaaaaaa

Transcript of Modelo von newman

Page 1: Modelo von newman

El modelo de Von NeumannEl modelo de Von Neumann

Antes: programar era Antes: programar era conectar cables… conectar cables… (ENIAC)(ENIAC)

Hacer programas era Hacer programas era mas una cuestión de mas una cuestión de ingeniería electrónicaingeniería electrónica

Cada vez que había Cada vez que había que calcular algo que calcular algo distinto había que distinto había que reconectar todo.reconectar todo.

Imaginen eso !Imaginen eso !

Page 2: Modelo von newman

John Von NeumannJohn Von Neumann

1903 – 19571903 – 1957 MatemáticoMatemático Publicó y publicitó la idea de Publicó y publicitó la idea de

programa almacenado en programa almacenado en memoriamemoria

1945: 1945: “Primer Borrador de un “Primer Borrador de un Reporte sobre la EDVAC”Reporte sobre la EDVAC”

EDVAC = Electronic Discrete EDVAC = Electronic Discrete VAriable ComputerVAriable Computer

Page 3: Modelo von newman

Lineamientos del modelo Von NeumannLineamientos del modelo Von Neumann

Los datos y programas se almacenan en una Los datos y programas se almacenan en una misma memoria de lectura-escrituramisma memoria de lectura-escritura

Los contenidos de esta memoria se acceden Los contenidos de esta memoria se acceden indicando su posición sin importar su tipo.indicando su posición sin importar su tipo.

Ejecución en secuencia (salvo que se indique Ejecución en secuencia (salvo que se indique lo contrario).lo contrario).

Representación BinariaRepresentación Binaria

Page 4: Modelo von newman

Estructura de una máquina von NeumannEstructura de una máquina von Neumann

Page 5: Modelo von newman

Características principalesCaracterísticas principales 3 componentes principales:3 componentes principales:

CPUCPU::• Unidad de Control, Unidad aritmético lógica (ALU), RegistrosUnidad de Control, Unidad aritmético lógica (ALU), Registros

Memoria principalMemoria principal::• Almacena programas y datosAlmacena programas y datos

Sistema de Entrada/SalidaSistema de Entrada/Salida• Conecta con el mundo exteriorConecta con el mundo exterior

Procesamiento secuencial de instruccionesProcesamiento secuencial de instrucciones Datos binariosDatos binarios Un sistema de interconexiónUn sistema de interconexión

Conecta la memoria y unidad de control mediante un camino único Conecta la memoria y unidad de control mediante un camino único (ya sea físico o lógico).(ya sea físico o lógico).

Este camino único fuerza la alternación entre ciclos de lectura y Este camino único fuerza la alternación entre ciclos de lectura y ejecución.ejecución.

Por eso se lo suele citar como el cuello de botella de Von NewmanPor eso se lo suele citar como el cuello de botella de Von Newman

Page 6: Modelo von newman

CPUCPUUnidad de Control (UC)Unidad de Control (UC) Controla todos los componentesControla todos los componentes Interpreta instrucciones Interpreta instrucciones

DecodificaDecodifica y y EjecutaEjecuta instrucciones. instrucciones. Transforma instrucciones en Transforma instrucciones en órdenes a otros componentesórdenes a otros componentes Puede ser programada por Puede ser programada por hardware (cableada) yhardware (cableada) y “ “microprogramada” (varias microprogramada” (varias microinstrucciones por microinstrucciones por instrucción)instrucción)

Unidad Aritmético Lógica (ALU)Unidad Aritmético Lógica (ALU) Realiza operaciones matemáticas Realiza operaciones matemáticas y lógicasy lógicas

Sumas, restas, multiplicacionesSumas, restas, multiplicaciones Operaciones lógicas: And, Or, XorOperaciones lógicas: And, Or, Xor Desplazamientos y rotaciones de datos Desplazamientos y rotaciones de datos

Page 7: Modelo von newman

CPU CPU RegistrosRegistros Almacenan datos binariosAlmacenan datos binarios Acceso rápidoAcceso rápido Tamaño fijo Tamaño fijo De propósito general De propósito general

(programas) (programas) Específicos Específicos

AcumuladorAcumulador Program counterProgram counter Puntero a memoriaPuntero a memoria

DataPathDataPath Conexionado interno que comunica la UC con las otras unidades y registros. Conexionado interno que comunica la UC con las otras unidades y registros. Mueve datos entre los diferentes componentesMueve datos entre los diferentes componentes Controlado por un reloj.Controlado por un reloj.

Page 8: Modelo von newman

Ciclo de EjecuciónCiclo de Ejecución

1.1. UC obtiene la próxima instrucción de UC obtiene la próxima instrucción de memoria (usando el registro PC)memoria (usando el registro PC)

2.2. Se incrementa el PCSe incrementa el PC

3.3. La instrucción es decodificada a un La instrucción es decodificada a un lenguaje que entiende la ALUlenguaje que entiende la ALU

4.4. Obtiene de memoria los operandos Obtiene de memoria los operandos requeridos por la instrucciónrequeridos por la instrucción

5.5. La ALU ejecuta y deja los resultados La ALU ejecuta y deja los resultados en registros o en memoriaen registros o en memoria

6.6. Volver al paso 1Volver al paso 1

Page 9: Modelo von newman

La unidad de control levanta la próxima de memoria La unidad de control levanta la próxima de memoria usando el “contador de programa” (o RPI) que dice en usando el “contador de programa” (o RPI) que dice en que dirección esta la próxima instrucción.que dirección esta la próxima instrucción.

Ciclo de ejecuciónCiclo de ejecución

Page 10: Modelo von newman

La instrucción es decodificada a un lenguaje que La instrucción es decodificada a un lenguaje que entiende la ALU (unidad aritmética lógica).entiende la ALU (unidad aritmética lógica).

Ciclo de ejecuciónCiclo de ejecución

Page 11: Modelo von newman

Cada operando requerido para ejecutar es levantado de Cada operando requerido para ejecutar es levantado de la memoria principal y ubicado en registros dentro de la la memoria principal y ubicado en registros dentro de la CPU.CPU.

Ciclo de ejecuciónCiclo de ejecución

Page 12: Modelo von newman

La ALU ejecuta la instrucción y coloca los resultados en La ALU ejecuta la instrucción y coloca los resultados en registros o en memoria.registros o en memoria.

Ciclo de ejecuciónCiclo de ejecución

Page 13: Modelo von newman

Tipos de OperacionesTipos de Operaciones

Procesador-memoriaProcesador-memoria Transferencia de datos entre la CPU y la memoriaTransferencia de datos entre la CPU y la memoria

Procesador-E/SProcesador-E/S Transferencia de datos entre la CPU y un modulo de E/STransferencia de datos entre la CPU y un modulo de E/S

Procesamiento de datosProcesamiento de datos Alguna operación aritmética o lógica sobre los datosAlguna operación aritmética o lógica sobre los datos

ControlControl Alteración de la secuencia de operacionesAlteración de la secuencia de operaciones Ej.: jumpEj.: jump

Page 14: Modelo von newman

Primer implementación de Von Newman: Primer implementación de Von Newman: La IASLa IAS

Page 15: Modelo von newman

IAS: Diagrama IAS: Diagrama

Page 16: Modelo von newman

Estructura de la IASEstructura de la IAS

RegistrosRegistros MBR: Memory Buffer MBR: Memory Buffer

RegisterRegister MAR: Memory Address MAR: Memory Address

RegisterRegister IR: Instruction RegisterIR: Instruction Register IBR: Instruction Buffer IBR: Instruction Buffer

RegisterRegister PC: Program CounterPC: Program Counter AC: AccumulatorAC: Accumulator MQ: Multiplier QuotientMQ: Multiplier Quotient

(UC)

Page 17: Modelo von newman

Representación de los datos en la IASRepresentación de los datos en la IAS Organización de la memoriaOrganización de la memoria

1000 x 40 bit words1000 x 40 bit words Número BinarioNúmero Binario 2 instrucciónes x 20 bit 2 instrucciónes x 20 bit

0 1 39

0 8 19 20 28 39

Codop Dirección Codop Dirección

Signo

Palabra número

Palabra instrucción

Page 18: Modelo von newman

InstrucciónInstrucción

0 8 19

Codop Dirección

Palabra instrucción

• La parte codop (los primeros 8 bits) especifican cuál instrucción será ejecutada.

• La parte de la dirección (los 12 bits restantes) especifican un operando (en memoria) que participa de la operación.

Page 19: Modelo von newman

Máquina von Neumann

Detalles de la estructura

MBR:Memory Buffer Register

Contiene una palabra que debe ser almacenada en la memoria, o es usado para recibir una palabra procedente de la memoria.

(UC)

Page 20: Modelo von newman

Máquina von Neumann

Detalles de la estructura

MAR:Memory Adress Register

Especifica la dirección en memoria de la palabra que va a ser escrita o leída en MBR.

(UC)

Page 21: Modelo von newman

Máquina von Neumann

Detalles de la estructura

IR:Instruction Register

Contiene los 8 bits del código de operación de la instrucción que se va a ejecutar.

(UC)

Page 22: Modelo von newman

Máquina von Neumann

Detalles de la estructura

IBR:Instruction Buffer Register

Empleado para almacenar temporalmente la instrucción contenida en la parte derecha de una palabra en memoria.

(UC)

Page 23: Modelo von newman

Detalles de la estructura

PC:Program Counter

Contiene la dirección de la próxima pareja de instrucciones que van a ser captadas de la memoria.

(UC)

Page 24: Modelo von newman

Detalles de la estructura

AC y MQ:Accumulator y Multiplier Quotient

Se emplean para almacenar operandos y resultados de operaciones de la ALU temporalmente. Por ejemplo, el resultado de multiplicar dos números de 40 bits es un número de 80 bits; los 40 bits más significativos se almacenan en AC y los menos significativos se almacenan en MQ.

(UC)

Page 25: Modelo von newman

Registros en otras arquitecturasRegistros en otras arquitecturas

Page 26: Modelo von newman

Modelo de von NeumannModelo de von NeumannBus del SistemaBus del Sistema

Page 27: Modelo von newman

Una posible configuraciónUna posible configuración

Page 28: Modelo von newman

BusesBuses

Bus = Vía comunicación que conecta 2 o más Bus = Vía comunicación que conecta 2 o más dispositivosdispositivos

En general “broadcast” (todos lo ven)En general “broadcast” (todos lo ven) En general agrupadosEn general agrupados

Varios canales en un grupoVarios canales en un grupo Ej: Data bus de 32 bits, son 32 canales de 1 bitEj: Data bus de 32 bits, son 32 canales de 1 bit

Page 29: Modelo von newman

Data BusData Bus

Transfieren informaciónTransfieren información Su tamaño es un punto clave en la Su tamaño es un punto clave en la

performance del sistemaperformance del sistema 8, 16, 32, 64 bits8, 16, 32, 64 bits

Page 30: Modelo von newman

Address busAddress bus

Identifican la fuente o destino de un datoIdentifican la fuente o destino de un dato Ej: la CPU necesita leer una instrucción Ej: la CPU necesita leer una instrucción

(dato) de una locación en memoria(dato) de una locación en memoria Su tamaño determina la capacidad máxima Su tamaño determina la capacidad máxima

de memoria del sistemade memoria del sistema Ej: el Intel 8080 tiene 16 bit => 64k de espacio Ej: el Intel 8080 tiene 16 bit => 64k de espacio

direccionabledireccionable

Page 31: Modelo von newman

Control BusControl Bus

Control y sincronización Control y sincronización Señal de lectura escritura a memoriaSeñal de lectura escritura a memoria Señales del relojSeñales del reloj Solicitud de interrupciónSolicitud de interrupción

Page 32: Modelo von newman

BIOGRAFIABIOGRAFIA http://www.turing.org.uk John von Neumann, “First Draft of a John von Neumann, “First Draft of a

Report on the EDVAC”, 1946 (en sección Report on the EDVAC”, 1946 (en sección download)download)

Computer Architecture home page: Computer Architecture home page: www.cs.wisc.edu/~arch/www

Null, L. and J. Lobur. The Essentials of Null, L. and J. Lobur. The Essentials of Computer Organization and Architecture, Computer Organization and Architecture, Jones and Bartlett Publishers, Feb. 2003 Jones and Bartlett Publishers, Feb. 2003