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 sequenceInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 230000015654 memory Effects 0.000 claims abstract description 53
- 238000004590 computer program Methods 0.000 claims abstract description 8
- 238000013500 data storage Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- REQCZEXYDRLIBE-UHFFFAOYSA-N procainamide Chemical compound CCN(CC)CCNC(=O)C1=CC=C(N)C=C1 REQCZEXYDRLIBE-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation 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
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.
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)
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 ).
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5918005A (en) * | 1997-03-25 | 1999-06-29 | International Business Machines Corporation | Apparatus region-based detection of interference among reordered memory operations in a processor |
-
2000
- 2000-12-29 DE DE10065750A patent/DE10065750A1/en not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5918005A (en) * | 1997-03-25 | 1999-06-29 | International Business Machines Corporation | Apparatus region-based detection of interference among reordered memory operations in a processor |
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 | |
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. | |
DE19983098B4 (en) | Multi-bit display for handling write-to-write errors and eliminating bypass comparators | |
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) | ||
EP1770521A2 (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 |