DE2854976B2 - Verfahren zum korrigierbaren Speichern von Programmen in einem Festspeicher - Google Patents
Verfahren zum korrigierbaren Speichern von Programmen in einem FestspeicherInfo
- Publication number
- DE2854976B2 DE2854976B2 DE19782854976 DE2854976A DE2854976B2 DE 2854976 B2 DE2854976 B2 DE 2854976B2 DE 19782854976 DE19782854976 DE 19782854976 DE 2854976 A DE2854976 A DE 2854976A DE 2854976 B2 DE2854976 B2 DE 2854976B2
- Authority
- DE
- Germany
- Prior art keywords
- programs
- memory
- storage
- cells
- address
- 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.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/328—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Read Only Memory (AREA)
Description
Die Erfindung bezieht sich auf ein Verfahren zum korrigierbaren Speichern von Programmen in einem
wortorientierten Festspeicher (PROM), dessen Speicherstellen irreversibel aus einem ersten in einen
zweiten binären Zustand überführbar sind.
Datenverarbeitungsanlagen sind heute weitgehend mit mikroprogrammierten Steuerungen (Leitwerken)
ausgestattet. Die verwendeten Mikroprogramme, die im Mikroprogrammspeicher gespeichert werden, werden
immer komplexer, so daß die Wahrscheinlichkeit wächst, daß im Mikroprogramm Entwurfsfehler enthalten
sind. Diese Fehler werden häufig erst entdeckt, wenn schon eine große Zahl von Anlagen produziert
wurde.
Eine nachträgliche Korrektur von Entwurfsfehlern bietet keine Schwierigkeiten, wenn der Mikroprogrammspeicher
als ladbarer Schreib-Lese-Speicher (RAM) ausgebildet wird.
Die Fehler können dann durch Laden eines korrigierten Mikroprogramms beseitigt werden. Für
kleinere Datenverarbeitungsanlagen ist diese Lösung jedoch zu aufwendig. Aus Kostengründen müssen hier
Festspeicher (ROM, PROM) eingesetzt werden, bei denen die in den Speicherstellen enthaltenen Binärzeichen
nachträglich nicht oder nur irreversibel geändert werden können.
Um trotz Verwendung eines Festspeichers ais Programmspeicher nachträgliche Korrekturen vornehmen
zu können, ist bei einer aus der DE-OS 2646 162 bekannten Schaltungsanordnung dem Festspeicher ein
iü programmierbarer Decodierer parallel geschaltet, in
den solche Adressen eingeschrieben wurden, deren zugehörige Instruktionen ersetzt werden sollen. Es ist
ferner ein zusätzlicher programmierbarer Festspeicher (PROM) vorhanden, der die korrigierenden neuen
η Programmteile enthält. Wenn die jeweils anliegende
Adresse im Decodierer nicht enthalten ist, gibt dieser den Programmspeicher frei. Anderenfalls gibt er
anstelle des Programmspeichers den zusätzlichen Festwertspeicher frei und die zutreffende Instruktion
wird von diesem geliefert. Diese Lösung erfordert jedoch nicht nur die genannten zusätzlichen Bauelemente,
sondern hat den weiteren Nachteil, daß die Zugriffszeit des Programmspeichers auch hinsichtlich
der nicht korrekturbedürftigen Programmteile vergrö-Bert wird.
Der Erfindung liegt die Aufgabe zugrunde, einen Weg aufzufinden, der es ohne zusätzlichen Aufwand und
ohne generelle Verschlechterung des Zeitverhaltens ermöglicht, in einem wortorientierten Festspeicher
«ι (PROM) nach dem Oberbegriff des Patentanspruchs 1 gespeicherte Programme wie insbesondere Mikroprogramme
nachträglich zu korrigieren. Die Lösung besteht in der Anwendung der im kennzeichnenden Teil
des Anspruchs genannten Maßnahmen.
Jj Weitere Ausgestaltungen der Erfindung sind in den
Unteransprüchen angegeben. Nachfolgend werden Ausführungsbeispiele der Erfindung anhand der Zeichnung
beschrieben. In dieser zeigt
Fig. 1 in den Teilfiguren la und Ib beispielsweise die
4(i Belegung eines Mikroprogrammspeichers und die Korrektur des eingegebenen Programms entsprechend
einer ersten Durchführungsform der Erfindung,
Fig. 2 einen Mikroprogrammspeicher mit Vorratszellen und die Korrektur eines eingegebenen Pro-
gramms entsprechend einer zweiten Durchfülirungsform
der Erfindung,
F i g. 3 in den Teilfiguren 3a und 3b eine Zelle eines
Mikroprogrammspeichers einer bestimmten Befehlsstruktur vor und nach Durchführung einer Korrektur,
r>o Fig.4 beispielsweise die Belegung eines Mikroprogrammspeichers
entsprechend einer weiteren Durchführungsform.
In den Fig. la und 1 b sind die ersten 17 Zellen eines
Mikroprogrammspeichers dargestellt, in den unter anderem ein aus den Mikroinstruktionen MO, Ml, ...
M 7,... bestehendes Mikroprogramm eingespeichert ist. Es handle sich um einen Festspeicher (PROM), bei dem
das Einspeichern dadurch erfolgt, daß die entsprechenden Speicherstellen durch Ausbrennen von Dioden
irreversibel von einer binären L in eine binäre 0 übergeführt werden. Jede Mikroinstruktion enthält
entsprechend der Eintragung in der rechten Spalte der Darstellungen auch die jeweilige Folgeadresse. Die
Zellen 0, 1 und 2, deren Adressen (00000, 000OL bzw. 000L0) in Dualdarstellung keine oder nur eine einzelne
L enthalten, sind als Vorratszellen für Korrekturzwecke freigehalten, so daß in sie nachträglich jedes beliebige
Bitmuster eingegeben werden kann.
Es werde nun ein Entwurfsfehler festgestellt derart, daß die Mikroinstruktion M 3 in der Zelle 11 falsch ist
und durch eine Mikroinstruktion M 3* ersetzt werden muß und daß zusätzlich zwischen M 3* und M 4 eine
Mikroinstruktion M3A eingefügt werder. muß. Zur
Korrektur dieses Fehlers wird nun gemäß Fig. Ib folgendermaßen vorgegangen:
In der letzten richtigen Mikroinstruktion, also in der
in Zelle 10 befindlichen Mikroinstruktion M2, wird
deren Folgeadresse durch Ausbrennen aller vorhandenen L von Π (OLOLL) in 0 (OCOOO) geändert. Gleichfalls
durch Aasbrennen wird in die Vorratszelle 0 die Mikroinstruktion Ai 3* mit Folgeadresse 2 und in Zelle 2
die Mikroinstruktion M'3A eingegeben, deren Folgeadresse
13 die Rückkehr in das ursprüngliche Programm vermittelt.
F i g. 2 zeigt einen Teil eines ebenfalls als Festspeicher (PROM) ausgeführten größeren Mikroprogrammspeichers,
der Seiten mit je 32 Zellen aufweisen möge. Um einen weiteren Spielraum für nachträgliche Korrekturen
zu haben, sind hier nicht nur jene Speicherzellen als Vorratszellen freigehalten, deren Adresse keine oder
nur eine einzelne L enthalten (nämlich 0,1, 2,4,8,16, 32,
64, 128, ...), sondern in vorteilhafter weiterer Ausgestaltung — soweit nicht schon erfaßt — zusätzlich
jene Zellen, deren Adressen ein Vielfaches von 32 sind (nämlich 96,160,...). Darüber hinaus sind die Zelle 3 und
zur Ausführung längerer Korrekturen bzw. Ei; ügungen noch die Zellen 33 bis 40 freigehalten. Auch hier
möge jede eingegebene Mikroinstruktion die zugehörige Folgeadresse enthalten.
Es sei nun angenommen, daß die in Zelle 104 befindliche Mikroinstruktion falsch ist und durch fünf
andere Mikroinstruktionen ersetzt werden muß. Zu diesem Zweck wird, wie im zuvor beschriebenen
Beispiel, als erstes die zu der vorausgehenden Mikroinstruktion (Zelle 103) gehörende Folgeadresse
derart geändert, daß nicht die Zelle 104 sondern eine der Vorratszellen angesprungen wird. Entsprechend der
Dualdarstellung der Adresse 104 (... OLLOLOOO) könnte sie — außer in die Adresse 0 — durch Ausbrennen von
L-Stellen bis auf eine einzelne in die Adressen der Vorratszellen 8 (... 0000L000), 32 (... 00L00000) oder 64
(... OLOOOOOO) geändert werden. Unter den vorliegenden Voraussetzungen ist es jedoch zweckmäßiger, die
genannten Vorratszellen für andere Korrekturen freizuhalten und mit der ersten Mikroinstruktion des
korrigierenden Programmteils die innerhalb der betreffenden Speicherseite liegende Vorratszelle 96 (...
OLLOOOOO) anzuspringen. Von hier ist dann ein Sprung zu einer beliebigen weiteren freien Zelle möglich;
beispielsweise, wie dargestellt, zu der Zelle 33 und von hier zu den Zellen 34,35 und 36. Von der Zelle 36 erfolgt
für die Fortsetzung im ursprünglichen Programm der Rücksprung zu der Zelle 105.
In Mikroprogrammen sind auch Befehlsstrukturen üblich, bei denen die Mikroinstruktionen im Normalfall
keine Folgeadresse enthalten, sondern nur eine inkrementale Adreßfortschaltung erfolgt. Wenn Sprünge
durchgeführt werden sollen, werden hier echte Sprungbefehle benötigt. F i g. 3a zeigt einen Ausschnitt
aus einem derartigen Befehlsformat bzw. einer entsprechend belegten Speicherzelle. Das Feld A enthält einen
Operationsbefehl, das Feld B eine bedingte Anweisung, mit C sind Steuerfelder bezeichnet und D ist ein
, Adreßfeld.
Unter den vorgenannten Voraussetzungen wird dem Operationsbefehl »Sprung« im Feld A und der
Bedingung (Anweisung) »absolut« im Feld B ein Code zugeordnet, der keine L enthält und deshalb aus allen
ίο anderen Codes durch Ausbrennen der L hergestellt werden kann, also der Code 0 (F i g. 3b). Die Herstellung
der auf eine Vorratszelle führenden Sprungadresse im Feld D erfolgt beispielsweise entsprechend der
Erläuterung zu F i g. 2.
ii Die im Zusammenhang mit den Ausführungsbeispielen
der F i g. 1 bis 3 erläuterten Vereinbarungen über die Adressen der Vorratszellen haben zur Voraussetzung,
daß während der gesamten Produktionsdauer, d. h. bei allen Exemplaren der betreffenden Datenverarbeitungsanlage,
Festspeicher (PROM's) der gleichen Gattung verwendet werden; jedenfalls derart, daß sie
hinsichtlich des »zweiten« binären Zustandes, in den die Speicherstellen irreversibel überführbar sind (z. B. von L
auf 0), übereinstimmen. Nach einem Übergang zu einem :·ϊ PROM mit umgekehrtem Änderungsverhalten (von 0
auf L) wäre eine Korrektur in der beschriebenen Weise nicht mehr möglich.
Diesem Umstand kann jedoch in weiterer Ausgestaltung des beschriebenen Vorgehens dadurch Rechnung
j(i getragen werden, daß bei der Eingabe der Programme
nicht nur eine Anzahl jener Zellen des Festspeichers frei bleibt, deren Adresse kein oder nur ein einzelnes dem
ersten (ursprünglichen) binären Zustand entsprechendes Zeichen (z. B. L) enthält, sondern zusätzlich eine
Anzahl zumindest auch jener Zellen frei bleibt, deren Adresse kein oder nur ein einzelnes dem zweiten
(geänderten) binären Zustand entsprechendes Zeichen (z. B. 0) enthält.
Falls dann zu einem späteren Zeitpunkt in der ■»ο gleichen Datenverarbeitungsanlage PROM's mit umgekehrtem
Änderungsverhalten verwendet werden, stehen als Vorratszellen für Korrekturen diejenigen zur
Verfugung, die der vorgenannten zweiten Eigenschaft entsprechen.
4r) Ein einfaches Ausführungsbeispiel für die Verwirklichung
dieses Verfahreiis derart, daß bei Verwendung von PROM's mit beliebiger Änderungsrichtung (L auf 0
oder 0 auf L) Vorratszellen für Korrekturen verfügbar sind, ist in F i g. 4 dargestellt. Hier ist vorausgesetzt, daß
)0 innerhalb des Mikroprogrammspeichers Seiten zu je 32 Zellen gebildet werden und daß innerhalb jeder Seite
eine Adressierung mit entsprechend verkürzter Adresse erfolgt. Es sind dann nicht nur die Zeilen mit den
Adressen 0 (... 0000000), 32 (. .. OLOOOOO), 64 (... « LOOOOOO) usw. freigehalten, sondern zusätzlich auch jene
mit den Adressen 31 (... 00LLLLL), 63 (... OLLLLLL) usw. Diese Vorratszellen sind bei weitem ausreichend,
um auch bei ungünstiger Lage von Mikroprogrammfehlern, die erst nach einem Wechsel des PROM-Typs
w) zutage treten, die Durchführung der erforderlichen
Korrekturen zu ermöglichen.
Hierzu 2 Blatt Zeichnungen
Claims (3)
1. Verfahren zum korrigierbaren Speichern von Programmen in einem wortorientierten Festspeicher
(PROM), dessen Speichersteiien irreversibel aus einem ersten in einen zweiten binären Zustand
überführbar sind, gekennzeichnet durch die folgenden Maßnahmen:
a) bei der Eingabe der Programme bleibt zumindest eine Anzahl jener Zellen des Festspeichers
als Vorratszellen frei, deren Adresse kein oder nur ein einzelnes, dem ersten binären Zustand
entsprechendes Zeichen enthält;
b) zur Korrektur von Programmen werden in einer vor dem zu korrigierenden Teil liegenden
Zelle jene Felder, aus deren Auswertung sich eine Sprungadresse ergibt, durch Überführen
von Stellen in den zweiten binären Zustand so geändert, daß eine solche Vorratszelle angesprungen
wird;
c) in diese Vorratszelle und gegebenenfalls weitere freie Zellen wird der korrigierende neue
Programmteil eingegeben, einschließlich eines letzten Wortes, aus dem sich unter anderem die
Rückkehradresse für die Fortsetzung im ursprünglichen Programm ergibt.
2. Verfahren nach Anspruch 1 zum korrigierbaren Speichern von Programmen mit einer Befehlsstruktur,
die zur Durchführung von Sprüngen Sprungbefehle unter Auswertung eines Operationsteiles und
eines eine bedingte Anweisung enthaltenden Feldes erfordert, dadurch gekennzeichnet, daß dem Befehl
»Sprung« und der Anweisung »absolut« ein Code zugeordnet ist, der kein dem ersten binären Zustand
entsprechendes Zeichen enthält.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß bei der Eingabe der Programme
zusätzlich eine Anzahl zumindest 'iueh jener Zellen des Festspeichers frei bleibt, deren Adresse
kein oder nur ein einzelnes dem zweiten binären Zustand entsprechendes Zeichen enthält.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19782854976 DE2854976B2 (de) | 1978-12-20 | 1978-12-20 | Verfahren zum korrigierbaren Speichern von Programmen in einem Festspeicher |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE19782854976 DE2854976B2 (de) | 1978-12-20 | 1978-12-20 | Verfahren zum korrigierbaren Speichern von Programmen in einem Festspeicher |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2854976A1 DE2854976A1 (de) | 1980-06-26 |
DE2854976B2 true DE2854976B2 (de) | 1980-10-09 |
Family
ID=6057724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19782854976 Ceased DE2854976B2 (de) | 1978-12-20 | 1978-12-20 | Verfahren zum korrigierbaren Speichern von Programmen in einem Festspeicher |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE2854976B2 (de) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0215992B1 (de) * | 1985-09-24 | 1991-02-27 | International Business Machines Corporation | Verfahren zum Prozessorsteuerkodespeichern, das Kodeveränderung zulässt und Adressierschaltung dafür |
US4751703A (en) * | 1986-09-16 | 1988-06-14 | International Business Machines Corp. | Method for storing the control code of a processor allowing effective code modification and addressing circuit therefor |
-
1978
- 1978-12-20 DE DE19782854976 patent/DE2854976B2/de not_active Ceased
Also Published As
Publication number | Publication date |
---|---|
DE2854976A1 (de) | 1980-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2646162C3 (de) | Schaltungsanordnung zum Ersetzen fehlerhafter Informationen in Speicherplätzen eines nicht veränderbaren Speichers | |
DE3126878C2 (de) | Mikroprogramm-Steuerschaltung zum Ausführen eines aus einem Steuerspeicher in einem Quellenregister aufgenommenen Mikrobefehls | |
DE2328869C2 (de) | Verfahren und Schaltungsanordnung zum Betreiben eines digitalen Speichersystems | |
DE3940302C2 (de) | ||
DE1928202B2 (de) | Einrichtung zur Erstellung statistischer Daten über den Operationsablauf programmgesteuerter Datenverarbeitungsanlagen | |
DE10308545A1 (de) | Verfahren und Vorrichtung zum Aktualisieren eines verteilten Programms | |
DE1774870C3 (de) | Einrichtung zur Adressierung einer Speicherzelle eines Speichers in einer Datenverarbeitungsanlage | |
DE2145709B2 (de) | ||
DE2556617C2 (de) | Schiebe- und Rotierschaltung | |
DE3227292A1 (de) | Elektronische steuereinrichtung | |
DE10234971A1 (de) | Erzeugen und Korrigieren von Programmcode | |
DE3148804C2 (de) | Vorrichtung zum Speichern von Befehlen | |
EP0902924B1 (de) | Redundanzspeichervorrichtung mit rom-speicherzellen | |
DE2723706A1 (de) | Einrichtung zum adressenvergleich | |
DE2854976B2 (de) | Verfahren zum korrigierbaren Speichern von Programmen in einem Festspeicher | |
DE1774421B1 (de) | Mehrprogramm datenverarbeitungsanlage | |
DE2343501C3 (de) | Steuerschaltung für zumindest eine Rechenanlage mit mehreren für die Durchführung von Ein-/Ausgabe-Programmen bestimmten Registern | |
DE3009121C2 (de) | Mikroprogramm-Steuereinrichtung | |
DE10148047B4 (de) | Verfahren und Vorrichtung zur Sicherung von Daten in einem Speicherbaustein und Speicherbaustein | |
DE2204680A1 (de) | Mikroprogramm-steuereinrichtung | |
DE102004006308B4 (de) | Verfahren zum Verändern von Programmcode eines tragbaren Datenträgers mittels Patchdaten | |
DE2209253A1 (de) | Verfahren und schaltungsanordnung zur fehlerpruefung einer speicheradressierung | |
DE2613703C2 (de) | Schaltungsanordnung zum Übersetzen von Programmtexten | |
EP4055472B1 (de) | Verfahren zur datenmigration eines zeigerelements im zuge einer datenmigration eines programmzustands eines steuerprogramms eines automatisierungssystems | |
DE3850648T2 (de) | Verfahren und Anordnung zum Lesen eines Aktualisierungszustandsinformation in einer integrierten Schaltung. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAP | Request for examination filed | ||
OD | Request for examination | ||
8263 | Opposition against grant of a patent | ||
8235 | Patent refused |