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 PDF

Info

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
Application number
DE201310210640
Other languages
German (de)
Inventor
Gregory W. Alexander
Brian D. Barrick
Fadi Y. Busaba
Bruce C. Giamei
Edward T. Malley
Chung-Lung K. Shum
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US13/524,471 external-priority patent/US20130339666A1/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102013210640A1 publication Critical patent/DE102013210640A1/en
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction 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

An instruction containing a statement as a logical value in expressed destination register is received by an instruction decoder (112). A determination is made whether a result of instruction is set to a constant value in destination register by the instruction decoder. The destination register is provided in a physical register file (106) associated with an execution unit (102). The logical address is mapped to a memory location in a register allocator (114) by a special register identifier. Independent claims are included for the following: (1) a method for modifying associated value of logical address in computing unit; and (2) a system for modifying associated value of logical address in computing unit.

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:

1 ein Funktionsblockschaubild eines Systems gemäß einer Ausführungsform darstellt; 1 Fig. 10 illustrates a functional block diagram of a system according to one embodiment;

2 einen Ablaufplan eines Systems gemäß einer Ausführungsform darstellt; 2 Fig. 10 illustrates a flowchart of a system according to an embodiment;

3 ein Funktionsblockschaubild eines physischen Registerspeichers gemäß einer Ausführungsform darstellt; 3 Figure 12 illustrates a functional block diagram of a physical register storage according to one embodiment;

4 einen Ablaufplan gemäß einer Ausführungsform darstellt; und 4 depicts a flowchart according to an embodiment; and

5 ein Computerprogrammprodukt gemäß einer Ausführungsform darstellt. 5 represents a computer program product according to an embodiment.

DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION

Unter Bezugnahme auf 1 wird nun ein Datenflussschaubild eines Systems 100 veranschaulicht, in dem hierin offenbarte Ausführungsformen realisiert werden können. Das System 100 könnte Teil beispielsweise einer Zentraleinheit (central processing unit) einer Recheneinheit sein. Gemäß hierin offenbarten Ausführungsformen wird ein Verfahren/System beschrieben, das ein Aktualisieren von Registern ohne Operation der Ausführungseinheit 102 bereitstellen kann. In der in 1 gezeigten Ausführungsform enthält das System 100 Fertigstelllogik 120, welche abgeschlossene Anweisungen abwickelt, wie für den befähigten Handwerker verständlich ist und die aufgerufen wird, wenn eine Anweisung abgeschlossen ist. Wie nachstehend weiter beschrieben wird, kann ein Betrieb gemäß einer oder mehreren hierin offenbarten Ausführungsformen in speziellen Fällen das Aktualisieren von Registerwerten ermöglichen, ohne dass eine Verarbeitung durch entweder die Ausgabewarteschlange 104 oder die Ausführungseinheit 102 erforderlich ist. Daher kann die Verarbeitungsgeschwindigkeit des Systems 100 verbessert werden, weil anderen Anweisungen früher Zugriff auf die Ausgabewarteschlange 104 und die Ausführungseinheit 102 gewährt wird. Weiterhin können hierin offenbarte Ausführungsformen zudem eine verbesserte Auslastung des physischen Registerspeichers 106 ermöglichen, der der Ausführungseinheit 102 zugewiesen ist.With reference to 1 now becomes a dataflow diagram of a system 100 illustrates in which embodiments disclosed herein can be realized. The system 100 could be part of, for example, a central processing unit (central processing unit) of a computing unit. In accordance with embodiments disclosed herein, a method / system is described that includes updating registers without operation of the execution unit 102 can provide. In the in 1 the embodiment shown contains the system 100 Finisher logic 120 which handles completed instructions as understood by the skilled artisan and which is called when an instruction is completed. As will be further described below, operation in accordance with one or more embodiments disclosed herein may, in specific cases, enable the updating of register values without processing by either the output queue 104 or the execution unit 102 is required. Therefore, the processing speed of the system 100 be improved because other instructions earlier access the output queue 104 and the execution unit 102 is granted. Furthermore, embodiments disclosed herein may also provide improved utilization of the physical register memory 106 allow the execution unit 102 is assigned.

Der Betrieb des Systems 100 wird zuerst im Kontext des herkömmlichen Betriebs beschrieben, und dann werden Unterschiede zwischen dem System 100 gemäß hierin offenbarten Ausführungsformen und dem herkömmlichen Betrieb beschrieben. Das System 100 enthält einen Anweisungscachespeicher 108, in dem eine oder mehrere Anweisungen gespeichert sind, die letztlich durch die Ausführungseinheit 102 durchgeführt werden. Das System 100 enthält zudem eine Anweisungshollogik 110, die eingerichtet ist, eine Anweisung aus dem Anweisungscachespeicher 108 abzurufen. Die Anweisung wird dem Anweisungsdecodierer 112 durch die Anweisungshollogik 110 bereitgestellt. Die Anweisungshollogik 110 kann zudem dem Anweisungsdecodierer 112 eine Anweisung bereitstellen. Wie abgebildet, enthält der Anweisungsdecodierer 112 einen Spezialfall-Teilblock 113, der nachstehend detaillierter beschrieben wird.The operation of the system 100 is first described in the context of conventional operation, and then differences between the system 100 according to embodiments disclosed herein and the conventional operation. The system 100 contains a statement cache 108 in which one or more statements are stored, ultimately by the execution unit 102 be performed. The system 100 also contains an instruction fetch logic 110 that is set up, an instruction from the instruction cache 108 retrieve. The instruction becomes the instruction decoder 112 through the instruction fetch logic 110 provided. The instruction fetch logic 110 can also be used by the instruction decoder 112 provide an instruction. As shown, the instruction decoder contains 112 a special case subblock 113 , which will be described in more detail below.

Der Anweisungsdecodierer 112 ist eingerichtet, zu ermitteln, welche „Aktion” durch die Ausführungseinheit 102 vorzunehmen ist, um die Anweisung auszuführen. Der Anweisungsdecodierer 112 ist zudem eingerichtet, die logischen Ressourcen (hierin auch als „logische Adressen” bezeichnet) zu ermitteln, die durch die Ausführungseinheit 102 verwendet werden müssen.The instruction decoder 112 is set up to determine what "action" by the execution unit 102 to perform the instruction. The instruction decoder 112 is also set up to determine the logical resources (also referred to herein as "logical addresses") provided by the execution unit 102 must be used.

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 114 bereitgestellt. Der Registerzuordner 114 wandelt die logischen Adressen in physische (PREG-)Adressen um, mit denen ein bestimmter Speicherort in dem physischen Registerspeicher 106 angesprochen wird, und ordnet das Bedingungscodeergebnis der Anweisung einem neuen Registerspeicherort zu, falls dies erforderlich ist. Darüber hinaus weist der Registerzuordner 114 einen Speicherort für das Ziel zu (bei diesem Zielspeicherort kann es sich abhängig davon, wie der Registerzuordner eingerichtet ist, um denselben oder einen anderen als den Quellspeicherort handeln). Es versteht sich, dass die Operationen des Registerzuordners 114 ein dynamisches Zuweisen, Übergeben und Zurückziehen von Zuordnungen enthalten können, wie für den Fachmann verständlich ist.For example, the instruction XR R1, R1 is considered. In this case, a logical address (R1) is exclusive-ORed with itself. The result of such an operation results in R1 being set to zero, and at a condition code value of zero in this case, the source (logical address R1) and the destination (again R1) become a register allocator 114 provided. The register allocator 114 converts the logical addresses into physical (PREG) addresses that specify a particular location in the physical register memory 106 is addressed, and assigns the condition code result of the instruction to a new register location, if necessary. In addition, the register allocates 114 a location for the destination (this destination location may be the same or different than the source location, depending on how the register allocator is set up). It is understood that the operations of the register allocator 114 may include dynamic assigning, passing and withdrawing assignments, as will be understood by those skilled in the art.

Die Informationen aus dem Anweisungsdecodierer 112 werden dann der Ausgabewarteschlange 104 zusammen mit den zugeordneten physischen Adressen in dem physischen Registerspeicher 106 zur Ausführung bereitgestellt. Die Ausgabewarteschlange 104 muss unter Umständen Abhängigkeiten (ungeordneter Aufbau) auflösen, und daher kann das System zudem einen Bedingungscodezuordner 115 enthalten. Der Betrieb des Bedingungscodezuordners 115 liegt innerhalb des Verständnisses des befähigten Handwerkers und wird nicht weiter offenbart. Nachdem die Abhängigkeiten (falls sie vorhanden sind) aufgelöst wurden, stellt die Ausgabewarteschlange 104 die Aktion und die physischen Adressen der Quelle und des Ziels der Ausführungseinheit 102 bereit. Dann stellt die Ausführungseinheit 102 die physische Adresse für R1 des physischen Registerspeichers 106 bereit, der der Ausführungseinheit 102 den an diesem Ort gespeicherten Wert ausgibt. Dann führt die Ausführungseinheit 102 die Operation durch und schreibt das Ergebnis auf den Zielspeicherort zurück und aktualisiert den Bedingungscode, falls dies erforderlich ist.The information from the instruction decoder 112 then the output queue 104 along with the associated physical addresses in the physical register memory 106 provided for execution. The output queue 104 may need to resolve dependencies (unordered build), and therefore the system may also have a condition code allocator 115 contain. The operation of the condition code allocator 115 lies within the understanding of the skilled artisan and will not be further disclosed. After the dependencies (if they exist) have been resolved, the output queue queues 104 The action and physical addresses of the source and destination of the execution unit 102 ready. Then put the execution unit 102 the physical address for R1 of the physical register memory 106 ready, that of the execution unit 102 outputs the value stored at this location. Then the execution unit leads 102 the operation and writes the result to the destination location back and update the condition code if necessary.

Wie anhand des Vorhergehenden ersichtlich wird, erzeugen normale Aktualisierungen eines (durch die Anweisung angegebenen) logischen Registerspeicherortes eine neue Zuordnung in dem physischen Registerspeicher 106, belegen einen Speicherort der Ausgabewarteschlange 104, senden eine Anfrage an die Ausführungseinheit 102 und schreiben schließlich das Ergebnis der Ausführung in den physischen Registerspeicher 106 zurück.As will be seen from the foregoing, normal updates of a logical register location (indicated by the instruction) will create a new allocation in the physical register memory 106 , occupy a location of the output queue 104 , send a request to the execution unit 102 and finally write the result of execution to the physical register memory 106 back.

Es gibt manche Fälle, in denen anhand der Anweisung (z. B. durch den Spezialfall-Teilblock 113 des Anweisungsdecodierers 112) selbst festgestellt werden kann, dass das Ergebnis der Operation einfach darin liegt, eine Konstante (z. B. „0”) auf den Ergebnisspeicherort zu schreiben. Anstatt den physischen Registerspeicher 106 zu aktualisieren, wird in solchen Fällen gemäß einer Ausführungsform die Zuordnung für die bestimmte logische Adresse (z. B. für R1 im vorstehenden Beispiel) im Registerzuordner 114 so geändert, dass sie eine Zuordnung zu einem bestimmten Speicherort in dem physischen Registerspeicher 106 bildet, der den Wert der darin gespeicherten Konstanten aufweist. In solchen Fällen kann die Auslastung der Ausgabewarteschlange 104 und der Ausführungseinheit 102 verringert werden und dadurch die Leistung des Systems 100 erhöht werden. Die Feststellung, dass die Konstante einer logischen Adresse zugewiesen ist, kann durch den Spezialfall-Teilblock 113 getroffen werden. Der Teilblock 113 könnte zum Beispiel Anweisungen des „Immediate”-Schreibtyps (z. B. „Load Half Immediate” (32-Bit-Register) {LHI R1, Immediate}, „Load Half Immediate” (64-Bit-Register) {LGHI R1, Immediate}, wobei ein typischer betrachteter Immediate-Wert kleiner als 15 ist), Fälle, in denen ein Wert mit sich selbst per XOR verknüpft wird (z. B. {XR, R1, R1} oder {XGR R1, R1}) erkennen. Zu weiteren Beispielen kann zum Beispiel eine Adressladeanweisung (load adress instruction) der Form {LA R1, D2(B2, X2)} zählen, wobei B2 = X2 = 0 und es sich bei dem Versatzwert (D2) um die Konstante mit einem typischen betrachteten Wert kleiner als 15 (LA R1, D2(B2, X2)) handelt. Bei der Adresslade(LA)-Anweisung wird das Register R1 von der Addition des Basisregisters (B2) und des Indexregisters (X2) zum Versatz geladen. Wenn die Registernummer für B2 und X2 Null beträgt, werden Nullen statt des Inhaltes des Registers 0 addiert. Zu weiteren Anweisungen zählt ein Satz von Subtrahieranweisungen mit gleichen Operanden (z. B. SR R1, R2 oder SGR R1, R2) und ein Satz von „Load Immediate”-Anweisungen.There are some cases where using the statement (for example, the special case subblock 113 of the instruction decoder 112 ) itself, the result of the operation is simply to write a constant (eg, "0") to the result location. Instead of the physical register memory 106 In such cases, according to one embodiment, the mapping for the particular logical address (eg, for R1 in the example above) in the register allocator is updated 114 modified so that they have an association with a specific location in the physical register memory 106 which has the value of the constants stored therein. In such cases, the utilization of the output queue 104 and the execution unit 102 be reduced and thereby the performance of the system 100 increase. The determination that the constant is assigned to a logical address may be determined by the special case subblock 113 to be hit. The subblock 113 For example, instructions of the "Immediate" write type (eg, "Load Half Immediate" (LHI R1, Immediate), "Load Half Immediate" (64-bit registers), {LGHI R1, Immediate}, where a typical considered immediate value is less than 15), cases where a value is linked to itself by XOR (eg {XR, R1, R1} or {XGR R1, R1}) , Other examples may include, for example, a load address instruction of the form {LA R1, D2 (B2, X2)} where B2 = X2 = 0 and the offset value (D2) is the constant with a typical one considered Value less than 15 (LA R1, D2 (B2, X2)). In the address load (LA) instruction, the register R1 is loaded for addition by the addition of the base register (B2) and the index register (X2). If the register number for B2 and X2 is zero, zeros are added instead of the contents of register 0. Other instructions include a set of subtract instructions with equal operands (eg SR R1, R2 or SGR R1, R2) and a set of "load immediate" instructions.

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 102 R1 von dem physischen Registerspeicher 106 abrufen, die XOR-Funktion durchführen und das Ergebnis (lauter Nullen) auf den Zielspeicherort schreiben. Im Gegensatz dazu wird in einer Ausführungsform angenommen, dass einem bestimmten Register in dem physischen Registerspeicher 106 der Wert „0” zugewiesen ist und er nicht geändert werden kann. Jedes Mal, wenn eine logische Adresse (z. B. R1, R2 usw.) „0” zugewiesen wird, könnte dies wiedergegeben werden, indem einfach die Zuordnung für diese logische Adresse im Adresszuordner 114 so geändert wird, das sie auf das bestimmte Register in dem physischen Registerspeicher 106 verweist, das lauter Nullen enthält. In solchen Fällen können alle derartigen logischen Adressen auf Null gesetzt werden, es wurden jedoch keine Schreibvorgänge auf den physischen Registerspeicher 106 durchgeführt, um dies zu erreichen. Da darüber hinaus dem bestimmten Speicherort mehrere logische Adressen zugeordnet werden, wird Speicherplatz in dem physischen Registerspeicher 106 frei und er kann daher verwendet werden, um mehr Daten aufzunehmen, als wenn er für jede logische Adresse, welcher der Wert Null zugewiesen ist, separate Datenwerte von „0” speichern muss. Wenn das Register R1 als einer der Operanden für nachfolgende Anweisungen verwendet wird, erfolgt eine Verarbeitung in der normalen Weise, und der Wert „0” wird vom bestimmten Speicherort abgerufen, dem die logische Adresse der Quelle zugeordnet ist. Diese Ausführungsform könnte auf ein frühes Zuordnen von Zielwerten ausgedehnt werden, die nicht nur „0” lauten. In einem solchen Fall könnte der physische Registerspeicher 106 mehrere dedizierte Register enthalten, die jeweils einer anderen Konstanten zugewiesen sind.An example is illustrative. Again, consider the case where the instruction is "{XR, R1, R1}". The result of the operation is quite simple, assigning all bits of R1 the value "0" and setting the condition code to zero. If the system is operated as described above, the execution unit would have to 102 R1 from the physical register memory 106 retrieve, perform the XOR function and write the result (all zeros) to the destination memory location. In contrast, in one embodiment, it is assumed that a particular register in the physical register memory 106 the value "0" is assigned and it can not be changed. Each time a logical address (e.g., R1, R2, etc.) is assigned "0", this could be reflected simply by mapping for that logical address in the address mapper 114 is changed to the specific register in the physical register memory 106 which contains all zeros. In such cases, all such logical addresses may be set to zero, but no writes to the physical register memory have occurred 106 performed to achieve this. In addition, as more logical addresses are allocated to the particular memory location, memory space becomes physical register memory 106 therefore, it can be used to hold more data than if it had to store separate data values of "0" for each logical address assigned the value of zero. If register R1 is used as one of the operands for subsequent instructions, processing is done in the normal manner and the value "0" is retrieved from the particular memory location to which the logical address of the source is assigned. This embodiment could be extended to early mapping of targets that are not just "0". In such a case, the physical register memory could 106 contain multiple dedicated registers, each assigned to a different constant.

2 zeigt einen Ablaufplan, der ein Verfahren gemäß der soeben beschriebenen Ausführungsform veranschaulicht. In Block 202 stellt allgemein der Anweisungsdecodierer 112 (und im Besonderen der Spezialfall-Teilblock 113) fest, dass eine bestimmte Anweisung lediglich eine bestimmte logische Adresse einer Konstanten zuweist. Dies könnte zum Beispiel erreicht werden, indem eine Liste von Bedingungen vorliegt, die ein solches Ergebnis besitzen. Eine partielle Liste solcher Bedingungen ist vorstehend gegeben, der Fachmann erkennt jedoch, dass weitere Bedingungen zum selben Ergebnis führen könnten. 2 FIG. 12 shows a flowchart illustrating a method according to the embodiment just described. FIG. In block 202 generally represents the instruction decoder 112 (and in particular the special case subblock 113 ) states that a particular instruction merely assigns a particular logical address to a constant. This could be achieved, for example, by having a list of conditions that have such a result. A partial list of such conditions is given above, but those skilled in the art will recognize that other conditions could lead to the same result.

In Block 204 ordnet der Registerzuordner 114 die logische Adresse (z. B. R1) dem physischen Registerspeicherort in dem physischen Registerspeicher 106 zu, dem der konstante Wert zugewiesen wurde. Eine solche Zuweisung wird hierin als „spezielle Registerkennung” (special register tag) bezeichnet. Selbstverständlich kann sich eine spezielle Registerkennung auch auf eine Adresse beziehen, die nicht in dem physischen Registerspeicher 106 enthalten ist.In block 204 maps the register mapper 114 the logical address (e.g., R1) the physical register location in the physical register memory 106 to which the constant value was assigned. Such an assignment is referred to herein as a "special register tag". Of course, a special Also, the registry identifier refers to an address that is not in the physical register memory 106 is included.

In Block 206 wird eine nachfolgende Anweisung empfangen, welche die logische Adresse enthält, die eine spezielle Registerkennung (z. B. im vorstehenden Beispiel R1) enthält. Die logische Adresse wird in Block 208 vom Registerzuordner 114 in eine Quellenadresse umgewandelt, die den Speicherort in dem physischen Registerspeicher 106 angibt, der die Konstante (z. B. 0) enthält, die das Ergebnis der vorstehend beschriebenen Anweisung war. Der an diesem Speicherort gespeicherte konstante Wert wird dann in Block 210 der Ausführungseinheit 102 durch den physischen Registerspeicher 106 bereitgestellt.In block 206 will receive a subsequent instruction containing the logical address containing a special register identifier (e.g., in example R1 above). The logical address is in block 208 from the register allocator 114 converted to a source address which is the location in the physical register memory 106 indicating the constant (eg 0) that was the result of the instruction described above. The constant value stored in this location will then be in block 210 the execution unit 102 through the physical register memory 106 provided.

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 114 einem Speicherort, der sich nicht in dem physischen Registerspeicher 106 befindet, eine spezielle Zuordnung zu. Wie vorstehend erwähnt, wird eine solche spezielle Zuordnung hierein auch als eine spezielle Registerkennung bezeichnet. In solch einem Fall kann es sich bei der speziellen Registerkennung tatsächlich um einen Datenwert handeln.Another embodiment may achieve a substantially similar result without the need to actually assign a specific value to registers in the physical register memory. In such a case, the register allocator 114 a location that is not in the physical register memory 106 is located, a special assignment to. As mentioned above, such a special assignment is also referred to as a special register identifier. In such a case, the particular register identifier may actually be a data value.

Unter erneuter Bezugnahme auf 1 stellt in dieser Ausführungsform der Spezialfall-Teilblock 113 des Anweisungsdecodierers 112 fest, dass es sich bei dem Ergebnis der Operation um ein Schreiben einer Konstanten auf das bestimmte Ziel handelt (z. B. eine Anweisung wie {XR R1, R1}). Eine solche Feststellung wird dem Registerzuordner 114 bereitgestellt, der dem Ziel (X1) dann eine spezielle Registerkennung zuweist. In dieser Ausführungsform kann es sich bei der speziellen Registerkennung um die Konstante selbst (z. B. „0”) handeln, oder es kann sich um eine Adresse handeln, die sich nicht in dem physischen Registerspeicher 106 befindet, aus der die Konstante ermittelt werden kann. Wenn das Ziel später eine Quellenadresse ist, stellt der Zuordner 114 anstatt eines Zeigers zu einem Speicherort in dem physischen Registerspeicher die spezielle Registerkennung bereit.Referring again to 1 in this embodiment, the special case subblock 113 of the instruction decoder 112 determine that the result of the operation is writing a constant to the specific destination (for example, a statement such as {XR R1, R1}). Such a statement becomes the register allocator 114 is provided, which then assigns the destination (X1) a special register identifier. In this embodiment, the particular register identifier may be the constant itself (eg, "0"), or it may be an address that is not in the physical register memory 106 from which the constant can be determined. If the destination is later a source address, then the allocator sets 114 instead of a pointer to a location in the physical register memory, the special register identifier is ready.

3 zeigt eine logische Darstellung eines Beispiels, wie ein System mit speziellen Registerkennungen arbeiten kann, bei denen es sich entweder um einen konstanten Wert handelt oder die als eine nicht in dem physischen Registerspeicher 106 befindliche Adresse ausgedrückt sind. In 3 sind die derzeitigen Register in dem physischen Registerspeicher 106 unter der Bezugsziffer 106p gezeigt. Die derzeitigen Register 106p können von 1 bis n Einträge enthalten (die in 3 als Einträge 106(0) bis 106(n) ausgedrückt sind). Nicht in einschränkender Weise sondern lediglich zu Zwecken der Veranschaulichung soll in der folgenden Beschreibung davon ausgegangen werden, dass der logische Registerspeicher 106 eine Anzahl von 80 Einträgen (z. B. 106(0) bis 106(79)) enthält. In diesem Beispiel wird davon ausgegangen, dass die spezielle Registerkennung gleich der Anzahl von Einträgen in den derzeitigen Registern 106p(80) plus die spezifische Konstante ist. Wenn somit die Konstante zum Beispiel „0” lautet, besitzt die spezielle Registerkennung einen Wert von 80; wenn die Konstante „5” beträgt, besitzt die spezielle Registerkennung einen Wert von 85. 3 Figure 12 shows a logical representation of an example of how a system may operate on special register identifiers that are either a constant value or not one in the physical register memory 106 located address. In 3 are the current registers in the physical register memory 106 under the reference number 106p shown. The current registers 106p can contain from 1 to n entries (those in 3 as entries 106 (0) to 106 (s) are expressed). Not by way of limitation but merely for purposes of illustration, it should be assumed in the following description that the logical register memory 106 a number of 80 entries (e.g. 106 (0) to 106 (79) ) contains. In this example, it is assumed that the specific register identifier equals the number of entries in the current registers 106p (80) plus the specific constant is. Thus, for example, if the constant is "0", the particular register identifier has a value of 80; if the constant is "5", the special register identifier has a value of 85.

In diesem Beispiel ist der Registerspeicher 106 so gezeigt, dass er eine Hash-Funktion 302, einen Decodierer 304 und einen Ausgabeauswähler 306 enthält, der als Multiplexer realisiert ist. In 3 enthält der Ausgabeauswähler 306 eine erste Eingabe 308 und eine zweite Eingabe 310 und stellt eine Ausgabe 312 bereit, die der Ausführungseinheit 102 bereitgestellt wird. Bei Ausführung stellt die Ausführungseinheit 102 die Quellenadresse 300 dem Registerspeicher 106 bereit, wo sie durch den Decodierer 304, den derzeitigen Registern 106p und der Hash-Funktion 302 empfangen wird. Wenn die Quellenadresse 300 im Bereich der derzeitigen Register liegt, wird der Wert in dem bestimmten Register dem Ausgabeauswähler 306 bereitgestellt. Wenn dies nicht der Fall ist, könnte kein Wert, Nullen oder ein anderer Wert bereitgestellt werden. Ungeachtet dessen wird die Quellenadresse zudem durch die Hash-Funktion 302 verarbeitet, um dem Ausgabeauswähler 306 eine Eingabe bereitzustellen. In einer Ausführungsform ist der Hash-Auswähler 302 so ausgebildet, dass er aller außer einer gewissen Zahl n (z. B. 4) der niedrigstwertigen Bits der Adresse durch eine Maske filtert. Dies könnte zum Beispiel erreicht werden, indem einfach die niedrigstwertigen Bits der Zeilen, welche die Adresse 300 beinhalten (bei Annahme eines parallelen Busses), als die niedrigstwertigen Bits einer der auswählbaren Eingaben mit dem Ausgabeauswähler 306 verbunden werden, wobei alle anderen Bits dieser Eingabe mit Null verbunden werden, wie in 3 gezeigt. Der Decodierer ermittelt, ob die Adresse speziell (z. B. 80 oder höher) ist und veranlasst auf der Grundlage dieser Feststellung den Ausgabeauswähler, entweder den Registerwert oder den Hash-Wert bereitzustellen,In this example, the register memory is 106 shown to have a hash function 302 , a decoder 304 and an output selector 306 contains, which is realized as a multiplexer. In 3 contains the output selector 306 a first input 308 and a second input 310 and puts an issue 312 ready, that of the execution unit 102 provided. When executed, the execution unit represents 102 the source address 300 the register memory 106 ready to go through the decoder 304 , the current registers 106p and the hash function 302 Will be received. If the source address 300 is within the range of the current registers, the value in the particular register becomes the output selector 306 provided. If not, no value, zeros, or any other value could be provided. Regardless, the source address will also be hashed 302 processed to the output selector 306 to provide an input. In one embodiment, the hash selector 302 is adapted to filter all but a certain number n (eg 4) of the least significant bits of the address through a mask. This could be accomplished, for example, by simply adding the least significant bits of the lines that make up the address 300 include (assuming a parallel bus) as the least significant bits of one of the selectable inputs with the output selector 306 with all other bits of this input being connected to zero, as in 3 shown. The decoder determines if the address is special (eg, 80 or higher) and, based on this determination, causes the output selector to provide either the register value or the hash value.

Es wird derjenige Fall betrachtet, in dem die Quellenadresse 300 einen Wert von 85 aufweist. In einem solchen Fall werden die niedrigstwertigen Bits 310a, 310b, 310c und 310d der zweiten Eingabe 310 einen Wert von 0101 aufweisen (die führenden Bits werden alle 0 sein). Der Decodierer 304 stellt fest, dass es sich bei dieser Adresse um eine spezielle Registerkennung handelt (z. B. ist ihr Wert 80 oder höher) und veranlasst den Ausgabeauswähler 306, die zweite Eingabe 310 als die Ausgabe 312 weiterzugeben. Wenn andererseits die Quellenadresse 300 niedriger als 80 wäre, wird das derzeitige Register (z. B. eines von 106(0) ... 106(n)) dem Ausgabeauswähler 306 bereitgestellt und als die Ausgabe 312 weitergereicht.Consider the case in which the source address 300 has a value of 85. In such a case, the least significant bits become 310a . 310b . 310c and 310d the second input 310 have a value of 0101 (the leading bits will all be 0). The decoder 304 notes that this address is a special register identifier (eg, its value is 80 or higher) and initiates the output selector 306 , the second input 310 as the issue 312 pass. On the other hand, if the source address 300 is less than 80, the current register (e.g., one of 106 (0) ... 106 (s) ) the output selector 306 provided and as the issue 312 passed on.

4 zeigt einen Ablaufplan, der ein Verfahren gemäß der soeben beschriebenen Ausführungsform veranschaulicht. In Block 402 stellt allgemein der Anweisungsdecodierer 112 (und im Besonderen der Spezialfall-Teilblock 113) fest, dass eine bestimmte Anweisung lediglich eine bestimmte logische Adresse einer Konstanten zuweist. Dies könnte zum Beispiel erreicht werden, indem eine Liste von Bedingungen vorliegt, die ein solches Ergebnis besitzen. Eine partielle Liste solcher Bedingungen ist vorstehend gegeben, der Fachmann erkennt jedoch, dass andere Bedingungen zum selben Ergebnis führen könnten. 4 FIG. 12 shows a flowchart illustrating a method according to the embodiment just described. FIG. In block 402 generally represents the instruction decoder 112 (and in particular the special case subblock 113 ) states that a particular instruction merely assigns a particular logical address to a constant. This could be achieved, for example, by having a list of conditions that have such a result. A partial list of such conditions is given above, but those skilled in the art will recognize that other conditions could lead to the same result.

In Block 404 ordnet der Registerzuordner 114 die logische Adresse (z. B. R1) entweder einem konstanten Wert oder Speicherort zu, der nicht in den derzeitigen Registern 106p enthalten ist. Selbstverständlich könnte es sich bei dem Wert um einen Wert handeln, von dem die Konstante abgeleitet werden könnte und der zudem nicht in den derzeitigen Registern enthalten sein könnte. Wie vorstehend erläutert, kann jede dieser Arten von Zuordnungen hierin als eine „spezielle Registerkennung” bezeichnet sein.In block 404 maps the register mapper 114 the logical address (for example, R1) is either a constant value or a storage location that is not in the current registers 106p is included. Of course, the value could be a value from which the constant could be derived and, moreover, could not be included in the current registers. As discussed above, each of these types of associations may be referred to herein as a "special register identifier."

In Block 406 wird eine nachfolgende Anweisung empfangen, welche die logische Adresse enthält, die eine spezielle Registerkennung (z. B. im vorstehenden Beispiel R1) enthält. Die logische Adresse wird in Block 408 durch den Registerzuordner 114 in die spezielle Registerkennung umgewandelt. In Block 410 wird die spezielle Registerkennung in den konstanten Wert umgewandelt. Wie vorstehend beschrieben, kann die spezielle Registerkennung in den konstanten Wert umgewandelt werden, indem die niedrigstwertigen Bits der speziellen Registerkennung ausgewählt werden. Der an diesem Speicherort gespeicherte konstante Wert wird dann in Block 412 der Ausführungseinheit 102 durch den physischen Registerspeicher 106 bereitgestellt.In block 406 will receive a subsequent instruction containing the logical address containing a special register identifier (e.g., in example R1 above). The logical address is in block 408 through the register allocator 114 converted into the special register identifier. In block 410 the special register identifier is converted to the constant value. As described above, the special register identifier may be converted to the constant value by selecting the least significant bits of the particular register identifier. The constant value stored in this location will then be in block 412 the execution unit 102 through the physical register memory 106 provided.

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 5 beinhaltet in einem Beispiel ein Computerprogrammprodukt 500 beispielsweise ein oder mehrere Speichermedien 502, um Mittel von computerlesbarem Programmcode oder Logik 504 darauf zu speichern und einen oder mehrere Aspekte von hierin beschriebenen Ausführungsformen bereitzustellen und zu erleichtern, wobei das Medium gegenständlich und/oder nichtflüchtig sein kann.With reference to 5 includes in one example a computer program product 500 for example, one or more storage media 502 to make means of computer-readable program code or logic 504 and to provide and facilitate one or more aspects of embodiments described herein, which medium may be objective and / or non-transitory.

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)

Computerprogrammprodukt zum Ändern eines einer logischen Adresse in einer Recheneinheit zugehörigen Werkes, wobei das Computerprogrammprodukt aufweist: ein gegenständliches Speichermedium, das durch eine Verarbeitungsschaltung lesbar ist und Anweisungen zum Durchführen eines Verfahrens zur Ausführung durch die Verarbeitungsschaltung speichert, wobei das Verfahren aufweist: 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.A computer program product for modifying a plant associated with a logical address in a computational unit, the computer program product comprising: a subject storage medium readable by a processing circuit and storing instructions for performing a method of execution by the processing circuit, the method comprising: 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. Computerprogrammprodukt nach Anspruch 1, wobei das Verfahren weiterhin aufweist: Zuweisen eines unveränderlichen konstanten Wertes zu einem oder mehreren der Register in dem physischen Registerspeicher; und wobei die spezielle Registerkennung gleich einer Adresse des Registers in dem physischen Registerspeicher mit einem unveränderlichen konstanten Wert gleich dem konstanten Wert ist.The computer program product of claim 1, wherein the method further comprises: Assigning a fixed constant value to one or more of the registers in the physical register memory; and wherein the special 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. Computerprogrammprodukt nach Anspruch 1, wobei der durch die spezielle Registerkennung wiedergegebenen Speicherort nicht in dem physischen Registerspeicher enthalten ist.The computer program product of claim 1, wherein the storage location represented by the particular register identifier is not included in the physical register memory. Computerprogrammprodukt nach Anspruch 3, wobei die spezielle Registerkennung gleich dem konstanten Wert ist oder in diesen umgewandelt werden kann.The computer program product of claim 3, wherein the particular register identifier is equal to or can be converted to the constant value. Computerprogrammprodukt nach Anspruch 4, wobei das Verfahren weiterhin aufweist: Empfangen einer Anweisung, die ein Abrufen eines Wertes aus dem Zielregister erfordert; Umwandeln der speziellen Registerkennung in den konstanten Wert mithilfe einer Hash-Funktion; und Bereitstellen des konstanten Wertes für die Ausführungseinheit.The computer program product of claim 4, the method further comprising: receiving an instruction requiring retrieval of a value from the destination register; Converting the special register identifier into the constant value using a hash function; and Provide the constant value for the execution unit. Computerprogrammprodukt nach Anspruch 1, wobei die spezielle Registerkennung unabhängig von der Ausführungseinheit zugewiesen wird.The computer program product of claim 1, wherein the specific register identifier is assigned independently of the execution unit. Computerprogrammprodukt nach Anspruch 6, wobei das System weiterhin eine Ausgabewarteschlange enthält und die spezielle Registerkennung unabhängig von der Ausgabewarteschlange zugewiesen wird.The computer program product of claim 6, wherein the system further includes an output queue and the particular register identifier is assigned independently of the output queue. Verfahren zum Ändern eines einer logischen Adresse in einer Recheneinheit zugehörigen Wertes, wobei das Verfahren aufweist: Empfangen einer Anweisung durch einen Anweisungsdecodierer, wobei die Anweisung ein als ein logischer Werft 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.A method of modifying a value associated with a logical address in a computational unit, the method comprising: Receiving an instruction by an instruction decoder, the instruction including a destination register expressed as a logical yard; 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. System, aufweisend: eine Ausführungseinheit; einen der Ausführungseinheit zugehörigen physischen Registerspeicher; einen Anweisungsdecodierer, der eine Anweisung empfängt, wobei die Anweisung ein als ein logischer Wert ausgedrücktes Zielregister enthält, wobei der Anweisungsdecodierer Logik enthält, die eingerichtet ist, festzustellen, dass ein Ergebnis der Anweisung das Zielregister auf einen konstanten Wert setzen soll; und einen Registerzuordner, der das Zielregister einem durch eine spezielle Registerkennung wiedergegebenen Speicherort zuordnet.System comprising: an execution unit; a physical register memory associated with the execution unit; an instruction decoder receiving an instruction, the instruction including a destination register expressed as a logical value, the instruction decoder including logic configured to determine that a result of the instruction is to set the destination register to a constant value; and a register mapper that maps the destination register to a storage location represented by a specific register identifier. System nach Anspruch 9, wobei ein oder mehrere der Register in dem physischen Registerspeicher einem unveränderlichen konstanten Wert zugewiesen sind, und wobei die spezielle Registerkennung auf das Register in dem physischen Registerspeicher mit einem unveränderlichen konstanten Wert gleich dem konstanten Wert verweist.The system of claim 9, wherein one or more of the registers in the physical register memory are assigned a fixed constant value, and wherein the particular register identifier references the register in the physical register memory having a fixed constant value equal to the constant value. System nach Anspruch 9, wobei die spezielle Registerkennung auf eine Adresse verweist, die nicht in dem physischen Registerspeicher enthalten ist.The system of claim 9, wherein the particular register identifier references an address that is not included in the physical register memory. System nach Anspruch 11, wobei die spezielle Registerkennung gleich dem konstanten Wert ist oder in diesen umgewandelt werden kann.The system of claim 11, wherein the particular register identifier is equal to or can be converted to the constant value. System nach Anspruch 12, wobei der physische Registerspeicher weiterhin eingerichtet ist, die spezielle Registerkennung mithilfe einer Hash-Funktion in den konstanten Wert umzuwandeln, und den konstanten Wert der Ausführungseinheit bereitstellt, wenn durch den Anweisungsdecodierer eine weitere Anweisung empfangen wird, die das Zielregister enthält.The system of claim 12, wherein 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.
DE201310210640 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 Withdrawn DE102013210640A1 (en)

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)

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