DE2110311A1 - Statusmarkierung von Variablen - Google Patents
Statusmarkierung von VariablenInfo
- Publication number
- DE2110311A1 DE2110311A1 DE19712110311 DE2110311A DE2110311A1 DE 2110311 A1 DE2110311 A1 DE 2110311A1 DE 19712110311 DE19712110311 DE 19712110311 DE 2110311 A DE2110311 A DE 2110311A DE 2110311 A1 DE2110311 A1 DE 2110311A1
- Authority
- DE
- Germany
- Prior art keywords
- variable
- status
- marking
- variables
- word
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
PHN. 475?.
Bcaa/EVK,
Dr. IIcihcrt Scfc«is
Anmelder: Ν.Υ. Philips'GioeiSampenfabneken ^ ' ' U ° ' '
Anmelder: Ν.Υ. Philips'GioeiSampenfabneken ^ ' ' U ° ' '
Akte No., PHIi- 4759
Anmeldung vorm 6. März 1971
Die Erfindung betrifft ein Verfahren zur Statuemarkierung
einer Variablen, die in dam Speicher eines Rechnereyatema vorhanden und während eines Prozeases anrufbar iat. Mit dem Status
einer Variablen wird hier z.B. gemeintt Variable ist bekannt,
unbekannt, usw.
Die bekanntesten Komputersprachen (Algol '60, Fortran ...)
und Aasemblier- und Maachinenspraohen sind algorithmiaoh. Dieae
Sprachen vermitteln eine Reihe von Sohritten, nach denen die Ausgangs variable η von den Eingangavariablen hergeleitet werden.
In der Üblichen technischen und mathematischen Beschreibungsweise wird jedoch viel mehr Gebrauch gemacht von Beziehungen und Gleichungen als von Algorithmen· Eine einfache Definitionegleiohung
für eine Variable y, wobei y ■ y(3t<» 3t« ··· x ) würde, in algorithmisohQj· Sprache geeohxiebesi, ersten« einem Algorithmus, der
y aus S1, X2 ··· £ herleitet, -und zweitens der strengen Forderung«
109843/1688
- 2 - PHN. 4759.
dass ein einmal bekanntes y ungültig werden muss, sobald einer dex Eingangaparametex χ.., x„ ... χ verändert wird, entsprechen.
Dies hat zur Folge, dass der Programmierer verpflichtet ist, die Struktur seines Programms so zu wählen, dass die erwähnte
Forderung immer erfüllt wird. Geschehe dies nicht, dann würde das Programm, wenn die Variable y wieder angerufen wird, mit
dem früher bestimmten y-Wert, der inzwischen jedoch durch eine Aenderung eines oder mehrerer Elemente X1, X2 ... χ , der falsche
Wert ist, weiter reohnen. Anderseits muss der Piogxammierer dafür sorgen, dass, wenn im Verlauf eines Programms eine mit Hilfe
eines anderen Programms errechenbare Variable y angefordert wird, diese y auoh zur Verfügung steht. Ist dies nicht oder nur teilweise der Fall (d.h. es ist erst lediglich eine Annäherung an den
y-Wert gefunden worden), so würde das Lesen des Inhaltes (A (y)) einer von dem Programm angeforderten Adresse A, wo das Programm
den y-Wert erwartet, einen falschen oder nur angenäherten y-Wert hervorbringen.
Zweck der Erfindung ist es« den Programmierer von den
oben erwShnten Programmierungskomplikationen zu befreien.Dieses
Ziel kann auf technische Weise erreicht werden. Das Verfahren zur Statuemarkierung einer Variable wird naoh der Erfindung dadurch gekennzeichnet, dass in dem Wort an der Adresse der Variablen in dem Speicher oder in einem Wort des Speichers, von wo aus
direkt oder indirekt auf die Adresse dex Variable verwiesen wird, ein Maikiexungsfeld reserviert ist, in dem der Statue des Variable
markierbaa ist, und wobei die Statusmarkierung duroh die Rechenmaeohizie mittels Erkennung des durch die Variable erreichten
Status stattfindet, und wobei bei Anruf dex Variable während
eines Fseseiaes dex Prozess in Abhängigkeit von jenem Status
109843/1588
- 3 - PHH. 4759.
beeinflussbar ist. Dies bedeutet, dass in der Rechenmaschine
technische Vorkehrungen im Sinne eines Wortformats getroffen sind, und zwar derart, dasa ein Raum für das erwähnte Markierungsfeld vorhanden ist und dass eine Erkennung des durch die
Variable erreichten Status und eine Beeinflussung des Prozesses in der Rechenmaschine in Abhängigkeit jenes Status bei Anruf
der Variable durch das Programm stattfinden. Mit diesem Verfahren beziehungsweise diesem Reohnersystem nach der Erfindung
ist es möglich, an einer willkürlichen Stelle in dem Rechnerprogramm auf eine Variable y zurückzugreifen. Es ist immer dafUr gesorgt, dass an der Adresse A, wo y erwartet oder von wo
direkt oder indirekt auf die Adresse von y verwiesen wird, angegeben ist, wie der Status der Variable y ist. Dies kann also
sein, dass y fertig ist, in welchem Fall das Programm fortgesetzt werden kann, y kann jedoch auch unbekannt oder sogar unbestimmbar sein. Das Programm muss dann unterbrochen werden. Ist die
Variable y nur angenähert worden, so kann eine Entscheidung darüber getroffen werden, ob das zurückgreifende Programm fortgesetzt oder aber unterbrochen werden muss, beispielsweise um (
zu warten, bis ein parallel verlaufender Prozess eine ausreichend genaue Annäherung an y gefunden hat. Es ist jedoch auch möglich,
dass das Rechnersysteme noch an der Variable rechnet, so dass das
Programm, das y benötigt, warten muss. So ist noch eine Anzahl von Status einer Variable denkbar, die markiert werden können·
Bei einer Organisation in einem Rechnersystem (beispielsweise bei Blockstrukturprogrammen), bei denen SpeichexaibeitsxBume für Gruppen sogenannter lokaler Variablen reserviert weiden,
ist es vorteilhaft, dass bei dem exfindungsgemässen Verfahren
in einem Arbeitsraum odex in einem Wort, von wo aus direkt odex
109843/1586
- 4 - PHN. 4759.
indirekt auf den Arbeitsraum verwiesen wird, ein Raum für ein Schlüsselwort reserviert ist, in dem die Markierungsfelder der
in dem Arbeitsraum vorhandenen Variablen gesammelt sind. Dies ermöglicht es, mit nur einer logischen Operation an dem Schlüsselwort die Markierungekode nötigenfalls aller Variablen des Arbeitsraumes zur gleichen Zeit nachzustellen, d.h. auf dem jeweils
neuesten Stand zu halten. Dies erspart in einem solchen Fall also das Aufrufen, Lesen, Aendern und wieder Eintragen jeder Variable
mit ihrem Markierungsfeld·
Es sind viele Statusmöglichkeiten für eine Variable denkbar. Eb ist von praktischem Nutzen, diese Möglichkeiten in beispielsweise zwei Gruppen zu unterteilen, so z.B. eine Hauptgruppe
von Status, unter die das gegebenenfalls Bekanntsein einer Variable fällt, und eine Nebengruppe, unter die allerhand andere Möglichkeiten, wie z.B. annähernd bekannt usw. fällt. Ein weiteres erfindungsgemässes Verfahren wird daher auch dadurch gekennzeichnet,
dass die möglichen Status einer Variable in einem Arbeitsraum in zwei Gruppen unterteilt sind, wobei ein möglioher Status der ersten
Gruppe in einem Markierungsfeld in dem zu einem Arbeitsraum gehörigen Schltisselwort und ein möglicher Status der zweiten Gruppe
in einem zu einer Variable gehörigen Markierungsfeld selbst markierbar ist. Diese Verteilung in Gruppen und dazu die Markierung in
dem Schlüsselwort und im Markierungsfeld einer Variable verhindern, dass die Schlüsselworte zu gross werden. Vor allem in dem Fall,
dass ein Schlüsselwort in ein Wort aufgenommen ist, von wo aus direkt oder indirekt auf einen Arbeitsraum verwiesen wird, ist es
von Bedeutung, dass das Schlüsselwort im Hinblick auf die Verweieungsgeschwindigkeit nicht zuviel Raum, beispielsweise eine Anzahl
von Speicherworten beansprucht.
1 0 9 8 U 3 / 1 Γ) 8 6
mn. 4759.
Ein Reohneraystem, in dem das oben erwShnte Verfahren
durohfUhrbar ist, ist erfindungsgemfiss dadurch gekennzeichnet,
dass Befehleleitung«η vorhanden sind, mit denen ein erkannter
Status einer Variable in das Markierungsfeld für die Variable eintragbar ist, und dass weitere Befehlsleitungen vorhanden sind,
die den Status einer Variable aus ihrem Markierungsfeld bei Anruf der Variable repräsentieren.
AuafUhrungsbeispiele der Erfindung sind in den Zeichnungen
dargestellt und werden im folgenden näher erläutert. Es zeigent J
Fig. 1 ein erfindungsgemösses Rechnersystem zum Durchführen des erfindungsgemSsBen Verfahrens,
Fig. 2 eine mögliche Programmstruktur, Fig. 5 eine Statusmarkierung auf dem Zugriffspfad einer
Variable,
Fig. 4 eine Statusmarkierung einer Anzahl von Variablen eines Arbeitsraumes in einem Schlüsselwort,
Fig. 5, 6 und 7 Beispiele eines Sohlüsselwortes in einem
Wort auf dem Zugriffspfad zu in einem Arbeitsraum befindlichen Variablen,
Fig. 8 die Verteilung der Status einer Variable über ein
Markierungsfeld der Variable und ein Schlüsselwort,
Fig. 9 ein etwas abweichendes Verfahren zum Anordnen und
Erkennen einer Statusmarkierung in den Markierungsfeldern von Variablen.
Das Rechnersystem enthält einen Speicher M mit einem
Eingangsregister IR, einem Ausgangeregister UR (auch gestrichelt noch einmal mit UR1 dargestellt) und einem Adreseenregister AR,
Ferner hat das Reohnersystem einen zentralen Prozessor CP. Zum
109843/1588
' - 6 - p:w. 4759.
Durchführen des erfindungsgemSasen Verfahrens dienen die Befehlsleitungen W und R und eine Dekodieranordnung DI. Die in dem
Speicher N vorhandenen Variablen y und ζ an den Adressen Ao bzw.
A1 haben die Markierungsfelder FIo, bzw. PH. In den Markierungsfeldern FIo und PH sind die Status der Variablen markierbar.
Die Wirkungsweise des Systems wire"1 an Hand einer in
Fig.2 dargestellten Programmstruktur erläutert.
In Fig. 2 ist ein Blockstrukturprogramm auf schematische
Weise dargestellt. Py und Pz sind die Nebenblöcke eines Blockes Po.
Als Beispiel sei angenommen« dass Fz dazu dient, eine Variable ζ
zu erreohnen, die von der Variable y abhängt. Der Entwurf möge dann ferner noch so sein, dass die Tatsache, dass Pz und Py
IJebenblöoke von Po sind, bedeutet, dass y und ζ lokale Hilfsvariablen
von Po sind und somit einem Arbeitsraum von Po, d.h. einem dem Programmblock Po zugeordneten Speicherteil, anghoreri.
Wird das Programm Po aktiv, so wird diesem ein Arbeitsraum PWo in dem Speicher M zugeordnet (siehe Fig. 1). Die Variablen
y und ζ haben in dem Arbeitsraum PWo ihren eigenen Platz an den jeweiligen Adressen Ao bzw, A1. Während den Variablen von dem
zentralen Prozessor Speioherstellen zugewiesen werden, sorgt
beispielsweise das Programm Po selbst dafür, dass über die Befehlaleitungen
W in den Markierungsfeldern der Variablen der Status a priori unbekannt (apu) markiert wird. Mit dem Rechner muss noch
angefangen werden, so dass dieser Status apu tatsächlich auf die Variable anwendbar sein wird. Eine Befehlsleitung W führt die
Adresse Ai von einer Variable zu dem Adressenregister AR, wShrend eine andere Befehlsleitung W den Status apu in daa Eingangsregister
IR einführt. Dieser Status apu wird dann in das Markiexungsfeld
FIi des adroasiartan Wortes Ai eingetragen.
109843/1586
- 7 - PHN. 4759.
Wild während der Durchführung einee Programme eine
Variable angerufen, so vird mit Hilfe einer Befehleleitung R die Adresse der Variable dem Adressenregister AR zugeführt, der
Inhalt wird gelesen und erscheint in dem Ausgangsregister UR. Die Variable selber kann zu dem zentralen Prozessor Übertragen
werden. Das Markierungsfeld der Variablen gelangt in die erwähnte Dekodieranordnung DI. In einem Dekoder Fd wird das Markierungefeld Fl dekodiert. Es sind allerlei Status fUr eine
Variable denkbar. Beispiele sind ι ein Programm errechnet eine
Variable : busy-status "bu". Eine Variable kann im Verlauf eines Programms einen "teilweise bekannt" Status "ua" erhalten. Bei
einer skalaren Grosse bedeutet dies "annähernd bekannt". Bei einer
Sammlung von Lösungen (array) bedeutet dies, dass eine Anzahl von Elementen bekannt ist. Sie übrigen sind unbekannt, in Behandlung,
usw. Eine andere Möglichkeit ist die, dass eine angeforderte Variable effektiv unerrechenbar ist oder sich als unerrechenbar
herausstellt, dadurch, daas die Berechnung nicht konvergiert oder weil ein Einfuhrdatum nicht vorrätig oder unerrechenbar ist
usw. Dies ist ein Status uh (unknown and hopeless). Natürlich ^
kann eine Variable in einem Moment bekannt "k" sein. Alle dieses
Status (es können nooh mehr sein) sind durch einen eigenen Kode wiederzuerkennen. Der Kode eines duroh eine Variable erreichten
Status steht in dem dazugehörigen Markierungsfeld und iat mit Hilfe der oben erwähnten Befehlsleitungen V darin eingeführt
worden. Die Dekodierung eines Markierungsfeldes Fl in dem Dekoder
Fd bringt abhängig von dem Statue ein Signal an einem der Ausgänge •pu, bu, ua, uh oder k hervor. Ist der Status der Variable y "k",
so ist y bekannt und es kann die Variable y ( die hier noch mal
1 0 9 8 U 3 / Ί B 8 6
~ 8 - PHN. 4759
in dem rechten Teil des Registers UR1 ateht) in dem Programm Pz
für die Errechnung von ζ verwendet werden. Dies wird Ober die Befehls!«itung k dem zentralen Prozessor gemeldet. In diesem
Beispiel tritt für die anderen möglichen Status Ober das ODER-Punktionsglied OR ein Unterbreohungssignal "int" auf. Hiermit
wird das Programm Pz über die Befeh]sleitung int unterbrochen.
Auch iat es möglich, dass wenn ein Signal am Ausgang, beziehungsweise
an der Befehlsleitung ua auftritt, dennoch keine Unterbrechung erforderlich iat, sondern dass das Programm Pz mit dem
angenäherten y-Wert fortgesetzt werden kann.
Falls die Organisation derart ist, dass für jeden Status ausser dem "k" (known) Status eine Unterbrechung erfolgt, so kann
die DI-Anordnung ausschliesslich aus einem ODER-Punktionsglied
bestehen. Wenn dann beispielsweise der "k"Status mit 000 bezeichnet
ist und die anderen Status mit wenigstens einer Eins in dem Kode, dann iat schon eine Eindeutigkeit vorhanden. Eine Befehls·
leitung k und eine Befehlsleitung int Übergaben den Status dem CP.
Ferner ist es natürlich möglich, mit dem Status-Kode, beispielsweise
ijk, wobei i,j,k ■ 0 oder 1 selber, ohne Dekodierung in
Fd weiterzuarbeiten. Die Befehlsleitungen sind dann als Leitungen
der Kode-Bits vom Register UR zum zentralen Prozessor CP zu
betrachten.
Bei der Durchführung eines Programms werden sich die Status. der Variablen ändern. Diese Aenderungen werden an Hand
dee Programme in dem zentralen Prozessor CP ernannt, und es
wird, wenn es gestattet ist, ein veränderter Statue mit Hilf· der Befehlsleitungen W in dem entsprechenden Markierungsfeld
markiert. Es dürfte einleuchten, dass ein Status der Variable z,
109843/1586
- 9 - FKN. 4759
die wie gesagt auoh von der Variablen y abhängig iat, nicht
ohne weiteres geändert werden darf. Dies ist nur möglich,
wenn die Variable y bekannt ist (und keine Aenderung mehr an
ihr vorgenommen wird).
In dem Beispiel mit dem Programm Po mit den Nebenblöcken Py und Pz wird in dem Programm Pz bei der Aufgabe,
y zu lesen, der Status der Variable y durch die Dekodierung
des Markierungsfeldes FIo von y geprüft. Wenn der Status von y "k" ist, so wird das Programm Pz ohne Unterbrechung fortgesetzt.
Wenn dar Status von y "bu" ist, d.h. y ist in Behandlung, so ™
ist das Programm Py bereits zu einer anderen Gelegenheit gestartet worden. (Dies unterstellt, dass Py und Pz sich gleichzeitig in der Durchführung befinden können, was beispielsweise
möglich ist, wenn Py und Pz als gesonderte Prozesse eingetragen sind. In einer Rechenmaschine mit mehr als einem zentralen
Prozessor können Py und Pz gleichzeitig aktiv sein, doch auch wenn nur ein zentraler Prozessor vorhanden ist, können sich beide
auf sinnvolle Weise in der Durchführung befinden, wenn z.B.
eines der beiden Programme gestartet ist, weil das andere auf i
Ein- oder Ausgabe warten muss). In diesem Fall des Status "bu" von y wird das Programm Pz unterbrochen. Pz gelangt auf eine
Warteliste von Programmen, die alle auf y warten. Wenn die Variable y den Status "apu" (unbekannt) hat, wird Pz auch unterbrochen und daa System muss einen Auftrag zum Starten des Programme Py geben.
Es ist wichtig, darauf hinzuweisen, dass eine Statusmarkierung wie die oben umschriebene nicht nur in dem Wort an
einer Adresse A vorhanden sein kann, sondern dass die Markierung
109843/1586
auch in einem früheren, auf dem Zugriffspfad zur Variable liegenden Wort vorgenommen sein kann. In Fig, J wird dies mit
einem Beispiel angegeben. Angenommen, ein Programm P1 ruft eine
Variable y an, die an der Adresse A zu finden ist. Ea gibt einen Zugriffspfad, der benutzt werden muss, um zu jener Adresse A zu
gelangen. Angenommen, der Pfad läuft auf bekannte Weise übeT die
Worte an den Adreasen Α·(ν), A"(y) und A'"(y) nach A(y). In dem
Programm P1 wird beispielsweise an der Adresse A"(y) eine Instruktion
mit dem Operationskode OPC , und auch ein Adreaeenteil, in
dem eine Verweisungsadresse A"(y) steht gefunden. Der OPC wird in ein OPCR-Register (nicht dargestellt) eingesetzt und die
Adresse A"(y) selektiert. Das Wort an dieser Adresse A"(y) gelangt
in das Ausgangsregister UR, hier mit UR" bezeichnet. Dieses Wort auf dem Zugriffspfad nach y enthält das Markierungefeld Fly.
Der Markierungskode in diesem Feld Ply geht zu der Dekodieranordnung DI, wo der Status der Variablen y erkannt wird. Auf
Grund des Status kann dann entschieden werden,ob der Weg Ober den Pfad zur Variablen y an der Adresse A(y) fortgesetzt werden
soll oder nicht. Wenn der Status anzeigt, dass die Variable y beispielsweise unbekannt "apu" ist, so wird eine Unterbrechung
folgen und es werden keine weiteren Speicherzugriffe nach A(y) stattfinden. Dies spart also Zugriffe ein für die FSlIe, in
denen die Variable y sich noch nicht für das Programm P1 eignet
oder noch nicht zur Verfügung steht.
Wenn der Status keine Unterbrechung hervorbringt, so wird aledann die in dem Wort an der Adresse A"(y)stehende
Adresse A"'(y) ausgewählt und über den Inhalt des Wortes an der
Adresse A"'(y), nSmlich die Adresse A(y), die Variable y an dieser
109843/ 1 586
- 11 - PHN 4759
Adresse A(y) ausgelesen.
In Fig. 4 ist dargestellt, wie mit Vorteil eines sogenannten
Schlüsselwortes, in dem die Markierungskode einer Anzahl von in einem Speicherarbeitsraum vorhandenen Variablen gesammelt
sind, gearbeitet werden kann. In dieser Fig. 4 ist mit PW ein Arbeitsraum in dem Speicher M angedeutet. Dieser Arbeitsraum hat
eine Basisadresse BW, hinsichtlich der die Wörter in dem Arbeitsraum
mit relativen Adressen g1, g2 ... zu adressieren sind. An den relativen Adressen g1 , g2, g3 sind hier die ,jeweiligen Varia- μ
blen yi, yj und yk zu finden. An der Wortstelle der Basisadresse
BW steht ein Schlüsselwort KW, in dem die Status der Variablen
des Arbeitsraumes PW vermerkt sind. Dafür sind die Markierungsfelder FIi, FIj und FIk für die Variablen yi, yj und yk in d«m
Wort KW vorhanden. Tiitt nun für eine oder mehrere Variablen eine Statusänderung auf, so kann diese einfach dadurch in KW aufgenommen
werden, dass über das Speicherregister IR die neuen Markierungskodes in die betreffenden Markierungsfelder des inzwischen
adressierten Schlüsselwortes KW eingesetzt werden (und somit die alten Feldinhalte Oberschrieben werden). Dies erspart viele {
Zugriffe, weil die Aenderungen nicht pro Variable stattzufinden
brauchen. Beim Anrufen einer Variablen z.B. yj aus dem Raum PW, kann folgendes s-tattfinden. Die Adresse von yj ist eine Kombination
von BW, der Arbeitsraumbasisadresse, und g2, der relativen Adresse
von yj in dem Raum. Das KW Wort kann, nur mit der Adresse BW versehen, in das Register UR eingesetzt werden. Die Markierungsfelder FIi, FIj und FIk können dann beispielsweise in ein gesondertes
Register R an den Stellen g1, g2, g3 eingesetzt werden.
Wird yj durch BW + g2 adressiert, so kann zuerst oder zu gleicher
109843/1586
-ΛΖ - PHN. 4759.
Zeit das Markierungsfeld Pl.j an pi? in R angezeigt werfen, so dass
der Status von yj in der Dekodieranordnung DI feststellbar ist.
Eine Liste, beispielsweise eine Sammlung von Wurzeln einer
Gleichung, kann einen Arbeitsraum umfassen. Mit nur einem Markierungskode
in einem MarkierungsfeJd in dem erwähnten Gchlüssalvfort
ist der Statue einer solchun Liste oharakterisierbar.
In Pig. 5 ist dargestellt, wie exn SchlUsselwort KVB1
in ein Wort auf dem Zugriffspfad zum Arbeitsraum B1 aufgenommen
ist. B1 enthält die Variablen y1 und y2. An einer Adresse b1 steht ein Wort, das die BasisacbwBse B1 des Arbeitsraumes B1 enthält.
Um Nach B1 gelangen zu können, wird zunächst das Wort an der Adresse b1 ausgelesen. In dieses Wort ist hier das bei Pig. 4
erwähnte Schlijsselwort KW, hier KWB1, aufgenommen, ao dass vor
dam Adressieren in dem Arbeitsraum B1 bereits die Status der Variablen y1 und y2, vermerkt in den Markierungsfeldern Ply1 und
Fly2 von KWP1, bekannt sind. Dies ist von grossem Vortfil in den
Fällen, in denen ein Arbeitsraum beispielsweise in einem Hintergrundspeicher
untergebracht, das Wort jedoch an der Adresse b1 selbst im Arbeitsspeicher der Rechenmaschine vorhanden ist. Es
ist also nicht erforderlich, erst den Arbeitsraum B1 seibat aus
dem Hintergrundspeicher zu holen, um den Status einer darin vorhandenen Variable feststellen oder ändern zu können. Die froher
erwähnte Art der Statusinarkierung in einem ausserhalb des Arbeitsraumes
stehenden Bezugswort zu einem Arbeitsraum kann in vielen Formen in einem Rachnersystem vorkommen. Im nachstehenden wird
noch ein Beispiel gegeben.
In Fig. 6 ist jedem Arbeitsraum Ao, A1, B1 eine sogenannte
Anzeigezelle an den jeweiligen Adressen ao, al und b1
zugeordnet. Eine solche Anzeigezelle enthält erstens die Basis-
109843/1586
- 15 - HIN 4759
.adresae des Arbeitsraumes, dem die Zelle zugeordnet iat. Die
Anzeigezelle an der Adresse al enthält also die Basiaadresse
A1 dea Arbeitsraumes A1 usw. Zweitens enthält eine Anzeigezelle
eine Adresae einer Anzeigezelle, die zu einem Arbeitsraum gehört, welcher um einen Pegel höher auf einem Pfad zu der Wurzel eines
Baumes in einem Blockstrukturprogramm liegt. Hier beispielsweise hat die Anzeigezelle an der Adresse al eine Adresse ao der zu
dem Arbeitsraum Ao gehörenden Anaeigezelle. Das gleiche gilt für die Anzeigezellen an den Adressen b1 mit Rückverweisung
auf al und ao mit Rückverweisung auf eine Adresae 0. Die weiteren \
Aspekte der Anzeigezellen sind für die hier beschriebene Erfindung nicht von Bedeutung. Wesentlich ist hier, dass die Anzeigezellen
ausser der Basisadresse des Arbeitsraumes, dem sie zugeordnet sind,
auoh nooh die Markierungsfelder der in den Arbeitsräumen vorhandenen
Variablen haben. So beispielsweise hat die Anzeigezelle an der Adresse al die Markierungafelder Ply1 und Fly2 der Variablen
y1 und y2 des Arbeitsraumes A1.
Andere Arten der Adressierung in einem Reohneraystem,
wie beispielsweise das Paginasystem, können mit einer Status- :
markierung nach der Erfindung ausgebaut werden. So kann ein Schlüsselwort in ein Wort in einer Paginatabelle aufgenommen
werden, welche Tabelle das Pagina angibt, auf dem der Arbeitsraum steht: Fig.7· PT ist eine Paginatabelle in der ein Wort
steht, das die Adresse AWP desjenigen Aufrufes angibt, in dem der Arbeitsraum Wp.vorhanden ist. In dem Wort können die Statue
der Variablen in WP in den Markierungsfeldern FIs (Schlüsselwort
von WP) vermerkt sein.
In Fig. θ ist dargestellt, wie eine Verteilung der Markierung
der Statusmöglichkeiten einer Variable in einem Markierungs-
1 0 9 8 U 3 / 1 5 8 6
4759
feld der Variable und in einem Schlüsselwort dargestellt
werden kann. D ist ein Arbeitsraum mit den Variablen d1,d2,d3.
In die Markierungefelder FId1, FId2 und FId3 sind die Markierungskodeteile r1, r2, r3 aufgenommen. In einem Schlüsselwort KW
sind die Markierungskode teil· f1, f2 .und f3 vorgesehen. Venn die
Markierungskoden aller Variablen eines Arbeitsrauiaes in einem
Schlüsselwort gesammelt werden, kann dieses Schlüsselwort für praktische Verwendung zu gross werden. Es ist nicht notwendig,
dass der vollständige Markierungskode jeder Variablen in dem
Schlüsselwort steht. Der Uebergang von d«m Statue unbekannt
"apu" Ober in Behandlung "bu" und annähernd bekannt "ua" nach
bekannt "k" oder unbestimmbar "üb" usw., findet für jede Variable
getrennt statt, so dass es kein Hindernis ist, dass der Markierungskode jeder Variablen getrennt für diese Uebergänge nachgestellt
werden muss. Ein Uebergang von einem der Statuses "bu", "ua", "k",
"uh" der Variablen eines Arbeitsraumes nach "apu" wird nicht durch
die Variablen selbst bestimmt, sondern durch eine Aenderung einer
oder mehrerer Variablen, von denen diese erwähnten Variablen abhängig sind. Dabei ist es dann vorteilhaft, dass die Markierungskoden aller Variablen gleichzeitig in dem Status "apu" geändert
werden können. Dies ist dadurch möglich, dass die StatusmSglichkeiten in zwei Gruppen verteilt werden. Eine Hauptgruppe enthalt
beispielsweise die Statusmarkierung für "apu" bzw. "apu", wobei
in der Nebengruppe die anderen StatusmSglichkeiten {nur für den
Fall, dass in der Hauptgruppe "apu" gegeben ist, ist dies sinnvoll) markiert sind. Im Hinblick auf obenstehendea ist ee dann
praktisch, die Markierung für "apu" bzw. "apu" für die Variablen
1 O 9 B ■■'!. 1
- 45 - PHN 4759
eines Arbeitsraumes in einem Schlüsselwort bei diesem Arbeitsraum
vorzunehmen. Die anderen Statusmo'glichkeiten können dann
in dem Markierungsfeld jeder Variablen einzeln' markiert werden.
In Fig. 8 sind die Hauptgruppen der "apu" oder "apu"
angebenden Statusse der Variablen d1, d2 und d3 in die Markierungsfeldchen
f 1 , f2 und f3 des Schlüsselwortes KW aufgenommen. Hier·*·
mit ist der Status "apu" aller Variablen gleichzeitig einstellbar, ohne dass jede Variable ausgewählt werden muss usw. Für
die Nebengruppe der Statue ist es, wie oben erwähnt, keine Schwierigkeit, die Variablen getrennt anzurufen. Die Nebengruppe
jeder Variablen ist denn auch als Markierungskode r1, r2 und r3 in den jeweiligen Markierun^sfeldern Fld1, Fld2 und Fld3 der
jeweiligen Variablen d1, d2 und d3 aufgenommen.
Das hier erwShnte Schlüsselwort KW des Arbeitsraums D
kann natürlich wie beispielsweise unter Fig. 5» 6 und 7 erwähnt auch ausserhalb des Arbeitsraumes D vorhanden sein.
In Fig. 9 ist dargestellt, dass das Anordnen und Erkennen
der Status von Variablen auch auf eine etwaa andere als die oben
beschriebene Art stattfinden kann. Hierbei wird angenommen, dass der Speicher, in dem ein Arbeitsraum D untergebracht ist, auf
zwei Arten Informationen aufnehmen bzw. abgeben kann, nämlich in erster Linie auf die normale Art und Weise mit dem Eingangsregister
IR und dem Ausgangsregister UR, wie oben stets erwähnt wurde. Hierbei kann ein Speicherwort (beispielsweise eine Variable
d1 mit dem Markierungafeld Fld1) als Ganzes, von dem Adressenregister
AR aus, ausgewählt und somit dann eingetragen oder ausgelesen werden. Xn zweiter Linie ist es möglich, "quer" aus-
ZmMhIBTi9 beispielsweise von dem Register IR als Adressenregister
aus, d.h. von jedem Wort wird die gleiche Bitstelle ausgewählt,
109843/1586
- 16 - PHK 4739
wobei dann von jedem Wort gleichzeitig etwas an jene Bitstelle eingetragen oder von ihr ausgelesen werden kann. In Fig. 9 ie*
mit ER ein Extraregister dargestellt, in dem das ausgewählte Bit eines jeden Wortes beim Auslesen aus dem Speicher erscheint,
oder von woaus die Bits zum Speicher geschrieben werden können. Die Markierungsfelder Pld1, Pld2 ... der Variablen d1, d2 ...
sind normal in dem Wort der Variablen aufgenommen. An den Bitstellen f1, f2, ... der jeweiligen Markierungsfelder Pld1 steht
beispielsweise ein Bit, das angibt, ob der Status der betreffenden Variable bekannt "apu" oder unbekannt "apu" ist. Bei der erwähnten
Querselektion ist dann für alle Variablen gleichzeitig ihr Status apu oder apu in dem Register ER zu erkennen. Die Befehlsleitung
apu, apu leitet diesen Status dem zentralen Prozessor weiter. Andersherum kann bei dem Erzeugen eines neuen Arbeitsraumes
direkt über die Befehleleitung apu, apu, der Status "apu" für alle Variablen Über das Register ER an den Bitstellen f1, f2 ...
markiert werden. Was die Anwendung betrifft, entspricht dae Ganze
also der eher erwähnten Schlöaselwortkonfiguration. Die Bitstellen
r1, r2 ... in den Markierungefeldern FId1, FId2, ... bieten noch
Platz, um mehrere Status als allein "apu" und "apu" markieren zu
können.
109843/1586
Claims (1)
- -H- PKN 4759.PATENTANSPRÜCHE:(2 J Verfahren zur Statuamarkierung einer Variablen, die in • einem Speicher eines Rechnersysteme vorhanden und während eines Prozesses anrufbar ist, dadurch gekennzeichnet, dass in dem Wort an der Adresse der Variablen in dem Speicher oder in einem Wort des Speicheis, von woaus direkt oder indirekt auf die Adresse der Variablen verwiesen wird, ein Markierungsfeld reserviert ist, in dem der Status der Variablen markierbar ist, wobei die Statusmarkierung durch die Rechenmaschine mittels Erkennung des durch ™ die Variable erreichten Status stattfindet und wobei, bei Anruf der Variable wShrend eines Prozesses, der Prozess in Abhängigkeit dieses Status beeinflussbar ist.2· Verfahren nach Anspruch 1, wobei eine Anzahl von Variablen in einem Speicherarbeitsraum vorhanden ist, dadurch gekennzeichnet, dass in einem Wort des Arbeitsraumes oder in einem Wort, von woaus direkt oder indirekt auf den Arbeitsraum der Variablen verwiesen wird, ein Raum für ein Schlüsselwort reserviert ist, in dem die Markierungsfelder für die Statusmarkierung der in dem Arbeite- λ raum vorhandenen Variablen gesammelt sind.3. Verfahren nach Anspruoh 1 und 2, dadurch gekennzeichnet, dass die möglichen Status der Variablen in einem Arbeitsraum in zwei Gruppen verteilt sind, wobei ein möglicher Status der ersten Gruppe in einem Markierungsfeld in dem zu einem Arbeitsraum gehörigen SoblUsselwort und ein möglicher Statue der zweiten Gruppe in einem zu einer Variable gehörigen Markierungsfeld selbst maskierbar ist,lechnejiiyetem zum DutohfUhren des Verfahrene naoh Anunjjuoh 1 oder 2* dadurch eekamsiseiohnet» dae· Befehlsleitungen109843/1S8S- it - ΌΗΝ. 475%vorhanden sind, mit denen ain erkannter Status einer Variable in das Markierungsfeld für die Variable eintragbar ist, und dass weitere Befehlaleitungen vorhanden sind, die den Status einer Variable aus ihrem MarkierungsfoJd bei Anruf der Variable repräsentieren.3/1586
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NL7004570A NL7004570A (de) | 1970-03-31 | 1970-03-31 |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2110311A1 true DE2110311A1 (de) | 1971-10-21 |
Family
ID=19809721
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19712110311 Pending DE2110311A1 (de) | 1970-03-31 | 1971-03-04 | Statusmarkierung von Variablen |
Country Status (6)
Country | Link |
---|---|
JP (1) | JPS531616B1 (de) |
CA (1) | CA936967A (de) |
DE (1) | DE2110311A1 (de) |
FR (1) | FR2083696B1 (de) |
GB (1) | GB1348171A (de) |
NL (1) | NL7004570A (de) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2453468A1 (fr) * | 1979-04-06 | 1980-10-31 | Cii Honeywell Bull | Procede et systeme d'exploitation d'une memoire adressable permettant d'associer a volonte des qualificatifs aux donnees contenues dans la memoire |
FR2453449B1 (fr) * | 1979-04-06 | 1987-01-09 | Bull Sa | Procede et systeme d'exploitation d'une memoire adressable permettant l'identification de certaines adresses particulieres |
JPS58151655A (ja) * | 1982-03-03 | 1983-09-08 | Fujitsu Ltd | 情報処理装置 |
EP0168054B1 (de) * | 1984-07-11 | 1991-10-09 | Hitachi, Ltd. | Datenflussgesteuertes Informationsverarbeitungsverfahren und -system |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3108256A (en) * | 1958-12-30 | 1963-10-22 | Ibm | Logical clearing of memory devices |
-
1970
- 1970-03-31 NL NL7004570A patent/NL7004570A/xx unknown
-
1971
- 1971-03-04 DE DE19712110311 patent/DE2110311A1/de active Pending
- 1971-03-26 CA CA108790A patent/CA936967A/en not_active Expired
- 1971-03-29 JP JP1865271A patent/JPS531616B1/ja active Pending
- 1971-03-31 FR FR7111321A patent/FR2083696B1/fr not_active Expired
- 1971-04-19 GB GB2539771A patent/GB1348171A/en not_active Expired
Also Published As
Publication number | Publication date |
---|---|
FR2083696A1 (de) | 1971-12-17 |
JPS531616B1 (de) | 1978-01-20 |
FR2083696B1 (de) | 1974-10-11 |
GB1348171A (en) | 1974-03-13 |
NL7004570A (de) | 1971-10-04 |
CA936967A (en) | 1973-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE1499193C3 (de) | Speicher-Adressierschaltung | |
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE3741953A1 (de) | Multiprozessorsystem und verfahren zur arbeitslastverteilung bei einem solchen | |
DE2055784A1 (de) | Datenverarbeitungssystem | |
DE2302074A1 (de) | Speicherschutzanordnung in einem multiprozessorsystem | |
DE2060635A1 (de) | Rechner-Steuergeraet sowie Verfahren und Steuerpult zum Programmieren desselben | |
DE1151397B (de) | Programmgesteuerte Datenverarbeitungs-anlage mit gespeicherten Unterprogrammen | |
DE1200581B (de) | Programmunterbrechungssystem fuer eine elektronische Rechenmaschine | |
DE1179397B (de) | Datenverarbeitende Maschine mit sich zeitlich ueberlappender Datenverarbeitung | |
DE1197650B (de) | Parallel-Addierer | |
DE2164793A1 (de) | Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit | |
DE1549531A1 (de) | Digitale Rechenanlage | |
DE1474063A1 (de) | Datenverarbeitungsanlage | |
DE1499206B2 (de) | Rechenanlage | |
DE10048941A1 (de) | Zeitdiagramm-Compiler und Laufzeitumgebung für die interaktive Erzeugung von ausführbaren Testprogrammen zur Logiküberprüfung | |
DE1115488B (de) | Datenverarbeitungssystem | |
DE1191145B (de) | Elektronische Zifferrechenmaschine | |
DE2110311A1 (de) | Statusmarkierung von Variablen | |
DE2538978C2 (de) | ||
DE1168129B (de) | Verfahren zur Verarbeitung von Daten | |
CH495584A (de) | Datenverarbeitungsanlage | |
EP0265636A1 (de) | Multiprozessor mit mehreren mit Cache-Speichern ausgerüsteten Prozessoren und einem gemeinsamen Speicher | |
DE1115483B (de) | Vorrichtung zum Abfragen eines Ziffernspeichers | |
DE2163435A1 (de) | Datenverarbeitungsanlage mit einem Speicher mit verteilter Logik | |
DE2642251A1 (de) | Steuerungseinrichtung und betriebsverfahren fuer eine rechnergefuehrte steuerung bei einer numerisch gesteuerten maschine, beispielsweise einer werkzeugmaschine |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OHW | Rejection |