Wikipedia · einfach zusammengefasst · Stand
Rechnerarchitektur
Zu den bekanntesten Architekturen für Computer bzw. deren zentralen Recheneinheiten, oder Prozessoren, zählen die Harvard-Architektur und die Von-Neumann- …
Inhalt5 Abschnitte
Grundidee und Bedeutung
Rechnerarchitektur ist ein Teilgebiet der Technischen Informatik und Mikroelektronik. Sie beschäftigt sich mit dem Design moderner Rechenmaschinen, also Computer oder Digitalrechner, besonders mit ihrer Organisation sowie ihrem äußeren und inneren Aufbau.
Eine stark vereinfachte Systemarchitektur einer Central Processing Unit (CPU) besteht aus verschiedenen Bausteinen und Verbindungen: Daten werden als Eingaben zur zentralen Recheneinheit geleitet, dort verarbeitet und anschließend als Ausgaben zurückgegeben. Dabei sind Register, Instruktionen und Datenfluss wichtig. Register sind kleine, sehr schnelle Speicherbereiche in der CPU. Instruktionen steuern den Kontrollfluss, also welche Operationen ausgeführt werden. Der Datenfluss beschreibt, wie Daten zwischen den Bausteinen bewegt werden.
Seit dem Aufkommen der Digitalelektronik sind Gatter zentrale Elemente der Rechnerarchitektur. Gatter sind digitale Schaltungen, die aus Transistoren aufgebaut sind und logische Operationen ausführen.
Beschreibung und wichtige Architekturtypen
Eine Rechnerarchitektur kann auf unterschiedliche Weise beschrieben werden. Konstruktive Methoden konzentrieren sich auf das physische Design und die praktische Implementierung der Hardware. Hardwarebeschreibungssprachen ermöglichen zusätzlich eine abstrakte Modellierung und Simulation digitaler Schaltungen. In diesem Zusammenhang spricht man auch von rechnerbasierter Entwicklung.
Zu den bekanntesten Architekturen für Computer, zentrale Recheneinheiten und Prozessoren gehören die Harvard-Architektur, die Von-Neumann-Architektur sowie MIPS, CISC, RISC und POWER. In diesem Bereich werden auch die Begriffe Mikroarchitektur oder Prozessorarchitektur verwendet. Außerdem gibt es den Ausdruck Rechnertechnik als Fachgebiet; diese Begriffe überschneiden sich teilweise.
Im Sinne des Systems Engineering unterscheidet man grundlegend zwischen funktionaler, logischer und physikalischer Architektur. Bei Computerarchitekturen hat außerdem die Hardware/Software-Schnittstelle (HSI) eine besondere Bedeutung, also die Grenze und Verbindung zwischen Hardware und Software. Als Werkzeuge werden unter anderem SystemC oder SystemVerilog eingesetzt.
Begriff und Definition
Gene Amdahl, Gerrit A. Blaauw und Frederick P. Brooks führten 1964 den Begriff Architecture ein. Sie wollten damit die gemeinsamen Eigenschaften aller Modelle des IBM System/360 beschreiben und von den sehr unterschiedlichen technischen Ausführungen, Kapazitäten und Arbeitsgeschwindigkeiten unterscheiden. Diese Gemeinsamkeit sollte es erleichtern, Rechnerteile und Programme auszutauschen, wenn sich der Bedarf der Kunden änderte.
Der Begriff war ursprünglich als Abstraktion gemeint. Eine Abstraktion hebt gemeinsame Eigenschaften hervor und lässt unwichtige Unterschiede weg. Der Artikel vergleicht dies mit algebraischen Strukturen in der Mathematik: Dort werden Regeln so allgemein formuliert, dass sie für verschiedene Grundmengen und Verknüpfungen gelten können.
Die Autoren vermieden das Wort Abstraktion und definierten Architecture in einer Fußnote durch Aufzählung: „The term architecture is used here to describe the attributes of a system as seen by the programmer, i.e. the conceptual structure and functional behaviour as distinct from the organisation of the data flow and controls, the logical design and the physical implementation.“ Gemeint sind also die Eigenschaften eines Systems aus Sicht des Programmierers, insbesondere seine begriffliche Struktur und sein funktionales Verhalten, getrennt von Datenfluss, Steuerung, logischem Design und physischer Umsetzung.
Spätere Autoren wie Peter Stahlknecht und Ulrich Hasenkamp haben diese Aufzählung detailliert, ergänzt und verändert. Nach Darstellung des Artikels ging dabei der Aspekt der Gemeinsamkeit und Abstraktion teilweise verloren, sodass Rechnerarchitektur auch als anspruchsvolles Schlagwort für beliebige Entwürfe verwendet wurde.
Geschichtliche Entwicklung
Rechnerarchitekturen sind Computerarchitekturen für elektronische beziehungsweise integrierte Schaltkreise (ICs). Sie wurden seit den 1940er Jahren mit den ersten röhrenbasierten Rechenmaschinen entwickelt, etwa Großrechnern wie dem „Manchester Baby“.
Als Teil des Manhattan-Projekts wurde der ENIAC erfunden und genutzt. Nicholas Metropolis und Stan Frankel berechneten mit dem ENIAC numerisch die Kernspaltung nach dem Tröpfchenmodell von Niels Bohr und John Wheeler. Auf den ENIAC folgten wenig später UNIVAC und MANIAC. Der MANIAC basierte auf der Von-Neumann-Architektur. Dick Feynman und andere berechneten mit diesen frühen Maschinen die Zustandsgleichung für Materie bei extrem hohen Drücken nach dem Thomas-Fermi-Modell. ENIAC und UNIVAC stammen von John Mauchly und John Presper Eckert. Die Association for Computing Machinery (ACM) vergibt bis heute den Eckert-Mauchly Award für herausragende Erfindungen im Bereich Rechnerarchitekturen und Computersysteme.
Ab den 1950er Jahren wurden Architekturkonzepte zuerst auf elektronische Geräte wie den IBM 701 und später auf transistorbasierte Geräte wie IBM 7030 Stretch und IBM 7070 übertragen. Richard Grimsdale gelang es, eine Rechnerarchitektur auf Basis von Transistoren aufzubauen. Ab den 1950er Jahren kamen neue Transistoren auf den Markt, die weitere Architekturen ermöglichten; besonders wichtig wurden ab den 1960er Jahren FET und MOSFET. Damit begann das Computerzeitalter. Als Geburtsstätte des Silicon Valley nennt der Artikel die 391 San Antonio Road in Mountain View.
Seit den 2000er Jahren entwickeln sich Rechnerarchitekturen und Mikroarchitekturen zu hochkomplexen Systemarchitekturen. Es gibt viele optimierte Architekturen für unterschiedliche Anforderungen. Seit den 2010er Jahren sind Mehrkernarchitekturen bei den meisten zentralen Rechnerarchitekturen oder Mikroprozessoren üblich. Auch die Rechnerarchitektur von Grafikprozessoren und anderen integrierten Schaltkreisen hat sich weiterentwickelt. Diese Entwicklungen werden stark von Mikroelektronik, Nanoelektronik und Halbleitertechnik innerhalb der Halbleiterindustrie geprägt.
Verwendung des Begriffs
Der Artikel vergleicht den Computer-Architekten mit einem Architekten oder Ingenieur eines Gebäudes: Wie dieser die Prinzipien und Ziele eines Bauprojekts als Grundlage für die Pläne festlegt, legt ein Computer-Architekt die Computer-Architektur als Grundlage für die eigentlichen Designspezifikationen fest.
Der Ausdruck Architektur wird in der Halbleiter-, Mikro- und Computerelektronik für verschiedene Bedeutungen verwendet. Eine Bedeutung ist die Befehlssatzarchitektur: Sie beschreibt das Design der Prozessorarchitektur eines Computers und seines Befehlssatzes. Dazu gehören auch Techniken wie SIMD- und MIMD-Parallelität. SIMD bedeutet, dass eine Instruktion gleichzeitig auf mehrere Daten angewendet wird. MIMD bedeutet, dass mehrere Instruktionen auf mehrere Datenströme angewendet werden.
Der Begriff kann auch allgemeinere Hardware-Architekturen bezeichnen, etwa Cluster Computing oder NUMA-Architekturen. Cluster Computing beschreibt das Zusammenwirken mehrerer Computer oder Recheneinheiten. NUMA-Architekturen betreffen Systeme, bei denen Speicherzugriffszeiten je nach Speicherort unterschiedlich sein können.
In einer weniger formalen Bedeutung beschreibt Architektur auch Voraussetzungen oder Design-Implementationen verschiedener Computerkomponenten. Dazu zählen besonders Geschwindigkeits- und Verbindungsvoraussetzungen sowie Komponenten wie Arbeitsspeicher, Hauptplatine, elektronische Peripherie oder allgemein der Hauptprozessor.