DE4215063C2 - Einrichtung und Verfahren zum Seitenwechsel bei einem nicht-flüchtigen Speicher - Google Patents

Einrichtung und Verfahren zum Seitenwechsel bei einem nicht-flüchtigen Speicher

Info

Publication number
DE4215063C2
DE4215063C2 DE4215063A DE4215063A DE4215063C2 DE 4215063 C2 DE4215063 C2 DE 4215063C2 DE 4215063 A DE4215063 A DE 4215063A DE 4215063 A DE4215063 A DE 4215063A DE 4215063 C2 DE4215063 C2 DE 4215063C2
Authority
DE
Germany
Prior art keywords
page
memory
volatile memory
processor
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE4215063A
Other languages
English (en)
Other versions
DE4215063A1 (de
Inventor
James H Ewertz
Orville H Christeson
Douglas L Gabel
Sean T Murphy
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE4215063A1 publication Critical patent/DE4215063A1/de
Application granted granted Critical
Publication of DE4215063C2 publication Critical patent/DE4215063C2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0615Address space extension
    • G06F12/0623Address space extension for memory modules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/20Employing a main memory using a specific memory technology
    • G06F2212/202Non-volatile memory
    • G06F2212/2022Flash memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)

Description

Die vorliegende Erfindung bezieht sich auf ein Speichersei­ tenwechselsystem nach dem Oberbegriff des Anspruchs 1 bzw. auf ein Verfahren für einen Seitenwechsel in einem nicht-flüchtigen Speicher.
Viele bekannte Computersysteme werden im allgemeinen zumin­ dest mit einem Prozessor, einem RAM und einem ROM konfiguriert. Einige Systeme, beispielsweise eine Vielzahl von Taschenrech­ nern, können nur mit einem Prozessor und einem ROM arbeiten. ROMs sind eine nicht-flüchtige Speicherart, die nicht zerstört wird, wenn die Stromversorgung vom Computersystem entfernt wird.
Bekannte Computersysteme werden im allgemeinen anfangsgela­ den (d. h. durch Einschalten initialisiert), indem die im ROM im Inneren des Computersystems gespeicherte Verarbeitungslogik (d. h. Firmware) benutzt wird. Da der ROM ein nicht-flüchtiger Speicher ist, wird sichergestellt, daß die Firmware im ROM gül­ tige Daten oder Befehle enthält; folglich kann das bekannte Computersystem zuverlässig mit Hilfe der Firmware im ROM an­ fangsgeladen werden. Viele Computersysteme benutzen erfolgreich diese Technik. Eines dieser Systeme ist der durch die IBM Cor­ poration in Armonk, New York entwickelte IBM-PC. Bekannte Ver­ sionen des IBM-PC benutzen ROM-Bauelemente zum Speichern der Firmware oder eines Software-Programms des Basis-Eingabe-Aus­ gabe-Systems (BIOS). Das BIOS ist ein Betriebssystem, das die niedrigste Ebene der Softwaresteuerung über die Hardware und die Ressourcen des Computersystems zur Verfügung stellt. Die ROM-Speicherung kann auch für eine nicht-flüchtige Aufbewahrung von Netzwerk-Konfigurationsdaten oder anwendungsspezifischen Daten benutzt werden. Bekannte ROM-Bauelemente umfassen die Grundform des Nur-Lese-Speichers (ROM), programmierbare Nur- Lese-Speicherbauelemente (PROM) und löschbare programmierbare Nur-Lese-Speicher (EPROM). Batteriegestützte RAM-Bauelemente, wie beispielsweise CMOS-RAM-Bauelemente, können ebenfalls für ein nicht-flüchtiges Aufbewahren von Netzwerkkonfigurationsda­ ten oder anwendungsspezifischen Daten in einem Computersystem benutzt werden.
Obwohl Computersysteme auf ROM-Basis sehr erfolgreich be­ nutzt werden, gibt es eine Anzahl von Problemen bei der Benut­ zung dieser Bauelemente in einem Computersystem. Die meisten Computersysteme haben einen endlichen Adreßraum, in welchem jede der Ressourcen des Computersystems arbeiten muß. Diese Ressourcen enthalten den ROM, den RAM, Ein/Ausgabe-Geräte und möglicherweise andere Prozessoren. ROM-Bauelemente mit einem darin enthaltenen BIOS sind typischerweise beschränkt auf einen speziellen Adreßbereich innerhalb des verfügbaren Adreßraums. Um die Kompatibilität mit einer bestimmten Computerarchitektur aufrechtzuerhalten, schaffen Konstrukteure und Entwickler in der Computerindustrie Produkte basierend auf einem bestimmten ROM-Adressenstandard. Beispielsweise fordert die Architektur des IBM-PC AT, daß das ROM-BIOS und andere firmware-basierte Anwendungen auf einen 128K großen Adreßraum an der Spitze des ersten Megabytes des Speichers begrenzt ist. Mit dieser Archi­ tektur kann jedoch das ROM-BIOS nicht 128K des ROM-Raums über­ steigen. Innerhalb dieses ROM-Raums muß das BIOS Verarbeitungs­ logik zum Initialisieren und Steuern vieler der Hardwaresysteme und -ressourcen des Computersystems enthalten. Mit wachsender Funktionalität der modernen Computersysteme wächst die Komple­ xität des Hardware-Systems und der Ressourcen und ebenso der Umfang des zu ihrer Unterstützung erforderlichen BIOS-Codes. Auch aufgrund neuer Technologien und Fähigkeiten, wie bei­ spielsweise EISA-Systeme, Flash-Speicher und mehrsprachiger Unterstützung für eine internationale Arbeitsweise eines Compu­ tersystems, wird es zunehmend undurchführbar, alle gewünschten BIOS-Merkmale innerhalb der 128K-Grenze der Architektur des IBM-PC AT unterzubringen. Andere Varianten von Computersystemen haben typischerweise eine feststehende Grenze für die Größe ihres BIOS. Obwohl der Bedarf zum Ausdehnen der BIOS-Begrenzung wächst, kann die Begrenzung nicht willkürlich verändert werden, ohne die Kompatibilität mit den feststehenden Standards zu ver­ lieren.
Aus US 4,443,847 A1 ist es bekannt, einen nicht-flüchtigen Speicher (ROM) in Seiten einzuteilen und den Seitenwechsel (paging) durch eine Adreßmodifikation zu bewirken.
Aufgabe der Erfindung ist es, den für ein BIOS eines Compu­ tersystems zur Verfügung stehenden Speicherraum zu erweitern, ohne dabei vorgegebene Adreßbegrenzungen zu verletzen.
Diese Aufgabe wird erfindungsgemäß durch ein Speichersei­ tenwechselsystem mit den Merkmalen des Anspruchs 1 bzw. ein Verfahren mit den Merkmalen des Anspruchs 13 gelöst.
Die vorliegende Erfindung beschreibt ein Computersystem, bei dem eine Seitenwechseltechnik verwendet wird, um die nutz­ bare Kapazität des nicht-flüchtigen Speichers über eine feste Begrenzung eines Adreßraums hinaus auszudehnen. Das Computersy­ stem des bevorzugten Ausführungsbeispiels weist einen Bus zum Informationsaustausch, einen mit dem Bus gekoppelten Prozessor zur Informationsverarbeitung, einen mit dem Bus gekoppelten RAM zum Speichern von Informationen und Befehlen für den Prozessor, ein mit dem Bus gekoppeltes Eingabegerät, wie beispielsweise ein alphanumerisches Eingabegerät oder ein Cursorsteuergerät, zum Austausch von Informationen und Befehlsaufrufen für den Prozessor, ein mit dem Bus gekoppeltes Anzeigegerät zum Anzei­ gen von Informationen für einen Computerbenutzer und ein mit dem Bus gekoppeltes Datenspeichergerät zum Speichern von Infor­ mationen und Befehlen, wie beispielsweise eine Magnetplatte oder ein Diskettenlaufwerk auf. Zusätzlich weist das Computer­ system des bevorzugten Ausführungsbeispiels eine mit dem Bus gekoppelte Flash-Speicherbaugruppe zur Speicherung nichtflüch­ tiger Befehlscodes und Daten auf. Zur Speicherung nichtflüch­ tiger Befehlscodes und Daten können anstelle des Flash-Spei­ chers auch andere Bauelemente benutzt werden. Bei Benutzung der Erfindung dehnt eine Seitenwechseltechnik die nutzbare nicht­ flüchtige Speicherkapazität über eine feste Adreßraumbegrenzung hinaus aus.
Der Flash-Speicher des bevorzugten Ausführungsbeispiels enthält vier separat lösch- und programmierbare nicht symmetri­ sche Speicherblöcke. Einer dieser vier Blöcke kann nach der Installation elektronisch gesperrt werden, um ein Löschen oder eine Änderung seines Inhalts zu verhindern. Diese Konfiguration gestattet der Verarbeitungslogik des Computersystems die Aktua­ lisierung oder Änderung irgendeines ausgewählten Speicherblocks ohne eine Beeinflussung der Inhalte der anderen Blöcke. Ein Speicherblock enthält ein normales BIOS. Das BIOS enthält Be­ fehle der Verarbeitungslogik, die durch den Prozessor ausge­ führt werden.
Im bevorzugten Ausführungsbeispiel ist das BIOS auf die oberen 128K des ersten Megabytes des adressierbaren Speicher­ raums des Computersystems begrenzt. Aufgrund der Zwänge des Computersystementwurfs und der Kompatibilität darf das BIOS nicht Speicherplätze außerhalb des oberen 128K-Bereichs bele­ gen. Bei der Erfindung wird der nutzbare BIOS-Speicherraum ef­ fektiv erhöht, während die 128K-Grenze des oberen 128K-Bereichs beibehalten wird. Diese Vergrößerung des nutzbaren BIOS-Raums wird mit Hilfe der erfindungsgemäßen Seitenwechseltechnik rea­ lisiert. Im bevorzugten Ausführungsbeispiel ist der Adreßraum des nicht-flüchtigen Speichers logisch in vier getrennte 64KByte-Seiten des Speichers (Seiten 1-4) unterteilt. Mit Hilfe der erfindungsgemäßen Einrichtung und des Verfahrens können die Seiten 1, 3 und 4 individuell in den durch das BIOS belegten Adreßraum (den auslagerbaren Seitenbereich) ein- und ausgela­ gert werden. Die Seite 2 wird im bevorzugten Ausführungsbei­ spiel statisch gehalten und wird folglich nicht als Auslage­ rungsbereich benutzt.
Jede der auslagerbaren Seiten 1, 3 und 4 enthält Auslage­ rungslogik (swapping logic) genannte Verarbeitungslogik, die während der Auslagerungs- oder Seitenwechsel-Operation benutzt wird. Die Auslagerungslogik arbeitet in Verbindung mit Seiten­ wechsel-Hardware, um die Auslagerung von Seiten in den durch das BIOS belegten Bereich zu bewirken. Die Adreßleitungen höhe­ rer Ordnung des Prozessors bilden Eingangsleitungen eines Sei­ tendecoders. Der Seitendecoder wird benutzt, um die jeweils dem nicht-flüchtigen Speicher präsentierte Adresse zu modifizieren. Ein Seitenregister stellt Mittel zur Verfügung, durch welche der Prozessor eine Seite in dem nicht-flüchtigen Speicher aus­ wählen kann.
In einem alternativen Ausführungsbeispiel der Erfindung können mehrere unterschiedliche Arten von Konfigurations- oder Identifikations-Informationen in einer Seite des nichtflüchti­ gen Speichers gespeichert werden. Konfigurations-Informationen können in dieser Form EISA-Konfigurationsdaten, andere Buspro­ tokollinformationen oder Netzwerkinformationen enthalten. Iden­ tifikations-Informationen können eine Ethernet-Adresse, Serien­ nummern des Systems oder Software-Lizenznummern enthalten.
Die Erfindung stellt Mittel zum Ausdehnen der Speicherkapa­ zität für das BIOS unter Aufrechterhaltung der Adreßraumbegren­ zungen zur Verfügung. Ferner liefert sie Mittel für einen Sei­ tenwechsel eines System-BIOS in einem Computersystem, Mittel zum Auswählen einer bestimmten Seite des BIOS-Speichers und Mittel zum Auslagern von Seiten des BIOS. Die Erfindung schafft ferner Mittel zum Benutzen seitenresidenter Verarbeitungslogik für die Steuerung der Seitenauslagerungsoperation und Mittel zum Aufrechterhalten mindestens einer statischen Seite. Ferner stellt die Erfindung Mittel zum Speichern von Konfigurations- oder Identifikations-Informationen zur Verfügung, beispielswei­ se Mittel zum Speichern von EISA-Informationen in einem Flash- Speicher und zu deren Rückgewinnung aus dem Speicher.
Vorteilhafte Weiterbildungen der Erfindung sind in den Un­ teransprüchen gekennzeichnet.
Im folgenden wird die Erfindung anhand eines in der Zeich­ nung dargestellten bevorzugten Ausführungsbeispiels näher be­ schrieben. In der Zeichnung zeigen:
Fig. 1 eine Darstellung des erfindungsgemäßen Computersystems,
Fig. 2 eine Darstellung der in dem bevorzugten Ausführungsbeispiel benutzten Seiten des BIOS,
Fig. 3a und 3b die erfindungsgemäße Seitenwechsel-Hardware;
Fig. 4 bis 6 Ablaufdiagramme der erfindungsgemäßen Seitenwechsel-Verarbeitungslogik,
Fig. 7a bis 7d eine Speicherbelegung bei verschiedenen Seitenwechsel-Konfigurationen; und
Fig. 8 die Verarbeitungslogik zum Aktualisieren eines Flash-Speichers mit EISA-Konfigurationsdaten.
Bei dem erfindungsgemäßen Computersystem wird eine Seitenwechsel-Technik benutzt, um die nutzbare nicht-flüchtige Speicherkapazität hinter eine feste Adreßraumbegrenzung auszudehnen. In der folgenden Beschreibung werden zahlreiche spezielle Details ausgeführt, um ein besseres Verständnis der Erfindung zu erreichen. Für den Fachmann ist es jedoch klar, daß diese speziellen Details zur Realisierung der Erfindung nicht notwendig sind. An anderen Stellen werden bekannte Strukturen, Schaltungen und Schnittstellen nicht im Detail gezeigt, um das Verständnis der Erfindung nicht unnötig zu erschweren.
In Fig. 1 ist ein Blockdiagramm des erfindungsgemäßen Computersystems dargestellt. Das bevorzugte Ausführungsbeispiel der Erfindung wurde mit Hilfe eines von der Anmelderin hergestellten Mikroprozessors 80386 oder 80486 realisiert. Für den Fachmann ist es jedoch klar, daß auch andere Prozessoren und Computersystemarchitekturen benutzt werden können. Im allgemeinen weisen solche in Fig. 1 dargestellten Computersysteme einen Bus 100 zum Austauschen von Informationen, einen mit dem Bus gekoppelten Prozessor 101 zum Verarbeiten von Informationen, einen mit dem Bus 100 gekoppelten RAM 102 zum Speichern von Informationen und Befehlen für den Prozessor 101, ein mit dem Bus gekoppeltes Eingabegerät 104, wie beispielsweise ein alphanumerisches Eingabegerät oder ein Cursorsteuergerät, zum Austauschen von Informationen und Befehlsaufrufen mit dem Prozessor 101, ein mit dem Bus 100 gekoppeltes Anzeigegerät 105 zum Anzeigen von Informationen für einen Computerbenutzer und ein mit dem Bus 100 gekoppeltes Datenspeichergerät 106 zur Speicherung von Informationen und Befehlen, wie beispielsweise eine Magnetplatte und ein Diskettenlaufwerk, auf.
Zusätzlich weist das Computersystem des bevorzugten Ausführungsbeispiels eine mit dem Bus 100 gekoppelte Nur-Lese- Speicherbaugruppe 103 zum Speichern nicht-flüchtiger Befehlscodes und Daten auf. Im bevorzugten Ausführungsbeispiel ist der Nur-Lese-Speicher 103 eine bekannte Flash- Speicherbaugruppe.
Gegenwärtig sind verschiedene Typen nicht-flüchtiger Speicher bekannt, die ohne Entfernen des Bauelements von einer Leiterplatte, auf welcher das Bauelement installiert ist, umprogrammiert werden können. Eine Klasse umprogrammierbarer nicht-flüchtiger Speicherbauelemente stellen die Flash-Speicher dar. Bekannt sind verschiedene Arten von Flash-Speichern. Mit Hilfe eines bestimmten Satzes elektrischer Signale können die Inhalte von Flash-Speichern gelöscht und mit neuen Daten umprogrammiert werden. Viele bekannte Flash-Speicher gestatten nur ein komplettes Löschen und Umprogrammieren aller Speicherplätze des Bauelements. Andere Flash-Speicher sind jedoch partitioniert in getrennt löschbare und programmierbare Speicherblöcke in einem einzigen Flash-Speicher. Im bevorzugten Ausführungsbeispiel der Erfindung wird ein solcher partitionierter Flash-Speicher benutzt. Im bevorzugten Ausführungsbeispiel werden zwei Flash-Speicher mit der Bezeichnung 28F001BT benutzt. Die Flash-Speicher 28F001BT sind durch die Anmelderin hergestellte 1MBit-Speicher. Für den Fachmann ist es klar, daß andere Arten umprogrammierbarer nicht-flüchtiger Speicher zur Ausführung der Lehre der Erfindung benutzt werden können. Eine Alternative zu einem Flash-Bauelement ist ein elektrisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM).
Der im bevorzugten Ausführungsbeispiel benutzte Flash- Speicher enthält vier getrennt lösch-/programmierbare nicht symmetrische Speicherblöcke. Einer dieser vier Blöcke kann elektronisch gesperrt werden, um ein Löschen oder Verändern des einmal installierten Inhalts zu verhindern. Diese Konfiguration gestattet es der Verarbeitungslogik des Computersystems, irgendeinen ausgewählten Speicherblock zu aktualisieren oder zu verändern, ohne die Inhalte der anderen Blöcke zu beeinflussen.
Im bevorzugten Ausführungsbeispiel ist ein Basis-Eingabe- Ausgabe-System (BIOS) in dem Flash-Speicher 103 gespeichert. Zusätzlich können andere system- und anwendungsspezifische Verarbeitungslogik- und Datenparameter ebenfalls in dem Flash- Speicher 103 gespeichert sein. Die folgenden Abschnitte beschreiben, wie die Inhalte des Flash-Speichers 103 durch Seitenwechsel in einer Weise ausgewechselt werden können, die es gestattet, die effektive Größe des Flash-Speichers 103 zu erhöhen, ohne Zugriffe über eine feste Adreßgrenze hinaus auszudehnen. Für den Fachmann ist es klar, daß die erfindungsgemäße Flash-Speicher-Seitenwechseltechnik in einem Computersystem mit Hilfe einer beliebigen Art eines nicht- flüchtigen-Speichers benutzt werden kann und nicht auf ein einen Flash-Speicher benutzendes System beschränkt ist.
Bei dem in Fig. 2 dargestellten bevorzugten Ausführungsbeispiel ist für ein in Seiten eingeteiltes BIOS eine Speicherbelegung der Inhalte des Flash-Speichers 103 dargestellt. Im bevorzugten Ausführungsbeispiel ist das BIOS beschränkt auf die oberen 128K des ersten Megabyte des adressierbaren Speicherbereichs des Computersystems. Dieser Adreßraum wird durch den in Fig. 2 dargestellten Bereich 320 identifiziert. Bekannt ist die Benutzung des 128K-Bereichs 320 zur Speicherung des BIOS. Der obere Bereich 301 wird zur Speicherung des normalen System-BIOS benutzt, während der untere Bereich 302 zur Speicherung anderer Logik und Daten, wie beispielsweise Überlauf-BIOS-Befehlscodes und/oder -daten, Video-Daten, Set-Up-Befehlscodes oder -daten anderer BIOS's und anderer Informationen oder Logik benutzt wird.
Bei der Erfindung wird der nutzbare BIOS-Speicherraum effektiv erhöht, während die 128K-Begrenzung des Bereichs 320 aufrechterhalten wird. Diese Vergrößerung des nutzbaren BIOS- Raums wird durch die erfindungsgemäße Seitenwechsel-Technik realisiert. Im bevorzugten Ausführungsbeispiel ist die in Fig. 2 dargestellte Speicherbelegung logisch in vier unterschiedliche 64KByte-Speicherseiten getrennt. Diese Seiten werden als Seite 1 (301), Seite 2 (302), Seite 3 (303) und Seite 4 (304) bezeichnet. Mit Hilfe der Einrichtung und des Verfahrens der Erfindung können die Seiten 3 (303) und 4 (304) individuell in den durch die Seite 1 (301) belegten Adreßraum aus- bzw. eingelagert werden. Im bevorzugten Ausführungsbeispiel wird die Seite 2 (302) statisch gehalten und folglich nicht als ein Auslagerungsbereich benutzt.
Für den Fachmann ist es klar, daß für eine bessere Anpassung an ein alternatives Ausführungsbeispiel anstelle der Seitengröße von 64K Byte des bevorzugten Ausführungsbeispiels eine differierende Seitengröße realisiert werden kann. Das erfindungsgemäße Verfahren kann auch mit einer anderen Seitengröße benutzt werden. Ähnliches gilt für die vom bevorzugten Ausführungsbeispiel definierten zwei außerhalb der 128K-Begrenzung des Bereichs 320 auslagerbaren Seiten, der Seite 3 (303) und der Seite 4 (304). Es ist für den Fachmann klar, daß zusätzliche Seiten mit Hilfe des erfindungsgemäßen Verfahrens definiert werden können, um den nutzbaren Bereich des BIOS weiter zu vergrößern.
Jede der auslagerbaren Seiten 1 (301), 3 (303) und 4 (304) enthält Auslagerungslogik genannte Verarbeitungslogik, die während der Auslagerungs- oder Seitenwechsel-Operation benutzt wird. Beispielsweise belegt die Auslagerungslogik der Seite 1 (301) einen Platz im Bereich 315. In ähnlicher Weise hat jede auslagerbare Seite Auslagerungslogik, die sich an einer relativ zu jeder Seite festen Stelle befindet. Die Auslagerungslogik arbeitet in Verbindung mit einer Seitenwechsel-Hardware, um die Umlagerung von Seiten in den durch die Seite 1 (301) belegten Bereich zu bewirken. Die Arbeitsweise der Auslagerungslogik wird unten mit Bezug auf die Ablaufdiagramme der Fig. 4 und 5 beschrieben. Zunächst wird die erfindungsgemäße Seitenwechsel-Hardware beschrieben.
In Fig. 3a ist ein Blockdiagramm der erfindungsgemäßen Seitenwechsel-Hardware dargestellt. Ein Teil der Schnittstelle zwischen dem Prozessor 101 und dem nicht-flüchtigen Speicher- oder Flash-Bauelement 103 ist eine Adresse, die dem Flash- Speicher und/oder der Decoderlogik auf den Adreßleitungen 210 präsentiert wird. Die so präsentierten Adreßsignale definieren den Ort im Flash-Speicher 103, auf den durch den Prozessor 101 zugegriffen wird. Zur Veranschaulichung sind die Adreßleitungen 210 in zwei Komponenten getrennt gezeigt. Die Adreßsignale auf den Leitungen 211 enthalten die geringwertigen 16 Bits der durch den Prozessor 101 ausgegebenen Adresse. Die Adreßsignale höherer Ordnung werden auf Leitung 212 ausgegeben. Es ist für den Fachmann klar, daß die Anzahl der auf Leitung 212 präsentierten Adreßsignale höherer Ordnung von der Adreßbreite des Prozessors 101 abhängt. Zur Veranschaulichung sind nur vier Adreßsignale bzw. Bits auf Leitung 212 gezeigt, um einen Zugriff auf einen Platz höchster Ordnung des Flash-Speichers 103 zu veranschaulichen.
Die vier Adreßleitungen der Leitung 212 werden in dem bevorzugten Ausführungsbeispiel einem Seitendecoder 217 eingegeben. Der Seitendecoder 217 wird benutzt, um die auf den Adreßleitungen 219 an den Flash-Speicher 103 jeweils angelegten Adressen zu modifizieren. Ein zweites Eingangssignal zum Seitendecoder 217 kommt von einem Seitenregister 214 über Leitung 216. Das Seitenregister 214 stellt Mittel zur Verfügung, durch welche der Prozessor 101 eine Seite im Flash- Speicher 103 auswählen kann. Der Prozessor 101 wählt eine Seite durch Ausgabe eines mit der gewünschten Seite korrespondierenden binären Wertes auf Leitung 215 aus. Im bevorzugten Ausführungsbeispiel wird die Ausgabe zum Seitenregister 214 auf Leitung 215 mit Hilfe eines im Befehlssatz des Prozessors 101 zur Verfügung stehenden OUT- Befehls ausgeführt. Die Benutzung eines OUT-Befehls zum Laden eines externen Registers in dieser Weise ist bekannt. Sobald das Seitenregister 214 mit einer Seitenzahl geladen worden ist, wird diese Seitennummer dem Seitendecoder 217 auf Leitung 216 zur Verfügung gestellt.
Der Seitendecoder 217 manipuliert die jeweils dem Flash- Speicher 103 auf den Adreßleitungen 219 präsentierte Adresse, indem er zunächst die auf den Leitungen 212 empfangenen Bits höherer Ordnung der Prozessoradresse liest. Wenn der durch die Bits höherer Ordnung der Prozessoradresse auf den Leitungen 212 repräsentierte Wert einen Prozessorzugriff auf den auslagerbaren Seitenbereich (d. h. Adreßbereich F0000h bis FFFFFh) definiert, so liest der Seitendecoder 217 die im Seitenregister 214 gespeicherte Seitennummer. Die Seitennummer wird benutzt, um den Wert der Bits höherer Ordnung der Prozessoradresse zu ersetzen, die aktuell an den Flash-Speicher 103 über die Adreßleitungen 219 ausgegeben wird. Auf diese Weise kann ein Prozessorzugriff auf den auslagerbaren Seitenbereich zu einer vorgegebenen Seite umadressiert werden. Wenn der durch die Bits höherer Ordnung der Prozessoradresse auf den Leitungen 212 repräsentierte Wert einen Prozessorzugriff auf einen anderen Bereich als den auslagerbaren Seitenbereich des Flash-Speichers definiert, so braucht der Seitendecoder 217 nicht das Seitenregister zu lesen, und die Prozessoradresse wird unmodifiziert an den Flash-Speicher 103 weitergeleitet.
Ein Beispiel der Arbeitsweise des Seitenregisters 214 und des Seitendecoders 217 ist in Fig. 3b dargestellt. Wenn ein mit der Seite 1 korrespondierender Wert durch den Prozessor 101 in das Seitenregister 214 geladen worden ist und eine Prozessoradresse in dem auslagerbaren Seitenbereich F0000h bis FFFFFh durch den Prozessor auf den Leitungen 211 und 212 präsentiert wird, so nehmen die durch den Prozessor 101 auf den Leitungen 212 ausgegebenen Prozessoradreßbits 16 bis 19 höherer Ordnung jeweils einen binären Wert von 1 an, wobei ein Adreßbereich von F0000h bis FFFFFh definiert wird. Da der Prozessor 101 auf den auslagerbaren Seitenbereich zugegriffen hat, wird der Seitendecoder 217 freigegeben, um aus dem Seitenregister 214 den dort gespeicherten Wert zu lesen. In diesem Beispiel liest der Seitendecoder 217 einen mit der Seite 1 korrespondierenden Wert und ersetzt die Prozessoradreßbits höherer Ordnung durch den Wert der Seite 1. Somit wird eine Flash-Speicheradresse im Bereich von F0000h bis FFFFFh dem Flash-Speicher 103 präsentiert. Dieser Adreßbereich (F0000h bis FFFFFh) korrespondiert mit der in Fig. 2 dargestellten Seite 1 (301). Da Seite 1 bereits in dem Adreßraum der auslagerbaren Seite angeordnet war, brauchte keine andere Seite eingelagert zu werden. Folglich wurde für den einfachen Fall der Seite 1 die Prozessoradresse im wesentlichen zum Flash-Speicher 103 durchgeleitet, obwohl der Seitendecoder 217 die Adreßmodifikation ausführte. Dieser Fall ist in Fig. 7a dargestellt.
Im bevorzugten Ausführungsbeispiel wird die Seite 2 niemals in das Seitenregister 215 geladen, da sie eine nicht­ auslagerbare Seite ist. Folglich erzeugt ein Prozessorzugriff auf den nicht-auslagerbaren Adreßbereich (E0000h bis EFFFFh) keine Adreßmodifikation durch den Seitendecoder 217. Dieser Fall ist in Fig. 7b dargestellt.
In dem in Fig. 3b dargestellten Fall der Seite 3 wird das Seitenregister 214 mit einem mit der Seite 3 korrespondierenden Wert geladen. Eine Prozessoradresse in dem auslagerbaren Seitenbereich F0000h bis FFFFFh wird durch den Prozessor 101 auf den Leitungen 211 und 212 präsentiert. In diesem Fall liest der Seitendecoder 217 die Werte der Seite 3 vom Seitenregister 214 und ersetzt die Bits höherer Ordnung der Prozessoradresse mit den Werten der Seite 3. Diese Adreßmodifikation bewirkt eine Umadressierung der Prozessoradresse zu einer abweichenden Adresse im Flash-Speicher 103, die mit dem Ort der Seite 3 korrespondiert. Im Beispiel gemäß Fig. 3b ist der Wert der Seite 3 gleich 0Dh. Dieser Wert adressiert den Zugriff auf die Seite 3 auf den Flash-Speicheradreßbereich D0000h bis DFFFFh um. Für den Fachmann ist es klar, daß der Speicherzugriff durch den Prozessor auf jeden beliebigen Bereich des Flash-Speichers 103 umadressiert werden kann. Alternative Ausführungsbeispiele können einen anderen Wert für die Seite 3 benutzen und dabei einen Zugriff auf die Seite 3 an eine andere Stelle im Flash- Speicher 103 umadressieren. Der Fall der Seite 3 ist in Fig. 7c dargestellt.
In dem in Fig. 3b gezeigten Beispiel der Seite 4 wird ein Wert der Seite 4 von 0Ch benutzt, um einen Zugriff des Prozessors 101 auf den Flash-Speicheradreßbereich C0000h bis CFFFFh umzuadressieren. Wiederum ist die Umadressierung auf den Adreßbereich C0000h bis CFFFFh nur als ein Beispiel angegeben. Angemerkt sei auch, daß der Prozessor 101 nur vom Laden des Seitenregisters und vom Zugriff auf den auslagerbaren Seitenbereich (F0000h bis FFFFFh) im Flash-Speicher 103 Kenntnis erhält. Der Prozessor 101 erhält keine Kenntnis über die Umadressierung der Bits höherer Ordnung der Prozessoradresse. Der Fall der Seite 4 ist in Fig. 7d dargestellt.
In den letzten beiden in Fig. 3b gezeigten Beispielen greift der Prozessor 101 auf einen nicht auslagerbaren Seitenbereich (d. h. Bereich 301) zu, wobei die Adresse nicht modifiziert wird. Im ersten der Beispiele präsentiert der Prozessor 101 eine Adresse in dem Bereich E0000h bis EFFFFh auf den Leitungen 210. Da eine solche Adresse nicht in dem auslagerbaren Seitenbereich liegt, wird folglich der Wert im Seitenregister 214 irrelevant. In diesem Fall läßt der Seitendecoder 217 einfach die Prozessoradresse zum Flash- Speicher 103 passieren. Folglich wird auf den Leitungen 219 die Adresse im Bereich E0000h bis EFFFFh dem Flash-Speicher präsentiert. In ähnlicher Weise wird eine Prozessoradresse im Bereich 0 bis DFFFFh unmodifiziert dem Bus 100 angeboten.
Auf diese Weise können durch den Prozessor 101 auf den Leitungen 211 und 212 ausgegebene Adressen modifiziert und auf ausgewählte Seiten des Flash-Speichers 103 umadressiert werden. Für den Fachmann ist es klar, daß die Fig. 3a und 3b eine Modifikation von nur vier Leitungen höherer Ordnung der Prozessoradresse beschreiben; daß jedoch zusätzliche Adreßleitungen oder Bits hoher Ordnung in die Manipulation durch den Seitendecoder 217 einbezogen werden können, um einen Zugriff auf zusätzliche Seiten des BIOS zu ermöglichen. Auch ist es für den Fachmann klar, daß der im bevorzugten Ausführungsbeispiel zum Auslösen der Auslagerungs-Operation für das System-BIOS benutzte Adreßbereich für auslagerbare Seitenbereiche (F0000h bis FFFFFh) an einem beliebigen Speicherbereich implementiert werden kann. Damit ist die Seitenwechsel-Hardware der Erfindung beschrieben.
Die Verarbeitungslogik zur Steuerung des erfindungsgemäßen in Seiten eingeteilten nicht-flüchtigen Speichersystems ist ebenfalls enthalten. Diese Verarbeitungslogik zerfällt in zwei verschiedene Teile: 1) erster Befehlscodeteil oder Seitenauswahllogik und 2) zweiter Befehlscodeteil oder Auslagerungslogik. Der erste Befehlscodeteil ist die Verarbeitungslogik, die die Seitennummer bestimmt, die in den dem auslagerbaren Seitenbereich entsprechenden Bereich ausgelagert werden soll. Der zweite Befehlscodeteil der Seitensteuerungs-Verarbeitungslogik ist der Befehlscode, der das Umschalten oder Auslagern zur nächsten Seite ausführt. Der erste Befehlscodeteil kann sich an irgendeiner Stelle im BIOS oder einer auslagerbaren Seite aufhalten. Der zweite Befehlscodeteil ist in dem mit den oberen 8K jeder auslagerbaren Seite korrespondierenden physikalischen Adreßbereich angeordnet. Beispielsweise befindet sich die Auslagerungslogik des zweiten Teils für die Seite 1 im Bereich 315, wie es in Fig. 2 gezeigt ist. In ähnlicher Weise befindet sich der zweite Teil der Auslagerungslogik für die Seite 3 im Bereich 310. Dieser obere 8K-Adreßbereich korrespondiert mit einem Abschnitt der Kompatibilität für den IBM-PC, wo an dieser Stelle feste Eintrittspunkte für zahlreiche Software-Interrupts und andere feste Datenbereiche sind. Zwischen diesen festen Eintrittspunkten und Datenbereichen gibt es Lücken verfügbaren Speichers. Die Auslagerungslogik des zweiten Teils ist in einer dieser Lücken angeordnet. Die Auslagerungslogik des zweiten Teils ist stets an der gleichen festen Adresse relativ zu jeder Seite positioniert. Jede auslagerbare Seite muß die Auslagerungslogik des zweiten Teils aufweisen. Für den Fachmann ist es jedoch klar, daß die Auslagerungslogik für andere Computersystemarchitekturen an einer anderen Position innerhalb der auslagerbaren Seiten, aber an den gleichen festen Adressen relativ zu jeder Seite angeordnet sein kann.
Die erfindungsgemäße Seitenumschaltung wird durch Ausführung der Seitenauswahl-Verarbeitungslogik des ersten Teils aktiviert. Im bevorzugten Ausführungsbeispiel wird die Verarbeitungslogik des ersten Teils durch einen Befehlscode in einer anderen Seite oder über die Aktivierung einer charakteristischen Sequenz alphanumerischer Tastatureingaben ausgeführt. Jeder Seite kann eine besondere Tastatureingabesequenz zugeordnet sein. Im bevorzugten Ausführungsbeispiel enthält beispielsweise die Seite 1 ein beim Einschalten aufgerufenes Selbsttestprogramm bzw. POST-Programm (power-on-self-test). Die Seite 1 mit dem POST-Befehlscode wird beim Einschalten oder einem Systemrücksetzen automatisch ausgewählt. Die Seite 3 enthält die Set-Up-Verarbeitungslogik und die Seite 4 enthält die Laufzeit-BIOS-Logik. Die Set-Up- Seite bzw. Seite 3 kann von der POST-Verarbeitungslogik bei Auftreten eines Konfigurationsfehlers ausgewählt werden. So fordert die POST-Verarbeitungslogik zu einer alphanumerischen Tastatureingabe auf, um den Seitenauswahlcode des ersten Teils bei Anforderung auszuführen. Die Set-Up-Seite oder Seite 3 wird durch den POST-Befehlscode oder den Laufzeitbefehlscode zum Seitenauswahlcode des ersten Teils weitergeführt. Der Seitenauswahlcode des ersten Teils ist in dem Ablaufdiagramm in Fig. 4 dargestellt. In ähnlicher Weise kann der POST- Verarbeitungscode bei normaler Beendigung der Einschalt- Selbsttest-Logik den Seitenauswahlcode des ersten Teils ausführen, um das Laufzeit-BIOS der Seite 4 zu aktivieren. Somit wird der Seitenauswahlcode des ersten Teils wie in Fig. 4 dargestellt ausgeführt, nachdem die Laufzeit-BIOS-Seitennummer (Seite 4) passiert wurde. Außerdem kann eine bestimmte alphanumerische Sequenz, wie beispielsweise F1 oder CTRL-ALT- INS benutzt werden, um die Aktivierung des Seitenauswahlcodes des ersten Teils auszulösen. Eine solche alphanumerische Sequenz wird benutzt, um eine Set-Up-Seite aufzurufen. Die Seitenauswahllogik des ersten Teils und die Auslagerungslogik des zweiten Teils sind in einem Abschnitt am Ende der Beschreibung aufgelistet.
In Fig. 4 ist die erfindungsgemäße Seitenauswahllogik des ersten Teils dargestellt. Wie oben beschrieben, stehen verschiedene Verfahren zum Aktivieren der in Fig. 4 dargestellten Verarbeitungslogik zur Verfügung. Sobald sie aktiviert wurde, wird die Logik beginnend am Kreis 400 in Fig. 4 ausgeführt. Im Verarbeitungsblock 401 wird die gewünschte neue Seite (NEW PAGE) in ein Mehrzweckregister des Prozessors zur Übertragung an den zweiten Teil der Verarbeitungslogik geladen. Der zweite Teil der Auslagerungslogik wird im Verarbeitungsblock 402 über einen Software-Sprung durch Ausführung eines im Befehlssatz des Prozessors zur Verfügung stehenden Software-Sprungbefehls (JMP) aktiviert. Ein Software- Sprungbefehl (JMP) ist allgemein bekannt. Sobald der Software- Sprung des Verarbeitungsblocks 402 ausgeführt worden ist, wird die Auslagerungslogik des zweiten Teils ausgeführt beginnend am Kreis 500 in Fig. 5.
In Fig. 5 ist die erfindungsgemäße Auslagerungslogik des zweiten Teils dargestellt. In bevorzugten Ausführungsbeispielen werden zwei Prozeduren (SW_SHADOW_OFF und SW_CACHE_OFF) zunächst im Verarbeitungsblock 501 und 502 aufgerufen, um die Möglichkeit mehrfacher Kopien des Befehlscodes der aktuellen Seite zu sperren. Andere Kopien des Befehlscodes in der aktuellen Seite können durch den Prozessor in einem Schattenbereich oder einem CACHE-Bereich gehalten werden. Mittel zur Freigabe und zum Sperren der Schatten- und CACHE- Bereiche sind bekannt. Die Nummer der gewünschten Zielseite wird zur Auslagerungslogik des zweiten Teils über ein internes Mehrzweckregister des Prozessors durchgeleitet. Diese Seitennummer wird mit einer maximalen Seitennummer im Entscheidungsblock 503 verglichen, um zu bestimmen, ob die angeforderte Seite außerhalb der Grenze der verfügbaren Seiten ist. Wenn die angeforderte Seite außerhalb der verfügbaren Grenze ist (Verarbeitungspfad 504), wird die angeforderte Seite auf Seite 1 gesetzt (Verarbeitungsblock 505), und die Steuerung wird am Verarbeitungsblock 507 fortgesetzt. Wenn jedoch die angeforderte Seite innerhalb der Grenzen ist (Verarbeitungspfad 506), so wird die angeforderte Seite nicht modifiziert. Im Verarbeitungsblock 507 wird das Seitenregister mit der angeforderten Seite geladen. Diese Aktion initialisiert die erfindungsgemäße Hardware-Komponente wie zuvor beschrieben.
Sobald das Seitenregister mit dem geeigneten Seitenwert geladen ist, wird die der neuen Seite zugeordnete Eintrittspunktadresse von einer Seiteneintrittstabelle im Verarbeitungsblock 508 gewonnen. Die Steuerung wird dann zu der neuen Seite an dem geeigneten Eintrittspunkt am Kreis 509 übergeben.
In Fig. 6 ist die Verarbeitungslogik an dem Eintrittspunkt jeder Seite dargestellt. Diese Verarbeitungslogik führt verschiedene Seiteninitialisierungsschritte aus, bevor sie die Steuerung an den aktuellen Eintrittpunkt der Systemsoftware (TRUE_ENTRY_POINT) im Kreis 606 übergibt. Im Entscheidungsblock 601 wird ein Test ausgeführt, um zu bestimmen, ob die Seite, an welche die Steuerung übertragen wurde, eine gültige Seite ist. Ein einen charakteristischen Wert enthaltendes Datenfeld in jeder Seite wird benutzt, um zu überprüfen, ob die aktive Seite einen gültigen Befehlscode enthält. Wenn dies nicht der Fall ist (Verarbeitungspfad 602), wird die Steuerung auf den Verarbeitungsblock 605 übertragen, in dem eine Fehlerseite in das angeforderte Seitenregister geladen wird, und die Auslagerungslogik des zweiten Teils erneut aktiviert, um die Steuerung an eine Seite zur Verarbeitung des Fehlers zu übertragen. Wenn dagegen die Seite gültig ist (Verarbeitungspfad 603), werden die Schattenspeicher- und Cache-Funktionen in den Verarbeitungsblöcken 604 und 605 freigegeben und die Steuerung an den Eintrittspunkt der System- Software für die neue Seite übergeben.
In einem alternativen Ausführungsbeispiel der Erfindung kann die Verarbeitungslogik in einem nicht-flüchtigen Speicher seitenweise wie oben beschrieben gespeichert sein. Jedoch kann die Verarbeitungslogik vor ihrer Ausführung von dem nicht- flüchtigen Speicher in einen RAM zur Ausführung aus dem RAM heraus kopiert werden. Auf diese Weise kann die nicht-flüchtige Verarbeitungslogik in dem FLASH-Speicher zurückgehalten werden, aber als eine in einem nicht in Seiten eingeteilten RAM ausführbare Logik schneller ausgeführt werden.
In einem anderen alternativen Ausführungsbeispiel der Erfindung können mehrere unterschiedliche Arten von Konfigurationsinformationen in unterschiedlichen Seiten des Flash-Speichers vorgesehen sein. Auf jede dieser Seiten von Konfigurationsinformationen kann durch Auswahl der geeigneten Seitennummer zugegriffen werden. Die Konfigurationsinformationen dieser Art können EISA- Konfigurationsdaten enthalten. EISA ist eine Erweiterung des Bus-Protokolls der IBM-PC-Computersysteme. Das EISA-Protokoll und die zugeordneten Daten sind bekannt.
Bekannte Computersysteme speichern EISA-Konfigurationsdaten in einem nicht-flüchtigen RAM, wie beispielsweise einem CMOS- RAM. Diese CMOS-Bauelemente erfordern eine Batterie, um die Daten zu halten. Mit Hilfe der Erfindung kann ein nicht­ flüchtiges Speicherbauelement, wie beispielsweise ein Flash- Speicher benutzt werden, um EISA-Konfigurationsdaten ohne die Notwendigkeit eines CMOS-Speichers und der zugeordneten Batterie zu halten. Die in Fig. 2 dargestellten Speicherbereiche 307 und/oder 308 der statischen Seite 2 können zur Speicherung von EISA-Konfigurationsdaten genutzt werden. Beim Schreiben der EISA-Konfigurationsdaten in den Speicher muß das System-BIOS modifiziert werden, um den Flash- Speicherbereich 307 und/oder 308 zu löschen und um EISA- Konfigurationsdaten in diesen Flash-Bereich und nicht in einen CMOS-RAM zu speichern. Beim Lesen der EISA-Konfigurationsdaten aus dem Speicher muß das System-BIOS modifiziert werden, um auf den Flash-Speicher und nicht auf einen CMOS-RAM zuzugreifen. Ein Verfahren zur Aktualisierung des Flash-Speichers mit EISA- Konfigurationsdaten wird unten in Bezug auf Fig. 8 beschrieben. Auf diese Weise kann die Benutzung von CMOS- Speichern zum Speichern von EISA-Konfigurationsdaten vermieden werden, ohne dabei die Flexibilität eines konfigurierbaren EISA-Protokolls zu verlieren. Wenn der CMOS-Speicher zu anderen Zwecken als der Speicherung von EISA-Konfigurationsdaten benutzt oder die Entfernung des CMOS nicht gewünscht wird, so kann der Flash-Speicher als ein nicht-flüchtiger Sicherungsspeicher für die Inhalte des CMOS dienen. Folglich kann eine Kopie der Inhalte des CMOS in dem Flash-Speicher gehalten werden, um eine Wiederherstellung nach einem CMOS- Batterieausfall zu ermöglichen.
In Fig. 8 ist die Verarbeitungslogik zum Aktualisieren des Flash-Speichers mit Konfigurationsdaten, wie beispielsweise EISA-Informationen dargestellt. Für den Fachmann ist es klar, daß das erfindungsgemäße Verfahren zum Aktualisieren der Konfi­ gurationsdaten auch für andere Konfigurationsinformationen be­ nutzt werden kann. Die in Fig. 8 gezeigte Verarbeitungslogik befindet sich im System-BIOS des bevorzugten Ausführungsbei­ spiels. Diese Logik wird durch ein EISA-Konfigurations- Hilfsprogramm, ein anderes Aktualisierungs-Hilfsprogramm für Konfigurationsdaten, ein Betriebssystem oder andere BIOS-Funk­ tionen aktiviert. Die am Block 801 startende Verarbeitungslogik wird bei Aktivierung eines Software-Interrupts (INT 15) ausge­ führt. Die Benutzung eines INT-15-Interrupts ist bekannt. Bei der Aktivierung der am Block 801 startenden Logik wird ein Pa­ rameter eingegeben, der die auszuführende Subfunktionsoperation anzeigt. Diese Subfunktionsoperationen beinhalten eine "Lösche­ nicht-flüchtigen-Speicherblock"-Operation, die den Flash- Speicherblock der Konfigurationsdaten löscht, und eine "Schreiben-in-den nicht-flüchtigen-Speicherblock"-Operation, die zum Programmieren des Flash-Speicherblocks mit neuen Konfi­ gurationsdaten benutzt wird.
Nach der Aktivierung der am Block 801 startenden Aktuali­ sierungsfunktion für die Konfigurationsdaten des Flash-Spei­ chers wird ein Satz von Aktualisierungsfunktionen aus dem Flash-BIOS-Bereich in einen RAM-Bereich zur Ausführung kopiert (Verarbeitungsblock 802). Diese Aktualisierungsroutinen werden im BIOS selbst aufrechterhalten, um hardware-spezifische Opera­ tionen an den nicht-flüchtigen Speicher in bestimmten Computer­ systemen anzupassen. Die Aktualisierungsroutinen müssen aus dem BIOS-Flash-Speicher zur Ausführung herauskopiert werden, weil nicht-flüchtige Speicher nicht geeignet sind, sowohl Lese- als auch Schreib-Operationen in derselben Ausführungssequenz zu un­ terstützen. Wenn eine Schattenspeicherfähigkeit verfügbar ist, kann die Operation des Kopierens der Aktualisierungs-Hilfspro­ gramme aus dem Flash-Speicher in den RAM überflüssig sein. In gleicher Weise ist die Operation der Freigabe des RAM-Bereichs (Verarbeitungsblock 811) nicht nötig, wenn ein Schattenspeicher verfügbar ist.
Sobald die Flash-Aktualisierungsroutinen, sofern nötig, in den RAM kopiert sind, wird der Entscheidungsblock 803 ausge­ führt, um die eingegebene Subfunktionsauswahl zu interpretie­ ren. Wenn eine "Löschenicht-flüchtigen-Speicherblock"-Opera­ tion ausgewählt wurde (Verarbeitungspfad 805), wird im Verar­ beitungsblock 804 eine Routine zum Löschen des Flash-Speicher­ blocks ausgeführt. Wenn eine "Schreibe-in-den-nicht-flüchtigen- Speicherblock"-Operation ausgewählt wurde (Verarbeitungspfad 809), wird im Verarbeitungsblock 808 eine Routine zum Schreiben in den Flash-Speicherblock ausgeführt, um einschiebbare Infor­ mationen in den Flash-Speicherblock für die Konfigurationsdaten zu schreiben. Wenn ein anderes Kommando ausgewählt wurde (Verarbeitungspfad 813), wird der für die Aktualisierungsrou­ tine zugewiesene RAM freigegeben (Verarbeitungsblock 811), und die Logik zum Aktualisieren der Konfigurationsdaten endet am Block 812.
Sobald eine Lösch- oder Schreib-Operation beendet wurde, werden die gerade aktualisierten Stellen des Konfigurationsda­ tenblocks in einem Verwaltungs-Datenbereich aufgezeichnet (Verarbeitungsblock 810). Da eine zuvor gelöschte Stelle des Konfigurationsdatenblocks nur einmal beschrieben werden kann, müssen die Verwaltungs-Daten aufrechterhalten werden, um sicherzustellen, daß eine bestimmte Stelle nicht mehr als ein­ mal beschrieben wird. Wenn die Lösch- oder Schreib-Operation aufgezeichnet wurde, wird, wenn notwendig, der für die Flash- Aktualisierungsroutinen reservierte RAM-Bereich im Verarbei­ tungsblock 811 freigegeben. Die normale BIOS-Verarbeitung wird dann am Beendigungsblock 812 wieder aufgenommen. So können Kon­ figurationsdaten einschließlich EISA-Informationen in einem Be­ reich eines nicht-flüchtigen Speichers gespeichert und aktuali­ siert werden.
In der gleichen Weise, wie EISA-Konfigurationsdaten in dem Flash-Speicher gehalten werden, können andere Informationsar­ ten, Verarbeitungslogik oder Daten in dem nicht-flüchtigen Speicher gesichert werden. Diese anderen Informationsarten sind beispielsweise andere Busprotokollinformationen, Netzwerkinfor­ mationen und/oder Computersystemindentifikationsnummern. Ver­ schiedene Typen von Identifikationsnummern müssen für individu­ elle Computersysteme zurückgehalten werden. Eine dieser Nummern ist die Ethernet-Adresse. Ethernet ist eine bekannte Netz­ werkarchitektur und ein Protokoll, für welches eine einmalige Netzwerkadresse in jedem Computersystem gespeichert werden muß. Bei bekannten Systemen ist eine einmalige Hardware-Baugruppe in jedem Computer installiert, die die Ethernet-Adresse für dieses System enthält. Wie in Fig. 2 gezeigt, kann die einmalige Eh­ ternet-Adresse in einer Seite des Flash-Speichers, wie bei­ spielsweise dem Bereich 306 der statischen Seite 2, ohne die Notwendigkeit einer einmaligen Hardware gespeichert werden. Der geschützte Bereich 306 der statischen Seite 2 kann nicht ge­ löscht oder verändert werden, wenn das Gerät einmal installiert wurde; folglich kann die Ethernet-Adresse nicht zerstört wer­ den. In ähnlicher Weise können andere Computersystemidentifika­ tionsnummern, wie beispielsweise einmalige Seriennummern, Lei­ terplattenbaugruppennummern oder Lizenznummern des Betriebssy­ stems in einem Bereich des Flash-Speichers gespeichert werden.
TEIL 1 - Seitenauswahl-Befehlscode:

Claims (15)

1. Speicherseitenwechselsystem in einem Computersystem mit einem Prozessor (101) und einem nicht-flüchtigen Spei­ cher (103) und
mit einer mit dem Prozessor (101) gekoppelten Seitenaus­ wahleinrichtung (214) zum Auswählen einer Seite aus einer Mehrzahl von Seiten (301-304) in dem nicht-flüchtigen Spei­ cher (103) und
einem mit der Seitenauswahleinrichtung (214) und dem Prozessor (101) gekoppelten Seitendecodierer (217) zum Emp­ fangen von an den nicht-flüchtigen Speicher gerichteten Adreßsignalen und zum Modifizieren der Adreßsignale zum Zu­ greifen auf die ausgewählte Seite, dadurch gekennzeichnet, daß eine Seitenwechsel-Verarbeitungslogik (315, 310, 312) in jeder auslagerbaren Seite (301, 303, 304) der Mehrzahl von Seiten des nicht-flüchtigen Speichers (103) abarbeitbar und durch den Prozessor (101) ausführbar angeordnet ist, wobei die Seitenwechsel-Verarbeitungslogik (315, 310, 312) zum Frei­ geben der Seitenauswahleinrichtung derart, daß ein Zugriff auf die ausgewählte Seite durch den Prozessor gestattet wird, und zum Steuern eines Prozessor-Zugriffs innerhalb der ausgewählten Seite dient, und wobei die Seitenwechsel-Verar­ beitungslogik innerhalb jeder auslagerbaren Seite (301, 303, 304) an einer relativ zu dieser Seite festen Adresse angeordnet ist.
2. Speicherseitenwechselsystem nach Anspruch 1, dadurch gekennzeichnet, daß wenigstens eine Seite (302) der Mehrzahl von Seiten in dem nicht-flüchtigen Speicher (103) nicht aus­ lagerbar ist und keine Seitenwechsel-Verarbeitungslogik ent­ hält.
3. Speicherseitenwechselsystem nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die Seitenwechsel-Verarbeitungs­ logik eine auf eine Kommandoeingabe von einer mit dem Pro­ zessor (101) gekoppelten Eingabeeinrichtung (104) anspre­ chende Verarbeitungslogik enthält, wobei die Kommandoeingabe eine Seitenauswahl anzeigt.
4. Speicherseitenwechselsystem nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß wenigstens eine Seite der Mehrzahl von Seiten Konfigurationsinformationen enthält.
5. Speicherseitenwechselsystem nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß zumindest eine der Sei­ ten Konfigurationsinformationen eines mit dem Mikroprozessor (101) gekoppelten Bussystems (100), beispielsweise Informa­ tionen über ein EISA-System, enthält.
6. Speicherseitenwechselsystem nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß zumindest eine der Sei­ ten eine Seriennummer enthält.
7. Speicherseitenwechselsystem nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß der nicht-flüchtige Speicher (103) eine Flash-Speichereinrichtung umfaßt.
8. Speicherseitenwechselsystem nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß die Seitenauswahlein­ richtung ein programmierbares Seitenregister (214) ist.
9. Speicherseitenwechselsystem nach einem der Ansprüche 1 bis 8, dadurch gekennzeichnet, daß der Seitendecodierer (217) ein Teil der höher bewerteten Bits des Adreßsignals empfängt und diese durch andere, der ausgewählten Seite ent­ sprechende Bits ersetzt.
10. Speicherseitenwechselsystem nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß der nicht-flüchtige Speicher Seiten mit einer BIOS-Verarbeitungslogik enthält.
11. Speicherseitenwechselsystem nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, daß der nicht-flüchtige Speicher (103) programmierbar ist.
12. Speicherseitenwechselsystem nach Anspruch 11, da­ durch gekennzeichnet, daß in der ausgewählten Seite Verar­ beitungslogik zum Ändern des Inhalts des programmierbaren nicht-flüchtigen Speichers (103) enthalten ist.
13. Verfahren für einen Seitenwechsel in einem nicht- flüchtigen Speicher (103) eines Computersystems mit einem Prozessor (101), wobei
eine einem Bereich in dem nicht-flüchtigen Speicher ent­ sprechende Seite des nicht-flüchtigen Speichers ausgewählt wird, wobei die Seite als auslagerbare oder als nicht-ausla­ gerbare Seite vordefiniert wurde,
von dem Prozessor an den nicht-flüchigen Speicher ge­ richtete Adreßsignale empfangen werden,
die Adreßsignale für ein Zugreifen auf eine ausgewählte auslagerbare Seite modifiziert werden, indem eine vorgege­ bene Anzahl der empfangenen Adreßsignale durch einen Adreß­ wert der ausgewählten Seite ersetzt werden, wobei beim Modi­ fizieren auf Auslagerungslogik zum Steuern eines Zugriffs auf die ausgewählte Seite zugegriffen wird, wobei die Ausla­ gerungslogik innerhalb der ausgewählten Seite angeordnet ist, und
die Modifikation des Adreßsignals verhindert wird, wenn eine nicht-auslagerbare Seite ausgewählt wurde.
14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, daß der Inhalt einer Seite des nicht-flüchtigen Speichers unter Verwendung einer Aktualisierungsverarbeitungslogik aktualisiert wird, wobei die Aktualisierungsverarbeitungslo­ gik in dem nicht-flüchtigen Speicher gespeichert wurde und wobei der aktualisierte Inhalt der Seite bei einem Abschal­ ten des nicht-flüchtigen Speichers erhalten bleibt.
15. Verfahren nach Anspruch 13 oder 14, dadurch gekenn­ zeichnet, daß beim Auswählen einer Seite des nichtflüchti­ gen Speichers ein programmierbares Seitenregister geladen wird.
DE4215063A 1991-05-10 1992-05-07 Einrichtung und Verfahren zum Seitenwechsel bei einem nicht-flüchtigen Speicher Expired - Fee Related DE4215063C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US69831891A 1991-05-10 1991-05-10

Publications (2)

Publication Number Publication Date
DE4215063A1 DE4215063A1 (de) 1992-11-12
DE4215063C2 true DE4215063C2 (de) 1999-11-25

Family

ID=24804755

Family Applications (1)

Application Number Title Priority Date Filing Date
DE4215063A Expired - Fee Related DE4215063C2 (de) 1991-05-10 1992-05-07 Einrichtung und Verfahren zum Seitenwechsel bei einem nicht-flüchtigen Speicher

Country Status (3)

Country Link
US (2) US5371876A (de)
JP (1) JPH05165706A (de)
DE (1) DE4215063C2 (de)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1254937B (it) * 1991-05-06 1995-10-11 Aggiornamento dinamico di memoria non volatile in un sistema informatico
US6230233B1 (en) 1991-09-13 2001-05-08 Sandisk Corporation Wear leveling techniques for flash EEPROM systems
US5519843A (en) * 1993-03-15 1996-05-21 M-Systems Flash memory system providing both BIOS and user storage capability
US5388083A (en) * 1993-03-26 1995-02-07 Cirrus Logic, Inc. Flash memory mass storage architecture
JPH07114497A (ja) * 1993-10-14 1995-05-02 Hitachi Ltd 半導体集積回路装置
US6002856A (en) * 1993-10-14 1999-12-14 Hitachi, Ltd. Semiconductor integrated circuit device
US5577221A (en) * 1994-04-14 1996-11-19 Industrial Technology Research Institute Method and device for expanding ROM capacity
KR0172001B1 (ko) * 1995-12-05 1999-03-30 윤종용 바이오스 메모리의 재프로그램 장치 및 그 방법
US5822581A (en) * 1995-09-29 1998-10-13 Intel Corporation Method for CMOS configuration information storage and retrieval in flash
FR2740237B1 (fr) * 1995-10-18 1997-11-14 Schlumberger Ind Sa Composant electronique a memoire synchronisee
US5867641A (en) * 1995-10-27 1999-02-02 Scm Microsystems (U.S.) Inc. Flash translation layer cleanup system and method
US5829013A (en) 1995-12-26 1998-10-27 Intel Corporation Memory manager to allow non-volatile memory to be used to supplement main memory
GB9606928D0 (en) * 1996-04-02 1996-06-05 Memory Corp Plc Memory devices
US5860139A (en) * 1996-06-11 1999-01-12 Data General Corporation BIOS memory address decoder for providing an extended BIOS memory address space by reclaiming a portion of non-BIOS address space
US5930504A (en) * 1996-07-22 1999-07-27 Intel Corporation Dynamic nonvolatile memory update in a computer system
GB2317720A (en) * 1996-09-30 1998-04-01 Nokia Mobile Phones Ltd Managing Flash memory
GB2317721B (en) * 1996-09-30 2001-09-12 Nokia Mobile Phones Ltd Memory device
US5938764A (en) * 1996-10-23 1999-08-17 Micron Electronics, Inc. Apparatus for improved storage of computer system configuration information
US5826074A (en) * 1996-11-22 1998-10-20 S3 Incorporated Extenstion of 32-bit architecture for 64-bit addressing with shared super-page register
JPH10154101A (ja) * 1996-11-26 1998-06-09 Toshiba Corp データ記憶システム及び同システムに適用するキャッシュ制御方法
US6311290B1 (en) 1997-02-14 2001-10-30 Intel Corporation Methods of reliably allocating, de-allocating, re-allocating, and reclaiming objects in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6182188B1 (en) * 1997-04-06 2001-01-30 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US5987581A (en) * 1997-04-02 1999-11-16 Intel Corporation Configurable address line inverter for remapping memory
US6088759A (en) 1997-04-06 2000-07-11 Intel Corporation Method of performing reliable updates in a symmetrically blocked nonvolatile memory having a bifurcated storage architecture
US6748524B1 (en) 1997-04-30 2004-06-08 Gateway, Inc. Display and recordation of non-volatile memory changes
KR100506268B1 (ko) * 1997-08-30 2005-09-30 삼성전자주식회사 플래시 메모리를 제어하는 회로
US6438687B2 (en) 1997-10-30 2002-08-20 Micron Technology, Inc. Method and apparatus for improved storage of computer system configuration information
US6119226A (en) * 1998-01-06 2000-09-12 Macronix International Co., Ltd. Memory supporting multiple address protocols
US6272576B1 (en) 1998-01-20 2001-08-07 Micron Technology, Inc. Method for extending the available number of configuration registers
US6058463A (en) * 1998-01-20 2000-05-02 Motorola, Inc. Paged memory data processing system with overlaid memory control registers
US6108733A (en) * 1998-01-20 2000-08-22 Micron Technology, Inc. Method for extending the available number of configuration registers
US6243775B1 (en) 1998-01-20 2001-06-05 Micron Technology, Inc. System for extending the available number of configuration registers
US6040997A (en) * 1998-03-25 2000-03-21 Lexar Media, Inc. Flash memory leveling architecture having no external latch
IL124571A0 (en) * 1998-05-21 1998-12-06 Miki Mullor Method of restricting software operation within a licensed limitation
US6205548B1 (en) * 1998-07-31 2001-03-20 Intel Corporation Methods and apparatus for updating a nonvolatile memory
US6282647B1 (en) * 1999-06-02 2001-08-28 Adaptec, Inc. Method for flashing a read only memory (ROM) chip of a host adapter with updated option ROM bios code
US6374338B1 (en) * 1999-06-25 2002-04-16 International Business Machines Corporation Method for performing configuration tasks prior to and including memory configuration within a processor-based system
US6775757B1 (en) * 1999-12-14 2004-08-10 Genesis Microchip Inc. Multi-component processor
US20020071560A1 (en) * 2000-12-12 2002-06-13 Kurn David Michael Computer system having an autonomous process for centralized cryptographic key administration
US6832301B2 (en) * 2001-09-11 2004-12-14 International Business Machines Corporation Method for recovering memory
US7234052B2 (en) * 2002-03-08 2007-06-19 Samsung Electronics Co., Ltd System boot using NAND flash memory and method thereof
US7305668B2 (en) * 2002-07-31 2007-12-04 Intel Corporation Secure method to perform computer system firmware updates
JP4518951B2 (ja) * 2002-10-28 2010-08-04 サンディスク コーポレイション 不揮発性記憶システムにおける自動損耗均等化
TWI266240B (en) * 2003-05-20 2006-11-11 Via Tech Inc A method preventing to re-write MAC address of DMI's peripheral devices
US7424603B2 (en) * 2003-12-18 2008-09-09 Intel Corporation Method and apparatus to store initialization and configuration information
US10013536B2 (en) * 2007-11-06 2018-07-03 The Mathworks, Inc. License activation and management
TW201236018A (en) * 2011-02-25 2012-09-01 Wistron Corp Memory initialization method and serial peripheral interface using the same
US9201810B2 (en) 2012-01-26 2015-12-01 Microsoft Technology Licensing, Llc Memory page eviction priority in mobile computing devices
CN109871001B (zh) * 2019-03-06 2023-04-18 普华基础软件股份有限公司 一种对发动机大数据量标定的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4443847A (en) * 1981-02-05 1984-04-17 International Business Machines Corporation Page addressing mechanism

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4298949A (en) * 1976-08-16 1981-11-03 Texas Instruments Incorporated Electronic calculator system having high order math capability
US4290104A (en) * 1979-01-02 1981-09-15 Honeywell Information Systems Inc. Computer system having a paging apparatus for mapping virtual addresses to real addresses for a memory of a multiline communications controller
US4374417A (en) * 1981-02-05 1983-02-15 International Business Machines Corp. Method for using page addressing mechanism
US4441155A (en) * 1981-11-23 1984-04-03 International Business Machines Corporation Page controlled cache directory addressing
US4608632A (en) * 1983-08-12 1986-08-26 International Business Machines Corporation Memory paging system in a microcomputer
US4799145A (en) * 1985-04-03 1989-01-17 Honeywell Bull Inc. Facility for passing data used by one operating system to a replacement operating system
CA1242809A (en) * 1985-12-20 1988-10-04 Mitel Corporation Data storage system
US4763333A (en) * 1986-08-08 1988-08-09 Universal Vectors Corporation Work-saving system for preventing loss in a computer due to power interruption
US4831522A (en) * 1987-02-17 1989-05-16 Microlytics, Inc. Circuit and method for page addressing read only memory
US4862349A (en) * 1987-10-19 1989-08-29 International Business Machines Corporation Method for extracting and/or replacing control system information in a computer operating system
US5053990A (en) * 1988-02-17 1991-10-01 Intel Corporation Program/erase selection for flash memory
GB8825764D0 (en) * 1988-11-03 1988-12-07 Lucas Ind Plc Computer memory addressing system
US5142680A (en) * 1989-04-26 1992-08-25 Sun Microsystems, Inc. Method for loading an operating system through a network
US5136713A (en) * 1989-08-25 1992-08-04 International Business Machines Corporation Apparatus and method for decreasing the memory requirements for bios in a personal computer system
US5210875A (en) * 1989-08-25 1993-05-11 International Business Machines Corporation Initial bios load for a personal computer system
US5126808A (en) * 1989-10-23 1992-06-30 Advanced Micro Devices, Inc. Flash EEPROM array with paged erase architecture
US5134580A (en) * 1990-03-22 1992-07-28 International Business Machines Corporation Computer with capability to automatically initialize in a first operating system of choice and reinitialize in a second operating system without computer shutdown

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4443847A (en) * 1981-02-05 1984-04-17 International Business Machines Corporation Page addressing mechanism

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DE-Z: c't, Heft 4, April 1987, S. 130, 132-135 *

Also Published As

Publication number Publication date
US5479639A (en) 1995-12-26
US5371876A (en) 1994-12-06
DE4215063A1 (de) 1992-11-12
JPH05165706A (ja) 1993-07-02

Similar Documents

Publication Publication Date Title
DE4215063C2 (de) Einrichtung und Verfahren zum Seitenwechsel bei einem nicht-flüchtigen Speicher
DE69521113T2 (de) Vorrichtung und Verfahren zur Stromversorgungsausfallbeständige Aktualisierung eines Flash-EEPROM-Speichers
DE69803304T2 (de) Hardwareunterstütztes verfahren zum kontextwechsel
DE3689961T2 (de) Verfahren zur Verarbeitung von Unterbrechungen in einem digitalen Rechnersystem.
DE69227774T2 (de) Speicherverwaltungsverfahren
DE3786660T2 (de) Computersystem mit einer CPU mit zwei gegenseitig inkompatiblen Adressiermoden.
DE10085013B3 (de) Anordnen von in nicht-flüchtigen wiederprogrammierbaren Halbleiterspeichern gespeicherten Informationen
DE69723286T2 (de) Echtzeitprogramm-sprachbeschleuniger
DE10085374B4 (de) Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem
DE4312250B4 (de) 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
DE4331703C2 (de) Elektronische Einrichtung
DE4214184A1 (de) Computersystem mit einem nicht-fluechtigen speicher und verfahren zu dessen aktualisierung
DE2417795C2 (de) Datenverarbeitungsanlage
DE3131341A1 (de) "pufferspeicherorganisation"
DE68923433T2 (de) Einrichtung und Methode um Festwertspeicher in einem Rechnerspeicherbereich anzuordnen.
DE2515696A1 (de) Anordnung zum selektiven loeschen von teilen beziehungsweise zum ersatz von daten in einem cache-speicher
DE68924719T2 (de) Vorrichtung und Verfahren zur Ausführung eines Unterprogramms in einem Datenverarbeitungssystem mit Blockumschaltung.
DE68929080T2 (de) Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor
DE69816775T2 (de) Vorrichtung zur datenverarbeitung mit stapelstruktur
DE69524379T2 (de) Verarbeitungssystem mit ausgerichtetem wortverzweigungsziel
DE2744359C2 (de)
WO2002019264A1 (de) Verfahren zur virtuellen vergrösserung des stacks eines tragbaren datenträgers
DE68922521T2 (de) Sekundärprozessorinitialisierungssystem.
DE68925376T2 (de) In Direktabbildung und in Bankabbildung wirksamer Informationsprozessor und Verfahren zum Schalten der Abbildungsschemas
DE4238099A1 (de)

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
D2 Grant after examination
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee