Informe Von Neumann

“AÑO DE LA LUCHA CONTRA LA CORRUPCIÓN E IMPUNIDAD” UNIVERSIDAD NACIONAL DEL SANTA FACULTAD DE INGENIERÍA ESCUELA ACADÉM

Views 213 Downloads 0 File size 657KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

“AÑO DE LA LUCHA CONTRA LA CORRUPCIÓN E IMPUNIDAD”

UNIVERSIDAD NACIONAL DEL SANTA FACULTAD DE INGENIERÍA ESCUELA ACADÉMICA PROFESIONAL DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

ALUMNOS: - CUEVA VALDERRAMA, BRYAN - LEYTON RANDALL - MONTENEGRO, LUIS - MORALES PACHERRES, JOSÉ EDICKSON CURSO: ARQUITECTURA DE COMPUTADORAS

DOCENTE: BORJA REYNA, WHISTON KENDRICK

TEMA: “MODELO DE VON NEUMANN”

NUEVO CHIMBOTE – PERÚ SEPTIEMBRE – 2019

INDICE

INTRODUCCIÓN ............................................................................................................ 2 1.

EL MODELO DE VON NEUMANN ...................................................................... 4

2.

ESTRUCTURA......................................................................................................... 5 2.1.

UNIDAD DE PROCESO CENTRAL (CPU) ................................................... 5

2.1.1.

UNIDAD DE CONTROL .......................................................................... 6

2.1.2.

ALU ............................................................................................................ 6

2.2.

MEMORIA ........................................................................................................ 7

2.3.

BUSES ............................................................................................................... 7

3.

CUELLO DE BOTELLA.......................................................................................... 8

4.

COMPUTADORAS BASADAS EN ARQUITECTURA DE VON NEUMANN .. 9

5.

CONCLUSIONES .................................................................................................. 11

INTRODUCCIÓN

El hombre desde siempre ha tenido un interminable afán por facilitarse la vida, ha logrado diseñar artefactos, máquinas y sistemas que efectúen cálculos y realicen labores que parecen complejas. La automatización consiste en reemplazar al hombre por una máquina para ejecución de una tarea, y se ha venido desarrollando casi a la par con la historia de la humanidad. Dentro de estas máquinas creadas por el hombre, tenemos al computador que es un dispositivo con él cual se pueden realizar tareas muy diversas, cargando distintos programas en la memoria para que los ejecute el procesador. Buscando siempre optimizar los procesos, ganar tiempo, hacerlo más fácil de usar y simplificar las tareas rutinarias. Las computadoras están formadas por una estructura que data de los años 40 pero que aún sigue en la mayoría de las computadoras actuales, nos referimos a la arquitectura Von Neumann, se refiere a las arquitecturas de computadoras que utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos (a diferencia de la arquitectura Harvard). El término se acuñó en el documento First Draft of a Report on the EDVAC (1945), escrito por el conocido matemático John Von Neumann, que propuso el concepto de programa almacenado. Dicho documento fue redactado en vistas a la construcción del sucesor de la computadora ENIAC. En el presente se sigue usando esta estructura solo con algunas modificaciones.

1. EL MODELO DE VON NEUMANN La arquitectura von Neumann, también conocida como modelo de von Neumann o arquitectura Princeton, es una arquitectura de computadoras basada en la descrita en 1945 por el matemático y físico John von Neumann y otros, en el primer borrador de un informe sobre el EDVAC. Este describe una arquitectura de diseño para un computador digital electrónico con partes que constan de una unidad de procesamiento que contiene una unidad aritmético lógica y registros del procesador, una unidad de control que contiene un registro de instrucciones y un contador de programa, una memoria para almacenar tanto datos como instrucciones, almacenamiento masivo externo, y mecanismos de entrada y salida. El concepto ha evolucionado para convertirse en un computador de programa almacenado en el cual no pueden darse simultáneamente una búsqueda de instrucciones y una operación de datos, ya que comparten un bus en común. Esto se conoce como el cuello de botella Von Neumann, y muchas veces limita el rendimiento del sistema. El diseño de una arquitectura von Neumann es más simple que la arquitectura Harvard más moderna, que también es un sistema de programa almacenado, pero tiene un conjunto dedicado de direcciones y buses de datos para leer datos desde memoria y escribir datos en la misma, y otro conjunto de direcciones y buses de datos para ir a buscar instrucciones. Un ordenador digital de programa almacenado es aquel que mantiene sus instrucciones de programa, así como sus datos, en una memoria de acceso aleatorio (RAM) de lectura-escritura. Las computadoras de programa almacenado representaron un avance sobre los ordenadores controlados por programas de la década de 1940, como la Colossus y la ENIAC, que se programaron mediante el establecimiento de conmutadores y la inserción de cables de interconexión para enrutar datos y para controlar señales entre varias unidades funcionales. En la gran mayoría de las computadoras modernas, se utiliza la misma memoria tanto para datos como para instrucciones de programa, y la distinción entre von Neumann vs. Harvard se aplica a la arquitectura de memoria caché, pero no a la memoria principal.

Las computadoras son máquinas de arquitectura von Neumann cuando: a) Tanto los programas como los datos se almacenan en una memoria en común. Esto hace posible la ejecución de comandos de la misma forma que los datos. b) Cada celda de memoria de la máquina se identifica con un número único, llamado dirección. c) Las diferentes partes de la información (los comandos y los datos) tienen diferente modos de uso, pero la estructura no se representa en memoria de manera codificada. d) Cada programa se ejecuta de forma secuencial que, en el caso de que no haya instrucciones especiales, comienza con la primera instrucción. Para cambiar esta secuencia se utiliza el comando de control de transferencia.

Ilustración 1 Diagrama de la Arquitectura de von Neumann

2. ESTRUCTURA 2.1.

UNIDAD DE PROCESO CENTRAL (CPU)

Es la encargada de interpretar y procesar las instrucciones recibidas de un programa a través de la realización de operaciones básicas aritméticas (Suma, resta, multiplicación y división) y lógicas (AND, OR y NOT) realizadas por la Unidad Aritmética Lógica. Para esto utiliza los registros del procesador que son una pequeña memoria que almacena datos binarios y tiene un tiempo de acceso cinco a diez veces menor que la memoria principal, uno de los registros es denominado Program Counter y es quien calcula automáticamente la cantidad de ciclos de ejecución y apunta a la próxima instrucción en ser ejecutada. Y por último se encuentra la unidad de control que es aquella que tiene como objetivo buscar instrucciones en la memoria principal y ejecutarlas luego de decodificarlas.

2.1.1. UNIDAD DE CONTROL La unidad de control se encarga de leer las instrucciones (de los programas almacenados en la memoria) y se encarga de enviar las ordenes a los componentes del procesador para que ejecuten las instrucciones. El proceso empieza cuando llega una instrucción al registro de instrucciones (llega como una cadena de bits con distintas partes, referidas a la propia instrucción y a los datos que se usarán). Posteriormente el decodificador interpreta la instrucción a realizar y como deben de actuar los componentes del procesador para llevarla a cabo. Esta acción se realiza mediante el secuenciador que envía micro-órdenes marcadas por el reloj (que genera pulsos de forma constante, se suele expresar su velocidad en gigahercios o GHz, para los procesadores actuales).

2.1.2. ALU La unidad aritmético lógica es la encargada de realizar todas las operaciones aritméticas (sumas, multiplicaciones...) y lógicas (comparaciones). Esta unidad puede tener distintos diseños, el diseño más básico es aquel donde el acumulador vuelve a usarse en la operación, en la actualidad lo normal es que el acumulador no se mezcle con los registros de entrada.

Ilustración 2 Funcionamiento del ALU

El funcionamiento con el diseño que estamos analizando (el básico) comienza cuando le llega al registro de entrada un dato (una cadena de bits que representan un número), posteriormente el circuito operacional (en la imagen se representa como "ALU" y

coloreado azul) y se procesa junto al contenido del acumulador y posteriormente se deposita de nuevo en el acumulador. Repitiendo esta acción se generan los cálculos. Este proceso se ve claramente en la representación que hay más abajo.

2.2.

MEMORIA

La memoria principal en la arquitectura inicial era directamente la RAM, pero esto ha evolucionado y se han añadido memorias caché e implementado algoritmos que predicen que datos vamos a usar más frecuentemente. La memoria RAM es bastante sencilla, en comparación con la CPU, se podría decir que es una tabla, que contiene la dirección (o lugar) donde está cierto dato y el contenido del propio dato. La memoria dispone de un registro de direcciones (RDM) y un registro de intercambio de memoria (RIM o registro de datos). En el registro de direcciones se almacena la dirección en la que se almacenará o leerá un dato, y en el registro de intercambio de memoria se almacena ese dato leído o que se almacenará. La unidad de control contiene el registro contador de programa, que contiene la dirección de memoria de la siguiente instrucción, que se incrementa tras realizar una instrucción y así va recorriendo la memoria

2.3.

BUSES

Todos estos elementos se comunican entre si a través de buses, ya sea para manejar las acciones a realizar por la máquina o para mover datos. Hay tres tipos de buses. 

El bus de datos perite el intercambio de datos (ya sean instrucciones o datos) con el resto de elementos de la arquitectura. Es decir, mediante el bus de datos la unidad de control recibe las instrucciones y la ALU los datos desde la memoria, al igual que también los envían por este medio.



El bus de instrucciones transmite las direcciones de memoria que van a ser usadas desde la CPU, para poder seleccionar los datos que serán usados.



El bus de control es el que transporta las ordenes generadas por la CPU para controlar los diversos procesos de la máquina.

3. CUELLO DE BOTELLA El canal de transmisión de los datos compartido entre CPU y memoria genera un cuello de botella de von Neumann, un rendimiento limitado (tasa de transferencia de datos) entre la CPU y la memoria en comparación con la cantidad de memoria. En la mayoría de computadoras modernas, la velocidad de comunicación entre la memoria y la CPU es más baja que la velocidad a la que puede trabajar esta última, reduciendo el rendimiento del procesador y limitando seriamente la velocidad de proceso eficaz, sobre todo cuando se necesitan procesar grandes cantidades de datos. La CPU se ve forzada a esperar continuamente a que lleguen los datos necesarios desde o hacia la memoria. Puesto a que la velocidad de procesamiento y la cantidad de memoria han aumentado mucho más rápidamente que el rendimiento de transferencia entre ellos, el cuello de botella se ha vuelto más que un problema, un problema cuya gravedad aumenta con cada nueva generación de CPU. El término “cuello de botella de von Neumann” fue acuñado por John Backus en su conferencia de la concesión del Premio Turing ACM de 1977. Según Backus: «Seguramente debe haber una manera menos primitiva de realizar grandes cambios en la memoria, que empujando tantas palabras hacia un lado y otro del cuello de botella de von Neumann. No solo es un cuello de botella para el tráfico de datos, sino que, más importante, es un cuello de botella intelectual que nos ha mantenido atados al pensamiento de "una palabra a la vez" en vez de fomentarnos el pensar en unidades conceptuales mayores. Entonces la programación es básicamente la planificación del enorme tráfico de palabras que cruzan el cuello de botella de von Neumann, y gran parte de ese tráfico no concierne a los propios datos, sino a dónde encontrar estos.» El problema de rendimiento puede ser aliviado (hasta cierto punto) utilizando diversos mecanismos. Ofreciendo una memoria caché entre la CPU y la memoria principal, proporcionando cachés separadas o vías de acceso independientes para datos e instrucciones (la llamada arquitectura Harvard modificada), utilizando algoritmos y lógica de predictor de saltos y proporcionando una limitada pila de CPU u otro en el chip de memoria reutilizable para reducir el acceso a memoria, son cuatro de las maneras que se dispone para aumentar el rendimiento. El problema también se puede eludir, en cierta medida, usando computación paralela, utilizando por ejemplo la arquitectura de acceso a memoria no uniforme (NUMA), —este enfoque es comúnmente empleado por las supercomputadoras. Está menos claro si el cuello de botella intelectual que criticaba

Backus ha cambiado mucho desde 1977. La solución que propuso Backus no ha tenido influencia importante. La moderna programación funcional y la programación orientada a objetos se preocupan mucho menos de "empujar un gran número de palabras hacia un lado a otro" que los lenguajes anteriores como era Fortran, pero internamente, esto sigue siendo lo que las computadoras pasan gran parte del tiempo haciendo, incluso las supercomputadoras altamente paralelas. A partir de 1996, un estudio de referencia de base de datos se encontró que tres de cada cuatro ciclos de CPU se dedican a la espera de memoria. Los investigadores esperan que el aumento del número de instrucciones simultáneas arroye con el multihilo o el multiprocesamiento de un solo chip hará que este cuello de botella aún peor.

4. COMPUTADORAS BASADAS EN ARQUITECTURA DE VON NEUMANN La información de la fecha en la siguiente cronología es difícil de establecer en el orden correcto. Algunas fechas son de la primera ejecución de un programa de pruebas, algunas fechas son de la primera vez que el equipo se demostró o completó, y algunas fechas son de la primera entrega o instalación. 

La IBM SSEC tenía la capacidad para tratar instrucciones como datos, y se demostró públicamente el 27 de enero de 1948. Esta capacidad fue reivindicada en una patente estadounidense.14 Sin embargo, fue parcialmente electromecánica, no totalmente electrónica. En la práctica, las instrucciones eran leídas desde una cinta de papel debido a su memoria limitada.15



La Manchester SSEM (la bebé) fue la primera computadora completamente electrónica que ejecutaba un programa almacenado. Se corrió un programa de factoraje durante 52 minutos el 21 junio de 1948, después de ejecutar un simple programa de división y un programa para demostrar que dos números eran primos entre sí.



La ENIAC fue modificada para funcionar como un computador primitivo con programa almacenado de solo lectura (usando la tabla de funciones de programa ROM) y se demostró como tal el 16 de septiembre de 1948, ejecutando un programa de Adele Goldstine para von Neumann.



La BINAC corrió algunos programas de prueba en febrero, marzo y abril de 1949, aunque no se terminó hasta septiembre de 1949.



La Manchester Mark I desarrollada basada en el proyecto SSEM. En abril de 1949, con el fin de para ejecutar programas, se hizo disponible una versión intermedia de la Mark 1, pero no se terminó hasta octubre de 1949.



La EDSAC corrió su primer programa el 6 de mayo de 1949.



La EDVAC fue presentada en agosto de 1949, pero tuvo problemas que la mantuvieron fuera de su puesta en funcionamiento regular hasta 1951.



La CSIR Mark I corrió su primer programa en noviembre de 1949.



La SEAC fue demostrada en abril de 1950.



La Pilot ACE corrió su primer programa el 10 de mayo 1950 y fue demostrada en diciembre de 1950



La SWAC se completó en julio de 1950.



La Computadora Whirlwind se completó en diciembre de 1950 y estuvo en uso real en abril de 1951.



La ERA 1101 (más tarde la ERA 1101/UNIVAC 1101 comercial) se instaló en diciembre de 1950.

5. CONCLUSIONES Aunque las tecnologías empleadas en las computadoras digitales han cambiado mucho desde que aparecieron los primeros computadores en los años 40, la mayoría todavía utilizan la arquitectura Von Neumann, propuesta a principios de los años 40 por John Von Neumann. La arquitectura Von Neumann describe un computador con 4 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). Estas partes están interconectadas por un conjunto de cables, un enlace común. 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. En general, la memoria puede ser rescrita varios millones de veces. El tamaño de cada celda y el número de celdas varía mucho de computadora a computadora, y las tecnologías empleadas para la memoria han cambiado bastante; van desde los relés electromecánicos, tubos llenos de mercurio en los que se formaban los pulsos acústicos, matrices de imanes permanentes, transistores individuales a circuitos integrados con millones de celdas en un solo chip. Con los circuitos electrónicos se simula las operaciones lógicas y aritméticas, se pueden diseñar circuitos para que realicen cualquier forma de operación.