(57)【要約】      （修正有）【課題】高速動作可能なメモリモジュールに対するアクセス性能の低下を防止する。【解決手段】複数のメモリモジュール１０６，１０７，１０８，１０９に対するアクセスを制御するアクセス制御装置であって、複数のメモリモジュールへのアクセス状況を判定する判定手段と、判定の結果に基づいて各メモリモジュールに対応するメモリ空間上のアドレス設定を変更するアドレス設定変更手段とを有する。また、複数のメモリモジュールに対するアクセスを制御するアクセス制御装置の制御方法であって、複数のメモリモジュールへのアクセス状況を判定する判定工程と、判定の結果に基づいて各メモリモジュールに対応するメモリ空間上のアドレス設定を変更するアドレス設定変更工程とを有する。【選択図】図１
2006236105.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリモジュールに対するアクセスを制御するアクセス制御装置であって、
複数のメモリモジュールへのアクセス状況を判定する判定手段と、
前記判定の結果に基づいて各メモリモジュールに対応するメモリ空間上のアドレス設定を変更するアドレス設定変更手段とを有することを特徴とするアクセス制御装置。
【請求項２】
前記判定手段は、前記アクセス状況として各メモリモジュールへのアクセスパターンを判定し、前記アドレス設定変更手段は、前記アクセスパターンに基づいて各メモリモジュールに対応するメモリ空間上のアドレス設定を変更することを特徴とする請求項１記載のアクセス制御装置。
【請求項３】
前記判定手段は、前記アクセス状況として各メモリモジュールへのアクセス回数を計数し、前記アドレス設定変更手段は、前記アクセス回数に基づいて各メモリモジュールに対応するメモリ空間上のアドレス設定を変更することを特徴とする請求項１記載のアクセス制御装置。
【請求項４】
前記判定手段は、前記アクセス状況として各メモリモジュールのページに対するページ遷移数を計数し、前記アドレス設定変更手段は、前記ページ遷移数に基づいて各メモリモジュールに対応するメモリ空間上のアドレス設定を変更することを特徴とする請求項１記載のアクセス制御装置。
【請求項５】
前記アドレス設定変更手段で前記アドレス設定を変更する際に、前記メモリモジュールのデータを変更されたメモリモジュールに複写することを特徴とする請求項３又は請求項４記載のアクセス制御装置。
【請求項６】
複数のメモリモジュールに対するアクセスを制御するアクセス制御装置の制御方法であって、
複数のメモリモジュールへのアクセス状況を判定する判定工程と、
前記判定の結果に基づいて各メモリモジュールに対応するメモリ空間上のアドレス設定を変更するアドレス設定変更工程とを有することを特徴とするアクセス制御装置の制御方法。
【請求項７】
請求項６記載のアクセス制御装置の制御方法をコンピュータに実行させるためのプログラム。
【請求項８】
請求項７記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメモリモジュールに対するアクセスを制御する技術に関する。
【背景技術】
【０００２】
一般的に、主記憶メモリとして使用されているDRAM内のメモリセルはバンク、行、列に分割されており、バンクと行を組み合わせたページ単位でページの活性化を行い（ページオープン、オープン）、活性化を行った後に、列アドレスに対してRead/Writeのコマンドを発行する。そして、ページオープンされているページに対して、プリチャージコマンドを発行することでページの非活性化（ページクローズ、クローズ）を行う（例えば、特許文献１）。
【０００３】
また、あるページがページオープンの状態では、そのページ内の列アドレスに対してはページオープンすることなくアクセスを行うことが可能であり、高速なメモリアクセスが可能となる。
【０００４】
尚、バンク毎に活性化されるページは１つであり、同一バンクで別の行にアクセスする場合は、活性化されているページをクローズし、アクセスを発行するページを活性化してからアクセスを行う列にRead/Writeコマンドを発行する。
【０００５】
また、クローズ状態のページに対してアクセスを発行する場合、ページをオープンした後に、アクセスする列に対してRead/Writeコマンドを発行する。
【０００６】
同一バンクで異なるページにアクセスする際に、ページオープンされていないページに対してアクセスする場合を「ページミス」といい、その際に要する時間、即ち、ページをクローズしてアクセスするページをオープンするまでの時間を「ページミスペナルティ」と呼んでいる。
【０００７】
ところで、近年の半導体技術の向上に伴い、プロセッサやＬＳＩの内部の動作周波数が飛躍的に高速化しており、ＬＳＩの外部に接続されるメモリ、特にDRAMを使用した主記憶メモリに対しても動作周波数の向上が要求され、近年メモリモジュールの高速化が進んでいる。
【０００８】
このような状況下において、DRAMを使用したメモリモジュールも高速化に応じて構造、構成の変更が必要となり、従来PC133（133MHzのクロック周波数で動作するSDRAMと、それを差し込むためのDIMMの規格）等のメモリモジュールではUnbufferedの構成（バッファ・チップが接続（使用）されない構成）でコマンド、データ共にコントローラから出力された信号をそのままモジュール内のメモリモジュールに分配しても問題は生じなかったが、DDR400（DDR SDRAM規格の一つで、400MHz（200MHzのDDR）までのメモリクロックに対応する仕様）等のメモリモジュールでは問題が生じている。
【０００９】
即ち、DDR400等のメモリモジュールを複数、構成する際に、コマンド系の信号が多くのメモリモジュールに分配されて供給されると、基板上の信号の負荷が大きくなることから信号の伝播遅延が大きくなり、Unbufferedの構成では高速動作が保証できなくなる。
【００１０】
そこで、コマンド系の信号を各メモリモジュール内に実装されたレジスタにてラッチし、各メモリモジュールに分配することにより基板上の信号負荷を低減し、高速動作を保証している。
【００１１】
このときデータはコマンド系の信号と比較し基板上の信号負荷が小さいため、高速動作に対する影響は小さかった。
【００１２】
しかしながら、DDR2/DDR3といった更なる高速化の実現を可能とするメモリモジュールを複数用いて構成したシステムを構築すると、各データ信号の分配による基板上の負荷が無視できなくなり、高速動作に影響してしまう。
【００１３】
この高速動作を保証する仕組みとして、例えば図１４に示すような、Point to Pointの高速シリアルインターフェース技術を用いてコマンド、データの伝送を行い、それぞれのメモリモジュール内のバッファでコマンド、データを一旦バッファリングして、伝送する仕組みが実現に向けて検討されている。以下、図１４を用いて本構成のメモリモジュールの動作を説明する。
【００１４】
メモリ制御回路１４０１から発行されるメモリコマンドは、メモリモジュール１４０６〜１４０９内のバッファ１４１１へ伝達される。各バッファ１４１１は自モジュールへのアクセスか、或いは他のモジュールへのアクセスかを判定する。ここで、自モジュールへのアクセスであった場合は、モジュール内のDRAM１４１０へそのコマンドを分配し、他のモジュールへのアクセスであった場合は、次のモジュールへそのコマンドを伝達する。
【００１５】
また、書き込みデータに関しては、メモリコマンドと一緒に伝達される。尚、読み込みデータに関しては、バッファ１４１１を介してメモリコマンドとは逆に、メモリ制御回路１４０１側へとデータを伝播する。
【００１６】
図１４に示す構成では、接続されるモジュール間でコマンド、データがシリアルに伝送されることになり、コマンドや書き込みデータはＬＳＩからの距離の遠いモジュールへの到達サイクルが遅れる。また、読み込みデータはＬＳＩからの距離の遠いモジュールからのレイテンシが長くなる傾向にある。
【００１７】
例えば、図１４に示すメモリ制御回路１４０１に一番近いメモリモジュール１４０６に対するメモリアクセスはコマンド、書き込みデータに対してはバッファ１４１１一段分、また読み出しデータは更に一段分のメモリアクセスレイテンシとなる。
【００１８】
一方、メモリ制御回路１４０１から一番遠いメモリモジュール１４０９に対するメモリアクセスはコマンド、書き込みデータに対してはバッファ１４１１四段分、また読み出しデータは更に四段分のメモリアクセスレイテンシとなるため、メモリモジュールの物理的位置によりアクセスレイテンシが大幅に異なる。
【特許文献１】特開平１０−３７８５号公報
【発明の開示】
【発明が解決しようとする課題】
【００１９】
上述した図１４に示すシステムに対して、従来のメモリモジュールを使用したシステムの場合、図１５に示すように、各メモリモジュール１５０６〜１５０９に対してコマンド、データが分配されるため、それぞれのDRAM１５１０に対するアクセスレイテンシは均一であり、如何なる領域にメモリアクセスを発行してもアクセス性能は均一であった。
【００２０】
しかし、図１４に示すようなメモリモジュールを使用した場合、アクセスされる対象のメモリモジュールに依存してアクセスレイテンシが大幅に異なることになる。
【００２１】
例えば、図１４においてアクセスレイテンシの一番小さいメモリモジュール１４０６に対してメモリアクセスが多く発行された場合と、アクセスレイテンシの一番大きいメモリモジュール１４０９に対してメモリアクセスが多く発行された場合とでは、そのアクセス応答性が大きく異なっているため、メモリアクセスに依存したシステム性能に大きな影響を与えてしまう。
【００２２】
即ち、図１４に示すようなメモリモジュールを搭載したシステムにおいて、例えばアクセスレイテンシの少ないメモリモジュール１４０６に対するメモリアクセス数が少なく、アクセスレイテンシの大きいメモリモジュール１４０９に対するメモリアクセスが多数発行される場合と、アクセスレイテンシの少ないメモリモジュール１４０６に対するメモリアクセスが多数発行され、アクセスレイテンシの大きいメモリモジュール１４０９に対するメモリアクセス数が少ない場合とでは、後者に対して前者のメモリアクセス性能が悪くなる、という問題がある。
【００２３】
この場合、メモリアクセスが多数発行されるメモリ空間をアクセスレイテンシの少ないメモリモジュール１４０６にアドレス割り当てを行うことによって性能の低下を防ぐことができる。
【００２４】
しかしながら、システムに複数の機能やアプリケーションが動作している場合、各々のメモリ空間に対するアクセス頻度は時系列的に変化するため、ある時点でメモリアクセス性能の低下を防ぐメモリ空間の割り当てを行っても、機能及びアプリケーションの変化によりアクセスパターンが変化し、アクセス頻度が高いメモリ空間がアクセスレイテンシの大きいメモリモジュールが割り当てられている空間に遷移した場合、メモリアクセス性能が低下してしまう、という問題がある。
【００２５】
本発明は上記課題を解決するためになされたもので、高速動作可能なメモリモジュールに対するアクセス性能の低下を防止することを目的とする。
【課題を解決するための手段】
【００２６】
本発明は、複数のメモリモジュールに対するアクセスを制御するアクセス制御装置であって、複数のメモリモジュールへのアクセス状況を判定する判定手段と、前記判定の結果に基づいて各メモリモジュールに対応するメモリ空間上のアドレス設定を変更するアドレス設定変更手段とを有することを特徴とする。
【００２７】
また、本発明は、複数のメモリモジュールに対するアクセスを制御するアクセス制御装置の制御方法であって、複数のメモリモジュールへのアクセス状況を判定する判定工程と、前記判定の結果に基づいて各メモリモジュールに対応するメモリ空間上のアドレス設定を変更するアドレス設定変更工程とを有することを特徴とする。
【発明の効果】
【００２８】
本発明によれば、高速動作可能なメモリモジュールに対するアクセス性能の低下を防止することができる。
【発明を実施するための最良の形態】
【００２９】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。本実施形態として、図１１に示したメモリ制御回路１１０１から４組のメモリモジュール１１０６〜１１０９が鎖状に接続され、各メモリモジュールはコマンド、データを受け取り、下流へと伝達するバッファ１１１１と複数のDRAM１１１０とを有するシステムを例に説明する。
【００３０】
尚、ここではメモリ制御回路１１０１から物理的距離が一番近いメモリモジュール１１０６に対するアクセスレイテンシが一番小さく、物理的距離が一番遠いメモリモジュール１１０９に対するアクセスレイテンシが一番大きいものとする。
【００３１】
［第１の実施形態］
図１は、第１の実施形態におけるメモリシステムの構成の一例を示す図である。図１に示すように、メモリモジュール部１０２は図１１に示したメモリモジュール部１１０２に相当するものである。そして、第１の実施形態では、メモリ制御回路１０１がメモリ情報レジスタ１０３、アクセスパターン判定・設定部１０４、メモリインタフェース１０５を含むものである。
【００３２】
ここで、図２を用いて第１の実施形態におけるメモリ制御回路１０１の構成及び制御について説明する。
【００３３】
図２は、第１の実施形態におけるメモリ制御回路１０１の構成の一例を示す図である。図２において、２０２はメモリアクセスインタフェースであり、２０１のメモリアクセスバスを介してメモリモジュール部１０２の各メモリモジュール１０６〜１０９とアクセスコマンド、データの授受を行う。２０５はメモリ情報レジスタであり、２０３のレジスタアクセスバスを介してメモリモジュール部１０２の各メモリモジュール１０６〜１０９への動作設定や状態を保持する。
【００３４】
このメモリ情報レジスタ２０５は、各メモリモジュール１０６〜１０９へのリード時のアクセスレイテンシを指定して保持するメモリ構成情報レジスタ２０９と、メモリ空間と各メモリモジュール１０６〜１０９のアドレス割り当てとを指定するメモリアドレス設定レジスタ２１０とから構成されている。
【００３５】
２０４はアクセスパターン判定・設定部であり、各メモリモジュール１０６〜１０９に対して行われたアクセスの内容をアクセスパターン２１１として入力し、その解析の結果に基づいてメモリ情報レジスタ２０５に設定を行う。このアクセスパターン判定・設定部２０４は、メモリへのアクセスパターン２１１を判定するメモリアクセスパターン判定部２０７と、メモリアドレス設定部２０８とから構成されている。
【００３６】
アクセスパターン判定部２０７では、入力されたアクセスパターン２１１からメモリへアクセスしたアクセス内容の解析を行う。そして、メモリアドレス設定部２０８が、その解析の結果に基づいてチップ上のメモリ空間と各メモリモジュール１０６〜１０９の物理アドレスとの割り当てを決定する。
【００３７】
２１２はメモリ制御コア部であり、各メモリモジュール１０６〜１０９の各DRAM１１０へのメモリアクセス内容を制御する。また、メモリ制御コア部２１２は、不図示のＣＰＵからのアクセス指示により、メモリモジュール部１０２に書き込むメモリ書き込みデータ２１３を受信し、メモリモジュール部１０２から読み出したメモリ読み出しデータ２１４を送信する。
【００３８】
ここで、図３を用いてメモリ情報レジスタ２０５の構成について説明する。尚、第１の実施形態では、メモリ制御回路１０１に４組のメモリモジュール１０６、１０７、１０８、１０９が接続されるため、メモリ情報レジスタ２０５のメモリ構成情報レジスタ２０９及びメモリアドレス設定レジスタ２１０は４組の対応するレジスタ領域を有する。
【００３９】
図３は、第１の実施形態におけるメモリ情報レジスタ２０５の構成及び設定例を示す図である。図３に示す（Ａ）はメモリ構成情報レジスタ２０９の構成及び設定例を示す図、同（Ｂ）はメモリアドレス設定レジスタ２１０の構成及び設定例を示す図である。
【００４０】
まず、メモリ構成情報レジスタ２０９は、接続するメモリモジュールの構成情報としてメモリモジュールが有効か無効かを表すフラグ３０１、メモリバンクの個数３０２を設定する領域と、アドレス情報として行アドレス個数３０３、列アドレス個数３０４を設定する領域と、メモリモジュール毎のレイテンシとして物理的距離情報３０５を設定する領域とを有する。
【００４１】
例えば、メモリバンクの個数３０２の設定はフラグにより行われ、「０」は４バンクのモジュールが接続され、「１」は８バンクのモジュールが接続されることを示している。また、メモリモジュール毎の物理的距離情報３０５は、メモリ制御回路１０１と各メモリモジュール１０６〜１０９との物理的距離が近いものから順に「０」、「１」、「２」、「３」と設定する。
【００４２】
次に、メモリアドレス設定レジスタ２１０は、メモリ領域下位アドレスレジスタフィールド３０６と、メモリ領域上位アドレスレジスタフィールド３０７とを有する。アドレス領域の指定はメモリモジュール毎に、下限領域の開始アドレスのＭＳＢ８ビットと、上限領域の終了アドレスのＭＳＢ８ビットを指定する。
【００４３】
例えば、メモリモジュールの構成として、バンク個数が４、行アドレス個数が１３、列アドレス個数が１０の場合、図３に示す（Ａ）のように、バンク個数４の情報からメモリバンクの個数３０２のレジスタ設定値が「０」、行アドレス個数３０３のレジスタ設定値が「0xd」、列アドレス個数３０４のレジスタ設定値が「0xa」に設定される。
【００４４】
また、メモリアドレスマップが図４に示す４０１〜４０４のように構成されている場合、図３に示す（Ｂ）のように、メモリアドレス設定レジスタ２１０の各メモリモジュール１０６〜１０９に対応するメモリ領域下位アドレスレジスタフィールド３０６及びメモリ領域上位アドレスレジスタフィールド３０７には、「0x00」及び「0x10」、「0x10」及び「0x20」、「0x20」及び「0x30」、「0x30」及び「0x40」が設定される。
【００４５】
ここで、アクセスパターン判定・設定部２０４が入力されたアクセスパターン２１１に基づいてメモリ情報レジスタ２０５に設定を行う処理について説明する。
【００４６】
アクセスパターン判定・設定部２０４は、メモリモジュール１０６〜１０９のどの領域のアドレスを読み書きしているかといったアクセス内容をアクセスパターン２１１として入力し、そのアクセス内容を解析した結果に基づいてメモリ情報レジスタ２０５のメモリ構成情報レジスタ２０９及びメモリアドレス設定レジスタ２１０に書き込む値を生成して設定する。
【００４７】
具体的には、アクセスパターン判定部２０７が入力されたアクセスパターン２１１からメモリモジュール１０６よりもメモリモジュール１０８を物理的に距離が近い方が良いと判定すると、メモリアドレス設定部２０８がメモリアドレスの変更対象となるメモリモジュール１０６の物理的距離情報３０５に書き込む値「２」を生成し、メモリモジュール１０８の物理的距離情報３０５に書き込む値「０」を生成し、新たなメモリアドレス設定値としてメモリ構成情報レジスタ２０９に設定する。
【００４８】
従って、アクセスパターン２１１を解析することにより、メモリへのアクセス頻度情報に応じてチップ上のメモリ空間と各メモリモジュールを割り当てるアドレスとを変更することにより、メモリモジュール毎にリード時のアクセスレイテンシが異なるメモリシステムでメモリ制御回路１０１のレイテンシ増加を抑えることができ、メモリアクセス性能の低下を防ぐことができる。
【００４９】
尚、第１の実施形態は、アクセスパターン判定部２０７、メモリアドレス設定部２０８をソフトウェアによって実現することも可能である。
【００５０】
例えば、アクセスパターン判定部２０７、メモリアドレス設定部２０８を図２に示すようなハードウェア回路ではなく、プログラム等のソフトウェアで実現する場合には、アクセスパターン判定部２０７、メモリアドレス設定部２０８の処理内容はプロセッサで実現する。
【００５１】
また、ソフトウェアで処理する場合は、メモリアドレス設定部２０８の実行結果である新しいメモリアドレス値を直接メモリアドレス設定レジスタ２１０に書き込むことで構成できる。特に、ソフトウェアで回路を実現する場合、ハードウェアの回路規模を削減することが可能であり、ハードウェアで構成した場合と同様に、アクセスレイテンシが異なるメモリシステムでメモリアドレスの割り当てを変更することができ、メモリアクセス性能の低下を防ぐことができる。
【００５２】
第１の実施形態によれば、メモリモジュール毎にアクセスレイテンシが異なるメモリに対するメモリ制御回路において、アクセスパターンに応じてメモリ空間と各メモリモジュールのアドレス割り当てを変更することにより、レイテンシの増加によるメモリアクセス性能の低下を防ぐことができる。
【００５３】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態について詳細に説明する。
【００５４】
図５は、第２の実施形態におけるメモリ制御回路５０１の構成の一例を示す図である。尚、第１の実施形態で用いた図１と同様な機能を有するものには同一の符号を付し、その説明は省略する。
【００５５】
図５において、５０２は第２の実施形態におけるアクセスパターン判定・設定部であり、図１に示したアクセスパターン判定部２０７、メモリアドレス設定部２０８に対応するアクセスパターン判定部５０３、メモリアドレス設定部５０４と、更にメモリモジュールへのアクセス頻度を検出するアクセスカウンタ５０５とを備えている。
【００５６】
ここで、第２の実施形態におけるアクセスカウンタ５０５の構成及び動作について説明する。アクセスカウンタ５０５は、Ｎビット（Ｎは任意の自然数）のカウンタで、メモリアクセス要求をメモリ制御コア部２１２で受け取る毎に１加算（インクリメント）され、カウント値が最大値になると再度０から計数を開始する。尚、カウント値が０から最大値になる間をアクセス計測単位とする。
【００５７】
尚、このアクセスカウンタ５０５は、メモリモジュールの個数及ぶ各メモリモジュールのバンクの数による領域分割個数に対応したメモリアクセスカウンタを有する。
【００５８】
即ち、図６に示すように、アクセスカウンタ５０５は複数のメモリアクセスカウンタで構成され、メモリアクセスカウンタ６０１はメモリモジュール１０６のバンク０、メモリアクセスカウンタ６０２はメモリモジュール１０７のバンク０、メモリアクセスカウンタ６０３はメモリモジュール１０８のバンク０、メモリアクセスカウンタ６０４はメモリモジュール１０９のバンク０といったように、メモリモジュール及びバンクにそれぞれ対応するものである。
【００５９】
従って、本実施形態のように、メモリモジュールが４個でそれぞれ４バンク構成である場合には、メモリアクセスカウンタ５０５として合計１６個のカウンタが用意されることになる。
【００６０】
そして、各メモリモジュールのバンク毎にメモリアクセス頻度を計測することで、より物理的距離が近い場所に配置すべきメモリモジュールの領域を検出し、メモリ領域に割り当てるメモリアドレスを変更するための情報として利用する。
【００６１】
図７は、メモリ領域毎に対応するメモリモジュール及びバンクとメモリアクセス回数の具体例を示す図である。図７は、説明を簡単にするために、各メモリモジュール１０６〜１０９のバンク０のみを示している。
【００６２】
図７に示すように、チップ内のメモリ領域として、メモリ領域１〜メモリ領域４が定義され、物理アドレスとして、メモリモジュール１０６のバンク０領域〜メモリモジュール１０９のバンク０領域に対応するものである。また、各メモリアドレスにおけるメモリが活性化したメモリアクセス回数７０１が示されている。
【００６３】
即ち、図７に示す例では、メモリ領域１に対応するメモリモジュール１０６のバンク０領域に対するメモリアクセスが１５回であったことを示している。
【００６４】
また、チップ内アドレスと物理アドレスとが、例えば図８に示すような対応関係にあるとすれば、チップ内アドレスのメモリ領域１は物理アドレスのメモリモジュール１０６のバンク０領域を、メモリ領域２はメモリモジュール１０７のバンク０領域を、メモリ領域３はメモリモジュール１０８のバンク０領域を、メモリ領域４はメモリモジュール１０９のバンク０領域を、それぞれアクセスすることになる。
【００６５】
そこで、第２の実施形態では、図７に示すメモリモジュールのバンク領域へのアクセス回数７０１からアクセスの多いメモリ領域を物理的に近いメモリアドレス領域に変換することでアクセスレイテンシの改善を図るものである。
【００６６】
即ち、メモリアクセス回数により、メモリモジュールへのアクセスが多い場合には物理的距離が近いメモリモジュールにチップ内アドレスを変更し、またメモリモジュールへのアクセスが少ない場合には物理的距離が遠いメモリモジュールにチップ内アドレスを変更する。
【００６７】
具体的には、図７に示したようなメモリアクセス回数７０１の場合、図８に示すチップ内アドレスと物理アドレスの対応は、図９に示すチップ内アドレスと物理アドレスの対応に変換される。従って、チップ内アドレスのメモリ領域２及びメモリ領域４は、変換前後で変らず、物理アドレスのメモリモジュール１０７のバンク０領域及びメモリモジュール１０９のバンク０領域をそれぞれ参照するが、メモリ領域１はメモリモジュール１０６のバンク０領域からメモリモジュール１０８のバンク０領域へと変更され、メモリ領域３はメモリモジュール１０８のバンク０領域からメモリモジュール１０６のバンク０領域へと変更される（図９に示す破線）。
【００６８】
このように、メモリアクセスの回数に応じて適宜チップ内アドレスの物理アドレスへのアドレス割り当てを変更することで、アクセスレイテンシによる性能低下を削減することができる。
【００６９】
第２の実施形態によれば、メモリ制御回路が実際に発行された分割された各メモリ空間毎のメモリアクセスの回数を計数し、メモリアクセスが多数発行されているメモリ空間をレイテンシの少ないメモリモジュールへとアドレス割り当て変更を行うことにより、動作状況に応じてレイテンシ増加によるメモリアクセス性能の低下を防ぐことができる。
【００７０】
［第３の実施形態］
次に、図面を参照しながら本発明に係る第３の実施形態について詳細に説明する。
【００７１】
図１０は、第３の実施形態におけるメモリ制御回路１００１の構成の一例を示す図である。尚、第１の実施形態で用いた図１と同様な機能を有するものには同一の符号を付し、その説明は省略する。
【００７２】
図１０において、１００２は第３の実施形態におけるアクセスパターン判定・設定部であり、図１に示したアクセスパターン判定部２０７、メモリアドレス設定部２０８に対応するアクセスパターン判定部１００３、メモリアドレス設定部１００４と、更にメモリモジュールにおけるページ遷移を計数するページ遷移カウンタ１００５とを備えている。
【００７３】
ここで、第３の実施形態におけるページ遷移カウンタ１００５の構成及び動作について説明する。ページ遷移カウンタ１００５は、Ｎビット（Ｎは任意の自然数）のカウンタで、メモリモジュールの各領域のページ遷移回数をカウントする。具体的には、メモリ制御コア部２１２でメモリアクセス要求を受けると、該当アドレスのページが活性化されているか、非活性化されているかを判定し、非活性化されている場合には、ページ遷移と判定してページ遷移回数として１加算（インクリメント）され、カウント値が最大値になると再度０から計数を開始する。尚、カウント値が０から最大値になる間をアクセス計測単位とする。
【００７４】
尚、このページ遷移カウンタ１００５は、メモリモジュールの個数及び各メモリモジュールのバンクの数による領域分割個数に対応したページ遷移カウンタを有する。
【００７５】
即ち、図１１に示すように、ページ遷移カウンタ１００５は複数のページ遷移アクセスカウンタで構成され、ページ遷移カウンタ１１０１はメモリモジュール１０６のバンク０、ページ遷移カウンタ１１０２はメモリモジュール１０７のバンク０、ページ遷移カウンタ１１０３はメモリモジュール１０８のバンク０、ページ遷移カウンタ１１０４はメモリモジュール１０９のバンク０といったように、メモリモジュール及びバンクにそれぞれ対応するものである。
【００７６】
従って、本実施形態のように、メモリモジュールが４個でそれぞれ４バンク構成である場合には、ページ遷移カウンタ１００５として合計１６個のカウンタが用意されることになる。
【００７７】
そして、各メモリモジュールのバンク毎にページ遷移回数を計数することで、より物理的距離が近い場所に配置すべきメモリモジュールの領域を検出し、メモリ領域に割り当てるメモリアドレスを変更するための情報として利用する。
【００７８】
図１２は、メモリ領域毎に対応するメモリモジュール及びバンクと、ページ遷移回数の具体例を示す図である。図１２は、説明を簡単にするために、各メモリモジュール１０６〜１０９のバンク０のみを示している。
【００７９】
図１２に示すように、チップ内のメモリ領域として、メモリ領域１〜メモリ領域４が定義され、物理アドレスとして、メモリモジュール１０６のバンク０領域〜メモリモジュール１０９のバンク０領域に対応するものである。また、各メモリアドレスにおけるメモリのページ遷移回数１２０１が示されている。
【００８０】
即ち、図１２に示す例では、メモリ領域１に対応するメモリモジュール１０６のバンク０領域に対するページ遷移が１５回であったことを示している。
【００８１】
また、チップ内アドレスと物理アドレスとが、第２の実施形態で用いた図８に示すような対応関係にあるとすれば、チップ内アドレスのメモリ領域１は物理アドレスのメモリモジュール１０６のバンク０領域を、メモリ領域２はメモリモジュール１０７のバンク０領域を、メモリ領域３はメモリモジュール１０８のバンク０領域を、メモリ領域４はメモリモジュール１０９のバンク０領域を、それぞれアクセスすることになる。
【００８２】
そこで、第３の実施形態では、図１２に示すメモリモジュールのバンク領域へのページ遷移回数１２０１からページ遷移の多いメモリ領域を物理的に近いメモリアドレス領域に変換することでアクセスレイテンシの改善を図るものである。
【００８３】
即ち、ページ遷移回数により、メモリモジュールのページ遷移が多い場合には物理的距離が近いメモリモジュールにチップ内アドレスを変更し、またメモリモジュールのページ遷移が少ない場合には物理的距離が遠いメモリモジュールにチップ内アドレスを変更する。
【００８４】
具体的には、図１２に示したようなページ遷移回数１２０１の場合、図８に示すチップ内アドレスと物理アドレスの対応は、図９に示すチップ内アドレスと物理アドレスの対応に変換される。従って、チップ内アドレスのメモリ領域２及びメモリ領域４は、変換前後で変らず、物理アドレスのメモリモジュール１０７のバンク０領域及びメモリモジュール１０９のバンク０領域をそれぞれ参照するが、メモリ領域１はメモリモジュール１０６のバンク０領域からメモリモジュール１０８のバンク０領域へと変更され、メモリ領域３はメモリモジュール１０８のバンク０領域からメモリモジュール１０６のバンク０領域へと変更される（図９に示す破線）。
【００８５】
尚、各メモリモジュールが複数のバンク（複数のページ）で構成されている場合には、複数のページにおけるページ遷移を考慮して上述したチップ内アドレスを変更することは言うまでもない。
【００８６】
また、ページ管理について詳細な説明は省略するが、従来のメモリモジュールに対して行われるページ管理方法をそのまま適用し、高速アクセスと低消費電力を実現するようにしても良い。
【００８７】
第３の実施形態では、複数のページに対するメモリ制御回路１０１からの距離に応じてページ非活性化時に距離の遠いページの優先度を下げ、また距離の近いページを優先的に非活性化するように制御する。具体的には、以下のように制御する。
・常に距離の近いページをクローズする
・重み付けを行い、距離の近いページをクローズする優先度を上げる（距離の遠いページをクローズする場合の条件（アクセス回数や頻度）を設定する
・距離の遠いメモリモジュールをオープンページモードとする
このように、メモリの活性化領域、非活性化領域のページ遷移回数に応じて適宜チップ内アドレスの物理アドレスへのアドレス割り当てを変更することで、アクセスレイテンシによる性能低下を削減することができる。
【００８８】
第３の実施形態によれば、メモリ制御回路が実際に発行された分割された各メモリ空間毎のページ遷移数を計数し、ページ遷移数の多いメモリ空間をレイテンシの少ないメモリモジュールへとアドレス割り当て変更を行うことにより、レイテンシ増によるページミスペナルティの影響を削減すると共に、ページ遷移の少ないメモリ空間の転送幅を維持し、メモリアクセス性能の最適化を実現することができる。
【００８９】
［第４の実施形態］
次に、図面を参照しながら本発明に係る第４の実施形態について詳細に説明する。
【００９０】
第１乃至第３の実施形態では、アクセスパターン判定部がアクセスパターン、アクセス回数、ページ遷移回数に基づいてメモリアドレスの変更が必要と判定した場合に、メモリ制御コア部２１２でメモリへのアクセスを停止させ、チップ内アドレスの物理アドレスへのアドレス割り当てを変更したが、第４の実施形態では更にメモリモジュールのデータの複写動作を行うものである。
【００９１】
図７に示すように、メモリモジュール毎にメモリへのアクセス回数が計数され、メモリアクセス回数７０１によりメモリ領域１とメモリ領域３のメモリデータを入れ替える必要が発生した場合、メモリ情報レジスタ２０５におけるメモリアドレス設定レジスタ２１０のメモリ領域下位アドレスレジスタフィールド３０６とメモリ領域上位アドレスレジスタフィールド３０７で決定させるメモリモジュールの特定の領域に入っているメモリデータの置き換えを実行する。
【００９２】
図１３は、第４の実施形態におけるメモリデータの複写を示す図である。図１３に示すように、メモリモジュール１０８のバンク０領域と、メモリモジュール１０６のバンク０領域との割り当てを変更する場合、メモリデータを一時的に保持するための任意バッファ領域１３０１を設け、メモリモジュール１０８のバンク０領域１３０２及びメモリモジュール１０６のバンク０領域１３０３のメモリデータを一時的に複写し、新しく割り当てたメモリモジュールの変更先メモリアドレスへ複写することにより、メモリデータの互換性を保つようにしている。
【００９３】
従って、メモリアドレスの置き換え対象となったメモリアドレスへのデータ複写作業が終了した段階で、メモリ制御コア部２１２がメモリモジュールへのアクセスを再開させることにより、問題なく新しいメモリアドレスでメモリデータの読み書きが可能となる。
【００９４】
第４の実施形態によれば、メモリ空間とメモリモジュールのアドレス割り当て変更時に、メモリ複写を行うことにより、割り当て変更後も変更以前に該空間に保持されたメモリデータを使用することが可能となる。
【００９５】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００９６】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００９７】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００９８】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００９９】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１００】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【０１０１】
【図１】第１の実施形態におけるメモリシステムの構成の一例を示す図である。
【図２】第１の実施形態におけるメモリ制御回路１０１の構成の一例を示す図である。
【図３】第１の実施形態におけるメモリ情報レジスタ２０５の構成及び設定例を示す図である。
【図４】メモリモジュールのアドレスマップを示す図である。
【図５】第２の実施形態におけるメモリ制御回路５０１の構成の一例を示す図である。
【図６】図５に示すアクセスカウンタ５０５の構成の一例を示す図である。
【図７】メモリ領域毎に対応するメモリモジュール及びバンクとメモリアクセス回数の具体例を示す図である。
【図８】チップ内アドレスと物理アドレスとの対応関係を示す図である。
【図９】変換後のチップ内アドレスと物理アドレスとの対応関係を示す図である。
【図１０】第３の実施形態におけるメモリ制御回路１００１の構成の一例を示す図である。
【図１１】図１０に示すページ遷移カウンタ１００５の構成の一例を示す図である。
【図１２】メモリ領域毎に対応するメモリモジュール及びバンクと、ページ遷移回数の具体例を示す図である。
【図１３】第４の実施形態におけるメモリデータの複写を示す図である
【図１４】高速動作可能なメモリモジュールを用いたシステムの構成の一例を示す図である。
【図１５】従来のメモリモジュールを用いたシステムの構成の一例を示す図である。
【符号の説明】
【０１０２】
１０１  メモリ制御回路
１０２  メモリモジュール部
１０３  メモリ情報レジスタ
１０４  アクセスパターン判定・設定部
１０５  メモリインタフェース
１０６  メモリモジュール
１０７  メモリモジュール
１０８  メモリモジュール
１０９  メモリモジュール
１１０  DRAM
１１１  buffer
２０１  メモリアクセスバス
２０２  メモリアクセスインタフェース
２０３  レジスタアクセスバス
２０４  アクセスパターン判定・設定部
２０５  メモリ情報レジスタ
２０７  アクセスパターン判定部
２０８  メモリアドレス設定部
２０９  メモリ構成情報レジスタ
２１０  メモリアドレス設定レジスタ
２１１  アクセスパターン
２１２  メモリ制御コア部
２１３  メモリ書き込みデータ
２１４  メモリ読み出しデータ
３０１  メモリモジュール有効フラグ
３０２  メモリバンク個数
３０３  行アドレス個数
３０４  列アドレス個数
３０５  物理的距離情報
３０６  メモリ領域下位アドレスレジスタフィールド
３０７  メモリ領域上位アドレスレジスタフィールド
４０１  メモリモジュール１０６領域
４０２  メモリモジュール１０７領域
４０３  メモリモジュール１０８領域
４０４  メモリモジュール１０９領域
５０５  アクセスカウンタ
６０１  メモリアクセスカウンタ（メモリ領域１）
６０２  メモリアクセスカウンタ（メモリ領域２）
６０３  メモリアクセスカウンタ（メモリ領域３）
６０４  メモリアクセスカウンタ（メモリ領域４）
７０１  メモリアクセス回数
１００５  ページ遷移カウンタ
１１０１  ページ遷移カウンタ（メモリ領域１）
１１０２  ページ遷移カウンタ（メモリ領域２）
１１０３  ページ遷移カウンタ（メモリ領域３）
１１０４  ページ遷移カウンタ（メモリ領域４）
１２０１  ページ遷移回数
１３０１  バッファ領域
１３０２  メモリモジュール１０８のバンク０
１３０３  メモリモジュール１０６のバンク０
【図１】
2006236105.tif 000003
【図２】
2006236105.tif 000004
【図３】
2006236105.tif 000005
【図４】
2006236105.tif 000006
【図５】
2006236105.tif 000007
【図６】
2006236105.tif 000008
【図７】
2006236105.tif 000009
【図８】
2006236105.tif 000010
【図９】
2006236105.tif 000011
【図１０】
2006236105.tif 000012
【図１１】
2006236105.tif 000013
【図１２】
2006236105.tif 000014
【図１３】
2006236105.tif 000015
【図１４】
2006236105.tif 000016
【図１５】
2006236105.tif 000017