DE10152530A1 - Arbeitsablauffreundliche Firmware-Aktualisierungen für Netzwerkvorrichtungen - Google Patents

Arbeitsablauffreundliche Firmware-Aktualisierungen für Netzwerkvorrichtungen

Info

Publication number
DE10152530A1
DE10152530A1 DE10152530A DE10152530A DE10152530A1 DE 10152530 A1 DE10152530 A1 DE 10152530A1 DE 10152530 A DE10152530 A DE 10152530A DE 10152530 A DE10152530 A DE 10152530A DE 10152530 A1 DE10152530 A1 DE 10152530A1
Authority
DE
Germany
Prior art keywords
program
copy
active
operating system
update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE10152530A
Other languages
English (en)
Other versions
DE10152530B4 (de
Inventor
John L Boldon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of DE10152530A1 publication Critical patent/DE10152530A1/de
Application granted granted Critical
Publication of DE10152530B4 publication Critical patent/DE10152530B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running

Abstract

Ein Laserdrucker speichert eine komprimierte Quellenkopie seines Betriebssystems in einem Flash-Speicher. Auf ein Hochfahren hin wird die Quellenkopie verwendet, um eine Aktivkopie des Betriebssystems zu erzeugen, das zum schnelleren Betrieb von einem RAM ausgeführt wird. Eine Netzwerkverwaltungsstation kann ein Aktualisierungsbetriebssystem in komprimierter Form über ein Netzwerk an den Drucker übertragen, der die Aktualisierung als einen weiteren Druckauftrag behandelt und denselben in seine Auftragswarteschlange in dem RAM plaziert. Wenn die Aktualisierung den Anfang der Warteschlange erreicht, wird diese auf den Flash-Speicher geschrieben, wobei die Quellenkopie des Aktivbetriebssystems überschrieben wird. Die Aktivkopie verarbeitet weiter Druckaufträge und handhabt Netzwerkanforderungen. Wenn ein Leerlaufzustand erfaßt wird, setzt das Aktivbetriebssystem den Drucker zurück, wobei dasselbe von dem RAM gelöscht wird. Bei einer Reinitialisierung wird die kürzlich geschriebene Quellenkopie des Aktualisierungsbetriebssystems in den RAM dekomprimiert und wird zu dem neuen Aktivbetriebssystem. Eine komprimierte Ersatzkopie eines Betriebssystems wird in dem Flash-Speicher für den Fall beibehalten, daß die Aktualisierungsprozedur fehlschlägt. Wenn ein Aktualisierungsfehler erfaßt wird, wird das Ersatzbetriebssystem verwendet, um das Aktivbetriebssystem zu erzeugen, vor einem weiteren Versuch bei der Aktualisierungsprozedur. Die Erfindung trifft auf ...

Description

Die vorliegende Erfindung bezieht sich auf Rechner bzw. Computer und andere Netzwerkvorrichtungen und insbesondere auf ein System zum Aktualisieren von Firmware für Netzwerk­ vorrichtungen, wie z. B. Drucker, Modems und Naben. Eine Hauptaufgabe der vorliegenden Erfindung besteht darin, ar­ beitsablauffreundliche Firmware-Aktualisierungen von Netz­ werkvorrichtungen zu liefern.
Ein Großteil des modernen Fortschritts steht mit dem zuneh­ menden Vorherrschen von Rechnern in Verbindung. Jeder Rech­ ner umfaßt zumindest eine Verarbeitungseinheit und einen Speicher. Die Verarbeitungseinheit manipuliert Daten gemäß einem Programm von Instruktionen bzw. Anweisungen, wobei der Speicher die Instruktionen und Daten speichert.
Universal- bzw. Allzweckrechner sind entworfen, um neue Programme ohne weiteres anzunehmen, um neue Funktionen zu implementieren und alte Anwendungsprogramme und ein zugrun­ deliegendes Betriebssystem-Programm bequem zu aktualisie­ ren. Zusätzlich zu Universalrechnern gibt es eine breite Vielzahl von anwendungsspezifischen Rechner- bzw. Computer­ vorrichtungen, d. h. von "eingebetteten Vorrichtungen". Ei­ nige derselben, wie z. B. zweckgebundene Wort- und Sprach­ prozessoren, sind im Grunde genommen Rechner mit festen Programmen. Andere eingebettete Vorrichtungen, wie z. B. Ka­ meras und Mikrowellenvorrichtungen, sind durch einen Rech­ ner verbesserte Versionen von Produkten, die herkömmlicher­ weise ohne Rechner sind. Viele Rechnerperipheriegeräte, wie z. B. Tastaturen und Monitore, die verwendet werden, um eine Interaktion zwischen Mensch und Rechner zu erleichtern, weisen selbst wiederum eingebettete Rechner auf. Zusätzlich gibt es Netzwerkperipheriegeräte, wie z. B. Naben und Mo­ dems, die es Rechnern und Rechenvorrichtungen ermöglichen, miteinander zu kommunizieren.
Angesichts ihrer anwendungsspezifischen Funktionen neigen eingebettete Vorrichtungen dazu, einfachere Betriebssysteme und weniger Anwendungsprogramme als Universalrechner aufzu­ weisen. Für viele eingebettete Vorrichtungen ist es möglich und wünschenswert, Betriebssysteme und Anwendungsprogramme in einem nichtflüchtigen Festkörperspeicher zu speichern. Tatsächlich speichern viele eingebettete Vorrichtungen ihre Betriebssysteme und Anwendungsprogramme in nichtflüchtigen Festkörperspeichern. Im Gegensatz dazu speichern die mei­ sten Universalrechner ihr Betriebssystem und Anwendungspro­ gramme auf umfassenden Festplatten. Nur das BIOS (BIOS = Basic Input-Output System = Grundeingabe-Ausgabe-System) wird in einem nichtflüchtigen Festkörperspeicher gespei­ chert. Programme und Daten, die in eine Rechnervorrichtung eingebaut und in einem nichtflüchtigen Festkörperspeicher gespeichert sind, werden "Firmware" genannt.
Firmware kann in einem Nur-Lese-Speicher (ROM) gespeichert sein. Die Firmware-Programme können direkt von einem ROM ausgeführt werden. Alternativ können Programme zur Ausfüh­ rung an einen flüchtigen Speicher, wie z. B. einen DRAM (DRAM = Dynamic Random Access Memory = dynamischer Direkt­ zugriffsspeicher), übertragen werden. Der letztere Ansatz erfordert mehr DRAM, erzielt jedoch höhere Ausführungsge­ schwindigkeiten. Die Wahl einer ROM- gegenüber einer DRAM­ basierenden Programmausführung basiert oft auf einem Kom­ promiß zwischen Kosten und Leistung.
Da der Inhalt von ROM nicht verändert werden kann, erfor­ dert das Korrigieren von Defekten oder das Verbessern von ROM-basierenden Programmen oft ein physisches Ersetzen des ROM, was unbequem und teuer sein kann. Um ein physisches Ersetzen eines Speichers zu vermeiden, speichern viele Re­ chenvorrichtungen ihre Firmware in einem überschreibbaren, nichtflüchtigen Festkörperspeicher, wie z. B. einem "Flash"- Speicher. Rechnervorrichtungen, die einen Flash-Speicher zum Speichern von aktualisierbaren Programmen verwenden, weisen üblicherweise ein Medientor oder ein Netzwerktor zum Aufnehmen einer Aktualisierung auf. Das Medientor kann ein Laufwerk oder ein Schlitz für entfernbare Medien sein. Das Netzwerktor kann für digitale Kommunikationen zwischen Netzwerkvorrichtungen ohne die physische Bewegung von Spei­ chermedien sorgen.
"Netzwerkvorrichtungen" sind Rechnervorrichtungen mit Netz­ werktoren. Netzwerke variieren in ihrer Komplexität von "direkten" Netzwerken, z. B. einem Rechner über eine Paral­ lel-Tor-Verbindung in Kommunikation mit einem Drucker, über lokale Netze (LAN) bis zu Grobraumnetzen (WAN) und dem In­ ternet, das Millionen von miteinander verbundenen Rechen­ vorrichtungen aufweist. Netzwerkrechenvorrichtungen werden aus Effizienzgründen oft zentral über das Netzwerk verwal­ tet, sowie, um eine Einheitlichkeit in dem Unternehmen bei­ zubehalten.
Aktualisierungen können zentral durch ein Übertragen von Aktualisierungsdateien von einer Netzwerkverwaltungsstation an Zielnetzwerkvorrichtungen verwaltet werden. Üblicherwei­ se werden die Aktualisierungen während eines "Wartungszy­ klus" durchgeführt, in dem Benutzer das Netzwerk nicht ver­ wenden können. Natürlich stört ein Wartungszyklus den Ar­ beitsablauf und die Benutzerproduktivität und ist so kost­ spielig. Die Kosten werden ein sogar noch größerer Faktor, wenn Aktualisierungen für jeden unterschiedlichen Netzwerk­ vorrichtungstyp und jedes -modell separat implementiert werden müssen.
In dem Fall eines Universalrechners mit einer großen Fest­ platte ist es möglich, ein Aktualisierungsprogramm auf ei­ nen unbenutzten Bereich der Festplatte zu laden, ohne exi­ stierende Programme zu löschen. So können die existierenden Programme, einschließlich des Betriebssystems, ihre Arbeit wieder aufnehmen, sobald die Aktualisierung auf der Fest­ platte installiert ist. Es gibt jedoch nur selten eine gro­ ße unbenutzte Kapazität in Firmware-basierenden Vorrichtun­ gen, so daß das Speichern eines Aktualisierungsprogramms üblicherweise ein Überschreiben der existierenden Firmware erforderlich macht.
Da das Überschreiben die frühere Firmware wirksam zerstört, trägt man üblicherweise Sorge, um sicherzustellen, daß wäh­ rend der Aktualisierung keine normalen Aufträge verarbeitet werden, d. h. daß Drucker nicht drucken, Scanner nicht scan­ nen und Modems nicht kommunizieren. Ein minimales zweckge­ bundenes Programm (oder ein externes Hilfsprogramm) kann das Überschreiben verwalten, während das normale Arbeiten angehalten wird. Sobald die neue Firmware an ihrem Ort ist, kann die Netzwerkvorrichtung, falls nötig, neu gestartet werden, wobei eine normale und hoffentlich verbesserte Vor­ richtungsoperation fortgeführt werden kann.
In dem Fall eines Direktnetzes oder eines kleinen LAN, ist es möglich, es den Benutzern zu ermöglichen, weiterhin auf einer Rechnerarbeitstation zu arbeiten, während ein Netz­ werkgerät, wie z. B. ein Drucker, aktualisiert wird. Die Be­ nutzer können über die Aktualisierung in Kenntnis gesetzt werden, so daß sie nicht annehmen, daß Druckaufträge verar­ beitet werden, und nicht überrascht sind, wenn Fehlermel­ dungen erzeugt werden.
Während dieser Ansatz für Aktualisierungen für Netzwerkvor­ richtungen gut funktioniert, die einem Host-Rechner zuge­ ordnet sind oder Teil eines kleinen LAN sind, ist er für große LAN und für ein zentralisiertes Aktualisieren von Grobraumnetzen (WAN) nicht geeignet. Es kann z. B. erforder­ lich sein, daß ein Verwaltungsinformationsspezialist einen Drucker an einem entfernten Ort aktualisieren muß. Es kann unter Umständen unpraktisch sein, jede Person zu informie­ ren, die den Drucker vielleicht verwenden möchte, der vom Netzwerk genommen wurde. Zusätzlich kann es unter Umständen unerwünscht sein, einen Netzwerkzugriff auf die Zielvor­ richtung zu unterbrechen. In einigen Fällen kann ein zeit­ liches Abstimmen einer Aktualisierung auf "freie Stunden" dieses Problem minimieren. Dies kann jedoch für die Person, die die Aktualisierung verwaltet, unbequem sein. Außerdem haben einige Unternehmen eigentlich keine "freien Stunden".
Wenn die Aktualisierung eines Betriebssystems mißlingt, können die Ergebnisse für das Peripheriegerät katastrophal sein. In einigen Fällen, wenn z. B. der Aktualisierungspro­ zeß durch einen Leistungsausfall unterbrochen wird, kann die Vorrichtung lahmgelegt werden und nicht oder nur mini­ mal funktionsfähig bleiben. Eine unbequeme und teuere Repa­ ratur vor Ort kann unter Umständen erforderlich sein, um die Funktionalität wieder aufzunehmen.
Deshalb wird ein bequemes und zuverlässiges System zum Ak­ tualisieren von eingebetteten Netzwerkvorrichtungen benö­ tigt, das den normalen Gebrauch minimal, wenn überhaupt, stört. Vorzugsweise ist das System robust genug, um teuere Reparaturen bei dem Fall eines Aktualisierungsfehlers zu vermeiden.
Es ist die Aufgabe der vorliegenden Erfindung, ein unauf­ wendigeres Verfahren zum Aktualisieren von Firmware für ei­ ne Netzwerkvorrichtung und eine unaufwendigere Netzwerkvor­ richtung zum Ausführen von normalen Vorrichtungsaufträgen zu schaffen.
Diese Aufgabe wird durch ein Verfahren zum Aktualisieren von Firmware für eine Netzwerkvorrichtung gemäß Anspruch 1 sowie eine Netzwerkvorrichtung zum Ausführen von normalen Vorrichtungsaufträgen gemäß Anspruch 6 gelöst.
Die vorliegende Erfindung liefert eine Netzwerkvorrichtung, die ihre Firmware aktualisieren kann, während der Betrieb voll funktionsfähig gehalten wird. Eine Quellenkopie des Programms (z. B. des Betriebssystems oder eines Anwendungs­ programms) für die Netzwerkvorrichtung wird in einem überschreibbaren, nichtflüchtigen Speicher gespeichert. Während der Initialisierung wird die Quellenkopie verwen­ det, um eine Aktivkopie des Programms zu erzeugen, das von dem flüchtigen Speicher ausgeführt wird. Das Aktivprogramm kann seine Quellenkopie teilweise oder vollständig mit ei­ nem Aktualisierungsprogramm überschreiben, wobei dies kei­ nen gleichzeitigen Verlust der Verfügbarkeit der Netzwerk­ vorrichtung für das Netzwerk bedeutet. Statt dessen kann das Aktivprogramm die Reinitialisierung bis zu einem geei­ gneteren Zeitpunkt, z. B. wenn ein Leerlaufzustand erfaßt wird, verzögern. Auf eine Reinitialisierung hin wird das Aktivprogramm gelöscht, wobei ein neues Aktivprogramm aus dem Quellenprogramm, das aus der Aktualisierung resultiert, erzeugt wird.
In der Praxis kann eine Firmware-Aktualisierung über ein Netzwerktor (z. B. Ethernetzwerk, Serientor, Paralleltor) empfangen werden. Die Aktualisierung, die eine komprimierte Version eines gesamten Programms oder eines Teils desselben sein kann, kann in einem flüchtigen Speicher gespeichert sein, vor anderen Ereignissen und Aktivitäten in der Vor­ richtung. Für einen Drucker kann dies weitere Druckaufträge umfassen, die sich in der Druckwarteschlange vor dem Aktua­ lisierungsauftrag befinden. Wenn die Aktualisierung verar­ beitet ist, wird dieselbe auf einen nichtflüchtigen Spei­ cher geschrieben, um eine Quellenkopie eines aktualisierten Programms zu ergeben. Das Aktivprogramm kann Funktionen handhaben, die von der Netzwerkvorrichtung vor oder nach dem Schreiben an einen nichtflüchtigen Speicher durchge­ führt werden. Wenn das Aktivprogramm parallele Funktionen unterstützt, können diese normalerweise auch während des tatsächlichen Schreibens der Aktualisierung auf den nicht­ flüchtigen Speicher gehandhabt werden. Zusätzlich können pipelinemäßig verarbeitete Aktivitäten während der Firmwa­ re-Überschreibung fortgeführt werden. Die Aktualisierung kann durch ein Reinitialisieren der Netzwerkvorrichtung, ein Löschen des vorherigen Aktivprogramms und ein Ersetzen desselben durch eine Aktivkopie des Aktualisierungspro­ gramms abgeschlossen werden.
Vorzugsweise kann die Zeit für diese Reinitialisierung durch das frühere Aktivprogramm ansprechend auf ein Erfas­ sen eines vorbestimmten Zustandes, z. B. eines Leerlauf- oder eines Sicher-Zustandes, bestimmt werden. Die Reinitia­ lisierung kann z. B. durch einen Warmstart der Netzwerkvor­ richtung ausgelöst werden. Alternativ sorgt die Erfindung für ein Schalten zu einem neuen Programm ohne ein Neustar­ ten.
Die vorliegende Erfindung erfordert zwei Kopien des Pro­ gramms, das ersetzt werden soll, wohingegen Netzwerkvor­ richtungen, die Programme von einem nichtflüchtigen Spei­ cher ausführen, nur eine erfordern. Da jedoch nur eine Ko­ pie zum Betreiben der Netzwerkvorrichtung verwendet wird, kann die andere komprimiert werden, was die Menge von zu­ sätzlich benötigtem Speicher reduziert. Andererseits kann ein Ausführen der Aktivkopie des Programms in dem flüchti­ gen Speicher, was normalerweise schneller als bei dem nichtflüchtigen Speicher ist, verglichen mit Netzwerkvor­ richtungen, die das Programm von einem nichtflüchtigen Speicher ausführen, eine Netzwerkvorrichtung mit höherer Leistung liefern.
Die Erfindung sorgt für ein Speichern einer "Ersatz"- Quellenkopie eines Programms in einem nichtflüchtigen Spei­ cher. Eine Initialisierungsroutine kann die Integrität des Hauptquellenprogramms prüfen. Wenn die Hauptquelle diese Prüfung nicht besteht, kann die Initialisierungsroutine aus dem Ersatz ein Aktivprogramm erzeugen. Der Ersatz kann in einem Nur-Lese-Speicher oder in einem überschreibbaren, nichtflüchtigen Speicher gespeichert sein. Der Ersatz kann eine Kopie des gegenwärtigen oder eines früheren Quellen­ programms sein. Alternativ kann der Ersatz ein Gerüstpro­ gramm sein, das einzig und alleine zum Neuladen eines voll funktionsfähigen Programms in dem Fall eines Aktualisie­ rungsfehlers dient. Wenn ein Aktualisierungsfehler erfaßt wird, kann die Initialisierungsroutine das Ersatzprogramm aktivieren. Abhängig von der Implementierung des Ersatzes kann derselbe direkt von einem nichtflüchtigen Speicher verwendet oder zur Ausführung zu einem flüchtigen Speicher übertragen (und dekomprimiert, falls komprimiert) werden. Der Ersatz ermöglicht es, daß eine fehlgeschlagene Aktuali­ sierung ohne teuere und unbequeme lokale Reparatur wieder­ holt oder korrigiert werden kann.
Folglich ermöglicht es die vorliegende Erfindung dem Pro­ gramm einer Netzwerkvorrichtung, mit einer minimalen Beein­ trächtigung ihrer Verfügbarkeit für Benutzer aktualisiert zu werden. Potentielle Benutzer müssen nicht über die Ak­ tualisierungsprozedur in Kenntnis gesetzt werden. Aufträge in einer Warteschlange müssen nicht gelöscht werden. Die Vorrichtung muß nicht einmal das Empfangen neuer Arbeit stoppen, weder nachdem die Aktualisierung empfangen wurde, noch nachdem der nichtflüchtige Speicher bereits über­ schrieben wurde. Eine Reinitialisierung kann bis zu einer geeigneten Zeit verzögert werden, so daß ein Herunterfahren der Vorrichtung während eines Zeitraums mit hoher Beanspru­ chung nicht erforderlich ist. Eine nichtflüchtige Ersatzko­ pie eines Programms kann verwendet werden, um eine entfernt verwaltete Wiedergewinnung von fehlgeschlagenen Aktualisie­ rungsprozeduren zu ermöglichen. Diese und weitere Merkmale und Vorteile der vorliegenden Erfindung werden aus der fol­ genden Beschreibung Bezug nehmend auf die beigefügte Zeich­ nung deutlich. Es zeigt:
Fig. 1 eine schematische Darstellung eines Netzwerks, das einen Drucker mit einem Aktualisierungssystem gemäß der vorliegenden Erfindung umfaßt.
Gemäß der vorliegenden Erfindung weist ein Netzwerksystem AP1 ein Verwaltungs-LAN 11 mit einer Netzwerkverwaltungs­ station 13 und ein entferntes LAN 15 auf. Das LAN 11 und das LAN 15 sind über eine Satellitenverbindung 17 gekop­ pelt. Das entfernte LAN 15 umfaßt einen Zieldrucker 20, der eine zentrale Verarbeitungseinheit 21, einen flüchtigen RAM 23 und einen nichtflüchtigen Flash-Speicher 25, einen Nur- Lese-Speicher 27 und ein Flag-Register 29 umfaßt. Der Druc­ ker 20 ist mit dem Rest des entfernten LAN 15 gekoppelt, und so über sein Netzwerktor 30 mit dem Netzwerksystem AP1.
Der Inhalt der Speicher 23 und 25 verändert sich mit der Zeit. Normalerweise speichert der Flash-Speicher 25 ein Quellenbetriebssystem in komprimierter Form plus eine Er­ satzkopie des Quellenbetriebssystems, ebenfalls in kompri­ mierter Form. Der RAM 23 speichert das Aktivbetriebssystem zur Ausführung durch die CPU 21, während der Drucker 20 an ist. ("Betriebssystem" (= OS) wird in dem breiten Sinn ver­ wendet, einschließlich aller Programme, die verwendet wer­ den, um ein normales Arbeiten des Druckers 20 zu bewirken.) Während einer Aktualisierungsprozedur kann eine komprimier­ te Version eines Aktualisierungsbetriebssystems im RAM 23 gespeichert sein, wobei eine Übertragung an den Flash- Speicher 25 zeitweilig zurückgestellt wird. Die verschiede­ nen Speicherungspermutationen werden weiter unten Bezug nehmend auf die Zeittabellen I, II und III beschrieben.
Zeittabelle I
Erstes Aktualisierungsbeispiel
Die Zeit T00 entspricht dem Zustand des Druckers 20, wenn derselbe erstmals installiert wird, und bevor derselbe an­ geschaltet wird. Eine komprimierte Kopie OS1' des Hauptbe­ triebssystems ist in dem Flash-Speicher 25 gespeichert, der auch eine Ersatzkopie OS1" des Originalbetriebssystems speichert. In dem ausgeschalteten Zustand ist in den RAM 23 nichts gespeichert.
Während des Hochfahrens greift eine Hochfahrsequenz, die in dem ROM 27 gespeichert ist, auf den Flash-Speicher 25 zu und dekomprimiert die Betriebssystemkopie OS1', um die Ak­ tivbetriebssystemkopie OS1 in dem RAM 23 zu erzeugen. Die Zeit T01 entspricht einer normalen Betriebsbedingung nach dem Hochfahren und vor bestimmten Aktualisierungen. Zwei Kopien OS1' und OS1" des Hauptbetriebssystems OS1 sind weiterhin in dem Flash-Speicher 25 gespeichert. Das Be­ triebssystem OS1 verwaltet Druckaufträge sowie andere Kom­ munikationen, wie z. B. einen angeforderten Status, die von Host-Rechnern empfangen werden, und die üblicherweise auf dem entfernten LAN 15 vorkommen. Zwei dieser Aufträge, JOB1 und JOB2, bleiben in einer Druckauftragswarteschlange 31, wenn eine Verwaltungsstation 13 eine Aktualisierungsproze­ dur, die an den Drucker 20 gerichtet ist, initialisiert. Die Verwaltungsstation 13 beginnt die Aktualisierungsproze­ dur durch ein Übertragen einer Kopie OS2' eines Aktualisie­ rungsbetriebssystems in komprimierter Form. Eine kompri­ mierte Betriebssystemkopie OS2' wird in dem Format einer Druckauftragsdatei an den Drucker 20 präsentiert, so daß dieselbe als ein weiterer Druckauftrag erscheint, der in der Warteschlange 31 hinter ausstehende Aufträge JOB1 und JOB2 gesetzt wird. Während der Aktualisierungsauftrag aus­ steht, können andere Druckaufträge, z. B. JOB4, empfangen werden. Dies ist die Situation, die in Fig. 1 zu der Zeit T02 sowie in der Zeittabelle I dargestellt ist.
Im Gegensatz zum Stand der Technik macht es die Aktualisie­ rungsprozedur nicht erforderlich, daß andere Aufträge an­ gehalten werden. Statt dessen werden die Druckaufträge JOB1 und JOB2 in der Reihenfolge, in der diese empfangen wurden, verarbeitet. Wenn der Drucker 20 den Aktualisierungsauftrag verarbeitet, überschreibt er die Hauptquellenbetriebssy­ stemkopie OS1' in dem Flash-Speicher mit der komprimierten Kopie OS2' des Aktualisierungsbetriebssystems, wie in Fig. 1 und in der Zeittabelle I zu der Zeit T03 dargestellt ist. Der Auftrag JOB2 kann während des Überschreibens des Be­ triebssystems fortfahren, sogar nachdem das Überschreiben abgeschlossen ist. Zusätzlich kann der Drucker 20 auf den Status und andere Anforderungen von anderen Netzwerkvor­ richtungen antworten. Eine Arbeitsstation bzw. Workstation kann z. B. die interne Web-Seite eines Druckers auf ihren Status hin prüfen und E-Mail-Warnungen anzeigen. Der Auf­ trag JOB4 bleibt gemeinsam mit anderen Aufträgen JOB5 und JOB6, die empfangen wurden, während oder nachdem der Aktua­ lisierungsauftrag ausgeführt wird, ausstehend.
Schließlich erfaßt der Drucker 20 eine Leerlaufperiode IDLE, die in Fig. 1 gezeigt ist, in der keine Aufträge und keine Anfragen (wie z. B. Druckerstatus) ausstehen. Der Drucker 20 setzt sich selbst zu der Zeit T04 zurück. In dem Verlauf des Rücksetzens werden die Betriebssystemkopie OS1 und andere Inhalte des RAM 23 gelöscht, wie in Fig. 1 und in der Zeittabelle I gezeigt ist.
Ansprechend auf das Rücksetzen startet der Drucker 20 neu. Der Hochfahrcode in dem ROM 27 weist den Drucker 20 an, die Hauptbetriebssystemkopie in dem Flash-Speicher 21 zu dekom­ primieren, die nun OS2' ist. So wird eine unkomprimierte Version von OS2 im RAM 23 zur Ausführung durch die CPU 21 gespeichert, wie zu der Zeit T05 in Fig. 1 und in der Zeit­ tabelle I gezeigt ist. Der Drucker 20 nimmt nun wieder Druckaufträge, z. B. JOB7 und JOB8, zum Verarbeiten an. Die­ ser normale Betriebsmodus kann fortgesetzt werden, bis ein Leerlaufzustand (IDLE) erfaßt wird.
Die Zeit T11 in der Zeittabelle II unten entspricht einer Zeit weit nach T05 in dem gleichen Basisbetriebszustand, jedoch vor einer zweiten Aktualisierungsprozedur. Zeiten T12 bis T15 in der zweiten Aktualisierungsprozedur entspre­ chen im allgemeinen den Zeiten T02 bis T05 bei der ersten Aktualisierungsprozedur. Anstelle dessen, daß die Betriebs­ systemkopie OS2' die Betriebssystemkopie OS1' überschreibt, überschreibt die Betriebssystemkopie OS3' jedoch die Be­ triebssystemkopie OS2'. Der Hauptunterschied zwischen der ersten und der zweiten Aktualisierung besteht darin, daß bei dem ersten Fall die Ersatzbetriebssystemkopie OS" nicht mit der Hauptbetriebssystemkopie OS2' in dem Flash- Speicher oder dem Aktualisierungsbetriebssystem OS3' zusam­ menpaßt.
Zeittabelle II
Zweites Aktualisierungsbeispiel
Der Zweck der Ersatzbetriebssystemkopie OS1" besteht dar­ in, fehlgeschlagene Aktualisierungen zu handhaben, wie z. B. diejenige, die unten in der Zeittabelle III charakterisiert ist. Die Zeit T20 entspricht einem ausgeschalteten Zustand, nachdem die Betriebssystemkopie OS3' gespeichert wurde. In dem RAM befindet sich nichts, während der Flash-Speicher 25 die Hauptbetriebssystemkopie OS3' und die Ersatzbetriebssy­ stemkopie OS3" hält. Die Zeit T21 entspricht dem Drucker 20 nach dem Hochfahren. In diesem Zustand ist das Betriebs­ system OS3 das Aktivbetriebssystem, das durch die CPU 21 von dem RAM 23 ausgeführt wird. Zu der Zeit T22 umfaßt eine dritte Aktualisierungsprozedur die Übertragung einer Be­ triebssystemkopie OS4' an den RAM 23.
Zeittabelle III
Drittes Aktualisierungs-(Fehler-)Beispiel
Bei diesem Beispiel ist das Schreiben-Überschreiben nicht erfolgreich, wie in der Quellen-OS-Spalte zu der Zeit T23 durch das X gezeigt ist. Insbesondere wird die Betriebssy­ stemkopie OS3' in dem Flash-Speicher durch eine Überschrei­ ben-Operation gelöscht, wobei jedoch unabhängig davon, in welchem Ausmaß das OS4° an den Flash-Speicher 21 geschrie­ ben wurde, diese Kopie defekt oder unvollständig ist. Der Fehler könnte aufgrund eines Defekts in der Aktualisie­ rungsdatei OS4°, entweder aufgrund eines Entwurfsfehlers oder eines Übertragungsfehlers, oder aufgrund eines Über­ schreibungsfehlers auftreten. Der wahrscheinlichste Grund für den Fehler ist ein Leistungsausfall während des Über­ schreibens, wobei in diesem Fall der Zustand, der zu der Zeit T23 dargestellt ist, übersprungen würde.
Zu der Zeit T25, wenn der Drucker 20 hochgefahren wird, wird der defekte Charakter der Betriebssystemkopie OS4' in dem Flash-Speicher 25 erfaßt. Diese Erfassung kann ein Le­ sen eines Flags in dem Flag-Register 29 umfassen. Wenn der Überschreiben-Prozeß zu der Zeit T23 beginnt, wird das Flag im Flag-Register 29 eingestellt, das zurückgesetzt werden soll, wenn das Überschreiben abgeschlossen ist. Wenn auf ein Hochfahren hin bestimmt wird, daß das Flag nicht rück­ gesetzt wurde, z. B. aufgrund eines Leistungsausfalls wäh­ rend des Schreibeprozesses, dekomprimiert die Hochfahrse­ quenz das Ersatzbetriebssystem OS1" anstelle des Hauptbe­ triebssystems. Auch dekomprimiert die Hochfahrsequenz, wenn eine Prüfsumme oder ein anderer Fehler in der Haupt-Flash- Betriebssystemkopie OS4' erfaßt wird, das Ersatzbetriebssy­ stem OS1". In beiden Fällen ist das Ergebnis zu der Zeit T25 gezeigt, das das Betriebssystem OS1 aktiv in dem RAM 23 zeigt.
Wahlweise kann die Hochfahrsequenz ein Fehlerflag in dem Flagregister 29 einstellen, wenn das Ersatzbetriebssystem anstelle des Hauptbetriebssystems dekomprimiert wird. Das Aktivbetriebssystem OS1 prüft dieses Flag, und sendet, wenn dieses eingestellt ist, eine Warnung über das Netzwerk, die von der Verwaltungsstation 13 verwendet werden kann, um anzuzeigen, daß die Aktualisierungsprozedur fehlgeschlagen ist. Bei dem bevorzugten Ausführungsbeispiel kann die Ver­ waltungsstation 13 den Drucker 20 nach seiner Betriebssystemversion abfragen und auf diese Weise bestimmen, ob die Aktualisierung ein Erfolg war oder nicht.
Wenn die Verwaltungsstation 13 jedoch einen Aktualisie­ rungsfehler erfaßt, kann sie eine weitere Aktualisierungs­ betriebssystemkopie OS4' senden, die in dem RAM 23 in kom­ primierter Form gespeichert ist, wie zu der Zeit T26 ge­ zeigt ist. Zu der Zeit T27 wird das Betriebssystem OS4' er­ folgreich an den Flash-Speicher 21 geschrieben. Während des nächsten Leerlaufzustands setzt das Betriebssystem OS1 den Drucker 20 zu der Zeit T28 zurück. Auf ein Hochfahren hin läuft das Betriebssystem OS4 auf der CPU 21. Es wird ange­ merkt, daß trotz dieses Fehlers des ersten Versuchs, das Betriebssystem OS4 zu installieren, keine lokale Interven­ tion erforderlich ist.
Während das dargestellte Ausführungsbeispiel ein Drucker ist, trifft die Erfindung gleichermaßen auf andere Vorrich­ tungen, wie z. B. Modems, Scanner, Faksimilemaschinen usw., zu. Es wird angemerkt, daß sich das Ersatzbetriebssystem in einem ROM anstelle eines Flash-Speichers befinden kann. Ein Aufrechterhalten des Ersatzes in dem Flash-Speicher jedoch ermöglicht es, daß dieser aktualisiert wird, obwohl Vorkeh­ rungen getroffen werden müssen, um ein Verfälschen des Er­ satzes zu vermeiden.
Während sich das bevorzugte Ausführungsbeispiel mit Aktua­ lisierungen des Betriebssystems befaßt, sind auch andere Typen von Programmaktualisierungen möglich. Ein Flash-BIOS kann z. B. aktualisiert werden, genauso wie ein Anwendungs­ programm, das eine Einrichtung zum Überschreiben seiner Quellenkopie umfaßt.
Bei dem dargestellten Ausführungsbeispiel wird das Be­ triebssystem aktualisiert. Alternativ kann ein Firmware- Anwendungsprogramm aktualisiert werden. In dem Fall eines Systems, wie z. B. eines Universalrechners, mit einem Firm­ ware-BIOS, kann das BIOS aktualisiert werden. Die Erfindung erfordert einfach ein Programm, das sich selbst über­ schreibt. Es gibt jedoch eine Flexibilität beim Definieren dessen, was dieses Programm ist. Ein Betriebssystem gemäß einem Entwurfskonzept kann z. B. den Code für ein Betriebsy­ stem plus ein Anwendungsprogramm für ein weiteres Entwurfs­ konzept aufweisen.
Die vorangegangene Erklärung richtet sich auf einen Netz­ werkdrucker. Die Erfindung trifft auch auf andere Netzwerk­ vorrichtungen mit Programmen in einen nichtflüchtigen Fest­ körperspeicher zu. Beispiele für derartige Vorrichtungen sind Scanner, Modems, Digitalkameras, Digitalcamcorder, Multifunktionsgeräte und Netzwerknaben, Schalter und Lei­ ter. Zusätzlich trifft die Erfindung auf Firmware- Aktualisierungen für Universalrechner, wie z. B. BIOS- Aktualisierungen, und Aktualisierungen von Firmware für tragbare Rechner mit einem Firmwarebetriebssystem und An­ wendungsprogrammen zu.
Die vorliegende Erfindung weist eine Anwendbarkeit auf ei­ nen Rechnernetzwerkbetrieb und ein Verfahren zum Aktuali­ sieren von Netzwerkvorrichtungen auf. Es ist insbesondere in Situationen von Wert, in denen ein Aktualisieren an ei­ nem Ort initialisiert und an einen oder mehrere entfernte Orte geleitet wird. Die Störung mit Benutzern wird mini­ miert, während die Bequemlichkeit für den Netzwerkverwalter verbessert wird. Während das dargestellte Ausführungsbei­ spiel eine Zahl von nützlichen Merkmalen aufweist, ist der Bereich der Erfindung durch die folgenden Ansprüche defi­ niert.

Claims (9)

1. Verfahren zum Aktualisieren von Firmware für eine Netzwerkvorrichtung, wobei die Netzwerkvorrichtung entworfen ist, um normale Vorrichtungsaufträge durch­ zuführen, wobei das Verfahren folgende Schritte auf­ weist:
  • a) Überschreiben einer Quellenkopie (OS1') des ersten Programms zumindest teilweise mit einer Programmaktua­ lisierung (OS2°) durch eine Aktivkopie (OS1) eines er­ sten Programms, um eine Quellenkopie eines zweiten Programms zu ergeben, wobei die Aktivkopie des ersten Programms von einem flüchtigen Festkörperspeicher aus­ geführt wird, wobei Quellenkopien in einem nichtflüch­ tigen Festkörperspeicher gespeichert werden;
  • b) Ausführen eines ersten normalen Vorrichtungsauf­ trags (JOB2) durch die Aktivkopie des ersten Pro­ gramms;
  • c) Initialisieren der Netzwerkvorrichtung so, daß die Aktivkopie des ersten Programms gelöscht wird, und so, daß eine Aktivkopie (OS2) des zweiten Programms aus der Quellenkopie des zweiten Programms erzeugt wird; und
  • d) Ausführen eines zweiten normalen Vorrichtungsauf­ trags (JOB7) durch die Aktivkopie des zweiten Pro­ gramms.
2. Verfahren gemäß Anspruch 1, bei dem die Aktivkopie des ersten Programms nach dem Schritt d) die Initialisie­ rung ansprechend auf eine Erfassung eines Leerlaufzu­ standes (IDLE) der Netzwerkvorrichtung auslöst.
3. Verfahren gemäß Anspruch 1 oder 2, bei dem während des Schritts d), wenn ein Problem mit der Integrität der Quellenkopie des zweiten Programms erfaßt wird, eine Aktivkopie eines Programms aus einer Ersatzkopie (OS1") eines Programms erzeugt wird.
4. Verfahren gemäß einem der Ansprüche 1 bis 3, bei dem die Quellenkopie des zweiten Programms vor dem Schritt a) durch die Netzwerkvorrichtung an einem Netzwerktor der Netzwerkvorrichtung empfangen wird.
5. Verfahren gemäß einem der Ansprüche 1 bis 4, bei dem während des Schritts b) der erste normale Vorrich­ tungsauftrag einer von mehreren Vorrichtungsaufträgen in einer Warteschlange (31) ist, die durch die Aktiv­ kopie des ersten Programms verwaltet wird, wobei die Warteschlange zeitweilig die Quellenkopie des zweiten Programms umfaßt, wobei Schritt c) nicht auftritt, bis alle Vorrichtungsaufträge vor der Quellenkopie des zweiten Programms in der Warteschlange zumindest teil­ weise ausgeführt sind.
6. Netzwerkvorrichtung (20) zum Ausführen von normalen Vorrichtungsaufträgen, wobei die Netzwerkvorrichtung folgende Merkmale aufweist:
einen flüchtigen Speicher (23) zum Speichern von Ak­ tivkopien von Programmen, die eine Kopie (OS1) eines ersten Aktivprogramms umfassen;
einen nichtflüchtigen Speicher (25) zum Speichern von Quellenkopien der Programme, die eine Quellenkopie (OS1') eines ersten Programms umfassen;
ein Netzwerktor (30) zum Empfangen von Netzwerkvor­ richtungsaufträgen (JOB1-JOB8) und zum Empfangen ei­ ner Aktualisierungskopie (OS2) eines zweiten Pro­ gramms; und
einen Prozessor zum Ausführen der Aktivkopie des er­ sten Programms, so, daß derselbe die Quellenkopie des ersten Programms mit der Quellenkopie des zweiten Pro­ gramms überschreibt, dann einige normale Vorrichtungs­ aufträge (JOB4-JOB10) ausführt, und dann die Netz­ werkvorrichtung initialisiert, um die Aktivkopie des ersten Programms zu löschen, wobei der Prozessor eine Aktivkopie (OS2) des zweiten Programms aus der Quel­ lenkopie des zweiten Programms erzeugt, und wobei der Prozessor die Aktivkopie des zweiten Programms aus­ führt, um zusätzliche normale Vorrichtungsaufträge (JOB7, JOB8) auszuführen.
7. Netzwerkvorrichtung gemäß Anspruch 6, wobei die Netz­ werkvorrichtung einen Leerlaufzustand (IDLE) aufweist, wobei die Aktivkopie des ersten Programms eine Ein­ richtung zum Erfassen des Leerlaufzustandes umfaßt, und wobei der Prozessor die Netzwerkvorrichtung an­ sprechend auf eine Erfassung des Leerlaufzustandes durch die Aktivkopie des ersten Programms initiali­ siert.
8. Netzwerkvorrichtung gemäß Anspruch 6 oder 7, bei der die Quellenkopie des ersten Programms und die Quellen­ kopie des zweiten Programms komprimiert sind.
9. Netzwerkvorrichtung gemäß Anspruch 8, wobei die Vorrichtung ferner folgende Merkmaie aufweist:
eine Ersatzkopie (OS1") eines Ersatzprogramms, das in dem nichtflüchtigen Speicher gespeichert ist; und
eine Einrichtung (29) zum Erfassen, während der In­ itialisierung, eines Defektes in der Quellenkopie des zweiten Programms, wobei der Prozessor, in dem Fall, daß ein derartiger Defekt erfaßt wird, aus dem Ersatz­ programm ein Aktivprogramm in dem flüchtigen Speicher erzeugt.
DE10152530A 2000-10-24 2001-10-24 Arbeitsablauffreundliche Firmware-Aktualisierungen für Netzwerkvorrichtungen Expired - Fee Related DE10152530B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US69520700A 2000-10-24 2000-10-24
US09/695,207 2000-10-24

Publications (2)

Publication Number Publication Date
DE10152530A1 true DE10152530A1 (de) 2002-07-25
DE10152530B4 DE10152530B4 (de) 2007-09-27

Family

ID=24792071

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10152530A Expired - Fee Related DE10152530B4 (de) 2000-10-24 2001-10-24 Arbeitsablauffreundliche Firmware-Aktualisierungen für Netzwerkvorrichtungen

Country Status (2)

Country Link
DE (1) DE10152530B4 (de)
GB (1) GB2370894B (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4365148B2 (ja) 2002-07-19 2009-11-18 株式会社リコー 画像形成装置及びラッピング処理方法並びにプログラム
GB2399660A (en) * 2003-03-20 2004-09-22 Oxford Semiconductor Ltd Upgrading networked devices
US7249353B2 (en) * 2003-04-17 2007-07-24 Hewlett-Packard Development Company, L.P. Image-formation device firmware having modular upgrade capability
US7930691B2 (en) * 2006-04-27 2011-04-19 Agere Systems Inc. Methods and apparatus for updating data structures during in-service upgrade of software in network processor
US7802245B2 (en) * 2006-04-27 2010-09-21 Agere Systems Inc. Methods and apparatus for performing in-service upgrade of software in network processor
JP5304360B2 (ja) * 2009-03-17 2013-10-02 株式会社リコー 情報処理装置、情報処理方法および情報処理プログラム
US9235348B2 (en) 2010-08-19 2016-01-12 International Business Machines Corporation System, and methods for initializing a memory system
MY164401A (en) * 2011-06-29 2017-12-15 Mimos Berhad A method of initiating firmware upgrades
WO2018091085A1 (en) * 2016-11-16 2018-05-24 Huawei Technologies Co., Ltd. Device and method for updating data on the device

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB8901932D0 (en) * 1989-01-28 1989-03-15 Int Computers Ltd Data processing system
GB2290890B (en) * 1994-06-29 1999-03-24 Mitsubishi Electric Corp Information processing system
US5918047A (en) * 1996-01-26 1999-06-29 Texas Instruments Incorporated Initializing a processing system
US5701492A (en) * 1996-03-29 1997-12-23 Canon Kabushiki Kaisha Fail-safe flashing of EPROM
US6052803A (en) * 1997-09-26 2000-04-18 3Com Corporation Key-based technique for assuring and maintaining integrity of firmware stored in both volatile and non-volatile memory
FR2794546B1 (fr) * 1999-06-03 2001-10-05 Sagem Procede de telechargement d'un programme dans un equipement
US6640334B1 (en) * 1999-09-27 2003-10-28 Nortel Networks Limited Method and apparatus of remotely updating firmware of a communication device

Also Published As

Publication number Publication date
GB0125091D0 (en) 2001-12-12
GB2370894B (en) 2005-02-02
GB2370894A (en) 2002-07-10
DE10152530B4 (de) 2007-09-27

Similar Documents

Publication Publication Date Title
DE10112941B4 (de) System und Verfahren für das parallele Lesen von primären und sekundären Sicherungen zur Wiederherstellung mehrerer gemeinsam benutzter Datenbankdateien
DE60312746T2 (de) Wiederherstellung nach fehlern in datenverarbeitungsanlagen
DE102012208141B4 (de) Ausgleich nachlassender Funktionsfähigkeit
DE112011104356B4 (de) Aktualisieren von Software-Images auf der Grundlage von Streaming-Technik
DE102008015662B4 (de) Beseitigung von Daten
DE10085374B4 (de) Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem
DE60008929T2 (de) Schnellstart eines mikroprozessorbasierten systems
DE69730430T2 (de) Verfahren und gerät zum bereitstellen von verbesserten diagnostischen funktionen in einem computersystem
DE60316783T2 (de) Erkennung von Speichermangel und Feinabschaltung
DE69821426T2 (de) Speicheranordung, und Datenverarbeitungssystem und -Verfahren
DE102009019271A1 (de) Übertragen von Sequenzzahlen für das Wiederherstellen nach Stromausfall bei einem nichtflüchtigen Speicher
DE112009002207B4 (de) Aktualisieren einer Firmware mit mehreren Prozessoren
DE4220198A1 (de) Wiederherstellungsprotokollieren bei vorliegen von schnappschuss-dateien durch ordnen des pufferspeicherladens
DE112008003061T5 (de) Systeme und Verfahren zum Aktualisieren von Einrichtung- bzw. Geräte-Software
DE112016002365T5 (de) System und Verfahren zur automatischen cloudbasierten Volldatensicherung und Wiederherstellung auf mobilen Geräten
DE602004002674T2 (de) Speichersystem und Verfahren zur Erfassung und Verwendung von Schnappschüssen
DE112008000180T5 (de) Verfahren und System für die Umsetzung eines Fast-Wakeup eines Flashspeichersystems
DE112006003745T5 (de) Fernaktualisierungssystem für ein Aufzugssteuerprogramm
DE102012109614A1 (de) Fehlerbehebung bei Stapel-Korruption in eingebetteten Softwaresystemen
DE112008003075T5 (de) Systeme und Verfahren zum Aktualisieren von Einrichtung- bzw Geräte-Software
DE112009004563T5 (de) Bios-bild-verwalter
DE112008002767T5 (de) Mobiles Handgerät, das eine effiziente Sicherung und Wiedergewinnung von Blöcken während einer Aktualisierung einsetzt
DE112015000343T5 (de) Erstellen einer Wiederherstellungskopie von einer Quelldaten-Kopie in einem Repository, das Quelldaten an verschiedenen Zeitpunkten aufweist
DE102006001776A1 (de) Testprogrammsatz Minimierung der Veralterung durch Software- und automatische Testgeräteprozesse
DE10152530A1 (de) Arbeitsablauffreundliche Firmware-Aktualisierungen für Netzwerkvorrichtungen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8127 New person/name/address of the applicant

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

8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20130501