DE10065750A1 - Method for controlling a computer system and a computer operating system allowing parallel processing that ensures only program instructions that will not affect data integrity are run out of sequence - Google Patents

Method for controlling a computer system and a computer operating system allowing parallel processing that ensures only program instructions that will not affect data integrity are run out of sequence

Info

Publication number
DE10065750A1
DE10065750A1 DE10065750A DE10065750A DE10065750A1 DE 10065750 A1 DE10065750 A1 DE 10065750A1 DE 10065750 A DE10065750 A DE 10065750A DE 10065750 A DE10065750 A DE 10065750A DE 10065750 A1 DE10065750 A1 DE 10065750A1
Authority
DE
Germany
Prior art keywords
instructions
computing unit
computer
data
memory
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.)
Ceased
Application number
DE10065750A
Other languages
German (de)
Inventor
Bernhard Westermaier
Christoph 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 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 DE10065750A priority Critical patent/DE10065750A1/en
Publication of DE10065750A1 publication Critical patent/DE10065750A1/en
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Abstract

Computer system (1) control method in which a large number of instructions (5), which are stored in a sequence (6) in a program or command memory (2) are executed in strict sequence by a computer unit (3). A pre-determined subset of commands (7) can be executed out of sequence. Independent claims are made for (1) a computer system with an operating system that allows use of parallel processing (2) a computer program product that can be run on a computer allowing parallel processing.

Description

Die vorliegende Anmeldung betrifft ein Verfahren zur Steue­ rung eines Computersystems, ein Computersystem mit einer Aus­ führungseinheit sowie ein Computerprogrammprodukt, welches auf einem computergeeigneten Medium gespeichert ist.The present application relates to a method for taxation tion of a computer system, a computer system with an off management unit and a computer program product, which is stored on a computer-compatible medium.

Computersysteme mit herkömmlichen Prozessoren zeichnen sich dadurch aus, daß der Prozessor (Recheneinheit) Instruktionen aus einem Befehlsspeicher (Programmspeicher) lädt und diese in der Reihenfolge abarbeitet, wie sie in dem Programmspei­ cher 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 processors stand out characterized in that the processor (arithmetic unit) instructions loads from a command memory (program memory) and this processed in the order in which they appear in the program saved. This always ensures that a memory write command that is in the order in which Command memory arranged before a memory read command is, even before the store read command is executed, so that the data is already stored in the data memory and the memory read command the actually current data receives from memory.

Moderne Prozessoren weisen beispielsweise mehrere parallele Rechenwerke auf, so daß Befehle in ihrer Abarbeitungsreihen­ folge vertauscht werden können, um in einer parallelen Re­ cheneinheit ausgeführt zu werden, wodurch die Gesamtverarbei­ tungsleistung des Prozessors steigt.Modern processors, for example, have several in parallel Arithmetic units so that commands in their processing rows sequence can be interchanged to in a parallel re unit to be executed, thereby reducing the overall processing performance of the processor increases.

Problematisch ist hierbei, daß Befehle in ihrer Reihenfolge vertauscht werden, wodurch Dateninkonsistenzen entstehen kön­ nen. Dies ist beispielsweise der Fall, wenn in einem ersten Prozessor ein Ergebnis berechnet wird und die korrekte Be­ rechnung des Ergebnisses nachfolgend in einem Signalfeld an­ gezeigt 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 in dem zweiten Prozessor falsche Daten wei­ terverarbeitet. Dieses Problem kann beispielsweise dadurch gelöst werden, daß bei dem modernen Prozessor die parallele Abarbeitung beziehungsweise Vertauschung der Reihenfolge der Abarbeitung generell unterdrückt wird. Dies führt allerdings zu einer wesentlich reduzierten Rechenleistung des Computer­ systems.The problem here is that commands are in their order are exchanged, which can result in data inconsistencies NEN. This is the case, for example, if in a first Processor a result is calculated and the correct loading the result is subsequently calculated in a signal field will be shown. Only then does a second processor take action the result calculated by the first processor if that Signal field indicates that the result is correct and complete  was calculated. Now the order of execution in swapped the first processor, the signal field can Show supposedly valid calculated result, although the first processor has not yet calculated this result. As a result, incorrect data becomes white in the second processor further processed. This problem can be caused by this, for example be solved that in the modern processor the parallel Processing or swapping the order of the Processing is generally suppressed. However, this leads to a significantly reduced computing power of the computer system.

Es ist die Aufgabe der Erfindung, ein Verfahren zur Steuerung eines Computersystems anzugeben, das zu einer effizienten Ar­ beitsweise des Computersystems führt, ein entsprechendes Com­ putersystem mit einer Ausführungsumgebung anzugeben und ein entsprechendes Computerprogrammprodukt anzugeben.It is the object of the invention to provide a control method to specify a computer system that leads to an efficient Ar of the computer system, a corresponding com to specify the computer system with an execution environment and a to specify the corresponding computer program product.

Erfindungsgemäß wird die Aufgabe gelöst durch ein Verfahren zur Steuerung eines Computersystems, bei dem eine Vielzahl von Instruktionen, die in einer Reihenfolge in einem Befehls­ speicher angeordnet sind, von einer Recheneinheit auf dem Be­ fehlsspeicher geladen werden und strikt in der Reihenfolge von der Recheneinheit ausgeführt werden, wobei eine vorbe­ stimmte Auswahl von Instruktionen in einer anderen als der durch den Befehlsspeicher vorgegebenen Reihenfolge ausgeführt werden.According to the invention, the object is achieved by a method to control a computer system in which a variety of instructions in an order in a command are arranged by a processor on the loading faulty memories are loaded and strictly in the order are executed by the computing unit, one being agreed selection of instructions in a different one than that executed by the instruction memory predetermined order become.

Ein Vorteil der erfindungsgemäßen Lösung besteht darin, daß nur eine vorbestimmte Auswahl von Instruktionen in einer an­ deren Reihenfolge aufgeführt wird. Durch die Vertauschbarkeit der Reihenfolge der vorbestimmten Auswahl von Instruktionen kann die hohe Leistungsfähigkeit moderner Prozessoren in pa­ ralleler Verarbeitung in parallelen Einheiten ausgeschöpft werden. Da allerdings die Einschränkung besteht, daß nur eine vorbestimmte Auswahl von Instruktionen vertauscht werden kann, ist die Integrität der verarbeiteten Daten gewährlei­ stet.An advantage of the solution according to the invention is that only a predetermined selection of instructions in one whose order is listed. Due to the interchangeability the order of the predetermined selection of instructions can the high performance of modern processors in pa parallel processing in parallel units exhausted become. However, since there is a restriction that only one predetermined selection of instructions can be interchanged  can, the integrity of the processed data is guaranteed stet.

Ein erfindungsgemäßes Vorgehen besteht darin, die Vielzahl von Instruktionen zunächst als nicht vertauschbar anzusehen und speziell eine vorbestimmte Auswahl von Instruktionen aus­ zuwählen, bei denen eine Vertauschung der Reihenfolge möglich ist.One procedure according to the invention is the multitude of instructions to be regarded as non-interchangeable and specifically a predetermined selection of instructions select where the order can be reversed is.

Eine Ausgestaltung der Erfindung sieht vor, daß die Rechen­ einheit mit einem Datenspeicher verbunden ist, in dem ein Da­ tenbereich angeordnet ist und die vorbestimmte Auswahl von Instruktionen eine Dateninstruktion umfaßt und die vorbe­ stimmte Auswahl von Instruktionen unter Berücksichtigung des durch die Dateninstruktion verwendeten Datenbereichs ausge­ wählt wird. Ein Vorteil dieses Verfahrensschrittes besteht darin, daß die vorbestimmte Auswahl von Instruktionen, die in einer anderen als der durch den Befehlsspeicher vorgegebenen Reihenfolge ausgeführt werden darf, mittels eines von der Da­ teninstruktion verwendeten Datenbereich ausgewählt wird.An embodiment of the invention provides that the rake Unit is connected to a data store in which a Da is arranged and the predetermined selection of Instructions include a data instruction and the past agreed selection of instructions taking into account the data area used by the data instruction is chosen. There is an advantage to this process step in that the predetermined selection of instructions contained in a different one than that specified by the command memory Order may be carried out by means of one of the da data area used is selected.

Eine weitere Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß die Verwendung des Datenbereichs beinhaltet, daß die Recheneinheit den Datenbereich für eine Zeitdauer ex­ klusiv bearbeitet. Dies bedeutet, daß die Recheneinheit zum Zeitdauer des Zugriffs auf die Daten exklusive Zugriffsrechte für den Datenbereich besitzt. Dadurch kann eine Datenkonsi­ stenz gewährleistet werden, selbst wenn die Reihenfolge der Abarbeitung in der Recheneinheit für die vorbestimmte Auswahl von Instruktionen anders ist, als die durch den Befehlsspei­ cher vorgegebene Reihenfolge.Another embodiment of the method according to the invention provides that the use of the data area includes that the computing unit ex. the data area for a period of time edited exclusively. This means that the computing unit for Duration of access to the data excluding access rights for the data area. This enables data consi can be guaranteed even if the order of Processing in the computing unit for the predetermined selection of instructions is different than that of the instruction memory predetermined order.

Eine weitere vorteilhafte Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß die Verwendung des Datenbereichs beinhaltet, daß der Datenbereich ausschließlich für die Bear­ beitung durch die Recheneinheit freigegeben ist. Die aus­ schließliche Freigabe für die Bearbeitung durch die Recheneinheit ist beispielsweise durch einen sogenannten LOCK- Mechanismus möglich. Hierbei wird der Datenbereich beispiels­ weise durch die Recheneinheit gesperrt, so daß der Datenbe­ reich ausschließlich für die Bearbeitung durch die Rechenein­ heit freigegeben ist.Another advantageous embodiment of the invention The procedure provides for the use of the data area means that the data area is only for the Bear processing is released by the computing unit. The out eventual approval for processing by the computing unit  is, for example, by a so-called LOCK Mechanism possible. Here, the data area becomes an example as blocked by the computing unit, so that the Datenbe only for processing by the computer is released.

Weiterhin ist vorgesehen, daß die Verwendung des Datenbe­ reichs beinhaltet, daß der Datenbereich ausschließlich in dem Adreßraum des Ablaufträgers liegt. Unter einem Ablaufträger wird ein Task oder ein Prozeß oder ein Thread verstanden. Durch dieses Auswahlkriterium für die vorbestimmte Auswahl von Instruktionen ist ebenfalls sichergestellt, daß andere Prozessoren von einer Vertauschung der Bearbeitungsreihenfol­ ge in der Recheneinheit unberührt bleiben, da der betreffende Datenbereich ausschließlich in dem Adreßraum der Rechenein­ heit liegt.It is also provided that the use of the data reichs means that the data area is only in the Address space of the drain carrier is. Under a drain support a task or a process or a thread is understood. By means of this selection criterion for the predetermined selection instructions also ensure that others Processors from swapping the processing order ge remain unaffected in the arithmetic unit since the relevant Data area only in the address space of the computer lies.

Zur Bestimmung der Datenfelder, die zur Auswahl der Instruk­ tionen herangezogen werden können, sind Attribute verwendbar, welche die Datenfelder bei einer Datenfelddeklaration kenn­ zeichnen.To determine the data fields used to select the instruct attributes can be used, attributes can be used, which knows the data fields in a data field declaration to draw.

Bezüglich des Computersystems wird die Aufgabe gelöst durch ein Computersystem mit einer Ausführungsumgebung, in der eine Vielzahl von Instruktionen, die in einer Reihenfolge in einem Befehlsspeicher zur Verarbeitung in einer Recheneinheit ge­ speichert sind, wobei die Recheneinheit Mittel aufweist, die Vielzahl von Instruktionen strikt in der Reihenfolge auszu­ führen, wobei die Recheneinheit Mittel aufweist, die eine vorbestimmte Auswahl von Instruktionen in einer anderen als der durch den Befehlsspeicher vorgegebenen Reihenfolge auszu­ führen.With regard to the computer system, the task is solved by a computer system with an execution environment in which a Variety of instructions arranged in an order in one Command memory for processing in a computing unit are stored, the computing unit having means which Variety of instructions strictly in order lead, the computing unit having means that a predetermined selection of instructions other than the order specified by the command memory to lead.

Das erfindungsgemäße Computersystem ermöglicht generell die Ausführung einer Vielzahl von Instruktionen in einer strikten Reihenfolge. Dadurch ist die Integrität der verarbeiteten Da­ ten gewährleistet. Eine Abweichung von der vorgegebenen Reihenfolge ist für eine vorbestimmte Auswahl von Instruktionen möglich, so daß eine beschleunigte Abarbeitung des Programms durchgeführt werden kann.The computer system according to the invention generally enables Execution of a variety of instructions in a strict Sequence. This is the integrity of the processed da guaranteed. A deviation from the given order  is for a predetermined selection of instructions possible so that an accelerated execution of the program can be carried out.

Bezüglich des Computerprogrammprodukts wird die Aufgabe ge­ löst durch ein Computerprogrammprodukt, das direkt in den in­ ternen Speicher eines digitalen Computers geladen werden kann und Softwarecode-Abschnitte aufweist, mit denen die Schritte gemäß einem der Ansprüche 1 bis 5 ausgeführt werden, wenn das Produkt auf einem Computer läuft.With regard to the computer program product, the task is ge solves by a computer program product that is directly in the internal memory of a digital computer can be loaded and has software code sections that perform the steps according to one of claims 1 to 5, if the Product is running on a computer.

Weiterhin wird die Aufgabe gelöst durch ein Computerprogramm­ produkt, das auf einem computergeeigneten Medium gespeichert ist und folgendes umfaßt: Computerlesbare Programmittel, die einen Computer veranlassen, eine Vielzahl von Instruktionen, die in einer Reihenfolge in einem Befehlsspeicher gespeichert sind, von einer Recheneinheit aus dem Befehlsspeicher zu la­ den und strikt in der Reihenfolge von der Recheneinheit aus­ zuführen, wobei eine vorbestimmte Auswahl von Instruktionen in einer anderen als der durch den Befehlsspeicher vorgegebe­ nen Reihenfolge ausgeführt werden.Furthermore, the task is solved by a computer program product that is stored on a computer-compatible medium is and comprises: computer readable program means, the cause a computer to issue a variety of instructions, which are stored in order in an instruction memory are from a processing unit from the instruction memory to la the and strictly in order from the computing unit feed, with a predetermined selection of instructions in a different one than that specified by the command memory order.

Vorteilhafte Ausgestaltungen der Erfindung sind Gegenstand der jeweiligen Unteransprüche.Advantageous embodiments of the invention are the subject of the respective subclaims.

Nachfolgend wird die Erfindung anhand von Ausführungsbeispie­ len und Figuren näher erläutert.The invention is described below with reference to exemplary embodiments len and figures explained in more detail.

In den Figuren zeigen:The figures show:

Fig. 1 ein Computersystem mit einer Recheneinheit, einem Programmspeicher und einem Datenspeicher; Fig. 1, a computer system having a processing unit, a program memory and a data memory;

Fig. 2 den Ablauf eines Verfahrens. Fig. 2 shows the sequence of a method.

In Fig. 1 ist ein Computersystems 1 dargestellt. Das Compu­ tersystem 1 umfaßt einen Befehlsspeicher 2, der mit einer Recheneinheit 3 verbunden ist. Die Recheneinheit 3 ist mit ei­ nem Datenspeicher 4 verbunden. In dem Befehlsspeicher 2 ist eine Vielzahl von Instruktionen 5 in einer Reihenfolge 6 an­ geordnet. In dem Befehlsspeicher 2 ist eine vorbestimmte Aus­ wahl von Instruktionen 7 und eine Dateninstruktion 8 angeord­ net. In dem Datenspeicher 4 ist ein Datenbereich 9 angeord­ net.In Fig. 1, a computer system 1 is shown. The computer system 1 comprises an instruction memory 2 , which is connected to a computing unit 3 . The computing unit 3 is connected to a data memory 4 . In the instruction memory 2 , a plurality of instructions 5 are arranged in an order 6 . In the instruction memory 2 , a predetermined selection of instructions 7 and a data instruction 8 is arranged. A data area 9 is arranged in the data memory 4 .

Ein Verfahren zur Steuerung des in Fig. 1 dargestellten Com­ putersystems lädt die Vielzahl von Instruktionen 5 aus dem Befehlsspeicher 2 in die Recheneinheit 3, wo die Vielzahl von Instruktionen 5 in der Reihenfolge 6 ausgeführt wird. Die vorbestimmte Auswahl von Instruktionen 7 wird ebenfalls aus dem Befehlsspeicher 2 in die Recheneinheit geladen, wird al­ lerdings in einer anderen als der durch den Befehlsspeicher 2 vorgegebenen Reihenfolge 6 ausgeführt.A method for controlling the computer system shown in FIG. 1 loads the plurality of instructions 5 from the instruction memory 2 into the arithmetic unit 3 , where the plurality of instructions 5 are executed in the order 6 . The predetermined selection of instructions 7 is also loaded from the command memory 2 into the arithmetic unit, but is, however, carried out in a different order 6 than that specified by the command memory 2 .

Die in dem Befehlsspeicher 2 enthaltene Dateninstruktion 8 veranlaßt bei ihrer Ausführung die Recheneinheit 3 dazu, auf den Datenbereich 9 zuzugreifen. Die vorbestimmte Auswahl von Instruktionen 7 wird nun unter Berücksichtigung des durch die Dateninstruktion 8 verwendeten Datenbereichs 9 ausgewählt. Die vorbestimmte Auswahl von Instruktionen 7 kann dabei die Dateninstruktion 8 umfassen. Ebenso ist es möglich, daß die Dateninstruktion 8 nicht von der vorbestimmten Auswahl von Instruktionen 7 umfaßt wird.When executed, the data instruction 8 contained in the instruction memory 2 causes the computing unit 3 to access the data area 9 . The predetermined selection of instructions 7 is now selected taking into account the data area 9 used by the data instruction 8 . The predetermined selection of instructions 7 can include the data instruction 8 . It is also possible that the data instruction 8 is not included in the predetermined selection of instructions 7 .

Eine Variante des erfindungsgemäßen Verfahrens sieht vor, daß die Verwendung des Datenbereichs 9 durch die Dateninstruktion 8 beinhaltet, daß die Recheneinheit 3 den Datenbereich 9 ex­ klusiv bearbeitet.A variant of the method according to the invention provides that the use of the data area 9 by the data instruction 8 implies that the computing unit 3 processes the data area 9 exclusively.

Ein weiteres Ausführungsbeispiel der Erfindung sieht vor, daß die Verwendung des Datenbereichs 9 durch die Dateninstruktion 8 beinhaltet, daß der Datenbereich 9 ausschließlich für die Bearbeitung durch die Recheneinheit 3 freigegeben ist. A further exemplary embodiment of the invention provides that the use of the data area 9 by the data instruction 8 means that the data area 9 is only released for processing by the computing unit 3 .

Ein weiteres Ausführungsbeispiel sieht vor, daß die Verwen­ dung des Datenbereichs 9 durch die Dateninstruktion 8 bein­ haltet, daß der Datenbereich 9 ausschließlich in dem Adreß­ raum der Recheneinheit 3 liegt.Another exemplary embodiment provides that the use of the data area 9 by the data instruction 8 includes that the data area 9 lies exclusively in the address space of the computing unit 3 .

Durch die oben genannten Verwendungsbeispiele des Datenbe­ reichs 9 durch die Dateninstruktion 8 und die Recheneinheit 3 ist jeweils sichergestellt, daß die Recheneinheit 3 - zumin­ dest zeitweise - als einzige Einheit des Computersystems 1 Zugriff auf den Datenbereich 9 des Datenspeichers 4 erhält. Damit kann ausgeschlossen werden, daß eine weitere Rechenein­ heit, die in dem Computersystem 1 angeordnet ist, auf den Da­ tenbereich 9 zugreift, so daß Konflikte zwischen konkurrie­ renden Recheneinheiten ausgeschlossen werden können. Da folg­ lich die Recheneinheit 3 bezüglich der Dateninstruktion 8 weitere Recheneinheiten nicht berücksichtigen muß, kann die vorbestimmte Auswahl von Instruktionen 7 anhand der Datenin­ struktion 8 so bestimmt werden, daß die vorbestimmte Auswahl von Instruktionen in einer anderen als der durch den Befehls­ speicher 2 vorgegebenen Reihenfolge 6 ausgeführt wird. Durch die Abweichung von der Reihenfolge 6 kann das Leistungspoten­ tial moderner Prozessoren ausgenutzt werden, die beispiels­ weise eine Umsortierung von Befehlen automatisch während der Laufzeit durchführen und/oder Befehle in parallele Rechenwer­ ke innerhalb der Recheneinheit verteilen.The above-mentioned examples of use of the data area 9 by the data instruction 8 and the computing unit 3 ensure that the computing unit 3 - at least at least temporarily - as the only unit of the computer system 1 receives access to the data area 9 of the data memory 4 . This can rule out that another Rechenein unit, which is arranged in the computer system 1 , accesses the data area 9 , so that conflicts between competing computing units can be excluded. Since successful Lich the computing unit 3 with respect to the data instruction must not consider 8 more computing units, the predetermined selection of instructions 7 can reference to the data in constructive tion 8 are determined so that the predetermined selection of instructions in a language other than the memory by the instruction 2 predetermined order 6 is executed. By deviating from the order 6 , the performance potential of modern processors can be exploited, which, for example, automatically rearranges commands during runtime and / or distributes commands to parallel computing units within the computing unit.

In Fig. 2 ist ein Programmablauf dargestellt. In einem er­ sten Programmschritt S1 wird der Programmstart mit einer ent­ sprechenden Initialisierung durchgeführt. In einem zweiten Programmschritt S2 werden Deklarationen vorgenommen, wobei der Datenbereich 9 - unter Angabe der Art der auf ihn mögli­ chen Zugriffe - deklariert wird. Hierbei muß beispielsweise entschieden werden, ob der Datenbereich 9 während der Lauf­ zeit des Programmes lediglich von der Recheneinheit 3 verwen­ det wird, oder eine andere Recheneinheit während der Laufzeit des Programms auf den Datenbereich 9 zugreifen könnte. In ei­ nem dritten Programmschritt S3 erfolgt der Programmablauf, wobei die Vielzahl von Instruktionen 5, die in dem Befehls­ speicher 2 in der Reihenfolge 6 gespeichert sind, von der Re­ cheneinheit 3 aus dem Befehlsspeicher 2 geladen werden und strikt in der Reihenfolge 6 von der Recheneinheit 3 ausge­ führt werden. In einem vierten Programmschritt S4 wird eine Dateninstruktion 8, die auf dem oben deklarierten Datenbe­ reich 9 zugreift, dazu verwendet, eine vorbestimmte Auswahl von Instruktionen 7 auszuwählen. Unter einer Dateninstruktion wird dabei eine Instruktion verstanden, die einen Speicherzu­ griff oder einen Cache-Speicherzugriff oder einen Registerzu­ griff umfaßt. Dabei werden beispielsweise Daten in die Re­ cheneinheit geladen.A program flow is shown in FIG . In a first program step S1, the program is started with a corresponding initialization. Declarations are made in a second program step S2, the data area 9 being declared , stating the type of accesses which it is able to access. Here it must be decided, for example, whether the data area 9 is only used by the computing unit 3 during the running time of the program, or whether another computing unit could access the data area 9 during the running time of the program. In a third program step S3, the program sequence takes place, the plurality of instructions 5 , which are stored in the command memory 2 in the order 6 , being loaded by the computing unit 3 from the command memory 2 and strictly in the order 6 by the computing unit 3 leads out. In a fourth program step S4, a data instruction 8 , which accesses the data area 9 declared above, is used to select a predetermined selection of instructions 7 . A data instruction is understood to mean an instruction that includes a memory access or a cache memory access or a register access. For example, data is loaded into the computing unit.

Die Auswahl der vorbestimmten Instruktionen 7 erfolgt nun so, daß die vorbestimmte Auswahl von Instruktionen 7 keine Rück­ wirkung auf eine weitere Recheneinheit hat, die neben der Re­ cheneinheit 3 in dem Computersystem 1 angeordnet ist.The selection of the predetermined instructions 7 is now carried out so that the predetermined selection of instructions 7 has no effect on a further computing unit which is arranged next to the computing unit 3 in the computer system 1 .

In einem fünften Programmschritt S5 wird ein weiterer Pro­ grammablauf durchgeführt und das Programm abschließend been­ det.In a fifth program step S5 another Pro the program was completed and the program ended det.

Das erfindungsgemäße Verfahren umfaßt folglich, daß zunächst ein Programm als strongly-ordered angesehen wird.The method according to the invention consequently comprises that initially a program is considered strongly ordered.

Strong-Ordering bedeutet, daß die in einem Programmcode ange­ gebenen Befehle von einem Prozessor genau in der angegebenen Reihenfolge abzuarbeiten sind. Dies gewährleistet beispiels­ weise die Datenintegrität. Datenintegrität bedeutet dabei, daß beispielsweise ein Register erst dann mit Daten aus dem Speicher geladen wird, wenn sichergestellt ist, daß an der aus dem Speicherbereich zu ladenden Speicherzelle jeder vor­ hergehende Speichervorgang abgeschlossen ist, so daß die zum Zeitpunkt des Lesens in der Speicherzelle angeordneten Daten tatsächlich den zu lesenden Daten entsprechen und nicht eine alte Dateninstanz enthalten. Zusätzlich wird bei Strong- Ordering gewährleistet, daß zunächst unabhängig erscheinende Zugriffe auf unterschiedliche Speicherbereiche in der angege­ benen Reihenfolge abgearbeitet werden. Dies ist zum Beispiel dann von Vorteil, wenn ein Signalfeld den Zustand eines Da­ tenfeldes Kennzeichnet. Das Signalfeld sollte erst dann die Gültigkeit der Daten im Datenfeld anzeigen, wenn diese tat­ sächlich bereits in dem Datenfeld gespeichert sind. Eine Ver­ tauschung der Reihenfolge hätte hier die Verarbeitung ungül­ tiger Daten zur Folge.Strong ordering means that the in a program code instructions given by a processor exactly in the specified Order must be processed. This ensures, for example wise data integrity. Data integrity means that, for example, only then a register with data from the Memory is loaded when it is ensured that at the each from the memory area to be loaded before forthcoming storage process is completed, so that the for Time of reading data arranged in the memory cell actually correspond to the data to be read and not one contain old data instance. In addition, Strong- Ordering ensures that initially appearing independently  Access to different memory areas in the specified the above sequence. This is for example then advantageous if a signal field shows the state of a Da Indicates tenfeldes. Only then should the signal field Show the validity of the data in the data field if it did are actually already stored in the data field. A ver Swapping the order would invalidate the processing here resulting data.

Weak-Ordering bedeutet, daß der Prozessor selbständig Pro­ grammsegmente und Befehlsabfolgen vertauschen kann, um bei­ spielsweise mehrere parallel ausgeführte Einheiten mit Daten und Programmen zu füllen, so daß die Abarbeitungsgeschwindig­ keit des Programms gesteigert wird.Weak ordering means that the processor independently Pro can swap gram segments and command sequences to at for example, several units with data running in parallel and programs to fill, so that the execution speed program is increased.

Es werden diejenigen Programmabschnitte oder Daten identifi­ ziert, die garantiert kein Strong-Ordering benötigen. Dadurch ist sichergestellt, daß die Datenintegrität durch den Pro­ grammablauf erhalten bleibt. Als Auswahlkriterien für die identifizierten Softwareabschnitte, die ein Weak-Ordering er­ lauben, sind beispielsweise geeignet, daß ein Datum niemals von zwei Prozessoren gleichzeitig bearbeitet wird. Ein weite­ res Kriterium ist, daß ein Datum stets unter einem Sperr­ schutz bearbeitet wird, so daß für die Bearbeitungszeit ein Prozessor die Exklusivrechte an den Zugriffsmöglichkeiten auf das Datum besitzt. Ein weiteres Kriterium beinhaltet, daß ein Datum in einem Speicherbereich angeordnet ist, der nur in dem Adressraum eines Prozessors liegt. Folglich ist auch hiermit ausgeschlossen, daß ein weiterer Prozessor auf das Datum zu­ greifen kann. Zur Umsetzung der Erfindung können Sprachmittel bereitgestellt werden, die eine Assembler- beziehungsweise eine Computerprogrammiersprache um Sprachmittel erweitern, die entweder Abschnitte von Instruktionen oder Datenbereiche des Speichers so kennzeichnen, daß von der Recheneinheit 3 zwischen Programmabschnitten mit Weak-Ordering und Strong- Ordering unterschieden werden kann. Those program sections or data are identified that are guaranteed not to require strong ordering. This ensures that data integrity is maintained through the program flow. Suitable selection criteria for the identified software sections that allow weak ordering are, for example, that a date is never processed by two processors simultaneously. A further res criterion is that a date is always processed under a lock protection, so that a processor has the exclusive rights to access the date for the processing time. Another criterion includes that a datum is arranged in a memory area that is only in the address space of a processor. Consequently, this also means that another processor cannot access the date. To implement the invention, language means can be provided which extend an assembler or a computer programming language by language means which either identify sections of instructions or data areas of the memory in such a way that the computing unit 3 can distinguish between program sections with weak ordering and strong ordering ,

Programmabschnitte mit Weak-Ordering ermöglichen dabei eine gesteigerte Abarbeitungsleistung des Computersystems, wobei durch die strongly-ordered Programmabschnitte die Dateninte­ grität gewährleistet bleibt. Program sections with weak ordering enable one increased processing power of the computer system, wherein through the strongly-ordered program sections the data ink quality is guaranteed.  

BezugszeichenlisteLIST OF REFERENCE NUMBERS

11

Computersystem
computer system

22

Befehlsspeicher
instruction memory

33

Recheneinheit
computer unit

44

Datenspeicher
data storage

55

Vielzahl von Instruktionen
Variety of instructions

66

Reihenfolge
sequence

77

vorbestimmte Auswahl von Instruktionen
predetermined selection of instructions

88th

Dateninstruktion
data instruction

99

Datenbereich
S1 erster Programmschritt
S2 zweiter Programmschritt
S3 dritter Programmschritt
S4 vierter Programmschritt
S5 fünfter Programmschritt
data area
S1 first program step
S2 second program step
S3 third program step
S4 fourth program step
S5 fifth program step

Claims (8)

1. Verfahren zur Steuerung eines Computersystems (1), bei dem eine Vielzahl von Instruktionen (5), die in einer Reihenfolge (6) in einem Befehlsspeicher (2) angeordnet sind, von einer Recheneinheit (3) aus dem Befehlsspeicher (2) geladen werden und strikt in der Reihenfolge (6) von der Recheneinheit (3) ausgeführt werden, wobei eine vorbestimmte Auswahl von In­ struktionen (7) in einer anderen als der durch den Befehls­ speicher (2) vorgegebenen Reihenfolge (6) ausgeführt werden.1. A method for controlling a computer system ( 1 ), in which a plurality of instructions ( 5 ), which are arranged in an order ( 6 ) in a command memory ( 2 ), are loaded by a computing unit ( 3 ) from the command memory ( 2 ) and are executed strictly in the order ( 6 ) by the computing unit ( 3 ), a predetermined selection of instructions ( 7 ) being executed in a different order ( 6 ) than that given by the command memory ( 2 ). 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Recheneinheit (3) mit einem Datenspeicher (4) verbunden ist, in dem ein Datenbereich (9) angeordnet ist und die vor­ bestimmte Auswahl von Instruktionen (7) eine Dateninstruktion (8) umfaßt und die vorbestimmte Auswahl von Instruktionen un­ ter Berücksichtigung des durch die Dateninstruktion (8) ver­ wendeten Datenbereichs (9) ausgewählt wird.2. The method according to claim 1, characterized in that the computing unit ( 3 ) is connected to a data memory ( 4 ) in which a data area ( 9 ) is arranged and which comprises a data instruction ( 8 ) prior to certain selection of instructions ( 7 ) and the predetermined selection of instructions is selected taking into account the data area ( 9 ) used by the data instruction ( 8 ). 3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, daß die Verwendung des Datenbereichs (9) beinhaltet, daß die Re­ cheneinheit (3) den Datenbereich (9) exklusiv bearbeitet.3. The method according to claim 2, characterized in that the use of the data area ( 9 ) includes that the computing unit Re ( 3 ) processes the data area ( 9 ) exclusively. 4. Verfahren nach einem der Ansprüche 2 oder 3, dadurch gekennzeichnet, daß die Verwendung des Datenbereichs (9) beinhaltet, daß der Da­ tenbereich (9) ausschließlich für die Bearbeitung durch die Recheneinheit (3) freigegeben ist.4. The method according to any one of claims 2 or 3, characterized in that the use of the data area ( 9 ) includes that the Da tenbereich ( 9 ) is only released for processing by the computing unit ( 3 ). 5. Verfahren nach einem der Ansprüche 2 bis 4, dadurch gekennzeichnet, daß die Verwendung des Datenbereichs (9) beinhaltet, daß der Da­ tenbereich ausschließlich in dem Adreßraum der Recheneinheit (3) liegt. 5. The method according to any one of claims 2 to 4, characterized in that the use of the data area ( 9 ) includes that the Da tenbereich lies exclusively in the address space of the computing unit ( 3 ). 6. Computersystem mit einer Ausführungsumgebung, in der eine Vielzahl von Instruktionen (5), die in einer Reihenfolge (6) in einem Befehlsspeicher (2) zur Verarbeitung in einer Re­ cheneinheit (3) gespeichert sind, wobei die Recheneinheit (3) Mittel aufweist, die Vielzahl von Instruktionen (5) strikt in der Reihenfolge (6) auszuführen, wobei die Recheneinheit (3) Mittel aufweist, die eine vorbestimmte Auswahl von Instruk­ tionen (7) in einer anderen als der durch den Befehlsspeicher (2) vorgegebenen Reihenfolge (6) auszuführen.6. A computer system comprising an execution environment in which a plurality of instructions (5), which are stored in an order (6) in an instruction memory (2) unit area for processing in a Re (3), wherein the computing unit (3) comprises means , to execute the plurality of instructions ( 5 ) strictly in the order ( 6 ), the computing unit ( 3 ) having means which carry out a predetermined selection of instructions ( 7 ) in a different order than that specified by the command memory ( 2 ) ( 6 ) to execute. 7. Computerprogrammprodukt, das direkt in den internen Spei­ cher eines digitalen Computers geladen werden kann und Soft­ warecode-Abschnitte aufweist, mit denen die Schritte gemäß einem der Ansprüche 1 bis 5 ausgeführt werden, wenn das Pro­ dukt auf einem Computer läuft.7. Computer program product that directly into the internal memory cher of a digital computer can be loaded and soft warecode sections with which the steps according to one of claims 1 to 5 are executed when the Pro runs on a computer. 8. Computerprogrammprodukt, das auf einem computergeeigneten Medium gespeichert ist und folgendes umfaßt:
Computerlesbare Programmittel, die einen Computer veranlas­ sen, eine Vielzahl von Instruktionen (5), die in einer Rei­ henfolge (6) in einem Befehlsspeicher (2) gespeichert sind, von einer Recheneinheit (3) aus dem Befehlsspeicher (2) zu laden und strikt in der Reihenfolge (6) von der Recheneinheit (3) auszuführen, wobei eine vorbestimmte Auswahl von Instruk­ tionen (7) in einer anderen als der durch den Befehlsspeicher (2) vorgegebenen Reihenfolge (6) ausgeführt werden.
8. Computer program product that is stored on a computer-compatible medium and comprises the following:
Computer-readable program means which cause a computer to load and strictly a plurality of instructions ( 5 ), which are stored in a sequence ( 6 ) in a command memory ( 2 ) by a computing unit ( 3 ) from the command memory ( 2 ) to be executed in the order ( 6 ) by the computing unit ( 3 ), a predetermined selection of instructions ( 7 ) being executed in a different order ( 6 ) from the instruction memory ( 2 ).
DE10065750A 2000-12-29 2000-12-29 Method for controlling a computer system and a computer operating system allowing parallel processing that ensures only program instructions that will not affect data integrity are run out of sequence Ceased DE10065750A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE10065750A DE10065750A1 (en) 2000-12-29 2000-12-29 Method for controlling a computer system and a computer operating system allowing parallel processing that ensures only program instructions that will not affect data integrity are run out of sequence

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE10065750A DE10065750A1 (en) 2000-12-29 2000-12-29 Method for controlling a computer system and a computer operating system allowing parallel processing that ensures only program instructions that will not affect data integrity are run out of sequence

Publications (1)

Publication Number Publication Date
DE10065750A1 true DE10065750A1 (en) 2002-07-18

Family

ID=7669441

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10065750A Ceased DE10065750A1 (en) 2000-12-29 2000-12-29 Method for controlling a computer system and a computer operating system allowing parallel processing that ensures only program instructions that will not affect data integrity are run out of sequence

Country Status (1)

Country Link
DE (1) DE10065750A1 (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

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
DE4222776C2 (en) Parallel processing unit and method for executing instructions
DE19527031C2 (en) Branch processor for a data processing system and method for operating a data processing system
DE69816044T2 (en) TIMELINE BASED CACHE STORAGE AND REPLACEMENT TECHNIQUES
DE19983330B4 (en) A computer processor having a repeater system with a clocked delay stage and method of processing a command in such processor
DE69132675T2 (en) Parallel assembly line command processing system for very long command words
DE69031991T2 (en) Method and device for accelerating branch instructions
DE69130723T2 (en) Processing device with memory circuit and a group of functional units
DE10297279T5 (en) Method and device for performing compiler transformation of software code using fast-forward areas and value specialization
DE68924719T2 (en) Device and method for executing a subroutine in a data processing system with block switching.
DE69130414T2 (en) Processor and method for parallel processing
DE4103093C2 (en) Method for controlling a data transfer buffer memory and computer system for performing this method
DE69128908T2 (en) Method for executing mandatory commands in a computer
DE4134392C2 (en) Method and apparatus for invalidating commands in devices with parallel processing
DE10306051A1 (en) Core parallel execution with different optimization characteristics to reduce the dynamic execution path
DE19824289A1 (en) pipeline data processing system
DE10103070B4 (en) Method and test circuit for determining a validity status for a past load command
DE69626263T2 (en) System for dispatching multiple instructions without branch break in a pipeline processor
DE1774421B1 (en) MORE PROGRAM DATA PROCESSING SYSTEM
DE60005830T2 (en) METHOD AND DEVICE FOR CONTROLLING A JUMP DELAY SLOT IN A PIPELINE PROCESSOR
DE10065750A1 (en) Method for controlling a computer system and a computer operating system allowing parallel processing that ensures only program instructions that will not affect data integrity are run out of sequence
DE3535215C2 (en)
EP1770521B1 (en) Multiprocessor architecture and method for controlling memory access in a multiprocessor architecture
EP0537302B1 (en) Method of processing a user programme in a parallel-computer system
DE69811159T2 (en) METHOD FOR REDUCING THE FREQUENCY OF CLOCKING MISTAKES IN A COMPUTER

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection