(57)【要約】【課題】  レイテンシが大きいメモリモジュールのページミスペナルティの発生を抑止し、メモリアクセスの性能低下を抑える。【解決手段】  メモリ制御回路２０１は、複数のメモリモジュール２０２〜２０５のアクセスに対するレイテンシを夫々保持し、複数のメモリモジュール２０２〜２０５のページの活性化及び非活性化を制御する際に、複数のメモリモジュール２０２〜２０５のレイテンシに基づいて、ページの活性化及び非活性化の制御方法を切り替える。【選択図】  図１
2006146340.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置であって、
前記複数のメモリモジュールのアクセスに対するレイテンシを夫々保持するレンテンシ保持手段と、
ページへのアクセスコマンド情報を受信し、前記複数のメモリモジュールのページの活性化及び非活性化を制御するページ制御手段とを有し、
前記ページ制御手段は、前記複数のメモリモジュールのレイテンシに基づいて、ページの活性化及び非活性化の制御方法を切り替えることを特徴とするメモリ制御装置。
【請求項２】
前記ページ制御手段は、アクセス対象のページが属するメモリモジュールが所定のレイテンシであって、前記アクセス対象のページと同一バンク内に活性化されているページが存在しない場合、前記アクセス対象のページを活性化するための制御のみを行い、その後、前記アクセス対象のページを非活性化するための制御は行わないことを特徴とする請求項１に記載のメモリ制御装置。
【請求項３】
前記ページ制御手段は、前記アクセス対象のページが属するメモリモジュールが前記所定のレイテンシより小さいレイテンシである場合、前記アクセス対象のページを活性化するための制御を行った後、前記アクセス対象のページを非活性化するための制御を行うことを特徴とする請求項２に記載のメモリ制御装置。
【請求項４】
同時に活性化するページの最大数を保持する活性化ページ最大数保持手段と、
現時点で活性化されているページの合計値を保持する活性化ページ計数保持手段と、
前記活性化ページ最大数保持手段に保持される前記最大数と、前記活性化ページ計数保持手段に保持される前記合計値とを比較する比較手段とを有し、
前記ページ制御手段は、前記比較手段による比較の結果、前記合計値と前記最大数とが等しい場合、現在活性化されているページのうちレイテンシが最も小さいメモリモジュールに属するページを非活性化するように制御した後、アクセス対象のページを活性化するように制御することを特徴とする請求項１に記載のメモリ制御装置。
【請求項５】
同時に活性化するページの最大数を保持する活性化ページ最大数保持手段と、
現時点で活性化されているページの合計値を保持する活性化ページ計数保持手段と、
前記活性化ページ最大数保持手段に保持される前記最大数と、前記活性化ページ計数保持手段に保持される前記合計値とを比較する比較手段と、
現在活性化されている各ページのアクセス頻度を保持するアクセス頻度保持手段と、
前記アクセス頻度に対して、該当するページが属するメモリモジュールのレイテンシに基づく重み付けを行う重み付け手段と有し、
前記ページ制御手段は、前記比較手段による比較の結果、前記合計値と前記最大数とが等しい場合、現在活性化されているページのうち、前記重み付け手段により重み付けされたアクセス頻度が最も小さいページを非活性化するように制御した後、アクセス対象のページを活性化するように制御することを特徴とする請求項１に記載のメモリ制御装置。
【請求項６】
同時に活性化するページの最大数を保持する活性化ページ最大数保持手段と、
現時点で活性化されているページの合計値を保持する活性化ページ計数保持手段と、
前記活性化ページ最大数保持手段に保持される前記最大数と、前記活性化ページ計数保持手段に保持される前記合計値とを比較する比較手段と、
前記複数のメモリモジュールのバンク毎のページ遷移頻度を保持するページ頻度保持手段と、
前記ページ遷移頻度に対して、該当するバンクが属するメモリモジュールのレイテンシに基づく重み付けを行う重み付け手段とを有し、
前記ページ制御手段は、前記比較手段による比較の結果、前記合計値と前記最大値とが等しい場合、現在活性化されているページのうち、前記重み付け手段により重み付けされたページ遷移頻度が最も大きいバンクに属するページを非活性化するように制御した後、アクセス対象のページを活性化するように制御することを特徴とする請求項１に記載のメモリ制御装置。
【請求項７】
前記ページ制御手段は、前記比較手段による比較の結果、前記合計値が前記最大数より小さい場合、現在活性化されているページを非活性化する制御を行うことなく、前記アクセス対象のページを活性化するように制御することを特徴とする請求項４乃至６の何れか１項に記載のメモリ制御装置。
【請求項８】
複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置であって、
前記複数のメモリモジュールのアクセスに対するレイテンシを夫々保持するレンテンシ保持手段と、
前記複数のメモリモジュールのページへのアクセスを制御する制御手段とを有し、
前記ページ制御手段は、前記複数のメモリモジュールのレイテンシに基づいて、ページオープンの状態を維持するオープンページモードとページクローズ状態を維持するクローズページモードの一方を選択することを特徴とするメモリ制御装置。
【請求項９】
複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置であって、
前記複数のメモリモジュールのアクセスに対するレイテンシを夫々保持するレンテンシ保持手段と、
ページへのアクセスコマンド情報を受信し、前記複数のメモリモジュールのページの活性化及び非活性化を制御するページ制御手段とを有し、
前記ページ制御手段は、前記複数のメモリモジュールのレイテンシに基づいて、非活性化するページを選択することを特徴とするメモリ制御装置。
【請求項１０】
複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置によるメモリ制御方法であって、
ページへのアクセスコマンド情報を受信し、前記複数のメモリモジュールのページの活性化及び非活性化を制御するページ制御ステップを含み、
前記ページ制御ステップでは、保持手段において前記複数のメモリモジュール毎に保持される前記複数のメモリモジュールのアクセスに対するレイテンシに基づいて、ページの活性化及び非活性化の制御方法を切り替えることを特徴とするメモリ制御方法。
【請求項１１】
請求項１０に記載のメモリ制御方法をコンピュータに実行させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメモリモジュールに対するアクセス制御が可能なメモリ制御装置及びメモリ制御方法に関するものである。
【背景技術】
【０００２】
一般に主記憶メモリとして使用されているＤＲＡＭ内のメモリセルはバンク、行、列に分割されており、バンクと行の組み合わせのページ単位で活性化を行い(ページオープン、オープン)、活性化を行った後に列アドレスに対してＲｅａｄ／Ｗｒｉｔｅのコマンドを発行する。ページオープンされているページはプリチャージコマンドを発行することでページの非活性化(ページクローズ、クローズ)を行う。
【０００３】
ページオープンの状態では、該当ページ内の列アドレスに対してはページオープンすること無くアクセスを行うことが可能であり、高速メモリアクセスが可能となる。バンク毎に活性化されるページは１つであり、同一バンクで別の行にアクセスする場合は、活性化されているページをクローズし、アクセスを発行するページを活性化してからアクセスを行う列にＲｅａｄ／Ｗｒｉｔｅコマンドを発行する。クローズ状態のページに対してアクセスを発行する場合は、ページをオープンしたのちにアクセスする列に対してＲｅａｄ／Ｗｒｉｔｅコマンドを発行する。
【０００４】
同一バンクで異なるページアクセスする場合、またページオープンされていないページに対してアクセスする場合をページミスといい、その際に要する時間、すなわちページをクローズしてオープンする間の時間、ページをオープンする時間をページミスペナルティと呼んでいる。
【０００５】
通常、ＳＤＲＡＭ／ＤＤＲ ＳＤＲＡＭは４〜８のバンクを持っている。複数のメモリモジュール、例えば４バンクのＤＲＡＭにより構成されるメモリモジュールを４つ接続した場合、同時に１６ページをオープン状態にしておくことが可能となる。
【０００６】
しかしながら、ページオープンの状態を維持する場合(オープンページモード)、その間該当ページに対して活性化する電力を消費することとなり、オープン状態のページを多く維持することが消費電力の増加をもたらす。対して、ページクローズ状態を維持すること(クローズページモード)はその分ページミスペナルティが多く発生し、消費電力の面で有利である反面、性能に影響を与えることとなる。
【０００７】
この消費電力と性能のバランスを考慮し、同時にオープンするページの最大数を制限し最大数ページがオープンしている状態で、オープンされていないページへアクセスを発行する場合に、オープン状態のページをクローズしてページをオープンする手法が広く使用されている。
【０００８】
オープン状態のページを置換する方法としては、その時点でオープンされているページで最もアクセスされていないページをクローズする手法(ＬＲＡ手法)や、最も古くにオープンされたページをクローズする手法(ＦＩＦＯ手法)などが挙げられる。
【０００９】
ＬＲＡ手法を用いることにより、頻繁にアクセスされるページに関してはオープン状態を保持することが可能であり、またＦＩＦＯ手法を用いることでメモリマスタが複数存在してそれぞれアクセスを発行する場合はある特定のページアクセスに限定されずに、平準的にメモリアクセスの高速化を図ることが可能となる。
【００１０】
【特許文献１】特開２００１−１６６９８５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、上記の手法はメモリコントローラからメモリモジュールへのアクセスレイテンシが均一の場合は一定の効果をあげることが出来るが、メモリコントローラに接続されるメモリモジュールのレイテンシがデバイスや物理的距離に依存して異なる場合には高速メモリアクセスの制限をもたらすことが考えられる。
【００１２】
具体的には、接続されるメモリモジュールでレイテンシの長いメモリに対するアクセスでページミスペナルティが加算される状況では、通常のペナルティに加えてレイテンシ分のペナルティが加算されるため、レイテンシの短いメモリモジュールへのアクセスでのページミス時に比べて性能の劣化が大きくなってしまう。
【００１３】
近年は、半導体技術の向上に伴い、プロセッサやＬＳＩ内部の動作周波数が飛躍的に高速化していく中で、ＬＳＩの外部に接続されるメモリ、特にＤＲＡＭを使用した主記憶メモリに対しても動作周波数の向上が要求され、近年メモリデバイスの高速化が進んでいる。
【００１４】
メモリデバイスを使用したメモリモジュールも高速化に応じて構造、構成の変更が必要となり、従来ＰＣ１３３等のメモリモジュールではUnbufferedの構成でコマンド、データともにコントローラから出力された信号がそのままメモリモジュール内のメモリデバイスに分配されても問題は生じなかったが、ＤＤＲ４００等のメモリモジュールではメモリモジュールを複数構成する際にコマンド系の信号が多くのメモリデバイスに分配されて供給されると基板上の信号の負荷が大きくなることから信号の伝播遅延が大きくなり、Unbufferedの構成では高速動作が保証できなくなるため、コマンド系信号を各メモリモジュール内に実装されたレジスタにてラッチし、各メモリデバイスに分配することにより基板上の信号負荷を低減することで高速動作を保証している。このときデータはコマンド系信号と比較し基板上の信号負荷が小さいため、高速動作に対する影響は小さかった。
【００１５】
しかしながら、ＤＤＲ２／ＤＤＲ３といった更なる高速化の実現を可能とするメモリデバイスを使用したメモリモジュールを複数構成したシステムを構築すると、データ信号の分配による基板上の負荷が無視できなくなり、高速動作に影響してしまう。
【００１６】
この高速動作を保証する仕組みとして、Point to Pointの高速シリアルインタフェース技術を利用し、コマンド、データを一旦メモリモジュール内のバッファでバッファリングを行い、該コマンド、データをメモリモジュール内の各メモリデバイスに分配し、後続に接続されるメモリモジュールへ伝送する仕組みが実現に向け検討されている。
【００１７】
本構成では接続されるメモリモジュールがシリアルに伝送されることになり、コマンドや書き込みデータはＬＳＩからの距離の遠いメモリモジュールへの到達サイクルが遅れ、また読み込みデータはＬＳＩからの距離の遠いメモリモジュールからのレイテンシが長くなる傾向にある。
【００１８】
以下、レイテンシの異なるメモリデバイスでのページミスペナルティの影響について説明する。例えばメモリから画像を入力し、メモリ上テーブル参照にて画像処理を行う場合、テーブル参照はランダムなアドレスにてアクセスを発行するためページミスが頻発し、画像のメモリからの入力は連続アクセスとなりページの遷移は少ない。
【００１９】
ＬＲＡ手法を適用すると、ランダムアクセスのページミスの遷移が頻発することにより、ページの置換が多く発生し、テーブル参照が集中した場合に入力画像のページ置換が発生する。このときメモリモジュール上のテーブルがレイテンシの小さいメモリにマッピングされ、レイテンシの大きいメモリモジュールに入力画像がマッピングされている場合、ページミスのペナルティとレイテンシの長さが加算されるため、性能の劣化が激しくなる。
【００２０】
ＦＩＦＯ手法においても、メモリモジュールからの画像入力処理が間欠的に行われると、画像へのアクセスのページミスの頻度が大きくなる。つまり、レイテンシの異なるメモリデバイスを接続しメモリアクセス制御を行う場合、特に読み込みデータに関してはアクセスするメモリデバイスによってレイテンシが長くなるとともに、レイテンシの大きなメモリデバイスにおいてページミスが頻発した場合、ページミスペナルティが更に加算されることになり性能の低下が大きくなってしまう。
【００２１】
前記ＬＲＡ手法やＦＩＦＯ手法を適用した場合、レイテンシに関係なくページがクローズされるため、レイテンシの大きいメモリデバイスへのアクセスでページの遷移が少ない場合においてもページがクローズされることとなり、その度毎にページミスペナルティとＲｅａｄアクセスのレイテンシが加算されることによって、レイテンシの大きいメモリデバイスに対するメモリアクセスの性能が著しく低下してしまうという課題が生じる。
【００２２】
そこで、本発明の目的は、レイテンシが大きいメモリモジュールのページミスペナルティの発生を抑止し、メモリアクセスの性能低下を抑えることにある。
【課題を解決するための手段】
【００２３】
本発明のメモリ制御装置の第１の態様は、複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置であって、前記複数のメモリモジュールのアクセスに対するレイテンシを夫々保持するレンテンシ保持手段と、ページへのアクセスコマンド情報を受信し、前記複数のメモリモジュールのページの活性化及び非活性化を制御するページ制御手段とを有し、前記ページ制御手段は、前記複数のメモリモジュールのレイテンシに基づいて、ページの活性化及び非活性化の制御方法を切り替えることを特徴とする。
【００２４】
本発明のメモリ制御装置の第２の態様は、複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置であって、前記複数のメモリモジュールのアクセスに対するレイテンシを夫々保持するレンテンシ保持手段と、前記複数のメモリモジュールのページへのアクセスを制御する制御手段とを有し、前記ページ制御手段は、前記複数のメモリモジュールのレイテンシに基づいて、ページオープンの状態を維持するオープンページモードとページクローズ状態を維持するクローズページモードの一方を選択することを特徴とする。
【００２５】
本発明のメモリ制御装置の第３の態様は、複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置であって、前記複数のメモリモジュールのアクセスに対するレイテンシを夫々保持するレンテンシ保持手段と、ページへのアクセスコマンド情報を受信し、前記複数のメモリモジュールのページの活性化及び非活性化を制御するページ制御手段とを有し、前記ページ制御手段は、前記複数のメモリモジュールのレイテンシに基づいて、非活性化するページを選択することを特徴とする。
【００２６】
本発明のメモリ制御方法は、複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置によるメモリ制御方法であって、ページへのアクセスコマンド情報を受信し、前記複数のメモリモジュールのページの活性化及び非活性化を制御するページ制御ステップを含み、前記ページ制御ステップでは、保持手段において前記複数のメモリモジュール毎に保持される前記複数のメモリモジュールのアクセスに対するレイテンシに基づいて、ページの活性化及び非活性化の制御方法を切り替えることを特徴とする。
【００２７】
本発明のプログラムは、前記メモリ制御方法をコンピュータに実行させることを特徴とする。
【００２８】
本発明のコンピュータ読み取り可能な記録媒体は、前記プログラムを記録したことを特徴とする。
【発明の効果】
【００２９】
本発明によれば、各メモリモジュールのアクセスに対するレイテンシに基づいて、ページの活性化及び非活性化を制御するように構成したので、例えば、レイテンシが小さいメモリモジュールに対してはアクセス後に当該ページに対する非活性化を行い、レイテンシが大きいメモリモジュールに対してはアクセス後に当該ページに対する非活性化を行わないように制御し、レイテンシが大きいメモリモジュールのページミスペナルティの発生を抑止し、メモリアクセスの性能低下を抑えることが可能となる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００３１】
図１は、本発明の実施形態に係るメモリシステムの構成を示す図である。
以下では、本発明の一実施形態として、図１に示すようにメモリ制御回路２０１から４組のメモリモジュール２０２、２０３、２０４、２０５が鎖状に接続され、各メモリモジュール２０２〜２０５はコマンド、データを受け取り下流へと伝達するバッファ２０６とＤＲＡＭ２０７を有する構成を例に挙げて説明する。このときメモリ制御回路２０１から物理的距離が最も近いメモリモジュール２０２に対するレイテンシが最も小さく、物理的距離が最も遠いメモリモジュール２０５に対するレイテンシが最も大きい構成となる。尚、以下に本発明の実施形態について説明するが、本発明は以下の実施形態にとらわれることなく、本発明の主旨を逸脱しないかぎり種々変更可能である。
【００３２】
＜第１の実施形態＞
先ず、本発明の第１の実施形態について説明する。図２は、本発明の第１の実施形態におけるメモリ制御回路２０１の構成を示す図である。
【００３３】
メモリ制御回路２０１はメモリモジュール２０２〜２０５へのアクセスコマンド、データの授受を行うメモリアクセスバス３０１と、メモリアクセスを受け取るメモリアクセスインタフェース３０２と、後述のメモリ情報レジスタへのアクセスを司るレジスタアクセスバス３０３と、メモリモジュール２０２〜２０５の状態を設定、保持するメモリ情報レジスタ３０４と、受信したメモリアクセスをメモリモジュール２０２〜２０５に発行するまでアクセス内容を保持するコマンドバッファ３０５と、ＤＲＡＭ２０７のページ管理を行うページ制御ユニット３０６と、メモリモジュール２０２〜２０５に対して要求されたコマンド発行の制御を行うメモリコマンド発行制御部３０７と、メモリモジュール２０２〜２０５からの読み込みデータを受信しメモリアクセスインタフェース３０２を介してアクセス元にデータを転送するメモリデータ受信部３０８より構成される。
【００３４】
メモリ情報レジスタ３０４は、メモリモジュール２０２〜２０５毎に設けられ、該当するメモリモジュールの構成設定、アドレス領域設定及びレイテンシを示すフラグ等が記録される。本実施形態では、４組のメモリモジュール２０２〜２０５が接続されるため４組のメモリ情報レジスタ３０４を有する。
【００３５】
図４は、各メモリモジュール２０２〜２０５に対応する各メモリ情報レジスタの構成を模式的に示す図である。
図４に示すように、各メモリ情報レジスタ３０４は、メモリモジュールが有効か否かを示すメモリモジュール有効フラグを保持するメモリモジュール有効フラグ設定フィールド５０１、メモリモジュール内のバンク数を示すバンク数選択フラグを保持するバンク数選択フラグ設定フィールド５０２、メモリモジュール内の行アドレス数を保持する行アドレスビット数レジスタフィールド５０３、メモリモジュール内の列アドレス数を保持する列アドレスビット数レジスタフィールド５０４、メモリモジュールの下限領域のアドレス（開始アドレス）を保持するメモリ領域下位アドレスレジスタフィールド５０６（ａ）、メモリモジュールの上限領域のアドレス（終了アドレス）を保持するメモリ領域上位アドレスレジスタフィールド５０６（ｂ）、及び、メモリモジュールのレンテンシを示すフラグを保持するレイテンシレジスタフィールド５０５を有する。
【００３６】
バンク数選択フラグ設定フィールド５０２においてバンク数の設定はフラグ（バンク数選択フラグ）により行われ、０であれば４バンク、１であれば８バンクである。メモリ領域下位アドレスレジスタフィールド５０６（ａ）においてはＭＳＢ８ビットで表される開始アドレス、メモリ領域下位アドレスレジスタフィールド５０６（ｂ）においてはＭＳＢ８ビットで表される終了アドレスが保持される。レイテンシフラグ設定フィールド５０５では、メモリ制御回路２０１から近いメモリモジュールから０、１、２、３とフラグが設定される。また、図４に示す各メモリ情報レジスタ３０４において、バンク数選択フラグ設定フィールド５０２にはバンク数４に対応するフラグ０が保持され、行アドレスビット数レジスタフィールド５０３には行アドレス数１３を示す0xdが保持され、列アドレスビット数レジスタフィールド５０４には列アドレス数１０を示す0xaが保持され、メモリ領域下位アドレスレジスタフィールド５０６（ａ）、メモリ領域上位アドレスレジスタフィード５０６（ｂ）には、図３に示す各メモリモジュール２０２〜２０５の開始アドレスと終了アドレスとが保持される。
【００３７】
メモリ情報レジスタ３０４に保持される情報は、ページ制御ユニット３０６に伝達され、ページ制御ユニット３０６では、アクセスアドレスとメモリ情報レジスタ３０４の設定値に基づいて、アクセスされるページとレイテンシの特定が可能となる。また、ページ制御ユニット３０６は、コマンドバッファ３０５からのアクセスコマンドのメモリコマンド発行制御部３０７へのコマンド伝達に合わせてページの活性化、非活性化の制御を司り、メモリコマンド発行制御部３０７に対してページ活性化、ページ非活性化コマンド要求を送付する。
【００３８】
ページ制御ユニット３０６は、図８に示すように、現在活性化されているページのメモリモジュール番号、バンク番号及び行アドレスの組み合わせを活性化ページ管理テーブル内に保持する。図８は、本実施形態における活性化ページ管理テーブルの一構成例を示す図である。図８の活性化ページ管理テーブルは、当該レコードが有効か否かを示すページ活性化テーブル有効フラグを保持するページ活性化テーブル有効フラグ設定フィールド９０１、活性化されているページのメモリモジュール番号を保持するページ活性化テーブルモジュール番号フィールド９０２、当該ページのバンク番号を保持するページ活性化テーブルバンク番号フィールド９０３、及び、当該ページの行アドレスを保持するページ活性化テーブル行アドレスフィールド９０４を有する。
【００３９】
ページ制御ユニット３０６は、レイテンシが０、１のページへのアクセスコマンドをコマンドバッファ３０５から受信した場合は、ページ活性化コマンドとアクセスコマンドを発行した後に常にページ非活性化コマンドを発行する。また、レイテンシが２、３のページへのアクセスコマンドをコマンドバッファ３０５から受信した場合には、図８の活性化ページ管理テーブルから活性化されているページを参照する。その結果、活性化されていないページへのアクセスである場合、当該アクセスによって活性化されているページとのバンクの衝突が発生する場合はその活性化されているページの非活性化コマンドを発行した後に、ページ活性化コマンドとアクセスコマンドを発行する。一方、当該アクセスによってバンクの衝突が発生しない場合はページ活性化コマンドとアクセスコマンドを発行して処理を終了する。即ち、ページ制御ユニット３０６は、レイテンシが０、１のページへのアクセスに関してはクローズページモードで動作を行い、レイテンシが２、３のページへのアクセスに関してはオープンページモードで動作を行う。
【００４０】
本ページ制御ユニット３０６の構成により、レイテンシの大きいページに対してページミスの発生を抑止することが可能となり、特にランダムアクセスに関してはレイテンシの小さいページに対してアドレスをマッピングし、連続アクセスに関してはレイテンシの大きいページに対してアドレスをマッピングすることによって、ページミスペナルティによる性能低下を削減することが可能となる。
【００４１】
＜第２の実施形態＞
次に、本発明の第２の実施形態について説明する。
図５は、本発明の第２の実施形態におけるメモリ制御回路２０１の構成を示す図である。本構成は、図２に示す第１の実施形態の構成に加えて、同時に活性化するページの最大数を保持する活性化ページ最大数レジスタ６０１と、現時点で活性化されているページの合計値を保持する活性化ページ計数レジスタ６０２とを有している。活性化ページ計数レジスタ６０２はページ制御ユニット６０３内に構成される。
【００４２】
ページ制御ユニット６０３は、図９に示すように、現在活性化されているページのメモリモジュール番号、バンク番号、行アドレス、該当ページのレイテンシ、及び、活性化ページ計数レジスタ値の組み合わせを活性化ページ管理テーブル内に保持する。活性化ページ計数レジスタ値は、該当するページの活性化要求がなされた場合に１加算され、該当するページの非活性化要求がなされた場合に１減算される。
【００４３】
図９は、本実施形態における活性化ページ管理テーブルの一構成例を示す図である。図９の活性化ページ管理テーブルは、図８の活性化ページ管理テーブルと同様にページ活性化テーブル有効フラグ設定フィールド９０１、ページ活性化テーブルモジュール番号フィールド９０２、ページ活性化テーブルバンク番号フィールド９０３及びページ活性化テーブル行アドレスフィールド９０４を備えるとともに、当該ページのレイテンシを保持するページ活性化テーブルレイテンシフィールド１００１、及び、活性化ページ計数レジスタ値を保持するページ活性化テーブルカウンタフィールド１００２を備える。尚、ページ活性化テーブルレイテンシフィールド１００１には、当該ページのメモリモジュールに対応するページ情報レジスタ３０４のレイテンシレジスタフィールド５０５に保持されるレイテンシを示すフラグが設定される。
【００４４】
ページ制御ユニット６０３は、コマンドバッファ３０５よりアクセスコマンドを受け取ると、図９の活性化ページ管理テーブルから活性化されているページを参照する。その結果、活性化されていないページへのアクセスである場合、当該アクセスによって活性化されているページとのバンクの衝突が発生する場合はその活性化されているページの非活性化コマンドを発行した後に、ページ活性化コマンドとアクセスコマンドを発行する。一方、当該アクセスによってバンクの衝突が発生しない場合は、活性化ページ最大数レジスタ６０１の保持値と活性化ページ計数レジスタ６０２の保持値を比較し、活性化ページ計数レジスタ６０２の保持値が活性化ページ最大数レジスタ６０１の保持値よりも小さい場合は、現在活性化されているページを非活性化させるページ非活性化コマンドを発行することなく、ページ活性化コマンドとアクセスコマンドを発行する。
【００４５】
また、活性化ページ計数レジスタ６０２の保持値が活性化ページ最大数レジスタ６０１の保持値と等しい場合は、図９の活性化ページ管理テーブルを参照し、活性化されているページのうちレイテンシレジスタフィールド１００１に保持される値が最も小さいページを選択する。そして、選択したページに対して非活性化コマンドを発行し、アクセスを行うページの活性化コマンドとアクセスコマンドを発行する。
【００４６】
レイテンシが最も小さいページが複数存在する場合は、メモリモジュール毎にページのアクセス順序を示すカウンタ値を保持するページ活性化テーブルカウンタフィールド１００２を参照し、カウンタ値が０であるページを選択して非活性化コマンドを発行する。
【００４７】
ページ活性化テーブルカウンタフィールド１００２に保持されるカウンタ値は、ページ制御ユニット６０３がアクセスコマンドを受信した場合、図９の活性化ページ管理テーブルにおいて管理される活性化されているページのうち、アクセスされるメモリモジュール番号と同じメモリモジュール番号のページが選択され、そのうちカウンタ値が最も大きいものに対して１加算される。尚、アクセスされるメモリモジュール番号と同じメモリモジュール番号のページが図９の活性化ページ管理テーブル内に存在しない場合は、アクセスされるページにつきカウンタ値０のレコードが活性化ページ管理テーブルに追加される。
【００４８】
一方、ページの非活性化が行われると、活性化ページ管理テーブル内において、非活性化が行われたページのメモリモジュール番号と同じメモリモジュール番号のページのカウンタ値が1減算される。更に、ページ制御ユニット６０３がアクセスコマンドを受信し、アクセス先が図９の活性化ページ管理テーブル内で管理されるページであった場合は、図９の活性化ページ管理テーブルで管理される活性化されているページのうち、アクセス先のページのメモリモジュール番号と同じメモリモジュール番号のページが選択され、そのうちでカウンタ値が最も大きなものにカウンタ値が更新されるとともに、アクセス先のページよりも大きいカウンタ値であったページのカウンタ値を１減算する。
【００４９】
次に、図１０を参照しながらページの入れ替えと活性化ページ管理テーブルの遷移状態を具体的に説明する。なお、図中の斜線部分は更新が行われた部分である。
【００５０】
図１０（Ａ）の状態からモジュール番号３、バンク番号０のページに対するアクセスコマンドが発行されると、ページ制御ユニット６０３は、テーブル内で最もレイテンシが小さい（レイテンシ＝０）メモリモジュール番号０でカウント値０のページを選択し、テーブルの入れ替えが発生し、ページの遷移が行われる。このとき、メモリモジュール番号３の最大カウンタ値は１であるため、新しくアクセス活性化されたページのカウンタ値は２が設定されるとともに、モジュール番号０でカウント値１のページのカウント値は０に更新され、図１０（Ｂ）の状態に遷移する。
【００５１】
次に、モジュール番号３、バンク番号１のページに対するアクセスが発行されると、ページ制御ユニット６０３は、テーブル内で最もレイテンシの小さい（レイテンシ＝０）モジュール番号０でカウント値０のページを選択し、ページの遷移が行われる。このとき、モジュール番号３の最大カウンタ値は２であるため、新しくアクセス活性化されたページのカウンタ値は３が設定され、図１０（Ｃ）の状態に遷移する。
【００５２】
次に、モジュール番号２、バンク番号１のページに対するアクセスが発行されると、ページ制御ユニット６０３は、テーブル内で最もレイテンシの小さい（レイテンシ＝３）モジュール番号３でカウント値０のページを選択し、テーブルの入れ替えが発生し、ページの遷移が行われる。このとき、モジュール番号２のページはテーブル内に存在しないため、新しく活性化されたページのカウンタ値は０が設定されるとともに、入れ替えの発生したモジュール番号３のカウンタ値が全て１減算され、図１０（Ｄ）の状態に遷移する。
【００５３】
次にページヒットアクセスで、モジュール番号３、バンク番号０のページに対するアクセスが発行されると、ページの入れ替えは発生せずに、該当ページのカウンタ値に、該当モジュール番号のカウンタ値の最大値である２が設定され、それまでの設定値より大きいもの、つまりカウンタ値が２であったものは１減算される。
【００５４】
本制御方式により、モジュール毎でカウンタ値が０であるものが一番古くにアクセスされたページと判定することが可能となる。このようなページ制御ユニット６０３の構成により、レイテンシの大きいモジュールに対するページの置換が少なくなることにより、レイテンシの大きいモジュールに対するページミスペナルティを削減することが可能となる。
【００５５】
＜第３の実施形態＞
次に、本発明の第３の実施形態について説明する。
図６は、本発明の第３の実施形態におけるメモリ制御回路２０１の構成を示す図である。本構成は、図５に示すページ制御ユニット６０３と、図６に示すページ制御ユニット７０１との構成が異なる点を除き、第２の実施形態におけるメモリ制御回路２０１と同一の構成である。
【００５６】
本ページ制御ユニット７０１は、図１１に示すように、現在活性化されているページのメモリモジュール番号、バンク番号、行アドレス、該当ページのレイテンシ、前アクセス頻度カウント値、及び、現アクセス頻度カウント値の組み合わせを活性化ページ管理テーブル内に保持する。前アクセス頻度カウント値及び現アクセス頻度カウント値は、後述のアクセス頻度判定部７０２により判定されたアクセス頻度を示す値である。アクセス頻度判定部７０２は、各ページに対するアクセス頻度を計測するものであり、実装方法は任意である。
【００５７】
図１１は、本実施形態における活性化ページ管理テーブルの一構成例を示す図である。図１１の活性化ページ管理テーブルは、図９の活性化ページ管理テーブルと同様にページ活性化テーブル有効フラグ設定フィールド９０１、ページ活性化テーブルモジュール番号フィールド９０２、ページ活性化テーブルバンク番号フィールド９０３、ページ活性化テーブル行アドレスフィールド９０４及びページ活性化テーブルレイテンシフィールド１１０１を備えるとともに、前アクセス頻度カウント値を保持する前アクセス頻度カウントフィールド１１０２及び現アクセス頻度カウント値を保持する現アクセス頻度カウントフィールド１１０３を備える。
【００５８】
次に、アクセス頻度判定部７０２の構成について説明する。アクセス頻度判定部７０２は、Ｎビット(Ｎは任意の自然数)のカウンタを有し、このカウンタはアクセスコマンドをコマンドバッファ３０５より受け取る毎に１加算され、最大値になると再度０から計数を開始する。カウンタが０から最大値になる間をアクセス計測単位とする。
【００５９】
活性化されているページを保持する図１１の活性化ページ管理テーブルには、前アクセス計測単位におけるアクセス回数を示す前アクセス頻度カウント値を保持する前アクセス頻度カウントフィールド１１０２と、現アクセス計測単位におけるアクセス回数を示す現アクセス頻度カウント値を保持する現アクセス頻度カウントフィールド１１０３とを備える。アクセス頻度判定部７０２は、図１１の活性化ページ管理テーブルに保持される活性化されているページに対するアクセスコマンドを受け取ると、現アクセス頻度カウント値を１加算する。カウンタが最大値から０になり次のアクセス計測単位に移行した際は、現アクセス頻度カウントフィールド１１０３内の現アクセス頻度カウント値を前アクセス頻度カウントフィールド１１０２に前アクセス頻度カウント値として退避させ、現アクセス頻度カウントフィールド１１０３内の現アクセスカウント値を０にクリアする。
【００６０】
また、ページの置換が行われた際は、前アクセス頻度カウント値及び現アクセス頻度カウント値を夫々０とし、現在のアクセス回数をカウントし、現アクセス頻度カウント値の更新の更新を開始する。各活性化されているページのアクセス頻度計数は、前アクセス計測単位におけるアクセス回数を示す前アクセス頻度カウント値と現アクセス計測単位における現アクセス頻度カウント値との合計値で与えられる。つまり、前アクセス頻度カウント値と現アクセス頻度カウント値との合計が大きい程、そのページのアクセス頻度が高いことを意味する。
【００６１】
以下、本実施形態におけるページ制御ユニット７０１の動作について説明する。
ページ制御ユニット７０１は、コマンドバッファ３０５よりアクセスコマンドを受け取ると、図１１の活性化ページ管理テーブルから活性化されているページを参照する。その結果、活性化されていないページへのアクセスである場合、当該アクセスによって活性化されているページとのバンクの衝突が発生する場合はその活性化されているページの非活性化コマンドを発行した後に、ページの活性化コマンドとアクセスコマンドを発行する。
【００６２】
一方、当該アクセスによってバンクの衝突が発生しない場合は、活性化ページ最大数レジスタ６０１の保持値と活性化ページ計数レジスタ６０２の保持値を比較し、活性化ページ計数レジスタ６０２の保持値が活性化ページ最大数レジスタ６０１の保持値よりも小さい値であった場合は、現在活性化されているページを非活性化させるための非活性化コマンドを発行することなく、ページの活性化コマンドとアクセスコマンドを発行する。また、活性化ページ計数レジスタ６０２の保持値が活性化ページ最大数レジスタ６０１の保持値と等しい場合は、ページ制御ユニット７０１は、図１１の活性化ページ管理テーブルのページ活性化テーブルレイテンシフィールド１１０１、前アクセス頻度カウントフィールド１１０２及び現アクセス頻度カウントフィールド１１０３を参照し、前アクセス頻度カウントフィールド１１０２に保持される前アクセス頻度カウント値と現アクセス頻度カウントフィールド１１０３に保持される現アクセス頻度カウント値との合計値（以下、アクセス頻度計数値と称す）を求め、ページ活性化テーブルレイテンシフィールド１１０１に保持されるレイテンシとアクセス頻度計数値とを用いた所定の計数方法による演算を行う。
【００６３】
次に、ページ制御ユニット７０１は、その演算結果（以下、最終アクセス頻度計数値と称す）に基づいてページを選択し、選択したページに対する非活性化コマンドを発行した後、アクセスするページの活性化コマンドとアクセスコマンドを発行する。前記計数方法に関しては、レイテンシが大きいもののアクセス頻度に重み付けを行う任意の手法で実装される。
【００６４】
図１２は、ページ制御ユニット７０１内に備えられ、ページ毎の重み付けを行った最終アクセス頻度計数を生成する回路の構成例を示す図である。図１２に示す回路は、該当するページのレイテンシに示されている数値分、左にビットシフトした結果を当該ページのアクセス頻度計数値に対して重み付けした最終アクセス頻度を求め、出力する。
【００６５】
例えば、メモリ制御回路２０１から最も遠いメモリモジュール２０５に対しては、先ず、前アクセス頻度カウントフィールド１１０２に保持される前アクセス頻度カウント値と現アクセス頻度カウントフィールド１１０３に保持される現アクセス頻度カウント値とをアクセス頻度計数加算器１２０１にて加算してアクセス頻度計数値を求める。
【００６６】
次に、図１１の活性化ページ管理テーブルのページ活性化テーブルレイテンシフィールド１１０１に保持されるレイテンシが３であるため、ビットシフト回路１２０２により３ビット分、左にビットシフトした結果がアクセス頻度計数加算器１２０１から出力されるアクセス頻度計数値に対して重み付けされ、最終アクセス頻度計数値１２０３として出力される。例えば、アクセス頻度計数加算器１２０１から出力されるアクセス頻度計数値が0x2であった場合は、最終アクセス頻度計数値１２０３は0x8となる。
【００６７】
一方、メモリ制御回路２０１から最も近いメモリモジュール２０２に対しては、図１１の活性化ページ管理テーブルのページ活性化テーブルレイテンシフィールド１１０１に保持されるレイテンシが０であるため、アクセス頻度計数加算器１２０１から出力されるアクセス頻度計数値はビットシフト回路１２０２によって重み付けがなされず、そのまま最終アクセス頻度計数値１２０３として出力される。例えば、アクセス頻度計数加算器１２０１から出力されるアクセス頻度計数値が0x7であれば、0x7が最終アクセス頻度計数値１２０３として出力される。
【００６８】
ページ制御ユニット７０１は、上記の重み付けされた最終アクセス頻度計数値１２０３が最も小さいページを選択し、選択したページとアクセスされるページとが同一バンクに属する場合、選択したページに対するページ非活性化コマンドが発行され、ページが閉じられる。上記の例を用いて説明すると、最終アクセス頻度計数値１２０３が0x7である、メモリ制御回路２０１から最も近いメモリモジュール２０２のページが閉じられることとなり、結果としてアクセス頻度が小さい場合でもレイテンシの大きいページが優先的に活性化状態が保たれる。また、レイテンシの大きいページへのアクセスが停止、あるいは間隔が空いた場合ではアクセス頻度が小さくなり、ビットシフト演算した結果であるアクセス頻度計数値１２０３が小さくなればレイテンシの大きいページがクローズされる。
【００６９】
本ページ制御ユニット７０１の構成により、レイテンシの大きいモジュールに対するページの置換に対してレイテンシの小さいモジュールに対するページの置換が優先的に行われることとなり、レイテンシの大きいモジュールに対するページミスペナルティの発生頻度を抑止することができる。また、レイテンシの小さいページに対するアクセス頻度が向上した場合には実際にアクセスが発生しているページの活性化状態を維持できることとなるため、レイテンシとアクセス状態に応じてページミスペナルティを削減し、性能低下を削減することができる。
【００７０】
＜第４の実施形態＞
次に、本発明の第４の実施形態について説明する。
図７は、本発明の第４の実施形態におけるメモリ制御回路２０１の構成を示す図である。本構成は、図５に示すページ制御ユニット６０３と、図７に示すページ制御ユニット８０１との構成が異なる点を除き、第２の実施形態におけるメモリ制御回路２０１と同一の構成である。本ページ制御ユニット８０１は、図５に示すページ制御ユニット６０３と異なる構成としてページ遷移頻度判定部８０２を有する。尚、ページ遷移頻度判定部８０２は、各ページに対するページ遷移頻度を計測するものであり、実装方法は任意である。
【００７１】
本ページ制御ユニット８０１は、図１３に示すように、現在活性化されているページのメモリモジュール番号、バンク番号、行アドレス及び該当ページのレイテンシの組み合わせを活性化ページ管理テーブル内に保持する。
【００７２】
図１３は、本実施形態における活性化ページ管理テーブルの一構成例を示す図である。図１３の活性化ページ管理テーブルは、図９の活性化ページ管理テーブルと同様にページ活性化テーブル有効フラグフィールド９０１、ページ活性化テーブルモジュール番号フィールド９０２、ページ活性化テーブルバンク管理フィールド９０３、ページ活性化テーブル行アドレスフィールド９０４及びページ活性化テーブルレイテンシフィールド１２０１を備える。
【００７３】
以下に、ページ遷移頻度判定部８０２の構成について説明する。
アクセス頻度判定部８０２は、Ｎビット(Ｎは任意の自然数)のカウンタを有し、このカウンタは、メモリアクセス要求をコマンドバッファ３０５より受け取る毎に１加算され、最大値になると再度０から計数を開始する。カウンタが０から最大値になる間をアクセス計測単位とする。
【００７４】
ページ遷移頻度判定部８０２内には図１４に示すようにページ遷移頻度レジスタがバンク毎に用意され、本実施形態においては４モジュールの４バンク構成であるため、ページ遷移頻度レジスタが１６組用意されている。各ページ遷移頻度レジスタは、前アクセス計測単位における各バンクのページミス回数カウント値を保持する前ページミス回数カウンタフィールド１３０１と、現アクセス計測単位におけるページミス回数カウント値を保持する現ページミス回数カウンタフィールド１３０２とを有し、ページ遷移頻度判定部８０２は、アクセスコマンドを受け取ると該当バンクに対応するページ遷移頻度レジスタの現ページミス回数カウンタフィールド１３０２内の現ページミス回数カウント値を１加算する。カウンタが最大値から０になり次のアクセス計測単位に移行した際は、現ページミス回数カウンタフィールド１３０２内の現ページミス回数カウント値を前ページミス回数カウンタフィールド１３０１に前ページミス回数カウント値として退避し、現ページミス回数カウンタフィールド１３０２内の現ページミス回数カウント値を０にクリアする。
【００７５】
各バンクのページ遷移頻度は、前アクセス計測単位におけるページミス回数を示す前ページミス回数カウント値と、現アクセス計測単位におけるページミス回数を示す現ページミス回数カウント値との合計値で与えられる。つまり、前ページミス回数カウント値と現ページミス回数カウント値との合計が大きい程、該当するバンクのページ遷移頻度が高いことを意味する。
【００７６】
以下、本実施形態におけるページ制御ユニット８０１の動作について説明する。
ページ制御ユニット８０１がコマンドバッファ３０５よりメモリアクセス要求を受け取ると、図１３の活性化ページ管理テーブルから活性化されているページを参照する。その結果、活性化されていないページへのアクセスである場合、当該アクセスによって活性化されているページとのバンクの衝突が発生する場合はその活性化されているページの非活性化コマンドを発行した後に、ページの活性化コマンドとアクセスコマンドを発行する。一方、当該アクセスによってバンクの衝突が発生しない場合は、活性化ページ最大数レジスタ６０１の保持値と活性化ページ計数レジスタ６０２の保持値を比較し、活性化ページ計数レジスタ６０２の保持値が活性化ページ最大数レジスタ６０１の保持値よりも小さい値であった場合は、ページの活性化コマンドとアクセスコマンドを発行する。
【００７７】
また、活性化ページ計数レジスタ６０２の保持値が活性化ページ最大数レジスタ６０１の保持値と等しい場合は、ページ制御ユニット８０１は、図１３の活性化ページ管理テーブルのページ活性化テーブルレイテンシフィールド１２０１と、活性化ページ管理テーブルで管理される各ページのバンクに対応するページ遷移頻度レジスタ（図１４）とを参照し、前ページミス回数カウンタフィールド１３０１に保持される前ページミス回数カウント値と現ページミス回数カウンタフィールド１３０２に保持される現ページミス回数カウント値との合計値（以下、ページ遷移頻度計数値と称す）を求め、ページ活性化テーブルレイテンシフィールド１１０１に保持されるレイテンシとページ遷移頻度計数値とを用いた所定の計数方法による演算を行う。
【００７８】
次に、ページ制御ユニット８０１は、その演算結果（以下、最終ページ遷移頻度計数値と称す）に基づいてページを選択し、選択したページに対する非活性化コマンドを発行した後、アクセスを行うページの活性化コマンドとアクセスコマンドを発行する。前記計数方法に関しては、レイテンシが小さいバンクに対するのページ遷移頻度に重み付けを行うことを特徴とした任意の手法で実装される。
【００７９】
図１５は、ページ制御ユニット８０１内に備えられ、ページ毎の重み付けを行った最終ページ遷移頻度計数値を生成する回路の構成例を示す図である。図１５に示す回路は、該当するページのレイテンシに示される数値分、右にビットシフトした結果を当該ページのバンクのページ遷移頻度計数に対して重み付けして最終ページ遷移頻度計数を求め、出力する。
【００８０】
例えば、メモリ制御回路２０１から最も遠いメモリモジュール２０５に対しては、先ず、メモリモジュール２０５内の該当するバンクに対応するページ遷移頻度レジスタを対象として、前ページミス回数カウントフィールド１３０１保持される前ページミス回数カウント値と現ページミス回数カウントフィールド１３０２に保持される現ページミス回数カウント値とをページ遷移頻度計数加算器１４０１にて加算してページ遷移頻度計数を求める。
【００８１】
次に、図１３の活性化ページ管理テーブルのページ活性化テーブルレイテンシフィールド１１０１に保持されるレイテンシが３であるため、ビットシフト回路１４０２により３ビット分、右にビットシフトした結果がページ遷移頻度計数加算器１４０１から出力されるページ遷移頻度計数に対して重み付けされ、最終ページ遷移頻度計数値１４０３が出力される。例えば、ページ遷移頻度計数加算器１４０１から出力されるページ遷移頻度計数値が0x8であった場合は、最終ページ遷移頻度計数値１４０３は0x1となる。
【００８２】
一方、メモリ制御回路２０１から最も近いメモリモジュール２０２に対しては、図１３の活性化ページ管理テーブルのページ活性化テーブルレイテンシフィールド１１０１に保持されるレイテンシが０であるため、ページ遷移頻度計数加算器１４０１から出力されるページ遷移頻度計数はビットシフト回路１２０２によって重み付けがなされず、そのまま最終ページ遷移頻度計数値１４０３として出力される。例えば、ページ遷移頻度加算器１２０１から出力されるページ遷移頻度計数値が0x7であれば、0x7が最終ページ遷移頻度計数値１４０３として出力される。
【００８３】
ページ制御ユニット８０１は、上記に記された重み付けされた最終ページ遷移頻度計数値１２０３が最も大きいページを選択し、選択したページとアクセスされるページとが同一バンクに属する場合、選択したページに対するページ非活性化コマンドが発行され、ページが閉じられる。上記の例を用いて説明すると、ページ遷移頻度計数値１２０３が0x7である、メモリ制御回路２０１から最も近いメモリモジュール２０２のページが閉じられることとなり、結果としてページ遷移頻度が大きい場合でもレイテンシの大きいページが優先的に活性化状態が保たれる。また、レイテンシの大きいページにてランダムアクセスが多発した場合、ページ遷移頻度計数値が小さくなり、ビットシフト演算した結果が大きければレイテンシの大きいページがクローズされる。
【００８４】
本ページ制御ユニット８０１の構成により、レイテンシの大きいモジュールに対するページの置換に対してレイテンシの小さいモジュールに対するページの置換が優先的に行われることとなり、レイテンシの大きいモジュールに対するページミスペナルティの発生頻度を抑止することができる。また、レイテンシの大きいページに対するページ遷移頻度が向上しレイテンシの小さいページではページ遷移頻度が小さい場合には、実際にページミスが発生しているページを非活性化状態にできることとなるため、レイテンシとアクセス状態に応じてページミスペナルティを削減し、性能低下を削減することができる。
【００８５】
上記実施形態によれば、メモリデバイスごとにリード時のアクセスレイテンシが異なるメモリシステムに対するメモリ制御回路において、レイテンシに応じてページの活性化、非活性化処理を行うことにより、レイテンシが長いメモリデバイスに対するページミスペナルティの発生を抑止し、性能低下の影響を削減することができる。
【００８６】
また、上記実施形態によれば、レイテンシが小さいメモリに対してはクローズページモードで動作させ、レイテンシが大きいメモリに対してはオープンページモードで動作させることにより、レイテンシの大きいメモリでのページミスを抑止し、レイテンシの大きいメモリでのページミスペナルティによる性能の低下を削減することができ、特にランダムアクセスをレイテンシの小さいメモリにマッピングし、連続アクセスをレイテンシの大きいメモリにマッピングすることにより、メモリシステムにおけるページミスペナルティの影響を最小とし、レイテンシが異なることによる影響を最小限に押さえることが出来る。
【００８７】
また、上記実施形態によれば、レイテンシの小さいページを優先的にページを閉じることにより、レイテンシの大きいメモリのページミスを抑止するとともに、レイテンシの小さいメモリでの高速メモリアクセスが可能となる。
【００８８】
さらに、上記実施形態によれば、レイテンシとアクセスの状態に応じてページ管理を変更することにより、レイテンシの長いメモリでのページミスの発生を抑止するとともに、アクセス状況に応じてレイテンシの小さいページに対しても高速メモリアクセスを可能とすることで、全体でページミスペナルティによる影響による性能低下を削減することが出来る。
【００８９】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００９０】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００９１】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００９２】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ(基本システム或いはオペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００９３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００９４】
【図１】本発明の実施形態に係るメモリシステムの構成を示す図である。
【図２】本発明の第１の実施形態におけるメモリ制御回路の構成を示す図である。
【図３】メモリアドレスマップの一例を示す図である。
【図４】各メモリモジュールに対応する各メモリ情報レジスタの構成を模式的に示す図である。
【図５】本発明の第２の実施形態におけるメモリ制御回路の構成を示す図である。
【図６】本発明の第３の実施形態におけるメモリ制御回路の構成を示す図である。
【図７】本発明の第４の実施形態におけるメモリ制御回路の構成を示す図である。
【図８】本発明の第１の実施形態における活性化ページ管理テーブルの構成を示す図である。
【図９】本発明の第２の実施形態における活性化ページ管理テーブルの構成を示す図である。
【図１０】ページの入れ替えと活性化ページ管理テーブルの遷移状態を説明するための図である。
【図１１】本発明の第３の実施形態における活性化ページ管理テーブルの構成を示す図である。
【図１２】ページ制御ユニット内に備えられ、ページ毎の重み付けを行った最終アクセス頻度計数を生成する回路の構成例を示す図である。
【図１３】本発明の第４の実施形態における活性化ページ管理テーブルの構成を示す図である。
【図１４】ページ遷移頻度判定部に備えられるページ遷移頻度レジスタを示す図である。
【図１５】ページ制御ユニット内に備えられ、ページ毎の重み付けを行った最終ページ遷移頻度計数値を生成する回路の構成例を示す図である。
【符号の説明】
【００９５】
２０１：メモリ制御回路
２０２〜２０５：メモリモジュール
２０６：バッファ
２０７：ＤＲＡＭ
３０４：メモリ情報レジスタ
３０６、６０３、７０１、８０１：ページ制御ユニット
３０１：メモリアクセスバス
３０２：メモリアクセスインタフェース
３０３：レジスタアクセスバス
３０４：メモリ情報レジスタ
３０５：コマンドバッファ
３０６：ページ制御ユニット
３０７：メモリコマンド発行制御部
３０８：メモリデータ受信部
５０１：メモリモジュール有効フラグ設定フィールド
５０２：バンク数選択フラグ設定フィールド
５０３：行アドレスビット数レジスタフィールド
５０４：列アドレスビット数レジスタフィールド
５０５：レイテンシレジスタフィールド
５０６（ａ）：メモリ領域下位アドレスレジスタフィールド
５０６（ｂ）：メモリ領域上位アドレスレジスタフィールド
６０１：活性化ページ最大数レジスタ
６０２：活性化ページ計数レジスタ
７０２：アクセス頻度判定部
８０２：ページ遷移頻度判定部
９０１：ページ活性化テーブル有効フラグ設定フィールド
９０２：ページ活性化テーブルモジュール番号フィールド９０２
９０３：ページ活性化テーブルバンク番号フィールド
９０４：ページ活性化テーブル行アドレスフィールド
１００１、１１０１、１２０１：ページ活性化テーブルレイテンシフィールド
１００２：ページ活性化テーブルカウンタフィールド
１１０２：前アクセス頻度カウントフィールド
１１０３：現アクセス頻度カウントフィールド
１２０１：アクセス頻度計数加算器
１２０３：最終アクセス頻度計数値
１４０１：ページ遷移頻度計数加算器
１２０２、１４０２：ビットシフト回路
１４０３：最終ページ遷移頻度計数値
【図１】
2006146340.tif 000003
【図２】
2006146340.tif 000004
【図３】
2006146340.tif 000005
【図４】
2006146340.tif 000006
【図５】
2006146340.tif 000007
【図６】
2006146340.tif 000008
【図７】
2006146340.tif 000009
【図８】
2006146340.tif 000010
【図９】
2006146340.tif 000011
【図１０】
2006146340.tif 000012
【図１１】
2006146340.tif 000013
【図１２】
2006146340.tif 000014
【図１３】
2006146340.tif 000015
【図１４】
2006146340.tif 000016
【図１５】
2006146340.tif 000017