(57)【要約】【課題】プロセッサやＤＭＡコントローラの性能を損なわずに、メモリのバスバンド幅を向上させて、効率的なメモリアクセスを簡単な制御で行う。【解決手段】複数のバスマスタ１０１〜１０４のアクセス要求をアクセス分配装置１０６が、バッファリング装置１０７〜１１０へ振り分け、アクセス要求ジョブとして先行的に受け付ける。バッファリング装置１０７〜１１０が受け付けたアクセス要求ジョブは、マルチバンクオペレーションが行えるようにスケジューリング装置１１１にて外部メモリ装置１０５へのアクセス制御がなされる。これにより、複数のバスマスタ１０１〜１０４は遅滞なく、次々とアクセス要求ジョブを発行することができる。【選択図】  図１
2004288021.tif 000002
【特許請求の範囲】
【請求項１】
バースト長とアドレスを指定することによりバーストアクセス可能なｋ個のバスマスタが、ｎ個のバンク構成を持つバーストアクセス可能な同期型メモリ装置へアクセスする際の制御を行うメモリアクセス制御装置において、
ライトデータ或いはリード要求を一旦保持するｍ個のバッファリング装置と、
前記バスマスタからのライトデータ或いはリード要求を前記ｍ個のバッファリング装置に分配して保持させるアクセス分配装置と、
前記バッファリング装置にライトされたデータを調停して前記同期型メモリ装置へ転送したり或いは前記バッファリング装置からのリード要求に応じて前記同期型メモリにリードアクセスすることにより得られたリードデータを前記バスマスタヘ転送するスケジューリング装置と、
を具備することを特徴とするメモリアクセス制御装置。
【請求項２】
前記バッファリング装置は、前記バスマスタからのアクセスをアクセス要求ジョブとしてＦＩＦＯで受け付けて、前記スケジューリング装置に先頭のアクセス要求ジョブの内容を処理するように要求することを特徴とする請求項１に記載のメモリアクセス制御装置。
【請求項３】
前記バッファリング装置が受け付ける前記バスマスタのアクセス先アドレスは、前記バッファリング装置の数にて分けられた前記同期型メモリの領域に対応しており、前記バスマスタより要求されたアクセスが２つ以上の前記バッファリング装置に跨がる場合は、前記アクセス分配装置により前記バッファリング装置にて受け付け可能な領域毎のアクセスに分配され、それぞれのバッファリング装置にてアクセス要求ジョブとして受け付けられることを特徴とする請求項１又は２に記載のメモリアクセス制御装置。
【請求項４】
前記スケジューリング装置は、前記ｍ個のバッフアリング装置のアクセス要求ジョブをもとに前記同期型メモリ装置ヘアクセスする順序を決定して当該同期型メモリへのリード又はライト動作を行うことを特徴とする請求項１乃至３いずれかに記載のメモリアクセス制御装置。
【請求項５】
前記バッファリング装置の個数ｍと前記メモリ装置のバンク数ｎの関係はｐを任意の自然数とするとｍ＝ｐ×ｎ、或いはｎ＝ｐ×ｍが成り立つことを特徴とする請求項１乃至４いずれかに記載のメモリアクセス制御装置。
【請求項６】
前記バッファリング装置にて扱うアクセス要求ジョブは、アクセスの先頭アドレスと、リード或いはライト識別子と、ライト時のデータと、アクセス要求ジョブ内ライトデータのライトイネーブル信号と、バーストアクセス時にはインクリメントか又はラップであるかの識別子と、バースト長と、前記バスマスタのいずれかからアクセスされたかを示すマスタＩＤより構成され、前記バッファリング装置はアクセス要求ジョブ複数個を待ち行列を用いて管理することを特徴とする請求項１乃至５いずれかに記載のメモリアクセス制御装置。
【請求項７】
前記バスマスタが要求したリードアクセスが、２台以上の前記バッファリング装置で扱うアクセス要求ジョブに相当する場合、前記アクセス分配装置は前記バスマスタが読み込む順序で前記バッファリング装置にアクセス要求ジョブを分配し、前記スケジューリング装置は前記順序で前記同期メモリ装置ヘリードアクセスを発生させることを特徴とする請求項１乃至６いずれかに記載のメモリアクセス制御装置。
【請求項８】
前記バスマスタが、２台以上の前記バッファリング装置で扱うアドレス発行を伴うリードアクセスを行った時に、対象となるバッファリング装置内のアクセス要求ジョブの数が異なる場合、前記アクセス分配装置は何の動作も要求しないＮｏｎＯｐｅｒａｔｉｏｎのアクセス要求ジョブを前記バッファリング装置に複数個発生させた後に本来のリードのアクセス要求ジョブを発生することを特徴とする請求項１乃至７いずれかに記載のメモリアクセス制御装置。
【請求項９】
前記バッファリング装置に設けられたＦＩＦＯに最後に入力したアクセス要求ジョブがリードアクセスであり、そのリードアクセスと同一アドレスのライトアクセスであるアクセス要求ジョブがＦＩＦＯ内にある場合、前記スケジューリング装置はそのライトデータを前記バスマスタヘリードデータとして転送することを特徴とする請求項１乃至８いずれかに記載のメモリアクセス制御装置。
【請求項１０】
前記バッファリング装置内に前記ＮｏｎＯｐｅｒａｔｉｏｎのアクセス要求ジョブがある場合、前記アクセス分配装置はそのアクセス要求ジョブを優先度の高いアクセス要求ジョブと入れ替えることを特徴とする請求項８に記載のメモリアクセス制御装置。
【請求項１１】
前記バッファリング装置内の先頭アクセス要求ジョブをラウンドロビン制御で処理する際に、前記ＮｏｎＯｐｅｒａｔｉｏｎの属性を持ったアクセス要求ジョブがＦＩＦＯの先頭にあった場合、前記スケジューリング装置は次のバッファリング装置のアクセス要求ジョブを処理することを特徴とする請求項８に記載のメモリアクセス制御装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＤＳＰを含む複数のプロセッサやＤＭＡコントローラがＳＤＲＡＭなどのバンク構成を持ちページアクセス可能なメモリ装置にアクセスする際の制御を行うメモリアクセス制御装置に関する。
【０００２】
【従来の技術】
従来より、高集積化可能なメモリ装置として汎用ＤＲＡＭと基本構成が同一であるＳＤＲＡＭがある。ＳＤＲＡＭはバーストアクセスの際にコマンド方式を用いたパイプラインアーキテクチャを採用しており、高速なデータアクセスメモリ装置として着目されている。同一バンク・同一行のメモリセルアクセスに対しては高速データアクセスが可能であるが、同一バンクで異なる行のメモリセルアクセスに対しては、メモリアクセスの効率が下がるという課題がある。
【０００３】
そこで、異なるバンク間で高速アクセスを実現する方法を一般的には用いるが、アクセス中に次のメモリアクセスに対するコマンド制御をしなければならず、その制御方法に工夫がなされている。
【０００４】
図１３はＳＤＲＡＭに対する従来のメモリアクセス制御装置の構成を示す図である。図１３において、複数のバスマスタ１３０１〜１３０４がＳＤＲＡＭ１３０５ヘアクセスする際には、アービタ１３０６にて受け付けられた後、メモリコントローラ１３０７内のＦＩＦＯ１３０７ａにバスマスタのアクセス内容がキューイングされる。メモリコントローラ１３０７はＦＩＦＯ１３０７ａにキューイングされたバスマスタのアクセス内容を参照してＳＤＲＡＭ１３０５へのコマンド発行を行うが、そのバースト長、アドレスを参照してどのバンクにアクセスするかを決定する（例えば特許文献１、２参照）。
【０００５】
【特許文献１】
特開２００１−１２５８２６号公報  （第２−３頁、第１図）
【特許文献２】
特開平１１−３４５１６５号公報  （第３−４頁、第２図）
【０００６】
【発明が解決しようとする課題】
しかし、図１３に示す従来技術では、最大バスバンド幅を達成するマルチバンクオペレーションを実施するためには、現アクセス中に次にアクセスするアドレスを確定しなければならず、そのためには複雑な制御が必要であった。また、リードアクセスとライトアクセスが交互に起こるようなアクセスが発生すると、ＳＤＲＡＭへのリードコマンドとライトコマンドコマンドを発行する間に転送されない区間（Ｈｉ−Ｚ）が発生してしまい、メモリアクセスの効率を落とす要因となっている（図１１（Ｂ）参照）。
【０００７】
本発明は、上記事情に鑑みてなされたもので、プロセッサやＤＭＡコントローラの性能を損なわずに、メモリのバスバンド幅を向上させて、効率的なメモリアクセスを簡単な制御で行うことができるメモリアクセス制御装置を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成する為の第１の発明のメモリアクセス制御装置は、バースト長とアドレスを指定することによりバーストアクセス可能なｋ個のバスマスタが、ｎ個のバンク構成を持つバーストアクセス可能な同期型メモリ装置ヘアクセスする際の制御を行うメモリアクセス制御装置において、ライトデータ或いはリード要求を一旦保持するｍ個のバッファリング装置と、前記バスマスタからのライトデータ或いはリード要求を前記ｍ個のバッファリング装置に分配して保持させるアクセス分配装置と、前記バッファリング装置にライトされたデータを調停して前記同期型メモリ装置へ転送したり或いは前記バッファリング装置からのリード要求に応じて前記同期型メモリにリードアクセスすることにより得られたリードデータを前記バスマスタヘ転送するスケジューリング装置とを具備することを特徴とする。
【０００９】
上記発明によれば、バスマスタはアクセス要求の受け付けと同期型メモリ装置の実際のアクセスを分離する事が可能となり、バスマスタのアクセス要求が実際に同期型メモリ装置に到達していなくても、次のアクセス要求を発行することが可能であり、且つ同期型メモリ装置のバスバンド幅を最大限に利用する事ができる。
【００１０】
第２の発明のメモリアクセス制御装置の前記バッファリング装置は、前記バスマスタからのアクセスをアクセス要求ジョブとしてＦＩＦＯで受け付けて、前記スケジューリング装置に先頭のアクセス要求ジョブの内容を処理するように要求することを特徴とする。
【００１１】
上記発明によれば、バッファリング装置はバスマスタからのアクセスをアクセス順に整然と処理することができる。
【００１２】
第３の発明のメモリアクセス制御装置の前記バッフアリング装置が受け付ける前記バスマスタのアクセス先アドレスは、前記バッファリング装置の数にて分けられた前記同期型メモリの領域に対応しており、前記バスマスタより要求されたアクセスが２つ以上の前記バッファリング装置に跨がる場合は、前記アクセス分配装置により前記バッファリング装置にて受け付け可能な領域毎のアクセスに分配され、それぞれのバッファリング装置にてアクセス要求ジョブとして受け付けられることを特徴とする。
【００１３】
上記発明によれば、バスマスタより要求された２つ以上のバッファリング装置に跨がるアクセスでも、複数台のバッファリング装置に跨がった領域にてアクセス要求ジョブとして支障なく受け付けることができる。
【００１４】
第４の発明のメモリアクセス制御装置の前記スケジューリング装置は、前記ｍ個のバッフアリング装置のアクセス要求ジョブをもとに前記同期型メモリ装置ヘアクセスする順序を決定して当該同期型メモリへのリード又はライト動作を行うことを特徴とする。
【００１５】
上記発明によれば、スケジューリング装置がバッフアリング装置のアクセス要求ジョブをもと同期型メモリへのリード又はライト動作を行うため、バスマスタのアクセス要求が実際に同期型メモリ装置への到達、不到達に拘わりなく、次のアクセス要求を発行することができる。
【００１６】
第５の発明のメモリアクセス制御装置は、前記バッファリング装置の個数ｍと前記メモリ装置のバンク数ｎの関係はｐを任意の自然数とするとｍ＝ｐ×ｎ、或いはｎ＝ｐ×ｍが成り立つことを特徴とする。
【００１７】
上記発明によれば、同期型メモリ装置のバンクとバッファリング装置間の対応が明確となるため、バッファリング装置と同期型メモリ装置のバンクを対応させたデータ転送制御を行うことができ、バンク構成を有したメモリ装置のアクセス制御を容易にすることが可能である。
【００１８】
第６の発明のメモリアクセス制御装置の前記バッファリング装置にて扱うアクセス要求ジョブは、アクセスの先頭アドレスと、リード或いはライト識別子と、ライト時のデータと、アクセス要求ジョブ内ライトデータのライトイネーブル信号と、バーストアクセス時にはインクリメントか又はラップであるかの識別子と、バースト長と、前記バスマスタのいずれかからアクセスされたかを示すマスタＩＤより構成され、前記バッファリング装置はアクセス要求ジョブ複数個を待ち行列を用いて管理することを特徴とする。
【００１９】
上記発明によれば、バスマスタのメモリ装置へのアクセス要求を一時的に受け付ける事が可能であり、且つバスマスタのアクセス要求を代行して発生できる。また、優先順位の低いバスマスタからの要求も受付可能となるため、メモリ装置にアクセスできないバスマスタが存在することを回避できる。
【００２０】
第７の発明のメモリアクセス制御装置は、前記バスマスタが要求したリードアクセスが、２台以上の前記バッファリング装置で扱うアクセス要求ジョブに相当する場合、前記アクセス分配装置は前記バスマスタが読み込む順序で前記バッファリング装置にアクセス要求ジョブを分配し、前記スケジューリング装置は前記順序で前記同期メモリ装置ヘリードアクセスを発生させることを特徴とする。
【００２１】
上記発明によれば、バッファリング装置単位のメモリ装置アクセス制御のみを実施するため、回路の簡易化を図ることができる。
【００２２】
第８の発明のメモリアクセス制御装置は、前記バスマスタが、２台以上の前記バッファリング装置で扱うアドレス発行を伴うリードアクセスを行った時に、対象となるバッファリング装置内のアクセス要求ジョブの数が異なる場合、前記アクセス分配装置は何の動作も要求しないＮｏｎＯｐｅｒａｔｉｏｎのアクセス要求ジョブを前記バッファリング装置に複数個発生させた後に本来のリードのアクセス要求ジョブを発生することを特徴とする。
【００２３】
上記発明によれば、バッファリング装置はバスマスタのアクセス要求受け付けを直ちに行い、アクセス要求の実行順序をＮｏｎＯｐｅｒａｔｉｏｎアクセス要求を含めて調整した後に、リードデータを各バスマスタに供給することが可能になる。
【００２４】
第９の発明のメモリアクセス制御装置は、前記バッファリング装置に設けられたＦＩＦＯに最後に入力したアクセス要求ジョブがリードアクセスであり、そのリードアクセスと同一アドレスのライトアクセスであるアクセス要求ジョブがＦＩＦＯ内にある場合、前記スケジューリング装置はそのライトデータを前記バスマスタヘリードデータとして転送することを特徴とする。
【００２５】
上記発明によれば、リードアクセス時のバスマスタへのデータ受け取りレイテンシを短縮する事が可能である。
【００２６】
第１０の発明のメモリアクセス制御装置は、前記バッファリング装置内に前記ＮｏｎＯｐｅｒａｔｉｏｎのアクセス要求ジョブがある場合、前記アクセス分配装置はそのアクセス要求ジョブを優先度の高いアクセス要求ジョブと入れ替えることを特徴とする。
【００２７】
上記発明によれば、バスマスタ要求に対するアクセス順序を保ちつつ、優先順位の高い要求をＮｏｎＯｐｅｒａｔｉｏｎの要求と入れ替えることができ、先に処理する事が可能である。
【００２８】
第１１の発明のメモリアクセス制御装置は、前記バッファリング装置内の先頭アクセス要求ジョブをラウンドロビン制御で処理する際に、前記ＮｏｎＯｐｅｒａｔｉｏｎの属性を持ったアクセス要求ジョブがＦＩＦＯの先頭にあった場合、前記スケジューリング装置は次のバッファリング装置のアクセス要求ジョブを処理することを特徴とする。
【００２９】
上記発明によれば、ラウンドロビン制御のデータアクセス制御に加え、簡易な制御を付け加える事で、同期型メモリ装置のデータ転送量を減らすことなく同期型メモリ装置へのアクセスが可能である。
【００３０】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して説明する。
図１は本発明の一実施の形態に係るメモリアクセス制御装置の構成を示すブロック図である。メモリアクセス制御装置は、複数のバスマスタｌ０１〜１０４と同期型の外部メモリ装置（例えばＳＤＲＡＭ）１０５の間に挿入され、アクセス分配装置１０６、バッファリング装置１０７〜１１０及びスケジューリング装置１１１により構成されている。
【００３１】
外部メモリ装置１０５は４個のバンク１０５ａ〜１０５ｄを有している。バッファリング装置とバンクの数は必ずしも一致しないが、本実施の形態では、バッファリング装置１０７〜１１１それぞれに対し、外部メモリ装置１０５のバンク１０５ａ〜１０５ｄが対応しているものとする。
【００３２】
次に本実施の形態の動作について説明する。図１において、バスマスタｌ０１〜１０４いずれかが外部メモリ装置１０５に対してリード或いはライトのアクセス要求を発行する。この時、アクセス分配装置１０６はアクセス要求先アドレスの特定ビットを参照してバッファリング装置１０７〜１１０の内のいずれのバッファリング装置へのアクセス要求ジョブとして分配するのかを判断し、バッファリング装置１０７〜１１０の内、選択されたバッファリング装置でのバスマスタの競合状況を判断して、アクセス要求ジョブの振り分けタイミングを制御する。
【００３３】
一方、スケジューリング装置１１１はバッファリング装置１０７〜１１０におけるＦＩＦＯの先頭のアクセス要求ジョブに応じた外部メモリ装置１０５へのアクセスコマンド発行をスケジューリング装置１１１にて行う。スケジューリグ装置１１１はバッファリング装置１０７〜１１０内のアクセス要求ジョブの内容をラウンドロビン制御にて参照し、外部メモリ装置１０５へのアクセス制御信号に変換する。
【００３４】
以下の説明では、バスマスタ１０１〜１０４が発行する要求は１ワード（４ｂｙｔｅ）の倍数、バッファリング装置１０７〜１１０にて受け付けられる要求の単位を４ワード（３２ｂｙｔｅ）、バッファリング装置１０７〜１１０で受付可能な最大アクセス要求ジョブ数を６、バッファリング装置１０７〜１１０の数を４とし、例えば図２に示すようにバッファリング装置２０１〜２０４のハッチングで示されている箇所は上記アクセスのアクセス要求ジョブにて占められているものとする。また、外部メモリ装置１０５は１サイクルあたり４ｂｙｔｅ転送ができ、ＣＡＳレイテンシは２であるものとする。尚、バッファリング装置は以下図２おいて説明便宜上その符号を変更して説明するが、例えば図２の２０１〜２０４は上記バッファリング装置１０７〜１１０に相当し、図３以下も同様である。
【００３５】
まず、スケジューリング装置１１１の動作について説明する。後に詳述する図９において、バッファリング装置内のアクセス要求ジョブのバッファリング装置に対する実行順序が、９０１→９０２→９０３→９０４であるとすると、バッファリング装置９０１〜９０４内のアクセス要求ジョブは、９１１→９１２→９１３→９１４→９１５→９１６→９１７→９１８の順序にて実行されることとなる。
【００３６】
つまり、隣り合うバッファリング装置でＦＩＦＯ内で同じ順序のアクセス要求ジョブが全て外部メモリ装置１０５にアクセスされた後に、後続の順序のバッファリング装置ヘのアクセスが行われる。
【００３７】
次に、アクセス分配装置１０６によるバッファリング装置１０７〜１１０へのアクセス要求ジョブの分配方法を図２〜図６と図７、図８のフローチャートを用いて説明する。
【００３８】
図２（Ａ）、（Ｂ）は、バスマスタ１０１〜１０４からのアクセス要求がバッファリング装置１０７〜１１０を跨がるアドレスを発行した場合を説明する図である。図２（Ａ）に示すように、あるバスマスタが、アドレスの特定ビットの識別により２個のバッファリング装置２０２、２０３に跨がる８ワードのアクセス要求２１１、２１２を発行し、アクセス分配装置１０６が図２（Ｂ）に示すようにそれぞれの要求をバッファリング装置２０２と２０３に分配する。
【００３９】
図３（Ａ）、（Ｂ）は、ＦＩＦＯ内のアクセス要求ジョブ数が均一でないバッファリング装置３０１、３０２、３０３に跨がるリード要求３１１、３１２、３１３が発行された場合のアクセス順序を守るための構成について説明する図である。
【００４０】
図３（Ａ）の例は、バッファリング装置１０７内の待ち行列のアクセス要求ジョブが一番多くなっているため、図３（Ｂ）に示すようにリード要求３１２、３１３に対し、バッファリング装置３０２、３０３はＮｏｐ（ＮｏｎＯｐｅｒａｔｉｏｎ）のアクセス要求ジョブを挿入してリード要求３１１、３１２、３１３のＦＩＦＯ内での順序を同一にしている。
【００４１】
バッファリング装置３１２或いは３１３の待ち行列が一杯で次のアクセス要求ジョブを受け付けることができず、Ｎｏｐのアクセス要求ジョブが挿入不可能であれば、リード要求３１１に対するリードデータを受領した後に、リード要求３１２、３１３の発行を行う方法も可能である。
【００４２】
図４（Ａ）、（Ｂ）、（Ｃ）は、２つのバスマスタから、それぞれバッファリング装置４０１、４０２及びバッファリング装置４０１、４０３に跨がる８ワードのリード要求４２１、４２２及び８ワードの任意のアクセス要求４１１、４１２が発行され、バッファリング装置４０２へのアクセスが競合した場合の動作を説明する図である。
【００４３】
ここで、リード要求４２１、４２２のリードアクセスは４１１、４１２のアクセスより優先度が高いものとし、図４（Ａ）はアクセスが受け付けられる前の状態を示しており、バッファリング装置４０１の待ち行列はこれ以上のアクセス要求ジョブを受け付けられない状態である。
【００４４】
図４（Ｂ）は、リード要求４２１が、リード要求４２２とのアクセスの順序を守るためにアクセスできず、バッファリング装置４０１にアクセスしない優先順位の低いアクセス４１１、４１２が先にバッファリング装置４０２、４０３に受け付けられている様子を示している。
【００４５】
図４（Ｃ）はあくまでもリード要求４２１、４２２とアクセス要求４１１、４２２の優先順位を守ってアクセスする様子を示しており、リード要求４２１が受け付けられるまでリード要求４２２は受け付けられず、リード要求４２１、４２２のアクセス順序を守るためにリード要求４２２を受け付ける際にバッファリング装置４０２ではＮｏｐが挿入されている。
【００４６】
図５（Ａ）、（Ｂ）では、Ｎｏｐの属性を持ったアクセス要求ジョブが優先度の高いアクセス要求に入れ替えられる様子を説明する図である。
【００４７】
図５（Ａ）中のバッファリング装置５０１、５０３はＮｏｐ属性のアクセス要求ジョブが先行している。図５（Ｂ）中では、これらのバッファリング装置に優先度の高い８ワードの要求５１１、５１２が来た際に、バッファリング装置５０２、５０３内の待ち行列のＮｏｐ属性を持った先頭アクセス要求ジョブがこれらの要求にて入れ替えられる様子を示している。
【００４８】
図６（Ａ）、（Ｂ）はバッファリング装置６０１〜６０４のうち、６０１〜６０３へのリードアクセス６１１〜６１３が発行された場合におけるアクセス分配装置１０６の別の動作を示しており、図６（Ａ）にアクセス前の状態、図６（Ｂ）にバッファリング装置へのアクセス要求タイミングを示している。
【００４９】
タイミング６２１にてリード要求６１１がバッファリング装置６０１に対して発行され、そのリードデータがバスマスタヘ返されたタイミング６２２に、次のリード要求６１２がバッファリング装置６０２に対して発行され、そのリードデータがバスマスタヘ返されたタイミング６２３に、最後のリード要求６１３がバッファリング装置６０３に発行されている。タイミング６１１〜６１３のタイミングでは毎回調停が行われている。
【００５０】
以上の動作を、フローチャート図７、図８を用いて説明する。バスマスタのアクセス要求が発生し（Ｓ７０１）、そのバースト長が１つのバッファリング装置にて受付可能であった場合（Ｓ７０２：Ｙｅｓ）、アドレスに対応したバッファリング装置へのジョブエントリ許可を待つ（Ｓ７１２）。ここで、Ｎｏｐ入れ替え無しの場合（Ｓ７２０：Ｎｏ）、アクセス要求ジョブエントリ許可を待ち、バッファリング装置ヘアクセス要求ジョブとして受け付けられる（Ｓ７１３）。
【００５１】
一方、Ｎｏｐ入れ替えありの場合（Ｓ７２０：Ｙｅｓ）、置き換えられるＮｏｐのジョブが存在する場合（Ｓ７２１：Ｙｅｓ）、バッファリング装置にてＮｏｐをアクセス要求ジョブと置き換えて受け付けられる（Ｓ７２２）。或いは置き換えられるＮｏｐのジョブが存在しない場合（Ｓ７２１：Ｎｏ）、置き換えられずにバッファリング装置に受け付けられる（Ｓ７１３）。
【００５２】
一方、バースト長が１つのバッファリング装置にて受付できなかった場合（Ｓ７０２：Ｎｏ）、アドレスを参照し、バッファリング装置にて受付可能なバースト長の要求に再編成する（Ｓ７０３）。その後、アクセス要求ジョブをエントリするバッファリング装置が最大アクセス要求ジョブ数を満たしている時（Ｓ７０４：Ｙｅｓ）、アクセス要求ジョブのエントリができるのを待つ（Ｓ７１４）。
【００５３】
アクセス要求ジョブをエントリするバッファリング装置が最大アクセス要求ジョブ数を満たしていない時で（Ｓ７０４：Ｎｏ）、再編成したアクセス要求ジョブを直列に処理する場合（Ｓ７０５：Ｎｏ）、分割したアクセス要求ジョブ単位でバッファリング装置に受け付けられるのを待つ（Ｓ７１５）。
【００５４】
再編成したアクセス要求ジョブを並列に処理する場合（Ｓ７０５：Ｙｅｓ）、リードとライトで動作が異なり、ライトジョブの場合（Ｓ７０６：Ｎｏ）、バッファリング装置にてライトジョブエントリ許可を待ち（Ｓ７１６）、その際、バッファリング装置にてＮｏｐ入れ替え無しの場合は（Ｓ７２３：Ｎｏ）、ライトアクセス要求ジョブが全て受け付けられるのを待つ（Ｓ７１７）。
【００５５】
また、優先順位が高くＮｏｐと置き換え可能であり（Ｓ７２３：Ｙｅｓ）、且つ置き換え可能なＮｏｐのアクセス要求ジョブがある場合（Ｓ７２４：Ｙｅｓ）、バッファリング装置にてＮｏｐをライトジョブと置き換える（Ｓ７２５）。
【００５６】
一方、再編成したアクセス要求ジョブを並列に処理する場合で（Ｓ７０５：Ｙｅｓ）、リードジョブの場合（Ｓ７０６：Ｙｅｓ）、且つバッファリング装置内のライトアクセス要求ジョブがリードジョブと同アドレスであった場合（Ｓ７０７：Ｙｅｓ）、バッファリング装置はこのジョブ部を受け付けずに処理を終了する（Ｓ７２８）。これはリードアクセス要求ジョブに相当するライトデータが既にバッファリング装置に受け付けられているので、そのライトデータをバスマスタにリードデータとして転送すれば良いためである。
【００５７】
バッファリング装置内のライトアクセス要求ジョブがマスタのリードアクセス要求ジョブと同アドレスでない場合（Ｓ７０７：Ｎｏ）、即ち、リードアクセス要求ジョブに相当するライトデータがバッファリング装置に受け付けられていない場合、バッファリング装置にてＮｏｐ属性のアクセス要求ジョブが入れ替え可能で（Ｓ７０８：Ｙｅｓ）、且つ置き換えられるＮｏｐのジョブが存在する場合は（Ｓ７２６：Ｙｅｓ）、バッファリング装置にてＮｏｐジョブとの置き換えが行われる（Ｓ７２７）。
【００５８】
ここで、Ｎｏｐのジョブが存在しない場合（Ｓ７２６：Ｎｏ）、或いはバッファリング装置にてＮｏｐ属性のアクセス要求ジョブが入れ替えできない場合で（Ｓ７０８：Ｎｏ）、アクセス要求ジョブを受け付けるバッファリング装置内のアクセス要求ジョブが同数であれば（Ｓ７０９：Ｙｅｓ）、各バッファリング装置にてリードアクセス要求ジョブを受け付ける（Ｓ７１８）。
【００５９】
また、各バッファリング装置内のアクセス要求ジョブ数が同数でない場合に  （Ｓ７０９：Ｎｏ）、Ｎｏｐを挿入可能であれば（Ｓ７１０：Ｙｅｓ）、Ｎｏｐのアクセス要求ジョブにて全バッファリング装置にて受け付けられたアクセス要求ジョブの順序を同じにして、各バッファリング装置にてリード要求を受け付ける（Ｓ７１９）。もし、Ｎｏｐを挿入できなければ（Ｓ７１０：Ｎｏ）、他バスマスタのアクセスを許可しながらＮｏｐが挿入できるまで待ち（Ｓ７１１）、Ｓ７０９に戻る。
【００６０】
次に図９に示すバッファリング装置内のアクセス要求ジョブを処理するスケジューリング装置について説明する。また、図１０にスケジューリング装置の構成を示す。
【００６１】
バッファリング装置９０１〜９０４からのアクセス要求は、ラウンドロビンの順序にてバッファリング装置選択部１０１１とジョブセレクタ１０１２にて選択される。この際、選択されたアクセス要求ジョブがＮｏｐであった場合は、バッファリング選択部１０１１は次のバッファリング装置を選択し、ＮｏｐコマンドがＳＤＲＡＭコマンド発生部１０１３へ伝達しないようにする。
【００６２】
ジョブセレクタ１０１２の出力は一且カレントアクセスレジスタ１０１３ａにストアされ、ＳＤＲＡＭコマンド発生部１０１３のコマンド発生に用いられる。カレントアクセスレジスタ１０１３ａを用いたアクセス中にジョブセレクタ要求の出力を用いて次のＳＤＲＡＭアクセスのためのコマンド発生を行う。また、図９においてバッファリング装置１００１〜１００４からのアクセス要求はリード属性を持つ先頭アクセス要求ジョブを連続してバッファリング装置選択部１０１１とジョブセレクタ１０１２にて選択する事も可能である。
【００６３】
この様子を図１１（Ａ）、（Ｂ）、（Ｃ）にて説明する。図１１（Ａ）に示すように、バッファリング装置１１０１〜１１０４に対し、その先頭アクセス要求ジョブがリードジョブ１１１１、ライトジョブ１１１２、リードジョブ１１１３、ライトジョブ１１１４となっているものとする。また、図１１（Ｂ）、（Ｃ）におけるデータ１１２１〜１１２２はジョブ１１１１〜１１１４に対するＳＤＲＡＭ転送データを示している。
【００６４】
これらジョブ１１１１〜１１１４のアクセス要求ジョブをラウンドロビンにて実行した例を図１１（Ｂ）に示し、リードジョブ優先で実行した例を図１１（Ｃ）にて示す。図１１（Ｂ）、（Ｃ）の例から分かるように、リードアクセスジョブとライトアクセスジョブを図１１（Ｃ）のようにリードジョブ優先でそれぞれ連続発行するとＨｉ−Ｚが少なくなり、ＳＤＲＡＭ転送効率は良くなることが分かる。
【００６５】
図１２ではバッファリング装置１０７〜１１０内のＦＩＦＯで管理されるアクセス要求ジョブの属性について説明する。アクセス要求ジョブでは一つのアクセス要求ジョブにつき、リード・ライトを示すタグ１２０１、バース卜開始のアドレスを示すアドレスタグ１２０２、バースト長とインクリメントバーストかラップバーストかを示すバーストフラグ１２０３、アクセス要求ジョブを発生させたバスマスタのＩＤを示すタグ１２０４、ライト時のデータ１２０５の属性をもっている。
【００６６】
最近アクセスをしたアクセス要求ジョブ１２０６がリードであった場合で、バッファリング装置内のライトアクセス中に１２０６と同じアドレスのライトが存在し、１２０６のリード要求に対し、該当するライトデータを返す事で応答が完了する。
【００６７】
本実施の形態によれば、バスマスタ１０１〜１０４から発行される外部メモリ装置５に対するアクセス要求ジョブは、アクセス分配装置１０６にて調停されてバッファリング装置１０７〜１１０に一旦保持された後、スケジューリング装置１１１にて保持されたアクセス要求ジョブが処理されるため、バスマスタ１０１〜１０４は遅滞なくアクセス要求ジョブを発行することができるため、プロセッサやＤＭＡコントローラの性能を損なわずに、メモリのバスバンド幅を向上させて、効率的なメモリアクセスを簡単な制御で行うことができる。
【００６８】
尚、本発明は上記実施の形態に限定されることなく、その要旨を逸脱しない範囲において、具体的な構成、機能、作用、効果において、他の種々の形態によっても実施することができる。例えば上記実施の形態では、バッファリング装置の構成、バッファリング装置にて受け付けられるアクセス要求ジョブ数、アクセス要求ジョブのワード数、ＳＤＲＡＭ転送への各種パラメータ等は仮定したが、これらの数値に限るものではなく、構成可能な全ての組合せに本発明は適用される。また、ＳＤＲＡＭを用いた例を示したが、バーストアクセス可能な同期型メモリ装置のアクセス制御装置全てに対して本発明を適用して同様の効果を得ることができる。
【００６９】
【発明の効果】
以上詳細に説明したように、バースト長とアドレスを指定することによりバーストアクセス可能なｋ個のバスマスタが、ｍ個のバッファリング装置を介してｎ個のバンク構成を持つバーストアクセス可能な同期型メモリ装置ヘアクセスできるようにするメモリアクセス制御装置を備えることにより、バンクを交互にアクセスするマルチバンクオペレーションを簡単な制御で実現して前記同期型メモリ装置に対するリードとライト処理を交互に行うことを減らすことができるため、プロセッサやＤＭＡコントローラの性能を損なわずに、メモリのバスバンド幅を向上させて、効率的なメモリアクセスを簡単な制御で行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態に係るメモリアクセス制御装置の構成を示す図。
【図２】本実施の形態のバッファリング装置を跨がるアクセス要求があった際の分割を示す図。
【図３】本実施の形態のバッファリング装置を跨がるリードアクセス要求があった際、ＮｏｎＯｐｅｒａｔｉｏｎ属性を持ったアクセス要求ジョブの発生を示す図。
【図４】本実施の形態のバッファリング装置を跨がるアクセス要求があった際のアクセス競合を示す図。
【図５】本実施の形態のバッファリング装置内のＮｏｎＯｐｅｒａｔｉｏｎのアクセス要求ジョブが優先度の高いアクセス要求ジョブに入れ替えられる様子を示す図。
【図６】本実施の形態のバッファリング装置を跨がるリードアクセス要求があった際のバッファリング装置へのアクセス要求ジョブ発生タイミングを示す図。
【図７】本実施の形態のバッファリング装置内のアクセス要求ジョブ受け付けを示すフローチャート。
【図８】本実施の形態のバッファリング装置内のアクセス要求ジョブ受け付けを示すフローチャート。
【図９】本実施の形態のスケジューリング装置の動作を示す図。
【図１０】本実施の形態のスケジューリング装置の構成を示す図。
【図１１】本実施の形態のスケジューリング装置の別の動作を示す図。
【図１２】本実施の形態のバッファリング装置内のライトデータをリードデータとしてバスマスタヘ返す動作を示す図。
【図１３】従来のメモリアクセス制御装置の構成を示す図。
【符号の説明】
１０１〜１０４  バスマスタ
１０５  外部メモリ装置
１０５ａ〜１０５ｄ  バンク
１０６  アクセス分配装置
１０７〜１１０、２０１〜２０４、３０１〜３０４、４０１〜４０４、５０１〜５０４、６０１〜６０４、９０１〜９０４、１００１〜１００４、１１０１〜１１０４  バッファリング装置
１１１  スケジューリング装置
９１１〜９１８、１１１１〜１１１４  アクセス要求ジョブ
１０１１  バッファリング装置選択部
１０１２  ジョブセレクタ
１０１３  ＳＤＲＡＭコマンド発生部
１０１３ａ  カレントアクセスレジスタ
１２０１  ｒ／ｗタグ
１２０２  アドレスタグ
１２０３  バーストタグ
１２０４  マスタＩＤ
１２０６  アクセス要求ジョブ
【図１】
2004288021.tif 000003
【図２】
2004288021.tif 000004
【図３】
2004288021.tif 000005
【図４】
2004288021.tif 000006
【図５】
2004288021.tif 000007
【図６】
2004288021.tif 000008
【図７】
2004288021.tif 000009
【図８】
2004288021.tif 000010
【図９】
2004288021.tif 000011
【図１０】
2004288021.tif 000012
【図１１】
2004288021.tif 000013
【図１２】
2004288021.tif 000014
【図１３】
2004288021.tif 000015