(57)【要約】【課題】計算機システムの高速起動を実現する。【解決手段】主記憶装置１０１の一部を構成する不揮発性記憶部１３０に予め記憶された主記憶イメージからシステムの起動を行う。不揮発性記憶部１３０上の主記憶イメージのブロック毎に、システム運用後に初めて書き込みアクセスが発生したときに、アドレス変換部１７０は、その領域のデータを主記憶装置１０１の他の一部を構成する読み書き可能な主記憶部１２０にコピーし、そのコピー上で書き込みを行う。また、以後、コピー済みの主記憶イメージの領域へのアクセスは前記コピーへのアクセスに切り替える。【選択図】  図１
2005010897.tif 000002
【特許請求の範囲】
【請求項１】
主記憶装置の一部を構成する不揮発性記憶部に記憶された主記憶イメージからシステムの起動を行い、前記主記憶イメージの所定幅の領域毎に、システム運用後に初めて書き込みアクセスが発生したときに、その領域のデータを主記憶装置の他の一部を構成する読み書き可能な主記憶部にコピーしてそのコピー上で書き込みを行い、以後、コピー済みの主記憶イメージの領域へのアクセスは前記コピーへのアクセスに切り替える計算機システム。
【請求項２】
ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動し、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する設定を行うデータ処理装置とを備えることを特徴とする計算機システム。
【請求項３】
前記データ処理装置は、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記不揮発性記憶部への読み出しアクセスが発生した場合には前記不揮発性記憶部からデータの読み出しを行うものであることを特徴とする請求項２記載の計算機システム。
【請求項４】
前記ＯＳ及び前記アプリケーションプログラムが前記主記憶装置をアクセスする際に指定するアドレスの所定幅のアドレス範囲毎に保護属性を記憶する保護情報部を備え、前記データ処理装置は、前記書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲の保護属性を前記保護情報部から参照し、保護属性が読み書き可能である場合に限って、前記コピーと前記設定を行い、保護属性が読み出し専用である場合にはエラーとするものであることを特徴とする請求項３記載の計算機システム。
【請求項５】
前記不揮発性記憶部に記憶された主記憶イメージと異なる主記憶イメージを記憶する１以上の他の不揮発性記憶部を備え、且つ、前記不揮発性記憶部および前記他の不揮発性記憶部の何れか１つを起動時に選択する選択部を備えることを特徴とする請求項４記載の計算機システム。
【請求項６】
前記不揮発性記憶部に記憶された主記憶イメージの一部分の修正イメージを記憶する１以上の追加不揮発性記憶部を備え、前記主記憶イメージのうち前記追加不揮発性記憶部に記憶された修正イメージに対応する領域にマッピングされた物理アドレスを、前記追加不揮発性記憶部の修正イメージにマッピングされた物理アドレスにマッピングし直す手段を備えることを特徴とする請求項４記載の計算機システム。
【請求項７】
前記不揮発性記憶部は読み出し専用の記憶装置で構成されていることを特徴とする請求項４、５または６記載の計算機システム。
【請求項８】
前記不揮発性記憶部は読み書き可能な記憶装置で構成されていることを特徴とする請求項４、５または６記載の計算機システム。
【請求項９】
ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備え、前記データ処理装置は、システムの起動時に、システムの論理ブロックアドレスに対して前記不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の疑似的な保護モードを設定したマッピングテーブルを生成するマッピングテーブル初期化手段と、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、前記マッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の前記主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロック本来の保護属性を保持する保護情報部を参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが本来の保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段とを備えることを特徴とする計算機システム。
【請求項１０】
ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備え、前記データ処理装置は、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、システムの論理ブロックアドレスに対して前記不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の疑似的な保護モードが初期設定されているマッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロック本来の保護属性を保持する保護情報部を参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが本来の保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段とを備えることを特徴とする計算機システム。
【請求項１１】
ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備え、前記データ処理装置は、システムの起動時に、前記不揮発性記憶部の物理ブロックアドレス毎にコピー未完了を示すステータスを設定したステータステーブルを生成するステータステーブル初期化手段と、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記不揮発性記憶部への書き込みアクセスが発生したとき、前記ステータステーブルに設定されたステータスがコピー未完了であれば、アクセス先物理ブロック本来の保護属性を保持する保護情報部を参照して読み書き可能属性である場合に限って、書き込み先物理ブロック内のデータを前記不揮発性記憶部から前記主記憶部に予め予約した代替ブロックにコピーし、前記アクセス先物理ブロックのコピーが完了した旨を示すように前記マッピングテーブルのステータスを更新した後、前記書き込みアクセスの物理アドレスのブロックアドレスを前記代替ブロックのブロックアドレスに変更した物理アドレスで前記代替ブロックをアクセスし、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記不揮発性記憶部への書き込みアクセスが発生したとき、前記ステータステーブルに設定されたステータスがコピー完了であれば、前記書き込みアクセスの物理アドレスのブロックアドレスを前記代替ブロックのブロックアドレスに変更した物理アドレスで前記代替ブロックをアクセスするメモリアクセス部とを備えることを特徴とする計算機システム。
【請求項１２】
それぞれ異なる、ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する複数の不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記複数の不揮発性記憶部の何れか１つをシステムの起動時に選択する選択手段を備え、前記選択された不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備え、前記データ処理装置は、システムの起動時に、システムの論理ブロックアドレスに対して前記選択された不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の疑似的な保護モードを設定したマッピングテーブルを生成するマッピングテーブル初期化手段と、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、前記マッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の前記主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロック本来の保護属性を保持する保護情報部を参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記選択された不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが本来の保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段とを備えることを特徴とする計算機システム。
【請求項１３】
ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と該不揮発性記憶部に記憶された主記憶イメージの一部分の修正イメージを記憶する１以上の追加不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備え、前記データ処理装置は、システムの起動時に、システムの論理ブロックアドレスに対して前記不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の疑似的な保護モードを設定したマッピングテーブルを生成し、且つ、前記主記憶イメージのうち前記追加不揮発性記憶部に記憶された修正イメージに対応する領域にマッピングされた物理ブロックアドレスを、前記追加不揮発性記憶部の修正イメージにマッピングされた物理アドレスにマッピングし直すマッピングテーブル初期化手段と、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、前記マッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の前記主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロック本来の保護属性を保持する保護情報部を参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記不揮発性記憶部または前記追加不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが本来の保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段とを備えることを特徴とする計算機システム。
【請求項１４】
主記憶装置の一部を構成する不揮発性記憶部に記憶された主記憶イメージからシステムの起動を行い、前記主記憶イメージの所定幅の領域毎に、システム運用後に初めて書き込みアクセスが発生したときに、その領域のデータを主記憶装置の他の一部を構成する読み書き可能な主記憶部にコピーしてそのコピー上で書き込みを行い、以後、コピー済みの主記憶イメージの領域へのアクセスは前記コピーへのアクセスに切り替える計算機システム起動方法。
【請求項１５】
ａ）ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置における前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するステップ、ｂ）システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する設定を行うステップ、を含むことを特徴とする計算機システム起動方法。
【請求項１６】
ｃ）システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記不揮発性記憶部への読み出しアクセスが発生した場合には前記不揮発性記憶部からデータの読み出しを行うステップ、を含むことを特徴とする請求項１５記載の計算機システム起動方法。
【請求項１７】
前記ＯＳ及び前記アプリケーションプログラムが前記主記憶装置をアクセスする際に指定する論理アドレスの所定幅のアドレス範囲毎に保護属性を記憶する保護情報部を設け、前記書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲の保護属性を前記保護情報部から参照し、保護属性が読み書き可能である場合に限って、前記コピーと前記設定を行い、保護属性が読み出し専用である場合にはエラーとすることを特徴とする請求項１６記載の計算機システム起動方法。
【請求項１８】
前記不揮発性記憶部に記憶された主記憶イメージと異なる主記憶イメージを記憶する１以上の他の不揮発性記憶部を設け、前記不揮発性記憶部および前記他の不揮発性記憶部の何れか１つを起動時に選択するステップを含むことを特徴とする請求項１７記載の計算機システム起動方法。
【請求項１９】
前記不揮発性記憶部に記憶された主記憶イメージの一部分の修正イメージを記憶する１以上の追加不揮発性記憶部を設け、前記主記憶イメージのうち前記追加不揮発性記憶部に記憶された修正イメージに対応する領域にマッピングされた物理アドレスを、前記追加不揮発性記憶部の修正イメージにマッピングされた物理アドレスにマッピングし直すステップを含むことを特徴とする請求項１７記載の計算機システム起動方法。
【請求項２０】
ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備えた計算機を、システムの起動時に、システムの論理ブロックアドレスに対して前記不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の疑似的な保護モードを設定したマッピングテーブルを生成するマッピングテーブル初期化手段、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、前記マッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の前記主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロック本来の保護属性を保持する保護情報部を参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが本来の保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段、として機能させるプログラム。
【請求項２１】
ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備えた計算機を、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、システムの論理ブロックアドレスに対して前記不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の疑似的な保護モードが初期設定されているマッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の前記主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロック本来の保護属性を保持する保護情報部を参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが本来の保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段、として機能させるプログラム。
【請求項２２】
ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備えた計算機を、システムの起動時に、前記不揮発性記憶部の物理ブロックアドレス毎にコピー未完了を示すステータスを設定したステータステーブルを生成するステータステーブル初期化手段、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記不揮発性記憶部への書き込みアクセスが発生したとき、前記ステータステーブルに設定されたステータスがコピー未完了であれば、アクセス先物理ブロック本来の保護属性を保持する保護情報部を参照して読み書き可能属性である場合に限って、書き込み先物理ブロック内のデータを前記不揮発性記憶部から前記主記憶部に予め予約した代替ブロックにコピーし、前記アクセス先物理ブロックのコピーが完了した旨を示すように前記マッピングテーブルのステータスを更新した後、前記書き込みアクセスの物理アドレスのブロックアドレスを前記代替ブロックのブロックアドレスに変更した物理アドレスで前記代替ブロックをアクセスし、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記不揮発性記憶部への書き込みアクセスが発生したとき、前記ステータステーブルに設定されたステータスがコピー完了であれば、前記書き込みアクセスの物理アドレスのブロックアドレスを前記代替ブロックのブロックアドレスに変更した物理アドレスで前記代替ブロックをアクセスするメモリアクセス手段、として機能させるプログラム。
【請求項２３】
それぞれ異なる、ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する複数の不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記複数の不揮発性記憶部の何れか１つをシステムの起動時に選択する選択手段を備え、前記選択された不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備えた計算機を、システムの起動時に、システムの論理ブロックアドレスに対して前記選択された不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の疑似的な保護モードを設定したマッピングテーブルを生成するマッピングテーブル初期化手段、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、前記マッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の前記主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロック本来の保護属性を保持する保護情報部を参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記選択された不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが本来の保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段、として機能させるプログラム。
【請求項２４】
ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と該不揮発性記憶部に記憶された主記憶イメージの一部分の修正イメージを記憶する１以上の追加不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動するデータ処理装置とを備えた計算機を、システムの起動時に、システムの論理ブロックアドレスに対して前記不揮発性記憶部の物理ブロックアドレスのマッピング情報および読み込み専用の疑似的な保護モードを設定したマッピングテーブルを生成し、且つ、前記主記憶イメージのうち前記追加不揮発性記憶部に記憶された修正イメージに対応する領域にマッピングされた物理ブロックアドレスを、前記追加不揮発性記憶部の修正イメージにマッピングされた物理アドレスにマッピングし直すマッピングテーブル初期化手段、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記主記憶装置への書き込みアクセスが発生したとき、前記マッピングテーブルに設定された保護モードに違反していなければ、前記マッピングテーブルに設定されたマッピング情報に従って論理アドレスから物理アドレスへの変換を行って前記主記憶装置の前記主記憶部をアクセスし、保護モードに違反していれば、アクセス先論理ブロック本来の保護属性を保持する保護情報部を参照して読み書き可能属性である場合に限って、書き込みアクセスが発生したアドレスを含むブロック内のデータを前記不揮発性記憶部または前記追加不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし、前記アクセス先論理ブロックに対して前記代替領域のブロックアドレスがマッピングされ且つ保護モードが本来の保護属性に一致するように前記マッピングテーブルを更新して前記書き込みアクセスを再度処理する手段、として機能させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は計算機システムに関し、特に高速に起動および再起動できる計算機システムおよびその起動方法に関する。
【０００２】
【従来の技術】
計算機システムは少なくともＣＰＵ（中央演算器）と主記憶と不揮発性記憶媒体を備えている。主記憶はＣＰＵが解釈するプログラムや一時的な処理結果を保持するために用いられる。不揮発性記憶媒体は電力が切れても内容を保持し続けられる記憶媒体のことで、プログラムが格納されている。また、書き換え可能な不揮発性記憶媒体の場合は、保存しなければならないデータ（情報）を格納することもある。この不揮発性記憶媒体の例としては、ＲＯＭやＣＤ−ＲＯＭなどの読み込み専用のものと、磁気ディスク媒体（ハードディスク、フレキシブルディスク（登録商標）等）やフラッシュメモリやＥＰＲＯＭ（ｅｒａｓａｂｌｅ  ａｎｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）やＥＥＰＲＯＭ（ｅｌｅｃｔｒｉｃａｌｌｙ  ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）などの書き込み可能なものがある。この書き込み可能な不揮発性記憶媒体を主記憶として用いることもある。
【０００３】
計算機システムを起動するときには、最初にハードウェアの初期化を行い、次にオペレーティングシステム（以下、ＯＳと呼ぶ）を起動し、最後に、必要となるアプリケーションプログラムを起動するという処理が順に実行される。
【０００４】
ここでのハードウェアの初期化を除くソフトウェア処理部分、つまり、ＯＳとアプリケーションプログラムの起動の際には、まず、これらのプログラムを不揮発性記憶媒体から読み込む処理を行い、次に、プログラムに記述されている初期化処理を行う。この初期化処理を行った後にそのプログラムの本来の目的の機能である運用処理を行うことが可能となる。
【０００５】
このとき、使用するハードウェアやＯＳやアプリケーションプログラムの設定や構成を変更しない限り、システムの初期化処理の際には毎回同じ動作を行うので、起動直後の主記憶の内容は毎回、ほぼ同じ状態になる。このとき、主記憶上にある内容を機能的に分類すると、読み込み専用のプログラム領域と、読み書きを行うデータ領域に分けることができる。プログラム領域は不揮発性記憶媒体から読み込まれたもので、主記憶上でも読み込み専用である。データ領域はプログラムの実行において一時的に使用するもので、主記憶上で読み込みと書き込みの両方が行われる。
【０００６】
この初期化処理にかかる立ち上げ時間はソフトウェアの規模が大きくなるとともに長くなってきているため、従来は、立ち上げ時間を短縮するために、初期化処理終了直後の主記憶の内容（以下、起動直後の主記憶イメージと呼ぶ）を通常使用領域以外に保存し、起動時に前記起動直後の主記憶イメージを主記憶にそのままの形で読み込んで起動する手法を取っていた。
【０００７】
従来の高速起動手法の一例が、特許文献１に記載されている。この文献に記載されている方式は、バックアップメモリ手段又はバックアップ用のディスクファイル手段を持ち、前記メモリ手段又は前記ディスクファイル手段に起動直後の主記憶イメージが保存されている。起動時および再起動時に、前記メモリ手段又は前記ディスクファイル手段から主記憶へのメモリコピーを連続的に行い、主記憶上に起動直後の主記憶イメージがコピーし終った時点でシステムが運用可能となる。また、特許文献１には、起動直後の主記憶イメージの作成方法についても記載されている。
【０００８】
また、他の従来の高速起動手法の一例が特許文献２に記載されている。この文献に記載されている方式は、主記憶上に保存してある起動直後の主記憶イメージの複製から再起動を実行する。ただし、再起動直後には、主記憶上に再び複製を作るためにメモリコピーを連続的に行い、その後、システムが運用可能となる。
【０００９】
さらに他の従来の高速起動手法の一例が特許文献３に記載されている。この文献に記載されている方式は、主記憶装置を読み書き可能な不揮発性記憶部および揮発性記憶部で構成し、不揮発性記憶部に起動用ＯＳなどのシステムプログラム及び他のアプリケーションプログラムを記憶しておき、変数や処理用データなどプログラム実行時に書き換えの必要なデータは不揮発性記憶部に記憶せずに外部記憶装置に保存しておく。そしてシステムの起動時に、外部記憶装置から変数などのデータを揮発性記憶部にロードし、ＣＰＵは直接に不揮発性記憶部から起動用ＯＳなどのシステムプログラムを実行し、システムを起動する。
【００１０】
【特許文献１】
特許第２７７２１０３号公報
【特許文献２】
特許第２９７０５８９号公報
【特許文献３】
特開平９−１４６７７４号公報
【００１１】
【発明が解決しようとする課題】
第１の問題点は、起動時に起動直後の主記憶イメージや書き換えの必要なデータのメモリコピーが連続して起こり、システムの運用が開始できる迄に長い中断時間が存在してしまうということである。その理由は、特許文献１記載の発明では、不揮発性記憶媒体に保存してある起動直後の主記憶イメージの全てを主記憶に複製し終えないとシステムの運用を開始できず、特許文献２記載の発明では、次回の再起動のために主記憶上に保存してある起動直後の主記憶イメージの複製を再度構築する目的で複製し終えないとシステムの運用を開始できず、特許文献３の場合、書き換えの必要なデータを外部記憶装置から主記憶にロードし終えないとシステムの運用を開始できないからである。
【００１２】
第２の問題点は、読み書き可能な主記憶領域が無駄に使用されているということである。その理由は、読み込み専用なデータでも読み書き可能な主記憶領域に複製するため、本来読み込みと書き込みの両者を可能とする主記憶領域であるにも関わらず、読み込みのみを行うデータでも読み書き可能な主記憶領域上に保持されており、書き込みデータのための容量を減らしているためである。
【００１３】
本発明の目的は、起動時にメモリコピーを連続的に発生させることなくシステムを高速に起動および再起動することのできる計算機システムを提供することにある。
【００１４】
本発明の他の目的は、読み書き可能な主記憶領域を無駄に使用しないようにできる計算機システムを提供することにある。
【００１５】
【課題を解決するための手段】
本発明は、主記憶装置の一部を構成する不揮発性記憶部に記憶された起動直後の主記憶イメージからシステムの起動を行い、前記主記憶イメージの所定幅の領域毎に、システム運用後に初めて書き込みアクセスが発生したときに、その領域のデータを主記憶装置の他の一部を構成する読み書き可能な主記憶部にコピーしてそのコピー上で書き込みを行い、以後、コピー済みの主記憶イメージの領域へのアクセスは前記コピーへのアクセスに切り替えることを基本とする。より具体的には本発明の第１の計算機システムは、ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する不揮発性記憶部と読み出し書き込み可能な主記憶部とを含む主記憶装置と、前記不揮発性記憶部に記憶された主記憶イメージからシステムを起動し、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記不揮発性記憶部への書き込みアクセスが発生する毎に、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを前記不揮発性記憶部から前記主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する設定を行うデータ処理装置とを備える。
【００１６】
この第１の計算機システムにあっては、不揮発性記憶部に、ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージが記憶されており、データ処理装置は、不揮発性記憶部に記憶された主記憶イメージからシステムを起動するため、システムの高速起動が可能になる。また、システム運用中にＯＳまたはアプリケーションプログラムから不揮発性記憶部への書き込みアクセスが発生すると、データ処理装置は、書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲内のデータを不揮発性記憶部から主記憶部に確保した代替領域にコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを前記代替領域へのアクセスに変換する設定を行う。このため、前記書き込みアクセスおよびそれ以降の前記所定幅のアドレス範囲へのアクセスは、前記代替領域へのアクセスに変換され、代替領域上のコピーが更新される。このように、ＯＳやアプリケーションプログラムによって書き換える必要のあるデータをシステムの起動時に不揮発性記憶部から読み書き可能な主記憶部へ連続してコピーしておくのではなく、書き込みアクセスが発生した都度実施することにより、システム起動後に直ちにシステムの運用を開始することができる。
【００１７】
本発明の第２の計算機システムは、第１の計算機システムにおいて、前記データ処理装置は、システム運用中に前記ＯＳまたは前記アプリケーションプログラムから前記不揮発性記憶部への読み出しアクセスが発生した場合には前記不揮発性記憶部からデータの読み出しを行うように構成される。
【００１８】
この第２の計算機システムにあっては、読み込み専用のデータは読み書き可能な主記憶部にコピーすることなく不揮発性記憶部から直接読み込むため、読み書き可能な主記憶領域が無駄に使用されない。
【００１９】
本発明の第３の計算機システムは、第２の計算機システムにおいて、前記ＯＳ及び前記アプリケーションプログラムが前記主記憶装置をアクセスする際に指定する論理アドレスの所定幅のアドレス範囲毎に保護属性を記憶する保護情報部を備え、前記データ処理装置は、前記書き込みアクセスが発生したアドレスを含む所定幅のアドレス範囲の保護属性を前記保護情報部から参照し、保護属性が読み書き可能である場合に限って、前記コピーと前記設定を行い、保護属性が読み出し専用である場合にはエラーとするように構成される。
【００２０】
この第３の計算機システムにあっては、プログラムのバグによって、不揮発性記憶部に記憶された読み出し専用データが主記憶部上にコピーされて書き換えられ、この変更によってＯＳやアプリケーションの異常な振舞いが引き起こされるのを防止できる。
【００２１】
本発明の第４の計算機システムは、第３の計算機システムにおいて、前記不揮発性記憶部に記憶された主記憶イメージと異なる主記憶イメージを記憶する１以上の他の不揮発性記憶部を備え、且つ、前記不揮発性記憶部および前記他の不揮発性記憶部の何れか１つを起動時に選択する選択部を備える。
【００２２】
この第４の計算機システムにあっては、計算機システムに実装されている不揮発性記憶部を別の主記憶イメージを記憶する他の不揮発性記憶部に差し替えたり、その不揮発性記憶部に記憶されている主記憶イメージを書き換えることなく、起動時に使用する主記憶イメージの全てを切り替えることが可能となる。
【００２３】
本発明の第５の計算機システムは、第３の計算機システムにおいて、前記不揮発性記憶部に記憶された主記憶イメージの一部分の修正イメージを記憶する１以上の追加不揮発性記憶部を備え、前記主記憶イメージのうち前記追加不揮発性記憶部に記憶された修正イメージに対応する領域にマッピングされた物理アドレスを、前記追加不揮発性記憶部の修正イメージにマッピングした物理アドレスにマッピングし直す手段を備える。
【００２４】
この第５の計算機システムにあっては、計算機システムに実装されている不揮発性記憶部を別の主記憶イメージを記憶する他の不揮発性記憶部に差し替えたり、その不揮発性記憶部に記憶されている主記憶イメージを書き換えることなく、起動時に使用する主記憶イメージの一部を変更することが可能となる。
【００２５】
本発明の第６の計算機システムは、第３乃至第５の計算機システムにおいて、前記不揮発性記憶部は読み出し専用の記憶装置で構成されている。
【００２６】
この第６の計算機システムにあっては、主記憶全体で必要な読み書き可能な記憶部の容量を削減することができる。
【００２７】
本発明の第７の計算機システムは、第３乃至第５の計算機システムにおいて、前記不揮発性記憶部は読み書き可能な記憶装置で構成されている。
【００２８】
この第７の計算機システムにあっては、不揮発性記憶部に記憶されたＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを電気的に書き換えてシステムの仕様を変更することができる。
【００２９】
【発明の第１の実施の形態】
図１を参照すると、本発明の第１の実施の形態にかかる計算機システム１００は、少なくとも主記憶装置１０１とデータ処理装置１０２とを有し、プログラム制御により動作する。
【００３０】
主記憶装置１０１は、主記憶部１２０と不揮発性記憶部１３０とを含んで構成される。
【００３１】
不揮発性記憶部１３０は、ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶する部分である。この不揮発性記憶部１３０は、不揮発なメモリなら任意の種類のメモリで良く、例えばＲＯＭ等の読み出し専用の不揮発性メモリや、フラッシュメモリ等の書き換え可能な不揮発性メモリが使用できる。使用する主記憶イメージの内容を変更する方法としては、不揮発性記憶部１３０の差し替え、または、不揮発性記憶部１３０が書き換え可能な場合は、ネットワークを利用したイメージファイルのダウンロードや、外部記憶媒体からのイメージファイルの読み込みなどの方法が使用可能である。
【００３２】
不揮発性記憶部１３０に記憶する主記憶イメージの生成方法は任意であるが、例えば、通常のシステム起動方法で起動した直後の主記憶イメージをダンプすることにより生成することができる。
【００３３】
主記憶部１２０は、不揮発性記憶部１３０以外の主記憶領域を構成する部分である。この主記憶部１２０は、読み書き可能なメモリなら任意の種類のメモリで良く、一般的にはＤＲＡＭ、ＳＲＡＭ等の揮発性のメモリが使用される。但し、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ＲＡＭ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  ＲＡＭ）、フラッシュメモリ等の不揮発性のメモリを使用することも可能である。
【００３４】
他方、データ処理装置１０２は、マッピングテーブル変更部１６０とアドレス変換部１７０とハードウェア初期化部１８０の機能手段を備え、ハードウェア初期化部１８０はマッピングテーブル初期化部１５０を有している。またデータ処理装置１０２は、制御テーブルとしてマッピングテーブル部１１０および保護情報部１４０を有している。
【００３５】
マッピングテーブル部１１０は、データ処理装置１０２上で動作するＯＳやアプリケーションプログラム（両者を総称してプログラムと言う）が主記憶装置１０１を操作する際に指定するメモリアドレス（論理アドレス）を、主記憶装置１０１を構成する主記憶部１２０および不揮発性記憶部１３０に実際に割り当てられているメモリアドレス（物理アドレス）に変換するための情報、および保護モードを記憶する制御テーブルである。ここで、論理アドレスは論理ブロックアドレスとブロック内アドレスとで構成され、物理アドレスは物理ブロックアドレスを前記ブロック内アドレスとで構成される。
【００３６】
図２にマッピングテーブル部１１０のエントリの構成例を示す。マッピングテーブル部１１０は、このようなエントリの集合から構成される。図２を参照すると、１つのエントリには、論理ブロックアドレス１１１と物理ブロックアドレス１１２と保護モード１１３の組が保持される。論理ブロックアドレス１１１は、論理アドレス空間を所定の大きさのブロックに分割したときにできる個々の論理ブロックを一意に識別するアドレスである。物理ブロックアドレス１１２は、物理アドレス空間を論理アドレス空間と同じ大きさのブロックに分割したときにできる個々の物理ブロックを一意に識別するアドレスである。ブロックとしては、ページと呼ばれるアーキテクチャに固有の単位を用いることで効率良く処理することが可能となるが、本発明はその単位に制限されるわけではない。保護モード１１３は、読み込み専用の保護モードと読み書き可能の保護モードの何れか一方の値をとる。この保護モード１１３は、計算機システム１００で実行されるプログラムの本来の保護属性とは異なる擬似的なものであり、不揮発性記憶部１３０のブロックに関してはシステム起動時に読み込み専用の保護モードが一律に設定される。
【００３７】
保護情報部１４０は、計算機システム１００で実行されるプログラム本来の保護属性を保持する制御テーブルである。図３に保護情報部１４０のエントリの構成例を示す。保護属性部１４０は、このようなエントリの集合で構成される。図３を参照すると、１つのエントリには、論理ブロックアドレス１４１と保護属性１４２の組が保持される。保護属性１４２には、読み込み専用の保護属性と、読み書き可能の保護属性とがあり、何れの保護属性が設定されるかは、論理ブロックアドレス１４１で特定されるブロックの本来の保護属性によって決定される。
【００３８】
ハードウェア初期化部１８０は、計算機システム１００の起動時および再起動時にシステム各部のハードウェアの初期化を行う部分であり、本実施の形態ではマッピングテーブル初期化部１５０を備えている。このマッピングテーブル初期化部１５０は、主記憶装置１０１を構成する主記憶部１２０および不揮発性記憶部１３０への物理アドレスの割り当て機能と、マッピングテーブル部１１０の初期設定機能とを有する。一般にＰＣＩバスの制御下に置かれているメモリなどのデバイスに対しては、ＢＩＯＳの機能で物理アドレスを物理的に固定させずに或る程度動的に割り当てることができるが、マッピングテーブル初期化部１５０は、このようなＢＩＯＳの処理と同様な物理アドレスの割り当て機能を有している。但し、本発明において物理アドレスの動的な割り当ては必須の事項でなく、物理アドレスが静的に割り当てられている計算機システムに対しても適用可能である。マッピングテーブル部１１０の初期設定では、論理アドレス空間を構成する各論理ブロックに対して、不揮発性記憶部１３０に割り当てた物理ブロックを順次に対応付け、それら全てのブロックの保護モードを、そのブロックの本来の保護属性にかかわらず読み出し専用に設定する。
【００３９】
アドレス変換部１７０は、計算機システム１００上で動作するプログラムがメモリ操作の際に指定する論理アドレスを物理アドレスに変換する機能と保護モード違反による例外を検出し例外処理を起動する機能とを有する。論理アドレスから物理アドレスへの変換および保護モード違反による例外検出は、マッピングテーブル部１１０を参照して行う。マッピングテーブル変更部１６０は、アドレス変換部１７０で起動された例外処理を実行する機能を有する。例外処理では、保護情報部１４０の参照による本来の保護属性の判定、不揮発性記憶部１３０のブロックの主記憶部１２０へのコピー、マッピングテーブル部１１０の更新などの処理が行われる。
【００４０】
図４にアドレス変換部１７０およびマッピングテーブル変更部１６０の処理の一例を示す。アドレス変換部１７０は、プログラムから指定されたメモリアクセスにかかる論理アドレス中のブロックアドレスでマッピングテーブル部１１０を検索し、図２に示した論理ブロックアドレス１１１が一致するエントリを取得する（ステップＳ１０１）。次に、アドレス変換部１７０は、プログラムから指定されたメモリアクセスが、書き込みアクセスか、読み出しアクセスかを判別し（ステップＳ１０２）、読み出しアクセスであれば（ステップＳ１０２でＮＯ）、ステップＳ１０１で取得したエントリ中の物理ブロックアドレス１１２を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し（ステップＳ１０３）、その物理アドレスで特定される主記憶装置１０１の個所をアクセスする（ステップＳ１０４）。
【００４１】
プログラムから指定されたメモリアクセスが書き込みアクセスの場合（ステップＳ１０２でＹＥＳ）、アドレス変換部１７０は、ステップＳ１０１で取得したエントリ中の保護モード１１３が読み込み専用の保護モードか、読み書き可能な保護モードかを判別する（ステップＳ１０５）。読み書き可能な保護モードであれば（ステップＳ１０５でＮＯ）、アドレス変換部１７０は、ステップＳ１０１で取得した物理ブロックアドレス１１２を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し（ステップＳ１０３）、その物理アドレスで特定される主記憶装置１０１の個所をアクセスする（ステップＳ１０４）。
【００４２】
保護モード１１３が読み込み専用の保護モードである場合（ステップＳ１０５でＹＥＳ）、アドレス変換部１７０は、当該メモリアクセスの処理を一時保留し、例外イベントをマッピングテーブル変更部１６０に通知して例外処理を起動する（ステップＳ１０６）。この例外イベントでは、ステップＳ１０１で取得したエントリ中の論理ブロックアドレス１１１と物理ブロックアドレス１１２をマッピングテーブル変更部１６０に通知する。
【００４３】
マッピングテーブル変更部１６０は、通知された論理ブロックアドレス１１１で保護情報部１４０を検索し、図３の論理ブロックアドレス１４１が一致するエントリの保護属性１４２を取得する（ステップＳ１０７）。次に、マッピングテーブル変更部１６０は、保護属性１４２が読み込み専用の保護属性か、読み書き可能な保護属性かを判別する（ステップＳ１０８）。読み込み専用の保護属性であれば（ステップＳ１０８でＹＥＳ）、マッピングテーブル変更部１６０はアドレス変換部１７０に対してエラーを通知し、アドレス変換部１７０は保留中のメモリアクセスを拒否する等のエラー処理を行う。
【００４４】
他方、保護属性１４２が読み書き可能な保護属性であれば（ステップＳ１０８でＮＯ）、マッピングテーブル変更部１６０は、アドレス変換部１７０から通知された物理ブロックアドレス１１２で特定される不揮発性記憶部１３０のブロックを、主記憶部１２０の空きブロックにコピーする（ステップＳ１０９）。主記憶部１２０を構成するブロックのうち、どのブロックが空き状態で、どのブロックが使用中かを管理する技術は、主記憶部１２０の各ブロック毎の使用状態を保持するテーブルで管理するなど、従来から知られている任意の方法を使用することができる。次にマッピングテーブル変更部１６０は、図２の論理ブロックアドレス１１１がアドレス変換部１７０から通知された論理ブロックアドレスに一致するエントリをマッピングテーブル部１１０から検索し、そのエントリの物理ブロックアドレス１１２をステップＳ１０９におけるコピー先の主記憶部１２０のブロックの物理ブロックアドレスに書き換え、かつ保護モード１１３を読み書き可能な保護モードに書き換える（ステップＳ１１０）。そして、例外処理の完了をアドレス変換部１７０に通知する。アドレス変換部１７０は、マッピングテーブル変更部１６０から例外処理の完了通知を受けると、一時保留していたメモリアクセスの処理をステップＳ１０１から再度開始する。
【００４５】
図５は計算機システム１００の概略動作を示すフローチャートである。以下、各図を参照して本実施の形態の動作を説明する。
【００４６】
計算機システム１００は起動されると、図５に示されるように、先ず、ハードウェア初期化部１８０によってハードウェアの初期化を行った後（ステップＳ２０１）、マッピングテーブル初期化部１５０によって、主記憶部１２０および不揮発性記憶部１３０に物理アドレスを割り当て、マッピングテーブル部１１０を初期設定する（ステップＳ２０２）。マッピングテーブル部１１０の初期設定では、論理ブロックアドレスと物理ブロックアドレスの対応関係をマッピングテーブル部１１０に書き込み、且つ、不揮発性記憶部１３０の全てのブロックは読み込み専用の保護モードでマッピングテーブル部１１０に登録する。
【００４７】
次にデータ処理装置１０２は、不揮発性記憶部１３０に保存されている主記憶イメージからシステムを起動する（ステップＳ２０３）。この主記憶イメージは、ＯＳやアプリケーションの起動直後と同じ状態であるため、システムは立ち上げ直後の環境に復帰することになる。このとき、主記憶イメージから起動してから、システム運用（ステップＳ２０４）が可能になるまでの運用中断状態は存在しない。
【００４８】
システム運用（ステップＳ２０４）の段階において、プログラムから不揮発性記憶部１３０のとあるブロックに対して初めての書き込みアクセスが発生したときには、そこは読み込み専用の保護モードでマッピングされているのでアドレス変換部１７０が例外イベントを通知し、当該書き込みアクセスを一時保留する（図４のＳ１０６）。例外イベントを受け取ったマッピングテーブル変更部１６０は、保護情報部１４０を参照してその書き込み発生論理アドレスのブロックの保護属性を判断し（図４のステップＳ１０８）、読み書き可能属性であれば、そのブロックの大きさの空きブロックを主記憶部１２０から割り当て、その不揮発性記憶部１３０の当該ブロックの内容をコピーする（図４のステップＳ１０９）。更に、マッピングテーブル変更部１６０は、割り当てられた主記憶ブロックを書き込みが発生した論理ブロックアドレスに読み書き可の保護モードでマッピングするようマッピングテーブル部１１０に設定して、一時保留された書き込みアクセスの処理を再開させる（図４のステップＳ１１０）。この結果、一時保留された書き込みアクセスおよびその後の当該ブロックへの書き込み操作は、割り当てられた主記憶ブロックに対して実行される。このとき、ブロックの単位を小さくすることでコピー時間が短くなり、システム運用が中断される時間を短くすることができる。
【００４９】
この状態で、再起動が行われると（図５のステップＳ２０５）、再びハードウェアの初期化処理（ステップＳ２０１）から実行され、起動時と同じようにマッピングテーブル初期化部１５０の動作によってマッピングテーブル部１１０の内容が初期化され、不揮発性記憶部１３０がマッピングし直される（ステップＳ２０２）。このため、システムの運用中に主記憶部１２０に対して行われた書き込みの内容は一切反映されていない状態に戻り、これがつまり、立ち上げ直後の環境に復帰することと同じになる。
【００５０】
次に、本実施の形態について、一実施例を挙げてより詳細に説明する。
【００５１】
図６のコンピュータ２００は、本実施の形態を適用した計算機システムの一例である。主記憶部１２０と不揮発性記憶部１３０から構成される主記憶装置１０１は、ＣＰＵ２０１にメモリバス２０２を通じて接続されており、アドレス変換部１７０はＣＰＵ２０１に内蔵されている。また、図１のマッピングテーブル初期化部１５０は、ＣＰＵ２０１に接続された記憶装置２０３に記憶されたＩＰＬ（イニシャル・プログラム・ローダ）２０４の一機能として実装されている。不揮発性記憶部１３０には、ＯＳ２０５及びアプリケーションプログラム２０６の初期化処理後の主記憶イメージが予め記憶されており、図１のマッピングテーブル変更部１６０はＯＳ２０５の一機能として実装され、また保護情報部１４０もＯＳ２０５が有する制御テーブルの１つとして実装されている。更に、図１のマッピングテーブル部１１０は、主記憶部１２０に生成される１つの制御テーブルとして扱われる。
【００５２】
ＣＰＵ２０１に接続されたその他のハードウェア２０９は、ネットワーク・インターフェース・カード（ＮＩＣ）２０７やＣＤ−ＲＯＭ２０８などを含む。不揮発性記憶部１３０中の主記憶イメージの変更の際には、ＮＩＣ２０７を用いてネットワーク２１０経由でイメージファイルをダウンロードしたり、ＣＤ−ＲＯＭ２０８からイメージファイルを読み込んだりして、不揮発性記憶媒体１３０の内容を書き換えることによって実現できるようになっている。
【００５３】
図７はＯＳ２０５が有する保護情報部１４０の内容例を示す。図示した例は本発明の理解を容易にするためにブロック数を極めて小さくしてあり、実際には数多くのブロックが存在する。図７を参照すると、論理ブロックアドレス０〜２の各ブロックの保護属性は読み込み専用（Ｒ）、論理ブロックアドレス３〜６の各ブロックの保護属性は読み書き可能（ＲＷ）となっている。
【００５４】
以下、本実施例のコンピュータ２００の動作を説明する。
【００５５】
コンピュータ２００は起動されると、図５のステップＳ２０１において、主記憶部１２０のクリア、ハードウェア２０９の初期化などのハードウェアの初期化を行った後、次のステップＳ２０２において、ＩＰＬ２０４に実装されたマッピングテーブル初期化部１５０によって、主記憶部１２０および不揮発性記憶部１３０に物理アドレスを割り当て、マッピングテーブル部１１０を初期設定する。
【００５６】
図８に物理アドレスの割り当て例を、図９（ａ）にマッピングテーブル部１１０の初期設定例を、それぞれ示す。図示した例は本発明の理解を容易にするためにブロック数を極めて小さくしてあり、実際には数多くのブロックが存在する。図８を参照すると、不揮発性記憶部１３０の各ブロックには０〜６の物理ブロックアドレスが割り当てられ、主記憶部１２０の各ブロックには７以降の物理ブロックアドレスが割り当てられている。また、図９（ａ）を参照すると、主記憶部１２０に生成されるマッピングテーブル部１１０の初期状態は、０〜５の論理ブロックアドレスに対して、不揮発性記憶部１３０に割り当てられた物理ブロックアドレス１〜６が対応付けられ、それらの保護モードは全て読み込み専用（Ｒ）に設定される。また、６の論理ブロックアドレスに対して、主記憶部１２０の予め定められた物理ブロック（例では物理ブロックアドレス７のブロック）が対応付けられ、その保護モードは読み書き可能（ＲＷ）に設定される。ここで、物理ブロックアドレス７のブロックは、マッピングテーブル部１１０が生成されるブロックである。
【００５７】
図５のステップＳ２０３においては、ＣＰＵ２０１が不揮発性記憶部１３０に保存されている主記憶イメージからシステムを起動する。具体的には、ＩＰＬ２０４がＣＰＵ２０１内のプログラムカウンタにシステムの運用を開始する際に最初に実行する命令の論理アドレスを設定し、その命令から実行を開始させることにより、システムの運用を開始させる（ステップＳ２０４）。
【００５８】
次に、システム運用（ステップＳ２０４）の段階において、ＣＰＵ２０１上で実行されるプログラムが主記憶装置１０１をアクセスした際の動作を説明する。例として以下のようなアクセスを想定する。
（１）論理ブロックアドレス「３」を持つ論理アドレスへの最初の書き込みアクセス
（２）論理ブロックアドレス「３」を持つ論理アドレスへの２回目以降の書き込みアクセス
（３）論理ブロックアドレス「１」を持つ論理アドレスへの読み出しアクセス
【００５９】
先ず、論理ブロックアドレス「３」を持つ論理アドレスへの最初の書き込みアクセスが発生した際の動作を説明する。この場合、アドレス変換部１７０は、論理ブロックアドレス「３」でマッピングテーブル部１１０を検索し、図９（ａ）中の「論理ブロックアドレス３、物理ブロックアドレス４、保護モードＲ」のエントリを取得する（ステップＳ１０１）。次に、アドレス変換部１７０は、メモリアクセスが書き込みアクセスであり（ステップＳ１０２でＹＥＳ）、保護モードが読み込み専用であるので（ステップＳ１０５）、当該メモリアクセスの処理を一時保留し、例外イベントをマッピングテーブル変更部１６０に通知して例外処理を起動する（ステップＳ１０６）。
【００６０】
マッピングテーブル変更部１６０は、論理ブロックアドレス「３」で保護情報部１４０を検索し、図７の論理ブロックアドレス３を持つエントリの保護属性ＲＷを取得する（ステップＳ１０７）。次に、マッピングテーブル変更部１６０は、保護属性ＲＷが読み書き可能な保護属性であるので（ステップＳ１０８）、物理ブロックアドレス「４」で特定される不揮発性記憶部１３０のブロックを、その時点の主記憶部１２０の空きブロック（物理ブロックアドレス１３のブロックとする）にコピーする（ステップＳ１０９）。次にマッピングテーブル変更部１６０は、図９（ｂ）に示されるように、論理ブロックアドレス「３」を持つエントリの物理ブロックアドレスを「４」から「１３」に書き換え、かつ保護モードをＲからＲＷに書き換える（ステップＳ１１０）。そして、例外処理の完了をアドレス変換部１７０に通知する。
【００６１】
アドレス変換部１７０は、マッピングテーブル変更部１６０から例外処理の完了通知を受けると、一時保留していたメモリアクセスの処理をステップＳ１０１から再開する。アドレス変換部１７０は、論理ブロックアドレス「３」でマッピングテーブル部１１０を検索すると、マッピングテーブル部１１０は図９（ａ）の状態から図９（ｂ）の状態に更新されているので、今度は「論理ブロックアドレス３、物理ブロックアドレス１３、保護モードＲＷ」のエントリを取得する（ステップＳ１０１）。アドレス変換部１７０は、プログラムから指定されたメモリアクセスが、書き込みアクセスであり（ステップＳ１０２でＹＥＳ）、保護モードがＲＷなので（ステップＳ１０５でＮＯ）、取得したエントリ中の物理ブロックアドレス「１３」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し（ステップＳ１０３）、その物理アドレスで特定される主記憶装置１０１の個所をアクセスし、プログラムから渡されたデータを書き込む（ステップＳ１０４）。
【００６２】
このように、システムの運用開始後、不揮発性記憶部１３０の保護属性がＲＷの或るブロックに対して最初の書き込みアクセスが発生した場合、そのブロックが主記憶部１２０にコピーされ、そのコピー上で更新が行われる。
【００６３】
次に、論理ブロックアドレス「３」を持つ論理アドレスへの２回目以降の書き込みアクセスが発生した場合の動作を説明する。アドレス変換部１７０は、論理ブロックアドレス「３」でマッピングテーブル部１１０を検索すると、マッピングテーブル部１１０は図９（ａ）の状態から図９（ｂ）の状態に更新されているので、「論理ブロックアドレス３、物理ブロックアドレス１３、保護モードＲＷ」のエントリを取得する（ステップＳ１０１）。次にアドレス変換部１７０は、プログラムから指定されたメモリアクセスが、書き込みアクセスであり（ステップＳ１０２でＹＥＳ）、保護モードがＲＷなので（ステップＳ１０５でＮＯ）、取得したエントリ中の物理ブロックアドレス「１３」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し（ステップＳ１０３）、その物理アドレスで特定される主記憶装置１０１の個所をアクセスし、プログラムから渡されたデータを書き込む（ステップＳ１０４）。
【００６４】
このように、システムの運用開始後、不揮発性記憶部１３０の保護属性がＲＷの或るブロックに対して２回目以降の書き込みアクセスが発生した場合、初回のようなコピー動作は最早必要ないため、主記憶部１２０上に存在するコピーが直ちに更新される。
【００６５】
次に、論理ブロックアドレス「１」を持つ論理アドレスへの読み出しアクセスが発生した場合の動作を説明する。アドレス変換部１７０は、プログラムから指定された論理ブロックアドレス「１」でマッピングテーブル部１１０を検索し、図９（ｂ）の「論理ブロックアドレス１、物理ブロックアドレス２、保護モードＲ」のエントリを取得する（ステップＳ１０１）。次に、アドレス変換部１７０は、プログラムから指定されたメモリアクセスが読み出しアクセスであるため（ステップＳ１０２でＮＯ）、取得したエントリ中の物理ブロックアドレス「２」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し（ステップＳ１０３）、その物理アドレスで特定される主記憶装置１０１の個所をアクセスし、読み出したデータをプログラムに返却する（ステップＳ１０４）。
【００６６】
このように、不揮発性記憶部１３０への読み出しアクセスに関しては不揮発性記憶部１３０から直接にデータを読み出す。
【００６７】
【発明の第２の実施の形態】
図１０を参照すると、本発明の第２の実施の形態にかかる計算機システム３００は、データ処理装置３０２のハードウェア初期化部３８０がマッピングテーブル初期化部を備えず、初期設定済みのマッピングテーブル部１１０を使用する点で、第１の実施の形態と相違する。図１に示した第１の実施の形態にかかる計算機システム１００において、ハードウェアおよびソフトウェアの構成が同一であるならば、物理アドレスの割り当て状況およびマッピングテーブル部１１０の初期設定状態は常に同じになる。本実施の形態はその点に着目し、予め初期設定された状態のマッピングテーブル部１１０を用いることで、システム起動時の処理をより簡素化している。
【００６８】
図１１に計算機システム３００の動作フローチャートを示す。図５に示した第１の実施の形態の動作フローチャートと相違し、物理アドレスの割り当て及びマッピングテーブル部１１０の初期化を行う処理（図５のステップＳ２０２）が省略されている。それ以外の構成および動作は第１の実施の形態と同じである。
【００６９】
次に、本実施の形態について、一実施例を挙げてより詳細に説明する。
【００７０】
図１２のコンピュータ４００は、本実施の形態を適用した計算機システムの一例であり、初期設定済みのマッピングテーブル部１１０をＯＳ２０５内の１つの制御テーブルとして持たせている点で、図６に示した第１の実施の形態の実施例にかかるコンピュータ２００と相違する。
【００７１】
以下、本実施例のコンピュータ４００の動作を説明する。
【００７２】
コンピュータ４００は起動されると、図１１のステップＳ２０１において、主記憶部１２０のクリア、ハードウェア２０９の初期化などのハードウェアの初期化を行う。第１の実施の形態の実施例と異なり、主記憶部１２０および不揮発性記憶部１３０への物理アドレスの割り当ては行わず、予め静的に設定されている物理アドレスを使用する。また、マッピングテーブル部１１０の初期設定も行わない。例えば、静的に設定されている物理アドレスが図８に示される内容である場合、マッピングテーブル部１１０の初期状態は、図９（ａ）に示すような内容となっている。つまり、０〜５の論理ブロックアドレスに対して、不揮発性記憶部１３０に割り当てられた物理ブロックアドレス１〜６が対応付けられ、それらの保護モードは全て読み込み専用（Ｒ）に設定される。なお、図９（ａ）では、６の論理ブロックアドレスに対して、主記憶部１２０の予め定められた物理ブロックを対応付け、その保護モードを読み書き可能（ＲＷ）に設定しているが、本実施例では必ずしも必要ではない。
【００７３】
図１１のステップＳ２０３においては、第１の実施の形態の実施例と同様にＣＰＵ２０１が不揮発性記憶部１３０に保存されている主記憶イメージからシステムを起動する。また、システム運用（ステップＳ２０４）の段階において、ＣＰＵ２０１上で実行されるプログラムが主記憶装置１０１をアクセスした際には、第１の実施の形態の実施例と同様に図４に示される処理が実行される。これにより、システムの運用開始後、不揮発性記憶部１３０の保護属性がＲＷの或るブロックに対して最初の書き込みアクセスが発生した場合、そのブロックが主記憶部１２０にコピーされ、そのコピー上で更新が行われる。また、不揮発性記憶部１３０の保護属性がＲＷの或るブロックに対して２回目以降の書き込みアクセスが発生した場合、主記憶部１２０上に存在するコピーが直ちに更新される。更に、不揮発性記憶部１３０への読み出しアクセス時は、不揮発性記憶部１３０から直接データが読み出される。ここで、本実施例の場合、マッピングテーブル部１１０は不揮発性記憶部１３０に格納されているため、図４のステップＳ１１０がシステム運用後初めて実施された際、マッピングテーブル部１１０を含むブロックが主記憶部１２０の空きブロックにコピーされ、そのコピー上で更新が行われる。
【００７４】
【発明の第３の実施の形態】
第１の実施の形態では、論理アドレスを物理アドレスに変換するアドレス変換部１７０において、システム運用中にプログラムから不揮発性記憶部１３０への書き込みアクセスが発生する毎に、書き込みアクセスが発生した論理アドレスを含む所定幅のアドレス範囲内のデータを不揮発性記憶部１３０から主記憶部１２０の空きブロックにコピーし且つ以後の前記所定幅のアドレス範囲へのアクセスを主記憶部１２０のブロックへのアクセスに変換する設定を行った。本実施の形態では、メモリアクセスにかかる物理アドレスを受けてメモリのアクセスをコントロールするメモリアクセス部において、システム運用中にプログラムから不揮発性記憶部１３０への書き込みアクセスが発生する毎に、書き込みアクセスが発生した物理アドレスを含む所定幅のアドレス範囲内のデータを不揮発性記憶部１３０から主記憶部１２０の空きブロックにコピーし且つ以後の前記所定幅の物理アドレス範囲へのアクセスを主記憶部１２０のブロックへのアクセスに切り替える。
【００７５】
図１３を参照すると、本発明の第３の実施の形態にかかる計算機システム５００は、少なくとも主記憶装置１０１とデータ処理装置５０２とを有し、プログラム制御により動作する。
【００７６】
主記憶装置１０１は、第１の実施の形態と同様な主記憶部１２０と不揮発性記憶部１３０とを含んで構成される。つまり、不揮発性記憶部１３０は、ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージを記憶しており、主記憶部１２０は、不揮発性記憶部１３０以外の主記憶領域を構成している。
【００７７】
他方、データ処理装置５０２は、メモリアクセス部５６０とアドレス変換部５７０とハードウェア初期化部５８０を備え、ハードウェア初期化部５８０はステータステーブル初期化部５５０を有している。またデータ処理装置５０２は、制御テーブルとしてステータステーブル部５１０および保護情報部５４０を有している。
【００７８】
ステータステーブル部５１０は、不揮発性記憶部１３０の各ブロック毎に、そのブロックの主記憶部１２０へのコピーが完了したか否かを示すステータスを保持するテーブルである。図１４にステータステーブル部５１０のエントリの構成例を示す。ステータステーブル部５１０は、このようなエントリの集合から構成される。図１４を参照すると、１つのエントリには、物理ブロックアドレス５１１とステータス５１２の組が保持される。ステータス５１２は、物理ブロックアドレス５１１のブロックが主記憶部１２０にコピー済みであれば論理値１に、そうでなければ論理値０に設定される。
【００７９】
保護情報部５４０は、不揮発性記憶部１３０の各ブロック毎に、そのブロックの保護属性を保持するテーブルである。図１５に保護情報部５４０のエントリの構成例を示す。保護情報部５４０は、このようなエントリの集合から構成される。図１５を参照すると、１つのエントリには、物理ブロックアドレス５４１と保護属性５４２の組が保持される。保護属性５４２には、読み込み専用の保護属性と、読み書き可能の保護属性とがあり、何れの保護属性が設定されるかは、物理ブロックアドレス５４１で特定される不揮発性記憶部１３０のブロックの本来の保護属性によって決定される。
【００８０】
ハードウェア初期化部５８０は、計算機システム５００の起動時および再起動時にシステム各部のハードウェアの初期化を行う部分であり、本実施の形態ではステータステーブル初期化部５５０を備えている。このステータステーブル初期化部５５０は、主記憶装置１０１を構成する主記憶部１２０および不揮発性記憶部１３０への物理アドレスの割り当て機能と、ステータステーブル部５１０の初期設定機能とを有する。但し、本発明において物理アドレスの動的な割り当ては必須の事項でなく、物理アドレスが静的に割り当てられている計算機システムに対しても適用可能である。ステータステーブル部５１０の初期設定では、不揮発性記憶部１３０に割り当てられた各物理ブロックに対して、コピー未完了を示す論理値０のステータスを設定する。
【００８１】
アドレス変換部５７０は、不揮発性記憶部１３０の物理アドレスを、その物理アドレスを含む物理ブロックがコピーされている主記憶部１２０のブロック内の物理アドレスに変換する部分である。物理アドレス間の変換は、変換前後の物理ブロックアドレスの対応表を使用して行う以外に、後述する本実施の形態の実施例に示されるように、不揮発性記憶部１３０に割り当てる物理アドレスとそのコピー領域として主記憶部１２０に予約してあるブロックの物理アドレスとの関係を所定のアドレス距離だけ離れた関係としておくことにより、物理アドレスを表現するビット列中の一部のビットの値を前記アドレス距離で定まる値に変更することで実現できる。
【００８２】
メモリアクセス部５６０は、計算機システム５００上で動作するプログラムからのメモリアクセス要求に従って、主記憶装置１０１をアクセスする部分である。図１３に破線で示したように、プログラムがメモリ操作の際に指定する論理アドレスを物理アドレスに変換する機能５９０を計算機システム５００が備えている場合、メモリアクセス部５６０は物理アドレスに変換されたアドレス情報を含むメモリアクセス要求を入力する。他方、計算機システム５００がそのような機能５９０を備えず、論理アドレスと物理アドレスとが同じ場合には、プログラムから出されたアドレス情報を含むメモリアクセスをそのまま入力する。
【００８３】
メモリアクセス部５６０は、不揮発性記憶部１３０に対するメモリアクセス要求については、ステータステーブル部５１０および保護情報部５４０を参照して、アクセス先ブロックの主記憶部１２０へのコピーが必要ならコピーを行う機能と、アドレス変換部５７０を使用して物理アドレスの変換を行い、不揮発性記憶部１３０の代わりに主記憶部１２０のコピー先ブロックをアクセスする機能とを備えている。
【００８４】
図１６にメモリアクセス部５６０およびアドレス変換部５７０の処理の一例を示す。メモリアクセス部５６０は、メモリアクセスにかかる物理アドレス中のブロックアドレスでステータステーブル部５１０を検索し、図１４に示した物理ブロックアドレス５１１が一致するエントリが存在すれば取得する（ステップＳ３０１）。次に、メモリアクセス部５６０は、該当するエントリが存在したかどうかによって、今回のメモリアクセスが不揮発性記憶部１３０へのアクセスかどうかを判別し（ステップＳ３０２）、不揮発性記憶部１３０以外の主記憶部１２０へのアクセスであれば（ステップＳ３０２でＮＯ）、物理アドレスの変換を行わず、入力された物理アドレスで特定される主記憶部１２０の個所をアクセスする（ステップＳ３０３）。
【００８５】
今回のメモリアクセスが不揮発性記憶部１３０に対するものである場合（ステップＳ３０２でＹＥＳ）、メモリアクセス部５６０は、ステップＳ３０１で取得したエントリ中のステータス５１２が０（コピー無し）か、１（コピー済み）かを判別する（ステップＳ３０４）。ステータス５１２が１（コピー済み）であれば（ステップＳ３０４でＮＯ）、メモリアクセス部５６０は、アドレス変換部５７０を使用して、入力の物理アドレスをコピー先の物理アドレスに変換し（ステップＳ３０５）、変換後の物理アドレスで特定される主記憶部１２０の個所をアクセスする（ステップＳ３０３）。
【００８６】
ステータス５１２が０（コピー無し）である場合（ステップＳ３０４でＹＥＳ）、メモリアクセス部５６０は、今回のメモリアクセスが書き込みアクセスか、読み出しアクセスかを判別し（ステップＳ３０６）、読み出しアクセスであれば（ステップＳ３０６でＮＯ）、物理アドレスの変換を行わず、入力された物理アドレスで特定される不揮発性記憶部１３０の個所をアクセスする（ステップＳ３０３）。
【００８７】
また、書き込みアクセスの場合は（ステップＳ３０６でＹＥＳ）、メモリアクセス部５６０は、メモリアクセスにかかる物理アドレス中のブロックアドレスで保護情報部５４０を検索し、図１５に示した物理ブロックアドレス５４１が一致するエントリの保護属性５４２を取得し（ステップＳ３０７）、読み出し専用か、読み書き可能かを判別する（ステップＳ３０８）。読み出し専用であれば（ステップＳ３０８でＹＥＳ）、メモリアクセス部５６０は今回のメモリアクセスを保護属性違反として拒否する等のエラー処理を行う。
【００８８】
他方、保護属性５４２が読み書き可能な保護属性であれば（ステップＳ３０８でＮＯ）、メモリアクセス部５６０は、メモリアクセスの物理ブロックアドレスで特定される不揮発性記憶部１３０のブロックを、主記憶部１２０の空きブロックにコピーする（ステップＳ３０９）。次に、メモリアクセス部５６０は、図１４の物理ブロックアドレス５１１が入力の物理ブロックアドレスに一致するエントリをステータステーブル部５１０から検索し、そのエントリのステータス５１２をコピー済みを示す１に書き換える（ステップＳ３１０）。そして、今回のメモリアクセスの処理をステップＳ３０５から再度実行する。なお、ステップＳ３０５から再度実行する代わりに、ステップＳ３０１から再度実行しても結果は同じである。
【００８９】
図１７は計算機システム５００の概略動作を示すフローチャートである。以下、各図を参照して本実施の形態の動作を説明する。
【００９０】
計算機システム５００は起動されると、図１７に示されるように、先ず、ハードウェア初期化部５８０によってハードウェアの初期化を行った後（ステップＳ４０１）、ステータステーブル初期化部５５０によって、主記憶部１２０および不揮発性記憶部１３０に物理アドレスを割り当て、ステータステーブル部５１０を初期設定する（ステップＳ４０２）。ステータステーブル部５１０の初期設定では、不揮発性記憶部１３０の全てのブロックの物理ブロックアドレスと論理値０のステータスとをステータステーブル部５１０に登録する。
【００９１】
次にデータ処理装置５０２は、不揮発性記憶部１３０に保存されている主記憶イメージからシステムを起動する（ステップＳ４０３）。この主記憶イメージは、ＯＳやアプリケーションの起動直後と同じ状態であるため、システムは立ち上げ直後の環境に復帰することになる。このとき、主記憶イメージから起動してから、システム運用（ステップＳ４０４）が可能になるまでの運用中断状態は存在しない。
【００９２】
システム運用（ステップＳ４０４）の段階において、プログラムから不揮発性記憶部１３０のとあるブロックに対して初めての書き込みアクセスが発生したときには、ステータステーブル部５１０におけるそのブロックのステータスは０（コピー未完了）に初期化されているので、メモリアクセス部５６０は、保護情報部５４０を参照してその書き込み発生物理アドレスを含むブロックの保護属性を判断し（図１６のステップＳ３０８）、読み書き可能属性であれば、その不揮発性記憶部１３０の当該ブロックの内容を主記憶部１２０の空きブロックにコピーし（図１６のステップＳ３０９）、ステータステーブル部５１０の当該ブロックのステータスをコピー済みを示す論理値１に書き換え（図１６のステップＳ３１０）、書き込みアクセスの処理を再開する。この結果、今回の書き込みアクセスおよびその後の当該ブロックへの書き込みアクセスは、アドレス変換部５７０によって、不揮発性記憶部１３０の物理アドレスがコピー先の主記憶部１２０の物理アドレスに変換され（図１６のステップＳ３０５）、主記憶部１２０上のコピーが更新される。
【００９３】
この状態で、再起動が行われると（図１７のステップＳ４０５）、再びハードウェアの初期化処理（ステップＳ４０１）から実行され、起動時と同じようにステータステーブル初期化部５５０の動作によってステータステーブル部５１０の内容が初期化されるため、システムの運用中に主記憶部１２０に対して行われた書き込みの内容は一切反映されていない状態に戻り、これがつまり、立ち上げ直後の環境に復帰することと同じになる。
【００９４】
次に、本実施の形態について、一実施例を挙げてより詳細に説明する。
【００９５】
図１８のコンピュータ６００は、本実施の形態を適用した計算機システムの一例である。主記憶部１２０と不揮発性記憶部１３０から構成される主記憶装置１０１は、ＣＰＵ６０１にメモリコントローラ６０２を介して接続されており、メモリコントローラ６０２にステータステーブル部５１０、メモリアクセス部５６０およびアドレス変換部５７０が実装されている。また、図１８のステータステーブル初期化部５５０は、ＣＰＵ６０１に接続された記憶装置６０３に記憶されたＩＰＬ６０４の一機能として実装されている。不揮発性記憶部１３０には、ＯＳ６０５及びアプリケーションプログラム６０６の初期化処理後の主記憶イメージが予め記憶されており、図１８の保護情報部５４０はＯＳ６０５が有する制御テーブルの１つとして実装されている。本実施例では、論理アドレスから物理アドレスへの変換手段をＣＰＵ６０１が備えていないため、論理アドレスと物理アドレスとが同じになる。但し、論理アドレスから物理アドレスへの変換手段をＣＰＵ６０１が備えている場合にも適用可能である。
【００９６】
ＣＰＵ６０１に接続されたその他のハードウェア６０９は、ネットワーク・インターフェース・カード（ＮＩＣ）６０７やＣＤ−ＲＯＭ６０８などを含む。不揮発性記憶部１３０中の主記憶イメージの変更の際には、ＮＩＣ６０７を用いてネットワーク６１０経由でイメージファイルをダウンロードしたり、ＣＤ−ＲＯＭ６０８からイメージファイルを読み込んだりして、不揮発性記憶部１３０の内容を書き換えることによって実現できるようになっている。
【００９７】
図１９はＯＳ６０５が有する保護情報部５４０の内容例を示す。図１９を参照すると、保護情報部５４０には、不揮発性記憶部１３０を構成するブロックアドレス２５６〜５１１の複数のブロックのうち、ブロックアドレス２５６〜３００のブロックに対しては読み込み専用（Ｒ）の保護属性が、残りのブロックアドレス３０１〜５１１のブロックに対しては読み書き可能（ＲＷ）の保護属性がそれぞれ割り当てられている。ここで言うブロックアドレスは、本実施例の場合、論理アドレスと物理アドレスが同じなので、論理ブロックアドレスおよび物理ブロックアドレスを意味する。
【００９８】
以下、本実施例のコンピュータ６００の動作を説明する。
【００９９】
コンピュータ６００は起動されると、図１７のステップＳ４０１において、主記憶部１２０のクリア、メモリコントローラ６０２やハードウェア６０９の初期化などのハードウェアの初期化を行った後、次のステップＳ４０２において、ＩＰＬ６０４に実装されたステータステーブル初期化部５５０によって、主記憶部１２０および不揮発性記憶部１３０に物理アドレスを割り当て、メモリコントローラ６０２内のステータステーブル部５１０を初期設定する。
【０１００】
図２０に物理アドレスの割り当て例を、図２１（ａ）にステータステーブル部５１０の初期設定例を、それぞれ示す。
【０１０１】
図２０を参照すると、不揮発性記憶部１３０の各ブロックには２５６〜５１１の物理ブロックアドレスが割り当てられ、主記憶部１２０の各ブロックには７６８〜２５６００の物理ブロックアドレスが割り当てられている。ここで、主記憶部１２０のブロックのうち、不揮発性記憶部１３０のブロック数と等しい数のブロックが連続する領域として、物理ブロックアドレス７６８〜１０２３の領域を、不揮発性記憶ブロック１３０のブロックをコピーするための領域として予約しておく。物理ブロックアドレス１０２４以降のブロックは予約されていない主記憶領域である。このような物理アドレスの割り当て及びコピー領域の選定を行う理由は、アドレス変換部５７０における物理アドレス間の変換を簡素化するためである。以下、この点について説明する。
【０１０２】
本実施例では１ブロックの容量を４０９６バイトとしている。従って、不揮発性記憶ブロック１３０の物理アドレスは１６進数で表現すると、０ｘ１００００００〜０ｘ１ＦＦＦＦＦとなり、コピー領域としての予約領域の物理アドレスは、０ｘ３００００００〜０ｘ３ＦＦＦＦＦとなる。不揮発性記憶部１３０の物理ブロックアドレス２５６のブロックのコピー先として予約領域の物理ブロックアドレス７６８のブロック、物理ブロックアドレス２５７のブロックのコピー先として物理ブロックアドレス７６９のブロック、…、物理ブロックアドレス５１１のブロックのコピー先として物理ブロックアドレス１０２３のブロックを使うようにすると、不揮発性記憶部１３０の或るブロックの物理アドレスとそのコピー先となる予約領域のブロックの物理アドレスとは、１６進数表記で下位６桁目が「１」か「３」の相違になり、２進数表記では下位２２ビット目が「０」か「１」の相違になる。従って、不揮発性記憶部１３０の或るブロックに属する物理アドレスを、そのブロックのコピー先のブロックに属する物理アドレスに変換する操作は、下位２２ビット目の値を０から１に変更する操作で済む。
【０１０３】
図２１（ａ）を参照すると、メモリコントローラ６０２が備えるステータステーブル部５１０の初期状態は、不揮発性記憶部１３０に割り当てられた物理ブロックアドレス２５６〜５１１に対して、全てコピー未完了を示す論理値０のステータスが設定される。
【０１０４】
図１７のステップＳ４０３においては、ＣＰＵ６０１が不揮発性記憶部１３０に保存されている主記憶イメージからシステムを起動する。具体的には、ＩＰＬ６０４がＣＰＵ２０１内のプログラムカウントにシステムの運用を開始する際に最初に実行する命令の論理アドレスを設定し、その命令から実行を開始させることにより、システムの運用を開始させる（ステップＳ４０４）。
【０１０５】
次に、システム運用（ステップＳ４０４）の段階において、ＣＰＵ６０１上で実行されるプログラムが主記憶装置１０１をアクセスした際の動作を説明する。例として以下のようなアクセスを想定する。
（１）物理ブロックアドレス「４００」を持つ物理アドレスへの最初の書き込みアクセス
（２）物理ブロックアドレス「４００」を持つ物理アドレスへの２回目以降の書き込みアクセス
（３）物理ブロックアドレス「２５６」を持つ物理アドレスへの読み出しアクセス
（４）物理ブロックアドレス「１０２４」を持つ物理アドレスへのアクセス
【０１０６】
先ず、物理ブロックアドレス「４００」を持つ物理アドレスへの最初の書き込みアクセスが発生した際の動作を説明する。この場合、メモリコントローラ６０２は、物理ブロックアドレス「４００」でステータステーブル部５１０を検索し、図２１中の「ブロックアドレス４００、ステータス０」のエントリを取得する（ステップＳ３０１）。次に、メモリコントローラ６０２は、検索に成功したので不揮発性記憶部１３０へのアクセスであることを判別し（ステップＳ３０２でＹＥＳ）、且つ、ステータスが０（コピー未完了）であることを判別する（ステップＳ３０４でＹＥＳ）。次に、メモリコントローラ６０２は、メモリアクセスが書き込みアクセスであることを判別し（ステップＳ３０６でＹＥＳ）、物理ブロックアドレス「４００」で保護情報部５４０を検索し、図１９中の「ブロックアドレス４００、保護属性ＲＷ」のエントリを取得する（ステップＳ３０７）。メモリコントローラ６０２は、取得した保護属性が読み書き可能であることを確認し（ステップＳ３０８でＮＯ）、物理ブロックアドレス「４００」のブロックを主記憶部１２０の予約領域における物理ブロックアドレス「９１２」のブロックにコピーする（ステップＳ３０９）。次に、図２１（ｂ）に示すように、ステータステーブル部５１０中の物理ブロックアドレス「４００」のステータスを０から１（コピー完了）に更新する（ステップＳ３１０）。次に、メモリコントローラ６０２は、今回のアクセスにかかる物理アドレスの下位２２ビット目の値を０から１に変更することにより、物理アドレスの変換を行い（ステップＳ３０５）、主記憶部１２０の物理ブロックアドレス「９１２」のブロックにコピーされたデータを、プログラムから渡されたデータで書き換える（ステップＳ３０３）。
【０１０７】
このように、システムの運用開始後、不揮発性記憶部１３０の保護属性がＲＷの或るブロックに対して最初の書き込みアクセスが発生した場合、そのブロックが主記憶部１２０にコピーされ、そのコピー上で更新が行われる。
【０１０８】
次に、物理ブロックアドレス「４００」を持つ物理アドレスへの２回目以降の書き込みアクセスが発生した場合の動作を説明する。メモリコントローラ６０２は、物理ブロックアドレス「４００」でステータステーブル部５１０を検索すると、ステータステーブル部５１０は図２１（ａ）の状態から図２１（ｂ）の状態に更新されているので、「ブロックアドレス４００、ステータス１」のエントリを取得する（ステップＳ３０１）。次に、メモリコントローラ６０２は、検索に成功したので不揮発性記憶部１３０へのアクセスであることを判別し（ステップＳ３０２でＹＥＳ）、且つ、ステータスが１（コピー完了）であることを判別する（ステップＳ３０４でＹＥＳ）。次に、メモリコントローラ６０２は、今回のアクセスにかかる物理アドレスの下位２２ビット目の値を０から１に変更することにより、物理アドレスの変換を行い（ステップＳ３０５）、主記憶部１２０の物理ブロックアドレス「９１２」のブロックにコピーされたデータを、プログラムから渡されたデータで書き換える（ステップＳ３０３）。
【０１０９】
このように、システムの運用開始後、不揮発性記憶部１３０の保護属性がＲＷの或るブロックに対して２回目以降の書き込みアクセスが発生した場合、初回のようなコピー動作は最早必要ないため、主記憶部１２０上に存在するコピーが直ちに更新される。
【０１１０】
次に、論理ブロックアドレス「２５６」を持つ論理アドレスへの読み出しアクセスが発生した場合の動作を説明する。メモリコントローラ６０２は、物理ブロックアドレス「２５６」でステータステーブル部５１０を検索し、図２１中の「ブロックアドレス２５６、ステータス０」のエントリを取得する（ステップＳ３０１）。次に、メモリコントローラ６０２は、検索に成功したので不揮発性記憶部１３０へのアクセスであることを判別し（ステップＳ３０２でＹＥＳ）、且つ、ステータスが０（コピー未完了）であることを判別する（ステップＳ３０４でＹＥＳ）。次に、メモリコントローラ６０２は、メモリアクセスが読み出しアクセスであるため（ステップＳ３０６でＮＯ）、物理アドレス変換を行わず、入力された物理ブロックアドレス「２５６」を持つ物理アドレスそのもので不揮発性記憶部１３０をアクセスし、読み出したデータをプログラムに返却する（ステップＳ３０３）。
【０１１１】
このように、不揮発性記憶部１３０への読み出しアクセスに関しては不揮発性記憶部１３０から直接にデータを読み出す。
【０１１２】
次に物理ブロックアドレス「１０２４」を持つ物理アドレスへのアクセスが発生した際の動作を説明する。この場合、メモリコントローラ６０２は、物理ブロックアドレス「１０２４」でステータステーブル部５１０を検索するが、検索に失敗するため不揮発性記憶部１３０以外の主記憶領域へのアクセスと判定し（ステップＳ３０２でＮＯ）、物理アドレス変換を行わず、入力された物理ブロックアドレス「１０２４」を持つ物理アドレスそのもので主記憶部１２０をアクセスする（ステップＳ３０３）。
【０１１３】
【発明の第４の実施の形態】
以上の第１乃至第３の実施の形態においては、計算機システムで使用する主記憶イメージを切り替えるためには、計算機システムに実装されている不揮発性記憶部１３０を、別の主記憶イメージを記憶する他の不揮発性記憶部に差し替えるか、その不揮発性記憶部１３０に記憶されている主記憶イメージを書き換える必要がある。本実施の形態では、記憶される主記憶イメージが互いに相違する複数の不揮発性記憶部を予め複数実装し、その何れか１つを選択することにより、起動および再起動時に使用する主記憶イメージの切替えを可能とする。
【０１１４】
図２２を参照すると、本実施の形態にかかる計算機システム７００は、主記憶装置１０１に３つの不揮発性記憶部１３１〜１３３を備え、データ処理装置７００に、３つの不揮発性記憶部１３１〜１３３の何れか１つを選択する選択部７９０と、各不揮発性記憶部１３１〜１３３に１対１に対応する３つの保護情報部１４１〜１４３の何れか１つを選択する選択部７９１とを備え、不揮発性記憶部の選択情報をハードウェア初期化部１８０および選択部７９０、７９１に出力する物理的なスイッチ７９２を備えている点で、図１に示した第１の実施の形態と相違する。なお、本実施の形態では、不揮発性記憶部を１３１、１３２、１３３の３つ備えているが、不揮発性記憶部の数は２以上であれば任意でよい。
【０１１５】
各々の不揮発性記憶部１３１〜１３３には、ＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージが記憶されており、それらの主記憶イメージは互いに相違する。このため、どの不揮発性記憶部を使用するかによって計算機システム７００の仕様が異なるものとなる。
【０１１６】
次に、本実施の形態の計算機システム７００の動作を図２３のフローチャートを参照して説明する。計算機システム７００は起動されると、先ず、第１の実施の形態と同様にハードウェア初期化部１８０によってハードウェアの初期化を行うが、その際、スイッチ７９２から出力される選択情報に応じて、選択部７９０が不揮発性記憶部１３１〜１３３のうち選択情報で指定された１つの不揮発性記憶部を選択し、また選択部７９１が保護情報部１４１〜１４３のうち、選択された不揮発性記憶部に対応する保護情報部を選択する。ここでは、説明の便宜上、不揮発性記憶部１３１および保護情報部１４１が選択されたものとする。
【０１１７】
次に、マッピングテーブル初期化部１５０によって、主記憶部１２０と、不揮発性記憶部１３１〜１３３のうち選択された不揮発性記憶部１３１に物理アドレスを割り当て、マッピングテーブル部１１０を初期設定する（ステップＳ５０２）。マッピングテーブル部１１０の初期設定では、論理ブロックアドレスと物理ブロックアドレスの対応関係をマッピングテーブル部１１０に書き込み、且つ、選択された不揮発性記憶部１３１の全てのブロックは読み込み専用の保護モードでマッピングテーブル部１１０に登録する。
【０１１８】
次にデータ処理装置７０２は、選択された不揮発性記憶部１３１に保存されている主記憶イメージからシステムを起動する（ステップＳ５０３）。この主記憶イメージは、ＯＳやアプリケーションの起動直後と同じ状態であるため、システムは立ち上げ直後の環境に復帰することになる。このとき、主記憶イメージから起動してから、システム運用（ステップＳ５０４）が可能になるまでの運用中断状態は存在しない。
【０１１９】
システム運用（ステップＳ５０４）の段階において、プログラムから不揮発性記憶部１３１のとあるブロックに対して初めての書き込みアクセスが発生したときには、そこは読み込み専用の保護モードでマッピングされているのでアドレス変換部１７０が例外イベントを通知し、当該書き込みアクセスを一時保留する。例外イベントを受け取ったマッピングテーブル変更部１６０は、選択された保護情報部１４１を参照してその書き込み発生論理アドレスのブロックの保護属性を判断し、読み書き可能属性であれば、そのブロックの大きさの空きブロックを主記憶部１２０から割り当て、その不揮発性記憶部１３１の当該ブロックの内容をコピーする。更に、マッピングテーブル変更部１６０は、割り当てられた主記憶ブロックを書き込みが発生した論理ブロックアドレスに読み書き可の保護モードでマッピングするようマッピングテーブル部１１０に設定して、一時保留された書き込みアクセスの処理を再開させる。この結果、一時保留された書き込みアクセスおよびその後の当該ブロックへの書き込み操作は、割り当てられた主記憶ブロックに対して実行される。このとき、ブロックの単位を小さくすることでコピー時間が短くなり、システム運用が中断される時間を短くすることができる。
【０１２０】
この状態で、再起動が行われると（ステップＳ５０５）、再びハードウェアの初期化処理（ステップＳ５０１）から実行され、起動時と同じようにマッピングテーブル初期化部１５０の動作によってマッピングテーブル部１１０の内容が初期化され、不揮発性記憶部１３１がマッピングし直される（ステップＳ５０２）。このため、システムの運用中に主記憶部１２０に対して行われた書き込みの内容は一切反映されていない状態に戻り、これがつまり、立ち上げ直後の環境に復帰することと同じになる。
【０１２１】
以上の実施の形態では、不揮発性記憶部１３１〜１３３の何れを使用するかを物理的なスイッチ７９２で制御したが、ＢＩＯＳ設定のフラグで制御することも可能である。また、複数存在する不揮発性記憶部のうち選択された不揮発性記憶部だけに物理アドレスを割り当てたが、全ての不揮発性記憶部に物理アドレスを割り当てるようにしても良いし、全ての不揮発性記憶部に物理アドレスが静的に割り当てられていても良い。また、全ての不揮発性記憶部で同じ保護属性が使える場合、保護情報部１４１〜１４３は１つで良く、選択部７９１は省略できる。更に、本実施の形態と第１の実施の形態との差と同様な変更を第２および第３の実施の形態の計算機システムに適用することも可能である。
【０１２２】
【発明の第５の実施の形態】
第４の実施の形態では、複数の不揮発性記憶部の何れか１つを選択することによって計算機システムで使用する主記憶イメージの切り換えを可能とした。この方法は主記憶イメージの大幅な切替えには適するが、主記憶イメージの一部分だけを別のイメージに変更する場合には、複数の不揮発性記憶部中の主記憶イメージの大部分が同じになるため無駄が多い。本実施の形態は、不揮発性記憶部に記憶された主記憶イメージの一部分だけを別のイメージに置き換える。
【０１２３】
図２４を参照すると、本実施の形態にかかる計算機システム８００は、主記憶装置１０１に基本となる不揮発性記憶部１３０以外に第１の追加不揮発性記憶部１３５と第２の追加不揮発性記憶部１３６とを備えている点で、図１に示した第１の実施の形態と相違する。なお、本実施の形態では、追加不揮発性記憶部を１３５、１３６の２つを備えているが、不揮発性記憶部の数は１以上であれば任意でよい。
【０１２４】
各々の追加不揮発性記憶部１３５、１３６には、不揮発性記憶部１３０に記憶されているＯＳ及びアプリケーションプログラムの初期化処理後の主記憶イメージに対する一部分の修正イメージが記憶されている。概念図を図２５に示す。図２５において、１３００は不揮発性記憶部１３０に記憶されている主記憶イメージ、１３０１は追加不揮発性記憶部１３５に記憶されている修正イメージである。修正イメージ１３０１は、この例では２つのブロック１３０２、１３０３から構成され、ブロック１３０２は主記憶イメージ１３００のブロック１３０５に対応し、ブロック１３０３は主記憶イメージ１３００のブロック１３０６に対応している。ブロック１３０５、１３０６内の斜線を施した領域１３０７、１３０８は修正対象としたい領域である。修正イメージ１３０１のブロック１３０２、１３０３内のドットを施した領域１３０９、１３１０は、領域１３０７、１３０８のイメージと置き換えるイメージである。
【０１２５】
追加不揮発性記憶部１３５に記憶する修正イメージの生成方法は任意であるが、例えば、追加ハードウェア９０１が実装された計算機システムを通常の方法で起動した直後の主記憶イメージをダンプし、追加ハードウェア９０１および９０２が実装されていない計算機システムの起動直後の主記憶イメージと比較し、内容に異なる部分があるブロックを抽出することで生成することができる。追加不揮発性記憶部１３６に記憶する修正イメージは、例えば、追加ハードウェア９０１および９０２が実装された計算機システム９００を通常の方法で起動した直後の主記憶イメージをダンプし、追加ハードウェア９０１が実装され、追加ハードウェア９０２が実装されていない計算機システムの起動直後の主記憶イメージと比較し、内容に異なる部分があるブロックを抽出することで生成することができる。
【０１２６】
また、各々の追加不揮発性記憶部１３５、１３６には、修正後イメージに加えて、各ブロック毎に、割り当てられるべき物理ブロックアドレスとマッピングされるべき論理ブロックアドレスの情報と追加の適用順序とが予め記憶されている。追加の適用順序は、複数の追加不揮発性記憶部の適用順番を保証する場合に必要であり、順不同で適用しても結果が同じになる場合には省略できる。これらの追加不揮発性記憶部１３５、１３６は、不揮発性記憶部１３０と同様に不揮発性を有するメモリなら任意の種類のメモリで良く、例えばフラッシュメモリ等の書き換え可能な不揮発性メモリや、ＲＯＭ等の読み出し専用の不揮発性メモリが使用される。
【０１２７】
図２６は計算機システム８００の概略動作を示すフローチャートである。以下、各図を参照して本実施の形態の動作を説明する。
【０１２８】
計算機システム８００は起動されると、図２６に示されるように、先ず、ハードウェア初期化部１８０によってハードウェアの初期化を行った後（ステップＳ６０１）、マッピングテーブル初期化部１５０によって、主記憶部１２０および不揮発性記憶部１３０に物理アドレスを割り当て、マッピングテーブル部１１０を初期設定する（ステップＳ６０２）。ハードウェアの初期化に伴うハードウェアのチェックの段階で、追加不揮発性記憶部１３５、１３６が実装されていることが検出される。マッピングテーブル部１１０の初期設定では、論理ブロックアドレスと物理ブロックアドレスの対応関係をマッピングテーブル部１１０に書き込み、且つ、不揮発性記憶部１３０の全てのブロックは読み込み専用の保護モードでマッピングテーブル部１１０に登録する。
【０１２９】
続いてマッピングテーブル初期化部１５０は、追加不揮発性記憶部１３５および追加不揮発性記憶部１３６が実装されているので、それらに書き込まれている物理ブロックアドレスの情報に従って物理アドレスを割り当て、また、書き込まれている論理アドレスの情報に従ってマッピングテーブル部１１０のマッピングを追加順に変更する（ステップＳ６０３）。つまり、追加の適用順序が追加不揮発性記憶部１３５、追加不揮発性記憶部１３６の順であれば、不揮発性記憶部１３０がマッピングされている論理ブロックアドレスの一部を先ず第１の追加不揮発性記憶部１３５で部分的に置き換え、次に第２の追加不揮発性記憶部１３６で部分的に置き換える。このときも、追加不揮発性記憶部１３５および追加不揮発性記憶部１３６の領域は読み込み専用の保護モードでマッピングテーブル部１１０に登録される。
【０１３０】
次にデータ処理装置８０２は、不揮発性記憶部１３０に保存されている主記憶イメージからシステムを起動する（ステップＳ６０４）。この主記憶イメージは、ＯＳやアプリケーションの起動直後と同じ状態であるため、システムは立ち上げ直後の環境に復帰することになる。このとき、主記憶イメージから起動してから、システム運用（ステップＳ６０５）が可能になるまでの運用中断状態は存在しない。
【０１３１】
システム運用（ステップＳ６０５）の段階において、プログラムから主記憶装置１０１がアクセスされた際には、第１の実施の形態と同様に図４に示した処理が実行される。これにより、プログラムから不揮発性記憶部１３０および追加不揮発性記憶部１３５、１３６の何れかのとあるブロックに対して初めての書き込みアクセスが発生したときには、そこは読み込み専用の保護モードでマッピングされているのでアドレス変換部１７０が例外イベントを通知し、当該書き込みアクセスを一時保留する（図４のＳ１０６）。例外イベントを受け取ったマッピングテーブル変更部１６０は、保護情報部１４０を参照してその書き込み発生論理アドレスのブロックの保護属性を判断し（図４のステップＳ１０８）、読み書き可能属性であれば、そのブロックの大きさの空きブロックを主記憶部１２０から割り当て、その不揮発性記憶部１３０、１３５、１３６の該当ブロックの内容をコピーする（図４のステップＳ１０９）。更に、マッピングテーブル変更部１６０は、割り当てられた主記憶ブロックを書き込みが発生した論理ブロックアドレスに読み書き可の保護モードでマッピングするようマッピングテーブル部１１０に設定して、一時保留された書き込みアクセスの処理を再開させる（図４のステップＳ１１０）。この結果、一時保留された書き込みアクセスおよびその後の当該ブロックへの書き込み操作は、割り当てられた主記憶ブロックに対して実行される。このとき、ブロックの単位を小さくすることでコピー時間が短くなり、システム運用が中断される時間を短くすることができる。
【０１３２】
この状態で、再起動が行われると（図２６のステップＳ６０６）、再びハードウェアの初期化処理（ステップＳ６０１）から実行され、起動時と同じようにマッピングテーブル初期化部１５０の動作によってマッピングテーブル部１１０の内容が初期化され、不揮発性記憶部１３０および追加不揮発性記憶部１３５、１３６がマッピングし直される（ステップＳ６０２、Ｓ６０３）。このため、システムの運用中に主記憶部１２０に対して行われた書き込みの内容は一切反映されていない状態に戻り、これがつまり、立ち上げ直後の環境に復帰することと同じになる。
【０１３３】
次に、本実施の形態について、一実施例を挙げてより詳細に説明する。
【０１３４】
図２７のコンピュータ９００は、本実施の形態を適用した計算機システムの一例である。このコンピュータ９００は、主記憶装置１０１が主記憶部１２０と不揮発性記憶部１３０に加えて追加不揮発性記憶部１３５、１３６を備え、ハードウェア２０９に加えて追加ハードウェア９０１、９０２を備えている点で、図６に示した第１の実施の形態の実施例にかかるコンピュータ２００と相違している。
【０１３５】
ＣＰＵ２０１に接続された追加ハードウェア９０１、９０２は、ネットワークカード、ＳＣＳＩカード、サウンドカードなどのハードウェアである。不揮発性記憶部１３０に記憶される主記憶イメージは、追加ハードウェア９０１、９０２が追加されていない図６のコンピュータ２００と同じシステム構成時の主記憶イメージである。追加ハードウェア９０１を追加すると、不揮発性記憶部１３０中の主記憶イメージの一部分を修正する必要があり、追加不揮発性記憶部１３５にはその修正後のイメージが記憶されている。同様に、さらに追加ハードウェア９０２を追加すると、不揮発性記憶部１３０中の主記憶イメージの一部分をさらに修正する必要があり、追加不揮発性記憶部１３６にはその修正後のイメージが記憶されている。
【０１３６】
以下、本実施例のコンピュータ９００の動作を説明する。
【０１３７】
コンピュータ９００は起動されると、図２６のステップＳ６０１において、主記憶部１２０のクリア、ハードウェア２０９および追加ハードウェア９０１、９０２の初期化などのハードウェアの初期化を行う。このハードウェアの初期化に伴うハードウェアチェックにおいて、追加不揮発性記憶部１３５、１３６が実装されていること、および、追加不揮発性記憶部１３５、１３６に保持されている物理論理割付情報および追加の適用順序の情報が読み取られる。今、追加不揮発性記憶部１３５、１３６に以下のような物理論理割付情報が保持されているものとする。
○追加不揮発性記憶部１３５
追加順番：１
第１ブロック：物理ブロックアドレス「２０」、論理ブロックアドレス「１」
第２ブロック：物理ブロックアドレス「２１」、論理ブロックアドレス「３」
○追加不揮発性記憶部１３６
追加順番２
第１ブロック：物理ブロックアドレス「３０」、論理ブロックアドレス「２」
第２ブロック：物理ブロックアドレス「３１」、論理ブロックアドレス「４」
【０１３８】
なお、上記の例では双方の追加不揮発性記憶部１３５で論理ブロックアドレスは重複していないが、追加されるハードウェアの種類などによっては重複する場合もあり得る。この場合には、結果として適用順序が後になるものが最終的に適用される。
【０１３９】
次のステップＳ６０２では、ＩＰＬ２０４に実装されたマッピングテーブル初期化部１５０によって、主記憶部１２０および不揮発性記憶部１３０に物理アドレスを割り当て、マッピングテーブル部１１０を初期設定する。図２８に物理アドレスの割り当て例を、図２９（ａ）にマッピングテーブル部１１０の初期設定例を、それぞれ示す。図示した例は本発明の理解を容易にするためにブロック数を極めて小さくしてあり、実際には数多くのブロックが存在する。
【０１４０】
図２８を参照すると、不揮発性記憶部１３０の各ブロックには０〜６の物理ブロックアドレスが割り当てられ、主記憶部１２０の各ブロックには７以降の物理ブロックアドレスが割り当てられている。また、図２９（ａ）を参照すると、主記憶部１２０に生成されるマッピングテーブル部１１０の初期状態は、０〜５の論理ブロックアドレスに対して、不揮発性記憶部１３０に割り当てられた物理ブロックアドレス１〜６が対応付けられ、それらの保護モードは全て読み込み専用（Ｒ）に設定される。また、６の論理ブロックアドレスに対して、主記憶部１２０の予め定められた物理ブロック（例では物理ブロックアドレス７のブロック）が対応付けられ、その保護モードは読み書き可能（ＲＷ）に設定される。ここで、物理ブロックアドレス７のブロックは、マッピングテーブル部１１０が生成されるブロックである。
【０１４１】
図２６のステップＳ６０３においては、追加不揮発性記憶部１３５、１３６に書き込まれている物理論理割付情報に従って物理アドレスを割り当て、また、書き込まれている論理アドレスの情報に従ってマッピングテーブル部１１０のマッピングを変更する。図２８に物理アドレスの割り当て例を、図２９（ｂ）にマッピングテーブル部１１０の変更例を、それぞれ示す。
【０１４２】
図２８を参照すると、第１の追加不揮発性記憶部１３５の２つのブロックに物理ブロックアドレス「２０」、「２１」が割り当てられ、次に第２の追加不揮発性記憶部１３６の２つのブロックに物理ブロックアドレス「３０」、「３１」が割り当てられている。
【０１４３】
図２９（ｂ）を参照すると、論理ブロックアドレス「１」と「３」に、追加不揮発性記憶媒体１３５の物理ブロックアドレス「２０」と「２１」が上書きされ、論理ブロックアドレス「２」と「４」に、追加不揮発性記憶媒体１３６の物理ブロックアドレス「３０」と「３１」が上書きされている。
【０１４４】
図２６のステップＳ６０４においては、ＣＰＵ２０１がシステムの運用を開始する際に最初に実行する論理アドレスの命令から実行を開始することにより、システムの運用を開始する。このシステム運用の段階において、ＣＰＵ２０１上で実行されるプログラムが主記憶装置１０１をアクセスした際には、第１の実施の形態と同様な動作が行われる。例えば、論理ブロックアドレス「３」を持つ論理アドレスへの最初の書き込みアクセスを例にすると、以下のような動作となる。
【０１４５】
アドレス変換部１７０は、論理ブロックアドレス「３」でマッピングテーブル部１１０を検索し、図２９（ｂ）中の「論理ブロックアドレス３、物理ブロックアドレス２１、保護モードＲ」のエントリを取得する（図４のステップＳ１０１）。次に、アドレス変換部１７０は、メモリアクセスが書き込みアクセスであり（ステップＳ１０２でＹＥＳ）、保護モードが読み込み専用であるので（ステップＳ１０５）、当該メモリアクセスの処理を一時保留し、例外イベントをマッピングテーブル変更部１６０に通知して例外処理を起動する（ステップＳ１０６）。
【０１４６】
マッピングテーブル変更部１６０は、論理ブロックアドレス「３」で保護情報部１４０を検索する。保護情報部１４０の内容が第１の実施の形態の実施例と同様に図７に示したものである場合、図７の論理ブロックアドレス３を持つエントリの保護属性ＲＷを取得する（ステップＳ１０７）。次に、マッピングテーブル変更部１６０は、保護属性ＲＷが読み書き可能な保護属性であるので（ステップＳ１０８）、物理ブロックアドレス「２１」で特定される追加不揮発性記憶部１３５のブロックを、その時点の主記憶部１２０の空きブロック（物理ブロックアドレス１３のブロックとする）にコピーする（ステップＳ１０９）。次にマッピングテーブル変更部１６０は、図３０（ａ）に示されるように、論理ブロックアドレス「３」を持つエントリの物理ブロックアドレスを「２１」から「１３」に書き換え、かつ保護モードをＲからＲＷに書き換える（ステップＳ１１０）。そして、例外処理の完了をアドレス変換部１７０に通知する。
【０１４７】
アドレス変換部１７０は、マッピングテーブル変更部１６０から例外処理の完了通知を受けると、一時保留していたメモリアクセスの処理をステップＳ１０１から再開する。アドレス変換部１７０は、論理ブロックアドレス「３」でマッピングテーブル部１１０を検索すると、マッピングテーブル部１１は図２９（ｂ）の状態から図３０（ａ）の状態に更新されているので、今度は「論理ブロックアドレス３、物理ブロックアドレス１３、保護モードＲＷ」のエントリを取得する（ステップＳ１０１）。アドレス変換部１７０は、プログラムから指定されたメモリアクセスが、書き込みアクセスであり（ステップＳ１０２でＹＥＳ）、保護モードがＲＷなので（ステップＳ１０５でＮＯ）、取得したエントリ中の物理ブロックアドレス「１３」を用いて、プログラムから指定された論理アドレスを物理アドレスに変換し（ステップＳ１０３）、その物理アドレスで特定される主記憶装置１０１の個所をアクセスし、プログラムから渡されたデータを書き込む（ステップＳ１０４）。
【０１４８】
同様に、論理ブロックアドレス「５」を持つ論理アドレスへの最初の書き込みアクセスが発生した場合には、マッピングテーブル部１１０は図３０（ｂ）のように更新される。
【０１４９】
このように本実施例においても、第１の実施の形態の実施例と同様に、システムの運用開始後、不揮発性記憶部１３０の保護属性がＲＷの或るブロックに対して最初の書き込みアクセスが発生した場合、そのブロックが主記憶部１２０にコピーされ、そのコピー上で更新が行われる。
【０１５０】
なお、本実施の形態と第１の実施の形態との差と同様な変更を第２および第３の実施の形態の計算機システムに適用することも可能である。
【０１５１】
【発明の効果】
第１の効果は、計算機システムの高速な起動が可能になることである。その理由は、不揮発性記憶部に記憶された主記憶イメージからシステムを起動し、且つ、ＯＳやアプリケーションプログラムによって書き換える必要のあるデータをシステムの起動時に不揮発性記憶部から読み書き可能な代替記憶部へ連続してコピーするのではなく、不揮発性記憶部に対して書き込みアクセスが発生した都度実施するため、起動時にメモリコピーが連続的に発生しないためである。
【０１５２】
第２の効果は、主記憶が無駄に使用されないことにある。その理由は、読み込み専用のデータは主記憶にコピーすることなく不揮発性記憶部から直接読み込むためである。また、読み込み専用のデータはコピーしないので、不揮発性記憶部の全内容をコピーする場合に比べてコピー時間が短縮する効果もある。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の第１の実施の形態におけるマッピングテーブル部のエントリの構成例を示す図である。
【図３】本発明の第１の実施の形態における保護情報部のエントリの構成例を示す図である。
【図４】本発明の第１の実施の形態におけるアドレス変換部およびマッピングテーブル変更部の処理例を示すフローチャートである。
【図５】本発明の第１の実施の形態の動作の概略を示すフローチャートである。
【図６】本発明の第１の実施の形態の一実施例のブロック図である。
【図７】本発明の第１の実施の形態の一実施例における保護情報部の内容例を示す図である。
【図８】本発明の第１の実施の形態の一実施例における物理アドレスの割り当て例を示す図である。
【図９】本発明の第１の実施の形態の一実施例におけるマッピングテーブル部の初期状態および変更後の状態を示す図である。
【図１０】本発明の第２の実施の形態の構成を示すブロック図である。
【図１１】本発明の第２の実施の形態の動作の概略を示すフローチャートである。
【図１２】本発明の第２の実施の形態の一実施例のブロック図である。
【図１３】本発明の第３の実施の形態の構成を示すブロック図である。
【図１４】本発明の第３の実施の形態におけるステータステーブル部のエントリの構成例を示す図である。
【図１５】本発明の第３の実施の形態における保護情報部のエントリの構成例を示す図である。
【図１６】本発明の第３の実施の形態におけるメモリアクセス部の処理例を示すフローチャートである。
【図１７】本発明の第３の実施の形態の概略動作を示すフローチャートである。
【図１８】本発明の第３の実施の形態の一実施例のブロック図である。
【図１９】本発明の第３の実施の形態の一実施例における保護情報部の内容例を示す図である。
【図２０】本発明の第３の実施の形態の一実施例における物理アドレスの割り当て例を示す図である。
【図２１】本発明の第３の実施の形態の一実施例におけるステータステーブル部の初期状態および変更後の状態を示す図である。
【図２２】本発明の第４の実施の形態の構成を示すブロック図である。
【図２３】本発明の第４の実施の形態の概略動作を示すフローチャートである。
【図２４】本発明の第５の実施の形態の構成を示すブロック図である。
【図２５】本発明の第５の実施の形態における不揮発性記憶部に記憶される主記憶イメージと追加不揮発性記憶部に記憶される修正イメージとの関係を示す図である。
【図２６】本発明の第５の実施の形態の概略動作を示すフローチャートである。
【図２７】本発明の第５の実施の形態の一実施例のブロック図である。
【図２８】本発明の第５の実施の形態の一実施例における物理アドレスの割り当て例を示す図である。
【図２９】本発明の第５の実施の形態の一実施例におけるマッピングテーブル部の初期状態を示す図である。
【図３０】本発明の第５の実施の形態の一実施例におけるマッピングテーブル部の変更後の状態を示す図である。
【符号の説明】
１００  計算機システム
１０１  主記憶装置
１０２  データ処理装置
１１０  マッピングテーブル部
１２０  主記憶部
１３０〜１３３  不揮発性記憶部
１３５、１３６  追加不揮発性記憶部
１４０  保護情報部
１５０  マッピングテーブル初期化部
１６０  マッピングテーブル変更部
１７０  アドレス変換部
【図１】
2005010897.tif 000003
【図２】
2005010897.tif 000004
【図３】
2005010897.tif 000005
【図４】
2005010897.tif 000006
【図５】
2005010897.tif 000007
【図６】
2005010897.tif 000008
【図７】
2005010897.tif 000009
【図８】
2005010897.tif 000010
【図９】
2005010897.tif 000011
【図１０】
2005010897.tif 000012
【図１１】
2005010897.tif 000013
【図１２】
2005010897.tif 000014
【図１３】
2005010897.tif 000015
【図１４】
2005010897.tif 000016
【図１５】
2005010897.tif 000017
【図１６】
2005010897.tif 000018
【図１７】
2005010897.tif 000019
【図１８】
2005010897.tif 000020
【図１９】
2005010897.tif 000021
【図２０】
2005010897.tif 000022
【図２１】
2005010897.tif 000023
【図２２】
2005010897.tif 000024
【図２３】
2005010897.tif 000025
【図２４】
2005010897.tif 000026
【図２５】
2005010897.tif 000027
【図２６】
2005010897.tif 000028
【図２７】
2005010897.tif 000029
【図２８】
2005010897.tif 000030
【図２９】
2005010897.tif 000031
【図３０】
2005010897.tif 000032