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.