Computerhardware: Architektur


Es gibt zwei wesentlich verschiedene Arten, wie der Arbeitsspeicher eines Computers genutzt werden kann.

Von-Neumann-Architektur

Bearbeiten

Die Computer vor 1945 hatten nur sehr wenig Arbeitsspeicher. Das Programm wurde meist über Lochstreifen oder Steckfelder eingegeben. Ein solches Programm war nur mühsam zu ändern. Der Mathematiker John von Neumann veröffentlichte 1945 das nach ihm benannte Konzept, das Programm ebenfalls im Arbeitsspeicher unterzubringen. Dadurch konnte das Programm mit geringerem Aufwand eingegeben und zu geändert werden. Das (damals) revolutionäre war, dass der Computer bei Bedarf sein eigenes Programm verändern konnte. Nach dieser Grundidee, Daten und Programme in einem gemeinsamen Speicher unterzubringen, arbeiten die meisten heutigen Computer.

Harvard-Architektur

Bearbeiten

Die Grundidee besteht darin, für Daten und für Programme strikt getrennte Speicher vorzusehen.

Die Harvard-Architektur ist aufwändiger, denn die Speichersteuerung ist doppelt vorhanden. Die doppelte Speichersteuerung ermöglicht es andererseits, auf Befehle und Daten gleichzeitig zuzugreifen, was bei der von-Neumann-Architektur stets nacheinander erfolgt.

Nachteilig ist, dass nicht benötigter Programmspeicher nicht als Datenspeicher genutzt werden kann und umgekehrt. Deshalb müssen beide Speicher großzügiger bemessen werden. Insgesamt sind Computer mit Harvard-Architektur nicht unwesentlich teurer.

Sicherheit

Bearbeiten

Im Speicher eines Von-Neumann-Computers wechseln Code-Abschnitte mit Daten-Abschnitten. Wenn sich ein Programm in der Länge eines Datenabschnitts irrt, kann der davor oder dahinter befindliche Code überschrieben werden. Das nennt man einen „Pufferüberlauf“. Die Code-Abschnitte lassen sich nicht schützen, und Programmfehler sind leider die Regel. Darüber hinaus bemühen sich zahllose Cracker darum, unter Ausnutzung von Programmfehlern im Betriebssystem die Programme böswillig zu manipulieren. Bei der Harvard-Architektur sind solche Manipulationen ausgeschlossen.

Etwa seit 2008 verfügen neuere intel-CPUs über ein „Executable Flag“. Das ist ein rudimentärer Schutz, um Programmabschnitte vor dem Überschreiben zu schützen.

Wollen Sie mehr über Computerarchitekturen wissen?