DE2345098C3 - Steuerwerk für einen Prozessor eines Rechners - Google Patents

Steuerwerk für einen Prozessor eines Rechners

Info

Publication number
DE2345098C3
DE2345098C3 DE19732345098 DE2345098A DE2345098C3 DE 2345098 C3 DE2345098 C3 DE 2345098C3 DE 19732345098 DE19732345098 DE 19732345098 DE 2345098 A DE2345098 A DE 2345098A DE 2345098 C3 DE2345098 C3 DE 2345098C3
Authority
DE
Germany
Prior art keywords
register
microprogram
memory
microinstruction
registers
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
Application number
DE19732345098
Other languages
English (en)
Other versions
DE2345098A1 (de
DE2345098B2 (de
Inventor
Norbert DipL-Ing 8000 München Haff
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
Filing date
Publication date
Application filed by Siemens AG filed Critical Siemens AG
Priority to DE19732345098 priority Critical patent/DE2345098C3/de
Priority to CH1029974A priority patent/CH574134A5/xx
Priority to AT658474A priority patent/AT347720B/de
Priority to GB3731674A priority patent/GB1473116A/en
Priority to FR7429234A priority patent/FR2243472B3/fr
Priority to IT2687574A priority patent/IT1020410B/it
Priority to NL7411807A priority patent/NL7411807A/xx
Priority to BE148284A priority patent/BE819633A/xx
Publication of DE2345098A1 publication Critical patent/DE2345098A1/de
Publication of DE2345098B2 publication Critical patent/DE2345098B2/de
Application granted granted Critical
Publication of DE2345098C3 publication Critical patent/DE2345098C3/de
Expired legal-status Critical Current

Links

Description

ss
Die Erfindung bezieht sich auf ein Steuerwerk für einen Prozessor eines ,Rechners, durch das den Anweisungen eines in einem Hauptspeicher abgespeicherten Benutzerprogramms entsprechende, ein Mikroprogramm bildende und in einem Mikroprogrammspeicher abgespeicherte Mikrobefehle entschlüsselt werden und demgemäß Steuersignale abgegeben werden, durch die die Bearbeitung der Anweisungen des Benutzerprogramms im Prozessor und im Hauptspeicher gesteuert wird, und bei dem ein änderbarer Mikroprogrammspeicher für die Mikroprogramme vorgesehen ist.
Ein Hilfsmittel zur Rationalisierung des Programmierens ist das Unterprogramm. Es handelt sich dabei um eine Anweisungsfolge, die z. B. an verschiedenen Stellen eines Benutzerprogramms benötigt und darum nur ein einziges mal programmiert wird. Immer dann, wenn ein solches Unterprogramm im Verlaufe eines Benutzerprogramms eingesetzt werden soll, befindet sich an der Stelle des Benutzerprogramms ein Sprungbefehl zur ersten Anweisung des Unterprogramms. Anschließend werden die Anweisungen des Unterprogramms durchgeführt und nach Erledigung der letzten Anweisung wird zum Benutzerprogramm zurückgesprungen. Bestimmte Register im Prozessor werden vom Benutzerprogramm und vom Unterprogramm benutzt Um zu verhindern, daß die bei Auftreten des Sprungbefehls in das Unterprogramm vorliegenden Registerinhalte durch das Unterprogramm zerstört werden, müssen die Registerinhalte vorher abgespeichert werden. Nach Ablauf des Unterprogramms werden dann diese Inhalte wieder in die Register zurückgeladen. Die Registerinhalte werden in einem Bereich des Hauptspeichers abgespeichert, der Kellerspeicher genannt wird.
Solche Unterprogramme können auch auf Mikroprogrammebene liegen. Die Anweisungen eines Benutzerprogramms werden zur Bearbeitung durch den Prozessor in einzelne Elementarschritte, die Mikrobefehle, zerlegt. Die einer Anweisung des Benutzerprogramms zugeordneten Mikrobefehle werden in einem Mikroprogramm zusammengefaßt. Diese Mikroprogramme sind in einem besonderen Speicher, dem Mikroprogrammspeicher, abgespeichert. Der Mikroprogrammspeicher muß sehr schnell sein. Häufiger auftretende Befehlsfolgen, die von mehreren Mikroprogrammen verwendet werden können, können als Unterprogramm auf der Mikroprogrammebene beschrieben werden. Diese MikroUnterprogramme werden von einem Mikroprogramm aufgerufen und dann müssen die Inhalte der Register, die von dem Mikroprogramm und dem MikroUnterprogramm benutzt werden, sichergestellt werden. Da die Mikroprogramme sehr schnell ausgeführt werden müssen, ist das Umladen der Registerinhalte in den Hauptspeicher zu langsam.
Aus der DT-OS 20 48 515 ist bekannt, die Mikroprogramme in einem Festwertspeicher abzuspeichern. Wird aber bei einem solchen Festwertspeicher die Anzahl der Mikroprogramme für eine Datenverarbeitungsanlage erhöht, dann muß auch dieser Festwertspeicher vergrößert werden. Dies verursacht aber erhebliche Kosten. Um diese Kosten zu vermeiden, wird in dem Festwertspeicher nur ein Teil der Mikrobefehle abgespeichert, während die anderen Mikrobefehle im Hauptspeicher, also dem Arbeitsspeicher abgespeichert sind. Da im Hauptspeicher genügend Speicherplatz zur Verfügung steht, können die Anzahl der Mikroprogramme und der Mikrobefehle ohne Schwierigkeiten erweitert werden. Um aber den Festwertspeicher sinnvoll auszunützen, werden in diesen nur solche Mikrobefehle eingespeichert, die bei mehreren Mikroprogrammen verwendet werden. Der Ablauf eines Mikroprogramms geht dann so vor sich, daß z. B. die ersten Mikrobefehle eines Mikroprogramms aus dem Festwertspeicher entnommen werden, dann zu dem Hauptspeicher übergegangen wird, und von dort Mikrobefehle abgearbeitet werden und schließlich wieder zu dem Festwertspeicher zurückgekehrt wird usw. Aus dieser Offenlegungsschrift ist somit nur bekannt, daß ein als Festwertspeicher ausgeführter Mikroprogrammspeicher dadurch erweitert werden kann, daß zur Speicherung von Mikrobefehlen auch der
Hauptspeicher verwendet wird. Die Behandlung von Mikroprogrammen und Mikrounterprogrammen bzw. die Abspeicherung der Inhalte der von den Mikroprogrammen und Mikrounterprogrammen verwendeten Register ist nicht Gegenstand dieser Offenlegungsschrift
Aufgabe der Erfindung ist es dagegen, ein Steuerwerk anzugeben, bei dem die Umspeicherung der Registerinhalte bei Aufruf eines MikroUnterprogramms sehr schnell erfolgt Diese Aufgabe wird dadurch gelöst, daß in dem Mikroprogrammspeicher ein Speicherbereich vorgesehen ist, in dem bei Aufruf eines Unterprogramms auf Mikroprogrammebene durch ein Mikroprogramm der Inhalt der von dem Mikroprogramm und dem Unterprogramm benutzten Register abgespeichert wird und aus dem nach Ablauf des Unterprogramms die Register wieder geladen werden, daß zur Umspeicherung der Registerinhalte von/zum Mikroprogrammspeicher zwei Mikrobefehle vorgesehen sind, die gleichzeitig in einem Mikrobefehlsregister stehen, von denen der erste angibt, ob eine Schreib/Lesefunktion auszuführen ist und wieviele Registerinhalte zu übertragen sind und von denen der zweite eine Funktion enthält, durch die festgestellt wird, ob alle Registerinhalte umgespeichert worden sind, und daß diese zwei Mikrobefehle so lange im Mikrobefehlsregister stehenbleiben, bis alle Registerinhalte umgespeichert sind.
Der Mikroprogrammspeicher ist ein sehr ,chneller Speicher. Durch das Umladen der Registerinhalte in einen Bereich dieses Mikroprogrammspeichers kann der Umladevorgang sehr beschleunigt werden. E;; ist dann auch möglich, mehrere Unterprogramme ineinanderzuschalten und nach dem Kellerprinzip die Registerinhalte in den Mikroprogrammspeicher abzuspeichern.
Das Abspeichern von Daten (Registerinhalte) im Mikroprogrammspeicher kann jedoch zu Schwierigkeiten führen. Da alle Abläufe im Prozessor durch Mikrobefehle gesteuert werden, ergibt sich an der Schnittstelle zum Mikroprogrammspeicher bei Datenzugriffen der Konflikt, daß gleichzeitig Mikrobefehle gelesen werden müssen.
Um diesen Konflikt zu lösen, werden zwei neue Mikrobefehle eingeführt. Die zwei Mikrobefehle stehen gleichzeitig im Mikrobefehlsregister. Der erste Mikrobefehl gibt an, ob Registerinhalte in den Mikroprogrammspeicher gespeichert werden sollen, oder ob die Inhalte aus dem Mikroprogrammspeicher in die Register zurückgeladen werden sollen. Der erste Mikrobefehl enthält somit die Schreib-/Lesefunktion. Weiterhin ist in den ersten Mikrobefehl die Adresse des ersten Registers angegeben, das umgeladen werden soll. Schließlich kann der erste Mikrobefehl noch die Anzahl der Register enthalten, deren Inhalte umgeladen werden.
Der zweite Mikrobefehl gibt eine Funktion an, durch die nachgeprüft wird, ob alle Register geladen sind oder umgespeichert sind. Es enthält weiterhin eine Funktion, welche die im ersten Mikrobefehl enthaltene Adresse verändert, also erhöht oder erniedrigt und die im ersten Mikrobefehl stehende Anzahl der Register bei jeder Umspeicherung eines Registerinhaltes erniedrigt. Der zweite Mikrobefehl kann auch noch das Adressenregister des Mikroprogrammspeichers beeinflussen, also nach jeder Registerumspeicherung den Inhalt des Adressenregisters erhöhen oder erniedrigen. Die beiden Mikrobefehle bleiben so lange im Mikrobefehlsregister stehen, bis alle Registerinhalte umgespeichert worden sind, also die Registeranzahl null geworden ist.
Erst dann werden die nächsten Mikrobefehle in das Mikrobefehlsregister geiaden.
Dadurch, daß das Umiaden der Registerinhalte bei Aufrufeines Unterprogramms ausschließlich durch zwei Mikrobefehle, die während der ganzen Dauer des Umladevorganges im Mikrobefehlsregister stehen bleiben, gesteuert wird, erfolgt der Umladevorgang sehr schnelL Das Problem, daß aus dem Mikroprogrammspeicher gleichzeitig Mikrobefehle gelesen werden müssen und Daten in den Mikroprogrammspeicher übertragen werden müssen, ist auf diese Weise günstig gelöst
Anhand eines Blockdiagramms, das in der Figur dargestellt ist, wird ein Ausführungsbeispiel erläutert Das Blockdiagramm zeigt einen im wesentlichen bekannten Aufbau eines Prozessors mit Hauptspeicher.
Einem Hauptspeicher MM ist ein Hauptspeicheradressenregister MMD zugeordnet.
Der Prozessor besteht aus einem Rechenwerk und einem Steuerwerk. Zum Rechenwerk gehören eine Verschiebeeinrichtung SH, eine Addier- und logische Einheit ALU sowie Operandenregister X, Y und ein Registersatz PR. Der Registersatz PR ist nur dem Mikroprogramm zugänglich. In ihm werden z. B. die zu verknüpfenden Operanden gespeichert. Weiterhin ist ein Schnellspeicher FM vorgesehen, der von einem Adressenregister FMA adressiert wird. In diesem Schnellspeicher FM sind sowohl Mehrzweckspeicher als auch Befehlszähler für Benutzerprogramme enthalten.
Das Steuerwerk des Prozessors enthält einen Mikroprogrammspeicher WCM, in dem die Mikroprogramme gespeichert sind.
Der Mikroprogrammspeicher WCM wird von einem Mikroprogrammspeicheradressenregister WCMA angesteuert. Zu bearbeitende Mikrobefehle werden von dem Mikroprogrammspeicher IVCM in ein Mikrobefehlsregister MIR überführt. Von dort gelangen sie in eine Decodierschaltung DC, in der die Mikrobefehle decodiert werden und von der die entsprechenden Steuersignale an die übrigen Einheiten des Prozessors abgegeben werden. Weiterhin ist mit der Decodierschaltung DC ein Registersatz SR verbunden, in dem z. B. der Zeitgeber und ein Zähler für Mikroprogrammschleifen enthalten ist. Schließlich ist noch ein Adressenregister AR vorgesehen, in dem z. B. weitere Adressenregister für den Hauptspeicher MM enthalten sind.
Die einzelnen Einheiten des Prozessors und des Hauptspeichers sind über Sammelleitungen SL miteinander verbunden.
Durch die Erfindung wird nun der Mikroprogrammspeicher WCM nicht nur für die Speicherung der Mikroprogramme verwendet, sondern es ist in ihm ein Speicherbereich vorgesehen, in dem Registerinhalte eingeschrieben werden kennen. Jedesmal wenn durch das Mikroprogramm ein Unterprogramm auf Mikroprogrammebene aufgerufen wird, wird der Inhalt der von dem Mikroprogramm und dem Unterprogramm verwendeten Registers in diesem Speicherbereich des Mikroprogrammspeichers WCM geladen und nach Ablauf des Unterprogramms wieder in die entsprechenden Register zurückgeladen. Dies geschieht, wie bereits erläutert, mit Hilfe von zwei Mikrobefehlen, die gleichzeitig im Mikrobefehlsregister MIR stehen. Dazu wird das Mikrobefehlsregister MIR in zwei Teilregister MIRO und MIR 1 unterteilt. Im Teilregister MIRO ist der erste Mikrobefehl, im Teilregister MIR 1 der /weite
Mikrobefehl eingeschrieben. Die zwei Mikrobefehle bleiben so lange im Mikrobefehlsregister MIR stehen, bis beim Auftreten eines Unterprogramms alle betroffenen Registerinhalte umgeladen sind. Erst dann werden neue Mikrobefehle in das Mikrobefehlsregister MIR übertragen. Die zwei Mikrobefehle werden ebenfalls von der Decodierschaltung DC decodiert, die gemäß den in den Mikrobefehlen angegebenen Funktionen Steuersignale erzeugt, die die Umladung der Registerinhalte in den Mikroprogrammspeicher oder vom Mikroprogrammspeicher steuern.
Der Vorteil des erfindungsgemäßen Steuerwerks besteht darin, daß es möglich ist, Unterprogramme auf Mikroprogrammebene zu verwenden. Die dabei notwendige Umladung von Registerinhalten erfolgt sehr schnell und ohne übermäßige Störung der Bearbeitung von weiteren Mikrobefehlen.
Hierzu 1 Blatt Zeichnungen

Claims (5)

Patentansprüche:
1. Steuerwerk für einen Prozessor eines Rechners, durch das den Anweisungen eines in einem Hauptspeicher abgespeicherten Benutzerprogramms entsprechende, ein Mikroprogramm bildende und in einem Mikroprogrammspeicher abgespeicherte Mikrobefehle entschlüsselt werden und demgemäß Steuersignale abgegeben werden, durch die die Bearbeitung der Anweisungen des Benutzer- ι ο Programms im Prozessor und im Hauptspeicher gesteuert wird, und bei dem ein änderbarer Mikroprogrammspeicher für die Mikroprogramme vorgesehen ist, dadurch gekennzeichnet, daß in dem Mikroprogrammspeicher (WCM) ein i:; Speicherbereich vorgesehen ist, in dem bei Aufruf eines Unterprogramms auf Mikroprogrammebene durch ein Mikroprogramm der Inhalt der von dem Mikroprogramm und dem Unterprogramm benutzten Register abgespeichert wird und aus dem nach Ablauf des Unterprogramms die Register wieder geladen werden, daß zur Umspeicherung der Registerinhalte von/zum Mikroprogrammspeicher zwei Mikrobefehle vorgesehen sind, die gleichzeitig in einem Mikrobefehlsregister (MIR) stehen, von denen der erste angibt, ob eine Schreib/Lesefunktion auszuführen ist und wieviele Registerinhalte zu übertragen sind und von denen der zweite eine Funktion enthält, durch die festgestellt wird, ob alle Registerinhalte umgespeichert worden sind, und daß diese zwei Mikrobefehle so lange im Mikrobefehlsregister stehen bleiben, bis alle Registerinhalte umgespeichert sind.
2. Steuerwerk nach Anspruch 1, dadurch gekennzeichnet, daß der erste Mikrobefehl die Adresse des .is ersten umzuspeichernden Registers und die Anzahl der umzuspeichernden Register enthält.
3. Steuerwerk nach Anspruch 2, dadurch gekennzeichnet, daß der zweite Mikrobefehl eine weitere Funktion enthält, durch die im ersten Mikrobefehl stehende Registeradresse so lange geändert und die Registeranzahl so lange erniedrigt wird, bis alle Registerinhalte übertragen sind.
4. Steuerwerk nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß durch den zweiten Mikrobefehl das Adressenregister (WCMA) des Mikroprogrammspeichers geändert wird.
5. Steuerwerk nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß das Mikrobefehlsregister (MIR) zwei Teilregister (MIRO, MIR 1) zur gleichzeitigen Aufnahme von zwei Mikrobefehlen enthält.
DE19732345098 1973-09-06 1973-09-06 Steuerwerk für einen Prozessor eines Rechners Expired DE2345098C3 (de)

Priority Applications (8)

Application Number Priority Date Filing Date Title
DE19732345098 DE2345098C3 (de) 1973-09-06 Steuerwerk für einen Prozessor eines Rechners
CH1029974A CH574134A5 (de) 1973-09-06 1974-07-26
AT658474A AT347720B (de) 1973-09-06 1974-08-12 Steuerwerk fuer einen prozessor eines rechners
FR7429234A FR2243472B3 (de) 1973-09-06 1974-08-27
GB3731674A GB1473116A (de) 1973-09-06 1974-08-27
IT2687574A IT1020410B (it) 1973-09-06 1974-09-03 Complesso di comando per un ela boratore di un calcolator
NL7411807A NL7411807A (nl) 1973-09-06 1974-09-05 Besturingsorgaan voor een verwerkingseenheid van een rekeninrichting.
BE148284A BE819633A (fr) 1973-09-06 1974-09-06 Unite de commande pour un processeur d'une calculatrice

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE19732345098 DE2345098C3 (de) 1973-09-06 Steuerwerk für einen Prozessor eines Rechners

Publications (3)

Publication Number Publication Date
DE2345098A1 DE2345098A1 (de) 1975-04-10
DE2345098B2 DE2345098B2 (de) 1977-05-26
DE2345098C3 true DE2345098C3 (de) 1978-01-12

Family

ID=

Similar Documents

Publication Publication Date Title
DE2555963C2 (de) Einrichtung zur Funktionsmodifizierung
DE2357003C2 (de) Prozessor für eine Mehrprogramm-Datenverarbeitungsanlage
DE2364408C3 (de) Schaltungsanordnung zur Adressierung der Speicherplätze eines aus mehreren Chips bestehenden Speichers
DE1774296C2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2719635A1 (de) Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
DE2417795C2 (de) Datenverarbeitungsanlage
DE2746505C2 (de)
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE2355993B2 (de) Programmierbare datenverarbeitungsanlage
DE3688232T2 (de) Datenverarbeitungssystem.
DE1549480A1 (de) Datenverarbeitungsanlage
DE2625113C2 (de) Speicherschutzeinrichtung
DE2134816A1 (de) Einrichtung zur adressenuebersetzung
DE3307194C2 (de)
DE2418921C2 (de) Vorrichtung zum Speichern von Mikroprogrammen in einer Datenverarbeitungsanlage
DE1549548A1 (de) Vorrichtung zur Aktivierung eines bestimmten Befehls aus einer Vielzahl von Befehlen,die in einem Befehlsspeicher eines Rechners gespeichert sind
DE2854400A1 (de) Anordnung zum wechsel zwischen verzahnt zu verarbeitenden programmen
DE3344340C2 (de) Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen
DE2710436C2 (de) Datenverarbeitungseinrichtung
DE2747304A1 (de) Einrichtung zur mikrobefehlssteuerung
DE2345098C3 (de) Steuerwerk für einen Prozessor eines Rechners
DE2345098B2 (de) Steuerwerk fuer einen prozessor eines rechners
DE2204680B2 (de) Mikroprogramm-steuereinrichtung
DE2442014A1 (de) Verfahren und vorrichtung zur organisation eines steuerspeichers