Die von Neumann Rechnerarchitektur

Vorgestellt wird die von Neumann Rechnerarchitektur und die wichtigsten KenngrĂ¶ĂŸen, die die Komponenten eines Computers charakterisieren.
Noch keine Stimmen abgegeben
Noch keine Kommentare

Einordnung des Artikels

EinfĂŒhrung

Mit den bisher besprochenen Konzepten (Algorithmus, höhere Programmiersprache, Maschinensprache, logische Operationen) ist es nicht mehr schwer die Architektur eines Computers zu verstehen wie sie von Neumann entwickelt hat. Der Algorithmus wird in einer höheren Programmiersprache geschrieben, dieser Quelltext ist fur den Computer spĂ€ter irrelevant, er benötigt den vom Compiler erzeugten Maschinencode, der im Hauptspeicher liegt. Durch die Eingabe des Benutzers wird dessen Abarbeitung angestoßen: sie erfolgt im Prozessor (CPU = Central Processing Unit).

Damit haben wir die wichtigsten Komponenten eines Computers kennengelernt (siehe Abbildung 1):

  1. Externe GerĂ€te fĂŒr Ein– und Ausgabe: zum Beispiel Tastatur, Bildschirm.
  2. Hauptspeicher: enthĂ€lt das aktuell ausgefĂŒhrte Programm und dazu benötigte Daten.
  3. Prozessor: zur eigentlichen Befehlsverarbeitung.
  4. Externes Bussystem: verbindet alle Komponenten zum Datenaustausch

Hauptspeicher und Prozessor werden zusammen als Zentraleinheit bezeichnet.

In diesem Kapitel wird eine Übersicht ĂŒber die Rechnerarchitektur gegeben; in den folgenden Kapiteln werden die einzelnen Komponenten detaillierter vorgestellt.

Interaktion mit dem Computer

Wie der Nutzer auf den Computer zugreift und die Abarbeitung eines Programmes anstĂ¶ĂŸt und anschließend Ausgaben empfĂ€ngt, zeigt Abbildung 1.

Abbildung 1: Durch eine Eingabe des Nutzers wird die Zentraleinheit veranlasst, ein Programm auszufĂŒhren; es kann dazu auf externe Speicher zugreifen. Nachdem das Programm beendet ist, erscheint die Ausgabe auf einem externen GerĂ€t.Abbildung 1: Durch eine Eingabe des Nutzers wird die Zentraleinheit veranlasst, ein Programm auszufĂŒhren; es kann dazu auf externe Speicher zugreifen. Nachdem das Programm beendet ist, erscheint die Ausgabe auf einem externen GerĂ€t.

Die Abbildung mag aus heutiger Sicht etwas befremdlich wirken, sie stammt aus der Anfangszeit des Computers. Befremdlich aus zwei GrĂŒnden:

  1. Heutige Rechner sind Multi-Tasking-fĂ€hig, das heißt sie können mehrere Programme gleichzeitig abarbeiten. Benötigt ein Programm lĂ€ngere Zeit, muss der Nutzer nicht warten, bis dessen Abarbeitung beendet ist; er kann in der Zwischenzeit anderen Programmen Eingaben machen. Ein Rechner im Single-Tasking-Betrieb muss erst das laufende Programm vollstĂ€ndig abarbeiten, bevor er neue Eingaben entgegennehmen kann. Das Bild beschreibt daher die Interaktion eines Nutzers mit einem Programm.
  2. Der Zugriff auf den Speicher ist ausdrĂŒcklich gezeigt — heute ist er so selbstverstĂ€ndlich, dass man nicht auf die Idee kommen wĂŒrde ihn einzuzeichnen. Die ersten Computer hatten keine Festplatte: alle Daten, die nicht im Hauptspeicher waren, mussten umstĂ€ndlich ĂŒber Disketten oder andere Speichermedien geladen werden. Insofern gibt das Bild — auch aus heutiger Sicht- sehr gut wieder, dass die notwendigen Komponenten eines Computers nur Prozessor und Hauptspeicher sind; Prozessor und Hauptspeicher werden daher zur Zentraleinheit zusammengefasst.

Mit dem letzten Punkt sind die wichtigsten Komponenten des Computers nochmal ausdrĂŒcklich angesprochen worden; im folgenden Abschnitt soll jetzt endlich gezeigt werden, wie diese Komponenten zusammenarbeiten und welche besondere Stellung die Zentraleinheit besitzt.

Die Architektur eines Computers nach von Neumann

Die folgende Abbildung zeigt die bereits mehrfach genannten Komponenten eines von Neumann Computers.

Abbildung 2: Komponenten des von Neumann Computers.Abbildung 2: Komponenten des von Neumann Computers.

Zu den externen GerĂ€ten zĂ€hlen Ein– und AusgabegerĂ€te (Tastatur, Maus, Bildschirm, Drucker und so weiter) und die Festplatte. (Auch wenn die Festplatte intern im Computer verbaut ist, zĂ€hlt sie logisch gesehen — als reines Speichermedium, das nicht rechnen kann, — zu den externen GerĂ€ten.)

Im Hauptspeicher mĂŒssen die abzuarbeitenden Programme und die von ihnen verwendeten Daten liegen. Bei Berechnungen muss die Möglichkeit bestehen, direkt auf sie zuzugreifen oder sie dort abzulegen.

Das eigentliche HerzstĂŒck des Computers ist die CPU (= Central Processing Unit) auch genannt Prozessor. In der CPU befinden sich Steuerwerk, ALU und Register. Letztere sind ebenfalls Speicher, in denen Zwischenergebnisse bei der Programmabarbeitung abgelegt werden. Die Komponenten in der CPU sind durch den internen Bus verbunden; der Name Bus soll wirklich darauf hindeuten, dass hier etwas transportiert wird, nĂ€mlich die Daten, die zwischen den Komponenten der CPU ausgetauscht werden.

Der externe Bus verbindet die Komponenten außerhalb der CPU.

Abbildung 3: Detailliertere Darstellung der Komponenten des von Neumann Computers.Abbildung 3: Detailliertere Darstellung der Komponenten des von Neumann Computers.

Die Befehlsabarbeitung beim von Neumann Computer

Wie diese Komponenten zusammenwirken, soll an einem einfachen Beispiel erlÀutert werden.

Beispiel: Berechnung mit einem Taschenrechner (siehe Abbildung 4)

  1. Das Programm Taschenrechner wird gestartet:
    • Der Nutzer klickt dazu etwa das Symbol fĂŒr den Taschenrechner (VerknĂŒpfung). Hinter dem Symbol verbirgt sich eine .exe-Datei, die auf der Festplatte gesucht wird.
    • Der Maschinencode, etwa tr.exe, wird von der Festplatte in den Hauptspeicher geladen (externer Bus).
    • ZusĂ€tzlich werden Speicherzellen im Hauptspeicher fĂŒr die Ein– und Ausgabedaten reserviert (und vermutlich mit Inhalt 0 vorbelegt).
  2. Nutzereingaben:
    • Durch Eingaben mit Maus (oder Touchpad) und Tastatur gibt der Nutzer die Eingabewerte ein (hier im Beispiel die Zahlen 17 und 3, die in die Eingabefelder des Taschenrechners geschrieben werden).
    • Diese Eingaben werden in die Speicherzellen des Hauptspeichers ĂŒbertragen (externer Bus).
  3. Auslösen der Befehlsverarbeitung:
    • Durch eine weitere Eingabe (Button-Klick) kann der Nutzer zum Beispiel den Taschenrechner auffordern die beiden Zahlen 17 und 3 zu multiplizieren.
    • Im Maschinencode des Taschenrechners wird das Unterprogramm gesucht, das fĂŒr die Multiplikation zustĂ€ndig ist.
  4. Eigentliche Befehlsverarbeitung:
    • Das Unterprogramm fĂŒr die Multiplikation wird zur CPU geschickt (externer Bus).
    • Das Steuerwerk nimmt die Befehle entgegen und decodiert sie. Der Maschinencode enthĂ€lt genau gesagt nicht die Befehle, sondern eine Codierung der Befehle.
    • Decodieren heißt, dass das Steuerwerk entscheidet, wie der Befehl ausgefĂŒhrt wird. Zum Beispiel mĂŒssen die Eingabewerte 17 und 3 aus dem Hauptspeicher geladen werden. Weiter mĂŒssen Schaltungen in der ALU angesprochen wird (die Multiplikation kann womöglich nicht von einer Schaltung erledigt werden, sondern sie wird in mehrere Additionen zerlegt). Dazu kann das Steuerwerk auf die Speicher im Register zugreifen, etwa um Zwischenergebnisse abzulegen.
    • Liegt das Endergebnis der Berechnung vor, hier 51, wird es in den Hauptspeicher in die dafĂŒr vorgesehene Speicherzelle geschrieben.
  5. Ausgabe des Ergebnisses:
    • Vom Hauptspeicher wird das Ergebnis an das entsprechende externe GerĂ€t weitergegeben (hier das Textfeld im Taschenrechner-Programm).
    • Damit ist die Befehlsverarbeitung fĂŒr den Mausklick Multiplikation beendet und der nĂ€chste Befehl kann eingegeben werden.

Abbildung 4: Zur ErklÀrung der Befehlsabarbeitung beim von Neumann Computers am Beispiel eines Taschenrechners.Abbildung 4: Zur ErklÀrung der Befehlsabarbeitung beim von Neumann Computers am Beispiel eines Taschenrechners.

Versucht man die Befehlsabarbeitung allgemein zu beschreiben, erhĂ€lt man etwa die folgende Kaskade, die immer ablĂ€uft, wenn ein Computer eine Berechnung durchfĂŒhrt; hier wird vorausgesetzt, dass das Programm bereits gestartet ist und sich damit zusammen mit den Daten des Programms schon im Hauptspeicher befindet:

  1. Der Nutzer macht Eingaben (ĂŒber ein beliebiges EingabegerĂ€t) und schickt einen Befehl ab, der eine Berechnung auslöst.
  2. Die Eingaben werden in den Hauptspeicher ĂŒbertragen (ĂŒber den externen Bus).
  3. Im Hauptspeicher wird das zustĂ€ndige Unterprogramm gesucht (als Maschinencode) und an die CPU geschickt (wieder ĂŒber den externen Bus); die nötigen Daten aus dem Hauptspeicher werden spĂ€ter bei der AusfĂŒhrung des Unterprogrammes von den entsprechenden Maschinensprachebefehlen angefordert.
  4. Das Steuerwerk in der CPU decodiert die einzelnen Maschinensprachebefehle, das heißt es werden die richtigen Schaltungen in der ALU und die Speicherzellen des Registers angesprochen (ĂŒber den internen Bus).
  5. Liegt das Endergebnis vor, wird es in die vorgesehene Speicherzelle des Hauptspeichers geschrieben und im externen GerÀt ausgegeben (externer Bus).

KenngrĂ¶ĂŸen fĂŒr einen Computer

Wie die einzelnen Bestandteile des Computers im Detail aufgebaut sind, soll erst spĂ€ter untersucht werden. ZunĂ€chst sollen die KenngrĂ¶ĂŸen benannt werden, mit denen man diese Komponenten charakterisieren kann; und es sollen die entsprechenden Zahlen — zumindest in ihrer GrĂ¶ĂŸenordnung — fĂŒr einen heutigen Computer angegeben werden.

Exkurs: Dezimale VorsÀtze in Physik und Informatik

In der Physik sind dezimale VorsĂ€tze von Einheiten natĂŒrlich als Potenzen von 10 definiert; am Wichtigsten sind dabei die Abstufungen in AbstĂ€nden von 1000. So gibt man fĂŒr eine Frequenz, deren SI-Einheit Hz (Hertz) ist, etwa an:

1 kHz = 1 000 Hz = 103 Hz

1 MHz = 106 Hz

1 GHz = 109 Hz

1 THz = 1012 Hz

1 PHz = 1015 Hz

Die AbkĂŒrzungen stehen fĂŒr kilo-Hertz, Mega-Hertz, Giga-Hertz , Tera-Hertz und Peta-Hertz.

Da fĂŒr Adressen von SpeicherplĂ€tzen Dualzahlen eingesetzt werden und 1000 keine Potenz von 2 ist, werden die dezimalen VorsĂ€tze zur Angabe von SpeichergrĂ¶ĂŸen anders eingesetzt — aber die oben genannten Namen beibehalten, was leicht zu Verwirrung fĂŒhren kann. Es wurde immer wieder vorgeschlagen, die dezimalen VorsĂ€tze, die auf den Potenzen von 2 beruhen, anders zu benennen, diese VorschlĂ€ge haben sich aber nicht durchgesetzt.

Wie werden SpeichergrĂ¶ĂŸen angegeben? Man kann dies leicht an Abbildung 3 verdeutlichen: Im Register sind Speicherzellen zu sehen, die mit 4 Bit adressiert werden können. Und da 24 = 16, ist es sinnvoll 16 Speicherzellen anzubieten. (Bei weniger Speicherzellen gĂ€be es 4 Bit-Adressen, die keiner Speicherzelle zugeordnet sind; bei mehr Speicherzellen wĂ€ren lĂ€ngere Adressen nötig.) FALSCH ist in Abbildung 3, dass dort in jeder Speicherzelle 4 Bit abgelegt sind. Üblicherweise bekommt jedes Byte eine eigene Adresse — so wie es fĂŒr den Hauptspeicher dargestellt ist.

Im Hauptspeicher in Abbildung 3 werden 8 Bit fĂŒr eine Adresse angegeben; jetzt wĂŒrde man den Speicher mit 28= 256 Speicherzellen aufbauen.

Und da 1000 keine Potenz von 2 ist, wird niemand auf die Idee kommen, einen Speicher mit 1000 Zellen zu bauen. Dagegen ist 1024 eine Potenz von 2, nÀmlich 210 = 1024.

Folglich definiert man:

8 Bit = 1 B (B ist die AbkĂŒrzung fĂŒr Byte)

1 kB = 1024 B

1 MB = 1024 kB = 1024 * 1024 B = 210 * 210 B = 220 B = 1 048 576 B

1 GB = 1024 MB = 230 B = 1,074 * 109 B

1 TB = 1024 GB = 240 B = 1,100 * 1012 B

1 PB = 1024 TB = 250 B = 1,126 * 1015 B

Aufgaben:

  1. Wieviele Byte kann ein Speicher besitzen, wenn die Adressen 4, 8, 16, 32 beziehungsweise 64 Bit lang sind (jedes Byte wird adressiert)? Geben Sie das Ergebnis mit einem geeigneten dezimalen Vorsatz an.
  2. Wie lang mĂŒssen die Adressen fĂŒr eine Speicher mit 8 GB beziehungsweise 64 GB sein?

Lösungen:

1. SpeichergrĂ¶ĂŸe in AbhĂ€ngigkeit von der AdresslĂ€nge:

  • 24 = 16, also 16 B
  • 28 = 256, also 256 B
  • 216 = 65 536, also 64 kB, denn 64 * 1024 B = 65 536 B
  • 232 = 4 294 967 296, also 4 GB, denn 232 B = 4 * 230 B = 4 GB
  • 264 = 24 * 260 = 18,4 * 1018, also 16 EB (Exa-Byte)

2. AdresslĂ€nge fĂŒr 8 GB:

8 GB = 8 * 230 B = 23 * 230 B = 233 B

Man benötigt also 33 Bit fĂŒr die Adressen.

AdresslĂ€nge fĂŒr 64 GB:

64 GB = 64 * 230 B = 26 * 230 B = 236 B

Man benötigt also 36 Bit fĂŒr die Adressen.

KenngrĂ¶ĂŸen fĂŒr einen heutigen Computer

Die folgenden KenngrĂ¶ĂŸen gelten fĂŒr aktuelle handelsĂŒbliche PCs und Notebooks.

1. Festplatte:

Das wichtigste externe GerĂ€t ist die Festplatte. Es erscheint widersinnig, sie als externes GerĂ€t zu bezeichnen, da sie fest im Computer verbaut ist. Man muss sich aber vergegenwĂ€rtigen, dass die ersten Computer keine Festplatte hatten — stattdessen war man auf andere Speichermedien angewiesen (wie etwa Disketten mit 100 oder 400 kB Speicher). Und logisch gesehen ist eine Festplatte ein Speichermedium.

Die SpeicherkapazitĂ€t (fest verbauter Festplatten in PCs und Notebooks) liegt heute in der GrĂ¶ĂŸenordnung 256 GB bis 8 TB — und wird sicher in den nĂ€chsten Jahren weiter steigen. Eine weitere wichtige GrĂ¶ĂŸe ist die Lese- und Schreibgeschwindigkeit (die auch als Datenrate bezeichnet wird); sie liegt heute bei etwa 600 MB/s. Die GrĂ¶ĂŸe der Festplatte hĂ€ngt von ihrem Einsatzort ab und betrĂ€gt meist 2,5 Zoll fĂŒr Notebooks und 3,5 Zoll fĂŒr PCs. Soll ein Computer als Server betrieben werden, ist es wichtig zu wissen, ob die Festplatte auf 24 Stunden-Betrieb ausgelegt ist — PC-Festplatten sollte man dazu nicht missbrauchen.

2. Hauptspeicher:

Seine SpeicherkapazitĂ€t betrĂ€gt heute meist 4 bis 16 GB. FĂŒr aktuelle Betriebssysteme ist es auch nicht empfehlenswert einen kleineren Hauptspeicher zu verwenden. Reicht der Hauptspeicher nicht aus, werden Daten und Programme auf die Festplatte ausgelagert. Da dort die Zugriffszeiten sehr viel lĂ€nger sind, wird die Geschwindigkeit der ProgrammausfĂŒhrung deutlich verringert.

3. Prozessor:

Die Abarbeitung der Befehle im Prozessor ist getaktet, das heißt fĂŒr jede Aufgabe steht ein gewisses Zeitintervall zur VerfĂŒgung, das vom Taktgeber vorgeschrieben wird. In einem Takt kann etwa ein Register gelesen werden oder eine logische Schaltung angesprochen werden oder ein Ergebnis in das Register geschrieben werden und so weiter.

Bei heutigen Rechnern liegt die Taktfrequenz etwa bei 2 bis 4 GHz. Und diese Zahl ist schon nahe an der physikalischen Grenze, die dadurch vorgegeben ist, wie schnell die verwendeten Transistoren ein- und ausgeschaltet werden können. WĂŒrde man noch schneller takten, könnte man nicht mehr unterscheiden, ob ein Signal ausgeschaltet und wieder eingeschaltet wurde oder ob es die ganze Zeit eingeschaltet war.

4. Bus:

In den Abbildungen wurde der Bus pauschal als ein einziger Bus dargestellt; dies ist nicht richtig, sondern man unterscheidet:

  • Datenbus: transportiert Daten, also Inhalte von Speicherzellen.
  • Adressbus: transportiert Adressen.
  • Steuerbus: transportiert Steuersignale.

Zudem können die Abbildungen so missverstanden werden, dass der Bus beliebige Pakete (von Daten, Adressen, Steuersignalen) transportieren kann. Auch das ist falsch: Wie die 4 eingezeichneten Leitungen in Abbildung 3 und 4 andeuten sollen, besteht der Bus aus einem BĂŒndel von Leitungen (in Ihrem Computer als Plastikband mit parallelen Leitungen zu erkennen) und auch der Transport ist getaktet. Je nach Anzahl der Leitungen kann der Bus pro Takt eine gewisse Anzahl von Bits ĂŒbertragen. Diese Anzahl wird als Wortbreite bezeichnet.

Genauer sollte man drei Wortbreiten unterscheiden, um einen Computer zu charakterisieren — sie mĂŒssen nicht identisch sein:

  • Anzahl der Bits, die vom Prozessor bei einem MOV-Befehl vom Hauptspeicher angefordert werden oder dorthin geschickt werden. (Diese Wortbreite haben Abbildung 3 und 4 suggeriert.)
  • Anzahl der Bits, die bei einem arithmetischen Befehl (wie ADD) im Prozessor verknĂŒpft werden.
  • Anzahl der Bits, die zur Adressierung des Hauptspeichers benötigt werden (siehe Aufgaben oben).

Die Taktfrequenz des Bussystems ist etwas kleiner als die des Prozessors, da die AusfĂŒhrung eines Maschinensprachebefehles mehrere Takte benötigt und daher nicht nach jedem Takt des Prozessors neue Daten geliefert werden mĂŒssen.

Aufgaben:

1. Suchen Sie sich fĂŒr einen beliebigen Hersteller von Notebooks je ein GerĂ€t im Preisbereich von 300 bis 400 EUR beziehungsweise von 1000 bis 1500 EUR heraus. Wie groß sind die hier besprochenen KenngrĂ¶ĂŸen?

Welche weitere KenngrĂ¶ĂŸen werden in der Beschreibung der GerĂ€te angegeben. Versuchen Sie ihre Bedeutung zu erklĂ€ren und mit den hier gegebenen ErklĂ€rungen in Verbindung zu bringen.

Wodurch wird der Preisunterschied gerechtfertigt?

2. Der Heimcomputer Commodore 64 war bei seinem Erscheinen 1982 eine wahre Sensation — zuvor waren vergleichbare Computer etwa dreimal so teuer und nur als Arbeitsplatzrechner interessant.

Versuchen Sie die KenngrĂ¶ĂŸen des C 64 herauszufinden.

Multi-Tasking beim von Neumann Computer

Die Beschreibung der Befehlsabarbeitung wirkt als könnte ein Computer (mit von Neumann-Architektur) immer nur ein Programm abarbeiten, denn die Maschinensprachebefehle mĂŒssen nacheinander an die CPU geschickt werden. Sollen mehrere Programme von der CPU gleichzeitig bedient werden, geraten deren Befehle und Daten durcheinander.

Das letzte Argument ist natĂŒrlich richtig, dennoch sind von Neumann-Rechner Multi-Tasking-fĂ€hig: Liegen im Hauptspeicher mehrere Programme, die gleichzeitig ausgefĂŒhrt werden sollen, werden vom scheduler (einem Dienstprogramm des Betriebssystems) PrioritĂ€ten fĂŒr deren Abarbeitung vergeben und dann Zeitintervalle berechnet, wie lange ein Programm maximal auf die CPU zugreifen darf. (Maximal, weil die Abarbeitung vorzeitig beendet sein könnte.) Diese Zeitintervalle werden auch als Zeitscheiben bezeichnet. Sie liegen in der GrĂ¶ĂŸenordnung 1 ms (Milli-Sekunde) bis 10 ms und sind daher fĂŒr den Menschen kaum wahrnehmbar, wodurch eine parallele Programm-AusfĂŒhrung vorgetĂ€uscht wird. FĂŒr den Computer ist 1 ms eine lange Zeitdauer, da man sie zur Taktfrequenz in Beziehung setzen muss: Der Prozessor kann in 1 ms etwa 1 Millionen Maschinensprachebefehle abarbeiten.

Manche Betriebssysteme verzichten auf die Berechnung der PrioritĂ€ten und arbeiten die Programme gemĂ€ĂŸ round robin (Reihum-Methode) ab.

Der Harvard-Rechner

Beim von Neumann-Rechner sind im Hauptspeicher sowohl Daten als auch Programme gespeichert. Dies kann zu Sicherheitsproblemen fĂŒhren, da Computer-Viren leichter eingeschleußt werden können. Beim sogenannten Harvard-Rechner werden Daten und Programme in zwei unterschiedlichen Speichern abgelegt (Daten-Speicher und Programm-Speicher).

Der Nachteil der Harvard-Architektur ist, dass man im Voraus nicht weiß, wie der Computer spĂ€ter eingesetzt werden soll. Und daher ist es schwer, die GrĂ¶ĂŸe der beiden Speicher zu dimensionieren. FĂŒr eingebettete Systeme (embedded systems) trifft dies nicht zu; dort wird die Harvard-Architektur oft eingesetzt, bei PCs dominiert immer noch die von Neumann-Architektur (mit den noch zu besprechenden Verbesserungen).

Der Vorteil der Harvard-Architektur besteht vor allem darin, dass fĂŒr Daten und Programme ein eigenes Bussystem bereitsteht. Der Daten-Speicher muss nur mit dem Rechenwerk kommunizieren, der Programm-Speicher nur mit dem Steuerwerk. Daher ist der Bus insgesamt sehr viel schneller als beim von Neumann-Rechner. Dort kann das Bussystem leicht zum Flaschenhals des Rechners werden, das heißt dass es nicht schnell genug die Daten und Programmteile fĂŒr den Prozessor nachliefern kann.

Der von Neumann-Rechner und aktuelle Computer-Architektur

Die von Neumann-Architektur wurde etwa 1946 entwickelt. Bei der rasanten Entwicklung der Komponenten eines Rechners ist es kaum zu glauben, dass diese Architektur heute noch aktuell sein soll. Aber bis auf wenige Unterschiede wird die von Neumann-Architektur auch bei heutigen Computern realisiert.

Die Unterschiede bestehen vor allem in folgender Hinsicht:

1. Mehr-Kern-Prozessor:

Der von Neumann-Rechner besitzt einen Prozessor; die wichtigste Aufgabe des Rechners ist ja einen Algorithmus abzuarbeiten und dies sollte zunĂ€chst nacheinander geschehen. Heutige Rechner, sogar im unteren Preisbereich, werden fast ausschließlich als Mehr-Kern-Prozessoren angeboten. Das heißt es gibt mehrere Prozessoren, die es erleichtern, dass viele Programme gleichzeitig abgearbeitet werden können (Multi-Tasking).

2. Cache-Speicher:

Wie beim Harvard-Rechner besprochen, kann beim von Neumann-Rechner das Bussystem leicht zum Flaschenhals des Rechners werden. Dies kann man vermeiden, indem man zwischen dem Hauptspeicher und dem Prozessor einen (oder sogar mehrere) Cache-Speicher anbietet. Im Cache-Speicher befinden sich dann Daten und Programmteile, auf die der Prozessor oft zugreifen muss. Er wird zwar nur als klein (im Vergleich zum Hauptspeicher) realisiert, aber auf ihn kann sehr schnell zugegriffen werden. Mit einem geschickten Speicher-Management (was wird im Speicher abgelegt?) kann die Befehlsabarbeitung deutlich schneller ablaufen.