DE2110311A1 - Statusmarkierung von Variablen - Google Patents

Statusmarkierung von Variablen

Info

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
Application number
DE19712110311
Other languages
English (en)
Inventor
Jacob Fredrik Eindhoven Klinkhamer (Niederlande)
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Publication of DE2110311A1 publication Critical patent/DE2110311A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection 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 ° ' '
Akte No., PHIi- 4759
Anmeldung vorm 6. März 1971
Statuamarkierung von Variablen.
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)

  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· Befehlsleitungen
    109843/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
DE19712110311 1970-03-31 1971-03-04 Statusmarkierung von Variablen Pending DE2110311A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3108256A (en) * 1958-12-30 1963-10-22 Ibm Logical clearing of memory devices

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