DE2458096A1 - Mikroprogramm-ladeeinrichtung fuer die ladezeit-festlegung - Google Patents

Mikroprogramm-ladeeinrichtung fuer die ladezeit-festlegung

Info

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
Application number
DE19742458096
Other languages
English (en)
Other versions
DE2458096C2 (de
Inventor
Patrick Jos Chowning
Diane Willis Cikoski
Thomas Roberts Cikoski
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.)
Unisys Corp
Original Assignee
Burroughs Corp
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 Burroughs Corp filed Critical Burroughs Corp
Publication of DE2458096A1 publication Critical patent/DE2458096A1/de
Application granted granted Critical
Publication of DE2458096C2 publication Critical patent/DE2458096C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/24Loading of the microprogram

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.
Anwendunqsfall mikroproqrammierbarer Prozessor
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.
Funktion eier Ladeeinrichtung
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)

  1. 2458098
    Ansprüche
    Verfahren 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 818
    2458098
  2. 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. 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. 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. 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. 6. Ladeeinrichtung zur Ausführung des Verfahrens nach einem der vorstehenden Ansprüche in einem mikroprogrammierbaren
    5098 2 7/0818
    Rechnersystem 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. 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 das
    509827/0818
    System 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. 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
DE2458096A 1973-12-21 1974-12-07 Einrichtung zum Laden von Mikroprogrammen in einer mikroprogrammierbaren Datenverarbeitungsanlage Expired DE2458096C2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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