(57)【要約】【課題】複数のメモリチャネルに対して分割転送されるメモリアクセス要求が独立処理されることによって、転送完了時に順序制御処理等により余分なバッファや複雑回路実装が必要となる。【解決手段】複数のメモリコマンド発行部にて、分割されたメモリアクセス要求に対する発行タイミングの調整を行い、論理アドレスの小さい順にメモリコマンドを発行する。【選択図】図１
2011013835.tif 000002
【特許請求の範囲】
【請求項１】
バスマスタとメモリ制御回路と複数のメモリチャネルとを有し、論理アドレス空間を分割して前記複数のメモリチャネルの物理アドレス空間として割り当てるメモリシステムであって、
前記メモリ制御回路は、前記バスマスタからのメモリアクセス要求をアドレスと転送サイズとに従って前記複数のメモリチャネルのメモリアクセス要求に分割して振り分ける分割・振り分け手段と、前記複数のメモリチャネルに対応した複数のメモリコマンド発行手段とを有し、
前記メモリコマンド発行手段は、対応するメモリチャネルに対するメモリアクセス要求を格納するバッファと、前記分割・振り分け手段により前記複数のメモリチャネルに分割されたメモリアクセス要求を判別する判別手段と、前記判別手段により分割されたメモリアクセス要求であると判別されたメモリアクセスの発行タイミングを調整する調整手段とを有することを特徴とするメモリシステム。
【請求項２】
各メモリチャネルにおけるアクセス単位毎に論理アドレス空間を分割し、前記分割に従い前記複数のメモリチャネルの物理アドレス空間を交互に割り当てることを特徴とする請求項１記載のメモリシステム。
【請求項３】
前記調整手段は、分割されたメモリアクセス要求を論理アドレスが小さい順に発行するよう調整することを特徴とする請求項１又は２記載のメモリシステム。
【請求項４】
前記調整手段は、分割されたメモリアクセス要求を前記複数のメモリチャネルに対してメモリアクセスとして発行するよう調整することを特徴とする請求項１〜３の何れか１項に記載のメモリシステム。
【請求項５】
前記調整手段は、発行タイミングに基づき発行できないメモリアクセス要求の前に、発行可能なメモリアクセス要求を先に発行する順序制御手段を有することを特徴とする請求項３記載のメモリシステム。
【請求項６】
前記順序制御手段は、メモリアクセス要求がリードアクセスかライトアクセスかの種別に従い順序制御方法を変更することを特徴とする請求項５記載のメモリシステム。
【請求項７】
前記順序制御手段は、メモリアクセス要求がライトアクセスである場合には発行タイミングの調整を行わないことを特徴とする請求項５記載のメモリシステム。
【請求項８】
バスマスタとメモリ制御回路と複数のメモリチャネルとを有し、論理アドレス空間を分割して前記複数のメモリチャネルの物理アドレス空間として割り当てるメモリシステムにおけるメモリアクセス方法であって、
前記複数のメモリチャネルに対応して前記メモリ制御回路が有する複数のメモリコマンド発行部が、前記バスマスタからのメモリアクセス要求をアドレスと転送サイズとに従って前記複数のメモリチャネルのメモリアクセス要求に分割して振り分けるステップと、
対応するメモリチャネルに対するメモリアクセス要求をバッファに格納するステップと
前記複数のメモリチャネルに分割されたメモリアクセス要求を判別するステップと、
分割されたメモリアクセス要求であると判別されたメモリアクセスの発行タイミングを調整するステップとを有することを特徴とするメモリアクセス方法。
【請求項９】
請求項８記載のメモリアクセス方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリシステム等に関し、メモリアクセス手法に関わるものである。
【背景技術】
【０００２】
組み込み系システムは、ＣＰＵの他、特定の機能を実現する機能ブロックを複数搭載しシステムに求められる機能を実現している。特に、性能要求が高い機能ブロックに関してはハードワイヤードロジックで回路実装が成されることで、ソフトウェア処理では達成することが困難な高性能・高速処理を実現している。多くの機能ブロックではデータの授受は外部主記憶デバイスを介して行い、複雑な処理や多くのデータ参照を行う処理においては、主記憶を一時記憶・ワークメモリとして使用することで機能を実現している。多くの組み込み系システムは、外部主記憶にＤＲＡＭデバイスを採用している。
【０００３】
近年、デジタル機器において、高機能／高性能化が継続的に進展している。例えばデジタルカメラ等の映像入力機器やプリンタ等の画像出力機器においては高解像度化が進展している。その結果、取り扱うデータ量が継続的に増加しており、単位時間内に多くのデータ量を取り扱うためのメモリアクセスの高速化が必須である。また、リアルタイム処理を必要とする動画像においても高精細化が進展しており、更なるメモリアクセスの高速化が今後も必須な状況である。
【０００４】
対して外部主記憶に使用されるＤＲＡＭデバイスにおいても、半導体プロセスの進化に伴い高帯域デバイスが供給されている。ＤＲＡＭ等のメモリデバイスは、半導体プロセスが進化したとしても、メモリアクセスを受信しそのアクセスが完了するためのアクセス時間の改善は特性上困難である。したがって、通常、ＤＲＡＭデバイス内のクロック周波数は高速化せずに、半導体プロセスの進化により高速化可能なデータ転送レートを向上させることでデータ転送帯域を改善が行われている。
【０００５】
高速化されないアクセス時間に対しては１回のアクセスで同時に複数のメモリセルに並列にアクセスを行うことによって高速化されたデータ転送帯域に追従している。これは、一般的にＤＲＡＭのプリフェッチと言われている。ＳＤＲＡＭではプリフェッチの段数が１段、すなわち一回のメモリアクセスで１組のメモリセルにアクセスする構成であったのに対し、ＤＤＲ−ＳＤＲＡＭではプリフェッチの段数を２段としている。プリフェッチの段数を２段とすることで、ＤＤＲ−ＳＤＲＡＭでは２倍のデータ転送レートで受信しＤＲＡＭ内部のクロック周波数を維持したまま２組のメモリセルにアクセスすることで高帯域アクセスを実現している。ＤＤＲ２−ＳＤＲＡＭではプリフェッチの段数を４段とし、ＤＤＲ３−ＳＤＲＡＭではプリフェッチの段数を８段としている。これによって更なる高帯域を実現するメモリデバイスを供給している。
【０００６】
しかし、プリフェッチの段数を増やすことで高帯域のメモリアクセスを可能にすると同時に１回のＤＲＡＭデバイスに対するアクセス単位が大きくなるという影響が生じている。通常、ＳＤＲＡＭデバイスに対するアクセスにおいてはバースト転送により、メモリに対する読み書きを実現することが一般的である。ＳＤＲＡＭでは一番小さい転送単位が１ビート転送であるのに対し、ＤＤＲ−ＳＤＲＡＭでは２ビート転送、ＤＤＲ２−ＳＤＲＡＭでは４ビート転送、ＤＤＲ３−ＳＤＲＡＭでは８ビート転送が最小転送単位となる。具体的な例を示すと、外部記憶として６４ビットのデータ幅でＳＤＲＡＭを使用する場合、ＳＤＲＡＭにおける最小アクセス単位は８バイト（Ｂｙｔｅ）となる。また、ＤＤＲ−ＳＤＲＡＭでは１６バイト、ＤＤＲ２−ＳＤＲＡＭでは３２バイト、ＤＤＲ３−ＳＤＲＡＭでは６４バイトとなる。外部記憶としてＳＤＲＡＭを使用するバスマスタが最小アクセス単位に満たない転送を行う場合には、ＳＤＲＡＭにアクセス発行単位毎でしかアクセスが発行できないためメモリデータバス上に余分な転送が発生することになる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００６−２６８８０１号公報
【特許文献２】特開２００７−０３４７４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
単一のバス転送を複数のメモリチャネルに分割して発行するメモリシステムにおいて、各メモリチャネルのメモリアクセス発行の独立動作を行うことに起因してバス転送制御が複雑になる。また、データ順序確保のためのバッファ回路を必要とする。
本発明では、単一のバス転送を複数のメモリチャネルに分割して発行するメモリシステムにて、単純な構成で且つ簡易な方法で分割されたメモリアクセスの発行時間制御を行うことを目的とする。
【課題を解決するための手段】
【０００９】
本発明は前記課題を解決するために、バスマスタとメモリ制御回路と複数のメモリチャネルとを有し、論理アドレス空間を分割して前記複数のメモリチャネルの物理アドレス空間として割り当てるメモリシステムであって、前記メモリ制御回路は、前記バスマスタからのメモリアクセス要求をアドレスと転送サイズとに従って前記複数のメモリチャネルのメモリアクセス要求に分割して振り分ける分割・振り分け手段と、前記複数のメモリチャネルに対応した複数のメモリコマンド発行手段とを有し、前記メモリコマンド発行手段は、対応するメモリチャネルに対するメモリアクセス要求を格納するバッファと、前記分割・振り分け手段により前記複数のメモリチャネルに分割されたメモリアクセス要求を判別する判別手段と、前記判別手段により分割されたメモリアクセス要求であると判別されたメモリアクセスの発行タイミングを調整する調整手段とを有することを特徴とするメモリシステム等、を提供する。
【発明の効果】
【００１０】
本発明によると、単一のバスマスタからのメモリアクセスが独立制御される複数のメモリチャネルに分割して転送される場合においても、論理アドレスの小さい順に発行制御を行うことが可能となる。よって、バスインターフェース部分での転送の退避や順序入れ替え等が不要となり、簡易な回路でバス転送制御を行うことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】第一の実施形態におけるシステムの構成例を示す図である。
【図２】第一の実施形態におけるアドレス空間の対応を示す図である。
【図３】第一の実施形態における転送分割・振り分け部の処理フロー図である。
【図４】第一の実施形態におけるコマンドステータス検出部の処理フロー図である。
【図５】第一の実施形態におけるコマンドバッファ状態図である。
【図６】第一の実施形態におけるコマンドバッファ状態図である。
【図７】第二の実施形態におけるコマンドステータス検出部の処理フロー図である。
【図８】第二の実施形態におけるコマンドバッファ状態図である。
【図９】第三の実施形態におけるシステムの構成例を示す図である。
【図１０】第三の実施形態におけるアドレス空間の対応を示す図である。
【図１１】第三の実施形態における転送分割・振り分け部の処理フロー図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施形態を図面に基づいて説明する。
【００１３】
＜第一の実施形態＞
本発明の第一の実施形態について、図１に示すメモリシステムを用いて説明する。
図１に示すメモリシステムにおいて、３つのバスマスタ１０３、１０４、１０５は、任意のシステムバス１０６を介してメモリ制御回路（メモリコントローラ）１００に接続される。また、メモリ制御回路１００は、ＤＲＡＭ群１０２に接続される。本実施形態では、ＤＲＡＭ群１０２の各々はデータ幅が１６ビットのＤＤＲ３−ＳＤＲＡＭ１０１を２組有し、第一のＤＲＡＭ群１０２−Ａと第二のＤＲＡＭ群１０２−Ｂとの２つのメモリチャネルのメモリインターフェースを具備している。第一のＤＲＡＭ群１０２−Ａ及び第二のＤＲＡＭ群１０２−Ｂのメモリ空間の割り当てを図２に示す。論理アドレス空間は、各ＤＲＡＭ群１０２のアクセス単位毎（本実施形態では、３２バイトとする）に分割され、第一のＤＲＡＭ群１０２−Ａ及び第二のＤＲＡＭ群１０２−Ｂに交互にマッピングされるものとする。例えば論理アドレス空間における０ｘ１００番地は第一のＤＲＡＭ群１０２−Ａの物理アドレス空間における０ｘ８０番地に割り当てられる。また、例えば論理アドレス空間における０ｘ１２０番地は第二のＤＲＡＭ群１０２−Ｂの物理アドレス空間における０ｘ８０番地に割り当てられる。
【００１４】
バスマスタより所定の発行タイミングで発行されたメモリアクセスは、システムバス１０６を介してメモリ制御回路１００に伝達され、メモリ制御回路１００のバスインターフェース部１０７においてバスアクセスとして取り込まれる。バスインターフェース部１０７は、メモリ制御回路１００におけるシステムバスのインターフェースである。バスインターフェース部１０７は、アドレス（アクセスアドレス）、転送サイズ（アクセスデータサイズ）に基づきメモリ空間の割り当てに従って転送分割・振り分け部１０８により適宜転送の分割及びＤＲＡＭ群１０２への振り分けを行う。
【００１５】
転送分割・振り分け部１０８の動作の詳細を例示する。図３は、転送分割・振り分け部１０８の処理フロー図である。
任意のバスマスタからのメモリアクセスを受信すると、転送分割・振り分け部１０８は、アドレス情報及びアクセス長情報を判別する。転送分割・振り分け部１０８は、まずメモリアクセスが３２バイトアライン（Ｂｙｔｅ  Ａｌｉｇｎ）にのった転送であるか否かを判別し（Ｓ３０１）、３２バイトアラインにのった転送であれば、さらに３２バイト以内の転送であるか否かを判別する（Ｓ３０２）。一方、３２バイトアラインにのった転送でなければ、３２バイトアラインを超える転送であるか否かを判別する（Ｓ３０３）。
【００１６】
例えば、論理アドレス０ｘ２００番地に対する３２バイトアクセスを受信すると、３２バイトアラインにのった転送であり、且つ３２バイト以内の転送であるため、転送分割・振り分け部１０８はアドレス判定を行う（Ｓ３０４）。論理アドレス０ｘ２００番地に対するアクセスは、第一のＤＲＡＭ群１０２−Ａに割り当てられた転送である。そこで、転送分割・振り分け部１０８は、第一のＤＲＡＭ群１０２−Ａに対応したメモリコマンド発行部１０９に対して物理アドレス０ｘ１００番地より３２バイトのメモリアクセス要求を転送する（Ｓ３０５）。一方、第二のＤＲＡＭ群１０２−Ｂに割り当てられた論理アドレスに対するアクセスであれば、転送分割・振り分け部１０８は、第二のＤＲＡＭ群１０２−Ｂに対応したメモリコマンド発行部１０９に対してメモリアクセス要求を転送する（Ｓ３０６）。
【００１７】
また、論理アドレス０ｘ１０００番地に対する１２８バイトアクセスを受信すると、３２バイトアラインの転送であるが３２バイトを超える転送であるため、転送分割・振り分け部１０８はメモリアクセスを分割する（Ｓ３０７）。すなわち、バスマスタからのメモリアクセスを、第一のＤＲＡＭ群１０２−Ａ及び第二のＤＲＡＭ群１０２−Ｂに振り分ける。このとき、論理アドレス０ｘ１０００番地からの３２バイト分と論理アドレス０ｘ１０４０番地からの３２バイト分の転送は、第一のＤＲＡＭ群１０２−Ａに対応するメモリコマンド発行部１０９に対して転送される。また、論理アドレス０ｘ１０２０番地からの３２バイト分と論理アドレス０ｘ１０６０番地からの３２バイト分の転送は、第二のＤＲＡＭ群１０２−Ｂに対応するメモリコマンド発行部１０９に対して転送される。本実施形態では、６４バイト転送として２組のメモリコマンド発行部１０９に転送しているが、３２バイト転送を２回に分けて２組のメモリコマンド発行部１０９に転送しても構わない。
【００１８】
論理アドレス０ｘ８１０番地からの１６バイトアクセスを受信すると、３２バイトアラインにのっていないが３２バイトアラインを超えない転送であるため、転送分割・振り分け部１０８はアドレス判定を行う（Ｓ３０４）。本例では、転送分割・振り分け部１０８は、第一のＤＲＡＭ群１０２−Ａに対応したメモリコマンド発行部１０９に対して物理アドレス０ｘ４１０番地からの１６バイトアクセスとして転送する。また、論理アドレス０ｘ２０１８番地からの３２バイトアクセスを受信すると、３２バイトアラインにのっておらず３２バイトアラインを超える転送であるため、転送分割・振り分け部１０８はメモリアクセスを分割する（Ｓ３０７）。このとき、転送分割・振り分け部１０８は、第一のＤＲＡＭ群１０２−Ａに対応したメモリコマンド発行部１０９に対して物理アドレス０ｘ１０１８番地からの８バイトアクセスとして転送する。また、転送分割・振り分け部１０８は、第二のＤＲＡＭ群１０２−Ｂに対応したメモリコマンド発行部１０９に対して物理アドレス０ｘ１０００番地からの２４バイトアクセスとして転送する。
【００１９】
バスインターフェース部１０７を介して発行されるメモリアクセス要求は、各メモリコマンド発行部１０９内に具備されるコマンド順序制御部１１０に転送される。コマンド順序制御部１１０は、複数のメモリアクセス要求を保持するコマンドバッファ１１１と、発行するコマンド順序を制御し選択する順序制御回路１１５と、コマンドステータス検出部１１４とを有する。コマンドバッファ１１１には、対応するＤＲＡＭ群に対して発行するアドレス情報、アクセスサイズ情報、及び読み出し・書き込み情報等が保持されている。また、バスインターフェース部１０７においてバスマスタからの転送の分割がなされたか否かを保持する分割フラグ情報１１３をコマンドと対で有している。分割フラグ情報１１３は、第一のＤＲＡＭ群１０２−Ａ及び第二のＤＲＡＭ群１０２−Ｂの双方に転送を分割して発行する場合に、転送分割・振り分け部１０８よりメモリアクセス要求と対でコマンド順序制御部１１０に通知されて保持される。コマンドバッファ１１１に保持されたコマンド情報と分割フラグ情報１１３は逐次他方のＤＲＡＭ群内のコマンドステータス検出部１１４に伝達される。コマンドステータス検出部１１４は、他方のＤＲＡＭ群に対応するコマンドバッファ１１１に保持されたコマンド情報と分割フラグ情報１１３を受ける。そして、コマンドステータス検出部１１４は、自身のコマンドバッファ１１１内に保持された情報を参照し、入力された各コマンドバッファ１１１のエントリに対して発行可能フラグ情報１１２を算出し送出する。
【００２０】
図４は、コマンドステータス検出部１１４における発行可能フラグの判定フローを示す図である。入力された各コマンドバッファ１１１のエントリに対して、分割フラグに‘１’が立っていない場合（Ｓ４０１のＮ）には、発行可能フラグとして発行可能であることを示す‘１’を送出する（Ｓ４０３）。また、分割フラグに‘１’が立っていて、バッファ内に分割該当転送がない場合（Ｓ４０１のＹ、Ｓ４０２のＮ）には、発行可能フラグとして発行可能であることを示す‘１’を送出する（Ｓ４０３）。一方、分割フラグに‘１’が立っていて、バッファ内に分割該当転送がある場合（Ｓ４０１のＹ、Ｓ４０２のＹ）には、発行可能フラグとして発行できないことを示す‘０’を送出する（Ｓ４０４）。分割されたメモリアクセスに該当する転送の判定では、コマンドバッファ１１１のエントリに対して分割された転送で、且つ論理アドレスとして先にアクセスされるべき転送がコマンドバッファ１１１内に保持されているかの判定を行う。第一のＤＲＡＭ群１０２−Ａに対応付けられたコマンドステータス検出部１１４における判定と第二のＤＲＡＭ群１０２−Ｂに対応付けられたコマンドステータス検出部１１４における判定では方法が異なる。
【００２１】
第一のＤＲＡＭ群１０２−Ａに対応するコマンドステータス検出部１１４では、自身のコマンドバッファ１１１を参照し同一の３２バイト領域を含み分割フラグが立っている転送が存在している場合に発行不可能と判定し、それ以外に関して発行可能と判定する。具体例を示すと、入力されたコマンドバッファのエントリが０ｘ１００であった場合に、自身のコマンドバッファ１１１内に分割フラグに‘１’がセットされ、アドレスが０ｘ１００〜０ｘ１１Ｆの範囲内である転送が存在すれば発行不可能と判定する。すなわち、論理アドレス０ｘ２２０に対する第二のＤＲＡＭ群１０２−Ｂに対して分割された転送である論理アドレス０ｘ２００〜０ｘ２１Ｆまでのエントリの有無を確認する。また入力されたコマンドバッファのエントリが０ｘ１０４等３２バイトアラインにのっていない場合には、自身のコマンドバッファ１１１のエントリ如何によらず発行可能と判定する。
【００２２】
第二のＤＲＡＭ群１０２−Ｂに対応するコマンドステータス検出部１１４では、自身のコマンドバッファ１１１を参照し入力されたアドレスに対して３２バイト小さいアドレス領域を含み分割フラグが立っている転送が存在している場合に発行不可能と判定する。それ以外に関しては発行可能と判定する。具体例を示すと、入力されたコマンドバッファのエントリが０ｘ１００であった場合に、自身のコマンドバッファ１１１内に分割フラグに‘１’がセットされ、アドレスが０ｘ０Ｅ０〜０ｘ０ＦＦの範囲内である転送が存在した場合に発行不可能と判定する。すなわち、論理アドレス０ｘ２００に対する第一のＤＲＡＭ群１０２−Ａに対して分割された転送である論理アドレス０ｘ１Ｅ０〜０ｘ１ＦＦまでのエントリの有無を確認する。また入力されたコマンドバッファのエントリが０ｘ１０４等３２バイトアラインにのっていない場合には、自身のコマンドバッファ１１１のエントリ如何によらず発行可能と判定する。
【００２３】
他方のコマンドステータス検出部１１４からの各コマンドバッファ１１１のエントリに対する発行可能フラグ情報１１２は、コマンドバッファ１１１と分割フラグ情報１１３と対で保持される。順序制御回路１１５は、コマンドバッファ１１１内に保持されるメモリアクセス要求を選択し、メモリコマンド制御コア部１１６に対して送出する。順序制御回路１１５においては、メモリコマンド制御コア部１１６にコマンド送出可能なタイミング、各コマンドバッファ１１１のエントリに対応する発行可能フラグを参照する。順序制御回路１１５は、発行可能フラグに‘１’がセットされているエントリを選択し、メモリコマンド制御コア部１１６に送出する。順序制御回路１１５におけるメモリアクセス要求の選択は、発行可能フラグに‘１’がセットされていないコマンドバッファ１１１のエントリから選択することを除いて任意である。本実施形態では発行可能フラグがセットされているエントリのうち、一番先頭にあるものを選択するものとする。本実施形態では例示しないが、一般的に用いられるようにＤＲＡＭのページ遷移が少なくなるよう順序制御を実行することも可能であることは言うまでもない。
【００２４】
以下、本実施形態における動作について説明する。なお、ＤＲＡＭ群１０２−Ａ、１０２−Ｂにおける物理アドレス空間の論理アドレス空間へのマッピングは、前述した通り図２に示されるようにマッピングが行われているものとする。すなわち、論理アドレス空間を３２バイト毎に分割し、３２バイト毎に交互に第一のＤＲＡＭ群１０２−Ａの物理アドレス空間と第二のＤＲＡＭ群１０２−Ｂの物理アドレス空間とに割り当てられる。ここでは、バスマスタ１０３、１０４、１０５より以下の（１）、（２）、（３）、（４）、（５）の順にメモリアクセスが発行された場合の動作を例示する。
（１）第一のバスマスタ１０３より論理アドレス０ｘ０番地からの６４バイトアクセス
（２）第二のバスマスタ１０４より論理アドレス０ｘ２００番地からの３２バイトアクセス
（３）第二のバスマスタ１０４より論理アドレス０ｘ４００番地からの３２バイトアクセス
（４）第三のバスマスタ１０５より論理アドレス０ｘ１０００番地からの１２８バイトアクセス
（５）第二のバスマスタ１０４より論理アドレス０ｘ４２０番地からの３２バイトアクセス
【００２５】
各バスマスタから前述の転送が発行された後のある時間におけるコマンドバッファの状態を図５（Ａ）に示す。図５において、左側に図示した第一のバッファ９００は第一のＤＲＡＭ群１０２−Ａに対応したメモリアクセス用に設けられたバッファである。また、右側に図示した第二のバッファ９０１は第二のＤＲＡＭ群１０２−Ｂに対応したメモリアクセス用に設けられたバッファである。バッファ内には、バッファエントリの有効フラグ情報９０２、発行要求された物理アドレス情報９０３が保持されている。また、要求転送サイズ情報９０４、リードアクセスかライトアクセスかを示す要求転送種別情報９０５、発行可能フラグ情報９０６、及び分割フラグ情報９０７が保持されている。なお、図５には記載していないが、転送マスタ情報や転送優先度情報等を保持しても構わない。また、本実施形態においては、要求転送種別情報９０５が示す値は動作に影響を与えないものとして、任意の値として明記していないが、後述の第二の実施形態の説明にて要求転送種別情報９０５を用いた動作について記載する。
【００２６】
図５（Ａ）に示すように、第一のバッファ９００と第二のバッファ９０１の１番目のエントリには、第一のバスマスタ１０３より発行された論理アドレス０ｘ０番地に対するメモリアクセスが分割され保持されている。本エントリは分割転送であるため、それぞれ分割フラグ（９０７）が１にセットされている。図４に示したフローと前述した該当転送判定に従い、第一のバッファ９００の１番目のエントリの発行可能フラグ（９０６）には１がセットされる。第二のバッファ９０１における１番目のエントリの発行可能フラグ（９０６）には発行不可として０が設定されている。第一のバッファ９００の２番目、３番目のエントリには、第二のバスマスタ１０４より発行された論理アドレス０ｘ２００番地、０ｘ４００番地へのメモリアクセスが保持されている。このとき、両転送は分割されていないため、分割フラグ（９０７）には０がセットされ、発行可能フラグ（９０６）には１がセットされる。第三のバスマスタ１０５より発行された論理アドレス０ｘ１０００番地へのメモリアクセスは、第一のバッファ９００の４番目のエントリと第二のバッファ９０１の２番目のエントリに分割され保持される。また、分割フラグ（９０７）にはそれぞれ１がセットされている。また、図４に示したフローと前述した該当転送判定に従い、第一のバッファ９００の４番目のエントリの発行可能フラグ（９０６）には１がセットされる。第二のバッファ９０１における２番目のエントリの発行可能フラグ（９０６）には発行不可として０が設定されている。更に、第二のバスマスタ１０４より発行された論理アドレス０ｘ４２０へのアクセスは第二のバッファ９０１の３番目のエントリに保持される。分割フラグ（９０７）には０がセットされ、発行可能フラグ（９０６）には１がセットされる。
【００２７】
ここで、第一のバッファ９００に対しては１番目のエントリが発行可能フラグに１がセットされているため、対応するメモリコマンド制御コア部１１６に転送が伝達される。第二のバッファ９０１においては、１番目、２番目のエントリに対して発行可能フラグが０と発行不可を示している。よって、発行可能を示しているなかで一番若いエントリである３番目のエントリのメモリアクセスが対応するメモリコマンド制御コア部１１６に伝達される。それぞれのメモリアクセス要求は、各メモリコマンド制御コア部１１６にて独立に処理され並列にメモリアクセスが発行される。前記処理が成された後の各バッファの状態を図５（Ｂ）に示す。バッファ状態の変化に従い、図４に示したフローと前述した該当転送判定が実行される。ここでは第二のバッファ９０１の１番目のエントリの対となるメモリアクセスが先に発行されるため本転送が発行可能と判定され、発行可能フラグが図５（Ｂ）内に網掛けで示すように１にセットされる。したがって、第一のバッファ９０１及び第二のバッファ９０２ともに、図５（Ｂ）における１番目のエントリの転送が、メモリコマンド制御コア部１１６に発行され、メモリアクセスが実行される。
【００２８】
ここで、第一のバスマスタ１０３より論理アドレス０ｘ６０番地からの６４バイトアクセスが発行されると、図５（Ｃ）に示すように各バッファの状態が更新される。第一のバッファ９００の３番目のエントリに第一のＤＲＡＭ群１０２−Ａにおける物理アドレス０ｘ４０番地へのアクセスが追加される。また、第二のバッファ９０１の２番目のエントリに第二のＤＲＡＭ群１０２−Ｂにおける物理アドレス０ｘ２０番地へのアクセスが追加される。ここで、第一のバッファ９００に追加されたエントリに対しては、図４に示したフローと前述した該当転送判定に従い発行不可として発行可能フラグ（９０６）には０がセットされる。一方、第二のバッファ９０１に追加されたエントリに対しては、発行可能であるため、発行可能フラグ（９０６）には１がセットされる。この状態において、第一のバッファ９００においては１番目のエントリが、第二のバッファ９０１においては追加された２番目のエントリがそれぞれメモリコマンド制御コア部１１６に伝達される。更に、第二のＤＲＡＭ群１０２−Ｂにおける物理アドレス０ｘ８００番地に対する転送は、図６（Ａ）、（Ｂ）に示すバッファ内の状態を経て発行されることとなる。なお、図６（Ａ）に示す状態では、第一のＤＲＡＭ群１０２−Ａに対してはメモリアクセスが発行されるが、第二のＤＲＡＭ群１０２−Ｂに対しては発行可能なメモリコマンドが存在しないためにメモリアクセスが発行されない。
前記動作として示したように、分割されたメモリアクセスに対してアドレス順を維持しメモリ転送発行制御が常に可能となる。
【００２９】
＜第二の実施形態＞
次に、本発明の第二の実施形態について説明する。
第二の実施形態として、メモリアクセスがリードアクセスであるかライトアクセスであるかの要求転送種別に基づき発行順序を制御する構成について説明する。本実施形態における構成は第一の実施形態で示した図１の構成と同様であるが、コマンドステータス検出部の作用を変更することで実現される。
【００３０】
図７は、本実施形態でのコマンドステータス検出部１１４における発行可能フラグの判定フローを示す図である。入力された各コマンドバッファ１１１のエントリに対して、ライト（Ｗｒｉｔｅ）転送である場合（Ｓ７０１のＮ）には、常に、発行可能フラグとして発行可能であることを示す‘１’を送出する（Ｓ７０４）。一方、リード（Ｒｅａｄ）転送である場合（Ｓ７０１のＮ）には、以下の判定を行う。分割フラグに‘１’が立っていない場合（Ｓ７０２のＮ）には、発行可能フラグとして発行可能であることを示す‘１’を送出する（Ｓ７０４）。また、分割フラグに‘１’が立っていて、バッファ内に分割該当転送がない場合（Ｓ７０２のＹ、Ｓ７０３のＮ）には、発行可能フラグとして発行可能であることを示す‘１’を送出する（Ｓ７０４）。一方、分割フラグに‘１’が立っていて、バッファ内に分割該当転送がある場合（Ｓ７０２のＹ、Ｓ７０３のＹ）には、発行可能フラグとして発行できないことを示す‘０’を送出する（Ｓ７０５）。分割該当転送の判定では、入力されたコマンドバッファエントリに対して分割された転送で、且つ論理アドレスとして先にアクセスされるべき転送が自身のコマンドバッファ１１１内に保持されているかの判定を行う。第一のＤＲＡＭ群１０２−Ａに対応付けられたコマンドステータス検出部１１４における判定と第二のＤＲＡＭ群１０２−Ｂに対応付けられたコマンドステータス検出部１１４における判定では方法が異なる。
【００３１】
第一のＤＲＡＭ群１０２−Ａに対応するコマンドステータス検出部１１４は、分割フラグが立った状態で入力されたコマンドバッファ１１１のエントリに示されるアドレスに対して３２バイトアラインにのっている転送かを判定する。３２バイトアラインにのった転送であった場合には、自身のコマンドバッファ１１１を参照し同一の３２バイト領域を含み分割フラグが立っている転送が存在している場合に発行不可能と判定し、それ以外に関して発行可能と判定する。例えば入力されたコマンドバッファのエントリが読み出し転送であり０ｘ１００であった場合に、自身のコマンドバッファ１１１内に分割フラグに‘１’がセットされ、アドレスが０ｘ１００〜０ｘ１１Ｆの範囲内である転送が存在すれば発行不可能と判定する。すなわち、論理アドレス０ｘ２２０に対する第二のＤＲＡＭ群１０２−Ｂに対して分割された転送である論理アドレス０ｘ２００〜０ｘ２１Ｆまでのエントリの有無を確認する。また入力されたコマンドバッファのエントリが０ｘ１０４等３２バイトアラインにのっていない場合には、自身のコマンドバッファ１１１のエントリ如何によらず発行可能と判定する。
【００３２】
第二のＤＲＡＭ群１０２−Ｂに対応するコマンドステータス検出部１１４は、読み出し転送であって分割フラグが立った状態で入力されたコマンドバッファのエントリに示されるアドレスに対して３２バイトアラインにのっている転送かを判定する。３２バイトアラインにのった転送であった場合、自身のコマンドバッファ１１１を参照し入力されたアドレスに対して３２バイト小さいアドレス領域を含み分割フラグが立っている転送が存在している場合に発行不可能と判定する。それ以外に関しては発行可能と判定する。例えば入力されたコマンドバッファのエントリが０ｘ１００であった場合に、自身のコマンドバッファ１１１内に分割フラグに‘１’がセットされ、アドレスが０ｘ０Ｅ０〜０ｘ０ＦＦの範囲内である転送が存在した場合に発行不可能と判定する。すなわち、論理アドレス０ｘ２００に対する第一のＤＲＡＭ群１０２−Ａに対して分割された転送である論理アドレス０ｘ１Ｅ０〜０ｘ１ＦＦまでのエントリの有無を確認する。また入力されたコマンドバッファのエントリが０ｘ１０４等３２バイトアラインにのっていない場合には、自身のコマンドバッファ１１１のエントリ如何によらず発行可能と判定する。
また入力されたコマンドバッファのエントリがライト転送であった場合には、分割の有無・アドレスによらず発行可能として判定する。
【００３３】
以下、本実施形態における動作について説明する。なお、ＤＲＡＭ群１０２−Ａ、１０２−Ｂにおける物理アドレス空間の論理アドレス空間へのマッピングは、前述した図２に示されるようにマッピングが行われているものとする。すなわち、論理アドレス空間を３２バイト毎に分割し、３２バイト毎に交互に第一のＤＲＡＭ群１０２−Ａの物理アドレス空間と第二のＤＲＡＭ群１０２−Ｂの物理アドレス空間とに割り当てられる。ここでは、前述した第一の実施形態における例示と同様に、バスマスタ１０３、１０４、１０５より（１）、（２）、（３）、（４）、（５）の順にメモリアクセスが発行された場合の動作を例示する。なお、（１）、（２）のメモリアクセスがリードアクセスであり、（３）、（４）、（５）のメモリアクセスがライトアクセスとする。
【００３４】
各バスマスタから前記転送が発行された後のある時間におけるコマンドバッファの状態を図８（Ａ）に示す。図８において、左側に図示した第一のバッファ９００は第一のＤＲＡＭ群１０２−Ａに対応したメモリアクセス用に設けられたバッファである。また、右側に図示した第二のバッファ９０１は第二のＤＲＡＭ群１０２−Ｂに対応したメモリアクセス用に設けられたバッファである。バッファ内には、バッファエントリの有効フラグ情報９０２、発行要求された物理アドレス情報９０３、要求転送サイズ情報９０４、要求転送種別情報９０５、発行可能フラグ情報９０６、及び分割フラグ情報９０７が保持されている。
【００３５】
図８（Ａ）に示すように、第一のバッファ９００と第二のバッファ９０１の１番目のエントリには、第一のバスマスタ１０３より発行された論理アドレス０ｘ０番地に対するリードアクセスが分割され保持されている。本エントリは分割転送であるため、それぞれ分割フラグ（９０７）が１にセットされている。図７に示したフローと前述した該当転送判定に従い、第一のバッファ９００の１番目のエントリの発行可能フラグ（９０６）には１がセットされ、第二のバッファ９０１における１番目のエントリの発行可能フラグ（９０６）には発行不可として０が設定されている。第一のバッファ９００の２番目、３番目のエントリには、第二のバスマスタ１０４より発行された論理アドレス０ｘ２００番地へのリードアクセス、０ｘ４００番地へのライトアクセスが保持されている。このとき、両転送は分割されていないため、分割フラグ（９０７）には０がセットされ、発行可能フラグ（９０６）には１がセットされる。第三のバスマスタ１０５より発行された論理アドレス０ｘ１０００番地へのライトアクセスは、第一のバッファ９００の４番目のエントリと第二のバッファ９０１の２番目のエントリに分割保持され、分割フラグ（９０７）にはそれぞれ１がセットされている。また、ライト転送であるため発行可能フラグ（９０６）には１がセットされている。図７に示したフローと前述した該当転送判定に従い、書き込み転送であるために第一のバッファ９００の４番目のエントリ及び第二のバッファ９０１における２番目のエントリの発行可能フラグ（９０６）には発行可能として１が設定されている。更に、第二のバスマスタ１０４より発行された論理アドレス０ｘ４２０番地へのライトアクセスは、第二のバッファ９０１の３番目のエントリに保持され、分割フラグ（９０７）には０がセットされ、発行可能フラグ（９０６）には１がセットされる。
【００３６】
ここで、第一のバッファ９００に対しては１番目のエントリが発行可能フラグに１がセットされているため、対応するメモリコマンド制御コア部１１６に転送が伝達される。第二のバッファ９０１においては、１番目のエントリに対して発行可能フラグが０と発行不可を示しているため、発行可能を示しているなかで一番若いエントリである２番目のエントリのメモリアクセスが対応するメモリコマンド制御コア部１１６に伝達される。それぞれのメモリアクセス要求は、各メモリコマンド制御コア部１１６にて独立に処理され並列にメモリアクセスが発行される。前記処理が成された後の各バッファの状態を図８（Ｂ）に示す。バッファ状態の変化に従い、図７に示したフローと前述した該当転送判定が実行される。ここでは第二のバッファ９０１の１番目のエントリの対となるメモリアクセスが先に発行されるため本転送が発行可能と判定され、発行可能フラグが図８（Ｂ）内に網掛けで示すように１にセットされる。したがって、第一のバッファ９０１及び第二のバッファ９０２ともに、図８（Ｂ）における１番目のエントリの転送が、メモリコマンド制御コア部１１６に発行され、メモリアクセスが実行される。
【００３７】
前記第二の実施形態の動作として示したように、ライト完了応答が必要な転送に関しては分割如何によらずメモリアクセス転送のタイミング調整を行わない。タイミング調整が必要な分割されたリードアクセスに対してアドレス順を維持しメモリ転送発行制御が常に可能となる。
【００３８】
＜第三の実施形態＞
次に、本発明の第三の実施形態について説明する。
第三の実施形態として、図９に示すメモリシステムを用いて説明する。
図９に示すメモリシステムにおいて、３つのバスマスタ１０３、１０４、１０５は、任意のシステムバス１０６を介してメモリ制御回路１００に接続される。また、メモリ制御回路１００は、ＤＲＡＭ群１７００に接続される。本実施形態では、ＤＲＡＭ群１７００の各々はデータ幅が１６ビットのＤＤＲ３−ＳＤＲＡＭ１０１を１組有する。また、本実施形態では、第一のＤＲＡＭ群１７００−Ａと第二のＤＲＡＭ群１７００−Ｂと第三のＤＲＡＭ群１７００−Ｃと第四のＤＲＡＭ群１７００−Ｄとの４つのメモリチャネルのメモリインターフェースを具備している。第一のＤＲＡＭ群１７００−Ａと第二のＤＲＡＭ群１７００−Ｂと第三のＤＲＡＭ群１７００−Ｃと第四のＤＲＡＭ群１７００−Ｄとのメモリ空間の割り当てを図１０に示す。論理アドレス空間は、各ＤＲＡＭ群１７００のアクセス単位毎（本実施形態では、１６バイトとする）に分割されるものとする。さらに論理アドレス空間における分割された空間が、第一のＤＲＡＭ群１７００−Ａ、第二のＤＲＡＭ群１７００−Ｂ、第三のＤＲＡＭ群１７００−Ｃ、及び第四のＤＲＡＭ群１７００−Ｄが交互にマッピングされるものとする。例えば論理アドレス空間における０ｘ１００番地は第一のＤＲＡＭ群１７００−Ａの物理アドレス空間における０ｘ４０番地に割り当てられる。また、例えば論理アドレス空間における０ｘ１１０番地は第二のＤＲＡＭ群１７００−Ｂの物理アドレス空間における０ｘ４０番地に割り当てられる。また、例えば論理アドレス空間における０ｘ１２０番地は第三のＤＲＡＭ群１７００−Ｃの物理アドレス空間における０ｘ４０番地に割り当てられ、論理アドレス空間における０ｘ１３０番地は第四の物理アドレス空間における０ｘ４０番地に割り当てられる。
【００３９】
第三の実施形態においては、第一の実施形態／第二の実施形態に対して、バスインターフェース部１０７内に含まれる転送分割・振り分け部１０８の作用及びコマンドステータス検出部１１４の作用が異なる以外は各構成要素の動作は同一である。以下、前述した実施形態との作用が異なる箇所を中心に説明する。
【００４０】
メモリ制御回路１００では、バスマスタより発行されたメモリアクセスがバスインターフェース部１０７においてバスアクセスとして取り込まれる。バスインターフェース部１０７では、アドレス（アクセスアドレス）、転送サイズ（アクセスデータサイズ）に基づき前述したメモリ空間の割り当てに従って転送分割・振り分け部１０８により適宜転送の分割と該当するＤＲＡＭ群への振り分けが行われる。転送分割・振り分け部１０８の処理フローを図１１に示す。転送分割・振り分け部１０８は、バスマスタからの転送に対して、転送の開始アドレスのバイトアライン及び転送サイズを判定し、単一のＤＲＡＭ群に対するアクセスか否かの判定を行う（Ｓ１１０１，Ｓ１１０２、Ｓ１１０３）。その結果、単一のＤＲＡＭ群に対するアクセスであった場合には、転送分割・振り分け部１０８は、アドレスより第一のＤＲＡＭ群から第四のＤＲＡＭ群のいずれの転送であるかを判定する（Ｓ１１０４、Ｓ１１０５、Ｓ１１０６）。そして、転送分割・振り分け部１０８は、判定に従い、対応するメモリコマンド発行部１０９に対してメモリアクセス要求を転送する（Ｓ１１０７、Ｓ１１０８、Ｓ１１０９、Ｓ１１１０）。一方、複数のＤＲＡＭ群に対するアクセスである場合には、転送分割・振り分け部１０８は、どのＤＲＡＭ群に相当する転送であるかを判定し、対応する複数のメモリコマンド発行部１０９に対してメモリアクセス要求を転送する（Ｓ１１１１）。
【００４１】
例えば、論理アドレス０ｘ０番地からの３２バイトアクセスについては、第一のＤＲＡＭ群１７００−Ａと第二のＤＲＡＭ群１７００−Ｂにそれぞれ対応したメモリコマンド発行部１０９に対してメモリアクセス要求を転送する。このとき、ＤＲＡＭ群１７００−Ａ、１７００−Ｂの各々の物理アドレス０ｘ０番地からの１６バイト転送としてメモリアクセス要求を分割し転送する。また、論理アドレス０ｘ４０番地からの６４バイトアクセスについては、対応するメモリコマンド発行部１０９に対して、それぞれ物理アドレス０ｘ１０からの１６バイト転送としてメモリアクセス要求を分割転送する。このようにバスマスタからメモリアクセス要求される論理アドレスに応じて、対応するＤＲＡＭ群の発行されるべき物理アドレスを算出し、必要に応じて分割し複数のメモリコマンド発行部にてメモリアクセスが実行される。
【００４２】
バスインターフェース部１０７により、分割・振り分けられたメモリアクセス要求は、各メモリコマンド発行部１０９内のコマンド順序制御部１１０に転送され、コマンドバッファ１１１内に格納される。また、前述した第一、第二の実施形態に示した動作と同様に、対となるコマンドステータス検出部１１４により各エントリの発行可能フラグが更新される。本実施形態においては、４組のＤＲＡＭ群１７００間にてコマンドステータス情報の検出が以下のように行われる。第二のＤＲＡＭ群１７００−Ｂに対応するコマンドバッファ１１１の情報は、第一のＤＲＡＭ群１７００−Ａ内のコマンドステータス検出部１１４により各エントリの発行可能状態が更新される。すなわち、第二のＤＲＡＭ群１７００−Ｂに対応するコマンドバッファ１１１内のエントリに係るコマンド発行可否判定は、第一のＤＲＡＭ群１７００−Ａに対応するコマンドバッファ１１１内のエントリを参照することにより行われる。第三のＤＲＡＭ群１７００−Ｃに対応するコマンドバッファ１１１の情報は、第二のＤＲＡＭ群１７００−Ｂ内のコマンドステータス検出部１１４により各エントリの発行可能状態が更新される。すなわち、第三のＤＲＡＭ群１７００−Ｃに対応するコマンドバッファ１１１内のエントリに係るコマンド発行可否判定は、第二のＤＲＡＭ群１７００−Ｂに対応するコマンドバッファ１１１内エントリを参照することにより行われる。同様に、第四のＤＲＡＭ群１７００−Ｄに対応するコマンドバッファ１１１の情報は、第三のＤＲＡＭ群１７００−Ｃ内のコマンドステータス検出部１１４により各エントリの発行可能状態が更新される。また、第一のＤＲＡＭ群１７００−Ａに対応するコマンドバッファ１１１の情報は、第四のＤＲＡＭ群１７００−Ｄ内のコマンドステータス検出部１１４により各エントリの発行可能状態が更新される。
【００４３】
以下、各コマンドステータス検出部１１４における動作について説明する。
各コマンドステータス検出部１１４の動作フローは、前述した図４や図７に示したフローと同様であるが、バッファ内の該当転送有り判定方法が若干異なる。該当転送有り判定では、入力されたコマンドバッファのエントリに対して分割された転送で、且つ論理アドレスとして先にアクセスされるべき転送が自身のコマンドバッファ１１１内に保持されているかの判定を行う。
【００４４】
コマンドステータス検出部１１４においては、分割フラグが立った状態で入力されたコマンドバッファ１１１のエントリに示されるアドレスに対して１６バイトアラインにのっている転送かを判定する。１６バイトアラインにのった転送であった場合には、自身のコマンドバッファ１１１を参照し同一の１６バイト領域を含み分割フラグが立っている転送が存在している場合に発行不可能と判定し、それ以外に関しては発行可能と判定する。具体例を示すと、入力されたコマンドバッファのエントリが０ｘ１００であった場合に、自身のコマンドバッファ１１１内に分割フラグに‘１’がセットされ、アドレスが０ｘ１００〜０ｘ１０Ｆの範囲内である転送が存在すれば発行不可能と判定する。第二のＤＲＡＭ群１７００−Ｂに対するアクセスである論理アドレス０ｘ２１０に対し、分割された転送である論理アドレス０ｘ２００〜０ｘ２０Ｆまでのエントリの有無を第一のＤＲＡＭ群１７００−Ａ内のコマンドバッファ１１１の状態より確認する。また入力されたコマンドバッファのエントリが０ｘ１０４等１６バイトアラインにのっていない場合には、自身のコマンドバッファ１１１のエントリ如何によらず発行可能と判定する。
【００４５】
なお、第一のＤＲＡＭ群１７００−Ａに対応するコマンドステータス検出部１１４は、入力されたコマンドバッファのエントリに示されるアドレスに対して１６バイトアラインにのっている転送かを判定する。１６バイトアラインにのった転送であった場合、自身のコマンドバッファ１１１を参照し入力されたアドレスに対して１６バイト小さいアドレス領域を含み分割フラグが立っている転送が存在している場合に発行不可能と判定する。それ以外に関して発行可能と判定する。具体例を示すと、入力されたコマンドバッファのエントリが０ｘ１００であった場合に、自身のコマンドバッファ１１１内に分割フラグに‘１’がセットされ、アドレスが０ｘ０Ｆ０〜０ｘ０ＦＦの範囲内である転送が存在した場合に発行不可能と判定する。すなわち、論理アドレス０ｘ４００に対する第一のＤＲＡＭ群１７００−Ａに対して分割された転送である論理アドレス０ｘ３Ｆ０〜０ｘ３ＦＦまでのエントリの有無を確認する。また入力されたコマンドバッファのエントリが０ｘ１０４等１６バイトアラインにのっていない場合には、自身のコマンドバッファ１１１のエントリ如何によらず発行可能と判定する。
【００４６】
その他、コマンド順序制御部１１０における各コマンド発行のタイミング等については、前述した第一、第二の実施形態と同様の動作である。
第三の実施形態によると、論理アドレス空間に対して４組のＤＲＡＭ群に分割、転送が行われる場合においても順序制御、タイミング制御の作用により論理アドレス空間順のメモリアクセス発行が可能である。
【００４７】
なお、本明細書においては、発明の実施形態として２組のＤＲＡＭ群及び４組のＤＲＡＭ群により論理アドレス空間を分割した場合について示しているが、分割方法が２組、４組に限定されるものではなく、他の分割方法でも適用できることは言うまでもない。また、アドレス空間の割り当てに関してもＤＲＡＭ群のアクセス単位で分割した構成を一例として示しているがそれに限定されるものではない。第一のＤＲＡＭ群の物理アドレスを６４バイト単位、第二のＤＲＡＭ群の物理アドレスを３２バイト単位として割り当てるよう転送分割・振り分け部１０８を変更することも可能であり、メモリシステムの要求や帯域割り当てに基づき種々適用できるものである。
【００４８】
（本発明の他の実施形態）
前述した実施形態の機能を実現するべく各種のデバイスを動作させるように、該各種デバイスと接続された装置又はシステム内のコンピュータ（ＣＰＵ又はＭＰＵ）に対し、前記実施形態の機能を実現するためのソフトウェアのプログラムを供給する。そして、そのシステム又は装置のコンピュータに格納されたプログラムに従って前記各種デバイスを動作させることによって実施したものも、本発明の範疇に含まれる。
また、この場合、前記ソフトウェアのプログラム自体が前述した実施形態の機能を実現することになり、そのプログラム自体は本発明を構成する。また、そのプログラムをコンピュータに供給するための手段、例えばかかるプログラムを格納した記録媒体は本発明を構成する。かかるプログラムを記憶する記録媒体としては、例えばフレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
また、供給されたプログラムがコンピュータにて稼働しているオペレーティングシステム又は他のアプリケーションソフト等と共同して前述の実施形態の機能が実現される場合にもかかるプログラムは本発明の実施形態に含まれることは言うまでもない。
さらに、供給されたプログラムがコンピュータに係る機能拡張ボードや機能拡張ユニットに備わるメモリに格納された後、そのプログラムの指示に基づいてその機能拡張ボード等に備わるＣＰＵ等が実際の処理の一部又は全部を行う。その処理によって前述した実施形態の機能が実現される場合にも本発明に含まれることは言うまでもない。
【００４９】
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００５０】
１００…メモリ制御回路  １０１…ＤＲＡＭデバイス  １０２、１７００…ＤＲＡＭ群  １０３、１０４、１０５…バスマスタ  １０６…システムバス  １０７…バスインターフェース部  １０８…転送分割・振り分け部  １０９…メモリコマンド発行部  １１０…コマンド順序制御部
【図１】
2011013835.tif 000003
【図２】
2011013835.tif 000004
【図３】
2011013835.tif 000005
【図４】
2011013835.tif 000006
【図５】
2011013835.tif 000007
【図６】
2011013835.tif 000008
【図７】
2011013835.tif 000009
【図８】
2011013835.tif 000010
【図９】
2011013835.tif 000011
【図１０】
2011013835.tif 000012
【図１１】
2011013835.tif 000013