You are on page 1of 10

2022

ARQUITECTURA DE VON NEUMANN


Y DE HARVARD

Nombre: Tonny Amílcar Huanca Roque


Ingeniero: Juan José Ortiz Copa
Materia: Sistemas Operativos

INFOCAL 2-5-2022
ARQUITECTURA DE VON NEUMANN.

JOHN VON NEUMANN


Nació en el Imperio de Austria-Hungría, en Budapest,
en el seno de una familia judía de banqueros,
Ennoblecida por el Imperio. Un niño prodigio que estudió
matemáticas y química en su ciudad natal, Berlín
y Zúrich. Recibió su doctorado en matemáticas de la
Universidad de Budapest a los 23 años.
Dio su nombre a la Arquitectura de Von Neumann,
utilizada en casi todos los ordenadores.
El concepto de programa almacenado permitió la
lectura de un programa (instrucciones) y sus datos
dentro de la memoria de la computadora, y después la
ejecución de las instrucciones del mismo sin tener
que volverlas a escribir. La idea era conectar
permanentemente las unidades del ordenador y que
su
funcionamiento estuviera coordinado bajo un control central.
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).
Los ordenadores con arquitectura Von Neumann constan de cinco partes:
1. La unidad aritmético-lógica o ALU
2. La unidad de control
3. La memoria
4. Un dispositivo de entrada/salida
5. El bus de datos que proporciona un medio de transporte de los datos entre las distintas
partes.
La mayoría de computadoras modernas están basadas en esta arquitectura.
El nacimiento u origen de la arquitectura Von Neumann surge a raíz de una colaboración en el
proyecto ENIAC del matemático de origen húngaro, John Von Neumann, que trabajaba en 1945 en
el Laboratorio
Nacional Los Álamos.
El primer ordenador comercial construido de esta forma fue el UNIVAC I, fabricado en 1951 por la
Sperry-
Rand Corporation y comprado por la Oficina del Censo de Estados Unidos.
La idea Von Neumann era conectar permanentemente las unidades del ordenador, de
manera que su
funcionamiento estuviera coordinado bajo un control central. Describió el fundamento
teórico de
construcción de un ordenador electrónico con programa almacenado.
La arquitectura de Von Neumann define 4 elementos esenciales

 Procesador: Encargado tanto de ejecutar las instrucciones de los programas que


proporcionemos al ordenador como de controlar y coordinar el funcionamiento del resto
de componentes.
 Memoria: Lugar donde se almacenan los datos y las instrucciones a tratar.
 Interfaces de Entrada/Salida: Dispositivos creados para poder intercambiar información
con el exterior de la máquina.
 Buses: Las conexiones que interconectan los diferentes módulos que componen el
ordenador. 

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.
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

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:

1. Registros de datos: Guardan la información con la que se trabaja.


2. Registros de direcciones: Guardan direcciones de memoria (en las que puede haber
datos).
3. Registros de control: Controlan el estado de la CPU (flags: zero, overflow, underflow,
positivo/negativo…)

Unidad de control

Se 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:

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


2. 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.

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

  Busess

Transportan 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).

 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 Neumann.

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

 Bus de datos:

Como 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 Neumann 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.

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:

 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.

 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.

ARQUITECTURA DE HARVARD

Origen

El trabajo realizado en la Universidad de Harvard en la década de 1940 bajo el liderazgo de


Howard Aiken creó una computadora original basada en relés, llamada Harvard Mark I, que es el
término de donde surge el concepto de la arquitectura Harvard.
Esta computadora empleaba unidades de memoria separadas para almacenar los datos y las
instrucciones. Luego ha habido un desarrollo significativo con esta arquitectura.
Aiken incitó a utilizar memorias separadas para los datos y para las instrucciones del programa,
con buses separados para cada una.
La arquitectura Harvard original almacenaba habitualmente las instrucciones en cintas perforadas
y los datos en contadores electromecánicos.
El almacenamiento de datos de estas primeras máquinas estaba totalmente dentro de la unidad
central de procesamiento. Por otro lado, no daban acceso para que las instrucciones se
almacenaran como datos. Un operador debía cargar los programas.
Una arquitectura Harvard puede procesar los datos y ejecutar las instrucciones al mismo tiempo,
porque cada uno de ellos tiene un bus de direcciones propio.

Modelo
Este modelo se caracteriza en que los buses de información y el almacenamiento se encuentran
separados físicamente para los datos y el código del programa.
Como los buses funcionan de manera autónoma, los datos y las instrucciones del programa se
pueden obtener al mismo tiempo, mejorando así la velocidad sobre el diseño de bus único.
Por tanto, el modelo Harvard resulta tener mayor complejidad. Sin embargo, al tener los buses de
forma independiente se evita el cuello de botella producido por la arquitectura von Neumann.
Una computadora puede ser más veloz para un circuito de cierta complejidad, porque buscar las
instrucciones y acceder a los datos no tienen que luchar por un solo bus de memoria.
Para trabajar existen dos direcciones de memoria. Por tanto, hay un registro de memoria para las
instrucciones de máquina y otro registro de memoria para los datos.
A diferencia de la arquitectura von Neumann, que utiliza un bus para mover tanto las instrucciones
como los datos de la memoria, la arquitectura Harvard usa un área de memoria para los datos y
otro para las instrucciones.

Arquitectura Harvard modificada


En las computadoras actuales no existe físicamente una disgregación de las áreas de memoria
utilizadas por los programas y los datos. Por tal motivo se podría decir que tecnológicamente
tienen una arquitectura Von Neumann.
No obstante, la arquitectura Harvard modificada sirve para representar de la mejor manera a las
computadoras de hoy en día.
Aunque las unidades de procesamiento actuales comparten la memoria, disponen de ciertos
elementos, tales como instrucciones exclusivas, que impiden que los datos se enreden con las
instrucciones. A esto se llama arquitectura Harvard modificada.
Así, la arquitectura Harvard modificada tiene dos buses separados, uno para el código y otro para
los datos, pero la memoria en sí es un elemento compartido físicamente.
El controlador de memoria es donde se asienta el cambio, porque este dispositivo es el que
maneja la memoria y cómo se debe utilizar.
Los diseños de las computadoras modernas tienen como soporte la arquitectura Harvard
modificada. Se usan en los microcontroladores y en el procesamiento de señal digital.

¿Cómo funciona la arquitectura Harvard?


La arquitectura Harvard tiene áreas diferentes de direcciones de memoria para el programa y para
los datos.
Esto trae como consecuencia la capacidad de diseñar un circuito de tal manera que se pueda usar
un bus y un circuito de control para manejar el flujo de información desde la memoria del
programa y otro separado para manejar el flujo de información hacia la memoria de datos.
El uso de buses separados significa que es posible que la recuperación y ejecución de un programa
se realice sin que haya ninguna interrupción por alguna transferencia ocasional de datos a la
memoria de datos.

Por ejemplo, en una versión simple de esta arquitectura, la unidad de recuperación del programa
podría estar ocupada recuperando la siguiente instrucción en la secuencia del programa y en
paralelo realizar una operación de transferencia de datos que pudieron haber sido parte de la
anterior instrucción del programa.
En este nivel la arquitectura Harvard tiene una limitación, ya que generalmente no es posible
colocar el código del programa en la memoria de datos y ejecutarlo desde allí.

Adiciones en la arquitectura
A la forma simple de la arquitectura Harvard se pueden agregar muchas variantes existentes de
mayor complicación.
Una adición común es agregar un almacenamiento caché de instrucciones al bus de datos del
programa, que le permita a la unidad de ejecución de instrucciones un acceso más rápido al
siguiente paso del programa, sin tener que ir a una memoria más lenta para obtener el paso del
programa cada vez que se requiera.
Direcciones de memoria
Una computadora con arquitectura Harvard tiene distintas áreas de direcciones de datos y de
instrucciones: la dirección uno de instrucciones no es la misma área que la dirección uno de datos.
La dirección uno de instrucciones podría contener un valor de veinticuatro bits, mientras que la
dirección uno de datos podría indicar un byte de ocho bits, que no es parte de ese valor de
veinticuatro bits.

Sistema de memoria

Como se tiene un área de memoria separado para las instrucciones y los datos, separando tanto
las señales como el almacenamiento en memoria del código y los datos, esto hace posible acceder
simultáneamente a cada uno de los sistemas de memoria.

Ventajas

– Hay menos posibilidades de corrupción en la transmisión, ya que los datos y las instrucciones se
transfieren a través de diferentes buses.
– Se accede a los datos y a las instrucciones de la misma manera.
– Permite diferentes medios de almacenamiento para las instrucciones y los datos. Por ejemplo, se
pueden poner las instrucciones en una ROM económica y los datos en una RAM costosa.
– Las dos memorias pueden usar diferentes tamaños de celda, con lo cual se hace un uso efectivo
de los recursos.
– Se tiene un mayor ancho de banda de memoria, que es más predecible por tener memorias
separadas para las instrucciones y datos.

Nivel de protección
En sistemas que no tengan una unidad de administración de memoria ofrece un nivel de
protección adicional, ya que no se podrá comenzar a ejecutar datos como si fuera código, lo que
expondría al sistema a numerosos problemas, tal como el desbordamiento de búfer.
Es por eso que es popular con los sistemas integrados pequeños, como el microondas o un reloj.

Mayor velocidad

La arquitectura Harvard puede leer una instrucción y también realizar el acceso a la memoria de
datos simultáneamente a una velocidad rápida.
Ofrece un mayor rendimiento, ya que permite la obtención simultánea de datos e instrucciones
por guardarse en memorias separadas y viajar a través de buses diferentes.
Una arquitectura Harvard generalmente ayudará a que una computadora con cierto nivel de
complejidad funcione más rápido que una arquitectura Von Neumann, siempre que no sea
necesario compartir recursos entre las memorias de datos y del código.
Si las limitaciones de pines u otros factores obligan al uso de un solo bus para acceder a ambos
espacios de memoria, es probable que tales ventajas se anulen en gran medida.
Desventajas

Mayor complejidad y costo

El problema con la arquitectura Harvard es su gran complejidad y costo debido a que, en lugar de
un bus de datos, ahora se necesitan dos.

La producción de una computadora con dos buses es mucho más costosa y lleva más tiempo
fabricarla. Requiere una unidad de control para dos buses, que es más complicada y cuyo
desarrollo es costoso y necesita más tiempo.

Esto significa una implementación más compleja para los fabricantes. Requiere más pines en la
CPU, una tarjeta madre más compleja y tener que duplicar los chips de la RAM, así como un diseño
de caché más complejo.

Poca utilización

La arquitectura Harvard no se usa mucho, por lo que es más difícil de implementar. Es por eso que
rara vez se usa fuera de la CPU.

Sin embargo, esta arquitectura a veces se utiliza dentro de la CPU para manejar sus cachés.

Mal uso del espacio de memoria

Cuando hay espacio libre en la memoria de datos no se puede utilizar para almacenar
instrucciones y viceversa.

Por tanto, las memorias particulares que se dedican a cada uno de ellos deben hacerse
cuidadosamente equilibradas en su fabricación

You might also like