DE2854976B2 - Verfahren zum korrigierbaren Speichern von Programmen in einem Festspeicher - Google Patents

Verfahren zum korrigierbaren Speichern von Programmen in einem Festspeicher

Info

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
Application number
DE19782854976
Other languages
English (en)
Other versions
DE2854976A1 (de
Inventor
Rolf Dipl.-Ing. 7750 Konstanz Klett
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Licentia Patent Verwaltungs GmbH
Original Assignee
Licentia Patent Verwaltungs GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Licentia Patent Verwaltungs GmbH filed Critical Licentia Patent Verwaltungs GmbH
Priority to DE19782854976 priority Critical patent/DE2854976B2/de
Publication of DE2854976A1 publication Critical patent/DE2854976A1/de
Publication of DE2854976B2 publication Critical patent/DE2854976B2/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction 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)

Patentansprüche:
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.
DE19782854976 1978-12-20 1978-12-20 Verfahren zum korrigierbaren Speichern von Programmen in einem Festspeicher Ceased DE2854976B2 (de)

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)

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

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