DE10330607A1 - Einzelchip-Mikrocomputer und Verfahren zu dessen Boot-Region-Schaltern - Google Patents

Einzelchip-Mikrocomputer und Verfahren zu dessen Boot-Region-Schaltern Download PDF

Info

Publication number
DE10330607A1
DE10330607A1 DE10330607A DE10330607A DE10330607A1 DE 10330607 A1 DE10330607 A1 DE 10330607A1 DE 10330607 A DE10330607 A DE 10330607A DE 10330607 A DE10330607 A DE 10330607A DE 10330607 A1 DE10330607 A1 DE 10330607A1
Authority
DE
Germany
Prior art keywords
boot
area
memory
memory block
pair
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.)
Ceased
Application number
DE10330607A
Other languages
English (en)
Inventor
Takao Kawasaki Kondo
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.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Electronics Corp filed Critical NEC Electronics Corp
Publication of DE10330607A1 publication Critical patent/DE10330607A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Microcomputers (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Mit einer Mehrzahl von Speicherblöcken als ein Paar wird eine Mehrzahl von Paaren der Speicherblöcke vorgesehen und in einem Fall, in dem ein Paar von Speicherblöcken als ein neuer Boot-Bereich bezeichnet wird, wenn ein anderes Paar von Speicherblöcken als ein Boot-Bereich bezeichnet wird, wird ein Wert, der durch Subtrahieren eines vorbestimmten Werts von einem Anfangswert erhalten wird, welcher bei dem Boot-Bereichsbezeichnungsflag des Speicherblocks aller der Speicherblockpaare eingestellt wird, in dem Boot-Bereichsbezeichnungsflag jedes Speicherblocks des anderen Speicherblockpaars gespeichert, und zum Zeitpunkt eines Systemstarts wird bestimmt, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, dass ein Boot-Programm in dem anderen Speicherblockpaar gespeichert ist.

Description

  • HINTERGRUND DER ERFINDUNG
  • 1. Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft einen Einzelchip-Mikrocomputer mit einer CPU und einem nichtflüchtigen Speicher, und, genauer ausgedrückt, ein Verfahren zum Umschalten eines Boot-Bereichs, wenn ein bestimmter Bereich eines nichtflüchtigen Speichers als ein Boot-Bereich bezeichnet ist, wo ein Boot-Programm gespeichert ist, Umschalten eines anderen Bereichs, um ein neuer Boot-Bereich zu sein.
  • 2. Beschreibung der verwandten Technik
  • Ein Einzelchip-Mikrocomputer (oder Einzelchip-Mikro) ist eine Halbleitervorrichtung, in der ein Speicherbereich, wo ein Steuerprogramm gespeichert ist, und eine CPU (central processing unit, zentrale Verarbeitungseinheit) zum Ausführen von Operationen basierend auf dem Steuerprogramm auf einem Halbleiterchip ausgebildet sind.
  • Zum Vereinfachen der Modifikation eines Steuerprogramms, verwenden einige solcher Einzelchip-Mikrocomputer nichtflüchtige Speicher, die einen Flash-Speicher als einen Speicher zum Speichern des Steuerprogramms einschließen.
  • Ein mit einem solchen Flash-Speicher versehener Einzelchip-Mikrocomputer ermöglicht Neueinschreiben des einmal gespeicherten Steuerprogramms, sogar wenn ein in dem Flash-Speicher gespeichertes Steuerprogramm zu modifizieren ist.
  • Unter den Verfahren zum Neueinschreiben eines solchen Steuerprogramms gibt es eine Schreiberneueinschreibbetriebsart zum Neueinschreiben eines Steuerprogramms unter Verwendung eines Flash-Schreibers und eine Selbstprogrammierbetriebsart zum Neueinschreiben eines nichtflüchtigen Speichers an der Stufe der Benutzerverwendung. Die Schreiberneueinschreibbetriebsart ist eine Betriebsart zum Steuern des Neueinschreibens eines Flash-Speichers durch Starten von Anweisungsausführung von einem BootSpeicher zum Kommunizieren mit der Außenseite, während eine Benutzerbetriebsart eine Betriebsam der Ausführung eines Benutzerbereichs durch ähnliches Starten von einem Boot-Speicher und anschließendes Wählen einer Startadresse ist. In der Selbstprogrammierbetriebsart werden ein Boot-Programm und andere zum Neueinschreiben benötigte Anweisungen von einem nichtflüchtigen Speicher oder von außerhalb zu einem RAM übertragen, um in den nichtflüchtigen Speicher basierend auf den von dem RAM ausgelesenen Anweisungen neu einzuschreiben. In der Selbstprogrammierbetriebsart ist nur beim Neueinschreiben in einen Bereich, der einen Boot-Block enthält, ein Boot-Programm als Schreibdaten erforderlich. Das Boot-Programm stellt hier ein Programm zum Starten dar, welches ein Programm ist, das zuerst zum Zeitpunkts des Systemstarts ausgeführt wird, nachdem das System zurückgestellt wurde.
  • Zum Zeitpunkt des Neueinschreibens in einen bestimmten Speicherblock eines nichtflüchtigen Speichers durch die Selbstprogrammierbetriebsart wie oben beschrieben oder zum Zeitpunkt der Ersetzung eines Boot-Programms durch ein neues Boot-Programm, wird Boot-Bereichumschaltungsverarbeitung zum Neueinschreiben eines in dem betreffenden Speicherblock gespeicherten Boot-Programms in einen anderen Speicherblock oder Speicher eines neuen Boot-Programms in einem anderen Speicherblock ausgeführt, um den Bereich, in dem das Boot-Programm gespeichert ist, auf einen neuen Boot-Bereich umzuschalten.
  • Einfaches Speichern eines Boot-Programms, das in einem Benutzerbereich eines bestimmten Speicherblocks gespeichert ist, in einem RAM, wobei das originale Boot-Programm gelöscht und das von dem RAM ausgelesene Boot-Programm in einem Benutzerbereich eines anderen Speicherblocks gespeichert wird, kann jedoch dazu führen, dass ein Einzelchip-Mikrocomputersystem keinen Normalbetrieb aufgrund des Auftretens von augenblicklichem Stromabschalten oder dergleichen während der Löschung eines Benutzerbereichs eines nichtflüchtigen Speichers fortsetzen kann, in dem Programme einschließlich eines Boot-Programms (im folgenden als ein Boot-Programm bezeichnet) gespeichert sind. In einem anderen Fall kann augenblickliches Abschalten von Strom während dem Einschreiben des neues Programms nach Löschung auftreten, um zu unvollständigem Einschreiben zu führen. In solchen Fällen gibt es sogar bei Rückstellung des Systems für erneutes Starten Fälle, in denen ein Boot-Programm nicht normal neu eingeschrieben wurde, um erneutes Starten zu sperren. Deshalb birgt die Selbstprogrammierbetriebsart zum Neueinschreiben in einen nichtflüchtigen Speicher an einer Stufe von Benutzerverwendung ein Problem, dass ein Benutzerbereich, in dem ein Boot-Programm gespeichert ist, nicht sicher gelöscht werden kann.
  • Als eine Gegenmaßnahme, die das Problem beseitigt, sind Techniken zum sicheren Neueinschreiben in einen Benutzerbereich, in dem ein Boot-Programm gespeichert ist, in dem japanischen offengelegten Patent (Kokai) Nr. Heisei 8-255084 und dem japanischen offengelegten Patent (Kokai) Nr. Heisei 10-149282 offenbart. Hier wird zum Zeitpunkt der Neueinschreibung eines Programms in einen Boot-Bereich ein altes Boot-Programm in einen freien Benutzerbereich kopiert, um dasselbe zu sichern, wobei Speicherinhalte des betreffenden Boot-Bereichs gelöscht werden und dann ein neues Boot-Programm in den Bereich eingeschrieben wird, und nach Bestätigung des Einschreibendes, das in den freien Benutzerbereich kopierte alte Boot-Programm gelöscht wird. Selbst wenn eine Situation auftritt, in der Einschreiben eines neuen Programms aufgrund von augenblicklichem Abschalten von Strom oder dergleichen nicht vollständig ausgeführt werden kann, kann das System daher durch das alte Boot-Programm neu gestartet werden, zum Verhindern, dass das System in einen irreparablen Zustand gebracht wird.
  • Bei den oben beschriebenen Verfahren ist jedoch die Anzahl von Tätigkeiten groß, wie zum Beispiel das Kopieren eines alten Boot-Frogramms in einen freien Bereich und Löschen eines alten Boot-Programms, wenn es nicht mehr benötigt wird, was dazu führt, dass Vorgehensweisen kompliziert und zeitaufwendig werden.
  • Ein konventioneller Einzelchip-Mikrocomputer, der das oben aufgeführte Problem löst, ist in dem offengelegten japanischen Patent (Kokai) Nr. 2001-195241 offenbart.
  • Der konventionelle Einzelchip-Mikrocomputer ist ausgelegt, um einen Boot-Bereichbezeichnungsflag aufzuweisen, der für jeden Benutzerbereich vorgesehen ist, um sicheres Neueinschreiben eines in einem nichtflüchtigen Speicher gespeicherten Boot-Programms in einer Bordbetriebsart an einer Stufe von Benutzerverwendung durch eine kleinere Anzahl von Tätigkeiten zu ermöglichen. Die Struktur des konventionellen Einzelchip-Mikrocomputers ist in 4 gezeigt.
  • Der Boot-Bereichbezeichnungsflag, der für jeden Speicherblock vorgesehen wird, ist ein Flag zum Anzeigen, dass ein Boot-Programm in einem Benutzerbereich des betreffenden Speicherblocks gespeichert ist.
  • Der konventionelle Einzelchip-Mikrocomputer umfasst, wie in 4 dargestellt ist, einen nichtflüchtigen Speicher 41, eine CPU 2, einen Boot-Speicher 3, einen Bereichsumschaltflag 4 und einen RAM 5.
  • Der nichtflüchtige Speicher 41, in dem Programme einschließlich eines Boot-Programms gespeichert sind, ist in zwei Speicherblöcke 161 und 162 unterteilt. Der Speicherblock 161 wird durch einen Benutzerbereich A zum Einschreiben von Daten wie zum Beispiel eines Programmcodes durch einen Benutzer und einen Bereich zum Speichern eines diesem entsprechenden Boot-Bereichbezeichnungsflags A gebildet, und der Speicherblock 162 wird von einem Benutzerbereich B und einem Bereich zum Speichern eines diesem entsprechenden Boot-Bereichbezeichnungsflags B gebildet.
  • Die CPU 2 ist ein Hauptprozessor, der Steuerung und Operation gemäß einem in dem nichtflüchtigen Speicher 41 gespeicherten Programm ausführt. Die CPU 2 führt Setzen des Bereichsumschaltflags 4 basierend auf dem Inhalt eines Boot-Bereichbezeichnungsflags durch. Der Boot-Speicher 3 hat eine Funktion zum Starten des Systems gemäß einer bestimmten Steuerbetriebsart. Nachdem das System gestartet ist, wird unter den in dem nichtflüchtigen Speicher 41 gespeicherten Programmen das Boot-Programm zuerst verarbeitet. Neueinschreiben des Boot-Programms wird durch einen Flash-Schreiber durchgeführt, wenn der Computer einzeln durch eine Fabrik gehandhabt wird, und wird in einer Selbstprogrammierbetriebsart ausgeführt, wenn in einer Bordbetriebsart an einer Stufe von Benutzerverwendung. Der Bereichsumschaltflag 4 hat eine Funktion zum Bezeichnen eines Benutzerbereichs, in dem das Boot-Programm zum Zeitpunkt von Systemstart gespeichert ist. Der RAM 5 speichert zeitweilig erforderliche Daten als Reaktion auf eine Anweisung von der CPU 2.
  • Unter Bezugnahme auf das Ablaufdiagramm von 5, soll eine Verfahrensweise zum Neueinschreiben von Programmen einschließlich eines Boot-Programms in einem Benutzerbereich in einer Selbstprogrammierbetriebsart in einem so strukturierten konventionellen Einzelchip-Mikrocomputer beschrieben werden, wenn der Benutzerbereich A des Speicherblocks 161 für Starten bezeichnet ist (Boot-Bereichbezeichnungsflag A = "0", der Boot-Bereichbezeichnungsflag B = "1"). Der nichtflüchtige Speicher 41 ist so ausgelegt, dass, wenn Dateninhalte gelöscht werden, "1" in allen der gelöschten Bits gespeichert wird.
  • Hier sind der Benutzerbereich und der Boot-Bereichbezeichnungsflag des Speicherblocks 161 als der Benutzerbereich A bzw. der Boot-Bereichbezeichnungsflag A, und der Benutzerbereich und der Boot-Bereichbezeichnungsflag des Speicherblocks 162 als der Benutzerbereich B bzw. der Boot-Bereichbezeichnungsflag B dargestellt.
  • Zuerst ist der Speicherinhalt des Benutzerbereichs B und des Boot-Bereichbezeichnungsflags B zu löschen, in den ein Boot-Programm neu eingeschrieben wird (Schritt 201). Dann ist das neue Boot-Programm in den Benutzerbereich B (Schritt 202) einzuschreiben. Als nächstes sind Daten so zu schreiben, dass der Boot-Bereichbezeichnungsflag B Bootbezeichnung (Datum"0") aufweist (Schritt 203).
  • Anschließend ist der Speicherinhalt des Benutzerbereichs A und des Boot-Bereichbezeichnungsflags A (Schritt 204) zu löschen. Zu diesem Zeitpunkt wird kein Einschreiben in den Boot-Bereichbezeichnungsflag A durchgeführt, um das Datum "1" das gleiche bleiben zu lassen. Als nächstes ist ein anderes Programm als das Boot-Programm in den gelöschten Benutzerbereich A entsprechend der Notwendigkeit einzuschreiben.
  • Wenn in der Benutzerbetriebsart das System durch Rückstellen gestartet wird, wird das Programm von dem Boot-Speicher 3 basierend darauf ausgeführt, welche Programmwerte des Boot-Bereichbezeichnungsflags A und des Boot-Bereichbezeichnungsflags B gelesen werden, zur Bestimmung, welcher des Benutzerbereichs A und des Benutzerbereichs B ein Bereich ist, der das neue Boot-Programm einschließt, und Daten des relevanten Benutzerbereichs sind in den Bereichsumschaltflag 4 zu schreiben. Das Bestimmungsergebnis ist an dem Bereichsumschaltflag 4 zu setzen, um Speicherinhalte zu lesen, die in die Benutzerbereiche verzweigt sind, in denen das neue Boot-Programm zum Zeitpunkt von Systemstart gespeichert ist.
  • Wenn ein augenblickliches Abschalten von Strom nach dem Ende von Schritt 203 und vor Ende von Schritt 204 auftritt, kann eine Mehrzahl von Benutzerbereichen als ein Boot-Bereich bezeichnet sein. In einem solchen Fall sollte einer der Benutzerbereiche, zum Beispiel der Benutzerbereich A, bevorzugt als ein Boot-Bereich bezeichnet werden.
  • Da in dem konventionellen Einzelchip-Mikrocomputer Setzen eines Boot-Bereichbezeichnungsflags und eines Bereichsumschaltflags Umschalten eines Benutzerbereichs ermöglicht, der ein Boot-Programm zum Starten des Systems einschließt, wodurch Ausführung von Boot-Programm-Neueinschreiben in einen nichtflüchtigen Speicher ermöglicht wird, während das alte Boot-Programm immer vorhanden ist, selbst wenn auf grund eines augenblicklichen Stromabschaltens oder dergleichen zum Zeitpunkt des Neueinschreibens in der Selbstprogrammierbetriebsart das Neueinschreiben nicht abgeschlossen werden kann, ist Wiederherstellung durch weiteres Neueinschreiben möglich und Neueinschreiben wird mit einer geringeren Anzahl von Tätigkeiten in einer kurzen Zeitspanne ermöglicht.
  • Wenn in einem solchen konventionellen Einzelchip-Mikrocomputer jedoch augenblickliches Stromabschalten während Löschung des Benutzerbereichs B erfolgt, das heißt, während Verarbeitung von Schritt 201 in 5, wird der Wert des Boot-Bereichsbezeichnungsflags B unbestimmt, um einen gültigen Wert abhängig von Situationen aufzuweisen. In diesem Stadium ist die Verarbeitung von Schritt 202 zum Einschreiben des neuen Boot-Programms in den Benutzerbereich B noch abzuschließen. Wenn das System für Starten zurückgestellt wird, werden daher beide der Boot-Bereichsbezeichnungsflag A und B gültig, und wenn hier eine Einstellung vorgenommen wird, um bevorzugt den Benutzerbereich B als einen Boot-Bereich zu bezeichnen, tritt ein solches Problem auf, dass ein Benutzerbereich, in dem kein Boot-Programm gespeichert ist, als ein Boot-Bereich bezeichnet werden kann.
  • In einem Flash-Speicher wird insbesondere Voreinschreiben durchgeführt, bevor geschriebene Daten gelöscht werden, wenn Schreiben ausgeführt wird, um den in allen Speicherzellen gehaltenen Spannungspegel auf dem gleichen Pegel zu halten. Wenn augenblickliches Stromabschalten oder dergleichen während Voreinschreiben eines bestimmten Speicherblocks erfolgt, kann daher ein Boot-Bereichsbezeichnungsflag des Speicherblocks "1" erhalten werden, welches usprüngliche "0" sein sollte, oder "0" erhalten werden, welches ursprünglich "1" sein sollte.
  • Infolgedessen tritt auch in dem in 4 gezeigten konventionellen Einzelchip-Mikrocomputer möglicherweise ein solches Problem auf, dass ein Speicherblock, in dem ein Boot-Programm gespeichert ist, nicht abhängig von der Zeitabstimmung spezifiziert werden kann, wenn ein augenblickliches Stromabschalten erfolgt, welches Starten von dem Boot-Programm sperrt. Wenn Starten von dem Boot-Programm nicht ausgeführt wird, kann dann der Systembetrieb nicht normal durchgeführt werden, was zu fehlerhaftem Betrieb führt.
  • Die oben beschriebenen konventionellen Einzelchip-Mikrocomputer weisen Mängel darin auf, dass augenblickliches Stromabschalten oder dergleichen, das während Boot-Programmneueinschreibverarbeitung in der Selbstprogrammierbetriebsart erfolgt, Starten von dem Boot-Programm unmöglich macht, wodurch fehlerhafter Betrieb erhalten wird.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Eine Aufgabe der vorliegenden Erfindung besteht in der Schaffung eines Einzelchip-Mikrocomputers, der von einem Boot-Programm ohne Fehler starten kann, selbst wenn augenblickliches Stromabschalten oder dergleichen während der Boot-Bereichumschaltverarbeitung bei Selbstprogrammierung erfolgt.
  • Dem ersten Aspekt der Erfindung zufolge, umfasst ein Einzelchip-Mikrocomputer einen nichtflüchtigen Speicher mit einer Mehrzahl von Speicherblockpaaren als eine Kombination aus einer Mehrzahl von Speicherblöcken, die jeweils aus einem Benutzerbereich zum Speichern eines Programmcodes durch einen Benutzer und einem Bereich zum Speichern eines Boot-Bereichsbezeichnungsflags bestehen, welcher anzeigt, dass ein zuerst zum Zeitpunkt von Systemstart auszuführendes Boot-Programm in dem Benutzerbereich gespeichert ist, wobei das Boot-Programm in einem Benutzerbereich eines Speicherbereichs eines speziellen Paars von Speicherblöcken in einem Anfangszustand gespeichert ist, wo keine Boot-Bereichumschaltverarbeitung durchgeführt wird, einen Bereichsumschaltflag zum Anzeigen, in welchem Speicherblockpaar das Boot-Programm in dem Benutzerbereich unter der Mehrzahl von Speicherblockpaaren gespeichert ist, und ein Steuerelement, um, wenn ein anderes, nicht als Boot-Bereich bezeichnetes Paar von Speicherblöcken als ein neuer Boot-Bereich bezeichnet wird, einen Wert zu speichern, der durch Subtrahieren eines vorbestimmten Werts von einem Anfangswert erhalten wird, welcher an dem Boot-Bereichsbezeichnungsflag des Speicherblocks aller der Speicherblockpaare in dem Boot-Bereichsbezeichnungsflag jedes Speicherblocks des anderen Speicherblockpaars gesetzt wird, und zum Zeitpunkt des Startens des Systems, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, zu bestimmen, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist, um den Bereichsumschaltflag zu setzen.
  • In dem bevorzugten Aufbau bestimmt das Steuerelement, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars verschieden sind oder den Anfangswert aufweisen, dass der betreffende Boot-Bereichsbezeichnungsflag ungültig ist, zur Bestimmung, dass das Boot-Programm in dem Benutzerbereich des Speicherblocks des speziellen Speicherblockpaars gespeichert ist.
  • In einem anderen bevorzugten Aufbau bestimmt das Steuerelement, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars verschieden sind, dass der Boot-Bereichsbezeichnungsflag in dem Speicherblock des speziellen Speicherblockpaars ungültig ist, zur Bestimmung, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist.
  • In einem anderen bevorzugten Aufbau bestimmt das Steuerelement, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars gleich sind, dass das Boot-Programm in einem Speicherblock eines Speicherblockpaars gespeichert ist, das einen Boot-Bereichsbezeichnungsflag speichert, dessen Wert kleiner ist.
  • In einem anderen bevorzugten Aufbau bestimmt das Steuerelement, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblock paars gleich sind und nicht den Anfangswert oder "0" aufweisen, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist.
  • In einem anderen bevorzugten Aufbau werden zum Zeitpunkt von Löschung des Benutzerbereichs und der Boot-Bereichsbezeichnungsflag jedes Speicherblocks der Speicherblockpaare des nichtflüchtigen Speichers gleichzeitig gelöscht.
  • Dem zweiten Aspekt der Erfindung zufolge, umfasst ein Einzelchip-Mikrocomputer einen nichtflüchtigen Speicher mit einer Mehrzahl von Speicherblockpaaren als eine Kombination einer Mehrzahl von Speicherblöcken, die jeweils aus einem Benutzerbereich zum Speichern eines Programmcodes durch einen Benutzer und einem Bereich zum Speichern eines Boot-Bereichsbezeichnungsflags bestehen, der anzeigt, dass ein Boot-Programm, das zuerst zum Zeitpunkt von Systemstart auszuführen ist, in dem Benutzerbereich gespeichert ist, wobei das Boot-Programm in einem Benutzerbereich eines Speicherblocks eines speziellen Speicherblockpaars in einem Anfangszustand gespeichert ist, wo keine Boot-Bereichumschaltverarbeitung durchgeführt wird, einen Bereichsumschaltflag zum Anzeigen, in welchem Speicherblockpaar das Boot-Programm in dem Benutzerbereich unter der Mehrzahl von Paaren von Speicherblöcken gespeichert ist, und ein Steuerelement zum Setzen des Bereichsumschaltflags, wobei das Steuerelement, wenn es ein anderes, nicht als ein Boot-Bereich bezeichnetes Speicherblockpaar als einen neuen Boot-Bereich bezeichnet, einen Wert speichert, der durch Subtrahieren eines vorbestimmten Werts von einem Anfangswert erhalten wird, welcher an dem Boot-Bereichsbezeichnungsflag des Speicherblocks aller der Speicherblockpaare in dem Boot-Bereichsbezeichnungsflag jedes Speicherblocks des anderen Speicherblockpaars gesetzt wird, und zum Zeitpunkt des Startens des Systems, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, bestimmt, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars verschieden sind, oder den Anfangswert aufweisen, bestimmt, dass der betreffende Boot-Bereichsbezeichnungsflag ungültig ist, zur Bestimmung, dass das Boot-Programm in dem Benutzerbereich des Speicherblocks des speziellen Speicherblockpaars gespeichert ist, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars verschieden sind, bestimmt, dass der Boot-Bereichsbezeichnungsflag in dem Speicherblock des speziellen Speicherblockpaars ungültig ist, zur Bestimmung, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist, und wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars gleich sind, bestimmt, dass das Boot-Programm in einem Speicherblock eines Speicherblockpaars gespeichert ist, dass einen Boot-Bereichsbezeichnungsflag speichert, dessen Wert kleiner ist.
  • Einem anderen Aspekt der Erfindung zufolge, weist in einem Einzelchip-Mikrocomputer, der einen nichtflüchtigen Speicher mit einer Mehrzahl von Speicherblockpaaren als eine Kombination aus einer Mehrzahl von Speicherblöcken, die jeweils aus einem Benutzerbereich zum Speichern eines Programmcodes durch einen Benutzer und einem Bereich zum Speichern eines Boot-Bereichsbezeichnungsflags besteht, der anzeigt, dass ein Boot-Programm, das zuerst zum Zeitpunkt des Systemstarts auszuführen ist, in dem Benutzerbereich gespeichert ist, wobei das Boot-Programm in einem Benutzerbereich eines Speicherblocks eines speziellen Paars von Speicherblöcken in einem Anfangszustand gespeichert ist, wo keine Bereichsumschaltverarbeitung durchgeführt wird, und eine CPU einschließt, ein Boot-Bereichbezeichnungsverfahren des Einzelchip-Mikrocomputers zum Umschalten eines Bereichs des anderen Speicherblockpaars als einen neuen Boot-Bereich, wenn ein Benutzerbereich eines Speicherblocks eines speziellen Speicherblockpaars als ein Boot-Bereich bezeichnet wird, in dem das Boot-Programm gespeichert ist, die folgenden Schritte auf: wenn ein anderes, nicht als ein Boot-Bereich bezeichnetes, Speicherblockpaar als ein neuer Boot-Bereich bezeichnet wird, einen Wert zu speichern, der durch Subtrahieren eines vorbestimmten Werts von einem Anfangswert erhalten wird, welcher an dem Boot-Bereichsbezeichnungsflag des Speicherblocks aller der Speicherblockpaare in dem Boot-Bereichsbezeichnungsflag jedes Speicherblocks des anderen Speicherblockpaars eingestellt wird, und
    zum Zeitpunkts des Systemstarts, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, zu bestimmen, dass das Boot-Programm ist dem anderen Speicherblockpaar gespeichert ist.
  • In dem bevorzugten Aufbau weist das Boot-Bereichbezeichnungsverfahren des Einzelchip-Mikrocomputers den Schritt auf, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars verschieden sind oder den Anfangswert aufweisen, zu bestimmen, dass der betreffende Boot-Bereichsbezeichnungsflag ungültig ist, zur Bestimmung, dass das Boot-Programm in dem Benutzerbereich des Speicherblocks des speziellen Speicherblockpaars gespeichert ist.
  • In einem anderen bevorzugten Aufbau weist das Boot-Bereichbezeichnungsverfahren des Einzelchip-Mikrocomputers den Schritt auf, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars verschieden sind, zu bestimmen, dass der Boot-Bereichsbezeichnungsflag in dem Speicherblock des speziellen Speicherblockpaars ungültig ist, zur Bestimmung, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist.
  • In einem anderen bevorzugten Aufbau weist das Boot-Bereichsbezeichnungsverfahren des Einzelchip-Mikrocomputers den Schritt auf, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars gleich sind, zu bestimmen, dass das Boot-Programm in einem Speicherblock eines Speicherblockpaars gespeichert ist, welcher einen Boot-Bereichsbezeichnungsflag speichert, dessen Wert kleiner ist.
  • In einem anderen bevorzugten Aufbau weist das Boot-Bereichsbezeichnungsverfahren des Einzelchip-Mikrocomputers den Schritt auf, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert oder "0" aufweisen, zu bestimmen, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist.
  • Einem anderen Aspekt der Erfindung zufolge, weist in einem Einzelchip-Mikrocomputer, der einen nichtflüchtigen Speicher mit einer Mehrzahl von Speicherblockpaaren als eine Kombination einer Mehrzahl von Speicherblöcken, die jeweils aus einem Benutzerbereich zum Speichern eines Programmcodes durch einen Benutzer und einem Bereich zum Speichern eines Boot-Bereichsbezeichnungsflags bestehen, der anzeigt, dass ein zuerst zum Zeitpunkt von Systemstarten auszuführendes Boot-Programm in dem Benutzerbereich gespeichert ist, wobei das Boot-Programm in einem Benutzerbereich eines Speicherblocks eines speziellen Paars von Speicherblöcken in einem Anfangszustand gespeichert ist, wo keine Boot-Bereichumschaltverarbeitung durchgeführt wird, und eine CPU umfasst, ein Boot-Bereichsbezeichnungsverfahren des Einzelchip-Mikrocomputers zum Umschalten eines Bereichs eines anderen Speicherblockpaars als einen neuen Bootbereich, wenn ein Benutzerbereich eines Speicherblocks eines speziellen Speicherblockpaars als ein Boot-Bereich bezeichnet wird, in dem das Boot-Programm gespeichert ist, die Schritte auf, wenn ein anderes, nicht als ein Boot-Bereich bezeichnetes Speicherblockpaar als ein neuer Boot-Bereich bezeichnet wird, einen Wert zu speichern, der durch Subtrahieren eines vorbestimmten Werts von einem Anfangswert erhalten wird, der bei dem Boot-Bereichsbezeichnungsflag des Speicherblocks aller der Speicherblockpaare in dem Boot-Bereichsbezeichnungsflag jedes Speicherblocks des anderen Speicherblockpaars gesetzt wird, zum Zeitpunkt von Starten des Systems, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, zu bestimmen, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars verschieden sind oder den Anfangswert aufweisen, zu bestimmen, dass der betreffende Boot-Bereichsbezeichnungsflag ungültig ist, zur Bestimmung, dass das Boot-Programm in dem Benutzerbereich des Speicherblocks des speziellen Speicherblockpaars ist, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars verschieden sind, zu bestimmen, dass der Boot-Bereichsbezeichnungsflag in dem Speicherblock des speziellen Speicherblockpaars ungültig ist, zur Bestimmung, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist, und, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars gleich sind, zu bestimmen, dass das Boot-Programm in einem Speicherblock eines Speicherblockpaars gespeichert ist, welches einen Boot-Bereichsbezeichnungsflag speichert, dessen Wert kleiner ist.
  • Einem anderen Aspekt der Erfindung zufolge, weist ein Boot-Bereichsumschaltverfahren eines Mikrocomputers, der einen nichtflüchtigen Speicher mit einem ersten Speicherblock und einem zweiten Speicherblock einschließt, die aus einem Programmbereich und einem Boot-Bereichsbezeichnungsflagbereich des Mikrocomputers gebildet werden, die folgenden Schritte auf:
    wenn ein neues Boot-Programm in dem nichtflüchtigen Speicher anstelle des Boot-Programms gespeichert wird, Daten des zweiten Speicherblocks zu löschen, das neue Boot-Programm in dem Programmbereich des zweiten Speicherblocks zu speichern, Daten, die sich von den Daten unterscheiden, die in dem Boot-Bereichsbezeichnungsflagbereich des ersten Speicherblocks gespeichert sind, in dem Boot-Bereichsbezeichnungs flagbereich des zweiten Speicherblocks zu speichern, und Daten des ersten Speicherblocks zu löschen.
  • In dem bevorzugten Aufbau wird beim Lesen des Boot-Programms der Boot-Bereichsbezeichnungsflag aus dem ersten Speicherblock und dem zweiten Speicherblock gelesen, und das in dem ersten Speicherblock gespeicherte Boot-Programm oder das in dem zweiten Speicherblocks gespeicherte neue Boot-Programm basierend auf einem Vergleichsergebnis des Boot-Bereichsbezeichnungsflags ausgeführt.
  • In einem anderen bevorzugten Aufbau, in dem der Boot-Bereichsbezeichnungsflagbereich des zweiten Speicherblocks einen ersten Boot-Bereichsbezeichnungsflagbereich und einen zweiten Boot-Bereichsbezeichnungsflagbereich umfasst, werden anstelle des Schritts, Daten, die sich von Daten unterscheiden, welche in dem Boot-Bereichsbezeichnungsflagbereich des ersten Speicherblocks gespeichert sind, in dem Boot-Bereichsbezeichnungsflagbereich des zweiten Speicherblocks zu speichern, Daten, die sich von Daten unterscheiden, welche in dem Boot-Bereichsbezeichnungsflagbereich des ersten Speicherblocks gespeichert sind, in dem ersten Boot-Bereichsbezeichnungsflagbereich des zweiten Speicherblocks zu speichern, die gleichen Daten, wie Daten des Boot-Bereichsbezeichnungsflagbereichs des ersten Speicherblocks in dem zweiten Boot-Bereichsbezeichnungsflagbereich des zweiten Speicherblocks gespeichert.
  • Da der vorliegenden Erfindung zufolge Boot-Bereichsbezeichnungsflag des gleichen Inhalts in einer Mehrzahl von Bereichen gespeichert sind, die nicht gleichzeitig gelöscht werden können, selbst wenn ein augenblickliches Stromabschalten erfolgt, das bewirkt, dass ein Boot-Bereichsbezeichnungsflag einen unbestimmten Wert aufweist, wird ein Wert des anderen Boot-Bereichsbezeichnungsflags als normal aufrechterhalten. Deshalb führt die Ermittelung, ob die beiden Boot-Bereichsbezeichnungsflag mit einander übereinstimmen oder nicht, zur Bestimmung, ob die Boot-Bereichsbezeichnungsflag gültig oder ungültig sind, so dass fehlerhafter Betrieb verhindert werden kann, einen Speicherblock, in dem kein Boot-Programm tatsächlich gespeichert ist, als einen Boot-Bereich zu bezeichnen.
  • Andere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden aus der hier im folgenden angeführten ausführlichen Beschreibung deutlich werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung wird vollständiger anhand der im folgenden angeführten ausführlichen Beschreibung und von den beigefügten Zeichnungen der bevorzugten Ausführungsform der Erfindung verstanden werden, welche jedoch nicht als die Erfindung begrenzend aufgefasst werden sollten, sondern nur zur Erklärung und zum Verständnis vorgesehen sind.
  • In den Zeichnungen ist:
  • 1 ein Blockdiagramm, das eine Struktur eines Einzelchip-Mikrocomputers gemäß einer ersten Ausführungsform der vorliegenden Erfindung zeigt;
  • 2A ein Diagramm zum Gebrauch beim Erklären von Boot-Bereichumschaltverarbeitung in dem Einzelchip-Mikrocomputer gemäß der ersten Ausführungsform der vorliegenden Erfindung;
  • 2B ein Diagramm zum Gebrauch beim Erklären von Boot-Bereichumschaltverarbeitung in dem Einzelchip-Mikrocomputer gemäß der ersten Ausführungsform der vorliegenden Erfindung;
  • 2C ein Diagramm zum Gebrauch beim Erklären von Boot-Bereichumschaltverarbeitung in dem Einzelchip-Mikrocomputer der ersten Ausführungsform der vorliegenden Erfindung;
  • 2D ein Diagramm zum Gebrauch beim Erklären von Boot-Bereichumschaltverarbeitung in dem Einzelchip-Mikrocomputer gemäß der ersten Ausführungsform der vorliegenden Erfindung;
  • 2E ein Diagramm zum Gebrauch beim Erklären von Boot-Bereichumschaltverarbeitung in dem Einzelchip-Mikrocomputer gemäß der ersten Ausführungsform der vorliegenden Erfindung;
  • 2F ein Diagramm zum Gebrauch beim Erklären von Boot-Bereichumschaltverarbeitung in dem Einzelchip-Mikrocomputer gemäß der ersten Ausführungsform der vorliegenden Erfindung;
  • 3 ein Ablaufdiagramm, das den Betrieb des in 1 dargestellten Einzelchip-Mikrocomputers zeigt;
  • 4 ein Blockdiagramm, das eine Struktur eines konventionellen Einzelchip-Mikrocomputers zeigt; und
  • 5 ein Ablaufdiagramm, das den Betrieb des in 4 dargestellten konventionellen Einzelchip-Mikrocomputers zeigt.
  • BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Die bevorzugte Ausführungsform der vorliegenden Erfindung soll im folgenden ausführlich unter Bezugnahme auf die beigefügten Zeichnungen erörtert werden. In der folgenden Beschreibung sind zahlreiche spezielle Details aufgeführt, um ein gründliches Verständnis der vorliegenden Erfindung zu schaffen. Es wird jedoch den Fachleuten in diesem Gebiet offensichtlich sein, dass die vorliegende Erfindung ohne diese speziellen Details praktiziert werden kann. Im anderen Fall sind gut bekannte Strukturen nicht detailliert gezeigt, um die vorliegende Erfindung nicht unnötig zu verkomplizieren.
  • Als nächstes soll eine Ausführungsform der vorliegenden Erfindung unter Bezugnahme auf die Zeichnungen beschrieben werden. 1 ist ein Blockdiagramm, das eine Struktur eines Einzelchip-Mikrocomputers gemäß einer ersten Ausführungsform der vorliegenden Erfindung zeigt. In 1 sind die gleichen Komponenten wie die in 4 mit den gleichen Bezugsziffern versehen worden, um ihre Beschreibung wegzulassen.
  • Der Einzelchip-Mikrocomputer gemäß der vorliegenden Endung unterscheidet sich von dem in 4 gezeigten konventionellen Einzelchip-Mikrocomputer darin, dass der nichtflüchtige Speicher 41 durch einen nichtflüchtigen Speicher 1 ersetzt ist. In der vorliegenden Ausführungsform soll ein Fall beschrieben werden, in dem ein Flash-Speicher als ein nichtflüchtiger Speicher verwendet wird.
  • Der nichtflüchtige Speicher 1 in der vorliegenden Ausführungsform ist in vier Speicherblöcke 61 bis 64 unterteilt. Dann ist jeder der vier Speicherblöcke 61 bis 64 in einen Benutzerbereich zum Schreiben von Daten wie zum Beispiel einen Programmcode durch einen Benutzer und einen Bereich zum Speichern eines Boot-Bereichsbezeichnungsflags unterteilt. In der vorliegenden Ausführungsform soll eine Beschreibung unter der Annahme vorgenommen werden, dass der Boot-Bereichsbezeichnungsflag als ein Beispiel aus 32 Bits gebildet ist.
  • Außerdem wird unter der Annahme, dass Boot-Bezeichnung, die einen Speicherblock anzeigt, in dem ein Boot-Programm gespeichert ist, für jede zwei Speicherblöcke durchgeführt wird, Boot-Bezeichnung hier durch Bezeichnen eines Paars von Speicherblöcken, den beiden Speicherblöcken 61 und 62 oder den Speicherblöcken 63 und 64 durchgeführt.
  • Während in einem konventionellen Mikrocomputer der Boot-Bereichsbezeichnungsflag nur anzeigt, ob ein Boot-Programm in einem betreffenden Blockspeicher gespeichert ist oder nicht, wird in dem Einzelchip-Mikrocomputer der vorliegenden Ausführungsform basierend auf einem Wert des Boot-Bereichsbezeichnungsflags bestimmt, in welchem des Speicherblockpaars das Boot-Programm gespeichert ist, den Speicherblöcken 61 und 62 oder den Speicherblöcken 63 und 64.
  • Der Flash-Speicher ist derart ausgelegt, dass, wenn ein bestimmter Speicherblock gelöscht wird, ein Boot-Bereichsbezeichnungsflag und in einem Benutzerbereich in dem Speicherblock gespeicherte Daten gleichzeitig gelöscht werden, um es unmöglich zu machen, dass nur die in einem der Bereiche gespeicherten Daten verbleiben. Außerdem wird in einem jeglichen Löschverfahren Löschung intern für jeden einen Speicherblock ohne Fehler durchgeführt.
  • Eine CPU 2 bestimmt in der vorliegenden Ausführungsform, in welchem der Speicherblockpaare, den Speicherblöcken 61 und 62 oder den Speicherblöcken 63 und 64, ein Boot-Programm gespeichert ist, welches auszuführen ist, wenn ein System als nächstes zurückgestellt wird, basierend auf den Werten der Boot-Bereichsbezeichnungsflag, die in den jeweiligen Speicherblöcken 61-64 gespeichert sind, und setzt das Bestimmungsergebnis an dem Flagbereichumschaltflag 4.
  • Als nächstes soll Umschaltverarbeitung eines Boot-Bereichs, die in dem Einzelchip-Mikrocomputer gemäß der vorliegenden Ausführungsform durchgeführt wird, unter Bezugnahme auf die 2A, 2B, 2C, 2D, 2E und 2F beschrieben werden. In den 2A bis 2F ist der Wert des Boot-Bereichsbezeichnungsflags "FFFFFFFF (H: hexadezimale Schreibweise)" einfach als "FF", "FFFFFFFE (H)" einfach als "FE" und "00000000(H)" einfach als "00" dargestellt. Dann wird die Boot-Bereichumschaltverarbeitung durch die CPU 2 durchgeführt.
  • Hier soll eine Beschreibung in Bezug zu einem Fall angeführt werden, in dem ein in dem Benutzerbereich des Speicherblocks 61 gespeichertes Boot-Programm neu in den Benutzerbereich des Speicherblocks 63 eingeschrieben wird. Ein Anfangswert des Boot-Bereichsbezeichnungsflags (Wert bei dem gelöschten Zustand) ist "FFFFFFFF(H)".
  • Der Zustand des nichtflüchtigen Speichers 1 vor Durchführung der Boot-Bereichumschaltverarbeitung ist in 2A gezeigt. In 2A ist das Boot-Programm in dem Benutzerbereich des Speicherblocks 61 gespeichert und jeder Boot-Bereichsbezeichnungsflag der Speicherblöcke 61 bis 64 zeigt "FFFFFFFF(H)" an.
  • Die Boot-Bereichumschaltverarbeitung wird von dem in 2A gezeigten Zustand in der folgenden Weise durchgeführt.
    • (1) Lösche zuerst die Speicherblöcke 63 und 64 (2B) zum Schreiben eines neues Boot-Programms in den Benutzerbereich des Speicherblocks 63 (2C), Der Wert des Boot-Bereichsbezeichnungsflags, der bei Durchführung von Löschung erhalten wird, ändert sich von "FFFFFFFF" auf "00000000" und dann erneut auf "FFFFFFFF".
    • (2) Schreibe als nächstes als den Boot-Bereichsbezeichnungsflag des Speicherblocks 63" FFFFFFFE", welches ein Wert ist, der durch Zurückzählen von "FFFFFFFF" um 1 erhalten wird (2D), und Schreibe danach als den Boot-Bereichsbezeichnungsflag des Speicherblocks 64, ebenso "FFFFFFFE", welches ein Wert ist, der durch Zurückzählen von "FFFFFFFF" um eins erhalten wird.
    • (3) Lösche dann zuletzt die Speicherblöcke 61 und 62, um die Daten in der gleichen Weise wie der konventionellen neu einzuschreiben. In dieser Verarbeitung erfolgt kein Neueinschreiben der Boot-Bereichsbezeichnungsflag der Speicherblöcke 61 und 62.
  • Als nächstes soll unter Bezugnahme auf das in 3 gezeigte Ablaufdiagramm Boot-Bereichbestimmungverarbeitung beschrieben werden, bei der die CPU 2 ein Paar von Speicherblöcken, wo ein Boot-Programm gespeichert ist, basierend auf einem Boot-Bereichsbezeichnungsflagwert bestimmt, welche Verarbeitung durchgeführt wird, nachdem so die Boot-Bereichumschaltverarbeitung ausgeführt wurde. Hier sind die Boot-Bereichsbezeichnungsflag der Speicherblöcke 61 bis 64 jeweils als Boot-Bereichsbezeichnungsflag A bis D dargestellt.
  • Nachdem die Boot-Bereichumschaltverarbeitung abgeschlossen ist, liest die CPU 2 zuerst die Werte der Boot-Bereichsbezeichnungsflag A bis D aus den Speicherblöcken 61 bis 64 aus (Schritt 101). Dann wird bestimmt, ob der Wert des Boot-Bereichsbezeichnungsflags C und der des Boot-Bereichsbezeichnungsflags D gleich sind (Schritt 102). Wenn bei Schritt 102 die Werte des Boot-Bereichsbezeichnungsflags C und des Boot-Bereichsbezeichnungsflags D nicht gleich sind, was bedeutet, dass die Verarbeitung der Umschaltung des Boot-Bereichs zu den Speicherblöcken 63 und 64 nicht normal beendet werden kann, wird bestimmt, dass ein normales Boot-Programm in den Boot-Bereichen der Speicherblöcke 61 und 62 gespeichert ist, um Boot-Bezeichnung der Speicherblöcke 61 und 62 durchzuführen (Schritt 107).
  • Wenn bei Schritt 102 bestimmt wird, dass die Werte des Boot-Bereichsbezeichnungsflags C und des Boot-Bereichsbezeichnungsflags D die gleichen sind, wird als nächstes bestimmt, ob die Werte der Boot-Bereichsbezeichnungsflag C und D "00000000" oder "FFFFFFFF" sind (Schritt 103). Wenn bei Schritt 103 die Werte der Boot-Bereichsbezeichnungsflag C und D "00000000" oder "FFFFFFFF" sind, wird bestimmt, dass eine Anomalität oder eine andere in den Speicherblöcken 63 und 64 auftritt, um Boot-Bezeichnung der Speicherblöcke 61 und 62 durchzuführen (Schritt 107).
  • Hier ist der Grund, warum bestimmt werden kann, dass eine Anomalität oder eine andere auftritt, wenn die Werte der Boot-Bereichsbezeichnungsflag C und D "00000000" oder "FFFFFFFF" sind, dass, wenn augenblickliches Stromabschalten während Löschverarbeitung eines bestimmten Speicherblocks auftritt, es äußerst wahrscheinlich ist, dass gelöschte Daten "FFFFFFFF" sein werden, und wenn augenblickliches Stromabschalten während Voreinschreiben im Verlauf von Löschverarbeitung auftritt, es äußerst wahrscheinlich ist, dass gelöschte Daten "00000000" sein werden.
  • Wenn normale Verarbeitung durchgeführt wird, ist es aus den folgenden Gründen dann kaum möglich, dass die Werte der Boot-Bereichsbezeichnungsflag C und D "00000000" oder "FFFFFFFF" annehmen.
  • Zuerst soll ein Fall beschrieben werden, in dem die Werte der Boot-Bereichsbezeichnungsflag C und D "FFFFFFFF" sind. In einem Fall, wenn das Boot-Programm in einem Anfangszustand in irgendeinem der Speicherblöcke 61 und 62 gespeichert ist, und das Boot-Programm in den Speicherblöcken 63 und 64 gespeichert ist, bedeutet dies, dass die Boot-Bereichumschaltverarbeitung wenigstens einmal durchgeführt worden ist, wodurch die Werte der Boot-Bereichsbezeichnungsflag C und D nicht "FFFFFFFF" bleiben können. Umgekehrt bedeutet, wenn die Werte der Boot-Bereichsbezeichnungsflag C und D "FFFFFFFF" sind, dass keine Boot-Bereichumschaltverarbeitung durchgeführt worden ist, wodurch bestimmt werden kann, dass das Boot-Programm in den Speicherblöcken 61 und 62 gespeichert ist.
  • Als nächstes soll ein Fall beschrieben werden, in dem die Werte der Boot-Bereichsbezeichnungsflag C und D "00000000" sind. Obwohl es, da der Wert des Boot-Bereichsbezeichnungsflags um eins jeweils von dem Anfangswert "FFFFFFFF" bei jeder Durchführung der Boot-Bereichumschaltverarbeitung zurückgezählt wird, zum Beispiel in einem Fall möglich ist, dass er zuletzt "00000000" ist, in dem der Boot-Bereichsbezeichnungsflag 32 Bits aufweist, kann "00000000" nicht erhalten werden, außer wenn Boot-Bereichumschaltverarbeitung 232 Mal durchgeführt wird, so dass es in der Praxis unmöglich ist, "00000000" zu erhalten. Infolgedessen kann, wenn der Wert des Boot-Bereichsbezeichnungsflags "00000000" ist, bestimmt werden, dass eine Anomalität oder eine andere auftritt.
  • Mit anderen Worten, wenn alle die den Boot-Bereichsbezeichnungsflag bildenden Bits "0" oder "1" sind, selbst wenn die Werte von zwei in einer Mehrzahl von Speicherblöcken gespeicherten Boot-Bereichsbezeichnungsflagn miteinander übereinstimmen, bestimmt die CPU, dass sie ungültig sind.
  • Wenn bei Schritt 103 die Werte der Boot-Bereichsbezeichnungsflag C und D weder "00000000" noch "FFFFFFFF" sind, wird bestimmt, ob der Wert des Boot-Bereichsbezeichnungsflags A und der des Boot-Bereichsbezeichnungsflags B miteinander übereinstimmen (Schritt 104). Wenn bei Schritt 104 der Wert des Boot-Bereichsbezeichnungsflags A und der des Boot-Bereichsbezeichnungsflags B nicht miteinander übereinstimmen, da die Verarbeitung der Umschaltung eines Boot-Bereichs zu den Speicherblöcken 61 und 62 nicht normal beendet wird, wird bestimmt, dass ein normales Boot-Programm in den Benutzerbereichen der Speicherblöcke 61 und 62 gespeichert ist, um Boot-Bezeichnung der Speicherblöcke 63 und 64 durchzuführen (Schritt 108).
  • Wenn bei Schritt 104 bestimmt wird, dass der Wert des Boot-Bereichsbezeichnungsflags A und der des Boot-Bereichsbezeichnungsflags B miteinander übereinstimmen, wird als nächstes bestimmt, ob die Werte des Boot-Bereichsbezeichnungsflags A und des Boot-Bereichsbezeichnungsflags B "00000000" sind oder nicht (Schritt 105). Wenn bei Schritt 105 die Werte der Boot-Bereichsbezeichnungsflag A und B "00000000" sind, wird bestimmt, dass eine Anomalität oder eine andere in den Speicherblöcken 61 und 62 aus dem selben Grunde wie oben beschrieben auftritt, wodurch Boot-Bezeichnung der Speicherblöcke 63 und 64 (Schritt 108) durchgeführt wird.
  • Wenn bei Schritt 105 die Werte der Boot-Bereichsbezeichnungsflag A und B nicht "00000000" sind, wird dann bestimmt, ob die Werte der Boot-Bereichsbezeichnungsflag A und B größer als die Werte der Boot-Bereichsbezeichnungsflag C und D (Schritt 105) sind. Wenn bei Schritt 105 die Werte der Boot-Bereichsbezeichnungsflag A und B größer als die Werte der Boot-Bereichsbezeichnungsflag C und D sind, wird bestimmt, dass das Boot-Programm in den Benutzerbereichen der Speicherblöcke 63 und 64 gespeichert ist, um Boot-Bezeichnung der Speicherblöcke 63 und 64 durchzuführen (Schritt 108). Wenn umgekehrt bei Schritt 105 die Werte der Boot-Bereichsbezeichnungsflag A und B kleiner als die Werte der Boot-Bereichsbezeichnungsflag C und D sind, wird bestimmt, dass das Boot-Programm in den Benutzerbereichen der Speicherblöcke 61 und 62 gespeichert ist, wodurch Boot-Bezeichnung der Speicherblöcke 61 und 62 durchgeführt wird (Schritt 107).
  • Die vorhergehend beschriebene Verarbeitung versetzt den Einzelchip-Mikrocomputer der vorliegenden Ausführungsform in die Lage, einen Speicherblock zu spezifizieren, in dem ein Boot-Programm gespeichert ist, um das System von dem Boot-Programm ohne Fehler zu starten, selbst wenn augenblickliches Stromabschalten zu irgendeiner Zeit während Selbstprogrammierung erfolgt.
  • In dem in 3 gezeigten Ablaufdiagramm wird der Vergleich zwischen dem Wert des Boot-Bereichsbezeichnungsflags und "00000000" oder "FFFFFFFF" durchgeführt, welche Vergleichsverarbeitung die Möglichkeit reduziert, dass die Werte der beiden Boot-Bereichsbezeichnungsflag unbestimmt werden, um miteinander zufällig aufgrund von augenblicklichem Stromabschalten oder dergleichen überein zu stimmen.
  • Es soll eine Beschreibung in Bezug zu einem Fall angeführt werden, zum Beispiel, in dem im Anfangszustand des in 1 gezeigten Einzelchip-Mikrocomputers das Boot- Programm nur in dem Benutzerbereich des Speicherblocks 61 getrennt von dem Benutzerbereich des Speicherblocks 62 gespeichert ist. Wenn in einem solchen Fall die Boot-Bereichumschaltverarbeitung nie durchgeführt worden ist, weisen alle Werte der Boot-Bereichsbezeichnungsflag A bis D den Anfangswert "FFFFFFFF" auf. Wenn Selbstprogrammierverarbeitung von diesem Zustand durchgeführt wird, um den Inhalt des Speicherblocks 62 neu einzuschreiben, wird, wenn augenblickliches Stromabschalten auftritt, bevor das Neueinschreiben des Speicherblocks 62 abgeschlossen ist, der Wert des Boot-Bereichsbezeichnungsflags B des Speicherblocks 62 ein unbestimmter Wert.
  • In diesem Fall fördert die Bezeichnung der Speicherblöcke 63 und 64 als einen Boot-Bereich aus dem Grunde, dass die Werte der Boot-Bereichsbezeichnungsflag C und D gemeinsam "FFFFFFFF" sind, fehlerhaften Betrieb, da das Boot-Programm in der Praxis in dem Benutzerbereich des Speicherblocks 61 gespeichert ist. Zum Verhindern einer solchen Situation werden die Werte der Boot-Bereichsbezeichnungsflag C und D und "FFFFFFFF" verglichen, um die Speicherblöcke 61 und 62 sogar in einem solchen Fall als einen Boot-Bereich zu bezeichnen.
  • Da in dem Einzelchip-Mikrocomputer der vorliegenden Ausführungsform die Boot-Bereichsbezeichnungsflag des gleichen Inhalts in einer Mehrzahl von Bereichen gespeichert sind, die nicht gleichzeitig gelöscht werden können, selbst wenn augenblickliches Stromabschalten auftritt und dazu führt, dass einer der Boot-Bereichsbezeichnungsflag einen unbestimmten Wert aufweist, wird der Wert des anderen Boot-Bereichsbezeichnungsflags auf einem normalen Wert gehalten. Deshalb führt die Bestimmung, ob zwei Boot-Bereichsbezeichnungsflag übereinstimmen oder nicht, zur Bestimmung, ob der Boot-Bereichsbezeichnungsflag gültig ist oder nicht, wodurch fehlerhafter Betrieb der Bezeichnung eines Speicherblocks als einen Boot-Bereich verhindert wird, in dem tatsächlich kein Boot-Programm gespeichert ist.
  • Es soll zum Beispiel betrachtet werden, wenn während Löschverarbeitung der Speicherblöcke 63 und 64 augenblickliches Stromabschalten auftritt, wodurch die Daten in den Speicherblöcken 63 und 64 unbestimmt werden. Selbst wenn in diesem Fall einer der Boot-Bereichsbezeichnungsflag der Speicherblöcke 63 und 64 einen kleineren Wert als "FFFFFFFF" aufweist, außer wenn der Wert des anderen Boot-Bereichsbezeichnungsflags den gleichen Wert aufweist, wird keiner der Speicherblöcke 63 und 64 fehlerhaft als ein Boot-Bereich bezeichnet. Die Wahrscheinlichkeit, dass die Werte der beiden Boot-Bereichsbezeichnungsflag zufällig miteinander übereinstimmen, beträgt 1/232 in einem Fall, in dem der Boot-Bereichsbezeichnungsflag 32 Bits aufweist, was zu gering ist, um tatsächlich aufzutreten.
  • Ferner, auch wenn augenblickliches Stromabschalten während Löschverarbeitung der Speicherblöcke 61 und 62 erfolgt, wodurch die Daten in den Speicherblöcken 61 und 62 wie in 2F gezeigt unbestimmt werden, kann fehlerhafter Betrieb in der Praxis aus dem selben Grunde nicht auftreten.
  • Obwohl die vorliegende Ausführungsform unter Bezugnahme auf einen Fall beschrieben wurde, in dem die Anzahl von Speicherblöcken zur Vereinfachung der Beschreibung vier ist, ist die vorliegende Erfindung nicht darauf begrenzt und die Anzahl von Speicherblöcken sollte wenigstens nicht weniger als vier sein, damit die vorliegende Erfindung angewendet werden kann. In diesem Fall ist es erforderlich, dass Boot-Bereichsbezeichnungsflag des gleichen Inhalts in einer Mehrzahl von Speicherblöcken gespeichert werden.
  • Außerdem, obwohl in der vorliegenden Ausführungsform ein Speicherbereich in vier Speicherblöcke unterteilt ist, von denen jeder Speicherblock weiter in einem Bereich zum Speichern eines Boot-Bereichsbezeichnungsflags und einen Benutzerbereich zum Speichern von Boot-Bereichsbezeichnungsflagn des gleichen Inhalts in zwei verschiedenen Bereichen unterteilt ist, kann der gleiche Effekt durch eine jegliche Anordnung zum Speichern von Boot-Bereichsbezeichnungsflagn des gleichen Inhalts in nicht weniger als zwei Bereichen erhalten werden, die nicht gleichzeitig gelöscht werden können.
  • Wie im vorhergehenden beschrieben ist, kann gemäß der vorliegenden Erfindung, da Boot-Bereichsbezeichnungsflag des gleichen Inhalts in einer Mehrzahl von Speicher blöcken gespeichert sind, die nicht gleichzeitig gelöscht werden können, selbst wenn ein augenblickliches Stromabschalten während der Boot-Bereichumschaltverarbeitung bei Selbstprogrammierung auftritt, ein Speicherblock spezifiziert werden, in dem ein Boot-Programm gespeichert ist, um das System von dem Boot-Programm zu starten.
  • Obwohl die Erfindung unter Bezugnahme auf eine exemplarische Ausführungsform derselben beschrieben wurde, sollte durch die Fachleute verstanden werden, dass das Vorhergehende und zahlreiche andere Änderungen, Weglassungen und Hinzufügungen darin und daran vorgenommen werden können, ohne vom Geist und Umfang der vorliegenden Erfindung abzuweichen. Deshalb sollte die vorliegende Erfindung nicht als auf die oben ausgeführte spezielle Ausführungsform begrenzt verstanden werden, sondern soll alle möglichen Ausführungsformen, die innerhalb eines eingeschlossenen Umfangs realisiert werden, und Äquivalente derselben in Bezug zu dem in den anliegenden Ansprüchen ausgeführten Merkmal einschließen.

Claims (16)

  1. Einzelchip-Mikrocomputer, umfassend: einen nichtflüchtige Speicher mit einer Mehrzahl Speicherblockpaaren als eine Kombination aus einer Mehrzahl von Speicherblöcken, die jeweils aus einem Benutzerbereich zum Speichern eines Programmcodes durch einen Benutzer und einem Bereich zum Speichern eines Boot-Bereichsbezeichnungsflags gebildet werden, der anzeigt, dass ein zuerst zum Zeitpunkt von Systemstarten auszuführendes Boot-Programm in dem Benutzerbereich gespeichert ist, wobei das Boot-Programm in einem Benutzerbereich eines Speicherblocks eines speziellen Paars von Speicherblöcken in einem Anfangszustand gespeichert ist, in dem keine Boot-Bereichumschaltverarbeitung durchgeführt wird, einen Bereichsumschaltflag zum Anzeigen, in welchem Speicherblockpaar das Boot-Programm in dem Benutzerbereich unter der Mehrzahl von Paaren von Speicherblöcken gespeichert ist, und ein Steuerelement zum Speichern eines Werts, wenn ein anderes Paar von nicht als ein Boot-Bereich bezeichneten Speicherblöcken als ein neuer Boot-Bereich bezeichnet wird, der durch Subtrahieren eines vorbestimmten Werts von einem Anfangswert erhalten wird, welcher an dem Boot-Bereichsbezeichnungsflag des Speicherblocks aller der Speicherblockpaare in dem Boot-Bereichsbezeichnungsflag jedes Speicherblocks des anderen Speicherblockpaar gesetzt wird, und zum Bestimmen zum Zeitpunkt des Systemstarts, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist, um den Bereichsumschaltflag zu setzen.
  2. Einzelchip-Mikrocomputer wie in Anspruch 1 ausgeführt, bei dem das Steuerelement, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars verschieden sind oder den Anfangswert aufweisen, bestimmt, dass der betreffende Boot-Bereichsbezeichnungsflag ungültig ist, zur Bestim mung, dass das Boot-Programm in dem Benutzerbereich des Speicherblocks des speziellen Speicherblockpaars gespeichert ist.
  3. Einzelchip-Mikrocomputer wie in Anspruch 1 ausgeführt, bei dem das Steuerelement, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars verschieden sind, bestimmt, dass der Boot-Bereichsbezeichnungsflag in dem Speicherblock des speziellen Speicherblockpaars ungültig ist, zur Bestimmung, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist.
  4. Einzelchip-Mikrocomputer wie in Anspruch 1 ausgeführt, bei dem das Steuerelement, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars gleich sind, bestimmt, dass das Boot-Programm in einem Speicherblock eines Speicherblockpaars gespeichert ist, das einen Boot-Bereichsbezeichnungsflag speichert, dessen Wert kleiner ist.
  5. Einzelchip-Mikrocomputer wie in Anspruch 1 ausgeführt, bei dem das Steuerelement, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert oder "0" aufweisen, bestimmt, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist.
  6. Einzelchip-Mikrocomputer wie in Anspruch 1 ausgeführt, bei dem zum Zeitpunkt von Löschung, der Benutzerbereich- und der Boot-Bereichsbezeichnungsflag jedes Speicherblocks der Speicherblockpaare des nichtflüchtigen Speichers gleichzeitig gelöscht werden.
  7. Einzelchip-Mikrocomputer, umfassend: einen nichtflüchtigen Speicher mit einer Mehrzahl von Speicherblockpaaren als eine Kombination aus einer Mehrzahl von Speicherblöcken, die jeweils aus einem Benutzerbereich zum Speichern eines Programmcodes durch einen Benutzer und einem Bereich zum Speichern eines Boot-Bereichsbezeichnungsflags gebildet wird, welcher anzeigt, dass ein zuerst zum Zeitpunkt von Systemstart auszuführendes Boot-Programm in dem Benutzerbereich gespeichert ist, wobei das Boot-Programm in einem Benutzerbereich eines Speicherblocks eines speziellen Speicherblockpaars in einem Anfangszustand gespeichert ist, in dem keine Boot-Bereichumschaltverarbeitung durchgeführt wird, einen Bereichsumschaltflag zum Anzeigen, in welchem Speicherblockpaar das Boot-Programm in dem Benutzerbereich unter der Mehrzahl von Paaren von Speicherblöcken gespeichert ist, und ein Steuerelement zum Setzen des Bereichsumschaltflags, wobei das Steuerelement wenn ein anderes, nicht als ein Boot-Bereich bezeichnetes Speicherblockpaar als ein neuer Boot-Bereich bezeichnet wird, einen Wert speichert, der durch Subtrahieren eines vorbestimmten Werts von einem Anfangswert erhalten wird, der an dem Boot-Bereichsbezeichnungsflag des Speicherblocks aller der Speicherblockpaare in dem Boot-Bereichsbezeichnungsflag jedes Speicherblocks des anderen Speicherblockpaars eingestellt wird, und zum Zeitpunkt von Systemstart bestimmt, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars verschieden sind oder den Anfangswert aufweisen, be stimmt, dass der betreffende Boot-Bereichsbezeichnungsflag ungültig ist, zur Bestimmung, dass das Boot-Programm in dem Benutzerbereich des Speicherblocks des speziellen Speicherblockpaars gespeichert ist, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars verschieden sind, bestimmt, dass der Boot-Bereichsbezeichnungsflag in dem Speicherblock des speziellen Speicherblockpaars ungültig ist, zur Bestimmung, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist, und wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars gleich sind, bestimmt, dass das Boot-Programm in einem Speicherblock eines Speicherblockpaars gespeichert ist, das einen Boot-Bereichsbezeichnungsflag speichert, dessen Wert kleiner ist.
  8. In einem Einzelchip-Mikrocomputer, der einen nichtflüchtigen Speicher mit einer Mehrzahl von Speicherblockpaaren als eine Kombination aus einer Mehrzahl von Speicherblöcken, die jeweils aus einem Benutzerbereich zum Speichern eines Programmcodes durch einen Benutzer und einem Bereich zum Speichern eines Boot-Bereichsbezeichnungsflags gebildet wird, welcher anzeigt, dass ein zuerst zum Zeitpunkt von Systemstart auszuführendes Boot-Programm in diesem Benutzerbereich gespeichert ist, wobei das Boot-Programm in einem Benutzerbereich eines Speicherblocks eines speziellen Paars von Speicherblöcken in einem Anfangszustand gespeichert wird, in dem keine Boot-Bereichumschaltverarbeitung durchgeführt wird, und eine CPU umfasst, weist ein Boot-Bereichsbezeichnungsverfahren des Einzelchip-Mikrocomputers zum Umschalten eines Bereichs des anderen Speicherblockpaars als einen neuen Boot-Bereich, wenn ein Benutzerbereich eines Speicherblocks eines speziellen Speicherblockpaars als ein Boot-Bereich bezeichnet wird, in dem das Boot-Programm gespeichert ist, die folgenden Schritte auf: wenn ein anderes, nicht als ein Boot-Bereich bezeichnetes Speicherblockpaar als ein neuer Boot-Bereich bezeichnet wird, einen Wert zu speichern, der durch Subtrahieren eines vorbestimmten Werts von einem Anfangswert erhalten wird, der an dem Boot-Bereichsbezeichnungsflag des Speicherblocks aller der Speicherblockpaare in dem Boot-Bereichsbezeichnungsflag jedes Speicherblocks des anderen Speicherblockpaars eingestellt ist, und zum Zeitpunkt eines Systemsstarts, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, zu bestimmen, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist.
  9. Boot-Bereichsbezeichnungsverfahren des Einzelchip-Mikrocomputers wie in Anspruch 8 ausgeführt, das den Schritt umfasst, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars verschieden sind oder den Anfangswert aufweisen, zu bestimmen, dass der betreffende Boot-Bereichsbezeichnungsflag ungültig ist, zur Bestimmung, dass das Boot-Programm in dem Benutzerbereich des Speicherblocks des speziellen Speicherblockpaars gespeichert ist.
  10. Boot-Bereichsbezeichnungsverfahren des Einzelchip-Mikrocomputers wie in Anspruch 8 aufgeführt, das den Schritt umfasst, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Ausgangswert aufweisen, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars verschieden sind, zu bestimmen, dass der Boot-Bereichsbezeichnungsflag in dem Speicherblock des speziellen Speicherblockpaars ungültig ist, zur Bestimmung, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist.
  11. Boot-Bereichsbezeichnungsverfahren des Einzelchip-Mikrocomputers wie in Anspruch 8 aufgeführt, das den Schritt umfasst, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars gleich sind, zu bestimmen, dass das Boot-Programm in einem Speicherblock eines Speicherblockpaars gespeichert ist, welcher einen Boot-Bereichsbezeichnungsflag speichert, dessen Wert kleiner ist.
  12. Boot-Bereichsbezeichnungsverfahren des Einzelchip-Mikrocomputers wie in Anspruch 8 ausführt, das den Schritt umfasst, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert oder "0" aufweisen, zu bestimmen, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist.
  13. In einem Einzelchip-Mikrocomputer, der einen nichtflüchtigen Speicher mit einer Mehrzahl von Speicherblockpaaren als eine Kombination aus einer Mehrzahl von Speicherblöcken, die jeweils aus einem Benutzerbereich zum Speichern eines Programmcodes durch einen Benutzer und einem Bereich zum Speichern eines Boot-Bereichsbezeichnungsflags gebildet wird, welcher anzeigt, dass ein zuerst zum Zeitpunkt von Systemstart auszuführendes Boot-Programm in diesem Benutzerbereich gespeichert ist, wobei das Boot-Programm in einem Benutzerbereich eines Speicherblocks eines speziellen Paars von Speicherblöcken in einem Anfangszustand gespeichert wird, in dem keine Boot-Bereichumschaltverarbeitung durchgeführt wird, und eine CPU umfasst, weist ein Boot-Bereichsbezeichnungsverfahren des Einzelchip-Mikrocomputers zum Umschalten eines Bereich des anderen Speicherblockpaars als einen neuen Boot-Bereich, wenn ein Benutzerbereich eines Speicherblocks eines speziellen Speicherblockpaars als ein Boot-Bereich bezeichnet wird, in dem das Boot-Programm gespeichert ist, die folgenden Schritte auf: wenn das andere, nicht als ein Boot-Bereich bezeichnete Speicherblockpaar als ein neuer Boot-Bereich bezeichnet wird, einen Wert zu speichern, der durch Subtrahieren eines vorbestimmten Werts von einem Anfangswert erhalten wird, der an dem Boot- Bereichsbezeichnungsflag des Speicherblocks aller der Speicherblockpaare in dem Boot-Bereichsbezeichnungsflag jedes Speicherblocks des anderen Speicherblockpaars eingestellt ist, zum Zeitpunkt eines Systemsstarts, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, zu bestimmen, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist, wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars verschieden sind oder den Anfangswert aufweisen, zu bestimmen, dass der betreffende Boot-Bereichsbezeichnungsflag ungültig ist, zur Bestimmung, dass das Boot-Programm in dem Benutzerbereich des Speicherblocks des speziellen Speicherblockpaars gespeichert ist, wenn die Werte des Boot-Bereichsbezeichnungsflags in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars verschieden sind, zu bestimmen, dass der Boot-Bereichsbezeichnungsflag in dem Speicherblock des speziellen Speicherblockpaars ungültig ist, zur Bestimmung, dass das Boot-Programm in dem anderen Speicherblockpaar gespeichert ist, und wenn die Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des anderen Speicherblockpaars gleich sind und nicht den Anfangswert aufweisen, wenn Werte der Boot-Bereichsbezeichnungsflag in den Speicherblöcken des speziellen Speicherblockpaars gleich sind, zu bestimmen, dass das Boot-Programm in einem Speicherblock eines Speicherblockpaars gespeichert ist, das einen Boot-Bereichsbezeichnungsflag speichert, dessen Wert kleiner ist.
  14. Boot-Bereichumschaltverfahren eines Mikrocomputers, der einen nichtflüchtigen Speicher mit einem ersten Speicherblock und einem zweiten Speicherblock umfasst, die aus einem Programmbereich und einem Boot-Bereichsbezeichnungsflagbereich des Mikrocomputers gebildet werden, das die folgenden Schritte umfasst: wenn ein neues Boot-Programm in dem nichtflüchtigen Speicher anstelle des Boot-Programms gespeichert wird, Löschen von Daten des zweiten Speicherblocks, Speichern des neuen Boot-Programms in dem Programmbereich des zweiten Speicherblocks, Speichern von Daten, die verschieden von in dem Boot-Bereichsbezeichnungsflagbereich des ersten Speicherblocks gespeicherten Daten sind, in dem Boot-Bereichsbezeichnungsflagbereich des zweiten Speicherblocks, und Löschen von Daten des ersten Speicherblocks.
  15. Boot-Bereichumschaltverfahren eines Mikrocomputers wie in Anspruch 14 aufgeführt, bei dem wenn das Boot-Programm gelesen wird, der Boot-Bereichsbezeichnungsflag aus dem ersten Speicherblock und dem zweiten Speicherblock gelesen wird, das in dem ersten Speicherblock gespeicherte Boot-Programm oder das in dem zweiten Speicherblock gespeicherte neue Boot-Programm basierend auf einem Vergleichsergebnis des Boot-Bereichsbezeichnungsflags ausgeführt wird.
  16. Boot-Bereichumschaltverfahren eines Mikrocomputers wie in Anspruch 14 ausgeführt, bei dem der Boot-Bereichsbezeichnungsflagbereich des zweiten Speicherblocks einen ersten Boot-Bereichsbezeichnungsflagbereich und einen zweiten Boot-Bereichsbezeichnungsflagbereich einschließt, anstelle des Schritts zum Speichern von Daten, die verschieden von in dem Boot-Bereichsbezeichnungsflagbereich des ersten Speicherblocks sind, in dem Boot-Bereichsbezeichnungsflagbereich des zweiten Speicherblocks, Speichern von Daten, die verschieden von in dem Boot-Bereichsbezeichnungsflagbereich des ersten Speicherblocks gespeicherten Daten sind, in dem ersten Boot-Bereichsbezeichnungsflagbereich des zweiten Speicherblocks, Speichern der gleichen Daten wie Daten des Boot-Bereichsbezeichnungsflagbereichs des ersten Speicherblocks in dem zweiten Boot-Bereichsbezeichnungsflagbereich des zweiten Speicherblocks.
DE10330607A 2002-07-10 2003-07-07 Einzelchip-Mikrocomputer und Verfahren zu dessen Boot-Region-Schaltern Ceased DE10330607A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002-201783 2002-07-10
JP2002201783A JP3830867B2 (ja) 2002-07-10 2002-07-10 シングルチップマイクロコンピュータおよびそのブート領域切り替え方法

Publications (1)

Publication Number Publication Date
DE10330607A1 true DE10330607A1 (de) 2004-03-18

Family

ID=30437275

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10330607A Ceased DE10330607A1 (de) 2002-07-10 2003-07-07 Einzelchip-Mikrocomputer und Verfahren zu dessen Boot-Region-Schaltern

Country Status (3)

Country Link
US (1) US7096351B2 (de)
JP (1) JP3830867B2 (de)
DE (1) DE10330607A1 (de)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003104466A1 (en) * 2002-01-17 2003-12-18 Socratech, L.L.C. Treatment of vascular dysfunction and alzheimer's disease
KR100452038B1 (ko) * 2002-11-20 2004-10-08 주식회사 하이닉스반도체 플래쉬 메모리 장치
DE602004013120T2 (de) * 2004-03-10 2009-05-14 Sony Ericsson Mobile Communications Ab Automatisierter Datensicherungsspeicher in Firmware-Aufwertungen
JP4792395B2 (ja) * 2004-06-29 2011-10-12 パナソニック株式会社 ズームレンズ系、撮像装置及びカメラ
US20060090032A1 (en) * 2004-10-22 2006-04-27 Broadcom Corporation Method and computer program product of obtaining temporary conventional memory usage in BIOS
JP2006228077A (ja) * 2005-02-21 2006-08-31 Sii Data Service Kk ハンディターミナル
US8386757B1 (en) * 2009-02-13 2013-02-26 Unidesk Corporation Managed desktop system
JP5113270B2 (ja) * 2011-01-18 2013-01-09 エスアイアイ・データサービス株式会社 ハンディターミナル
GB2493340A (en) * 2011-07-28 2013-02-06 St Microelectronics Res & Dev Address mapping of boot transactions between dies in a system in package
KR102024661B1 (ko) * 2013-01-24 2019-09-25 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 데이터 독출 방법
US10152864B2 (en) 2014-02-28 2018-12-11 Tyco Fire & Security Gmbh Distributed rules engines for robust sensor networks
KR102017284B1 (ko) * 2015-05-26 2019-09-02 삼성전자주식회사 부팅 디바이스 및 그 동작 방법
JP6682019B2 (ja) * 2017-01-25 2020-04-15 日立オートモティブシステムズ株式会社 プログラム更新システムおよびプログラム書込装置
CN108038064B (zh) * 2017-12-20 2021-01-15 北京兆易创新科技股份有限公司 一种PairBlock擦除出错的处理方法及装置
US20230132214A1 (en) * 2021-10-25 2023-04-27 Canon Kabushiki Kaisha Information processing apparatus and method of the same

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974544A (en) * 1991-12-17 1999-10-26 Dell Usa, L.P. Method and controller for defect tracking in a redundant array
US5568641A (en) 1995-01-18 1996-10-22 Hewlett-Packard Company Powerfail durable flash EEPROM upgrade
JP2940480B2 (ja) * 1996-07-05 1999-08-25 日本電気株式会社 コンピュータシステム
JPH10149282A (ja) 1996-11-20 1998-06-02 Denso Corp 電子装置のメモリ書換システム
EP0898225A4 (de) 1997-01-31 2000-07-05 Sony Corp Gerät und verfahren zur informationsverarbeitung
US6308265B1 (en) * 1998-09-30 2001-10-23 Phoenix Technologies Ltd. Protection of boot block code while allowing write accesses to the boot block
JP3838840B2 (ja) 2000-01-06 2006-10-25 Necエレクトロニクス株式会社 コンピュータ

Also Published As

Publication number Publication date
US7096351B2 (en) 2006-08-22
JP2004046453A (ja) 2004-02-12
JP3830867B2 (ja) 2006-10-11
US20040015671A1 (en) 2004-01-22

Similar Documents

Publication Publication Date Title
DE3535577C2 (de)
DE3786956T2 (de) Verwaltung von registrierungsdaten in einem transaktionsorientierten System.
DE69730430T2 (de) Verfahren und gerät zum bereitstellen von verbesserten diagnostischen funktionen in einem computersystem
DE3889578T2 (de) Vorrichtung zur Sicherung und Rückspeicherung einer Registerinformation.
DE10330607A1 (de) Einzelchip-Mikrocomputer und Verfahren zu dessen Boot-Region-Schaltern
DE4435751B4 (de) Dateiname- und Verzeichnis- Erfassungsverfahren zur Verwendung mit einem Betriebssystem
DE19740525C1 (de) Verfahren zur Abspeicherung und Wiedergewinnung von Daten in einem Steuersystem, insbesondere in einem Kraftfahrzeug
DE69123775T2 (de) Programmsteuersystem für eine tragbare Datenspeichervorrichtung
DE69124470T2 (de) Initialisierung von Rechnersystemen
DE69126050T2 (de) Verfahren zur Aktualisierung oder Wiedergabe gespeicherter Datengruppen und System zu dessen Erzeugung
DE69726088T2 (de) Methode und Apparat zur Speicherverwaltung
DE10296986T5 (de) Automatischer Austausch einer detekten BIOS-Abbildung
DE4235193A1 (de) Netzwerksystem und zugehoeriges softwareverwaltungsverfahren
EP0067364B1 (de) Verfahren und Anordnung zum nichtflüchtigen Speichern des Zählerstandes einer elektronischen Zählschaltung
DE10308545A1 (de) Verfahren und Vorrichtung zum Aktualisieren eines verteilten Programms
DE2722099A1 (de) Abfangeinrichtung fuer ein dv-system
DE10315490A1 (de) Verfahren und System zum Wechsel zwischen zwei oder mehreren Firmwareabbildungen auf einer Hostvorrichtung
DE19839680B4 (de) Verfahren und Vorrichtung zur Veränderung des Speicherinhalts von Steuergeräten
DE4210126A1 (de) Verfahren und system zur dynamischen dateierweiterung fuer online-datenbanksysteme
DE102006029690A1 (de) Beibehaltung einer Identifikation einer elektronischen Steuereinheit bei Umprogrammierungsereignissen
DE3886756T2 (de) Betriebsmittelzugriff für Multiprozessorrechnersystem.
DE602005003778T2 (de) Verfahren und Vorrichtung zum Wiederbeschreiben eines Sektors mit Bootloader-Software in einem sektor-löschbaren nichtflüchtigen Halbleiterspeicher
DE19845764A1 (de) Speicherprogrammierbare Steuerung mittels Datenverwaltung über Netzrechner und Verfahren zum Betrieb einer speicherprogrammierbaren Steuerung
DE19911794B4 (de) Verfahren und Vorrichtung zur Absicherung bei Veränderung des Speicherinhalts von Steuergeräten
DE112016006057T5 (de) Steuerungsvorrichtung und Bearbeitungsvorrichtung

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection