DE112009002207B4 - Aktualisieren einer Firmware mit mehreren Prozessoren - Google Patents
Aktualisieren einer Firmware mit mehreren Prozessoren Download PDFInfo
- Publication number
- DE112009002207B4 DE112009002207B4 DE112009002207.3T DE112009002207T DE112009002207B4 DE 112009002207 B4 DE112009002207 B4 DE 112009002207B4 DE 112009002207 T DE112009002207 T DE 112009002207T DE 112009002207 B4 DE112009002207 B4 DE 112009002207B4
- Authority
- DE
- Germany
- Prior art keywords
- processor
- computer readable
- readable instructions
- updated
- original
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Stored Programmes (AREA)
Abstract
Description
- HINTERGRUND DER ERFINDUNG
- Die Komplexität von Verarbeitungssystemen, die häufig über Entfernungen eingesetzt werden, ist ansteigend. Folglich muss Firmware oft aktualisiert werden, um eine verbesserte Funktionalität bereitzustellen und um Fehler („bugs“) zu korrigieren, wenn computerausführbare Anweisungen in der Firmware ausgeführt werden. Drahtlose Technologien (z.B. Funkfrequenz drahtlose Kommunikationen oder drahtlose Netzwerktechnologie) werden oft verwendet, um die Firmware zu aktualisieren, in welcher ein kleiner Teil der Firmware (typischerweise als ein Ladeprogramm-(Boot-)lader bezeichnet) die Firmware durch Kommunizieren mit einem anderen System aktualisiert. Unter idealen Bedingungen kann der Aktualisierungsprozess einfach sein. Jedoch können bei Kommunikationen über einen drahtlosen Kommunikationskanal Übertragungsfehler auftreten, was dann zu einer unerfolgreichen Aktualisierung führt.
- Viele Arten von Vorrichtungen weisen einen nicht flüchtigen Speicher auf, der Programmanweisungen speichert, die ausgeführt werden, nachdem Spannung angelegt wird, oder bei einem Neustart. Diese Programmanweisungen führen typischerweise verschiedene Initialisierungsfunktionen durch und initiieren dann ein Laden und Ausführen einer anderen Software. Typischerweise werden die Initialisierungsprogrammanweisungen als Firmware bezeichnet und sind häufig entweder in einem ROM (Nur-Lese-Speicher, read-only memory) oder einem EPROM (elektronisch programmierbar read-only memory) gespeichert. Jedoch hat eine Verwendung von ROM oder EPROM Vorrichtungen zum Speichern der Firmware mehrere Nachteile. Ein solcher Nachteil besteht darin, dass, um eine neue oder andere Version von Firmware zu installieren, die Notwendigkeit eines physischen Ersetzens einer ROM Vorrichtung oder eine Manipulation wie beispielsweise durch Bestrahlen einer EPROM Vorrichtung mit ultravioletten Licht und dann eines Verwendens eines EPROM Programmierers zum Speichern einer Firmware auf der EPROM Vorrichtung besteht.
- Elektronisch löschbar programmierbare Nurlesespeicher (EEPROM) Vorrichtungen werden häufig an Stelle von ROM oder EPROM Vorrichtungen aufgrund der oben diskutierten Nachteile verwendet, um Firmware zu speichern. Neue Firmware kann ohne die Notwendigkeit einer physischen Ersetzung oder Manipulation installiert werden. Es kann Nachteile bei diesem Ansatz geben. Erstens muss der gesamte Speicher eines EEPROM neu beschrieben, um die Firmware zu aktualisieren. In anderen Worten, es kann nicht speziell in einem Teil des EEPROM geschrieben werden. Folglich kann das Firmware Aktualisierungsverfahren verletzlich gegenüber Spannungsfehlern oder anderen Fehlern (z.B. software bugs) in der Firmware selbst sein. Falls die Firmware ein Fehler hat, kann dies die Vorrichtung oder das Computersystem als nicht betreibbar verändern. Folglich kann eine physische Ersetzung der EEPROM Vorrichtung erforderlich sein, falls ein Fehler in der Firmware auftritt. Versionen von EEPROM's sind verfügbar, bei denen es möglich ist, einen Teil des EEPROM zu aktualisieren, ohne den gesamten EEPROM zu aktualisieren. Diese Art von EEPROM kann in Flashspeicherkarten für digitale Kameras, und anderen Vorrichtungen, gefunden werden und wird auch zum Speichern von Firmware für Vorrichtungen und Computersysteme verwendet.
- Wenn Firmware in einem Verarbeitungssystem aktualisiert wird, wird häufig die gesamte Firmware ersetzt. Stand der Technik Verfahren zum Aktualisieren von Firmware in einem nicht-flüchtigen Speicher können immer noch die Nachteile aufweisen, die sich auf Fehler in der Firmware (z.B. Spannungsfehler, Software bugs) beziehen, die den Verbesserungsprozess unterbrechen und so die Vorrichtung nicht betreibbar machen. Folglich besteht ein echtes Marktbedürfnis für das Verarbeitungssystem, das in der Lage ist, sich von Fehlern zu erholen, wenn eine Firmware aktualisiert wird, um die Funktionalität des Verarbeitungssystems aufrecht zu erhalten.
- US 2008 / 0127166 A1 offenbart ein Verfahren zur Synchronisation von Firmware-Downloads, wobei neuer Code heruntergeladen und zwischengespeichert wird. Dabeo kontrollieren sowohl „master“ als auch „subordinate“, ob der zwischengespeicherte Code gültig ist und starten ihren jeweiligen Update-Prozess nur wenn beide zwischengespeicherten Codes gültig sind.
- Aus US 2006 / 021 8545 A1 ist eine Server-Client Architektur bekannt, in der jeder Client vom Server neue Software geliefert bekommt. Wenn bei einem Client ein Fehler auftritt, so benachrichtigt dieser Client den Server und der Server entscheidet anschließend, ob und welche Clients auf die alte Software zurückgreifen sollen.
- ZUSAMMENFASSUNG DER ERFINDUNG
- Die vorliegende Erfindung stellt Vorrichtungen, Verfahren und computerlesbare Medien zum Aktualisieren von Speichern, die Repräsentanten von computerausführbaren Anweisungen aufweisen, in einem Verarbeitungssystem bereit.
- In einem anderen Aspekt der Erfindung empfängt ein erster Prozessor (als ein Primärprozessor in einem Prozessorsystem bezeichnet) ursprüngliche Sätze von computerlesbaren Anweisungen und aktualisiert Sätze von computerlesbaren Anweisungen für eine Vielzahl von Prozessoren im Prozessorsystem. Die Sätze von computerlesbaren Anweisungen sind in einem Speicher (z.b. Flashspeicher) gespeichert, wobei jeder Prozessor in dem System unterschiedliche Sätze verwenden kann. Der Primärprozessor initiiert (leitet ein) dann eine Aktualisierung seiner Firmware mit dem entsprechend aktualisierten Satz. Falls die Aktualisierung unerfolgreich ist, kehrt der Primärprozessor zu dem ursprünglichen Satz zurück und der Aktualisierungsprozess wird beendet. Andernfalls schreitet die Firmwareaktualisierung zu dem nächsten Prozessor (als ein Sekundärprozessor bezeichnet) fort. Falls die Firmwareaktualisierung erfolgreich ist, wird der nächste Sekundärprozessor aktualisiert. Andernfalls kehren alle der aktualisierten Prozessoren auf den entsprechenden ursprünglichen Satz von computerlesbaren Anweisungen zurück und der Aktualisierungsprozess wird beendet.
- In einem anderen Aspekt der Erfindung empfängt der Primärprozessor eines Prozessorsystems eine Initiierungsanfrage zum Aktualisieren von computerlesbaren Anweisungen für das Prozessorsystem von einem Hauptsystem (Hostsystem). Der Primärprozessor unterrichtet folglich das Hostsystem über ursprüngliche Computerversionen, die der Vielzahl von Prozessoren zugeordnet sind.
- In einem anderen Aspekt der Erfindung kommuniziert der Primärprozessor mit dem Sekundärprozessoren, wenn die Firmware über einen internen Kommunikationsbus aktualisiert wird. In einem anderen Aspekt der Erfindung kommuniziert das Hostsystem mit dem Prozessorsystem über einen drahtlosen Kommunikationskanal, wenn die ursprünglichen Sätze und aktualisierten Sätze von computerlesbaren Anweisungen bereitgestellt werden.
- Figurenliste
- Die vorstehende Zusammenfassung der Erfindung, ebenso wie die folgende detaillierte Beschreibung von beispielhaften Ausführungsformen der Erfindung, wird besser verstanden, wenn sie in Zusammenhang mit den begleitenden Figuren gelesen wird, welche im Sinne eines Beispiels enthalten sind und nicht im Sinne einer Begrenzung bezüglich der beanspruchten Erfindung.
-
1 zeigt ein Mikroprozessorsystem zum Aktualisieren von Firmware gemäß einer Ausführungsform der Erfindung. -
2 zeigt ein Flussdiagramm zum Aktualisieren von computerlesbaren Anweisungen in einem Prozessorsystem gemäß einer Ausführungsform der Erfindung. -
3 zeigt ein Blockdiagramm eines Prozessors gemäß einer Ausführungsform der Erfindung. -
4 zeigt ein Szenario für ein Hostsystem, welches die derzeitigen Firmwareversion der Prozessoren in einem Prozessorsystem gemäß einer Ausführungsform der Erfindung erhält. -
5 zeigt ein Szenario für ein Hostsystem, welches alte und neue Firmwareversionen an das Prozessorsystem gemäß einer Ausführungsform der Erfindung bereitstellt. -
6 zeigt ein Szenario für den Primärprozessor, der seine Firmware gemäß einer Ausführungsform der Erfindung aktualisiert. -
7 zeigt ein Szenario, wenn der Primärprozessor seine Firmware gemäß einer Ausführungsform der Erfindung nicht erfolgreich aktualisiert. -
8 zeigt ein Szenario, wenn der Primärprozessor seine Firmware erfolgreich aktualisiert und ein Aktualisieren der Firmware eines Sekundärprozessors gemäß einer Ausführungsform der Erfindung initiiert. -
9 zeigt ein Szenario, wenn der Sekundärprozessor seine Firmware gemäß einer Ausführungsform der Erfindung nicht erfolgreich aktualisiert. -
10 zeigt ein Szenario, wenn der Sekundärprozessor seine Firmware gemäß einer Ausführungsform der Erfindung erfolgreich aktualisiert. - DETAILLIERTE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
-
1 zeigt ein Mikroprozessorsystem100 zum Aktualisieren von Firmware gemäß einer Ausführungsform der Erfindung. Mikroprozessorsystem100 kann beispielsweise ein ZigBee basiertes Thermostat oder Ladeschalter unterstützen, die mehr als einen Prozessor verwenden. - Mikroprozessorsystem
100 weist Mikrosteuereinheit (Microcontroller, MCU)101 , Microcontroller103 und Microcontroller105 auf. Ausführungsformen unterstützen entweder ein Aktualisieren der Firmware von allen Prozessoren oder einer Untergruppe von Prozessoren im System100 . Microcontroller101 ,103 , oder105 können ein funktionales Computersystem auf einem Chip, enthaltend einen Prozessorkern (zentrale Verarbeitungseinheit, CPU), Speicher (z.B. ein kleiner Anteil von Zufallszugriffsspeichern (RAM), Programmspeicher mit computerlesbaren Anweisungen, oder beides), und programmierbare Eingabe/Ausgabe-Peripherieeinheiten sein. Microcontroller101 ,103 oder105 können jedoch einen separaten Prozessor (Mikroprozessor), Speicher, und Peripherieschnittstellen aufweisen. - In einer Ausführungsform der Erfindung, fungiert MCU
101 als der Primärprozessor während MCU103 und MCU105 als Sekundärprozessoren fungieren. Folglich koordiniert MCU101 Aktivitäten über einen internen Kommunikationsbus111 unter der Vielzahl von Microcontrollern, inklusive eines Aktualisierens von Firmwareversionen für die Vielzahl von Microcontrollern. Beispielsweise können unterschiedliche Microcontroller unterschiedliche Funktionen für Mikroprozessorsystem100 unterstützen und folglich kann jeder Microcontroller unterschiedliche Sätze von computerlesbaren Anweisungen ausführen. - Im Computerwesen ist Firmware ein Computerprogramm, welches in einer Hardwarevorrichtung eingebettet ist, z.B. ein Microcontroller. Es kann auch auf einem Flashspeicher oder als eine binäre Bilddatei bereit gestellt sein, die durch einen Verwender auf eine existierende Hardware geladen werden kann.
- Firmware bezeichnet typischerweise den programmierbaren Inhalt einer Hardwarevorrichtung, welcher aus einer Maschinensprache für einen Mikroprozessor oder Konfigurationseinstellungen für ein Festfunktionsvorrichtung oder programmierbare Logikvorrichtung bestehen kann. Firmware kann häufig nach der Herstellung aktualisiert werden. Ein Neuprogrammieren (Aktualisieren) wird üblicherweise in modernen System elektronisch erledigt.
- Firmware wird durch traditionellerweise auf ROM gespeichert; jedoch haben Kosten und Leistungserfordernisse die Komponentenverkäufer dazu getrieben, verschiedene Ersetzungen anzuwenden, inklusive nicht-flüchtigen Medien sowie elektronisch löschbare programmierbare Nurlesespeicher (EEPROM)/Flashspeicher oder statische Zufallszugriffsspeicher (SRAM) Lösungen.
- Firmware kann eine von extern zugreifbare Schnittstelle aufweisen. Beispielsweise ist in einigen Modemimplementation die Firmware nicht direkt zugreifbar aber sie ist ein Teil einer Kommunikation von Hardware und Firmware, die Befehlen von dem Hostsystem antwortet.
- Flashspeicher
107 wird verwendet, um ein temporär aktualisiertes Programm temporär zu speichern. Einer der MCU kommuniziert typischerweise mit dem Hostsystem durch Kommunikationsschnittstelle109 . Beispielsweise ist MCU1 der primäre (Master) Mikroprozessor, der hauptsächlich mit dem Hostsystem kommuniziert und auch mit anderen Mikroprozessoren während des Aktualisierungsprozesses kommuniziert. In einer Ausführungsform weist Kommunikationsschnittstelle109 einen Funkfrequenznetzwerksendeempfänger auf, um einen drahtlosen Kommunikationskanal zwischen dem Hostsystem und Prozessorsystem100 zu unterstützen. - Flashspeicher
107 ist typischerweise ein nicht flüchtiger Computerspeicher, der elektronisch gelöscht und neuprogrammiert werden kann. Zusätzlich bietet Flashspeicher107 häufig schnelle Lesezugriffszeiten und eine bessere kinetische Schockwiderstandsfähigkeit als Festplatten (Hard Disks). Diese Eigenschaften sind einige der Gründe für die Beliebtheit von Flashspeichern in tragbaren Vorrichtungen. Flashspeicher107 kann in NOR und NAND Typen klassifiziert werden. - Um die Firmware von MCU's
101 ,103 und105 durch das Hostsystem zu aktualisieren, führt System100 das folgende durch. - 1. Wenn ein Hostsystem (nicht gezeigt) alle Firmware der MCU's des Prozessors
100 aktualisieren muss, initiiert (leitet ein) das Hostsystem durch Kommunikationsschnittstelle109 eine Anfrage. - 2. MCU
101 (primäre MCU) initiiert die selbe Anfrage an die sekundären MCU's (MCU103 und MCU105 ) durch einen internen Kommunikationsbus111 . - 3. Sekundäre MCU's
103 und105 antworten über den internen Kommunikationsbus111 der primären MCU101 bezüglich ihrer existierenden Firmwareversionen. - 4. Die primäre MCU
101 benachrichtigt das Hostsystem über die unterschiedlichen Versionen der Firmware von MCU's101 ,103 und105 . - 5. Das Hostsystem sendet die Firmware der derzeitigen (ursprünglichen) Version von MCU's
101 ,103 und105 zusammen mit den aktualisierten Versionen durch Kommunikationsschnitstelle109 . - 6. Wenn die primäre MCU
101 die Firmwarebilder empfangen hat, werden all die Programme (computerausführbare Anweisungen) im Flashspeicher107 gespeichert. - 7. Alle Programme werden mit einer Prüfsumme oder anderen Datensicherheitsmechanismen durch die primäre MCU
101 verifiziert. - 8. Primäre MCU
101 nutzt den internen Kommunikationsbus111 um zu bestimmen, ob sekundäre MCU's103 und105 den Betrieb eingestellt haben, sodass primäre MCU101 die Firmwareaktualisierung starten kann. - 9. Falls primäre MCU
101 es verfehlt, sich erfolgreich zu aktualisieren, kehrt die primäre MCU101 zu der ursprünglichen Version von Flashspeicher107 zurück, da das Hostsystem auch die ursprüngliche Version gesendet hat. - 10. Falls die primäre MCU
101 sich erfolgreich aktualisiert, informiert die primäre MCU101 die sekundäre MCU103 , seine Firmwareaktualisierung zu starten. Falls die sekundäre MCU103 sich nicht erfolgreich aktualisiert, kehren sowohl MCU101 als auch103 zu ihrer ursprünglichen Firmware zurück. (In solch einem Fall hat MCU105 sich nicht aktualisiert, so dass es nicht erforderlich ist, zurückzukehren). - 11. Schritt
10 wird angewendet auf die übrigen sekundären MCU's (z.B. MCU105 ) bis alle sekundären MCU's sich erfolgreich aktualisiert haben. -
2 zeigt ein Flussdiagramm200 zum Aktualisieren von computerlesbaren Anweisungen (z.B. Firmware) in einem Prozessorsystem (z.B. System100 ) gemäß einer Ausführungsform der Erfindung. In Ausführungsformen wird Flussdiagramm200 durch den Primärprozessor (z.B. Primärprozessor101 ) des Prozessorsystems ausgeführt. In Schritt201 bestimmt das Prozessorsystem, ob das Hostsystem eine Firmwareaktualisierung angefordert hat. Falls nicht, wird Prozess200 beendet. Andernfalls identifiziert das Prozessorsystem die Firmwareversionen für die Prozessoren (z.B. MCU's101 ,103 und105 ) in den Prozessorsystem. In Antwort sendet das Hostsystem sowohl die aktualisierte Firmwareversion als auch die ursprüngliche (derzeitige) Firmwareversion für jeden Prozessor über einen Kommunikationskanal an das Prozessorsystem. In Ausführungsformen der Erfindung wird, falls eine Firmware für einen Prozessor sich nicht verändert hat, dieser Prozessor nicht aktualisiert. Die ursprünglichen Firmwareversionen und die aktualisierten Firmwareversionen werden daraufhin in einem Speicher, z.B. Flashspeicher107 , gespeichert. - In Schritt
209 aktualisiert der Primärprozessor seine Firmware mit der aktualisierten Firmwareversion. Falls die Firmwareaktualisierung des Primärprozessors nicht erfolgreich ist, kehrt der Primärprozessor zu der ursprünglichen Firmwareversion in Schritt213 zurück und das Prozessorsystem beendet Prozess200 . (Eine Firmwareaktualisierung kann aus unterschiedlichen Gründen fehlschlagen, typischerweise in Folge eines Hardwareproblems. Beispielsweise kann ein Speicherbit bei „1“ stecken bleiben während das entsprechende Bit der aktualisierten Firmware „0“ ist. In solch einem Fall kann die alte Firmware immer noch ausgeführt werden.) Falls die Firmwareaktualisierung in Schritt211 erfolgreich ist, schreitet das Prozessorsystem zur Aktualisierung der übrigen Sekundärprozessoren (z.B. Prozessoren103 und105 ) mit den aktualisierten Firmwareversion in Schritten217 ,219 ,221 und225 fort. Wenn alle der Sekundärprozessoren aktualisiert worden sind, wird Prozess200 beendet. Unterschiedliche Sekundärprozessoren können unterschiedliche Firmwareversionen zum Ausführen unterschiedlicher Funktionen in dem Prozessorsystem haben. Falls die Firmwareaktualisierung für irgendeinen der Sekundärprozessoren fehlschlägt, kehren der Sekundärprozessor ebenso wie jeder Sekundärprozessor und der Primärprozessor, die zuvor aktualisiert wurden, zu der ursprünglichen Firmwareversion in Schritt221 ,213 zurück und Prozess200 endet in Schritt215 . -
3 zeigt ein Blockdiagramm300 eines Prozessors (z.B. Prozessor101 ,103 oder105 ) gemäß einer Ausführungsform der Erfindung. Verarbeitungsschaltung301 führt computerausführbare Anweisungen (entsprechend einem Ladeprogrammlader) aus, auf die vom internen Speicher303 zugegriffen wird, um seine Firmware zu aktualisieren. In Ausführungsformen der Erfindung kann die Firmware sowohl computerausführbare Anweisungen für ein Ladeprogramm Laden als auch zum Durchführen von beabsichtigten Funktionen (z.B. Steuern eines HVAC Systems) aufweisen. Nachdem die Firmware aktualisiert worden ist, kann Verarbeitungsschaltung301 computerausführbare Anweisungen ausführen, um seine beabsichtige Funktionen auszuführen. - Der Ladeprogrammlader lädt Firmware für Prozessoren. In Ausführungsformen speichert ein interner Speicher
303 sowohl den Ladeprogrammlader als auch die operativen computerausführbaren Anweisungen, wobei die aktualisierte Firmware sowohl eine Laderfirmware als auch eine operative Firmware aufweist. Die Laderfirmware ist typischerweise in der aktualisierten Firmwareversion verändert. (In Ausführungsformen der Erfindung wird der Ladeprogrammlader nicht aktualisiert.) Jedoch unterstützen Ausführungsformen auch Konfigurationen, in welchen auf den Ladeprogrammlader von separaten Speichervorrichtungen (nicht gezeigt) zugegriffen wird und nicht mit der operativen Firmware aktualisiert werden kann, welche in Speicher303 gespeichert ist. Sobald die Firmware geladen (aktualisiert) worden ist, führt Verarbeitungsschaltung301 die operative Firmware aus, um seine beabsichtigen Funktionen durchzuführen. - Eine aktualisierte Firmware wird durch eine externe Speicherschnittstelle
305 erhalten, welche eine Schnittstelle zu einem externen Speicher, z.B. Flashspeicher107 , bildet. Das Firmwarebild kann direkt an einen internen Speicher303 von einer externen Speicherschnittstelle305 (direkter Speicherzugriff) übertragen werden oder kann durch Verarbeitungsschaltung301 übertragen werden. - Verarbeitungsschaltung
301 kommuniziert über einen internen Kommunikationsbus111 durch eine interne Kommunikationsschnittstelle309 , um mit anderen Prozessoren in dem Prozessorsystem zu kommunizieren. - Verarbeitungsschaltung
300 greift auf Peripherievorrichtungen durch Peripherieschnittstelle307 zu. Verarbeitungsschaltung300 kann beabsichtigte Funktionen durch Steuern von externen Peripherievorrichtungen (z.B. ein Thermostat oder eine Motorsteuereinheit) durchführen. Beispielsweise kann Verarbeitungsschaltung300 eine Kommunikations- und Protokollverarbeitung unterstützen, wobei auf ein LCD Display und eine Tastatur durch Peripherieschnittstelle307 zugegriffen wird. Auch kann, wenn Prozessor300 als der Primärprozessor betrieben wird, Prozessor300 mit einem Hostsystem durch Peripherieschnittstelle307 kommunizieren. -
4 bis10 zeigen Szenarien, welche durch System100 unterstützt sein können, um eine Firmware zu aktualisieren. Wie in4 gezeigt ist, fragt Hostsystem401 einen Primärprozessor403 bezüglich der Firmwareversion von Prozessoren403 ,405 und407 in Schritt451 . Primärprozessor403 erhält die derzeitigen Firmwareversion der Sekundärprozessoren405 und407 in Schritten453 bis459 . Primärprozessor403 berichtet anschließend die derzeitigen Firmwareversionen der Prozessoren (inklusive seiner selbst) an Hostsystem401 in Schritt461 . In den Szenarien, die in4 bis10 gezeigt sind, wird angenommen, dass nur Prozessoren403 und405 aktualisiert werden. - Wie in
5 gezeigt ist, sendet Host401 derzeitige und aktualisierte Firmwareversionen für Prozessoren403 und405 an den Primärprozessor403 in Schritt551 . Die Firmwarebilder werden in Flashspeicher409 in Schritt553 gespeichert. Wie in6 gezeigt ist, greift Primärprozessor403 auf sein aktualisiertes Firmwarebild von Flashspeicher409 in Schritt651 zu und aktualisiert seine Firmware in Schritt653 . - Firmwareaktualisierung
653 wird entweder fehlschlagen oder erfolgreich sein, wie in7 und8 jeweils gezeigt ist. Falls die Aktualisierung fehlschlägt, liest Primärprozessor403 das alte Firmwarebild von Flashspeicher409 in Schritt751 und kehrt zu der alten Firmware in Schritt753 zurück. Primärprozessor403 berichtet die Ergebnisse der Firmwareaktualisierung in Schritt755 . Falls die Aktualisierung erfolgreich ist, weist Primärprozessor403 ein Sekundärprozessor405 zum Aktualisieren seiner Firmware in Schritt851 an. Folglich liest Prozessor405 sein aktualisiertes Firmwarebild von Flashspeicher409 in Schritt853 und aktualisiert seine Firmware in Schritt855 . - Eine Firmwareaktualisierung
855 wird entweder fehlschlagen oder erfolgreich sein wie in9 und10 jeweils gezeigt ist. Falls die Aktualisierung fehlschlägt, informiert Sekundärprozessor405 Primärprozessor403 über den Fehler in Schritt951 . In Schritten953 bis963 kehren Prozessoren403 und405 zurück zu der alten Version der Firmware. Primärprozessor403 berichtet anschließend die Ergebnisse der Firmwareaktualisierung in Schritt965 . Falls die Aktualisierung erfolgreich ist, informiert Primärprozessor403 Hostsystem401 über die Firmwareaktualisierung in Schritt1051 . - Ausführungsformen der Erfindung können Formen von computerlesbaren Medien aufweisen. Computerlesbare Medien weisen Medien auf, auf die durch eine Computervorrichtung
101 zugegriffen werden kann. Computerlesbare Medien können Speichermedien und Kommunikationsmedien umfassen. Speichermedien weisen flüchtige und nicht-flüchtige, entfernbare und nicht-entfernbare Medien implementiert in irgendeine Methode oder Technologie zum Speichern von Informationen so wie computerlesbare Anweisungen, Objekt Code, Datenstrukturen, Programmmodule oder andere Daten auf. Kommunikationsmedien umfassen irgendwelche Informationsliefermedien und verkörpern typischerweise Daten in einem modellierten Datensignal so wie eine Trägerwelle oder ein anderer Transportmechanismus. - Obwohl nicht erforderlich, wird ein Fachmann verstehen, dass verschiedene Aspekte die vorliegend beschrieben sind, als ein Verfahren, ein Datenverarbeitungssystem oder ein computerlesbares Medium, welches computerausführbare Anweisungen speichert, verkörpert sein können. Beispielsweise ist ein computerlesbares Medium, welches Anweisungen speichert, um einen Prozessor zu veranlassen, Schritte eines Verfahrens gemäß Aspekten der Erfindung auszuführen, in Erwägung gezogen. Beispielsweise können Aspekte der Verfahrensschritte, die vorliegend offenbart sind, auf einen Prozessor auf einer Computervorrichtung
101 durchgeführt werden. Solch ein Prozessor kann computerlesbare Anweisungen ausführen, die auf einem computerlesbaren Medium gespeichert sind. - Wie durch den Fachmann verstanden werden kann, kann ein Computersystem mit einem zugeordneten computerlesbaren Medium, welches Anweisungen zum Steuern des Computersystems enthält, verwendet werden, um die beispielhaften Ausführungsformen zu implementieren, die vorliegend offenbart sind. Das Computersystem kann wenigstens ein Computer, so wie einen Mikroprozessor, einen digitalen Signalprozessor, und eine zugeordnete peripherieelektronische Schaltung aufweisen.
- Obwohl der Gegenstand in einer Sprache beschrieben wurde, die sich spezifisch auf strukturelle Merkmale und/oder methodologische Handlungen bezieht, muss verstanden werden, dass der Gegenstand, der in den angefügten Ansprüchen definiert ist, nicht notwendig auf die spezifischen Merkmale oder Handlungen begrenzt ist, die oben beschrieben sind. Vielmehr sind die spezifischen Merkmale und Handlungen, die oben beschrieben sind, als Beispielformen einer Implementierung der Ansprüche offenbart.
Claims (19)
- Vorrichtung mit: einem Speicher; einem zweiten Prozessor; einer Kommunikationsschnittstelle; einem ersten Prozessor, der ausgestaltet ist zum: Empfangen einer Einleitungsanfrage zum Aktualisieren von computerlesbaren Anweisungen für die Vorrichtung, welche auf einer Vielzahl von Prozessoren ausführbar sind, die den ersten Prozessor und den zweiten Prozessor aufweisen; Benachrichtigen, durch die Kommunikationsschnittstelle, eines Hostsystems über ursprüngliche Computerprogrammversionen, die der Vielzahl von Prozessoren zugeordnet sind, wobei eine erste ursprüngliche Computerprogrammversion dem ersten Prozessor zugeordnet ist und eine zweite ursprüngliche Computerprogrammversion dem zweiten Prozessor zugeordnet ist; Empfangen, durch die Kommunikationsschnittstelle, eines ersten ursprünglichen Satzes von computerlesbaren Anweisungen und eines ersten aktualisierten Satzes von computerlesbaren Anweisungen, die dem ersten Prozessor zugeordnet sind, und eines zweiten ursprünglichen Satzes von computerlesbaren Anweisungen und einem zweiten aktualisierten Satzes von computerlesbaren Anweisungen, die dem zweiten Prozessor zugeordnet sind; Speichern des ersten ursprünglichen Satzes, des ersten aktualisierten Satzes, des zweiten derzeitigen Satzes, und des zweiten aktualisierten Satzes in dem Speicher; Einleiten einer Aktualisierung des ersten Prozessors mit dem ersten aktualisierten Satz von computerlesbaren Anweisungen von dem Speicher; Zurückkehren, wenn der erste Prozessor sich nicht erfolgreich aktualisiert, zu dem ersten ursprünglichen Satz von computerlesbaren Anweisungen für den ersten Prozessor; wenn der erste Prozessor sich erfolgreich mit dem ersten aktualisierten Satz von computerlesbaren Anweisungen aktualisiert hat, Einleiten einer Aktualisierung des zweiten Prozessors mit dem zweiten aktualisierten Satz von computerlesbaren Anweisungen von den Speichern; und wenn der zweite Prozessor sich nicht erfolgreich aktualisiert, unbedingt Zurückkehren zu dem zweiten ursprünglichen Satz von computerlesbaren Anweisungen für den zweiten Prozessor und Zurückkehren zu dem ersten ursprünglichen Satz von computerlesbaren Anweisungen für den ersten Prozessor, wenn der erste Prozessor sich erfolgreich mit dem ersten aktualisierten Satz von computerlesbaren Anweisungen aktualisiert hat.
- Vorrichtung nach
Anspruch 1 , ferner mit: einem dritten Prozessor; wobei der erste Prozessor ferner ausgestaltet ist zum: Empfangen eines dritten ursprünglichen Satzes von computerlesbaren Anweisungen und eines dritten aktualisierten Satzes von computerlesbaren Anweisungen, die dem dritten Prozessor zugeordnet sind; Speichern des dritten ursprünglichen Satzes und des dritten aktualisierten Satzes in dem Speicher; Einleiten eines Aktualisierens des dritten Prozessors mit dem dritten aktualisierten Satz von computerlesbaren Anweisungen von dem Speicher, wenn der erste Prozessor und der zweite Prozessor sich erfolgreich aktualisiert haben; und wenn der dritte Prozessor sich nicht erfolgreich aktualisiert hat, Zurückkehren zu den ursprünglichen Sätzen von computerlesbaren Anweisungen für die entsprechenden Prozessoren. - Vorrichtung nach
Anspruch 1 , wobei der Speicher einen Flashspeicher aufweist. - Vorrichtung nach
Anspruch 1 , wobei der erste derzeitige Satz von computerlesbaren Anweisungen in dem ersten Prozessor eingebettet ist. - Vorrichtung nach
Anspruch 1 , wobei der erste Prozessor ferner ausgestaltet ist zum: Verifizieren, durch einen Datensicherheitsmechanismus, des ersten derzeitigen Satzes, des ersten aktualisierten Satzes, des zweiten derzeitigen Satzes und des zweiten aktualisierten Satzes in dem Speicher, nach dem die Sätze in dem Speicher gespeichert sind. - Vorrichtung nach
Anspruch 5 , wobei der Datensicherheitsmechanismus eine Prüfsumme aufweist. - Vorrichtung nach
Anspruch 1 , ferner mit: einem internen Kommunikationsbus, und wobei der erste Prozessor ferner ausgestaltet ist zum: Anweisen des zweiten Prozessors, über den internen Kommunikationsbus, einen Betrieb zu beenden, bevor die Aktualisierung eingeleitet wird. - Vorrichtung nach
Anspruch 1 , wobei die erste ursprüngliche Computerprogrammversion sich von der zweiten ursprünglichen Computerprogrammversion unterscheidet. - Vorrichtung nach
Anspruch 1 , wobei die Kommunikationsschnittelle eine Schnittstelle mit einem drahtlosen Kommunikationskanal bildet. - Verfahren mit: Empfangen einer Einleitungsanfrage zum Aktualisieren von computerlesbaren Anweisungen, die auf einer Vielzahl von Prozessoren ausführbar sind, die einen ersten Prozessor und einen zweiten Prozessor aufweisen; Benachrichtigen eines Hostsystems über ursprüngliche Computerprogrammversionen, die der Vielzahl von Prozessoren zugeordnet sind, wobei eine erste ursprüngliche Computerprogrammversion dem ersten Prozessor zugeordnet ist und eine zweite ursprüngliche Computerprogrammversion dem zweiten Prozessor zugeordnet ist; Empfangen eines ersten ursprünglichen Satzes von computerlesbaren Anweisungen und eines ersten aktualisierten Satzes von computerlesbaren Anweisungen, welche dem ersten Prozessor zugeordnet sind, und eines zweiten ursprünglichen Satzes von computerlesbaren Anweisungen und eines zweiten aktualisierten Satzes von computerlesbaren Anweisungen, welche dem zweiten Prozessor zugeordnet sind; Speichern des ersten ursprünglichen Satzes, des ersten aktualisierten Satzes, des zweiten derzeitigen Satzes und des zweiten aktualisierten Satzes in einem Speicher; Aktualisieren des ersten Prozessors mit dem ersten aktualisierten Satz von computerlesbaren Anweisungen von dem Speicher; wenn der erste Prozessor sich nicht erfolgreich aktualisiert, Zurückkehren zu dem ersten ursprünglichen Satz von computerlesbaren Anweisungen für den ersten Prozessor wenn der erste Prozessor sich mit dem ersten aktualisierten Satz von computerlesbaren Anweisungen erfolgreich aktualisiert hat, Aktualisieren des zweiten Prozessors mit dem zweiten aktualisierten Satz von computerlesbaren Anweisungen von dem Speicher; und wenn der zweite Prozessor sich nicht erfolgreich aktualisiert, unbedingt Zurückkehren zu dem zweiten ursprünglichen Satz von computerlesbaren Anweisungen für den zweiten Prozessor und Zurückkehren zu dem ersten ursprünglichen Satz von computerlesbaren Anweisungen für den ersten Prozessor, wenn der erste Prozessor sich mit dem ersten aktualisierten Satz von computerlesbaren Anweisungen erfolgreich aktualisiert hat.
- Verfahren nach
Anspruch 10 , ferner mit: Empfangen eines dritten ursprünglichen Satzes von computerlesbaren Anweisungen und eines dritten aktualisierten Satzes von computerlesbaren Anweisungen, welche einem dritten Prozessor zugeordnet sind; Speichern des dritten ursprünglichen Satzes und des dritten aktualisierten Satzes in dem Speicher; Aktualisieren des dritten Prozessors mit dem dritten aktualisierten Satz von computerlesbaren Anweisungen von dem Speicher, wenn der erste Prozessor und der zweite Prozessor sich erfolgreich aktualisiert haben; und wenn der dritte Prozessor sich nicht erfolgreich aktualisiert hat, Zurückkehren zu den ursprünglichen Sätzen von computerlesbaren Anweisungen für die entsprechenden Prozessoren. - Verfahren nach
Anspruch 10 , wobei der Speicher einen Flashspeicher aufweist. - Verfahren nach
Anspruch 10 , wobei der erste derzeitige Satz von computerlesbaren Anweisungen in dem ersten Prozessor eingebettet ist. - Verfahren nach
Anspruch 10 , ferner mit: Verifizieren des ersten derzeitigen Satzes, des ersten aktualisierten Satzes, des zweiten derzeitigen Satzes und des zweiten aktualisierten Satzes in dem Speicher nach einem Speichern der Sätze in dem Speicher. - Verfahren nach
Anspruch 14 , ferner mit: Verifizieren der gespeicherten Sätze von computerlesbaren Anweisungen mit einer Prüfsumme. - Verfahren nach
Anspruch 10 , ferner mit: Anweisen des zweiten Prozessors zum Beenden eines Betriebs vor einem Einleiten einer Aktualisierung. - Verfahren nach
Anspruch 10 , wobei die erste ursprüngliche Computerprogrammversion sich von der zweiten ursprünglichen Computerprogrammversion unterscheidet. - Vorrichtung nach
Anspruch 10 , wobei der erste Prozessor mit dem Hostcomputer über einen drahtlosen Kommunikationskanal kommuniziert. - Computerlesbares Medium mit computerausführbaren Anweisungen, die, wenn sie ausgeführt werden, durchführen: Empfangen einer Einleitungsanfrage zum Aktualisieren von Firmware, die auf einer Vielzahl von Prozessoren ausführbar ist, die einen ersten Prozessor und einen zweiten Prozessor aufweisen; Benachrichtigen eines Hostsystems über ursprüngliche Computerprogrammversionen, die der Vielzahl von Prozessoren zugeordnet sind, wobei eine erste ursprüngliche Computerprogrammversion dem ersten Prozessor zugeordnet ist und eine zweite ursprüngliche Computerprogrammversion dem zweiten Prozessor zugeordnet ist; Empfangen eines ersten ursprünglichen Satzes von computerlesbaren Anweisungen und eines ersten aktualisierten Satzes von computerlesbaren Anweisungen, welche dem ersten Prozessor zugeordnet sind, und eines zweiten ursprünglichen Satzes von computerlesbaren Anweisungen und eines zweiten aktualisierten Satzes von computerlesbaren Anweisungen, welche dem zweiten Prozessor zugeordnet sind; Speichern des ersten ursprünglichen Satzes, des ersten aktualisierten Satzes, des zweiten derzeitigen Satzes und des zweiten aktualisierten Satzes in einem Speicher; Aktualisieren des ersten Prozessors mit dem ersten aktualisierten Satz von computerlesbaren Anweisungen von dem Speicher; wenn der erste Prozessor sich nicht erfolgreich aktualisiert, Zurückkehren zu dem ersten ursprünglichen Satz von computerlesbaren Anweisungen für den ersten Prozessor; wenn der erste Prozessor sich mit dem ersten aktualisierten Satz von computerlesbaren Anweisungen erfolgreich aktualisiert hat, Einleiten eines Aktualisierens des zweiten Prozessors mit dem zweiten aktualisierten Satz von computerlesbaren Anweisungen von dem Speicher; und wenn der zweite Prozessor sich nicht erfolgreich aktualisiert, unbedingt Zurückkehren zu dem zweiten ursprünglichen Satz von computerlesbaren Anweisungen für den zweiten Prozessor und Zurückkehren zu dem ersten ursprünglichen Satz von computerlesbaren Anweisungen für den ersten Prozessor, wenn der erste Prozessor sich mit dem ersten aktualisierten Satz von computerlesbaren Anweisungen erfolgreich aktualisiert hat.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US12/203,503 | 2008-09-03 | ||
| US12/203,503 US8136108B2 (en) | 2008-09-03 | 2008-09-03 | Updating firmware with multiple processors |
| PCT/CN2009/073695 WO2010025669A1 (en) | 2008-09-03 | 2009-09-02 | Updating firmware with multiple processors |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE112009002207T5 DE112009002207T5 (de) | 2012-08-23 |
| DE112009002207B4 true DE112009002207B4 (de) | 2020-09-03 |
Family
ID=41727214
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE112009002207.3T Active DE112009002207B4 (de) | 2008-09-03 | 2009-09-02 | Aktualisieren einer Firmware mit mehreren Prozessoren |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US8136108B2 (de) |
| DE (1) | DE112009002207B4 (de) |
| GB (1) | GB2474821B (de) |
| WO (1) | WO2010025669A1 (de) |
Families Citing this family (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7590835B1 (en) | 2006-06-30 | 2009-09-15 | American Megatrends, Inc. | Dynamically updating a computer system firmware image |
| US9395968B1 (en) | 2006-06-30 | 2016-07-19 | American Megatrends, Inc. | Uniquely identifying and validating computer system firmware |
| US7797696B1 (en) * | 2006-06-30 | 2010-09-14 | American Megatrends, Inc. | Dynamically updating a computer system and firmware image utilizing an option read only memory (OPROM) data structure |
| JP5113700B2 (ja) * | 2008-09-24 | 2013-01-09 | 株式会社日立ソリューションズ | ファームウェア更新装置及び方法 |
| US20110264279A1 (en) * | 2010-04-23 | 2011-10-27 | Poth Robert J | HVAC control |
| US20120117555A1 (en) * | 2010-11-08 | 2012-05-10 | Lsi Corporation | Method and system for firmware rollback of a storage device in a storage virtualization environment |
| US8869131B2 (en) * | 2011-06-09 | 2014-10-21 | Dot Hill Systems Corporation | Method and apparatus for downgrading firmware in a controller |
| US9524234B2 (en) | 2013-03-15 | 2016-12-20 | Universal Electronics Inc. | System and method for optimizing memory usage in a universal controlling device |
| US9167288B2 (en) | 2013-03-15 | 2015-10-20 | Universal Electronics Inc. | System and method for optimizing memory usage in a universal controlling device |
| US10642693B2 (en) * | 2017-09-06 | 2020-05-05 | Western Digital Technologies, Inc. | System and method for switching firmware |
| CN109725915A (zh) * | 2017-10-31 | 2019-05-07 | 深圳光峰科技股份有限公司 | 升级装置、升级方法及相关dlp系统 |
| US10989427B2 (en) | 2017-12-20 | 2021-04-27 | Trane International Inc. | HVAC system including smart diagnostic capabilites |
| US11210081B2 (en) | 2019-03-15 | 2021-12-28 | Carrier Corporation | Configuring firmware for a target device |
| KR102772056B1 (ko) * | 2019-04-10 | 2025-02-25 | 현대모비스 주식회사 | 차량의 바이너리 데이터 처리 장치 및 방법 |
| US11366879B2 (en) * | 2019-07-08 | 2022-06-21 | Microsoft Technology Licensing, Llc | Server-side audio rendering licensing |
| US12039323B2 (en) | 2020-04-21 | 2024-07-16 | Hewlett-Packard Development Company, L.P. | BIOS updates |
| CN112596763A (zh) * | 2020-12-17 | 2021-04-02 | 青岛海信电子产业控股股份有限公司 | 一种智能家居设备无线升级的方法和装置及设备 |
| US12182563B2 (en) * | 2023-01-03 | 2024-12-31 | Mellanox Technologies, Ltd. | Fast in-service software updating using multi-layer memory |
| BE1032193B1 (nl) * | 2023-12-21 | 2025-09-05 | Atlas Copco Airpower Nv | Systeem en procedure voor het bijwerken van software |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060218545A1 (en) * | 2005-03-22 | 2006-09-28 | Nec Corporation | Server system and online software update method |
| US20080127166A1 (en) * | 2006-11-29 | 2008-05-29 | International Business Machines Corporation | Synchronizing controller firmware download |
Family Cites Families (28)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2710195B2 (ja) | 1992-12-15 | 1998-02-10 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 記憶装置コントローラ |
| US5754785A (en) * | 1995-04-27 | 1998-05-19 | General Datacomm | Communications network equipment |
| 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 |
| US7000101B2 (en) * | 2001-12-21 | 2006-02-14 | Dell Products L.P. | System and method for updating BIOS for a multiple-node computer system |
| US7065560B2 (en) * | 2002-03-12 | 2006-06-20 | Hewlett-Packard Development Company, L.P. | Verification of computer program versions based on a selected recipe from a recipe table |
| US6725324B2 (en) | 2002-04-23 | 2004-04-20 | Hewlett-Packard Development Company, L.P. | Method and apparatus for increasing flash ROM programming performance in a multiple processor computer system |
| US7036007B2 (en) | 2002-09-09 | 2006-04-25 | Intel Corporation | Firmware architecture supporting safe updates and multiple processor types |
| US6996699B2 (en) * | 2002-09-10 | 2006-02-07 | Microsoft Corporation | Secondary processor execution kernel framework |
| AU2003279086A1 (en) * | 2002-09-30 | 2004-04-23 | Insignia Solutions Plc | Efficient system and method for updating a memory device |
| US7987449B1 (en) * | 2003-05-22 | 2011-07-26 | Hewlett-Packard Development Company, L.P. | Network for lifecycle management of firmware and software in electronic devices |
| US7542757B2 (en) * | 2003-11-20 | 2009-06-02 | Agere Systems Inc. | Method, system, and computer program product for over-the-air download to satellite radio |
| US20050132351A1 (en) * | 2003-12-12 | 2005-06-16 | Randall Roderick K. | Updating electronic device software employing rollback |
| US7797693B1 (en) * | 2003-12-12 | 2010-09-14 | Hewlett-Packard Development Company, L.P. | NAND mobile devices capable of updating firmware or software in a manner analogous to NOR mobile devices |
| EP1574952B1 (de) * | 2004-03-10 | 2008-04-16 | Sony Ericsson Mobile Communications AB | Automatisierter Datensicherungsspeicher in Firmware-Aufwertungen |
| EP1769343B1 (de) * | 2004-06-01 | 2014-04-30 | Red Bend Ltd. | Verfahren und system zur in-place-aktualisierung von in einem speicherbaustein gespeichertem inhalt |
| US7334117B2 (en) | 2004-08-04 | 2008-02-19 | National Instruments Corporation | Device boot loader for processing one or more requests from a host computer system concurrently with loading or updating the firmware of the device |
| US7353375B2 (en) * | 2004-10-07 | 2008-04-01 | Hewlett-Packard Development Company, L.P. | Method and apparatus for managing processor availability using a microcode patch |
| US20060085564A1 (en) * | 2004-10-14 | 2006-04-20 | Bomhoff Matthew D | Flash mirroring |
| US20060112152A1 (en) * | 2004-11-22 | 2006-05-25 | Microsoft Corporation | Smart patching by targeting particular prior versions of a file |
| US7200390B1 (en) | 2004-12-30 | 2007-04-03 | Cellco Partnership | Device software update transport and download |
| JP2006227830A (ja) * | 2005-02-16 | 2006-08-31 | Seiko Epson Corp | 情報処理機器及び情報処理機器の制御方法 |
| US7600055B2 (en) * | 2006-01-03 | 2009-10-06 | International Business Machines Corporation | Apparatus, system, and method for firmware update of redundant controllers |
| US8713551B2 (en) * | 2006-01-03 | 2014-04-29 | International Business Machines Corporation | Apparatus, system, and method for non-interruptively updating firmware on a redundant hardware controller |
| US9032164B2 (en) * | 2006-02-17 | 2015-05-12 | Emulex Corporation | Apparatus for performing storage virtualization |
| US20080052699A1 (en) | 2006-08-02 | 2008-02-28 | Baker Steven T | Syncronized dual-processor firmware updates |
| WO2008022195A1 (en) * | 2006-08-15 | 2008-02-21 | Hewlett-Packard Development Company, L.P. | Device management system for mobile devices that supports multiple-point transport |
| CN101192165B (zh) | 2006-11-29 | 2014-08-13 | 中兴通讯股份有限公司 | 主从式多处理器系统以及软件版本加载方法 |
-
2008
- 2008-09-03 US US12/203,503 patent/US8136108B2/en active Active
-
2009
- 2009-09-02 WO PCT/CN2009/073695 patent/WO2010025669A1/en not_active Ceased
- 2009-09-02 DE DE112009002207.3T patent/DE112009002207B4/de active Active
- 2009-09-02 GB GB1104077.1A patent/GB2474821B/en active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20060218545A1 (en) * | 2005-03-22 | 2006-09-28 | Nec Corporation | Server system and online software update method |
| US20080127166A1 (en) * | 2006-11-29 | 2008-05-29 | International Business Machines Corporation | Synchronizing controller firmware download |
Also Published As
| Publication number | Publication date |
|---|---|
| US20100058316A1 (en) | 2010-03-04 |
| WO2010025669A1 (en) | 2010-03-11 |
| GB2474821A (en) | 2011-04-27 |
| GB201104077D0 (en) | 2011-04-27 |
| GB2474821B (en) | 2012-06-20 |
| US8136108B2 (en) | 2012-03-13 |
| DE112009002207T5 (de) | 2012-08-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE112009002207B4 (de) | Aktualisieren einer Firmware mit mehreren Prozessoren | |
| DE112011103829B4 (de) | Verfahren und System zum Erzeugen einer virtuellen Maschine auf der Grundlage von Vorlagen | |
| DE112012005589B4 (de) | Informationsverarbeitungsvorrichtung, Informationsverarbeitungsverfahren und Computerprogramm | |
| DE102006047979B4 (de) | Datenverarbeitungssystem, Verfahren und Computerprogrammprodukt zum Ausführen einer Testroutine in Verbindung mit einem Betriebssystem | |
| DE102007012448B4 (de) | Ein chipsatz-unabhängiges Verfahren für lokale Aktualisierung und Konfigurierung eines System-BIOS | |
| DE10315490B4 (de) | Verfahren und System zum Wechsel zwischen zwei oder mehreren Firmwareabbildungen auf einer Hostvorrichtung | |
| DE69730430T2 (de) | Verfahren und gerät zum bereitstellen von verbesserten diagnostischen funktionen in einem computersystem | |
| DE102006009943A1 (de) | Verfahren zum Anwenden von tragbarer Software | |
| DE112012005118T5 (de) | Sichern von Firmware während der Initialisierung einer Einheit | |
| DE102019109672A1 (de) | Rückgängigmachung nach einem teilausfall in mehreren elektronischen steuergeräten mittels over-the-air-updates | |
| DE102021127242B4 (de) | System und Verfahren zum Signieren und Verriegeln einer Boot-Informationsdatei für ein Host-Computersystem | |
| DE112009004563T5 (de) | Bios-bild-verwalter | |
| DE102009020389A1 (de) | System zur Aktualisierung von Firmware und Verfahren dazu, und Verfahren zum Erzeugen von Firmware | |
| DE102021125630A1 (de) | Datensynchronisation in einem datenanalysesystem | |
| DE112012004793B4 (de) | Erzeugen einer virtuellen Anwendung | |
| DE202015101633U1 (de) | Computersystem und Speichervorrichtung | |
| DE112008001773T5 (de) | Firmwarewiedergewinnung über ein Netzwerk | |
| DE112020002785T5 (de) | Verfahren für ein virtualisierungssystem auf container-grundlage | |
| DE112008003584B4 (de) | Ein einheitliches Aussehen und Anfühlen schaffende Bios-Graphikmaschine | |
| DE112016007336B4 (de) | Informationsverarbeitungsvorrichtung, Vorrichtungszuweisungsverfahren undVorrichtungszuweisungsprogramm | |
| DE112006001744T5 (de) | Manipulationsschutz, um Installation von Betriebssystemen und anderer Software zu beschränken | |
| DE69526476T2 (de) | Vorrichtung mit Flash-Speichersteuerung zur Änderung | |
| DE102009014981B4 (de) | Vorrichtung, System und Verfahren für die Modifikation einer Pre-Boot-Vorschrift | |
| DE102013213314A1 (de) | Hinterlegen mindestens eines berechenbaren Integritätsmesswertes in einem Speicherbereich eines Speichers | |
| DE112006001978T5 (de) | Verifizierte Computerumgebung für persönliches Internetkommunikationsgerät |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R409 | Internal rectification of the legal status completed | ||
| R012 | Request for examination validly filed | ||
| R082 | Change of representative |
Representative=s name: HASELTINE LAKE LLP, DE |
|
| R012 | Request for examination validly filed |
Effective date: 20140926 |
|
| R016 | Response to examination communication | ||
| R016 | Response to examination communication | ||
| R018 | Grant decision by examination section/examining division | ||
| R079 | Amendment of ipc main class |
Free format text: PREVIOUS MAIN CLASS: G06F0009445000 Ipc: G06F0008650000 |
|
| R081 | Change of applicant/patentee |
Owner name: COMPUTIME LTD., SHATIN, HK Free format text: FORMER OWNER: COMPUTIME, LTD., WANCHAI, HK |
|
| R082 | Change of representative |
Representative=s name: HASELTINE LAKE KEMPNER LLP, DE Representative=s name: HL KEMPNER PATENTANWALT, RECHTSANWALT, SOLICIT, DE |
|
| R083 | Amendment of/additions to inventor(s) | ||
| R082 | Change of representative |
Representative=s name: HL KEMPNER PATENTANWAELTE, SOLICITORS (ENGLAND, DE Representative=s name: HL KEMPNER PARTG MBB, DE Representative=s name: HL KEMPNER PATENTANWALT, RECHTSANWALT, SOLICIT, DE |
|
| R020 | Patent grant now final |