DE4418892C2 - Mikrocomputer - Google Patents

Mikrocomputer

Info

Publication number
DE4418892C2
DE4418892C2 DE4418892A DE4418892A DE4418892C2 DE 4418892 C2 DE4418892 C2 DE 4418892C2 DE 4418892 A DE4418892 A DE 4418892A DE 4418892 A DE4418892 A DE 4418892A DE 4418892 C2 DE4418892 C2 DE 4418892C2
Authority
DE
Germany
Prior art keywords
cpu
sub
main cpu
program
microcomputer
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.)
Expired - Fee Related
Application number
DE4418892A
Other languages
English (en)
Other versions
DE4418892A1 (de
Inventor
Tetsu Tashiro
Yoshiki Cho
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE4418892A1 publication Critical patent/DE4418892A1/de
Application granted granted Critical
Publication of DE4418892C2 publication Critical patent/DE4418892C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31701Arrangements for setting the Unit Under Test [UUT] in a test mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/273Tester hardware, i.e. output processing circuits
    • G06F11/2736Tester hardware, i.e. output processing circuits using a dedicated service processor for test

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Microcomputers (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Description

Die vorliegende Erfindung betrifft einen Mikrocomputer.
Fig. 1 bis Fig. 4 stellen ein Betriebsbeispiel eines Mikrocomputerprogramms schematisch dar, welches erforder­ lich ist um eine Umgebung zum Testen oder Debuggen eines Multi-CPU-Systems des Standes der Technik zu realisieren.
Das dargestellte Beispiel des Standes der Technik betrifft den Fall der Ausführung eines Programms für die von Matsushita Electric Industrial Co., Ltd. hergestellten Mikrocomputer der Serie MN1880. Die MN1880-Serie weist einen Aufbau auf, bei welchem zwei Sätze einer CPU und ein Register im gleichen Speicherraum vorgesehen sind. Die bei­ den CPUs werden CPU a und CPU b genannt werden, und Fig. 2 bis Fig. 4 zeigen schematische Darstellungen, welche die Operationsfolgen der CPU a und der CPU b in zeitlicher Reihenfolge veranschaulichen.
Fig. 2 zeigt einen Zustand der beiden CPUs, die Anwei­ sungen abwechselnd ausführen. Wie in der schematischen Dar­ stellung der Fig. 1 gezeigt, wird insbesondere das durch die CPU a ausgeführte Programm aus einer Mehrzahl von An­ weisungen IN1a, IN2a . . . IN16a gebildet, und das durch die CPU b ausgeführte Programm wird aus einer Mehrzahl von An­ weisungen IN1b, IN2b . . . IN16b gebildet. Diese Anweisungen sind im gleichen Speicherraum unter bestimmten ihnen Zuge­ ordneten Adressen gespeichert.
Wie in Fig. 2 dargestellt, werden diese Anweisungen in einer derartigen Reihenfolge ausgeführt, daß die Anweisung IN1a der CPU a zuerst ausgeführt wird, dann die Anweisung IN1b der CPU b ausgeführt wird, gefolgt von der Ausführung der Anweisung IN2a der CPU a, der Anweisung IN2b der CPU b, der Anweisung IN3a der CPU a, der Anweisung IN3b der CPU b bis zur Ausführung der Anweisung IN16a der CPU a und der Anweisung IN16b der CPU b. Ein derartiger Betriebsmodus durch zwei CPUs, um Anweisungen abwechselnd auszuführen, wird automatischer Swapmodus genannt.
Fig. 3 und Fig. 4 zeigen einen Betrieb, wenn der Mikro­ computer den Modus durch Ausführen einer bestimmten Anwei­ sung umschaltet, wodurch einer der CPUs dazu veranlaßt wird, Anweisungen kontinuierlich in einem bestimmten Zeit­ abschnitt auszuführen. In Fig. 3 sind beide CPUs einmal rückgesetzt, weshalb "WAITA = 0, WAITB = 0" gesetzt ist, um den automatischen Swapmodus einzunehmen und die IN1a der CPU a, die IN1b der CPU b, die Anweisung IN2a der CPU a, die IN2b der CPU b bis zur Anweisung IN5a der CPU a und der IN5b der CPU b auszuführen. An dieser Stelle verläßt das System den automatischen Swapmodus mit "WAITB = 1", was ge­ setzt wird, um die CPU b zu stoppen, und danach werden die Anweisungen der CPU a in der Reihenfolge von IN6a, IN7a bis IN10a ausgeführt.
In Fig. 4 sind beide CPUs einmal rückgesetzt, so daß "WAITA = 0, WAITB = 0" gesetzt ist, um den automatischen Swapmodus einzunehmen, und die Anweisungen IN1a der CPU a und IN1b der CPU b werden ausgeführt. Da der CPU a-Modus gewünscht ist, ist an dieser Stelle "WAITB = 1" gesetzt, um die CPU b zu stoppen, und anschließend werden die Anwei­ sungen der CPU a in der Reihenfolge von IN2a, IN3a bis IN6a ausgeführt. Da ferner der CPU b-Modus an dieser Stelle ge­ wünscht ist, ist "WAITA = 1, WAITB = 0" gesetzt, um die CPU a zu stoppen, und anschließend werden die Anweisungen der CPU b in der Reihenfolge von IN2b, IN3b bis IN6b ausge­ führt. Danach werden der CPU a-Modus und der CPU b-Modus abwechselnd gesetzt, wie vorstehend beschrieben, und werden mehrere aufeinanderfolgende Anweisungen jeder CPU ab­ wechselnd ausgeführt.
In einem derartigen System des Standes der Technik tritt kein Konflikt beim Zugriff auf den Speicherraum auf, da zwei Mikrocomputer im Timesharing-Betrieb arbeiten. Von der Speicherraumseite betrachtet können die beiden CPUs daher auf Daten Zugriff nehmen, welche im Speicher mit den ent­ sprechenden Timings gespeichert sind, ohne daß das Hinzu­ fügen einer bestimmten Steuerschaltung erforderlich ist. Wenn ein derartiger Mikrocomputer getestet wird, ist es somit möglich, beide CPUs durch Zugriffnahme auf im Time­ sharing-Betrieb aktivierte Bussignale zu testen. Bezüglich der Programm-Entwicklungsumgebung ermöglicht es die Verwen­ dung des gleichen Speicherraums ferner, die beiden CPUs einfach durch Überwachen oder Steuern des Speicherraumes mittels einer Emulations-Steuereinrichtung in Echtzeit zu emulieren.
Obwohl das vorstehend beschriebene Beispiel des Standes der Technik auf einem Doppel-CPU-Aufbau basiert, arbeiten die beiden CPUs jedoch nicht gleichzeitig unabhängig voneinan­ der, sondern sind an den Timesharing-Betrieb gebunden. So­ mit weist der Aufbau gewöhnlich das Problem einer begrenz­ ten Geschwindigkeit des CPU-Betriebs auf.
Fig. 5 bis Fig. 10 zeigen Blockschaltbilder des Aufbaus eines von Hitachi Ltd. hergestellten-Mikrocomputers H8/570 (eines mit einem ISP ausgestatteten Mikrocomputers) als weiteres Beispiel des Standes der Technik, bei welchem die H8/500 als Haupt-CPU verwendet wird und ISP-Blöcke in verschiedenen periphe­ ren Funktionsblöcken vorgesehen sind. ISP bezeichnet einen "intelligenten Subprozessor", eine Art Sub-CPU, bei welcher eine Mehrzahl von Funktionen durch eine installierte EPROM- Basis programmiert werden kann. Fig. 9 und Fig. 10 sind Blockschaltbilder, welche den internen Aufbau des ISP- Blocks darstellen. Er ist in einem derartigen Aufbau ausge­ führt, daß eine in einem Mikroprogramm-Speichergebiet ge­ speicherte Programmroutine, welche einer durch einen pro­ grammierbaren Sequenzgenerator (nachstehend SCM genannt) spezifizierten Funktions-Nr. entspricht, mittels eines Adreßregisters indirekt bestimmt wird, so daß die durch die Programmroutine festgelegte Funktion ausgeführt wird.
Das Programm des ISP ist im Prinzip eine Sammlung von kurzen Modulen und sieht im Unterschied zur Debugger-Um­ gebung eines gewöhnlichen Mikrocomputers eine Debugger-Umgebung mittels eines Software-Simulators vor. Ein Pro­ grammierer prüft jedes der eine einzelne Funktion aufwei­ senden kurzen Module mittels des Simulators, um sicherzu­ stellen, daß der Modul die gewünschte Funktion ausführt, und kombiniert die Module gemäß einer im SCM geschriebenen Funktionstabelle, um dadurch verschiedene Funktionen zu erzielen. Durch Schreiben des Programms, welches im den EPROM, den SCM und die Adreßregister umfassenden Mikropro­ grammgebiet wie vorstehend beschrieben vervollständigt wird, wird der Mikrocomputer realisiert, welcher die ge­ wünschten Funktionen ausführt.
Da der ISP unabhängig von und parallel zu der Haupt-CPU läuft, ermöglicht es die Verwendung des ISP, einen hoch­ gradigen Echtzeitbetrieb der Funktionen auszuführen. Das Konzept des ISPs besteht jedoch im Programmieren durch Kombination von einfachen funktionalen Modulen, und daher benötigt der ISP die bei einem gewöhnlichen Mikrocomputer erforderliche Programm- Entwicklungsumgebung großen Maßstabs nicht. Aus diesem Grund ist die Echtzeit-Debugger-Umgebung für die Haupt-CPU und den ISP in dem mit dem ISP ausge­ statteten Mikrocomputer H8/570 nicht vorgesehen.
Wie vorstehend beschrieben, weist ein Mikrocomputer des herkömmlichen Multi-CPU-Systems, bei welchem eine Mehrzahl von CPUs auf einem Chip untergebracht ist, infolge des Problems des Chipentwurfs, des Gestaltungsproblems einer Mehrfachanschluß-Verkapselung und anderer Faktoren ver­ schiedene Grenzen auf beim Vorsehen bestimmter Anschlüsse für den Adreßbus, den Datenbus und den Steuerbus aus­ schließlich für die Sub-CPU, um das Testen des Mikrocom­ puters oder die Programmentwicklung für die Sub-CPU zu er­ leichtern. Versuche der Timesharing-Steuerung durch Zuwei­ sung einer Mehrzahl von Funktionen an einen Anschluß stoßen ferner an derartige Grenzen, wie die Timinggrenze und Pro­ bleme, wie beispielsweise die komplizierte Schaltung, und daher ist es sehr schwierig gewesen, das Zielprogramm durch gleichzeitiges Bereiben einer Mehrzahl von auf einem Chip untergebrachten CPUs oder MPUs zu debuggen.
Aus Elektronik 24/1990, S. 54-60, sind Mikroprozessor-Systeme bekannt, die so miteinander verbunden sind, daß die Zuverläs­ sigkeit der Systeme erhöht wird. So ist ein zweifach-modulares System offenbart, bei dem auf zwei CPU-Karten jeweils eine Master-Slave-Anordnung implementiert ist. Die CPUs der beiden Karten haben jeweils über ihren eigenen Bus Zugriff auf ihren eigenen Speicher und über den jeweiligen anderen Bus Zugriff auf den jeweiligen anderen Speicher.
Die DE 39 03 835 C2 offenbart eine Prüfvorrichtung zum Prüfen elektronischer Bausteine, die einen Mikroprozessor aufweisen, unter Verwendung eines Emulationsspeichers.
Aufgabe der Erfindung ist es, einen Mikrocomputer, der als Multi-CPU-System auf einem Chip untergebracht ist, zur Verfügung zu stellen, bei dem eine Sub-CPU, deren Programme oder Speicher getestet werden können, ohne daß dafür zusätzliche Anschlüsse für die Sub-CPU vorgesehen werden müssen.
Die Aufgabe wird durch den Mikrocomputer des Anspruchs 1, 3, oder 11 gelöst.
Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben.
Bei dem Mikrocomputer des Anspruchs 4 kann der Zugriff bei einem Prozeß erfolgen, der demjenigen des Standes der Technik gleicht, bei welchem der Haupt-CPU-Bus von der Haupt-CPU getrennt ist und der Zugriff direkt aus einem externen Port des Chips erfolgt, nämlich im Busisolationsmodus.
Der Mikrocomputer nach Anspruch 9 und Anspruch 10 ist dazu in der Lage, eine STOP-Anweisung auszu­ führen, um die Ausführung des Sub-CPU-Programms zu stoppen, und er ist unter der Steuerung der Haupt-CPU dazu in der Lage, eine Rückkehranweisung (RTB: Rückkehr aus dem Ab­ bruch) auszuführen, durch welche der Stopzustand des Sub- CPU-Programms aufgehoben wird, und die Routine kann zur ursprünglichen Routine zurückkehren, aus welcher die Routine abgezweigt ist. Die RTB-Anweisung kann ferner als eine Anweisung ausgeführt werden, die in einem Softwarepro­ gramm enthalten ist.
Bei dem Mikrocomputer nach Anspruch 1 und Anspruch 4 kann während eines Tests auf das Speichergebiet der Sub-CPU-Seite ferner aus der Haupt-CPU zugegriffen werden, wogegen gewöhnlich nur aus der Sub-CPU auf dasselbe zugegriffen werden kann. Das ermöglicht es, den Betrieb des Lesens aus einem Masken-ROM oder einem EPROM der Sub-CPU zu testen. Wenn ein RAM vorgesehen ist, welcher sowohl das Schreiben von Daten in ihn als auch das Lesen aus ihm ge­ stattet, dann kann ferner ein Logiktest der Sub-CPU-Seite ausgeführt werden, nachdem ein Programm zum Testen der Sub-CPU aus dem Haupt-CPU-Bus in den RAM zugeführt wurde, und ferner wird eine nachstehend im Zusammenhang mit Anspruch 6 zu beschreibende Wirkung erzielt.
Bei dem Mikrocomputer nach Anspruch 3 ist es ermöglicht, einen EPROM im Speichergebiet der Sub-CPU anzuordnen, und das Schreiben in den EPROM ist in gleicher Weise ermöglicht wie dasjenige in den EPROM des Haupt-CPU-Gebiets. Das heißt, es ist ermöglicht, sowohl für den Sub- CPU-Abschnitt als auch für den Haupt-CPU-Abschnitt einen EPROM mit einem Schreibfenster, welcher umgeschrieben wer­ den kann, oder einen OTP (einmal programmierbar) ROM vorzu­ sehen, in welchen der Anwender Programme schreiben kann.
Bei dem Mikrocomputer nach Anspruch 2, kann, wie im Zusammenhang mit Anspruch 3 be­ schrieben, nicht nur die Sub-CPU durch Zugreifen mittels des Haupt-CPU-Busses auf jene getestet werden, sondern kann ferner der Test-Rücksetzvektor von der Haupt-CPU-Seite um­ geschrieben werden. Daher kann die Ausführung der Anwei­ sungen an einer Zwischenstelle eines ROMs oder EPROMs des Programmgebiets gestartet werden, wobei es ermöglicht wird, ihn zum Programm-Debuggen oder zur Analyse eines defekten Erzeugnisses zu verwenden.
Bei dem Mikrocomputer nach Anspruch 6 und Anspruch 7 kann ein Zwischenergebnis der Programmausführung überprüft werden durch Unterbrechen des Programms im Laufe seiner Ausführung und Lesen des Zwischenergebnisses der Ausführung aus dem Schnittstellenregister zwischen der Sub-CPU und der Haupt-CPU mittels einer Abbruchroutine, da die Ausführung eines Programms in der Sub-CPU mittels eines Hardware-Abbruchs abgebrochen werden kann. Sie ist ferner wirkungsvoll beim Debuggen des im EPROM geschriebenen Programms oder beim Prüfen von Programmschritten, die im Masken-ROM stattfinden.
Zusätzlich zu den vorstehend beschriebenen Wirkungen gemäß Anspruch 6 und Anspruch 7 wird es bei der Sub-CPU gemäß An­ spruch 8 ermöglicht, eine Abbruchunterbrechung nur dank auszuführen, wenn ein Schleifenabschnitt des Programms mit einer vorbestimmten Häufigkeit wiederholt ausgeführt worden ist.
Bei dem Mikrocomputer nach Anspruch 9 und Anspruch 10 kann der Test unter der gleichen Bedingung nach Unterbrechen der Ausführung eines Testprogramms im Laufe seiner Ausführung mittels der STOP-Funktion fortge­ setzt werden durch umschreiben des Inhalts des RAMs durch eine Einrichtung mit der Funktion gemäß Anspruch 1 und Laden eines neuen Programms, selbst wenn die RAM-Größe der Sub-CPU des Anspruchs 6 auf eine bestimmte Größe beschränkt ist.
Bei dem Mikrocomputer nach Anspruch 11 wird das Zielprogramm der Sub-CPU in den RAM aus dem Haupt- CPU-Bus durch eine Einrichtung mit der in Anspruch 1 be­ schriebenen Funktion gebootet, um dadurch das Programm durch die Rücksetzfunktion auszuführen. Das befähigt ihn dazu, das zu entwickelnde Programm zu emulieren.
Ferner versetzt ihn die Abbruchunterbrechung der Programm­ ausführung durch Einrichtungen mit der Funktion gemäß An­ spruch 6, Anspruch 7, Anspruch 9 und Anspruch 10 dazu in die Lage, die Programmausführung an einer bemerkenswerten Stelle zu unterbrechen und den Registerwert an der Stelle aus dem Haupt-CPU-Bus mittels des RAMs oder eines besonde­ ren Registers zu lesen. Ferner können der Abbruchstelle folgende Anweisungen durch die RTB-Anweisung ausgeführt werden und kann die während der Programmentwicklung zu ver­ wendende Debugger-Funktion durch Steuern des Emulations- Chips von außen realisiert werden.
Da sich der Ausgang aus dem Speicher auf der Sub-CPU-Seite in die Sub-CPU-Seite und die Haupt-CPU-Seite verzweigt, nachdem er aus dem analog betriebenen Abtastverstärker aus­ gegeben wurde, kann bei dem Mikrocomputer nach Anspruch 5 die Lesecharakteristik äquivalent realisiert werden und kann ferner eine zunehmende Fläche auf der Stufe der Ent­ wurfsgestaltung unterdrückt werden.
Es folgt die Beschreibung von Ausführungsformen anhand der Figuren.
Von den Figuren zeigen:
Fig. 1 eine schematische Darstellung, welche einen Speicherzustand eines Programms im Speicher eines herkömmlichen Multi-CPU-Systems zeigt;
Fig. 2 eine schematische Darstellung, welche ein Beispiel des Betriebs zur Ausführung eines Mikrocomputerprogramms zeigt, das erforderlich ist, um eine Umgebung zum Testen oder Debuggen eines herkömmlichen Multi-CPU-Systems zu realisieren;
Fig. 3 eine schematische Darstellung, welche ein Beispiel des Betriebs zur Ausführung eines Mikrocomputerprogramms zeigt, das erforderlich ist, um eine Umgebung zum Testen oder Debuggen eines herkömmlichen Multi-CPU-Systems zu realisieren;
Fig. 4 eine schematische Darstellung, welche ein Beispiel des Betriebs zur Ausführung eines Mikrocomputerprogramms zeigt, das erforderlich ist, um eine Umgebung zum Testen oder Debuggen eines herkömmlichen Multi-CPU-Systems zu realisieren;
Fig. 5 ein Blockschaltbild, welches ein Beispiel des Aufbaus eines herkömmlichen mit ISP ausgestatteten Mikrocomputers darstellt;
Fig. 6 ein Blockschaltbild, welches ein Beispiel des Aufbaus eines herkömmlichen mit ISP ausgestatteten Mikrocomputers darstellt;
Fig. 7 ein Blockschaltbild, welches ein Beispiel des Aufbaus eines herkömmlichen mit ISP ausgestatteten Mikrocomputers darstellt;
Fig. 8 ein Blockschaltbild, welches ein Beispiel des Aufbaus eines herkömmlichen mit ISP ausgestatteten Mikrocomputers darstellt;
Fig. 9 ein Blockschaltbild, welches ein Beispiel des Aufbaus des ISPs eines herkömmlichen mit ISP ausgestatteten Mikrocomputers darstellt;
Fig. 10 ein Blockschaltbild, welches ein Beispiel des Aufbaus des ISPs eines herkömmlichen mit ISP ausgestatteten Mikrocomputers darstellt;
Fig. 11 ein Blockschaltbild, welches den Aufbau von Steuerabschnitten einer Testschaltung und einer Debugger-Schaltung einer auf einem Chip untergebrachten Sub-CPU in einer Ausführungsform des erfindungsge­ mäßen Mikrocomputers zeigt;
Fig. 12 ein Blockschaltbild, welches den Grobaufbau des Gesamtchips darstellt, welcher die Sub-CPU einer Ausführungsform des erfindungsgemäßen Mikrocomputers umfaßt;
Fig. 13 einen Teil eines Blockschaltbildes, welches den Aufbau der Register in der Sub-CPU einer Ausführungsform des erfindungsgemäßen Mikrocomputers darstellt;
Fig. 14 einen Teil eines Blockschaltbildes, welches den Aufbau der Register in der Sub-CPU einer Ausführungsform des erfindungsgemäßen Mikrocomputers darstellt;
Fig. 15 einen Teil eines Blockschaltbildes, welches den Aufbau der Register in der Sub-CPU einer Ausführungsform des erfindungsgemäßen Mikrocomputers darstellt;
Fig. 16 einen Teil eines Blockschaltbildes, welches den Aufbau der Register in der Sub-CPU einer Ausführungsform des erfindungsgemäßen Mikrocomputers darstellt;
Fig. 17 ein Schaltbild, welches den besonderen Aufbau innerhalb der Sub-CPU und eine Testschaltung sowie ihre Emulations­ schaltung des in Fig. 11 dargestellten erfindungsgemäßen Mikrocomputers zeigt;
Fig. 18 ein Schaltbild, welches den besonderen Aufbau innerhalb der Sub-CPU und eine Testschaltung sowie ihre Emulations­ schaltung des in Fig. 11 dargestellten erfindungsgemäßen Mikrocomputers zeigt;
Fig. 19 ein Schaltbild, welches den besonderen Aufbau innerhalb der Sub-CPU und die Testschaltung sowie deren Emulations­ schaltung des in Fig. 11 dargestellten erfindungsgemäßen Mikrocomputers zeigt;
Fig. 20 ein Schaltbild, welches den besonderen Aufbau innerhalb der Sub-CPU und die Testschaltung sowie deren Emulations­ schaltung des in Fig. 11 dargestellten erfindungsgemäßen Mikrocomputers zeigt;
Fig. 21 eine schematische Darstellung, welche die Reihenfolge der Abbruchunterbrechungs-Operation des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 22 eine schematische Darstellung, welche die Reihenfolge der Abbruchunterbrechungs-Operation des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 23 eine schematische Darstellung, welche vier Modi der Sub-CPU des erfindungsgemäßen Mikrocomputers erläutert;
Fig. 24 eine schematische Darstellung, welche das Speichergebiet bei einer Ausführungsform des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 25 eine schematische Darstellung, welche das Speichergebiet bei einer Ausführungsform des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 26 eine schematische Darstellung, welche das Speichergebiet bei einer Ausführungsform des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 27 eine schematische Darstellung, welche das Speichergebiet bei einer Ausführungsform des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 28 eine schematische Darstellung, welche das Speichergebiet bei einer Ausführungsform des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 29 eine schematische Darstellung, welche das Speichergebiet bei einer Ausführungsform des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 30 eine schematische Darstellung, welche das Speichergebiet bei einer Ausführungsform des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 31 eine schematische Darstellung, welche das Speichergebiet bei einer Ausführungsform des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 32 eine schematische Darstellung, welche das Speichergebiet bei einer Ausführungsform des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 33 eine schematische Darstellung, welche die Speicherzuweisung zur Zeit des EPROM-Zugriffs-Modus des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 34 eine schematische Darstellung, welche die dem Stand der Technik ähnlichen Anschlüsse zur Steuerung von außen im erfindungsge­ mäßen Mikrocomputer zeigt;
Fig. 35 eine schematische Darstellung, welche die Zustände von Eingängen an Anschlüssen zum Setzen des Modus für jeden der Modi zur Zeit des EPROM-Modus des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 36 eine schematische Darstellung, welche die Anschlußbelegung des Emulations-Chips bei dem erfindungsgemäßen Mikrocomputer zeigt;
Fig. 37 eine schematische Darstellung, welche die Anschlußbelegung des Emulations-Chips bei dem erfindungsgemäßen Mikrocomputer zeigt;
Fig. 38 eine schematische Darstellung, welche die Anschlußbelegung des Emulations-Chips bei dem erfindungsgemäßen Mikrocomputer zeigt;
Fig. 39 eine schematische Darstellung, welche die Anschlußbelegung des Emulations-Chips bei dem erfindungsgemäßen Mikrocomputer zeigt;
Fig. 40 eine schematische Darstellung, die die Speicherzuweisung des Emulations-Chips des Mikrocomputers zeigt, welcher die Sub-CPU des erfindungsgemäßen Mikrocomputers enthält;
Fig. 41 eine schematische Darstellung, die die Speicherzuweisung des Emulations-Chips des Mikrocomputers zeigt, welcher die Sub-CPU des erfindungsgemäßen Mikrocomputers enthält;
Fig. 42 eine schematische Darstellung, die die Speicherzuweisung des Emulations-Chips des Mikrocomputers zeigt, welcher die Sub-CPU des erfindungsgemäßen Mikrocomputers enthält;
Fig. 43 eine schematische Darstellung, die die Speicherzuweisung des Emulations-Chips des Mikrocomputers zeigt, welcher die Sub-CPU des erfindungsgemäßen Mikrocomputers enthält;
Fig. 44 eine schematische Darstellung, die die Speicherzuweisung des Emulations-Chips des Mikrocomputers zeigt, welcher die Sub-CPU des erfindungsgemäßen Mikrocomputers enthält;
Fig. 45 eine schematische Darstellung, die die Speicherzuweisung des Emulations-Chips des Mikrocomputers zeigt, welcher die Sub-CPU des erfindungsgemäßen Mikrocomputers enthält;
Fig. 46 eine schematische Darstellung, die die Speicherzuweisung des Emulations-Chips des Mikrocoinputers zeigt, welcher die Sub-CPU des erfindungsgemäßen Mikrocomputers enthält;
Fig. 47 eine schematische Darstellung, die die Speicherzuweisung des Emulations-Chips des Mikrocomputers zeigt, welcher die Sub-CPU des erfindungsgemäßen Mikrocomputers enthält;
Fig. 48 eine schematische Darstellung, die die Speicherzuweisung des Emulations-Chips des Mikrocomputers zeigt, welcher die Sub-CPU des erfindungsgemäßen Mikrocomputers enthält;
Fig. 49 ein Blockschaltbild, welches den Aufbau einer Speicher-Leseschaltung der Sub-CPU des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 50 ein Blockschaltbild, welches den Aufbau einer Speicher-Leseschaltung der Sub-CPU des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 51 ein Blockschaltbild, welches den Aufbau einer Speicher-Leseschaltung eines die Sub-CPU enthaltenden Emulations-Chips des erfindungsgemäßen Mikrocomputers zeigt;
Fig. 52 ein Logikschaltbild, welches den besonderen Aufbau der Speicher-Lese­ schaltung der Sub-CPU des erfindungs­ gemäßen Mikrocomputers zeigt;
Fig. 53 ein Schaltbild, welches den Aufbau einer Schaltung zum Erzeugen eines Signals zum Steuern der Verzögerung der Zunahme des Ausgangs eines Abtastverstärkers darstellt;
Fig. 54 ein Schaltbild, welches den Aufbau einer Schaltung zum Erzeugen eines Signals zur Steuerung der Verzögerung der Zunahme des Ausgangs eines Abtastverstärkers darstellt;
Fig. 55 ein Impulsdiagramm, welches das Timing des RPH- und RPHD-Signals zum Steuern der Verzögerung der Zunahme des Ausgangs eines Abtastverstärkers darstellt;
Fig. 56 ein Schaltbild, welches den Aufbau einer Schaltung zum Erzeugen eines ROM-Lese-Timingsignals RDROMZ und eines EPROM-Schreib-Timingsignals PGMEM darstellt;
Fig. 57 ein Fig. 52 entsprechendes Schaltbild, welches den besonderen Aufbau einer Schaltung der unteren 8 Bit darstellt;
Fig. 58 ein Schaltbild, welches den Aufbau einer Schaltung zum Erzeugen der Abtastver­ stärker-Lesesteuersignale RPH, RPL;
Fig. 59 ein Impulsdiagramm, welches das Timing des Lesens von Daten aus dem ROM der Sub-CPU des erfindungsgemäßen Mikrocomputers darstellt;
Fig. 60 eine schematische Darstellung, welche ein Beispiel des Chipentwurfs der Sub-CPU und ihres Speichers bei dem erfindungsgemäßen Mikrocomputer zeigt; und
Fig. 61 eine schematische Darstellung, welche ein Beispiel des Chipentwurfs der Sub-CPU und ihres Speichers bei dem erfindungsgemäßen Mikrocomputer zeigt.
Die Ausführungsformen
Nun wird nachstehend die Erfindung unter Bezugnahme auf die die bevorzugten Ausführungsformen darstellenden Zeichnungen detailliert beschrieben werden.
In Fig. 11 bezeichnet das Bezugszeichen 15 den gesamten Sub-CPU-Abschnitt, welcher nachstehend Sub-CPU-Block ge­ nannt werden wird.
Das Bezugszeichen 1 bezeichnet einen Hauptabschnitt der Sub-CPU (nachstehend einfach Sub-CPU genannt), welcher eine Mehrzahl von Registern, eine Arithmetik-Logik-Einheit und periphere Funktionseinheiten umfaßt.
Das Bezugszeichen 2 bezeichnet einen RAM für die Sub-CPU 1, und Bezugszeichen 3 bezeichnet einen ROM oder EPROM (nach­ stehend ROM/EPROM genannt) zum Speichern des Zielprogramms der Sub-CPU 1.
Das Bezugszeichen 4 bezeichnet ein Testmodus-Steuerregister für die Sub-CPU 1, und das Bezugszeichen 17 bezeichnet ein Initialisierungs-Steuerbit der Sub-CPU 1, wobei beide dazu in der Lage sind, aus der Haupt-CPU umgeschrieben zu wer­ den, was nachstehend beschrieben wird. Details davon werden unter Bezugnahme auf Fig. 23 nachstehend beschrieben wer­ den.
Das Bezugszeichen 5 bezeichnet einen Programmzähler für die Sub-CPU 1, 6 bezeichnet ein Abbruchadreß-Register zum Spei­ chern einer Abbruchadresse beim Ermitteln einer Abbruch­ stelle, 7 bezeichnet ein Abbruchvektor-Register zum Spei­ chern der Adresse zur Bestimmung der Verzweigung zur Zeit des Abbruchs und 8 bezeichnet ein Adreßsicherungs-Register zum Sichern von Daten derjenigen Adresse, bei welcher der Abbruch stattfand.
Das Bezugszeichen 16 bezeichnet eine Schaltung zum Er­ mitteln der Übereinstimmung, welche den Inhalt (PC-Wert) des Programmzählers 5 mit dem Inhalt, nämlich einer Ab­ bruchadresse, des Abbruchadreß-Registers 6 vergleicht, um zu ermitteln, ob sie übereinstimmen oder nicht, und welche aus einer exklusiven Logik-Summenschaltung von derselben Bitbreite wie der Programmzähler 5 gebildet ist. Die Anzahl der durch die Schaltung zum Ermitteln der Übereinstimmung 16 ermittelten auftretenden Übereinstimmungen wird durch einen Abbruchzähler 9 gezählt.
Das Bezugszeichen 10 bezeichnet einen Haupt-CPU-Bus, wel­ cher den in Fig. 11 dargestellten Sub-CPU-Block 15 und die in Fig. 11 nicht dargestellte (vergleiche Fig. 12) Haupt-CPU verbindet.
Das Bezugszeichen 11 bezeichnet eine Leitung zum Zugreifen auf den ROM/EPROM 3 der Sub-CPU 1 aus dem Haupt-CPU-Bus 10, das Bezugszeichen 12 bezeichnet eine Leitung zum Zugreifen auf den RAM 2 aus dem Haupt-CPU-Bus 10, Bezugszeichen 13 bezeichnet eine Leitung zum Zugreifen auf das Abbruchadreß- Register 6 aus dem Haupt-CPU-Bus 10, und das Bezugszeichen 14 bezeichnet eine Leitung zum Zugreifen auf den Abbruch­ zähler 9 aus dem Haupt-CPU-Bus 10.
Fig. 12 ist ein Blockschaltbild, welches den Gesamtaufbau einer Ausführungsform des auf einem einzelnen Chip ausge­ bildeten erfindungsgemäßen Mikrocomputers schematisch dar­ stellt.
In Fig. 12 bezeichnet das Bezugszeichen 21 den gesamten Einchip-Mikrocomputer, nämlich einen LSI-Chip, auf welchem der in Fig. 11 dargestellte Sub-CPU-Block 15 in der vor­ stehend beschriebenen Art und Weise auf dem Chip ausgebil­ det ist.
Das Bezugszeichen 23 bezeichnet die Haupt-CPU, die Bezugs­ zeichen 24, 25, 26, 27 bezeichnen periphere Schaltungen und externe Eingabe-/Ausgabe-Anschlüsse, wie beispielsweise einen ROM, einen RAM und Eingabe-/Ausgabe (I/O)-Ports für die Haupt-CPU 23. Diese peripheren Schaltungen 24, 25, 26 tauschen miteinander oder mit dem Sub-CPU-Block 15 mittels des Haupt-CPU-Busses 10 Daten aus.
Das Bezugszeichen 28 bezeichnet einen Sub-CPU-Bus, der mit den Funktionsschaltungen verbunden ist, wie beispielsweise mit der Sub-CPU 1, dem RAM 2, dem ROM/EPROM 3, welche im Sub-CPU-Block 15 vorgesehen sind, um den Datenaustausch zwischen ihnen zu erleichtern. Ein wesentliches Merkmal der Erfindung ist ein derartiger Aufbau derselben, da die der Sub-CPU 1 zugewiesenen Speichergebiete, wie beispielsweise der RAM 2 und der ROM/EPROM 3, auf der Seite der Sub-CPU 1 mit dem Haupt-CPU-Bus 10 mittels der durch die Bezugs­ zeichen 11, 12 bezeichneten Datenzugriffs-Leitungen während eines bestimmten Modus verbunden sind.
Das Bezugszeichen 202 bezeichnet einen Rücksetzanschluß, an welchem ein Rücksetzsignal von außerhalb des LSI-Chips 21 eingegeben wird, das Bezugszeichen 203 bezeichnet einen Modussetzanschluß, an welchem ein Modussetzsignal von außerhalb des LSI-Chips 21 eingegeben wird. Die Signale, die durch diese Anschlüsse 202 und 203 zugeführt werden, werden in die Rücksetzschaltung 201 eingegeben.
Beim Empfang des Rücksetzsignals gibt die Rücksetzschaltung 201 dasselbe zum Haupt-CPU-Bus 10 aus, um das Gesamtsystem rückzusetzen. Wenn ein den Isolationsmodus spezifizierendes Modussetzsignal eingegeben wird, dann setzt die Rücksetz­ schaltung 201 ein Isolationsmodus-Register (150) 204. Wenn ein den EPROM-Modus spezifizierendes Signal eingegeben wird, dann setzt die Rücksetzschaltung 201 ein EPROM-Modus- Register (EM) 205. Wenn ein den CPU-Modus spezifizierendes Modussetzsignal eingegeben wird, dann setzt die Rücksetz­ schaltung 201 ein CPU-Modus-Register (CM1, CM2) 206. Die Werte dieser Modusregister 204, 205, 206 werden an den Haupt-CPU-Bus 10 ausgegeben. Ein Verfahren zum Spezifizieren des EPROM-Modus wird in der US-Schrift Nr. 5-113.093 offenbart. Obwohl periphere Funktionen, wie beispielsweise ein Zeit­ geber und eine SI/O, welche in gewöhnlichen Mikrocomputern vorgesehen sind, in Fig. 12 weggelassen sind, hat das nicht zu bedeuten, daß sie sowohl auf der Seite der Haupt- CPU 23 als auch auf der Seite der Sub-CPU 1 vorgesehen sind und mit den entsprechenden CPU-Bussen 10 und 28 verbunden sind.
Fig. 13, Fig. 14, Fig. 15 und Fig. 16 sind Blockschalt­ bilder, welche den Aufbau der im Sub-CPU-Block 15 vorge­ sehenen Register einer Ausführungsform des erfindungsge­ mäßen Mikrocomputers darstellen.
Im erfindungsgemäßen Mikrocomputer existiert eine Anzahl von Registern in der Sub-CPU 1, und bei der in Fig. 13, Fig. 14, Fig. 15 und Fig. 16 dargestellten Ausführungs­ form sind 64 Registerräume vorgesehen.
In Fig. 13, Fig. 14, Fig. 15 und Fig. 16 bezeichnet das Bezugszeichen 30 einen Registerdatenbus, der in der Sub-CPU 1 vorgesehen ist. Die Bezugszeichen 31, 32, 33 und 34 be­ zeichnen Registergruppen, welche alle beim Datenaustausch zwischen der Haupt-CPU 23 und der Sub-CPU 1 verwendet wer­ den. Insbesondere bezeichnet das Bezugszeichen 31 ein FIFO-Register (TXD FIFO), welches dazu verwendet wird, Daten aus der Haupt-CPU 23 zur Sub-CPU 1 zu senden, 32 bezeichnet ein FIFO-Register (RXD FIFO), welches dazu verwendet wird, Daten aus der Sub-CPU 1 zur Haupt-CPU 23 entgegengesetzt zum vorstehenden zu senden, 33 bezeichnet eine Register­ gruppe, welche dazu verwendet wird, Daten mit einer Länge von 1 Byte oder 2 Byte auszutauschen, und 34 bezeichnet eine Steuerregister-Gruppe, die für besondere jedem Bit zugewiesene Anwendungsfunktionen vorgesehen ist.
Bei den durch die Bezugszeichen 33, 34 bezeichneten Regi­ stern wird die Datenübertragungsrichtung beim Entwerfen für jedes Register oder für jedes Bit des Registers festgelegt, und daher ist keine gesonderte Bestimmungshardware vorge­ sehen.
Das Bezugszeichen 35 bezeichnet zwei 16-Bit-Zeitgeber-Schaltungen, welche mit dem Sub-CPU-Bus 28 direkt verbunden sind. Das Bezugszeichen 36 bezeichnet eine serielle Über­ tragungs-/Empfangs-Schaltung, die mit dem Sub-CPU-Bus 28 verbunden ist. Das Bezugszeichen 37 bezeichnet eine ein­ fache Registergruppe, auf welche nur von der Seite der Sub-CPU 1 zugegriffen werden kann, 38 bezeichnet eine ALU der Sub-CPU 1, 39 bezeichnet eine Steuerregistergruppe, die für besondere jedem Bit zugewiesene Anwendungsfunktionen vorge­ sehen ist, auf welche nur von der Seite der Sub-CPU 1 zuge­ griffen werden kann.
Obgleich das Bezugszeichen 5 den Programmzähler der Sub-CPU 1 bezeichnet, wie vorstehend beschrieben, wird er nach­ stehend Sequenzzähler genannt und mit SC abgekürzt werden.
Das Bezugszeichen 40 bezeichnet ein Spezialregister, welches einen einfachen Datenaustausch mit dem SC 5 ge­ stattet, und wird Stack genannt. Das ist jedoch kein ge­ wöhnliches Abwärtsschiebe-Stack, sondern ein einfaches Register, das dazu in der Lage ist, die Daten des SC 5 direkt zu sichern und abzurufen.
Fig. 17 bis Fig. 20 sind Blockschaltbilder, welche den besonderen Aufbau des Inneren des im Blockschaltbild der Fig. 11 gezeigten Sub-CPU-Blocks 15 darstellen.
In Fig. 17 bezeichnet das Bezugszeichen 41 einen De­ codierer, welcher den Ausgang des 2-Bit-Testmodus-Steuer­ registers 4 der Sub-CPU 1 decodiert und ein Signal erzeugt, um vier Modi zu unterscheiden. Die vier durch den De­ codierer 41 unterschiedenen Modi sind: Testmodus (TEST), Debugmodus (DEBUG), Modus der Hardwarerückkehr aus dem Abbruch (HW RTB) und Normalmodus (Normal). Da auf das Test­ modus-Steuerregisters 4 aus der Haupt-CPU 23 mittels des Haupt-CPU-Busses 10 zugegriffen werden kann, kann jeder dieser Modi von der Seite der Haupt-CPU 23 gesetzt werden. Unterschiede zwischen den Modi werden unter Bezugnahme auf Fig. 23 nachstehend beschrieben werden.
Die durch die Bezugszeichen 42 bis 47 im Blockschaltbild der Fig. 18 bezeichneten Abschnitte sind Abschnitte, die sich auf die Anweisungsdecodierung der Sub-CPU 1 beziehen. Normalerweise wird ein Anweisungscode aus dem Programm­ speichergebiet 42 mittels eines Gatters 44-1 geholt, um durch eine Anweisungs-Verriegelungseinrichtung 45 gehalten zu werden, und ferner an einen Anweisungsdecodierer 46 gesendet, so daß unterschiedliche Signale zur Steuerung der Einheiten der Sub-CPU 1 erzeugt werden.
Der Anweisungsdecodierer 46 erzeugt ferner Steuersignale g0, g1, g2, g3, g4 . . . g7 durch Kombination mit Nachde­ codierern, die durch die Bezugszeichen 47-1 und 47-2 be­ zeichnet sind. Die Verwendung der Nachdecodierer 47-1, 47-2 vereinfacht es, eine Schaltung zu realisieren zum Erzeugen von Signalen, die sich gegenseitig ausschließen, trotz sie das gleiche Timing aufweisen.
Das Bezugszeichen 43 bezeichnet einen Spezial-Code­ generator, welcher Anweisungscodes erzeugt, die in Spezial­ fällen ausgeführt werden. Der Spezial-Codegenerator 43 em­ pfängt einen derartigen Eingang, wie beispielsweise das Hardware-Abbruchsignal (HW BRK), das Signal zur Hardware­ rückkehr aus dem Abbruch (HW RTB), das Unterbrechungssignal (INT), das Sub-CPU-Rücksetzsignal (Sub CPU reset) und das TEST-Signal, und führt Ausgangssignale mit einer Länge von einem Wort mittels des Gatters 44-2 der Anweisungs-Ver­ riegelungseinrichtung 45 und dem Anweisungsdecodierer 46 zu.
Die Gatter 44-1 und 44-2 sind derart gesteuert, daß sie komplementär zueinander EIN/AUS schalten. Durch einen der­ artigen Aufbau wird eine Ausführungsreihenfolge ausgeführt, welche eine Mehrzahl von im Programmspeichergebiet 42 ge­ speicherte Anweisungen umfaßt, wohingegen normalerweise das Gatter 44-1 EIN und 44-2 AUS ist. Im Fall einer Unter­ brechung oder dergleichen schaltet das Gatter 44-1 AUS und 44-2 schaltet EIN, so daß ein durch den Spezial-Code­ generator 43 erzeugter Spezialcode in die Anweisungs-Ver­ riegelungseinrichtung 45 und den Anweisungsdecodierer 46 eingegeben wird, wodurch die Spezialanweisung mittels der Hardware bedingungslos ausgeführt wird.
Fig. 19 ist ein Blockschaltbild, welches den Aufbau einer Schaltung darstellt, die ein Signal g8 zur EIN/AUS- Steuerung der Gatter 44-1, 44-2 erzeugt. Diese Schaltung erzeugt das Signal g8, wenn ein beliebiges der nachstehen­ den drei Ereignisse stattfindet, und sendet dabei den durch den Spezial-Codegenerator 43 erzeugten Code der Spezialan­ weisung an die Anweisungs-Verriegelungseinrichtung 45 und den Anweisungsdecodierer 46.
Das erste der drei Ereignisse betrifft einen derartigen Fall, daß eine den Programmzähler (SC) 5 umfassende Schal­ tung zum Erzeugen eines Hardware-Abbruchsignals 50a, das Abbruchadreßregister 6, die Schaltung zum Ermitteln der Übereinstimmung 16 und der Abbruchzähler 9 das HW BRK- Signal ermöglichen durch Zählen der Anzahl von Überein­ stimmungen, bei welchen der Zählwert des Programmzählers 5 der Sub-CPU 1 und der Wert der Abbruchadresse überein­ stimmen, mittels des Abbruchzählers 9.
Das zweite betrifft den Fall, daß ein INT-Signal aus einem ODER-Ausgang eines wirksamen Unterbrechungsforderungssig­ nals ausgegeben wird, welches durch eine in einem gewöhnli­ chen Mikrocomputer üblicherweise vorgesehene Unter­ brechungsschaltung erzeugt wird, obwohl das in der Zeich­ nung nicht dargestellt ist.
Das dritte betrifft den Fall, daß ein Rücksetzsignal (Sub CPU reset) der Sub CPU 1 erzeugt wird, welches bei der Ein­ gabe entweder eines durch die Haupt-CPU 23 spezifizierten Rücksetzsignals für die Sub CPU 1 oder eines externen Rück­ setzsignals für den ganzen Chip wirksam ist. Da ein Signal vom "H"-Pegel in das Startsteuerbit 48 geschrieben ist, auf welches durch die Haupt-CPU 23 mittels des Haupt-CPU-Busses 10 zugegriffen wird, erzeugt in diesem Fall eine Einzel­ impuls-Schaltung 49 einen Einzelimpuls, der mittels einer einen Inverter und ein UND-Gatter umfassenden Logikschal­ tung 50b ausgegeben wird. Die Logikschaltung 50b ist vorge­ sehen, um das Rücksetzen der Sub-CPU 1 zu vermeiden, wenn ein durch den Decodierer 41 erzeugtes Signal DEBUG während des Debug-Modus in den Inverter eingegeben wird.
Die Ausgänge von diesen drei Ereignissen werden in das ODER-Gatter 51 eingegeben, um das Steuersignal g8 als ihr logisches Summensignal zu erzeugen.
Fig. 20 ist ein Blockschaltbild, welches ein Beispiel des Aufbaus des Programmzählers 5 und des damit verbundenen Stack-Abschnitts in der Sub-CPU 1 zeigt, wobei insbesondere wesentliche Register bezüglich der Rücksetzoperation, der Abbruchoperation oder der Testoperation dargestellt sind.
Das Bezugszeichen 52 bezeichnet einen Rücksetzvektor- Generator, welcher einen gewöhnlichen Rücksetzvektor er­ zeugt, um die Rücksetz-Startadresse dem Programmzähler 5 zuzuführen, wenn das Signal g0 wirksam ist und das Gatter 55-1 auf EIN geschaltet ist. Das Bezugszeichen 53 bezeich­ net ein Testvektorregister, um die Startadresse zur Zeit des Testmodus zu speichern, welches Testvektorregister die Teststartadresse dem Programmzähler 5 zuführt, wenn das Signal g1 wirksam ist und das Gatter 55-2 auf EIN geschal­ tet ist.
Wie vorstehend beschrieben, speichert das Abbruchvektor- Register 7 den Abbruchvektor, welcher die Verzweigungsbe­ stimmung des Programms ist, wenn eine Abbruchanweisung aus­ geführt wird. Das Adreßsicherungs-Register 8 wird dazu ver­ wendet, die durch den Programmzähler 5 gehaltene Adresse (den PC-Wert) zu sichern, welche die Stelle angibt, an wel­ cher die Programmausführung durch die Abbruchverzweigung unterbrochen wurde. Wenn die Abbruchroutine beendet ist, dann wird der im Adreßsicherungs-Register 8 gesicherte Wert in den Programmzähler 5 geladen, um ihm zu ermöglichen, zu der ursprünglichen Routine zurückzukehren, aus welcher die Verzweigung in die Abbruchroutine stattfand.
Das Bezugszeichen 54 bezeichnet ein Allgemeinzweck-Stack, welches bei einer einen Unterprogrammaufruf begleitenden Anweisung verwendet werden kann, obgleich es keine direkte Bedeutung für die Erfindung hat.
Der Ausgang des Programmzählers 5 treibt einen Adreßbus 56 zum Zugreifen auf das Speichergebiet der Sub-CPU 1. Das Bezugszeichen 57 bezeichnet eine Signalleitung, die dazu verwendet wird, um den Wert des Programmzählers 5 im Ab­ bruchvektor-Register 7, im Adreßsicherungs-Register 8 oder im Allgemeinzweck-Stack 54 zu sichern, wobei das Stack zur Bestimmung der Sicherung der Daten durch den EIN/AUS-Status der durch die Bezugszeichen 58-3, 58-4 und 58-5 gekenn­ zeichneten Gatter gewählt wird.
Fig. 21 und Fig. 22 sind schematische Darstellungen, wel­ che die Ausführungsreihenfolge des Programms zeigen, wenn die Abbruchverarbeitung unter Verwendung der in Fig. 17 bis Fig. 20 dargestellten Schaltungen ausgeführt wird.
Fig. 21 zeigt den Zustand der Abbruchroutine, die durch die in Fig. 19 dargestellte Schaltung zur Ermittlung der Abbruchadresse während der Ausführung des Zielprogramms ausgeführt wird. In diesem Fall wird das Hard-BRK genannt, da die Abbruchadresse durch die Hardware ermittelt wird, um dadurch in eine Abbruchroutine zu verzweigen. Eine Rückkehr aus der Abbruchroutine zum Zielprogramm an die Stelle der Verzweigung in die Abbruchroutine kann durch Programmieren erfolgen, derart daß die RTB-Anweisung (Rückkehr aus dem Abbruch) am Ende der Abbruchroutine ausgeführt wird. Durch Bestimmen der Anzahl von Schleifenwiederholungen und Herab­ zählen derselben mit dem Abbruchzähler 9 kann ferner eine Abbruchunterbrechung während der Ausführung der Schleife von der Abbruchstelle bis zur in Fig. 21 gezeigten Schlei­ fenstelle ausgeführt werden.
Fig. 22 zeigt eine schematische Darstellung, welche den Programmablauf in dem Fall darstellt, daß die Rückkehr aus der Abbruchroutine zum Zielprogramm durch die Haupt-CPU 23 gesteuert wird, wohingegen die Abbruchverzweigung in der Software mittels der Abbruchanweisung BRK im Programm aus­ geführt wird.
Wenn die Warteanweisung WIT während der Ausführung der Ab­ bruchroutine ausgeführt wird, dann wird der Prozeß in einen zeitweiligen Halt versetzt. Das Schreiben von Daten im Testmodus-Steuerregister 4 verursacht einen Zugriff auf den Test-RAM 2, wodurch verursacht wird, daß das Programm umge­ schrieben wird. Dann wird das Testmodus-Steuerregister 4 erneut überschrieben, um zum Ausführungsmodus der Sub-CPU 1 zurückzukehren, wodurch der RTB-Modus gesetzt wird, der Prozeß zur Abbruchadresse zurückgeführt wird und die Aus­ führung des Zielprogramms fortgesetzt wird.
Fig. 23 ist eine schematische Darstellung, welche den Auf­ bau der Daten zum Festlegen der vier Modi der Sub-CPU 1 zeigt, welche durch die in Fig. 17 dargestellte Schaltung erzeugt werden.
Bei diesem Beispiel sind die Bits 7 und 6 des 8-Bit-Kommu­ nikationsmodus-Registers (BUS MOD CON), welche einer be­ sonderen Adresse "002A" in der durch das Bezugszeichen 34 in Fig. 13, Fig. 14, Fig. 15 und Fig. 16 bezeichneten Registergruppe der Sub-CPU 1 zugewiesen sind, den Test­ modus-Bits STM 7, STM 6 zugewiesen, und das Startsteuerbit 48 ist dem MINI (Modus-Anfangsbit) zugewiesen, welches das Bit 0 ist. Die beiden Bits der Testmodus-Bits STM 7 und STM 6 entsprechen dem in Fig. 11 dargestellten Testmodus- Steuerregister 4.
Wenn die Testmodus-Bits STM 7 und STM 6 des Testmodus- Steuerregisters 4 "00" lauten, dann ist der Normalmodus ge­ setzt, wenn sie "01" lauten, dann ist der Testmodus ge­ setzt, wenn sie "10" lauten, dann ist der Debug-Modus (auch Speicherzugriffs-Modus genannt) DEBUG gesetzt, und wenn sie "11" lauten, dann ist der RTB-Modus (Hardwarerückkehr aus dem Abbruch) gesetzt.
Wenn im Startsteuerbit 48 des Bits 0 "1" geschrieben ist, dann wird in allen Modi, abgesehen vom Debug-Modus DEBUG, die Anweisung ab dem gewöhnlichen Rücksetzvektor, der Test- Startadresse oder der im Adreßsicherungs-Register 8 ge­ sicherten RTB-Adresse ausgeführt. Zu dieser Zeit ist das in Fig. 23 dargestellte Sub-CPU-Block-Rücksetzsignal SUB nur während des normalen Rücksetzens wirksam, und mehrere der Register in der Sub-CPU 1 sind initialisiert.
Während des Testmodus oder RTB-Modus ist das vorstehend be­ schriebene SUB-Rücksetzsignal nicht wirksam und sind die Register nicht initialisiert. Ein Zugriff auf das Speicher­ gebiet der Sub-CPU 1 aus der Haupt-CPU 23 wird nur während des Debug-Modus ermöglicht, in welchem Fall die Sub-CPU 1 den Halt-Zustand einnimmt. Während des Debug-Modus ist ein Speicherzugriff der Sub-CPU 1 natürlich unmöglich.
Das Bit 7 des in Fig. 13, Fig. 14, Fig. 15 und Fig. 16 dargestellten Steuerfeld-Registers (lokaler Pointer) bei der Adresse "0030" erzeugt ein SEQSTP-Bit, welches es er­ laubt, den Operationsstatus der Sub-CPU 1 aus der Haupt-CPU 23 zu überprüfen. Wie in der schematischen Darstellung der Fig. 23 gezeigt, zeigt insbesondere ein auf "0" stehendes SEQSTP-Bit an, daß die Sequenz der Sub-CPU 1 in Betrieb ist, und "1" zeigt an, daß sich die Sequenz im Halt befin­ det.
Fig. 24 bis Fig. 29, Fig. 30, Fig. 31, Fig. 32A und Fig. 32B sind schematische Darstellungen, welche die Speicherzuweisung bei einer Ausführungsform des erfindungs­ gemäßen Einchip-Mikrocomputers zeigen. Fig. 24 bis Fig. 29 zeigen das Zugriffsgebiet der Haupt-CPU 23, wogegen Fig. 24 den Zustand im Einzelchip-Modus darstellt, Fig. 25 zeigt den Zustand im Speicherexpansions-Modus, Fig. 26 zeigt den Zustand im Speicherexpansions-Modus und im Debug- Modus der Sub-CPU 1 kombiniert, Fig. 27 zeigt den Zustand im Prozessor-Modus, Fig. 28 zeigt den Zustand im Pro­ zessor-Modus und Debug-Modus der Sub-CPU 1 kombiniert, und Fig. 29 stellt den Zustand im Busisolations-Modus dar. Die in Fig. 24, Fig. 25 und Fig. 26 dargestellten Speicher­ zuweisungen sind den gewöhnlichen Speicherzuweisungen des Standes der Technik ähnlich.
Die in Fig. 24 bis Fig. 29 gezeigten Speicherzuweisungen in jedem Modus werden nachstehend detailliert beschrieben werden.
Im in Fig. 24 dargestellten Einzelchip-Modus wird das Ge­ biet von der Adresse "0000" bis zur Adresse "003F" als SFR- Gebiet (Spezialfunktionsregister) verwendet, wobei Steuer­ register für ein Eingangs-/Ausgangs-Port, eine Zeitgeber­ funktion, eine SI/O-Funktion und weitere periphere Funk­ tionen vorgesehen sind. Register zum Datenaustausch mit der Sub-CPU 1 sind ferner in diesem Gebiet vorgesehen, wohin­ gegen die Sub-CPU-Testmodus-Steuerbits STM 7, STM 6 eben­ falls in einem Teil desselben vorgesehen sind. Da jedoch die Testfunktion während des Einzelchip-Modus keine Be­ deutung hat, können die Sub-CPU-Testmodus-Steuerbits STM 7 und STM 6 gesetzt sein oder nicht.
Im Einzelchip-Modus ist dem internen RAM-Gebiet ein Speicherraum von 1 KByte von "0040" bis "043F" zugewiesen, und dem internen ROM-Gebiet ist ein Speicherraum von 48 KByte von der Adresse "4000" bis "FFFF" zugewiesen. Es wird nicht notwendig sein zu erwähnen, daß die Größen dieser in­ ternen Speichergebiete beim Entwerfen festgelegt werden und daß daher die vorstehend genannten Größen rein beispielhaft sind und andere Größen verwendet werden können. Der Einzel­ chip-Modus, der Speicherexpansions-Modus und der Prozessor- Modus werden mittels der CPU-Modus-Register CM1, CM0 unter­ schieden und können durch die Haupt-CPU 23 mittels Software geändert werden. Die Adressen "0040" bis "3FFF" werden nicht verwendet.
Bei dem in Fig. 25 dargestellten Speicherexpansions-Modus werden die Adressen "0040" bis "3FFF", die im vorstehend beschriebenen in Fig. 24 gezeigten Einzelchip-Modus nicht verwendet werden, und ein Teil des Port-Steuerregisters im SFR-Gebiet zum externen Speichergebiet, auf welches zuge­ griffen werden kann. Dadurch wird veranlaßt, daß ein Teil des Eingangs-/Ausgangs-Ports an den Datenbus, den Adreßbus und den Steuerbus zum externen Zugriff geschaltet wird.
Im in Fig. 27 dargestellten Prozessor-Modus wird der in­ terne ROM nicht verwendet, und das ganze Gebiet von der Adresse "0440" bis "FFFF" wird externes Speichergebiet.
Wenn sich das System im Speicherexpansions-Modus befindet, während dem auf das in Fig. 26 dargestellte Speichergebiet der Sub-CPU 1 zugegriffen werden kann und die Sub-CPU 1 im Debug-Modus ist, wird anstatt auf das Speichergebiet der Haupt-CPU 23 auf das Speichergebiet der Sub-CPU 1 als das Gebiet von der Adresse "4000" bis "7FFF" zugegriffen, falls die Testmodus-Steuerbits STM 7, STM 6 auf den Debug-Modus gesetzt sind (auch Speicherzugriffs-Modus genannt) (STM 7 = 1, STM 6 = 0). Der Grund für das Vorsehen einer Versetzung von "4000" zur Adresse besteht darin, den Vorteil zu er­ reichen, daß die Rücksetzvektor-Adressen "FFFC" und "FFFD" des SFR-Gebiets und der Haupt-CPU 23 vermieden werden und daß die Adreßdecodier-Schaltung sowohl während eines Zu­ griffs auf die Sub-CPU 1 als auch während eines Zugriffs auf die Haupt-CPU 23 vereinfacht wir.
Ähnlich wird im in Fig. 28 dargestellten Prozessor-Modus und im Debug-Modus der Sub-CPU 1 kombiniert die Zuweisung des Speichergebiets während des in Fig. 27 gezeigten Prozessor-Modus auf das Speichergebiet der Sub-CPU 1 nur in einem Gebiet zwischen der Adresse "4000" und "7FFF" aufge­ teilt. Das ermöglicht es, auf die Sub-CPU 1 unter Verwen­ dung der Haupt-CPU 23 im Prozessor-Modus zuzugreifen und den Einchip-Mikrocomputer durch Laufenlassen der Sub-CPU 1 und der Haupt-CPU 23 abwechselnd zu testen.
Da der Haupt-CPU-Bus 10 eine Breite von 8 Bit aufweist und der Sub-CPU-Bus 28 eine Breite von 16 Bit hat, entspricht einem Zugreifen auf die Adresse "0020" aus der Sub-CPU 1 einem Zugreifen auf die beiden in Fig. 32A und Fig. 32B dargestellten Adressen "4040" und "4041" aus der Haupt-CPU 23.
Im Busisolations-Modus oder im in Fig. 29 dargestellten peripheren Testmodus kann auf den ROM und den RAM des Sub- CPU-Blocks 15 sowie auf die peripheren Schaltungen auf dem Chip zugegriffen werden und können diese durch Steuern des Haupt-CPU-Busses 10 von externen Anschlüssen getestet wer­ den, nachdem die Haupt-CPU 23 und der Haupt-CPU-Bus 10 ge­ trennt wurden.
Bei einem herkömmlichen Multi-CPU (MPU)-System ohne die Sub-CPU 1 sind nur die Adressen "0000" bis "FFFF" vorge­ sehen, ähnlich wie beim Einzelchip-Modus des in Fig. 24 dargestellten erfindungsgemäßen Mikrocomputers. Bei der Er­ findung ist jedoch der Adreßbus weiter um ein Bit (AD16) erweitert, um einen Speicherraum von 128 KByte zu reali­ sieren und ihm dadurch zu ermöglichen, direkt auf das Speichergebiet der Sub-CPU 1 zuzugreifen. Das heißt, die Adressen von "14000" bis "17FFF" werden zum Speichergebiet der Sub-CPU 1, und auf dieses Gebiet kann ohne Rücksicht auf die Sub-CPU-Testmodus-Steuerbits STM 7, STM 6 zuge­ griffen werden. Durch Auslassen des Decodierens des AD16 als 1 Bit des erweiterten Adreßbusses, um die Realisierung einer derartigen Schaltung zu vereinfachen, kann auf das gleiche SFR-Gebiet, nämlich den RAM, durch die Adressen "10000" bis "1043F" zugegriffen werden, ähnlich wie auf die Adressen "1000" bis "043F".
Fig. 30 stellt eine schematische Darstellung der Speicher­ zuweisung aus Sicht der Sub-CPU 1 dar. Bei dieser Aus­ führungsform ist die Haupt-CPU 23 derart ausgebildet, daß sie einen 8-Bit-Datenbus und einen 16-Bit-Adreßbus mit einem Speicherraum von 64 KByte aufweist und mit einem Ge­ biet von der Adresse "0000" bis zur Adresse "FFFF" im Hexa­ dezimalcode versehen ist. Die Sub-CPU 1 ist derart ausge­ bildet, daß sie einen 16-Bit-Datenbus und einen 13-Bit- Adreßbus mit einem Speicherraum von 8 KByte hat und mit einem Gebiet von der Adresse "0000" bis zur Adresse "1FFF" versehen ist. Zusätzlich ist die Sub-CPU 1 mit einem Registerraum (SFR: Spezialfunktions-Register) von 64 Worten versehen.
In diesem Beispiel ist ein Raum von 8 K Worten von der Adresse "0000" bis "1FFF" der Seite der Sub-CPU 1 zuge­ wiesen. Die Adressen von "0000" bis "0800" aus diesem Raum sind dem internen ROM-Gebiet zugewiesen, und die Adressen von "1FC0" bis "1FFF" sind dem internen RAM-Gebiet zuge­ wiesen. Die Sub-CPU 1 kann auf dieses Gebiet zugreifen, ab­ gesehen von dem Fall, daß die Sub-CPU-Testmodus-Bits STM 7, STM 6 in den Debug-Modus versetzt sind.
Während des Normalbetriebs sind der Speicherraum der Haupt- CPU 23 und der Speicherraum der Sub-CPU 1 unabhängig von­ einander, und sie können sich daher beim Zugriff nicht be­ hindern. Die Verwendung der im Zusammenhang mit Fig. 13, Fig. 14, Fig. 15 und Fig. 16 beschriebenen Spezial- Registergruppe ermöglicht es jedoch, Daten zwischen diesen Speicherräumen auszutauschen. Für eine derartige Operation wird eine Übereinstimmung zwischen den Adressen der beiden Speicherräume hergestellt.
Fig. 31 ist eine schematische Darstellung, welche die Be­ ziehung zwischen den Adressen der Sub-CPU 1 und den Adressen der Haupt-CPU 23 des erfindungsgemäßen Mikro­ computers zeigt. Wie vorstehend beschrieben, ist die Seite der Haupt-CPU 23 des erfindungsgemäßen Mikrocomputers der­ art ausgebildet, daß sie einen 8-Bit-Datenbus und einen 16- Bit-Adreßbus aufweist, und die Seite der Sub-CPU 1 ist der­ art ausgebildet, daß sie einen 16-Bit-Datenbus und einen 13-Bit-Adreßbus aufweist. Daher sind die Adressen der Haupt-CPU 23 mit einer Versetzung von "4000" bezüglich der Adressen der Sub-CPU 1 versehen.
Fig. 32A und Fig. 32B sind schematische Darstellungen, welche die Beziehung angeben zwischen den Adressen, wenn die gleichen Daten, beispielsweise "5613", auf der Seite der Sub-CPU 1 und der Seite der Haupt-CPU 23 gespeichert werden, und zwischen den unter den entsprechenden Adressen in hexadezimaler Notation gespeicherten Daten. Während die Gesamtdaten "5613" unter der Adresse "2020" auf der Seite der Sub-CPU 1 gespeichert sind, sind sie derart aufgeteilt, daß "13" unter der Adresse "4040" gespeichert ist und daß "56" unter der Adresse "4041" auf der Seite der Haupt-CPU 23 gespeichert ist.
Fig. 33 ist eine schematische Darstellung, welche ein Beispiel der Speicherzuweisung im EPROM-Zugriffsmodus zeigt, welche in Übereinstimmung mit der in Fig. 24 bis Fig. 29, Fig. 30, Fig. 31, Fig. 32A und Fig. 32B dargestellten Speicherzuweisung vorgesehen ist.
Der EPROM-Zugriffsmodus bezieht sich insgesamt auf die Be­ triebsmodi, wie beispielsweise Programmieren (Schreiben), Nachprüfung, Lesen und Testen des installierten EPROMs. In diesem Beispiel befindet sich der EPROM der Seite der Haupt-CPU 23 in einem Speichergebiet von 48 KByte von der Adresse "4000" bis "FFFF", und der EPROM der Seite der Sub- CPU 1 befindet sich in einem Speichergebiet von 16 KByte, namlich 8 K Worte, von der Adresse "14000" bis "14FFF". Da 16 Bit als ein Wort auf der Seite der Sub-CPU 1 behandelt werden, entspricht eine 2-Byte-Adresse einem Wort.
Da ein herkömmlicher Mikrocomputer nur eine Haupt-CPU ohne Sub-CPU aufweist, reicht ein Speicherraum von 64 KByte von der Adresse "0000" bis "FFFF" für seinen Betrieb aus. Im erfindungsgemäßen Mikrocomputer wird jedoch ein Speicher­ raum von 128 KByte während des EPROM-Zugriffs zugewiesen durch Erweitern des Adreßbusses um 1 Bit (AD16) zum Zu­ greifen auf den EPROM durch die Sub-CPU 1. Bei dieser Aus­ führungsform ist der Entwurf der Adreßdecodier-Schaltung vereinfacht durch Verwenden einer Speicherzuweisung, die derjenigen während des in Fig. 29 dargestellten peripheren Testmodus ähnlich ist, nämlich durch Verwenden der gleichen Adressen für den EPROM-Abschnitt in beiden Modi.
Fig. 34 ist eine schematische Darstellung, die die An­ schlüsse des LSI-Chips 21 des erfindungsgemäßen Mikro­ computers zur Steuerung von außen zeigt, welche grund­ sätzlich die gleiche ist wie beim Stand der Technik.
In Fig. 34 bezeichnen in [ ] eingeschlossene Anschluß­ bezeichnungen Steueranschlüsse, die während des EPROM-Modus verwendet werden. Insbesondere ist Vpp ein Stromver­ sorgungs-Anschluß zum Schreiben des EPROMs, CEB und OEB sind Anschlüsse zur Steuerung der Auswahl- und Ausgabebe­ fähigung des Chips, BWTEST, DTESTB, GTESTB sind EPROM-Test­ anschlüsse, und VRFY ist ein erfindungsgemäßer Modus- Steueranschluß.
Adreßausgangsanschlüsse AD0 bis AD15 und Daten-Eingangs-/Ausgangs-Anschlüsse DB0 bis DB7 werden durch den Prozessormodus zugeteilt und ferner im EPROM-Modus ver­ wendet. Der Anschluß AD16 ist kennzeichnend für den er­ findungsgemäßen Mikrocomputer und empfängt ein Steuersignal von draußen, um den an diesen gelegten Adreßraum der Sub- CPU 1 und Adreßraum der Haupt-CPU 23 zu unterscheiden.
Fig. 35 ist eine schematische Darstellung, welche die Zu­ stände der Eingänge an den Modussetzanschlüssen des in Fig. 34 gezeigten Mikrocomputers für jeden Modus während des EPROM-Modus darstellt.
Wohingegen der gewöhnliche einzelne EPROM derart ausge­ bildet ist, daß der Modus durch Umschalten der Spannung des Schreib-Stromversorgungsanschlusses Vpp zwischen 12 V und 5 V geändert werden kann, ist diese Aufgabe dem VRFY-An­ schluß im erfindungsgemäßen Mikrocomputer zugewiesen. Der mit dem installierten EPROM ausgestattete erfindungsgemäße Mikrocomputer und die EPROM-Schreibeinrichtung für seine Programmierung sind mittels einer Adaptertafel verbunden, welche mit einer gesonderten Steuerschaltung versehen ist. Dieser mit dem VRFY-Anschluß vorgesehene Aufbau ist ein be­ sonderer, wenn auch ein dem Stand der Technik ähnlicher. Dieser Aufbau ermöglicht es, daß der Vpp-Anschluß als Doppelfunktions-Port wirkt, der auch als gewöhnlicher Ein­ gangsanschluß dient.
Ein Beispiel von Emulatoren (ICE: schaltungseingebundener Emulator), welche zur Programmentwicklung beim her­ kömmlichen Mikrocomputer verwendet werden, ist der von Mitsubishi Electric Co., Ltd. hergestellte PC4600. Ein spezieller Emulations-Chip kann aus einer Hostmaschine mittels dieses Emulators gesteuert werden. Die Hostmaschine ist unter der Steuerung der speziellen zur Echtzeitverfol­ gung befähigten Steuersoftware "RTT 74" in der Lage, den Mikrocomputer zu programmieren und zu debuggen.
Der erfindungsgemäße Mikrocomputer mit der installierten Sub-CPU ist ferner in der Lage, mit genau dem gleichen Emulatorsystem zu arbeiten, vorausgesetzt, daß nur Steuer­ software dafür beigefügt wird. Die beizufügende Steuersoft­ ware ist beispielsweise Software zum Laden des Programms der Sub-CPU 1 durch Zugreifen auf den Speicher der Sub-CPU 1 aus dem Haupt-CPU-Bus 10 oder Software zum Überwachen des Inhalts der Register und des in der Sub-CPU 1 vorgesehenen Speichers unter Verwendung der Abbruchfunktion.
Fig. 36 bis Fig. 39 sind schematische Darstellungen, welche ein Beispiel von Anschlüssen zur Pinverbindung des vorstehend beschriebenen Emulations-Chips zeigen, wobei insbesondere die mit der Emulator-Steuereinrichtung PC4600 verbundenen Oberseiten-Anschlüsse einen Aufbau aufweisen, der grundsätzlich demjenigen eines herkömmlichen Mikro­ computers gleicht.
Adreßsignale #AD0 bis #AD15, Datensignale #B0 bis #B7, ebenso ein Schreibsteuer-Signal #WR, ein Lesesteuer-Signal #RD, ein Anweisungs-Synchronisierungssignal #SYNC, ein Rücksetz-Ausgangssignal #RESETout und Stromversorgungs- Anschlüsse #Vss, #Vcc sind vorgesehen. Zusätzlich ist ein #U/S-Signaleingangs-Anschluß zum selektiven Steuern des Benutzermodus und des Systemmodus vorgesehen. Die sich an der Bodenfläche befindenden Anschlüsse vom ersten Pin bis zum 80sten Pin sind in der gleichen Auslegung angeordnet wie die Funktionen des Mikrocomputers, bei welchem der Masken-ROM oder der EPROM in dessen Endtarget eingebaut ist, und ein Emulations-Tool mit den gleichen elektrischen Charakteristiken ist zur Zeit der Programmentwicklung vor­ gesehen.
Im Mikrocomputer, bei dem die erfindungsgemäße Sub-CPU ebenfalls darin eingebaut ist, sind die Funktionen der An­ schlüsse auf der oberen Fläche des Emulations-Chips die gleichen wie diejenigen des Standes der Technik bei einem derartigen Aufbau, da das herkömmliche Emulationssystem verwendet werden kann, wie es ist.
Fig. 40 bis Fig. 45, Fig. 46, Fig. 47, Fig. 48A und Fig. 48B sind schematische Darstellungen, welche die Speicherzuweisung des Emulations-Chips in einer Aus­ führungsform des Mikrocomputers zeigen, wobei die er­ findungsgemäße Sub-CPU darin eingebaut ist.
Obwohl die in diesen Zeichnungen dargestellte Speicherzu­ weisung beinahe die gleiche wie die in Fig. 24 bis Fig. 29, Fig. 30, Fig. 31, Fig. 32A und Fig. 32B gezeigte Speicherzuweisung des Masken-ROMs oder des EPROMs ist, dient das ROM-Gebiet der Haupt-CPU 23 als eine Art externes Speichergebiet (alternatives internes ROM-Gebiet), welchem Daten aus der Emulator-Steuereinrichtung beim Empfang eines Signals an einem Anschluß an der oberen Fläche zugeführt werden. Es gibt keine Einschränkung dafür, daß die RAM- Größe auf der Seite der Haupt-CPU 23 die gleiche ist. Der Speicher auf der Seite der Sub-CPU 1 ist aus einem RAM an­ statt aus einem ROM gebildet, um ein Umschreiben des Programms zu erleichtern.
Fig. 49 bis Fig. 52 sind Blockschaltbilder, welche den Aufbau einer Speicher-Leseschaltung der Sub-CPU 1 in einer Ausführungsform des erfindungsgemäßen Mikrocomputers dar­ stellen. Beim erfindungsgemäßen Mikrocomputer ist es er­ forderlich, daß auf den Speicher der Sub-CPU 1 sowohl aus der Haupt-CPU 23 als auch aus der Sub-CPU 1 zugegriffen werden kann, wie soweit beschrieben, und daher wird eine Art Doppelport-Speicheraufbau notwendig.
Fig. 49 zeigt den Aufbau der Speicher-Leseschaltung zum Lesen aus dem RAM 2 und dem ROM/EPROM 3 des erfindungsge­ mäßen Mikrocomputers. In Fig. 49 bezeichnet das Bezugs­ zeichen 131(a, b) Speicherzellen des RAMs 2 und des ROMs/EPROMs 3, das Bezugszeichen 132(a, b) bezeichnet Multiplexer der Lese-Bitleitungen der Speicherzellen 131(a, b), und das Bezugszeichen 133(a, b) bezeichnet Abtastver­ stärker zum Lesen von Daten aus den Speicherzellen 131(a, b).
Das Bezugszeichen 135(a, b) bezeichnet einen Buspuffer zum Treiben der aus den Speicherzellen 131(a, b) gelesenen Daten zum Haupt-CPU-Datenbus 137. Der Buspuffer 135(a, b) wird zur Ausgabe an den Haupt-CPU-Datenbus 137 getrieben, wenn das RDCPU-Signal wahr ist, und wird zu einer hohen Impedanz für den Ausgang zum Haupt-CPU-Datenbus 137, wenn es falsch ist. Das RDCPU-Signal wird durch Decodieren der Adresse der Haupt-CPU 23 und ihres Lesesignals und der Sub- CPU-Testmodus-Bits STM 7, STM 6 erhalten.
Das Bezugszeichen 134(a, b) bezeichnet Buspuffer zum Trei­ ben von aus den Speicherzellen 131(a, b) gelesenen Daten zum Sub-CPU-Datenbus 138. Die Buspuffer 134(a, b) werden zur Ausgabe an den Sub-CPU-Datenbus 138 getrieben, wenn das RDSEQ-Signal wahr ist, und werden für den Ausgang an den Sub-CPU-Datenbus 138 auf eine hohe Impedanz gesetzt, wenn es falsch ist. Das RDSEQ-Signal wird durch Decodieren der Adresse der Sub-CPU 1 und ihres Lesesignals erhalten. Die Sub-CPU-Testmodus-Bits STM 7, STM 6 sind nicht notwendiger­ weise mit dieser Decodieroperation verknüpft.
Das Bezugszeichen 136(a, b) bezeichnet Gatter zum Steuern des Ausgangs der Abtastverstärker 133(a, b), und deren Aus­ gang wird durch eine durch das Bezugszeichen 144b bezeich­ nete Verriegelungseinrichtung gehalten und gleichzeitig den vorstehend beschriebenen Buspuffern 134b, 135b zugeführt, wenn das RDMem-Signal auf der Seite des ROMs/EPROMs 3 wahr ist. Wenn das RDMem-Signal falsch ist, dann schaltet das Gatter 136b AUS, so daß die durch die Verriegelungseinrich­ tung 144b gehaltenen Daten zugeführt bleiben, andererseits werden die Daten durch eine mit dem Bezugszeichen 144a be­ zeichnete Verriegelungseinrichtung gehalten und gleich­ zeitig den vorstehend beschriebenen Buspuffern 134a, 135a zugeführt, wenn das RDTestRAM-Signal wahr ist. Wenn das RDTestRAM-Signal falsch ist, dann schaltet das Gatter 136b AUS, so daß die durch die Verriegelungseinrichtung 144a gehaltenen Daten den Buspuffern 134a, 135a zugeführt blei­ ben.
Folglich werden auf der Seite des ROMs/EPROMS 3 Daten an den Sub-CPU-Datenbus 138 ausgegeben, wenn das RDMem-Signal wahr ist und das RDSEQ-Signal wahr ist, und an den Haupt- CPU-Datenbus 137 ausgegeben, wenn das RDMem-Signal wahr ist und das RDCPU-Signal wahr ist. Auf der Seite des RAMs 2 werden Daten an den Sub-CPU-Datenbus 138 ausgegeben, wenn das RDTestRAM-Signal wahr ist und das RDSEQ-Signal wahr ist, und an den Haupt-CPU-Datenbus 137 ausgegeben, wenn das RDTestRAM-Signal wahr ist und das RDCPU-Signal wahr ist.
Durch das Bezugszeichen 139 bezeichnete DEC1 bis DEC12 sind Adreßsignale, welche den Speicherzellen 131(a, b) zugeführt sind und entweder aus durch das Bezugszeichen 142 bezeich­ neten SEQ 0 bis SEQ 11 auf der Seite der Sub-CPU 1 oder aus Adressen AD1 bis AD12 auf der Seite der Haupt-CPU 23 durch ein Sub-CPU-Modusschaltsignal SEQACC am Gatter 141 gewählt sind.
Ähnlich ist ein durch das Bezugszeichen 140 bezeichnetes VMEM-Signal ein Synchronisierungssignal zum Zugreifen auf die Speicherzellen 131(a, b), und es wird entweder ein Takt M3V auf der Seite der Sub-CPU 1 oder ein Takt V1 auf der Seite der Haupt-CPU 23 mittels des SEQACC-Signals gewählt. Da in dieser Ausführungsform der Bus auf der Seite der Haupt-CPU 23 eine Breite von 8 Bit aufweist und der Bus auf der Seite der Sub-CPU 1 eine Breite von 16 Bit hat, bilden die Daten DB7 . . . DB0 (bit1) und DB7 . . . DB0 (bit0) des Haupt-CPU-Datenbusses 137 einen Satz. Um daher Daten an den Haupt-CPU-Datenbus 137 auszugeben, sind die Ausgange aus dem Abtastverstärker-Block beider Bits durch die Steuerung des Adreßleitungsbits 0AD0 verbunden. Die Daten des Sub- CPU-Datenbusses 138 sind mit SQR15 bis SQR0 bezeichnet.
Bei dem in Fig. 49 dargestellten Beispiel sind die Bus­ puffer 134b, 135b der Speicherzelle 131b des ROMs/EPROMs 3 und die Buspuffer 134a, 135a der Speicherzelle 131a des RAMs 2 getrennt. Jedoch kann der in Fig. 49 gezeigte Auf­ bau derart modifiziert werden, daß ein Aufbau entsteht, wie er in Fig. 50 dargestellt ist.
Bei der in Fig. 50 gezeigten Schaltung sind der Ausgang aus dem Abtastverstärker 133a des RAMs 2 und der Ausgang aus dem Abtastverstärker 133b des ROMs/EPROMs 3 gekoppelt, um die Lesedaten den beiden Buspuffern 134, 135 zuzuführen.
Fig. 51 ist ein Blockschaltbild, das ein Beispiel eines Schaltungsaufbaus zeigt, bei welchem das ROM-Gebiet der Sub-CPU 1 durch das RAM-Gebiet für den Emulations-Chip er­ setzt ist. Für Fig. 51 ist die Speicherzuweisung der Speicherzellen 131c, 131d in Fig. 46 dargestellt, und die Speicherzuweisung der Speicherzelle 131e entspricht den Adressen "0000" bis "0800" des in Fig. 30 gezeigten in­ stallierten ROM-Gebiets der Sub-CPU 1.
Fig. 52 ist ein detailliertes Logikschaltbild zur Dar­ stellung des Aufbaus der Seite des ROMs/EPROMs 3, welcher auf der rechten Seite der Fig. 49 gezeigt ist.
In Fig. 52 bezeichnet das Bezugszeichen 133b einen Abtast­ verstärker des ROMs/EPROMs 3, bei welchem ein Signal aus einer Bitsignalleitung, die durch den Multiplexer 132b aus Bitleitungen der in Fig. 49 dargestellten Speicher (ROM)-Zelle 131b gewählt wird, mit einer Referenzspannung ver­ glichen wird und das Ergebnis dem Gatter 136 zugeführt wird.
Fig. 53, Fig. 54 sind Schaltbilder, welche Beispiele von Schaltungsaufbauten zur Steuerung einer Verzögerung beim Zunehmen des RPH-Signals darstellen. Das RPH-Signal und das RPHD-Signal, welche eine derartige Beziehung aufweisen, wie sie in Fig. 55 dargestellt ist, wird durch eine derartige Schaltung erhalten. Die Verzögerung ist vorgesehen, um Daten in der nächsten Stufe, nachdem die Daten aus dem ROM/EPROM 3 gelesen und vollständig aufgenommen wurden, einem Puffer zuzuführen, da das Lesen der Daten mittels des Abtastverstärkers 133b eine bestimmte Zeitdauer bean­ sprucht. Die aufgenommenen Daten werden durch die Ver­ riegelungseinrichtung 144b gehalten und gleichzeitig den beiden Puffern 134b, 135b zugeführt. Diese Puffer 134b, 135b sind Drei-Zustands-Puffer, welche der aktiven Steuerung mittels des RDSEQ-Signals oder des RDCPU0-Signals unterliegen.
Fig. 56 ist ein Schaltbild, welches einen Schaltungsaufbau zum Erzeugen eines Timing-Signals RDROMZ zum Lesen des ROMs und eines Timing-Signals PGMEM zum Beschreiben des EPROMs zeigt, bei welchem diese bei der Eingabe des Adreßsignals, des Lesesignals und des Synchronisierungstakts SQMEMCLK er­ zeugt werden. Der ganze ROM/EPROM 3 ist als eine Kombi­ nation aus zwei 8-Bit-Blöcken ausgebildet, welche durch Decodieren der niederwertigsten Adresse AD0 spezifiziert werden.
Fig. 57 ist ein Schaltbild, das den Aufbau eines Abtast­ verstärkers und eines Buspuffers darstellt, welche dem unteren Abschnitt der in Fig. 52 gezeigten Schaltung ent­ sprechen. Fig. 58 ist ein Blockschaltbild, das einen Schaltungsaufbau zum Erzeugen der Lesesteuersignale RPH, RPL unter Verwendung des AD0-Signals darstellt.
Fig. 59 ist ein Impulsdiagramm, welches das Timing des Lesens aus dem in Fig. 52 gezeigten ROM darstellt, in welchem das Timing des Zugreifens auf den ROM 3 durch die Sub-CPU 1 gezeigt ist.
In Fig. 59 bezeichnet M3V einen Systemtakt der Sub-CPU 1, und TML und TMH sind Timing-Signale, die aus dem Takt M3V durch Vorsehen einer Verzögerung gegenüber seinem Zunehmen oder Abnehmen erhalten werden. SC12 bis SC0 sind Werte des Adreßbusses der CPU 1. Auf den Inhalt des Speichers wird gemäß der ROM-Adresse (ROM ADD) oder der RAM-Adresse (RAM ADD) zugegriffen. Das Lesen der Daten aus dem Speicher wird in einem Zeitabschnitt ausgeführt, wenn der Systemtakt M3V auf dem "L"-Pegel ist. Mit einer Verzögerung von T1 beim Timing des Abtastverstärkers werden das Lesesignal RPH, RPL sowie das Timing der Haltesignale RPHD, RPLD für die Puffer-Verriegelungseinrichtung 144 gesteuert, und mit einer Verzögerung von T2 bei demselben wird das Timing des der ALU 38 der Sub-CPU 1 zuzuführenden Signals E22 ge­ steuert. Diese Verzögerungen sind vorgesehen, um die Daten den Signalleitungen in der nächsten Stufe zuzuführen, welche eine größere Leitungskapazitätslast aufweist, nach­ dem die Daten aufgenommen worden sind.
Fig. 60, Fig. 61 sind schematische Darstellungen, welche die Sub-CPU 1 des erfindungsgemäßen Mikrocomputers und die Auslegung seines Speichers auf dem Chip zeigen.
Wie vorstehend beschrieben, ist es notwendig, den Haupt- CPU-Bus 10 (CPU AD15 bis AD0 und CPU DB7 bis DB0) und den Sub-CPU-Bus 28 (SEQAD12 bis SEQAD0 und SEQDB15 bis SEQDB0) derart anzuordnen, daß sie aneinandergrenzen, da es er­ forderlich ist, auf den Speicher der Sub-CPU 1 aus den beiden CPUs, namlich der Sub-CPU 1 und der Haupt-CPU 23, parallel zugreifen zu können. Es ist ferner notwendig, eine Mehrzahl von Speicherblöcken, wie beispielsweise von ROM- Speicherblöcken und RAM-Speicherblöcken, anzuordnen, welche das Zugreifen aus zwei Busarten verlangen.
Unter derartigen vorstehend beschriebenen Umständen ist der Speicher des Emulations-Chips ausgebildet, wie in der schematischen Darstellung der Fig. 60 gezeigt, und der Speicher des Zielerzeugnisses, das den Masken-ROM oder den EPROM installiert hat, ist ausgebildet, wie in der schema­ tischen Darstellung der Fig. 61 gezeigt.
Nun wird der Betrieb der bevorzugten Ausführungsformen des wie vorstehend beschrieben ausgebildeten erfindungsgemäßen Mikrocomputers nachstehend beschrieben werden.
Zuerst wird die Anspruch 1 und Anspruch 4 entsprechende Ausführungsform nachstehend beschrieben werden, nämlich eine Schaltung zum Zugreifen auf das Speichergebiet der Seite der Sub-CPU 1 aus der Sub-CPU 1 mittels eines Steuerregisters, auf das aus der Haupt-CPU 23 zugegriffen werden kann.
Wie im Zusammenhang mit Fig. 17 und Fig. 18 beschrieben, sind das Speichergebiet der Haupt-CPU 23 und das Speicher­ gebiet der Sub-CPU 1 im erfindungsgemäßen Mikrocomputer ge­ trennt, so daß auf das Speichergebiet der Haupt-CPU 23 aus der Haupt-CPU 23 zugegriffen wird und auf das Speicherge­ biet der Sub-CPU 1 aus der Sub-CPU 1 unabhängig zugegriffen wird. Zum Zwecke des Testens der Sub-CPU 1, wie nachstehend beschrieben, oder um ein Programmdebug-Tool vorzusehen, ist das Speichergebiet der Sub-CPU 1 derart ausgebildet, daß aus der Haupt-CPU 23 auf dasselbe zugegriffen werden kann. Dieser Spezialbetriebsmodus wird in verschiedenen Fällen ausgeführt.
Einer der Fälle besteht darin, daß die Testmodus-Steuerbits STM 7, STM 6 auf den Debug-Modus gesetzt sind. In diesem Fall entspricht die Zuweisung der beiden Speichergebiete der in Fig. 25 und Fig. 26 oder in Fig. 27 und Fig. 28 dargestellten zugewiesenen Beziehung. Da die Werte der Sub- CPU-Testmodus-Steuerbits STM 7, STM 6 aus der Haupt-CPU 23 gesetzt werden können, kann eine Reihe von Operationen durch den Zugriff aus der Haupt-CPU 23 gesteuert werden.
Ein weiterer Fall besteht darin, die AD16 im EPROM-Modus oder im peripheren Testmodus zu verwenden. Durch Einführen der erweiterten 1-Bit-Adresse AD16 wird es möglich, den Speicherraum von der Normalgröße von 64 KByte auf 128 KByte in einem Spezialmodus zu expandieren. Somit kann auf das Speichergebiet der Sub-CPU 1 aus der Haupt-CPU 23 zuge­ griffen werden. In diesem Fall wird die Zuweisung des Speichergebiets zugewiesen, wie in Fig. 29 bis Fig. 31 und Fig. 32A, Fig. 32B dargestellt. Das Setzen des EPROM- Modus und des peripheren Testmodus wird im herkömmlichen Mikrocomputer ebenfalls übernommen, und das Setzen kann ausgeführt werden, indem ein Signal direkt von draußen an einen Anschluß des Mikrocomputers gelegt wird, ohne die Haupt-CPU 23 zu betreiben.
Um das Speichergebiet der Sub-CPU 1 unter Verwendung des peripheren Testmodus zu testen, werden zuerst externe An­ schlüsse des Mikrocomputers in einer vorbestimmten Prozedur gesetzt, um den peripheren Testmodus zu schalten, und dann wird die Adresse des Speichers der Sub-CPU 1 vom Adreßan­ schluß zugeführt. Bei dem in Fig. 29 dargestellten Bei­ spiel wird ein Gebiet von der Adresse "14000" bis "14FFF" einfach unter Verwendung der Expansionsadresse AD16 im ROM- Test gelesen, wodurch es ermöglicht wird, die im Masken-ROM oder im EPROM geschriebenen Daten zu lesen und den Inhalt zu überprüfen. Beim RAM-Test werden die Testdaten in das Gebiet von der Adresse "17F80" bis "17FFF" einmal geschrie­ ben, anschließend werden die Daten unter diesen Adressen gelesen, um zu überprüfen, ob die geschriebenen Daten korrekt gelesen wurden, wobei somit der Betrieb der RAM- Schaltung überprüft werden kann. Der Prozeß ist der gleiche wie der vorstehend beschriebene, wenn der Prozessor-Modus verwendet wird, in welchem Fall der Speicher der Sub-CPU 1 durch Laufenlassen eines Programms der Haupt-CPU 23 ge­ testet wird, nachdem die Sub-CPU-Testmodus-Steuerbits STM 7, STM 6 auf den Debug-Modus gesetzt wurden.
In der Ausführungsform des Anspruch 6 entsprechenden EPROM- Modus, wie vorstehend unter Bezugnahme auf Fig. 33 be­ schrieben, wird das gewöhnliche Speichergebiet erweitert durch Hinzufügen von einem Bit der Adreßbitleitung, nämlich des AD16, damit es dem Speicher der Sub-CPU 1 entspricht. Das AD16- und das EPROM-Modusentscheidungs-Signal wird in die Adreßdecodierschaltung der Sub-CPU 1 eingegeben, und das AD16 wird im EPROM-Modus wirksam. Wenn eine derartige Schaltung für den Speicher der Haupt-CPU 23 vorgesehen wird, ist es natürlich notwendig, das im EPROM-Modus auf "0" stehende AD16 zu decodieren, so daß die Ausgänge aus oder die Eingänge zu den Speichern beider CPUs nicht vor­ mischt werden. Der Aufbau von diesem Abschnitt ist auch im peripheren Testmodus prinzipiell der gleiche, und der größere Abschnitt kann gemeinsam für die Decodierschal­ tungen für die beiden CPUs verwendet werden.
Nun wird eine Anspruch 1 und Anspruch 2 entsprechende Aus­ führungsform unter Bezugnahme auf Fig. 17 bis Fig. 23 nachstehend beschrieben werden, nämlich der Betrieb des Mikrocomputers mit einer Einrichtung zum Erzeugen des Sub- CPU-Rücksetzvektors ausschließlich zum Zwecke des Testens.
Zunächst wird die Sub-CPU 1 des erfindungsgemäßen Mikro­ computers normal rückgesetzt und gestartet, wie nachstehend beschrieben. Die Sub-CPU-Testmodus-Bits STM 7, STM 6 sind auf den Normalmodus "00" gesetzt, und im in Fig. 19 mit dem Bezugszeichen 48 dargestellten Startsteuerbit MINI ist "1" geschrieben. Das veranlaßt die Einzelimpuls-Schaltung 49, einen Einzelimpuls zu erzeugen, so daß das Sub-CPU- Rücksetzsignal Sub CPU reset während des Zeitabschnitts dieses Impulses aktiviert wird. Wenn zu dieser Zeit die Sub-CPU-Testmodus-Bits STM 7, STM 6 auf einen sich vom De­ bug-Modus unterscheidenden Modus gesetzt sind, dann wird das Signal g8 ermöglicht und ein durch den Spezialcode- Generator 43 erzeugter Anweisungscode in die Anweisungs- Verriegelungseinrichtung 45 und den Anweisungs-Decodierer 46 eingegeben, während das Rücksetzsignal g9 unter den Aus­ gängen des Anweisungs-Decodierers 46 aktiviert und dem Nach-Decodierer 47-2 zugeführt wird. Der Nach-Decodierer 47-2 erzeugt ein logisches Produkt aus dem Signal g9 und dem invertierten Wert des TEST-Signals und verursacht da­ durch, daß das normale Rücksetzsignal g0 aktiviert wird. Das veranlaßt das Gatter 55-1, auf EIN zu schalten, so daß der Ausgang des Rücksetzvektor-Generators 52 dem Programm­ zähler 5 der Sub-CPU 1 zugeführt wird, wodurch der Wert des Programmzählers 5 initialisiert wird. Der Ausgang des Pro­ grammzählers 5 ist eine Adresse für das Zugreifen auf das Speichergebiet der Sub-CPU 1 und wird zum Pfad 56 ausge­ geben. Da der Wert des Programmzählers 5 rückgesetzt (initialisiert) ist, wird im darauffolgenden Zyklus dem Anweisungs-Decodierer 45 und der Anweisungs-Verriegelungs­ einrichtung 46 derjenige Wert als zuerst auszuführender Anweisungscode zugeführt, der im Speicher im durch die Rücksetzvektor-Adresse angegebenen Programmgebiet ge­ speichert ist.
Danach wird der Programmzähler 5 fortlaufend erhöht, um das Zielprogramm auszuführen. Diese Prozedur ist die gleiche wie diejenige der gewöhnlichen Computer vom von-Neuman-Typ des Standes der Technik.
Nun wird die zum Test dienende Operation des Rücksetzens der Sub-CPU, welche ein kennzeichnendes Merkmal der Erfin­ dung ist, nachstehend beschrieben werden. Die Operation ist jedoch die gleiche wie die normale Rücksetzoperation.
In diesem Fall ist das Testmodus-Steuerregister 4 auf den Testmodus gesetzt (TEST = 1). Als Wert ist "1" in das Start-Steuerregister 48 geschrieben, das Signal g0 unter den Ausgängen des Nach-Decodierers 47-2 wird "0", und das Signal g1 wird "1" (aktiv). Das veranlaßt das Gatter 55-2 auf EIN zu schalten, so daß der Wert des Testvektor-Re­ gisters 53 in den Programmzähler 5 geladen wird und das Programm bei der durch diesen Wert spezifizierten Adresse startet.
Das Testvektor-Register 53 muß nicht als Register ausge­ bildet sein, sondern kann in einem derartigen Aufbau vor­ liegen, daß ein festgelegter Wert mittels Hardware ausge­ geben wird. Der Aufbau mit dem Testvektor-Register 53 zum Ermöglichen des Zugreifens aus der Haupt-CPU 23 ermöglicht es jedoch, eine beliebige Adresse zu setzen, welche durch die Haupt-CPU 23 zum Starten des Programms spezifiziert sein kann.
Falls zusätzlich zum vorstehenden Aufbau ein derartiger Schaltungsaufbau ausgebildet ist, daß der Sub-CPU-Block 15 durch die Hardware beim Test-Rücksetzen nicht rückgesetzt wird, können die Bedingungen beibehalten werden, unter denen das Programm während der Ausführung unterbrochen wird, und unter diesen Bedingungen kann das Programm bei einer gewünschten Adresse erneut gestartet werden, wenn ein Emulator realisiert wird.
Diese Funktion ist sehr nützlich, wenn sie mit der Stop-An­ weisung (STP) kombiniert ist, welche Anspruch 9 ent­ spricht. Beispielsweise ermöglicht es die Verwendung dieser Funktion, ein langes Programm mit einem kleinen für den Test vorgesehenen RAM-Gebiet auszuführen. Die Stop-An­ weisung dient dazu, die Ausführung eines Programms zeit­ weilig anzuhalten, bis ein nächstes Unterbrechungs- oder Rücksetzsignal empfangen wird. Die Funktion der Stop-An­ weisung wird im allgemeinen durch Stoppen des Systemtakts ausgeführt.
Ein Beispiel einer Testprozedur, die durch Kombination der Aufbauten gemäß Anspruch 1, Anspruch 2, Anspruch 4 und Anspruch 9 ermöglicht wird, wird nachstehend beschrieben werden.
Zunächst wird die Haupt-CPU 23 im Prozessor-Modus oder im Speicherexpansions-Modus in Betrieb gesetzt. Dann werden die Sub-CPU-Testmodus-Bits STM 7, STM 6 in den Debug-Modus umgeschaltet, um dadurch den ersten Abschnitt der Test­ programm-Daten der Sub-CPU 1 im Speicher-RAM-Gebiet der Sub-CPU 1 aus der Haupt-CPU 23 zu schreiben. Der erste Ab­ schnitt ist mit einer Stop-Anweisung am Ende seines aus­ führbaren Teils versehen, um die Ausführung des Programms nach Abschluß des ersten Abschnitts anzuhalten. Nach dem Schreiben der Startadresse des Testprogramms im Testvektor- Register 53 wird dann der Wert "1" im Start-Steuerbit 48 geschrieben, um dadurch die Ausführung des Programms zu starten. Somit wird die Ausführung des ersten Abschnitts des Testprogramms gestartet.
Wie am Fuß der Fig. 23 dargestellt, kann durch Überwachen des SEQSTP-Bits mit der Haupt-CPU 23 ermittelt werden, ob das Programm an einem Halt ist oder nicht. Durch Überprüfen des SEQSTP-Bits nach dem Verstreichen eines angemessenen Zeitabschnitts ist die Haupt-CPU 23 ebenfalls dazu in der Lage, einen Halt der Sub-CPU 1 zu ermitteln. Oder alter­ nativ kann eine derartige Schaltung verwendet werden, daß die Haupt-CPU 23 unterbrochen wird, wenn die Sub-CPU 1 ge­ stoppt ist, wenn nämlich das SEQSTP-Bit auf "1" gesetzt ist.
Wenn die Ausführung des Programms der Sub-CPU 1 gestoppt worden ist, dann sind die Sub-CPU-Testmodus-Bits STM 7, STM 6 auf den Debug-Modus gesetzt, um dadurch den dem vor­ stehend beschriebenen ersten Abschnitt folgenden zweiten Abschnitt des Testprogramms aus der Haupt-CPU 23 in den RAM-Abschnitt der Sub-CPU 1 ähnlich wie im vorstehend be­ schriebenen Fall zu schreiben. Der zweite Abschnitt ist ebenfalls mit einer Stopanweisung an seinem Ende versehen. Da die Sub-CPU-Test 20648 00070 552 001000280000000200012000285912053700040 0002004418892 00004 20529modus-Bits STM 7, STM 6 auf den Test­ modus gesetzt sind, um dadurch die Startadresse des zweiten Abschnitts des Testprogramms im Testvektor-Register 53 zu schreiben, wird die Ausführung des Programms ähnlich wie vorstehend beschrieben gestartet.
Da das Testprogramm ausgeführt ist, werden die in Speichern, wie beispielsweise den Registern und dem RAM der CPU 1, gespeicherten Daten verarbeitet, um die Werte umzu­ schreiben. Ob das Programm wie beabsichtigt ausgeführt wurde oder nicht, kann durch Zugreifen auf die Register oder den RAM aus dem Haupt-CPU-Bus 10 und Untersuchen ihrer Werte überprüft werden. Das ermöglicht es, die Funktionen der Sub-CPU 1 zu testen, um zu erkennen, ob sie korrekt ab­ laufen.
Wenn beispielsweise die Funktion des Aufaddierens von Werten der Register A, B und das Speichern der Summe in einem Register C getestet wird, dann setzt das Testprogramm Werte in die Register A, B und führt die Addieranweisung (ADD) aus und speichert das Ergebnis im Register C. Nach dem Übertragen des im Register C gespeicherten Additions­ ergebnisses in ein Register D, auf das aus der Haupt-CPU 23 zugegriffen werden kann, wird die Stop-Anweisung ausgeführt und der Wert des Registers D durch die Haupt-CPU 23 über­ prüft, und die Sub-CPU 1 kann von der Haupt-CPU 23 über­ prüft werden, um zu erkennen, ob sie korrekt funktioniert oder nicht.
Nun wird eine Anspruch 6 und Anspruch 7 entsprechende Aus­ führungsform unter Bezugnahme auf Fig. 17 bis Fig. 22 nachstehend beschrieben werden, nämlich der Betrieb des Mikrocomputers, der mit einer Steuerschaltung versehen ist, um die Operation gemäß eines Abbruchvektors nach Ermittlung eines Abbruchs zu verzweigen.
Der Wert des Programmzählers 5, nämlich der PC-Wert, ändert sich gemäß den Anweisungen des Programms, während die Schaltung zum Ermitteln der Übereinstimmung 16 den PC-Wert mit der Abbruchadresse als dem Wert des Abbruchadreß-Regi­ sters 6 vergleicht, um ihre Übereinstimmung in jedem Zyklus zu prüfen. Die Anzahl der durch die Schaltung zum Ermitteln der Übereinstimmung 16 ermittelten auftretenden Überein­ stimmungen wird durch den Abbruchzähler 9 gezählt, und wenn der Zählwert einen vorbestimmten Wert erreicht, insbesonde­ re wenn auf Null herabgezählt ist, dann wird das Abbruch­ signal HW BRK aktiviert.
Ferner ist ein Aufbau möglich, der nicht mit dem Abbruch­ zähler 9 versehen ist, in welchem Fall das Abbruchsignal HW BRK sogleich aktiviert wird, wenn die Schaltung zum Er­ mitteln der Übereinstimmung 16 eine Übereinstimmung er­ mittelt.
In diesem Fall erzeugt der Spezialcode-Generator 43 den BRK-Anweisungs-Code zur gleichen Zeit, zu welcher das Aus­ gangssignal g8 aus dem ODER-Gatter 51 auf "1" schaltet. Nach Empfang des BRK-Anweisungs-Codes wird der Wert des Abbruchvektor-Registers 7 in den Programmzähler 5 geladen, während die Anweisungs-Verriegelungseinrichtung 45, der An­ weisungs-Decodierer 46 und der Nach-Decodierer 47-1 die An­ weisungen bei der durch den Abbruchvektor angegebenen Adresse verarbeiten. Gleichzeitig wird die Adresse, bei welcher das Programm während der Ausführung gestoppt ist, aus dem Programmzähler 5 in das Adreßsicherungs-Register 8 mittels der Signalleitung 57 und des Gatters 58-4 ge­ sichert.
Der im Adreßsicherungs-Register 8 gespeicherte Wert wird beim Rückkehren aus der Abbruchroutine verwendet. Die Ab­ bruchadresse kann durch Setzen eines gewünschten Wertes im Abbruchadreß-Register 6 von der Seite der Haupt-CPU 23 optional gewählt werden.
Der durch das Bezugszeichen 5 in Fig. 19 bezeichnete Programmzähler kann durch einen Adreßpuffer ersetzt werden, in welchem Fall die Übereinstimmung der Adresse während des Zugriffs auf den Speicher für Daten, nicht die Programm­ adresse, ebenfalls ermittelt werden kann. Der Ablauf eines Programms in einem derartigen Fall ist in Fig. 21 schema­ tisch dargestellt.
Für den Abbruchvektor kann ein derartiges Verfahren wie eine hardwaremäßige Logik verwendet werden, welche im voraus festgelegt ist, oder es können im ROM geschriebene Ladedaten oder ein in einem gesonderten Register ge­ schriebener Wert verwendet werden. Wenn ein spezielles Register verwendet wird, dann kann das Programm nach Ab­ brechen bei einer gewünschten Adresse verzweigt werden durch Ausführen des zu debuggenden Teils des Programms, sobald der Abbruchvektor im Abbruchvektor-Register 7 durch die Test-Rücksetzroutine gespeichert worden ist.
In der vorstehenden Beschreibung ist die Abbruchanweisung mit dem Betrieb einer Hardwareschaltung zum Ermitteln der Übereinstimmung mit der Abbruchadresse verknüpft. Die Ab­ bruchanweisung kann jedoch auch mittels Software durch Ein­ schließen der BRK-Anweisung im Programm ausgeführt sein, in welchem Fall das Verzweigen in die Abbruchroutine in der gleichen Prozedur durchgeführt wird. Der Software-Abbruch wird in einem derartigen Fall verwendet, da die BRK-An­ weisung vor dem Debuggen an einer geeigneten Stelle im Programm gesetzt wurde, um dadurch zu entscheiden, ob eine in der Nähe gelegene Routine ausgeführt wird oder nicht, oder um die Werte der Register zu prüfen, wenn die Pro­ grammausführung zur Stelle der BRK-Anweisung fortge­ schritten ist.
Die Anspruch 8 entsprechende Ausführungsform weist einen derartigen Aufbau auf, da zusätzlich zum vorstehend be­ schriebenen Aufbau die Anzahl der auftretenden Überein­ stimmungen, welche die in Fig. 19 dargestellte Schaltung zum Ermitteln der Übereinstimmung 16 ermittelt hat, durch den Abbruchzähler 9 herabgezählt wird, und wenn auf die Abbruchadresse in der vorbestimmten Häufigkeit zugegriffen worden ist, dann wird die Programmausführung unterbrochen. Dieser Aufbau erleichtert es, beispielsweise die Register­ werte durch Abbrechen zu überprüfen, nachdem eine Schleife des Programms mit der vorbestimmten Häufigkeit wiederholt worden ist, oder die Ausführung abzubrechen, wenn das Zu­ greifen auf eine spezielle Adresse mit der vorbestimmten Häufigkeit ausgeführt worden ist, und den Zustand zu prüfen. Die Daten für den Abbruchzähler 9 können in diesem Fall ebenfalls durch Schreiben derselben in das Register von der Haupt-CPU 23 gesetzt werden.
Nun wird nachstehend eine Anspruch 9 und Anspruch 10 ent­ sprechende Ausführungsform beschrieben werden, das heißt der Betrieb des Mikrocomputers, welcher mit der Anweisung zur Rückkehr aus dem Abbruchzustand in Form von Hardware versehen ist.
Obwohl diese Ausführungsform der Operation des vorstehend beschriebenen Test-Rücksetzens sehr ähnlich ist, ist das Testmodus-Steuerregister 4 auf den HW RTB-Modus gesetzt, und auf das Start-Steuerbit 48 ist in dieser Ausführungs­ form der Wert "1" gesetzt. In diesem Fall ist das Steuer­ signal g3 aus dem Nach-Decodierer 47-2 zum Decodierer­ ausgang befähigt, und der Wert des Adreß-Sicherungs­ registers 8 ist in den Programmzähler 5 geladen. Das er­ möglicht es, die Ausführung des Programms bei der im Adreß- Sicherungsregister 8 gesicherten Adresse derjenigen An­ weisung fortzusetzen, welche zur Zeit des Abbruchs ausge­ führt wurde.
Nachstehend wird ein Verfahren zum Debuggen der Sub-CPU be­ schrieben werden, welches durch Verwenden dieser Funktion ermöglicht wird. Der Zweck des Debuggens eines Programms besteht darin, zu erkennen, wann das entwickelte Programm Spezifikationen entsprechend korrekt aufgestellt ist und wie das Programm funktioniert, durch Überprüfen der Werte der Register und der im Speicher gespeicherten Daten, wenn das Programm bis zu einer Zieladresse ausgeführt worden ist.
Zuerst wird die Zieladresse in das Abbruchadreß-Register 6 geschrieben und wird, wie gewünscht, die Anzahl der Wieder­ holungen einer Schleife in den Abbruchzähler 9 geschrieben. Die Sub-CPU 1 wird im Test-Modus gestartet, und nach dem Speichern der Startadresse der Abbruchroutine im Abbruch­ vektor-Register 7 verzweigt das Programm in das zu de­ buggende Programm. Da die Schaltung zum Ermitteln der Über­ einstimmung 16 immer in Betrieb ist, verzweigt das Programm mittels der Hardware in die Abbruchroutine, wenn die Aus­ führung des Zielprogramms die Abbruchadresse erreicht. In der Abbruchroutine wird der Wert der notwendigen Register oder des RAMs kopiert und zeitweilig in einem Sicherungsge­ biet des RAMs gesichert und die Stop-Anweisung ausgeführt. Wenn die Stop-Anweisung ausgeführt ist, dann wird der Zu­ stand durch die Haupt-CPU 23 ähnlich wie vorstehend be­ schrieben ermittelt und die Sub-CPU 1 in den Debug-Modus umgeschaltet. Dann werden die im Sicherungsgebiet des RAMs gesicherten Daten durch die Haupt-CPU 23 gelesen und wird der Wert des Registers an der Abbruchstelle geprüft.
Wenn die Ausführung des Programms aus der Abbruchroutine zur Adresse an der Stelle zurückkehrt, an welcher der Ab­ bruch stattfand, dann wird die in Anspruch 6 beschriebene Funktion wirksam. Das heißt, die Adresse, die im Adreß- Sicherungsregister 8 gespeichert worden ist, wird dem Programmzähler 5 der Sub-CPU 1 wieder zugeführt, da die Sub-CPU-Testmodus-Bits STM 7, STM 6 in den RTB-Modus umge­ schrieben sind und die Sub-CPU 1 nach Bestätigen der Re­ gisterwerte gestartet wird. Das ermöglicht es ihm, in die Routine zurückzukehren, die vor dem Verzweigen in die Ab­ bruchroutine ausgeführt wurde, und den Rest des Programms nur durch einen Befehl aus der Haupt-CPU 23 auszuführen. Durch eine Wiederholung von derartigen Operation kann das Programm der Sub-CPU 1 Schritt für Schritt ausgeführt werden, während es debuggt wird. Ein Beispiel eines Pro­ grammablaufs für eine derartige Operation ist in der schematischen Darstellung der Fig. 22 gezeigt.
Nun wird eine Anspruch 11 entsprechende Ausführungsform nachstehend beschrieben werden, nämlich der Betrieb eines Emulations-Chips zur Programmentwicklung.
Die Entwicklung eines Programms für einen Mikrocomputer er­ fordert einen Emulations-Chip und einen Emulator zu seiner Steuerung. Der Emulator speichert das debuggte Programm und überträgt das Programm wie gewünscht in den Emulations- Chip. Die Emulation von Programmen für die Sub-CPU 1 des erfindungsgemäßen Mikrocomputers wird nicht nach dem her­ kömmlichen Verfahren ausgeführt, bei welchem in jedem Zyklus Programmdaten aus dem Emulator zugeführt werden, sondern nach einem derartigen Verfahren, daß das ganze Programm im voraus im auf dem Emulations-Chip gelegenen Programmspeichergebiet der Sub-CPU 1 gespeichert wird, be­ vor das Programm ausgeführt wird. Das bedeutet, daß die Emulation nach dem Booten des Programms für die Sub-CPU 1 in den Emulations-Chip ausgeführt wird.
Der vorstehende Betrieb wird nachstehend detailliert be­ schrieben werden. Die Steuerung der Haupt-CPU 23 wird nach dem herkömmlichen Verfahren durchgeführt, bei welchem ein Programm der Haupt-CPU 23 aus dem Emulator mittels auf der Oberseite des Emulations-Chips gelegener Anschlüsse in jedem Zyklus zugeführt wird. Da die Anschlüsse auf der Oberseite direkt mit dem Haupt-CPU-Bus 10 verbunden sind, ist dieser Betrieb demjenigen eines Prozessors äquivalent, der den Emulator als externen Speicher verwendet. Da bei dem erfindungsgemäßen Mikrocomputer von der Haupt-CPU 23 auf das Speichergebiet der Sub-CPU 1 wie vorstehend be­ schrieben zugegriffen werden kann, kann durch Betreiben der Haupt-CPU 23 und Umschreiben der Sub-CPU-Testmodus-Bits STM 7, STM 6 eine Gruppe von Programmdaten für die Sub-CPU 1 kontinuierlich in den Speicher der Sub-CPU 1 mittels eines einfachen Programms der Haupt-CPU 23 geschrieben werden. Das Programm kann unbeschränkt geschrieben werden, da der ganze Speicher für die Sub-CPU 1 nur aus RAMs im Emu­ lations-Chip besteht. Nachdem das Programm geschrieben worden ist, wird das Programm für die Sub-CPU 1 gemäß dem im RAM geschriebenen Programm ausgeführt, wenn die Sub-CPU- Testmodus-Bits STM 7, STM 6 wieder in den Normalmodus oder Testmodus geschrieben sind.
Beim Debuggen kann die Funktion des Überwachens des Inhalts der Register oder des Speichers der Sub-CPU 1 im Emulator durch Verwenden der Abbruchfunktion realisiert werden, wie vorstehend beschrieben. Daher ist es ferner durch Vorsehen von verschiedenen Programmen der Abbruchroutine und nach dem Setzen von Werten direkt in die Register oder den Speicher der Sub-CPU 1 möglich, das Programm der Sub-CPU 1 im Testmodus an einer beliebigen vom Programmierer ge­ wünschten Stelle auszuführen.
Die Emulation kann selbstverständlich ferner durch gleich­ zeitiges Betreiben sowohl der Sub-CPU 1 als auch der Haupt- CPU 23 ausgeführt werden. Das heißt, nach dem vorstehend beschriebenen Booten des Programms für die Sub-CPU 1 wird das Programm der Haupt-CPU 23 durch den auf der Oberseite gelegenen Anschluß in jedem Zyklus ähnlich dem her­ kömmlichen Emulationsverfahren zugeführt, wodurch erreicht wird, daß beide CPUs in exakt der gleichen Weise betrieben werden, wie sie das im Endzustand als Erzeugnis des Mikro­ computers werden. In einem derartigen Endzustand führen die Haupt-CPU 23 und die Sub-CPU 1 ihre Programme unabhängig voneinander situationsgemäß aus, während sie Daten mit­ einander austauschen.
Schließlich wird eine Anspruch 5 entsprechende Ausführungs­ form nachstehend beschrieben werden, nämlich ein Betrieb des Speichers der Sub-CPU 1.
Es ist notwendig, daß auf den Speicher der Sub-CPU 1 sowohl aus der Haupt-CPU 23 als auch aus der Sub-CPU 1, wie soweit beschrieben, zugegriffen werden kann, was eine Art Doppel­ port-Speicherstruktur erfordert. Bei dem erfindungsgemäßen Mikrocomputer ist der Ausgang von einem Abtastverstärker 133(a, b) für jede Bitleitung an der Lesestelle der Speicher 2, 3 der Sub-CPU 1 in Puffer verzweigt, welche zum Sub-CPU-Bus 28 und zum Haupt-CPU-Bus 10 führen. Die aus den Speichern 2, 3 gelesenen Daten werden aus den Speicher­ zellen 131(a, b) mittels der Bitleitungen an die Abtastver­ stärker 133(a, b) gesendet, um dadurch digitale Ausgänge von "1"/"0" zu erhalten, ähnlich wie im Fall des her­ kömmlichen Mikrocomputers.
Die Ausgänge der Sub-CPU-Testmodus-Bits STM 7, STM 6 werden decodiert, um das Modussignal auszugeben, wohingegen im De­ bug-Modus der Pufferausgang der Haupt-CPU 23 aktiviert wird, so daß Daten zum Haupt-CPU-Datenbus 10 übertragen werden. In den sich vom Debug-Modus unterscheidenden anderen Modi ist der Puffer zur Haupt-CPU 23 derart ausge­ bildet, daß er eine hohe Impedanz aufweist, nämlich in den AUS-Zustand versetzt wird, und daher seine Daten nur dem Sub-CPU-Bus 28 zugeführt werden. Natürlich ist der Speicherpuffer auf der Seite der Sub-CPU 1 nur dann aktiviert, wenn auf den Speicherblock der Sub-CPU 1 gemäß dem Ergebnis des Decodierens des Adreßraums der Sub-CPU 1 zugegriffen wird, wohingegen der Pufferausgang einen Hoch­ impedanz-Zustand annimmt, wenn auf den Speicherblock nicht zugegriffen wird.
Die Kreise in Fig. 49 bis Fig. 51 stellen Schalter der Signalleitung dar, welche aus Transmissionsgattern oder Drei-Zustands-Puffern gebildet sein können und durch die neben den entsprechenden Kreisen angegebenen Signale EIN/AUS-gesteuert sind.
Die Adreßsignale werden dem Adreßdecodierer dieses Speichers durch Wählen entweder der Sub-CPU-Adreßsignale SEQ0 bis SEQ11 und des READ-Signals oder der Haupt-CPU- Adreßsignale AD1 bis AD12 und des Haupt-CPU-READ-Signals zugeführt, um dadurch die DEC1 bis DEC12 zu erhalten. Da in dieser Ausführungsform die Speicherdaten der Sub-CPU 1 eine Länge von 16 Bit und die Speicherdaten der Haupt-CPU 23 eine Länge von 8 Bit aufweisen, sind die Adreß-Bitleitungen um ein Bit gegeneinander versetzt, um die Adreßsignale den DECn-Signalen zuzuführen. Die Adreßsignale von höheren Bits als AD13 werden in einem anderen Abschnitt decodiert, um dadurch das RDCPU-Signal selbst zu steuern, und somit werden die Daten nur dann dem Bus zugeführt, wenn er dem Zielgebiet des ganzen Speicherraums entspricht.
Ferner kann die Anzahl der Buspuffer verkleinert werden, indem ein derartiger Aufbau realisiert wird, daß die Aus­ gänge der Abtastverstärker 133(a, b) der beiden Speicherge­ biete den Buspuffern 135(a, b) selektiv zugeführt werden. Das heißt, wenn der Wert der RAM-Zelle gelesen wird, dann ist das RDTestRAM-Signal aktiviert, so daß der Ausgang des RAM-Abtastverstärkers mit den Eingängen der beiden Puffer verbunden ist, und wenn der Wert der ROM-Zelle gelesen wird, dann ist das RDMem-Signal aktiviert, so daß der Wert des ROMs dem Puffer zugeführt wird.
Wenn sich der Basistakt V1 der Haupt-CPU 23 und der Basis­ takt M3V der Sub-CPU 1 unterscheiden, dann wird entweder das dem Modus entsprechende Taktsignal V1 oder M3V auch für denjenigen Takt VMEM gewählt, der dem Abtastverstärker zu­ geführt wird. Das heißt, der V1-Takt wird der Basistakt des Speicherzugriffs im Debug-Modus, so daß das Vorladen des Speichers und das Lesen der Speicherdaten gemäß seinem Taktzyklus ausgeführt wird. In sich vom Debug-Modus unter­ scheidenden anderen Modi wird der Sub-CPU-Takt M3V zuge­ führt, um ein Zugreifen auf den Speicher aus der Sub-CPU 1 zu ermöglichen.
Die unter der Steuerung durch das Signal e22 in Fig. 49, Fig. 50 verzweigenden Signalleitungen sind Signalleitungen zum Zuführen von Speicherdaten des Registerbus-Raumes der Sub-CPU 1. Wenn die Anweisungsdecodierung verursacht, daß das Signal e22 aktiviert wird, dann ist es dazu in der Lage, die aus dem Speicher gelesenen Daten in den Register­ speicher-Raum zu senden, und die Daten werden der in der CPU 1 vorgesehenen ALU 38 zugeführt.
Wie vorstehend beschrieben, ist der erfindungsgemäße Mikro­ computer in der Lage, eine Testumgebung und eine Debug-Um­ gebung für die Ein-Chip-Sub-CPU vorzusehen. Obwohl nur eine Sub-CPU in den vorstehend beschriebenen Ausführungsformen vorgesehen ist, ist die Erfindung nicht auf derartige Auf­ bauten beschränkt, und ein Aufbau mit einer Mehrzahl von Sub-CPUs kann einfach erreicht werden.
Da eine Steuerschaltung zum Steuern des Speicherzugriffs und des Betriebs der Sub-CPU vom Haupt-CPU-Bus in der vor­ stehend beschriebenen Erfindung vorgesehen ist, kann ein derartiger Mikrocomputer vorgesehen sein, bei welchem die Sub-CPU getestet und debuggt werden kann, ohne die Anzahl spezieller Anschlüsse zu vergrößern, und welcher die Haupt- CPU und eine oder eine Mehrzahl von Sub-CPUs auf einem Chip untergebracht hat.
Da das ganze Programmspeichergebiet der Sub-CPU aus RAMs gebildet ist und eine Steuerschaltung zum Ermöglichen des Zugriffs aus der Haupt-CPU ähnlich wie vorstehend vorge­ sehen ist, ist es wie für den Emulations-Chip ermöglicht, einen schaltungseingebundenen Emulator (ICE) vorzusehen, welcher zum Booten des Programms von der Haupt-CPU- Bus- Seite und Zuführen desselben zum RAM der Sub-CPU in der Lage ist, um das Programm zu debuggen, wenn Programme für die Sub-CPU entwickelt werden.

Claims (11)

1. Mikrocomputer mit einer Haupt-CPU (23), welche dazu in der Lage ist, auf ein Hauptspeichergebiet mittels eines Haupt-CPU- Busses (10) zuzugreifen, und wenigstens einer Sub-CPU (1), welche dazu in der Lage ist, auf ein Sub-Speichergebiet mittels eines Sub-CPU-Busses (28) zuzugreifen,
mit einem Steuerregister (4), auf welches aus der Haupt-CPU (23) zugegriffen werden kann zum Steuern der Verbindung des Haupt- CPU-Busses (10) mit dem Subspeichergebiet,
mit einem Programmzähler (5), welcher eine Adresse einer als nächstes auszuführenden Anweisung eines Programms erzeugt,
wobei der Mikrocomputer so gesteuert wird, daß das Sub-Speicher­ gebiet mit dem Haupt-CPU-Bus (10) verbunden wird, wenn die Haupt-CPU (23) einen vorbestimmten Wert in das Steuerregister (4) geschrieben hat, um aus der Haupt-CPU (23) auf das Subspei­ chergebiet zugreifen zu können, und
wobei der Mikrocomputer so gesteuert wird, daß ein eine Start­ adresse eines Testprogramms für das Subspeichergebiet anzei­ gender Test-Rücksetzvektor in den Programmzähler (5) nach dem Rücksetzen der Sub-CPU (1) aus der Haupt-CPU (23) geladen wird, wenn die Haupt-CPU (23) einen anderen vorbestimmten Wert in das Steuerregister (4) geschrieben hat.
2. Mikrocomputer nach Anspruch 1, bei welchem ein im voraus festgelegter Ausgangswert einer Hardwarelogik oder Daten, die in einem das Subspeichergebiet bildenden ROM geschrieben sind, oder ein Wert, der in ein exklusives Register (53) geschrieben ist, auf welches von dem Haupt-CPU-Bus (10) zugegriffen werden kann, als Test-Rücksetzvektor geladen werden.
3. Mikrocomputer, umfassend eine Haupt-CPU (23), welche dazu in der Lage ist, auf ein Hauptspeichergebjet mittels eines Haupt- CPU-Busses (10) zuzugreifen, und wenigstens einer Sub-CPU (1),
welche dazu in der Lage ist, mittels eines Sub-CPU-Busses (28) auf ein Sub-Speichergebiet zuzugreifen, welchem ein programmier­ barer Speicher zugewiesen ist,
bei dem im Normalbetriebsmodus die beiden Speichergebiete ge­ trennt und unabhängig voneinander sind, auf das Hauptspeicher­ gebiet aus der Haupt-CPU (23) und auf das Subspeichergebiet aus der Sub-CPU (1) zugegriffen werden kann,
ein Adreßbitsignal-Anschluß (AD16) zum Eingeben von wenigstens einem Adreßbit zusätzlich zu den Adreßbits des normalen Spei­ cherraums der Haupt-CPU (23) vorgesehen ist,
und wobei der Mikrocomputer so gesteuert wird, daß von dem Normalbetriebsmodus in einen Modus zum Zu­ greifen auf den programmierbaren Speicher durch Um­ wandeln von aus einer Mehrzahl von Außenanschlüssen zugeführten Steuersignalen im Inneren des Chips geschaltet wird und daß
das Speichergebiet des programmierbaren Speichers mit dem Haupt-CPU-Bus (10) derart verbunden wird, daß auf dasselbe aus der Haupt-CPU (23) kontinuierlich mit dem Hauptspeichergebiet in einem integralen Speicherraum zugegriffen werden kann, wenn ein vorbestimmtes Signal am Adreßsteuersignal-Anschluß (AD16) eingegeben wird.
4. Mikrocomputer nach Anspruch 3, bei welchem ein mit dem Haupt-CPU-Bus (10) verbundenes externes Port vorge­ sehen ist, wobei der Haupt-CPU-Bus (10) von der Haupt-CPU (23) getrennt ist und aus dem externen Port auf ihn zugegriffen werden kann, wenn ein vorbestimmtes Signal von außen angelegt wird.
5. Mikrocomputer nach Anspruch 4, ferner umfassend:
eine Mehrzahl von eingebauten Speichern (2, 3) welchen das Subspeichergebiet zugewiesen ist;
einen Abtastverstärker (133), welcher den Inhalt der ein­ gebauten Speicher in Synchronisation mit einem Speicher-Lesetakt ausgibt;
eine Verriegelungseinrichtung (144), welche jedes Bit des Ausgangs aus dem Abtastverstärker (133) hält; und
zwei Puffer (134, 135);
bei welchem ein Ausgang der Puffer (134, 135) mit dem Sub-CPU-Bus (28) verbunden ist und ein anderer mit dem Haupt- CPU-Bus (10) verbunden ist.
6. Mikrocomputer nach Anspruch 1 mit einem Abbruchadreßregister (6), welches eine Abbruchadresse zum Ausführen eines anderen Programms durch Unterbrechen eines laufenden Programms speichert;
einer Vergleichseinrichtung (16), welche ständig den Wert des Programmzählers (5) der Sub-CPU (1) und den Wert des Abbruchadreßregisters (6) vergleicht, um deren Überein­ stimmung zu ermitteln; wobei der Mikrocomputer so gesteuert wird, daß ein Abbruchvektor als Startadresse des anderen Programms in den Programmzähler (5) geladen wird, wenn die Vergleichseinrichtung (16) die Übereinstimmung der Werte ermittelt, um das Programm durch Erzeugen einer Abbruchunter­ brechung zu verzweigen.
7. Mikrocomputer nach Anspruch 6, bei welchem auf das Abbruch­ adreßregister (6) aus der Haupt-CPU (23) mittels des Haupt-CPU-Busses (10) zugegriffen werden kann, wobei der Mikrocomputer so gesteuert wird, daß ein im voraus festgelegter Ausgangswert einer Hardwarelogik oder Daten, welche in den das Subspeicherge­ biet bildenden ROM geschrieben sind, oder ein in einem exklu­ siven Register (7) gespeicherten Wert in den Programmzähler (5) geladen werden.
8. Mikrocomputer nach Anspruch 6, ferner umfassend:
seine Zähleinrichtung (9) zum Herabzählen der Anzahl der auftre­ tenden Übereinstimmungen, welche durch die Vergleichseinrichtung (16) ermittelt werden, wobei der Mikrocomputer so gesteuert wird, daß eine Abbruchunterbrechung erzeugt wird, wenn der Zähl­ wert der Zähleinrichtung (9) einen vorbestimmten Wert erreicht hat.
9. Mikrocomputer nach einem der Ansprüche 6 bis 8, bei welchem die Sub-CPU (1) dazu in der Lage ist, eine STOP-Anweisung auszu­ führen, um die Ausführung des Programms zu stoppen, und der eine Speichereinrichtung (SEQSTP), welche aus der Haupt-CPU (23) gelesen werden kann, zum Speichern eines vorbestimmten Wertes aufweist, wenn das Programm durch Ausführen der STOP-Anweisung durch die Sub-CPU (1) in den Halt-Zustand versetzt ist.
10. Mikrocomputer nach Anspruch 9, bei welchem die Haupt-CPU (23) dazu in der Lage ist, den Halt der Programm­ ausführung in der Sub-CPU (1) aufzuheben und eine Anweisung auszuführen zum Zurückkehren der Ausführung der Routine zur ursprünglichen Routine, bei welcher die Programmausführung unterbrochen wurde, wenn die Sub-CPU (1) im Haltzustand der Ausführung des Programms ist.
11. Mikrocomputer zur Verwendung als Emulations-Chip mit einer Haupt-CPU (23), welche dazu in der Lage ist, auf ein Hauptspei­ chergebiet mittels eines Haupt-CPU-Busses (10) zuzugreifen, und wenigstens einer Sub-CPU (1), welche dazu in der Lage ist, auf ein Sub-Speichergebiet mittels eines Sub-CPU-Busses (28) zuzugreifen,
einem Anschluß (AD16), der mit dem Haupt-CPU-Bus (10) verbunden ist, wobei ein Programmspeichergebiet des Subspeichergebietes aus RAMs gebildet ist, wobei die Haupt-CPU (23) in der Lage ist, mittels des Haupt-CPU-Busses (10) auf das Subspeichergebiet zuzugreifen, und wobei der Mikrocomputer so gesteuert wird, daß das ganze Programm für die Sub-CPU (1) von einem Emulator, welcher außen anstelle eines dem Hauptspeichergebiet zugewiesenen ROMs (24) vorgesehen ist, im voraus mittels des Anschlusses (AD16) in den RAMs des Subspeichergebietes gespeichert wird und dann zum Ausführen gebootet wird, wobei Programmdaten für die Haupt-CPU (23) aus dem Emulator nach dem Booten des Programms der Sub-CPU (1) in jedem Zyklus zugeführt werden.
DE4418892A 1993-05-31 1994-05-30 Mikrocomputer Expired - Fee Related DE4418892C2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP12888893 1993-05-31
JP6105768A JPH0798692A (ja) 1993-05-31 1994-05-19 マイクロコンピュータ

Publications (2)

Publication Number Publication Date
DE4418892A1 DE4418892A1 (de) 1994-12-01
DE4418892C2 true DE4418892C2 (de) 1998-04-16

Family

ID=26446005

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4418892A Expired - Fee Related DE4418892C2 (de) 1993-05-31 1994-05-30 Mikrocomputer

Country Status (3)

Country Link
US (1) US5566303A (de)
JP (1) JPH0798692A (de)
DE (1) DE4418892C2 (de)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2727976B2 (ja) * 1994-09-12 1998-03-18 日本電気株式会社 インサーキットエミュレータ
JPH08272625A (ja) * 1995-03-29 1996-10-18 Toshiba Corp マルチプログラム実行制御装置及び方法
US5987587A (en) * 1997-06-06 1999-11-16 International Business Machines Corporation Single chip multiprocessor with shared execution units
US6618775B1 (en) * 1997-08-15 2003-09-09 Micron Technology, Inc. DSP bus monitoring apparatus and method
US6356960B1 (en) 1997-10-29 2002-03-12 Sgs-Thomson Microelectronics Limited Microprocessor having an on-chip CPU fetching a debugging routine from a memory in an external debugging device in response to a control signal received through a debugging port
DE19835610A1 (de) * 1998-08-06 2000-02-10 Siemens Ag Programmgesteuerte Einheit und Verfahren zum Debuggen derselben
US6934937B1 (en) * 2000-03-30 2005-08-23 Broadcom Corporation Multi-channel, multi-service debug on a pipelined CPU architecture
JP4212224B2 (ja) * 2000-07-10 2009-01-21 株式会社東芝 半導体集積回路
JP2003196117A (ja) * 2001-12-26 2003-07-11 Toshiba Corp マイクロプロセッサ
EP1349071A1 (de) * 2002-03-29 2003-10-01 STMicroelectronics N.V. Integrierte Schaltung mit Direktfehlerbeseitigungsarchitektur
US20040093536A1 (en) * 2002-11-12 2004-05-13 Weller Christopher Todd System and method for providing coherency during the evaluation of a multiprocessor system
US7574585B1 (en) * 2003-01-31 2009-08-11 Zilog, Inc. Implementing software breakpoints and debugger therefor
US7424659B2 (en) * 2003-10-31 2008-09-09 Sandisk Il Ltd. System-in-package and method of testing thereof
US7730368B2 (en) 2003-10-31 2010-06-01 Sandisk Il Ltd. Method, system and computer-readable code for testing of flash memory
JP4232621B2 (ja) * 2003-12-08 2009-03-04 株式会社デンソー 半導体集積回路装置
CN100369010C (zh) * 2005-04-01 2008-02-13 北京同方微电子有限公司 一种用于智能卡仿真调试系统的硬件断点电路
JP4600134B2 (ja) * 2005-04-25 2010-12-15 富士通セミコンダクター株式会社 マルチプロセッサシステム
KR20070074232A (ko) * 2006-01-09 2007-07-12 삼성전자주식회사 램 영역과 롬 영역을 동시에 가지는 반도체 메모리 장치
US7533315B2 (en) * 2006-03-06 2009-05-12 Mediatek Inc. Integrated circuit with scan-based debugging and debugging method thereof
KR20160056196A (ko) * 2014-11-11 2016-05-19 삼성전자주식회사 검사장치 및 그 제어방법
CN105045647B (zh) * 2014-12-09 2020-08-04 北京中电华大电子设计有限责任公司 一种支持nvm快速页编程的仿真器
JP6502538B1 (ja) * 2018-01-24 2019-04-17 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および解析システム
CN115220978B (zh) * 2022-09-19 2023-02-03 瀚博半导体(上海)有限公司 包括在线调试模式的芯片启动方法和装置、芯片和设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3903835C2 (de) * 1988-02-19 1992-11-26 John Fluke Mfg. Co., Inc., Everett, Wash., Us

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4296467A (en) * 1978-07-03 1981-10-20 Honeywell Information Systems Inc. Rotating chip selection technique and apparatus
JPS59178685A (ja) * 1983-03-30 1984-10-09 Toshiba Corp 半導体記憶回路
US4680701A (en) * 1984-04-11 1987-07-14 Texas Instruments Incorporated Asynchronous high speed processor having high speed memories with domino circuits contained therein
US4799144A (en) * 1984-10-12 1989-01-17 Alcatel Usa, Corp. Multi-function communication board for expanding the versatility of a computer
US4698750A (en) * 1984-12-27 1987-10-06 Motorola, Inc. Security for integrated circuit microcomputer with EEPROM
US4796099A (en) * 1986-04-24 1989-01-03 Eastman Kodak Company Video still player with internal capability for executing externally-generated viewing programs
US5032983A (en) * 1987-04-10 1991-07-16 Tandem Computers Incorporated Entry point mapping and skipping method and apparatus
US5121498A (en) * 1988-05-11 1992-06-09 Massachusetts Institute Of Technology Translator for translating source code for selective unrolling of loops in the source code
US5287515A (en) * 1988-10-24 1994-02-15 Kabushiki Kaisha Toshiba Cross-software development/maintenance system
US4977494A (en) * 1989-02-17 1990-12-11 Hughes Aircraft Company High speed digital motion controller architecture
US5261095A (en) * 1989-10-11 1993-11-09 Texas Instruments Incorporated Partitioning software in a multiprocessor system
JPH04195481A (ja) * 1990-11-28 1992-07-15 Hitachi Ltd シングルチツプマイクロコンピュータ及び多機能メモリ
JPH06139107A (ja) * 1992-10-30 1994-05-20 Nec Corp ブレイクアドレス検出回路

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3903835C2 (de) * 1988-02-19 1992-11-26 John Fluke Mfg. Co., Inc., Everett, Wash., Us

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JONES, David: Fehlertoleranz und Zuverlässigkeit in Mikroprozessor-Systemen, in: Elektronik 24/1990, S. 54-60 *

Also Published As

Publication number Publication date
DE4418892A1 (de) 1994-12-01
US5566303A (en) 1996-10-15
JPH0798692A (ja) 1995-04-11

Similar Documents

Publication Publication Date Title
DE4418892C2 (de) Mikrocomputer
DE69714472T2 (de) Verfahren zum überprüfen eines integrierten speichers mit hilfe einer integrierten dma-schaltung
DE3750236T2 (de) Gerät zur In-line-Abfragesteuerung für Datenprozessorprüfung.
DE69221045T2 (de) Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen
DE69523549T2 (de) Mikroprozessor mit Fehlersuchsystem
DE2357003C2 (de) Prozessor für eine Mehrprogramm-Datenverarbeitungsanlage
DE3876780T2 (de) Mikrorechner mit eingebauter chipauswahl und programmierbarer busdehnung.
DE69415600T2 (de) Mikrokontroller mit hardwaremässiger Fehlerbeseitigungsunterstützung nach dem Boundary-Scanverfahren
DE60108851T2 (de) Mehrkanal, mehrdienstfehlerbeseitigung in pipeline-cpu-architektur
DE2716369C2 (de)
DE68927907T2 (de) Einchipmikrorechner
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE69705813T2 (de) Diagnosesystem und Verfahren bei einer integrierten Halbleiterschaltung
DE3901579C2 (de)
DE3650532T2 (de) Speicher mit programmierbarem Zugang
DE2722099A1 (de) Abfangeinrichtung fuer ein dv-system
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE4313594A1 (de) Mikroprozessor
DE69513113T2 (de) Verfahren zum synchronen Speicherzugriff
DE19814415A1 (de) Logikanalyse-Untersystem in einem Zeitscheibenemulator
DE69525129T2 (de) Verfahren und Datenprozessor zum durchsichtigem Betrieb in einem Hintergrundmodus
DE69130513T2 (de) Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern
DE69128268T2 (de) Mikrocomputer mit einer Übertragungseinheit für serielle Daten
DE69634227T2 (de) Emulationssystem mit emulierten Mehrtaktzyklen pro Emulation-Taktzyklus und Signalweglenkung
DE10004198C2 (de) System und Verfahren für eine intelligente Analysesonde

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee