DE102013210640A1 - Computer program product for modifying associated value of logical address in computing unit, includes instructions for mapping logical address to memory location in register allocator by special register identifier - Google Patents
Computer program product for modifying associated value of logical address in computing unit, includes instructions for mapping logical address to memory location in register allocator by special register identifier Download PDFInfo
- Publication number
- DE102013210640A1 DE102013210640A1 DE201310210640 DE102013210640A DE102013210640A1 DE 102013210640 A1 DE102013210640 A1 DE 102013210640A1 DE 201310210640 DE201310210640 DE 201310210640 DE 102013210640 A DE102013210640 A DE 102013210640A DE 102013210640 A1 DE102013210640 A1 DE 102013210640A1
- Authority
- DE
- Germany
- Prior art keywords
- register
- instruction
- constant value
- identifier
- computer program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 230000015654 memory Effects 0.000 title claims abstract description 73
- 238000004590 computer program Methods 0.000 title claims description 31
- 238000013507 mapping Methods 0.000 title description 6
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000006870 function Effects 0.000 claims description 17
- 238000010586 diagram Methods 0.000 description 13
- 230000009471 action Effects 0.000 description 6
- 239000000463 material Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
QUERVERWEIS AUF ZUGEHÖRIGE ANMELDUNGENCROSS-REFERENCE TO RELATED APPLICATIONS
Diese Anmeldung stellt eine Fortsetzung der am 15. Juni 2012 eingereichten, nicht vorläufigen US-Anmeldung 13/524.471 mit dem Titel „SPECIAL REGISTER UPDATE WITHOUT EXECUTION” dar, die durch Bezugnahme vollständig hierin aufgenommen wird.This application is a continuation of US Provisional Application 13 / 524,471, filed on Jun. 15, 2012, entitled "SPECIAL REGISTER UPDATE WITHOUT EXECUTION", which is incorporated herein by reference in its entirety.
HINTERGRUNDBACKGROUND
Die vorliegende Erfindung betrifft allgemein das Aktualisieren von Registern und genauer das Verarbeiten des Aktualisierens von durch eine Ausführungseinheit verwendeten Registern ohne Notwendigkeit einer Verarbeitung durch die Ausführungseinheit.The present invention relates generally to updating registers, and more particularly to processing the updating of registers used by an execution unit without the need for processing by the execution unit.
Die Verarbeitung in modernen Computern umfasst im Grunde die Manipulation von Daten durch eine Ausführungseinheit. Die Ausführungseinheit kann speziell zugewiesene Register besitzen, von denen sie Operanden (Quellen) für die Manipulation empfangen und auf die sie die Ergebnisse (Ziele) der Manipulation speichern kann. Zum Beispiel wird angenommen, dass die Ausführungseinheit zwei Werte miteinander addieren muss, um ein Ergebnis zu erzeugen. In Symbolen ausgedrückt kann diese Manipulation die Form {A = B + C} annehmen. Um korrekt funktionieren zu können, müssen die Werte von B und C aus den der Ausführungseinheit zugewiesen Registern in die Ausführungseinheit gebracht werden. Darüber hinaus muss die Ausführungseinheit wissen, wo sie das Ergebnis speichern soll. Damit jedes dieser Ereignisse geschehen kann, wird eine Zuordnung von Registern verwendet, um eine logische Adresse (z. B. A, B, C) in eine physische Adresse umzuwandeln, die eines der Register angibt.Processing in modern computers basically involves the manipulation of data by an execution unit. The execution unit may have dedicated registers from which it can receive operands (sources) for manipulation and to which it can store the results (targets) of the manipulation. For example, it is assumed that the execution unit must add two values together to produce a result. Expressed in symbols, this manipulation can take the form {A = B + C}. To work correctly, the values of B and C must be put into the execution unit from the registers assigned to the execution unit. In addition, the execution unit needs to know where to store the result. In order for each of these events to occur, an allocation of registers is used to convert a logical address (eg, A, B, C) to a physical address indicating one of the registers.
Während Speicher in Rechensystemen viel kleiner und günstiger geworden ist, gibt es nach wie vor Einschränkungen bei der Menge an Speicher (z. B. der Größe eines Registerspeichers), die einer bestimmten Funktionseinheit zugewiesen werden kann. Dies bedeutet, dass einer bestimmten Ausführungseinheit üblicherweise eine kleine Zahl von Registern zugewiesen ist. Daher ist es wichtig, diese Register effizient zu nutzen.While memory in computing systems has become much smaller and cheaper, there are still limitations on the amount of memory (eg, the size of a register memory) that can be allocated to a particular functional unit. This means that a certain execution unit is usually assigned a small number of registers. Therefore, it is important to use these registers efficiently.
KURZDARSTELLUNGSUMMARY
Eine Ausführungsform richtet sich auf ein Computerprogrammprodukt zum Ändern eines Wertes, der einer logischen Adresse in einer Recheneinheit zugehörig ist, die einen Anweisungsdecodierer, einen Registerzuordner, eine Ausführungseinheit und einen der Ausführungseinheit zugehörigen physischen Registerspeicher enthält. Das Computerprogrammprodukt enthält ein gegenständliches Speichermedium, das durch eine Verarbeitungsschaltung lesbar ist und Anweisungen zum Durchführen eines Verfahrens zur Ausführung durch die Verarbeitungsschaltung speichert. Das Verfahren beinhaltet: Empfangen einer Anweisung durch einen Anweisungsdecodierer, wobei die Anweisung ein als ein logischer Wert ausgedrücktes Zielregister enthält; Feststellen durch einen Anweisungsdecodierer, dass ein Ergebnis der Anweisung das Zielregister auf einen konstanten Wert setzen soll, wobei sich das Zielregister in einem physischen Registerspeicher befindet, der einer Ausführungseinheit zugehörig ist; und in einem Registerzuordner Zuordnen der logischen Adresse zu einem durch eine spezielle Registerkennung wiedergegebenen Speicherort.One embodiment is directed to a computer program product for changing a value associated with a logical address in a computing unit that includes an instruction decoder, a register mapper, an execution unit, and a physical register memory associated with the execution unit. The computer program product includes a subject storage medium readable by a processing circuit and storing instructions for performing a method of execution by the processing circuit. The method includes: receiving an instruction by an instruction decoder, the instruction including a destination register expressed as a logical value; Determining, by an instruction decoder, that a result of the instruction is to set the destination register to a constant value, the destination register being in a physical register memory associated with an execution unit; and in a register allocator, associating the logical address with a storage location represented by a specific register identifier.
Eine weitere Ausführungsform richtet sich auf ein Verfahren zum Ändern eines Wertes, der einer logischen Adresse in einer Recheneinheit zugehörig ist, die einen Anweisungsdecodierer, einen Registerzuordner, eine Ausführungseinheit und einen der Ausführungseinheit zugehörigen physischen Registerspeicher enthält. Das Verfahren dieser Ausführungsform beinhaltet: Empfangen einer Anweisung durch einen Anweisungsdecodierer, wobei die Anweisung ein als ein logischer Wert ausgedrücktes Zielregister enthält; Feststellen durch einen Anweisungsdecodierer, dass ein Ergebnis der Anweisung das Zielregister auf einen konstanten Wert setzen soll, wobei sich das Zielregister in einem physischen Registerspeicher befindet, der einer Ausführungseinheit zugehörig ist; und in einem Registerzuordner Zuordnen der logischen Adresse zu einem durch eine spezielle Registerkennung wiedergegebenen Speicherort.Another embodiment is directed to a method of changing a value associated with a logical address in a computing unit that includes an instruction decoder, a register mapper, an execution unit, and a physical register memory associated with the execution unit. The method of this embodiment includes: receiving an instruction by an instruction decoder, the instruction including a destination register expressed as a logical value; Determining, by an instruction decoder, that a result of the instruction is to set the destination register to a constant value, the destination register being in a physical register memory associated with an execution unit; and in a register allocator, associating the logical address with a storage location represented by a specific register identifier.
Weitere Merkmale und Vorteile der Erfindung werden durch die Techniken der vorliegenden Offenbarung verwirklicht. Weitere Ausführungsformen und Aspekte werden hierin detailliert beschrieben und als Teil der beanspruchten Erfindung angesehen. Für ein besseres Verständnis der Offenbarung mit Vorteilen und Merkmalen sind die Beschreibung und die Zeichnungen heranzuziehen.Other features and advantages of the invention will be realized by the techniques of the present disclosure. Further embodiments and aspects are described in detail herein and are considered part of the claimed invention. For a better understanding of the disclosure with advantages and features, the description and drawings are to be consulted.
KURZBESCHREIBUNG DER MEHREREN ZEICHNUNGSANSICHTENBRIEF DESCRIPTION OF THE SEVERAL DRAWING VIEWS
Der als Ausführungsformen betrachtete Gegenstand wird besonders in den Ansprüchen am Ende des Dokuments dargelegt und klar beansprucht. Die vorhergehenden und weitere Merkmale und Vorteile der Ausführungsformen werden anhand der folgenden detaillierten Beschreibung in Verbindung mit den angehängten Zeichnungen ersichtlich, in denen:The subject matter considered as embodiments is particularly pointed out and clearly claimed in the claims at the end of this document. The foregoing and other features and advantages of the embodiments will become apparent from the following detailed description, taken in conjunction with the accompanying drawings, in which:
DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION
Unter Bezugnahme auf
Der Betrieb des Systems
Der Anweisungsdecodierer
Es wird zum Beispiel die Anweisung XR R1, R1 betrachtet. In diesem Fall ist eine logische Adresse (R1) per Exklusiv-ODER mit sich selbst verknüpft. Das Ergebnis einer solchen Operation führt dazu, dass R1 auf Null gesetzt wird, und zu einem Bedingungscodewert von Null in diesem Fall werden die Quelle (logische Adresse R1) und das Ziel (erneut R1) einem Registerzuordner
Die Informationen aus dem Anweisungsdecodierer
Wie anhand des Vorhergehenden ersichtlich wird, erzeugen normale Aktualisierungen eines (durch die Anweisung angegebenen) logischen Registerspeicherortes eine neue Zuordnung in dem physischen Registerspeicher
Es gibt manche Fälle, in denen anhand der Anweisung (z. B. durch den Spezialfall-Teilblock
Ein Beispiel ist veranschaulichend. Es wird erneut der Fall betrachtet, in dem die Anweisung „{XR, R1, R1}” lautet. Das Ergebnis der Operation ist, recht einfach, allen Bits von R1 den Wert „0” zuzuweisen und den Bedingungscode auf Null zu setzen. Wird das System wie vorstehend beschrieben betrieben, müsste die Ausführungseinheit
In Block
In Block
Eine weitere Ausführungsform kann ein im Wesentlichen gleiches Ergebnis erreichen, ohne dass erforderlich ist, Registern in dem physischen Registerspeicher tatsächlich einen bestimmten Wert zuzuweisen. In solch einem Fall weist der Registerzuordner
Unter erneuter Bezugnahme auf
In diesem Beispiel ist der Registerspeicher
Es wird derjenige Fall betrachtet, in dem die Quellenadresse
In Block
In Block
Wie für den Fachmann ersichtlich ist, können ein oder mehrere Aspekte der vorliegenden Erfindung als System, Verfahren, oder Computerprogrammprodukt ausgebildet werden. Dementsprechend können ein oder mehrere Aspekte der vorliegenden Erfindung in Form einer vollständigen Hardwareausführungsform, einer vollständigen Softwareausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder in einer Ausführungsform ausgebildet sein, die Software- und Hardwareaspekte kombiniert, was hierin sämtlich allgemein als „Schaltung”, „Modul” oder „System” bezeichnet sein kann. Weiterhin können ein oder mehrere Aspekte der vorliegenden Erfindung in Form eines Computerprogrammprodukts ausgebildet werden, das in einem oder mehreren computerlesbaren Medien mit darauf enthaltenem computerlesbarem Programmcode enthalten sein kann.As one of ordinary skill in the art appreciates, one or more aspects of the present invention may be embodied as a system, method, or computer program product. Accordingly, one or more aspects of the present invention may be embodied as a complete hardware embodiment, a complete software embodiment (including firmware, resident software, microcode, etc.), or in an embodiment that combines software and hardware aspects, collectively referred to herein as "circuitry , "Module" or "system". Furthermore, one or more aspects of the present invention may be embodied in the form of a computer program product that may be included in one or more computer readable media having computer readable program code embodied thereon.
Jede beliebige Kombination aus einem oder mehreren computerlesbaren Medien kann verwendet werden. Bei dem computerlesbaren Medium kann es sich um ein computerlesbares Speichermedium handeln. Bei dem computerlesbaren Speichermedium kann es sich zum Beispiel, ohne darauf beschränkt zu sein, um ein System, eine Vorrichtung oder eine Einheit elektronischer, magnetischer, optischer, elektromagnetischer oder Infrarot oder Halbleiter verwendender Art sowie eine beliebige geeignete Kombination des Vorhergehenden handeln. Speziellere Beispiele für das computerlesbare Speichermedium schließen Folgendes ein (eine nicht erschöpfende Liste): eine elektrische Verbindung mit einer oder mehreren Leitungen, eine transportable Computerdiskette, eine Festplatte, einen Speicher mit wahlfreiem Zugriff (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen Lichtwellenleiter, einen transportablen Nur-Lese-Compact-Disk-Speicher (CD-ROM), eine optische Speichereinheit, eine magnetische Speichereinheit oder eine beliebige geeignete Kombination des Vorhergehenden. im Kontext dieses Dokuments kann es sich bei einem computerlesbaren Speichermedium um jedes gegenständliche Medium handeln, das ein Programm zur Verwendung durch oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Ausführung von Anweisungen beinhalten oder speichern kann.Any combination of one or more computer-readable media may be used. The computer readable medium may be a computer readable storage medium. For example, the computer-readable storage medium may be, but is not limited to, a system, device or unit of electronic, magnetic, optical, electromagnetic or infrared or semiconductor-use type, and any suitable combination of the foregoing. More specific examples of the computer-readable storage medium include (a non-exhaustive list): an electrical connection to one or more lines, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM). , an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable read-only compact disk (CD-ROM), an optical storage unit, a magnetic storage unit, or any suitable combination of the previous. In the context of this document, a computer readable storage medium may be any subject medium that may include or store a program for use by or in connection with a system, apparatus, or instruction execution unit.
Unter Bezugnahme auf
Auf einem gegenständlichen Medium (einschließlich, jedoch nicht beschränkt auf elektronische Speichermodule (RAM), Flash-Speicher, Compact Disks (CDs), DVDs, Magnetband und Ähnliches) erzeugter und gespeicherter Programmcode wird oft als ein „Computerprogrammprodukt” bezeichnet. Das Computerprogrammprodukt-Medium ist üblicherweise durch eine Verarbeitungsschaltung vorzugsweise in einem Computersystem zur Ausführung durch die Verarbeitungseinheit lesbar. Solcher Programmcode kann zum Beispiel mithilfe eines Kompilierers oder Assemblers erzeugt werden, um Anweisungen zusammenzustellen, die bei Ausführung Aspekte der Erfindung durchführen.Program code generated and stored on a subject medium (including, but not limited to, electronic memory modules (RAM), flash memories, compact discs (CDs), DVDs, magnetic tape, and the like) is often referred to as a "computer program product." The computer program product medium is usually readable by a processing circuit preferably in a computer system for execution by the processing unit. Such code can be generated, for example, using a compiler or assembler for instructions when performing perform aspects of the invention.
Eine Ausführungsform richtet sich auf ein Computerprogrammprodukt zum Ändern eines Wertes, der einer logischen Adresse in einer Recheneinheit zugehörig ist, die einen Anweisungsdecodierer, einen Registerzuordner, eine Ausführungseinheit und einen der Ausführungseinheit zugehörigen physischen Registerspeicher enthält. Das Computerprogrammprodukt enthält ein gegenständliches Speichermedium, das durch eine Verarbeitungsschaltung lesbar ist und Anweisungen zum Durchführen eines Verfahrens zur Ausführung durch die Verarbeitungsschaltung speichert. Das Verfahren beinhaltet: Empfangen einer Anweisung durch einen Anweisungsdecodierer, wobei die Anweisung ein als ein logischer Wert ausgedrücktes Zielregister enthält; Feststellen durch einen Anweisungsdecodierer, dass ein Ergebnis der Anweisung das Zielregister auf einen konstanten Wert setzen soll, wobei sich das Zielregister in einem physischen Registerspeicher befindet, der einer Ausführungseinheit zugehörig ist; und in einem Registerzuordner Zuordnen der logischen Adresse zu einem durch eine spezielle Registerkennung wiedergegebenen Speicherort.One embodiment is directed to a computer program product for changing a value associated with a logical address in a computing unit that includes an instruction decoder, a register mapper, an execution unit, and a physical register memory associated with the execution unit. The computer program product includes a subject storage medium readable by a processing circuit and storing instructions for performing a method of execution by the processing circuit. The method includes: receiving an instruction by an instruction decoder, the instruction including a destination register expressed as a logical value; Determining, by an instruction decoder, that a result of the instruction is to set the destination register to a constant value, the destination register being in a physical register memory associated with an execution unit; and in a register allocator, associating the logical address with a storage location represented by a specific register identifier.
In einer Ausführungsform enthält das Computerprogrammprodukt zudem Anweisungen, die veranlassen, dass das Verfahren weiterhin ein Zuweisen eines unveränderlichen konstanten Wertes zu einem oder mehreren der Register in dem physischen Registerspeicher beinhaltet. In dieser Ausführungsform ist die spezielle Registerkennung gleich einer Adresse des Registers in dem physischen Registerspeicher mit einem unveränderlichen konstanten Wert gleich dem konstanten Wert.In one embodiment, the computer program product further includes instructions that cause the method to further include assigning a fixed constant value to one or more of the registers in the physical register memory. In this embodiment, the particular register identifier is equal to an address of the register in the physical register memory having a fixed constant value equal to the constant value.
In einer Ausführungsform ist der durch die spezielle Registerkennung wiedergegebene Speicherort nicht in dem physischen Registerspeicher enthalten.In one embodiment, the memory location represented by the particular register identifier is not included in the physical register memory.
In einer Ausführungsform des Computerprogrammprodukts ist die spezielle Registerkennung gleich dem konstanten Wert oder kann in diesen umgewandelt werden.In one embodiment of the computer program product, the particular register identifier is equal to or may be converted to the constant value.
In einer Ausführungsform enthält das Computerprogrammprodukt zudem Anweisungen, die veranlassen, dass das Verfahren weiterhin beinhaltet: Empfangen einer Anweisung, die ein Abrufen eines Werts aus dem Zielregister erfordert; Umwandeln der speziellen Registerkennung in den konstanten Wert mithilfe der Hash-Funktion; und Bereitstellen des konstanten Wertes für die Ausführungseinheit.In one embodiment, the computer program product further includes instructions that cause the method to further include: receiving an instruction that requires retrieving a value from the destination register; Converting the special register identifier to the constant value using the hash function; and providing the constant value for the execution unit.
In einer Ausführungsform des Computerprogrammprodukts wird die spezielle Registerkennung unabhängig von der Ausführungseinheit zugewiesen.In one embodiment of the computer program product, the specific register identifier is assigned independently of the execution unit.
In einer Ausführungsform des Computerprogrammprodukts enthält das System weiterhin eine Ausgabewarteschlange, und die spezielle Registerkennung wird unabhängig von der Ausgabewarteschlange zugewiesen.In one embodiment of the computer program product, the system further includes an output queue, and the particular register identifier is assigned independently of the output queue.
Eine weitere Ausführungsform richtet sich auf ein Verfahren zum Ändern eines Wertes, der einer logischen Adresse in einer Recheneinheit zugehörig ist, die einen Anweisungsdecodierer, einen Registerzuordner, eine Ausführungseinheit und einen der Ausführungseinheit zugehörigen physischen Registerspeicher enthält. Das Verfahren dieser Ausführungsform beinhaltet: Empfangen einer Anweisung durch einen Anweisungsdecodierer, wobei die Anweisung ein als ein logischer Wert ausgedrücktes Zielregister enthält; Feststellen durch einen Anweisungsdecodierer, dass ein Ergebnis der Anweisung das Zielregister auf einen konstanten Wert setzen soll, wobei sich das Zielregister in einem physischen Registerspeicher befindet, der einer Ausführungseinheit zugehörig ist; und in einem Registerzuordner Zuordnen der logischen Adresse zu einem durch eine spezielle Registerkennung wiedergegebenen Speicherort.Another embodiment is directed to a method of changing a value associated with a logical address in a computing unit that includes an instruction decoder, a register mapper, an execution unit, and a physical register memory associated with the execution unit. The method of this embodiment includes: receiving an instruction by an instruction decoder, the instruction including a destination register expressed as a logical value; Determining, by an instruction decoder, that a result of the instruction is to set the destination register to a constant value, the destination register being in a physical register memory associated with an execution unit; and in a register allocator, associating the logical address with a storage location represented by a specific register identifier.
In einer Ausführungsform enthält das Verfahren weiterhin ein Zuweisen eines unveränderlichen konstanten Wertes zu einem oder mehreren der Register in dem physischen Registerspeicher. In dieser Ausführungsform ist die spezielle Registerkennung gleich einer Adresse des Registers in dem physischen Registerspeicher mit einem unveränderlichen konstanten Wert gleich dem konstanten Wert.In one embodiment, the method further includes assigning a fixed constant value to one or more of the registers in the physical register memory. In this embodiment, the particular register identifier is equal to an address of the register in the physical register memory having a fixed constant value equal to the constant value.
In einer Ausführungsform des Verfahrens ist der durch die spezielle Registerkennung wiedergegebenen Speicherort nicht in dem physischen Registerspeicher enthalten.In one embodiment of the method, the memory location represented by the particular register identifier is not included in the physical register memory.
In einer Ausführungsform des Verfahrens ist die spezielle Registerkennung gleich dem konstanten Wert oder kann in diesen umgewandelt werden.In one embodiment of the method, the particular register identifier is equal to or may be converted to the constant value.
In einer Ausführungsform des Verfahrens beinhaltet das Verfahren weiterhin ein Empfangen einer Anweisung, die ein Abrufen eines Wertes aus dem Zielregister erfordert; ein Umwandeln der speziellen Registerkennung in den konstanten Wert mithilfe einer Hash-Funktion; und ein Bereitstellen des konstanten Wertes an die Ausführungseinheit.In one embodiment of the method, the method further includes receiving an instruction that requires retrieving a value from the destination register; converting the special register identifier to the constant value using a hash function; and providing the constant value to the execution unit.
In einer Ausführungsform des Verfahrens wird die spezielle Registerkennung unabhängig von der Ausführungseinheit zugewiesen.In one embodiment of the method, the specific register identifier is assigned independently of the execution unit.
In einer Ausführungsform des Verfahrens enthält das System weiterhin eine Ausgabewarteschlange, und die spezielle Registerkennung wird unabhängig von der Ausgabewarteschlange zugewiesen.In one embodiment of the method, the system further includes an output queue and the particular register identifier becomes assigned independently of the output queue.
Eine weitere Ausführungsform richtet sich auf ein System, das eine Ausführungseinheit und einen der Ausführungseinheit zugehörigen physischen Registerspeicher enthält. Das System enthält einen Anweisungsdecodierer, der eine Anweisung empfängt. Die Anweisung enthält ein als ein logischer Wert ausgedrücktes Zielregister, und der Anweisungsdecodierer enthält Logik, die eingerichtet ist, festzustellen, dass ein Ergebnis der Anweisung das Zielregister auf einen konstanten Wert setzen soll. Das System enthält zudem einen Registerzuordner, der das Zielregister einem durch eine spezielle Registerkennung wiedergegebenen Speicherort zuordnet.Another embodiment is directed to a system including an execution unit and a physical register memory associated with the execution unit. The system includes an instruction decoder that receives an instruction. The instruction includes a destination register expressed as a logical value, and the instruction decoder includes logic adapted to determine that a result of the instruction should set the destination register to a constant value. The system also includes a register mapper that maps the destination register to a storage location represented by a specific register identifier.
In einer Ausführungsform des Systems sind ein oder mehrere der Register in dem physischen Registerspeicher einem unveränderlichen konstanten Wert zugeordnet, und die spezielle Registerkennung verweist auf das Register in dem physischen Registerspeicher mit einem unveränderlichen konstanten Wert gleich dem konstanten Wert.In one embodiment of the system, one or more of the registers in the physical register memory are associated with a fixed constant value, and the particular register identifier references the register in the physical register memory with a fixed constant value equal to the constant value.
In einer Ausführungsform des Systems verweist die spezielle Registerkennung auf eine Adresse, die nicht in dem physischen Registerspeicher enthaften ist.In one embodiment of the system, the particular register identifier refers to an address that is not included in the physical register memory.
In einer Ausführungsform des Systems ist die spezielle Registerkennung gleich dem konstanten Wert oder kann in diesen umgewandelt werden.In one embodiment of the system, the particular register identifier is equal to or may be converted to the constant value.
In einer Ausführungsform des Systems ist der physische Registerspeicher weiterhin eingerichtet, die spezielle Registerkennung mithelfe einer Hash-Funktion in den konstanten Wert umzuwandeln und den konstanten Wert der Ausführungseinheit bereitzustellen, wenn durch den Anweisungsdecodierer eine weitere Anweisung empfangen wird, die das Zielregister enthält.In one embodiment of the system, the physical register memory is further configured to use a hash function to convert the particular register identifier to the constant value and to provide the constant value of the execution unit when the instruction decoder receives another instruction containing the destination register.
Zu technischen Wirkungen und Vorteilen zählt ein Verringern der Anzahl von Operationen der Ausführungseinheit, die erforderlich sind, um einen logischen Wert auf eine Konstante zu setzen.Technical effects and advantages include reducing the number of execution unit operations required to set a logical value to a constant.
Die hierin verwendete Terminologie dient lediglich dem Zwecke des Beschreibens besonderer Ausführungsformen und ist nicht als die Ausführungsformen einschränkend aufzufassen. Die hierin verwendeten Singularformen „ein”, „eine” und „der”, „die”, „das” sowie deren Deklinationen sollen ebenso die Pluralformen einschließen, es sei denn dies ist im Kontext deutlich anderweitig angegeben. Es versteht sich weiterhin, dass die Begriffe „aufweist” und/oder „aufweisend” in diesem Dokument das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Vorgängen, Elementen und/oder Komponenten angeben, jedoch nicht das Vorhandensein oder Hinzufügen eines oder mehrerer Merkmale, ganzer Zahlen, Schritte, Vorgänge, Elemente, Komponenten und/oder Gruppen davon ausschließen.The terminology used herein is for the purpose of describing particular embodiments only and is not to be construed as limiting the embodiments. The singular forms "a", "an" and "the", "the", "the" and their declinations as used herein are also to include the plural forms unless clearly stated otherwise in the context. It is further understood that the terms "having" and / or "comprising" in this document indicate the presence of specified features, integers, steps, acts, elements, and / or components, but not the presence or addition of one or more features , exclude integers, steps, operations, elements, components and / or groups thereof.
Die entsprechenden Strukturen, Materialien, Handlungen und Entsprechungen aller Mittel oder Schritte sowie Funktionselemente in den nachfolgenden Ansprüchen sollen alle Strukturen, Materialien oder Handlungen zum Durchführen der Funktion in Kombination mit anderen beanspruchten Elementen, wie sie im Einzelnen beansprucht sind, einschließen. Die Beschreibung der vorliegenden Ausführungsformen wurde zum Zwecke der Veranschaulichung und Beschreibung vorgelegt, ist jedoch nicht als erschöpfend oder auf die Ausführungsformen in der offenbarten Form beschränkt aufzufassen. Viele Modifikationen und Variationen sind für den Fachmann naheliegend, ohne vom Umfang und Geist der Ausführungsformen abzuweichen. Die Ausführungsformen wurden gewählt, um die Grundgedanken und die praktische Anwendung am besten zu beschreiben und anderen Fachleuten das Verständnis der Ausführungsformen mit vielfältigen Änderungen wie sie für den speziellen betrachteten Gebrauch geeignet sind zu ermöglichen.The corresponding structures, materials, acts and equivalents of all means or steps and functional elements in the following claims are intended to include all structures, materials or acts for performing the function in combination with other claimed elements as specifically claimed. The description of the present embodiments has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the embodiments in the form disclosed. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the embodiments. The embodiments have been chosen to best describe the principles and practical application, and to enable others skilled in the art to understand the embodiments with various changes as appropriate to the particular use contemplated.
Computerprogrammcode zum Ausführen von Operationen für Aspekte der Ausführungsformen kann in jeder Kombination einer oder mehrerer Programmiersprachen, darunter eine objektorientierte Programmiersprache wie Java, Smalltalk, C++ oder Ähnliches und herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C” oder ähnliche Programmiersprachen, geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jede beliebige Art von Netzwerk, darunter ein lokales Netzwerk (local area network (LAN)) oder ein Weitverkehrsnetzwerk (wide area network (WAN)) verbunden sein, oder es kann eine Verbindung zu einem externen Computer (zum Beispiel mittels eines Internetdienstanbieters über das Internet) hergestellt werden.Computer program code for performing operations for aspects of the embodiments may be written in any combination of one or more programming languages, including an object-oriented programming language such as Java, Smalltalk, C ++ or the like and conventional procedural programming languages such as the "C" programming language or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partly on a remote computer, or entirely on the remote computer or server. In the latter scenario, the remote computer may or may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN) Connecting to an external computer (for example, via an Internet service provider via the Internet) are made.
Aspekte von Ausführungsformen sind vorstehend unter Bezugnahme auf Abbildungen von Ablaufplänen und/oder schematischen Schaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen beschrieben. Es versteht sich, dass jeder Block der Abbildungen von Ablaufplänen und/oder der Blockschaubilder sowie Kombinationen von Blöcken in den Abbildungen von Ablaufplanen und/oder den Blockschaubildern durch Computerprogrammanweisungen realisiert werden kann. Diese Computerprogrammanweisungen können einem Prozessor eines universellen Computers, eines zweckbestimmten Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Anweisungen, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen erzeugen.Aspects of embodiments are described above with reference to flowchart illustrations and / or schematic diagrams of methods, apparatus (systems), and computer program products according to embodiments. It will be understood that each block of the flowchart illustrations and / or block diagrams, as well as combinations of blocks in the flowchart illustrations and / or the block diagrams, may be implemented by computer program instructions. These computer program instructions may be provided to a general purpose computer processor, a dedicated computer, or other programmable data processing device to generate a machine such that the instructions that are executed via the processor of the computer or other programmable data processing device provide means for realizing the computer generate specified functions / actions in the block or in the blocks of the flowchart and / or block diagram.
Diese Computerprogrammanweisungen können auch in einem computerlesbaren Medium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Weise zu funktionieren, so dass die in dem computerlesbaren Medium gespeicherten Anweisungen einen Herstellungsartikel einschließlich Anweisungen erzeugen, welche die im Block oder in den Blöcken des Ablaufplans und/oder des Blockschaubildes angegebene Funktion/Handlung ausführen.These computer program instructions may also be stored in a computer-readable medium that may instruct a computer, other programmable computing device, or other device to function in a particular manner so that the instructions stored in the computer-readable medium produce an article of manufacture, including instructions corresponding to those described in U.S. Pat Block or in the blocks of the flowchart and / or the block diagram specified function / action.
Die Computerprogrammanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten geladen werden, um eine Reihe von auf dem Computer, der anderen programmierbaren Vorrichtung oder den anderen Einheiten auszuführenden Operationsschritten hervorzurufen, um einen auf dem Computer realisierten Prozess so zu erzeugen, dass die auf dem Computer oder der anderen programmierbaren Vorrichtung ausgeführten Anweisungen Prozesse zum Realisieren der im Block oder in den Blöcken des Ablaufplans und/oder Blockschaubildes angegebenen Funktionen/Handlungen bereitstellen.The computer program instructions may also be loaded on a computer, other programmable computing device, or other device to cause a series of operations to be performed on the computer, the other programmable device, or the other devices to generate a process implemented on the computer the instructions executed on the computer or other programmable device provide processes for realizing the functions / actions specified in the block or blocks of the flowchart and / or block diagram.
Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und die Arbeitsweise möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß vielfältiger Ausführungsformen. In dieser Hinsicht kann jeder Block im Ablaufplan oder den Blockschaubildern für ein Modul, ein Segment oder einen Codeabschnitt stehen, der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen logischen Funktion(en) aufweist. Es soll zudem angemerkt werden, dass bei einigen alternativen Realisierungen die im Block angegebenen Funktionen in anderer Reihenfolge als der in den Figuren angegebenen auftreten können. Zum Beispiel können zwei aufeinander folgend abgebildete Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal abhängig von der betreffenden Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es wird ebenfalls angemerkt, dass jeder Block der Blockschaubilder und/oder Abbildung von Ablaufplänen und Kombinationen von Blöcken in den Blockschaubildern und/oder der Abbildung von Ablaufplänen durch zweckbestimmte hardwaregestützte Systeme oder Kombinationen von zweckbestimmter Hardware und Computeranweisungen realisiert werden kann, welche die angegebenen Funktionen oder Handlungen durchführen.The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or section of code having one or more executable instructions for implementing the specified logical function (s). It should also be noted that in some alternative implementations, the functions specified in the block may occur in a different order than that indicated in the figures. For example, two consecutively mapped blocks may, in fact, be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order, depending on the functionality involved. It is also noted that each block of the block diagrams and / or mapping of schedules and combinations of blocks in the block diagrams and / or the mapping of schedules may be realized by dedicated hardware based systems or combinations of dedicated hardware and computer instructions having the stated functions or functions Perform actions.
Claims (13)
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/524,471 | 2012-06-15 | ||
US13/524,471 US20130339666A1 (en) | 2012-06-15 | 2012-06-15 | Special case register update without execution |
US13/799,670 | 2013-03-13 | ||
US13/799,670 US20130339667A1 (en) | 2012-06-15 | 2013-03-13 | Special case register update without execution |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102013210640A1 true DE102013210640A1 (en) | 2013-12-19 |
Family
ID=49668202
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE201310210640 Withdrawn DE102013210640A1 (en) | 2012-06-15 | 2013-06-07 | Computer program product for modifying associated value of logical address in computing unit, includes instructions for mapping logical address to memory location in register allocator by special register identifier |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102013210640A1 (en) |
-
2013
- 2013-06-07 DE DE201310210640 patent/DE102013210640A1/en not_active Withdrawn
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE112012005037B4 (en) | Manage redundant immutable files using deduplications in storage clouds | |
DE69802437T2 (en) | FINE-GRAIN MATCH MECHANISM FOR OPTIMISTIC PARALLEL CONTROL WITH LOCKING GROUPS | |
DE112011102487B4 (en) | Mapping logical to physical addresses in storage systems having semiconductor storage devices | |
DE102018005977A1 (en) | SLIDING COMBINATION TO FIXED COMMERCIAL CONVERSION | |
DE102013017509A1 (en) | Efficient storage virtualization in multi-strand processing units | |
DE102014014076A1 (en) | Reduced address translation with multiple page sizes | |
DE102013017510A1 (en) | Efficient storage virtualization in multi-strand processing units | |
DE102013017511A1 (en) | EFFICIENT MEMORY VIRTUALIZATION IN MULTILAYER PROCESSING UNITS | |
DE102013208930A1 (en) | Combining entries in a deduplication index | |
DE112018006127B4 (en) | CLOSING LINKED ENTRIES OF A GLOBAL CLOSING TABLE IN AN OUT-OF-ORDER PROCESSOR | |
DE112012000693T5 (en) | Execute a variety of instances of an application | |
DE112018006124T5 (en) | MERGING ENTRIES OF GLOBAL CLOSING TABLES IN AN OoO PROCESSOR | |
WO1994027222A1 (en) | Process for converting a virtual store address with a first length into a real address with a second length | |
DE102013200030B4 (en) | HASH-BASED MANAGEMENT OF STORAGE IDS | |
DE102013013137A1 (en) | MULTI-STAGE REGISTER IDENTIFICATION BY REMOVING DEPENDENCIES | |
DE112014000340T5 (en) | Prefetching data for a chip with a parent core and a scout core | |
DE112018001124T5 (en) | PROCESSING COMPARE STRING BY DECODING-BASED INLINE EXTENSION OF MICROPERATIONS | |
DE112018003585T5 (en) | DEDUPLICATION OF A TAPE DRIVE STORAGE | |
DE102021131418A1 (en) | DEDICATED REGISTER FILE WITH BOUNDARY INFORMATION TO PROTECT AGAINST OUT OF BOUNDARY MEMORY REFERENCES | |
DE102012217315A1 (en) | Use native routines instead of emulated routines in an emulated application | |
DE102021130906A1 (en) | OPTIMIZING ACCESSES TO BOUNDARY INFORMATION IN BUFFER PROTECTION | |
DE102013205059A1 (en) | Perform pre-decode optimized instructions along with sequence caching of pre-decode optimized instructions | |
DE112020000843B4 (en) | EXECUTING MULTIPLE DATA REQUESTS FROM MULTICORE PROCESSORS | |
DE112020000748T5 (en) | ADDRESS GENERATION FOR HIGH PERFORMANCE PROCESSING OF VECTORS | |
DE112019005352T5 (en) | Universal pointers for data exchange in a computer system with independent processors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
R012 | Request for examination validly filed | ||
R016 | Response to examination communication | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |