DE69521113T2 - Vorrichtung und Verfahren zur Stromversorgungsausfallbeständige Aktualisierung eines Flash-EEPROM-Speichers - Google Patents
Vorrichtung und Verfahren zur Stromversorgungsausfallbeständige Aktualisierung eines Flash-EEPROM-SpeichersInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 21
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1433—Saving, 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
- 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).
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1995
- 1995-01-18 US US08/375,095 patent/US5568641A/en not_active Expired - Lifetime
- 1995-09-01 DE DE69521113T patent/DE69521113T2/de not_active Expired - Fee Related
- 1995-09-01 EP EP95113781A patent/EP0723226B1/de not_active Expired - Lifetime
- 1995-12-29 JP JP35421695A patent/JPH08255084A/ja active Pending
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 |