# Arquitectura de von Neumann

L'arquitectura de von Neumann és la d'un ordinador amb un sistema d'emmagatzematge principal on es guarden tant les instruccions com les dades. El model defineix un ordinador que segueix el model referencial de la Màquina Universal de Turing.

## Història

Les primeres màquines de computació treballaven amb programes fixos. Alguns ordinadors molt simples encara utilitzen aquest disseny, per a propòsits de simplicitat o entrenament. Per exemple, una calculadora (en principi) és un ordinador de programa fix. Pot fer matemàtiques bàsiques, però no es pot utilitzar com a processador de textos o fer córrer videojocs. Per canviar el programa de tal màquina, ha de reconnectar, reestructurar, o fins i tot redissenyar-la. Podem dir doncs que els primers ordinadors no estaven "programats" sinó "dissenyats". Reprogramar-los sovint significava tornar a començar amb el disseny per finalment aplicar-lo en forma de canvis físics, modificant centenars de connexions.
La idea de l'ordinador de programa emmagatzemat deixava enrere tots aquests problemes. Creant una arquitectura amb un joc d'instruccions prou ample i detallant el càlcul com a sèrie d'instruccions (el que anomenem "programa"), la màquina es torna molt més flexible. Tractant aquelles instruccions de la mateixa manera com dades, una màquina de programa emmagatzemat pot fàcilment canviar el programa utilitzat, fins i tot tenir-ne diversos "carregats" de manera que el canvi sigui instantani.
Els termes "arquitectura de von Neumann" i "ordinador de programa emmagatzemat" són generalment utilitzat de manera intercanviable. Tanmateix, el concepte d'arquitectura Harvard s'hauria d'esmentar com un disseny que emmagatzema el programa en una forma fàcilment modificable, però utilitzant el mateix emmagatzematge pel que fa a dades generals.
Un disseny de programa emmagatzemat també permet que els programes es modifiquin mentre s'executen. Una primera motivació perquè això fos possible era la necessitat d'un programa autoextensible o altrament modificar la porció d'adreça d'instruccions, que s'havien de fer manualment en primers dissenys. Això es tornava menys important quan els registres índex i adreçament indirecte es convertien en trets normals d'arquitectura de màquines. El codi que automodifica es recrimina avui, ja que és dur d'entendre i depurar, i el pipelining de processadors modern i els esquemes de caching ho fan ineficaç.
Hi ha desavantatges al disseny de von Neumann. Les modificacions de programa poden ser bastant nocives, o per accident o disseny. En alguns dissenys informàtics de programa emmagatzemat simples, un programa que funciona malament es pot fer malbé a ell mateix, uns altres programes, o el sistema operatiu, possiblement conduint a una caiguda accidental del sistema. Una sobrecàrrega de memòria intermèdia és un exemple molt comú de tal funcionament defectuós. L'habilitat per a programes per crear i modificar uns altres programes és també freqüentment explotada per programari malintencionat.

## Diferències entre l'arquitectura Von Neumann i l'arquitectura Harvard

La diferència més important és que mentre que en l'arquitectura de Harvard es controlen per separat la memòria de dades i la memòria de programes, a l'arquitectura de Von Neumann s'utilitza el mateix espai de memòria per a les dues aplicacions. A conseqüència d'això l'arquitectura de Von Neumann és menys segura, ja que els desenvolupadors de virus o malware aprofiten aquesta vulnerabilitat per a fer que els virus s'emmascarin com dades.

## Bibliografia

* Stern, Nancy. From ENIAC to UNIVAC: An Appraisal of the Eckert-Mauchly Computers (en anglès). Digital Press, 1981. ISBN 0-932376-14-2.

## Vegeu també

* Ordinador
* Arquitectura Eckert-Mauchly
* Sistemes redundants
* Arquitectura Harvard