www.wikidata.de-de.nina.az
Dieser Artikel ist nicht hinreichend mit Belegen beispielsweise Einzelnachweisen ausgestattet Angaben ohne ausreichenden Beleg konnten demnachst entfernt werden Bitte hilf Wikipedia indem du die Angaben recherchierst und gute Belege einfugst Siehe Diskussion Register Prozessor Belege fehlen Register in Prozessoren sind Speicherbereiche fur Daten auf die Prozessoren besonders schnell zugreifen konnen Sie befinden sich direkt in der Nahe der Rechenwerke In einem Prozessorkern stehen Register an der Spitze der Speicherhierarchie und sind daher die schnellste Moglichkeit Daten zu manipulieren da der Zugriff unabhangig vom Daten oder Adressbus erfolgt Viele Architekturen insbesondere RISC Architekturen erlauben Rechenwerken nur die Verarbeitung von Daten in Registern andere Architekturen erlauben zumindest teilweise auch die Nutzung von Nicht Registerinhalten aus dem RAM oder aus Hardware Registern Die Registersatze verschiedener Prozessorarchitekturen unterscheiden sich in der Grosse der Anzahl und der Art der zur Verfugung stehenden Register Einzelne Register haben heutzutage meist die Grosse einer Zweierpotenz d h 8 16 32 64 128 256 oder 512 bit Die Anzahl an Registern pro Kern variiert von funf bis mehrere hundert Die unterschiedlichen Arten von Registern werden im Folgenden beschrieben Inhaltsverzeichnis 1 Registertypen in einem CPU Kern 1 1 Nach Charakteristik 1 2 Nach Anzahl der enthaltenen Datenwerte 1 3 Nach Anwendungsfunktion 1 3 1 Datenregister Akkumulator 1 3 1 1 Frei verwendbare Register 1 3 2 Adressregister 1 3 3 Spezialregister 1 3 4 Stapelregister 1 4 Nach elektrischer Typisierung 2 Ein Ausgaberegister 3 Geschichte 3 1 Benutzung in Hochsprachen 4 WeblinksRegistertypen in einem CPU Kern BearbeitenNach Charakteristik Bearbeiten Hardware Register physisch vorhanden namenlos vgl physische Speicheradresse Architektur Register sind fur die Software sichtbar vgl logische Speicheradresse Bei alten CPUs Z80 Intel 486 sind Hardware und Architektur Register identisch bei moderneren CPUs IBM System 360 Model 91 Pentium Pro AMD K5 Intel Core handelt es sich um unterschiedliche Dinge Nach Anzahl der enthaltenen Datenwerte Bearbeiten Skalare Register enthalten einen einzelnen Datenwert meistens Ganzzahlen die auch als Adressen verwendbar sind Vektor Register Register die mehrere Datenwerte ublicherweise 2 bis 64 als Vektor enthalten Die einzelnen Datenwerte konnen jeweils eine Grosse von 8 Bit bis 64 Bit haben und Ganz oder Gleitkommazahlen sein Nach Anwendungsfunktion Bearbeiten Datenregister Akkumulator Bearbeiten Hauptartikel Akkumulator Computer Datenregister werden benutzt um Operanden fur die ALU und deren Resultate zu speichern Bei alteren Prozessorarchitekturen gab es teilweise nur ein einziges solches Register den Akkumulator Prozessorkerne neuerer Generation besitzen oft mehrere Datenregister mit Akkumulatorfunktion In der Regel ist die Grosse des Datenregisters zusammen mit der Breite des Datenbusses mit ausschlaggebend fur die Einordnung einer Prozessorarchitektur als 8 16 32 oder 64 Bit Architektur Mit 8 Bit Datenbus und 8 Bit Datenregistern wird sie als 8 Bit Architektur bezeichnet z B MOS Technology 6502 oder Zilog Z80 Prozessoren mit unterschiedlicher Grosse von Datenbus und Datenregistern werden haufig entsprechend bezeichnet z B der Motorola 68000 der mit 16 Bit Datenbus und 32 Bit Datenregistern als 16 32 Bit Prozessor bezeichnet wird Die derzeit 2013 neuesten Prozessoren sind meistens 64 Bit Prozessoren z B AMD Opteron bzw AMD Bulldozer oder Intel Prozessoren mit EM64T sowie bereits selten Itanium und Alpha AXP Bei 8 Bit Prozessoren waren Adressbus und register meistens 16 Bit gross Bei den meisten heutigen Prozessoren sind die Adressregister genauso gross wie die Datenregister der Adressbus meistens gleich gross oder kleiner Meistens sind die Datenregister nur mit der ALU verbunden nicht jedoch mit der FPU D h in den meisten Prozessorkernen konnen Datenregister nicht als Operanden fur FPU Operationen verwendet werden In diesem Fall mussen Operanden fur die FPU in speziell dafur vorgesehenen Registern gespeichert werden den Gleitkommaregistern Frei verwendbare Register Bearbeiten In modernen RISC CPUs so PowerPC oder Sun SPARC heissen die Datenregister allgemeine oder frei verwendbare Register englisch GPR fur General Purpose Register da sie sich als Daten oder als Adressregister einsetzen lassen Der Motorola 68000 verfugt in ahnlicher Weise uber acht gleichwertige Datenregister Die 32 Bit Prozessoren der Intel x86 Familie entstammen einer CISC Architektur und besitzen daher weitgehend die Eigenschaften ihrer 8 und 16 Bit Vorgangergenerationen So besitzen sie nur vier allgemeine Register die auch noch mit den Namen aus jener Zeit bezeichnet werden Akkumulator Basisregister Zahlregister Datenregister Auch kann ein Prozessorkern nach wie vor gewisse Operationen nicht auf allen Registern durchfuhren z B konnen Divisionen nur im Akkumulator stattfinden Adressregister Bearbeiten Hauptartikel Adressierung Rechnerarchitektur Die Adressregister spielen eine wichtige Rolle in der Adressarithmetik Sie werden genutzt um Speicheradressen von Operanden oder Befehlen zu berechnen und haben Verbindung mit dem internen Datenbus und dem Adressbus Bei indizierter Adressierung beispielsweise beim Intel 8086 werden zwei Typen von Adressregistern unterschieden die Basisadress Register auch Segmentregister auf die unten bei den Spezialregistern eingegangen wird die Indexregister welche den Offset zu einer Basisadresse speichern Bei linearer Adressierung etwa beim Motorola 68000 gibt es keine solche Unterscheidung Es gibt dort eine Adressierungsart bei der ein Adress und ein Datenregister addiert werden Beim Motorola 68020 kann das Datenregister dabei zusatzlich mit einer fixen Wortbreite multipliziert werden Bei anderen Prozessorarchitekturen bezeichnet man als Indexregister auch das einzige an der Adressbildung beteiligte Register beim Motorola 6800 und beim Zilog Z80 wird eine Konstante addiert beim MOS Technology 6502 werden ein 16 Bit Wert und ein 8 Bit Indexregister addiert Beim 6502 gibt es zusatzlich eine Adressierungsart bei der eines von mehreren Basisadressregistern per Indexregister aus einer Tabelle ausgewahlt werden kann die im RAM abgelegt ist Die genaue Benennung der einzelnen Adressierungsarten ist uneinheitlich und prozessorspezifisch Spezialregister Bearbeiten Neben allgemeinen Registern gibt es auch Spezialregister die den Betriebszustand des Prozessorkerns speichern und Hilfsfunktionen fur ihn erfullen Mit ihnen lassen sich nur Spezialoperationen ausfuhren z B Division oder sie haben ganz spezielle Funktionen Interrupt descriptor table IDT Seitentabelle Spezialregister sind nur teilweise vom Anwender programmierbar Bei den meisten Architekturen sind folgende Spezialregister anzutreffen Befehlszahlregister auch Programmzahler oder Befehlszahler englisch Instruction Pointer IP 16 Bit bzw Extended Instruction Pointer EIP 32 Bit oder program counter PC enthalt je nach Systemarchitektur die Speicheradresse des derzeitigen oder des nachsten auszufuhrenden Befehls ein Sprungbefehl setzt dieses Register auf einen neuen Wert Befehlsregister englisch Instruction register speichert den aktuellen Befehl fur den Programmierer nicht zuganglich Basisregister z B fur die Basisvektortabelle kann von einem Benutzerprogramm neu gesetzt werden Segmentregister eine Spezialitat der x86 Plattform welche die oberen 16 Bit einer 20 Bit Adresse enthalt ihr Inhalt muss also mit 16 multipliziert und dann zu einem segmentinternen Offset addiert werden um die endgultige Speicheradresse zu erreichen auf diese Weise konnten mit reinen 16 Bit Registerladebefehlen 20 Bit Adressraum abgedeckt werden also 1 MiB Statusregister englisch Condition Code Register CCR oder auch Processor Status Word PSW oder Flagregister gibt bestimmte Zustande nach Ausfuhrung eines Befehls an bspw Zero Flag Vorzeichen Flag etc ein Benutzerprogramm initialisiert einzelne Flags z B vor arithmetischen Operationen Interrupt Steuerregister englisch Interrupt Control Register Bei komplexeren CPUs wo diese Funktionalitat nicht mit einem oder zwei Bits im Statusregister s o abgehandelt werden kann kann hieruber sehr differenziert vorgegeben werden auf welche Interrupts uberhaupt bzw mit welcher Prioritat reagiert werden soll Durch Lesen kann die Software herausfinden welcher der verschiedenen Interrupts uberhaupt vorliegt Durch Schreiben kann sie temporar z B einzelne Interrupts sperren die wahrend einer bestimmten Operation storen wurden Der Refreshzahler der Z80 ein automatischer Zahler der die Refresh Adressen des Speichers generiert und von einigen Programmen als Pseudo Zufallszahlengenerator verwendet wird gehort ebenfalls in diese Kategorie Einige Mikrocontroller Intel MCS 51 Familie sowie Siemens C167 Familie organisieren diese Spezialregister und die Register zur Kontrolle der internen I O Ports in Form einer Registerbank die sich mittels Memory Mapped I O mit den gewohnlichen Befehlen fur den Arbeitsspeicherzugriff ansprechen lasst Der durch diese Registerbank verdeckte Arbeitsspeicher lasst sich entweder gar nicht oder nur indirekt ansprechen Stapelregister Bearbeiten Die Stapelregister auch Stapelzeiger oder Stackpointer aus englisch stack pointer kurz SP sind Adressregister zur Verwaltung von Stapelspeichern auch Kellerspeicher oder nur Stack genannt Ein Stapelspeicher wird von einem Stapelregister nach dem LIFO Prinzip organisiert und kann mit Push oder Pop Operationen gefullt oder geleert werden Dabei zeigt das Stapelregister immer auf die Speicheradresse am Ende des Stapelspeichers je nach Architektur auf oder zumeist hinter das letzte Element Auf den meisten heutigen Architekturen existieren ein System Stack den das Betriebssystem nutzt zur Sicherung und Restauration des Prozessorstatus bei der Prozessumschaltung ein Anwender Stack Aufrufstapel der vom Anwendungsprogramm frei genutzt werden kann Bei Aufruf eines Unterprogramms Prozedur Subroutine wird zunachst die Rucksprungadresse auf dem Stack vermerkt an der das aufrufende Programm fortgesetzt werden soll wenn das Unterprogramm beendet ist Zusatzlich kann dynamisch ein separater Stackbereich fur die Aufruf Ruckgabe sowie lokalen Variablen des Unterprogramms angelegt werden der nach Beendigung wieder freigegeben wird Nach elektrischer Typisierung Bearbeiten nbsp 8 Bit Register zusammengesetzt aus D Flipflopseinfache Latches die einzelne Bits speichern konnen und sie zum Lesen ausgeben das sind die meisten Register Status Parallel I O Datenregister Mehrbit Zahlerregister die daruber hinaus auf einen Impuls hin ihren Inhalt um 1 vergrossern oder verkleinern Beispiele der Programmzahler das Stackregister und Timer Register Schieberegister kommen vor allem in der ALU einer CPU oder einem numerischen Koprozessor vor dort erfullen sie u a Teilfunktionen bei Multiplikationen und Divisionen Ein Ausgaberegister BearbeitenNeben Pufferplatzen in der Zentraleinheit des Rechnersystems konnen Register auch in der Elektronik angeschlossener Peripheriegerate oder chips auftreten aber auch die CPU selbst kann uber integrierte Ein Ausgaberegister verfugen Sie lassen sich in der Regel in die gleichen Unterkategorien einteilen wie die o g reinen CPU Register Ein paar reprasentative Beispiele Die Statusregister der Steuerwerke der externen Massenspeicher umfassen neben Status und Datenregistern in der Regel Adressregister die sich auf Adressangaben des Massenspeichers beziehen heute meistens Sektornummern In Video Chips steuern die Bits in den Statusregistern z B die verschiedenen Video Modi Datenregister konnen z B Sprite Daten enthalten Bei einer parallelen Schnittstelle enthalt ein Datenregister die eigentlichen Druckdaten und ein Statusregister die Handshake Bits Oft gibt es hier zusatzlich ein Statusregister namens DDR fur data direction register uber das die Datenrichtung Ein oder Ausgang der Datenleitungen programmiert werden kann z B bei bidirektionaler Verwendung Diese I O Register sind haufig uber Portnummern als I O Ports auch vom Programm der Zentraleinheit erreichbar oder werden in den Adressraum des Hauptspeichers eingeblendet Memory Mapped I O Je nach Sichtweise hat sich dabei dennoch die begriffliche Unterscheidung von Speicherplatzen in den RAM Speicherbanken und Registerplatzen an Logikbausteinen erhalten Geschichte BearbeitenBereits beim ersten Computer der Zuse Z3 von 1941 und ihrem Vorganger der Zuse Z1 von 1938 sind als Operanden fur die arithmetischen Operationen im Rechenwerk zwei Speicherstellen R1 und R2 in der Wortgrosse der Maschine vorhanden Zum Datenaustausch Laden und Speichern zwischen diesen Registern und dem vom Rechenwerk getrennt zu sehenden Speicherwerk sind spezielle Maschinenbefehle implementiert Die Entwicklung der Register ist also eng verknupft mit der technischen Entwicklung des Arbeitsspeichers der fruhesten Computer Die ersten Computer hatten gar keinen Arbeitsspeicher im heutigen Sinne Samtliche Daten und das Programm selbst waren auf ganzlich anderen Medien wie zum Beispiel mechanische Speicher Lochkarten und magnetischen Trommelspeichern abgelegt Damit das Rechenwerk eine Operation ausfuhren konnte mussten vom Massenspeicher Worte in die Pufferstellen des Rechenwerks ubertragen werden die einen Wert in die Schaltlogik abgeben konnten Der am Ausgang der Schaltlogik entstehende Wert musste wieder gepuffert werden bis er auf den Massenspeicher ausgeschrieben werden konnte Ebendiese Pufferplatze nannte man Register von lateinisch regesta aus regerere eintragen Schon fruh erkannte man dass der Programmablauf optimiert werden konnte wenn man Zwischenwerte auch uber einige wenige Operationen hinweg puffern konnte und etwa in der ubernachsten Operation aufaddieren konnte So wurden aus Einzelregistern ein Registersatz die zuerst ebenfalls noch aus Rohren oder Relais bestanden mit fortschreitender technischer Entwicklung dann aber durch Ferritkernspeicher ersetzt wurden Die damit mogliche Adressberechnung fur den Kernspeicher fuhrte zu einer Aufspaltung der Begriffe die Nennung als Register meint weiterhin Pufferplatze deren Ort im Befehlscode des Rechenwerks hart codiert ist wahrend der Kernspeicher uber Indexregister indirekt adressiert wird Zur Zeit der Kernspeicher waren die Datenwerte im Arbeitsspeicher noch direkt mit dem Rechenwerk verknupft Ein Befehlscode enthielt neben Rechenregistern deren Wert direkt in die Rechenlogik einging die codierte Angabe von Indexregistern deren Wert auf die Adressleitungen des Kernspeichers gelegt wurde und der ausgehende Wert der Ferritkerne dann in die Rechenlogik gefuhrt wird Der Kernspeicher konnte dabei einige tausend Platze umfassen Mit immer schnellerem Rechenwerk und dem Ubergang zu billigerem aber langsameren Hauptspeicher auf Basis von Kondensatoren dynamischer RAM wurden wieder Pufferplatze notwendig bei dem Werte aus dem Hauptspeicher erst in Registerplatze am Rechenwerk kopiert werden um von dort verarbeitet zu werden Benutzung in Hochsprachen Bearbeiten Einige Hochsprachen wie C sahen die explizite Benutzung von Registern fur Variablen vor die laut Vorstellungen des Programmierers besonders haufig benutzt werden Moderne Compiler seit Mitte der 1990er Jahre ignorieren diese Attribute und uberlassen die Zuweisung von Konstanten Variablen oder Teilausdrucken dem Optimierer Mit der Programmiersprache C ist seit C 11 die Deklaration von register Variablen mittels des gleichnamigen Schlusselworts als veraltet deprecated erklart seit C 17 ist die Unterstutzung ganzlich weggefallen Weblinks Bearbeiten nbsp Commons Prozessorregister Sammlung von Bildern Videos und Audiodateien Normdaten Sachbegriff GND 4359667 8 lobid OGND AKS Abgerufen von https de wikipedia org w index php title Register Prozessor amp oldid 235800383