Prozessorregister

A Prozessorregister ist ein schnell zugänglicher Ort, der dem Computer zur Verfügung steht Prozessor. Register bestehen normalerweise aus einer kleinen Menge schneller LagerungObwohl einige Register bestimmte Hardwarefunktionen haben und möglicherweise nur schreibgeschützt sind oder nur Schreibfunktionen haben. Im Rechnerarchitektur, Register werden typischerweise von anderen Mechanismen als Mechanismen behandelt, als Haupterinnerung, kann aber in einigen Fällen a zugewiesen werden a Speicheradresse z.B. Dez PDP-10, IKT 1900.

Fast alle Computer, ob Architektur laden/store oder nicht, laden Sie Daten aus einem größeren Speicher in Register, in denen sie verwendet werden Rechenoperationen und wird manipuliert oder getestet von Maschinenanweisungen. Manipulierte Daten werden dann häufig auf den Hauptspeicher zurückgebracht, entweder durch denselben Anweisungen oder durch eine nachfolgende. Moderne Prozessoren verwenden entweder statisch oder dynamisch RAM als Hauptspeicher, wobei letztere normalerweise über einen oder mehrere zugegriffen werden Cache -Ebenen.

Prozessorregister stehen normalerweise ganz oben auf der Speicherhierarchieund geben Sie den schnellsten Weg zum Zugriff auf Daten. Der Begriff bezieht sich normalerweise nur auf die Registergruppe Befehlssatz. Moderne Hochleistungs-CPUs haben jedoch häufig Duplikate dieser "architektonischen Register", um die Leistung durch die Leistung zu verbessern Umbenennen registrierenParallele und Spekulative Ausführung. Modern x86 Das Design erwarb diese Techniken um 1995 mit den Veröffentlichungen von Pentium Pro, Cyrix 6x86, NX586, und AMD K5.

Wenn ein Computer Programm Zugriff wiederholt auf die gleichen Daten, dies wird genannt Referenzort. Das Halten von häufig verwendeten Werten in Registern kann für die Leistung eines Programms von entscheidender Bedeutung sein. Zuteilung registrieren wird entweder durch a durchgeführt Compiler in dem Codegenerierung Phase oder manuell von einem Montagesprache Programmierer.

Größe

Register werden normalerweise an der Anzahl der Anzahl gemessen Bits Sie können zum Beispiel eine "halten"8 Bit registrieren", "32-Bit Registrieren "oder ein"64-Bit Registrieren Sie "oder sogar noch mehr. In einigen Anweisungssätzen können die Register in verschiedenen Modi in kleinere Speicher (32-Bit in vier 8-Bit) einteilen, zu denen mehrere Daten (Vektor oder Vektor oder eine dimensionale Datenarray von Daten) kann gleichzeitig geladen und betrieben werden. In der Regel wird es implementiert, indem zusätzliche Register hinzugefügt werden, die ihren Speicher in ein größeres Register abbilden. Prozessoren, die die Möglichkeit haben, einzelne Anweisungen für mehrere Daten auszuführen, werden aufgerufen Vektorprozessoren.

Typen

Ein Prozessor enthält häufig verschiedene Arten von Registern, die nach ihren Inhalten oder Anweisungen klassifiziert werden können, die sie betreiben:

  • Benutzerverbindliche Register kann durch Maschinenanweisungen gelesen oder geschrieben werden. Die häufigste Aufteilung von benutzergerechtigen Registern liegt in Datenregistern und Adressierungsregistern.
    • Datenregisters kann halten Numerische Datenwerte wie zum Beispiel ganze Zahl und in einigen Architekturen, schwimmenden Punktwerten sowie in Figuren, klein Bit -Arrays und andere Daten. In einigen älteren und niedrigen CPUs, einem speziellen Datenregister, das als das bekannt ist Akkumulator, wird implizit für viele Operationen verwendet.
    • Adressregisters halt Adressen und werden durch Anweisungen verwendet, die indirekt zugreifen Hauptspeicher.
      • Einige Prozessoren enthalten Register, die nur verwendet werden können Ansprache halten oder nur zu Numerische Werte halten (In einigen Fällen als als verwendet Indexregister deren Wert als Offset von einer Adresse hinzugefügt wird); Andere erlauben Registern, beide Arten von Menge zu halten. Eine Vielzahl möglich Adressierungsmodi, verwendet, um die effektive Adresse eines Operanden anzugeben, existieren.
      • Das Stapelzeiger wird verwendet, um die zu verwalten Laufzeitstack. Selten andere Datenstapel werden von speziellen Adressregistern angesprochen (siehe Stapelmaschine).
    • Allgemeine Register (GPRs) kann sowohl Daten als auch Adressen speichern, d. H. Es handelt sich um kombinierte Daten-/Adressregister. In einigen Architekturen die Datei registrieren ist einheitlich damit die GPRs speichern können Gleitkommazahlen auch.
    • Statusregister halt Wahrheitswerte häufig verwendet, um festzustellen, ob eine Anweisung ausgeführt werden sollte oder nicht.
    • Schwimmpunktregisters (FPRs) Speicher Gleitkommazahlen in vielen Architekturen.
    • Konstante Register Halten Sie schreibgeschützte Werte wie Null, eins oder Pi.
    • Vektorregister Daten halten für Vektorverarbeitung gemacht von Simd Anweisungen (Einzelanweisung, mehrere Daten).
    • Spezialregister (Sprs) Programmstaat halten; sie enthalten normalerweise die Programm zähler, auch als Anweisungszeiger bezeichnet, und die Statusregister; Das Programmzähler und das Statusregister können in a kombiniert werden Programmstatuswort (PSW) Register. Der oben genannte Stapelzeiger ist manchmal auch in dieser Gruppe enthalten. Eingebettete Mikroprozessoren können auch Register haben, die spezialisierten Hardware -Elementen entsprechen.
    • In einigen Architekturen, Modellspezifische Register (auch genannt maschinspezifische Register) Daten und Einstellungen im Zusammenhang mit dem Prozessor selbst speichern. Da ihre Bedeutungen mit der Gestaltung eines bestimmten Prozessors verbunden sind, kann nicht erwartet werden, dass sie zwischen den Prozessorgenerationen standardmäßig bleiben.
    • Speichertyp -Bereichsregister (Mtrrs)
  • Interne Register - Register, die nicht nach Anweisungen zugänglich sind und intern für den Prozessorbetrieb verwendet werden.
  • Architekturregister - Die von einer Architektur definierten Software, die für die Software definiert ist Umbenennen registrieren durch zugrunde liegende Hardware durchgeführt werden.

Hardwareregister sind ähnlich, treten aber außerhalb von CPUs auf.

In einigen Architekturen (wie z. Sparc und MIPS) das erste oder letzte Register in der Ganzzahl Datei registrieren ist ein Pseudo-Register Es ist fest verdrahtet, dass es beim Lesen immer Null zurückgibt (hauptsächlich zur Vereinfachung der Indexierungsmodi), und es kann nicht überschrieben werden. Im Alpha Dies geschieht auch für die Floating-Punkt-Registerdatei. Infolgedessen werden Registerdateien häufig als Register zitiert, als viele von ihnen tatsächlich verwendbar sind. Beispielsweise werden 32 Register angegeben, wenn nur 31 von ihnen in die obige Definition eines Registers passen.

Beispiele

Die folgende Tabelle zeigt die Anzahl der Register in mehreren Mainstream -CPU -Architekturen. Beachten Sie, dass in x86-kompatiblen Prozessoren der Stapelzeiger (Esp) wird als Ganzzahlregister gezählt, obwohl es eine begrenzte Anzahl von Anweisungen gibt, die für den Betrieb seines Inhalts verwendet werden können. Ähnliche Einschränkungen gelten für die meisten Architekturen.

Obwohl alle oben aufgeführten Architekturen unterschiedlich sind, befinden sich fast alle in einer Grundanordnung, die als die bekannt ist Von Neumann Architektur, zuerst vom ungarisch-amerikanischen vorgeschlagen Mathematiker John von Neumann. Es ist auch bemerkenswert, dass die Anzahl der Register auf GPUS ist viel höher als bei CPUs.

Die Architektur GPRS/Daten+Adressregister FP -Register Anmerkungen
AT & T Hobbit 000 Stapel von 7 Stapelmaschine
Cray-1[1] 8 Skalardaten, 8 Adresse 8 Scalar, 8 Vektor

(64 Elemente)

Skalare Datenregister können ganzzahlig oder schwimmend sein. Auch 64 skalare Kratzer-Pad-T-Register und 64 Kratzer-Pad-B-Register adressieren
4004[2] 1 Akkumulator, 16 andere 000 Register A ist allgemein, während die Register der R0-R15 für die Adresse und das Segment sind.
8008[3] 1 Akkumulator, 6 andere 000 Das A -Register ist ein Akkumulator, zu dem alle Arithmetik durchgeführt werden. Die H- und L -Register können in Kombination als Adressregister verwendet werden. Alle Register können als Operanden in Last-/Speicher-/Verschieben-/Inkrement-/Dekrementanweisungen und als andere Operanden in arithmetischen Anweisungen verwendet werden. Es gibt keine FP -Einheit.
8080[4] 1 Akkumulator, 6 andere 000 Plus ein Stapelzeiger. Das A -Register ist ein Akkumulator, zu dem alle Arithmetik durchgeführt werden. Die Registerpaare B+C, D+E und H+L können in einigen Anweisungen als Adressregister verwendet werden. Alle Register können als Operanden in Last-/Speicher-/Verschieben-/Inkrement-/Dekrementanweisungen und als andere Operanden in arithmetischen Anweisungen verwendet werden. Einige Anweisungen verwenden nur H+L; Ein weiterer Befehl wechselt H+L und D+E. Die für den 8080 vorgesehenen schwimmenden Punktprozessoren waren Intel 8231, AMD AM9511 und Intel 8232. Sie waren auch leicht mit dem verwendbar Z80 und ähnliche Prozessoren.
IAPX432 000 Stapel von 6 Stapelmaschine
16-Bit x86[5] 006 Stapel von 8

(wenn FP vorhanden)

8086/8088, 80186/80188, 80286, mit 8087, 80187 oder 80287 Für Gleitkomma mit einem 80-Bit-Breiten 8 Tiefe Register-Stapel mit einigen Anweisungen, die Register relativ zum oberen Rand des Stapels als Operanden verwenden können; Ohne 8087/80187/80287, keine schwimmenden Punktregister
IA-32[6] 008 Stapel von 8 (wenn FP vorhanden),

8 (wenn SSE/MMX vorhanden ist)

80386 erforderlich 80387 Für Floating Point hatten spätere Verarbeiter einen integrierten Schwimmpunkt, wobei beide einen 80-Bit-Weiten von 8 tiefem Register mit einigen Anweisungen hatten, die Register relativ zum oberen Rand des Stapels als Operanden verwenden konnten. Das Pentium III und hatte später das Sse mit zusätzlichen 128-Bit-XMM-Registern.
x86-64[6][7] 016 16 oder 32

(Wenn AVX-512 verfügbar)

FP-Register sind 128-Bit-XMM-Register, später auf 256-Bit-YMM-Register mit AVX/AVX2 und 512-Bit ZMM0–ZMM31-Register mit AVX-512.[8]
Xeon Phi[9] 016 032 Einschließlich 32 256/512-Bit-ZMM-Register mit AVX-512.
Fairchild F8 Ein Akkumulator, 64 Scratchpad -Register, ein indirektes Scratchpad -Register (ISAR) Anweisungen können direkt auf die ersten 16 Scratchpad -Register verweisen und auf alle Scratchpad -Register indirekt über den ISAR zugreifen[10]
Geode GX 1 Daten, 1 Adresse 008 Geode GX/Medien GX/4x86/5x86 ist die Emulation von 486/Pentium -kompatiblen Prozessor durch Cyrix/Nationaler Halbleiter. Wie TransmetaDer Prozessor hatte eine Übersetzungsschicht, die den X86 -Code in nativen Code übersetzte und ihn ausgeführt hat. Es unterstützt keine 128-Bit-SSE-Register, nur den 80387-Stapel von acht 80-Bit-Schwimmpunktregistern und teilweise unterstützt 3dnow! Von AMD. Der native Prozessor enthält nur 1 Daten und 1 Adressregister für alle Zwecke und wird in 4 Pfade von 32-Bit-Benennungsregistern R1 (Basis), R2 (Daten), R3 (Rückzeiger) und R4 (Stapelzeiger) in innerhalb übersetzt Scratchpad SRAM für Ganzzahlbetrieb und es verwendet den L1 -Cache für die X86 -Codeemulation (er ist nicht mit einigen Anweisungen zwischen 286/386/486 im realen Modus kompatibel). Später wurde das Design aufgegeben, nachdem AMD die IP vom National Semiconductor erworben und mit Athlon Core im eingebetteten Markt bezeichnet hatte.
SUNPLUS SPG 000 6 Stack + 4 SIMD Ein 16-Bit-Prozessor der taiwanesischen Firma Sunplus Technology, ein 16-Bit-Prozessor mit 32-Bit-Adresse, ist in der V.-Smile-Linie von VTech für Bildungszwecke und Videospielkonsolen wie die drahtlosen 60, Mattel-Hyperscan und Xavixport zu finden. Es fehlt ein allgemeines Register oder ein internes Register für die Benennung/Umbenennung, aber seine schwimmende Punkteinheit verfügt über einen 60-Bit-6-Stufe-Stapel und vier 128-Bit-VLIW-SIMD-Register auf einem Co-Prozessor von Vertex Shader.
VM Labs Nuon 000 001 Ein 32-Bit-Stack-Maschinenprozessor, der von VM Labs entwickelt wurde und für Multimedia spezialisiert ist. Es ist auf der eigenen Nuon DVD Player Console -Linie des Unternehmens und dem Game Wave Family Entertainment System von Zapit Games zu finden. Das Design wurde stark von der MMX -Technologie von Intel beeinflusst. Es enthielt einen 128-Byte-Stack-Cache für Vektor- und Skalaranweisungen. Der einheitliche Cache kann als 8 128-Bit-Vektorregister oder 32 32-Bit-SIMD-Skalarregister durch die Umbenennung von Bank-Registern geteilt werden. In dieser Architektur gibt es kein ganzzahliges Register.
NIOS II[11][12] 031 008 NIOS II basiert auf dem MIPS IV-Befehlssatz und verfügt über 31 32-Bit-GPRs, wobei das Register 0 festverdraht
Motorola 6800[13] 2 Daten, 1 Index 000 Plus einen Stapelzeiger
Motorola 68K[14] 8 Daten (D0 - D7), 8 Adresse (A0 - A7) 008

(wenn FP vorhanden)

Das Adressregister 8 (A7) ist der Stapelzeiger. 68000, 68010, 68012, 68020 und 68030 benötigen eine FPU für den schwimmenden Punkt; 68040 hatte die FPU eingebaut. FP-Register sind 80-Bit.
Sh 16-Bit 001 006
Emotionsmotor 3 (VU0)+ 32 (VU1) 32 SIMD (in UV1 integriert)

+ 2 × 32 Vektor (dedizierter Vektor-Co-Prozessor, der sich in der Nähe seiner GPU befindet)

Der Hauptkern der Emotion Engine (VU0) ist ein stark modifizierter DSP-Generalkern für allgemeine Hintergrundaufgaben und enthält einen 64-Bit-Akkumulator, zwei allgemeine Datenregister und einen 32-Bit-Programmzähler. Ein modifizierter MIPS III Executable Core (VU1) ist für Spieldaten und Protokollsteuerung und enthält 32 32-Bit-Register für allgemeine Register für ganzzahlige Berechnungen und 32 128-Bit-SIMD-Register für das Speichern von SIMD und ein Akkumulatorregister für die Verbindung der allgemeinen Floating-Punkt-Berechnung mit der Vektorregisterdatei im Co-Prozessor. Der Coprozessor wird über eine 32-Eingang-128-Bit-Vektor-Registerdatei erstellt (kann nur Vektorwerte speichern, die vom Akkumulator in der CPU geleitet werden) und es werden keine ganzzahligen Register eingebaut. Beide Vektor-Co-Prozessor (VPU 0/1). und das gesamte Hauptprozessor -Modul der Emotion Engine (VU0 + VU1 + VPU0 + VPU1) basiert auf einem modifizierten MIPS -Anweisungen. Der Akkumulator in diesem Fall ist nicht allgemeiner Zweck, sondern den Kontrollstatus.
CUDA[15] Konfigurierbar, bis zu 255 pro Thread Frühere Generationen erlaubten bis zu 127/63 Register pro Thread (Tesla/Fermi). Je mehr Register pro Thread konfiguriert sind, desto weniger Threads können gleichzeitig ausgeführt werden. Die Register sind 32 Bit breit, doppelte Präzisionsschwimmpunktzahlen und 64 -Bit -Zeiger benötigen daher zwei Register. Es hat außerdem bis zu 8 Prädikatregister pro Thread.[16]
CDC 6000 -Serie 016 008 8 'a' Register, A0-A7, halten 18-Bit-Adressen; 8 'B' Register, B0-B7, halten 18-Bit-Ganzzahlwerte (mit B0 dauerhaft auf Null eingestellt); 8 'x' Register, x0-X7, halten 60 Bit Ganzzahl- oder Gleitkomma-Daten. Sieben der acht 18-Bit-Register wurden mit ihren entsprechenden X-Registern gekoppelt: Das Einstellen eines der A1-A5-Register auf einen Wert führte zu einer Speicherbelastung des Inhalts dieser Adresse in das entsprechende X-Register. Ebenso verursachte das Einstellen einer Adresse in Register A6 oder A7 einen Speicherspeicher in diesen Speicherort im Speicher von X6 oder X7. (Die Register A0 und X0 wurden nicht so gekoppelt).
System/360, System/370, System/390, Z/Architektur 016 4 (wenn FP vorhanden);

16 in G5 und später S/390 -Modellen und Z/Architektur

FP war in System/360 optional und immer in S/370 und später vorhanden. In Prozessoren mit der Vektoranlage gibt es 16 Vektorregister, die eine maschinenabhängige Anzahl von 32-Bit-Elementen enthalten.[17] Einige Register erhalten einen festen Zweck von Konventionen anrufen; Zum Beispiel wird Register 14 für Unterprogramme -Rückgabeberechnung verwendet und für, für ELF Abis, Register 15 wird als Stapelzeiger verwendet. Der S/390 G5-Prozessor erhöhte die Anzahl der Gleitkomma-Register auf 16.[18]
Mmix[19] 256 256 Ein Befehlssatz von entworfen von von Donald Knuth In den späten 1990er Jahren für pädagogische Zwecke.
NS320XX[20] 008 008

(wenn FP vorhanden)

Xelerated X10 001 032 Ein 32/40-Bit-Stapelmaschinenbasis-Netzwerkprozessor mit einem modifizierten MIPS-Befehlssatz und einer 128-Bit-Einheit.
Parallaxe Propeller 000 002 Ein 8/16 -Bit -Stapel -Maschinen -Controller mit 8/16 -Bit -Stapel mit einem einfachen Logikkreis im Inneren verfügt er über 8 COG -Zähler (Kerne), die jeweils drei 8/16 Bit -Spezialsteuerungsregister mit 32 Bit x 512 Stack RAM enthalten. Es enthält jedoch kein allgemeines Register für ganzzahlige Zwecke. Im Gegensatz zu den meisten Schattenregisterdateien in modernen Prozessoren und Multi -Core -Systemen kann auf alle Stack -RAM in COG in Anleitungsebene zugegriffen werden, auf die alle diese Zahnräder bei Bedarf als einzelner Allzweckkern fungieren können. Die schwimmende Punkteinheit ist extern und enthält zwei 80 -Bit -Vektorregister.
Itanium 128 128 Und 64 1-Bit-Prädikatregister und 8 Branch-Register. Die FP-Register sind 82-Bit.
Sparc 031 032 Global Register 0 ist fest verdrahtet zu 0 Registrieren Sie Windows.
IBM -Kraft 032 032 Und 1 Link und 1 Zählregister.
Macht ISA 032 032 Und 1 Link und 1 Zählregister. Prozessoren, die die unterstützen Vektoreinrichtung haben auch 32 128-Bit-Vektorregister.
Schwarz 8 Daten, 2 Akkumulator, 6 Adresse 000 Und Stapelzeiger und Rahmenzeiger. Zusätzliche Register werden verwendet, um Null-Overhead-Schleifen und zirkuläre Puffer-DAGs (Datenadressengeneratoren) zu implementieren.
IBM Cell Spe 128 128 GPRs, die Ganzzahl-, Adress- oder Gleitkommawerte halten können[21]
PDP-10 016 Alle Register können allgemein verwendet werden (Ganzzahl, Schwimmer, Stapelzeiger, Sprung, Indexierung usw.). Jedes 36-Bit-Speicher- (oder Register-) Wort kann auch als Halbwort manipuliert werden, was als 18-Bit-Adresse betrachtet werden kann. Andere Wortinterpretationen werden in bestimmten Anweisungen verwendet. In den ursprünglichen PDP-10-Prozessoren entsprachen diese 16 GPRs auch Main (d. H. Ader) Speicherorte 0–15; Eine Hardwareoption namens "Fast Memory" implementierte die Register als separate ICS, und Verweise auf Speicherorte 0–15 verwiesen auf die IC -Register. Spätere Modelle implementierten die Register als "schnelles Speicher" und ließen weiterhin Speicherorte von 0–15 beziehen. Bewegungsanweisungen nehmen (Register, Speicher) Operanden: MOVE 1,2 ist Registerregister und MOVE 1,1000 ist Speicher-zu-Register.
PDP-11 007 006

(wenn FPP vorhanden)

R7 ist der Programmzähler. Jedes Register kann ein Stapelzeiger sein, aber R6 wird für Hardware -Interrupts und Fallen verwendet.
Vax 016 Die GPRs werden auch für Gleitpunktwerte verwendet. Drei der Register haben spezielle Verwendungszwecke: R12 (Argumentzeiger), R13 (Rahmenzeiger) und R14 (Stack -Zeiger), während R15 den Programmzähler bezieht.
Alpha 031 031 Die Register R31 (Ganzzahl) und F31 (Floating-Punkt) sind fest verdrahtet zu Null.
6502 1 Daten, 2 Index 000 6502 Inhalt A (Akkumulator) Register für Hauptzweckdatenspeicher und Speicheradresse (8-Bit-Daten/16-Bit-Adresse), x, y sind indirekte und direkte Indexregister (jeweils) und die SP-Register sind nur spezifische Index.
W65C816s 001 000 65C816 ist der 16-Bit-Nachfolger des 6502. x, y, d (Direct Page Register) sind Bedingungsregister und SP-Register nur spezifischer Index. Hauptgebaute erweitert auf 16-Bit (c)[22] Bei der Durchführung von 8-Bit (a) für Kompatibilität und Hauptregister können jetzt bis zu 24-Bit (16-Bit-Breite Datenanweisung/24-Bit-Speicheradresse) angesprochen werden.
65k 001 000 Direkter Nachfolger von 6502, 65002 Nur Inhalt A (Akkumulator) Register für den Hauptzweckdatenspeicher und erweitert die daten breit und bleiben 8-Bit- und SP-Register sind spezifisch index, erhöhen sich jedoch auf 16-Bit-Breite.
MEP 004 008 Der Medienverfahren war ein 32-Bit-Prozessor, der von entwickelt wurde, Toshiba mit einem modifizierten 8080 -Befehlssatz mit nur den Registern A, B, C und D, die über alle Modi erhältlich sind (16.08.32 Bit). Es ist mit x86 unvereinbar; Es enthält jedoch eine 80 -Bit -schwimmende Punkteinheit, die x87 kompatibel ist.
PIC -Mikrocontroller 001 000
AVR -Mikrocontroller 032 000
ARM 32-Bit (Arm/A32, Daumen-2/T32) 014 Variiert

(bis zu 32)

R15 ist der Programmzähler und nicht als GPR verwendbar; R13 ist der Stapelzeiger; R8 - R13 kann für andere (Banked) auf einem Prozessormodusschalter ausgeschaltet werden. Ältere Versionen hatten 26-Bit-Adressierung,[23] und verwendete obere Bits des Programmzählers (R15) für Statusflags, wodurch dieses Register 32-Bit gemacht wird.
ARM 32-Bit (Daumen) 008 016 Version 1 von Thumb, der nur den Zugriff auf Register R0 bis R7 unterstützte[24]
ARM 64-Bit (A64)[25] 031 032 Register R31 ist abhängig vom Kontext der Stapelzeiger oder härter verdrahtet.
MIPS 031 032 Integer Register 0 ist fest verdrahtet zu 0.
Risc-v 031 032 Integer Register 0 harte Verdrahtung von 0. Die Variante RV32E für Systeme mit sehr begrenzten Ressourcen hat 15 Ganzzahlregister.
Offenbarung 64 (pro Kern)[26] Jeder Befehl kontrolliert, ob Register als Ganzzahlen oder als einzelne Präzisionsschwimmpunkt interpretiert werden. Die Architektur ist auf 4096 Kerne skalierbar, wobei derzeit 16 und 64 Kernimplementierungen verfügbar sind.

Verwendungszweck

Die Anzahl der für einen Prozessor verfügbaren Register und die Operationen, die mit diesen Registern durchgeführt werden können, hat erhebliche Auswirkungen auf die Effizienz von Code generiert von Compiler optimieren. Das Strahler -Nummer eines Ausdrucksbaums ergibt die minimale Anzahl von Registern, die erforderlich sind, um diesen Expressionsbaum zu bewerten.

Siehe auch

Verweise

  1. ^ "Cray-1 Computer System Hardware Referenzhandbuch" (PDF). Cray Research. November 1977.
  2. ^ "MCS-4 Micro Computer Set Users Manual" (PDF). Intel. Februar 1973.
  3. ^ "8008 8 Bit parallel Zentralprozessoreinheit Benutzer Handbuch" (PDF). Intel. November 1973. Abgerufen 23. Januar, 2014.
  4. ^ "Intel 8080 Microcomputer -System -Benutzerhandbuch" (PDF). Intel. September 1975. Abgerufen 23. Januar, 2014.
  5. ^ "80286 und 80287 Referenzhandbuch des Programmierers" (PDF). Intel. 1987.
  6. ^ a b "Intel 64 und IA-32 Architekturen-Softwareentwicklerhandbücher". Intel. 4. Dezember 2019.
  7. ^ "AMD64 Architekturprogrammierer Handbuch Volume 1: Anwendungsprogrammierung" (PDF). AMD. Oktober 2013.
  8. ^ "Intel Architekturanweisung Set Extensions und zukünftige Funktionen für Programmierreferenz" (PDF). Intel. Januar 2018.
  9. ^ "Intel Xeon Phi Coprozessor Anweisung Set Architektur Referenzhandbuch" (PDF). Intel. 7. September 2012.
  10. ^ F8 Leitfaden zur Programmierung (PDF). Fairchild MOS Microcomputer -Abteilung. 1977.
  11. ^ "NIOS II Classic Processor Reference Guide" (PDF). Altera. 2. April 2015.
  12. ^ "NIOS II Gen2 Prozessor Referenzhandbuch" (PDF). Altera. 2. April 2015.
  13. ^ "M6800 Programmierreferenzhandbuch" (PDF). Motorola. November 1976. Abgerufen 18. Mai, 2015.
  14. ^ "Motorola M68000 Familienprogrammierer Referenzhandbuch" (PDF). Motorola. 1992. Abgerufen 13. Juni, 2015.
  15. ^ "CUDA C -Programmierhandbuch". Nvidia. 2019. Abgerufen 9. Januar, 2020.
  16. ^ Jia, Zhe; Maggioni, Marco; Staiger, Benjamin; Scarpazza, Daniele P. (2018). "Die Nvidia Volta -GPU -Architektur durch Mikrobenchmarking analysiert". Arxiv:1804.06826 [cs.dc].
  17. ^ "IBM Enterprise Systems Architecture/370 und System/370 - Vektoroperationen" (PDF). IBM. SA22-7125-3. Abgerufen 11. Mai, 2020.
  18. ^ "IBM S/390 G5 Mikroprozessor" (PDF).
  19. ^ "MMIX Homepage".
  20. ^ "Serie 32000 Datenbank" (PDF). Nationaler Halbleiter.
  21. ^ "Synergistische Prozessoreinheit Anweisung Set Architecture Version 1.2" (PDF). IBM. 27. Januar 2007.
  22. ^ "Lernen 65816 Montage". Super Famicom Development Wiki. Abgerufen 14. November 2019.
  23. ^ "Verfahrensnotstandard für die ARM -Architektur" (PDF). Armhoteln. 30. November 2013. Abgerufen 27. Mai 2013.
  24. ^ "2.6.2. Das Daumenstaat Register" Set ". ARM7TDMI Technisches Referenzhandbuch. Armhoteln.
  25. ^ "Verfahrensnotstandard für die ARM 64-Bit-Architektur" (PDF). Armhoteln. 22. Mai 2013. Abgerufen 27. Mai 2013.
  26. ^ "Offenbarungsarchitekturreferenz" (PDF).