DE69521113T2 - Vorrichtung und Verfahren zur Stromversorgungsausfallbeständige Aktualisierung eines Flash-EEPROM-Speichers - Google Patents

Vorrichtung und Verfahren zur Stromversorgungsausfallbeständige Aktualisierung eines Flash-EEPROM-Speichers

Info

Publication number
DE69521113T2
DE69521113T2 DE69521113T DE69521113T DE69521113T2 DE 69521113 T2 DE69521113 T2 DE 69521113T2 DE 69521113 T DE69521113 T DE 69521113T DE 69521113 T DE69521113 T DE 69521113T DE 69521113 T2 DE69521113 T2 DE 69521113T2
Authority
DE
Germany
Prior art keywords
block
memory
boot
address space
primary
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
DE69521113T
Other languages
English (en)
Other versions
DE69521113D1 (de
Inventor
Marvin D. Nelson
Barry J. Oldfield
Mark D. Petersen
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE69521113D1 publication Critical patent/DE69521113D1/de
Application granted granted Critical
Publication of DE69521113T2 publication Critical patent/DE69521113T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Read Only Memory (AREA)
  • Memory System (AREA)

Description

    GEBIET DER ERFINDUNG
  • Diese Erfindung bezieht sich allgemein auf Halbleiterbauelemente und insbesondere auf das Aktualisieren der Firmware in einem elektrisch löschbaren programmierbaren Flash-Nur-Lese-Speicher (EEPROM; EEPROM = flash electrically erasable programmable read only memory).
  • HINTERGRUND DER ERFINDUNG
  • Speichervorrichtungen und Mikroprozessoren sind Schlüsselelemente in der Computertechnologie. Wenn einem Computersystem Leistung zu Beginn zugeführt wird, ist insbesondere ein Mikroprozessor eine Komponente, die die Leistung empfängt und ansprechend darauf in einer spezifizierten Speicheradresse in einer nicht-flüchtigen Speichervorrichtung nach Vorabbefehlen nachsieht, um dieselben auszuführen und dadurch funktionsmäßig betreibbar zu werden. Dieser Prozeß ist allgemein als ein "Hochfahr"- bzw. "Boot"-Prozeß bekannt. Der Mikroprozessor "fährt" nämlich auf eine Leistungsinitialisierung hin von einem Nichtfunktionsmodus zu einem Betriebsmodus hoch, indem derselbe wesentliche Grundbefehle (Firmware), die in einer nicht-flüchtigen Speichervorrichtung gespeichert sind, liest und ausführt.
  • Eine EEPROM- (EEPROM = electrically erasable programmable read only memory) Vorrichtung ist ein nicht-flüchtiger Speicher, der üblicherweise zum Speichern von Firmware (Code) verwendet wird, um einen Mikroprozessor hochzufahren. Ein Flash-EEPROM ermöglicht, daß sein gesamter Speicher in einem einzigen Schritt gelöscht werden kann. In den letzten Jahren sind Flash-EEPROMs mit Eigenschaften zum selektiven Löschen/Schreiben von Blöcken weithin verfügbar geworden, die es ermöglichen, daß adreßspezifische Blöcke in dem EEPROM selektiv gelöscht und/oder geschrieben werden.
  • Der Flash-EEPROM ist insbesondere bei Computersystemen nützlich gewesen, da die Firmware bei Bedarf ohne die Notwendigkeit für eine physische Ersetzung eines gesamten Speicherchips, wie z. B. eines Nur-Lese-Speichers (ROM), gelöscht und aktualisiert werden kann. Das in der Lage Sein, die Firmware durch Herunterladen des Codes in den EEPROM zu aktualisieren, vereinfacht nicht nur die Firmwareaktualisierungen und reduziert nicht nur die Kosten derselben (d. h. keine Notwendigkeit, den ganzen Chip zu ersetzen), sondern erhöht ferner die Zuverlässigkeit des Produkts, das den EEPROM unterbringt, da keine Sockel für eine Chipersetzung erforderlich sind.
  • Während eines Firmwareaktualisierungsprozesses ist jedoch das Produkt anfällig auf Unterbrechungen während der Zeitdauer, da der Flash-EEPROM gelöscht wird. Falls nämlich die Boot- bzw. Hochfahrfirmware in Vorbereitung auf das Schreiben einer neuen Firmware (des Upgrades bzw. der Aktualisierung) gelöscht wird und ein Leistungsausfall oder eine andere Unterbrechung zu just diesem Zeitpunkt auftritt, kann der Aktualisierungsprozeß nicht abgeschlossen werden und das Produkt wird im wesentlichen unbrauchbar hinterlassen, d. h. ohne die ursprüngliche Firmware und ohne die aktualisierte Firmware. Sobald die Hochfahrfirmware gelöscht ist, weist das System (der Mikroprozessor) keinen Zugriff mehr auf Befehle zur Hochfahrausführung auf und ist sich selbst überlassen, um eine andere Tätigkeit auszuführen, wie z. B. das Herunterladen einer neuen Firmware.
  • Gegenwärtige Produkte auf dem Markt begegnen dem Problem eines möglichen Leistungsausfalls während einer Firmwareaktualisierung auf eine von mehreren Art und Weisen. Es kann beispielsweise ein zusätzlicher Hochfahr- bzw. Boot-ROM verwendet werden, um einen minimalen Satz von Code zu enthalten, der erforderlich ist, um das Produkt für eine Flash-EEPROM- Aktualisierung bereit machen zu können. Dies fügt jedoch dem Produkt eine Aufwand- und Software-Komplexität hinzu. Zusätzlich muß der Hochfahr-ROM aufgrund von Erfordernissen, die demselben durch die meisten Mikroprozessorarchitekturen auferlegt werden, häufig zusammen mit der Firmwareaktualisierung des EEPROM physisch aktualisiert werden.
  • Ein alternatives Verfahren, um Unterbrechungen während einer EEPROM-Aktualisierung zu handhaben, besteht einfach darin, den Benutzer zu warnen, daß, falls solche auftreten, das Produkt für eine Reparatur zurück zur Fabrik gebracht werden muß.
  • Es ist offensichtlich, daß diese Lösungen viel zu wünschen übrig lassen. Dementsprechend bestehen Aufgaben der vorliegenden Erfindung darin, ein System und ein Verfahren zum Durchführen von leistungsausfallbeständigen Flash-EEPROM-Aktualisierungen zu schaffen, ohne einen zusätzlichen Hochfahr-ROM zu erfordern.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß den Grundsätzen der vorliegenden Erfindung bei ihrem bevorzugten Ausführungsbeispiel wird die System- (Mikroprozessor-) Hochfahrfirmware innerhalb getrennt löschbarer/beschreibbarer Blöcke eines Flash-EEPROM manipuliert, wobei eine nicht-flüchtige Speicherbitschaltung verwendet wird, um zu erzwingen, daß eine Manipulierung des Hochfahr- bzw. Bootadreßraumes, der den Blöcken zugeordnet ist, eine leistungsausfallbeständige Flash-Aktualisierung für den EEPROM liefert, ohne daß ein getrennter Hochfahr-ROM erforderlich ist. Bei dem bevorzugten Ausführungsbeispiel ist die Speicherbitschaltung ein Flip-Flop.
  • Während einer Firmwareaktualisierung bei dem EEPROM wird ein anderer Block als der Primärhochfahr- bzw. -bootblock in dem EEPROM gelöscht und als ein alternativer Hochfahr- bzw. Bootblock bestimmt. Die Primärhochfahrblockfirmware wird daraufhin in den alternativen Hochfahrblock kopiert, wobei die nicht-flüchtige Speicherbitschaltung eingestellt wird, um zu bewirken, daß der alternative Hochfahrblock aus der Sicht des Mikroprozessors in dem Adreßraum des Primärhochfahrblocks erscheint. Der Primärhochfahrblock wird daraufhin gelöscht, wobei in denselben neue Firmwareinformationen eingebrannt werden. Die Speicherbitschaltung wird daraufhin neu eingestellt, um zu ermöglichen, daß der Primärhochfahrblock wieder in seinem korrekten Adreßraum erscheint, und der alternative Hochfahrblock wird mit seinen neuen Firmwareinformationen aktualisiert.
  • Diese Aufgaben werden in vorteilhafter Art und Weise im wesentlichen dadurch gelöst, daß die Merkmale, die in den unabhängigen Ansprüchen offengelegt sind, angewendet werden. Weitere Verbesserungen werden durch die Unteransprüche geliefert.
  • Dieses System und Verfahren liefert das Zurückhalten der Primärhochfahrfirmware in einem EEPROM während einer Aktualisierung, so daß, falls ein Leistungsausfall während der Aktualisierung auftritt, die Primärhochfahrinformationen in dem EEPROM immer noch verfügbar sind. Dies beseitigt die Notwendigkeit für einen getrennten Hochfahr-ROM, der in dem Fall eines Leistungsausfalls normalerweise Primärhochfahrinformationen enthalten würde, wie es beispielsweise bei dem System der Fall ist, das in dem Dokument DE-A-4214184 offenbart ist.
  • Weitere Aufgaben, Vorteile und Fähigkeiten der vorliegenden Erfindung werden sich im Laufe der Beschreibung ergeben.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1A ist ein Blockdiagramm, das eine Speicheradressierung für einen Systemhochfahrvorgang von einem Primärhochfahrblock aus basierend auf einem ersten Zustandssignal von einer nicht-flüchtigen Speicherbitschaltung darstellt.
  • Fig. 1B ist ein Blockdiagramm, das eine Speicheradressierung für einen Systemhochfahrvorgang von einem alternativen Hochfahrblock aus basierend auf einem zweiten Zustandssignal von einer nicht-flüchtigen Speicherbitschaltung darstellt.
  • Fig. 2 ist ein Flußdiagramm, das die Schritte darstellt, die für Hochfahrblock- und Speicheradreßraum- Manipulierungen während einer Firmwareaktualisierung befolgt werden.
  • Fig. 3 ist eine Tabelle, die darstellt, wie ein oberes Bit invertiert wird, um zu bewirken, daß ein alternativer Hochfahrblock in dem Adreßraum des Primärhochfahrblocks erscheint.
  • Fig. 4A sind Blockdiagramme, die die verschiedenen Stufen bis 4J der Hochfahrblock- und Speicheradreß-Manipulierungen während einer Firmwareaktualisierung darstellen.
  • DETAILLIERTE BESCHREIBUNG DER ERFINDUNG
  • Fig. 1A-1B sind Systemblockdiagramme die eine Hochfahrblockspeicheradreßbearbeitung bzw. -manipulierung basierend auf dem Zustand einer nicht-flüchtigen Speicherbitschaltung gemäß der vorliegenden Erfindung darstellen. Fig. 1A zeigt die normale Speicheradressierung für einen Systemhochfahrvorgang von dem Primärhochfahrblock aus, während Fig. 1B die relative Speicheradressierung für einen Hochfahrvorgang von dem alternativen Hochfahrblock aus zeigt. Gleiche Komponenten in allen Figuren werden mit gleichen Bezugszeichen identifiziert.
  • Bezugnehmend auf Fig. 1A ist ein erster Speicher 10 ein nicht-flüchtiger, elektrisch löschbarer, programmierbarer Flash-Nur-Lese-Speicher (EEPROM) mit getrennt löschbaren/beschreibbaren Blöcken 0-3. Jeder Block umfaßt 256K Bytes eines adressierbaren Speichers. Es wird darauf hingewiesen, daß, obwohl bei dieser Darstellung der Speicher 10 vier Blöcke zu je 256K Bytes aufweist, gemäß den Grundsätzen der vorliegenden Erfindung anders proportionierte Speicherblöcke gleichfalls verwendbar sind. Allgemein enthalten die EEPROMs nicht Blöcke mit gleicher Größe. Die Blöcke können jedoch normalerweise in einer Form kombiniert werden, die das Erscheinungsbild von zwei oder mehreren logischen Blöcken mit gleicher Größe ermöglicht. Der Block 0 kann beispielsweise in Wirklichkeit in getrennt unterscheidbare und unterschiedlich proportionierte Blöcke weiter unterteilt sein. Andererseits kann der Speicher 10 als ein Ganzes überhaupt in wenige oder größere Blöcke unterteilt sein. Unabhängig von der physischen Größe und dem Aufbau des Speichers 10 ist es für diese Erfindung jedoch lediglich erforderlich, daß derselbe zumindest zwei getrennt löschbare/beschreibbare Blöcke aufweist.
  • Obwohl bei dem bevorzugten Ausführungsbeispiel der Speicher 10 eine einzige EEPROM-Vorrichtung mit mehreren selektiv löschbaren/beschreibbaren Blöcken ist, könne der Speicher 10 gleichermaßen eine Bank aus getrennt adressierbaren EEPROM-Vorrichtungen sein, wobei jede Vorrichtung selektiv löschbare/beschreibbare Blöcke aufweisen oder nicht aufweisen kann. In diesem Fall würde jede getrennte Vorrichtung als ein getrennt löschbarer/beschreibbarer Block bei dem beschriebenen Speicher 10 wirken. Dementsprechend könnte der Speicher 10 gleichermaßen ein Direktzugriffsspeicher (RAM; RAM = random access memory) sein, der durch eine gewisse Form der Leistungszufuhrsicherung nicht-flüchtig gemacht ist (NVRAM; NVRAM = non-volatile random access memory = nichtflüchtiger Direktzugriffsspeicher). In dem Fall, daß ein NVRAM verwendet wird, findet der Schritt des Löschens eines Blocks von Daten in dem selben Schritt wie das Schreiben der Daten zu dem Speicher statt, wenn ein solcher auftritt.
  • Der Block 0 ist der Primärhochfahrblock für ein Mikroprozessor- (Prozessor-) System 20 und ist an einem Primäradreßraum adressierbar. Primärhochfahrblock bedeutet, daß der Prozessor 20 auf einen Leistungsaufbau oder eine Leistungsinitialisierung hin zur Primärhochfahrfirmwareausführung in dem Primäradreßbereich, der dem Block 0 zugeordnet ist, nachschaut. Der Primärhochfahrblock muß den Teilsatz der Firmwarefunktionalität enthalten, der erforderlich ist, um den Prozessor in einen Betriebszustand zu versetzen, der ausreicht, um eine Aktualisierung durchzuführen.
  • Der Block 2 ist der alternative Hochfahrblock und ist an einem alternativen Adreßraum adressierbar. Der Block 2 wird als der alternative Hochfahrblock identifiziert, da gemäß den Grundsätzen der vorliegenden Erfindung die Hochfahrfirmware, die sich im allgemeinen in dem Primärhochfahrblock befindet, während einer Aktualisierung der Firmware in diesen alternativen Hochfahrblock kopiert wird, um eine leistungsausfallbeständige Aktualisierung zu liefern. Der Block 2 enthält normalerweise keine Hochfahrfirmware, sondern enthält üblicherweise eine andere Firmware, die für die Funktionszwecke des Prozessors 20 notwendig sind.
  • Entsprechend dem normalen (Nichtaktualisierungs-) Zustand des Blocks 2 enthalten die Blöcke 1 und 3 Firmware, die für die Funktionszwecke des Prozessors notwendig sind. Für dieses Beispiel wird der Adreßbereich 00000000-000FFFFF verwendet werden, um die Blöcke 0-3 zu beschreiben. Ferner sucht bei diesem Beispiel der Prozessor 20 nach seinen Primärhochfahrinformationen beginnend mit der Adresse 0. Diese Erfindung könnte jedoch ohne weiteres an Prozessorarchitekturen angepaßt werden, die nach den Anfangshochfahrbefehlen in anderen Speicherpositionen suchen.
  • Eine Logikschaltungsanordnung XOR 30 ist ein Exklusiv- ODER-Gatter mit zwei Eingängen. Ein Eingang wird durch ein Adreßbit 32 getrieben, während der andere Eingang durch eine nicht-flüchtige Speicherbitschaltung 40 getrieben wird. Das XOR-Gatter liefert die Möglichkeit, Adreßbits je nach Notwendigkeit zu invertieren oder nicht zu invertieren. Es existiert ein XOR-Gatter an jeder Adreßleitung, die invertiert werden soll. Bei diesem bevorzugten Ausführungsbeispiel weist lediglich die Leitung 32 des höchstwertigen Adreßbits ein XOR-Gatter auf. Die anderen Adreßbitleitungen 34 sind zur Adressierung des Speichers 10 auf eine normale Art und Weise kommunikativ zwischen den Prozessor 20 und den Speicher 10 geschaltet.
  • Die nicht-flüchtige Speicherbitschaltung 40 (hierin als nf- Speicherbit bezeichnet) ist eine nicht-flüchtige Einbitsignal-Speicherschaltung, wie z. B. ein Flip-Flop, die in der Lage ist, eingestellt bzw. gesetzt und/oder neueingestellt bzw. rückgesetzt zu werden. Bei dieser Darstellung ist das nf-Speicherbit 40 in einen ersten Zustand (eine logische 0) neu eingestellt. Der erste Zustand wird als eine logische 0 dargestellt, aber derselbe könnte gleichermaßen eine logische 1 sein, falls dies so gewählt wird. In diesem Zustand ist das Eingangssignal des XOR-Gatters, das durch das nf-Speicherbit 40 getrieben wird, derart eingestellt, daß das Adreßbit 32 nicht invertiert wird.
  • Während sich das nf-Speicherbit 40 in dem ersten Zustand befindet, greift der Prozessor 20 normal auf den Speicher zu. Auf den Block 0 wird nämlich mit dem Primäradreßraum als dem Primärhochfahrblock Bezug genommen, wobei die Hochfahrfirmware auf eine Initialisierung des Prozessors 20 hin von dort aus ausgeführt wird.
  • Der Prozessor 20 ist in der Lage, das nf-Speicherbit 40 einzustellen und/oder neu einzustellen, wie es bei 36 gezeigt ist, und ist ferner in der Lage, den Zustand des nf-Speicherbits 40 zu erfassen, wie es bei 38 gezeigt ist. Der Prozessor 20 ist zu diesen Funktionen in der Lage, so daß derselbe den Zustand einer Firmwareaktualisierung bestimmen kann, und bestimmen kann, ob die Aktualisierung unterbrochen wurde oder nicht. Während einer Aktualisierung führt der Prozessor nämlich einen Code aus, der zum Einstellen und/oder Neueinstellen des nf-Speicherbits 40 auf einen geeigneten Zustand notwendig ist. Dementsprechend erfaßt der Prozessor 20 den Zustand des nf-Speicherbits 40, um zu bestimmen, wie derselbe mit darauffolgenden Aktualisierungen fortschreiten soll, d. h. ob während einer vorhergehenden Aktualisierung eine Unterbrechung auftrat oder nicht auftrat. Folglich bestimmt der Prozessor, ob derselbe auf den Primärhochfahrblock oder einen alternativen Hochfahrblock des Speichers 10 schaut.
  • Bezugnehmend auf Fig. 1B ist das nf-Speicherbit 40 in einem zweiten Zustand (der logischen 1) gezeigt, wobei der Speicher 10 derart gezeigt ist, daß der Block 2 desselben dem Primärhochfahradreßraum für Hochfahrzwecke zugeordnet ist und nicht der Block 0. Folglich ist nun (aus der Sicht des Prozessors 20) der Block 2 für Hochfahrzwecke mit der Primäradresse 00000000-0003FFFF hex adressierbar, während der Block 0 mit der alternativen Adresse 00080000-000BFFFF hex adressierbar ist.
  • Obwohl sich die Blöcke nicht in Wirklichkeit physisch relativ zueinander bewegen, und obwohl sich die wahren Adreßräume, die jedem Block zugeordnet sind, in Wirklichkeit nicht ändern, sind die Adreßräume derart gezeigt, daß sich dieselben "geändert" haben, um die Idee zu veranschaulichen, daß aus der Sicht des Prozessors 20 der Primäradreßraum zum Ausführen von Hochfahrbefehlen nunmehr dem Firmwareinhalt des Blocks 2 und nicht demjenigen des Blocks 0 zugeordnet ist (obwohl der Prozessor 20 in Wirklichkeit die Blöcke nicht erkennt oder voneinander unterscheidet).
  • Die Adreß-"Manipulierung" ist aufgetreten, da das nf- Speicherbit 40 auf seinen zweiten Zustand (logische 1) eingestellt ist und bewirkt, daß das XOR-Gatter 30 die Adreßleitung 32 invertiert. Im wesentlichen bewirkt das nf-Speicherbit 40, daß der alternative Hochfahrblock 2 aus der Sicht des Mikroprozessors in dem Primäradreßraum erscheint, und daß der Primärhochfahrblock in dem alternativen Adreßraum erscheint. Folglich bleiben während eines Firmwareaktualisierungsprozesses und in dem Fall eines Unterbrechungsereignisses die Firmwaredaten für den Prozessor 20 in dem alternativen Hochfahrblock hochfahrmäßig adressierbar.
  • Offenbar muß die Firmware zur Ausführung von entweder dem Primärhochfahrblock oder dem alternativen Hochfahrblock eine relative Adressierung aufweisen. Der Prozessor 20 erfaßt ferner den Zustand des nf-Speicherbits 40, so daß derselbe weiß, daß derselbe zur Ausführung eines geeigneten Codes während eines Hochfahrvorgangs, nachdem ein Unterbrechungsereignis aufgetreten ist, auf den alternativen Hochfahrblock und nicht den Primärhochfahrblock schaut. Darüber hinaus bestimmt der Prozessor 20 bei jedem gegebenen Leistungsaufbau durch Prüfsummen, die über jeden Block hinweg aufgebaut werden und in jedem Block gespeichert sind, welche Blöcke eine vollständige und gültige Firmware aufweisen. Folglich ist der Fortschritt jeglicher gegebenen Aktualisierung erfaßbar.
  • Bezugnehmend auf Fig. 2 stellt ein Flußdiagramm die Schritte dar, die zur Manipulierung des Hochfahrblocks- und Speicheradreß-Raumes für eine leistungsausfallbeständige Firmwareaktualisierung befolgt werden. Zunächst werden bei 60 alle Blöcke außer dem Primärhochfahrblock 0 des Speichers 10 (Fig. 1) gelöscht. Wie es in der Technik allgemein bekannt ist, kann es sein, daß während des Aktualisierungsprozesses die Hochfahrfirmware zur Ausführung aus dem Primärhochfahrblock heraus und in einen Prozessorspeicher kopiert werden muß. Der Grund hierfür besteht in den Lösch- und Schreib- Charakteristika des EEPROM.
  • Als nächstes wird bei 65 die Firmware des Primärhochfahrblocks 0 in den alternativen Hochfahrblock 2 kopiert, wobei das nf-Speicherbit 40 auf seinen zweiten Zustand (logische 1) eingestellt wird 70. Das Einstellen des nf-Speicherbits 40 auf seinen zweiten Zustand bewirkt, daß der alternative Hochfahrblock 2 aus der Sicht des Prozessors in dem Primäradreßraum des Hochfahrblocks 0 erscheint. Diese Scheinmanipulierung des Adreßraumes wird dadurch bewirkt, daß das nf- Speicherbit 40 ein Eingangssignal des XOR-Gatters 30 auf 1 einstellt, wodurch das obere Adreßbit für alle Adreßanforderungen, die von dem Prozessor 20 zum Zugreifen auf den Primäradreßraum empfangen werden, invertiert wird.
  • Fig. 3 ist eine Tabelle, die darstellt, wie ein oberes Adreßbit invertiert wird, um zu bewirken, daß der alternative Hochfahrblock aus der Sicht des Mikroprozessors in dem Adreßraum des Primärhochfahrblocks erscheint. In diesem Fall wird das Bit Nummer 19 invertiert. Obwohl folglich der Prozessor 20 denkt, daß derselbe die Primärhochfahrblockstartadresse 00000000 hex adressiert, die bei 95 gezeigt ist, bewirkt das XOR-Gatter 30, daß das Bit Nummer 19 invertiert wird, und folglich, daß der Prozessor 20 auf die Startadresse des alternativen Hochfahrblocks 00080000 hex zugreift, die bei 100 gezeigt ist.
  • Wiederum bezugnehmend auf Fig. 2 wird, nachdem das nf- Speicherbit eingestellt ist 70, der Primärhochfahrblock 0 gelöscht 75. Nachdem der Primärhochfahrblock gelöscht ist, könnte, falls ein Unterbrechungsereignis oder Leistungsausfall auftritt, die Aktualisierung nicht abgeschlossen werden, falls nicht der Block 2 durch den Prozessor 20 als ein alternativer Hochfahrblock adressierbar wäre. Diese Erfindung ermöglicht jedoch dem Prozessor 20, auf den Block 2 als einen alternativen Hochfahrblock zuzugreifen. Insbesondere würde, falls die Leistung verloren ginge, ohne daß die Aktualisierung abgeschlossen wäre, und falls der Prozessor 20 neu gestartet werden müßte, das nf-Speicherbit 40 in seinem zweiten Zustand (logische 1) verbleiben. Dementsprechend würde das XOR-Gatter 30 das obere Adreßbit (siehe Fig. 3) invertieren, so daß durch den Prozessor 20 auf den Adreßraum des alternativen Hochfahrblocks und nicht auf den Adreßraum des Primärhochfahrblocks zugegriffen werden würde. Folglich fährt der Prozessor 20, ohne jemals wirklich irgendeinen Unterschied erfahren zu haben, von dem alternativen Hochfahrblock aus hoch.
  • Nachdem der Primärhochfahrblock 0 gelöscht ist 75, wird derselbe anschließend mit einer neuen Hochfahrfirmware aktualisiert (bebrannt und/oder beschrieben) 80. Auf das Abschließen der Aktualisierung des Primärhochfahrblocks hin wird das nf-Speicherbit 40 zu seinem ersten Zustand (logische 0) neu eingestellt 85, um zu bewirken, daß der Primärhochfahrblock wieder in seinem korrekten Adreßraum erscheint. Zu diesem Zeitpunkt werden, sollte ein Leistungsausfall auftreten, die neuen Hochfahrinformationen bereits in dem Block 0 gehalten und würden bei einem Hochfahrvorgang durch den Prozessor verwendet werden, da das nf-Speicherbit 40 auf seinen ersten Zustand neu eingestellt ist.
  • Schließlich wird bei 87 die Hochfahrfirmware in dem Block 2 gelöscht, wobei alle Blöcke (außer dem Primärhochfahrblock) mit jeglichen neuen Firmwareinformationen aktualisiert werden 90, um den Aktualisierungsprozeß abzuschließen.
  • Bezugnehmend auf die Fig. 4A-4J stellen vereinfachte Blockdiagramme die verschiedenen Stufen der Hochfahrblock- und Speicheradreßmanipulierungen während einer leistungsausfallbeständigen Firmwareaktualisierung der vorliegenden Erfindung dar. Fig. 4A-4D zeigen den Block 0 als den Primärhochfahrblock und zeigen, daß ein Prozessorhochfahrvorgang von dem Block 0 aus stattfinden wird (wenn das nf-Speicherbit 40 von Fig. 1 auf seinen Zustand einer logischen 0 eingestellt ist). Die Fig. 4A-4C zeigen die ersten Schritte des Löschens aller Blöcke ausgenommen des Primärhochfahrblocks in Vorbereitung auf eine Firmwareaktualisierung (siehe ferner 60, Fig. 2). Die gelöschten Blöcke sind durch ein "X" durch den Block gezeigt.
  • Fig. 4D zeigt den nächsten Schritt des Kopierens des Inhalts des Primärhochfahrblocks 0 in den alternativen Hochfahrblock 2 (siehe ferner 65, Fig. 2). Ein Block, in den die Daten geschrieben (eingebrannt) sind, ist mit dem Buchstaben "B" in der oberen Ecke gezeigt.
  • Fig. 4E-4F zeigen nunmehr den alternativen Block 2 als den Block, von dem aus ein Prozessor hochfahren wird (siehe ferner 70, Fig. 2). Wie es im vorhergehenden beschrieben wurde, besteht der Grund hierfür darin, daß das nf-Speicherbit 40 eingestellt ist, um zu bewirken, daß das XOR-Gatter 30 ein oberes Adreßbit invertiert, um zu bewirken, daß der alternative Hochfahrblock aus der Sicht des Prozessors in dem Primäradreßraum erscheint. Fig. 4E zeigt, wie der Block 0 in Vorbereitung auf seine Aktualisierung gelöscht wird, wobei Fig. 4F zeigt, wie der Block 0 mit der neuen Hochfahrfirmware aktualisiert (beschrieben) wird (siehe ferner 75 und 80, Fig. 2).
  • Fig. 4G-4J zeigen, daß wieder der Block 0 als der Block adressiert wird, von dem aus ein Prozessorhochfahrvorgang stattfinden wird. Der Grund hierfür besteht darin, daß das nf-Speicherbit 40 neu eingestellt ist (siehe 85, Fig. 2), um zu bewirken, daß der Primärhochfahrblock 0 wieder an seinem korrekten Adreßraum erscheint. Fig. 4G zeigt, wie der Block 2 gelöscht wird (siehe 87, Fig. 2), da derselbe immer noch eine Kopie der ursprünglichen Hochfahrfirmware von dem Schritt von Fig. 4D hält. Schließlich zeigen Fig. 4H-4J, wie in die Blöcke 1, 2 und 3 die restliche Firmware eingebrannt wird, um den Aktualisierungsprozeß abzuschließen (siehe 90, Fig. 2).
  • Der folgende Pseudocode ist exemplarisch für eine bevorzugte Implementierung des im vorhergehenden beschriebenen Systems und Prozesses für eine leistungsausfallbeständige Firmwareaktualisierung.
  • Was im vorhergehenden beschrieben wurde, sind die bevorzugten Ausführungsbeispiele für ein System und ein Verfahren zum Liefern einer leistungsausfallbeständigen Flash-Aktualisierung für ein EEPROM ohne die Notwendigkeit für einen getrennten ROM. Es ist für einen durchschnittlichen Fachmann auf dem Gebiet offensichtlich, daß die vorliegende Erfindung auf einfache Weise unter Verwendung jeglicher einer Vielzahl von Hardware- und Software-Werkzeugen, die in der Technik existieren, implementiert werden kann. Während die vorliegende Erfindung bezugnehmend auf spezifische Ausführungsbeispiele beschrieben worden ist, wird es offensichtlich sein, daß andere alternative Ausführungsbeispiele und Verfahren zum Implementieren oder Modifizieren verwendet werden können, ohne den Schutzbereich der Erfindung zu verlassen.

Claims (10)

1. Ein Verfahren zum Liefern von leistungsausfallbeständigen Speicheraktualisierungen für eine erste Speichervorrichtung (10), die Systemhochfahrdaten und getrennt löschbare/beschreibbare Blöcke aufweist, die durch einen Mikroprozessor (20) adressierbar sind, wobei das Verfahren folgende Schritte aufweist:
(a) Kopieren der Hochfahrdaten von einem Primärhochfahrblock, der einem Primäradreßraum in der ersten Speichervorrichtung zugeordnet ist, zu einem alternativen Hochfahrblock, der einem alternativen Adreßraum zugeordnet ist;
(b) Einstellen einer zweiten nicht-flüchtigen Speicherbitschaltung (40), um zu bewirken, daß der alternative Hochfahrblock aus der Sicht des Mikroprozessors in dem Primäradreßraum erscheint, und daß der Primärhochfahrblock in dem alternativen Adreßraum erscheint, wodurch in dem Fall eines Unterbrechungsereignisses die Daten für den Mikroprozessor in dem alternativen Hochfahrblock hochfahrmäßig adressierbar bleiben;
(c) Schreiben neuer Hochfahrdaten in den Primärhochfahrblock; und
(d) Neueinstellen der zweiten Speicherbitschaltung, um zu bewirken, daß der Primärhochfahrblock wieder in dem Primäradreßraum erscheint, und daß der alternative Hochfahrblock wieder in dem alternativen Adreßraum erscheint.
2. Das Verfahren gemäß Anspruch 1, bei dem die erste Speichervorrichtung aus (i) einer blockweise elektrisch löschbaren, programmierbaren Nur-Lese-Speicher- (EEPROM-) Vorrichtung, (ii) einer Mehrzahl von EEPROMs und (iii) einem nicht-flüchtigen Direktzugriffsspeicher (RAM) ausgewählt ist.
3. Das Verfahren gemäß Anspruch 1, bei dem die Hochfahrdaten und die neuen Hochfahrdaten eine relative Adressierung zum Ausführen von dem Primärhochfahrblock und dem alternativen Hochfahrblock aus aufweisen.
4. Das Verfahren gemäß Anspruch 1, bei dem ein Zustand des zweiten nicht-flüchtigen Speichers durch
(i) eine Logikschaltungsanordnung (30), die zwischen den Mikroprozessor (20), die erste Speichervorrichtung (10) und die zweite nicht-flüchtige Speicherbitschaltung (40) kommunikativ geschaltet ist, zum Invertieren zumindest eines Adreßbits, um die Adressierung der Blöcke der ersten Speichervorrichtung zu manipulieren; und
(ii) den Prozessor zum Bestimmen eines Aktualisierungsstatus, der anzeigt, ob die Aktualisierung unterbrochen wurde oder nicht,
erfaßt wird.
5. Ein System zum Liefern von leistungsausfallbeständigen Speicheraktualisierungen, mit
(a) einer ersten Speicherbank (10) mit einem ersten und einem zweiten getrennt löschbaren/beschreibbaren Block, wobei die Blöcke einem ersten beziehungsweise zweiten Adreßraum zugeordnet sind;
(b) einer Einrichtung zum Kopieren von ersten Daten von dem ersten Block zu dem zweiten Block;
(c) einer Einrichtung zum Einstellen einer zweiten nicht-flüchtigen Speicherbitschaltung (40), um zu bewirken, daß der zweite Block aus der Sicht eines Mikroprozessors (10) in dem ersten Adreßraum erscheint, und daß der erste Block in dem zweiten Adreßraum erscheint, wodurch in dem Fall eines Unterbrechungsereignisses die Daten für den Mikroprozessor in dem zweiten Block hochfahrmäßig adressierbar bleiben;
(d) einer Einrichtung zum selektiven Schreiben der zweiten Daten in die Blöcke; und
(e) einer Einrichtung zum Neueinstellen der zweiten Speicherbitschaltung, um zu bewirken, daß der erste Block wieder in dem ersten Adreßraum erscheint, und daß der zweite Block wieder in dem zweiten Adreßraum erscheint.
6. Das System gemäß Anspruch 5, bei dem die erste Speicherbank aus (i) einer blockweise elektrisch löschbaren, programmierbaren Nur-Lese-Speicher- (EEPROM-) Vorrichtung, (ii) einer Mehrzahl von EEPROMs und (iii) einem nicht-flüchtigen Direktzugriffsspeicher (RAM) ausgewählt ist.
7. Das System gemäß Anspruch 5, bei dem die ersten und zweiten Daten eine relative Adressierung zum Ausführen von dem ersten und dem zweiten Block aus aufweisen.
8. Das System gemäß Anspruch 5, das ferner eine Einrichtung zum selektiven Löschen der Blöcke aufweist.
9. Das System gemäß Anspruch 5, das ferner eine Logikschaltungsanordnung (30), die zwischen den Mikroprozessor (20), die erste Speicherbank (10) und die zweite nicht-flüchtige Speicherbitschaltung (40) kommunikativ geschaltet ist, zum Erfassen eines Zustands der zweiten nicht-flüchtigen Speicherbitschaltung (40) und zum Invertieren zumindest eines Adreßbits, um die Adressierung der Blöcke der ersten Speicherbank zu manipulieren, aufweist.
10. Das System gemäß Anspruch 5, das ferner eine Einrichtung (20) zum Erfassen eines Zustands der zweiten nicht-flüchtigen Speicherbitschaltung aufweist, um einen Aktualisierungsstatus zu bestimmen, der anzeigt, ob die Aktualisierung unterbrochen wurde oder nicht.
DE69521113T 1995-01-18 1995-09-01 Vorrichtung und Verfahren zur Stromversorgungsausfallbeständige Aktualisierung eines Flash-EEPROM-Speichers Expired - Fee Related DE69521113T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/375,095 US5568641A (en) 1995-01-18 1995-01-18 Powerfail durable flash EEPROM upgrade

Publications (2)

Publication Number Publication Date
DE69521113D1 DE69521113D1 (de) 2001-07-05
DE69521113T2 true DE69521113T2 (de) 2002-03-21

Family

ID=23479478

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69521113T Expired - Fee Related DE69521113T2 (de) 1995-01-18 1995-09-01 Vorrichtung und Verfahren zur Stromversorgungsausfallbeständige Aktualisierung eines Flash-EEPROM-Speichers

Country Status (4)

Country Link
US (1) US5568641A (de)
EP (1) EP0723226B1 (de)
JP (1) JPH08255084A (de)
DE (1) DE69521113T2 (de)

Families Citing this family (115)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5812861A (en) * 1995-06-22 1998-09-22 Intel Corporation Override signal for forcing a powerdown of a flash memory
PT757336E (pt) 1995-08-04 2001-04-30 Belle Gate Invest B V Sistema de intercambio de dados que inclui unidades portateis de processamento de dados
US6385645B1 (en) 1995-08-04 2002-05-07 Belle Gate Investments B.V. Data exchange system comprising portable data processing units
US5918047A (en) * 1996-01-26 1999-06-29 Texas Instruments Incorporated Initializing a processing system
US5926386A (en) * 1996-02-02 1999-07-20 Hewlett-Packard Company Configuration based cooling fan speed control
US5761504A (en) * 1996-02-16 1998-06-02 Motorola, Inc. Method for updating a software code in a communication system
US5701492A (en) * 1996-03-29 1997-12-23 Canon Kabushiki Kaisha Fail-safe flashing of EPROM
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
FR2752631B1 (fr) * 1996-08-22 1999-01-22 Schneider Automation Procede de chargement d'un systeme d'exploitation
JPH10116187A (ja) * 1996-10-11 1998-05-06 Mitsubishi Electric Corp マイクロコンピュータ
US6282675B1 (en) * 1997-08-06 2001-08-28 Macronix International Co., Ltd. Fault-tolerant architecture for in-circuit programming
US6842820B2 (en) 1997-10-03 2005-01-11 Macronix International Co., Ltd. Processor with embedded in-circuit programming structures
EP0898225A4 (de) * 1997-01-31 2000-07-05 Sony Corp Gerät und verfahren zur informationsverarbeitung
US6560701B1 (en) * 1997-02-10 2003-05-06 International Business Machines Corporation Alternate boot record
US5987581A (en) * 1997-04-02 1999-11-16 Intel Corporation Configurable address line inverter for remapping memory
JPH10333898A (ja) * 1997-05-29 1998-12-18 Nec Corp マイクロコンピュータ
EP0934563A1 (de) * 1997-05-30 1999-08-11 Koninklijke Philips Electronics N.V. Fehlersicheres verfahren zum verbessern von set-top-system softwarevon einem netzwerksystem
DE69739825D1 (de) * 1997-09-24 2010-05-12 St Microelectronics Srl Sektorbasierter Halbleiterspeicher mit verstellbaren Sektoradressen
JP2914360B2 (ja) 1997-09-30 1999-06-28 ソニー株式会社 外部記憶装置及びデータ処理方法
KR100280637B1 (ko) 1997-11-24 2001-02-01 윤종용 고정된플래시롬의데이터갱신이가능한컴퓨터시스템및그제어방법
JPH11184703A (ja) * 1997-12-19 1999-07-09 Nec Corp 情報処理装置及びそのブート方法
US6078967A (en) * 1998-02-25 2000-06-20 Hewlett-Packard Company System for upgrading functionality of a peripheral device utilizing a removable ROM having relocatable object code
JP2000010666A (ja) 1998-06-19 2000-01-14 Toshiba Corp コンピュータシステムおよびフラッシュrom書き換え方法
US6275931B1 (en) 1998-06-22 2001-08-14 Elsag International N.V. Method and apparatus for upgrading firmware boot and main codes in a programmable memory
CA2345794A1 (en) 1998-09-29 2000-04-06 Sun Microsystems, Inc. Superposition of data over voice
US6308265B1 (en) * 1998-09-30 2001-10-23 Phoenix Technologies Ltd. Protection of boot block code while allowing write accesses to the boot block
US6219828B1 (en) * 1998-09-30 2001-04-17 International Business Machines Corporation Method for using two copies of open firmware for self debug capability
US6496881B1 (en) * 1999-03-11 2002-12-17 Compaq Information Technologies Group, L.P. Method and apparatus for disabling a processor in a multiprocessor computer
DE19917940A1 (de) * 1999-04-21 2000-10-26 Bosch Gmbh Robert Speicherbauteil einer Rechnereinheit
IL129947A (en) * 1999-05-13 2003-06-24 Tadiran Telecom Business Syste Method and apparatus for downloading software into an embedded system
CA2391826A1 (en) * 1999-06-10 2000-12-21 Belle Gate Investment B.V. Arrangements storing different versions of a set of data in separate memory areas and method for updating a set of data in a memory
KR100305033B1 (ko) 1999-06-24 2001-11-14 윤종용 블럭 아키텍츄어 옵션 회로를 구비하는 불휘발성 반도체 메모리 장치
US6628607B1 (en) 1999-07-09 2003-09-30 Apple Computer, Inc. Method and apparatus for loop breaking on a serial bus
US6691096B1 (en) 1999-10-28 2004-02-10 Apple Computer, Inc. General purpose data container method and apparatus for implementing AV/C descriptors
US6959343B1 (en) 1999-11-01 2005-10-25 Apple Computer, Inc. Method and apparatus for dynamic link driver configuration
US6671768B1 (en) 1999-11-01 2003-12-30 Apple Computer, Inc. System and method for providing dynamic configuration ROM using double image buffers for use with serial bus devices
US6618750B1 (en) 1999-11-02 2003-09-09 Apple Computer, Inc. Method and apparatus for determining communication paths
US6813663B1 (en) 1999-11-02 2004-11-02 Apple Computer, Inc. Method and apparatus for supporting and presenting multiple serial bus nodes using distinct configuration ROM images
US6631426B1 (en) 1999-11-02 2003-10-07 Apple Computer, Inc. Automatic ID allocation for AV/C entities
US8762446B1 (en) 1999-11-02 2014-06-24 Apple Inc. Bridged distributed device control over multiple transports method and apparatus
US6587904B1 (en) 1999-11-05 2003-07-01 Apple Computer, Inc. Method and apparatus for preventing loops in a full-duplex bus
US6636914B1 (en) * 1999-11-05 2003-10-21 Apple Computer, Inc. Method and apparatus for arbitration and fairness on a full-duplex bus using dual phases
US6622246B1 (en) * 1999-11-12 2003-09-16 Xerox Corporation Method and apparatus for booting and upgrading firmware
US6457086B1 (en) 1999-11-16 2002-09-24 Apple Computers, Inc. Method and apparatus for accelerating detection of serial bus device speed signals
WO2001040910A1 (en) 1999-12-06 2001-06-07 De Jong, Eduard, Karel Computer arrangement using non-refreshed dram
US7080261B1 (en) 1999-12-07 2006-07-18 Sun Microsystems, Inc. Computer-readable medium with microprocessor to control reading and computer arranged to communicate with such a medium
AU777437B2 (en) 1999-12-07 2004-10-14 Sun Microsystems, Inc. Secure photo carrying identification device, as well as means and method for authenticating such an identification device
US6588006B1 (en) * 1999-12-16 2003-07-01 Lsi Logic Corporation Programmable ASIC
JP3838840B2 (ja) 2000-01-06 2006-10-25 Necエレクトロニクス株式会社 コンピュータ
US7266617B1 (en) 2000-01-18 2007-09-04 Apple Inc. Method and apparatus for border node behavior on a full-duplex bus
US6639918B1 (en) * 2000-01-18 2003-10-28 Apple Computer, Inc. Method and apparatus for border node behavior on a full-duplex bus
US6584559B1 (en) * 2000-01-28 2003-06-24 Avaya Technology Corp. Firmware download scheme for high-availability systems
JP2001209543A (ja) * 2000-01-28 2001-08-03 Nec Ic Microcomput Syst Ltd フラッシュ・マイコンにおけるプログラム書き換え方法
US7421507B2 (en) * 2000-02-16 2008-09-02 Apple Inc. Transmission of AV/C transactions over multiple transports method and apparatus
US7050453B1 (en) 2000-02-17 2006-05-23 Apple Computer, Inc. Method and apparatus for ensuring compatibility on a high performance serial bus
US6831928B1 (en) 2000-02-17 2004-12-14 Apple Computer, Inc. Method and apparatus for ensuring compatibility on a high performance serial bus
US6654847B1 (en) * 2000-06-30 2003-11-25 Micron Technology, Inc. Top/bottom symmetrical protection scheme for flash
US6625809B1 (en) * 2000-03-31 2003-09-23 Delphi Technologies, Inc. Versatile boot method for a microcontroller's application software
US6618785B1 (en) 2000-04-21 2003-09-09 Apple Computer, Inc. Method and apparatus for automatic detection and healing of signal pair crossover on a high performance serial bus
US6718497B1 (en) 2000-04-21 2004-04-06 Apple Computer, Inc. Method and apparatus for generating jitter test patterns on a high performance serial bus
CN1110748C (zh) * 2000-04-26 2003-06-04 刘海全 作为计算机扩展BIOS软件的载体的Boot ROM的增容方法及其载体
DE60037342T2 (de) 2000-07-20 2008-11-27 Belle Gate Investment B.V. Verfahren und system für kommunizierende geräte, und vorrichtungen dafür, mit geschützter datenübertragung
US6944854B2 (en) * 2000-11-30 2005-09-13 International Business Machines Corporation Method and apparatus for updating new versions of firmware in the background
US6877063B1 (en) * 2000-12-22 2005-04-05 Xilinx, Inc. Multiple memory aliasing for a configurable system-on-chip
US6715101B2 (en) 2001-03-15 2004-03-30 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having an on-line controller removal system and method
US6802023B2 (en) 2001-03-15 2004-10-05 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having hot insertion system and method
US6708285B2 (en) 2001-03-15 2004-03-16 Hewlett-Packard Development Company, L.P. Redundant controller data storage system having system and method for handling controller resets
US6754895B1 (en) * 2001-04-26 2004-06-22 Palm Source, Inc. Method and system for automatic firmware updates in a portable hand-held device
KR20020088573A (ko) * 2001-05-18 2002-11-29 엘지전자 주식회사 디지탈 재생기의 펌웨어 업그레이드방법
US20020178352A1 (en) * 2001-05-22 2002-11-28 Lambino John P. Firmware upgrade using address conversion
KR100440950B1 (ko) * 2001-06-30 2004-07-21 삼성전자주식회사 네트워크 환경에 있어서 소프트웨어 업그레이드 방법 및그에 따른 네트워크 디바이스
US20030050835A1 (en) * 2001-09-07 2003-03-13 Johnson Steven M. Release note/advertisement print out after firmware upgrade
CA2357382A1 (en) * 2001-09-17 2003-03-17 Soma Networks, Inc. Software update method, apparatus and system
US7299463B2 (en) * 2001-09-28 2007-11-20 Intel Corporation Method for atomically updating a plurality of files
US7562208B1 (en) * 2002-02-07 2009-07-14 Network Appliance, Inc. Method and system to quarantine system software and configuration
US7206970B1 (en) * 2002-02-07 2007-04-17 Network Appliance, Inc. System and method for diagnostics execution and data capture in a storage system using nonvolatile memory
JP3830867B2 (ja) 2002-07-10 2006-10-11 Necエレクトロニクス株式会社 シングルチップマイクロコンピュータおよびそのブート領域切り替え方法
US7036007B2 (en) 2002-09-09 2006-04-25 Intel Corporation Firmware architecture supporting safe updates and multiple processor types
JP2004199277A (ja) * 2002-12-17 2004-07-15 Fujitsu Ltd Biosの冗長管理方法、データ処理装置及びストレージシステム
US7417973B1 (en) 2002-12-31 2008-08-26 Apple Inc. Method, apparatus and computer program product for ensuring node participation in a network bus
US7457302B1 (en) 2002-12-31 2008-11-25 Apple Inc. Enhancement to loop healing for malconfigured bus prevention
US7668099B2 (en) * 2003-06-13 2010-02-23 Apple Inc. Synthesis of vertical blanking signal
US7353284B2 (en) 2003-06-13 2008-04-01 Apple Inc. Synchronized transmission of audio and video data from a computer to a client via an interface
US20040255338A1 (en) * 2003-06-13 2004-12-16 Apple Computer, Inc. Interface for sending synchronized audio and video data
KR20060008338A (ko) * 2003-06-24 2006-01-26 바이에리셰 모토렌 베르케 악티엔게젤샤프트 프로그래밍 가능한 읽기 전용 메모리의 부트 섹터에소프트웨어를 부팅 업 하는 방법
US8275910B1 (en) 2003-07-02 2012-09-25 Apple Inc. Source packet bridge
US7788567B1 (en) 2003-11-18 2010-08-31 Apple Inc. Symbol encoding for tolerance to single byte errors
US7995606B1 (en) 2003-12-03 2011-08-09 Apple Inc. Fly-by and ack-accelerated arbitration for broadcast packets
US7502338B1 (en) 2003-12-19 2009-03-10 Apple Inc. De-emphasis training on a point-to-point connection
US7103687B2 (en) * 2003-12-22 2006-09-05 Hewlett-Packard Development Company, L.P. System and method for providing an image file in a computer system
US7237135B1 (en) 2003-12-29 2007-06-26 Apple Inc. Cyclemaster synchronization in a distributed bridge
US7308517B1 (en) 2003-12-29 2007-12-11 Apple Inc. Gap count analysis for a high speed serialized bus
US7464250B2 (en) * 2004-03-11 2008-12-09 International Business Machines Corporation Method to reduce disk access time during predictable loading sequences
EP1723498A2 (de) * 2004-03-11 2006-11-22 Preh KeyTec GmbH Tastatur, insbesondere kassentastatur, und verfahren zur inbetriebnahme sowie zum austausch und update von firmware der tastatur
US7546596B2 (en) * 2004-03-29 2009-06-09 International Business Machines Corporation Non-disruptive method, system and program product for overlaying a first software module with a second software module
US20050231358A1 (en) * 2004-04-19 2005-10-20 Company Steven L Search engine for singles with (GPS) position data
JP2006011906A (ja) * 2004-06-28 2006-01-12 Yamaha Corp ソフトウェアインストール方法
DE102004047192A1 (de) * 2004-09-29 2006-04-06 Robert Bosch Gmbh Ersetzen eines Datensatzes in einem Speicher
US7523350B2 (en) * 2005-04-01 2009-04-21 Dot Hill Systems Corporation Timer-based apparatus and method for fault-tolerant booting of a storage controller
US7711989B2 (en) * 2005-04-01 2010-05-04 Dot Hill Systems Corporation Storage system with automatic redundant code component failure detection, notification, and repair
JP4245585B2 (ja) * 2005-06-13 2009-03-25 Tdk株式会社 メモリコントローラ、フラッシュメモリシステム及びフラッシュメモリの制御方法
DE102005059319A1 (de) * 2005-12-09 2007-06-14 Robert Bosch Gmbh Verfahren zum Betreiben einer Einrichtung
JP4868216B2 (ja) * 2006-01-19 2012-02-01 日本電気株式会社 ファームウェア更新回路およびファームウェア更新方法
US8483108B2 (en) 2006-07-24 2013-07-09 Apple Inc. Apparatus and methods for de-emphasis training on a point-to-point connection
KR101431296B1 (ko) 2007-01-11 2014-08-20 레드 밴드 리미티드 저장 장치에 저장된 컨텐츠의 인-플레이스 업데이트 방법 및 시스템
US20090019435A1 (en) * 2007-07-12 2009-01-15 Sauer-Danfoss Inc. System and method for over the air programming
TWI460657B (zh) * 2008-09-05 2014-11-11 Asustek Comp Inc 更新與修復基本輸入輸出系統的方法
US8631186B2 (en) * 2008-09-30 2014-01-14 Intel Corporation Hardware and file system agnostic mechanism for achieving capsule support
US8438558B1 (en) 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data
US8595716B2 (en) 2011-04-06 2013-11-26 Robert Bosch Gmbh Failsafe firmware updates
US20160321057A1 (en) * 2013-12-27 2016-11-03 Kyocera Document Solutions Inc. Electronic apparatus
US9823972B2 (en) 2014-10-28 2017-11-21 Samsung Electronics Co., Ltd. Mobile flash storage boot partition and/or logical unit shadowing
CN108228387B (zh) * 2017-12-27 2019-11-05 中兴通讯股份有限公司 一种启动控制方法、电子设备以及计算机可读存储介质
US11048521B2 (en) 2019-09-25 2021-06-29 Adva Optical Networking Se Resilient upgradable boot loader with power reset
EP4006718B1 (de) * 2020-11-30 2024-05-01 Carrier Corporation Ausfallsichere aktualisierung der bootloader-firmware

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5021963A (en) * 1988-12-30 1991-06-04 Pitney Bowes Inc. EPM having an improvement in accounting update security
US5068780A (en) * 1989-08-01 1991-11-26 Digital Equipment Corporation Method and apparatus for controlling initiation of bootstrap loading of an operating system in a computer system having first and second discrete computing zones
US5317752A (en) * 1989-12-22 1994-05-31 Tandem Computers Incorporated Fault-tolerant computer system with auto-restart after power-fall
US5195100A (en) * 1990-03-02 1993-03-16 Micro Technology, Inc. Non-volatile memory storage of write operation identifier in data sotrage device
JP2772103B2 (ja) * 1990-03-28 1998-07-02 株式会社東芝 計算機システム立上げ方式
US5155835A (en) * 1990-11-19 1992-10-13 Storage Technology Corporation Multilevel, hierarchical, dynamically mapped data storage subsystem
IT1254937B (it) * 1991-05-06 1995-10-11 Aggiornamento dinamico di memoria non volatile in un sistema informatico
US5278838A (en) * 1991-06-18 1994-01-11 Ibm Corp. Recovery from errors in a redundant array of disk drives
US5237658A (en) * 1991-10-01 1993-08-17 Tandem Computers Incorporated Linear and orthogonal expansion of array storage in multiprocessor computing systems
US5473775A (en) * 1991-10-11 1995-12-05 Kabushiki Kaisha Toshiba Personal computer using flash memory as BIOS-ROM
US5297258A (en) * 1991-11-21 1994-03-22 Ast Research, Inc. Data logging for hard disk data storage systems
US5287462A (en) * 1991-12-20 1994-02-15 Ncr Corporation Bufferless SCSI to SCSI data transfer scheme for disk array applications
US5289418A (en) * 1992-02-14 1994-02-22 Extended Systems, Inc. Memory apparatus with built-in parity generation

Also Published As

Publication number Publication date
EP0723226B1 (de) 2001-05-30
DE69521113D1 (de) 2001-07-05
EP0723226A1 (de) 1996-07-24
US5568641A (en) 1996-10-22
JPH08255084A (ja) 1996-10-01

Similar Documents

Publication Publication Date Title
DE69521113T2 (de) Vorrichtung und Verfahren zur Stromversorgungsausfallbeständige Aktualisierung eines Flash-EEPROM-Speichers
DE10297281B4 (de) Verfahren zum elementaren Aktualisieren einer Vielzahl von Dateien
DE60211653T2 (de) Teildatenprogrammier- und leseoperationen in einem nichtflüchtigen speicher
DE69527594T2 (de) Flashspeicherkarte
DE69329590T2 (de) Periphere Festkörperspeichervorrichtung
DE60030876T2 (de) Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität
DE69232303T2 (de) PC mit integriertem wiederbeschreibbarem ROM zur Speicherung des BIOS
DE4329336C2 (de) Einrichtung und Verfahren zur Identifizierung eines Computer-Mikroprozessors
DE19882933B4 (de) Flash-Speicher-Unterteilung für Lese-während-Schreiboperationen
DE69730430T2 (de) Verfahren und gerät zum bereitstellen von verbesserten diagnostischen funktionen in einem computersystem
DE69627814T2 (de) System zum bereitstellen eines bios für den hauptrechner
DE69526123T2 (de) Fehlersteuerungsverfahren für flash-eeprom-speichermatritzen
DE10052877B4 (de) Mikrocontroller
DE69706991T2 (de) Flash-speicherkarte
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
DE69821426T2 (de) Speicheranordung, und Datenverarbeitungssystem und -Verfahren
DE4215063A1 (de) Einrichtung und verfahren zum seitenwechsel bei einem nicht-fluechtigen speicher
DE10296986T5 (de) Automatischer Austausch einer detekten BIOS-Abbildung
DE10308545A1 (de) Verfahren und Vorrichtung zum Aktualisieren eines verteilten Programms
DE602005003778T2 (de) Verfahren und Vorrichtung zum Wiederbeschreiben eines Sektors mit Bootloader-Software in einem sektor-löschbaren nichtflüchtigen Halbleiterspeicher
DE112009002207T5 (de) Aktualisieren einer Firmware mit mehreren Prozessoren
DE69820164T2 (de) Speichervorrichtung sowie Datenlese- und Schreibverfahren
DE19782214B4 (de) Verbesserte Schnittstelle für Flash-Eeprom-Speicher-Arrays
DE102006029690A1 (de) Beibehaltung einer Identifikation einer elektronischen Steuereinheit bei Umprogrammierungsereignissen
DE69831985T2 (de) Mikrocomputer mit Flash-EEPROM

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE

8339 Ceased/non-payment of the annual fee