0% encontró este documento útil (1 voto)
551 vistas12 páginas

Arquitectura Harvard

La arquitectura Harvard separa físicamente la memoria de instrucciones y datos, permitiendo que el procesador acceda a ambas de forma simultánea. Originalmente se implementó en la computadora Harvard Mark I de 1948. Hoy en día, la mayoría de procesadores implementan una variante modificada de Harvard con cachés independientes para instrucciones y datos. Algunos sistemas embebidos y DSP aún usan una arquitectura más pura de Harvard para optimizar el rendimiento y ahorro de energía.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (1 voto)
551 vistas12 páginas

Arquitectura Harvard

La arquitectura Harvard separa físicamente la memoria de instrucciones y datos, permitiendo que el procesador acceda a ambas de forma simultánea. Originalmente se implementó en la computadora Harvard Mark I de 1948. Hoy en día, la mayoría de procesadores implementan una variante modificada de Harvard con cachés independientes para instrucciones y datos. Algunos sistemas embebidos y DSP aún usan una arquitectura más pura de Harvard para optimizar el rendimiento y ahorro de energía.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd

Arquitectura Harvard

Este artculo o seccin posee referencias, pero necesita ms para complementar su verificabilidad.
Puedes colaborar agregando referencias a fuentes fiables como se indica aqu. El material sin fuentes fiables podra ser cuestionado y
eliminado.

Arquitectura Harvard.

La arquitectura Harvard es una arquitectura de computadora con pistas


de almacenamiento y de seal fsicamente separadas para las instrucciones y para los datos.
El trmino proviene de la computadora Harvard Mark I basada en rels, que almacenaba las
instrucciones sobre cintas perforadas (de 24 bits de ancho) y los datos en interruptores
electromecnicos. Estas primeras mquinas tenan almacenamiento de datos totalmente
contenido dentro la unidad central de proceso, y no proporcionaban acceso al almacenamiento
de instrucciones como datos. Los programas necesitaban ser cargados por un operador; el
procesador no podra arrancar por s mismo.
Hoy en da (2015), la mayora de los procesadores implementan dichas vas de seales
separadas por motivos de rendimiento, pero en realidad implementan una arquitectura
Harvard modificada, para que puedan soportar tareas tales como la carga de un programa
desde una unidad de disco como datos para su posterior ejecucin.
ndice
[ocultar]

1 Detalles de memoria
o 1.1 Contraste con arquitecturas von Neumann
o 1.2 Contraste con la arquitectura Harvard modificada
2 Velocidad
o 2.1 Diseo externo vs interno
3 Usos modernos de la arquitectura Harvard
4 Vase tambin
5 Enlaces Externos

Detalles de memoria[editar]
En la arquitectura Harvard, no hay necesidad de hacer que las dos memorias compartan
caractersticas. En particular, pueden diferir la anchura de palabra, el momento, la tecnologa
de implementacin y la estructura de direccin de memoria. En algunos sistemas, se pueden
almacenar instrucciones en memoria de solo lectura mientras que, en general, la memoria de
datos requiere memoria de lectura-escritura. En algunos sistemas, hay mucha ms memoria
de instrucciones que memoria de datos as que las direcciones de instruccin son ms anchas
que las direcciones de datos.
Contraste con arquitecturas von Neumann[editar]
Bajo arquitectura de von Neumann pura, la CPU puede estar bien leyendo una instruccin o
leyendo/escribiendo datos desde/hacia la memoria pero ambos procesos no pueden ocurrir al
mismo tiempo, ya que las instrucciones y datos usan el mismo sistema de buses. En una
computadora que utiliza la arquitectura Harvard, la CPU puede tanto leer una instruccin como
realizar un acceso a la memoria de datos al mismo tiempo, incluso sin una memoria cach. En
consecuencia, una arquitectura de computadores Harvard puede ser ms rpida para un
circuito complejo, debido a que la instruccin obtiene acceso a datos y no compite por una
nica va de memoria.
Adems, una mquina de arquitectura Harvard tiene distintos cdigo y espacios de direccin
de datos: direccin de instruccin cero y direccin de datos cero son cosas distintas. La
instruccin cero direccin podra identificar un valor de veinticuatro bits, mientras que direccin
de datos cero podra indicar un byte de ocho bits que no forma parte de ese valor de
veinticuatro bits.
Contraste con la arquitectura Harvard modificada[editar]
Una mquina de arquitectura Harvard modificada es muy similar a una mquina de
arquitectura Harvard, pero relaja la estricta separacin entre la instruccin y los datos, al
mismo tiempo que deja que la CPU acceda simultneamente a dos (o ms) memorias de
buses. La modificacin ms comn incluye cachs de instrucciones y datos independientes,
respaldados por un espacio de direcciones en comn. Si bien la CPU ejecuta desde la
memoria cach, tambin acta como una mquina de Harvard pura. Cuando se accede a la
memoria de respaldo, acta como una mquina de von Neumann pura (donde el cdigo puede
moverse alrededor como datos, que es una tcnica poderosa). Esta modificacin se ha
generalizado en modernos procesadores, tales como la arquitectura ARM y los
procesadores x86. A veces se llama vagamente arquitectura Harvard, con vistas al hecho de
que en realidad est "modificada".
Otra modificacin proporciona un camino entre la memoria de instrucciones (como ROM o
flash) y la CPU para permitir que las palabras de la memoria de instrucciones sean tratados
como datos de solo lectura. Esta tcnica es utilizada en algunos micro controladores,
incluyendo el Atmel AVR. Esto permite datos constantes, tales como cadenas de texto o tablas
de funciones, que puede acceder sin necesidad de ser previamente copiadas en datos de
memoria, preservando memoria de datos escasa (y hambrienta de poder) de lectura / escritura
de variables. Las instrucciones especiales de lenguaje de mquina se proprcionan para leer
datos desde la memoria de instrucciones. (Esto es diferente a las instrucciones que a s
mismos embebiendo datos constantes, aunque para las constantes individuales de los dos
mecanismos pueden sustituir unos por otros.)

Velocidad[editar]
En los ltimos aos la velocidad de las CPUs ha aumentado mucho en comparacin a la de
las memorias con las que trabaja, as que se debe poner mucha atencin en reducir el nmero
de veces que se accede a ella para mantener el rendimiento. Si, por ejemplo, cada instruccin
ejecutada en la CPU requiere un acceso a la memoria, no se gana nada incrementando la
velocidad de la CPUeste problema es conocido como limitacin de memoria.
Es posible hacer una memoria mucho ms rpida, pero esto solo resulta prctico para
pequeas cantidades de memoria por razones de coste, potencia y de enrutamiento de seal.
La solucin, por tanto, es proporcionar una pequea cantidad de memoria muy rpida
conocida con el nombre de cach de CPU. Mientras los datos que necesita la CPU estn en la
cach, el rendimiento ser mucho mayor que si la cach tiene que obtener primero los datos
de la memoria principal.
Diseo externo vs interno[editar]
Los diseos modernos de chips de CPU de alto rendimiento incorporan tanto aspectos de la
arquitectura Harvard como de la von Neumann. En particular, est muy difundida la versin
"cach split" de la arquitectura Harvard modificada. La memoria cach de la CPU se divide en
una cach de instrucciones y una de datos. La arquitectura Harvard se utiliza como la CPU
accediendo a la memoria cach. No obstante, en el caso de un fallo de cach, los datos son
recuperados de la memoria principal, que no se divide formalmente en secciones separadas
de instruccin y datos, aunque tambin pueda tener los controladores de memoria separados
utilizados para el acceso simultneo a la memoria RAM, ROM y memoria flash (NOR).
As, aunque una arquitectura de von Neumann est visible en algunos contextos, como
cuando los datos y el cdigo vienen por el mismo controlador de memoria, la implementacin
de hardware gana las eficiencias de la arquitectura de Harvard para el cach de accesos y al
menos algo de accesos a la memoria principal.
Adicionalmente, las CPU suelen tener buffers de escritura que le permiten proceder despus
de escribir en regiones no almacenadas en cach. De este modo, se visibiliza la naturaleza
von Neumann de la memoria, cuando las instrucciones se escriben como datos de la CPU y el
software debe garantizar que las caches (datos e instrucciones) y la escritura de bfer estn
sincronizadas, antes de tratar de ejecutar esas instrucciones simplemente escritas.

Usos modernos de la arquitectura Harvard[editar]


La principal ventaja de la arquitectura Harvard pura acceso simultneo a ms de una
memoria del sistemase ha reducido por procesadores Harvard modificados utilizando
sistemas de cach de CPU modernos. Las mquinas de arquitectura Harvard relativamente
puras utilizan principalmente en aplicaciones cuyas compensaciones, como los costes y el
ahorro de energa de cachs derivadas de la omisin de cach, superan a las sanciones de
programacin desde ofreciendo distintos espacios de cdigo hasta espacios de direccin de
datos.

En general, los procesadores de seal digital (DSPs) ejecutan pequeos algoritmos


altamente optimizados de procesamiento de audio o vdeo. Evitan cachs porque su
comportamiento debe ser extremadamente reproducible. Las dificultades de lidiar con
mltiples espacios de direcciones son una preocupacin secundaria a la velocidad de
ejecucin. En consecuencia, algunos DSPs cuentan con mltiples memorias de datos en
distintos espacios de direcciones para facilitar tanto el procesamiento SIMD como el
VLIW. A modo de ejemplo, los procesadores Texas Instruments TMS320 C55x, cuentan
con varios buses de datos en paralelo (dos de escritura, tres de lectura) y un bus de
instrucciones.

Los microcontroladores se caracterizan por tener pequeas cantidades de programa


(memoria flash) y memoria de datos (SRAM), sin cache, y aprovechan la arquitectura de
Harvard para acelerar el procesamiento de la instruccin simultnea y el acceso a datos.
El almacenamiento separado significa que el programa y memorias de datos pueden
presentar diferentes anchos de bit, por ejemplo, utilizando instrucciones de 16 bits de
ancho y los datos de ancho de 8 bits. Tambin significa que la instruccin de
captacin previa puede llevarse a cabo en paralelo con otras actividades. Entre los
ejemplos se incluyen el AVR de Atmel Corp y la PIC de Microchip Technology, Inc..
Incluso en estos casos, es comn emplear instrucciones especiales con el fin de acceder a la
memoria del programa como si fueran tablas de datos de solo lectura, o para la reprogramarla;
esos procesadores son de arquitectura Harvard modificada.

Arquitectura de von Neumann

Diagrama de la arquitectura Von Neumann.

Diagrama de la arquitectura Von Neumann.


Diagrama de la arquitectura Von Neumann.

La arquitectura Von Neumann, tambin conocida como modelo de Von


Neumann o arquitectura Princeton, es unaarquitectura de computadoras basada en la
descrita en 1945 por el matemtico y fsico John von Neumann y otros, en el primer borrador
de un informe sobre el EDVAC.1 Este describe una arquitectura de diseo para un computador
digital electrnico con partes que constan de una unidad de procesamiento que contiene
una unidad aritmtico lgica yregistros 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 deentrada y
salida.1 2 El significado ha evolucionado hasta ser cualquier computador de programa
almacenado en el cual no pueden ocurrir una extraccin de instruccin y una operacin de
datos al mismo tiempo, ya que comparten un busen comn. Esto se conoce como el cuello de
botella Von Neumann y muchas veces limita el rendimiento del sistema.3
El diseo de una arquitectura Von Neumann es ms simple que la arquitectura Harvard ms
moderna, que tambin 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 computador digital de programa almacenado es una que mantiene sus instrucciones de
programa, as como sus datos, en memoria de acceso aleatorio (RAM) de lectura-escritura.
Las computadoras de programa almacenado representaron un avance sobre los ordenadores
controlados por programas de la dcada de 1940, como la Colossus y la ENIAC, que fueron
programadas por ajustando interruptores e insertando parches, conduciendo datos de la ruta y
para controlar las seales entre las distintas unidades funcionales. En la gran mayora de las
computadoras modernas, se utiliza la misma memoria tanto para datos como para
instrucciones de programa, y la distincin entre Von Neumann vs. Harvard se aplica a la
arquitectura de memoria cach, pero no a la memoria principal.
ndice
[ocultar]

1 Historia
2 Desarrollo del concepto de programa almacenado
3 Definicin formal
4 Estructura clsica de las mquinas von Neumann
5 Primeras computadoras basadas en arquitectura von Neumann
6 Primeras computadoras de programa almacenado
7 Evolucin
8 Cuello de botella de von Neumann (von Neumann bottleneck)
9 Procesadores no von Neumann
10 Vase tambin
11 Referencias
o 11.1 General
12 Enlaces externos

Historia[editar]
Las primeras mquinas de computacin tenan programas fijos. Algunos equipos muy simples
siguen utilizando este diseo, ya sea por motivos de simplificacin o de formacin. Por
ejemplo, una calculadora de escritorio es (en principio) una computadora de programa fijo. En
ella, se pueden hacer matemticas bsicas, pero no puede ser utilizada comoprocesador de
texto o consola de juegos. Cambiar el programa de una mquina de programa fijo requiere re
cablear, reestructurar, o re disear la mquina. Las primeras computadoras no eran tanto
"programadas" ya que fueron "diseadas". Solo se "reprogramaba" cuando era absolutamente
posible, siendo un proceso laborioso, que comenzaba con diagramas de flujo y notas de
papel, seguido de diseos de ingeniera detallada, y luego en muchas veces arduo el proceso
de recablear fsicamente y reconstruir la mquina. Podra tomar hasta tres semanas
establecer un programa de ENIAC y conseguir que funcione.4
Esta situacin cambi con la propuesta de la computadora con programa almacenado. Una
computadora de programa almacenado incluye, por diseo, un conjunto de instrucciones y
puede almacenar en la memoria un conjunto de instrucciones (un programa) que detalla
la computacin.
Un diseo de programa almacenado tambin permite un cdigo mutante. Una primera
motivacin para una instalacin de este tipo fue la necesidad de que un programa incremente
o modifique de otro modo la porcin de direccin de instrucciones, lo cual, en los primeros
diseos, tena que hacerse manualmente. Esto lleg a ser menos importante cuando
los registros ndice y modos de direccionamiento se convirtieron en caractersticas habituales
de la arquitectura de la mquina. Otro uso fue para incrustar datos frecuentemente usados en
el flujo de instrucciones utilizando direccionamiento inmediato. El cdigo mutante ha cado en
gran parte en desuso, ya que suele ser difcil de entender y de depurar, adems de ser
ineficiente, en favor de los regmenes de los modernos procesadores pipelines y del
almacenamiento en cach.
A gran escala, la capacidad para tratar a las instrucciones de la misma forma que si fueran
datos es lo que hacen los ensambladores, compiladores, enlazadores, cargadores, y otras
posibles herramientas automticas de programacin. Se puede "escribir programas que
escriban programas". En una escala menor, las intensivas operaciones repetitivas de E/S -
como los primeros manipuladores de imgenes BitBLT o los sombreadores de pxeles y
vrtices en los grficos 3D modernos, se consideraron ineficaces al funcionar sin necesidad de
hardware personalizado. Estas operaciones podran acelerarse en los procesadores de
propsito general con tecnologa de "compilacin mosca" ("compilacin en tiempo de
ejecucin"), por ejemplo, programas de cdigo generado una forma de cdigo auto-
modificable que ha mantenido popularidad.
Hay algunas desventajas para el diseo de Von Neumann. Aparte del cuello de botella de Von
Neumann descripto a continuacin, las modificaciones del programa pueden ser muy
perjudiciales, ya sea por accidente o por diseo. En algunos diseos simples de computadora
con programa almacenado, un programa que no funcione correctamente puede daarse,
daar a otros programas, o inclusive al sistema operativo, lo que puede dar lugar a un
desplome o crash de la computadora. Normalmente, la proteccin de memoria y otras formas
de control de acceso pueden proteger tanto de modificaciones accidentales como de
programas maliciosos.

Desarrollo del concepto de programa almacenado[editar]


El matemtico Alan Turing, quien haba sido alertado de un problema de lgica matemtica
por las lecciones de Max Newman en la Universidad de Cambridge, escribi un artculo en
1936 titulado On Computable Numbers, with an Application to the Entscheidungsproblem, que
fue publicado en los Proceedings of the London Mathematical Society.5En l describa una
mquina hipottica que llam "mquina computadora universal", y que ahora es conocida
como la "Mquina de Turing universal". La mquina hipottica tena un almacenamiento
infinito (memoria en la terminologa actual) que contena tanto las instrucciones como los
datos. John Von Neumann conoci a Turing cuando ejerca de profesor sustituto en
Cambridge en 1935 y tambin durante el ao PhD que Turing pas en la Institute for
Advanced Study en Princeton, Nueva Jersey durante 1936-37. Cundo supo del artculo de
1936 de Turing no est claro.
En 1936, Konrad Zuse tambin anticip en dos solicitudes de patente que instrucciones de la
mquina podan 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 Ingeniera Elctrica en la Universidad de Pennsylvania,
escribieron sobre el concepto de programa almacenado en diciembre de 1943. En enero de
1944, mientras diseaba una nueva mquina, EDVAC, Eckert escribi que se almacenaran
datos y programas en un nuevo dispositivo de memoria direccionable, una memoria de lnea
de retardo. sta fue la primera vez que se propuso la construccin de un prctico programa
almacenado. Por esas fechas, no tenan conocimiento del trabajo de Turing.
Von Neumann estaba involucrado en el Proyecto Manhattan en el Laboratorio Nacional Los
lamos, el cual requera ingentes cantidades de clculos. Esto le condujo al proyectoENIAC,
en verano de 1944. All se incorpor a los debates sobre el diseo de un ordenador con
programas almacenados, el EDVAC. Como parte del grupo, se ofreci voluntario a escribir una
descripcin de l. El trmino "von Neumann architecture" surgi del primer artculo de von
Neumann: "First Draft of a Report on the EDVAC", fechado el 30 de junio de 1945, el cual
inclua ideas de Eckert y Mauchly. Estaba inconcluso cuando su compaero Herman
Goldstine lo hizo circular con slo el nombre de von Neumann escrito en l, para
consternacin de Eckert y Mauchly. El artculo fue ledo por docenas de compaeros de
trabajo de Von Neumann en Amrica y Europa, e influenci la siguiente hornada de diseos
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 "histricamente inapropiado
referirse a las computadoras electrnicas digitales de programa almacenado como 'mquinas
de von Neumann'".7 Su colega del colegio Los lamos, Stan Frankeldijo 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 trmino), pero estoy seguro de que nunca habra hecho que el propio error. l bien
podra haberse llamado tal vez la partera, pero con firmeza enfatiz para m, y para otros, que estoy seguro, que la concepcin fundamental
se debe a Turingen la medida en que no anticipado por Babbage... Por supuesto, tanto Turing como von Neumann tambin hicieron
importantes contribuciones a la "reduccin a la prctica" de estos conceptos, pero yo no considerara esto como comparable en importancia
con la introduccin y explicacin 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 actividades8
En el mismo momento en que el informe "Primer Borrador" fue distribuido, Turing desarroll un
informe tcnico detallado, Proposed Electronic Calculator, que describe en detalle la ingeniera
y la programacin, su idea de una mquina que fue llamada la Automatic Computing Engine
(ACE).9 Present ste al Laboratorio Nacional de Fsica Britnico el 19 de febrero de 1946. A
pesar de que Turing saba por su experiencia de guerra en el Parque Bletchley que su
propuesta era factible, el secretismo mantenido durante muchas dcadas acerca de los
ordenadores Colossus le impidi manifestarlo. Se produjeron varias implementaciones del
diseo ACE de forma exitosa.
Los trabajos tanto de von Neumann como de Turing, describan computadoras de programas
almacenados, pero al ser anterior el artculo de von Neumann, consigui mayor circulacin y
repercusin, as que la arquitectura de computadoras que esboz adquiri el nombre de
"arquitectura von Neumann". En la publicacin de 1953 Faster than Thought: A Symposium on
Digital Computing Machines (Ms rpido que el pensamiento: Un Simposio sobre Mquinas
informticas digitales -editado por BV Bowden-), una seccin en el captulo sobre Computers
in America (Computadoras en Amrica) dice lo siguiente:10
La Mquina del Instituto de Estudios Avanzados, Princeton
En 1945, el profesor J. von Neumann, que en ese entonces trabajaba en la Escuela Moore de
Ingeniera en Filadelfia, donde se haba construido el ENIAC, emitido en nombre de un grupo
de sus compaeros de trabajo un informe sobre el diseo lgico de las computadoras
digitales. El informe contena una propuesta bastante detallada para el diseo de la mquina
que, desde entonces, se conoce como la EDVAC (computadora de retardo variable discreta).
Esta mquina ha sido recientemente completada en Amrica, pero el informe von Neumann
inspir la construccin de la EDSAC (calculadora automtica de almacenamiento electrnico
de retardo) en Cambridge (vase pgina 130).
En 1947, Burks, Goldstine y Von Neumann, publicaron un informe en el que describen el
diseo de otro tipo de mquina (una mquina paralela en este momento) que debera ser muy
rpida, capaz de hacer 20.000 operaciones por segundo. Sealaron que el problema
persistente en la construccin de tal mquina estaba en el desarrollo de una memoria
adecuada, todos los contenidos de los cuales fueron instantneamente accesibles, y al
principio se sugiri el uso de un tubo especial -llamado Selectron- que haba sido inventado
por los laboratorios de Princeton de la RCA. Estos tubos son caros y difciles para fabricar, as
Von Neumman decidi construir una mquina basada en la memoria de Williams. Esa
mquina que se complet en junio de 1952 en Princeton se ha conocido como MANIAC I. El
diseo de esta mquina que ha sido inspirado de una docena o ms de mquinas que estn
actualmente en construccin en Amrica.
En el mismo libro, los dos primeros prrafos de un captulo sobre ACE dicen lo siguiente:11
Clculo automtico en el laboratorio nacional de fsica
Uno de los equipos digitales ms modernos que incorpora novedades y mejoras en la tcnica
de la computacin electrnica ha sido demostrado en el laboratorio nacional de fsica,
Teddington, donde ha sido diseado y construido por un pequeo equipo de matemticos e
ingenieros electrnicos investigadores sobre el personal del laboratorio, asistido por ingenieros
de produccin de la compaa elctrica 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 clculo automtico, pero aunque es relativamente pequeo en volumen y
contiene solo 800 vlvulas termoinicas, es una mquina de clculo muy rpido y verstil.
Los conceptos bsicos y principios abstractos de la computacin por una mquina fueron
formuladas por el Dr A. M. Turing, en un papel1 ledo ante la Sociedad Matemtica de Londres
en 1936, pero el trabajo en dichas mquinas en el Reino Unido se retras por la guerra. En
1945, se hizo una revisin al problema en el laboratorio nacional de Fsica por el profesor J. R.
Womersley. Se le adjunt al Dr. Turing un pequeo equipo de especialistas, y en 1947 la
planificacin 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
seccin de electrnica del laboratorio, bajo el cargo del Sr. F. M. Colebrook.

Definicin formal[editar]
Las computadoras son mquinas de arquitectura von Neumann cuando:

1. Tanto los programas como los datos se almacenan en una memoria en comn. Esto
hace posible la ejecucin de comandos de la misma forma que los datos.
2. Cada celda de memoria de la mquina se identifica con un nmero nico,
llamado direccin.
3. Las diferentes partes de la informacin (los comandos y los datos) tienen diferente
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 instruccin. Para cambiar esta
secuencia se utiliza el comando de control de transferencia.

Estructura clsica de las mquinas von Neumann[editar]


Una mquina Von Neumann, al igual que prcticamente todos los computadores modernos de
uso general, consta de cuatro componentes principales:

1. Dispositivo de operacin (DO), que ejecuta instrucciones de un conjunto


especificado, llamado sistema (conjunto) de instrucciones, sobre porciones de
informacin almacenada, separada de la memoria del dispositivo operativo (aunque
en la arquitectura moderna el dispositivo operativo consume ms memoria -
generalmente delbanco de registros-), en la que los operandos son almacenados
directamente en el proceso de clculo, en un tiempo relativamente corto
2. Unidad de control (UC), que organiza la implementacin consistente de algoritmos de
decodificacin de instrucciones que provienen de la memoria del dispositivo, responde
a situaciones de emergencia y realiza funciones de direccin general de todos los
nodos de computacin. Por lo general, el DO y la UC conforman una estructura
llamada CPU. Cabe sealar que el requisito es consistente, el orden de la memoria (el
orden del cambio de direccin en el contador de programa) es fundamental a la hora
de la ejecucin de la instruccin. 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 comunicacin con el mundo exterior de los
computadores, son otros dispositivos que reciben los resultados y que le transmiten la
informacin al computador para su procesamiento.

Primeras computadoras basadas en arquitectura von


Neumann[editar]
La primera saga se basaba en un diseo que fue utilizado por muchas universidades y
empresas para construir sus computadoras.12 Entre estas, solo ILLIAC y ORDVAC tenan un
conjunto de instrucciones compatible.
Mquina Experimental de Pequea Escala de Mnchester (SSEM), apodada "Baby"
(Universidad de Manchester, Inglaterra) hizo su primera ejecucin exitosa de un programa
almacenado el 21 de junio de 1948.
EDSAC (Universidad de Cambridge, Inglaterra) fue el primer computador electrnico
prctico de programa almacenado (mayo de 1949)
Manchester Mark I (Universidad de Manchester, Inglaterra) Desarrollado a partir de la
SSEM (junio de 1949)
CSIRAC (Consejo de Investigacin Cientfica e Industrial) Australia (noviembre de 1949)
EDVAC (Laboratorio de Investigacin Balstica, Laboratorio de Informtica de Aberdeen
Proving Ground, 1951)
ORDVAC (U-Illinois) en Aberdeen Proving Ground, Maryland (completado en noviembre
de 1951)13
IAS machine en Princeton University (enero 1952)
MANIAC I en Laboratorio Cientfico Los lamos (marzo de 1952)
ILLIAC en la Universidad de Illinois, (septiembre de 1952)
AVIDAC en Laboratorios Argonne National (1953)
ORACLE en Laboratorio Nacional de Oak Ridge (junio de 1953)
JOHNNIAC en RAND Corporation (enero de 1954)
BESK en Estocolmo (1953)
BESM-1 en Mosc (1952)
DASK en Dinamarca (1955)
PERM en Mnich (1956?)
SILLIAC en Sdney (1956)
WEIZAC en Rehovoth (1955)

Primeras computadoras de programa almacenado[editar]


La informacin de la fecha en la siguiente cronologa es difcil de establecer en el orden
correcto. Algunas fechas son de la primera ejecucin 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 instalacin.

La IBM SSEC tena la capacidad para tratar instrucciones como datos, y se demostr
pblicamente el 27 de enero de 1948. Esta capacidad fue reivindicada en una patente
estadounidense.14 Sin embargo, fue parcialmente electromecnica, no totalmente
electrnica. En la prctica, las instrucciones eran ledas desde una cinta de papel debido a
su memoria limitada.15
La Manchester SSEM (la beb) fue la primera computadora completamente electrnica
que ejecutaba un programa almacenado. Se corri un programa de factoraje durante 52
minutos el 21 junio de 1948, despus de ejecutar un simple programa de divisin y un
programa para demostrar que dos nmeros 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 versin 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 mantena 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 (ms tarde la ERA 1101/UNIVAC 1101 comercial) se instal en diciembre de
1950.

Evolucin[editar]

Evolucin de la arquitectura del bus simple del sistema

A lo largo de las dcadas de los aos 1960 y 1970, las computadoras hicieron, en general,
tanto ms pequeas como rpidas, 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 sean
tratados de la misma como la memoria.16 Un nico bus de sistema podra ser utilizado para
proporcionar un sistema modular con un menor coste. A veces esto se denomina
"racionalizacin" de la arquitectura.17 En las dcadas siguientes,
los microcontroladoressencillos seran algunas veces omitir caractersticas del modelo a
menor costo y tamao. Las computadoras ms grandes aaden caractersticas para un mayor
rendimiento.

Cuello de botella de von Neumann (von Neumann


bottleneck)[editar]
El canal de transmisin de los datos compartido entre CPU y memoria genera un cuello de
botella de Von Neumann, un rendimientolimitado (tasa de transferencia de datos) entre la CPU
y la memoria en comparacin con la cantidad de memoria. En la mayora de computadoras
modernas, la velocidad de comunicacin entre la memoria y la CPU es ms 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 ms rpidamente que el rendimiento de
transferencia entre ellos, el cuello de botella ha vuelto ms que un problema, un problema
cuya gravedad aumenta con cada nueva generacin de CPU.
El trmino cuello de botella de von Neumann fue acuado por John Backus en su
conferencia de la concesin del Premio Turing ACM de 1977. Segn 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 trfico de datos, sino que, ms 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 programacin es bsicamente la planificacin del enorme trfico de palabras que cruzan el
cuello de botella de von Neumann, y gran parte de ese trfico no concierne a los propios datos, sino a dnde encontrar stos.18 19

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 cachs separadas o vas de acceso independientes para datos e
instrucciones (la llamada arquitectura Harvard modificada), utilizando algoritmos y lgica
depredictor 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 tambin se puede eludirse, cierta medida,
usando computacin paralela, utilizando por ejemplo la arquitectura de acceso a memoria no
uniforme (NUMA), este enfoque es comnmente empleado por las supercomputadoras.
Est menos claro si el cuello de botella intelectual que criticaba Backus ha cambiado mucho
desde 1977. La solucin que propuso Backus no ha tenido influencia importante.[cita requerida] La
moderna programacin funcional y la programacin orientada a objetos se preocupan mucho
menos de "empujar un gran nmero 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 nmero de instrucciones simultneas arroye con el multihilo o
el multiprocesamiento de un solo chip har que este cuello de botella an peor. 20

Procesadores no von Neumann[editar]


El National Semiconductor (Semiconductor nacional) COP8 se introdujo en 1986; tiene
una arquitectura Harvard modificada.21 22
Tal vez el tipo ms comn de estructura no von Neumann se utiliza en las computadoras
modernas es la memoria de contenido direccionable (CAM).

Common questions

Con tecnología de IA

Alan Turing's concept of a universal computing machine, as articulated in his 1936 paper, laid the groundwork for the idea of a machine capable of processing instructions stored in its own memory, a principle foundational to modern computing systems . John von Neumann expanded on this idea, significantly influencing computer design through the development and dissemination of the stored-program concept, which allowed computers to use a single memory space for both instructions and data. This principle underpins what is commonly known today as the von Neumann architecture, widely used in modern CPUs . Both concepts helped establish reliable frameworks for computational logic and architecture that are integral to contemporary computer systems, facilitating advancements in software development and processing capabilities .

DSPs (Digital Signal Processors) gain significant advantages from employing a Harvard architecture primarily through its ability to execute deterministic and highly optimized processing tasks. The separate memory paths for instructions and data allow DSPs to perform SIMD (Single Instruction, Multiple Data) and VLIW (Very Long Instruction Word) operations more efficiently by avoiding memory access conflicts. This leads to increased processing speed and consistency, crucial for repeating tasks like audio and video signal processing, which require predictable and high-speed computational abilities . Additionally, DSPs can maintain multiple data memory spaces which further enhance their capacity for parallel processing and rapid execution .

The modified Harvard architecture enhances memory access efficiency primarily through its use of split caches for instructions and data. This modification allows a processor to access both instruction and data caches simultaneously, taking advantage of parallel processing capabilities. The unification of address space allows code to be moved and manipulated as data, offering flexibility and quick adaptability for running various programs . Unlike the strict separation in pure Harvard architecture, this approach facilitates dynamic code execution and memory management, supporting powerful techniques like just-in-time compilation .

The von Neumann bottleneck is considered a limitation because it arises from a shared data bus between the CPU and memory, requiring sequential processing of data and instructions. This results in a bottleneck that limits the rate at which data can be transferred between the processor and memory. It impacts computing efficiency by slowing down execution speeds when both instructions and data have to wait to use the bus, reducing the potential advantages of faster CPU processing speeds . This can become a significant barrier to performance, especially in systems requiring rapid data processing, leading to underutilization of CPU capabilities .

Harvard architecture allows simultaneous access to separate instruction and data memory, which can lead to faster CPU performance as instructions and data do not compete for the same memory bus. This architecture uses distinct code and data address spaces, permitting the CPU to read instructions and perform data access concurrently, without needing a cache . In contrast, von Neumann architecture uses a single memory space for both instructions and data, leading to a potential bottleneck as instructions and data share the same system bus. Consequently, a von Neumann CPU can perform either instruction fetch or data access at any one time, not both simultaneously . These differences often result in Harvard architectures being faster and more efficient for complex circuits .

A processor utilizing Harvard architecture handles data and instruction access simultaneously by maintaining physically separate memory banks for instructions and data. This separation allows the CPU to access instructions and data without contention on the same memory bus, effectively enabling parallel processing . In contrast, a processor using von Neumann architecture handles both instruction and data access through a single unified memory space. This necessitates sequential access, where instructions and data must share the same bus, often leading to potential delays as processes wait their turn for the bus, creating a bottleneck effect .

The widespread adoption of the von Neumann architecture was influenced by its flexibility and the early availability of the stored-program concept, which allowed computers to treat instructions as data. This adaptability made von Neumann architecture more versatile and aligned with developing complex software requirements . Historical developments such as John von Neumann's collaboration on the EDVAC project and the dissemination of his influential report 'First Draft of a Report on the EDVAC' played significant roles. This report outlined the stored-program approach and was shared extensively, facilitating its acceptance . Although Harvard architecture offered speed advantages through separate data and instruction pathways, the ease of programming and application in complex, versatile computing environments offered by von Neumann systems contributed to their dominance in general-purpose computing .

Cache memory plays a critical role in mitigating memory access speed limitations by providing a small, faster storage area closer to the CPU than main memory. It helps minimize the latency involved in accessing data and instructions from the main memory. By caching frequently accessed data and instructions, cache memory reduces the number of times the processor must wait for memory operations, effectively smoothing out the von Neumann bottleneck . This leads to improved CPU performance, as the chances of encountering a cache hit far outweigh the occurrences of a cache miss, allowing more efficient processing of tasks .

Modern processors implement a modified Harvard architecture by using independent instruction and data caches, coupled with a unified address space. This setup allows the CPU to function as a pure Harvard machine when accessing the caches, but act like a von Neumann system when dealing with main memory, where it can treat code and data as interchangeable . Benefits include increased overall efficiency as this integration allows processors to leverage the speed advantages of cache memory and manage memory resources more flexibly, leading to enhanced performance and flexibility . This architecture is commonly used in processors such as ARM and x86 .

A pure Harvard architecture is still utilized today in contexts where deterministic execution and lower power consumption are more crucial than programming flexibility. For instance, it is prevalent in applications such as embedded systems and digital signal processors (DSPs), where the benefits from separate memory channels for instructions and data simplify data access patterns and enhance processing efficiency . These systems often deal with fixed algorithms that prioritize speed and reliability over ease of software management, making the fixed and predictable nature of Harvard architecture advantageous despite the limitations related to challenging programming and lesser adaptability compared to modified versions .

También podría gustarte