[go: up one dir, main page]

DE4035405A1 - Programmierbare logik-anordnung und datenverarbeitungseinrichtung mit einer solchen logik-anordnung - Google Patents

Programmierbare logik-anordnung und datenverarbeitungseinrichtung mit einer solchen logik-anordnung

Info

Publication number
DE4035405A1
DE4035405A1 DE4035405A DE4035405A DE4035405A1 DE 4035405 A1 DE4035405 A1 DE 4035405A1 DE 4035405 A DE4035405 A DE 4035405A DE 4035405 A DE4035405 A DE 4035405A DE 4035405 A1 DE4035405 A1 DE 4035405A1
Authority
DE
Germany
Prior art keywords
information
data
planes
levels
mos transistors
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.)
Granted
Application number
DE4035405A
Other languages
English (en)
Other versions
DE4035405C2 (de
Inventor
Shinichi Yamaura
Takashi Yasui
Keiichi Yoshioka
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Publication of DE4035405A1 publication Critical patent/DE4035405A1/de
Application granted granted Critical
Publication of DE4035405C2 publication Critical patent/DE4035405C2/de
Granted legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03KPULSE TECHNIQUE
    • H03K19/00Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits
    • H03K19/02Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components
    • H03K19/173Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components
    • H03K19/177Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form
    • H03K19/17704Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns
    • H03K19/17708Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns using an AND matrix followed by an OR matrix, i.e. programmable logic arrays
    • H03K19/17716Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns using an AND matrix followed by an OR matrix, i.e. programmable logic arrays with synchronous operation, i.e. using clock signals, e.g. of I/O or coupling register
    • H03K19/1772Logic circuits, i.e. having at least two inputs acting on one output; Inverting circuits using specified components using elementary logic circuits as components arranged in matrix form the logic functions being realised by the interconnection of rows and columns using an AND matrix followed by an OR matrix, i.e. programmable logic arrays with synchronous operation, i.e. using clock signals, e.g. of I/O or coupling register with synchronous operation of at least one of the logical matrixes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Description

Die Erfindung betrifft eine programmierbare Logik-Anordnung nach dem Oberbegriff des Anspruchs 1 und eine Datenverarbei­ tungseinrichtung mit einer solchen Logik-Anordnung nach dem Oberbegriff des Anspruchs 1, wie beispielsweise eine Zentral­ einheit.
Wenn herkömmlicherweise eine gewünschte Logik mit Hilfe einer programmierbaren Logik-Anordnung (die nachstehend der Einfach­ heit halber als eine PLA bezeichnet wird) ausgeführt wird, wird eine mehrstufige logische Schaltung als eine Einrichtung zum Minimieren der Anzahl von Produkt-Termen verwendet. Nor­ malerweise ist eine mehrstufige logische Schaltung als eine zweistufige logische Schaltung ausgeführt, welche aus einer UND- und einer ODER-Schaltung besteht. Ein Ausgangssignal der ODER-Schaltung wird an die Eingangsseite der UND-Schaltung rückgekoppelt. Andererseits wird die mehrstufige logische Schaltung dadurch gebildet, daß eine Anzahl programmierbarer Logik-Anordnungen (PLAs) in serieller und paralleler Form ver­ knüpft werden. Insbesondere wenn eine Anweisung oder ein Be­ fehl durch eine Zentraleinheit (die nachstehend der Einfach­ heit halber auch als eine CPU bezeichnet wird) decodiert wird, wird vorteilhafterweise die vorerwähnte mehrstufige lo­ gische Schaltung verwendet, welche ein komplexes Befehlssy­ stem verarbeitet, oder es wird eine einzige PLA mit einer großen Anzahl von Produkt-Termen verwendet.
Wenn jedoch eine derartige PLA mit einer großen Anzahl von Produkt-Termen verwendet wird, muß die Anzahl an Produkt- Termen verringert werden. Hierzu wird ein logischer Faltungs­ prozeß benötigt. Ein logischer Faltungsprozeß ist darauf ge­ richtet, eine Eingabezeile der PLA in zwei umzugruppieren und Produkt-Termenzeilen gegeneinander auszutauschen, so daß un­ nötige Eingabezeilen entfernt werden. Mit dem logischen Fal­ tungsprozeß wird es möglich, die Struktur der PLA zu minimie­ ren.
Wie vorstehend beschrieben, ist der logische Faltungsprozeß sehr wirksam, um die Größe der programmierbaren Logikanord­ nung (PLA) zu verringern. Wenn jedoch eine Zentraleinheit (CPU) mit einer programmierbaren Logik-Anordnung (PLA) kon­ figuriert wird, bei welcher der vorerwähnte logische Faltungs­ prozeß angewendet ist, müssen auch Befehlsregister aufgeteilt werden, welche Befehle oder Anweisungen speichern, die not­ wendig sind, um den logischen Faltungsprozeß durchzuführen und um eine Zeitsteuerschaltung zu teilen, welche Zeitsignale erzeugt, die dazu verwendet werden, um die Befehle, welche in den Befehlsregistern gespeichert sind, an die PLA zu senden. In diesem Fall müssen Verbindungsleitungen zwischen den aufge­ teilten Befehlsregistern und den Zeitsteuerschaltungen vorge­ sehen sein. Folglich nimmt die Gesamtgröße der Zentraleinheit (CPU) zu, obwohl die PLA selbst minimiert ist. Ferner ist ein Programmieren des logischen Faltungsprozesses sehr aufwendig und beschwerlich und folglich ist hierfür eine große Menge an Arbeit notwendig. Darüber hinaus ist es sehr schwierig, die programmierte PLA-Logik zu modifizieren, da der logische Fal­ tungsprozeß sehr kompliziert ist. Ferner haben die Signale, welche der UND-Schaltung (Ebene) von den Befehlsregistern und den Zeitsteuerschaltungen aus zugeführt sind, große Belastun­ gen, und daher besteht die Möglichkeit, daß die Decodierge­ schwindigkeiten der Befehle unterschiedlich sind. Außerdem kommt es zu einer großen Zeitverzögerung, bis die decodierten Signale erhalten werden, insbesondere wenn die mehrstufige logische Schaltung verwendet wird.
Gemäß der Erfindung soll daher eine programmierbare Logik-An­ ordnung (PLA) geschaffen werden, bei welcher die vorerwähnten Nachteile beseitigt sind, welche mit hohen Geschwindigkeiten arbeitet und wobei deren Größe verkleinert ist. Gemäß der Er­ findung ist dies bei einer programmierbaren Logik-Anordnung nach dem Oberbegriff des Anspruchs 1 durch die Merkmale in dessen kennzeichnenden Teil erreicht. Vorteilhafte Weiterbil­ dungen sind Gegenstand der auf den Anspruch unmittelbar oder mittelbar rückbezogenen Unteransprüche 2 bis 10.
Darüber hinaus soll gemäß der Erfindung eine Datenverarbei­ tungseinrichtung mit der vorerwähnten programmierbaren Logik- Anordnung geschaffen werden. Gemäß der Erfindung ist dies bei einer Datenverarbeitungseinrichtung mit einer PLA nach dem Oberbegriff des Anspruchs 11 durch die Merkmale in dessen kennzeichnenden Teil erreicht. Vorteilhafte Weiterbildungen dieser Datenverarbeitungseinrichtung sind Gegenstand der un­ mittelbar oder mittelbar auf den Anspruch 11 rückbezogenen Unteransprüche 12 bis 21.
Nachfolgend wird die Erfindung anhand von bevorzugten Ausfüh­ rungsformen unter Bezugnahme auf die anliegenden Zeichnungen im einzelnen erläutert. Es zeigen:
Fig. 1 ein Diagramm eines Programmiermodells;
Fig. 2A bis 2C Diagramme, in welchen Formate von Befehlen dar­ gestellt sind, welche in einer Zentraleinheit (CPU) gemäß einer bevorzugten Ausführungsform der Erfin­ dung verwendet sind;
Fig. 3 ein Blockdiagramm, in welchem die gesamte Struktur der Zentraleinheit (CPU) gemäß der bevorzugten Ausführungsform der Erfindung dargestellt ist;
Fig. 4 ein Blockdiagramm, welches einen Teil der in Fig. 3 dargestellten Gesamtstruktur wiedergibt, welche sich auf eine PLA-Konfiguration bezieht;
Fig. 5 ein Schaltungsdiagramm, in welchem die Struktur von zwei UND-Ebenen und einer einzigen ODER- Ebene dargestellt ist, welche in Fig. 4 wiederge­ geben sind;
Fig. 6 ein Blockdiagramm eines Teils der in Fig. 3 darge­ stellten Struktur, welche sich auf einen Sprungbe­ fehlprozeß beziehen;
Fig. 7 ein Diagramm eines Formats eines Sprungbefehls;
Fig. 8 ein Schaltungsdiagramm einer in Fig. 6 dargestell­ ten Sprungfühlschaltung, und
Fig. 9 ein Blockdiagramm eines Systems, bei welchem die Zentraleinheit gemäß der bevorzugten Ausführungs­ form der Erfindung verwendet ist.
Nunmehr wird eine Zentraleinheit (CPU) gemäß einer bevorzug­ ten Ausführungsform der Erfindung dargestellt. In Fig. 1 ist ein Programmiermodell dargestellt. Ein Basiswort der CPU ge­ mäß der Erfindung besteht aus 8 Bits. Ein Adressierungsbe­ reich ist durch einen Programmzähler (PC) genau festgelegt, welcher aus 24 Bits besteht, welche in drei Programmzählern PBC, PCH und PCL gruppiert sind. Es können lineare Adressen behandelt werden, welche sich auf 16 Megabytes belaufen. Der Zähler PBC ist ein Programmbank-Zählerregister (das nachste­ hend der Einfachheit halber als ein PBC-Register bezeichnet wird); mit PCH ist ein Programmzählerregister (das nachste­ hend der Einfachheit halber als ein PCH-Register bezeichnet wird) und mit PCL ist ein Programmzählerregister bezeichnet (das nachstehend der Einfachheit halber als ein PCL-Register bezeichnet wird).
Andererseits wird ein Datenzugriff mit Hilfe einer sogenann­ ten Bank-Methode konfiguriert. Eine Bankadresse wird grund­ sätzlich in einem 8 Bit-Datenbankregister (DBR) registriert. Lineare 64 kByte-Adressen mit 256 Banken werden verwendet, so daß ein 16 MByte-Zugriff realisiert werden kann. Das Ausgangs­ signal des Datenbankregisters DBR, welches eine Bankadresse bildet, wird später zusammen mit Flags M1 und M0 noch be­ schrieben.
Es sind eine Vielzahl Mehrzweckregister W0, W1 und W2 vorge­ sehen, welche jeweils aus 16 Bits bestehen. Jedes der Regi­ ster W0 und W1 ist in zwei 8 Bit-Blocks aufgeteilt, wie in Fig. 1 dargestellt ist. Hierbei sind die vier 8 Bit-Blocks mit R0 und R2 bezeichnet, welche sich auf das Register W0 bezie­ hen, und mit R1 und R3 bezeichnet, welche sich auf das Regi­ ster W1 beziehen. Mit der vorstehend beschriebenen Anordnung ist es für die Zentraleinheit (CPU) möglich, sowohl 8 Bit- als auch 16 Bit-Daten zu verarbeiten.
Ein Stapelzeiger-(SP-)Register, das aus 16 Bits besteht, ist zum Festlegen eines Stapelraums vorgesehen. Mit Hilfe des Stapelzeiger-Registers kann linear auf 64 kBytes zugegriffen werden. Die Bankadresse ist auf "00" h festgelegt.
Ein Prozessor-Zustandsregister (PSR) zeigt den laufenden Be­ triebszustand der Zentraleinheit und Flags N, V, Z und C an, welche sich in Abhängigkeit von den Operationsergebnissen ändern. Ferner hat das Prozessor-Zustandsregister Flags I und D. Das Flag I zeigt an, ob eine Unterbrechungsanforderung ak­ zeptierbar ist oder nicht, und das Flag D bezieht sich auf eine Korrektur des Ergebnisses eines Addier-/Subtrahier-Be­ fehls. Wenn D = 1 ist, wird das Ergebnis der durchgeführten Addition/Subtraktion automatisch einer Dezimalkorrektur un­ terzogen.
Die Flags M1 und M0 ermöglichen ein Auswählen von Daten, wel­ che sich auf die Bankadresse beziehen, die abgegeben worden ist, wenn auf den Datenraum zugegriffen wird. Durch Einstel­ len der Flags M1 und M0 auf beliebige Werte (die von der CPU erneuert worden sind) kann folglich entweder die Bankadresse in dem Datenbankregister DBR oder eine Konstante, wie "00"h ausgewählt werden. Diese Anordnung ermöglicht es, verschiede­ ne Anwendungen aufzulegen.
Ein schnelles Seitenregister (FPR) funktioniert wie ein Adressenzeiger zum Zeitpunkt eines Zugriffs auf Daten und wird in einem Adressiermode verwendet, welcher als ein schnel­ ler direkter Adressiermode bezeichnet wird. Hierbei bedeutet "Adressieren" eine Prozedur zum Spezifizieren der Adressen eines Speicherbereichs, in welchem gewünschte Daten gespei­ chert sind. Bei dem schnellen direkten Adressiermode werden nur 8 Bit-Daten abgerufen, und die abgerufenen 8 Bit-Daten werden in einen niederwertigen Teil (Bits 7 bis 0) der effek­ tiven Adresse gesetzt, und der Inhalt des schnellen Seitenre­ gisters FPR wird in einem hochwertigen Teil (Bits 15 bis 8) gesetzt. Das schnelle Seitenregister FPR wird in dem vorer­ wähnten Adressiermode wirksam. Die Bankadresse, welche bei dem schnellen direkten Adressiermode abgegeben wird, hängt von dem Zustand der Flags M1 und M0 ab. In dem schnellen direkten Adressiermode wird nur ein Byte der Operandendaten abgerufen, und folglich ist ein Zugriff auf Daten in einer identischen Seite (auf welcher Bits 15 bis 8 konstant sind) mit einer höheren Geschwindigkeit möglich.
In Fig. 2A bis 2C sind die Formate von Befehlen der Zentralein­ heit (CPU) gemäß einer Ausführungsform der Erfindung darge­ stellt. Die Basiswortlänge, welche in der CPU verarbeitet wor­ den ist, besteht aus 8 Bits, wie vorher bereits beschrieben worden ist. Ein-Byte-Daten für eine Verwendung in einer Be­ fehlserweiterung, welche als Vorbyte-Daten bezeichnet sind, sind so angeordnet, daß sie dem Operationscode vorangehen.
Die CPU ruft zuerst die Vorbyte-Daten ab. Grundsätzlich ent­ halten die Vorbyte-Daten Information über den Adressiermode, und der Operationscode hat den Inhalt eines Befehls, welcher ausgeführt werden sollte. Ein Befehl, welcher häufig verwen­ det wird, hat ein spezielles, in Fig. 2A dargestelltes Format. Der in Fig. 2A dargestellte Befehl, der ein Kurzbefehl genannt wird, setzt sich nur aus einem Operationscode und einem Ope­ randen zusammen und hat keine Vorbyte-Daten. Der Operations­ code in Fig. 2 enthält Information über den Adressiermode und den Inhalt des Befehls. Bekanntlich hat der Befehl in Fig. 2A keine Vorbyte-Daten, um die Befehlscode-Länge und die Durch­ führungszeit zu verkürzen.
Ferner sind zwei Formate für die in Fig. 2B und 2C dargestell­ ten Operandendaten vorgesehen. Das in Fig. 2B dargestellte For­ mat hat einen Operationscode, der auf die Vorbyte-Daten folgt, und Operanden-Daten (#1), welche auf den Operationscode fol­ gen. Das in Fig. 2C dargestellte Format hat zweite Operanden- Daten (#2), welche zwischen den Vorbyte-Daten und dem Opera­ tionscode angeordnet sind. Die zweiten Operanden-Daten, wel­ che zwischen den Vorbyte-Daten und dem Operationscode ange­ ordnet sind, werden in einem Adressiermode mit einer Verschie­ bung (einer relativen Adresse) verwendet. In dem Adressiermode mit einer Verschiebung wird die effektive Adresse dadurch er­ zeugt, daß als eine Versetzung Daten, welche durch den Operan­ den oder den Wert in einem Register abgerufen sind, die durch den Operan­ den spezifiziert worden sind, zu den Daten in dem internen Regi­ ster addiert worden. Wenn der Adressiermode mit einer Verschie­ bung verwendet wird, dauert es, falls das Format der in Fig. 2B dargestellten Operanden-Daten verwendet wird, lange Zeit, die effektive Adresse zu berechnen, da die Operanden-Daten der Verschiebung abgerufen werden, und danach wird die effek­ tive Adresse berechnet. Nachdem die Verschiebungsdaten des Operanden abgerufen sind, gibt es folglich eine Anzahl von Leerumläufen. Mit Hilfe des in Fig. 2C dargestellten Formats und durch Anordnen der Verschiebungsdaten zwischen den Vor­ byte-Daten und dem Operationscode kann die effektive Adresse berechnet werden, während der Operationscode abgerufen wird. Folglich kann das Auftreten von unwirtschaftlichen Leerumläu­ fen verhindert werden.
In Fig. 3 ist die Struktur der Zentraleinheit (CPU) gemäß der bevorzugten Ausführungsform der Erfindung dargestellt. Die Struktur der CPU ist in einen Steuerteil 1 und einen Opera­ tionsteil 2 aufgeteilt. Der Steuerteil 1, welcher zuerst be­ schrieben wird, steuert das Ausführen von Befehlen. Während einer Operation wird ein Befehlscode an eine Dateneingabe- Halteschaltung (DIL) 15 über einen Datenbus, welcher Daten­ bits D7 bis D0 überträgt, von einer externen Einheit aus zu­ geführt. Dann wird der Befehlscode an ein Befehlsregister in einem Befehlsregister 3, das Bezug zu den Vorbyte-Daten hat, oder in einem Befehlsregister 4 abgegeben, das Bezug zu dem Operationscode hat und wird darin gehalten, bis ein nächster Befehls erzeugt wird.
Eine Vielzahl von Ausgangssignalen 5 und 6 der Befehlsregister 3 und 4 sowie von Ausgangssignalen einer Zeitsteuereinheit (TCU) 7 werden in ein Befehldecodiersystem (PLA) eingegeben, das sich aus ODER-Ebenen 9 und 11 und UND-Ebenen 8 und 10 zusammensetzt. Wie später noch beschrieben wird, ist die ganze UND-Ebene der CPU in die UND-Ebenen 8 und 10 aufgeteilt, während die ODER-Ebenen 9 und 11 im wesentlichen eine einzige ODER-Ebene der CPU bilden.
Das Decodierergebnis wird in ein Ausführungs-Steuerinterface (ECI) 12 eingegeben, welches eine Anzahl Steuersignale 14 aus dem empfangenen Decodierergebnis erzeugt und welches die Steuersignale 14 mit einer eingestellten zeitlichen Steuerung an den Operationsteil 2 abgibt. Die UND-Ebene 8 wird für die Vorbyte-Daten verwendet, und die UND-Ebene 10 wird für den Operationscode verwendet. Die zwei ODER-Ebenen 9 und 11 sind gemeinsam für die Vorbyte-Daten und den Operationscode vorge­ sehen. Wie vorher bereits beschrieben worden ist, haben die Vorbyte-Daten Information über den Adressiermode, und der Operationscode schließt den Inhalt der Operation ein. Auf diese Weise wird die programmierbare Logikanordnung (PLA) funktionell in die zwei Teile gruppiert, um das Decodieren zu erleichtern und um Redundanz zu beseitigen und um eine minimale PLA (insbesondere UND-Ebenen) zu bilden, welche die Vorbyte-Daten und den Operationscode separat behandeln.
Die UND-Ebenen 8 und 10 können gleichzeitig betrieben werden oder es kann nur eine von ihnen entsprechend einem Eingangs­ signal von einer Unterbrechungssteuereinheit 21 betrieben werden. Ein Steuercode einer Unterbrechungsfolge wird der UND-Ebene 8 zugeteilt, welche Bezug zu den Vorbyte-Daten hat. Solange eine Unterbrechungsanforderung zu verarbeiten ist, arbeitet die UND-Ebene 10 nicht, welche sich auf die Opera­ tionscode-Seite bezieht. Der Operationsteil 2 führt eine Operation durch und steuert einen Datentransfer zwischen der CPU und einer externen Einrichtung entsprechend den Steuer­ signalen, welche von dem Ausführungs-Steuerinterface (ECI) 12 erzeugt und abgegeben worden sind.
Die Zentraleinheit (CPU) hat interne Buse MB, DB und SB, die jeweils aus 8 Bits bestehen. Die CPU hat eine Gruppe von Re­ gistern (welche durch Bezugnahme auf das Programmiermodell beschrieben worden sind), eine Arithmetik-Logikeinheit 19, (die nachstehend als eine ALU-Einheit wird), eine Schiebeein­ heit 20 und eine Adressensteuereinheit (ACU) 16. Die ALU-Ein­ heit 19 berechnet verschiedene Operationen, wie Daten und die effektive Adresse. Die Schiebeeinheit 20 führt eine 8 Bit- Schiebeoperation durch, und die Adressensteuereinheit 16 hat hauptsächlich die Aufgabe, die Adresse zu erzeugen.
Die ALU-Einheit 19 hat einen Aufwärtszähler 27, welcher an deren Eingangsseite vorgesehen ist. Der Aufwärtszähler 27 unterstützt die von der ALU-Einheit 19 durchgeführte Opera­ tion und hat die Aufgaben, ein Eingangssignal durchzulassen, dasselbe zu invertieren und konstante Daten, wie "00"h zu erzeugen. Die ALU-Einheit 19 enthält eine Dezimalkorrektur­ schaltung, welche eine sogenannte D-Flagfunktion hat, was später noch beschrieben wird.
Der Operationsteil 2 hat einen Nulldetektor (ZDT) 17, welcher einen Zustand feststellt, in welchem Daten über den internen Bus MB alle null sind, und einen Sprungbedingungsdetektor (BRDT) 18, welcher bestimmt, ob einer Sprungbedingung, welche durch einen Sprungbefehl angezeigt worden ist, durch Bezug­ nahme auf die Zustandsinformation (C, Z, N, V) in den Pro­ zessor-Zustandsregistern PSR 30 genügt ist oder nicht. Die Funktion der Adressenberechnungseinheit 16 wird durch eine Vielzahl aufgeteilter Funktionsteile realisiert, die jeweils eine Einheit von 8 Bit haben. Ein Übertrag kann zwischen den aufgeteilten Funktionsteilen mitlaufen. Mit dieser Anordnung kann eine Adresse mit maximal 24 Bits berechnet werden. Die Adressenberechnungseinheit 16 kann nicht nur die Adressen-, sondern auch die Daten-Berechnung ausführen.
Die Adressenberechnungseinheit 16 hat Inkrementier-/Dekremen­ tier-Schaltungen (INC/DEC : L, INC/DEC : H, INC/DEC : B), welche in einer Einheit von 8 Bits vorgesehen sind, und 8 Bit-interne Buse ABL, ABH und SB. Die Daten von den internen Busen ABL, ABH und SB werden durch Daten "00"h, "01"h und "02"h erhöht oder erniedrigt. Die Berechnungsergebnisse der Schaltungen INC/DEC : L, INC/DEC : H und INC/DEC : B werden selektiv in Halte­ schaltungen CALL, CALH bzw. CALB gespeichert, aus diesen aus­ gelesen und dann an Adressenpuffer AOBL, AOBH bzw. AOBB über­ tragen. Der Ausdruck "wahlweise" bedeutet, daß die Berech­ nungsergebnisse nicht immer in den entsprechenden Halteschal­ tungen gespeichert werden. Insbesondere werden die Berech­ nungsergebnisse gehalten und gespeichert, wenn die Adressen­ berechnung durchgeführt wird, und können nicht gehalten bzw. gespeichert werden, wenn die Datenberechnung durchgeführt wird. Ein Ergebnisregister (RLT2) 35 hält immer das Berech­ nungsergebnis, wenn die Schaltung INC/DEC : B arbeitet.
Die Adressenberechnungseinheit 16 hat Vektor-Adresengenera­ toren VECL, VECH und VECB, welche koerzitiv einen Unterbre­ chungsvektor erzeugen, wenn eine Unterbrechung erzeugt wird. Ferner hat die Adressenberechnungseinheit 16 eine Schaltung BS, welche Daten über den Bus DB als eine Adresse abgibt, ohne die Inkrementier-/Dekrementier-Schaltungen INC/DEC zu verwenden.
In der Zentraleinheit (CPU) gemäß der bevorzugten Ausführungs­ form der Erfindung wird die effektive Adresse sowohl mit Hilfe der AL-Einheit 19 als auch der AC-Einheit 16 insbeson­ dere in dem Adressiermode mit einer Verschiebung erzeugt oder wenn ein Sprungbefehl verarbeitet wird. Ein Übertragselektor (CSB) 25 und ein Übertragselektor (CSH) 26 werden in solchen Fällen verwendet. Mit Hilfe der Übertragselektoren 25 und 26 wird es möglich, einen Übertrag oder ein Borgen durch die Berechnung mittels der ALU-Einheit 19 bei der Berechnung der Adressen-Berechnungseinheit 19 zu reflektieren. Die Ergeb­ nisse der Operationen, welche durch die Inkrementier-/Dekre­ mentier-Schaltungen INC/DEC gehalten worden sind, erneuern selektiv Daten in Registern PC, DBR, TR, ADH und ADL über Buse BR, TR, ADH und ADL.
Die Zentraleinheit (CPU) enthält ferner einen Taktgenerator 22, welcher Takte der CPU steuert, und eine Systemsteuer­ einheit 23, welche verschiedene Signale erzeugt, welche peri­ phere Systeme von dem Betriebszustand der CPU informieren. Ein Befehlsvordecoder 33 decodiert einen Befehlscode vor und beurteilt, ob er ein Kurzbefehl ist oder nicht, oder ob er Vor­ byte-Daten hat oder nicht, welche eine unbestimmte Kombination mit dem Operationscode bilden, welcher in dem Befehlscode ent­ halten ist.
Nunmehr werden die Elemente des Operationsteils 2 beschrieben.
Mehrzweckregister
Die Mehrzweckregister geben Daten bei der Datenoperation und dem Datentransfer ab und speichern das Ergebnis der Datenope­ ration und des Datentransfers. Die Mehrzweckregister sind in Fig. 1 und 3 dargestellt. Die Register W0 bzw. W1 haben zwei 8 Bit-Blocks (R0, R2) und (R1, R3). Folglich können die zwei Blöcke jedes der Register W0 und W1 separat verwendet werden. Eine Information darüber, ob jedes Register W0 und W1 als ein einziges 16 Bit-Register oder als zwei 8 Bit-Register verwen­ det werden sollte, wird durch einen Befehl gegeben. Folglich kann die Zentraleinheit (CPU) nicht nur 8 Bit-, sondern auch 16 Bit-Daten behandeln.
Register W2 und W3 werden bestimmt und als Zeiger in dem Adressiermode zur Zeit eines Datenzugriffs verwendet. Jedes der Register in den Mehrzweckregistern ist als ein Halte­ glied ausgebildet (welches keine Setz- und Rücksetz-Funktion hat) und ist folgendermaßen geschaltet. Grundsätzlich halten bzw. verriegeln die Register Daten, die von dem internen Bus MB eingegeben worden sind, und geben die gehaltenen Daten an den internen Bus DB oder MB ab. Nur das Register R2 bezieht sich auf die Durchführung eines Teilungsbefehls und somit auf eingegebene Daten von dem internen Bus DB. Insbesondere wird die Beziehung zwischen den Eingängen und Ausgängen der jewei­ ligen Register so, wie in Tabelle 1 dargestellt ist, erhalten.
Tabelle 1
Schnelles Seitenregister (FPR)
Das schnelle Seitenregister FPR, welches vorher bereits in Verbindung mit Fig. 1 und 3 beschrieben worden ist, wird in dem vorerwähnten schnellen direkten Adressiermode verwendet. Das schnelle Seitenregister FPR ist aus einem Halteglied ge­ bildet (welches keine Setz- und Rücksetz-Funktion hat) und ist mit den internen Busen in der Weise verbunden, daß das schnelle Seitenregister FPR Daten hält und verriegelt, welche von dem internen Bus MB aus eingegeben worden sind, und gibt die gehaltenen Daten an den internen Bus DB ab.
Eingabesteuereinheit (IC) 27
Die in Fig. 3 dargestellte Eingabesteuereinheit 27 steuert Da­ ten, welche in die AL-Einheit 19 über den internen Bus MB ein­ gegeben werden. In Tabelle 2 ist die Beziehung zwischen den Daten und den Eingängen wiedergegeben.
Daten
Eingang
MB-Busdaten
ALU
invertierte Version @ von MD-Busdaten ALU
Konstante "00"h ALU (MB-Busdaten werden vernachlässigt)
Konstante "01"h ALU (MB-Busdaten werden vernachlässigt)
Konstante "02"h ALU (MB-Busdaten werden vernachlässigt)
Konstante "03"h ALU (MB-Busdaten werden vernachlässigt)
AL-Einheit 19
Die in Fig. 3 dargestellte AL-Einheit 19 erhält 8 Bit-Daten von dem internen Bus DB und 8 Bit-Daten von der Eingabesteu­ ereinheit 27 und führt verschiedene Operationen durch. Die von der AL-Einheit 19 durchgeführten Operationen sind logi­ sche Operationen AND, OR, EXOR und SUM. Durch Setzen des D- Flags in dem Prozessor-Zustandsregister PSR auf 1 führt die AL-Einheit 19 eine Dezimalkorrektur für eine Addition und Subtraktion während desselben Operationszyklus durch. Ferner hat die AL-Einheit 19 die Funktionen, das Erzeugen eines Über­ trags oder Borgens und das Auftreten eines Überlaufs festzu­ stellen und den Übertrag/Borgvorgang sowie den Überlauf zu halten. Der Übertrag wird in der AL-Einheit 19 gehalten, bis er die nächste SUM-Operation durchführt. Mit anderen Worten, es gibt keine Änderung in dem Übertrag, wenn die UND-, ODER- oder EXOR-Operation durchgeführt wird.
ALU-Schiebeeinheit 28
Die in Fig. 3 dargestellte ALU-Schiebeeinheit 28 ist aus einem Schieberegister gebildet, welches eine Ein-Bit-Verschiebung nach rechts für 8 Bit-Daten durchführt und wird hauptsächlich in dem Multiplikationsbefehl verwendet. Daten, die in das Schieberegister 28 eingegeben worden sind, sind das Ergebnis der Additions-(SUM-)Operation, welche von der AL-Einheit 19 durchgeführt worden ist. Das höchstwertige Bit der eingegebe­ nen Daten ist das bei der Summieroperation erzeugte Übertrag­ bit. Ein 1 Bit-Datenwert, welcher dem niedrigstwertigen Bit entspricht, das durch die Schiebeoperation abgegeben worden ist, wird schließlich als ein Übertrag gehalten.
Ergebnisregister (RLT) 29
Das Ergebnisregister 29 hält die Ergebnisse der von der AL- Einheit 19 durchgeführten Operation und ist mit den internen Busen in der Weise verbunden, daß Daten in dem Ergebnisregi­ ster 29 an den internen Bus DB oder MB abgegeben werden. Die Daten in dem Ergebnisregister 29 werden nicht erneuert, bis die AL-Einheit 19 die nächste Operation durchführt.
Schiebeeinheit 20
Die in Fig. 3 dargestellte Schiebeeinheit 20 ist durch ein Flip-Flop gebildet, welches selektiv eine 1 Bit-Verschiebung nach links, eine 1 Bit-Verschiebung nach rechts und keine Verschiebeoperation entsprechend dem entsprechenden Steuersig­ nal von dem Ausführungssteuer-Interface 12 durchführt. Die Schiebeeinheit 20 ist so geschaltet, daß Daten in die Schiebe­ einheit 20 von dem internen Bus MB eingegeben und an den in­ ternen Bus MB abgegeben werden.
Nulldetektor (ZDT) 17
Der in Fig. 3 dargestellte Nulldetektor 17 überwacht den Zu­ stand des internen Bus MB und erzeugt ein Signal, welches an­ zeigt, daß alle Bits des internen Bus MB "00"h sind, wenn er diesen Zustand feststellt. Insbesondere steuert das von dem Nulldetektor 17 erzeugte Signal das in dem Prozessor-Zustands­ register 20 vorgesehene Flag Z, so daß, wenn das Operations­ ergebnis von der AL-Einheit 19 an den internen Bus MB über das Ergebnisregister 29 abgegeben wird, das Ergebnis "00"h festgestellt und das Flag Z auf "1" gesetzt wird.
Prozessor-Zustandsregister (PSR) 30
Das in Fig. 3 dargestellte Prozessor-Zustandsregister 30 er­ hält Daten von dem internen Bus MB und gibt dieselben an den internen Bus DB ab. Die Daten in dem Prozessor-Zustandsregi­ ster 30 zeigen den augenblicklichen Betriebszustand der Zen­ traleinheit (CPU) an.
Sprungfeststellschaltung (BRDT) 18
Die in Fig. 3 dargestellte Sprungfeststellschaltung 18 ist mit dem Prozessor-Zustandsregister 30 verbunden und erzeugt im Hinblick auf den Inhalt des Registers 30, wenn ein Sprungbe­ fehl erzeugt wird, ein Signal, ob eine Sprungoperation durch­ geführt werden soll oder nicht.
Adressenausgabepuffer (AOBB, AOBH und AOBL)
Die in Fig. 3 dargestellten Adressenausgabepuffer AOBB, AOBH bzw. AOBL behandeln 8 Bits und geben eine Adresse ab, welche insgesamt aus 24 Bits besteht (BA7 bis BA0, A15 bis A0). Die Ausgangsadresse wird in einen Zustand niedriger Impedanz ge­ bracht, wenn ein in der Systemsteuereinheit 23 eingegebenes Bus-Freigabesignal BE auf niedrigem Pegel liegt.
Vektoradressen-Generatoren (VECB, VECH, VECL)
Die in Fig. 3 dargestellten Vektoradressengernatoren VECB, VECH und VECL erzeugen während eines Unterbrechungsprozesses eine aus 24 Bit bestehende Vektoradresse.
Adressenberechnungs-Halteschaltungen (CALB, CALH, CALL)
Die Adressenberechnungs-Halteschaltungen CALB, CALH und CALL, welche in der in Fig. 3 dargestellten Adressenberechnungsein­ heit 16 vorgesehen sind, halten wahlweise die Operationser­ gebnisse, welche von den Inkrementier-/Dekrementier-Schal­ tungen INC/DEC : B, INC/DEC : H bzw. INC/DEC : L abgegeben worden sind, nur wenn die Adressenberechnung durchgeführt wird.
Inkrementier-/Dekrementier-Schaltungen (INC/DEC : B, INC/DEC : H, INC/DEC : L)
Die in Fig. 3 dargestellten Inkrementier-/Dekrementierschal­ tungen INC/DEC : B, INC/DEC : H und INC/DEC : L erhöhen oder ver­ ringern Daten. Jede der In-/Dekrementier-Schaltungen besteht aus 8 Bits und ein bei der Operation durchgeführter Übertrag wird an die obere In-/Dekrementier-Schaltung weitergegeben. Beispielsweise wird ein Übertrag, welcher von der In-/Dekre­ mentier-Schaltung INC/DEC : L erzeugt worden ist, an die In-/ Dekrementier-Schaltung INC/DEC : H weitergegeben, und ein von der In-/Dekrementier-Schaltung INC/DEC : H erzeugter Übertrag wird an die In-/Dekrementier-Schaltung INC/DEC : B weiterge­ geben. Auf diese Weise wird die 24 Bit-Adresse erzeugt. Daten werden in die In-/Dekrementier-Schaltung INC/DEC : B, INC/DEC : H und INC/DEC : L über die Datenbuse SB, ABH bzw. ABL eingegeben.
Jeder der In-/Dekrementier-Schaltungen INC/DEC : B, INC/DEC : H und INC/DEC : L führt wahlweise eine Datenhalteoperation und eine In-/Dekrementier-Operation an "01"h bzw. "02"h durch.
Bus-Selektor (BS)
Der Bus-Selektor BS hat eine Datenauswählfunktion, um un­ mittelbar 8 Bit-Daten von einer externen Einrichtung außerhalb der Zentraleinheit (CPU) über den internen Bus DB in den Adressenausgabepuffer AOBL einzugeben, ohne die In-/Dekre­ mentierschaltung INC/DEC : L zu durchlaufen. In dem vorerwähn­ ten, schnellen direkten Adressiermode muß die effektive Adres­ se während eines Zyklus abgegeben werden, der auf einen Zy­ klus folgt, während welchem 8 Bit-Operandendaten für die effektive Adresse abgerufen werden. Wenn in diesem Fall die Schaltung INC/DEC : L verwendet wird, kommt es zu einer Verzö­ gerung. Unter diesem Gesichtspunkt erhält daher der Daten­ selektor BS von dem Dateneingaberegister (DIL) 15 über die Operandendaten den internen Bus DB und schreibt den Inhalt des Adressenausgabepuffers AOBL mit Hilfe der Daten mit einer hohen Geschwindigkeit wieder ein.
Übertragselektoren (CSH, CSB) 25, 26
Der Übertragselektor (CSH) 25 hat eine Datenauswählfunktion, um entweder einen Übertrag von der In-/Dekrementierschaltung INC/DEC : L auf der niederwertigeren Seite oder einen Übertrag auszuwählen, welcher von der AL-Einheit 19 erzeugt worden ist, wenn die Datenberechnung durchgeführt wird. In ähnlicher Weise hat der Übertragselektor (CSB) 26 eine Datenauswählfunktion, um entweder einen Übertrag von der In-/Dekrementierschaltung INC/DEC : H oder einen Übertrag auszuwählen, welcher von der AL-Einheit 19 erzeugt worden ist, wenn die Datenberechnung durchgeführt wird. Bei dieser Anordnung arbeiten die AL-Ein­ heiten 19 und die Adressenberechnungseinheit 16 zusammen, so daß eine Additions-(SUM-) Operation über Verschiebungsda­ ten in der Prozedur zur Erzeugung der effektiven Adresse und die Adressenberechnung einer programmbezogenen Adresse durchgeführt werden kann, wenn ein Sprungbefehl verarbeitet wird.
Beispielsweise addiert in einem Adressiermode, bei welchem eine effektive Adresse erzeugt wird, indem 8 Bit-Verschie­ bungsdaten zu 24 Bit-Daten addiert werden, die AL-Einheit 19 Bits 7 bis 0 der 24 Bit-Daten und die 8 Bit-Verschiebungs­ daten und die Adressenberechnungseinheit 16 führt eine Opera­ tion bei den restlichen 16 Bit durch. Wenn das von der AL- Einheit 19 abgegebene Additionsergebnis einen Übertrag hat, wird er über den Übertragselektor (CSH) 25 in das Adressen­ ausgabepuffer AOBH eingegeben. Folglich führt die Adressen­ berechnungseinheit 16 eine Operation einschließlich des vor­ erwähnten Übertrags durch.
Andererseits wird bei einer Inkrementieroperation mit Hilfe der Programmzähler PBC, PCH und PCL die Adresse nur mit Hilfe der Adressenberechnungseinheit 16 erzeugt. Das heißt, die AL- Einheit 19 kann unabhängig von der Adressenberechnung eine andere Operation durchführen. Während dieser Operation wird der Übertrag von der AL-Einheit 19 vernachlässigt, und der Übertrag von der Adressenberechnungseinheit 16 wird über den Übertragselektor 25 weitergegeben.
Programmzähler PBC, PCH PCL
Die Programmzähler PBC, PCH und PCL sind aus einer 24 Bit- Programmzähler-Halteschaltung gebildet. Die Inkrementieropera­ tion in dieser Halteschaltung wird mit Hilfe der In-/Dekremen­ tierschaltungen INC/DEC : B, INC/DEC : H und INC/DEC : L durchge­ führt. Die Programmzähler PBC, PCH und PCL sind mit den internen Busen so, wie in Tabelle 3 dargestellt, verbunden.
Tabelle 3
Zwischenspeicher TR, ADH, ADL
Jedes der Zwischenregister TR, ADH und ADL ist durch ein 8 Bit-Register gebildet. Diese Zwischenregister können außer­ halb der Zentraleinheit (CPU) als nichtfunktionsfähig angese­ hen werden. Die Zwischenregister TR, ADH und ADL sind, wie in Tabelle 4 dargestellt, mit den internen Busen verbunden.
Tabelle 4
Datenbankregister DBR
Das in Fig. 3 dargestellte Datenbankregister DBR ist aus einer 8 Bit-Halteschaltung gebildet. Grundsätzlich ist die Bank­ adresse, welche verwendet wird, wenn auf Daten Zugriff er­ folgt, die Adresse in dem Datenbankregister DBR. Jedoch wird die Adresse in dem Datenbankregister DBR entsprechend dem Zu­ stand der Mode-Flags M1 und M0 in dem Prozessor-Zustandsregi­ ster PSR geändert. Das Datenbankregister (DBR) gibt Daten von dem internen Bus MB oder SB ein und gibt die Bankadresse an den internen Bus DB oder SB ab.
Dateneingabe-Halteschaltung (DIL) 15
Die in Fig. 3 dargestellte Dateneingabe-Halteschaltung 15 ist aus einer 8 Bit-Halteschaltung gebildet. Daten D7 bis D0 von einer externen Einrichtung werden in die Dateneingabe- Halteschaltung 15 eingegeben, welche einen Befehlscode an den Steuerteil 1 abgibt und welche Daten an die internen Buse DB, MB und SB des Operationsteils 2 abgibt.
Datenausgabe-Halteschaltung (DOL) 34
Die Datenausgabe-Halteschaltung 34 ist aus einer 8 Bit-Halte­ schaltung gebildet. Daten, welche an eine externe Einrichtung abzugeben sind, werden in die Halteschaltung 34 eingegeben, welche Daten von dem internen Adressenbus DB oder MB erhält, welcher Daten D7 bis D0 abgibt.
Nunmehr werden die Funktionen des Steuerteils 1 der Zentral­ einheit (CPU) beschrieben.
Befehlsvordecodierer 33
Der Befehlsvordecodierer 33 hat die folgenden drei Funktions­ teile. Die erste Funktion ist folgende: Wenn der Decodiervor­ gang eines Befehls in der PL-Anordnung hinsichtlich der Operationszeit nicht in der Zeit liegt, decodiert der Vorde­ codierer 33 den Befehl vor und erzeugt das entsprechende Steuersignal. Insbesondere enthält die erste Funktion die Prozeduren, Feststellen eines Einzyklus-Befehls, Steuern der Erzeugung eines externen Steuersignals und Steuern der Zeit­ steuereinheit 7. Die zweite Funktion des Vordecodierers 32 unterstützt die Decodieroperation, um die Größe der PLA zu minimieren. Insbesondere enthält die zweite Funktion die Pro­ zeduren, Feststellen des Kurzbefehls und der durch den Befehl behandelten Datengröße. Die dritte Funktion besteht darin, einen unbestimmten Befehl und einen Software-Unterbrechungs­ befehl festzustellen.
Taktgenerator 22
Der in Fig. 3 dargestellte Taktgenerator 22 erzeugt interne Takte, die in der Zentraleinheit verwendet worden sind, und externe Takte, welche in einer externen Einrichtung verwendet worden sind. Beispiele der Taktsignale sind ein Prozessor­ stopp-Eingabesignal WAIT, ein Buszyklus-Änderungseingabesig­ nal LSP, ein CPU-Takteingabesignal CLK und System-(Synchroni­ sier-)Taktausgabesignale S1 und S2.
Systemsteuereinheit 23
Die Systemsteuereinheit 23 erzeugt eine Anzahl Signale, welche den Betriebszustand der Zentraleinheit (CPU) anzeigen. Ein Signal BSVT (Vektor-Tabellenadresse) zeigt einen Zustand an, in welchem eine Vektoradresse abzugeben ist. Ein Signal BSDA (Datenadresse) zeigt einen Zustand an, in welchem auf Daten zuzugreifen ist. Ein Signal BSPA (Programmadresse) zeigt ei­ nen Zustand an, in welchem auf ein Programm zuzugreifen ist. Ein Signal BSOF (Operationscode-Abrufen) zeigt einen Zustand an, in welchem ein externer Speicher zu sperren ist. Signale RB (Lesebalken) und WB (Schreibbalken) zeigen eine Datenbus- Transferanforderung für ein Datenlesen bzw. für ein Daten­ schreiben an. Ein Signal RWB zeigt an, ob der laufende Zyklus der Datenlese- oder der Datenschreibzyklus ist.
Die Unterbrechungssteuereinheit 21 führt die folgenden Steu­ erungen der Zentraleinheit (CPU) durch. Eine Unterbrechung RES ist eine Rücksetz-Unterbrechungseingabe. Eine Unterbre­ chung NPMI ist eine nicht-maskierbare Unterbrechungseingabe. Eine Unterbrechung IRQ ist eine Unterbrechungseingabe. Un­ terbrechungsauswähleingaben ISEO-3 sind Unterbrechungs­ (IRQ-)Auswähleingaben. Eine Unterbrechung WAKE ist eine Ein­ gabe zum Freikommen von einem Prozessorstopp-Befehl.
Die Zeitsteuereinheit (TCU) 7 steuert eine Betriebsfolge der Befehlsausführung. Das Ausführungs-Steuerinterface (ECI) 11 erhält das Ergebnis des Decodierens von der PLA und erzeugt die zeitliche-ausgerichteten Steuersignale 14. Der Operations- Codepuffer 4 und das Vorbyte-Befehlsregister 3 werden zum Speichern von Befehlen verwendet.
In Fig. 4 ist die Struktur der in der vorerwähnten Zentral­ einheit (CPU) vorgesehenen programmierbaren Logik-Anordnung (PLA) dargestellt. In Fig. 4 sind diejenigen Teile, welche die­ selben wie die in Fig. 3 dargestellten Teile sind, mit den­ selben Bezugszeichen bezeichnet. Der Ausgang der Dateneingabe­ halteschaltung 15, welche mit Daten von einer externen Ein­ richtung versorgt worden ist, ist mit dem Befehlsvordecodie­ rer 33 und dem Operationsbefehlsregister 4 verbunden. Die Ausgänge des Vordecodierers 33 und des Befehlsregisters 4 sind mit dem Vorbyte-Befehlsregister 3 und dem Operationscode- Befehlspuffer 51 verbunden.
Die ganze UND-Ebene ist in die UND-Ebene 8 und die UND-Ebene 10 aufgeteilt. Das Vorbyte-Befehlsregister 3, das Bezug zu dem Adressiermode hat, ist mit der UND-Ebene 8 und das Opera­ tionscode-Befehlsregister 51 ist mit der UND-Ebene 10 ver­ bunden. Der Ausgang der Zeitsteuereinheit 7 ist mit den UND- Ebenen 8 und 10 verbunden. Die Ausgänge der UND-Ebenen 8 und 10 sind mit den als Einheit ausgebildeten ODER-Ebenen 9 und 11 verbunden. Obwohl die ODER-Ebene in Fig. 3 so dargestellt ist, daß sie in die ODER-Ebenen 9 und 11 aufgeteilt ist, sind die ODER-Ebenen 9 und 11 wechselweise miteinander verbunden. Nachstehend werden daher die ODER-Ebenen 9 und 11 insgesamt als eine ODER-Ebene 50 bezeichnet. Folglich sind die zwei aufgeteilten UND-Ebenen 8 und 10 mit der ODER-Ebene 50 ver­ bunden. Die UND-Ebenen 8 und 10 und die ODER-Ebene 50 sind so, wie in Fig. 5 dargestellt, konfiguriert.
Die UND-Ebenen 8 und 10 haben P-Kanal-MOS-Transistoren 101 (die nachstehend als PMOS-Transistoren bezeichnet sind). Die Sourcen der PMOS-Transistoren 101 sind mit einer Versorgungs­ leitung 100 verbunden. Die Drainelektrode jedes PMOS-Tran­ sistors 101 ist für ein Maximum von n(n ist eine ganze Zahl) N-Kanal-MOS-(NMOS-)Transistoren 102 vorgesehen, welche in Reihe geschaltet sind, so daß die Source- und Drainelektrode der benachbarten NMOS-Transistoren 102 miteinander verbunden sind. Der NMOS-Transistor 102 der ersten Stufe ist mit der Drainelektrode des entsprechenden PMOS-Transistors 101 ver­ bunden, und die Source des NMOS-Transistors 102n ist geerdet. Ausgangsleitungen 103 gehen in paralleler Form von den UND- Ebenen bzw. -Bereichen 8 und 10 aus. Eine Ausgangsleitung 103 geht von der Drainelektrode eines PMOS-Transistors 101 weg. Die Gate-Elektrode der PMOS-Transistoren 101, welche in jeder der UND-Ebenen 8 und 10 vorgesehen sind, sind mit einer Vor­ lade-Leitung verbunden. Wenn ein niedrigpegeliges Vorladesig­ nal PRC an die PMOS-Transistoren 101 angelegt wird, werden diese (101) angeschaltet, so daß die Ausgangsleitungen 103 vorgeladen sind. Dagegen wird, nur wenn die Gates aller NMOS- Transistoren 102 einschließlich des in Reihe geschalteten Transistors 102n mit auf niedrigem Pegel liegenden Signalen PRC versorgt werden, die entsprechende Ausgangsleitung 103 geer­ det und auf den niedrigen Pegel gesetzt. Signale I1, I2,... In, welche von dem Vorbyte-Befehlsregister 3 abgegeben worden sind, werden an die Gates der entsprechenden NMOS-Transisto­ ren 102 der UND-Ebene 8 angelegt. Ebenso werden Signale I1′, I2′,... In′, welche von dem Operationscode-Befehlspuffer 31 erzeugt und abgegeben worden sind, an die Gates der entspre­ chenden NMOS-Transistoren 102 der UND-Ebene 10 angelegt.
In jeder Ausgangsleitungen 103 ist eine Schaltung aus einem PMOS-Transistor 110 und einem Inverter 104 vorgesehen. Die Drainelektrode jedes PMOS-Transistors 110 ist mit der Drain­ elektrode des entsprechenden PMOS-Transistors 101 und einem Eingangsanschluß des Inverters 104 verbunden. Die Gate-Elek­ trode jedes PMOS-Transistors 110 ist mit einem Ausgangsan­ schluß des Inverters 104 verbunden, und die Source-Elektrode jedes PMOS-Transistors 110 ist mit einer Energieversorgungs­ leitung 100 verbunden. Ferner ist die Drainelektrode jedes PMOS-Transistors 101 über den entsprechenden Inverter 104 mit dem Gate oder den Gates eines oder mehrerer NMOS-Tran­ sistoren 105 verbunden.
Die ODER-Ebene 50 weist eine Anzahl NMOS-Transistoren 105 auf, welche für jede der Ausgangsleitungen 103 vorgesehen sind. Die Drains der NMOS-Transistoren 105, die für jede der Ausgangsleitungen 103 vorgesehen sind, sind geerdet, und deren Sources sind mit in paralleler Form angeordneten n- Ausgangsleitungen 106 verbunden. Die Anzahl an NMOS-Transi­ storen 105, welche für die jeweiligen Ausgangsleitungen 106 vorgesehen sind, ist unterschiedlich. Ausgangssignale über die Ausgangsleitungen 106 laufen über Inverter 107 und wer­ den an eine nachfolgende Schaltung oder Vorrichtung abgege­ ben. Wenn folglich in der ODER-Ebene 50 einer der NMOS-Tran­ sistoren 105, welche mit den Ausgangsleitungen 106 verbunden sind, durch das von der UND-Ebene 8 oder 10 gelieferte Sig­ nal eingeschaltet wird, wird die entsprechende Ausgangslei­ tung 106 auf den niedrigen Pegel geschaltet, welcher durch Inverter 107 invertiert wird, so daß ein Signal mit hohem Pegel abgegeben wird.
Nunmehr wird die Arbeitsweise der in Fig. 5 dargestellten programmieren Logik-Anordnung (PLA) beschrieben. Wenn der Befehl, welcher von der Dateneingabe-Halteschaltung 15 ab­ gegeben worden ist, das Format hat, welches keine Vorbyte- Daten aufweist, wie in Fig. 2A dargestellt ist, läuft der Be­ fehl durch den Operationscode-Befehlspuffer 51 hindurch und wird in die UND-Ebene 10 eingegeben. Ein entsprechendes Steu­ ersignal wird infolge des Zusammenwirkens der UND-Ebene 10 und der ODER-Ebene 50 von dem Befehl erzeugt.
Wenn dagegen der Befehl, welcher von der Dateneingabe-Halte­ schaltung 15 abgegeben worden ist, das Format hat, welches die Vorbyte-Daten aufweist, wie in Fig. 2B oder 2C dargestellt ist, läuft dieser Befehl über das Vorbyte-Befehlsregister 3 und wird der UND-Ebene 8 zugeführt. Dann wird ein entspre­ chendes Steuersignal infolge des Zusammenwirkens der UND- Ebene 8 und der ODER-Ebene 50 von dem Befehl aus erzeugt.
Die Anordnung, in welcher die Ausgänge der UND-Ebenen 8 und 10 gemeinsam mit der ODER-Ebene 50 verbunden sind, wird ver­ wendet, um nicht nur die Adressenrecheneinheit 16, sondern auch die AL-Einheit 19 sowie die Register zu benutzen, wenn die Adressieroperation durchgeführt wird, und um nicht nur die AL-Einheit 19, sondern auch Daten in den Registern zu be­ nutzen. Daher wird die ODER-Ebene 50 gemeinsam für die Be­ fehle, die Vorbyte-Daten haben, und für Befehle verwendet, die keine Vorbyte-Daten haben.
Bekanntlich ist die programmierbare Logik-Anordnung (PLA) aus der zweistufigen Logikschaltung gebildet, und folglich arbeitet die PL-Anordnung mit einer hohen Geschwindigkeit. Da ferner die einzige Zeitsteuereinheit 7 verwendet wird, kann als eine einzige kontinuierliche Folge die Adressier­ operation mit Hilfe der UND-Ebene 8 und die Befehlsoperation mit Hilfe der UND-Ebene 10 gesteuert werden. Im Vergleich mit dem eingangs erwähnten logischen Faltungsprozeß wird das Laden der ganzen UND-Ebene nicht sehr geändert, so daß die Opera­ tionsgeschwindigkeit der PLA mit einer beständigen Geschwin­ digkeit arbeiten kann. Da ferner die PLA im Hinblick auf ihre Funktionen an zwei Gruppen aufgeteilt ist, kann der logische Faltungsprozeß leicht durchgeführt werden und die Anzahl Sig­ nale, die in jede UND-Ebene eingegeben worden ist, kann ver­ ringert werden. Dies bedeutet, daß jede der UND-Ebenen 8 und 10 durch eine reduzierte Anzahl von NMOS-Transistoren 102 konfiguriert ist. Folglich kann die Größe in einer in Fig. 5 angezeigten Richtung y verringert werden. Da die Funktionen der UND-Ebene in Gruppen aufgeteilt sind, kann eine einfache Befehlsarchitektur verwendet werden. Insbesondere kann die Arbeitsweise und Logik leicht modifiziert werden. Da ferner die Befehlsdecoder für das Adressieren bzw. den Operations­ code vorgesehen sind, kann das Adressieren und der Operations­ code beliebig kombiniert werden, so daß eine im wesentlichen orthogonale Beziehung zwischen dem Adressieren und dem Opera­ tionscode erhalten werden kann.
Der Sprungbefehl wird folgendermaßen verarbeitet. In Fig. 6 ist ein Teil der in Fig. 3 dargestellten Stuktur wiedergegeben, welche den Sprungbefehl verarbeitet. In Fig. 6 sind diejenigen Teile, welche denselben Teilen in Fig. 3 entsprechen, mit den­ selben Bezugszeichen bezeichnet. Der aus 8 Bit bestehende Sprungbefehl wird über die Dateneingabe-Halteschaltung 15 in den Befehlsvordecodierer 33 eingegeben. Der Ausgang des Be­ fehlsvordecodierers 33 ist mit der Sprungfeststellschaltung (BRDT) 18 verbunden, welche ein Signal erzeugt, das anzeigt, ob der Sprungprozeß bezüglich des Inhaltes des Prozessorzu­ standsregisters 30, durchgeführt werden sollte oder nicht, wenn der Sprungbefehl erzeugt wird. Der Ausgang der Sprung­ feststellschaltung 18 ist über den Befehlspuffer 51 mit der UND-Ebene 10 verbunden. Der Ausgangs der UND-Ebene ist mit ODER-Ebene 11 verbunden, und die PL-Anordnung, welche Bezug zu dem Sprungbefehl hat, ist durch die UND-Ebene 10 und die ODER-Ebene 11 konfiguriert.
Der Sprungbefehl wird folgendermaßen verarbeitet. Der in die Dateneingabe-Halteschaltung 15 eingegebene Sprungbefehl be­ steht aus 8 Bits, wie in Fig. 7 dargestellt ist. Vier höher­ wertige Bits des 8 Bit-Sprungbefehls sind alle null, und dessen vier niederwertige Bits zeigen eine Sprungbedingung (CCT) an. Der Sprungbefehl wird durch den Befehlsvordecodie­ rer 33 decodiert und dann an die Sprungfeststellschaltung 18 angelegt.
Die Sprungbedingung, welche durch die vier niederwertigen Bits gebildet ist, welche in Fig. 8 mit B3 bis B0 bezeichnet sind, wird mit Hilfe der Zustandsflagdaten C, Z, N und V de­ codiert, welche in dem Prozessor-Zustandsregister 30 ge­ speichert sind, um zu bestimmen, ob der Sprungprozeß durch­ geführt werden sollte oder nicht. Die Sprungfeststellschal­ tung 18 gibt ein Signal mit hohem Pegel ab, wenn der Sprung­ prozeß durchgeführt werden sollte, und gibt ein Signal mit einem niedrigen Pegel ab, wenn der Sprungprozeß nicht er­ forderlich ist.
Die Bits B3 bis B0 der Sprungbedingung CCT werden in Ein­ gabeleitungen 150 bis 153 eingegeben. Die Sprungbedingungs­ (CCT-) Daten (Bits B3 bis B0) legen 16 verschiedene in Ta­ belle 5 dargestellte Bedingungen fest. Hierbei sind C ein Übertragflag-Datenwert, Z ein Nullflag-Datenwert, N ein ne­ gativer Flag-Datenwert und V ein Überlaufflag-Datenwert.
Tabelle 5
Wie in Fig. 8 dargestellt, setzt sich die Sprungfeststell­ schaltung 18 aus Invertern 161, Transfergliedern 162, NOR- Gliedern 163, einem UND-Glied 164 und NAND-Gliedern 165 zu­ sammen. Die Daten über den Zustand C werden in das entspre­ chende, durch das Bit B0 gesteuerte Transferglied 161 über eine Leitung 154 und den Inverter 161 eingegeben. Die Daten über den Zustand Z werden an das entsprechende, durch das Bit B0 gesteuerte Transferglied 162 über eine Leitung 155 und den Inverter 161 eingegeben. Die Daten über den Zustand N werden an das entsprechende, durch das Bit B0 gesteuerte Transfer­ glied 162 über eine Leitung 156 und den Inverter 161 einge­ geben. Die Daten über den Zustand V werden an das entsprechen­ de, durch das Bit B0 gesteuerte Transferglied 162 über eine Leitung 157 und den Inverter 161 eingegeben. Die Daten über C, Z, N bzw. V passieren die von dem Bit B1 gesteuerten Transferglieder 162. Die Daten über C und Z passieren das von dem Bit B2 gesteuerte Transferglied 162 und die Daten über N und V passieren das durch das Bit B2 gesteuerte Trans­ ferglied 162. Die Ausgangssignale dieser zwei Transferglie­ der 162 passieren den Inverter und werden in zwei Wege ver­ zweigt, welche jeweils durch die von dem Bit B3 gesteuerten Transferglieder 162 gesteuert werden. Die Ausgangssignale dieser zwei Transferglieder 162 passieren den Inverter 162 und werden dann als das Sprungsignal BRF abgegeben. Das von der Schaltung 18 abgegebene Sprungsignal BRF wird über das Befehlsregister 51 in die UND-Ebene 10 eingegeben. Die PL- Anordnung steuert den Sprungbefehl durch das Sprungsignal BRF und andere Eingangsdaten, wie den Operationscode.
Wie vorstehend beschrieben, wird durch Eingeben der Sprungbe­ dingungsdaten in die UND-Ebene 10 die Sprungoperation ent­ sprechend dem Sprungbefehl durchgeführt. Beispielsweise hat der Sprungbefehl die folgenden drei Adressierprozeduren, um die Adresse anzuzeigen, an welcher die Prozedur verzweigt werden sollte.
In dem ersten Adressiermode bezüglich des Sprung- bzw. Ver­ zweigungsbefehls werden 8 Bit-Daten zu der Adresse eines Be­ fehls addiert, welcher dem Sprung- oder Verzweigungsbefehl am nächsten ist. Das heißt, eine Adresse wird in eine der Adressen in dem Bereich von -128 bis +127 verzweigt. Der vorerwähnte erste Adressiermode wird insbesondere ein rela­ tiver Adressiermode genannt.
Bei dem zweiten Adressiermode bezüglich des Sprung- oder Verzweigungsbefehls werden 16 Bit-Daten zu der Adresse eines Befehls addiert, welcher dem Sprung- oder Verzweigungsbefehl am nächsten ist. Der zweite Adressiermode wird insbesondere ein relativ langer Adressiermode genannt. Bei dem dritten Adressiermode bezüglich des Sprung- oder Verzweigungsbefehls sind die in den Registern W0 bis W3 gespeicherten Daten die Adresse, an welcher die Prozedur verzweigt werden soll. Der dritte Adressiermode wird insbesondere als ein indirekter Register-Adressiermode bezeichnet.
Beispielsweise ist die Arbeitsweise bei dem relativen Adres­ siermode folgende: Die Arbeitsweise, welche einen Sprung bzw. eine Verzweigung hervorruft, ist folgende. Zuerst wird der Operationscode durch eine Adresse A abgerufen, zweitens werden 8 Bit-Verschiebungsdaten (DISPL), welche der Adresse der Sprung- oder Verzweigungsbestimmung entsprechen, durch eine Adresse (A + 1) abgerufen. Drittens werden die abgeru­ fenen Daten zu einer Adresse (A + 2) addiert, und die Durch­ führung des Befehls ist beendet. Viertens wird der Opera­ tionscode in der Sprung- oder Verzweigungsbestimmung durch eine Adresse (A + 2 + DISPL) abgerufen. Andererseits ist die Operation, bei welcher kein Sprung erzeugt wird, folgende: Zuerst wird der Operationscode durch eine Adresse A abgerufen. Zweitens endet die Durchführung des Befehls bei einer Adresse (A + 1). Ein nächster Operationscode wird bei einer Adresse (A + 2) abgerufen.
Nunmehr wird die Operation bei dem verhältnismäßig langen Adressiermode beschrieben. Die Operation, welche einen Sprung oder Verzweigung erzeugt, ist folgende. Zuerst werden die Vor­ byte-Daten an einer Adresse A abgerufen. Zweitens wird der Operationscode an einer Adresse (A + 1) abgerufen. Drittens die 8 niedrigerwertigen Bits (DISPL) der 16 Bit-Verschie­ bungsdaten (welche der Adresse der Sprung- bzw. Verzweigungs­ bestimmung entsprechen) werden an einer Adresse (A + 2) ab­ gerufen. Viertens die 8 höherwertigen Bit (DISPH) der 16 Bit-Verschiebungsdaten (welche der Adresse der Sprung- bzw. Verzweigungsbestimmung entsprechen) werden an einer Adresse (A + 3) abgerufen. Fünftens werden die abgerufenen Daten zu der Adresse (A + 4) addiert, und die Durchführung des Be­ fehls ist beendet. Sechstens wird der Operationscode, welcher an der Sprung- bzw. Verzweigungsbestimmung erhalten worden ist, an einer Adresse (A + 4 + DISP) abgerufen.
Dagegen ist die Arbeitsweise, welche zu keinem Sprung bzw. keiner Verzweigung führt, folgende: Zuerst werden die Vorbyte- Daten an einer Adresse A abgerufen. Zweitens wird der Opera­ tionscode an einer Adresse (A + 1) abgerufen. Drittens wer­ den die abgerufenen Daten an einer Adresse (A + 2) addiert, und der Befehl endet. Viertens wird die nächste Operation an einer Adresse (A + 4) abgerufen.
Die Arbeitsweise bei dem indirekten Register-Adressiermode wird nunmehr beschrieben. Die Arbeitsweise, welche einen Sprung bzw. eine Abzweigung erzeugt, ist folgende. Zuerst werden die Vorbyte-Daten an einer Adresse A abgerufen. Zwei­ tens wird der Operationscode an einer Adresse (A + 1) abge­ rufen. In dem Register gespeicherte Daten werden als die Adresse des Programmzählers geladen, und die Durchführung des Befehls ist beendet. Der Operationscode, welcher bei der Sprung- bzw. Verzweigungsbestimmung erhalten worden ist, wird an der Adresse (Registerwert) abgerufen. Andererseits ist die Arbeitsweise, welche zu keinem Sprung bzw. keiner Verzweigung führt, folgende. Erstens wird das Vorbyte an einer Adresse A abgerufen. Zweitens wird der Operationscode an einer Adres­ se (A + 1) abgerufen. Der Befehl endet bei einer Adresse (A + 2). Die Adresse wird nicht inkrementiert. An einer Adresse (A + 2) wird der nächste Operationscode abgerufen.
Wie oben bereits beschrieben ist, unterscheiden sich die Operationen in den verschiedenen Adressiermodes voneinander. Bekanntlich haben die herkömmlichen Zentraleinheiten nur einen der vorerwähnten drei Adressiermodes. Gemäß der be­ vorzugten Ausführungsform der Erfindung wird dagegen das Signal, welches anzeigt, ob der Sprung bzw. die Verzweigung gemacht werden sollte, in die UND-Ebene 10 eingegeben. Folg­ lich kann eine gewünschte Operation durchgeführt werden während einer der drei Adressiermodes gewählt wird.
Die Ausgangsleitung von der Sprungfeststellschaltung 18 in die UND-Ebene 10 der PL-Anordnung ist als eine Ein-Bit-Lei­ tung ausgebildet, da das Signal, welches über die Ausgangs­ leitung übertragen worden ist, anzeigt, ob der Sprung bzw. die Verzweigung gemacht werden sollte oder nicht, und ist folglich aus einem Ein-Bit-Datenwert gebildet. Außerdem wird das Ausgangssignal der Sprungfeststellschaltung 18 der UND- Ebene 10 über den Befehlspuffer 51 in derselben Weise wie andere Daten zugeführt. Folglich kann die PLA-Konfiguration getrennt von anderen Schaltungsteilen durch ein einfaches Steuerprogramm gebildet werden.
In Fig. 9 ist ein System mit einer Zentraleinheit gemäß der vorerwähnten Ausführungsform der Erfindung dargestellt. Das in Fig. 9 dargestellte System setzt sich zusammen aus einer Zentraleinheit (CPU) 100, einem Festwertspeicher (ROM) 200 und einem Random-Speicher (RAM) 300. Diese Einrichtungen sind wechselweise über einen Adressenbus 400, einen Datenbus 410 und einen Steuerbus 420 miteinander verbunden. Ein Taktsignal CLK und ein Rücksetzsignal RES werden von einer (nicht dar­ gestellten) externen Einrichtung an die Zentraleinheit 100 abgegeben. Die in Fig. 13 dargestellten Halteschaltungen 15 und 34 sind mit dem Datenbus 410 verbunden.

Claims (21)

1. Programmierbare Logik-Anordnung, welche eine Anzahl UND- Ebenen (8, 10) aufweist, die jeweils eine logische UND-Opera­ tion ausführen und Eingangs- sowie Ausgangsanschlüsse haben, gekennzeichnet durch eine einzige ODER-Ebene (9, 11, 50), welche für die Anzahl UND-Ebenen (8, 10) gemeinsam vorgesehen ist und eine logische ODER-Operation ausführt, wobei die einzige ODER-Ebene Eingangsanschlüsse, welche mit den Ausgangsanschlüssen der Anzahl UND-Ebenen verbunden sind, und Ausgangsanschlüsse aufweist.
2. Programmierbare Logik-Anordnung nach Anspruch 1, ge­ kennzeichnet durch eine Informations-Verteilungs­ einrichtung (33, 4), welche mit der Anzahl UND-Ebenen (8, 10) verbunden ist, um Information aufzunehmen, welche von einer externen Einrichtung geliefert wird, und um die Information an die Anzahl UND-Ebenen (8, 10) über deren Eingangsanschlüsse auf der Basis einer vorherbestimmten Bedingung über die Infor­ mation zu verteilen.
3. Programmierbare Logik-Anordnung nach Anspruch 1, ge­ kennzeichnet durch eine Zeitsteuereinrichtung (7), welche mit der Anzahl UND-Ebenen (8, 10) verbunden ist, um ein Zeitsteuersignal zu erzeugen und um zu bewirken, daß die Anzahl UND-Ebenen die Information synchron mit dem Zeit­ steuersignal erhalten.
4. Programmierbare Logik-Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß die Information eine erste Information (Fig. 2A) und eine zweite Information (Fig. 2B und 2C) aufweist;
die Anzahl UND-Ebenen eine erste UND-Ebene (8) und eine zweite UND-Ebene (10) hat, und
die Informationsverteilungseinrichtung Einrichtungen (33, 4) aufweist, um zu bestimmen, ob die Information die erste oder die zweite Information hat, und um die Information auf eine der ersten und zweiten UND-Ebenen auf der Basis eines Be­ stimmungsergebnisses zu verteilen, welches anzeigt, ob die erste oder die zweite Information in der Information enthal­ ten ist.
5. Programmierbare Logik-Anordnung nach Anspruch 1, ge­ kennzeichnet durch einen Vordecodierer (33), welcher zumindest mit einer der Anzahl UND-Ebenen verbunden ist, um die Information zu decodieren und um decodierte In­ formation an zumindest eine der Anzahl UND-Ebenen abzuge­ ben.
6. Programmierbare Logik-Anordnung nach Anspruch 5, dadurch gekennzeichnet, daß
die Information Vorbyte-Daten enthält, welche decodiert wer­ den sollten, bevor die Information auf die Anzahl UND-Ebenen verteilt wird, und
der Vordecodierer (33) Einrichtungen zum Vordecodieren der Vorbyte-Daten und zum Abgeben vordecodierter Vorbyte-Daten an zumindest eine der Anzahl UND-Ebenen aufweist.
7. Programmierbare Logik-Anordnung nach Anspruch 6, ge­ kennzeichnet durch ein Register (3), um vor­ übergehend die vordecodierten Vorbyte-Daten zu speichern, welche von der Einrichtung des Vordecodierers geliefert wor­ den sind, und um die vordecodierten Vorbyte-Daten an zumin­ dest eine der Anzahl UND-Ebenen abzugeben.
8. Programmierbare Logik-Anordnung nach Anspruch 1, ge­ kennzeichnet durch eine Decodiereinrichtung (33), um die Information zu decodieren und um decodierte Informa­ tion abzugeben, welche an die Anzahl UND-Ebenen zu liefern ist, wobei jede der Anzahl UND-Ebenen aufweist:
eine Anzahl P-Kanal-MOS- (Metalloxid-Halbleiter) Transistoren (101), die jeweils eine Gate-Elektrode, die ein Steuersignal von einer externen Einrichtung erhält, einen ersten An­ schluß, welcher mit einer ersten Energiequelle verbunden ist, und einen zweiten Anschluß haben;
eine Anzahl in Reihe geschalteter Schaltungen (102, 102n) , die jeweils eine Anzahl N-Kanal-MOS-Transistoren haben, wel­ che in Reihe zwischen den zweiten Anschluß eines entspre­ chenden P-Kanal-MOS-Transistors und eine zweite Energie­ quelle geschaltet sind, und
UND-Ausgangsleitungen (103), die jeweils mit der Gate-Elek­ trode eines entsprechenden der P-Kanal-MOS-Transistoren ver­ bunden sind, wobei die Anzahl UND-Ebenen über die UND-Aus­ gangsleitungen mit der einzigen ODER-Ebene verbunden ist.
9. Programmierbare Logik-Anordnung nach Anspruch 8, dadurch gekennzeichnet, daß die einzige ODER-Ebene (50) aufweist:
eine Anzahl ODER-Ausgangsleitungen (106) und
eine Anzahl Gruppen von N-Kanal-MOS-Transistoren (105), wobei jede der Gruppen eine Anzahl N-MOS-Transistoren hat, jeder der N-MOS-Tranistoren eine mit einer entsprechenden Ausgangs­ leitung verbundene Gate-Elektrode, einen ersten Anschluß, wel­ cher mit einer entsprechenden ODER-Ausgangsleitung verbunden ist, und einen zweiten Anschluß hat, welcher mit der zweiten Energiequelle verbunden ist.
10. Programmierbare Logik-Anordnung nach Anspruch 9, dadurch gekennzeichnet, daß die UND-Ausgangsleitungen (103) eine UND-Ausgangsleitung aufweisen, welche zumindest mit zwei N-Kanal-MOS-Transistoren unter den N-Kanal-MOS- Transistoren der ODER-Ebene verbunden ist.
11. Datenverarbeitungseinrichtung mit
einer PLA-(programmierbaren Logik-Anordnungs-)Schaltung (1) welche Information erhält, welche von einer externen Einrich­ tung geliefert wird und welche ein decodiertes Signal abgibt;
einer Interface-Einrichtung (14), welche mit der PLA-Schal­ tung verbunden ist, um ein Steuersignal von dem decodierten Signal zu erzeugen, und
einer Operationseinrichtung (2), welche mit der Interface-Ein­ richtung verbunden und eine arithmetische Logik-Einheit hat, um eine Operation an Daten auf der Basis des Steuersignals durchzuführen,
dadurch gekennzeichnet, daß die PLA-Schaltung aufweist:
eine Anzahl UND-Ebenen, die jeweils eine logische UND-Opera­ tion an der Information durchführen und Eingangs- und Aus­ gangsanschlüsse haben und
eine einzige ODER-Ebene, welche für die Anzahl UND-Ebenen gemeinsam vorgesehen ist und eine logische ODER-Operation an Signalen ausführt, welche von den UND-Ebenen aus abge­ geben worden sind, wobei die einzige ODER-Ebene Eingangsan­ schlüsse, welche mit den Ausgangsanschlüssen der Anzahl UND-Ebenen verbunden sind, und Ausgangsanschlüsse hat, über welche decodierte Signale abgegeben werden.
12. Datenverarbeitungseinrichtung nach Anspruch 11, gekenn­ zeichnet durch eine Informations-Verteilungseinrich­ tung, welche mit der Anzahl UND-Ebenen verbunden ist, um die Information aufzunehmen, welche von der externen Ein­ richtung geliefert worden ist, und um die Information an die Anzahl UND-Ebenen über deren Eingangsanschlüsse auf der Basis einer vorherbestimmten Bedingung über diese Informa­ tion zu verteilen.
13. Datenverarbeitungseinrichtung nach Anspruch 11, dadurch gekennzeichnet, daß
die Information eine erste Information, welche sich auf eine Adresse eines Speicherbereichs einer Speichereinrichtung be­ zieht, welche mit der Datenverarbeitungseinheit verbunden ist, und eine zweite Information aufweist, welche sich auf eine Operation an Daten bezieht, und
die Informations-Verteilungseinrichtung eine Einrichtung auf­ weist, um zu bestimmen, ob die Information die erste oder die zweite Information hat, und um die Information auf eine der ersten und zweiten UND-Ebenen auf der Basis eines Bestimmungs­ ergebnisses zu verteilen, welches anzeigt, ob die erste oder die zweite Information in der Information enthalten ist.
14. Datenverarbeitungseinrichtung nach Anspruch 11, dadurch gekennzeichnet durch eine Zeitsteuereinrichtung, welche mit der Anzahl UND-Ebenen verbunden ist, um ein Zeit­ steuersignal zu erzeugen und um zu bewirken, daß die Anzahl UND-Ebenen die Information synchron mit dem Zeitsteuersignal empfangen.
15. Datenverarbeitungseinrichtung nach Anspruch 11, ge­ kennzeichnet durch einen Vordecodierer, welcher zumindest mit einer der Anzahl UND-Ebenen verbunden ist, um die Information zu decodieren und decodierte Information an zumindest eine der Anzahl UND-Ebenen abzugeben.
16. Datenverarbeitungseinrichtung nach Anspruch 15, dadurch gekennzeichnet, daß
die Information Vorbyte-Daten enthält, welche decodiert sein sollten, bevor die Information an die Anzahl UND-Ebenen verteilt wird, und
der Vordecodierer eine Einrichtung aufweist, um die Vorbyte- Daten vorzudecodieren und um vordecodierte Vorbyte-Daten an zumindest eine der Anzahl UND-Ebenen abzugeben.
17. Datenverarbeitungseinrichtung nach Anspruch 16, gekenn­ zeichnet durch eine Registeranordnung, um vorüberge­ hend die vordecodierten Vorbyte-Daten zu speichern, welche von der Einrichtung des Vordecodierers geliefert worden sind, und um die vordecodierten Vorbyte-Daten an zumindest eine der Anzahl UND-Ebenen abzugeben.
18. Datenverarbeitungseinrichtung nach Anspruch 11, gekenn­ zeichnet durch eine Decodiereinrichtung zum Decodie­ ren der Information und zum Abgeben von decodierter Informa­ tion, welche an eine der Anzahl UND-Ebenen zu liefern ist, wobei jede der Anzahl UND-Ebenen aufweist:
eine Anzahl P-Kanal-MOS-(Metalloxid-Halbleiter-)Transistoren,
die jeweils eine Gate-Elektrode, welche ein Steuersignal von der externen Einrichtung erhält, einen ersten Anschluß, wel­ cher mit einer ersten Energiequelle verbunden ist, und einen zweiten Anschluß hat;
eine Anzahl in Reihe geschalteter Schaltungen, die jeweils eine Anzahl N-Kanal-MOS-Transistoren haben, die in Reihe zwi­ schen den zweiten Anschluß eines entsprechenden der P-Kanal- MOS-Transistoren und eine zweite Energiequelle geschaltet sind, und
UND-Ausgangsleitungen, welche jeweils mit der Gate-Elektrode eines entsprechenden der P-Kanal-MOS-Transistoren verbunden sind, wobei die Anzahl UND-Ebenen mit der einzigen ODER- Ebene über die UND-Ausgangsleitungen verbunden ist.
19. Datenverarbeitungseinrichtung nach Anspruch 18, dadurch gekennzeichnet, daß die einzige ODER-Ebene auf­ weist:
eine Anzahl ODER-Ausgangsleitungen und
eine Anzahl Gruppen von N-Kanal-MOS-Transistoren, wobei jede der Gruppen eine Anzahl N-MOS-Transistoren hat, jeder der N- MOS-Transistoren eine Gate-Elektrode, welche mit einer ent­ sprechenden der Ausgangsleitungen verbunden ist, einen ersten Anschluß, welcher mit einer entsprechenden der ODER-Ausgangs­ leitungen verbunden ist, und einen zweiten Anschluß hat, wel­ cher mit der zweiten Energiequelle verbunden ist.
20. Datenverarbeitungseinrichtung nach Anspruch 19, dadurch gekennzeichnet, daß die UND-Ausgangsleitungen eine UND-Ausgangsleitung aufweisen, welche mit zumindest zwei N-Kanal-MOS-Transistoren unter den N-Kanal-MOS-Transistoren der ODER-Ebene verbunden ist.
21. Datenverarbeitungseinrichtung nach Anspruch 11, dadurch ge­ kennzeichnet, daß die Information eine Sprung- oder Verzweigungsinformation aufweist, welche eine Änderung einer Prozedur der von der Operationseinrichtung durchge­ führten Operation anzeigt, und daß die Datenverarbeitungs­ einheit aufweist:
einen Vordecodierer zum Vordecodieren der Information, bevor die Information in die Anzahl UND-Ebenen eingegeben wird, und zum Abgeben vordecodierter Information;
eine Zustandsinformations-Speichereinrichtung zum Speichern von Zustandsinformation, welche einen Betriebszustand der Operationseinrichtung anzeigt, und
eine Sprung- bzw. Verzweigungs-Feststelleinrichtung, welche mit dem Vordecodierer und der Zustandsinformations-Spei­ chereinrichtung verbunden ist, um zu bestimmen, ob einer vorherbestimmten Sprung- oder Verzweigungsbedingung auf der Basis der vordecodierten Information genügt ist, welche die Sprung- oder Verzweigungsinformation und den Betriebszustand der Operationseinrichtung enthält, welche durch die Zustands­ information angezeigt worden ist, welche in der Zustandsin­ formations-Speichereinrichtung gespeichert worden ist, und um ein Feststellergebnis an zumindest einer der Anzahl UND-Ebenen abzugeben.
DE4035405A 1989-11-08 1990-11-07 Programmierbare logik-anordnung und datenverarbeitungseinrichtung mit einer solchen logik-anordnung Granted DE4035405A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP1290667A JP2968289B2 (ja) 1989-11-08 1989-11-08 中央演算処理装置

Publications (2)

Publication Number Publication Date
DE4035405A1 true DE4035405A1 (de) 1991-05-16
DE4035405C2 DE4035405C2 (de) 1993-01-14

Family

ID=17758937

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4035405A Granted DE4035405A1 (de) 1989-11-08 1990-11-07 Programmierbare logik-anordnung und datenverarbeitungseinrichtung mit einer solchen logik-anordnung

Country Status (3)

Country Link
US (1) US5511173A (de)
JP (1) JP2968289B2 (de)
DE (1) DE4035405A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4327660A1 (de) * 1992-08-20 1994-02-24 Mitsubishi Electric Corp Vorrichtung zum Herstellen einer und Herstellungsverfahren für eine integrierte Halbleiterschaltungsvorrichtung und elektronische Schaltungsvorrichtung

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574930A (en) * 1994-08-12 1996-11-12 University Of Hawaii Computer system and method using functional memory
US5737631A (en) * 1995-04-05 1998-04-07 Xilinx Inc Reprogrammable instruction set accelerator
US5748979A (en) * 1995-04-05 1998-05-05 Xilinx Inc Reprogrammable instruction set accelerator using a plurality of programmable execution units and an instruction page table
US5805871A (en) * 1995-07-21 1998-09-08 Ricoh Company Ltd. System and method for phase-synchronous, flexible-frequency clocking and messaging
US5794062A (en) * 1995-04-17 1998-08-11 Ricoh Company Ltd. System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization
US6266756B1 (en) * 1995-07-17 2001-07-24 Ricoh Company, Ltd. Central processing unit compatible with bank register CPU
US5943242A (en) 1995-11-17 1999-08-24 Pact Gmbh Dynamically reconfigurable data processing system
US7266725B2 (en) * 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
US5854918A (en) * 1996-01-24 1998-12-29 Ricoh Company Ltd. Apparatus and method for self-timed algorithmic execution
DE19651075A1 (de) 1996-12-09 1998-06-10 Pact Inf Tech Gmbh Einheit zur Verarbeitung von numerischen und logischen Operationen, zum Einsatz in Prozessoren (CPU's), Mehrrechnersystemen, Datenflußprozessoren (DFP's), digitalen Signal Prozessoren (DSP's) oder dergleichen
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US6338106B1 (en) 1996-12-20 2002-01-08 Pact Gmbh I/O and memory bus system for DFPS and units with two or multi-dimensional programmable cell architectures
DE19654593A1 (de) * 1996-12-20 1998-07-02 Pact Inf Tech Gmbh Umkonfigurierungs-Verfahren für programmierbare Bausteine zur Laufzeit
DE59710317D1 (de) 1996-12-27 2003-07-24 Pact Inf Tech Gmbh VERFAHREN ZUM SELBSTÄNDIGEN DYNAMISCHEN UMLADEN VON DATENFLUSSPROZESSOREN (DFPs) SOWIE BAUSTEINEN MIT ZWEI- ODER MEHRDIMENSIONALEN PROGRAMMIERBAREN ZELLSTRUKTUREN (FPGAs, DPGAs, o.dgl.)
DE19654846A1 (de) 1996-12-27 1998-07-09 Pact Inf Tech Gmbh Verfahren zum selbständigen dynamischen Umladen von Datenflußprozessoren (DFPs) sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen (FPGAs, DPGAs, o. dgl.)
DE19704044A1 (de) * 1997-02-04 1998-08-13 Pact Inf Tech Gmbh Verfahren zur automatischen Adressgenerierung von Bausteinen innerhalb Clustern aus einer Vielzahl dieser Bausteine
DE19704728A1 (de) * 1997-02-08 1998-08-13 Pact Inf Tech Gmbh Verfahren zur Selbstsynchronisation von konfigurierbaren Elementen eines programmierbaren Bausteines
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
DE19704742A1 (de) 1997-02-11 1998-09-24 Pact Inf Tech Gmbh Internes Bussystem für DFPs, sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstrukturen, zur Bewältigung großer Datenmengen mit hohem Vernetzungsaufwand
US8686549B2 (en) 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US5987559A (en) * 1998-02-02 1999-11-16 Texas Instruments Incorporated Data processor with protected non-maskable interrupt
DE19807872A1 (de) 1998-02-25 1999-08-26 Pact Inf Tech Gmbh Verfahren zur Verwaltung von Konfigurationsdaten in Datenflußprozessoren sowie Bausteinen mit zwei- oder mehrdimensionalen programmierbaren Zellstruktur (FPGAs, DPGAs, o. dgl.
US7782844B1 (en) * 1999-01-05 2010-08-24 GlobalFoundries, Inc. Method and apparatus for pattern matching on single and multiple pattern structures
JP2003505753A (ja) 1999-06-10 2003-02-12 ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング セル構造におけるシーケンス分割方法
DE50115584D1 (de) 2000-06-13 2010-09-16 Krass Maren Pipeline ct-protokolle und -kommunikation
US20040015899A1 (en) * 2000-10-06 2004-01-22 Frank May Method for processing data
ATE437476T1 (de) 2000-10-06 2009-08-15 Pact Xpp Technologies Ag Zellenanordnung mit segmentierter zwischenzellstruktur
US8058899B2 (en) 2000-10-06 2011-11-15 Martin Vorbach Logic cell array and bus system
US6990555B2 (en) * 2001-01-09 2006-01-24 Pact Xpp Technologies Ag Method of hierarchical caching of configuration data having dataflow processors and modules having two- or multidimensional programmable cell structure (FPGAs, DPGAs, etc.)
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7581076B2 (en) 2001-03-05 2009-08-25 Pact Xpp Technologies Ag Methods and devices for treating and/or processing data
US7210129B2 (en) 2001-08-16 2007-04-24 Pact Xpp Technologies Ag Method for translating programs for reconfigurable architectures
US7657877B2 (en) 2001-06-20 2010-02-02 Pact Xpp Technologies Ag Method for processing data
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7434191B2 (en) * 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US8686475B2 (en) 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
JP4044756B2 (ja) * 2001-12-11 2008-02-06 松下電器産業株式会社 プログラム変換装置、プログラム変換方法、及び当該プログラム変換装置を実現するプログラム
US7577822B2 (en) 2001-12-14 2009-08-18 Pact Xpp Technologies Ag Parallel task operation in processor and reconfigurable coprocessor configured based on information in link list including termination information for synchronization
JP2003190367A (ja) * 2001-12-21 2003-07-08 Konami Co Ltd 虚像、実映像重畳表示装置及び映像表示制御方法、ならびに映像表示制御用プログラム
AU2003208266A1 (en) 2002-01-19 2003-07-30 Pact Xpp Technologies Ag Reconfigurable processor
DE10390689D2 (de) 2002-02-18 2005-02-10 Pact Xpp Technologies Ag Bussysteme und Rekonfigurationsverfahren
JP4146654B2 (ja) * 2002-02-28 2008-09-10 株式会社リコー 画像処理回路、複合画像処理回路、および、画像形成装置
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US7657861B2 (en) 2002-08-07 2010-02-02 Pact Xpp Technologies Ag Method and device for processing data
WO2004021176A2 (de) 2002-08-07 2004-03-11 Pact Xpp Technologies Ag Verfahren und vorrichtung zur datenverarbeitung
JP3976089B2 (ja) * 2002-08-09 2007-09-12 株式会社リコー 半導体集積回路装置及びその製造方法
US7394284B2 (en) 2002-09-06 2008-07-01 Pact Xpp Technologies Ag Reconfigurable sequencer structure
US7464310B2 (en) * 2002-09-30 2008-12-09 Broadcom Corporation Programmable state machine of an integrated circuit
JP4296051B2 (ja) * 2003-07-23 2009-07-15 株式会社リコー 半導体集積回路装置
JP4700611B2 (ja) 2003-08-28 2011-06-15 ペーアーツェーテー イクスペーペー テクノロジーズ アクチエンゲゼルシャフト データ処理装置およびデータ処理方法
US8595688B1 (en) 2003-09-08 2013-11-26 Synopsys, Inc. Generation of instruction set from architecture description
KR100632943B1 (ko) * 2004-05-29 2006-10-12 삼성전자주식회사 저전력 및 고속 프로그램 가능한 로직 어레이
KR100578142B1 (ko) 2004-12-09 2006-05-10 삼성전자주식회사 프로그래머블 로직 어레이
US7281942B2 (en) * 2005-11-18 2007-10-16 Ideal Industries, Inc. Releasable wire connector
WO2007082730A1 (de) 2006-01-18 2007-07-26 Pact Xpp Technologies Ag Hardwaredefinitionsverfahren
US7541832B1 (en) * 2007-04-30 2009-06-02 Arizona Board Of Regents For And On Behalf Of Arizona State University Low power, race free programmable logic arrays

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4947369A (en) * 1982-12-23 1990-08-07 International Business Machines Corporation Microword generation mechanism utilizing a separate branch decision programmable logic array
US4713750A (en) * 1983-03-31 1987-12-15 Fairchild Camera & Instrument Corporation Microprocessor with compact mapped programmable logic array
JPS60145488A (ja) * 1984-01-06 1985-07-31 Hitachi Ltd 給液システム制御装置
US4839890A (en) * 1986-10-31 1989-06-13 Ncr Corporation Data bit synchronizer
US5123096A (en) * 1987-08-03 1992-06-16 Masahito Matuo Data processor with addressing mode decoding function

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
TIETZE, SCHENK: Halbleiterschaltungstechnik, 6.Aufl., Springer, 1983, S.273-278 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4327660A1 (de) * 1992-08-20 1994-02-24 Mitsubishi Electric Corp Vorrichtung zum Herstellen einer und Herstellungsverfahren für eine integrierte Halbleiterschaltungsvorrichtung und elektronische Schaltungsvorrichtung
US5384275A (en) * 1992-08-20 1995-01-24 Mitsubishi Denki Kabushiki Kaisha Method of manufacturing a semiconductor integrated circuit device, and an electronic circuit device

Also Published As

Publication number Publication date
JP2968289B2 (ja) 1999-10-25
JPH03150634A (ja) 1991-06-27
US5511173A (en) 1996-04-23
DE4035405C2 (de) 1993-01-14

Similar Documents

Publication Publication Date Title
DE4035405C2 (de)
DE2357003C2 (de) Prozessor für eine Mehrprogramm-Datenverarbeitungsanlage
DE2724125C2 (de)
DE68927907T2 (de) Einchipmikrorechner
DE69017178T2 (de) Datenverarbeitungssystem mit Vorrichtung zur Befehlskennzeichnung.
DE68928213T2 (de) Inhaltadressierte Speicherzellenanordnung
DE68907518T2 (de) Inhaltsadressierte Speicheranordnung.
DE3851746T2 (de) Sprungvorhersage.
DE2524046C2 (de) Elektronische Datenverarbeitungsanlage
DE69027932T2 (de) Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen
DE68924719T2 (de) Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung.
DE2117936A1 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE2234867A1 (de) Anordnung in datenverarbeitungsanlagen zum steuern der verarbeitung zweier voneinander unabhaengiger programme
DE2248296A1 (de) Programmsteuereinrichtung
DE3751108T2 (de) Mikroprozessor mit der Fähigkeit, an einen Koprozessor geschaltet zu werden.
DE60009496T2 (de) Mikroprozessor mit reduziertem kontextumschaltungsaufwand und verfahren
DE2801543A1 (de) Datenverarbeitungsanlage
DE3043653A1 (de) Datenverarbeitungsanlage
DE2926322A1 (de) Speicher-subsystem
DE2951040C2 (de)
DE69230898T2 (de) Speicherauswahl enthaltendes Verarbeitungs-System und Verfahren
DE4222275A1 (de) Parallelprozessor und betriebsverfahren eines solchen
DE69528824T2 (de) Apparat und verfahren zum erneuern von informationen in einem beschreibbaren mikrokode-kontrollspeicher
DE2349253C3 (de) Rechnersystem
DE69020430T2 (de) Steueranordnung zur Aenderung eines Microbefehls.

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
D2 Grant after examination
8364 No opposition during term of opposition