DE102005011477A1 - Instruction set producing method for automatic updating of vehicle`s data memory, involves arranging negative block of instructions in source contents in reference direction, and positive block of instructions in opposition to direction - Google Patents

Instruction set producing method for automatic updating of vehicle`s data memory, involves arranging negative block of instructions in source contents in reference direction, and positive block of instructions in opposition to direction Download PDF

Info

Publication number
DE102005011477A1
DE102005011477A1 DE102005011477A DE102005011477A DE102005011477A1 DE 102005011477 A1 DE102005011477 A1 DE 102005011477A1 DE 102005011477 A DE102005011477 A DE 102005011477A DE 102005011477 A DE102005011477 A DE 102005011477A DE 102005011477 A1 DE102005011477 A1 DE 102005011477A1
Authority
DE
Germany
Prior art keywords
instruction
memory
instructions
statement
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102005011477A
Other languages
German (de)
Inventor
Mario Dipl.-Inform. Aleksic
Volker Dipl.-Ing. Entenmann
Bernd Dipl.-Inform. Raichle
Alexander Dipl.-Ing. Schorn (BA)
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.)
RAICHLE, BERND, DIPL.-INFORM., 70372 STUTTGART, DE
SCHORN, ALEXANDER, DIPL.-ING., 34549 EDERTAL, DE
Original Assignee
DaimlerChrysler AG
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 DaimlerChrysler AG filed Critical DaimlerChrysler AG
Priority to DE102005011477A priority Critical patent/DE102005011477A1/en
Publication of DE102005011477A1 publication Critical patent/DE102005011477A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The method involves characterizing identical block of instructions provided in an instruction block based on dislocations of source memory contents (10a) to target memory contents (10b) , where the block is negative or positive. The instructions within the negative block are arranged in sequence in the source contents in a reference direction, and the instructions within the positive block are arranged in opposition to the direction. An independent claim is also included for an application of an instruction set.

Description

Die Erfindung betrifft ein Verfahren zur Erzeugung einer Anweisungsliste zur automatischen Aktualisierung des Speicherinhalts eines Datenspeichers durch ein Datenverarbeitungssystem, bei dem der Inhalt des Datenspeichers ausgehend von einem Ursprungsspeicherinhalt in einen Zielspeicherinhalt überführt wird, wobei sich der Zielspeicherinhalt aus Gleichbereichen, die gegenüber dem Ursprungsspeicherinhalt inhaltlich unverändert sind, und/oder Neubereichen, die im Ursprungsspeicherinhalt nicht enthalten sind, zusammensetzt. Dabei sind die Gleichbereiche im Ursprungsspeicherinhalt und im Zielspeicherinhalt in einer frei festgelegten Referenzrichtung in gleicher Reihenfolge angeordnet und umfassen positive Gleichbereiche, deren Lage im Zielspeicherinhalt gegenüber dem Ursprungsspeicherinhalt in Referenzrichtung versetzt ist, sowie negative Gleichbereiche, deren Lage im Zielspeicherinhalt gegenüber dem Ursprungsspeicherinhalt entgegen der Referenzrichtung versetzt ist. Die Erfindung betriff darüber hinaus eine Verwendung einer derart erzeugten Anweisungsliste.The The invention relates to a method for generating an instruction list to automatically update the memory contents of a data store by a data processing system in which the contents of the data store is transferred from a source memory content to a destination memory content, wherein the destination memory content is made up of dc areas opposite to the Original memory contents are unchanged in content, and / or new areas, which are not contained in the original memory contents. The equal ranges are in the original memory contents and in the Destination memory content in a freely defined reference direction in arranged in the same order and include positive DC areas, their location in the destination memory content compared to the original memory content offset in the reference direction, as well as negative DC areas, their location in the destination memory content compared to the original memory content offset from the reference direction. The invention relates about that In addition, use of a statement list thus generated.

Der Inhalt der Gleichbereiche ändert sich folglich durch die Aktualisierung nicht. Es ist jedoch möglich, dass diese Gleichbereiche in Folge von Änderungen des Zielspeicherinhalts gegenüber dem Ursprungsspeicherinhalt bezüglich ihrer Lage im Speicher zu ändern sind, zum Beispiel dann, wenn im Zuge der Aktualisierung Neubereiche zwischen Gleichbereichen einzufügen sind oder Löschbereiche zu entfernen sind. Die Gleichbereiche untergliedern sich in positive und negative Gleichbereiche, welche sich durch die Richtung unterscheiden, in die sie im Zielspeicherinhalt gegenüber dem Ursprungsspeicherinhalt versetzt sind. Die Erfindung bezieht sich speziell auf Aktualisierungen, bei der die Gleichbereiche sich bezüglich ihrer Reihenfolge nicht verändern. Bereiche im Ursprungsspeicherinhalt, die inhaltlich unverändert im Zielspeicherinhalt zu finden sind, dort aber kreuzweise bezüglich ihrer Reihenfolge gegenüber dem Ursprungsspeicherinhalt vertauscht sind, werden nicht als Gleichbereiche im Sinne der Erfindung verstanden. Dies schließt nicht aus, dass derartige kreuzweise angeordnete Bereiche im Ursprungsspeicherinhalt und im Zielspeicherinhalt vorhanden sind.Of the Content of the DC areas changes consequently not by updating. It is possible, however, that these dz areas as a result of changes in the destination memory contents across from the original memory contents with respect to to change their location in the store are, for example, when new in the course of the update to insert between equal domains are or extinguishing areas are to be removed. The Gleichbereiche are divided into positive and negative DCs that differ by direction into the destination memory contents opposite to the original memory contents are offset. The invention relates specifically to updates, where the DCs are not in their order change. Areas in the original memory contents, the content unchanged in the Target memory content can be found, but there crosswise with respect to their Order opposite the original memory contents are swapped, are not considered equal parts understood in the context of the invention. This does not exclude that such crosswise arranged areas in the original memory content and in the Target memory contents are present.

Eine einfache Methode, um eine Aktualisierung durchzuführen, ist es, den Datenspeicher mit dem Zielspeicherinhalt vollständig zu überschreiben. Diese Methode erfordert aber, dass dem Datenverarbeitungssystem der vollständige, mitunter sehr große, Zielspeicherinhalt zugeführt wird. Dies kann insbesondere bei großen Datenspeichern und geringen Übertragungsgeschwindigkeiten der Übertragungswege problematisch sein.A simple method to perform an update is it to completely override the datastore with the destination memory contents. These Method requires, however, that the data processing system the full, sometimes very big, Target memory content supplied becomes. This can be especially true for large data memories and low transmission speeds the transmission paths be problematic.

Um die Datenmenge für die Aktualisierung zu reduzieren, ist die Verwendung von sogenannten Deltadateien bekannt. Solche Deltadateien enthalten lediglich Informationen über die Unterschiede zwischen Ursprungsspeicherinhalt und Zielspeicherinhalt und sie sind in der Regel kleiner als der Zielspeicherinhalt selbst, sofern Bestandteile des Ursprungsspeicherinhalts in den Zielspeicherinhalt übernommen werden können. Ein Typ von Aktualisierungsverfahren mittels einer Deltadatei ist darauf ausgelegt, die Aktualisierung im Datenspeicher durchzuführen, ohne dass weiterer Speicher erforderlich ist, in den ausgehend von Ursprungsspeicherinhalt und Deltadatei der Zielspeicherinhalt geschrieben wird. Problematisch an dieser sogenannten „In-Place"-Aktualisierung ist, dass vermieden werden muss, dass Speicherbereiche überschrieben werden, deren Inhalt später im Verlauf der Aktualisierung noch gebraucht wird.Around the amount of data for To reduce the update is the use of so-called delta files known. Such delta files contain only information about the Differences between source memory contents and destination memory contents and they are usually smaller than the target memory content itself, if components of the original memory contents are taken over into the destination memory content can be. One type of update procedure using a delta file is designed to perform the update in the data store, without that additional memory is required in the source memory contents and Delta file the target memory content is written. Problematic This so-called "in-place" update is to be avoided must overwrites memory areas whose contents will be later is still needed in the course of the update.

Die US 6 018 747 schlägt dazu ein Verfahren vor, bei dem eine Umsortierung der Anweisungen in der Deltadatei stattfindet, die für eine Beibehaltung von Gleichbereichen verantwortlich sind, wobei anschließend zyklische Konflikte, die durch eine reine Umsortierung nicht zu lösen sind, dadurch beseitigt werden, dass Bereiche gleichen Inhalts zwischen Ursprungsspeicherinhalt und Zielspeicherinhalt nicht verschoben werden, sondern vollständig neu in der Deltadatei enthalten sind. Zyklische Konflikte werden dadurch quasi an einer Stelle aufgebrochen.The US Pat. No. 6,018,747 proposes a method in which a reorganization of the instructions in the delta file takes place, which are responsible for the maintenance of DC areas, and then eliminating cyclical conflicts that can not be solved by a mere resorting, that areas of equal content between Source memory contents and destination memory contents are not moved, but are completely re-included in the delta file. As a result, cyclical conflicts are broken up at one point.

Je nach Art der Daten, die im Datenspeicher gespeichert sind, können zyklische Konflikte vollständig ausgeschlossen werden. Dies ist bei solchen Daten der Fall, die aus Elementen bestehen, deren Reihenfolge durch ein Ordnungskriterium festgelegt ist. Zyklische Konflikte können ebenfalls ausgeschlossen werden, wenn bei der Ermittlung von Gleichbereichen zwischen Ursprungsspeicherinhalt und Zielspeicherinhalt lediglich solche Bereiche als potentielle Gleichbereiche in Erwägung gezogen werden, die in gleicher Reihenfolge auftreten. Bei diesen beschriebenen Daten ist die Anwendung des komplexen Verfahrens der US 6 018 747 nicht zweckmäßig, da keine zyklischen Konflikte auftreten können.Depending on the type of data stored in the data store, cyclical conflicts can be completely ruled out. This is the case for such data consisting of elements whose order is determined by an ordering criterion. Cyclic conflicts can also be ruled out if the determination of dc ranges between the original memory content and the destination memory content only considers those areas as potential dz areas occurring in the same order. In this described data, the application of the complex method is the US Pat. No. 6,018,747 not appropriate, since no cyclical conflicts can occur.

Aufgabe der Erfindung ist es, ein vergleichsweise einfaches und zuverlässiges Verfahren zur Erzeugung einer Anweisungsliste zwecks automatischer Aktualisierung eines Datenspeichers, dessen Ursprungsspeicherinhalt und Zielspeicherinhalt Gleichbereiche aufweisen, die in beiden Speicherinhalten in gleicher Reihenfolge angeordnet sind, und eine vorteilhafte Verwendung einer so erzeugten Anweisungsliste zur Verfügung zu stellen.task The invention is a comparatively simple and reliable method for generating an instruction list for automatic updating a data store, its source memory contents, and destination memory contents equal ranges have in both memory contents in the same order are arranged, and an advantageous use of a so generated Instruction list available to deliver.

Die Erfindung löst diese Aufgabe durch ein gattungsgemäßes Verfahren mit den Merkmalen des Anspruchs 1 oder 8 und eine vorteilhafte Verwendung mit den Merkmalen des Anspruchs 21.The Invention solves this task by a generic method with the features of claim 1 or 8 and an advantageous use with the Features of claim 21.

Unter Anweisungen im Sinne der Erfindung werden digital codierte Informationen verstanden, die einem Datenverarbeitungssystem Informationen über in einem zugeordneten Speicher durchzuführende Operationen liefern. Die Anweisungen können verschiedene Parameter aufweisen, die die durchzuführende Operation spezifizieren. Unter Gleichbereichsanweisungen werden solche Anweisungen an das Datenverarbeitungssystem verstanden, die diesem ermöglichen, einen Gleichbereich im Ursprungsspeicherinhalt bezüglich Anfang und Ende zu identifizieren und an die im Zielspeicherinhalt für den Gleichbereich vorgesehene Position zu verschieben. Eine Gleichbereichsanweisung muss nicht alle dafür erforderlichen Informationen enthalten. Stattdessen ist es auch möglich, dass einige der erforderlichen Informationen dem Datenverarbeitungssystem schon durch vorangegangene Anweisungen implizit oder explizit zugeführt wurden. Unter Gleichbereichsanweisungen werden also auch solche Anweisungen verstanden, die die Informationen im Datenverarbeitungssystem dahingehend vervollständigen, dass eine Ausführung im Hinblick auf das Verschieben des Gleichbereichs durch das Datenverarbeitungssystem möglich wird. Bei den Gleichbereichen, die Gegenstand der Gleichbereichsanweisungen sind, kann es sich um positive oder negative Gleichbereiche handeln. Gleichbereiche, die im Ursprungsspeicherinhalt und im Zielspeicherin halt die gleiche Lage aufweisen, können entweder als positive oder als negative Gleichbereiche aufgefasst werden.Under Instructions within the meaning of the invention are digitally coded information understood that information to a data processing system in a associated memory to be performed Deliver operations. The instructions can have different parameters have the, to be performed Specify operation. Be under DC instructions understood such instructions to the data processing system, the enable this a DC area in the original memory contents with respect to beginning and end and to identify in the destination memory content for the DC area to move the intended position. A Gleichbereichsanweisung does not have to have all the necessary Information included. Instead, it is also possible that some of the required information to the data processing system already implicitly or explicitly supplied by preceding instructions. Thus, equal-range statements are also understood as meaning such instructions. which complete the information in the data processing system that one execution with respect to the shifting of the DC area by the data processing system becomes possible. For the DC areas, the subject of the DCS are, can be positive or negative DCs. DC areas that are in the original memory contents and in the Zielspeicherin can have the same position understood as either positive or negative DCs become.

Alle Gleichbereichsanweisungen werden beim Verfahren nach Anspruch 1 einem von mehreren Anweisungsblöcken zugeordnet. Dabei umfasst jeder Anweisungsblock immer nur solche Gleichbereichsanweisungen, die sich auf im Ursprungsspeicherinhalt aufeinander folgende Gleichbereiche beziehen. Unter aufeinander folgend ist dabei zu verstehen, dass inmitten der Gleichbereiche, die durch Anweisungen eines Anweisungsblocks abschließend beschrieben werden, keine weiteren Gleichbereiche angeordnet sind, deren korrespondierende Gleichbereichsanweisungen nicht im entsprechenden Anweisungsblock enthalten sind. Es ist jedoch durchaus denkbar, dass die Gleichbereiche, auf die sich die Gleichbereichsanweisungen eines Anweisungsblocks beziehen, im Ursprungsspeicherinhalt nicht bündig aneinander liegen, sondern beispielsweise durch Löschbereiche voneinander getrennt sind, wobei diese Löschbereiche Speicherinhaltsbereiche sind, die in den Zielspeicherinhalt nicht übernommen werden.All Gleichbereichsanweisungen become in the method according to claim 1 one of several statement blocks assigned. Each statement block always includes only such DCarray statements referring to the source memory contents refer to successive DC areas. Under each other following is to understand that in the midst of the Gleichbereiche, finally described by instructions of an instruction block are arranged, no further Gleichbereiche, their corresponding The same-range statements are not in the corresponding statement block are included. However, it is quite possible that the DCs, to which the equidistribution statements of a statement block refer, not flush with each other in the original memory contents, but for example, by extinguishing areas are separated from each other, these extinguishing areas are memory content areas, which are not taken over into the destination memory contents.

Die Anweisungsblöcke unterteilen sich in positive und negative Anweisungsblöcke. Bezogen auf die Reihenfolge der Gleichbereiche im Ursprungsspeicherinhalt treten die korrespondierenden Anweisungsblöcke bezüglich ihrer Art alternierend auf.The statement blocks divide into positive and negative statement blocks. Based the order of the dz areas in the original memory content the corresponding statement blocks alternate in type on.

Die negativen Anweisungsblöcke umfassen nur solche Gleichbereichsanweisungen, die sich auf negative Gleichbereiche beziehen. Diese Gleichbereichsanweisungen sind innerhalb des negativen Anweisungsblocks in Reihenfolge der jeweils beschriebenen Gleichbereiche im Ursprungsspeicherinhalt in Referenzrichtung angeordnet. Jeder negative Anweisungsblock bezieht sich auf eine Reihe von aufeinander folgenden nega tiven Gleichbereichen, wobei er mindestens alle korrespondierenden Gleichbereichsanweisungen umfasst, die den im Ursprungsspeicherinhalt ersten Gleichbereich bis zu dem im Ursprungsspeicherinhalt vorletzten Gleichbereich beschreiben. Eine Gruppe von aufeinander folgenden negativen Gleichbereichen, wobei der in Referenzrichtung erste nicht unmittelbar einem negativen Gleichbereich folgt und dem in Referenzrichtung letzten nicht unmittelbar ein negativer Gleichbereich folgt, führt dementsprechend zu einem negativen Anweisungsblock, dessen Anweisungen zumindest die Verschiebung aller Gleichbereiche der Gruppe außer des in Referenzrichtung letzten beschreiben.The negative statement blocks include only those equal-range statements that refer to negative Refer to DC areas. These DCS statements are within of the negative instruction block in order of each described Gleichbereiche arranged in the original memory contents in the reference direction. Each negative statement block refers to a series of consecutive The following negative DC areas, where he at least all the corresponding Includes equal-range statements that are in the source memory contents first DC range up to the penultimate in the original memory contents Describe DC area. A group of consecutive negative ones Gleichbereiche, wherein the first in the reference direction not immediately follows a negative DC range and that in the reference direction the last one does not immediately follow a negative DC, leads accordingly to a negative statement block, whose instructions at least the shift of all DC areas of the group except the describe last in reference direction.

Alle Gleichbereichsanweisungen, die nicht negativen Anweisungsblöcken zugeordneten sind, sind in positiven Anweisungsblöcken zusammengefasst, wobei wiederum gilt, dass auch die positiven Anweisungsblöcke jeweils lediglich solche Gleichbereichsanweisungen umfassen, die sich auf aufeinanderfolgende Gleichbereiche beziehen. Die in positiven Anweisungsblöcken angeordneten Gleichbereichsanweisungen umfassen alle positiven Gleichbereichsanweisungen sowie gegebenenfalls jene Gleichbereichsanweisungen, die sich auf negative Gleichbereiche beziehen, welche sich im Ursprungsspeicherinhalt in Referenzrichtung als letzte in einer Reihe positiver Gleichbereiche befinden. Anders als bei den negativen Anweisungsblöcken sind in den positiven Anweisungsblöcken die Gleichbereichsanweisungen entgegen der Reihenfolge der jeweils beschriebenen Gleichbereiche in Referenzrichtung angeordnet.All DCargets associated with non-negative statement blocks are summarized in positive statement blocks, where Again, the positive statement blocks also apply only include those DC instructions that relate to refer to successive DC areas. The arranged in positive instruction blocks DCarray statements include all positive DCA statements and, where appropriate, those same-range instructions that relate to refer negative DC areas, which are in the original memory content in the reference direction as the last in a series of positive dc ranges are located. Different from the negative statement blocks in the positive statement blocks the equal-range statements against the order of each arranged Gleichbereiche arranged in the reference direction.

Die Anordnung der Anweisungsblöcke in der Anweisungsliste wird nach folgender Maßgabe durchgeführt: Bei zwei aufeinander folgenden Gleichbereichen, die jeweils von einer Gleichbereichsanweisung beschrieben sind, wobei die Gleichbe reichsanweisung des in Referenzrichtung ersten Gleichbereichs Teil eines negativen Anweisungsblocks ist und die Gleichbereichsanweisung des in Referenzrichtung zweiten Gleichbereichs ein positiver Anweisungsblock ist, ist der positive Anweisungsblock in der Anweisungsliste hinter dem negativen Anweisungsblock anzuordnen, vorzugsweise unmittelbar hinter dem negativen Anweisungsblock. Die negativen Anweisungsblöcke sind zueinander vorzugsweise in Reihenfolge der beschriebenen Gleichbereiche in Referenzrichtung anzuordnen. Insgesamt ergibt sich vorzugsweise eine alternierende Anordnung der Anweisungsblöcke beider Typen in der Anweisungsliste. Möglich ist jedoch auch eine Anordnung, bei der die negativen Anweisungsblöcke insgesamt vorangestellt sind und den negativen Anweisungsblöcken die positiven Anweisungsblöcke folgen.The arrangement of the instruction blocks in the instruction list is carried out as follows: For two consecutive dc ranges, each of which is described by a Gleichbereichsanweisung, wherein the same Gleichbe statement of the first in the reference direction Gleichgleich portion of a negative instruction block and the Gleichbereichsanweisung a second in the reference direction Gleichbereich a is positive instruction block, the positive instruction block is to be placed in the instruction list after the negative instruction block, preferably immediately behind the negative statement block. The negative instruction blocks are preferably to be arranged in the reference direction in the order of the described DC regions. Overall, there is preferably an alternating arrangement of the statement blocks of both types in the statement list. However, it is also possible to have an arrangement in which the negative statement blocks are prefixed on the whole and the negative statement blocks are followed by the positive statement blocks.

Anweisungslisten des beschriebenen Typs gewährleisten, dass kein Gleichbereich überschrieben wird, bevor er gelesen werden konnte. Bei der Ausführung von Anweisungen negativer Anweisungsblöcke wird der Datenspeicher in Referenzrichtung beschrieben. Da die Verschiebung der Gleichbereiche, deren Verschiebung in negativen Anweisungsblöcken beschrieben ist, stets entgegen der Referenzrichtung erfolgt, ist dabei kein Überschreiben von noch im weiteren Verlauf des Verfahrens zu lesenden Speicherinhalten zu befürchten. In positiven Anweisungsblöcken ist die Schreibrichtung umgedreht, wodurch erreicht wird, dass auch hier Speicherinhalte von Gleichbereichen erst dann überschrieben werden, wenn die entsprechenden Gleichbereiche bereits in ihre neue, durch den Zielspeicherinhalt vorgegebene Lage verschoben sind.instruction list of the type described, that no DC area overwritten will, before it could be read. In the execution of Negative statement block statements become the data store described in the reference direction. Because the shift of the DC areas, whose displacement is described in negative instruction blocks, always contrary to the reference direction, there is no overwriting of memory contents to be read later in the process to fear. In positive statement blocks the writing direction is reversed, which achieves that as well Memory contents of DC areas are only overwritten here if the corresponding DC sectors are already included in their new are shifted by the target memory contents predetermined position.

Die Erzeugung der beschriebenen Anweisungslisten anhand des Ursprungsspeicherinhaltes, des Zielspeicherinhaltes und der identifizierten Gleichbereiche ist sehr einfach: Zu den Gleichbereichen können Gleichbereichsanweisungen erzeugt werden, die anschließend nach dem Typ des jeweils beschriebenen Gleichbereichs – positiv oder negativ – klassifiziert werden. Dann werden die Gleichbereichsanweisungen zu den oben beschriebenen Anweisungsblöcken zusammengefasst und innerhalb des Anweisungsblocks je nach Typ des Anweisungsblocks in oder entgegen der Referenzrichtung sortiert. Abschließend werden die Anweisungsblöcke entsprechend der oben beschriebenen Maßgabe in der Anweisungsliste angeordnet, soweit sich die Anordnung von der durch die Erzeugung herbeigeführten Anordnung unterscheidet.The Generation of the instruction lists described on the basis of the original memory contents, Target memory content and the identified DC areas very simple: to the DC areas can be DC instructions be generated, which subsequently according to the type of the described equal range - positive or negative - classified become. Then, the equal-range instructions become the ones described above statement blocks summarized and within the instruction block depending on the type of Instruction block sorted in or against the reference direction. Finally the instruction blocks become corresponding the above-described measure arranged in the instruction list, as far as the arrangement of the arrangement induced by the production differs.

Ein Datenverarbeitungssystem, das Zugriff auf einen zu aktualisierenden Datenspeicher hat, kann anhand der Anweisungen der Anweisungsliste den Speicherinhalt dieses Datenspeichers aktualisieren, wobei es möglich ist, dass das Datenverarbeitungssystem während der Zuführung der Anweisungen die Aktualisierung durchführt. Die Speicherausstattung eines derartigen Datenverarbeitungssystems muss nicht wesentlich größer sein als der Ursprungsspeicherinhalt bzw. der Zielspeicherinhalt. Es muss kein Speicher zur Ablage der Anweisungsliste vorgesehen werden und es muss aufgrund der „In-Place"-Aktualisierung auch kein Speicher zur Ablage des Zielspeicherinhalts bei gleichzeitiger Beibehaltung des Ursprungsspeicherinhalts vorgesehen sein.One Data processing system, access to a to be updated Datastore can, according to the instructions in the instruction list the Update memory contents of this data store, whereby it is possible that the data processing system during the supply of Instructions the update performs. The storage equipment such a data processing system does not have to be essential to be taller as the source memory contents or destination memory contents. It must no memory is provided for filing the instruction list and it also does not need memory due to the "in-place" update Storing the destination memory content while maintaining the Be provided original storage content.

In einer Weiterbildung des Verfahrens sind die Anweisungsblöcke in der Anweisungsliste in einer Reihefolge angeordnet, die der Reihenfolge der Gleichbereiche in Referenzrichtung im Ursprungsspeicherinhalt entspricht, die von den Gleichbereichsanweisungen der jeweiligen Anweisungsblöcke beschrieben werden.In In a further development of the method, the instruction blocks in the Instruction list arranged in a sequence according to the order the DC areas in the reference direction in the original memory contents corresponds to that of the DCS statements of the respective statement blocks to be discribed.

In einer Weiterbildung des Verfahrens enthält die Anweisungsliste Neubereichsanweisungen, die die einzufügenden Daten und Lage der Neubereiche beschreiben. Eine solche Anweisungsliste dient dementsprechend auch dazu, dem Datenverarbeitungssystem mitzuteilen, welche Gleichbereiche des Ursprungsspeicherinhalts in welcher Art in den Zielspeicherinhalt zu überführen sind und welche Neubereiche in den Zielspeicherinhalt einzufügen sind. Die Neubereichsanweisungen können so geartet sein, dass sie gleichzeitig auch Gleichbereichsanweisungen darstellen. So kann beispielsweise eine Anweisung, die zum Gegenstand hat, einen Neubereich an einer bestimmten Adresse einzufügen, implizit auch eine Gleichbereichsanweisung sein und besagen, dass ein Speicherbereich, begrenzt von einem im Zuge des Verfahrens mitgeführten Schreib-Pointer und der Adresse des einzufügenden Neubereichs, für einen Gleichbereich vorgesehen ist, welcher anhand der Größe dieses Speicherbereichs und eines Lese-Pointers bzgl. Lage und Größe identifizierbar ist.In In a further development of the method, the instruction list contains new area instructions, the ones to be inserted Describe data and location of new areas. Such a statement list serves accordingly also to inform the data processing system which equal parts of the original memory contents in which kind are to be transferred to the destination memory content and which new ranges are to be inserted into the target memory content. The new area instructions can be such that they also have equal-range instructions represent. For example, a statement that relates to the subject has to insert a new range at a certain address, implicitly also be a Gleichbereichsanweisung and state that a memory area, bounded by a in the process carried write pointer and the Address of the inserted New area, for a DC range is provided, which by the size of this Memory area and a read pointer in terms of location and size is identifiable.

In einer Weiterbildung der Erfindung sind die Neubereichsanweisungen, die einen Neubereich beschreiben, der in Referenzrichtung auf einen negativen Gleichbereich folgt und dem in Referenzrichtung ein positiver Gleichbereich folgt, in dem Anweisungsblock jener Gleichbereichsanweisung enthalten, die die Lageveränderung des positiven Gleichbereichs beschreibt. Da die Anweisungen dieses positiven Anweisungsblocks nach den Anweisungen des auf die in Referenzrichtung vorstehenden Gleichbereiche bezogenen negativen Anweisungsblocks ausgeführt werden, ist gewährleistet, dass der negative Gleichbereich erst dann überschrieben wird, wenn sein Inhalt in die durch den Zielspeicherinhalt vorgegebene Lage verschoben wurde.In A development of the invention are the Neubereichsanweisungen, describe a new area, which in reference direction to a negative DC region follows and the one in the reference direction is a positive one Gleichbereich follows, in the statement block of that Gleichbereichsanweisung contain the change of position of positive DC. Because the instructions of this positive instruction block according to the instructions of the in the reference direction above negative equations related negative instruction block be executed is guaranteed that the negative DC is not overwritten unless its Content moved to the default location specified by the destination memory contents has been.

In einer Weiterbildung der Erfindung umfassen die Anweisungen Kopieranweisungen und Einfügeanweisungen, wobei die Kopieranweisungen einen Gleichbereich hinsichtlich seiner Lage im Ursprungsspeicherinhalt, seiner Größe und seiner Lage im Zielspeicherinhalt explizit beschreiben und die Einfügeanweisungen einen Neubereich hinsichtlich seiner Daten und seiner Lage im Zielspeicherinhalt explizit beschreiben. Ein Anweisungssatz aus Kopieranweisungen und Einfügeanweisungen gestattet eine besonders einfache Erzeugung der Anweisungen. Dabei wird jeder Gleichbereich durch eine Kopieranweisung beschrieben, die eindeutig kennzeichnet, wie Anordnung und Ausdehnung des Gleichbereichs im Ursprungsspeicherinhalt sind und wo der Gleichbereich sich im Zielspeicherinhalt befindet. Ein jeder Neubereich, der im Zielspeicherinhalt zusätzlich zu den aus dem Ursprungsspeicherinhalt übernommenen Gleichbereichen vorhanden ist, wird mittels einer Einfügeanweisung beschrieben, die einerseits die einzufügenden Daten selbst und andererseits ihre Lage im Zielspeicherinhalt beschreibt.In one development of the invention, the instructions comprise copying instructions and insertion instructions, the copying instructions explicitly describing a DC area with regard to its location in the original memory content, its size and its location in the destination memory content, and the insertion instructions explicitly describing a new area with regard to its data and its location in the destination memory content. An instruction set from Ko The instructions and insertion instructions allow a particularly simple generation of the instructions. Each equal range is described by a copy instruction that uniquely identifies how array and extent of the DC are in the source memory contents and where the DC range is in the destination memory contents. Each new area that exists in the destination memory content in addition to the DC areas inherited from the source memory content is described by means of an insert instruction describing, on the one hand, the data to be inserted and, on the other hand, its location in the destination memory content.

In einer Weiterbildung der Erfindung umfassen die Anweisungen Löschanweisungen und Einfügeanweisungen, wobei die Löschanweisungen jeweils einen Bereich im Datenspeicher beschreiben, dessen im Ursprungsspeicherinhalt enthaltenen Daten im Zielspeicherinhalt nicht mehr enthalten sind, und die Einfügeanweisungen jeweils einen Neubereich hinsichtlich seiner Daten und seiner Lage im Zielspeicherinhalt beschreiben und wobei die Anweisungen dahingehend markiert sind, ob es sich um Anweisungen eines positiven oder eines negativen Anweisungsblocks handelt. Bei einem solchen Anweisungssatz aus Löschanweisungen und Einfügeanweisungen sind keine expliziten Gleichbereichsanweisungen vorgesehen. Stattdessen können sowohl die Löschanweisungen als auch die Einfügeanweisungen implizit als Gleichbereichsanweisungen fungieren.In In a further development of the invention, the instructions comprise deletion instructions and insertion instructions, taking the deletion instructions each describe an area in the data store, whose in the original memory content data contained in the destination memory content are no longer included, and the insertion instructions each new area in terms of its data and its location in the destination memory contents and where the instructions are are marked, whether it is instructions of a positive or a negative statement block. In such an instruction set from deletion instructions and insertion instructions There are no explicit DCA instructions. Instead can both the deletion instructions as well as the insertion instructions implicitly act as a DCS.

So kann eine Löschanweisung, die einen bestimmten Speicherbereich zum Löschen kennzeichnet, gleichzeitig implizit die Aussage treffen, dass ein Speicherbereich von einem internen Lese-Pointer bis zum Beginn des Löschbereichs als Gleichbereich zu betrachten ist und dementsprechend bewegt werden muss. Gleiches gilt für Einfügeanweisungen: Eine Einfügeanweisung, die als Parameter einen bestimmten Datenblock und die Position angibt, an die der Datenblock im Zielspeicherinhalt zu legen ist, kann vom Datenverarbeitungssystem dahingehend interpretiert werden, dass ein Zwischenbereich zwischen einem letzten davor definierten Bereich des Zielspeicherinhalts und dem Beginn des neuen Datenblocks für einen Gleichbereich vorgesehen ist, der dadurch in seiner Ziellage und Größe definiert ist. Die Kennzeichnung der Anweisungen dahingehend, ob es sich um Anweisungen von positiven oder negativen Anweisungsblöcken handelt, ermöglicht es dem Datenverarbeitungssystem, Pointer auf den Speicher richtig zu setzen.So can a delete instruction, which identifies a specific memory area for deletion, at the same time implicitly make the statement that a memory area of one internal read pointer until the beginning of the deletion area as a DC area is to be considered and must be moved accordingly. The same applies to insert statements: An insertion instruction, which specifies as parameters a specific data block and the position to which the data block is to be placed in the destination memory content can be from Data processing system be interpreted as that an intermediate area between a last previously defined area the destination memory contents and the beginning of the new data block for a Gleichbereich is provided, thereby characterized in its destination and Size defined is. The labeling of the instructions as to whether it is Statements of positive or negative statement blocks, allows it the data processing system, pointer to the memory correctly to put.

Der wesentliche Aspekt dieser Weiterbildung der Erfindung ist, dass die Anweisungen aufeinander aufbauen und nicht für sich separat betrachtet eindeutig sind. Bezüglich des Zielspeicherinhaltes und/oder des Ursprungsspeicherinhaltes wird die aktuelle Position beim Abarbeiten der Anweisungen vom Datenverarbeitungssystem in Form von Pointern gespeichert, so dass die Anweisungen aufbauend auf diesen Pointern eindeutig interpretierbar sind. Der Vorteil an einem solchen System liegt insbesondere darin, dass Redundanzen vermieden werden und die Anweisungsliste bezüglich ihres Speicherbedarfs reduziert wird. Darüber hinaus erlaubt eine Anweisungsliste, die zur Beschreibung des neuen Speicherinhalts lediglich Löschanweisungen und Einfügeanweisungen aufweist, keine inkonsistenten Angaben. Die Verwendung von Lösch- und Einfügeanweisungen statt Kopier- und Einfügeanweisungen wirkt sich insbesondere dann positiv auf die Datenmenge der Aktualisierungsinformationen aus, wenn eine Vielzahl an kleinen Änderungen zur Überführung des Ursprungsspeicherinhalts in den Zielspeicherinhalt erforderlich ist.Of the essential aspect of this development of the invention is that build the instructions on top of each other and not separate for each other are. In terms of the destination memory contents and / or the original memory contents becomes the current position when processing the instructions from the data processing system stored in the form of pointers, making the instructions constructive are clearly interpretable on these pointers. The advantage such a system is in particular that redundancies be avoided and the instruction list regarding their memory requirements is reduced. About that In addition, a statement list that allows to describe the new Memory contents only delete instructions and insert statements has no inconsistent information. The use of delete and insert statements instead of copying and inserting statements especially positive for the amount of data of the update information when a lot of small changes to the transfer of the Source memory content required in the destination memory contents is.

In einer Weiterbildung der Erfindung können Modifizierungsanweisungen vorgesehen sein, die den Inhalt einer Löschanweisung und einer Einfügeanweisung miteinander kombinieren. Solche Modifizierungsanweisungen führen zu einer weiteren Datenreduzierung bei den Aktualisierungsinformationen. Ihre Verwendung ist insbesondere dann zweckmäßig, wenn Ursprungsspeicherinhalt und Zielspeicherinhalt aus diskreten Datensätzen bestehen, die beim Zielspeicherinhalt gegenüber dem Ursprungsspeicherinhalt entfernt, modifiziert oder beibehalten sein können. Anweisungen, die im Ursprungs- wie im Zielspeicherinhalt vorhandene Datensätze umfassen, deren Inhalt sich unterscheidet, können bei solchen Speicherinhalten als Modifizierungsanweisungen vorgesehen sein.In a development of the invention can Modifizierungsanweisungen be provided, the content of an erase instruction and an insertion instruction combine with each other. Such modification instructions lead to a further data reduction in the update information. Their use is particularly useful if original memory content and destination memory contents consist of discrete data sets that are at the destination memory contents across from removed, modified or retained from the original memory contents can. Statements that exist in the source and destination memory contents records include content that differs from such memory contents be provided as Modifizierungsanweisungen.

Dem Verfahren nach Anspruch 8 liegt der Grundgedanke zugrunde, dass bei einer gegebenen festen und gleichbleibenden Schreibrichtung im Datenspeicher dann ein Überschreiben von noch nicht gelesenen Gleichbereichen zu befürchten ist, wenn diese Gleichbereiche im Zielspeicherinhalt bezüglich ihrer Lage gegenüber der Lage im Ursprungsspeicherinhalt in Schreibrichtung verschoben sind. Weiterhin liegt dieser Lösung der Gedanke zugrunde, dass der Datenspeicher als Ringspeicher begriffen und angesprochen werden kann, wobei es lediglich erforderlich ist, dass das aus dem Datenspeicher zugreifende Datenverarbeitungssystem die Lage eines Null- bzw. Referenzpunktes im Datenspeicher kennt. Aufbauend auf diesen Grundüberlegungen geht dieses Verfahren von einer Anweisungsliste aus, in der Gleichbereichsanweisungen vorgesehen sind, die in der Reihenfolge ihrer jeweils beschriebenen Gleichbereiche im Ursprungsspeicherinhalt angeordnet sind. Die Gleichbereichsanweisungen beschreiben die Gleichbereiche bezüglich ihrer Lageveränderung mittels eines Lageveränderungsbetrages und einer Lageveränderungsrichtung. Die Lageveränderungsrichtung ist bei positiven Gleichbereichen positiv und bei negativen Gleichbereichen negativ. Ausgehend von dieser Anweisungsliste werden die Lageveränderungsangaben einer jeden Gleichbereichsanweisung geändert, wobei ein gemeinsamer Modifikationswert zugrundegelegt wird. Dieser Modifikationswert ist so gewählt, dass alle Gleichbereiche zu negativen Gleichbereichen werden, also eine einheitliche negative Lageveränderungsrichtung aufweisen. Diese Lageveränderungsrichtung weist der Referenz- und Schreibrichtung entgegen.The method according to claim 8 is based on the basic idea that at a given fixed and constant writing direction in the data memory then an overwriting of unread DC areas is to be feared if these DC areas are shifted in the destination memory contents with respect to their position relative to the location in the original memory content in the writing direction. Furthermore, this solution is based on the idea that the data memory can be understood and addressed as a ring buffer, it only being necessary for the data processing system accessing the data memory to know the position of a zero or reference point in the data memory. Based on these basic considerations, this method starts from an instruction list in which DC area instructions are arranged, which are arranged in the original memory contents in the order of their respective DC areas described. The Gleichbereichsanweisungen describe the Gleichbereiche with respect to their change in position by means of a Lageverandungsbetrages and a change in position direction. The change in direction is positive and positive in positive DC areas Negative negative ranges. Based on this instruction list, the position change information of each DCA instruction is changed, based on a common modification value. This modification value is selected such that all DC regions become negative DC regions, that is to say have a uniform negative position change direction. This position change direction opposes the reference and write directions.

Die modifizierte Anweisungsliste mit den modifizierten Gleichbereichsanweisungen führt bei der Ausführung dazu, dass alle Gleichbereiche in dieselbe Richtung verschoben werden, so dass ausgeschlossen ist, dass ein Gleichbereich überschrieben wird, bevor er verschoben werden kann. Der Datenspeicher ist zu diesem Zweck als Ringspeicher organisiert. Dies bedeutet, dass das Datenverarbeitungssystem und/oder der Datenspeicher so geartet sind, dass eine Speicheradresse, die die Grenzen des Speicherbereichs an einem Ende überschreitet, vom anderen Ende ausgehend wieder in den Speicher hereingeführt wird. Die mit der Aktualisierung nach dem erfindungsgemäßen Verfahren verbundene Verschiebung des Speicherinhalts bei jeder Aktualisierung entgegen der Schreibrichtung führt also nicht unweigerlich dazu, dass irgendwann eine weitere Verschiebung nicht mehr möglich ist. Das Verfahren ist nur dann anwendbar, wenn gewährleistet ist, dass die Verschiebung des ersten Gleichbereichs nicht aufgrund der Ringstruktur des Speichers den letzten Gleichbereich unwiederbringlich überschreibt. Dies kann einerseits dadurch erreicht werden, dass der Speicher so groß ausgelegt wird, dass er die Verschiebung des ersten Gleichbereichs ohne Überschreiben des letzten Gleichbereichs gewährleistet. Eine andere Möglichkeit ist es, den letzten bzw. die letzten Gleichbereiche zwischenzuspeichern und nach Ausführung aller Gleichbereichsanweisungen wieder in den Datenspeicher einzufügen.The modified statement list with the modified equal-range statements leads the execution to move all DC areas in the same direction, so that it is ruled out that a DC area is overwritten, before he can be moved. The data store is at this Purpose organized as ring buffer. This means that the data processing system and / or the data memory are such that a memory address, which exceeds the limits of the memory area at one end, starting from the other end is brought back into the memory. The with the update according to the inventive method associated shift of memory contents at each update leads contrary to the writing direction So not inevitably, that at some point another shift not possible anymore is. The procedure is only applicable if guaranteed is that the shift of the first DC is not due to the ring structure of the memory irreversibly overwrites the last equal range. This can be achieved on the one hand by the fact that the memory designed so big that he will be the shift of the first DC without overwriting guaranteed the last Gleichbereichs. A different possibility is to cache the last or the last dc ranges and after execution all equal-range statements to re-insert into the data store.

Die Modifikation der Anweisungen der Anweisungsliste kann sowohl vor der Zuführung der Anweisungsliste zum Datenverarbeitungssystem als auch durch das Datenverarbeitungssystem selbst erfolgen. Darüber hinaus ist es auch denkbar, dass die Modifikation in zwei Modifikationsschritten mit jeweils unterschiedlichem Modifikationswert erfolgt, wobei eine erste Modifikation der Anweisungen in der Anweisungsliste erfolgt, bevor die Anweisungsliste an das Datenverarbeitungssystem übertragen wird. Nach oder während der Übertragung an das Datenverarbeitungssystem wird dann eine zweite Modifikation durch das Datenverarbeitungssystem selbst mit einem zweiten Modifikationswert durchgeführt. Zweckmäßig ist eine solche zweiteilige Modifikation der Anweisungen der Anweisungsliste dann, wenn die erste Modifikation genutzt wird, um alle Gleichbereiche zu negativen Gleichbereichen zu konvertieren, und die zweite Modifikation genutzt wird, um datenverarbeitungssystemspezifischen oder datenspeicherspezifischen Gegebenheiten Rechnung zu tragen. Dies kann beispielsweise zweckmäßig sein, wenn das Datenverarbeitungssystem den Speicher nicht byteweise, sondern nur in Blöcken von einigen Bytes beschreiben kann. In einem solchen Fall kann durch eine daran angepasste Modifikation verhindert werden, dass eine hinten in einem Speicherblock angeordnete Byte-Speicherzelle vor dem Auslesen im Zuge eines auf eine vorne im Speicherblock angeordnete Speicherzelle gerichtete Schreiboperation überschrieben wird.The Modification of the instructions in the instruction list can be done both before the feeder the instruction list to the data processing system as well the data processing system itself. Furthermore it is also conceivable that the modification in two modification steps each with a different modification value, with a first modification of the instructions in the statement list, before transferring the instruction list to the data processing system becomes. After or during the transmission to the data processing system is then a second modification by the data processing system itself with a second modification value carried out. Is appropriate such a two-part modification of the instructions of the instruction list then, when the first modification is used to all DC areas to convert to negative DCs, and the second modification is used to data processing system specific or data storage specific Circumstances. This may be appropriate, for example, if the data processing system does not store the memory byte by byte, but only in blocks of a few bytes. In such a case can through an adapted modification prevents that one byte memory cell arranged in the back of a memory block before being read in the course one on a front in the memory block arranged memory cell directed write operation overwritten becomes.

In einer Weiterbildung der Erfindung wird der Modifikationswert in Abhängigkeit des Lageveränderungsbetrages des positiven Gleichbereichs mit dem höchsten Lageveränderungsbetrag festgelegt. Zweckmäßig ist dabei z.B. die Wahl eines Modifikationswertes, der dem höchsten Lageveränderungsbetrag eines positiven Gleichbereichs entspricht oder diesen übersteigt. Hierdurch wird erreicht, dass der Modifikationswert nicht größer ist als unbedingt erforderlich, was wiederum direkte Auswirkungen auf den für die Abarbeitung der Anweisungsliste erforderlichen freien Speicherbedarf bzw. den Speicherbedarf zum Zwischenspeichern der von der oder den letzten Anweisungen der Anweisungsliste betroffenen Gleichbereiche hat.In a development of the invention is the modification value in dependence of the change in position of the positive DC with the highest change in position established. Is appropriate while e.g. the choice of a modification value, the highest position change amount corresponds to or exceeds a positive DC. This ensures that the modification value is not greater as strictly necessary, which in turn directly affects the for the processing of the instruction list required free space or the memory required for caching the one or the last statements of the instruction list affected DCs Has.

In einer Weiterbildung der Erfindung wird der Modifikationswert in Abhängigkeit des Lageveränderungsbetrages des negativen Gleichbereichs mit dem geringsten Lageveränderungsbetrag festgelegt. Dieses Vorgehen ist zweckmäßig, wenn sich alle Gleichbereichsanweisungen in der Anweisungsliste von vornherein auf negative Gleichbereiche beziehen. In einem solchen Fall ist eine Modifikation bloß dann erforderlich, wenn der kleinste Lageveränderungsbetrag der Gleichbereichsanweisungen geringer als der Minimalbetrag ist. In einem solchen Fall ist es zweckmäßig, diesen geringsten Lageveränderungsbetrag maßgeblich für die Festlegung des Modifikationswerts zu nutzen, damit nach erfolgter Modifikation die Lageveränderungsbeträge aller Gleichbereiche über dem Minimalbetrag liegen.In a development of the invention is the modification value in dependence of the change in position of the negative DC with the least amount of change in position established. This procedure is useful if all DCS statements in the instruction list from the beginning to negative DCs Respectively. In such a case, a modification is required only if the smallest change in position of the DCS is less than the minimum amount. In such a case, it is expedient, this least change in position decisively for the Determining the modification value to use after that Modification the location change amounts of all DC areas over the minimum amount.

In einer Weiterbildung der Erfindung wird der Minimalbetrag in Abhängigkeit von einer kleinsten separat beschreibbaren Blockgröße des zu aktualisierenden Datenspeichers festgelegt.In In a further development of the invention, the minimum amount is dependent from a smallest separately writable block size of the updating data store.

Dadurch wird dem charakteristischen Verhalten des Speichertyps des Datenspeichers Rechnung getragen. Einige Speichertypen lassen sich nicht bytegenau beschreiben, sondern erfordern, dass größere Einheiten, beispielsweise 1, 2, 4, 8 oder 16 KByte, auf einmal beschrieben werden. Dies birgt die Gefahr, dass auch bei negativen Gleichbereichen, bei denen eine Verlagerung des Gleichbereichs entgegen der Schreibrichtung stattfindet, das Schreiben von Daten in eine in Speicherrichtung vordere Speicherzelle die Daten einer in Speicherrichtung hinteren Speicherzelle löscht. Um diesem entgegenzuwirken, kann der Minimalbetrag in Abhängigkeit der kleinsten separat beschreibbaren Blockgröße so groß gewählt werden, dass gewährleistet ist, dass der Schreibvorgang der ersten Daten eines Gleichbereichs in einem in Schreibrichtung früheren Block gegenüber dem Lesebereich stattfindet.As a result, the characteristic behavior of the memory type of the data memory is taken into account. Some types of memory can not be written byte-accurate, but require larger units, such as 1, 2, 4, 8, or 16K, to be written at once. This entails the danger that even in negative DC areas in which a shift in the DC area ent takes place in the writing direction, the writing of data in a memory-front memory cell deletes the data of a rear memory cell in memory direction. In order to counteract this, the minimum amount can be chosen to be large, depending on the smallest block record size that can be separately written, in order to ensure that the writing operation of the first data of a DC area in a write-ahead block takes place in relation to the read area.

In einer Weiterbildung des Verfahrens wird nach der Modifikation der Gleichbereichsanweisungen eine Umstellung der Reihenfolge der Anweisungen durchgeführt, bei der alle Gleichbereichsanweisungen, die vor der Gleichbereichsanweisung mit dem über alle Gleichbereichsanweisungen geringsten Lageveränderungsbetrag stehen, unter Beibehaltung ihrer Reihenfolge hinter die letzte Gleichbereichsanweisung verschoben werden. Die Gleichbereichsanweisungen befinden sich nach der Umstellung also in einer Reihenfolge, bei der die erste Gleichbereichsanweisung den geringsten Lageveränderungsbetrag aufweist. Dadurch ist beim Zwischenspeichern der Speicherbereiche, die von einer Ausführung dieser ersten Gleichbereichsanweisung betroffen sind, nur ein geringer Speicherbedarf erforderlich. Da der Speicher als Ringspeicher organisiert ist, ist eine Reihenfolgenveränderung bzgl. der Anweisungen nicht gleichbedeutend mit einer Reihenfolgenänderung bzgl. der Gleichbereiche.In a development of the method will be after the modification of A divide-by-order statement, a change in the order of the statements carried out, in the case of all the DCA statements that precede the DCA statement with the over all DC instructions least amount of change in position while keeping their order behind the last DCA statement be moved. The DCA statements are located after the conversion so in an order in which the first Gleichbereichsanweisung the least change in position having. As a result, when buffering the memory areas, the one of execution this first DCA are affected, only a small one Memory required. Since the memory is organized as a ring memory, is a sequence change with respect to the instructions, not synonymous with a sequence change regarding the Gleichbereiche.

In einer Weiterbildung der Erfindung werden vor die erste Anweisung in der Anweisungsliste eine Sicherungsanweisung zur Sicherung des Speicherbereichs, der bei Ausführung der ersten Gleichbereichsanweisung überschrieben wird, in einen Temporärspeicher eingefügt und die Gleichbereichsanweisungen der Anweisungsliste, die sich auf einen in diesem Speicherbereich befindlichen Gleichbereich beziehen, dahingehend modifiziert, dass sie die Daten aus diesem Temporärspeicher lesen. Der Temporärspeicher kann ein bestimmter, zu diesem Zweck vorgesehener Speicherbereich des zu aktualisierenden Datenspeichers sein. Ebenfalls zweckmäßig ist allerdings auch die Verwendung eines davon losgelösten Speichers, beispielsweise eines flüchtigen Speichers.In a development of the invention will be before the first instruction In the statement list, a backup instruction to back up the Memory area when running the first equal-range statement is overwritten into one temporary storage added and the equivalency statements of the statement list, which are refer to a DC range located in this memory area, modified to reflect the data from this temporary memory read. The temporary storage may be a particular memory area dedicated to this purpose be the data storage to be updated. However, it is also appropriate also the use of a detached memory, for example a volatile memory.

In einer Weiterbildung der Erfindung werden in der Anweisungsliste Kopier-Anweisungen, die sich auf Gleichbereiche im Ursprungsspeicherinhalt beziehen, die bei Ausführung der ersten Gleichbereichsanweisung überschrieben werden, durch Einfüge-Anweisungen ersetzt, die ein Einfügen der Inhalte der betroffenen Gleichbereiche als Neubereiche in den Datenspeicher an die gemäß Zielspeicherinhalt vorgesehenen Positionen vorsehen. Diese Weiterbildung des Verfahrens erlaubt eine vollständige Ausschöpfung des Speichers durch Ursprungsspeicherinhalt und Zielspeicherinhalt, ohne dass ein Temporärspeicherbereich erforderlich ist. Die Gleichbereiche, die durch die erste Gleichbereichsanweisung oder die ersten Gleichbereichsanweisungen überschrieben werden, werden gemäß dieser Weiterbildung zwischenzeitlich vollständig aus dem Speicher des Datenverarbeitungssystems gelöscht und erst gegen Ende des Verfahrens als Neubereiche in Form korrespondierender Einfüge-Anweisungen dem Datenverarbeitungssystem wieder zugeführt.In a development of the invention will be in the instruction list Copy instructions that refer to dz areas in the source memory contents refer to the execution overwrite the first equal-range statement Insert instructions replaced by an insert the contents of the affected Gleichbereiche as new areas in the Data memory to the according to destination memory content envisage intended positions. This development of the method allows a complete exhaustion the memory by source memory content and destination memory content, without a temporary storage area is required. The Gleichbereiche, by the first Gleichbereichsanweisung or the first equal-range statements are overwritten according to this Continuing education in the meantime completely from the memory of the data processing system deleted and only towards the end of the process as new areas in the form of corresponding ones Insert instructions Data processing system fed again.

In einer Weiterbildung des Verfahrens weisen der Ursprungsspeicherinhalt und der Zielspeicherinhalt diskrete Datensätze auf. Besonders vorteilhaft ist es, wenn die Gleichbereiche anhand von Vergleichen zwischen Datensätzen des Ursprungsspeicherinhalts und des Zielspeicherinhalts ermittelt werden. Speicherinhalte, die aus diskreten Datensätzen aufgebaut sind, ermöglichen eine sehr einfache Identifikation von Gleichbereichen. Dabei werden lediglich Datensätze miteinander verglichen, was deutlich weniger aufwendig ist als der Vergleich beliebiger Speicherinhalte zwischen Ursprungsspeicherinhalt und Zielspeicherinhalt. Die Anzahl der maximal erforderlichen Vergleiche entspricht dem Produkt der Anzahl der Datensätze des Ursprungsspeicherbereichs und der Anzahl der Datensätze des Zielspeicherbereichs.In a development of the method have the original memory content and the destination memory contents discrete records. Especially advantageous is it when the DC areas are based on comparisons between records the source memory contents and the destination memory contents. Memory contents made up of discrete data records allow a very simple identification of DC areas. It will be only records compared to each other, which is much less expensive than the Comparison of arbitrary memory contents between original memory contents and Target memory contents. The number of maximum required comparisons corresponds to the product of the number of records of the original memory area and the number of records of the destination storage area.

In einer Weiterbildung des Verfahrens ist den Datensätzen jeweils ein eindeutiger Identifikationsschlüssel zugeordnet und es werden zur Ermittlung der Gleichbereiche ausschließlich Datensätze des Ursprungsspeicherinhalts und des Zielspeicherinhalts, die den identischen Identifikationsschlüssel aufweisen, miteinander verglichen. Auch dies erleichtert die Identifikation von Gleichbereichen ganz erheblich. Zur Ermittlung reicht es aus, den Ursprungsspeicherinhalt darauf zu untersuchen, ob er Datensätze aufweist, die den gleichen Identifikationsschlüssel wie Datensätze des Zielspeicherinhalts haben. Ist dies der Fall, so braucht lediglich noch ein Vergleich zwischen diesen Datensätzen gleichen Identifikationsschlüssels durchgeführt zu werden, um die Gewähr dafür zu erlangen, dass die Datensätze identisch sind. Selbst bei großen Speicherinhalten mit einer hohen Zahl an Datensätzen ist dieses Verfahren mit geringem Rechenaufwand durchführbar.In a development of the method is the data sets respectively assigned a unique identification key and it will be to determine the DC areas only data records of the original memory contents and the destination memory contents having the identical identification key, compared to each other. This too facilitates identification of DCs quite considerably. It is enough to to examine the source memory content for whether it has records, the same identification key as records of the Destination storage content. If this is the case, it just needs still a comparison between these records of the same identification key to be performed for the guarantee for that too achieve that the records are identical are. Even with big ones Memory content with a high number of records is this method with low computational effort feasible.

In einer Weiterbildung der Erfindung sind die Identifikationsschlüssel Elemente einer sortierbaren Menge und die Datensätze des Ursprungsspeicherinhalts und des Zielspeicherinhalts liegen auf gleiche Weise sortiert vor.In a development of the invention are the identification key elements a sortable set and the records of the source memory contents and the destination memory contents are sorted in the same way.

In einer Weiterbildung des Verfahrens enthält die Anweisungsliste Indexanweisungen, die die Anpassung von Einträgen einer auf den Datenspeicher bezogenen Indextabelle beschreiben. Eine solche Indextabelle dient als eine Art Inhaltsverzeichnis und erlaubt die schnelle Ermittlung von Speicheradressen bestimmter Inhalte. Durch die Indexanweisungen wird der Tatsache Rechnung getragen, dass die Aktualisierung des Speicherinhalts des Datenspeichers mit der Einfügung neuer Speicherinhalte einhergehen kann, die neue Indexeinträge erforderlich machen.In one development of the method, the statement list contains index statements that describe the adaptation of entries of an index table related to the data store. Such an index table serves as a kind of table of contents and allows fast determination of memory addresses of specific content. The indexing instructions take into account the fact that updating the memory contents of the data store may be accompanied by the insertion of new memory contents that require new index entries.

In einer Weiterbildung des Verfahrens sind in der Anweisungsliste Indexanweisungen zur Anpassung der Indextabelle nur für jene Einträge der Indextabelle enthalten, deren Veränderung nicht implizit aus den Gleichbereichsanweisungen hervorgeht. Während beispielsweise Indexeinträge auf Löschbereiche, die auf Speicherbereiche verweisen, die im geänderten Zielspeicherinhalt nicht mehr enthalten sind, sowie Indexeinträge auf Gleichbereiche, die gegenüber ihrer Lage im Ursprungsspeicherinhalt verschoben sind, entsprechend automatisch gelöscht bzw. angepasst werden können, ist eine derartige automatische Anpassung beim Einfügen neuer Speicherinhalte, beispielsweise beim Ersetzen alter Datensätze durch neue Datensätze, nicht möglich. Die Reduzierung der Indexanweisungen in der Anweisungsliste auf die nicht implizit aus den Gleichbereichsanweisungen hervorgehenden führt zu einer Reduzierung der Größe der Anweisungsliste.In In a further development of the method, index instructions are in the instruction list for adapting the index table only for those entries of the index table contain, their change implied from the DCS. While, for example Index entries on extinguishing areas, which refer to memory areas that are in the modified destination memory content are no longer included, as well as index entries on DCs, the across from their location in the original memory contents are shifted accordingly automatically deleted or can be adjusted is such an automatic adaptation when inserting new ones Memory content, for example, when replacing old records by new records, not possible. The reduction of index statements in the statement list that are not implicit in the equation of equality leads to a reduction in the size of the instruction list.

Die Erfindung betrifft in einem weiteren Aspekt eine Verwendung einer nach einem der vorstehenden Ansprüche erzeugten Anweisungsliste, wobei die Anweisungsliste an ein Datenverarbeitungssystem mit einem Datenspeicher übertragen wird und dieses anhand der Anweisungsliste den Datenspeichers aktualisiert.The The invention relates in a further aspect to a use of a generated according to any one of the preceding claims instruction list, the instruction list being sent to a data processing system having a Transfer data memory and updates it using the instruction list in the data store.

In einer vorteilhaften Weiterbildung wird dabei eine Anpassung von Indexeinträgen einer Indextabelle durchgeführt.In An advantageous development is an adaptation of Index entries an index table.

In einer Weiterbildung der Verwendung erfolgt die Anpassung von Indexeinträgen, die eine auf einen Gleichbereich bezogene Zieladresse aufweisen, dahingehend, dass die Zieladresse entsprechend dem Lageveränderungswert der entsprechenden Gleichbereichsanweisung angepasst wird. Eine andere vorteilhafte Weiterbildung sieht vor, dass Indexeinträge, die eine Zieladresse aufweisen, die sich auf einen nicht in den Zielspeicherinhalt übernommenen Speicherinhalt bezieht, bei der Aktualisierung automatisch gelöscht werden.In A further development of the use is the adaptation of index entries, the have a DC-related destination address, in that that the destination address corresponding to the attitude change value of the corresponding Is adapted to the same-range instruction. Another advantageous Further development provides that index entries which have a destination address, referring to a non-targeted content Memory contents are automatically deleted during the update.

Durch diese Weiterbildungen wird erreicht, dass eine Indextabelle aktuell gehalten werden kann, ohne dass dies einen erheblichen Speicherbedarf in der Anweisungsliste zur Folge hat. So kann das Datenverarbeitungssystem erkennen, wenn Datenbereiche ersatzlos gestrichen werden, und darauf verweisende Indexeinträge in der Indextabelle automatisch löschen. Bei Gleichbereichen bzw. Indexeinträgen, die auf Gleichbereiche verweisen, ist es dem Datenverarbeitungssystem möglich, anhand des Lageveränderungswertes des entsprechenden Gleichbereichs eine automatische Anpassung des entsprechenden Indexeintrags vorzunehmen. Indexanweisungen in der Anweisungsliste sind nur dann erforderlich, wenn ein implizites Ableiten der Anpassung der Indextabelle nicht möglich ist, beispielsweise bei Indexeinträgen, die auf Neubereiche verweisen, oder bei Indexeinträgen, die auf die erste Speicherzelle von Gleichbereichen verweisen, vor die im Zielspeicherinhalt Neubereiche eingefügt werden.By This training is achieved that an index table up to date can be kept without this requiring a significant amount of memory in the instruction list. So can the data processing system recognize when data areas are deleted without replacement and on it referring index entries automatically delete in the index table. At DC areas or index entries, which refer to equal ranges, it is the data processing system possible, based on the location change value of the corresponding DC area, an automatic adjustment of the corresponding index entry. Index statements in the Instruction lists are only required if an implicit Derivation of the index table is not possible, for example, for index entries, the refer to new realms, or index entries that refer to the first memory cell of Refer to equal ranges, in front of those in the target memory contents new ranges added become.

Diese und weitere bevorzugte Weiterbildungen der Erfindung gehen außer aus den Ansprüchen auch aus der Beschreibung und den Zeichnungen hervor, wobei die einzelnen Merkmale jeweils für sich allein oder zu mehreren in Form von Unterkombinationen bei entsprechenden gezeigten und nicht gezeigten Ausführungsformen der Erfindung verwirklicht sein können, die vorteilhafte Ausführungen darstellen, für die hier Schutz beansprucht wird.These and further preferred embodiments of the invention except go out the claims as well from the description and the drawings, the individual Features for each alone or in the form of subcombinations corresponding embodiments shown and not shown The invention can be realized, the advantageous embodiments represent, for which claims protection here.

Ausführungsbeispiele der Erfindung sind in den Zeichnungen dargestellt und werden im Folgenden näher erläutert. Hierbei zeigen:embodiments The invention are illustrated in the drawings and are in Following closer explained. Hereby show:

1a und 1b schematische Blockdiagramme unterschiedlicher Darstellungen je eines Ursprungsspeicherinhalts und eines Zielspeicherinhalts eines Datenspeichers, 1a and 1b schematic block diagrams of different representations of a respective original memory content and a destination memory content of a data memory,

2 ein Ablaufdiagramm eines ersten Abschnitts einer ersten Variante eines ersten Verfahrens, 2 3 is a flow chart of a first section of a first variant of a first method;

3 eine Anweisungsliste, die bei der Durchführung des in 2 dargestellten Verfahrensabschnitts erzeugt wird, 3 an instruction list used in the execution of the in 2 generated method section is generated

4 ein Ablaufdiagramm eines zweiten Verfahrensabschnittes der ersten Variante des ersten Verfahrens, 4 a flowchart of a second method section of the first variant of the first method,

5a und 5b Anweisungslisten entsprechend 3 in einem Zwischenzustand während bzw. einem Endzustand nach der Durchführung des zweiten Verfahrensabschnitts gemäß 4, 5a and 5b Instruction lists accordingly 3 in an intermediate state during or after a final state after the execution of the second method section according to FIG 4 .

6 ein Ablaufdiagramm eines dritten Verfahrensabschnitts der ersten Variante des ersten Verfahrens, 6 a flowchart of a third method section of the first variant of the first method,

7a und 7b Blockdiagramme verschiedener Zustände des in 1a dargestellten Datenspeichers während der Durchführung des dritten Verfahrensabschnitts gemäß 6, 7a and 7b Block diagrams of various states of the in 1a shown data storage during the implementation of the third method section according to 6 .

8 ein Ablaufdiagramm eines ersten Verfahrensabschnitts einer zweiten Variante des ersten Verfahrens, 8th 3 is a flowchart of a first method section of a second variant of the first method,

9a und 9b Anweisungslisten, die mittels des in 8 dargestellten ersten Verfahrensabschnitts aufgebaut werden, in einem Zustand vor und einem Zustand nach einer Umsortierung, 9a and 9b Instruction lists that are generated using the in 8th be constructed in a state before and a state after a resort,

10a und 10b Blockdiagramme verschiedener Zustände des in 1a dargestellten Datenspeichers während der Ausführung der Anweisungen der Anweisungsliste gemäß 9b, 10a and 10b Block diagrams of various states of the in 1a data storage during the execution of the instruction statements according to 9b .

11a und 11b Blockdiagramme je eines Ursprungsspeicherinhalts und eines um einen Modifikationswert gegenüber dem Zielspeicherinhalt der 1b versetzten Zielspeicherinhaltes des Datenspeichers von 1a, 11a and 11b Block diagrams of each original memory content and one by a modification value from the target memory content of the 1b offset destination memory contents of the data memory of 1a .

12 ein Ablaufdiagramm eines zweiten Verfahrens zur Erzeugung und Modifikation einer Anweisungsliste zur Aktualisierung des Ursprungsspeicherinhalts von 11b in den Zielspeicherinhalt von 11b, 12 a flowchart of a second method for generating and modifying an instruction list for updating the original memory content of 11b in the destination memory content of 11b .

13a bis 13f je eine mit dem Verfahren nach 12 erzeugte Anweisungsliste in verschiedenen Zuständen während und nach der Verfahrensdurchführung und 13a to 13f one each with the method 12 generated statement list in various states during and after the procedure and

14a und 14b Blockdiagramme verschiedener Zustände des Datenspeichers von 11b beim Übergang vom Ursprungsspeicherinhalt zum Zielspeicherinhalt. 14a and 14b Block diagrams of various states of the data memory of 11b during the transition from the original memory contents to the destination memory contents.

Die 1a und 1b veranschaulichen die Aufgabenstellung, die darin liegt, einen Datenspeicher mit insgesamt 64 Byte-Speicherzellen von einem Ursprungsspeicherinhalt 10a in einen Zielspeicherinhalt 10b zu überführen. Die 1a zeigt auf der linken Seite den Ursprungsspeicherinhalt 10a und auf der rechten Seite den Zielspeicherinhalt 10b. Die Speicherinhalte 10a, 10b sind jeweils aus Datensätzen 12 aufgebaut, wobei jedem dieser Datensätze ein eindeutiger Identifikationsschlüssel in Form eines Buchstabens zugeordnet ist und die Datensätze in bzgl. ihres Identifikationsschlüssels alphabetisch sortierter Reihenfolge im Datenspeicher angeordnet sind. Die Speicherinhalte 10a, 10b unterscheiden sich bezüglich des Vorhandenseins und des Inhalts der Datensätze. Datensätze A, C, E, H, J, M, P, R sind sowohl im Ursprungsspeicherinhalt 10a als auch im Zielspeicherinhalt 10b zu finden und in beiden Speicherinhalten 10a, 10b bezüglich ihres Inhaltes identisch. Ein Datensatz F ist ebenfalls im Ursprungsspeicherinhalt 10a und im Zielspeicherinhalt 10b zu finden, wobei sich jedoch die Inhalte des Datensatzes F im Ursprungsspeicherinhalt und im Zielspeicherinhalt voneinander unterscheiden. Diese Datensätze A, C, E, F, H, J, M, P, R liegen in beiden Speicherinhalten 10a, 10b in der gleichen Reihenfolge vor. Datensätze B, D, O, Q des Ursprungsspeicherinhalts 10a sind im Zielspeicherinhalt 10b nicht zu finden. Datensätze I, K im Zielspeicherinhalt 10b sind neue Datensätze, die im Ursprungsspeicherinhalt 10a nicht enthalten sind.The 1a and 1b illustrate the task, which is a data store with a total of 64 byte memory cells from an original memory content 10a into a destination memory content 10b to convict. The 1a shows on the left side the original memory contents 10a and on the right, the destination memory contents 10b , The memory contents 10a . 10b are each from records 12 constructed, each of these records a unique identification key is assigned in the form of a letter and the records are arranged in respect of their identification key alphabetically sorted order in the data memory. The memory contents 10a . 10b differ in the presence and content of the records. Records A, C, E, H, J, M, P, R are both in the original memory contents 10a as well as in the target memory content 10b to find and in both memory contents 10a . 10b identical in content. A record F is also in the original memory contents 10a and in the destination memory content 10b to find, however, with the contents of the record F in the original memory content and in the destination memory content differ from each other. These records A, C, E, F, H, J, M, P, R are in both memory contents 10a . 10b in the same order. Records B, D, O, Q of the original memory contents 10a are in the destination memory content 10b not to be found. Data records I, K in the destination memory content 10b are new records that are in the original memory contents 10a not included.

Zum schnelleren Zugriff auf Daten des Datenspeichers ist eine nicht dargestellte Indextabelle vorgesehen. Diese listet im Falle des Ursprungsspeicherinhalts 10a Indextabelleneinträge T1, T2, T3, T4, denen jeweils eine Indexadresse AT1, AT2, AT3, AT4 zugeordnet ist. Die Indextabelleneinträge T1 bis T4 gestatten einem Datenverarbeitungssystem einen schnellen Zugriff auf bestimmte Daten der Datensätze B, H, M und O.For faster access to data of the data memory, an index table, not shown, is provided. This lists in the case of the original memory contents 10a Index table entries T1, T2, T3, T4, each associated with an index address A T1 , A T2 , A T3 , A T4 . The index table entries T1 to T4 allow a data processing system quick access to certain data of the records B, H, M and O.

Im Zielspeicherinhalt 10b ist der Indextabelleneintrag T1 mit der Indexadresse AT1 zusammen mit dem entsprechenden Datensatz B nicht mehr vorhanden. Der Indextabelleneintrag T2 ist mit einer angepassten Indexadresse A'T2 nach wie vor vorhanden und weist unverändert auf die gleichen Daten des Datensatzes H. Der Indextabelleneintrag T3 ist im Zielspeicherinhalt mit einer angepassten Indexadresse A'T3 ebenfalls vorhanden, er weist jedoch nun auf den neuen Datensatz K, der im Zielspeicherinhalt 10b vor dem Datensatz M angeordnet ist, auf den sich der Indextabelleneintrag T3 mit der Indexadresse AT3 bezüglich des Ursprungsspeicherinhalts 10a bezogen hat. Dies kann z.B. darin begründet sein, dass die Daten des Datensatzes K die im Datensatz M enthaltenen Daten nach vorne hin ergänzen, so dass eine Änderung der Indexadresse T3 bzw. des betroffenen Datensatzes erforderlich wird. Der Indextabelleneintrag T4 mit der Indexadresse AT4 ist zusammen mit dem betroffenen Datensatz O entfallen. Neu hinzugekommen ist ein Indextabelleneintrag T5 mit der Indexadresse A'T5, der auf den neuen Datensatz F verweist.In the destination memory content 10b the index table entry T1 with the index address A T1 is no longer present together with the corresponding data record B. The index table entry T2 is still present with a matched index address A ' T2 and still has the same data of the record H. The index table entry T3 is also present in the destination memory contents with a matched index address A' T3 , but now points to the new record K in the destination memory content 10b is arranged before the data record M, to which the index table entry T3 with the index address A T3 with respect to the original memory contents 10a has related. This may be due, for example, to the fact that the data of the data record K supplement the data contained in the data record M to the front, so that a change in the index address T3 or the relevant data record is required. The index table entry T4 with the index address A T4 has been omitted together with the relevant data record O. An index table entry T5 with the index address A ' T5 , which points to the new data set F, has been added.

Die 1b verdeutlicht den Unterschied zwischen dem Ursprungsspeicherinhalt 10a und dem Zielspeicherinhalt 10b. Jene Datensätze, die im Zielspeicherinhalt 10b und im Ursprungsspeicherinhalt 10a inhaltlich unverändert vorhanden und allenfalls verschoben sind, stellen Gleichbereiche G1 bis G8 dar. Jene Datensätze, die im Ursprungsspeicherinhalt 10a vorhanden sind, im Zielspeicherinhalt 10b jedoch fehlen oder mit anderem Inhalt vorhanden sind, stellen die Löschbereiche L1 bis L5 dar. Jene Datensätze, die im Zielspeicherinhalt 10b vorhanden sind, im Ursprungsspeicherinhalt 10a jedoch nicht oder mit anderem Inhalt zu finden sind, stellend Neubereiche N1 bis N3 dar.The 1b illustrates the difference between the source memory contents 10a and the destination memory contents 10b , Those records that are in the target store content 10b and in the original memory contents 10a contents are unchanged and at most displaced, represent equal areas G1 to G8. Those records that are in the original memory contents 10a are present in the destination memory contents 10b however, missing or other content exists, the deletion areas L1 to L5 represent. Those records in the target memory content 10b are present in the original memory contents 10a are not found, however, or with other content, represent new areas N1 to N3.

Für die Gleichbereiche G1 bis G8 ist mittels Pfeilen 14 jeweils angegeben, wie deren Lage im Datenspeicher sich vom Ursprungsspeicherinhalt 10a zum Zielspeicherinhalt 10b verändert. Während der Gleichbereich G1 bezüglich seiner Lage unverändert bleibt, werden die Gleichbereiche G2, G3, G4, G5, G8 hin zu kleineren Speicheradressen verschoben und die Gleichbereiche G6, G7 hin zu höheren Speicheradressen verschoben. Eine Referenzrichtung ist mittels eines Pfeils 16 dargestellt. Da die Gleichbereiche G1, G2, G3, G4, G5 und G8 nicht bzw. entgegen der Referenzrichtung verschoben werden, handelt es sich um negative Gleichbereiche. Die Gleichbereiche G6, G7 sind dagegen positive Gleichbereiche.For the equal areas G1 to G8 is by means of arrows 14 each indicated as their location in the data store from the original memory content 10a to the destination memory content 10b changed. While the DC region G1 remains unchanged in position, the DC regions G2, G3, G4, G5, G8 are shifted toward smaller memory addresses and the DC regions G6, G7 are shifted toward higher memory addresses. A reference direction is by means of an arrow 16 shown. Since the DC regions G1, G2, G3, G4, G5 and G8 are not displaced or counter to the reference direction, they are negative DC regions. The DC zones G6, G7, on the other hand, are positive DC zones.

Es ist ersichtlich, dass ein sequentielles Bewegen der Gleichbereiche G1 bis G8 bzw. Schreiben der Neubereiche N1 bis N3 in der Reihenfolge, in der die Bereiche im Zielspeicherinhalt 10b vorliegen, dazu führen würde, dass Speicherinhalte überschrieben werden, bevor sie verschoben werden können. Zu erkennen ist dies beispielsweise am Gleichbereich G6, der in seiner Zielposition (Byte 43 bis Byte 47) dort liegt, wo der Gleichbereich G7 im Ursprungsspeicherinhalt angeordnet ist. Die Problematik ist auch am Neubereich N3 zu erkennen, der, wenn er nach Verschieben des Gleichbereichs G5 geschrieben wird, die Daten des Gleichbereichs G6 in dessen Position im Ursprungsspeicherinhalt überschreibt. Ein sequentielles Schreiben der Gleichbereiche sowie der Neubereiche in ihrer Reihenfolge im Zielspeicherinhalt ist daher ebenso wenig zweckmäßig wie ein sequentielles Schreiben der Gleichbereiche und ein anschließendes sequentielles Schreiben der Neubereiche.It can be seen that sequentially moving the DC regions G1 to G8 and writing the new regions N1 to N3, respectively, in the order in which the regions in the target memory contents 10b would cause memory contents to be overwritten before they can be moved. This can be seen, for example, at the DC region G6, which lies in its target position (byte 43 to byte 47) where the DC region G7 is arranged in the original memory content. The problem can also be seen on the new area N3, which, if it is written after moving the DC area G5, overwrites the data of the DC area G6 in its position in the original memory content. A sequential writing of the DC regions as well as the new regions in their order in the target memory content is therefore just as impractical as a sequential writing of the DC regions and a subsequent sequential writing of the new regions.

Im Folgenden werden zwei Verfahren zur Lösung des oben dargelegten Problems als Ausführungsbeispiele erläutert, wobei das erste Verfahren in zwei Varianten, einer Variante A und einer Variante B, dargestellt wird.in the Following are two methods for solving the above problem as exemplary embodiments explains wherein the first method in two variants, a variant A and a variant B, is shown.

Das erste Verfahren zeichnet sich durch eine Anweisungsliste aus, in der Anweisungen zum Kopieren von Speicherblöcken, zum Einfügen von Speicherblöcken und/oder zum Löschen von Speicherblöcken vorgesehen sind, wobei diese Anweisungsliste derart sortiert wird, dass die oben dargelegte Problematik, dass ein Speicherbereich überschrieben wird, bevor er gelesen werden kann, vermieden wird.The first method is characterized by a statement list, in the instructions for copying memory blocks, inserting memory blocks, and / or to delete of memory blocks are provided, this instruction list being sorted in such a way that that the issues outlined above overwrite a memory area will be avoided before it can be read.

Die erste Variante A dieses ersten Verfahrens wird anhand der 2 bis 7b erläutert. Die Variante A weist drei Verfahrensabschnitte auf, wobei der erste Verfahrensabschnitt, dargestellt in 2, der Erzeugung einer Anweisungsliste dient, der zweite Verfahrensabschnitt, dargestellt in der 4, die Umsortierung dieser Anweisungsliste verdeutlicht und der dritte Verfahrensabschnitt, dargestellt in 6, die Abarbeitung der mittels der ersten beiden Verfahrensabschnitte erzeugten Anweisungsliste durch ein Datenverarbeitungssystem und damit die eigentliche Aktualisierung des Datenspeichers zum Inhalt hat.The first variant A of this first method is based on the 2 to 7b explained. Variant A has three process sections, the first section of the method, shown in FIG 2 , which serves to generate an instruction list, the second method section, presented in the 4 , the reorganization of this instruction list clarifies and the third stage of the procedure, presented in 6 , which has the processing of the instruction list generated by the first two method sections by a data processing system and thus the actual updating of the data memory to the content.

In 2 ist der erste Verfahrensabschnitt des Verfahrens gemäß Variante A dargestellt. Dieser erste Verfahrensabschnitt wird von einem Datenverarbeitungssystem durchgeführt, welches Informationen über den Ursprungsspeicherinhalt einerseits und den Zielspeicherinhalt andererseits hat. Nach dem Start 100 dieses Verfahrensabschnitts werden in einem ersten Verfahrensschritt 102 Datensatzvariablen DU und DZ jeweils auf den ersten Datensatz des Ursprungsspeicherinhalts bzw. des Zielspeicherinhalts gesetzt. Anschließend wird in Entscheidungsschritten 104, 106, 108, 110 ein Vergleich der Datensatzvariablen DU und DZ bzw. der eindeutigen Identifikationsschlüssel ID(DU), ID(DZ) durchgeführt. Dabei wird das Dateiende als Pseudo-Datensatz geführt, indem dem Dateiende ein spezieller Identifikationsschlüssel zugeordnet ist, der von allen anderen Identifikationsschlüsseln verschieden ist, womit die Entscheidungsschritte 104, 106 und 108 alle nicht erfüllt sind. Zusätzlich geprüft wird nach dem Entscheidungsschritt 108 noch, ob die Datensatzvariable DU, nicht aber die Datensatzvariable DZ auf den letzten Datensatz gesetzt ist (dann Einfügeanweisungen für die verbleibenden Elemente im Zielspeicher) bzw. ob DZ, nicht aber DU auf den letzten Datensatz gesetzt ist (dann Löschanweisungen für die verbleibenden Elemente im Ursprungsspeicher) mit jeweils anschließendem Ende 126.In 2 the first part of the method according to variant A is shown. This first process section is performed by a data processing system which has information about the original memory content on the one hand and the destination memory content on the other hand. After the start 100 This process section will be in a first step 102 Dataset variables D U and D Z are respectively set to the first record of the original memory content and the destination memory contents. Subsequently, in decision-making steps 104 . 106 . 108 . 110 a comparison of the data set variables D U and D Z or the unique identification key ID (D U ), ID (D Z ) performed. In this case, the file end is performed as a pseudo-record by the file end is assigned a special identification key that is different from all other identification keys, so the decision steps 104 . 106 and 108 all are not fulfilled. An additional check is made after the decision step 108 even if the data set variable D U, but not the record variable D Z to the last record is set (then insert statements for the remaining elements in the destination memory) or if D Z, but not D U (is set to the last record then delete instructions for the remaining elements in the original memory), each with a subsequent end 126 ,

Beim ersten Entscheidungsschritt 104 wird für den Fall, dass der Identifikationsschlüssel des Datensatzes in der Datensatzvariable DU kleiner ist als der Identifikationsschlüssel des Datensatzes in der Datensatzvariable DZ, im Verfahrensschritt 112 eine Löschanweisung bezogen auf den Datensatz DU in die Anweisungsliste eingefügt. Anschließend wird die Datensatzvariable DU in einem Verfahrensschritt 114 auf den im Ursprungsspeicherinhalt nächsten Datensatz gesetzt. Der Fall, dass DU kleiner DZ ist, kann nur auftreten, wenn im Ursprungsspeicherinhalt ein Datensatz vorhanden ist, der im Zielspeicherinhalt weder identisch, noch inhaltlich verändert vorgesehen ist.At the first decision step 104 is in the event that the identification key of the record in the data set variable D U is smaller than the identification key of the record in the data set variable D Z , in the process step 112 an erasure instruction relating to the record D U inserted in the statement list. Subsequently, the data set variable D U is in a process step 114 set to the next record in the source memory contents. The case that D U is smaller than D Z can only occur if there is a data record in the original memory contents that is not intended to be identical or modified in the target memory content.

Durch den Entscheidungsschritt 106 wird für den Fall, dass der Identifikationsschlüssel des Datensatzes DU größer ist als der Identifikationsschlüssel des Datensatzes DZ, bewirkt, dass in einem Verfahrensschritt 116 eine neue Einfügeanweisung bezüglich des Datensatzes DZ in die Anweisungsliste aufgenommen wird und in einem Verfahrensschritt 118 DZ auf den nächsten Datensatz im Zielspeicherinhalt gesetzt wird. Die Ausführung der Verfahrensschritte 116, 118 tritt nur ein, wenn im Zielspeicherinhalt ein Datensatz vorhanden ist, der im Ursprungsspeicherinhalt weder identisch, noch inhaltlich verändert vorgesehen ist.Through the decision step 106 is in the event that the identification key of the record D U is greater than the identification key of the record D Z , causes in one step 116 a new insertion instruction is added to the data set D Z in the statement list and in a procedural step 118 D Z is set to the next record in the destination memory content. The execution of the process steps 116 . 118 only occurs if there is a data record in the target memory content that is neither identical nor changed in content in the original memory contents.

Durch die Entscheidungsschritte 108 und 110 wird bewirkt, dass für den Fall, dass die Identifikationsschlüssel von DU und DZ identisch sind und der Inhalt des Datensatzes DU vom Inhalt des Datensatzes DZ abweicht, in einem Verfahrensschritt 120 eine Modifikationsanweisung bezüglich der Modifikation von DU nach DZ in die Anweisungsliste aufgenommen wird und in einem Verfahrensschritt 122 sowohl DU als auch DZ auf den jeweils nächsten Datensatz im Ursprungsspeicherinhalt bzw. Zielspeicherinhalt gesetzt werden. Für den Fall, dass die Identifikationsschlüssel von DU und DZ identisch sind und die Inhalte der betreffenden Datensätze ebenfalls identisch sind, wird keine neue Anweisung in die Anweisungsliste eingefügt, aber im Verfahrensschritt 122 werden DZ und DU auf den jeweiligen nächsten Datensatz im Zielspeicherinhalt bzw. Ursprungsspeicherinhalt gesetzt. In einem Entscheidungsschritt 124 wird geprüft, ob DU und DZ die jeweils letzten Datensätze des Ursprungsspeicherinhalts 10a bzw. des Zielspeicherinhalts 10b darstellen. Wenn dies der Fall ist, wird der in 2 dargestellte erste Verfahrensabschnitt beendet. Wenn dies nicht der Fall ist, wird erneut mit der Abarbeitung der Entscheidungsschritte 104, 106, 108, 110 begonnen.Through the decision steps 108 and 110 is effected in the event that the identification key of D U and D Z are identical and the content of the data set D U from the content of the data set D Z , in one step 120 a modification instruction regarding the modification of D U to D Z is included in the instruction list and in a method step 122 Both D U and D Z are set to the respective next record in the original memory content or destination memory content. In the event that the identification keys of D U and D Z are identical and the contents of the relevant data records are also identical, no new instruction is inserted in the statement list, but in the process step 122 D Z and D U are set to the respective next record in the destination memory contents or original memory contents. In a decision step 124 It is checked whether D U and D Z the last records of the original memory contents 10a or the destination memory contents 10b represent. If this is the case, the in 2 shown completed first process section. If this is not the case, re-processing the decision steps 104 . 106 . 108 . 110 began.

Die durch den in 2 dargestellten ersten Verfahrensabschnitt erzeugte Anweisungsliste ist bezüglich des in 1a und 1b dargestellten Ursprungsspeicherinhalts 10a und Zielspeicherinhalts 10b in der 3 dargestellt. Das Zustandekommen dieser Anweisungsliste wird im Folgenden erläutert.The by the in 2 The instruction list generated in the first section of the method shown in FIG 1a and 1b illustrated source memory content 10a and destination memory contents 10b in the 3 shown. The occurrence of this statement list is explained below.

Nach dem Start 100 des Verfahrens wird im Verfahrensschritt 102 DU auf den Datensatz A des Ursprungsspeicherinhalts 10a und DZ auf den Datensatz A des Zielspeicherinhalts 10b gesetzt. Die Bedingung der Entscheidungsschritte 104 und 106 ist jeweils nicht erfüllt, da die Identifikationsschlüssel von DU und DZ jeweils A und damit identisch sind. Die Identitäts-Bedingungen der Entscheidungsschritte 108 und 110 sind erfüllt. Als Konsequenz werden im Verfahrensschritt 122 DU und DZ jeweils auf den nächsten Datensatz gesetzt, so dass DU den Datensatz B und DZ den Datensatz C enthält. Da dies jeweils noch nicht die letzten Datensätze der Speicherinhalte 10a, 10b sind, wird im Entscheidungsschritt 124 ein Rücksprung vor die Entscheidungsschritte 104, 106, 108, 110 bewirkt. Da die Bedingung des Entscheidungsschrittes 104 erfüllt ist, wird im Schritt 112 eine neue Anweisung 140 in die Anweisungsliste eingefügt. Die Anweisungsliste sieht für jede Anweisung fünf Parameter vor. Diese Parameter umfassen die Zahl MByte der zu löschenden Speicherzellen, die Zahl PByte der hinzuzufügenden Speicherstellen, die Speicherposition Pos, die den Ort der Änderung beschreibt, und die Daten, die im Fall einer Einfügeanweisung oder einer Modifika tionsanweisung einzufügen sind. Der fünfte Parameter Summenwert wird erst nach Abschluss des Verfahrensabschnitts gemäß 2 durchgeführt und wird später erläutert.After the start 100 of the process is in the process step 102 D U to the record A of the original memory content 10a and D Z to the record A of the destination memory contents 10b set. The condition of the decision steps 104 and 106 is not met, since the identification key of D U and D Z are each A and thus identical. The identity conditions of the decision steps 108 and 110 are fulfilled. As a consequence, in the process step 122 D U and D Z are each set to the next record, so that D U the record B and D Z contains the record C. Since this is not yet the last records of memory contents 10a . 10b are in the decision step 124 a return to the decision steps 104 . 106 . 108 . 110 causes. As the condition of the decision step 104 is fulfilled, is in the step 112 a new instruction 140 inserted in the instruction list. The instruction list provides five parameters for each instruction. These parameters include the number MB of memory cells to be erased, the number PB of the memory locations to be added, the memory position Pos describing the location of the change, and the data to be inserted in the case of an insert instruction or a modification instruction. The fifth parameter summation value will only be valid after completion of the procedure section 2 and will be explained later.

Im Falle der ersten Anweisung 140, die in die Anweisungsliste eingefügt wird, wird MByte auf 5 gesetzt, da der Datensatz B, der im Zielspeicherinhalt 10b nicht mehr enthalten ist, eine Länge von fünf Byte aufweist. PByte wird auf 0 gesetzt, da es sich bei der ersten Anweisung 140 um eine Löschanweisung handelt und dementsprechend keine Daten im Zuge der Ausführung dieser Anweisung 140 hinzugefügt werden sollen. Die Speicherposition Pos wird auf 6 gesetzt, was sich aus der ersten Speicherzelle des Datensatzes C ergibt, der zum Zeitpunkt der Einfügung der ersten Anweisung 140 Inhalt von DZ ist. Der ersten Anweisung 140 sind keine Daten zugeordnet, da es sich, wie schon erwähnt, um eine Löschanweisung handelt. In ähnlicher Art und Weise wie die Anweisung 140 wird beim nächsten Durchgang durch die Entscheidungsschritte 104, 106, 108, 110 mit den Datensatzvariablen DU gleich D und DZ gleich E eine zweite Anweisung 142 in die Anweisungsliste eingefügt, welche bei abweichenden Werten MByte und Pos ansonsten mit der ersten Anweisung 140 übereinstimmt.In the case of the first instruction 140 , which is inserted into the statement list, MByte is set to 5 because the record B, which is in the destination memory contents 10b is no longer contained, has a length of five bytes. PByte is set to 0, as it is at the first statement 140 is a deletion statement and, accordingly, no data in the course of the execution of this instruction 140 should be added. The memory position Pos is set to 6, which results from the first memory cell of the record C, at the time of insertion of the first instruction 140 Content of D Z is. The first instruction 140 There is no data associated with it because, as already mentioned, it is an erasure instruction. In a similar way to the statement 140 will be on the next pass through the decision steps 104 . 106 . 108 . 110 with the data set variables D U equal to D and D Z equal to E a second instruction 142 inserted in the statement list, which with different values MByte and Pos otherwise with the first statement 140 matches.

Wenn im weiteren Verlauf des Verfahrens DU auf F gesetzt ist und DZ auf F gesetzt ist, wird im Verfahrensschritt 120 eine Modifikationsanweisung 144 in die Anweisungsliste eingefügt, da der Datensatz F des Ursprungsspeicherinhalts 10a und der Datensatz F des Zielspeicherinhalts 10b sich trotz identischer Identifikationsschlüssel inhaltlich voneinander unterscheiden. Die Anweisung 144 legt die Anzahl der zu löschenden Bytes MByte entsprechend der Größe des Datensatzes F im Ursprungsspeicherinhalt 10a auf 6 fest. Da die Größe des Datensatzes F, also des Neubereichs N1, im Zielspeicherinhalt drei Byte beträgt, wird die Anzahl der einzufügenden Bytes für PByte auf 3 gesetzt. Die Speicherposition ergibt sich im Falle einer Modifikationsanweisung, wie der Anweisung 144, aus der ersten Speicherzelle des Datensatzes im Zielspeicherinhalt plus der Größe des neuen Datensatzes, was im vorliegenden Fall bei einer ersten Speicherzelle des Datensatzes F von siebzehn und einer Größe des einzufügenden Datensatzes F von drei einen Wert für Pos von 20 ergibt. Die Anweisung erhält darüber hinaus die einzufügenden Daten des Datensatzes F, also des Neubereichs N1.If in the further course of the method D U is set to F and D Z is set to F, in the method step 120 a modification instruction 144 inserted into the instruction list because the record F of the original memory contents 10a and the record F of the destination memory contents 10b differ in content from each other despite identical identification key. The instruction 144 sets the number of bytes MByte to be deleted according to the size of the data set F in the original memory contents 10a stuck to 6. Since the size of the data set F, ie the new range N1, in the destination memory content is three bytes, the number of bytes to be inserted is set to 3 for the PByte. The storage position results in the case of a modification instruction such as the instruction 144 , from the first memory cell of the data set in the target memory content plus the size of the new data set, which in the present case results in a value of 20 for a first memory cell of the data set F of seventeen and a size of the data set F to be inserted. The instruction also receives the data to be inserted of the data set F, that is, the new range N1.

Die nächste Anweisung wird in die Anweisungsliste eingefügt, wenn DU den Datensatz J und DZ den Datensatz I enthält. Da damit der Identifikationsschlüssel von DU größer ist als der Identifikationsschlüssel von DZ, wird im Verfahrensschritt 116 eine Einfügeanweisung 146 in die Anweisungsliste eingefügt. Als Einfügeanweisung weist diese Anweisung 146 als Anzahl der zu löschenden Bytes MByte 0 auf. Die Anzahl der einzufügenden Bytes PByte ergibt sich aus der Größe des Datensatzes I bzw. des Neubereichs N2, welche 3 beträgt. Wie auch bei der Modifikationsanweisung 144 wird bei der Einfügeanweisung 146 der Wert Pos aus der Startposition des Datensatzes J bzw. des Neubereichs N2 plus der Länge des Datensatzes J bzw. des Neubereichs N2 berechnet. Die Speicherposition Pos beträgt daher 23 plus 3 gleich 26. Der Einfügeanweisung 146 sind darüber hinaus die einzufügenden Daten des Datensatzes I angefügt, also die Daten N2. Beim weiteren Abarbeiten des Ursprungsspeicherinhalts 10a und des Zielspeicherinhalts 10b im Zuge der Durchführung des ersten Verfahrensabschnitts, der in 2 dargestellt ist, werden noch insgesamt drei weitere Anweisungen 148, 150, 152 in die Anweisungsliste aufgenommen, wobei es sich bei der Anweisung 148 um eine Einfügeanweisung bezüglich des Neubereichs N3 und bei den Anweisungen 150, 152 um Löschanweisungen handelt.The next statement is added to the statement list if D U contains the record J and D Z contains the record I. Since thus the identification key of D U is greater than the identification key of D Z , is in the process step 116 an insertion instruction 146 inserted in the instruction list. As an insert statement, this statement points 146 as the number of bytes to be deleted MByte 0. The number of bytes to be inserted PByte results from the size of the record I or the new range N2, which is 3. As with the Mo difikationsanweisung 144 is at the insertion instruction 146 the value Pos is calculated from the start position of the data record J or the new range N2 plus the length of the data record J or the new range N2. The memory position Pos is therefore 23 plus 3 equals 26. The insertion instruction 146 In addition, the data to be inserted of the data set I are added, that is, the data N2. Upon further processing of the original memory contents 10a and the destination memory contents 10b in the course of the implementation of the first stage of the procedure 2 There are three more instructions left 148 . 150 . 152 added to the statement list, which is the statement 148 an insertion instruction regarding the new area N3 and the instructions 150 . 152 to delete instructions.

Die 3 zeigt also eine Anweisungsliste mit insgesamt sieben Anweisungen 140, 142, 144, 146, 148, 150, 152, die die erforderlichen Änderungen, um vom Ursprungsspeicherinhalt 10a zum Zielspeicherinhalt 10b zu gelangen, eindeutig beschreibt. Jeder Anweisung wird zusätzlich zu den schon erläuterten Parametern ein fünfter Parameter Summenwert zugeordnet, der sich aus der Summe der PByte-Werte der betreffenden Anweisung und aller vorangegangenen Anweisungen abzüglich der Summe der Mbyte-Werte der Anweisung und aller vorangegangenen Anweisungen zusammensetzt. Im vorliegenden Fall wird diese Summenwert-Berechnung in einem in den Figuren nicht abgebildeten Verfahrensschritt durchgeführt, der sich an den in 2 dargestellten ersten Verfahrensabschnitt anschließt. Bei nicht dargestellten Ausführungsformen kann es aber auch zweckmäßig sein, den Summenwert der Anweisungen während der Erzeugung der Anweisungsliste unmittelbar zu berechnen. Inhaltlich stellt der Parameter Summenwert einen Verschiebungswert zwischen Ursprungsspeicherinhalt und Zielspeicherinhalt dar, der für einen evtl. im Zuge der jeweils nachfolgenden Anweisung zu verschiebenden Gleichbereich eine Aussage darüber trifft, ob dieser Gleichbereich ein positiver oder ein negativer Gleichbereich ist.The 3 So shows a statement list with a total of seven statements 140 . 142 . 144 . 146 . 148 . 150 . 152 that made the necessary changes to the source memory content 10a to the destination memory content 10b to arrive clearly describes. Each instruction is assigned, in addition to the parameters already explained, a fifth parameter sum value, which is composed of the sum of the PByte values of the relevant instruction and of all the preceding instructions minus the sum of the Mbyte values of the instruction and of all the preceding instructions. In the present case, this summation value calculation is performed in a process step not shown in the figures, which corresponds to the in 2 followed by the first method section. In embodiments not shown, it may also be expedient to calculate the summation value of the instructions during the generation of the statement list directly. In terms of content, the Sum value parameter represents a shift value between the original memory content and the target memory content, which makes a statement as to whether this DC range is a positive or a negative DC range for a DC range to be shifted in the course of each successive instruction.

In einer erweiterten, nicht dargestellten Ausführungsform wird nach der Ausführung des Verfahrensabschnitts gemäß 2 ein weiterer Verfahrensabschnitt eingefügt, in dem die Indexadressen der Indextabellen aktualisiert und ergänzt werden bzw. diesbezügliche Anweisungen der Anweisungsliste angefügt werden. Dabei werden nur für solche auf den Zielspeicherinhalt bezogene Indextabelleneinträge Anweisungen erzeugt, die sich nicht implizit aus den Aktualisierungsanwei sungen der 3 ergeben. Diese impliziten Aktualisierungsinformationen bezogen auf die Indextabelle sind bei den Indextabelleneinträgen T1, T2, T4 mit den Indexadressen AT1, AT2 bzw. AT4 gegeben. Während die Indextabelleneinträge T1, T4 aufgrund des Entfallens der zugehörigen Datensätze B und O entfallen, ergibt sich die Änderung der Indexadresse AT2 implizit aus der Lageveränderung des Gleichbereichs G4.In an expanded, not shown embodiment according to the execution of the method section according to 2 a further section of the procedure is inserted in which the index addresses of the index tables are updated and supplemented or instructions relating thereto are added to the statement list. In this case, statements are generated only for those index table entries relating to the destination memory content that are not implicitly derived from the update instructions of the 3 result. These implicit update information related to the index table are given at the index table entries T1, T2, T4 with the index addresses A T1 , A T2 and A T4, respectively. While the index table entries T1, T4 are omitted due to the omission of the associated data records B and O, the change of the index address A T2 implicitly results from the change in position of the DC area G4.

In die Anweisungsliste werden daher bei dieser nicht dargestellten Ausführungsform lediglich für die Indextabelleneinträge T3 und T5 spezielle Anweisungen aufgenommen. Die entsprechenden Anweisungen umfassen die korrespondierenden neuen Indexadressen A'T3 und A'T5.Therefore, in the instruction list, specific instructions are only included for the index table entries T3 and T5 in this embodiment, which is not shown. The corresponding instructions include the corresponding new index addresses A ' T3 and A' T5 .

Ausgehend von der Anweisungsliste der 3 wird in einem zweiten Verfahrensabschnitt, der als Ablaufdiagramm in der 4 dargestellt ist, eine Veränderung der Anweisungsliste durchgeführt. Nach dem Start 160 dieses Verfahrensabschnitts wird in einem ersten Verfahrensschritt 162 die erste Anweisung der Anweisungsliste einer Anweisungsvariablen AktAnw1 zugeordnet. In einem darauf folgenden Entscheidungsschritt 164 wird geprüft, ob ein Abschlussflag gesetzt ist. Wenn dies nicht der Fall ist, wird in einem Verfahrensschritt 166 die Anweisungsvariable AktAnw1 auf die erste Anweisung ab der Anweisung AktAnw1 gesetzt, die einen Parameter Summenwert größer 0 aufweist. Wenn eine solche Anweisung nicht existiert, wird das Verfahren beendet. Ansonsten wird mit dieser neu gesetzten Anweisung AktAnw1 mit dem Verfahrensschritt 168 fortgefahren, in dem die erste Anweisung nach der Anweisung AktAnw1 gesucht wird, die einen negativen Parameter Summenwert oder einen Parameter Summenwert von 0 aufweist. Diese Anweisung wird einer zweiten Anweisungsvariablen AktAnw2 zugeordnet. Falls keine derartige Anweisung gefunden werden kann, wird das Abschlussflag gesetzt. Starting from the statement list of the 3 is in a second process section, as a flowchart in the 4 is shown, a change in the instruction list is performed. After the start 160 This process section is in a first step 162 the first instruction of the statement list is assigned to a statement variable AktAnw1. In a subsequent decision step 164 it is checked whether a termination flag is set. If this is not the case, in one process step 166 the instruction variable AktAnw1 is set to the first instruction as of the instruction AktAnw1, which has a parameter total value greater than 0. If such an instruction does not exist, the procedure is terminated. Otherwise, with this newly set statement AktAnw1 with the procedural step 168 The first statement is searched for the statement AktAnw1, which has a negative parameter Sum value or a parameter Sum value of 0. This instruction is assigned to a second instruction variable, AktAnw2. If no such statement can be found, the termination flag is set.

In einem darauffolgenden Entscheidungsschritt 170 wird geprüft, ob das Abschlussflag gesetzt ist. Wenn dies nicht der Fall ist, wird in einem darauffolgenden Entscheidungsschritt 172 geprüft, ob der Parameter Summenwert der Anweisung AktAnw2 kleiner 0 ist. Wenn dies nicht der Fall ist, AktAnw2 also gleich 0 ist, werden in einem Verfahrenschritt 174 die Anweisungen AktAnw1 bis AktAnw2 in ihrer Reihenfolge in der Anweisungsliste umgedreht und anschließend in einem Verfahrensschritt 176 AktAnw1 auf die auf AktAnw2 folgende Anweisung gesetzt. Wenn im Entscheidungsschritt 172 ermittelt wird, dass AktAnw2 kleiner 0 ist, wird die Anweisung AktAnw2 in einem Verfahrensschritt 178 in zwei Anweisungen AktAnw2a und AktAnw2b getrennt, wobei bezüglich der ersten dieser neuen Anweisung AktAnw2a der Parameter Mbyte auf den Parameter Summenwert der Anweisung AktAnw2 plus den PByte-Wert von AktAnw2 minus den Mbyte-Wert von AktAnw2 gesetzt wird. Der PByte-Wert von AktAnw2a wird auf 0 gesetzt und der Pos-Wert von AktAnw2a wird auf den Pos-Wert von AktAnw2 gesetzt. Bezüglich der zweiten neuen Anweisung AktAnw2b werden der Mbyte-Wert von AktAnw2b auf den MByte-Wert von AktAnw2 abzüglich des MByte-Werts von AktAnw2a gesetzt, der PByte-Wert von AktAnw2b auf den PByte-Wert von AktAnw2 gesetzt, der Pos-Wert von AktAnw2b auf den Pos-Wert von AktAnw2 gesetzt und die eventuell einzufügenden Daten von AktAnw2 zur neuen Anweisung AktAnw2b übernommen. Anschließend wird in einem Verfahrensschritt 179 die Reihenfolge der Anweisungen AktAnw1 bis AktAnw2a in der Anweisungsliste umgedreht, worauf wieder der Verfahrensschritt 176 folgt, in welchem AktAnw1 auf die nächste auf AktAnw2 bzw. nach der Aufteilung von AktAnw2 die nächste auf AktAnw2b folgende Anweisung gesetzt wird.In a subsequent decision step 170 it is checked whether the termination flag is set. If this is not the case, in a subsequent decision step 172 Checks whether the sum value parameter of the AktAnw2 instruction is less than 0. If this is not the case, then AktAnw2 is equal to 0, are in one step 174 reverse the instructions AktAnw1 to AktAnw2 in their order in the statement list and then in one procedural step 176 AktAnw1 is set to the statement following AktAnw2. If in the decision step 172 If it is determined that AktAnw2 is less than 0, the instruction AktAnw2 becomes a procedural step 178 separated in two instructions AktAnw2a and AktAnw2b, with respect to the first of this new instruction AktAnw2a the parameter Mbyte is set to the parameter sum value of the instruction AktAnw2 plus the PByte value of AktAnw2 minus the Mbyte value of AktAnw2. The PByte value of AktAnw2a is set to 0 and the Pos value of AktAnw2a is set to the Pos value of AktAnw2. Regarding the second new instruction AktAnw2b set the Mbyte value of AktAnw2b to the MByte value of AktAnw2 minus the MByte value of AktAnw2a, set the PByte value of AktAnw2b to the PByte value of AktAnw2, the Pos value of AktAnw2b to the Pos value set by AktAnw2 and the possibly inserted data from AktAnw2 to the new instruction AktAnw2b adopted. Subsequently, in a process step 179 reversed the order of the instructions AktAnw1 to AktAnw2a in the statement list, whereupon the procedural step 176 follows in which AktAnw1 is set to the next on AktAnw2 or after the division of AktAnw2 the next following AktAnw2b statement.

In beiden Fällen des Entscheidungsschritts 172 wird anschließend wieder zurückgesprungen und mit dem Entscheidungsschritt 164 fortgefahren. Wenn dabei ermittelt wird, dass das Abschlussflag im Verfahrensschritt 176 gesetzt wurde, ist dieser Verfahrensabschnitt beendet (Schritt 184). Wenn nach der Zuweisung von AktAnw1 und AktAnw2 in den Verfahrensschritten 166, 168 im Entscheidungsschritt 170 ermittelt wird, dass das Abschlussflag gesetzt ist, so wird im Schritt 180 eine neue letzte Anweisung in die Anweisungsliste eingefügt, wobei der PByte-Wert dieser neuen Anweisung 0 beträgt, der MByte-Wert für diese neue Anweisung auf den Summenwert von AktAnw2 gesetzt wird und der Pos-Wert auf die letzte Speicherzelle des Zielspeicherinhalts plus ein Byte gesetzt wird. In einem darauffolgenden Verfahrensschritt 182 wird die Reihenfolge der Anweisungen AktAnw1 bis AktAnw2 umgedreht, wonach dieser Verfahrensabschnitt wiederum abgeschlossen ist (Schritt 184).In both cases of the decision step 172 is then jumped back and with the decision step 164 continued. If it is determined that the termination flag in the process step 176 has been set, this process section is completed (step 184 ). If after the assignment of AktAnw1 and AktAnw2 in the process steps 166 . 168 in the decision step 170 it is determined that the termination flag is set, then in step 180 a new last instruction is inserted into the instruction list, where the PByte value of this new instruction is 0, the MByte value for this new instruction is set to the sum value of AktAnw2, and the Pos value is set to the last memory cell of the destination memory contents plus one byte becomes. In a subsequent process step 182 the order of the instructions AktAnw1 to AktAnw2 is reversed, after which this section of the procedure is again completed (step 184 ).

Die beschriebenen Verfahrensschritte werden im Folgenden inhaltlich erläutert. Der Verfahrensabschnitt dient der Identifikation von negativen Anweisungsblöcken, beginnend mit der Anweisung AktAnw1 und endend mit der Anweisung AktAnw2 bzw. AktAnw2a, bei denen der Parameter Summenwert positiv ist. Ein solcher positiver Summenwert sagt aus, dass Schreibvorgänge in Bereiche des Datenspeichers durchzuführen sind, deren Daten noch nicht gelesen wurden. Die Anweisungen der durch die Anweisungen AktAnw1 und AktAnw2 begrenzten Anweisungsblöcke könnten also bei ihrer Durchführung zum Verlust von Daten führen, die im weiteren Verlauf der Abarbeitung der Anweisungsliste noch gebraucht würden. Dies wird vermieden, indem die Anweisungen in diesen Anweisungsblöcken bezüglich ihrer Reihenfolge umgedreht werden. Die Identifikation dieser Anweisungsblöcke wird in den Verfahrensschritten 166, 168 durchgeführt. Im Entscheidungsschritt 170 wird bewertet, ob der von AktAnw1 und AktAnw2 begrenzte Block sich bis zum Ende der Anweisungsliste zieht. Wenn dies der Fall ist, wird im Verfahrensschritt 180 eine neue Löschanweisung an das Ende der Anweisungsliste gesetzt, mit welcher bei der späteren Ausführung der Anweisungsliste erreicht wird, dass ein Gleichbereich, der hinter dem letzten von AktAnw2 betroffenen Speicherbereich angeordnet ist, verschoben wird, da das Verschieben von Gleichbereichen bei dieser ersten Variante A im Zuge der Ausführung von Einfüge-, Lösch- und Modifikationsanweisungen durchgeführt wird, wie im weiteren beschrieben und in 6 dargestellt. Im Verfahrensschritt 182 erfolgt für den identifizierten Anweisungsblock zwischen AktAnw1 und AktAnw2 die bereits erwähnte Reihenfolgenumkehr. Wenn im Verfahrensschritt 170 jedoch ermittelt wird, dass der Block mit positivem Summenwert sich nicht bis zum Ende der Anweisungsliste erstreckt, wird im Entscheidungsschritt 172 unterschieden, ob die letzte Anweisung des Anweisungsblocks AktAnw2 sich bis in einen Bereich mit negativem Summenwert erstreckt (AktAnw2 kleiner 0) oder bündig endet (AktAnw2 gleich 0). Für den ersten Fall wird AktAnw2 in zwei Anweisungen aufgeteilt, von der die erste einen Summenwert von 0 aufweist, also bündig endet. Anschließend wird in den Verfahrensschritten 174 bzw. 179 eine Reihenfolgenumkehr des identifizierten Anweisungsblocks durchgeführt, wobei diese Reihenfolgenumkehr die Anweisungen AktAnw1 bis AktAnw2 bzw. AktAnw1 bis AktAnw2a umfasst.The described method steps are explained below in terms of content. The procedure section is used to identify negative statement blocks, starting with the statement AktAnw1 and ending with the statement AktAnw2 or AktAnw2a, in which the parameter Sum value is positive. Such a positive sum value indicates that writes are to be made to areas of the data store whose data has not yet been read. The instructions of the statement blocks bounded by the instructions AktAnw1 and AktAnw2 could thus lead to the loss of data that would still be needed in the further course of the processing of the statement list. This is avoided by reversing the instructions in these instruction blocks in order. The identification of these instruction blocks is in the process steps 166 . 168 carried out. In the decision step 170 it is evaluated whether the block bounded by AktAnw1 and AktAnw2 moves to the end of the statement list. If this is the case, in the process step 180 a new deletion statement is placed at the end of the statement list, with which the later execution of the statement list results in a DC area located behind the last memory area affected by AktAnw2 being moved, since the shifting of DC areas in this first variant A is postponed During the execution of insertion, deletion and modification instructions is performed, as described below and in 6 shown. In the process step 182 For the identified statement block between AktAnw1 and AktAnw2, the already mentioned order reversal takes place. If in the process step 170 however, it is determined that the positive sum block does not extend to the end of the instruction list, in the decision step 172 distinguish whether the last statement of the statement block AktAnw2 extends into an area with a negative total value (AktAnw2 less than 0) or ends flush (AktAnw2 = 0). For the first case, AktAnw2 is split into two statements, the first of which has a total value of 0, meaning that it ends flush. Subsequently, in the process steps 174 respectively. 179 an order reversal of the identified instruction block is performed, this order reversal comprising the instructions AktAnw1 to AktAnw2 or AktAnw1 to AktAnw2a.

Im Folgenden wird die Anwendung des beschriebenen Verfahrensabschnitts der 4 auf die durch den ersten Verfahrensabschnitt der 2 erstellte Anweisungsliste der 3 erläutert. Zu diesem Zweck werden die Anweisungen jeweils um einen sechsten Parameter Richtung ergänzt, der zu Beginn des in 4 dargestellten Verfahrens für jede der Anweisungen auf Vorwärts gesetzt wird. Ausgehend von der in 3 dargestellten Anweisungsliste beginnt der zweite Verfahrensabschnitt mit dem Verfahrensschritt 162, in dem AktAnw1 auf die erste Anweisung der Anweisungsliste, also die Anweisung 140, gesetzt wird. Da das Abschlussflag nicht gesetzt ist, wird anschließend der Verfahrensschritt 166 durchgeführt, in dem AktAnw1 auf die erste Anweisung ab AktAnw1 gesetzt wird, die einen positiven Summenwert aufweist. Wenn AktAnw1 schon vorher eine Anweisung mit positivem Summenwert zum Inhalt hat, wird AktAnw1 nicht verändert. Im Falle der zugrundeliegenden Anweisungsliste ist diese nächste Anweisung mit positivem Parameter Summenwert die Anweisung 148, deren Summenwert 6 beträgt. Anschließend wird im Verfahrensschritt 168 die erste Anweisung nach Anweisung 148 gesucht, in der der Parameter Summenwert kleiner oder gleich 0 ist. Im vorliegenden Fall ist dies die Anweisung 152. Da eine solche Anweisung existiert, wird das Abschlussflag im Verfahrensschritt 168 nicht gesetzt. Im Entscheidungsschritt 172 wird geprüft, ob der Summenwert der AktAnw2, in diesem Fall also der Anweisung 152, kleiner 0 ist. Dies ist im vorliegenden Fall gegeben. Daher wird als nächstes der Verfahrensschritt 178 durchgeführt, in dem die Anweisung 152 in zwei Anweisungen 152a und 152b zerlegt wird. Der Mbyte-Wert der Anweisung 152a ist gleich dem Summenwert der Anweisung 152 plus dem PByte-Wert der Anweisung 152 abzüglich des Mbyte-Wertes der Anweisung 152, d.h. er beträgt –4+7=3. Der PByte-Wert der Anweisung 152a wird auf 0 gesetzt und der Pos-Wert entspricht dem Pos-Wert der Anweisung 152 und beträgt 51. Der Mbyte-Wert der Anweisung 152b ist gleich dem Mbyte-Wert der Anweisung 152 abzüglich des Mbyte-Wertes der Anweisung 152a, d.h. er beträgt 7–3=4. Der PByte-Wert der Anweisung 152b entspricht dem PByte-Wert der Anweisung 152 und beträgt 0. Der Pos-Wert der Anweisung 152b entspricht dem Pos-Wert der Anweisung 152 und beträgt 51. Die einzufügenden Daten der Anweisung 152a entsprechen den einzufügen den Daten der Anweisung 152. Da diese jedoch als Löschanweisung keine eigenen Daten aufweist, weist auch die Anweisung 152b keine Daten auf.In the following, the application of the described method section of 4 on through the first procedural section of the 2 created statement list of the 3 explained. For this purpose, the instructions are each supplemented by a sixth parameter direction, which at the beginning of the in 4 for each of the instructions is set to forward. Starting from the in 3 The second section of the procedure begins with the method step shown in the instruction list 162 , in which AktAnw1 refers to the first instruction of the statement list, that is, the statement 140 , is set. Since the completion flag is not set, then the process step 166 is performed, in which AktAnw1 is set to the first instruction starting from AktAnw1, which has a positive sum value. If AktAnw1 already contains a statement with a positive total, AktAnw1 will not be changed. In the case of the underlying statement list, this next statement with positive parameter sum value is the statement 148 whose sum value is 6. Subsequently, in the process step 168 the first statement after statement 148 searched in which the parameter Sum value is less than or equal to 0. In the present case this is the instruction 152 , Since such an instruction exists, the completion flag is in the process step 168 not set. In the decision step 172 It checks whether the sum value of the AktAnw2, in this case the statement 152 , less than 0. This is given in the present case. Therefore, next, the process step 178 performed in which the instruction 152 in two directions 152a and 152b is decomposed. The Mbyte value of the statement 152a is equal to the sum value of the instruction 152 plus the PByte value of the statement 152 minus the Mbyte value of the instruction 152 ie it is -4 + 7 = 3. The PByte value of the statement 152a is set to 0 and the pos value corresponds to the pos value of the instruction 152 and is 51. The Mbyte value of the instruction 152b is equal to the Mbyte value of the statement 152 minus the Mbyte value of the instruction 152a ie it is 7-3 = 4. The PByte value of the statement 152b corresponds to the PByte value of the instruction 152 and is 0. The pos value of the instruction 152b corresponds to the pos value of the instruction 152 and is 51. The data to be inserted in the instruction 152a correspond to the insertion of the data of the instruction 152 , However, as this does not have its own data as the deletion statement, the instruction also points 152b no data on.

Die Anweisungsliste, wie sie nach Abschluss des Schrittes 178 vorliegt, ist in der 5a dargestellt. Es ist zu erkennen, dass die Anweisung 152 nunmehr aufgegliedert ist in zwei getrennte Anweisungen. Bis zu diesem Zeitpunkt ist die Reihenfolge der Anweisungen unverändert. Nach Abschluss des Verfahrensschritts 178 wird der Verfahrensschritt 179 ausgeführt, in dem eine Reihenfolgenumkehr des ermittelten Anweisungsblocks 156, begrenzt durch die Anweisungen AktAnw1 (Anweisung 148) und AktAnw2a (Anweisung 152a), vorgesehen ist. Die diesem positiven Anweisungsblock 156 nicht zugeordneten Anweisungen bilden zwei negative Anweisungsblöcke 154, 158. Die Anweisungen 148, 150, 152a des positiven Anweisungsblocks 156 werden bezüglich ihrer Reihenfolge derart geändert, dass die Reihenfolge anschließend 152a, 150, 148 lautet. Der Parameter Richtung wird im Zuge dieser Reihenfolgenumkehr bei den betroffenen Anweisungen auf Rückwärts geändert. Die Tabelle der 5b zeigt die Anweisungsliste nach durchgeführter Reihenfolgenumkehr des Verfahrensschritts 179. Anschließend wird im Verfahrensschritt 176 AktAnw1 auf die nächste auf AktAnw2a folgende Anweisung gesetzt, wobei es sich in diesem Fall um die Anweisung 152b handelt. Anschließend wird im Entscheidungsschritt 164 wiederum geprüft, ob das Abschlussflag gesetzt ist, was wiederum nicht der Fall ist. Im Verfahrensschritt 166 wird die nächste Anweisung von der Anweisung AktAnw1 (Anweisung 152b) ermittelt, die einen positiven Summenwert aufweist. Da eine solche nicht existiert, wird die Umsortierung damit im Schritt 166 beendet.The instruction list, as it will after the step 178 is present in the 5a shown. It can be seen that the statement 152 now broken down into two separate instructions. Until this time, the order of the instructions is unchanged. After completion of the process step 178 becomes the process step 179 executed in which a sequence reversal of the determined statement block 156 , bounded by the instructions AktAnw1 (statement 148 ) and AktAnw2a (instruction 152a ), is provided. The this positive statement block 156 unassigned instructions form two negative instruction blocks 154 . 158 , The instructions 148 . 150 . 152a of the positive statement block 156 are changed in order so that the order subsequently 152a . 150 . 148 reads. The direction parameter is changed backwards for the orders in question as part of this order reversal. The table of 5b shows the instruction list after executed order reversal of the process step 179 , Subsequently, in the process step 176 AktAnw1 is set to the next statement following AktAnw2a, in this case the statement 152b is. Subsequently, in the decision step 164 again checked whether the termination flag is set, which again is not the case. In the process step 166 the next statement is taken from the statement AktAnw1 (statement 152b ), which has a positive sum value. Since such does not exist, the resorting is in step with it 166 completed.

5b zeigt die Anweisungsliste nach Abschluss des zweiten Verfahrensabschnitts gemäß 4. Der Parameter Summenwert ist in dieser Anweisungsliste den Anweisungen nicht mehr zugeordnet, da er im Folgenden nicht mehr gebraucht wird. 5b stellt somit die abschließende Anweisungsliste dar, die in diesem Zustand geeignet ist, von Datenverarbeitungsanlagen zur Aktualisierung eines zugeordneten Speichers verwendet zu werden. Sie kann beispielsweise über einen Datenträger oder eine drahtgebundene oder drahtlose Übertragungsverbindung an eine Datenverarbeitungsanlage übertragen werden. Die Anweisungsliste ist so aufgebaut, dass die Anweisungen ausgeführt werden können, bevor die ausführende Datenverarbeitungsanlage in Kenntnis aller Anweisungen ist. Die Datenverarbeitungsanlage braucht dementsprechend nur eine geringe Speicherkapazität zur Speicherung der Anweisungen. 5b shows the instruction list after completion of the second procedure section according to 4 , The sum value parameter is no longer assigned to the instructions in this statement list because it is no longer needed in the following. 5b thus represents the final instruction list, which in this state is suitable to be used by data processing equipment to update an associated memory. For example, it may be transmitted to a data processing system via a data carrier or a wired or wireless communication link. The instruction list is structured so that the instructions can be executed before the executing data processing system is aware of all statements. The data processing system accordingly requires only a small storage capacity for storing the instructions.

Die Verarbeitung einer Anweisungsliste, die gemäß dem Verfahren der 2 bis 5b hergestellt wurde, wird im Folgenden beschrieben und ist in 6 als Ablaufdiagramm gezeigt. Das betreffende Verfahren basiert auf einer sukzessiven Abarbeitung der Anweisungen der Anweisungsliste in der Reihenfolge ihres Auftretens in der Anweisungsliste. Abhängig vom Parameter Richtung der Anweisungen werden unterschiedliche Verfahrensschritte ausgeführt, wobei die Verfahrensschritte für rückwärts gerichtete Anweisungen im Diagramm der 6 in einem Bereich 200 zu finden sind und die für vorwärts gerichtete Anweisungen anzuwendenden Verfahrensschritte in einem Bereich 202. Ein dritter Bereich 204 umfasst Verfahrensschritte, die nach Abarbeitung aller Anweisungen durchgeführt werden. Im Einzelnen läuft das Verfahren folgendermaßen ab.The processing of an instruction list, which according to the method of 2 to 5b is described below and is in 6 shown as a flowchart. The method in question is based on a successive processing of the instructions of the instruction list in the order of their occurrence in the instruction list. Depending on the parameter direction of the instructions, different method steps are carried out, the method steps for backward instructions in the diagram of 6 in one area 200 and the procedural steps to be used for forward instructions in one area 202 , A third area 204 includes procedural steps that are performed after all instructions have been processed. Specifically, the method is as follows.

Nach dem Start 208 werden in einem Verfahrensschritt 210 einige Basiswerte gesetzt. Eine Richtungsvariable AktRichtung, die die Verarbeitungsrichtung der letzten Anweisung wiedergibt, wird auf Vorwärts gesetzt. Die Anweisungsvariable AktAnw, die die aktuell auszuführende Anweisung enthält, wird auf die erste Anweisung der Anweisungsliste gesetzt. Darüber hinaus werden eine Vorwärts-Position PosV und eine Rückwärts-Position PosR jeweils auf 0 gesetzt. Die Vorwärts-Position PosV gibt während der Ausführung jeweils die Speicherzelle an, bei der der nächste Schreibvorgang im Zuge einer vorwärts gerichteten Anweisung beginnt. Die Rückwärts-Position PosR gibt jeweils die Speicherzelle an, bis zu der – exklusive der Speicherzelle selbst – bei der nächsten rückwärtsgerichteten Anweisung in den Speicher geschrieben wird. Darüber hinaus werden eine Vorwärts-Differenz DiffV und eine Rückwärts-Differenz DiffR jeweils auf 0 gesetzt. Sie geben für vorwärtsgerichtete bzw. rückwärtsgerichtete Anweisungen jeweils den Verschiebewert beim Kopieren des nächsten Gleichbereichs an.After the start 208 be in one step 210 set some underlying values. A direction variable actuator direction, which represents the processing direction of the last instruction, is set to forward. The statement variable AktAnw, which contains the statement currently being executed, is set to the first statement statement statement. In addition, a forward position PosV and a backward position PosR are set to 0, respectively. The forward position PosV indicates, during execution, the memory cell at which the next write operation begins in the course of a forward instruction. The backward position PosR respectively indicates the memory cell up to which - excluding the memory cell itself - is written into the memory at the next backward instruction. In addition, a forward difference DiffV and a backward difference DiffR are set to 0, respectively. For forward or backward instructions, you specify the shift value when copying the next equal range.

Mit diesen festgelegten Startbedingungen wird in einem Entscheidungsschritt 212 geprüft, ob die aktuelle Anweisung – zu Beginn also die erste Anweisung der Anweisungsliste – vorwärts gewandt ist. Ist dies der Fall, so wird in einem darauffolgenden Entscheidungsschritt 214 geprüft, ob es sich um die erste vorwärtsgerichtete Anweisung nach vorstehenden rückwärtsgerichteten Anweisungen handelt, indem geprüft wird, ob die aktuelle Richtung AktRichtung auf vorwärts gesetzt ist. Ist dies der Fall, so wird mittels des Entscheidungsschrittes 216 und des Verfahrensschrittes 218 für den Fall, dass der Pos-Wert der aktuellen Anweisung minus der Vorwärts-Position PosV minus dem PByte-Wert der aktuellen Anweisung größer gleich 1 ist, ein Kopiervorgang ausgelöst, durch den ein Bereich, der sich von der Vorwärts-Position PosV plus der Vorwärts-Differenz DiffV bis zur Position der aktuellen Anweisung plus der Vorwärts-Differenz DiffV minus dem PByte-Wert der aktuellen Anweisung minus eins erstreckt, in einen an der Vorwärts-Position PosV beginnenden Speicherbereich kopiert wird. Ergibt der Entscheidungsschritt 214 jedoch, dass die aktuelle Richtung AktRichtung nicht Vorwärts ist, d.h. dass es sich um eine erste vorwärts gerichtete Anweisung nach einer vorhergehenden rückwärtsgerichteten Anweisung handelt, so wird im Verfahrensschritt 220 die aktuelle Richtung AktRichtung auf Vorwärts gesetzt. Nach dem Kopiervorgang des Verfahrensschritts 218 bzw. dem Setzen der aktuellen Richtung AktRichtung im Verfahrensschritt 220 werden in einem Verfahrensschritt 222 die Werte für die Vorwärts-Position PosV und die Vorwärts-Differenz DiffV neu gesetzt. DiffV wird dabei um den PByte-Wert der aktuellen Anweisung erhöht und um den MByte-Wert der aktuellen Anweisung verringert. Die Vorwärts-Position PosV wird auf den Pos-Wert der aktuellen Anweisung gesetzt. In einem sich daran anschließenden Verfahrensschritt 224 werden die einzufügenden Daten der aktuellen Anweisung an eine Speicherstelle gemäß Pos-Wert der aktuellen Anweisung minus PByte-Wert der aktuellen Anweisung eingefügt. Sofern die aktuelle Anweisung eine reine Löschanweisung ist, also keine einzufügenden Daten enthält und einen PByte-Wert von 0 aufweist, ist dieser Verfahrensschritt 224 ohne Wirkung. In einem Entscheidungsschritt 226 wird anschließend überprüft, ob weitere Anweisungen in der Anweisungsliste vorliegen. Wenn dies der Fall ist, wird die Anweisungsvariable Aktanweisung im Verfahrensschritt 228 auf die nächste Anweisung in der Anweisungsliste gesetzt. Anschließend beginnt die Abarbeitung mit dem Entscheidungsschritt 212 von neuem.With these set starting conditions is in a decision step 212 Checks whether the current statement - in the beginning, the first statement in the statement list - has moved forward. If this is the case, then in a subsequent decision step 214 Checks whether it is the first forward instruction for the above reverse instructions by checking whether the current direction of the actuator is set to forward. If this is the case, then by means of the decision step 216 and the process step 218 in the event that the Pos value of the current instruction minus the forward position PosV minus the PByte value of the current instruction is greater than or equal to 1, a copying operation is initiated by which an area extending from the forward PosV plus position Forward difference DiffV to the position of the current instruction plus the forward difference DiffV minus the PByte value of the current instruction minus one, is copied to a memory area beginning at the forward position PosV. Returns the decision step 214 However, that the current direction Aktrichtung is not forward, that is, that it is a first forward instruction after a previous backward instruction, so in the step 220 the current direction Act direction is set to forward. After copying the process step 218 or the setting of the current direction Act direction in the process step 220 be in one step 222 the values for the forward position PosV and the forward difference DiffV are reset. DiffV is increased by the PByte value of the current instruction and reduced by the MByte value of the current instruction. The forward position PosV is set to the pos value of the current instruction. In a subsequent process step 224 The data to be inserted in the current instruction is inserted into a memory location according to the Pos value of the current instruction minus the PByte value of the current instruction. If the current statement is a pure deletion statement, ie contains no data to be inserted and has a PByte value of 0, this method step is 224 without effect. In a decision step 226 it then checks whether there are any further instructions in the statement list. If this is the case, the instruction variable act instruction becomes the method step 228 set to the next statement in the statement list. Subsequently, the processing begins with the decision step 212 again.

Wenn der Entscheidungsschritt 212 zum Ergebnis führt, dass die Richtung der aktuellen Anweisung AktAnw Rückwärts ist, so wird in einem anschließenden Entscheidungsschritt 230 überprüft, ob die rückwärtsgerichtete Anweisung auf eine vor hergehende vorwärtsgerichtete Anweisung folgt. Dies wird auch dann als gegeben angesehen, wenn es sich bei der Anweisung um die erste Anweisung handelt, da der untersuchte Wert der aktuellen Richtung AktRichtung zu Beginn des Verfahrens im Verfahrensschritt 210 auf Vorwärts gesetzt wird. Wenn es sich um eine erste rückwärtsgewandte Anweisung nach einer vorhergehenden vorwärtsgewandten Anweisung oder um die erste Anweisung der Anweisungsliste handelt, wird in einem Verfahrensschritt 232 die aktuelle Richtung AktRichtung auf Rückwärts gesetzt. Für den Fall, dass im Entscheidungsschritt 230 ermittelt wird, dass AktRichtung bereits auf Rückwärts gesetzt ist, d.h. dass der aktuellen Anweisung schon eine rückwärtsgerichtete Anweisung vorangegangen ist, wird in einem Verfahrensschritt 234 ein Speicherbereich vom Pos-Wert der aktuellen Anweisung minus der Rückwärts-Differenz DiffR bis zur Rückwärts-Position PosR minus der Rückwärts-Differenz DiffR minus eins in einen mit der Adresse des Pos-Werts der aktuellen Anweisung beginnenden Speicherbereich kopiert. In einem sich sowohl an den Verfahrensschritt 234 als auch an den Verfahrensschritt 232 anschließenden Verfahrensschritt 236 wird die Rückwärts-Differenz DiffR um den PByte-Wert der aktuellen Anweisung verringert und um den MByte-Wert der aktuellen Anweisung erhöht.If the decision step 212 As a result, the direction of the current instruction AktAnw is backwards, so in a subsequent decision step 230 checks if the backward instruction follows a preceding forward instruction. This is considered to be true even if the instruction is the first instruction, since the examined value of the current direction of the Akt direction is at the beginning of the method in the method step 210 is set to forward. If it is a first backward instruction after a previous forward instruction or the first instruction of the instruction list, is in a process step 232 the current direction AktRichtung is set to reverse. In the event that in the decision step 230 is determined that AktRichtung is already set to backward, ie that the current instruction is already preceded by a backward instruction is in one step 234 copied a memory area from the Pos value of the current instruction minus the backward difference DiffR to the backward position PosR minus the backward difference DiffR minus one into a memory area beginning with the address of the Pos value of the current instruction. In one, both the process step 234 as well as the process step 232 subsequent process step 236 the backward difference DiffR is decreased by the PByte value of the current instruction and increased by the MByte value of the current instruction.

In einem darauffolgenden Entscheidungsschritt 238 wird überprüft, ob die Rückwärts-Differenz DiffR kleiner 0 ist. Wenn dies der Fall ist, heißt das, dass der darauffolgende Anweisungsschritt wieder ein vorwärtsgerichteter Anweisungsschritt sein wird. In diesem Fall wird mit dem Verfahrensschritt 240 fortgesetzt, durch den ein Speicherbereich zwischen der Vorwärts-Position PosR plus der Vorwärts-Differenz DiffR und dem Pos-Wert der aktuellen Anweisung minus dem PByte-Wert der aktuellen Anweisung plus der Vorwärts-Differenz DiffV minus eins in einen an der Vorwärts-Position PosR beginnenden Speicherbereich kopiert wird. Anschließend werden die Vorwärts-Differenz DiffV und die Rückwärts-Differenz DiffR in einem Verfahrensschritt 242 wieder auf 0 gesetzt. Unabhängig von dem Ergebnis des Entscheidungsschrittes 238 ist jeweils anschließend an die dargelegten Verfahrensschritte im Falle einer rückwärtigen Anweisungsrichtung ein Verfahrensschritt 244 vorgesehen, in dem die Daten der aktuellen Anweisung in einen Speicherbereich kopiert werden, der beim Positionswert der aktuellen Anweisung minus dem PByte-Wert der aktuellen Anweisung beginnt. Wenn es sich bei der aktuellen Anweisung um eine reine Löschanweisung ohne Daten handelt, bleibt dieser Schritt ohne Auswirkungen. Anschließend wird in einem Verfahrensschritt 246 die Rückwärts-Position PosR auf den Pos-Wert der aktuellen Anweisung minus dem MByte-Wert der aktuellen Anweisung gesetzt. Hieran schließt sich dann wieder der Entscheidungsschritt 226 an, in dem das Vorhandensein weiterer Anweisungen überprüft wird.In a subsequent decision step 238 it is checked if the backward difference DiffR is less than 0. If this is the case, it means that the subsequent instruction step will again be a forward-directed instruction step. In this case, the process step 240 through which a storage area between the forward position PosR plus the forward difference DiffR and the Pos value of the current instruction minus the PByte value of the current instruction plus the forward difference DiffV minus one in one at the forward position PosR beginning storage area is copied. Subsequently, the forward difference DiffV and the backward difference DiffR in a process step 242 set to 0 again. Regardless of the result of the decision step 238 is in each case subsequent to the method steps described in the case of a rear instruction direction, a method step 244 in which the data of the current instruction is copied to a memory area which starts at the position value of the current instruction minus the PByte value of the current instruction. If the current statement is a pure deletion statement with no data, this step will have no effect. Subsequently, in a process step 246 the backward position PosR is set to the Pos value of the current instruction minus the MByte value of the current instruction. This is followed by the decision step again 226 in which the presence of further instructions is checked.

Wenn alle Anweisungen abgearbeitet sind und dementsprechend im Verfahrensschritt 226 ermittelt wird, dass keine weiteren Anweisungen vorliegen, wird mit einem Entscheidungsschritt 248 fortgesetzt, in dem ermittelt wird, ob die aktuelle Richtung AktRichtung, also die Richtung der letzten Anweisung der Anweisungsliste, Vorwärts ist. Wenn dies der Fall ist, wird in einem Verfahrensschritt 250 ein Kopieren eines Speicherblocks zwischen der Vorwärts-Position PosV plus der Vorwärts-Differenz DiffV und dem Datenende im Ursprungsspeicherinhalt an die Vorwärts-Position PosV ausgelöst. Wie auch im Falle, dass im Entscheidungsschritt 248 ermittelt wird, dass die aktuelle Richtung AktRichtung Rückwärts ist, ist das Verfahren anschließend beendet (Schritt 252).When all instructions have been processed and accordingly in the process step 226 is determined that there are no further instructions, with a decision step 248 fortge in which it is determined whether the current direction of the direction of action, ie the direction of the last statement in the instruction list, is forward. If this is the case, in one process step 250 copying a memory block between the forward position PosV plus the forward difference DiffV and the data end in the source memory contents to the forward position PosV. As in the case that in the decision step 248 is determined that the current direction AktRichtung is backwards, the method is then terminated (step 252 ).

Das beschriebene Verfahren beruht somit darauf, dass die Anweisungen nacheinander abgearbeitet werden und im Zuge dessen Bereiche des Ursprungsspeicherinhalts an ihre neuen Zielpositionen verschoben werden (Verfahrensschritt 234, 240, 218) bzw. neue Daten eingefügt werden (Verfahrensschritt 224, 244). Nach Abarbeitung aller Anweisungen wird für den Fall, dass der letzte Verfahrensschritt ein vorwärtsgerichteter Verfahrensschritt war, im Verfahrensschritt 250 eine weitere Kopieranweisung ausgeführt.The described method is thus based on executing the instructions one after the other and, as part of this, shifting regions of the original memory contents to their new target positions (method step 234 . 240 . 218 ) or new data are inserted (method step 224 . 244 ). After all instructions have been processed, in the case where the last method step was a forward-oriented method step, in the method step 250 executed another copy instruction.

Die Einfügeanweisungen (Verfahrensschritt 224 für vorwärtsgewandte Anweisungen und Verfahrensschritt 244 für rückwärtsgewandte Anweisungen) werden bei jeder Anweisung ausgeführt, wobei bei Löschanweisungen keine einzufügenden Daten vorliegen und die jeweiligen Anweisungen daher wirkungslos bleiben.The insertion instructions (procedural step 224 for advanced instructions and procedural step 244 for backward-facing statements) are executed with each statement, whereby there are no data to insert in the case of deletion statements and the respective statements thus remain ineffective.

Die Kopieranweisungen der Verfahrensschritte 234, 218 werden nur dann ausgeführt, wenn der rückwärtsgewandten Anweisung keine vorwärtsgewandte Anweisung vorausgegangen ist bzw. der vorwärtsgewandten Anweisung keine rückwärtsgewandte Anweisung vorausgegangen ist. Dies liegt daran, dass die Kopieranweisungen dem Zweck dienen, einen Gleichbereich zu verschieben, dessen genaue Position und Größe im Speicher frühestens nach der zweiten gleichgerichteten Anweisung bekannt sind.The copy instructions of the method steps 234 . 218 are executed only if the instruction facing the backward instruction has not been preceded by a forward instruction or the forward instruction has not been preceded by a backward instruction. This is because the copy instructions serve the purpose of shifting a DC range whose exact position and size in memory are known at the earliest after the second rectified instruction.

Die Kopieranweisung des Verfahrensschritts 240 wird nur ausgeführt, wenn die Rückwärts-Differenz DiffR kleiner 0 ist. Wie schon erwähnt, ist dies gegeben, wenn die nachfolgende Anweisung wieder eine vorwärtsgerichtete Anweisung ist, die aktuelle rückwärtsgerichtete Anweisung also die letzte Anweisung ihres positiven Anweisungsblockes ist. Die Kopieranweisung dient dem Verschieben eines negativen Gleichbe reichs, dessen Verschiebung erst zu diesem Zeitpunkt eindeutig beschrieben ist, da seine Größe und Position durch die letzte Anweisung des vorhergehenden negativen Anweisungsblocks und die letzte Anweisung des positiven Anweisungsblocks eindeutig definiert sind.The copy instruction of the process step 240 is only executed if the backward difference DiffR is less than 0. As already mentioned, this is the case if the following instruction is again a forward instruction, that is, the current backward instruction is the last instruction of its positive instruction block. The copy instruction is used to move a negative Gleichbe rich whose displacement is only clearly described at this time, since its size and position by the last statement of the previous negative statement block and the last statement of the positive statement block are clearly defined.

Der vierte Verfahrensschritt mit einer Kopieranweisung, der Verfahrensschritt 250, ist für einen Gleichbereich vorgesehen, der den Ursprungsspeicherinhalt 10a nach hinten begrenzt.The fourth method step with a copy instruction, the method step 250 , is intended for a DC area containing the original memory content 10a limited to the rear.

Das in 6 anhand des Ablaufdiagramms dargestellte Verfahren wird im Folgenden unter Bezugnahme auf den in 1a und 1b dargestellten Ursprungsspeicherinhalt 10a und die in 5b dargestellte Anweisungsliste erläutert. Die 7a und 7b zeigen hierzu den Inhalt des Datenspeichers in verschiedenen Stadien des Verfahrens ausgehend vom Ursprungsspeicherinhalt 10a und mündend in den Zielspeicherinhalt 10b. Der Zustand 270 des Datenspeicherinhalts stellt den Ursprungsspeicherinhalt 10a dar. Bezugnehmend auf das in 6 dargestellte Ablaufdiagramm des Verfahrens werden im Verfahrensschritt 210 die Basiswerte PosV gleich 0, DiffV gleich 0, PosR gleich 0, DiffR gleich 0, AktRichtung gleich Vorwärts und AktAnw auf die Anweisung 140 gesetzt. Beim Entscheidungsschritt 212 wird festgestellt, dass die Richtung der aktuellen Anweisung 147 Vorwärts ist, und in dem Entscheidungsschritt 214 wird festgestellt, dass die aktuelle Richtung AktRichtung ebenfalls Vorwärts ist. Im darauffolgenden Verfahrensschritt 216 wird errechnet, dass der Pos-Wert der aktuellen Anweisung minus PosV minus PByte-Wert der aktuellen Anweisung 6 und damit größer gleich eins ist. Infolgedessen wird im Verfahrensschritt 218 die erste Kopieranweisung durchgeführt. Dabei wird ein Speicherbereich von PosV plus DiffV gleich 0 bis zum Pos-Wert der aktuellen An weisung AktAnw plus DiffV minus eins minus dem PByte-Wert der aktuellen Anweisung gleich 5 nach PosV gleich 0 kopiert. Da Ursprungsposition und Zielposition dieses Speicherbereichs identisch sind, ist das Ergebnis dieser Kopieranweisung in 7a nicht erkennbar.This in 6 The method illustrated with reference to the flowchart will be described below with reference to FIG 1a and 1b illustrated source memory content 10a and the in 5b explained instruction list explained. The 7a and 7b show the contents of the data store in various stages of the process starting from the original memory content 10a and opening into the target memory content 10b , The state 270 of the datastore content represents the original memory content 10a Referring to the in 6 illustrated flow diagram of the method are in the process step 210 the basic values PosV are equal to 0, DiffV is equal to 0, PosR is equal to 0, DiffR is equal to 0, Act direction is equal to forward and AktAnw to the instruction 140 set. At the decision step 212 it is determined that the direction of the current instruction 147 Is forward, and in the decision step 214 it is determined that the current direction of the actuator direction is also forward. In the subsequent process step 216 it is calculated that the Pos value of the current instruction minus PosV minus the PByte value of the current instruction 6 is greater than or equal to one. As a result, in the process step 218 the first copy instruction performed. A memory range from PosV plus DiffV equal to 0 to the Pos value of the current instruction AktAnw plus DiffV minus one minus the PByte value of the current instruction is copied equal 5 to PosV equal to 0. Since the original position and the destination position of this memory area are identical, the result of this copy instruction is in 7a not visible.

Anschließend werden im Verfahrensschritt 222 DiffV und PosV neu gesetzt, wobei sich DiffV zu 5 und PosV zu 6 ergibt. Da die Anweisung 140 als reine Löschanweisung keine eigenen Daten enthält, bleibt die Einfügeoperation im Verfahrensschritt 224 ohne Wirkung. Nach der Prüfung, ob weitere Anweisungen vorhanden sind, wird im Verfahrensschritt 228 die nächste Anweisung, die Anweisung 142, zur aktuellen Anweisung. Da die Richtung dieser Anweisung wiederum Vorwärts ist (Entscheidungsschritt 212) und die aktuelle Richtung Akt-Richtung ebenfalls Vorwärts ist (Entscheidungsschritt 214), wird im Entscheidungsschritt 216 überprüft, ob die Kopieranweisung 218 durchgeführt werden soll. Dies ist gegeben und führt zu einer Kopieroperation im Zuge des Verfahrensschritts 218, bei der ein Speicherbereich von Speicherzelle 11 bis Speicherzelle 17 in einen mit Speicherzelle 6 beginnenden Bereich kopiert wird. Dadurch kommt es zu dem in 7a mit dem Bezugszeichen 272 bezeichneten Zustand. Im Verfahrensschritt 222 wird DiffV auf 8 und PosV auf 13 gesetzt. Da auch die Anweisung 142 als Löschanweisung keine Daten aufweist, wirkt sich der Verfahrensschritt 224 mit der darin vorgesehenen Einfügeanweisung wiederum nicht aus. Nach Änderung der aktuellen Anweisung auf Anweisung 144 (Verfahrensschritt 228) wird im Verfahrensschritt 218 eine Kopieroperation ausgelöst, wobei ein Speicherblock von den Speicherzellen 21 bis 24 in einen mit der Speicherzelle 13 beginnenden Bereich kopiert wird (siehe Zustand 274 in 7a). Im anschließenden Verfahrensschritt 222 wird DiffV auf 11 und PosV auf 20 gesetzt. Da es sich bei der Anweisung 144 um ei ne Modifikationsanweisung mit einzufügenden Daten N1 handelt, hat die Einfügeanweisung des Verfahrensschritts 224 erstmalig eine Auswirkung. Die Daten der Anweisung 144 (N1) werden in einen Bereich, beginnend mit der Speicherzelle 17, geschrieben (siehe Zustand 276 in 7a).Subsequently, in the process step 222 DiffV and PosV reset, where DiffV is 5 and PosV is 6. Because the statement 140 as a pure deletion statement contains no own data, the insert operation remains in the process step 224 without effect. After checking whether further instructions exist, the procedure step 228 the next statement, the statement 142 , to the current instruction. Since the direction of this instruction is again forward (decision step 212 ) and the current direction Akt direction is also forward (decision step 214 ), is in the decision step 216 Check if the copy instruction 218 to be carried out. This is the case and leads to a copying operation in the course of the method step 218 in which a memory area from memory cell 11 to memory cell 17 is copied into a region beginning with memory cell 6. This leads to the in 7a with the reference number 272 designated state. In the process step 222 DiffV will go to 8 and PosV to 13 set. As is the instruction 142 As erase instruction has no data, the process step affects 224 again with the insert instruction provided therein. After changing the current statement on instruction 144 (Step 228 ) is in the process step 218 a copy operation is triggered, wherein a memory block is copied from the memory cells 21 to 24 in an area beginning with the memory cell 13 (see state 274 in 7a ). In the subsequent process step 222 DiffV is set to 11 and PosV to 20. Since this is the statement 144 has a modification instruction to be inserted with data N1 to be inserted, has the insertion instruction of the method step 224 for the first time an impact. The data of the statement 144 (N1) are written in an area starting with the memory cell 17 (see state 276 in 7a ).

Im Verfahrensschritt 228 wird die nächste Anweisung, Anweisung 146, zur aktuellen Anweisung gemacht und mit dieser Anweisung im Verfahrensschritt 218 ein Speicherbereich von Speicherzelle 31 bis Speicherzelle 33 in einen mit Speicherzelle 26 beginnenden Bereich kopiert (Zustand 278). Im Verfahrensschritt 222 werden anschließend DiffV auf 8 und PosV auf 26 gesetzt. Die Einfügeanweisung des Verfahrensschritts 224 hat darauffolgend das Einfügen der der Anweisung zugeordneten Daten N2 in einen mit der Speicherzelle 23 beginnenden Bereich zur Folge (Zustand 280). Die aktuelle Anweisung wird anschließend im Verfahrensschritt 228 auf die Anweisung 152a gesetzt, welche die erste rückwärtsgewandte Anweisung der Anweisungsliste ist. Dementsprechend wird im Entscheidungsschritt 212 erkannt, dass die Richtung der aktuellen Anweisung nicht Vorwärts ist, und anschließend im Entscheidungsschritt 230 erkannt, dass die aktuelle Richtung nicht Rückwärts ist. Die aktuelle Richtung wird daher im Verfahrensschritt 232 auf Rückwärts gesetzt und anschließend im Verfahrensschritt 236 DiffR um den PByte-Wert der Anweisung 152a von 0 verringert und um den Mbyte-Wert von 3 auf 3 erhöht. Da DiffR damit größer 0 ist, wird das Verfahren mit dem Verfahrensschritt 244 fortgesetzt, in dem eine Einfügeoperation durchgeführt wird, die mangels der Anweisung 152a zugeordneter Daten ohne Auswirkung bleibt. Die Rückwärts-Position PosR wird anschließend erstmalig verändert und zwar auf einen Wert von 51.In the process step 228 becomes the next statement, statement 146 , made to the current instruction and with this instruction in the process step 218 a memory area from memory cell 31 to memory cell 33 is copied into an area beginning with memory cell 26 (state 278 ). In the process step 222 Then DiffV are set to 8 and PosV to 26. The insertion instruction of the method step 224 subsequently results in the insertion of the data N2 associated with the instruction into an area starting with the memory cell 23 (state 280 ). The current instruction is then in the process step 228 on the instruction 152a which is the first backward instruction of the statement list. Accordingly, in the decision step 212 recognized that the direction of the current instruction is not forward, and then in the decision step 230 recognized that the current direction is not backward. The current direction is therefore in the process step 232 set to reverse and then in the process step 236 DiffR around the PByte value of the statement 152a reduced from 0 and increased by the Mbyte value from 3 to 3. Since DiffR is greater than 0, the method becomes the process step 244 in which an insert operation is performed in the absence of the instruction 152a associated data has no effect. The reverse position PosR is then changed for the first time to a value of 51.

Im Verfahrensschritt 228 wird die aktuelle Anweisung dann auf die Anweisung 150 gesetzt, welche ebenfalls eine rückwärtsgewandte Anweisung ist, so dass als nächster Verfahrensschritt der Verfahrensschritt 234 ausgeführt wird. Dabei wird ein Speicherbereich von Speicherzelle 45 bis Speicherzelle 47 in einen Speicherbereich beginnend mit der Speicherzelle 48 kopiert (Zustand 282 in 7b). DiffR wird anschließend im Verfahrensschritt 23 6 auf 6 gesetzt. Da die Anweisung 150 als Löschanweisung keine zugeordneten Daten aufweist, bleibt die anschließende Einfügeanweisung des Verfahrensschritts 144 ohne Wirkung. Im Verfahrensschritt 246 wird anschließend PosR auf den Pos-Wert der aktuellen Anweisung von 48 gesetzt. Im Verfahrensschritt 228 wird die nächste Anweisung, Anweisung 148, zur aktuellen Anweisung gemacht. Da die Anweisung 148 ebenfalls eine rückwärtsgewandte Anweisung ist, kommt es im Verfahrensschritt 234 zu einer Kopieroperation, bei der ein Speicherbereich beginnend mit Speicherzelle 37 und endend mit Speicherzelle 41 in einen Speicherbereich beginnend mit Speicherzelle 43 kopiert wird. (Zustand 284 in 7b). Im Verfahrensschritt 236 wird DiffR um den PByte-Wert der aktuellen Anweisung von 14 verringert und beträgt dadurch –8. Der Entscheidungsschritt 238, in dem überprüft wird, ob DiffR kleiner 0 ist, führt daher zu einer anschließenden Ausführung der Kopieranweisung des Verfahrensschritts 240. Dabei wird ein Speicherbereich von der Speicherzelle 34 bis zur Speicherzelle 36 in einen Bereich beginnend mit der Speicherzelle 26 kopiert (siehe Zustand 286 in 7b). Im Verfahrensschritt 242 werden anschließend DiffV und DiffR jeweils wieder zu 0 gesetzt. Die Einfügeanweisung des Verfahrensschrittes 244 hat ein Einfügen der der Anweisung 148 zugeordneten Daten N3 an die Speicherstelle 29 zur Folge (Zustand 288 in 7b).In the process step 228 the current statement then becomes the statement 150 which is also a backward-facing instruction, so that the next step in the process step 234 is performed. In this case, a memory area from memory cell 45 to memory cell 47 is copied into a memory area beginning with memory cell 48 (state 282 in 7b ). DiffR is then in the process step 23 6 set to 6. Because the statement 150 as the deletion instruction has no associated data, the subsequent insertion instruction of the method step remains 144 without effect. In the process step 246 PosR is then set to the Pos value of the current 48 instruction. In the process step 228 becomes the next statement, statement 148 , made to the current instruction. Because the statement 148 is also a backward instruction, it comes in the process step 234 to a copying operation in which a memory area starting with memory cell 37 and ending with memory cell 41 is copied into a memory area starting with memory cell 43. (Status 284 in 7b ). In the process step 236 DiffR is decremented by the PByte value of the current statement of 14, which is -8. The decision step 238 in which it is checked whether DiffR is less than 0, therefore, leads to a subsequent execution of the copying instruction of the method step 240 , In this case, a memory area is copied from the memory cell 34 to the memory cell 36 in an area starting with the memory cell 26 (see state 286 in 7b ). In the process step 242 Then DiffV and DiffR are set to 0 again. The insertion instruction of the method step 244 has an insertion of the statement 148 associated data N3 to the memory location 29 (state 288 in 7b ).

PosR wird anschließend im Verfahrensschritt 246 auf 29 gesetzt und im Verfahrensschritt 228 wird die Anweisung 152b zur aktuellen Anweisung gemacht. Der Entscheidungsschritt 212 erkennt, dass der Parameter Richtung der aktuellen Anweisung Vorwärts ist, und der Entscheidungsschritt 214 erkennt, dass die aktuelle Richtung AktRichtung nicht Vorwärts ist, so dass im Verfahrensschritt 220 anschließend die aktuelle Richtung auf Vorwärts gesetzt wird. Anschließend wird im Verfahrensschritt 222 DiffV auf 4 und PosV auf 51 gesetzt. Da die Anweisung 152b keine ihr zugeordneten Daten enthält, bleibt die Einfügeanweisung des Verfahrensschritts 224 ohne Wirkung. Im Entscheidungsschritt 226 wird erkannt, dass keine weiteren Anweisungen vorhanden sind. Es wird daher im Entscheidungsschritt 248 überprüft, ob die aktuelle Richtung AktRichtung, also die Richtung der letzten Anweisung 152b, vorwärts lautet. Da dies der Fall ist, wird im Verfahrensschritt 250 ein Speicherbereich, beginnend mit der Speicherzelle 55 und endend mit dem Ende des Speichers, der Speicherzelle 63, in einen mit der Speicherzelle 51 beginnenden Bereich kopiert (siehe Zustand 290 in 7b). Der in 7b dargestellte Zustand 290 des Datenspeicherinhalts entspricht dem Zielspeicherinhalt 10b, wie er den 1a und 1b zu entnehmen ist. Die Datenaktualisierung im Datenspeicher ist also abgeschlossen.PosR is then in the process step 246 set to 29 and in the process step 228 becomes the instruction 152b made to the current instruction. The decision step 212 recognizes that the parameter direction is the current instruction forward, and the decision step 214 recognizes that the current direction Aktrichtung is not forward, so that in the process step 220 then the current direction is set to forward. Subsequently, in the process step 222 DiffV set to 4 and PosV to 51. Because the statement 152b does not contain any data associated with it, the insertion instruction of the method step remains 224 without effect. In the decision step 226 it is recognized that there are no further instructions. It is therefore in the decision step 248 Checks if the current direction is direction, ie the direction of the last statement 152b , Forward reads. Since this is the case, in the process step 250 a memory area, beginning with the memory cell 55 and ending with the end of the memory, the memory cell 63, copied into an area beginning with the memory cell 51 (see state 290 in 7b ). The in 7b illustrated state 290 the contents of the memory correspond to the destination memory content 10b how he got that 1a and 1b can be seen. The data update in the data store is therefore complete.

In der nicht dargestellten erweiterten Ausführungsform der Variante A wird im Zuge der Verfahrensschritte 234, 240, 218, 250, die ein Kopieren eines Speicherbereichs im Datenspeicher bewirken, geprüft, ob die Indextabelle des Datenverarbeitungsgeräts für die betroffenen Speicherbereiche Indextabelleneinträge vorsieht. Ist ein Indextabelleneintrag vorhanden, dessen Indexadresse im Zielbereich der Kopieranweisung, nicht aber im Ursprungsbereich der Kopieranweisung liegt, so wird dieser Indextabelleneintrag gelöscht. Liegt die Indexadresse eines Indextabelleneintrags im Ursprungsbereich der Kopieranweisung, so wird die Indexadresse dieses Indextabelleneintrags parallel zur Verschiebedistanz der Kopieranweisung verändert, also entweder um die Rückwärts-Differenz DiffR verringert oder um die Vorwärts-Differenz DiffV erhöht. Durch derart ergänzte Verfahrensschritte 234, 240, 218, 250 wird eine korrekte Aktualisierung der Indextabelle des Datenverarbeitungssystems bezüglich der Indextabelleneinträge T1, T2 und T4 erzielt. Die Indextabelleneinträge T1 und T4 werden gelöscht und der Indextabelleneintrag T2 wird mit einer neuen Indexadresse AT2 (32) minus DiffV (11) gleich A'T2 (21) versehen. Die Aktualisierung bzgl. der Indextabelleneinträge T3 und T5 wird nach Abschluss des Verfahrens gemäß 6 durch die bei dieser erweiterten Ausführungsform vorgesehenen expliziten Indexanweisungen der Anweisungsliste erreicht.In the not-shown extended embodiment of variant A is in the course of Verfah rensschritte 234 . 240 . 218 . 250 , which cause a copy of a memory area in the data memory, checked whether the index table of the data processing device for the affected memory areas index table entries provides. If an index table entry exists whose index address lies in the destination area of the copy instruction but not in the origin area of the copy instruction, this index table entry is deleted. If the index address of an index table entry is in the source area of the copy instruction, the index address of this index table entry is changed parallel to the shift distance of the copy instruction, ie either reduced by the backward difference DiffR or increased by the forward difference DiffV. By such supplemented process steps 234 . 240 . 218 . 250 a correct update of the index table of the data processing system with respect to the index table entries T1, T2 and T4 is achieved. The index table entries T1 and T4 are cleared and the index table entry T2 is provided with a new index address A T2 (32) minus DiffV (11) equal to A ' T2 (21). The update regarding the index table entries T3 and T5 will be made after completion of the procedure according to 6 achieved by the explicit index statements of the instruction list provided in this extended embodiment.

Die 8 bis 10b zeigen eine zweite Variante B des erläuterten Verfahrens. Die Variante B unterscheidet sich von der oben dargestellten Variante A dadurch, dass statt Einfüge-, Lösch- und Modifikationsanweisungen Einfügeanweisungen und Kopieranweisungen in die Anweisungsliste aufgenommen werden, welche die jeweils beschriebene Operation vollständig und abschließend beschreiben.The 8th to 10b show a second variant B of the described method. Variant B differs from the variant A described above in that insertion instructions and copy instructions are added to the instruction list instead of insertion, deletion and modification instructions, which describe the respectively described operation completely and conclusively.

8 zeigt analog zu 2 ein Ablaufdiagramm, welches einen ersten Verfahrensabschnitt umfasst, mit dem eine Anweisungsliste erzeugt wird. Zusätzlich bezugnehmend auf die 1a und 1b wird im Folgenden die Durchführung dieses Verfahrensabschnitts erläutert. Nach dem Start 300 werden im Verfahrensschritt 302 die Datensatzvariablen DU und DZ auf den jeweils ersten Datensatz des Ursprungsspeicherinhalts 10a bzw. des Zielspeicherinhalts 10b gesetzt. Anschließend werden in den Entscheidungsschritten 304, 306, 308, 310 die Identifikationsschlüssel bzw. die Inhalte der in den Datensatzvariablen DU und DZ enthaltenen Datensätze miteinander verglichen. Dabei wird durch den Entscheidungsschritt 304 bewirkt, dass dann, wenn der Identifikationsschlüssel des aktuellen Datensatzes im Ursprungsspeicherinhalt kleiner als der des aktuellen Datensatzes im Zielspeicherinhalt ist, im Verfahrensschritt 312 die Datensatzvariable DU auf den nächsten Datensatz im Ursprungsspeicherinhalt gesetzt wird. Diese Situation tritt ein, wenn im Ursprungsspeicherinhalt 10a ein Datensatz enthalten ist, der sich im Zielspeicherinhalt 10b nicht mehr findet. 8th shows analogously to 2 a flowchart, which includes a first method section, with which an instruction list is generated. In addition, referring to the 1a and 1b the implementation of this section of the procedure is explained below. After the start 300 be in the process step 302 the data set variables D U and D Z on the first record of the original memory content 10a or the destination memory contents 10b set. Subsequently, in the decision steps 304 . 306 . 308 . 310 the identification key or the contents of the records contained in the data set variables D U and D Z compared. It is by the decision step 304 causes, if the identification key of the current record in the original memory content is smaller than that of the current record in the target memory content, in the method step 312 the record variable D U is set to the next record in the source memory contents. This situation occurs when in the source memory contents 10a a record is contained in the destination memory contents 10b can not find anymore.

Wenn im Entscheidungsschritt 306 ermittelt wird, dass der Identifikationsschlüssel des Datensatzes in der Datensatzvariable DU größer ist als der Identifikationsschlüssel des Datensatzes in der Datensatzvariablen DZ, wird im Verfahrensschritt 314 eine Einfügeanweisung in die Anweisungsliste eingefügt, die die Zielposition des in DZ referenzierten Datensatzes sowie dessen Daten enthält. Anschließend wird im Verfahrensschritt 316 DZ auf den nächsten Datensatz im Zielspeicherinhalt gesetzt. Wenn im Entscheidungsschritt 308 ermittelt wird, das die Identifikationsschlüssel der Datensätze, auf die DU und DZ verweisen, identisch sind, so wird im Entscheidungsschritt 310 überprüft, ob die Inhalte der beiden Datensätze ebenfalls identisch sind. Wenn dies der Fall ist, so wird im Verfahrensschritt 318 eine Kopieranweisung in die Anweisungsliste eingefügt, deren Parameter den Beginn und das Ende des Datensatzes im Ursprungsspeicherinhalt sowie seine Zielposition im Zielspeicherinhalt beschreiben. Wenn hingegen im Entscheidungsschritt 310 ermittelt wird, dass der Inhalt der Datensätze, auf die in DU und DZ verwiesen wird, nicht identisch ist, wird im Verfahrensschritt 320 eine Einfügeanweisung in die Anweisungsliste eingefügt, wel che entsprechend der Einfügeanweisung des Verfahrensschritts 314 als Parameter die Zielposition im Zielspeicherinhalt sowie die dort einzufügenden Daten umfasst.If in the decision step 306 it is determined that the identification key of the data record in the data set variable D U is greater than the identification key of the data record in the data set variable D Z , is in the process step 314 an insertion instruction is inserted into the statement list containing the target position of the data set referenced in D Z and its data. Subsequently, in the process step 316 D Z set to the next record in the destination memory contents. If in the decision step 308 is determined that the identification key of the records referenced by D U and D Z , are identical, so in the decision step 310 checks if the contents of the two records are also identical. If this is the case, then in the process step 318 a copy statement is inserted into the statement list whose parameters describe the beginning and the end of the record in the source memory contents as well as its target position in the target memory contents. If, in contrast, in the decision step 310 it is determined that the contents of the records referred to in D U and D Z is not identical, is in the process step 320 an insertion instruction is inserted in the instruction list, which corresponds to the insertion instruction of the method step 314 as parameter includes the target position in the destination memory content and the data to be inserted there.

Unabhängig davon, ob die Daten der Datensätze, auf die DU und DZ verweisen, identisch sind, werden in einem Verfahrensschritt 322 die beiden Datensatzvariablen DZ und DU jeweils auf den nächsten Datensatz im Zielspeicherinhalt bzw. im Ursprungsspeicherinhalt gesetzt. Wenn in einem Entscheidungsschritt 324 ermittelt wird, dass DU und DZ jeweils auf die letzten Datensätze des Ursprungsspeicherinhalts bzw. des Zielspeicherinhalts verweisen, wird der in 8 dargestellte Verfahrensabschnitt beendet (Schritt 326). Wenn dies jedoch nicht der Fall ist, wird mit einem weiteren Durchlauf mittels der Entscheidungsschritte 304, 306, 308, 310 fortgesetzt.Regardless of whether the data of the data records referenced by D U and D Z are identical, in one process step 322 the two data set variables D Z and D U are respectively set to the next data record in the target memory content or in the original memory content. If in a decision step 324 If it is determined that D U and D Z respectively refer to the last data records of the original memory contents or of the destination memory contents, the in 8th shown process section ended (step 326 ). However, if this is not the case, with one more pass through the decision steps 304 . 306 . 308 . 310 continued.

Die 9a zeigt das Ergebnis der Anwendung des in 8 dargestellten Verfahrensabschnitts auf den in den 1a und 1b dargestellten Ursprungsspeicherinhalt bzw. Zielspeicherinhalt. Die dargestellten Anweisungen 330, 332, 334, 336, 338, 340, 342, 344, 346, 348, 350 beziehen sich jeweils auf einen Gleich- bzw. Neubereich im Zielspeicherinhalt des Datenspeichers. Die Kopieranweisungen 330, 332, 334, 338, 342, 346, 348, 350 sind dabei jeweils einem Gleichbereich zugeordnet, den sie durch zugeordnete Parameter bezüglich Anfang und Ende im Ursprungsspeicherinhalt und Zielposition im Zielspeicherinhalt eindeutig beschreiben. Die Einfügeanweisungen 336, 340, 344 beziehen sich jeweils auf einen Neubereich und umfassen als Parameter dessen Zielposition sowie dessen Dateninhalt.The 9a shows the result of the application of in 8th The method section shown in the 1a and 1b illustrated source memory content or destination memory content. The instructions shown 330 . 332 . 334 . 336 . 338 . 340 . 342 . 344 . 346 . 348 . 350 each refer to a DC or new area in the destination memory contents of the data memory. The copy instructions 330 . 332 . 334 . 338 . 342 . 346 . 348 . 350 are each assigned to a DC area, which they unambiguously describe by assigned parameters with respect to beginning and end in the original memory content and destination position in the destination memory content. The insertion instructions 336 . 340 . 344 each refer to a new area and include as parameters its target position and its data content.

Nachdem die in 9a dargestellte Anweisungsliste erzeugt wurde, wird analog dem in 4 für die erste Variante A dargestellten Verfahrensabschnitt auch bei der Variante B eine Umsortierung der Anweisungsliste durchgeführt. Zu diesem Zweck werden die Gleichbereichsanweisungen, angefangen mit Anweisung 330 und endend mit Anweisung 350, nacheinander daraufhin untersucht, ob es sich um Gleichbereichsanweisungen mit positivem oder negativem Gleichbereich handelt. Die positiven Gleichbereiche sind jene, die in Referenzrichtung 16 zu größeren Speicheradressen hin verschoben werden, während negative Gleichbereiche jene sind, die entgegen der Referenzrichtung 16 zu kleineren Speicheradressen hin verschoben werden. Ein Gleichbereich, der seine Position nicht ändert, wie im vorliegenden Fall derjenige der Gleichbereichsanweisung 330, wird als negativer Gleichbereich aufgefasst. Die Überprüfung der Gleichbereichsanweisungen ergibt, dass sich die Gleichbereichsanweisungen 330, 332, 334, 338, 342, 350 sich auf negative Gleichbereiche beziehen, während sich die Gleichbereichsanweisungen 346, 348 sich auf positive Gleichbereiche beziehen.After the in 9a has been generated is analogous to the in 4 for the first variant A method section also carried out in the variant B, a resorting of the instruction list. For this purpose, the equal-range statements are started, starting with statement 330 and ending with instruction 350 , one by one, to see whether they are DC or DC positive or negative. The positive DC areas are those in the reference direction 16 are shifted to larger memory addresses, while negative DC regions are those which are opposite to the reference direction 16 be moved to smaller memory addresses out. A DC area that does not change its position, as in the present case, that of the DC area instruction 330 , is considered a negative DC. The review of the DCS statements reveals that the DCS statements 330 . 332 . 334 . 338 . 342 . 350 refer to negative DCs while the DCS statements 346 . 348 refer to positive DCs.

In Kenntnis dessen werden die Anweisungen anschließend zu Anweisungsblöcken zusammengefasst. Dies geschieht nach der Maßgabe, dass jeweils solche Gleichbereiche zu einem Block zusammengefasst werden, die identischen Typs (positiv bzw. negativ) sind und nicht durch eine Anweisung unterbrochen werden, die anderen Typs (negativ bzw. positiv) ist. Die Einfügeanweisungen werden dann, wenn sie von Gleichbereichsanweisungen gleichen Typs eingerahmt sind, dem Anweisungsblock der auf diese Gleichbereiche bezogenen Kopieranweisung zugeordnet. Einfügeanweisungen, denen eine auf einen positiven Gleichbereich bezogene Kopieranweisung folgt, wie im vorliegenden Fall die Einfügeanweisung 344, werden dem Anweisungsblock dieser Kopieranweisung zugeordnet. Auf diese Weise werden die Anweisungen, die in der Anweisungsliste der 9a dargestellt sind, in drei Anweisungsblöcke 352, 354 und 356 aufgeteilt. Innerhalb der Anweisungsblöcke mit positiven Gleichbereichsanweisungen, im vorliegenden Fall also dem Anweisungsblock 354 mit den Anweisungen 344, 346, 348, werden die Anweisungen bezüglich ihrer Reihenfolge umgedreht.In the knowledge of this, the instructions are subsequently combined into instruction blocks. This is done according to the proviso that in each case such DC areas are combined into a block, the identical type (positive or negative) and are not interrupted by a statement that is of a different type (negative or positive). The insert instructions, when framed by the same-type equal-range instructions, are assigned to the instruction block of the copying instruction relating to these same-domains. Insert instructions followed by a positive-match copy instruction, such as the insert instruction in the present case 344 , are assigned to the instruction block of this copy instruction. In this way, the statements that are in the statement list of the 9a are shown in three instruction blocks 352 . 354 and 356 divided up. Within the statement blocks with positive DCA statements, in this case the statement block 354 with the instructions 344 . 346 . 348 , the instructions are reversed in their order.

Das Ergebnis dieser Veränderung der Reihenfolge ist in der 9b zu erkennen. Die darin abgebildete modifizierte Anweisungsliste weist die gleichen Anweisungen wie die in 9a dargestellte Anweisungsliste auf, wobei jedoch die Anweisungen 344 und 348 gegeneinander vertauscht sind. Die Reihenfolge der Anweisungen innerhalb der Anweisungsblöcke 352, 356 mit negativen Gleichbereichen bleibt unverändert. Ebenso unverändert bleibt die Reihenfolge der Anweisungsblöcke selbst, deren Reihenfolge der Anordnung der von ihnen jeweils beschriebenen Gleichbereiche in Referenzrichtung entspricht.The result of this change of order is in the 9b to recognize. The modified statement list depicted therein has the same instructions as those in FIG 9a but also the instructions 344 and 348 are interchanged. The order of the statements within the statement blocks 352 . 356 with negative dc ranges remains unchanged. The order of the statement blocks themselves remains unchanged, the order of which corresponds to the arrangement of the equal ranges in the reference direction which they each describe.

Die Anweisungen der Anweisungsliste der 9b entsprechen bezüglich ihrer Parameter genau den Anweisungen, in die die Anweisungen der in 5 dargestellten Anweisungsliste im Zuge des in 6 dargestellten Verfahrensabschnitts umgewandelt werden. Die Anweisungen der in 9b für die Variante B dargestellten Anweisungsliste können allerdings im Unterschied zu den Anweisungen der Variante A durch ein Datenverarbeitungssystem unmittelbar ausgeführt werden, ohne dass ein mit dem in 6 dargestellten Verfahrensabschnitt vergleichbarer Verfahrensabschnitt erforderlich wäre. Dem Vorteil des geringeren Aufwands bei der Umwandlung der Anweisungsliste in unmittelbar ausführbare Operationen steht allerdings eine deutlich höhere Zahl an Anweisungen gegenüber. Es ist unschwer ersichtlich, dass die Anweisungsliste der 5 mit lediglich acht Anweisungen signifikant kürzer ist als die Anweisungsliste der 9b mit elf Anweisungen.The instructions of the instruction list of the 9b correspond exactly to the instructions to which the instructions of the in 5 presented in the course of the in 6 converted process section are converted. The instructions of in 9b However, in contrast to the instructions of variant A, the instruction list shown for variant B can be executed directly by a data processing system, without having to use a data processing system 6 would be required method section comparable process section. However, the advantage of reducing the overhead of translating the Instruction List into directly executable operations is a significantly higher number of instructions. It is easy to see that the instruction list of the 5 with only eight statements is significantly shorter than the statement list of 9b with eleven instructions.

Wie die in der 5 dargestellte Anweisungsliste ist auch die in der 9b dargestellte Anweisungsliste die abschließende Anweisungsliste, die an das Datenverarbeitungssystem übertragen wird, dessen Speicher aktualisiert werden soll. Wie schon zu 5 erläutert, kann die Übertragung mittels eines Datenträgers oder auch mittels Datenfernübertragung durchgeführt werden.Like the ones in the 5 The instruction list shown is also that in the 9b The instruction set shown is the final instruction list that is transmitted to the data processing system whose memory is to be updated. As already too 5 explained, the transmission can be carried out by means of a data carrier or by remote data transmission.

Der Ausgangszustand, der Zielzustand sowie einige Zwischenzustände der Ausführung der Anweisungen der Anweisungsliste der 9b mittels eines Datenverarbeitungssystems sind den 10a und 10b zu entnehmen. Die dargestellten Zustände 370 bis 390 entsprechen weitgehend den in den 7a und 7b dargestellten Zwischenzuständen 270 bis 290. Einziger Unterschied ist, dass die Verschiebung des Gleichbereichs G5 im Falle des den 7a und 7b zugrunde liegenden Verfahrens erst durch eine Anweisung am Ende des positiven Anweisungsblocks bewirkt wird (siehe Übergang von Zustand 284 zu Zustand 286), während diese Verschiebung bei dem den 10a und 10b zugrunde liegenden Verfahren bereits am Ende des ersten negativen Anweisungsblocks bewirkt wird (siehe Übergang von Zustand 380 zu Zustand 382).The initial state, the destination state, and some intermediate states of execution of the instructions in the instruction list 9b by means of a data processing system are the 10a and 10b refer to. The illustrated states 370 to 390 correspond largely to those in the 7a and 7b illustrated intermediate states 270 to 290 , The only difference is that the shift of G5 in the case of the 7a and 7b the underlying method is only effected by an instruction at the end of the positive statement block (see transition from state 284 to state 286 ), while this shift in the 10a and 10b underlying method already at the end of the first negative statement block (see transition from state 380 to state 382 ).

Die Variante A eignet sich aufgrund ihrer geringen Zahl an Anweisungen insbesondere für Aktualisierungen, bei denen eine hohe Zahl an kleinen Veränderungen im Datenspeicher durchgeführt werden soll. Je kleiner die einzufügenden Datenblöcke jeweils sind, desto mehr fällt die durch die Anweisungen selbst erzeugte Datenmenge ins Gewicht. Die Variante B ist durch ihre Einfachheit vor allem bei leistungsschwächeren Datenverarbeitungssystemen zweckmäßig, insbesondere dann, wenn die erforderlichen Aktualisierungen eine geringe Zahl an Einzelbereichen betrifft.Due to its small number of instructions, variant A is particularly suitable for updates in which a large number of small changes in the data memory are to be carried out. The smaller the data blocks to be inserted in each case, the more the amount of data generated by the instructions themselves becomes significant. The variant B is due to its simplicity, especially in lower-performance data processing systems appropriate, especially if the necessary updates concern a small number of individual areas.

Die 11a bis 14b dienen der Erläuterung einer weiteren Ausführungsform des erfindungsgemäßen Verfahrens. Dieser liegt der Grundgedanke zugrunde, dass ein Datenspeicher mit einem Speicheranfang und einem Speicherende auch als Ringspeicher betrachtet werden kann, dessen Speicheranfang und Speicherende quasi miteinander verbunden sind. Eine solche Überlegung gestattet es, den Datenspeicher im Zuge der Aktualisierung so umzuorganisieren, dass der erste Speicherblock nach der Aktualisierung nicht an einer absoluten Speicherzelle 0 beginnt, sondern an einer beliebigen anderen Speicherzelle des Datenspeichers, einer logischen Speichernullstelle, wobei lediglich erforderlich ist, dass das zugreifende Datenverarbeitungsgerät weiß, wo die logische Speichernullstelle gegenüber der absoluten physikalischen Speichernullstelle liegt.The 11a to 14b serve to explain a further embodiment of the method according to the invention. This is based on the basic idea that a data memory with a memory start and a memory end can also be regarded as a ring memory whose memory start and memory end are quasi connected to each other. Such a consideration makes it possible to reorganize the data memory in the course of the update so that the first memory block after the update does not start at an absolute memory cell 0, but at any other memory cell of the data memory, a logical memory zero, where only that is required Accessing data processing device knows where the logical memory zero point is compared to the absolute physical memory zero.

11a zeigt wie 1b den Datenspeicher 10a vor der Durchführung der Aktualisierung. Das maßgebliche Problem bei der Aktualisierung des Datenspeichers hin zum Zielspeicherinhalt 10b der 1b liegt darin, dass einige Gleichbereiche innerhalb des Speichers in die eine Richtung und andere Gleichbereiche in die entgegengesetzte Richtung verschoben werden. Infolgedessen sind die oben beschriebenen Verfahrensvarianten erforderlich, um eine geeignete Reihenfolge der Schreiboperationen herzustellen, bei der vermieden wird, dass Speicherbereiche überschrieben werden, deren Inhalt anschließend noch gebraucht wird. 11a shows how 1b the data store 10a before performing the update. The key issue in updating the datastore towards the destination memory content 10b of the 1b This is because some DC areas within memory are shifted in one direction and other DC areas in the opposite direction. As a result, the method variants described above are required to establish a suitable order of the write operations, avoiding overwriting memory areas whose contents are subsequently used.

Wie die erste Modifikation 10c des Zielspeicherinhalts in 11a zeigt, ist durch einen als Ringspeicher organisierten Datenspeicher dieses Problem zu umgehen. Wenn alle Kopieranweisungen sowie alle Einfügeanweisungen bezüglich ihrer Fehlspeicheradresse um einen einheitlichen Wert, den Mo difikationswert, geändert werden, wird erreicht, dass es sich bei allen Gleichbereichen um negative Gleichbereiche handelt. Wie in 11a erkennbar ist, wird dadurch erreicht, dass die relative Positionsveränderung eines jeden Gleichbereichs in seiner Zielposition gegenüber seiner Ursprungsposition in die gleiche Richtung erfolgt. Im Falle des modifizierten Zielspeicherinhalts 10c ergibt sich gegenüber dem in 1b dargestellten Zielspeicherinhalt 10b ein Modifikationswert von –6. Ein jeder Gleichbereich wird also um sechs Byte gegenüber den im Zielspeicherinhalt 10b von 1b dargestellten Positionen der Gleichbereiche entgegen der Referenzrichtung 16 versetzt in den Datenspeicher eingefügt. Gleiches gilt für die Neubereiche, deren Zielposition ebenfalls um sechs Byte gegenüber der im Zielspeicherinhalt 10b von 1b dargestellten Position nach vorne verschoben sind.Like the first modification 10c of the destination memory contents in 11a shows, is to be avoided by a memory organized as a circular memory this problem. If all copy statements and all insert statements with respect to their miss memory address are changed by a uniform value, the modification value, it is achieved that all DC areas are negative DC areas. As in 11a can be seen is achieved by the fact that the relative change in position of each Gleichbereich in its target position relative to its original position takes place in the same direction. In the case of the modified destination memory content 10c arises opposite to in 1b shown destination memory content 10b a modification value of -6. Each DC range will be six bytes larger than the one in the destination memory 10b from 1b shown positions of the DC areas opposite to the reference direction 16 offset inserted into the data store. The same applies to the new areas whose target position is also six bytes compared to the destination memory content 10b from 1b shown position are shifted forward.

11b zeigt einen modifizierten Zielspeicherbereich 10d, der gegenüber dem Zielspeicherinhalt 10b von 1b um einen Modifikationswert von –19 versetzt ist. Das Zustandekommen dieses Modifikationswertes und die Erzeugung und Anpassung der Anweisungsliste zur Überführung des Ursprungspeicherinhaltes in den dargestellten modifizierten Zielspeicherinhalt 10d wird im Folgenden anhand des Ablaufdiagramms der 12 und verschiedener Zwischenstadien der Anweisungsliste, dargestellt in 13a bis 13e, erläutert. 11b shows a modified target storage area 10d , the opposite to the destination memory content 10b from 1b is offset by a modification value of -19. The realization of this modification value and the generation and adaptation of the instruction list for the transfer of the original memory contents into the illustrated modified destination memory content 10d will be described below with reference to the flow chart of 12 and various intermediate stages of the instruction list, presented in 13a to 13e , explained.

12 zeigt ein Ablaufdiagramm eines Verfahrens, mit dessen Hilfe eine Anweisungsliste erzeugt und angepasst wird, um den Ursprungsspeicherinhalt 10a in den modifizierten Zielspeicherinhalt 10d zu überführen. 12 FIG. 10 is a flowchart of a method by which an instruction list is generated and adjusted to the original memory content 10a in the modified destination memory content 10d to convict.

Nach dem Start 400 des Verfahrens wird in einem ersten Verfahrensschritt 402 eine Anweisungsliste mit Anweisungen er zeugt, deren Anweisungen in der Anweisungsliste in Reihenfolge der Gleich- und Neubereiche im Zielspeicherinhalt vorliegen. Die Erzeugung dieser Anweisungsliste erfolgt gemäß dem in 8 dargestellten Verfahrensabschnitt. Anschließend wird in einem Entscheidungsschritt 404 ermittelt, ob ein positiver Gleichbereich im ursprünglichen Zielspeicherinhalt 10b vorhanden ist.After the start 400 of the method is in a first step 402 It generates an instruction list with instructions whose statements in the statement list are in the order of the equal and new ranges in the target memory content. The generation of this statement list is performed according to the in 8th illustrated method section. Subsequently, in a decision step 404 determines if there is a positive equal band in the original target content 10b is available.

Wenn mindestens ein positiver Gleichbereich vorhanden ist, so wird in einem Verfahrensschritt 406 ermittelt, welcher positive Gleichbereich den größten Lageveränderungsbetrag aufweist. In einem sich daran anschließenden Verfahrensschritt 408 wird ein Modifikationswert auf den Lageveränderungsbetrag dieses ermittelten Gleichbereiches gesetzt.If at least one positive DC range is present, then in one process step 406 Determines which positive DC range has the largest change in position. In a subsequent process step 408 For example, a modification value is set to the attitude change amount of this detected DC region.

Wenn im Entscheidungsschritt 404 ermittelt wird, dass kein positiver Gleichbereich im Zielspeicherinhalt 10b vorhanden ist, wird in einem Verfahrensschritt 410 der negative Gleichbereich mit dem geringsten Lageveränderungsbetrag ermittelt und der Modifikationswert in einem Verfahrensschritt 412 auf 0 gesetzt.If in the decision step 404 it is determined that there is no positive equal band in the target memory content 10b is present, is in a process step 410 determines the negative DC range with the least change in position amount and the modification value in one step 412 set to 0.

An die Verfahrensschritte 408 sowie 412 schließt sich ein gemeinsamer Verfahrensschritt 414 an, in dem der Modifikationswert um einen Betrag erhöht wird, der der Distanz im Ursprungsspeicherinhalt zwischen der ersten Speicherzelle des ermittelten positiven bzw. negativen Gleichbereichs und der ersten Speicherzelle des vor diesem Gleichbereich stehenden, diskret beschreibbaren Speicherblocks entspricht. Unter einem diskret beschreibbaren Speicherblock wird dabei die kleinste Speichereinheit des Datenspeichers verstanden, die beschrieben werden kann, ohne dass durch diesen Schreibvorgang angrenzende Speicherbereiche tangiert werden. Der diesem Verfahrensschritt zugrunde gelegte Speicherblock ist so auszuwählen, dass er keine Daten des ermittelten Gleichbereichs umfasst. Wenn also beispielsweise die Größe eines diskret beschreibbaren Speicherblocks durch den Typ des Speichers auf 16 Byte festgelegt ist und der ermittelte Gleichbereich beim fünften Byte eines Speicherblocks beginnt, wird der Modifikationswert um 20 erhöht, was der Größe eines Speicherblocks plus der Größe des Speicherbereichs im Speicherblock des Gleichbereichs, der vor dem Gleichbereich liegt, entspricht. In einem anschließenden Verfahrensschritt 416 wird der Ziel-Parameter aller Anweisungen der Anweisungsliste um den somit festgelegten Modifikationswert verändert.To the process steps 408 such as 412 closes a joint process step 414 in which the modification value is increased by an amount which corresponds to the distance in the original memory content between the first memory cell of the determined positive or negative DC region and the first memory cell of the discretely writable memory block before this DC region. A discretely writable memory block is understood to mean the smallest memory unit of the data memory which can be written without this writing gang adjacent storage areas are affected. The memory block on which this method step is based is to be selected such that it does not include any data of the determined DC range. For example, if the size of a discretely-writable memory block is fixed at 16 bytes by the type of memory and the detected equal range begins at the fifth byte of a memory block, the modification value is increased by 20, which is the size of a memory block plus the size of the memory area in the memory block of the memory block DC range that lies before the DC range corresponds to. In a subsequent process step 416 the target parameter of all statements in the statement list is changed by the thus defined modification value.

In einem darauf folgenden Verfahrensschritt 418 werden alle Anweisungen, die in der Anweisungsliste vor der Anweisung stehen, die sich auf die Verschiebung des ermittelten Gleichbereichs bezieht, unter Beibehaltung ihrer Reihenfolge hinter die letzte Anweisung der Anweisungsliste verschoben. Die Anweisungsliste beginnt anschließend also mit jener Anweisung, die das Verschieben des im Verfahrensschritt 406 bzw. 410 ermittelten Gleichbereichs bezweckt. Anschließend wird in einem Verfahrensschritt 420 eine Anweisung an den Anfang der Anweisungsliste gestellt, die ein Kopieren eines Sicherungsbereichs vor dem ermittelten Gleichbereich in einen Temporärspeicher zum Inhalt hat. Dieser Sicherungsbereich weist eine Größe auf, die der Änderung des Modifikationswerts im Verfahrensschritt 414 entspricht. Der unmittelbar vor dem ermittelten Gleichbereich stehende Sicherungsbereich des Ursprungsspeicherinhalts wird in einem Temporärspeicher gespeichert, der ein spezieller Speicherbereich des allgemeinen Datenspeichers oder auch ein von diesem getrennter Datenspeicher sein kann. In einem abschließenden Verfahrensschritt 422 werden jene Anweisungen der Anweisungsliste, die ein Kopieren von Gleichbereichen zum Inhalt haben, die ganz oder teilweise im Sicherungsbereich angeordnet sind, dahingehend modifiziert, dass das Kopieren statt aus diesem Sicherungsbereich aus dem Temporärspeicher erfolgt. Anweisungen, die sich auf Gleichbereiche beziehen, die nur zum Teil im Sicherungsbereich angeordnet sind, werden in zwei getrennte Anweisungen zerlegt, wovon die eine sich auf den nicht im Sicherungsbereich befindlichen Anteil des Gleichbereichs und die andere sich auf den vollständig im Sicherungsbereich befindlichen Anteil des Gleichbereichs bezieht. Nach Abschluss dieses Verfahrensschritts 422 ist das Ende 424 des Verfahrens erreicht.In a subsequent process step 418 In the instruction list, all statements that precede the statement that relates to the shift of the determined DC range are moved, keeping their order, after the last statement in the statement list. The instruction list then begins with that instruction that the move in the step 406 respectively. 410 The objective of the identified equality Subsequently, in a process step 420 an instruction at the beginning of the statement list, which has a copy of a backup area before the determined DC area in a temporary memory to the content. This fuse area has a size that corresponds to the modification of the modification value in the method step 414 equivalent. The backup area of the original memory content, which is located immediately before the detected DC area, is stored in a temporary memory, which may be a special memory area of the general data memory or else a separate data memory. In a final process step 422 For example, those instructions of the instruction list that involve copying dc ranges that are wholly or partially located in the save area are modified to copy from the temporary store instead of this save area. Instructions relating to DC areas that are only partially located in the save area are split into two separate statements, one of which is the non-hedged portion of the DC and the other is the fully hedged portion of the DC refers. After completion of this procedural step 422 is the end 424 achieved the method.

Im Folgenden wird das im Ablaufdiagramm der 14 dargestellte Verfahren anhand des in der 11b dargestellten Ursprungsspeicherinhalts 10a und Zielspeicherinhalts 10d verdeutlicht.The following is the flowchart in the 14 illustrated method based on in the 11b illustrated source memory content 10a and destination memory contents 10d clarified.

Nach dem Start des Verfahrens wird im Verfahrensschritt 402 eine Anweisungsliste erzeugt. Diese Anweisungsliste ist in der 13a abgebildet. Sie entspricht der in der 9a dargestellten Anweisungsliste, da sie in identischer Art und Weise mit dem in 8 dargestellten Verfahren erzeugt wurde. Sie besteht aus Einerseits Kopier-Anweisungen zum Bewegen von Gleichbereichen, die als Parameter die Erstreckung des Gleichbereichs im Ursprungsspeicherinhalt 10a sowie die Ziel-Position des Gleichbereichs im Zielspeicherinhalt aufweisen, und aus Einfüge-Anweisungen, die als Parameter die einzufügenden Daten und die vorgesehene Ziel-Position im Datenspeicher aufweisen.After the start of the process is in the process step 402 generates a statement list. This statement list is in the 13a displayed. It corresponds to that in the 9a instruction list, since they are identical to the one in 8th has been produced. It consists on the one hand of copy instructions for moving DC areas, which as parameters are the extension of the DC area in the original memory contents 10a and the target position of the DC region in the target memory contents, and insertion instructions having as parameters the data to be inserted and the intended target position in the data memory.

Nach der Erzeugung der Anweisungsliste gemäß 13a wird im Entscheidungsschritt 404 ermittelt, ob mindestens ein positiver Gleichbereich vorhanden ist. Da sowohl der Gleichbereich G6 als auch der Gleichbereich G7 entgegen der Refe renzrichtung hin zu größeren Speicheradressen verschoben werden (siehe 1b), handelt es sich hierbei um positive Gleichbereiche. Infolgedessen wird im Verfahrensschritt 406 ermittelt, welches der Gleichbereich mit dem größten Lageveränderungsbetrag ist. Im vorliegenden Fall ist dies der Gleichbereich G6, dessen Lagerveränderungsbetrag gemäß Zielspeicherinhalt 10b den Wert 6 hat. Im Verfahrensschritt 408 wird der Modifikationswert auf diesen Lageveränderungsbetrag des ermittelten Gleichbereichs gesetzt und beträgt damit ebenfalls 6. Im anschließenden Verfahrensschritt 414 wird der Modifikationswert um einen Wert erhöht, der der Distanz zwischen dem Beginn des ermittelten Gleichbereichs G6 und dem Beginn des vor dem ermittelten Gleichbereich G6 angeordneten, diskret beschreibbaren Speicherblocks, der keine Inhalte des Gleichbereichs G6 enthält, entspricht.After generating the instruction list according to 13a will be in the decision step 404 Determines if at least one positive DC range exists. Since both the DC region G6 and the DC region G7 are shifted counter to the reference direction toward larger memory addresses (see FIG 1b ), these are positive equal parts. As a result, in the process step 406 determines which is the DC area with the largest change in location. In the present case, this is the DC area G6 whose stock change amount is according to the target storage content 10b has the value 6. In the process step 408 the modification value is set to this position change amount of the determined DC range and thus also amounts to 6. In the subsequent method step 414 the modification value is increased by a value corresponding to the distance between the beginning of the detected DC region G6 and the beginning of the discretely writable memory block, which does not contain contents of the DC region G6, located before the detected DC region G6.

Der 64 Byte große Datenspeicher ist im vorliegenden Fall in diskret beschreibbare Speicherblöcke von 8 Byte Größe unterteilt. Der für diesen Verfahrensschritt 414 im vorliegenden Fall zugrunde gelegte Speicherblock ist der Speicherblock beginnend mit Speicherzelle 24 und endend mit Speicherzelle 31. Da der Gleichbereich G6 beim sechsten Byte des darauffolgenden Speicherblocks beginnt, wird der Modifikationswert um insgesamt 13 erhöht, resultierend aus den 8 Byte der Größe eines Speicherblocks und der 5 Byte, die im Speicherblock des Gleichbereichs G6 vor dem Gleichbereich G6 angeordnet sind. Insgesamt wird der Modifikationswert dementsprechend auf 19 gesetzt. Anschließend wird im Verfahrensschritt 416 eine Änderung der Zielspeicherpositionen der Anweisungen der Anweisungsliste vorgenommen. Dabei werden die Zielspeicherpositionen jeweils um den Modifikationswert verringert, so dass anschließend die Zielspeicherpositionen aller Gleichbereiche geringer sind als die jeweiligen Ursprungsspeicherpositionen. Da der Datenspeicher als Ringspeicher aufgebaut ist, entsprechen die sich bei dieser Modifikation ergebenden negativen Speicherwerte denen der Gesamtgröße des Datenspeichers von 63 Byte abzüglich der Zielposition. 13b zeigt die Anweisungsliste nach der Verringerung der Zielspeicherposition aller Anweisungen. Die bei den Anweisungen 430, 432, 434, 436 in Klammern angegebenen Adressen sind die umgerechneten Speicheradressen negativer Angaben. Sie sind jedoch nicht Teil der Anweisungen.The 64-byte data memory is divided in the present case in discretely writable memory blocks of 8-byte size. The for this process step 414 The memory block used in the present case is the memory block starting with memory cell 24 and ending with memory cell 31. Since the DC region G6 starts at the sixth byte of the following memory block, the modification value is increased by a total of 13, resulting from the 8 bytes of the size of a memory block and 5 bytes which are arranged in the memory block of the DC region G6 before the DC region G6. Overall, the modification value is set to 19 accordingly. Subsequently, in the process step 416 made a change in the destination memory positions of the instructions in the instruction list. In this case, the target memory positions are each reduced by the modification value, so that subsequently the target memory positions of all DC bands are smaller than the respective original memory positions. Because the data store As ring memory is constructed, the negative memory values resulting from this modification correspond to those of the total size of the data memory of 63 bytes less the target position. 13b shows the instruction list after decreasing the destination memory position of all instructions. The instructions 430 . 432 . 434 . 436 The addresses specified in brackets are the converted memory addresses of negative indications. They are not part of the instructions.

Im anschließenden Verfahrensschritt 418 werden die Anweisungen der Anweisungsliste, die vor einer auf den ermittelten Gleichbereich bezogenen Anweisung angeordnet sind, unter Beibehaltung ihrer Reihenfolge hinter die letzte Anweisung der Anweisungsliste verschoben. Hierdurch wird erreicht, dass die Änderung des Speicherinhalts des Datenspeichers vom Ursprungsspeicherinhalt 10a zum Zielspeicherinhalt 10b bzw. zum Zielspeicherinhalt 10d in einer Reihenfolge erfolgt, bei der mit der Verschiebung eines Gleichbereichs begonnen wird, die die geringste erforderliche Verschiebung darstellt. In 13b ist die auf den ermittelten Gleichbereich bezogene Anweisung 446 fett gedruckt. Die Anweisungsliste nach Durchführung dieses Verfahrensschrittes 418 ist der 13c zu entnehmen. Wie bereits beschrieben, beginnt die so veränderte Anweisungsliste nunmehr mit der Anweisung 446, also der auf den ermittelten Gleichbereich mit dem geringsten Lageveränderungsbetrag bezogenen Anweisung.In the subsequent process step 418 If the instructions of the instruction list, which are arranged before an instruction relating to the ascertained DC range, are moved behind the last instruction of the statement list while keeping their order. This ensures that the change of the memory contents of the data memory from the original memory contents 10a to the destination memory content 10b or to the destination memory content 10d in an order starting with the shift of a DC range representing the least required shift. In 13b is the instruction related to the detected DC range 446 bold. The statement list after carrying out this method step 418 is the 13c refer to. As already described, the instruction list changed in this way now starts with the instruction 446 that is, the instruction related to the detected DC region having the least amount of posture change.

Im darauffolgenden Verfahrensschritt 420 wird an den Anfang der Anweisungsliste eine neue Anweisung 452 eingefügt, die das Kopieren eines Sicherungsbereiches in einen Temporärspeicher bezweckt. Dieser Sicherungsbereich erstreckt sich von der ersten Speicherzelle des ermittelten Gleichbereichs im Ursprungsspeicherinhalt 10a inklusive selbiger bis zur ersten Speicherzelle des Gleichbereichs im Zielspeicherin halt 10d ohne selbige. Seine Größe entspricht dem Modifikationswert. Zweck der Speicherung dieses Sicherungsbereiches in einem Temporärspeicher ist, dass alle Anweisungen, die sich auf nicht im Sicherungsbereich befindliche Gleichbereiche beziehen, ausgeführt werden können, ohne den Inhalt des Sicherungsspeicherbereichs unwiederbringlich zu überschreiben. Dadurch, dass der Gleichbereich mit bezüglich des Zielspeicherinhalts 10d geringstem Lageveränderungsbetrag Gegenstand der ersten Anweisung der Anweisungsliste ist, ist gewährleistet, dass so wenig Daten wie möglich in den Temporärspeicher übertragen werden müssen. Der Temporärspeicher kann dementsprechend klein gehalten werden. Die 13d zeigt die um die Sicherungsanweisung ergänzte Anweisungsliste, wobei „T: 0" für die Speicherzelle 0 des Temporärspeichers steht.In the subsequent process step 420 At the beginning of the statement list, a new statement is added 452 which is intended to copy a save area to a temporary store. This security area extends from the first memory cell of the determined DC area in the original memory content 10a including same up to the first memory cell of Gleichbereich in Zielspeicherin halt 10d without it. Its size corresponds to the modification value. The purpose of storing this save area in a temporary store is to allow all instructions relating to non-secure DC areas to be executed without irretrievably overwriting the contents of the backup storage area. By having the DC area with respect to the destination memory contents 10d The least amount of change in position is the subject of the first instruction in the instruction list, ensuring that as little data as possible has to be transferred to the temporary memory. The temporary memory can be kept small accordingly. The 13d shows the instruction list supplemented by the save instruction, where "T: 0" stands for the memory cell 0 of the temporary memory.

Im letzten Verfahrensschritt 422 werden jene Anweisungen, die sich auf Gleichbereiche beziehen, die sich im Ursprungsspeicherinhalt im Sicherungsbereich befinden, dahingehend verändert, dass diese Anweisungen die Daten aus dem Temporärspeicher statt aus dem Sicherungsbereich lesen. Da zum Zeitpunkt der Ausführung der jeweiligen Anweisungen der Sicherungsbereich von vorstehenden Anweisungen überschrieben ist, sind die Daten, auf die sich die im Verfahrensschritt 420 zu modifizierenden Anweisungen beziehen, schon gelöscht. Die Daten werden stattdessen aus dem Temporärspeicher gelesen. Wenn Anweisungen sich auf Gleichbereiche beziehen, die im Ursprungsspeicherinhalt teilweise innerhalb und teilweise außerhalb des Sicherungsbereichs stehen, werden diese Anweisungen in zwei Anweisungen unterteilt, wovon die eine sich auf den Gleichbereichsabschnitt außerhalb und die andere sich auf den Gleichbereichsabschnitt innerhalb des Sicherungsbereichs bezieht. In 13e sind die Auswirkungen des Verfahrensschritts 420 auf die Anweisungsliste erkennbar.In the last procedural step 422 For example, those instructions that refer to DCs that are in the source memory content in the backup region are modified to read the data from the temporary memory rather than the backup region. Since, at the time of executing the respective instructions, the save area is overwritten by the above instructions, the data to which the ones in the step are 420 refer to statements to be modified, already deleted. The data is instead read from the temporary memory. When statements refer to DC areas that are partially within and partially out of the save area in the source memory contents, these instructions are divided into two statements, one referring to the DC section outside and the other referring to the DC section within the backup section. In 13e are the effects of the procedural step 420 recognizable on the instruction list.

Die Anweisungen 438 und 442 sind nunmehr so modifiziert, dass sie ein Kopieren von Daten aus dem Temporärspeicher in den Datenspeicher an die durch den Zielspeicherinhalt 10d vorgegebenen Platz bewirken. Die Kopieranweisung 434, die sich auf den Gleichbereich G3 bezieht, ist in zwei Kopieranweisungen 434a und 434b unterteilt. Die Kopieranweisung 434b ist so ausgebildet, dass sie ein Kopieren des vormals im Sicherungsbereich angeordneten Abschnitts Gab des Gleichbereichs G3 aus dem Temporärspeicher in die durch den Zielspeicherinhalt 10d vorgegebene Position im Datenspeicher bewirkt. Die Kopieranweisung 434a bezieht sich auf den außerhalb des Sicherungsbereichs angeordneten Abschnitt G3a des Gleichbereichs G3 und ist nur bezüglich der Ausdehnung angepasst worden.The instructions 438 and 442 are now modified to copy data from the temporary memory to the data memory to the destination memory content 10d cause predetermined space. The copy instruction 434 referring to the DC area G3 is in two copy instructions 434a and 434b divided. The copy instruction 434b is adapted to copy the formerly in the fuse area arranged portion Gab of the Gleichbereichs G3 from the temporary memory into the by the target memory content 10d predetermined position in the data memory causes. The copy instruction 434a refers to the portion G3a of the DC region G3 which is arranged outside the securing region and has been adapted only with respect to the extent.

Die in der 13e dargestellte Anweisungsliste stellt die abschließende Anweisungsliste dar, die an das Datenverarbeitungssystem übertragen wird, welches anhand dieser Anweisungsliste die Aktualisierung des Datenspeichers durchführen kann.The in the 13e The instruction list shown represents the final instruction list which is transmitted to the data processing system which can use this instruction list to update the data memory.

Die 14a und 14b zeigen den Datenspeicher in verschiedenen Zuständen ausgehend von dem Ursprungsspeicherinhalt 10a bis zum Zielspeicherinhalt 10d im Zuge der Ausführung der Anweisungsliste gemäß 13e. Der Zustand 470 entspricht dem Ursprungsspeicherinhalt 10a. Ausgehend von diesem Zustand wird im Zuge der Ausführung der Anweisung 452 der Sicherungsbereich 468, der sich von der Speicherzelle 24 bis zur Speicherzelle 36 erstreckt, in einem nicht dargestellten Temporärspeicher kopiert. Der sich ergebende Zustand ist in 14a mit 472 markiert. Die anschließenden Anweisungen 446, 448, 450 bewirken ein Verschieben der Gleichbereiche G6, G7, G8 hin zu ihren durch den Zielspeicherinhalt 10d vorgegebenen Positionen. Bei der Ausführung der auf den Gleichbereich G1 bezogenen Anweisung 430 wird vom ausführenden Datenverarbeitungssystem die Ziel-Position –19 in Kenntnis der Größe des Ringspeichers von 64 Byte in die Zielposition 45 konvertiert. Analog dazu werden auch die Zielpositionen der Anweisungen 432 und 434, die sich auf die Gleichbereiche G2 bzw. G3a beziehen, konvertiert. Der jeweilige Zustand des Datenspeichers nach Ausführung dieser Anweisungen 430, 432, 434 ist den dargestellten Zuständen 480, 482, 484 zu entnehmen. Die dabei gestrichelt dargestellten Speicherbereiche G1, G2, G3 zeigen deren Positionen gemäß den entsprechenden Anweisungen 430, 432, 434. Die mit durchgehenden Linien dargestellten Gleichbereiche G1, G2, G3 zeigen die Positionen im Datenspeicher nach der Konvertierung der negativen Ziel-Positionen. Die Anweisung 436 bewirkt anschließend ein Einfügen des Neubereichs N1 in den Datenspeicher. Im Zuge der Ausführung der Kopieranweisung 434b wird der zweite Abschnitt Gab des Gleichbereichs G3 an seine Zielposition gemäß Zielspeicherinhalt 10d kopiert. Die Daten dieses zweiten Abschnitts Gab werden dabei aus dem Temporärspeicher gelesen. Gleiches gilt auch für die Daten der Gleichbereiche G4 und G5, die im Zuge der Kopieranweisungen 438 und 442 in den Datenspeicher kopiert werden. Die Neubereiche N2 und N3 werden nach der Kopieranweisung 438 bzw. 442 im Zuge der Einfügeanweisungen 440 und 444 an ihren gemäß modifiziertem Zielspeicherinhalt 10d vorgegebenen Positionen eingefügt.The 14a and 14b show the data store in various states based on the source memory contents 10a to the destination memory content 10d in the course of execution of the instruction list according to 13e , The state 470 corresponds to the original memory content 10a , Starting from this state becomes in the course of the execution of the instruction 452 the hedging area 468 , which extends from the memory cell 24 to the memory cell 36, copied in a temporary memory, not shown. The resulting state is in 14a With 472 marked. The subsequent instructions 446 . 448 . 450 cause a shifting of the DC regions G6, G7, G8 toward their through the target memory contents 10d given Po sitions. When executing the instruction related to the DC area G1 430 the executing data processing system sets the target position -19 with knowledge of the size of the ring buffer of 64 bytes in the target position 45 converted. The target positions of the instructions also become analogous 432 and 434 , which refer to the DC areas G2 and G3a, converted. The state of the data store after execution of these instructions 430 . 432 . 434 is the illustrated states 480 . 482 . 484 refer to. The memory areas G1, G2, G3 shown in dashed lines show their positions according to the corresponding instructions 430 . 432 . 434 , The dotted areas shown by solid lines G1, G2, G3 show the positions in the data memory after the conversion of the negative target positions. The instruction 436 then inserts the new range N1 into the data memory. In the course of the execution of the copy instruction 434b becomes the second portion Gab of the Gleichbereichs G3 to its destination position according to target memory content 10d copied. The data of this second section Gab are read from the temporary memory. The same applies to the data of the DC areas G4 and G5, which are used in the copy instructions 438 and 442 be copied to the data store. The new areas N2 and N3 are after the copy instruction 438 respectively. 442 in the course of the insertion instructions 440 and 444 at their according to modified destination memory contents 10d inserted in given positions.

Claims (23)

Verfahren zur Erzeugung einer Anweisungsliste zur automatischen Aktualisierung des Speicherinhalts eines Datenspeichers durch ein Datenverarbeitungssystem, bei dem der Inhalt des Datenspeichers ausgehend von einem Ursprungsspeicherinhalt (10a) in einen Zielspeicherinhalt (10b) überführt wird, wobei – sich der Zielspeicherinhalt (10b) aus Gleichbereichen (G1 bis G8), die gegenüber dem Ursprungsspeicherinhalt inhaltlich unverändert sind, und/oder Neubereichen (N1, N2, N3), die im Ursprungsspeicherinhalt nicht enthalten sind, zusammensetzt, – die Gleichbereiche im Ursprungsspeicherinhalt und im Zielspeicherinhalt in einer frei festgelegten Referenzrichtung (16) in gleicher Reihenfolge angeordnet sind und – die Gleichbereiche positive Gleichbereiche (G6, G7) umfassen, deren Lage im Zielspeicherinhalt gegenüber dem Ursprungsspeicherinhalt in der Referenzrichtung versetzt ist, und negative Gleichbereiche (G1, G2, G3, G4, G5, G8) umfassen, deren Lage im Zielspeicherinhalt gegenüber dem Ursprungsspeicherinhalt entgegen der Referenzrichtung versetzt ist, dadurch gekennzeichnet, dass – die Anweisungsliste Anweisungsblöcke (352, 354, 356) aufweist, in denen Gleichbereichsanweisungen (330, 332, 334, 338, 342, 346, 348, 350) enthalten sind, die jeweils mindestens einen Gleichbereich (G1 bis G8) hinsichtlich seiner Lageveränderung vom Ursprungsspeicherinhalt (10a) zum Zielspeicherinhalt (10b) beschreiben, wobei jeder dieser Anweisungsblöcke entweder ein negativer (352, 356) oder ein positiver (354) Anweisungsblock ist, – die negativen Anweisungsblöcke (352, 356) diejenigen Gleichbereichsanweisungen (330, 332, 334, 338, 342, 350) umfassen, die die Lageveränderung von im Ursprungsspeicherinhalt (10a) aufeinander folgenden negativen Gleichbereichen (G1, G2, G3, G4, G5, G8) beschreiben, wobei die negativen Anweisungsblöcke (352, 356) jeweils die Gleichbereichsanweisungen (330, 332, 334, 338, 342, 350) mindestens eines in Referenzrichtung (16) ersten (G1, G8) bis eines in Referenzrichtung vorletzten (G4) negativen Gleichbereichs dieser aufeinander folgenden Gleichbereiche (G1, G2, G3, G4, G5, G8) umfassen, wobei die Gleichbereichsanweisungen (330, 332, 334, 338, 342, 350) innerhalb ihres jeweiligen negativen Anweisungsblocks in der Reihenfolge der jeweils beschriebenen negativen Gleichbereiche im Ursprungsspeicherinhalt in Referenzrichtung angeordnet sind, – die positiven Anweisungsblöcke (354) die in den negativen Anweisungsblöcken nicht umfassten Gleichbereichsanweisungen (346, 348) umfassen, welche die Lageveränderung von im Ursprungsspeicherinhalt aufeinander folgenden Gleichbereichen (G5, G6) beschreiben, wobei die innerhalb von positiven Anweisungsblöcken (354) enthaltenen Gleichbereichsanweisungen (346, 348) innerhalb ihres jeweiligen positiven Anweisungsblocks (354) in der Reihenfolge der jeweils beschriebenen Gleichbereiche im Ursprungsspeicherinhalt entgegen der Referenzrichtung angeordnet sind.A method for generating a statement list for automatic updating of the memory contents of a data memory by a data processing system, in which the content of the data memory is based on an original memory content ( 10a ) into a destination memory content ( 10b ), wherein - the destination memory content ( 10b ) from equal areas (G1 to G8), which are unchanged in content with respect to the original memory content, and / or new areas (N1, N2, N3) which are not contained in the original memory content, - the DC areas in the original memory content and in the destination memory content in a freely defined Reference direction ( 16 ) are arranged in the same sequence, and - the dc areas comprise positive dc areas (G6, G7) whose position in the destination memory content is offset from the original memory content in the reference direction and negative dc areas (G1, G2, G3, G4, G5, G8), whose position in the destination memory content is offset from the original memory content in the direction opposite to the reference direction, characterized in that - the instruction list instruction blocks ( 352 . 354 . 356 ), in which equal-range statements ( 330 . 332 . 334 . 338 . 342 . 346 . 348 . 350 ), each having at least one DC region (G1 to G8) with respect to its position change from the original memory content ( 10a ) to the destination memory content ( 10b ), each of these instruction blocks being either a negative ( 352 . 356 ) or a positive ( 354 ) Statement block is, - the negative statement blocks ( 352 . 356 ) those DC instructions ( 330 . 332 . 334 . 338 . 342 . 350 ) containing the change in position of the original memory ( 10a ) successive negative DC areas (G1, G2, G3, G4, G5, G8), the negative statement blocks ( 352 . 356 ) the equal-range statements ( 330 . 332 . 334 . 338 . 342 . 350 ) at least one in the reference direction ( 16 ) comprise first (G1, G8) to a reference negative (G4) negative DC range of these successive DC domains (G1, G2, G3, G4, G5, G8), the DC domain instructions (G1) 330 . 332 . 334 . 338 . 342 . 350 ) within their respective negative instruction block are arranged in the reference direction in the order of the respectively described negative dc ranges in the original memory content, - the positive instruction blocks ( 354 ) the DCS statements not contained in the negative statement blocks ( 346 . 348 ) which describe the change in position of successive equal domains (G5, G6) in the original memory content, the information contained within positive instruction blocks ( 354 ) containing equality instructions ( 346 . 348 ) within their respective positive statement block ( 354 ) are arranged in the order of the respective DC areas described in the original memory contents opposite to the reference direction. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Anweisungsblöcke (352, 354, 356) in der Anweisungsliste in einer Reihenfolge angeordnet sind, die der Reihenfolge der Gleichbereiche (G1 bis G8) in Referenzrichtung (16) im Ursprungsspeicherinhalt (10a) entspricht, die von den Gleichbereichsanweisungen (330, 332, 334, 338, 342; 346, 348; 350) der jeweiligen Anweisungsblöcke (352, 354, 356) beschrieben werden.Method according to claim 1, characterized in that the instruction blocks ( 352 . 354 . 356 ) are arranged in the order list in an order that corresponds to the order of the equal ranges (G1 to G8) in the reference direction ( 16 ) in the original memory content ( 10a ) from the DCS statements ( 330 . 332 . 334 . 338 . 342 ; 346 . 348 ; 350 ) of the respective instruction blocks ( 352 354 . 356 ) to be discribed. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass die Anweisungsliste Neubereichsanweisungen (336, 340, 344) enthält, die die einzufügenden Daten (N1, N2, N3) und die Lage der Neubereiche (N1, N2, N3) beschreiben.Method according to Claim 1 or 2, characterized in that the statement list contains new range statements ( 336 . 340 . 344 ) describing the data to be inserted (N1, N2, N3) and the location of the new areas (N1, N2, N3). Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass Neubereichsanweisungen (344), die einen Neubereich (N3) beschreiben, der in Referenzrichtung (16) auf einen negativen Gleichbereich (G5) folgt und dem in Referenzrichtung (16) ein positiver Gleichbereich (G6) folgt, in dem Anweisungsblock (354) jener Gleichbereichsanweisung (346) enthalten sind, die die Lageveränderung des positiven Gleichbereichs (G6) beschreibt.Method according to claim 3, characterized in that new area statements ( 344 ) describing a new region (N3) that is in the reference direction ( 16 ) to a negative DC range (G5) follows and in the reference direction ( 16 ) is followed by a positive DC region (G6), in the statement block ( 354 ) of that Gleichbereichsanweisung ( 346 ), which describes the change in position of the positive DC region (G6). Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass die Anweisungen Kopieranweisungen (330, 332, 334, 338, 342, 346, 348, 350) und Einfügeanweisungen (336, 340, 344) umfassen, wobei – die Kopieranweisungen jeweils einen Gleichbereich (G1, G2, G3, G4, G5, G8) hinsichtlich seiner Lage im Ur sprungsspeicherinhalt (10a), seiner Größe und seiner Lage im Zielspeicherinhalt (10b) beschreiben und – die Einfügeanweisungen jeweils einen Neubereich (N1, N2, N3) hinsichtlich seiner Daten und seiner Lage im Zielspeicherinhalt (10b) beschreiben.Method according to claim 3 or 4, characterized in that the instructions copy instructions ( 330 . 332 . 334 . 338 . 342 . 346 . 348 . 350 ) and insertion instructions ( 336 . 340 . 344 ), wherein - the copy instructions each have a DC area (G1, G2, G3, G4, G5, G8) with respect to its location in the original memory content ( 10a ), its size and its location in the destination memory ( 10b ) and the insertion instructions each describe a new area (N1, N2, N3) with regard to its data and its location in the destination memory content ( 10b ). Verfahren nach Anspruch 3 oder 4, dadurch gekennzeichnet, dass die Anweisungen Löschanweisungen (140, 142, 144, 150, 152) und Einfügeanweisungen (144, 146, 148) umfassen, wobei – die Löschanweisungen jeweils einen Bereich (L1, L2, L3, L4, L5) im Datenspeicher beschreiben, dessen im Ursprungsspeicherinhalt (10a) enthaltenen Daten im Zielspeicherinhalt (10b) nicht mehr enthalten sind, und – die Einfügeanweisungen jeweils einen Neubereich (N1, N2, N3) hinsichtlich seiner Daten und seiner Lage im Zielspeicherinhalt (10b) beschreiben und wobei die Anweisungen dahingehend markiert sind, ob es sich um Anweisungen eines positiven Anweisungsblocks (354) oder eines negativen Anweisungsblocks (352, 356) handelt.A method according to claim 3 or 4, characterized in that the instructions delete instructions ( 140 . 142 . 144 . 150 . 152 ) and insertion instructions ( 144 . 146 . 148 ), wherein - the deletion instructions each describe a region (L1, L2, L3, L4, L5) in the data memory whose original memory contents ( 10a ) contained in the target memory content ( 10b ) are no longer contained, and the insertion instructions each have a new area (N1, N2, N3) with regard to its data and its location in the destination memory content ( 10b ) and the instructions are marked as to whether they are statements of a positive statement block ( 354 ) or a negative statement block ( 352 . 356 ). Verfahren nach Anspruch 6, dadurch gekennzeichnet, dass die Anweisungen Modifizierungsanweisungen (144) umfassen, die den Inhalt einer Löschanweisung und einer Einfügeanweisung umfassen.Method according to claim 6, characterized in that the instructions include modification instructions ( 144 ) comprising the contents of an erase instruction and an insertion instruction. Verfahren zur Erzeugung einer Anweisungsliste nach dem Oberbegriff von Anspruch 1, dadurch gekennzeichnet, dass eine anfängliche Anweisungsliste erzeugt wird, wobei – die anfängliche Anweisungsliste Gleichbereichsanweisun gen (430, 432, 434, 438, 442, 446, 448, 450) enthält, die jeweils die Lageveränderung eines Gleichbereichs (G1 bis G8) in Form eines Lageveränderungsbetrages und einer Lageveränderungsrichtung eines Gleichbereichs beschreiben, und – die Gleichbereichsanweisungen in der anfänglichen Anweisungsliste in der Reihenfolge der Gleichbereiche im Ursprungsspeicherinhalt (10a) in Referenzrichtung (16) angeordnet sind, und anschließend eine Modifikation der Anweisungen der Anweisungsliste durchgeführt wird, bei der die in den Gleichbereichsanweisungen (430, 432, 434, 438, 442, 446, 448, 450) beschriebenen Lageveränderungen um einen für alle Gleichbereichsanweisungen einheitlichen Modifikationswert gegenüber der durch den Zielspeicherinhalt (10b) bedingten Lageveränderung derart geändert werden, dass alle Gleichbereiche zu negativen Gleichbereichen werden, wobei der Modifikationswert so groß gewählt wird, dass der minimale Lageveränderungsbetrag der Gleichbereichsanweisungen nach der Modifikation für jede Gleichbereichsanweisung einen Minimalbetrag nicht unterschreitet.Method for generating a statement list according to the preamble of claim 1, characterized in that an initial statement list is generated, wherein - the initial statement list contains equal area instructions ( 430 . 432 . 434 . 438 . 442 . 446 . 448 . 450 ), each describing the change in position of a DC region (G1 to G8) in the form of a position change amount and a position change direction of a DC region, and - the DC range statements in the initial instruction list in the order of DC regions in the original memory content ( 10a ) in the reference direction ( 16 ), and then a modification of the instructions of the instruction list is carried out, in which the in the Gleichbereichsanweisungen ( 430 . 432 . 434 . 438 . 442 . 446 . 448 . 450 ) described by a uniform modification value for all Gleichbereichsanweisungen over that by the target memory content ( 10b ) conditional change such that all DC areas become negative DC areas, wherein the modification value is set so large that the minimum posture change amount of the DC postings after the modification does not fall short of a minimum amount for each DC area instruction. Verfahren nach Anspruch 8, dadurch gekennzeichnet, dass der Modifikationswert in Abhängigkeit des Lageveränderungsbetrages des negativen Gleichbereichs mit dem geringsten Lageveränderungsbetrag festgelegt wird.Method according to claim 8, characterized in that that the modification value in dependence of the Lageveränderungsbetrages of the negative DC with the least amount of change in position is determined. Verfahren nach Anspruch 8 oder 9, dadurch gekennzeichnet, dass der Minimalbetrag in Abhängigkeit von einer kleinsten separat beschreibbaren Blockgröße des zu aktualisierenden Datenspeichers festgelegt wird.Method according to claim 8 or 9, characterized that the minimum amount depending on from a smallest separately writable block size of the updating data store. Verfahren nach einem der Ansprüche 8 bis 10, dadurch gekennzeichnet, dass nach der Modifikation der Gleichbereichsanweisungen eine Umstellung der Reihenfolge durchgeführt wird, bei der alle Gleichbereichsanweisungen (430, 432, 434, 438, 442), die vor der Gleichbereichsanweisung (446) mit dem über alle Gleichbereichsanweisungen geringsten Lageveränderungsbetrag stehen, unter Beibehaltung ihrer Reihenfolge hinter die letzte Gleichbereichsanweisung (446) verschoben werden.Method according to one of claims 8 to 10, characterized in that after the modification of the Gleichbereichsanweisungen a change of the order is performed, in which all Gleichbereichsanweisungen ( 430 . 432 . 434 . 438 . 442 ) that preceded the DCS instruction ( 446 ) with the least amount of posture change over all DCS statements, keeping their order after the last DCA statement ( 446 ) are moved. Verfahren nach einem der Ansprüche 8 bis 11, dadurch gekennzeichnet, dass – vor die erste Anweisung (430) in der Anweisungsliste eine Sicherungsanweisung (452) zur Sicherung des Speicherbereichs (468), der bei Ausführung der ersten Gleichbereichsanweisung (446) überschrieben wird, in einen Temporärspeicher eingefügt wird und – die Gleichbereichsanweisungen (430, 432, 434) der Anweisungsliste, die sich auf einen in diesem Speicherbereich (468) befindlichen Gleichbereich (G3, G4, G5) beziehen, dahingehend modifiziert werden, dass sie ihre Daten aus diesem Temporärspeicher lesen.Method according to one of claims 8 to 11, characterized in that - before the first instruction ( 430 ) in the instruction list a safety instruction ( 452 ) to save the memory area ( 468 ), which is executed when the first DCS instruction ( 446 ), is inserted in a temporary memory and - the equal-range instructions ( 430 . 432 . 434 ) of the instruction list relating to one in this memory area ( 468 ), are modified to read their data from this temporary memory. Verfahren nach einem der vorstehenden Ansprüche 8 bis 11, dadurch gekennzeichnet, dass in der Anweisungsliste Kopier-Anweisungen, die sich auf Gleichbereiche im Ursprungsspeicherinhalt beziehen, die der bei Ausführung der ersten Gleichbereichsanweisung überschrieben werden, durch Einfüge-Anweisungen ersetzt werden, die ein Einfügen der Inhalte der betroffenen Gleichbereiche als Neubereiche in den Datenspeicher an die gemäß Zielspeicherinhalt vorgesehenen Positionen vorsehen.Method according to one of the preceding claims 8 to 11, characterized in that in the instruction list copy statements that refer to DC areas in the original memory content, which are overwritten when executing the first Gleichbereichsanweisung by Ein replace instructions that provide for inserting the contents of the affected dicates as new ranges into the data memory at the locations provided according to destination memory contents. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass der Ursprungsspeicherinhalt (10a) und der Zielspeicherinhalt (10b) diskrete Datensätze (12) aufweisen.Method according to one of the preceding claims, characterized in that the original memory content ( 10a ) and the destination memory content ( 10b ) discrete data records ( 12 ) exhibit. Verfahren nach Anspruch 14, dadurch gekennzeichnet, dass die Gleichbereiche anhand von Vergleichen zwischen Datensätzen (12) des Ursprungsspeicherinhalts (10a) und des Zielspeicherinhalts (10b) ermittelt werden.A method according to claim 14, characterized in that the DC ranges based on comparisons between data sets ( 12 ) of the original memory contents ( 10a ) and destination memory content ( 10b ) be determined. Verfahren nach Anspruch 15, dadurch gekennzeichnet, dass den Datensätzen (12) jeweils ein eindeutiger Identifikationsschlüssel (A, B, C, D, E, F, H, J, K, M, O, P, Q, R) zugeordnet ist und zur Ermittlung der Gleichbereiche ausschließlich Datensätzen (12) des Ursprungsspeicherinhalts (10a) und des Zielspeicherinhalts (10b), die den identischen eindeutigen Identifikationsschlüssel (A, C, E, F, H, J, M, P, R) aufweisen, miteinander verglichen werden.Method according to claim 15, characterized in that the data sets ( 12 ) in each case a unique identification key (A, B, C, D, E, F, H, J, K, M, O, P, Q, R) is assigned and to determine the DC areas exclusively records ( 12 ) of the original memory contents ( 10a ) and destination memory content ( 10b ) having the identical unique identification key (A, C, E, F, H, J, M, P, R) are compared with each other. Verfahren nach Anspruch 16, dadurch gekennzeichnet, dass die Identifikationsschlüssel (A, B, C, D, E, F, H, J, K, M, O, P, Q, R) Elemente einer sortierbaren Menge sind und die Datensätze (12) des Ursprungsspeicherinhalts (10a) und des Zielspeicherinhalts (10b) auf gleiche Weise sortiert vorliegen.A method according to claim 16, characterized in that the identification keys (A, B, C, D, E, F, H, J, K, M, O, P, Q, R) are elements of a sortable amount and the data sets ( 12 ) of the original memory contents ( 10a ) and destination memory content ( 10b ) are sorted in the same way. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, dass die Anweisungsliste Index-Anweisungen enthält, die die Anpassung einer auf den Datenspeicher bezogenen Indextabelle beschreiben.Method according to one of the preceding claims, characterized in that the statement list contains index statements that the adaptation of an index table related to the data store describe. Verfahren nach Anspruch 18, dadurch gekennzeichnet, dass in der Anweisungsliste Index-Anweisungen zur Anpassung der Indextabelle nur für jene Einträge der Indextabelle enthalten sind, deren Veränderung nicht implizit aus den Gleichbereichsanweisungen hervorgeht.Method according to claim 18, characterized that in the statement list index statements for adjusting the Index table only for those Posts the index table, their change is not implicit the Gleichbereichsanweisungen. Verwendung einer nach einem der vorstehenden Ansprüche erzeugten Anweisungsliste, wobei die Anweisungsliste an ein Datenverarbeitungssystem mit einem Datenspeicher übertragen wird und dieses anhand der Anweisungsliste den Datenspeicher aktualisiert.Use of a product produced according to one of the preceding claims Statement list, the instruction list being sent to a data processing system transmitted with a data memory and it updates the data store using the statement list. Verwendung nach Anspruch 20, dadurch gekennzeichnet, dass bei der Aktualisierung der Daten im Datenspeicher anhand der Anweisungsliste eine Anpassung von Indexeinträgen einer Indextabelle durchgeführt wird.Use according to claim 20, characterized that when updating the data in the data store using the Instruction List an adjustment of index entries of an index table is performed. Verwendung nach Anspruch 21, dadurch gekennzeichnet, dass die Anpassung von Indexeinträgen, die eine auf einen Gleichbereich bezogene Zieladresse aufweisen, dahingehend erfolgt, dass die Zieladresse entsprechend dem Lageveränderungswert der entsprechenden Gleichbereichsanweisung angepasst wird.Use according to claim 21, characterized that the adjustment of index entries, the one on a DC have related destination address, to the effect that the destination address according to the attitude change value adapted to the corresponding equal-range instruction. Verwendung nach Anspruch 21 oder 22, dadurch gekennzeichnet, dass Indexeinträge, die eine Zieladresse aufweisen, die sich auf einen nicht in den Zielspeicherinhalt übernommenen Speicherinhalt bezieht, bei der Aktualisierung automatisch gelöscht werden.Use according to claim 21 or 22, characterized in that Index entries which have a destination address that refers to a non-destination content Memory contents are automatically deleted during the update.
DE102005011477A 2005-03-12 2005-03-12 Instruction set producing method for automatic updating of vehicle`s data memory, involves arranging negative block of instructions in source contents in reference direction, and positive block of instructions in opposition to direction Withdrawn DE102005011477A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE102005011477A DE102005011477A1 (en) 2005-03-12 2005-03-12 Instruction set producing method for automatic updating of vehicle`s data memory, involves arranging negative block of instructions in source contents in reference direction, and positive block of instructions in opposition to direction

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102005011477A DE102005011477A1 (en) 2005-03-12 2005-03-12 Instruction set producing method for automatic updating of vehicle`s data memory, involves arranging negative block of instructions in source contents in reference direction, and positive block of instructions in opposition to direction

Publications (1)

Publication Number Publication Date
DE102005011477A1 true DE102005011477A1 (en) 2006-04-13

Family

ID=36088967

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102005011477A Withdrawn DE102005011477A1 (en) 2005-03-12 2005-03-12 Instruction set producing method for automatic updating of vehicle`s data memory, involves arranging negative block of instructions in source contents in reference direction, and positive block of instructions in opposition to direction

Country Status (1)

Country Link
DE (1) DE102005011477A1 (en)

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
(recherschiert am 16.11.04), [www.redbend.com/pdf/AddressingTheChallenge.pdf In web.archive. org. am 10.07,2004] *
Addressing the Challenges of Updating Software and Firmware on Mobile Telephone Handsets Over the Air, Red Bend Software, Framingham, MA, USA, S.1-9 *
Addressing the Challenges of Updating Software and Firmware on Mobile Telephone Handsets Over the Air, Red Bend Software, Framingham, MA, USA, S.1-9; (recherschiert am 16.11.04), [www.redbend.com/pdf/AddressingTheChallenge.pdf In web.archive. org. am 10.07,2004]
BURNS,R.,et.al.:In-place reconstruction of version differences. In:IEEE Transactions on Knowledge and Data Engineering, Vol.15, No.4, July/August 2003,S.973-984 *
BURNS,R.,et.al.:In-place reconstruction of version differences. In:IEEE Transactions on Knowledge and Data Engineering, Vol.15, No.4, July/August 2003,S.973-984;
http://www.embedded.com/show Article,jhtml?articleID=19205567] *
MORROW,Michael:Optimizing Memcpy improves speed.In:Embedded.com, 29.04.04, (recherchiert am 14.11.05) *
MORROW,Michael:Optimizing Memcpy improves speed.In:Embedded.com, 29.04.04, (recherchiert am 14.11.05);[http://www.embedded.com/show Article,jhtml?articleID=19205567];

Similar Documents

Publication Publication Date Title
DE3131341C2 (en)
DE69927109T2 (en) Memory for searching information by prefix analysis for nodes of high-speed networks
DE3416939A1 (en) METHOD FOR CONTROLLING OPERATING DEVICES
EP2882145A1 (en) Method and filter assembly for buffering information about incoming messages transmitted over a serial bus of a communication network in a node of the network
EP1190324B1 (en) Process for the secure writing of a pointer for a circular memory
DE602004008240T2 (en) Method for managing defective memory blocks in a non-volatile memory and non-volatile memory for carrying out the method
DE2422732C2 (en) Hierarchical storage arrangement
DE10120615B4 (en) Dynamic memory management for objects of different sizes
WO2009015952A1 (en) Method for operating a tachograph and tachograph
DE102005011477A1 (en) Instruction set producing method for automatic updating of vehicle`s data memory, involves arranging negative block of instructions in source contents in reference direction, and positive block of instructions in opposition to direction
EP1332501B1 (en) Memory management logic for expanding the utilization of read-only memories
DE10252059B3 (en) Data memory operating method e.g. for portable data carrier or mobile data processor, using back-up memory for retaining memory cell contents upon current interruption during programming
DE1774212B2 (en) EN 20417 08/12/67 "37132 BEZ: DATA PROCESSING SYSTEM
EP1325412B1 (en) Method for accessing a memory unit in which sequences of notes are stored, corresponding memory unit and corresponding program
EP3857815A1 (en) Database and method for data deletion
DE102006013759B4 (en) Method and computing unit for operating a memory device
DE112015002881B4 (en) Storage device, flash memory controller and program
EP1276116B1 (en) Method for storing related data
DE102004005290B3 (en) Securing data in non-volatile data memory divided into segments involves management data per segment containing further data element to determine age range of second segment data compared to first segment data for incomplete clearing
WO2000007116A1 (en) Method, arrangement and set of a plurality of arrangements for remedying at least one inconsistency in a group of databases which comprises a database and at least one copy database of the database
DE2302379C3 (en) Circuit arrangement for performing sequentially running input / output operations in a data processing system working with virtual addressing
DE19738712C2 (en) Non-volatile memory with memory cells combined into subblocks
DE102004006308A1 (en) Patch data generating method for e.g. smart card, involves comparing original and new memory images to identify sub ranges of images, recording data for identified ranges to generate patch data, and modifying code as indicated in patch data
EP0603632B1 (en) Method for controlling a processor device
DE10128752A1 (en) Storage of data in computer memory, especially EEPROM or flash memory by writing data to memory in pages, whereby each page contains a value and a reference to the next page in the chain

Legal Events

Date Code Title Description
OAV Applicant agreed to the publication of the unexamined application as to paragraph 31 lit. 2 z1
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
8127 New person/name/address of the applicant

Owner name: RAICHLE, BERND, DIPL.-INFORM., 70372 STUTTGART, DE

Owner name: SCHORN, ALEXANDER, DIPL.-ING., 34549 EDERTAL, DE

Owner name: ALEKSIC, MARIO, DIPL.-INFORM., 78647 TROSSINGEN, D

8120 Willingness to grant licences paragraph 23
R005 Application deemed withdrawn due to failure to request examination

Effective date: 20120313