DE4040503A1 - Nur-lese-speichervorrichtung - Google Patents

Nur-lese-speichervorrichtung

Info

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
Application number
DE19904040503
Other languages
English (en)
Inventor
Tsuneo Ohno
Yoshio Suzuiki
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.)
Honda Motor Co Ltd
Original Assignee
Honda Motor Co Ltd
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 Honda Motor Co Ltd filed Critical Honda Motor Co Ltd
Publication of DE4040503A1 publication Critical patent/DE4040503A1/de
Withdrawn 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)
  • 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.
DE19904040503 1990-12-11 1990-12-18 Nur-lese-speichervorrichtung Withdrawn DE4040503A1 (de)

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)

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

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

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

Patent Citations (6)

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