DE2512270A1 - Steuereinheit eines durch mikroprogramme steuerbaren prozessors einer datenverarbeitungsanlage und verfahren zu ihrem betrieb - Google Patents

Steuereinheit eines durch mikroprogramme steuerbaren prozessors einer datenverarbeitungsanlage und verfahren zu ihrem betrieb

Info

Publication number
DE2512270A1
DE2512270A1 DE19752512270 DE2512270A DE2512270A1 DE 2512270 A1 DE2512270 A1 DE 2512270A1 DE 19752512270 DE19752512270 DE 19752512270 DE 2512270 A DE2512270 A DE 2512270A DE 2512270 A1 DE2512270 A1 DE 2512270A1
Authority
DE
Germany
Prior art keywords
microinstruction
memory
microprogram
register
buffer memory
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.)
Pending
Application number
DE19752512270
Other languages
English (en)
Inventor
Waldemar Dipl Ing Strutynski
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.)
Siemens AG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE19752512270 priority Critical patent/DE2512270A1/de
Priority to CH174376A priority patent/CH597648A5/xx
Priority to FR7607495A priority patent/FR2304961A1/fr
Priority to US05/668,060 priority patent/US4040033A/en
Priority to IT21339/76A priority patent/IT1058485B/it
Priority to GB11046/76A priority patent/GB1536224A/en
Priority to NL7602926A priority patent/NL7602926A/xx
Priority to BE165389A priority patent/BE839824A/xx
Publication of DE2512270A1 publication Critical patent/DE2512270A1/de
Pending 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/24Loading of the microprogram
    • 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)
  • Executing Machine-Instructions (AREA)
  • Advance Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

SIEMElTS AKTIElTGESELLSCHAi1T München 2, 2 Ol MRZ 19 7 5
Berlin und München Wittelsbaeherplatz 2
VPA 75 P 2 O 4S BRO - * 2512270
Steuereinheit eines durch Mikroprogramme steuerbaren Prozessors einer Datenverarbeitungsanlage und Verfahren zu ihrem Betrieb.
Die Erfindung bezieht sich auf eine Steuereinheit eines durch Mikroprogramme steuerbaren Prozessors einer Datenverarbeitungsanlage mit einem beschreibbaren Mikroprogrammspeicher mit einer gegenüber dea Maschinenzyklus größeren Zugriffszeit, einem an dessen Auswahl-äingänge angeschlossenen Adreßregister, einem mit den Informationsausgangen des Hikroprograoimspeichers verbundenen Mikrobefehlsregister, einer an dieses angeschlossenen Decodiereinheit, durch die aus einem Mikrobefehl im Mikrobefehlsregistar Steuersignale für eine Yerarbeitungseinheit des Prozessors ableitbar* sind und einem zwischen dem Mikrobefehlsregister und dem Adreßregister angeordneten Sehaltnetz zum Bilden der Adresse des folgenden Mikrobefehls und auf ein Verfahren zu ihrem Betrieb.
Die Mikroprogrammierung hat als Steuerungsprinzip für digitale Rechenwerke wegen einer Reihe von Vorteilen ein wachsendes Interesse gefunden. Die Steuersignale für den mikroprogramragesteuerten Prozessor werden aus Bitmustern abgeleitet, die in Mikrobefehlsworten zusammengefaßt sind und in Pestwertspeichern oder beschreibbaren Steuerspeichern abgelegt werden.
Wie Husson in seinem Buch "Microprogramming: Principles and Practices",Prentice Hall 1970, im Kapitel 2.8 ausführt, ist dieser Mikroprogrammspeicher ein wesentlicher, da meist kostenbestimmender Bestandteil einer Mikroprogrammsteuerung, Er besitzt durch die Anzahl der Mikrobefehlsworte und der Bits im einzelnen Mikrobefehlswort zwei Dimensionen. Die
TPA 9/210/4070 - 2 -
6098 39/0597
"benötigte Anzahl von Mikrobefehls«orten hängt ab von dem Umfang und der Komplexität der gewählten Maschinenbefehle, von ihren Formaten, vom Adressierungsmechanismus und von der Leistungsfähigkeit der Unterbrechungsbehandlung der datenverarbeitenden Anlage.
Die Breite jedes Mikrobefehlswortes bestimmt sich aus dem Umfang des im System möglichen Parallelbetriebes. Je größer die Anzahl paralleler Datenwege ist, desto mehr unterschiedliche Kontrollfelder benötigt man, diese zu steuern. Je komplexer die Datenwege selbst sind, desto größer wird die Anzahl von Steuerleitungen und damit wiederum desto umfangreicher die zugehörigen Kontrollfelder. Ein umfangreicheres Mikrobefehls™ort schließt βμΐ der anderen Seite in sich, daß eine größere Anzahl von Punktionen in einem MaschiiBnzyklus bearbeitet werden kann,' so daß sich die Anzahl der Mikrobefehlsworte reduziert.
Dies deutet bereits eine ganze Reihe von Randbedingungen an, die beim Entwurf und dem Konzept von mikroprogrammierbaren Prozessoren zu berücksichtigen und nicht allein von der Kostenfrage her bestimmt sind. Der Einfluß technologischer und funktioneller Randbedingungen auf das Mikrobefehlsforraat ist in "Elektronische Rechenanlagen" 1972, Heft 1, Seite 28 bis 32, im einzelnen beschrieben. Dort werden nicht nur unterschiedliche Mikrobefehlsstrukturen zur direkten oder codierten Steuerung des Prozessors erläutert, sondern auch gerade im Zusammenhang mit der zu wählenden Technologie die Zeitverhältnisse beim Steuerungsablauf im Prozessor betrachtet. Diese sind auf die technologisch bedingte Speicherzugriffszeit für ein gewähltes Speichermedium und auf die typischen Laufzeiten der für die benötigten Schaltnetze und Registersätze eingesetzten Schaltkreistechniken zurückzuführen. Um eine leistungsfähige Steuerung zu erreichen, muß also untersucht werden,
VPA 9/210/4070 - 3 -
60 98 3.9/0 59 7
wie sich die Zeiten für den Maschinenzyklus, den Mikroprogramraspeicherzyklus, die Mikrobefehlsdecodierung und die Ermittlung der Adresse des Folgemikrobefehls zueinander verhalten. Diese Verhältnisse sind dann bei der Wahl des Mikrobefehlsformates zu "berücksichtigen.
Der gesamte Zeitaufwand für die .Bearbeitung eines Mikrobefehls setzt sich bei sequentieller Bearbeitung aus folgenden vier Größen zusammen:
Zugriff zum Mikroprcgrammspeicher und Auslesen des adressierten Mikrobefehles in ein Mikrobefehlsregister; Decodieren des Inhalts des Mikrobefehlsregisters; Verknüpfen der vom Mikrobefehl adressierten Registerinhalte in einer Verarbeitungseinheit, d. h. der eigentliche Maschinenzyklus;
und Bilden der Adresse des nächsten Mikrobefehls. Laufen diese einzelnen Vorgänge ohne jegliche Überlappung ab, muß die Verarbeitungseinheit nach jedem Maschinenzyklus warten, bis der nächste Mikrobefehl gelesen und de'codiert ist. In diesem Extremfall sollte das Mikrobefehlsforraat so ausgelegt sein, daß ein Mikrobefehl entweder einen im Verhältnis zur Zugriffszeit langen oder mehr als einen Maschinensyklus steuern kann. Praktisch versucht man jedoch, die genannten Vorgänge so -weit wie möglich zu überlappen. Diesem Versuch sind Grenzen gesetzt, da auch in Mikroprogrammen datenabhängige Verzweigungen möglich sein müssen, die aber die Bildung der Eolgeadresse zeitlich einschränken.
Ohne auf weitere Einzelheiten näher eingehen zu müssen, ergibt sich daraus bereits eindeutig, daß die Zeitverhältnisse des Mikroprogrammspeichers das Mikrobefehlsformat beeinflussen. In der genannten Veröffentlichung wird daraus allgemein folgender Schluß gezogen: Ist der Speicherzyklus langer als ein möglicher Maschinenzyklus, so ist das Mikrobefehlsformat zu erweitern. Dann kann entweder mit zu-
VPA 9/210/4070 - 4 -
6098 3.9/0b97
sätzlichem Schaltungsaufwand in der Verarbeitungseinheit in einem Maschinenzyklus mehr verarbeitet werden, so daß sich der Maschinenzyklus verlängert, oder aber ein Mikrobefehl mehr als einen Maschinenzyklus steuern. Ist dagegen der Speicherzyklus wesentlich kurzer als ein vorgesehener Maschinenzyklus, sollte das Format der Mikrobefehlsworte verringert werden, um den Masehinenzyklus zu verkürzen.
Allgemein folgt daraus, daß die Größe des Mikrobefehlswortes und damit der Umfang der Verarbeitung in einem Masehinenzyklus so an die Technologie, ,d. h. die Geschwindigkeit des Mikroprogrammspeichers anzupassen ist, daß Mikroprogrammspeicher und Verarbeitungseinheit mit ungefähr gleichem Zyklus und geeigneter Überlappung arbeiten können, ohne daß eine der beiden Einheiten auf die andere warten muß.
Dieses allgemeine Prinzip führt im praktischen Pail zu dem Kompromiß, die Struktur eines mikroprogrammgesteuerten Prozessors nach den Zeitverhältnissen des als Mikroprogratmaspeicher verwendeten Speichermediums auszurichten. Zweifellos verzichtet man dabei auf die Vorteile von leistungsfähigeren Prozessoren mit Rücksicht auf "langsamere" Technologien beim verwendeten Speicherraediura. Speicher und Prozessor sind in diesem Pail derart aufeinander ausgerichtet, daß es kaum sinnvoll erscheint, den Prozessor auch noch bei künftig zu erwartenden, schnelleren Speichermedien zu verwenden.
Der Erfindung liegt daher die Aufgabe zugrunde, eine Steuereinheit eines durch Mikroprogramme steuerbaren Prozessors der eingangs genannten Art derart auszubilden, daß die sich aus der Struktur und dem Aufbau ergebenden Eigenschaften eines modernen Prozessors in bezug auf seine Leistungsfähigkeit voll auszunutzen sind, d. h. daß die Wahl des Speicher-
VPA 9/210/4070 - 5 -
6098 3 9/0597
25Ί2270
mediums für den beschreiDaren Mikroprogrammspeicher die Leistungsfähigkeit der gesamten Anlage v;ohl noch mitbestimmt, jedoch nicht mehr ausschlaggebend beeinflußt.
Diese Aufgabe wird erfindungsgemäß durch die im Kennzeichen des Patentanspruches 1 genannten Merkmale gelöst. Pur den heute praktischen Pail eines "langsamen" Mikroprogramaspeichers mit einer gegenüber einem möglichen Maschinenzyklus langen Zugriffszeit bedeutet dies folgendes: Entgegen dem obengenannten allgemeinen Prinzip wird die Maschinenzykluszeit nicht verlängert und damit werden die sich daraus ergebenden Konsequenzen in bezug auf das Mikrobefehlsformat und den Schaltungsaufwand vermieden. Die in der einfachen Struktur eines Prozessors mit kurzen Haschinsnzykluszeiten liegenden Vorteile bleiben daher gewahrt. Man kann deshalb einen derartigen Prozessor später auch mit weiterentwickelten Speichermedien zusammen betreiben und dann ohne zusätzlichen Aufwand eine höhere Leistung erreichen.
Die Verwendung eines Pufferspeichers für die Mikrobefehle bringt einen Leistungsgewinn, der darauf beruht, daß es in Mikroprogrammen ebenso wie in Programmen höherer Programmiersprachen Programmteile gibt, die nacheinander mehr als einmal durchlaufen v/erden. Die einzelnen Mikrobefehle derartiger Programmschleifen werden parallel zu ihrer erstmaligen Ausführung in einen schnellen Zwischenspeicher eingetragen und brauchen dann bei jedem weiteren Durchlauf der Schleife nicht mehr aus dem relativ langsamen Mikroprogrammspeicher gelesen zu v/erden.
Von besonderem Vorteil ist dabei der geringe schaltungstechnjsche Aufwand für diesen Pufferspeicher und seine Ansteuerung. Er ist wesentlich geringer als der Aufwand, der
"bei einer Verlängerung des Maschinenzyklus durch die Er- VPA 9/210/4070 , - 6 -
6098 39/0597
Weiterung des Mikrobefehlsformats und - damit verbunden der Hardware notwendig ist. Ein anderer Vorteil dieser Lösung für das gesamte System ist die damit ebenfalls verbundene Entlastung einer für den Arbeitsspeicher und den Mikroprogrammspeicher gemeinsamen Schnittstelle, da dann nur während des ersten Schleifendurchlaufs zum Mikroprograramspeicher zugegriffen werden muß.
Andere Weiterbildungen der Erfindung sind in Unteransprüchen gekennzeichnet.
Ausführungsbeispiele der Erfindung werden im folgenden anhand der Zeichnung näher erläutert. Eg zeigt:
Pig. 1 ein Blockschaltbild eines erfindungsgemäß ausgebildeten, mikroprogrammgesteuerten Prozessors,
Pig. 2 ein allgemeines Beispiel des Steuerungsablaufes bei der Ausführung eines Mikroprogramms mit mehreren, teilweise ineinander geschachtelten Programmschleifen,
Pig. 3 die Belegung des Pufferspeichers und den Zustand des diesem zugeordneten Markiernetzwerkes bei der Ausführung des in Pig. 2 dargestellten Mikroprogramms ,
Pig. 4 und
Pig. 5 zwei zusammenhängende Teile eines Plußdiagrammes, in dem der Steuerungsablauf für das in Fig. 2 dargestellte Beispiel eines Mikroprogrammes ausführlicher dargestellt ist.
Das Blockschaltbild eines mikroprogrammgesteuerten Prozessors einer datenverarbeitenden Anlage in Pig. 1 besitzt eine Steuereinheit SE und eine Verarbeitungseinheit VB. Wegen des funktioneilen Zusammenhanges ist innerhalb der Steuereinheit SE ein beschreibbarer Mikroprogrammspeicher (Writable Control Memory) WCM angegeben. Dieser Matrixspeicher enthält ζ + 1 Mikrobefehlsworte mit jeweils χ +
VPl 9/210/4070 - 7 -
609839/0 59 7
Bitstellen, die auf Grund des Inhalts eines dein Mikroprogrammspeicher WON zugeordneten Adreßregisters AR mit b + 1 Bitstellen auswählbar sind. Dessen Länge ergibt sich somit aus der Beziehung
(1) b = In (z+ 1) .
Die Informationsausgänge des Mikroprogrammspeichers WCM sind, wie durch einen stark ausgezogenen Datenweg angedeutet ist, parallel mit den Eingängen eines Kikrobefehlsregisters MBR mit χ + 1 Bitstellen verbunden. An dieses Register ist eine Decodiereinheit DEG zum Umwandeln des jeweiligen InformationsInhalts des Mikrobefehlsregisters KBR in Steuersignale angeschlossen, die über Steuersignalleitungen ST den einzelneil Punkt ions einheit en der ■Verarbeitungseinrichtung VE zugeführt werden.
In dieser Verarbeitungseinheit VE sind durch Pfeile rein schematisch Datenwege D/I und D/O angegeben, die den Datenfluß für zu verarbeitende bzw. bereits verarbeitete Daten andeuten. Dafür notwendige Steuerleitungen zum Adressieren angeforderter bzw. abzugebender Daten sind mit ADR bezeichnet. Um in einem Mikroprogramm die Adresse des folgenden Mikrobefehles zu bilden, ist ein weiteres Schaltnetz PIiB vorgesehen, das zwischen dem Mikrobefehlsregister KBR und dem Adreßregister AR angeordnet ist. Soweit bisher beschrieben, ist der prinzipielle Aufbau des mikroprogrammgesteuerten Prozessors an sich bekannt, so daß es sich erübrigt, die geschilderte Struktur der Steuereinheit SE und noch viel mehr der Verarbeitungseinheit VE näher zu erläutern.
Die dargestellte Steuereinheit SE enthält aber über die erwähnte bitparallele Verbindung der Informationsausgänge des Mikroprogrammspeichers WCM mit dem Mikrobefehlsregister MBR hinaus einen weiteren indirekten Datenweg. Die Informationsausgänge des Mikroprogrammspeichers WCM sind nämlich' .auch noch parallel an einen aus einem "schnellen" Register-
9/210/4070 609839/0597
25Ί2270
satz gebildeten Pufferspeicher MC angeschlossen. Dieser besitzt wegen seines Aufbaus eine wesentlich kürzere Zugriff szeit als der Mikroprogrammspeicher WCM und hat darüber hinaus nur einen Umfang von y + 1 Mikrobefehlsorten mit jeweils χ + 1 Bitstellen. Seine Adressierung erfolgt über die niederwertigen a + 1-Bitstellen des Adreßregisters, AR entsprechend der Beziehung
(2) a = In (y + 1).
Dem Pufferspeicher MC zugeordnet ist ein Markiernetav/erk MCP. Dieses enthält für jeden Speicherplatz eines Mikrobefehlswortes im Pufferspeicher MC ein Merker-Flip-Flop. Diese Merker-Flip-Flops MCPO bis MCPY werden jeweils gesetzt, wenn der zugeordnete Speicherplatz des Pufferspeichers MC geladen wird. Der gesetzte Zustand eines Merker-Flip-Flops stellt damit ein Gültigkeitskennzeichen für einen bestimmten Eintrag im Pufferspeicher MG dar. Die Informationsausgange des Pufferspeichers MC sind ihrerseits parallel zu den Informationsausgängen des Mikroprograminspeichers VCM mit den Eingängen des Mikrobefehlsregisters MBR verbunden. Im Mikrobefehlsregister MBR können daher Mikrobefehle entweder direkt aus dem Mikroprogrammspeicher WCM oder aus dem Pufferspeieher
MC zur Decodierung bereitgestellt, werden.
Zur Erläuterung des Steuerungsablaufes, d. h. der Bereitstellung der Mikrobefehle zur Decodierung ist in Fig. 2 ein schematisches Beispiel eines Mikroprogramms in Form eines vereinfachten Flußdiagrammes dargestellt. Dabei ist beispielhaft vorausgesetzt, daß die Zugriffsbreite des Mikroprogrammspeichers WCM maximal dem doppelten Mikrobefehlsformat entspricht. Dies ist im Flußdiagramm durch je zwei nebeneinandergestellte Mikrobefehle MB angedeutet·
Der mögliche Maschinenzyklus sei nur ein Viertel der Zugriffszeit zum Mikroprogrammspeicher ViCM, so daß mit einem Speicherzugriff bei Ausnutzung beider Mikrobefehle zwei Maschinenzyklen der Verarbeitungseinheit gesteuert werden können. Das Verhältnis von Speieherzugriffszeit zu Verarbeitungszeit beträgt damit 2:1, unter der Voraussetzung,
609839/0597 VPA 9/210/4070 ' - 9 -
daß die Mikrobefehle jeweils direkt aus dem Mikroprogrammspeicher gelesen werden müssen. V/ie zu zeigen sein wird, verbessert sich dieses Verhältnis jedoch entscheidend durch die Verwendung des Pufferspeichers MC. ¥eiterhin enthält das Plußdiagramm in Pig. 2 nur die für das grundsätzliche Verständnis des Ablaufs notwendigen Informationen, d. h. keine Angaben darüber, welche Maschinenfunktionen im einzelnen gesteuert werden.
Verfolgt man den eingezeichneten Datenfluß, so wird deutlich, daß dieses Mikroprogramm drei ineinandergeschachtelte Schleifen S1, S1.1 und S1.2 besitzt. Die übergeordnete Schleife S1 besteht aus sieben Mikrobefehlen MB2 bis MB8 und enthält die beiden anderen Schleifen 31.1 mit den Mikrobefehlen MB2 bis MB4 und S1.2 mit den Mikrobefehlen MB5 bis MB7. Pur den Steuerungsablauf v/erden zwei Betriebs1«·; eis en, der Hormalmodus und der Schleifenmodus, unterschieden,
Im Normalmodus dient der Pufferspeicher MC nur zum Zwischenspeichern des bei einem Zugriff zum Milcroprogrammspeicher gelesenen aweiten Mikrobefehls, solange der erste das Mikrobefehlsregister MBR belegt. Der Schleifenmodus dagegen wird durch Angabe einer entsprechenden Nebenfunktion in dem vor dem ersten Mikrobefehl der Schleife auszuführenden Mikrobefehl eingeleitet. Nun wird jeder aus dem Mikroprogrammspeicher WCM gelesene Mikrobefehl auch in den Pufferspeicher MC geladen. Der Schleifenmodus wird durch Angabe einer von mehreren möglichen Nebenfunktionen in einem Mikrobefehl ausgeschaltet. Dabei werden alle Einträge im Pufferspeicher MG für ungültig erklärt, d. h. im Markiernetzwerk MCP alle Merker-Plip-Plops zurückgesetzt. Die Steuerung befindet sich damit wieder im Zustand des Normalraodus.
Pur das in Pig. 2 dargestellte Beispiel eines Mikroprogrammes ist die angedeutete Belegung des Pufferspeichers MC und der Zustand des zugeordneten Markiernetzwerks MCP in Pig. 3 dargestellt. Im Pufferspeicher MC sind mit MCO bis MCy die Speicherplätze des Pufferspeichers für jeweils ein Mikrobefehlswortjim Markiernetzwerk MCP die einzelnen diesen Speicherplätzen zugeordneten Merker-Plip-Plops mit MCPO bis
VPA 9/210/4070 609839/0597 _ 10 -
MCPy bezeichnet. Gültige Einträge im Pufferspeicher MO sind durch eingetragene Mikrobefehle MB1 bis M9 direkt angegeben, ungültige Einträge dagegen durch einen Stern symbolisiert.
Der Ablauf des Mikroprogramms im einzelnen ist anhand eines auf die Pig. 4 und Pig. 5 aufgeteilten Plußdiagrammes näher erläutert. Dieses zeigt, beginnend mit Pig. 4 oben, daß zunächst mit einem Speieherzugriff die beiden Mikrobefehle MBO und MB1 aus dem Mikroprogrammspeicher WCM gelesen werden. Der erste Mikrobefehl IiBO wird direkt in das Mikrobefehlsregister MBR übertragen, der zweite Mikrobefehl MJ31 im Pufferspeicher MG zwischengespeichert. Ausgewählt wird der Speicherplatz MG1 auf Grund der a + 1 niederwertigen Bitstellen des Eintrages im Adreßregister AR entsprechend der Beziehung (2). Mit diesem Eintrag wird das zugehörige Merker-Plip-Plop MGP1 im Markiernetzwerk MCP gesetzt und damit der Eintrag gültig.
Der erste Mikrobefehl MBO wird decodiert, ausgeführt und danach auf Grund der (a + 1) niederwertigen Bitstellen der Adresse des Folgemikrobefehls das Merker-Plip-Plop MCP1 abgefragt, ob es einen gültigen Eintrag kennzeichnet. Da dies der Pail ist, wird nun der im Speicherplatz MC1 niedergelegte zweite Mikrobefehl MB1 in das Mikrobefehlsregister MBR übertragen und zugleich das zugeordnete Merker-Plip-Plop MCP1 rückgesetzt, da der Normalmodus eingeschaltet ist. Der nunmehr bereitgestellte' zweite Mikrobefehl MB1 kann nun decodiert und verarbeitet werden. In einer seiner Hebenfunktionen enthält er eine Angabe, daß das Mikroprogramm mit dem nächsten Mikrobefehl in eine Schleife eintritt.
Damit ist der UOrmalmodus ITM in Pig.4- durch die rechts eingezeichneten, senkrecht verlaufenden Pfeile angedeutet beendet, die Steuerung tritt in den analog angedeuteten Schleifenraodus SM ein. Zunächst wird nun das zweite Merker-Plip-Plop MCP2 abgefragt. Dieses ist noch rückgesetzt und kennzeichnet damit, daß die beiden nächsten Mikrobefehle MB2 und MB3 erst aus dem Mikroprogrammspeicher WOM gelesen werden müssen. Der Mikrobefehl MB2 wird direkt in das Mikrobefehlsregister MBR und in den Speicherplatz MC2 des Puffer-
609839/0597
YPA 9/210/4070 · " , - 11 -
Speichers MC übertragen. Der andere Mikrobefehl MB3 wird im Speicherplatz MC3 des Pufferspeichers MC abgelegt, und beide Einträge werden für gültig erklärt. Nach der Verarbeitung des Mikrobefehls MB2 wird abgefragt, ob der nächste Speicherplatz im Pufferspeicher MC einen gültigen Eintrag enthält; da dies der Pail ist, wird der Inhalt dieses Speicherplatzes in das Mikrobefehlsregister MBR übertragen. Der vierte Mikrobefehl M33 ist damit bereitgestellt und kann decodiert und bearbeitet werden.
Danach wird das nächste Merker-Flip-Flop MCP4 abgefragt. Im ersten Durchlauf der Programmschleife markiert es noch keinen gültigen Eintrag, daher werden die beiden folgenden Mikrobefehle MB4 und M35 erst aus dem Mikroprogrammspeicher gelesen und analog wie die Mikrobefehle MB 2 und MB3 behandelt.
Bei der Verarbeitung des fünften Mikrobefehles MB4, der nach der Voraussetzung der letzte Mikrobefehl der geschachtelten Programmschleife S1.1 ist, wird unter anderem festgestellt, ob die Testbedingung für diese Schleife S1.1 erfüllt ist. Ist diese erfüllt, so schließt sich die Programmschleif e, und der Programmablauf beginnt erneut bei der mit A bezeichneten Zusammenführung. Bei einem erneuten Durchlauf der Programmschleife S1.1 sind alle benötigten Mikrobefehle bereits im Pufferspeicher MC enthalten. Daher werden alle Mikrobefehle aus dem Pufferspeicher MC gelesen und in das Mikrobefehlsregister MBR übertragen. Diese Programmschleife S1.1 kann mehrmals durchlaufen werden, bis die Testbedingung im fünften Mikrobefehl MB4 nicht mehr erfüllt ist.
Dann wird der sechste Mikrobefehl MB5 direkt aus dem Speicherplatz M05 des Pufferspeichers MC geholt, da das zugeordnete Merker-Flip-Flop MCP5 bereits gesetzt ist. Damit ist der Programmablauf in die zweite geschachtelte Schleife S1.2 eingetreten, die an der Zusammenführung B beginnend wie die erste Schleife S1.1 solange durchlaufen wird, bis die Testbedingung im achten Mikrobefehl MB7 nicht mehr erfüllt ist. Damit werden die folgenden Mikrobefehle MB8 und
VPA 9/210/4070 ' 609839/0597 _ 12
1-ΓΒ9 durch Auslesen aus dem Mikroprogrammspeicher WCM bereitgestellt. Bei der Ausführung des neunten Mikrobefehls MB8 wird die Testbedingung für die übergeordnete Schleife S1 abgefragt. Bei erfülltem Test tritt das Mikroprogramm wieder an der Zusammenführung A in den Ablauf ein. Ist die Testbedingung im neunten Mikrobefehl jedoch nicht mehr erfüllt, wird der zehnte Mikrobefehl MB9 aus dem Pufferspeicher MC in das Mikrobefehlsregister MBR übertragen. Bei seiner Ausführung wird der Schleifenmodus SM durch eine Nebenfunktion ausgeschaltet, d. h. sämtliche Merker-Flip-Flops MCPO bis MCP/ im Markiernetzwerk MCP zurückgesetzt und damit sämtliche Einträge im Pufferspeicher MC für ungültig erklärt.
Der vorstehend erläuterte Steuerungsablauf für ein prinzipielles Mikroprogramm zeigt deutlich, daß die Zugriffsbreite zum Mikroprogrammspeicher ViCM und das Mikrobefehlsformat in diesem Pail praktisch voneinander unabhängig gewählt werden können. Dabei wirkt sich eine große Zugriffsbreite zum Mikroprogrammspeicher sogar vorteilhaft aus, da Polgemikrobefehle auf diese Weise bereits im Pufferspeicher zwischengespeichert und dann mit einer wesentlich geringeren Zugriffszeit aus diesem in das Mikrobefehlsregister eingeschrieben werden können. Dies gilt sowohl für den-Iformalmodus als auch den Schleifenmodus, wobei nur zu berücksichtigen ist, daß ein Eintrag im Pufferspeicher bereits nach dem ersten Aufruf wieder für ungültig erklärt wird, während er im Schleifenmodus solange gültig bleibt, bis der Schleifenmodus ausgeschaltet wird. Der für diesen Steuerungsablauf, der die Leistungsfähigkeit des Prozessors wesentlich erhöht, notwendige Schaltungsaufwand im Verhältnis zu der gewonnenen Leistungssteigerung ist - wie geschildert - gering. Er bringt den weiteren Vorteil, daß die Struktur des Prozessors wesentlich unabhängiger von dem gewählten Speichermedium des Mikroprogrammspeichers ist und damit zukunftsorientiert auch bei zu erwartenden "schnelleren" Speichermedien verwendbar bleibt und beim Einsatz solcher Speichermedien automatisch, d. h. ohne Schaltungsänderungen im Prozessor, im gesamten System eine höhere Leistung erzielt wird.
5 Figuren
4 Patentansprüche 609839/0597
VPA 9/210/4070 ·

Claims (4)

  1. Patentansprüche
    Steuereinheit eines durch Mikroprogramme steuerbaren Prozessors einer Datenverarbeitungsanlage mit einem beschreibbaren Mikroprogrammspeicher mit einer gegenüber dem Maschinenzyklus größeren Zugriffszeit, einem an dessen Auswahleingänge angeschlossenen Adreßregister, einem mit den Informationsausgängen des Mikroprograramspeiehers verbundenen Mikrobefehlsregister, einer an dieses angeschlossenen Decodier einheit, durch die aus einem Mikrobefehl im Hikrobefehlsregister Steuersignale für eine Verarbeitungseinheit des Prozessors ableitbar sind und einem zwischen dem Mikrobefehlsregister und dem Adreßregister angeordneten Schaltnetz zum Bilden der Adresse des folgenden Mikrobefehls, dadurch gekennzeichnet, daß die Informationsausgänge des Mikroprogrammspeichers (WCM) mit den Eingängen des Mikrobefehlsregisters (MBR) sowohl direkt als auch indirekt über einen Pufferspeicher (MC) mit gegenüber dem Mikroprogrammspeicher wesentlich geringerer Zugriff szeit verbunden sind, dessen jeweils einen Mikrobefehl speichernde Zellen durch die niedrigwertigen Bitstellen des Eintrages im Adreßregister (AR) auswählbar sind und daß diesem Pufferspeicher ein Markiernetzwerk (MCP) derart zugeordnet ist, daß mit den niedrigwertigen Bitstellen des Eintrages im Adreßregister jeweils ein Eintrag in einem Speicherplatz des Pufferspeichers als gültig markierbar ist.
  2. 2. Steuereinheit für einen durch Mikroprogramme steuerbaren Prozessor nach Anspruch 1, dadurch gekennzeichnet , daß das Mikrobefehlsregister (MBR) sowohl an die Informationsausgänge des Mikroprogrammspeichers (WCM) als auch an die Ausgänge des Pufferspeichers (MC) angeschlossen ist, so daß wahlweise Mikro"befehle aus dem Mikroprogrammspeicher oder aus dem Pufferspeicher in das Mikrotefehlsregister*übertragbar sind.
  3. 3. Verfahren zum Bereitstellen von Mikrobefehlen in einer Steuereinheit nach Anspruch 2, dadurch gekennzeichnet, daß in dem Mikroprogrammspeicher (WCM) mit einem Speieherzugriff mehr als ein Mikrobefehl adressier-
    609839/0597 VPA 9/210/4070 · -
    bar ist, daß der erste dieser Mikrobefehle direkt in das Mikrobefehlsregister (MBR) übertragen und in der Decodiereinheit (DEC) anschließend decodiert -wird, daß mindestens ein zweiter Mikrobefehl zunächst in jeweils einem Speicherplatz des Pufferspeichers (MC) zwischengespeichert und dieser durch Setzen jeweils eines Merker-Flip-Flops (MCPn) im Markiernetzwerk (MCP) markiert wird und daß nach der Verarbeitung des ersten Mikrobefehls zwischengespeicherte Eolgeraikrobefehle jeweils direkt aus dem Pufferspeicher in « das Mikrobefehlsregister übertragen und danach das jeweils zugehörige Merker-Flip-ZLop rückgesetzt wird.
  4. 4. Verfahren zum Bereitstellen von eine Schleife in einem Mikroprogramm bildenden Mikrobefehlen in einer Steuereinheit nach Anspruch 2, dadurch gekennzeichnet, daß eine nachfolgende Schleife im Mikroprogramm durch Angabe einer Nebenfunktion in einem der Schleife vorangehenden Mikrobefehl festgelegt wird, daß danach bei der ersten Ausführung sämtliche Mikrobefehle der Programmschleife aus dem Mikroprogrammspeicher (VfCM) nacheinander neben der Übertragung in das Mikrobefehlsregister (MBR) im Pufferspeicher (MC) zwischengespeichert werden und mit jedem Eintrag in einem Speicherplatz des Pufferspeichers das zugehörige Merker-Flip-Flop (MCPn) im Markiernetzwerk (MCP) gesetzt wird, daß ein MikrobefehIeWiederholter Adressierung, abgeleitet von der zugehörigen Markierung im Markiernetzwerk, jeweils aus dem Pufferspeicher gelesen und im Mikrobefehlsregister zur Decodierung bereitgestellt wird und daß sämtliche Einträge im Pufferspeicher durch Rücksetzen der Merker-]?lip-3?lops im Markiernetzwerk gelöscht werden, sobald eine die abgearbeitete Schleife anzeigende ITebenfunktion in einem der Programmschleife folgenden Mikrobefehl gesetzt ist.
    609839/0597 9/210/4070 ·
    Le e rs e i te
DE19752512270 1975-03-20 1975-03-20 Steuereinheit eines durch mikroprogramme steuerbaren prozessors einer datenverarbeitungsanlage und verfahren zu ihrem betrieb Pending DE2512270A1 (de)

Priority Applications (8)

Application Number Priority Date Filing Date Title
DE19752512270 DE2512270A1 (de) 1975-03-20 1975-03-20 Steuereinheit eines durch mikroprogramme steuerbaren prozessors einer datenverarbeitungsanlage und verfahren zu ihrem betrieb
CH174376A CH597648A5 (de) 1975-03-20 1976-02-13
FR7607495A FR2304961A1 (fr) 1975-03-20 1976-03-16 Unite de commande d'un processeur, pouvant etre commande par des microprogrammes, d'une installation de traitement des donnees et procede pour sa mise en oeuvre
US05/668,060 US4040033A (en) 1975-03-20 1976-03-18 Microprogrammable data processor with a microprogram buffer memory
IT21339/76A IT1058485B (it) 1975-03-20 1976-03-18 Unita di comando di un elaboratore comandabile con microprogrammi appartenente ad un impianto di ela ecrazione di dati
GB11046/76A GB1536224A (en) 1975-03-20 1976-03-19 Microprogramme controlled processors
NL7602926A NL7602926A (nl) 1975-03-20 1976-03-19 Besturingseenheid van een door microprogramma's bestuurbare processor van een informatieverwer- kingsinrichting en een werkwijze voor het bedrijf ervan.
BE165389A BE839824A (fr) 1975-03-20 1976-03-19 Unite de commande d'un processeur, d'une installation de traitement des donnees et procede pour sa mise en oeuvre

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19752512270 DE2512270A1 (de) 1975-03-20 1975-03-20 Steuereinheit eines durch mikroprogramme steuerbaren prozessors einer datenverarbeitungsanlage und verfahren zu ihrem betrieb

Publications (1)

Publication Number Publication Date
DE2512270A1 true DE2512270A1 (de) 1976-09-23

Family

ID=5941935

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19752512270 Pending DE2512270A1 (de) 1975-03-20 1975-03-20 Steuereinheit eines durch mikroprogramme steuerbaren prozessors einer datenverarbeitungsanlage und verfahren zu ihrem betrieb

Country Status (8)

Country Link
US (1) US4040033A (de)
BE (1) BE839824A (de)
CH (1) CH597648A5 (de)
DE (1) DE2512270A1 (de)
FR (1) FR2304961A1 (de)
GB (1) GB1536224A (de)
IT (1) IT1058485B (de)
NL (1) NL7602926A (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2527272B2 (de) * 1975-06-19 1979-10-25 Siemens Ag, 1000 Berlin Und 8000 Muenchen Anordnung zum Decodieren und Abarbeiten eines Mikrobefehlswortes konstanter Länge
JPS5621242A (en) * 1979-07-28 1981-02-27 Fujitsu Ltd Pipeline control method for computer operation
US4556806A (en) * 1982-05-10 1985-12-03 Texas Instruments Incorporated Gate alterable output buffer
US4980821A (en) * 1987-03-24 1990-12-25 Harris Corporation Stock-memory-based writable instruction set computer having a single data bus
US7724898B2 (en) * 2002-10-17 2010-05-25 Telefonaktiebolaget L M Ericsson (Publ) Cryptography using finite fields of odd characteristic on binary hardware

Also Published As

Publication number Publication date
IT1058485B (it) 1982-04-10
CH597648A5 (de) 1978-04-14
FR2304961A1 (fr) 1976-10-15
BE839824A (fr) 1976-09-20
NL7602926A (nl) 1976-09-22
US4040033A (en) 1977-08-02
GB1536224A (en) 1978-12-20

Similar Documents

Publication Publication Date Title
DE2630323C3 (de) Datenspeichereinrichtung mit einem Hauptspeicher, einem HilfsSpeicher und einer Vorausschaulogik
DE3486399T2 (de) Zentrale Verarbeitungseinheit mit der Fähigkeit, Befehle mit variablen Längen zu unterstützen.
DE2350884C2 (de) Adreßumsetzungseinheit
DE69534113T2 (de) Kompression der Befehlswörter eines Rechners
DE3750935T2 (de) Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner.
DE68927218T2 (de) Verfahren und Vorrichtung für Zustandskode in einem Zentralprozessor
DE3851746T2 (de) Sprungvorhersage.
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE60224774T2 (de) Datenverarbeitungssystem mit Lese-, Änderungs- und Schreibeinheit
DE68907518T2 (de) Inhaltsadressierte Speicheranordnung.
DE2715073C3 (de) Mikroprogrammierte Rechner-Steuervorrichtung
DE2719635A1 (de) Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage
DE2953861C2 (de)
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE69030931T2 (de) Mehrfachsequenzprozessorsystem
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE2829668A1 (de) Kanaldatenpufferspeicher
DE2714805A1 (de) Datenverarbeitungssystem
DE68924719T2 (de) Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung.
DE3781794T2 (de) Vorrichtung und verfahren zum versehen eines cachespeichers mit einer schreiboperation mit zwei systemtaktzyklen.
DE4216905C2 (de) Superskalarprozessor
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
DE2718110A1 (de) Datenverarbeitungseinheit
DE1524898C3 (de) Datenspeicher mit direktem mehrdimensionalen Zugriff zur gleichzeitigen Entnahme mehrerer Wörter

Legal Events

Date Code Title Description
OHW Rejection