-
Diese Erfindung bezieht sich auf einen integrierten
Schaltkreis mit einer Debug- oder Fehlerbeseitungsumgebung, und
insbesondere auf den integrierten Schaltkreis, der eine Software
leicht ausprüfen kann und geeignet ist für ein eingebautes
Programm für den integrierten Schaltkreis, wie z.B. ein ASIC
(anwendungsspezifischer Integrierter Schaltkreis), in den ein
Microcomputer eingebaut ist.
-
Gewöhnlich wird eine eingebaute Software für ein Produkt, in
dem ein Microcomputer enthalten ist, durch die Verwendung
eines Emulations- und Testadapters (der nachfolgend als "ICE"
bezeichnet wird), der den Betrieb des Microcomputers
simulieren kann, ausgeprüft. Diese Art von ICE weist eine in Fig. 3
gezeigte Struktur auf. In Fig. 3 ist eine Buchse 52 für einen
Microcomputer LSI, der auf einem Zielrechner 50 des den Micro-
Computer aufweisenden Produkts vorgesehen ist, über ein Kabel
54 mit einem Prüfkopf 56 verbunden, der einen Microcomputer-
Chip 58 aufweist. Der Prüfkopf 56 ist mit einem Körper 62 des
ICE verbunden.
-
Bei dem ICE, das eine derartige Struktur aufweist, wirkt der
Prüfkopf 56, auf dem dieselbe Art von Microcomputer-Chip 58
wie die für den Zielrechner 50 verwendete angeordnet ist, als
ein Interface für die Verbindung des Zielrechners 50 mit dem
ICE-Körper 62, so daß der ICE-Körper 62 auf dieselbe Weise
arbeitet, wie wenn er auf der Buchse 52 angeordnet ist.
Dementsprechend kann ein Hardware und Software aufweisendes
System durch die Durchführung einer Emulation des Zielrechners
50 und einer Ausführung/Analyse eines Teilbefehls ausgeprüft
werden.
-
Bei dem oben erwähnten ICE beinflußt jedoch eine Länge des
Kabels 54, nämlich ein Abstand zwischen dem Zielrechner 50 und
dem Prüfkopf 56 eine Signalverzögerung, eine
Belastungskapazität, einen Störabstand, etc. Deshalb ist es bei der
Konstruktion des Zielrechners 50 notwendig, einen konstruktiven
Sicherheitsabstand festzulegen, nachdem die Verbindung zwischen
dem Zielrechner und dem ICE angemessen in Betracht gezogen
worden ist. Wenn unter einem tatsächlichen Betriebszustand der
konstruktive Sicherheitsabstand auf einer Anbringungsstelle
den für die Verbindung mit dem ICE geschätzten auf einer
Entwicklungsstelle übersteigt, kann der ICE in einigen Fällen für
einen tatsächlichen Vorrichtungs-Debugbetrieb durch den
Einfluß von Rauschen unbrauchbar gemacht werden. Wenn eine
Betriebsfrequenz des Microcomputers erhöht wird, wird es
schwieriger, den ICE unter dem Einfluß des Rauschens in einer
Debugumgebung des tatsächlichen Rechners zu verwenden.
Darüberhinaus ist, wenn der Zielrechner 50 vergrößert wird, nach der
Erweiterung der Software ein höherer Arbeitsaufwand zur
Erweiterung dieser als zur Konstruktion von Hardware notwendig.
Dementsprechend dient der ICE hauptsächlich als
Debugvorrichtung der Software und wird bei der Entwicklung der Software
unerläßlich. Insbesondere, wenn ein einen Microcomputer
aufweisendes ASIC (das nachfolgend als ein "Microcomputer-ASIC"
bezeichnet ist) für einen bestimmten Anwender in dem
Zielrechner 50 verwendet wird, ist es notwendig, einen eigenen ICE für
den bestimmten Anwender zu entwickeln, der für den
Microcomputer-ASIC verwendet wird. Die Entwicklung des eigenen ICE für
den bestimmten Anwender bürdet dem Anwender jedoch die hohen
Entwicklungskosten auf, die fast ebenso hoch sind, wie die für
das Microcomputer-ASIC. Aus diesem Grund wird es gewöhnlich
schwierig, nach der Entwicklung des Microcomputer-ASIC jeden
bestimmten ICE zu liefern.
-
Es ist eine Aufgabe der vorliegenden Erfindung, einen
integrierten
Schaltkreis mit einer Debugumgebung zu schaffen, der
dieselbe Debugfunktion des Systems aufweist wie derjenige
eines ICE, ohne daß nach der Konstruktion eines Systems ein
übermäßiger Sicherheitsabstand für die Verbindung zwischen
einem Zielrechner und dem ICE abgeschätzt wird, der in der
Lage ist, durch einen externen Hostcomputer eine Emulation
durchzuführen, und der im Hinblick auf die Kosten für einen
Microcomputer-ASIC für einen bestimmten Anwender geeignet ist.
-
Erfindungsgemäß ist gemäß Anspruch 1 ein integriertes
Schaltkreissystem vorgesehen, in dem ein Programm, das durch das
Verstehen des Inhalts eines Befehls, der von einem
Hostcomputer gegeben wird, ausgeführt werden kann, gespeichert ist, und
auch ein festes Programm gespeichert ist, das eine
Basissoftware für die Fehlerbeseitigung bildet, wobei das System
dadurch gekennzeichnet ist, daß das feste Programm in einem
ausschließlichen Bereich für die Fehlerbeseitigung im Programm
gespeichert ist, der von einem Bereich für das Anwender-ROM
getrennt ist, wobei das System weiterhin einen integrierten
Schaltkreis bildet, der eine Unterbrechungsschaltung zur
Unterbrechung der Ausführung eines Anwenderprogramms, wenn die
Fehlerbeseitigungsfunktion ausgeführt werden soll, und einen
E/A-Port für die Kommunikation mit einem Hostcomputer
aufweist, wobei das integrierte Schaltkreissystem in einen
Microcomputer-ASIC-Chip für spezielle Anwendung integriert ist, der
in Form eines Chips mit einem Microprozessor als Kern und
einer Kombination aus verschiedenen Funktionen eines Anwender-
ROM, eines RAM und eines Peripherie-LSI vorliegt, und daß eine
Fehlerbeseitigung im System für ein Programm, das im Anwender-
ROM und im RAM des ASIC gespeichert ist, ausgeführt werden
kann, wobei das Fehlerbeseitigungs-ROM die jeweiligen Befehle
für die Ausführung empfängt, die vom Hostcomputer über den
E/A-Port übertragen werden, und die ausgeführten Ergebnisse
zum Hostcomputer zurückgeführt werden, wenn der
anwenderspezifische Microcomputer-IC ausgeprüft wird.
-
Bei dem erfindungsgemäßen integrierten Schaltkreis mit der
Debugumgebung ist ein Teil der Software für die
Fehlerbeseitigung im Programm, der im Fehlerbeseitigungs-ROM gespeichert
ist, ein Mindestprogramm zur Verarbeitung eines Teils,
abhängig von der Hardwarestruktur des Microprozessors, der als
ein Kern verwendet werden soll, wie z.B. Lesen/Schreiben von
in einem Speicher gespeicherten Daten, Ausführung eines
Befehls, Bezug auf eine Änderung eines Registers, etc., und auch
ein Verarbeitungsprogramm der niedrigsten Stufe, das
gewöhnlich auf eine Funktion anwendbar ist, die ein Ziel der
Verarbeitung durch die Fehlerbeseitigungs-Software auf dem
Hostcomputer ist. Zum Beispiel weist das Verarbeitungsprogramm
diejenigen Teile auf, die für die Kommunikation mit dem
Hostcomputer Adressendaten über den E/A-Port lesen können und die
Ausgangsdaten auf den E/A-Port übertragen. Der Hostcomputer
schafft durch Kombination dieser Funktionen des
Verarbeitungsprogramms einen Speicherauszugsbefehl (Auflistung von
Speicherinhalten). Somit kann ein in dem ROM und dem RAM des ASIC
gespeichertes Programm leicht von dem externen Hostcomputer
ausgeprüft werden.
-
Anspruch 1 ist gegen die Offenbarung der Druckschrift Wescom
conference record, Band 32, November 1988, Seiten 1-4, North
Hollywood, CA, US, C. MELEHR: "M 88000 DEVELOPMENT TOOLS"
abgegrenzt.
-
Bevorzugte Ausführungsformen der vorliegenden Erfindung werden
nachfolgend detailliert unter Bezugnahme auf die beigefügten
Zeichnungen beschrieben.
-
Es zeigt:
-
Fig. 1 ein Blockdiagramm eines wichtigen Teils eines
integrierten Schaltkreises mit einer Debugumgebung gemäß
einer Ausführungsform der vorliegenden Erfindung;
-
Fig. 2 ein konkretes Diagramm einer Unterbrechungsschaltung
gemäß einer Ausführungsform der vorliegenden Erfindung;
und
-
Fig. 3 ein Strukturdiagramm eines herkömmlichen
Emulationsund Testadapters.
-
Unter Bezugnahme auf Fig. 1 weist nun ein Microcomputer-ASIC-
Chip 10 eine Kern-CPU 12, ein Anwender-ROM (14), das ein
Programm für eine bestimmte Anwendung aufweist, ein RAM 16, das
ein einfaches Programm zur Fern-Ausprüfung (das nachfolgend
als "Monitorprogramm" bezeichnet ist) aufweist, eine
zusätzliche Unterbrechungsschaltung 20 für eine Fehlerbeseitigung,
einen Adressen-Decodierschaltkreis 30, einen E/A-Port 32 zur
Übermittlung von Eingangs-/Ausgangsdaten auf den
Microcomputer-ASIC, einen Kommunikations-E/A-Port 34 für eine
Fehlerbeseitigung, einen Datenbus 36 für die Zwischenverbindung mit
diesen Bauteilen, einen Adressenbus 38, eine
Zeitsteuerungsleitung 40 und dgl. auf. Die zusätzliche
Unterbrechungsschaltung 20 für die Fehlerbeseitigung weist drei Blöcke eines
Schaltkreis-Blocks 22 für die Erzeugung einer Konstante, der
ein Unterbrechungsschaltungs-Block für die Programmausführung
ist, einen Vergleichsschaltungs-Block 24 und einen
Schreibschaltungs-Block 26 für Vergleichswerte zur Vorbereitung der
Unterbrechung der Programmausführung auf.
-
Die jeweiligen in der zusätzlichen Unterbrechungsschaltung 20
für die Fehlerbeseitigung enthaltenen Schaltkreisblöcke
arbeiten wie folgt:
-
Der Vergleichsschaltungsblock 24, der ein EX-NOR-Gatter - und
ein NAND-Gatter - aufweist, vergleicht immer einen in dem Flip-
Flop gespeicherten Wert mit einem über den Adressenbus 38 von
der Kern-CPU 12 übertragenen Wert. Die Kern-CPU 12 belegt in
den folgenden beiden Fällen den Adressenbus 38 mit einer
Adresse:
-
(1) ein Datenzugang zu einem (Schreib- und Lese-) Speicher;
-
und
-
(2) eine Befehlsauslesung (Lesen eines folgenden Befehls von
dem Speicher).
-
Wenn in einem der beiden Fälle die miteinander verglichenen
Adressenwerte gleich sind, liefert der Vergleichsschaltungs-
Block 24 dem Schaltkreis-Block 22 für die Erzeugung einer
Konstante ein Trigger-Signal.
-
Der Schaltkreis-Block 22 für die Erzeugung einer Konstante
weist den Schaltkreis für die Erzeugung einer Konstante und
einen Bus-Arbitrationsschaltkreis auf, die jeweils Flip-Flops,
AND-Gatter, NOR-Gatter, Inverter, etc. aufweisen. Der
Schaltkreis für die Erzeugung einer Konstante erzeugt eine vorher
festgelegte (feste) Konstante, d.h. einen Befehlscode, um die
Kern-CPU 12 dazu zu bringen, einen Software-Interrupt
auszuführen, was für jede Art von Kern-CPU 12, die verwendet werden
soll, einzigartig ist. Der Bus-Arbitrationsschaltkreis
beurteilt das von dem Vergleichsschaltungs-Block 24 übermittelte
Trigger-Signal und ein von der Kern-CPU 12 übermitteltes
Befehlsauslesungs-Signal. Weiterhin synchronisiert der
Bus-Arbitrationsschaltkreis von dem Schaltkreis für die Erzeugung
einer Konstante erzeugte Daten mit einem Buszyklus der Kern-CPU
12 und belegt den mit der Kern-CPU 12 verbundenen Datenbus 36
mit den synchronisierten Daten. Da das
Befehlsauslesungs-Signal und der Buszyklus der Kern-CPU 12 jeweils von der
verwendeten CPU abhängen, wird für jede CPU eine andere Art von Bus-
Arbitrationsschaltkreis verwendet.
-
Dem Schreibschaltungs-Block für Vergleichswerte 26, der eine
Vielzahl von Flip-Flop-Anordnung aufweist, werden die Daten
zugeführt, die über den Datenbus 36 durch einen Schreibvorgang
der Kern-CPU 12 übertragen werden. Da der Schreibvorgang der
Kern-CPU 12 von jeder Art der in dem Microcomputer-ASIC zu
verwendenden CPU abhängt, wird im allgemeinen ein
"E/A-Zugriffs-Signal",
ein "Speicherzugriffs-Signal", ein "Schreib-
Signal", etc. dadurch abgeändert, daß der Kern-CPU 12
ermöglicht wird, einen "E/A-Befehl" oder einen
"Speicher-Schreibbefehl" auszuführen. Dementsprechend können die über den
Datenbus 36 zu übertragenden Daten durch Verwendung dieser
Signalleitungen dem Vergleichsschaltungs-Block zugeführt werden.
-
Nachfolgend wird eine Arbeitsfolge für den Fall beschrieben,
daß ein Zielrechner, auf der der Microcomputer-ASIC-Chip 10
gelagert ist, der die oben erwähnten Schaltkreisblöcke
aufweist, zur Ausprüfung eines Anwenderprogramms in dem Microcom-
Puter-ASIC-Chip 10 mit einem Hostcomputer verbunden ist:
-
(1) Start:
-
Auf der Hostseite wird zum Initiieren des Microcomputer-ASIC-
Chips 10 ein Zeichen "R" (Rücksetzzeichen) über eine
Kommunikationsleitung auf den Microcomputer-ASIC-Chip 10 übertragen.
Der Microcomputer-ASIC-Chip 10 wartet unter Steuerung eines in
dem Fehlerbeiseitungs-ROM 18 des Microcomputer-ASIC-Chips 10
gespeicherten Monitorprogramms auf einen Eingang des Zeichens
über die Kommunikationsleitung. Nach dem Empfang des Zeichens
von der Hostseite analysiert der Microcomputer-ASIC-Chip 10
das Zeichen, in diesem Fall das Rückssetzzeichen, führt ein
Starten eines Monitorprogramms aus, wie z.B. das
Initialisieren von in einem Registerspeicher-Bereich gespeicherten Daten
zur Steuerung des Monitorprogramms, und ein Initialisieren
eines Schaltkreises, wie z.B. eine Rückstellung der
Vergleichsschaltung 24, und wartet dann auf einen Wiedereintritt des
Zeichens über die Kommunikationsleitung.
-
(2) Setzen einer Unterbrechungsadresse:
-
Wenn ein Anwender einen Befehl zum Setzen der
Unterbrechungsadresse durch die Tastatur eines Hostcomputers eingibt,
analysiert ein Fehlerbeseitigungsprogramm auf der Hostseite den
Befehl und überträgt ein Zeichen "B" (Unterbrechungszeichen) und
Unterbrechungs-Adressdaten über die Kommunikationsleitung auf
den Microcomputer-ASIC-Chip 10.
-
Der Microcomputer-ASIC-Chip 10 analysiert das
Berechtigungszeichen, in diesem Fall das Unterbrechungszeichen, belegt die
Vergleichsschaltung 24 mit den Unterbrechungs-Adressdaten und
wartet dann auf einen Wiedereintritt des Zeichens über die
Kommunikationsleitung.
-
(3) Ausführung eines Anwenderprogramms und Auftreten der
Unterbrechung:
-
Wenn der Anwender einen Befehl zur Ausführung des in dem
Anwender-ROM 14 und dem Anwender-RAM 16 gespeicherten
Anwenderprogramms durch die Tastatur eines Hostcomputers eingibt,
analysiert das Fehlerbeseitigungsprogramm auf der Hostselte den
Befehl, überträgt ein Zeichen "G (Lauf-Zeichen) und
Adressdaten zum Starten der Ausführung über die Kommunikationsleitung
auf den Microcomputer-ASIC-Chip 10 und wartet dann auf einen
Eintritt eines Zeichens, das das Auftreten einer Unterbrechung
anzeigt, vom Microcomputer-ASIC-Chip 10.
-
Der Microcomputer-ASIC-Chip 10 analysiert das Zeichen, in
diesem Fall das Lauf-Zeichen, das von der Hostseite übertragen
wird, führt die in dem Registerspeicher-Bereich gespeicherten
Daten zurück zu den jeweiligen Registern und springt dann auf
die bestimmte Adresse, wodurch das Anwenderprogramm ausgeführt
wird.
-
Wenn das Anwenderprogramm so ausgeführt wird, daß es mit einer
Unterbrechungsadresse fortfährt, arbeitet die
Vergleichsschaltung 24 so, daß sie einen Software-Interrupt verursacht und
das Monitorprogramm hat wieder die Steuerung. Das
Monitorprogramm informiert die Hostseite über das Auftreten der
Unterbrechung, indem das Zeichen auf die Hostseite übertragen wird,
und wartet auf einen Wiedereintritt des Zeichens vom
Hostcomputer über die Kommunikationsleitung.
-
Eine Wiederholung der oben bei (2) und (3) beschriebenen
Arbeitsfolge bewirkt eine Emulation des Anwenderprogramms des
Microcomputer-ASIC-Chips 10 auf der Hostcomputerseite, was zur
Ausführung einer Fehlerbeseitigung im System führt.
-
Es werden nur etwa 4 % des Bereichs des 8-Bit CPU-Chips für
den zusätzlichen Einbau des kleinen Monitorprogramms in das
Microcomputer-ASIC benötigt, obgleich das Fehlerbeseitigungs-
ROM zum Speichern des Monitorprogramms in den Microcomputer-
ASIC-Chip 10 eingebaut wird.
-
Obwohl das Monitorprogramm entsprechend jeder Art der Kern-CPU
12 für den Zielrechner hergestellt werden muß, ist aufgrund
seiner geringen Größe der Arbeitsaufwand nach der Herstellung
des Monitorprogramms nicht größer als nach der Erweiterung
eines herkömmlichen bestimmten ICE. Sobald das
Fehlerbeseitigungs-Hostprogramm auf der Hostcomputerseite, das in höherer
Programmiersprache beschrieben werden kann, vorbereitet ist,
liefert es eine bequeme Portabilität auf andere Computer und
eine Flexibilität bei der Verwendung in verschiedenen Arten
von Hostcomputern, so daß keine Notwendigkeit besteht, nur
einen bestimmten Hostcomputer zu verwenden.
-
Aus den oben erwähnten erfindungsgemäßen Ausführungsformen
geht hervor, daß das einfache Programm zur Fernausprüfung, das
während der Kommunikation mit dem externen Hostcomputer das
Anwenderprogramm in dem Microcomputer-ASIC ausprüfen kann, in
dem auf dem Microcomputer-ASIC-Chip 10 vorgesehenen
Fehlerbeseitigungs-ROM gespeichert ist. Weiterhin kann das einfache
Programm zur Fernausprüfung extrem klein sein, da es so
vorbereitet ist, daß es dem Fehlerbeseitigungs-Hostprogramm auf der
Hostcomputerseite fast die Ausführung von Fehlerbeseitigungs-
Unterstützung ermöglicht. Aus diesem Grund wird auch das auf
dem Microcomputer-ASIC vorgesehene Fehlerbeseitigungs-ROM
klein. Darüberhinaus wird dieselbe Emulationsfunktion wie
diejenige eines herkömmlichen ICE geliefert, so daß ein direkter
Fehlerbeseitungsvorgang leicht auf dem Microcomputer-ASIC dem
tatsächlichen Zielrechner durch den externen Hostcomputer, wie
z.B. einen PC, etc., ausgeführt werden kann. Somit kann
erwartet werden, daß ein Fehlerbeseitigungs-Programm mit hoher
Effektivität entwickelt wird.
-
Deshalb kann die vorliegende Erfindung die Fehlerbeseitigung
im System mit einer beachtlichen wirtschaftlichen Auswirkung
ausführen, ohne daß ein teurer bestimmter ICE für den
Microcomputer-ASIC speziell entwickelt wird. Weiterhin muß nach der
Erweiterung des Microcomputer-ASIC kein konstruktiver
Sicherheitsabstand mit dem ICE auf herkömmliche Weise geschätzt
werden.