(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-29
(45)【発行日】2024-12-09
(54)【発明の名称】情報処理装置
(51)【国際特許分類】
G06F 11/18 20060101AFI20241202BHJP
G06F 11/10 20060101ALI20241202BHJP
G06F 11/16 20060101ALI20241202BHJP
G06F 9/445 20180101ALI20241202BHJP
【FI】
G06F11/18 660
G06F11/10 604
G06F11/16 667
G06F9/445
(21)【出願番号】P 2020202393
(22)【出願日】2020-12-07
【審査請求日】2023-09-06
(73)【特許権者】
【識別番号】000003078
【氏名又は名称】株式会社東芝
(73)【特許権者】
【識別番号】598076591
【氏名又は名称】東芝インフラシステムズ株式会社
(74)【代理人】
【識別番号】110003708
【氏名又は名称】弁理士法人鈴榮特許綜合事務所
(72)【発明者】
【氏名】岡田 行史
【審査官】田中 幸雄
(56)【参考文献】
【文献】特開2017-021509(JP,A)
【文献】特開2006-163811(JP,A)
【文献】一ヶ谷兼乃,「BIOS」、「ドライバ」「ファームウェア」 パソコンを駆動する隠れた主役たち その実体とは?(アップグレードの必要性),DOS/V POWER REPORT,日本,株式会社インプレス,1998年04月01日,第8巻 第4号 ,186~196ページ
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/18
G06F 11/10
G06F 11/16
G06F 9/445
(57)【特許請求の範囲】
【請求項1】
コンピュータの起動に用いられる起動データを分割した複数の分割データを格納する第1のメモリと、
前記複数の分割データを格納する第2のメモリと、
前記複数の分割データを格納する第3のメモリと、
前記第1のメモリ、前記第2のメモリ及び前記第3のメモリから前記分割データを取得し、
前記第1のメモリから取得された前記分割データと前記第2のメモリから取得された前記分割データとが一致し、前記第1のメモリから取得された前記分割データと前記第3のメモリから取得された前記分割データとが一致しない場合、前記第1のメモリから取得された前記分割データを前記第3のメモリに格納する、
プロセッサと、
を備え
、
前記第1のメモリは、論理アドレスに対応付けて前記分割データを格納し、
前記第2のメモリは、前記第1のメモリの論理アドレスと異なる論理アドレスに対応付けて前記分割データを格納する、情報処理装置。
【請求項2】
前記第1のメモリは、
前記複数の分割データに関連する誤り訂正符号を格納し、
前記プロセッサは、前記第1のメモリから取得された前記分割データと前記第2のメモリから取得された前記分割データと前記第3のメモリから取得された前記分割データとが何れも一致しない場合、前記誤り訂正符号に基づいて前記第1のメモリから取得された前記分割データを修復する、
請求項1に記載の情報処理装置。
【請求項3】
前記誤り訂正符号は、リード・ソロモン符号である、
請求項2に記載の情報処理装置。
【請求項4】
前記第1のメモリ、前記第2のメモリ及び前記第3のメモリは、前記複数の分割データに関連する誤り検出符号を格納し、
前記プロセッサは、前記誤り検出符号に基づいて前記第1のメモリから取得された前記分割データを修復できない場合、前記誤り検出符号に基づいて前記第1のメモリから取得された前記分割データ、前記第2のメモリから取得された前記分割データ又は前記第3のメモリから取得された前記分割データから正常な分割データを選択する、
請求項3に記載の情報処理装置。
【請求項5】
前記誤り検出符号は、巡回冗長検査符号である、
請求項4に記載の情報処理装置。
【請求項6】
前記プロセッサは、
外部装置からパターンを取得し、
前記パターンの照合に成功すると、外部装置からの起動データを分割した分割データを前記第1のメモリ、前記第2のメモリ及び前記第3のメモリに格納する、
請求項1乃至5の何れか1項に記載の情報処理装置。
【請求項7】
前記起動データは、BIOSである、
請求項1乃至6の何れか1項に記載の情報処理装置。
【請求項8】
前記プロセッサは、起動時に、前記第1のメモリ、前記第2のメモリ及び前記第3のメモリから前記分割データを取得する、
請求項1乃至7の何れか1項に記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、情報処理装置に関する。
【背景技術】
【0002】
BIOS(Basic Input/Output System)などのコンピュータの起動に用いられるデータを2つのメモリに格納して冗長化する技術が提供されている。そのような技術は、2つのメモリの何れかが破損した場合に、他方のメモリからBIOSを読み出す。
【0003】
従来、各メモリの一部が破損した場合、データを読み取ることができなくなるという課題がある。また各メモリのデータを不正に書き換えすることや、その内部に保存したデータを第三者に読みだされてしまうという課題がある。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記の課題を解決するため、コンピュータの起動に用いられるデータを効果的に冗長化することができる情報処理装置を提供する。
【課題を解決するための手段】
【0006】
実施形態によれば、情報処理装置は、第1のメモリと、第2のメモリと、第3のメモリと、プロセッサと、を備える。第1のメモリは、コンピュータの起動に用いられる起動データを分割した複数の分割データを格納する。第2のメモリは、前記複数の分割データを格納する。第3のメモリは、前記複数の分割データを格納する。プロセッサは、前記第1のメモリ、前記第2のメモリ及び前記第3のメモリから前記分割データを取得し、前記第1のメモリから取得された前記分割データと前記第2のメモリから取得された前記分割データとが一致し、前記第1のメモリから取得された前記分割データと前記第3のメモリから取得された前記分割データとが一致しない場合、前記第1のメモリから取得された前記分割データを前記第3のメモリに格納する。
【図面の簡単な説明】
【0007】
【
図1】
図1は、第1の実施形態に係るシステムの構成例を示すブロック図である。
【
図2】
図2は、第1の実施形態に係る各メモリに格納されるデータを示す図である。
【
図3】
図3は、第1の実施形態に係る基板の動作例を説明するためのフローチャートである。
【
図4】
図4は、第1の実施形態に係る基板の動作例を説明するためのフローチャートである。
【
図5】
図5は、第2の実施形態に係るシステムの構成例を示すブロック図である。
【
図6】
図6は、第3の実施形態に係る各メモリに格納されるデータを示す図である。
【
図7】
図7は、第3の実施形態に係る基板の動作例を説明するためのフローチャートである。
【発明を実施するための形態】
【0008】
以下、実施形態について、図面を参照して説明する。
(第1の実施形態)
まず、第1の実施形態について説明する。
実施形態に係るシステムは、デスクトップPC、ノートPC、タブレットPC、スマートフォン又はウェアラブル端末などのコンピュータを構成する基板を備える。システムは、BIOS(Basic Input/Output System)などのコンピュータの起動に用いられるデータ(起動データ)を管理する。システムは、起動データをプロセッサなどに供給する。
【0009】
図1は、実施形態に係るシステム1の構成例を示す。
図1が示すように、システム1は、基板10、バックプレーン20及びPC30などを備える。基板10は、バックプレーン20に接続する。PC30は、バックプレーン20に接続する。
【0010】
なお、システム1は、
図1が示すような構成の他に必要に応じた構成を具備したり、システム1から特定の構成が除外されたりしてもよい。
【0011】
基板10(情報処理装置)は、コンピュータを構成する基板である。たとえば、基板10は、マザーボードである。基板10は、起動データを管理する。ここでは、基板10は、起動データとして、BIOSを管理するものとする。
【0012】
基板10は、プロセッサ11、テーブルメモリ12、プロセッサ13、チップセット14、メモリA(第1のメモリ)、メモリB(第2のメモリ)及びメモリC(第3のメモリ)などから構成される。プロセッサ11は、データバス又は所定のインターフェースなどを通じてテーブルメモリ12、チップセット14及びメモリA乃至Cに接続する。プロセッサ13は、データバス又は所定のインターフェースなどを通じてチップセット14に接続する。
【0013】
なお、基板10は、
図1が示すような構成の他に必要に応じた構成を具備したり、基板10から特定の構成が除外されたりしてもよい。
【0014】
プロセッサ13は、基板10全体の動作を制御する。たとえば、プロセッサ13は、チップセット14を通じてBIOSを取得する。プロセッサ13は、BIOSに従って起動する。たとえば、プロセッサ11は、CPU(Central Processing Unit)などから構成される。
【0015】
チップセット14は、メモリA乃至C又は周辺機器などの外部装置とプロセッサ13との間の通信を中継する。チップセット14は、プロセッサ11から起動データを取得する。チップセット14は、取得された起動データをプロセッサ13に供給する。
【0016】
プロセッサ11は、起動データを管理する。プロセッサ11は、起動データの読み取り又は書き込みを行う。プロセッサ11は、メモリA乃至Cから読み取った起動データをチップセット14に供給する。
【0017】
プロセッサ11は、ASIC(Application Specific Integrated Circuit)などから構成されるものであってもよい。また、プロセッサ11は、FPGA(Field Programmable Gate Array)又はCPLD(Complex Programmable Logic Device)などから構成されるものであってもよい。
【0018】
テーブルメモリ12は、メモリA乃至Cが格納するデータの論理アドレスを示すアドレステーブルを格納する。アドレステーブルについては、後述する。
【0019】
メモリA乃至Cは、書き換え可能なメモリである。たとえば、メモリA乃至Cは、IC(Integrated Circuit)チップなどから構成される。メモリA乃至Cは、それぞれBIOSを格納する。
【0020】
バックプレーン20は、BIOSを書き換えるために基板10に接続する回路基板である。バックプレーン20は、PC30からの新たなBIOSを基板10のチップセット14に供給する。
【0021】
バックプレーン20は、パターン生成部21、コネクタ22及びコネクタ23などを備える。パターン生成部21は、プロセッサ11に接続する。コネクタ22は、外部ネットワークとチップセット14とを接続する。コネクタ23は、チップセット14とPC30とを接続する。
【0022】
パターン生成部21は、BIOSを書き換えるための認証に必要なパターンをプロセッサ11に供給する。パターン生成部21は、複数の線でプロセッサ11に接続する。パターン生成部21は、パターンとして、各線を通じてHigh又はLowを供給する。
【0023】
コネクタ22は、インターネットなどの外部ネットワークと接続する。たとえば、コネクタ22は、LAN(Local Area Network)接続をサポートする。
【0024】
コネクタ23は、PC30と接続する。たとえば、コネクタ23は、USB(Universal Serial Bus)接続をサポートする。
【0025】
なお、バックプレーン20は、BIOSの書込時又は更新時に基板10に接続するものであってもよい。
【0026】
PC30(外部装置)は、オペレータからの操作に従って、新たなBIOSを基板10に供給する装置である。たとえば、PC30は、デスクトップPC又はノートPCなどである。
【0027】
次に、メモリA乃至Cが格納するデータについて説明する。
前述の通り、メモリA乃至Cは、それぞれBIOSを格納する。
【0028】
図2は、メモリA乃至Cが格納するデータの構成例を示す。
ここでは、BIOSは、複数のデータ(分割データ)に分割されている。
【0029】
メモリA乃至Cは、各分割データをランダムに並べ替えて格納する。即ち、メモリA乃至Cは、物理アドレスに個別の論理アドレスを割り当てて各分割データを格納する。
【0030】
メモリA乃至Cは、互いに異なるアドレスマッピングで各分割データをそれぞれ格納する。
【0031】
また、テーブルメモリ12が格納するアドレステーブルは、メモリA乃至Cにおいて物理アドレスと論理アドレスとを対応付けて格納する。
【0032】
次に、プロセッサ11が実現する機能について説明する。プロセッサ11は、内部メモリなどに格納されるプログラムを実行することで以下の機能を実現する。
【0033】
まず、プロセッサ11は、各メモリA乃至Cから分割データを取得する機能を有する。
プロセッサ11は、起動時において各メモリA乃至Cから分割データを取得する。
【0034】
たとえば、プロセッサ11は、基板10への電源投入を検知すると、自身を起動させる。自身を起動させると、プロセッサ11は、論理アドレスを設定する。たとえば、プロセッサ11は、最初の分割データに対応する論理アドレス(たとえば、0x1)を設定する。
【0035】
論理アドレスを設定すると、プロセッサ11は、アドレステーブルを参照して、設定された論理アドレスに対応する、各メモリA乃至Cの物理アドレスを取得する。各物理アドレスを取得すると、プロセッサ11は、各物理アドレスに従ってメモリA乃至Cからそれぞれ分割データを取得する。
【0036】
プロセッサ11は、他に取得されていない分割データがある場合、次の論理アドレスを設定して同様の動作を行う。
【0037】
また、プロセッサ11は、各分割データに基づいて分割データの破損を検出する機能を有する。
ここでは、メモリA乃至Cから取得された分割データをそれぞれ分割データA乃至Cと称する。
【0038】
プロセッサ11は、設定された論理アドレスの分割データA乃至Cを取得すると、分割データA乃至Cの何れかが破損していないかをチェックする。即ち、プロセッサ11は、分割データA乃至Cが一致するかを判定する。
【0039】
プロセッサ11は、分割データA乃至Cが一致すると判定した場合、分割データA乃至Cの何れも破損していないと判定する。
また、プロセッサ11は、分割データA乃至Cが一致しないと判定した場合、一致しなかった分割データが破損していると判定する。また、プロセッサ11は、一致した分割データが正常であると判定する。
【0040】
たとえば、プロセッサ11は、分割データAと分割データBとが一致したが分割データAと分割データCとが一致しないと判定した場合、分割データCが破損していると判定する。また、プロセッサ11は、分割データAと分割データBとが正常であると判定する。
【0041】
なお、プロセッサ11は、分割データA乃至Cの何れも一致しない場合、分割データA乃至Cの何れか2つ以上が破損していると判定する。
【0042】
また、プロセッサ11は、多数決によって破損している分割データを修復する機能を有する。
【0043】
プロセッサ11は、分割データが破損していると判定した場合、多数決によって破損している分割データを修復可能であるかを判定する。即ち、プロセッサ11は、2つ分割データが正常であるかを判定する。2つ分割データが正常であると判定すると、プロセッサ11は、多数決によって破損している分割データを修復可能であると判定する。また、プロセッサ11は、分割データA乃至Cの何れか2つ以上が破損していると判定した場合、多数決によって破損している分割データを修復不可能であると判定する。
【0044】
多数決によって破損している分割データを修復可能であると判定すると、プロセッサ11は、正常な分割データを、破損している分割データに上書きする。たとえば、上記の例では、プロセッサ11は、メモリCにおいて設定された論理アドレス(分割データCの論理アドレス)に分割データA(又は、分割データB)を格納する。
【0045】
なお、プロセッサ11は、多数決によって破損している分割データを修復不可能であると判定した場合、再起動を行う。また、プロセッサ11は、多数決によって破損している分割データを修復不可能であると判定した場合、エラーを出力してもよい。
【0046】
また、プロセッサ11は、BIOSの起動シーケンスによりチップセット14を制御する機能を有する。
プロセッサ11は、各論理アドレスにおいて、破損を検知しない場合、又は、破損している分割データを修復した場合、各論理アドレスに格納されている各分割データに基づいてBIOSの起動シーケンスによりチップセット14を制御する。
【0047】
たとえば、プロセッサ11は、各分割データを順にチップセット14に送信する。また、プロセッサ11は、各分割データを統合してチップセット14に送信してもよい。
【0048】
また、プロセッサ11は、各メモリA乃至Cが格納するBIOSを更新する機能を有する。
ここでは、基板10にバックプレーン20がセットされているものとする。
また、プロセッサ11は、メモリA乃至Cにライトプロテクトを掛けているものとする。
【0049】
プロセッサ11は、オペレータからの操作などに従って、BIOSの更新を開始する。
まず、プロセッサ11は、パターン生成部21からのパターンを取得する。パターンを受信すると、プロセッサ11は、予め設定されているパターンと取得されたパターンとを照合する。
【0050】
両パターンの照合に成功すると、プロセッサ11は、メモリA乃至Cへの書き込みを許可する。即ち、プロセッサ11は、メモリA乃至Cへのライトプロテクトを解除する。
【0051】
ここで、PC30は、オペレータからの操作などに従って新たなBIOSをチップセット14に供給する。チップセット14は、PC30からの新たなBIOSをプロセッサ11に供給する。
【0052】
プロセッサ11は、チップセット14から新たなBIOSを受信する。新たなBIOSを受信すると、プロセッサ11は、受信されたBIOSを分割データに分割する。受信されたBIOSを分割データに分割すると、プロセッサ11は、アドレステーブルに従って、メモリA乃至Cに各分割データを格納する。
なお、プロセッサ11は、同様にアドレステーブルを更新してもよい。
【0053】
次に、プロセッサ11の動作例について説明する。
まず、プロセッサ11がBIOSをチップセット14に供給する動作例について説明する。
【0054】
図3は、プロセッサ11がBIOSをチップセット14に供給する動作例について説明するためのフローチャートである。
【0055】
ここでは、基板10にバックプレーン20がセットされていなくともよい。
【0056】
まず、プロセッサ11は、電源投入を検知する(S11)。電源投入を検知すると、プロセッサ11は、自身を起動させる(S12)。自身を起動させると、プロセッサ11は、論理アドレスを設定する(S13)。
【0057】
論理アドレスを設定すると、プロセッサ11は、各メモリA乃至Cから論理アドレスに対応する分割データA乃至Cを取得する(S14)。分割データA乃至Cを取得すると、プロセッサ11は、分割データA乃至Cの何れかが破損しているかを判定する(S15)。
【0058】
分割データA乃至Cの何れかが破損していると判定すると(S15、YES)、プロセッサ11は、多数決によって破損している分割データを修復可能であるかを判定する(S16)。
【0059】
多数決によって破損している分割データを修復可能であると判定すると(S16、YES)、プロセッサ11は、正常な分割データを破損している分割データに上書きする(S17)。
【0060】
分割データA乃至Cの何れかも破損していないと判定した場合(S15、NO)、又は、正常な分割データを破損している分割データに上書きした場合(S17)、プロセッサ11は、分割データの取得が完了したかを判定する(S18)。
【0061】
分割データの取得が完了していないと判定すると(S18、NO)、プロセッサ11は、S13に戻る。
【0062】
多数決によって破損している分割データを修復不可能であると判定すると(S16、NO)、プロセッサ11は、S12に戻る。
【0063】
分割データの取得が完了したと判定すると(S18、YES)、プロセッサ11は、チップセット14にBIOSを供給する(S19)。チップセット14にBIOSを供給すると、プロセッサ11は、動作を終了する。
【0064】
なお、プロセッサ11は、分割データA乃至Cの何れかも破損していないと判定した場合(S15、NO)、又は、正常な分割データを破損している分割データに上書きした場合(S17)、正常な分割データをチップセット14に送信してもよい。
【0065】
次に、プロセッサ11がBIOSを更新する動作例について説明する。
図4は、プロセッサ11がBIOSを更新する動作例について説明するためのフローチャートである。
【0066】
ここでは、基板10にバックプレーン20がセットされているものとする。
【0067】
まず、プロセッサ11は、バックプレーン20のパターン生成部21からパターンを取得する(S21)。パターンを取得すると、プロセッサ11は、予め設定されているパターンと取得されたパターンとを照合する(S22)。
【0068】
両パターンの照合に成功すると(S22、YES)、プロセッサ11は、チップセット14から新たなBIOSを取得する(S23)。BIOSを取得すると、プロセッサ11は、各メモリA乃至Cに新たなBIOSを格納する(S24)。
両パターンの照合に失敗した場合(S22、NO)、又は、各メモリA乃至Cに新たなBIOSを格納した場合(S24)、プロセッサ11は、動作を終了する。
【0069】
なお、両パターンが整合しないと判定した場合(S22、NO)、プロセッサ11は、エラーを出力してもよい。
【0070】
また、プロセッサ11は、パターンとして、パルスを含んだシリアルデータを取得するのもであってもよい。
また、新たなBIOSは、外部ネットワークから供給されるものであってもよい。この場合、チップセット14は、コネクタ22を通じて新たなBIOSを取得するものであってもよい。
【0071】
また、基板10は、BIOSを格納するメモリを4つ以上備えるものであってもよい。基板10が備えるメモリは、3つ以上であればよく、特定の個数に限定されるものではない。
【0072】
また、起動データは、OS(Operating System)の一部のデータであってもよい。起動データの構成は、特定の構成に限定されるものではない。
【0073】
以上のように構成された基板は、3つのメモリにBIOSを分割した分割データを格納する。基板は、分割データが破損している場合、多数決によって破損している分割データを修復する。その結果、基板は、各メモリが格納するデータの一部が破損している場合であっても正常なBIOSを供給することができる。そのため、基板は、BIOSを効果的に冗長化することができる。
(第2の実施形態)
次に、第2の実施形態に係るシステムについて説明する。第2の実施形態に係るシステムは、メモリを2つ備える点で第1の実施形態に係るそれと異なる。従って、その他の点については、同一の符号を付して詳細な説明を省略する。
【0074】
図5は、第2の実施形態に係るシステム1’の構成例を示す。
図5が示すように、システム1’は、基板10’、バックプレーン20及びPC30などを備える。基板10’は、バックプレーン20に接続する。
【0075】
基板10’は、プロセッサ11、テーブルメモリ12、プロセッサ13、チップセット14、メモリA及びメモリB’などから構成される。プロセッサ11は、データバス又は所定のインターフェースなどを通じてテーブルメモリ12、チップセット14、メモリA及びメモリB’に接続する。
【0076】
なお、基板10’は、
図5が示すような構成の他に必要に応じた構成を具備したり、基板10’から特定の構成が除外されたりしてもよい。
【0077】
メモリB’は、書き換え可能なメモリである。たとえば、メモリA乃至Cは、ICチップなどから構成される。
【0078】
メモリB’は、領域B1と領域B2とにパーティーション分割されている。即ち、メモリB’は、2つのメモリのように動作する。
領域B1は、第1の実施形態に係るメモリBが格納するデータを格納する。
領域B2は、第1の実施形態に係るメモリCが格納するデータを格納する。
【0079】
プロセッサ11は、領域B1をメモリBとして扱う。即ち、プロセッサ11は、領域B1から分割データを読み取る。また、プロセッサ11は、領域B1に分割データを格納する。
【0080】
同様に、プロセッサ11は、領域B2をメモリCとして扱う。即ち、プロセッサ11は、領域B2から分割データを読み取る。また、プロセッサ11は、領域B2に分割データを格納する。
【0081】
プロセッサ11の動作例は、第1の実施形態に係るそれと同様であるため説明を省略する。
【0082】
なお、基板10は、1つのメモリを備えるものであってもよい。この場合、メモリは、3つの領域にパーティーション分割される。
【0083】
以上のように構成されたシステムは、少なくとも1つのメモリを2つ以上にパーティーション分割する。その結果、システムは、3つ以上のメモリを搭載することができない場合であっても、第1の実施形態のようにBIOSを冗長化することができる。
(第3の実施形態)
次に、第3の実施形態に係るシステムについて説明する。第3の実施形態に係るシステムは、メモリA乃至Cが誤り訂正符号及び誤り検出符号を格納する点で第1の実施形態に係るそれと異なる。従って、その他の点については、同一の符号を付して詳細な説明を省略する。
【0084】
第3の実施形態に係るシステムの構成例は、第1の実施形態に係るそれと同様であるため説明を省略する。
【0085】
次に、各メモリA乃至Cが格納するデータについて説明する。
ここでは、メモリAが格納するデータについて説明する。
【0086】
図6は、メモリAが格納するデータの構成例を示す。
図6が示すように、メモリAは、複数のブロック(ここでは、1乃至n個のブロック)から構成される。たとえば、メモリAは、ブロックごとに破損する。
【0087】
各ブロックは、データを格納する。各ブロックは、分割データ、誤り訂正符号又は誤り検出符号を格納する。
【0088】
ここでは、第1乃至n-1のブロックは、分割データを格納する。
第nのブロックは、複数の誤り訂正符号及び誤り検出符号を格納する。
【0089】
誤り訂正符号は、分割データの誤りを訂正するための符号である。誤り訂正符号は、複数の分割データのグループにおいて、正常な分割データに基づいて破損している分割データを訂正するために用いられる。
【0090】
誤り訂正符号は、少なくとも2つのブロックに格納される分割データのグループに関連する符号である。たとえば、誤り訂正符号の1つは、第1のブロックが格納する0x1の分割データ、第2のブロックが格納する0x2の分割データ及び第3のブロックが格納する0x3の分割データから構成されるグループに関連する符号である。即ち、当該誤り訂正符号は、0x1の分割データ、0x2の分割データ又は0x3の分割データの何れかが破損した場合に、正常な分割データに基づいて破損した分割データを訂正するために用いられる。
【0091】
第nのブロックは、互いに異なるグループに関連する複数の誤り訂正符号を格納する。
【0092】
たとえば、誤り訂正符号は、巡回符号、リード・ソロモン符号、RCH符号又はBCH符号などである。なお、誤り訂正符号の構成は、特定の構成に限定されるものではない。
【0093】
誤り検出符号は、分割データの誤りを検出するための符号である。誤り検出符号は、複数の分割データのグループにおいて、少なくとも1つの分割データが破損していることを検出するために用いられる。
【0094】
誤り検出符号は、少なくとも2つのブロックに格納される分割データのグループに関連する符号である。たとえば、誤り検出符号の1つは、第1のブロックが格納する0x1の分割データ、第2のブロックが格納する0x2の分割データ及び第3のブロックが格納する0x3の分割データから構成されるグループに関連する符号である。即ち、当該誤り検出符号は、0x1の分割データ、0x2の分割データ又は0x3の分割データの少なくとも1つが破損していることを検出するために用いられる。
【0095】
第nのブロックは、互いに異なるグループに関連する複数の誤り検出符号を格納する。
【0096】
たとえば、誤り検出符号は、巡回冗長検査符号(CRC(Cyclic Redundancy Check))などである。なお、誤り検出符号の構成は、特定の構成に限定されるものではない。
【0097】
たとえば、プロセッサ11は、分割データをメモリAに格納する時点において誤り訂正符号及び誤り検出符号を算出してメモリAに格納してもよい。また、プロセッサ11は、チップセット14からの誤り訂正符号及び誤り検出符号をメモリAに格納してもよい。
【0098】
また、誤り訂正符号及び誤り検出符号は、各ブロックに分散して格納されるものであってもよい。
【0099】
メモリB及びメモリCは、メモリAと同様に分割データ、誤り訂正符号又は誤り検出符号を格納する。メモリB及びメモリCは、各ブロックに互いに異なる分割データを格納するものであってもよい。
【0100】
次に、プロセッサ11が実現する機能について説明する。プロセッサ11は、内部メモリなどに格納されるプログラムを実行することで以下の機能を実現する。プロセッサ11は、第1の実施形態に係るプロセッサ11が実現する機能に加えて以下の機能を実現する。
【0101】
プロセッサ11は、誤り訂正符号によって破損している分割データを修復する機能を有する。
多数決によって破損している分割データを修復可能であると判定した場合、プロセッサ11は、誤り訂正符号によって破損している分割データを修復可能であるかを判定する。
誤り訂正符号によって破損している分割データを修復可能であると判定すると、プロセッサ11は、破損している分割データを格納するメモリから当該分割データを含むグループの正常な分割データと当該グループの誤り訂正符号とを取得する。正常な分割データと誤り訂正符号とを取得すると、プロセッサ11は、正常な分割データと誤り訂正符号とに基づいて破損している分割データを修復する。破損している分割データを修復すると、プロセッサ11は、修復された分割データを破損している分割データに上書きする。
【0102】
たとえば、分割データAが破損している場合、プロセッサ11は、メモリAから、当該分割データAを含むグループの正常な分割データと当該グループの誤り訂正符号とを取得する。正常な分割データと誤り訂正符号とを取得すると、プロセッサ11は、正常な分割データと誤り訂正符号とに基づいて破損している分割データAを修復する。分割データAを修復すると、プロセッサ11は、メモリAにおいて、修正された分割データAを破損している分割データAに上書きする。
【0103】
また、プロセッサ11は、誤り検出符号を用いて、分割データA乃至Cから正常な分割データを選択する機能を有する。
【0104】
誤り訂正符号によって破損している分割データを修復不可能であると判定すると、プロセッサ11は、各誤り検出符号によって各分割データA乃至Cの少なくとも1つが正常であるかを判定する。
【0105】
たとえば、プロセッサ11は、メモリAから、当該分割データAを含むグループの正常な分割データと当該グループの誤り検出符号とを取得する。正常な分割データと誤り検出符号とを取得すると、プロセッサ11は、正常な分割データと誤り検出符号とに基づいて分割データAが正常であるかを判定する。
【0106】
プロセッサ11は、分割データB及び分割データCについても同様に正常であるかを判定する。
【0107】
プロセッサ11は、分割データA乃至Cの少なくとも1つが正常であると判定した場合、正常であると判定された分割データを、BIOSを構成する分割データとして選択する。
【0108】
なお、プロセッサ11は、分割データA乃至Cのいずれも破損していると判定した場合、再起動を行う。また、プロセッサ11は、多数決によって破損している分割データを修復不可能であると判定した場合、エラーを出力してもよい。
【0109】
次に、プロセッサ11の動作例について説明する。
ここでは、プロセッサ11がBIOSをチップセット14に供給する動作例について説明する。
【0110】
図7は、プロセッサ11がBIOSをチップセット14に供給する動作例について説明するためのフローチャートである。
【0111】
ここでは、基板10に認証に必要なパターンのあるバックプレーン20がセットされていなくともよい。
【0112】
まず、プロセッサ11は、電源投入を検知する(S31)。電源投入を検知すると、プロセッサ11は、自身を起動させる(S32)。自身を起動させると、プロセッサ11は、論理アドレスを設定する(S33)。
【0113】
論理アドレスを設定すると、プロセッサ11は、各メモリA乃至Cから論理アドレスに対応する分割データA乃至Cを取得する(S34)。分割データA乃至Cを取得すると、プロセッサ11は、分割データA乃至Cの何れかが破損しているかを判定する(S35)。
【0114】
分割データA乃至Cの何れかが破損しているかと判定すると(S35、YES)、プロセッサ11は、多数決によって破損している分割データを修復可能であるかを判定する(S36)。
【0115】
多数決によって破損している分割データを修復可能であると判定すると(S36、YES)、プロセッサ11は、正常な分割データを破損している分割データに上書きする(S37)。
【0116】
多数決によって破損している分割データを修復不可能であると判定すると(S36、NO)、プロセッサ11は、誤り訂正符号によって破損している分割データを修復可能であるかを判定する(S38)。
【0117】
誤り訂正符号によって破損している分割データを修復可能であると判定すると(S38、YES)、プロセッサ11は、誤り訂正符号によって破損している分割データを修復して破損している分割データに上書きする(S39)。
【0118】
誤り訂正符号によって破損している分割データを修復不可能であると判定すると(S38、NO)、プロセッサ11は、各誤り検出符号によって分割データA乃至Cの少なくとも1つが正常であるかを判定する(S40)。
【0119】
分割データA乃至Cの少なくとも1つが正常であると判定すると(S40、YES)、プロセッサ11は、正常であると判定された分割データを、BIOSを構成する分割データとして選択する(S41)。
【0120】
分割データA乃至Cの何れも破損していると判定すると(S40、NO)、プロセッサ11は、S32に戻る。
【0121】
分割データA乃至Cの何れかも破損していないと判定した場合(S35、YES)、正常な分割データを破損している分割データに上書きした場合(S37)、誤り訂正符号によって破損している分割データを修復して破損している分割データに上書きした場合(S39)、又は、正常であると判定された分割データを、BIOSを構成する分割データとして選択した場合(S41)、プロセッサ11は、分割データの取得が完了したかを判定する(S42)。
【0122】
分割データの取得が完了していないと判定すると(S42、NO)、プロセッサ11は、S33に戻る。
【0123】
分割データの取得が完了したと判定すると(S42、YES)、プロセッサ11は、チップセット14に正常な分割データから構成されるBIOSを供給する(S43)。チップセット14にBIOSの起動データにより制御すると、プロセッサ11は、起動動作を終了する。
【0124】
分割データA乃至Cの何れかも破損していないと判定した場合(S35、YES)、正常な分割データを破損している分割データに上書きした場合(S37)、誤り訂正符号によって破損している分割データを修復して破損している分割データに上書きした場合(S39)、又は、正常であると判定された分割データを、BIOSを構成する分割データとして選択した場合(S41)、プロセッサ11は、正常な分割データをチップセット14に送信してもよい。
【0125】
なお、メモリA乃至Cは、誤り訂正符号又は誤り検出符号の何れかを格納するものであってもよい。メモリA乃至Cが誤り検出符号を格納しない場合、プロセッサ11は、S40及びS41を実行しなくともよい。また、メモリA乃至Cが誤り訂正符号を格納しない場合、プロセッサ11は、S38及びS39を実行しなくともよい。
【0126】
以上のように構成されたシステムは、多数決によって分割データを修復できない場合であっても誤り訂正符号によって分割データを修復することができる。また、システムは、誤り訂正符号によっても分割データを修復することができない場合であっても、誤り検出符号によって正常な分割データを選択することができる。その結果、システムは、BIOSをより効果的に冗長化することができる。
【0127】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0128】
1…システム、1’…システム、10…基板、10’…基板、11…プロセッサ、12…テーブルメモリ、13…プロセッサ、14…チップセット、20…バックプレーン、21…パターン生成部、22…コネクタ、23…コネクタ、30…PC。