(57)【要約】【課題】  ページヒットの確率が大きく変動するシステムにおいて、適切なページポリシーを選択する。【解決手段】  統計データ採取部３は、メモリトランザクションのメモリアクセス先の前後関係についての統計データを採取し、メモリアクセスが局所的であるか広域的であるかを判断する。コマンドディスパッチャ部６は、この判断結果に応じて基本的なページポリシーを決定する。また、統計データ採取部３は、現在キューイングされているメモリトランザクションのメモリアクセスが局所的であるか広域的であるかを判断し、これにより、コマンドディスパッチャ部６は、短期的なページポリシーを決定する。コマンドディスパッチャ部６は、基本的なページポリシーを短期的なページポリシーにより適応的に変更して、オープンページポリシーまたはクローズドページポリシーの指示を含むコマンド発行要求をコマンド発生部８へ発行する。【選択図】    図１
2006343947.tif 000002
【特許請求の範囲】
【請求項１】
メモリアクセスの要求を調停するメモリアクセス調停手段を有するメモリアクセス制御装置であって、
メモリトランザクションのメモリアクセス先の前後関係についての統計データを採取する統計データ採取手段と、
上記統計データ採取手段によって採取された統計データにより、メモリアクセスが局所的であるか、広域的であるかを判断する判断手段と、
前記判断手段の判断結果に応じてメモリアクセスの方法をオープンページポリシーまたはクローズドページポリシーのいずれとするかを決定するアクセス方法決定手段と、
を備えることを特徴とするメモリアクセス制御装置。
【請求項２】
前記メモリアクセス調停手段は、調停されたメモリトランザクションをキューイングバッファに格納し、
前記アクセス方法決定手段は、前記キューイングバッファに格納されている前記メモリトランザクションのメモリアクセス先の前後関係をもとに、メモリアクセスの方法をオープンページポリシーまたはクローズページポリシーのいずれとするかを決定する、
ことを特徴とする請求項１に記載のメモリアクセス制御装置。
【請求項３】
前記アクセス方法決定手段は、前記メモリアクセスの方法を、メモリアクセスが局所的である場合はオープンページポリシーに、広域的である場合はクローズドページポリシーに決定する、
ことを特徴とする請求項１または請求項２に記載のメモリアクセス制御装置。
【請求項４】
メモリアクセス調停手段を有するメモリアクセス制御装置に用いられるコンピュータプログラムであって、
メモリトランザクションのメモリアクセス先の前後関係についての統計データを採取するステップと、
採取された統計データにより、メモリアクセスが局所的であるか、広域的であるかを判断するステップと、
判断結果に応じてメモリアクセスの方法をオープンページポリシーまたはクローズドページポリシーのいずれとするかを決定するステップと、
をコンピュータに実行させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセス制御装置及びコンピュータプログラムに関する。
【背景技術】
【０００２】
ＤＲＡＭは、データを読み出す際、指定された行アドレスに対応するメモリセルの内容をバッファにロードし、このバッファ内の指定された列アドレスに対してデータの書き込みあるいは読み出を行う。そして、バッファ内へのデータに対する書き込みあるいは読み出しが終了すると、ＤＲＡＭは、プリチャージを行い、バッファからメモリセルへ情報を書き戻す。ＤＲＡＭへのアクセスが完了したときに、アクセス完了後すぐにプリチャージし、アクセスしたバンクをクローズして終了することをクローズドページポリシーという。また、アクセスしたバンクをクローズせずに終了し、明示的な指示があった場合にプリチャージすることをオープンページポリシーという。
従来は、メモリアクセスの効率（実効帯域）を高めるために、メモリアクセスの局所性に着目してメモリシステムをオープンページポリシーで構成するかクローズドページポリシーで構成するかを設計段階などにおいて選択していた。なお、メモリアクセスが局所的であるとは、同じメモリデバイスの同じ行アドレスへアクセスされることをいう。また、同じメモリデバイスの異なる行にアクセスされるか、異なるメモリデバイスにアクセスされることをメモリアクセスが広域的であるという。
一方、特許文献１には、次のページがヒットするかどうかを予測することにより、アクセスしたバンクをクローズして終了するか、クローズせずに終了するかを決定し、メモリアクセス効率を向上させる技術について記載されている。ページがヒットする（ページヒット）とは、直前にバッファに読み出された行アドレスと同じ行アドレスにアクセスすることをいう。また、異なる行アドレスにアクセスすることをミスヒットという。
【特許文献１】特開２００４−２９５３２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
メモリセルからバッファへのデータの読み出し、及び、バッファからメモリセルへのデータの書き戻しには、時間（コスト）がかかるため、同じ行アドレスのメモリセルへのアクセスが行われる場合には、都度プリチャージを行わないオープンページポリシーのほうが効率がよい。しかし、システムの動作モードなどにより、メモリアクセスの局所性が変動するようなシステムにおいてオープンページポリシーを選択した場合、メモリアクセスの局所性が高いときには、ページヒットする確率が高くなるため、メモリアクセス性能が高まる。逆に、メモリアクセスの局所性が低いときには、ページ競合（同一バンクの別ページへのアクセス）が発生する確率が高くなるため、メモリアクセス性能が低下する。一方、クローズドページポリシーを選択した場合、メモリアクセスの局所性が高いときには、ページヒットするようなシーケンスでプリチャージ時間分の待ち時間が発生するためにメモリアクセス性能が低下する。逆に、メモリアクセスの局所性が低いときには、別バンクアクセスのシーケンスが多いが、常にプリチャージされた状態からメモリアクセスを開始するのでプリチャージ時間を待つ必要がないため、メモリアクセス性能が高まる。
以上のようにメモリアクセスの局所性によって好適なページポリシーが異なるため、メモリアクセスの局所性が大きく変動するようなシステムではページポリシーをどちらかに決定することは非常に困難であった。また、特許文献１の技術においては、所定回数のメモリアクセスにおけるヒットの傾向のみを考慮して、クローズして終了するか、クローズせずに終了しているかを決定しており、ページヒットの確率が大きく変動する場合に、適切なポリシーを効率的に選択するのは困難であった。
【０００４】
本発明は、このような事情に鑑みてなされたもので、ページヒットの確率が大きく変動するシステムにおいて、適切なページポリシーを選択することができるメモリアクセス制御装置及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記した課題を解決するために本発明は、メモリアクセスの要求を調停するメモリアクセス調停手段を有するメモリアクセス制御装置であって、メモリトランザクションのメモリアクセス先の前後関係についての統計データを採取する統計データ採取手段と、上記統計データ採取手段によって採取された統計データにより、メモリアクセスが局所的であるか、広域的であるかを判断する判断手段と、前記判断手段の判断結果に応じてメモリアクセスの方法をオープンページポリシーまたはクローズドページポリシーのいずれとするかを決定するアクセス方法決定手段と、を備えることを特徴とするメモリアクセス制御装置である。
【０００６】
また、本発明は、上述するメモリアクセス制御装置であって、前記メモリアクセス調停手段は、調停されたメモリトランザクションをキューイングバッファに格納し、前記アクセス方法決定手段は、前記キューイングバッファに格納されている前記メモリトランザクションのメモリアクセス先の前後関係をもとに、メモリアクセスの方法をオープンページポリシーまたはクローズページポリシーのいずれとするかを決定する、ことを特徴とする。
【０００７】
また、本発明は、上述するメモリアクセス制御装置であって、前記アクセス方法決定手段は、前記メモリアクセスの方法を、メモリアクセスが局所的である場合はオープンページポリシーに、広域的である場合はクローズドページポリシーに決定する、ことを特徴とする。
【０００８】
また、本発明は、メモリアクセス調停手段を有するメモリアクセス制御装置に用いられるコンピュータプログラムであって、メモリトランザクションのメモリアクセス先の前後関係についての統計データを採取するステップと、採取された統計データにより、メモリアクセスが局所的であるか、広域的であるかを判断するステップと、判断結果に応じてメモリアクセスの方法をオープンページポリシーまたはクローズドページポリシーのいずれとするかを決定するステップと、をコンピュータに実行させることを特徴とするコンピュータプログラムである。
【発明の効果】
【０００９】
上記発明によれば、メモリアクセスの局所性や、ページヒット、ページ競合の確率が大きく変動するシステムにおいても、適切なページポリシーを選択することができるため、常に好適なメモリアクセス性能を実現できる。
【発明を実施するための最良の形態】
【００１０】
以下、図面を参照し、この発明の一実施形態について説明する。
図１は、本発明の一実施形態によるメモリアクセス制御装置の構成を示すブロック図である。このメモリアクセス制御装置は、例えば、複写機、プリンタ、ファクシミリ等の機能が使用可能なＭＦＰ（Multi Function Printer）などの画像データ処理装置に用いられる。メモリアクセス制御装置は、メモリデバイスであるＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）とのインタフェース（Ｉ／Ｆ）を有し、リフレッシュ部１、ホストインタフェース部２、統計データ採取部３、メモリアクセス調停部４、キューイングバッファ５、コマンドディスパッチャ部６、デバイスマネージャ部７、コマンド発生部８、ストローブ発生部９、ＯＰＢ（On-Chip Peripheral Bus）インタフェース部１０、及び、メモリクロック生成部１１を備える。
【００１１】
リフレッシュ部１は、メモリアクセス調停部４へＳＤＲＡＭのリフレッシュ要求を行う。ホストインタフェース部２は、メモリトランザクションの要求を行うホストのモジュールであり、ホストの各種要求をアビトレーションしてＳＤＲＡＭへのアクセス要求を発行する。メモリアクセス調停部４は、メモリアクセス要求を調停し、リフレッシュを行うか、あるいは、メモリトランザクションを発生させるかを決定する。メモリトランザクションを発生する場合、キューイングバッファ５へキューイングする。キューイングバッファ５は、トランザクションファイルであり、メモリトランザクションを保持する。統計データ採取部３は、ホストインタフェース部２からメモリアクセス調停部４へ発行されるメモリアクセス要求、メモリアクセス調停部４からキューイングバッファ５へキューイングされるメモリトランザクションから、メモリアクセス先の前後関係についての統計データを採取し、メモリアクセスが局所的であるか、広域的であるかを判断する。また、キューイングバッファ５内のトランザクションから、現在キューイングされているメモリアクセス要求のトランザクションについてメモリアクセスが局所的であるか、広域的であるかを判断する。
【００１２】
コマンドディスパッチャ部６は、キューイングバッファ５にキューイングされたトランザクションファイルについて、ＳＤＲＡＭに対してどのようなコマンドを発行するかを決定し、ＳＤＲＡＭに対するシーケンス等を制御する。例えば、一つのメモリに対して行（ＲＯＷ）アドレス／列（ＣＯＬ）アドレスを与える。デバイスマネージャ部７は、メモリデバイス（ＳＤＲＡＭ）、バンクの状態を内部的にミラーリングしてコマンドディスパッチャ部６へ通知し、コマンドをいつ発行できるかを調停する。コマンド発生部８は、コマンドディスパッチャ部６からのコマンド発生要求に応じてＳＤＲＡＭに対する信号を駆動する。
【００１３】
ストローブ発生部９は、コマンド発生部８が発行するリード／ライトのコマンドに同期してデータ転送のトリガを受け、データ転送のタイミング、すなわち、ホストインタフェース部２との間のリード／ライトデータの受け渡しのタイミングを司る。例えば、ＳＤＲＡＭからメモリリードするときには、ＳＤＲＭＡへメモリリードを与える。そして、ＳＤＲＡＭからリードデータが返ってくるタイミングに併せてホストに対してリードのストローブを返す。ＳＤＲＡＭへメモリライトするときには、ＳＤＲＡＭにライトのタイミングに併せてホストに対してライトデータのストローブを与え、ライトするデータを引き出す。ＯＰＢインタフェース部１０は、各種設定を行うためのレジスタであり、設定レジスタのためのインタフェースと、実際の設定レジスタからなるモジュールである。メモリクロック生成部１１は、源発振器が発信する周波数からメモリクロック及びメモリインタフェースクロックを発生させる。
【００１４】
次に、メモリアクセス制御装置の動作について説明する。
画像データ処理装置は、ホストインタフェース部２を介してホストからのメモリアクセス要求を受ける。例えば、印刷を初めることを想定する。ＳＤＲＡＭ上には、スキャナで読み取った画像などのパターンがビットマップデータとして保持されている。印刷を始める場合、ＳＤＲＡＭにメモリにあるこのビットマップデータをリードするメモリトランザクションを発生させる。これにより、メモリアクセス調停部４によって、メモリトランザクションがキューイングバッファ５にキューイングされる。異なるマスタが、異なるメモリに対するアクセスを要求する場合、各マスタからのメモリアクセス要求は、メモリアクセス調停部４によって、例えばラウンドロビンなどにより調停される。
【００１５】
一方、統計データ採取部３は、ホストインタフェース部２からメモリアクセス調停部４へ発行されるメモリアクセス要求、メモリアクセス調停部４からキューイングバッファ５へ発行されるメモリトランザクションから、メモリトランザクションのメモリアクセス先の前後関係についての統計データを採取する。メモリトランザクションのメモリアクセス先の前後関係とは、ある１つのメモリアクセス要求のトランザクション（メモリトランザクション）に注目したときに、直前のメモリアクセス要求と同じアドレスにアクセスするか否か、すなわち、ページヒットするか否かを示す。統計データ採取部３は、単位時間あたりにページヒットするアクセス及びページヒットしないアクセスの数をカウントする。この単位時間は、キューイングバッファ５において１つのトランザクションファイルが保持される時間より長い時間とする。
【００１６】
統計データ採取部３は、採取した統計データからメモリアクセスが局所的であるか、あるいは、広域的であるかを判断する。メモリアクセスが局所的であると判断した場合、コマンドディスパッチャ部６は、ページヒットの確率が高いと判断し、基本的なページポリシーをオープンページポリシーと決定する。また、メモリアクセスが広域的であると判断した場合、コマンドディスパッチャ部６は、ページヒットの確率が低いか、ページ競合する可能性が高いと判断し、基本的なページポリシーをクローズドポリシーと決定する。なお、ページ競合とは、同じメモリの異なる行のメモリセルにアクセスすることをいう。
【００１７】
さらに、統計データ採取部３は、現在キューイングバッファ５に登録されているトランザクションファイルを参照し、現在キューイングされているメモリトランザクションについて、メモリアクセス先の前後関係を参照する。そして、キューイングされているメモリトランザクションファイルのアクセス先の前後関係が局所的であると判断された場合、コマンドディスパッチャ部６は、短期的なページポリシーをオープンポリシーとする。キューイングされているメモリトランザクションファイルのアクセス先の前後関係が広域的であると判断した場合、コマンドディスパッチャ部６は、短期的なページポリシーをクローズドポリシーとする。
【００１８】
コマンドディスパッチャ部６は、基本的には、現在の基本的なページポリシーに従って、クローズドページポリシー、あるいは、オープンページポリシーの指示を含むコマンド発行要求をコマンド発生部８へ発行する。コマンド発生部８は、コマンドディスパッチャ部６から指示されたページポリシーをオプションとして含むリード／ライト等のコマンドをＳＤＲＡＭへ発行する。しかし、短期的なページポリシーにより適応的に基本的なページポリシーを変更する場合、コマンドディスパッチャ部６は、基本的なページポリシーに関わらず、短期的なページポリシーに従って、クローズドページポリシー、あるいは、オープンページポリシーの指示を含むコマンド発行要求をコマンド発生部８へ発行する。コマンド発生部８は、コマンドディスパッチャ部６から指示されたページポリシーをオプションとして含むリード／ライト等のコマンドをＳＤＲＡＭへ発行する。
【００１９】
図２〜図４は、上記制御をソフトウェアにより実現する場合のメモリアクセス制御装置の動作を示す。
図２において、統計データ採取部３は、メモリトランザクションのメモリアクセス先の前後関係についての統計データを採取し、この統計データからメモリアクセスが局所的であるか、広域的であるかを判断する（ステップＳ１１０）。コマンドディスパッチャ部６は、メモリアクセスが局所的であるか広域的であるかにより、基本的なページポリシーをオープンページポリシーとするかクローズドポリシーとするかを決定する（ステップＳ１２０）。
【００２０】
一方、図３において、統計データ採取部３は、現在キューイングされているメモリトランザクションのメモリアクセスが局所的であるか、広域的であるかを判断する（ステップＳ２１０）。コマンドディスパッチャ部６は、メモリアクセスが局所的であるか広域的であるかにより、短期的なページポリシーをオープンページポリシーとするかクローズドポリシーとするかを決定する（ステップＳ２２０）。
【００２１】
図４において、メモリアクセスのコマンドを発行する際、コマンドディスパッチャ部６は、基本的なページポリシーを短期的なページポリシーに変更する場合（ステップＳ３１０：Ｙｅｓ）、短期的なページポリシーの指示を含むコマンド発行要求をコマンド発生部８へ発行する（ステップＳ３２０）。また、基本的なページポリシーを変更しない場合（ステップＳ３１０：Ｎｏ）、基本的なページポリシーの指示を含むコマンド発行要求をコマンド発生部８へ発行する（ステップＳ３３０）。コマンド発生部８は、コマンドディスパッチャ部６から指示されたページポリシーをオプションとして含むリード／ライト等のコマンドをＳＤＲＡＭへ発行する。
【００２２】
上記実施の形態によれば、ある程度長い時間（システムのメモリアクセスの局所性の変動の速度による）のメモリアクセス統計データをもとに、基本的なページポリシーをオープンページポリシーとしてアクセスするか、クローズドページポリシーとしてアクセスするかを動的に変更するとともに、メモリトランザクションがキューイングバッファに蓄積される範囲内の短時間におけるメモリアクセスシーケンスをもとに、メモリアクセスをページオープンで終了するかページクローズで終了するかを選択する。
【００２３】
以上、本発明の実施の形態について説明したが、メモリアクセス制御装置の各部は、専用のハードウェア（例えば、ワイヤードロジック等）により実現されるものであってもよく、また、メモリおよびＣＰＵ（中央処理装置）により構成され、各部の機能を実現するためのプログラムをメモリからロードして実行することによりその機能を実現させるものであってもよい。また、メモリアクセス制御装置の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、メモリアクセス制御装置の各部に必要な処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【００２４】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの（伝送媒体ないしは伝送波）、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態によるメモリアクセス制御装置の構成を示すブロック図である。
【図２】メモリアクセス制御装置の処理フローである。
【図３】メモリアクセス制御装置の処理フローである。
【図４】メモリアクセス制御装置の処理フローである。
【符号の説明】
【００２６】
１・・・リフレッシュ部
２・・・ホストインタフェース部
３・・・統計データ採取部（統計データ採取手段、判断手段）
４・・・メモリアクセス調停部（メモリアクセス調停手段）
５・・・キューイングバッファ
６・・・コマンドディスパッチャ部（アクセス方法決定手段）
７・・・デバイスマネージャ部
８・・・コマンド発生部
９・・・ストローブ発生部
１０・・・ＯＰＢインタフェース部
１１・・・メモリクロック生成部
【図１】
2006343947.tif 000003
【図２】
2006343947.tif 000004
【図３】
2006343947.tif 000005
【図４】
2006343947.tif 000006