(57)【要約】【課題】複数種類のメモリに対するデータの割当てに用いる情報を提供する。【解決手段】管理装置１８は、処理回路１２による複数種類の記憶部１４に対するアクセスを管理する。記憶部１４は、複数の第１領域を含み、第１領域は複数の第２領域を含む。管理装置１８は、管理部２２を備える。管理部２２は、管理テーブル３０Ａを管理する。管理テーブル３０Ａは、第１領域の識別情報と、第１領域に含まれる複数の第２領域の各々ごとに、第２領域が処理回路１２によってアクセス済であるか否かを示すアクセス情報を規定したアクセス管理情報と、を対応付けたテーブルである。【選択図】図１
2019164411.tif 000002
【特許請求の範囲】
【請求項１】
処理回路による複数種類の記憶部に対するアクセスを管理する管理装置であって、
前記記憶部は複数の第１領域を含み、前記第１領域は複数の第２領域を含み、
前記第１領域の識別情報と、前記第１領域に含まれる複数の前記第２領域の各々ごとに、前記第２領域が前記処理回路によってアクセス済であるか否かを示すアクセス情報を規定したアクセス管理情報と、を対応付けた管理テーブルを管理する管理部、
を備えた管理装置。
【請求項２】
前記管理部は、
前記処理回路からメモリアクセス要求を受付けたときに、
前記管理テーブルにおける、
前記メモリアクセス要求に示される、アクセス対象の前記第２領域の前記アクセス情報を、アクセス済に更新する更新部を有する、
請求項１に記載の管理装置。
【請求項３】
複数種類の前記記憶部は、
前記処理回路によるアクセス速度が互いに異なる、
請求項１または請求項２に記載の管理装置。
【請求項４】
前記管理部は、
前記管理テーブルにおける前記アクセス管理情報に基づいて、前記識別情報によって識別される前記第１領域内のデータの転送先を決定する決定部を有する、
請求項１〜請求項３の何れか１項に記載の管理装置。
【請求項５】
複数種類の前記記憶部は、第１の記憶部と、第１の記憶部より前記処理回路によるアクセス速度が遅い第２の記憶部と、を含む、
請求項４に記載の管理装置。
【請求項６】
前記決定部は、
前記管理テーブルにおける、アクセス済を示す前記アクセス情報の数が第１閾値以上の前記アクセス管理情報に対応する、前記識別情報によって識別される前記第１領域内のデータの転送先を、前記第１の記憶部に決定する、
請求項５に記載の管理装置。
【請求項７】
前記決定部は、
前記管理テーブルにおける、アクセス済を示す前記アクセス情報の数が第２閾値未満の前記アクセス管理情報に対応する、前記識別情報によって識別される前記第１領域内のデータの転送先を、前記第２の記憶部に決定する、
請求項５または請求項６に記載の管理装置。
【請求項８】
前記決定部は、
前記管理テーブルにおける、アクセス済を示す前記アクセス情報が第３閾値以上連続する前記アクセス管理情報に対応する、前記識別情報によって識別される前記第１領域内のデータの転送先を、前記第１の記憶部に決定する、
請求項５に記載の管理装置。
【請求項９】
前記決定部は、
前記管理テーブルにおける、アクセス済を示す前記アクセス情報の連続数が第４閾値未満の前記アクセス管理情報に対応する、前記識別情報によって識別される前記第１領域内のデータの転送先を、該データの記憶されている前記記憶部または該データの記憶されている前記記憶部より前記処理回路によるアクセス速度の遅い他の種類の前記記憶部に決定する、
請求項５または請求項８に記載の管理装置。
【請求項１０】
前記管理部は、
前記決定部によって決定された前記記憶部へ、該記憶部を転送先として決定された前記第１領域内のデータを転送する転送部を有する、
請求項４〜請求項９の何れか１項に記載の管理装置。
【請求項１１】
前記管理テーブルは、
前記第１領域の識別情報としての論理アドレスと、前記記憶部における前記第１領域の物理アドレスと、前記第１領域に含まれる複数の前記第２領域の各々ごとに、前記第２領域が前記処理回路によってアクセス済であるか否かを示すアクセス情報を規定したアクセス管理情報と、を対応づけてなる、
請求項１〜請求項１０の何れか１項に記載の管理装置。
【請求項１２】
前記第１領域は、前記処理回路によるデータの管理単位であり、
前記第２領域は、前記処理回路による前記記憶部に対するデータの書き換え単位である、
請求項１〜請求項１１の何れか１項に記載の管理装置。
【請求項１３】
処理回路と、
複数種類の記憶部と、
前記処理回路による前記記憶部に対するアクセスを管理する管理装置と、
を備え、
前記記憶部は複数の第１領域を含み、前記第１領域は複数の第２領域を含み、
前記管理装置は、
前記第１領域の識別情報と、前記第１領域に含まれる複数の前記第２領域の各々ごとに、前記第２領域が前記処理回路によってアクセス済であるか否かを示すアクセス情報を規定したアクセス管理情報と、を対応付けた管理テーブルを管理する管理部を有する、
情報処理装置。
【請求項１４】
処理回路による複数種類の記憶部に対するアクセスを管理する管理装置における管理方法であって、
前記記憶部は複数の第１領域を含み、前記第１領域は複数の第２領域を含み、
前記第１領域の識別情報と、前記第１領域に含まれる複数の前記第２領域の各々ごとに、前記第２領域が前記処理回路によってアクセス済であるか否かを示すアクセス情報を規定したアクセス管理情報と、を対応付けた管理テーブルを管理する管理ステップを含む、
管理方法。
【請求項１５】
処理回路による複数種類の記憶部に対するアクセスを管理するコンピュータに実行させるためのプログラムであって、
前記記憶部は複数の第１領域を含み、前記第１領域は複数の第２領域を含み、
前記第１領域の識別情報と、前記第１領域に含まれる複数の前記第２領域の各々ごとに、前記第２領域が前記処理回路によってアクセス済であるか否かを示すアクセス情報を規定したアクセス管理情報と、を対応付けた管理テーブルを管理する管理ステップを含む、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、管理装置、情報処理装置、管理方法、およびプログラムに関する。
【背景技術】
【０００２】
ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲｅＲＡＭ（Ｒｅｓｉｓｔｉｖｅ  ＲＡＭ）、ＰＣＭ（Ｐｈａｓｅ−Ｃｈａｎｇｅ  Ｍｅｍｏｒｙ）などの各種のストレージクラスメモリ（ＳＣＭ）が開発されている。ＳＣＭは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に比べてアクセス速度は遅いが、集積度が高い。一方、ＤＲＡＭは、ＳＣＭに比べて集積度は低いが、アクセス速度が速い。このため、複数種類のメモリを搭載したシステムの場合、これらのメモリを使い分けて用いる必要がある。
【０００３】
しかし、従来では、ＤＲＡＭのみをメインメモリに用いることを前提としていたため、複数の種類のメモリに対するデータの割当てに用いる情報が管理されていなかった。例えば、アクセス済であるか否かを示す情報を、ページ単位でページテーブルに記録する方法が開示されている。しかし、従来では、ページ内の何れの領域にアクセスがなされたかの管理がなされておらず、従来管理されている情報では、複数種類のメモリに対するデータの割当てを定めることは困難であった。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｃｏｍｐｕｔｅｒ  Ｏｒｇａｎｉｚａｔｉｏｎ  ａｎｄ  Ｄｅｓｉｇｎ  ＲＩＳＣ−Ｖ  Ｅｄｉｔｉｏｎ，  Ｄａｖｉｄ  Ａ．  Ｐａｔｔｅｒｓｏｎ  ＆  Ｊｏｈｎ  Ｌ．  Ｈｅｎｎｅｓｓｙ，  Ｍｏｒｇａｎ  Ｋａｕｆｍａｎｎ  Ｐｕｂｌｉｓｈｅｒｓ，  ＩＳＢＮ  ９７８−０−１２−８１２２７５−４，  ５．７  Ｖｉｒｔｕａｌ  Ｍｅｍｏｒｙ．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、複数種類のメモリに対するデータの割当てに用いる情報を提供することの可能な、管理装置、情報処理装置、管理方法、およびプログラムを提供することである。
【課題を解決するための手段】
【０００６】
実施形態の管理装置は、処理回路による複数種類の記憶部に対するアクセスを管理する。前記記憶部は複数の第１領域を含み、前記第１領域は複数の第２領域を含む。管理装置は、管理テーブルを管理する管理部を備える。管理テーブルは、前記第１領域の識別情報と、前記第１領域に含まれる複数の前記第２領域の各々ごとに、前記第２領域が前記処理回路によってアクセス済であるか否かを示すアクセス情報を規定したアクセス管理情報と、を対応付ける。
【図面の簡単な説明】
【０００７】
【図１】情報処理装置の模式図。
【図２】物理アドレス空間を示す模式図。
【図３】管理テーブルのデータ構成を示す模式図。
【図４】情報処理の手順のフローチャート。
【図５】管理テーブルのデータ構成を示す模式図。
【図６】情報処理装置の模式図。
【図７】情報処理装置の模式図。
【発明を実施するための形態】
【０００８】
以下に添付図面を参照して、本実施の形態の詳細を説明する。
【０００９】
図１は、本実施の形態の情報処理装置１０の構成の一例を示す模式図である。情報処理装置１０は、処理回路１２と、管理装置１８と、キャッシュメモリ１６と、記憶部１４と、を備える。
【００１０】
処理回路１２とキャッシュメモリ１６、処理回路１２と管理装置１８、キャッシュメモリ１６と管理装置１８、および管理装置１８と記憶部１４の各々は、データや信号を授受可能に接続されている。
【００１１】
処理回路１２は、１または複数のプロセッサを有する。プロセッサは、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。プロセッサは、１または複数のＣＰＵコアを含んでいてもよい。処理回路１２は、プログラムの実行に応じて、記憶部１４からのデータ読出しや、記憶部１４へのデータ書込みを行う。
【００１２】
処理回路１２および後述する管理装置１８は、記憶部１４に記憶されているデータをキャッシュメモリ１６に一時的に記憶し、処理に用いる。
【００１３】
記憶部１４は、処理回路１２による作業領域として用いられるメインメモリである。本実施の形態の情報処理装置１０は、複数種類の記憶部１４を備える。すなわち、本実施の形態の情報処理装置１０は、複数種類の記憶部１４を、メインメモリとして用いる。
【００１４】
複数種類の記憶部１４は、処理回路１２によるアクセス速度が互いに異なる。なお、以下では、処理回路１２によるアクセス速度を、単にアクセス速度と称して説明する場合がある。また、アクセス速度は、アクセス遅延とも呼ばれることもある。アクセス速度が速いというのは、アクセス遅延時間が短いことである。
【００１５】
本実施の形態では、情報処理装置１０は、アクセス速度の異なる複数種類の記憶部１４として、第１記憶部１４Ａと、第２記憶部１４Ｂと、を備える。なお、情報処理装置１０は、３種類以上の記憶部１４を備えた構成であってもよい。
【００１６】
第１記憶部１４Ａは、第２記憶部１４Ｂに比べてアクセス速度が速い。また、本実施の形態では、第１記憶部１４Ａは、第２記憶部１４Ｂより集積度が低い。
【００１７】
第１記憶部１４Ａは、例えば、揮発性メモリである。具体的には、第１記憶部１４Ａは、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓ  Ｍｅｍｏｒｙ）である。なお、第１記憶部１４Ａは、ＤＲＡＭと同様に高速アクセスが可能な、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓ  Ｍｅｍｏｒｙ）等の不揮発メモリであってもよい。
【００１８】
一方、第２記憶部１４Ｂは、第１記憶部１４Ａに比べてアクセス速度が遅い。また、本実施の形態では、第２記憶部１４Ｂは、第１記憶部１４Ａより容量が大きい。
【００１９】
第２記憶部１４Ｂは、例えば、不揮発性メモリである。具体的には、第２記憶部１４Ｂは、ＤＲＡＭより大容量な大容量高速不揮発メモリ（Ｎｏｎ−ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）である。
【００２０】
更に具体的には、第２記憶部１４Ｂは、ＭＲＡＭ、ＰＣＭ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｍｅｍｏｒｙ）、ＰＲＡＭ（Ｐｈａｓｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＰＣＲＡＭ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲｅＲＡＭ（Ｒｅｓｉｓｔａｎｃｅ  Ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、３ＤＸＰｏｉｎｔまたはＭｅｍｒｉｓｔｏｒなどである。
【００２１】
また、第２記憶部１４Ｂは、いわゆるストレージクラスメモリ（ＳＣＭ）と呼ばれるメモリであってもよい。また、第２記憶部１４Ｂは、複数の半導体装置を１つの基板または筐体等に設けたモジュールであってもよい。
【００２２】
本実施の形態では、第１記憶部１４ＡがＤＲＡＭであり、第２記憶部１４ＢがＳＣＭである場合を、一例として説明する。なお、第１記憶部１４Ａのアクセス速度が第２記憶部１４Ｂより速ければよく、これらの組合せは、第１記憶部１４ＡがＤＲＡＭであり第２記憶部１４ＢがＳＣＭである形態に限定されない。例えば、第１記憶部１４ＡがＭＲＡＭであり、第２記憶部１４ＢがＲｅＲＡＭであってもよい。
【００２３】
なお、第１記憶部１４Ａおよび第２記憶部１４Ｂを総称して説明する場合には、単に、記憶部１４と称して説明する。
【００２４】
記憶部１４は、複数の第１領域を含む。第１領域は、複数の第２領域を含む。言い換えると、本実施の形態では、処理回路１２および管理装置１８が、第１記憶部１４Ａおよび第２記憶部１４Ｂを、第１領域毎に管理すると共に、第１領域内の第２領域ごとに管理する。
【００２５】
図２は、処理回路１２から見た物理アドレス空間を示す模式図である。
【００２６】
図２に示すように、第１記憶部１４Ａおよび第２記憶部１４Ｂは、それぞれ、複数の第１領域を含む。
【００２７】
第１領域は、例えば、処理回路１２によるデータの管理単位（例えば、ページ）である。なお、第１領域は、処理回路１２によるデータの管理単位の所定数倍の単位などであってもよい。本実施の形態では、第１領域が、ページに相当する場合を、一例として説明する。
【００２８】
第２領域は、第１領域より小さい領域である。例えば、第２領域は、処理回路１２による記憶部１４に対するアクセスに伴うデータの書き換え単位である。具体的には、第２領域は、キャッシュラインと呼ばれる単位である。キャッシュラインは、キャッシュメモリ１６に対するデータの書き換え単位に対応する。すなわち、処理回路１２からのメモリアクセス要求を受けた管理装置１８は、キャッシュラインの単位で、第１記憶部１４Ａまたは第２記憶部１４Ｂにアクセスする。
【００２９】
キャッシュラインは、例えば、６４バイトである。なお、第２領域は、キャッシュラインよりも小さい単位（例えば、バイト単位）であってもよい。また、第２領域は、キャッシュラインのサイズの所定数倍の単位などであってもよい。
【００３０】
本実施の形態では、処理回路１２および管理装置１８は、図２に示す物理アドレス空間１５にマッピングされた第１記憶部１４Ａおよび第２記憶部１４Ｂ内の領域を、第１領域のサイズ（例えば、ページサイズ）に区切って管理する。そして、処理回路１２および管理装置１８は、ページテーブルを用いて論理アドレスから物理アドレスに変換することで、仮想記憶を実現する。
【００３１】
また、本実施の形態では、処理回路１２および管理装置１８は、第１領域内を第２領域のサイズ（例えば、キャッシュライン）に区切って管理する。
【００３２】
このように、本実施の形態の情報処理装置１０は、複数種類の記憶部１４の各々を、第１領域（例えばページ単位）より細かい単位である第２領域（例えばキャッシュライン）ごとに、管理可能に構成されている。
【００３３】
図１に戻り、説明を続ける。管理装置１８は、処理回路１２による、複数種類の記憶部１４（第１記憶部１４Ａ、第２記憶部１４Ｂ）に対するアクセスを管理する。管理装置１８は、メモリ管理ユニット（ＭＭＵ：Ｍｅｍｏｒｙ  Ｍａｎａｇｅｍｅｎｔ  Ｕｎｉｔ）と称される場合がある。
【００３４】
管理装置１８は、アクセス制御部２０と、管理部２２と、を有する。管理部２２は、更新部２４と、決定部２６と、転送部２８と、管理情報記憶部３０と、を有する。
【００３５】
更新部２４、決定部２６、および転送部２８は、例えば、ハードウェア（論理回路）により実現される。また、更新部２４、決定部２６、および転送部２８は、１または複数のプロセッサにより実現してもよい。例えば、更新部２４、決定部２６、および転送部２８の少なくとも１つは、ＣＰＵなどのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。また、更新部２４、決定部２６、および転送部２８の少なくとも１つは、専用のＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）などのハードウェアにより実現してもよい。また、更新部２４、決定部２６、および転送部２８は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、これらの更新部２４、決定部２６、および転送部２８のうち１つを実現してもよいし、各部のうち２以上を実現してもよい。
【００３６】
アクセス制御部２０は、処理回路１２から受付けたメモリアクセス要求を処理する。メモリアクセス要求は、処理回路１２から記憶部１４に対するアクセス要求である。メモリアクセス要求は、記憶部１４へのデータ書込み、または記憶部１４からのデータ読出しを示す。メモリアクセス要求は、アクセス対象の記憶部１４の第１領域のアドレス情報および第２領域のアドレス情報を含む。これらのアドレス情報は、論理アドレスによって表される。
【００３７】
アクセス制御部２０は、処理回路１２から受付けたメモリアクセス要求によって示されるアクセス対象のデータがキャッシュメモリ１６に格納されていない場合、記憶部１４へアクセスする。この場合、アクセス制御部２０は、処理回路１２から受付けたメモリアクセス要求によって示される、アクセス対象の記憶部１４における第１領域内の第２領域にアクセスする。そして、管理装置１８は、アクセスした該第２領域に対して、メモリアクセス要求によって示される処理（書込みや読出し）を実行する。
【００３８】
具体的には、処理回路１２から受付けたメモリアクセス要求が特定の第２領域への書込みを示す場合がある。この場合、アクセス制御部２０は、メモリアクセス要求に示される、アクセス対象の記憶部１４における、アクセス対象の第１領域内の第２領域に、メモリアクセス要求に示されるデータを書込む。また、処理回路１２から受付けたメモリアクセス要求が特定の第２領域からのデータ読出しを示す場合がある。この場合、アクセス制御部２０は、メモリアクセス要求に示される、アクセス対象の記憶部１４における、アクセス対象の第１領域内の第２領域からデータを読出し、キャッシュメモリ１６に格納するとともに、処理回路１２へ出力する。
【００３９】
次に、管理部２２について説明する。管理部２２は、管理テーブル３０Ａを管理する。図３は、管理テーブル３０Ａのデータ構成の一例を示す模式図である。
【００４０】
管理テーブル３０Ａは、第１領域の識別情報と、アクセス管理情報と、を対応付けたテーブルである。第１領域の識別情報は、第１記憶部１４Ａおよび第２記憶部１４Ｂの各々の第１領域を識別するための情報である。
【００４１】
本実施の形態では、上述したように第１領域がページに相当する場合を説明する。このため、本実施の形態では、第１領域の識別情報が、ページ番号である場合を一例として説明する。
【００４２】
また、本実施の形態では、管理テーブル３０Ａに登録されている第１領域の識別情報は、論理アドレスによって表される。すなわち、本実施の形態では、第１領域の識別情報は論理アドレス空間におけるページ番号で表される。このため、情報処理装置１０では、ページテーブルにおける論理アドレスに対応する物理アドレスを特定することで、管理テーブル３０Ａに示されるページ番号が、何れの種類の記憶部１４（第１記憶部１４Ａ、第２記憶部１４Ｂ）におけるページ番号を示すかを特定可能である。
【００４３】
アクセス管理情報は、対応するページ番号によって識別される第１領域に含まれる複数の第２領域の各々ごとに、アクセス情報を規定したものである。
【００４４】
アクセス情報は、第２領域が処理回路１２によってアクセス済であるか否かを示すフラグである。図３に示す例では、アクセス情報“０”は、処理回路１２によるアクセス未の第２領域を示す。また、アクセス情報“１”は、処理回路１２によるアクセス済の第２領域を示す。
【００４５】
図３には、一例として、１ページ（１つの第１領域）に対して、１６個の第２領域としてのキャッシュラインが割り当てられた例を示した。例えば、１ページ（第１領域）のサイズが４Ｋバイトであると仮定する。また、第２領域であるキャッシュラインのサイズが６４バイトであると仮定する。この場合、１つの第１領域は、６４個の第２領域を有することとなる。また、管理テーブル３０Ａには、ページ番号によって識別される第１領域ごとに、６４個の第２領域の各々のアクセス情報を規定したアクセス管理情報が、規定された状態となる。
【００４６】
図１に戻り説明を続ける。管理部２２は、更新部２４と、決定部２６と、転送部２８と、管理情報記憶部３０と、を有する。管理情報記憶部３０は、管理テーブル３０Ａを記憶する。
【００４７】
更新部２４は、処理回路１２からメモリアクセス要求を受付けたときに、管理テーブル３０Ａを更新する。詳細には、更新部２４は、管理テーブル３０Ａにおける、メモリアクセス要求に示されるアクセス対象の第１領域を示すページ番号に対応する、該メモリアクセス要求に示されるアクセス対象の第２領域のアクセス情報を、アクセス済“１”に更新する。
【００４８】
具体的には、処理回路１２から受付けたメモリアクセス要求に示されるアクセス対象のデータが、キャッシュメモリ１６に格納されていなかったと仮定する。この場合、アクセス制御部２０が、該メモリアクセス要求に基づいて記憶部１４へアクセスする。すると、更新部２４は、アクセス制御部２０から該メモリアクセス要求を受付ける。
【００４９】
そして、更新部２４は、受付けたメモリアクセス要求に基づいて、処理回路１２によってアクセスされた第２領域のアクセス情報を、アクセス未“０”からアクセス済“１”に更新する。
【００５０】
なお、更新部２４は、メモリアクセス要求が記憶部１４へのデータ書込みを示す場合にのみ、処理回路１２によってアクセスされた第２領域のアクセス情報を、アクセス未“０”からアクセス済“１”に更新してもよい。また、更新部２４は、メモリアクセス要求が記憶部１４からのデータ読出しを示す場合にのみ、処理回路１２によってアクセスされた第２領域のアクセス情報を、アクセス未“０”からアクセス済“１”に更新してもよい。また、更新部２４は、メモリアクセス要求が記憶部１４へのデータ書込みまたは記憶部１４からのデータ読出しを示す場合に、処理回路１２によってアクセスされた第２領域のアクセス情報を、アクセス未“０”からアクセス済“１”に更新してもよい。
【００５１】
このように、更新部２４は、処理回路１２によって記憶部１４からデータの読出しや、データの書込み、などのアクセスが実行されるごとに、管理テーブル３０Ａのアクセス情報を更新する。
【００５２】
このため、管理テーブル３０Ａには、処理回路１２がどのようなメモリアクセス要求を発行したかを示すアクセスパターンが、登録されることとなる。
【００５３】
なお、メモリアクセス要求に示される第１領域のアドレス情報によって示されるページ番号が、管理テーブル３０Ａに存在しない場合がある。すなわち、メモリアクセス要求に示される、アクセス対象の第１領域のエントリが、管理テーブル３０Ａに存在しない場合がある。
【００５４】
この場合、更新部２４は、新たなエントリ（ページ番号とアクセス管理情報との対）を作成し、管理テーブル３０Ａに登録する必要がある。ここで、管理テーブル３０Ａに登録されるエントリの数には、上限がある。このため、管理テーブル３０Ａに空のエントリが無い場合には、更新部２４は、管理テーブル３０Ａに登録されている何れかのエントリを解放し、新たなエントリを作成すればよい。
【００５５】
解放対象のエントリの特定方法には、公知の方法を用いればよい。例えば、更新部２４は、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）などのアルゴリズムを用いて、解放対象のエントリを特定することが好ましい。この方法を用いることで、更新部２４は、最も使われていないエントリや、長期間使われていないエントリや、参照頻度の低いエントリを、解放対象のエントリとして特定することができる。
【００５６】
そして、更新部２４は、新たに作成したエントリ（以下、新エントリと称する場合がある）に、受付けたメモリアクセス要求に示される第１領域のページ番号を登録し、対応するアクセス管理情報における全ての第２領域のアクセス情報として、アクセス未“０”を登録する。そして、更新部２４は、管理テーブル３０Ａにおける新たに作成した新エントリにおける、該メモリアクセス要求に示されるアクセス対象の第２領域のアクセス情報を、アクセス済“１”に更新すればよい。
【００５７】
決定部２６は、管理テーブル３０Ａにおけるアクセス管理情報に基づいて、該管理テーブル３０Ａにおけるページ番号によって識別される第１領域内のデータの、転送先を決定する。なお、本実施の形態では、“転送”とは、コピーを意味する。
【００５８】
すなわち、決定部２６は、管理テーブル３０Ａにおける、ページ番号の各々に対応するアクセス管理情報を用いて、対応するページ番号によって識別される第１領域内のデータの最適な管理方法を決定する。
【００５９】
例えば、決定部２６は、所定時間ごとに、アクセス管理情報に基づいて第１領域の各々のデータの転送先を決定する。また、決定部２６は、更新部２４が管理テーブル３０Ａのエントリを解放するときに、解放対象のエントリのページ番号によって識別される第１領域内のデータの転送先を、該エントリのアクセス管理情報に基づいて決定してもよい。また、決定部２６は、所定時間ごと、および、管理テーブル３０Ａのエントリの解放時、の双方のタイミングで、データの転送先を決定してもよい。
【００６０】
本実施の形態では、決定部２６は、管理テーブル３０Ａにおける、アクセス済“１”を示すアクセス情報の数が第１閾値以上のアクセス管理情報に対応する、ページ番号によって識別される第１領域内のデータの転送先を、現在記憶されている記憶部１４より処理回路１２によるアクセス速度の速い他の種類の記憶部１４に決定する。なお、現在データの記憶されている記憶部１４が最もアクセス速度の速い記憶部である場合がある。この場合、決定部２６は、データの記憶されている現在の記憶部１４を、データの転送先として決定すればよい。本実施の形態では、具体的には、決定部２６は、管理テーブル３０Ａにおける、アクセス済“１”を示すアクセス情報の数が第１閾値以上のアクセス管理情報に対応する、ページ番号によって識別される第１領域内のデータの転送先を、第１記憶部１４Ａに決定する。
【００６１】
第１閾値は、予め定めればよい。第１閾値は、例えば、１ページ（第１領域）内に含まれる第２領域の数の１／２以上の値であることが好ましく、２／３以上の値であることが好ましい。
【００６２】
アクセス済“１”を示すアクセス情報の数が第１閾値以上の第１領域は、処理回路１２によるメモリアクセスのローカリティ（局所性）が高いと推測される。このため、決定部２６は、このような第１領域内のデータについて、現在記憶されている記憶部１４より、処理回路１２によるアクセス速度の速い他の記憶部１４を、転送先として決定する。
【００６３】
例えば、アクセス済“１”を示すアクセス情報の数が第１閾値以上の第１領域内のデータが、第２記憶部１４Ｂに記憶されていると仮定する。この場合、決定部２６は、第２記憶部１４Ｂよりアクセス速度の速い第１記憶部１４Ａを、該データの転送先として決定する。該データを第１記憶部１４Ａへ転送した場合、処理回路１２は、第２記憶部１４Ｂに比べてよりアクセス速度の速い第１記憶部１４Ａにアクセスすることで、該データへアクセスすることが可能となる。
【００６４】
一方、決定部２６は、管理テーブル３０Ａにおける、アクセス済“１”を示すアクセス情報の数が第２閾値未満のアクセス管理情報に対応する、ページ番号によって識別される第１領域内のデータの転送先を、現在記憶されている記憶部１４、または現在記憶されている記憶部１４より処理回路１２によるアクセス速度の遅い他の種類の記憶部１４に決定する。なお、現在データの記憶されている記憶部１４が最もアクセス速度の遅い記憶部である場合がある。この場合、決定部２６は、データの記憶されている現在の記憶部１４を、データの転送先として決定すればよい。本実施の形態では、具体的には、決定部２６は、管理テーブル３０Ａにおける、アクセス済“１”を示すアクセス情報の数が第２閾値未満のアクセス管理情報に対応する、ページ番号によって識別される第１領域内のデータの転送先を、第２記憶部１４Ｂに決定する。
【００６５】
第２閾値は、第１閾値以下の値である。第２閾値は、予め定めればよい。第２閾値は、例えば、１ページ（第１領域）内に含まれる第２領域の数の１／２以下の値であることが好ましく、１／３以下の値であることが好ましい。
【００６６】
アクセス済“１”を示すアクセス情報の数が第２閾値未満の第１領域は、処理回路１２によるメモリアクセスのローカリティが低いと推測される。このため、決定部２６は、このような第１領域内のデータについて、現在記憶されている記憶部１４、または、現在記憶されている記憶部１４より処理回路１２によるアクセス速度が遅い他の記憶部１４を、転送先として決定する。
【００６７】
例えば、アクセス済“１”を示すアクセス情報の数が第２閾値未満の第１領域内のデータが、第１記憶部１４Ａに記憶されていると仮定する。この場合、決定部２６は、第１記憶部１４Ａよりアクセス速度の遅い第２記憶部１４Ｂを、該データの転送先として決定する。該データを第２記憶部１４Ｂへ転送した場合、処理回路１２は、第１記憶部１４Ａに比べてよりアクセス速度の遅い第２記憶部１４Ｂへアクセスすることで、該データへアクセスすることが可能となる。
【００６８】
なお、決定部２６によるデータの転送先の決定方法は、上記に限定されない。
【００６９】
例えば、決定部２６は、管理テーブル３０Ａにおける、アクセス済“１”を示すアクセス情報が第３閾値以上連続するアクセス管理情報に対応する、ページ番号によって識別される第１領域内のデータの転送先を、現在記憶されている記憶部１４よりアクセス速度の速い他の種類の記憶部１４に決定してもよい。なお、上記と同様に、現在データの記憶されている記憶部１４が最もアクセス速度の速い記憶部である場合がある。この場合、決定部２６は、データの記憶されている現在の記憶部１４を、データの転送先として決定すればよい。本実施の形態では、具体的には、決定部２６は、管理テーブル３０Ａにおける、アクセス済“１”を示すアクセス情報が第３閾値以上連続するアクセス管理情報に対応する、ページ番号によって識別される第１領域内のデータの転送先を、第１記憶部１４Ａに決定する。
【００７０】
アクセス済“１”を示すアクセス情報が第３閾値以上連続する、とは、アクセス済“１”を示すアクセス情報を規定された第２領域が、第１領域内のアドレス順に第３閾値以上隣接且つ連続して配置された状態を示す。
【００７１】
第３閾値は、予め定めればよい。第３閾値は、例えば、１ページ（第１領域）内に含まれる第２領域の数の１／４以上の値であることが好ましい。
【００７２】
一方、決定部２６は、管理テーブル３０Ａにおける、アクセス済“１”を示すアクセス情報の連続数が第４閾値未満のアクセス管理情報に対応する、ページ番号によって識別される第１領域内のデータの転送先を、現在記憶されている記憶部１４または現在記憶されている記憶部１４よりアクセス速度の遅い他の種類の記憶部１４に決定してもよい。なお、上記と同様に、現在データの記憶されている記憶部１４が最もアクセス速度の遅い記憶部である場合がある。この場合、決定部２６は、データの記憶されている現在の記憶部１４を、データの転送先として決定すればよい。本実施の形態では、具体的には、決定部２６は、管理テーブル３０Ａにおける、アクセス済“１”を示すアクセス情報の連続数が第４閾値未満のアクセス管理情報に対応する、ページ番号によって識別される第１領域内のデータの転送先を、第２記憶部１４Ｂに決定する。
【００７３】
第４閾値は、第３閾値以下の値である。第４閾値は、予め定めればよい。第４閾値は、例えば、１ページ（第１領域）内に含まれる第２領域の数の１／８以下の値であることが好ましい。
【００７４】
次に、転送部２８について説明する。転送部２８は、決定部２６によって決定された記憶部１４へ、決定部２６によって該記憶部１４を転送先として決定された第１領域内のデータを転送する。
【００７５】
転送部２８がデータを転送するタイミングは、限定されない。例えば、転送部２８は、決定部２６によって転送先が決定されるごとに、決定された記憶部１４へ、該記憶部１４を転送先として決定された第１領域内のデータを転送してもよい。
【００７６】
また、転送部２８は、決定部２６による転送先の記憶部１４の決定から所定期間経過した後の所定のタイミングで、データを転送してもよい。例えば、転送部２８は、処理回路１２による記憶部１４へのアクセスが少ない期間に、データの転送を行ってもよい。
【００７７】
このように、転送部２８が、決定部２６によって決定された記憶部１４へ、決定部２６によって該記憶部１４を転送先として決定された第１領域内のデータを転送することで、以下の効果が得られる。すなわち、転送部２８は、決定部２６によって決定された転送先の記憶部１４に、ユーザの作業を介することなく、自動的にデータを転送（すなわち、割当てる）ことができる。
【００７８】
そして、転送部２８は、ページテーブルにおける、転送した第１領域の論理アドレスに対応する物理アドレスを、転送先の記憶部１４の格納先を示す物理アドレスに更新する。このため、処理回路１２は、転送先の記憶部１４に直接アクセスすることが可能となる。なお、ページテーブルの更新は、決定部２６が行ってもよい。
【００７９】
次に、本実施の形態の情報処理装置１０が実行する情報処理の手順の一例を説明する。図４は、情報処理装置１０が実行する情報処理の手順の一例を示すフローチャートである。
【００８０】
まず、更新部２４が、処理回路１２からアクセス制御部２０を介してメモリアクセス要求を受付けたか否かを判断する（ステップＳ１００）。ステップＳ１００で否定判断すると（ステップＳ１００：Ｎｏ）、本ルーチンを終了する。ステップＳ１００で肯定判断すると（ステップＳ１００：Ｙｅｓ）、ステップＳ１０２へ進む。
【００８１】
ステップＳ１０２では、更新部２４が、ステップＳ１００で受付けたメモリアクセス要求に示される第１領域のアドレス情報によって示されるページ番号を含むエントリが、管理テーブル３０Ａにあるか否かを判断する（ステップＳ１０２）。更新部２４は、ステップＳ１００で受付けたメモリアクセス要求に含まれる、アクセス対象の第１領域のページ番号が管理テーブル３０Ａに登録されているか否かを判別することで、ステップＳ１０２の判断を行う。
【００８２】
ステップＳ１０２で肯定判断すると（ステップＳ１０２：Ｙｅｓ）、後述するステップＳ１２６へ進む。ステップＳ１０２で否定判断すると（ステップＳ１０２：Ｎｏ）、ステップＳ１０４へ進む。
【００８３】
ステップＳ１０４では、更新部２４が、管理テーブル３０Ａにおける、解放対象のエントリを特定する（ステップＳ１０４）。
【００８４】
次に、決定部２６が、ステップＳ１０４で特定したエントリにおけるアクセス管理情報について、アクセス済“１”を示すアクセス情報の数が第１閾値以上であるか否かを判断する（ステップＳ１０６）。
【００８５】
アクセス済“１”を示すアクセス情報の数が第１閾値以上である場合（ステップＳ１０６：Ｙｅｓ）、ステップＳ１０８へ進む。ステップＳ１０８では、決定部２６が、ステップＳ１０４で特定したエントリに含まれるページ番号によって識別される第１領域内のデータの転送先を、現在記憶されている記憶部１４（例えば、第２記憶部１４Ｂ）より処理回路１２によるアクセス速度の速い他の種類の記憶部１４（例えば、第１記憶部１４Ａ）に決定する（ステップＳ１０８）。
【００８６】
次に、転送部２８が、ステップＳ１０８で決定された記憶部１４（例えば、第１記憶部１４Ａ）へ、ステップＳ１０４で特定したエントリに含まれるページ番号によって識別される第１領域内のデータを転送する（ステップＳ１１０）。
【００８７】
次に、転送部２８が、ページテーブルにおける、ステップＳ１１０で転送した第１領域の論理アドレスに対応する物理アドレスを、ステップＳ１１０で転送した転送先の記憶部１４（例えば、第１記憶部１４Ａ）の格納先を示す物理アドレスに更新する（ステップＳ１１２）。このため、処理回路１２は、該データにアクセスする場合には、第１記憶部１４Ａにアクセスすることで、該データにアクセスすることが可能となる。そして、後述するステップＳ１２２へ進む。
【００８８】
なお、ステップＳ１１２のページテーブルの更新は、決定部２６がステップＳ１０８の処理の後に実行してもよい。また、ステップＳ１１２では、転送部２８は、処理回路１２が該データにアクセスする場合に第１記憶部１４Ａに直接アクセスすることが可能となる処理を実行すればよく、ページテーブルを更新する処理に限定されない。
【００８９】
一方、上記ステップＳ１０６の判断により、アクセス済“１”を示すアクセス情報の数が第１閾値未満と判断すると（ステップＳ１０６：Ｎｏ）、ステップＳ１１４へ進む。そして、決定部２６は、ステップＳ１０４で特定したエントリにおけるアクセス管理情報について、アクセス済“１”を示すアクセス情報の数が第２閾値未満であるか否かを判断する（ステップＳ１１４）。第２閾値以上である場合（ステップＳ１１４：Ｎｏ）、後述するステップＳ１２２へ進む。第２閾値未満である場合（ステップＳ１１４：Ｙｅｓ）、ステップＳ１１６へ進む。
【００９０】
ステップＳ１１６では、決定部２６が、ステップＳ１０４で特定したエントリに含まれるページ番号によって識別される第１領域内のデータの転送先を、現在記憶されている記憶部１４（例えば、第２記憶部１４Ｂ）に決定する（ステップＳ１１６）。なお、上述したように、該ページ番号によって識別される第１領域内のデータが第１記憶部１４Ａに記憶されている場合には、決定部２６は、第２記憶部１４Ｂを転送先に決定すればよい。
【００９１】
そして、転送部２８は、ステップＳ１１６で決定された記憶部１４（例えば、第２記憶部１４Ｂ）へ、ステップＳ１０４で特定したエントリに含まれるページ番号によって識別される第１領域内のデータを転送する（ステップＳ１１８）。
【００９２】
次に、転送部２８が、ページテーブルにおける、ステップＳ１１８で転送した第１領域の論理アドレスに対応する物理アドレスを、ステップＳ１１８で転送した転送先の記憶部１４（例えば、第２記憶部１４Ｂ）の格納先を示す物理アドレスに更新する（ステップＳ１２０）。
【００９３】
このため、処理回路１２は、該データにアクセスする場合には、第２記憶部１４Ｂにアクセスすることで、該データにアクセスすることが可能となる。そして、ステップＳ１２２へ進む。なお、ステップＳ１１８の処理前に、既に第２記憶部１４Ｂに該データが記憶されている場合には、ステップＳ１１８およびステップＳ１２０の処理は省略してよい。
【００９４】
なお、ステップＳ１２０のページテーブルの更新は、決定部２６がステップＳ１１６の処理の後に実行してもよい。また、ステップＳ１２０では、転送部２８は、処理回路１２が該データにアクセスする場合に第２記憶部１４Ｂに直接アクセスすることが可能となる処理を実行すればよく、ページテーブルを更新する処理に限定されない。
【００９５】
ステップＳ１２２では、更新部２４が、管理テーブル３０Ａにおける、ステップＳ１０４で特定したエントリを解放する（ステップＳ１２２）。そして、更新部２４は、新エントリを管理テーブル３０Ａに登録する（ステップＳ１２４）。ステップＳ１２４では、更新部２４は、ステップＳ１００で受付けたメモリアクセス要求に示される第１領域のページ番号と、全ての第２領域のアクセス情報をアクセス未“０”としたアクセス管理情報と、を対応づけた、新エントリを登録する。
【００９６】
次に、更新部２４は、管理テーブル３０Ａにおける、ステップＳ１００で受付けたメモリアクセス要求に示されるアクセス対象の第１領域を示すページ番号に対応する、該メモリアクセス要求に示されるアクセス対象の第２領域のアクセス情報を、アクセス済“１”に更新する（ステップＳ１２６）。そして、本ルーチンを終了する。
【００９７】
以上説明したように、本実施の形態の管理装置１８は、処理回路１２による複数種類の記憶部１４に対するアクセスを管理する。記憶部１４は、複数の第１領域を含み、第１領域は複数の第２領域を含む。管理装置１８は、管理部２２を備える。管理部２２は、管理テーブル３０Ａを管理する。管理テーブル３０Ａは、第１領域の識別情報（ページ番号）と、第１領域に含まれる複数の第２領域の各々ごとに、第２領域が処理回路１２によってアクセス済であるか否かを示すアクセス情報を規定したアクセス管理情報と、を対応付けたテーブルである。
【００９８】
このように、本実施の形態の管理装置１８では、複数種類の記憶部１４の各々について、第１領域より細かい単位である第２領域ごとに、処理回路１２によってアクセス済であるか否かを示すアクセス情報を管理する。このため、複数種類の記憶部１４の各々について、ページなどの第１領域内の、何れの第２領域に処理回路１２によるアクセスがなされたか、を容易に管理することができる。
【００９９】
従って、本実施の形態の管理装置１８は、複数種類のメモリ（記憶部１４）に対するデータの割当てに用いる情報を提供することができる。
【０１００】
ここで、複数種類の記憶部１４をメインメモリとして用いる場合、処理回路１２によるアクセスのパターンに応じて、複数種類の記憶部１４の各々にデータを割当てて用いることが要求される場合があった。
【０１０１】
例えば、ＳＣＭはＤＲＡＭより大容量であるが、アクセス速度が遅い。このため、処理回路１２によるアクセスの特性に合わせて、データを複数種類の記憶部１４に割当てて格納すれば、処理回路１２は、効率よくデータ処理を行うことが可能となる。
【０１０２】
例えば、処理回路１２によるアクセスのローカリティが低くサイズの大きいデータを、ＳＣＭに配置し、処理回路１２がＳＣＭにダイレクトにアクセスする。すると、処理回路１２は、効率よくデータ処理を行うことが可能となる。また、アクセスのローカリティの高いデータを、ＳＣＭよりアクセス速度の速いＤＲＡＭに配置し、処理回路１２がＤＲＡＭ上のデータにアクセスする。すると、処理回路１２は、効率よくデータ処理を行うことが可能となる。
【０１０３】
しかし、従来では、複数種類の記憶部１４に対して、どのようにデータを分散させて格納すれば効率が良いかを判断するのは困難な作業であり、複雑なプログラミングが必要であった。
【０１０４】
また、アクセス済であるか否かを示す情報を、ページ単位でページテーブルに記録する方法では、複数種類のメモリに対するデータの割当てに用いる情報としては不十分であり、処理回路１２によるアクセスのパターンを詳細に検出することの可能な情報を提供することは困難であった。
【０１０５】
一方、本実施の形態の管理装置１８では、複数種類の記憶部１４の各々について、第１領域より細かな粒度（例えば、６４バイトのキャッシュラインのサイズなど）である第２領域ごとに、処理回路１２によるアクセスのパターンを示すアクセス管理情報を管理する。
【０１０６】
このため、本実施の形態の管理装置１８は、複数種類のメモリに対するデータの割当てに用いる情報を提供することができる。
【０１０７】
（変形例１）
なお、上記実施の形態では、管理テーブル３０Ａが、論理アドレスによって表される第１領域の識別情報（ページ番号）と、アクセス管理情報と、を対応づけたものである場合を説明した。
【０１０８】
しかし、管理テーブル３０Ａは、更に、物理アドレスを対応づけたものであってもよい。
【０１０９】
図５は、本実施の形態の管理テーブル３０Ｂのデータ構成の一例を示す模式図である。管理テーブル３０Ｂは、第１領域の識別情報としての論理アドレスと、記憶部１４における該第１領域の物理アドレスと、アクセス管理情報と、を対応づけた構成であってもよい。この場合、管理情報記憶部３０は、管理テーブル３０Ａに代えて管理テーブル３０Ｂを記憶すればよい（図１参照）。
【０１１０】
管理テーブル３０Ｂを、図５に示すデータ構成とすることで、管理テーブル３０Ａに、ページテーブルのキャッシュとして機能するＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）を統合して管理することができる。すなわち、論理アドレスを検索キーとして用いることで、ＴＬＢの有する物理アドレスと、アクセス管理情報と、の双方を検索することが可能となる。このため、管理テーブル３０Ｂを用いることで、論理アドレスによって表されるページ番号を検索キーとしてエントリを検索する、連想記憶のためのハードウェアを共有することが可能となる。
【０１１１】
（変形例２）
図６は、本変形例の情報処理装置１０Ａの一例を示す模式図である。図６に示すように、情報処理装置１０Ａの処理回路１２Ａが、キャッシュメモリ１６および管理装置１８を備えた構成であってもよい。処理回路１２Ａは、内部にキャッシュメモリ１６および管理装置１８を備えた点以外は、上記実施の形態の処理回路１２と同様である。
【０１１２】
（変形例３）
図７は、本変形例の情報処理装置１０Ｂの一例を示す模式図である。図７に示すように、管理装置１８Ａが、キャッシュメモリ１６、アクセス制御部２０、管理部２２、および記憶部１４を備えた構成であってもよい。
【０１１３】
以上、本発明の実施の形態および変形例を説明したが、これらの実施の形態および変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施の形態および変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施の形態やその変形例は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１４】
１０、１０Ａ、１０Ｂ  情報処理装置
１２、１２Ａ  処理回路
１４  記憶部
１８，１８Ａ  管理装置
２２  管理部
２４  更新部
２６  決定部
２８  転送部
【図１】
2019164411.tif 000003
【図２】
2019164411.tif 000004
【図３】
2019164411.tif 000005
【図４】
2019164411.tif 000006
【図５】
2019164411.tif 000007
【図６】
2019164411.tif 000008
【図７】
2019164411.tif 000009