DE2458096A1 - Mikroprogramm-ladeeinrichtung fuer die ladezeit-festlegung - Google Patents
Mikroprogramm-ladeeinrichtung fuer die ladezeit-festlegungInfo
- Publication number
- DE2458096A1 DE2458096A1 DE19742458096 DE2458096A DE2458096A1 DE 2458096 A1 DE2458096 A1 DE 2458096A1 DE 19742458096 DE19742458096 DE 19742458096 DE 2458096 A DE2458096 A DE 2458096A DE 2458096 A1 DE2458096 A1 DE 2458096A1
- Authority
- DE
- Germany
- Prior art keywords
- memory
- firmware
- processor
- program
- micro
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Description
BURROUGHS CORPORATION, eine Gesellschaft nach den Gesetzen des Staates Michigan, Burroughs Place,
Detroit, Michigan, 48232, V.St.A.
Mikroprogramm-Ladeeinrichtung für die Ladezeit-Festlegung
Bei der Entwicklung und der Konstruktion von kleinen Rechenwerken oder Prozessoren für Mini-Computer ergeben
sich viele Probleme, die in größeren Systemen nicht auftreten. Eine dauernd auftretende Schwierigkeit
liegt in der begrenzten Speicherkapazität des Speichers. In einem Minicomputer wie beispielsweise dem
Rechner Burroughs B 700 steht häufig nur ein begrenzter Speicherbereich zur Verfügung, der mit besonderer Überlegung
so verwendet werden muß, daß für die Benutzer-Programme und - Daten größtmöglicher Speicherraum vorhanden
ist.' ' .
Man hat versucht, diese Schwierigkeit' dadurch zu überwinden, daß der für Mikrobefehle benötigte Speicherraum
und der für den Benutzer-Code benötigte. Speicherraum in einer gemeinsamen, relativ großen Speichereinheit zusammengefaßt
wurden. Bei dieser Speichereinrichtung kann der für das Speichern von Mikrobefehlen nicht benötigte Spei-
509827/0818
HZ/gs
245
fas- ii V-*
cherraum vom Benutzercode verwendet werden. Typischer—
weise besitzt eine derartige Speichereinrichtung mit geteilten Speicherbereichen die Fähigkeit, den Mikroprogrammspeicher
von dem Datenspeicher oder dem Quellenspeicher zu trennen.
Dabei ergeben sich besondere Vorteile, wenn ein Speicher verwendet wird, bei dem die Grenze zwischen dem Mikroprogrammspeicherteil
und dem für den Benutzercode oder Quellenspeicher reservierte Speicherbereich beweglich
ist. Dann kann der Mikroprogramm-Speicherbereich und der Quellenspeicherbereich entsprechend den Veränderungen der
Syst. inanforderungen gegeneinander abgegrenzt werden und
es gibt bestimmte, für den Handel geeignete Ausführungen, die auf spezielle Applikationen zugeschnitten sind«,
Es ist daher erwünscht, eine Maschine zu haben, bei der der Umfang der fest in die Maschine eingebauten Struktur
nur so groß ist, wie er zur Schaffung einer für das Benutzerprogramm notwendigen Prozessor-Leistungsfähigkeit
ausreicht. Eine derartige Maschine erfordert ein Minimum an Mikroprogrammspeicherbereich, so daß von dem gemeinsamen
Speicher ein größerer Anteil zur Verwendung für den Programmierer freigesetzt wird, um sein Objektprogramm
durchzuziehen und die benötigten Datenwerte zu speichern. Diese Leistungsfähigkeit einer Maschine kann
dadurch erreicht werden, daß die Firmware oder Mikroprogrammstruktur an den Zeitpunkt der Ladung des Objektprogramms
gebunden wird. Zur Bedeutung des Ausdrucks "Firmware" wird auf die von A.Opler in "Fourth Generation
Software", Datamation, Januar 1967, Seiten 22-24 gegebene Definition sowie auf den-Aufsatz von E.W. Reigel et al
"The Interpreter - a Microprogrammable Building Block System", AFIPS Conference Proceedings, Spring Joint Computer
Conference, Band 40, 1972, Seiten 705-723 Bezug genommen.
509827/0818
Bei einer Maschine dieser Art ergeben sich Konstruktionsund Entwicklungsüberlegungen, die bei der Ankopplung an
die Quellensprache nicht auftreten. Im Unterschied zu einer Bindung an die Laufzeit von Objektprogrammdefinitionen
und/oder Programm-Unterroutinen beschäftigt sich die Bindung oder das Festlegen an den Ladezeitpunkt mit der
Strukturierung der System-Mikroprogramme oder System-Firmware zu einem Zeitpunkt, wenn der Benutzer sein Objektprogramm
geladen hat. Diese Konzeption erfordert den Aufbau eines Verzeichnisses aller möglichen Mikroprogrammmoduln,
die beim Betrieb des Systems einmal benötigt werden könnten.
Es ist daher erwünscht, daß für ein vorliegendes Benutzerprogramm
das Rechensystem automatisch entscheidet, welche Mikroprogramm-Steuerungen für den Ablauf des Programms
benötigt werden. Es ist ferner'erwünscht, daß die.Entscheidungseinrichtung
in dem Prozessor fiür das Laden von Mikroprogramm-Moduln existiert und daß die Ladeeinrichtung
durch einen Techniker ohne großen Aufwand umgestaltet
werden kann.
Die Erfindung soll daher eine Ladeeinrichtung für einen mikroprogrammierbaren, digitalen Prozessor schaffen,, die
in dem Prozessor stets vorhanden oder mit ihm koexistent ist, so daß zur Ladezeit des Benutzerprogramms Mikroprogrammsteuerungen
in den Prozessor geladen werden können. Weiter soll die Erfindung eine Ladeeinrichtung schaffen,
an der in wirtschaftlich vertretbarer Weise je nach dem Mikroprogramm-Hintergrund des Prozessors Veränderungen
vorgenommen werden können. Schließlich soll die Erfindung eine Ladeeinrichtung schaffen, die entscheiden kann, welche
Mikroprogramm-Moduln in dem System-Prozessor (Interpreter) eingebunden werden sollen, damit das spezielle,
eingegebene Benutzerprogramm ablaufen kann.
S09S27/0818
— Λ—
245809S
Die Erfindung schafft dazu eine Mikroprogramm-Ladeeinrichtung, die dazu verwendet werden kann, die Mikroprogrammstruktur
eines mikroprogrammierbaren, digitalen Prozessors an die Ladezeit zu binden. Eine derartige
Mikroprogramm-Ladeeinrichtung kann in dem Prozessorsystem als eine feste Komponente der Maschinengrundstruktur
dauernd vorhanden sein. Die Ladeeinrichtung kann durch das Laden eines beispielsweise ein Code-Wort
enthaltenden Programms aus dem Benutzer-Programm aktiviert werden.
Eine Aufstellung oder ein Verzeichnis sämtlicher peripheren und rechnerbezogenen Mikroprogramme, die für das
System vorbereitet sind, kann in einem HilfsSpeicher gespeichert werden, in welchem eine Liste jeden Namen
einer Mikroprogrammkette und entsprechende Hilf^Speicheradresse
umfaßt.
Es wird besonders bevorzugt, daß dann, wenn ein Benutzerprogramm mit einer Überschriftsinformation in das System
geladen wird, ein Detektor den Code feststellt und das Laden der Firmware einleitet. Ein Dekoder kann dann die
Überschriftinformation dekodieren, um eine Tabelle von
Mikroprogramm-Moduln zu erhalten, die in dem System zur Ausführung des geladenen Benutzerprogramms benötigt
werden.
Nach Beendigung dieser Operation können dann die erforderlichen Mikroprogramm-Ketten in Speicherstellen des
gemeinsamen Speichers aus einem Hilfsspeicher eingebracht
werden.
Während des Festlegenss d.h. des Einbringens in den gemeinsamen
Speicher, können die Bezugsadressen in jedem Mikroprogramm-Modulso übersetzt werden, daß sie ihre
509827/0818
neue Stelle nach dem Laden in den Speicher widerspiegeln.
Die Erfindung geht aus der nachfolgenden Beschreibung eines Ausführungsbeispiels deutlicher hervor, wobei
auf die beigefügten Zeichnungen Bezug genommen wird. Im einzelnen zeigen:
Fig. 1 ein Blockschaltbild eines Mikroprozessorsystems, in welchem die Ladeeinrichtung
arbeiten kann;
Fig. 2 ein mehr ins Einzelne gehendes Blockdiagramm für den Prozessor und seine Verbindung mit
dem gemeinsamen Speicher aus dem System der Fig. 1;
Fig. 3 ein detaillierteres Blockschaltbild des zentralen Prozessors aus dem System der Fig.
und 2 ;
Fig. 4 die Schnittstellen der Ladeeinrichtung mit
dem System aus Fig. 1;
Fig. 5 eine ins Einzelne gehende Darstellung der Hardware-Verschaltung der Ladeeinrichtung;
Fig. 6 eine Darstellung des gemeinsamen Speichers aus Fig. 1 mit einer Mikroprogramm-Darstellung
der Ladeeinrichtung in dem Speicher;
Fig. 7 eine Darstellung der Überschrift-Information,
die für die Ladeeinrichtung in der einen oder anderen Form benötigt wird;
Fig. 8 ein Flußdiagramm für die Mikroprogramm-Ladeeinrichtung ; und
Fig. 9 eine Darstellung eines Speicherabschnittes mit dem vom Benutzer überschreibbaren und
auslesbaren Teil.
In den Figuren bedeuten gleiche Bezugszeichen gleiche Teile.
Definitionen
In der nachfolgenden Beschreibung werden gewisse Ausdrücke
häufig verwendet, die wie folgt zu verstehen sind.
509827/0818
2458098
Proqrainmsprachenfprm; Darunter wird eine Form oder ein
Format verstanden, das in Binärsignale kodiert sein kann, und von einem Programmierer oder Benutzer des Rechners
verwendet werden kann, ohne daß eine Kenntnis der Schaltung in einem speziellen Verarbeitungssystem nötig wäre.
S—Niveau—Befehl; Wird ein Befehl verstanden, der eine
eine Routine oder ein Verfahren angebende Information enthält, die oder das an Patensätzen ausgeführt werden
soll. Ein S—Befehl ist vergleichbar mit einem Mikrobefehl oder einem Quellensprachenbefehl bekannter Art.
M-Niveau-Befehl: Darunter wird ein Befehl verstanden,
der eine einen Operationsbefehlsteil angebende Information
enthält, der in einem Verarbeitungssystem ausgeführt werden soll, in welchem eine oder mehrere derartige Operationen
zur Ausführung eines Verfahrens erforderlich sind, das von dem S-Befehl aufgerufen würde*. Ein M-Befehl
ist vergleichbar mit einem Mikrobefehl, der aus dem Stand der Technik bekannt ist.
N-Befehl; Darunter wird ein Befehl verstanden, der eine
spezielle Steuersignale angebende Information enthält, die' in dem Verarbeitungssystem dazu benötigt werden, um
die Ausführung oder die Verwirklichung eines M-Befehls in Gang\zu setzen. Es können ein oder mehrere N-Befehle
zur Verwirklichung eines M-Befehls nötig sein.
Grundzüge
In mikroprogrammierbaren Prozessoren ist die Firmware definitionsgemäß ein integraler Teil der inneren Struktur,
die ihrerseits ein abgrenzbares Teil der Vorrichtung ist. Ohne Mikrobefehle kann der mikroprogrammierbare Prozessor
nicht arbeiten. Durch Hinzufügen der Firmware (=Mikroprogrammstrukturjzueinern
Mikrobefehls-Rechner wird die Aua -
809827/0818
legung der Maschine vollständig.
Gemäß der von Opler gegebenen Definition c^es Ausdrucks
Firmware (vgl. Datamation, Januar 1967, Seiten 22-24) bezeichnet dieser A usdruck Mikroprogramme, die im Steuerspeicher
eines Mikroprogrammrechners untergebracht sind, welche die logische Auslegung der Maschine für einen
speziellen Anwendungsfall vervollständigen. Die Mikroprogramms
truk tür muß daher in jedem Fall mit einer vorhandenen Maschinenstruktur, gegeben in Form von verdrahteten
Verstärkern und Filtern, etc., kompatibel sein, und zwar gerade so, wie die fest verdrahteten Verstärker
und Filter mit einer vorgegebenen Maschinenstruktur verträglich sein müssen. Die Mikroprogrammstruktur wird zu
einem optimalen Hilfsmittel für den Entwicklungsingenieur. Sie stellt eine weitere Konfiguration dar, mit welcher
Untersystem-Aufgaben in einem Rechner^ystem gelöst werden
können. In ähnlicher Weise, wie in dem Hardware-Gegenstück eine Erfindung sich nichc in dem einzelnen Widerstand,
Kondensator, Logik-Gatter etc. verkörpert, sondern vielmehr
in dem sich ergebenden Modul zu sehen äst, der durch eine spezielle Verbindung von Widerständen, Kondensatoren,
Logik-Gattern etc. entsteht, so ist die Erfindung auch nicht in einem einzelnen Mikrobefehl, sondern vielmehr
in dem Mikroprogramm verkörpert, das sich durch' spezielle Verknüpfung von Mikrobefehlen ergibt.
Bei der Schaffung eines Prozessors müssen die gestellten Anforderungen abgewogen werden und es muß entschieden
werden, in welcher Weise die Aufgabe jeder Komponente in dem System verwirklicht wird. Gelegentlich wird eine
Mikroproqrammstruktur verwendet, in anderen Fällen kann eine digitale Logik, eine Analogschaltung, passive Schaltung,
aktive Schaltung, Filter, Multiplexer etc., zum Erreichen des gesteckten Zieles verwendet werden. In jedem
Fall sind an der Wahl Überlegungen bezüglich Geschwindig-
509827/0818
~8~ 245809S
keit, Kosten, universelle Anwendungsmöglichkeiten,
Leistungsfähigkeit, Gewicht, etc. beteiligt.
Das Speichern von Macrobefehlen und Microbefehlen im
gleichen Speicher ist ein Konzept, das bei der Entwicklung von Microbefehlsprozessoren zunehmend an Bedeutung
gewinnt. Die Verwendung eines gemeinsamen Speichers erlaubt eine wirtschaftlichere Auslegung und Größe
desSpeichers sowie Einsparungen an Speicheradressierschaltungen, hat jedoch zusätzliche Speicherkapazität-Überlegungen
zur Folge. Man hat bei der Entwicklung von Microbefehlsmaschinen, in welchen einzeln spezifizierte
Macrobefehlsschritte durch eine. Kette von Microbefehlen, die vom Macrobefehl aufgerufen wurden, ausgeführt
werden, festgestellt, daß die Microbefehlskapazität
der Maschine beim Ablaufenlassen der Programme nicht stets voll ausgenützt wird. Dies trifft vor allem
dann zu, wenn die Maschinenstruktur die Verwendung von immerzahlreicheren Microbefehlsmoduln, üblicherweise
Firmware-Moduln genannt, vorsieht, die die traditionellen verdrahteten Steuerungen ersetzen sollen. Eine typische
Maschine, die mit Peripheriegeräten wie Bandgeräten, Plattengeräten, Drucker, Leser und Bedienungspulten arbeiten
kann, wobei die Steuerungen dieser Einheiten als Firmware-Moduln strukturiert sind, besitzt erheblich mehr
Firmware als Maschinen früherer Generationen. Wenn man zu dieser erheblich zugenommenen Peripherie-Microprogrammstruktur
noch die zentrale Microprogrammstruktur des zentralen Prozessors hinzunimmt, dann wird das Gebot der
Optimierung des Microbefehls-Speicherraums in einem gemeinsamen
Speicher zu einer äußerst wichtigen Angelegenheit. Natürlich setzt das Eliminieren nicht benötiger Microbefehle
aus dem gemeinsamen Speicherraum zusätzlichen Speicherraum für die Benutzer-Programmbefehle (S-Niveau-Befehle) und
Datenwörter frei.
509827/0818
2458098
Die "Ladezeit-Festlegung" der Rechner-Microprogramm—
struktur erlaubt daher die Optimierung gemeinsamen Speicherraums und stellt eine deutliche Verbesserung
gegenüber der "Laufzeit-Festlegung" gemäß dem Stand der Technik dar, und zwar insbesondere bei der Anwendung
in Microbefehlsprozessoren, die mit gemeinsamen S-Niveau und M-Niveau-Speichern arbeiten. Die "Ladezeit-Festlegung"
bedeutet das Laden der zur Ausführung eines speziellen Benutzerprogramms benötigten Mikroprogramm-Struktur
in dem Zeitpunkt, in welchem das Benutzerprogramm geladen wird. Dadurch wird erreicht, daß die kleinste
Menge an Mikrobefehlen geladen wird, die zum Ablauf des Programms benötigt wird, wodurch automatisch der
größtmögliche S-Niveau—Speicherraum in dem gemeinsamen
Speicher für das Speichern von Daten freigesetzt wird.
Bei diesem Verfahren des gemeinsamen Speichers kann die
Speicherraum-<Zuweisung durch eine Microprogramm-Ladeeinrichtung
erreicht werden. Der Aufbau einer derartigen Ladeeinrichtung wie auch aller übrigen Systemkomponenten richtet
sich speziell nach der technischen Umgebung, in welcher sie arbeiten muß, und kann durch eine digitale Logikschaltung
oder durch einen fest vorhandenen Microprogramm-Modul verwirklicht werden.
Dio Erfindung arbeitet in einem mikroprogrammierbaren
Recnner, der drei einzelne Befehlssysteme verwendet, nämlich Befehle vom S-Niveau, Befehle vom M-Niveau und .
Befehle vom N-Niveau. Eine Tabelle von N-Befehlen (Nano-Befehlen)
ist normalerweise in einem Lese-Speicher fest eingegeben. Die "Dienst-Tabelle" der M-Befehle kann dynamisch
verändert werden, wobei diese Befehle normalerweise in einen Lesespeicher gespeichert sind. Die Tabelle
der S-Befehle einschließlich der Daten wird durch Pro-
5 0 982 7/0818
245SÖ98
grammierertatigkext geladen und in dem Lesespeicher gespeichert.
Das Rechnersystem, in welchem die Erfindung mit besonderem
Vorteil verwendet werden kann, ist beispielsweise in den britischen Patentschriften 1 318 231 und 1 318
und 1 318 233 und 1 318 234, sowie in der belgischen Patentschrift 750 068 und in der französischen Patentschrift
7 016 550 beschrieben.
Die Erfindung wird nun anhand der beigefügten Zeichnungen im einzelnen beschrieben. Gemäß dem Blockdiagramm der
Fig. 1 ist ein programmierbarer Zentralprozessor 11 mit einer Schnittstelle in Form einer Eingangswahleinheit 13
versehen, über die ein Datenverkehr mit verschiedenen Peripheriegeräten, wie beispielsweise einer Bandeinheit
15, einem Drucker 17, einer Platteneinheit 19 und einem Bedienungspult 21 möglich ist. Der programmierbare Zentral-Projessor
11 ist ferner mit einem Nano-Programmspeicher 23, welcher Nano-Befehle enthält, und einem gemeinsamen Speicher
25 verbunden, in welchem sowohl S-Befehle wie M-Befehle
gespeichert sind. Beide Speicher können Halbleiterspeicher oder Random-Access-Plattenspeicher sein. Jedoch
wird der N-Speicher 2 3 notwendigerweise so gewählt, daß er den am schnellsten ablaufenden Speicherzyklus besitzt.
Der gemeinsame Speicher 25 ist normalerweise vom nichtlöschenden Lesetyp oder NDRO-Typ, während der Nano-Speicher
23 vorzugsweise ein Lesespeicher-Typ oder ROM-Typ ist, jedoch auch ein NDRO-Typ sein kann.
Der programmierbare Prozessor 11 besteht aus zwei Hauptabschnitten,
die in Fig. 2 einzeln dargestellt sind, nämlich einer arithmetischen Logikeinheit 27, auch ALU genannt
und einem Steuerabschnitt 29. Als Teil des Speichersteuerabschnittes
29 ist eine Mikroprogramm-Steuereinheit 31 mit dem gemeinsamen Speicher 25 zur Adressierung von
509827/0818
Mikrobefehlsspeicherstellen und zum Auslesen von Mikrobefehlen
aus dem Speicher 25 verbunden. Eine Speicher-Steuer-Einheit
33 ist mit dem gemeinsamen Speicher 25 verbunden, um ähnliche Funktionen bezüglich Datenwörtern
ausführen zu können..
Die Hauptregister und Datenpfade sowohl für den Steuerabschnitt
29 wie für die Arithmetikeinheit 27 sind in Fig. 3 angegeben. Die ALU 27 enthält eine Logikeinheit
35, die unter anderem als Addierer dient, eine Art Walzenschalter
37, der mit dem Ausgang der Logik-Einheit 35 verbunden ist und A Register 37, die in einem Rückkopplungspfad zwischen dem Ausgang des Walzenschalters 37 und einem
Eingang zur Logikschaltung 35 eingeschaltet sind. Ferner sind B-Register 39 und Wahr/Falsch-Gatter 41 jeweils in
Reihe geschaltet, wobei diese Reihenschaltung parallel liegt zur Rückkopplungsschleife aus dem Vierbit- oder
Achtbit-Übertrag des Logikaddierers 35, aus dem Ausgang
des Walzenschalters 37 und aus dem Ausgang der Logikeinheit 35. Ein zusätzlicher Eingang kommt aus dem S-Speicher
oder dem gemeinsairen· Speicher 25. Der Ausgang der Reihenschaltung,
d.h. aus den Wahr/Falsch-Gattern 41 versorgt die Logikeinheit 35.
Das B-Register 39 ist die primäre Schnittstelle .zwischen
der programmierbaren Einheit 11 und dem Speicher 25. Dieses Register dient auch als sekundärer Eingang zu dem Addierer
35 und dient zur Ausführung gewisser Sekundarfunktionen,
die gewissen arithmetischen Operationen zugeordnet sind.
Die Wahr/Falsch-Gatter 41 liefern die wahren Inhalte des B-Registers 39 oder das Einser-Komplement der Inhalte des
Registers 39.
A Register 32sind drei funktional identische Register.
0 9 827/0818
-Λ1-
.2458098
Jedes der A Register 37 wird von dem Ausgang des Walzenschalters 38 geladen. Der Steuerabschnitt 29 enthält
ein Feld, das eine Schnittstelle zwischen dem ALU 27 und dem Speicher 2 5 und Peripheriegeräten bildet, ein
Feld zur Behandlung der Dekodierung von M-Befehlen und ein Feld zum Empfang und Weitergeben von N-Befehls-Steuer-Signalen.
Der Ausgang aus dem ALU 27 kommt von dem Walzenschalter 38 und kann der Schnittstelle 43, dem Basisregistern
und 46 und einem Speichereingangs-Register 47 wie auch einem anderen Mikroprogramm-Zählerregister (AMPCR) 49
zugeführt werden. Der Ausgang des Walzenschalters 38 kann außerdem einem Schiebebetrag-Register (SAR) 51
zugeführt werden.
Schnittstellengatter 43 die.it zum Empfang von Adressen
und anderer Information zur Übertragung entweder zu einem Speicheradressregister 51 oder zu einem Zähler 53. Das
Register-Basis-Register (RB]O45 enthält die Basisadresse
eines 256 Wortblocks des Hauptspeichers und speichert mit dem Inhalt von MAR-51 die volle Speicheradresse. Dem RBR
45 ist das Basis-Register 2 (BR2) 46 zugeordnet, das die Basis-Adresse eines 256 Wortblockes des Hauptspeichers
oder dem höchststelligen Teil einer Geräteadresse enthalten kann. Das Speicherinformationsregister (MIRO) 47 dient
zum Puffern der Information, die in den Hauptspeicher oder ein Gerät geschrieben wird.
Der Inhalt eines Mikrobefehls wird von einem Mikrobefehls-Dekoder
55 empfangen, um den N-Speicher zu adressieren sowie zur Übertragung in das Literalregister 57, Verschiebungsbetrag-Register
(SAR) 51 zum anderen Mikroprogramm-Zählerregister (AMPCR)49. Das Verschiebungsbetrags-Register
49 hält entweder die Verschiebungsbetragszählung oder das
509827/0818
Wortlängen—Komplement davon, was zur Steuerung der Anzahl
von Bits verwendet werden soll, um welche die Daten in
dem Walzenschalter 38 verschoben werden sollen. Das Mikroprogrammzählerregister 49 enthält die Sprung- oder Riick^
kehradresse für Programmsprünge und Subroutinen-Rückkehrungen innerhalb der M-Programme. Die Adresse in diesem
Register 49 ist gewöhnlich um eine Einheit kleiner als die Adresse derjenigen Stelle, zu der.zurückgekehrt werden
soll. Dieses Register 49 kann von einem Mikroprogrammzähler-Register 59 geladen werden, sowie vom Ausgang der Walzenschalter
38 oder von dem Mikrobefehlsdekoder 55. Zusammen mit diesem Register bildet das Mikroprogramm-Zählerregister
(MPCR) 59 den Befehlsadress-Zähler für den M-Teil des
Speichers 25. Üblicherweise enthält er die gerade gültige M-Befehls-Adresse.
Das Dekodieren des N-Befehls wird' durch eine Testschaltung
61 und ein Befehlsregister 63 ausgeführt. Die Testschaltung
61 empfängt Information aus dem Bedingungsregister 65, wobei der Inhalt dieses letzteren Registers ein Satz aus
prüfbaren Bits darstellt, welche als Fehlerindikatoren, Unterbrechungen, lokale und globale Boole'sehe Variable und
Freigabeindikatorenilockout indicators) wirken.
Die Speicher- und Geräte-Operationen dienen zur Übertragung von Daten zwischen der programmierbaren Einheit
11 und dem Speicher 25 oder einigen Peripherie-Geräten 15,17,19,21. Die programmierbare Einheit 11 ist mit den
Speichermoduln und Geräten durch schaltbare Zweiweg-Sammelleitungen
verbunden. Die Speicher- und Geräteadressen werden von dem Speicheradress-Register (MAR) 51, dem.Speicher-Eingangsregister
47 und dem Basisregister 46 über diese Sammelleitungen geschickt.
Wie vorstehend angegeben, findet die Verwirklichung der M-Befehle durch Nano-Befehle während dreier Zeitphasen statt.
50.9827/0818
Somit werden die von dem N-Befehl bezeichneten Steuersignale
in drei Gruppen aufgeteilt: Phase 1, Phasen 2 und 3j und Phase 3. Die Phase 1 dient zur Konditionsprüfung,
der Berechnung der Adresse des nächsten Befehls, der Einleitung von Speicher-und Geräteoperationen, dem
Laden von Instruktions-Literalen in die LIT 57 oder SAR
und Einrichtung einer Operation einer Logikeinheit. Phase 2 dient zur Verzögerung der' Phase 3 für die Übertrag-Weitergabe,
das Befehlspuffern, der Befehlsmodifikation und
der Mikrobefehls-Ausführung. Phase 3 dient zur Ausführung von Logikeinheiten-Operationen unter Einschluß der Bestimmungswahl.
Die Funktion der Ladeeinrichtung umfaßt die Feststellung, wann ein Benutzerprogramm in das Rechnersystem eingegeben
wurde und die Bestimmung, welches Peripheriegerät beim Ablauf jenes Programms benötigt wird. Wenn diese Aufgabe
entschieden ist, können Befehle in den Prozessor zum Laden der Mikroprogramm-Steuerungen eingegeben werden, um jedes
benötigte Peripherie-Gerät zu betreiben. Dazu wird eine Steuerkarte oder ein Überschriftsbefehl (oder Leitbefehl)
am Beginn jedes Programms eingefügt, das in die Maschine geladen wird. Dieser Befehl enthält eine Markierung oder
Kennung sowie eine Liste von Codewörtern, von denen jedes spezielle Mikroprogramm-Moduln definiert, die in dem ablaufenden
Programm verwendet werden. Eine mehr ins einzelne gehende Erörterung des Leitbefehls wird weiter unten gegeben.
Der Bereich der Ladeeinrichtung kann der eines Überwachungsprogramms
oder in den Prozessor eingegebener Daten sein und, wenn ein Programm eingegeben wurde und eine Bestimmung
der benötigten Mikroprogramm-Moduln gemacht wurde,
8098.27/0818
kann einer zur Bindung der notwendigen Mikroprogrammstruktur in den Speicher sein.
Solch eine Ladeeinrichtung kann in ihrer verwirklichten Form.Fig. 4 entnommen werden, gemäß der sie an die Informationssammelleitung
zwischen Prozessor-Einheit 11 und dem gemeinsamen Speicher 2 5 angebunden ist. Die Ladeeinrichtung
65 kann bei ihrer Verbindung mit dieser Sammelleitung die Eingangsinformation überwachen und ein
Gatter 67 steuern, das die Mikroprogramm-Spezifikations-Information aus dem Speicherraum des Speichers 25 sperren
kann. Die Ladeeinrichtung 65 kann dann so arbeiten, wie von der Mikroprogramm-Beschreibungsangabe angegeben wird
und die Mikroprogrammstruktur in den Speicher 25 ablegen oder in diesen kompilieren.
Fig. 5 zeigt die Ladeeinrichtung 65 im einzelnen. Ein Dekodierer 69 überwacht den Prpgrammcode um ein Codewort
der Mikroprogramm-Beschreibungsinformation festzustellen,
das am Anfang dieses Programms eingefügt ist. Wenn dies festgestellt wird, bereitet der Ausgang des Dekodierers
69 den Befehlsdekoder 71 vor und sperrt "AND"-Gatter 67,
die im direkten Informationsbus aus dem Prozessor 11
zurr. Speicher 25 liegen. Die Mikroprogramm-Beschreibungs-Information
aus dem Prozessor 11 wird dann von dem Dekodierer 71 dekodiert, der seinerseits mehrere Compile-Befehls-Generatoren
aktiviert, wie beispielsweise eine Druckersteuerung-Kopplung 73, eine Bandsteuerungs-Kopplung
75, eine Pult-Steuerungskopplung 77, etc. Diese Generatoren 73-77 etc. sind jeweils mit dem Prozessor 11, dem Mikro-Befehlsdekoder
55 verbunden und erzeugen einen vorbestimmten, festen Mikrocode, der das Laden oder Eingeben
eines speziellen Mikroprogramm-Moduls in den Speicher verlangt. Am Ende der Mikroprogramm-Beschreibung setzt
ein Ende-Signal die Ladeeinrichtung zurück.
609827/0818
2458098
Alternativ kann die soweit beschriebene Ladeinrichtung selbst als Mikroprogramm anstelle von verdrahteter Schaltung
verwirklicht sein. Eine derartige Ladeeinrichtung könnte in einem Leseteil eines Speichers gespeichert und
in dem Rechner dauernd vorhanden sein. Ein wesentlicher Vorteil dieser Verwirklichung der Ladeeinrichtung gegenüber
der Verschaltung ist in den eingesparten Kosten zu sehen. Ein weiterer Vorteil ist die leichte Verwirklichung
und der Umbau innerhalb eines Rechnersystems, der bereits eine Steuerstruktur in Mikroprogramm besitzt.
Die bevorzugte Ausführungsform der Erfindung ist eine Ladeeinrichtung in Mikroprogrammausführung, die in der
Grundmaschinenstruktur des mikroprogrammierbaren digitalen Rechners dauernd seßhaft oder anwesend ist. Eine
derartige Ladeeinrichtung würde eine Konfiguration haben,
die Fig. 6 erläutert und nachfolgend beschrieben wird.
Ein Zentralprozessor 11 enthält die Grundmaschinenschaltung. Eine Erörterung dieser Schaltung wurde vorstehend
wiedergegeben. Mit dem Zentralprozessor 11 kann eine Anzahl von Torwahl-Einheiten 13 verbunden sein, von denen
jede eine Anzahl von Toren wie z.B. vier besitzt,um verschiedene Peripheriegeräte an dem Prozessor 11 anzuschließen.
Diese Peripheriegeräte können eine Bandeinheit 15, ein Drucker 17, ein Plattenstapel 19 und ein
Bedienungspult 21 sein. Ein Lese-Nano-Programmspeicher 23 ist mit dem Zentralprozessor 11 wirkungsmäßig verbunden
und enthält sämtliche Nano-Befehlswörter, die zur Grundausrüstung der Maschine gehören. Ferner ist mit dem
Prozessor 11 ein gemeinsamer Speicher 25 verbunden. Teil des gemeinsamen Speichers 25 ist das Eingangsregister
sowie das Ausgangsregister 81.
Teil des Speichers 25 ist das Basis-Interpreter-Mikroprogramm 83. Dieses Mikroprogramm sitzt in einem Lese-
509827/0818
245809$
teil des Speichers 25 und umfaßt zusammen mit dem Prozessor 11, der wie vorstehend beschrieben, gewöhnlich als Basisinterpreter-Schaltung
bezeichnet wird, die Interpreterstruktur des Mikroprogrammsystems. Dieses Interpretierer-Mikroprogramm
83 definiert "die Grund-Schnittstellen und die Steuersequenzen, die für den Interpretierer
spezifisch sind.
Das Mikroprogramm der Ladeeinrichtung 85 sitzt in einem Leseabschnitt des Speichers 25. Diese Ladeeinrichtung
weist mehrere Mikrobefehlsprogramme auf, die Peripherie-Mikroprogramme sowie Interpretierer-Berechnungs-Mikroprogramme
in den M-Speicherraum laden, wenn ein Benutzerprogramm, das eine Überschrifts- oder Leitinformation enthält,
in das Rechnersystem geladen wird.
Sämtliche peripheren Steuerungen (Mikroprogramm-Moduln) und Interpretierer (Prozessor)-Rechner-Mikroprogramme,
die für die anfänglichen Ladeoperationen nicht grundsätzliche Bedeutung haben, werden in Form einer Tabelle aus
einem Hilfsspeicher wie etwa einer Platte gespeichert. Jeder Mikroprogramm-Modul besitzt eine feste Tabellen-Adresse
einschließlich der Plattennummer und Spurnummer und ist mit sämtlichen internen Programmindizes gespeichert,
die am Anfang des Programms standardisiert oder normiert werden.
Die Überschrifts-Information oder Leitinformation, die am
Anfang des Benutzerprogramms geladen wird, enthält Befehle für die Ladeeinrichtung. Diese Information enthalt,wie
Fig. 7 zeigt, das Aktenzeichen 87, ein Lade-Einrichtungs-Codewort 89, eine Adresse, wie beispielsweise eine Hilfsplattenspeicheradresse
91, bei welcher die Festlegungsinformation für das spezielle Programm der Ladeeinrichtung
gespeichert ist, und die Anzahl der Wörter 93, die für das Benutzerprogramm-reserviert sind. Fig. 7 ist eine Dar-.
S09827/0818
stellung einer typischen Karte mit 80 oder 96 Spalten, die diese Überschrifts- oder Leitinformation trägt. Das
erste Feld von 10 hexadezimalen Ziffern ist reserviert für das Aktenzeichen oder den Programmnamen 87. Das zweite
Feld von vier hexadezimalen Ziffern ist reserviert für das Codezeichenwort (89), das angibt, daß das bezeichnete
Programm eingegeben wird und die Ladeeinrichtungsinformation einrichtet, wenn sie nicht korrekt ist. Das dritte
Feld aus vier hexadezimalen'Ziffern dient zur Datenlokalisation
(91) des Benutzerprogrammstapels, das die Festlegungsinformation enthält. Während ein viertes Feld aus
vier hexadezimalen Ziffern die Länge. (93) des zu ladenden Benutzerprogramms spezifiziert, bezieht sich das Aktenzeichen
oder der Programmname auf einen Parameterblock, der die Festlegungsinformation für das spezielle Programm
enthält. Diese Festlegungsinformation ist in einem Feld aus 20 Bits enthalten, wobei jede Bitstelle einen anderen
Mikroprogramm-Modul repräsentiert. Durch Verwendung einer '.1I" für Bedarf und eine "0" für kein Bedarf in jeder Position
des Feldes kann der Parameterblock das zum Ablaufenlassen des Benutzerprogramms benötigte Mikroprogramm angeben.
Eine in das System geladene Programmüberschrift aktiviert
die Ladeeinrichtung. Wenn die Überschrifts-Information
oder Leitinformation teilweise gelesen wurde, ruft die Ladeeinrichtung eine Tabelle der Mikroprogrammstelle auf '
und beginnt dann mit dem Laden jedes Mikroprogramm-Moduls, der in der Festlegungsinformation angegeben ist. Diese
Mikroprogrammstellen-Tabelle enthält die Verzeichnisspeicheradresse jedes Moduls. Die Ladeeinrichtung geht zu jener
Adresse, holt den Modul und legt ihn in dem gemeinsamen Speicher fest.
Wenn jedes Mikroprogramm gespeichert wurde, wobei seine Indizes auf den Anfang eines individuellen Programms orien-
609827/0818
tiert sind, muß jedes Mikroprogramm re-indiziert werden,
wenn es in dem gemeinsamen Speicher kompiliert wird. Die Ladeeinrichtung überwacht den von jedem Mikroprogramm
verwendeten Speicherraum und re-indiziert jedes Mikroprogramm bei seiner Festlegung in dem gemeinsamen Speicher
bezüglich seiner Stelle in dem Speicher.
Wenn der letzte, bezeichnete Modul festgelegt und re-indiziert wurde, kann die Ladeeinrichtung entweder auf die
Steuerung verzichten oder fortfahren, andere Felder des gemeinsamen Speicherraums anzugeben. Typischerweise kann
die Festlegungsinformation zunächst die E/A-Geräte-Moduln und dann sich die auf den Rechner beziehenden Rechen-Mikroprogramme
angeben. Nachdem diese Befehle gelesen- und die /- benötigten Mikroprogramme geladen wurden, kann die Ladeeinrichtung
dann den Puffer-Speicherraum und den Zwischenspeicher angeben und dann das Benutzerprogramm laden,
ehe es auf die weitere Steuerung verzichtet.
Das Verständnis des Betriebsverhaltens der Ladeeinrichtung
vertieft sich hoch bei Betrachtung der in Fig. 8 wiedergegebenen Flußdiagramme in Verbindung mit der nachstehenden
Erläuterung desselben.
Das Niederdrücken des Ladeknopfes auf dem Bedienungspult erzeugt ein Auslosesignal für die Ladeeinrichtung. Die
Ladeeinrichtung prüft dann die Überschrift und liest den . Programmnamen und beginnt .dann die Speicherplatten durchzusuchen,
auf denen sämtliche.Verzeichnisse der Informationen
gespeichert sind. Diese Platten enthalten das Verzeichnis der E/A-Geräte, d.h. der peripheren Steuerungen, sowie
ein Verzeichnis der Rechen-Mikroprogramme (Algorithmen) für den Interpretierer (Prozessor). Wenn die Ladeeinrichtung
keine Akte oder kein Programm entsprechend dem Programmnamen lokalisieren kann, signalisiert sie das Vorliegen
eines Fehlers. Wenn eine Akte oder ein Stapel vorhanden ist,
50982 7/0818
liest die Ladeeinrichtung das nächste Feld in der Überschrift,
das das Markierungswort enthält. Wenn dieses Markierungswort gültig ist, liest die Ladeeinrichtung die
Plattenadresse der Festlegungsinformation aus dem dritten
Feld der Überschrift. Der Parameterblock, der diese Festlegungsinformation enthält, wird dann gelesen. Dieser
Festlegungsinformationsblock benutzt wahre Bits, um den
Bedarf spezieller Mikroketten zu bezeichnen.
Die Ladeeinrichtung holt dann eine Adressentabelle /sämtlicher möglichen Steuereinrichtungen und beginnt das
Adressieren und das Festlegen der bezeichneten Steuereinrichtungen, die von dem Parimeberblock angegeben wurden,
und sie in den gemeinsamen Speicher einzubringen in der Reihenfolge, in der sie gelesen werden. Da alle Steuerungen
in der verzeichnisindizierten Basis relativ zu Null gespeichert sind, re-indiziert die Ladeeinrichtung jede
Steuerung (Mikroprogramm-Modul)-Basis relativ zur Speicherstelle der Festlegung.
Nach Abschluß des Festlegens der peripheren Steuerungs-Mikroprogramme
legt die Ladeeinrichtung ausgegebene Befehle in dem Speicher fest.
Wenn die Ausgabefähigkeit festgelegt wurde, wird eine
Tabelle von Plattenadressen der den Rechner betreffenden Rechenmikroprogramme geholt und die benötigten Rechenalgorithmen,
die zum Betrieb des Benutzerprogramms gebraucht werden, werden in den gemeinsamen Speicher hinter die peripheren
Steuerungen in der gleichen Weise geladen, wie diese Steuerungen mit re-indizierten Mikrokettenindizes gebraucht
werden.
Nachdem diese Rechen-Mikroprogramme geladen worden sind, wird eine Tabelle der Plattenadressen aller möglichen
S-Befehlsdarstellungen geholt. Wenn diese Information zur
Verfügung steht, liest die Ladeeinrichtung die S-Befehls-
509827/0818
2458098
darstellungs-Beschreibungen aus der Festlegungsinformation
und kompiliert jede Routine in der Reihenfolge hinter den Rechenmikroprogrammen. Diese Festlegungsoperation
wird in gleicher Weise ausgeführt wie das Festlegen von Steuerungen und der oben erwähnten Rechenalgorithmen.
Das Reindizieren der internen Routinen-Kennzeichen wird ebenfalls wie oben erwähnt ausgeführt.
Wenn diese Information in dem Speicher festgelegt worden
ist, werden Pufferanforderungen gelesen und jeder Pufferraum wird in dem Speicher festgelegt.
Danach werden die Zwischenspeicher-Anforderungen aus dem Programm-Parameterblock gelesen und ein Speicherraum wird
für den Zwischenspeicher reserviert. Wenn nicht genügend Speicherraum verfügbar ist, wird ein Fehleralarmzeichen
gegeben.
Nach Abschluß dieser Festlegung setzt die Ladeeinrichtung einen Ende-Zeiger für das Abschalten oder den Auszug.
Der Zeiger trennt die oben beschriebenen festgelegten Bereiche des gemeinsamen Speichers von dem soweit noch
unbenutzten Bereichen des gemeinsamen Speichers. Der festgelegte Abschnitt kann von dem Benutzer nur gelesen ■
werden,während der nicht festgelegte Anteil dem Benutzer ein normales Lesen und Schreiben ermöglicht.
Nachdem dieser Zeiger ersetzt worden ist, kompiliert
die Ladeeinrichtung den Benutzerobjekt-Code und gibt die
Steuerung an das System zurück.
Jedoch kann dieser Ende-Zeiger so bezeichnet werden, daß die untere Festlegung für die Lese/Schreib-Zugänglichkeit
durcn den Benutzer die Puffer und den Zwischenspeicher einschließt. Aus Fig. 9 kann dieser Fall entnommen werden,
wobei der festgelegte Mikro-Code 95 von dem Benutzer nicht
5 09827/0818
2458098
■zerstört werden kann, jedoch der Puffer 97, der Zwischenspeicher
99 und der Benutzer-Objektscode 101 von dem Benutzer gelesen und beschrieben werden kann ("user-dumpable").
Ein noch verwendbarer Abschnitt 103 bleibt ebenfalls zur uneingeschränkten Verfugung des Benutzers ("user-dumpable")
Insgesamt wurde eine Ladeeinrichtung beschrieben, die selbst als eine Art Mikroprogramm verwirklicht werden kann und
die bleibend in einem Mikro.bef ehls-Lesespeicher in einem
mikroprogrammierbaren digitalen Prozessor residieren kann, oder die durch eine äquivalente verdrahtete digitale Logikschaltung
verwirklicht sein kann und dazu vorgesehen ist, die Mikroprogrammstruktur eines derartigen Mikrobefehlsprozessors im Zeitpunkt des Ladens des Benutzerprogramms
festzulegen. Diese Ladeeinrichtung wird vorteilhafterweise durch die Ladeoperation aktiviert und liest die Operationsanforderung des geladenen Programms, setzt diese in Systemanforderungen
und in Anforderungen an Mikroprogrammsteuerungen um. Die Ladeeinrichtung kann dann ein Verzeichnis
von Mikroprogrammen aufrufen, die nach Wahl in dem System eingebaut sein können, um die speziellen Mikroprogramm-Moduln
auszuwählen, die zur Ausführung jenes speziellen Programms benötigt werden, und um die gewählten
Mikroprogramme in dem Lese/Schreib-Mikroprogrammspeicher des Prozessors festzulegen.
509827/0818
Claims (8)
- 2458098AnsprücheVerfahren zum Betrieb eines mikroprogrammierbaren Rechnersysteins mit einem Interpretierer-Prozessor, mit mehreren Peripheriegeräten, die mit dem Prozessor verbunden sind, sowie mit einem gemeinsamen Speicher, der mit. dem Prozessor verbunden ist und Mikrobefehle sowie einen Benutzerobjektcode speichert, dadurch gekennzeichnet, daß die Peripherie-Firmware des Systems und die Rechen-Firmware für den Prozessor in einem Hilfsspeicher außerhalb ces gemeinsamen.Speichers gespeichert werden; daß die Peripherie-Firmware und die Rechen-Firmware, die zum Ablauf jedes Benutzerprogramms benötigt werden, angegeben werden; daß die Firmware-Beschreibungen in dem Zeitpunkt, wenn das Benutzerprogramm geladen wird, in Anforderungen der System-Firmware übersetzt werden; daß jeder so erforderliche Firmware-Modul in den gemeinsamen Speicher geladen wird; daß' derjenige Bereich des gemeinsamen Speichers, der auf diese Weise geladen wird, von demjenigen Speicherbereich getrennt wird, der für Benutzereingaben verfügbar ist; und daß der Benutzerquellencode in den gemeinsamen Speicher an einer außerhalb des abgetrennten Bereiches liegenden Stelle geladen wird.509827/0 8182458098
- 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß beim Speichern der Peripherie-Firmware und der Rechen-Firmware jede zu speichernde Mikrokette bezeichnet wird; daß jede Peripherie-Firmware-Mikrokette und jede Rechen-Mikrokette in einer bezüglich Null indizierten Hilfspeicherbasis gespeichert wird und daß eine Tabelle der Mikrokettennamen und -Adressen für jede gespeicherte Mikrokette angelegt wird.
- 3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß eine Tabelle bezüglich des Speicherns der Festlegungs-Information angefertigt wird, die von jedem Benutzer-Programmnamen in Bezug genommen wird; und daß ein Benutzer-Programm, das unter einem Programmnamen laufen soll, mit einem vorangehenden Programmcodewort und einer Speicheradresse der Festlegungsinformation sowie Länge des Benutzerprogramms versehen wird.
- 4. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß beim Übersetzen der Programmnamen aus der Programm-Überschrift eines geladenen Programms gelesen wird, die Festlegungsinformation in dem Speicher für jenes Programm lokalisiert und jede Mikrokettenanforderung gelesen wird, und daß die Mikrokettenadressen-Tabelle zum Adressieren jeder benötigten Mikrokette angesteuert wird.
- 5. Verfahren nach einem der vorstehenden Ansprüche, dadurch gekennzeichnet, daß jede Mikroketten-Indexbasis relativ zu ihrer Festlegungsstelle in dem gemeinsamen Speicher re-indiziert wird.
- 6. Ladeeinrichtung zur Ausführung des Verfahrens nach einem der vorstehenden Ansprüche in einem mikroprogrammierbaren5098 2 7/0818Rechnersystem mit einem Intexpretierer-Prozessor, Peripherie-Geräten und einem gemeinsamen Speicher, die mit dem Prozessor verbunden sind, wobei der gemeinsame Speicher Mikrobefehlsketten und einen Benutzerprogrammobjektcode speichern kann, dadurch gekennzeichnet, daß eine erste Einrichtung zum Speichern von Firmware-Moduln vorgesehen ist, die in dem Rechnersystem verwendet werden und Peripherie-Steuerungs-Mikroketten sowie Prozessor-Rechen-Mikroketten umfassen und dem Prozessor zugeordnet sind; daß zweite Einrichtungen zur Gewinnung von Firmware-Anforderungen für jedes Benutzerprogramm, das in dem Rechner laufen soll, vorgesehen sind und mit dem Prozessor verbunden sind; daß dritte Einrichtungen zur Übersetzung der erhaltenen Anforderungen in Firmware-Moduln vorgesehen sind, die in dem gemeinsamen Speicher und in der Speicherstelle der Moduln festgelegt werden sollen und mit den zweiten Einrichtungen verbunden sind; und daß vierte Einrichtungen zur Erzeugung der Festlegung für jede Firmware-Anforderung in dem gemeinsamen Speicher vorgesehen sind, mit dem Hilfsspeicher, den dritten Einrichtungen und dem gemeinsamen Speicher verbunden sind.
- 7. Ladeeinrichtung zur Ausführung des Verfahrens nach einem der Ansprüche 1-5, insbesondere nach Anspruch 6, in einem mikroprogrammierbaren Rechηersystem mit einem von Mikrobefehlen gesteuerten Prozessor, von Mikrobefehlen gesteuerten Peripherie-Geräten, die dem Prozessor zugeordnet sind und einen Hilfsspeicher umfassen, in welchem Mikrobefehlsketten zum Betrieb des Prozessors und einer Peripherie-Geräte gespeichert sind, sowie mit einem gemeinsamen Speicher zur Aufnahme sowohl der Mikroketten wie des Benutzerquellencodes, in welchem ein Leseteil enthalten ist, dadurch gekennzeichnet, daß eine srste Mikrobefehlseinrichtung die Anforderungen der System-Firmware zum Betrieb eines Benutzerprogramms, das in das509827/0818System geladen wurde, liest, daß eine zweite Mikrobefehlseinrichtung die aus der ersten Mikrobefehls-Einrichtung gelesenen Anforderungen in Firmware-Moduln und Speicherstellen der Moduln übersetzt und daß eine dritte Mikrobefehlseinrichtung die erforderlichen Firmware-Moduln von den Speicherstellen in den gemeinsamen Speicher überträgt und dort festbindet.
- 8. Einrichtung nach Anspruch 7, dadurch gekennzeichnet, daß eine vierte Mikrobefehlseinrichtung vorgesehen ist, die jede Firmware-Modulbasis relativ zu ihrer Stelle in dem gemeinsamen Speicher re-indiziert.509827/0818
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/427,063 US4024504A (en) | 1973-12-21 | 1973-12-21 | Firmware loader for load time binding |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2458096A1 true DE2458096A1 (de) | 1975-07-03 |
DE2458096C2 DE2458096C2 (de) | 1985-05-02 |
Family
ID=23693342
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2458096A Expired DE2458096C2 (de) | 1973-12-21 | 1974-12-07 | Einrichtung zum Laden von Mikroprogrammen in einer mikroprogrammierbaren Datenverarbeitungsanlage |
Country Status (11)
Country | Link |
---|---|
US (1) | US4024504A (de) |
JP (1) | JPS5917463B2 (de) |
BE (1) | BE823048A (de) |
BR (1) | BR7409330A (de) |
DE (1) | DE2458096C2 (de) |
FR (1) | FR2255657B1 (de) |
GB (1) | GB1465861A (de) |
IN (1) | IN140560B (de) |
IT (1) | IT1026765B (de) |
NL (1) | NL7415308A (de) |
SE (1) | SE7415315L (de) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT1059493B (it) * | 1976-04-22 | 1982-05-31 | Olivetti & Co Spa | Dispositivo per cambiare l ambiente di lavoro di un calcolatore |
JPS5759250A (en) * | 1980-09-29 | 1982-04-09 | Nec Corp | Microprogram controller |
US4495563A (en) * | 1981-07-02 | 1985-01-22 | Texas Instruments Incorporated | Microcomputer having separate access to complete microcode words and partial microcode words |
US4654783A (en) * | 1982-07-26 | 1987-03-31 | Data General Corporation | Unique process for loading a microcode control store in a data processing system |
JPS5960646A (ja) * | 1982-09-30 | 1984-04-06 | Fujitsu Ltd | フア−ムウエア制御方式 |
JP2681929B2 (ja) * | 1987-06-22 | 1997-11-26 | 三菱電機株式会社 | プログラム起動方式 |
US5237688A (en) * | 1987-11-18 | 1993-08-17 | International Business Machines Corporation | Software packaging structure having hierarchical replaceable units |
JPH01197867A (ja) * | 1988-02-02 | 1989-08-09 | Ibiden Co Ltd | マルチプロセッサシステム |
US5155817A (en) * | 1988-04-01 | 1992-10-13 | Kabushiki Kaisha Toshiba | Microprocessor |
US5228993A (en) * | 1990-02-09 | 1993-07-20 | Mordeki Drori | Cleanable filter system with longitudinally movable and rotatable cleaning member |
US5632903A (en) * | 1995-06-07 | 1997-05-27 | Infinity Research And Development | High volume self-cleaning filter |
US5774722A (en) * | 1995-12-14 | 1998-06-30 | International Business Machines Corporation | Method for efficient external reference resolution in dynamically linked shared code libraries in single address space operating systems |
US6654762B2 (en) * | 1999-08-16 | 2003-11-25 | International Business Machines Corporation | Generating small footprint applications for mobile devices |
GB2381090B (en) * | 2001-10-17 | 2005-02-02 | Bitarts Ltd | Software loading |
EP1510915A1 (de) * | 2003-08-26 | 2005-03-02 | Siemens Aktiengesellschaft | Vorrichtung und Verfahren zur Anpassung einer Hardware-Plattform an beliebige Applikationsprogramme |
CA2576508A1 (en) * | 2004-08-04 | 2006-02-16 | Osa Technologies, Inc. | Software and firmware adaptation for unanticipated/changing hardware environments |
US20090319804A1 (en) * | 2007-07-05 | 2009-12-24 | Broadcom Corporation | Scalable and Extensible Architecture for Asymmetrical Cryptographic Acceleration |
CN114895612B (zh) * | 2022-07-11 | 2022-09-27 | 深圳市杰美康机电有限公司 | 一种用于dsp芯片的仿真系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1774296A1 (de) * | 1967-05-23 | 1971-08-19 | Ibm | Steuereinheit fuer elektronische Digitalrechner |
GB1318231A (en) * | 1969-05-19 | 1973-05-23 | Burroughs Corp | Data-processing systems |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3646522A (en) * | 1969-08-15 | 1972-02-29 | Interdata Inc | General purpose optimized microprogrammed miniprocessor |
GB1343228A (en) * | 1972-02-25 | 1974-01-10 | Ibm | System for selecting a desired set of microinstructions from a master set of microinstructions |
US3713107A (en) * | 1972-04-03 | 1973-01-23 | Ncr | Firmware sort processor system |
US3839705A (en) * | 1972-12-14 | 1974-10-01 | Gen Electric | Data processor including microprogram control means |
US3828320A (en) * | 1972-12-29 | 1974-08-06 | Burroughs Corp | Shared memory addressor |
-
1973
- 1973-12-21 US US05/427,063 patent/US4024504A/en not_active Expired - Lifetime
-
1974
- 1974-07-10 IN IN1548/CAL/1974A patent/IN140560B/en unknown
- 1974-11-06 BR BR9330/74A patent/BR7409330A/pt unknown
- 1974-11-22 NL NL7415308A patent/NL7415308A/xx not_active Application Discontinuation
- 1974-11-22 GB GB5069974A patent/GB1465861A/en not_active Expired
- 1974-11-28 FR FR7439059A patent/FR2255657B1/fr not_active Expired
- 1974-12-03 IT IT30148/74A patent/IT1026765B/it active
- 1974-12-06 BE BE151242A patent/BE823048A/xx unknown
- 1974-12-06 SE SE7415315A patent/SE7415315L/xx unknown
- 1974-12-07 DE DE2458096A patent/DE2458096C2/de not_active Expired
- 1974-12-09 JP JP49142388A patent/JPS5917463B2/ja not_active Expired
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1774296A1 (de) * | 1967-05-23 | 1971-08-19 | Ibm | Steuereinheit fuer elektronische Digitalrechner |
GB1318231A (en) * | 1969-05-19 | 1973-05-23 | Burroughs Corp | Data-processing systems |
Also Published As
Publication number | Publication date |
---|---|
IN140560B (de) | 1976-11-27 |
DE2458096C2 (de) | 1985-05-02 |
US4024504A (en) | 1977-05-17 |
JPS5096153A (de) | 1975-07-31 |
JPS5917463B2 (ja) | 1984-04-21 |
FR2255657B1 (de) | 1979-03-23 |
FR2255657A1 (de) | 1975-07-18 |
IT1026765B (it) | 1978-10-20 |
NL7415308A (nl) | 1975-06-24 |
SE7415315L (de) | 1975-06-23 |
BE823048A (fr) | 1975-04-01 |
BR7409330A (pt) | 1976-05-18 |
GB1465861A (en) | 1977-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2458096A1 (de) | Mikroprogramm-ladeeinrichtung fuer die ladezeit-festlegung | |
DE2417795C2 (de) | Datenverarbeitungsanlage | |
DE2459006C2 (de) | Einrichtung zum Bilden einer absoluten Adresse in einer Datenverarbeitunsanlage | |
EP0502857B1 (de) | Verfahren zur dynamischen bindung von definierbaren programmelementen eines interaktiven datenverarbeitungssystems | |
DE60131864T2 (de) | Speichern von stapeloperanden in registern | |
DE69723286T2 (de) | Echtzeitprogramm-sprachbeschleuniger | |
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE69738188T2 (de) | Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor | |
DE60217157T2 (de) | Verfahren und vorrichtung zum binden von shadow-registern an vektorisierte interrupts | |
DE3151745C2 (de) | ||
DE2054835C2 (de) | Steuereinrichtung in einem Prozessor einer Mehrprozessor-Datenverarbeitungsanlage | |
DE2424931A1 (de) | Datenverarbeitungsanlage, insbesondere mikroprogramm-datenverarbeitungseinheit mit parallelen befehlsstroemen fuer mehrere ebenen von subbefehlsvorraeten | |
DE2756768A1 (de) | Mikroprozessor-architektur | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE2424810A1 (de) | Datenverarbeitungsanlage, insbesondere kleine mikroprogramm-datenverarbeitungsanlage mit mehrsilbenmikrobefehlen | |
DE102004061597A1 (de) | Betriebssystem, das den Lauf von Echtzeitprogrammen ermöglicht, Steuerungsverfahren hierfür sowie Verfahren zum Laden von DLLs | |
DE69732793T2 (de) | Acht-bit-mikrokontroller mit risc-architektur | |
DE2612054A1 (de) | Verfahren zur adressentwicklung und prozessor zur durchfuehrung des verfahrens | |
DE1285219B (de) | Steuerwerk zur Ausfuehrung von Unterprogrammen | |
DE2054947A1 (de) | Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem | |
DE19924702A1 (de) | Systeme mit einheitlicher Datenstruktur, Verfahren und Computerprogrammprodukte zur Feststellung von globalen Konflikten | |
DE2458286A1 (de) | Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen | |
DE2336676C3 (de) | Einrichtung zur Modifizierung von Mikroprogrammbefehlen | |
DE2835110A1 (de) | Schneller echtzeit-rechneremulator | |
DE10303053A1 (de) | Registerumbenennung zum Reduzieren einer Umgehung und Erhöhen einer scheinbaren physischen Registergröße |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
8125 | Change of the main classification | ||
8125 | Change of the main classification | ||
8128 | New person/name/address of the agent |
Representative=s name: EISENFUEHR, G., DIPL.-ING. SPEISER, D., DIPL.-ING. |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |