Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 9

Arquitectura de Von Neumann

Es una arquitectura de computadoras. 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.
La unidad central de procesamiento (CPU), es el hardware dentro de un ordenador u
otros dispositivos programables, que interpreta las instrucciones de un programa
informático mediante la realización de las operaciones básicas aritméticas, lógicas y de
entrada/salida del sistema.

La unidad aritmética lógica, también conocida como ALU (arithmetic logic unit),


es un circuito digital que calcula operaciones aritméticas (como suma, resta,
multiplicación, etc.) y operaciones lógicas (si, y, o, no), entre valores
(generalmente uno o dos) de los argumentos.

Por mucho, los circuitos electrónicos más complejos son los que están construidos
dentro de los chips de microprocesadores modernos. Por lo tanto, estos
procesadores tienen dentro de ellos un ALU muy complejo y potente.

Un típico símbolo esquemático para una ALU: A y B son operandos;


R es la salida; F es la entrada de la unidad de control; D es un estado de la salida.

En arquitectura de ordenadores, 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.
Los registros están en la cumbre de la jerarquía de memoria, y son la manera más
rápida que tiene el sistema de almacenar datos. Los registros se miden
generalmente por el número de bits que almacenan; por ejemplo, un "registro de 8
bits" o un "registro de 32 bits". Los registros generalmente se implementan en un
banco de registros, pero antiguamente se usaba memoria SRAM o formas aún
más primitivas.

La unidad de control (UC) es uno de los tres bloques funcionales principales en


los que se divide una unidad central de procesamiento (CPU). Los otros dos
bloques son la unidad de proceso y la unidad de entrada/salida.

Su función es buscar las instrucciones en la memoria principal, decodificarlas


(interpretación) y ejecutarlas, empleando para ello la unidad de proceso.

El registro de instrucción IR es un registro de la unidad de control de la CPU en donde


se almacena la instrucción que se está ejecutando. En los procesadores simples cada
instrucción a ser ejecutada es cargada en el registro de la instrucción que la contiene
mientras se es decodificada, preparada y al final ejecutada, un proceso que puede tomar
varios pasos.
Los procesadores más complejos usan una tubería de registros de instrucción donde cada
etapa de la tubería hace parte del trabajo, decodificación, preparación, o ejecución, y
después pasa el resultado a la siguiente etapa para realizar el siguiente paso hasta que la
instrucción es procesada totalmente. Esto funciona como una línea de ensamblaje en
donde en cada etapa se hace un trabajo parcial, y luego se pasa a la siguiente etapa para
continuar con la fabricación del producto.
El contador de programa, también llamado Puntero de instrucciones, es
un registro del procesador de un computador que indica la posición donde está el
procesador en su secuencia de instrucciones. Dependiendo de los detalles de la máquina
particular, contiene la dirección de la instrucción que es ejecutada, o la dirección de la
próxima instrucción a ser ejecutada.
El contador de programa es incrementado automáticamente en cada ciclo de
instrucción de tal manera que las instrucciones son leídas en secuencia desde la
memoria. Ciertas instrucciones, tales como las bifurcaciones y las llamadas y retornos
de subrutinas, interrumpen la secuencia al colocar un nuevo valor en el contador de
programa.
La memoria es el dispositivo que retiene, memoriza o almacena datos informáticos
durante algún período de tiempo. La memoria proporciona una de las principales
funciones de la computación moderna: el almacenamiento de información y conocimiento.
Es uno de los componentes fundamentales de la computadora, que interconectada a
la Unidad Central de Procesamiento y los dispositivos de entrada/salida, implementan lo
fundamental del modelo de computadora de la arquitectura de von Neumann.
Un periférico de entrada/salida es aquel tipo de dispositivo periférico de un computador
que permite ingresar información desde un sistema externo, como emitir información a
partir de ese sistema.
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 bus es un sistema digital que transfiere datos entre los componentes de


una computadora. Está formado por cables o pistas en un circuito impreso,
dispositivos como resistores y condensadores, además de circuitos
integrados.

Un computador de programa almacenado es el que almacena las instrucciones


del programa en la memoria electrónica.

Un computador con una arquitectura de von Neumann almacena los datos y las


instrucciones del programa en la misma memoria. Un computador con
una arquitectura Harvard tiene memorias separadas para almacenar los datos y
los programas.

El computador de programa almacenado a veces es usado como sinónimo de la


arquitectura de von Neumann, sin embargo el profesor Jack Copeland considera
que es "históricamente inapropiado referirse a los computadores electrónicos
digitales de programa almacenado como 'máquinas de von Neumann'".

La idea de computador de programa almacenado se remonta al concepto


teórico de una máquina universal de Turing en 1936. Von Neumann era
consciente de este papel, y lo inculcó también en sus colaboradores.

Cuello de botella de von Neumann


El canal de transmisión de los datos compartido entre CPU y memoria genera un cuello
de botella de von Neumann, un rendimiento limitado 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.
El problema de rendimiento puede ser aliviado hasta cierto punto utilizando
diversos mecanismos.
1. Ofreciendo una memoria caché entre la CPU y la memoria principal.
2. proporcionando cachés separadas o vías de acceso independientes para
datos e instrucciones (la llamada arquitectura Harvard modificada).
3. Utilizando algoritmos y lógica de predictor de saltos
a. Un predictor de saltos es un circuito digital utilizado en
los procesadores que utilizan segmentación de la unidad de proceso
para reducir ciclos de parada en la segmentación.
4. 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.

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.

La arquitectura Harvard modificada es una variación de la arquitectura


Harvard que permite que los contenidos de la memoria de instrucciones sean
accedidas como si fuesen datos.
La mayoría de los ordenadores actuales que en su documentación dicen
implementar una arquitectura Harvard, de hecho, implementan una arquitectura
Harvard modificada.

Tres características se suelen utilizar para distinguir una máquina con arquitectura
Harvard modificada de una máquina con arquitectura Von Neumann o Harvard.

- La memoria de instrucciones y datos ocupan diferente espacio de


direcciones.
- La memoria de instrucciones y datos tienen caminos hardware separados
de la unidad central de proceso (CPU).
- La memoria de instrucciones y datos pueden ser accedidas de diferente
manera.

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.

Desarrollo del concepto de programa almacenado


 El matemático Alan Turing, quien había sido alertado de un problema de
lógica matemática por las lecciones de Max Newman en la Universidad de
Cambridge, escribió un artículo en 1936 titulado On Computable Numbers,
with an Application to the Entscheidungsproblem, que fue publicado en
los Proceedings of the London Mathematical Society.[5] En él describía una
máquina hipotética que llamó "máquina computadora universal", y que
ahora es conocida como la "Máquina de Turing universal". La máquina
hipotética tenía un almacenamiento infinito (memoria en la terminología
actual) que contenía tanto las instrucciones como los datos. John von
Neumann conoció a Turing cuando ejercía de profesor sustituto en
Cambridge en 1935 y también durante el año PhD que Turing pasó en
la Institute for Advanced Study en Princeton, Nueva Jersey durante 1936-
37. Cuándo supo del artículo de 1936 de Turing no está claro.
 En 1936, Konrad Zuse también anticipó en dos solicitudes de patente qué
instrucciones de la máquina podían ser almacenadas en el mismo
almacenamiento utilizado para los datos. [6]
 Independientemente, J. Presper Eckert y John Mauchly, quienes estaban
desarrollando el ENIAC en la Escuela Moore de Ingeniería Eléctrica en
la Universidad de Pennsylvania, escribieron sobre el concepto de
“programa almacenado” en diciembre de 1943. En enero de 1944, mientras
diseñaba una nueva máquina, EDVAC, Eckert escribió que se
almacenarían datos y programas en un nuevo dispositivo de memoria
direccionable, una memoria de línea de retardo. Ésta fue la primera vez que
se propuso la construcción de un práctico programa almacenado. Por esas
fechas, no tenían conocimiento del trabajo de Turing.
 Von Neumann estaba involucrado en el Proyecto Manhattan en
el Laboratorio Nacional Los Álamos, el cual requería ingentes cantidades de
cálculos. Esto le condujo al proyecto ENIAC, en verano de 1944. Allí se
incorporó a los debates sobre el diseño de un ordenador con programas
almacenados, el EDVAC. Como parte del grupo, se ofreció voluntario a
escribir una descripción de él. El término "von Neumann architecture" surgió
del primer artículo de von Neumann: "First Draft of a Report on the
EDVAC", fechado el 30 de junio de 1945, el cual incluía ideas de Eckert y
Mauchly. Estaba inconcluso cuando su compañero Herman Goldstine lo
hizo circular con sólo el nombre de von Neumann escrito en él, para
consternación de Eckert y Mauchly. El artículo fue leído por docenas de
compañeros de trabajo de von Neumann en América y Europa, e influenció
la siguiente hornada de diseños de computadoras.
 Por lo tanto, von Neumann no se encontraba solo en el desarrollo de la idea
de la arquitectura de programa almacenado, y Jack Copeland considera
que es "históricamente inapropiado referirse a las computadoras
electrónicas digitales de programa almacenado como 'máquinas de von
Neumann'".[7] Su colega del colegio Los Álamos, Stan Frankel dijo de las
consideraciones de von Neumann con respecto a las ideas de Turing:
 Sé que en o alrededor de 1943 o '44 von Neumann era muy consciente de la
importancia fundamental del papel de 1936 de Turing... von Neumann me introdujo
a ese papel y en su insistencia lo estudié con cuidado. Muchas personas han
aclamado a von Neumann como el "padre de la computadora" (en el sentido
moderno del término), pero estoy seguro de que nunca habría hecho que el propio
error. Él bien podría haberse llamado tal vez la partera, pero con firmeza enfatizó
para mí, y para otros, que estoy seguro, que la concepción fundamental se debe a
Turing—en la medida en que no anticipado por Babbage... Por supuesto, tanto
Turing como von Neumann también hicieron importantes contribuciones a la
"reducción a la práctica" de estos conceptos, pero yo no consideraría esto como
comparable en importancia con la introducción y explicación del concepto de una
computadora capaz de almacenar en su memoria su programa de actividades y de
modificar ese programa en el curso de estas actividades[8]
 En el mismo momento en que el informe "Primer Borrador" fue distribuido,
Turing desarrolló un informe técnico detallado, Proposed Electronic
Calculator, que describe en detalle la ingeniería y la programación, su idea
de una máquina que fue llamada la Automatic Computing Engine (ACE).[9]
Presentó éste al Laboratorio Nacional de FísicaBritánico el 19 de febrero de
1946. A pesar de que Turing sabía por su experiencia de guerra en el
Parque Bletchley que su propuesta era factible, el secretismo mantenido
durante muchas décadas acerca de los ordenadores Colossus le impidió
manifestarlo. Se produjeron varias implementaciones del diseño ACE de
forma exitosa.
 Los trabajos tanto de von Neumann como de Turing, describían
computadoras de programas almacenados, pero al ser anterior el artículo
de von Neumann, consiguió mayor circulación y repercusión, así que la
arquitectura de computadoras que esbozó adquirió el nombre de
"arquitectura von Neumann". En la publicación de 1953 Faster than
Thought: A Symposium on Digital Computing Machines (Más rápido que el
pensamiento: Un Simposio sobre Máquinas informáticas digitales -editado
por BV Bowden-), una sección en el capítulo sobre Computers in
America (Computadoras en América) dice lo siguiente:[10]
La Máquina del Instituto de Estudios Avanzados, Princeton
En 1945, el profesor J. von Neumann, que en ese entonces trabajaba en la
Escuela Moore de Ingeniería en Filadelfia, donde se había construido el
ENIAC, emitido en nombre de un grupo de sus compañeros de trabajo un
informe sobre el diseño lógico de las computadoras digitales. El informe
contenía una propuesta bastante detallada para el diseño de la máquina
que, desde entonces, se conoce como la EDVAC (computadora de retardo
variable discreta). Esta máquina ha sido recientemente completada en
América, pero el informe von Neumann inspiró la construcción de la EDSAC
(calculadora automática de almacenamiento electrónico de retardo) en
Cambridge (véase página 130).
En 1947, Burks, Goldstine y von Neumann publicaron un informe en el que
describen el diseño de otro tipo de máquina (una máquina paralela en este
momento) que debería ser muy rápida, capaz de hacer 20 000 operaciones
por segundo. Señalaron que el problema persistente en la construcción de
tal máquina estaba en el desarrollo de una memoria adecuada, todos los
contenidos de los cuales fueron instantáneamente accesibles, y al principio
se sugirió el uso de un tubo especial –llamado Selectron– que había sido
inventado por los laboratorios de Princeton de la RCA. Estos tubos son
caros y difíciles para fabricar, así Von Neumman decidió construir una
máquina basada en la memoria de Williams. Esa máquina que se completó
en junio de 1952 en Princeton se ha conocido como MANIAC I. El diseño de
esta máquina que ha sido inspirado de una docena o más de máquinas que
están actualmente en construcción en América.
En el mismo libro, los dos primeros párrafos de un capítulo sobre ACE dicen lo
siguiente:[11]
Cálculo automático en el laboratorio nacional de física
Uno de los equipos digitales más modernos que incorpora novedades y
mejoras en la técnica de la computación electrónica ha sido demostrado en
el Laboratorio Nacional de Física, Teddington, donde ha sido diseñado y
construido por un pequeño equipo de matemáticos e ingenieros electrónicos
investigadores sobre el personal del laboratorio, asistido por ingenieros de
producción de la compañía eléctrica inglesa. El equipo construido hasta
ahora en el laboratorio es solo el modelo piloto de muchas instalaciones
muy grandes que se va a conocer como el motor de cálculo automático,
pero aunque es relativamente pequeño en volumen y contiene solo 800
válvulas termoiónicas, es una máquina de cálculo muy rápido y versátil.

Los conceptos básicos y principios abstractos de la computación por una


máquina fueron formuladas por el Dr A. M. Turing, en un papel 1 leído ante la
Sociedad Matemática de Londres en 1936, pero el trabajo en dichas
máquinas en el Reino Unido se retrasó por la guerra. En 1945, se hizo una
revisión al problema en el laboratorio nacional de Física por el profesor J. R.
Womersley. Se le adjuntó al Dr. Turing un pequeño equipo de especialistas,
y en 1947 la planificación preliminar fue lo suficientemente avanzada como
para justificar el establecimiento del grupo especial ya mencionado. En abril
de 1948, estos últimos pasaron a estar en la sección de electrónica del
laboratorio, bajo el cargo del Sr. F. M. Colebrook.

Definición formal
Las computadoras son máquinas de arquitectura von Neumann cuando:

1. 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.
2. Cada celda de memoria de la máquina se identifica con un número único,
llamado dirección.
3. Las diferentes partes de la información (los comandos y los datos) tienen diferentes
modos de uso, pero la estructura no se representa en memoria de manera codificada.
4. 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.

Estructura clásica de las máquinas von Neumann


Una máquina von Neumann, al igual que prácticamente todos los computadores
modernos de uso general, consta de cuatro componentes principales:

1. Dispositivo de operación (DO), que ejecuta instrucciones de un conjunto especificado,


llamado sistema (conjunto) de instrucciones, sobre porciones de información almacenada,
separada de la memoria del dispositivo operativo (aunque en la arquitectura moderna el
dispositivo operativo consume más memoria generalmente del banco de registros), en la
que los operandos son almacenados directamente en el proceso de cálculo, en un tiempo
relativamente corto
2. Unidad de control (UC), que organiza la implementación consistente de algoritmos de
decodificación de instrucciones que provienen de la memoria del dispositivo, responde a
situaciones de emergencia y realiza funciones de dirección general de todos los nodos de
computación. Por lo general, el DO y la UC conforman una estructura llamada CPU. Cabe
señalar que el requisito es consistente, el orden de la memoria (el orden del cambio de
dirección en el contador de programa) es fundamental a la hora de la ejecución de la
instrucción. Por lo general, la arquitectura que no se adhiere a este principio no se
considera von Neumann
3. Memoria del dispositivo — un conjunto de celdas con identificadores únicos
(direcciones), que contienen instrucciones y datos.
4. Dispositivo de E/S (DES), que permite la comunicación con el mundo exterior de los
computadores, son otros dispositivos que reciben los resultados y que le transmiten la
información al computador para su procesamiento.
Evolución

Evolución de la arquitectura del bus simple del sistema

A lo largo de las décadas de los años 1960 y 1970, las computadoras se hicieron,
en general, tanto más pequeñas como rápidas, lo que llevó a algunas evoluciones
en su arquitectura. Por ejemplo, el mapeado en memoria de E/S permitió que los
dispositivos de entrada y salida fueran tratados de la misma como la memoria. [16]
Un único bus de sistema podría ser utilizado para proporcionar un sistema
modular con un menor coste. A veces esto se denomina "racionalización" de la
arquitectura.[17] En las décadas siguientes, los microcontroladoressencillos
permitirían algunas veces omitir características del modelo a menor costo y
tamaño. Las computadoras más grandes añadían características para un mayor
rendimiento.

También podría gustarte