DE2345098C3 - Steuerwerk für einen Prozessor eines Rechners - Google Patents
Steuerwerk für einen Prozessor eines RechnersInfo
- 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
Links
- 230000015654 memory Effects 0.000 claims description 62
- 230000000875 corresponding Effects 0.000 claims description 4
- 241000514401 Prumnopitys ferruginea Species 0.000 claims description 3
- 230000003247 decreasing Effects 0.000 claims description 3
- 238000000034 method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 230000002349 favourable Effects 0.000 description 1
- 230000003936 working memory Effects 0.000 description 1
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)
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.
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 |