Está en la página 1de 44

Organizacin del Computador 1

Mquina de von Neumann Jerarqua de Niveles

El modelo de Von Neumann

Antes: programar era conectar cables (ENIAC) Hacer programas era mas una cuestin de ingeniera electrnica Cada vez que haba que calcular algo distinto haba que reconectar todo. Imaginen eso !

John Von Neumann


1957 Matemtico Public y publicit la idea de programa almacenado en memoria 1945: Primer Borrador de un Reporte sobre la EDVAC EDVAC = Electronic Discrete VAriable Computer
1903

Lineamientos del modelo Von Neumann


Los

datos y programas se almacenan en una misma memoria de lectura-escritura Los contenidos de esta memoria se acceden indicando su posicin sin importar su tipo. Ejecucin en secuencia (salvo que se indique lo contrario). Representacin Binaria

Estructura de una mquina von Neumann

Caractersticas principales

3 componentes principales:

CPU:
Unidad de Control, Unidad aritmtico lgica (ALU), Registros

Memoria principal:
Almacena programas y datos

Sistema de Entrada/Salida
Conecta con el mundo exterior

Procesamiento secuencial de instrucciones Datos binarios Un sistema de interconexin

Conecta la memoria y unidad de control mediante un camino nico (ya sea fsico o lgico). Este camino nico fuerza la alternacin entre ciclos de lectura y ejecucin. Por eso se lo suele citar como el cuello de botella de Von Newman

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

Decodifica y Ejecuta instrucciones. Transforma instrucciones en rdenes a otros componentes Puede ser programada por hardware (cableada) y microprogramada (varias microinstrucciones por instruccin)

Unidad Aritmtico Lgica (ALU) Realiza operaciones matemticas y lgicas


Sumas, restas, multiplicaciones Operaciones lgicas: And, Or, Xor Desplazamientos y rotaciones de datos

Registros Almacenan datos binarios Acceso rpido Tamao fijo De propsito general (programas) Especficos

CPU

Acumulador Program counter Puntero a memoria

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

Ciclo de Ejecucin
1. 2. 3. 4. 5. 6.

UC obtiene la prxima instruccin de memoria (usando el registro PC) Se incrementa el PC La instruccin es decodificada a un lenguaje que entiende la ALU Obtiene de memoria los operandos requeridos por la instruccin La ALU ejecuta y deja los resultados en registros o en memoria Volver al paso 1

Ciclo de ejecucin

La unidad de control levanta la prxima de memoria usando el contador de programa (o RPI) que dice en que direccin esta la prxima instruccin.

Ciclo de ejecucin

La instruccin es decodificada a un lenguaje que entiende la ALU (unidad aritmtica lgica).

Ciclo de ejecucin

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

Ciclo de ejecucin

La ALU ejecuta la instruccin y coloca los resultados en registros o en memoria.

Tipos de Operaciones

Procesador-memoria

Transferencia de datos entre la CPU y la memoria Transferencia de datos entre la CPU y un modulo de E/S

Procesador-E/S

Procesamiento de datos

Alguna operacin aritmtica o lgica sobre los datos


Alteracin de la secuencia de operaciones Ej.: jump

Control

Primer implementacin de Von Newman: La IAS

IAS: Diagrama

Estructura de la IAS
Registros

MBR: Memory Buffer Register MAR: Memory Address Register IR: Instruction Register IBR: Instruction Buffer Register PC: Program Counter AC: Accumulator MQ: Multiplier Quotient

(UC)

Representacin de los datos en la IAS


Organizacin

de la memoria

1000 x 40 bit words Nmero Binario 2 instruccines x 20 bit


39

Palabra nmero 01
Signo

Palabra instruccin 0
Codop

8
Direccin

19 20
Codop

28
Direccin

39

Instruccin
Palabra instruccin 0
Codop

8
Direccin

19

La parte codop (los primeros 8 bits) especifican cul instruccin ser ejecutada. La parte de la direccin (los 12 bits restantes) especifican un operando (en memoria) que participa de la operacin.

Mquina 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)

Mquina von Neumann


Detalles de la estructura

MAR: Memory Adress Register


Especifica la direccin en memoria de la palabra que va a ser escrita o leda en MBR.

(UC)

Mquina von Neumann


Detalles de la estructura

IR: Instruction Register


Contiene los 8 bits del cdigo de operacin de la instruccin que se va a ejecutar.

(UC)

Mquina von Neumann


Detalles de la estructura

IBR: Instruction Buffer Register


Empleado para almacenar temporalmente la instruccin contenida en la parte derecha de una palabra en memoria.

(UC)

Detalles de la estructura

PC: Program Counter


Contiene la direccin de la prxima pareja de instrucciones que van a ser captadas de la memoria.

(UC)

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 nmeros de 40 bits es un nmero de 80 bits; los 40 bits ms significativos se almacenan en AC y los menos significativos se almacenan en MQ.

(UC)

Registros en otras arquitecturas

Modelo de von Neumann Bus del Sistema

Una posible configuracin

Buses

Bus

= Va comunicacin que conecta 2 o ms dispositivos En general broadcast (todos lo ven) En general agrupados

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

Data Bus

Transfieren

informacin Su tamao es un punto clave en la performance del sistema

8, 16, 32, 64 bits

Address bus
Identifican

la fuente o destino de un dato Ej: la CPU necesita leer una instruccin (dato) de una locacin en memoria Su tamao determina la capacidad mxima de memoria del sistema

Ej: el Intel 8080 tiene 16 bit => 64k de espacio direccionable

Control Bus

Control

y sincronizacin

Seal de lectura escritura a memoria Seales del reloj Solicitud de interrupcin

Modelos no von Neumann

Cuello de von Neumann

El procesador ejecuta una instruccin por vez Comunicacin con Memoria y E/S empeoran la cosas..
Buses especializados (DSPs usan buses de address y datos separados para instrucciones y operandos) Interrupciones Unidades de punto flotante Caches, Pipelines

Mejoras:

Otro enfoque: apartarse de la arquitectura clsica de von Neumann. Agregar procesadores es una posibilidad

Modelos no von Neumann

A finales de los 60 los sistemas de computo high-performance fueron equipados con procesadores duales para mejorar su desempeo. En los 70 supercomputadoras con 32 procesadores. En los 80 con 1000 procesadores En 1999, IBM anuncio su sistema Blue Gene que contiene aprox. 1 milln de procesadores.

Modelos no von Neumann


El

procesamiento paralelo es una de las formas de mejorar el poder de cmputo. ideas ms radicales:
Computadoras genticas Computadoras cunticas Sistemas Dataflow.

Otras

La jerarqua de niveles de una computadora


Una

computadora es mucho ms que chips. Para que la computadora haga algo necesita software Para escribir programas complejos se suele dividir el problema en mdulos que resuelven problemas mas simples En las computadoras

Varios niveles de mquinas virtuales

Jerarqua de niveles

Cada capa es una mquina virtual que abstrae a las maquina del nivel inferior. Las mquinas, en su nivel, interpretan sus instrucciones particulares, utilizando servicios de su capa inferior para implementarlas. En ltima instancia los circuitos terminan haciendo el trabajo

Jerarqua de niveles

Level 6: Nivel Usuario

Ejecucin de programas e interfaces de usuario.

Pensamos en terminos de la aplicacin que se ejecuta El nivel donde interactuamos cuando escribimos programas en Haskell, C, Java, etc.
Pensamos el algoritmos, TADs, etc.

Level 5: Lenguajes de alto nivel

Jerarqua de niveles

Level 4: Nivel de Lenguaje Ensamblador

Lenguaje ensamblador, en general producido por compiladores, o escrito directamente por programadores. Muy cercano a la arquitectura de la computadora.

Level 3: Nivel del software del Sistema Controla la ejecucin de los procesos del sistema. Protege los recursos. Brinda servicios para acceder a dispositivos de E/S Muchas instrucciones en Assembler pasan este nivel sin modificacin.

Jerarqua de niveles

Level 2: Nivel del Lenguaje de mquina

Tambin conocido como nivel ISA (Instruction Set Architecture).


Consiste en las instrucciones particulares para la arquitectura de la maquina. Los programas escritos en lenguaje de maquina no necesitan compilacin ni ensamblado.

Jerarqua de niveles

Level 1: Nivel de Control La unidad de control (UC) decodifica y ejecuta instrucciones y mueve datos a traves del sistema. Puede ser microprogramada o cableada.
Un microprograma es un programa escrito en un lenguaje de bajo nivel que puede ser implementado enl hardware. Las UC cableadas tienen hardware que ejecuta directamente las instrucciones en codigo de maquina

Hardwired vs. Micro-programada


Hardwired Micro-programada

Muy rpida, es un flujo directo Redes muy complejas de implementar No puede modificarse
Amarrado a la arquitectura

Interpretar instrucciones toma tiempo Programacin estndar, escalable Es posible hacer upgrade del programa
Flexible, varias implementaciones

Jerarqua de niveles

Level 0: Nivel de Lgica Digital Aqu encontramos los circuitos digitales (chips). Son bsicamente compuertas y cables. Implementan la lgica matemtica de los niveles superiores.

Links

http://www.turing.org.uk

John von Neumann, First Draft of a Report on the EDVAC, 1946 (en seccin download) Computer Architecture home page: www.cs.wisc.edu/~arch/www Null, L. and J. Lobur. The Essentials of Computer Organization and Architecture, Jones and Bartlett Publishers, Feb. 2003