PatentDe  


Dokumentenidentifikation DE10028064B4 02.03.2006
Titel Computersystem mit ROM-Korrektureinheiten
Anmelder NEC Electronics Corp., Kawasaki, Kanagawa, JP
Erfinder Aoyama, Haruko, Tokio/Tokyo, JP
Vertreter Glawe, Delfs, Moll, Patentanwälte, 80538 München
DE-Anmeldedatum 07.06.2000
DE-Aktenzeichen 10028064
Offenlegungstag 22.03.2001
Veröffentlichungstag der Patenterteilung 02.03.2006
Veröffentlichungstag im Patentblatt 02.03.2006
IPC-Hauptklasse G06F 11/00(2006.01)A, F, I, ,  ,  ,   

Beschreibung[de]

Die Erfindung bezieht sich auf ein Computersystem mit ROM-Korrektureinheiten und insbesondere auf ROM-Korrektureinheiten zur Verwendung in einem Computersystem, das mit einer Pipeline-Verarbeitung betrieben wird, die auf einem in einem ROM gespeicherten Programm basiert.

Ein-Chip-Mikrocomputersysteme, die mit in Masken-ROMs gespeicherten Programmen arbeiten, werden für eine Vielzahl von Anwendungen zunehmend verwendet. Selbst wenn in dem Ein-Chip-Mikrocomputersystem ein Fehler in dem Programm gefunden wird, das in dem Masken-ROM gespeichert ist, kann der Fehler (Bug) aus dem dann existierenden Mikrocomputersystem nicht entfernt werden. Deshalb wird eine ROM-Korrekturtechnik vorgeschlagen, wobei die originale Befehlsgruppe in einem Programm, das einen Fehler enthält, durch eine modifizierte Befehlsgruppe ersetzt wird, die von dem Fehler frei ist. Der Ersatz der Befehlsgruppe wird im allgemeinen in der Stufe durchgeführt, wenn die CPU die oberste Adresse (oder Subjektadresse) der originalen Befehlsgruppe findet, die durch die modifizierte Befehlsgruppe zu ersetzen ist.

Die Patentveröffentlichung JP-A-8-95946 beschreibt ein Mikrocomputersystem mit einer ROM-Korrekturfunktion, wie es in 1 dargestellt ist. Das Mikrocomputersystem 93 umfaßt eine Pipelineverarbeitungs-CPU 87 mit einer darin enthaltenen Befehlsschlange, ein Register 86 zum Speichern der Subjektadresse der originalen Befehlsgruppe in dem Programm, das einen Fehler enthält, ein RAM 84 zum Speichern der obersten Adresse (oder Zweigadresse) einer modifizierten Befehlsgruppe, einen Abrufzeiger 81 zum Zählen und Anzeigen der momentanen Adresse des durch die Befehlsschlange abzurufenden Befehls, einen Komparator 85 zum Vergleichen der Adresse im Abrufzeiger 81 mit der Subjektadresse, die in dem Register 86 gespeichert ist, um ein Koinzidenz-Sig-nal (Auswahlsignal) 92 zu liefern, eine Zweigbefehls-Ausgabeeinheit 89 zum Liefern eines Zweigbefehlssignals zum Anzeigen eines Sprungs zu der Zweigadresse der modifizierten Befehlsgruppe und einen Selektor 88 zum Auswählen der momentanen Adresse für das ROM 83 oder das Zweigbefehlssignal, das von der Zweigbefehls-Ausgabeeinheit 89 geliefert wird, basierend auf dem Koinzidenz-Signal.

Der Selektor 88 liefert das Zweigbefehlssignal an die CPU 87 in der Stufe des Abrufens der Adresse, falls der Komparator 85 eine Koinzidenz ermittelt. Auf diese Weise umgeht die CPU 87 die originale Befehlsgruppe, die den Fehler enthält, und arbeitet stattdessen an der modifizierten Befehlsgruppe, die vom RAM 84 geliefert wird.

Bei der vorgeschlagenen ROM-Korrekturtechnik wird die Subjektadresse der originalen Befehlsgruppe, die den Fehler enthält, in dem Register 86 eingestellt, bevor die CPU 87 an dem Programm arbeitet.

Falls eine Anzahl von Fehlern in getrennten Teilen des im Masken-ROM 83 gespeicherten Programms gefunden wird, muß die ROM-Korrekturtechnik die Prioritätsfolge zwischen der Anzahl von Subjektadressen anzeigen und die CPU 87 muß korrekt die Prioritätsfolge entscheiden, was jedoch eine komplizierte Prozedur erfordert.

Aus der EP-A-0 640 916 und der US-A-5,799,144 ist ein Computersystem mit einer CPU für eine Pipelineverarbeitung gemäß dem Oberbegriff des Hauptanspruchs bekannt.

Diese haben ebenfalls das oben genannte Problem mit der Prioritätsentscheidung für eine Mehrzahl von Subjektadressen bzw. Korrektureinheiten.

Zusammenfassung der Erfindung

Es ist deshalb die Aufgabe der Erfindung, ein Computersystem für eine Pipelineverarbeitung zu schaffen, das den Ablauf einer Vielzahl von ROM-Korrektureinheiten erkennen kann, wodurch es möglich wird, die korrekte Reihenfolge der Subjektadressen und somit der aufzurufenden ROM-Korrektureinheit zu steuern.

Diese Aufgabe wird durch die Merkmale des Hauptanspruchs gelöst.

Eine vorteilhafte Ausführungsform zeigt der Unteranspruch.

Da in Übereinstimmung mit dem Computersystem der Erfindung der Flaggenerator der ROM-Korrektureinheit die CPU über den Betrieb der ROM-Korrektureinheit informiert, erkennt die CPU korrekt den Betrieb der ROM-Korrektureinheit. Falls somit eine Anzahl von ROM-Korrektureinheiten in dem Computersystem vorgesehen sind, erkennt die CPU korrekt die Prioritätsfolge der ROM-Korrektureinheiten, wodurch eine Anzahl von originalen Befehlsgruppen in einem Programm, das in einem ROM gespeichert ist, durch jeweilige modifizierte Befehlsgruppen ersetzt werden kann.

Die obige und andere Aufgaben, Merkmale und Vorteile der Erfindung werden aus der folgenden Beschreibung mit Bezug auf die beigefügten Zeichnungen deutlich.

Kurzbeschreibung der Zeichnungen

1 ist ein konventionelles Mikrocomputersystem mit einer ROM-Korrekturfunktion.

2 ist ein Computersystem mit einer ROM-Korrektureinheit gemäß einem ersten Ausführungsbeispiel der Erfindung. 3 ist eine beispielhafte Konfiguration der in 2 dargestellten CPU.

4 ist eine Konfiguration eines Beispiels der in 2 dargestellten ROM-Korrektureinheit gemäß einem ersten Ausführungsbeispiel der Erfindung.

5 ist ein Ablaufdiagramm für das Computersystem der

2.

6 zeigt ein Programm, das in dem in 2 dargestellten ROM gespeichert ist.

7 zeigt eine modifizierte Befehlsgruppe, die in dem RAM gespeichert ist und für das Computersystem der 2 verwendet wird.

8 ist eine Tabelle zum Zeigen der Berechnung der momentanen Adresse in dem Computersystem der 2.

9 ist ein anderer Teil des Flußdiagramms des Computersystems der 2.

10 zeigt ein in dem ROM der 2 gespeichertes Programm für den anderen Teil der 9.

11 zeigt die Befehlsgruppe, die in dem RAM gespeichert ist und für das Computersystem der 2 für den anderen Teil der 9 verwendet wird.

12 ist eine Tabelle zum Zeigen der Berechnung der momentanen Adresse in dem Computersystem der 2 für den anderen Teil der 9.

13 ist eine Konfiguration eines Beispiels der ROM-Korrektureinheit, die in 2 dargestellt ist, gemäß einem zweiten Ausführungsbeispiel der Erfindung.

Bevorzugtes Ausführungsbeispiel der Erfindung

Nun wird die vorliegende Erfindung im einzelnen mit Bezug auf die beigefügten Zeichnungen beschrieben, wobei ähnliche Bauteile mit entsprechenden Bezugsziffern versehen sind.

Gemäß 2 umfaßt ein Computersystem gemäß dem ersten Ausführungsbeispiel der Erfindung eine CPU 51 zum Betrieb mit Pipelineverarbeitung, ein ROM 52, das ein Programm für die CPU 51 speichert, einer ROM-Korrektureinheit 53 mit einer ROM-Korrekturfunktion, einem Systemtaktgenerator 54 zur Erzeugung eines Systemtakts, einer Anzahl von Bussen 56 bis 58 und einer Systemtaktleitung 59.

Das Computersystem ist als Mikrocomputersystem implementiert, das auf einem Ein-Chip-IC gebildet ist. Obwohl eine einzelne ROM-Korrektureinheit 53 in 2 dargestellt ist, sind in dem Computersystem eine Anzahl von ROM-Korrektureinheiten 53 vorgesehen. Die CPU 51 wählt eine der ROM-Korrektureinheiten 53 basierend auf der momentanen Adresse des abzurufenden Befehls. Das Mikrocomputersystem umfaßt ferner einen RAM und einen Satz externer Schnittstellen (nicht dargestellt), beispielsweise zum Empfang modifizierter Befehlsgruppen.

Die Pipelineverarbeitung hat eine Anzahl (5 in diesem Fall) von Verarbeitungsstufen für jeden Befehl, einschließlich einer Befehlsabruf stufe (IF), bei der ein Befehl aus dem ROM gelesen wird, einer Befehlsdekodierstufe (ID), bei der der Code des Befehls dekodiert wird, um die Daten, die im internen Register der CPU gespeichert sind, zu lesen, eine Ausführungsstufe (EX), in der der Befehl ausgeführt wird, und eine Speichereinschreibstufe (MEM), in der die CPU 51 die durch die Ausführung erhaltenen Daten in die Speicherzelle schreibt, und eine Rückschreibstufe (WB), in der die CPU 51 die vorherigen Daten mit dem Ergebnis der Ausführung aktualisiert. Bei diesem Pipelineverarbeiten kann die CPU 51 eine Anzahl von Befehlen parallel ausführen.

Die CPU 51, der ROM 52 und die ROM-Korrektureinheit 53 arbeiten mit dem Systemtakt, der von dem Systemtaktgenerator 54 über die Taktsignalleitung 59 zugeführt wird. Die CPU 51 berechnet die Adresse jedes Befehls für die Pipelineverarbeitung. Die CPU 51 liefert die Adresse des Befehls, der der IF-Stufe zugeordnet ist, an den ROM 52 und die ROM-Korrektureinheit 53 über den Adressbus 58 und liefert die Adresse des Befehls, der der Ex-Stufe zugeordnet ist, an die ROM-Korrektureinheit 53 über den PCEX-Stufenbus 57.

Der ROM 52 liefert den durch die momentane Adresse angegebenen Befehl an die ROM-Korrektureinheit 53 über den Datenbus 55. Die ROM-Korrektureinheit 53 liefert entweder den Befehl, der über den Datenbus 55 geliefert wurde, oder den Befehl, der durch die ROM-Korrekturfunktion ausgewählt wurde, über den Datenbus 50 an die CPU 51.

Gemäß der 3, die eine beispielhafte Konfiguratin der CPU 51 zeigt, umfaßt die CPU 51 ein PC-Register 18, das als Programmzähler arbeitet, ein IF/ID-Register 11 zum Speichern der Adresse und des Codes des Befehls, der in der ID-Stufe ist, ein ID/EX-Register zum Speichern der Adresse des Befehls, des Addendes und des Auswahlsignals, ein EX/MEM-Register zum Speichern der Adresse des Befehls, der in der MEM-Stufe steht, einen Dekoder 14 zum Dekodieren des Codes des Befehls, der vom Datenbus 50 geliefert wird, einen ersten Addierer 15 zum Zählen der Programmzählung, einen zweiten Addierer 16 zum Berechnen einer Zweigadresse, einen Selektor 17 zum Auswählen einer der Adressen, die von den Addierern 15 und 16 geliefert werden, um die ausgewählte Adresse dem Programmzähler oder dem PC-Register 18 zuzuführen.

Das PC-Register 18 speichert die Adresse des Befehls, der in der IF-Stufe steht, als Programmzählung und liefert die Programmzählung an den ersten Addierer 15 als Augend und an das IF/ID-Register 11 zum Speichern. Der erste Addierer 15 addiert "1" als Addend 22 zu dem Augend 21 und liefert die Summe an den Selektor 17. Der Selektor 17 wählt die Summenausgabe des ersten Addierers 15 und liefert dieselbe an den Adressbus 58 und an das PC-Register 18, falls das ID/EX-Register 12 kein Auswahlsignal 25 ausgibt. Das PC-Register 18 zählt die Programmzählung durch Aktualisieren der momentanen Zählung durch die Ausgabe vom ersten Addierer 15 hoch.

Das IF/ID-Register 11 speichert die Befehlsadresse, die von dem PC-Register 18 zugeführt wurde, und den Befehlscode, der durch den Datenbus 50 zugeführt wurde. Das IF/ID-Register liefert die gespeicherte Befehlsadresse an das ID/EX-Register 12 und liefert auch den darin gespeicherten Befehlscode an den Dekoder 14. Der Dekoder 14 dekodiert den Befehlscode, um eine spezifische Ausgabe, die auf dem Ergebnis des Dekodierens beruht, und ein Auswahlsignal 25 an das ID/EX-Register 12 zu liefern. Insbesondere liefert der Dekoder 14 "0", falls der dekodierte Befehl kein Zweigbefehl ist, und liefert die Differenz zwischen der Adresse des Zweigbefehls und der Adresse des Befehls, der in der EX-Stufe steht.

Das ID/EX-Register 12 liefert die darin gespeicherte Befehlsadresse an den zweiten Addierer 16 als Augend 23, liefert die spezielle Ausgabe, die vom Dekoder 14 geliefert wurde an den zweiten Addierer 16 als Addend 24 und liefert ein Auswahlsignal 25, falls vorhanden, an den Selektor 17. Der zweite Addierer 16 addiert den Addend 24 zu dem Augend 23, um ihre Summe an das EX/MEM-Register 13 und den Selektor 17 zu liefern.

Der Selektor 17 wählt die vom zweiten Addierer 16 zugeführte Summe, falls ein Auswahlsignal 25 von dem ID/EX-Register 12 geliefert wurde, wodurch das PC-Register 18 die Programmzählung durch die Zweigadresse aktualisiert.

Gemäß 4 umfaßt die ROM-Korrektureinheit 53 gemäß einem ersten Ausführungsbeispiel der Erfindung ein CA-Register 31 zum Speichern der Subjektadresse, eine Zweigbefehls-Ausgabeeinheit 32, ein CRF-Register 33 zum Einstellen eines ROM-Korrekturflags, Komparatoren 34 und 35, einem Selektor 36, einem CC-Register 37 zum Erzeugen eines Steuersignals zum Steuern des Betriebs der ROM-Korrekturfunktion, Haltevorrichtungen 38 und 39 und UND-Tore 41 und 42.

Das CA-Register 31 hat einen Eingang, der mit dem Peripherie-Datenbus 56 verbunden ist, und liefert die Subjektadresse 101 an die ersten Eingänge der Komparatoren 34 und 35, das CC-Register 37 hat einen Eingang, der mit dem Peripheriedatenbus 56 verbunden ist, und liefert ein Steuersignal 102 an die ersten Eingänge der UND-Tore 41 und 42. Die Haltevorrichtung 38 hat einen Eingang, der mit dem Adressbus 58 verbunden ist, und einen Ausgang, der mit dem Eingang der Haltevorrichtung 39 verbunden ist. Die Haltvorrichtung 39 liefert die momentane Adresse 104 an den zweiten Eingang des Komparators 34. Der Komparator 34 liefert ein Koinzidenzsignal 103 an den zweiten Eingang des UND-Tores 41, das ein Auswahlsignal 105 an den Selektor 36 liefert.

Der Selektor 36 hat einen ersten Eingang, der mit dem Datenbus 55 verbunden ist. Die Zweigbefehls-Ausgabeeinheit 32 liefert einen Zweigbefehl "JMP" an den zweiten Eingang des Selektors 36. Der Komparator 35 hat einen zweiten Eingang, der mit dem PCEX-Stufenbus 57 verbunden ist, und liefert ein Koinzidenz-Signal 106 an den zweiten Eingang des UND-Tores 42. Das UND-Tor 42 liefert seine Ausgabe oder ein Austauschsignal 107 an einen Einstelleingang des ORF-Registers 33. Das CRF-Register 33 hat einen Rückstelleingang, der mit dem Peripheriedatenbus 56 verbunden ist, und stellt ein Korrekturflag 108 ein und liefert es über den Peripheriedatenbus 56.

Der Selektor 36 wählt den momentanen Befehl, der vom ROM 52 geliefert wird, falls das Auswahlsignal einen niedrigen Pegel annimmt, und liefert den Zweigbefehl JMP, der von der Zweigbefehl-Ausgabeeinheit 32 geliefert wird, falls das Auswahlsignal 105 einen hohen Pegel annimmt, um den ausgewählten Befehl über den Datenbus 50 auszugeben.

5 zeigt ein Zeitablaufdiagramm zur Erläuterung beispielhafter Betriebe des Computersystems des vorliegenden Ausführungsbeispiels. Bevor das Computersystem betrieben wird, speichert die CP51 ein Subjektadressignal 101, das die Adresse "a+1" der originalen Befehlsgruppe anzeigt, die durch eine modifizierte Befehlsgruppe zu ersetzen ist, in dem CA-Register über den Peripheriebus 56. Die CPU 51 stellt auch das CC-Register 37 ein, um einen hohen Pegel des Steuersignals 102 auszugeben, und stellt das ORF-Register 33 zurück, um einen niedrigen Pegel des Korrekturflags 108 auszugeben.

6 zeigt eine beispielhafte Konfiguration des Programms, das in dem ROM 52 gespeichert ist, wobei Befehle "P", "Q", "R", "S", "T", "U"... "Z"... in den Adressen gespeichert sind, die mit der Adresse "a–1" beginnen. Die originale Befehlsgruppe, die einen Fehler enthält, umfaßt Befehle "R" "S" "T" "U"..., die in den Adressen "a+1" -, bis "a+9" gespeichert sind. Die Adresse "a+1" des Befehls "Z" ist als Rückkehradresse spezifiziert, da die Originalbefehlsgruppe, die den Fehler enthält, bei der Adresse "a+9" endet. Alle hier dargestellten Befehle sind normale Befehle und enthalten keinen Zweigbefehl, der das "Springen" zu einer weiteren Adresses außerhalb des ROMs 52 anzeigt. In dieser Konfiguration ist die Adresse "a+1" die Subjektadresse, wie oben beschrieben, auf die die ROM-Korrekturfunktion anzuwenden ist.

7 zeigt eine beispielhafte Konfiguration einer modifizierten Befehlsgruppe, die in dem RAM gespeichert ist. Die modifizierte Befehlsgruppe umfaßt Befehle "H", "I", "J", "K"... "M", die in den Adressen gespeichert sind, die bei der Adresse "b" beginnen und in der Adresse "b+5" enden. Diese Adressen sind normale Befehle und umfassen keinen Zweigbefehl, mit Ausnahme des Befehls "M", der das "Springen" an die Adresse "a+10" anzeigt.

8 zeigt einen Zeitplan zur Erläuterung der Adressen von Befehlen, die für die Pipeline-Verarbeitung berechnet werden, zusammen mit Zeitspannen Tn, die durch eine aufeinanderfolgende Zahl von Taktpulsen in dem Taktsystem angegeben werden.

Zurück zur 5 liefern in der Zeitspanne T1 der Adressbus 58, der Datenbus 50 und der PCEX-Stufenbus 57 Adressen "a", einen Befehlscode "P" bzw. die Adresse "a–3", und die momentane Adresse ist "a–1". Die CPU 51 verarbeitet den Befehl "P" in der IF-Stufe zur Zeitspanne "T1". Dann arbeitet die CPU 51 für die Pipeline-Verarbeitung dieser Befehle auf jeweiligen Stufen. Zur Zeitspanne "T2" tritt der Befehl "P" in die "ID"-Stufe ein, während der Befehl "Q" in die IF-Stufe eintritt.

Zur Zeitspanne "T3" nimmt das Koinzidenzsignal 103, das durch den Vergleich der momentanen Adresse 104 mit der Subjektadresse 103 erhalten wurde, einen hohen Pegel ein, wodurch das Auswahlsignal 105, das als Produkt des Koinzidenzsignals 103 und des Steuersignals 105 erhalten wurde, einen hohen Pegel einnimmt. In der ROM-Korrektureinheit 53 liefert der Selektor 36 einen Zweigbefehl "JMP", der von der Zweigbefehls-Ausgabeeinheit 32 geliefert wurde, an den Datenbus 50. Der Befehl P tritt in die EX-Stufe ein, der Befehl Q tritt in die ID-Stufe ein und der Zweigbefehl "JMP" tritt in die IF-Stufe ein.

Zur Zeitspanne "T4" tritt der Befehl S in die IF-Stufe ein, während jeder der anderen Befehle um eine Stufe weitergeht.

Zur Zeitspanne "T5" nimmt das Koinzidenzsignal 106, das durch Vergleich der Adresse auf dem PCEX-Stufenbus 57 mit der Subjektadresse 101 erhalten wurde, einen hohen Pegel ein, wodurch das Korrektursignal 107, das als Produkt des Koinzidenzsignals 106 und des Steuersignals erhalten wurde, einen hohen Pegel einnimmt. Das CRF-Register 33 wird durch das Korrektursignal 107 eingestellt, um das Korrekturflag 108 auf einen hohen Pegel einzustellen. Die Befehle "P", "Q", "JMP" gehen jeweils um eine Stufe voran. Die Ausführung von "JMP" in der EX-Stufe ändert die Adresse auf dem Adressbus 58 zur Adresse "b" des Befehls "H" in der modifizierten Befehlsgruppe, wodurch die momentane Adresse in die modifizierte Befehlsgruppe gelangt.

Zur Zeitspanne "T6" gehen die Befehle "Q" und "H" zur WB-Stufe bzw. IF-Stufe, und in der Zeitspanne "T7" geht der Befehl "H" weiter zur ID-Stufe, und der Befehl "I" geht in die IF-Stufe. Nach der Verarbeitung durch die CPU 51 geht der Befehl "M", der "Rückkehr zur Adresse a+10" anzeigt, weiter in die EX-Stufe, der Befehl "Z" gelangt in die IF-Stufe und geht zu folgenden Stufen Takt um Takt weiter. Auf diese Weise bringt das Programm die Programmumleitung der originalen Programmgruppe, die den Fehler enthält, zurück.

In 8 ist dargestellt, daß der Addend 24, der dem zweiten Addierer 16 zugeführt wird, "0" annimmt, während aufeinanderfolgende Befehle aus dem ROM gelesen werden, und "b–a–1" in der Zeitspanne T5 annimmt, um die Adresse "b" an den Adressbus 58 zum Springen von der momentanen Adresse an die Zweigadresse "b" auszugeben.

9 zeigt einen weiteren Teil des Zeitablaufdiagramms in dem Computersystem der 2, wobei ein normaler Zweigbefehl in "X" in der Adresse "a" des ROM-Bereichs gespeichert ist und somit die ROM-Korrektureinheit nicht für den Austausch der Befehlsgruppe verwendet wird. 10 zeigt die Befehlsgruppe, die einen Zweigbefehl enthält, wie in 9 dargestellt ist, und 11 ist eine modifizierte Befehlsgruppe zu der von dem Befehl "X" der 10 gesprungen werden soll. Dieser Fall kann auftreten, wenn die im ROM gespeicherte Befehlsgruppe häufig durch eine Vielzahl von modifizierten Befehlsgruppen ersetzt wird, was von den Daten abhängt, die in dem Prozeß selbst erhalten werden, und die vor der Auslegung des ROMs erwartet werden.

In 10 ist der Befehl "X", der in der Adresse "a" gespeichert ist, ein normaler Zweigbefehl, der "JMP" zur Adresse "b" der modifizierten Befehlsgruppe angibt, wobei dessen Prozeß die ROM-Korrektureinheit 53 nicht verwendet. In 11 hat die modifizierte Befehlsgruppe eine oberste Adresse "b" und eine Endadresse "b+5", was einen Zweigbefehl anzeigt, der "JMP" zu Adresse "a+10" des ROM-Bereichs angibt.

12 zeigt den Vorgang der Berechnung der Adresse ähnlich zu 8. In der Zeitspanne T4 gehen, wie in 9 dargestellt ist, die Befehle "P" und "X" in die MEM-Stufe bzw. die EX-Stufe. Die CPU 51 führt den Befehl "X" aus und aktualisiert dabei die momentane Adresse durch die Adresse "b" und liefert die Adresse "b" über den Adressbus 58 und führt die modifizierten Befehle im RAM-Bereich aus.

Die CPU 51 führt den Befehl "M" aus, um zur Adresse "a+10" des ROM-Bereichs zurückzuführen, wodurch die CPU 51 aufeinanderfolgend die Befehle ausführt, die an der Adresse "a+10" in dem ROM-Bereich beginnen. In dieser Konfiguration wird der Zweigbefehl "JMP", der die momentane Adresse nicht basierend auf der ROM-Korrekturfunktion ersetzt, ausgeführt, wobei das Korrekturflag den niedrigen Pegel behält.

In dem Zeitablaufdiagramm der 9 erkennt die CPU 51, daß der Zweigbefehl "JMP", der die originale Befehlsgruppe ersetzt, die ROM-Korrekturfunktion nicht verwendet, durch Überwachen des Korrekturflags 108 in dem CRF-Register durch den Peripheriedatenbus 56. Auf diese Weise kann die Berechnung der Programmzählung korrekt durchgeführt werden.

Gemäß 13 ist eine ROM-Korrektureinheit gemäß einem zweiten Ausführungsbeispiel der Erfindung ähnlich dem ersten Ausführungsbeispiel mit der Ausnahme der Konfiguration, wobei der originale Befehl willkürlich ausgewählt werden kann.

Insbesondere umfaßt die ROM-Korrektureinheit 53A dieses Ausführungsbeispiels, zusätzlich zu der Konfiguration der 4, ein Befehlsregister 61 zum Speichern eines modifizierten Befehls zum Ersetzen des originalen Befehls, der einen Fehler enthält. Dieses Befehlsregister 61 hat einen Eingang, der mit dem Peripheriedatenbus 56 verbunden ist, und einen Ausgang, der mit dem zweiten Eingang des Selektors 46 verbunden ist.

Die CPU 51 speichert einen modifizierten Befehl in dem Befehlsregister 61, der zum Ersatz des originalen Befehls zu verwenden ist, durch Verwenden der ROM-Korrekturfunktion. In diesem Ausführungsbeispiel wird ein einzelner Befehl durch den modifizierten Befehl ersetzt, der in dem Befehlsregister 61 gespeichert ist.

Falls in dem vorliegenden Ausführungsbeispiel ein einzelner originaler Befehl einen Fehler aufweist, kann der originale Befehl durch den modifizierten Befehl unter Einsatz der ROM-Korrekturfunktion ersetzt werden, ohne eine Verarbeitung für einen Zweigbefehl und einen Rückkehrbefehl.

In den Ausführungsbeispielen der Erfindung stellt die ROM-Korrektureinheit ein Flag ein, das anzeigt, ob der Zweigbefehl ausgeführt wird oder nicht. wenn somit eine Anzahl von Subjektadressen für die ROM-Korrekturfunktion in einem einzelnen Computersystem zugewiesen sind, kann die CPU die korrekte Reihenfolge der Subjektadressen erkennen.


Anspruch[de]
  1. Computersystem mit einer CPU (51) zum Betrieb in einer Pipelineverarbeitung, einem ROM (52), der ein durch die CPU (51) auszuführendes Programm speichert, und zumindest einer Vielzahl von ROM-Korrektureinheiten (53) einschließlich einer ersten Speichereinheit (31) zum Speichern der Subjektadresse einer originalen Befehlsgruppe in dem Programm, das einen Fehler enthält, einer zweiten Speichereinheit (60) zum Speichern einer modifizierten Befehlsgruppe zum Ersatz der originalen Befehlsgruppe durch die modifizierte Befehlsgruppe, die eine Zweigadresse enthält, einem Komparator (34) zum Vergleichen der momentanen Adresse des momentanen Befehls, der von dem ROM (52) ausgelesen wird, mit der Subjektadresse, und einem Selektor (36) zum Auswählen der momentanen Adresse oder der Zweigadresse basierend auf dem Ergebnis des Vergleichs durch den Komparator (34), gekennzeichnet durch einen Korrekturflag-Generator (33) zum Einstellen eines ROM-Korrekturflags (108), wenn die modifizierte Befehlsgruppe (z.B. JMP) basierend auf der Zweigadresse in der CPU (51) in der Pipeline ausgeführt wurde, wobei die aktive der ROM-Korrektureinheiten (53) das ROM-Korrekturflag über einen Datenbus (56) an die CPU (51) liefert.
  2. Computersystem nach Anspruch 1, wobei die modifizierte Befehlsgruppe von außerhalb des Computersystems zugeführt wird.
Es folgen 11 Blatt Zeichnungen






IPC
A Täglicher Lebensbedarf
B Arbeitsverfahren; Transportieren
C Chemie; Hüttenwesen
D Textilien; Papier
E Bauwesen; Erdbohren; Bergbau
F Maschinenbau; Beleuchtung; Heizung; Waffen; Sprengen
G Physik
H Elektrotechnik

Anmelder
Datum

Patentrecherche

Patent Zeichnungen (PDF)

Copyright © 2008 Patent-De Alle Rechte vorbehalten. eMail: info@patent-de.com