DE3751297T2 - Schaltung zur Programmsteuerung. - Google Patents
Schaltung zur Programmsteuerung.Info
- Publication number
- DE3751297T2 DE3751297T2 DE3751297T DE3751297T DE3751297T2 DE 3751297 T2 DE3751297 T2 DE 3751297T2 DE 3751297 T DE3751297 T DE 3751297T DE 3751297 T DE3751297 T DE 3751297T DE 3751297 T2 DE3751297 T2 DE 3751297T2
- Authority
- DE
- Germany
- Prior art keywords
- counter
- instruction
- memory
- register
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012986 modification Methods 0.000 claims description 4
- 230000004048 modification Effects 0.000 claims description 4
- 238000012546 transfer Methods 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims 2
- 230000000903 blocking effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 238000000034 method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
- G06F9/325—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Programmable Controllers (AREA)
Description
- Die Erfindung betrifft eine Programm-Steuerschaltung für den Gebrauch mit einem programmgesteuerten Gerät wie einem Mikrocomputer.
- Der Fortschritt der Technologie integrierter Schaltungen hat es möglich gemacht, eine erheblich komplizierte Logikschaltung in einem einzelnen Chip einer integrierten Schaltung zusammenzufügen. Solch eine integrierte Schaltung kann beispielsweise ein Ein-Chip-Mikrocomputer sein, der seinerseits sehr kompliziert und diversifiziert ist, wegen der Komplikation der Logikschaltungen, die in einem integrierten Schaltungschip realisiert werden können.
- Andererseits sind Mikrocomputer zur Ausführung von Programmen ausgelegt, die aus einem internen Speicher oder einem externen Speicher ausgelesen wurden. Bei einem derartigen programmgesteuerten Computer ist es sehr wichtig für die Hochgeschwindigkeitsverarbeitung von Daten, wie kurz und wie sauber ein Programm beschrieben ist.
- Ein typisches Beispiel einer Operation, die ein kurzes und sauberes Programm erfordert, ist eine numerische Datenverarbeitung, die eine Lösung mit einem hohen Grad von Präzision erfordert. Zum Zweck der Erweiterung der Präzision einer Lösung ist es gewöhnliche Praxis, dieselbe Verarbeitung wiederholt durchzuführen. Falls in diesem Fall dasselbe Programm, das wiederholt auszuführen ist, kontinuierlich mit der Anzahl von Malen, entsprechend der Anzahl der Wiederholungen, beschrieben ist, kann ein kurzes und einfaches Programm nicht erhalten werden. Aufgrunddessen wird heutzutage weitgehend tatsächlich ein Verfahren verwendet, um ein Verarbeitungsprogramm, das zu wiederholen ist, und einen bedingten Sprungbefehl zu kombinieren, um das herzustellende Programm abzukürzen.
- Beispielsweise wird die Anzahl der Wiederholungen "N" eines Betriebsprogramms, das wiederholt auszuführen ist, in einem Register eingestellt, und das Betriebsprogramm wird wiederholt ausgeführt, während der in dem Register gehaltene Wert um "1" bei jeder Ausführung des Betriebsprogramms vermindert wird. Wenn dann der im Register gehaltene Wert zu "0" wird, ist die wiederholte Ausführung des Betriebsprogramms beendet und die nächste Verarbeitung wird ausgeführt.
- Bei der oben beschriebenen wiederholten Programmausführung muß jedoch jedesmal dann, wenn ein wiederholt auszuführendes Ausführungsprogramm durchgeführt wird, nicht nur der im Register gehaltene Wert dekrementiert werden, sondern ebenso muß eine Unterscheidung getroffen werden, ob der Wert des dekrementierten Registers eine gegebene Bedingung erfüllt oder nicht, so daß auf der Basis dieser Unterscheidung entschieden wird, ob die Ausführung zum wiederholt auszuführenden Ausführungsprogramm zurückkehrt oder zum nächsten Programm, entfernt vom Ausführungsprogramm übergeht, das wiederholt auszuführen ist. Für eine Unterscheidung hinsichtlich des Inhalts des Registers ist eine Logikschaltung für die Unterscheidung zusätzlich vorzusehen. Des weiteren ist ein Befehl für die Durchführung der Unterscheidung erforderlich, und falls der Befehl in einem Programm als ein unabhängiger Befehl beschrieben ist, muß ein solcher Unterscheidungsbefehl in der gleichen Anzahl von Malen wie die Wiederholungszahl, die für eine wiederholte Operation erforderlich ist, ausgeführt werden. Aufgrunddessen steigt die Anzahl der Ausführungen des Unterscheidungsbefehls, je größer die Wiederholungszahl der Operation wird, so daß die Gesamtbetriebszeit eines Programms unweigerlich lang wird. Falls des weiteren ein zu wiederholendes Ausführungsprogramm ein weiteres zu wiederholendes Ausführungs-Unterprogramm enthält, steigt die Anzahl der Ausführungen der Unterscheidungsbefehle weiter, so daß die Anzahl der Programmschritte und die notwendige Verarbeitungszeit sehr groß werden.
- Eine Programm-Steuerschaltung gemäß dem Oberbegriff des Anspruchs 1 ist aus "IBM TECHNICAL DISCLOSURE BULLETIN", Ausgabe 25, Nr. 9, Februar 1983, Seiten 4569-4571, bekannt.
- Dieser Artikel beschreibt eine Programm-Steuerschaltung, die keinen Sprungbefehl für das Schließen der Schleife erfordert, mit einem Schleifenzähler (Ni), der mit der Wiederholungszahl einer Programmfolge eingestellt ist und seinen Inhalt in Abhängigkeit von jeder Ausführung der zu wiederholenden Programmfolge modifiziert. Am Ende einer Schleife, solange der Zähler sich von einem vorgegebenen Wiederholungswert unterscheidet, wird die Adresse des nächsten zu lesenden Befehls - der erste, der zu wiederholenden Folge folgende Befehl - in die Anfangsadresse der Schleife geändert, und wenn der Wiederholungszähler auf einen vorgegebenen Wert kommt, wird die nächstfolgende Adresse unmodifiziert gelassen und zum Verlassen der Schleife verwendet. Der Mardwarezähler von D1 löst das Problem des Überbaus, der durch den bedingten (Schleifen-)Zweigbefehl in der bekannten Technik bewirkt ist. Allerdings erfordert die Erfassung des Schleifenendes einen Adreßvergleich. Des weiteren muß ein zusätzliches Register für die Zieladresse verwendet werden.
- Es ist eine Aufgabe der Erfindung, eine Programm-Steuerschaltung anzugeben, die eine wiederholte Programmausführung mit einer geringen Anzahl von Programmschritten ausführen kann.
- Eine weitere Aufgabe der Erfindung liegt in der Schaffung einer Programm-Steuerschaltung, die gleichzeitig die Ausführung einer Programmoperation, die zu wiederholen ist, und die Dekrementierung einer eingestellten Anzahl der Wiederholungen einer Programmausführung durchführen kann.
- Diese Aufgaben werden durch eine Programm-Steuerschaltung gelöst, die in Anspruch 1 definiert ist; die abhängigen Ansprüche betreffen weitere Entwicklungen der Erfindung.
- Bei dem obigen Aufbau, wenn der Inhalt des Registers nicht gleich dem vorgegebenen Inhalt ist, wird der Inhalt des Registers gleichzeitig mit der Ausführung des in dem Befehlsregisters gespeicherten Befehls modifiziert. Da die Modifikation des Inhalts des Registers (d.h. Inkrement oder Dekrement des Registers) und die Programmoperation gleichzeitig ausgeführt werden, kann nämlich die Anzahl der erforderlichen Programmschritte um Eins bei jeder Wiederholung der Programmoperation vermindert werden.
- Die obigen und andere Aufgaben, Merkmale und Vorteile der Erfindung werden aus der folgenden Beschreibung bevorzugten Ausführungsbeispiele der Erfindung mit Bezug auf die beigefügten Zeichnungen deutlich.
- Fig. 1 ist ein Blockdiagramm einer Verarbeitungseinheit, die in sich die Programm-Steuerschaltung gemäß der Erfindung aufweisen kann;
- Fig. 2 ist ein Blockdiagramm eines Ausführungsbeispiels der erfindungsgemäßen Programm-Steuerschaltung;
- Fig. 3 ist ein Flußdiagramm einer Operation, die in der in Fig. 2 dargestellten Programm-Steuerschaltung ausgeführt wird; und
- Fig. 4 ist ein Schaltungsdiagramm eines weiteren Ausführungsbeispiels der Programm-Steuerschaltung; und
- Fig. 5 ist ein Diagramm zur Erläuterung eines Beispiels eines Befehlsstroms, der erfindungsgemäß ausgeführt werden kann.
- Bezugnehmend auf Fig. 1 ist dort ein Beispiel einer Verarbeitungseinheit eines Mikrocomputers dargestellt, der die Programm-Steuerschaltung gemäß der Erfindung verkörpern kann. Die dargestelle Verarbeitungseinheit umfaßt einen internen CPU-Bus 10 und eine Eingabe-/Ausgabe(I/O)-Vorrichtung 12, die zwischen den internen CPU-Bus 10 und einen externen Bus 14 geschaltet ist, der mit einem Nur-Lese-Befehlsspeicher (ROM) 36 eines Mikrocomputers verbunden ist. Des weiteren sind mit dem internen CPU-Bus 10 ein Akkumulator 16, ein Temporärregister 18 und ein Statusregister 20 verbunden. Die Ausgänge des Akkumulators 16 und des Temporärregisters 18 sind mit Eingängen einer Arithmetik- und Logikeinheit (ALU) 22 verbunden, die durch das Statusregister 20 gesteuert wird. Der Ausgang der ALU 22 ist mit dem internen CPU-Bus 10 verbunden. Die Elemente 16 bis 22 führen die Arithmetik-Logik-Verarbeitung durch.
- Die dargestellte Verarbeitungseinheit 1 umfaßt weiterhin ein Befehlsregister 24, dessen Eingang mit dem internen CPU-Bus 10 verbunden ist und dessen Ausgang mit dem Eingang eines Befehlsdekoders 26 verbunden ist. Der Befehlsdekoder 26 liefert sein Ausgangssignal an einen Zeitsteuerkontroller 28 zur Zuführung und zum Erhalten verschiedener Arten von Steuersignalen. Des weiteren ist eine Gruppe von Registern 32 einschließlich eines Programmzählers vorgesehen, welche Registergruppe zwischen den internen CPU-Bus 10 und einen Adreßpuffer 34 geschaltet ist, dessen Ausgang mit einem Adreßbus 30 des Mikroprozessors verbunden ist.
- Im Betrieb arbeitet die dargestellte Verarbeitungseinheit in gleicher Weise wie eine konventionelle Verarbeitungseinheit.
- Kurz gesagt, erzeugt der Zeitsteuerkontroller 28 Zeitsteuersignale und arbeitet auf der Basis der erzeugten Zeitsteuersignale und verschiedener Arten von Steuersignalen, die von dem Befehlsdekoder 26 erhalten werden, um das Einschalten und Ausschalten verschiedener Tore (nicht dargestellt) in der Verarbeitungseinheit zu steuern und gleichzeitig den Adreßpuffer 34 zu veranlassen, die Adresse und Daten auf den Adreßbus 30 zu geben. Des weiteren arbeitet der Zeitsteuerkontroller 26 zur Steuerung der Übertragung verschiedener Steuersignale zwischen I/O-Ports 30 und dem externen Bus 14. Andererseits wird der Befehl von dem externen Bus 14 auf die I/O-Vorrichtung 12 übertragen und über den internen CPU-Bus in das Befehlsregister 24 geschrieben. Der eingeschriebene Befehl wird durch den Befehlsdekoder 26 dekodiert und dann dem Zeitsteuerkontroller 28 zugeführt.
- Bezugnehmend auf Fig. 2 ist dort ein Ausführungsbeispiel der erfindungsgemäßen Programm-Steuerschaltung dargestellt, die zwischen den internen Bus 10 und das Befehlsregister 24 oder die I/O-Vorrichtung 12 in der in Fig. 1 dargestellten Verarbeitungseinheit gelegt werden kann. Die dargestellte Programm-Steuerschaltung umfaßt ein Register 40 zum Speichern von Information, die für die Programmsteuerung erforderlich ist, wie die Wiederholungsanzahl einer Programmoperation, die wiederholt auszuführen ist. Der Inhalt des Registers 40 wird an einen Zähler 42 gegeben, der seinerseits in Abhängigkeit von einem Signal S dekrementiert oder inkrementiert wird. Wenn der Zähler 42 vom Herunterzähltyp ist, erzeugt ein Leihsignal an einen Befehlskontroller 44. Wenn der Zähler 42 vom Meraufzähltyp ist, erzeugt er ein Übertragsignal für den Befehlskontroller 44. Dieser Befehlskontroller 44 ist mit einem Speicher 46 verbunden, der eine Folge programmierter Befehle speichert, der dem Befehls-ROM 36 entspricht. Der Kontroller 44 kann abhängig von dem Ausgangssignal des Zählers 42 derart arbeiten, daß er den aus dem Speicher 46 ausgelesenen Befehl als Effektivbefehl an ein Befehlsregister 48 überträgt oder den aus dem Speicher ausgelesenen Befehl in einen anderen Befehl wie einen Nichtoperationsbefehl modifiziert, der dem Befehlsregister 48 zugeführt wird.
- Der Betrieb wird mit Bezug auf das Ablaufdiagramm gemäß Fig. 3 erläutert.
- Die Befehlsanzahl einer Betriebsausführung wird im Register 40 eingestellt und dann an den Zähler 42 übertragen. Andererseits ist eine Befehlsfolge, die im Speicher 46 gespeichert ist, derart, daß ein Signal S erzeugt wird, wenn ein Befehl direkt vor einem Sprungbefehl für die Betriebswiederholung ausgeführt wird oder in dem Befehlsregister 48 eingestellt wird. Auf diese Weise wird ein Befehl seguentiell aus dem Speicher 46 ausgelesen und über den Befehlskontroller 44 an das Befehlsregister 48 übertragen, falls der Zähler 42 weder ein Leihsignal noch ein Übertragssignal erzeugt, so daß der Befehlssatz im Befehlsregister 48 sequentiell ausgeführt wird. Wenn Befehle, ausschließlich des Befehls direkt vor dem Sprungbefehl, ausgeführt werden, wird, da das Signal S nicht erzeugt wird, der Wert des Zählers 42 gelassen, wie er ist. Aufgrunddessen wird weder ein Leihsignal noch ein Übertragssignal von dem Zähler 42 ausgegeben, der Befehl wird vom Speicher 46 gelesen und dann, wie er ist, über den Befehlskontroller 44 zu dem Befehlsregister 48 übertragen. Wenn jedoch der Befehl direkt vor dem Sprungbefehl ausgeführt wird, wird ein Signal S mit einem Logikpegel "1" dem Zähler 42 übertragen, so daß der Zähler 42 für den Fall dekrementiert wird, daß der Zähler 42 vom Dekrementtyp ist.
- Als Resultat der Dekrementierung des Zählers 42, falls der Zähler 42 kein Leihsignal erzeugt, liefert der Befehlskontroller 44 den Befehl, d.h. den Sprungbefehl, der im Speicher 46 gespeichert ist, dem Befehlsregister 48, so daß der Sprungbefehl ausgeführt wird. Mit anderen Worten wird der Betrieb zur Wiederholungsfolge einschließlich einer Anzahl von Befehlen zurückgeführt. Somit wird die Operation, die bereits einmal durchgeführt wurde, erneut ausgeführt. Wenn der Befehl direkt vor dem Sprungbefehl erneut ausgeführt wird, wird somit das Signal S erneut erzeugt, um den Zähler 42 zu dekrementieren.
- Auf diese Weise wird eine wiederholte Ausführung derselben Operation durchgeführt, bis der Zähler 42 ein Leihsignal erzeugt. Anschließend modifiziert der Befehlskontroller 44 den Befehl, d.h. den Sprungbefehl, der aus dem Speicher ausgelesen wurde, zu einem Nichtoperationsbefehl und liefert den Nichtoperationsbefehl an das Befehlsregister 48. Als Ergebnis wird der Sprungbefehl nicht ausgeführt, und somit läuft der Ablauf aus der zu wiederholenden Operation. Anschließend wird ein Befehl nach dem Sprungbefehl aus dem Speicher 46 ausgelesen und über den Befehlskontroller 44 zum Befehlsregister 48 übertragen, so daß der nächste Befehl ausgeführt wird.
- Falls der Zähler 42 vom Inkrementtyp ist, wird der Zähler 42 in Abhängigkeit von dem Signal S inkrementiert, und bis der Zähler 42 ein Übertragssignal erzeugt, werden die aus dem Speicher 46 ausgelesenen Befehle ohne Modifikation an das Befehlsregister 48 gegeben, so daß, falls ein Sprungbefehl in den aus dem Speicher 46 ausgelesenen Befehlen enthalten ist, eine Operation wiederholt entsprechend dem Sprungbefehl durchgeführt wird.
- Wie sich aus dem obigen ergibt, werden die auszuführenden Befehle entsprechend dem Ausgangssignal (Leih- oder Übertragssignal) des Zählers 42 derart gesteuert, daß eine wiederholte Operationsausführung selektiv erlaubt oder verboten wird.
- Wie vorstehend bemerkt wurde, erfordert das konventionelle System einen unabhängigen Befehl für das Zählen einer Ausführung einer zu wiederholenden Operation. Die dargestellte Programmsteuerschaltung macht es jedoch möglich, gleichzeitig die Operation des Zählers und die Ausführung der Programmoperation durchzuführen, wie aus den folgenden Beispielen ersichtlich ist.
- Beispielsweise wird eine zu wiederholende Operation in dem bekannten System durch die folgende Programmschrittsequenz durchgeführt:
- A-1: Einstellen eines erforderlichen Wertes im Register A.
- A-2: Ausführung einer numerischen Datenoperation.
- A-3: Dekrementieren des Registers A.
- A-4: Weiter zum Schritt A-5, falls der Wert im Register A "0" ist, oder, anderenfalls, zum Schritt
- A-5: Weiter zur nächsten Operation.
- Wie sich aus dem obigen ergibt, können die numerische Datenoperation und das Dekrementieren des Registers nicht gleichzeitig ausgeführt werden, da ein spezieller Befehl für die Dekrementierung des Registers A erforderlich ist. Um des weiteren den Programmschritt A-4 auszuführen, ist ein Unterscheidungsbefehl zur Unterscheidung, ob der Wert des Registers A gleich "0" ist oder nicht, erforderlich. Aufgrunddessen ist ein Programmschritt für den Unterscheidungsbefehl erforderlich. Des weiteren ist ein weiterer Programmschritt für das Springen aufgrund des Ergebnisses der Unterscheidung erforderlich.
- Falls andererseits die dargestellte Programmsteuerschaltung verwendet wird, kann eine wiederholte Operation durch die folgende Programmschrittsequenz durchgeführt werden.
- B-1: Einstellen eines erforderlichen Wertes im Register A (Register 40)
- B-2: Ausführung einer numerischen Datenoperation und Dekrementierung des Wertes des Registers A (Zähler 42), falls das Steuersignal des Registers A auf "1" ist.
- B-3: Weiter zum Schritte B-4, falls ein Leihsignal als Ergebnis der Dekrementierung erzeugt wird, oder zum Schritt B-2, anderenfalls.
- B-4: Nächste Operation.
- Falls die Programm-Steuerschaltung verwendet wird, kann, wie sich aus dem obigen ergibt, die Länge der für eine wiederholte Operation erforderlichen Programmschritte um einen Programmschritt vermindert werden. Das bekannte System erfordert einen unabhängigen Befehl zur Ausweisung des Programmschrittes A-3. Bei dem Betrieb der dargestellten Programm-Steuerschaltung erfordert jedoch das Steuersignal S für die Dekrementierung des Zählers 42 nur ein Bit. Diese Steuersignal S kann deshalb durch ein Bit gegeben werden, das in einem Befehlskode aus einer merklichen Anzahl von Bits besteht, wobei die verbleibenden Bits ausreichend einen Befehl ausweisen können. Mit anderen Worten können der Befehl für die numerische Datenoperation und die Dekrementierung des Registers A durch denselben einen Befehlskode bezeichnet werden.
- Insbesondere sei angenommen, daß eine zu wiederholende Folge aus Programmschritten N bis N + M zusammengesetzt ist, wie in Fig. 5 dargestellt ist. In Fig. 5 ist der Programmschritt N + M ein Sprungbefehl, der zum Programmschritt N führt. Der Programmschritt N + M - 1 enthält ein Herunterzählbit von einem Bit, von dem das Signal S erzeugt wird, wenn der Schritt N + M - 1 ausgeführt wird. Aufgrunddessen werden die Schritte N bis N + M aufeinanderfolgend ausgeführt, und wenn der Schritt N + M - 1 ausgeführt wird, wird das Signal S erzeugt, um den Zähler 42 zu dekrementieren. Falls kein Leihsignal erzeugt wird, wird der Schritt N + M ausgeführt, so daß die Operation zum Schritt N zur Wiederholung der Folge von N bis N + M zurückkehrt. Falls jedoch ein Leihsignal erzeugt wird, wird der Sprungbefehl des Schrittes N + M in einen Nichtoperationsbefehl modifiziert, so daß die Operation aus der Schleife für das wiederholte Ausführen der Folge N bis N + M heraustritt. Im Hinblick auf die bekannte Technik ist hier ein Programmschritt zwischen den Schritten N + M - 1 und N + M für die Unterscheidung erforderlich, ob das Register A auf "0" ist oder nicht. Des weiteren wird im Schritt N + M unterschieden, ob der Sprung ausgeführt werden soll oder nicht, und, falls erforderlich, wird ein Sprungvorgang im folgenden Schritt N + M + 1 ausgeführt.
- Die dargestellte Programm-Steuerschaltung kann somit die Anzahl der Programmschritte für eine wiederholte Operation vermindern und die Unterscheidungsoperation vereinfachen und den Programmablauf beschleunigen.
- Das Ausführungsbeispiel gemäß Fig. 2 ist derart, daß der Befehl in einen Nichtoperationsbefehl modifiziert wird, bevor er dem Befehlsregister zugeführt wird. Der Befehl kann jedoch in einen Nichtoperationsbefehl modifiziert werden, nachdem er von dem Befehlsregister ausgegeben ist.
- Bezugnehmend auf Fig. 4 ist dort ein weiteres Ausführungsbeispiel der Programm-Steuerschaltung dargestellt. Die dargestellte Schaltung umfaßt einen Nur-Lese-Befehlsspeicher (ROM) 50, der dem Speicher 46 entspricht. Der Befehls-ROM 50 hat 12 Ausgabebits, die über ein Befehls-ROM-Registerfeld 52 mit einem Torfeld 54 verbunden sind, das dem Befehlskontroller 44 entspricht. Jedes Tor des Torfeldes 54 umfaßt eine NAND-Tor mit einem ersten Eingang, der mit einem Ausgang eines entsprechenden Registers des Registerfelds 52 verbunden ist, und einem zweiten Eingang, der zum Empfang eines Leihsignals geschaltet ist. Der Ausgang des NAND-Tores 56 ist über einen Inverter 58 mit einem entsprechenden Anschluß mit Befehlsanschlüssen IR0-IR11 verbunden.
- Des weiteren umfaßt die dargestellte Schaltung einen 5-Bit- Herunterzähler 60, der parallel die Daten auf einer internen Busleitung IB0-IB4 erhält. Der Zähler 60 umfaßt fünf kaskadierte Ein-Bit-Registerzähler, von denen jeder eine Anzahl von drei Stufen enthält, eine Anzahl Inverter und eine Anzahl von Übertragungstoren, die, wie in Fig. 4 dargestellt ist, verbunden sind. Da die Ein-Bit-Registerzähler ausschließlich dessen für das niedrigstwertige Bit dieselbe Schaltungsstruktur aufweisen, wird die Schaltungsstruktur nur für den Ein-Bit-Registerzähler für das höchstwertige Bit dargestellt. Der dargestellte Zähler ist so angepaßt, daß das Datum auf dem Bus IBO-184 in einen Registerabschnitt des Zählers in Abhängigkeit von einem Signal CD geschrieben wird, und das im Zähler gespeicherte Datum wird auf den Bus IB0-IB4 in Abhängigkeit von einem Signal CS ausgelesen. Des weiteren ist der Zähler vom Vorladungstyp, der durch Takte C1, , C2 und getrieben wird, aber nur durch den Takt C1 heruntergezählt wird. Der Zähler 60 hat einen Leihsignal-Ausgang 62, der, solange wie zumindest einer der fünf Registerzähler "1" hält, auf einem Logikpegel "0" gehalten wird. Insbesondere, wenn alle fünf Registerzähler zu "0" werden, wird ein Leihsignal mit "1" ausgegeben, das über einen Inverter und zwei Dreistufeninverter 66 und 68 an das Torfeld 54 gegeben wird.
- Wenn somit das Signal CD zugeführt wird, wird das Datum auf dem internen Bus IB0-IB4 in dem Registerabschnitt des Zählers 60 gespeichert. Das gespeicherte Datum gibt die Wiederholungszahl einer gegebenen Operation wieder. Wenn ein Befehl direkt vor einem Sprungbefehl für Operationswiederholung ausgeführt wird, wird der Takt C1 dem Zähler 60 zugeführt. Falls er Zähler 60 den Leihsignalausgang 62 auf logisch "0" hält, d.h. falls das Leihsignal nicht erzeugt wird, wird ein Hochpegelsignal "1" den NAND-Toren 56 zugeführt, so daß der Befehl, d.h. der Sprungbefehl, der in dem ROM-Register 52 gehalten ist, an die Anschlüsse IR0-IR11 ohne Modifikation ausgegeben wird. Aufgrunddessen wird der Sprungbefehl ausgeführt, so daß die gegebene Operation wiederholt ausgeführt wird. Falls jedoch die Operationswiederholung die vorgegebene Anzahl von Malen durchgeführt ist, wird das Leihsignal mit "1" durch den Zähler 60 erzeugt, wenn der Befehl direkt vor dem Sprungbefehl ausgeführt wird. Als Resultat werden alle Ausgänge des Torfeldes 54 zu "0". Mit anderen Worten wird der Sprungbefehl in einen Nichtoperationsbefehl aus nur "0" modifiziert. Aufgrunddessen wird der Sprungbefehl nicht ausgeführt, und ein Befehl direkt nach dem Sprungbefehl wird ausgeführt.
- Bei dem obigen Ausführungsbeispiel ist der Nichtoperationsbefehl aus nur "0" zusammengesetzt. Aber der Nichtoperationsbefehl kann jedes Bitmuster haben, das eine Sprungoperation verbieten kann und zum nächsten Befehl weitergehen kann.
- In dem in Fig. 4 dargestellten Ausführungsbeispiel funktionieren die Inverter 64, 66 und 68 als Verzögerungsschaltung. Aufgrunddessen kann das Signal S erzeugt werden, wenn ein Befehl ausgeführt wird, der um die Anzahl der Programmschritte entsprechend der durch die Inverter 64, 66 und 68 gegebenen Verzögerung vor dem Sprungbefehl angeordnet ist. Auf diese Weise kann die Anzahl der Inverter 64 bis 68 erhöht oder vermindert werden.
Claims (6)
1. Programmsteuerschaltung mit:
einem Register (40) zum Halten der Wiederholungszahl einer
zu wiederholenden Programmoperation,
einem Zähler (42), der den Inhalt des Registers erhält und
so ausgebildet ist, den empfangenen Inhalt in einer
vorgegebenen Zählrichtung in Abhängigkeit von jeder Ausführung
der wiederholt auszuführenden Operation zu ändern, wobei
der Zähler ein aktives Ausgangssignal erzeugt, wenn der
Inhalt des Zählers einen vorgegebenen Wert erreicht, und
einem Speicher (46) zum Speichern einer Befehlsfolge
einschließlich eines oder mehrerer Befehle, die der wiederholt
auszuführenden Programmoperation entsprechen,
dadurch gekennzeichnet, daß die Folge einen
unbedingten Sprungbefehl enthält, der dem einen oder den
mehreren Befehlen entsprechend der wiederholt aus
zuführenden Operation folgt, zum Rückkehren an den Anfang der
Operation,
daß das aktive Ausgangssignal durch den Zähler am Ende der
zu wiederholenden Operation erzeugt wird, und durch
Mittel (44, 48), die einen aus dem Speicher gelesenen
Befehl erhalten und durch das Ausgangssignal des Zählers
derart gesteuert werden, daß sie den empfangenen Befehl ohne
Modifikation übermitteln, wenn das Ausgangssignal des
Zählers nicht aktiv ist, wobei die Empfangs- und
Übertragungsmittel (44) zum Wandeln des empfangenen Befehls in einen
Leeroperationsbefehl arbeiten, wenn das Ausgangssignal des
Zählers aktiv ist.
2. Schaltung nach Anspruch 1,
wobei der Zähler (42) ausgestaltet ist, um in Abhängigkeit
von jeder Ausführung der wiederholt auszuführenden
Operation dekrementiert zu werden, wobei die übertragungsmittel
(44) abhängig sind von einem Borrowsignal des Zählers, um
den aus dem Speicher gelesenen Befehl zu modifizieren.
3. Schaltung nach Anspruch 1,
wobei der Zähler (42) ausgestaltet ist, um in Abhängigkeit
von jeder Ausführung der wiederholt auszuführenden
Operation inkrementiert zu werden, wobei die übertragungsmittel
(44) abhängig von einem übertragssignal des Zählers sind,
um den aus dem Speicher gelesenen Befehl zu modifizieren.
4. Schaltung nach Anspruch 1,
wobei der Speicher einen Befehls-Nur-Lesespeicher (50)
aufweist und die Übertragungsmittel eine Toranordnung (54)
aufweisen, die mit dem Nur-Lesespeicher verbunden ist,
wobei die Toranordnung in einen Signalblockierzustand in
Abhängigkeit von dem Ausgangssignal des Zählers gebracht
wird.
5. Schaltung nach Anspruch 4,
wobei die Toranordnung eine Anzahl Zwei-Eingangs-Tore (56)
aufweist, wobei jedes Tor einen ersten Eingang aufweist,
der mit einem korrespondierenden Bitausgang des Nur-Lese-
Speichers verbunden ist, wobei ein zweiter Eingang aller
Tore zum Empfang des Ausgangssignals des Zählers geschaltet
sind.
6. Schaltung nach Anspruch 51
wobei jedes Tor ein Zwei-Eingangs-NAND-Tor und einen
Inverter (58) aufweist, der mit dem Ausgang des NAND-Tores
verbunden ist.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP61022267A JPS62180427A (ja) | 1986-02-03 | 1986-02-03 | プログラム制御回路 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3751297D1 DE3751297D1 (de) | 1995-06-22 |
DE3751297T2 true DE3751297T2 (de) | 1995-10-19 |
Family
ID=12077994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3751297T Expired - Fee Related DE3751297T2 (de) | 1986-02-03 | 1987-02-03 | Schaltung zur Programmsteuerung. |
Country Status (4)
Country | Link |
---|---|
US (2) | US5056004A (de) |
EP (1) | EP0231928B1 (de) |
JP (1) | JPS62180427A (de) |
DE (1) | DE3751297T2 (de) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6436334A (en) * | 1987-07-31 | 1989-02-07 | Nec Corp | Microcomputer |
US5210836A (en) * | 1989-10-13 | 1993-05-11 | Texas Instruments Incorporated | Instruction generator architecture for a video signal processor controller |
US5452425A (en) * | 1989-10-13 | 1995-09-19 | Texas Instruments Incorporated | Sequential constant generator system for indicating the last data word by using the end of loop bit having opposite digital state than other data words |
US5680600A (en) * | 1989-10-13 | 1997-10-21 | Texas Instruments Incorporated | Electronic circuit for reducing controller memory requirements |
JP2559868B2 (ja) * | 1990-01-06 | 1996-12-04 | 富士通株式会社 | 情報処理装置 |
FR2693572B1 (fr) * | 1992-07-13 | 1994-09-30 | Texas Instruments France | Système de traitement de données comportant un dispositif amélioré de traitement des boucles de programme. |
WO1994002894A2 (en) * | 1992-07-13 | 1994-02-03 | Texas Instruments France | Data-processing system with a device for handling program loops |
US5717947A (en) * | 1993-03-31 | 1998-02-10 | Motorola, Inc. | Data processing system and method thereof |
JPH07200292A (ja) * | 1993-12-28 | 1995-08-04 | Mitsubishi Electric Corp | パイプライン式プロセッサ |
US5404473A (en) * | 1994-03-01 | 1995-04-04 | Intel Corporation | Apparatus and method for handling string operations in a pipelined processor |
JP3208990B2 (ja) * | 1994-04-27 | 2001-09-17 | ヤマハ株式会社 | 信号処理装置 |
US6009454A (en) * | 1994-09-30 | 1999-12-28 | Allen-Bradley Company, Llc | Multi-tasking operation system for industrial controller |
US5619408A (en) * | 1995-02-10 | 1997-04-08 | International Business Machines Corporation | Method and system for recoding noneffective instructions within a data processing system |
US5822602A (en) * | 1996-07-23 | 1998-10-13 | S3 Incorporated | Pipelined processor for executing repeated string instructions by halting dispatch after comparision to pipeline capacity |
EP0992888B1 (de) * | 1998-10-06 | 2008-08-20 | Texas Instruments Inc. | Verfahren und Vorrichtung zur iterativen Befehlsausführung |
US6990570B2 (en) | 1998-10-06 | 2006-01-24 | Texas Instruments Incorporated | Processor with a computer repeat instruction |
GB0013336D0 (en) * | 2000-06-01 | 2000-07-26 | Sgs Thomson Microelectronics | Forming an executable program |
US7020788B2 (en) | 2001-06-01 | 2006-03-28 | Microchip Technology Incorporated | Reduced power option |
US6728856B2 (en) | 2001-06-01 | 2004-04-27 | Microchip Technology Incorporated | Modified Harvard architecture processor having program memory space mapped to data memory space |
US6604169B2 (en) | 2001-06-01 | 2003-08-05 | Microchip Technology Incorporated | Modulo addressing based on absolute offset |
US7007172B2 (en) | 2001-06-01 | 2006-02-28 | Microchip Technology Incorporated | Modified Harvard architecture processor having data memory space mapped to program memory space with erroneous execution protection |
US6552625B2 (en) | 2001-06-01 | 2003-04-22 | Microchip Technology Inc. | Processor with pulse width modulation generator with fault input prioritization |
US6975679B2 (en) | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Configuration fuses for setting PWM options |
US6601160B2 (en) | 2001-06-01 | 2003-07-29 | Microchip Technology Incorporated | Dynamically reconfigurable data space |
US6934728B2 (en) | 2001-06-01 | 2005-08-23 | Microchip Technology Incorporated | Euclidean distance instructions |
US6976158B2 (en) | 2001-06-01 | 2005-12-13 | Microchip Technology Incorporated | Repeat instruction with interrupt |
US6952711B2 (en) | 2001-06-01 | 2005-10-04 | Microchip Technology Incorporated | Maximally negative signed fractional number multiplication |
US6937084B2 (en) | 2001-06-01 | 2005-08-30 | Microchip Technology Incorporated | Processor with dual-deadtime pulse width modulation generator |
US6985986B2 (en) * | 2001-06-01 | 2006-01-10 | Microchip Technology Incorporated | Variable cycle interrupt disabling |
US7003543B2 (en) | 2001-06-01 | 2006-02-21 | Microchip Technology Incorporated | Sticky z bit |
US20020184566A1 (en) | 2001-06-01 | 2002-12-05 | Michael Catherwood | Register pointer trap |
US7467178B2 (en) | 2001-06-01 | 2008-12-16 | Microchip Technology Incorporated | Dual mode arithmetic saturation processing |
US20040021483A1 (en) * | 2001-09-28 | 2004-02-05 | Brian Boles | Functional pathway configuration at a system/IC interface |
US6552567B1 (en) | 2001-09-28 | 2003-04-22 | Microchip Technology Incorporated | Functional pathway configuration at a system/IC interface |
US7370136B2 (en) * | 2005-01-26 | 2008-05-06 | Stmicroelectronics, Inc. | Efficient and flexible sequencing of data processing units extending VLIW architecture |
KR100730280B1 (ko) * | 2005-12-06 | 2007-06-19 | 삼성전자주식회사 | 재구성 프로세서에서 루프 버퍼를 최적화하기 위한 장치 및방법 |
KR101490726B1 (ko) | 2009-10-21 | 2015-02-09 | 가부시키가이샤 한도오따이 에네루기 켄큐쇼 | 반도체 장치 |
US8560764B2 (en) * | 2009-12-21 | 2013-10-15 | Intel Corporation | Repurposing NAND ready/busy pin as completion interrupt |
US9703559B2 (en) * | 2011-11-09 | 2017-07-11 | Nec Corporation | Digital signal processor, program control method, and control program |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3736567A (en) * | 1971-09-08 | 1973-05-29 | Bunker Ramo | Program sequence control |
US4263650B1 (en) * | 1974-10-30 | 1994-11-29 | Motorola Inc | Digital data processing system with interface adaptor having programmable monitorable control register therein |
US4118776A (en) * | 1975-07-17 | 1978-10-03 | Nippon Electric Company, Ltd. | Numerically controlled machine comprising a microprogrammable computer operable with microprograms for macroinstructions and for inherent functions of the machine |
US4323964A (en) * | 1976-11-01 | 1982-04-06 | Data General Corporation | CPU Employing micro programmable control for use in a data processing system |
US4097920A (en) * | 1976-12-13 | 1978-06-27 | Rca Corporation | Hardware control for repeating program loops in electronic computers |
US4449196A (en) * | 1979-04-27 | 1984-05-15 | Pritchard Eric K | Data processing system for multi-precision arithmetic |
US4338661A (en) * | 1979-05-21 | 1982-07-06 | Motorola, Inc. | Conditional branch unit for microprogrammed data processor |
US4280199A (en) * | 1979-08-03 | 1981-07-21 | Sony Corporation | Apparatus for scanning an addressable memory |
JPS56135204A (en) * | 1980-03-26 | 1981-10-22 | Omron Tateisi Electronics Co | Programmable controller |
US4430711A (en) * | 1980-05-30 | 1984-02-07 | Signetics Corporation | Central processing unit |
US4438492A (en) * | 1980-08-01 | 1984-03-20 | Advanced Micro Devices, Inc. | Interruptable microprogram controller for microcomputer systems |
JPS5849897A (ja) * | 1981-09-18 | 1983-03-24 | Nippon Denso Co Ltd | 熱交換器 |
US4462074A (en) * | 1981-11-19 | 1984-07-24 | Codex Corporation | Do loop circuit |
JPS58107960A (ja) * | 1981-12-21 | 1983-06-27 | Nec Corp | マイクロプロセツサ |
JPS58117050A (ja) * | 1981-12-30 | 1983-07-12 | Fujitsu Ltd | デ−タシヨリソウチ |
US4556938A (en) * | 1982-02-22 | 1985-12-03 | International Business Machines Corp. | Microcode control mechanism utilizing programmable microcode repeat counter |
US4463422A (en) * | 1982-07-12 | 1984-07-31 | Csp, Inc. | Method of processing an iterative program loop |
JPS60132242A (ja) * | 1983-12-20 | 1985-07-15 | Matsushita Electric Ind Co Ltd | プログラム制御装置 |
FR2561429B1 (fr) * | 1984-03-13 | 1986-09-19 | Trt Telecom Radio Electr | Dispositif d'adressage pour fournir a une memoire des codes d'adresse |
US4727483A (en) * | 1984-08-15 | 1988-02-23 | Tektronix, Inc. | Loop control system for digital processing apparatus |
US4754393A (en) * | 1984-12-21 | 1988-06-28 | Advanced Micro Devices, Inc. | Single-chip programmable controller |
DE3609056A1 (de) * | 1985-03-18 | 1986-09-18 | Nec Corp., Tokio/Tokyo | Zaehlerschaltkreis |
JPS61221939A (ja) * | 1985-03-28 | 1986-10-02 | Fujitsu Ltd | デイジタル信号処理プロセツサにおける命令機能方式 |
JPS6341932A (ja) * | 1985-08-22 | 1988-02-23 | Nec Corp | 分岐命令処理装置 |
-
1986
- 1986-02-03 JP JP61022267A patent/JPS62180427A/ja active Pending
-
1987
- 1987-02-03 EP EP87101405A patent/EP0231928B1/de not_active Expired - Lifetime
- 1987-02-03 DE DE3751297T patent/DE3751297T2/de not_active Expired - Fee Related
-
1988
- 1988-10-14 US US07/258,082 patent/US5056004A/en not_active Expired - Fee Related
-
1991
- 1991-05-01 US US07/694,065 patent/US5511207A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP0231928B1 (de) | 1995-05-17 |
US5056004A (en) | 1991-10-08 |
DE3751297D1 (de) | 1995-06-22 |
US5511207A (en) | 1996-04-23 |
EP0231928A3 (de) | 1991-01-02 |
JPS62180427A (ja) | 1987-08-07 |
EP0231928A2 (de) | 1987-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3751297T2 (de) | Schaltung zur Programmsteuerung. | |
DE2714805C2 (de) | ||
DE68928213T2 (de) | Inhaltadressierte Speicherzellenanordnung | |
DE1499722C2 (de) | Einrichtung zur Modifizierung von Informationswörtern | |
DE3751164T2 (de) | Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten. | |
EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
DE68907518T2 (de) | Inhaltsadressierte Speicheranordnung. | |
DE2907181A1 (de) | Befehlssatz-modifizierregister fuer einen datenprozessor | |
CH620779A5 (de) | ||
DE2744531A1 (de) | Elektronische datenverarbeitungsanlage | |
CH623947A5 (de) | ||
DE1499203B1 (de) | Schaltungsanordnung zum Speicherschutz bei Datenverarbeitungsanlagen mit Simultanbetrieb | |
DE3650165T2 (de) | Buszustandssteuerungsschaltung. | |
DE2524046A1 (de) | Elektronische datenverarbeitungsanlage | |
DE3121742C2 (de) | Mikroprogramm-Steuereinrichtung | |
DE2145709A1 (de) | Datenverarbeitungsanlage | |
DE2533737A1 (de) | Datenprozessor | |
DE2951040C2 (de) | ||
DE4434529A1 (de) | Verfahren zum Verarbeiten eines Befehls mit Einsatzbedingung und Vorrichtung dazu | |
DE3700800C2 (de) | Einrichtung zur Erzeugung eines Unterbrechungspunktes in einem Mikroprozessor | |
DE2943903A1 (de) | Rechnersystem | |
DE2136210A1 (de) | Zentraleinheit fur eine EDV-Anlage | |
DE2938929C2 (de) | Datenverarbeitungsgerät | |
DE3650154T2 (de) | Datenverarbeitendes Gerät. | |
DE2125688A1 (de) | Datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |