JP2006146340A - メモリ制御装置及びメモリ制御方法 - Google Patents
メモリ制御装置及びメモリ制御方法 Download PDFInfo
- Publication number
- JP2006146340A JP2006146340A JP2004332106A JP2004332106A JP2006146340A JP 2006146340 A JP2006146340 A JP 2006146340A JP 2004332106 A JP2004332106 A JP 2004332106A JP 2004332106 A JP2004332106 A JP 2004332106A JP 2006146340 A JP2006146340 A JP 2006146340A
- Authority
- JP
- Japan
- Prior art keywords
- page
- memory
- access
- latency
- activated
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
【課題】 レイテンシが大きいメモリモジュールのページミスペナルティの発生を抑止し、メモリアクセスの性能低下を抑える。
【解決手段】 メモリ制御回路201は、複数のメモリモジュール202〜205のアクセスに対するレイテンシを夫々保持し、複数のメモリモジュール202〜205のページの活性化及び非活性化を制御する際に、複数のメモリモジュール202〜205のレイテンシに基づいて、ページの活性化及び非活性化の制御方法を切り替える。
【選択図】 図1
【解決手段】 メモリ制御回路201は、複数のメモリモジュール202〜205のアクセスに対するレイテンシを夫々保持し、複数のメモリモジュール202〜205のページの活性化及び非活性化を制御する際に、複数のメモリモジュール202〜205のレイテンシに基づいて、ページの活性化及び非活性化の制御方法を切り替える。
【選択図】 図1
Description
本発明は、複数のメモリモジュールに対するアクセス制御が可能なメモリ制御装置及びメモリ制御方法に関するものである。
一般に主記憶メモリとして使用されているDRAM内のメモリセルはバンク、行、列に分割されており、バンクと行の組み合わせのページ単位で活性化を行い(ページオープン、オープン)、活性化を行った後に列アドレスに対してRead/Writeのコマンドを発行する。ページオープンされているページはプリチャージコマンドを発行することでページの非活性化(ページクローズ、クローズ)を行う。
ページオープンの状態では、該当ページ内の列アドレスに対してはページオープンすること無くアクセスを行うことが可能であり、高速メモリアクセスが可能となる。バンク毎に活性化されるページは1つであり、同一バンクで別の行にアクセスする場合は、活性化されているページをクローズし、アクセスを発行するページを活性化してからアクセスを行う列にRead/Writeコマンドを発行する。クローズ状態のページに対してアクセスを発行する場合は、ページをオープンしたのちにアクセスする列に対してRead/Writeコマンドを発行する。
同一バンクで異なるページアクセスする場合、またページオープンされていないページに対してアクセスする場合をページミスといい、その際に要する時間、すなわちページをクローズしてオープンする間の時間、ページをオープンする時間をページミスペナルティと呼んでいる。
通常、SDRAM/DDR SDRAMは4〜8のバンクを持っている。複数のメモリモジュール、例えば4バンクのDRAMにより構成されるメモリモジュールを4つ接続した場合、同時に16ページをオープン状態にしておくことが可能となる。
しかしながら、ページオープンの状態を維持する場合(オープンページモード)、その間該当ページに対して活性化する電力を消費することとなり、オープン状態のページを多く維持することが消費電力の増加をもたらす。対して、ページクローズ状態を維持すること(クローズページモード)はその分ページミスペナルティが多く発生し、消費電力の面で有利である反面、性能に影響を与えることとなる。
この消費電力と性能のバランスを考慮し、同時にオープンするページの最大数を制限し最大数ページがオープンしている状態で、オープンされていないページへアクセスを発行する場合に、オープン状態のページをクローズしてページをオープンする手法が広く使用されている。
オープン状態のページを置換する方法としては、その時点でオープンされているページで最もアクセスされていないページをクローズする手法(LRA手法)や、最も古くにオープンされたページをクローズする手法(FIFO手法)などが挙げられる。
LRA手法を用いることにより、頻繁にアクセスされるページに関してはオープン状態を保持することが可能であり、またFIFO手法を用いることでメモリマスタが複数存在してそれぞれアクセスを発行する場合はある特定のページアクセスに限定されずに、平準的にメモリアクセスの高速化を図ることが可能となる。
しかしながら、上記の手法はメモリコントローラからメモリモジュールへのアクセスレイテンシが均一の場合は一定の効果をあげることが出来るが、メモリコントローラに接続されるメモリモジュールのレイテンシがデバイスや物理的距離に依存して異なる場合には高速メモリアクセスの制限をもたらすことが考えられる。
具体的には、接続されるメモリモジュールでレイテンシの長いメモリに対するアクセスでページミスペナルティが加算される状況では、通常のペナルティに加えてレイテンシ分のペナルティが加算されるため、レイテンシの短いメモリモジュールへのアクセスでのページミス時に比べて性能の劣化が大きくなってしまう。
近年は、半導体技術の向上に伴い、プロセッサやLSI内部の動作周波数が飛躍的に高速化していく中で、LSIの外部に接続されるメモリ、特にDRAMを使用した主記憶メモリに対しても動作周波数の向上が要求され、近年メモリデバイスの高速化が進んでいる。
メモリデバイスを使用したメモリモジュールも高速化に応じて構造、構成の変更が必要となり、従来PC133等のメモリモジュールではUnbufferedの構成でコマンド、データともにコントローラから出力された信号がそのままメモリモジュール内のメモリデバイスに分配されても問題は生じなかったが、DDR400等のメモリモジュールではメモリモジュールを複数構成する際にコマンド系の信号が多くのメモリデバイスに分配されて供給されると基板上の信号の負荷が大きくなることから信号の伝播遅延が大きくなり、Unbufferedの構成では高速動作が保証できなくなるため、コマンド系信号を各メモリモジュール内に実装されたレジスタにてラッチし、各メモリデバイスに分配することにより基板上の信号負荷を低減することで高速動作を保証している。このときデータはコマンド系信号と比較し基板上の信号負荷が小さいため、高速動作に対する影響は小さかった。
しかしながら、DDR2/DDR3といった更なる高速化の実現を可能とするメモリデバイスを使用したメモリモジュールを複数構成したシステムを構築すると、データ信号の分配による基板上の負荷が無視できなくなり、高速動作に影響してしまう。
この高速動作を保証する仕組みとして、Point to Pointの高速シリアルインタフェース技術を利用し、コマンド、データを一旦メモリモジュール内のバッファでバッファリングを行い、該コマンド、データをメモリモジュール内の各メモリデバイスに分配し、後続に接続されるメモリモジュールへ伝送する仕組みが実現に向け検討されている。
本構成では接続されるメモリモジュールがシリアルに伝送されることになり、コマンドや書き込みデータはLSIからの距離の遠いメモリモジュールへの到達サイクルが遅れ、また読み込みデータはLSIからの距離の遠いメモリモジュールからのレイテンシが長くなる傾向にある。
以下、レイテンシの異なるメモリデバイスでのページミスペナルティの影響について説明する。例えばメモリから画像を入力し、メモリ上テーブル参照にて画像処理を行う場合、テーブル参照はランダムなアドレスにてアクセスを発行するためページミスが頻発し、画像のメモリからの入力は連続アクセスとなりページの遷移は少ない。
LRA手法を適用すると、ランダムアクセスのページミスの遷移が頻発することにより、ページの置換が多く発生し、テーブル参照が集中した場合に入力画像のページ置換が発生する。このときメモリモジュール上のテーブルがレイテンシの小さいメモリにマッピングされ、レイテンシの大きいメモリモジュールに入力画像がマッピングされている場合、ページミスのペナルティとレイテンシの長さが加算されるため、性能の劣化が激しくなる。
FIFO手法においても、メモリモジュールからの画像入力処理が間欠的に行われると、画像へのアクセスのページミスの頻度が大きくなる。つまり、レイテンシの異なるメモリデバイスを接続しメモリアクセス制御を行う場合、特に読み込みデータに関してはアクセスするメモリデバイスによってレイテンシが長くなるとともに、レイテンシの大きなメモリデバイスにおいてページミスが頻発した場合、ページミスペナルティが更に加算されることになり性能の低下が大きくなってしまう。
前記LRA手法やFIFO手法を適用した場合、レイテンシに関係なくページがクローズされるため、レイテンシの大きいメモリデバイスへのアクセスでページの遷移が少ない場合においてもページがクローズされることとなり、その度毎にページミスペナルティとReadアクセスのレイテンシが加算されることによって、レイテンシの大きいメモリデバイスに対するメモリアクセスの性能が著しく低下してしまうという課題が生じる。
そこで、本発明の目的は、レイテンシが大きいメモリモジュールのページミスペナルティの発生を抑止し、メモリアクセスの性能低下を抑えることにある。
本発明のメモリ制御装置の第1の態様は、複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置であって、前記複数のメモリモジュールのアクセスに対するレイテンシを夫々保持するレンテンシ保持手段と、ページへのアクセスコマンド情報を受信し、前記複数のメモリモジュールのページの活性化及び非活性化を制御するページ制御手段とを有し、前記ページ制御手段は、前記複数のメモリモジュールのレイテンシに基づいて、ページの活性化及び非活性化の制御方法を切り替えることを特徴とする。
本発明のメモリ制御装置の第2の態様は、複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置であって、前記複数のメモリモジュールのアクセスに対するレイテンシを夫々保持するレンテンシ保持手段と、前記複数のメモリモジュールのページへのアクセスを制御する制御手段とを有し、前記ページ制御手段は、前記複数のメモリモジュールのレイテンシに基づいて、ページオープンの状態を維持するオープンページモードとページクローズ状態を維持するクローズページモードの一方を選択することを特徴とする。
本発明のメモリ制御装置の第3の態様は、複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置であって、前記複数のメモリモジュールのアクセスに対するレイテンシを夫々保持するレンテンシ保持手段と、ページへのアクセスコマンド情報を受信し、前記複数のメモリモジュールのページの活性化及び非活性化を制御するページ制御手段とを有し、前記ページ制御手段は、前記複数のメモリモジュールのレイテンシに基づいて、非活性化するページを選択することを特徴とする。
本発明のメモリ制御方法は、複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置によるメモリ制御方法であって、ページへのアクセスコマンド情報を受信し、前記複数のメモリモジュールのページの活性化及び非活性化を制御するページ制御ステップを含み、前記ページ制御ステップでは、保持手段において前記複数のメモリモジュール毎に保持される前記複数のメモリモジュールのアクセスに対するレイテンシに基づいて、ページの活性化及び非活性化の制御方法を切り替えることを特徴とする。
本発明のプログラムは、前記メモリ制御方法をコンピュータに実行させることを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体は、前記プログラムを記録したことを特徴とする。
本発明によれば、各メモリモジュールのアクセスに対するレイテンシに基づいて、ページの活性化及び非活性化を制御するように構成したので、例えば、レイテンシが小さいメモリモジュールに対してはアクセス後に当該ページに対する非活性化を行い、レイテンシが大きいメモリモジュールに対してはアクセス後に当該ページに対する非活性化を行わないように制御し、レイテンシが大きいメモリモジュールのページミスペナルティの発生を抑止し、メモリアクセスの性能低下を抑えることが可能となる。
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
図1は、本発明の実施形態に係るメモリシステムの構成を示す図である。
以下では、本発明の一実施形態として、図1に示すようにメモリ制御回路201から4組のメモリモジュール202、203、204、205が鎖状に接続され、各メモリモジュール202〜205はコマンド、データを受け取り下流へと伝達するバッファ206とDRAM207を有する構成を例に挙げて説明する。このときメモリ制御回路201から物理的距離が最も近いメモリモジュール202に対するレイテンシが最も小さく、物理的距離が最も遠いメモリモジュール205に対するレイテンシが最も大きい構成となる。尚、以下に本発明の実施形態について説明するが、本発明は以下の実施形態にとらわれることなく、本発明の主旨を逸脱しないかぎり種々変更可能である。
以下では、本発明の一実施形態として、図1に示すようにメモリ制御回路201から4組のメモリモジュール202、203、204、205が鎖状に接続され、各メモリモジュール202〜205はコマンド、データを受け取り下流へと伝達するバッファ206とDRAM207を有する構成を例に挙げて説明する。このときメモリ制御回路201から物理的距離が最も近いメモリモジュール202に対するレイテンシが最も小さく、物理的距離が最も遠いメモリモジュール205に対するレイテンシが最も大きい構成となる。尚、以下に本発明の実施形態について説明するが、本発明は以下の実施形態にとらわれることなく、本発明の主旨を逸脱しないかぎり種々変更可能である。
<第1の実施形態>
先ず、本発明の第1の実施形態について説明する。図2は、本発明の第1の実施形態におけるメモリ制御回路201の構成を示す図である。
先ず、本発明の第1の実施形態について説明する。図2は、本発明の第1の実施形態におけるメモリ制御回路201の構成を示す図である。
メモリ制御回路201はメモリモジュール202〜205へのアクセスコマンド、データの授受を行うメモリアクセスバス301と、メモリアクセスを受け取るメモリアクセスインタフェース302と、後述のメモリ情報レジスタへのアクセスを司るレジスタアクセスバス303と、メモリモジュール202〜205の状態を設定、保持するメモリ情報レジスタ304と、受信したメモリアクセスをメモリモジュール202〜205に発行するまでアクセス内容を保持するコマンドバッファ305と、DRAM207のページ管理を行うページ制御ユニット306と、メモリモジュール202〜205に対して要求されたコマンド発行の制御を行うメモリコマンド発行制御部307と、メモリモジュール202〜205からの読み込みデータを受信しメモリアクセスインタフェース302を介してアクセス元にデータを転送するメモリデータ受信部308より構成される。
メモリ情報レジスタ304は、メモリモジュール202〜205毎に設けられ、該当するメモリモジュールの構成設定、アドレス領域設定及びレイテンシを示すフラグ等が記録される。本実施形態では、4組のメモリモジュール202〜205が接続されるため4組のメモリ情報レジスタ304を有する。
図4は、各メモリモジュール202〜205に対応する各メモリ情報レジスタの構成を模式的に示す図である。
図4に示すように、各メモリ情報レジスタ304は、メモリモジュールが有効か否かを示すメモリモジュール有効フラグを保持するメモリモジュール有効フラグ設定フィールド501、メモリモジュール内のバンク数を示すバンク数選択フラグを保持するバンク数選択フラグ設定フィールド502、メモリモジュール内の行アドレス数を保持する行アドレスビット数レジスタフィールド503、メモリモジュール内の列アドレス数を保持する列アドレスビット数レジスタフィールド504、メモリモジュールの下限領域のアドレス(開始アドレス)を保持するメモリ領域下位アドレスレジスタフィールド506(a)、メモリモジュールの上限領域のアドレス(終了アドレス)を保持するメモリ領域上位アドレスレジスタフィールド506(b)、及び、メモリモジュールのレンテンシを示すフラグを保持するレイテンシレジスタフィールド505を有する。
図4に示すように、各メモリ情報レジスタ304は、メモリモジュールが有効か否かを示すメモリモジュール有効フラグを保持するメモリモジュール有効フラグ設定フィールド501、メモリモジュール内のバンク数を示すバンク数選択フラグを保持するバンク数選択フラグ設定フィールド502、メモリモジュール内の行アドレス数を保持する行アドレスビット数レジスタフィールド503、メモリモジュール内の列アドレス数を保持する列アドレスビット数レジスタフィールド504、メモリモジュールの下限領域のアドレス(開始アドレス)を保持するメモリ領域下位アドレスレジスタフィールド506(a)、メモリモジュールの上限領域のアドレス(終了アドレス)を保持するメモリ領域上位アドレスレジスタフィールド506(b)、及び、メモリモジュールのレンテンシを示すフラグを保持するレイテンシレジスタフィールド505を有する。
バンク数選択フラグ設定フィールド502においてバンク数の設定はフラグ(バンク数選択フラグ)により行われ、0であれば4バンク、1であれば8バンクである。メモリ領域下位アドレスレジスタフィールド506(a)においてはMSB8ビットで表される開始アドレス、メモリ領域下位アドレスレジスタフィールド506(b)においてはMSB8ビットで表される終了アドレスが保持される。レイテンシフラグ設定フィールド505では、メモリ制御回路201から近いメモリモジュールから0、1、2、3とフラグが設定される。また、図4に示す各メモリ情報レジスタ304において、バンク数選択フラグ設定フィールド502にはバンク数4に対応するフラグ0が保持され、行アドレスビット数レジスタフィールド503には行アドレス数13を示す0xdが保持され、列アドレスビット数レジスタフィールド504には列アドレス数10を示す0xaが保持され、メモリ領域下位アドレスレジスタフィールド506(a)、メモリ領域上位アドレスレジスタフィード506(b)には、図3に示す各メモリモジュール202〜205の開始アドレスと終了アドレスとが保持される。
メモリ情報レジスタ304に保持される情報は、ページ制御ユニット306に伝達され、ページ制御ユニット306では、アクセスアドレスとメモリ情報レジスタ304の設定値に基づいて、アクセスされるページとレイテンシの特定が可能となる。また、ページ制御ユニット306は、コマンドバッファ305からのアクセスコマンドのメモリコマンド発行制御部307へのコマンド伝達に合わせてページの活性化、非活性化の制御を司り、メモリコマンド発行制御部307に対してページ活性化、ページ非活性化コマンド要求を送付する。
ページ制御ユニット306は、図8に示すように、現在活性化されているページのメモリモジュール番号、バンク番号及び行アドレスの組み合わせを活性化ページ管理テーブル内に保持する。図8は、本実施形態における活性化ページ管理テーブルの一構成例を示す図である。図8の活性化ページ管理テーブルは、当該レコードが有効か否かを示すページ活性化テーブル有効フラグを保持するページ活性化テーブル有効フラグ設定フィールド901、活性化されているページのメモリモジュール番号を保持するページ活性化テーブルモジュール番号フィールド902、当該ページのバンク番号を保持するページ活性化テーブルバンク番号フィールド903、及び、当該ページの行アドレスを保持するページ活性化テーブル行アドレスフィールド904を有する。
ページ制御ユニット306は、レイテンシが0、1のページへのアクセスコマンドをコマンドバッファ305から受信した場合は、ページ活性化コマンドとアクセスコマンドを発行した後に常にページ非活性化コマンドを発行する。また、レイテンシが2、3のページへのアクセスコマンドをコマンドバッファ305から受信した場合には、図8の活性化ページ管理テーブルから活性化されているページを参照する。その結果、活性化されていないページへのアクセスである場合、当該アクセスによって活性化されているページとのバンクの衝突が発生する場合はその活性化されているページの非活性化コマンドを発行した後に、ページ活性化コマンドとアクセスコマンドを発行する。一方、当該アクセスによってバンクの衝突が発生しない場合はページ活性化コマンドとアクセスコマンドを発行して処理を終了する。即ち、ページ制御ユニット306は、レイテンシが0、1のページへのアクセスに関してはクローズページモードで動作を行い、レイテンシが2、3のページへのアクセスに関してはオープンページモードで動作を行う。
本ページ制御ユニット306の構成により、レイテンシの大きいページに対してページミスの発生を抑止することが可能となり、特にランダムアクセスに関してはレイテンシの小さいページに対してアドレスをマッピングし、連続アクセスに関してはレイテンシの大きいページに対してアドレスをマッピングすることによって、ページミスペナルティによる性能低下を削減することが可能となる。
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。
図5は、本発明の第2の実施形態におけるメモリ制御回路201の構成を示す図である。本構成は、図2に示す第1の実施形態の構成に加えて、同時に活性化するページの最大数を保持する活性化ページ最大数レジスタ601と、現時点で活性化されているページの合計値を保持する活性化ページ計数レジスタ602とを有している。活性化ページ計数レジスタ602はページ制御ユニット603内に構成される。
次に、本発明の第2の実施形態について説明する。
図5は、本発明の第2の実施形態におけるメモリ制御回路201の構成を示す図である。本構成は、図2に示す第1の実施形態の構成に加えて、同時に活性化するページの最大数を保持する活性化ページ最大数レジスタ601と、現時点で活性化されているページの合計値を保持する活性化ページ計数レジスタ602とを有している。活性化ページ計数レジスタ602はページ制御ユニット603内に構成される。
ページ制御ユニット603は、図9に示すように、現在活性化されているページのメモリモジュール番号、バンク番号、行アドレス、該当ページのレイテンシ、及び、活性化ページ計数レジスタ値の組み合わせを活性化ページ管理テーブル内に保持する。活性化ページ計数レジスタ値は、該当するページの活性化要求がなされた場合に1加算され、該当するページの非活性化要求がなされた場合に1減算される。
図9は、本実施形態における活性化ページ管理テーブルの一構成例を示す図である。図9の活性化ページ管理テーブルは、図8の活性化ページ管理テーブルと同様にページ活性化テーブル有効フラグ設定フィールド901、ページ活性化テーブルモジュール番号フィールド902、ページ活性化テーブルバンク番号フィールド903及びページ活性化テーブル行アドレスフィールド904を備えるとともに、当該ページのレイテンシを保持するページ活性化テーブルレイテンシフィールド1001、及び、活性化ページ計数レジスタ値を保持するページ活性化テーブルカウンタフィールド1002を備える。尚、ページ活性化テーブルレイテンシフィールド1001には、当該ページのメモリモジュールに対応するページ情報レジスタ304のレイテンシレジスタフィールド505に保持されるレイテンシを示すフラグが設定される。
ページ制御ユニット603は、コマンドバッファ305よりアクセスコマンドを受け取ると、図9の活性化ページ管理テーブルから活性化されているページを参照する。その結果、活性化されていないページへのアクセスである場合、当該アクセスによって活性化されているページとのバンクの衝突が発生する場合はその活性化されているページの非活性化コマンドを発行した後に、ページ活性化コマンドとアクセスコマンドを発行する。一方、当該アクセスによってバンクの衝突が発生しない場合は、活性化ページ最大数レジスタ601の保持値と活性化ページ計数レジスタ602の保持値を比較し、活性化ページ計数レジスタ602の保持値が活性化ページ最大数レジスタ601の保持値よりも小さい場合は、現在活性化されているページを非活性化させるページ非活性化コマンドを発行することなく、ページ活性化コマンドとアクセスコマンドを発行する。
また、活性化ページ計数レジスタ602の保持値が活性化ページ最大数レジスタ601の保持値と等しい場合は、図9の活性化ページ管理テーブルを参照し、活性化されているページのうちレイテンシレジスタフィールド1001に保持される値が最も小さいページを選択する。そして、選択したページに対して非活性化コマンドを発行し、アクセスを行うページの活性化コマンドとアクセスコマンドを発行する。
レイテンシが最も小さいページが複数存在する場合は、メモリモジュール毎にページのアクセス順序を示すカウンタ値を保持するページ活性化テーブルカウンタフィールド1002を参照し、カウンタ値が0であるページを選択して非活性化コマンドを発行する。
ページ活性化テーブルカウンタフィールド1002に保持されるカウンタ値は、ページ制御ユニット603がアクセスコマンドを受信した場合、図9の活性化ページ管理テーブルにおいて管理される活性化されているページのうち、アクセスされるメモリモジュール番号と同じメモリモジュール番号のページが選択され、そのうちカウンタ値が最も大きいものに対して1加算される。尚、アクセスされるメモリモジュール番号と同じメモリモジュール番号のページが図9の活性化ページ管理テーブル内に存在しない場合は、アクセスされるページにつきカウンタ値0のレコードが活性化ページ管理テーブルに追加される。
一方、ページの非活性化が行われると、活性化ページ管理テーブル内において、非活性化が行われたページのメモリモジュール番号と同じメモリモジュール番号のページのカウンタ値が1減算される。更に、ページ制御ユニット603がアクセスコマンドを受信し、アクセス先が図9の活性化ページ管理テーブル内で管理されるページであった場合は、図9の活性化ページ管理テーブルで管理される活性化されているページのうち、アクセス先のページのメモリモジュール番号と同じメモリモジュール番号のページが選択され、そのうちでカウンタ値が最も大きなものにカウンタ値が更新されるとともに、アクセス先のページよりも大きいカウンタ値であったページのカウンタ値を1減算する。
次に、図10を参照しながらページの入れ替えと活性化ページ管理テーブルの遷移状態を具体的に説明する。なお、図中の斜線部分は更新が行われた部分である。
図10(A)の状態からモジュール番号3、バンク番号0のページに対するアクセスコマンドが発行されると、ページ制御ユニット603は、テーブル内で最もレイテンシが小さい(レイテンシ=0)メモリモジュール番号0でカウント値0のページを選択し、テーブルの入れ替えが発生し、ページの遷移が行われる。このとき、メモリモジュール番号3の最大カウンタ値は1であるため、新しくアクセス活性化されたページのカウンタ値は2が設定されるとともに、モジュール番号0でカウント値1のページのカウント値は0に更新され、図10(B)の状態に遷移する。
次に、モジュール番号3、バンク番号1のページに対するアクセスが発行されると、ページ制御ユニット603は、テーブル内で最もレイテンシの小さい(レイテンシ=0)モジュール番号0でカウント値0のページを選択し、ページの遷移が行われる。このとき、モジュール番号3の最大カウンタ値は2であるため、新しくアクセス活性化されたページのカウンタ値は3が設定され、図10(C)の状態に遷移する。
次に、モジュール番号2、バンク番号1のページに対するアクセスが発行されると、ページ制御ユニット603は、テーブル内で最もレイテンシの小さい(レイテンシ=3)モジュール番号3でカウント値0のページを選択し、テーブルの入れ替えが発生し、ページの遷移が行われる。このとき、モジュール番号2のページはテーブル内に存在しないため、新しく活性化されたページのカウンタ値は0が設定されるとともに、入れ替えの発生したモジュール番号3のカウンタ値が全て1減算され、図10(D)の状態に遷移する。
次にページヒットアクセスで、モジュール番号3、バンク番号0のページに対するアクセスが発行されると、ページの入れ替えは発生せずに、該当ページのカウンタ値に、該当モジュール番号のカウンタ値の最大値である2が設定され、それまでの設定値より大きいもの、つまりカウンタ値が2であったものは1減算される。
本制御方式により、モジュール毎でカウンタ値が0であるものが一番古くにアクセスされたページと判定することが可能となる。このようなページ制御ユニット603の構成により、レイテンシの大きいモジュールに対するページの置換が少なくなることにより、レイテンシの大きいモジュールに対するページミスペナルティを削減することが可能となる。
<第3の実施形態>
次に、本発明の第3の実施形態について説明する。
図6は、本発明の第3の実施形態におけるメモリ制御回路201の構成を示す図である。本構成は、図5に示すページ制御ユニット603と、図6に示すページ制御ユニット701との構成が異なる点を除き、第2の実施形態におけるメモリ制御回路201と同一の構成である。
次に、本発明の第3の実施形態について説明する。
図6は、本発明の第3の実施形態におけるメモリ制御回路201の構成を示す図である。本構成は、図5に示すページ制御ユニット603と、図6に示すページ制御ユニット701との構成が異なる点を除き、第2の実施形態におけるメモリ制御回路201と同一の構成である。
本ページ制御ユニット701は、図11に示すように、現在活性化されているページのメモリモジュール番号、バンク番号、行アドレス、該当ページのレイテンシ、前アクセス頻度カウント値、及び、現アクセス頻度カウント値の組み合わせを活性化ページ管理テーブル内に保持する。前アクセス頻度カウント値及び現アクセス頻度カウント値は、後述のアクセス頻度判定部702により判定されたアクセス頻度を示す値である。アクセス頻度判定部702は、各ページに対するアクセス頻度を計測するものであり、実装方法は任意である。
図11は、本実施形態における活性化ページ管理テーブルの一構成例を示す図である。図11の活性化ページ管理テーブルは、図9の活性化ページ管理テーブルと同様にページ活性化テーブル有効フラグ設定フィールド901、ページ活性化テーブルモジュール番号フィールド902、ページ活性化テーブルバンク番号フィールド903、ページ活性化テーブル行アドレスフィールド904及びページ活性化テーブルレイテンシフィールド1101を備えるとともに、前アクセス頻度カウント値を保持する前アクセス頻度カウントフィールド1102及び現アクセス頻度カウント値を保持する現アクセス頻度カウントフィールド1103を備える。
次に、アクセス頻度判定部702の構成について説明する。アクセス頻度判定部702は、Nビット(Nは任意の自然数)のカウンタを有し、このカウンタはアクセスコマンドをコマンドバッファ305より受け取る毎に1加算され、最大値になると再度0から計数を開始する。カウンタが0から最大値になる間をアクセス計測単位とする。
活性化されているページを保持する図11の活性化ページ管理テーブルには、前アクセス計測単位におけるアクセス回数を示す前アクセス頻度カウント値を保持する前アクセス頻度カウントフィールド1102と、現アクセス計測単位におけるアクセス回数を示す現アクセス頻度カウント値を保持する現アクセス頻度カウントフィールド1103とを備える。アクセス頻度判定部702は、図11の活性化ページ管理テーブルに保持される活性化されているページに対するアクセスコマンドを受け取ると、現アクセス頻度カウント値を1加算する。カウンタが最大値から0になり次のアクセス計測単位に移行した際は、現アクセス頻度カウントフィールド1103内の現アクセス頻度カウント値を前アクセス頻度カウントフィールド1102に前アクセス頻度カウント値として退避させ、現アクセス頻度カウントフィールド1103内の現アクセスカウント値を0にクリアする。
また、ページの置換が行われた際は、前アクセス頻度カウント値及び現アクセス頻度カウント値を夫々0とし、現在のアクセス回数をカウントし、現アクセス頻度カウント値の更新の更新を開始する。各活性化されているページのアクセス頻度計数は、前アクセス計測単位におけるアクセス回数を示す前アクセス頻度カウント値と現アクセス計測単位における現アクセス頻度カウント値との合計値で与えられる。つまり、前アクセス頻度カウント値と現アクセス頻度カウント値との合計が大きい程、そのページのアクセス頻度が高いことを意味する。
以下、本実施形態におけるページ制御ユニット701の動作について説明する。
ページ制御ユニット701は、コマンドバッファ305よりアクセスコマンドを受け取ると、図11の活性化ページ管理テーブルから活性化されているページを参照する。その結果、活性化されていないページへのアクセスである場合、当該アクセスによって活性化されているページとのバンクの衝突が発生する場合はその活性化されているページの非活性化コマンドを発行した後に、ページの活性化コマンドとアクセスコマンドを発行する。
ページ制御ユニット701は、コマンドバッファ305よりアクセスコマンドを受け取ると、図11の活性化ページ管理テーブルから活性化されているページを参照する。その結果、活性化されていないページへのアクセスである場合、当該アクセスによって活性化されているページとのバンクの衝突が発生する場合はその活性化されているページの非活性化コマンドを発行した後に、ページの活性化コマンドとアクセスコマンドを発行する。
一方、当該アクセスによってバンクの衝突が発生しない場合は、活性化ページ最大数レジスタ601の保持値と活性化ページ計数レジスタ602の保持値を比較し、活性化ページ計数レジスタ602の保持値が活性化ページ最大数レジスタ601の保持値よりも小さい値であった場合は、現在活性化されているページを非活性化させるための非活性化コマンドを発行することなく、ページの活性化コマンドとアクセスコマンドを発行する。また、活性化ページ計数レジスタ602の保持値が活性化ページ最大数レジスタ601の保持値と等しい場合は、ページ制御ユニット701は、図11の活性化ページ管理テーブルのページ活性化テーブルレイテンシフィールド1101、前アクセス頻度カウントフィールド1102及び現アクセス頻度カウントフィールド1103を参照し、前アクセス頻度カウントフィールド1102に保持される前アクセス頻度カウント値と現アクセス頻度カウントフィールド1103に保持される現アクセス頻度カウント値との合計値(以下、アクセス頻度計数値と称す)を求め、ページ活性化テーブルレイテンシフィールド1101に保持されるレイテンシとアクセス頻度計数値とを用いた所定の計数方法による演算を行う。
次に、ページ制御ユニット701は、その演算結果(以下、最終アクセス頻度計数値と称す)に基づいてページを選択し、選択したページに対する非活性化コマンドを発行した後、アクセスするページの活性化コマンドとアクセスコマンドを発行する。前記計数方法に関しては、レイテンシが大きいもののアクセス頻度に重み付けを行う任意の手法で実装される。
図12は、ページ制御ユニット701内に備えられ、ページ毎の重み付けを行った最終アクセス頻度計数を生成する回路の構成例を示す図である。図12に示す回路は、該当するページのレイテンシに示されている数値分、左にビットシフトした結果を当該ページのアクセス頻度計数値に対して重み付けした最終アクセス頻度を求め、出力する。
例えば、メモリ制御回路201から最も遠いメモリモジュール205に対しては、先ず、前アクセス頻度カウントフィールド1102に保持される前アクセス頻度カウント値と現アクセス頻度カウントフィールド1103に保持される現アクセス頻度カウント値とをアクセス頻度計数加算器1201にて加算してアクセス頻度計数値を求める。
次に、図11の活性化ページ管理テーブルのページ活性化テーブルレイテンシフィールド1101に保持されるレイテンシが3であるため、ビットシフト回路1202により3ビット分、左にビットシフトした結果がアクセス頻度計数加算器1201から出力されるアクセス頻度計数値に対して重み付けされ、最終アクセス頻度計数値1203として出力される。例えば、アクセス頻度計数加算器1201から出力されるアクセス頻度計数値が0x2であった場合は、最終アクセス頻度計数値1203は0x8となる。
一方、メモリ制御回路201から最も近いメモリモジュール202に対しては、図11の活性化ページ管理テーブルのページ活性化テーブルレイテンシフィールド1101に保持されるレイテンシが0であるため、アクセス頻度計数加算器1201から出力されるアクセス頻度計数値はビットシフト回路1202によって重み付けがなされず、そのまま最終アクセス頻度計数値1203として出力される。例えば、アクセス頻度計数加算器1201から出力されるアクセス頻度計数値が0x7であれば、0x7が最終アクセス頻度計数値1203として出力される。
ページ制御ユニット701は、上記の重み付けされた最終アクセス頻度計数値1203が最も小さいページを選択し、選択したページとアクセスされるページとが同一バンクに属する場合、選択したページに対するページ非活性化コマンドが発行され、ページが閉じられる。上記の例を用いて説明すると、最終アクセス頻度計数値1203が0x7である、メモリ制御回路201から最も近いメモリモジュール202のページが閉じられることとなり、結果としてアクセス頻度が小さい場合でもレイテンシの大きいページが優先的に活性化状態が保たれる。また、レイテンシの大きいページへのアクセスが停止、あるいは間隔が空いた場合ではアクセス頻度が小さくなり、ビットシフト演算した結果であるアクセス頻度計数値1203が小さくなればレイテンシの大きいページがクローズされる。
本ページ制御ユニット701の構成により、レイテンシの大きいモジュールに対するページの置換に対してレイテンシの小さいモジュールに対するページの置換が優先的に行われることとなり、レイテンシの大きいモジュールに対するページミスペナルティの発生頻度を抑止することができる。また、レイテンシの小さいページに対するアクセス頻度が向上した場合には実際にアクセスが発生しているページの活性化状態を維持できることとなるため、レイテンシとアクセス状態に応じてページミスペナルティを削減し、性能低下を削減することができる。
<第4の実施形態>
次に、本発明の第4の実施形態について説明する。
図7は、本発明の第4の実施形態におけるメモリ制御回路201の構成を示す図である。本構成は、図5に示すページ制御ユニット603と、図7に示すページ制御ユニット801との構成が異なる点を除き、第2の実施形態におけるメモリ制御回路201と同一の構成である。本ページ制御ユニット801は、図5に示すページ制御ユニット603と異なる構成としてページ遷移頻度判定部802を有する。尚、ページ遷移頻度判定部802は、各ページに対するページ遷移頻度を計測するものであり、実装方法は任意である。
次に、本発明の第4の実施形態について説明する。
図7は、本発明の第4の実施形態におけるメモリ制御回路201の構成を示す図である。本構成は、図5に示すページ制御ユニット603と、図7に示すページ制御ユニット801との構成が異なる点を除き、第2の実施形態におけるメモリ制御回路201と同一の構成である。本ページ制御ユニット801は、図5に示すページ制御ユニット603と異なる構成としてページ遷移頻度判定部802を有する。尚、ページ遷移頻度判定部802は、各ページに対するページ遷移頻度を計測するものであり、実装方法は任意である。
本ページ制御ユニット801は、図13に示すように、現在活性化されているページのメモリモジュール番号、バンク番号、行アドレス及び該当ページのレイテンシの組み合わせを活性化ページ管理テーブル内に保持する。
図13は、本実施形態における活性化ページ管理テーブルの一構成例を示す図である。図13の活性化ページ管理テーブルは、図9の活性化ページ管理テーブルと同様にページ活性化テーブル有効フラグフィールド901、ページ活性化テーブルモジュール番号フィールド902、ページ活性化テーブルバンク管理フィールド903、ページ活性化テーブル行アドレスフィールド904及びページ活性化テーブルレイテンシフィールド1201を備える。
以下に、ページ遷移頻度判定部802の構成について説明する。
アクセス頻度判定部802は、Nビット(Nは任意の自然数)のカウンタを有し、このカウンタは、メモリアクセス要求をコマンドバッファ305より受け取る毎に1加算され、最大値になると再度0から計数を開始する。カウンタが0から最大値になる間をアクセス計測単位とする。
アクセス頻度判定部802は、Nビット(Nは任意の自然数)のカウンタを有し、このカウンタは、メモリアクセス要求をコマンドバッファ305より受け取る毎に1加算され、最大値になると再度0から計数を開始する。カウンタが0から最大値になる間をアクセス計測単位とする。
ページ遷移頻度判定部802内には図14に示すようにページ遷移頻度レジスタがバンク毎に用意され、本実施形態においては4モジュールの4バンク構成であるため、ページ遷移頻度レジスタが16組用意されている。各ページ遷移頻度レジスタは、前アクセス計測単位における各バンクのページミス回数カウント値を保持する前ページミス回数カウンタフィールド1301と、現アクセス計測単位におけるページミス回数カウント値を保持する現ページミス回数カウンタフィールド1302とを有し、ページ遷移頻度判定部802は、アクセスコマンドを受け取ると該当バンクに対応するページ遷移頻度レジスタの現ページミス回数カウンタフィールド1302内の現ページミス回数カウント値を1加算する。カウンタが最大値から0になり次のアクセス計測単位に移行した際は、現ページミス回数カウンタフィールド1302内の現ページミス回数カウント値を前ページミス回数カウンタフィールド1301に前ページミス回数カウント値として退避し、現ページミス回数カウンタフィールド1302内の現ページミス回数カウント値を0にクリアする。
各バンクのページ遷移頻度は、前アクセス計測単位におけるページミス回数を示す前ページミス回数カウント値と、現アクセス計測単位におけるページミス回数を示す現ページミス回数カウント値との合計値で与えられる。つまり、前ページミス回数カウント値と現ページミス回数カウント値との合計が大きい程、該当するバンクのページ遷移頻度が高いことを意味する。
以下、本実施形態におけるページ制御ユニット801の動作について説明する。
ページ制御ユニット801がコマンドバッファ305よりメモリアクセス要求を受け取ると、図13の活性化ページ管理テーブルから活性化されているページを参照する。その結果、活性化されていないページへのアクセスである場合、当該アクセスによって活性化されているページとのバンクの衝突が発生する場合はその活性化されているページの非活性化コマンドを発行した後に、ページの活性化コマンドとアクセスコマンドを発行する。一方、当該アクセスによってバンクの衝突が発生しない場合は、活性化ページ最大数レジスタ601の保持値と活性化ページ計数レジスタ602の保持値を比較し、活性化ページ計数レジスタ602の保持値が活性化ページ最大数レジスタ601の保持値よりも小さい値であった場合は、ページの活性化コマンドとアクセスコマンドを発行する。
ページ制御ユニット801がコマンドバッファ305よりメモリアクセス要求を受け取ると、図13の活性化ページ管理テーブルから活性化されているページを参照する。その結果、活性化されていないページへのアクセスである場合、当該アクセスによって活性化されているページとのバンクの衝突が発生する場合はその活性化されているページの非活性化コマンドを発行した後に、ページの活性化コマンドとアクセスコマンドを発行する。一方、当該アクセスによってバンクの衝突が発生しない場合は、活性化ページ最大数レジスタ601の保持値と活性化ページ計数レジスタ602の保持値を比較し、活性化ページ計数レジスタ602の保持値が活性化ページ最大数レジスタ601の保持値よりも小さい値であった場合は、ページの活性化コマンドとアクセスコマンドを発行する。
また、活性化ページ計数レジスタ602の保持値が活性化ページ最大数レジスタ601の保持値と等しい場合は、ページ制御ユニット801は、図13の活性化ページ管理テーブルのページ活性化テーブルレイテンシフィールド1201と、活性化ページ管理テーブルで管理される各ページのバンクに対応するページ遷移頻度レジスタ(図14)とを参照し、前ページミス回数カウンタフィールド1301に保持される前ページミス回数カウント値と現ページミス回数カウンタフィールド1302に保持される現ページミス回数カウント値との合計値(以下、ページ遷移頻度計数値と称す)を求め、ページ活性化テーブルレイテンシフィールド1101に保持されるレイテンシとページ遷移頻度計数値とを用いた所定の計数方法による演算を行う。
次に、ページ制御ユニット801は、その演算結果(以下、最終ページ遷移頻度計数値と称す)に基づいてページを選択し、選択したページに対する非活性化コマンドを発行した後、アクセスを行うページの活性化コマンドとアクセスコマンドを発行する。前記計数方法に関しては、レイテンシが小さいバンクに対するのページ遷移頻度に重み付けを行うことを特徴とした任意の手法で実装される。
図15は、ページ制御ユニット801内に備えられ、ページ毎の重み付けを行った最終ページ遷移頻度計数値を生成する回路の構成例を示す図である。図15に示す回路は、該当するページのレイテンシに示される数値分、右にビットシフトした結果を当該ページのバンクのページ遷移頻度計数に対して重み付けして最終ページ遷移頻度計数を求め、出力する。
例えば、メモリ制御回路201から最も遠いメモリモジュール205に対しては、先ず、メモリモジュール205内の該当するバンクに対応するページ遷移頻度レジスタを対象として、前ページミス回数カウントフィールド1301保持される前ページミス回数カウント値と現ページミス回数カウントフィールド1302に保持される現ページミス回数カウント値とをページ遷移頻度計数加算器1401にて加算してページ遷移頻度計数を求める。
次に、図13の活性化ページ管理テーブルのページ活性化テーブルレイテンシフィールド1101に保持されるレイテンシが3であるため、ビットシフト回路1402により3ビット分、右にビットシフトした結果がページ遷移頻度計数加算器1401から出力されるページ遷移頻度計数に対して重み付けされ、最終ページ遷移頻度計数値1403が出力される。例えば、ページ遷移頻度計数加算器1401から出力されるページ遷移頻度計数値が0x8であった場合は、最終ページ遷移頻度計数値1403は0x1となる。
一方、メモリ制御回路201から最も近いメモリモジュール202に対しては、図13の活性化ページ管理テーブルのページ活性化テーブルレイテンシフィールド1101に保持されるレイテンシが0であるため、ページ遷移頻度計数加算器1401から出力されるページ遷移頻度計数はビットシフト回路1202によって重み付けがなされず、そのまま最終ページ遷移頻度計数値1403として出力される。例えば、ページ遷移頻度加算器1201から出力されるページ遷移頻度計数値が0x7であれば、0x7が最終ページ遷移頻度計数値1403として出力される。
ページ制御ユニット801は、上記に記された重み付けされた最終ページ遷移頻度計数値1203が最も大きいページを選択し、選択したページとアクセスされるページとが同一バンクに属する場合、選択したページに対するページ非活性化コマンドが発行され、ページが閉じられる。上記の例を用いて説明すると、ページ遷移頻度計数値1203が0x7である、メモリ制御回路201から最も近いメモリモジュール202のページが閉じられることとなり、結果としてページ遷移頻度が大きい場合でもレイテンシの大きいページが優先的に活性化状態が保たれる。また、レイテンシの大きいページにてランダムアクセスが多発した場合、ページ遷移頻度計数値が小さくなり、ビットシフト演算した結果が大きければレイテンシの大きいページがクローズされる。
本ページ制御ユニット801の構成により、レイテンシの大きいモジュールに対するページの置換に対してレイテンシの小さいモジュールに対するページの置換が優先的に行われることとなり、レイテンシの大きいモジュールに対するページミスペナルティの発生頻度を抑止することができる。また、レイテンシの大きいページに対するページ遷移頻度が向上しレイテンシの小さいページではページ遷移頻度が小さい場合には、実際にページミスが発生しているページを非活性化状態にできることとなるため、レイテンシとアクセス状態に応じてページミスペナルティを削減し、性能低下を削減することができる。
上記実施形態によれば、メモリデバイスごとにリード時のアクセスレイテンシが異なるメモリシステムに対するメモリ制御回路において、レイテンシに応じてページの活性化、非活性化処理を行うことにより、レイテンシが長いメモリデバイスに対するページミスペナルティの発生を抑止し、性能低下の影響を削減することができる。
また、上記実施形態によれば、レイテンシが小さいメモリに対してはクローズページモードで動作させ、レイテンシが大きいメモリに対してはオープンページモードで動作させることにより、レイテンシの大きいメモリでのページミスを抑止し、レイテンシの大きいメモリでのページミスペナルティによる性能の低下を削減することができ、特にランダムアクセスをレイテンシの小さいメモリにマッピングし、連続アクセスをレイテンシの大きいメモリにマッピングすることにより、メモリシステムにおけるページミスペナルティの影響を最小とし、レイテンシが異なることによる影響を最小限に押さえることが出来る。
また、上記実施形態によれば、レイテンシの小さいページを優先的にページを閉じることにより、レイテンシの大きいメモリのページミスを抑止するとともに、レイテンシの小さいメモリでの高速メモリアクセスが可能となる。
さらに、上記実施形態によれば、レイテンシとアクセスの状態に応じてページ管理を変更することにより、レイテンシの長いメモリでのページミスの発生を抑止するとともに、アクセス状況に応じてレイテンシの小さいページに対しても高速メモリアクセスを可能とすることで、全体でページミスペナルティによる影響による性能低下を削減することが出来る。
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、磁気テープ、不揮発性のメモリカード、ROM等を用いることができる。
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているOS(基本システム或いはオペレーティングシステム)などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
201:メモリ制御回路
202〜205:メモリモジュール
206:バッファ
207:DRAM
304:メモリ情報レジスタ
306、603、701、801:ページ制御ユニット
301:メモリアクセスバス
302:メモリアクセスインタフェース
303:レジスタアクセスバス
304:メモリ情報レジスタ
305:コマンドバッファ
306:ページ制御ユニット
307:メモリコマンド発行制御部
308:メモリデータ受信部
501:メモリモジュール有効フラグ設定フィールド
502:バンク数選択フラグ設定フィールド
503:行アドレスビット数レジスタフィールド
504:列アドレスビット数レジスタフィールド
505:レイテンシレジスタフィールド
506(a):メモリ領域下位アドレスレジスタフィールド
506(b):メモリ領域上位アドレスレジスタフィールド
601:活性化ページ最大数レジスタ
602:活性化ページ計数レジスタ
702:アクセス頻度判定部
802:ページ遷移頻度判定部
901:ページ活性化テーブル有効フラグ設定フィールド
902:ページ活性化テーブルモジュール番号フィールド902
903:ページ活性化テーブルバンク番号フィールド
904:ページ活性化テーブル行アドレスフィールド
1001、1101、1201:ページ活性化テーブルレイテンシフィールド
1002:ページ活性化テーブルカウンタフィールド
1102:前アクセス頻度カウントフィールド
1103:現アクセス頻度カウントフィールド
1201:アクセス頻度計数加算器
1203:最終アクセス頻度計数値
1401:ページ遷移頻度計数加算器
1202、1402:ビットシフト回路
1403:最終ページ遷移頻度計数値
202〜205:メモリモジュール
206:バッファ
207:DRAM
304:メモリ情報レジスタ
306、603、701、801:ページ制御ユニット
301:メモリアクセスバス
302:メモリアクセスインタフェース
303:レジスタアクセスバス
304:メモリ情報レジスタ
305:コマンドバッファ
306:ページ制御ユニット
307:メモリコマンド発行制御部
308:メモリデータ受信部
501:メモリモジュール有効フラグ設定フィールド
502:バンク数選択フラグ設定フィールド
503:行アドレスビット数レジスタフィールド
504:列アドレスビット数レジスタフィールド
505:レイテンシレジスタフィールド
506(a):メモリ領域下位アドレスレジスタフィールド
506(b):メモリ領域上位アドレスレジスタフィールド
601:活性化ページ最大数レジスタ
602:活性化ページ計数レジスタ
702:アクセス頻度判定部
802:ページ遷移頻度判定部
901:ページ活性化テーブル有効フラグ設定フィールド
902:ページ活性化テーブルモジュール番号フィールド902
903:ページ活性化テーブルバンク番号フィールド
904:ページ活性化テーブル行アドレスフィールド
1001、1101、1201:ページ活性化テーブルレイテンシフィールド
1002:ページ活性化テーブルカウンタフィールド
1102:前アクセス頻度カウントフィールド
1103:現アクセス頻度カウントフィールド
1201:アクセス頻度計数加算器
1203:最終アクセス頻度計数値
1401:ページ遷移頻度計数加算器
1202、1402:ビットシフト回路
1403:最終ページ遷移頻度計数値
Claims (12)
- 複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置であって、
前記複数のメモリモジュールのアクセスに対するレイテンシを夫々保持するレンテンシ保持手段と、
ページへのアクセスコマンド情報を受信し、前記複数のメモリモジュールのページの活性化及び非活性化を制御するページ制御手段とを有し、
前記ページ制御手段は、前記複数のメモリモジュールのレイテンシに基づいて、ページの活性化及び非活性化の制御方法を切り替えることを特徴とするメモリ制御装置。 - 前記ページ制御手段は、アクセス対象のページが属するメモリモジュールが所定のレイテンシであって、前記アクセス対象のページと同一バンク内に活性化されているページが存在しない場合、前記アクセス対象のページを活性化するための制御のみを行い、その後、前記アクセス対象のページを非活性化するための制御は行わないことを特徴とする請求項1に記載のメモリ制御装置。
- 前記ページ制御手段は、前記アクセス対象のページが属するメモリモジュールが前記所定のレイテンシより小さいレイテンシである場合、前記アクセス対象のページを活性化するための制御を行った後、前記アクセス対象のページを非活性化するための制御を行うことを特徴とする請求項2に記載のメモリ制御装置。
- 同時に活性化するページの最大数を保持する活性化ページ最大数保持手段と、
現時点で活性化されているページの合計値を保持する活性化ページ計数保持手段と、
前記活性化ページ最大数保持手段に保持される前記最大数と、前記活性化ページ計数保持手段に保持される前記合計値とを比較する比較手段とを有し、
前記ページ制御手段は、前記比較手段による比較の結果、前記合計値と前記最大数とが等しい場合、現在活性化されているページのうちレイテンシが最も小さいメモリモジュールに属するページを非活性化するように制御した後、アクセス対象のページを活性化するように制御することを特徴とする請求項1に記載のメモリ制御装置。 - 同時に活性化するページの最大数を保持する活性化ページ最大数保持手段と、
現時点で活性化されているページの合計値を保持する活性化ページ計数保持手段と、
前記活性化ページ最大数保持手段に保持される前記最大数と、前記活性化ページ計数保持手段に保持される前記合計値とを比較する比較手段と、
現在活性化されている各ページのアクセス頻度を保持するアクセス頻度保持手段と、
前記アクセス頻度に対して、該当するページが属するメモリモジュールのレイテンシに基づく重み付けを行う重み付け手段と有し、
前記ページ制御手段は、前記比較手段による比較の結果、前記合計値と前記最大数とが等しい場合、現在活性化されているページのうち、前記重み付け手段により重み付けされたアクセス頻度が最も小さいページを非活性化するように制御した後、アクセス対象のページを活性化するように制御することを特徴とする請求項1に記載のメモリ制御装置。 - 同時に活性化するページの最大数を保持する活性化ページ最大数保持手段と、
現時点で活性化されているページの合計値を保持する活性化ページ計数保持手段と、
前記活性化ページ最大数保持手段に保持される前記最大数と、前記活性化ページ計数保持手段に保持される前記合計値とを比較する比較手段と、
前記複数のメモリモジュールのバンク毎のページ遷移頻度を保持するページ頻度保持手段と、
前記ページ遷移頻度に対して、該当するバンクが属するメモリモジュールのレイテンシに基づく重み付けを行う重み付け手段とを有し、
前記ページ制御手段は、前記比較手段による比較の結果、前記合計値と前記最大値とが等しい場合、現在活性化されているページのうち、前記重み付け手段により重み付けされたページ遷移頻度が最も大きいバンクに属するページを非活性化するように制御した後、アクセス対象のページを活性化するように制御することを特徴とする請求項1に記載のメモリ制御装置。 - 前記ページ制御手段は、前記比較手段による比較の結果、前記合計値が前記最大数より小さい場合、現在活性化されているページを非活性化する制御を行うことなく、前記アクセス対象のページを活性化するように制御することを特徴とする請求項4乃至6の何れか1項に記載のメモリ制御装置。
- 複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置であって、
前記複数のメモリモジュールのアクセスに対するレイテンシを夫々保持するレンテンシ保持手段と、
前記複数のメモリモジュールのページへのアクセスを制御する制御手段とを有し、
前記ページ制御手段は、前記複数のメモリモジュールのレイテンシに基づいて、ページオープンの状態を維持するオープンページモードとページクローズ状態を維持するクローズページモードの一方を選択することを特徴とするメモリ制御装置。 - 複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置であって、
前記複数のメモリモジュールのアクセスに対するレイテンシを夫々保持するレンテンシ保持手段と、
ページへのアクセスコマンド情報を受信し、前記複数のメモリモジュールのページの活性化及び非活性化を制御するページ制御手段とを有し、
前記ページ制御手段は、前記複数のメモリモジュールのレイテンシに基づいて、非活性化するページを選択することを特徴とするメモリ制御装置。 - 複数のメモリモジュールのページに対するアクセスを制御するメモリ制御装置によるメモリ制御方法であって、
ページへのアクセスコマンド情報を受信し、前記複数のメモリモジュールのページの活性化及び非活性化を制御するページ制御ステップを含み、
前記ページ制御ステップでは、保持手段において前記複数のメモリモジュール毎に保持される前記複数のメモリモジュールのアクセスに対するレイテンシに基づいて、ページの活性化及び非活性化の制御方法を切り替えることを特徴とするメモリ制御方法。 - 請求項10に記載のメモリ制御方法をコンピュータに実行させるためのプログラム。
- 請求項11に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004332106A JP2006146340A (ja) | 2004-11-16 | 2004-11-16 | メモリ制御装置及びメモリ制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004332106A JP2006146340A (ja) | 2004-11-16 | 2004-11-16 | メモリ制御装置及びメモリ制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006146340A true JP2006146340A (ja) | 2006-06-08 |
Family
ID=36625976
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004332106A Pending JP2006146340A (ja) | 2004-11-16 | 2004-11-16 | メモリ制御装置及びメモリ制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2006146340A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009230414A (ja) * | 2008-03-21 | 2009-10-08 | Toshiba Corp | 複数の不揮発性メモリデバイスを有する記憶装置 |
JP2010072792A (ja) * | 2008-09-17 | 2010-04-02 | Seiko Epson Corp | メモリ制御回路、電子機器制御装置、および、複合機 |
CN111158600A (zh) * | 2019-12-30 | 2020-05-15 | 中国人民解放军国防科技大学 | 一种提升高带宽存储器(hbm)访问效率的装置和方法 |
-
2004
- 2004-11-16 JP JP2004332106A patent/JP2006146340A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009230414A (ja) * | 2008-03-21 | 2009-10-08 | Toshiba Corp | 複数の不揮発性メモリデバイスを有する記憶装置 |
JP2010072792A (ja) * | 2008-09-17 | 2010-04-02 | Seiko Epson Corp | メモリ制御回路、電子機器制御装置、および、複合機 |
CN111158600A (zh) * | 2019-12-30 | 2020-05-15 | 中国人民解放军国防科技大学 | 一种提升高带宽存储器(hbm)访问效率的装置和方法 |
CN111158600B (zh) * | 2019-12-30 | 2023-10-27 | 中国人民解放军国防科技大学 | 一种提升高带宽存储器(hbm)访问效率的装置和方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8127081B2 (en) | Memory hub and access method having internal prefetch buffers | |
US7761656B2 (en) | Detection of speculative precharge | |
US20050223161A1 (en) | Memory hub and access method having internal row caching | |
US6151664A (en) | Programmable SRAM and DRAM cache interface with preset access priorities | |
US8180965B2 (en) | System and method for cache access prediction | |
JP2010191638A (ja) | キャッシュ装置 | |
JP2010532517A (ja) | 連想度を設定可能なキャッシュメモリ | |
JP5428687B2 (ja) | メモリ制御装置 | |
JP2011095852A (ja) | キャッシュメモリ制御回路 | |
CN117389914B (zh) | 缓存系统、缓存写回方法、片上系统及电子设备 | |
US20060195665A1 (en) | Access control device, method for changing memory addresses, and memory system | |
US20050232060A1 (en) | Memory controller controlling cashed dram | |
TW491970B (en) | Page collector for improving performance of a memory | |
CN107506139A (zh) | 一种面向相变存储器的写请求优化装置 | |
CN107341112A (zh) | 一种基于页面访问间隔的闪存数据缓冲区置换方法 | |
US20040153610A1 (en) | Cache controller unit architecture and applied method | |
JP2006146340A (ja) | メモリ制御装置及びメモリ制御方法 | |
JPH07248963A (ja) | Dram制御装置 | |
JP2007213381A (ja) | 情報処理装置 | |
TWI447728B (zh) | 動態隨機存取記憶體之控制方法及控制器 | |
CN114911724A (zh) | 一种基于多bank的cache预取技术的访存结构 | |
JP2006072832A (ja) | 画像処理システム | |
JP2002041358A (ja) | プロセッサシステム | |
TWI739430B (zh) | 快取記憶體及快取記憶體的管理方法 | |
JP5393289B2 (ja) | メモリ制御回路、メモリシステム及び制御方法 |