DE10065754A1 - Execution of computer code out of sequence so that it runs faster, relating particularly to multiprocessor systems, with data attributes declared that define data in such a way that data integrity is preserved. - Google Patents
Execution of computer code out of sequence so that it runs faster, relating particularly to multiprocessor systems, with data attributes declared that define data in such a way that data integrity is preserved.Info
- Publication number
- DE10065754A1 DE10065754A1 DE10065754A DE10065754A DE10065754A1 DE 10065754 A1 DE10065754 A1 DE 10065754A1 DE 10065754 A DE10065754 A DE 10065754A DE 10065754 A DE10065754 A DE 10065754A DE 10065754 A1 DE10065754 A1 DE 10065754A1
- Authority
- DE
- Germany
- Prior art keywords
- source code
- data
- machine
- attribute
- machine instructions
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/445—Exploiting fine grain parallelism, i.e. parallelism at instruction level
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
Die vorliegende Patentanmeldung betrifft ein Verfahren zur Steuerung eines Computersystems, ein Computersystem mit einer Ausführungseinheit und ein entsprechendes Computerprogramm produkt, welches auf einem computergeeigneten Medium gespei chert ist.The present patent application relates to a method for Control of a computer system, a computer system with a Execution unit and a corresponding computer program product that is stored on a computer-compatible medium chert is.
Computersysteme mit herkömmlichen Prozessoren zeichnen sich dadurch aus, daß der Prozessor (Recheneinheit) Instruktionen aus einem Befehlsspeicher lädt und diese in der Reihenfolge abarbeitet, wie sie in dem Befehlsspeicher gespeichert sind. Dadurch ist stets sichergestellt, daß ein Speicher-Schreib- Befehl, der in der Reihenfolge in dem Befehlsspeicher vor ei nem Speicher-Lese-Befehl angeordnet ist auch vor dem Spei cher-Lese-Befehl ausgeführt wird, so daß die Daten bereits in dem Datenspeicher gespeichert sind und der Speicher-Lese- Befehl die tatsächlich aktuellen Daten aus dem Speicher er hält.Computer systems with conventional processors stand out characterized in that the processor (arithmetic unit) instructions loads from a command memory and this in order processes how they are stored in the command memory. This always ensures that a memory write Command that is in order in the command memory before ei A memory read command is also arranged before the memory cher read command is executed so that the data is already in the data memory are stored and the memory read Command the actual current data from the memory holds.
Moderne Prozessoren weisen beispielsweise mehrere parallele Rechenwerke auf, so daß Befehle in ihrer Abarbeitungsreihen folge innerhalb eines Prozessors vertauscht werden können, um in einer parallelen Recheneinheit ausgeführt zu werden, wo durch die Gesamtverarbeitungsleistung des Prozessors steigt. Eine weitere Steigerung der Verarbeitungsgeschwindigkeit ei nes Computersystems ist beispielsweise durch die Anordnung mehrerer Prozessoren möglich. Hierbei wird die vorliegende Befehlsfolge auf mehrere Prozessoren verteilt, wodurch eine beschleunigte Abarbeitung des zugrundeliegenden Problems er reicht wird. Modern processors, for example, have several in parallel Arithmetic units so that commands in their processing rows order within a processor can be swapped to to be run in a parallel computing unit where due to the total processing power of the processor. A further increase in processing speed Nes computer system is, for example, by the arrangement multiple processors possible. Here the present Instruction sequence distributed over several processors, whereby a accelerated processing of the underlying problem is enough.
Problematisch ist hierbei, daß Befehle in ihrer Reihenfolge vertauscht werden, wodurch Dateninkonsistenzen entstehen kön nen.The problem here is that commands are in their order are exchanged, which can result in data inconsistencies NEN.
Dies ist beispielsweise der Fall, wenn in einem ersten Pro zessor ein Ergebnis berechnet wird und die korrekte Berech nung des Ergebnisses nachfolgend von einem zweiten Prozessor verwendet werden muß. Ein mögliches Vorgehen um dies durchzu führen sieht vor, daß die korrekte Berechnung des Ergebnisses von dem ersten Prozessor in einem Signalfeld angezeigt wird. Ein zweiter Prozessor greift nun erst dann auf das von dem ersten Prozessor berechnete Ergebnis zu, wenn das Signalfeld anzeigt, daß das Ergebnis korrekt und vollständig berechnet wurde. Wird nun die Reihenfolge der Abarbeitung in dem ersten Prozessor vertauscht, so kann das Signalfeld ein vermeintlich gültig berechnetes Ergebnis anzeigen, obwohl der erste Pro zessor dieses Ergebnis noch nicht berechnet hat. Folglich werden im zweiten Prozessor falsche Daten weiterverarbeitet. Das beschriebene Problem tritt nicht nur für mehrere Prozes soren auf, sondern ist bereits in einem Prozessor mit mehre ren Tasks, Prozesse oder Threads vorhanden. Dieses Problem kann beispielsweise dadurch gelöst werden, daß bei den moder nen Prozessoren die parallele Abarbeitung beziehungsweise die sichtbare Vertauschung der Reihenfolge der Abarbeitung gene rell unterdrückt wird. Weiterhin wäre das Problem dadurch lösbar, daß lediglich ein Prozessor des Computersystems ein vorliegendes Programm bearbeitet und die übrigen Prozessoren des Computersystems keinen Beitrag zu der Bearbeitung des Programms leisten. Beide Vorgehen führen allerdings zu einer wesentlich reduzierten Rechenleistung des Computersystems.This is the case, for example, if in a first pro a result is calculated and the correct calculation The result is subsequently obtained from a second processor must be used. A possible way to do this provides that the correct calculation of the result is displayed by the first processor in a signal field. Only then does a second processor access the one from the first processor calculated result when the signal field indicates that the result is calculated correctly and completely has been. Now the order of processing in the first Processor swapped, so the signal field can be a supposed Show validly calculated result, although the first Pro processor has not yet calculated this result. consequently incorrect data is processed in the second processor. The problem described does not only occur for several processes sensors, but is already in one processor with several tasks, processes or threads. This problem can be solved, for example, that the moder NEN processors parallel processing or visible reversal of the order of processing is quickly suppressed. The problem would continue solvable that only one processor of the computer system Edited this program and the other processors the computer system does not contribute to the processing of the Program. However, both approaches lead to one significantly reduced computing power of the computer system.
Es ist die Aufgabe der Erfindung ein Verfahren zur Steuerung eines Computers anzugeben, das zu einer effizienteren Ar beitsweise des Computersystems führt, ein entsprechendes Com putersystem mit einer Ausführungsumgebung anzugeben und ein entsprechendes Computerprogrammprodukt anzugeben. It is the object of the invention to provide a control method to specify a computer that will lead to a more efficient ar of the computer system, a corresponding com to specify the computer system with an execution environment and a to specify the corresponding computer program product.
Erfindungsgemäß wird die Aufgabe gelöst durch ein Verfahren
zur Steuerung eines Computersystems bei dem
According to the invention, the object is achieved by a method for controlling a computer system in the
- - ein Quellcode mit Quellcode-Befehlen erstellt ist, die in einer Befehlsreihenfolge angeordnet sind;- A source code with source code commands is created, which in an order of commands are arranged;
- - wobei der Quellcode eine Datendeklaration umfaßt und die Datendeklaration einem ersten Datenspeicher ein erstes At tribut zuordnet und einem zweiten Datenspeicher ein zweites Attribut zuordnet; und- The source code includes a data declaration and the Data declaration a first data store a first at assigns tribute and a second to a second data storage Assigns attribute; and
- - der Quellcode in Maschineninstruktionen übersetzt wird und die Maschineninstruktionen umsortiert werden, so daß die Maschineninstruktionen eine Maschineninstruktions- Reihenfolge aufweisen, die von der Befehlsreihenfolge ab weicht; und- The source code is translated into machine instructions and the machine instructions are rearranged so that the Machine instructions a machine instruction Order that depends on the order of commands gives way; and
- - die Maschineninstruktionen in einem Befehlsspeicher gespei chert werden und von einer Recheneinheit aus dem Befehls speicher geladen werden und abweichend von der Maschinenin struktions-Reihenfolge von der Recheneinheit ausgeführt werden;- The machine instructions stored in a command memory be saved and from a processing unit from the command memory and different from the machine Structural order executed by the computing unit become;
- - wobei das erste Attribut des ersten Datenspeichers und das zweite Attribut des zweiten Datenspeichers bewirken, daß die Umsortierung der Maschineninstruktionen bei der Über setzung in einer ersten vorbestimmten Weise eingeschränkt wird; und- The first attribute of the first data store and the second attribute of the second data memory cause that the rearrangement of the machine instructions at the Über restricted in a first predetermined manner becomes; and
- - wobei das erste Attribut des ersten Datenspeichers bewirkt, daß die Umsortierung der Maschineninstruktionen bei der Ausführung in der Recheneinheit in einer zweiten vorbe stimmten Weise eingeschränkt wird.The first attribute of the first data storage means, that the reordering of the machine instructions at the Execution in the processing unit in a second agreed is restricted.
Ein Vorteil des erfindungsgemäßen Verfahrens besteht darin, daß ein erstes Attribut und ein zweites Attribut zur Deklara tion von Daten verwendet werden, wobei das erste Attribut ei ne andere Einschränkung bezüglich der Vertauschbarkeit von Instruktionen beinhaltet, als das zweite Attribut. Beispiels weise beinhaltet das erste Attribut eine Wirkung bezüglich der Vertauschbarkeit von Maschineninstruktionen, die sich so wohl auf den Übersetzungsprozeß des Quellcodes in Maschi neninstruktionen als auch auf die Ausführungsreihenfolge der Maschineninstruktionen in der Recheneinheit auswirken. Das zweite Attribut beinhaltet eine Wirkung bezüglich der Ver tauschbarkeit von Maschineninstruktionen, die sich lediglich auf den Übersetzungsprozeß des Quellcodes in Maschinenin struktionen auswirkt.An advantage of the method according to the invention is that that a first attribute and a second attribute to declare tion of data are used, the first attribute being egg another restriction regarding the interchangeability of Instructions included as the second attribute. example wisely, the first attribute has an effect on the interchangeability of machine instructions that are so probably on the translation process of the source code in Maschi instructions as well as the execution order of the Machine instructions affect the computing unit. The second attribute includes an effect on ver Interchangeability of machine instructions that are only on the translation process of the source code into machines structures affects.
Das erste Attribut kann die Datenintegrität eines Mehrprozes sorsystems gewährleisten, da die Vertauschbarkeit von Maschi neninstruktionen sowohl bei der Übersetzung, als auch bei der Programmausführung verhinderbar ist. Dies stellt zunächst ei ne Einschränkung dar, welche die Abarbeitungsgeschwindigkeit des Computerprogramms bremst. Um eine beschleunigte Abarbei tung des Computerprogramms zu ermöglichen, kann zum Beispiel eine Instruktionsreihenfolge, die nur einen Prozessor be trifft, mit Hilfe des zweiten Attributs erzeugt werden. Das zweite Attribut beinhaltet beispielsweise nur eine Einschrän kung der Vertauschung von Maschineninstruktionen für die Übersetzung, so daß ein einzelner Prozessor intern die Abar beitungsreihenfolge ändern kann, um eine beschleunigte Abar beitung des Computerprogramms zu erzielen. Moderne Prozesso ren weisen dabei Mittel auf, welche die Datenkonsistenz ge währleisten.The first attribute can be the data integrity of a multiprocess ensure the interchangeability of machines instructions for both translation and translation Program execution can be prevented. This initially provides ne limitation, which is the processing speed of the computer program brakes. Accelerated processing To enable the computer program, for example an order of instructions that only be one processor is created using the second attribute. The for example, the second attribute contains only one restriction exchange of machine instructions for the Translation so that a single processor internally the Abar processing order can change to an accelerated Abar to achieve processing of the computer program. Modern processing Ren have means that ensure data consistency währleisten.
Eine Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß die Übersetzung des Quellcodes in Maschineninstruk tionen mittels eines Interpreters oder eines Compilers oder eines Just-In-Time Compilers durchgeführt wird. Ein Interpre ter ist zur Übersetzung des Quellcodes geeignet, wobei die Übersetzung zur Laufzeit des Programms zum Zeitpunkt der Ver arbeitung eines Befehls erfolgt. Ein Compiler übersetzt den Quellcode vorab, so daß eine effiziente Programmabarbeitung erfolgen kann. Ein Just-In-Time Compiler übersetzt den Quellcode zur Programmlaufzeit, wobei im Gegensatz zum Inter preter die aus dem Quellcode erzeugten Maschineninstruktionen gespeichert werden, so daß sie nur einmal übersetzt werden müssen. An embodiment of the method according to the invention provides before translating the source code into machine instruct tion by means of an interpreter or a compiler or a just-in-time compiler. An interpreter ter is suitable for translating the source code, whereby the Translation at the time of the program at the time of ver command is processed. A compiler translates the Source code in advance, so that efficient program execution can be done. A just-in-time compiler translates the Source code at program runtime, whereby in contrast to the Inter preter the machine instructions generated from the source code saved so that they are translated only once have to.
Eine weitere Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß das erste Attribut des ersten Datenspeichers zusammen mit einem ersten Quellcode-Befehl, der auf den er sten Datenspeicher zugreift, die Erzeugung einer ersten Ma schineninstruktion bei der Übersetzung bewirkt, die eine er ste Grenze bildet.Another embodiment of the method according to the invention provides that the first attribute of the first data store along with a first source code command that he clicked on Most data storage accesses, the generation of a first Ma Machine instruction in translation causes the one he is the limit.
Eine weitere Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß das zweite Attribut des zweiten Datenspeichers zusammen mit einem zweiten Quellcode-Befehl, der auf den zweiten Datenspeicher zugreift, die Erzeugung einer zweiten Maschineninstruktion bei der Übersetzung bewirkt, die eine zweite Grenze bildet.Another embodiment of the method according to the invention provides that the second attribute of the second data store together with a second source code command that is sent to the accesses second data storage, generating a second Machine instruction in translation causes one forms the second border.
Eine weitere Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß es sich bei der ersten Grenze oder der zweiten Grenze um eine Fence-Maschineninstruktion handelt oder um ei ne Maschineninstruktion handelt, welche die Wirkung einer Fence-Maschineninstruktion beinhaltet. Fence- Maschineninstruktionen beziehungsweise Maschineninstruktio nen, welche die Wirkung einer Fence-Maschineninstruktion be inhalten, sind für moderne Prozessoren bekannt.Another embodiment of the method according to the invention stipulates that the first limit or the second Boundary is a fence machine instruction or egg ne machine instruction that affects the effect of a Fence machine instruction included. Fence- Machine instructions or machine instructions that affect the effect of a fence machine instruction are known for modern processors.
Eine weitere Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß es sich bei dem ersten Quellcode-Befehl oder dem zweiten Quellcode-Befehl um einen Speicher-Lese-Zugriff handelt, der eine in dem ersten oder dem zweiten Datenspei cher gespeicherte Information ausliest oder einen Speicher- Schreib-Zugriff handelt, der eine Information in den ersten oder dem zweiten Datenspeicher einschreibt.Another embodiment of the method according to the invention stipulates that the first source code command or the second source code command for a memory read access is one in the first or the second data storage reads stored information or a storage Write access that is information in the first or the second data store.
Handelt es sich bei dem Quellcode-Befehl beispielsweise um den Zugriff auf ein Signalfeld, so kann das Signalfeld bei spielsweise dazu verwendet werden um sicherzustellen, daß al le im Programm vor dem Zugriff auf das Signalfeld angeordne ten Maschineninstruktionen mit Sicherheit abgearbeitet sind, bevor das Signalfeld einen Signalwert erhält. For example, the source code command is access to a signal field, the signal field at can be used for example to ensure that al arrange in the program before access to the signal field machine instructions are processed with certainty, before the signal field receives a signal value.
Eine weitere Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß während der Übersetzung und während der Aus führung in einer Recheneinheit sichergestellt ist, daß alle Quellcode-Befehle, die vor dem ersten Quellcode-Befehl ange ordnet sind, in Maschineninstruktionen übersetzt werden, die in der Maschineninstruktions-Reihenfolge vor der ersten Ma schineninstruktion angeordnet sind und sichergestellt wird, daß alle vor der ersten Maschineninstruktion angeordneten Ma schineninstruktionen ausgeführt werden, bevor eine nach der ersten Maschineninstruktion angeordnete Maschineninstruktion ausgeführt wird.Another embodiment of the method according to the invention stipulates that during translation and during translation management in a processing unit ensures that all Source code commands that appear before the first source code command are translated into machine instructions that in the machine instruction order before the first Ma machine instructions are arranged and it is ensured that all Ma. arranged before the first machine instruction machine instructions are executed before one after the first machine instruction arranged machine instruction is performed.
Eine weitere vorteilhafte Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß während der Übersetzung sicherge stellt ist, daß alle Quellcode-Befehle, die vor dem zweiten Quellcode-Befehl angeordnet sind, in Maschineninstruktionen übersetzt werden, die in der Maschineninstruktions- Reihenfolge vor der zweiten Maschineninstruktion angeordnet sind.Another advantageous embodiment of the invention The procedure provides that during the translation is that all source code commands before the second Source code command are arranged in machine instructions that are translated in the machine instruction Order arranged before the second machine instruction are.
Eine weitere vorteilhafte Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß während der Übersetzung und während der Ausführung in einer Recheneinheit sichergestellt ist, daß über die erste Grenze hinweg keine sichtbare Vertauschung in der Maschineninstruktions-Reihenfolge erfolgt.Another advantageous embodiment of the invention The procedure provides that during translation and during the execution in a computing unit ensures that no visible exchange in the machine instruction sequence.
Eine weitere vorteilhafte Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß während der Übersetzung sicherge stellt ist, daß über die zweite Grenze hinweg keine sichtbare Vertauschung in der Maschineninstruktions-Reihenfolge er folgt.Another advantageous embodiment of the invention The procedure provides that during the translation is that there is no visible one across the second border Swap in the machine instruction order follows.
Hierdurch ist sichergestellt, daß eine sichtbare Vertauschung von Instruktionen über die Grenze hinweg ausgeschlossen ist, so daß Programmteile strikt getrennt werden können. Eine sichtbare Vertauschung beinhaltet beispielsweise die Vertauschung der Abarbeitungsreihenfolge von Maschineninstruktionen beziehungsweise die Vertauschung des Abschusses der Abarbei tung einer Maschineninstruktion, die für andere Prozessoren oder Prozesse sichtbar wird.This ensures that there is a visible mix-up is excluded from instructions across the border, so that program parts can be strictly separated. A visible swapping includes swapping, for example the processing order of machine instructions or the exchange of the shooting of the Abarbei machine instruction for other processors or processes become visible.
Bezüglich des Computersystems wird die Aufgabe gelöst durch
ein Computersystem mit einer Ausführungsumgebung
With regard to the computer system, the object is achieved by a computer system with an execution environment
- - für die ein Quellcode mit Quellcode-Befehlen erstellt ist, die in einer Befehlsreihenfolge angeordnet sind;- for which a source code with source code commands has been created, which are arranged in an order of commands;
- - wobei der Quellcode eine Datendeklaration umfaßt und die Datendeklaration einem ersten Datenspeicher ein erstes At tribut zuordnet und einem zweiten Datenspeicher ein zweites Attribut zuordnet; und- The source code includes a data declaration and the Data declaration a first data store a first at assigns tribute and a second to a second data storage Assigns attribute; and
- - wobei das Computersystem Mittel aufweist, um den Quellcode zur Ausführung durch das Computersystem von dem Computersy stem in Maschineninstruktionen zu übersetzen, wobei die Ma schineninstruktionen umsortiert werden, so daß die Maschi neninstruktionen eine Maschineninstruktions-Reihenfolge aufweisen, die von der Befehlsreihenfolge abweicht; und- The computer system having means for the source code for execution by the computer system from the Computersy system into machine instructions, the Ma machine instructions are rearranged so that the machine machine instructions an order of machine instructions have which deviates from the order of commands; and
- - die Maschineninstruktionen in einem Befehlsspeicher zur Verarbeitung von einer Recheneinheit gespeichert sind und die Recheneinheit Mittel aufweist, die zur Vertauschung der Maschineninstruktions-Reihenfolge geeignet sind;- The machine instructions in a command memory for Processing are stored by a computing unit and the computing unit has means for swapping the Machine instruction order are suitable;
- - wobei das Computersystem Mittel aufweist, die bewirken, daß das erste Attribut des ersten Datenspeichers und das zweite Attribut des zweiten Datenspeichers die Umsortierung der Maschineninstruktionen bei der Übersetzung in einer ersten vorbestimmten Weise einschränken; und- The computer system having means which cause the first attribute of the first data store and the second Attribute of the second data store the resorting of Machine instructions for translation in a first restrict in a predetermined manner; and
- - wobei das Computersystem Mittel aufweist, die bewirken, daß das erste Attribut des ersten Datenspeichers die. Umsortie rung der Maschineninstruktionen bei der Ausführung in der Recheneinheit in einer zweiten vorbestimmten Weise einge schränkt.- The computer system having means which cause the first attribute of the first data store the. Umsortie The machine instructions for execution in the Computing unit turned on in a second predetermined manner limits.
Das erfindungsgemäße Computersystem ermöglicht die Vertau schung und parallele Abarbeitung von Instruktionen, die in einem Befehlsspeicher gespeichert sind. Dies führt zu einer beschleunigten Abarbeitung der in einem Befehlsspeicher ge speicherten Instruktionen, wobei durch zusätzliche Mittel si chergestellt ist, daß die Umsortierung der Maschineninstruk tionen in einer vorbestimmten Weise eingeschränkt ist. Hier durch wird ermöglicht, daß eine Dateninkonsistenz während der Abarbeitung der Instruktionen vermieden wird. Weiterhin ist vorgesehen, daß die Mittel lediglich bei der Übersetzung die Umsortierung der Maschineninstruktionen einschränken.The computer system according to the invention enables stowage research and parallel processing of instructions in an instruction memory are stored. This leads to a accelerated execution of the ge in a command memory stored instructions, whereby si by additional means It is established that the rearrangement of the machine instruct tion is restricted in a predetermined manner. here by enables a data inconsistency during the Processing of instructions is avoided. Still is provided that the funds only in translation Limit reordering of machine instructions.
Bezüglich des Computerprogrammprodukts wird die Aufgabe ge löst durch ein Computerprogrammprodukt, das direkt in dem in tegrierten Speicher eines digitalen Computers geladen werden kann und Softwarecode-Abschnitte umfaßt, mit denen die Schritte gemäß einem der Ansprüche 1 bis 10 ausgeführt wer den, wenn das Programmprodukt auf einem Computer läuft.With regard to the computer program product, the task is ge solves through a computer program product that is directly in the in tegrated memory of a digital computer can and includes software code sections with which the Steps according to one of claims 1 to 10 who performed when the program product runs on a computer.
Weiterhin wird die Aufgabe bezüglich des Computerprogrammpro dukts gelöst durch ein Computerprogrammprodukt, das auf einem computergeeigneten Medium gespeichert ist und Computerlesbare Programmittel umfaßt, mit denen die Schritte gemäß einem der Ansprüche 1 bis 10 ausgeführt werden, wenn das Programmpro dukt auf einem Computer läuft.Furthermore, the task regarding the computer program is products solved by a computer program product based on a computer-compatible medium is stored and computer-readable Program means includes with which the steps according to one of the Claims 1 to 10 are executed when the program pro runs on a computer.
Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der jeweiligen Unteransprüche.Advantageous embodiments of the invention are the subject of the respective subclaims.
Nachfolgend wird die Erfindung anhand von Ausführungsbeispie len und Figuren näher erläutert.The invention is described below with reference to exemplary embodiments len and figures explained in more detail.
In den Figuren zeigen:The figures show:
Fig. 1 einen Quellcode mit Quellcode-Befehlen, sowie aus dem Quellcode generierte Maschineninstruktionen; . Figure 1 shows a source code with source code instructions, as well as generated from source machine instructions;
Fig. 2 ein Computersystem mit einer ersten Recheneinheit, einem ersten Befehlsspeicher und einem Datenspeicher sowie einer zweiten Recheneinheit mit einem zweiten Befehlsspeicher; Figure 2 is a computer system having a first processor, a first instruction memory and a data memory and a second processor having a second instruction memory.
In Fig. 1 ist ein Quellcode 7 dargestellt, der Quellcode- Befehle 8 enthält. Die Quellcode-Befehle 8 sind in einer Be fehlsreihenfolge 9 angeordnet. Der Quellcode 7 umfaßt dabei eine Datendeklaration 10, die einem ersten Datenspeicher 11 ein erstes Attribut 12 und einem zweiten Datenspeicher 13 ein zweites Attribut 14 zuordnet. Zusätzlich ist in dem Quellcode 7 ein erster Quellcode-Befehl 17 und ein zweiter Quellcode- Befehl 20 angeordnet. Weiterhin ist in Fig. 1 ein erster Be fehlsspeicher 4 dargestellt, in dem Maschineninstruktionen 15 in einer Maschineninstruktions-Reihenfolge 16 angeordnet sind, wobei die Maschineninstruktionen 15 aus den Quellcode- Befehlen 8 übersetzt worden sind. Die Übersetzung der Maschi neninstruktionen 15 aus den Quellcode-Befehlen 8 kann zum ei nen während der Laufzeit des Programms durchgeführt werden. Weiterhin ist es möglich, daß ein Compiler vor der Laufzeit des Programms die Maschineninstruktionen 15 erzeugt, wodurch eine effiziente Abarbeitung des Computerprogramms möglich ist. Weiterhin ist es möglich, daß ein Just-In-Time Compiler die Quellcode-Befehle 8 in die Maschineninstruktionen 15 übersetzt, wodurch zur Laufzeit des Programms eine Überset zung für die speziell vorliegende Hardware des Computersy stems durchgeführt werden kann.In Fig. 1, a source 7 is shown, the source code contains commands. 8 The source code commands 8 are arranged in a command sequence 9 . The source code 7 comprises a data declaration 10 which assigns a first attribute 12 to a first data memory 11 and a second attribute 14 to a second data memory 13 . In addition, a first source code command 17 and a second source code command 20 are arranged in the source code 7 . Further, 1 is a first loading is shown in Fig. Failed memory 4, are disposed in the machine instructions 15 in a machine instruction sequence 16, wherein the machine instructions have been translated 15 from the source code instructions. 8 The translation of the machine instructions 15 from the source code commands 8 can be carried out during the runtime of the program. Furthermore, it is possible for a compiler to generate the machine instructions 15 before the program runs, which enables the computer program to be processed efficiently. Furthermore, it is possible for a just-in-time compiler to translate the source code commands 8 into the machine instructions 15 , as a result of which a translation can be carried out for the specific hardware of the computer system at runtime of the program.
In Fig. 2 ist ein Computersystem 1 dargestellt. Das Compu tersystem 1 umfaßt eine erste Recheneinheit 2 und eine zweite Recheneinheit 3. Die erste Recheneinheit 2 ist mit dem ersten Befehlsspeicher 4 und die zweite Recheneinheit 3 ist mit ei nem zweiten Befehlsspeicher 5 verbunden. Die erste Rechenein heit 2 und die zweite Recheneinheit 3 sind mit einem Daten speicher 6 verbunden. In dem ersten Befehlsspeicher 4 sind die Maschineninstruktionen 15 in der Maschineninstruktions- Reihenfolge 16 angeordnet. In FIG. 2, a computer system 1 is shown. The computer system 1 comprises a first computing unit 2 and a second computing unit 3 . The first arithmetic unit 2 is connected to the first instruction memory 4 and the second arithmetic unit 3 is connected to a second instruction memory 5 . The first arithmetic unit 2 and the second arithmetic unit 3 are connected to a data memory 6 . The machine instructions 15 are arranged in the first instruction memory 4 in the machine instruction sequence 16 .
In dem Datenspeicher 6 sind ein erster Datenspeicher 11, ein zweiter Datenspeicher 13 und ein dritter Datenspeicher 25 an geordnet.A first data memory 11 , a second data memory 13 and a third data memory 25 are arranged in the data memory 6 .
Die Maschineninstruktionen 15 umfassen vertauschbare Maschi neninstruktionen 23 sowie einen ersten Datenzugriff 24, der auf den dritten Datenspeicher 25 zugreift. Nachfolgend umfas sen die Maschineninstruktionen 15 eine erste Maschinenin struktion 18, die einen Datenzugriff auf den ersten Daten speicher 11 beinhaltet. Die erste Maschineninstruktion 18 um faßt eine erste Grenze 19, da die erste Maschineninstruktion 18 auf den mit dem ersten Attribut 12 markierten ersten Da tenbereich 11 zugreift. Umfassen beispielsweise die ver tauschbaren Maschineninstruktionen 23 die Berechnung eines Ergebnisses, welches mittels des ersten Datenzugriffs 24 in dem dritten Datenspeicher 25 gespeichert wird, so ist es er forderlich, daß mittels der ersten Maschineninstruktion 18 ein Signalwert in den ersten Datenspeicher 11 erst dann ein geschrieben wird, wenn der erste Datenzugriff 24 den Schreibvorgang in dem dritten Datenspeicher 25 beendet hat. Dadurch ist ermöglicht, daß der zweite Prozessor 3 die in dem zweiten Befehlsspeicher 5 angeordnete Abfrage- Maschineninstruktion 25 durchführt, um damit sicherzustellen, daß die in der nachfolgend ausgeführten Datenlese- Maschineninstruktion 27 aus dem dritten Datenspeicher gelese nen Daten gültig sind. Die Reihenfolge des ersten Datenzu griffs 24 und der ersten Maschineninstruktion 18 ist Prozes sorübergreifend einzuhalten, so daß sowohl bei der Überset zung des Quellcodes 7 in die Maschineninstruktionen 15 als auch bei der Ausführung der ersten Maschineninstruktionen 15 in dem ersten Prozessor 2 die Vertauschbarkeit der Reihenfol ge eingeschränkt ist. Der erste Quellcode-Befehl 17 wird bei spielsweise in die erste Maschineninstruktion 18 übersetzt, wobei bei der Übersetzung berücksichtigt wird, daß ein in dem ersten Quellcode-Befehl 17 enthaltener Zugriff auf den ersten Datenspeicher 11 und die Attributierung des ersten Datenspei chers 11 mit dem ersten Attribut 12 berücksichtigt wird. The machine instructions 15 include interchangeable machine instructions 23 and a first data access 24 which accesses the third data memory 25 . Subsequently, the machine instructions 15 comprise a first machine instruction 18 , which includes data access to the first data memory 11 . The first machine instruction 18 by bordered a first boundary 19, because the first machine instruction 18 on the marked with the first attribute 12 first Since tenbereich 11 accesses. If, for example, the interchangeable machine instructions 23 include the calculation of a result which is stored in the third data memory 25 by means of the first data access 24 , then it is necessary for the first machine instruction 18 to write a signal value into the first data memory 11 only then when the first data access 24 has ended the write operation in the third data memory 25 . This enables the second processor 3 to execute the query machine instruction 25 arranged in the second instruction memory 5 , in order to ensure that the data read from the third data memory in the data reading machine instruction 27 executed below is valid. The order of the first Datenzu handle 24 and the first machine instruction 18 is observed Prozes sorübergreifend so that both the transla the source code 7-cutting in the machine instructions 15 as well as the execution of the first machine instructions 15 in the first processor 2, the interchangeability of the Reihenfol ge is restricted. The first source code command 17 is, for example, translated into the first machine instruction 18 , the translation taking into account that access to the first data memory 11 and the attribution of the first data memory 11 to the first are contained in the first source code command 17 Attribute 12 is taken into account.
Weiterhin ist vorgesehen, daß der zweite Quellcode-Befehl 20 in eine zweite Maschineninstruktion 21 übersetzt wird, die ebenfalls in dem ersten Befehlsspeicher 4 angeordnet ist. Der zweite Quellcode-Befehl 20 sieht einen Speicherzugriff auf den zweiten Datenspeicher 13 vor, der mit dem zweiten Attri but 14 gekennzeichnet ist. Dadurch ist gewährleistet, daß während des Übersetzens der Quellcode-Befehle 8 in die Ma schineninstruktionen 15 eine zweite Grenze 22 neben der zwei ten Maschineninstruktion 21 gebildet wird. Die zweite Grenze 22 sieht vor, daß während des Übersetzungsvorganges die Ver tauschung von Maschineninstruktionen in der Weise einge schränkt ist, daß die Datenkonsistenz gewährleistet bleibt. Die ist beispielsweise der Fall, wenn der erste Prozessor 2 exklusiv auf den zweiten Datenspeicher 13 zugreift. In diesem Fall kann der erste Prozessor 2 während der Laufzeit eine Vertauschung - auch über die durch die zweite Maschinenin struktion 21 gebildete Grenze 22 hinaus - durchführen, sofern der erste Prozessor 2 gewährleistet, daß die Datenkonsistenz gewährleistet bleibt.It is further provided that the second source code command 20 is translated into a second machine instruction 21 , which is also arranged in the first command memory 4 . The second source code command 20 provides memory access to the second data memory 13 , which is identified with the second attribute 14 . This ensures that a second boundary 22 is formed next to the two-th machine instruction 21 during the translation of the source code commands 8 into the machine instructions 15 . The second limit 22 provides that during the translation process, the exchange of machine instructions is restricted in such a way that data consistency is guaranteed. This is the case, for example, when the first processor 2 accesses the second data memory 13 exclusively. In this case, the first processor 2 can swap during the runtime - also beyond the limit 22 formed by the second machine instruction 21 - as long as the first processor 2 ensures that data consistency is guaranteed.
Das zweite Attribut 14 ist beispielsweise dann sinnvoll, wenn ein Interrupt zwischen zwei Instruktionen erfolgt, die in ei ner festen Reihenfolge zueinander auszuführen sind. Hierbei kann ein Fehler auftreten, wenn die Befehle in Ihrer Abarbei tungsreihenfolge vertauscht sind, da der von dem Interrupt aufgerufenen Interrupt-Handler die von den vertauschten Be fehlen bearbeiteten Datenbereiche zur Auswertung auslesen kann. Eine Vertauschung währen der Laufzeit innerhalb des Prozessors kann durch moderne Prozessoren erkannt werden, so daß die voreilige Speicherung von einem Signaldatum vor dem Speichern eines Nutzdatums von dem Prozessor erkannt und be hoben werden kann. Findet diese Vertauschung allerdings schon während der Übersetzung statt, so kann die bei der Überset zung geänderte Reihenfolge nicht vom Prozessor korrigiert werden. Die Ermöglichung der Vertauschung während der Abar beitung des Programms steigert die Abarbeitungsgeschwindigkeit des Programmcodes, da Befehle beispielsweise in einer parallelen Ausführungseinheit des Prozessors vorzeitig bear beitet werden können.The second attribute 14 is useful, for example, when an interrupt occurs between two instructions that are to be executed in a fixed order to one another. An error can occur here if the commands are swapped in their processing order, since the interrupt handler called by the interrupt can read out the data areas processed by the interchanged commands for evaluation. A swap during the runtime within the processor can be recognized by modern processors, so that the premature storage of a signal date before the storage of a useful date can be recognized and removed by the processor. However, if this exchange takes place during the translation, the order changed during the translation cannot be corrected by the processor. The possibility of swapping during the execution of the program increases the execution speed of the program code, since commands can be processed prematurely, for example in a parallel execution unit of the processor.
Ein weiteres Ausführungsbeispiel umfaßt ein Nutzdatum und ein Signaldatum, wobei das Nutzdatum von dem ersten Prozessor ge speichert sein sollte, bevor der erste Prozessor das Si gnaldatum speichert, das eine korrekte Speicherung des Nutz datums anzeigt. Ebenso sollte der zweite Prozessor erst das Signaldatum aus dem Speicher lesen und auswerten, so daß si chergestellt werden kann, daß in einem nachfolgenden Schritt gültige Nutzdaten von dem zweiten Prozessor aus dem Speicher gelesen werden. Dies kann mit dem ersten Attribut erreicht werden, daß sowohl die Vertauschung von Instruktionen während der Übersetzung, als auch die Vertauschung währen der Ausfüh rung einschränkt.Another embodiment includes a usage date and a Signal date, the date of use by the first processor should be saved before the first processor the Si gnaldatum saves the correct storage of the user date. Likewise, the second processor should only do that Read and evaluate signal date from memory so that si can be made that in a subsequent step valid user data from the second processor from the memory to be read. This can be achieved with the first attribute be that both the swapping of instructions during translation and exchange during execution restriction.
Wird ein Nutzdatum und ein Signaldatum beziehungsweise eine Datenstruktur und ein auf die Datenstruktur zeigender Zeiger (Pointer) nur von einem Prozessor verwendet, so sollte auch bei einem auftretenden Interrupt sichergestellt sein, daß das Signaldatum erst dann gesetzt ist, wenn die Nutzdaten bereits geschrieben sind beziehungsweise der Zeiger auf eine Daten struktur erst dann verwendet wird, wenn die Datenstruktur be reits mit gültigen Daten gefüllt (initialisiert) ist. Dies kann mit dem zweiten Attribut erreicht werden, welches die Vertauschung von Instruktionen während der Übersetzung ein schränkt und während der Laufzeit ermöglicht. Da das Vertau schen von dem Prozessor während der Laufzeit durchgeführt wird, können die daraus entstehenden Dateninkonsistenzen von dem Prozessor korrigiert werden. If a usage date and a signal date or Data structure and a pointer pointing to the data structure (Pointer) used only by one processor, so should also if an interrupt occurs, ensure that the Signal date is only set when the user data is already are written or the pointer to a data structure is only used if the data structure be is already filled (initialized) with valid data. This can be achieved with the second attribute, which is the Exchange of instructions during translation limits and enables during the term. Because the trust performed by the processor during runtime the resulting data inconsistencies of be corrected to the processor.
11
Computersystem
computer system
22
erste Recheneinheit
first arithmetic unit
33
zweite Recheneinheit
second arithmetic unit
44
erster Befehlsspeicher
first command memory
55
zweiter Befehlsspeicher
second command memory
66
Datenspeicher
data storage
77
Quellcode
Source code
88th
Quellcode-Befehle
Source commands
99
Befehlsreihenfolge
Command Order
1010
Datendeklaration
data declaration
1111
erster Datenspeicher
first data store
1212
erstes Attribut
first attribute
1313
zweiter Datenspeicher
second data storage
1414
zweites Attribut
second attribute
1515
Maschineninstruktionen
machine instructions
1616
Maschineninstruktions-Reihenfolge
Machine instruction sequence
1717
erster Quellcode-Befehl
first source code command
1818
erste Maschineninstruktion
first machine instruction
1919
erste Grenze
first limit
2020
zweiter Quellcode-Befehl
second source code command
2121
zweite Maschineninstruktion
second machine instruction
2222
zweite Grenze
second limit
2323
vertauschbare Maschineninstruktionen
interchangeable machine instructions
2424
erster Datenzugriff
first data access
2525
dritter Datenspeicher
third data store
2626
Abfrage-Maschineninstruktion
Query machine instruction
2727
Datenlese-Maschineninstruktion
S1 erster Programmschritt
S2 zweiter Programmschritt
S3 dritter Programmschritt
S4 vierter Programmschritt
S5 fünfter Programmschritt
Data read-machine instruction
S1 first program step
S2 second program step
S3 third program step
S4 fourth program step
S5 fifth program step
Claims (13)
ein Quellcode (7) mit Quellcode-Befehlen (8) erstellt ist, die in einer Befehlsreihenfolge (9) angeordnet sind;
wobei der Quellcode (7) eine Datendeklaration (10) umfaßt und die Datendeklaration (10) einem ersten Datenspeicher (11) ein erstes Attribut (12) zuordnet und einem zweiten Datenspeicher (13) ein zweites Attribut (14) zuordnet; und
der Quellcode (7) in Maschineninstruktionen (15) übersetzt wird und die Maschineninstruktionen (15) umsortiert werden, so daß die Maschineninstruktionen (15) eine Maschinenin struktions-Reihenfolge (16) aufweisen, die von der Befehls reihenfolge (9) abweicht; und
die Maschineninstruktionen (15) in einem Befehlsspeicher (4) gespeichert werden und von einer Recheneinheit (2) aus dem Befehlsspeicher (4) geladen werden und abweichend von der Maschineninstruktions-Reihenfolge (16) von der Rechen einheit (2) ausgeführt werden;
wobei das erste Attribut (12) des ersten Datenspeichers (11) und das zweite Attribut (14) des zweiten Datenspei chers (13) bewirken, daß die Umsortierung der Maschinenin struktionen (15) bei der Übersetzung in einer ersten vorbe stimmten Weise eingeschränkt wird; und
wobei das erste Attribut (12) des ersten Datenspeichers (11) bewirkt, daß die Umsortierung der Maschineninstruktio nen (15) bei der Ausführung in der Recheneinheit (2) in ei ner zweiten vorbestimmten Weise eingeschränkt wird.1. Method for controlling a computer system ( 1 ) in the
a source code ( 7 ) with source code commands ( 8 ) is arranged, which are arranged in a command sequence ( 9 );
wherein the source code ( 7 ) comprises a data declaration ( 10 ) and the data declaration ( 10 ) assigns a first attribute ( 12 ) to a first data store ( 11 ) and assigns a second attribute ( 14 ) to a second data store ( 13 ); and
the source (7) is translated into machine instructions (15) and the machine instructions (15) are rearranged so that the machine instructions (15) Maschinenin constructive tions sequence having (16) the order of the instruction (9) is deviated; and
the machine instructions ( 15 ) are stored in a command memory ( 4 ) and loaded by a computing unit ( 2 ) from the command memory ( 4 ) and executed differently from the machine instruction sequence ( 16 ) by the computing unit ( 2 );
wherein the first attribute ( 12 ) of the first data store ( 11 ) and the second attribute ( 14 ) of the second data store ( 13 ) have the effect that the rearrangement of the machine instructions ( 15 ) during translation is restricted in a first predetermined manner; and
wherein the first attribute ( 12 ) of the first data memory ( 11 ) has the effect that the re-sorting of the machine instructions ( 15 ) when executed in the computing unit ( 2 ) is restricted in a second predetermined manner.
für die ein Quellcode (7) mit Quellcode-Befehlen (8) er stellt ist, die in einer Befehlsreihenfolge (9) angeordnet sind;
wobei der Quellcode (7) eine Datendeklaration (10) umfaßt und die Datendeklaration (10) einem ersten Datenspeicher (11) ein erstes Attribut (12) zuordnet und einem zweiten Datenspeicher (13) ein zweites Attribut (14) zuordnet; und
wobei das Computersystem (1) Mittel aufweist, um den Quellcode (7) zur Ausführung durch das Computersystem von dem Computersystem in Maschineninstruktionen (15) zu über setzen, wobei die Maschineninstruktionen (13) umsortiert werden, so daß die Maschineninstruktionen (15) eine Maschi neninstruktions-Reihenfolge (16) aufweisen, die von der Be fehlsreihenfolge (9) abweicht; und
die Maschineninstruktionen (15) in einem Befehlsspeicher (4) zur Verarbeitung von einer Recheneinheit (2) gespei chert sind und die Recheneinheit (2) Mittel aufweist, die zur Vertauschung der Maschineninstruktions-Reihenfolge (16) geeignet sind;
wobei das Computersystem (1) Mittel aufweist, die bewirken, daß das erste Attribut (12) des ersten Datenspeichers (11) und das zweite Attribut (14) des zweiten Datenspeichers (13) die Umsortierung der Maschineninstruktionen (15) bei der Übersetzung in einer ersten vorbestimmten Weise ein schränken; und
wobei das Computersystem (1) Mittel aufweist, die bewirken, daß das erste Attribut (12) des ersten Datenspeichers (11) die Umsortierung der Maschineninstruktionen (15) bei der Ausführung in der Recheneinheit (2) in einer zweiten vorbe stimmten Weise eingeschränkt.11. Computer system with an execution environment
for which a source code ( 7 ) with source code commands ( 8 ) is provided, which are arranged in a command sequence ( 9 );
wherein the source code ( 7 ) comprises a data declaration ( 10 ) and the data declaration ( 10 ) assigns a first attribute ( 12 ) to a first data store ( 11 ) and assigns a second attribute ( 14 ) to a second data store ( 13 ); and
the computer system ( 1 ) having means for converting the source code ( 7 ) for execution by the computer system from the computer system into machine instructions ( 15 ), the machine instructions ( 13 ) being rearranged so that the machine instructions ( 15 ) are a machine have an instruction sequence ( 16 ) which differs from the command sequence ( 9 ); and
the machine instructions ( 15 ) are stored in a command memory ( 4 ) for processing by a computing unit ( 2 ) and the computing unit ( 2 ) has means which are suitable for interchanging the machine instruction sequence ( 16 );
wherein the computer system ( 1 ) has means which cause the first attribute ( 12 ) of the first data store ( 11 ) and the second attribute ( 14 ) of the second data store ( 13 ) to rearrange the machine instructions ( 15 ) when translated into one restrict a first predetermined manner; and
wherein the computer system ( 1 ) has means which cause the first attribute ( 12 ) of the first data memory ( 11 ) to restrict the re-sorting of the machine instructions ( 15 ) when executed in the computing unit ( 2 ) in a second predetermined manner.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE10065754A DE10065754B4 (en) | 2000-12-29 | 2000-12-29 | Method for controlling a computer system, computer system with an execution environment and computer program product |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE10065754A DE10065754B4 (en) | 2000-12-29 | 2000-12-29 | Method for controlling a computer system, computer system with an execution environment and computer program product |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE10065754A1 true DE10065754A1 (en) | 2002-07-18 |
| DE10065754B4 DE10065754B4 (en) | 2004-03-04 |
Family
ID=7669444
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE10065754A Expired - Fee Related DE10065754B4 (en) | 2000-12-29 | 2000-12-29 | Method for controlling a computer system, computer system with an execution environment and computer program product |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE10065754B4 (en) |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5918005A (en) * | 1997-03-25 | 1999-06-29 | International Business Machines Corporation | Apparatus region-based detection of interference among reordered memory operations in a processor |
-
2000
- 2000-12-29 DE DE10065754A patent/DE10065754B4/en not_active Expired - Fee Related
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5918005A (en) * | 1997-03-25 | 1999-06-29 | International Business Machines Corporation | Apparatus region-based detection of interference among reordered memory operations in a processor |
Also Published As
| Publication number | Publication date |
|---|---|
| DE10065754B4 (en) | 2004-03-04 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE3586374T2 (en) | METHOD FOR ELIMINATING GLOBAL COMMON UNDEREXPRESSIONS AND CODE SHIFTING IN AN OPTIMIZING COMPILER. | |
| EP0689694B1 (en) | Process for the machine-generation of parallel processable command groups from a program for super-scalar microprocessors | |
| DE69132675T2 (en) | Parallel assembly line command processing system for very long command words | |
| DE19527031C2 (en) | Branch processor for a data processing system and method for operating a data processing system | |
| DE2023354C2 (en) | Data processing system with a micro instruction memory | |
| DE3689389T2 (en) | Data processing processor. | |
| DE2524046C2 (en) | Electronic data processing system | |
| DE4211245B4 (en) | Processor system in parallel processing type and method for its control | |
| DE4301417A1 (en) | ||
| DE2714805A1 (en) | DATA PROCESSING SYSTEM | |
| DE19524402C2 (en) | Program execution control device with addressability according to an M-row pseudo-random number sequence | |
| DE4409586C2 (en) | Method and processing system for simplifying link hardware | |
| DE69128908T2 (en) | Method for executing mandatory commands in a computer | |
| DE69231237T2 (en) | Data processing device | |
| DE19824289A1 (en) | pipeline data processing system | |
| DE4430195A1 (en) | Computer system and method for evaluating predictions and Boolean expressions | |
| DE69712687T2 (en) | Language processing unit and method for translating a source program in an object module file | |
| DE2906685C2 (en) | ||
| DE2658950A1 (en) | MICROPROGRAMMED PROCESSING UNIT AND METHOD FOR ORGANIZING IT | |
| DE2702722A1 (en) | INSTRUCTION INTERPRETATION IN ELECTRONIC DATA PROCESSING SYSTEMS | |
| DE60005830T2 (en) | METHOD AND DEVICE FOR CONTROLLING A JUMP DELAY SLOT IN A PIPELINE PROCESSOR | |
| DE3104256C2 (en) | ||
| DE60007312T2 (en) | METHOD AND DEVICE FOR BRANCH CONTROL IN A PIPELINE PROCESSOR | |
| DE10065754A1 (en) | Execution of computer code out of sequence so that it runs faster, relating particularly to multiprocessor systems, with data attributes declared that define data in such a way that data integrity is preserved. | |
| DE2622140C3 (en) | Device for controlling manual operations |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OP8 | Request for examination as to paragraph 44 patent law | ||
| 8364 | No opposition during term of opposition | ||
| R084 | Declaration of willingness to licence | ||
| R081 | Change of applicant/patentee |
Owner name: FUJITSU TECHNOLOGY SOLUTIONS INTELLECTUAL PROP, DE Free format text: FORMER OWNER: FUJITSU SIEMENS COMPUTERS GMBH, 80807 MUENCHEN, DE Effective date: 20111229 |
|
| R082 | Change of representative |
Representative=s name: EPPING HERMANN FISCHER, PATENTANWALTSGESELLSCH, DE Effective date: 20111229 Representative=s name: EPPING HERMANN FISCHER PATENTANWALTSGESELLSCHA, DE Effective date: 20111229 |
|
| R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |