Arquitectura Von Neumann

18
UNIVERSIDAD MESOAMERICANA Sede Quetzaltenango Área común de Ingeniería Sección A Programación IV Ing. Fernando Cifuentes Arquitectura Von Neumann David Alberto Aguilar Pereda 200907008 Pablo Enrique Huinac Hernández 201108082

Transcript of Arquitectura Von Neumann

Page 1: Arquitectura Von Neumann

UNIVERSIDAD MESOAMERICANASede QuetzaltenangoÁrea común de IngenieríaSección AProgramación IVIng. Fernando Cifuentes

Arquitectura Von Neumann

David Alberto Aguilar Pereda 200907008Pablo Enrique Huinac Hernández 201108082José Antonio Dardón 201108157Ludwing Alejandro Ochoa Lau 201214045

Quetzaltenango, viernes 26 de julio de 2013

Page 2: Arquitectura Von Neumann

INTRODUCCIÓNLa mayoría de los sistemas informáticos actuales siguen al pie de la letra la arquitectura propuesta por Von Newmann en el diseño del EDVAC. Esta arquitectura se caracteriza porque el programa que ejecuta el sistema informático está almacenado internamente (es información) en el propio sistema.

La arquitectura de computadores es una ciencia relativamente nueva y, a pesar de los increíbles avances que estamos obteniendo hoy día con las nuevas arquitecturas paralelas, GPUs, etc, este avance no es tan grande, arquitecturalmente hablando, como podríamos pensar. Los actuales ordenadores están basados fundamentalmente en la misma arquitectura desde que la computadora EDVAC fue diseñada por John Presper Eckert, John William Mauchly y John von Neumann. Esta computadora tenía una arquitectura diferente a su predecesora ENIAC. Tenía cinco partes bien diferenciadas: La unidad aritmético-lógica o ALU, la unidad de control, la memoria, un dispositivo de entrada/salida y el bus de datos que proporciona un medio de transporte de los datos entre las distintas partes.

1

Page 3: Arquitectura Von Neumann

ARQUITECTURA VON NEUMANN

ORIGEN

El nacimiento de la arquitectura Von Neumann surge a raíz de una colaboración en el proyecto ENIAC del matemático de orígen húngaro, John Von Neumann. Este trabajaba en 1947 en el laboratorio atómico de Los Alamos cuando se encontró con uno de los constructores de la ENIAC. Compañero de Einstein, Goedel y Turing en Princeton, Von Neumann se interesó por el problema de la necesidad de "recablear" la máquina para cada nueva tarea. 

En 1949 había encontrado y desarrollado la solución a este problema, consistente en poner la información sobre las operaciones a realizar en la misma memoria utilizada para los datos, escribiéndola de la misma forma, es decir en código binario. Su "EDVAC" fue el modelo de las computadoras de este tipo construidas a continuación. Se habla desde entonces de la "arquitectura de Von Neumann", aunque también diseñó otras formas de construcción. El primer computador comercial construido en esta forma fue el UNIVAC 1, fabricado en 1951

por la Sperry-Rand Corporation y comprado por la Oficina del Censo de Estados Unidos. 

ORGANIZACIÓNLa arquitectura de Von Newmann define los siguientes elementos: Unidad Central de Proceso (CPU - Central Processing Unit)

ALU: Unidad aritmética lógica. Circuito digital que calcula operaciones aritméticas y operaciones lógicas.

ACC: Acumulador. IP: Apuntador de instrucciones. ID: Decodificador de instrucciones. CCR: Registro de código de instrucciones.

Memoria principal

Controlador de entrada salida

Buses del sistema

Bus de datos.

Bus de direcciones.

Bus de control.

2

Page 4: Arquitectura Von Neumann

ILUSTRACIÓN 1 DIAGRAMA

UNIDAD CENTRAL DE PROCESO (CPU) La CPU es el lugar en el que se procesa la información de acuerdo a las instrucciones del programa. La CPU de un sistema informático repite una serie de pasos en los que continuamente accede a memoria para leer la próxima instrucción a ejecutar, realiza lo que ordena la instrucción y vuelta a empezar.

Cuando la CPU está implementada en un único circuito integrado se llama microprocesador (µP). 

En una CPU podemos distinguir:

UNIDAD ARITMÉTICO LÓGICA (ALU ARITHMETIC AND LOGICAL UNIT)Se encarga de realizar las operaciones aritméticas (sumas, restas, multiplicaciones, etc..) y lógicas (AND, OR, rotaciones, desplazamientos, etc...) con los datos. Normalmente los datos con los que opera, así como los resultados de la operación se encuentran en registros de la CPU.Las operaciones que es capaz de realizar están definidas por el juego de instrucciones de la CPU. Es posible encontrar ALUs con capacidades orientadas hacia la operación con valores enteros, coma flotante o números imaginarios (por ejemplo en las DSP.)

BANCO DE REGISTROS

3

Page 5: Arquitectura Von Neumann

Proporciona un espacio de almacenamiento para los datos con los que trabaja la CPU. Los registros se deben cargar con información que proviene de la memoria principal antes de comenzar a operar, cuando se necesita dejar espacio libre en el banco de registros para operar con nuevos datos su valor debe escribirse en la memoria principal. Operar con datos en el banco de registros es mucho más rápido que operar con datos que se encuentran en la memoria principal, por eso, cuanto mayor sea el banco de registros se requerirán menos trasvases con la memoria principal y la tarea se realizará antes.Es posible que no todos los registros tengan las mismas características. Normalmente se distingue entre:

Registros de datos: Guardan la información con la que se trabaja. Registros de direcciones: Guardan direcciones de memoria (en las que puede

haber datos). Registros de control: Controlan el estado de la CPU (flags: zero, overflow,

underflow, positivo/negativo...)

UNIDAD DE CONTROLSe encarga de leer las instrucciones máquina almacenadas en la memoria principal y de generar las señales de control necesarias para controlar y coordinar el resto de las unidades funcionales de un ordenador, con el fin de ejecutar las instrucciones leídas.

Partes fundamentales:

Contador de programa: Registro que apunta a la dirección de memoria de la próxima instrucción a ejecutar. Se incrementa automáticamente después de ejecutar cada instrucción.

Registro de instrucción: Guarda la instrucción que se está ejecutando. Decodificador: Interpreta la instrucción a ejecutar. Reloj: Genera una señal de sincronía. Secuenciador: Activa en el orden adecuado las diferentes unidades

funcionales para ejecutar la instrucción.

Los dos tipos más frecuentes de unidades de control son:

Cableada: La lógica de las operaciones está implementada mediante hardware.

Microprogramada: Se trata de una pequeña CPU en miniatura que puede programarse para realizar diferentes tareas. Son más flexibles pero más lentas.

BUSESTransportan la información entre los diferentes elementos de la CPU. Se distingue entre el bus de datos (que transporta la información que se está procesando) y el bus de control (que proporciona toda la señalización necesaria para realizar el trabajo de forma ordenada). 

4

Page 6: Arquitectura Von Neumann

MEMORIA PRINCIPAL La memoria principal tiene por objeto guardar información que es accesible a la CPU. La CPU puede leer y/o escribir datos en las diferentes posiciones de memoria que componen la memoria principal.La memoria principal tiene menor capacidad que la memoria secundaria (que virtualmente es ilimitada), pero es mucho más rápida. Actualmente la memoria principal se implementa mediante circuitos integrados. La memoria principal de los sistemas informáticos suele estar formada por dos áreas diferenciadas:

1. Memoria RAM (Random Access Memory): Memoria de acceso aleatorio (no tiene porqué ser utilizada de manera secuencial) que permite tanto la lectura como la escritura. Habitualmente en los sistemas informáticos se trata de un medio de almacenamiento volátil, de manera que se pierde su contenido al cesar la alimentación.

2. Memoria ROM (Read Only Memory): Memoria de acceso aleatorio que sólo permite la lectura de los datos que almacena. Se trata de un medio de almacenamiento persistente, pues no pierde su contenido cuando cesa la alimentación.

CONTROLADOR DE ENTRADA/SALIDA (I/O) En la medida en la que el sistema informático precisa comunicarse con el mundo exterior (utilizando diferentes periféricos), es necesario un elemento que controle el flujo de información que entra y/o sale del sistema informático.Los periféricos del sistema informático se pueden clasificar en: Periféricos de entrada: Si sirven para introducir información en el sistema informático (ej.

teclado, ratón...) Periféricos de salida: Si representan información que sale del sistema informático (ej.

monitor, impresora...)Las tres técnicas más extendidas de gestión de I/O son:

1. Polling o espera activa: La CPU se encarga de la transferencia de información consultando continuamente el estado del dispositivo periférico. Simple e ineficiente.

2. Uso de interrupciones: La CPU se encarga de la transferencia de información pero el dispositivo periférico le notifica los cambios de estado mediante una interrupción.

3. DMA (Direct Memory Access): El controlador DMA se encarga de toda la transferencia de información (puede ser un bloque, y puede requerir de conversión). Al finalizar el controlador DMA utiliza una interrupción para notificarlo a la CPU. Con esta técnica, la CPU programa al controlador DMA para realizar el trabajo y queda libre (para realizar otras tareas). Es la técnica más eficiente.

BUSES DEL SISTEMA Los buses son las vías de comunicación que permiten mover la información entre los distintos elementos de la arquitectura Von Newmann. Desde el punto de vista electrónico un bus es una serie de pistas que transportan información entre diferentes elementos. El número de líneas que tiene el bus determina el número de bits que se pueden transportar en paralelo. Los buses suelen ser elementos síncronos que funcionan gobernados por un reloj. Normalmente en cada ciclo de reloj se transporta un dato (de 8, 16 o 32 bits según la anchura del bus), también existen buses que realizan dos operaciones en cada ciclo de reloj (utilizan tanto el flanco de bajada como el flanco de subida).

5

Page 7: Arquitectura Von Neumann

Si el bus fuese capaz de utilizar tanto el flanco de subida como el de bajada para transmitir información, se doblaría la capacidad útil.

BUS DE DATOSComo su nombre indica transporta datos. Estos datos pueden ser la información que se está procesando o las instrucciones del programa que se ejecuta. Hay que recordar que en la arquitectura Von Newmann el programa está guardado en el interior del sistema informático codificado como información.

El ancho en bits del bus de datos define el tamaño de la palabra del sistema informático, habitualmente es 8bits, 16bits, 32bits o 64bits.

BUS DE DIRECCIONES:El bus de direcciones se utiliza para indicar el origen y/o el destino de los datos. En el bus de direcciones se indica la posición de memoria a la  que se está accediendo en cada momento. Puede tratarse de una dirección de la memoria principal o puede tratarse de una dirección de memoria en la que está mapeado un periférico.

El ancho en bits del bus de direcciones determina el tamaño del espacio de memoria direccionable.

BUS DE CONTROL:El bus de control proporciona señales para coordinar las diferentes tareas que se realizan en el sistema informático.

Algunas de las señales que podemos encontrar:

CLK: Frecuencia de reloj. CS (Chip select): Activa el chip a utilizar. READY: Está disponible el dispositivo. R/W: Se trata de una operación de lectura o escritura.

ALGORITMO DE FUNCIONAMIENTOUn ordenador con esta arquitectura realiza o emula los siguientes pasos secuencialmente: 

1. Enciende el ordenador y obtiene la siguiente instrucción desde la memoria en la dirección indicada por el contador de programa y la guarda en el registro de instrucción. 

2. Aumenta el contador de programa en la longitud de la instrucción para apuntar a la siguiente. 

3. Decodifica la instrucción mediante la unidad de control. Ésta se encarga de coordinar el resto de componentes del ordenador para realizar una función determinada. 

4. Se ejecuta la instrucción. Ésta puede cambiar el valor del contador del programa, permitiendo así operaciones repetitivas. El contador puede cambiar también cuando se cumpla una cierta condición aritmética, haciendo que el ordenador pueda 'tomar

6

Page 8: Arquitectura Von Neumann

decisiones', que pueden alcanzar cualquier grado de complejidad, mediante la aritmética y lógica anteriores. 

5. Vuelve al paso 1. 

DIAGRAMA DE ARQUITECTURA

VENTAJAS DE LA ARQUITECTURA Permite código automodificable Arquitectura electrónica fácil de diseñar Instrucciones y datos recuperados de forma secuencial (Von Neumann Bottleneck)

DESVENTAJAS DE LA ARQUITECTURA Debido a que la memoria es común a los datos y las instrucciones, el proceso de ejecución

de todo es más lento debido a dos accesos a memoria.

7

ILUSTRACIÓN 2

Page 9: Arquitectura Von Neumann

La limitación de la longitud de las instrucciones por el bus de datos, que hace que el microprocesador tenga que realizar varios accesos a memoria para buscar instrucciones complejas.

La limitación de la velocidad de operación a causa del bus único para datos e instrucciones

que no deja acceder simultáneamente a unos y otras, lo cual impide superponer ambos

tiempos de acceso.

CURIOSIDADESEl término arquitectura de von Neumann se acuñó a partir del memorando First Draft of a Report on the EDVAC (1945) escrito por el conocido matemático John von Neumann en el que se proponía el concepto de programa almacenado. Dicho documento fue redactado en vistas a la construcción del sucesor de la computadora ENIAC y su contenido fue desarrollado por John Presper Eckert, John William Mauchly, Arthur Burks y otros durante varios meses antes de que von Neumann redactara el borrador del informe. Es por ello que otros tecnólogos como David A. Patterson y John L. Hennessypromueven la sustitución de este término por el de arquitectura Eckert-Mauchly.

8

Page 10: Arquitectura Von Neumann

CONCLUSIONES La mayoría de las computadoras todavía utilizan la arquitectura Von Neumann, propuesta

a principios de los años 40.

La arquitectura Von Neumann describe a la computadora con cuatro secciones principales: la unidad lógica y aritmética (ALU), la unidad de control, la memoria, y los dispositivos de entrada y salida (E/S).

En este sistema, la memoria es una secuencia de celdas de almacenamiento numeradas, donde cada una es un bit, o unidad de información.

La instrucción es la información necesaria para realizar, lo que se desea, con la computadora.

Las celdas contienen datos que se necesitan para llevar a cabo las instrucciones, con la computadora.

9

Page 11: Arquitectura Von Neumann

GLOSARIOArquitectura de computadoras: La arquitectura de computadoras es el diseño conceptual y la estructura operacional fundamental de un sistema de computadora. Es decir, es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de una computadora, con especial interés en la forma en que la unidad central de proceso (UCP) trabaja internamente y accede a las direcciones de memoria.

ENIAC: ENIAC es un acrónimo de Electronic Numerical Integrator And Computer(Computador e Integrador Numérico Electrónico), utilizada por el Laboratorio de Investigación Balística del Ejército de los Estados Unidos.

EDVAC: La EDVAC (Electronic Discrete Variable Automatic Computer) por sus siglas en inglés, fue una de las primerascomputadoras electrónicas. A diferencia de la ENIAC, no era decimal, sino binaria y tuvo el primer programadiseñado para ser almacenado. Este diseño se convirtió en el estándar de arquitectura para la mayoría de las computadoras modernas.

Registro: Un registro es una memoria de alta velocidad y poca capacidad, integrada en el microprocesador, que permite guardar transitoriamente y acceder a valores muy usados, generalmente en operaciones matemáticas.

ACC: El acumulador es un registro en el que son almacenados temporalmente los resultados aritméticos y lógicos intermedios que serán tratados por el circuito operacional de la unidad aritmético-lógica (ALU).

IP: El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de dirección de la siguiente instrucción que se ejecuta.El registro IP está asociado con el registro CS en el sentido de que el IP indica la instrucción actual dentro del segmento de código que se está ejecutando actualmente.

10

Page 12: Arquitectura Von Neumann

ANEXOS

BIOGRAFÍA DE VON NEUMANN(Budapest, 1903 - Washington, 1957) Matemático húngaro, nacionalizado estadounidense. Nacido en el seno de una familia de banqueros judíos, dio muestras desde niño de unas extraordinarias dotes para las matemáticas. En 1921 se matriculó en la Universidad de Budapest, donde se doctoró en matemáticas cinco años después, aunque pasó la mayor parte de ese tiempo en otros centros académicos. En la Universidad de Berlín asistió a los cursos de Albert Einstein. Estudió también en la Escuela Técnica Superior de Zurich, donde en 1925 se graduó en ingeniería química, y frecuentó así mismo la Universidad de Gotinga.

Allí conoció al matemático David Hilbert -cuya obra ejerció sobre él considerable influencia- y contribuyó de manera importante al desarrollo de lo que Hilbert llamó la teoría de la demostración y aportó diversas mejoras a la fundamentación de la

teoría de conjuntos elaborada por E. Zermelo. En Gotinga asistió también al nacimiento de la teoría cuántica de Werner Heisenberg y se interesó por la aplicación del programa formalista de Hilbert a la formulación matemática de esa nueva rama de la física.

Ello le llevó a convertirse en el autor de la primera teoría axiomática abstracta de los llamados -precisamente por él- espacios de Hilbert y de sus operadores, que a partir de 1923 habían empezado a demostrar su condición de instrumento matemático por excelencia de la mecánica cuántica; la estructura lógica interna de esta última se puso de manifiesto merced a los trabajos de Von Neumann, quien contribuyó a proporcionarle una base rigurosa para su exposición.

También es notable su apertura de nuevas vías al desarrollo de la matemática estadística a partir de su estudio de 1928 sobre los juegos de estrategia, posteriormente desarrollado en la famosa obraTheory of games and economic behavior, publicada en 1944 y escrita en colaboración con O. Morgenstern.

En 1943, el ejército estadounidense reclamó su participación en el Proyecto Manhattan para la fabricación de las primeras bombas atómicas; a partir de entonces, Von Neumann colaboró permanentemente con los militares, y sus convicciones anticomunistas propiciaron que interviniera luego activamente en la fabricación de la bomba de hidrógeno y en el desarrollo de los misiles balísticos.

Entre 1944 y 1946 colaboró en la elaboración de un informe para el ejército sobre las posibilidades que ofrecía el desarrollo de las primeras computadoras electrónicas; de su contribución a dicho desarrollo destaca la concepción de una memoria que actuase secuencialmente y no sólo registrara los datos numéricos de un problema sino que además almacenase un programa con las instrucciones para la resolución del mismo.

Se interesó también por la robótica y en 1952 propuso dos modelos de máquinas autorreproductoras, uno de ellos con una modalidad de reproducción parecida a la de los cristales, mientras que el otro era más próximo a la forma en que se reproducen los animales. En 1955, tras solicitar la excedencia de Princeton, fue nombrado miembro de la Comisión de Energía Atómica del gobierno estadounidense; ese mismo año un cáncer en estado muy avanzado lo apartó de toda actividad hasta su muerte.

11

ILUSTRACIÓN 3

Page 13: Arquitectura Von Neumann
Page 14: Arquitectura Von Neumann

BIBLIOGRAFÍAhttp://es.wikipedia.org/wiki/John_von_Neumann

http://www.biografiasyvidas.com/biografia/n/neumann.htm

http://www.taringa.net/posts/info/3935031/Arquitectura-de-Von-Neumann.html

http://es.wikipedia.org/wiki/ENIAC

http://es.wikipedia.org/wiki/Arquitectura_de_computadoras

http://es.wikipedia.org/wiki/EDVAC

http://es.wikipedia.org/wiki/Acumulador_(inform%C3%A1tica)

http://www.facebook.com/l.php?u=http%3A%2F%2F1.bp.blogspot.com%2F_pRCs7QT8-6o%2FTE9l1koVhNI%2FAAAAAAAAABE%2FbTacNifHDfI%2Fs1600%2Fvon%2Bneumann.jpg&h=6AQH_oY5K

http://www.monografias.com/trabajos7/regi/regi.shtml

13