Vorgeschichte des allgemeinen CPUs
Das Geschichte des Allgemeinen CPUs ist eine Fortsetzung des früheren Geschichte der Berechnung der Hardware.
1950er Jahre: frühe Entwürfe
In den frühen 1950er Jahren war jedes Computerdesign einzigartig. Es gab keine nach oben kompatiblen Maschinen oder Computerarchitekturen mit mehreren, unterschiedlichen Implementierungen. Programme, die für einen Maschine geschrieben wurden, würden auf keiner anderen Art ausgeführt, auch andere Arten aus demselben Unternehmen. Dies war damals kein großer Nachteil, da kein großer Teil von Software entwickelt worden war, um auf Computern zu laufen. Daher wurde das Programmieren von Grund auf neu sein.
Die Zeit der Zeit war sehr wichtig, da Designer die Kosten für die Elektronik sehr eingeschränkt waren und erst anfingen zu untersuchen, wie ein Computer am besten organisiert werden konnte. Einige der in diesem Zeitraum eingeführten Grundfunktionen enthalten Indexregister (auf der Ferranti Mark 1), a Absender Sparenanweisung (Univac i), unmittelbare Operanden (IBM 704) und Erkennung ungültiger Operationen (IBM 650).
Bis Ende der 1950er Jahre hatten kommerzielle Bauherren fabrikkonstruierte, lkw-zustellbare Computer entwickelt. Der am weitesten verbreitete Computer war der IBM 650, was verwendete Drum -Speicher Auf welche Programme wurden mit einem der Papier geladen Stempelband oder geschlagene Karten. Einige sehr High-End-Maschinen enthalten ebenfalls Kerngedächtnis was höhere Geschwindigkeiten lieferte. Festplatten begannen auch populär zu werden.
Ein Computer ist automatisch Abakus. Die Art des Zahlensystems wirkt sich auf die Funktionsweise aus. In den frühen 1950er Jahren wurden die meisten Computer für bestimmte numerische Verarbeitungsaufgaben erstellt, und viele Maschinen verwendeten Dezimalzahlen als Grundnummernsystem. Das heißt, die mathematischen Funktionen der Maschinen funktionierten in Base-10 anstelle von Base-2, wie es heute üblich ist. Diese waren nicht nur Binärcodierte Dezimalzahl (BCD). Die meisten Maschinen hatten jeweils zehn Vakuumröhrchen pro Ziffer Prozessorregister. Einige früh Sowjet Computerdesigner implementierten Systeme basierend auf ternäre Logik; Das heißt, ein bisschen könnte drei Zustände haben: +1, 0 oder -1, entsprechend positiver, null oder negativer Spannung.
Ein frühes Projekt für die US-Luftwaffe, Binac versuchte, einen leichten, einfachen Computer mit binärer Arithmetik zu erstellen. Es beeindruckte die Branche zutiefst.
Noch 1970 konnten die wichtigsten Computersprachen ihr numerisches Verhalten nicht standardisieren, da Dezimalcomputer Gruppen von Benutzern hatten, die zu groß waren, um entfremdet zu werden.
Selbst wenn Designer ein binäres System verwendeten, hatten sie immer noch viele seltsame Ideen. Einige verwendeten Signmagnitude Arithmetic (-1 = 10001) oder Einen Ergänzung (-1 = 11110) und nicht modern Zwei ergänzt Arithmetik (-1 = 11111). Die meisten Computer verwendeten sechs-Bit-Zeichensätze, weil sie Hollerith angemessen codierten geschlagene Karten. Es war eine wichtige Offenbarung für Designer dieser Zeit, um zu erkennen, dass das Datenwort ein Vielfaches der Charaktergröße sein sollte. Sie begannen, Computer mit 12-, 24- und 36-Bit-Datenwörtern zu entwerfen (z. B. siehe die TX-2).
In dieser Ära, Groschs Gesetz Dominierte Computerdesign: Die Computerkosten stiegen mit dem Quadrat seiner Geschwindigkeit.
1960er Jahre: Computerrevolution und CISC
Ein großes Problem mit frühen Computern war, dass ein Programm für man an keinen anderen arbeiten würde. Computerfirmen stellten fest, dass ihre Kunden wenig Grund hatten, einer bestimmten Marke treu zu bleiben, da der nächste Computer, den sie gekauft haben, ohnehin nicht kompatibel wäre. Zu diesem Zeitpunkt waren die einzigen Bedenken in der Regel Preis und Leistung.
1962 versuchte IBM einen neuen Ansatz zum Entwerfen von Computern. Der Plan war es, eine Computerfamilie zu erstellen, die alle dieselbe Software ausführen konnten, jedoch mit unterschiedlichen Leistungen und zu unterschiedlichen Preisen. Mit zunehmender Bedürfnisse der Benutzer könnten sie zu größeren Computern wechseln und immer noch alle Investitionen in Programme, Daten und Speichermedien behalten.
Dazu haben sie einen entworfen Referenzcomputer genannt System/360 (S/360). Dies war ein virtueller Computer, ein Referenzanweisungssatz und Fähigkeiten, die alle Maschinen in der Familie unterstützen würden. Um verschiedene Maschinenklassen bereitzustellen, würde jeder Computer in der Familie mehr oder weniger Hardwareemulation und mehr oder weniger verwenden Mikroprogramm Emulation, um eine Maschine zu erstellen, die den vollständigen S/360 ausführen kann Befehlssatz.
Beispielsweise könnte eine Low-End-Maschine einen sehr einfachen Prozessor für niedrige Kosten enthalten. Dies würde jedoch die Verwendung eines größeren Mikrocode -Emulators erfordern, um den Rest des Befehlssatzes bereitzustellen, der ihn verlangsamen würde. Eine High-End-Maschine würde einen viel komplexeren Prozessor verwenden, der mehr des S/360-Designs direkt verarbeiten und so einen viel einfacheren und schnelleren Emulator ausführt.
IBM wählte bewusst, um die Referenz zu machen Befehlssatz ziemlich komplex und sehr fähig. Obwohl der Computer komplex war, ist es Steuergeschäft Halten Sie das Mikroprogramm würde relativ klein bleiben und mit sehr schnellem Gedächtnis hergestellt werden. Ein weiterer wichtiger Effekt war, dass eine Anweisung eine ziemlich komplexe Abfolge von Operationen beschreiben konnte. Daher müssten die Computer im Allgemeinen weniger Anweisungen aus dem Hauptspeicher abrufen, die für eine bestimmte Mischung aus Geschwindigkeit und Preis langsamer, kleiner und kostengünstiger werden könnten.
Da die S/360 ein Nachfolger für beide wissenschaftlichen Maschinen wie die sein sollte 7090 und Datenverarbeitungsmaschinen wie die 1401Es brauchte ein Design, das alle Formen der Verarbeitung vernünftigerweise unterstützen könnte. Daher wurde der Anweisungssatz so konzipiert, dass er einfache Binärzahlen und Text, wissenschaftlicher Gleitkomma (ähnlich den in einem Taschenrechner verwendeten Zahlen) und der Binärcodierte Dezimalzahl Arithmetik, die von Rechnungslegungssystemen benötigt wird.
Fast alle folgenden Computer umfassten diese Innovationen in irgendeiner Form. Diese grundlegende Reihe von Funktionen heißt jetzt Komplexes Anweisungssatz Computing (CISC, ausgesprochen "Sisk"), eine Begriff, die erst viele Jahre später, wann Reduziertes Anweisungssatz Computing (RISC) begann Marktanteile zu erhalten.
In vielen CICs könnte ein Anweisungen entweder auf Register oder Speicher zugreifen, normalerweise auf verschiedene Weise. Dies erleichterte die Programme, da ein Programmierer nur dreißig bis hundert Anweisungen und einen Satz von drei bis zehn erinnern konnte Adressierungsmodi eher als Tausende verschiedener Anweisungen. Dies wurde als eine genannt orthogonaler Anweisungssatz. Das PDP-11 und Motorola 68000 Architektur sind Beispiele für nahezu orthogonale Anweisungssätze.
Es gab auch die BÜNDEL (Burroughs, Univac, Ncr, Steuerungsdatengesellschaft, und Honeywell) Das trat zu dieser Zeit gegen IBM an; IBM dominierte jedoch die ERA mit S/360.
Das Burroughs Corporation (das später mit Sperry/Univac zusammenflog, um sich zu formen Unisys) bot eine Alternative zu S/360 mit ihren an Burroughs große Systeme B5000 -Serie. 1961 hatte der B5000 einen virtuellen Gedächtnis, symmetrische Multiprozessing, ein Multiprogrammier -Betriebssystem (Master Control Program (MCP)), geschrieben in Algol 60und die ersten Compiler der Branche erst 1964.
1970er Jahre: Mikroprozessorrevolution
Der erste Werbespot Mikroprozessor, das Binärcodierte Dezimalzahl (BCD) basiert Intel 4004, wurde von freigelassen von Intel 1971.[1][2] Im März 1972 führte Intel einen Mikroprozessor mit einem vor 8 Bit Architektur, die 8008, ein integriertes PMOS -Logik Neuauflagen der Transistor -Transistor -Logik (TTL) basiert DataPoint 2200 ZENTRALPROZESSOR.
4004 Designer Federico Faggin und Masatoshi Shima Entwerfen Sie den Nachfolger des 8008, den Nachfolger des 8008 Intel 8080, ein etwas mehr Minicomputer-Bemähnlich der Mikroprozessor, hauptsächlich basierend auf dem Kundenfeedback zu den begrenzten 8008. Ähnlich wie bei 8008, wurde es für Anwendungen wie Terminals, Drucker, Bargeldregister und Industrie -Roboter verwendet. Die fähigere 8080 wurde jedoch auch früh zur ursprünglichen Ziel -CPU De facto Standard persönlicher Computer Betriebssystem genannt CP/m und wurde für so anspruchsvolle Kontrollaufgaben verwendet wie Kreuzfahrtraketenund viele andere Verwendungszwecke. Der 1974 veröffentlichte 8080 wurde zu einer der ersten wirklich weit verbreiteten Mikroprozessoren.
Mitte der 1970er Jahre war die Verwendung integrierter Schaltkreise in Computern häufig. Das Jahrzehnt war durch Marktumwälzungen gekennzeichnet, die durch den schrumpfenden Preis von Transistoren verursacht wurden.
Es wurde möglich, eine gesamte CPU auf eine gedruckte Leiterplatte zu setzen. Das Ergebnis war, dass Minicomputer, normalerweise mit 16-Bit-Wörtern und 4K bis 64.000 Erinnerung, gemeinsam wurden.
Es wurde angenommen, dass CISCs die leistungsstärksten Computertypen sind, da ihr Mikrocode klein war und im sehr Hochgeschwindigkeitsspeicher gespeichert werden konnte. Die CISC -Architektur befasste sich auch mit der Semantische Lücke wie es dann wahrgenommen wurde. Dies war ein definierter Abstand zwischen der Maschinensprache und den auf höheren Ebenen, die mit der Programmierung einer Maschine verwendet wurden. Es war der Ansicht, dass Compiler einen besseren Job mit einem reichhaltigeren Unterrichtssatz machen konnten.
Benutzerdefinierte CICs wurden üblicherweise mit Verwendung konstruiert Bit Slice Computerlogik wie die AMD 2900 -Chips mit benutzerdefiniertem Mikrocode. Ein bisschen Scheibenkomponente ist ein Stück von einem Arithmetik-Logikeinheit (ALU), Registrieren Sie Datei oder Mikrosequencer. Die meisten integrierten Bit-Slice-Schaltungen waren 4-Bit breit.
In den frühen 1970er Jahren die 16-Bit PDP-11 Minicomputer wurde entwickelt, wohl der fortschrittlichste kleine Computer seiner Zeit. In den späten 1970er Jahren breiteres Wort Superminicomputer wurden eingeführt, wie die 32-Bit Vax.
IBM machte weiterhin große, schnelle Computer. Die Definition von groß und schnell bedeutete jedoch mehr als eine Megabyte Widder, Taktgeschwindigkeiten in der Nähe eines Megahertz,[3][4] und zehn Megabyte von Festplatten.
Das IBM -System 370 war eine Version der 360 -optimierten, um virtuelle Computerumgebungen auszuführen. Das Virtueller Computer wurde entwickelt, um die Wahrscheinlichkeit eines nicht wiederbeschreibbaren Softwarefehlers zu verringern.
Das Burroughs große Systeme (B5000, B6000, B7000) erreichte ihren größten Marktanteil. Es war ein Stapelcomputer, dessen Betriebssystem in einem Algol -Dialekt programmiert wurde.
All diese verschiedenen Entwicklungen konkurrierten um Marktanteile.
Der erste Single-Chip 16-Bit Der Mikroprozessor wurde 1975 eingeführt. Panafacom, ein Konglomerat, das von japanischen Unternehmen gebildet wurde Fujitsu, Fuji Electric, und Matsushitastellte den MN1610 ein, einen kommerziellen 16-Bit-Mikroprozessor.[5][6][7] Laut Fujitsu war es "der erste 16-Bit der Welt Mikrocomputer auf einem einzigen Chip ".[6]
Der Intel 8080 war die Grundlage für den 16-Bit-Intel 8086, das ist ein direkter Vorfahr des heutigen allgegenwärtigen x86 Familie (einschließlich Pentium und Kern i7). Jede Anweisung des 8080 hat ein direktes Äquivalent im großen X86 -Befehlssatz, obwohl die Opcode -Werte in letzterem unterschiedlich sind.
Anfang der 1980er bis 1990er Jahre: Lektionen von RISC
In den frühen 1980er Jahren haben Forscher bei UC Berkeley und IBM Beide stellten fest, dass die meisten Computersprachen Compiler und Dolmetscher nur eine kleine Teilmenge der Anweisungen von verwendeten Komplexes Anweisungssatz Computing (CISC). Ein Großteil der Macht der CPU wurde im realen Gebrauch ignoriert. Sie erkannten, dass der Computer den Computer einfacher und weniger orthogonal machte, sie ihn gleichzeitig schneller und kostengünstiger machen könnten.
Gleichzeitig wurde die CPU -Berechnung in Bezug auf die Zeit für den erforderlichen Speicherzugriff schneller. Designer experimentierten auch mit großen Sätzen interner Register. Das Ziel war zu Zwischenspeicher Zwischen den Registern unter der Kontrolle des Compilers. Dies reduzierte auch die Anzahl der Adressierungsmodi und Orthogonalität.
Die auf dieser Theorie basierenden Computerentwürfe wurden genannt Reduziertes Anweisungssatz Computing (RISC). Die RISCs hatten normalerweise eine größere Anzahl von Registern, auf die einfachere Anweisungen zugegriffen wurden, wobei einige Anweisungen speziell zum Laden und Speichern von Daten in den Speicher geladen wurden. Das Ergebnis war eine sehr einfache Kern -CPU, die mit sehr hoher Geschwindigkeit ausgeführt wurde und die Art von Operationen unterstützte, die die Compiler ohnehin benutzten.
Eine gemeinsame Variante des RISC -Designs verwendet die Harvard Architektur, gegen Von Neumann Architektur oder gespeicherte Programmarchitektur für die meisten anderen Designs. In einer Harvard -Architekturmaschine belegen das Programm und die Daten separate Speichergeräte und können gleichzeitig zugegriffen werden. In von Neumann-Maschinen werden die Daten und Programme in einem Speichergerät gemischt, wodurch ein sequenzieller Zugriff erforderlich ist, der das sogenannte Erzeugnis erzeugt Von Neumann Engpass.
Ein Nachteil des RISC -Designs bestand darin, dass die Programme, die auf ihnen betrieben werden, tendenziell größer sind. Das ist weil Compiler Muss längere Sequenzen der einfacheren Anweisungen generieren, um dieselben Ergebnisse auszuführen. Da diese Anweisungen ohnehin aus dem Speicher geladen werden müssen, setzt der größere Code einige der schnellen Speicherhandhabung des RISC -Designs aus.
In den frühen neunziger Jahren Ingenieure bei Japan Hitachi fand Wege, um die reduzierten Befehlssätze zu komprimieren, damit sie in noch kleinere Speichersysteme als in CISCs passen. Solche Komprimierungsschemata wurden für den Anweisungssatz ihrer verwendet Superh Serie von Mikroprozessoren, die 1992 eingeführt wurden.[8] Der Superh -Anweisungssatz wurde später für angepasst Armarchitektur's Daumen Befehlssatz.[9] Bei Anwendungen, die keine ältere binäre Software betreiben müssen, wachsen komprimierte RISCs, um den Umsatz zu dominieren.
Ein anderer Ansatz für RISCs war der Minimaler Befehlssatz Computer (Misc),, Niladic, oder Null-Operand Befehlssatz. Dieser Ansatz erkannte, dass der größte Raum in einer Anweisung verwendet wurde, um die Operanden der Anweisung zu identifizieren. Diese Maschinen platzierten die Operanden auf einen Push-Down (Last-In, First Out) Stapel. Der Anweisungssatz wurde mit wenigen Anweisungen zum Abholen und Speichern von Speicher ergänzt. Die meisten verwendeten einfachen Caching, um extrem schnelle RISC -Maschinen mit sehr kompaktem Code bereitzustellen. Ein weiterer Vorteil war, dass die Interrupt -Latenzen sehr klein waren, kleiner als die meisten CISC -Maschinen (ein seltenes Merkmal bei RISC -Maschinen). Das Burroughs große Systeme Die Architektur verwendete diesen Ansatz. Der B5000 wurde 1961 entworfen, lange vor dem Begriff RISC wurde erfunden. Die Architektur stellt sechs 8-Bit-Anweisungen in ein 48-Bit-Wort und war ein Vorläufer für Sehr langes Unterrichtswort (VLIW) Design (siehe unten: 1990 bis heute).
Die Architektur von Burroughs war eine der Inspirationen für Charles H. MooreProgrammiersprache Weiter, was wiederum seine späteren Miscip -Designs inspirierte. Zum Beispiel hatten seine F20-Kerne 31 5-Bit-Anweisungen, die vier zu einem 20-Bit-Wort passen.
RISC-Chips dominieren nun den Markt für 32-Bit-eingebettete Systeme. Kleinere RISC-Chips wachsen sogar auf dem kostengünstigen Markt für 8-Bit-eingebettete Systeme. Der Hauptmarkt für RISC -CPUs waren Systeme, die eine geringe Leistung oder geringe Größe benötigen.
Sogar einige CISC -Prozessoren (basierend auf Architekturen, die vor RISC erstellt wurden) wie neuer x86 Prozessoren, übersetzen Anweisungen intern in einen RISC-ähnlichen Befehlssatz.
Diese Zahlen mögen viele überraschen, weil die Markt wird als Desktop -Computer wahrgenommen. X86 -Designs dominieren Desktop- und Notebook -Computerverkäufe, aber solche Computer sind nur ein winziger Teil der jetzt verkauften Computer. Die meisten Menschen in industrialisierten Ländern besitzen mehr Computer in eingebetteten Systemen in ihrem Auto und Haus als auf ihren Schreibtischen.
Mitte bis Ende der 1980er Jahre: Parallelität der Unterrichtsniveau ausnutzen
In den 1980er Jahren begannen Designer eine Technik, die als genannt wird Unterrichtspipelining, in dem der Prozessor in verschiedenen Anweisungen in verschiedenen Abschlussphasen arbeitet. Beispielsweise kann der Prozessor die Operanden für den nächsten Anweisungen abrufen, während das Ergebnis des aktuellen aktuellen. Moderne CPUs können über ein Dutzend solcher Phasen verwenden. (Pipelining wurde ursprünglich Ende der 1950er Jahre von entwickelt von Internationale Geschäftsmaschinen (IBM) auf ihren 7030 (Stretch) Mainframe -Computer.) Minimale Befehlsbetriebscomputer (Misc) kann Anweisungen in einem Zyklus ausführen, ohne dass Pipelining erforderlich ist.
Eine ähnliche Idee, die nur wenige Jahre später eingeführt wurde, bestand darin, mehrere Anweisungen parallel auf separat auszuführen Arithmetische Logikeinheiten (Alus). Anstatt nur auf einer Anweisung zu arbeiten, sucht die CPU nach mehreren ähnlichen Anweisungen, die nicht voneinander abhängen, und führt sie parallel aus. Dieser Ansatz heißt Superscalar Prozessordesign.
Solche Methoden sind durch den Grad von begrenzt Unterrichtsniveau Parallelität (ILP), die Anzahl der nicht abhängigen Anweisungen im Programmcode. Einige Programme können aufgrund ihres inhärenten hohen ILP, insbesondere der Grafik, sehr gut auf überlebenden Prozessoren ausgeführt werden. Allgemeinere Probleme haben jedoch weitaus weniger ILP, wodurch die möglichen Beschleunigungen dieser Methoden gesenkt werden.
Die Verzweigung ist ein wichtiger Schuldiger. Ein Programm kann beispielsweise zwei Zahlen hinzufügen und einem anderen Codesegment verzweigen, wenn die Zahl größer als eine dritte Zahl ist. In diesem Fall muss auch wenn der Zweigvorgang zur Verarbeitung an die zweite ALU gesendet wird, dennoch auf die Ergebnisse aus der Addition warten. Es läuft also nicht schneller als wenn es nur einen Alu gab. Die häufigste Lösung für diese Art von Problem ist die Verwendung einer Art von Art von Zweigvorhersage.
Um die Effizienz mehrerer funktionaler Einheiten zu fördern, die in verfügbar sind in Superscalar Entwürfe, Operand -Registerabhängigkeiten waren ein weiterer begrenzender Faktor. Um diese Abhängigkeiten zu minimieren, Ausführende Ausführung von Anweisungen wurde eingeführt. In einem solchen Schema müssen die Anweisungsergebnisse, die abgeschlossen sind, von dem Prozessor in der Programmreihenfolge neu bestellt werden, damit das Programm nach einer Ausnahme neu gestartet werden kann. Die Ausführung außerhalb der Ordnung war in den neunziger Jahren der Hauptabstand der Computerindustrie.
Ein ähnliches Konzept ist Spekulative Ausführung, wobei Anweisungen aus einer Richtung eines Zweigs (der vorhergesagten Richtung) vor der Bekanntschaft der Zweigrichtung ausgeführt werden. Wenn die Zweigrichtung bekannt ist, werden die vorhergesagte Richtung und die tatsächliche Richtung verglichen. Wenn die vorhergesagte Richtung korrekt war, werden die spekulativ ausgeführten Anweisungen und ihre Ergebnisse aufbewahrt; Wenn es falsch war, werden diese Anweisungen und ihre Ergebnisse gelöscht. Die spekulative Ausführung in Verbindung mit einem genauen Zweigprädiktor ergibt einen großen Leistungsgewinn.
Diese Fortschritte, die ursprünglich aus der Forschung für Entwürfe im RISC-Stil entwickelt wurden, ermöglichen es modernen CISC-Prozessoren, zwölf oder mehr Anweisungen pro Taktzyklus auszuführen, wenn herkömmliche CISC-Designs zwölf oder mehr Zyklen dauern können, um eine Anweisung auszuführen.
Die resultierende Anweisungslog für diese Prozessoren ist groß, komplex und schwer zu überprüfen. Darüber hinaus erfordert eine höhere Komplexität mehr Transistoren und erhöhen Stromverbrauch und Wärme. In diesen ist RISC überlegen, weil die Anweisungen einfacher sind, weniger gegenseitige Abhängigkeit haben und Supercalar -Implementierungen erleichtern. Wie Intel jedoch gezeigt hat, können die Konzepte auf a angewendet werden Komplexes Anweisungssatz Computing (CISC) Design, genügend Zeit und Geld.
1990 bis heute: Ich freue mich nach vorne
VLIW und Epic
Die Anweisungsplanungslogik, die einen Supercalar -Prozessor erstellt, ist eine Boolesche Logik. In den frühen neunziger Jahren bestand eine bedeutende Innovation darin, zu erkennen, dass die Koordination eines Multi-Alu-Computers in die verlegt werden konnte CompilerDie Software, die die Anweisungen eines Programmierers in Anweisungen auf maschineller Ebene übersetzt.
Diese Art von Computer wird a genannt Sehr langes Unterrichtswort (VLIW) Computer.
Planungsanweisungen statisch im Compiler (im Vergleich zur Zeitplanung dynamisch im Prozessor) können die CPU -Komplexität verringern. Dies kann die Leistung verbessern und Wärme und Kosten verringern.
Leider fehlt dem Compiler eine genaue Kenntnis der Laufzeitplanungsprobleme. Das ledigliche Ändern des CPU -Kernfrequenzmultiplikators wirkt sich auf die Planung aus. Der Betrieb des Programms, wie durch Eingabedaten ermittelt, hat erhebliche Auswirkungen auf die Planung. Um diese schwerwiegenden Probleme zu überwinden, kann ein VLIW -System durch Hinzufügen der normalen dynamischen Zeitplanung verbessert werden und einige der VLIW -Vorteile verlieren.
Die statische Planung im Compiler geht auch davon aus, dass dynamisch generierter Code ungewöhnlich sein wird. Vor der Schaffung von Java und die Java virtuelle MaschineDas war wahr. Es war vernünftig anzunehmen, dass langsame Kompiles nur Softwareentwickler beeinflussen würden. Jetzt mit Just-in-Time-Zusammenstellung (JIT) Virtuelle Maschinen, die für viele Sprachen verwendet werden, wirkt sich auch auf Benutzer aus.
Es gab mehrere erfolglose Versuche, VLIW zu kommerzialisieren. Das grundlegende Problem ist, dass ein VLIW -Computer nicht auf unterschiedliche Preis- und Leistungspunkte skaliert wird, da ein dynamisch geplanter Computer dies kann. Ein weiteres Problem ist, dass Compiler -Design für VLIW -Computer sehr schwierig ist, und Compiler werden ab 2005 häufig einen suboptimalen Code für diese Plattformen abgeben.
Außerdem optimieren VLIW -Computer für den Durchsatz und nicht für die geringe Latenz. Daher waren sie unattraktiv für Ingenieure, die Controller und andere in Maschinen eingebettete Computer entwerfen. Das eingebettete Systeme Die Märkte hatten häufig andere Computerverbesserungen vorgenommen, indem sie einen großen Markt für die Kompatibilität mit älterer Software lieferten.
Im Januar 2000, Transmeta Corporation Ich habe den neuartigen Schritt der Platzierung eines Compilers in die zentrale Verarbeitungseinheit gemacht und den Compiler aus einem Referenz -Byte -Code übersetzt (in ihrem Fall, x86 Anweisungen) zu einem internen VLIW -Befehlssatz. Diese Methode kombiniert die Einfachheit, die geringe Leistung und die Geschwindigkeit von VLIW RISC mit dem kompakten Hauptspeichersystem und der umgekehrten Software-Reverse-Kompatibilität, die von der beliebten CISC bereitgestellt wird.
Intel's Itanium Chip basiert auf dem, was sie als nennen explizit parallele Anweisungsrechnung (Episch) Design. Dieses Design bietet angeblich den VLIW -Vorteil eines erhöhten Unterrichtsdurchsatzes. Es vermeidet jedoch einige der Probleme der Skalierung und Komplexität, indem in jedem ausdrücklich bereitgestellt wird bündeln von Anweisungen Informationen zu ihren Abhängigkeiten. Diese Informationen werden vom Compiler berechnet, wie es in einem VLIW -Design der Fall wäre. Die frühen Versionen sind auch rückwärtskompatibel mit neuer x86 Software durch einen On-Chip Emulator Modus. Die ganzzahlige Leistung war enttäuschend und trotz der Verbesserungen waren die Umsätze in den Volumenmärkten weiterhin niedrig.
Multi-Threading
Aktuell[wenn?] Designs funktionieren am besten, wenn der Computer nur ein Programm ausführt. Allerdings fast alle modern Betriebssysteme Lassen Sie mehrere Programme zusammen ausführen. Damit die CPU sich ändern kann und an einem anderen Programm arbeitet, ist kostspielig Kontextumschaltung. Im Gegensatz dazu kann Multi-Thread-CPUs Anweisungen aus mehreren Programmen gleichzeitig verarbeiten.
Zu diesem Zweck enthalten solche CPUs mehrere Register -Sätze. Wenn ein Kontextschalter auftritt, der Inhalt der Arbeitsregister werden einfach zu diesem Zweck in einen von Registern kopiert.
Solche Entwürfe umfassen häufig Tausende von Registern anstelle von Hunderten wie in einem typischen Design. Auf der anderen Seite sind Register im Chipraum in der Regel etwas kostspielig, um sie zu implementieren. Dieser Chipraum kann sonst für einen anderen Zweck verwendet werden.
Intel nennt diese Technologie "HyperThreading" und bietet zwei Threads pro Kern in den aktuellen Core i3-, Core i5-, Core i7- und Core i9 -Desktop -Aufstellung (sowie in der Mobile -Reihe von Core i3, Core i5 und Core i7) sowie in seinem Core i3-, Core i5- und Core i7). Bieten Sie bis zu vier Fäden pro Kern in High-End-Xeon-PHI-Prozessoren an.
Multi-Core
Multi-Core-CPUs sind typischerweise mehrere CPU-Kerne auf demselben Würfel, die über einen gemeinsam genutzten L2- oder L3-Cache miteinander verbunden sind, ein On-Die Bus, oder ein On -er Querlatte. Alle CPU -Kerne für die Diehütten teilen die Verbindungskomponenten, mit denen sie mit anderen Prozessoren und dem Rest des Systems verknüpfen können. Diese Komponenten können a enthalten Frontbus Schnittstelle, a Speichercontroller Schnittstelle mit Dynamischer Direktzugriffsspeicher (Theater Cache kohärent Verknüpfung an andere Prozessoren und eine nicht kohärente Verbindung zur Southbridge und I/O -Geräte. Die Begriffe Multi-Core und Mikroprozessor Einheit (MPU) sind für einen Würfel mit mehreren CPU -Kernen allgemein verwendet.
Intelligenter RAM
Eine Möglichkeit, um die zu arbeiten Von Neumann Engpass ist ein Prozessor zu mischen und alle auf einem Chip zu drahnen.
Rekonfigurierbare Logik
Eine weitere Spur der Entwicklung besteht darin, die rekonfigurierbare Logik mit einer allgemeinen CPU zu kombinieren. In diesem Schema kompiliert eine spezielle Computersprache schnell laufende Unterprogramme in eine Bitmaske, um die Logik zu konfigurieren. Langsamere oder weniger kritische Teile des Programms können durchgeführt werden, indem Sie ihre Zeit auf der CPU teilen. Dieser Prozess ermöglicht das Erstellen von Geräten wie Software FunkgeräteDurch die Verwendung der digitalen Signalverarbeitung zur Ausführung von Funktionen, die normalerweise analog ausgeführt werden Elektronik.
Open Source -Prozessoren
Da die Grenzen zwischen Hardware und Software aufgrund des Fortschritts in der Entwurfsmethodik und der Verfügbarkeit von Chips wie z. B. zunehmend verschwommen sind Feldprogrammierbare Gate-Arrays (FPGA) und billigere Produktionsprozesse sogar Open Source -Hardware hat begonnen zu erscheinen. Gemeinschaften lose stricken wie OpenCores und Risc-v haben kürzlich vollständig offene CPU -Architekturen wie die angekündigt OpenRISC Dies kann von jedem auf FPGAs oder in benutzerdefinierten Chips ohne Lizenzgebühren und sogar etablierte Prozessorhersteller wie möglich implementiert werden. Sun Microsystems Processor Designs veröffentlicht haben (z. B.,, Opensparc) unter Open-Source-Lizenzen.
Asynchroner CPUs
Eine weitere Option ist a COCKLESS oder Asynchrone CPU. Im Gegensatz zu herkömmlichen Prozessoren verfügen caktelose Prozessoren nicht mit zentraler Uhr, um den Fortschritt der Daten über die Pipeline zu koordinieren. Stattdessen werden Stadien der CPU unter Verwendung von Logikgeräten aufgerufen Rohrleitungssteuerungen oder FIFO -Sequenzer. Grundsätzlich taktet der Pipeline -Controller die nächste Logikstufe auf, wenn die vorhandene Stufe abgeschlossen ist. Somit ist eine zentrale Uhr nicht benötigt.
Im Vergleich zur Taktlogik kann es einfacher sein, Hochleistungsgeräte in asynchroner Logik zu implementieren:
- In einer Takt -CPU kann keine Komponente schneller als die Taktrate ausgeführt werden. In einer caktenlosen CPU können Komponenten mit unterschiedlichen Geschwindigkeiten ausgeführt werden.
- In einer Takt-CPU kann die Uhr nicht schneller als die schlechteste Leistung der langsamsten Stufe gehen. In einer caktenlosen CPU kann die nächste Stufe sofort die Ergebnisse einnehmen, anstatt auf die nächste Uhr zu warten, wenn eine Bühne schneller als normal endet. Eine Stufe kann aufgrund der Art der Dateneingänge schneller als normal abschließen (z. B. kann die Multiplikation sehr schnell sein, wenn sie um 0 oder 1 auftritt) oder weil sie bei einer höheren Spannung oder einer niedrigeren Temperatur als normal läuft.
Asynchrone logische Befürworter glauben, dass diese Fähigkeiten diese Vorteile haben würden:
- Abbreitungsdissipation für eine bestimmte Leistung
- höchstmögliche Ausführungsgeschwindigkeiten
Der größte Nachteil der caktenlosen CPU besteht darin, dass die meisten CPU -Design -Tools eine CPU (a) einnehmen (a) Synchronschaltung), also eine cockenlose CPU machen (entwerfen eine Asynchroner Schaltung) Beinhaltet das Ändern der Design -Tools, um die Uhr ohne Logik zu verarbeiten und zusätzliche Tests durchzuführen, um sicherzustellen, dass das Design vermeidet Metastabilität Probleme.
Trotzdem wurden mehrere asynchrone CPUs gebaut, darunter, einschließlich
- das Ordvac und das identische Illiac i (1951)
- das ILLIAC II (1962), damals der schnellste Computer der Erde
- Der asynchrone Caltech-Mikroprozessor, der weltweit erste asynchrone Mikroprozessor (1988)
- das ARM-implementieren AMULETT (1993 und 2000)
- die asynchrone Umsetzung von MIPS -Technologien R3000, benannt Minimips (1998)[10]
- Der Seaforth Multi-Core Prozessor von Charles H. Moore[11]
Optische Kommunikation
Eine vielversprechende Option besteht darin, die zu beseitigen Frontbus. Moderne vertikale Laserdioden Aktivieren Sie diese Änderung. Theoretisch könnten die Komponenten eines optischen Computers direkt über ein holographisches oder ein Phasen-Open-Air-Switching-System herstellen. Dies würde eine große Erhöhung der effektiven Geschwindigkeit und der Flexibilität des Designs sowie zu einer großen Kostensenkung verleihen. Da die Anschlüsse eines Computers auch die wahrscheinlichsten Fehlerpunkte sind, ist ein busloses System möglicherweise zuverlässiger.
Darüber hinaus verwenden moderne Prozessoren ab 2010 eine 64- oder 128-Bit-Logik. Die optische Wellenlänge -Superposition kann Datenspuren und Logik viele Größenordnungen höher als die Elektronik ermöglichen, ohne zusätzlichen Platz oder Kupferdrähte.
Optische Prozessoren
Eine weitere langfristige Option ist die Verwendung von Licht anstelle von Strom für die digitale Logik. Theoretisch könnte dies etwa 30% schneller dauern und weniger Leistung anwenden und eine direkte Schnittstelle mit Quantencomputergeräten ermöglichen.
Die Hauptprobleme bei diesem Ansatz sind, dass elektronische Computerelemente auf absehbare Zeit schneller, kleiner, billiger und zuverlässiger sind. Solche Elemente sind bereits kleiner als einige Lichtwellenlängen. Daher kann auch die optische Logik basierender Wellenleiter im Vergleich zur elektronischen Logik unwirtschaftlich sein. Ab 2016 sind die meisten Entwicklungsbemühungen für elektronische Schaltkreise.
Ionenprozessoren
Frühe experimentelle Arbeit wurde durchgeführt, um ionenbasierte chemische Reaktionen anstelle von elektronischen oder photonischen Aktionen zur Implementierung von Elementen eines Logikprozessors zu verwenden.
Riemenmaschinenarchitektur
Relativ zu konventionell Registrieren Sie Maschine oder Stapelmaschine Architektur, aber ähnlich wie Intel Itanium die Architektur,[12] Ivan Godard und Company, das die Komplexität der CPU -Hardware erheblich verringern soll (insbesondere die Anzahl der internen Register und die resultierenden Riesige Multiplexer Bäume).[13] Während es etwas schwieriger zu lesen und zu debuggen als allgemeine Registernamen, hilft es dem Verständnis, den Gürtel als Bewegung zu betrachten Förderband wo die ältesten Werte abbrechen der Gürtel und verschwinden. Es wird in der Mühlenarchitektur implementiert.
Zeitleiste der Ereignisse
- 1964. IBM Lösen Sie den 32-Bit IBM System/360 mit Gedächtnisschutz.
- 1969. Intel 4004's anfängliches Design angeführt von Intels Ted Hoff und Bussicom's Masatoshi Shima.[14]
- 1970. Intel 4004 -Design von Intel's abgeschlossen Federico Faggin und Busicoms Masatoshi Shima.[14]
- 1971. IBM veröffentlichen die IBM System/370 Nachfolger von System/360.
- 1971. Intel Lösen Sie den 4-Bit Intel 4004, der erste Werbespot Mikroprozessor.[1]
- 1971. NEC Füllen Sie die μPD707 und μPD708, eine 4-Bit-CPU mit zwei Chips, los.[15]
- 1972. IBM kündigt "System/370 Advanced Function" an und fügt Unterstützung für die Unterstützung für virtueller Speicher mit Paging fordern
- 1972. NEC Freisetzung Single-Chip 4-Bit-Mikroprozessor, μPD700.[16][17]
- 1973. NEC Release 4-Bit μcom-4 (μpd751),[16] Kombination der μPD707 und μPD708 zu einem einzelnen Mikroprozessor.[15]
- 1974. Intel veröffentlichen die Intel 8080, ein 8 Bit Mikroprozessor, entworfen von Federico Faggin und Masatoshi Shima.
- 1975. MOS -Technologie Lösen Sie den 8-Bit MOS -Technologie 6502Der erste integrierte Prozessor, der einen erschwinglichen Preis von 25 US -Dollar hat, als der 6800 -Rivale 175 US -Dollar betrug.
- 1976. Zilog Führen Sie den 8-Bit ein Zilog Z80, entworfen von Federico Faggin und Masatoshi Shima.
- 1977. Digital Equipment Corporation stellte seine erste vor 32-Bit Vax Superminicomputer, das Vax-11/780.
- 1978. Intel stellt die vor Intel 8086 und Intel 8088, die ersten x86 -Chips.
- 1978. Fujitsu veröffentlicht den MB8843 -Mikroprozessor.
- 1979. Zilog befreit das Zilog Z8000, ein 16-Bit-Mikroprozessor, der von entworfen wurde von Federico Faggin und Masatoshi Shima.
- 1979. Motorola vorstellen Motorola 68000, ein 16/32-Bit-Mikroprozessor.
- 1981. Stanford Mips eingeführt, einer der ersten Reduziertes Anweisungssatz Computing (RISC) Designs.
- 1982. Intel stellt die vor Intel 80286Dies war der erste Intel -Prozessor, der alle für seine Vorgänger geschriebenen Software, die 8086 und 8088, ausführen konnte.
- 1984. Motorola führt die vor Motorola 68020, was die vollständige 32-Bit-Adressierung ermöglichte und die 68851 Speicherverwaltungseinheit, was die Nachfrage Paging unterstützte.
- 1985. Intel stellt die vor Intel 80386, der der x86-Mikroarchitektur einen 32-Bit-Befehlssatz hinzufügt und das Paging unterstützt.
- 1985. Armarchitektur eingeführt.
- 1989. Intel stellt die vor Intel 80486.
- 1992. Hitachi vorstellt Superh die Architektur,[8] die die Grundlage für Arms bildet Daumen Befehlssatz.[9]
- 1993. Intel startet das Original Pentium Mikroprozessor, der erste Prozessor mit einer X86 -Superscalar -Mikroarchitektur.
- 1994. IBM stellt die ersten IBM-Mainframe-Modelle ein, die Single-Chip-Mikroprozessoren als CPUs verwenden, die IBM System/390 9672 Serie.
- 1994. Arm's Daumen Befehlssatz eingeführt,[18] bezogen auf Hitachi's Superh Befehlssatz.[9]
- 1995. Intel stellt die vor Pentium Pro was zur Grundlage für die Pentium II, Pentium III, Pentium m und Intel Core Prozessor Architekturen.
- 2000. IBM Einführung Z/Architektur, die 64-Bit-Version ihrer Mainframe-Architektur.
- 2000. AMD angekündigt x86-64 64-Bit-Erweiterung zur x86-Mikroarchitektur.
- 2000. AMD trifft 1 GHz mit seinem Athlon Mikroprozessor.
- 2000. Analoge Geräte führen die vor Schwarz die Architektur.
- 2002. Intel veröffentlichte a Pentium 4 mit Hyper-Threading, der erste moderne Desktop -Prozessor zum Implementieren Simultanes Multithreading (SMT).
- 2003. AMD veröffentlichte die Athlon 64, Der Erste 64-Bit Verbraucher -CPU.
- 2003. Intel stellte die vor Pentium m, eine mobile Ausleitung mit geringer Leistung der Pentium Pro -Architektur.
- 2005. AMD kündigte die an Athlon 64 x2, ihr erstes x86 Zweikern Prozessor.
- 2006. Intel stellt die vor Kern CPU -Linie basierend auf einem modifizierten Pentium M -Design.
- 2008. Zehn Milliarden Arm -CPUs verschifft.
- 2010. Intel stellte die vor Kern i3, i5, und i7mit 2, 4 bzw. 4 Kernen.
- 2011. Armveröffentlichung ARMV8-A, Unterstützung der 64-Bit-AARAGRIG64-Architektur.
- 2011. AMD kündigte den ersten der Welt an 8-Kern CPU für Desktop -PCs.
- 2017. AMD angekündigt Ryzen Prozessoren basierend auf dem Zen Architektur mit bis zu 16 Kernen.
- 2017. Intel 8. Generation Core i3, Core i5, Core i7 und Core i9, stieg auf ungefähr 4, 6, 8 und 8 Kerne.
- 2017. Arm hat hundert Milliarden Prozessoren verschickt.[19]
- 2020. Fujitsu A64FX 48-Core (ARMV8.2) Prozessoren Stromversorgung Fugaku, die mächtigsten Supercomputer der Welt.[20]
- 2021. Armveröffentlichung ARMV9 Das erste große Upgrade seit einem Jahrzehnt seit ARMV8 im Jahr 2011.[21]
Siehe auch
Verweise
- ^ a b Nigel Tout. "Der Bussicom 141-PF-Rechner und der Intel 4004-Mikroprozessor". Abgerufen 15. November, 2009.
- ^ Aspray, William (1994-05-25). "Mundgeschichte: Tadashi Sasaki". Interview Nr. 211 für das Zentrum für die Geschichte der Elektrotechnik. Das Institut für Elektro- und Elektronikingenieure, Inc.. Abgerufen 2013-01-02.
- ^ Caswell, Wayne (18. Februar 2008). "Zwanzig Technologie -Trends, die sich auf das Heimnetzwerk auswirken". Heimspielzeug. Archiviert von das Original am 27. März 2016.
- ^ "Die Struktur von System/360". Computerstrukturen: Prinzipien und Beispiele.
- ^ "16-Bit-Mikroprozessoren". CPU -Museum. Abgerufen 5. Oktober 2010.
- ^ a b "Geschichte". Pfu. Abgerufen 5. Oktober 2010.
- ^ Panafacom lkit-16, Informationsverarbeitungsgesellschaft Japans
- ^ a b "Hitachi veröffentlicht die SH-4 SH7750-Serie und bietet die höchste Leistung der Branche von 360 MIPs für einen eingebetteten RISC-Prozessor als Top-End-Serie in der Superh-Familie.".
- ^ a b c Nathan Willis (10. Juni 2015). "Wiederbelebung der Superh -Architektur". Lwn.net.
- ^ Minimiert
- ^ "Seaforth -Übersicht". Archiviert von das Original am 2008-02-02.
... Asynchrone Schaltungsdesign im gesamten Chip. Es gibt keine zentrale Uhr mit Milliarden dummen Knoten, die nutzlose Strom leiten. ... Die Prozessorkerne sind selbst intern asynchron.
- ^ "RISC -Prozessoren Comp375 Computerarchitektur und Organisation" (PDF). Archiviert von das Original (PDF) am 2. Oktober 2017.
- ^ "Der Gürtel".
- ^ a b Federico Faggin, Das Erstellen des ersten Mikroprozessors, IEEE Solid-State Circuits Magazine, Winter 2009, IEEE XPLORE
- ^ a b "NEC 751 (UCOM-4)". Die Seite des Antique Chip Collectors. Archiviert von das Original Am 2011-05-25. Abgerufen 2010-06-11.
- ^ a b 1970 年代 マイコン の 開発 と 発展 ~ 集積回路 集積回路, Semiconductor History Museum Japans
- ^ Jeffrey A. Hart & Sangbae Kim (2001), Die Verteidigung von geistigen Eigentumsrechten in der globalen Informationsordnung, International Studies Association, Chicago
- ^ ARM7TDMI Technisches Referenzhandbuch Seite II
- ^ Segars, Simon (2017-02-27). "Aktivieren Sie das Massen -IoT -Konnektivität als Armpartner aus 100 Milliarden Chips". ". Abgerufen 2021-09-06.
{{}}
: CS1 Wartung: URL-Status (Link) - ^ "Fugaku wird von Fujitsus 48-Core A64FX SoC angetrieben und wird zum ersten System Nummer eins auf der Liste, das von ARM-Prozessoren betrieben wird.". Top 500. 2020-06-01. Abgerufen 2021-09-06.
{{}}
: CS1 Wartung: URL-Status (Link) - ^ Takahashi, Dean (2021-03-30). "Armv9 ist das erste große architektonische Update von Arms seit einem Jahrzehnt". VentureBeat. Abgerufen 2021-09-06.
{{}}
: CS1 Wartung: URL-Status (Link)
Externe Links
- Große Momente in der Geschichte der Mikroprozessor von W. Warner, 2004
- Große Mikroprozessoren der Vergangenheit und Gegenwart (V 13.4.0) von: John Bayko, 2003
- Stück für Stück: Eine illustrierte Geschichte von Computern, Stan Augarten, 1984. OCR mit Genehmigung des Autors
- Galerie der CPU und verwandte PCBs (auf Italienisch) [1]