(57)【要約】      （修正有）【課題】不揮発性再プログラム可能半導体メモリの使用法を改善した、頑強なプロセッサ搭載システムを提供する。【解決手段】プロセッサ搭載システム用の主不揮発性ファイルシステムとして作用する不揮発性再プログラム可能メモリに複数の区分９６〜１０６が形成される。このメモリは、例えば、プロセッサ搭載システム用のオペレーティングシステムと基本入出力システムを記憶している。アドレス区分１００は、各区分に記憶された情報の種類に関する情報に関連して、他の区分の場所に関する情報を含んでいる。【選択図】図５
2006040301.tif 000002
【特許請求の範囲】
【請求項１】
各々が定義されたアドレスを有する複数の区分へとメモリを分割するステップと、
１つの区分に対する前記定義されたアドレスを他の区分に記憶するステップと
を含んでなる、不揮発性再プログラム可能半導体メモリに記憶された情報を編成する方法。
【請求項２】
多数の区分についての情報を記憶するステップをさらに含んでいる請求項１に記載の方法。
【請求項３】
前記区分の１つにブートローダを記憶するステップをさらに含んでいる請求項１に記載の方法。
【請求項４】
前記区分の１つにファイルシステムを記憶するステップをさらに含んでいる請求項１に記載の方法。
【請求項５】
前記区分の１つにカーネルを記憶するステップをさらに含んでいる請求項１に記載の方法。
【請求項６】
前記アドレスに記憶されたデータに対して完全性チェックが必要であるかどうかについて、前記アドレスに関連する情報を記憶するステップをさらに含んでいる請求項１に記載の方法。
【請求項７】
区分の前記アドレスに関連して、該区分に記憶された情報の種類についての情報を記憶するステップをさらに含んでいる請求項１に記載の方法。
【請求項８】
所定の区分に記憶された情報が、ブートローダ、カーネル、またはファイルシステムであるかどうかについての情報を記憶するステップをさらに含んでいる請求項７に記載の方法。
【請求項９】
前記アドレスに関連して、前記情報に対するロードアドレスについての情報を記憶するステップを含んでいる請求項７に記載の方法。
【請求項１０】
不揮発性再プログラム可能半導体メモリに記憶された情報を有効と認めるステップと、
前記メモリに記憶された割当テーブルを用いて、前記メモリに記憶されたオペレーティングシステムを探索するステップと、
前記オペレーティングシステムをロードするステップと、
前記オペレーティングシステムを実行するステップと
を含んでなるプロセッサ搭載システムを初期化する方法。
【請求項１１】
ブートローダを選択して前記オペレーティングシステムをロードするステップをさらに含んでいる請求項１０に記載の方法。
【請求項１２】
前記割当テーブルを用いて前記ブートローダの位置を探索するステップを含んでいる請求項１１に記載の方法。
【請求項１３】
前記メモリに記憶された情報を有効と認める前に、初期状態の設定および自己診断を行うステップを含んでいる請求項１０に記載の方法。
【請求項１４】
前記メモリに記憶された巡回回復チェックソフトウエアを用いて前記メモリに記憶された情報を有効と認めるステップを含んでいる請求項１０に記載の方法。
【請求項１５】
プロセッサ搭載システムに対して、
不揮発性再プログラム可能半導体メモリに記憶された情報を有効と認めさせる指令と、
割当テーブルを用いて、前記メモリに記憶されたオペレーティングシステムを探索させる指令と、
前記オペレーティングシステムをロードさせる指令と、
前記オペレーティングシステムを実行させる指令と
を記憶した媒体を含んでなる製品。
【請求項１６】
プロセッサと、
該プロセッサに連結される揮発性メモリと、
前記プロセッサに連結される再プログラム可能不揮発性半導体メモリと
を含んでなり、前記半導体メモリが複数の区分を含み、該区分の１つがオペレーティングシステムを記憶し、該区分の別の１つが前記区分の各々に何が記憶されているかについての情報に関連する他の区分のアドレスを記憶しているプロセッサ搭載システム。
【請求項１７】
前記半導体メモリがフラッシュメモリである請求項１６に記載のシステム。
【請求項１８】
前記区分の１つが基本入出力システムを記憶する請求項１６に記載のシステム。
【請求項１９】
前記区分の１つがファイルシステムを記憶する請求項１６に記載のシステム。
【請求項２０】
前記区分の１つがブートローダを記憶する請求項１６に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、主として不揮発性で再プログラム可能記憶媒体（re-programmable storage medium）として半導体メモリを用いるプロセッサ搭載システムに関する。
【背景技術】
【０００２】
いわゆる組込み式プロセッサ搭載システム(embedded processor-based system)に対する関心が高まっている。これらのシステムは、比較的に低コストで所望の性能が得られるように、機能を縮小して動作する場合が多い。多くの場合に、これらの組込み式システムはバッテリ（battery）によって作動されうる。従って、これらのシステムの能力は、バッテリの寿命の改善に依存されうる。
【０００３】
バッテリ寿命の維持、価格の低減、および形状の小型化などを含む種々の理由によって、不揮発性記憶媒体としてハードディスク装置を用いないプロセッサ搭載システムが提供されうる。ハードディスク装置を用いる多くのプロセッサ搭載システムにおいて、ハードディスク装置は、ユーザが永久的に保持することを望むほとんどの情報を記憶することができる便利な不揮発性記憶媒体である。そのような情報として、例えば、オペレーティングシステム、アプリケーションソフトウエア、ファイルとデータなどが挙げられる。ハードディスク装置内に記憶される情報は、実行に際して、通常は揮発性メモリであるシステムメモリに転送される。
【０００４】
多くのシステムにおいて、ハードディスク装置は、極めて大きな容量で比較的に迅速な記憶能力を有する記憶媒体として機能する。しかし、不揮発性半導体メモリと比較して、ハードディスク装置はより大きな空間とより大きな電力を必要とする。多くの組込み式プロセッサ搭載システムにおいて、その主記憶システムとして再プログラム可能不揮発性半導体メモリが用いられている。これらの半導体メモリは、ハードディスク装置に標準的に記憶されるオペレーティングシステムを含む一揃いの情報（panoply of information）を記憶する能力を有している。
【０００５】
多くの場合には、プロセッサ搭載システム用の主不揮発性記憶媒体として利用される半導体メモリとして、フラッシュメモリが用いられる。これらのフラッシュメモリは、よく知られたオンボード機能（on-board capability）を用いてユーザの介入なしに再プログラム化されうる。これらのメモリは、通常、行アドレスおよび列アドレスを用いてアクセスされる。つまり、これらのメモリは、メモリ内のファイルや他のデータの場所が通常システム内においてメモリの外部に一般的に記憶されるという点において、システムに一般的にモノリシック（monolithic）である。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
このようなフラッシュメモリは、比較的に簡単な組込み式プロセッサ搭載システムに内蔵されて良好に作動される。しかし、プロセッサ搭載システムに対する要求が高まってくると、この簡単な記憶システムであるフラッシュメモリは所望の機能を十分に果たすことが困難になりうる。このため、プロセッサ搭載システム用の主不揮発性ファイルシステムとしての不揮発性再プログラム可能半導体メモリの改善された使用法が要求される。
【課題を解決するための手段】
【０００７】
一態様において、不揮発性再プログラム可能半導体メモリに記憶された情報を編成する方法は、各々が定義されたアドレスを有する複数の区画へとメモリを分割するステップを含んでいる。１つの区分に対する定義されたアドレスが他の区分に記憶される。
【０００８】
他の態様は、詳細な説明および請求の範囲に述べられる通りである。
【発明の効果】
【０００９】
たとえば、主オペレーティングシステムのエラーや更新などが生じた場合であっても、回復オペレーティングシステムや更新処理を自動的に行うことができるので、頑強なオペレーティングシステムを提供することができる。
【発明を実施するための最良の形態】
【００１０】
図１に示されるクライアント／サーバコンピュ―タシステム１０は、ネットワーク１６を介して１つ以上のクライアント１２に連結される１つ以上のサーバ１８を含みうる。クライアント１２は記憶装置１４を含みうる。クライアント１２は、デスクトップ型コンピュータシステム、ハンドヘルドコンピュータシステム、プロセッサ搭載テレビジョンシステム、セットトップボックス（set top box）、家庭電化器具、シン・クライアント(thin client)、携帯電話などのようなプロセッサ搭載システムでありうる。ネットワーク１６は、局所ネットワーク（local area network：ＬＡＮ）、都市圏ネットワーク（metropolitan area network：ＭＡＮ）、広域ネットワーク（wide area network：ＷＡＮ）、無線ネットワーク、ホームネットワーク、またはインターネットのようなインターネットワーキングを含む種々のネットワークのいずれかでありうる。
【００１１】
システム１０において、クライアント１２は、再プログラム可能記憶装置１４にそれのオペレーティングシステムを永久的に記憶することができる。記憶装置１４は、通常、ハードディスク装置またはフラッシュメモリでありうる。オペレーティングシステムがエラーしたかまたは更新が必要なときには、エラーしていないまたは更新されたオペレーティングシステムを得て、その新しいオペレーティングシステムを記憶装置１４に自動的に再ロードするために、クライアント１０がネットワーク１６およびサーバ１８にアクセスすることができる。
【００１２】
記憶装置１４は電気的に再プログラム化されうる。本発明の一実施例として、記憶装置１４は、クライアント１２用のＢＩＯＳメモリとしても作用しうる。従来、ＢＩＯＳメモリは読み出し専用メモリ（以下、「ＲＯＭ」とよぶ。）であるが、再プログラム可能メモリを用いることによって、ＢＩＯＳコードと共にオペレーティングシステムも、以下に説明するように、更新またはエラーが生じた場合には交換することができる。他の実施例において、記憶装置１４に加えて、従来のＢＩＯＳ  ＲＯＭを用いることができる。
【００１３】
記憶装置１４を実現するために、インテル社のＳｔｒａｔａＦｌａｓｈ（登録商標）ブランドメモリのような種々のフラッシュメモリを利用できる。ある有益なメモリは、インテル社から入手可能な「２８Ｆ６４ＯＪ５／８メガバイト／フラッシュアレイ」である。このメモリはそれぞれが１２８キロバイトの複数のブロックを含んでいる。各ブロックは、データが消去または上書きされないように保護されている。換言すれば、メモリ内の複数のブロックの１つ以上が選択的にデータ保護されうる。
【００１４】
ＢＩＯＳは、フラッシュメモリ内のデータが保護された１つ以上のブロックに記憶されうる。同様に、回復オペレーティングシステムもデータが保護された１つ以上のブロックにも記憶されうる。一実施例として、２つの１２８キロバイトのブロック内にＢＩＯＳを記憶することができ、回復オペレーティングシステムは２つの１２８キロバイトのブロックに記憶されうる。メモリの残りは、主オペレーティングシステムおよびファイルシステムを記憶するのに使用されうる。なお、インテル社（カルフォルニア州、サンタクララ）から入手可能な「FLASH Memory」データブック（１９９８年１月、オーダ番号２１０８８３０−０１７）において、フラッシュメモリについてのさらなる情報を見ることができる。
【００１５】
図２に示されるように、記憶装置１４のメモリアーキテクチャ（memory architecture）は、ＢＩＯＳおよび回復オペレーティングシステム(BIOS and recovery operating system)２０および主オペレーティングシステム２２に対するアドレス指定可能な場所を備えている。主オペレーティングシステムは、マイクロソフトウインドウズ（登録商標）９８あるいはＣＥ、リナックス（Linux）、またはＢＥオペレーティングシステムのような汎用のオペレーティングシステムでありうる。主オペレーティングシステムは、パームＯＳ（Palm OS）のようなリアルタイムオペレーティングシステム（real time operating system：以下、「ＲＴＯＳ」とよぶ。）でありうる。ＢＩＯＳおよび回復オペレーティングシステム２０は、主オペレーティングシステム２２のデータにエラーが生じるか、または更新を必要とする場合に作動する。回復オペレーティングシステム２０は、基本的な必須のＢＩＯＳ機能と新しい主オペレーティングシステムを得るのに必要な最小限のソフトウエアを備える小規模のオペレーティングシステムでありうる。つまり、ここで用いられる「回復オペレーティングシステム（recovery operating system）」は、主オペレーティングシステムの更新および／または交換を行うオペレーティングシステムである。
【００１６】
図３について説明する。本発明の一実施例によれば、回復オペレーティングシステム２０は、カーネル２６と、ネットワーク・インターフェイス・コントローラ（network interface controller：以下、「ＮＩＣ」とよぶ。）装置３０と、ネットワークスタック（network stack）２８とを含んでいる。カーネル２６は回復オペレーティングシステム２０の中心となる部分である。スタック２８は、例えば、ユーザ・データグラム・プロトコル（user datagram protocol：ＵＤＰ）／インターネット・プロトコル（internet protocol：ＩＰ）と、単純ファイル転送プロトコル（trivial file transfer protocol：ＴＦＴＰ）と、動的ホスト制御プロトコル（dynamic host control protocol：ＤＨＣＰ）と、アドレス解像プロトコル（address resolution protocol：ＡＲＰ）と、ブートストラップ・プロトコル（boot strap protocol：ＢＯＯＴＰ）とを含みうる。（これらのプロトコルは、www.ietf.org/rfc.htmlで検索されうる）。回復オペレーティングシステム２０は、オペレーティングシステム回復および更新アプリケーションソフトウエア２４も含みうる。また、フラッシュドライバ３４およびＢＩＯＳサービス３５も含みうる。記憶装置１４としてフラッシュメモリが用いられているとき、フラッシュドライバを用いて新しい主オペレーティングシステムをフラッシュメモリに書き込む。ハードウエアインターフェイス３６は、ハードウエアのマザーボードとソフトウエア層とをインターフェイスする。
【００１７】
理想的には、回復オペレーティングシステム２０の大きさは、メモリの保持の観点から可能な限り小さい方がよい。もし可能ならば、カーネル２６はその回復および更新の機能を実行するのに必要なコードだけの大きさに縮小されうる。特に有用な１つのカーネルとして、ＬＩＮＵＸ（リナックス）カーネルが挙げられる。ＬＩＮＵＸカーネルは、「ｘコンフィグ（xconfig）」と呼ばれるＸベースのカーネルコンフギュレーションユーティリティ(x-based kernel configuration utility)を含んでいる。このユーティリティは、カーネルおよびオペレーティングシステムの構成要素の選択を容易にする図形表現のユーザインターフェイスを提供する。すなわち、ＬＩＮＵＸオペレーティングシステムによれば、ユーザは、図形表現によるユーザインタ―フェイスを介して、どの具体的な機能が必要であるかを示す一連の質問に答えることができる。そして、選択されなかった機能のコードは排除することができる。その結果、目的コード（object code）にアクセスすることなく、比較的に細分化されたオペレーティングシステムを速やかに得ることができる。
【００１８】
ソフトウエアのエラーまたはエラーが生じた場合には、システムが再起動することによりエラーを解消する。ＣＭＯＳメモリ内のウォッチドッグ・タイマ（watchdog timer）は、失敗した再起動の総数を保持する。その総数が閥値（例えば、３回）を超えると、回復オペレーティングシステムが呼び出される。すなわち、再起動されたシステムがＣＭＯＳメモリ内の再起動の総数をチェックし、その再起動の総数が閥値を超えていると、自動的に回復オペレーティングシステムを起動させる。回復オペレーティングシステム２０が始動して、新しいバージョンの主オペレーティングシステムイメージが取り込まれる。
【００１９】
回復オペレーティングシステム２０はオペレーティングシステムの更新を得ることもできる。この更新は多くの方法でなされる。一実施例として、更新を望むユーザ自身がＣＭＯＳメモリに単独の更新ビットを設定する方法が挙げられる。他の実施例として、オペレーティングシステムのプロバイダが、更新が利用可能であることを示すメッセージをユーザに送信する。そのメッセージを受け取ったユーザシステムはその更新ビットを自動的にＣＭＯＳメモリに設定する。次の起動時に、回復オペレーティングシステムが起動されて更新を自動的に行う。
【００２０】
あるいは、使用頻度が低いと予想される時刻に更新が自動的に行われるように、回復および更新アプリケーションソフトウエア２４が構成されうる。例えば、更新が望まれることを示す更新ビットが設定されていることをシステムが検出した場合には、システムは、夜中まで待ってその更新を自動的にダウンロードすることができる。
【００２１】
回復オペレーティングシステムは、ネットワーク・インターフェイス・コントローラおよびネットワーク１６を介して、新しいバージョンの主オペレーティングシステムイメージを取り込むこともできる。この取り込みは、同じネットワーク内の他の装置にアクセスするか、インターネットを介して所望するオペレーティングシステムにアクセスすることによって行われる。
【００２２】
新しいオペレーティングシステムがシステムメモリ内でチェックされてメモリ１４へとロードされた後に、システムが再起動される。そのシステムが主オペレーティングシステムを再起動すると、主オペレーティングシステムがＣＭＯＳメモリにおいて更新ビットをリセットする。
【００２３】
起動処理がなされたときに、記憶されているオペレーティングシステムの解析によってエラーが生じていることを確認することができる。例えば、起動処理中に、チェックサム解析（checksum analysis）を行うことができる。記憶されているオペレーティングシステムにエラーが生じている場合には、回復ビットがＣＭＯＳメモリに設定され、起動が中止される。次いで起動がなされると、回復ビットが識別され、システムが回復オペレーティングシステムを起動させる。
【００２４】
図４について説明する。菱形のブロック４０に示されるように、記憶装置１４をチェックすることによって、回復および更新アプリケーションソフトウエア２４が始動する。つまり、電源が投入され、自己診断（power on self test：以下、「ＰＯＳＴ」とよぶ。）を終了した後に、始動コードがメモリ１４内の主オペレーティングシステムにチェックサムによるエラーが生じているかどうかをチェックする。エラーが生じている場合には、システムは回復オペレーティングシステム２０を起動して回復処理を開始する。オペレーティングシステムイメージにデータのエラーが生じるか、または回復あるいは更新フラグの１つが設定されることにより、エラーコードが発生しうる。例えば、オペレーティングシステムに欠損があることにより、回復フラグが設定される。また、例えば、既存の主オペレーティングシステムに対して一定の時間が経過したことにより、またはユーザが更新を望んでいることにより、更新フラグが設定される。つまり、ブロック４２に示されるようにチェックサムを適用させた後に、もしそのチェックサムが有効な主オペレーティングシステムを示す場合には、ブロック４４に示されるように主オペレーティングシステムが起動される。それ以外の場合には、ブロック４６に示されるように、回復オペレーティングシステムが起動される。
【００２５】
起動処理中に、ＢＩＯＳの一部である始動コードが、必要に応じてＣＭＯＳメモリに回復ビットを設定する。この始動コードは、再起動がなされた総数をカウントし、その総数に関する情報を記憶するコードも含みうる。
【００２６】
本発明の一実施例によれば、アプリケーション２４は、ネットワークを介してサーバ１８に対してオペレーティングシステムのダウンロードの要求を開始する（ブロック４８）。新しいイメージがダウンロードされると、そのイメージが記憶装置１４に書き込まれる。そして、ブロック５０に示されるように回復ビットが取り消され、ブロック５２に示されるようにシステムが再起動される。そして、システムが、主オペレーティングシステムへと起動され、主オペレーティングシステムに通常の機能を実行させる。
【００２７】
図５に示されるように、主オペレーティングシステム２２を記憶する記憶装置１４の一部の記憶構成は、一番下のメモリアドレスにチェックサムまたは巡回冗長チェック（cyclic redundancy check：以下、「ＣＲＣ」とよぶ。）フィールド９６を有している。チェックサムフィールド９６の上に、フラッシュ割当テーブル（FLASH allocation table：以下、「ＦＬＡＴ」とよぶ。）内のエントリの番号を示すフィールド９８が配されている。フラッシュ割当テーブルは、フラッシュメモリ部２２’を分割し、そのようなメモリ部の分割によって、多数のコードおよびデータイメージを記憶装置１４内に記憶させうる。また、フラッシュ割当テーブルによるメモリ部の分割によって、異なるオペレーティングシステムイメージを起動する多数のブートローダをフラッシュメモリ内に格納させうる。起動処理時に、ＢＩＯＳは、上述したように、回復ビットの状態に基づいてどのブートローダをロードして実行させるかを選択する。
【００２８】
主オペレーティングシステムをロードするブートローダ１０２がフラッシュ割当テーブル１００の上に記憶されている。ブートローダ１０２の上に配されているのは、主オペレーティングシステムの中心として機能するカーネル１０４である。主オペレーティングシステムのカーネルは、回復オペレーティングシステムに利用されるカーネルと同じであっても異なっていてもよい。例えば、ＬＩＮＵＸを回復オペレーティングシステムに用いて、ウインドウズ（登録商標）ＣＥを主オペレーティングシステムの一例として用いることができる。
【００２９】
カーネル１０４の上に配されているのはファイルシステム１０６である。フラッシュ割当テーブル１００は、ファイルシステム１０６に記憶される項目を含むフラッシュメモリ部２２’において、記憶される各々の項目に対して１つのエントリを与える。ファイルシステム１０６は、ファイルと、ディレクトリと、オペレーティングシステムのファイルおよびディレクトリを検出してアクセスするために用いられる情報とを含んでいる。
【００３０】
フラッシュ割当テーブルに含まれる各項目は、ソフトウエアのバージョンと、フラグと、データオフセットと、データの長さと、そのロードアドレスに関する情報とを含んでいる。バージョン番号は、どのバージョンのソフトウエアが特定のメモリ１４においてロードされたかの経緯（track）を保持する。データオフセットは、フラッシュメモリ内においてどこにエントリが見出されるかを決定する。
【００３１】
フラグフィールドは、各エントリの性質に関する情報を含んでいる。フラグフィールドの最下位ビットは、ＣＲＣの状態に関する情報を含んでいる。これは、ＣＲＣが計算されなければならないかどうかをＢＩＯＳに伝達するためのビットである。次の最上位ビットはブロックの種類を含んでいる。ブロックの種類は、ブートローダを示す「ブート（boot）」、「カーネル(kernel)」、または「ファイルシステム(file system)」のブロックを含んでいる。ブロックの種類がブートローダの場合には、このフラグフィールドは、フラッシュメモリからブートローダをランダムアクセスメモリ内のどこにロードするかを提示する。フラグフィールドの他の領域は、他の情報のために予約されうる。ブートローダまたはブートストラップローダ（bootstrap loader）が、オペレーティングシステムをロードする別のローダプログラムをロードして制御を行う。
【００３２】
本発明は種々のプロセッサ搭載システムに適用されるが、セットトップコンピュータシステム（set top computer system）を用いる応用例を図６に示す。セットアップ式コンピュ−タシステムはテレビジョン受像機と共に用いられる。クライアント１２は、ＡＧＰチップセット６６に連結されるプロセッサ６５を含んでいる。高速化グラフィックポート規格の第２版がインテル社（カリフォルニア州、サンタモニカ）から入手できる。チップセット６６は、高速化グラッフィクポートバス７０内においてシステムメモリ６８と連結されうる。バス７０は、グラフィックアクセレレータ７２と、ビデオまたはテレビ受像機７３とも連結されうる。
【００３３】
システムメモリ６８の一部７５は、ＣＭＯＳメモリと呼ばれ、システムデータを保存するように構成されるメモリ集積回路によって実現されうる。通常、ＣＭＯＳは、曜日を示すリアルタイムクロック（real time clock：以下、「ＲＴＣ」とよぶ。）を含んでいる。このＣＭＯＳメモリ内の予め定められた場所に、回復および更新ビットが記憶されている。
【００３４】
テレビ同調または取得カード７６と接続されるバス７４に、チップセット６６が連結されうる。更なる例示として、カード７６は、衛星アンテナまたはケーブルでありうるテレビアンテナ７８に連結されうる。インターネットに接続されるモデムインターフェイスまたはコンピュータネットワークに接続されるネットワーク・インターフェイス・コントローラのようなネットワーク１６に対するインターフェイスを設けることもできる。
【００３５】
直列入出力インターフェイス８６およびメモリインターフェイス９４に接続される他のバス８４に、ブリッジ８０が連結されうる。インターフェイス８６は、モデム８８またはキーボード９２に連結されうる。インターフェイス９４は、ＢＩＯＳおよび回復オペレーティングシステム２０と主オペレーティングシステム２２とを記憶するフラッシュメモリ１４に連結される。ブリッジ８０は、インテル社から入手可能な８２３７１ＡＢ ＰＣＩ ＩＳＡ ＩＤＥ エクセレレータ（Ｘｃｅｌｅｒａｔｏｒ）(ＰＩＩＸ４)チップセットでありうる。このチップセットは汎用入出力ピン（ＧＰ[Ｉ、Ｏ]）を含みうる。
【００３６】
コンピュータシステムを実行するために多くのチップセットが用いられるが、ここでは、ＢＩＯＳの線のある数のみを任意の時間に一度に参照するように、チップセットがセットアップされうる。主オペレーティングシステムおよび回復オペレーティングシステムがフラッシュメモリ内に記憶されている実施例において、ＢＩＯＳメモリがアクセスされたとき、両方のオペレーティングシステムが同様にアクセスされうる。この場合には、アクセスされるフラッシュメモリはＢＩＯＳメモリよりもかなり大きいので、フラッシュメモリ内に記憶されているすべてのメモリにアクセスするには別の方法を用いることが望ましい。例えば、インテル社のプロセッサを用いてこのことを行うための方法は、例えば、ＰＩＩＸ４デバイス上のＧＰ[Ｉ、Ｏ]ピンを用いている。これらのピンはＢＩＯＳを読み込む信号を伝達することが可能なピンに連結されうる。適切なＧＰ[Ｉ、Ｏ]信号を与えることによって、フラッシュメモリの読み取りが、メモリ内のすべての内容を順次読み取るように切り換えられるバンクでありうる。
【００３７】
次に、図７では、一実施例において、多数のコードおよびデータイメージをフラッシュメモリに記憶させるＦＬＡＴを用いるソフトウエアが、電源の投入時またはシステムのリセット時に、ＢＩＯＳの実行とシステムの初期化と自己診断とを開始させる（ブロック１１０）。ブロック１１２に示されるように、フラッシュメモリ内のフィールド９６に記憶されたＣＲＣをチェックすることによって、フラッシュメモリの内容が有効と認められうる。このとき、ＢＩＯＳは、ＦＬＡＴを走査してブートローダとして選ばれたエントリを選択することによって、ブートローダを選定して実行する（ブロック１１４）。そして、ブートローダは、ＦＬＡＴを用いて主オペレーティングシステムがフラッシュメモリのどこに配されているかを調べ（ブロック１１６）、その主オペレーティングシステムをシステムメモリの適切なアドレスにロードし（ブロック１１８）、その主オペレーティングシステムの実行を開始する（ブロック１２０）。
【００３８】
いくつかの実施例において、ＢＩＯＳをオペレーティングシステムとは無関係に構成してもよい。この場合、オペレーティングシステムはブートローダに依存させる。ブートローダは通常のコンピュ−タオペレーティングシステムをフラッシュメモリ内に常駐させることができる。
【００３９】
主オペレーティングシステムおよび回復オペレーティングシステムがフラッシュメモリのような記憶装置に記憶される実施例に基づいて本発明を説明したが、他の再プログラム可能記憶装置が同様に利用されうる。フラッシュメモリは現在の経済情勢においては比較的に高価であり、ミラーリング（mirroring）は通常行われていない。従って、フラッシュメモリへの回復オペレーティングシステムの適用は特に有利である。
【００４０】
しかし、本発明は他の構成と関連して利用されうる。例えば、主オペレーティングシステムがハードディスク装置に記憶されているシステムの場合には、回復オペレーティングシステムをハードディスク装置に含みうる。この場合には、必要に応じてＢＩＯＳ ＲＯＭに記憶させるように、ＢＩＯＳが継続することができる。
【００４１】
あるいは、実際に、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）のような外部メモリまたは取り外し可能なメモリに回復オペレーティングシステムを設けることができる。必要なときに、ユーザはＣＤ−ＲＯＭを簡単にＣＤプレイヤへとロードすることができる。プロセッサは、ＣＤ−ＲＯＭから回復オペレーティングシステムを取出し、そして、回復および更新アプリケーションソフトウエアを用いて、主オペレーティングシステムを更新および交換することができる。この方法は、コンパクトな回復オペレーティングシステムの利用が更新を容易にするので、すべてのオペレーティングシステムをハードディスク装置に与えるよりも有益である。つまり、コンパクトな回復システムは、迅速にロードされ、更新を行うのに用いられうる。さもなければ、それぞれの更新に対してユーザが更新を行うために、すべてのオペレーティングシステムをディスク形式で各ユーザに提供される必要がある。
【００４２】
さらに、本発明はクライアントまたはサーバ環境に関して説明されてきたが、他の種々の環境に対しても本発明は利用できる。例えば、本発明はクライアントまたはサーバ環境においてサーバ上に実現されうる。なお、本発明はプロセッサ搭載システムを含むスタンドアロン・コンピュータシステム（stand-alone computer system）に適用できる。例えば、ハンドヘルドコンピュータシステムに対して、本発明は市販の有線または無線通信リンクを用いて更新または交換機能を与えることができる。パームパイロット（palm pilot）パーソナルデジタルアシスタント（ＰＤＡ）のようにデスクトップ型コンピュータに一時的にハード配線によってリンクされるシステムにおいて、回復オペレーティングシステムがデスクトップ型コンピュータと通信して新しいオペレーティングシステムを得ることができる。同様に、無線や携帯電話のリンクを含む種々の無線通信を用いて更新を行うこともできる。さらに、ケーブルまたは衛星通信を介してリンクされるシステムにおいて、これらの通信リンクを用いて新しいオペレーティングシステムを得ることもできる。
【００４３】
特別仕様のオペレーティングシステムの場合には、そのオペレーティングシステムを更新または交換するために、その更新または交換がなされる特定の遠隔サイトに行く必要が生じうる。しかし、特別仕様ではないオペレーティングシステム（non-custom operating system）において、インターネットまたは種々の通信リンクにアクセスできる、拡張されたユーザのコンピュータシステム内の様々なサイトが、そのような交換を行うように利用されうる。さらに、システムが必要とする交換を１つのサイトにおいて得ることができなかった場合に他のサイトを照会することができるように、複数のサイトを回復オペレーティングシステム・アプリケーションソフトウエアへと予めプログラム化することができる。
【００４４】
回復アプリケーションソフトウエアが、将来の更新を含む追加のロケーション（location）に関する情報を現時点ではプログラム化できない場合がある。しかし、オペレーティングシステムのプロバイダが更新に関する情報を送信するときに、所望する更新をどのようにして自動的に得られるかについての情報を送信が含みうる。そのような情報に基づいて、回復アプリケーションソフトウエアを作動することができる。
【００４５】
実施例を実行する場合には、システムユーザは回復オペレーティングシステムが作動されていることに気がつかない。回復オペレーティングシステムは、主オペレーティングシステムがユーザにより頑強にみえるように、バックグラウンドで作動している。
【００４６】
以上、本発明を限られた数の実施例に関して説明してきたが、当業者はこれらの実施例から多くの修正例や変更例を理解することができる。しかし、特許請求の範囲は、本発明の精神および範囲内に該当するそのような修正および変更を包含することを意図している。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施例によるクライアントまたはサーバシステムの概略図である。
【図２】図１に示される記憶装置のメモリアーキテクチャを示す概略図である。
【図３】図２に示されるシステムに用いられるＢＩＯＳおよび回復オペレーティングシステムのメモリアーキテクチャを示す概略図である。
【図４】本発明の一実施例によるオペレーティングシステムを再ロードするソフトウエアを実行するためのフローチャートである。
【図５】図２に示される主オペレーティングシステムのメモリアーキテクチャを示す概略図である。
【図６】図１に示されるクライアントのハードウエアを具体的に示す概略図である。
【図７】図５に示されるＦＬＡＴの操作を説明するフローチャートである。
【符号の説明】
【００４８】
１４  不揮発性再プログラム可能メモリ
２０  ＢＩＯＳおよび回復オペレーティングシステム
２２  主オペレーティングシステム
９６  ＣＲＣ
９８  ＦＬＡＴ内のエントリの番号を示すフィールド
１００  フラッシュ割当テーブル（ＦＬＡＴ）
１０２  ブートローダ
１０４  カーネル
１０６  ファイルシステム
【図１】
2006040301.tif 000003
【図２】
2006040301.tif 000004
【図３】
2006040301.tif 000005
【図４】
2006040301.tif 000006
【図５】
2006040301.tif 000007
【図６】
2006040301.tif 000008
【図７】
2006040301.tif 000009