説明

情報処理装置

【課題】不揮発性メモリを複数のマスタで共有するシステムにおいて、不揮発性メモリに格納される管理情報をソフトウェアにより更新できる情報処理装置を実現する。
【解決手段】不揮発性メモリ13には、第1メモリアドレス空間に割り当てられた第1不揮発性メモリを選択するためのチップセレクト信号と第2メモリアドレス空間に割り当てられた第2不揮発性メモリを選択するためのチップセレクト信号との論理和出力が接続されている。第1メモリアドレス空間には各マスタに対応するリージョンと管理情報を格納するためのリージョンとが定義され、リージョン毎にアクセス可能なマスタが規定されている。一方、第2メモリアドレス空間に対するアクセスはCPUのみに許可されている。CPUは、第2のメモリアドレス空間を利用することにより、他のマスタまたは管理情報に対応するリージョンをアクセスすることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不揮発性メモリをアクセスする複数のマスタを備えた情報処理装置に関する。
【背景技術】
【0002】
近年、パーソナルコンピュータ、PDA、組み込みシステムといった、様々な情報処理装置が開発されている。
【0003】
このような情報処理装置は一般に不揮発性メモリを有する。不揮発性メモリは、情報処理装置の電源を切った状態でも記録された情報を保持することができるメモリである。したがって、主に管理情報やBIOS(Basic Input/Output System)の記録に用いられる。
【0004】
管理情報は、不揮発性メモリを共有して使用するCPU、LANコントローラおよびマネジメントエンジン(ME)といったマスタについて、各マスタからアクセス可能な、不揮発性メモリ内の記憶領域に関する情報を保持している。
【0005】
一方、BIOSは、情報処理装置に接続されたディスクドライブやキーボード、ビデオカードなどの周辺機器を制御するプログラム群である。つまり、これらの周辺機器に対する基本的な入出力手段をOSやアプリケーションに提供する。
【0006】
また、LANコントローラおよびマネジメントエンジン(ME)といったマスタに固有の情報も不揮発性メモリに格納される。マスタそれぞれに対応する記憶領域の独立性を高めるために、管理情報が格納された不揮発性メモリ内の記憶領域は書き込み保護されている。しかし、この管理領域は情報処理装置の製造時または出荷後に更新する必要が生じる場合がある。この要求に対処するために、不揮発性メモリを配置した基板上に設けられたテストピンを用いた外部からの入力(オーバーライド入力)により書き込み保護を解除する方法が用いられる。
【0007】
この方法は、管理情報の書き込み保護を解除することはできるものの、書き込み保護の解除にはテストピンを使用した外部からの入力が必要となる。したがって、ソフトウェアだけで管理情報を更新することができず、メンテナンス性が悪い。さらに、テストピンは製造や保守で利用することを意図して基板上に配置するものであるが、ユーザによるアクセスも可能である。このため、悪意を持ったユーザから管理情報が格納された領域を保護することができないという問題がある。
【0008】
ところで特許文献1には、二重化されたメモリを共有する処理装置のそれぞれについて、オンラインアクセスかデバッグアクセスかを示すアクセスモードを設定した二重化共有メモリ制御方法が開示されている。
【特許文献1】特公平4−1374号公報
【発明の開示】
【発明が解決しようとする課題】
【0009】
しかし、特許文献1の技術は、メモリに対するアクセスモードに関するものであって、メモリの保護に関するものではない。また、アクセスモードの変更手段については言及されていない。したがって、マスタそれぞれに対応する記憶領域の独立性を維持でき、且つオーバーライド入力を用いずに、他のマスタの情報または管理情報を必要に応じてアクセスするための新たな機能の実現が必要である。
【0010】
本発明は上述の事情を考慮してなされたものであり、マスタそれぞれに対応する不揮発性メモリ内の記憶領域の独立性を維持でき、且つオーバーライド入力を用いずに、あるマスタから他のマスタの情報または管理情報を必要に応じてアクセスすることができる情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【0011】
上述の課題を解決するため、本発明の情報処理装置は、第1マスタおよび第2マスタと、第1メモリアドレス空間に割り当てられ、管理情報を格納する第1記憶領域、前記第1マスタによって使用される情報を格納する第2記憶領域、および前記第2マスタによって使用される情報を格納する第3記憶領域を含む不揮発性メモリであって、前記管理情報は、前記第1記憶領域に対する前記第1マスタおよび前記第2マスタの各々からのアクセスを禁止する情報と、前記第2記憶領域に対する前記第1マスタのみからのアクセスを許可する情報と、前記第3記憶領域に対する前記第2マスタのみからのアクセスを許可する情報と、前記第1メモリアドレス空間に後続し且つ前記第1メモリアドレス空間と同じメモリサイズを有する第2メモリアドレス空間に割り当てられた別の不揮発性メモリに対する前記第2マスタのみからのアクセスを許可する情報とを含む、不揮発性メモリと、前記第1マスタまたは前記第2マスタから発行される、前記第1メモリアドレス空間および前記第2メモリアドレス空間に対するメモリアクセス要求を前記管理情報に基づいてフィルタリングするフィルタリング手段と、前記フィルタリング手段を通過したメモリアクセス要求によって指定されるメモリアドレスが前記第1メモリアドレス空間内に属する場合、前記不揮発性メモリを選択するための第1のチップセレクト信号を発生すると共に、前記メモリアクセス要求によって指定されるメモリアドレスを、前記不揮発性メモリが接続されたメモリバス上に出力し、前記フィルタリング手段を通過したメモリアクセス要求によって指定されるメモリアドレスが前記第2メモリアドレス空間内に属する場合、前記不揮発性メモリを選択するための第2のチップセレクト信号を発生すると共に前記メモリアクセス要求によって指定されるメモリアドレスを前記メモリバス上に出力するメモリアクセス手段とを具備し、前記第2のマスタが前記第2のメモリアドレス空間を介して前記第1記憶領域または前記第2記憶領域をアクセスできるように、前記第1のチップセレクト信号と前記第2のチップセレクト信号との論理和出力が前記不揮発性メモリのチップセレクト信号入力端子に接続されていることを特徴とする。
【0012】
また、本発明の情報処理装置は、マスタと、中央処理装置と、第1メモリアドレス空間に割り当てられ、管理情報を格納する第1記憶領域、前記マスタによって使用される情報を格納する第2記憶領域、および前記中央処理装置によって実行される基本入出力プログラム(BIOS)を格納する第3記憶領域を含む不揮発性メモリであって、前記管理情報は、前記第1記憶領域に対する前記マスタおよび前記中央処理装置の各々からのアクセスを禁止する情報と、前記第2記憶領域に対する前記マスタのみからのアクセスを許可する情報と、前記第3記憶領域に対する前記中央処理装置のみからのアクセスを許可する情報と、前記第1メモリアドレス空間に後続し且つ前記第1メモリアドレス空間と同じメモリサイズを有する第2メモリアドレス空間に割り当てられた別の不揮発性メモリに対する前記中央処理装置のみからのアクセスを許可する情報とを含む、不揮発性メモリと、前記マスタまたは前記中央処理装置から発行される、前記第1メモリアドレス空間および前記第2メモリアドレス空間に対するメモリアクセス要求を所定のレジスタに設定されるアクセス制御情報に基づいてフィルタリングする第1フィルタリング手段と、前記第1フィルタリング手段を通過したメモリアクセス要求を前記管理情報に基づいてフィルタリングする第2フィルタリング手段と、前記第2フィルタリング手段を通過したメモリアクセス要求によって指定されるメモリアドレスが前記第1メモリアドレス空間内に属する場合、前記不揮発性メモリを選択するための第1のチップセレクト信号を発生すると共に、前記メモリアクセス要求によって指定されるメモリアドレスを、前記不揮発性メモリが接続されたメモリバス上に出力し、前記フィルタリング手段を通過したメモリアクセス要求によって指定されるメモリアドレスが前記第2メモリアドレス空間内に属する場合、前記不揮発性メモリを選択するための第2のチップセレクト信号を発生すると共に前記メモリアクセス要求によって指定されるメモリアドレスを前記メモリバス上に出力するメモリアクセス手段と、前記第1のチップセレクト信号と前記第2のチップセレクト信号との論理和出力を前記不揮発性メモリのチップセレクト信号入力端子に出力する論理和演算回路と、前記情報処理装置の起動モードがメンテナンスプログラムを用いて前記管理情報の更新または前記第1記憶領域内の情報の更新を行うためのメンテナンスモードであるか否かを判定し、前記起動モードが前記メンテナンスモードではない場合には、前記管理情報および前記第1記憶領域内の情報を保護するために前記第2メモリアドレス空間に対するアクセスの禁止を示すアクセス制御情報を前記レジスタに設定し、前記起動モードが前記メンテナンスモードである場合、前記アクセス制御情報を前記レジスタに設定せずに前記メンテナンスプログラムを前記中央処理装置によって実行する制御手段とを具備することを特徴とする。
【発明の効果】
【0013】
本発明によれば、マスタそれぞれに対応する不揮発性メモリ内の記憶領域の独立性を維持でき、且つオーバーライド入力を用いずに、あるマスタから他のマスタの情報または管理情報を必要に応じてアクセスすることができる。
【発明を実施するための最良の形態】
【0014】
以下、図面を参照して本発明の実施形態を説明する。まず、図1を参照して、本発明の一実施形態に係る情報処理装置の構成を説明する。この情報処理装置は、例えば、パーソナルコンピュータ、サーバのようなコンピュータ、または各種電子機器に内蔵される組み込みシステムとして実現される。この情報処理装置は、マスタ11、フィルタ12、不揮発性メモリ13、不揮発性メモリコントローラ14、および論理和演算回路17を備えている。マスタ11は、不揮発性メモリ13をアクセス可能なデバイス(バスマスタとも云う)であり、各種演算処理の実行やデバイスの制御を行う。マスタ11となるのは、例えば、中央処理装置(CPU)、LANコントローラ、マネジメントエンジン(ME)等である。マネジメントエンジン(ME)は、例えば、バス間の相互接続、各種I/Oデバイスとの通信等、を実行するデバイスである。マスタ11は、情報処理装置に複数設けられる。つまり、情報処理装置は、第1のマスタ111、第2のマスタ112、……、第mのマスタ113を備える。情報処理装置に複数設けられるマスタ11は、不揮発性メモリ13を共有して使用する。各マスタ11は、不揮発性メモリ13に対してリード要求またはライト要求を発行し、マスタ11における処理に必要な命令群やデータの読み込み、および処理結果に基づく書き込みを行う。不揮発性メモリ13は、情報処理装置の電源を切った状態でも記録された情報を保持することができるメモリである。不揮発性メモリ13には、管理情報、各マスタにおける処理に必要な命令群やデータ、および基本入出力プログラム(BIOS)が格納される。管理情報は、不揮発性メモリ13を共有して使用するマスタ11について、各マスタからアクセス可能な領域に関する情報を保持している。また、情報処理装置が複数の不揮発性メモリ13を有する場合には、不揮発性メモリの個数や各不揮発性メモリの容量および転送速度の情報も保持する。
【0015】
BIOSは、情報処理装置に接続されたディスクドライブやキーボード、ビデオカードなどの周辺機器を制御するためのプログラム群である。つまり、これらの周辺機器に対する基本的な入出力手段をOSやアプリケーションプログラムに提供する。
【0016】
不揮発性メモリ13は、例えば、論理的に2つの不揮発性メモリとして扱われる。すなわち、不揮発性メモリ13は物理的には一個のメモリであるが、論理的には第1のメモリアドレス空間に割り当てられた第1の不揮発性メモリおよび第2のメモリアドレス空間に割り当てられた第2の不揮発性メモリとして扱われる。不揮発性メモリ13は、さらにチップセレクト信号(CS#)入力端子201を備える。なお、情報処理装置が物理的に複数の不揮発性メモリを備える場合、これら複数の不揮発性メモリを連結して、連続するアドレス空間に配置することができる。このため、不揮発性メモリが一つである場合にも、また複数である場合にも、不揮発性メモリ内の記憶領域を連続する単一のアドレス空間として扱うことができる。
【0017】
不揮発性メモリ13が割り当てられる第1のメモリアドレス空間は、複数のマスタ11にそれぞれ対応する複数のリージョン(記憶領域)に分割して使用される。また、各リージョンは、開始アドレスと終了アドレスにより指定される。各リージョンには、複数のマスタ11のうちの一つのマスタからのアクセス権(リード権およびライト権)が設定される。
【0018】
このような不揮発性メモリ13の構成情報、および各マスタから各リージョンに対するアクセス権の情報は、管理情報として不揮発性メモリ13自体に格納される。
【0019】
すなわち、第1のメモリアドレス空間においては、各マスタに対応するリージョンと管理情報を格納するためのリージョンとが定義され、且つリージョン毎に当該リージョンをアクセス可能なマスタが管理情報によって規定されている。
【0020】
第2のメモリアドレス空間は第1のメモリアドレス空間に後続するメモリアドレス空間であり、第1のメモリアドレス空間と同じサイズを有している。本実施形態においては、第2のメモリアドレス空間は、CPUのような特定のマスタが不揮発性メモリ13内の全てのリージョンを自由にアクセスすることを許可するためのメモリアドレス空間として使用される。
【0021】
フィルタ12は、情報処理装置の起動の都度設定が可能なレジスタの情報に従って、各マスタ11からの不揮発性メモリ13に対するメモリアクセス要求(リード要求またはライト要求)をフィルタリングする。フィルタリングはメモリアクセス要求を許可または禁止する処理である。許可されたメモリアクセス要求はフィルタ12を通過するが、禁止されたメモリアクセス要求はフィルタ12を通過しない。
【0022】
フィルタ12は、複数あるマスタ11それぞれに対して設けられる。つまり、第1のマスタ111からの要求をフィルタリングする第1のフィルタ121、第2のマスタ112からの要求をフィルタリングする第2のフィルタ122、……、第mのマスタ113からの要求をフィルタリングする第mのフィルタ123が設けられる。
【0023】
不揮発性メモリコントローラ14は、各マスタ11から不揮発性メモリ13へのリード要求およびライト要求のうち、フィルタ12を通過した要求について制御する。不揮発性メモリコントローラ14は、フィルタ15およびアービタ16を備えている。
【0024】
フィルタ15は、不揮発性メモリ13に格納された管理情報に従って、各マスタ11からのリード要求またはライト要求のうちフィルタ12を通過した要求に対するフィルタリングを行う。なお、外部からの入力であるオーバーライド入力がある場合にはフィルタリングを行わず、各マスタ11からの要求をそのままアービタ16に伝える。
【0025】
フィルタ15もフィルタ12と同様に、複数あるマスタ11それぞれに対して設けられる。つまり、第1のフィルタ121を通過した第1のマスタ111からのメモリアクセス要求をフィルタリングする第1のフィルタ151、第2のフィルタ122を通過した第2のマスタ112からのメモリアクセス要求をフィルタリングする第2のフィルタ152、……、第mのフィルタ123を通過した第mのマスタ113からのメモリアクセス要求をフィルタリングする第mのフィルタ153が設けられる。
【0026】
アービタ16は、フィルタ12およびフィルタ15を通過した各マスタ11からのメモリアクセス要求を調停する。
【0027】
各マスタ11からのメモリアクセス要求は第1メモリアドレス空間または第2メモリアドレス空間内に属するメモリアドレスを含むが、アービタ16は、このメモリアドレスをデコードして、該メモリアドレスに対応する不揮発性メモリを決定する。
【0028】
アービタ16は、例えば、第1のチップセレクト信号(CS1#)出力部202と第2のチップセレクト信号(CS2#)出力部203を備える。
【0029】
アービタ16は、マスタ11からのメモリアクセス要求によって指定されるメモリアドレスを、不揮発性メモリ13が接続されたメモリバス上に出力する。この場合、メモリバス上に出力されるメモリアドレスは、マスタ11からのメモリアクセス要求に含まれるメモリアドレスの下位ビット部である。この下位ビット部は不揮発性メモリ13のメモリサイズに対応するアドレス部である。
【0030】
アービタ16はさらに、このメモリアドレスをデコードして対応する不揮発性メモリを決定し、第1のチップセレクト信号(CS1#)出力部202と第2のチップセレクト信号(CS2#)出力部203のうち対応するチップセレクト信号出力部からチップセレクト信号を発生する。具体的には、メモリアドレスが第1のメモリアドレス空間に属するならば、アービタ16は、第1のチップセレクト信号を発生する。一方、メモリアドレスが第2のメモリアドレス空間に属するならば、アービタ16は、第2のチップセレクト信号を発生する。
【0031】
論理和演算回路17は、第1のチップセレクト信号と第2のチップセレクト信号との論理和を算出する。この論理和出力は、接続された不揮発性メモリ13のチップセレクト信号入力端子201に入力される。第1のチップセレクト信号出力部202、および第2のチップセレクト信号出力部203から出力される信号がHighアクティブである場合、論理和演算回路17はORゲートにより構成される。一方、第1のチップセレクト信号出力部202、および第2のチップセレクト信号出力部203から出力される信号がLowアクティブである場合、論理和演算回路17はANDゲートにより構成される。なお、図1では、Lowアクティブである場合について示している。
【0032】
これにより、物理的には一つである不揮発性メモリ13を、論理的に二つの第1の不揮発性メモリおよび第2の不揮発性メモリとして使用することができる。つまり、不揮発性メモリ13が、第1のメモリアドレス空間に割り当てられた第1の不揮発性メモリとしても、第2のメモリアドレス空間に割り当てられた第2の不揮発性メモリとしてもアクセスできるようになる。
【0033】
チップセレクト信号入力部201にチップセレクト信号が入力された時、不揮発性メモリ13は、アクティブ状態となる。不揮発性メモリ13は、アービタ16から出力されたメモリアドレスに対応する記憶領域(リージョン)からのデータの読み出しまたは当該記憶領域(リージョン)へのデータの書き込みを行う。
【0034】
一方、図2は通常の情報処理装置の構成例を示す。通常は、第1のチップセレクト信号(CS1#)および第2のチップセレクト信号(CS2#)は物理的に異なる不揮発性メモリにそれぞれ接続される。すなわち、第1のチップセレクト信号出力部202から出力された第1のチップセレクト信号(CS1#)は、第1の不揮発性メモリ131のチップセレクト信号入力部201に入力される。一方、第2のチップセレクト信号出力部203から出力された第2のチップセレクト信号(CS2#)は、第2の不揮発性メモリ132のチップセレクト信号入力部204に入力される。
【0035】
図3は本実施形態に係る情報処理装置の具体的な構成の例を示したブロック図である。この情報処理装置は、CPU21、LANコントローラ25、マネジメントエンジン(ME)231を備えるものである。これらCPU21、LANコントローラ25、マネジメントエンジン(ME)231の各々はマスタとして機能する。不揮発性メモリ13は、CPU21、LANコントローラ25、およびマネジメントエンジン231にそれぞれ対応するリージョンを有している。CPU21、LANコントローラ25、およびマネジメントエンジン231はそれぞれ、この対応するリージョンにのみアクセスすることができる。
【0036】
情報処理装置は、CPU21、ノースブリッジ22、サウスブリッジ23、メモリ24、LANコントローラ25、および不揮発性メモリ13を備えている。
【0037】
CPU21は各種プログラムを実行するプロセッサである。CPU21は、各種演算処理を実行すると共に、情報処理装置内の各デバイスを制御する。
【0038】
CPU21は、ノースブリッジ22に接続される。ノースブリッジ22はCPU21のプロセッサバスとサウスブリッジ23との間を相互接続するブリッジデバイスである。ノースブリッジ22は、メインメモリをアクセス制御するメモリコントローラを内蔵している。
【0039】
メモリ24は、CPU21によって実行される、オペレーティングシステムおよびアプリケーションプログラムを格納するためのメインメモリである。メモリ24は、ノースブリッジ22に接続されている。
【0040】
サウスブリッジ23は、ノースブリッジ22、LANコントローラ25、および不揮発性メモリ13に接続されている。サウスブリッジ23は、ノースブリッジ22、LANコントローラ25、および不揮発性メモリ13を相互に接続してデータの受け渡しを行うブリッジデバイスである。
【0041】
サウスブリッジ23は、マネジメントエンジン(ME)231を備えている。
【0042】
マネジメントエンジン231はサウスブリッジ23の動作を制御すると共に、サウスブリッジ23に接続された各デバイスとの入出力を制御する。図1のフィルタ12および不揮発性メモリコントローラ14はサウスブリッジ23内に設けられている。
【0043】
LANコントローラ25は、情報処理装置をLANへ接続するための制御を行う装置である。LANコントローラ25は、サウスブリッジ23に接続されている。LANコントローラ25は、サウスブリッジ23を介して、CPU21、メモリ24、および不揮発性メモリ13とのデータの受け渡しを行う。
【0044】
不揮発性メモリ13は、情報処理装置の電源を切った状態でも記録された情報を保持することができる。不揮発性メモリ13は、サウスブリッジ23に接続されている。不揮発性メモリ13は、サウスブリッジ23を介して、CPU21、メモリ24、およびLANコントローラ25とのデータの受け渡しを行う。
【0045】
不揮発性メモリ13は、リージョンと呼ばれるアドレスで指定された記憶領域に分割される。不揮発性メモリ13には、管理情報、各マスタにおける処理に必要な命令群やデータ、およびBIOSが格納され、これらの情報は、指定されたリージョンに記録される。
【0046】
次に、不揮発性メモリ13に設定されるリージョンについて説明する。以下では、第mのマスタ113がCPU21であるものとする。またm=4である場合を想定する。
【0047】
図4は、不揮発性メモリ13に設定される通常のリージョン31の例を示したものである。図4における不揮発性メモリ13は、物理的にも論理的にも一つの不揮発性メモリであるものとする。
【0048】
図4に示す例では、第1のリージョン311に管理情報が格納され、以降のリージョンは対応するマスタがそれぞれ参照および更新を行う領域となる。すなわち、第1のリージョン311は管理情報を格納する記憶領域であり、第2のリージョン312は第1のマスタ111に対応する記憶領域、第3のリージョン313は第2のマスタ112に対応する記憶領域、……、第5のリージョン315は第4のマスタに対応する領域となる。なお、CPU21である第4のマスタに対応する第5のリージョン315は、BIOSが格納されるBIOSリージョンである。
【0049】
また、各マスタは対応付けられたリージョンにのみアクセス可能で、他のマスタに対応付けられたリージョンに対してアクセスすることはできない。したがって、BIOSリージョン(第5のリージョン315)は、CPU21からのみアクセス可能なリージョンである。
【0050】
図5は、図4の第1のリージョン311に格納される管理情報の例を示したものである。管理情報には、リージョンを定義する設定情報41として、不揮発性メモリ13に設定されるリージョンの開始アドレスと終了アドレス、そして各マスタからのリードアクセス権およびライトアクセス権の有無が記述される。さらに、管理情報には、不揮発性メモリの構成情報42として、情報処理装置が備える不揮発性メモリの個数、各不揮発性メモリの容量および転送速度等の不揮発性メモリの構成に関する情報が記述される。
【0051】
例えば、管理情報が格納される第1のリージョン311には、この管理情報を保護するため、すべてのマスタに対してリードアクセス権およびライトアクセス権を与えないことが記述されている。第2のリージョン312以降のリージョンについては、対応するマスタに対してリードアクセス権およびライトアクセス権が与えられている。例えば、第2のリージョン312には第1のマスタ111からのリードアクセス権およびライトアクセス権が与えられている。
【0052】
図6は、本実施形態において、物理的には一つの不揮発性メモリを論理的に二つの不揮発性メモリとして扱う場合に設定されるリージョンの例を示したものである。つまり、物理的に一つの不揮発性メモリ13を論理的に二つの第1の不揮発性メモリおよび第2の不揮発性メモリとして扱う。
【0053】
第2の不揮発性メモリは、第1の不揮発性メモリのシャドウとして用いられる。すなわち、第2の不揮発性メモリに割り当てられた第2のメモリアドレス空間は、第1のメモリアドレス空間に割り当てられた第1の不揮発性メモリの内容を参照または更新するためのメモリアドレス空間として用いられる。この第2のメモリアドレス空間に対するアクセス権は、CPU21のような特定のマスタにのみ与えられている。
【0054】
具体的には、第1の不揮発性メモリには、図4に示した不揮発性メモリ13と同様のリージョンが設定される。第1のリージョン521に管理情報が格納され、以降のリージョンは複数あるマスタ11がそれぞれ参照および更新を行う領域となる。すなわち、第1のリージョン521は管理情報を格納する記憶領域であり、第2のリージョン522は第1のマスタ111に対応する記憶領域、第3のリージョン523は第2のマスタ112に対応する記憶領域、……、第5のリージョン525は第4のマスタに対応する記憶領域となる。第1のマスタ111がLANコントローラ25であるならば、第2のリージョン522には例えばMACアドレスが格納される。第2のマスタ112がマネージメントコントローラ231であるならば、第3のリージョン523にはマネージメントコントローラ231によって実行されるプログラム(ファームウェア)が格納される。なお、CPU21である第4のマスタに対応する第5のリージョン525は、BIOSが格納されるBIOSリージョンである。
【0055】
各マスタは、対応付けられたリージョンにのみアクセス可能で、他のマスタに対応付けられたリージョンに対してアクセスすることはできない。すなわち、管理情報は、第1のリージョン521に対する各マスタからのアクセスの禁止を示す情報と、第2のリージョン522に対する第1のマスタ111のみからのアクセスの許可を示す情報と、第3のリージョン523に対する第2のマスタ112のみからのアクセスの許可を示す情報と、……、第5のリージョン525に対する第4のマスタのみからのアクセスの許可を示す情報と、第1メモリアドレス空間に後続する第2メモリアドレス空間に割り当てられた第2の不揮発性メモリに対する第4のマスタのみからのアクセスの許可を示す情報とを含む。
【0056】
上述したように、本実施形態では、チップセレクト信号CS#1,CS#2の論理和出力が不揮発性メモリ13に供給されるので、第1の不揮発性メモリが割り当てられた第1のメモリアドレス空間および第2の不揮発性メモリが割り当てられた第2のメモリアドレス空間のどちらからも不揮発性メモリ13を参照・更新することができる。
【0057】
したがって、第2の不揮発性メモリには、第1の不揮発性メモリと同様のリージョンが論理的に設定されることになる。第1のリージョン531は管理情報を格納する記憶領域であり、第2のリージョン532は第1のマスタ111に対応する記憶領域、第3のリージョン533は第2のマスタ112に対応する記憶領域、……、第5のリージョン535(BIOSリージョン)は第4のマスタ(CPU21)に対応する記憶領域となる。
【0058】
ただし、第2の不揮発性メモリはCPU21である第4のマスタのみがアクセス可能な記憶領域である。したがって、第1のメモリアドレス空間内のアドレス範囲(0028_0000h〜003F_FFFFh)と、これに後続する第2のメモリアドレス空間内の全てのアドレス範囲(0040_0000h〜007F_FFFFh)が第5のリージョン535(BIOSリージョン)として使用される。もしCPU21が第1のメモリアドレス空間内に属するメモリアドレスを使用して不揮発性メモリ13に対するメモリアクセス要求を発行した場合には、不揮発性メモリ13内の第5のリージョン525に対するアクセスのみがCPU21に許可される。一方、もしCPU21が第2のメモリアドレス空間内に属するメモリアドレスを使用して不揮発性メモリ13に対するメモリアクセス要求を発行した場合には、不揮発性メモリ13内の全てのリージョンに対するアクセスがCPU21に許可される。
【0059】
図7は、本実施形態における不揮発性メモリ13を論理的に二つの不揮発性メモリとして不揮発性メモリコントローラ14に認識させるための管理情報の例を示したものである。この管理情報には、リージョンの設定情報61として、不揮発性メモリ13に設定されるリージョンの開始アドレスと終了アドレス、そして各マスタからのリードアクセス権およびライトアクセス権の有無が記述される。第5のリージョンの開始アドレスは0028_0000h、第5のリージョンの終了アドレスは007F_FFFFhである。
【0060】
さらに、管理情報には、不揮発性メモリの構成情報62として、情報処理装置が備える不揮発性メモリの個数、各不揮発性メモリの容量および転送速度等の不揮発性メモリの構成に関する情報が記述される。本実施形態では、不揮発性メモリ13と同じメモリサイズの別の不揮発性メモリがあたかも存在しているかのように不揮発性メモリコントローラ14に認識させるために、構成情報62には、不揮発性メモリの個数が2、第1の不揮発性メモリの容量が4MB、第2の不揮発性メモリの容量が4MB、という情報が記述される。
【0061】
この管理情報を参照することにより、不揮発性メモリコントローラ14は、マスタ11からのメモリアドレスが、8MBの連続するメモリアドレス空間の中の前半の4MBのメモリアドレス空間に属する場合、第1の不揮発性メモリを選択するための第1のチップセレクト信号を発生する。一方、マスタ11からのメモリアドレスが、8MBの連続するメモリアドレス空間の中の後半の4MBのメモリアドレス空間に属する場合には、不揮発性メモリコントローラ14は、第2の不揮発性メモリを選択するための第2のチップセレクト信号を発生する。後半の4MBのメモリアドレス空間に対するアクセスが許可されているマスタはCPU21のみである。したがって、CPU21は、必要に応じて後半の4MBのメモリアドレス空間を使用して不揮発性メモリ13をアクセスすることにより、他のマスタに対応するリージョンまたは管理情報が格納されたリージョンを参照・更新することができる。
【0062】
次に、不揮発性メモリ13の管理情報を更新する際の処理について説明する。
【0063】
CPU21がアクセス可能なBIOSリージョン525に格納されたBIOSは、情報処理装置の起動モードの種類に応じて異なる処理を行う。起動モードの種類には、通常起動モードとメンテナンスモードとがある。
【0064】
通常起動モードの場合、シャドウ(第2の不揮発性メモリ)側に論理的に存在する管理情報および各マスタに対応する情報は保護される。つまり、第2メモリアドレス空間に対するアクセスは禁止される。
【0065】
一方、メンテナンスモードの場合、シャドウに存在する管理情報および各マスタの情報は保護されない。BIOSは、メンテナンスプログラムをロードし、その正当性確認をした上で、メンテナンスプログラムに制御を渡す。メンテナンスプログラムは、第2のメモリアドレス空間に属するメモリアドレスを用いて、管理情報の更新および他の各マスタの情報の更新を行う。
【0066】
このような起動モードの種類に基づいて管理情報等の保護と更新を行う処理について、図8のフローチャートを参照して説明する。
【0067】
情報処理装置が電源オンされた時、CPU21は、まず、BIOSを実行する。そして、CPU21は、起動モードの種類がメンテナンスプログラムを用いて管理情報の更新またはCPU以外の他のマスタの情報(ファームウェア、MACアドレス、等)の更新を行うためのメンテナンスモードであるか否かを判定する(ステップS101)。例えば、起動時にキーボード上の特定のキーが押された場合にはメンテナンスモードであるといった判定を行う。
【0068】
起動モードがメンテナンスモードである場合(ステップS101のYes)、CPU21はメンテナンスプログラムを例えばフレキシブルディスク、USBメモリといった外部記憶装置からメモリ24へロードする(ステップS102)。次に、CPU21は、ロードしたメンテナンスプログラムの正当性を確認するための検証処理を実行する(ステップS103)。この検証処理では、例えば、署名検証などが行われる。メンテナンスプログラムの正当性が確認された場合(ステップS104のYes)、CPU21は、メンテナンスプログラムを実行する(ステップS105)。メンテナンスプログラムは、シャドウ側のメモリアドレス空間(第2のメモリアドレス空間)に属するメモリアドレスを用いて、メモリアクセス要求を発行する。このメモリアクセス要求はフィルタ123,フィルタ153を通過する。アービタ16は、第2のチップセレクト信号を発生すると共に、メモリアクセス要求に含まれるメモリアドレスをメモリバス上に出力する。したがって、メンテナンスプログラムは、管理情報の更新またはCPU以外の他のマスタの情報を更新することができる。
【0069】
起動モードが通常起動モードである場合(ステップS101のNo)、またはメンテナンスプログラムの正当性が確認できなかった場合(ステップS104のNo)、CPU21は、シャドウ側のメモリアドレス空間の使用を禁止することによって、管理情報およびCPU以外の他の各マスタの情報を保護する操作を行う(ステップS106)。ステップS106においては、CPU21は、第2メモリアドレス空間に対するアクセスの禁止を示すアクセス制御情報を、フィルタ12が参照するレジスタに対して設定する。具体的には、CPU21に対応するフィルタ123に対応するレジスタに対して、第2メモリアドレス空間に対するアクセスの禁止を示すアクセス制御情報を設定すればよい。この場合、必ずしも第2メモリアドレス空間全体に対するアクセスを禁止する必要はなく、例えば、シャドウ側のBIOSリージョンに対応するアドレス範囲(0068_0000h〜007F_FFFFh)に対するアクセスは禁止しなくても良い。
【0070】
これにより、管理情報および他のマスタの情報に対するアクセスは禁止され、悪意のあるユーザによって管理情報および他のマスタの情報が参照・更新されることを回避できる。
【0071】
最後に、CPU21は、通常起動時に行われる処理と同様の処理、例えば、オペレーティングシステムをブートする処理を実行する(ステップS107)。
【0072】
以上説明したように、本実施形態によれば、マスタそれぞれに対応する不揮発性メモリ内の記憶領域の独立性を維持でき、且つオーバーライド入力を用いずに、あるマスタから他のマスタの情報または管理情報を必要に応じてアクセスすることができる。さらに、オーバーライド入力を用いずに、ソフトウェアのみで不揮発性メモリ13に格納された管理情報や他のマスタの情報を更新することができる。従来、不揮発性メモリ13の管理領域等を更新するためには、情報処理装置本体から基板を取り外してオーバーライド入力を行うか、BIOS ROMを交換するといった方法がとられていた。本実施形態では、これらの作業を行う必要がなく、ソフトウェアのみで管理情報を更新できるため、不揮発性メモリ13の保守コストを削減することができる。
【0073】
なお、本実施形態では、オーバーライド入力を用いることなく管理情報等に対する書き込み保護を解除することが出来るので、情報処理装置内のシステム基板からオーバーライド入力用のピンを削除することもできる。この場合、不揮発性メモリコントローラ14が内蔵されたLSI,つまりサウスブリッジ23が、BGAタイプのパッケージを有するものであれば、例えば、オーバーライド入力用のテストピンを直接的にグラウンド端子に接続し、テストピンに接続された配線を基板上のアクセス可能領域に導出しないようにしてもよい。
【0074】
また、本実施形態は一つのCPUを含む複数のマスタを備える例について説明したが、一つのCPUとCPU以外の一つのマスタによる構成でもよい。さらに、本実施形態はCPUを具備せず、CPU以外の複数のマスタによる構成でもよい。この場合、複数のマスタのうちいずれか一つのマスタは、第1のメモリアドレス空間において当該マスタに割り当てられるリージョンに加えて、第2のメモリアドレス空間にもアクセスすることができる。つまり、このマスタには、第2のメモリアドレス空間に論理的に設定される全てのリージョンに対するリードアクセス権およびライトアクセス権が与えられる。
【0075】
また本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【0076】
【図1】本発明の一実施形態に係る情報処理装置の構成を示すブロック図。
【図2】通常の情報処理装置の構成を示すブロック図。
【図3】同実施形態に係る情報処理装置の具体的な構成例を示すブロック図。
【図4】不揮発性メモリに設定される通常のリージョンの例を示す図。
【図5】図4に示したリージョンに対応する管理情報の例を示す図。
【図6】同実施形態に係る不揮発性メモリに設定されるリージョンの例を示す図。
【図7】図6に示したリージョンに対応する管理情報の例を示す図。
【図8】同実施形態に係る情報処理装置によって実行される起動処理の手順を示すフローチャート。
【符号の説明】
【0077】
11…マスタ、12…フィルタ、13…不揮発性メモリ、14…不揮発性メモリコントローラ、15…フィルタ、16…アービタ、17…論理和演算回路、21…CPU、24…メモリ。

【特許請求の範囲】
【請求項1】
第1マスタおよび第2マスタと、
第1メモリアドレス空間に割り当てられ、管理情報を格納する第1記憶領域、前記第1マスタによって使用される情報を格納する第2記憶領域、および前記第2マスタによって使用される情報を格納する第3記憶領域を含む不揮発性メモリであって、前記管理情報は、前記第1記憶領域に対する前記第1マスタおよび前記第2マスタの各々からのアクセスを禁止する情報と、前記第2記憶領域に対する前記第1マスタのみからのアクセスを許可する情報と、前記第3記憶領域に対する前記第2マスタのみからのアクセスを許可する情報と、前記第1メモリアドレス空間に後続し且つ前記第1メモリアドレス空間と同じサイズを有する第2メモリアドレス空間に割り当てられた別の不揮発性メモリに対する前記第2マスタのみからのアクセスを許可する情報とを含む、不揮発性メモリと、
前記第1マスタまたは前記第2マスタから発行される、前記第1メモリアドレス空間および前記第2メモリアドレス空間に対するメモリアクセス要求を前記管理情報に基づいてフィルタリングするフィルタリング手段と、
前記フィルタリング手段を通過したメモリアクセス要求によって指定されるメモリアドレスが前記第1メモリアドレス空間内に属する場合、前記不揮発性メモリを選択するための第1のチップセレクト信号を発生すると共に、前記メモリアクセス要求によって指定されるメモリアドレスを、前記不揮発性メモリが接続されたメモリバス上に出力し、前記フィルタリング手段を通過したメモリアクセス要求によって指定されるメモリアドレスが前記第2メモリアドレス空間内に属する場合、前記不揮発性メモリを選択するための第2のチップセレクト信号を発生すると共に前記メモリアクセス要求によって指定されるメモリアドレスを前記メモリバス上に出力するメモリアクセス手段とを具備し、前記第2のマスタが前記第2のメモリアドレス空間を介して前記第1記憶領域または前記第2記憶領域をアクセスできるように、前記第1のチップセレクト信号と前記第2のチップセレクト信号との論理和出力が前記不揮発性メモリのチップセレクト信号入力端子に接続されていることを特徴とする情報処理装置。
【請求項2】
所定のレジスタに設定されるアクセス制御情報に従って、前記第2マスタからの前記第2メモリアドレス空間に対するアクセスを禁止するアクセス制御手段をさらに具備し、
前記第2マスタは中央処理装置(CPU)であり、前記第2マスタは、前記情報処理装置の起動モードがメンテナンスプログラムを用いて前記管理情報の更新または前記第1記憶領域内の情報の更新を行うためのメンテナンスモードであるか否かを判定し、前記起動モードが前記メンテナンスモードではない場合には、前記管理情報および前記第1記憶領域内の情報を保護するために前記第2メモリアドレス空間に対するアクセスの禁止を示すアクセス制御情報を前記レジスタに設定することを特徴とする請求項1記載の情報処理装置。
【請求項3】
前記第2マスタは、前記情報処理装置の起動モードが前記メンテナンスモードである場合、前記メンテナンスプログラムの正当性を確認するための検証処理を実行し、前記メンテナンスプログラムの正当性が確認された場合、前記メンテナンスプログラムを実行し、前記メンテナンスプログラムの正当性が確認されなかった場合、前記管理情報および前記第1記憶領域内の情報を保護するために前記第2メモリアドレス空間に対するアクセスの禁止を示すアクセス制御情報を前記レジスタに設定することを特徴とする請求項2記載の情報処理装置。
【請求項4】
前記メンテナンスプログラムは、前記第2メモリアドレス空間を介して前記不揮発性メモリをアクセスすることによって、前記管理情報の更新または前記第1記憶領域内の情報の更新を行うように構成されていることを特徴とする請求項2記載の情報処理装置。
【請求項5】
マスタと、
中央処理装置と、
第1メモリアドレス空間に割り当てられ、管理情報を格納する第1記憶領域、前記マスタによって使用される情報を格納する第2記憶領域、および前記中央処理装置によって実行される基本入出力プログラム(BIOS)を格納する第3記憶領域を含む不揮発性メモリであって、前記管理情報は、前記第1記憶領域に対する前記マスタおよび前記中央処理装置の各々からのアクセスを禁止する情報と、前記第2記憶領域に対する前記マスタのみからのアクセスを許可する情報と、前記第3記憶領域に対する前記中央処理装置のみからのアクセスを許可する情報と、前記第1メモリアドレス空間に後続し且つ前記第1メモリアドレス空間と同じサイズを有する第2メモリアドレス空間に割り当てられた別の不揮発性メモリに対する前記中央処理装置のみからのアクセスを許可する情報とを含む、不揮発性メモリと、
前記マスタまたは前記中央処理装置から発行される、前記第1メモリアドレス空間および前記第2メモリアドレス空間に対するメモリアクセス要求を所定のレジスタに設定されるアクセス制御情報に基づいてフィルタリングする第1フィルタリング手段と、
前記第1フィルタリング手段を通過したメモリアクセス要求を前記管理情報に基づいてフィルタリングする第2フィルタリング手段と、
前記第2フィルタリング手段を通過したメモリアクセス要求によって指定されるメモリアドレスが前記第1メモリアドレス空間内に属する場合、前記不揮発性メモリを選択するための第1のチップセレクト信号を発生すると共に、前記メモリアクセス要求によって指定されるメモリアドレスを、前記不揮発性メモリが接続されたメモリバス上に出力し、前記フィルタリング手段を通過したメモリアクセス要求によって指定されるメモリアドレスが前記第2メモリアドレス空間内に属する場合、前記不揮発性メモリを選択するための第2のチップセレクト信号を発生すると共に前記メモリアクセス要求によって指定されるメモリアドレスを前記メモリバス上に出力するメモリアクセス手段と、
前記第1のチップセレクト信号と前記第2のチップセレクト信号との論理和出力を前記不揮発性メモリのチップセレクト信号入力端子に出力する論理和演算回路と、
前記情報処理装置の起動モードがメンテナンスプログラムを用いて前記管理情報の更新または前記第1記憶領域内の情報の更新を行うためのメンテナンスモードであるか否かを判定し、前記起動モードが前記メンテナンスモードではない場合には、前記管理情報および前記第1記憶領域内の情報を保護するために前記第2メモリアドレス空間に対するアクセスの禁止を示すアクセス制御情報を前記レジスタに設定し、前記起動モードが前記メンテナンスモードである場合、前記アクセス制御情報を前記レジスタに設定せずに前記メンテナンスプログラムを前記中央処理装置によって実行する制御手段とを具備することを特徴とする情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2010−9454(P2010−9454A)
【公開日】平成22年1月14日(2010.1.14)
【国際特許分類】
【出願番号】特願2008−170170(P2008−170170)
【出願日】平成20年6月30日(2008.6.30)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】