| Hardware | Computer

Computer

Definition und Abgrenzung

Die Erfindung des Computers bildete die Grundlage für die Etablierung der Wissenschaftsdisziplin der Informatik. Ein Computer ist eine mathematische Maschine, die als Programme formulierte Befehlsfolgen automatisch ausführen kann. Ein Universalrechner ist ein Computer, der prinzipiell alle durch Algorithmen beschreibbaren Probleme als Programme ausführen und in endlicher Zeit lösen kann. Die meisten modernen Computer sind Universalrechner, die neben einem oder mehreren Prozessoren zur Ausführung von Programmen einen Arbeitsspeicher und ein Ein-/Ausgabesystem besitzen. Die Komponenten eines Computers kommunizieren über eine geeignete Verbindungsstruktur miteinander.

Jeder Prozessor besteht aus einem Leit- oder Steuerwerk (Control Unit), einem oder mehreren Rechenwerken (Arithmetic Logic Unit (ALU)), einem Registersatz für Datenoperanden und Steuerungsinformationen und meist einer Hierarchie schneller Zwischenspeicher (Caches), die die Zugriffszeit auf wiederholt benötigte Befehle und Daten aus dem Arbeitsspeicher verringern. Jeder Prozessor besitzt einen Befehlssatz, der neben arithmetischen und logischen Verknüpfungsbefehlen Befehle zum Laden und Speichern von Datenoperanden, zu bedingten und unbedingten Sprüngen an andere Stellen eines Programms und zur Prozessor- und Systemsteuerung enthält. Ein moderner Prozessor ist auch in der Lage, Programmunterbrechungen (Interrupts) zu verarbeiten, die durch externe Signale (auch von Sensoren oder anderen Computern) oder das Betriebssystem ausgelöst werden.

Im Arbeitsspeicher (oft auch als Hauptspeicher bezeichnet) des Computers stehen die zur Laufzeit benötigten Programme und Daten. Das Ein-/Ausgabesystem schafft die Verbindung zu Massenspeichern und zur Kommunikation einzelner Computer mit anderen Systemen in Rechnernetzen. Der Übergang von einzelnen Computern zu Rechnernetzen verläuft fließend. Innerhalb eines Computers werden Daten jedoch meist mit wesentlich höheren Geschwindigkeiten ausgetauscht als in Rechnernetzen.

Die Mehrzahl der heute existierenden Computer arbeitet mit digitaler Logik, die in Form integrierter elektronischer Schaltkreise auf Mikrochips realisiert ist. Je nach angestrebter Rechenleistung können komplette Computer aus einem einzigen Chip bestehen oder aber auch als sehr komplexe Systeme mit Tausenden kommunizierenden Chips implementiert werden.

Entscheidend für die Verarbeitungsgeschwindigkeit und Flexibilität eines Computers ist die Hardwarestruktur und -organisation seiner Prozessoren. Das Leitwerk eines Prozessors steuert die Verarbeitung der einzelnen Programmbefehle, während sie die Phasen ihres Lebenszyklus durchlaufen. Die Befehlsverarbeitung wird dabei grob in die Phasen Befehl holen (Speicherzugriff), Befehl decodieren (durch Decodiereinheiten im Leitwerk), Operanden holen (durch Register- oder Speicherzugriff), Befehl ausführen (durch eine Funktionseinheit des Rechenwerks) und Ergebnis zurückschreiben (durch Register oder Speicherzugriff) unterteilt. Prozessoren sind meistens synchron getaktet. Eine Befehlsverarbeitungsphase dauert einen Takt. Je höher die Taktfrequenz, in desto mehr entsprechend kürzere Phasen muss die Befehlsverarbeitung aufgeteilt werden.

Wenn ein einzelner Prozessor die Phasen überlappt auf mehreren Befehlen gleichzeitig ausführt, spricht man von Phasen-Pipelining. Wenn ein einzelner Prozessor in jeder Pipeline-Phase mehrere Befehle gleichzeitig bearbeiten kann, spricht man von Superskalarverarbeitung. Moderne superskalare Cores steuern die Reihenfolge der Befehlsausführung so, dass möglichst viele voneinander unabhängige Befehle gleichzeitig ausgeführt werden (Doweck 2017).

Wenn ein Superskalarprozessor gleichzeitig Befehle aus mehreren verschiedenen Programmen, Prozessen oder Threads (simultan ablauffähige Ausführungsstränge eines Prozesses) bearbeiten kann, spricht man von Multithreading. Durch die einzelne oder kombinierte Anwendung dieser drei Organisationsformen (Pipelining, Superskalarverarbeitung, Multithreading) erhöht sich der Befehlsdurchsatz deutlich, denn in einer bestimmten Zeit halten sich dann viel mehr Befehle gleichzeitig im Prozessor auf als ohne diese Beschleunigungstechniken.

Wird noch mehr Rechenleistung benötigt, geht man zu Multiprozessorsystemen über. Dort unterscheidet man zwischen speichergekoppelten Systemen, bei denen alle Prozessoren direkt auf den Arbeitsspeicher zugreifen und gemeinsame Daten nutzen können und nachrichtengekoppelten Systemen, bei denen jeder Prozessor einen eigenen Speicheradressraum ansteuert und die Kommunikation zwischen Prozessoren durch Senden und Empfangen von Nachrichten über ein Verbindungsnetzwerk erfolgt.

Durch das Fortschreiten der Mikroelektronik ist es heute Standard, komplette Multiprozessoren auf einem Chip unterzubringen. Man spricht dann von Multicore-Prozessoren oder Chip-Multiprozessoren. Jeder Core ist dabei als ein vollständiger Einzelprozessor zu betrachten, aber mehrere Cores können sich gemeinsame Ressourcen, wie beispielsweise einen sehr großen Cache, teilen, der sich ebenfalls auf dem Multicore-Chip befindet. Neben Prozessor-Cores und Caches können sich auch Teile des Arbeitsspeichers und Komponenten wie Signalprozessoren und Sensoren auf einem einzelnen Chip befinden. Man spricht dann von Systems-on-Chip (SoC).

Geschichte

Die ersten Ideen und Konstruktionspläne zu einem Universalrechner entstanden bereits im 19. Jahrhundert. Der englische Philosoph, Mathematiker und Erfinder Charles Babbage hatte sich bereits 1834 ein Konzept für die sogenannte Analytical Engine überlegt, einer mechanischen Konstruktion aus Säulen von Dezimalrädern, um einzelne Ziffern im Rechenwerk (Mill) und Speicher (Store) darzustellen und zu verarbeiten. Die Kommunikation sollte über Transportmechanismen aus Seilen und Zahnrädern erfolgen. Programmbefehle und Daten sollten aus Lochkarten ausgelesen werden. Von der Analytical Engine wurde nur ein kleiner Teil als Demonstrationsmodell fertiggestellt. Babbages Rolle als „Großonkel des Computers“ (Wilkes 1995) ist auch seiner Beschäftigung mit algorithmischer Programmierung zu verdanken. Zusammen mit der Publizistin Ada Lady Lovelace entwickelte er die Grundlagen einer Programmiersprache, die neben Verknüpfungsbefehlen und Wiederholungsschleifen sogar das Konzept des bedingten Sprungs enthielt. Damit war sein Berechenbarkeitskonzept universeller und mächtiger als das der ersten digitalen Computer im 20. Jahrhundert.

Konrad Zuse, der Erfinder des ersten digitalen Computers, des rein mechanischen Zuse Z1 (1938) und des relaisgesteuerten Nachfolgers Zuse Z3 (1941) verwendete bereits das duale Zahlensystem und eine selbst entwickelte Schaltalgebra. Programmbefehle wurden auf gestanzten 35-mm-Filmrollen aufgebracht, die durch einen Lesemechanismus ausgelesen wurden. Statt einer festen Zahlengröße erfand er auch das Gleitkommaformat mit Vorzeichen, Mantisse und Exponent, das numerische Berechnungen stark vereinfachte. Der Befehlssatz umfasste nur neun Befehle. Ihm fehlte jedoch der bedingte Sprung, weshalb die Zuse-Rechner genauso wie die ersten in den USA entwickelten Rechner, der Relais-Computer Harvard Mark I (von Aiken, 1944) und der Röhren-Computer ENIAC (von Eckert/Mauchly, 1945) noch keine Universalrechner waren (Märtin 2001).

Die theoretischen Grundlagen zum Berechenbarkeitsbegriff waren bereits zwischen 1931 und 1936 von Kurt Gödel und Alan Turing gelegt worden. Im Jahr 1944 setzte der ungarische Mathematiker John von Neumann an der Universität von Pennsylvania zusammen mit Arthur Burks und Herman Goldstine auf den theoretischen Arbeiten Gödels und Turings auf und entwarf den ersten Universalrechner und sogenannten Stored Program Computer EDVAC. Das fertige Entwurfspapier wurde 1946 veröffentlicht. An der Universität Princeton wurde dieses Konzept jedoch erst 1952 mit dem Rechner IAS in Computerhardware umgesetzt.

In Kenntnis des EDVAC-Entwurfs wurden die ersten lauffähigen Universalrechner in England entwickelt. Schon 1948 wurde an der Universität Manchester von Williams und Kilburn der Manchester Mark I fertiggestellt, der noch über ein bitserielles Rechenwerk verfügte. Ein Jahr später realisierte Maurice Wilkes an der Universität Cambridge den ersten Universalrechner mit bitparallelem Rechenwerk, den EDSAC-Computer.

Anwendung und Beispiele

Danach ging es Schlag auf Schlag weiter und der Computer wurde zum kommerziellen Produkt. Eckert und Mauchly bauten für Remington Rand 1951 den ersten kommerziellen Universalrechner UNIVAC I. IBM lieferte 1952 seinen ersten kommerziellen Computer, die IBM 701, aus. Mit den Großrechnerfamilien IBM System /360 und /370 gelang dem Unternehmen ab 1964 der große Durchbruch bei der Vermarktung von Computern. Die umfangreichen, komplexen Befehlssätze der heute als CISC (Complex Instruction Set Computers) bezeichneten Systeme erleichterten die Programmierung, bremsten aber die Verarbeitungsgeschwindigkeit. Im technischen Bereich waren zur gleichen Zeit die Großrechnerfamilien des Unternehmens Control Data Corporation (CDC) mit einfachem, geschwindigkeitsoptimiertem Befehlssatz erfolgreich. Sie waren Vorläufer der Mitte der 1980er-Jahre auf dem Markt auftauchenden RISC-Systeme (Reduced Instruction Set Computers). Auf architektonisch ähnlicher, aber durch Vektorverarbeitung erweiterter Basis setzten ab Mitte der 1970er-Jahre die ersten Vektor-Supercomputer der Firmen Cray Research, NEC, Fujitsu und Hitachi auf.

Das Unternehmen Digital Equpiment Corporation (DEC) stellte ab Mitte der 1960er-Jahre preiswerte Minicomputer wie die PDP-8 und die PDP-11 her. Die 1978 angekündigte 32-Bit-Maschine VAX 11//780 mit großem Speicher und umfangreichem CISC-Befehlssatz wurde in den folgenden Jahren häufig als flexibler und kompakter Abteilungsrechner und im wissenschaftlichen Bereich eingesetzt.

Durch die Erfindung des Mikroprozessors durch Intel im Jahr 1971, die Einführung der PCs durch IBM und andere, die 32-Bit-CISC-Prozessoren von Intel und Motorola sowie das Erscheinen von RISC-Mikroprozessoren von Unternehmen wie MIPS-Computer, IBM, Sun Microsystems und ARM wurden klassische Großrechner und Minicomputer mit proprietären Befehlssätzen schrittweise aus dem Markt gedrängt. Heute dominieren Hersteller wie Intel (Core i und XEON), AMD (Ryzen und EPYC), IBM (Power) und ARM-Lizenznehmer wie Apple und Samsung mit ihren 64-Bit-Multicore-Prozessoren den Computermarkt. CISC- und RISC-Systeme haben sich bezüglich ihrer Architekturen angenähert und sorgen in allen Arten von Computern, vom Ein-Chip-Mikrocomputer über Smartphones, Laptops, Desktops, Workstations und Server bis hin zu Supercomputern mit mehreren Millionen Prozessor-Cores für die gewünschte Rechenleistung.

Kritik und Probleme​​

Der Siegeszug der Mikroprozessoren ging lange Zeit einher mit der durch das Moore’sche Gesetz vorgezeichneten Leistungssteigerung in der Mikroelektronik durch Miniaturisierung der Schaltelemente. Gordon Moore, einer der Gründer von Intel, postulierte schon 1965 die Verdopplung der Zahl der Transistorschaltelemente auf einer vorgegebenen Chipfläche etwa alle zwei Jahre. Dieser Trend hält bis heute an, wenn auch in etwas abgebremster Form. Gleichzeitig mit der Miniaturisierung der Transistoren erhöhte sich zwischen je zwei Technologiegenerationen und bis etwa ins Jahr 2004 die Schaltgeschwindigkeit der Transistoren und prinzipiell die Taktfrequenz des gesamten Prozessors auf das 1,4-Fache, ohne dass dadurch die für den gesamten Chip erforderliche elektrische Leistung anstieg, denn durch die kleineren Transistoren konnte die Versorgungsspannung der Chips auf das 0,7-Fache verringert werden. Man erhielt also mit jeder neuen Rechnergeneration die 2,8-fache Rechenleistung, ohne den Energieverbrauch zu erhöhen. Dieser Trend wird als Dennard-Scaling bezeichnet, nach Robert H. Dennard, dem Erfinder des DRAM-Speichers bei IBM. Ein Absenken der Versorgungsspannung unter die Grenze von einem Volt (1 V), die bereits 2004 erreicht worden war, ist jedoch mit der heute üblichen CMOS-Technologie so gut wie unmöglich (Märtin 2014).

Um die Rechenleistung weiter zu steigern, ohne den Energieverbrauch auf der Chipfläche zu erhöhen, ging man daher ab 2004 zu Multicore-Chips über. Man belässt seit 2004 die Grundtaktfrequenz bei etwa 3 GHz und realisiert auf dem Chip viele gleichartige (symmetrische Architektur) oder unterschiedliche (asymmetrische Architektur) Cores. Bei parallelen Softwarelasten steigert man dadurch den Durchsatz. Bei sequenziellen oder wenig parallelen Softwarelasten kann man alle Cores bis auf einen oder einige wenige zeitweise abschalten und die vorhandene elektrische Leistung zum kurzzeitigen Hochtreiben der Taktfrequenz für die verbleibenden Cores (dynamische Architektur) verwenden. Auch die Einbettung von energiesparenden Hardwarebeschleunigern für rechenintensive Algorithmen (z. B. für KI, Bildverarbeitung, Kryptografie) in einen Multicore-Chip (heterogene Architektur) ist heute üblich. All diese Möglichkeiten verhindern jedoch nicht, dass auch Multicores wegen des Post Dennard Scalings immer mehr Strom verbrauchen, wenn man alle auf dem Chip verbauten Ressourcen gleichzeitig betreiben will (Esmaeilzadeh 2013). Die Stromversorgung heutiger Multicore-Chips ist kachelartig organisiert. Daher ist es möglich, gleichzeitig und in Bruchteilen von Mikrosekunden Teile des Chips abzuschalten, wie einzelne Funktionseinheiten eines Cores bis hin zu kompletten Cores und Teilen von Cache-Arealen, die gerade nicht gebraucht werden. Man spricht von Dark Silicon (dunkles Silizium). Um eine bestimmte Schwelle elektrischer Leistung nicht zu überschreiten, kann mit jeder neuen Generation der CMOS-Technologie im Vergleich zur Vorgängergeneration nur noch die Hälfte der Cores gleichzeitig mit voller Rechenleistung aktiv sein (Taylor 2013).

Forschung

Neben der Erforschung evolutionärer und alternativer enger gepackter und 3D-artig angeordneter Transistortechnologien und Integrationstechniken, um gleichzeitig das Moore’sche Gesetz weiter am Leben zu halten und den Energiebedarf zukünftiger Computer zu verringern, konzentriert sich die Forschung im Bereich Rechnerarchitektur vor allem auf die Entwicklung neuartiger Hardware, um das maschinelle Lernen und das Trainieren und die Ausführung künstlicher neuronaler Netze durch hohe Rechenparallelität und/oder datennahe Verarbeitungsressourcen noch effektiver und effizienter zu gestalten. Dabei stehen kommerzielle und forschungsnahe Ansätze, die auf klassischen GPU (Graphics Processing Units) basieren (Hennessy, 2019), wie die Tensor-Core-GPU-Systeme von Nvidia (Nvidia), dem sogenannten Brain-inspired-Computing gegenüber (Boahen, 2017), das auf die realistische Nachbildung neuronaler Netze in Computerchips setzt. Beispiele hierfür sind die KI-Chips TrueNorth und North Pole von IBM (IBM) und Loihi und Loihi 2 von Intel (Intel).

Große Forschungsanstrengungen werden seit Jahren auch auf dem Gebiet der Quantencomputer unternommen. Dort erhofft man sich in Zukunft Lösungsverfahren für einige wirtschaftsrelevante und herausfordernde Problemstellungen, die auf Quantenrechnern deutlich schneller als auf heutigen klassischen Supercomputern ausgeführt werden können.

Weiterführende Links und Literatur​​​​

Forschungs- und Entwicklungstrends zu zukünftigen Trends der Rechnerarchitektur:

Ein weit verbreitetes Standardwerk zur Rechnerarchitektur:

Hennessy, J.L./Patterson, D.A. (2017). Computer Architecture: A Quantitative Approach. 6th Edition. Morgan Kaufmann

Quellen

Boahen, K. (2017): A Neuromorph‘s Perspective. In: Computing in Science and Engineering 19(2), 17-28.

Doweck, J. et al. (2017). Inside 6th-Generation Intel Core: New Microarchitecture Code-Named Skylake. In: IEEE Micro, 52–62.

Esmaeilzadeh, H. et al. (2013).Power Challenges May End the Multicore Era. In: Communications of the ACM 56(2), 93–102.

Hennessy, J. L./Patterson, D. A. (2019). A New Golden Age for Computer Architecture. In: Communications of the ACM 62(2), 48–60.

IBM. IBM North Pole. [26.02.2024].

Intel. Intel Loihi 2. [26.02.2024].

Märtin, C. (Hrsg.) (2001). Rechnerarchitekturen. Hanser.

Märtin, C. (2014). Multicore Processors: Challenges, Opportunities, Emerging Trends. Proceedings Embedded World Conference, Nürnberg, 2014.

Nvidia. Nvidia H100 Tensor-Core-GPU. [26.02.2024].

Taylor, M.B. (2013). A Landscape of the New Dark Silicon Design Regime. In: IEEE Micro, 8–19.

Wilkes, M. V. (1995). Computing Perspectives. Morgan Kaufmann.