(57)【要約】【課題】  アプリケーションの動作状況の変化に基づいて、アプリケーションがアクセスするメモリ空間をメモリモジュールに動的に割り当てる。【解決手段】  アプリケーションの動作状況に基づいて、アプリケーションがアクセスするメモリ空間を割り当てるべきメモリデバイスをシリアルインターフェースによって接続された複数のメモリデバイスから決定する。そして決定したメモリデバイスへのアクセスを制御する。【選択図】      図４
2007334835.tif 000002
【特許請求の範囲】
【請求項１】
複数のメモリデバイスをシリアルインターフェースによって接続し、各メモリデバイスへのアクセスを制御するメモリ制御装置であって、
アプリケーションの動作状況に基づいて、アプリケーションがアクセスするメモリ空間を割り当てるべきメモリデバイスを決定する決定手段と、
前記決定手段で決定したメモリデバイスへのアクセスを制御するアクセス制御手段とを有することを特徴とするメモリ制御装置。
【請求項２】
前記決定手段は、前記動作状況が変化し、動作中のアプリケーションが少なくとも１つある場合、アプリケーションがアクセスするメモリ空間を割り当てるべきメモリデバイスを決定することを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
前記決定手段は、前記メモリデバイスのアクセスレイテンシに基づいてメモリデバイスを決定することを特徴とする請求項１又は２記載のメモリ制御装置。
【請求項４】
前記決定手段は、複数のアプリケーションが動作中の場合、各アプリケーションに予め指定されている優先度に従ってメモリデバイスを決定することを特徴とする請求項１乃至３の何れか一項記載のメモリ制御装置。
【請求項５】
前記動作状況は、前記アプリケーションの動作を監視する監視手段によって指定されることを特徴とする請求項１乃至４の何れか一項記載のメモリ制御装置。
【請求項６】
前記動作状況を判定する判定手段を有し、前記決定手段は、前記判定手段で判定された結果からメモリデバイスを決定することを特徴とする請求項１乃至４の何れか一項記載のメモリ制御装置。
【請求項７】
複数のメモリデバイスをシリアルインターフェースによって接続し、各メモリデバイスへのアクセスを制御するメモリ制御装置の制御方法であって、
アプリケーションの動作状況に基づいて、アプリケーションがアクセスするメモリ空間を割り当てるべきメモリデバイスを決定する決定工程と、
前記決定工程で決定したメモリデバイスへのアクセスを制御するアクセス制御工程とを有することを特徴とするメモリ制御装置の制御方法。
【請求項８】
請求項７記載のメモリ制御装置の制御方法の各手順をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のメモリデバイスをシリアルインターフェースによって接続し、各メモリデバイスへのアクセスを制御する技術に関する。
【背景技術】
【０００２】
近年、半導体技術の向上に伴い、プロセッサやＬＳＩなどの内部の動作周波数が飛躍的に高速化している。また、外部に接続されるメモリ、特にDRAMを使用した主記憶メモリに対しても動作周波数の向上が要求され、メモリモジュールの高速化が進んでいる。
【０００３】
このDRAMを使用したメモリモジュールも高速化に応じて構造、構成の変更が必要となる。即ち、DDR400等のメモリモジュールを複数、構成する際に、コマンド系の信号が多くのメモリモジュールに分配されて供給されると、基板上の信号の負荷が大きくなり、信号の伝播遅延が大きくなる。そのため、PC133などのメモリモジュールにおけるUnbufferedの構成では高速動作が保証できなくなる。
【０００４】
そこで、コマンド系の信号を各メモリモジュール内に実装されたレジスタにラッチして各メモリモジュールに分配することにより、基板上の信号負荷を低減し、高速動作を保証している。このときデータはコマンド系の信号と比較して基板上の信号負荷が小さいため、高速動作に対する影響は小さかった。
【０００５】
しかしながら、DDR2/DDR3といった更なる高速化の実現を可能とするメモリモジュールを複数用いて構成したシステムを構築すると、各データ信号の分配による基板上の負荷が無視できなくなり、高速動作に影響してしまう。
【０００６】
近年、例えばPoint to Pointの高速シリアルインターフェース技術を用いてコマンド、データの伝送を行い、メモリモジュール内のバッファでコマンド、データを一旦バッファリングして伝送する方法が提案されている。例えば、特許文献１参照。
【０００７】
ここで、図１を用いて、高速シリアルインターフェース技術を用いたメモリモジュールの動作を説明する。
【０００８】
メモリ制御回路１０１から発行されるメモリコマンドは、各メモリモジュール１０６〜１０９内のバッファ１１１に伝達される。各バッファ１１１は、自メモリモジュールへのアクセスか、或いは他のメモリモジュールへのアクセスかを判定する。ここで、自メモリモジュールへのアクセスであれば、自メモリモジュール内のDRAM１１０へそのコマンドを分配する。一方、他のメモリモジュールへのアクセスであれば、次のメモリモジュールへそのコマンドを伝達する。
【０００９】
また、書き込みデータに関しては、メモリコマンドと一緒に伝達され、読み込みデータに関しては、バッファ１１１を介してメモリコマンドとは逆に、メモリ制御回路１０１側へデータが伝播される。
【００１０】
図１に示す構成では、ＬＳＩに接続される各メモリモジュール間でコマンド、データがシリアルに伝送されることになり、コマンドや書き込みデータはＬＳＩからの距離の遠いメモリモジュールへの到達サイクルが遅れる。また、読み込みデータはＬＳＩからの距離の遠いメモリモジュールからのレイテンシが長くなる傾向にある。
【００１１】
例えば、図１に示すメモリ制御回路１０１に一番近いメモリモジュール１０６に対するメモリアクセスは、コマンド、書き込みデータに対してはバッファ１１１の一段分、また読み出しデータは更に一段分のメモリアクセスレイテンシとなる。
【００１２】
一方、メモリ制御回路１０１から一番遠いメモリモジュール１０９に対するメモリアクセスは、コマンド、書き込みデータに対しては各メモリモジュール内のバッファ１１１の四段分、また読み出しデータは更に四段分のメモリアクセスレイテンシとなる。そのため、メモリモジュールの物理的位置によりアクセスレイテンシが大幅に異なる。
【特許文献１】特開2006-065697号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
図２に示す従来のメモリモジュールを使用したシステムの場合、各メモリモジュールに対してコマンド、データが分配される。そのため、各メモリモジュールに対するアクセスレイテンシは均一であり、どの領域にメモリアクセスを発行してもアクセス性能は均一であった。しかし、上述した図１に示すメモリモジュールを使用した場合、アクセスされる対象のメモリモジュールに依存してアクセスレイテンシが大幅に異なる。
【００１４】
例えば、レイテンシの一番小さいメモリモジュール１０６へメモリアクセスが多く発行された場合と、レイテンシの一番大きいメモリモジュール１０９へメモリアクセスが多く発行された場合とでは、アクセス応答性が大きく異なる。このように、メモリアクセスに依存したシステム性能に大きく影響を与える。
【００１５】
そこで、メモリアクセスが多数発行されるメモリ空間をアクセスレイテンシの少ないメモリモジュール１０６にアドレス割り当てることにより、システム性能の低下を防ぐことができる。しかし、システムで複数の機能やアプリケーションが動作する場合、各メモリ空間に対するアクセス頻度は動作状況に応じて変化する。例えば、コピー、プリントなどの複数の機能を有する複合機では、コピーを中心に使用する場合とプリントを中心に使用する場合とが考えられ、それぞれの場合で集中的にアクセスされるメモリアクセス空間が異なる。
【００１６】
従って、ある機能やアプリケーションに対してメモリアクセスの性能低下を防ぐためにメモリ空間の割り当てを行っても、使用形態が変化するといった動作状況の変化により、メモリアクセス性能が低下する。
【００１７】
本発明は、アプリケーションの動作状況の変化に基づいて、アプリケーションがアクセスするメモリ空間をメモリモジュールに動的に割り当てることを目的とする。
【課題を解決するための手段】
【００１８】
本発明は、複数のメモリデバイスをシリアルインターフェースによって接続し、各メモリデバイスへのアクセスを制御するメモリ制御装置であって、アプリケーションの動作状況に基づいて、アプリケーションがアクセスするメモリ空間を割り当てるべきメモリデバイスを決定する決定手段と、前記決定手段で決定したメモリデバイスへのアクセスを制御するアクセス制御手段とを有することを特徴とする。
【発明の効果】
【００１９】
本発明によれば、アプリケーションの動作状況の変化に基づいて、アプリケーションがアクセスするメモリ空間をメモリモジュールに動的に割り当てることで、メモリアクセス性能の低下を防止することができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。
【００２１】
本実施形態では、図１に示すメモリ制御回路１０１から４組のメモリモジュール１０６〜１０９が鎖状に接続され、各メモリモジュールはコマンド、データを受け取り、下流へ伝達するバッファ１１１と複数のDRAM１１０とを有するシステムを説明する。
【００２２】
尚、ここではメモリ制御回路１０１から物理的距離が一番近いメモリモジュール１０６へのアクセスレイテンシが一番小さく、物理的距離が一番遠いメモリモジュール１０９へのアクセスレイテンシが一番大きいものとする。
【００２３】
［第１の実施形態］
図３は、第１の実施形態におけるメモリシステムの構成の一例を示す図である。図３において、３０１はメモリ制御回路であり、メモリ情報レジスタ３０３と、メモリアクセスインターフェース３０４と、システム動作モード検知部３０５と、メモリ制御コア部３０６とを含む。３０２はメモリモジュール部であり、図１に示すメモリモジュール部１０２に相当する。
【００２４】
ここで、図４を用いて第１の実施形態におけるメモリ制御回路３０１の詳細な構成及び動作を説明する。
【００２５】
図４は、第１の実施形態におけるメモリ制御回路３０１の構成の一例を示す図である。図４において、４０１はＣＰＵや他のモジュール（不図示）とメモリ制御回路３０１とを接続するメモリアクセスバスであり、メモリモジュール３０２へのアクセスコマンド、データの授受を行う。尚、メモリアクセスバス４０１は、メモリアクセスインターフェース３０４によりメモリ制御コア部３０６に接続されている。
【００２６】
４０２はＣＰＵや他のモジュール（不図示）とメモリ制御回路３０１とを接続するレジスタアクセスバスであり、動作設定や状態を保持するレジスタへのアクセスを行う。尚、レジスタアクセスバス４０２は、システム動作モード検知部３０５とメモリ情報レジスタ４０３に接続されている。
【００２７】
システム動作モード検知部３０５において、４０３はシステム動作モード指定レジスタであり、システムの動作モードを指定するレジスタである。４０４はメモリアドレス設定部であり、メモリモジュール３０２のアドレスを設定する。
【００２８】
メモリ情報レジスタ３０３において、４０５はメモリ構成情報レジスタであり、メモリモジュール３０２へのリード時のアクセスレイテンシを指定して保持するレジスタである。４０６はメモリアドレス設定レジスタであり、メモリ空間と各メモリモジュールのアドレス割り当てを指定するレジスタである。
【００２９】
図５は、メモリ情報レジスタ３０３内のメモリ構成情報レジスタ４０５の構成の一例を示す図である。図５に示すように、メモリ構成情報レジスタ４０５は、接続可能なメモリモジュール３０２の数だけ設定レジスタを有する。図５に示す例では、最大４個のメモリモジュールが接続可能な構成で、４組の設定レジスタを有する。そして、各設定レジスタはメモリモジュールの構成情報とレイテンシ情報とを保持する。
【００３０】
この例では、メモリモジュール毎に有効か無効かを示すフラグ５０１と、メモリバンクの個数５０２と、行アドレスビット数５０３と、列アドレスビット数５０４と、各メモリモジュールの物理的距離情報５０５とを保持するフィールドを有する。
【００３１】
まず、フラグ５０１には、メモリモジュールが接続されていれば“１”が、接続されていない場合は“０”が設定される。次に、メモリバンク個数フィールド５０２には、接続されるメモリモジュールのメモリバンク数が４バンクであれば“０”が、８バンクであれば“１”が設定される。次に、行アドレスビット数フィールド５０３と列アドレスビット数フィールド５０４は各メモリモジュールの行アドレスビット数と列アドレスビット数が指定される。
【００３２】
従って、この例では、４個のメモリモジュールが有効であり、各メモリモジュール共に４バンク、行アドレス１３ビット、列アドレス１０ビットのデバイスである。また、物理的距離情報５０５はメモリ制御回路３０１からメモリモジュール３０２までの物理的距離が近いものから昇順に０、１、２、３と指定される。これは、図３に示すように、物理的距離が近い順に、メモリモジュール１０６、１０７、１０８、１０９と並ぶ構成になっているため、図５に示す物理的距離情報５０５が指定されている。
【００３３】
ここで図４に戻り、メモリアドレス設定レジスタ４０６は、各メモリモジュールに割り当てられるチップ内アドレス空間を指定するレジスタである。
【００３４】
図６は、メモリアドレス設定レジスタ４０６の構成の一例を示す図である。図６に示すように、このレジスタ４０６は各メモリモジュールに対して割り当てられるメモリ空間のアドレスフィールド６０１、６０２を有する。６０１はメモリ空間の下限アドレスの上位８ビットを保持する下限アドレスフィールドである。６０２はメモリ空間の上限アドレス＋１番地の上位８ビットを保持する上限アドレスフィールドである。
【００３５】
例えば、各メモリモジュール（１０６〜１０９）が図７に示すようなメモリ空間７０１〜７０４に割り当てられた場合、図６に示す設定値が得られる。即ち、メモリモジュール１０６の下限アドレスは0x00000000であるため、下限アドレスフィールド６０１は0x00000000の上位８ビットの“0x00”となる。また、上限アドレス＋１番地は0x10000000であるため、上限アドレスフィールド６０２の設定値は0x10000000の上位８ビットの“0x10”となる。その他のメモリモジュールも同様に設定値が得られる。
【００３６】
ここで図４に戻り、メモリ制御コア部３０６における制御を説明する。メモリ制御コア部３０６は、メモリマスタからのメモリアクセス要求をメモリアクセスインターフェース３０４を介して受信する。そして、メモリモジュール３０２が割り当てられたメモリ空間のアドレスに変換し、メモリモジュール３０２へのアクセスを発行する。
【００３７】
具体的には、メモリ情報レジスタ３０３内のメモリ構成情報レジスタ４０５及びメモリアドレス設定レジスタ４０６の設定値を参照する。そしてアクセス要求されたアドレスに対してアクセスするメモリモジュール、バンクアドレス、行アドレス、列アドレスを算出し、レジスタで指定されたアドレス割り当てに応じて該当するメモリモジュールに対してメモリアクセス要求を発行する。その他、メモリに規定されるタイミングの制御、リフレッシュ、ページ管理を行い、メモリの制御を司る。
【００３８】
第１の実施形態においては、アクセスアドレスとメモリ空間のアドレス割り当てを行う構成以外に関し、メモリ制御コア部３０６の構成は任意である。
【００３９】
次に、システム動作モード検知部３０５の処理について説明する。システム動作モード検知部３０５内の動作モード指定レジスタ４０３で検知されたシステムのメモリアクセスパターンに応じたシステム動作モードが指定される。例えば、図８に示す複合機器の制御回路では、コピー／プリント／ＦＡＸ／ネットワーク送受信などの複数の機能を実現する際に、メモリをバッファとして使用する。その際に、画像処理バッファのメモリアドレス割り当てはシステム、或いはソフトウェアに依存するが、その一実装方法として画像処理バッファメモリ領域を固定アドレスに割り当てる方法がある。
【００４０】
図９に示すように、コピー処理は0x18000000〜０ｘ１FFFFFFF、プリント処理は0x20000000〜0x27FFFFFFというようにメモリ内に固定領域として割り当てることが可能である。複合機器の制御回路では種々の機能を切り替えて使用するため、ある期間はコピー機能を中心に使用し、また別の期間はプリント機能やネットワーク送受信機能を中心に使用するというように動作モードが時系列に切り替わることが想定される。
【００４１】
上述したように、各処理のバッファメモリ領域を固定アドレスとして割り当てた場合、複合機器の制御回路では動作モードの変化に応じて集中的にアクセスされるメモリ領域が推移する。例えば、図９に示す例では、コピー動作モードの場合は、0x10000000番地台のアクセスが頻発し、ネットワーク処理を中心に動作しているときには0x00000000番地台のアクセスが集中する。
【００４２】
第１の実施形態では、動作中のソフトウェアを監視することでシステムの動作モードを検知し、動作モードを動作モード指定レジスタ４０３に指定する。また、コピー動作からＦＡＸ受信動作への動作モードの切り替わりを検知すると、その動作モードを動作モード指定レジスタ４０３に設定する。動作モード検知部３０５は、各動作モードでのアクセス領域テーブルを保持し、各動作モードで頻繁にアクセスされるメモリアクセス領域を判別する。動作モード指定レジスタ４０３の設定値と各動作モードでのアクセス領域テーブルより、動作モード検知部３０５は頻繁にアクセスされるメモリアクセス領域を判別する。そして、アクセス応答時間の近いデバイスに対して頻繁にアクセスされるアドレス領域を割り当てるよう、各メモリモジュールに対するメモリアドレス割り当てを決定し、メモリアドレス設定部４０４に通知する。
【００４３】
図１０は、動作モード指定レジスタ４０３の構成の一例を示す図である。図１０に示すように、動作モード指定レジスタ４０３は、動作モードを指定するフィールド１００１〜１００４を有する。また、動作モードは動作モードの検知に従って該当するフィールドに“１”が設定される。
【００４４】
この例では、フィールド１００１はコピー動作モードとし、フィールド１００２はプリント動作モードとし、フィールド１００３はＦＡＸ動作モードとし、フィールド１００４はネットワーク動作モードとする。
【００４５】
また、各動作モードの処理バッファが図９で指定される領域に割り当てられるとすれば、動作モードとアクセス領域との関係は図１１に示すテーブルとして保持される。また、図１１に示すテーブルに関しては、レジスタ設定により構成されても良い。
【００４６】
動作モード指定レジスタ４０３に対してアクセスが発行されると、システム動作モード検知部３０５が以下の条件に応じて、メモリアドレス割り当てを決定する。
【００４７】
即ち、動作モード指定レジスタ４０３に対するアクセスで動作モードが以前と変更ない場合、或いはフィールド１００１〜１００４が非動作（全て“０”）に設定された場合、メモリアドレス割り当てを変更しない。
【００４８】
新たにフィールド１００１〜１００４の何れかが有効（“１”）とされた場合、或いはフィールド１００１〜１００４のうちあるフィールドを非動作に設定し、且つ設定後あるフィールドが有効である場合、メモリアドレス割り当ての決定を行う。
【００４９】
また、複数の動作モードが指定された場合、フィールド１００１から１００４への順に優先順位が付けられ、この順に従って優先的にアドレス割り当てを行う。
【００５０】
次に、このメモリアドレス割り当ての具体例を説明する。システムソフトウェアが動作モードの変更を検知し、コピーの場合には動作モード指定レジスタ４０３内のフィールド１００１にセットする。尚、設定以前の動作モード指定レジスタ４０３は全て非動作状態であり、上述の検知により動作モード指定レジスタ４０３の設定値が0x0から0x80000000へ変更される。
【００５１】
ここで、システム動作モード検知部３０５は、動作モード設定レジスタ４０３の変更を受け、アドレス割り当ての決定を行う。このとき、接続されるメモリモジュール、メモリアドレス割り当ては図７に示すように容量２５６MBのメモリモジュールが４つ接続されているものとする。
【００５２】
動作モード検知部３０５は動作モードの変更により、フィールド１００１〜１００４の設定値を参照する。ここで、フィールド１００１がコピーの動作モードに設定されていることが判別される。その結果、図１１に示すアクセス領域フィールドにより、0x18000000-0x1FFFFFFFの領域に対して頻繁にメモリアクセスが発行されることが想定される。
【００５３】
即ち、0x18000000-0x1FFFFFFFを含む0x10000000台の領域を一番近いメモリモジュール１０６に割り当てる。それ以外に関しては、0x00000000台、0x20000000台、0x30000000台という順でメモリモジュールとアドレスの割り当てを決定する。そして、メモリモジュールとアドレス領域指定の組み合わせでメモリアドレス設定部４０４に通知する。
【００５４】
一方、メモリアドレス設定部４０４は、メモリアドレス割り当て指定に従い、メモリアドレス設定レジスタ４０６に対してメモリアドレス設定コマンドを発行する。これにより、図１２に示すように、メモリアドレス設定レジスタ４０６にメモリアドレス１２０１、１２０２が設定される。つまり、アクセス頻度の高いコピー処理のバッファを含むメモリ空間がレイテンシの一番小さいメモリモジュール１０６に割り当てられる。
【００５５】
更に、システムソフトウェアがプリント及びネットワークの動作モードの活性化を検知すると、動作モード設定レジスタ４０３内のフィールド１００２、１００４が有効となる。そして、動作モード設定レジスタ４０３の設定値が0x80000000から0xD0000000へと変更される。動作モード検知部３０５は動作モードの変更により、フィールド１００１〜１００４の設定値を参照する。このとき、フィールド１００１、１００２、１００４に“１”が設定されており、コピー、プリント、ネットワークの各動作モードであることが判別される。そして、図１１に示すテーブルからコピー、プリント、ネットワークのアドレス領域に対して頻繁にメモリアクセスが発行されることが想定される。この場合、複数の領域が指定されているため、予め指定されている優先度に従ってフィールド１００１、１００２、１００４の順にメモリアドレス領域の割り当てを行う。
【００５６】
即ち、一番優先度の高いコピーに対する領域0x18000000-0x1FFFFFFFを含む0x10000000台のメモリ領域を一番近いメモリモジュール１０６に割り当てる。次の優先度のプリントに対する領域0x20000000-0x27FFFFFFを含む0x20000000台のメモリ領域を２番目のメモリモジュール１０７に割り当てる。３つの中で一番優先度の低いネットワークに対する領域0x08000000-0x0BFFFFFFを含む0x00000000台のメモリ領域を３番目のメモリモジュール１０８に割り当てる。そして、残りの0x30000000台のメモリ領域を一番遠い４番目のメモリモジュール１０９に割り当てる。このメモリモジュールとアドレス領域指定との組み合わせがメモリアドレス設定部４０４に通知される。
【００５７】
一方、メモリアドレス設定部４０４は、メモリアドレス割り当ての指定に従い、メモリアドレス設定レジスタ４０６に対してメモリアドレス設定コマンドを発行する。これにより、図１３に示すように、メモリアドレス設定レジスタ４０６にメモリアドレス１３０１、１３０２が設定される。つまり、優先度に従ってプリント及びネットワーク処理のバッファを含むメモリ空間がメモリモジュール１０７、１０８に割り当てられる。
【００５８】
ここで、コピーが終了すると、動作モード設定レジスタ４０３内のフィールド１００１が無効化され、動作モード設定レジスタ４０３の設定値が0xD0000000から0x50000000へと変更される。動作モード検知部３０５は動作モードの変更により、フィールド１００１〜１００４の設定値を参照する。このとき、フィールド１００２、１００４が設定されており、プリント、ネットワークの処理モードであることが判別される。その結果、図１１に示すアクセス領域フィールドにより、0x20000000-0x27FFFFFF、0x08000000-0x0BFFFFFFの２領域に対して頻繁にメモリアクセスが発行されることが想定される。この場合、複数の領域が指定されているため、予め指定されている優先度に従ってフィールド１００２、１００４の順にメモリアドレス領域の割り当てを行う。
【００５９】
即ち、一番優先度の高いプリントに対する領域0x20000000-0x27FFFFFFを含む0x20000000台のメモリ領域を一番近いメモリモジュール１０６に割り当てる。次の優先度のネットワークに対する領域0x08000000-0x0BFFFFFFを含む0x00000000台のメモリ領域を２番目のメモリモジュール１０７に割り当てる。そして、残りの0x10000000台を３番目のメモリモジュール１０８に割り当て、0x30000000台のメモリ領域を一番遠い４番目のメモリモジュール１０９に割り当てる。このメモリモジュールとアドレス領域指定との組み合わせがメモリアドレス設定部４０４に通知される。
【００６０】
一方、メモリアドレス設定部４０４は、メモリアドレス割り当ての指定に従い、メモリアドレス設定レジスタ４０６に対してメモリアドレス設定コマンドを発行する。これにより、図１４に示すように、メモリアドレス設定レジスタ４０６にメモリアドレス１４０１、１４０２が設定される。つまり、プリント処理のメモリ空間がレイテンシの一番小さいメモリモジュール１０６に割り当てれ、ネットワーク処理のメモリ空間がメモリモジュール１０７に割り当てられる。
【００６１】
その後、プリント及びネットワークが終了すると、動作モード設定レジスタ４０３内のフィールド１００２、１００４の設定が解除され、設定値が0x50000000から0x00000000へと変更される。このとき、フィールド１００１〜１００４の設定値が全て無効化されているため、新たなアドレス割り当てを行わず、次に動作モード設定レジスタ４０３が設定されるのを待つ。
【００６２】
以上説明したように、メモリアクセスパターンの変更を伴う動作モードが変更されると、アクセス頻度の多いメモリ領域をレイテンシの小さいメモリモジュールに割り当てる。その結果、ある動作モードでのアクセス頻度の多いメモリ領域に対するレイテンシ増加を抑えることができ、メモリアクセス性能の低下を防ぐことができる。
【００６３】
また、ソフトウェアにて動作モードの変更を検知し、予め動作モードを指定することで、事前にアドレス割り当てを変更することが可能となり、システムの処理性能の最適化を図ることができる。また動作モードの指定をユーザーインターフェースに開放することで、複合機器の制御回路等では実使用条件に合わせたメモリアクセス性能を最適化することも可能である。
【００６４】
更に、メモリのアドレス割り当ての変更時にメモリ内容を複写することにより、データを保証することも可能となる。
【００６５】
［第２の実施形態］
次に、図面を参照しながら本発明に係る第２の実施形態について詳細に説明する。
【００６６】
第２の実施形態は、第１の実施形態の動作モード指定レジスタ４０３の代わりに、動作モード検出部を備え、システムの動作モードを検出するものである。
【００６７】
図１５は、第２の実施形態におけるメモリ制御回路３０１の構成の一例を示す図である。尚、図１５に示す構成は、図４に示す第１の実施形態の構成とシステムの動作モードを検出する動作モード検出部１５０１の構成及び動作が異なることを除き、同一である。
【００６８】
以下、第２の実施形態における動作モード検出部１５０１の構成及び動作を詳細に説明する。
【００６９】
動作モード検出部１５０１は、メモリマスタの状態信号１５０２を入力し、そのメモリマスタの動作状況を検知する。各メモリマスタはＤＭＡの起動状態信号をメモリマスタの状態信号１５０２として動作モード検出部１５０１に伝達する。例えば、図８に示す複合機器の制御回路では、コピー／プリント／ＦＡＸ／ネットワーク送受信などの複数の機能を実現する際に、メモリをバッファとして使用する。その際、画像処理バッファのメモリアドレス割り当てはシステム、或いはソフトウェアに依存するが、その一実装方法として各処理の画像処理バッファメモリ領域を固定アドレスに割り当てる方法がある。
【００７０】
図９に示すように、コピー処理は0x18000000から０ｘ１FFFFFFF、プリント処理は0x20000000から0x27FFFFFFといったようにメモリ内に固定領域として割り当てることが可能である。複合機器の制御回路では種々の機能を切り替えて使用するため、ある期間はコピー機能を中心に使用し、また別の期間はプリント機能やネットワーク送受信機能を中心に使用するというように動作モードが時系列に切り替わることが想定される。
【００７１】
上述したように、各処理のバッファメモリ領域を固定アドレスとして割り当てた場合、複合機器の制御回路では動作モードの変化に応じて集中的にアクセスされるメモリ領域が推移する。例えば、図９に示す例では、コピー動作モードの場合は、0x10000000番地台のアクセスが頻発し、ネットワーク処理を中心に動作しているときには0x00000000番地台のアクセスが集中する。
【００７２】
更に、各処理はシステムに実装された１つ、或いは複数の処理モジュールの組み合わせにより実現され、それらの処理モジュールの多くはメモリマスタとしてメモリアクセスを発行し、システムで実現する機能に必要な処理を実現する。
【００７３】
図８に示す例では、メモリマスタとして、コピー動作時にはスキャナインターフェース回路８０１、プリンタインターフェース回路８０２及びコピー画像処理モジュール８０５が動作する。またプリンタ動作時にはプリンタインターフェース回路８０２及びプリント画像処理モジュール８０６が動作する。またＦＡＸ動作時にはＦＡＸインターフェース回路８０３及びＦＡＸ画像処理モジュール８０７が動作し、ネットワーク処理時にはネットワーク制御回路８０４が動作する。従って、メモリマスタの動作状況を監視することで、システムの動作モードを検出することが可能である。
【００７４】
また、各動作モードで頻発するアクセスメモリ領域が図９に示すように予め定められている場合では、各メモリマスタで検出した動作モードにより、メモリアクセスが頻発する領域を知ることができる。
【００７５】
第２の実施形態では、図１６に示すように複数のメモリマスタの動作状況を示すメモリマスタ状態信号１５０２が出力される。動作モード検出部１５０１では、各メモリマスタからの動作状況に基づいて、システムの動作モードを判定する。ここで動作モード検出部１５０１は、動作中のメモリマスタとシステムの動作モードの対応を示すテーブルを有する。そして、各メモリマスタの状態信号１５０２が変化した際に、動作中のメモリマスタと、動作モードのテーブルとを比較し、システムの動作モードを判別する。
【００７６】
例えば、メモリマスタの状態信号１５０２が、スキャナインターフェース回路８０１、プリンタインターフェース回路８０２、及びコピー画像処理モジュール８０５が動作中を示す場合、動作モード検出部１５０１はコピー動作モードと判別する。プリンタインターフェース回路８０２、及びプリント画像処理モジュール８０６が動作中を示す場合、動作モード検出部１５０１はプリント動作モードと判別する。ＦＡＸインターフェース回路８０３、及びＦＡＸ画像処理モジュール８０７が動作中を示す場合、動作モード検出部１５０１はＦＡＸ動作モードと判別する。ネットワーク制御回路８０４が動作中を示す場合、動作モード検出部１５０１はネットワーク処理モードと判別する。
【００７７】
動作モード検出部１５０１の検出結果と各動作モードでのアクセス領域テーブルより、動作モード検出部１５０１は頻繁にアクセスされるメモリアクセス領域を判別する。そして、アクセス応答時間の近いデバイスに対して頻繁にアクセスされるアドレス領域を割り当てるように各メモリモジュールに対するメモリアドレス割り当てを決定する。そして、決定したメモリアドレス割り当てをメモリアドレス設定部４０４に通知する。
【００７８】
ここで、各動作モードでの処理バッファは図９で指定される領域に割り当てられるものとすれば、アクセス領域テーブルは図１１に示すように保持される。また、アクセス領域テーブルに関しては、レジスタ設定によって構成されても良い。
【００７９】
図１７は、第２の実施形態における動作モード検出部１５０１の構成の一例を示す図である。図１７において、動作モード検出部１５０１がメモリマスタの状態信号１５０２の変化を検知すると、動作中のメモリマスタの組み合わせからシステム動作モード判定回路１７０５にて動作モードを判定する。そして、その判定結果を処理モードフラグ１６０１に設定する。この処理モードフラグ１６０１は、図１７に示すフィールド１７０１〜１７０４に相当する。
【００８０】
この例では、１７０１はコピー動作モード、１７０２はプリント動作モード、１７０３はＦＡＸ動作モード、１７０４はネットワーク処理モードに対応する。そして、動作中の場合は“１”が、動作中でない場合は“０”が対応するフィールドに書き込まれる。
【００８１】
そして、処理モードフラグ１６０１のフィールド１７０１〜１７０４に動作状態が設定されると、システム動作モード検知部３０５がメモリアドレス割り当てを決定する。
【００８２】
即ち、動作モード検出部１５０１の検出結果より、動作モードが以前と変更ない場合、処理モードフラグ１６０１の全てが非動作に設定された場合はメモリアドレス割り当てを変更しない。
【００８３】
新たに処理モードフラグ１６０１（フィールド１７０１〜１７０４）の何れかが有効となった場合、或いはあるフィールドが非動作状態に遷移し、且つ遷移後あるフィールドが有効である場合、メモリアドレス割り当ての決定を行う。
【００８４】
また、複数の動作モードが検出された場合、フィールド１７０１から１７０４への順に優先順位が付けられ、この順に従って優先的にアドレス割り当てを行う。
【００８５】
上述したように、動作モード検出部１５０１がメモリマスタの動作状況に基づいて処理モードフラグ１６０１を設定／解除し、アドレス割り当ての決定が行われる。
【００８６】
尚、このメモリアドレス割り当ての具体例は、第１の実施形態のフィールド１００１〜１００４が第２の実施形態ではフィールド１７０１〜１７０４に相当し、第１の実施形態と同様であり、その説明は省略する。
【００８７】
以上説明したように、複数のメモリマスタの動作状況に基づいて動作モードを検出し、アクセス頻度の多いメモリ領域をレイテンシの一番小さいメモリモジュールに割り当てる。その結果、ある動作モードでのアクセス頻度の多いメモリ領域に対するレイテンシ増加を抑えることができ、メモリアクセス性能の低下を防ぐことができる。
【００８８】
また、第２の実施形態によれば、ソフトウェアの介在無しにシステムの処理性能の最適化を図ることが可能となる。
【００８９】
尚、第２の実施形態でも、メモリのアドレス割り当ての変更時にメモリ内容を複写することにより、データを保証することが可能となる。
【００９０】
以上説明した実施形態によれば、システムのメモリアクセスパターンの変化を伴う動作モードの変化を検知し、検知した動作モードで頻繁にアクセスされるメモリ空間をレイテンシの小さいメモリモジュールに割り当てる。その結果、頻繁にアクセスされるメモリに対するアクセスレイテンシの影響を低減することが可能となる。
【００９１】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００９２】
また、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行する。これによっても、本発明の目的が達成されることは言うまでもない。
【００９３】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００９４】
このプログラムコードを供給するための記録媒体として、例えばフレキシブルディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００９５】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、次の場合も含まれることは言うまでもない。即ち、プログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合である。
【００９６】
更に、記録媒体から読出されたプログラムコードがコンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込む。その後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理により前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００９７】
【図１】高速シリアルインターフェース技術を用いたメモリモジュールの構成を示す図である。
【図２】従来のメモリモジュールの構成を示す図である。
【図３】第１の実施形態におけるメモリシステムの構成の一例を示す図である。
【図４】第１の実施形態におけるメモリ制御回路３０１の構成の一例を示す図である。
【図５】メモリ情報レジスタ３０３内のメモリ構成情報レジスタ４０５の構成の一例を示す図である。
【図６】メモリアドレス設定レジスタ４０６の構成の一例を示す図である。
【図７】メモリモジュールに割り当てられるメモリ空間の一例を示す図である。
【図８】複数の機能を有する複合機器の構成の一例を示す図である。
【図９】メモリ空間に固定領域として割り当てられた各処理を示す図である。
【図１０】動作モード指定レジスタ４０３の構成の一例を示す図である。
【図１１】動作モードとアクセス領域との関係を示す図である。
【図１２】コピー処理を実行する際のメモリアドレス割り当てを示す図である。
【図１３】コピー処理中にプリント及びネットワーク処理を実行する際のメモリアドレス割り当てを示す図である。
【図１４】コピー処理終了時のプリント及びネットワーク処理を実行する際のメモリアドレス割り当てを示す図である。
【図１５】第２の実施形態におけるメモリ制御回路３０１の構成の一例を示す図である。
【図１６】図８に示す複合機器の複数のメモリマスタとメモリマスタ状態信号との関係を示す図である。
【図１７】第２の実施形態における動作モード検出部１５０１の構成の一例を示す図である。
【符号の説明】
【００９８】
１０１  メモリ制御回路
１０２  メモリモジュール
１１０  ＤＲＡＭ
１１１  バッファ
３０１  メモリ制御回路
３０２  メモリモジュール
３０３  メモリ情報レジスタ
３０４  メモリアクセスインターフェース
３０５  システム動作モード検知部
３０６  メモリ制御コア部
【図１】
2007334835.tif 000003
【図２】
2007334835.tif 000004
【図３】
2007334835.tif 000005
【図４】
2007334835.tif 000006
【図５】
2007334835.tif 000007
【図６】
2007334835.tif 000008
【図７】
2007334835.tif 000009
【図８】
2007334835.tif 000010
【図９】
2007334835.tif 000011
【図１０】
2007334835.tif 000012
【図１１】
2007334835.tif 000013
【図１２】
2007334835.tif 000014
【図１３】
2007334835.tif 000015
【図１４】
2007334835.tif 000016
【図１５】
2007334835.tif 000017
【図１６】
2007334835.tif 000018
【図１７】
2007334835.tif 000019