Rechnerarchitektur
Rechnerarchitektur ist eine Disziplin der Informatik, die sich mit dem Design von Computern und speziell mit deren Organisation, sowie deren externen- und internen Aufbau beschäftigt.
Table of contents |
2 Anwendung 3 Designziele |
Definition
Amdahl, Brooks und Blaauw definieren 1967:
"Rechnerarchitektur definiert sich aus den Attributen und das Verhalten eines Computers, wie dieser von einem Maschinenspracheprogrammierer gesehen wird. Diese Definition umfasst den Befehlssatz, die Befehlsformate, die OP-Codes, die Adressierungsarten und alle Register und Speicher, die direkt durch einen Maschinenspracheprogrammierer verändert werden können.
Die Implementation ist durch den aktuellen Hardwareaufbau, das logische Design und die organisation der Datenpfade einer bestimmten Ausführung der Architektur definiert."
Laut Stahlknecht und Hasenkamp: "Unter dem Begriff Rechnerarchitektur versteht man:
- die interne Struktur des Rechners, d.h. seinen Aufbau aus verschiedenen Komponenten, und
- die Organisation der Arbeitsabläufe im Rechner."
Anwendung
Wie ein Architekt eines Gebäudes die Prinzipien und Ziele eines Bauprojektes als die Basis für die Pläne des Bauzeichners festlegt, genauso legt ein Computer-Architekt die Computer-Architektur als Basis für die eigentlichen Designspezifikationen fest.
Der Ausdruck wird für verschiedene Bedeutungen verwendet:
- Das Design der Prozessorarchitektur eines Computer und seines Befehlssatzes und Techniken wie SIMD- und MIMD-Parallelität.
- Allgemeinere und umfassendere Hardware-Architektur wie Cluster Computing und NUMA-Architekturen.
- Eine weniger formale Bedeutung bezieht sich auf die Beschreibung der Voraussetzungen (besonders Geschwindigkeits- und Verbindungsvoraussetzungen) oder Design-Implementationen der verschiedenen Komponenten eines Computers (Wie zum Beispiel Arbeitsspeicher, Motherboard, elektronische Peripherie oder ganz allgemein die CPU).
Designziele
Die am häufigsten verfolgten Ziele beim Design einer Computer-Architektur kreisen um den Konflikt zwischen Kosten und Performance (d.h. Geschwindigkeit), allerdings können auch andere Erwägungen wie Größe, Gewicht und Energieverbrauch ein Faktor sein.
Im allgemeinen sind die Kosten fix, bestimmt durch den System- oder kommerziellen Bedarf, und die Geschwindigkeit und die Speicherkapazität werden an das Kostenziel angepasst.
Computerverkäufer beschreiben die Perfomance ihrer Maschinen mit dem Begriff der Taktfrequenz (normalerweise in MHz oder GHz). Diese beschreibt, wie oft ein Taktzyklus des Systemtaktgebers pro Sekunde durchlaufen wird. Dennoch, diese Maßeinheit ist etwas irreführend: Eine Maschine mit höherer Taktfrequenz muss nicht unbedingt auch eine höhere Performance aufweisen. Moderne CPUs können mehrere Instruktionen pro Taktzyklus ausführen, was ein Programm dramatisch beschleunigt. Andere Faktoren wie der Mix von funktionellen Einheiten, Bussystem-Geschwindigkeiten, verfügbarer Speicher und die Art und die Reihenfolge der Instruktionen eines laufenden Programmes, fügen noch Geschwindigkeit hinzu.
Allerdings gibt es auch verschiedene Arten von Geschwindigkeit. Interrupt Latency ist die garantierte maximale Antwortzeit des Systems auf ein
elektronisches Ereignis (zum Beispiel wenn die Festplatte mit Schreiben von Daten fertig wird). Die Zahl wird durch eine große Anzahl von Designentscheidungen beeinflusst. Computer, die Maschinen kontrollieren, brauchen für gewöhnlich eine niedrige Latenzzeit, weil die Maschine nicht warten kann, nicht warten wird oder nicht warten sollte. Zum Beispiel sollte eine computer-kontrollierte Bremse nicht warten bis der Computer mit dem fertig ist, was er gerade macht, sondern sollte direkt bremsen. Niedrige Antwortzeiten können oft sehr kostengünstig erreicht werden.
Benchmarks versuchen dies alles zusammen zu erfassen indem sie die Zeit messen, die ein Computer braucht um eine Reihe von Testprogrammen zu verarbeiten. Obwohl ein Benchmark die Stärken aufzeigt, muss er bei der Auswahl eines Computer nicht unbedingt hilfreich sein. Oft variiert die Leistung der Systeme bei einzelnen Messpunkten. Zum Beispiel kann ein System vielleicht wissenschaftliche Programme schnell verarbeiten, während ein anderes Videos besser abspielen kann.
Ein allgemeines Optimierungsschema ist es, die einzelnen Kosten der verschiedenen Komponenten des Rechners zu betrachten. In einem ausgeglichenen
Computersystem wird die Datenrate für alle Teile des Systems konstant sein und die Kosten werden proportional auf diese verteilt. Die genaue Ausprägung des Computersystems wird letztendlich aber immer durch das Umfeld und die Ziele bestimmt, für die es optimiert wurde.
Vergleiche CPU-Design
Kosten
Performance