DE4420703A1 - Mikrocomputer - Google Patents

Mikrocomputer

Info

Publication number
DE4420703A1
DE4420703A1 DE4420703A DE4420703A DE4420703A1 DE 4420703 A1 DE4420703 A1 DE 4420703A1 DE 4420703 A DE4420703 A DE 4420703A DE 4420703 A DE4420703 A DE 4420703A DE 4420703 A1 DE4420703 A1 DE 4420703A1
Authority
DE
Germany
Prior art keywords
instruction
register
code
microcomputer
bits
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.)
Ceased
Application number
DE4420703A
Other languages
English (en)
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 DE4420703A1 publication Critical patent/DE4420703A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines

Description

Die vorliegende Erfindung betrifft einen Mikrocomputer und insbesondere einen Mikrocomputer, durch welchen die Ausführung von Anweisungen durch dessen CPU beschleunigt ist und eine Hochgeschwindigkeits-Operation zur Zeit von Verarbeitungen, wie bespielsweise eines Rücksetzens, eines Unterbrechens und so weiter, ermöglicht ist.
Fig. 1 ist ein Impulsdiagramm zum Erläutern eines Beispiels von Basisanweisungszyklen, das heißt eines Timings für das Ausführen einer Basisanweisung eines herkömmlichen Mikro­ computers.
In diesem herkömmlichen Beispiel beträgt eine Eingangstakt­ frequenz 40 MHz, mit anderen Worten liegt ein 25-ns-Zyklus vor, und werden zwei Basistakte BCLK 1 und BCLK 2 verwendet, welche durch weiteres Teilen des Zyklus in zwei Zyklen erhal­ ten werden, um die Phasen derselben zu verschieben. Ein Basis­ zyklus zum Zugreifen auf einen mit dem Mikrocomputer verbun­ denen Speicher entspricht 100 ns, was zwei Zyklen des Basis­ takts (eines Maschinentakts) sind. Somit wird bei einem Adreß­ signal (A) ein Zeitabschnitt von 100 ns im wesentlichen als ein Zyklus behandelt. In einem auf der linken Halbseite der Fig. 1 dargestellten Lesezyklus wird ein Datensignal D bei 50 ns einer ersten Hälfte des einen Basiszyklus wirksam. In einem auf der rechten Halbseite der Fig. 1 dargestellten Schreib­ zyklus wird das Datensignal D bei 75 ns der ersten Hälfte aus einer CPU ausgegeben.
Im allgemeinen wird ein Programmspeicher im wesentlichen durch eine gleiche in Fig. 1 beispielhaft dargestellte Operation gelesen und wird ein Holen einer Anweisung bei einer Zeit von 4 Zyklen (100 ns) ausgeführt, wenn diese auf dem Eingangstakt basiert.
Fig. 2 ist eine schematische Darstellung zum Erläutern eines Pipelineverarbeitungs-Prinzips, welches in den letzten Jahren bei vielen Mikrocomputern übernommen wurde.
Auf Grundlage des einen Maschinenzyklus werden Verarbeitungen in entsprechenden Stufen, Holen einer Anweisung (IF), De­ codieren einer Anweisung (ID), Anweisungsausführung und Be­ rechnung einer effektiven Adresse (EX), Speicherzugriff (MEM) und Zurückschreiben (WB), aufeinanderfolgend ausgeführt. Da die Anweisungsdecodierungen aufeinanderfolgend für jeden Zyklus ausgeführt werden und die Anweisungen jeweils in den entsprechenden Stufen parallel kontinuierlich verarbeitet werden, sind offenbar fünf Anweisungen als Ganzes gleichzeitig parallel zu verarbeiten. Durch eine derartige Pipelinever­ arbeitung sind im Vergleich zu einer Anweisung pro Maschinen­ zyklus offenbar komplizierte Verarbeitungen auszuführen.
Fig. 3 ist eine schematische Darstellung, welche ein Beispiel von Angaben zeigt, welche bei vorstehend beschriebenen Pipe­ lineverarbeitungen zu berücksichtigen sind. Insbesondere sind Mechanismen dargestellt, die erforderlich sind, wenn eine aus den Anweisungen ADD, SUB, AND, OR and XOR bestehende Anwei­ sungskette, wie in Fig. 3 gezeigt, ausgeführt wird.
In Fig. 3 spezifiziert ein Bezugszeichen R unmittelbar nach jeder Anweisung ein Zielregister, und zwei Rs danach spezi­ fizieren Operanden enthaltende Quellregister.
Das heißt, obwohl die Addieranweisung (ADD), welche eine erste Anweisung ist, den Inhalt eines Registers R2 und den eines Registers R3 addiert und das Ergebnis in einem Register R1 speichert (in das Register R1 zurückschreibt), da ein im Register R1 gespeicherter Wert in der zweiten bis vierten An­ weisung verwendet wird, ist in entsprechenden Ausführungs­ zyklen, bevor das Ergebnis der Addition durch die erste Addieranweisung im Register R1 gespeichert wird, eine Bypass- Schaltung in der CPU erforderlich, welche es verwendbar macht. Und in der XOR-Anweisung, welche eine fünfte Anweisung ist, kann ein im allgemeinen in das Register R1 zurückgeschriebener Wert schließlich verwendet werden.
Wie vorstehend beschrieben, wird beim herkömmlichen Mikro­ computer der eine Maschinenzyklus selbst durch eine Mehrzahl von Takten gebildet, was einen beträchtlich langen Anweisungs­ ausführungs-Zyklus verursacht. Das ist ein Verfahren, das zum Erhöhen der Zuverlässigkeit in Reaktion auf einige Probleme beim Boardentwurf, wie beispielsweise eine Verzögerungszeit, ein Brechen von Busleitungen und so weiter, im Boardcomputer- Zeitalter verwendet wird.
Obwohl die Pipelineverarbeitung ein sehr wirksames Entwurfs­ verfahren zum schnellen Ausführen einer komplizierten An­ weisung ist, wie es auch im vorstehend genannten Beispiel ge­ zeigt ist, ergeben sich komplizierte Schaltungen, da einigen Sonderverarbeitungen entsprechende besondere Schaltungen bei­ gefügt werden müssen.
Auch die CPU im herkömmlichen Mikrocomputer benötigt ver­ schiedene Zyklen zur Verarbeitung der Anweisung zum Holen, zur Decodierung und Ausführung, welche eine Verbesserung der Aus­ führungsgeschwindigkeit begrenzen. Da es jedoch eine Grenze beim Vergrößern einer Taktfrequenz gibt, ist es notwendig zu betrachten, wie viele Verarbeitungen in einem Zyklus ausge­ führt werden können.
Obwohl ein Verfahren zum Ausführen einer Mehrzahl von An­ weisungen in einem Zyklus derzeit beispielsweise eine Super- Scaler-Technik und dergleichen verwendet wird, um die Ver­ arbeitungsfähigkeit zu verbessern, wird in einem hoch­ funktionalen Mikrocomputer auf dem Gebiet kostenorientierter Mikro-Steuereinrichtungen vor allem ein zu einer Kostenver­ ringerung der Chips führendes Erzeugnis mit hoher Verarbei­ tungsgeschwindigkeit und einfachem Aufbau benötigt. Insbe­ sondere auf dem Gebiet einer Echtzeitsteuerung, bei welcher eine Reaktionsgeschwindigkeit von mehreren µs benötigt wird, wie durch das Anwendungsgebiet einer Motorsteuerung und der­ gleichen verdeutlicht, wird eher eine einfache und mit hoher Geschwindigkeit operierende CPU als eine CISC-Konfiguration benötigt, welche komplexe hochfunktionale Anweisungen umfaßt.
Die vorliegende Erfindung ist entwickelt worden, um derartige Probleme zu lösen, und daher liegt ihr die Aufgabe zugrunde, einen Mikrocomputer vorzusehen, der dazu in der Lage ist, An­ weisungen für jeden Eingangstaktzyklus durch Vereinfachen der Verarbeitung an sich auszuführen.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 1 liegt vor, wenn vier Abschnitte eines Hochpegels, ein Tiefpegel, ein Hochpegel und ein Tiefpegel von zwei Zyklen eines Systemtakts durch Zeitabschnitte T1, T2, T3 und T4 festgelegt sind, wobei zunächst im Zeitabschnitt T1 eine Adresse der auszuführenden Anweisung an einen Speicher ausgegeben wird. Im Zeitabschnitt T2 wird ein Code der Anweisung aus dem Speicher gelesen und in einem Anweisungsdecodierer decodiert und werden Daten aus einem Quellregister geholt, welches einen durch das Decodier­ ergebnis spezifizierten Operanden enthält, um die Operation in einer ALU zu starten. Im Zeitabschnitt T3 wird das Operations­ ergebnis der ALU in einem spezifizierten Register gespeichert und eine Adresse einer als nächstes auszuführenden Anweisung ausgegeben. Der Zeitabschnitt T3 bedeutet den Zeitabschnitt T1 für die darauffolgende Anweisung. Somit wird das Timing T4 im wesentlichen nicht verwendet. Bei diesem Verfahren können bei allen Zyklen Daten gesichert werden, da, vereinfacht betrach­ tet, auf das Register in einer derartigen Weise zugegriffen wird, daß der Operand aus dem Quellregister im Tiefpegelab­ schnitt des Takts gelesen wird und das Operationsergebnis im darauffolgenden Hochpegel-Zeitabschnitt in das Zielregister geschrieben wird.
Nun ist der Zeitabschnitt T1 zum Vor-Laden von Speicher-Bit­ leitungen notwendig, und das Lesen und Schreiben des Anwei­ sungscodes oder der Anweisungsdaten ist im Zeitabschnitt T2 ausführbar. In derartigen Anweisungszyklen des Mikrocomputers der vorliegenden Erfindung kann in jedem Zyklus auf den Speicher zugegriffen werden. Das Lesen und Schreiben im Register in den Tiefpegel- und den Hochpegelabschnitten des Takts ist sehr wesentlich, um eine Konsistenz der verarbei­ teten Daten zu bewahren. Im Falle des Verwendens eines Wertes von einem Register A für eine Operation und des zeitweiligen Zurückgebens des Ergebnisses an das Register A und des an­ schließenden Weiterschiebens des Wertes in ein Register B können beispielsweise, obgleich das selbstverständlich ist, die Daten solange nicht zum Register B übertragen werden, bis die den Wert des Registers A verwendende Operation beendet ist. Somit müssen die Verarbeitungen des Ladens, des Operierens und des Speicherns des Operationsergebnisses des Registerwertes in einem Zyklus ausgeführt werden, um die Zeit insgesamt effektiv zu verwenden.
Da es notwendig ist, das Decodieren des Anweisungscodes be­ reits im Zeitabschnitt T2 zu beenden, ist eine einen Vor-Lade- Zeitabschnitt benötigende Schaltung, wie beispielsweise ein Mikro-Sequenz-ROM oder dergleichen, in einem Decodierer nicht geeignet. Der Grund besteht darin, daß, obwohl ein Eingang be­ reits im Vor-Lade-Zeitabschnitt stabilisiert sein muß, wenn er in einer Vor-Lade-Schaltung decodiert wird, im Falle des Mikrocomputers der vorliegenden Erfindung ein notwendiges Steuersignal nur nach dem Zeitabschnitt T3 erhalten werden kann, wenn es aufrechterhalten wird, da er zu einem Zeitpunkt, bei welchem der Code aus einem Programmspeichergebiet ausge­ lesen wird, bereits im Zeitabschnitt T2 ist. Insbesondere im Falle des Ausführens der Anweisung in einem Zyklus, obwohl eine nächste Verzweigungszieladresse im Zeitabschnitt T3 zur Zeit des Ausführens der Verzweigungsadresse ausgegeben werden muß, solange die Vor-Lade-Schaltung verwendet wird, wird das Steuersignal zu diesem Zweck erst nach Eintreten in den Zeit­ abschnitt T3 erhalten, was zu spät ist. Um das notwendige Steuersignal im Zeitabschnitt T2 zu erhalten, ist es somit notwendig, den Code in einer statischen Schaltung zu deco­ dieren.
Um ein derartiges Timing zu realisieren, ist es notwendig, eine folgende Busstruktur als interne Konfiguration der CPU zu verwenden. Das heißt, zur Verbindung zwischen dem Register und der ALU sind zwei oder mehr Pfade, insbesondere eine Bus­ struktur aus zwei Leitungen zum Lesen und zum Schreiben, not­ wendig. Da ein Operationscode gleichzeitig mit der Operation der Registerdaten geholt wird, um in jedem Zyklus auf den Speicher zuzugreifen, muß eine einen Programmzähler umfassende Adreßausgangsschaltung unabhängig von den vorstehend genannten Registerbussen einen Datenbus umfassen.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 2 besteht darin, daß zusätzlich zum Aufbau gemäß Anspruch 1 ein Aufbau vorgeschlagen wird, welcher die Ausführung einer Unter­ brechung, eines Rücksetzens, von Sonderverarbeitungen und so weiter bewältigt. Im Mikrocomputer der vorliegenden Erfindung sind die Operationscodes diesen Sonderverarbeitungen im voraus zugewiesen, und wenn deren Ausführungsanforderung erteilt wird, dann wird ein Pfad aus einem Programmspeichergebiet zu einer Operationscode-Verriegelungseinrichtung getrennt und der Code aus einer Codeerzeugeeinrichtung zur Sonderverarbeitung wirksam zugeführt. Nachdem der Sonderverarbeitungs-Code zuge­ führt wurde, wird er in einem Anweisungsdecodierer auf dem gleichen Wege wie im Falle einer gewöhnlichen Anweisungsaus­ führung decodiert, um ein notwendiges Steuersignal zu erzeu­ gen.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 3 besteht darin, daß zusätzlich zum Aufbau gemäß Anspruch 2 die Anwei­ sungen zum Rücksetzen, zur Sonderverarbeitung, für eine Spezialanweisung und so weiter im Programmspeichergebiet im voraus auf dem gleichen Wege wie eine gewöhnliche Anweisung gespeichert werden, daß überdies die Anweisungscodes durch die vorstehend genannte Hardwareschaltung wirksam zugeführt werden und eine Schaltung realisiert ist, welche auch beim aus dem Programmspeichergebiet geholten Anweisungscode äquivalent funktioniert.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 4 besteht darin, daß eine CPU vorgesehen ist, welche den in einer vor­ stehend beschriebenen Art und Weise erhaltenen Anweisungscode decodiert und ein Zielsteuersignal mit einem Zieltiming er­ zeugt. Insbesondere ist sie derart ausgelegt, daß ein Wert des die Anzahl von Anweisungszyklen zählenden Zählers und ein Aus­ gang der Anweisungscode-Verriegelungseinrichtung kombiniert sind, um eine Anzahl von Steuersignalen durch eine statische Kombinationsschaltung zu erhalten. Obgleich einige Verfahren zum Ausbilden des Zählers in Betracht gezogen werden können, ist es beispielsweise möglich, einen Rückwärtszähler zu ver­ wenden, bei welchem die Anzahl von Ausführungszyklen in einer Decodierstufe des Anweisungscodes gesetzt wird, oder einen auf das Decodierergebnis eines Wertes der Operationscode-Ver­ riegelungseinrichtung reagierenden Schiebetakt durch Verwenden eines Schieberegisters zu steuern.
Die den Anweisungsdecodierer betreffenden Erfindungen sind vorstehend beschrieben, wohingegen die die bedingte Verzwei­ gungsanweisung betreffenden Erfindungen nachstehend beschrie­ ben werden.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 5 umfaßt eine Zustandsentscheidungsschaltung, bei welcher ein Signal­ ausgang, der anzeigt, ob die Verzweigungsbedingung erfüllt ist oder nicht, durch Entnehmen nur eines notwendigen Bits durch einen Maskenregister-Wert immer aktiv ist, nachdem ein im voraus durch eine Software spezifizierter Registerwert und ein Vergleichsregister-Wert für jedes Bit bezüglich der Kon­ figuration zum Ausführen der Anweisung zur bedingten Verzwei­ gung verglichen wurden.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 6 ist derart ausgebildet, daß zusätzlich zum Aufbau gemäß Anspruch 5 die Zustandsentscheidungsschaltung dazu in der Lage ist, das Register durch eine einfache Anweisung zu spezifizieren. Das heißt, das Spezifizieren des zu vergleichenden Registers und der verglichenen Bits sowie eine Unterscheidung des Hoch­ pegels/Tiefpegels kann durch eine Anweisung ausgeführt werden. Ein Schaltungsaufbau eines Entscheidungsregisters, Schaltungs­ aufbauten eines Maskendatenregisters und eines Vergleichs­ datenregisters sowie eine zu diesem Zweck notwendige Anwei­ sungsausführungs-Sequenz sind ferner vorgesehen.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 7 weist einen Aufbau auf, welchem eine Steuerregistergruppe von ver­ schiedenen peripheren Funktionsschaltungen als Zustandsent­ scheidungs-Schaltungsregister gemäß Anspruch 5, Operationser­ gebnis-Flags der ALU und eine Gruppe von Unterbrechungsan­ forderungs-Bits zugewiesen sind. Das heißt, Statusbits zum Er­ kennen verschiedener Zustände, wie beispielsweise eines Zeit­ geber-Überlaufs, einer Unterbrechung von einer Eingabe zu einem externen Anschluß und eines Statusflags eines FIFOs, sind zugewiesen, um den Aufbau zu realisieren, welcher dazu in der Lage ist, den Zustand sofort ohne die Operationsentschei­ dung mittels der ALU zu bestimmen.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch B umfaßt eine Einrichtung zum Synchronisieren mit dem in der Erfindung gemäß Anspruch 1 beschriebenen Basisanweisungs-Timing zur Zeit des Realisierens der Zustandsentscheidungsschaltung gemäß An­ spruch 5.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 9 ist derart ausgebildet, daß durch direktes Eingeben eines 1-Bit-Steuer­ codes im Anweisungsoperationscode aus der Operationscode-Ver­ riegelungseinrichtung in die Zustandsentscheidungsschaltung zur Zeit des Realisierens der Zustandsentscheidungsschaltung gemäß Anspruch 5 eine unbedingte Verzweigung ausgeführt wird.
Die den ALU-Aufbau betreffenden Erfindungen werden nachstehend beschrieben.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 10 ist aus­ gebildet, um eine Register-zu-Register-Operation ohne Verwen­ dung eines Akkumulators auszuführen, und umfaßt zum Ausbilden eines 2-Wege-Bussystems ein Zwischenregister, welches einen der Operanden hält und ihn der ALU übergibt.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 11 umfaßt zusätzlich zum Aufbau gemäß Anspruch 10 eine Steuerschaltung, welche entsprechende obere n Bits und untere m Bits des Zwischenregisters durch die unterschiedlichen Steuersignale steuert und den oberen n Bits oder den unteren m Bits der ALU anstelle eines Zwischenregister-Ausgangs wirksam "0" zuführt, und eine Inversionssteuerschaltung, welche den Zwischen­ registerwert invertiert und ihn der ALU übergibt. Damit können Zwei-Variablen-Operationen, wie beispielsweise die ADD-, SUB-, AND- und OR-Anweisung, oder Ein-Variablen-Operationen, wie beispielsweise die NOT-, DEC-, INC- und Schiebe-Anweisung, durch eine Volladdierer-Schaltung als Hauptbestandteil gebil­ det werden. Sie ist jedoch derart ausgebildet, daß die Aus­ führung einer Nicht-Operationsanweisung, wie beispielsweise einer MOV-Anweisung zur Datenübertragung, über einen separaten Umweg durch die ALU läuft. Durch Einschließen einer Übertrag­ flag-Steuerschaltung wird sowohl eine numerische Operation als auch eine logische Operation durch verschiedene Steuersignale realisiert.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 12 besteht darin, daß zusätzlich zum Aufbau gemäß Anspruch 11 eine Schiebeeinrichtung an einer Ausgangsseite eines Volladdierers zur Ausgabe nach einer Rechtsverschiebung oder einer Links­ verschiebung angeordnet ist. Durch Hinzufügen der Schiebe­ schaltung ist nicht nur eine Ein-Bit-Verschiebung, sondern ferner eine Mehr-Bit-Verschiebung möglich. Ein Schiebeeinrich­ tungs-Ausgang treibt den Registerbus nach dem zeitweiligen Speichern des Operationsergebnisses in einer Ergebnis-Ver­ riegelungseinrichtung.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 13 umfaßt zusätzlich zum Aufbau gemäß Anspruch 10 eine Verriegelungs­ schaltung, welche einen aus dem Register ausgelesenen Wert in einer Vor-Zuführungsstufe zur ALU hält, um dadurch die Operation sowohl im Zeitabschnitt T2 als auch im Zeitabschnitt T3 auszuführen. Da es eine Verzögerungszeit beim Lesen von Daten aus dem Register infolge einer großen Schaltungs- Leitungskapazität des Registerbusses gibt, ist es möglich, durch zeitweiliges Halten der Daten durch die Verriegelungs­ einrichtung eine Geschwindigkeitsbegrenzung der Operation zu erreichen.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 14 betrifft einen Anweisungssatz. Der im Mikrocomputer der vorliegenden Erfindung enthaltene Anweisungssatz unterscheidet die Arten von Operationen durch 6 Bits an einer festgelegten Position in den Anweisungscodes. Ein Bit unter diesen unterscheidet eine Bytelängen-Operation und eine 16-Bit-Wortlängen-Operation, und ein Bit unterscheidet die Schiebeoperation und die Nicht- Schiebeoperation. Die verbleibenden 4 Bits spezifizieren die weiter unterteilten Operationsarten.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 15 umfaßt den Anweisungssatz, welcher eine Anweisungsgruppe und deren Anweisungscode vorsieht, welcher verschiedene Handhabungen bezüglich der ALU mit einem 63-Wort-Register ausführt, wobei der Anweisungscode im wesentlichen aus 16 Bits gebildet ist.
In den 16-Bit-Codes sind neben den die Operationsarten und die Handhabung anzeigenden Codes eine Verschiebung, die das Quell­ register, das Zielregister sowie die Verzweigungszieladresse der Verzweigungsanweisung spezifizieren, und ein 8-Bit-Direkt­ wert enthalten, wodurch die meisten der Anweisungen durch eine 1-Wort-Anweisung spezifiziert werden können. Die Steuersignale für die Anweisungen werden im wesentlichen mit vier Arten des Timings erzeugt, um die CPU-Operation zu realisieren.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 16 umfaßt Funktionsregister, welche direkt in einem Registerraum in der CPU angeordnet sind. Das heißt, nicht nur ein Eingang und ein Ausgang von Daten zu und aus einem Zeitgeber, ein serieller E/A, ein FIFO, ein Echtzeit-E/A, ein A/D-Wandler und so weiter, sondern auch verschiedene in einem herkömmlichen Mikrocomputer verwendete Funktionsregister, wie beispielsweise deren Steuerbits, Statusbits und Unterbrechungsanforderungs­ register sind direkt zugewiesen. Dadurch kann auf diese Funktionsregister sehr schnell auf dem gleichen Wege wie auf die Register in der CPU zugegriffen werden.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 17 sieht ein Verfahren vor, wodurch bei der Entwurfsgestaltung und in Logikentwurfs-Stufen an IC-Chips der vorstehend genannten Funktionsregister einige Basiselement-Funktionsregister von einer einfachen Daten-Verriegelungseinrichtung bis zu einer funktionalen Verriegelungseinrichtung einer Einzelimpuls-Er­ zeugung im voraus ausgebildet werden, um die notwendigen Register aus den auf die Funktion von jedem einzelnen Bit reagierenden Zellen für eine Kombination zu wählen. Insbe­ sondere bei der Entwurfsgestaltung werden die Zellen in einem Schachbrettmuster angeordnet, um den Chipentwurf zu reali­ sieren.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 18 besteht darin, daß die CPU mit einer großen Erweiterbarkeit durch Beifügen eines hochfunktionalen Operationsblocks in einem Registerraum in der CPU realisiert ist.
Ein erfindungsgemäßer Mikrocomputer nach Anspruch 19 ist der­ art ausgebildet, daß die im Zeitabschnitt T2 auszuführenden Verarbeitungen des Aufbaus gemäß Anspruch 1 weiter aufgeteilt sind, um den Anweisungscode zu holen und einen Abschnitt der Anweisung im Zeitabschnitt T2 zu decodieren, den Operanden aus dem Register für die Operation im Zeitabschnitt T3 zu laden und das Operationsergebnis im Zeitabschnitt T4 im Zielregister zu speichern.
Wie die Ansprüche 20, 21 und 22 wird die Erfindung nach den Ansprüchen 2, 3 und 4 bei der Erfindung gemäß Anspruch 19 verwendet.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 1 wird auf das Register zugegriffen, derart daß im Tiefpegel-Abschnitt des Taktes der Operand aus dem Quellregister gelesen wird und das Operationsergebnis im darauffolgenden Hochpegel-Abschnitt in das Zielregister geschrieben und die Registeroperation im wesentlichen in einem Zyklus des Systemtakts ausgeführt wird.
Im erfindungsgemäßen Mikrocomputer nach den Ansprüchen 2 und 3 werden Sonderverarbeitungen ferner auf dem gleichen Wege wie die anderen allgemeinen Anweisungen bei und nach der Anwei­ sungsdecodierung verarbeitet.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 4 wird der über mehrere Zyklen ausgeführte Anweisungscode decodiert, um das Steuersignal zu erzeugen. Insbesondere im Falle des Ver­ wendens eines Rückwärtszählsystems wird ein Signal leicht er­ zeugt, welches die Handhabung des Holens der Quelldaten zur Zeit eines geraden Zählergebnisses und des Speicherns der Daten zur Zeit eines ungeraden Zählergebnisses steuert, wenn eine Mehrzahl von Daten kontinuierlich gehandhabt wird, beispielsweise wenn die Mehrzahl von Daten kontinuierlich übertragen wird.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 5 wird die Anweisung zur bedingten Verzweigung in einem Zustand ausge­ führt, in welchem eine Entscheidung der Verzweigungsbedingung zur Zeit des Ausführens der Verzweigungsanweisung bereits erhalten worden ist. Insbesondere ist die Verzweigungsbe­ dingung bereits im Zeitabschnitt T2 entschieden worden, und die vorliegende Verzweigung wird im späteren Zeitabschnitt T3 durch Ausgeben der neuen Adresse ausgeführt. Die Verzweigungs­ zieladreß-Operation kann ausgeführt werden durch einfaches Entnehmen aus dem Anweisungscode selbst oder durch Verschieben eines speziellen Registerwertes zum Programmzähler während des Zeitabschnitts T3 oder durch Vorsehen einer Sonderadreß- Operationsschaltung im Programmzähler und Betreiben eines direkt im Anweisungscode enthaltenen Operandenwertes, um eine relative Adresse zu berechnen.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 6 wird die Anweisung zum wirksameren Ausführen der bedingten Verzweigung durch eine minimal notwendige Anweisung ohne Einsparen nicht notwendiger Zeit während der Vorbereitung beim Verwenden der Verzweigungsanweisung gemäß Anspruch 5 unterstützt.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 7 wird der Bitzustand in entsprechenden Zyklen überwacht, und wenn eine beliebige Änderung des Zustands vorhanden ist, dann wird sie sofort erkannt, und es wird möglich, in eine neue Routine zu verzweigen, da ein Statusregister und dergleichen im funktionalen Block direkt als Zustandsentscheidungsziel der bedingten Verzweigung, wenn notwendig, durch vorheriges Spezifizieren eines speziellen Bits, verwendet werden kann.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 8 und An­ spruch 9 wird eine Schaltung zum Ausführen der vorstehend ge­ nannten Anweisung zur bedingten Verzweigung wirksam reali­ siert.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 10 und An­ spruch 13 kann die Handhabung des Ladens, der Operation und der Operationsergebnis-Speicherung von einem Register in einem Zyklus ausgeführt werden, und durch Verteilen des Zwischen­ registers kann ein Spielraum beim Register-Ladetiming erreicht werden.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 11 sind die Ausführung von 8-Bit-Längen-Operationen und häufig vorkommende Handhabungen erleichtert.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 12 ist nicht nur eine Schiebeoperationsschaltung realisiert, sondern ist ferner eine für eine Multiplikation und eine Division wirksame ADD-&-Shift-Operation in einer Anweisung pro einem Ausführungszyklus realisiert.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 14 ist die Beziehung zwischen einer ALU-Konfiguration und dem Anweisungs­ code festgelegt.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 15 ist ein Anweisungssatz einer CPU von einer auf einer Anweisungslänge von 16 Bit basierenden Registermaschine als Anweisungssatz vorgesehen. Im wesentlichen ist eine Anweisung pro Zyklus realisiert.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 16 können durch Anordnen eines Funktionsregisters in einer CPU-Register­ gruppe mit einer größten Zugriffsgeschwindigkeit entsprechende Funktionen gesteuert werden und können die Zustände durch die Maschinenzyklus-Geschwindigkeit überwacht werden. Diese Er­ findung ist insbesondere auf dem Gebiet von eine Hochge­ schwindigkeits-Steuerung benötigenden Mikro-Steuereinrich­ tungen wirksam.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 17 ist ein Entwurfsverfahren vorgesehen, welches beim schnellen Realisieren des Entwurfs von für das Gebiet geeigneten peripheren Funktionen zur Zeit des Entwickelns einer ASIC- Mikro-Steuereinrichtung wirksam ist.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 18 sind Operationsfunktionen mit einer großen Schaltungsstruktur und verschiedenen notwendigen auf geeignete Gebiete reagierenden Bedingungen leicht beigefügt, wie beispielsweise eine Schal­ tung zur Multiplikation, Division und so weiter zur kontinuierlichen Operation bei hoher Geschwindigkeit, eine Produktsummen-Operationsschaltung, eine Fließkomma-Operations­ schaltung und dergleichen.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 19 sind die Spielräume der zum Lesen des Anweisungscodes erlaubten Zeit und der für eine Operation erlaubten Zeit erweitert, obwohl ein Ausgang einer effektiven Adresse während des Zeitab­ schnitts T1 der Erfindung nach Anspruch 1 ähnlich ist, und sind die Grenzen auf einer Niederspannungsseite und einer Hochgeschwindigkeits-Operationsseite fest, während mit einem Zyklus pro Anweisung operiert wird. Das Merkmal des Ausführens der Verzweigungszieladreß-Operation der Verzweigungsanweisung in den Zeitabschnitten T2, T3 auf dem gleichen Wege wie vorher und auch die Verzweigungsanweisung in einem Zyklus werden ferner in diesem Anspruch beibehalten.
Wie in den Ansprüchen 20, 21 und 22 wird die Erfindung nach den Ansprüchen 2, 3 und 4 in der Erfindung nach Anspruch 19 verwendet.
Die vorstehenden und weitere Aufgaben und Merkmale der Er­ findung werden aus der nachstehenden detaillierten Beschrei­ bung mit den beigefügten Zeichnungen völlig augenscheinlich werden.
Von den Figuren zeigen:
Fig. 1 ein Impulsdiagramm zum Erläutern eines Basisanweisungszyklus eines herkömmlichen Mikrocomputers;
Fig. 2 eine schematische Darstellung zum Erläutern des Prinzips einer Pipelineverarbeitung, die im allgemeinen in einem herkömmlichen Mikro­ computer durchgeführt wird;
Fig. 3 eine schematische Darstellung, welche bei der Pipelineverarbeitung zu berücksichtigende Angaben zeigt;
Fig. 4 ein Impulsdiagramm, welches einen Basiszyklus einer Anweisungsausführungs-Sequenz einer CPU einer ersten Ausführungsform eines Mikro­ computers der vorliegenden Erfindung darstellt;
Fig. 5 ein Blockschaltbild, welches ein Beispiel eines speziellen Aufbaus einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 6 ein Blockschaltbild, welches ein Beispiel eines Aufbaus eines Registerbusses einer CPU einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 7 ein Blockschaltbild, welches ein Beispiel eines anderen Aufbaus eines Registers einer CPU einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 8 ein Blockschaltbild, welches im wesentlichen einen Aufbau eines Hauptteils in einem Programmzähler-Aufbau einer ersten Ausführungs­ form eines Mikrocomputers gemäß der vor­ liegenden Erfindung darstellt;
Fig. 9 ein Blockschaltbild, welches im wesentlichen einen Aufbau einer Steuerschaltung in einem Programmzähler-Aufbau einer ersten Ausführungs­ form eines Mikrocomputers gemäß der vor­ liegenden Erfindung darstellt;
Fig. 10 ein Blockschaltbild, welches ein Beispiel eines Schaltungsaufbaus eines Anweisungsdecodierers einer ersten Ausführungsform eines Mikro­ computers gemäß der vorliegenden Erfindung dar­ stellt;
Fig. 11 ein Blockschaltbild, welches ein Beispiel eines Schaltungsaufbaus eines Anweisungsdecodierers einer ersten Ausführungsform eines Mikro­ computers gemäß der vorliegenden Erfindung dar­ stellt;
Fig. 12A ein Blockschaltbild, welches ein Beispiel eines Schaltungsaufbaus eines Anweisungsdecodierers einer ersten Ausführungsform eines Mikro­ computers gemäß der vorliegenden Erfindung dar­ stellt;
Fig. 12B ein Blockschaltbild, welches ein Beispiel eines Schaltungsaufbaus eines Anweisungsdecodierers einer ersten Ausführungsform eines Mikro­ computers gemäß der vorliegenden Erfindung dar­ stellt;
Fig. 13 ein Blockschaltbild, welches ein Beispiel eines Schaltungsaufbaus eines Anweisungsdecodierers einer ersten Ausführungsform eines Mikro­ computers gemäß der vorliegenden Erfindung dar­ stellt;
Fig. 14 eine Tabelle, welche Sondercodes in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15A ein Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15B einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15C einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15D einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15E einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15F einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15G einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15H einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15I einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15J einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15K einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15L einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15M einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15N einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15O einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 15P einen Abschnitt einer Tabelle, welche Steuer­ signale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 16 eine Tabelle, welche Steuersignale für jede Anweisung in einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 17A einen Abschnitt einer Tabelle, welche den Inhalt jeder Anweisung einer ersten Aus­ führungsform eines Mikrocomputers gemäß der vorliegenden Erfindung erläutert;
Fig. 17B einen Abschnitt einer Tabelle, welche den Inhalt jeder Anweisung einer ersten Aus­ führungsform eines Mikrocomputers gemäß der vorliegenden Erfindung erläutert;
Fig. 17C einen Abschnitt einer Tabelle, welche den Inhalt jeder Anweisung einer ersten Aus­ führungsform eines Mikrocomputers gemäß der vorliegenden Erfindung erläutert;
Fig. 17D einen Abschnitt einer Tabelle, welche den Inhalt jeder Anweisung einer ersten Aus­ führungsform eines Mikrocomputers gemäß der vorliegenden Erfindung erläutert;
Fig. 17E einen Abschnitt einer Tabelle, welche den Inhalt jeder Anweisung einer ersten Aus­ führungsform eines Mikrocomputers gemäß der vorliegenden Erfindung erläutert;
Fig. 18 eine Darstellung, welche den Inhalt jeder Anweisung einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung erläutert;
Fig. 19 ein Blockschaltbild, welches ein Beispiel eines eine Zustandsentscheidungs-Schaltung um­ fassenden Aufbaus als eine andere Ausführungs­ form eines Mikrocomputers der vorliegenden Er­ findung darstellt;
Fig. 20A einen Abschnitt einer Tabelle, welche einen Registersatz einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung zeigt;
Fig. 20B einen Abschnitt einer Tabelle, welche einen Registersatz einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung zeigt;
Fig. 20C einen Abschnitt einer Tabelle, welche einen Registersatz einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung zeigt;
Fig. 20D einen Abschnitt einer Tabelle, welche einen Registersatz einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung zeigt;
Fig. 20E einen Abschnitt einer Tabelle, welche einen Registersatz einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung zeigt;
Fig. 20F einen Abschnitt einer Tabelle, welche einen Registersatz einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung zeigt;
Fig. 21A einen Abschnitt einer Tabelle, welche jede Funktion für jedes Bit von jedem Register einer ersten Ausführungsform eines Mikrocomputers ge­ mäß der vorliegenden Erfindung zeigt;
Fig. 21B einen Abschnitt einer Tabelle, welche jede Funktion für jedes Bit von jedem Register einer ersten Ausführungsform eines Mikrocomputers ge­ mäß der vorliegenden Erfindung zeigt;
Fig. 21C einen Abschnitt einer Tabelle, welche jede Funktion für jedes Bit von jedem Register einer ersten Ausführungsform eines Mikrocomputers ge­ mäß der vorliegenden Erfindung zeigt;
Fig. 21D einen Abschnitt einer Tabelle, welche jede Funktion für jedes Bit von jedem Register einer ersten Ausführungsform eines Mikrocomputers ge­ mäß der vorliegenden Erfindung zeigt;
Fig. 21E einen Abschnitt einer Tabelle, welche jede Funktion für jedes Bit von jedem Register einer ersten Ausführungsform eines Mikrocomputers ge­ mäß der vorliegenden Erfindung zeigt;
Fig. 21F einen Abschnitt einer Tabelle, welche jede Funktion für jedes Bit von jedem Register einer ersten Ausführungsform eines Mikrocomputers ge­ mäß der vorliegenden Erfindung zeigt;
Fig. 21G einen Abschnitt einer Tabelle, welche jede Funktion für jedes Bit von jedem Register einer ersten Ausführungsform eines Mikrocomputers ge­ mäß der vorliegenden Erfindung zeigt;
Fig. 21H einen Abschnitt einer Tabelle, welche jede Funktion für jedes Bit von jedem Register einer ersten Ausführungsform eines Mikrocomputers ge­ mäß der vorliegenden Erfindung zeigt;
Fig. 21I einen Abschnitt einer Tabelle, welche jede Funktion für jedes Bit von jedem Register einer ersten Ausführungsform eines Mikrocomputers ge­ mäß der vorliegenden Erfindung zeigt;
Fig. 21J einen Abschnitt einer Tabelle, welche jede Funktion für jedes Bit von jedem Register einer ersten Ausführungsform eines Mikrocomputers ge­ mäß der vorliegenden Erfindung zeigt;
Fig. 21K einen Abschnitt einer Tabelle, welche jede Funktion für jedes Bit von jedem Register einer ersten Ausführungsform eines Mikrocomputers ge­ mäß der vorliegenden Erfindung zeigt;
Fig. 21L einen Abschnitt einer Tabelle, welche jede Funktion für jedes Bit von jedem Register einer ersten Ausführungsform eines Mikrocomputers ge­ mäß der vorliegenden Erfindung zeigt;
Fig. 22 ein Blockschaltbild, welches einen Aufbau eines Funktionsblocks an einem unteren Seitenab­ schnitt einer ALU einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Er­ findung darstellt;
Fig. 23 ein Blockschaltbild, welches einen Aufbau eines Funktionsblocks an einem oberen Seitenab­ schnitt einer ALU einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Er­ findung darstellt;
Fig. 24 ein Blockschaltbild, welches einen anderen Aufbau eines Funktionsblocks an einem unteren Seitenabschnitt einer ALU einer ersten Aus­ führungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 25 ein Blockschaltbild, welches einen anderen Aufbau eines Funktionsblocks an einem oberen Seitenabschnitt einer ALU einer ersten Aus­ führungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 26A eine schematische Darstellung, welche ein Beispiel von Zellfunktionen verschiedener Steuerbits zum Erleichtern einer ASIC-Er­ weiterung als weitere Ausführungsform einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung zeigt;
Fig. 26B eine schematische Darstellung, welche ein Beispiel von Zellfunktionen verschiedener Steuerbits zum Erleichtern einer ASIC-Er­ weiterung als weitere Ausführungsform einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung zeigt;
Fig. 26C eine schematische Darstellung, welche ein Beispiel von Zellfunktionen verschiedener Steuerbits zum Erleichtern einer ASIC-Er­ weiterung als weitere Ausführungsform einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung zeigt;
Fig. 26D eine schematische Darstellung, welche ein Beispiel von Zellfunktionen verschiedener Steuerbits zum Erleichtern einer ASIC-Er­ weiterung als weitere Ausführungsform einer ersten Ausführungsform eines Mikrocomputers gern der vorliegenden Erfindung zeigt;
Fig. 27A eine schematische Darstellung, welche ein Beispiel von Zellfunktionen verschiedener Steuerbits zum Erleichtern einer ASIC-Er­ weiterung als weitere Ausführungsform einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung zeigt;
Fig. 27B eine schematische Darstellung, welche ein Beispiel von Zellfunktionen verschiedener Steuerbits zum Erleichtern einer ASIC-Er­ weiterung als weitere Ausführungsform einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung zeigt;
Fig. 28 ein Schaltbild, welches eine spezielle Schaltung von einer Zelle einer weiteren Aus­ führungsform einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 29 ein Schaltbild, welches eine separate spezielle Schaltung von einer Funktionszelle einer weiteren Ausführungsform einer ersten Aus­ führungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt;
Fig. 30 ein Schaltbild, welches eine Funktionszelle einer weiteren Ausführungsform einer ersten Ausführungsform eines Mikrocomputers gemäß der vorliegenden Erfindung darstellt, welche Funktionszelle ein aus einem Funktionsblock ausgegebenes Statussignal empfängt;
Fig. 31A einen Abschnitt eines Impulsdiagramms, welches einen Basiszyklus von einer Anweisungsaus­ führungs-Sequenz einer CPU einer zweiten Aus­ führungsform eines Mikrocomputers gemäß der vor­ liegenden Erfindung darstellt;
Fig. 31B einen Abschnitt eines Impulsdiagramms, welches einen Basiszyklus von einer Anweisungsaus­ führungs-Sequenz einer CPU einer zweiten Aus­ führungsform eines Mikrocomputers gemäß der vor liegenden Erfindung darstellt; und
Fig. 32 ein Blockschaltbild, welches ein Beispiel eines speziellen Aufbaus einer zweiten Ausführungs­ form eines Mikrocomputers gemäß der vor­ liegenden Erfindung zeigt.
Nachstehend wird die vorliegende Erfindung auf Grundlage der ihre Ausführungsformen darstellenden Zeichnungen im einzelnen beschrieben.
Die erste Ausführungsform
Fig. 4 ist ein Impulsdiagramm, welches einen Basiszyklus einer Anweisungsausführungs-Sequenz durch eine CPU einer ersten Ausführungsform eines Mikrocomputers gemäß der vor­ liegenden Erfindung zeigt.
Nachstehend wird die Anweisungsausführungs-Sequenz der ersten Ausführungsform des Mikrocomputers der vorliegenden Erfindung unter Bezugnahme auf das Blockschaltbild der Fig. 5, das ein Beispiel eines speziellen Aufbaus der CPU darstellt, der Reihe nach beschrieben.
In Fig. 4 bezeichnet das Bezugszeichen 1 eine Wellenform eines Basistakts Φ. Obwohl in dem vorstehend genannten her­ kömmlichen Beispiel ein Takt, der durch einen im Mikrocomputer eingebauten Oszillator erzeugt wird, in zwei Takte zur Ver­ wendung als Basistakt Φ geteilt wird, wird beim Mikrocomputer der vorliegenden Erfindung der durch den eingebauten Oszillator erzeugte Takt selbst verwendet. Wenn insbesondere eine Oszillationsfrequenz des eingebauten Oszillators beispielsweise 6 MHz ist, dann beträgt ein Zyklus des Basis­ takts Φ 167 ns.
Ein Hochpegel-Abschnitt eines ersten Zyklus in den beiden Zyklen des Basistakts Φ wird als Zeitabschnitt T1 bezeichnet, ein Tiefpegel-Abschnitt desselben als Zeitabschnitt T2, ein Hochpegel-Abschnitt eines zweiten Zyklus wird als Zeitab­ schnitt T3 und ein Tiefpegel-Abschnitt desselben als Zeitab­ schnitt T4 bezeichnet.
Das Bezugszeichen 2 bezeichnet eine Wellenform eines ersten Hilfstaktes ΦH. Der Hilfstakt ΦH beruht darauf, daß in den Zeitabschnitten T1 und T3, welche die Hochpegel-Abschnitte (nachstehend als "H" bezeichnet) des Basistakts Φ sind, das Timing derart festgelegt ist, daß ein Zunehmen um eine Zeit "td" gegenüber demjenigen des Basistakts Φ verzögert ist und ein Abnehmen mit dem des Basistakts Φ synchronisiert ist.
Ähnlich bezeichnet das Bezugszeichen 3 eine Wellenform eines zweiten Hilfstaktes ΦL. Der Hilfstakt ΦL beruht darauf, daß in den Zeitabschnitten T2 und T4, welche die Tiefpegel-Abschnitte (nachstehend als "L" bezeichnet) des Basistakts Φ sind, das Timing derart festgelegt ist, daß ein Zunehmen um die Zeit td gegenüber dem Abnehmen des Basistakts Φ verzögert ist und das Abnehmen mit dem Zunehmen des Basistakts Φ synchronisiert ist.
Die Hilfstakte ΦH, ΦL haben eine große Bedeutung beim Ver­ hindern eines Fortlaufens, wie es nachstehend beschrieben wird.
Das Bezugszeichen 4 bezeichnet ein Timing des Lesens von Daten aus einem Programmspeichergebiet 51, wie beispielsweise aus einem ROM oder RAM, EPROM, EEPROM und so weiter. Insbesondere werden die Bitleitungen des Programmspeichergebiets 51 beim Timing im durch das Bezugszeichen 4a bezeichneten Zeitab­ schnitt T1 vorgeladen und werden beim Timing im durch das Bezugszeichen 4b bezeichneten Zeitabschnitt T2 Zieldaten ent­ nommen. Da jedoch das Auslesetiming schließlich verzögert wird, wenn im Zeitabschnitt T2 Daten gelesen werden, gibt es einen Zeitabschnitt, in welchem die Daten für eine bestimmte Zeit nach dem Abnehmen des Basistakts Φ im Zeitabschnitt T2 nicht festgelegt sind. Um das zu kompensieren, ist die vor­ stehend genannte Verzögerungszeit td in den Hilfstakten ΦH und ΦL festgelegt, so daß im unbestimmten Zeitabschnitt der Daten in einer nachstehend beschriebenen Steuersignal-Erzeugeschal­ tung der CPU ein Steuersignal nicht fehlerhaft ausgegeben wird. Der nicht festgelegte Zeitabschnitt von Daten beträgt gewöhnlich 15 bis 30 ns.
Das Bezugszeichen 5 bezeichnet ein Timing des Ausgebens einer Adresse während der Ausführung eines Programms, welches sich über die Zeitabschnitte T1, T2 erstreckt. Im Falle eines Zu­ greifens auf Daten im Programmspeichergebiet 51 eines Speichers wird die Adresse mit diesem Timing ausgegeben. Ob­ gleich die Zugriffsadresse durch einen Programmzähler 40 er­ zeugt und ausgegeben wird, wird ihr spezielles Timing mit dem Bezugszeichen 12 bezeichnet.
Das Bezugszeichen 6 bezeichnet ein Timing des Lesens eines Programm-(Anweisungs-)Codes aus dem Programmspeichergebiet 51, welcher unter der durch das Timing 5 bestimmten Adresse gespeichert ist, und ein Übertragen desselben zur CPU (durch die CPU geholt). Gleichzeitig mit dem durch die CPU geholten Anweisungscode wird dieser in einem Anweisungsdecodierer 66 mit einem durch das Bezugszeichen 8 bezeichneten Timing de­ codiert.
Der Code wird aus dem Programmspeichergebiet 51 gelesen und nur im Halbzyklus-Zeitabschnitt T2 des Basistakts Φ decodiert. Der aus dem Programmspeichergebiet 51 gelesene Code wird in einer Operationscode-Verriegelungseinrichtung 56 mit einem mit dem Bezugszeichen 7 bezeichneten Timing verriegelt. Bezüglich der Anweisung, welche die Ausführungszeit von zwei oder mehr Zyklen des Basistakts Φ benötigt, wie durch das Bezugszeichen 7b bezeichnet, wird der Anweisungscode solange in der Operationscode-Verriegelungseinrichtung 56 kontinuierlich ver­ riegelt, bis die Anweisung ausgeführt worden ist.
Das Bezugszeichen 9 bezeichnet ein Lesetiming aus einem Quell­ register, welches einen Operanden hält. Das heißt, der Operand, der durch die in der vorstehend genannten Weise de­ codierte Anweisung gehandhabt wird, wird aus dem Quellregister gelesen, welches denselben in einem Registersatz 20 hält, und in eine ALU 22 geladen.
Das Bezugszeichen 10 bezeichnet ein Operations-Timing der ALU 22. Das heißt, eine Operation mit dem mit dem vorstehend ge­ nannten Timing 9 aus dem Quellregister in die ALU 22 geladenen Operanden wird durch die ALU 22 ausgeführt, und das Ergebnis wird mit einem Timing 10 in einer Ergebnis-Verriegelungsein­ richtung 23 gespeichert.
Schließlich wird mit einem durch das Bezugszeichen 11 bezeich­ neten Timing des Zeitabschnitts T3 das Operationsergebnis durch die ALU 22 in einem Zielregister (Registersicherung) im Registersatz 20 gespeichert, um eine Reihe von Anweisungsaus­ führungen zu beenden.
Das Bezugszeichen 12 bezeichnet ein Operationstiming des Programmzählers 40. Obgleich nachstehend im einzelnen be­ schrieben, wird der Programmzähler 40 gebildet aus: einer Ver­ riegelungseinrichtung 41, welche einen Zählwert PC hält und diesen zum Programmspeichergebiet 51 durch den Adreßbus aus­ gibt, und einem Inkrementierer 42, welcher den PC-Wert zu einer Zeit um "+1" inkrementiert, und einem Register 44, welches den durch den Inkrementierer 42 inkrementierten PC- Wert hält, um damit durch die Verriegelungseinrichtung 41 ver­ riegelt zu werden.
Wird vorausgesetzt, daß der PC-Wert des Programmzählers 40 mit einem sich über die Zeitabschnitte T1, T2 erstreckenden Timing 12a "PC" ist, dann wird er im Inkrementierer 42 mit einem Timing auf "PC + 1" inkrementiert, welches sich über die um einen Halbzyklus verzögerten Zeitabschnitte T2, T3 erstreckt. Durch erneutes Speichern dieses neuen inkrementierten PC- Wertes "PC + 1" in der Verriegelungseinrichtung 41 des Programmzählers 40 mit einem sich über die Zeitabschnitte T3, T4 erstreckenden Timing 12c wird der um eine Adresse weiterge­ rückte "PC + 1"-Wert zum Adreßbus als Wert des Programmzahlers 40 ausgegeben. Zur Zeit des Ausführens einer Verzweigungsan­ weisung wird eine neue Verzweigungszieladresse mit einem Timing 12d erzeugt, welches den gleichen Zeitabschnitt wie das Timing 12b aufweist, und mit dem Timing 12c in der Ver­ riegelungseinrichtung 41 des Programmzählers gespeichert.
Das Bezugszeichen 13 bezeichnet ein Basistiming einer Gruppe von Steuersignalen, welche durch Decodieren des Anweisungs­ codes durch den Anweisungsdecodierer 66 des Mikrocomputers der vorliegenden Erfindung erzeugt werden und grob in fünf Arten eingeteilt sind.
Eine Gruppe von Signalen e0X sind Steuersignale, die direkt aus einer statischen Kombinationsschaltung im Anweisungsde­ codierer 66 gleichzeitig mit dem Holen der Anweisung ausge­ geben werden.
Eine Gruppe von Signalen e2X sind Steuersignale, welche beispielsweise das Timing des Signals e0X mit dem Timing des Hilfstakts ΦL bilden, wobei dieses Beispiel ein Registerlade- Steuersignal kennzeichnet.
Eine Gruppe von Signalen e4X sind Steuersignale, die direkt in der statischen Kombinationsschaltung im Anweisungsdecodierer 66 aus dem mit dem Timing 7 verriegelten Anweisungscode er­ zeugt werden, und ein Signal e6X ist ein Steuersignal, welches das Timing des Signals e4X mit dem Timing des Hilfstakts ΦH bildet.
Obwohl die CPU im wesentlichen durch Kombination der vor­ stehenden vier Timing-Arten gesteuert wird, wird teilweise ein Sonder-Timing-Signal zusätzlich verwendet.
Fig. 6 ist ein Blockschaltbild, welches einen Aufbau aus Registerbussen und Registern 20-A, 20-B . . . 20-N, einer ALU 22 und weiteren damit verbundenen Teilen einer CPU einer ersten Ausführungsform des Mikrocomputers der vorliegenden Erfindung darstellt.
In Fig. 6 bezeichnen die Bezugszeichen 20-A, 20-B . . . 20-N interne Register der CPU, welche als Ganzes einen Registersatz 20 bilden. Registeradreßbusse A, B . . . N sind den ent­ sprechenden Registern 20-A, 20-B . . . 20-N zugewiesen. Die Register 20-A, 20-B . . . 20-N sind mit einem Leseregisterbus SEQ-A (C) 25 mittels Schaltern 28-A, 28-B . . . 28-N verbunden.
Die Schalter 28-A, 28-B . . . 28-N werden durch Steuersignale e21-A, e21-B . . . e21-N entsprechend gesteuert. Die Signale e21-A, e21-B . . . e21-N werden durch Decodieren eines 5-Bit- Quellregister-Spezifizierungssignals 33, welches das Quell­ register spezifiziert, und eines durch das Bezugszeichen 34 bezeichneten Register-Lesesteuerungs-Timingsignals e21 durch entsprechende Decodierschaltungen 37-A, 37-B . . . 37-N erhal­ ten.
Das Bezugszeichen 21 bezeichnet ein Zwischenregister, dessen einer Ausgang direkt mit einem Eingang der ALU 22 verbunden ist und dessen anderer Ausgang mit dem Registerbus SEQ-A (C) ebenso wie die anderen Register verbunden ist.
Die ALU 22 führt eine numerische Operation, eine logische Operation, eine Schiebeoperation und so weiter unter Verwen­ dung der aus dem Registerbus SEQ-A (C) gesendeten Daten und eines im Zwischenregister 21 als Operand gehaltenen Wertes aus. Das Operationsergebnis der ALU 22 wird in einer Ergebnis- Verriegelungseinrichtung 23 gehalten und treibt einen Registerbus SEQ-B (D) 26 mittels eines Buspuffers 24.
Nun ist als modifiziertes Beispiel der in Fig. 6 dargestell­ ten Ausführungsform ein erfindungsgemäßer Aufbau gemäß An­ spruch 13 verwendbar, welcher in Fig. 7 gezeigt ist. Das heißt, ferner ist ein Aufbau verwendbar, welcher ein Puffer­ register 27 umfaßt, das aus dem Registerbus SEQ-A (C) 25 aus­ gelesene Daten zeitweilig hält. Im Falle des Verwendens eines derartigen Aufbaus ist ein ausreichender Timingentwurf möglich, welcher im in Fig. 4 dargestellten Timing 10b be­ schrieben ist. In Fig. 7 werden die zum Pufferregister 27 eingegebenen Daten durch einen Schalter 30 gesteuert, welcher eingeschaltet ist, wenn sich der Hilfstakt ΦL im Hochpegel be­ findet.
Bei einem derartigen Aufbau, der eine Verriegelungsschaltung umfaßt, welche den aus dem Register gelesenen Wert vor dem Zuführen zur ALU 22 hält, wird eine Ausführungsge­ schwindigkeits-Grenze der ALU 22 erreicht, da die Operation der ALU 22 über einen Zyklus der Zeitabschnitte T2 und T3 ausgeführt wird, wie durch das Bezugszeichen 10b dargestellt. In jedem beliebigen Fall wird das Operationsergebnis der ALU 22 über die Zeitabschnitte T2, T3 in der Ergebnis-Ver­ riegelungseinrichtung 23 gehalten, um den Registerbus SEQ-B (D) 26 auf der Schreibseite zu treiben.
In der in Fig. 6 dargestellten ursprünglichen Ausführungsform existieren das Pufferregister 27 und der Steuerschalter 30 jedoch nicht, und der Registerbus SEQ-A (C) 25 ist mit dem Eingang der ALU 22 direkt verbunden. Ferner wird ein Übertrag mittels eines Pfades 32 zur ALU 22 eingegeben und wird ein Übertragsausgang mittels eines Pfades 31 in einem Übertragsbit gespeichert.
Der Registerbus SEQ-B (D) 26 dient dazu, das Operationsergeb­ nis der ALU 22 zum Register zurückzuführen, und er ist mit den Registern 20-A, 20-B . . . 20-N mittels Schaltern 29-A, 29-B . . . 29-N zum Speichern von Daten in den Registern und mit dem Zwischenregister 21 mittels eines Schalters 29-T verbunden. Die Schalter 29-A, 29-B . . . 29-N und 29-T werden durch Steuer­ signale e61-A, e61-B . . . e61-N und e61-T gesteuert. Die Steuersignale e61-A, e61-B . . . e61-N und e61-T werden durch Decodieren eines 5-Bit-Zielregister-Spezifizierungssignals 35, welches das Zielregister spezifiziert, und eines mit dem Be­ zugszeichen 36 bezeichneten Registerschreibsteuerungs-Timing­ signals e61 durch Decodierschaltungen 38-A, 38-B . . . 38-N er­ halten.
Die vorstehend genannten Schalter sind durch Zeichen ○ in Fig. 6 und Fig. 7 dargestellt und werden durch die neben­ stehend angegebenen Signale ein- und ausgeschaltet. Als spezielles Verfahren zum Realisieren dieser Schalter sind beispielsweise ein Verfahren zum Bilden durch ein Trans­ missions-Gate und ein Verfahren zum Kombinieren von zwei N- Kanal-Transistoren, in welche ein Steuersignal aus zwei Signalleitungen TRUE und BAR eingegeben wird, verwendbar.
Fig. 8 und Fig. 9 sind Blockschaltbilder, welche einen Auf­ bau eines Programmzählers einer ersten Ausführungsform eines Mikrocomputers der vorliegenden Erfindung zeigen. Fig. 8 zeigt im wesentlichen den Aufbau eines Hauptteils des Programmzählers, und Fig. 9 stellt im wesentlichen den Aufbau einer Steuerschaltung dar.
In Fig. 9 bezeichnet das Bezugszeichen 41 eine 13-Bit-SC-Ver­ riegelungseinrichtung, welche einen Zählwert (den PC-Wert) des Programmzählers hält. Die SC-Verriegelungseinrichtung 41 gibt Adreßsignale eines ROMs und eines RAMs mittels eines Adreßbus­ puffers aus.
Das Bezugszeichen 42 bezeichnet einen Inkrementierer (SC-In­ krementierer) des Programmzählers. Der SC-Inkrementierer 42 inkrementiert einen Wert der SC-Verriegelungseinrichtung 41 um "+1", wenn ein Inkrementsteuereingang 43 auf "H" ist, und führt die oberen 4 Bits des Ergebnisses einem Ergebnis-H- Register 44-a und die unteren 9 Bits einem Ergebnis-L-Register 44-b zu. Ein Ergebnisregister 44 wird aus dem Ergebnis-H- Register 44-a und dem Ergebnis-L-Register 44-b gebildet.
Gewöhnlich werden die Ausgänge der Register 44-a und 44-b einem SEQ-E-Bus, welcher ein Registerbus in einem Adreß­ operationsblock ist, mittels eines Schalters 45 zugeführt, und sie sind gebildet, um einen neuen Wert in die SC-Ver­ riegelungseinrichtung 41 zu setzen. Ein das Ein-/Aus-Timing des Schalters 45 steuerndes Steuersignal ist ein SC- Sicherungssignal.
Dagegen sind die Ausgänge des Ergebnis-H-Registers 44-a und des Ergebnis-L-Registers 44-b ferner mit einem SEQ-F-Bus ver­ bunden, um einen Pfad zum Speichern einer Ausführungsquell­ adresse in einem nachstehend beschriebenen Stack-Register zu bilden, wenn eine Unterbrechung oder ein Unterprogrammaufruf stattfindet.
In der nachstehenden Beschreibung wird ein charakteristischer Aufbau des Mikrocomputers der vorliegenden Erfindung darge­ stellt.
In der Figur bezeichnen die Bezugszeichen 45H1, 45H2 . . . 45H8 obere 5-Bit-Stacks, und die Bezugszeichen 45L1, 45L2 . . . 45L8 bezeichnen untere 8-Bit-Stacks. Jedes dieser Stacks bildet durch das obere Stack 45H1 und das untere Stack 45L1, durch das obere Stack 45H2 und das untere Stack 45L2 . . . sowie durch das obere Stack 45H8 und das untere Stack 45L8 ein Stack­ register.
Die oberen Stacks 45H1, 45H2 . . . 45H8 haben als Eingangspfade sowohl einen Pfad, welcher Daten aus dem vorstehend genannten SEQ-F-Bus holt, als auch einen Pfad, welcher das Operationser­ gebnis der ALU 22 mittels des SEQ-D-Busses holt. Die unteren Stacks 45L1, 45L2 . . . 45L8 haben als Eingangspfade sowohl einen Pfad, welcher Daten aus dem vorstehend genannten SEQ-F- Bus holt, als auch einen Pfad, welcher das Operationsergebnis der ALU 22 mittels des SEQ-B-Busses holt.
Ferner gibt es als Ausgangspfade der oberen Stacks 45H1, 45H2 . . . 45H8 einen Pfad, der mit dem SEQ-E-Bus verbunden ist, welcher einer SC-Verriegelungseinrichtung 41 Daten zuführt, und einen Pfad, der mit einem SEQ-C-Bus verbunden ist, welcher einem Operationseingang der ALU 22 Daten zuführt. Als Aus­ gangspfade der unteren Stacks 45L1, 45L2 . . . 45L8 gibt es einen Pfad, der mit dem SEQ-E-Bus verbunden ist, welcher der SC-Verriegelungseinrichtung 41 Daten zuführt, und einen Pfad, der mit einem SEQ-A-Bus verbunden ist, welcher einem Operationseingang der ALU 22 Daten zuführt.
Durch die Stacks 45H1, 45H2 . . . 45H8 und 45L1, 45L2 . . . 45L8 wird eine Einrichtung zum Zuführen des Operationsergebnisses der ALU 22 zur SC-Verriegelungseinrichtung 41 des Programm­ zählers als Adresse der als nächstes auszuführenden Anweisung gebildet.
Ferner sind mit dem SEQ-E-Bus verbunden: ein Pfad 46, welcher eine Verzweigungszieladresse direkt aus einer Operationscode- Verriegelungseinrichtung 56 mit 16-Bit-Konfiguration empfängt, ein Pfad 47, welcher einen Rücksetzvektor als festgelegte Adresse unter Verwendung einer Hardware zur Zeit eines Rück­ setzens des Systems zuführt, und ein Pfad 48, welcher den Rücksetzvektor aus einer Test-Rücksetzvektor-Schaltung unter Verwendung einer Software zuführt.
In Fig. 9 ist eine mit dem Bezugszeichen 48 bezeichnete Schaltung auf der linken Seite des SEQ-E-Busses eine Steuer­ schaltung zum Steuern des Betriebs des Programmzählers. Die Steuerschaltung 48 gibt eine folgende Mehrzahl von Steuer­ signalen ein, um die Steuersignale, wie beispielsweise SC save und so weiter, zu erzeugen.
Obwohl der in Fig. 8 und Fig. 9 dargestellte Programmzähler 40 im wesentlichen mit dem Timing des Hilfstakts ΦH gesichert wird, gibt es einige Faktoren, um das zu unterbinden. Zunächst wird ein PC-Wert "SC+ 1" zur Zeit des Ausführens der 2- Zyklen-Anweisung durch ein Signal e42B verworfen, welches das SC-Sicherungssignal mittels eines ODER-Gatters 403 und eines UND-Gatters 404 bedeutungslos macht. Obwohl ein "br av"-Signal (Verzweigung vorhanden) anzeigt, daß die Verzweigung zur Zeit des Ausführens der Verzweigungsanweisung wirksam ist, wird es als Ausgang eines ODER-Gatters 401 nur dann realisiert, wenn entweder ein Verzweigungssteuerungssignal, welches ein Ausgang einer nachstehend zu beschreibenden Zustandsentscheidungs­ schaltung ist, ein Signal e43B (Verzweigungsbedingung : Signal zur Steuerung der Anweisung zur bedingten Verzweigung) oder ein 1-Bit-o11-Wert der Operationscode-Verriegelungseinrichtung 56 zu diesem Zeitpunkt auf "H" geht.
Das Bit o11 ist das Bit, welches die unbedingte Verzweigung steuert. Wenn das Bit o11 auf "L" steht, dann zeigt es-eine bedingte Verzweigung an, und wenn das Bit o11 auf "H" steht, dann zeigt es eine unbedingte Verzweigung an.
Ein Signal e82B ist ein Steuersignal, welches das Inkremen­ tieren des PC-Wertes zum Sichern einer Rückkehradresse zur Zeit der Unterbrechung oder Abbruchunterbrechung zurückweist.
Die Anweisungsausführung der bedingten Verzweigung des Mikro­ computers der vorliegenden Erfindung ist kennzeichnend und verwendet ein Verfahren, wodurch die unteren 9 Bits (Bit 8 bis Bit 0) der Verzweigungszieladresse aus dem durch die Operationscode-Verriegelungseinrichtung 56 gehaltenen An­ weisungsoperanden mittels des Pfades 46 direkt zugeführt werden und die oberen 4 Bits derart vorliegen, daß ein Spezifizieren von +1/+0/-1 und einer absoluten Nullseite von einer derzeit ausgeführten Seite gewählt werden kann. Somit werden durch Aktivieren eines Ausgangs eines UND-Gatters 402 durch ein Signal e63 (Verzweigungs-SC-Sicherungssignal) zur Zeit des Ausführens der Verzweigungsanweisung die unteren 9 Bits der Verzweigungszieladresse aus der Operationscode-Ver­ riegelungseinrichtung 56 mittels des Pfades 46 und des SEQ-E- Busses der SC-Verriegelungseinrichtung 41 zugeführt, und die oberen 4 Bits liegen derart vor, daß durch Aktivieren der Seitenoperation durch ein Signal e47 (Seitensignal) eine Seitenspezifizierungsschaltung durch 2 Bits, den Bits o10 und o9 des Operationscodes, aktiviert wird.
Zur Zeit eines Unterprogrammaufrufs werden die Bits o12 bis o3 des in der Operationscode-Verriegelungseinrichtung 56 als 10- Bit-Adresse gehaltenen Operanden im Anweisungscode durch ein Steuersignal e64 mittels des Pfades 47 und des SEQ-E-Busses der SC-Verriegelungseinrichtung 41 direkt zugeführt. Im Falle eines Unterprogrammaufrufs werden in dieser Ausführungsform die unteren 3 Bits (Bit 2 bis Bit 0) durch das Steuersignal e64 immer mit einem festgelegten Wert von "000" auf dem gleichen Wege wie vorstehend beschrieben zugeführt.
Die Erzeugung eines Unterbrechungsvektors des Mikrocomputers der vorliegenden Erfindung ist ferner kennzeichnend, wobei Daten, die durch ein in Reaktion auf Unterbrechungsfaktoren im voraus zugewiesenes Stack-Register gehalten werden, unver­ ändert als Sprungzieladresse der Unterbrechungsroutine dienen. Somit ist es im Falle des Verwendens der Unterbrechung not­ wendig, den Unterbrechungsvektor im voraus durch die Programme in die Stacks 45H1, 45H2 . . . 45H8 und 45L1, 45L2 . . . 45L8 zu schreiben. Die Daten werden übermittelt und zwischen dem Programmzähler und den Stacks 45H1, 45H2 . . . 45H8 und 45L1, 45L2 . . . 45L8 durch die Steuersignale e65-1, e65-2 . . . e65-8 und e66-1, e66-2 . . . e66-8 der mit dem SEQ-E-Bus verbundenen Schalter empfangen.
Es gibt ferner ein Verfahren zum Ausführen der Verzweigungsan­ weisung, bei welchem die Zieladresse durch das Programm be­ rechnet wird und in einem beliebigen der Stacks 45H1, 45H2 . . . 45H8 und 45L1, 45L2 . . . 45L8 im voraus gespeichert wird, wobei es durch Ausführen der speziellen Verzweigungsanweisung möglich ist, in alle Adreßräume zu verzweigen. Beim Mikro­ computer der vorliegenden Erfindung wird die Anweisung BRT (Verzweigungsknoten) und BSR (Verzweigung mit Stack) genannt. Wenn diese Anweisung ausgeführt wird, dann werden die Daten zwischen dem Programmzähler und den Stacks 45H1, 45H2 . . . 45H8 und 45L1, 45L2 . . . 45L8 durch die vorstehend genannten Steuer­ signale e65-1, e65-2 . . . e65-8 und e66-1, e66-2 . . . e66-8 übermittelt und empfangen.
Schließlich werden in diesem Adreßoperationsblock für den Datenzugriff im Speicherraum ferner die Stack-Register ver­ wendet. Das heißt, es kann auf zwei Arten von durch das Programm gesetzten Adressen zugegriffen werden, wenn es not­ wendig ist, Daten im gewöhnlich direkt als Programmspeicher­ gebiet verwendeten Speicherraum durch Verwenden von zwei Sätzen externer Adreß-Pointer 45P1, 45P2 mit der gleichen Konfiguration wie der durch Kombinieren der entsprechenden Stacks 45H1, 45H2 . . . 45H8 und 45L1, 45L2 . . . 45L8 gebildeten Stack-Register zu bearbeiten, um sie durch das Bit 11 des An­ weisungscodes zu spezifizieren, obgleich das in Fig. 9 nicht dargestellt ist. Auch in diesem Fall werden die Daten zwischen dem Programmzähler und den Stacks 45H1, 45H2 . . . 45H8 und 45L1, 45L2 . . . 45L8 durch die Steuersignale e65-1, e65-2 . . . e65-8 übermittelt und empfangen.
Fig. 10 bis Fig. 13 sind Blockschaltbilder, welche ein Beispiel eines Schaltungsaufbaus eines Anweisungsdecodierers einer ersten Ausführungsform eines Mikrocomputers der vor­ liegenden Erfindung darstellen. Fig. 10 ist ein Blockschalt­ bild, welches den Aufbau einer Operationscode-Verriegelungs­ einrichtung 56 zeigt, Fig. 11 ist ein Blockschaltbild, welches den Aufbau einer Anweisungszyklus-Steuerschaltung zeigt, Fig. 12A und Fig. 12B sind Blockschaltbilder, welche den Aufbau einer Anweisungsdecodierschaltung zeigen, und Fig. 13 ist ein Blockschaltbild, welches den Aufbau einer Schaltung zum Erzeugen eines Steuersignals eXX, das entsprechende Ab­ schnitte der CPU steuert, darstellt.
In Fig. 10 bezeichnet das Bezugszeichen 51 ein Programm­ speichergebiet des Speichers. Beim Empfangen der aus dem Programmspeichergebiet 51 an einen Datenbus SQR (15 bis 0) ausgegebenen Daten werden Anweisungscodedaten als Signal OPDEC 15 bis 0 und direkt als ein Eingang OPDEC 15 bis 0 eines Anweisungsdecodierers 66 mittels eines Schalters 52a und eines Puffers 53 zugeführt. Der Ausgang des Puffers 53 wird mittels eines Schalters 54 zur Operationscode-Verriegelungseinrichtung 56 eingegeben. Manipulationen zum Halten des Anweisungscodes in der Operationscode-Verriegelungseinrichtung 56 werden in jedem Anweisungszyklus wiederholt.
Gewöhnlich ist ein Signal e87 auf "L" und ein Signal e10B auf "H". Somit ist der Ausgang eines ODER-Gatters 55B, dem diese Signale eingegeben werden, auf "H". Da der Ausgang eines UND- Gatters 55A, in welches der Hilfstakt ΦL und der Ausgang des ODER-Gatters 55B eingegeben werden, auf "H" ist, schaltet während des Zeitabschnitts "H" des Hilfstakts ΦL gewöhnlich der Schalter 54 ein, wodurch der Operationscode in ent­ sprechenden Zyklen in der Operationscode-Verriegelungsein­ richtung 56 gespeichert wird. Da das Signal e10B im Falle einer 2-Zyklen-Anweisung oder einer 3-Zyklen-Anweisung aktiv ("L") wird und der Ausgang des ODER-Gatters 55B auf "L" geht, schaltet der Schalter 54 aus, wodurch die Operationscode-Ver­ riegelungseinrichtung 56 daran gehindert wird, den Operations­ code zu verriegeln.
Der Ausgang der Operationscode-Verriegelungseinrichtung 56 dient als weiterer Eingang OP 15 bis 0 des Anweisungsde­ codierers 66. Durch Einschalten eines beliebigen der Schalter 57-a, 57-b und 57-c, um den Betrieb der ALU 22 zu steuern, wird ferner ein Signal CLC 4 bis 0 aus einem Signal OPDEC 12 bis 8 und den Signalen OP 12 bis 8, 6 bis 2 erzeugt.
Das CLC-Signal besteht aus 5 Bits und dient einem Unter­ scheiden der Operationstypen. Insbesondere im Falle einer Registeroperation werden die Bits 12 bis 8 (OPDEC 12 bis 8) des Anweisungscodes im Zeitabschnitt T2 verwendet, im Falle einer Speicheroperation werden die Bits 6 bis 2 (OP 6 bis 2) des Anweisungscodes im Zeitabschnitt T4 des zweiten Zyklus verwendet, und im Falle einer Operation eines 16-Bit-Direkt­ werts des Operanden, welcher eine 2-Wort-Anweisung ist, und dem Register werden die Bits 12 bis 8 des Anweisungscodes OP 12 bis 8 im Zeitabschnitt T6 des dritten Zyklus verwendet. Das CLC-Signal dient ferner als Eingang des Anweisungsdecodierers 66.
Das Bezugszeichen 58 bezeichnet einen Spezialcodegenerator, welcher zur Zeit einer durch externe Faktoren verursachten Sonderverarbeitung, welche sich von jener der Programme, wie beispielsweise Unterbrechung, Rücksetzen, Abbruch und so weiter, unterscheidet, einen ihr entsprechenden Anweisungscode (Spezialcode) in einer Hardwareschaltung erzeugt, um ihn dem Anweisungsdecodierer 66 wirksam zuzuführen.
Obwohl gewöhnlich ein Schalter 52-b ausgeschaltet ist und auf das Programmspeichergebiet 51 mittels des Datenbusses SQR (15 bis 0) 50 zugegriffen wird, da das Signal e87 auf "L" ist, wenn die vorstehend genannte Sonderverarbeitung gestartet ist, ändert sich das Signal e87 auf "H" und wird der durch den Spezialcodegenerator 58 erzeugte Code zugeführt. Da zu dieser Zeit der Schalter 54 durch das ODER-Gatter 55B und das UND- Gatter 55A eingeschaltet ist, wenn sich das Signal e87 auf "H" ändert, wird der aus dem Spezialcodegenerator 58 ausgegebene Code ferner in der Operationscode-Verriegelungseinrichtung 56 wirksam gespeichert.
Der Sondercode umfaßt einige Sondercodes, welche von den Faktoren abhängen. In der Ausführungsform der vorliegenden Er­ findung sind die in der Tabelle der Fig. 14 dargestellten Codes gesetzt.
In Fig. 14 ist "BRK" der Code, welcher zu einem Abbruchvektor springt, "RTB" ist der Code, welcher aus dem Abbruch zurück­ kehrt, "INT" ist der Unterbrechungsverarbeitungscode, "RES" ist der Code, der das System zurücksetzt, und "TES" ist der Code, welcher das System zum Test zurücksetzt.
Fig. 11 ist ein Blockschaltbild, welches ein Beispiel des Aufbaus eines Anweisungszykluszählers 62 zeigt, welcher die Anzahl von Anweisungszyklen steuert.
Der Anweisungsdecodierer 66 decodiert die Signale der Ausgänge OP 15 bis 0 der Operationscode-Verriegelungseinrichtung 56 durch eine statische Logikschaltung 60, um Signale THREECYC (3-Zyklen-Anweisung), TWOCYC (2-Zyklen-Anweisung) und ONECYC (1-Zyklus-Anweisung) zu erzeugen, welche anzeigen, in welchem Zyklus die Anweisung ist. Um aus diesen Signalen Signale ONESIGPRE, ONESIG, TWOSIGPRE, TWQSIG, THREESIGPRE und THREESIG zu erzeugen, die anzeigen, in welchem Zyklus ein vorliegender Zustand ist, sind Kombinationsschaltungen 61-a, 61-b und 61-c gemäß Übergangsfestlegungen der entsprechenden Zustände vorge­ sehen.
Die Bezugszeichen 62-a, 62-b, 62-c und 63-a, 63-b, 63-c be­ zeichnen einfache Schieberegister, wobei die Schieberegister 62-a, 62-b und 62-c eine Schiebeoperation in Synchronisation mit dem Hilfstakt ΦL ausführen und die Schieberegister 63-a, 63-b und 63-c eine Schiebeoperation in Synchronisation mit dem Hilfstakt ΦH ausführen.
Fig. 12A und Fig. 12B sind Blockschaltbilder, welche den Aufbau eines Operanden-Decodierers darstellen. Da in der ersten Ausführungsform des Mikrocomputers der vorliegenden Er­ findung der Operand der Registerspezifizierung und dergleichen in dem 16-Bitlängen-Anweisungscode enthalten ist, ist es not­ wendig, den Operanden zur Zeit des Ausführens der Anweisung zu entnehmen. Die Blockschaltbilder der Fig. 12A und der Fig. 12B zeigen den Aufbau des Operanden-Decodierers für diesen Zweck.
Im Falle einer Register-zu-Register-Datenübertragungsanweisung wird eine Übertragungs-Quellregister-Spezifizierungsadresse "Source Reg (6)" durch 6 Bits von den Bits 7 bis 2 erhalten, welche aus einem zum Datenbus SQR (15 bis 0) 50 ausgegebenen Datensignal erhalten werden. Wogegen eine Übertragungs-Ziel­ register-Spezifizierungsadresse "Destination Reg (6)" aus den Bits 13 bis 8 an einem Ausgang OP (15 bis 0) der Operations­ code-Verriegelungseinrichtung 56 erhalten wird. Im Falle des Speicherns eines Direktwertes im Register wird der Direktwert (16 Bits) einem Registerbus SEQ-A, -C 25 mittels eines Gatters zugeführt, welches durch ein Signal e22 ein/aus-gesteuert wird. Obwohl es im Falle von 8-Bit-Daten gerade ausreicht, ihn dem Registerbus SEQ-A 25 der unteren 8 Bits zuzuführen, ist der Aufbau zum gleichzeitigen Zuführen desselben zum Register­ bus SEQ-C 25 der oberen 8 Bits und zum Steuern desselben durch eine Logik in der ALU 22 zur Zeit des tatsächlichen Speicherns im Register im Schaltungsaufbau einfacher, da er auf dem gleichen Wege wie die nachstehend zu beschreibende 16-Bit- Daten-Direktoperation behandelt wird.
Die wichtigsten Signale in den Blockschaltbildern der Fig. 12A und Fig. 12B können folgendermaßen beschrieben werden.
Ein "FROM stack (4)" spezifiziert ein Speicher-Stackregister einer Rückkehrzieladresse zur Zeit einer Unterbrechung, einer Unterprogrammverzweigung und dergleichen. Ein "T0 stack (4)" spezifiziert ein Speicher-Stackregister eines Unterbrechungs­ vektors oder ein Stackregister, welches eine Verzweigungsziel­ adresse einer Verzweigungsanweisung unter Verwendung des Stackregisters speichert.
Ein "culc.type (5)" ist ein Signal, welches die Arten der vor­ stehend beschriebenen Operation spezifiziert. Ein "Branch always or not" ist ein Signal, welches die bedingte Ver­ zweigungsanweisung und die unbedingte Verzweigung unterschei­ det und als Signal o11 zur Steuerschaltung 48 des Programm­ zählers 40 übermittelt wird, welcher in der vorstehend be­ schriebenen Fig. 9 dargestellt ist. Ein "Selected Reg (4)" spezifiziert ein durch eine Verzweigungsbedingungs-Entschei­ dungsschaltung zu bestimmendes Register, und ein "int enable control (4)" und ein "int return stack enable (4)" sind Unter­ brechungssteuerregister.
Ein "Destination Reg (6)" spezifiziert eine Registeradresse, welche die Datenübertragung und Speicherziele spezifiziert. Im Unterschied dazu spezifiziert ein "Source Reg (6)" Register­ adressen der Datenübertragung und von Entnahmequellen.
Ein "Bit Select (4)" ist ein Signal, welches ein Zielbit zur Zeit der Ausführung der Anweisung zum Setzen und Löschen eines Bits spezifiziert und dazu in der Lage ist, 16 Bits in einer Breite von 4 Bit zu spezifizieren. Ein "Branch Adrs L (9)" ist ein Signal, welches die unteren 9 Bits der Verzweigungsziel­ adresse der Verzweigungsanweisung spezifiziert, und ein "JSR Adrs (10)" ist ein Signal, welches eine Startadresse eines Unterprogramms der Unterprogramm-Verzweigungsanweisung spezi­ fiziert. Ein "Imm Data (16)" ist ein Paß, das verwendet wird, wenn ein Direktwert bei der Operation wie vorstehend beschrie­ ben verwendet wird.
Fig. 13 ist ein Blockschaltbild, welches ein Beispiel eines Schaltungsaufbaus des Anweisungsdecodierers des Mikrocomputers der vorliegenden Erfindung darstellt. In Fig. 13 werden die in den Tabellen der Anweisungssätze der Fig. 15A bis Fig. 15P gezeigten Steuersignale für jede Anweisung unter Verwen­ dung der in Fig. 10 bis Fig. 12A und Fig. 12B beschriebenen Signale erzeugt.
Obwohl die Steuersignale mit der Bezeichnung Nr. e0X im wesentlichen in den Zeitabschnitten T1 und T2 aktiv sind, er­ lauben sie es nicht, notwendige Fehlimpulse an Übergangs­ stellen des Timings zu erzeugen, welche durch kontinuierliches Erzeugen von Fehlimpulsen aus dem Ausgang des Programm­ speichergebiets 51 oder der Operationscode-Verriegelungsein­ richtung 56 verursacht werden. Das verhält sich derart, da die Steuersignale mit der Bezeichnung Nr. e0X nur in einem Ab­ schnitt verwendet werden, der die Schaltung steuert, welche am Ende selbst dann zur Zieloperation zurückkehrt, wenn sie durch die Erzeugung von Fehlimpulsen einmal unnötig betrieben wird, da kein Problem auftritt, wenn die Zieloperation mit dem Timing einer zunehmenden Flanke des Zeitabschnitts T2 schließlich abgeschlossen wird.
Die Signale mit der Bezeichnung Nr. e2X sind im Zeitabschnitt T2 aktiv und in Synchronisation mit dem Hilfstakt ΦL. Die Signale werden in einem Abschnitt verwendet, welcher eine Schaltung steuert, in welcher ein Fehlimpuls nicht erlaubt ist. Eine Schaltung, in der ein Fehlimpuls nicht erlaubt ist, ist beispielsweise die Schaltung zum Steuern des Ladens der Registerwerte. Wenn bei einer derartigen Schaltung der Fehl­ impuls zur Zeit des Ladens des Registerwerts erzeugt wird, dann wird der zeitweilig vorgeladene Registerbus SEQ-A 25 auf einen nicht notwendigen Wert entladen und benötigt Zeit, um zu einem geeigneten Wert zurückzukehren, so daß es nicht erlaubt ist, den Fehlimpuls zu erzeugen.
Ähnlich sind die Signale mit der Bezeichnung Nr. e6X im Zeit­ abschnitt T3 aktiv und in Synchronisation mit dem Hilfstakt ΦH. Bei diesem Signal, wie beispielsweise bei dem Signal e61 zum Schreiben in das Register, ist es absolut nicht erlaubt, einen Fehlimpuls zu erzeugen, da die Daten dann in ein falsches Register geschrieben werden würden, was zu einer Funktionsstörung führen wurde, wenn der Fehlimpuls erzeugt werden würde.
Die Signale mit der Bezeichnung Nr. e4X sind in den Zeitab­ schnitten T2, T3 aktiv und werden zum Steuern der Schaltung verwendet, bei welcher in der gleichen Weise wie bei den Signalen mit der Bezeichnung Nr. e0X ein Fehlimpuls erlaubt ist.
Daneben werden die Signale mit der Bezeichnung Nr. e8X als Steuersignale verwendet, die mit einem speziellen Timing er­ zeugt sind. Obwohl beispielsweise das in Reaktion auf die vorstehend genannte Unterbrechung und das Rücksetzen erzeugte Signal e87 im Zeitabschnitt T2 aktiv ist, da es asynchron zum Lesen des Programms erzeugt wird, wird es anders als diese Signale bezeichnet.
Fig. 15A bis Fig. 15P sind Tabellen von Anweisungssätzen der CPU der ersten Ausführungsform des Mikrocomputers der vor­ liegenden Erfindung, welche die Anweisungen und deren Codes sowie Steuersignale zeigen, welche aktiv werden, wenn entsprechende Anweisungen ausgeführt werden. Fig. 15A bis Fig. 15P sind ursprünglich ein Blatt mit Tabellen, bei welchem Fig. 15A, Fig. 15C, Fig. 15E, Fig. 15G, Fig. 15I, Fig. 15K, Fig. 15M, Fig. 15O in einer Anordnung von oben nach unten angeordnet sind und Fig. 15B, Fig. 15D, Fig. 15F, Fig. 15H, Fig. 15J, Fig. 15L, Fig. 15N und Fig. 15P in einer Anordnung von oben nach unten angeordnet sind und bei welchem die ersteren Tabellenblätter auf der linken Seite und die letzteren Tabellenblätter auf der rechten Seite sind.
Auf den Tabellenblättern von ungerader Zahl sind eine Anwei­ sungsgruppe, ein mnemonischer Code, eine Funktion und ein 16- Bitlängen-Anweisungscode in einer von der linken Seitenspalte ausgehenden Anordnung angegeben, und auf den Tabellenblättern von gerader Zahl sind die Anweisungsgruppe, der mnemonische Code und das Steuersignal eXX in einer von der linken Seiten­ spalte ausgehenden Anordnung angegeben. Der Inhalt bezüglich entsprechender Anweisungen ist in Fig. 17A bis Fig. 17E und in Fig. 18 schematisch dargestellt.
Die Anweisungen STM, BMS und BMC sind Anweisungen zum Aus­ statten der Bedingungsentscheidungsschaltung mit einer An­ weisung, und sie werden verwendet, wenn über eine Bedingung entschieden wird. Die in Fig. 18 dargestellten Bezugszeichen sind Bezugszeichen zum Bezeichnen der in Fig. 15A bis Fig. 15P verwendeten Operanden.
Fig. 16 zeigt die Beziehung der Anweisungscode-Erzeugung in übersichtlicher Weise. In der Figur sind die Codes in einem Abschnitt angeordnet, welcher mit Angaben zum Decodieren ver­ sehen ist.
Ein derartiger beim Mikrocomputer der vorliegenden Erfindung verwendeter Anweisungssatz ist gemäß folgenden Gesichtspunkten ausgebildet, 67615 00070 552 001000280000000200012000285916750400040 0002004420703 00004 67496um die Anweisungsausführungs-Geschwindigkeit zu verbessern.
  • (1) Nichtverwendung einer Operanden-Adreßoperation,
  • (2) Nichtverwendung einer Operation zur relativen Adressierung der Verzweigungsanweisung,
  • (3) Nichtausführung einer Entscheidung zur bedingten Verzwei­ gung im Anweisungsdecodierzyklus, und
  • (4) im wesentlichen bestehen die meisten Anweisungen aus einer Anweisung/einem Wort (16 Bits) oder können in einem Zyklus zum Holen geholt werden.
Nun dient die Adreßoperation dazu, die Speicheradresse, auf welche durch ein Indexregister zugegriffen wird, oder eine Verschiebung während der Ausführung der Anweisung zu hand­ haben. Durch Nichtverwenden der Adreßoperation von (1) und (2) kann in den Basiszyklen des Mikrocomputers ein Zyklus weg­ gelassen werden.
Obwohl sich eine Adreßbitbreite gewöhnlich wenigstens über etwa 16 Bits oder in einigen Fällen über 64 Bits erstreckt, wenn vorausgesetzt wird, daß für die Übertragungszeit der Adreßoperation ein Zyklus benötigt wird, wird eine Engstelle beim Verbessern der Anweisungsausführungs-Geschwindigkeit her­ vorgerufen. Da die Programme an einen ROM gebunden sind und in Steuerprogrammen festgelegt sind, ist das Indexregister und dergleichen durch vorheriges Optimieren der notwendigen Adreß­ operation zur Zeit des Programmierens oder durch Annehmen von nicht zu groß angelegten Programmen nicht immer notwendig.
Insbesondere wird die nachstehende Anweisung bezüglich (1) vorgeschlagen, um die Operanden-Adreßoperation nicht zu ver­ wenden.
Zunächst sind die Register dazu vorgesehen, durch eine physikalische Adresse des Registers direkt spezifiziert zu werden. In dieser Ausführungsform sind die Register in. 64 Räumen angeordnet und durch 6 Bits spezifiziert. Der Grund da­ für, daß eine Breite von 6 Bits verwendet wird, besteht darin, daß eine maximale Bitbreite berücksichtigt wird, welche es er­ möglicht, eine Anweisungsbitlänge in einem Wort von (4) anzu­ nehmen.
Bei der SET-Anweisung, welche den Direktwert im Register speichert, sind 8 Bits des 16-Bit-Anweisungscodes belegt, wenn ein Direktwert mit einer Größe von einem Byte gespeichert wird, so daß 2 Bits zur Anweisungscode-Identifizierung ver­ bleiben, wenn 6 Bits zur Registeradreß-Spezifizierung verwen­ det werden. Bei der Register-zu-Register-Übertragungsanweisung der MOV-Anweisung werden entsprechend 6 Bits (insgesamt 12 Bits) zum Spezifizieren des Quellregisters und des Ziel­ registers benötigt, wobei die verbleibenden 4 Bits somit zum Identifizieren des Anweisungscodes verwendet werden. Im Falle einer Registeroperationsanweisung, wie beispielsweise der ADD- Anweisung, verbleiben selbst dann 4 Bits zur Anweisungscode- Identifizierung, wenn 6 Bits zum Kennzeichnen der Operations­ typen verwendet werden. Bei den in den Tabellen der Fig. 15A bis 15P dargestellten Anweisungssätzen entspricht das den An­ weisungen, die mit "source reg", "dest reg", "immediate data", "calculate type" und so weiter bezeichnet sind.
Anschließend ist es dazu vorgesehen, die Adreßoperation durch Verwenden einer indirekten Adressierung des Registers unter Verwendung eines Wertes zu eliminieren, welcher diejenige Speicheradresse in einem Spezialregister auch für einen Speichergebietszugriff speichert, auf welche zugegriffen wird.
Bei den in den Tabellen der Fig. 15A bis Fig. 15P darge­ stellten Anweisungssätzen entsprechen dem eine Reihe von zur Operationsgruppe "ext. data operation" gehörenden Anweisungs­ gruppen von "SET ext2", Daten und so weiter. In dieser Aus­ führungsform sind zwei Register mit "externem Adreßpointer" (in Fig. 20A bis Fig. 20F mit EAP bezeichnet) enthalten, wodurch sich das verwendete Speicherregister für eine in­ direkte Adresse um ein Bit des "ext"-Bits im Anweisungscode unterscheidet. Als Speicheradresse, auf die zugegriffen wird, wird der im Register gespeicherte Wert selbst verwendet. Bei der praktischen Schaltung weisen die Register mit "externem Adreßpointer" einen zum in Fig. 7 dargestellten Stackregister 45 äquivalenten Schaltungsaufbau auf, wodurch die Daten mittels eines E-Busses (SEQ-E) oder eines F-Busses (SEQ-F) direkt zum Programmzähler 41 (in diesem Falle wirkt dieser als Speicheradreßpuffer) übertragen werden können. Zur Zeit des Ausführens der indirekten Adressierung des Registers ist ein Gatter e61-A offen und fließen Werte der EAP-Register mittels des E-Busses zur SC-Verriegelungseinrichtung 41.
In diesem Fall wird ein ursprünglicher PC-Wert des Programm­ zählers im Ergebnisregister 44 des Programmzählers gehalten. Ein Mechanismus zum Spezifizieren eines Gatters e65-A oder e65-B besteht darin, daß das Stackregister direkt hardware­ schaltungsmäßig spezifiziert ist, um damit ein Stack 13 oder 14 durch ein Signal e51 oder e52 durch eine Signalleitung zum "T0-Stack (4)" in einer Schaltung des in Fig. 12A und Fig. 12B dargestellten Anweisungsdecodierers 66 zu spezifizieren. Um auf das Speichergebiet zuzugreifen, ist ein Zyklus jedoch nicht ausreichend, sondern ist eine Mehrzahl von Zyklen als Ausführungszyklen erforderlich, da der Speicherraum mit dem Programmgebiet 51 übereinstimmt.
Obgleich es im allgemeinen bekannt ist, die Verzweigungsan­ weisung zur relativen Adressierung zu verwenden, wird sie in dieser Ausführungsform nicht verwendet, da sie bei der Adreß­ operation auch in diesem Fall Zeit benötigt. Statt dessen sind die indirekte Verzweigung des Registers der Anweisungen BRT, BRS, RTS, welche die vorstehend genannten Stackregister ver­ wenden, und die der Anweisungen BRC, BRA, JSR, deren direktes Verzweigungsziel das Operandenbit im Anweisungscode ist, vor­ gesehen.
Bei den Anweisungen BRT, BRS, RTS wird der im spezifizierten "Stack"-Register gespeicherte Wert direkt im Programmzähler substituiert. Im Falle der BRT-Anweisung werden die 4 Bits der Bits 5 bis 2 der Anweisungs-Verriegelungseinrichtung mit dem Ausgang des in Fig. 12A und Fig. 12B gezeigten "T0 Stack (4)" verbunden und wird das Signal e65 aktiv, um eines der in Fig. 7 dargestellten Gatter e65-1 bis e65-8 zu öffnen, wo­ durch der Stackregister-Wert mittels des E-Busses im Programm­ zähler 41 gespeichert wird. Gleichzeitig werden die 4 Bits der Bits 9 bis 6 der Anweisungs-Verriegelungseinrichtung mit dem Ausgang des in Fig. 12A und Fig. 12B gezeigten "FROM Stack (4)" verbunden und wird das Signal e66 aktiv, um eines der in Fig. 7 dargestellten Gatter e66-1 bis e66-8 zu öffnen, wo­ durch der bisher verarbeitete und im Ergebnisregister 44 ge­ haltene PC-Wert im separaten spezifizierten Stackregister mittels des F-Busses gesichert wird.
Auf diese Weise wird eine Art von Anweisung zur Verzweigung in ein Unterprogramm durch indirekte Spezifizierung eines Registers in dieser Ausführungsform realisiert. Die andere BRS-, RTS-Anweisung führt nur eine abgewandelte Operation der BRT-Anweisung aus. Bei diesen Anweisungen ist es möglich, in eine Adresse mit einer Breite von 16 Bit, was eine Stack­ register-Breite ist, frei zu verzweigen.
Die bedingte Verzweigung der Anweisungen BRC, BRA beruht da­ rauf, daß durch Einführen der absoluten Adresse der unteren 9 Bits und eines Konzepts von 512-Byte-Einheitsseiten anstelle der Operationen mit relativer Adresse vier Arten ihrer eigenen Seite, Seiten davor und danach und absoluten Nullseite durch 2-Bit-Steuerbits (den Bits 9 und 10 in den Zeilen der BRA, BRC in Fig. 15A bis 15P zugewiesen) dargestellt werden, wobei 1 Bit der Steuerbits zur bedingten Verzweigung/unbedingten Ver­ zweigung (dem Bit 11 in den Zeilen der BRA, BRC in Fig. 15A bis Fig. 15P zugewiesen) dazu hinzugefügt wird, um einen 12- Bit-Operanden zur gemeinsamen Verwendung mit den verbleibenden 4 Bits bei der Anweisungs-Identifizierung zu erhalten. Die relative Adresse kann in einer Einheit von Seiten addiert oder subtrahiert werden, und diese Inkrementier-/Dekrementier­ operation kann durch eine Schaltung realisiert werden, welche eine Breite verarbeitet, die durch eine Subtraktion von 9 Bits von einer Adreßbitbreite erhalten wird, womit eine für den Übertrag benötigte Verzögerungszeit verkleinert werden kann.
Als tatsächliche Schaltung entspricht diesem Steuerabschnitt ein durch ein Signal e47 in den Tabellen der Fig. 15A bis Fig. 15P UND-verknüpftes Signal "page activate", und sie ist vom Ergebnis-H-Register 44H an einem oberen Abschnitt des Er­ gebnisregisters 44 getrennt, um die Seitenspezifizierung dem E-Bus unabhängig zuzuführen. Wohingegen die unteren 9 Bits derart gehandhabt werden, daß der Adreßwert direkt aus der Anweisungscode-Verriegelungseinrichtung zugeführt wird. Diese Operation wird durch ein Steuersignal gesteuert, welches durch das Signal e63 UND-verknüpft ist.
Um es bei der JSR-Anweisung zu ermöglichen, das die Rückkehr­ adresse speichernde Stackregister zu wählen, werden die unteren 3 Bits zum Spezifizieren des Stackregisters verwendet und die 10 Bits von den Bits 3 bis 12 zum Spezifizieren der mit Versetzung oktal vorgesehenen absoluten Adresse des Unter­ programms verwendet. Obwohl die Unterprogramm-Anordnung auf eine Adressenbreite von 13 Bit oder einen 8-K-Wortraum be­ schränkt ist, ist sie im Falle eines kleinangelegten Steuer­ programms selbst unter dieser Beschränkung ausreichend praktisch. Mit anderen Worten, der Mikrocomputer der vor­ liegenden Erfindung ist bei einem gewissen Abstrich an Flexibilität eines Allgemeinzweckprogramms für eine hohe Ge­ schwindigkeit ausgelegt.
Die JSR-Anweisung wird unbedingt ausgeführt, und die Adresse der unteren 13 Bits wird dem Programmzähler 41 aus der An­ weisungscode-Verriegelungseinrichtung mittels des E-Busses durch eine durch das Signal e64 gesperrte Schaltung in Fig. 7 direkt zugeführt. Gleichzeitig wird die bisher gehaltene effektive Adresse aus dem Ergebnisregister 44 mittels des F- Busses durch das Steuersignal e66 im spezifizierten Stack­ register gespeichert. Die Kennzeichnung des Speicher-Stack­ registers ist ein Signalpfad aus 3 Bits der Bits 0 bis 2 der Anweisungs-Verriegelungseinrichtung, welche den "FROM stack (4)" in Fig. 12A und Fig. 12B durch ein Steuersignal e49 wählt. Zu dieser Zeit ist das niederwertigste 1 Bit auf "1" festgelegt.
Wie vorstehend beschrieben, wird das Steuersignal eXX in den Tabellen der Fig. 15A bis Fig. 15P durch Decodieren des An­ weisungs-Identifizierungsbitfeldes und eines die Anzahl von Zyklen zählenden Schaltungsausgangs erzeugt, obwohl die An­ weisungscodes aus dem Operandenfeld und dem Anweisungs- Identifizierungsfeld gebildet sind. Dieses wird nachstehend in Bezug auf Gegenmaßnahmen zur bedingten Verzweigungsentschei­ dung zu beschreiben sein, welches ein drittes Merkmal von Ein­ richtungen ist, die mit dem Anweisungssatz im Zusammenhang stehen.
Dies sind vom Gesichtspunkt des in dieser Ausführungsform ver­ wendeten Anweisungssatzes die Einrichtungen zur Hochge­ schwindigkeits-Ausführung.
Anschließend wird ein Konzept zum Vorsehen der Anweisungscodes des Anweisungssatzes dieser Ausführungsform beschrieben. Beim Mikrocomputer der vorliegenden Erfindung ist eine Anwei­ sung/ein Wort ein grundlegendes Konzept, und ferner werden folgende Punkte berücksichtigt.
  • (1) Zuweisen von mehr Operandenbits zum Setzen eines Direkt­ wertes,
  • (2) Zuweisen von mehr Operandenbits zur Verzweigungsanweisung,
  • (3) Handhaben ohne Bitverschiebung des Operandenbits, und der Direktwert wird bis zum Äußersten verwendet,
  • (4) Festlegen eines spezifizierten Bits der Quellregister- Adresse,
  • (5) Festlegen von soviel wie möglich Positionen eines spezi­ fizierten Bits der Zielregister-Adresse und eines spezifizier­ ten Bits der Adresse des indirekten Verzweigungsregisters,
  • (6) Anhäufen von Steuerbits vom Operationstyp und
  • (7) Zuweisen einer eine kleine schädliche Wirkung auf die Aus­ führung des Programms ausübenden Anweisung zum Anweisungscode von jedem Bit "H".
Fig. 16 ist eine Tabelle, in welcher die Anweisungs-Identi­ fizierungsbits der Anweisungssätze in den in Fig. 15A bis Fig. 15P gezeigten Tabellen entnommen und eingestellt sind.
In Fig. 16 sind nur die Bits mit dem Eingangswert von "1" oder "0" minimal notwendige Bits zum Identifizieren der An­ weisungen.
Um die vorstehend genannten Ziele (1) bis (3) zu erreichen, sind die Identifizierungsbits vollständig auf das Bit 0 und 1 und das untere Bit 14 und 15 festgelegt. Das heißt, um das Ziel (3) zu erreichen, haben der 8-Bit-Direktwert der SET- Anweisung und die unteren 9 Bits des Verzweigungsziels der BRA-, BRC-Anweisung ihre Bits ausgerichtet, und die unteren 8 oder 9 Bits sind notwendig. Und daher ist es logisch, die Bits 8 bis 13 zur Speicherzielregister-Spezifizierung der SET-An­ weisung zu verwenden, und bequem, die MOV-Anweisung zu reali­ sieren, wenn umgekehrt die Quellregister-Spezifizierung von (4) auf der unteren Bitseite ist.
Das Festlegen der Quellregister-Spezifizierung von (4) bedeu­ tet, das Quellregister unabhängig von der Anweisungsde­ codierung zu spezifizieren, und dient dazu, die Anweisungsaus­ führungszeit zu verkürzen. Die in Fig. 12A und Fig. 12B dar­ gestellte Erzeugung der Operandenbits wird durch Setzen der zeitmäßig einfachsten Operation auf der Eingangsseite eines Fehlerwertes (durch else in der Figur dargestellt) schnell realisiert. Da sich die Quellregister-Spezifizierung in einer ersten Prozedur von Anweisungsausführungs-Prozeduren befindet, ist der Zustand von (4) wesentlich. Wenn nur die MOV-Anweisung betrachtet wird, dann kann die Quellregister-Spezifizierung an einer beliebigen Position der unteren 8 Bits sein, wenn jedoch ferner das Decodieren der anderen Anweisungen, wie beispiels­ weise der BRT-, BRS-, RES-Anweisung, betrachtet wird, dann ist es erwünscht, die 6 Bits der Bits 3 bis 7 zu verwenden. Als Operationstyp-Spezifizierungscode wird die gleiche Position wie die der Zielregister-Spezifizierungsbits oder werden die 5 Bits der Bits 8 bis 12 verwendet.
Bezüglich Punkt (7) wird die Anweisung mit kleiner schädlicher Wirkung durch Zuweisen der MOV-Anweisung der Codezuweisung unterworfen. Das wird deshalb ausgeführt, da es zum Hochge­ schwindigkeits-Lesen vorteilhaft ist, den Datenbus 50 in Ver­ bindung mit der Speicher-Leseschaltung auf "H" vorzuladen, wenn der Speicher in entsprechenden Zyklen gelesen wird, und im Lesezyklus im Zeitabschnitt T2 wird der Anweisungscode von allen Bits "H" gelesen. Durch Eingeben vieler "0"en in den Identifizierungsbits der Anweisung, wie beispielsweise der RES-Anweisung oder der STP-Anweisung, bei welcher eine große Wirkung einer Funktionsstörung erwartet wird, der Verzwei­ gungsanweisung und so weiter, kann die Möglichkeit einer Funktionsstörung im Zeitabschnitt T2 verringert werden.
Das Ergebnis des Vorsehens des Anweisungscodes durch Berück­ sichtigen der vorstehenden Punkte ist ein Beispiel der in den Tabellen der Fig. 15A bis Fig. 15P dargestellten Anweisungs­ sätze. In dieser Ausführungsform werden verwendbare Codes nicht vollständig verwendet und wird die nicht festgelegte An­ weisungsdecodierung ausgelassen, um die Schaltungen zu ver­ kleinern.
Anschließend wird eine Ausführungsform (nachstehend als andere Ausführungsform der ersten Ausführungsform bezeichnet) des eine Zustandsentscheidungsschaltung umfassenden Mikrocomputers als Erfindung gemäß Anspruch 5 beschrieben.
Fig. 19 ist ein Blockschaltbild, welches einen Aufbau der Zu­ standsentscheidungsschaltung einer anderen Ausführungsform der ersten Ausführungsform des Mikrocomputers der vorliegenden Er­ findung zeigt.
In Fig. 19 sind mit den Bezugszeichen 101-1 bis 101-15 be­ zeichnete 8-Bit-Register Registergruppen, welche als Zustands­ entscheidungsziele gewählt werden können. Die Register 101-1 bis 101-15 sind mit einem SEQ-T-Bus durch Schalter 102-1 bis 102-15 entsprechend verbunden und werden durch Signale T00 bis T14 entsprechend gesteuert. Die Signale T00 bis T14 werden durch Decodieren eines Signals "Select Reg (4)" 103 erhalten, und das Zustandsentscheidungs-Zielregister kann durch die An­ weisungen BMS, BMC und STM gewählt werden, wie vorstehend be­ schrieben.
Auf derartige Weise werden die Ausgänge entsprechender Bits von einem aus den Registern 101-1 bis 101-5 gewählten Register den Eingängen von EXNOR-Gattern 104-0 bis 104-7 entsprechend zugeführt. Die anderen Eingänge der EXNOR-Gatter 104-0 bis 104-7 sind mit den Ausgängen von Vergleichsregistern 105-0 bis 105-7 verbunden, und die Koinzidenz der beiden wird für jedes Bit entschieden.
Das Bezugszeichen 106 bezeichnet ein Maskenregister. Das Mas­ kenregister 106 maskiert die Ausgänge der EXNOR-Gatter 104-0 bis 104-7 durch eine Schaltung 100 und bearbeitet die ganzen 8 Bits für die Verzweigungsbedingungsentscheidung UND-mäßig und synchronisiert schließlich ferner den Ausgang der Schaltung 100 mit dem Hilfstakt ΦL, und es entscheidet zu steuern, ob die BRC-Anweisung mit dem Timing T3 verzweigt oder nicht.
Das Maskenregister 106 umfaßt Datensätze 107-0 bis 107-7 und eine Datenlöschschaltung und funktioniert derart, daß nur ein spezifiziertes Bit direkt durch ein Steuersignal e70 gesetzt wird und alle anderen Bits gelöscht werden. Diese Funktion wird in Reaktion auf die vorstehend genannten Anweisungen BMS, BMC verwendet. Das Bit wird durch eine Schaltung 108 spezi­ fiziert, welche Signale B0 bis B7 erzeugt. Als Eingänge der Schaltung 108 werden ein Signal "bit decoder (3)" und ein Bithandhabungs-Steuersignal e41B verwendet. Wenn beispiels­ weise das Bit 1 gewählt ist, dann geht nur ein Signal B1B auf "L", und die sich vom Signal B1B unterscheidenden Signale B0B, B2B . . . B7B gehen auf "H", und die anderen Bits werden durch das Signal e70 gelöscht.
Die aus den Registern 101-1 bis 101-15 gebildeten Register­ gruppen liegen derart vor, daß das Bitsetzen und das Bit­ löschen durch die in Fig. 19 gezeigten Schaltungen bewirkt wird, abgesehen von dem vorstehend Beschriebenen. Das heißt, durch das Spezifizieren der vorstehend beschriebenen Schaltung 108 und eines "Zielregisters (6)" 109 kann nur das spezifi­ zierte Bit auf einen Pegel geändert werden, welcher aus einem
SEQ-B-Bus mittels zweier Schalter 110 eingegeben wird. Zur Zeit des Ausführens der Bitoperationsanweisung kann das Ziel­ bit des Zielregisters durch die Anweisungen SEB und CLB ge­ setzt werden, da die CPU des Mikrocomputers der vorliegenden Erfindung bei der Bitsetzanweisung und der Bitlöschanweisung entsprechende Werte von "FF" und "00" als Ausgang der ALU 22 in den SEQ-B-Bus wirksam eingibt.
Die Anweisungen BMS und BMC werden durch diese Schaltungs­ funktionen ausgeführt. Das heißt, das spezifizierte Bit des Maskenregisters 106 wird durch ein Signal "Bit Decoder" spezi­ fiziert und durch Aktivieren des Signals e70 gesetzt. Eine Adresse des Vergleichsregisters 105 wird durch das Signal e44B (vergleiche Fig. 12A und Fig. 12B) zum "Dest Reg" 109 wirk­ sam spezifiziert, aus der ALU 22 werden alle "H"- oder alle "L"-Daten in den SEQ-B-Bus eingegeben, um einen Wert im Ver­ gleichsregister 105 (vergleiche Fig. 22, Fig. 15A bis Fig. 15P) zu speichern, und eine Adresse wird gespeichert, welche dasjenige Register spezifiziert, das in der "Select Reg Latch" 103 mit dem Timing des Signals e69 zu vergleichen ist (ver­ gleiche Fig. 12A und Fig. 12B).
Als Ausführungsform der Zielregistergruppen 101-1 bis 101-15 der Zustandsentscheidungsschaltung sind bei den in Fig. 20A bis Fig. 20F dargestellten Registersätzen insbesondere die Register gesetzt, deren Adressen "SEQ adrs" 15 aus den Adressen 01 bis 0F sind. Insbesondere werden die Funktionen von jedem Bit der Register in Fig. 21A bis Fig. 21L be­ schrieben.
Wenn beispielsweise das zu spezifizierende Bit im voraus durch die Anweisungen BMS und BMC durch Zuweisen des Zeitgeber-Über­ laufbits oder des Unterbrechungsanforderungsbits zu den Re­ gistergruppen 101-1 bis 101-15 gesetzt wird, durch Bilden eines Programms wie "QLOOP : BRC LOP", dann ist es im Falle des Auftretens eines Überlaufs möglich, aus der Warteschleife in den nächsten Zyklus auszutreten. Das bedeutet, daß eine Routine mit sehr großer Reaktionsgeschwindigkeit realisiert werden kann durch Bilden eines Programms, welches auf ein vor­ her stattgefundenes Ereignis wartet.
Die in Fig. 20A bis Fig. 20F und Fig. 21A bis Fig. 21L dargestellten Tabellen der Spezialfunktionsregister werden nachstehend im besonderen beschrieben. Diese Ausführungsform ist dazu ausgelegt, um einer Verwendung beim Realisieren von Sonderfunktionen zur Verarbeitung eines Kommunikations­ protokolls unter Verwendung des vorstehend beschriebenen Mikrocomputers der vorliegenden Erfindung angepaßt zu sein.
Fig. 20A bis Fig. 20F sind ursprünglich ein Blatt mit Tabellen, welche in einer Anordnung von oben nach unten an­ geordnet sind.
Fig. 21A bis Fig. 21L sind ursprünglich ein Blatt mit Tabellen. Fig. 21A, Fig. 21B, Fig. 21C, Fig. 21D, Fig. 21E und Fig. 21F sind in einer Anordnung von oben nach unten angeordnet, und Fig. 21G, Fig. 21H, Fig. 21I, Fig. 21J, Fig. 21K und Fig. 21L sind in einer Anordnung von oben nach unten angeordnet, und die ersteren Tabellenblätter sind auf der linken Seite und die letzteren Tabellenblätter auf der rechten Seite.
Im Mikrocomputer der vorliegenden Erfindung wird selbst ein Frame-Protokoll in einem Multi-Master-Bus-Kommunikationssystem verarbeitet, wobei seine Funktion zur Verarbeitung mit hoher Geschwindigkeit gute Verwendung findet.
Insbesondere ist er derart ausgebildet, daß selbst Verarbei­ tungen einer Entscheidung, einer Daten-Wiederholung, einer Frame-Wiederholung und dergleichen durch Programme und Soft­ ware gehandhabt werden können. Im Falle nur eines Programms ist für Abschnitte mit kleiner Verarbeitungsgeschwindigkeit eine Sonderschaltung hinzugefügt, um durch eine Hardware zu kompensieren. Ein mit einer Kommunikationsfunktion und einer Steuerfunktion versehener Mikrocomuter, der auf einem Chip integriert ist, kann realisiert werden durch Verwenden eines Aufbaus auf einem Chip, bei welchem zwei Mikrocomputer auf einem Chip vorgesehen sind, wobei der Hochgeschwindigkeits- Mikrocomputer der vorliegenden Erfindung als einer der Mikro­ computer zur Sonderkommunikations-Verarbeitung als Sub-MCU verwendet wird und ein herkömmlicher Mikrocomputer als weiterer Mikrocomputer verwendet wird, um die Funktionen der­ art wie eine Mensch-Maschine-Schnittstelle oder eine mechani­ sche Steuerung zu programmieren.
Fig. 20A bis Fig. 20F sind Tabellen von Registergruppen, welche in einem Registerraum in der CPU des Mikrocomputers dieser Ausführungsform angeordnet sind.
Der Registerraum ist als Raum von maximal 64 Adressen festge­ legt, welche durch 6-Bit-Registeradressen spezifiziert sind. Das zu handhabende Register kann durch einen 6-Bit-Code spezi­ fiziert sein, welcher das Quellregister, das Zielregister und so weiter im Anweisungscode spezifiziert. In den Figuren ent­ spricht eine Spalte "SEQ adrs" der Registeradresse. Die Spalte der "SEQ adrs" ist die Adresse, welche zur Zeit des Zugreifens von der Haupt-CPU-Seite verwendet wird, und "verborgen" in der Spalte bedeutet, daß aus der Haupt-CPU nicht auf sie zuge­ griffen werden kann. Lokale Adressen "local adrs" sind ferner auf der Haupt-CPU-Seite vorgesehen, um Adreßraum zu sparen. Durch Verwenden von Registern, auf welche aus den beiden CPUs als Einrichtung zum Übergeben und Empfangen von Daten zuge­ griffen werden kann, ist ein schwach gekoppeltes Doppel-Pro­ zessorsystem realisiert.
In der nachstehenden Beschreibung wird die Registeradresse auf der Sub-CPU-Seite der Spalte "SEQ adrs" beschrieben, wenn nicht anders vorgesehen.
Obwohl der Registerraum auf 64 Adressen festgelegt ist, ist nur das unter der Adresse "3F" angeordnete Zwischenregister eine Besonderheit und, wie nachstehend beschrieben, ist nur die Schreibseite von einer Registerdatenangabe auch Adressen "1E" und "1F" zugewiesen, so daß die hochwertigen Bytes und die niederwertigen Bytes vertauscht werden können. Schematisch sind das die Register, die durch mit einem Kreis versehene Bezugszeichen 12 und 13 in nachstehend zu beschreibender Fig. 27A und Fig. 27B dargestellt sind, und obwohl nur die Adresse "3F" zur Lesezeit gelesen wird, werden zur Schreibzeit im Falle des Registers, das durch das mit einem Kreis versehene Bezugszeichen 13 bezeichnet ist, die Daten von einem Schreib­ bus für niederwertige Bytes SEQ-B geschrieben, wenn die Adresse "1F" spezifiziert ist, obgleich die Daten von einem gewöhnlichen Bus für hochwertige Bytes SEQ-D geschrieben wer­ den, wenn die Adresse "3F" spezifiziert ist.
Das Maskenregister 106 für die Anweisung zur bedingten Ver­ zweigung ist der Adresse "0" zugewiesen, und das Vergleichs­ register 105 für eine Anweisung zur bedingten Verzweigung ist der Adresse "10" zugewiesen. Bei Festlegung der Funktions­ register in Reaktion auf eine andere Verwendung werden die anderen 59 Adressen verwendet.
Die 32 Register der Adressen "00" bis "1F" sind Register mit der Größe von einem Byte, wodurch zur Zeit des Ausführens der Operationsanweisung und dergleichen in Verbindung mit dem An­ weisungscode die Byte-Operation automatisch gewählt wird. Bei diesen sind die 16 Register der Adressen "0" bis "0F" die Register, welche zu einer Entscheidung zur bedingten Verzwei­ gung besonders in der Lage sind. Die 32 Register der Adressen "20" bis "3F" sind Register mit der Größe eines Wortes. Bei diesen sind die 14 Register der Adressen "30" bis "3D" ferner mit dem Programmzähler mittels des SEQ-E-Busses und des SEQ-F- Busses verbunden.
Bei diesen Registern gibt es folgende zu beschreibende Typen.
  • (1) Eine Registergruppe einer Datenbus-Boxtyp-Byteeinheit, einer Worteinheit oder eines FIFO-Typs, welche zu und aus der Haupt-CPU Daten übergeben und empfangen. In Abhängigkeit von den Registern wird im voraus eine Datenübertragungsrichtung aus der Haupt-CPU in die Sub-CPU oder umgekehrt bestimmt und sind hardwaremäßige Verbindungen vorhanden.
Schematisch weisen die in Fig. 27A und Fig. 27B dargestell­ ten Register, welche durch die mit einem Kreis versehenen Be­ zugszeichen 6 und 7 bezeichnet sind, derartige Funktionen auf. In der Figur bezeichnet CPU-L einen lokalen Bus, welcher mit der Haupt-CPU verbunden ist und durch ein Signal CXXC oder ein Signal CXXS verriegelt wird, um zwischen der Verriegelung Daten zu übergeben und zu empfangen. Das Register, welches durch das mit einem Kreis versehene Bezugszeichen 6 gekenn­ zeichnet ist, ist dasjenige von der Haupt-CPU zur Sub-CPU, und das Register, welches durch das mit einem Kreis versehene Be­ zugszeichen 7 gekennzeichnet ist, ist dasjenige von der Sub- CPU zur Haupt-CPU, und diese Register befinden sich in einem Doppelverriegelungs-Aufbau, um die Schreibtimings der beiden CPUs zu synchronisieren. Ein die Doppelverriegelungen ver­ bindender Datenbus wird durch ein Steuersignal HXX verriegelt, um das Auftreten einer Datenänderung auf der Leseseite infolge des Verlierens von Daten beim Schreiben zu verhindern. Obwohl die leseseitige Verriegelung nur zum Lesen dient, kann die schreibseitige Verriegelung auch gelesen werden.
  • (2) Ein Zeitgeber-Funktionsregister: Zeitgeber 1/Zeitgeber 2 der Adressen "2A" und "2B",
  • (3) ein Übertragungs- und Empfangsdaten- Funktionsregister:
    TXD-Daten, RXD-Daten usw. der Adressen "1A" bis "1D",
  • (4) ein Unterbrechungs-Steuerregister: SEQ int req, SEQ int enable der Adressen "0A" und "0B",
  • (5) ein Operations-Flagregister: ALU-Flag der Adresse "0E" und
  • (6) ein Funktionsschaltungs-Steuerregister: Adressen "01" bis "09".
Bezüglich detaillierter Funktionen der entsprechenden Bits wird auf Fig. 21A bis Fig. 21L Bezug genommen.
Diesen Funktionsregistern sind im Falle eines FIFOs die Bits zugewiesen, welche den Status anzeigen, wie beispielsweise eine Datenvollheit, eine Datenleerheit und so weiter, oder das Steuerbit der FIFO-Löschung ist zugewiesen.
In den Spalten "Typ" der Fig. 21A bis Fig. 21L sind die Be­ zugszeichen dargestellt, die mit dem Typ der in Fig. 26A bis Fig. 26D, Fig. 27A und Fig. 27B verwendeten Register ver­ knüpft sind. In Abhängigkeit von entsprechenden Funktionen dient es den Bits zum Übergeben und Empfangen von Daten an die und aus der Haupt-CPU und zum Steuern der Funktionsblöcke und zum Lesen des Status. Das geeignete Register wird wie bei der Verwendung gefordert gewählt, wobei beispielsweise nicht nur aus dem Registerbus des Mikrocomputers auf dasselbe zuge­ griffen wird, sondern ein Einzelimpuls beim Schreiben erzeugt wird oder ein Pegelsignal ausgegeben wird, um die Funktions­ blöcke zu steuern, oder das Pegelsignal nicht aus der Ver­ riegelung im Takt geholt wird, sondern aus den Funktions­ blöcken.
Um eine Codelänge des Anweisungscodes zu sichern, werden nicht zu viele Register bei der Auswahl des Zielregisters der Zu­ standsentscheidungsschaltung gewählt. Wenn jedoch das Verwen­ dungsgebiet des Mikrocomputers auf das Bestimmen eines ge­ eigneten Funktionsregisters im voraus spezialisiert ist, dann kann eine geeignet und schnell auf entsprechende Gebiete reagierende Zustandsentscheidungsschaltung leicht vorgesehen werden.
Anschließend wird unter Bezugnahme auf die in Fig. 22 und Fig. 23 dargestellten Blockschaltbilder ein Beispiel eines Aufbaus der ALU 22 einer anderen Ausführungsform der ersten Ausführungsform des Mikrocomputers der vorliegenden Erfindung beschrieben. Fig. 22 ist ein Blockschaltbild, welches den Aufbau für die unteren 8 Bits der ALU 22 zeigt, und Fig. 23 ist ein Blockschaltbild, welches den Aufbau für die oberen 8 Bits der ALU 22 darstellt.
Bevor der Betrieb des Hauptteils der ALU 22 beschrieben wird, wird zunächst der Betrieb des in dieser Ausführungsform ver­ wendeten Zwischenregisters 21 beschrieben.
In Fig. 22 bezeichnet das Bezugszeichen 120L die 8 Bits auf der unteren Seite des Zwischenregisters 21. Wenn eine Register-Spezifizierungsadresse "3F" lautet, dann werden aus einer die unteren 8 Bits eines Registerbusses 26 führenden SEQ-B-Leitung durch einen Eingangsschalter 121-1 Daten zuge­ führt. In diesem Fall werden gleichzeitig auch die oberen 8 Bits in die obere Seite 120H des Zwischenregisters 21 ge­ schrieben. Ein Eingangsschalter 121-2 weist eine besondere Funktion auf. Wenn die Register-Spezifizierungsadresse "1E" lautet, dann empfängt er einen Dateneingang aus einer die oberen 8 Bits des Registerbusses 26 führenden SEQ-D-Leitung und ist dazu in der Lage, ein höherwertiges Byte auf dem Bus in das Zwischenregister 21 als Daten eines niederwertigen Bytes einzugeben.
In Fig. 23 bezeichnet das Bezugszeichen 120H die 8 Bits auf der oberen Seite des Zwischenregisters 21. Wenn die Register- Spezifizierungsadresse "3F" lautet, dann werden aus der die oberen 8 Bits des Registerbusses 26 führenden SEQ-D-Leitung durch einen Eingangsschalter 121-4 Daten zugeführt. In diesem Fall werden gleichzeitig auch die unteren 8 Bits in die untere Seite 120L des Zwischenregisters geschrieben. Ein Eingangs­ schalter 121-3 weist eine besondere Funktion auf: Wenn die Register-Spezifizierungsadresse "1F" lautet, dann empfängt er einen Dateneingang aus einer die unteren 8 Bits des Register­ busses 26 führenden SEQ-B-Leitung und ist dazu in der Lage, ein niederwertiges Byte auf dem Bus in das Zwischenregister 21 als Daten eines hochwertigen Bytes einzugeben.
Obwohl das Zwischenregister 21 im wesentlichen ein Register mit einer Länge von 16 Bit ist, umfaßt es 3 Adressen "3F", "1E" und "1F", wodurch drei Handhabungsarten des gewöhnlichen Schreibens von Daten, der Datenübertragung aus dem hoch­ wertigen Byte in das niederwertige Byte und aus dem nieder­ wertigen Byte in das hochwertige Byte möglich sind. Da insbe­ sondere diese Handhabungen möglich sind, ohne den Spezialan­ weisungscode zu vergrößern, ist es möglich, die Schaltung des Anweisungsdecodierers zu vereinfachen, und das ist vorteilhaft beim Erleichtern des Entwurfs, wenn eine Kombination von An­ weisungscodes betrachtet wird.
Zur weiteren Beschreibung wird nun zur Fig. 22 und Fig. 23 zurückgekehrt, wobei die Bezugszeichen 122L und 122H Schalter bezeichnen, welche den Eingängen des ALU-Hauptteils 125L, 125H auf der Seite des Zwischenregisters 21 "0" zuführen und welche durch entsprechende Signale e00B und e01B gesteuert werden und gewöhnlich mit der "0" zuführenden Seite verbunden sind, doch wenn sich die Signale e00B und e01B auf "H" ändern, dann werden sie mit der Seite des Zwischenregisters 120L, 120H ver­ bunden. Signale, die sich für obere und untere Verwendungen unterscheiden, werden als diese Steuersignale verwendet.
Durch mit den Bezugszeichen 123L, 123H bezeichnete Schalter und einen Inverter wird eine Funktion gebildet, welche durch Signale e04 und e0F gesteuert wird, um die dem ALU-Hauptteil 125L, 125H zuzuführenden Daten zu invertieren.
Wird das Vorstehende zusammengefaßt, dann ist die dem einen Eingang des ALU-Hauptteils 125L, 125H zuzuführende Datenangabe der Wert des Zwischenregisters 120L, 120H oder "0", oder sein invertierter Wert, und das Zwischenregister 120H für das hoch­ wertige Byte und das Zwischenregister 120L für das nieder­ wertige Byte können separat gesteuert werden.
Die Bezugszeichen 124L, 124H bezeichnen Schalter, welche die den Eingängen auf der anderen Seite des ALU-Hauptteils 125L, 125H zuzuführenden Daten steuern und durch entsprechende Signale e02 und e03 gesteuert werden, wodurch es möglich ist zu wählen, ob die aus dem Register mittels der Leitungen SEQ-A und SEQ-C gelesenen Daten einzugeben sind oder ob "0" wirksam einzugeben ist.
Durch die beiden in der vorstehend beschriebenen Weise erhal­ tenen Eingänge werden die Operationen im einen Volladdierer umfassenden ALU-Hauptteil 125L, 125H bewirkt. Addition (ADD), logisches Produkt (AND) und logische Summe (OR) werden durch Signale e07 und e08 umgeschaltet. Eine logische Negation (NOT) von Daten kann durch ein Signal e06B gewählt werden, und eine exklusive logische Summe (EXOR) wird durch das Signal e0F aus­ geführt. Eine Subtraktion wird durch Kombinieren der vor­ stehend beschriebenen Inversionssteuerung der niederwertigen Seite 120L und der hochwertigen Seite 120H des Zwischen­ registers 21 und der nachstehend zu beschreibenden Übertrags- Steuerung realisiert. Wenn das Operationsergebnis der ALU 22 in allen Bits "0" ist, dann wird ein Nullflag gesetzt.
Anschließend wird die Übertrags-Flagsteuerung beschrieben.
Obwohl es Operationen mit Übertrag und solche ohne Übertrag bei der Addition und Subtraktion gibt, ist es in dieser Aus­ führungsform möglich zu wählen, entweder das Übertragsflag durch ein Signal e0DB einzugeben oder ein Signal e05 direkt einzugeben. Im Falle einer Addition ohne Übertrag ist das Signal e05 auf "L" gebracht, um die Addition zu handhaben, und im Falle einer Subtraktion ohne Übertrag kann das Signal e05 auf "H" gebracht sein, um einen Datenpfad aus dem Zwischen­ register 21 durch die Signale e04 und e0F für eine ADD- Operation zu invertieren. Bei der Inkrementierverarbeitung kann das Signal e05 auf "H" gebracht sein, um zu dem einen Eingang des ALU-Hauptteils 125 durch die Signale e00B und e01B für eine ADD-Operation "0" einzugeben. Bei der Dekrementier­ verarbeitung kann es durch Setzen des Signals e05 auf "L" und Eingeben von "FFFF" zu dem einen Eingang des ALU-Hauptteils 125 durch die Signale e00B und e01B, e04, e0F realisiert werden. Die Übertragflags zur Zeit der Addition und Sub­ traktion sind im Pfad eines Schalters 126L und 126H gesetzt.
Im Falle einer 8-Bit-Operation wird ein Signal e03B "H", um den Schalter 126L festzulegen, und im Falle einer 16-Bit-Wort- Operation steht das Signal e03B auf "1L", um den Schalter 126H festzulegen.
Eine Schiebeoperation wird durch eine Schiebeschaltung 127 verarbeitet. Ein Datenpfad wird aus vier Datenpfaden gewählt: Der Ausgang der ALU 22 wird durch Signale e09 und e0A im Takt ausgegeben, oder die Daten des SEQ-A und des SEQ-C werden die ALU 22 überbrückend im Takt ausgegeben, oder sie werden durch Verschieben um 1 Bit nach rechts ausgegeben, oder sie werden durch Verschieben um 1 Bit nach links ausgegeben. In der Schiebeschaltung 127 sind zur Zeit entsprechender Ver­ schiebungen Kombinationen einer Verschiebung mit Übertrag, einer Verschiebung mit "0"-Einfügung, einer Rechts- und Links­ verschiebung, einer 8-Bit-Verschiebung und einer 16-Bit-Ver­ schiebung realisiert, und die entsprechend darauf reagierenden Schaltergruppen von 127 werden funktionsmäßig gesteuert. Der Ausgang der Schiebeschaltung 127 wird durch ein Signal e23 gesteuert und in einer Operationsergebnis-Verriegelungsein­ richtung 23L, 23H gespeichert, und die Ausgänge der Ver­ riegelungseinrichtung 23L, 23H treiben immer die Register­ schreibbusleitung SEQ-B, SEQ-D.
Die ALU 22 gemäß der Erfindung nach Anspruch 13 ist durch Bei­ fügen von in Fig. 24 und Fig. 25 dargestellten Ver­ riegelungseinrichtungen 130L, 130H zur vorhergehenden Stufe von Schaltern 124L, 124H zusätzlich zum in Fig. 22 und Fig. 23 gezeigten Aufbau realisiert.
Die Verriegelungseinrichtungen 130L, 130H empfangen die Daten der Busse SEQ-A und SEQ-C durch Eingangs-Steuerschalter 131L, 131H und verriegeln die Daten mit dem Timing des Hilfstaktes ΦL. Die Timings der verschiedenen ALU-Steuersignale vom Signal e00 bis zum Signal e0F müssen erneut bestimmt werden, um in den Zeitabschnitten T2 und T3 nacheinander aktiv zu werden, und das das Timing zum Halten eines Ergebnisses steuernde Signal e23 muß ferner verändert werden, um im Zyklus T3 wirk­ sam zu werden.
Fig. 26A bis Fig. 26D, Fig. 27A und Fig. 27B sind sche­ matische Darstellungen, welche Beispiele von Zellfunktionen verschiedener Steuerbits zum Erleichtern einer ASIC-Er­ weiterung zeigen, welche eine auf die Erfindung gemäß Anspruch 17 bezogene Ausführungsform ist. Insbesondere realisiert die hier dargestellte Zelle verschiedene Funktionen, welche wirk­ sam sind, wenn der Mikrocomputer der vorliegenden Erfindung als Sub-CPU-Seite der durch einen Aufbau auf einem Chip re­ alisierten Doppel-CPU vorgesehen ist.
In Fig. 26A bis Fig. 26D, Fig. 27A und Fig. 27B wurden die Busse SEQ-A, SEQ-B und SEQ-T bereits beschrieben.
Ein CPU-L-Bus ist ein Datenbus, der mit der Haupt-CPU verbun­ den ist, und die damit verbundenen Registergruppen sind dazu vorgesehen, um als Schnittstellenregister mit der Haupt-CPU verwendet zu werden.
Die Kreise in der Figur zeigen Schalter, welche die Register und die Busse verbinden, und Signale LXX, SXX und so weiter werden wirksam, wenn auf die Zielregisteradressen zugegriffen wird. Die Signale XX dienen als entsprechende Register­ adressen. Das im Typ-A-Register verwendete Signal GXX ist das Signal, welches zur Zeit des Übergebens und Empfangens von Daten synchronisiert ist, wobei der Fall angenommen ist, in welchem die beiden CPUs nicht synchronisiert arbeiten. Die leeren quadratischen Kästen stellen einfache Verriegelungen dar, und die schraffierten quadratischen Kästen bedeuten Funktionsschaltungen. Durch Ändern der Kombinationen der Registergruppen in Reaktion auf die Verwendungen kann der Mikrocomputer der vorliegenden Erfindung derart vorgesehen sein, daß er dem ASIC angepaßt ist.
In der Ausführungsform des Mikrocomputers der vorliegenden Erfindung ist angenommen, daß die Registerzellen in die Zu­ standsentscheidungsschaltung mit leichter Bithandhabung ein­ gebaut sind.
Fig. 28 ist ein Schaltbild, welches ein Beispiel eines speziellen Schaltungsaufbaus der in der vorstehend genannten Fig. 26A bis Fig. 26D und Fig. 27A, Fig. 27B dargestellten Zellen zeigt.
Diese Schaltung ist dadurch gekennzeichnet, daß die Register­ busse, wie beispielsweise SEQ-B, SEQ-A und so weiter, in Aluminiumverdrahtung als Paar von TRUE (wahr) und BAR (falsch) ausgelegt sind und die Schalter zu den entsprechenden Registern nur durch Kombination von N-Kanal-Transistoren re­ alisiert sind. Obwohl eine Schreibleitung zu den Registern ein direkter Pegeleingang vom Transmissions-Gattertyp in die Ver­ riegelungseinrichtungen vom RAM-Typ ist, ist ferner eine Lese­ leitung derart vorgesehen, daß die RAM-Verriegelungsdaten ein­ mal durch einen Gattereingang empfangen werden und einer Impedanzumwandlung unterworfen werden, bevor die SEQ-A-Leitung getrieben wird.
Durch ein derartiges Schaltungssystem ist es möglich, dasselbe derart auszubilden, daß in der Leitungskapazität der SEQ-A- Leitung beim Lese-Timing angesammelte Restladungen keine schädlichen Wirkungen auf den Registerpegel ausüben. Das heißt, obwohl bei einigen herkömmlichen Verfahren die Lese­ leitung auch ein direkter Pegelausgang vom Transmissions- Gattertyp aus den Verriegelungseinrichtungen vom RAM-Typ ist, bestand aus diesem Grund die Möglichkeit, daß die in der Lei­ tungskapazität angesammelten Ladungen umgekehrt fließen, um die Registerwerte zu invertieren.
Fig. 29 ist ein Schaltbild, welches ein weiteres Beispiel eines Aufbaus der Funktionszellen zeigt, in welchen ein Einzelimpuls von einem Zyklus erzeugt wird, wenn eine "1" in das Bit geschrieben wird.
Fig. 30 ist ein Schaltbild, welches ein Beispiel des Aufbaus einer Funktionszelle darstellt, welche ein Statussignal empfängt, das aus den in Fig. 28 und Fig. 29 gezeigten Funktionsblöcken ausgegeben wird, bei welcher deren Impedanz­ isolation selbst dann durch Eingeben des Gattersignals er­ reicht wird, wenn die Entwurfspositionen der Funktionsblöcke einen Abstand aufweisen.
Beim in Fig. 4 gezeigten Timing-Entwurf des Mikrocomputers der vorliegenden Erfindung, wie vorstehend im einzelnen be­ schrieben, besteht nun die Möglichkeit des Fehlens eines Spielraums der Operationsgeschwindigkeit, obwohl es möglich ist, eine Anweisung in einem Zyklus auszuführen.
Insbesondere im in Fig. 4 gezeigten Zeitabschnitt T2 werden Schaltungsverzögerungen angesammelt, da vier Handhabungsarten vom Holen des Anweisungscodes, Decodieren der Anweisung, Laden des Operanden aus dem Zielregister bis zur Operation ausge­ führt werden. Und daher wird eine obere Grenze der Operations­ geschwindigkeit durch den Zeitabschnitt T2 als Engstelle be­ schränkt. Insbesondere ist im Gegensatz dazu bei der eine hohe Geschwindigkeit bezweckenden vorstehend genannten Ausführungs­ form die Verarbeitungskapazität nicht voll ausgeschöpft, da es Zeit erfordert, die Daten aus dem Speicher zu lesen und die Operation auszuführen.
Daher besteht eine Aufgabe darin, eine größere Leistungs­ fähigkeit zu realisieren durch weiteres Unterteilen der im Zeitabschnitt T2 auszuführenden Verarbeitung der vorstehend genannten Ausführungsform und, in der folgenden Ausführungs­ form, durch Holen des Anweisungscodes und Decodieren eines Teils der Anweisung im Zeitabschnitt T2, Laden des Operanden aus dem Register und Ausführen der Operation im Zeitabschnitt T3 und Speichern des Operationsergebnisses im Zielregister im Zeitabschnitt T4, wodurch die entsprechenden Verarbeitungs­ zeiten auf entsprechende Zeitabschnitte verteilt werden, um die Belastung auszugleichen.
Die Ausgabe der effektiven Adresse im Zeitabschnitt T1 ist der in der vorstehend genannten Ausführungsform ähnlich. Das Merkmal des Durchführens der Verzweigungsziel-Adreßoperation der Verzweigungsanweisung in den Zeitabschnitten T2 und T3 in der gleichen vorstehenden Weise und des Ausführens selbst der Verzweigungsanweisung in einem Zyklus wird auch in dieser Aus­ führungsform beibehalten.
Die zweite Ausführungsform
Fig. 31A und Fig. 31B zeigen Timing-Darstellungen von einem Basiszyklus einer Anweisungsausführungs-Sequenz einer CPU einer zweiten Ausführungsform des Mikrocomputers der vor­ liegenden Erfindung.
Da in Fig. 31A und Fig. 31B die mit den Bezugszeichen 1 bis 6 bezeichneten Timings eines Basistakts Φ, eines Hilfstakts ΦH, eines Hilfstakts ΦL, eines Lesens von Daten, einer Adreß­ ausgabe und eines Holens eines Anweisungscodes die gleichen sind wie bei der vorstehend genannten ersten Ausführungsform, ist deren Beschreibung ausgelassen.
Die diese zweite Ausführungsform und die vorstehend genannte erste Ausführungsform unterscheidenden Punkte sind durch das Bezugszeichen 7 (7-1, 7-2) und die darauffolgenden Bezugs­ zeichen bezeichnet. Nachstehend werden die Timing-Dar­ stellungen der Reihe nach beschrieben, wobei Bezug genommen wird auf das Blockschaltbild der Fig. 32, welches ein Beispiel eines speziellen Aufbaus der CPU dieser zweiten Aus­ führungsform zeigt.
In dieser Ausführungsform ist eine Operanden-Verriegelungsein­ richtung durch Doppelstufen-Halbverriegelungseinrichtungen 56A, 56B ausgebildet und mit einem Operations-Timing einer mit dem Bezugszeichen 7-1 bezeichneten ersten Anweisungscode-Ver­ riegelungseinrichtung und mit einem Operations-Timing einer mit dem Bezugszeichen 7-2 in Fig. 31A bezeichneten zweiten Anweisungscode-Verriegelungseinrichtung zugeordnet.
Die erste Operationscode-Verriegelungseinrichtung 56A hält den Wert, der an einen Datenbus (SEQ 15 bis 0) 50 aus einem Programmspeichergebiet 51 bei jedem Speicherlese-Timing im Zeitabschnitt T2 ausgegeben wird. Im darauffolgenden Zeitab­ schnitt T3 wird der durch die erste Operationscode-Ver­ riegelungseinrichtung 56A gehaltene Wert zur zweiten Operationscode-Verriegelungseinrichtung 56B gesendet und durch dieselbe gehalten. Doch der gehaltene Inhalt der zweiten Operationscode-Verriegelungseinrichtung 56B liegt derart vor, daß bei einer Anweisung mit einem Ausführungszyklus von zwei oder mehr Zyklen der Anweisungscode solange kontinuierlich ge­ halten wird, wie durch das Bezugszeichen 7-b bezeichnet, bis die Anweisung ausgeführt worden ist.
Die Bezugszeichen 8-1, 8-2 bezeichnen Timings, welche ver­ schiedene Steuersignale eXX zum Ausführen der Anweisung in Reaktion auf die Ausgänge der vorstehend genannten ersten und zweiten Operationscode-Verriegelungseinrichtung 56A, 56B er­ zeugen. Da die Steuersignale in entsprechenden Phasen erzeugt werden, werden ein Signal, das anzeigt, welche Phase der Phasen entsprechenden Anweisungen vorliegt, und ein Ausgangs­ signal eines Zykluszählers 66 in dieser Ausführungsform parallel eingegeben, wie in Fig. 32 dargestellt.
Anschließend wird das Holen des Operanden nach dem Decodieren der Anweisung ausgeführt. Wie durch das Bezugszeichen 9-1 dar­ gestellt, wird die Registeradresse eines den Operanden hal­ tenden Quellregisters in den Zeitabschnitten T2, T3 aktiviert. Die Daten werden im Zeitabschnitt T3 mit einem durch das Be­ zugszeichen 9-2 bezeichneten Timing gelesen. Da ein Signal des Timings 9-1, bei welchem die Registeradresse spezifiziert wird, durch Anhäufen aus dem Speicherlese-Timing verzögert wird, wird ein Adreßsignal zu Zeitpunkten von 20 bis 40 ns im Zeitabschnitt T2 bestimmt. Somit kann durch Ausführen des Lesens der Registerdaten im darauffolgenden Zeitabschnitt T3 ein Timing-Spielraum beträchtlich verbessert werden, wodurch eine Hochgeschwindigkeits-Verarbeitung möglich ist. Das ist der sich von der ersten Ausführungsform unterscheidende Punkt.
Die aus dem Quellregister im Zeitabschnitt T3 gelesenen Operandendaten werden in einer Vor-Verriegelungseinrichtung 28 an einer Eingangsseite der ALU 22 mit einem durch das Bezugs­ zeichen 10-1 bezeichneten Timing gehalten. Ein Punkt, der den Aufbau der zweiten Ausführungsform und den der vorstehend ge­ nannten ersten Ausführungsform unterscheidet, besteht darin, daß die Vor-Verriegelungseinrichtung 28 an einer Eingangsseite der ALU 22 vorgesehen ist und die in Fig. 22 dargestellte Er­ gebnis-Verriegelungseinrichtung 129 entfernt ist.
Durch die Vor-Verriegelungseinrichtung 28 ist es möglich, die Operandendaten während des Betriebs der ALU 22 in den Zeitab­ schnitten T3 und T4 kontinuierlich zu halten. Somit ist die im wesentlichen für die ALU 22 erlaubte Operationszeit im Ver­ gleich zur ersten Ausführungsform mehr als doppelt so groß, und ein Geschwindigkeitsspielraum kann erweitert werden.
Die Operationsergebnis-Speicherverarbeitung durch die ALU 22 wird mit einem mit dem Bezugszeichen 11-2 bezeichneten Timing im Zeitabschnitt T4 ausgeführt, und eine Reihe von Hauptver­ arbeitungen der Anweisung werden abgeschlossen. Die Speicher­ register-Spezifizierung besteht darin, daß die Registeradresse in einem durch das Bezugszeichen 11-1 bezeichneten Zeitab­ schnitt ausgegeben wird und die Daten im spezifizierten Register gespeichert werden, nachdem dieser Wert festgelegt worden ist.
Das "Lesen des Registers", die "Operation" und das "Zurück­ schreiben" wird bei jeder Flanke des Basistakts Φ durch eine einfache Pipelineverarbeitung ausgeführt und eine Hochge­ schwindigkeits-Verarbeitung realisiert, da das Lesen und Schreiben im Register den Abschnitten "H" und "L" des Taktes in den Zeitabschnitten T3 und T4 zugewiesen ist, wie vor­ stehend festgestellt.
Die durch die Bezugszeichen 9-1, 9-2 bezeichneten Steuer­ signale der Lesezyklen der Quellregister werden aus einem Aus­ gang der ersten Operationscode-Verriegelungseinrichtung 56A erzeugt, und die durch das Bezugszeichen 10-1 bezeichneten Steuersignale zum Betrieb der ALU 22 sowie die Handhabung des durch das Bezugszeichen 11 bezeichneten Zurückschreibens in das Speicherregister werden aus einem Ausgang der zweiten Operationscode-Verriegelungseinrichtung 56B erzeugt. Dieser Punkt ist nachstehend zu beschreiben.
Ein typisches Beispiel einer Datenoperation in der zweiten Ausführungsform ist vorstehend beschrieben worden, und an­ schließend wird ein Überblick über das Programmsteuer-Timing bezüglich des Programmzählers gegeben.
Obwohl die Steuerung des Programmzählers 40 durch das Bezugs­ zeichen 12 bezeichnet ist, ist sie im wesentlichen der der ersten Ausführungsform ähnlich. Zur Zeit des Ausführens der Verzweigungsanweisung, nachdem das Decodieren der Anweisung im Zeitabschnitt T2 ausgeführt ist, wird das die Verzweigungs­ zieladresse speichernde Register spezifiziert und wird an­ stelle eines durch das Bezugszeichen 12b bezeichneten Wertes "PC+ 1" die Verzweigungszieladresse mit einem durch das Be­ zugszeichen 12c bezeichneten Timing in den Programmzähler ge­ laden, wie durch das Bezugszeichen 12d bezeichnet. Zum Aus­ führen einer Anweisung in einem Zyklus unterscheidet sich in dieser Weise das Timing der Verzweigungsanweisung an sich nicht von dem der ersten Ausführungsform.
Steuersignalgruppen, deren Timings mit dem Bezugszeichen 13 bezeichnet sind, unterscheiden sich teilweise von denen der ersten Ausführungsform. In der zweiten Ausführungsform ist ein Timing-Signal, wie beispielsweise die Signale e0X bis e8X, Grundlage. Wesentlich ist hier, daß das Signal e2X, welches im Zeitabschnitt T2 in der ersten Ausführungsform aktiv war, in der zweiten Ausführungsform im Zeitabschnitt T3 aktiv ist und sowohl beim Lesen von Daten der Registergruppen oder von Direktdaten als auch an der Steuerung der darauffolgenden Speicherung der effektiven Adresse im Programmzähler teil­ nimmt.
Ähnlich ist das Signal e6X, welches im Zeitabschnitt T3 in der ersten Ausführungsform aktiv war, in der zweiten Ausführungs­ form im Zeitabschnitt T4 aktiv, und das Zurückschreiben in die Registergruppen wird mit diesem Timing gesteuert. Es ist zu verstehen, daß das alles zur Erweiterung des Spielraums der Operationsgeschwindigkeit dient.
Das Signal e8X wird dazu verwendet, um die Ausführung einer speziellen Anweisung zu steuern, und die Signale e0X bis e6X werden gewöhnlich zur Steuerung verwendet.
Ein Beispiel eines speziellen Aufbaus der CPU der zweiten Aus­ führungsform, deren Steuer-Timing unter Bezugnahme auf Fig. 31A und Fig. 31B vorstehend beschrieben worden ist, ist im Blockschaltbild der Fig. 32 dargestellt. In Fig. 32 bezeich­ nen entsprechende Bezugszeichen die gleichen Bestandteile wie in Fig. 6 bis Fig. 10, welche das Beispiel des Aufbaus der ersten Ausführungsform zeigen, und da die Bestandteile im wesentlichen den gleichen Aufbau aufweisen, werden daher nur die unterschiedlichen Abschnitte nachstehend beschrieben.
Die in Fig. 10 dargestellte Operationscode-Verriegelungs­ einrichtung 56 der ersten Ausführungsform ist in Zwei-Stufen- Verriegelungseinrichtungen der ersten und der zweiten Operationscode-Verriegelungseinrichtung 56A, 56B unterteilt. Die Schalter 54-A und 54-B, welche deren Datenverriegelungs- Timings steuern, werden nicht einfach in einer gegenphasigen Beziehung ein- und ausgeschaltet, sondern der Schalter 54-B wird derart gesteuert, daß er den Auszustand beibehält, so daß der ausgeführte Anweisungscode durch die zweite Operations­ code-Verriegelungseinrichtung 56B zur Zeit des Ausführens einer Mehrfachzyklen-Anweisung kontinuierlich gehalten wird. Während der Schalter 54-A für den Halbzyklus bis zum darauf­ folgenden Zyklus, in welchem die Operandenwerte beispielsweise des Direktwertes 65, der absoluten Verzweigungsadresse 46 und so weiter notwendig sind, durch Halten des Wertes des Daten­ busses SQR (15 bis 0) jederzeit gehalten wird, wenn der Speicherwert gelesen wird.
Obwohl der Anweisungsdecodierer 66 die Steuersignale e01 . . . eXX durch Decodieren auf Grundlage der Daten OPDEC und des durch die beiden Operationscode-Verriegelungseinrichtungen 56A und 56B gehaltenen Operationscodes erzeugt, ist zum Ausführen einer Mehrfachzyklen-Anweisung ein Anweisungszyklen-Zähler 62 in dieser Ausführungsform vorgesehen. Im Anweisungsdecodierer 66 erzeugte Steuersignalgruppen 62-p werden in den Anweisungs­ zyklen-Zähler 62 eingegeben, welcher eine Rückkopplungs- Schleife 62-g umfaßt.
Ein großer Unterschied zwischen dem Aufbau der in Fig. 32 ge­ zeigten zweiten Ausführungsform und dem der ersten Aus­ führungsform besteht darin, daß die Vor-Verriegelungsein­ richtung 28 auf einer Eingangsseite der ALU 22 enthalten ist und die Ergebnis-Verriegelungseinrichtung auf der Ausgangs­ seite entfernt ist, wie vorstehend beschrieben. Ein Schalter 30 ist auf der Eingangs Seite der Vor-Verriegelungseinrichtung 28 vorgesehen, und ein Schalter 39-a ist auf ihrer Ausgangs­ seite vorgesehen, wobei es Zweck eines derartigen Aufbaus ist, die Registerwerte im Zeitabschnitt T3 zu lesen und die Daten in der Vor-Verriegelungseinrichtung 28 bis zum Zeitabschnitt T4 zu halten, in welchem die Operationsausführung fortgesetzt wird, wie unter Bezugnahme auf Fig. 31A und Fig. 31B be­ schrieben.
Da ein anderer zur ALU 22 weiterzugebender Operand im Zwischenregister 21 gehalten wird und das Zurückschreiben des Operationsergebnisses im Zeitabschnitt T4 beendet ist, ist es nicht notwendig, die in der ersten Ausführungsform enthaltene Ergebnis-Verriegelungseinrichtung 23 in der zweiten Aus­ führungsform vorzusehen.
Der Schalter 30 wird eingeschaltet, wenn das Signal e2X im Zeitabschnitt T3 aktiv wird, und die Schalter 39-a, 39-b werden eingeschaltet, wenn das Signal e4X in den Zeitab­ schnitten T3 und T4 aktiv wird.
Da die anderen Funktionen im wesentlichen denen der ersten Ausführungsform ähnlich sind, sind deren Beschreibungen wegge­ lassen.
Da in der zweiten Ausführungsform der für die Anweisungsaus­ führungs-Schritte notwendige Zyklus abgetrennt ist, wie vor­ stehend beschrieben, ist der Operationsspielraum wesentlich verbessert und sind sowohl die Ausführungsgeschwindigkeit als auch eine ausführbare untere Spannungsbegrenzung relativ ver­ größert. Dadurch wird es nahegelegt, einen zur Hochge­ schwindigkeits-Verarbeitung befähigten Mikrocomputer zu reali­ sieren.
Wenn beim herkömmlichen Mikrocomputer die Eingangstaktfrequenz zunimmt, dann besteht die Möglichkeit, daß eine elektromagne­ tische Störwelle und dergleichen erzeugt wird, und daher kann der Preis einer Gegenmaßnahme bei einem einen niedrigen Preis erfordernden allgemeinen Konsumerzeugnis nicht vernachlässigt werden. Insbesondere bei den in den letzten Jahren allgemein eingeführten handlichen portablen Erzeugnissen ist das Ent­ stehen einer Störwelle gesetzlich geregelt. Inzwischen sind Mikrocomputer nicht nur in elektrischen Einrichtungen in­ stalliert, sondern auch in zahlreichen Erzeugnissen, und somit ist die Anforderung an sie groß, wenn die Hochge­ schwindigkeits-Verarbeitung durch eine niedrige Frequenz (einige MHz) möglich ist.
Die vorliegende Erfindung betrifft eine derartige Anforderung und gestattet es, einen Mikrocomputer mit höherer Verarbei­ tungsgeschwindigkeit bei der gleichen Frequenz vorzusehen.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 1 wird die Verarbeitung sehr schnell ausgeführt, da eine Register­ operation im wesentlichen in einem Zyklus eines Systemtakts ausgeführt wird. Ferner wird eine spezielle Erkennungsschal­ tung zum Schützen von Daten nicht benötigt und kann eine Ziel- CPU durch einen einfachen Anweisungsdecodierer gebildet sein.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 2 und An­ spruch 3 ist das gleiche Entwurfsverfahren beim Anweisungsde­ codierer verwendbar, da selbst eine Sonderverarbeitung auf dem gleichen Weg wie eine andere allgemeine Anweisung an und nach dem Anweisungsdecodierer verarbeitet werden kann. Somit ist der Entwurf zur Kostenverringerung vereinheitlicht.
Im erfindungsgemäßen Mikrocomputer nach Anspruch 4 wird der über verschiedene Zyklen ausgeführte Anweisungscode decodiert, um Steuersignale zu erzeugen. Insbesondere im Falle des Ver­ wendens eines Rückwärtszählverfahrens, wenn eine Mehrzahl von Daten der Reihe nach gehandhabt wird, beispielsweise in einem derartigen Fall, wenn die Mehrzahl von Daten der Reihe nach übertragen wird, ist es leicht, ein Signal zu erzeugen, welches die Handhabung des Holens von Quelldaten zur Zeit von geraden Zählwerten und des Speicherns der Daten zur Zeit von ungeraden Zählwerten steuert.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 5 ist die Ausführungsgeschwindigkeit der Verzweigungsanweisung ver­ bessert, da ein Zustand realisiert ist, in welchem die Zu­ standsentscheidung zur Verzweigungsanweisung zur Zeit der Ver­ zweigungsausführung beendet ist.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 6 kann die Anweisung zum wirksamen Ausführen einer bedingten Verzweigung durch die minimal notwendige Anweisung ohne Zeitvergeudung für einen Vorbereitungszeitabschnitt beim Verwenden der Verzwei­ gungsanweisung gemäß Anspruch 5 unterstützt werden.
Da beim erfindungsgemäßen Mikrocomputer nach Anspruch 7 das Statusregister und dergleichen im Funktionsblock direkt als Bedingung der bedingten Verzweigung verwendet werden kann, wird, wenn notwendig, ein spezielles Bit im voraus spezi­ fiziert, um den Bitzustand in den entsprechenden Zyklen zu überwachen, und wenn eine beliebige Zustandsänderung eintritt, dann wird sie sofort erkannt, um in eine neue Routine zu ver­ zweigen, so daß eine Hochgeschwindigkeits-Verarbeitung möglich ist.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 8 und Anspruch 9 ist eine Schaltung zur vorstehend genannten Aus­ führung der Anweisung zur bedingten Verzweigung wirksam re­ alisiert.
Beim Mikrocomputer nach Anspruch 10 und Anspruch 13 kann die Handhabung des Ladens, das Bearbeitens und des Ladens des Operationsergebnisses von einem Register in einem Zyklus bewirkt werden, und es ist möglich, einen Spielraum beim Registerlade-Timing durch Verteilen des Zwischenregisters zu erreichen.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 11 ist ein wirksames Steuerverfahren zum Erleichtern der Ausführung einer Operation mit einer Länge von 8 Bit oder einer häufig vor­ kommenden Handhabung verwirklicht.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 12 ist nicht nur eine Schiebeoperationsschaltung realisiert, sondern kann ferner ein Schaltungsaufbau vorgesehen sein, welcher dazu geeignet ist, eine bei einer Multiplikation und einer Division wirksame ADD-&-Shift-Operation in einer Anweisung pro Aus­ führungszyklus zu realisieren.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 14 ist die Beziehung zwischen der ALU-Konfiguration und dem Anweisungs­ code festgelegt, wodurch eine einfache ALU ausgebildet sein kann.
Im erfindungsgemäßen Mikrocomputer nach Anspruch 15 ist ein Anweisungssatz von einer CPU einer auf einer 16-Bit-Anwei­ sungslänge basierenden Registermaschine als deren Anweisungs­ satz vorgesehen, wodurch ein CPU-Betrieb vorgesehen werden kann, welcher im wesentlichen eine Anweisung pro Zyklus re­ alisiert.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 16 ist die Erfindung besonders wirksam auf dem Gebiet einer Mikrosteuer­ einrichtung, welche eine schnelle Steuerung benötigt, und durch Anordnen eines Funktionsregisters in der den schnellsten Zugriff erlaubenden CPU-Registergruppe ist es möglich, ent­ sprechende Funktionen zu steuern und die Zustände mit der Maschinenzyklus-Geschwindigkeit zu überwachen.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 17 ist zur Zeit des Entwickelns einer ASIC-Mikrosteuereinrichtung ein wirksames Entwurfsverfahren beim schnellen Realisieren des Entwurfs von für das Gebiet geeigneten peripheren Funktionen vorgesehen.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 18 wird eine Aufgabe dadurch gelöst, daß zusätzlich eine arithmetische Einheit hinzugefügt wird, um seine eigene Leistungsfähigkeit der CPU zu verbessern.
Beim erfindungsgemäßen Mikrocomputer nach Anspruch 19 kann im Vergleich zur Erfindung gemäß Anspruch 1 ein Operationsspiel­ raum wesentlich erweitert werden, da ein für den Anweisungs­ ausführungsschritt notwendiger Zyklus abgetrennt werden kann. Da ferner sowohl die Ausführungsgeschwindigkeit als auch ein Spielraum der betreibbaren Niederspannung relativ vergrößert ist, wird ein Mikrocomputer mit der Fähigkeit zur Hochge­ schwindigkeits-Verarbeitung realisiert.
Wie in den Ansprüchen 20, 21 und 22 wird die Erfindung gemäß den Ansprüchen 2, 3 und 4 in der Erfindung gemäß Anspruch 19 verwendet.
Da diese Erfindung in verschiedenen Formen ausgeführt sein kann, ohne vom Wesen ihrer wesentlichen Merkmale abzuweichen, ist die vorliegende Ausführungsform daher erläuternd und nicht beschränkend, da der Bereich der Erfindung eher durch die beigefügten Ansprüche als durch die ihnen vorstehende Be­ schreibung festgelegt ist, und es ist daher vorgesehen, daß alle in den Bereich der Abmessungen und der Grenzen der An­ sprüche fallenden Änderungen oder Gleichwertigkeiten von der­ artigen Abmessungen und Grenzen derselben von den Ansprüchen umfaßt sind.

Claims (22)

1. Mikrocomputer, welcher mit einem 2-Zyklen-Systemtakt betrieben wird, umfassend:
einen Speicher (51), der auszuführende Anweisungscodes speichert;
eine CPU, welche umfaßt einen Programmzähler (40), der eine auszuführende Anweisungsadresse ausgibt, einen Anweisungs­ decodierer (66), welcher den aus dem Speicher (51) gelesenen Anweisungscode decodiert, und eine ALU (22), welche eine durch das Decodierergebnis vom Anweisungsdecodierer (66) spezifizierte Operation ausführt; und
eine Registergruppe (20), welche eine Mehrzahl von Registern umfaßt, von denen jedes als ein einen Anweisungs­ operanden und ein Operationsergebnis speicherndes Ziel spezi­ fiziert werden kann;
bei welchem während eines ersten Halbzyklus-Abschnitts des Systemtakts der Programmzähler (40) die auszuführende An­ weisungsadresse ausgibt,
während eines dem ersten Halbzyklus-Abschnitt des System­ takts folgenden zweiten Halbzyklus-Abschnitts der Speicher (51) den Anweisungscode ausgibt, welcher der durch den Programmzähler (40) ausgegebenen Adresse entspricht, der An­ weisungsdecodierer (66) den aus dem Speicher (51) ausgegebenen Anweisungscode liest und decodiert, und die ALU (22) Daten aus dem Register holt, welches durch das Decodierergebnis des An­ weisungsdecodierers (66) als Operand spezifiziert ist, wobei danach die Operation beginnt, und
während eines dem zweiten Halbzyklus-Abschnitt des Systemtakts folgenden dritten Halbzyklus-Abschnitts die ALU (22) das Operationsergebnis in demjenigen Register speichert, welches durch das Decodierergebnis des Anweisungsdecodierers (66) als Ziel spezifiziert ist, und der Programmzähler (40) eine als nächstes auszuführende Anweisungsadresse ausgibt.
2. Mikrocomputer nach Anspruch 1, ferner umfassend:
eine Codeerzeugeeinrichtung (58) zum Erzeugen von Sonderver­ arbeitungcodes, von denen jeder im voraus in Reaktion auf eine Mehrzahl von Sonderverarbeitungen entsprechend zugewiesen ist; eine Codeverriegelungseinrichtung (56) zum Halten des aus dem Speicher (51) gelesenen Anweisungscodes und zum Übergeben des­ selben an den Anweisungsdecodierer (66); und
eine Einrichtung (52-a, 52-b) zum Unterbinden des Zuführens eines Codes zur Codeverriegelungseinrichtung (56) aus dem Speicher (51) und zum wirksamen Zuführen des der erzeugten Sonderverarbeitung entsprechenden Sonderverarbeitungscodes zur Codeverriegelungseinrichtung (56) aus der Codeerzeugeeinrich­ tung (58), wenn eine Ausführungsanforderung der Sonderver­ arbeitung vorliegt.
3. Mikrocomputer nach Anspruch 2, bei welchem
ein Programmspeichergebiet des Speichers (51) die Sonderverarbeitungscodes speichert, welche im voraus in Reaktion auf eine Mehrzahl von Sonderverarbeitungen ent­ sprechend zugewiesen sind, und
eine äquivalente Verarbeitung selbst für den aus dem Programmspeichergebiet geholten Sonderverarbeitungscode oder für den aus der Codeerzeugeeinrichtung (58) zugeführten Sonderverarbeitungscode ausgeführt wird.
4. Mikrocomputer nach Anspruch 2, bei welchem die CPU ferner eine Zähleinrichtung (62) zum Zählen der Anzahl von Anweisungszyklen umfaßt und Ausgänge der Codeverriege­ lungseinrichtung (56) und Werte der Zähleinrichtung kombi­ niert, um eine Mehrzahl von Steuersignalen zu erzeugen.
5. Mikrocomputer, der eine Zustandsentscheidungsschaltung umfaßt, welche aufweist:
eine Registergruppe (107), die aus einer Mehrzahl von Registern gebildet ist, von denen eines durch Ausführung einer Anweisung zur bedingten Verzweigung spezifiziert ist und in welche ein vorbestimmter Wert im Code der Anweisung zur be­ dingten Verzweigung gesetzt ist;
ein Vergleichsregister (105), welches das Operationser­ gebnis bei der Anweisungsausführung speichert;
eine Vergleichseinrichtung (104) zum Vergleichen eines Wertes des durch die Anweisung zur bedingten Verzweigung spezifizierten Registers in der Registergruppe (107) und eines Wertes des Vergleichsregisters Bit für Bit und
ein Maskenregister (106), welches durch Entnehmen von Werten allein notwendiger Bits des durch die Anweisung zur bedingten Verzweigung spezifizierten Registers in der Registergruppe (107) ein Zustandsentscheidungssignal zum An­ geben, ob die Verzweigungsbedingung der Anweisung zur beding­ ten Verzweigung erfüllt ist oder nicht, in einen Zustand ver­ setzt, welcher angibt, daß die Verzweigungsbedingung erfüllt ist.
6. Mikrocomputer nach Anspruch 5, bei welchem die Zustands­ entscheidungsschaltung ein Spezifizieren des Registers, ein Spezifizieren von zu vergleichenden Bits und ein Unterscheiden von Signalwerten ausführt.
7. Mikrocomputer nach Anspruch 5, bei welchem eine Registergruppe zum Steuern einer peripheren Funktionsschal­ tung, Operationsergebnisflags und eine Unterbrechungsan­ forderungs-Bitgruppe als spezifizierbare Register der Zu­ standsentscheidungsschaltung zugewiesen sind.
8. Mikrocomputer nach Anspruch 5, welcher eine Einrichtung (106) zum Synchronisieren des Zustandsent­ scheidungssignals mit einem Basistakt umfaßt.
9. Mikrocomputer nach Anspruch 5, bei welchem eine unbe­ dingte Verzweigung durch direktes Übergeben eines 1-Bit- Steuercodes im Anweisungscode an die Zustandsentscheidungs­ schaltung ausgeführt wird.
10. Mikrocomputer, umfassend:
einen 2-Wege-Bus, der aus einem mit einem Eingang einer ALU (22) verbundenen ersten Bus (25) und einem mit einem anderen Eingang der ALU (22) verbundenen zweiten Bus (26) ge­ bildet ist; und
ein Zwischenregister (21), das zwischen einem der Busse des 2- Wege-Busses und der ALU (22) angeordnet ist und einen Operanden nach zeitweiligem Halten desselben an die ALU (22) übergibt.
11. Mikrocomputer nach Anspruch 10, bei welchem obere n Bits (120H) und untere m Bits (120L) des Zwischen­ registers (21) durch unterschiedliche Steuersignale ent­ sprechend gesteuert werden und welcher
ferner umfaßt: eine Steuereinrichtung (122H, 122L) zum wirksamen Umwandeln aller oberen n Bits (120H) oder aller unteren m Bits (120L) des Ausgangs des Zwischenregisters (21) in "0", um sie der ALU (22) zuzuführen, und
eine Inversionssteuerschaltung (123H, 123L), welche jedes Bit des Zwischenregisters (21) invertiert, um es der ALU (22) zuzuführen.
12. Mikrocomputer nach Anspruch 11, welcher ferner eine Schiebeeinrichtung (127H, 127L) zum Verschieben des Ausgangs der ALU (22) nach rechts oder links umfaßt.
13. Mikrocomputer nach Anspruch 11, welcher ferner eine Verriegelungsschaltung (23H, 23L) umfaßt, welche nach ein­ maligem Halten den aus dem Register gelesenen Wert der ALU (22) zuführt.
14. Mikrocomputer, welcher einen Anweisungssatz umfaßt, bei welchem ein Bit aus 6 Bits an einer festgelegten Position in jedem Anweisungscode zum Unter­ scheiden einer Bytelängen-Operation und einer 16-Bit-Wort­ längen-Operation verwendet wird, ein anderes Bit zum Unter­ scheiden einer Schiebeoperation und einer Nicht-Schiebe­ operation verwendet wird und die verbleibenden 4 Bits zum Spezifizieren der Arten von unterteilten Operationen verwendet werden.
15. Mikrocomputer, welcher einen eine Anweisungsgruppe und deren Anweisungscodes vor­ sehenden Anweisungssatz umfaßt, welcher verschiedene Operationen für eine CPU mit Registern mit einer Breite von 63 Wort ausführt, wobei die Anweisungscodes im wesentlichen aus 16 Bits gebildet sind, wobei in den 16-Bit-Codes neben den die Operationsarten und die Handhabung anzeigenden Codes eine ein Quellregister, ein Zielregister und eine Verzweigungsziel­ adresse einer Verzweigungsadresse spezifizierende Verschiebung und ein Wert mit einer Länge von 8 Bit enthalten sind.
16. Mikrocomputer, bei welchem Steuerschaltungen zur direkten Unterbrechung, periphere Steuerregister und Funktionsregister, welche Datenregister umfassen, direkt in einem Registerraum in einer CPU angeordnet sind.
17. Mikrocomputer, welcher Funktionsregister umfaßt, bei welchen in der Stufe des Layout­ entwurfs und des Logikentwurfs im voraus eine Mehrzahl von Basiselement-Funktionsregistern vorgesehen ist, welche eine Datenverriegelungseinrichtung umfassen mit der Funktion, einen Einzelimpuls zu erzeugen, und die Register mit notwendigen Funktionen in Reaktion auf eine Verwendung ausgewählt und kombiniert sind.
18. Mikrocomputer, bei welchem ein hochfunktionaler Operationsblock in einem Registerraum einer CPU zugewiesen ist.
19. Mikrocomputer, welcher mit einem 2-Zyklen-Systemtakt betrieben wird, umfassend:
einen Speicher (51), der auszuführende Anweisungscodes speichert;
eine CPU, welche umfaßt: einen Programmzähler (40), der eine auszuführende Anweisungsadresse ausgibt, einen Anweisungsde­ codierer (66), welcher den aus dem Speicher (51) gelesenen Anweisungscode decodiert, und eine ALU (22), welche einen durch das Decodierergebnis des Anweisungsdecodierers (66) spezifizierten Operanden über einen vorbestimmten Zeitab­ schnitt hält; und
eine Registergruppe (20), welche eine Mehrzahl von Registern umfaßt, von denen jedes als ein einen Anweisungs­ operanden und ein Operationsergebnis speicherndes Ziel spezi­ fiziert werden kann; und
eine Vor-Verriegelungseinrichtung, welche nach einmaligem Halten den aus dem Register gelesenen Wert der ALU (22) zu­ führt;
bei welchem während eines ersten Halbzyklus-Abschnitts des Systemtakts der Programmzähler (40) die auszuführende An­ weisungsadresse ausgibt,
während eines dem ersten Halbzyklus-Abschnitt des System­ takts folgenden zweiten Halbzyklus-Abschnitts der Speicher (51) denjenigen Anweisungscode ausgibt, welcher der durch den Programmzähler (40) ausgegebenen Adresse entspricht, und der Anweisungsdecodierer (66) den aus dem Speicher (51) ausge­ gebenen Anweisungscode liest und decodiert, um die durch das Decodierergebnis als Operand spezifizierte Registeradresse auszugeben,
während eines dem zweiten Halbzyklus-Abschnitt des Systemtakts folgenden dritten Halbzyklus-Abschnitts die ALU (22) Daten aus dem durch das Decodierergebnis des Anweisungs­ decodierers (66) als Operand spezifizierten Register holt, um sie in der Vor-Verriegelungseinrichtung zu verriegeln, und die Operation startet, und der Programmzähler (40) eine als nächstes auszuführende Anweisungsadresse ausgibt, und
während eines dem dritten Halbzyklus-Abschnitt des Systemtakts folgenden vierten Halbzyklus-Abschnitts die ALU (22) die Operation fortsetzt und das Operationsergebnis in dem durch das Decodierergebnis des Anweisungsdecodierers (66) als Ziel spezifizierten Register speichert.
20. Mikrocomputer nach Anspruch 19, ferner umfassend:
eine Codeerzeugeeinrichtung (58) zum Erzeugen von Codes für Sonderverarbeitungscodes, von denen jeder im voraus in Reaktion auf eine Mehrzahl von Sonderverarbeitungen entsprechend zuge­ wiesen ist;
eine Codeverriegelungseinrichtung (56) zum Halten des aus dem Speicher (51) gelesenen Anweisungscodes und zum Übergeben des­ selben an den Anweisungsdecodierer (66); und
eine Einrichtung zum Unterbinden des Zuführens eines Codes zur Codeverriegelungseinrichtung (56) aus dem Speicher (51) und zum wirksamen Zuführen des der erzeugten Sonderverarbeitung entsprechenden Sonderverarbeitungscodes zur Codeverriegelungs­ einrichtung (56) aus der Codeerzeugeeinrichtung (58), wenn eine Ausführungsanforderung der Sonderverarbeitung vorliegt.
21. Mikrocomputer nach Anspruch 20, bei welchem ein Programmspeichergebiet des Speichers (51) Sonderver­ arbeitungscodes speichert, welche in Reaktion auf eine Mehr­ zahl von Sonderverarbeitungen im voraus entsprechend zuge­ wiesen sind, und
eine äquivalente Verarbeitung selbst für den aus dem Programmspeichergebiet geholten Sonderverarbeitungscode oder für den aus der Codeerzeugeeinrichtung (58) zugeführten Sonderverarbeitungscode ausgeführt wird.
22. Mikrocomputer nach Anspruch 20, bei welchem die CPU ferner eine Zähleinrichtung (62) zum Zählen der Anzahl von Anweisungszyklen umfaßt und Ausgänge der Codever­ riegelungseinrichtung (56) und Werte der Zähleinrichtung kombiniert, um eine Mehrzahl von Steuersignalen zu erzeugen.
DE4420703A 1993-06-14 1994-06-14 Mikrocomputer Ceased DE4420703A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP14202893 1993-06-14
JP6009123A JPH0764788A (ja) 1993-06-14 1994-01-31 マイクロコンピュータ

Publications (1)

Publication Number Publication Date
DE4420703A1 true DE4420703A1 (de) 1994-12-15

Family

ID=26343782

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4420703A Ceased DE4420703A1 (de) 1993-06-14 1994-06-14 Mikrocomputer

Country Status (3)

Country Link
US (1) US5550994A (de)
JP (1) JPH0764788A (de)
DE (1) DE4420703A1 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6419881B1 (en) 1994-10-18 2002-07-16 Symyx Technologies, Inc. Combinatorial arrays of organometallic compounds and catalysts
US6502191B1 (en) * 1997-02-14 2002-12-31 Tumbleweed Communications Corp. Method and system for binary data firewall delivery
US20040073617A1 (en) 2000-06-19 2004-04-15 Milliken Walter Clark Hash-based systems and methods for detecting and preventing transmission of unwanted e-mail
US8132250B2 (en) 2002-03-08 2012-03-06 Mcafee, Inc. Message profiling systems and methods
US8561167B2 (en) 2002-03-08 2013-10-15 Mcafee, Inc. Web reputation scoring
US6941467B2 (en) 2002-03-08 2005-09-06 Ciphertrust, Inc. Systems and methods for adaptive message interrogation through multiple queues
US7903549B2 (en) 2002-03-08 2011-03-08 Secure Computing Corporation Content-based policy compliance systems and methods
US20060015942A1 (en) 2002-03-08 2006-01-19 Ciphertrust, Inc. Systems and methods for classification of messaging entities
US8578480B2 (en) 2002-03-08 2013-11-05 Mcafee, Inc. Systems and methods for identifying potentially malicious messages
US7693947B2 (en) 2002-03-08 2010-04-06 Mcafee, Inc. Systems and methods for graphically displaying messaging traffic
US7124438B2 (en) 2002-03-08 2006-10-17 Ciphertrust, Inc. Systems and methods for anomaly detection in patterns of monitored communications
US7870203B2 (en) 2002-03-08 2011-01-11 Mcafee, Inc. Methods and systems for exposing messaging reputation to an end user
US7458098B2 (en) 2002-03-08 2008-11-25 Secure Computing Corporation Systems and methods for enhancing electronic communication security
US7694128B2 (en) 2002-03-08 2010-04-06 Mcafee, Inc. Systems and methods for secure communication delivery
US7096498B2 (en) 2002-03-08 2006-08-22 Cipher Trust, Inc. Systems and methods for message threat management
US8635690B2 (en) 2004-11-05 2014-01-21 Mcafee, Inc. Reputation based message processing
US7937480B2 (en) 2005-06-02 2011-05-03 Mcafee, Inc. Aggregation of reputation data
US7779156B2 (en) 2007-01-24 2010-08-17 Mcafee, Inc. Reputation based load balancing
US8763114B2 (en) 2007-01-24 2014-06-24 Mcafee, Inc. Detecting image spam
US7949716B2 (en) 2007-01-24 2011-05-24 Mcafee, Inc. Correlation and analysis of entity attributes
US8179798B2 (en) 2007-01-24 2012-05-15 Mcafee, Inc. Reputation based connection throttling
US8214497B2 (en) 2007-01-24 2012-07-03 Mcafee, Inc. Multi-dimensional reputation scoring
US8185930B2 (en) 2007-11-06 2012-05-22 Mcafee, Inc. Adjusting filter or classification control settings
US8045458B2 (en) 2007-11-08 2011-10-25 Mcafee, Inc. Prioritizing network traffic
US8160975B2 (en) 2008-01-25 2012-04-17 Mcafee, Inc. Granular support vector machine with random granularity
US8589503B2 (en) 2008-04-04 2013-11-19 Mcafee, Inc. Prioritizing network traffic
US8621638B2 (en) 2010-05-14 2013-12-31 Mcafee, Inc. Systems and methods for classification of messaging entities
US9817642B2 (en) * 2015-06-25 2017-11-14 Intel Corporation Apparatus and method for efficient call/return emulation using a dual return stack buffer
CN114116018A (zh) * 2020-08-26 2022-03-01 比亚迪半导体股份有限公司 配置芯片及调用程序的方法、装置、存储介质及电子设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0460720A (ja) * 1990-06-29 1992-02-26 Hitachi Ltd 条件分岐命令制御方式
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GÄUSHEIMER, W., REISCH, J.: Mehr MIPS mit Mips. In: c't, Heft 9, 1991, S. 228-243 *
GB Buch Barry Wilkinson: Computer Architecture, Prentice Hall, 1991, S. 3-10 und 148-160 *

Also Published As

Publication number Publication date
US5550994A (en) 1996-08-27
JPH0764788A (ja) 1995-03-10

Similar Documents

Publication Publication Date Title
DE4420703A1 (de) Mikrocomputer
DE4301417C2 (de) Computersystem mit Einrichtung zur parallelen Befehlsausführung
DE2704842C2 (de) Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung
DE19506435C2 (de) Verfahren und Einrichtung zum Vermeiden von Rückschreibkonflikten zwischen einen gemeinsamen Rückschreibpfad verwendenden Ausführungseinheiten
DE69433339T2 (de) Lade-/Speicherfunktionseinheiten und Datencachespeicher für Mikroprozessoren
DE2357003C2 (de) Prozessor für eine Mehrprogramm-Datenverarbeitungsanlage
DE2117936C3 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE3424962C2 (de)
DE19882363B4 (de) Prozessor mit einem Umgehungsnetzwerk und mehreren Ports
DE2161886C2 (de) Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle
DE2023354C2 (de) Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher
DE69133571T2 (de) Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen
DE2835095C2 (de) Digitale Rechenanlage mit einem ersten und mindestens einem zweiten miteinander koppelbaren mikroprogrammierten Prozessoren
DE19506990A1 (de) Einrichtung zur Datenumleitung in einem Prozessor mit mehreren Ausführungseinheiten
DE2234867A1 (de) Anordnung in datenverarbeitungsanlagen zum steuern der verarbeitung zweier voneinander unabhaengiger programme
DE19860062A1 (de) Verfahren der erzwungenen Registerteilung für die Konstruktion von leistungsarmen VLSI
DE69632655T2 (de) Pipeline-Datenverarbeitungsanordnung zur Durchführung einer Mehrzahl von untereinander datenabhängigen Datenprozessen
EP0825540B1 (de) Prozessor mit Pipelining-Aufbau
DE3638572A1 (de) Vektorprozessor
DE3114921A1 (de) Datenverarbeitungssystem
DE1549478B1 (de) Gleitkomma-Rechenwerk zur schnellen Addition oder Subtraktion binaerer Operanden
DE19842254A1 (de) Datenverarbeitungsgerät
DE3307194C2 (de)
DE19738542A1 (de) Datenverarbeitungseinrichtung
DE2835110A1 (de) Schneller echtzeit-rechneremulator

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection