以下に、本発明にかかるプロセッサ、メモリ、コンピュータシステムおよび認証方法の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
(実施の形態1)
図1は、実施の形態1にかかるコンピュータシステム1の全体構成を示す図である。コンピュータシステム1は、プロセッサ10と、第1メモリ20aと、第2メモリ20bと、電源ユニット50と、バス40とを備えている。
プロセッサ10は、記憶制御装置11と、演算装置12と、制御装置13と、起動停止制御装置14と、メモリ認証用情報生成部15と、認証用情報記憶部16とを有している。記憶制御装置11は、第1メモリ20aおよび第2メモリ20bからプログラムやデータを読み込む。また、第1メモリ20aおよび第2メモリ20bにデータを書き込む。演算装置12は、一時的にデータを記憶するレジスタを有している。演算装置12は、第1メモリ20aおよび第2メモリ20bからデータを取得し、レジスタを利用してデータの加工を行う。制御装置13は、演算装置12におけるプログラムの実行を管理する。
起動停止制御装置14は、プロセッサ10の動作開始時および動作停止時の処理を行う。具体的には、メモリ認証用情報生成部15および認証用情報記憶部16を管理し、動作開始時には第1メモリ20aおよび第2メモリ20bの認証を行う。また動作停止時には第1メモリ20aを認証するための第1メモリ認証用情報、および第2メモリ20bを認証するための第2メモリ認証用情報の生成を行う。また、バス40を介して、第1メモリ20aとの間および第2メモリ20bとの間で情報を送受信する。
このように、起動停止制御装置14は、メモリ認証用情報取得手段、メモリ認証手段、アクセス制御手段、および転送手段として機能する。
メモリ認証用情報生成部15は、起動停止制御装置14からの指示により、第1メモリ20aを認証するための第1メモリ認証用情報、および第2メモリ20bを認証するための第2メモリ認証用情報を生成する。認証用情報記憶部16はプロセッサ側認証用情報記憶表17を有している。プロセッサ側認証用情報記憶表17には、第1メモリ20aから取得した第1プロセッサ認証用情報および第2メモリ20bから取得した第2プロセッサ認証用情報が記憶される。認証用情報記憶表17にはまた、メモリ認証用情報生成部15が生成した第1メモリ認証用情報および第2メモリ認証用情報も記憶される。ここで、第1プロセッサ認証用情報とは、第1メモリ20aがプロセッサ10を認証するための情報である。第2プロセッサ認証用情報とは、第2メモリ20bがプロセッサ10を認証するための情報である。また、第1メモリ認証用情報とは、プロセッサ10が第1メモリ20aを認証するための情報である。第2メモリ認証用情報とは、プロセッサ10が第2メモリ20bを認証するための情報である。
なお、第1メモリ認証用情報、第2メモリ認証用情報、第1プロセッサ認証用情報および第2プロセッサ認証用情報は、プロセッサ10と第1メモリ20aの間またはプロセッサ10と第2メモリ20bの間で相互認証するための秘密情報である。したがって、プロセッサ10、第1メモリ20aおよび第2メモリ20b以外は、知り得ない情報である必要がある。
認証用情報記憶部16は、不揮発性の記憶素子である。したがって、電力供給が停止した場合であっても、認証用情報記憶部16に記憶されているデータは消去されずに保持される。不揮発性記憶素子としては、例えばEEPROMやフラッシュメモリなどがある。なお、不揮発性記憶素子であればよく、その種類は本実施の形態に限定されるものではない。
プロセッサ10の各部は一体に形成されている。具体的には、プロセッサ10の各部は1チップに搭載されている。また、他の例としては、プロセッサ10の各部は、1パッケージ化されている。このように、プロセッサ10の各部が一体に形成されているとは、物理的に一体に形成されていることを意味する。仮にプロセッサ10の各部が分離された場合には、各部が機能しなくなるように形成されているのが好ましい。
第1メモリ20aは、第1不揮発性記憶素子21aと、第1起動停止制御装置24aと、第1プロセッサ認証用情報生成部25aと、第1認証用情報記憶部26aとを有している。
第1不揮発性記憶素子21aは、高速のメモリである。具体的には、MRAM(Magnetic RAM)、FeRAM(Ferroelectric RAM)、PRAM(Phase−Change RAM)などである。したがって、電力供給が停止した場合であっても、第1不揮発性記憶素子21aに記憶されているデータは消去されずに保持される。したがって、第1不揮発性記憶素子21aに電力停止時の状態を記憶させておくことができる。これにより、電力供給開始時には、電力停止時の状態から動作を再開することができる。
第1不揮発性記憶素子21aは、バス40でプロセッサ10と接続されている。第1起動停止制御装置24aは、第1メモリ20aの動作開始時および動作停止時の処理を行う。具体的には、第1プロセッサ認証用情報生成部25aおよび第1認証用情報記憶部26aを管理し、動作開始時にはプロセッサ10の認証を行い、また動作停止時にはプロセッサ10の認証のためのプロセッサ認証用情報生成を行う。また、バス40を介してプロセッサ10との間で情報を送受信する。
第1プロセッサ認証用情報生成部25aは、第1起動停止制御装置24aからの指示によりプロセッサ10を認証するための第1プロセッサ認証用情報を生成する。第1認証用情報記憶部26aは、第1プロセッサ認証用情報生成部25aが生成した第1プロセッサ認証用情報を記憶する。第1プロセッサ認証用情報生成部25aはまた、第1メモリ認証用情報を記憶する。第1メモリ認証用情報は、第1起動停止制御装置24aがプロセッサ10から取得する。第1認証用情報記憶部26aは、認証用情報記憶部16と同様不揮発性の記憶素子である。プロセッサ10と同様、第1メモリ20aの各部は一体に形成されている。
第2メモリ20bは、第2不揮発性記憶素子21bと、第2起動停止制御装置24bと、第2プロセッサ認証用情報生成部25bと、第2認証用情報記憶部26bとを有している。各部の機能構成は、第1メモリ20aの各部の機能構成と同様である。
バス40上には、記憶素子を指定する「アドレス」、指定したアドレスに対応する「データ」、読み書きを指示する「コントロール」の3種類の信号が流れる。これらの信号は、具体的には、複数の信号線を介して流れる。
電源ユニット50は、電源51と、電源制御装置52と、蓄電装置53とを有している。蓄電装置53は、電源51から供給される電力を蓄える。なお、蓄電装置53は、プロセッサ10、第1メモリ20aおよび第2メモリ20bが停止処理を行うのに十分な時間だけプロセッサ10、第1メモリ20aおよび第2メモリ20bに電力を供給するのに十分な容量を有している。なお、停止処理については後述する。また、電源制御装置52は、電源51および蓄電装置53を制御する。
コンピュータシステム1は、これ以外にもさらに図示せぬ各種の入出力装置を備えている。入出力装置には、例えば、第1メモリ20a上に展開されている映像データをディスプレイ装置に表示するビデオプロセッサなどがある。
図2は、プロセッサ側認証用情報記憶表17のデータ構成を模式的に示す図である。このように、プロセッサ側認証用情報記憶表17は、第1メモリ20aおよび第2メモリ20bを識別するメモリ識別子「メモリ01」,「メモリ02」と、各メモリ20a,20bに記憶されているプロセッサ認証用情報の各メモリ20a,20bそれぞれにおける格納場所を示すプロセッサ認証用情報格納場所情報「X」,「Y」と、各メモリ20a,20bそれぞれが前記プロセッサ認証用情報格納場所に記憶している、プロセッサ10を認証するために使用するプロセッサ認証用情報「Key1」,「Key2」と、メモリ認証用情報生成部15が生成した、第1メモリ20aを認証するための第1メモリ認証用情報「Key3」,第2メモリ20bを認証するための第2メモリ認証用情報「Key4」とを対応付けて記憶している。
プロセッサ認証用情報格納場所情報は、具体的には、各メモリ20a,20bそれぞれが保持している第1プロセッサ認証用情報および第2プロセッサ認証用情報にアクセスするためのアドレスである。
ここで、アドレスは、各不揮発性記憶素子21a,21bの内部の実際のアドレスであってもよく、また他の例としては、各メモリ20a,20bにアクセスするための特別なアドレスであってもよい。このように、各プロセッサ認証用情報の格納場所を特定できる情報であればよく、その内容は実施の形態に限定されるものではない。
また、プロセッサ側認証用情報記憶表17は、第1プロセッサ認証用情報「Key1」および第2プロセッサ認証用情報「Key2」を記憶しているが、これにかえてプロセッサ側認証用情報記憶表17は、認証用情報記憶部16における各プロセッサ認証用情報の格納場所を示す情報のみを記憶してもよい。同様に、プロセッサ側認証用情報記憶表17は、第1メモリ認証用情報「Key3」および第2メモリ認証用情報「Key4」を記憶しているが、これにかえてプロセッサ側認証用情報記憶表17は、認証用情報記憶部16における各メモリ認証用情報の格納場所を示す情報のみを記憶してもよい。
プロセッサ側認証用情報記憶表17に保持される情報のうち、メモリ識別子およびプロセッサ認証用情報格納場所情報は、システムの初回起動時にシステム構成を検査して設定することができる。
しかし、不正アクセスによる書き換え防止等のセキュリティーの観点からは、メモリ識別子およびプロセッサ認証用情報格納場所情報は、システム製造時や出荷時に予め設定された後は、書き換え不可になっていることが望ましい。また、プロセッサ認証用情報と同様に、プロセッサ側認証用情報記憶表17も不揮発性記憶素子に記憶させることが望ましい。
図3は、実施の形態1にかかるコンピュータシステム1において、電力供給が停止した場合に実行される停止処理を示すフローチャートである。
電源制御装置52が電源切断、すなわち電源ユニット50からの電力供給の停止を検出すると(ステップS100)、蓄電装置53に蓄えている電気をプロセッサ10、第1メモリ20aおよび第2メモリ20bに供給する(ステップS101)。これにより、プロセッサ10、第1メモリ20aおよび第2メモリ20bにおける動作を継続させる。さらに、電源制御装置52は、起動停止制御装置14、第1起動停止制御装置24aおよび第2起動停止制御装置24bに対し、電力供給停止情報を送る(ステップS102)。
起動停止制御装置14、第1起動停止制御装置24aおよび第2起動停止制御装置24bは、電源制御装置52から電力供給停止情報を受け付けると、電力供給が停止したことを認識し、電力供給停止情報を受け付けたときに進行していた通常動作を停止させる(ステップS110,ステップS120,ステップS130)。
そして、次回電源が入ったときに、電力供給停止情報を受け付けたときと同じ状態から通常動作を再開できる状態、すなわち安定した状態になるまで待機する(ステップS111,ステップS121,ステップS131)。
例えば、メモリアクセスサイクルを実行している最中であった場合には、そのサイクルが完了するまで待機する。また例えば、プロセッサのパイプラインの途中に入っている命令を実行している最中であった場合には、当該命令が完了するまで待機する。
さらに、プロセッサ10が有するレジスタやキャッシュメモリなどの記憶手段が揮発性記憶素子である場合には、レジスタやキャッシュメモリなどの内部状態を第1メモリ20aまたは第2メモリ20bに退避させ、次回の動作開始に備える。
プロセッサ10、第1メモリ20aおよび第2メモリ20bが通常動作を停止し、安定な状態になると、次に、メモリ認証用情報生成部15は、起動停止制御装置14からの指示により、第1メモリ認証用情報および第2メモリ認証用情報を新たに生成する(ステップS112)。第1プロセッサ認証用情報生成部25aは、第1起動停止制御装置24aからの指示により第1プロセッサ認証用情報を新たに生成する(ステップS122)。
同様に、第2プロセッサ認証用情報生成部25bは、第2起動停止制御装置24bからの指示により第2プロセッサ認証用情報を新たに生成する(ステップS132)。
次に、認証用情報記憶部16は、メモリ認証用情報生成部15が生成した第1メモリ認証用情報および第2メモリ認証用情報を記憶する(ステップS113)。具体的には、第1メモリ認証用情報を、第1メモリ20aを示すメモリ識別子「メモリ01」に対応付けて認証用情報記憶部16のプロセッサ側認証用情報記憶表17に記憶する。すなわち、第1メモリ20aの識別子「メモリ01」で識別されるエントリのメモリ認証用情報の欄に書き込む。
また、認証用情報記憶部16は、メモリ認証用情報静西部15が生成した第2メモリ認証用情報を、第2メモリ20bを示すメモリ識別子「メモリ02」に対応付けて認証用情報記憶部16のプロセッサ側認証用情報記憶表17に記憶する。すなわち、第2メモリ20bの識別子「メモリ02」で識別されるエントリのメモリ認証用情報の欄に書き込む。第1認証用情報記憶部26aは、第1プロセッサ認証用情報生成部25aが生成した第1プロセッサ認証用情報を記憶する(ステップS123)。第2認証用情報記憶部26bは、第2プロセッサ認証用情報生成部25bが生成した第2プロセッサ認証用情報を記憶する(ステップS133)。
次に、プロセッサ10と第1メモリ20aの間で第1プロセッサ認証用情報および第1メモリ認証用情報を共有し、さらにプロセッサ10と第2メモリ20bの間で第2プロセッサ認証用情報および第2メモリ認証用情報を共有する(ステップS114,ステップS124,ステップS134)。
具体的には、起動停止制御装置14は、認証用情報記憶部16のプロセッサ側認証用情報記憶表17に第1メモリ20aのメモリ識別子「メモリ01」に対応付けられて記憶されている第1メモリ認証用情報「Key3」を、バス40を介して第1起動停止制御装置24aに送る。同様に、起動停止制御装置14は、認証用情報記憶部16のプロセッサ側認証用情報記憶表17に第2メモリ20bのメモリ識別子「メモリ02」に対応付けられて記憶されている第2メモリ認証用情報「Key4」を、バス40を介して第2起動停止制御装置24bに送る。第1起動停止制御装置24aは、起動停止制御装置14より取得した第1メモリ認証用情報を第1認証用情報記憶部26aに記憶する。第2起動停止制御装置24bは、起動停止制御装置14より取得した第2メモリ認証用情報を第2認証用情報記憶部26bに記憶する。
第1起動停止制御装置24aは、第1認証用情報記憶部26aに記憶されている第1プロセッサ認証用情報を、バス40を介して起動停止制御装置14に送る。起動停止制御装置14は、第1起動停止制御装置24aより取得した第1プロセッサ認証用情報を、第1メモリ20aを示すメモリ識別子「メモリ01」に対応付けて認証用情報記憶部16のプロセッサ側認証用情報記憶表17に記憶する。
また、第2起動停止制御装置24bは、第2認証用情報記憶部26bに記憶されている第2プロセッサ認証用情報を、バス40を介して起動停止制御装置14に送る。起動停止制御装置14は、第2起動停止制御装置24bより取得した第2プロセッサ認証用情報を、第2メモリ20bを示すメモリ識別子「メモリ02」に対応付けて認証用情報記憶部16のプロセッサ側認証用情報記憶表17に記憶する。
すなわち、第1メモリ20aから取得した第1プロセッサ認証用情報を、プロセッサ側認証用情報記憶表17の第1メモリ20aの識別子「メモリ01」で識別されるエントリのプロセッサ認証用情報の欄に書き込む。また、第2メモリ20bから取得した第2プロセッサ認証用情報を、プロセッサ側認証用情報記憶表17の第2メモリ20bの識別子「メモリ02」で識別されるエントリのプロセッサ認証用情報の欄に書き込む。
以上の処理により、プロセッサ10と第1メモリ20aの間で第1プロセッサ認証用情報および第1メモリ認証用情報が共有され、プロセッサ10と第2メモリ20bの間で第2プロセッサ認証用情報および第2メモリ認証用情報が共有される。次に、プロセッサ10、第1メモリ20aおよび第2メモリ20bは、動作を停止する(ステップS115,ステップS125,ステップS135)。以上で停止処理が完了する。
なお、第1プロセッサ認証用情報、第2プロセッサ認証用情報、第1メモリ認証用情報および第2メモリ認証用情報の転送には、安全な通信手段を用いる。不正な信号のモニターなどにより外部に漏れるのを防止する観点である。具体的には、認証用情報を暗号化して転送してもよい。
また、他の例としては、秘密鍵を利用してもよい。すなわち、プロセッサ10と第1メモリ20aとの間およびプロセッサ10と第2メモリ20bとの間で、あらかじめ秘密鍵を共有する。そして、共有している秘密鍵を利用して認証用情報を暗号化して転送する。
また他の例としては、公開鍵暗号を利用してもよい。すなわち、プロセッサ10と第1メモリ20aのそれぞれが自分の秘密鍵と相手の公開鍵を保持する。そして、認証用情報を相手の公開鍵で暗号化して転送する。また、プロセッサ10と第2メモリ20bのそれぞれが自分の秘密鍵と相手の公開鍵を保持する。そして、認証用情報を相手の公開鍵で暗号化して転送する。
図4は、実施の形態1にかかるコンピュータシステム1において、電力供給が停止した後再び電力供給が開始した場合に行う認証処理を示すフローチャートである。プロセッサ10は、電力供給が開始されると、電力供給停止処理において第1メモリ20aと共有した第1メモリ認証用情報および第1プロセッサ認証用情報を、バス40を介して交換する(ステップS210,ステップS220)。
さらに、プロセッサ10は、電力供給が開始されると、電力供給停止処理において第2メモリ20bと共有した第2メモリ認証用情報および第2プロセッサ認証用情報を、バス40を介して交換する(ステップS210,ステップS230)。
具体的には、起動停止制御装置14は、プロセッサ側認証用情報記憶表17において第1メモリ20aの識別子「メモリ01」に対応付けて記憶されているプロセッサ認証用情報、すなわち第1プロセッサ認証用情報を、バス40を介して第1起動停止制御装置24aに送る。また、プロセッサ側認証用情報記憶表17において第2メモリ20bの識別子「メモリ02」に対応付けて記憶されているプロセッサ認証用情報、すなわち第2プロセッサ認証用情報を、バス40を介して第2起動停止制御装置24bに送る。
一方、第1起動停止制御装置24aは、第1認証用情報記憶部26aに記憶しておいた第1メモリ認証用情報をバス40を介して起動停止制御装置14に送る。第2起動停止制御装置24bは、第2認証用情報記憶部26bに記憶しておいた第2メモリ認証用情報をバス40を介して起動停止制御装置14に送る。なお、この場合も暗号化など安全な手段を用いて第1メモリ認証用情報、第2メモリ認証用情報、第1プロセッサ認証用情報および第2プロセッサ認証用情報を転送する。
次に、起動停止制御装置14は、第1メモリ20aおよび第2メモリ20bの認証を行う。具体的には、まず第1起動停止制御装置24aから受け取った第1メモリ認証用情報と、メモリ認証用情報生成部15が生成し、認証用情報記憶部16のプロセッサ側認証用情報記憶表17に第1メモリ20aのメモリ識別子「メモリ01」と対応付けられて記憶されている第1メモリ認証用情報とを比較する(ステップS211)。2つの第1メモリ認証用情報が一致した場合には、第1メモリ20aの認証に成功したと判断する(ステップS212,Yes)。
さらに、起動停止制御装置14は、第2起動停止制御装置24bから受け取った第2メモリ認証用情報と、メモリ認証用情報生成部15が生成し、認証用情報記憶部16のプロセッサ側認証用情報記憶表17に第2メモリ20bのメモリ識別子「メモリ02」と対応付けられて記憶されている第2メモリ認証用情報とを比較する(ステップS211)。
2つの第2メモリ認証用情報が一致した場合には、第2メモリ20bの認証に成功したと判断する(ステップS212,Yes)。以上のように、第1メモリ20aおよび第2メモリ20bの認証に成功できた場合には、通常動作を再開する(ステップS213)。すなわち、プロセッサ10から第1メモリ20aおよび第2メモリ20bへのアクセスが許可され、第1メモリ20aおよび第2メモリ20bからのデータの読み出しおよび書込みが開始される。
一方、第1起動停止制御装置24aから取得した第1メモリ認証用情報と認証用情報記憶部16のプロセッサ側認証用情報記憶表17に第1メモリ20aのメモリ識別子「メモリ01」と対応付けられて記憶されている第1メモリ認証用情報が一致しない場合には、第1メモリ20aの認証に失敗したと判断し(ステップS212,No)、動作を停止する(ステップS214)。
2つのメモリ認証用情報が一致しない場合、第1メモリ20aは電力停止前とは異なる状態になっている。すなわち、悪意の第三者により不正にアクセスされているなど不正行為が行われている可能性がある。または、他のメモリ装置に取り替えられている可能性がある。このような場合には、プロセッサ10は動作を停止する。すなわち、第1メモリ20aへのアクセスを行わない。これにより、第1メモリ20aを介したプロセッサ10への不正な侵入等の不正行為を防止することができる。
同様に、第2起動停止制御装置24bから取得した第2メモリ認証用情報と、認証用情報記憶部16のプロセッサ側認証用情報記憶表17に第2メモリ20bのメモリ識別子「メモリ02」と対応付けられて記憶されている第2メモリ認証用情報が一致しない場合には、第2メモリ20bの認証に失敗したと判断し(ステップS212,No)、動作を停止する(ステップS214)。このように、第2メモリ20bが電力停止前と異なる状態になっている場合には、プロセッサ10は動作を停止することにより、第2メモリ20bを介したプロセッサ10への不正行為を防止することができる。
第1メモリ20aの第1起動停止制御装置24aは、認証用情報を交換した後、起動停止制御装置14から受け取った第1プロセッサ認証用情報と、第1プロセッサ認証用情報生成部25aが生成し、第1認証用情報記憶部26aに記憶されている第1プロセッサ認証用情報とを比較する(ステップS221)。
2つの第1プロセッサ認証用情報が一致した場合には、プロセッサ10の認証に成功したと判断し(ステップS222,Yes)、通常動作を再開する(ステップS223)。すなわち、プロセッサ10からのアクセスが許可され、プロセッサ10からのデータの読み出しおよび書込みが開始される。
一方、2つの第1プロセッサ認証用情報が一致しない場合には、プロセッサ10の認証に失敗したと判断し(ステップS222,No)、動作を停止する(ステップS224)。以上で、認証処理が完了する。
第2メモリ20bの第2起動停止制御装置24bは、認証用情報を交換した後、起動停止制御装置14から受け取った第2プロセッサ認証用情報と、第2プロセッサ認証用情報生成部25bが生成し、第2認証用情報記憶部26bに記憶されている第2プロセッサ認証用情報とを比較する(ステップS231)。
2つの第2プロセッサ認証用情報が一致した場合には、プロセッサ10の認証に成功したと判断し(ステップS232,Yes)、通常動作を再開する(ステップS233)。すなわち、プロセッサ10からのアクセスが許可され、プロセッサ10からのデータの読み出しおよび書込みが開始される。
一方、2つの第2プロセッサ認証用情報が一致しない場合には、プロセッサ10の認証に失敗したと判断し(ステップS232,No)、動作を停止する(ステップS234)。以上で、認証処理が完了する。
このように、認証処理においては、プロセッサ10が、第1メモリ20aの認証および第2メモリ20bの認証に成功し、さらに第1メモリ20aおよび第2メモリ20bがそれぞれプロセッサ10の認証に成功した場合に、プロセッサ10から第1メモリ20aへのアクセスおよびプロセッサ10から第2メモリ20bへのアクセスが許可される。
2つの第1プロセッサ認証用情報が一致しない場合、プロセッサ10は電力停止前とは異なる状態になっている。すなわち、悪意の第三者により不正にアクセスされているなど不正行為が行われている可能性がある。または、他のプロセッサに取り替えられている可能性がある。
このような場合には、第1メモリ20aは、動作を停止する。すなわち、以後プロセッサ10からのアクセスを受け付けない。これにより、プロセッサ10を介した第1メモリ20aへの不正な侵入等の不正行為を防止することができる。
同様に2つの第2プロセッサ認証用情報が一致しない場合には、第2メモリ20bは、動作を停止する。すなわち、以後プロセッサ10からのアクセスを受け付けない。これにより、プロセッサ10を介した第2メモリ20bへの不正な侵入等の不正行為を防止することができる。
以上、本発明を実施の形態を用いて説明したが、上記実施の形態に多様な変更または改良を加えることができる。
そうした第1の変更例としては、本実施の形態においては、プロセッサ10において生成された情報を第1メモリ認証用情報とし、第1メモリ20aにおいて生成された情報を第1プロセッサ認証用情報としたが、これらは、プロセッサ10および第1メモリ20aそれぞれが互いを認証するための情報として利用されればよい。
プロセッサ10と第2メモリ20bとの間の認証においても同様であり、プロセッサ10において生成された情報および第2メモリ20bにおいて生成された情報は、それぞれ互いを認証するための情報として利用されればよい。
以下、第1の変更例にかかるプロセッサ10と第1メモリ20aとの間の認証について説明する。なお、プロセッサ10と第2メモリ20bとの間の認証についても同様である。
例えば、第1メモリ20aは第1メモリ認証用情報を利用して、すなわちプロセッサ10において生成された情報を利用してプロセッサ10の認証を行ってもよい。また、プロセッサ10は、第1プロセッサ認証用情報を利用して、すなわちメモリにおいて生成された情報を利用して第1メモリ20aの認証を行ってもよい。
また、他の例としては、プロセッサ10は、第1プロセッサ認証用情報と第1メモリ認証用情報の両方を利用して第1メモリ20aの認証を行ってもよい。同様に、第1メモリ20aは、第1プロセッサ認証用情報と第1メモリ認証用情報の両方を利用してプロセッサ10の認証を行ってもよい。
さらに、プロセッサ10および第1メモリ20aのうちいずれか一方のみがプロセッサ10および第1メモリ20aの間での認証のための情報を生成し、この情報によりプロセッサ10と第1メモリ20aの間の認証を行うこととしてもよい。
図5は、プロセッサ10のみが認証用情報を生成する場合のコンピュータシステム1の全体構成を示す図である。この場合には、プロセッサ10のメモリ認証用情報生成部15が生成した第1メモリ認証用情報および第2メモリ認証用情報を認証用情報記憶部16のプロセッサ側認証用情報記憶表17に記憶する。また、第1メモリ20aの第1起動停止制御装置24aは、起動停止制御装置14から取得した第1メモリ認証用情報を第1認証用情報記憶部26aに記憶する。
そして、電力供給開始時には、プロセッサ10は、第1認証用情報記憶部26aに記憶されている第1メモリ認証用情報を取得する。認証に成功した場合に通常動作を開始する。同様に、第1メモリ20aは、認証用情報記憶部16のプロセッサ側認証用情報記憶表17に記憶されている第1メモリ認証用情報を取得する。そして、認証に成功した場合に通常動作を開始する。
また他の例としては、第1メモリ20aのみがプロセッサ10と第1メモリ20aの間で認証を行うための情報を生成することとしてもよい。この場合、第1メモリ20aが生成した認証用情報により、第1メモリ20aとプロセッサ10の間の認証を行う。具体的には、第1メモリ20aは、第1メモリ20aが生成した認証用情報を利用してプロセッサ10の認証を行う。また、プロセッサ10も、第1メモリ20aが生成した認証用情報を利用して第1メモリ20aの認証を行う。
なお、プロセッサ10および第1メモリ20aの双方が認証用情報を生成する場合であっても、プロセッサ10および第1メモリ20aのうちいずれか一方のみが認証用情報を生成する場合であっても生成した認証用情報を相手装置に送り双方で認証用情報を共有しておく。
また、第2の変更例としては、本実施の形態においては、起動停止制御装置14がプロセッサ10に接続されているメモリ、すなわち第1メモリ20aを認証し、かつ第1起動停止制御装置24aが第1メモリ20aに接続されているプロセッサ10を認証するが、これにかえていずれか一方のみが認証を行うこととしてもよい。同様に、プロセッサ10と第2メモリ20bとの間の認証においても、プロセッサ10および第2メモリ20bのいずれか一方のみが認証を行うこととしてもよい。
例えば、起動停止制御装置14が第1メモリ20aの認証を行うのみであってもよい。この場合、起動停止制御装置14は、認証用情報記憶部16のプロセッサ側認証用情報記憶表17に記憶されている第1メモリ認証用情報と第1認証用情報記憶部26aに記憶されている第1メモリ認証用情報とを比較して、第1メモリ20aを認証するが、第1メモリ20aは、プロセッサ10の認証を行わなくともよい。
すなわち、第1起動停止制御装置24aは、第1認証用情報記憶部26aに記憶されている第1プロセッサ認証用情報と認証用情報記憶部16のプロセッサ側認証用情報記憶表17に記憶されている第1プロセッサ認証用情報との比較処理を行わなくともよい。そして、起動停止制御装置14が第1メモリ20aの認証に成功した場合には、プロセッサ10だけでなく、第1メモリ20aも通常動作を開始する。
また、第3の変更例としては、本実施の形態においては、第1プロセッサ認証用情報、第2プロセッサ認証用情報、第1メモリ認証用情報および第2メモリ認証用情報の転送は、バス40を介して行われるが、これにかえて、コンピュータシステム1は、認証用情報転送専用の信号線をさらに備えてもよい。この場合、認証用情報転送専用の信号線を介して第1プロセッサ認証用情報、第2プロセッサ認証用情報、第1メモリ認証用情報および第2メモリ認証用情報を転送してもよい。
また、第4の変更例としては、本実施の形態にかかるコンピュータシステム1においては、第1メモリ20aにおいては、第1プロセッサ認証用情報および第1メモリ認証用情報は第1認証用情報記憶部26aに記憶されていたが、これにかえて、第1メモリ20aを構成する第1不揮発性記憶素子21aの一部の領域に記憶されてもよい。
同様に、第2メモリ20bにおいては、第2プロセッサ認証用情報および第2メモリ認証用情報は、第2メモリ20bを構成する第2不揮発性記憶素子21bの一部の領域に記憶されてもよい。
また、第5の変更例としては、本実施の形態においては、コンピュータシステム1は、2つのメモリ20a,20bを備えたが、メモリの数はこれに限定されるものではなく、3つ以上のメモリを備えてもよい。
また、第6の変更例としては、実施の形態1にかかるコンピュータシステム1においては、プロセッサ10はまずすべてのメモリ20a,20bとの間で認証用情報を交換し、すべての交換処理が完了した後に、認証処理を行うこととしたが、これにかえて、認証用情報の交換を行いながら同時に認証処理を行うこととしてもよい。すなわち、所定のメモリとの間で認証用情報の交換が完了した場合には、他のメモリとの間での認証用情報の交換が完了したか否かにかかわらず、交換が完了したメモリとの間の認証処理を開始してもよい。これにより、多くのメモリを搭載した場合には、より早いタイミングにおいて認証に失敗したことを検出することができる。
また、第7の変更例としては、実施の形態1にかかるコンピュータシステム1においては、メモリ認証用情報生成部15が生成した第1メモリ認証用情報を第1メモリ20aとの間で共有し、またメモリ認証用情報生成部15が生成した第2メモリ認証用情報を第2メモリ20bとの間で共有し、プロセッサ10は、この第1メモリ認証用情報に基づいて第1メモリ20aの認証を行い、第2メモリ認証用情報に基づいて第2メモリ20bの認証を行ったが、これにかえて、プロセッサ10は、第1メモリ20aの認証および第2メモリ20bの認証に同一のメモリ認証用情報を使用してもよい。
この場合、電力供給停止時にプロセッサ10においては、起動停止制御装置14からの指示により、メモリ認証用情報生成部15は、第1メモリ20aおよび第2メモリ20bを認証するための1つのメモリ認証用情報のみを生成する。そして、このメモリ認証用情報を認証用情報記憶部16のプロセッサ側認証用情報記憶表17に記憶する。
すなわち、プロセッサ側認証用情報記憶表17の、第1メモリ20aの識別子「メモリ01」に対応付けられたエントリのメモリ認証用情報の欄に記憶されるメモリ認証用情報「Key3」と、第2メモリ20bの識別子「メモリ02」に対応付けられたエントリのメモリ認証用情報の欄に記憶されるメモリ認証用情報「Key4」は同一の内容となる。そして、起動停止制御装置14は、電力供給停止時における認証情報交換処理において、第1起動停止制御装置24aと第2起動停止制御装置24bに上記メモリ認証用情報を転送する。
このように、複数のメモリを同一のメモリ認証用情報を用いて認証することにより、搭載するメモリの数が増加しても、不正アクセスを防止するという目的を達成しながら、生成するメモリ認証用情報の数を削減することができる。これにより、メモリ認証用情報生成にかかる時間を削減することができる。
また、プロセッサ側認証用情報記憶表17において、メモリ認証用情報の欄をメモリ認証用情報の格納場所を示す情報のみを記憶するように構成すれば、全てのメモリのエントリにおけるメモリ認証用情報の欄は同じ格納場所を指し示すことになり、メモリ認証用情報を記憶するために必要な記憶領域を削減することができる。
なお、さらに本例においては、各メモリに対するメモリ認証用情報を識別する必要はないので、上述のように第1メモリ20aの識別子「メモリ01」および第2メモリ20bの識別子「メモリ02」それぞれに同一のメモリ認証用情報を対応付けて保持するのにかえて、単にメモリ認証用情報を保持することとしてもよい。
(実施の形態2)
図6は、実施の形態2にかかるコンピュータシステム1の全体構成を示す図である。実施の形態2にかかるコンピュータシステム1においては、プロセッサ10と、第1不揮発性記憶素子21a、第2不揮発性記憶素子21b、およびバス40は、いずれも同数のデータ線を備えている。本実施の形態においては、いずれもN本のデータ線を備えている。すなわち、プロセッサ10が備えるデータ線は、バス40が備えるデータ線と1対1で接続している。第1不揮発性記憶素子21aが備えるデータ線は、バス40が備えるデータ線と1対1で接続している。第2不揮発性記憶素子21bが備えるデータ線は、バス40が備えるデータ線と1対1で接続している。すなわち、プロセッサ10のデータ幅、バス40のデータ幅、第1不揮発性記憶素子21aのデータ幅、そして第2不揮発性記憶素子21bのデータ幅は、すべて等しく、Nビットである。
図7は、実施の形態2にかかるコンピュータシステム1におけるアドレスと各不揮発性記憶素子21a,21bの対応関係を示すアドレス空間600を示す図である。アドレス空間600は、実施の形態1のコンピュータシステム1における各メモリ20a,20b、およびバス40の接続方式から決定されている。
第1不揮発性記憶素子21aは、アドレス空間600のアドレスA〜アドレスBに対応している。また、第2不揮発性記憶素子21bは、アドレス空間600のアドレスC〜アドレスDに対応している。つまり、プロセッサ10がアドレスA〜アドレスBに対する読み書きを行うと、その読み書きは第1不揮発性記憶素子21aに対する読み書きとなる。同様に、プロセッサ10が、アドレスC〜アドレスDに対する読み書きを行うと、その読み書きは第2不揮発性記憶素子21bに対する読み書きとなる。
図8は、実施の形態2にかかるコンピュータシステム1において、プロセッサ10の認証用情報記憶部16が有するプロセッサ側認証用情報記憶表17のデータ構成を示す図である。実施の形態2にかかるプロセッサ側認証用情報記憶表17は、実施の形態1にかかるプロセッサ側認証用情報記憶表17に記憶されているデータに加えて、さらにプロセッサ認証用情報長、メモリ認証用情報長およびバス情報をメモリ識別子に対応付けて記憶している。
ここで、プロセッサ認証用情報長とは、プロセッサ認証用情報のデータ長である。本実施の形態にかかる第1プロセッサ認証用情報および第2プロセッサ認証用情報のデータ長は、ともにNビットである。いずれもデータ幅と等しい。
同様に、メモリ認証用情報長とは、メモリ認証用情報のデータ長である。本実施の形態にかかる第1メモリ認証用情報および第2メモリ認証用情報のデータ長は、ともにNビットである。いずれもデータ幅と等しい。
また、バス情報は、データ幅と、接続情報とを含んでいる。データ幅とは、メモリ識別子で識別されるメモリとバスが接続しているデータ線の本数である。本実施の形態においては、第1メモリ20aおよび第2メモリ20bはいずれもデータ幅はNビットであるので、データ幅にはNが記憶されている。また、接続情報とは、メモリと接続しているデータ線を識別する識別情報である。
本実施の形態においては、プロセッサ10は、第1メモリ20aおよび第2メモリ20bのいずれともN本のデータ線すべてにより接続している。したがって、第1メモリ20aおよび第2メモリ20bともに接続情報にはNが記憶されている。
なお、本実施の形態では、使用している第1プロセッサ認証用情報、第2プロセッサ認証用情報、第1メモリ認証用情報および第2メモリ認証用情報のデータ長は共にNビットとするが、これは説明を簡潔にするためであり、認証用情報のデータ長は本実施の形態に限定されるものではない。認証用情報のデータ長は本来、システムが備えるべきセキュリティーの強度等によって決定されるのが好ましい。
なお、プロセッサ認証用情報格納場所情報としてプロセッサ側認証用情報記憶表17に記憶されているアドレスXは、アドレスA〜アドレスBの間のアドレスである。また、アドレスYは、アドレスCからアドレスDの間のアドレスである。
次に、実施の形態2にかかるコンピュータシステム1において、電力供給が停止した場合に実行される停止処理について説明する。なお、ここでは実施の形態1にかかるコンピュータシステム1における停止処理と異なる部分のみ説明する。なお、ステップS100〜ステップS113、ステップS120〜ステップS123、ステップS130〜ステップS133の処理は、それぞれ実施の形態1において図3を参照しつつ説明したステップS100〜ステップS113、ステップS120〜ステップS123、ステップS130〜ステップS133の処理と同様である。
図9は、実施の形態2にかかるコンピュータシステム1のプロセッサ10による、すべてのメモリとの認証用情報共有処理(ステップS114)を示すフローチャートである。これは、実施の形態1において図3を参照しつつ説明した認証用情報共有の処理にかえて行われる。
起動停止制御装置14は、第1メモリ認証用情報を第1起動停止制御装置24aに転送するために、そして第2メモリ認証用情報を第2起動停止制御装置24bに転送するために、プロセッサ側認証用情報記憶表17に記憶されているすべてのメモリに対して以下の処理を行う。
まず、プロセッサ側認証用情報記憶表17から第1メモリ認証用情報のメモリ認証用情報長すなわちデータ長と、第1メモリ20aのバス情報、すなわちデータ幅および接続情報を抽出する(ステップS300)。次に、抽出したデータ幅と、第1メモリ認証用情報のデータ長を比較する。そして、バス40を使用した場合に、第1メモリ認証用情報を1回で転送可能か否かを判断する。
具体的には、データ幅が第1メモリ認証用情報のサイズ以上である場合には、第1メモリ認証用情報を1回で転送可能であると判断し、データ幅が第1メモリ認証用情報のサイズよりも小さい場合には、第1メモリ認証用情報を1度に転送することはできないと判断する。
1回のデータ転送で転送可能であると判断した場合には(ステップS301,Yes)、ステップS300においてプロセッサ側認証用情報記憶表17から抽出した接続情報に基づいて、第1メモリ認証用情報の配置位置を決定する(ステップS302)。
ここで、配置位置とは、プロセッサ10に接続されているN本のデータ線中のいずれのデータ線にデータを置くかを示すものである。すなわち、ステップS302においては、N本のデータ線のうちいずれのデータ線に第1メモリ認証用情報を配置するかを決定する。
次に、決定した配置位置に第1メモリ認証用情報を配置して、転送用データを作成する。そして、転送用データ、すなわち第1メモリ認証用情報をバス40を介して第1メモリ20aの第1起動停止制御装置24aに転送する(ステップS303)。
ステップS301において、1回のデータ転送ではすべてのデータを転送することはできないと判断した場合には(ステップS301,No)、バス情報および第1メモリ認証用情報のデータ長に基づいて、第1メモリ認証用情報の分割数を算出する(ステップS310)。この分割数は、第1メモリ認証用情報をバス40を介して転送するのに必要な転送回数となる。
次に、転送すべき第1メモリ認証用情報を、ステップS310において算出した分割数に分割する(ステップS311)。次に、接続情報に基づいて、分割後の第1メモリ認証用情報の配置位置を決定する(ステップS312)。次に、決定した配置位置に、分割後の第1メモリ認証用情報をそれぞれ配置してデータを作成し、バス40を介して第1メモリ20aの第1起動停止制御装置24aに転送する(ステップS313)。プロセッサ10は、以上の処理を第2メモリ20bとの間においても、転送する認証用情報を第2メモリ認証用情報として行う。
実施の形態2にかかるコンピュータシステム1においては、第1メモリ認証用情報および第2メモリ認証用情報のサイズはNビットである。また、バス40のデータ幅はNビットであり、第1メモリ20aおよび第2メモリ20bのデータ幅もNビットである。
このため、バス40を使用した場合には、1回のデータ転送で第1メモリ認証用情報を第1起動停止制御装置24aに、また第2メモリ認証用情報を第2起動停止制御装置24bに転送することができる。したがって、1回のデータ転送で転送することができるので(ステップS301,Yes)、ステップS302およびステップS303の処理が行われる。
第1メモリ20aおよび第2メモリ20bのデータ幅はNビットであるので、バス40のデータ線全体にメモリ認証用情報を配置することにより、第1起動停止制御装置24aに第1メモリ認証情報を転送でき、さらに第2起動停止制御装置24bに第2メモリ認証用情報を転送できる。すなわち、起動停止制御装置14は、バス40に流すNビットのデータ全体にNビットの第1メモリ認証用情報を配置し、第1起動停止制御装置24aに転送する。同様に、起動停止制御装置14は、バス40に流すNビットのデータ全体にNビットの第2メモリ認証用情報を配置し、第2起動停止制御装置24bに第2メモリ認証用情報を転送する。
転送に際し、起動停止制御装置14は、プロセッサ側認証用情報記憶表17に記憶されている、プロセッサ認証用情報格納場所情報をアドレスとして指定する。これにより、バス40上で第1起動停止制御装置24aおよび第2起動停止制御装置24bをデータ転送先として指定することができる。
図10は、起動停止制御装置14から第1起動停止制御装置24aおよび第2起動停止制御装置24bへ、第1メモリ認証用情報または第2メモリ認証用情報を転送する際の、バス40の使用状況を模式的に示す図である。
起動停止制御装置14は、サイクルnにおいて、アドレスにX、データに第1メモリ認証用情報を指定し、コントロール信号に書き込み命令(WRITE)を指定する。これにより、第1起動停止制御装置24aへ第1メモリ認証用情報を転送する。さらに、サイクルn+1において、アドレスにY、データに第2メモリ認証用情報を指定し、コントロール信号に書き込み命令(WRITE)を指定する。これにより、第2起動停止制御装置24bへ第2メモリ認証用情報を転送する。
再び説明を図9に戻す。転送が完了すると(ステップS303,ステップS313)、次に、起動停止制御装置14は、第1メモリ20aから第1プロセッサ認証用情報「Key1」を受信する(ステップS320)。具体的には、第1起動停止制御装置24aから転送されてくるデータを第1プロセッサ認証用情報「Key1」のデータサイズになるまで受信する。
次に、受信した第1プロセッサ認証用情報「Key1」が、複数に分割されて転送されてきたかどうか判断する。分割されている場合には(ステップS321,Yes)、転送されてきたデータのうち、プロセッサ側認証用情報記憶表17において第1メモリ20aのメモリ識別子に対応付けられている接続情報により識別される位置、すなわちデータ線から、分割された第1プロセッサ認証用情報「Key1」を取り出す。
そして、取り出した第1プロセッサ認証用情報「Key1」を再構築する(ステップS322)。次に、再構築した第1プロセッサ認証用情報「Key1」を、プロセッサ側認証用情報記憶表17の第1メモリ20aのメモリ識別子に対応付けられているエントリのプロセッサ認証用情報の欄に記憶する(ステップS323)。
ステップS321において、第1プロセッサ認証用情報「Key1」が分割されていない場合には(ステップS321,No)、転送されてきた第1プロセッサ認証用情報「Key1」を、プロセッサ側認証用情報記憶表17の第1メモリ20aのメモリ識別子に対応付けられているエントリのプロセッサ認証用情報の欄に記憶する(ステップS323)。プロセッサ10は、上記処理を第2メモリ20bとの間においても行い、第2プロセッサ認証用情報「Key2」をプロセッサ側認証用情報記憶表17の第2メモリ20bのメモリ識別子に対応付けられているエントリのプロセッサ認証用情報の欄に記憶する。
図11は、実施の形態2にかかるコンピュータシステム1の第1メモリ20aによる、プロセッサ10との認証用情報交換処理(ステップS124)を示すフローチャートである。これは、実施の形態1において図3を参照しつつ説明したプロセッサ10との認証用情報交換処理(ステップS124)にかえて行われる。
第1起動停止制御装置24aは、起動停止制御装置14から転送されてくるデータを、第1メモリ認証用情報のサイズになるまで受信する(ステップS330)。次に、第1起動停止制御装置24aは、起動停止制御装置14から転送された第1メモリ認証用情報「Key3」が分割されているかどうか判断する。分割されている場合は(ステップS331、Yes)、分割されて送信されてきた第1メモリ認証用情報を再構築する(ステップS332)。次に、再構築した第1メモリ認証用情報を第1認証用情報記憶部26aに記憶する(ステップS333)。
一方、起動停止制御装置14から転送された第1メモリ認証用情報が分割されていない場合には(ステップS331,No)、転送されたデータを第1メモリ認証用情報として第1認証用情報記憶部26aに記憶する(ステップS333)。
次に、第1プロセッサ認証用情報「Key1」のデータ長と、バス40と第1メモリ20aに接続されているデータ線の本数、すなわちデータ幅に基づいて、第1プロセッサ認証用情報「Key1」をバス40を介して1回のデータ転送で転送できるか否か判定する。
1回のデータ転送で転送可能であると判断した場合には(ステップS334,Yes)、第1プロセッサ認証用情報「Key1」をバス40を介してプロセッサ10の起動停止制御装置14に転送する(ステップS336)。
ステップS334において、1回のデータ転送で転送可能でないと判断した場合には(ステップS334,No)、バス情報および第1プロセッサ認証用情報「Key1」のデータ長に基づいて、第1プロセッサ認証用情報「Key1」の分割数を算出する(ステップS340)。この分割数は、第1プロセッサ認証用情報「Key1」をバス40を介して転送するのに必要な転送回数となる。
次に、転送すべき第1プロセッサ認証用情報「Key1」を、ステップS340において算出した分割数に分割する(ステップS341)。
次に、分割後の第1プロセッサ認証用情報「Key1」から転送用データを作成する。そして、転送用データをバス40を介してプロセッサ10の起動停止制御装置14に転送する(ステップS343)。以上でプロセッサ10との認証用情報の共有の処理(ステップS124)における第1メモリ20aの処理が完了する。
なお、第2メモリ20bによる、プロセッサ10との認証用情報共有処理(ステップS134)は、図11を参照しつつ説明した第1メモリ20aによるプロセッサ10との認証用情報共有処理(ステップS124)と同様である。この処理により第2メモリ20bは、プロセッサ10から第2メモリ認証用情報を取得し、第2メモリ認証用情報を第2認証用情報記憶部26bに記憶する。さらに、プロセッサ10に第2プロセッサ認証用情報を転送する。
本実施の形態においては、第1プロセッサ認証用情報および第2プロセッサ認証用情報のサイズは共にNビットである。また、バス40、第1メモリ20aおよび第2メモリ20bのデータ幅もいずれもNビットである。したがって、バス40を使用した場合、1回のデータ転送で、第1プロセッサ認証用情報および第2プロセッサ認証用情報を起動停止制御装置14に転送することができる。このように、1回のデータ転送で転送することができるので(ステップS334,Yes)、ステップS336へ進む。
図12は、第1起動停止制御装置24aから起動停止制御装置14に第1プロセッサ認証用情報が転送され、第2起動停止制御装置24bから起動停止制御装置14に第2プロセッサ認証用情報が転送される際のバス40の使用状況を模式的に示す図である。
起動停止制御装置14は、サイクルnにおいてアドレスにX、コントロール信号に読み出し命令(READ)を指定する。これに対し、第1起動停止制御装置24aは、第1プロセッサ認証用情報を起動停止制御装置14に転送する。起動停止制御装置14は、さらにサイクルn+1においてアドレスにY、コントロール信号に読み出し命令(READ)を指定する。これに対して第2起動停止制御装置24bは、第2プロセッサ認証用情報を転送する。以上の処理により、プロセッサ10は、第1メモリ20aおよび第2メモリ20bのそれぞれから第1プロセッサ認証用情報および第2プロセッサ認証用情報を取得する。
図13は、実施の形態2にかかるコンピュータシステム1のプロセッサ10による、電力供給再開時のすべてのメモリとの認証用情報交換処理(ステップS210)を示すフローチャートである。これは、実施の形態1において図4を参照しつつ説明した認証用情報交換処理(ステップS210)にかえて行われる。
起動停止制御装置14は、プロセッサ側認証用情報記憶表17に記憶されているすべてのメモリに対応するプロセッサ認証用情報を転送すべく、以下の処理を行う。本実施の形態においては、プロセッサ10に接続されているすべてのメモリ、すなわち第1起動停止制御装置24aおよび第2起動停止制御装置24bのそれぞれに対し第1プロセッサ認証用情報「Key1」および第2プロセッサ認証用情報「Key2」を転送すべく以下の処理を行う。
まず、プロセッサ側認証用情報記憶表17から第1メモリ20aに対応付けて記憶されているプロセッサ認証用情報、すなわち第1プロセッサ認証用情報「Key1」、第1プロセッサ認証用情報のプロセッサ認証用情報長すなわちデータ長、およびバス情報を抽出する(ステップS350)。次に、抽出したバス情報に含まるデータ幅と、第1プロセッサ認証用情報「Key1」のデータ長を比較する。そして、バス40を使用した場合に、第1プロセッサ認証用情報「Key1」を1回で転送可能か否かを判断する。
1回のデータ転送で転送可能であると判断した場合には(ステップS351,Yes)、バス情報に含まれる接続情報に基づいて、第1プロセッサ認証用情報「Key1」の配置位置を決定する(ステップS352)。次に、決定した配置位置に、第1プロセッサ認証用情報「Key1」を配置して転送データを作成する。
作成した転送データ、すなわち第1プロセッサ認証用情報「Key1」をバス40を介して第1メモリ20aの第1起動停止制御装置24aに転送する(ステップS353)。プロセッサ側認証用情報記憶表17に示されているプロセッサ認証用情報格納場所情報をアドレスとして指定することにより、バス40上で第1メモリ20aを指定する。
ステップS351において、1回のデータ転送で転送可能でないと判断した場合には(ステップS351,No)、接続情報および第1プロセッサ認証用情報「Key1」のデータ長に基づいて、第1プロセッサ認証用情報「Key1」の分割数を算出する(ステップS360)。この分割数は、第1プロセッサ認証用情報「Key1」をバス40を介して転送するのに必要な転送回数となる。
次に、転送すべき第1プロセッサ認証用情報「Key1」を、ステップS360において算出した分割数に分割する(ステップS361)。次に、接続情報に基づいて、バス40に流すデータにおける、分割後の第1プロセッサ認証用情報「Key1」の配置位置を決定する(ステップS362)。次に、決定した配置位置に、分割後の第1プロセッサ認証用情報「Key1」をそれぞれ配置し、バス40を介して第1メモリ20aの第1起動停止制御装置24aに転送する(ステップS363)。
プロセッサ10は、以上の処理を第2メモリ20bとの間においても行い、プロセッサ側認証用情報記憶表17において第2メモリ20bのメモリ識別子「メモリ02」に対応付けて記憶されている第2プロセッサ認証用情報「Key2」を第2メモリ20bに転送する。
実施の形態2にかかるコンピュータシステム1においては、プロセッサ認証用情報「Key1」,「Key2」のサイズはNビットである。また、バス40のデータ幅はNビットであり、第1メモリ20aおよび第2メモリ20bのデータ幅もNビットである。このため、バス40を使用した場合には、1回のデータ転送でプロセッサ認証用情報「Key1」,「Key2」をそれぞれ第1起動停止制御装置24aおよび第2起動停止制御装置24bに転送することができる。
このように、1回のデータ転送で転送することができるので(ステップS351,Yes)、第1起動停止制御装置24aおよび第2起動停止制御装置24bのいずれに対しても、ステップS352、ステップS353の処理が行われる。
なお、第1メモリ20aのデータ幅はNビットであるので、バス40のデータ線全体に第1プロセッサ認証用情報「Key1」を配置することにより、第1起動停止制御装置24aに第1プロセッサ認証用情報「Key1」を転送できる。
すなわち、起動停止制御装置14は、バス40のデータ線全体にNビットの第1プロセッサ認証用情報「Key1」を配置し、第1起動停止制御装置24aに第1プロセッサ認証用情報「Key1」を転送する。同様に、バス40のデータ線全体にNビットの第2プロセッサ認証用情報「Key2」を配置し、第2起動停止制御装置24bに第2プロセッサ認証用情報「Key2」を転送する。
なお、転送に際し、起動停止制御装置14は、プロセッサ側認証用情報記憶表17に記憶されている、プロセッサ認証用情報格納場所情報をアドレスとして指定する。これにより、バス40上で第1起動停止制御装置24aおよび第2起動停止制御装置24bをデータ転送先として指定することができる。
転送が完了すると(ステップS353,ステップS363)、次に、メモリ認証用情報のデータサイズになるまでメモリ認証用情報を受信する(ステップS370)。次に、受信したメモリ認証用情報が、複数に分割されて転送されているか否かを判断する。
分割されている場合には(ステップS371,Yes)、転送されてきたデータのうち、プロセッサ側認証用情報記憶表17に記憶されている接続情報により定まる配置位置から、分割されたメモリ認証用情報を取り出し、メモリ認証用情報を再構築する(ステップS372)。次に、再構築したメモリ認証用情報を認証用情報記憶部16の、プロセッサ側認証用情報記憶表17の当該メモリを識別するメモリ識別子に対応付けられたエントリの、メモリ認証用情報の欄に格納する(ステップS373)。
ステップS371において、メモリ認証用情報が分割されていない場合には(ステップS371,No)、転送されてきたメモリ認証用情報を認証用情報記憶部16のプロセッサ側認証用情報記憶表17の当該メモリを識別するメモリ識別子に対応付けられたエントリのメモリ認証用情報の欄に記憶する(ステップS373)。
プロセッサ10は、以上の処理(ステップS370からステップS373)を第1起動停止制御装置24aとの間および第2起動停止制御装置24bとの間においてそれぞれ行う。その結果、プロセッサ10は、第1起動停止制御装置24aから第1メモリ認証用情報を取得し、第2起動停止制御装置24bから第2メモリ認証用情報を取得する。
図14は、起動停止制御装置14が第1起動停止制御装置24aおよび第2起動停止制御装置24bにプロセッサ認証用情報を転送する際の、バス40の使用状況を模式的に示す図である。
起動停止制御装置14は、サイクルnにおいてアドレスにX、データに第1プロセッサ認証用情報を指定し、コントロール信号に書き込み命令(WRITE)を指定する。これにより、第1起動停止制御装置24aへ第1プロセッサ認証用情報「Key1」を転送する。また、サイクルn+1においてアドレスにY、データに第2プロセッサ認証用情報を指定し、コントロール信号に書き込み命令(WRITE)を指定する。これにより、第2起動停止制御装置24bへ第2プロセッサ認証用情報「Key2」を転送する。
図15は、実施の形態2にかかるコンピュータシステム1において、電力供給再開時に行われる、第1メモリ20aによるプロセッサ10との認証用情報交換処理(ステップS220)を示すフローチャートである。実施の形態1において図4を参照しつつ説明した認証用情報交換処理(ステップS220)にかえて行われる。
第1起動停止制御装置24aは、起動停止制御装置14から転送されてくるデータを、第1プロセッサ認証用情報「Key1」のサイズになるまで受信する(ステップS380)。次に、第1起動停止制御装置24aは、起動停止制御装置14から転送された第1プロセッサ認証用情報「Key1」が分割されているか否か判断する。
分割されている場合は(ステップS381、Yes)、分割されて送信されてきた第1プロセッサ認証用情報「Key1」を再構築する(ステップS382)。次に、再構築した第1プロセッサ認証用情報「Key1」を第1認証用情報記憶部26aに記憶する(ステップS383)。
一方、起動停止制御装置14から転送された第1プロセッサ認証用情報「Key1」が分割されていない場合には(ステップS381,No)、転送されたデータを第1プロセッサ認証用情報「Key1」として第1認証用情報記憶部26aに記憶する(ステップS383)。
次に、第1認証用情報記憶部26aに記憶されている第1メモリ認証用情報のデータ長と、第1メモリ20aとバス40の間の接続情報から、第1認証用情報記憶部26aに記憶されている第1メモリ認証用情報をバス40を介して1回のデータ転送でプロセッサ10に転送できるか否かを判断する。
1回のデータ転送で転送可能であると判断した場合には(ステップS384,Yes)、第1メモリ認証用情報をバス40を介してプロセッサ10の起動停止制御装置14に転送する(ステップS386)。
ステップS384において、1回のデータ転送で転送可能でないと判断した場合には(ステップS384,No)、接続情報および第1メモリ認証用情報のサイズに基づいて、第1メモリ認証用情報の分割数を算出する(ステップS390)。この分割数は、第1メモリ認証用情報をバス40を介して転送するのに必要な転送回数となる。
次に、転送すべき第1メモリ認証用情報を、ステップS390において算出した分割数に分割する(ステップS391)。次に、分割した第1メモリ認証用情報からデータを作成し、バス40を介してプロセッサ10の起動停止制御装置14に転送する(ステップS393)。
第2メモリ20bは、プロセッサ10との間で上記処理を行い、第2プロセッサ認証用情報「Key2」を取得して、第2認証用情報記憶部26bに記憶する。さらに第2認証用情報記憶部26bに記憶されている第2メモリ認証用情報をプロセッサ10に転送する。
なお、実施の形態2における第2メモリ20bによるプロセッサ10との認証用情報共有処理(ステップS230)は、実施の形態2における第1メモリ20aによるプロセッサ10との認証用情報の共有処理(ステップS220)と同様である。
本実施例においては、第1メモリ認証用情報および第2メモリ認証用情報のサイズはNビット、バス40のデータ幅はNビット、第1メモリ20aおよび第2メモリ20bのデータ幅もNビットである。したがって、バス40を使用した場合、1回のデータ転送で、第1メモリ認証用情報および第2メモリ認証用情報を起動停止制御装置14に転送することができる。このように、1回のデータ転送で転送することができるので(ステップS384,Yes)、ステップS386へ進む。
図16は、第1起動停止制御装置24aから起動停止制御装置14へ第1メモリ認証用情報を転送し、第2起動停止制御装置24bから起動停止制御装置14に第2メモリ認証用情報を転送する際のバス40の使用状況を模式的に示す図である。
起動停止制御装置14は、サイクルnにおいて、アドレスにX、コントロール信号に読み出し命令(READ)を指定する。これに対して第1起動停止制御装置24aが第1メモリ認証用情報を転送する。また、サイクルn+1において、アドレスにY、コントロール信号に読み出し信号(READ)を指定する。これに対して第2起動停止制御装置24bが第2メモリ認証用情報を転送する。以上の処理により、プロセッサ10と第1メモリ20aの間およびプロセッサ10と第2メモリ20bの間でのメモリ認証用情報の共有が終了する。
なお、実施の形態2にかかるコンピュータシステム1のこれ以外の構成および処理は、実施の形態1にかかるコンピュータシステム1の構成および処理と同様である。
実施の形態2にかかるコンピュータシステム1の変更例としては、本実施の形態にかかる認証用情報共有処理(ステップS114)においては、図9に示すようにステップS301において転出すべき認証用情報を分割すべきか否かを判断し、ステップS321において転送されてくる認証用情報が分割されているか否かを判断している。
ただし、本実施の形態のように装置製造時にバス40とプロセッサ10、第1メモリ20aおよび第2メモリ20bとの間の接続状態から認証用情報は分割されずに1回の転送で転送されてくることがわかっている場合には、ステップS301およびステップS321の判断は行わなくともよい。この場合には、ステップS300からステップS302へ進む。また、ステップS320からステップS323へ進む。
同様に、認証用情報共有処理(ステップS124)においても、図11に示すように、ステップS331およびステップS334において認証用情報の分割の有無について判断しているが、これにかえて、ステップS330からステップS333へ進み、さらにステップS333からステップS336へ進むこととしてもよい。
また、認証用情報交換処理(ステップS210)においても、図13に示すようにステップS351およびステップS371を省略し、ステップS350からステップS352へ進み、さらにステップS370からステップS373へ進むこととしてもよい。
また、認証用情報交換処理(ステップS220)においても、図15に示すようにステップS381およびステップS384を省略し、ステップS380からステップS383へ進み、さらにステップS383からステップS386へ進むこととしてもよい。
(実施の形態3)
図17は、実施の形態3にかかるコンピュータシステム1の全体構成を示す図である。実施の形態3にかかるコンピュータシステム1においては、バス40のデータ線はN本である。すなわち,バスのデータ幅はNビットである。
プロセッサ10とバス40はN本のデータ線で接続されている。ただし、第1不揮発性記憶素子21aおよび第2不揮発性記憶素子21bは、それぞれバス40とN/2本のデータ線で接続されている。すなわち、バス40においては、第1不揮発性記憶素子21aおよび第2不揮発性記憶素子21bに接続されたデータ線の本数は、プロセッサ10に接続されたデータ線の本数の半分である。
さらに、第1不揮発性記憶素子21aに接続しているデータ線は、バス40のN本のデータ線のうち上位N/2ビットのデータ線であり、プロセッサ10がバス40と接続しているN本のデータ線のうち上位N/2ビットのデータ線である。また第2不揮発性記憶素子21bに接続しているデータ線は、バス40のN本のデータ線のうち下位N/2ビットのデータ線であり、プロセッサ10がバス40と接続しているN本のデータ線のうち下位N/2ビットのデータ線である。
図18は、実施の形態3にかかるコンピュータシステム1におけるアドレス空間610を示す図である。アドレス空間610は、各メモリ20a,bおよびバス40の接続方式から決定されている。
アドレス空間610においては、図18のように、データ幅方向にN/2ビットずつのアドレス範囲がそれぞれ第1不揮発性記憶素子21aおよび第2不揮発性記憶素子21bに割り当てられている。
このように、第1不揮発性記憶素子21aおよび第2不揮発性記憶素子21bのデータ線の本数がバス40のデータ線の本数以下である場合には、各第1不揮発性記憶素子21a,第2不揮発性記憶素子21bのアドレス範囲をデータ幅方向に対してデータ線の本数に対応するデータ幅ずつ割り当てることとする。
また、実施の形態3にかかるコンピュータシステム1においては、各不揮発性記憶素子21a,bはそれぞれバス40の上位N/2ビットおよび下位N/2ビットと接続しているので、プロセッサ10からNビットのデータがバス40に流された場合には、第1不揮発性記憶素子21aには、転送されたデータの上位N/2ビットのみが転送される。また同様に、第2不揮発性記憶素子21bには、転送されたデータの下位N/2ビットのみが転送される。
また、第1不揮発性記憶素子21aがバス40に流したN/2ビットのデータは、バス40上ではNビットデータのうち上位N/2ビットに配置されている。したがって、プロセッサ10が正しく受け取るには、バス40に流れるデータの上位N/2ビットを選択して抽出する必要がある。同様に、第2不揮発性記憶素子21bがバス40に流したN/2ビットのデータは、バス40上ではNビットデータのうち下位N/2ビットに配置されている。
したがって、プロセッサ10が正しく受け取るには、バス40に流れるデータの下位N/2ビットを選択して抽出する必要がある。本実施の形態にかかるプロセッサ10は、上位N/2ビットまたは下位N/2ビットを選択して抽出することができる。
図19は、実施の形態3にかかるコンピュータシステム1において、プロセッサ10の認証用情報記憶部16が有するプロセッサ側認証用情報記憶表17のデータ構成を示す図である。実施の形態3にかかるプロセッサ側認証用情報記憶表17は、実施の形態2にかかるプロセッサ側認証用情報記憶表17と同様のデータ構成である。
ただし、実施の形態3にかかる第1メモリ20aと第2メモリ20bは、図18を参照しつつ説明したようにバス40の接続状態が実施の形態2にかかる第1メモリ20aと第2メモリ20bとは異なっている。このため、このバス40の接続状態に対応してプロセッサ側認証用情報記憶表17に記憶されるバス情報の内容が異なっている。
具体的には、図19に示すように、実施の形態3にかかるプロセッサ側認証用情報記憶表17に記憶されているデータ幅は、第1メモリ20aおよび第2メモリ20bともにN/2である。また、第1メモリ20aに対する接続情報は、上位N/2であり、第2メモリ20bに対する接続情報は、下位N/2である。
次に、実施の形態3にかかるコンピュータシステム1の電力供給停止時の、プロセッサ10による認証用情報共有処理(ステップS114)について説明する。これは、実施の形態1において図3を参照しつつ説明した認証用情報共有処理(ステップS114)にかえて行われる。ここでは、図9を参照しつつ説明する。
起動停止制御装置14は、ステップS300において、プロセッサ側認証用情報記憶表17からバス情報および第1メモリ認証用情報のメモリ認証用情報長すなわちデータ長を抽出する。実施の形態3においては、バス40のデータ幅はNビットであり、第1メモリ20aのデータ幅はN/2ビットであり、第1メモリ認証用情報のデータ長はNビットである。したがって、バス40を用いた1回のデータ転送では、第1起動停止制御装置24aに第1メモリ認証用情報を転送することができないので(ステップS301,No)、第1メモリ認証用情報の分割数を算出する(ステップS310)。
具体的には、第1メモリ認証用情報のデータ長がNビットであり、第1メモリ20aのデータ幅がN/2ビットである。すなわち、第1メモリ認証用情報は、第1メモリ20aのデータ幅の2倍のビット数である。したがって、第1メモリ認証用情報の分割数が「2」と算出される。次に、実際に第1メモリ認証用情報が2分割される(ステップS311)。
次に、第1メモリ認証用情報の配置位置を決定する(ステップS312)。具体的には、第1起動停止制御装置24aにデータを転送するためのデータ配置位置を決定する。第1起動停止制御装置24aは、バス40の上位N/2ビットと接続しているので、第1起動停止制御装置24aにデータを転送すべく、バス40に流すNビットのデータの上位N/2ビットを第1メモリ認証用情報の配置位置として決定する(ステップS312)。次に、分割した第1メモリ認証用情報を上位N/2ビットの位置に配置したNビットのデータをそれぞれ生成し、生成したデータをすべて転送する(ステップS313)。
プロセッサ10は、以上の処理を第2メモリ20bとの間においても行い、第2メモリ認証用情報を第2メモリ20bに転送する。
なお、バス40上で、第1起動停止制御装置24aをデータ転送先として指定するために、プロセッサ側認証用情報記憶表17において、第1メモリ20aに対応付けて記憶されているプロセッサ認証用情報格納場所情報をアドレスとして指定する。また、バス40に流すNビットのデータのうち、データが格納されない下位N/2ビットは、セキュリティーの観点から0で埋めるのが望ましい。
次に、起動停止制御装置14は、第1起動停止制御装置24aからバス40を介して転送されてきた第1プロセッサ認証用情報「Key1」に対して以下の処理を行う。すなわち、プロセッサ側認証用情報記憶表17において第1メモリ20aに対応付けて記憶されているプロセッサ認証用情報長に基づいて、第1プロセッサ認証用情報「Key1」のデータ長がNビットであることを特定する。さらに、プロセッサ側認証用情報記憶表17において第1メモリ20aに対応付けて記憶されているデータ幅から第1メモリ20aのデータ幅がN/2ビットであることを特定する。
これらの情報から、第1プロセッサ認証用情報「Key1」は1回の転送では転送が完了せず、2回の転送により第1プロセッサ認証用情報「Key1」の転送が完了すると判断し、2回の転送から第1プロセッサ認証用情報「Key1」を受信する(ステップS320)。
第1プロセッサ認証用情報「Key1」は2分割されているので(ステップS321、Yes)、次に、第1プロセッサ認証用情報「Key1」を再構築する(ステップS322)。
具体的には、プロセッサ側認証用情報記憶表17において第1メモリ20aに対応付けて記憶されている接続情報に基づいて、第1メモリ20aから転送される第1プロセッサ認証用情報「Key1」は、バス40を流れるNビットのデータの上位N/2ビットに配置されていると判断し、受信したNビットのデータ中の上位N/2ビットから分割された第1プロセッサ認証用情報「Key1」を抽出して再構築する。
次に、再構築された第1プロセッサ認証用情報「Key1」をプロセッサ側認証用情報記憶表17の、第1メモリ20aのメモリ識別子「メモリ01」で示されるエントリのプロセッサ認証用情報の欄に記憶する(ステップS323)。
プロセッサ10は、以上の処理を第2メモリ20bとの間においても行い、第2プロセッサ認証用情報を「Key2」を第2起動停止制御装置24bから取得し、プロセッサ側認証用情報記憶表17の第2メモリ20bのメモリ識別子「メモリ02」で示されるエントリのプロセッサ認証用情報の欄に記憶する。
図20は、起動停止制御装置14から第1起動停止制御装置24aに第1メモリ認証用情報を、そして第2起動停止制御装置24bに第2メモリ認証用情報を転送する際の、バス40の使用状況を模式的に示す図である。
起動停止制御装置14は、サイクルnからサイクルn+1に渡り、アドレスにX、コントロール信号に書き込み命令を指定し、データには2分割した第1メモリ認証用情報をそれぞれNビット中の上位N/2ビット部分に配置したNビットデータを指定する。これにより、第1メモリ認証用情報を第1起動停止制御装置24aに転送する。同様に、サイクルn+2からサイクルn+3に渡り、アドレスにY、コントロール信号に書き込み命令を指定し、データには2分割した第2メモリ認証用情報をそれぞれNビット中の下位N/2ビット部分に配置されたNビットデータを指定する。
以上の処理により、プロセッサ10と第1メモリ20aの間での第1メモリ認証用情報の共有、およびプロセッサ10と第2メモリ20bの間での第2メモリ認証用情報の共有が終了する。
次に、実施の形態3にかかるコンピュータシステム1における電力供給停止時の、第1メモリ20aによるプロセッサ10との認証用情報共有処理(ステップS124)について説明する。これは、実施の形態1において図3を参照しつつ説明した認証用情報共有処理(ステップS124)にかえて行われる。ここでは、図11を参照しつつ説明する。
第1起動停止制御装置24aは、バス40を使用したデータ転送では1回の転送でN/2ビットしか受信できない。そこで、Nビットの第1メモリ認証用情報を受け取るまで、バス40から転送されてくるデータを受信する(ステップS330)。次に、第1起動停止制御装置24aは、起動停止制御装置14から転送された第1メモリ認証用情報が分割されているか否かを判断する。
第1メモリ認証用情報のデータ長はNビットであり、第1メモリ20aのデータ幅はN/2ビットであることから、第1メモリ認証用情報が分割されていると判断し(ステップS331,Yes)、受信したデータから第1メモリ認証用情報を再構築する(ステップS332)。そして再構築されたデータを第1メモリ認証用情報として第1認証用情報記憶部26aに記憶する(ステップS333)。
次に、起動停止制御装置14と第1起動停止制御装置24aの間のプロセッサ認証用情報の共有が行われる。すなわち、まず第1プロセッサ認証用情報「Key1」をバス40を介して1回のデータ転送で転送可能か否かを判断する。
第1プロセッサ認証用情報「Key1」のデータ長がNビットであり、第1メモリ20aのデータ幅がN/2ビットであることから、第1プロセッサ認証用情報「Key1」はバス40を介して1回のデータ転送で転送できないと判断する(ステップS334,No)。
次に、第1プロセッサ認証用情報「Key1」の分割数を算出する(ステップS340)。具体的には、第1プロセッサ認証用情報「Key1」のデータ長(Nビット)と、第1メモリ20aのデータ幅(N/2ビット)から、分割数「2」を得る。次に、第1プロセッサ認証用情報「Key1」を2分割する(ステップS341)。次に、2分割したプロセッサ認証用情報を、2回に分けて起動停止制御装置14に対して転送する(ステップS343)。
なお、実施の形態3にかかる第2メモリ20bによるプロセッサ10との認証用情報の共有処理(ステップS134)は、実施の形態3にかかる第1メモリ20aによるプロセッサ10との認証用情報の共有処理(ステップS124)と同様である。
図21は、第1起動停止制御装置24aおよび第2起動停止制御装置24bから起動停止制御装置14に第1プロセッサ認証用情報「Key1」および第2プロセッサ認証用情報「Key2」を転送する際のバス40の使用状況を模式的に示す図である。
起動停止制御装置14は、サイクルnからサイクルn+1に渡って、アドレスにX、コントロール信号に読み出し命令を指定する。そして、これに対して第1起動停止制御装置24aが2分割された第1プロセッサ認証用情報「Key1」を転送する。また、サイクルn+2からサイクルn+3に渡って、アドレスにY、コントロール信号に読み出し信号を指定する。そして、これに対して第2起動停止制御装置24bが2分割された第2プロセッサ認証用情報「Key2」を転送する。起動停止制御装置14は、これらの分割されたデータを受信して再構築して、第1プロセッサ認証用情報「Key1」および第2プロセッサ認証用情報「Key2」を得る。
以上により、プロセッサ10と第1メモリ20aの間での第1プロセッサ認証用情報「Key1」の共有が終了し、プロセッサ10と第2メモリ20bの間での第2プロセッサ認証用情報「Key2」の共有が終了する。
次に、実施の形態3にかかるコンピュータシステム1の電力供給再開時における、プロセッサ10による第1メモリ20aとの認証用情報交換処理(ステップS210)について説明する。これは、実施の形態1において図4を参照しつつ説明した認証用情報交換処理(ステップS210)にかえて行われる。ここでは、図13を参照しつつ説明する。
まず、起動停止制御装置14は、認証用情報記憶部16に記憶されている第1プロセッサ認証用情報「Key1」を第1メモリ20aに転送するために、以下の処理を行う。
具体的には、プロセッサ側認証用情報記憶表17において第1メモリ20aに対応付けて記憶されているバス情報を抽出する(ステップS350)。さらに、プロセッサ側認証用情報記憶表17において第1メモリ20aに対応付けて記憶されているプロセッサ認証用情報長を抽出する。そして、これらの情報に基づいて、第1プロセッサ認証用情報「Key1」を1回のデータ転送で転送可能か否かを判断する。
本実施の形態においては、第1プロセッサ認証用情報のデータ長がNビット、第1メモリ20aのバス幅がN/2ビット、バス40のデータ幅がNビットである。したがって、バス40を使用した場合には、1回の転送では第1プロセッサ認証用情報「Key1」を転送できないと判断し(ステップS351,No)、ステップS360へ進む。
次に、第1プロセッサ認証用情報「Key1」のデータ長がNビット、メモリ20のデータ幅がN/2ビットであることから、第1プロセッサ認証用情報「Key1」の分割数が2と算出される(ステップS360)。そこで、第1プロセッサ認証用情報「Key1」を実際に2分割する(ステップS361)。
次に、プロセッサ側認証用情報記憶表17において第1メモリ20aに対応付けられているバス情報に基づいて、第1プロセッサ認証用情報「Key1」の配置位置を決定する(ステップS362)。
具体的には、バス情報から第1メモリ20aはバス40の上位N/2ビットと接続していることがわかる。したがって、第1起動停止制御装置24aにデータを転送すべく、バス40に流すNビットのデータのうち上位N/2ビットをデータの配置位置として決定する。
次に、2分割した第1プロセッサ認証用情報「Key1」をそれぞれ上位N/2ビットに配置したNビットのデータを作成し、2回に分けてバス40を介して第1起動停止制御装置24aに転送する(ステップS363)。プロセッサ10は、以上の処理を第2メモリ20bとの間においても行う。
転送が完了すると(ステップS363)、起動停止制御装置14は、第1メモリ認証用情報のデータサイズになるまで第1メモリ認証用情報を受信する(ステップS370)。次に、第1メモリ認証用情報が、複数に分割されて転送されているか否かを判断する。
具体的には、プロセッサ側認証用情報記憶表17より、メモリ認証用情報生成部15が生成した第1メモリ認証用情報のデータ長はNビットであり、また、プロセッサ側認証用情報記憶表17において第1メモリ20aのデータ幅がN/2ビットであることから、2回に分けて第1メモリ認証用情報が転送されてくると判断する(ステップS371,Yes)。
さらに、第1起動停止制御装置24aから転送されたデータはバス40のNビットのデータ中の上位N/2ビットに配置されていると判断する。そして、受信したNビットのデータ中の上位N/2ビットから第1メモリ認証用情報を抽出する。こうして取得した第1メモリ認証用情報を再構築する(ステップS372)。
次に、再構築した第1メモリ認証用情報を認証用情報記憶部16のプロセッサ側認証用情報記憶表17の、メモリ20aの識別子「メモリ01」で識別されるエントリのメモリ認証用情報の欄に格納する(ステップS373)。プロセッサ10は、同様の処理を第2起動停止制御装置24bとの間において行い、第2プロセッサ認証用情報と第2メモリ認証用情報を共有する。
図22は、実施の形態3にかかるコンピュータシステム1の起動停止制御装置14が第1起動停止制御装置24aに第1プロセッサ認証用情報を、そして第2起動停止制御装置24bに第2プロセッサ認証用情報を転送する際の、バス40の使用状況を模式的に示す図である。
起動停止制御装置14は、サイクルnからサイクルn+1に渡って、アドレスにX、コントロール信号に書き込み命令を指定し、データには上位N/2ビットに分割した第1プロセッサ認証用情報「Key1」を格納したNビットデータを指定することで、第1起動停止制御装置24aへ第1プロセッサ認証用情報「Key1」を転送している。
また、サイクルn+2からサイクルn+3に渡って、アドレスにY、コントロール信号に書き込み命令を指定し、データには下位N/2ビットに分割した第2プロセッサ認証用情報「Key2」を格納したNビットデータを指定することで、第2起動停止制御装置24bへ第2プロセッサ認証用情報「Key2」を転送している。
次に、実施の形態3にかかるコンピュータシステム1の電力供給再開時における、第1メモリ20aによるプロセッサ10との認証用情報交換処理(ステップS220)について説明する。これは、実施の形態1において図4を参照しつつ説明した認証用情報交換処理(ステップS220)にかえて行われる。ここでは、図15を参照しつつ説明する。
まず、第1起動停止制御装置24aは、起動停止制御装置14から転送されてくる第1プロセッサ認証用情報「Key1」を受信するために、以下の処理を行う。具体的には、第1起動停止制御装置24aは、バス40を使用したデータ転送では1回の転送でN/2ビットしか受信できないので、Nビットの第1プロセッサ認証用情報「Key1」を受け取るまで、バス40から転送されるデータを受信する(ステップS380)。
次に、第1プロセッサ認証用情報「Key1」のデータ長はNビットであり、第1メモリ20aのデータ幅はN/2ビットであるから、起動停止制御装置14から転送された第1プロセッサ認証用情報「Key1」は2分割されていると判断し(ステップS381、Yes)、受信したデータから第1プロセッサ認証用情報「Key1」を再構築する(ステップS382)。次に、再構築した第1プロセッサ認証用情報「Key1」を第1認証用情報記憶部26aに記憶させる(ステップS383)。
次に、第1メモリ認証用情報のデータ長と、第1メモリ20aとバス40の間の接続情報に基づいて、第1メモリ認証用情報をバス40を介して1回で転送可能か否かを判断する。本実施の形態においては、第1メモリ認証用情報のデータ長がNビットであり、第1メモリ20aのデータ幅がN/2ビットであることから、第1メモリ認証用情報はバス40を介して1回のデータ転送で転送できないと判断する(ステップS384、No)。
そこで、第1メモリ認証用情報のデータ長(Nビット)と、第1メモリ20aのデータ幅(N/2ビット)から、第1メモリ認証用情報の分割数2を算出する(ステップS390)。次に、第1メモリ認証用情報を2分割する(ステップS391)。そして2回に分けて起動停止制御装置14に対して転送する(ステップS393)。
第2メモリ20bも同様の処理をプロセッサ10との間において行う。実施の形態3における第2メモリ20bによるプロセッサ10との認証用情報交換処理(ステップS230)は、実施の形態3における第1メモリ20aによるプロセッサ10との認証用情報交換処理(ステップS220)と同様である。
図23は、第1起動停止制御装置24aから起動停止制御装置14へ第1メモリ認証用情報を、そして第2起動停止制御装置24bから起動停止制御装置14へ第2メモリ認証用情報を転送する際のバス40の使用状況を模式的に示す図である。
起動停止制御装置14は、サイクルnからサイクルn+1に渡って、アドレスにX、コントロール信号に読み出し命令を指定し、これに対して第1起動停止制御装置24aが上位N/2ビットに分割された第1メモリ認証用情報を配置したNビットデータを2回転送する。また、サイクルn+2からサイクルn+3に渡って、アドレスにY、コントロール信号に読み出し信号を指定する。これに対して第2起動停止制御装置24bが階N/2ビットに分割された第2メモリ認証用情報を格納したNビットデータを2回転送する。
なお、実施の形態3にかかるコンピュータシステム1のこれ以外の構成および処理は、実施の形態2にかかるコンピュータシステム1の構成および処理と同様である。
図24は、実施の形態3の第1の変更例にかかるコンピュータシステム1において、第1起動停止制御装置24aから起動停止制御装置14へ第1プロセッサ認証用情報「Key1」を、そして第2起動停止制御装置24bから起動停止制御装置14に第2プロセッサ認証用情報「Key2」を転送する際のバス40の使用状況を示す図である。実施の形態3において図21を参照しつつ説明したバス40の使用状況において使用されていなかったデータ線、すなわち下位N/2ビットに第2プロセッサ認証用情報「Key2」を配置している。
すなわち、サイクルnからサイクルn+1に渡り、コントロール信号に読み出し命令(READ)を指定する。そして、データのうちNビット中の上位N/2部分に第1起動停止制御装置24aから転送された第1プロセッサ認証用情報「Key1」が配置され、Nビットのうち下位N/2ビット部分に第2起動停止制御装置24bから転送された第2プロセッサ認証用情報「Key2」が配置されている。
このように、Nビット中の上位N/2ビットおよび下位N/2ビットそれぞれに第1プロセッサ認証用情報「Key1」,「Key2」を配置した場合でも、起動停止制御装置14はプロセッサ側認証用情報記憶表17に記憶されている接続情報に基づいて、Nビットのデータのうちいずれのデータが第1メモリ20aから転送されたデータであって、いずれのデータが第2メモリ20bから転送されたデータであるかを特定することができので、正しく第1プロセッサ認証用情報と第2プロセッサ認証用情報を抽出して取得することができる。これにより、バスの利用効率を向上させ、第1プロセッサ認証用情報「Key1」,「Key2」の交換のためのサイクル数を削減することができる。
なお、この認証用情報の交換の際も、アドレスにはプロセッサ側認証用情報記憶表17に記憶されているプロセッサ認証用情報格納場所情報を使用することが可能である。
または、第1メモリ20aおよび第2メモリ20bにアクセスするための専用の特別なアドレスであってもよい。このように、アドレスには第1メモリ20aおよび第2メモリ20bが認証用情報の交換処理であることを判断できる情報であればよく、その内容は実施の形態に限定されるのもではない。
図25は、実施の形態3の第2の変更例にかかるコンピュータシステム1において、第1起動停止制御装置24aから起動停止制御装置14に第1プロセッサ認証用情報「
Key1」を、そして第2起動停止制御装置24bから起動停止制御装置14に第2プロセッサ認証用情報「Key2」を転送する際のバス40の使用状況を示す図である。第1の変更例と同様に、実施の形態3において使用していなかったデータ線に第1プロセッサ認証用情報「Key1」,「Key2」を配置している。ただし、第2の変更例においては、第1プロセッサ認証用情報「Key1」,「Key2」はいずれもデータ長がN/2ビットである。
図25に示すように、起動停止制御装置14は、サイクルnにおいてコントロール信号に読み出し命令を指定する。そして、サイクルnにおけるデータには、Nビット中の上位N/2部分に第1起動停止制御装置24aから第1プロセッサ認証用情報「Key1」が配置され、Nビット中の下位N/2ビット部分に第2起動停止制御装置24bから第2プロセッサ認証用情報「Key2」が配置される。第1プロセッサ認証用情報「Key1」,「Key2」は、いずれもデータ長がN/2ビットであるので、図24とは異なり1サイクルで転送が完了し、この場合さらに認証情報の交換にかかるサイクル数を削減することができる。
さらに、起動停止制御装置14は、2つのN/2ビットのプロセッサ認証用情報「Key1」,「Key2」をまとめてNビットのプロセッサ認証用情報1つとして扱ってもよい。このように、2つのメモリ20a,20bにより生成された第1プロセッサ認証用情報と第2プロセッサ認証用情報をあわせて1つのプロセッサ認証用情報として扱うことにより、プロセッサ認証用情報の共有および交換時に、プロセッサ認証用情報の分割処理や再構築の処理を不要とすることができる。
また、実施の形態3の第3の変更例としては、起動停止制御装置14は、メモリ20aおよびメモリ20bをまとめて1つのメモリとして扱ってもよい。この場合、メモリ認証用情報生成部15が生成するメモリ認証用情報は1つになる。
図26は、実施の形態3の第3の変更例にかかるコンピュータシステム1において、電力供給停止時に、起動停止制御装置14が第1起動停止制御装置24aおよび第2起動停止制御装置24bへメモリ認証用情報を転送する際の、バス40の使用状況を示す模式図である。
起動停止制御装置14は、コンピュータシステム1が搭載するメモリは1つだと認識しているため1つのNビットのメモリ認証用情報を転送するが、第1起動停止制御装置24aと第2起動停止制御装置24bへはそれぞれ上位N/2ビットと下位N/2ビットが転送され、第1起動停止制御装置24aと第2起動停止制御装置24bは、そのN/2ビットの情報を第1メモリ認証用情報および第2メモリ認証用情報として第1認証用情報記憶部26aと第2認証用情報記憶部26bに記憶する。
そして、電力供給再開時には、図27のようにして第1起動停止制御装置24aと第2起動停止制御装置24bからN/2ビットずつ、あわせてNビットのメモリ認証用情報が起動停止制御装置14へ転送される。
起動停止制御装置14はコンピュータシステム1が搭載しているメモリは一つとして扱っているので、第1メモリ20aおよび第2メモリ20bを個別に判断することなく、転送されてきたNビットのメモリ認証用情報と、認証用情報記憶部16に保持しているメモリ認証用情報とが一致するか否かに基づいて、第1メモリ20aおよび第2メモリ20bの認証を行うことができる。すなわち、両者のメモリ認証用情報が一致した場合には、第1メモリ20aおよび第2メモリ20bの認証に成功したと判断し、第1メモリ20aおよび第2メモリ20bのいずれのメモリへのアクセスも許可する。
また、両者のメモリ認証用情報が一致しない場合には、第1メモリ20aおよび第2メモリ20bの認証に失敗したと判断し、第1メモリ20aおよび第2メモリ20bのいずれのメモリへのアクセスも禁止する。
このようにすることで、起動停止制御装置14はメモリ認証用情報生成部15が生成するNビットのメモリ認証用情報1つで、第1メモリ20aと第2メモリ20bの両方を1つのメモリとみなして認証することができる。これにより、認証は行いながらも認証情報共有処理にかかるサイクル数の削減や認証処理の軽減を図ることができる。
第2の変更例および第3の変更例のいずれにおいても、第1の変更例同様、認証用情報の交換の際に、アドレスにはプロセッサ側認証用情報記憶表17に記憶されているプロセッサ認証用情報格納場所情報を使用することが可能である。または、第1メモリ20aおよび第2メモリ20bにアクセスするための専用の特別なアドレスであってもよい、このように、アドレスには第1メモリ20aおよび第2メモリ20bが認証用情報の交換処理であることを判断できる情報であればよく、その内容は実施の形態に限定されるのもではない。
また、第4の変更例としては、本実施の形態においては、第1メモリ20aおよび第2メモリ20bは、いずれもバス40とN/2本のデータ線と接続したが、各メモリ20a,20bに接続するデータ線の数はこれに限定されるものではない。第1メモリ20aがバス40と接続するデータ線の数をjとし、第2メモリ20bがバス40と接続するデータ線の数をkとした場合に以下の式(1)が満たされればよい。この場合には、jおよびkの値に基づいて、接続情報が定まる。
また、コンピュータシステム1が3つ以上のメモリを備えている場合には、各メモリに接続するデータ線の合計がバスのデータ線の本数Nと等しくなればよく、この条件のもとにおいては、各メモリに接続されるデータ線の数は任意である。
また、第5の変更例としては、本実施の形態にかかる認証用情報共有処理(ステップS114)においては、図9を参照しつつ説明したようにステップS301において転出すべき認証用情報を分割すべきか否かを判断し、ステップS321において転送されてくる認証用情報が分割されているか否かを判断している。
ただし、本実施の形態のように装置製造時にバス40とプロセッサ10、第1メモリ20aおよび第2メモリ20bとの間の接続状態から認証用情報が分割されて転送されてくることがわかっている場合には、ステップS301およびステップS321の判断は行わなくともよい。この場合には、ステップS300からステップS310へ進む。また、ステップS320からステップS322へ進む。
同様に、認証用情報共有処理(ステップS124)においても、図11を参照しつつ説明したようにステップS331およびステップS334において認証用情報の分割の有無について判断しているが、これにかえて、ステップS330からステップS332へ進み、さらにステップS333からステップS340へ進むこととしてもよい。
また、認証用情報交換処理(ステップS210)においても、図13を参照しつつ説明したようにステップS351およびステップS371を省略し、ステップS350からステップS360へ進み、さらにステップS370からステップS372へ進むこととしてもよい。
また、認証用情報交換処理(ステップS220)においても、図15を参照しつつ説明したようにステップS381およびステップS384を省略し、ステップS380からステップS382へ進み、さらにステップS383からステップS390へ進むこととしてもよい。
(実施の形態4)
図28は、実施の形態4にかかるコンピュータシステム1の全体構成を示すブロック図である。実施の形態4にかかるコンピュータシステム1は、複数のプロセッサを備えている。すなわち、実施の形態4にかかるコンピュータシステム1は、第1プロセッサ10aと、第2プロセッサ10bと、メモリ20と、電源ユニット50と、バス40とを備えている。
そして、第1プロセッサ10aおよび第2プロセッサ10bは、それぞれメモリ20との間で認証を行う。すなわち、第1プロセッサ10aおよび第2プロセッサ10bの認証相手はメモリ20のみである。したがって、第1プロセッサ10aおよび第2プロセッサ10bはいずれもプロセッサ側認証用情報記憶表17は備えなくてもよい。
一方、メモリ20は、第1プロセッサ10aおよび第2プロセッサ10bのいずれとの間においても認証を行う。したがって、メモリ20の認証用情報記憶部26は、メモリ側認証用情報記憶表27を有している。メモリ側認証用情報記憶表27を利用することにより、第1プロセッサ10aが生成した第1メモリ認証用情報と第2プロセッサ10bが生成した第2メモリ認証用情報を区別することができる。また,第1プロセッサ10aを認証するための第1プロセッサ認証用情報と、第2プロセッサ10bを認証するための第2プロセッサ認証用情報を区別することができる。
図29は、メモリ側認証用情報記憶表27のデータ構成を模式的に示す図である。プロセッサを識別するためのプロセッサ識別子「プロセッサ01」,「プロセッサ02」と各プロセッサ10a,10bにより生成された第1メモリ認証用情報「Key11」および第2メモリ認証用情報「Key12」、さらにプロセッサ認証用情報生成部25が生成した第1プロセッサ認証用情報「Key13」および第2プロセッサ認証用情報「Key14」が対応付けて記憶されている。
プロセッサ識別子は、コンピュータシステム1上において、各プロセッサ10a,10bを識別するための信号の内容である。例えば、プロセッサの製造会社名と製造番号とを組み合わせたものが好ましい。
また、メモリ側認証用情報記憶表27にメモリ認証用情報自体を格納するのにかえて、メモリ認証用情報が記憶されている場所を特定するための情報を格納することとしてもよい。同様に、メモリ側認証用情報記憶表27にプロセッサ認証用情報自体を格納するのにかえて、プロセッサ認証用情報が記憶されている場所を特定するための情報を格納することとしてもよい。
メモリ側認証用情報記憶表27に記憶されている情報のうち、メモリ認証用情報およびプロセッサ認証用情報以外の内容は、コンピュータシステム1の初回起動時にシステム構成を検査して設定することができる。
しかし、不正アクセスによる書き換え防止等のセキュリティーの観点から、システム製造時や出荷時にあらかじめ設定しておき、後から書き換えられないようにすることが望ましい。また、メモリ認証用情報やプロセッサ認証用情報と同様に、メモリ側認証用情報記憶表27も不揮発性記憶素子に記憶させることが望ましい。
実施の形態4にかかるコンピュータシステム1におけるバス40のように、バスが複数の装置に共有されている場合には、一般的に、現在どの装置がバスを使用しているかを示す情報(以降、「バスマスタ情報」と称する)が流れている。例えば、第1プロセッサ10aがメモリ20の内容をバス40を介して読み出そうとしている時には、「第1プロセッサ10aが使用している」という内容の情報がバス40に流れている。起動停止制御装置24は、認証用情報を交換する際に、このバスマスタ情報に基づいて、いずれのプロセッサ10a,10bが認証用情報の交換を求めているかを特定する。
さらにメモリ20は、認証用情報の交換命令が転送されてきた場合には、バスマスタ情報を参照することにより、第1プロセッサ10aおよび第2プロセッサ10bのうちいずれのプロセッサが転送元であるかを特定することができる。
図30は、実施の形態4にかかるコンピュータシステム1において、電力供給が停止した場合に実行される停止処理を示すフローチャートである。電源ユニット50の電源制御装置52が電力供給停止を検出し(ステップS100)、蓄電装置53から第1プロセッサ10a、第2プロセッサ10bおよびメモリ20への電力供給を開始する(ステップS101)。そして、電力供給停止情報を第1起動停止制御装置14a、第2起動停止制御装置14bおよび起動停止制御装置24に送信する(ステップS102)。
第1プロセッサ10aは、蓄電装置53から電力供給停止情報を受け付けると、電力供給停止情報を受け付けたときに進行していた通常動作を停止させる(ステップS110)。以下、ステップS111〜ステップS113までの処理は、実施の形態1において図3を参照しつつ説明したステップS111〜ステップS113までの処理と同様である。
同様に、第2プロセッサ10bは、蓄電装置53から電力供給停止情報を受け付けると、電力供給停止情報を受け付けたときに進行していた通常動作を停止させる(ステップS140)。以下、ステップS141からステップS143までの処理は、第1プロセッサ10aにおけるステップS111からステップS113までの処理と同様である。
一方、メモリ20は、電源ユニット50の電源制御装置52から電力供給停止情報を受け付けると、電力供給停止情報を受け付けたときに進行していた通常動作を停止させる(ステップS120)。そして、次回電源が入ったときに、電力供給停止情報を受け付けたときと同じ状態から通常動作を再開できる状態、すなわち安定した状態になるまで待機する(ステップS121)。
次に、プロセッサ認証用情報生成部25は、起動停止制御装置24からの指示により、第1プロセッサ10aを認証するための第1プロセッサ認証用情報と、第2プロセッサ10bを認証するための第2プロセッサ認証用情報を生成する(ステップS122)。そして、生成した第1プロセッサ認証用情報と第2プロセッサ認証用情報を、認証用情報記憶部26のメモリ側認証用情報記憶表27に記憶する(ステップS123)。
具体的には、第1プロセッサ認証用情報を、第1プロセッサ10aを示すプロセッサ識別子「プロセッサ01」に対応付けて認証用情報記憶部26のメモリ側認証用情報記憶表27に記憶する。すなわち、第1プロセッサ10aの識別子「プロセッサ01」で識別されるエントリのプロセッサ認証用情報の欄に書き込む。また、第2プロセッサ認証用情報を、第2プロセッサ10bを示すプロセッサ識別子「プロセッサ02」に対応付けて認証用情報記憶部26のメモリ側認証用情報記憶表27に記憶する。すなわち、第2プロセッサ10bの識別子「プロセッサ02」で識別されるエントリのプロセッサ認証用情報の欄に書き込む。
そして、ステップS114,124において第1プロセッサ10aとメモリ20は、認証用情報共有処理を行う。また、ステップS144,124において第2プロセッサ10bとメモリ20は、認証用情報共有処理を行う。
具体的には、第1起動停止制御装置14aは、第1メモリ認証用情報生成部15aにより生成された第1メモリ認証用情報「Key11」をバス40を介して起動停止制御装置24に送る。起動停止制御装置24は、第1起動停止制御装置14aから取得した第2メモリ認証用情報「Key11」を、バスマスタ情報から取得したプロセッサ識別子とともに認証用情報記憶部26に送る。
そして、認証用情報記憶部26においては、取得した第1メモリ認証用情報を、メモリ側認証用情報記憶表27の第1プロセッサ10aのプロセッサ識別子「プロセッサ01」で識別されるエントリのメモリ認証用情報の欄に書き込んで記憶させる。さらに、第1起動停止制御装置14aは、起動停止制御装置24から第1プロセッサ認証用情報を取得し、これを第1認証用情報記憶部16aに記憶させる。
また、第2起動停止制御装置14bは、第2メモリ認証用情報生成部15bにより生成された第2メモリ認証用情報「Key12」をバス40を介して起動停止制御装置24に送る。起動停止制御装置24は、第2起動停止制御装置14bから取得した第2メモリ認証用情報「Key12」を、バスマスタ情報から取得したプロセッサ識別子とともに認証用情報記憶部26に送る。
そして、認証用情報記憶部26においては、取得した第2メモリ認証用情報を、メモリ側認証用情報記憶表27の第2プロセッサ10bのプロセッサ識別子「プロセッサ02」で識別されるエントリのメモリ認証用情報の欄に書き込んで記憶する。さらに、第2起動停止制御装置14bは、起動停止制御装置24から第2プロセッサ認証用情報を取得し、これを第2認証用情報記憶部16bに記憶させる。次に、メモリ20、第1プロセッサ10aおよび第2プロセッサ10bは、動作を停止する(ステップS115,145,125)。
図31は、実施の形態4にかかるコンピュータシステム1において、電力供給が停止した後、再び電力供給が開始した場合に行う認証処理を示すフローチャートである。第1プロセッサ10aは、電力供給が開始されると、電力供給停止処理においてメモリ20と共有した第1メモリ認証用情報「Key11」および第1プロセッサ認証用情報「Key13」を、バス40を介して交換する(ステップS210,ステップS220)。
同様に、第2プロセッサ10bは、電力供給が開始されると、電力供給停止処理においてメモリ20と共有した第2メモリ認証用情報「Key12」および第2プロセッサ認証用「Key14」情報を、バス40を介して交換する(ステップS240,ステップS220)。
メモリ認証用情報「Key11」,「Key12」の交換は、具体的には以下のようにして行われる。すなわち、第1起動停止制御装置14aが起動停止制御装置24に対しコントロール信号として読み出し命令(READ)を送出する。同様に、第2起動停止制御装置14bが起動停止制御装置24に対しコントロール信号として読み出し命令(READ)を送出する。
すると、起動停止制御装置24は、バス40に流れるバスマスタ情報を検査し、第1プロセッサ10aおよび第2プロセッサ10bのいずれのプロセッサからの命令かを特定し、メモリ認証用情報記憶表27に記憶されている各プロセッサ10a,10bに対するメモリ認証用情報「Key11」,「Key12」をバス40に送出する。
また、プロセッサ認証用情報「Key13」,「Key14」の交換は、具体的には以下のようにして行われる。すなわち、第1起動停止制御装置14aおよび第2起動停止制御装置14bは、それぞれバス40に対してコントロール信号として書き込み命令(WRITE)を送出し、データとして第1プロセッサ認証用情報および第2プロセッサ認証用情報を送出する。
起動停止制御装置24は、バス40のバスマスタ情報を使用して第1プロセッサ10aおよび第2プロセッサ10bのいずれのプロセッサから転送されたプロセッサ認証用情報であるかを特定して取得する。なお、いずれの場合も暗号化など安全な手段を用いてメモリ認証用情報およびプロセッサ認証用情報を転送するのが望ましい。
次に、第1起動停止制御装置14aは、起動停止制御装置24から受け取ったメモリ認証用情報「Key11」と、第1メモリ認証用情報生成部15aにより生成され第1認証用情報記憶部16aに記憶されているメモリ認証用情報「Key11」とを比較する(ステップS211)。2つのメモリ認証用情報「Key11」が一致した場合、すなわちメモリ20の認証に成功した場合には(ステップS212,Yes)、通常動作を再開する(ステップS213)。
一方、ステップS212において2つのメモリ認証用情報「Key11」が一致しない場合、すなわち相手のメモリの認証に成功しなかった場合には(ステップS212,No)、動作を停止する(ステップS214)。
なお、実施の形態4にかかるコンピュータシステム1における第2起動停止制御装置14bのステップS241からステップS244までの処理は、実施の形態4にかかるコンピュータシステム1における第1起動停止制御装置14aのステップS211からステップS214までの処理と同様である。
一方、起動停止制御装置24は、認証用情報の交換が完了すると、次に、認証用情報を交換したすべてのプロセッサ、すなわち第1プロセッサ10aおよび第2プロセッサ10bの認証を行う。具体的には、まず、第1プロセッサ10aおよび第2プロセッサ10bから転送されてきた第1プロセッサ認証用情報および第2プロセッサ認証用情報と、プロセッサ認証用情報生成部25により生成され認証用情報記憶部26の認証用情報記憶部27に記憶されている第1プロセッサ認証用情報および第2プロセッサ認証用情報とを比較する(ステップS221)。
第1プロセッサ10aおよび第2プロセッサ10bのそれぞれについて2つのプロセッサ認証用情報が一致した場合には、すなわち相手のプロセッサの認証に成功した場合には(ステップS222,Yes)、再びステップS221に戻り、残りのプロセッサに対しステップS221以降の処理を行う。すべてのプロセッサの認証に成功すると、ステップS223へ進む。そして、通常動作を開始する。
一方、いずれかのプロセッサの認証に失敗した場合には(ステップS222,No)、動作を停止する(ステップS224)。以上で、電力供給が開始した際に実行される認証処理が完了する。
実施の形態4の第1の変更例としては、実施の形態4にかかるコンピュータシステム1は、メモリは1つのみ設けられていたが、これにかえて、複数のメモリを備えてもよい。すなわち、複数のプロセッサおよび複数のメモリを備えてもよい。この場合には、複数のプロセッサそれぞれが複数のメモリとの間で認証処理を行うこととする。
また、第2の変更例としては、実施の形態4にかかるコンピュータシステム1ではすべてのプロセッサの認証に成功した場合にのみ、メモリ20は通常動作を開始するとしたが、これにかえて、コンピュータシステム1に存在するプロセッサのうち、どれか1つでも認証に成功した場合メモリ20が通常動作を開始することにしてもよい。
ただしそのような場合、不正アクセス防止等のセキュリティーの観点から、認証に失敗したプロセッサからメモリ20へはアクセスできないようにするのが好ましい。このようにすることで、コンピュータシステム1に存在するプロセッサのうち1つが不正アクセスを受けても、システムは不正アクセスを受けていないプロセッサを使用して動作を継続することができる。
また、第3の変更例としては、実施の形態4にかかるコンピュータシステム1においては、プロセッサ認証用情報生成部25が生成した第1プロセッサ認証用情報を第1プロセッサ10aとの間で共有し、プロセッサ認証用情報生成部25が生成した第2プロセッサ認証用情報を第2プロセッサ10bとの間で共有し、メモリ20は、この第1プロセッサ認証用情報および第2プロセッサ認証用情報に基づいて、第1プロセッサ10aおよび第2プロセッサ10bの認証を行ったが、これにかえて、メモリ20は、第1プロセッサ10aを認証するためのプロセッサ認証用情報と第2プロセッサ10bを認証するためのプロセッサ認証用情報とを同じものにしてもよい。
この場合、電力供給停止時にメモリ20においては、起動停止制御装置24からの指示により、メモリ認証用情報生成部25は、第1プロセッサ10aおよび第2プロセッサ10bを認証するためのプロセッサ認証用情報を1つ生成し、認証用情報記憶部26のメモリ側認証用情報記憶表27に記憶する。すなわち、メモリ側認証用情報記憶表27の、第1プロセッサ10aの識別子「プロセッサ01」に対応付けられたエントリのプロセッサ認証用情報の欄に記憶されるプロセッサ認証用情報「Key13」と、第2プロセッサ10bの識別子「プロセッサ02」に対応付けられたエントリのプロセッサ認証用情報の欄に記憶されるプロセッサ認証用情報「Key14」は同一の内容となる。そして、第1起動停止制御装置14aと第2起動停止制御装置14bに上記プロセッサ認証用情報を転送する。
このように、同一のプロセッサ認証用情報を用いて全てのプロセッサを認証することにより、搭載するプロセッサの数が増加しても、不正アクセスを防止するという目的を達成しながら、生成するプロセッサ認証用情報の数を削減することができ、プロセッサ認証用情報生成にかかる時間を削減することができる。また、認証用情報記憶表27において、プロセッサ認証用情報の欄をメモリ認証用情報の格納場所を示す情報のみを記憶するように構成すれば、全てのプロセッサのエントリにおけるプロセッサ認証用情報の欄は同じ格納場所を指し示すことになり、プロセッサ認証用情報を記憶するために必要な記憶領域を削減することができる。
なお、さらに本例においては、各プロセッサに対するプロセッサ認証用情報を識別する必要はないので、上述のように第1プロセッサ10aの識別子「プロセッサ01」および第2プロセッサ10bの識別子「プロセッサ02」それぞれに同一のプロセッサ認証用情報を対応付けて保持するのにかえて、単にプロセッサ認証用情報を保持することとしてもよい。
なお、実施の形態1から実施の形態3においては、1つのプロセッサと複数のメモリを備えたコンピュータシステム1について説明したが、メモリとプロセッサを読み替えて、実施の形態1から実施の形態3にかかるコンピュータシステム1を実施の形態4にかかるコンピュータシステム1に適用してもよいことは言うまでもない。