(57)【要約】【課題】記憶容量（メモリ）が二つ以上あるシステムにおいて、メモリの使用に関して実行コードの配置が一意的であり、システムの実行中に動的に変化するメモリのアクセス頻度などのメモリの使用状況を考慮した最適メモリ配置演算装置を提供する。【解決手段】メモリのページ単位での使用頻度を監視するアクセス頻度監視部と、アクセス頻度監視部からの情報を入力としてメモリの配置変換情報を決定するメモリ配置変換ポリシー決定部とを備え、メモリ配置変換ポリシー決定部の情報に基づき、メモリの使用頻度に応じたメモリの再配置と、それに対応するようにメモリマネージメントユニットのページテーブルのアドレス情報を書き換え、メモリのページ情報を適切にコピーし、メモリの使用頻度に応じたメモリの再配置とアドレス変換を行うことで、システムの実行速度や省電力性を向上させる。【選択図】図１
2005216053.tif 000002
【特許請求の範囲】
【請求項１】
メモリが１つ以上あり、ＣＰＵから前記メモリへのアクセスにメモリマネージメントユニット（ＭＭＵ）を備えるシステムにおけるメモリ配置演算装置であって、
前記メモリのアクセス頻度が多いページを判定するアクセス頻度監視部と、
前記アクセス頻度監視部が判定した結果の情報を受け取り、前記受け取った情報から決まったポリシーに従って、前記メモリ上のデータの配置変換を決定し、メモリの配置変換情報を出力するメモリ配置変換ポリシー決定部と、
前記メモリ配置変換ポリシー決定部から出力される前記配置変換情報を受け取り、ＭＭＵのページテーブルの情報を前記配置変換情報に対応するように書き換えるテーブル書換え部と、
前記メモリ配置変換ポリシー決定部から出力される前記配置変換情報を受け取り、メモリのページに記録されている情報を前記配置変換情報に対応するようにコピーを行うメモリコピー部とを具備することを特徴とする最適メモリ配置演算装置。
【請求項２】
前記メモリ配置変換ポリシー決定部は、前記各メモリへのアクセス速度を把握し、前記ポリシーとして前記アクセス速度を用いることを特徴とする請求項１記載の最適メモリ配置演算装置。
【請求項３】
前記テーブル書換え部は、ＭＭＵのページテーブルの情報を書き換える頻度を自由に設定可能であることを特徴とする請求項１記載の最適メモリ配置演算装置。
【請求項４】
メモリの各ページ毎のアクセス数を集計し、前記集計したアクセス数を管理するページアクセスチェック部を具備し、
前記アクセス頻度監視部は、前記ページアクセスチェック部が管理する情報に基づいてアクセス頻度の多いページを判定することを特徴とする請求項１記載の最適メモリ配置演算装置。
【請求項５】
前記ページアクセスチェック部は、メモリのページのページアドレスとアクセス数の関係をテーブルとして管理することを特徴とする請求項４記載の最適メモリ配置演算装置。
【請求項６】
前記メモリコピー部は、必要に応じて配置変換前のページに記憶されている情報をメモリから消去することを特徴とする請求項１記載の最適メモリ配置演算装置。
【請求項７】
ＣＰＵからメモリへのアクセスがキャッシュにヒットしない時のバスのアクセス数をカウントし、前記カウントしたアクセス数を管理するバスアクセスチェック部を具備し、
前記アクセス頻度監視部は、前記バスアクセスチェック部が管理する情報に基づいてアクセス頻度の多いページを判定することを特徴とする請求項１記載の最適メモリ配置演算装置。
【請求項８】
前記バスアクセスチェック部は、メモリのページのページアドレスとキャッシュミスヒット時のアクセス数の関係をテーブルとして管理することを特徴とした請求項７記載の最適メモリ配置演算装置。
【請求項９】
前記ページアクセスチェック部は、一定期間毎におけるメモリの各ページへのアクセス数をカウントし、その情報を管理することを特徴とした請求項４に記載の最適メモリ配置演算装置。
【請求項１０】
前記バスアクセスチェック部は、一定期間毎におけるメモリの各ページへのキャッシュミスヒット時のアクセス数をカウントし、その情報を管理することを特徴とした請求項７に記載の最適メモリ配置演算装置。
【請求項１１】
前記ページアクセスチェック部は、管理するページ単位を自由に設定できることを特徴とした請求項４記載の最適メモリ配置演算装置。
【請求項１２】
前記メモリ配置変換ポリシー決定部は、前記各メモリの消費電力に関する情報を把握し、前記ポリシーとして前記消費電力に関する情報を用いることを特徴とする請求項１記載の最適メモリ配置演算装置。
【請求項１３】
メモリが１つ以上あり、ＣＰＵから前記メモリへのアクセスにメモリマネージメントユニット（ＭＭＵ）を備えるシステムにおける最適メモリ配置方法であって、
一つ以上のメモリのページ単位でのアクセス頻度を把握するステップと、
前記把握した情報から決まったポリシーに従って、前記メモリ上のデータの配置変換を決定するステップと、
ＭＭＵのページテーブルの情報を前記決定した配置変換の情報に対応するように書き換えるステップと、
メモリのページに記憶されている情報を前記配置変換の情報に対応するように書き換えるステップを備えることを特徴とする最適メモリ配置方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は中央演算処理装置（ＣＰＵ）を備えたプロセッサシステムに係わり、メモリが１つ以上あるシステムにおいて、システムの実行速度の向上とメモリの有効利用とを行う最適メモリ配置演算装置及び最適メモリ配置方法に関するものである。
【背景技術】
【０００２】
計算機装置（コンピュータ）は、大型計算機やパーソナルコンピュータのような形態のみならず、各種家電機器、携帯端末などの分野でも利用が進んでいる。計算機装置は、ＣＰＵを備えたプロセッサシステムであって、システム実行時のメモリの使用に関する技術として、同一バンクの同一ページか否かを判定することにより、アドレス変換動作とページヒット判定動作とを並列して行い、メモリアクセス速度の高速化を実現し、システムの実行速度の向上を図る技術があった（特許文献１参照）。
【特許文献１】特開平９−１７１４８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、前記従来の構成では、メモリアクセス先（メモリアドレス）のみに関連しており、システムの実行中に動的に変化するメモリのアクセス頻度などのメモリの使用状況を考慮して、メモリの最適配置を行うことができないという課題を有していた。
【０００４】
本発明は、メモリが１つ以上あるシステムにおいて、各メモリの使用状況を把握し、最適にメモリの配置を変更することが可能な最適メモリ配置演算装置及び最適メモリ配置方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
前記課題を解決するために、本発明は、メモリのページ単位での使用頻度を監視するアクセス頻度監視部と、アクセス頻度監視部からの情報を入力としてメモリの配置変換情報を決定するメモリ配置変換ポリシー決定部とを備え、メモリ配置変換ポリシー決定部の情報に基づき、メモリの使用頻度に応じたメモリの再配置と、それに対応するようにメモリマネージメントユニットのページテーブルのアドレス情報を書き換え、メモリのページ情報を適切にコピーする。これにより、動的に変化するメモリの使用状況に基づいた最適メモリ配置を実現することが可能となる。
【発明の効果】
【０００６】
本発明により、メモリの使用に関して動的に変化するメモリの使用状況を把握することが可能となり、メモリの使用状況に応じて最適にメモリの配置を変更することで、システムの実行速度や省電力性能を向上させる効果が得られる。
【発明を実施するための最良の形態】
【０００７】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【０００８】
図１は本発明の一実施の形態における最適メモリ演算装置の構成を示す図である。
【０００９】
最適メモリ演算装置は、ＣＰＵ１１と、メモリマネージメントユニット（ＭＭＵ）１２と、リードオンリーメモリ（ＲＯＭ）１３と、ランダムアクセスメモリ（ＲＡＭ）１４と、ページアクセスチェック部１５と、アクセス頻度監視部１６と、メモリ配置ポリシー決定部１７と、テーブル書換え部１８と、メモリコピー部１９と、バスアクセスチェック部２０とを備えている。なお、ここでは、メモリとしてＲＯＭ１３とＲＡＭ１４を備えるとしたが、フラッシュメモリなどの任意のタイプのものを使用することができる。また、１つ以上のメモリを備えていればよく、同種の複数のメモリや、異なる種類のメモリの組み合わせであってもよい。さらに、ＣＰＵ１１は、ＭＭＵ１２を介してメモリにアクセスする。
【００１０】
ＭＭＵ１２は、ＣＰＵ１１からメモリにアクセスする際に使用するアクセス情報である論理アドレスと、実際にアクセスする先であるメモリ上の物理アドレスの対応を情報として保持するページテーブル２１を持ち、ＣＰＵ１１からのアクセスを、実際の物理アドレスへのアクセスへと変換して、メモリへのアクセスを行う。
【００１１】
ＲＯＭ１３とＲＡＭ１４は、ＭＭＵ１２を経由してＣＰＵ１１からアクセスされる。一般にＲＯＭ１３とＲＡＭ１４のデータへのアクセス速度を比較した場合、ＲＡＭ１４の方がデータへのアクセス速度が速い。また、１つのメモリ（ＲＯＭ１３またはＲＡＭ１４）は、１つ以上のメモリページの集合として構成しているものとする。
【００１２】
ページアクセスチェック部１５は、メモリ（ＲＯＭ１３またはＲＡＭ１４）の各ページ毎のアクセス数を集計し、その情報を保持する。具体例を以下に示す。各ページ毎にフラグとアクセス数を保持しており、ページにアクセスがあるとそのページに対するフラグを１に設定し、Ｔｉｃｋ毎に全メモリに対してフラグが１であるページについてアクセス数を１インクリメントし、そのタイミングで全フラグを０に設定する。これを繰返すことにより、ページ毎にフラグが１に設定された回数をカウントした値をアクセス数として保持する。例えば、メモリのページのページアドレスとアクセス数の関係をテーブルとして管理する。また、別の具体例では、各ページ毎にアクセス数を保持しており、Ｔｉｃｋ割り込み（タイマー割り込み）が入るタイミングで、その時にアクセスしていたページのアクセス数を１インクリメントする。これを繰返すことにより、ページ毎にＴｉｃｋ割り込みが入るタイミングでアクセスしていた回数をカウントした値をアクセス数として保持する。また、別の具体例では、各ページ毎にアクセス数を保持しており、一定期間ごとにスタックを見て、スタックされているページのアクセス数を１インクリメントする。これを任意のタイミングで、任意の期間実施することにより、スタックされている回数をカウントした値をアクセス数として保持する。以上により、ページアクセスチェック部１５は、ページ毎のアクセス数を保持することができる。なお、アクセス数カウントするページ単位を自由に設定可能としてもよい。
【００１３】
バスアクセスチェック部２０は、ＣＰＵ１１からのメモリアクセスがキャッシュヒットせずにメモリに読みに行く場合のバスのアクセス数をカウントし、その情報を保持する。例えば、メモリのページのページアドレスとキャッシュミスヒット時のアクセス数の関係をテーブルとして管理する。具体例を以下に示す。各ページ毎のアクセス数を保持しており、メモリのある１ページが別のページに切り替わるタイミングでバスのアクセス数をリセットし、割り込みがあるまでそのページへのアクセス数をカウントする。割り込みが入ったときに、カウントしたそのページへのアクセス数をそのページのアクセス数として保持する。これにより、キャッシュヒットせずにアクセスした回数が多いページを判定が可能となる。なお、アクセス数をカウントする１ページ当たりのページサイズはコンフィグレーション可能としてもよい。また、アクセス数が多いページ順にページのアドレス情報を保持し、その保持するページのアドレス情報の数はコンフィグレーション可能としてもよい。また、その保持しているページのアドレス情報は、設定可能な任意のタイミングで更新されてもよい。以上により、バスアクセスチェック部２０は、アクセス回数が多いページを動的に把握することが可能になる。
【００１４】
アクセス頻度監視部１６は、ページアクセスチェック部１５が保持する情報と、バスアクセスチェック部２０が保持する情報から、アクセス頻度の順位付けをする。なお、どちらか一方からの情報に基づいて順位つけを行ってもよいし、両方からの情報を利用してもよい。これにより、本発明の最適メモリ配置演算装置は、パージアクセスチェック部１５とバスアクセスチェック部２０の一方のみを備えた構成であってもよい。また、単にアクセス頻度（アクセス数）の順番に従って、順位付けを行うことだけでなく、ページの実行時間が早くなる割合での順位付けを行ってもよい。順位付けした結果は、例えば、ページアドレスの情報であって、即時にメモリ配置変換ポリシー決定部１７に通知してもよいし、テーブル化して保持しておき、必要なタイミングでメモリ配置変換ポリシー決定部１７に通知してもよい。
【００１５】
メモリ配置変換ポリシー決定部１７は、アクセス頻度監視部１６の情報を入力として、その情報から決まった条件（ポリシー）の元、メモリの配置変換情報（例えば、配置変換前のページのページアドレスと配置変換後のページのページアドレスの対応情報）を決定する。メモリの配置変換情報を決定する条件として、システムの実行速度の向上を重視した条件を採用する。例えば、ＲＯＭ１３において実行回数の多いページをＲＡＭ１４へと移動し、移動したページのデータは同機構により上書きされるまでＲＡＭ１４に残りつづける。また、メモリの配置変換情報を決定する条件として、システムの省電力性能の向上を重視した条件を採用してもよい。例えば、ＲＡＭ１４が２種類あるようなシステムにおいては、消費電力の大きいＲＡＭ１４のデータを全て別のＲＡＭ１４に移し、消費電力の大きなＲＡＭ１４への電力供給を断って消費電力の向上を図る。また、メモリの配置変換情報を決定する条件として、配置変換した結果によるシステムの実行速度の向上と、メモリの配置変換を実施することによるシステムの実行速度の低下について考慮した条件を採用してもよい。また、メモリの配置変換情報を決定する条件として、システムの実行速度向上とシステムのレスポンスタイムの向上について考慮した条件を採用してもよい。
【００１６】
テーブル書換え部１８は、メモリ配置変換ポリシー決定部１７が決定したメモリ配置変換情報を入力として、ＭＭＵ１２のページテーブル２１をメモリ配置変換に対応するように書き換える。つまり、配置変換前のページアドレスから配置変換後のページアドレスへの書き換えを行う。例えば、メモリ配置変換情報として、ＲＯＭ１３のアドレスＡ番地をＲＡＭ１４のアドレスＢ番地に配置する時、ＭＭＵ１２のページテーブル２１の論物変換において物理アドレスにＡ番地が設定されている箇所の物理アドレスをＢ番地に書き換える。
【００１７】
メモリコピー部１９は、メモリ配置変換ポリシー決定部１７が決定したメモリ配置変換情報を入力として、メモリ情報のコピーや削除を行う。つまり、メモリの配置変換前のページに記録されている情報を、配置変換後のページにコピーを行う。例えば、メモリ配置変換情報として、ＲＯＭ１３のアドレスＡ番地をＲＡＭ１４のアドレスＢ番地に配置するとき、ＲＯＭ１３のアドレスＡ番地の情報をＲＡＭ１４のアドレスＢ番地にコピーする。また、ＲＡＭ１４のアドレスＣ番地を、別のＲＡＭ１４のアドレスＤ番地に配置するとき、アドレスＣ番地の情報をアドレスＤ番地にコピーする。また、必要に応じて、変換前のページの情報をメモリから消去する。
【００１８】
以上により、本発明の最適メモリ配置演算装置は、メモリの使用状況に応じてメモリの最適配置を行うことが可能となる。次に、メモリ配置の最適化について具体的に説明する。
【００１９】
ＲＯＭ１３のアクセス回数が多いページをコピーするためにＲＡＭ１４領域を１ページ以上あらかじめ割り当てておき、この割り当てられたＲＡＭ１４のページにＲＯＭ１３のアクセス回数が多いページの情報をコピーする。これにより、データへのアクセス速度が速いＲＡＭ１４の利用頻度を増やすことになり、システムの実行速度を向上させることができる。なお、ＲＡＭ１４にあらかじめ割り当てておくページのページサイズはコンフィグレーション可能とする。ＲＯＭ１３からＲＡＭ１４へのページのコピーは、ＲＯＭ１３のアクセス数上位ページと、ＲＡＭ１４にすでにコピーされているＲＯＭ１３情報へのアクセス数上位ページを比較して決定する。その決定の仕方はコンフィグレーション可能とし、アクセス数上位から順番にＲＡＭ１４にページをコピーする。さらに、メモリのコピーにかかる時間などとのトレードオフを考慮すべく、ＲＯＭ１３のアクセス数上位ページと、ＲＡＭ１４のアクセス数上位ページにおいて、ＲＡＭ１４にすでにあるページに対しては重み付けをして順位付けしてもよい。
【００２０】
また、ＲＡＭ１４やＲＯＭ１３はページ毎にアクセスされるたびにインクリメントされる値（アクセス数）を持ち、この値に基づいてアクセス数が多いページを判定する。一定期間毎にその時点におけるＲＯＭ１３のページ内でアクセス数が最大のページを判定し、そのページの情報をＲＡＭ１４の決められた場所、または任意の場所にコピーする。また、ＣＰＵ１１からのアクセスがＲＯＭ１３からＲＡＭ１４に変更されるように、ＭＭＵ１２のページテーブル２１の内容を書き換える。これにより本来ＲＯＭ１３から実行されていたページをＲＡＭ１４から実行可能となり、システムの実行速度の向上を図ることができる。
【００２１】
また、ＲＡＭ１４やＲＯＭ１３はタイマー割り込みが入ったときにアクセスしていたページについてインクリメントする値（アクセス数）をページ毎に持ち、この値を一定期間以上サンプリングすることにより、その期間内において値の大きいページは比較的頻繁にアクセスされているページであると判断できる。これにより、そのページがＲＯＭ１３であれば、そのページをＲＡＭ１４にコピーし、ＭＭＵ１２のページテーブル２１の内容も変更することで、ＲＯＭ１３から実行していたページをＲＡＭ１４から実行可能となり、システムの実行速度の向上を図ることができる。また、値の大きいページがＲＡＭ１４である場合においても、そのページをアクセス速度が速い別のＲＡＭ１４にコピーすることで、システムの実行速度の向上を図ることができる。
【００２２】
図２は、本発明の一実施の形態における最適メモリ配置演算装置のメモリ配置の最適化の一例の処理の流れを示すフローチャートである。なお、ここでは、ページアクセスチェック部１５が保持する情報に基づいて、アクセス頻度を判断するものとし、バスアクセスチェック２０の動作については説明しない。
【００２３】
ＣＰＵ１１が、メモリ（ＲＯＭ１３、ＲＡＭ１４）上のデータにＭＭＵ１２を介してアクセスすると（Ｓ１０１がＹｅｓ）、ページアクセスチェック部１５がページ毎のアクセス数をカウントする（Ｓ１０２）。ページアクセスチェック部１５が、アクセス数のカウント期間が任意の一定期間を経過しているか否かを判定する（Ｓ１０３）。一定期間を経過していない場合（Ｓ１０３がＮｏ）、ステップＳ１０１から処理を繰り返す。
【００２４】
一定期間を経過している場合（Ｓ１０３がＹｅｓ）、アクセス頻度監視部１６は、ページアクセスチェック部１５が保持する情報から、アクセス頻度の順位を判定する（Ｓ１０４）。例えば、アクセス数が多いページを判定する。なお、ここでは、ページアクセスチェック部１５が一定期間の経過を判断するとしたが、これだけに限定せず、アクセス頻度監視部１６が一定期間の経過を判断してステップＳ１０４を開始してもよいし、他の処理部から通知してもよい。
【００２５】
次に、メモリ配置ポリシー決定部１７が、アクセス頻度監視部１６が保持する情報に基づき、メモリの配置変換情報を決定し、テーブル書換え部１８とメモリコピー部１９に決定した配置変換情報を通知する（Ｓ１０５）。
【００２６】
テーブル書換え部１８は、メモリ配置ポリシー決定部１７から通知された配置変換情報に基づき、ＭＭＵ１２のページテーブル２１を書換える（Ｓ１０６）。なお、現在のメモリ配置が最適な場合は、書換え処理は発生しない。メモリコピー部１９は、メモリ配置ポリシー決定部１７から通知された配置変換情報に基づき、必要に応じてページ情報のコピーを行う（Ｓ１０７）。なお、現在のメモリ配置が最適な場合は、書換えは発生しない。ステップＳ１０７の後は、ステップＳ１０１から処理を繰り返す。
【００２７】
以上の一連の流れにより、システムは実行される回数が多いページを、実行速度が向上するのに有効なメモリに配置できる。
【００２８】
なお、ここでは、一定期間毎に、アクセス頻度監視部１６がアクセス頻度を判断してメモリ配置の最適化処理（メモリコピーおよびテーブル書換え）を行うとしたが、アクセス頻度の判定タイミングとは別に、最適化処理の開始が要求されたタイミングで最適化処理を実行してもよい。
【００２９】
また、図２のフローチャートのステップＳ１０２とステップＳ１０４の処理において、ページアクセスチェック部１５をバスアクセスチェック部２０に変更することで、ページアクセスチェック部１５が保持する情報の代わりにバスアクセスチェック部２０が保持する情報に基づいてアクセス頻度を判断することが可能となる。
【産業上の利用可能性】
【００３０】
本発明にかかる最適メモリ配置演算装置は、システムの実行速度や省電力性能を向上させる効果を有し、計算機装置（コンピュータ）を用いるものであれば、幅広い分野において有用である。また、各種家電機器、携帯電話、産業機器などの組み込み機器等の用途にも使用できる。
【図面の簡単な説明】
【００３１】
【図１】本発明の一実施の形態における最適メモリ配置演算装置の構成の一例を示すブロック図
【図２】本発明の一実施の形態における最適メモリメモリ配置演算装置のメモリ配置最適化の処理の流れの一例を示すフローチャート
【符号の説明】
【００３２】
１１    ＣＰＵ
１２    メモリマネージメントユニット（ＭＭＵ）
１３    リードオンリーメモリ（ＲＯＭ）
１４    ランダムアクセスメモリ（ＲＡＭ）
１５    ページアクセスチェック部
１６    アクセス頻度監視部
１７    メモリ配置ポリシー決定部
１８    テーブル書換え部
１９    メモリコピー部
２０    バスアクセスチェック部
２１    ページテーブル
【図１】
2005216053.tif 000003
【図２】
2005216053.tif 000004