DE10065754B4 - Method for controlling a computer system, computer system with an execution environment and computer program product - Google Patents
Method for controlling a computer system, computer system with an execution environment and computer program product Download PDFInfo
- Publication number
- DE10065754B4 DE10065754B4 DE10065754A DE10065754A DE10065754B4 DE 10065754 B4 DE10065754 B4 DE 10065754B4 DE 10065754 A DE10065754 A DE 10065754A DE 10065754 A DE10065754 A DE 10065754A DE 10065754 B4 DE10065754 B4 DE 10065754B4
- Authority
- DE
- Germany
- Prior art keywords
- source code
- attribute
- machine instructions
- machine
- data
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000004590 computer program Methods 0.000 title claims description 8
- 238000013519 translation Methods 0.000 claims abstract description 27
- 230000000694 effects Effects 0.000 claims abstract description 8
- 238000012545 processing Methods 0.000 claims description 20
- 238000013500 data storage Methods 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002028 premature Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/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
Verfahren zur Steuerung eines Mehrprozessorsystems (1) bei dem
– 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 Maschineninstruktions-Reihenfolge (16) aufweisen, die von der Befehlsreihenfolge (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 Recheneinheit (2) ausgeführt werden;
– wobei das erste Attribut (12) des ersten Datenspeichers (11) und das zweite Attribut (14) des zweiten Datenspeichers (13) bewirken, daß die Umsortierung der Maschineninstruktionen (15) bei der Übersetzung in einer ersten vorbestimmten Weise eingeschränkt wird; und
– wobei das erste Attribut (12) des ersten Datenspeichers (11) bewirkt, daß die Umsortierung der Maschineninstruktionen (15) bei der Ausführung in der Recheneinheit (2) in einer zweiten vorbestimmten Weise eingeschränkt wird; und
– wobei das zweite Attribut (14) des zweiten Datenspeichers (13) bewirkt,
a) daß bei der Ausführung in der Recheneinheit (2) eine Umsortierung der Maschineninstruktionen (15) nicht eingeschränkt wird; und
b) daß bei der Übersetzung das zweite Attribut (14) zusammen mit einem zweiten Quellcode-Befehl (20), der auf den zweiten Datenspeicher (13) zugreift, eine zweite Maschi neninstruktion (21) erzeugt wird, die eine zweite Grenze (22) bildet, so daß alle Quellcode-Befehle, die vor dem zweiten Quellcode-Befehl (20) angeordnet sind, in Maschineninstruktionen übersetzt werden, die in der Maschineninstruktions-Reihenfolge (16) vor der zweiten Maschineninstruktion (21) angeordnet sind.Method for controlling a multiprocessor system (1) in the
- A source code (7) with source code commands (8) is arranged, which are arranged in a command sequence (9);
- 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 code (7) is translated into machine instructions (15) and the machine instructions (15) are rearranged so that the machine instructions (15) have a machine instruction sequence (16) that differs from the command sequence (9); 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 re-sorting 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) is restricted in a second predetermined manner when executed in the computing unit (2); and
- The second attribute (14) of the second data memory (13),
a) that a re-sorting of the machine instructions (15) is not restricted when executed in the computing unit (2); and
b) that the second attribute (14) is generated during the translation together with a second source code command (20) which accesses the second data memory (13), a second machine instruction (21) which defines a second limit (22) forms so that all source code commands that are arranged before the second source code command (20) are translated into machine instructions that are arranged in the machine instruction order (16) before the second machine instruction (21).
Description
Die vorliegende Patentanmeldung betrifft ein Verfahren zur Steuerung eines Computersystems, ein Computersystem mit einer Ausführungseinheit und ein entsprechendes Computerprogrammprodukt, welches auf einem computergeeigneten Medium gespeichert ist.The present patent application relates a method for controlling a computer system, a computer system with an execution unit and a corresponding computer program product, which is on a computer-suitable Medium is stored.
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 einem Speicher-Lese-Befehl angeordnet ist auch vor dem Speicher-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 erhält. Computer systems with conventional ones Processors are characterized in that the processor (computing unit) Loads instructions from an instruction memory and these in the order processes how they are stored in the command memory. Thereby it is always ensured that a Memory write command, that in order in the instruction memory prior to a memory read instruction is also arranged before the store read command is executed So that the Data are already stored in the data memory and the memory read command is the actual one Receives data from memory.
Moderne Prozessoren weisen beispielsweise mehrere parallele Rechenwerke auf, so daß Befehle in ihrer Abarbeitungsreihenfolge innerhalb eines Prozessors vertauscht werden können, um in einer parallelen Recheneinheit ausgeführt zu werden, wodurch die Gesamtverarbeitungsleistung des Prozessors steigt. Eine weitere Steigerung der Verarbeitungsgeschwindigkeit eines 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 erreicht wird.For example, modern processors several parallel arithmetic units, so that commands in their processing order can be swapped within a processor to be in a parallel Computing unit executed to be, reducing the overall processing power of the processor increases. A further increase in processing speed One computer system is, for example, the arrangement of several Processors possible. Here, the present command sequence is used on several processors distributed, which accelerates the processing of the underlying Problem is achieved.
Problematisch ist hierbei, daß Befehle in ihrer Reihenfolge vertauscht werden, wodurch Dateninkonsistenzen entstehen können.The problem here is that commands in their order, causing data inconsistencies can arise.
Dies ist beispielsweise der Fall, wenn in einem ersten Prozessor ein Ergebnis berechnet wird und die korrekte Berechnung des Ergebnisses nachfolgend von einem zweiten Prozessor verwendet werden muß. Ein mögliches Vorgehen um dies durchzufü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 Prozessor dieses Ergebnis noch nicht berechnet hat. Folglich werden im zweiten Prozessor falsche Daten weiterverarbeitet.For example, if a result is calculated in a first processor and the correct calculation of the result subsequently from a second Processor must be used. A possible one How to do this stipulates that the correct calculation of the result from the first processor in one Signal field is displayed. A second processor is only now taking effect then towards the result calculated by the first processor if the signal field indicates that the Result correct and complete was calculated. Now the order of execution in the swapped the first processor, so the signal field can be a supposed valid Show calculated result even though the first processor gets this result has not yet calculated. As a result, the second processor becomes incorrect Data processed.
Das beschriebene Problem tritt nicht nur für mehrere Prozessoren auf, sondern ist bereits in einem Prozessor mit mehreren Tasks, Prozessen oder Threads vorhanden. Dieses Problem kann beispielsweise dadurch gelöst werden, daß bei den modernen Prozessoren die parallele Abarbeitung beziehungsweise die sichtbare Vertauschung der Reihenfolge der Abarbeitung generell 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.The problem described does not occur only for several Processors, but is already in one processor with several Tasks, processes or threads available. For example, this problem thereby solved be that at parallel processing or modern processors the visible reversal of the order of processing in general repressed becomes. Would continue solving the problem that only a processor of the computer system processes an existing program and the rest Processors of the computer system make no contribution to the processing of the program. However, both approaches lead to one reduced computing power of the computer system.
Ein Programmcode umfaßt oftmals ein Nutzdatum und ein Signaldatum, wobei das Nutzdatum von dem ersten Prozessor eines Mehrprozessorsystems gespeichert sein sollte, bevor der erste Prozessor das Signaldatum speichert, das eine korrekte Speicherung des Nutzdatums anzeigt. Ebenso sollte der zweite Pro zessor erst das Signaldatum aus dem Speicher lesen und auswerten, so daß sichergestellt werden kann, daß in einem nachfolgenden Schritt nur gültige Nutzdaten von dem zweiten Prozessor aus dem Speicher gelesen werden. Dies kann mit einem Attribut erreicht werden, daß sowohl die Vertauschung von Instruktionen während der Übersetzung, als auch die Vertauschung während der Ausführung einschränkt. Ein solches Attribut ist beispielsweise das aus der Programmiersprache "C" bekannte Attribut "volatile".A program code often includes a usage date and a signal date, the usage date from the first Processor of a multiprocessor system should be saved before the first processor stores the signal date, which is a correct storage of the useful date. Likewise, the second processor should be first Read and evaluate the signal date from the memory so that it can be ensured can that in a subsequent step, only valid user data from the second Processor can be read from memory. This can be done with an attribute be achieved that both the exchange of instructions during translation, as well as the exchange while the execution. On such an attribute is, for example, that from the programming language "C" known attribute "volatile".
Wird ein Nutzdatum und ein Signaldatum beziehungsweise eine Datenstruktur und ein auf die Datenstruktur zeigender Zeiger (Pointer) nur von einem Prozessor verwendet, so sollte allerdings 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 Datenstruktur erst dann verwendet wird, wenn die Datenstruktur bereits mit gültigen Daten gefüllt (initialisiert) ist.Becomes a usable date and a signal date or a data structure and one on the data structure pointing pointer (pointer) used only by one processor, so should however also be ensured in the event of an interrupt be that Signal date is only set when the user data has already been written or the pointer to a data structure only then is used when the data structure already has valid data filled (initialized).
Es ist die Aufgabe der Erfindung ein Verfahren zur Steuerung eines Computers anzugeben, das zu einer effizienteren Arbeitsweise des Computersystems führt, ein entsprechendes Computersystem mit einer Ausführungsumgebung und ein entsprechendes Computerprogrammprodukt anzugeben.It is the object of the invention to provide a method of controlling a computer that leads to a leads to a more efficient functioning of the computer system, a corresponding computer system with an execution environment and to specify a corresponding computer program product.
Erfindungsgemäß wird die Aufgabe gelöst durch ein Verfahren zur Steuerung eines Computersystems mit den im Anspruch 1 angeführten Merkmalen.According to the invention the object is achieved by a method for controlling a computer system with the in claim 1 listed Features.
Hinsichtlich des auftretenden Interruptes kann das Problem mit Hilfe des zweiten Attributes gelöst werden, welches die Vertauschung von Instruktionen während der Übersetzung einschränkt und während der Laufzeit ermöglicht. Da das Vertauschen von dem Prozessor während der Laufzeit durchgeführt wird, können die daraus entstehenden Dateninkonsistenzen von dem Prozessor korrigiert werden.With regard to the interrupt that occurs, the problem can be solved with the help of the second attribute, which restricts the swapping of instructions during translation and enables them during runtime. Since the swapping is carried out by the processor during runtime, the resultant can Data inconsistencies are corrected by the processor.
Ein Vorteil des erfindungsgemäßen Verfahrens besteht darin, daß ein erstes Attribut und ein zweites Attribut zur Deklaration von Daten verwendet werden, wobei das erste Attribut eine andere Einschränkung bezüglich der Vertauschbarkeit von Instruktionen beinhaltet, als das zweite Attribut. Das erste Attribut beinhaltet eine Wirkung bezüglich der Vertauschbarkeit von Maschineninstruktionen, die sich sowohl auf den Übersetzungsprozeß des Quellcodes in Maschineninstruktionen als auch auf die Ausführungsreihenfolge der Maschineninstruktionen in der Recheneinheit auswirken. Das zweite Attribut beinhaltet eine Wirkung bezüglich der Vertauschbarkeit von Maschineninstruktionen, die sich lediglich auf den Übersetzungsprozeß des Quellcodes in Maschineninstruktionen auswirkt.An advantage of the method according to the invention is that a first attribute and a second attribute for the declaration of data may be used, the first attribute being another restriction on the Interchangeability of instructions includes as the second attribute. The first attribute has an interchangeability effect of machine instructions that relate both to the translation process of the source code in machine instructions as well as on the execution order of the machine instructions in affect the computing unit. The second attribute includes one Effect regarding the interchangeability of machine instructions that relate only to the source code translation process in machine instructions.
Das erste Attribut kann die Datenintegrität eines Mehrprozessorsystems gewährleisten, da die Vertauschbarkeit von Maschineninstruktionen sowohl bei der Übersetzung, als auch bei der Programmausführung verhinderbar ist. Dies stellt zunächst eine Einschränkung dar, welche die Abarbeitungsgeschwindigkeit des Computerprogramms bremst. Um eine beschleunigte Abarbeitung des Computerprogramms zu ermöglichen, kann zum Beispiel eine Instruktionsreihenfolge, die nur einen Prozessor betrifft, mit Hilfe des zweiten Attributs erzeugt werden. Das zweite Attribut beinhaltet nur eine Einschränkung der Vertauschung von Maschineninstruktionen für die Übersetzung, so daß ein einzelner Prozessor intern die Abarbeitungsreihenfolge ändern kann, um eine beschleunigte Abarbeitung des Computerprogramms zu erzielen. Moderne Prozessoren weisen dabei Mittel auf, welche die Datenkonsistenz gewährleisten.The first attribute can be the data integrity of a Ensure multi-processor system, because the interchangeability of machine instructions both when translating, as well as the program execution is preventable. First of all, this is a limitation which slows down the processing speed of the computer program. To enable an accelerated processing of the computer program, can for example an instruction order that only one processor concerns, are generated using the second attribute. The second Attribute contains only a limitation of the exchange of Machine instructions for the translation, so that a individual processor can change the processing order internally, to accelerate the processing of the computer program. Modern processors have means that ensure data consistency guarantee.
Eine Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß die Übersetzung des Quellcodes in Maschineninstruktionen mittels eines Interpreters oder eines Compilers oder eines Just-In-Time Compilers durchgeführt wird. Ein Interpreter ist zur Übersetzung des Quellcodes geeignet, wobei die Übersetzung zur Laufzeit des Programms zum Zeitpunkt der Verarbeitung 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 Interpreter 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 stipulates that the translation the source code in machine instructions using an interpreter or a compiler or a just-in-time compiler. An interpreter is for translation of the source code, whereby the translation at runtime of the Program at the time a command is processed. A compiler translates the source code in advance so that an efficient Program execution can take place. A just-in-time compiler translates the source code at program runtime, whereas in contrast to the interpreter the machine instructions generated from the source code are saved be so that they translated only once Need to become.
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 ersten Datenspeicher zugreift, die Erzeugung einer ersten Maschineninstruktion bei der Übersetzung bewirkt, die eine erste Grenze bildet.Another embodiment of the method according to the invention stipulates that the first attribute of the first data store together with a first Source code command that accesses the first data store, the Generation of a first machine instruction during translation causes a first boundary.
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 eine Maschineninstruktion handelt, welche die Wirkung einer Fence-Maschineninstruktion beinhaltet. Fence-Maschineninstruktionen beziehungsweise Maschineninstruktionen, welche die Wirkung einer Fence-Maschineninstruktion beinhalten, sind für moderne Prozessoren bekannt.Another embodiment of the method according to the invention stipulates that it the first or second limit is a fence machine instruction acts or is a machine instruction that affects the effect a fence machine instruction. Fence-machine instructions or machine instructions, which show the effect of a fence machine instruction include are for known 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 Datenspeicher 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 it the first source code command or the second source code command is a memory read access that is one in the first or reads information stored in the second data memory or a memory write access acts, which writes information into the first or the second data memory.
Handelt es sich bei dem Quellcode-Befehl beispielsweise um den Zugriff auf ein Signalfeld, so kann das Signalfeld beispielsweise dazu verwendet werden um sicherzustellen, daß alle 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 to access a signal field, the signal field can for example be used to ensure that everyone in the program before Access to the machine instructions arranged with the signal field Security are processed before the signal field has a signal value receives.
Eine weitere Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß während der Übersetzung und während der Ausführung in einer Recheneinheit sichergestellt ist, daß alle Quellcode-Befehle, die vor dem ersten Quellcode-Befehl angeordnet sind, in Maschineninstruktionen übersetzt werden, die in der Maschineninstruktions-Reihenfolge vor der ersten Maschineninstruktion angeordnet sind und sichergestellt wird, daß alle vor der ersten Maschineninstruktion angeordneten Maschineninstruktionen 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 the translation and during the execution in a processing unit it is ensured that all source code commands are arranged before the first source code command, translated into machine instructions be in the machine instruction order before the first Machine instructions are arranged and it is ensured that all before the first machine instruction arranged machine instructions accomplished be placed before one after the first machine instruction Machine instruction executed becomes.
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 method according to the invention stipulates that during the translation and during the execution in a computing unit ensures that the first limit no visible reversal in the machine instruction order he follows.
Eine weitere vorteilhafte Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß während der Übersetzung sichergestellt ist, daß über die zweite Grenze hinweg keine sichtbare Vertauschung in der Maschineninstruktions-Reihenfolge erfolgt.Another advantageous embodiment of the method according to the invention stipulates that during the translation it is ensured that over the second No visible confusion in the machine instruction sequence across borders he 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 die Vertauschung der Abarbeitungsreihenfolge von Maschineninstruktionen beziehungsweise die Vertauschung des Abschusses der Abarbeitung einer Maschineninstruktion, die für andere Prozessoren oder Prozesse sichtbar wird.This ensures that a visible Exchange of instructions about the border is excluded so that program parts are strictly separated can be. A visible swap involves swapping the processing order of machine instructions or the exchange of the Completion of the processing of a machine instruction for others Processors or processes becomes visible.
Bezüglich des Computersystems wird die Aufgabe gelöst durch ein Mehrprozessorsystem mit einer Ausführungsumgebung mit den Merkmalen gemäß Anspruch 9.With regard to the computer system, the task is solved by a multi-processor system an execution environment with the features according to claim 9.
Das erfindungsgemäße Mehrprozessorsystem ermöglicht die Vertauschung und parallele Abarbeitung von Instruktionen, die in einem Befehlsspeicher gespeichert sind. Dies führt zu einer beschleunigten Abarbeitung der in einem Befehlsspeicher gespeicherten Instruktionen, wobei durch zusätzliche Mittel sichergestellt ist, daß die Umsortierung der Maschineninstruktionen in einer vorbestimmten Weise eingeschränkt ist. Hierdurch 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 multi-processor system according to the invention enables Exchange and parallel processing of instructions in an instruction memory are stored. This leads to an accelerated Processing of the instructions stored in a command memory, being by additional means it is ensured that the Resorting machine instructions is restricted in a predetermined manner. This enables that a Data inconsistency during processing of the instructions is avoided. Furthermore is provided that the Means only in translation restrict the reordering of machine instructions.
Weiterhin wird die Aufgabe bezüglich des Mehrprozessorsystemprogrammprodukts gelöst durch ein Mehrprozessorsystemprogrammprodukt gemäß Anspruch 10, das auf einem Mehrprozessorsystemgeeigneten Medium gespeichert ist und Computerlesbare Programmittel umfaßt, mit denen die Schritte gemäß einem der Ansprüche 1 bis 8 ausgeführt werden, wenn das Programmprodukt auf einem Mehrprozessorsystem läuft.Furthermore, the task related to the multiprocessor system program product solved by a multi-processor system program product according to claim 10, which on a Multi-processor system-appropriate medium is stored and computer-readable Program funds include with which the steps according to one of claims 1 to 8 executed if the program product runs on a multiprocessor system.
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ührungsbeispielen und Figuren näher erläutert.The invention is explained below of embodiments and figures closer explained.
In den Figuren zeigen:The figures show:
In
In
In dem Datenspeicher
Die Maschineninstruktionen
Dadurch ist ermöglicht, daß der zweite Prozessor
Weiterhin ist vorgesehen, daß der zweite Quellcode-Befehl
Das zweite Attribut
- 11
- Computersystemcomputer system
- 22
- erste Recheneinheitfirst computer unit
- 33
- zweite Recheneinheitsecond computer unit
- 44
- erster Befehlsspeicherfirst instruction memory
- 55
- zweiter Befehlsspeichersecond instruction memory
- 66
- Datenspeicherdata storage
- 77
- QuellcodeSource code
- 88th
- Quellcode-BefehleSource commands
- 99
- BefehlsreihenfolgeCommand Order
- 1010
- Datendeklarationdata declaration
- 1111
- erster Datenspeicherfirst data storage
- 1212
- erstes Attributfirst attribute
- 1313
- zweiter Datenspeichersecond data storage
- 1414
- zweites Attributsecond attribute
- 1515
- Maschineninstruktionenmachine instructions
- 1616
- Maschineninstruktions-ReihenfolgeMachine instruction sequence
- 1717
- erster Quellcode-Befehlfirst Source Command
- 1818
- erste Maschineninstruktionfirst Computer instruction
- 1919
- erste Grenzefirst border
- 2020
- zweiter Quellcode-Befehlsecond Source Command
- 2121
- zweite Maschineninstruktionsecond Computer instruction
- 2222
- zweite Grenzesecond border
- 2323
- vertauschbare Maschineninstruktioneninterchangeable machine instructions
- 2424
- erster Datenzugrifffirst data access
- 2525
- dritter Datenspeicherthird data storage
- 2626
- Abfrage-MaschineninstruktionQuery machine instruction
- 2727
- Datenlese-MaschineninstruktionData read-machine instruction
Claims (9)
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 DE10065754A1 (en) | 2002-07-18 |
DE10065754B4 true 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 |
Non-Patent Citations (1)
Title |
---|
DIETZ, H.G.: Heterogeneous Parallel Computing With Java: Jabber Or Justified? In: Proceedings of the Seventh-Heterogeneous Computing Workshop, March 30-30, 1998, Orlando, Florida, S. 159-162 * |
Also Published As
Publication number | Publication date |
---|---|
DE10065754A1 (en) | 2002-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0689694B1 (en) | Process for the machine-generation of parallel processable command groups from a program for super-scalar microprocessors | |
DE3586374T2 (en) | METHOD FOR ELIMINATING GLOBAL COMMON UNDEREXPRESSIONS AND CODE SHIFTING IN AN OPTIMIZING COMPILER. | |
DE69622305T2 (en) | Process and device for an optimizing compiler | |
DE69031991T2 (en) | Method and device for accelerating branch instructions | |
DE69021659T2 (en) | Method and device for serial parallel debugging. | |
DE3687724T2 (en) | DIGITAL PROCESSOR CONTROL. | |
DE69724322T2 (en) | Method and arrangement for early insertion of assembly code for optimization | |
DE69703329T2 (en) | Method and arrangement for changing results of a computer program execution sequence | |
DE69623146T2 (en) | Method and apparatus for coordinating the use of physical registers in a microprocessor | |
DE69130757T2 (en) | Execution device for conditional branch instructions | |
DE69121937T2 (en) | Method and device for partially running a sequence program for the purpose of troubleshooting | |
DE2630323B2 (en) | Data storage device with a main memory, an auxiliary memory and a look-ahead logic | |
DE3689389T2 (en) | Data processing processor. | |
DE19524402C2 (en) | Program execution control device with addressability according to an M-row pseudo-random number sequence | |
DE19824289C2 (en) | Pipeline processing machine | |
DE69128908T2 (en) | Method for executing mandatory commands in a computer | |
DE4134392C2 (en) | Method and apparatus for invalidating commands in devices with parallel processing | |
DE68924883T2 (en) | Microprocessor with command pipeline. | |
DE10103070B4 (en) | Method and test circuit for determining a validity status for a past load command | |
DE3688973T2 (en) | Processing system in pipeline structure and microprocessor with such a system. | |
DE112012004468B4 (en) | Application-level speculative processing | |
DE2723706A1 (en) | DEVICE FOR ADDRESS COMPARISON | |
DE2702722A1 (en) | INSTRUCTION INTERPRETATION IN ELECTRONIC DATA PROCESSING SYSTEMS | |
DE102018127317B3 (en) | METHOD AND DEVICES FOR COMPUTER-IMPLEMENTED GENERATION OF AN EXECUTABLE PROGRAM CODE AND FOR EXECUTING AN EXECUTABLE PROGRAM CODE | |
DE10065754B4 (en) | Method for controlling a computer system, computer system with an execution environment and computer program product |
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 |