[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

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 PDF

Info

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
Application number
DE10065754A
Other languages
German (de)
Other versions
DE10065754A1 (en
Inventor
Bernhard Westermaier
Christoph Dr. Maier
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Technology Solutions Intellectual Property GmbH
Original Assignee
Fujitsu Technology Solutions GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Technology Solutions GmbH filed Critical Fujitsu Technology Solutions GmbH
Priority to DE10065754A priority Critical patent/DE10065754B4/en
Publication of DE10065754A1 publication Critical patent/DE10065754A1/en
Application granted granted Critical
Publication of DE10065754B4 publication Critical patent/DE10065754B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering 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).

Figure 00000001
Figure 00000001

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:

1 einen Quellcode mit Quellcode-Befehlen, sowie aus dem Quellcode generierte Maschineninstruktionen; 1 a source code with source code commands and machine instructions generated from the source code;

2 ein Computersystem mit einer ersten Recheneinheit, einem ersten Befehlsspeicher und einem Datenspei cher sowie einer zweiten Recheneinheit mit einem zweiten Befehlsspeicher; 2 a computer system with a first computing unit, a first command memory and a data memory and a second computing unit with a second command memory;

In 1 ist ein Quellcode 7 dargestellt, der Quellcode-Befehle 8 enthält. Die Quellcode-Befehle 8 sind in einer Befehlsreihenfolge 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 1 ein erster Befehlsspeicher 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 Maschineninstruktionen 15 aus den Quellcode-Befehlen 8 kann zum einen 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 Übersetzung für die speziell vorliegende Hardware des Computersystems durchgeführt werden kann.In 1 is a source code 7 shown the source code commands 8th contains. The source code commands 8th are in an order of command 9 arranged. The source code 7 includes a data declaration 10 having a first data store 11 a first attribute 12 and a second data store 13 a second attribute 14 assigns. Additionally is in the source code 7 a first source code command 17 and a second source code command 20 arranged. Furthermore, in 1 a first instruction memory 4 shown in the machine instructions 15 in a machine instruction order 16 are arranged, with the machine instructions 15 from the source code commands 8th have been translated. Translation of machine instructions 15 from the source code commands 8th can be carried out on the one hand while the program is running. It is also possible for a compiler to execute the machine instructions before the program runs 15 generated, whereby an efficient processing of the computer program is possible. It is also possible for a just-in-time compiler to execute the source code commands 8th in the machine instructions 15 translated, whereby a translation can be carried out for the specific hardware of the computer system at program runtime.

In 2 ist ein Computersystem 1 dargestellt. Das Computersystem 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 einem zweiten Befehlsspeicher 5 verbunden. Die erste Recheneinheit 2 und die zweite Recheneinheit 3 sind mit einem Datenspeicher 6 verbunden. In dem ersten Befehlsspeicher 4 sind die Maschineninstruktionen 15 in der Maschineninstruktions-Reihenfolge 16 angeordnet.In 2 is a computer system 1 shown. The computer system 1 comprises a first computing unit 2 and a second computing unit 3 , The first arithmetic unit 2 is with the first instruction memory 4 and the second arithmetic unit 3 is with a second instruction memory 5 connected. The first arithmetic unit 2 and the second arithmetic unit 3 are with a data store 6 connected. In the first instruction memory 4 are the machine instructions 15 in the machine instruction order 16 arranged.

In dem Datenspeicher 6 sind ein erster Datenspeicher 11, ein zweiter Datenspeicher 13 und ein dritter Datenspeicher 25 angeordnet.In the data store 6 are a first data store 11 , a second data storage 13 and a third data store 25 arranged.

Die Maschineninstruktionen 15 umfassen vertauschbare Maschineninstruktionen 23 sowie einen ersten Datenzugriff 24, der auf den dritten Datenspeicher 25 zugreift. Nachfolgend umfassen die Maschineninstruktionen 15 eine erste Maschineninstruktion 18, die einen Datenzugriff auf den ersten Datenspeicher 11 beinhaltet. Die erste Maschineninstruktion 18 umfaßt eine erste Grenze 19, da die erste Maschineninstruktion 18 auf den mit dem ersten Attribut 12 markierten ersten Datenbereich 11 zugreift. Umfassen beispielsweise die vertauschbaren Maschineninstruktionen 23 die Berechnung eines Ergebnisses, welches mittels des ersten Datenzugriffs 24 in dem dritten Datenspeicher 25 gespeichert wird, so ist es erforderlich, daß mittels der ersten Maschineninstruktion 18 ein Signalwert in den ersten Datenspeicher 11 erst dann eingeschrieben wird, wenn der erste Datenzugriff 24 den Schreibvorgang in dem dritten Datenspeicher 25 beendet hat.The machine instructions 15 include interchangeable machine instructions 23 as well as a first data access 24 that on the third data store 25 accesses. Below include the machine instructions 15 a first machine instruction 18 that have data access to the first data store 11 includes. The first machine instruction 18 includes a first boundary 19 since the first machine instruction 18 to the one with the first attribute 12 marked first data area 11 accesses. For example, include the interchangeable machine instructions 23 the calculation of a result, which is achieved by means of the first data access 24 in the third data store 25 is saved, it is necessary that by means of the first machine instruction 18 a signal value in the first data memory 11 is only registered when the first data access 24 the writing process in the third data memory 25 has ended.

Dadurch ist ermöglicht, daß der zweite Prozessor 3 die in dem zweiten Befehlsspeicher 5 angeordnete Abfrage-Maschineninstruktion 26 durchführt, um damit sicherzustellen, daß die in der nachfolgend ausgeführten Datenlese-Maschineninstruktion 27 aus dem dritten Datenspeicher gelesenen Daten gültig sind. Die Reihenfolge des ersten Datenzugriffs 24 und der ersten Maschineninstruktion 18 ist Prozessorübergreifend einzuhalten, so daß sowohl bei der Übersetzung 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 Reihenfolge eingeschränkt ist. Der erste Quellcode-Befehl 17 wird beispielsweise 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 Datenspeichers 11 mit dem ersten Attribut 12 berücksichtigt wird.This enables the second processor 3 those in the second instruction memory 5 arranged query machine instruction 26 to ensure that the data reading machine instruction executed in the following 27 Data read from the third data memory are valid. The order of the first data access 24 and the first machine instruction 18 is to be observed across all processors, so that when translating the source code 7 in the machine instructions 15 as well as when executing the first machine instructions 15 in the first processor 2 the interchangeability of the sequence is restricted. The first source code command 17 is, for example, in the first machine instruction 18 translated, taking into account that a in the first source code command 17 included access to the first data store 11 and the attribution of the first data store 11 with the first 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 Attribut 14 gekennzeichnet ist. Dadurch ist gewährleistet, daß während des Übersetzens der Quellcode-Befehle 8 in die Maschineninstruktionen 15 eine zweite Grenze 22 neben der zweiten Maschineninstruktion 21 gebildet wird. Die zweite Grenze 22 sieht vor, daß während des Übersetzungsvorganges die Vertauschung von Maschineninstruktionen in der Weise eingeschrä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 Maschineninstruktion 21 gebildete Grenze 22 hinaus – durchführen, sofern der erste Prozessor 2 gewährleistet, daß die Datenkonsistenz gewährleistet bleibt.It is also provided that the second Source Command 20 in a second machine instruction 21 is translated, which is also in the first command memory 4 is arranged. The second source code command 20 sees a memory access to the second data memory 13 before that with the second attribute 14 is marked. This ensures that during the translation of the source code commands 8th in the machine instructions 15 a second limit 22 next to the second machine instruction 21 is formed. The second frontier 22 stipulates that the exchange of machine instructions during the translation process is restricted in such a way that data consistency is guaranteed. This is the case, for example, when the first processor 2 exclusively on the second data storage 13 accesses. In this case, the first processor 2 an exchange during the runtime - also via the second machine instruction 21 formed border 22 addition - perform, provided the first processor 2 ensures that data consistency is maintained.

Das zweite Attribut 14 ist beispielsweise dann sinnvoll, wenn ein Interrupt zwischen zwei Instruktionen erfolgt, die in einer festen Reihenfolge zueinander auszuführen sind. Hierbei kann ein Fehler auftreten, wenn die Befehle in Ihrer Abarbeitungsreihenfolge vertauscht sind, da der von dem Interrupt aufgerufenen Interrupt-Handler die von den vertauschten Befehlen 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 behoben werden kann. Findet diese Vertauschung allerdings schon während der Übersetzung statt, so kann die bei der Übersetzung geänderte Reihenfolge nicht vom Prozessor korrigiert werden. Die Ermöglichung der Vertauschung während der Abarbeitung des Programms steigert die Abarbeitungsgeschwindigkeit des Programmcodes, da Befehle beispielsweise in einer parallelen Ausführungseinheit des Prozessors vorzeitig bearbeitet werden können.The second attribute 14 This is useful, for example, when an interrupt occurs between two instructions that are to be executed in a fixed sequence 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 swapped 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 corrected 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.

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)

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 ) where - a source code ( 7 ) with source code commands ( 8th ) that is created in a command order ( 9 ) are arranged; - where the source code ( 7 ) a data declaration ( 10 ) and the data declaration ( 10 ) a first data storage ( 11 ) a first attribute ( 12 ) and a second data storage ( 13 ) a second attribute ( 14 ) assigns; and - the source code ( 7 ) in machine instructions ( 15 ) is translated and the machine instructions ( 15 ) are rearranged so that the machine instructions ( 15 ) a machine instruction sequence ( 16 ) which depend on the order of commands ( 9 ) deviates; and - the machine instructions ( 15 ) in a command memory ( 4 ) are saved and processed by a computing unit ( 2 ) from the command memory ( 4 ) and different from the machine instruction order ( 16 ) from the computing unit ( 2 ) are executed; - where the first attribute ( 12 ) of the first data store ( 11 ) and the second attribute ( 14 ) of the second data storage ( 13 ) cause the reordering of the machine instructions ( 15 ) is restricted in translation in a first predetermined manner; and - where the first attribute ( 12 ) of the first data store ( 11 ) causes the reordering of the machine instructions ( 15 ) when executed in the computing unit ( 2 ) restricted in a second predetermined manner; and - where the second attribute ( 14 ) of the second data storage ( 13 ) causes a) that when executed in the computing unit ( 2 ) a reordering of the machine instructions ( 15 ) is not restricted; and b) that the second attribute ( 14 ) together with a second source code command ( 20 ) on the second data storage ( 13 ) accesses a second machine instruction ( 21 ) which creates a second limit ( 22 ) so that all source code commands that precede the second source code command ( 20 ) are arranged, are translated into machine instructions that are in the machine instruction order ( 16 ) before the second machine instruction ( 21 ) are arranged. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Übersetzung des Quellcodes (7) in Maschineninstruktionen (15) mittels eines Interpreters oder eines Compilers oder eines Just-In-Time Compilers durchgeführt wird.Method according to claim 1, characterized in that the translation of the source code ( 7 ) in machine instructions ( 15 ) is carried out using an interpreter or a compiler or a just-in-time compiler. Verfahren nach einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, daß das erste Attribut (12) des ersten Datenspeichers (11) zusammen mit einem ersten Quellcode-Befehl (17), der auf den ersten Datenspeicher (11) zugreift, die Erzeugung einer ersten Maschineninstruktion (18) bei der Übersetzung bewirkt, die eine erste Grenze (19) bildet.Method according to one of claims 1 or 2, characterized in that the first attribute ( 12 ) of the first data store ( 11 ) together with a first source code command ( 17 ) on the first data store ( 11 ) accesses, the generation of a first machine instruction ( 18 ) in translation that creates a first limit ( 19 ) forms. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß es sich bei der ersten Grenze (19) oder der zweiten Grenze (22) jeweils um eine Fence-Maschineninstruktion handelt oder jeweils um eine Maschineninstruktion handelt, welche die Wirkung einer Fence-Maschineninstruktion beinhaltet.Method according to one of Claims 1 to 3, characterized in that the first limit ( 19 ) or the second limit ( 22 ) is a fence machine instruction or is a machine instruction that contains the effect of a fence machine instruction. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß es sich bei dem ersten Quellcode-Befehl (17) oder dem zweiten Quellcode-Befehl (20) um einen Speicher-Lese-Zugriff handelt, der eine in dem ersten oder dem zweiten Datenspeicher (11, 13) gespeicherte Information ausliest oder einen Speicher-Schreib-Zugriff handelt, der eine Information in den ersten oder dem zweiten Datenspeicher (11, 13) einschreibt.Method according to one of Claims 1 to 4, characterized in that the first source code command ( 17 ) or the second source code command ( 20 ) is a memory read access, which is one in the first or the second data memory ( 11 . 13 ) reads out stored information or is a memory write access that stores information in the first or the second data memory ( 11 . 13 ) registers. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß während der Übersetzung und während der Ausführung in einer Recheneinheit (2) sichergestellt ist, daß über die erste Grenze (19) hinweg keine sichtbare Vertauschung in der Maschineninstruktions-Reihenfolge (16) erfolgt.Method according to one of claims 1 to 5, characterized in that during the translation and during execution in a computing unit ( 2 ) it is ensured that over the first border ( 19 ) no visible reversal in the machine instruction sequence ( 16 ) he follows. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß während der Übersetzung sichergestellt ist, daß über die zweite Grenze (22) hinweg keine sichtbare Vertauschung in der Maschineninstruktions-Reihenfolge (16) erfolgt.Method according to one of claims 1 to 6, characterized in that it is ensured during the translation that over the second limit ( 22 ) no visible reversal in the machine instruction sequence ( 16 ) he follows. Mehrprozessorsystem mit einer Ausführungsumgebung zur Ausführung der Schritte nach einem der Ansprüche 1 bis 7, – für die 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 – wobei das Mehrprozessorsystem (1) Mittel aufweist, um den Quellcode (7) zur Ausführung durch das Mehrprozessorsystem von dem Mehrprozessorsystem in Maschineninstruktionen (15) zu übersetzen, wobei 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) zur Verarbeitung von einer Recheneinheit (2) gespeichert sind und die Recheneinheit (2) Mittel aufweist, die zur Vertauschung der Maschineninstruktions-Reihenfolge (16) geeignet sind; – wobei das Mehrprozessorsystem (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 einschränken; und – wobei das Mehrprozessorsystem (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 vorbestimmten Weise eingeschränkt, während das zweite Attribut (14) des zweiten Datenspeichers (13) die Umsortierung der Maschineninstruktionen (15) bei der Ausführung in der Recheneinheit (2) zuläßt.Multi-processor system with an execution environment for executing the steps according to one of claims 1 to 7, - for which a source code ( 7 ) with source code commands ( 8th ) that is created in a command order ( 9 ) are arranged; - where the source code ( 7 ) a data declaration ( 10 ) and the data declaration ( 10 ) a first data storage ( 11 ) a first attribute ( 12 ) and a second data storage ( 13 ) a second attribute ( 14 ) assigns; and - the multiprocessor system ( 1 ) Has means to the source code ( 7 ) for execution by the multiprocessor system from the multiprocessor system in machine instructions ( 15 ) to translate, with the machine instructions ( 15 ) are rearranged so that the machine instructions ( 15 ) a machine instruction sequence ( 16 ) which depend on the order of commands ( 9 ) deviates; and - the machine instructions ( 15 ) in a command memory ( 4 ) for processing by a computing unit ( 2 ) are stored and the computing unit ( 2 ) Has means for exchanging the machine instruction sequence ( 16 ) are suitable; - the multiprocessor 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 storage ( 13 ) the reordering of the machine instructions ( 15 ) restrict translation in a first predetermined manner; and - the multiprocessor system ( 1 ) Has means which cause the first attribute ( 12 ) of the first data store ( 11 ) the reordering of the machine instructions ( 15 ) when executed in the computing unit ( 2 ) constrained in a second predetermined way while the second attribute ( 14 ) of the second data storage ( 13 ) the reordering of the machine instructions ( 15 ) when executed in the computing unit ( 2 ) allows. Computerprogrammprodukt, das auf einem computergeeigneten 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 Computer läuft.Computer program product that is on a computer-compatible medium is stored and includes computer-readable program means with which the steps according to one of claims 1 to 8 executed when the program product runs on a computer.
DE10065754A 2000-12-29 2000-12-29 Method for controlling a computer system, computer system with an execution environment and computer program product Expired - Fee Related DE10065754B4 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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