DE3751353T2 - Verzweigungsmechanismus einer Befehlsfolgekontrolleinheit. - Google Patents

Verzweigungsmechanismus einer Befehlsfolgekontrolleinheit.

Info

Publication number
DE3751353T2
DE3751353T2 DE3751353T DE3751353T DE3751353T2 DE 3751353 T2 DE3751353 T2 DE 3751353T2 DE 3751353 T DE3751353 T DE 3751353T DE 3751353 T DE3751353 T DE 3751353T DE 3751353 T2 DE3751353 T2 DE 3751353T2
Authority
DE
Germany
Prior art keywords
address
primary
microinstruction
instruction
decoding
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
DE3751353T
Other languages
English (en)
Other versions
DE3751353D1 (de
Inventor
William T Fuller
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.)
Tandem Computers Inc
Original Assignee
Tandem Computers Inc
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 Tandem Computers Inc filed Critical Tandem Computers Inc
Application granted granted Critical
Publication of DE3751353D1 publication Critical patent/DE3751353D1/de
Publication of DE3751353T2 publication Critical patent/DE3751353T2/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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/264Microinstruction selection based on results of processing
    • G06F9/267Microinstruction selection based on results of processing by instruction selection on output of storage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/28Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Description

  • Die Erfindung ist im allgemeinen auf digitale Computersysteme und spezieller auf ein mikroprogrammiertes, digitales Spezialzweck-Untersystem gerichtet, das als Zusatz einer zentralen Prozessoreinheit (CPU) eines Computersystems arbeitet, um die CPU von vielen Funktionen zu befreien, die sie andernfalls ausüben müßte. Die Erfindung arbeitet auf eine Folge von Anweisungen hin, um verschiedene Steuersignale zu erzeugen und um das Vorhandensein oder Fehlen einer Anzahl digitaler Bedingungen zu überprüfen.
  • Computersysteme vom Typ, auf den die Erfindung gerichtet ist, beinhalten häufig eine Anzahl von Peripherieeinheiten, mit denen die CPU des Systems zur Datenübertragung kommunizieren muß. Typischerweise löst die CPU dann, wenn sie eine Datenübertragung von einer Peripherieeinheit wie einer Plattenlaufwerkeinheit anfordert, eine Datenübertragungsanforderung aus. Bevor die Anforderung respektiert wird, verstreicht eine Zeitspanne, während der sich die Peripherievorrichtung für die Datenübertragung bereit macht und sie, wenn sie bereit ist, der CPU mitteilt, daß die Übertragung erfolgen kann oder gleich vorgenommen werden kann. Wegen der Nichtübereinstimmung der Betriebsgeschwindigkeiten einer typischen CPU und einer üblichen Peripherievorrichtung (z.B. Tastaturen, Platten- und Bandlaufwerke (und dergleichen)) ist es eine ineffiziente Verwendung der CPU-Zeit, wenn die CPU für die gesamte Periode der Datenübertragung mit der Peripherievorrichtung verbunden ist.
  • Das Problem verkompliziert sich, wenn eine Anzahl von Peripherievorrichtungen Daten übertragen sollen und zwei oder mehr der Peripherievorrichtungen ungefähr gleichzeitig auf die Anfragen antworten. In diesem Fall benötigt die CPU Zeit zum Ermitteln, welche Peripherievorrichtung die erste ist, und welche später ist, und dann muß sie on-line verbleiben, um alle Anfragen zu handhaben, was die CPU von ihren normalen Computerpflichten abhält.
  • Um den Wirkungsgrad des Computersystems zu verbessern, ist die CPU häufig mit für spezielle Zustände konzipierten Vorrichtungen oder ähnlichen Geräten versehen, um bestimmte dieser Nebenoperationen zu handhaben, was es der CPU ermöglicht, mit der Ausführung des Hauptprogramms fortzufahren. Demgemäß kann die CPU z.B. dann, wenn sie eine Eingabe/Ausgabe-Anforderung für die Datenübertragung ausgibt, die Zuständigkeit für das Installieren dieser Übertragung an ein Spezialzweck-Untersystem weitergeben, das die CPU nur dann benachrichtigt, wenn diese zum Bewirken der Datenübertragung gebraucht wird. Das Spezialzweck-Untersystem ist nur mit derjenigen Intelligenz versehen, die dazu erforderlich ist, das Auftreten oder Fehlen von Zuständen zu prüfen, die Datenübertragungen vorangehen. Der Hauptvorteil dieser Art von Konfiguration ist die Geschwindigkeit, da tatsächlich mehrere Ereignisse parallel ausgeführt werden.
  • Häufig muß das Untersystem das Vorhandensein von Bedingungen prüfen und die Anweisungsfolge abhängig vom Vorliegen oder Fehlen einer Bedingung verzweigen. Die Verzweigung kann den Betrieb in der Anzahl von Zyklen benachteiligen, die dazu erforderlich sind, schließlich die Zielanweisung zu erreichen. Die aktuelle Technologie hat versucht, Verzweigungsbenachteiligungen dadurch zu verringern, daß eine Verzweigungsvorhersage-Fähigkeit hinzugefügt wird, auf Kosten von manchmal wesentlichen zusätzlichen Schaltungskomponenten. Andere Vorgehensweisen beinhalten ein Zugreifen auf zwei Anweisungen mit gleichzeitiger Auswahl auf Grundlage einer Prüfbedingung, welche auszuführen ist. Erneut erhöht diese letztere Technik die Geschwindigkeit auf Kosten der Anzahl von Komponenten.
  • Zum Stand der Technik gehört die Japanische Patentanmeldung mit der Veröffentlichungsnummer 58-186846, die eine ein Miniprogramm steuernde Vorrichtung offenbart, die selektiv Mikroanweisungen von einer oder zwei Quellen auf Grundlage des Inhalts einer Mikroanweisung abruft, die aktuell verarbeitet wird, oder mittels einer externen Verzweigungsbedingung-Signalleitung. Die bei dieser Vorrichtung verwendeten Mikroanweisungen beinhalten ein Adreßfeld, ein Verzweigungsanweisungsfeld und ein Verzweigungsbit. Diese Anweisungen sind in zwei Steuerspeichereinheiten abgespeichert, deren Ausgänge mit individuellen Mikroanweisungsregistern verbunden sind. Beide Register sind mit einer gemeinsamen Auswahleinrichtung verbunden, die den Inhalt eines der beiden Register für die Verarbeitung auswählt.
  • Im Betrieb wird das Adreßfeld der aktuell verarbeiteten Mikroanweisung gleichzeitig an die zwei Speichereinheiten zurückgeliefert, um auf neue Mikroanweisungen zuzugreifen; diese neuen Mikroanweisungen werden aus den Speichereinheiten ausgegeben und in den individuellen Registern zwischengespeichert, um die Auswahl durch die aktuell verarbeitete Mikroanweisung abzuwarten. Wenn das Verzweigungsanweisungsfeld der aktuell verarbeiteten Mikroanweisung anzeigt, daß keine Verzweigung stattfinden muß (d.h., es enthält 0), wird das Verzweigungsbit dieser Mikroanweisung an die Auswahleinrichtung zurückgeliefert, um die nächste Mikroanweisung auszuwählen. Umgekehrt wird dann, wenn eine Verzweigung stattfinden muß (d.h., daß das vorangehende Verzweigungsanweisungsfeld 1 enthält), der Inhalt der externen Verzweigungsbedingung-Signalleitung an die Auswahleinrichtung zurückgeliefert, um die nächste Mikroanweisung auszuwählen. In beiden Fällen wird der Inhalt eines der zwei neugeladenen Mikroanweisungsregister die nächste Mikroanweisung.
  • Zum Stand der Technik gehört auch IBM Technical Disclosure Bulletin Vol. 20, No. 1 (Juni 1977), das einen parallelen Festwertspeicher ("ROS" = Read-Only Storage)-Verzweigungsvorrichtung offenbart. Die Vorrichtung enthält zwei ROS-Einheiten, deren Daten so strukturiert sind, daß bei einer bedingten Verzweigung sowohl eine Primärziel- als auch eine Alternativziel-Anweisung unter derselben Adresse in den zwei Einheiten angeordnet werden. Wenn diese Adresse ausgelesen wird, wählt ein Bedingungsermittlungslatch die Primär- oder die Alternativzielanweisung gestützt auf ein "Verzweigungsprüffeld" der ausgelesenen Adresse und auf Maschinenzustände; es ist keine zwischengeschaltete arithmetische Operation erforderlich, um die ROS-Adresse zu ändern und die neue Anweisung abzurufen.
  • Es ist eine Aufgabe der Erfindung, das vorstehend beschriebene bekannte System zu verbessern, und insbesondere ein mikroprgrammiertes Untersystem zu schaffen, das so arbeitet, daß es eine zentrale Verarbeitungseinheit (CPU) von vielen der zeitaufwendigen Pflichten befreit, die z.B. der Vorbereitung von Datenübertragungen zwischen der CPU und Peripherievorrichtungen, wie sie an dem durch die CPU gesteuerten Computersystem angebracht sein können, zugehörig sind.
  • Die Erfindung selbst, wie sie im Untersystem enthalten ist, verfügt über zwei Gesichtspunkte: der erste Gesichtspunkt ist darauf gerichtet, die zeitlichen Benachteiligungen zu verringern, wie sie häufig durch Anweisungen oder Mikroanweisungen hervorgerufen werden, die eine Verzweigung aus einem Anweisungsstrom auf einen anderen hervorrufen (im allgemeinen auf Grundlage des Vorliegens oder Fehlens einer Bedingung). Der zweite Gesichtspunkt der Erfindung rührt teilweise vom ersten Gesichtspunkt her und ist auf solche Klassen von Anweisungen oder Mikroanweisungen gerichtet, die für eine vorgegebene Zeitspanne eine "Schleife" (d.h. eine Pause und einen Wartezustand) bilden, um auf das Auftreten einer Bedingung zu warten. Dieser Gesichtspunkt verwendet einen Adressengenerator (der Adressen für eine Speichervorrichtung erzeugt) als Timer, was zu verringerter Anzahl von Komponenten für das Untersystem führt.
  • Gemäß einer ersten Erscheinungsform der Erfindung ist eine digitale Vorrichtung mit folgendem geschaffen:
  • - einer Speichereinrichtung zum Aufnehmen mehrerer Anweisungen;
  • - einer Adreßeinrichtung, die mit der Speichereinrichtung verbunden ist, um Adreßsignale zu erzeugen, die bewirken, daß Paare von Anweisungen, zu denen eine Primäranweisung und eine Zielanweisung gehören, gleichzeitig von der Speichereinrichtung ausgegeben werden;
  • - einer Registereinrichtung zum Aufnehmen und Zwischenspeichern der Anweisungspaare, die einen ersten Abschnitt und einen zweiten Abschnitt zum jeweiligen Einspeichern der Primär- bzw. Zielanweisung beinhaltet;
  • - einer Decodiereinrichtung, die mit dem ersten Abschnitt der Registereinrichtung verbunden ist, um die Primäranweisung zu interpretieren, um aus ihr Steuersignale zu erzeugen, wobei die Decodiereinrichtung eine erste Schaltungseinrichtung aufweist, die dazu dient, mindestens ein Bedingungssignal zu empfangen; und
  • - einer zweiten Schaltungseinrichtung, die mit der Registereinrichtung verbunden ist und auf die Decodierung bestimmter Primäranweisungen durch die Decodiereinrichtung und auf das Vorhandensein eines Bedingungssignals anspricht, um die Zielanweisung an den ersten Abschnitt der Registereinrichtung zu übertragen.
  • Im Betrieb werden Mikroanweisungen, die den Betrieb des Untersystems vorgeben, in die Speichereinrichtung eingespeichert und der Reihe nach aus diesem in Mikroanweisungspaaren abgerufen, die aus der Primäranweisung und der Verzweigungs- oder Zielanweisung bestehen. Die Primär- und Ziel-Mikroanweisungen werden jeweils in den ersten (Decodierregister)- und zweiten (Halteregister)-Abschnitt der Registereinrichtung eingespeichert. Nur die Primär-Mikroanweisung wird decodiert und ausgeführt - solange nicht eine Verzweigung auszuführen ist. Wenn die Primär-Mikroanweisung eine Verzweigungsanweisung ist, wie eine Verzweigungseinschaltbedingung RICHTIG und die Bedingung bei Prüfung RICHTIG ergibt, wird die Ziel-Mikroanweisung in den ersten Abschnitt der Registereinrichtung übertragen, und zwar gleichzeitig mit dem Übertragen eines Teils der Primär-Mikroanweisung an die Adresseneinrichtung zum Erstellen der Adresse der Mikroanweisung, die der Ziel-Mikroanweisung folgen soll, der seinerseits der Rest der Folge der Mikroanweisung folgt, auf die verzweigt wurde. So ist die Ziel-Mikroanweisung tatsächlich die erste Mikroanweisung der Mikroanweisungsfolge, auf die eine Verzweigung vorzunehmen ist, wenn dies eine geprüfte Bedingung angibt. Wenn dagegen die Prüfung der Bedingung FALSCH ergibt, wird keine Verzweigung vorgenommen und es wird mit der normalen Anweisungsfolge fortgefahren.
  • Gewisse Verzweigungs-Mikroanweisungen sind vom Typ "Schleife" einer Mikroanweisung, die das Vorliegen einer Bedingung überprüft und, wenn die Bedingung vorliegt, eine Verzweigung auf die vorstehend beschriebene Weise herbeiführt. Wenn die Bedingung nicht erfüllt ist, arbeiten jedoch die Schleifen- Mikroanweisungen so, daß sie für eine bestimmte Zeitspanne auf das Auftreten einer Bedingung warten. Wenn die Bedingung während dieser Periode auftritt, wird eine Verzweigung gemäß dem ersten Gesichtspunkt der Erfindung ausgeführt. Wenn die Bedingung nicht auftritt, hält die Vorrichtung an und erzeugt einen Hinweis auf das Nichtauftreten der geprüften Bedingung. Gemäß dem zweiten Gesichtspunkt der Erfindung wird die Timerfunktion ausgeführt, um die Zeitspanne zu setzen, innerhalb der die Bedingung auftreten muß, damit die Verzweigung vorgenommen wird.
  • Gemäß einer zweiten Erscheinungsform der Erfindung ist ein Verfahren zur Verwendung in einer digitalen Vorrichtung vom Typ geschaffen, der so betrieben werden kann, daß er Folgen von Mikroanweisungen ausführt, wie sie von einer Speichereinrichtung auf Adreßsignale von einer Adressenerzeugungseinrichtung hin geliefert werden, wobei die Vorrichtung eine Einrichtung aufweist, die so arbeitet, daß sie Steuersignale erzeugt und auf das Vorliegen eines Bedingungssignals oder mehrerer reagiert, wobei das Verfahren die folgenden Schritte aufweist:
  • - sequentielles und gleichzeitiges Abrufen von Paaren von Mikroanweisungen aus der Speichereinrichtung, wobei jedes Paar eine Primär-Mikroanweisung und eine Ziel-Mikroanweisung enthält;
  • - Decodieren der Primär-Mikroanweisung jedes abgerufenen Paars von Mikroanweisungen; und
  • - Reagieren auf vorgegebene Mikroanweisungen unter den de-25 codierten Primär-Mikroanweisungen sowie auf das Vorliegen des Bedingungssignals, um einen Teil der zugehörigen Primär- Mikroanweisung als Adresse des Mikroanweisungspaars, das unmittelbar auf die Ziel-Mikroanweisung folgt, an die Adressenerzeugungseinrichtung zu übertragen, und, im wesentlichen gleichzeitig, die Ziel-Mikroanweisung des Paars von Mikroanweisungen zu decodieren.
  • Gemäß einer dritten Erscheinungsform der Erfindung ist eine digitale Vorrichtung geschaffen, die folgendes enthält:
  • - eine Speichereinrichtung zum Aufnehmen mehrerer Paare von Anweisungen, wobei jedes Paar von Anweisungen eine Primäranweisung und eine Zielanweisung beinhaltet;
  • - eine Adreßeinrichtung, die mit der Speichereinrichtung verbunden ist, um Adreßsignale zu liefern, die bewirken, daß Paare von Anweisungen im wesentlichen gleichzeitig von der Speichereinrichtung ausgegeben werden;
  • - eine Registereinrichtung zum Aufnehmen und Zwischenspeichern der Paare von Anweisungen, die einen ersten und einen zweiten Abschnitt zum jeweiligen Einspeichern der Primärbzw. Zielanweisung beinhaltet;
  • - eine Decodiereinrichtung, die mit dem ersten Abschnitt der Registereinrichtung verbunden ist, um die Primäranweisung zu interpretieren, um aus dieser Steuersignale zu erzeugen, wobei die Decodiereinrichtung eine erste Schaltungseinrichtung aufweist, die dazu dient, mindestens ein Bedingungssignal zu empfangen; und
  • - eine zweite Schaltungseinrichtung, die mit der Registereinrichtung verbunden ist und auf das Decodieren bestimmter Primäranweisungen durch die Decodiereinrichtung und auf das Vorliegen von Bedingungssignalen anspricht, um die Zielanweisung der Decodiereinrichtung zuzuführen, um die Zielanweisung zu interpretieren, wobei die zweite Schaltungseinrichtung eine Einrichtung zum Übertragen zumindest eines Segments der Primäranweisung an die Adreßeinrichtung im wesentlichen gleichzeitig mit der Übertragung der Zielanweisung an die Decodiereinrichtung beinhaltet, um Adreßsignale für den Zugriff auf die Speichereinrichtung zu erzeugen.
  • Gemäß einer Ausführungsform der Erfindung ist die Adresseneinrichtung so strukturiert, daß sie als Timer arbeitet, zusätzlich zu ihrer Funktion des Bereitstellens von Adreßsignalen zum sequentiellen Abrufen von Mikroanweisungspaaren aus der Speichereinrichtung des Untersystems. Wenn eine Mikroanweisung vom Schleifentyp angetroffen wird, wird die Adresseneinrichtung auf einen Timermodus umgeschaltet und sie beginnt, ausgehend von einem Zählwert zu inkrementieren, der zuvor eine Adresse der Schleifen-Mikroanweisung war, bis zu einem Zeitablauf-Zählwert. Wenn die Bedingung, auf die gewartet wird, auftritt, bevor der Zeitablauf-Zählwert erreicht wird, wird eine Verzweigung auf die beschriebene Weise ausgeführt; falls nicht, setzt das Untersystem ein Latch, das den Zeitablauf anzeigt, und beendet den Betrieb.
  • Ein zusätzliches Merkmal dieser Ausführungsform ist es, daß die CPU auf die Adresseneinrichtung zugreifen kann. So kann die Adresseneinrichtung durch die CPU mit einem Startzählwert voreingestellt werden und das Untersystem kann durch die CPU als variabler Timer betrieben werden.
  • Durch die Erfindung wird eine Anzahl von Vorteilen erzielt. Hinsichtlich des ersten Gesichtspunkts bestehen keine verlorenen Zyklen, wie es normalerweise der Fall ist, wenn eine Verzweigungs-Mikroanweisung ausgeführt wird. Durch Versehen jeder Mikroanweisung mit einer Mikroanweisung auf die zu verzweigen ist (d.h. einer Ziel-Mikroanweisung) (durch Abrufen von Paaren von Anweisungen aus dem Speicher), ist kein Speicherzugriff erforderlich, um eine Verzweigung auszuführen; statt dessen erübrigt die unmittelbare Verfügbarkeit der Mikroanweisung, auf die zu verzweigen ist, jedes Erfordernis eines Speicherzugriffs. Die nächste Mikroanweisung in der Mikroanweisungsfolge der Verzweigung wird unter Verwendung eines Teils des Inhalts der Verzweigungs-Mikroanweisung selbst abgerufen. Die Verzweigungsausführung ist genauso schnell wie eine Ausführung ohne Verzweigung.
  • Was die letztgenannte Ausführungsform der Erfindung betrifft, ist keine zusätzliche Timerschaltung erforderlich, wenn die Adresseneinrichtung als Timer verwendet wird.
  • Die Erfindung wird nachfolgend nur beispielhaft unter Bezugnahme auf die beigefügten Zeichnungen weiter beschrieben, in denen:
  • Fig. 1 eine Veranschaulichung eines die Erfindung verkörpernden Untersystems in Anwendung zum Unterstützen von Datenübertragungen zwischen einer CPU und externen Peripherievorrichtungen des Systems ist;
  • Fig. 2 ein detailliertes Blockdiagramm des Untersystems von Fig. 1 ist, um die zwei Gesichtspunkte der Erfindung zu veranschaulichen; und
  • Fig. 3 die Struktur und den Inhalt eines bei der Erfindung verwendeten Mikroanweisungspaars veranschaulicht.
  • Die Erfindung ist in einem Untersystem verkörpert, das so konzipiert ist, daß es die Datenkommunikation zwischen einer zentralen Verarbeitungseinheit (CPU) und externen Peripherievorrichtungen unterstützt, die Teil eines Computer- oder Datenverarbeitungssystems vom Typ, wie er grob in Fig. 1 veranschaulicht ist und mit der Bezugszahl 10 gekennzeichnet ist, bilden. Wie in dieser Weise veranschaulicht, beinhaltet das Datenverarbeitungssystem 10 eine Prozessoreinheit 12, die mit zwei oder mehr Vorrichtungscontrollern 14 über einen Eingabe/Ausgabe(E/A)-Bus 16 verbunden ist. Der E/A-Bus 16 erlaubt Datenkommunikation zwischen dem Prozessor 12 und einer Anzahl von Peripherievorrichtungen, wie Plattenspeichereinheiten 18 oder Bandeinheiten 19, über zugeordnete Vorrichtungscontroller (DC) 14. Der E/A-Bus 16 beinhaltet einen Datenbus, auf dem Daten übertragen werden, und eine zusätzliche Busstruktur (d.h. Signalleitungen), die verschiedene "Quittierungs"-Signale überträgt, um Datenkommunikationen in geordneter Weise zu initialisieren, auszuführen und zu beenden, abhängig von einem vorgegebenen Protokoll.
  • Die Prozessoreinheit 12 selbst enthält grob gesprochen eine zentrale Verarbeitungseinheit (CPU) 20, eine Speichereinheit 22 und ein Untersystem in Form einer wiederverbindenden, zyklisch abrufenden Ablaufsteuerung (RPS = Reconnect Poll Seguencer) 24. Eine Adreß- und Datenbusstruktur 26 verbindet die CPU 20 und die Speichereinheit 22 miteinander, und ein zentraler Bus 27 verbindet die CPU 20 und die RPS 24 miteinander. Der E/A-Bus 16 stellt die Verbindung zur CPU 20 her, und ein Teil 16a des E/A-Busses 16 ist mit der RPS 24 verbunden.
  • Grob gesagt, arbeitet das Datenprozessorsystem 10 für Datenübertragungen zwischen dem Prozessor 12 und einer Peripherieeinheit 18 oder 19 auf die folgende Weise: eine Datenübertragung wird durch die CPU 20 ausgelöst, wenn eine Übertragungsanforderung an den Vorrichtungscontroller 14 ausgegeben wird, dem die Peripherievorrichtung zugeordnet ist, die von der Übertragung betroffen ist. Die Übertragungsanforderung beinhaltet Information, die die Übertragungsrichtung und den Ort der Daten kennzeichnet, an den oder von dem zu übertragen ist.
  • Danach arbeitet der Vorrichtungscontroller 14 auf die Anforderung hin so, daß er die betroffene Peripherievorrichtung 18 (oder 19), die beteiligt ist, angibt und er Kommunikation mit dieser Vorrichtung beginnt, und er schließlich auf die Anforderung mit einem Wiederverbindungsinterrupt(RCI = Reconnect Interrupt)-Signal antwortet, das anzeigt, daß er und die zugeordnete Peripherievorrichtung 18 für die Datenübertragung bereit sind.
  • Häufig, obwohl dies in Fig. 1 nicht speziell dargestellt ist, ist eine größere Anzahl als zwei Vorrichtungscontroller 14 mit dem E/A-Bus 16 verbunden und von der CPU 20 können innerhalb einer kurzen Zeitspanne mehrere Anforderungen hinsichtlich Datenübertragungen ausgegeben werden. Daher ist es möglich, daß ein RCI-Signal, das die Bereitschaft für Datenübertragung anzeigt, von mehreren mit dem E/A-Bus 16 verbundenen Vorrichtungscontrollern 14 ausgegeben wird. In diesem Fall weiß die Prozessoreinheit 12 nicht, welche der Vorrichtungscontroller 14 das RCI-Signal lieferte, und sie muß die Vorrichtungscontroller 14 "zyklisch abfragen", um zu ermitteln, welcher derselben über eine zur Datenübertragung bereitstehende Peripherievorrichtung verfügt, und, wenn mehr als eine vorhanden ist, muß sie abhängig von einem Prioritätsplan festlegen, welche der Peripherievorrichtungen als erste mit der CPU 20 kommunizieren sollte, welche als zweite usw. Der Zeitaufwand für diese Bestimmung und zum Vorbereiten der tatsächlichen Datenübertragung kann hinsichtlich der Betriebszeit der CPU 20 erheblich sein.
  • Demgemäß ist es die Funktion der RPS 24, auf verschiedene Quittierungssignale zu reagieren, die auf dem E/A-Bus 16 stattfinden, nachdem von der CPU 20 eine Datenkommunikationsanforderung erfolgte, damit die CPU andere Maßnahmen ausführen kann, bis sie zur Handhabung aufgerufen wird oder auf andere Weise an der Datenübertragung beteiligt wird. So wäre es beim vostehend skizzierten Beispiel die Funktion der RPS 24, auf ein RCI-Signal oder mehrere zu reagieren, um (1) zu bestimmen, welche Peripherievorrichtungen 18, 19 Dienste anfordern, (2) die Richtung der Datenübertragung zu bestimmen und (3) die CPU 20 unmittelbar vor dem tatsächlichen Stattfinden der Datenübertragung zu benachrichtigen (jedoch mit ausreichender Zeitspanne, daß die CPU 20 reagieren kann).
  • Es wird nun auf Fig. 2 Bezug genommen, in der die RPS 24, die die Lehren der Erfindung verkörpert, detaillierter dargestellt ist. Wie veranschaulicht, beinhaltet die RPS 24 eine Mikroanweisungs-Speichereinheit 30, die Paare von 8-Bit-Mikroanweisungen, nämlich eine 8-Bit-Primär-Mikroanweisung und eine 8-Bit-Ziel-Mikroanweisung zusammen mit einem Paritätsbit, speichert und diese Paare an Mikroanweisungen der Reihe nach auf Adreßsignale hin ausgibt, wie sie von einem Adreßregister 32 erzeugt werden. Die Paare von Mikroanweisungen (zuzüglich der Parität) werden über eine Paritätsprüfung/Paritätserzeugungs-Schaltung PC/PG 34, in der die Parität für das Mikroprozessorpaar zunächst überprüft wird und dann eine Parität für jede gesonderte 8-Bit-Mikroanweisung erzeugt wird, hindurchgeführt. Aus der Schaltung PC/PG 34 wird die Primär-Mikroanweisung (mit ihrem einen Paritätsbit) durch eine Multiplexschaltung 36 geschickt und in ein 9-Bit-Decodierregister 38 geladen, und die Ziel-Mikroanweisung wird in einem 9-Bit-Halteregister 40 untergebracht. Der Ausgang des Halteregisters 40 ist an einen der zwei Eingänge der Multiplexschaltung 36 zurückverbunden.
  • Die im Decodierregister 38 enthaltene 8-Bit-Primär-Mikroanweisung wird einer Ablaufsteuerungslogik 44 zugeführt, während fünf Bits vom Ausgang des Decodierregisters 38 an eine Nulleinfüll/Paritätserzeugungs-Schaltung (ZF/PG) 46 geliefert werden. Die Schaltung ZF/PG 46 arbeitet so, daß sie die ankommenden fünf Bits mit zusätzlichen drei Bits vom Wert NULL (in den Positionen der höchstsignifikanten Bits) auffüllt und ein Paritätsbit hinzufügt, um ein 9-Bit-Wort zu bilden, das an eine Multiplexschaltung 48 gegeben wird. Gesteuert durch Steuersignale von der Ablaufsteuerungslogik 44 wird das Ausgangssignal der Schaltung ZF/PG 46 ausgewählt, um das Adreßregister 32 voreinzustellen, wenn eine Verzweigung in der Mikroanweisungsfolge ausgeführt wird, wie dies nachfolgend detaillierter beschrieben wird.
  • Der Inhalt des Adreßregisters 32 wird einer Inkrementier- und Paritätsvorhersage-Schaltung (INC/PP) 50 zugeführt, die für jeden Durchlauf durch sie zunächst nach der ankommenden, zu inkrementierenden Adresse sieht, vorhersagt, welche Parität für die inkrementierte Adresse gelten wird, die Adresse inkrementiert und die vorhergesagte Parität zu ihr hinzufügt. Die inkrementierte Adresse, zusammen mit der Parität, wird dann an die Multiplexschaltung 48 zurückgeliefert und in das Adreßregister 32 geladen, um das nächstfolgende Mikroanweisungspaar in der Speichereinheit 30 zu adressieren. Durch Vorhersagen der Parität aus der zu inkrementierenden Adresse anstatt eines Erzeugens der Parität aus der inkrementierten Adresse wird eine Prüfung des Inkrementierungsabschnitts der INC/PP 50 aufrechterhalten.
  • Die Speichereinheit 30 ist so konfiguriert, daß sie 32 Anweisungspaare enthält. Demgemäß werden nur fünf Bits des Inhalts des Adreßregisters 32 dazu verwendet, die der Speichereinheit 30 zugeführten Adreßsignale zu bilden. Es ist offensichtlich, daß zusätzliche Bits des Adreßregisters 32 verwendet werden könnten, wenn eine größere Speichereinheit 30 verwendet würde.
  • Die der Schaltung INC/PP 50 zugeführte Adresse wird gleichzeitig an eine Paritätsprüfschaltung 52 gegeben. Wenn sich herausstellt, daß die Parität falsch ist, erzeugt die Paritätsprüfschaltung 52 ein Ausgangssignal, das über ein ODER- Gatter 54 als Fehlersignal an die Ablaufsteuerungslogik 44 gegeben wird. Auf ähnliche Weise kann auch ein Fehlersignal, das falsche Parität anzeigt, durch die Schaltung PC/PG 34 erzeugt werden und an das ODER-Gatter 54 geliefert werden. Wenn sich ein Paritätsfehler herausstellt, beendet die Ablaufsteuerungslogik 44 ihren Betrieb und gibt ein Signal PARITÄTSPRÜFUNGSFEHLER aus, das der CPU mitgeteilt wird.
  • Zusätzlich zum Erzeugen der inkrementierten Adresse und der Parität erzeugt die Schaltung INC/PP 50 noch ein Vollständigkeitssignal (CMPLT), das anzeigt, wann die Speichereinheit 30 den Kreislauf durch alle 32 Mikroanweisungspaare vollzogen hat. Das Signal CMPLT wird dann erzeugt, wenn sich bei der Inkrementierung ein Übertrag der fünf geringstwertigen Bitpositionen des Adreßworts zeigt. Das Signal CMPLT wird an die Ablaufsteuerungsschaltung gegeben, um die RPS 24 anzuhalten, bis sie erneut aufgerufen wird, um eine Wiederverbindungsfolge auszuführen.
  • Zusätzlich zum Signal CMPLT wird von der Schaltung INC/PP 50 ein zweites Signal erzeugt, wenn das Adreßregister 32 in einem Timermodus arbeitet: ein Überlaufsignal (CO) wird erzeugt, wenn die Inkrementierung der Adresse einen Überlauf in der Position des höchstsignifikanten Bits erzeugt. Das Signal CO wird dazu verwendet, ein Latch 60 zu setzen, um ein Signal ZEITABLAUF zu erzeugen, das der CPU 20 über den Bus 26 (Fig. 1) anzeigt, daß die RPS 24 einen Zeitablaufzustand erreicht hat, während sie im Timermodus arbeitet. Außerdem wird das Signal ZEITABLAUF an die Ablaufsteuerungslogik 44 gegeben, um den Betrieb der RPS 24 einzufrieren.
  • Fig. 3 veranschaulicht die Grundstruktur der in der Speichereinheit 30 abgespeicherten Mikroanweisungspaare. Wie erkennbar, weist ein Mikroanweisungspaar, das mit der Bezugszahl 80 gekennzeichnet ist, zwei Mikroanweisungen auf, nämlich eine Primär-Mikroanweisung 82 und eine Ziel-Mikroanweisung 84. Die Bitposition F (hex) des Mikroanweisungspaars 80 ist das Paritätsbit (P), das für das gesamte Mikroanweisungspaar 80 gilt. "Verzweigungs"- oder "Schleife"-Mikroanweisungen sind in Bitpositionen 0-8 des Mikroanweisungspaars 80 enthalten, begleitet von Ziel-Mikroanweisungen in Bitpositionen 9-E; alle anderen Mikroanweisungen sind in Bitpositionen 0-7 enthalten, begleitet von Nullen in den restlichen Bitpositionen 8-E.
  • Verzweigungs- oder Schleife-Mikroanweisungen unterscheiden sich von solchen Mikroanweisungen, die keine Änderung in der Mikroprogrammfolge bewirken durch eine EINS in der Bitposition 0. Der Typ der vorzunehmenden Verzweigung wird durch die in den Bitpositionen 1-3 enthaltene Information gekennzeichnet.
  • Die RPS 24 arbeitet in drei verschiedenen Grundmodi, wenn sie ausgehend von ihrem Leerlaufzustand durch die CPU 20 aufgerufen wird: in einem ersten Modus arbeitet die RPS 24 nur als Timer. Die CPU 20 kann über die Busverbindung 27 (Fig. 1) und die Einheit MPX 48 (geschaltet durch die Ablaufsteuerungslogik 44 auf ein Signal CPU.OVRD von der CPU 20 hin -, das auch diesen Betriebsmodus auslöst) auf das Adreßregister zugreifen. So kann der Timerbetrieb ausgehend von jedem durch die CPU 20 vorgegebenen Voreinstellungswert starten und andauern, bis das Signal CO von der Schaltung INC/PP erzeugt wird oder bis ein Zeitablaufszustand auftritt. Wenn der Zeitablaufszustand nicht auftritt, setzt das Signal CO das Latch 60, um das Signal ZEITABLAUF auszugeben, und es friert den Betrieb der RPS 24 ein.
  • Dieser erste Betriebsmodus der RPS 24 wird von der CPU 20 verwendet, wenn sie wünscht, das Vorliegen oder Auftreten bestimmter Bedingungen innerhalb vorgegebener Zeitspannen zu prüfen. Im wesentlichen startet die CPU 24 die RPS 24 durch Einschreiben eines Zählwerts in das Adreßregister 32 und es wird ein Schleifenzustand erreicht, in dem dauernd hinsichtlich einer Bedingung geprüft wird. Wenn die Bedingung, nach der gesehen wird, auftritt, bevor das Signal CO von der Schaltung INC/PP 50 erzeugt wird, verläßt die CPU 20 ihre Schleife, setzt die RPS 24 zurück (z.B. in einen Leerlaufzustand) und fährt mit der Verarbeitung fort. Wenn die Bedingung, nach der gesehen wird, nicht auftritt, unterbricht das Signal ZEITABLAUF die Schleife der CPU.
  • Ein zweiter Modus ist ein normal programmierter Betrieb, wie er ebenfalls von der CPU 20 über ein Signal START initiiert wird. Während dieses Modus werden Mikroanweisungspaare der Reihe nach auf eine Adressenfolge hin, wie sie von der Kombination aus dem Adreßregister 32 und der Inkrementiereinrichtung 50 erzeugt wird, aus der Speichereinrichtung 30 abgerufen. Es kommt zu keiner Unterbrechung der Mikroanweisungsfolge. Wenn die Mikroanweisungspaare abgerufen und in das Decodier- bzw. Halteregister 38 bzw. 40 geladen werden, wird nur die Primär-Mikroanweisung decodiert und ausgeführt, was dazu führt, daß Steuersignale periodisch von der Ablaufsteuerungsschaltung auf dem Bus 70 ausgegeben werden. Wenn die RPS 24 die Teilaufgabe abgeschlossen hat, zu deren Ausführung sie aufgerufen wurde, wird das Adreßregister auf den maximalen Adressenzählwert für den Speicher inkrementiert, wodurch das Signal CMPLT erzeugt wird. Die RPS 24 bleibt dann auf diesem maximalen Adressenzählwert des Speichers im Leerlaufzustand, bis sie für einen anderen Teilprozeß gestartet wird. Die CPU 20 kann den Zustand der RPS 24 durch das Signal RPS.CMPLT (das erzeugt wird, wenn der Leerlaufzustand erreicht wird) überprüfen.
  • Der dritte Betriebsmodus beinhaltet ein Überprüfen hinsichtlich des Vorliegens oder Fehlens verschiedener "Quittierungs"- oder Bedingungssignale. In diesen Modus wird eingetreten, wenn, während des normalen (Modus zwei) Betriebs eine "Prüf- und Verzweigungs-" oder eine "Warte" (Primär) -Mikroanweisung in der Mikroanweisungsfolge angetroffen wird. Im ersten Fall erfolgt eine Überprüfung hinsichtlich des Vorliegens einer Bedingung (wie durch die Befehlsbitpositionen 1-3 der Mikroanweisung spezifiziert). Wenn die Prüfung RICHTIG ergibt, wird eine Verzweigung ausgehend von der normalen Mikroanweisungsfolge bewirkt; falls nicht, dauert der normale Ablauf fort. Beim Wartetyp einer Anweisung hält die RPS 24 an, um zu ermitteln, ob die Bedingung innerhalb einer vorgegebenen Zeitspanne den Wert RICHTIG erreicht. Wenn dies der Fall ist, wird eine Verzweigung herbeigeführt; falls nicht, hält der Betrieb an und es wird das Signal Zeitablauf erzeugt.
  • Der Primär-Verzweigungs(oder Warte)-Typ einer Mikroanweisung wird von einer Ziel-Mikroanweisung begleitet, die auszuführen ist, wenn die Prüfbedingung den Wert RICHTIG hat. So wird dann, wenn eine Verzweigung ausgeführt wird, die Zielanweisung die erste Anweisung für die Folge, zu der verzweigt wurde. Dies wird wie folgt bewerkstelligt: der Inhalt des Halteregisters 40 wird durch die Multiplexschaltung 36, die durch die Ablaufsteuerungslogik 44 gesteuert wird, hindurchgeführt und in das Decodierregister 38 geladen. Gleichzeitig werden die Bits 4-8 der Primär-Mikroanweisung über die Nullenauffüll/Paritätserzeugungs-Schaltung 26 und die Multiplexschaltung 48 angegeben, um in das Adreßregister32 geladen zu werden, das die Adresse der Mikroanweisung erstellt, die unmittelbar der Ziel-Mikroanweisung folgt, die nun im Decodierregister 38 enthalten ist.
  • Wenn die ausgeführte Anweisung eine Warteanweisung ist und die Bedingung nicht den Wert RICHTIG erhält, bevor das Signal CO erzeugt wird, wird die RPS eingefroren.
  • Signalleitungen 16a vom E/A-Bus 16 leiten Bedingungssignale (d.h. Quittierungssignale) an die Ablaufsteuerungslogik 44, die dazu verwendet werden, den Betrieb der RPS 24 auf die vorstehend beschriebene Weise zu leiten. Zusammengefaßt gilt: bestimmte Mikroanweisungen prüfen das Vorliegen einer Bedingung und "verzweigen", abhängig vom Ergebnis der Prüfung, zu einer Ausführung der Ziel-Mikroanweisung, die im Halteregister 40 enthalten ist, oder sie fahren mit der nächstfolgenden Mikroanweisung fort. Umgekehrt halten Warte(oder Schleife)-Mikroanweisungen den Betrieb an, wenn die Bedingung, auf die gewartet wird, noch nicht vorliegt, wobei das Adreßregister 32 als Timer verwendet wird. Wenn die Bedingung, nach der gesehen wird, vor Ablauf einer vorgegebenen Periode auftritt, erfolgt die Verzweigung; falls nicht, wird das Signal CO durch die Inkrementier- und Paritätserzeugungs-Schaltung 50 erzeugt und die RPS wird "eingefroren", bis sie durch die CPU 20 rückgesetzt wird.
  • Die Hauptvorteile der Erfindung sollten nun deutlicher sein. Zunächst werden Verzweigungen ohne die übliche Benachteiligung ausgeführt, bei der die Reihe der folgenden Schritte auszuführen ist: (1) Laden des Adreßregisters 32, (2) Auslösen eines Lesevorgangs betreffend die Speichereinheit 30, (3) Laden des Decodiererregisters 38 und dann (4) Decodieren der Anweisung. Demgegenüber wird, wenn sich eine Verzweigung als erforderlich erweist, die Ziel-Anweisung unmittelbar vom Halteregister 40 an das Decodierregister 38 übertragen, um decodiert und ausgegeben zu werden. Während dies auftritt, wird die Übertragung eines Teils der vorigen Anweisung an das Adreßregister 32, zum Erstellen der nächstfolgenden Anweisung in der Folge, auf die verzweigt wurde, ausgeführt.
  • Außerdem kann das Adreßregister dann, wenn Timerfunktionen erforderlich sind, ohne zusätzliche Schaltung als Timer arbeiten.
  • Demgemäß ist es dem Fachmann ersichtlich, während das Vorstehende für eine vollständige und komplette Offenbarung der Erfindung sorgt, daß Modifizierungen und Änderungen der offenbarten Erfindung leicht realisiert werden können. Z.B. kann das Adreßregister 32 unter Verwendung eines Binärzählers aufgebaut werden, falls Parität nicht von Bedeutung ist. Es kann auch Pipelinebetrieb von aus dem Speicher 30 abgerufenen Mikroanweisungen verwendet werden.

Claims (10)

1. Digitale Vorrichtung mit einer Speichereinrichtung (30) zum Aufnehmen mehrerer Anweisungen, gekennzeichnet durch:
- eine Adreßeinrichtung (32), die mit der Speichereinrichtung (30) verbunden ist, um Adreßsignale zu erzeugen, die bewirken, daß Paare von Anweisungen, zu denen eine Primäranweisung und eine Zielanweisung gehören, gleichzeitig von der Speichereinrichtung (30) ausgegeben werden;
- eine Registereinrichtung (37) zum Aufnehmen und Zwischenspeichern der Anweisungspaare, die einen ersten Abschnitt (38) und einen zweiten Abschnitt (40) zum jeweiligen Einspeichern der Primär- bzw. Zielanweisung beinhaltet;
- eine Decodiereinrichtung (44), die mit dem ersten Abschnitt (38) der Registereinrichtung (37) verbunden ist, um die Primäranweisung zu interpretieren, um aus ihr Steuersignale zu erzeugen, wobei die Decodiereinrichtung (44) eine erste Schaltungseinrichtung (16a) aufweist, die dazu dient, mindestens ein Bedingungssignal zu empfangen; und
- eine zweite Schaltungseinrichtung (36), die mit der Registereinrichtung (37) verbunden ist und auf die Decodierung bestimmter Primäranweisungen durch die Decodiereinrichtung (44) und auf das Vorhandensein eines Bedingungssignals anspricht, um die Zielanweisung an den ersten Abschnitt (38) der Registereinrichtung (37) zu übertragen.
2. Vorrichtung nach Anspruch 1, bei der die zweite Schaltungseinrichtung (36) eine Einrichtung (46, 48) zum Übertragen eines Segments der Primäranweisung an die Adreßeinrichtung (32) aufweist, um Adreßsignale zum Zugreifen auf die Speichereinrichtung (30) zu erzeugen.
3. Vorrichtung nach Anspruch 1, mit einer Timereinrichtung (48, 32, 50, 60), die so betrieben werden kann, daß sie durch die Decodiereinrichtung (44) gestartet wird, wenn bestimmte der Primäranweisungen interpretiert werden, um ein Zeitablaufsignal zu erzeugen, wenn ein Bedingungssignal für eine vorgegebene Zeitspanne fehlt, wobei das Zeitablaufsignal dazu verwendet wird, die Adreßeinrichtung (32) dazu zu veranlassen, Adreßsignale zu erzeugen, die bewirken, daß das nächste Paar von Anweisungen von der Speichereinrichtung (30) ausgegeben wird.
4. Vorrichtung nach Anspruch 3, ferner mit einer Inkrementiereinrichtung (50) zum Inkrementieren des von der Adreßeinrichtung gehaltenen Werts, wobei die Adreßeinrichtung (32) auch als Timereinrichtung arbeitet.
5. Verfahren zur Verwendung in einer digitalen Vorrichtung vom Typ, der so betrieben werden kann, daß er Folgen von Mikroanweisungen ausführt, wie sie von einer Speichereinrichtung (30) auf Adreßsignale von einer Adressenerzeugungseinrichtung (32) hin geliefert werden, wobei die Vorrichtung eine Einrichtung aufweist, die so arbeitet, daß sie Steuersignale (44) erzeugt und auf das Vorliegen eines Bedingungssignals oder mehrerer reagiert, wobei das Verfahren die folgenden Schritte aufweist:
- sequentielles und gleichzeitiges Abrufen von Paaren von Mikroanweisungen aus der Speichereinrichtung (30), wobei jedes Paar eine Primär-Mikroanweisung und eine Ziel-Mikroanweisung enthält;
- Decodieren der Primär-Mikroanweisung jedes abgerufenen Paars von Mikroanweisungen; und
- Reagieren auf vorgegebene Mikroanweisungen unter den decodierten Primär-Mikroanweisungen sowie auf das Vorliegen des Bedingungssignals, um einen Teil der zugehörigen Primär- Mikroanweisung als Adresse des Mikroanweisungspaars, das unmittelbar auf die Ziel-Mikroanweisung folgt, an die Adressenerzeugungseinrichtung (32) zu übertragen, und, im wesentlichen gleichzeitig, die Ziel-Mikroanweisung des Paars von Mikroanweisungen zu decodieren.
6. Verfahren nach Anspruch 5, mit dem Schritt des Erzeugens eines Zeitablaufsignals, wenn das Bedingungssignal für eine vorgegebene Periode fehlt.
7. Verfahren nach Anspruch 5, mit dem Schritt des Zurückhaltens des Antwortschritts, beim Fehlen des Bedingungssignals, bis (1) zum Auftreten des Bedingungssignals oder (2) eines Zeitablaufsignals, das den Ablauf einer vorgegebenen Zeitspanne anzeigt, wobei das zuerst auftretende Signal wirkt.
8. Verfahren nach Anspruch 7, mit dem Schritt des Erzeugens des Zeitablaufsignals bei Ablauf der vorgegebenen Zeitspanne.
9. Verfahren nach Anspruch 5, mit dem Schritt des Abrufens, beim Fehlen des Bedingungssignals, des nächstfolgenden Paars von Mikroanweisungen aus der Speichereinrichtung (30).
10. Digitale Vorrichtung, gekennzeichnet durch:
- eine Speichereinrichtung (30) zum Aufnehmen mehrerer Paare von Anweisungen, wobei jedes Paar von Anweisungen eine Primäranweisung und eine Zielanweisung beinhaltet;
- eine Adreßeinrichtung (32), die mit der Speichereinrichtung (30) verbunden ist, um Adreßsignale zu liefern, die bewirken, daß Paare von Anweisungen im wesentlichen gleichzeitig von der Speichereinrichtung (30) ausgegeben werden;
- eine Registereinrichtung (37) zum Aufnehmen und Zwischenspeichern der Paare von Anweisungen, die einen ersten (38) und einen zweiten (40) Abschnitt zum jeweiligen Einspeichern der Primär- bzw. Zielanweisung beinhaltet;
- eine Decodiereinrichtung (44), die mit dem ersten Abschnitt der Registereinrichtung verbunden ist, um die Primäranweisung zu interpretieren, um aus dieser Steuersignale zu erzeugen, wobei die Decodiereinrichtung (44) eine erste Schaltungseinrichtung (16a) aufweist, die dazu dient, mindestens ein Bedingungssignal zu empfangen; und
- eine zweite Schaltungseinrichtung (36), die mit der Registereinrichtung (37) verbunden ist und auf das Decodieren bestimmter Primäranweisungen durch die Decodiereinrichtung (44) und auf das Vorliegen von Bedingungssignalen anspricht, um die Zielanweisung der Decodiereinrichtung (44) zuzuführen, um die Zielanweisung zu interpretieren, wobei die zweite Schaltungseinrichtung (36) eine Einrichtung (46, 48) zum Übertragen zumindest eines Segments der Primäranweisung an die Adreßeinrichtung (32) im wesentlichen gleichzeitig mit der Übertragung der Zielanweisung an die Decodiereinrichtung (44) beinhaltet, um Adreßsignale für den Zugriff auf die Speichereinrichtung (30) zu erzeugen.
DE3751353T 1986-03-13 1987-03-09 Verzweigungsmechanismus einer Befehlsfolgekontrolleinheit. Expired - Fee Related DE3751353T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US06/839,742 US4837681A (en) 1986-03-13 1986-03-13 Instruction sequencer branch mechanism

Publications (2)

Publication Number Publication Date
DE3751353D1 DE3751353D1 (de) 1995-07-27
DE3751353T2 true DE3751353T2 (de) 1996-02-29

Family

ID=25280522

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3751353T Expired - Fee Related DE3751353T2 (de) 1986-03-13 1987-03-09 Verzweigungsmechanismus einer Befehlsfolgekontrolleinheit.

Country Status (5)

Country Link
US (1) US4837681A (de)
EP (1) EP0237311B1 (de)
JP (2) JPH0679270B2 (de)
AU (1) AU592854B2 (de)
DE (1) DE3751353T2 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058007A (en) * 1987-11-05 1991-10-15 Raytheon Company Next microinstruction generator in a microprogram control unit
US5640585A (en) * 1988-02-09 1997-06-17 Ast Research, Inc. State machine bus controller
US4914579A (en) * 1988-02-17 1990-04-03 International Business Machines Corporation Apparatus for branch prediction for computer instructions
CA2030404A1 (en) * 1989-11-27 1991-05-28 Robert W. Horst Microinstruction sequencer
US5291610A (en) * 1990-07-12 1994-03-01 The Regents Of The University Of California Microcode sequencer changing states in response to an external gating input level change upon the occurrence of a WAIT instruction
US5265213A (en) * 1990-12-10 1993-11-23 Intel Corporation Pipeline system for executing predicted branch target instruction in a cycle concurrently with the execution of branch instruction
EP0522513A2 (de) * 1991-07-09 1993-01-13 Hughes Aircraft Company Hochgeschwindigkeitsparallelmicrokodeprogrammsteuerung
US5410660A (en) * 1992-12-24 1995-04-25 Motorola, Inc. System and method for executing branch on bit set/clear instructions using microprogramming flow
US7324112B1 (en) 2004-04-12 2008-01-29 Nvidia Corporation System and method for processing divergent samples in a programmable graphics processing unit
US7477255B1 (en) * 2004-04-12 2009-01-13 Nvidia Corporation System and method for synchronizing divergent samples in a programmable graphics processing unit

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3551895A (en) * 1968-01-15 1970-12-29 Ibm Look-ahead branch detection system
US3764988A (en) * 1971-03-01 1973-10-09 Hitachi Ltd Instruction processing device using advanced control system
US3987416A (en) * 1973-09-24 1976-10-19 Vandierendonck Jerry L Electronic calculator with display and keyboard scanning signal generator in data memory
JPS5247638A (en) * 1975-10-15 1977-04-15 Toshiba Corp Information processing device
AU518589B2 (en) * 1976-05-03 1981-10-08 International Business Machines Corporation Microprocessor system
SE403322B (sv) * 1977-02-28 1978-08-07 Ellemtel Utvecklings Ab Anordning i en styrdator for forkortning av exekveringstiden for instruktioner vid indirekt adressering av ett dataminne
US4354232A (en) * 1977-12-16 1982-10-12 Honeywell Information Systems Inc. Cache memory command buffer circuit
US4179737A (en) * 1977-12-23 1979-12-18 Burroughs Corporation Means and methods for providing greater speed and flexibility of microinstruction sequencing
JPS58186846A (ja) * 1982-04-27 1983-10-31 Nec Corp マイクロプログラム制御装置
US4710866A (en) * 1983-09-12 1987-12-01 Motorola, Inc. Method and apparatus for validating prefetched instruction
US4654786A (en) * 1984-04-11 1987-03-31 Texas Instruments Incorporated Data processor using picosquencer to control execution of multi-instruction subroutines in a single fetch cycle

Also Published As

Publication number Publication date
US4837681A (en) 1989-06-06
EP0237311A2 (de) 1987-09-16
JPH0746314B2 (ja) 1995-05-17
AU6979087A (en) 1987-09-17
JPH06301528A (ja) 1994-10-28
JPS62224826A (ja) 1987-10-02
EP0237311A3 (de) 1991-04-10
AU592854B2 (en) 1990-01-25
DE3751353D1 (de) 1995-07-27
JPH0679270B2 (ja) 1994-10-05
EP0237311B1 (de) 1995-06-21

Similar Documents

Publication Publication Date Title
DE3685863T2 (de) Rechnersystem zur steuerung virtueller maschinen.
DE2722099C2 (de)
DE69202278T2 (de) Leistungsverbrauchreduzierung in einem digitalen Prozessor.
DE2855106C2 (de) Einrichtung zur Durchführung von bedingten Verzweigungen
DE3751164T2 (de) Datenprozessor mit verschiedenen Unterbrechungsverarbeitungsarten.
DE2316296C2 (de) Mikroprogrammierbarer Prozessor
DE2657848C2 (de)
DE2456578C2 (de) Datenverarbeitungsanlage
DE3587213T2 (de) Verarbeitungseinheit mit der faehigkeit ein oder mehrere programme auszufuehren mit einer mehrzahl von funktionseinheiten.
DE69908682T2 (de) Prozessor mit Echtzeit-Ablaufsteuerung zur Fehlerbeseitigung ohne Fehlerbeseitigungsmonitor
DE3650092T2 (de) E/a-steuerung mit zwei funktionen.
DE2714805A1 (de) Datenverarbeitungssystem
CH522921A (de) Rechneranlage
DE3638572C2 (de)
DE2411963A1 (de) Datenverarbeitungsanlage
DE2715073A1 (de) Mikroprogrammierte rechner-steuervorrichtung
DE3751353T2 (de) Verzweigungsmechanismus einer Befehlsfolgekontrolleinheit.
DE2629266A1 (de) Ein/ausgabe-system
DE2911909C2 (de) Digitales Datenverarbeitungsgerät
DE68927292T2 (de) Mikrorechner, geeignet zur Schnellverarbeitung eines Verzweigungsbefehlskodes
DE3751287T2 (de) Während einer Instruktionsausführung eine Unterbrechungsanforderung empfangender Mikroprogrammkontrolleur.
DE2906685C2 (de)
DE2759120C2 (de)
DE68928300T2 (de) Verfahren und Vorrichtung für Pipeline-Befehlsausführung
DE69029250T2 (de) Pipelinerechner mit einer, jedem Halboperationszyklus alternierenden Schreibsteuerung zur Vermeidung von Zugriffskonflikten in Mehrzweckregistern

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee