DE2801981A1 - Verfahren zum steuern einer textverarbeitungseinrichtung beim speichern und lesen von text - Google Patents
Verfahren zum steuern einer textverarbeitungseinrichtung beim speichern und lesen von textInfo
- Publication number
- DE2801981A1 DE2801981A1 DE19782801981 DE2801981A DE2801981A1 DE 2801981 A1 DE2801981 A1 DE 2801981A1 DE 19782801981 DE19782801981 DE 19782801981 DE 2801981 A DE2801981 A DE 2801981A DE 2801981 A1 DE2801981 A1 DE 2801981A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- segment
- block
- data
- sections
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/123—Storage facilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F2003/0697—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers device management, e.g. handlers, drivers, I/O schedulers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Processing Or Creating Images (AREA)
- Document Processing Apparatus (AREA)
- Debugging And Monitoring (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
und Losen vc:i Text.
Die vorliegende Erfindung betrifft ein Verfahren zim Steuern
einer Textverarbeitunp.se inrichtun^ beim Speichern und Lesen von Tc::(,
welche Kiηrichtuny wenigstens einen seriellen Speicher mit einem ßpeichermedium
umfa.'-.r.t, das in gleich grusle Segmente mit je einer An;:cihl
gleicher Abschnitte unterteilt ist. Während dieses Vorgänge.3 wird ein
Protokoll mit Daten über die Verwendung von Segmenten und Abschnitten
des Mediums geführt.
In den amerikanischen Patentschriften No.3.753.239 und 3.781.813
ist ein Verfahren und eine Anordnung für eine fortlaufende Aufzeichnung (Log) der Verwendung von Epaicherblocks in einem seriellen Massenspeicher
beschrieben, wobei einzelne Mocks zur Speicherung von
neuen und revidierten Textseiten zugeordnet werden. Dadurch ist es bei
der Bedienung einer Textverarbeitungseiiirichtung nicht mehr notwendig,
die fortlaufende logische Folge von Speicherblöcken zu verfolgen, die
den einzelnen Seiten eines zu erstellenden oder zu revidierenden Dokuments entsprechen. Diese fortlaufende Aufzeichnung (Log) wird
dabei in einem Block am Anfang des Speiehers nach jedem Speicher-Vorgang
oder nach jedem Löschvorgang aufgezeichnet.
Eine Unzulänglichkeit dieses Verfahrens ist die übermässig lange
Zugriffszeit, die nach einem Speichervorgang unter Umständen benötigt
wird, um jenen Speicherblock zu erreichen, in welchem die fortlaufende Aufzeichnung (Log) einzutragen bzw, neu zu schreiben ist. Der bewusste
Speicherblock kann örtlich verhältnismässig weit von dem Speicher-
809830/0778
-J- A'iy~7()-OJ6
platz entfernt sein, wo sich der Tcxtspeiehcrvorganr, ;-bgei.piclt hat.
Durch Ji ς; oft ν/ϊ celt-1 ho] ( on Zugriff sbeWegiuigr ii über l.vi ;·.<·: St ι eck'-n . die be.!,
dem geiiriiint.cn Vorfahrt?η vom Zujji i £ fsmec Imui sthuü abverl.Tgt wcrd-'u, erhol
it sich die Abnül rung dieser elektromechanischen TeMe. Im veileri.n
ist in diesen Patentschriften die llögl iehkei. I. nicht berücksichtigt
worden, dass beim Lesen das Log im Speicher oder beim Aufzeichnen desselben
Fehler auftreten können. Ganz offensichtlich können Daten in Speicher
vorloren gehen, wenn beim Auslesen des Log im Speicher sich ein
Fehler einschleicht .Dies würde umfangreiches VJi edereinta<;';en durch die
Gerätebedif iiung nötig machen, und zwar nicht wegen irgendwelcher Fehler
des im Speieher aufgezeichneten Textes, sondern wogen der Fehler im
Log.
Die genannten Patentschriften beschreiben eine fortlaufende Logauf
zeichnung mit. einem Abschnitt das Spuicherband betreffend , in
welchem durch Hinweisbits der Relegungsst atu<; (belegt oder frei) jedes
Blocks auf dem Speicherband bezeichnet ist. Steckt in einem Block ein
gravierender Fehler, ein Banddefekt, der-das Aufzeichnen oder Lesen verhindert,
dann wird dieser Block als belegt bezeichnet. Es lässt sich
also nicht unterscheiden, ob ein belegter Block gültigen Text gespeichert
hat, oder wegen irgendwelcher Fehler nicht benutzbar ist.
Beim Verfahren nach den genannten Patentschriften ist auch nicht an
Situationen gedacht, in denen Text aus einem Speicher nicht mit Erfolg in eine Textverarbeitungseinrichtung eingegeben werden kann, wenn beim
Lesen Fehler auftauchen. Ls sei beispielsweise angenommen, dass zwei
Seiten (Blöcke) vom Band gelesen und in den Textvcrarbeitungsspeieher
überschrieben, aber von der Gerätebedienung nicht überprüft worden sind.
Ks sei weiter angenommen, dass mit dem zweiten Block kein gültiger Text
gelesen worden ist, weshalb diese Seite gar nicht im Speicher steht.
Speichert nun die Bedienung diesen ganzen Text ohne Uebcrprüfung zurück,
obwohl bei einer solchen das Fehlen eines Textteils hätte bc—
ny-rkt werden können, so würde schliesslich das Aufzeichnungslog nachgefühlt.
Der Loginhalt würde das Löschen einer Textseite aus der betreffenden Arbeit d.h. Spcieherrai.imverlust anzeigen, wenn statt dessen
die Gc-rätebedi cnung Speicherraum freihalten müsste, um den verlorenen Text
wiedereiiiKut asten.
Ks ist deshalb die Aufgabe der Erfindung, ein Verfahren zum Protokollieren und
809830/0778 BAD ORIGINAL
AT 9-76-016
- 4-
Steuern eines segmentierten Massenspeichers anzugeben, das die erwähnten
Nachteile vermeidet. Sein Zweck ist die erhöhte Ausnutzung des vorhandenen
Speicherraumes dank verbesserten Steuermethoden und gesteigerte Richtigkeit der gespeicherten Daten sowie rascherer Zugriff zu diesen dank zweckmässigerer
Protokollführung über die Speichervorgänge.
Gelöst wird diese Aufgabe der Erfindung durch die im Hauptanspruch angegebenen
Merkmale.
Vorteilhafte Ausgestaltungen und Weiterbildungen des Gegenstandes der Erfindung
sind den Unteransprüchen zu entnehmen.
Auf diese Weise wird durch die Erfindung der Vorteil erzielt, dass die Textsegmentaufzeichnung
und Wiedergabe automatisch gesteuert wird, so dass die Bedienungsperson der Mühe enthoben ist, eine eigenhändige, z.T. umfangreiche
Speicheradressenprotokollierung vorzunehmen.
Die Erfindung wird nunmehr anhand einer bevorzugten Ausführungsform der
Erfindung in Verbindung mit den beigefügten Zeichnungen näher beschrieben.
In den Zeichnungen zeigt:
Fig. 1 ein Blockschaltbild eines Teils eines Textverarbeitungssystems
mit einem segmentierten seriellen Bitspeicher, der erfindungsgemäß
angesteuert werden kann,
1^i1' die einleitende Arbeitsweise des Systems, wobei das zuletzt auf
den neuesten Stand gebrachte Verzeichnis im Speicher für die Steuerung des Zugriffs zu diesem Speicher benutzt wird,
809830/0778
2801991
AT 9-76-016
■.. q" die willkürliche Auswahl eines Blocks,
Fig. 10 die Auswahl des nächstfolgenden Blocks,
Fig. 11 die Anschaltung eines Kurzzeitspeichers bei der Auswahl sowohl des nächstfolgenden Blocks, als auch bei der Aufzeichnung
des Blocks,
Fig. 12 eine Teil-Leseauswahl eines Blocks,
Fign. 13
bis 20 die Aufzeichnungsoperation eines Blocks,
Fig. 21 die Fortschreibung als Teil der Aufzeichnung eines Blocks und
Fig. 22 die Fehlernachführung in Verbindung mit der Aufzeichnung eines Blocks.
Demgemäß werden ein Verfahren und eine Anordnung zum Speichern und
Abrufen von Textblöcken aufgezeigt, die normalerweise Seiten eines Dokumentes darstellen und die als eine Folge von nicht gekennzeichneten Abschnitten
unterschiedlicher Grosse auf Segmenten eines Serienspeichers abgespeichert sind. Die fehlende Kennzeichnung soll dabei bedeuten, dass
in dem Text keine Seitenzahl oder irgendeine andere fortlaufende Angabe enthalten ist. Die Anordnung versucht dabei, eine mög-
809830/0778
~ 6 ~ AT9-76-O16
Jichfit p.utc /umnutxunii. des verfügbaren Speichel].· .wit;o.s rJ;. durch kv· erreicbeii,
d.';:;s die Blockt* j.α den Segmenten des Spc-.ichars iiicht bei s::mmcn
abgecpei ehei t t.vrdon.
Iu die;;?!!· Speicher v.n-x'Jen DaUn enriell von und nach einem Speicher—
segment übertrage^ jedoch kann ein wahl freier oder pseuflovjalilfreier Zugriff
zu dem Spei ehersegment auf der Ebene C:iucb" der Abschnitte er—
ίο Igen. Alle Segmente sind von fester und gleicher Länge. Jedes Segiuont
enthält auch eine Anzahl von Abschnitten, wobei jeder der Abschnitte eine
feste und gleiche Länge aufweist.
Da die Daten r.e.rieil ohne Kennzeichnung einer laufenden Nummer
(Seitenzahl) abgeepeichert werden5, lässt sieb irgendein Text nicht allein
durch die Untersuchung der Gespeicherten Textteile erkennen. Aus dii-seia
Crund vjird verf.ahrensgemäss ein Verzeichnis geführt, aus dem die laufende
Nummer der Blöcke und der Ort dieser Blöcke im Speicher feststellbar sind.
Diese fortlaufende Aufzeichnung besteht aus zwei Teilen: 1. aus einer SystemlistCj d.h. einer Liste der logischen Reihenfolge der benutzten
Speichersegmente und 2. aus einem Systemlog, das eine fortlaufende Aufzeichnung der Datenkennzeichnung eines jeden Speichersegmentcs im.
Speicher ist.
Die Anordnung versucht dabei die einzelnen Blöcke auf die Segmente
des Speichers zu packen, jedoch nicht notwendigerweise auf unmittelbar nebeneinander liegende Speichersegmente. Ein Block kann beispielsweise
über mehrere Speichersegmsnte gehen und die in der Systemliste aufgeführten Speichersegmente stellen eine Gruppe von Blöcken, beispielsweise
ein aus mehreren Seiten bestehendes Dokument dar. Die Systemliste gibt daher die logische Reihenfolge der Speichersegmente und nicht
ein Verzeichnis ihrer tatsächlichen Reihenfolge an. Es sei beispielsweise die hypothetische Liste von Speichersegmenten betrachtet: f/m/d/e. Das
Segment f liegt örtlich und logisch von dem Segment m. Das Segment m liegt
logisch jedoch nicht örtlich vor dem Segment d. Die beiden Segmente d und e liegen örtlich nebeneinander, obgleich die beiden Segmente m und
d und die beiden Segmente f und m örtlich nicht nebeneinander liegen. In der Liste ist dabei jede Kombination von aufeinanderfolgenden, nicht
aufeinanderfolgenden, örtlich vor-und nachher liegenden Anordnungen von Segmenten möglich. Die Liste kennzeichnet die logische Reihenfolge, in
der die Daten abgespeichert sind.
BAD ORIGINAL 8098 30/0778
- 7 - " AT9-76--O1G
In diefichi ΰαίκρί el folgt bei i'.pic?lswai se in dem Segment i% ur.l dr.s
Segment d folgt dem Segment in. Das Segment d folgt nicht dem Seguvnt f.,
und hinter dem Segment e folgt kein weiteren Segment, Das oegmasii. m geht
dem "Segment d vorauif, und das Segment f geht dem Segment m voraus. Das
Segment f geht nicht dem Segment d voraus und dem Segment f geht gar
kein Segment voraus.
Das Systemlog der Kenndaten der Spei ehersegmentc stellt ein Verzeichnis
darüber dar, wie jeder Abschnitt eines jeden Segmentes derzeit in der-Anordnung benutzt wird» Jedem Abschnitt eines "Segmentes ist dabei nur eines der folgenden Chr.irakteristi.ka in dem fortlaufenden Systemlog
zugeordnet: 1. nicht benutzt., verfügbar, 2.Fehler, unbrauchbar, 3. nur"
Daten, oder 4. Blockbeginn und Daten. Ein Datenblock (Seite) kann
dabei über mehrere. Abschnitte eines Speichersegments oder sogar über
mehrere Spei.cherseginen.te gehen. In einem Abschnitt kann nicht mehr als
ein Oatenblock vorkommen. Wenn ein Datenblock über mehrere Speichersegmente
geht, dann liegen sie in der Systemliste nebaneinander. Wenn ein
Block .Abschnitte eines Segmentes überspannt, dann liegen diese Abschnitte
in dem Speichersegment hintereinander. Ein einzelner Block wird durch eine Anfängskennzeichnung des Blocks in dem Systemlog und durch
die Anfangskennzeichnung eines nächstfolgenden Blocks oder durch das Ende
der Systemliste begrenzt. Abschnitte, in denen kein Text gespeichert ist, (Fehler, unbrauchbar oder unbenutzt, verfügbar) die zwischen Blockanfängen
. liegen,ändern daran nichts. Die Nummer eines Datenblockcs (Seitenzahl)
wird durch die relative Lage des Blockanfangs gemäss Aufzeichnung in der
Systemliste bestimmt. Beispielsweise findet man den Block Nr,3 dadurch,
dass man. durch Uebcrprüfung der Systemliste und des Systemlögs der
Kennzeichen den dritten Blockcnfang ermittelt. Das Auffinden irgendeines
Blocks mit der Nr, i wird beispielsweise dadurch ermöglicht, dass man
das Speichersegment, das den Anfang des i-ten Blockes enthält, ermittelt und dann den richtigen Abschnitt liest, sowie die darauffolgenden,
nur Daten enthaltenden Abschnitte dieses Segmentes oder nachfolgender Segmente
in der Sysl.emliste bis 1.) ein weiterer (i + 1) Blockaufangsabschnitt
festgestellt wird oder 2.) die Liste endet. Nicht benutzte oder fehlerhafte und daher unbrauchbare Abschnitte werden übersprungen.
Das fortlaufende System-Verzeichnis, welches sowohl die erwähnte Liste als auch das Log umfasst, steckt in einem wahlfreien Speicher der
■'■;"- ' Ί : ' - 8098 30/0778
8 AT9-76-Ü16
Anordnung und wird dann, im scci'.ic-iiticrten,. seriellen Speicher aufgezeichnet..
Um Widersprüche zu vci-meiden, die bei Stromausfall auftreten
können,wenn dabei die im wahlfreien Speicher aufgezeichneten Log-Üaten
gelöscht werden, werden diese- Daten jedesmal in den. seriellen Speicher
überschrieben, nachdem eine Datenaufzeichnung in ihm erfolgt ist. Die Log-Daten werden zur Erhöhung der Zuverlässigkeit und zur Verkürzung der
Zugriffszeit während eines Speichervorganges an mehrerensörtlich getrennten
Stellen des seriellen Speichers aufgezeichnet. Bei jedem Speichervorgang wird das örtlich am nächsten liegende Log auf den neuesten
Stand gebracht. Das Log umfasst auch den Stand eines Aktivitätszählers, der bei. jeder Nachführung erhöht wird. Die neueste und richtige Logeintragung
kann beim Inbetriebsetzen des Systems auf diese Weise ermittelt
werden.
Das Systeiulog unterhalt auch Aufzeichnungen jener Speicherabschnitte,
welche nicht-ausmcrzbare Fehler enthalten, damit keine Benutzung dieser
Abschnitte versucht wird. Zusätzlich ist die Zahl dieser fehlerbchafteten Abschnitte festgehalten und der Benutzer der Textverarbeitungseinrichtung
wird gewarnt, wenn diese Zahl einen vorgegebenen Wert erreicht. Diese Warnung verhindert die weitere Benutzung nicht, bedeutet aber, dass unter
Umständen die Zuverlässigkeit der Speichereinrichtung fraglich ist.
Wenn der Benutzer der Textverarbeitungseinrichtung willkürlich einen
Block auswählt, dann kann dieser Block durch ihn überprüft und korrigiert werden. So kann dieser Block beispielsweise durch zusätzlichen Text erweitert
werden, so dass er nicht langer in dem Speicherplatz, den er zuvor
im Speicher eingenommen hat, untergebracht werden kann. Wenn das Ende dieses Blocks ein Speichersegment mit der nächsthöheren Block-Nummer
mitbenutzt, kann es zu Schwierigkeiten kommen. Wegen dieses möglichen
Konflikts wird das System alle sich an . das Ende des ausgewählten Blockes
anschliessenden Daten, die dieses Segment mitbenutzen, nach einem anderen
Speicherort überführen, wenn ein solcher Konflikt mit anderen Daten vorliegt. Diese den Konflikt verursachenden Daten werden vor dem ursprünglichen
Lesen des angeforderten Blockes nach einem anderen Ort überführt und zwar über einen Pufferspeicher mit wahlfreiem Zugriff, der die angeforderten
Daten hält. Diese Daten werden dann nach einem anderen Segment übertragen, das zunächst nicht in der Systemliste oder dem fortlaufenden
Systemlog enthalten ist. Diese an einem anderen Ort abgespeicherten Daten
809 8 3 0/0778
~ 9 " AT9-76-O16
werden nicht in das Systenilog auf genommen,warm 1) dies nicht nach Abspeicherung
der ursprünglich angeforderten und korrigierten Daten im Speicher tatsächlich notwendig ist, oder 2) wenn nicht bei dem Versuch
Fehler auftreten, die angeforderten Daten in dem Segment abzuspeichern,
von dem sie ursprünglich kamen, oder aber 3) wo-nn der auf den ursprünglich
angeforderten Block folgende Block nicht ebenfalls ausgewählt ist, Falls
die Daten nicht an einem anderen Ort untergebracht werden können, wird
der Datenblock doch abgerufen, und dem Benutzer wird diese besondere Bedingung mitgeteilt. Dieses im Log nicht gekennzeichnete Segment wird als
Kurzzeitspeicher bezeichnet.
Alle Daten, die bei einer solchen Ueberführung nach einem neuen
Speicherplatz nicht gelesen werden können, werden im Kurzzeitspeicher
durch unverwechselbare Fehlercodes gekennzeichnet. Daher wird während dieser Uinspeicherung der Inhalt eines Blockes nicht zusammengezogen, und
alle Blockanfänge bleiben erhalten.
In Fig.1 ist ein Teil eines Textverarbeitungssystems mit einer
Datenverarbeitungsanlage 1 gezeigt, die an einer Adressenleitung 2 angeschlossen
ist, über die in einem Steuerspeicher befindliche Befehle adr ressiert und über die Leitung 4 an den Prozessor abgegeben v/erden. Ein
Systemtaktgenerator 5 liefert die Taktsignale über die mit C bezeichneten
Leitungen. Die Datenverarbeitungsanlage 1 überträgt über Leitung 6 Steuersignale an einen segmentierten,externen seriellen Speicher 9, der
beispielsweise ein Plattenspeicher, dessen verschiedene Spuren die einzelnen
Segmente darstellen, oder auch ein Magnetbandspeicher sein kann, dessen Datenblöeke die Segmente darstellen. Der Speicher 9 liefert
Unterbreehurigs- und Statusinformation über Leitungen 7 bzw. 8 and
die Datenverarbeitungsanlage 1. ■
Ein Speicher 21 mit wahlfreiem Zugriff dient der Speicherung von
Textdaten, der Erzeugung und Korrektur von Text und dient insgesamt als
Pufferspeicher für die Rückspeicherung von Daten im externen Speicher
9, Die Speichersteuerung 18 steuert, den Zugriff zu dem Speicher 21 über
eine Freigabeleitung 17, eine Datenleitung 19 und eine Adressenleitung
20. Eine unmittelbare Datenübertragung zwischen externem Speicher 9
und Arbeitsspeicher 21 unter Umgehung der Datenverarbeitungsanlage 1 wird über eine üirekt-Speich.erzugriffssteuerung 13 durchgeführt. Die
Daten werden zwischen der Direkt-Speicherzugriffssteuerung 13 und der
809830/0778
~ 10 " AT9-76--O16
Speichersteuerung 18 über die Datenleitung 15 und zwischen externem.
Speicher und Direkt-Speicberzugriflssteuerung 13 über Datenleitung
übertragen. Die Adressenleitung 14 veici: dabei auf die eat sprechende
Adresse im Arbeitsspeicher 21 hin, bei der entsprechend einem Freigabesignal
auf der Leitung 16 Daten gelesen oder eingeschrieben xcerden
sollen. Von der Direkt spei ctmrzugriffssteuerung 13 nach dem externen
.Speicher 9 übertragene Steuersignale und vom externen Speicher 9 nach
der Direkt—Speichersteuerung übertragene Statussignale laufen über Leitungen
11 bzw. 10. Die Datenverarbeitungsanlage 1 überträgt die zum Lesen
oder Schreiben im Arbeitsspeicher erforderliche Adresse über die Adressenleitung
22 an die Speichersteuerung 18. Die Daten werden zwischen Datenverarbeitungsanlage und der Speichersteuerung 18 in Verbindung mit
einem auf Leitung 24 liegenden Freigabesignal über Datenleitung 23 übertragen. ..-._, .". -
Der Steuerspeicher 3 wird gewöhnlich als .Festwettspeicher ausgeführt,
bei dem die Befehle fest eingespeichert sind. Selbstverständlich lässt sich der Steuerspeicher auch in Form eines Speichers mit wahlfreiem
Zugriff ausführen, so dass jedes Mal beim Einschalten des Systems die Befehle
neu in den Steuerspeicher geladen werden müssen. -In einer anderen
Ausführungsform können Datenverarbeitungsanlage 1 und Steuerspeicher 3 vollständig durch eine kombinatorische logische Schaltung ersetzt
werden, so dass kein Prozessor und keine Befehle verwendet werden. Die im folgenden noch zu beschreibenden Flussdiagramme machen es einem
mit der Technik und Entwicklung logischer Schaltungen vertrauten Fachmann möglich, die zur Durchführung der Erfindung erforderlichen
logischen Schaltungen zu entwerfen. Diese Flussdiagramme sind jedoch so angelegt, dass s.ie es einem Programmierer ohne-weiteres gestatten,
eine digitale Datenverarbeitungsanlage für einen Zugriff zu einem segmentierten externen Speicher und für eine laufende Aufzeichnung
der Benutzung dieses Spei chers gemäss dem hier verwirklichten Erfindungsgedanken
zu programmieren,
Fig. 2 zeigt die Anlaufphase des Systems, bei der eine Anzahl von im externen Speicher 9 aufgezeichneten Verzeichnissen untersucht
werden, um das zuletzt erstellte Systemlog festzustellen, das sich
aus einem Zählerstand in einem Aktivitätszählerfeld ermitteln lässt. Dabei geht man zunächst von der Annahme aus, dass der externe Speicher
80983 0/0778
280198t
- 11 - AT9-76-O16
eine Am aiii X von Systemlose enthält. Block 31 zeigt,, dass die Register
"Zähler" und "Lesen OK" auf Null gebracht und das Register N auf Eins eingestellt werden. Im Block 32 wird die Verzeichnisnummer N aus dem
Speicher 9 gelesen. Bei 33 wird die gelesene Zahl auf Lesefehler untersucht.
Bei erfolgreichem Lesevorgang wird bei 36 das Register N um 1
erhöht, und bei 37 wird der Inhalt des R-Registcrs mit X verglichen. Angenommen
der Inhalt des Registers ist nicht grosser als X, denn müssen
weitere Verzeichnisse gelesen werden, und dieser Vorgang wird durch
Auslesen des nächsten Systemverzeiclmisses mit Kr. N aus dem Speicher
9 wiederholt, wie dies bei 32 angedeutet ist. Angenommen, dass bei 33
der Lcscvorgang erfolgreich verlaufen isty wird bei 34 das "Lesen OK"-'
Register auf Eins eingestellt, und der am Beginn des Verzeichnisses eingespeicherte Zählerstand des Aktivitätszäblers wird mit dem Inhalt
des Zählerregisters bei 35 verglichen.
Ist der Inhalt des Aktivitätszählers grosser als oder gleich
Null, dann wird das Verzeichnis, wie bei Block 38 angegeben, in den
Arbeitsspeicher 21 eingespeichert. (In diesem BeispieT'wifd' der Zähler—' '
stand des Aktivitätszählers bei. dem ersten Vergleich des Zählerstandes
des Aktivitätszählers mit dem Inhalt des Zählerregisters immer gleich oder grosser sein als der Inhalt des Zählerregisters, da das Zählerregister
zu Anfang auf Null eingestellt war.) Bei 39 wird das Zählerregister mit dem Inhalt des Aktivitätszählers geladen, und bei 3G
wird der Inhalt des Registers N um Eins erhöht. Jedesmal dann, wenn der Inhalt des Aktivitätszählers grosser ist als der Inhalt des .Zäblerr
registers, wird ein Verzeichnis im Arbeitsspeicher 21 eingespeichert-.
Wenn bei 37 alle Verzeichnisse gelesen sind, dann ist das im Arbeitsspeicher 21 liegende Verzeichnis dasjenige, das mit dem höchsten Zählerstand
des Aktivitätszählers mit Erfolg gelesen worden ist.
Geht man von Fig.2 auf Fig.3 über, dann wird nach erfolgreichem
Lesen aller Verzeichnisse das Register "Lesen OK" bei 40 überprüft, ob der Inhalt 0 oder 1 ist. Ist der Inhalt eine Eins, dann wurde ein gültiges Verzeichnis aus dem Speicher 9 entnommen, und der Ablauf geht im
Block 42 zurück an den Benutzer des Textverarbeitungssystems. Wenn jedocn kein gültiges Verzeichnis gelesen wurde, dann wird bei 41
der Benutzer davon verständigt, dass ein gültiges Verzeichnis nicht vorliegt, wodurch ein weiterer Zugriff zum externen Speicher 9 verhindert
wird. 809 8 30/0778 ■
In (''.·)>
rijrn« 4 his 9 wird pin b.?liebigar Block ausgewählt, wobei
cine chu'ih den Bcnnt :·'.·.:·r miJ wiederum durch d;:s Textvara.-· !leitungssystem
an die Vf . vc-.j cl):-.;is·- u-id Sl ei.er.".eh;:lt ιΐί),<; gekcnii:-eidu!ete beliebige Seite
a'iij d;·!!) i'-xtcriitiii ?'·[·! ί Hk-r 9 cbgcruicn und in dan speicher 21 mit. w;:klfrc-iom
/.uj.',r:.ff ci.ngc-speiehen. win]. Dieser Vorg.-mg beginnt- in Fig. 4
mit folgenden ΛηΑ£ί1υΐ·πη.. Für die η«., π Bei .spiel soll die angeforderte Blocknunnncr
im N- Kegi.r.i.er enthalLcm sein und v?i.rd mit N bezeichnet, die im
ArbeitSrtpc'icli.'ir liegende Anfcmpsiidrcsse, bei der die vom externen Speicher
9 abgerufenen· Daten iibgespeichert werden sollen, wird mit B'bezeiclmeL
und ist. im B-Rc^isU·]: eins^spei chert:, und die nicht benutzte Kapazität
dc-L! Arbfi.l.sisn'.iiclittvs 21 wird mit. M bezeiclmot und ist im M—Register abge-·
spcicb&rt. Die Κ;·ρηκί tftt M ist eine ganze Zahl» die die Grosse des Arbeitsspeichers
21 und de:-; Puffers B anzeigt. Dies ist die Anzahl ganzer Absclmitl-.e
im Speicher 9, die der Pufferspeicher B unter den gegebenen
Umständen aufnehmen kami. Für eine beliebige Blockauswahl muss M mindestens
gleich der Anzahl der Abschnitte eines Segments rii.nus 1 sein»
Für dieses Beispiel sei angenommen, dass jedes Segment im externen
Speicher 9 acht Abschnitte enthält. Daher muss M mindestens -gleich 7 sein.
Am Anfang v?ird bei 46 geprüft, ob ein Block N vorhanden ist, wobei
die Systcniaufzeichnimg des Verzeichnisses abgetastet und die Daten- und
B]ockanfangsabschnitte gezählt werden. Ist der Datenbloclc N nicht vorbanden,
dann können natürlich auch keinerlei Textdaten aus dem externen Speicher 9 nach dein Arbeitsspeicher 21 übertragen werden. Das anschliessend
beschriebene Verfahren wird für die F.instellung der Speichersteuerung
für die Abspeicherung eines weiteren, auf den letzten zuvor eingespeicherten Block folgenden Textes durchgeführt.
Das in der Speichersteuerung verwirklichte System wird wohl am
besten an diesem Punkt genau beschrieben, nämlich die Verwendung von Auswahlzeigern
und Aufzeichnungszeigern. In dem System werden zwei in Registern abgespeicherte Zeiger verwendet, die auf Speicherplätze im segmentierten
externen Speicher 9 hinweisen. Diese Zeiger enthalten jeweils ein einem1"
Segment im Speicher 9 entsprechendes Feld und ein weiteres einem bestimmten Abschnitt in diesem Segment entsprechendes Feld. Der Auswahl-"
zeiger Si? soll dabei auf den nächsten Abschnitt eines anzusteuernden oder aufzurufenden Segmentes hinweisen. Da in diesem System ein Block nur
teilweise gelesen werden kann, viie dies in den nachfolgenden Flussdiagrauinien
im einzelnen noch gezeigt ist, und um diesen teilweisen Lesevorgang
zu einem späteren Zeitpunkt fortzusetzen und zu beenden, weist
80983 0/0778
BAD
13 AT9- 7&--O1G
dor Zeiger Si' ii-icht imucr.auf den Auliuiy F-iivii. Blockes hin,. Wenn .sowohl
das ■ "fj<.1CnWn L feld η is auch day Absc-hni LtHf ο 3d .von SP Hull ist, drum
wurden alle Daten äiisgevüblt". Blöcke kimucn nur noch erzeugt, wicht jedoch
revidiert, worden, wenn der gesagte Zeiger i.'.P KuJl ist.
Der Aufzcichriungsacj.^or RP weist auf uen letzten im ey.Lornen
Speicher abgespeicherten Abschnitt eines Sci.};.nGntcs hin. Wenn das Ab-schnittsfcld
des Aufze^chmmgszeige·rs RP gleich Null ist\ dann zeigt
dies, dass das im Segment feld be/.viielniete Segment in keinem Teil mit
einer Aufüeicl!iiür>g verseilen, ist^ Der Zeiger RP kann niemals logisch grösser
oder "gleich SF sein, vie dies aus dor Systcicli.p.te und dein Systeinlog hervorgeht«
Bei dieser.Definition gilt.>
dass dann, wenn der Inhalt des Aus— wahlzeigerregisterG gleich Null ist, der Auswahlzeiger als nicht vorhanden
betrachtet vjird. Die Zeiger können wohl aiif das gleiche Speichersegment,
jedoch nicht auf dr-n gleichen Abschnitt dieses Segmentes hinweisen. .
Nach Abschluss einer Blockspeicberoperation ist der logisch
zwischen RP und SP liegende Bereich in dem. Syateiulog bezüglich der
Datenkennzeichttung als unbenutzt gekennzeichnet mit Ausnahme der durch
Fehler unbenutzbaren Abschnitte. Ist der Auswah!zeiger Null, dann wird
der zwischen RP und dem Ende der Systconliste liegende Bereich in dem
Systeinlog als unbenutzt gekennzeichnet. Jedes Segment, das keine Daten
enthält, wird aus der Systemliste entfernt. Dadurch wird sichergestellt,
dass für nachfolgende Arbeiten Speicherplatz zur Verfügung steht.
In Fig.4 werden für den Fall, dass ein Block nicht vorhanden ist,
bei 49 beide Felder des SP-Registers auf Null eingestellt. Das Kurzzeitregister
wird dabei gelöscht. Bei 50 wird das Segmentfcld des RP-Registers
auf das letzte in der Systemliste befindliche logisch folgende Segment mit Daten eingestellt, und bei 51 wird das Abschnittsfeld des RP-Registers
auf den letzten mit Textdaten versehenen Abschnitt der im Segmentfeldabschnitt von RP angegebenen Segmentnummer eingestellt. Bei 52
wird der Benutzer davon in Kenntnis gesetzt, dass der Block nicht gefunden
wurde. Der Äuswahlzeiger wird daraufhin so eingestellt, dass er anzeigt,
dass es keinen weiteren abgespeicherten Text zum Auswählen gibt, und
der Aufzeichnungszeiger wird so eingestellt, dass Text unmittelbar hinter
dem zuletzt im externen Speicher 9 eingespeicherten Block im Arbeits-
'ri ä^-^ 809830/0778 .
- 14 - AT9-76-016
Speicher 21 abgespeichert: werden kann.
Bei 46 soll nunmehr der wahrscheinlichere Fall betrachtet werden,
dass der bezeichnete Block N vorhanden ist. Beginnt der nächste Block N+l
auf deiii gleichen Segment des Speichers, auf dem auch der Block N
endet, dann kann e« zu einer Störung kommen. Das Problem besteht darin,
dass dann, wenn der Text im Block N abgerufen, und erweitert wird, dieser
neue Text: nicht mehr in denselben. Speicherplatz passt, aus dem er entnommen
wurde. Wenn der nächste Textblock nicht im gleichen Segment
beginnt, in dem der bezeichnete Block N endet, dann kann es keine Schwierigkeiten
geben, da jede Ausdehnung eines Textes über die Segmentgrenze in einem bisher unbenutzten Segment abgespeichert würde. In Block 47
Fig.4 sei., der störungsfreie Fall betrachtet. Dann wird bei 48 der
Kurzzeitspeicher gelöscht, und das Verfahren wird bei C in Fig. 7 fortgesetzt. Bei 70 wird dann das Segmentfeld des SP-Registers auf
die Nummer des ersten Segmentes, in dem der Block N abgespeichert ist, eingestellt. Diese Information wird dem Verzeichnis entnommen. Bei 71
wird das Abschnittsfeld des SP-Registers auf die Nummer des ersten Datenabschnittes
des Blockes N aus dem Systemaufzeichnungsabschnitt des
Verzeichnisses entnommene Information eingestellt. Ist bei 72 der anzusteuernde Block der erste Block eines Dokumentes, dann wird bei 73 das
Segmentfeld des RP-Registers auf die Segmentnummer des Speichers 9 eingestellt, der das erste Segment des Blockes N bei 73 enthält, und bei
74 wird das Abschnittsfeld des RP-Registers auf Null eingestellt.
Bevor in Fig.8 fortgefahren wird, soll angenommen werden, dass der
angeforderte Block N nicht der erste Block ist, so dass der Ablauf bei 75 fortgesetzt wird, wo das Segmentfeld des RP-Registers auf
die Nummer des letzten Datensegmentes des Blockes N—1 eingestellt wird
und bei 76 das Abschnittsfeld des RP-Registers auf die Nummer des letzten Abschnittes eingestellt wird, auf dem Daten des Blockes N-I
gespeichert wurden.
Fährt man bei D in Fig.8 fort, dann bestimmt die Entscheidung
bei 78 ob ein partieller Lesevorgang vorliegt dadurch, dass festgestellt wird, ob im Arbeitsspeicher 21 ausreichend Speicherplatz zur
Verfugung steht, um irgendeinen jenseits des Auswahlzeigers, aber noch
auf dem gleichen, durch das Segmentfeld des Auswahlzeigers gekennzeichneten Segments liegenden Abschnitt aufzunehmen. Wenn bei' 78 M (die Speichergrösse
in Abschnitten) gross genug ist, um alle Abschnitte des Blockes N
809830/0778
~ 15 ~ AT9-76-O16 ^
in dem durch das Segment feld im SP-Rcgister bezeichneten Segment
aufzunehmen, dann werden hei 79 die Tcxtfibüc.hnitte des Sl'-SegniDiites mit
dem Block N hei der Adresse 13 in den-Arbcit.sppeich.er 21 eingelesen. Treten
keine Lesefehler auf, dann geht es bei 80 weiter nach Dl in Fig.9.
Wenn jedoch Lesefehler auftraten, dann werden bei 81 Lescfehlercodes
vor jedem Speicherplatz in jedem Lesefehler enthaltenden Abschnitt im Pufferspeicher B eingespeichert, wodurch dein Benutzer angezeigt
wird, wo Lesefehler aufgetreten sind, worauf das Verfahren weiter nach Dl läuft.
Wenn bei 78 in Fig.8 M nicht gross genug war, den Block N im
SP~Segment aufzunehmen, dann wird hei 82 dem Benutzer mitgeteilt,
dass der Lesevorgang nicht vollständig durchgeführt ist. Wenn bei 83
mit M gleich Null der Speicher als voll gekennzeichnet ist, dann läuft
das Verfahren weiter nach Dl und wenn M nicht gleich Null ist, dann . wird bei 84 soviel aus dem Block N im Segment SP ausgelesen, als der
Arbeitsspeicher 21 aufnehmen kann. Alle in den Arbeitsspeicher 21 eingelesenen Daten werden auf Fehler überprüft, und es werden, falls erforderlich,
gemäss 80 und 81 Fehlercodes eingegeben.
Ab Dl in Fig.9 wird bei 86 angenommen, dass wegen unzureichender
Pufferkapazität ein Teil-Lesevorgang erforderlich war. Bei 87 wird das
Auswahlzeigerregister auf das nächste nicht gelesene Segment und den Abschnitt des Blockes N eingestellt,so dass das Lesen an diesem Punkt fortgesetzt
werden kann,wenn Speicherplatz im Arbeitsspeicher 21 zur Verfügung
steht.Wenn bei den in den Arbeitsspeicher 21 eingeschriebenen Daten Fehlercodes
vorkommen, dann wird der Benutzer davon in Kenntnis gesetzt.Ist dies
nicht der Fall,geht das System zurück an den Benutzer.
In Fig.9 soll bei 86 nunmehr der Fall betrachtet werden, bei dem
kein teilweises Lesen erfolgt ist. Bei 91 wird das M-Register um
die Anzahl der soeben gelesenen Datenabschnitte vermindert. Wenn bei 92 der Block N + 1 in dem Segment SP vorhanden ist, dann wurde der
ganze Block N gelesen und bei 93 wird das Abschnittsfeld des SP-Registers auf den Blockanfangsabschnitt des Blockes N + 1 eingestellt.
Der Auswahlzeiger zeigt damit auf den Anfang des nächsten Blockes in der logischen Folge von Blöcken auf dem Dokument. Zu diesem Zeitpunkt
wird eine Ueber^rüfuiit, au£ Fehlercodes im Arbeitsspeicher 21 durchgeführt
und der Benutzer von gegebenenfalls vorhandenen Fehlercodes in Kenntnis
809830/0778
16 ΔΤ9-76-016 *
gosetzt,
1st bei. 92 der Block N + 1 in dem Segment SP nicht enthalten, dann
wird die Sys te tali KLa dos Verzeichnisses bei. 94 daraufhin überprüft, ob
auf das durch das Segmentfeld im SP-Register bezeichnete Segment ein
weiterer» Segment folgt. Ist dies nicht der Fall, dann wird bei 98 das SP-Rcgister auf Null eingestellt und damit angezeigt, dass keine weiteren
Blöcke vorhanden sind, die gelesen werden, können. Nach Mitteilung von
gegebenenfalls zuvor in den Arbeitsspeicher 21 eingeleseneii Fehlercodes
wird das System an den Benutzer zurückgegeben. Wenn bei 94 festgestellt wird ,dass auf das durch den Auswahlzeiger festgelegte Segment
ein weiteres Segment folgt, dann wird das Segmentfeld des SP-Registers
auf das- nachfolgende Segment eingestellt, und das Abschnitts-feld
des SP-Registers wird auf diesen ersten Datencbschnitt dieses
nächstfolgenden Segments bei 95 eingestellt, wobei diese Information aus dem Verzeichnis abgerufen wird. Wenn bei 96 das Abschnittsfeld des SP-Registers
auf den Abschnitt eines Blockanfangs eingestellt ist, dann ist das Lesen des angeforderten Blockes beendet, und das System wird nach
Mitteilung von im Arbeitsspeicher gegebenenfalls liegenden Fehlercodes
an den Benutzer zurückgegeben. Zeigt jedoch das Abschnittsfeld des SP-Registers nicht auf einen Blockanfang eines nächstfolgenden Segmentes,
dann wird bei 97 die Adresse B um die Menge der soeben gelesenen Daten erhöht, und das Verfahren geht weiter nach D und fährt mit
dem Lesen des nächsten Segmentes fort.
Nunmehr sei in Fig.4 bei 47 die Möglichkeit eines Konfliktes angenommen.
D.h., dass der nächste Block (N+l) im gleichen Segment wie der angeforderte Block liegt. Dieser Konflikt tritt dann ein, wenn der angeforderte
Block erweitert wird, so dass in dem Segment, in dem der Block N endet nicht genügend Platz vorhanden ist, um den erweiterten Block K
aufzuzeichnen, ohne dabei Daten in den Abschnitten einzuschreiben, in denen der Block H + 1 abgespeichert ist.
Geht man nunmehr nach B in Fig.5 über, dann wird bei 55 ein mit ES bezeichnetes
leeres Segment im Speicher 9 aufgefunden. Dieses leere Segment wird durch Bezugnahme auf das Verzeichnis als ein Segment ermittelt, für
das das Systemlog weder Daten, noch wegen Fehler unbenutzbare Abschnitte aufweist, und das auch nicht in dem die Systemliste enthaltenden Teil
des Verzeichnisses enthalten ist. Wenn bei 56 angenommen wird, dass im Speicher 9 ein leeres Segment zur Verfugung steht, dann werden bei 57
8 09830/0778
- 17 - ΛΤ9-76-016
die einen Konflikt hervorrufenden Daten aus dem den. Block N enthaltenden
letzten Segment in die Adresse B des Arbeitsspeichers 2.1 eingelesen. Diese
. störenden Daten sind dabei alle diejenigen Daten des Segments, in dem
der Block N endet und die auf das Ende des Blockes N folgen. Der Arbeitsspeicher
21 wirkt für diese Daten als zeitweiliger Pufferspeicher,
so dass diese später nach dem Segment ES übertragen werden können. Vie ηη
bei 58 beim Lesen der einen Konflikt hervorrufenden Daten Fehler festgestellt werden, dann werden für alle diejenigen aus dem Speicher 9
in den "Arbeitsspeicher 21 eingelesenen, fehlerbehafteten Abschnitte, wie
bei 59 angezeigt, Fehlercodes in den Arbeitsspeicher 21 eingeschrieben. Nach Einschreiben der Fehlercodes oder wenn keine solche vorhanden sind,
werden die einen Konflikt verursachenden Daten aus dem Arbeitsspeicher ausgelesen und, wie bei 60 angedeutet, in das Segment ES eingesehrieben.
Dieser Schreibvorgang wird bei 61 auf Schreibfehler überprüft, und
beim Auftreten von Schreibfehlern werden die Datenkennzeichnungen des soeben eingeschriebenen Segmentes ES zeitweilig bei 62 für eine Anzeige
von Daten in jedem Abschnitt eingestellt, wodurch eine erneute Verwendung dieses Segmentes bei einer versuchten Rückspeicherung der Daten verhindert
wird." Das" Verfahren läuft dann zurück nach 55, wo dann der
Versuch unternommen wird, ein weiteres leeres Segment für eine Rückspeicherung der störenden Daten aufzufinden.
Wenn bei 61 angenommen wird, dass beim Rückspeichern der Daten keine
Fehler aufgetreten sind, dann geht das Verfahren x^eiter nach Bl in Fig.6.
Bei 65 in Fig. 6 wird der Kurzzeitspeicher auf das Segment ES eingestellt. Bei 66 wird die das Segment ES betreffende notwendige Information aufbewahrt,
so dass sie später in das Verzeichnis aufgenommen werden kann, sollte sie schliesslich benötigt werden. (Sie wird beispielsweise dann
benötigt, wenn die abgerufenen Daten erweitert werden, da sonst die in dem Kurzzeitspeicher abgespeicherten störenden Daten überschrieben
würden.) Die für das Segment ES aufbewahrte Information ist die Segmentnummer, aus der die rückübertragenen Daten entnommen wurden, sie wird im
Α-Register abgespeichert und als A bezeichnet, sowie die Datenkennzeichen (unbenutzt-verfügbar,Fehler-unbenutzt, Daten oder Daten- und Blockanfang)
des jetzt existierenden Segmentes ES. Fährt man fort nach 67, dann werden
alle Segmente, die bei der Rückübertragung von Daten Schreibfehler aufr
809830/0778
" 18 " ΛΤ9-76-016
wiesen, freigegeben« In Fig.5 Block 62 waren bekanntlich diejenigen
Segmente, bei denen Schreibfehler aufgetreten waren, in das
Systeinverzoiclmis auf&enouir.ien worden, um Daten in allen deren Abschnitten
anzuzeigen. Die Freigabe des Segmentes unterstellt dabei, dass diese Dal enabf:chnLtte im Systemlog als nicht benutzt gekennzeichnet
werden. Dii.se Segmente wurden niemals in der Systemlistu auf genommen.
Nach Freigabe aller derjenigen Segmente, in denen Schreibfehler
aufgetreten sind, wiird das Verfahren in Fig.7 bei C fortgesetzt, so dass
der angeforderte Block in den Arbeitsspeicher 21 eingeschrieben werden
kann. Betrachtet man nochmals Fig.5, dann wird bei einem möglichen Konflikt
bei der versuchten llückspeicherung von einen Konflikt verursachenden Daten, wenn bei 56 kein freies Segment aufgefunden wird, der
Kurzzeitspeicher gelöscht und dem Benutzer bei 63 mitgeteilt, dass keine Rückspeicherung möglich ist. Das Verfahren läuft weiter nach B2
in Fig.6. Nachdem alle Segmente, bei denen Schreibfehler vorgekommen
sind, freigegeben worden sind, läuft das Verfahren weiter nach C.
Eine weitere Art der Systemoperation ist die Auswahl des nächstfolgenden
Blockes unter der Annahme, dass bereits eine willkürliche Auswahl eines Blockes stattgefunden hat. Wichtig hierbei ist, dass am
Ende der zuvor abgelaufenen Blockauswahloperation der Auswahlzeiger auf denjenigen Block eingestellt worden ist, der bei der Auswahloperation des
nächstfolgenden Blocks angesteuert werden soll, wobei zu Beginn der Auswahloperation für den nächstfolgenden Block keine Ersteinstellung des
Auswahlzeigers erfolgt»In Fig. 10 beginnt dieses Verfahren mit einer vom
Benutzer kommenden Anforderung, den Block N in die Pufferspeicheradresse B des Arbeitsspeichers 21 einzulesen, der eine Kapazität M aufweist. Bei
101 wird der Systemlogteil des Verzeichnisses abgefragt, ob es tatsächlich einen Block N gibt. Ist dies nicht der Fall, dann wird das*
Auswahlzeigerregister bei 103 auf Null gestellt, und bei 104 wird dem Benutzer
mitgeteilt, dass der Block im Speicher 9 nicht aufgefunden wurde. Bei 105 geht das Speichersteuersystem wieder an den Benutzer zurück.
Es sei nunmehr angenommen, dass bei 101 im Systemlog des Verzeichnisses
festgestellt wurde, dass ein Block vorhanden ist. Dann wird bei 102 das Unterprogramm SCTAD (Kurzzeitspeicher) aufgerufen.
Dieses Unterprogramm (Kurzzeitspeicher) ist in Fig.11 gezeigt.
Wenn bei 108 das Kurzzeitspeicherregister leer ist, läuft das Verfahren
809830/0778
1 - -19- AT9-76-016
zurück an den Anrufer, nämlich Punkt. D in Fig. 10, Das Verfahren fährt
dann bei P in Fig. 8 fort mit dew Uebcrfrngon von leiten aus dem nächstfolgenden
ausgewählten iilock nach dem Arbeitsspeicher 21, Wenn jedoch der
Kurzzeitspeiche-r nicht leer ist, dann wird dar. KurzzeitspeicherHeginent
logisch in die Liste der Segmente in der Systemliste nach folgeiidein Verfahren
aufgenommen. Bei 109 wi rd die Systemliste des Verzeichnissen
für eine Einfügung der auf die Nummer des Segmentes A. folgenden
Segmentnummer des Kurzzeitspeiehers auf άαη neuesten Stand gebracht. Segment
A ist dabei das Segment, aus dem auf einen zuvor ausgewählten Block
folgende Daten nach dem Kurzzeitspeicher übertragen wurden, l'ei Ho wird
das Systemlog des Verzeichnisses insoweit berichtigt, dass die tatsächlichen
Datenkennzeichen des Kui'zzeitspeichersegments berücksichtigt werden.
Bei 111 wird das Systeinlog des Verzeichnisses zur Berücksichtigung der
neuen Datenkeniizeichen des Segments A berichtigt. Diejenigen Abschnitte
des Segments A, die nach dem Kurzzeitspeicher übertragen worden sind,
werden nunmehr in dem Systemlog als nicht-benutzt gekennzeichnet. Bei wird das Segmentfeld des SP-Ilegisters auf das Segment des Kurzzeitspeichers
eingestellt. Bei 113 wird das Kurzzeitspeicherregister gelöscht, und das System läuft wieder nach Punkt D in Fig. 10. Von diesem
Punkt aus wird das Einlesen des angeforderten Blocks in den Arbeitsspeicher 21 fortgesetzt. Es sei darauf hingewiesen,dass die Daten aus
dem Kurzzeitspeichersegment und nicht aus den Daten des Segments A
"..-" ausgelesen werden., aus dem diese Daten nach dem Kurzzeitspeicher übertragen
worden sind.
Eine andere Arbeitsweise des Systems ist das teilweise Lesen eines
Datenblocks, das in Fig. 12 beginnt. In diesem Fall fordert ein Benutzer^
dass das Lesen eines zuvor teilweise gelesenen Blocks aus dem externen
Speicher 9 nach dem Arbeitsspeicher 21 bei der Pufferadresse B fortgesetzt
wird. Wird die Pufferkapazität .M grosser als Null, dann kann das Lesen eines Blocks oder eines Teils des Blocks bei D in Fig. 8 fortgesetzt
werden.
Eine wichtige Operation der Speicheraufzeichnung und Steuerung
findet statt, wenn ein Block im externen Speicher aufgezeichnet werden
muss. Für diese Aufzeichnung müssen die entsprechenden Segmente und deren
Abschnitte ausgewählt werden, und diese Information muss aufgezeichnet
werden. In Fig. 13 beginnt eine solche Aufzeichnung mit einer Anforderung
8098 30/0778
20 AT9-76-O16 ^
durcli deu Benutzer, dass der Speicherinhalt an der Adresse B im
Arbeitsspeicher 21 an den externen Speicher 9 am Block N übertragen
werden soll. Der Block soll dabei M Abfsclmitle aufweisen.
Bei 116 wird das Syslemlog des Verzeichnisses abgefragt, ob im
Speicher. 9 Aufzeichnungsbüöcke existieren. Sind keine Blöcke vorhanden,
dann muss für die Aufzeichnung ein leeres Segment ausgewählt werden, und die Register für den Auswahlzeigcr, für den Kurzzeitspeicher und für
den Aufzeichnungszeiger müssen eingestellt werden. Bei 117 wird ein
leeres Segment aufgefunden und in die Systemliste in den Bereich des Verzeichnisses aufgenommen. Bei 118 wird das SP-Rcgister auf Null eingestellt
und das Kurzzeitspeicherregister gelöscht. Bei 119 wird der Seguientteil
des KP-Registers auf das in der Systemliste befindliche Segment, eingestellt, und das Abschnittsfeld im RP-Register wird zu Null ge- .
macht. Dieser Ablauf wird bei 120 fortgesetzt.- Wenn bei 116 ein Block
vorhanden ist, dann läuft das Verfahren unmittelbar nach 120. Wenn ein Block vorhanden ist, dann wird angenommen, dass die Aufzeichnungs- und
Auswahlzeiger bereits eingestellt sind, da bei Vorhandensein von Blöcken angenommen wird, dass bereits ein Versuch, einen dieser Blöcke auszuwählen,
durchgeführt wurde, bevor ein Aufzeichnungsverfahren stattfinden kann. Bei 120 wird das SP-Register daraufhin überprüft, ob es Null ist.
Das SP-Register ist dann Null, wenn zuvor keine Blöcke vorhanden waren
oder wenn Blöcke vorhanden sind und der Aufzeichnungszeiger auf den
letzten Abschnitt in den bestehenden Blöcken hinweist. In anderen Fällen ist das Auswahlzeigerregister nicht Null, und das Verfahren läuft
weiter nach H in Fig. 14.
Wenn der Auswahlzeiger nicht gleich Null ist, dann weist der Auswahlzeiger
auf den nächsten Block eines oder mehrerer Blöcke hin, und der Aufzeichnungszeiger
liegt vor dem Auswahlzeiger.Die Aufzeichnung beginnt bei dem Aufzeichnungszeiger, muss jedoch vor Erreichen des Auswahlzeigers beendet
werden. Somit wird in Fig.14 bei 122 das Kurzzeitspeicherregister daraufhin untersucht, ob es leer ist. Ist dies der Fall, dann ist hier
keine Möglichkeit eines Konfliktes gegeben, bei dem der Aufzeichnungszeiger
bis an den Auswahlzeiger heran kommen-könnte, so dass der Ablauf
weiterführt nach G für eine fortgesetzte Aufzeichnung, wie dies noch beschrieben wird.
Ist der Kurzzeitspeicher nicht leer, dann muss bestimmt werden, ob
der Text, der ursprünglich vor dem Speicherinhalt des Kurzzeitspciche.rs
80983 0/0778
: ., . -21- AT9--76-O16
lag, erweitert worden ist, so dass er nicht länger in das einen Block
enthaltende Segment passt, welcher nach dem zuvor ausgewählten Block beginnt,
der abgespeichert v/erden muss. Wenn also angenommen wird, dass der
Kurzzeitspeicher nicht leer ist, dann wird bei 123 überprüft, ob zwischen
dem Aufzeichnungszeiger und deiu Auswahlzeiger genügend Speicherplatz für
die Aufnahme■■ des Blockes N vorhanden ist. Ist dies der Fall, dann kann
die Aufzeichnung weitergehen nach D4 Ist jedoch nicht genug Speicherplatz
vorhanden, dann wird das zuvor in Verbindung mit Fig. 11 beschriebene Unterprogramm SCPAD (Kurzzeitspeicher) abgerufen. Durch Abrufen dieses
Unterprogramms wird der Kurzzei tspeicher an die Systemliste und das Systemlog
übertragen., so dass das' gerade ablaufende Aufzeichnungsverfahren
in den nunmehr unbenutzten Abschnitt des Aufzeichnungszeiger und Auswahlzeigersegments
einschreiben kann. ,
Das Verfahren läuft weiter nach G in-Fig. 15 oder würde bereits
bei G„angelangt sein, wenn in Fig. 13 bei 120 der Auswahlzeiger auf
Null eingestellt worden wäre. Bei 126 wird das Abschnittsfeld des HP-Registers überprüft, um zu bestimmen, ob der Aufzeichnungszeiger nach dem
Ende eines Segmentes weist. Ist dies der Fall, dann läuft das Verfahren
weiter nach I, zu welchem Zeitpunkt ein; weiteres Segment für die Aufzeichnung aufgefunden werden muss, wenn ein solches vorhanden ist.
Zeigt jedoch der Aufzeichnungszeiger nicht auf das Ende eines Segmentes,
dann wird hei 127 der Inhalt des Arbeitsspeichers 21 daraufhin überprüft,
ob er Null ist. Dies ist ein Teil der Aufzeichnung, da bei der
Ueberführung von.Datenabschnitten und Segmenten vom benutzten zum nicht
benutzten Zustand Daten vom Speicher 9 nach dem Arbeitsspeicher 21 ^
übertragen und diese Daten dann im Arbeitsspeicher 21 gelöscht werden,
worauf nach Löschen dieser Daten die Aufzeichnung angefordert wird.
Angenommen, dass Daten aus dem externen Speicher entfernt werden
sollen, so dass der Speicherinhalt des Arbeitsspeichers 21 zu Null wird,
dann geht der Ablauf bei 127 Fig. 15 nach J in Fig. 16. Bei 133 in Fig.16
werden alle Abschnitte des Systemlogs des Verzeichnisses zwischen, jedoch
nicht einschliesslich der Position des Aufzeichnungszeigers und des Auswähl zeigers, auf unbenutzt eingestellt. Der Status irgenwelcher aufgezeichneter
fehlerhafter Abschnitte zwischen Aufzeichnungszeiger und Auswahlzeiter
wird nicht verändert. Bei 134 wird das Verzeichnis daraufhin durchsucht, ob in der Systemliste irgendwelche leeren Segmente vor-
: 809830/0778
_22_ 280T981
AT9-76-016
handen sind. Ist das der Fall, dann werden bei 135 diese Segmente aus
der SytiLcmliisLc entfernt, so dass das System sin als benutzbare leere
Segmente betrachtet. Der Ablauf geht dann weiter nach L in Fig* 18. Enthält
die Systeiulistc keine leeren Segmente, dann läuft das Verfahren unmittelbar
zu L.
Tn Fig. 18 verbleibt nur noch, bei diesem I.öschabschnitt der Aufzeichnung
von Dacen das Verzeichnis auf den neuesten Stand zu bringen und
dieses berichtigte- Verzeichnis im externen Speicher 9 abzuspeichern. Bei 148 wird ein Zähler Y -auf Kins gesetzt, der die im externen Speicher 9
abgespeicherten Verzeichnisse zählt. Bei 149 wird der Aktivitätszähler
ganz zu Beginn des Verzeichnisses im Arbeitsspeicher 21 um Eins erhöht.
Bei 150 wird dann das Verzeichnis an dem für Verzeichnisse vorgesehenen Speicherplatz im Speicher 9 aufgezeichnet, der der augenblicklichen
Position des dem Speicher 9 zugeordneten Lese/Schreibkopfes am nächsten
liegt. Wenn bei 151 während der Aufzeichnung eines Verzeichnisses keine Aufzeichnungsfehler vorkommen, dann geht das Verfahren wieder an den
Benutzer zurück. Tritt bei 151 ein Aufzeichnungsfehler auf, dann wird bei 152 der Zähler Y um Eins im Zählerstand erhöht, und es wird bei 153
bestimmt, ob der Zählerstand im Zähler Y die Anzahl der Verzeichnisse X
überschreitet. Ist dies nicht der Fall, dann gibt es weitere Aufzeichnungsplätze
für Verzeichnisse im Speicher 9, und es wird bei 154 ein neuer Versuch unternommen, das Verzeichnis in der nächsten besonders zugeordneten
Aufzeichnungsfläche für Verzeichnisse abzuspeichern. Ist Y grosser als X, dann gibt es keine weiteren Aufzeichnungsflächen für
Verzeichnisse, und dem Benutzer wird mitgeteilt, dass die Verzeichnisse fehlerhaft sind und dass der externe Speicher nicht langer benutzbar ist.
In Fig. 15 war die unmittelbar vorhergegangene Diskussion auf die
Löschung bei der Aufzeichnung gerichtet worden, wenn bei 127 M gleich
Null ist. Es sei nunmehr angenommen, dass aus dem Arbeitsspeicher 21 Text nach dem externen Speicher 9 zurückübertragen werden soll, wobei
M nicht gleich Null ist. Der Aufzeichnungszeiger wird nunmehr auf Aufzeichnung eingestellt, und bei 128 wird, beginnend mit dem ersten auf den
Aufzeichnungszeiger folgenden Abschnitt soviel von den im Arbeitsspeicher
enthaltenen Daten aufgezeichnet, als auf den nicht fehlerbehafteten Abschnitten des durch das Segmentfeld des Aufzeichnungsträgers ausgewiesenen
Segmentes möglich ist» Die Aufzeichnung wird dann unmittelbar vor dem durch das Aufzeichnungsfeld des Aufzeichnungszeigers bezeichneten
809830/0778 -
~ 23 ~ , AT9-76-O16
Abschnitt angehalten, wenn der Aufzeichmingszeiger in diesem Segment
angetroffen wird , Bei 129 werden die neu in dem Speicher 9 aufgezeichneten
Daten auf Fehler überprüft. Sind leeine Aufzeichnungsfehler ·
vorhanden, dann wird das Unterprogramm "Berichtigen" bei 130 abgerufen.
Das Berieb t.igungsprogramm läuft gewäss Fig. 21 ab, wobei das Register
M bei 176 um die soeben aufgezeichnete Datenmenge verringert
wird ( die Anzahl der Abseimitte von Daten im Arbeitsspeicher 21).
Bei 177 wird die Arbeitsspeicheradresse B um die soeben aufgezeichnete
Datenmenge erhöht. Die Systemaufzeichnung wird berichtigt und gibt damit
die neuen Daten oder Daten- und Blockanfangsabschnitte an ., die bei der Aufzeichnung benutzt wurden. Schliesslich wird bei 179 das Abschnittsfeld
des RP-Registers auf den letzten Abschnitt, auf dem eine Aufzeichnung versucht wurde, eingestellt, unabhängig davon, ob dies ein Fehlerabschnitt
war oder nicht. Zu diesem Zeitpunkt geht das Verfahren wieder nach 131 in Fig. 15.
Es sei angenommen, dass bei 129 Fig.15 in den soeben aufgezeichneten
Daten Fehler aufgetreten sind. Das Verfahren läuft dann weiter nach K Fig. 17, Zunächst wird bei 138 das Unterprogramm SCPAD (Kurzzeitspeicher) abgerufen,
das in Fig. 11 gezeigt und zuvor beschrieben wurde. Ist der Kurzzeitspeicher leer, dann läuft das Verfahren unmittelbar nach 139,
und ist der Kurzzeitspeicher nicht leer, dann wird das Kurzzeitspeichersegment
in das Verzeichnis eingebracht, und das Verfahren geht weiter bei 139. Wenn bei 139 weitere zusätzliche leere Segmente im Speicher 9
vorhanden sind, dann wird das Unterprogramm ERRUP (Fehlerberichtigung)
abgerufen.
In Fig. 22 beginnt das Unterprogramm ERRUP bei 182 durch Berichtigung
des Systemlogs des Verzeichnisses zur Kennzeichnung des Fehlerabschnitts.
Für jeden aufgezeichneten Fehlerabschnitt wird bei 183 der Fehlerabschnittszähler
um Eins erhöht. Bei 184 wird überprüft, ob der Inhalt des Fehlerzählers
gleich dem Fehlergrenzwert ist. Der Fehlergrenzwert ist eine vorbeatimmte Zahl, die um Eins grosser ist als die Anzahl der Fehlerabschnitte, die ohne Warnung an den Benutzer zulässig sind. Wird
dieser Crenzwert erreicht, dann wird bei 185 der'Benutzer benachrichtigt,
dass der Fehlergrenzwert erreicht ist.Nach dieser Benachrichtigung oder
wenn eier Zählerstand den Grenzwert nicht erreicht hat, geht das Verfahren
wieder bei Fig. 17 bei G an den Anrufer zurück. Dann werden bei Fig.15
8 0 9 8 3 0/0778
24 AT9-7G-O16
weitere Aufzeichnungsversuclie unternommen, falls das angezeigt ist,,
In Fig. 17 sei bei 139 angenommem, dass keine weiteren leeren SegliKinte
vorhanden sind. Dann wird bei 140 geprüft:, ob für den aufzuzeichnenden.
Block N ein Blocknnfang aufgezeichnet ist. Ist der Blor.kaiifang aufgezeichnet,
dann wird das Unterprogramm ERRL1P in Fig. 22 abgerufen. Am
Ende dieses Unterprogramms werden keine weiteren Versuche zur Aufzeichnung von Daten unternommen, und der Benutzer wird bei 144 davon
in Kenntnis gesetzt, dass nicht: alle aufzuzeichnenden Daten aufgezeichnet
worden sind. Dann läuft das Verfahren weiter nach L in Fig. 18, so dass das Verzeichnis berichtigt und erneut im Speicher 9 abgespeichert
werden kann. Wenn bei 140 ein Blockanfang für den Block N nicht aufgezeichnet
ist, dann wird das Absclmittsfeld des Aufzeichnungszeigers auf den nächstfolgenden Abschnitt dieses Segments bei 142 eingestellt, und es
wird bei 143 zwangsweise ein Blockanfang eingeleitet. Das verhindert "den Verlust von Blockanfängen und die damit zusammenhängende Umnumerierung
von nachfolgenden Blöcken.
Nunmehr soll der Ablauf nach Fig. 15 ab I besprochen werden, wenn für die Aufzeichnung ein anderes Segment angesteuert werden muss. Gemäss
Fig. 19 wird bei 158 die Systemliste des Verzeichnisses daraufhin untersucht, ob ein in der Systemliste enthaltenes Segment hinter dem durch
das Segmentfeld des EP-Registers bezeichneten Segment liegt. Ist dies der Fall, dann wird bei 149 bestimmt, ob dieses dahinterliegende Segment
für eine Aufzeichnung zur Verfügung steht. Ein dahinter liegendes Segment wird dann als für eine Aufzeichnung zur Verfügung stehend angenommen,
wenn 1. der Segmentabschnitt des SP-Registers nicht auf dieses nächstfolgende Segment hinweist und wenn 2. das nächstfolgende Segment
keine Blockanfänge enthält. Steht dieses nächstfolgende Segment zur Verfügung, dann wird bei 160 der Segmentabschnitt des RP-Registers auf
die laufende Nummer des nächstfolgenden Segments eingestellt, und das Abschnittsfeld des RP-Registers wird auf Null gebracht. Damit kann die
Aufzeichnung vom Anfang dieses nächstfolgenden Segments an gemäss der Arbeitsweise fortgesetzt werden, wie sie bei G in Fig.15 beginnt.
Ist das nächstfolgende Segment für eine Aufzeichnung nicht verfügbar,
dann wird bei 161 der Inhalt des Kurzzeitspeicherregisters überprüft. Ist der Kurzzeitspeicher nicht frei, dann wird bei 160 für die
Nichtaufzeichnung in dem nicht zur Verfügung stehenden nächsten Segment eine Ausnahme gemacht. An diesem Punkt wird das Segmentfeld des
809830/0778
: - - 25 - ΛΤ9-76-016
EP-Register's auf das nächstfolgende Segment und das Abschnittsfeld
dös RE-Registers auf Null eingestallt, so dass die Aufzeichnung nach G
fortfahren kann. Dieses Segment wird dann zur Aufzeichnung benutzt, da
der Kurzzeitspeicher später mit eingebracht; werden kann, wenn dies
wegen Fehlern bei der Aufzeichnung in diesem nächstfolgenden Segment
nötig werden sollte.
Wenn bei 161 der Kurzzeitspeicher leer ist, dann wird bei 162 das
Verzeichnis daraufhin überprüft, ob leere Segmente vorhanden sind. Wenn
ein leeres Segment vorhanden ist, dann wird das leere Segment in die
Systemliste hinter dem laufenden RP-Segmeat aufgenommen, und das Verfahren
läuft weiter bei 160, wie oben beschrieben. Ist kein leeres Segment vorhanden, dann läuft das Verfahren weiter nach 12"in Fig.20. Vor Verlassen
der Fig. 19 sei darauf hingewiesen, dass bei 158 dann, wenn in der Systemliste hinter dem RT-Segment kein Segment liegt, das Verfahren nach
162 springt und dort bestimmt, ob ein leeres Segment vorhanden ist oder
nicht. Dies ist dei~ Fall, bei dem der Aufzeichnungszeiger auf das letzte
Segment in der Systemliste hinweist.
Gemäss Fig. 20 bei 12 wird bei 166 der zwischen dem Aufzeichnungszeiger und dem Auswahlzeiger und ohne diese beiden Zeiger vorhandene
Speicherplatz berechnet. Ist der Auswahlzeiger auf Null gestellt, dann
ist definitionsgemäss der Speicherplatz gleich Null. Wenn bei 167 der Speicherplatz Null ist, dann läuft das Verfahren nach Kl in Fig. 17. In
diesem Fall wird der Benutzer davon in Kenntnis gesetzt, dass nicht alle
Daten aufgezeichnet sind und das Verfahren mit der Berichtigung des
Verzeichnisses und der Wiedereinspeicherung des berichtigten Verzeichnisses V. im Speicher 9 fortgesetzt wird. Wenn der im Speicher 9 zwischen Aufzeichnungszeiger
und Auswahlzeiger liegende Speicherraum grosser als M ist (Inhalt desiArbeitsspeichers 21), dann geht das Verfahren weiter nach Il
Fig. 19. Von dort läuft das Verfahren nach 160 Fig. 19, wie bereits beschriebeno
Wenn in Fig. 20 bei Block 168 der im Speicher 9 zwischen Aufzeichnungszeiger
und Auswahlzeiger liegende Platz kleiner ist als der Speicherinhalt des Arbeitsspeichers 21, dann wird bei 169 der Benutzer davon in
Kenntnis gesetzt, dass nicht alle Daten aufgezeichnet sind, worauf das
Verfahren weiter nach 170 läuft, wo M dann auf den berechneten Speicherplatz eingestellt wird. Das Verfahren geht dann weiter nach Il Fig.19.
In Fig» 19 wird das Aufzeichnungszexgersegmentfeld auf das nächstfolgende
Segment eingestellt und das AbSchnittsfeld des Aufzeichnungszeigers auf
809830/0778
Null,Das Verfahren geht; dann weiter nach G in Fig.15 für eine Fortsetzung
der Aufzeichnung vom Aufzeichnunijiisseiger nach dem Auswahlzeiger.Da:;
System hält dann an,bevor der Aufzeichurigszeigcr den Auswahl zeiger überläuft.
Zusammenfassend knrin gesagt werden, dass ein System und ein Verfahren
2.11m Speichern und Abrufen, von Textblöckeu und deren Abschnitten
für ein Textverarbeitungssystem geschaffen wurden. Diese Textblöcke
die normalerweise Seiten eines Dokumentes darstellen, sind als Folge von
nicht näher bezeichneten Abschnitten unterschiedlicher Grosse auf Segmenten
eines seriellen Massenspeichers abgespeichert. Tn dem System, wird
eine möglichst hphe Ausnutzung des normalerweise-.nicht benutzten Systemspeicherraumes
dadurch versucht, dass die Speicherblöcke auf einem Speichersegment dicht gepackt werden. Ein Systeniverzeichnis mit einer
Systemliste und einem Systemlog liegt in einem Speicher des Systems mit wahlfreiem Zugriff und wird auf dem segmentierten externen Speicher
aufgezeichnet. Das Systemlog wird jedesmal dann in dem externen Speicher aufgezeichnet, wenn auch dort Daten aufgezeichnet v/erden. Zur Verkürzung
der Zugriffszeit während der Aufzeichnung und für erhöhte Zuverlässigkeit wird das Systemlog an mehreren Orten, die nicht nebeneinander
liegen, auf dem Speicher aufgezeichnet. Das am nächsten liegende Systemlog
wird bei jeder Datenspeicherung auf den neuesten Stand gebracht. Das
Systemlog enthält einen Aktivitätszähler, der bei jeder Berichtigung entsprechend fortgeschrieben wird, so dass beim Systemanlauf das zuletzt
benutzte und daher richtige Systemlog wieder aufgefunden werden kann.
Dieses Systemlog enthält eine Aufzeichnung von Speicherabschnitten
mit nicht korrigierbaren Fehlern, so dass kein weiterer Versuch zur Benutzung dieser Abschnitte unternommen wird. Ausserdem wird eine
Zählung dieser fehlerhaften Abschnitte aufrechterhalten, und das Textverarbeitungssystem
wird benachrichtigt, wenn dieser Zählerstand einen vorbestimmten Wert erreicht hat.
Bei Zugriff zu einem ausgewählten Datenblock sucht das System alle
Daten, die auf den ausgewählten Block im gleichen Segment folgen, in dem der ausgewählte Block endet, auf. Diese in Konflikt miteinander stehenden Daten werden vor dem ersten Lesen des angeforderten Blockes rückgespeichert,
wobei diese Rückspeicherung über einen Pufferspeicher mit wahlfreiem
Zugriff erfolgt, in dem letztlich die angeforderten . Daten liegen werden. Diese Daten werden nach einem anderen Speichersegment zurückge-
80 9*8 30/0778
- 27 - ΛΤ9-76-Ο16
"speichert, das zunächst in der Systemliste nicht: enthalten ist. üicr.e
zürüclcgospoicheri-p.n Daten werden dann nicht vom Systemlog erfasst, wann
1.) dies nicht tatsächlich erforderlich istj nachdem die ursprünglich
angeforderten und berichtigten Daten wieder im externen Speicher abgespeichert
worden sind und 2.) solange nicht Fehler auftreten bei. dem
Versuch, die angeforderten DP ten auf dem Segment,von dem sie ursprünglich
kamen, wieder abzuspeichern, oder 3.) wenn der auf den ursprünglich angeforderten
Block nachfolgende Block ebenfalls ausgewählt wird. Lassen sich die Daten nicht zurückspeichern, dann wird trotzdem der Zugriff
nach diesem Date.nblock durchgeführt, und das Sj'st em wird von dieser Bedingung
in Kenntnis gesetzt. Das nicht in das Systemlog überführte. Segment
wird als Kurzzeitspeicher bezeichnet. Alle Daten, die bei der Rück— speicherung nicht gelesen werden, werden in diesem Kurzzeitspeicher
durch unverwechselbare Fehlercodes dargestellt. Somit werden bei. der
Rückspeicherung alle Blockanfängc festgehalten.
Wenn der Arbeitsspeicher nicht den ganzen angeforderten Block annehmen
kann, dann wird eine Teilauswahloperation verwendet, und es werden
dabei so viele Abschnitte des Blockes übertragen, als es in dem Arbeitsspeicher
des Textverarbeitungssystems vollständige, ganzzahlige Abschnitte gibt, und zwar findet eine Uebertragung vom externen Speicher nach dem
Arbeitsspeicher statt, worauf anschliessend der Rest des Blockes nach dem Arbeitsspeicher des Textverarbeitungssystems übertragen wird, wenn dieser
Arbeitsspeicher wieder Platz zur Aufnahme von weiteren Textdaten aufweist.
Die Segmente werden dadurch zusammengerückt, dass zunächst ein Block gelesen und anschliessend der Block ohne Berichtigung zwischen
Lesen und Aufzeichnen wieder aufgezeichnet wird. Auf diese Weise werden
nicht benutzte Abschnitte zur Bildung vollständiger nicht benutzter. Segmente verschoben, so dass diese unbenutzten Segmente aus der Systemliste
entfernt werden können.
809 8 3 0/0778
Le e γ s e ι t
Claims (4)
1. Verfahren zum Steuern eii.s-r 'JY::I v^rarbei. 1.iim,:;ei.iir5.f-5' .iinj; bo'.m
Speichen; und Lesen von Text» weich'-- KJiiricliLuu^ wc-uL^stc-iis einen
serieller) Speicher lru.t einem Spei ehr: rncditsVii aiii fas .st., dap in gleich
grosse £ic-.;:a;ent:e mit je einer Anzahl gleicher Abschni.Ll e unterteilt
i&f, wobei während des Vorganges ein Protokoll wit Daten
über die Verwendung von SeßKcnten und Abscluii t.i.eu dc.a Mediuiiis geführt
wird, dadurch gekennzeichnet, dass eine. Ana aiii von
Abschnitten des genannten Mediunss der Aufzeichnung solcher Verwendungsdaten
vorbehalten wi-rden und dass nach der Beendigung jeder
Textspeieherung auf dem Medium diese Verwendungsdaten jeweils auf
nur einen der vorbehaltenen Abschnitte aufgezeichnet werdon und
zwar auf jenem , der örtlich einem Sclireib/Lesekopf «?»i n-'irhsten
liegt^ welcher für die betreff ende Textspeictierung gebraucht
worden ist.
2. Verfahren nach Patentanspruch 1, dadurch gekennzeichnet, das?; die
zur Aufzeichnung von Verwendungcdaten vorbehaltenen Abschnitte auf
dem Speichermedium getrennt durch wenigstens ein für Textspeicherung
vorgesehenes Segment gewählt werden.
3. Verfahren nach Patentanspruch 1, dadurch gekennzeichnet, dass im
Rahmen der genannten Verwendungsdaten der Stand eines Aktivitätszählers
aufgezeichnet wird,wobei dieser Stand bei jedem Textspeichervorgang
um eine Einheit erhöht wird.
4. Verfahren nach Patentanspruch 1, dadurch gekennzeichnet, dass im
Rahmen der genannten Verwendungsdaten erste Angaben über die freie Verfügbarkeit von Speicherabschnitten und zweite.Angaben über Fehlervorkommen
bzw. Unbrauchbarkeit fehlerbehafteter Abschnitte aufgezeichnet werden.
809830/0778
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/762,379 US4189781A (en) | 1977-01-25 | 1977-01-25 | Segmented storage logging and controlling |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2801981A1 true DE2801981A1 (de) | 1978-07-27 |
DE2801981C2 DE2801981C2 (de) | 1988-04-14 |
Family
ID=25064877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19782801981 Granted DE2801981A1 (de) | 1977-01-25 | 1978-01-18 | Verfahren zum steuern einer textverarbeitungseinrichtung beim speichern und lesen von text |
Country Status (9)
Country | Link |
---|---|
US (1) | US4189781A (de) |
JP (2) | JPS5393733A (de) |
AU (1) | AU513551B2 (de) |
BR (1) | BR7800454A (de) |
CA (1) | CA1187197A (de) |
CH (1) | CH629901A5 (de) |
DE (1) | DE2801981A1 (de) |
ES (1) | ES466291A1 (de) |
NL (1) | NL7800768A (de) |
Families Citing this family (46)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5779577A (en) * | 1980-11-05 | 1982-05-18 | Toshiba Corp | Retrieval device for picture information storage |
JPS61500345A (ja) * | 1983-10-19 | 1986-02-27 | テキスト サイエンセズ コ−ポレ−シヨン | デ−タ圧縮方法および装置 |
US5159669A (en) * | 1988-12-15 | 1992-10-27 | Xerox Corporation | Automatically creating a second workspace operation record including history data and a unit ID based on a first workspace operation |
DE69031443T2 (de) * | 1989-06-30 | 1998-04-23 | Digital Equipment Corp | Verfahren und Anordnung zur Steuerung von Schattenspeichern |
EP0465019B1 (de) * | 1990-06-29 | 1997-05-14 | Oracle Corporation | Verfahren und Gerät zur Verwaltung von Zustandsidentifizierern zur effizienten Wiederherstellung |
US6239794B1 (en) * | 1994-08-31 | 2001-05-29 | E Guide, Inc. | Method and system for simultaneously displaying a television program and information about the program |
US5890699A (en) * | 1994-02-10 | 1999-04-06 | Nippondenso Co., Ltd. | Fluid flow control rotary valve |
US8793738B2 (en) | 1994-05-04 | 2014-07-29 | Starsight Telecast Incorporated | Television system with downloadable features |
US6396546B1 (en) * | 1994-05-20 | 2002-05-28 | United Video Properties, Inc. | Electronic television program guide schedule system and method |
US20050204384A1 (en) * | 1994-08-31 | 2005-09-15 | Gemstar Development Corporation | Method and apparatus for displaying television programs and related text |
US5894564A (en) * | 1995-06-07 | 1999-04-13 | International Business Machines Corporation | System for identifying memory segment bounded by previously accessed memory locations within data block and transferring thereof only when the segment has been changed |
US6769128B1 (en) * | 1995-06-07 | 2004-07-27 | United Video Properties, Inc. | Electronic television program guide schedule system and method with data feed access |
US8850477B2 (en) | 1995-10-02 | 2014-09-30 | Starsight Telecast, Inc. | Systems and methods for linking television viewers with advertisers and broadcasters |
US6323911B1 (en) | 1995-10-02 | 2001-11-27 | Starsight Telecast, Inc. | System and method for using television schedule information |
US6469753B1 (en) | 1996-05-03 | 2002-10-22 | Starsight Telecast, Inc. | Information system |
US6687906B1 (en) | 1996-12-19 | 2004-02-03 | Index Systems, Inc. | EPG with advertising inserts |
US8635649B2 (en) * | 1996-12-19 | 2014-01-21 | Gemstar Development Corporation | System and method for modifying advertisement responsive to EPG information |
ATE235780T1 (de) | 1997-07-21 | 2003-04-15 | Guide E Inc | Verfahren zum navigieren in einem fernsehprogrammführer mit werbung |
US6604240B2 (en) | 1997-10-06 | 2003-08-05 | United Video Properties, Inc. | Interactive television program guide system with operator showcase |
US7185355B1 (en) | 1998-03-04 | 2007-02-27 | United Video Properties, Inc. | Program guide system with preference profiles |
US6564379B1 (en) | 1998-04-30 | 2003-05-13 | United Video Properties, Inc. | Program guide system with flip and browse advertisements |
US20020095676A1 (en) | 1998-05-15 | 2002-07-18 | Robert A. Knee | Interactive television program guide system for determining user values for demographic categories |
TW420777B (en) * | 1998-05-29 | 2001-02-01 | Bridgewell Inc | A query method of dynamitic attribute database management |
CN1867068A (zh) | 1998-07-14 | 2006-11-22 | 联合视频制品公司 | 交互式电视节目导视系统及其方法 |
US6898762B2 (en) | 1998-08-21 | 2005-05-24 | United Video Properties, Inc. | Client-server electronic program guide |
EP1197074A1 (de) | 1999-06-28 | 2002-04-17 | Index Systems, Inc. | Vorrichtung und verfahren zur anpassung von werbeberichten mit der hilfe einer programmführerdatenbank |
WO2001001689A1 (en) | 1999-06-29 | 2001-01-04 | United Video Properties, Inc. | Method and system for a video-on-demand-related interactive display within an interactive television application |
MXPA02009629A (es) | 2000-03-31 | 2003-03-10 | United Video Properties Inc | Sistema y metodo para avisos publicitarios enlazados con metadatos. |
US6681309B2 (en) * | 2002-01-25 | 2004-01-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for measuring and optimizing spatial segmentation of electronic storage workloads |
US7984468B2 (en) | 2003-11-06 | 2011-07-19 | United Video Properties, Inc. | Systems and methods for providing program suggestions in an interactive television program guide |
US8095951B1 (en) | 2005-05-06 | 2012-01-10 | Rovi Guides, Inc. | Systems and methods for providing a scan |
US8640166B1 (en) | 2005-05-06 | 2014-01-28 | Rovi Guides, Inc. | Systems and methods for content surfing |
US9113107B2 (en) | 2005-11-08 | 2015-08-18 | Rovi Guides, Inc. | Interactive advertising and program promotion in an interactive television system |
US20070156521A1 (en) | 2005-12-29 | 2007-07-05 | United Video Properties, Inc. | Systems and methods for commerce in media program related merchandise |
US8380726B2 (en) | 2006-03-06 | 2013-02-19 | Veveo, Inc. | Methods and systems for selecting and presenting content based on a comparison of preference signatures from multiple users |
US8316394B2 (en) | 2006-03-24 | 2012-11-20 | United Video Properties, Inc. | Interactive media guidance application with intelligent navigation and display features |
WO2008016617A2 (en) | 2006-07-31 | 2008-02-07 | United Video Properties, Inc. | Systems and methods for providing enhanced sports watching media guidance |
US8832742B2 (en) | 2006-10-06 | 2014-09-09 | United Video Properties, Inc. | Systems and methods for acquiring, categorizing and delivering media in interactive media guidance applications |
US7801888B2 (en) | 2007-03-09 | 2010-09-21 | Microsoft Corporation | Media content search results ranked by popularity |
US8407737B1 (en) | 2007-07-11 | 2013-03-26 | Rovi Guides, Inc. | Systems and methods for providing a scan transport bar |
US10063934B2 (en) | 2008-11-25 | 2018-08-28 | Rovi Technologies Corporation | Reducing unicast session duration with restart TV |
US9166714B2 (en) | 2009-09-11 | 2015-10-20 | Veveo, Inc. | Method of and system for presenting enriched video viewing analytics |
US8359616B2 (en) | 2009-09-30 | 2013-01-22 | United Video Properties, Inc. | Systems and methods for automatically generating advertisements using a media guidance application |
US8479062B2 (en) | 2010-12-03 | 2013-07-02 | International Business Machines Corporation | Program disturb error logging and correction for flash memory |
WO2012094564A1 (en) | 2011-01-06 | 2012-07-12 | Veveo, Inc. | Methods of and systems for content search based on environment sampling |
US9848276B2 (en) | 2013-03-11 | 2017-12-19 | Rovi Guides, Inc. | Systems and methods for auto-configuring a user equipment device with content consumption material |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3781813A (en) * | 1971-06-30 | 1973-12-25 | Ibm | Machine log system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3997876A (en) * | 1972-06-07 | 1976-12-14 | International Business Machines Corporation | Apparatus and method for avoiding defects in the recording medium within a peripheral storage system |
US3942155A (en) * | 1973-12-03 | 1976-03-02 | International Business Machines Corporation | System for packing page frames with segments |
US3911403A (en) * | 1974-09-03 | 1975-10-07 | Gte Information Syst Inc | Data storage and processing apparatus |
-
1977
- 1977-01-25 US US05/762,379 patent/US4189781A/en not_active Expired - Lifetime
- 1977-11-25 AU AU30980/77A patent/AU513551B2/en not_active Expired
- 1977-11-29 CA CA000291920A patent/CA1187197A/en not_active Expired
- 1977-12-23 JP JP15461677A patent/JPS5393733A/ja active Granted
-
1978
- 1978-01-10 CH CH21378A patent/CH629901A5/de not_active IP Right Cessation
- 1978-01-18 DE DE19782801981 patent/DE2801981A1/de active Granted
- 1978-01-23 NL NL7800768A patent/NL7800768A/xx not_active Application Discontinuation
- 1978-01-24 ES ES466291A patent/ES466291A1/es not_active Expired
- 1978-01-25 BR BR7800454A patent/BR7800454A/pt unknown
-
1983
- 1983-05-10 JP JP58080221A patent/JPS5943787B2/ja not_active Expired
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3781813A (en) * | 1971-06-30 | 1973-12-25 | Ibm | Machine log system |
Also Published As
Publication number | Publication date |
---|---|
JPS5943787B2 (ja) | 1984-10-24 |
CA1187197A (en) | 1985-05-14 |
JPS6148182B2 (de) | 1986-10-23 |
DE2801981C2 (de) | 1988-04-14 |
JPS5393733A (en) | 1978-08-17 |
ES466291A1 (es) | 1978-10-01 |
US4189781A (en) | 1980-02-19 |
AU3098077A (en) | 1979-05-31 |
CH629901A5 (de) | 1982-05-14 |
NL7800768A (nl) | 1978-07-27 |
AU513551B2 (en) | 1980-12-11 |
BR7800454A (pt) | 1978-10-03 |
JPS5911462A (ja) | 1984-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2801981A1 (de) | Verfahren zum steuern einer textverarbeitungseinrichtung beim speichern und lesen von text | |
DE4210126C2 (de) | Verfahren zur dynamischen Dateierweiterung in einem Online-Datenbanksystem und Vorrichtung zur Durchführung des Verfahrens | |
DE2460825C2 (de) | Verfahren zur Informationsübertragung zwischen Zentraleinheit und Peripheriegeräten und Datenverarbeitungsanlage zur Durchführung des Vefahrens | |
DE4435751B4 (de) | Dateiname- und Verzeichnis- Erfassungsverfahren zur Verwendung mit einem Betriebssystem | |
DE69730449T2 (de) | Erzeugung einer spiegeldatenkopie (bild) unter verwendung von referenzetiketten | |
DE60318687T2 (de) | Herstellen einer gespiegelten kopie unter verwendung inkrementeller divergenz | |
DE2500721C2 (de) | Sekundärspeicher für digitale Datenverarbeitungssysteme | |
DE2953432C1 (de) | Vorrichtung zum Testen eines Mikroprogramms | |
DE10211606B4 (de) | Datenverarbeitungseinrichtung mit einem Metadatensicherungsmanagement | |
DE2801982A1 (de) | Verfahren zum austausch von information zwischen einem externen speicher und einem arbeitsspeicher in einem textverarbeitungssystem | |
DE4220698A1 (de) | System zur dynamischen verknuepfung modularer abschnitte von computersoftware | |
DE112011102139B4 (de) | Bandspeichereinheit und Schreibverfahren dafür | |
DE2432608A1 (de) | Speicheranordnung fuer datenverarbeitungseinrichtungen | |
DE2720864A1 (de) | Verfahren und anordnung zum lueckenfreien einspeichern einer anzahl von datenblocks unbestimmter laenge | |
EP0350478A1 (de) | Verfahren zum betrieb einer multiprozessor-zentralsteuereinheit eines vermittlungssystemes. | |
DE10317904B4 (de) | Fahrzeugkommunikationsvorrichtung und Kommunikationsverfahren zum Empfangen von und Senden zu einer externen Vorrichtung | |
DE69936674T2 (de) | Speicherteilsystem und Verfahren zur Reorganisierung von multiplexierten Daten | |
DE2801989A1 (de) | Verfahren zum steuern der abspeicherung eines textes in einem textverarbeitungssystem | |
DE2517170C2 (de) | Schaltungsanordnung zum Unterbrechen des Programmablaufs in Datenverarbeitungsanlagen mit mehreren Ansteuereinrichtungen von Sekundärspeichern und dergleichen Speichereinheiten mit sequentiellem Zugriff | |
DE102008001162A1 (de) | Zurücksetzverfahren und Informationsverarbeitungsvorrichtung, die dieses ausführt | |
DE19826091A1 (de) | Verfahren zum gesicherten Ändern von in einer Datenbank gespeicherten Daten, Datenbanksystem und damit ausgestattetes Netzelement | |
DE19500626A1 (de) | Programmierbare Steuerung und Verfahren zum Ändern ihrer Programmaufnahmefähigkeit | |
DE2813016C2 (de) | Vorrichtung zum Verarbeiten von Signalisierungen in einer Fernmelde-, insbesondere Fernsprechvermittlungsanlage | |
DE10059006A1 (de) | Verfahren und System zur sicheren Verwaltung von Dateien in nichtflüchtigen Speichern | |
DE2817135C3 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
8125 | Change of the main classification |
Ipc: G06F 7/28 |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |