Frage

Register Variablen sind eine bekannte Art und Weise einen schnellen Zugang zu bekommen (register int i). Aber warum sind Register auf der Spitze der Hierarchie (Register, Cache, Hauptspeicher, einen Sekundärspeicher)? Was sind all die Dinge, die Register so schnell machen zugreifen?

War es hilfreich?

Lösung

Die Register sind ein zentraler Bestandteil der CPU, und ein großer Teil der Befehlssatz einer CPU wird für die Arbeit gegen Register anstatt Speicherstellen angepasst werden. Zugriff auf den Wert eines Registers benötigen in der Regel nur sehr wenige Taktzyklen (wahrscheinlich nur 1), sobald Speicher zugegriffen wird, werden die Dinge komplizierter und Cache-Controller / Speicherbusse einlassen und der Betrieb wird wesentlich mehr Zeit in Anspruch nehmen.

Andere Tipps

Die Register sind Schaltungen, die buchstäblich verdrahtet sind direkt mit der ALU, die die Schaltungen für die Arithmetik enthält. Jeder Taktzyklus kann die Registereinheit des CPU-Kerns speist ein halbes Dutzend oder so Variablen in die anderen Schaltungen. Eigentlich sind die Einheiten innerhalb der Datenweg (ALU, etc.) können Daten füttern direkt miteinander über den Bypass-Netzwerk , die in einer Art und Weise bildet eine Hierarchiestufe über Register - aber immer noch verwenden Register- Zahlen sie zu adressieren. (Der Steuerabschnitt eines vollständig pipeline-CPU Karten dynamisch Datapath Einheiten Nummern zu registrieren.)

Das register Schlüsselwort in C tut nichts nützlich, und Sie sollten es nicht verwenden. Der Compiler entscheidet, welche Variablen in Registern sein sollten und wann.

Die Register sind im Wesentlichen interne CPU-Speicher. So Zugriffe auf Register sind einfacher und schneller als jede andere Art von Speicherzugriffe.

Kleinere Erinnerungen sind in der Regel schneller als die größeren; sie können auch weniger Bits zu Adresse. Ein 32-Bit-Befehlswort kann drei Vier-Bit-Register-Adressen halten und viel Platz für den Operationscode und andere Dinge haben; ein 32-Bit-Speicheradresse würde sonst ein Befehlswort so dass kein Platz für etwas vollständig aufzufüllen. Ferner benötigt die Zeit, einen Speicher mit einer Rate ansteigt als proportionale Größe in das Protokoll des Speichers mehr zu adressieren. ein Wort von einem 4 Gig Speicherplatz Zugriff auf Dutzende, wenn nicht Hunderte Male länger dauern, als man von einer 16-Wort-Registerdatei zugreifen.

Eine Maschine, die die meisten Anfragen von einer kleinen schnellen Registerdatei wird schneller sein als ein handhaben können, die einen langsameren Speicher für alles verwendet.

Jeder Mikrocontroller hat eine CPU als Bill erwähnt, dass die grundlegenden Komponenten der ALU hat, einige RAM sowie andere Formen der Erinnerung mit ihren Operationen zu unterstützen. Der RAM ist das, was Sie sich beziehen, als Hauptspeicher.

Die ALU behandelt alle der arthimetic logischen Operationen und auf beliebigen Operanden zu arbeiten, diese Berechnungen durchzuführen, lädt es die Operanden in die Register, führt die Operationen auf diesen, und dann Ihr Programm greift auf das gespeicherte Ergebnis in diesen Registern direkt oder indirekt .

Da Register der Nähe des Herzen der CPU (a.k.a Gehirn Ihres Prozessors), sie sind höher in der Kette und ofcourse Operationen ausgeführt direkt auf Register, um die geringste Menge an Taktzyklen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top