W 1945 roku po raz pierwszy została opublikowana koncepcja przechowywanego programu, która jest przypisywana jednemu z konsultantów projektu ENIAC - John'owi von Neumanowi (należy wspomnieć, że niemal w tym samym czasie podobna koncepcja została opracowana również przez Alana Turinga). Idea ta miała położyć podwaliny pod nowy komputer von Neumana - EDVAC (ang. Electronic Discrete Variable Computer).

W roku 1946 von Neumann w Princeton Institute for Advanced Studies rozpoczął projektowanie komputera, który wykorzystywał program przechowywany w pamięci. Komputer ten nazwano IAS i był on prototypem wszystkich następnych komputerów o ogólnym przeznaczeniu.

[Struktura komputera IAS]

Rysunek 1.1. Struktura komputera IAS

Powyższy rysunek przedstawia ogólną strukturę komputera IAS, na którą składają się [1]:

John von Neumann tak opisał niegdyś tę strukturę komputera [1]:

  1. Po pierwsze, ponieważ urządzenie to jest przede wszystkim komputerem, najczęściej będzie wykonywało elementarne operacje matematyczne - dodawanie, odejmowanie, mnożenie, dzielenie. Jest więc rozsądne, że powinno posiadać wyspecjalizowane "organy" do wykonywania tych operacji.
    Należy jednak zauważyć, że chociaż powyższa zasada jako taka brzmi rozsądnie, to szczegółowy sposób jej realizacji wymaga głębokiego zastanowienia[...] W każdym przypadku centralna, arytmetyczna część urządzenia będzie prawdopodobnie musiała istnieć, co oznacza występowanie pierwszej specyficznej części komputera: CA.

  2. Po drugie, logiczne sterowanie urządzeniem, to znaczy odpowiednie szeregowanie jego operacji może być najefektywniej realizowane przez centralny organ sterujący. Jeżeli urządzenie ma być elastyczne, to znaczy możliwie uniwersalne, należy rozróżniać specyficzne rozkazy związane z określonym problemem i ogólne "organy" sterujące, dbające o wykonanie tych rozkazów - czymkolwiek by one nie były. Te pierwsze muszą być w jakiś sposób przechowywane; te drugie - reprezentowane przez określone działające części urządzenia. Przez sterowanie centralne rozumiemy tylko tę ostatnią funkcję, a "organy", które ją realizują, tworzą drugą specyficzną część urządzenia: CC.

  3. Po trzecie, jakiekolwiek urządzenie, które ma wykonywać długie i skomplikowane sekwencje działań (w szczególności obliczeń), musi mieć odpowiednio dużą pamięć[...]
    (b) Rozkazów kierujących rozwiązywaniem skomplikowanego problemu może być bardzo dużo, zwłaszcza wtedy, gdy kod jest przypadkowy (a tak jest w większości przypadków). Muszą one być pamiętane [...]

  4. Trzy specyficzne części CA, CC (razem C) oraz M odpowiadają neuronom skojarzeniowym w systemie nerwowym człowieka. Pozostają do przedyskutowania równoważniki neuronów sensorycznych (doprowadzających) i motorycznych (odprowadzających). Są to "organy" wejścia i wyjścia naszego urządzenia.
    Urządzenie musi mieć możliwość utrzymania kontaktu z wejściem i wyjściem za pomocą specjalistycznego narzędzia. Narzędzie to będzie nazwane zewnętrznym narzędziem rejestrującym urządzenia: R [...]
  5. Po czwarte urządzenie musi być wyposażone w organy przenoszące [...] informację z R do swoich specyficznych części C i M. "Organy" te stanowią jego wejście, a więc czwartą, specyficzną część: I. Zobaczymy, że najlepiej jest dokonywać wszystkich przeniesień z R (poprzez I) do M, a nigdy bezpośrednio do C [...]

  6. Po piąte, urządzenie musi mieć "organy" służące do przenoszenia [...] ze swoich specyficznych części C i M do R. Organy te tworzą jego wyjście, a więc piątą specyficzną część: O. Zobaczymy, że znowu najlepiej jest dokonywać wszystkich transferów z M (poprzez O) do R, nigdy zaś bezpośrednio z C [...]

Dzisiaj, niemal wszystkie popularne komputery klasy PC mają strukturę, którą stworzył niegdyś Neumann, dlatego też noszą miano maszyn von Neumanna.

NASTĘPNA