Moores Gesetz hat die Grenze erreicht

Hinweis Datum der Veröffentlichung des Artikels: 26.12.2015. In der Vergangenheit wurden einige Thesen des Autors durch reale Fakten bestätigt, andere haben sich als fehlerhaft herausgestellt - ca. trans.

In den letzten 40 Jahren haben wir gesehen, wie die Geschwindigkeit von Computern exponentiell gestiegen ist. Heutige CPUs haben eine tausendmal schnellere Taktrate als die ersten PCs Anfang der 1980er Jahre. Die RAM-Größe des Computers hat sich um das Zehntausendfache erhöht, und die Kapazität der Festplatte hat sich um das Hunderttausendfache erhöht. Wir sind so an dieses kontinuierliche Wachstum gewöhnt, dass wir es fast als Naturgesetz betrachten und es Moores Gesetz nennen. Diesem Wachstum sind jedoch Grenzen gesetzt, auf die Gordon Moore selbst hingewiesen hat . Wir nähern uns jetzt der physikalischen Grenze, wo die Geschwindigkeit der Berechnungen durch die Größe des Atoms und die Lichtgeschwindigkeit begrenzt ist.

Die Canon Tick Clock von Intel begann hier und da Balken zu überspringen. Jeder "Tick" entspricht einer Verringerung der Größe der Transistoren, und jeder "Tick" entspricht einer Verbesserung der Mikroarchitektur. Die aktuelle Generation von Prozessoren, Skylake genannt, ähnelt einem 14-Nanometer-Prozess. Logischerweise sollte der nächste ein "Tick" mit einer 10-Nanometer-Prozesstechnologie sein, aber Intel gibt jetzt nach jedem "solchen" "Aktualisierungszyklen" aus. Der nächste Prozessor, der für 2016 angekündigt wird, wird ein Update für Skylake sein, das immer noch auf einer 14-Nanometer-Prozesstechnologie basiert . Das Verlangsamen einer Tic-Tac-Uhr ist eine physikalische Notwendigkeit, da wir uns einer Grenze nähern, bei der die Größe des Transistors nur wenige Atome beträgt (die Größe eines Siliziumatoms beträgt 0,2 Nanometer).

Eine weitere physikalische Einschränkung ist die Datenrate, die die Lichtgeschwindigkeit nicht überschreiten darf. Es dauert mehrere Taktzyklen, um Daten von einem Ende der CPU zum anderen Ende zu erhalten. Wenn Mikrochips mit immer mehr Transistoren größer werden, wird die Geschwindigkeit durch die Datenübertragung auf dem Mikrochip selbst begrenzt.

Technologische Einschränkungen sind nicht das einzige, was die Entwicklung von Prozessoren verlangsamt. Ein weiterer Faktor ist die Abschwächung des Marktwettbewerbs. Der größte Konkurrent von Intel, AMD, konzentriert sich jetzt mehr auf die sogenannten Accelerated Processing Units (APUs), kleinere Prozessoren mit integrierter Grafik für Mini-PCs, Tablets und andere ultra-mobile Geräte. Intel hat nun den enormen Marktanteil von Prozessoren für High-End-PCs und -Server übernommen. Der harte Wettbewerb zwischen Intel und AMD, der die Entwicklung von x86-Prozessoren über mehrere Jahrzehnte hinweg vorangetrieben hat, ist praktisch verschwunden.

Das Wachstum der Computerleistung in den letzten Jahren ist nicht so sehr auf eine Erhöhung der Rechengeschwindigkeit zurückzuführen, sondern auf eine Erhöhung der Parallelität. Moderne Mikroprozessoren verwenden drei Arten von Parallelität:

  1. Gleichzeitige Ausführung mehrerer Teams mit einer Änderung ihrer Reihenfolge.
  2. SIMD-Operationen (Single-Operation-Multiple-Data) in Vektorregistern.
  3. Mehrere CPU-Kerne auf einem Chip.

Diese Arten der Parallelität haben keine theoretischen Grenzen, aber es gibt echte praktische. Die Ausführung von Befehlen mit einer Änderung ihrer Reihenfolge ist durch die Anzahl der unabhängigen Teams im Programmcode begrenzt. Sie können nicht zwei Befehle gleichzeitig ausführen, wenn der zweite Befehl auf das Ergebnis des ersten wartet. Aktuelle CPUs können normalerweise vier Befehle gleichzeitig ausführen. Das Erhöhen dieser Anzahl bringt keinen großen Vorteil, da es für den Prozessor schwierig oder unmöglich sein wird, unabhängigere Anweisungen im Code zu finden, die gleichzeitig ausgeführt werden können.

Aktuelle AVX2-Prozessoren verfügen über 16 256-Bit-Vektorregister. Der kommende AVX-512-Befehlssatz wird uns 32 Register mit 512 Bit geben, und wir können in Zukunft Erweiterungen auf 1024- oder 2048-Bit-Vektoren erwarten. Diese Erhöhungen der Vektorregister werden jedoch immer weniger Auswirkungen haben. Nur wenige Rechenaufgaben verfügen über genügend integrierte Parallelität, um von diesen größeren Vektoren zu profitieren. 512-Bit-Vektorregister sind durch einen Satz von Maskenregistern verbunden, die eine Größenbeschränkung von 64 Bit haben. 2048-Bit-Vektorregister können 64 Zahlen mit einfacher Genauigkeit von jeweils 32 Bit speichern. Es ist davon auszugehen, dass Intel nicht plant, Vektorregister mit mehr als 2048 Bit zu erstellen, da diese die Einschränkungen von 64-Bit-Maskenregistern überschreiten.

Zahlreiche CPU-Kerne bieten nur dann einen Vorteil, wenn viele geschwindigkeitskritische Programme gleichzeitig ausgeführt werden oder wenn die Aufgabe in zahlreiche unabhängige Threads unterteilt ist. Die Anzahl der Threads, in die Sie die Aufgabe gewinnbringend aufteilen können, ist immer begrenzt.

Die Hersteller werden zweifellos versuchen, immer leistungsfähigere Computer herzustellen, aber wie hoch ist die Wahrscheinlichkeit, dass diese Computerleistung in der Praxis genutzt werden kann?

Es gibt eine vierte Möglichkeit der Parallelität, die noch nicht verwendet wird. Programme haben normalerweise viele if-else-Zweige. Wenn die CPU also lernt, vorherzusagen, welcher Zweig funktionieren wird, können wir ihn ausführen. Sie können mehrere Codezweige gleichzeitig ausführen, um Zeitverschwendung zu vermeiden, wenn die Vorhersage falsch ist. Natürlich müssen Sie dafür mit erhöhtem Energieverbrauch bezahlen.

Eine weitere mögliche Verbesserung besteht darin, eine programmierbare Logikvorrichtung auf dem Prozessorchip zu platzieren. Eine ähnliche Kombination ist heute für die sogenannten FPGAs üblich, die in fortschrittlichen Geräten verwendet werden. Solche programmierbaren Logikvorrichtungen in Personalcomputern können verwendet werden, um Funktionen zu implementieren, die für bestimmte Anwendungen spezifisch sind, für Aufgaben wie Bildverarbeitung, Verschlüsselung, Datenkomprimierung und neuronale Netze.

Die Halbleiterindustrie experimentiert mit Materialien, die anstelle von Silizium verwendet werden können. Einige III-V-Halbleitermaterialien können bei niedrigeren Spannungen und höheren Frequenzen als Silizium arbeiten , aber sie machen Atome nicht kleiner oder langsamer. Es gelten weiterhin körperliche Einschränkungen.

Eines Tages können wir dreidimensionale mehrschichtige Chips sehen. Dies ermöglicht es, die Schaltung zu straffen, den Abstand und folglich die Verzögerung zu verringern. Aber wie kann man einen solchen Chip effektiv kühlen, wenn Energie darin verteilt wird? Neue Kühltechnologien werden benötigt. Der Mikrokreis kann nicht alle Stromkreise gleichzeitig ohne Überhitzung mit Strom versorgen. Sie muss die meisten ihrer Teile die meiste Zeit getrennt lassen und jedes Teil nur während des Gebrauchs mit Strom versorgen.

In den letzten Jahren hat die CPU-Geschwindigkeit schneller zugenommen als die RAM-Geschwindigkeit, was häufig zu einem ernsthaften Engpass wird. Ohne Zweifel werden wir in Zukunft viele Versuche sehen, die RAM-Geschwindigkeit zu erhöhen. Eine wahrscheinliche Entwicklung wäre, den RAM auf einen einzelnen Chip mit einer CPU (oder mindestens einem Fall) zu legen, um die Entfernung für die Datenübertragung zu verringern. Dies wird eine nützliche Verwendung von dreidimensionalen Chips sein. Der RAM wird wahrscheinlich statisch sein, dh jede Speicherzelle wird nur dann mit Strom versorgt, wenn auf sie zugegriffen wird.

Intel beliefert auch den Markt für Supercomputer für wissenschaftliche Zwecke. Der Knight's Corner-Prozessor verfügt über bis zu 61 Kerne auf einem einzelnen Chip. Es hat ein schwaches Leistungs- / Preisverhältnis, aber sein erwarteter Nachfolger von Knight's Landing sollte in dieser Hinsicht besser sein. Es bietet Platz für bis zu 72 Kerne auf einem Chip und kann Befehle mit einer Änderung ihrer Reihenfolge ausführen. Dies ist ein kleiner Nischenmarkt, aber Intel kann seine Glaubwürdigkeit erhöhen.

Jetzt die besten Möglichkeiten, um die Leistung zu verbessern, wie ich denke, von der Softwareseite. Softwareentwickler fanden schnell Anwendung für das exponentielle Produktivitätswachstum moderner Computer, das dank des Gesetzes von Moore stattfand. Die Softwareindustrie begann, es zu verwenden, und begann auch, immer fortschrittlichere Entwicklungstools und Software-Frameworks zu verwenden. Diese hochrangigen Entwicklungstools und Frameworks ermöglichten es, die Softwareentwicklung zu beschleunigen, jedoch auf Kosten des Verbrauchs von mehr Rechenressourcen als Endprodukt. Viele der heutigen Programme sind ziemlich verschwenderisch in ihrem übermäßigen Verbrauch an Hardware-Rechenleistung.

Im Laufe der Jahre haben wir eine Symbiose zwischen der Hardware- und Softwareindustrie beobachtet, in der letztere immer fortschrittlichere und ressourcenintensivere Produkte herstellten, die die Benutzer dazu ermutigten, immer leistungsfähigere Geräte zu kaufen. Da sich die Wachstumsrate der Hardwaretechnologie verlangsamte und Benutzer auf kleine tragbare Geräte umstellten, bei denen die Batteriekapazität wichtiger ist als die Leistung, muss die Softwareindustrie nun ihren Kurs ändern. Sie muss ressourcenintensive Entwicklungstools und mehrstufige Software einsparen und Programme entwickeln, die nicht so voll von Funktionen sind. Die Entwicklungszeiten werden sich verlängern, aber Programme verbrauchen weniger Hardwareressourcen und arbeiten schneller auf kleinen tragbaren Geräten mit begrenzter Akkulaufzeit. Wenn die kommerzielle Softwareindustrie ihren Kurs jetzt nicht ändert, kann sie Marktanteile an asketischere Open-Source-Produkte abgeben.

Source: https://habr.com/ru/post/de405723/


All Articles