-
Die Erfindung betrifft einen Datenprozessor und
insbesondere einen derartigen Prozessor, in dem ein
Programmspeicher zum Speichern einer Folge von Befehlen und einer
Ausführungseinheit zum Decodieren und Ausführen jedes Befehls
auf einem einzelnen Halbleiterchip vorgesehen sind.
-
In einem auf einem einzelnen Halbleiterchip hergestellten
Datenprozessor, wie ein Einzelchipmikrocomputer oder ein
Einzelchipperipheriecontroller für einen Plattenantrieb,
eine Anzeigeeinheit etc., sind seine Operationsfunktionen
durch Befehle bestimmt, die in einem Programmspeicher im
Prozessor gespeichert sind. Das bedeutet, daß die
Verarbeitungskapazität durch die Anzahl und die Bitlänge von
Befehlen beschränkt ist, die in dem Programmspeicher gespeichert
sind, oder durch die Kapazität des Programmspeichers. Falls
die Anzahl der Befehle und/oder die Bitlänge jedes Befehls
erhöht wird, um die Verarbeitungskapazität auszudehnen, ist
ein struktureller Designwechsel erforderlich, wobei die
Speicherkapazität des Programmspeichers und/oder die
Bitlänge eines Programmzählers vergrößert werden muß. Aus
diesem Grund benötigt die Neuauslegung eines solchen
weiterentwickelten Prozessors eine lange Zeit, selbst wenn ein
weiterentwickelter Prozessor entwickelt wird, bei dem neue
Operationsfunktionen dem vorher entwickelten Prozessor
zugefügt werden oder bei dem ein Teil der Funktionen des
vorher entwickelten Prozessors verbessert wird. Des weiteren
erhöht der Zusatz von neuen Befehlen die Anzahl von
Auslese-
und Decodieroperationen, so daß die
Verarbeitungsgeschwindigkeit gesenkt ist.
-
IBM Technical Disclosure Bulletin, Ausgabe 16, Nr. 11,
April 1974, Seite 3723, beschreibt eine Speichervorrichtung
mit Nur-Lese-Speicheränderung. Zu diesem Zweck umfaßt die
Vorrichtung einen Assoziativspeicher, der gleichzeitig mit
einem Nur-Lese-Speicher addressiert wird. Dieser
Assoziativspeicher enthält vorgegebene Adressen plus entsprechende
Maskierungsdatenbits, und wann immer eine entsprechende
Adresse eine Speicherposition des Nur-Lese-Speichers
auswählt, werden die Inhalte dieser Speicherposition selektiv
durch eine Exklusiv-Oder-Schaltung modifiziert, die mit den
Maskierungsbits von dem Assoziativspeicher versorgt wird.
Durch diese Technik ist es möglich, beispielsweise defekte
Speicherpositionen zu reparieren oder Daten des
Hauptspeichers zu ändern oder zu substituieren.
-
Es ist eine Aufgabe der Erfindung, einen Datenprozessor zu
schaffen, mit einer Verbesserung zum Erweitern und Erhöhen
der Verarbeitungsfunktionen ohne Ändern weder der Anzahl
von Befehlen, die in dem Programmspeicher gespeichert sind,
oder des Codes oder der Bitlänge dieser Befehle.
-
Eine weitere Aufgabe der Erfindung liegt in der Schaffung
eines Datenprozessors, dem neue
Verarbeitungsdatenfunktionen zugefügt werden können, ohne die
Verarbeitungsgeschwindigkeit zu senken.
-
Diese Aufgaben werden durch einen Datenprozessor gemäß
Anspruch 1 gelöst; die abhängigen Ansprüche betreffen weitere
Entwicklungen der Erfindung.
-
Der erfindungsgemäße Prozessor umfaßt Mittel zum Erzeugen
des zweiten Steuersignais für zusätzliche
Verarbeitungsfunktionen oder Verbesserung der Verarbeitungsfunktionen,
wobei diese Mittel unabhängig von den Befehlsdecodermitteln
arbeiten, sondern nur auf spezifischen Adreßdaten die dem
Programmspeicher zugeführt werden, ansprechen.
Dementsprechend können die Verarbeitungsfunktionen ohne Änderung der
Speicherkapazität des Programmspeichers und der Bitlänge
und des Codes für jeden Befehl erweitert werden. Da des
weiteren die Ausführungsmittel gleichzeitig den ersten und
den zweiten Befehl ausführen, ist die
Verarbeitungsgeschwindigkeit nicht gesenkt.
-
Die obigen und andere Aufgaben, Vorteile und Merkmale der
Erfindung werden aus der folgenden Beschreibung in
Verbindung mit den beigefügten Zeichnungen deutlich. Es zeigt:
-
Fig. 1 ein Blockdiagramm eines bevorzugten
Ausführungsbeispiels der Erfindung,
-
Fig. 2 ein Schaltungsdiagramm des detaillierten Aufbaus
der entsprechenden Blocks, die in Fig. 1
dargestellt sind, und
-
Fig. 3 ein Schaltungsdiagramm eines weiteren bevorzugten
Ausführungsbeispiels der Erfindung.
-
Bezugnehmend auf Fig. 1 ist ein Datenprozessor gemäß einem
bevorzugten Ausführungsbeispiel der Erfindung als eine
integrierte Halbleiterschaltung aufgebaut und umfaßt einen
Programmspeicher 1, der ein Nur-Lese-Speicher (ROM) ist und
beispielsweise eine Folge von Befehlen für ein Programm
speichert. Ein Programmzähler 3 erzeugt Adreßdaten zur
Zuweisung einer Speicherposition von Befehlen, die im
Programmspeicher 1 gespeichert sind und auszuführen sind. Die
aus dem Programmzähler 1 ausgelesenen Adreßdaten werden
über eine Signalleitung 9 an einen Adreßdecoder 2
geliefert, der seinerseits ein decodiertes Adreßsignal erzeugt,
das über eine Signalleitung 11 an den Programmspeicher 1
zugeführt wird. Auf diese Weise wird eine Speicherposition
des Programmspeichers 1 bezeichnet, um einen Befehlscode,
der im Programmspeicher 1 gespeichert ist, auszulesen. Die
bezeichnete Position wird in ein Befehlsregister 4 über
eine Signalleitung 12 übertragen. Das Befehisregister 4
speichert temporär den aus dem Speicher 1 gelesenen
Befehlscode und liefert ihn an einen Befehlsdecoder 5, der
einen Satz erster Steuersignale 15 bis 21 damit
übereinstimmend erzeugt. Selektive der ersten Steuersignale 15 bis
21 nehmen einen aktiven Pegel ein. Die ersten Steuersignale
15 bis 21 werden an eine Ausführungseinheit 30 geliefert,
so daß eine vorgegebene Operation in Abhängigkeit von dem
aus dem Speicher 1 ausgelesenen Befehl in der Einheit 30
ausgeführt wird. Insbesondere werden die ersten
Steuersignale 15 und 16 zur Steuerung einer Schaltung 8, die in der
Ausführungseinheit 30 enthalten ist, verwendet.
-
Der in Fig. 1 dargestellte Datenprozessor umfaßt ferner
eine Steuersignalerzeugungsschaltung 6 gemäß der Erfindung.
Diese Schaltung 6 empfängt zumindest einen Teil von
Adreßdaten, die durch den Programmzähler 3 erzeugt wurden, über
eine Signalleitung 10, um zu erfassen, ob die empfangenen
Adreßdaten mit vorausgewählten Adreßdaten übereinstimmen.
Wenn die Adreßdaten von dem Programmzähler 3 mit den
vorausgewählten Adreßdaten übereinstimmen, erzeugt die
Schaltung 6 ein zweites Steuersignal 14. In dem vorliegenden
Ausführungsbeispiel wird dieses zweite Steuersignal 14 für
denselben Zweck wie das Steuersignal 16 verwendet, und
aufgrunddessen werden die ersten und zweiten Steuersignale 16
und 14 einem OR-Gate 7 zugeführt, dessen Ausgangssignal der
Schaltung 8 zugeführt wird.
-
Angenommen, das Steuersignal 16 wird in Abhängigkeit von
dem Befehl, der durch ein erstes Adreßdatum vom
Programmzähler 3 bezeichnet ist, erzeugt, erzeugt die Schaltung 6
das zweite Steuersignal 14, wenn der Programmzähler 3 ein
zweites Adreßdatum erzeugt, das sich vom ersten Adreßdatum
unterscheidet. Dementsprechend wird das Signal 18, das zur
Steuerung der Schaltung 8 verwendet wird, erzeugt, wenn der
Programmzähler 3 entweder das erste oder das zweite
Adreßdatum erzeugt. Des weiteren bezeichnet das zweite
Adreßdatum des Programmzählers 3 die Position im Speicher 1 zur
Ableitung eines Befehis, der den Pegel des Steuersignals 19
beispielsweise auf einen aktiven Pegel ändert. Die
Ausführungseinheit 30 führt folglich die Verarbeitungsoperation
in Abhängigkeit vom Steuersignal 19 gleichzeitig mit der
Steuerung der Schaltung 8 durch das Signal 18 durch. Da des
weiteren das zweite Steuersignal 14 in Abhängigkeit von den
Adreßdaten vom Programmzähler 3 erzeugt wird, wird ein
Anstieg in der Anzahl der Befehle in dem Programmspeicher 1
oder in dem Code oder der Bitlänge jedes Befehls nicht
erforderlich. Auf diese Weise werden der Satz der ersten
Steuersignale 15 bis 21 vom Befehlsdecoder 5 und das zweite
Steuersignal 14 von der Schaltung 6 unabhängig voneinander
in Abhängigkeit von einem Adreßdatum vom Programmzähler 3
erzeugt. Diese ersten und das zweite Steuersignal werden im
selben Befehlsausführungszyklus verarbeitet, was zu keinem
Absinken der Verarbeitungsgeschwindigkeit führt. Falls
andererseits das zweite Steuersignal 14 separat von den
ersten Steuersignalen 15 bis 21 eingesetzt wird, kann das OR-
Tor 7 weggelassen werden, und das zweite Steuersignal 14
wird direkt der Verarbeitungseinheit 30 zugeführt.
-
Bezugnehmend auf Fig. 2 ist dort ein detaillierter
Schaltungsaufbau der entsprechenden Blöcke der Fig. 1
dargestellt, um weiter die Merkmale und Operationen gemäß der
Erfindung zu erläutern. Der Programmzähler 3 erzeugt die
Adreßdaten mit drei Bit A&sub0;, A&sub1; und A&sub2;. Ihre wahren und
komplementären Signale werden dem Adreßdecoder 2 zugeführt.
Der Programmspeicher 1 speichert acht Arten von Befehlen,
die in der folgenden Tabelle 1 dargestellt sind. Jeder
Befehl besteht aus drei Bits I&sub0;, I&sub1; und I&sub2;.
TABELLE 1
Adresse
Befehlscode
Steuersignal mit aktivem Pegel
-
Die Steuersignalerzeugungsschaltung 6 besteht aus einem
Drei-Eingangs-NOR-Gate 61, das das Komplement des ersten
Adreßbits A&sub0;, das Komplement des zweiten Adreßbits A&sub1; und
das wahre Bit des dritten Adreßbits A&sub2; erhält.
Aufgrunddessen erzeugt die Steuersignalerzeugungsschaltung 6 das
zweite Signal 14, wenn der Programmzähler 3 die Adreßdaten
von "110" erzeugt. Dieses Adreßdatum wird zum Lesen des
Befehlscodes von "110" aus dem Programmspeicher 1 verwendet
und aktiviert das Steuersignal 17.
-
Im Anfangszustand wird der Programmzähler 3 auf "000"
zurückgestellt, und somit wird das im Speicher 1 gespeicherte
Programm von der Speicherposition "0" gestartet. Der
Befehlscode "000", der in der Speicherposition "0"
gespeichert ist, wird aus dem Speicher 1 ausgelesen und dann an
das Register 4 übertragen. Der Befehldecoder 5 decodiert
den Befehl "000" derart, daß die Ausführungseinheit 30 die
Operation basierend auf dem aktiven Pegel des Steuersignals
20 ausführt. Wenn die Befehlsausführung beendet ist, wird
der Inhalt des Programmzählers 3 erhöht, um die nächste
Speicherposition "1" des Speichers 1 zu bezeichnen. Wenn
der Programmzähler 3 nun die Adreßdaten von "110" erzeugt,
nimmt das Steuersignal 17 einen aktiven Pegel ein, so daß
die Ausführungseinheit 30 einen "CALL"-Befehl ausführt.
Gleichzeitig nimmt das zweite Steuersignal 14 den aktiven
Pegel ein, um ein Flipflop 81, das die Schaltung 8 bildet,
zu setzen. Als Ergebnis wird die Datenverarbeitung unter
Verwendung des Setzausgangs des Flipflops 81 durchgeführt.
Anschließend, in Abhängigkeit von den in den
Speicherpositionen "5", "6" und "7" gespeicherten Befehlen werden die
Steuersignale 16, 15 und 17 jeweils aktiviert, so daß die
entsprechenden Datenverarbeitungen durch die
Verarbeitungseinheit 30 durchgeführt werden. Auf diese Weise wird das
Flipflop 81 durch die Befehle, die in den
Speicherpositionen "4" und "6" des Programmspeichers 1 gespeichert sind,
zurückgesetzt und ferner durch das Adreßdatum in "110" des
Programmzählers 3 unabhängig von dem Befehlsdecoder 5
gesetzt. Das Adreßdatum "110" liest den "CALL"-Befehl aus.
Insbesondere werden der Setzzustand des Flipflops 81 und
der "CALL"-Befehl im selben Zyklus ausgeführt.
-
Als nächstes wird ein Beispiel der Datenverarbeitung im
folgenden beschreiben. Der Datenprozessor führt eine
serielle Datenübertragungsfunktion durch, bei der zu
übertragende Daten aus einer Quellenvorrichtung in Byteeinheiten
ausgelesen und geprüft werden, um eine korrekte Form in
Byteeinheiten aufzuweisen. In diesem Fall wird die
Datenprüfoperation in Abhängigkeit von dem Befehl zur
Anforderung der nächsten Bytedaten an die Quellvorrichtung
ausgeführt. Bei dem in Fig. 2 dargestellten Aufbau wird das
Flipflop 81 durch den Befehl für die nächste
Bytedatenübertragung gesetzt. Der Setzausgang des Flipflops 81 wird
somit für das Starten des Datenprüfvorgangs verwendet. Wenn
das letzte auszulesende Bytedatum der Quellvorrichtung
angefordert wird und dann an die Zielvorrichtung übertragen
wird, ist das zu übertragende Bytedatum nicht mehr in der
Quellvorrichtung vorhanden. Das heißt, das Flipflop 81 wird
nicht gesetzt, so daß das Datenprüfen für das letzte
Bytedatum ausgeführt wird. Durch Einstellen des Adreßdatums auf
"110" im Programmzähler 3 wird jedoch das Flipflop 81
parallel zur Ausführung des "CALL"-Befehls gesetzt, der nach
der seriellen Datenübertragung auszuführen ist, so daß der
Datenprüfvorgang für das letzte Bytedatum ausgeführt wird.
Es ergibt sich keine Änderung in der Anzahl und in dem Code
der Befehle, um die Geschwindigkeit hochzuhalten.
-
Bezugnehmend auf Fig. 3 ist dort ein weiteres
Ausführungsbeispiel der Erfindung dargestellt, wobei dieselben
Bestandteile wie in den Fig. 1 und 2 mit denselben
Bezugsziffern versehen sind und eine weitere Beschreibung
unterlassen wird. In diesem Ausführungsbeispiel ist der
Adreßdecoder 2 so ausgelegt, daß er eine Funktion als
Steuersignalerzeugungsschaltung 6 aufweist, die in Fig. 1 und 2
dargestellt ist, und aufgrunddessen ist die Schaltung 6
weggelassen. Insbesondere empfängt der Adreßdecoder 2 die
Adreßdaten vom Programmzähler 3. Wenn das Adreßdatum einen
Wert von "110" einnimmt, erzeugt der Adreßdecoder 2 einen
aktiven Pegel eines Auswahlsignals zur Bezeichnung einer
Speicherposition "3" des Programmspeichers 1. Dieses
Auswahlsignal wird als zweites Steuersignal 14 abgeführt und
dann an das OR-Gate 7 geliefert. Als Resultat wird der
"CALL"-Befehl zusammen mit einem Setzen des Flipflops 81
ausgeführt.
-
Wie oben beschrieben wurde, ist erfindungsgemäß eine
Änderung der Speicherkapazität des Programmspeichers und der
Befehlsform nicht erforderlich, da ein Steuersignal oder
Signale aus den Adreßdaten, die von dem Programmzähler
erzeugt werden, generiert werden. Des weiteren werden zwei
Befehle gleichzeitig ausgeführt, und somit wird eine
Hochgeschwindigkeits-Datenverarbeitung ausgeführt. Selbst wenn
der Inhalt des Programmzählers ausgelesen wird, um das
Programm zu reproduzieren, führt das reproduzierte Programm
nicht die vollständigen Verarbeitungsoperationen selbst
ohne den Schaltungsaufbau gemäß der Erfindung durch, so daß
folglich der Schutz eines Programms erzielt werden kann.
-
Die Erfindung ist nicht auf die oben beschriebenen
Ausführungsbeispiele beschränkt, sondern kann geändert und
modifiziert werden. Beispielsweise können zwei oder mehr zweite
Steuersignale in Abhängigkeit von zwei oder mehr
spezifischen Adreßdaten von dem Programmzähler erzeugt werden.