DE2442014A1 - Verfahren und vorrichtung zur organisation eines steuerspeichers - Google Patents

Verfahren und vorrichtung zur organisation eines steuerspeichers

Info

Publication number
DE2442014A1
DE2442014A1 DE19742442014 DE2442014A DE2442014A1 DE 2442014 A1 DE2442014 A1 DE 2442014A1 DE 19742442014 DE19742442014 DE 19742442014 DE 2442014 A DE2442014 A DE 2442014A DE 2442014 A1 DE2442014 A1 DE 2442014A1
Authority
DE
Germany
Prior art keywords
address
memory
main memory
register
control
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.)
Ceased
Application number
DE19742442014
Other languages
English (en)
Inventor
Jacques Michel Jean Bienvenu
Jean-Claude Marcel Cassonnet
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.)
Bull SA
Original Assignee
Bull SA
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 Bull SA filed Critical Bull SA
Publication of DE2442014A1 publication Critical patent/DE2442014A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Executing Machine-Instructions (AREA)

Description

COMPAGNIE HONEYWELL BULL
94, Avenue Gambetta
Paris /Frankreich
Unser Zeichen: H 1014
Verfahren und Vorrichtung zur Organisation eines Steuerspeichers
Die Erfindung betrifft elektronische Digitalrechner und insbesondere den Aufbau der Steuersysteme von mikroprogrammierten Rechnern, in welchen die verschiedenen Operationen, die für den Betrieb erforderlich sind, unter der Steuerung von Mikrobefehlsfolgen (oder Mikroprogrammen) ausgeführt werden, die in einer bestimmten Reihenfolge ablaufen. Bei dem Aufruf der Befehle, die das Programm bilden, rufen Elementarbefehle ihrerseits eine Folge von Mikrobefehlen oder eine Wikroroutine auf.In den Datenverarbeitungssystemen ist mindestens ein Prozessor vorhanden, der unter der Steuerung von Befehlen, bei welchen es sich in dem betrachteten Fall um'Mikroprogramme bildende Mikrobefehle handelt, Daten empfängt, behandelt, verarbeitet und wieder ausgibt.
509811/0810
Am Anfang bestand das Steuersystem aus einem digitalen Netzwerk, welches von aktiven und passiven Bauelementen gebildet wurde, die in starrer Topologie angeordnet waren. Es bereitete folglich Schwierigkeiten, das digitale Steuernetzwerk abzuändern, da eine Abänderung eine geometrische Veränderung des Netzwerks einschloß. Dank des Steuerspeicherkonzepts ist ein einziger Lesevorgang erforderlich, um die Informationen zu erhalten, die den Betrieb des Prozessors zu steuern gestatten, wobei das digitale Netzwerk durch eine Speichereinheit ersetzt ist, deren Inhalt abgeändert werden kann.
Das Mikroprogrammxerungskonzept hat es ermöglicht, die Steuerfunktion eines Datenverarbextungssystems als eine Folge von elementaren Steuersignalen auszuführen, um die festen oder dynamischen Datenverarbeitungsfunktionen darzustellen. Diese in Wörter aufgeteilten und in einem Steuerspeicher angeordneten Steuersignale stellen die Zustände der Signale dar, die den Fluß von Informationen zwischen den Ausführungsfunktionen und dem sequentiellen Übergang der Zustandssignale kontrollieren.
Diese Organisationsart eines Datenverarbeitungssystems weist folgenden Nachteil auf: Die in einem Rechner vorgesehenen Mikrobefehle sind zahlenmäßig begrenzt und starr mit den Elementarbefehlen korreliert. Die laufende Änderung oder die Modifizierung der Mikrobefehle erfordert die Modifizierung des Steuerspeichers, der im allgemeinen aus einem Festspeicher besteht. Diese Operation kann aber erforderlich sein, um die Ausführung von Makrobefehlen zu ermöglichen, die wirksamer sind als die, die anfänglich vorgesehen waren.
Verschiedene Konfigurationen von Mikroprogrammen sollen in Abhängigkeit von den erforderlichen Optionen bei jedem System vorhanden sein, und im Innern ein und desselben Systems kann sich die Organisation der Mikroprogramme, d.h, können sich ihre gegenseitigen Standorte in Abhängigkeit von den im Verlauf der Zeit auszuführenden Aufgaben
S09Ö11/0810
ändern.
Im Stand der Technik werden gegenwärtig drei Lösungen verwendet:
Die erste Lösung besteht darin, eine für jede Konfiguration spezifische Gruppe der Mikroprogramme zu schaffen. Es ist dabei erforderlich, die Gruppe der Mikroprogramme für jede Konfiguration vollständig zu regenerieren. Während die Funktionalität der Mikrobefehlsblöcke stets dieselbe bleibt, wird die Lage der Blöcke verändert und das drückt sich in beträchtlichen Schwierigkeiten bei der Adressierung und bei dem Schreiben der Verzweigungsmikrobefehle aus.
Die zweite Lösung besteht darin, jeden Mikrobefehlsblock . derart zu generieren, daß er in dem Steuerspeicher eine bestimmte und feste Position einnimmt. In diesem Fall bleiben die für die nicht installierten Optionen bestimmten Speicherstellen leer, was zu einem Verlust an Speicherplatz führt. In dem Rahmen dieser Lösung ist es erforderlich, die Umhüllung aller Mikroprogramme vorzusehen, die deshalb starr werden. Außerdem soll der Bereich der Ver·* zweigungsadressen groß genug sein, damit er den gesamten Steuerspeicher überdecken kann, woraus sich ein zusätzlicher Verlust an Speicherplatz ergibt, da der nutzbare Inhalt der Mikroprogramme um die Länge der Adressen verringert wird.
Zur Vermeidung dieses Nachteils ist vorgeschlagen worden, als Steuerspeicher einen Sehreib-Lese-Speicher(RWM) , d.h. einen Arbeitsspeicher, dessen Inhalt leicht geändert werden kann, in Verbindung mit einem Festspeicher zu verwenden. Diese Lösung ist wirksam,aber kostspielig und ist nur in Rechnern großer Leistung gerechtfertigt.
In einem mikroprogrammierten Rechner bilden die Mikrobefehle eine Unveränderliche des Rechners. Die Ausführung eines Befehls des Programms erfordert die Benutzung einer Folge von
509811/0810
24A20U
Mikrobefehlen, die in einem Speicher enthalten sind, wobei die Mikrobefehle die Kontroll- oder Steuerfunktion des Prozessors sicherstellen. Ein Makrobefehl des durch einen Programmierer in einer Sprache hohen Niveaus, wie etwa FORTRAN oder COBOL, geschriebenen Typs ermöglicht die Ausführung einer bestimmten Anzahl von Elementarbefehlen in bestimmter Reihenfolge.
Die Erfindung verfolgt das Ziel, die o.g. Nachteile zu beseitigen und eine rationelle Ausnutzung des Steuerspeichers zu ermöglichen, damit leicht von einer Konfiguration auf eine andere übergegangen werden kann. Nach der Erfindung ist das Steuersystem eines Prozessors in einer Datenverarbeitungsanlage mit einem Hauptspeicher, mit einem Steuerspeicher und mit Operationsstufen, dadurch gekennzeichnet, daß eine Zone des Hauptspeichers für die Belegung mit Mikroprogrammen reserviert ist. Durch die Erfindung soll außerdem ein Adressierverfahren geschaffen werden, welches den Zugriff auf die beiden Speicherteile ermöglicht, welche Mikroprogramme enthalten. Ein weiteres Ziel der Erfindung besteht darin, den Schutz der in den Hauptspeicher eingeschriebenen Mikroprogramme zu ermöglichen.
In Weiterbildung der Erfindung ist das Steuersystem dadurch gekennzeichnet, daß die Adresse der Mikroprogramme eine segmentierte Adresse ist.
Die Unterteilung des Hauptspeichers in Spezialzonen wurde anfänglich insbesondere dazu verwendet, die Software des Betriebssystems von den Programmen der Benutzer zu trennen.
Diese beiden Teile des Speichers waren durch eine Grenze abgegrenzt, die von den BenutzerProgrammen hinsichtlich des Schreibens nicht überquert werden konnte; die Informationen des Betriebssystems konnten nur gelesen werden. Unter diesen Umständen führte ein Versuch, in diesen Teil des Speichers einzuschreiben, zu dem Erscheinen eines ABORT-Signals. In den heutigen Systemen, die mit Ringschutz ausgerüstet sind, (wie in einer anderen Patentanmeldung der Anmelderin vorge-
609811/0810
schlagen), ist der Standort des Betriebssystems in einem bestimmten Teil des Speichers nicht mehr gerechtfertigt, da die Informationen in bezug auf jeden Prozeß voneinander durch Schutzvorkehrungen getrennt sind und da der Zugriff zu bestimmten Segmenten des Speichers sorgsam reglementiert ist. Dagegen ist es wichtig/ daß der Teil, der die Mikroprogramme enthält, hinsichtlich des Schreibens für die Benutzerprogramme nicht zugänglich ist.
In weiterer Ausgestaltung der Erfindung ist der Speicher' in zwei Teile geteilt, die durch einen Vergleicher und ein den Trenrungsgrenzwert enthaltendes Hardware-Register voneinander getrennt sind,, wobei das Einschreiben in die Mikroprogrammzone nur für bestimmte Adreßwerte erfolgen kann.
In einem besonderen System, bei welchem die Erfindung angewendet wird, werden sämtliche Funktionen des Prozessors mittels Mikroprogrammen verwirklicht. Diese Mikroprogramme sind Folgen von SteuerWörtern, die bei jedem Verarbeitungsschritt aus dem Steuerspeicher gelesen werden, so daß die Digitalschaltungen des Prozessors gesteuert werden. Ein Steuerwort kann beispielsweise aus vier Oktaden (32 Bits + 5 Paritätsbits) bestehen und kann fünf gleichzeitige Operationen an verschiedenen Orten des Prozessors steuern, beispielsweise in der Adreßsteuereinheit ACU, in der Arbeitseinheit SPU, in der arithmetisch-logischen Einheit ALU und in der Steuereinheit RCU des Festspeichers. ,Um einen Anhaltspunkt zu geben, der Hauptspeicher kann aus 4 Einheiten mit einer Kapazität von jeweils 256 K Oktaden bestehen, wobei der Steuerfestspeicher eine maximale Kapazität von 128 K Oktaden hat und eine Zone mit derselben Größe in dem Hauptspeicher für die Firmware reserviert ist.
Der wesentliche Teil der Mikrobefehle ist in einem oder mehreren Festspeichern enthalten. Dagegen sind die Mikrobefehle, die verhältnismäßig selten benutzt werden und bei denen die Zugriffszeit in Anbetracht der Gesamtverarbeitungszeit eines Prozesses von verhältnismäßig geringer Bedeutung ist, vorzugsweise im Hauptspeicher untergebracht,
S09811/081Ö
der zwar langsamer ist, dessen Selbstkostenpreis pro eingeschriebenem Mikrobefehl jedoch unter dem der im Fest speicher untergebrachten Mikrobefehle liegt. So können beispielsweise in einem für Verwaltungszwecke bestimmten Daten- - verarbeituhgssystem die Mikroprogramme für eine wahbreise wissenschaftliche Anwendung in dem Hauptspeicher untergebracht werden. Dasselbe gilt für die Verarbeitungsfirmware der Ausnahmen. Die Mikroprogramme sind bei Unterbringung, im Hauptspeicher ungefähr dreimal langsamer als bei Unterbringung im Festspeioher. Allgemein ausgedrückt, die Erfindung bezweckt und ermöglicht wirksam die Erzielung einer großen Anpassungsfähigkeit bei der Unterbringung der Firmware.
Weitere Merkmale und Vorteile der Erfindung ergeben sich aus der folgenden Beschreibung von Ausführungsbeispielen der Erfindung. In den Zeichnungen zeigen:
Fig. 1 ein Grundschema der Organisation des Steuerspeichers ,
Fig. 2 ein Schema der Entwicklung einer segmentierten Mikroprogrammadresse, und
Fig. 3 ein Schema der Orientierungs- und Schutzvorrichtung der Firmware.
Die Zentraleinheit muß in der Lage sein, eine gewisse Anzahl von Aufgaben zu erfüllen und auszuführen:
- mehrere Befehlscodes (natürliche Betriebsart oder emulierte Betriebsart )
- die Steuerung der Eingabe und der Ausgabe der Daten (Steuerung des Speicherzugriffs bei der Ausführung von Kanalprogrammen)
- die direkte Steuerung der .peripheren Einheiten (vollständige Ausführung der Kanalprogramme: Zugriff auf den Speicher und Steuerung des Geräts).
Eines der Ziele der Erfindung ist es, zahlreiche verschiedene Konfigurationen bilden zu können, ohne in dem die Mikroprogramme enthaltenden Speicher Löcher zu haben und ohne eine
Knefti1 /nsiο
Modifizierung des Inhalts der Mikroprogramme an den· Verbindungspunkten zwischen den verschiedenen Moduln zu haben. Dieses Merkmal wird als Verschiebbarkeit (Translatabilität) der Mikroprogramme bezeichnet.
In einem mikroprogrammierten Datenverarbeitungssystem sind die verschiedenen Einheiten in der Lage, auf eine Gruppe von Elementarbefehlen zu reagieren, die das darstellen, was man manchmal als die Maschinensprache bezeichnet. Dieser Gruppe von Befehlen entspricht eine für das System geeignete Gruppe von Mikrobefehlen, die die verschiedenen Stufen der Maschine steuern. Diese Mikrobefehle, die speziell für ein besonderes System geschrieben sind, werden als "na- . türliehe Betriebsart"-Mikrobefehle bezeichnet. Es ist klar, daß aus der Gesamtheit der Elementarfunktionen mehrere Gruppen von Mikrobefehlen geschrieben werden können. Diese Gesamtheit von Elementarfunktionen kann als "internes Dekor" bezeichnet werden. Es bildet nämlich die Schnittstelle zwischen der Software und der Firmware. Wie oben bereits beschrieben, sind die "natürliche Betriebsart"-Mikrobefehle, die eine besondere Gruppe bilden, welche auf die Spezifikationen des internen Dekors anspricht, in einem Steuerspeicher gespeichert, dessen Topologie keine Rolle spielt.
Fig. 1 zeigt bei I die Struktur dieses Steuerspeichers, der aus Blöcken oder Segmenten A, B, C, D, E und F von Mikrobefehlswörtern besteht, die nach Familien gegliedert sind. Jedem dieser Segmente ist eine Zahl zugeordnet, die als Basis oder Ursprung des Segments bezeichnet wird. Die Abmessung des Segments ist eine zweite Information, die eine Steuerung der Adressierung durch die Mikrobefehle selbst ermöglichen könnte. Diese Lösung ist jedoch aiicht verwendet worden, da die Adresse eines Mikrobefehls durch die Basis und die Adreßverschiebung im Innern eines Segments vollkommen festgelegt ist. Die Tabelle STI, die sich in einem von dem Steuerspeieher verschiedenen Speicher befindet, enthält die Basen sämtlicher Segmente A, B, C, D, E und F. Diese Tabelle wird bei der Initialisierung des Systems geladen. Dieses System ist nach
S 0 9 8 1 1 / 0 8 1 0
der Initialisierung bereit, mit der Software zu arbeiten, die durch das interne Dekor festgelegt ist, und es kann die in den Segmenten A, B, C, D, E und F enthaltenen Funktionen ausführen. Die Datenverarbeitungssysteme sind aber für Kunden bestimmt, die Arbeiten auszuführen haben, weiche im allgemeinen verhältnismäßig festgelegt sind. Es wäre offenbar nicht ökonomisch, einem Kunden eine Maschine zu liefern, die Arbeiten ausführen könnte, deren er nicht bedarf. Dagegen kann sich dieses Bedürfnis mit der Zeit entwickeln. Andererseits war der Kunde, der die Maschine kauft, im allgemeinen Benutzer eines anderen Datenverarbeitungssystems. Er verfügt folglich über eine seinen Anwendungszwecken entsprechende Software. Nun stellt aber der übergang von einer Software zu einer anderen Software eine beträchtliche Arbeit dar, die sich im allgemeinen über mehrere Jahre erstreckt. Eine Möglichkeit bietet sich ihm durch den Übergang auf emulierten Betrieb, d.h., daß die neue Maschine durch die alte Software gesteuert werden kann, und zwar gemäß Modalitäten und einer Anpassung der Hardware, die Gegenstand einer anderen Patentanmeldung der Anmelderin ist.
Wenn aus den oben dargelegten Gründen die Struktur des Steuerspeichers nicht die bei I dargestellte sein soll, sondern die in Fig. 1 schematisch dargestellte Struktur II, d.h. A1, E, D, C, B und F, so ist zu erkennen, daß eine bestimmte Anzahl von Segmenten verschoben werden muß und daß das Segment A durch das Segment A1 ersetzt werden muß. Bei dem Adreßmodus der Mikroprogramme nach der Erfindung stellt die Verschiebung eines Segments mit Bezug auf ein anderes Segment kein Problem dar. Es genügt nämlich, die Tabelle von Segmenten, welche die Basen derselben enthält, zu modifizieren, damit der Steuerspeicher die gewünschte Konfiguration annimmt. Nimmt man an, daß sich die Segmenttabelle in dem Arbeitsspeicher (Hauptspeicher) befindet und daß sich die Segmente von Mikroprogrammen in einem Festspeicher (Steuerspeicher) befinden, ist es möglich, die Konfiguration des Festspeichers durch Modifikation des Arbeitsspeichers zu verändern. Dabei handelt es sich um einen beträchtlichen Vorteil, da diese Konfiguration ursprünglich
509811/0810 ·
nur durch räumliche Verschiebung der diese Segmente enthaltenden Karten verändert werden konnte.
Gemäß einem weiteren Merkmal der Erfindung kann das Segment oder der Block A von Segmenten entweder durch geometrische Änderung einer Karte in dem Steuerspeicher oder, wenn sich der Block A in dem Hauptspeicher befindet, durch Eintragung des Blocks A1 anstelle des Blocks A verändert werden. Das kann leicht durch Lesen eines Plattenspeichers oder eines Lochkartensatzes erfolgen. Die Tabelle ST, die sich· im Hauptspeicher befindet, nimmt dann die Konfiguration ST II an.
Eines der Ziele der Erfindung ist es, eine sehr schnelle Konfigurationsänderung zu ermöglichen, derart, daß das System eine große Anzahl von verschiedenen Aufgaben in Abhängigkeit von in verschiedenen Sprachen ausgegebenen Befehlen oder auf der Grundlage von verschiedenen Befehlsgruppen ausführen kann. In Fig. 1 werden die durch das Programm aufgerufenen Basen der Segmente nacheinander in ein Register MB eingegeben, welches ständig die Basis des letzten Segments enthält, in welchem ein Mikrobefehlswort adressiert worden ist. Dieses Register MB ist erneut in Fig. 2 dargestellt, die schematisch die Adreßentwicklung zeigt. Die Tabelle ST ist im Prinzip in den Hauptspeicher eingetragen, aus praktischen Gründen des Aufbaus der Hardware ist aber der Anfang der Tabelle in einem Arbeitsspeicher SPU enthalten, der aus einer sehr schnellen Bank von Registern besteht. Jede Segmentbasis besetzt acht Bits oder eine Oktade in der Tabelle ST. Wenn sich die Konfiguration ändert, wird die Tabelle ST modifiziert. Diese Tabelle wird für jede Konfiguration des Systems erzeugt.
Auf diese Weise ist der Inhalt der Mikroprozeduren unabhängig von der Adresse, an welcher er angeordnet ist. Wegen der Anzahl von verschiedenen Konfigurationen, einerseits aufgrund der verschiedenen Befehlscodes (m aus n, wobei η gleich 4 ist und sich m von 1 bis 4 ändert) und andererseits aufgrund der innerhalb jedes Codes möglichen verschiedenen
! 509811/0810
- 1C -
Optionen, ist es nicht möglich/ jede Konfiguration zu erzeugen, da die Moduln von Mikroprogrammen in Ab hängigkeit von den Adressen der benachbarten Moduln zu modifizieren sind. Diese Unabhängigkeit des Inhalts in bezug auf den Standort kann auf verschiedene Weise und insbesondere durch die Segmentierung der Mikroprogramme erreicht werden.
Die Segmentierung besteht darin, daß die Mikroprogramme in Segmente unterteilt werden. Ein Segment ist eine Folge von angrenzenden Mikroprogrammwörtern, die durch Translation als ganzes und ohne Modifizierung des Inhalts verschoben werden kann.
Ein Segment ist durch seine Ursprungsadresse oder Basisadresse und durch seine Abmessung definiert. Es steht ein "absolute Adressierung"-Modus zur Verfügung, in welchem die Basisadresse implizit Null ist. Alle Unterbrechungen erfolgen zu dem Absolutmodus-Segment. Der Inhalt des Registers MB wird in diesem Fall nicht in Betracht gezogen.
Im Prinzip können die Segmente zwar eine beliebige Basisadresse und eine beliebige Abmessung haben, in der Praxis legt man jedoch diese Mengen auf ein Mehrfaches eines bestimmten Wertes oder Bereiches fest, um Adreßbits einzusparen. Dieser Wert oder Bereich wird als"Seite" (page) bezeichnet. Ein Segment wird mit einer Adresse eingesetzt, die ein Mehrfaches der Seite ist, und mit einer Abmessung, die ein Mehrfaches dieser Seite ist (die maximale Anzahl von Segmenten ist lediglich durch die maximale Abmessung der Gesamtheit der Mikroprogramme (Teil der Adresse) begrenzt). Eine Seite soll ausreichend klein sein, damit es keinen verlorenen Platz durch Zersplitterung (Platzverlust am Ende der Seite) gibt.
Fig. 2 zeigt das Schema der Adressierung der Mikroprogramme, die nach Mikroprogrammwörtern und nicht nach Positionsnummern erfolgt. Bei der segmentierten Adressierung wird die absolute Adresse für eine bestimmte Konfiguration durch Addition der Basis des Segments und einer Verschiebung im Inneren
509811/0810
dieses Segments erhalten. Die Basisadresse des Segments wird in das Register MB1 eingegeben. Der Wert der Basis des Segments wird in dem Addierer 2 zu der Seitennummer hinzugefügt, wobei die Seitennummer durch die acht ersten Bits der Adresse gegeben ist, die in dem Adreßregister RA/1 enthalten ist. Der Ausgang des Addierers 2 ist mit einer Adreßrechenstufe 3 verbunden. Diese Stufe 3 empfängt andererseits die Verschiebung im Inneren des Segments, das in dem Register RA,4 enthalten ist (acht letzte Bits der Adresse RA), wobei die in dem Regisrer MB1 enthaltene Basis aus der o.g. Segmenttabelle stammt. ·
Das Register 4 enthält die laufende.relative Adresse, d.h. die Adresse des Mikrobefehls, der in der Ausführung begriffen ist und der die Seitennummer und die Verschiebung oder den "Abstand" des Befehls in bezug auf den Anfang der Seite enthält (diese Nebeneinanderanordnung wird als Verkettung bezeichnet). Die Adreßrechenstufe BA,3 berechnet die Adresse des folgenden Befehls und trägt sie in das Register NEX A,7 ein. Diese Adresse wird in das Register 4 übertragen und zwar parallel mit der Suche des entsprechenden Mikrobefehls in der Firmwareeinheit F und mit dem Weiterleiten des Mikrobefehls in das Ausführungsregister RD,9, in welchem er tatsächlich ausgeführt wird. Bei normalem Betrieb fügt die Stufe BA,3 der laufenden Adresse eine Einheit hinzu, um die folgende Adresse zu erhalten. Dieser Prozeß wiederholt sich, solange keine Seitenänderung oder Segmentänderung vorhanden ist. Wenn eine Seiten- oder Segmentänderung erfolgt, wird die neue Adresse berechnet, indem die Basis des Segments und die relative Adresse innerhalb des Segments addiert werden. Die Adreßberechnung, die in der Stufe 3 ausgeführt wird, kann zu der Ausführung eines untermikroprogramms oder einer Untermikroroutine führen. In diesem Fall wird die folgende Adresse oder Adresse der Rückkehr in die Hauptfolge in dem Register SM,5 gespeichert. Das Mikroprogramm wird nun an dem Ende der Ausführung des Untermikroprogramms zu der in dem Register SM,5 enthaltenen Adresse zurückkehren. Im Verlauf der Ausführung eines Mikroprogramms kann eine Unterbrechung erzeugt werden, die dem Re-
509811/0810
gister 7 durch ein Signal I oder der Adreßverzweigungsstufe 3 mitgeteilt wird. In diesem Fall speichert man in der Stufe IM,6 die Adresse des Mikrobefehls, zu welcher sich das Mikroprogramm begeben hätte, wenn keine Unterbrechung stattgefunden hätte, um gegebenenfalls zu dieser Adresse zurückzukommen. Eine Unterbrechung wird beispielsweise erzeugt, wenn in das System Daten geladen werden sollen, die ihm durch ein Anschlußgerät übermittelt werden. Die Stufe 8 symbolisiert den Steuerspeicher, der gemäß der Erfindung aus einem Festspeicher und aus einem Teil des Hauptspeichers gebildet sein kann.
Die Mikroprogrammierungssprache enthält Verzweigungsbefehle, so daß es möglich ist, alle Mikroprozedurauf ruf e von einem Segment zu einem anderen mit Rückkehr zu dem Ausgangssegment (Register SM,5) auszuführen, und zwar mit beliebig vielen Stufen.
Desgleichen wird es nach einer Unterbrechung möglich sein, zu der Ausgangsstufe (Register IM,6) zurückzukommen. Es ist möglich, daß in dem Unterbrechungsmikroprogramm dieselbe verschachtelte Struktur von Mikroprozeduraufrufen wie in der unterbrochenen Stufe vorhanden ist. Beispielsweise sind die folgenden Formate bereits benutzt worden«
Maschine 1 Abmessung der Seite 1/2 Kilo Oktaden
Maximale Segmentabmessung 16 k O = 32 Seiten
Maximale Kapazität 215 Wörter =
217 = 128 k Oktaden
Maschine
1 k Oktaden (2 Seiten Maschinei)
16 k O = 16 Doppelseiten 216 Wörter = 256 k Oktaden
In der Maschine 1 besteht die Adresse im Innern der Seite aus sieben Bits, während sie in der Maschine 2 aus acht Bits besteht.
Es gibt zwei Arten von Verzweigungen:
. a) die Verzweigungen innerhalb der Seite, die einzig an
509811/0810
- 13 - ■■-■■*
der absoluten Adresse ausgeführt werden, da sie nicht von der Einsetzung des Segments abhängig sind;
b) Verzweigungen außerhalb der Seite, die den Inhalt des Registers MB berücksichtigen.
Diese Verzweigungen sind in einer Mikroprogrammierungssprachensammlung beschrieben, die bei dem Konstrukteur vorhanden ist.
Für jede Art von bedingter oder unbedingter Verzweigung findet man im allgemeinen die beiden vorgenannten Arten. Lediglich einige sehr spezialisierte bedingte Verzweigungen (mit mehreren Wegen) haben ihren Bestimmungsort immer außerhalb der laufenden Seite (sie sind in mehreren Seiten). Das dient dem Zweck, das Einsetzen der Mikroprogramme zu erleichtern, die diesen Verzweigungen folgen.
Gemäß der Erfindung ist das Organisationsverfahren von Mikroprogrammen dadurch gekennzeichnet, daß die Mikroprogramme in zwei Speichertypen enthalten sind, einem Spezialspeicher und dem Hauptspeicher.
Dieses Merkmal ermöglicht einen schnellen Zugriff auf den SpezialSpeicher (bessere Leistungsfähigkeit) und eine vielseitige Art des Einschreibens der Mikroprogramme in den Hauptspeicher. Diese Mikroprogramme können aus einem beliebigen Anschlußgerät eingegeben werden. Diese Anordnung ermöglicht darüberhinaus eine leichte Fehlerbeseitigung in den Mikroprogrammen, die vor ihrer Speicherung in dem SpezialSpeicher getestet werden können.
Letzteres kann insgesamt oder teilweise im Festspeicher ausgeführt werden, wodurch man über nicht flüchtige Mikroprogramme verfügt. Die Nützlichkeit des Besitzes von nicht flüchtigen Mikroprogrammen ist mit der Initialisierung der Maschine (bootstrap) und mit dem Test der Maschine auf Dauerfehler oder intermittierende Fehler verknüpft. Die Segmen .-
5098 1 1/0-810
tierung eignet sich sehr gut für die Aufteilung des Firmwareraums in einen SpezialSpeicher und in einen Hauptspeicher. Es genügt nämlich festzulegen, daß ab einem bestimmten Wert des Basissegments das Segment in den Hauptspeicher und unterhalb dieses Werts in den SpezialSpeicher eingesetzt wird. Die Segmentierung erleichtert die Verschiebbarkeit eines Segments von einem Speicher zu einem anderen, ohne daß sich Probleme ergeben, da es genügt, die Basisadresse in der Segmenttabelle zu ändern.
Es ist verboten, daß sich ein Segment gleichzeitig oder teilweise in den beiden Speichern befindet, was betriebsmäßig keinen Sinn hätte. Fig. 3 zeigt die Grundschaltung des Zugriffs auf die Mikroprogramme unter dem Gesichtspunkt sowohl des Schreibens als auch des Lesens.
Wie zuvor, enthält das Adreßregister RA,4 die laufende Adresse des in der Ausführung begriffenen Befehls, der in dem Register RD,9 enthalten ist. Am Ende der Ausführung eines Mikrobefehls wird die Adresse des folgenden Mikrobefehls in das Register RA geladen. Diese Adresse wird nach dem oben, mit Bezug auf Fig. 2 beschriebenen Verfahren berechnet. Das heißt sie ergibt sich aus der Addition der Basis und der Seitennummer einerseits und dann der Verschiebung im Innern der Seite andererseits. Die Tabelle ST, die das Register MB lädt, enthält ein Bit oder eine Kombination von Informationsbits, das oder die genau angibt, ob sich das Segment, auf welches zugegriffen werden soll, in dem SpezialSpeicher oder in dem Hauptspeicher befindet. Dieses Bit findet sich in der absoluten Adresse wieder, die nach der Berechnung in der Stufe 3 von Fig.2 in das Register RA eingegeben wird. Konstruktionsgemäß handelt es sich um das Bit hohen Stellenwerts, d.h. um das erste Bit von links in der Adresse. Wenn beispielsweise dieses Bit gleich Null ist, befindet sich der Mikrobefehl im Festspeicher, und wenn es gleich 1 ist, befindet sich der Mikrobefehl in dem Hauptspeicher. Dieses Bit wird einer digitalen Zugriffsspezialschaltung 12 in dem Hauptspeicher 11 zugeführt. Durch Decodierung dieses Bits oder einer Kombination von Bits in der digitalen Zugriffsspezialschal-
509811/0810
tung 12 in dem Hauptspeicher kann der Befehl/ dessen Adresse in dem Register RA,4 enthalten ist, aus dem Hauptspeicher entnommen und auf einem 32-Informationsbit-Weg. zu dem Ausführungsregister RD,9 geleitet werden,wenn die Decodierung dem Vorhandensein dieses Befehls im Hauptspeicher entspricht. Wenn das nicht der Fall ist, wird dieser Befehl aus dem SpezialSpeicher 13 entnommen, der aus praktischen Gründen immer adressiert wird. Der 32-Bit-Befehl ist nun in dem Ausführungsregister 9 eingetragen. An dem Ausgang des Registers RA wird die Adresse in einem Multiplexer 10 multiplexiert.
Durch das gleichzeitige Vorhandensein von Programmen und Mikroprogrammen in dem Hauptspeicher stellt sich das Problem ihrer gegenseitigen Standorte; dieses Problem ist dem Problem des Standorts des Betriebssystems und der Anwendungsprogramme analog. Die Anwendungsprogramme müssen nämlich nicht die Prozeduren und Daten ändern können, die sich auf die Mikroprogramme beziehen, welche ein mit der Maschine innig verbundener Teil sind. Die Änderung der in dem Steuerspeicher enthaltenen Mikroprogramme ist nicht möglich, insoweit die Programme einen Zugriff zu diesem Speicher haben. Das ist praktisch in dem Hauptspeicher möglich, da die absoluten Adressen den gesamten Speicher überdecken. Man hat somit eine . Trennung zwischen der Firmware-Zone und der Softwaren-Zone eingeführt. Diese Trennung trägt den Namen BAR oder Basisadreßregister. Die Firmware ist in der Zone enthalten, die sich von 0 bis BAR erstreckt und die Software ist in. der Zone enthalten, die sich von BAR bis MSUL (obere Grenze des Hauptspeichers) erstreckt. Jedweder Software-Zugriff ist von BAR bis MSUL möglich und außerhalb davon verboten. Dieses Verbot wird durch eine Spezialschaltung erreicht.
Diese Spezialschaltung ist in dem rechten Teil von Fig. schematisch dargestellt. Sie besteht im wesentlichen aus einem Register BAR,15 und einem Sperrvergleicher 16. Der Speicher 11 kann entweder durch die Software oder durch
50981 1/0810
die Firmware adressiert werden. Die letztgenannte Adressierungsart ist oben beschrieben worden und ist nicht Gegenstand der Kontrolle. Dagegen ist jegliche Adresse, die entweder direkt oder indirekt über Tabellen aus der Software stammt, Gegenstand eines Vergleichs mit dem in dem Register BAR,15 enthaltenen Adreßwert, und der Zugriff ist nur möglich, wenn der Adreßwert größer ist als der Wert von BAR. Das ist insbesondere der Fall des Lesens von Daten im Hauptspeicher 17, des Lesens von Programmen 18 und des Zugriffs auf Kanalprogramme 19. Die Benutzerprogramme haben deshalb keinen Zugang zu der Firmware-Zone des Hauptspeichers. Wenn die Adresse, die zu dem
Hauptspeicher geschickt wird, niedriger als BAR ist, kann der dieser Adresse entsprechende Befehl nicht erreicht werden und es wird eine Störung 14 erzeugt. Selbstverständlich ist die Erfindung nicht auf die oben beschriebene Ausführungsform beschränkt. Im Rahmen der Erfindung bietet sich dem Fachmann eine Vielzahl von Abwandlungsmöglichkeiten.
50981 1/0810

Claims (9)

  1. - 17 Patentansprüche:
    Verfahren zur Organisation des Steuerspeichers eines mikroprogrammierten Datenverarbeitungssysteins, welches mit verschiedenen Codegruppen arbeiten kann und einen Schreib/ Lese-Hauptspeicher, der Programmbefehle enthält, und einen Zentralprozessor aufweist, der durch die in dem Steuerspeicher enthaltenen Mikrobefehle gesteuert wird und mit peripheren Einheiten verbunden ist, dadurch gekennzeichnet, daß der Steuerspeicher aus mindestens einem Festspeicher und aus einer Zone des Hauptspeichers gebildet wird.
  2. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß die Mikrobefehle in Segmenten angeordnet werden, daß jedes Segment in Seiten unterteilt wird und daß die absolute Adresse eines Mikrobefehls in dem Steuerspeicher durch die Addition der Basis des Segments und des Anfangs der Seite und durch die Verkettung des erhaltenen Resultats mit der Verschiebung des Anfangs des Mikrobefehls in bezug auf den Anfang der Seite erhalten wird.
  3. 3. Verfahren"nach Anspruch 1 und 2, dadurch gekennzeichnet, daß die Basis eines Segments in einer Tabelle enthalten ist, die während der Initialisierung des Systems in den Hauptspeicher geladen wird. .
  4. 4. Verfahren nach Anspruch 1/ 2 und 3, dadurch gekennzeichnet, daß jeder Tabelle des Hauptspeichers eine Konfiguration der Segmente des SteuerSpeichers entspricht.
  5. 5. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß der Hauptspeicher durch einen festen Absolutadreßwert in zwei Teile unterteilt wird, daß jede Adresse, die aus den Befehlen des Programms stammt, mit diesem Wert verglichen wird, und daß der Befehl nur dann erreicht werden kann, wenn die Adresse größer oder gleich dem Grenzwert ist.
  6. 6. Vorrichtung zur Durchführung des Verfahrens nach An-
    509811/0810
    spruch 2, dadurch gekennzeichnet/ daß ein Register vorgesehen ist, welches die Basis des Segments speichert, daß das Register am Ausgang mit einem Addierer verbunden ist, der andererseits die Adresse der Seite aus einem Adreßregister empfängt, welches die laufende Adresse des in der Ausführung begriffenen Prozesses enthält, daß eine Adreßrechenstufe, die einerseits mit dem Addierer und andererseits mit dem Adreßregister verbunden ist, die absolute Adresse durch Verkettung der vorangehenden Daten berechnet, und daß der Ausgang der Adreßrechenstufe mit einem Register.für die Speicherung der Adresse des Mikrobefehls verbunden ist, der dem in der Ausführung begriffenen Mikrobefehl folgt.
  7. 7. Vorrichtung zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß sich die Adresse des auszuführenden Befehls in einem Adreßregister befindet, daß eine Leitung dieses Register mit einer digitalen Zugriffsspezialschaltung, in der mindestens ein Bit der Adresse decodiert wird, in dem Hauptspeicher verbindet, und daß die Adresse gleichzeitig zu dem Hauptspeicher und zu dem SpezialSpeicher übertragen wird.
  8. 8. Vorrichtung nach Anspruch 7, dadurch gekennzeichnet, daß die digitale Zugriffsschaltung in dem Hauptspeicher mit einem Vergleicher verbunden ist, der die aus den Programmbefehlen stammenden Adressen mit einem in einem Spezialregister enthaltenen Adreßwert vergleicht und nur die Adressen freigibt, die größer oder gleich diesem Wert sind.
  9. 9. Verfahren zum Steuern des Zentralpro^essors eines Datenverarbeitungssystems mit einem Hauptspeicher, mit Betriebsstufen, mit peripheren Einheiten und mit einem Spezialspeicher, der in Segmenten angeordnete Mikroprogramme enthält, dadurch gekennzeichnet, daß während der Initialisierung des Systems Mikroprogramme sowie eine Tabelle von Segmenten in den Hauptspeicher geladen werden und daß die Steuerung der Eingabe- und Ausgabefunktionen von Daten und die Verarbeitung derselben danach unter der Wirkung der
    509811/0810
    • 'Mikroprograiningruppe ausgeführt wird, die in den beiden Speichern enthalten ist/ welche den Steuerspeicher bilden.
    509811/0810
    Leerseite
DE19742442014 1973-09-03 1974-09-03 Verfahren und vorrichtung zur organisation eines steuerspeichers Ceased DE2442014A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR7331761A FR2336058A5 (fr) 1973-09-03 1973-09-03 Procede et dispositif d'organisation d'une memoire de commande

Publications (1)

Publication Number Publication Date
DE2442014A1 true DE2442014A1 (de) 1975-03-13

Family

ID=9124561

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19742442014 Ceased DE2442014A1 (de) 1973-09-03 1974-09-03 Verfahren und vorrichtung zur organisation eines steuerspeichers

Country Status (4)

Country Link
JP (1) JPS605976B2 (de)
DE (1) DE2442014A1 (de)
FR (1) FR2336058A5 (de)
GB (1) GB1478489A (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994012929A1 (en) * 1992-11-23 1994-06-09 Seiko Epson Corporation A microcode cache system and method

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5230335A (en) * 1975-09-04 1977-03-08 Usac Electronics Ind Co Ltd Memorizing method in memory unit
JPS52103932A (en) * 1976-02-26 1977-08-31 Nippon Telegr & Teleph Corp <Ntt> Data processing unit
JPS54155744A (en) * 1978-05-29 1979-12-08 Nec Corp Microprogram control system
JPS6280771U (de) * 1985-11-12 1987-05-23

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5129596B2 (de) * 1972-08-31 1976-08-26

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1994012929A1 (en) * 1992-11-23 1994-06-09 Seiko Epson Corporation A microcode cache system and method

Also Published As

Publication number Publication date
GB1478489A (en) 1977-06-29
JPS5056136A (de) 1975-05-16
FR2336058A5 (fr) 1977-07-15
JPS605976B2 (ja) 1985-02-15

Similar Documents

Publication Publication Date Title
DE3587591T2 (de) Mikroprozessor für Forth-ähnliche Sprache.
DE2423194C2 (de) Vorrichtung zum Berechnen einer absoluten Hauptspeicheradresse in einer Datenverarbeitungsanlage
DE1931966C3 (de) Datenverarbeitungsanlage mit Assoziativspeichern
DE2364408C3 (de) Schaltungsanordnung zur Adressierung der Speicherplätze eines aus mehreren Chips bestehenden Speichers
DE3151745C2 (de)
DE2417795C2 (de) Datenverarbeitungsanlage
DE2230102A1 (de) Rechenwerk fuer variable wortlaengen
DE2517276A1 (de) Datenverarbeitungssystem
DE2735814A1 (de) Datenverarbeitungseinrichtung
DE2318069A1 (de) Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix
EP0010186B1 (de) Vorrichtung zum Bearbeiten bezeichneter Hinweise
DE2556617C2 (de) Schiebe- und Rotierschaltung
DE2164793A1 (de) Verfahren und Datenverarbeitungsanlage zur Steuerung einer Vielzahl von Eingabe/ Ausgabe-Einheiten mittels eine Zentraleinheit
DE2744359C2 (de)
DE2551741A1 (de) Datenverarbeitungseinrichtung
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen
DE2221442A1 (de) Assoziativspeicher
DE10329680A1 (de) Prozessorarchitektur für exakte Zeigeridentifizierung
DE2418921C2 (de) Vorrichtung zum Speichern von Mikroprogrammen in einer Datenverarbeitungsanlage
DE2458259A1 (de) Datenverarbeitungssystem zum vergleichen verschiedener datenstrukturen
DE2245284A1 (de) Datenverarbeitungsanlage
DE2442014A1 (de) Verfahren und vorrichtung zur organisation eines steuerspeichers
DE2723706A1 (de) Einrichtung zum adressenvergleich
DE68928782T2 (de) Datenverwaltungssystem
DE3687277T2 (de) Systemspeicher fuer reduktionsprozessor zur durchfuehrung von programmen, die als binaere graphen gespeichert sind und die anwendungssprachen-kodes ohne variable verwenden.

Legal Events

Date Code Title Description
OGA New person/name/address of the applicant
8110 Request for examination paragraph 44
8131 Rejection