(58)【調査した分野】(Int.Cl.,DB名)
アドレスと、前記アドレスへデータを書き込むことを指示する書込み指示信号または前記アドレスからデータを読み出すことを指示する読出し指示信号とをセレクタに出力するCPU(Central Processing Unit)と、
前記アドレス、前記書込み指示信号及び前記読出し指示信号に応じて、前記CPUから入力されたデータの出力先が決定されるようにハードウェアで構成された前記セレクタと、
前記セレクタが出力する信号に基づいて、情報処理システムが起動する際に、スナップショットイメージ情報とレジスタを備える非標準デバイスの初期設定データとを含むデータを記憶する揮発性メモリと、
前記揮発性メモリが前記初期設定データを記憶するメモリ領域のアドレスと同一のアドレスを有する前記レジスタと、
を備える情報処理システム。
CPU、アドレス、書込み指示信号及び読出し指示信号に応じて、前記CPUから入力されたデータの出力先が決定されるようにハードウェアで構成されたセレクタ、揮発性メモリ、及び前記揮発性メモリがレジスタを備える非標準デバイスの初期設定データを記憶するメモリ領域のアドレスと同一のアドレスを有するレジスタ、を有する情報処理システムによる情報処理方法であって、
前記CPUは、
前記アドレスと、前記アドレスへデータを書き込むことを指示する前記書込み指示信号または前記アドレスからデータを読み出すことを指示する前記読出し指示信号とを前記セレクタに出力し、
前記揮発性メモリは、
前記セレクタが出力する信号に基づいて、前記情報処理システムが起動する際に、スナップショットイメージ情報と前記初期設定データとを含むデータを記憶する、
情報処理システムによる情報処理方法。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、情報処理システムにおいて使用される周辺デバイスには、情報処理システムが起動する際に、スナップショットイメージ情報を含むデータがメインメモリに書き込まれることで、起動後に所定の状態で直ちに動作できる状態に初期化される周辺デバイスと、レジスタを備え、起動後にそのレジスタの初期設定が行われるまで動作できる状態に初期化されない周辺デバイスとがある。なお、スナップショットイメージ情報とは、工場出荷時の状態や装置の電源を落とす直前の状態などの所定の状態を示す情報であり、不揮発性メモリに記憶させておくことで、情報処理システムがシャットダウンした場合であっても、失われない情報である。情報処理システムがシャットダウンし、起動すると、レジスタを備える周辺デバイスのレジスタの値は、いわゆる不定状態となる。したがって、初期設定を示す初期設定データがレジスタに書き込まれるまで、すなわち初期化されるまで、レジスタを備える周辺デバイスは、動作することができない。つまり、レジスタを備える周辺デバイスが初期化されないため、情報処理システムでは、レジスタを備える周辺デバイスを起動後に直ちに使用することができない。
そのため、情報処理システムが起動する際に、レジスタを備える周辺デバイスを直ちに初期化することのできる技術が求められている。
【0005】
本発明は、上記の課題を解決することのできる情報処理システム及び情報処理システムによる情報処理方法を提供することを目的としている。
【課題を解決するための手段】
【0006】
本発明の第1の態様によれば、情報処理システム(1)は、アドレスと、前記アドレスへデータを書き込むことを指示する書込み指示信号または前記アドレスからデータを読み出すことを指示する読出し指示信号とをセレクタ(70)に出力するCPU(Central Processing Unit)(20)と、前記アドレス、前記書込み指示信号及び前記読出し指示信号に応じて、前記CPUから入力されたデータの出力先が決定されるようにハードウェアで構成された前記セレクタと、前記セレクタが出力する信号に基づいて、情報処理システムが起動する際に、スナップショットイメージ情報とレジスタを備える非標準デバイス(40)の初期設定データとを含むデータを記憶する揮発性メモリ(50)と、前記揮発性メモリが前記初期設定データを記憶するメモリ領域のアドレスと同一のアドレスを有する前記レジスタ(401)と、を備える。
情報処理システムは、情報処理システムが起動する際に、スナップショットイメージ情報とレジスタを備える非標準デバイスの初期設定データとを含むデータを、レジスタのアドレスと同一のアドレスの揮発性メモリのメモリ領域へ書き込む処理を行う。こうすることで、情報処理システムが起動する際に、揮発性メモリにおいてスナップショットイメージ情報が再現されると同時に、レジスタに初期設定データが書き込まれる。したがって、スナップショットイメージ情報が揮発性メモリに書き込まれ、標準デバイスが動作可能な状態になるのとほぼ同時に、非標準デバイスは、動作可能な状態となる。
このように、情報処理システムによって、情報処理システムが起動する際に、レジスタを備える周辺デバイスを直ちに初期化することができる。
【0007】
本発明の第2の態様によれば、第1の態様における情報処理システムにおいて、前記セレクタは、前記揮発性メモリと前記レジスタとが有する同一のアドレスが入力され、前記書込み指示信号が入力された場合、前記同一のアドレスを前記揮発性メモリと前記レジスタとに出力し、前記揮発性メモリと前記レジスタの両方に対して書込みデータを出力するものであってもよい。
情報処理システムは、揮発性メモリとレジスタの両方に、アドレスと書込みデータとを入力する。そのため、情報処理システムは、揮発性メモリとレジスタのそれぞれにおいて同一のアドレスを示すメモリ領域に同一の書込みデータが書き込む。こうすることで、情報処理システムは、同一のアドレスを示すメモリ領域において、揮発性メモリとレジスタとで同期をとることができる。
【0008】
本発明の第3の態様によれば、第1の態様または第2の態様における情報処理システムにおいて、前記セレクタは、前記揮発性メモリと前記レジスタとが有する同一のアドレスが入力され、前記読出し指示信号が入力された場合、前記同一のアドレスを前記レジスタに出力し、前記レジスタから読出しデータを取得し、前記書込み指示信号と、前記レジスタから取得した読出しデータとを前記揮発性メモリに出力するものであってもよい。
情報処理システムは、揮発性メモリとレジスタの両方に共通するアドレスからデータを読み出す場合、レジスタから書込みデータを取得する。そして、情報処理システムは、レジスタから取得した読出しデータに対応するアドレスと同一のアドレスの揮発性メモリのメモリ領域に読出しデータを書き込む。こうすることで、情報処理システムは、同一のアドレスを示すメモリ領域において、揮発性メモリとレジスタとで同期をとることができる。
【0009】
本発明の第4の態様によれば、第1の態様または第2の態様における情報処理システムにおいて、前記セレクタは、前記揮発性メモリと前記レジスタとが有する同一のアドレスが入力され、前記読出し指示信号が入力された場合、前記同一のアドレスを前記
揮発性メモリに出力し、前記
揮発性メモリから読出しデータを取得し、前記書込み指示信号と、前記
揮発性メモリから取得した読出しデータとを前記レジスタに出力するものであってもよい。
情報処理システムは、揮発性メモリとレジスタの両方に共通するアドレスからデータを読み出す場合、揮発性メモリから書込みデータを取得する。そして、情報処理システムは、揮発性メモリから取得した読出しデータに対応するアドレスと同一のアドレスのレジスタのメモリ領域に読出しデータを書き込む。こうすることで、情報処理システムは、同一のアドレスを示すメモリ領域において、揮発性メモリとレジスタとで同期をとることができる。
【0010】
本発明の第5の態様によれば、情報処理システムによる情報処理方法は、CPU、アドレス、書込み指示信号及び読出し指示信号に応じて、前記CPUから入力されたデータの出力先が決定されるようにハードウェアで構成されたセレクタ、揮発性メモリ、及び前記揮発性メモリがレジスタを備える非標準デバイスの初期設定データを記憶するメモリ領域のアドレスと同一のアドレスを有するレジスタ、を有する情報処理システムによる情報処理方法であって、前記CPUは、前記アドレスと、前記アドレスへデータを書き込むことを指示する前記書込み指示信号または前記アドレスからデータを読み出すことを指示する前記読出し指示信号とを前記セレクタに出力し、前記揮発性メモリは、前記セレクタが出力する信号に基づいて、前記情報処理システムが起動する際に、スナップショットイメージ情報と前記初期設定データとを含むデータを記憶する。
情報処理システムによる情報処理方法は、揮発性メモリとレジスタの両方に共通するアドレスからデータを読み出す場合、レジスタから書込みデータを取得する。そして、情報処理システムによる情報処理方法は、レジスタから取得した読出しデータに対応するアドレスと同一のアドレスの揮発性メモリのメモリ領域に読出しデータを書き込む。こうすることで、情報処理システムによる情報処理方法は、同一のアドレスを示すメモリ領域において、揮発性メモリとレジスタとで同期をとることができる。
【発明の効果】
【0011】
本発明の実施形態による情報処理システム及び情報処理方法によれば、情報処理システムが起動する際に、レジスタを備える周辺デバイスを直ちに初期化することができる。
【発明を実施するための形態】
【0013】
<実施形態>
(情報処理システムの構成)
以下、本発明の一実施形態による情報処理システムの構成について説明する。
本発明の一実施形態による情報処理システム1は、
図1に示すように、電源10、CPU(Central Processing Unit)20、標準デバイス30、非標準デバイス40(レジスタを備える周辺デバイスの一例)、メモリ50(揮発性メモリの一例)、ストレージ60、セレクタ70を備える。
【0014】
情報処理システム1は、非標準デバイス40が備えるレジスタと同一のアドレスで1対1で対応するメモリ領域をメモリ50において予め確保し、それらの1対1で対応するメモリ領域のデータを同期させるシステムである。これにより、情報処理システム1は、起動する際にも、スナップショットイメージ情報と非標準デバイス40の初期設定データとを含むデータがメインメモリに書き込まれることによって初期化される周辺デバイスとほぼ同タイミングに、レジスタを備える周辺デバイスを初期化することができる。スナップショットイメージ情報とは、不揮発性メモリに記憶される情報処理システム1の中断の直前や工場出荷時などの所定の状態を示すデータのことである。初期化とは、各周辺デバイスを動作可能な状態に設定することである。高速起動とは、情報処理システム1が起動を開始し、スナップショットイメージ情報を含むデータがメインメモリに書き込まれることによって、工場出荷時の状態や装置の電源を落とす直前の状態などの所定の状態で情報処理システム1を起動させることである。情報処理システム1が高速起動し、レジスタを備える周辺デバイスを初期化することにより、利用者は、情報処理システム1を起動直後に所定の状態から使用を開始することができる。
【0015】
電源10は、
図1に示すように、CPU20、標準デバイス30、非標準デバイス40、メモリ50、ストレージ60、セレクタ70のそれぞれに電力を供給する。
【0016】
標準デバイス30は、スナップショットイメージ情報を含むデータがメインメモリに書き込まれることによって初期化される周辺デバイスである。標準デバイス30は、情報処理システム1において電源10が起動する際に、ブートローダによって、メモリ50にスナップショットイメージ情報を含むデータが書き込まれることで、所定の状態で高速起動することができる。所定の状態とは、情報処理システム1が処理の中断の直前や工場出荷時などの状態のことである。
【0017】
非標準デバイス40は、レジスタを備える周辺デバイスである。非標準デバイス40は、初期設定を示す初期設定データがレジスタに書き込まれることで動作可能な状態になる。非標準デバイス40は、
図1に示すように、レジスタ401を備える。レジスタ401は、初期設定データを保持するレジスタである。レジスタ401は、
図2に示すように、reg_adr端子、reg_wreq端子、reg_wdata端子、reg_rreq端子、reg_rdata端子、reg_rvalid端子を備える。reg_adr端子は、レジスタ401についての読み出しまたは書き込み時のアドレスをCPU20から受ける端子である。reg_wreq端子は、レジスタ401へ書込みを指示する信号をCPU20から受ける端子である。reg_wdata端子は、reg_wreq端子が書込みを指示する信号を受けたときに書き込むデータをCPU20から受ける端子である。reg_rreq端子は、読出しを指示する信号をCPU20から受ける端子である。reg_rdata端子は、reg_rreq端子が読出しを指示する信号を受けたときに読み出されたデータをCPU20に出力する端子である。reg_rvalid端子は、reg_rdata端子から出力されるデータ(すなわち読み出されるデータ)を特定する信号である。
【0018】
メモリ50は、CPU20が処理に用いるメインメモリである。メモリ50は、揮発性のメモリである。メモリ50とCPU20との間で高速にデータの送受信が行われる。情報処理システム1が起動する際に、メモリ50には、ストレージ60が記憶するスナップショットイメージ情報と非標準デバイス40の初期設定データとを含むデータが書き込まれる。メモリ50にスナップショットイメージ情報と非標準デバイス40の初期設定データとを含むデータが書き込まれることで、CPU20、標準デバイス30、非標準デバイス40、メモリ50、ストレージ60のそれぞれが動作可能となる。なお、スナップショットイメージ情報と非標準デバイス40の初期設定データとを含むデータには、書込みを示すコマンド情報と書込み先のアドレスを示す情報とが含まれている。また、メモリ50では、非標準デバイス40が備えるレジスタ401と同一のアドレスとアドレスに対応するメモリ領域が予め確保されている。メモリ50は、
図2に示すように、mem_adr端子、mem_wreq端子、mem_wdata端子、mem_rreq端子、mem_rdata端子、mem_rvalid端子を備える。mem_adr端子は、メモリ50についての読み出しまたは書き込み時のアドレスをCPU20から受ける端子である。mem_wreq端子は、メモリ50へ書込みを指示する信号をCPU20から受ける端子である。mem_wdata端子は、mem_wreq端子が書込みを指示する信号を受けたときに書き込むデータをCPU20から受ける端子である。mem_rreq端子は、読出しを指示する信号をCPU20から受ける端子である。mem_rdata端子は、mem_rreq端子が読出しを指示する信号を受けたときに読み出されたデータをCPU20に出力する端子である。mem_rvalid端子は、mem_rdata端子から出力されるデータ(すなわち読み出されるデータ)を特定する信号である。
【0019】
ストレージ60は、不揮発性のメモリである。ストレージ60は、起動時にメモリ50に書き込まれるスナップショットイメージ情報と非標準デバイス40の初期設定データとを含むデータを記憶する。また、ストレージ60は、OS、アプリケーションプログラム、アプリケーションプログラムによって処理されたデータなどを記憶する。
【0020】
(CPU20の機能)
CPU20は、セレクタ70を介して、メモリ50及びレジスタ401の少なくとも一方との間でデータの読み書きを行う。CPU20は、
図2に示すように、adr端子、wreq端子、wdata端子、rreq端子、rdata端子、rvalid端子を備える。adr端子は、メモリ50及びレジスタ401の少なくとも一方についての読み出しまたは書き込み時のアドレスを出力する端子である。wreq端子は、メモリ50及びレジスタ401の少なくとも一方へ書込みを指示する信号を出力する端子である。wdata端子は、wreq端子が書込みを指示する信号を出力したときに書き込むデータを出力する端子である。rreq端子は、メモリ50及びレジスタ401の少なくとも一方へ読出しを指示する信号を出力する端子である。rdata端子は、rreq端子がメモリ50及びレジスタ401の少なくとも一方へ読出しを指示する信号を出力したときに読み出されたデータを受ける端子である。rvalid端子は、rdata端子から受けるデータ(すなわち読み出されたデータ)を特定する信号である。
【0021】
(セレクタ70の構成)
セレクタ70は、
図2に示すように、CPU20、メモリ50、レジスタ401のそれぞれに接続される。セレクタ70は、T1端子、T2端子、T3端子、T4端子、T5端子、T6端子、T7端子、T8端子、T9端子、T10端子、T11端子、T12端子、T13端子、T14端子、T15端子、T16端子、T17端子、T18端子を備える。T1端子は、adr端子に接続される。T2端子は、wreq端子に接続される。T3端子は、wdata端子に接続される。T4端子は、rreq端子に接続される。T5端子は、rdata端子に接続される。T6端子は、rvalid端子に接続される。T7端子は、mem_adr端子に接続される。T8端子は、mem_wreq端子に接続される。T9端子は、mem_wdataに接続される。T10端子は、mem_rreq端子に接続される。T11端子は、mem_rdata端子に接続される。T12端子は、mem_rvalid端子に接続される。T13端子は、reg_adr端子に接続される。T14端子は、wreg端子に接続される。T15端子は、reg_wdataに接続される。T16端子はreg_rreq端子に接続される。T17端子は、reg_rdata端子に接続される。T18端子は、reg_rvalid端子に接続される。
【0022】
セレクタ70は、CPU20から入力される信号に応じて適切なT7〜T18端子から信号を出力するまたは信号を受けることを実現するように論理設計された、ハードウェアによって実現される回路である。
具体的には、例えば、T1端子にメモリ50とレジスタ401とが有する同一のアドレスが入力され、T2端子に書込みを指示する信号が入力された場合、セレクタ70は、T1端子に入力されたアドレスをT7端子とT13端子の両方から出力する。また、セレクタ70は、T2端子に入力された書込みを指示する信号を、T8端子とT14端子の両方から出力する。また、セレクタ70は、T3端子に入力されたデータをT9端子とT15端子の両方に出力する。
【0023】
また、具体的には、例えば、T1端子にメモリ50のみが有するアドレスが入力され、T2端子に書込みを指示する信号が入力された場合、セレクタ70は、T1端子に入力されたアドレスをT7端子から出力する。また、セレクタ70は、T2端子に入力された書込みを指示する信号を、T8端子から出力する。また、セレクタ70は、T3端子に入力されたデータをT9端子に出力する。
【0024】
また、具体的には、例えば、T1端子にメモリ50とレジスタ401とが有する同一のアドレスが入力され、T4端子に読出しを指示する信号が入力された場合、T1端子に入力されたアドレスは、T7端子とT13端子とから出力される。T4端子に入力された読出しを指示する信号は、T16端子から出力される。また、T17端子はレジスタ401に接続され、データを取得する。T9端子は、T17が取得したデータをメモリ50に出力する。レジスタ401は、reg_rdata端子からデータを出力する際に、そのデータを特定するための“Lowレベルの信号”をreg_rvalid端子からセレクタ70に出力する。セレクタ70は、T18端子で受けた、データを特定するための“Lowレベルの信号”に応じて、T8端子からmem_wreg端子に書込みを指示する信号を出力し、レジスタ401の記憶するデータをメモリ50書き込む。
【0025】
また、具体的には、例えば、T1端子にメモリ50のみが有するアドレスが入力され、T4端子に読出しを指示する信号が入力された場合、T4端子に入力された読出しを指示する信号は、T10端子化出力される。また、T11端子はメモリ50に接続され、データを取得する。T5端子は、T11が取得したデータをCPU20に出力する。CPU20は、T1端子に入力したデータがメモリ50のみが有するアドレスであることを送信時に判定している。そのため、CPU20は、T5端子からデータを取得してデータの読み出しを完了する。
【0026】
(情報処理システム1が行う処理)
次に、本発明の一実施形態による情報処理システム1の処理について説明する。
ここでは、
図3(a)〜(d)に示す4つの場合について、情報処理システム1の処理の処理を説明する。
【0027】
(メモリ50へのデータの書き込み)
図3(a)に示すメモリ50へのデータの書き込み、すなわち、レジスタ401のアドレスとは異なるメモリ50のアドレス(例えば、
図3に示すアドレス“m1000”)のメモリ領域へのデータ“1234”の書き込みについて
図4に示す処理フローを用いて説明する。
【0028】
CPU20は、adr端子からT1端子へアドレス“m1000”を出力する(ステップS1)。CPU20は、wdata端子からT3端子へデータ“1234”を出力する(ステップS2)。そして、CPU20は、wreq端子からT2端子へ書込みを指示する“Lowレベルの信号”を出力する(すなわち、書込みを指示する信号がアサートされる)(ステップS3)。なお、CPU20は、ステップS1の処理とステップS2の処理をほぼ同時に行い、アドレスとデータの信号が安定した時に書込みを指示する信号を出力する。以下、CPU20が書き込み時にアドレスとデータを出力する処理は、特に記載しない場合であっても、ほぼ同時に行われるものである。また、CPU20が書き込み時に書込みを指示する信号を出力する処理は、アドレスとデータの信号が安定した時に行うものである。
【0029】
セレクタ70は、T1端子から入力されたアドレスをT7端子からmem_adr端子へ出力する(ステップS4)。また、セレクタ70は、T2端子から入力された書込みを指示する信号をT8端子からmem_wreq端子へ出力する(ステップS5)。また、セレクタ70は、T3端子から入力されたデータをT9端子からmem_wdata端子へ出力する(ステップS6)。
【0030】
メモリ50は、セレクタ70から、アドレス“m1000”、書込みを指示する“Lowレベルの信号”、データ“1234”を受ける。メモリ50は、書込みを指示する信号に応じて、アドレス“m1000”のメモリ領域にデータ“1234”を書き込む(ステップS7)。なお、セレクタ70は、上述したようにハードウェアによって実現される回路である。そのため、セレクタ70は、CPU20からアドレス、データ、書込みを指示する信号、読出しを指示する信号などを受けた場合、信号を受けるのとほぼ同時に処理を完了し、処理した信号を適切な端子から出力する。以下、特に記載しない場合であっても、セレクタ70は、入力信号を受けるのとほぼ同時に処理を完了し、処理した信号を適切な端子から出力する。
【0031】
(レジスタ401へのデータの書き込み)
図3(b)に示すレジスタ401へのデータの書き込み、すなわち、レジスタ401のアドレスと同一のメモリ50のアドレス(例えば、
図3に示すアドレス“m9000”)のメモリ領域へのデータ“5678”の書き込みについて
図5に示す処理フローを用いて説明する。
CPU20は、adr端子からT1端子へアドレス“m9000”を出力する(ステップS11)。また、CPU20は、wdata端子からT3端子へデータ“5678”を出力する(ステップS12)。そして、CPU20は、wreq端子からT2端子へ書込みを指示する“Lowレベルの信号”を出力する(ステップS13)。
【0032】
セレクタ70は、T1端子から入力されたアドレスをT7端子からmem_adr端子へ出力する(ステップS14)。セレクタ70は、T1端子から入力されたアドレスをT13端子からreg_adr端子へ出力する(ステップS15)。また、セレクタ70は、T3端子から入力されたデータをT9端子からmem_wdata端子へ出力する(ステップS16)。セレクタ70は、T3端子から入力されたデータをT15端子からreg_wdata端子へ出力する(ステップS17)。また、セレクタ70は、T2端子から入力された書込みを指示する信号をT8端子からmem_wreq端子へ出力する(ステップS18)。セレクタ70は、T2端子から入力された書込みを指示する信号をT14端子からreg_wreq端子へ出力する(ステップS19)。なお、セレクタ70が行うステップS14とS15、S16とS17、S18とS19のそれぞれの処理は、並行して行われる。
【0033】
メモリ50は、セレクタ70から、アドレス“m9000”、書込みを指示する“Lowレベルの信号”、データ“5678”を受ける。メモリ50は、書込みを指示する信号に応じて、アドレス“m9000”のメモリ領域にデータ“5678”を書き込む(ステップS20)。
【0034】
レジスタ401は、セレクタ70から、アドレス“m9000”、書込みを指示する“Lowレベルの信号”、データ“5678”を受ける。レジスタ401は、書込みを指示する信号に応じて、アドレス“m9000”のメモリ領域にデータ“5678”を書き込む(ステップS21)。
【0035】
なお、情報処理システム1は、情報処理システム1が起動する際に、ストレージ60の記憶するスナップショットイメージ情報と非標準デバイス40の初期設定データとを含むデータを、レジスタ401のアドレスと同一のメモリ50のアドレスへ書き込む処理を行う。こうすることで、情報処理システム1が起動する際に、メモリ50においてスナップショットイメージ情報とレジスタ401に初期設定データが書き込まれるのと同時に、レジスタ401に初期設定データが書き込まれる。したがって、スナップショットイメージ情報がメモリ50に書き込まれ、標準デバイス30が動作可能な状態になるのとほぼ同時に、非標準デバイス40は、動作可能な状態となる。
【0036】
(メモリ50からのデータの読み出し)
図3(c)に示すメモリ50からのデータの読み出し、すなわち、レジスタ401のアドレスとは異なるメモリ50のアドレス(例えば、
図3に示すアドレス“m1000”)のメモリ領域からのデータ“1234”の読み出しについて
図6に示す処理フローを用いて説明する。
CPU20は、adr端子からT1端子へアドレス“m1000”を出力する(ステップS31)。また、CPU20は、rreq端子からT4端子へ読出しを指示する“Lowレベルの信号”を出力する(すなわち、読出しを指示する信号がアサートされる)(ステップS32)。
【0037】
セレクタ70は、T1端子から入力されたアドレスをT7端子からmem_adr端子へ出力する(ステップS33)。また、セレクタ70は、T4端子から入力された読出しを指示する“Lowレベルの信号”をT10端子からmem_rreq端子へ出力する(ステップS34)。
メモリ50は、セレクタ70から、アドレス“m1000”、読出しを指示する“Lowレベルの信号”を受ける。メモリ50は、読出しを指示する“Lowレベルの信号”に応じて、アドレス“m1000”のメモリ領域のデータ“1234”をmem_rdata端子から端子11へ出力する(ステップS35)。また、メモリ50は、読出しを指示する“Lowレベルの信号”に応じて、mem_rvalid端子からT12端子へデータ“1234”を特定する“Lowレベルの信号”を出力する(ステップS36)。
【0038】
セレクタ70は、端子11に入力されたデータをT5端子からrdata端子へ出力する(ステップS37)。また、セレクタ70は、端子T12に入力されたデータを特定する“Lowレベルの信号”をT6端子からrvalid端子へ出力する(ステップS38)。
CPU20は、rvalid端子が“Lowレベルの信号”を受けている間にrdata端子が受けたデータ“1234”を読み出したデータとして取得する(ステップS39)。
【0039】
(レジスタ401からのデータの読み出し)
図3(d)に示すレジスタ401からのデータの読み出し、すなわち、メモリ50において同一のアドレスが存在するレジスタ401のアドレス(例えば、
図3に示すアドレス“m8000”)のメモリ領域からのデータ“9876”の読み出しについて
図7に示す処理フローを用いて説明する。
【0040】
CPU20は、adr端子からT1端子へアドレス“m8000”を出力する(ステップS41)。そして、CPU20は、rreq端子からT4端子へ読出しを指示する“Lowレベルの信号”を出力する(すなわち、読出しを指示する信号がアサートされる)(ステップS42)。
【0041】
セレクタ70は、T1端子から入力されたアドレスを、T7端子からmem_adr端子へ、また、T13端子からreg_adr端子へそれぞれ出力する(ステップS43)。セレクタ70は、T4端子から入力された読出しを指示する信号をT16端子からreg_rreq端子へ出力する(ステップS44)。
【0042】
レジスタ401は、セレクタ70から、アドレス“m8000”、読出しを指示する“Lowレベルの信号”を受ける。このとき、メモリ50は、セレクタ70からアドレス“m8000”を受ける(ステップS45)。レジスタ401は、読出しを指示する信号に応じて、アドレス“m8000”のメモリ領域のデータ“9876”をreg_rdata端子から端子17へ出力する(ステップS46)。また、レジスタ401は、読出しを指示する信号に応じて、reg_rvalid端子からT18端子へデータ“9876”を特定する“Lowレベルの信号”を出力する(ステップS47)。
【0043】
セレクタ70は、端子17に入力されたデータを、T5端子からrdata端子へ、また、T9端子からmem_wdata端子へそれぞれ出力する(ステップS48)。また、セレクタ70は、端子T18に入力されたデータを特定するための“Lowレベルの信号”をT6端子からrvalid端子へ出力する(ステップS49)。
【0044】
CPU20は、rvalid端子が“Lowレベルの信号”を受けている間にrdata端子が受けたデータ“9876”を読み出したデータとして取得する(ステップS50)。
【0045】
セレクタ70は、“Lowレベルの信号”をT6端子からrvalid端子へ出力すると、書込みを指示する信号をT8端子からmem_wreq端子へ出力する(ステップS51)。
メモリ50は、書込みを指示する“Lowレベルの信号”を受ける。メモリ50は、書込みを指示する信号に応じて、セレクタ70から受けたアドレス“m8000”のメモリ領域にデータ“9876”を書き込む(ステップS52)。
【0046】
レジスタ401は、データ“9876”の送信を完了すると、reg_rvalid端子からT18端子へ“highレベルの信号”を出力する(ステップS53)。つまり、レジスタ401は、reg_rvalid端子から“highレベルの信号”を出力したとき、データの送信を完了している。したがって、このステップS49の処理により、レジスタ401がreg_rvalid端子から“highレベルの信号”を出力した段階で、レジスタ401から読み出されたデータは、メモリ50に送信され、メモリ50における書き込みのデータとして確定している。なお、このステップS51の処理により、レジスタ401からのデータの読み出し処理において、レジスタ401が行う処理は終了する。なお、レジスタ401からのデータの読み出し処理において、レジスタ401が処理を終了すると、レジスタ401がreg_rdataから出力するデータは、不定値になる。
【0047】
セレクタ70は、T18端子が“Highレベルの信号”を受けると、その“Highレベルの信号”を、T8端子からmem_wreq端子へ、また、T6端子からrvalid端子へ出力する(ステップS54)。セレクタ70が行うステップS54の処理によって、レジスタ401からのデータの読み出し処理における、レジスタ401とデータの同期をとるためのメモリ50への書き込み処理は終了する。なお、レジスタ401からのデータの読み出し処理において、メモリ50が処理を終了すると、メモリ50のmem_wdata端子に入力されるデータは、不定値になる。また、CPU20は、rvalid端子で“Highレベルの信号”を受けると、レジスタ401からデータを読み出す処理を終了する。なお、レジスタ401からのデータの読み出し処理において、CPU20がレジスタ401からデータを読み出す処理を終了すると、CPU20のrdata端子に入力されるデータは、不定値になる。CPU20は、レジスタ401からデータを読み出す処理を終了すると、rreq端子からT4端子へ“Highレベルの信号”を出力する(ステップS55)。
【0048】
セレクタ70は、T4端子で“Highレベルの信号”を受けると、T16端子からreg_rreq端子へ“Highレベルの信号”を出力する(ステップS56)。このステップS56の処理により、情報処理システム1が行うレジスタ401からのデータの読み出し処理は終了する。情報処理システム1が行うレジスタ401からのデータの読み出し処理は終了すると、CPU20のadr端子から出力されるアドレスは不定となり、reg_adr端子及びmem_adr端子に入力されるアドレスも不定となり、すべてのアドレスが開放される。
【0049】
(作用・効果)
以上、本発明の一実施形態による情報処理システム1について説明した。
本発明の一実施形態による情報処理システム1では、CPU20は、アドレスと、そのアドレスへデータを書き込むことを指示する書込み指示信号またはそのアドレスからデータを読み出すことを指示する読出し指示信号とをセレクタ70に出力する。セレクタ70は、アドレス、書込み指示信号及び読出し指示信号に応じて、CPU20から入力されたデータの出力先が決定されるようにハードウェアで構成される。メモリ50は、セレクタ70が出力する信号に基づいて、情報処理システム1が起動する際に、スナップショットイメージ情報とレジスタ401を備える非標準デバイス40の初期設定データとを含むデータを記憶する。レジスタ401は、メモリ50が初期設定データを記憶するメモリ領域のアドレスと同一のアドレスを有する。
【0050】
情報処理システム1は、情報処理システム1が起動する際に、スナップショットイメージ情報とレジスタ401を備える非標準デバイス40の初期設定データとを含むデータを、レジスタ401のアドレスと同一のメモリ50のアドレスのメモリ領域へ書き込む処理を行う。こうすることで、情報処理システム1が起動する際に、メモリ50においてスナップショットイメージ情報が再現されると同時に、レジスタ401に初期設定データが書き込まれる。したがって、スナップショットイメージ情報がメモリ50に書き込まれ、標準デバイス30が動作可能な状態になるのとほぼ同時に、非標準デバイス40は、動作可能な状態となる。
このように、情報処理システム1によって、情報処理システム1が起動する際に、レジスタ401を備える非標準デバイス40を直ちに初期化することができる。
【0051】
(変形例)
なお、本発明の別の実施形態による情報処理システム1において、レジスタ401は、書き込み及び読み出しの両方が可能であるものとして説明した。しかしながら、レジスタ401の中には、書き込みのみが可能であるものも存在する。
レジスタ401が書き込みのみ可能な場合、上述の(レジスタ401からのデータの読み出し)におけるレジスタ401とメモリ50とを入れ替え、メモリ50からデータを読み出し、読み出したデータをレジスタ401に書き込む処理を、(レジスタ401からのデータの読み出し)における処理と同様に行うことで、メモリ50とレジスタ401のデータを同期することができる。また、CPU20は、レジスタ401が記憶すべきデータをメモリ50から読み出すことができる。
【0052】
なお、本発明の実施形態における処理は、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
【0053】
本発明の実施形態におけるメモリ、ストレージ、レジスタを含む記憶部、その他の記憶装置のそれぞれは、適切な情報の送受信が行われる範囲においてどこに備えられていてもよい。また、記憶部、その他の記憶装置のそれぞれは、適切な情報の送受信が行われる範囲において複数存在しデータを分散して記憶していてもよい。
【0054】
本発明の実施形態について説明したが、上述の標準デバイス30、非標準デバイス40、その他の制御装置は内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。コンピュータの具体例を以下に示す。
図8は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
コンピュータ5は、
図8に示すように、CPU6、メインメモリ7、ストレージ8、インターフェース9を備える。
例えば、上述の標準デバイス30、非標準デバイス40、その他の制御装置のそれぞれは、コンピュータ5に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ8に記憶されている。CPU6は、プログラムをストレージ8から読み出してメインメモリ7に展開し、当該プログラムに従って上記処理を実行する。また、CPU6は、プログラムに従って、上述した各記憶部に対応するメモリ領域をメインメモリ7に確保する。
【0055】
ストレージ8の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD−ROM(Compact Disc Read Only Memory)、DVD−ROM(Digital Versatile Disc Read Only Memory)、半導体メモリ等が挙げられる。ストレージ8は、コンピュータ5のバスに直接接続された内部メディアであってもよいし、インターフェース9または通信回線を介してコンピュータ5に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ5に配信される場合、配信を受けたコンピュータ5が当該プログラムをメインメモリ7に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、ストレージ8は、一時的でない有形の記憶媒体である。
【0056】
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル(差分プログラム)であってもよい。
【0057】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例であり、発明の範囲を限定しない。これらの実施形態は、発明の要旨を逸脱しない範囲で、種々の追加、省略、置き換え、変更を行ってよい。