(57)【要約】【課題】高速に起動し、且つ、高速に動作する計算機システムを提供すること。【解決手段】本発明に係る計算機システム１は、第１記憶装置２１と、その第１記憶装置２１と性能の異なる第２記憶装置２２と、第１及び第２記憶装置２２へのアクセスを行うデータ処理装置とを備える。第１、第２記憶装置２１、２２は、ブロック毎に区分けされる。あるブロックを指し示す第１論理ブロックアドレスへの第１回目のアクセス時、データ処理装置は、第１記憶装置２１のうち第１論理ブロックアドレスに対応する第１物理ブロックアドレスにアクセスする。また、第１論理ブロックアドレスへの第ｍ回目（ｍは２以上の任意の整数）のアクセス時、データ処理装置は、そのブロックの内容を第２記憶装置２２の空きブロックへコピーし、第２記憶装置２２のうちコピー先に対応する第２物理ブロックアドレスにアクセスする。【選択図】図１
2007304747.tif 000002
【特許請求の範囲】
【請求項１】
第１記憶装置と、
前記第１記憶装置と性能の異なる第２記憶装置と、
前記第１、第２記憶装置へのアクセスを行うデータ処理装置と
を備え、
前記第１、第２記憶装置は、ブロック毎に区分けされ、
あるブロックを指し示す第１論理ブロックアドレスへの第１回目のアクセス時、前記データ処理装置は、前記第１記憶装置のうち前記第１論理ブロックアドレスに対応する第１物理ブロックアドレスにアクセスし、
前記第１論理ブロックアドレスへの第ｍ回目（ｍは２以上の任意の整数）のアクセス時、前記データ処理装置は、前記あるブロックの内容を前記第２記憶装置の空きブロックへコピーし、前記第２記憶装置のうちコピー先に対応する第２物理ブロックアドレスにアクセスする
計算機システム。
【請求項２】
請求項１に記載の計算機システムであって、
更に、論理ブロックアドレスと物理ブロックアドレスとの対応関係を示すマッピングテーブルを備え、
前記データ処理装置は、前記マッピングテーブルの一部が格納されるように構成されたキャッシュを有し、プログラムからのメモリアクセス要求に応答して前記キャッシュを参照し、
前記第１論理ブロックアドレスに対応する物理ブロックアドレスを示す第１エントリが前記キャッシュに登録されていない場合、前記データ処理装置は、前記マッピングテーブルを参照することによって前記第１エントリを前記キャッシュに登録し、
前記第１エントリが前記キャッシュに登録されている場合、前記データ処理装置は、前記第１論理ブロックアドレスを前記対応する物理ブロックアドレスに変換し、前記対応する物理ブロックアドレスにアクセスする
計算機システム。
【請求項３】
請求項２に記載の計算機システムであって、
更に、前記マッピングテーブルに格納されたエントリのそれぞれの参照回数を示すアクセス回数管理テーブルを備え、
前記データ処理装置は、前記マッピングテーブル中の前記第１エントリを参照する度に、前記アクセス回数管理テーブル中の前記第１エントリに対応づけられた第１参照回数のインクリメントを行い、
前記インクリメントの前の前記第１参照回数がＮ（Ｎは１以上の任意の整数）である場合、前記データ処理装置は、前記あるブロックの内容を前記第２記憶装置の空きブロックへコピーし、また、前記第１エントリが前記第１論理ブロックアドレスと前記第２物理ブロックアドレスとの対応関係を示すように前記マッピングテーブルを更新する
計算機システム。
【請求項４】
請求項３に記載の計算機システムであって、
前記マッピングテーブルは、前記アクセス回数管理テーブルを含み、
前記マッピングテーブルの各エントリは、論理ブロックアドレス、物理ブロックアドレス、及び参照回数の対応関係を示す
計算機システム。
【請求項５】
請求項２に記載の計算機システムであって、
更に、前記マッピングテーブルに格納されたエントリのそれぞれの参照回数を示すアクセス回数管理テーブルを備え、
前記マッピングテーブルの各エントリは、更にアクセス権限を示し、
前記第１エントリが前記キャッシュに登録されていない場合、前記データ処理装置は、前記マッピングテーブルを参照し、
前記マッピングテーブル中の前記第１エントリに関するアクセス権限が可を示している場合、前記データ処理装置は、前記第１エントリを前記キャッシュに登録し、また、前記アクセス回数管理テーブル中の前記第１エントリに対応づけられた第１参照回数をそのまま保ち、
前記マッピングテーブル中の前記第１エントリに関するアクセス権限が不可を示している場合、前記データ処理装置は、前記第１参照回数のインクリメントを行う
計算機システム。
【請求項６】
請求項５に記載の計算機システムであって、
前記不可の場合も、前記データ処理装置は、前記第１エントリを前記キャッシュに登録する
計算機システム。
【請求項７】
請求項５又は６に記載の計算機システムであって、
前記インクリメントの前の前記第１参照回数がＮ（Ｎは１以上の任意の整数）である場合、前記データ処理装置は、前記あるブロックの内容を前記第２記憶装置の空きブロックへコピーし、また、前記第１エントリが前記第１論理ブロックアドレスと前記第２物理ブロックアドレスとの対応関係を示すように前記マッピングテーブルを更新する
計算機システム。
【請求項８】
請求項７に記載の計算機システムであって、
前記コピーが行われた場合、前記データ処理装置は、前記マッピングテーブル中の前記第１エントリに関するアクセス権限を不可から可に変更する
計算機システム。
【請求項９】
請求項２に記載の計算機システムであって、
更に、前記第１記憶装置の物理ブロックアドレスのそれぞれのステイタスを示すステイタステーブルを備え、
前記データ処理装置は、
前記キャッシュを参照することによって、前記第１論理ブロックアドレスを前記第１物理ブロックアドレスに変換する論理アドレス変換部と、
前記ステイタステーブルを参照することによって、前記第１物理ブロックアドレスを前記対応する物理ブロックアドレスに変換する物理アドレス変換部と
を有し、
前記第１物理ブロックアドレスに関する前記ステイタスである第１ステイタスが第１状態の場合、前記対応する物理ブロックアドレスは前記第１物理ブロックアドレスであり、
前記第１ステイタスが第２状態の場合、前記対応する物理ブロックアドレスは前記第２物理ブロックアドレスである
計算機システム。
【請求項１０】
請求項９に記載の計算機システムであって、
更に、前記第１前記マッピングテーブルに格納されたエントリのそれぞれの参照回数を示すアクセス回数管理テーブルを備え、
前記データ処理装置は、前記マッピングテーブル中の前記第１エントリを参照する度に、前記アクセス回数管理テーブル中の前記第１エントリに対応づけられた第１参照回数のインクリメントを行い、
前記インクリメントの前の前記第１参照回数がＮ（Ｎは１以上の任意の整数）である場合、前記データ処理装置は、前記あるブロックの内容を前記第２記憶装置の空きブロックへコピーし、また、前記ステイタステーブルが示す前記第１ステイタスを前記第１状態から前記第２状態に変更する
計算機システム。
【請求項１１】
請求項１乃至１０のいずれかに記載の計算機システムであって、
前記第２記憶装置へのアクセス速度は、前記第１記憶装置へのアクセス速度よりもはやい
計算機システム。
【請求項１２】
請求項１１に記載の計算機システムであって、
前記第１記憶装置は、不揮発性記憶装置であり、
前記第２記憶装置は、揮発性記憶装置である
計算機システム。
【請求項１３】
ブロック毎に区分けされた第１記憶装置、及び前記第１記憶装置と性能の異なる第２記憶装置へのアクセスを制御するメモリコントローラであって、
ＣＰＵからメモリアクセス要求を受け取るメモリアクセス部と、
前記メモリアクセス要求が示す物理アドレスを変換する物理アドレス変換部と
を備え、
あるブロックへのアクセス時、前記メモリアクセス部は、前記第１記憶装置のうち前記あるブロックに対応する第１物理ブロックアドレスをＣＰＵから受け取り、
前記あるブロックへの第１回目のアクセス時、前記メモリアクセス部は、前記第１物理ブロックアドレスにアクセスし、
前記あるブロックへの第ｍ回目（ｍは２以上の任意の整数）のアクセス時、前記メモリアクセス部は、前記あるブロックの内容を前記第２記憶装置の空きブロックへコピーし、前記物理アドレス変換部は、前記第１物理ブロックアドレスを前記第２記憶装置のうちコピー先に対応する第２物理ブロックアドレスに変換し、前記メモリアクセス部は、前記第２物理ブロックアドレスにアクセスする
メモリコントローラ。
【請求項１４】
請求項１３に記載のメモリコントローラであって、
更に、
論理ブロックアドレスと物理ブロックアドレスとの対応関係を示すマッピングテーブルのエントリのそれぞれに対する参照回数を示すアクセス回数管理テーブルと、
前記第１記憶装置の物理ブロックアドレスのそれぞれのステイタスを示すステイタステーブルと
を備え、
前記メモリアクセス部は、前記マッピングテーブル中の前記第１物理ブロックアドレスに対応する第１エントリを参照する度に、前記アクセス回数管理テーブル中の前記第１エントリに対応づけられた第１参照回数のインクリメントを行い、
前記インクリメントの前の前記第１参照回数がＮ（Ｎは１以上の任意の整数）である場合、前記メモリアクセス部は、前記あるブロックの内容を前記第２記憶装置の空きブロックへコピーし、また、前記第１物理ブロックアドレスに関する前記ステイタスである第１ステイタスを第１状態から第２状態に変更し、
前記あるブロックへのアクセス時、前記メモリアクセス部は、前記ステイタステーブルが示す前記第１ステイタスを参照し、
前記第１ステイタスが前記第１状態の場合、前記メモリアクセス部は、前記第１物理ブロックアドレスにアクセスし、
前記第１ステイタスが前記第２状態の場合、前記メモリアクセス部は、前記物理アドレス変換部に前記第１物理ブロックアドレスを前記第２物理ブロックアドレスへ変換させ、前記第２物理ブロックアドレスにアクセスする
メモリコントローラ。
【請求項１５】
計算機システムにおけるメモリアクセス方法であって、
前記計算機システムは、第１記憶装置と、前記第１記憶装置と性能の異なる第２記憶装置とを備え、前記第１、第２記憶装置は、ブロック毎に区分けされ、
前記メモリアクセス方法は、
（Ａ）あるブロックを指し示す第１論理ブロックアドレスへの第１回目のアクセス時、前記第１記憶装置のうち前記第１論理ブロックアドレスに対応する第１物理ブロックアドレスにアクセスするステップと、
（Ｂ）前記第１論理ブロックアドレスへの第ｍ回目（ｍは２以上の任意の整数）のアクセス時、前記あるブロックの内容を前記第２記憶装置の空きブロックへコピーし、前記第２記憶装置のうちコピー先に対応する第２物理ブロックアドレスにアクセスするステップと
を有する
メモリアクセス方法。
【請求項１６】
請求項１５に記載のメモリアクセス方法を前記計算機システムに実行させるための
メモリアクセス制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムに関する。特に、本発明は、計算機システムにおけるメモリアクセス技術に関する。
【背景技術】
【０００２】
実行されるプログラムがＲＯＭ（Read Only Memory）などの不揮発性半導体記憶装置に格納された計算機システムが知られている。不揮発性半導体記憶装置に対する読み込みレイテンシは悪く、ＣＰＵが不揮発性半導体記憶装置から直接プログラムを読み込んで実行する場合、処理は遅くなる。限られたハードウェア資源で、計算機システムをより高速に動作させることができる技術が求められている。
【０００３】
高速動作の実現を目的とする技術が、特許文献１や特許文献２に開示されている。
【０００４】
特許文献１に記載された情報処理装置は、命令データが記録されるＲＯＭと、データ処理のための作業領域として使用されるＲＡＭ（Random Access Memory）を備えている。更に、その情報処理装置は、ＲＯＭ内の命令データを高速なＲＡＭに複製する複製手段と、命令データを実行する際に高速なＲＡＭに記録された命令データを読み出して実行する実行手段とを備えている。
【０００５】
特許文献２には、最適メモリ配置演算装置が記載されている。その最適メモリ配置演算装置は、ＣＰＵからメモリへのアクセスのためのメモリマネージメントユニット（ＭＭＵ）を備えるシステムに設けられる。その最適メモリ配置演算装置は、アクセス頻度監視部と、メモリ配置変換ポリシー決定部と、テーブル書換え部と、及びメモリコピー部とを備えている。アクセス頻度監視部は、メモリのアクセス頻度が多いページを判定する。メモリ配置変換ポリシー決定部は、アクセス頻度監視部が判定した結果の情報を受け取り、受け取った情報から決まったポリシーに従って、メモリ上のデータの配置変換を決定し、メモリの配置変換情報を出力する。テーブル書換え部は、メモリ配置変換ポリシー決定部から出力される配置変換情報を受け取り、ＭＭＵのページテーブルの情報を配置変換情報に対応するように書き換える。メモリコピー部は、メモリ配置変換ポリシー決定部から出力される配置変換情報を受け取り、メモリのページに記録されている情報を配置変換情報に対応するようにコピーを行う。
【０００６】
【特許文献１】特開２０００−９９３９６号公報
【特許文献２】特開２００５−２１６０５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述の通り、従来、計算機システムの高速動作の実現を目的とする技術が提案されている。しかし、計算機システムにおいては、高速動作だけでなく、高速起動の実現も重要である。
【０００８】
特に最近、計算機システムに搭載されるソフトウェアの規模が爆発的に増大している。そのため、従来のシンプルなシステムソフトウェアの場合と比較して、計算機システムの起動時間が非常に長くなっている。従って、計算機システムにおいて、高速動作だけでなく高速起動を実現することができる技術が望まれている。
【課題を解決するための手段】
【０００９】
以下に、［発明を実施するための最良の形態］で使用される番号・符号を用いて、［課題を解決するための手段］を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための最良の形態］との対応関係を明らかにするために括弧付きで付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１０】
本発明の第１の観点において、計算機システム（１）が提供される。その計算機システム（１）は、第１記憶装置（２１）と、その第１記憶装置（２１）と性能の異なる第２記憶装置（２２）と、第１及び第２記憶装置（２２）へのアクセスを行うデータ処理装置とを備える。第１、第２記憶装置（２１、２２）は、ブロック毎に区分けされる。あるブロックを指し示す第１論理ブロックアドレスへの第１回目のアクセス時、データ処理装置は、第１記憶装置（２１）のうち第１論理ブロックアドレスに対応する第１物理ブロックアドレスにアクセスする。また、第１論理ブロックアドレスへの第ｍ回目（ｍは２以上の任意の整数）のアクセス時、データ処理装置は、そのブロックの内容を第２記憶装置（２２）の空きブロックへコピーし、第２記憶装置（２２）のうちコピー先に対応する第２物理ブロックアドレスにアクセスする。
【００１１】
例えば、本発明に係る計算機システム（１）は、論理ブロックアドレスと物理ブロックアドレスとの対応関係を示すマッピングテーブル（１２）を備える。また、データ処理装置は、マッピングテーブル（１２）の一部が格納されるように構成されたキャッシュ（１４）を有し、プログラムからのメモリアクセス要求に応答してそのキャッシュ（１４）を参照する。第１論理ブロックアドレスに対応する物理ブロックアドレスを示す第１エントリがキャッシュに登録されていない場合、データ処理装置は、マッピングテーブル（１２）を参照することによって第１エントリをキャッシュに登録する。一方、第１エントリがキャッシュに登録されている場合、データ処理装置は、第１論理ブロックアドレスを対応する物理ブロックアドレスに変換し、その対応する物理ブロックアドレスにアクセスする。
【００１２】
ここで、計算機システム（１）は、マッピングテーブル（１２）に格納されたエントリのそれぞれの参照回数を示すアクセス回数管理テーブル（１６）を備える。データ処理装置は、マッピングテーブル（１２）中の第１エントリを参照する度に、そのアクセス回数管理テーブル（１６）中の第１エントリに対応づけられた第１参照回数のインクリメントを行う。インクリメントの前の第１参照回数がＮ（Ｎは１以上の任意の整数）である場合、データ処理装置は、上記ブロックの内容を第２記憶装置（２２）の空きブロックへコピーする。更に、データ処理装置は、第１エントリが第１論理ブロックアドレスと第２物理ブロックアドレスとの対応関係を示すように、マッピングテーブル（１２）を更新する。これにより、上述の処理が実現される。
【００１３】
第２記憶装置（２２）へのアクセス速度は、第１記憶装置（２１）へのアクセス速度よりもはやいとする。例えば、第１記憶装置（２１）は不揮発性記憶装置であり、第２記憶装置（２２）は揮発性記憶装置である。
【００１４】
第１記憶装置（２１）には、一回しか実行されない初期化ルーチンも、繰り返し参照される繰り返し演算ルーチンも格納されている。もし、高速動作を実現するために起動後すぐに第１記憶装置（２１）の内容が第２記憶装置（２２）にコピーされるとすると、一回しか実行されない初期化ルーチンを含むブロックもコピーされてしまう。極端な場合、１バイトのデータに対するメモリアクセスであっても、そのデータを含むブロック全体の複製が行われてしまう。このことは、起動速度の著しい低下を招いてしまう。メモリブロックのサイズはプログラムが要求する１回のメモリアクセスのサイズよりもはるかに大きく、数回のメモリアクセスのためだけにブロック全体の複製を実行することは大きなオーバヘッドとなり、高速な起動が妨げられるからである。
【００１５】
本発明によれば、第１論理ブロックアドレスへの第１回目のアクセス時、データ処理装置は、第１記憶装置（２１）中の第１物理ブロックアドレスにアクセスする。そして、第１論理ブロックアドレスへの第ｍ回目のアクセス時、データ処理装置は、ブロックの内容を第２記憶装置（２２）の空きブロックへコピーし、第２記憶装置（２２）中の第２物理ブロックアドレスにアクセスする。逆に言えば、第ｍ回目のアクセスまでは、コピーは行われない。従って、一回しか実行されない初期化ルーチンは、第２記憶装置（２２）にコピーされることはなく、第１記憶装置（２１）から直接読み出されて実行される。つまり、起動時にだけ必要なプログラムは、ブロック単位でコピーされることなく、メモリアクセスの単位で第１記憶装置（２１）から読み出され実行される。従って、計算機システム（１）の高速起動が実現される。
【００１６】
また、繰り返し実行されるプログラムは、第１記憶装置（２１）から第２記憶装置（２２）にコピーされる。コピー後、そのプログラムは、高速の第２記憶装置（２２）から読み出されて実行される。例えば、Ｎ値が１に設定されている場合、プログラムは、初回のアクセス時には第１記憶装置（２１）から読み出され、２回目以降のアクセス時には高速な第２記憶装置（２２）から読み出される。従って、計算機システム（１）の高速動作が実現される。
【００１７】
以上に説明されたように、本発明によれば、高速に起動し、且つ、高速に動作する計算機システム（１）が提供される。すなわち、高速起動と、起動後の高速動作の両立が可能となる。
【００１８】
本発明の第２の観点において、メモリコントローラ（３０）が提供される。そのメモリコントローラ（３０）は、ブロック毎に区分けされた第１記憶装置（２１）、及び第１記憶装置（２１）と性能の異なる第２記憶装置（２２）へのアクセスを制御する。そのメモリコントローラ（３０）は、ＣＰＵからメモリアクセス要求を受け取るメモリアクセス部（３１）と、そのメモリアクセス要求が示す物理アドレスを変換する物理アドレス変換部（３２）とを備える。あるブロックへのアクセス時、メモリアクセス部（３１）は、第１記憶装置（２１）のうちそのブロックに対応する第１物理ブロックアドレスをＣＰＵから受け取る。そのブロックへの第１回目のアクセス時、メモリアクセス部（３１）は、第１物理ブロックアドレスにアクセスする。また、そのブロックへの第ｍ回目（ｍは２以上の任意の整数）のアクセス時、メモリアクセス部（３１）は、そのブロックの内容を第２記憶装置（２２）の空きブロックへコピーする。そして、物理アドレス変換部（３２）は、第１物理ブロックアドレスを第２記憶装置（２２）のうちコピー先に対応する第２物理ブロックアドレスに変換し、メモリアクセス部（３１）は、第２物理ブロックアドレスにアクセスする。
【００１９】
本発明の第３の観点において、計算機システム（１）におけるメモリアクセス方法が提供される。その計算機システム（１）は、第１記憶装置（２１）と、その第１記憶装置（２１）と性能の異なる第２記憶装置（２２）とを備える。第１、第２記憶装置（２１、２２）は、ブロック毎に区分けされる。本発明に係るメモリアクセス方法は、（Ａ）あるブロックを指し示す第１論理ブロックアドレスへの第１回目のアクセス時、第１記憶装置（２１）のうち第１論理ブロックアドレスに対応する第１物理ブロックアドレスにアクセスするステップと、（Ｂ）第１論理ブロックアドレスへの第ｍ回目（ｍは２以上の任意の整数）のアクセス時、そのブロックの内容を第２記憶装置（２２）の空きブロックへコピーし、第２記憶装置（２２）のうちコピー先に対応する第２物理ブロックアドレスにアクセスするステップとを有する。
【００２０】
本発明の第４の観点において、上記メモリアクセス方法を計算機システム（１）に実行させるためのメモリアクセス制御プログラムが提供される。
【発明の効果】
【００２１】
以上に説明されたように、本発明によれば、高速に起動し、且つ、高速に動作する計算機システムが提供される。また、本発明に係るメモリアクセス方法及びメモリアクセス制御プログラムによれば、計算機システムの高速起動と、起動後の高速動作の両立が可能となる。
【発明を実施するための最良の形態】
【００２２】
添付図面を参照して、本発明の実施の形態に係る計算機システムを説明する。本実施の形態に係る計算機システムは、少なくとも２種類の記憶装置（メモリ）を備えている。例えば、本実施の形態に係る計算機システムは、ＲＯＭとＲＡＭを備えている。そのような計算機システムは、例えば、サーバや情報家電やカーナビゲーション装置に搭載される。
【００２３】
本実施の形態において、メモリのアドレスを示す「論理アドレス（logical address）」と「物理アドレス（physical address）」が用いられる。論理アドレスは、ＣＰＵによって実行されるプログラムが使用するアドレスであり、物理アドレスは、実際のメモリ上のアドレスである。論理アドレスと物理アドレスは、互いに対応付けられている。プログラムが、ある論理アドレスを指定すると、データ処理装置は、その論理アドレスを対応する物理アドレスに変換し、得られた物理アドレスにアクセスする。
【００２４】
また、本実施の形態において、論理アドレスから物理アドレスへのアドレス変換は、メモリ上の所定の幅のブロックごとに行われる。例えば、アドレス変換は、ページ（page）を単位として行われる。ページとは、メモリ上の区画であり、例えばメモリ領域が４Ｋｂｙｔｅごとに区切られるとき、その４Ｋｂｙｔｅの区画の各々がページに相当する。論理アドレスは、所定の幅のブロック（ページ）を示す上位アドレスと、そのブロック（ページ）内のアドレスを示す下位アドレスに分けて扱われる。その上位アドレスは、「論理ブロックアドレス」と参照され、その下位アドレスは、「ブロック内アドレス」と参照される。同様に、物理アドレスは、「物理ブロックアドレス（上位アドレス）」と「ブロック内アドレス（下位アドレス）」に分けられる。実際のアドレス変換においては、論理ブロックアドレスから物理ブロックアドレスへの変換が行われ、ブロック内アドレスはそのまま引き継がれる。
【００２５】
１．第１の実施の形態
１−１．構成
図１は、本発明の第１の実施の形態に係る計算機システム１の構成を概念的に示している。本実施の形態に係る計算機システム１は、主記憶として複数の記憶部を備えている。例えば、図１に示される計算機システム１は、性能の異なる２つの記憶部２１、２２を備えている。
【００２６】
例えば、第１の記憶部２１は不揮発性記憶装置であり、そこには計算機システム１が実行するプログラムや読み出し専用のデータが格納されている。格納されているプログラムは、一回しか実行されない初期化ルーチンも、繰り返し実行されるアプリケーションも含んでいる。第２の記憶部２２は、例えば揮発性記憶装置であり、第１の記憶部２１よりも優れた動作速度を有している。これら記憶部２１、２２のそれぞれには、異なる物理ブロックアドレスが割り当てられている。図１３Ａ及び図１３Ｂは、記憶部２１、２２のそれぞれに割り当てられる物理ブロックアドレスの例を示している。このように、本実施の形態に係る計算機システム１は、性能の異なる２以上の記憶媒体を同一物理アドレス空間内に異なるアドレスで備えている。
【００２７】
図１に示される計算機システム１は、更に、アドレス変換部１１、マッピングテーブル１２、マッピングテーブル初期化部１３、マッピングキャッシュ１４、マッピング検索部１５、アクセス回数管理テーブル１６、マッピングテーブル変更部１７、及び後処理ハンドラ部１８を備えている。
【００２８】
アドレス変換部１１は、アドレス変換を行うためのモジュールであり、例えばＣＰＵに搭載されている。具体的には、アドレス変換部１１は、実行中のプログラムからメモリアクセス要求を受け取る。そのメモリアクセス要求には、アクセス対象の論理アドレスが指定されている。アドレス変換部１１は、その指定された論理アドレスを、対応する物理アドレスに変換する。つまり、アドレス変換部１１は、プログラムが指定する論理アドレスを、複数の記憶部（２１、２２）のいずれかの物理アドレスに変換する。実際には、アドレス変換部１１は、論理アドレスが示す論理ブロックアドレスを対応する物理ブロックアドレスに変換し、ブロック内アドレスは変換せずにそのまま用いる。
【００２９】
マッピングテーブル１２は、論理ブロックアドレスと物理ブロックアドレスの対応関係を示すテーブルである。このマッピングテーブル１２は、例えば、第２の記憶部２２上に構築される。図１４Ａは、本実施の形態に係るマッピングテーブル１２の構成を概念的に示しており、図１４Ｂ〜図１４Ｄは、マッピングテーブル１２の例をそれぞれ示している。図１４Ａ〜図１４Ｄに示されるように、マッピングテーブル１２の各エントリは、あるブロックに関する論理ブロックアドレス、物理ブロックアドレス、及びアクセス権限によって構成されている。アクセス権限“１”は、当該ブロックへのアクセスが「可能」であることを意味し、アクセス権限“０”は、当該ブロックへのアクセスが「不可（不許可）」であることを意味する。アクセス不可の場合、後述される「例外イベント」が発生し、ＯＳなどによって例外処理が行なわれる。尚、マッピングテーブル１２のエントリには更に、メモリアクセスの読み/書き/実行などのアクセス制限を表わす属性などが含まれていてもよい。マッピングテーブル１２としては、例えばページテーブルが用いられる。
【００３０】
マッピングテーブル初期化部１３は、上記マッピングテーブル１２を初期化するためのモジュールであり、例えばＯＳにより提供される。マッピングテーブル初期化部１３は、システム起動時に実行される。また、プログラムが指定する任意のタイミングで、マッピングテーブル初期化部１３が実行されてもよい。
【００３１】
上述のアドレス変換部１１は、このマッピングテーブル１２を適宜参照／検索することによって、アドレス変換を行うことができる。但し、上述のようにマッピングテーブル１２は主記憶上に構築されており、アドレス変換のたびにマッピングテーブル１２が参照されると、プログラムの実行効率が著しく低下してしまう。そのため、本実施の形態に係るアドレス変換部１１には、よく使われるエントリを記憶（キャッシュ）するためのマッピングキャッシュ１４が設けられている。マッピングキャッシュ１４は、超高速で動作するキャッシュメモリであり、マッピングテーブル１２の内容の一部が格納されるように構成されている。マッピングキャッシュ１４としては、例えばＴＬＢ（Translation Look-aside Buffer）が用いられる。
【００３２】
マッピングキャッシュ１４のエントリの構成は、マッピングテーブル１２のものと同様である。但し、アクセス権限は、マッピングキャッシュ１４から除かれる。図１５Ａは、本実施の形態に係るマッピングキャッシュ１４の構成を概念的に示しており、図１５Ｂ〜図１５Ｄは、マッピングキャッシュ１４の例をそれぞれ示している。図１５Ａ〜図１５Ｄに示されるように、マッピングキャッシュ１４の各エントリは、あるブロックに関する論理ブロックアドレスと物理ブロックアドレスとの対応関係を示している。尚、マッピングキャッシュ１４に登録され得るエントリの総数は、マッピングテーブル１２のエントリ数に比べて非常に少ない。そのため、マッピングキャッシュ１４に登録されるエントリは、必要に応じて入れ替えられる。また、一部または全てのエントリを、マッピングキャッシュ１４から一斉に消去することも可能である。
【００３３】
プログラムからのメモリアクセス要求に応答して、アドレス変換部１１はまず、上記マッピングキャッシュ１４を参照する。アクセス対象の論理ブロックアドレスに関するエントリ（以下、「対象エントリ」と参照される）がマッピングキャッシュ１４に登録されている場合、アドレス変換部１１は、その対象エントリを参照することによってアドレス変換を行う。これにより、アドレス変換を高速に実行することが可能となる。一方、対象エントリがマッピングキャッシュ１４に登録されていない場合、アドレス変換部１１は、論理ブロックアドレスをマッピング検索部１５に出力する。
【００３４】
マッピング検索部１５は、受け取った論理ブロックアドレスでマッピングテーブル１２を検索する。マッピングテーブル１２に対象エントリが存在し、且つ、当該エントリのアクセス権限が“１”の場合、マッピング検索部１５は、マッピングテーブル１２から読み出される情報に基づいて、対象エントリをマッピングキャッシュ１４に登録する。当該エントリのアクセス権限が“０”の場合、マッピング検索部１５は、論理ブロックアドレス及び対応する物理ブロックアドレスをマッピングテーブル変更部１７に出力する。
【００３５】
マッピングテーブル変更部１７は、論理ブロックアドレス及び物理ブロックアドレスを受け取ると、次に示される「例外イベント」を発生させる。例外イベントにおいて、まず、マッピングテーブル変更部１７は、アクセス回数管理テーブル１６を参照する。
【００３６】
アクセス回数管理テーブル１６は、マッピングテーブル１２に格納されたエントリのそれぞれに関する参照回数を示している。このアクセス回数管理テーブル１６は、例えば、第２の記憶部２２上に構築される。図１６Ａは、本実施の形態に係るアクセス回数管理テーブル１６の構成を概念的に示しており、図１６Ｂ〜図１６Ｄは、アクセス回数管理テーブル１６の例をそれぞれ示している。図１６Ａ〜図１６Ｄに示されるように、アクセス回数管理テーブル１６の各エントリは、論理ブロックアドレスとアクセス回数との対応関係を示している。対象エントリがマッピングキャッシュ１４に登録されている間は、当該エントリに対するマッピング検索部１５の処理は行われないので、アクセス回数管理テーブル１６に示されるアクセス回数は、実際のメモリアクセス回数よりも格段に少なくなる。尚、参照回数の初期値は０に設定される。
【００３７】
このようなアクセス回数管理テーブル１６を参照し、マッピングテーブル変更部１７は、当該エントリに対する参照回数（アクセス回数）を調べる。そして、マッピングテーブル変更部１７は、その参照回数に応じて、第１の記憶部２１と第２の記憶部２２との間でデータコピーを行うか否かを決定する。具体的には、その参照回数が所定の数Ｎ（Ｎは１以上の整数）を示している場合、マッピングテーブル変更部１７は、受け取った物理ブロックアドレスを用いて、対象エントリに対応する第１の記憶部２１中のブロックの内容を、第２の記憶部２２の空きブロックへコピーする。更に、マッピングテーブル変更部１７は、マッピングテーブル１２中の対象エントリの内容を書き換えることにより、マッピングテーブル１２の更新を行う。具体的には、マッピングテーブル１２中の対象エントリが、コピー先である第２記憶部の物理ブロックアドレスを示すように、更新が行われる。
【００３８】
また、マッピングテーブル変更部１７は、アクセス回数管理テーブル１６中の対象エントリに対応づけられた参照回数をインクリメントする機能も有する。更に必要に応じて、マッピングテーブル変更部１７は、後処理ハンドラ部１８が行う処理の登録も行う。後処理ハンドラ部１８は、メモリアクセスが完了した後、登録された処理を実行する。
【００３９】
尚、以下の説明において、上述の所定の数Ｎは「Ｎ値」と参照される場合がある。Ｎ値は、全ブロックに対して共通の値に設定されてもよいし、ブロック毎に異なる値に設定されてもよい。Ｎ値がブロック毎に異なる値に設定される場合、アクセス回数管理テーブル１６は、図１６Ａに示された項目に加えて、それぞれのＮ値を示す項目を持つことになる。
【００４０】
１−２．処理フロー
次に、既出の図１と図２Ａ及び図２Ｂに示されるフローチャートを参照し、本実施の形態に係るメモリアクセス処理の概要を説明する。
【００４１】
まず、アドレス変換部１１は、実行中のプログラムからメモリアクセス要求を受け取る。そのメモリアクセス要求には、アクセス対象の論理アドレスが指定されている。アドレス変換部１１は、その論理アドレスが示す論理ブロックアドレスでマッピングキャッシュ１４を検索する（ステップＳ１）。
【００４２】
マッピングキャッシュ１４に対象エントリが登録されている場合（ステップＳ２；Ｙｅｓ）、アドレス変換部１１は、その対象エントリを参照することによってアドレス変換を行う。そして、アドレス変換の結果得られた物理アドレスに対してアクセスが行われる（ステップＳ３）。アクセス先は、第１の記憶部２１であるかもしれないし、第２の記憶部２２であるかもしれない。その後、後処理ハンドラが登録されている場合（ステップＳ４；Ｙｅｓ）、後処理ハンドラ部１８は、登録されている後処理ハンドラを実行し、その実行後、登録されていた後処理ハンドラを削除する（ステップＳ５）。その後、プログラムが続行する。また、後処理ハンドラが登録されていない場合（ステップＳ４；Ｎｏ）、プログラムが続行する。
【００４３】
マッピングキャッシュ１４に対象エントリが登録されていない場合（ステップＳ２；Ｎｏ）、アドレス変換部１１は、論理ブロックアドレスをマッピング検索部１５に出力する。マッピング検索部１５は、受け取った論理ブロックアドレスでマッピングテーブル１２を検索し、対象エントリの情報を得る（ステップＳ１１）。マッピングテーブル１２中の対象エントリに示されるアクセス権限が“１（可）”である場合（ステップＳ１２；Ｙｅｓ）、マッピング検索部１５は、対象エントリの内容をマッピングキャッシュ１４に登録する（ステップＳ１３）。その後、処理は上述のステップＳ３に移る。
【００４４】
一方、マッピングテーブル１２中の対象エントリに示されるアクセス権限が“０（不可）”である場合（ステップＳ１２；Ｎｏ）、マッピング検索部１５は、対象エントリが示す論理ブロックアドレス及び物理ブロックアドレスをマッピングテーブル変更部１７に出力する。その結果、次に示される例外イベントが発生する（ステップＳ２０）。まず、マッピングテーブル変更部１７は、アクセス回数管理テーブル１６を参照し、受け取った論理ブロックアドレスを検索する。これにより、マッピングテーブル変更部１７は、当該論理ブロックアドレスに対応づけられた参照回数（アクセス回数）を得る。
【００４５】
参照回数がＮ値ではない場合（ステップＳ２１；Ｎｏ）、マッピングテーブル変更部１７は、当該参照回数を１だけインクリメントし、アクセス回数管理テーブル１６の更新を行う（ステップＳ２２）。また、マッピングテーブル変更部１７は、マッピングテーブル１２中の対象エントリが示すアクセス権限を“０”から“１”に変更する（ステップＳ２３）。更に、マッピングテーブル変更部１７は、後処理ハンドラを登録する（ステップＳ２４）。例外イベントが終了すると、処理は、上述のステップＳ１１に戻る。
【００４６】
今回は、対象エントリに示されるアクセス権限が“１（可）”であるので（ステップＳ１２；Ｙｅｓ）、マッピング検索部１５は、対象エントリの内容をマッピングキャッシュ１４に登録する（ステップＳ１３）。その後、処理は上述のステップＳ３に移る。
【００４７】
一方、参照回数がＮ値と等しい場合（ステップＳ２１；Ｙｅｓ）、マッピングテーブル変更部１７は、当該参照回数のインクリメントを行い、アクセス回数管理テーブル１６の更新を行う（ステップＳ３１）。更に、マッピングテーブル変更部１７は、マッピング検索部１５から受け取った物理ブロックアドレスに基づいて、対象エントリに対応する第１の記憶部２１中のブロックの内容を、第２の記憶部２２の空きブロックへコピーする（ステップＳ３２）。更に、マッピングテーブル変更部１７は、マッピングテーブル１２中の対象エントリが示すアクセス権限を“０”から“１”に変更し（ステップＳ３３）、また、その対象エントリが示す物理ブロックアドレスをコピー先の物理ブロックアドレスに書き換える（ステップＳ３４）。これにより、対象エントリは、論理ブロックアドレスと第２の記憶部２２中のコピー先の物理ブロックアドレスとの対応関係を示すようになる。このようにして、マッピングテーブル１２の更新が行われる。例外イベントが終了すると、処理は、上述のステップＳ１１に戻る。
【００４８】
今回は、対象エントリに示されるアクセス権限が“１（可）”であるので（ステップＳ１２；Ｙｅｓ）、マッピング検索部１５は、対象エントリの内容をマッピングキャッシュ１４に登録する（ステップＳ１３）。ここで、その対象エントリは第２の記憶部２２中の物理ブロックアドレスを示していることに留意されるべきである。その後、処理は、ステップＳ３に移り、アドレス変換部１１はアドレス変換を行う。得られる物理アドレスは、第２の記憶部２２の物理アドレスである。結果として、計算機システム１は、第２の記憶部２２にアクセスしてプログラムやデータを得ることになる。
【００４９】
以上に説明されたように、本実施の形態によれば、アクセス回数管理テーブル１６が示す参照回数がＮ値と等しい場合に、ブロックの内容が第１の記憶部２１から第２の記憶部２２へコピーされる。逆に言えば、参照回数がＮ値になるまで、コピーは行われない。
【００５０】
第１の記憶部２１には、一回しか実行されない初期化ルーチンも、繰り返し参照される繰り返し演算ルーチンも格納されている。もし、高速動作を実現するために起動後すぐに第１の記憶部２１の内容が高速の第２の記憶部２２にコピーされるとすると、一回しか実行されない初期化ルーチンを含むブロックもコピーされてしまう。極端な場合、１バイトのデータに対するメモリアクセスであっても、そのデータを含むブロック全体の複製が行われてしまう。このことは、起動速度の著しい低下を招いてしまう。
【００５１】
しかしながら、本実施の形態によれば、一回しか実行されない初期化ルーチンは、第２の記憶部２２にコピーされることはなく、第１の記憶部２１から読み出されて実行される。つまり、起動時にだけ必要なプログラムは、コピーされることなく第１の記憶部２１から読み出され実行される。従って、計算機システム１の高速起動が実現される。また、繰り返し実行されるプログラムは、第１の記憶部２１から第２の記憶部２２にコピーされ、その後、高速の第２の記憶部２２から読み出されて実行される。従って、計算機システム１の高速動作が実現される。尚、本実施の形態において、第１の記憶部２１から第２の記憶部２２へのコピーが説明されているが、利用状況によっては逆であってもよい。
【００５２】
１−３．具体例
次に、本実施の形態に係る計算機システム１の具体的な例を説明する。図３は、本実施の形態に係る計算機システム１の一例を示している。図３に示される計算機システム１は、コンピュータである。コンピュータ１は、ＣＰＵ１０と主記憶装置（メインメモリ）２０を備えている。ＣＰＵ１０と主記憶装置２０は、メモリバスを通じて互いに接続されている。
【００５３】
上述のアドレス変換部１１、マッピングキャッシュ１４、及びマッピング検索部１５は、ＣＰＵ１０に搭載されている。これらは、ハードウェアで構成されている。
【００５４】
主記憶装置２０は、不揮発性記憶装置（第１の記憶部）２１及び揮発性記憶装置（第２の記憶部）２２を含んでいる。本実施の形態においては、揮発性記憶装置２２へのアクセス速度の方が、不揮発性記憶装置２１へのアクセス速度よりもはやいとする。また、不揮発性記憶装置２１及び揮発性記憶装置２２はランダムアクセスが可能な記憶装置であるとする。不揮発性記憶装置２１としては、ＲＯＭやＮＯＲ型フラッシュメモリなどが例示される。一方、揮発性記憶装置２２としては、ＤＲＡＭやＳＲＡＭなどが例示される。
【００５５】
不揮発性記憶装置２１には、ＯＳやアプリケーションプログラムが、予め格納されている。上述のマッピングテーブル初期化部１３、マッピングテーブル変更部１７、及び後処理ハンドラ部１８の各々は、このＯＳの一機能として提供される。すなわち、ＯＳと上記ＣＰＵ１０との協働によって、本実施の形態に係る「データ処理装置」が提供される。尚、後処理ハンドラ部１８の機能は、ＣＰＵ１０のマッピング検索部１５が有していてもよい。
【００５６】
揮発性記憶装置２２には、上述のマッピングテーブル１２及びアクセス回数管理テーブル１６が構築される。
【００５７】
図１３Ａは、不揮発性記憶装置２１及び揮発性記憶装置２２に対する物理ブロックアドレスの割り当ての一例を示している。図１３Ａに示されるように、不揮発性記憶装置２１には物理ブロックアドレス１１〜１９が割り当てられ、揮発性記憶装置２２には物理ブロックアドレス２１〜２９が割り当てられている。各ブロックのサイズは４０９６バイトであるとする。尚、説明を簡単にするため、図１３Ａにおいてはブロック数が抑えられているが、実際には多数の物理ブロックアドレスが割り当てられている。
【００５８】
次に、この計算機システム１の動作の一例を説明する。一連の動作が行われる前の各テーブルやキャッシュの初期状態は、次の通りであるとする。
【００５９】
図１４Ｂは、マッピングテーブル１２の初期状態を示している。初期状態においては、論理ブロックアドレスのそれぞれに対して、不揮発性記憶装置２１の物理ブロックアドレスが割り当てられている。また、各エントリに関するアクセス権限は“０”に設定されている。図１４Ｃ及び図１４Ｄは、マッピングテーブル１２の変遷を示しており、後に適宜参照される。尚、説明を簡単にするため、図１４Ｂ〜図１４Ｄにおいてはエントリ数が抑えられているが、実際には多数のエントリが存在する。
【００６０】
図１５Ｂは、マッピングキャッシュ１４の初期状態を示している。マッピングキャッシュ１４には、論理ブロックアドレス「４」と物理ブロックアドレス「１５」との対応関係を示すエントリが登録されている。また、図１５Ｃ及び図１５Ｄは、マッピングキャッシュ１４の変遷を示しており、後に適宜参照される。
【００６１】
図１６Ｂは、アクセス回数管理テーブル１６の初期状態を示している。アクセス回数管理テーブル１６には、論理ブロックアドレスのそれぞれに対応づけられたアクセス回数（参照回数）が示されている。初期状態においては、アクセス回数のそれぞれは“０（初期値）”に設定されている。図１６Ｃ及び図１６Ｄは、アクセス回数管理テーブル１６の変遷を示しており、後に適宜参照される。尚、説明を簡単にするため、図１６Ｂ〜図１６Ｄにおいてはエントリ数が抑えられているが、実際には多数のエントリが存在する。
【００６２】
アクセス回数に関連する上述のＮ値は“１”に設定されているとする。
【００６３】
以下、次の４つのメモリアクセスが行なわれたときの一連の動作について、具体的に説明する：
（１）論理アドレス「２０１０（１６進数）」に対する最初の読み込みアクセス；
（２）マッピングキャッシュ１４に対象エントリがある状態における、論理ブロックアドレス「２」に対する読み込みアクセス；
（３）マッピングキャッシュ１４に対象エントリがない状態における、論理アドレス「２０３０」に対する読み込みアクセス；
（４）マッピングキャッシュ１４に対象エントリがある状態における、論理アドレス「２０４０」に対する読み込みアクセス。
【００６４】
（１）まず、論理アドレス「２０１０」に対する最初のメモリアクセスが発生する。ここで、上位アドレス「２」が論理ブロックアドレスを表し、下位アドレス「０１０」がブロック内アドレスを表すとする。アドレス変換部１１は、論理ブロックアドレス「２」でマッピングキャッシュ１４を検索する。この時、図１５Ｂに示されるように、該当するエントリはマッピングキャッシュ１４に登録されていない。従って、マッピング検索部１５は、論理ブロックアドレス「２」で、図１４Ｂに示されるマッピングテーブル１２を検索する。その結果、エントリ「論理ブロックアドレス２，物理ブロックアドレス１３，アクセス権限０」が得られる。アクセス権限が“０”であるため、例外イベントが発生する。
【００６５】
マッピングテーブル変更部１７は、論理ブロックアドレス「２」で、図１６Ｂに示されるアクセス回数管理テーブル１６を検索する。その結果、アクセス回数（参照回数）として“０”が得られる。このアクセス回数はＮ値“１”と異なるので、マッピングテーブル変更部１７は、アクセス回数のインクリメントを行い、また、アクセス権限を“１”に変更する。その結果、マッピングテーブル１２は、図１４Ｃに示される状態に変更され、アクセス回数管理テーブル１６は、図１６Ｃに示される状態に変更される。また、マッピングテーブル変更部１７は、後処理ハンドラの設定を行い、例外イベントを終了させる。この後処理ハンドラの処理内容は、「マッピングテーブル１２中の論理ブロックアドレス２のエントリに関するアクセス権限を０に変更する」というものである。
【００６６】
次に、マッピング検索部１５は、論理ブロックアドレス「２」で、図１４Ｃに示されるマッピングテーブル１２を検索する。この場合、エントリ「論理ブロックアドレス２，物理ブロックアドレス１３，アクセス権限１」が得られる。アクセス権限が“１”であるため、マッピング検索部１５は、エントリ「論理ブロックアドレス２，物理ブロックアドレス１３」をマッピングキャッシュ１４中に作成する。その結果、マッピングキャッシュ１４は、図１５Ｃに示される状態に変更される。
【００６７】
アドレス変換部１１は再度、論理ブロックアドレス「２」でマッピングキャッシュ１４を検索する。この時、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス１３」が登録されているため、アドレス変換部１１は、アドレス変換を行い、論理ブロックアドレス「２」を物理ブロックアドレス「１３」に変換する。すなわち、物理アドレス「１３０１０（１６進数）」が得られる。従って、データ処理装置は、物理アドレス「１３０１０」にアクセスする。つまり、データ処理装置は、不揮発性記憶装置２１からデータを読み込む。このように、Ｎ値が１に設定されている場合、初回のアクセスではデータのコピーは行われず、データは不揮発性記憶装置２１から直接読み込まれる。
【００６８】
その後、後処理ハンドラが実行される。つまり、マッピングテーブル１２中の論理ブロックアドレス２に対応付けられたアクセス権限は、“１”から“０”に変更される。その結果、マッピングテーブル１２は、図１４Ｂに示される状態に戻る。その後、後処理ハンドラの登録は削除され、メモリアクセスが終了する。
【００６９】
（２）続いて、論理ブロックアドレス「２」に対するメモリアクセスが発生するとする。現在、マッピングキャッシュ１４は、図１５Ｃに示される状態にある。今回は、マッピングキャッシュ１４に対象エントリが登録されているので、データ処理装置は、不揮発性記憶装置２１の物理ブロックアドレス「１３」にアクセスする。また、後処理ハンドラは登録されていないので、メモリアクセスはそのまま終了する。このように、マッピングキャッシュ１４にエントリがある間は、データ処理装置は、不揮発性記憶装置２１に直接アクセスする。
【００７０】
（３）しばらく経って、マッピングキャッシュ１４からエントリ「論理ブロックアドレス２，物理ブロックアドレス１３」が無くなり、マッピングキャッシュ１４が図１５Ｂに示される状態になったとする。その後、論理アドレス「２０３０」に対するメモリアクセスが発生するとする。図１５Ｂに示されるように、対象エントリはマッピングキャッシュ１４に登録されていない。従って、マッピング検索部１５は、マッピングテーブル１２を検索し、エントリ「論理ブロックアドレス２，物理ブロックアドレス１３，アクセス権限０」を得る。アクセス権限が“０”であるため、例外イベントが発生する。
【００７１】
マッピングテーブル変更部１７は、図１６Ｃに示されるアクセス回数管理テーブル１６を検索し、アクセス回数（参照回数）として“１”を得る。このアクセス回数はＮ値“１”と等しい。従って、マッピングテーブル変更部１７は、不揮発性記憶装置２１中の物理ブロックアドレス「１３」が示すブロックの内容を、揮発性記憶装置２２の空きブロックにコピーする。例えば、揮発性記憶装置２２中の物理ブロックアドレス「２３」に、データがコピーされるとする。
【００７２】
更に、マッピングテーブル変更部１７は、図１４Ｄに示されるように、マッピングテーブル１２の対象エントリを「論理ブロックアドレス２、物理ブロックアドレス２３、アクセス権限１」に書き換える。また、マッピングテーブル変更部１７は、アクセス回数のインクリメントを行い、アクセス回数管理テーブル１６は、図１６Ｄに示される状態に変更される。
【００７３】
次に、マッピング検索部１５は、図１４Ｄに示されるマッピングテーブル１２を検索する。この場合、エントリ「論理ブロックアドレス２，物理ブロックアドレス２３，アクセス権限１」が得られる。アクセス権限が“１”であるため、マッピング検索部１５は、エントリ「論理ブロックアドレス２，物理ブロックアドレス２３」をマッピングキャッシュ１４中に作成する。その結果、マッピングキャッシュ１４は、図１５Ｄに示される状態に変更される。
【００７４】
アドレス変換部１１は再度、マッピングキャッシュ１４を検索する。この時、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス２３」が登録されているため、アドレス変換部１１は、アドレス変換を行い、論理ブロックアドレス「２」を物理ブロックアドレス「２３」に変換する。すなわち、物理アドレス「２３０３０（１６進数）」が得られる。従って、データ処理装置は、物理アドレス「２３０３０」にアクセスする。つまり、データ処理装置は、揮発性記憶装置２２からデータを読み込む。このように、Ｎ値が１に設定されている場合、２回目のアクセスではデータのコピーが行われ、データは高速の揮発性記憶装置２２から読み込まれる。後処理ハンドラは登録されていないので、メモリアクセスはそのまま終了する。
【００７５】
（４）続いて、論理アドレス「２０４０」に対するメモリアクセスが発生するとする。現在、マッピングキャッシュ１４は、図１５Ｄに示される状態にある。アドレス変換部１１は、論理ブロックアドレス「２」でマッピングキャッシュ１４を検索し、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス２３」を得る。よってアドレス変換部１１は、アドレス変換を行い、物理アドレス「２３０４０」を得る。データ処理装置は、揮発性記憶装置２２の物理アドレス「２３０４０」にアクセスする。後処理ハンドラは登録されていないので、メモリアクセスはそのまま終了する。
【００７６】
１−４．効果
不揮発性記憶装置２１には、一回しか実行されない初期化ルーチンも、繰り返し参照される繰り返し演算ルーチンも格納されている。もし、高速動作を実現するために起動後すぐに不揮発性記憶装置２１の内容が揮発性記憶装置２２にコピーされるとすると、一回しか実行されない初期化ルーチンを含むブロックもコピーされてしまう。極端な場合、１バイトのデータに対するメモリアクセスであっても、そのデータを含むブロック全体の複製が行われてしまう。このことは、起動速度の著しい低下を招いてしまう。メモリブロックのサイズはプログラムが要求する１回のメモリアクセスのサイズよりもはるかに大きく、数回のメモリアクセスのためだけにブロック全体の複製を実行することは大きなオーバヘッドとなり、高速な起動が妨げられるからである。
【００７７】
本実施の形態によれば、アクセス回数管理テーブル１６が示す参照回数がＮ値と等しい場合に、ブロックの内容が不揮発性記憶装置２１から揮発性記憶装置２２にコピーされる。逆に言えば、参照回数がＮ値になるまで、コピーは行われない。従って、一回しか実行されない初期化ルーチンは、揮発性記憶装置２２にコピーされることはなく、不揮発性記憶装置２１から直接読み出されて実行される。つまり、起動時にだけ必要なプログラムは、ブロック単位でコピーされることなく、メモリアクセスの単位で不揮発性記憶装置２１から読み出され実行される。従って、計算機システム１の高速起動が実現される。
【００７８】
また、繰り返し実行されるプログラムは、参照回数がＮ値と等しい場合に、不揮発性記憶装置２１から揮発性記憶装置２２にコピーされる。その後、そのプログラムは、高速の揮発性記憶装置２２から読み出されて実行される。例えば、Ｎ値が１に設定されている場合、プログラムは、初回のアクセス時には不揮発性記憶装置２１から読み出され、２回目以降のアクセス時には高速な揮発性記憶装置２２から読み出される。従って、計算機システム１の高速動作が実現される。
【００７９】
以上に説明されたように、本実施の形態によれば、高速に起動し、且つ、高速に動作する計算機システム１が提供される。すなわち、高速起動と、起動後の高速動作の両立が可能となる。
【００８０】
更に、本実施の形態によれば、マッピングテーブル１２へのアクセス回数に応じて、データのコピーが行われるか否かの判断が行われる。データのコピーは一定時間毎に行われるわけではなく、コピーのタイミングをはかるためにタイマーは必要ではない。つまり、巨大なカウンタは不要である。また、本実施の形態によれば、ＣＰＵからのメモリアクセスの回数が参照されるわけではなく、マッピングテーブル１２へのアクセス回数が参照される。つまり、ＣＰＵから頻繁に発行される全てのメモリアクセスをメモリブロック毎に集計する必要はない。従って、複雑なカウンタを設ける必要はなく、アクセスを集計するための仕組みが簡単になる。このように、本実施の形態によれば、データのコピーを実現するための仕組みが簡単になり、回路面積が削減される。
【００８１】
２．第２の実施の形態
２−１．構成
図４は、本発明の第２の実施の形態に係る計算機システム１ｂの構成を概念的に示している。図４において、第１の実施の形態と同様の構成には同一の符号が付され、その説明は適宜省略される。本実施の形態によれば、図１と比較して、後処理ハンドラ部１８が省略されている。また、マッピング検索部１５の代わりに、マッピング検索部１５ｂが設けられている。また、マッピングテーブル変更部１７の代わりに、マッピングテーブル変更部１７ｂが設けられている。
【００８２】
第１の実施の形態によれば、アクセス回数がＮ値と異なる場合、マッピングテーブル変更部１７は、アクセス権限を１に変更し、また、後処理ハンドラを登録していた。一方、本実施の形態によれば、アクセス回数がＮ値と異なる場合、マッピングテーブル変更部１７ｂは、アクセス権限を書き換えない。その代わり、マッピングテーブル変更部１７ｂは、マッピング検索部１５ｂに直接指示を出し、対象エントリをマッピングキャッシュ１４に登録させる。これにより、後処理ハンドラの登録、実行、及び削除を省略することが可能となる。
【００８３】
２−２．処理フロー
図５Ａ及び図５Ｂに示されるフローチャートを参照し、本実施の形態に係るメモリアクセス処理の概要を説明する。第１の実施の形態における処理と同様の処理には同一の符号が付され、その説明は適宜省略される。
【００８４】
例外イベントが発生すると（ステップＳ２０）、マッピングテーブル変更部１７ｂは、アクセス回数管理テーブル１６を検索する。参照回数（アクセス回数）がＮ値ではない場合（ステップＳ２１；Ｎｏ）、マッピングテーブル変更部１７ｂは、当該参照回数のインクリメントを行う（ステップＳ２２）。更に、マッピングテーブル変更部１７ｂは、マッピング検索部１５ｂに直接指示を出し、処理は、上述のステップＳ１３に移る。マッピング検索部１５ｂは、マッピングテーブル１２から読み出した対象エントリの内容を、マッピングキャッシュ１４に登録する（ステップＳ１３）。その後、処理は上述のステップＳ３に移る。後処理ハンドラに関する処理（ステップＳ４，Ｓ５）は実行されない。このように、本実施の形態によれば、アクセス権限の「“０”→“１”→“０”」という一連の書き換え処理が不要となる。
【００８５】
２−３．具体例
次に、本実施の形態に係る計算機システム１ｂの具体的な例を説明する。図６は、本実施の形態に係る計算機システム１ｂの一例を示している。図６において、第１の実施の形態と同様の構成には同一の符号が付され、その説明は適宜省略される。
【００８６】
図６に示される計算機システム（コンピュータ）１ｂは、ＣＰＵ１０と主記憶装置２０を備えている。主記憶装置２０は、不揮発性記憶装置２１と揮発性記憶装置２２を含んでいる。ＣＰＵ１０には、アドレス変換部１１及びマッピングキャッシュ１４が搭載されている。不揮発性記憶装置２１には、ＯＳやアプリケーションプログラムが、予め格納されている。マッピングテーブル初期化部１３、マッピングテーブル変更部１７ｂ、及びマッピング検索部１５ｂの各々は、このＯＳの一機能として提供される。これらＯＳとＣＰＵ１０との協働によって、本実施の形態に係る「データ処理装置」が提供される。揮発性記憶装置２２には、上述のマッピングテーブル１２及びアクセス回数管理テーブル１６が構築される。
【００８７】
物理ブロックアドレスの割り当てや各テーブルの初期状態は、第１の実施の形態と同じであるとする（図１３Ａ、図１４Ｂ、図１５Ｂ、図１６Ｂ参照）。また、上述のＮ値も、同様に“１”に設定されているとする。
【００８８】
以下、次の３つのメモリアクセスが行なわれたときの一連の動作について、具体的に説明する：
（１）論理アドレス「２０１０（１６進数）」に対する最初の読み込みアクセス；
（２）マッピングキャッシュ１４に対象エントリがある状態における、論理ブロックアドレス「２」に対する読み込みアクセス；
（３）マッピングキャッシュ１４に対象エントリがない状態における、論理アドレス「２０３０」に対する読み込みアクセス。
【００８９】
（１）まず、論理アドレス「２０１０」に対する最初のメモリアクセスが発生する。アドレス変換部１１は、論理ブロックアドレス「２」でマッピングキャッシュ１４を検索する。この時、図１５Ｂに示されるように、該当するエントリはマッピングキャッシュ１４に登録されていない。従って、マッピング検索部１５ｂは、論理ブロックアドレス「２」で、図１４Ｂに示されるマッピングテーブル１２を検索する。その結果、エントリ「論理ブロックアドレス２，物理ブロックアドレス１３，アクセス権限０」が得られる。アクセス権限が“０”であるため、例外イベントが発生する。
【００９０】
マッピングテーブル変更部１７ｂは、論理ブロックアドレス「２」で、図１６Ｂに示されるアクセス回数管理テーブル１６を検索する。その結果、アクセス回数（参照回数）として“０”が得られる。このアクセス回数はＮ値“１”と異なるので、マッピングテーブル変更部１７ｂは、アクセス回数のインクリメントを行う。その結果、アクセス回数管理テーブル１６は、図１６Ｃに示される状態に変更される。また、マッピングテーブル変更部１７ｂは、マッピング検索部１５ｂに指示を出す。マッピング検索部１５ｂは、エントリ「論理ブロックアドレス２，物理ブロックアドレス１３」をマッピングキャッシュ１４中に作成する。その結果、マッピングキャッシュ１４は、図１５Ｃに示される状態に変更される。
【００９１】
アドレス変換部１１は再度、論理ブロックアドレス「２」でマッピングキャッシュ１４を検索する。この時、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス１３」が登録されているため、アドレス変換部１１は、アドレス変換を行い、論理ブロックアドレス「２」を物理ブロックアドレス「１３」に変換する。すなわち、物理アドレス「１３０１０（１６進数）」が得られる。従って、データ処理装置は、物理アドレス「１３０１０」にアクセスする。つまり、データ処理装置は、不揮発性記憶装置２１からデータを読み込む。このように、Ｎ値が１に設定されている場合、初回のアクセスではデータのコピーは行われず、データは不揮発性記憶装置２１から直接読み込まれる。
【００９２】
（２）続いて、論理ブロックアドレス「２」に対するメモリアクセスが発生するとする。現在、マッピングキャッシュ１４は、図１５Ｃに示される状態にある。今回は、マッピングキャッシュ１４に対象エントリが登録されているので、データ処理装置は、不揮発性記憶装置２１の物理ブロックアドレス「１３」にアクセスする。このように、マッピングキャッシュ１４にエントリがある間は、データ処理装置は、不揮発性記憶装置２１に直接アクセスする。
【００９３】
（３）しばらく経って、マッピングキャッシュ１４からエントリ「論理ブロックアドレス２，物理ブロックアドレス１３」が無くなり、マッピングキャッシュ１４が図１５Ｂに示される状態になったとする。その後、論理アドレス「２０３０」に対するメモリアクセスが発生するとする。図１５Ｂに示されるように、対象エントリはマッピングキャッシュ１４に登録されていない。従って、マッピング検索部１５ｂは、マッピングテーブル１２を検索し、エントリ「論理ブロックアドレス２，物理ブロックアドレス１３，アクセス権限０」を得る。アクセス権限が“０”であるため、例外イベントが発生する。
【００９４】
マッピングテーブル変更部１７ｂは、図１６Ｃに示されるアクセス回数管理テーブル１６を検索し、アクセス回数（参照回数）として“１”を得る。このアクセス回数はＮ値“１”と等しい。従って、マッピングテーブル変更部１７ｂは、不揮発性記憶装置２１中の物理ブロックアドレス「１３」が示すブロックの内容を、揮発性記憶装置２２の空きブロックにコピーする。例えば、揮発性記憶装置２２中の物理ブロックアドレス「２３」に、データがコピーされるとする。
【００９５】
更に、マッピングテーブル変更部１７ｂは、図１４Ｄに示されるように、マッピングテーブル１２の対象エントリを「論理ブロックアドレス２、物理ブロックアドレス２３、アクセス権限１」に書き換える。また、マッピングテーブル変更部１７ｂは、アクセス回数のインクリメントを行い、アクセス回数管理テーブル１６は、図１６Ｄに示される状態に変更される。
【００９６】
次に、マッピング検索部１５ｂは、図１４Ｄに示されるマッピングテーブル１２を検索する。この場合、エントリ「論理ブロックアドレス２，物理ブロックアドレス２３，アクセス権限１」が得られる。アクセス権限が“１”であるため、マッピング検索部１５ｂは、エントリ「論理ブロックアドレス２，物理ブロックアドレス２３」をマッピングキャッシュ１４中に作成する。その結果、マッピングキャッシュ１４は、図１５Ｄに示される状態に変更される。
【００９７】
アドレス変換部１１は再度、マッピングキャッシュ１４を検索する。この時、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス２３」が登録されているため、アドレス変換部１１は、アドレス変換を行い、論理ブロックアドレス「２」を物理ブロックアドレス「２３」に変換する。すなわち、物理アドレス「２３０３０（１６進数）」が得られる。従って、データ処理装置は、物理アドレス「２３０３０」にアクセスする。つまり、データ処理装置は、揮発性記憶装置２２からデータを読み込む。このように、Ｎ値が１に設定されている場合、２回目のアクセスではデータのコピーが行われ、データは高速の揮発性記憶装置２２から読み込まれる。
【００９８】
２−４．効果
本実施の形態によれば、第１の実施の形態と同じ効果が得られる。更に、後処理ハンドラが不要であるため、メモリアクセス処理が簡略化されるという追加的な効果が得られる。
【００９９】
３．第３の実施の形態
３−１．構成
図７は、本発明の第３の実施の形態に係る計算機システム１ｃの構成を概念的に示している。図７において、第２の実施の形態と同様の構成には同一の符号が付され、その説明は適宜省略される。本実施の形態によれば、アクセス回数管理テーブル１６がマッピングテーブル１２ｃに含まれている。また、マッピングテーブル１２ｃの各エントリから、アクセス制限が省かれている。すなわち、本実施の形態に係るマッピングテーブル１２ｃは、図１７Ａに示されるような構造を有している。図１７Ａに示されるように、マッピングテーブル１２ｃの各エントリは、論理ブロックアドレス、物理ブロックアドレス、及び参照回数（アクセス回数）の対応関係を示している。
【０１００】
また、本実施の形態によれば、マッピング検索部１５ｂの代わりに、マッピング検索部１５ｃが設けられている。また、マッピングテーブル変更部１７ｂの代わりに、マッピングテーブル変更部１７ｃが設けられている。第２の実施の形態と異なり、マッピング検索部１５ｃは、アクセス制限の判定は行わない。また、マッピング検索部１５ｃは、マッピングテーブル１２ｃに示される参照回数に基づいて、データのコピーを行うか否かの判断を行う。更に、マッピングテーブル変更部１７ｃは、アクセス制限の変更を行わない。
【０１０１】
３−２．処理フロー
図８Ａ及び図８Ｂに示されるフローチャートを参照し、本実施の形態に係るメモリアクセス処理の概要を説明する。第２の実施の形態における処理と同様の処理には同一の符号が付され、その説明は適宜省略される。
【０１０２】
アドレス変換部１１は、マッピングキャッシュ１４を検索する（ステップＳ１）。マッピングキャッシュ１４に対象エントリが登録されていない場合（ステップＳ２；Ｎｏ）、アドレス変換部１１は、論理ブロックアドレスをマッピング検索部１５ｃに出力する。マッピング検索部１５ｃは、受け取った論理ブロックアドレスでマッピングテーブル１２ｃを検索し、対象エントリの情報を得る（ステップＳ１１）。この時、マッピング検索部１５ｃは、対象エントリに対する参照回数（アクセス回数）をも得る。
【０１０３】
参照回数がＮ値ではない場合（ステップＳ４１；Ｎｏ）、マッピング検索部１５ｃは、当該参照回数のインクリメントを行い、マッピングテーブル１２ｃの更新を行う（ステップＳ４２）。更に、マッピング検索部１５ｃは、対象エントリの内容をマッピングキャッシュ１４に登録する（ステップＳ４３）。その後、処理は上述のステップＳ３に移る。
【０１０４】
一方、参照回数がＮ値と等しい場合（ステップＳ４１；Ｙｅｓ）、マッピング検索部１５ｃは、当該参照回数のインクリメントを行い、マッピングテーブル１２ｃの更新を行う（ステップＳ５１）。更に、マッピング検索部１５ｃは、対象エントリが示す論理ブロックアドレス及び物理ブロックアドレスをマッピングテーブル変更部１７ｃに出力する。これにより、例外イベントが発生する（ステップＳ５２）。
【０１０５】
マッピングテーブル変更部１７ｃは、受け取った物理ブロックアドレスに基づいて、対象エントリに対応する第１の記憶部２１中のブロックの内容を、第２の記憶部２２の空きブロックへコピーする（ステップＳ５３）。更に、マッピングテーブル変更部１７ｃは、マッピングテーブル１２ｃ中の対象エントリが示す物理ブロックアドレスを、コピー先の物理ブロックアドレスに書き換える（ステップＳ５４）。これにより、対象エントリは、論理ブロックアドレスと第２の記憶部２２中のコピー先の物理ブロックアドレスとの対応関係を示すようになる。例外イベントが終了すると、処理は、上述のステップＳ１１に戻る。
【０１０６】
３−３．具体例
次に、本実施の形態に係る計算機システム１ｃの具体的な例を説明する。図９は、本実施の形態に係る計算機システム１ｃの一例を示している。図９において、第２の実施の形態と同様の構成には同一の符号が付され、その説明は適宜省略される。
【０１０７】
図９に示される計算機システム（コンピュータ）１ｃは、ＣＰＵ１０と主記憶装置２０を備えている。主記憶装置２０は、不揮発性記憶装置２１と揮発性記憶装置２２を含んでいる。ＣＰＵ１０には、アドレス変換部１１、マッピングキャッシュ１４、及びマッピング検索部１５ｃが搭載されている。不揮発性記憶装置２１には、ＯＳやアプリケーションプログラムが、予め格納されている。マッピングテーブル初期化部１３及びマッピングテーブル変更部１７ｃの各々は、このＯＳの一機能として提供される。マッピング検索部１５ｃは、ＯＳの一機能として提供されてもよい。また、マッピングテーブル変更部１７ｃの機能は、アドレス変換部１１に含まれていてもよい。これらＯＳとＣＰＵ１０との協働によって、本実施の形態に係る「データ処理装置」が提供される。揮発性記憶装置２２には、上述のマッピングテーブル１２ｃが構築される。
【０１０８】
図１７Ｂは、マッピングテーブル１２ｃの初期状態を示している。初期状態においては、論理ブロックアドレスのそれぞれに対して、不揮発性記憶装置２１の物理ブロックアドレスが割り当てられている。また、各エントリに対するアクセス回数は、“０（初期値）”に設定されている。図１７Ｃ及び図１７Ｄは、マッピングテーブル１２ｃの変遷を示しており、後に適宜参照される。尚、説明を簡単にするため、図１７Ｂ〜図１７Ｄにおいてはエントリ数が抑えられているが、実際には多数のエントリが存在する。
【０１０９】
物理ブロックアドレスの割り当ては、既出の実施の形態と同じであるとする（図１３Ａ参照）。マッピングキャッシュ１４の初期状態も、既出の実施の形態と同じである（図１５Ｂ参照）。また、上述のＮ値も、同様に“１”に設定されているとする。
【０１１０】
以下、次の３つのメモリアクセスが行なわれたときの一連の動作について、具体的に説明する：
（１）論理アドレス「２０１０（１６進数）」に対する最初の読み込みアクセス；
（２）マッピングキャッシュ１４に対象エントリがある状態における、論理ブロックアドレス「２」に対する読み込みアクセス；
（３）マッピングキャッシュ１４に対象エントリがない状態における、論理アドレス「２０３０」に対する読み込みアクセス。
【０１１１】
（１）まず、論理アドレス「２０１０」に対する最初のメモリアクセスが発生する。アドレス変換部１１は、論理ブロックアドレス「２」でマッピングキャッシュ１４を検索する。この時、図１５Ｂに示されるように、該当するエントリはマッピングキャッシュ１４に登録されていない。従って、マッピング検索部１５ｃは、論理ブロックアドレス「２」で、図１７Ｂに示されるマッピングテーブル１２ｃを検索する。その結果、対象エントリ「論理ブロックアドレス２，物理ブロックアドレス１３，アクセス回数０」が得られる。
【０１１２】
このアクセス回数はＮ値“１”と異なるので、マッピング検索部１５ｃは、アクセス回数のインクリメントを行う。その結果、マッピングテーブル１２ｃは、図１７Ｃに示される状態に変更される。また、マッピング検索部１５ｃは、エントリ「論理ブロックアドレス２，物理ブロックアドレス１３」をマッピングキャッシュ１４中に作成する。その結果、マッピングキャッシュ１４は、図１５Ｃに示される状態に変更される。
【０１１３】
アドレス変換部１１は再度、論理ブロックアドレス「２」でマッピングキャッシュ１４を検索する。この時、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス１３」が登録されているため、アドレス変換部１１は、アドレス変換を行い、論理ブロックアドレス「２」を物理ブロックアドレス「１３」に変換する。すなわち、物理アドレス「１３０１０（１６進数）」が得られる。従って、データ処理装置は、物理アドレス「１３０１０」にアクセスする。つまり、データ処理装置は、不揮発性記憶装置２１からデータを読み込む。このように、Ｎ値が１に設定されている場合、初回のアクセスではデータのコピーは行われず、データは不揮発性記憶装置２１から直接読み込まれる。
【０１１４】
（２）続いて、論理ブロックアドレス「２」に対するメモリアクセスが発生するとする。現在、マッピングキャッシュ１４は、図１５Ｃに示される状態にある。今回は、マッピングキャッシュ１４に対象エントリが登録されているので、データ処理装置は、不揮発性記憶装置２１の物理ブロックアドレス「１３」にアクセスする。このように、マッピングキャッシュ１４にエントリがある間は、データ処理装置は、不揮発性記憶装置２１に直接アクセスする。
【０１１５】
（３）しばらく経って、マッピングキャッシュ１４からエントリ「論理ブロックアドレス２，物理ブロックアドレス１３」が無くなり、マッピングキャッシュ１４が図１５Ｂに示される状態になったとする。その後、論理アドレス「２０３０」に対するメモリアクセスが発生するとする。図１５Ｂに示されるように、対象エントリはマッピングキャッシュ１４に登録されていない。従って、マッピング検索部１５ｃは、図１７Ｃに示されるマッピングテーブル１２ｃを検索し、対象エントリ「論理ブロックアドレス２，物理ブロックアドレス１３，アクセス回数１」を得る。
【０１１６】
このアクセス回数はＮ値“１”と等しい。この場合、マッピング検索部１５ｃは、アクセス回数のインクリメントを行う。また、マッピング検索部１５ｃは、論理ブロックアドレス「２」及び物理ブロックアドレス「１３」を、マッピングテーブル変更部１７ｃに出力する。これにより、例外イベントが発生する。
【０１１７】
マッピングテーブル変更部１７ｃは、不揮発性記憶装置２１中の物理ブロックアドレス「１３」が示すブロックの内容を、揮発性記憶装置２２の空きブロックにコピーする。例えば、揮発性記憶装置２２中の物理ブロックアドレス「２３」に、データがコピーされるとする。更に、マッピングテーブル変更部１７ｃは、マッピングテーブル１２ｃの対象エントリが示す物理ブロックアドレスを「２３」に書き換える。その結果、マッピングテーブル１２ｃは、図１７Ｄに示される状態に変更される。
【０１１８】
次に、マッピング検索部１５ｃは、図１７Ｄに示されるマッピングテーブル１２ｃを検索する。この場合、対象エントリ「論理ブロックアドレス２，物理ブロックアドレス２３，アクセス回数２」が得られる。このアクセス回数はＮ値“１”と異なるので、マッピング検索部１５ｃは、エントリ「論理ブロックアドレス２，物理ブロックアドレス２３」をマッピングキャッシュ１４中に作成する。その結果、マッピングキャッシュ１４は、図１５Ｄに示される状態に変更される。
【０１１９】
アドレス変換部１１は再度、マッピングキャッシュ１４を検索する。この時、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス２３」が登録されているため、アドレス変換部１１は、アドレス変換を行い、論理ブロックアドレス「２」を物理ブロックアドレス「２３」に変換する。すなわち、物理アドレス「２３０３０（１６進数）」が得られる。従って、データ処理装置は、物理アドレス「２３０３０」にアクセスする。つまり、データ処理装置は、揮発性記憶装置２２からデータを読み込む。このように、Ｎ値が１に設定されている場合、２回目のアクセスではデータのコピーが行われ、データは高速の揮発性記憶装置２２から読み込まれる。
【０１２０】
尚、マッピングテーブル１２ｃのサイズを小さくするために、カウンタによるアクセス回数のカウントの代わりに、特定のアルゴリズムの処理が行われてもよい。例えば、アクセス回数の代わりに、２ビットの状態（初期値は２進数で“０１”）が与えられる。特定のアルゴリズム処理として、対象エントリが参照された場合に、左１ビットシフトが行なわれる。例外イベント発生時に左のビットが“１”であれば、条件成立と判定され、データの複製が行われる。上述のように２ビットの状態が与えられる場合、２回目のブロックアクセス発生時にデータコピーが行われる。つまり、Ｎ値が１である場合と同等の動作が実現される。
【０１２１】
３−４．効果
本実施の形態によれば、既出の実施の形態と同じ効果が得られる。更に、アクセス権限の判定が不要であるため、メモリアクセス処理が簡略化されるという追加的な効果が得られる。
【０１２２】
４．第４の実施の形態
４−１．構成
図１０は、本発明の第４の実施の形態に係る計算機システム１ｄの構成を概念的に示している。図１０において、既出の実施の形態と同様の構成には同一の符号が付され、その説明は適宜省略される。本実施の形態に係る計算機システム１ｄは、新たな構成として、メモリアクセス部３１、物理アドレス変換部３２、ステイタステーブル３３、ステイタステーブル初期化部３４、ステイタステーブル変更部３５、及びアクセス回数管理テーブル３６を備えている。
【０１２３】
本実施の形態において、マッピングテーブル１２は、論理ブロックアドレスと第１の記憶部２１の物理ブロックアドレスとの対応関係を示している。また、このマッピングテーブル１２が示す物理ブロックアドレスは、アクセス対象のデータが格納されたアドレスであり、以下「対象物理ブロックアドレス」と参照される。一方、マッピングテーブル１２自身が格納されている物理アドレスも定義され得る。特に、マッピングテーブル１２中の対象エントリが格納されている物理アドレスは、以下「マッピングテーブルアドレス」と参照される。
【０１２４】
アドレス変換部１１ｄは、プログラムからのメモリアクセス要求を受け取る。そして、既出の実施の形態と同様に、アドレス変換部１１ｄは、マッピングキャッシュ１４を参照してアドレス変換を行い、要求された論理アドレスに対応する物理アドレス（以下、「対象物理アドレス」と参照される）を得る。アドレス変換部１１ｄは、その対象物理アドレスをメモリアクセス部３１に出力する。
【０１２５】
また、マッピングキャッシュ１４に対象エントリが存在しない場合、マッピングテーブル１２を参照する必要があるため、アドレス変換部１１ｄは、マッピングテーブルアドレスをメモリアクセス部３１に出力する。例えば、アドレス変換部１１ｄには、マッピングテーブル１２の先頭アドレスが予め格納されており、アドレス変換部１１ｄは、プログラムからのメモリアクセス要求の論理ブロックアドレスに基づいて先頭アドレスからのオフセットを算出することによって、マッピングテーブルアドレスを得ることができる。メモリアクセス部３１は、そのマッピングテーブルアドレスから読み出された対象エントリを、アドレス変換部１１ｄに返す。本実施の形態に係るアドレス変換部１１ｄは、既出の実施の形態におけるマッピング検索部１５の機能も含んでいると言える。
【０１２６】
メモリアクセス部３１は、アドレス変換部１１ｄから、対象物理アドレスあるいはマッピングテーブルアドレスを受け取る。そして、メモリアクセス部３１は、第１の記憶部２１及び第２の記憶部２２へのメモリアクセスを制御する。
【０１２７】
物理アドレス変換部３２は、メモリアクセス部３１から対象物理アドレスを受け取る。そして、物理アドレス変換部３２は、第１の記憶部２１から第２の記憶部２２へ対象物理アドレスの変換を行う。物理アドレス変換部３２は、得られた対象物理アドレスを、メモリアクセス部３１に返す。このような物理アドレス変換部３２に対して、上述のアドレス変換部１１ｄは、論理アドレス変換部と呼ぶこともできる。
【０１２８】
ステイタステーブル３３は、対象物理アドレスのそれぞれに関して、物理アドレス変換を行うかどうかを定めるテーブルである。図１８Ａは、本実施の形態に係るステイタステーブル３３の構成を概念的に示しており、図１８Ｂ及び図１８Ｃは、ステイタステーブル３３の例を示している。図１８Ａ〜図１８Ｃに示されるように、ステイタステーブル３３の各エントリは、対象物理ブロックアドレスとそのステイタスを示している。このステイタスの値によって、物理アドレス変換が行われるかどうかが決定される、すなわち、メモリアクセス部３１がアクセスする記憶部が変わる。
【０１２９】
ステイタステーブル初期化部３４は、ステイタステーブル３３の初期化を行うためのモジュールである。ステイタステーブル変更部３５は、ステイタステーブル３３のエントリを書き換えるためのモジュールである。
【０１３０】
アクセス回数管理テーブル３６は、対象物理ブロックアドレスに関する参照回数を示すテーブルである。図１９Ａは、本実施の形態に係るアクセス回数管理テーブル３６の構成を概念的に示しており、図１９Ｂ〜図１９Ｄはそれぞれアクセス回数管理テーブル３６の例を示している。図１９Ａ〜図１９Ｄに示されるように、アクセス回数管理テーブル３６の各エントリは、対象物理ブロックアドレスと、その対象物理ブロックアドレスの参照回数（アクセス回数）を示している。
【０１３１】
４−２．処理フロー
次に、図１０と、図１１に示されるフローチャートを参照し、本実施の形態に係るメモリアクセス処理の概要を説明する。
【０１３２】
まず、アドレス変換部１１ｄは、実行中のプログラムからメモリアクセス要求を受け取る。そして、アドレス変換部１１ｄは、マッピングキャッシュ１４を参照することによって対象物理アドレスを取得し、その対象物理アドレスをメモリアクセス部３１に出力する。あるいは、マッピングテーブル１２に対するアクセスが必要な場合、アドレス変換部１１ｄは、まず最初に、マッピングテーブルアドレスをメモリアクセス部３１に出力する。
【０１３３】
メモリアクセス部３１は、アドレス変換部１１ｄから要求された物理アドレス（対象物理アドレスあるいはマッピングテーブルアドレス）を受け取る。後に示されるように、メモリアクセス部３１の処理は、要求がマッピングテーブル１２へのアクセスか否かで異なってくる。そのため、メモリアクセス部３１は、受け取ったアドレス情報に基づいて、当該アクセスがマッピングテーブル１２へのアクセスかどうか判定する（ステップＳ６１）。例えば、メモリアクセス部３１には、マッピングテーブル１２が格納されている物理アドレスの範囲が予め格納されている。そして、メモリアクセス部３１は、要求された物理アドレスとその範囲とを比較することによって、当該アクセスがマッピングテーブル１２へのアクセスか否かを判定することができる。
【０１３４】
アドレス変換部１１ｄからの要求がマッピングテーブル１２に対するアクセスではない場合（ステップＳ６１；Ｎｏ）、メモリアクセス部３１が受け取った物理アドレスは、対象物理アドレスである。その場合、メモリアクセス部３１は、その対象物理アドレスが示す対象物理ブロックアドレスでステイタステーブル３３を検索する。その対象物理ブロックアドレスに対応付けられたステイタスが“０”である場合（ステップＳ６２；Ｎｏ）、メモリアクセス部３１は、当該対象物理アドレスにアクセスする。結果として、この場合は、メモリアクセス部３１は、第１の記憶部２１にアクセスする。
【０１３５】
また、その対象物理ブロックアドレスに対応付けられたステイタスが“１”である場合（ステップＳ６２；Ｙｅｓ）、メモリアクセス部３１は、対象物理アドレスを物理アドレス変換部３２に送る。物理アドレス変換部３２は、受け取った対象物理アドレスを変換し、第２の記憶部２２の対象物理アドレスを得る（ステップＳ６３）。対象物理アドレスの変換アルゴリズムとしては、様々なものが採用され得る。例えば、第１の記憶部２１と第２の記憶部２２に割り当てる物理ブロックアドレスは特定のビットだけが異なっている。そして、特定のビットが０の場合、その物理ブロックアドレスは第１の記憶部２１を指し示し、１の場合、その物理ブロックアドレスは第２の記憶部２２を指し示すように設定される（図１３Ｂ参照）。物理アドレス変換部３２は、変換後の対象物理アドレスを、メモリアクセス部３１に返す。メモリアクセス部３１は、受け取った対象物理アドレスにアクセスする。結果として、この場合は、メモリアクセス部３１は、第２の記憶部２２にアクセスする。
【０１３６】
一方、マッピングテーブル１２に対するアクセスの場合（ステップＳ６１；Ｙｅｓ）、メモリアクセス部３１が受け取った物理アドレスは、マッピングテーブルアドレスである。メモリアクセス部３１は、マッピングテーブル１２中のマッピングテーブルアドレスにアクセスする（ステップＳ７０）。マッピングテーブルアドレスから読み出された情報は対象エントリであり、その対象エントリには、対象物理ブロックアドレスが示されている（ステップＳ７１）。メモリアクセス部３１は、得られた対象エントリをアドレス変換部１１ｄに送り、アドレス変換部１１ｄは、対象エントリをマッピングキャッシュ１４に登録する。アドレス変換部１１ｄは、キャッシュした対象エントリを用いて論理アドレス変換を行い、プログラムから要求された論理アドレスを対象物理アドレスに変換する。更に、アドレス変換部１１ｄは、メモリアクセス部３１に対象物理アドレスでメモリアクセスを要求する。
【０１３７】
また、メモリアクセス部３１は、対象物理ブロックアドレスでアクセス回数管理テーブル３６を検索する（ステップＳ７２）。参照回数（アクセス回数）がＮ値と等しくない場合（ステップＳ７３；Ｎｏ）、メモリアクセス部３１は、当該参照回数のインクリメントを行う（ステップＳ７４）。その後、処理は、上述のステップＳ６２に移る。
【０１３８】
一方、参照回数がＮ値と等しい場合（ステップＳ７３；Ｙｅｓ）、メモリアクセス部３１は、当該参照回数のインクリメントを行う（ステップＳ８１）。更に、メモリアクセス部３１は、対象物理ブロックアドレスに基づいて、対象エントリに対応する第１の記憶部２１中のブロックの内容を、第２の記憶部２２の空きブロックへコピーする（ステップＳ８２）。例えば、その空きブロックの物理ブロックアドレスは、対象物理ブロックアドレスの特定のビットが１に変更されたものである（図１３Ｂ参照）。また、メモリアクセス部３１は、ステイタステーブル３３中の対象物理ブロックアドレスに対応するステイタスを、“１”に設定する（ステップＳ８３）。このようにして、データのコピーとステイタステーブル３３の更新が行われる。その後、処理は、上述のステップＳ６２に移る。
【０１３９】
今回は、対象物理ブロックアドレスに対応付けられたステイタスは“１”である（ステップＳ６２；Ｙｅｓ）。よって、物理アドレス変換部３２は、対象物理アドレスを変換し、第２の記憶部２２の対象物理アドレスを得る（ステップＳ６３）。物理アドレス変換部３２は、変換後の対象物理アドレスを、メモリアクセス部３１に返す。メモリアクセス部３１は、受け取った対象物理アドレスにアクセスする。結果として、この場合は、メモリアクセス部３１は、第２の記憶部２２にアクセスする。
【０１４０】
４−３．具体例
次に、本実施の形態に係る計算機システム１ｄの具体的な例を説明する。図１２は、本実施の形態に係る計算機システム１ｄの一例を示している。図１２に示される計算機システム１ｄは、コンピュータである。コンピュータ１ｄは、ＣＰＵ１０、主記憶装置（メインメモリ）２０、及びメモリコントローラ３０を備えている。主記憶装置２０は、不揮発性記憶装置２１と揮発性記憶装置２２を含んでいる。ＣＰＵ１０と主記憶装置２０は、メモリコントローラ３０を通じて互いに接続されている。このメモリコントローラ３０は、ＣＰＵ１０内部の処理を知ることなく、ＣＰＵ１０からのメモリアクセス要求に応答してメモリアクセスを行うことができる。
【０１４１】
上述のアドレス変換部（論理アドレス変換部）１１ｄ及びマッピングキャッシュ１４は、ＣＰＵ１０に搭載されている。また、メモリコントローラ３０には、メモリアクセス部３１、物理アドレス変換部３２、ステイタステーブル３３、ステイタステーブル初期化部３４、ステイタステーブル変更部３５、及びアクセス回数管理テーブル３６が含まれている。揮発性記憶装置２２には、上述のマッピングテーブル１２が構築される。不揮発性記憶装置２１には、ＯＳやアプリケーションプログラムが、予め格納されている。これらＯＳとＣＰＵ１０とメモリコントローラ３０との協働によって、本実施の形態に係る「データ処理装置」が提供される。尚、物理アドレス変換部３２が設けられているため、ＯＳは、主記憶装置２０に複数の記憶媒体が存在することを認識していなくてもよい。
【０１４２】
図１３Ｂは、不揮発性記憶装置２１及び揮発性記憶装置２２に対する物理ブロックアドレスの割り当ての一例を示している。図１３Ｂに示されるように、不揮発性記憶装置２１には物理ブロックアドレス１１〜１９が割り当てられ、揮発性記憶装置２２には物理ブロックアドレス１１１〜１１９が割り当てられている。つまり、物理ブロックアドレスを示すビットのうち、特定のビットだけが異なっている。
【０１４３】
マッピングテーブル１２及びマッピングキャッシュ１４の初期状態は、既出の実施の形態と同様である（図１４Ｂ、図１５Ｂ参照）。但し、本実施の形態において、アクセス権限は設定されない。
【０１４４】
図１８Ｂは、ステイタステーブル３３の初期状態を示している。初期状態においては、物理ブロックアドレスのそれぞれのステイタスが“０”に設定されている。図１８Ｃは、変化後のステイタステーブル３３の状態を示しており、後に参照される。
【０１４５】
図１９Ｂは、アクセス回数管理テーブル３６の初期状態を示している。アクセス回数管理テーブル３６には、物理ブロックアドレスのそれぞれに対応づけられたアクセス回数（参照回数）が示されている。初期状態においては、アクセス回数のそれぞれは“０（初期値）”に設定されている。図１９Ｃ及び図１９Ｄは、アクセス回数管理テーブル１６の変遷を示しており、後に適宜参照される。
【０１４６】
アクセス回数に関連する上述のＮ値は“１”に設定されているとする。
【０１４７】
以下、次の３つのメモリアクセスが行なわれたときの一連の動作について、具体的に説明する：
（１）論理アドレス「２０１０（１６進数）」に対する最初の読み込みアクセス；
（２）マッピングキャッシュ１４に対象エントリがある状態における、論理ブロックアドレス「２」に対する読み込みアクセス；
（３）マッピングキャッシュ１４に対象エントリがない状態における、論理アドレス「２０３０」に対する読み込みアクセス。
【０１４８】
（１）まず、論理アドレス「２０１０」に対する最初のメモリアクセスが発生する。アドレス変換部１１ｄは、論理ブロックアドレス「２」でマッピングキャッシュ１４を検索する。この時、図１５Ｂに示されるように、該当するエントリはマッピングキャッシュ１４に登録されていない。従って、マッピングテーブル１２の検索を行うため、アドレス変換部１１ｄは、マッピングテーブルアドレスをメモリコントローラ３０に送る。メモリコントローラ３０は、そのマッピングテーブルアドレスに基づいて、要求がマッピングテーブル１２へのアクセスであることを知る。そして、メモリコントローラ３０は、マッピングテーブル１２中のマッピングテーブルアドレスにアクセスし、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス１３」を得る。物理ブロックアドレス「１３」は、対象物理ブロックアドレスである。
【０１４９】
次に、メモリコントローラ３０は、対象物理ブロックアドレス「１３」で、図１９Ｂに示されるアクセス回数管理テーブル３６を検索する。その結果、エントリ「物理ブロックアドレス１３、アクセス回数０」が得られる。このアクセス回数は、Ｎ値“１”と異なっている。従って、メモリコントローラ３０は、当該アクセス回数のインクリメントを行う。その結果、アクセス回数管理テーブル３６は、図１９Ｃに示される状態に変更される。
【０１５０】
また、メモリコントローラ３０は、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス１３」をＣＰＵ１０に送る。ＣＰＵ１０は、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス１３」を、マッピングキャッシュ１４に登録する。その結果、マッピングキャッシュ１４は、図１５Ｃに示される状態に変更される。
【０１５１】
アドレス変換部１１ｄは再度、論理ブロックアドレス「２」でマッピングキャッシュ１４を検索する。この時、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス１３」が登録されているため、アドレス変換部１１ｄは、アドレス変換を行い、論理ブロックアドレス「２」を物理ブロックアドレス「１３」に変換する。すなわち、対象物理アドレス「１３０１０（１６進数）」が得られる。アドレス変換部１１ｄは、対象物理アドレス「１３０１０」へのアクセスをメモリコントローラ３０に要求する。
【０１５２】
メモリコントローラ３０は、対象物理ブロックアドレス「１３」で、図１８Ｂに示されるステイタステーブル３３を検索する。その結果、エントリ「物理ブロックアドレス１３、ステイタス０」が得られる。この場合、ステイタスが“０”なので、物理アドレス変換は行われない。従って、メモリコントローラ３０は、要求された対象物理アドレス「１３０１０」にアクセスする。つまり、データ処理装置は、不揮発性記憶装置２１からデータを読み込む。このように、Ｎ値が１に設定されている場合、初回のアクセスではデータのコピーは行われず、データは不揮発性記憶装置２１から直接読み込まれる。
【０１５３】
（２）続いて、論理ブロックアドレス「２」に対するメモリアクセスが発生するとする。現在、マッピングキャッシュ１４は、図１５Ｃに示される状態にある。今回は、マッピングキャッシュ１４に対象エントリが登録されているので、メモリコントローラ３０は、不揮発性記憶装置２１の対象物理ブロックアドレス「１３」にアクセスする。このように、マッピングキャッシュ１４にエントリがある間は、データ処理装置は、不揮発性記憶装置２１に直接アクセスする。
【０１５４】
（３）しばらく経って、マッピングキャッシュ１４からエントリ「論理ブロックアドレス２，物理ブロックアドレス１３」が無くなり、マッピングキャッシュ１４が図１５Ｂに示される状態になったとする。その後、論理アドレス「２０３０」に対するメモリアクセスが発生するとする。図１５Ｂに示されるように、対象エントリはマッピングキャッシュ１４に登録されていない。
【０１５５】
従って、マッピングテーブル１２の検索を行うため、アドレス変換部１１ｄは、マッピングテーブルアドレスをメモリコントローラ３０に送る。メモリコントローラ３０は、そのマッピングテーブルアドレスに基づいて、要求がマッピングテーブル１２へのアクセスであることを知る。そして、メモリコントローラ３０は、マッピングテーブル１２中のマッピングテーブルアドレスにアクセスし、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス１３」を得る。物理ブロックアドレス「１３」は、対象物理ブロックアドレスである。
【０１５６】
次に、メモリコントローラ３０は、対象物理ブロックアドレス「１３」で、図１９Ｃに示されるアクセス回数管理テーブル３６を検索する。その結果、エントリ「物理ブロックアドレス１３、アクセス回数１」が得られる。このアクセス回数は、Ｎ値“１”と等しい。従って、メモリコントローラ３０は、不揮発性記憶装置２１中の物理ブロックアドレス「１３」が示すブロックの内容を、揮発性記憶装置２２の空きブロックにコピーする。例えば、揮発性記憶装置２２中の物理ブロックアドレス「１１３」に、データがコピーされるとする。この物理ブロックアドレス「１１３」は、物理ブロックアドレス「１３」の上位の特定のビットが“１”に変更されたアドレスである。
【０１５７】
更に、メモリコントローラ３０は、ステイタステーブル３３中の物理ブロックアドレス「１３」に対応づけられたステイタスを、“０”から“１”に書き換える。その結果、ステイタステーブル３３は、図１８Ｃに示される状態に変更される。また、メモリコントローラ３０は、アクセス回数管理テーブル３６中の当該アクセス回数のインクリメントを行う。その結果、アクセス回数管理テーブル３６は、図１９Ｄに示される状態に変更される。
【０１５８】
また、メモリコントローラ３０は、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス１３」をＣＰＵ１０に送る。ＣＰＵ１０は、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス１３」を、マッピングキャッシュ１４に登録する。その結果、マッピングキャッシュ１４は、図１５Ｃに示される状態に変更される。
【０１５９】
アドレス変換部１１ｄは再度、論理ブロックアドレス「２」でマッピングキャッシュ１４を検索する。この時、対象エントリ「論理ブロックアドレス２、物理ブロックアドレス１３」が登録されているため、アドレス変換部１１ｄは、アドレス変換を行い、論理ブロックアドレス「２」を物理ブロックアドレス「１３」に変換する。すなわち、対象物理アドレス「１３０３０（１６進数）」が得られる。アドレス変換部１１ｄは、対象物理アドレス「１３０３０」へのアクセスをメモリコントローラ３０に要求する。
【０１６０】
メモリコントローラ３０は、対象物理ブロックアドレス「１３」で、図１８Ｃに示されるステイタステーブル３３を検索する。その結果、エントリ「物理ブロックアドレス１３、ステイタス１」が得られる。この場合、ステイタスが“１”なので、物理アドレス変換部３２は物理アドレス変換を行う。具体的には、物理アドレス変換部３２は、物理ブロックアドレス「１３」の上位の特定のビットを“１”に変更し、対象物理ブロックアドレス「１１３」を得る。そして、メモリコントローラ３０、対象物理アドレス「１１３０３０」にアクセスする。つまり、データ処理装置は、揮発性記憶装置２２からデータを読み込む。このように、Ｎ値が１に設定されている場合、２回目のアクセスではデータのコピーが行われ、データは高速の揮発性記憶装置２２から読み込まれる。
【０１６１】
４−４．効果
本実施の形態によれば、既出の実施の形態と同じ効果が得られる。また、システムの開発者は、ＯＳの支援を考慮することなく、メモリコントローラ３０のみで本実施の形態による効果を得られる。
【０１６２】
５．まとめ
本発明によれば、高速に起動し、且つ、高速に動作する計算機システムが提供される。従って、本発明は、高速起動と高速動作の両立が望まれる組込みシステムに適用され得る。例えば、本発明に係る計算機システムは、情報家電やカーナビゲーション装置に適用される。尚、揮発性記憶装置２２の空き容量が枯渇した場合、マッピングテーブル１２の示す物理ブロックアドレスが元に戻され、メモリアクセスが不揮発性記憶装置２１へのアクセスに戻されてもよい。その場合、高速アクセスはできなくなるが、揮発性記憶装置２２の空き容量を増やすことが可能となる。また、消費電力を低減することが可能となる。
【図面の簡単な説明】
【０１６３】
【図１】図１は、本発明の第１の実施の形態に係る計算機システムの構成を概念的に示すブロック図である。
【図２Ａ】図２Ａは、第１の実施の形態に係る計算機システムによる処理を示すフローチャートである。
【図２Ｂ】図２Ｂは、第１の実施の形態に係る計算機システムによる処理を示すフローチャートである。
【図３】図３は、第１の実施の形態に係る計算機システムの構成例を示すブロック図である。
【図４】図４は、本発明の第２の実施の形態に係る計算機システムの構成を概念的に示すブロック図である。
【図５Ａ】図５Ａは、第２の実施の形態に係る計算機システムによる処理を示すフローチャートである。
【図５Ｂ】図５Ｂは、第２の実施の形態に係る計算機システムによる処理を示すフローチャートである。
【図６】図６は、第２の実施の形態に係る計算機システムの構成例を示すブロック図である。
【図７】図７は、本発明の第３の実施の形態に係る計算機システムの構成を概念的に示すブロック図である。
【図８Ａ】図８Ａは、第３の実施の形態に係る計算機システムによる処理を示すフローチャートである。
【図８Ｂ】図８Ｂは、第３の実施の形態に係る計算機システムによる処理を示すフローチャートである。
【図９】図９は、第３の実施の形態に係る計算機システムの構成例を示すブロック図である。
【図１０】図１０は、本発明の第４の実施の形態に係る計算機システムの構成を概念的に示すブロック図である。
【図１１】図１１は、第４の実施の形態に係る計算機システムによる処理を示すフローチャートである。
【図１２】図１２は、第４の実施の形態に係る計算機システムの構成例を示すブロック図である。
【図１３Ａ】図１３Ａは、記憶装置に対する物理ブロックアドレスの割り当ての一例を示す概念図である。
【図１３Ｂ】図１３Ｂは、記憶装置に対する物理ブロックアドレスの割り当ての一例を示す概念図である。
【図１４Ａ】図１４Ａは、マッピングテーブルの構成を示す概念図である。
【図１４Ｂ】図１４Ｂは、マッピングテーブルの一例を示すテーブルである。
【図１４Ｃ】図１４Ｃは、マッピングテーブルの一例を示すテーブルである。
【図１４Ｄ】図１４Ｄは、マッピングテーブルの一例を示すテーブルである。
【図１５Ａ】図１５Ａは、マッピングキャッシュの構成を示す概念図である。
【図１５Ｂ】図１５Ｂは、マッピングキャッシュの一例を示すテーブルである。
【図１５Ｃ】図１５Ｃは、マッピングキャッシュの一例を示すテーブルである。
【図１５Ｄ】図１５Ｄは、マッピングキャッシュの一例を示すテーブルである。
【図１６Ａ】図１６Ａは、アクセス回数管理テーブルの構成を示す概念図である。
【図１６Ｂ】図１６Ｂは、アクセス回数管理テーブルの一例を示すテーブルである。
【図１６Ｃ】図１６Ｃは、アクセス回数管理テーブルの一例を示すテーブルである。
【図１６Ｄ】図１６Ｄは、アクセス回数管理テーブルの一例を示すテーブルである。
【図１７Ａ】図１７Ａは、マッピングテーブルの構成を示す概念図である。
【図１７Ｂ】図１７Ｂは、マッピングテーブルの一例を示すテーブルである。
【図１７Ｃ】図１７Ｃは、マッピングテーブルの一例を示すテーブルである。
【図１７Ｄ】図１７Ｄは、マッピングテーブルの一例を示すテーブルである。
【図１８Ａ】図１８Ａは、ステイタステーブルの構成を示す概念図である。
【図１８Ｂ】図１８Ｂは、ステイタステーブルの一例を示すテーブルである。
【図１８Ｃ】図１８Ｃは、ステイタステーブルの一例を示すテーブルである。
【図１９Ａ】図１９Ａは、アクセス回数管理テーブルの構成を示す概念図である。
【図１９Ｂ】図１９Ｂは、アクセス回数管理テーブルの一例を示すテーブルである。
【図１９Ｃ】図１９Ｃは、アクセス回数管理テーブルの一例を示すテーブルである。
【図１９Ｄ】図１９Ｄは、アクセス回数管理テーブルの一例を示すテーブルである。
【符号の説明】
【０１６４】
１    計算機システム，コンピュータ
１０    データ処理装置，ＣＰＵ
１１    アドレス変換部
１２    マッピングテーブル
１３    マッピングテーブル初期化部
１４    マッピングキャッシュ
１５    マッピング検索部
１６    アクセス回数管理テーブル
１７    マッピングテーブル変更部
１８    後処理ハンドラ部
２０    主記憶装置
２１    第１の記憶部，不揮発性記憶装置
２２    第２の記憶部，揮発性記憶装置
３０    メモリコントローラ
３１    メモリアクセス部
３２    物理アドレス変換部
３３    ステイタステーブル
３４    ステイタステーブル初期化部
３５    ステイタステーブル変更部
３６    アクセス回数管理テーブル
【図１】
2007304747.tif 000003
【図２Ａ】
2007304747.tif 000004
【図２Ｂ】
2007304747.tif 000005
【図３】
2007304747.tif 000006
【図４】
2007304747.tif 000007
【図５Ａ】
2007304747.tif 000008
【図５Ｂ】
2007304747.tif 000009
【図６】
2007304747.tif 000010
【図７】
2007304747.tif 000011
【図８Ａ】
2007304747.tif 000012
【図８Ｂ】
2007304747.tif 000013
【図９】
2007304747.tif 000014
【図１０】
2007304747.tif 000015
【図１１】
2007304747.tif 000016
【図１２】
2007304747.tif 000017
【図１３Ａ】
2007304747.tif 000018
【図１３Ｂ】
2007304747.tif 000019
【図１４Ａ】
2007304747.tif 000020
【図１４Ｂ】
2007304747.tif 000021
【図１４Ｃ】
2007304747.tif 000022
【図１４Ｄ】
2007304747.tif 000023
【図１５Ａ】
2007304747.tif 000024
【図１５Ｂ】
2007304747.tif 000025
【図１５Ｃ】
2007304747.tif 000026
【図１５Ｄ】
2007304747.tif 000027
【図１６Ａ】
2007304747.tif 000028
【図１６Ｂ】
2007304747.tif 000029
【図１６Ｃ】
2007304747.tif 000030
【図１６Ｄ】
2007304747.tif 000031
【図１７Ａ】
2007304747.tif 000032
【図１７Ｂ】
2007304747.tif 000033
【図１７Ｃ】
2007304747.tif 000034
【図１７Ｄ】
2007304747.tif 000035
【図１８Ａ】
2007304747.tif 000036
【図１８Ｂ】
2007304747.tif 000037
【図１８Ｃ】
2007304747.tif 000038
【図１９Ａ】
2007304747.tif 000039
【図１９Ｂ】
2007304747.tif 000040
【図１９Ｃ】
2007304747.tif 000041
【図１９Ｄ】
2007304747.tif 000042