DE10065752A1 - Computer program execution with instructions reordered to speed execution, relating particularly to multi-processor systems, in which certain instructions are prevented from being run out of sequence to preserve data integrity - Google Patents
Computer program execution with instructions reordered to speed execution, relating particularly to multi-processor systems, in which certain instructions are prevented from being run out of sequence to preserve data integrityInfo
- Publication number
- DE10065752A1 DE10065752A1 DE2000165752 DE10065752A DE10065752A1 DE 10065752 A1 DE10065752 A1 DE 10065752A1 DE 2000165752 DE2000165752 DE 2000165752 DE 10065752 A DE10065752 A DE 10065752A DE 10065752 A1 DE10065752 A1 DE 10065752A1
- Authority
- DE
- Germany
- Prior art keywords
- instructions
- instruction
- memory
- predetermined
- 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
- 238000004590 computer program Methods 0.000 title claims abstract description 11
- 238000000034 method Methods 0.000 claims abstract description 28
- 238000012545 processing Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 description 25
- 238000013500 data storage Methods 0.000 description 10
- 230000008707 rearrangement Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000011160 research Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (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 lädt und diese in der Reihenfolge abarbeitet, wie sie in dem Befehlsspeicher gespeichert sind. Dadurch ist stets sichergestellt, daß ein Speicher-Schreib- Befehl, der in der Reihenfolge in dem Befehlsspeicher vor ei nem Speicher-Lese-Befehl angeordnet ist, auch vor dem Spei cher-Lese-Befehl ausgeführt wird, so daß die Daten bereits in dem Datenspeicher gespeichert sind und der Speicher-Lese- Befehl die tatsächlich aktuellen Daten aus dem Speicher er hält.Computer systems with conventional processors stand out characterized in that the processor (arithmetic unit) instructions loads from a command memory and this in order processes how they are stored in the command memory. This always ensures that a memory write Command that is in order in the command memory before ei NEM memory read command is arranged, also before the Spei cher read command is executed so that the data is already in the data memory are stored and the memory read Command the actual current data from the memory holds.
Modernere 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.For example, more modern processors have several parallel ones 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 bzw. Vertauschung der Reihenfolge der Abarbeitung generell unterdrückt wird. Dies führt allerdings zu einer we sentlich reduzierten Rechenleistung des Computersystems.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 processing is generally suppressed. However, this leads to a we considerably reduced computing power of the computer system.
Es ist die Aufgabe der Erfindung ein Verfahren zur Steuerung eines Computersystems anzugeben, das zu einer effizienteren Arbeitsweise des Computersystems führt, ein entsprechendes Computersystem 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 becomes more efficient Operation of the computer system leads to a corresponding Specify 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, bei dem eine Vielzahl von Instruktionen von einer Recheneinheit aus einem Befehls speicher geladen wird, die abweichend von ihrer Reihenfolge im Befehlsspeicher von der Recheneinheit ausgeführt werden, und eine Instruktion, die einen vorbestimmten Zugriff auf ei nen vorbestimmten Datenspeicher beinhaltet, eine Umsortierung der Instruktionen in einer vorbestimmten Weise einschränkt.According to the invention, the object is achieved by a method to control a computer system in which a variety instructions from an arithmetic unit from a command memory is loaded, which is different from their order are executed in the command memory by the computing unit, and an instruction that provides predetermined access to egg includes a predetermined data storage, a resort which restricts instructions in a predetermined manner.
Ein Vorteil der erfindungsgemäßen Lösung besteht darin, daß die Instruktionen in dem Befehlsspeicher größtenteils in ih rer Reihenfolge vertauschbar sind, wodurch die hohe Lei stungsfähigkeit moderner Prozessoren mit paralleler Verarbei tung in parallelen Einheiten sowie Vertauschung von Instruk tionen ausgeschöpft werden kann. Darüber hinaus wird zu den Instruktionen in dem Befehlsspeicher, die beispielsweise für eine Datenintegrität entscheidend sind, die Umsortierung von Instruktionen in einer vorbestimmten Weise eingeschränkt.An advantage of the solution according to the invention is that the instructions in the instruction memory mostly in ih order are interchangeable, which makes the high lei Ability of modern processors with parallel processing parallel units and exchange of instructions tion can be exhausted. In addition, the Instructions in the instruction memory, for example for data integrity is crucial, the resorting of Instructions restricted in a predetermined manner.
Eine Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß bei einer Deklaration des Typs des Datenspeichers vorbestimmt wird, welcher Art die Einschränkung der Umsortie rung der Instruktionen ist. Dies hat den Vorteil, daß die Einschränkung der Umsortierung an einen Datentyp gekoppelt sein kann, der in einer Datentyp-Deklaration festgelegt wird. Dadurch ist beispielsweise ermöglicht, daß ein Compiler, ein Interpreter oder der Prozessor selbst bei einem Zugriff auf den deklarierten Datenspeicher automatisch die Einschränkung der Umsortierung von Instruktionen vornimmt. Dies hat den Vorteil, daß ausgeschlossen werden kann, daß einzelne Zugrif fe übersehen werden.An embodiment of the method according to the invention provides before declaring the type of data storage the type of restriction of the relocation is predetermined instructions. This has the advantage that the Restriction of the resorting coupled to a data type that can be specified in a data type declaration. This enables, for example, that a compiler, a Interpreter or the processor itself when accessing the declared data store automatically the restriction reordering instructions. This has the Advantage that it can be excluded that individual access fe overlooked.
Eine weitere vorteilhafte Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß die vorbestimmte Weise der ein schränkenden Umsortierung umfaßt, daß die Instruktion, die den vorbestimmten Zugriff auf den vorbestimmten Datenspeicher beinhaltet, eine Grenze bildet, wobei alle Instruktionen, die vor der grenzbildenden Instruktion im Programmspeicher ange ordnet sind und einen Speicher-Schreib-Zugriff umfassen, aus geführt sind, bevor die grenzbildende Instruktion ausgeführt ist. Hierdurch ist in vorteilhafter Weise ermöglicht, daß al le Instruktionen vor der grenzbildenden Instruktion vollstän dig abgearbeitet sind, bevor die grenzbildende Instruktion ausgeführt wird. Handelt es sich bei der grenzbildenden In struktion 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 angeordneten Instruktionen mit Sicherheit ab gearbeitet sind, bevor das Signalfeld einen Signalwert er hält.Another advantageous embodiment of the invention The method provides that the predetermined manner of one restrictive resorting that includes the instruction that the predetermined access to the predetermined data memory involves forming a boundary, with all instructions that before the boundary-forming instruction in the program memory are arranged and comprise a memory write access are carried out before the boundary-forming instruction is executed is. This advantageously enables al Complete instructions before the boundary instruction dig are processed before the boundary instruction is performed. Is it the border-forming In structure, for example, to access a signal field, for example, the signal field can be used for this purpose to make sure everyone in the program is accessing instructions arranged from the signal field with certainty are worked before the signal field has a signal value holds.
Eine weitere vorteilhafte Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß die vorbestimmte Weise der einge schränkten Umsortierung umfaßt, daß die Instruktion, die den vorbestimmten Zugriff auf den vorbestimmten Datenspeicher be inhaltet, eine Grenze bildet, wobei keine Instruktion, die nach der grenzbildenden Instruktion im Programmspeicher ange ordnet ist, ausgeführt wird, bevor die grenzbildende Instruktion ausgeführt ist. Hierdurch ist in vorteilhafter Weise si chergestellt, daß keine der auf die grenzbildende Instruktion folgenden Instruktionen ausgeführt wird, bevor die grenzbil dende Instruktion ausgeführt ist. Dies ermöglicht, daß ein Prozeß mit der Weiterverarbeitung wartet, bis ein Signalwert tatsächlich angezeigt wird.Another advantageous embodiment of the invention The method provides that the predetermined manner of the Restricted resorting includes the instruction that the predetermined access to the predetermined data memory contains a boundary, with no instruction that after the boundary-forming instruction in the program memory is arranged, is executed before the boundary-forming instruction is executed. This is si in an advantageous manner made sure that none of the instructions on the boundary following instructions are carried out before the Grenzbil end instruction is executed. This enables a Processing process waits until a signal value is actually displayed.
Eine weitere Verfahrensvariante des erfindungsgemäßen Verfah ren sieht vor, daß die vorbestimmte Weise der eingeschränkten Umsortierung umfaßt, daß die Instruktion, die den vorbestimm ten Zugriff auf den vorbestimmten Datenspeicher beinhaltet, eine Grenze bildet, über die hinweg keine für andere Prozes soren oder Prozesse sichtbare Vertauschung in der Reihenfolge der Abarbeitung der Instruktionen erfolgt. Hierdurch ist si chergestellt, daß eine sichtbare Vertauschung von Instruktio nen über die grenzbildende Instruktion hinweg ausgeschlossen ist, so daß Programmteile strikt getrennt werden können. Eine sichtbare Vertauschung beinhaltet beispielsweise die Vertau schung der Abarbeitungsreihenfolge von Instruktionen bezie hungsweise die Vertauschung des Abschusses der Abarbeitung einer Instruktion, die für andere Prozessoren oder Prozesse sichtbar wird.Another method variant of the method according to the invention ren provides that the predetermined manner of restricted Resorting includes that the instruction that the predetermined includes access to the predetermined data storage, forms a boundary that no other processes can cross sensors or processes visible swapping in the order the instructions are processed. This is si made a visible exchange of instruction excluded beyond the boundary-forming instruction is so that program parts can be strictly separated. A visible swapping includes, for example, the confusion order processing of instructions or for example, the exchange of the shot of the execution an instruction for other processors or processes becomes visible.
Weiterhin sieht das erfindungsgemäße Verfahren vor, daß es sich bei dem vorbestimmten Zugriff auf den vorbestimmten Da tenspeicher um eine Leseoperation handelt, die eine in den Datenspeicher gespeicherte Information ausliest. Damit ist die Einschränkung der Vertauschung speziell für eine Leseope ration festlegbar. Im folgenden wird unter Vertauschung auch die Sichtbarkeit der Vertauschung für andere Prozessoren oder Prozesse verstanden.Furthermore, the method according to the invention provides that it the predetermined access to the predetermined Da memory is a read operation that one in the Reads out data stored in the data memory. So that is the restriction of the exchange especially for a reading ope ration definable. The following is swapped too the visibility of the swap for other processors or Processes understood.
Eine weitere Ausgestaltung des erfindungsgemäßen Verfahrens sieht vor, daß es sich bei dem vorbestimmten Zugriff auf den vorbestimmten Datenspeicher um eine Schreiboperation handelt, welche eine Information in den Datenspeicher schreibt. Damit ist die Einschränkung der Vertauschung speziell für eine Schreiboperation festgelegt. Ebenso ist es möglich, daß für Schreiboperationen und für Leseoperationen auf einen Daten speicher unterschiedliche Einschränkungen der Vertauschbar keit von Instruktionen gelten.Another embodiment of the method according to the invention provides that the predetermined access to the predetermined data storage is a write operation, which writes information into the data memory. In order to is the restriction of the exchange especially for one Write operation set. It is also possible that for Write operations and for read operations on a data store different interchangeable restrictions instructions.
Bezüglich des Computersystems wird die Aufgabe gelöst durch ein Computersystem mit einer Ausführungsumgebung, in der eine Vielzahl von Instruktionen in einem Befehlsspeicher zur Ver arbeitung in einer Recheneinheit gespeichert sind, wobei die Recheneinheit Mittel aufweist, die zur Vertauschung der Bear beitungsreihenfolge der Instruktionen in der Recheneinheit geeignet sind und Mittel aufweist, welche die Umsortierung der Instruktionen in einer vorbestimmten Weise einschränkt.With regard to the computer system, the task is solved by a computer system with an execution environment in which a Variety of instructions in an instruction memory for ver work are stored in a computing unit, the Computing unit has means for swapping the Bear Processing order of the instructions in the computing unit are suitable and have means which the resorting which restricts instructions in a predetermined manner.
Das erfindungsgemäße Computersystem ermöglicht die Vertau schung und parallele Abarbeitung von Instruktionen, die in einem Befehlsspeicher gespeichert sind. Dies führt zu einer beschleunigten Abarbeitung der in dem Befehlsspeicher gespei cherten Instruktionen, wobei durch zusätzliche Mittel sicher gestellt ist, daß die Umsortierung der Instruktionen in einer vorbestimmten Weise eingeschränkt ist. Hierdurch wird ermög licht, daß eine Dateninkonsistenz während der Abarbeitung der Instruktionen vermieden wird.The computer system according to the invention enables stowage research and parallel processing of instructions in an instruction memory are stored. This leads to a accelerated execution of the stored in the command memory instructions, being safe by additional means is that the reordering of the instructions in one predetermined manner is restricted. This enables light that a data inconsistency during the processing of the Instructions are avoided.
Eine Ausgestaltung des Computersystems sieht vor, daß die Mittel zur Einschränkung der Umsortierung von Instruktionen so ausgebildet sind, daß eine Vertauschung der Reihenfolge der Abarbeitung über eine Grenze hinweg nicht erfolgt, wobei die Grenze durch einen vorbestimmten Zugriff auf einen vorbe stimmten Datenspeicher gebildet wird.An embodiment of the computer system provides that the Means for restricting the reordering of instructions are designed so that the order is reversed processing is not carried out across a border, whereby the limit by predetermined access to one agreed data storage is formed.
Bezüglich des Computerprogrammprodukts wird die Aufgabe ge löst durch ein Computerprogrammprodukt, das direkt in den in tegrierten Speicher eines digitalen Computers geladen werden kann und Softwarecode-Abschnitte aufweist, mit denen die Schritte gemäß einem der Ansprüche 1-7 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 tegrated memory of a digital computer can and has sections of software code with which the Steps according to one of claims 1-7 are carried out, when 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 veranlas
sen, Instruktionen aus einem Befehlsspeicher in eine Rechen
einheit zu laden und abweichend von ihrer Reihenfolge im Be
fehlsspeicher von der Recheneinheit auszuführen, wobei eine
Instruktion, die einen vorbestimmten Zugriff auf einen vorbe
stimmten Datenspeicher beinhaltet, eine Umsortierung der In
struktionen in einer vorbestimmten Weise einschränkt.Furthermore, the object is achieved by a computer program product which is stored on a computer-suitable medium and comprises the following:
Computer-readable program means that cause a computer to load instructions from a command memory into a computing unit and to execute them differently from their order in the command memory by the computing unit, an instruction that includes a predetermined access to a predetermined data memory, a rearrangement of the Restrictions in structures in a predetermined manner.
Ein vorteilhaftes Computerprogrammprodukt weist die Eigen schaft auf, daß die Instruktion, die einen vorbestimmten Zu griff auf einen vorbestimmten Datenspeicher beinhaltet, eine Grenze bildet, über die hinweg keine Vertauschung in der Rei henfolge der Abarbeitung der Instruktionen erfolgt.An advantageous computer program product has its own shaft that the instruction that a predetermined Zu access to a predetermined data storage includes a Border forms over which there is no confusion in the row the instructions are processed.
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 und ei nem Programmspeicher sowie einem Datenspeicher und einer zweiten Recheneinheit mit einem zweiten Be fehlsspeicher; Fig. 1, a computer system with a computer unit and ei nem program memory and a data memory and a second processor with a second Be fail memory;
Fig. 2 den Befehlsspeicher aus Fig. 1; FIG. 2 shows the instruction memory from FIG. 1;
Fig. 3 den Ablauf eines Verfahrens: Fig. 3 shows the flow of a process:
In Fig. 1 ist ein Computersystem 1 dargestellt. Das Compu tersystem 1 umfaßt eine Recheneinheit 3, die mit einem Befehlsspeicher 4 und einem Datenspeicher 19 verbunden ist. Weiterhin ist eine zweite Recheneinheit 15 angeordnet, die mit einem zweiten Befehlsspeicher 16 und ebenfalls mit dem Datenspeicher 19 verbunden ist. In dem Befehlsspeicher 4 der ersten Recheneinheit 3 ist eine Vielzahl von Instruktionen 2 gespeichert. Die in dem Befehlsspeicher 4 gespeicherten In struktionen weisen eine Reihenfolge 5 auf. Die Reihenfolge 5 sieht vor, daß nach einer Instruktion C1 die Instruktion C2, nachfolgend die Instruktionen C3, CN, die Instruktion 20, die Instruktion 6 und die Instruktion 21 angeordnet sind. Die In struktionen 2 aus dem Befehlsspeicher 4 werden in der Reihen folge 5 an die Recheneinheit 3 übermittelt. Hierbei gelangt die Instruktion C1 vor der Instruktion C2 in die Rechenein heit 3. Die Intention des im Befehlsspeicher 4 abgelegten Programmes - bestehend aus der Befehlsreihenfolge C1-CN, Befehl 20, Befehl 6 und Befehl 21 - beinhaltet, daß in dem ersten Berechnungsschritt C1 ein Teil eines ersten Ergebnis ses SPX berechnet wird. In dem zweiten Berechnungsschritt C2 wird ein weiteres Teilergebnis zu dem ersten Ergebnis SPX be rechnet. Nachfolgend wird ein weiteres Teilergebnis zu dem ersten Ergebnis SPX in dem Berechnungsschritt C3 ermittelt. Nach Ausführung weiterer Instruktionen wird ein n-ter Berech nungsschritt CN zur Berechnung des ersten Ergebnisses SPX durchgeführt. Anschließend ist vorgesehen, daß das erste Er gebnis SPX mittels eines Speicherbefehls 20 in den Datenspei cher 19 an die dem ersten Ergebnis SPX zugeordnete Speicher zelle 17 gespeichert wird. Nach dem Speichervorgang von dem ersten Ergebnis SPX wird durch die Instruktion 6 ein Signal feld SP1 von der Recheneinheit 3 in dem Datenspeicher 19 an einem vorbestimmten Datenspeicher 8 gespeichert. Im Pro grammablauf ist das Signalfeld SP1 dazu geeignet, in dem Da tenspeicher 19 an der vorbestimmten Datenspeicherstelle 8 ein Signal zu speichern, welches anzeigt, daß die Berechnung des ersten Ergebnisses SPX mit Sicherheit abgeschlossen ist. Nachfolgend erhält die Recheneinheit 3 den Berechnungsbefehl 21, der zur Berechnung eines zweiten Ergebnisses SPY dient. In dem Datenspeicher 19 ist nun zunächst das erste Ergebnis SPX an der Speicherzelle des ersten Berechnungsergebnisses 17 gespeichert. Nachfolgend wurde an der vorbestimmten Daten speicherstelle 8 das Signalfeld SP1 gespeichert, welches an zeigt, daß die Berechnung des ersten Ergebnisses SPX abge schlossen ist.In Fig. 1, a computer system 1 is shown. The computer system 1 comprises a computing unit 3 which is connected to a command memory 4 and a data memory 19 . Furthermore, a second computing unit 15 is arranged, which is connected to a second instruction memory 16 and also to the data memory 19 . A large number of instructions 2 are stored in the command memory 4 of the first arithmetic unit 3 . The instructions stored in the instruction memory 4 have an order 5 . The order 5 provides that after an instruction C1, the instruction C2, subsequently the instructions C3, CN, the instruction 20 , the instruction 6 and the instruction 21 are arranged. The instructions 2 from the command memory 4 are transmitted in sequence 5 to the computing unit 3 . In this case, instruction C1 arrives in arithmetic unit 3 before instruction C2. The intention of the program stored in the command memory 4 - consisting of the command sequence C1-CN, command 20 , command 6 and command 21 - includes that part of a first result ses SPX is calculated in the first calculation step C1. In the second calculation step C2, a further partial result is calculated for the first result SPX. A further partial result for the first result SPX is subsequently determined in the calculation step C3. After executing further instructions, an nth calculation step CN is carried out to calculate the first result SPX. It is then provided that the first result SPX is stored by means of a memory command 20 in the data memory 19 to the memory cell 17 associated with the first result SPX. After the storage process of the first result SPX, the instruction 6 stores a signal field SP1 from the computing unit 3 in the data memory 19 at a predetermined data memory 8 . In the program sequence, the signal field SP1 is suitable for storing a signal in the data memory 19 at the predetermined data storage location 8 , which indicates that the calculation of the first result SPX has been completed with certainty. The computing unit 3 subsequently receives the calculation command 21 , which is used to calculate a second result SPY. The first result SPX is now first stored in the data memory 19 in the memory cell of the first calculation result 17 . Subsequently, the signal field SP1 was stored at the predetermined data storage location 8 , which indicates that the calculation of the first result SPX has been completed.
In dem zweiten Befehlsspeicher 16 ist ein Überprüfungsbefehl 22, ein Lesebefehl 23 und ein Verwendungsbefehl 24 gespei chert. Die zweite Recheneinheit 15 erhält zunächst den Über prüfungsbefehl 22, mit dem überprüft wird, ob das Signalfeld SP1 in dem vorbestimmten Datenspeicher 8 gesetzt ist. Falls dies der Fall ist, wird mit dem Lesebefehl 23 das von der er sten Recheneinheit 3 berechnete erste Ergebnis SPX aus der Speicherzelle des ersten Berechnungsergebnisses 17 des Daten speichers 19 gelesen. In einem anschließenden Verwendungs- Berechnungsschritt 24 wird das erste Ergebnis SPX in der zweiten Recheneinheit zur weiteren Berechnung 3 verwendet. Die Instruktionen im zweiten Befehlsspeicher 16 sind in einer zweiten Reihenfolge 25 angeordnet. Damit die ordnungsgemäße Abarbeitung des Programms gewährleistet ist, muß zum einen sichergestellt sein, daß das erste Ergebnis SPX von der Re cheneinheit 3 bereits gespeichert ist, wenn das Signalfeld SP1 in dem Datenspeicher 19 gespeichert wird. Auf der anderen Seite muß bei der zweiten Recheneinheit 15 sichergestellt sein, daß zunächst der Überprüfungsschritt 22 so lange durch führt wird, bis das erste Signalfeld SP1 in dem vorbestimmten Datenspeicher 8 gespeichert ist. Erst anschließend können die korrekten Daten des ersten Ergebnisses SPX aus der Speicher zelle 17 des ersten Berechnungsergebnisses gelesen werden.A check command 22 , a read command 23 and a use command 24 are stored in the second command memory 16 . The second arithmetic unit 15 first receives the check command 22 , which is used to check whether the signal field SP1 is set in the predetermined data memory 8 . If this is the case, with the read command 23 the first result SPX calculated by the first arithmetic unit 3 is read from the memory cell of the first calculation result 17 of the data memory 19 . In a subsequent use calculation step 24 , the first result SPX is used in the second arithmetic unit for further calculation 3 . The instructions in the second instruction memory 16 are arranged in a second order 25 . In order for the proper execution of the program to be ensured, it must be ensured, on the one hand, that the first result SPX is already stored by computing unit 3 when signal field SP1 is stored in data memory 19 . On the other hand, it must be ensured in the second arithmetic unit 15 that the checking step 22 is first carried out until the first signal field SP1 is stored in the predetermined data memory 8 . Only then can the correct data of the first result SPX be read from the memory cell 17 of the first calculation result.
Moderne Recheneinheiten erlauben nun, daß die in dem Befehls speicher 4 bzw. die in dem zweiten Befehlsspeicher 16 gespei cherten Befehle in die Recheneinheit 3 bzw. die zweite Re cheneinheit 15 geladen und dort in einer abgewandelten Rei henfolge ausgeführt werden, abgeschlossen werden oder für an dere Prozessoren oder Prozesse sichtbar werden. Hierdurch könnte der Fehler auftreten, daß die Instruktion 6, die das Signalfeld SP1 schreibt, mit dem Speicherbefehl 20 vertauscht wird, so daß die in dem Datenspeicher 19 gespeicherten Daten, die an der Speicherzelle 17 gespeichert sind, bereits für gültig erklärt werden, bevor der tatsächlich gültige Wert dort gespeichert ist. Ebenso gilt für die zweite Rechenein heit 15, daß eine Vertauschung des Überprüfungsbefehls 22 und des Lesebefehls 23 dazu führen kann, daß aus der Speicherzel le 17 des Datenspeichers 19 eine ungültige Berechnung des er sten Ergebnisses SPX gelesen wird, da die Überprüfung mit dem Überprüfungsbefehl 22 erst nachfolgende stattfindet.Modern computing units now allow that the commands stored in the command memory 4 or the commands stored in the second command memory 16 are loaded into the computing unit 3 or the second computing unit 15 and executed there in a modified order, be completed or for on whose processors or processes become visible. This could result in the error that the instruction 6 , which writes the signal field SP1, is interchanged with the store command 20 , so that the data stored in the data store 19 , which are stored in the memory cell 17 , are already declared valid before the actually valid value is stored there. It also applies to the second arithmetic unit 15 that interchanging the check command 22 and the read command 23 can lead to an invalid calculation of the first result SPX being read from the memory cell 17 of the data memory 19 , since the check with the check command 22 only subsequent one takes place.
Beispielsweise kann dem Signalfeld SP1 und damit dem vorbe stimmten Datenspeicher 8 eine Eigenschaft zugeordnet werden, die eine Umsortierung 9 von Instruktionen 2 in einer vorbe stimmten Weise einschränkt. In dem Befehlsspeicher 4 ist bei spielsweise die Einschränkung sinnvoll, daß alle vor der In struktion 6 angeordneten Instruktionen abgearbeitet sein müs sen, bevor die Instruktion 6 abgearbeitet ist. Dies würde beispielsweise ermöglichen, daß der Berechnungsbefehl 21 zur Berechnung des zweiten Ergebnisses SPY durchaus vor der In struktion 6 ausgeführt werden kann. Eine stringentere Ein schränkung der Umsortierung kann hier vorsehen, daß auch die se Vertauschung ausgeschlossen ist. Dies würde bedeuten, daß alle vor der Instruktion 6 angeordneten Instruktionen abgear beitet sind, bevor die Instruktion 6 abgearbeitet ist und daß erst nach der abgeschlossenen Abarbeitung der Instruktion 6 die der Instruktion 6 nachfolgenden Instruktionen abgearbei tet werden.For example, the signal field SP1 and thus the predetermined data memory 8 can be assigned a property which restricts a re-sorting 9 of instructions 2 in a predetermined manner. In the instruction memory 4, the restriction is at the pitch sense that all constructive tion before in 6 arranged instructions to be executed Müs sen before the instruction is executed. 6 This would make it possible, for example, for the calculation command 21 to calculate the second result SPY to be executed before the instruction 6 . A more stringent restriction of the re-sorting can provide that this mix-up is also excluded. This would mean that all arranged in front of the instruction 6 instructions are these is processed before the instruction is executed 6 and that the instruction following 6 instructions are tet abgearbei only after completed execution of the instruction. 6
Bezüglich der in dem zweiten Befehlsspeicher 16 angeordneten Instruktionen sieht eine vorbestimmte Weise der Einschränkung der Umsortierung von Instruktionen vor, daß keine der nach dem Überprüfungsbefehl 22 angeordneten Instruktionen ausge führt wird, bevor der Überprüfungsbefehl 22 ausgeführt ist. Dies schließt nicht aus, daß vor dem Überprüfungsbefehl 22 in dem zweiten Befehlsspeicher 16 Instruktionen angeordnet sind, die noch nicht ausgeführt sind. Concerning arranged in the second command storage 16 instructions provides a predetermined manner of restricting the reordering of instructions that none of the arranged after the monitoring command 22 instructions will be executed before the inspection command is executed 22nd This does not exclude that instructions which have not yet been executed are arranged in the second instruction memory 16 before the check instruction 22 .
Durch die Attributierung des vorbestimmten Datenspeichers 8 ist es nun möglich, jede Verwendung des vorbestimmten Daten speichers 8 in dem ersten Befehlsspeicher 4 bzw. dem zweiten Befehlsspeicher 16 als vorbestimmte Einschränkung der Umsor tierung von Instruktionen zu verwenden.By attributing the predetermined data memory 8 , it is now possible to use each use of the predetermined data memory 8 in the first command memory 4 or the second command memory 16 as a predetermined restriction on the reordering of instructions.
In Fig. 2 ist der Befehlsspeicher 4 dargestellt. Der Be fehlsspeicher 4 umfaßt die Vielzahl von Instruktionen 2. In dem Befehlsspeicher 4 ist der Speicherbefehl 20 und nachfol gend die Instruktion 6 angeordnet. Zwischen dem Speicherbe fehl 20 und der Instruktion 6 ist eine Grenze 12 gebildet. Vor der Grenze 12 ist eine Vielzahl von Instruktionen 13 und nach der Grenze 12 ist eine Vielzahl von Instruktion 14 ange ordnet. Weiterhin ist eine Umsortierung 9 des Speicherbefehls 20 und der Instruktion 6 dargestellt, die erfindungsgemäß durch die Grenze 12 in einer vorbestimmten Weise einge schränkt wird. Eine Vertauschung des ersten Berechnungs schrittes C1 zur Berechnung des ersten Ergebnisses SPX mit dem zweiten Berechnungsschritt C2 könnte von der Rechenein heit 3 unter der Maßgabe der Wahrung der Datenkonsistenz durchgeführt werden. Hierbei ist lediglich darauf zu achten, daß der zweite Berechnungsschritt C2 unabhängig von dem er sten Berechnungsschritt C1 durchgeführt werden kann. Die Ver tauschung findet innerhalb der Recheneinheit 3 statt, so daß die Recheneinheit 3 selbst die Wahrung der Datenkonsistenz überprüfen kann.In Fig. 2, the command memory 4 is shown. The instruction memory 4 comprises the plurality of instructions 2 . In the instruction memory 4 , the storage instruction 20 and subsequently the instruction 6 is arranged. A boundary 12 is formed between the memory 20 and the instruction 6 . Before the border 12 is a variety of instructions 13 and after the border 12 is a plurality of instructions 14 is arranged. Furthermore, a rearrangement 9 of the storage command 20 and the instruction 6 is shown, which according to the invention is limited by the limit 12 in a predetermined manner. A swapping of the first calculation step C1 for calculating the first result SPX with the second calculation step C2 could be carried out by the computing unit 3 , provided the data consistency is maintained. It is only important to ensure that the second calculation step C2 can be carried out independently of the first calculation step C1. The exchange takes place within the computing unit 3 , so that the computing unit 3 itself can check the maintenance of data consistency.
In Fig. 3 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 ein vorbestimmter Datenspeicher 8 - unter Angabe der Art der Einschränkung der Vertauschung - gekennzeichnet wird. In ei nem dritten Programmschritt S3 erfolgt der Programmablauf. In einem vierten Programmschritt S4 wird der vorbestimmte Daten speicher 8 verwendet, wobei die Umsortierung 9 von Instruktionen 2 in der vorbestimmten Weise eingeschränkt wird. In einem fünften Programmschritt S5 wird ein weiterer Pro grammablauf durchgeführt und das Programm abschließend been det. In Fig. 3 is a program flow is illustrated. In a first program step S1, the program is started with a corresponding initialization. In a second program step S2, declarations are made, a predetermined data memory 8 being identified — stating the type of restriction of the exchange. The program flow takes place in a third program step S3. In a fourth program step S4, the predetermined data memory 8 is used, the rearrangement 9 of instructions 2 being restricted in the predetermined manner. In a fifth program step S5, a further program sequence is carried out and the program is finally ended.
11
Computersystem
computer system
22
Vielzahl von Instruktionen
Variety of instructions
33
Recheneinheit
computer unit
44
Befehlsspeicher
instruction memory
55
Reihenfolge im Befehlsspeicher
Order in the command memory
66
Instruktion
instruction
77
Vorbestimmter Zugriff
Predefined access
88th
Vorbestimmter Datenspeicher
Predefined data storage
99
Umsortierung
resorting
1010
Vorbestimmte einschränkende Weise
Predefined restrictive way
1111
Deklaration
declaration
1212
Grenze
border
1313
Instruktion vor der Grenze
Instruction before the border
1414
Instruktion nach der Grenze
Instruction on the border
1515
Zweite Recheneinheit
Second arithmetic unit
1616
Zweiter Befehlsspeicher
Second instruction memory
1717
Speicherzelle eines ersten Berechnungsergebnisses
Memory cell of a first calculation result
1818
Speicherzelle eines zweiten Berechnungsergebnisses
Memory cell of a second calculation result
1919
Datenspeicher
data storage
2020
Speicherbefehl
store instruction
2121
Berechnungsbefehl
calculation command
2222
Überprüfungsbefehl
Checking command
2323
Lesebefehl
read command
2424
Verwendung
use
2525
Reihenfolge im zweiten Befehlsspeicher
C1 Erster Berechnungsschritt
C2 Zweiter Berechnungsschritt
C3 Dritter Berechnungsschritt
CN n-ter Berechnungsschritt
SPX Erstes Ergebnis
SPY Zweites Ergebnis
SP1 Signalfeld
S1 Erster Programmschritt
S2 Zweiter Programmschritt
S3 Dritter Programmschritt
S4 Vierter Programmschritt
S5 Fünfter Programmschritt
Order in the second instruction memory
C1 First calculation step
C2 Second calculation step
C3 third calculation step
CN nth calculation step
SPX first result
SPY second result
SP1 signal field
S1 First program step
S2 Second program step
S3 Third program step
S4 Fourth program step
S5 Fifth program step
Claims (12)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2000165752 DE10065752A1 (en) | 2000-12-29 | 2000-12-29 | Computer program execution with instructions reordered to speed execution, relating particularly to multi-processor systems, in which certain instructions are prevented from being run out of sequence to preserve data integrity |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE2000165752 DE10065752A1 (en) | 2000-12-29 | 2000-12-29 | Computer program execution with instructions reordered to speed execution, relating particularly to multi-processor systems, in which certain instructions are prevented from being run out of sequence to preserve data integrity |
Publications (1)
Publication Number | Publication Date |
---|---|
DE10065752A1 true DE10065752A1 (en) | 2002-07-18 |
Family
ID=7669443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2000165752 Ceased DE10065752A1 (en) | 2000-12-29 | 2000-12-29 | Computer program execution with instructions reordered to speed execution, relating particularly to multi-processor systems, in which certain instructions are prevented from being run out of sequence to preserve data integrity |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE10065752A1 (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 DE2000165752 patent/DE10065752A1/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 | |
DE3587277T2 (en) | SYSTEM FOR BYPASS CONTROL IN PIPELINE OPERATION OF A COMPUTER. | |
DE69321929T2 (en) | Method and system to ensure independent access to buffer buffers in a superscalar processor system. | |
DE3933849A1 (en) | PROCESSOR CONTROLLED INTERFACE | |
DE2847216A1 (en) | DATA PROCESSING SYSTEM WITH MULTIPROGRAM OPERATION | |
DE4103093C2 (en) | Method for controlling a data transfer buffer memory and computer system for performing this method | |
DE4134392C2 (en) | Method and apparatus for invalidating commands in devices with parallel processing | |
DE69128908T2 (en) | Method for executing mandatory commands in a computer | |
DE2912073A1 (en) | STACKED STORAGE ARRANGEMENT FOR THE SHORT-TERM STORAGE OF INFORMATION IN THE EVENT OF NON-SEGPARABLE INFORMATION IN A DATA PROCESSING SYSTEM | |
DE10103070B4 (en) | Method and test circuit for determining a validity status for a past load command | |
DE10213860A1 (en) | Programmable control | |
DE102004059972B4 (en) | Thread scheduling method, and thread list scheduler device | |
DE2723706A1 (en) | DEVICE FOR ADDRESS COMPARISON | |
DE10065752A1 (en) | Computer program execution with instructions reordered to speed execution, relating particularly to multi-processor systems, in which certain instructions are prevented from being run out of sequence to preserve data integrity | |
DE102018132385A1 (en) | Method for implementing a virtual address space on an embedded system | |
DE1499286B2 (en) | DATA PROCESSING SYSTEM | |
DE69226683T2 (en) | Method for efficient access of data in a link table | |
EP0664905A1 (en) | Process for performing at least one test on at least one of the objects of an object-oriented program capable of running in parallel on a computer. | |
DE19951878A1 (en) | Central processing unit for central processing system has status of waiting loop storing information required for next processing operation altered in response to control signal from external waiting loop control device | |
DE102004004561B4 (en) | Microprocessor with an energy-saving fetch and decode unit for fetching and decoding compressed program instructions and with a program instruction sequence control | |
EP0970426B1 (en) | Dependency controller for overlapping memory access operations | |
DE19827914C1 (en) | Application specific integrated circuit for processing defined sequences of assembly commands | |
DE102006041002B4 (en) | Method to adapt a program to a cache, and circuitry | |
DE112008000991T5 (en) | Method and apparatus for testing a page decoder | |
DE4330119C1 (en) | Method of controlled pre-fetching of cache-block-sized information blocks into a cache memory of a computer as a program is running |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8131 | Rejection |