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
Application number
DE3751297T
Other languages
English (en)
Other versions
DE3751297D1 (de
Inventor
Ichiro C O Nec Corporat Kuroda
Yuko C O Nec Corporation Ohde
Hideo C O Nec Corporati Tanaka
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.)
NEC Corp
Original Assignee
NEC Corp
Nippon Electric 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 NEC Corp, Nippon Electric Co Ltd filed Critical NEC Corp
Publication of DE3751297D1 publication Critical patent/DE3751297D1/de
Application granted granted Critical
Publication of DE3751297T2 publication Critical patent/DE3751297T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address 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

    Hintergrund der Erfindung Feld der Erfindung
  • Die Erfindung betrifft eine Programm-Steuerschaltung für den Gebrauch mit einem programmgesteuerten Gerät wie einem Mikrocomputer.
  • Beschreibung bekannter Technik
  • 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.
  • Kurze Beschreibung der Zeichnungen
  • 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.
  • Beschreibung bevorzugter Ausführungsbeispiele
  • 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.
DE3751297T 1986-02-03 1987-02-03 Schaltung zur Programmsteuerung. Expired - Fee Related DE3751297T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 分岐命令処理装置

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