DE4040503A1 - Nur-lese-speichervorrichtung - Google Patents
Nur-lese-speichervorrichtungInfo
- Publication number
- DE4040503A1 DE4040503A1 DE19904040503 DE4040503A DE4040503A1 DE 4040503 A1 DE4040503 A1 DE 4040503A1 DE 19904040503 DE19904040503 DE 19904040503 DE 4040503 A DE4040503 A DE 4040503A DE 4040503 A1 DE4040503 A1 DE 4040503A1
- Authority
- DE
- Germany
- Prior art keywords
- address
- prom
- program code
- section
- program
- 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.)
- Withdrawn
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)
- Stored Programmes (AREA)
- Read Only Memory (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Debugging And Monitoring (AREA)
Description
Die vorliegende Erfindung bezieht sich auf eine
Nur-Lese-Speichervorrichtung, und insbesondere auf eine
masken-programmierte Nur-Lese-Speichervorrichtung, in
welcher ein Nur-Lese-Speicher und ein
masken-programmierter programmierbarer Nur-Lese-Speicher
(programmierbarer ROM) oder ähnlich auf einem
Halbleiterchip integriert sind.
Das Programm eines Mikrocomputers, welcher seit neuerem
weite Verwendung findet, ist in einen ROM geschrieben und
in den Bestandteilen des Mikrocomputers installiert. Wenn
die ROMs, welche dasselbe Programm gespeichert haben,
massenproduziert werden, werden sie im allgemeinen als
masken-programmierte Nur-Lese-Speicher hergestellt, in
welchen die Programmcodes (Quelle) auf einem IC-Chip
gefertigt werden, und jeder der Chips in ein Gehäuse
eingeschlossen wird. Der Umfang der in vielen
masken-programmierten ROMs gespeicherten Programme ist
für gewöhnlich sehr groß, z. B. 16 oder 32 kBytes.
Selbst für den Fall, daß nur einige wenige Bytes in einem
derartig umfangreichen Programm Fehler aufweisen, muß der
masken-programmierte Nur-Lese-Speicher, welcher solche
Fehler aufweist, erneut hergestellt werden, wenn die
Fehler die Steuerung des Mikrocomputers stark
beeinflussen. Jedoch kann es einige Monate oder länger
dauern, einen masken-programmierten Nur-Lese-Speicher neu
zu entwickeln und herzustellen, und somit können Probleme
auftreten, daß die Produkte, welche solche
Nur-Lese-Speicher verwenden, nicht rechtzeitig
fertiggestellt werden können.
Als Notlösung für solche Fälle wird manchmal anstelle
eines masken-programmierten Nur-Lese-Speichers ein
Programmierbarer Nur-Lese-Speicher (PROM) verwendet,
welcher es möglich macht, daß ein Programmcode in einen
Chip geschrieben wird, nachdem er hergestellt wurde.
Falls eine solche Art von PROMs für Notfälle vorrätig
ist, kann das in den masken-programmierten ROM zu
speichernde programm nach der Fehlerbeseitigung
(debugging) in den PROM geschrieben werden, und ebenso
können Tests durchgeführt werden, um zu verifizieren, daß
keine weiteren Fehler vorliegen. Dementsprechend kann die
Herstellung von Produkten, welche solche Mikrocomputer
beinhalten, fortgesetzt werden dadurch, daß solche PROMs
verwendet werden, bis der von den Fehlern befreite
masken-programmierte ROM wieder hergestellt ist.
Jedoch selbst, wenn ein PROM als Ersatz für einen
fehlerbehafteten masken-programmierten ROM verwendet
wird, das folgende Problem. Wenn die Flächen des
masken-programmierten ROMs und des PROMs auf einem Chip
verglichen werden, welche benötigt werden, um Programme
der gleichen Größe zu speichern, ergibt sich, daß die
Fläche des PROMs größer ist als die des
masken-programmierten ROMs. Wenn versucht wird, den
Integrationsgrad des PROMs auf einem Chip zu erhöhen, um
diesen auf einer Fläche unterzubringen, welche der des
masken-programmierten ROMs entspricht, ergeben sich
ernsthafte Beschränkungen bei der Herstellung und die
Ausschußrate steigt, was dazu führt, daß die Kosten
ansteigen.
Insbesondere hat ein Schaltkreis mit hoher
Integrationsdichte (LSI), welcher einen ROM enthält, eine
obere Grenze für die gesamte Chipgröße, so daß das
Problem besteht, daß der LSI-Schaltkreis einer
vorbestimmten Größe, welcher den ROM enthält, nicht
hergestellt werden kann, falls der ROM eine große Fläche
beansprucht.
Zusätzlich ist es nötig, eine Anzahl von PROMs für
Notfälle vorrätig zu haben, welche erwartungsgemäß
während der Herstellung des korrigierten
masken-programmierten ROMs benötigt werden, weil es
mehrere Monate braucht, einen PROM selbst zu entwickeln
und herzustellen, ähnlich wie für einen
masken-programmierten ROM. Solch ein großer Vorrat stellt
ein Problem dar, nicht nur hinsichtlich der Kosten,
sondern auch hinsichtlich des Qualitätsverfalls der
Anschlüsse des PROMs während der Lagerhaltung über einen
langen Zeitraum.
Aufgabe der vorliegenden Erfindung ist es, eine
Nur-Lese-Speichervorrichtung vorzusehen, in welcher es
nicht nötig ist, den masken-programmierten ROM zu
ersetzen oder neu herzustellen, selbst wenn Fehler in dem
Programm vorhanden sind.
Um die obige Aufgabe zu lösen, wird die vorliegende
Erfindung dadurch charakterisiert, daß die Vorrichtung
einen masken-programmierten Nur-Lese-Speicher und einen
ersten programmierbaren Nur-Lese-Speicher (PROM) zum
Speichern eines Programmes umfaßt, einen zweiten PROM zum
Speichern der Adresse wenigstens des Abschnittes des
masken-programmierten ROMs, welcher korrigiert oder von
den Fehlern befreit werden muß, und der dieser Adresse
entsprechenden vorbestimmten Information, Einrichtungen
zum Vergleichen der von einer CPU zum Lesen des Programms
gesendeten Adresse mit der Adresse des zu korrigierenden
Abschnittes, und Einrichtungen zum Ausgeben der
vorbestimmten Information anstelle des aus dem
masken-programmierten ROM zum Speichern eines Programmes
ausgelesenen Programmcodes, abhängig von dem
Vergleichsergebnis in der Vergleichseinrichtung.
In der vorliegenden Erfindung kann, falls ein Programm,
welches den Abschnitt des masken-programmierten ROMs
ersetzt, welcher korrigiert werden muß, zuvor in dem
ersten PROM zum Speichern eines Programmes gespeichert
ist, und die Information zum Springen zu der Adresse des
PROMs zuvor als die vorbestimmte Information gesetzt
worden ist, bei dem Abschnitt des masken-programmierten
ROMs, welcher eine Korrektur benötigt, ein Sprung zu dem
ersten PROM zum Speichern eines Programmes gemacht
werden, um das bereits korrigierte eigentliche Programm
auszuführen, welches den Abschnitt des ersten ROMs
ersetzt, der einer Korrektur bedarf.
Weitere Eigenschaften und Vorteile der vorliegenden
Erfindung werden im folgenden im Zusammenhang mit den
Zeichnungen beschrieben.
Fig. 1 ist ein Blockdiagramm, welches das erste
Ausführungsbeispiel der vorliegenden
Erfindung zeigt;
Fig. 2 ist ein Blockdiagramm, welches die
Hauptteile des dritten
Ausführungsbeispieles der vorliegenden
Erfindung zeigt;
Fig. 3 ist eine Darstellung zum Erläutern des
Adreßbereiches;
Fig. 4 ist eine Darstellung, welche ein Beispiel
der Zuweisung des Adreßbereiches zeigt;
Fig. 5 ist ein Blockdiagramm, welches die
Hauptteile des zweiten
Ausführungsbeispieles der vorliegenden
Erfindung zeigt; und
Fig. 6 ist ein Blockdiagramm, welches das vierte
Ausführungsbeispiel der vorliegenden
Erfindung zeigt.
Fig. 1 ist ein Blockdigramm, welches ein
Ausführungsbeispiel der vorliegenden Erfindung zeigt. In
dieser Figur besteht ein ROM 1 zum Speichern eines
Programmes aus einem masken-programmierten ROM 1a und
einem PROM 1b.
In den PROM 1b ist ein korrigiertes oder von den Fehlern
befreites Programm eines Abschnittes des
masken-programmierten ROMs 1a gespeichert, welcher
korrigiert werden muß. Die Programm-(Quell-)Codes, die in
diesen ROMs 1a und 1b gespeichert sind, werden in eine
(nicht gezeigte) CPU1 über einen Schalter 2 entsprechend
der von der CPU gesendeten Adresse gelesen. Der Schalter
2 wird auf das von einem ODER-Gatter 2a ausgegebene
Signal hin betätigt. Wenn die Ausgabe des ODER-Gatters 2a
logisch "H" ist, ist der Schalter 2 geschlossen, um den
Programmcode von dem ROM 1 durchzulassen, während, falls
der Ausgang des ODER-Gatters 2a logisch "L" ist, der
Schalter 2 offen ist, um das Ausgeben des Programmcodes
von dem ROM 1 zu unterbinden.
Wenn die Ausgabe des Programmcodes von dem ROM 1
unterbunden wird, werden Ersatzcodes von 16
Code-ausgebenden Einrichtungen C1, C2, . . ., C16
ausgegeben. Jede der Code-ausgebenden Einrichtungen C1,
C2, . . ., C16 hat einen Komparator 3 zum Vergleichen der
von der CPU gesendeten Adresse mit jeder in einem
entsprechenden Adressenausschnitt-PROM 4 gespeicherten
Adresse. Das Wort "Adressenausschnitt"bedeutet die
Adressen eines Abschnittes in dem masken-programmierten
ROM 1a, welcher korrigiert oder von Fehlern befreit
werden muß.
In dem Adressenausschnitt-PROM 4 ist die führende Adresse
des Teils des in dem masken-programmierten ROM 1a
gespeicherten Programmes gespeichert, welcher korrigiert
werden muß.
In einer Programmcode-Haltevorrichtung (Speicher) 5 ist
ein Anweisungscode für das Springen zu dem korrigierten
Unterprogramm-Abschnitt, der in dem PROM 1b gespeichert
ist, gespeichert, welcher Abschnitt einen Ersatz
darstellt für das Programm in dem Abschnitt, welcher
korrigiert werden muß. Auf das Schließen des Schalters 6
hin, welcher auf die Ausgabe des Komparators 3 hin
betrieben wird, wird der Anweisungscode für einen Sprung
in die CPU gelesen.
In der ROM-Vorrichtung nach der obigen Konstruktion wird
eine Adresse, welche von der CPU in die ROM-Vorrichtung
gegeben wird, in dem Komparator 3 mit der in dem
Ausschnittadressen-ROM 4 gespeicherten Adresse
verglichen. Falls beide Adressen gleich sind, wird der
Ausgang des Komparators 3 von "L" nach "H" invertiert.
Wenn der Ausgang des Komparators 3 "H" annimmt, wird der
Ausgang des ODER-Gatters 2a "L", um den Schalter 2 zu
öffnen, wodurch die Ausgabe des Programmcodes von dem ROM
1 unterbunden wird, und andererseits wird der Schalter 6
geschlossen, um den Anweisungscode in der
Programmcode-Haltevorrichtung 5 zu lesen, und an die CPU
zu liefern.
Die CPU dekodiert den Anweisungscode, um den Programmcode
des Unterprogramms von der bezeichneten Adresse des PROMs
1b zu lesen. Falls eine Sprunganweisung zur
Rückkehradresse des masken-programmierten ROMs 1a zuvor
an das Ende des Unterprogramms geschrieben wurde, kehrt
die Verarbeitung zurück zur Rückkehradresse des
masken-programmierten ROMs 1a und geht weiter, wenn das
Auslesen des korrigierten Programmes abgeschlossen ist.
In diesem Ausführungsbeispiel sind 16 Code-ausgebende
Vorrichtungen C1 bis C16 vorgesehen, so daß bis zu 16
Teile des in dem masken-programmierten ROMs 1a
gespeicherten Programmes korrigiert werden können. Die
Schalter 2 und 6 haben beide Schaltkontakte gleich der
Anzahl von Bits des Programmcodes, und sie sind angepaßt,
die Schaltkontakte auf die Ausgabe des Komparators 3 hin
zu öffnen und zu schließen, wodurch sie die Ausgabe des
in der Programmcode-Haltevorrichtung 5 gespeicherten
Programmcodes ermöglichen oder unterbinden.
Nun wird als zweites Ausführungsbeispiel ein Beispiel
gezeigt, in welchem der Zugriff auf den ROM beschleunigt
ist. Fig. 5 ist ein Blockdiagramm, welches die Hauptteile
des zweiten Ausführungsbeispiels zeigt. In dieser Figur
repräsentieren die gleichen Symbole wie in Fig. 1 gleiche
oder ähnliche Teile.
Das zweite Ausführungsbeispiel ist so konstruiert, daß
die Schalter 2 und 6 geändert werden, wenn die Anweisung
unter einer Adresse, die eine besondere Beziehung mit der
Adresse des Abschnittes hat, der einer Korrektur bedarf
(z. B., um eine vorbestimmte Anzahl vorangehender
Adressen), ausgeführt worden ist.
In Fig. 5 wird in einem Ausschnittadressen-PROM 4 eine
Adresse vorgespeichert, welche eine besondere Beziehung
zu der Adresse des Abschnittes hat, welcher einer
Korrektur bedarf. Und in einem Komparator 3 wird die von
der CPU ausgegebene Adresse zum Lesen des Programmcodes
mit der in dem Ausschnittadressen-PROM 4 vorgespeicherten
Adresse verglichen. Falls beide Adressen zusammenfallen,
wird der Ausgang eines Flip-Flops 24 auf "H" gesetzt.
Andererseits wird in einer Anweisungsausführungs-
Detektiereinrichtung 23 das an ein UND-Gatter 25
ausgegebene Signal "H", wenn durch Detektieren des
Abschlußsignals einer Anweisungsausführung die Ausführung
der Anweisung an der Adresse, die die besondere Beziehung
zu der Adresse des Abschnitts hat, der einer Korrektur
bedarf, bestimmt worden ist.
Wenn die Ausgangssignale des Flip-Flops 24 und des
Anweisungsausführ-Detektierteiles 23 beide "H" werden,
werden die Schalter 2 und 6 von dem Signal von dem
UND-Gatter 25 umgewechselt, wodurch das Ausgeben des
Programmcodes vom ROM 1 gestoppt wird, und der von der
Programmcode-Haltevorrichtung 5 ausgelesene Programmcode
ausgegeben wird.
Zum Beispiel wird, falls die Anweisung unmittelbar vor
dem Abschnitt, welcher einer Korrektur bedarf, eine
3-Byte-Anweisung ist, die Adresse in dem
Ausschnittadressen-PROM 4 vorabgespeichert, welche dem
Teil, der einer Korrektur bedarf, um drei vorangeht. Dann
wird der Ausgang des Flip-Flops 24 "H" zu der Zeit, wenn
die Adresse von der CPU geliefert wird, welche drei
Adressen vor dem Abschnitt liegt, welcher einer Korrektur
bedarf. Das heißt, weil der Abschnitt, welcher einer
Korrektur bedarf, während der Ausführung der Anweisung
unter der Adresse, die dem Abschnitt, welcher einer
Korrektur bedarf, um drei vorangeht, detektiert werden
kann, werden die Schalter 2 und 6 unmittelbar
umgewechselt, nachdem der Abschluß der Ausführung der
3-Byte-Anweisung mittels des Abschlußsignals der
Anweisungsausführung detektiert worden ist.
Nun wird das dritte Ausführungsbeispiel der vorliegenden
Erfindung beschrieben, welches eine
Programmcode-Ausgabevorrichtung umfaßt, welche es
ermöglicht, den Code des korrigierten Programmes
effizient auszugeben, falls der Abschnitt des
masken-programmierten ROMs 1a, welcher korrigiert werden
soll, klein ist. Fig. 2 ist ein Blockdiagramm einer
solchen Codeausgabevorrichtung. In dieser Figur wird die
Adresse, welche um drei vor der führenden Adresse des
einer Korrektur bedürfenden Abschnittes des
masken-programmierten ROMs 1a liegt, in einen
Ausschnittadressen-PROM 7 geschrieben. In
Programmcode-Haltevorrichtungen 8 bis 11 werden die
individuellen korrigierten Programmcodes entsprechend der
führenden Adresse und den folgenden drei Adressen des
einer Korrektur bedürftigen Abschnittes in dem
masken-programmierten ROM 1a geschrieben.
Die in den Ausschnittadressen-PROM 7 geschriebene Adresse
wird mit vorbestimmten numerischen Werten in jeweiligen
Addierern 12 bis 14 addiert, und danach auf Komparatoren
15 bis 17 gegeben. Die in den Ausschnittadressen-PROM 7
geschriebene Adresse wird direkt auf einen Komparator 18
gegeben.
In diesem Ausführungsbeispiel sind die in den Addierern
12 bis 14 addierten vorbestimmten numerischen Werte
jeweils -3, -2 und -1. Die zu addierenden vorbestimmten
numerischen Werte sind nicht auf -3, -2 und -1
beschränkt, sondern sie werden abhängig davon bestimmt,
welche Adresse des Abschnittes, der einer Korrektur
bedarf, in dem Ausschnittadressen-PROM 7 gespeichert ist.
In den Komparatoren 15 bis 18 wird die von der CPU
ausgegebene Adresse mit der in den
Ausschnittadressen-PROM 7 geschriebenen Adresse oder den
durch Addieren vorbestimmter numerischer Werte zu der in
den Ausschnittadressen-PROM 7 geschriebenen Adresse
erhaltenen Adressen verglichen.
Falls die zwei in die Komparatoren 15 bis 18 gegebenen
Adressen einander entsprechen, werden die jeweiligen
Ausgänge dieser Komparatoren "H", und die Schalter 19 bis
22 schließen auf die Ausgangssignale hin, wodurch die in
den jeweiligen Programmhaltevorrichtungen 8 bis 11
gespeicherten Programmcodes an die CPU ausgegeben werden.
In diesem Beispiel erzeugen die Komparatoren 15, 16, 17
und 18 die Ausgabe sequentiell in dieser Reihenfolge, und
vier 1-Byte-Programmcodes werden aufeinanderfolgend von
den entsprechenden Programmcode-Haltevorrichtungen an die
CPU geliefert. Zur selben Zeit werden die Ausgaben der
Komparatoren 15 bis 18 an das wie in Fig. 1 gezeigte
ODER-Gatter 2a über das ODER-Gatter 23 geliefert, um den
Schalter 2 zu öffnen, wodurch das Ausgeben des
Programmcodes von dem Programmspeicher-ROM 1 an die CPU
unterbunden wird. Somit können, falls der Abschnitt des
masken-programmierten ROMs 1a, welcher einer Korrektur
bedarf, klein ist (in dem zweiten Ausführungsbeispiel
umfaßt der einer Korrektur bedürftige Abschnitt 4 Bytes),
die korrigierten Programmcodes direkt von den
Programmcode-Haltevorrichtungen 8 bis 11 an die CPU
ausgegeben werden, ohne zu dem PROM 1b des
Programmspeicher-ROMs 1 zu springen. Zusätzlich kann eine
Arithmetik-Vorrichtung anstelle der Addierer 12 bis 14
verwendet werden, um Adressen zu erzeugen, welche eine
spezielle Beziehung zu der in dem Ausschnittadressen-PROM
7 gespeicherten Adresse haben.
Für den Fall, daß der Abschnitt, der einer Korrektur
bedarf, 4 Bytes überschreitet, und falls ein
Sprunganweisungscode zuvor in die
Programmcode-Haltevorrichtung 8 geschrieben wird, welche
die Ausgabe zuerst erzeugt, und gleichzeitig der
Programmcode nach der Korrektur zuvor in den PROM 1b
geschrieben wird, kann eine Operation ähnlich der im
ersten Ausführungsbeispiel vorgenommen werden, wodurch
die Aufgabe der vorliegenden Erfindung gelöst werden kann.
Die Zuweisung des ROM 1a, PROM 1b und
Ausschnittadressen-PROM 7 in dem dritten
Ausführungsbeispiel der Fig. 2 ist nun beschrieben. Die
Zuweisung wird in groben Zügen in Fig. 3 gezeigt und ein
detailliertes Beispiel der Adressenzuweisung ist in Fig.
4 dargestellt. In Fig. 4 bezeichnen die gleichen Symbole
wie in Fig. 1 und 2 ähnliche oder identische Teile.
Um ein Beispiel zu geben, in einem ROM, welcher einen
Adressenbereich von 32 kBytes hat, wie in Fig. 3 gezeigt,
werden 31,5 kBytes als ein masken-programmierter ROM
eingestellt und die verbleibenden 0,5 kBytes werden als
PROM eingestellt. Der 31,5 kByte masken-programmierte ROM
wird als der masken-programmierte ROM 1a verwendet, der
in Fig. 1 gezeigt ist, während der 0,5 kByte PROM als der
PROM 1b, Ausschnittadressen-PROM 7 und
Programmcode-Haltevorrichtungen 8 bis 11 verwendet wird.
Von dem 0,5 kByte (512 Byte) PROM, werden 480 Bytes als
der PROM 1b zum Speichern eines Programmes angewiesen und
32 Bytes werden für den Ausschnittadressen-PROM 7
verwendet. Wie gezeigt, werden die letzten 65 Bytes des
PROMs 1b zum Speichern eines Programmes eingestellt, um
von den Programmcode-Haltevorrichtungen 8 bis 11 geteilt
zu werden.
Auf diese Weise ermöglicht das Teilen des Bereiches des
PROMs 1b zum Speichern eines Programmes mit dem Bereich
der Programmcode-Haltevorrichtungen 8 bis 11, daß das
korrigierte Programm auch in den übrigbleibenden Teil der
Programmcode-Haltevorrichtungen 8 bis 11 geschrieben
werden kann, falls nur ein Teil des vorbereiteten
Ausschnittadressen-PROMs verwendet wird, das heißt, falls
der Umfang des Abschnittes, welcher einer Korrektur
bedarf, geringer ist als die erwartete Kapazität des
Ausschnittadressen-PROMs 7. Dementsprechend kann der
begrenzte ROM-Bereich effizient verwendet werden.
In Fig. 4 wird, weil von der CPU eine 16 Bitadresse
eingegeben wird, deren signifikantestes Bit zu "0"
festgelegt ist, auch eine 16 Bit-Ausschnittadresse in dem
Ausschnittadressen-PROM 7 gespeichert. Zusätzlich werden
Ein-Byte (8 Bit) Programmcodes in den jeweiligen
Programmcode-Haltevorrichtungen 8 bis 11 gespeichert. Für
den PROM kann ein PROM oder ein OTP
(einmal-programmierbarer PROM), welcher nicht mehr
gelöscht werden kann, wenn einmal Information in diesen
eingeschrieben wurde, verwendet werden.
Falls es nicht notwendig ist, eine Korrektur vorzunehmen,
weil sich in dem Speicherinhalt des masken-programmierten
ROMs 1a kein Fehler befindet, wird keine Information in
den Ausschnittadressen-PROM 7 geschrieben. Falls in den
OTP keine Information geschrieben ist, sind alle Bits "1"
oder FFH, und der Inhalt eines jeden 16
Bit-Ausschnittadressen-PROMs 7 ist FFFFH.
Jedoch existiert eine solche Adresse FFFFH nicht in dem
32 kBit-Adressbereich. Dementsprechend gibt es für den
Fall, daß keine Information in den
Ausschnittadressen-PROM 7 geschrieben ist, keine
Möglichkeit, daß die von der CPU eingegebene Adresse mit
einer Adresse zusammenfällt, welche von dem
Ausschnittadressen-PROM 7 geliefert wird, so daß die
Ausgänge der Komparatoren 15 bis 18 in der Fig. 2 nicht
"H" werden. Demzufolge wird der Schalter 2 in einem
geschlossenen Zustand gehalten, so daß der Programmcode
des masken-programmierten ROMs 1a immer ausgegeben wird.
Das vierte Ausführungsbeispiel der vorliegenden Erfindung
wird unten mit Bezug auf Fig. 6 beschrieben, welche ein
Blockdiagramm ist, das das vierte Ausführungsbeispiel
zeigt. In dieser Figur ist die Adresse des Abschnittes
des in dem masken-programmierten ROM 1a gespeicherten
Programmcodes, der einer Korrektur bedarf, in einem
Ausschnittadressen-PROM 4 gespeichert. Und in einer
Abweichungs-Haltevorrichtung 5a ist der Unterschied
zwischen der Adresse des PROMs 1b, in welcher der
korrigierte Programmcode gespeichert ist, und der Adresse
des in dem masken-programmierten ROM 1a gespeicherten
Abschnittes, der einer Korrektur bedarf, gespeichert.
Zum Beispiel wird, falls die Adresse des in dem
masken-programmierten ROMs 1a gespeicherten Abschnittes,
der einer Korrektur bedarf, "1000" (dezimal) ist und die
Adresse des PROMs 1b zum Speichern des programmierten
Programmcodes "3000" (dezimal) ist, ist der Unterschied
"2000" (dezimal) zwischen diesen Adressen als der
Unterschied gespeichert. Andererseits wird "0" in einer
Abweichungs-"0"-Setzvorrichtung 27 gespeichert.
Die von der CPU ausgegebene Adresse wird an den
Komparator 3 und eine Adressenberechnungsvorrichtung 26
gegeben. Der Schalter 6a wird entsprechend dem Ausgang
des Komparators 3 umgewechselt und entweder die Ausgabe
der Abweichungs-Haltevorrichtung 5a oder der
Abweichungs-"0"-Setzvorrichtung 27 wird selektiv an die
Adressenberechnungsvorrichtung 26 geliefert. In der
Adressenberechnungsvorrichtung 26 wird die Adresse des
PROMs 1b, unter welcher der korrigierte Programmcode
gespeichert ist, durch Addieren der von der CPU
eingegebenen Adresse und der über den Schalter 6a
eingegebenen Daten berechnet, und diese Adresse wird an
den ROM 1 ausgegeben, der zum Speichern eines Programmes
dient.
In dem vierten Ausführungsbeispiel der Fig. 6 wird, falls
die beiden Adressen in dem Komparator 3 zusammenfallen,
die Adresse des Abschnittes, in welchem der korrigierte
Programmcode gespeichert wird, direkt erzeugt, anstelle
einer Sprunganweisung zu dem Abschnitt vorzusehen, in
welchem der korrigierte Programmcode gespeichert ist. In
dem obigen Beispiel wird der Speicherinhalt der
Abweichungs-Haltevorrichtung 5a "2000" zu "1000" von der
CPU in der Adressenberechnungsvorrichtung 26 über den
Schalter 6a addiert, weil in dem Komparator 3
Übereinstimmung erzielt wird, falls die von der CPU
eingegebene Adresse "1000" wird, welche die Adresse des
Abschnitts ist, der einer Korrektur bedarf, und die Summe
von "3000" wird an den PROM 1b als eine aktuelle
effektive Adresse geliefert.
Wie in den jeweiligen Ausführungsbeispielen oben
beschrieben, kann die Abarbeitung des Programmes zu der
Ausschnittadresse des PROM-Bereiches springen, in welchem
das korrigierte Programm gespeichert ist, wenn es zu dem
Abschnitt voranschreitet, welcher einer Korrektur bedarf,
dadurch, daß in den Ausschnittadressen-PROM die
Ausschnittadresse geschrieben wird, nämlich die Adresse
des Abschnitts, welcher einer Korrektur bedarf, oder eine
Adresse, welche eine besondere Beziehung zu der Adresse
hat.
In diesem Ausführungsbeispiel wurde ein Beispiel gezeigt,
in welchem ein vielseitiger Anweisungscode oder ähnliches
in der Programmcode-Haltevorrichtung gespeichert ist, und
die CPU diesen Code dekodiert, um eine vorbestimmte
Operation durchzuführen. Jedoch ist die vorliegende
Erfindung nicht darauf beschränkt, sondern Information,
welche als ein Auslösesignal für die CPU dient, um diese
zu veranlassen, eine bestimmte entsprechende Operation
durchzuführen, kann in der Programmcode-Haltevorrichtung
gespeichert werden. In einem einen ROM enthaltenden
LSI-Schaltkreis, in welchem ein ROM und eine CPU auf
einem einzigen Chip vorgesehen sind, sind die
Architekturen des ROMs und der CPU dieselbe, so daß es
möglich ist, die CPU so auszulegen, daß sie eine
bestimmte Operation wie etwa eine Sprungoperation oder
ähnliches mittels eines Triggersignals durchführt,
welches eindeutig für den LSI-Schaltkreis ist, anstelle
eines vielseitigen Anweisungscodes.
Die vorliegende Erfindung ist nicht auf den Fall
beschränkt, daß die Adresse zum Auslesen des
Programmcodes eine physikalische Adresse ist, sondern sie
kann in gleicher Weise sogar für den Fall ausgeführt
werden, daß die Adresse eine logische Adresse ist.
Wie ersichtlich aus der obigen Beschreibung, können die
folgenden technischen Vorteile mit der vorliegenden
Erfindung erzielt werden.
- 1) Weil ein Sprung von dem Bereich des masken-programmierten ROMs zu dem PROM-Bereich gemacht werden kann, falls das korrigierte Programm des masken-programmierten ROMs zuvor als ein Unterprogramm in den PROM geschrieben wurde, kann das korrigierte fehlerfreie Programm ausgeführt werden.
- 2) Selbst wenn Fehler in einem Programm gefunden werden, ist es nicht nötig, die masken-programmierten ROMs, welche hergestellt wurden, wegzuwerfen und sie neu welche hergestellt wurden, wegzuwerfen und sie neu herzustellen.
- 3) Es ist nicht nötig, eine große Zahl von Massenspeicher-PROMs zu lagern, um für das Auftreten von Fehlern in dem Programm vorbereitet zu sein.
- 4) Weil es nur nötig ist, einen PROM vorzusehen, welcher eine Kapazität hat, die einige Zehntel des gesamten ROMs umfaßt, kann eine Gegenmaßnahme für das Auftreten von Fehlern mit einer sehr kleinen Vergrößerung der Chipfläche vorgenommen werden.
- 5) Das Einschreiben des Abschnittes des PROMs, welcher einer Korrektur bedarf, und die Verifikation des Inhaltes, der eingeschrieben wurde, kann durch den ROM-Schreiber durchgeführt werden, welcher herkömmlicherweise weite Verwendung gefunden hat.
- 6) Die obige Operation (5) kann durchgeführt werden, während die ROM-Vorrichtung auf der Steuereinheit montiert ist, ohne daß sie von der Steuereinheit entfernt wird.
Claims (9)
1. Nur-Lese-Speichervorrichtung, welche auf einem
einzigen Halbleiterchip gebildet ist, und umfaßt:
- - einen masken-programmierten ROM (1a) und einen PROM (1b) zum Speichern eines Programmes,
- - einen Ausschnittadressen-PROM (4), in welchen die Adresse des Teiles des in den masken-programmierten ROM geschriebenen Programmcodes geschrieben werden kann, welcher Teil des Programmcodes einer Korrektur bedarf,
- - Informations-Haltevorrichtungen (5), welche entsprechend dem Ausschnittadressen-PROM (4) vorgesehen sind, um eine Information zu speichern, um eine CPU zu veranlassen, eine vorbestimmte Operation durchzuführen,
- - Vergleichseinrichtungen (3) zum Vergleichen einer gelieferten Adresse zum Auslesen des Programmcodes mit einer in den Ausschnittadressen-PROM geschriebenen Adresse, und
- - Schaltereinrichtungen (2, 6) zum Ausgeben der in der Informations-Haltevorrichtung (5) gespeicherten Information anstelle des in dem masken-programmierten ROM (1a) gespeicherten Programmes, falls die beiden Adressen in der Vergleichseinrichtung zusammenfallen.
2. Nur-Lese-Speichervorrichtung, welche auf einem
einzigen Halbleiterchip gebildet ist, und umfaßt:
- - einen masken-programmierten ROM (1a) und einen PROM (1b) zum Speichern eines Programmes,
- - einen Ausschnittadressen-PROM (4), in welchem eine Adresse gespeichert werden kann, welche eine vorbestimmte Beziehung zu der Adresse des Abschnittes des in den masken-programmierten ROM geschriebenen Programmcodes hat, welcher Abschnitt des Programmcodes einer Korrektur bedarf,
- - Informations-Haltevorrichtungen (5), welche entsprechend dem Ausschnittadressen-PROM (4) vorgesehen sind, zum Speichern einer Information, um eine CPU zu veranlassen, eine vorbestimmte Operation durchzuführen,
- - Vergleichseinrichtungen (3) zum Vergleichen einer zum Auslesen des Programmcodes gelieferten Adresse mit einer in den Ausschnittadressen-PROM geschriebenen Adresse, und
- - Einrichtungen zum Detektieren, daß die Anweisung unter der Adresse, welche die vorbestimmte Beziehung mit dem Abschnitt, der einer Korrektur bedarf, hat, ausgeführt worden ist, und
- - Schaltereinrichtungen (2, 6) zum Ausgeben der in der Informations-Haltevorrichtung (5) gespeicherten Information anstelle des in dem masken-programmierten ROM (1a) gespeicherten Programmes, falls die beiden Adressen in der Vergleichseinrichtung zusammenfallen, und der Abschluß der Ausführung der Anweisung unter der Adresse unmittelbar vor dem Abschnitt, welcher einer Korrektur bedarf, detektiert wird.
3. Nur-Lese-Speichervorrichtung nach Anspruch 1 oder 2,
dadurch gekennzeichnet, daß der
korrigierte Programmcode des Abschnittes des in den
masken-programmierten ROM geschriebenen
Programmcodes, welcher einer Korrektur bedarf, in dem
PROM zum Speichern eines Programmes gespeichert ist.
4. Nur-Lese-Speichervorrichtung nach Anspruch 3,
dadurch gekennzeichnet, daß die in
der Informations-Haltevorrichtung (8) gespeicherte
Information ein Anweisungscode für einen Sprung zu
dem Abschnitt des PROMs ist, in welchem der
korrigierte Programmcode gespeichert ist.
5. Nur-Lese-Speichervorrichtung nach Anspruch 3,
dadurch gekennzeichnet, daß die in
den Informations-Haltevorrichtungen (8 bis 11)
gespeicherte Information ein Auslöser dafür ist, die
CPU zu veranlassen, die Operation durchzuführen, zu
dem Abschnitt des PROMs zu springen, in welchem der
korrigierte Programmcode gespeichert ist.
6. Nur-Lese-Speichervorrichtung nach Anspruch 1,
dadurch gekennzeichnet, daß sie
ferner Arithmetik-Einrichtungen (12 bis 14) zum
Durchführen einer vorbestimmten arithmetischen
Verarbeitung an einer der Adresse des
Ausschnittadressen-PROMs und der Adresse zum Auslesen
des Programmcodes einschließt, worin eine Adresse in
dem Ausschnittadressen-PROM gespeichert ist, welche
eine bestimmte Beziehung zu dem Abschnitt des in dem
masken-programmierten ROM geschriebenen Programmcodes
hat, welcher einer Korrektur bedarf.
7. Nur-Lese-Speichervorrichtung, welche auf einem
einzigen Halbleiterchip gebildet ist, und umfaßt:
- - einen ROM zum Speichern eines Programmcodes, der einen masken-programmierten ROM (1a), welcher ein Programm speichert, und einen PROM (1b) zum Speichern des korrigierten Programmcodes für den Programmcode des Abschnittes des masken-programmierten ROMs einschließt, welcher einer Korrektur bedarf,
- - einen Ausschnittadressen-PROM (4), in welchen die Adresse des Abschnittes des in den masken-programmierten ROM geschriebenen Programmcodes geschrieben werden kann, welcher Abschnitt des Programmcodes einer Korrektur bedarf,
- - Informations-Haltevorrichtungen (5a), welche entsprechend dem Ausschnittadressen-PROM vorgesehen sind, zum Speichern der Information, welche die Korrelation zwischen den Adressen zum Speichern des Programmcodes des einer Korrektur bedürftigen Abschnittes und zum Speichern des korrigierten Programmcodes repräsentiert,
- - Arithmetikeinrichtungen (26) zum Erzeugen der Adresse zum Speichern des korrigierten Programmcodes auf der Grundlage der Information und der Adresse zum Auslesen des Programmcodes,
- - Vergleichereinrichtungen (3) zum Vergleichen der Adresse zum Auslesen des Programmcodes mit der in den Ausschnittadressen-PROM geschriebenen Adresse, und
- - Schalteinrichtungen zum Ausgeben der in der Informations-Haltevorrichtung (5a) gespeicherten Information an die Arithmetikeinrichtung (26), wenn die beiden Adressen in der Vergleichereinrichtung (3) zusammenfallen.
8. Nur-Lese-Speichervorrichtung nach einem der Ansprüche
1 bis 7,
dadurch gekennzeichnet, daß der
masken-programmierte ROM und der PROM zum Speichern
eines Programmes, der Ausschnittadressen-PROM und die
Informations-Haltevorrichtungen in ein und demselben
Adressbereich angeordnet sind.
9. Nur-Lese-Speichervorrichtung nach Anspruch 8,
dadurch gekennzeichnet, daß
wenigstens ein Teil des Adressbereiches des PROMs zum
Speichern eines Programmes und des Adreßbereiches
der Informations-Halteeinrichtungen in sich
überlappende Adreßbereiche gelegt sind.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB9026877A GB2250838A (en) | 1990-12-11 | 1990-12-11 | Patching a program stored in ROM |
Publications (1)
Publication Number | Publication Date |
---|---|
DE4040503A1 true DE4040503A1 (de) | 1992-06-25 |
Family
ID=10686819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19904040503 Withdrawn DE4040503A1 (de) | 1990-12-11 | 1990-12-18 | Nur-lese-speichervorrichtung |
Country Status (3)
Country | Link |
---|---|
DE (1) | DE4040503A1 (de) |
FR (1) | FR2670601B1 (de) |
GB (1) | GB2250838A (de) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2292470A (en) * | 1994-08-19 | 1996-02-21 | Advanced Risc Mach Ltd | Rom patching |
JPH0876990A (ja) * | 1994-09-07 | 1996-03-22 | Seikosha Co Ltd | カメラ用制御回路 |
DE19540915A1 (de) * | 1994-11-10 | 1996-05-15 | Raymond Engineering | Redundante Anordnung von Festkörper-Speicherbausteinen |
US5581776A (en) * | 1995-02-03 | 1996-12-03 | Nokia Mobile Phones Limited | Branch control system for rom-programmed processor |
US6135651A (en) * | 1997-05-29 | 2000-10-24 | Cirrus Logic, Inc. | Patching apparatus and method for upgrading modem software code |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2854748A1 (de) * | 1977-12-23 | 1979-06-28 | Honeywell Inf Systems | Speichereinrichtung |
DE3137152A1 (de) * | 1981-09-18 | 1983-04-14 | Robert Bosch Gmbh, 7000 Stuttgart | Speicher-korrektureinheit |
US4542453A (en) * | 1982-02-19 | 1985-09-17 | Texas Instruments Incorporated | Program patching in microcomputer |
US4580212A (en) * | 1981-03-23 | 1986-04-01 | Nissan Motor Co., Ltd. | Computer having correctable read only memory |
DE3900187A1 (de) * | 1988-03-11 | 1989-09-28 | Mitsubishi Electric Corp | Ein-chip-mikrocomputer |
EP0383452A2 (de) * | 1989-01-31 | 1990-08-22 | Fujitsu Limited | Halbleiterspeicher mit einer Einrichtung zum Ersetzen defekter Speicherzellen |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0118583A1 (de) * | 1983-03-17 | 1984-09-19 | Georg V. Coza | Speicher-Korrektureinheit |
JPS60243795A (ja) * | 1984-05-17 | 1985-12-03 | シャープ株式会社 | 電子レジスタの変更プログラム設定装置 |
US4897813A (en) * | 1988-02-19 | 1990-01-30 | Unisys Corporation | Partially programmable read-only memory system |
JPH02177095A (ja) * | 1988-12-27 | 1990-07-10 | Nec Corp | 半導体不揮発性メモリ |
GB2231419B (en) * | 1989-05-05 | 1993-09-22 | Technophone Ltd | Updating prom information. |
-
1990
- 1990-12-11 GB GB9026877A patent/GB2250838A/en not_active Withdrawn
- 1990-12-18 DE DE19904040503 patent/DE4040503A1/de not_active Withdrawn
- 1990-12-18 FR FR9015855A patent/FR2670601B1/fr not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2854748A1 (de) * | 1977-12-23 | 1979-06-28 | Honeywell Inf Systems | Speichereinrichtung |
US4580212A (en) * | 1981-03-23 | 1986-04-01 | Nissan Motor Co., Ltd. | Computer having correctable read only memory |
DE3137152A1 (de) * | 1981-09-18 | 1983-04-14 | Robert Bosch Gmbh, 7000 Stuttgart | Speicher-korrektureinheit |
US4542453A (en) * | 1982-02-19 | 1985-09-17 | Texas Instruments Incorporated | Program patching in microcomputer |
DE3900187A1 (de) * | 1988-03-11 | 1989-09-28 | Mitsubishi Electric Corp | Ein-chip-mikrocomputer |
EP0383452A2 (de) * | 1989-01-31 | 1990-08-22 | Fujitsu Limited | Halbleiterspeicher mit einer Einrichtung zum Ersetzen defekter Speicherzellen |
Also Published As
Publication number | Publication date |
---|---|
FR2670601B1 (fr) | 1995-01-20 |
GB9026877D0 (en) | 1991-01-30 |
FR2670601A1 (fr) | 1992-06-19 |
GB2250838A (en) | 1992-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2416609C2 (de) | Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen | |
EP0011685B1 (de) | Programmierbare Speicherschutzeinrichtung für Mikroprozessorsysteme und Schaltungsanordnung mit einer derartigen Einrichtung | |
EP0512542B1 (de) | Datenschützende Mikroprozessorschaltung für tragbare Datenträger, beispielsweise Kreditkarten | |
DE2646162A1 (de) | Speicherersatzschaltung | |
DE4114410A1 (de) | Halbleiterbauelement mit nichtfluechtigem speicher | |
DE2225841C3 (de) | Verfahren und Anordnung zur systematischen Fehlerprüfung eines monolithischen Halbleiterspeichers | |
DE3345863A1 (de) | Ueberwachungsschaltung fuer rechner | |
DE2722124A1 (de) | Anordnung zum feststellen des prioritaetsranges in einem dv-system | |
DE2145709B2 (de) | ||
DE3243935A1 (de) | Verfahren und anordnung zur erkennung von digitalwoertern | |
EP1246033A1 (de) | Verfahren zur Überwachung konsistenter Speicherinhalte in redundanten Systemen | |
DE4040503A1 (de) | Nur-lese-speichervorrichtung | |
DE19652290A1 (de) | Mikrocomputer | |
DE102006036386A1 (de) | Mikroprozessorsystem zur Steuerung bzw. Regelung von zumindest zum Teil sicherheitskritischen Prozessen | |
EP1444700B1 (de) | Speichertest | |
DE4113590C2 (de) | Mikrocomputer | |
DE3210616A1 (de) | Rechner | |
DE3138989A1 (de) | Zusaetzliche funktionseinheit in einem mikroprozessor, mikroprozessorsystem und verfahren zu seinem betrieb | |
DE2242009C2 (de) | Verfahren und Anordnung zum Erkennen, ob im Mikroprogramm einer Datenverarbeitungsanlage vorgesehene Verzweigungsoperationen ausgeführt werden | |
DE3916811A1 (de) | Integrierte halbleiterschaltung mit einer internen nicht-wiederprogrammierbaren speichereinrichtung | |
DE4303406C2 (de) | Verfahren zur Inhaltsänderung eines Registers eines Mikrocomputers | |
EP0013885B1 (de) | Verfahren zur Vermeidung von unerwünschten Paritätsfehlersignalen bei der Paritätprüfung eines Registerfeldes und Paritätsprüfeinrichtung zur Durchführung des Verfahrens | |
DE4312090C2 (de) | Digitalprozessor | |
EP0246556B1 (de) | Schaltungsanordnung zum Überwachen einer Steuereinheit | |
DE10148157B4 (de) | Programmgesteuerte Einheit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OM8 | Search report available as to paragraph 43 lit. 1 sentence 1 patent law | ||
8139 | Disposal/non-payment of the annual fee |