DE4312250A1 - Bi-endiges Firmware-System zum Booten von Computern - Google Patents

Bi-endiges Firmware-System zum Booten von Computern

Info

Publication number
DE4312250A1
DE4312250A1 DE19934312250 DE4312250A DE4312250A1 DE 4312250 A1 DE4312250 A1 DE 4312250A1 DE 19934312250 DE19934312250 DE 19934312250 DE 4312250 A DE4312250 A DE 4312250A DE 4312250 A1 DE4312250 A1 DE 4312250A1
Authority
DE
Germany
Prior art keywords
cpu
program
byte order
byte
byte sequence
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
DE19934312250
Other languages
English (en)
Other versions
DE4312250B4 (de
Inventor
Saeed S Zarrin
Robert Rodriguez
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.)
MIPS Technologies Inc
Original Assignee
Graphics Properties Holdings Inc
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
Priority to US901910 priority Critical
Priority to US07/901,910 priority patent/US5408664A/en
Application filed by Graphics Properties Holdings Inc filed Critical Graphics Properties Holdings Inc
Publication of DE4312250A1 publication Critical patent/DE4312250A1/de
Application granted granted Critical
Publication of DE4312250B4 publication Critical patent/DE4312250B4/de
Anticipated expiration legal-status Critical
Application status is Expired - Lifetime legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4403Processor initialisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors

Description

Die vorliegende Erfindung betrifft allgemein Computer-Systeme und insbesondere Techniken zum Konfigurieren von Computer- Systemen für unterschiedliche Bytereihenfolgen.

Computer-Systeme gehören zu einer von zwei Bytereihenfolge­ Kategorien: die großendige und die kleinendige. Die großendi­ gen Maschinen zählen die Bytes in einem Wort von Null bis drei (oder Null bis sieben bei einem 64Bit-Wort), wobei Byte Null das Vorzeichen-Bit und die Bits höchster Wertigkeit hält. Für Halbworte numerieren großendige Maschinen die Bytes Null und eins, wobei Byte Null das Vorzeichen-Bit und die höchstwertigen Bits hält. Kleinendige Maschine zählen die Bytes eines Wortes von drei bis Null. Byte drei hält das Vorzeichen-Bit und die höchstwertigen Bits. Bei Halbworten zählen kleinendige Maschinen die Bytes eins und Null. Byte eins hält das Vorzeichenbit und höchstwertige Bits. Die Bytereihenfolge (Endigkeit) bei der CPU, der Firmware und dem I/O-System eines Computer-Systems diktiert den Typ des Betriebssystems und den Binärkode, die dieses System betrei­ ben kann.

Computer-Systeme werden normalerweise mit einer bestimmten Bytereihenfolge gefertigt, die durch den Endbenutzer nicht geändert werden kann. Während Hersteller Komponenten wie die CPU und I/O-Steuerungen so ausgelegt haben, daß sie zum Be­ trieb in beiden Bytereihenfolgen konfiguriert werden können, ist die Firmware normalerweise von der einen oder der ande­ ren Betriebsart. Damit sind die konfigurierbaren Bestandtei­ le normalerweise durch die Hersteller statisch hart verdrah­ tet, so daß sie in der gleichen Bytereihenfolge wie die Com­ puter-Firmware arbeiten.

Unglücklicherweise sind einige Standard-Betriebssysteme der Industrie großendig und andere kleinendig. Obwohl es im Prin­ zip möglich ist, Software neu zusammenzustellen und/oder neu zu schreiben, um ihre Bytereihenfolge zu ändern, ist die Firmware im ROM auf eine bestimmte Bytereihenfolge fixiert. So muß trotz der Re-Konfigurierbarkeit der Hardware-Komponen­ ten ein Benutzer, der Programme unter dem Microsoft NT Be­ triebssystem (kleinendig) und unter dem MIPS RISC/OS-Be­ triebssystem (großendig) laufen lassen will, entweder physi­ kalische Änderungen an der Hardware vornehmen, falls das mög­ lich ist, oder in manchen Fällen zwei Maschinen kaufen.

Die vorliegende Erfindung abstrahiert die Bytereihenfolge der Computer-Firmware, um zu ermöglichen, daß ein Endbenut­ zer Software mit großendiger oder kleinendiger Bytereihenfol­ ge unter Software-Steuerung installieren kann. Das System verschafft dem Benutzer die Fähigkeit, eine Firmwaren-Aktua­ lisierung und einen Bytereihenfolgen-Wechsel zum Zeitpunkt des Bootens zu bewirken, ohne an der Hardware physikalische Änderungen vornehmen zu müssen.

Kurz gesagt, umfaßt ein die Erfindung verkörperndes System einen ersten nichtflüchtigen Speicher, der zu einer Startbe­ ginn-Adresse abgebildet ist und ein Programm speichert, das als Grund-Firmware bezeichnet wird. Die Grund-Firmware ist in der ersten Bytereihenfolge (bei einer bestimmten Ausfüh­ rung kleinendig) vorhanden. Beim Einschalten greifen die CPU und das I/O-System auf die erste Bytereihenfolge als vorgege­ ben zurück und die CPU führt die Grund-Firmware aus. Das System enthält auch einen zweiten nichtflüchtigen (aber vor­ zugsweise beschreibbaren) Speicher, in dem ein Programm ge­ speichert ist, das als die Boot-Firmware bezeichnet wird, und das in jeder Bytereihenfolge bestehen kann. Ebenfalls ist in dem zweiten Speicher eine Signatur gespeichert, die die Bytereihenfolge der Boot-Firmware angibt.

Das System enthält auch eine Re-Konfigurierungs-Schaltung, die in Abhängigkeit von Instruktionen in der Grund-Firmware arbeitet, um die Bytereihenfolge-Konfiguration der Hardware zu ändern, falls das durch die Boot-Firmware angefordert wird. Derartige Änderungen sind jedoch nur zur Wirkung beim nächsten Reset zugelassen. Insbesondere konfiguriert die CPU die Bytereihenfolge, falls nötig, und bildet den Speicher so um, daß beim Reset die CPU die durch die Signatur in der Boot-Firmware angegebene Bytereihenfolge annimmt und die CPU mit der Boot-Firmwaren-Ausführung beginnt. Im Betrieb steu­ ert die Grund-Firmware die Re-Konfigurierungs-Schaltung und stellt dann das System zurück (Reset). Die Bytereihenfolge des I/O-Systems kann in der gleichen Weise wie die CPU-Byte­ reihenfolge konfiguriert werden oder sie kann unter Beein­ flussung durch das Programm durch die Boot-Firmware nach dem Reset konfiguriert werden.

Bei einer bevorzugten Ausführung ist der zweite Speicher be­ schreibbar (z. B. ein Flash-EEPROM) und beim Einschalten kann die Grund-Firmware den Benutzer auffordern, die in den zwei­ ten Speicher einzuschreibende Firmware auszuwählen, bevor die CPU die Konfigurations-Schaltung instruiert. Wenn so ein Benutzer ein bestimmtes Betriebssystem zu booten wünscht, kann er das von dem Tastenfeld aus tun, und beruhigt sein, daß die Hardware, die Firmware und die Software nun im glei­ chen Schritt laufen.

Die Erfindung wird nachfolgend anhand der Zeichnung bei­ spielsweise näher erläutert; in der Zeichnung zeigt:

Fig. 1 ein Blockschaltbild eines die vorliegende Er­ findung verkörpernden Computer-Systems;

Fig. 2 ein erweitertes Blockschaltbild, das die bei der vorliegenden Erfindung benutzten Steuer­ register zeigt;

Fig. 3A und 3B die Beziehung nach dem Stand der Technik zwi­ schen Hardware, Software und Firmware bei zwei Betriebssystemen darstellende Diagram­ me;

Fig. 4 die Beziehung nach der vorliegenden Erfin­ dung;

Fig. 5A und 5B Speicherabbildungen, welche das Umbilden zwi­ schen Phase Null und Phase eins des Boot-Vor­ ganges darstellen; und

Fig. 6 ein Flußdiagramm, das die Firmware Phase Null bezeichnet.

Fig. 1 ist ein Hochniveau-Blockschaltbild eines Computer- Systems 10, das die vorliegende Erfindung verkörpert. Das System kann so angesehen werden, daß es drei Hauptabschnit­ te, ein CPU-Teilsystem, ein Speicher-Teilsystem und ein I/O- Teilsystem umfaßt. Eine Speichersteuer-DMA-Chipgruppe 12 steuert die Adressierung und die Datenwege unter den Teilsy­ stemen und enthält das (nicht getrennt gezeigte) Folgende: eine Prozessor-Schnittstelle, eine Speicher-Schnittstelle, eine Video-Schnittstelle, eine I/O-Übersetzungs-Tabelle und Schnellspeicher (Cache), eine EISA-Busschnittstelle, eine i486-kompatible Haupt/Neben-Schnittstelle und acht Neben- DMA-Kanäle.

Das CPU-Teilsystem enthält eine CPU 15, die bei einer be­ stimmten Ausführung ein MIPS R4000 RISC-Prozessor ist und erste und zweite seriell konfigurierungs-programmierbare Festwertspeicher (PROMs) 17 und 18. Jeder serielle PROM spei­ chert System-Schnittstellen-Konfigurations-Information ein­ schließlich Bytereihenfolge-Information zur möglichen Über­ mittlung zur CPU beim Einschalten. Der serielle PROM 17 sorgt für die Konfiguration beim großendigen Betrieb, wäh­ rend der serielle PROM 18 die Konfigurations-Information für kleinendigen Betrieb schafft. Spezielle Hinweise auf großen­ dig und kleinendig werden für den Zweck der Beschreibung einer bestimmten Ausführung gegeben. Zu jeder bestimmten Ein­ schaltzeit wird nur einem der seriellen PROMs erlaubt, Infor­ mation zur CPU zu verbinden. Beim Einschalten ist der Aus­ gangszustand, daß der serielle PROM 18 ausgewählt wird, so daß der Prozessor anfangs für kleinendigen Betrieb konfigu­ riert ist.

Das Speicher-Hilfssystem enthält Systemspeicher 20 und Video­ speicher 22, die, soweit die vorliegende Erfindung betroffen ist, Standard sind. Das I/O-Teilsystem (das Speicher-abgebil­ det ist) enthält eine Anzahl von peripheren Steuerungen und Geräten 25, die standardmäßig sind und nicht beschrieben werden. Von Relevanz zur vorliegenden Erfindung sind jedoch zwei PROM-Geräte 30 und 32 und gewisse Register in der Reset-Steuerschaltung 35 und der PROM-Steuerschaltung 37, wie nachstehend beschrieben wird.

Die PROM-Geräte 30 und 32 enthalten die System-Firmware zum Booten des Betriebs-Systems. Beim Stand der Technik ist ein einzelnes Gerät, typischerweise ein 128K- oder 256K-System- PROM vorhanden, dessen Instruktionen den größten Teil der Niedrigpegel-Wechselwirkung mit der Hardware ergeben. Nach der vorliegenden Erfindung, wie später diskutiert wird, ge­ schieht der Boot-Vorgang in zwei Phasen, die mit Phase Null und Phase Eins bezeichnet sind, wobei PROM 30 das speichert, was als die Grund- oder Phase-Null-Firmware bezeichnet wird, und PROM 32 speichert, was als die Boot-Firmware oder Phase- Eins-Firmware bezeichnet wird. Bei der bestimmten Ausführung ist PROM 30 ein 64K-EPROM-Gerät, dessen Inhalt niemals wäh­ rend des Betriebs geändert wird, und PROM 32 ist ein elek­ trisch löschbarer Flash PROM (Flash EEPROM), der mit anderen Firmware-Instruktionen überschrieben werden kann. Eine zu­ sätzliche Phase, Phase Zwei genannt, bezieht sich auf den Be­ trieb, sobald das Betriebs-System geladen wurde und die Aus­ führung beginnt.

Fig. 2 ist ein erweitertes Blockschaltbild, das eine Reihe von Registern zeigt, die zum Steuern der Programmierung des Flash EEPROM, der Bytereihenfolge nach einem Reset, des Basis-PROM und der Boot-PROM-Auslegung, der Speicher/DMA- Bytereihenfolge und des System-Kaltresets benutzt werden. Die tatsächliche Ausführung der Stützlogik geschieht in pro­ grammierbaren Logik-Anordnungen (PLAs).

Eine serielle PROM-Steuerschaltung 40 enthält ein Paar Regi­ ster, die als CPU_EB und CPU_EL bezeichnet sind und einen Multiplexer 42 steuern, die Daten von dem einen oder anderen der seriellen PROMs 17 bzw. 18 auszulesen (die beide freige­ geben bleiben).

Das CPU_EB-Register ist endigkeits-unabhängig und residiert bei einer Doppelwort-Adresse von 0x8000D100. Einschreiben ir­ gendeines Wertes in dieses Register setzt dieses Register auf 1 und wählt den großendigen seriellen PROM 17 an. Das CPU_EB-Register wird gelöscht (auf 0 gesetzt) durch Schrei­ ben zu der CPU_EL-Registeradresse und auf 0 gesetzt bei Stromeinschalt-Reset. Es wird durch keinen anderen Reset be­ einflußt.

Das CPU_EL-Register ist endigkeits-unabhängig und residiert bei einer Doppelwort-Adresse von 0x8000D200. Einschreiben ir­ gendeines Wertes in dieses Register setzt das Register auf 1 und wählt den kleinendigen seriellen PROM 18 an. Dieses Regi­ ster wird bei Stromeinschalt-Reset auf 1 gesetzt und durch keinen anderen Reset beeinflußt.

Die Reset-Steuerschaltung 35 enthält ein ENDIGKEITS_RESET- Register, das ein Kalt-Reset-Register ist. Einschreiben ir­ gendeines Wertes in dieses Register läßt die CPU einen der beiden seriellen PROMs lesen in Abhängigkeit von den Werten der CPU_EB- und CPU_EL-Register. Das ENDIGKEITS_RESET-Regi­ ster löscht sich selbst während Reset. Dieses Register be­ sitzt eine Doppelwort- und Endigkeits-unabhängige Adresse von 0x8000D000.

Die PROM-Steuerschaltung 37 enthält MAP64 und MAP256-Regi­ ster zum Steuern der Abbildungen der PROMs 30 und 32 und ein PGM_ENABLE-Register zum Steuern der Programmierung des PROM 32.

Das PGM_ENABLE-Register ist ein Lese/Schreibe-Register und auf es wird bei 0x8000D500 im kleinendigen Betrieb und bei 0x8000D507 im großendigen Betrieb zugegriffen. Es wird durch die Grund-Firmware benutzt zum Löschen und zum Programmieren der Boot-Firmware im Flash-EEPROM. Ein Setzen von Bit 0 = 1 in diesem Register schaltet eine 12V-Versorgungsspannung für den Flash-EEPROM an; die anderen Bits sind nicht definiert. Dieses Bit muß durch Software entsprechend den bestimmten Spezifikationen für das Flash EEPROM-Gerät an- und abgeschal­ tet werden (z. B. AMP28F020).

Das MAP64-Register steuert die PROM-Abbildung und besitzt eine endigkeits-unabhängige Doppelwort-Adresse von 0x8000D300. Einschreiben irgendeines Wertes in dieses Regi­ ster, gefolgt durch Schreiben zu dem ENDIGKEITS_RESET-Regi­ ster, bildet den 64K-Grund-PROM auf 0x1FC00000 (Startadres­ se) und den 256K-Boot-Flash-EEPROM auf 0x1FC40000 ab. Das MAP64-Register wird gelöscht durch Schreiben in das MAP256- Register. Dieses Register wird bei Einschalt-Reset auf 1 ge­ setzt und durch keinen anderen Reset beeinflußt.

Das MAP256-Register steuert ebenfalls die PROM-Abbildung und besitzt eine Doppelwort- und endigkeits-unabhängige Adresse von 0x80000D400. Einschreiben eines Wertes in dieses Regi­ ster, gefolgt durch Schreiben zu dem ENDIGKEITS_RESET-Regi­ ster zeichnet den 256K-Flash-EEPROM auf 0x1FC00000 (Start­ adresse). Das MAP256-Register wird gelöscht durch Schreiben in das MAP64-Register. Dieses Register wird auf 0 gesetzt bei Einschalt-Reset und wird nicht durch irgendeinen anderen Reset beeinflußt.

Das MCT_EB Bit-Register ist in der Speicher/DMA-Steuerschal­ tung 12 angesiedelt. Wenn beschrieben, setzt es das Register in großendigen Betrieb. Das Register wird bei Einschalten und Kalt-Reset auf kleinendigen Betrieb zurückgesetzt.

Fig. 3A und 3B stellen schematisch die Beziehung der Hardwa­ re, Firmware und Software in einem System nach dem Stand der Technik dar, das entweder das MIPS RISC/OS-Betriebssystem, das großendig ist, oder das Microsoft NT Betriebssystem, das kleinendig ist, aufgebootet hat. In beiden Fällen haben die Hardware und das Boot-PROM ihre Standardbeziehung und eine Anzahl von Software-Objekten sind darüber gelagert.

Bei Fig. 3A bildet eine betriebssystem-unabhängige Shell (SASH) Schnittstellen zu dem PROM und der Hardware und ent­ hält Routinen, die die im PROM enthaltenen ergänzen, um beim Laden des Betriebssystems zu helfen. Das MIPS RISC/OS-Be­ triebssystem enthält verbundene Element-Ansteuerungen, so daß Abschnitte des Betriebssystems angesehen werden können als mit direkter Wechselwirkung mit der Hardware versehen. Über dem Betriebssystem sind Anwendungsprogramme geschich­ tet, die allgemein nicht direkt mit der Hardware in Aus­ tausch treten.

Bei dem in Fig. 3B gezeigten Microsoft NT-Betriebssystem ist die Hierarchie etwas anders. Eine Hardware-Abstrahierungs- Schicht (HAL) und Element-Ansteuerungen schaffen eine Schnittstelle sowohl zu dem Boot-PROM und als auch zu der Hardware, und das NT-Betriebssystem tritt selbst nicht direkt mit der Hardware in Austausch. Wiederum stellen ent­ sprechend bekannter Praxis die Anwendungsprogramme mit dem Betriebssystem Verbindung her.

Fig. 4 zeigt ein entsprechendes Programm für die vorliegende Erfindung. Der primäre Unterschied an diesem Niveau ist, daß das Booten in zwei Phasen geschieht, mit der im Grund-PROM 30 gespeicherten Grund-Firmware und mit der im Boot-PROM 32 gespeicherten Boot-Firmware. Diese beiden haben direkte Verbindung mit der Hardware. Zusätzliche Abschnitte der Soft­ ware stehen in Verbindung mit der Firmware und Hardware, wie vorstehend besprochen.

Das System-Booten geschieht in Phasen, einschließlich Phase Null oder "Konfigurations-Phase" und Phase Eins oder "Boot- Phase". Die Firmware für Phase Null sitzt im PROM 30 und die Firmware Phase Eins im Flash EEPROM 32. Fig. 5A ist eine Teil-Speicherabbildung für Phase Null. Das System wird in Phase Null in Betrieb genommen, in welcher Phase das CPU- und das I/O-Teilsystem zum Betrieb in kleinendiger Betriebs­ art konfiguriert werden. In Phase Null wird PROM 30 freigege­ ben und zu der Anfangsadresse (in der bestimmten Ausführung 0xIFC00000) abgebildet. Flash EEPROM 32 ist bei einer Adres­ se (0xIFC40000) zugreifbar, die von der Inbetriebnahme-Adres­ se abgesetzt ist. Alle Software-Routinen im PROM 30 (Firmwa­ re Phase Null) sind zum Betrieb in kleinendiger Betriebsart kompiliert oder assembliert. Die Firmare Phase Null enthält den notwendigen Kode um Ausnahmen zu behandeln, Programme von einer Diskette zu laden und auszuführen, die CPU- und die I/O-Bytereihenfolge-Register zu steuern und das gesamte System durch einen Software-Befehl zurückzusetzen. Zusätz­ lich kann die Firmware Phase Null zum Inhalt des Flash EEPROM 25 zugreifen und ihn aktualisieren, der die Firmware Phase Eins enthält und durch eine parallel gehaltene Adresse in Phase Null zugänglich ist.

Fig. 5B ist eine Teil-Speicherabbildung für Phase Eins. Wie nachstehend beschrieben wird, ist in Phase Eins der Flash EEPROM zu der Anfangsadresse abgebildet, so daß Ausnahmen und Interrupts zu den richtigen Routinen in Phasen Null und Eins vektorisiert werden.

Fig. 6 ist ein Flußdiagramm der Firmware Phase Null. Die Firmware Phase Null initialisiert die Hardware, läßt Grundsy­ stem-Diagnose wie einen Speichertest laufen und prüft die An­ wesenheit einer "Installations-Diskette" in der Disketten- Station zum Zeitpunkt des Einschaltens. Wenn keine solche Diskette gefunden wird, bestimmt sie die Bytereihenfolge des Flash EEPROM durch Lesen seiner Signatur. Sie stellt dann sicher, daß die System-CPU nach Reset für die gleiche Byte­ reihenfolge konfiguriert wird, wie sie durch die Flash EEPROM-Signatur festgelegt ist. Das enthält das Schreiben zum CPU_EB-Register, falls großendig angegeben ist, um so den richtigen seriellen PROM nach Reset auszuwählen. Die Firmware Phase Null kann mit der Reset-Schaltung in Wechsel­ wirkung treten und eine Resetfolge erzeugen, die das System in die "Boot-Phase" zwingt mit auf die richtige Bytereihen­ folge gesetzter CPU.

Wenn eine "Installations-Diskette" in dem Disketten-Antrieb gefunden wird, wird die Firmware Phase Null versuchen, ein "Boot-Steuer"-Programm im kleinendigen Betrieb an der Disket­ te auszuführen. Das interaktive "Boot-Steuer"-Programm for­ dert den Benutzer zum Installations-Zeitpunkt auf, zu bestim­ men, welches Betriebssystem zu installisieren ist. Dieses Programm liest dann die richtige Firmwaren-Datei von der In­ stallations-Diskette (oder dem Netz), führt den Byte-Wechsel bei dem Objekt durch, löscht und aktualisiert den Flash EEPROM entsprechend der Bytereihenfolge des angegebenen Be­ triebssystems.

Zu diesem Zeitpunkt beginnt das Programm die Ausführung von da an, wo es wäre, wenn keine Installations-Diskette im An­ trieb gefunden worden wäre. Nachdem die CPU zur Re-Konfigu­ rierung bei Reset eingestellt wurde, um ggf. in der durch die Signatur festgelegte Bytereihenfolge zu arbeiten, wird die Speicher-Abbildungsschaltung so eingestellt, daß bei Reset der Flash EEPROM 25 zur Anfangsadresse aufgezeichnet wird. Das wird bewirkt durch Einschreiben in das MAP256-Regi­ ster. Das Programm initiiert eine System-Reset-Folge, welche die Boot-Phase beginnt. Bei Reset erhält die CPU die Konfigu­ rations-Information von dem ausgewählten seriellen PROM und beginnt die Boot-Firmware in dem Flash EEPROM auszuführen. Dieses EEPROM enthält die konventionellen Firmware-Funktio­ nen, die zum Booten eines Betriebssystems benutzt werden und die Betriebsphase beginnt, sobald die Boot-Firmware die Steuerung auf das geladene Betriebssystem überträgt.

Das Flußdiagramm zeigt den Schritt des Einstellens der CPU auf Großendigkeit, gefolgt durch den Schritt (in Klammern) des Einstellens des I/O-Abschnitts auf großendig für den nächsten Reset. Das ist das bevorzugte Verfahren zum Einstel­ len der Bytereihenfolge beim I/O-Abschnitt. Bei der bestimm­ ten vorstehend beschriebenen Ausführung wird jedoch das MCT EB-Bit auf kleinendig bei beiden Reset-Arten eingestellt. Dementsprechend wird das Einstellen dieses Bits auf großen­ dig ggf. nach dem Reset durch die Boot-Firmware ausgeführt.

Abschließend kann gesehen werden, daß die vorliegende Erfin­ dung eine elegante Lösung für das Problem der Bytereihenfol­ ge-Inkompatibilität schafft. Ein in Phasen aufgeteilter Boot­ ablauf zum Austausch der Bytereihenfolge schafft einen Mecha­ nismus zum Ändern einer Computer-Firmware-Bytereihenfolge durch Software-Steuerung ohne Leistungsumlauf. Das Verfahren abstrahiert die zugrundeliegende Bytereihenfolge-Ausrichtung von CPU, Firmware und I/O-System von dem Betriebssysteme durch automatische Um-Konfigurierung von CPU, Firmware und I/O. Damit kann der Computer Software ausführen, die für jede der beiden Bytereihenfolgen erzeugt wurde.

Während dieses Vorstehende eine vollständige Beschreibung der bevorzugten Ausführungen der vorliegenden Erfindung ist, können verschiedene Abwandlungen, alternative Konstruktionen und Äquivalente eingesetzt werden. Deswegen sollte die vor­ stehende Beschreibung und Darstellung nicht als den Schutzum­ fang der Erfindung begrenzend angesehen werden, der durch die Ansprüche definiert ist.

Claims (8)

1. Computer-System, das zum Betrieb sowohl in einer ersten wie auch in einer zweiten Bytereihenfolge-Betriebsart fähig ist, dadurch gekennzeichnet, daß
Mittel vorgesehen sind zum Angeben entweder der ersten oder der zweiten Bytereihenfolge-Betriebsart, wobei das die Bytereihenfolge angebende Mittel einen Standard-Zu­ stand bei Einschalten (default) besitzt, der die erste Bytereihenfolge-Betriebsart festlegt;
eine CPU vorgesehen ist, die zum Betrieb in sowohl der ersten wie der zweiten Bytereihenfolge-Betriebsart konfi­ gurierbar ist, in Abhängigkeit von dem Bytereihenfolge- Festlegungsmittel;
daß ein erster nichtflüchtiger Speicher vorgesehen ist, in dem eine erste Informationsreihe einschließlich eines ersten Programms gespeichert ist, wobei die erste Informa­ tionsreihe durch die erste Bytereihenfolge gekennzeichnet ist;
daß ein zweiter nichtflüchtiger Speicher vorgesehen ist, in dem eine zweite Informationsreihe einschließlich eines zweiten Programmes und eine Datenfolge gespeichert ist, welche die Bytereihenfolge bezeichnen, durch welche die zweite Informationsreihe gekennzeichnet ist; und
daß eine Adreß-Abbildungsschaltung mit dem ersten und dem zweiten nichtflüchtigen Speicher gekoppelt ist und betä­ tigbar ist, eine ausgewählte von ersten und zweiten Adreß-Abbildungen zu schaffen;
wobei die erste Adreß-Abbildung eine erste Reihe von In­ formation zugänglich enthält, die beginnt bei einer vorbe­ stimmten Anfangsadresse und die zweite Informationsreihe bei einer Adresse zugänglich hat mit einem vorbestimmten Versatz gegenüber der vorbestimmten Startadresse;
daß die zweite Adreß-Abbildung die zweite Informationsrei­ he an der vorbestimmten Anfangsadresse zugänglich hat; und daß das erste Programm bei Ausführung mindestens fol­ gende Tätigkeiten eintreten läßt
Lesen der Dateneinheit in der zweiten Informations­ reihe, um zu bestimmen, welcher Bytereihenfolgen-Be­ trieb angezeigt ist;
wenn und nur wenn das Datenelement den Betrieb in der zweiten Bytereihenfolge bezeichnet, das Byterei­ henfolge-Angebemittel veranlaßt, die zweite Byterei­ henfolge anzugeben, wirksam nur bei Reset,
ohne Rücksicht auf den durch das Datenelement be­ zeichnete Bytereihenfolgebetrieb die Adreß-Abbil­ dungsschaltung zu veranlassen, die zweite Adreß-Ab­ bildung zu schaffen, wirksam erst bei Reset, und
einen Reset der CPU einzuleiten;
wodurch dann, wenn die CPU in Reset geht, die zweite Informa­ tionsreihe zu der Anfangsadresse aufgezeichnet wird, das Bytereihenfolge-Festlegemittel die CPU zum Betrieb in der durch das Datenelement bezeichneten Bytereihenfolge-Betriebs­ art konfiguriert und eine Ausführung des zweiten Programms beginnt, wobei die CPU-Konfiguration mit der Bytereihenfolge der zweiten Informationsreihe konsistent ist.
2. Computer-System nach Anspruch 1, bei dem das die Byterei­ henfolge festlegende Mittel umfaßt:
erste und zweite durch die CPU lesbare Konfigurationss­ peicher, welche der ersten bzw. zweiten Bytereihenfolge entsprechende Konfigurations-Information enthalten;
ein durch die CPU setzbares Register; und
einen Datenwähler, der auf den Zustand des Registers rea­ giert und betätigbar ist, einen ausgewählten Konfigura­ tionsspeicher mit der CPU zu koppeln.
3. Computer-System nach Anspruch 1 oder 2, dadurch gekenn­ zeichnet, daß der erste nichtflüchtige Speicher ein Fest­ wertspeicher (ROM) ist; und
der zweite nichtflüchtige Speicher ein Lese/Schreib-Spei­ cher ist.
4. Computer-System nach Anspruch 3, dadurch gekennzeichnet, daß der zweite nichtflüchtige Speicher ein Flash EEPROM ist.
5. Computer-System nach Anspruch 1, dadurch gekennzeichnet, daß es weiter umfaßt:
ein I/O-System, das zum Betrieb in einer Betriebsart aus den ersten oder zweiten Bytereihenfolge-Betriebsarten kon­ figurierbar ist; und
Mittel zum Konfigurieren des I/O-Systems in der ersten Be­ triebsart bei Einschalten;
wobei das zweite Programm, wenn es ausgeführt wird, die Konfigurierung des I/O-Systems in der durch das Datenele­ ment angezeigten Bytereihenfolge-Betriebsart konfigurie­ ren läßt.
6. Computer-System nach einem der vorangehenden Ansprüche, dadurch gekennzeichnet, daß das erste Programm die folgen­ den zusätzlichen Vorgänge vor dem Lesen des Datenelements ablaufen läßt:
es wird bestimmt, ob ein durch den Benutzer installierba­ res Speichermedium mit einem dritten Programm installiert ist;
dann und nur dann, wenn ein solches Speichermedium instal­ liert ist, wird der Benutzer befragt, anzugeben, ob das dritte Programm für das zweite Programm einzusetzen ist; und
dann und nur dann, wenn der Benutzer einen derartigen Ein­ satz festlegt, wird das zweite Programm mit dem dritten Programm überschrieben.
7. Computer-System nach Anspruch 6, dadurch gekennzeichnet, daß das durch den Benutzer installierbare Speichermedium eine Diskette ist.
8. Verfahren zum Booten eines Computer-Systems in einer aus­ gewählten von zwei Bytereihenfolge-Betriebsarten, gekenn­ zeichnet durch die Schritte:
es wird eine CPU vorgesehen, die zum Betrieb in einer der ersten oder zweiten Betriebsarten konfigurierbar ist;
es wird ein durch die erste Bytereihenfolge bestimmtes erstes Programm geschaffen;
es wird ein zweites Programm geschaffen, das zum Booten eines Betriebssystems betätigbar ist;
die CPU wird beim Einschalten zum Betrieb in der ersten Betriebsart konfiguriert;
das erste Programm wird beim Einschalten ausgeführt, ein­ schließlich der Teilschritte, das die Bytereihenfolge des zweiten Programms bestimmt wird bei Rücksetzen der CPU; und
beim Reset wird die CPU mit der bestimmten Bytereihenfol­ ge konfiguriert und die Ausführung des zweiten Programms wird begonnen.
DE19934312250 1992-06-19 1993-04-15 Computer-System, das zum Betrieb sowohl in einer ersten wie auch in einer zweiten Bytereihenfolge-Betriebsart fähig ist, sowie ein Verfahren zum Booten eines solchen Computer-Systems Expired - Lifetime DE4312250B4 (de)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US901910 1978-05-01
US07/901,910 US5408664A (en) 1992-06-19 1992-06-19 System and Method for booting computer for operation in either of two byte-order modes

Publications (2)

Publication Number Publication Date
DE4312250A1 true DE4312250A1 (de) 1993-12-23
DE4312250B4 DE4312250B4 (de) 2005-08-25

Family

ID=25415036

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19934312250 Expired - Lifetime DE4312250B4 (de) 1992-06-19 1993-04-15 Computer-System, das zum Betrieb sowohl in einer ersten wie auch in einer zweiten Bytereihenfolge-Betriebsart fähig ist, sowie ein Verfahren zum Booten eines solchen Computer-Systems

Country Status (3)

Country Link
US (2) US5408664A (de)
JP (1) JP3186905B2 (de)
DE (1) DE4312250B4 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10202032A1 (de) * 2002-01-18 2003-07-31 Giesecke & Devrient Gmbh Laden und Interpretieren von Daten

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06161867A (ja) * 1992-11-20 1994-06-10 Fujitsu Ltd 電子機器に設けられたメモリユニットの制御装置
US5574923A (en) * 1993-05-10 1996-11-12 Intel Corporation Method and apparatus for performing bi-endian byte and short accesses in a single-endian microprocessor
US5630048A (en) * 1994-05-19 1997-05-13 La Joie; Leslie T. Diagnostic system for run-time monitoring of computer operations
US5928349A (en) * 1995-02-24 1999-07-27 International Business Machines Corporation Mixed-endian computing environment for a conventional bi-endian computer system
US5687337A (en) * 1995-02-24 1997-11-11 International Business Machines Corporation Mixed-endian computer system
JPH08286972A (ja) * 1995-04-19 1996-11-01 Nec Corp 情報処理装置
US5664194A (en) * 1995-12-04 1997-09-02 Metricom, Inc. Method for autonomously transferring code to a computer without accessing local memory by the central processing unit
US5828884A (en) * 1996-05-23 1998-10-27 Advanced Micro Devices, Inc. Method for compiling a software program and executing on a system which converts data between different endian formats
US5781923A (en) * 1996-05-28 1998-07-14 Hewlett-Packard Company Adding a field to the cache tag in a computer system to indicate byte ordering
KR100502400B1 (ko) * 1997-07-31 2005-07-11 삼성전자주식회사 복수의주변저장장치선택제어기능을갖는컴퓨터및그선택제어방법
DE19736972C1 (de) * 1997-08-25 1999-01-21 Thomas Schumacher Verfahren und Vorrichtung zum beschleunigten Hochfahren eines Personal Computers
US6119224A (en) * 1998-06-25 2000-09-12 International Business Machines Corporation Fast shift amount decode for VMX shift and vperm instructions
US6279126B1 (en) * 1998-10-30 2001-08-21 Hewlett-Packard Company Method for verifying that a processor is executing instructions in a proper endian mode when the endian mode is changed dynamically
US6625727B1 (en) * 1999-11-23 2003-09-23 Motorola, Inc. Apparatus and method for configuring a data processing system by retrieving a configuration value from storage device using reset vector and configuring parameters after reset
US6947532B1 (en) 2000-05-22 2005-09-20 Mci, Inc. Fraud detection based on call attempt velocity on originating number
US7236954B1 (en) 2000-05-22 2007-06-26 Verizon Business Global Llc Fraud detection based on call attempt velocity on terminating number
US6591352B2 (en) * 2001-05-31 2003-07-08 Intel Corporation Method and apparatus for executing firmware from a valid startup block
US6895489B2 (en) * 2002-08-07 2005-05-17 Hewlett-Packard Development Company, L.P. System and method for operating in endian independent mode
US7139150B2 (en) * 2004-02-10 2006-11-21 Marvell International Ltd. Method and system for head position control in embedded disk drive controllers
US7139905B2 (en) * 2004-04-29 2006-11-21 Microsoft Corporation Dynamic endian switching
EP1776642A1 (de) * 2004-07-30 2007-04-25 Philips Electronics N.V. An variable externe speichergrösse und änder-verhältnisse anpassbare datenverarbeitungseinrichtung
JP2006079155A (ja) * 2004-09-07 2006-03-23 Hitachi Information Technology Co Ltd 情報処理装置
US7634762B1 (en) 2005-04-19 2009-12-15 Paravirtual Corp. Selective post-compile conversion
US7640553B2 (en) * 2005-09-30 2009-12-29 Intel Corporation Mechanisms to support use of software running on platform hardware employing different endianness
US7721077B2 (en) * 2006-12-11 2010-05-18 Intel Corporation Performing endian conversion
US8275599B2 (en) * 2007-09-25 2012-09-25 Intel Corporation Embedded bus emulation
US8219797B2 (en) * 2008-12-31 2012-07-10 Intel Corporation Method and system to facilitate configuration of a hardware device in a platform
JP5622429B2 (ja) 2010-04-20 2014-11-12 ルネサスエレクトロニクス株式会社 マイクロコンピュータ
TWI462103B (zh) * 2011-01-19 2014-11-21 Mstar Semiconductor Inc 記憶體控制器、記憶體控制方法及記憶體系統

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4430704A (en) * 1980-01-21 1984-02-07 The United States Of America As Represented By The Secretary Of The Navy Programmable bootstrap loading system
US4679166A (en) * 1983-01-17 1987-07-07 Tandy Corporation Co-processor combination
US4663707A (en) * 1984-05-25 1987-05-05 Scientific Micro Systems, Inc. Multilevel bootstrap apparatus
DE3687124T2 (de) * 1986-02-06 1993-03-18 Mips Computer Systems Inc Funktionseinheit fuer rechner.
US4999808A (en) * 1986-09-26 1991-03-12 At&T Bell Laboratories Dual byte order data processor
US5163145A (en) * 1989-04-25 1992-11-10 Dell Usa L.P. Circuit for determining between a first or second type CPU at reset by examining upper M bits of initial memory reference
US5022077A (en) * 1989-08-25 1991-06-04 International Business Machines Corp. Apparatus and method for preventing unauthorized access to BIOS in a personal computer system
US5261104A (en) * 1990-03-22 1993-11-09 International Business Machines Flexible computer initialization
JP2772103B2 (ja) * 1990-03-28 1998-07-02 株式会社東芝 計算機システム立上げ方式
DE69124437D1 (de) * 1990-08-09 1997-03-13 Silicon Graphics Inc Verfahren und Vorrichtung zum Umkehren von Byteordnung in einem Rechner
US5136711A (en) * 1990-10-17 1992-08-04 Ast Research System for multiple access hard disk partitioning
EP0500973B1 (de) * 1991-02-25 1999-05-06 Siemens Aktiengesellschaft EEPROM und Verfahren zum Ändern einer Initialisierungsroutine im EEPROM
US5257368A (en) * 1991-03-28 1993-10-26 International Business Machines Corp. System for dynamically changing a system I/O configuration by determining differences between current and future configurations and describing differences to software and hardware control blocks
US5220654A (en) * 1991-03-28 1993-06-15 International Business Machines Corp. Method and system for managing an operating system definition of a dynamically modifiable i/o configuration

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10202032A1 (de) * 2002-01-18 2003-07-31 Giesecke & Devrient Gmbh Laden und Interpretieren von Daten

Also Published As

Publication number Publication date
DE4312250B4 (de) 2005-08-25
JP3186905B2 (ja) 2001-07-11
JPH07234781A (ja) 1995-09-05
US5524245A (en) 1996-06-04
US5408664A (en) 1995-04-18

Similar Documents

Publication Publication Date Title
EP0331060B1 (de) Speicherprogrammierbare Steuerung mit gespeichertem markierten Quellencode
DE19815865B4 (de) Kompiliersystem und Verfahren zum rekonfigurierbaren Rechnen
US5594903A (en) Operating System architecture with reserved memory space resident program code identified in file system name space
EP0067496B1 (de) Automatisches Prüfsystem
DE2722099C2 (de)
US5526523A (en) Interface between operating system and operating system extension
US4118773A (en) Microprogram memory bank addressing system
DE4235193C2 (de) Netzwerksystem und zugehöriges Softwareverwaltungsverfahren
DE19681660C2 (de) Verfahren zum Ausführen von Befehlssätzen, die Operationen an verschiedenen Datenarten und Register eines gemeinsamen logischen Registersatzes spezifizieren
DE3607889C2 (de)
US5257387A (en) Computer implemented method and apparatus for dynamic and automatic configuration of a computer system and circuit boards including computer resource allocation conflict resolution
DE2903349C2 (de) Prozessor und Verfahren zur Datenverarbeitung
DE69332663T2 (de) Datenprozessor mit einem Cachespeicher
JP2651218B2 (ja) フレキシブルasicマイクロコンピュータ
DE69820027T2 (de) Vorrichtung zur ausführung virtueller maschinenbefehle
DE69811474T2 (de) Rechnerarchitektur zur aufschiebung von exceptions statischer spekulativer befehle
US5263148A (en) Method and apparatus for configuration of computer system and circuit boards
KR880002657B1 (ko) 데이타 처리 시스템에서 메모리 매핑(mapping)방법
US5450570A (en) Computer implemented method and apparatus for dynamic configuration of a computer system and circuit boards including computer resource allocation conflict resolution
DE69628480T2 (de) Ausnahmebehandlung in einem Datenprozessor
EP0431641B1 (de) Mikroprozessor und Verfahren zur Aufstellung seiner Peripheriefunktionen
DE3303488C2 (de) Digitales Signalverarbeitungssystem
US4037211A (en) Address extending control unit
DE19681711B4 (de) Intelligente I/O-Schaltung zum Verbinden einer mit einem ersten Busprotokoll kompatiblen Einrichtung mit einem externen Bus
US4080648A (en) Micro program control system

Legal Events

Date Code Title Description
8127 New person/name/address of the applicant

Owner name: MIPS TECHNOLOGIES,INC., MOUNTAIN VIEW,CALIF.,, US

8110 Request for examination paragraph 44
8364 No opposition during term of opposition
R071 Expiry of right
R071 Expiry of right