(57)【要約】  複数のダイレクトメモリアクセス（ＤＭＡ）タスク要求のアービトレーションを行うための方法を（５００）であって、この方法（５００）は、複数のＤＭＡタスク要求を受け取るステップ（５１０）を含み、この方法は、ＤＭＡタスクに関連付けられた期限に応じて複数のＤＭＡタスク要求のうちから１つのＤＭＡタスク要求を選択すること（５２０）を特徴とする。ＤＭＡタスク要求を受け取るように適合された、インターフェイス（４２０）を備えるデバイス（９０）であって、このデバイス（４００）は、ＤＭＡタスクに関連付けられた期限に応じて複数のＤＭＡタスク要求のうちから１つのＤＭＡタスク要求を選択するように適合されたアービタ（４１０）を備えることを特徴とする。【選択図】図９
2009505169.tif 000002
【特許請求の範囲】
【請求項１】
複数のダイレクトメモリアクセス（ＤＭＡ）タスク要求のアービトレーションを行うための方法を（５００）であって、前記方法（５００）は、複数のＤＭＡタスク要求を受け取るステップ（５１０）を含み、前記方法は、前記ＤＭＡタスクに関連付けられた期限に応じて前記複数のＤＭＡタスク要求のうちから１つのＤＭＡタスク要求を選択するステップ（５２０）を特徴とし、少なくとも１つのＤＭＡタスクは、繰り返しタスクである方法。
【請求項２】
前記選択するステップ（５２０）は、さらに、定義済み優先度に応じて実質的に同じ期限に関連付けられているＤＭＡタスク要求のうちから要求を選択するステップを含む請求項１に記載の方法（５００）。
【請求項３】
前記選択するステップ（５２０）は、さらに、期限に無関係のアービトレーションスキームを適用することにより実質的に同じ期限に関連付けられているＤＭＡタスク要求のうちから要求を選択するステップを含む請求項１に記載の方法（５００）。
【請求項４】
前記選択するステップは、さらに、少なくとも１つの利用可能帯域幅パラメータに応じて実行される請求項１から３のいずれか一項に記載の方法（５００）。
【請求項５】
前記選択するステップは、さらに、少なくとも１つの要求帯域幅パラメータに応じて実行される請求項１から４のいずれか一項に記載の方法（５００）。
【請求項６】
少なくとも１つのＤＭＡタスクは、循環時間ベースＤＭＡタスクである請求項１から５のいずれか一項に記載の方法（５００）。
【請求項７】
さらに、期限範囲を定義するステップ（５０５）を含み、前記選択するステップ（５２０）は、１つの期限範囲に属す期限に関連付けられている複数のＤＭＡタスク要求のうちから要求を選択するステップを含む請求項１から６のいずれか一項に記載の方法（５００）。
【請求項８】
それぞれのＤＭＡタスクは、Ｉ／Ｏポートに関連付けられ、前記選択するステップ（５２０）は、同じＩ／Ｏポートに関連付けられている複数のＤＭＡタスク要求のアービトレーションを行うステップを含む請求項１から７のいずれか一項に記載の方法（５００）。
【請求項９】
少なくとも１つのＤＭＡタスクは、多次元バッファから情報を取り出すステップを伴う請求項１から８のいずれか一項に記載の方法（５００）。
【請求項１０】
さらに、可能な期限違反に応じて割り込みを発生するステップ（５３０）を含む請求項１から９のいずれか一項に記載の方法（５００）。
【請求項１１】
ＤＭＡタスク要求を受け取るように適合された、インターフェイス（４２０）を備えるデバイス（９０）であって、前記デバイス（９０）は、前記ＤＭＡタスクに関連付けられた期限に応じて前記複数のＤＭＡタスク要求のうちから１つのＤＭＡタスク要求を選択するように適合されたアービタ（４１０）を備えることを特徴とし、少なくとも１つのＤＭＡタスクは、繰り返しタスクである、デバイス（９０）。
【請求項１２】
前記アービタ（４１０）は、定義済み優先度に応じて実質的に同じ期限に関連付けられているＤＭＡタスク要求のうちから要求を選択するように適合されている請求項１１に記載のデバイス（９０）。
【請求項１３】
前記アービタ（４１０）は、タイミングに無関係のアービトレーションスキームを適用することにより実質的に同じ期限に関連付けられているＤＭＡタスク要求のうちから要求を選択するように適合されている請求項１１に記載のデバイス（９０）。
【請求項１４】
前記アービタは、少なくとも１つの利用可能帯域幅パラメータに応じて選択するように適合された請求項１１から１３のいずれか一項に記載のデバイス（９０）。
【請求項１５】
前記アービタは、少なくとも１つの要求帯域幅パラメータに応じて選択するように適合された請求項１１から１４のいずれか一項に記載のデバイス（９０）。
【請求項１６】
少なくとも１つのＤＭＡタスクは、循環時間ベースＤＭＡタスクである請求項１１から１５のいずれか一項に記載のデバイス（９０）。
【請求項１７】
少なくとも１つのＤＭＡタスクは、多次元バッファから情報を取り出すステップを伴う請求項１１から１６のいずれか一項に記載のデバイス（９０）。
【請求項１８】
さらに、可能な期限違反に応じて割り込みを発生するように適合された請求項１１から１７のいずれか一項に記載のデバイス（９０）。
【請求項１９】
複数のポートを備え、前記アービタ（４１０）は、単一ポートに関連付けられている複数のＤＭＡタスクのアービトレーションを行うように適合された請求項１１から１８のいずれか一項に記載のデバイス（９０）。
【請求項２０】
さらに、期限範囲を定義するように適合され、前記アービタ（４１０）は、１つの期限範囲に属す期限に関連付けられている複数のＤＭＡタスク要求のうちから要求を選択するように適合された請求項１１から１９のいずれか一項に記載のデバイス（９０）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のＤＭＡタスク要求のアービトレーションを行うためのデバイスおよび方法に関する。
【背景技術】
【０００２】
集積回路の複雑さは、最近１０年間に劇的に増大した。システムオンチップおよび他の複数コア集積回路が、限定はしないが、マルチメディアアプリケーション、リアルタイムアプリケーションなどのさまざまなアプリケーションをサポートすることを目的として開発中である。
【０００３】
最新の集積回路は、多数のタスクを実質的に並列に実行する能力を持つ。これらのタスクのうちいくつかは、メモリマップトデバイス間で比較的大量のデータを転送する必要がある。複数チャネルを有するダイレクトメモリアクセス（ＤＭＡ）コントローラは、集積回路コア（プロセッサ）からの負荷を低減しながら複数のデータ転送を管理することができる。しかしながら、ＤＭＡコントローラは、それでも、いくつかのＤＭＡタスクが完了すると必ず、割り込みを発行するので、これらのコアに負荷をかける可能性ある。
【０００４】
さまざまなＤＭＡコントローラに関する説明は、すべて参照により本明細書に組み込まれている、特許および特許出願、Ｏｌｉｖｉｅｒらの米国特許第６７３８８８１号、Ｗｕｎｄｅｒｌｉｃｈの米国特許第６１２２６７９号、Ａｍｉｎｉらの米国特許第５４５０５５１号、Ｆａｒａｚｍａｎｄｎｉａらの米国特許第６７２８７９５号、Ｋｉｈａｒａの米国特許第４５０２１１７号、Ｂｒｅｗｅｒらの米国特許第４５５６９５２号、Ｒｉｌｅｙらの米国特許第５８３８９９３号、Ｗｏｌｆｏｒｄらの米国特許第５６９２２１６号、米国特許第５６０３０５０号、米国特許第５８８４０９５号、Ｌｏｙｅｒらの米国特許第６２９８３９６号、Ｍｏｒｒｉｓｏｎらの米国特許第６５４２９４０号、Ｌｅｉｃｈｔｙらの米国特許第６０４１０６０号、Ｇｏｆｆらの米国特許出願第２００４／００７３７２１Ａ１号、Ｔａｋａｓｈｉらの米国特許出願第２００４００３７１５６Ａ１号、Ｃｈｅｕｎｇの米国特許出願公開第２００４０２１６１８Ａ１号、Ｈｅｄｅｋｉらの日本特許公開第ＪＰ０７１６８７４１Ａ２号、Ｍａｓａｈｉｋｏの日本特許公開第ＪＰ０６１８７２８４Ａ２号、Ｙｏｓｈｉｈｉｒｏの日本特許出願公開第ＪＰ２００４２５２５３３Ａ２号、Ｔａｄａｙｏｓｈｉらの日本特許公開第ＪＰ０４３２４７５５Ａ２号、Ｈｉｒｏｙｕｋｉの日本特許出願公開第ＪＰ２００４０１３３９５Ａ２号、Ｔｅｔｓｕｙａの日本特許出願公開第ＪＰ０８２４９２６７Ａ２号、Ｋａｔｓｕｙｕｋｉらの日本特許公開第ＪＰ０２０４８７５７Ａ２号、およびＳｉｍｏｎらのＰＣＴ特許出願公開第Ｗ０２００５／０１３０８４号にある。
【０００５】
ＤＭＡタスクは複雑であるため、またＤＭＡタスクは大量であることから、開発者は、それぞれのＤＭＡタスクの優先度を定義する際に多くのリソースを消費した。これらの優先度は、特定のプログラムに合わせて手直しすることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＤＭＡタスク要求のアービトレーションを行うための効率のよいデバイスおよび方法を実現する必要がある。
【課題を解決するための手段】
【０００７】
付属の請求項で説明されているような、ＤＭＡタスク要求のアービトレーションを行うためのデバイスおよび方法。
【０００８】
本発明は、図面とともに以下の詳細な説明からさらによく理解され、わかるであろう。
【発明を実施するための最良の形態】
【０００９】
図は、本発明の例示的ないくつかの実施形態を例示している。これの図は、発明の範囲を制限することを意図しておらず、むしろ、本発明の実施形態のいくつかを理解するのを助けることを意図している。さらに、すべての図は、縮尺通りではないことに留意されたい。
【００１０】
ＤＭＡタスクは、一方の記憶場所から他方の記憶場所へ情報を転送することを含む。ＤＭＡタスクは、多数のＤＭＡトランザクションを必要とする場合がある。ＤＭＡタスク１つ当たりのＤＭＡトランザクションの数は、ＤＭＡタスク実行時に転送されなければならないデータの全サイズと単一のＤＭＡトランザクションにおいて転送できるデータのサイズとの関係に応じて変わる。さらに、ＤＭＡトランザクションの数は、ＤＭＡトランザクションの成功に応じたものとすることができ、失敗したＤＭＡトランザクションの後に、失敗したＤＭＡトランザクションにおいて転送されるはずであったデータの再送を続けることができることに留意されたい。
【００１１】
単一のＤＭＡタスクは、複数のＤＭＡサブタスクを含むことができる。単一のＤＭＡサブタスクは、必要な複数のＤＭＡトランザクションを含むことができる。ＤＭＡサブタスクは、多次元バッファの単一次元に書き込む（または読み出す）ことに関連付けられる。
【００１２】
循環ＤＭＡタスクは、複数のＤＭＡタスクの繰り返しを含むことができる。それぞれの循環ＤＭＡタスクオペレーションは、複数のＤＭＡトランザクションを含むことができ、また複数のＤＭＡサブタスクを含むことができる。ＤＭＡ繰り返しは、マスクされるか、フリーズされるか、ディセーブルされるか、または他の何らかの方法により停止されない限り繰り返されるＤＭＡタスクとしてみなすことができる。
【００１３】
多次元バッファは、互いにリンクされた複数のバッファセグメントを含む。これらのセグメントは、連続アドレス範囲を形成しうるが、必ずしもそうするわけではない。
【００１４】
バッファは、通常、レジスタなどの複数のロジックコンポーネントに関連付けられる。多次元バッファが必要とするロジックは、一組の独立バッファよりも少ない（これらのバッファはそれぞれ、多次元バッファの単一次元に対応する）。都合のよいことに、多次元バッファは、複数のメモリセグメントを含む。メモリセグメントの量は、それぞれの次元のサイズ情報により定められる。特定の次元のサイズ情報は、以前の次元のサイズと現在の次元のサイズとの比を表す。例えば、第１の次元がＺ個の基本メモリセグメントを含み、第２の次元のサイズ情報が、Ｙである場合、デュアル次元バッファは、（Ｚ×Ｙ）個のメモリセグメントを含む。
【００１５】
本発明の一実施形態によれば、複数のＤＭＡタスクは、循環時間ベースＤＭＡタスクとすることができる。循環時間ベースＤＭＡタスクは、繰り返されるＤＭＡタスクであるが、その繰り返し率は、ＤＭＡタスク実行期間により制限される。都合のよいことに、単一のＤＭＡタスク実行期間では、単一の循環時間ベースＤＭＡタスクのみが実行されなければならない。
【００１６】
本発明の一実施形態によれば、大量のＤＭＡタスクを循環時間ベースＤＭＡタスクとして定義することができ、これにより、ＤＭＡコントローラの事前プログラミングの複雑さを小さくすることができる。さらに、循環時間ベースＤＭＡタスクを使用すると、サイクル毎にＤＭＡコントローラをプログラムしなくてすむ。
【００１７】
都合のよいことに、デバイス（図１のデバイス９０など）が備えられる。デバイスは、少なくとも１つのメモリユニットとメモリユニットにアクセスするように適合されたＤＭＡコントローラとを備える。デバイス９０は、少なくとも１つのメモリユニット内に多次元バッファを実装するように適合される。デバイスは、複数のＤＭＡサブタスクを実行するように適合されているＤＭＡコントローラ１００を備え、この実行は、バッファ間ジャンプ点でバッファからバッファへジャンプすることを含み、またバッファ間ジャンプ点は、複数の多次元バッファからそれぞれの多次元バッファの１つまたは複数の次元の実質的に終わりのところに定義される。
【００１８】
都合のよいことに、デバイス（図１のデバイス９０など）が備えられる。デバイス９０は、１つまたは複数のメモリユニット（図１のメモリユニット９３，９４など）を備える。デバイス９０は、さらに、ＤＭＡコントローラ１００も備え、このＤＭＡコントローラ１００は、（ｉ）複数のＤＭＡチャネルのそれぞれについて定義されている複数のバッファディスクリプタのうちから少なくとも１つのバッファディスクリプタにアクセスし、少なくとも２つのバッファディスクリプタが循環時間ベースＤＭＡタスクの実行を制御するタイミング情報を含み、（ｉｉ）複数のＤＭＡタスク要求を受け取り、（ｉｉｉ）複数のＤＭＡタスク要求のうちから１つのＤＭＡタスク要求を選択し、（ｉｖ）１つのＤＭＡタスクまたは１回のＤＭＡタスク繰り返しを実行し、実行を反映させる選択されたＤＭＡタスク要求に関連付けられているバッファディスクリプタを更新するように適合される。
【００１９】
以下で、さまざまなカウンタについて説明する。当業者は、本発明の範囲から逸脱することなくカウントアップとともにカウントダウンカウンタを使用できることを理解するであろう。したがって、カウンタの増分オペレーションは、カウンタ減分オペレーションで置き換えることができる。
【００２０】
わかりやすくするため、図は、当業者が実際のシステムにおいて必要とされると理解するいくつかの詳細事項を取りあげていない。例えば、いくつかの制御経路および電源経路は、図に示されていない。これらは、以下の他の説明から明らかであろう。一般に、システム９０およびＤＭＡコントローラ１００の論理機能をハードウェアで実装する方法は多数考えられ、図は、例示のみを目的とすることが意図されている。当業者は、本明細書の説明に基づくことで、システム９０、特にＤＭＡコントローラ１００を実装する方法を理解するであろう。
【００２１】
図１は、本発明の一実施形態による、システム９０を例示する。システム９０は、ＤＭＡコントローラ１００とともに追加のコンポーネントを含む。
【００２２】
都合のよいことに、デバイス９０は、第１のＤＭＡタスク制御機能を備える。これは、メモリユニットとメモリユニットへのアクセスを伴う第１のＤＭＡタスクの実行を監視し、第１のＤＭＡタスク実行部分時間間隔において完了していなかった場合に第１の可能なタイミング違反応答オペレーションを実行するように適合されたＤＭＡコントローラとを備える。
【００２３】
ＤＭＡコントローラ１００は、複数のメモリマップトコンポーネントに接続され、さまざまなシステムオンチップ・システムの一部とすることができる。発明者は、３２チャネルＤＭＡコントローラ１００を使用したが、ＤＭＡチャネルの数は、変えられる。複数のレジスタおよびロジックは、それぞれのＤＭＡチャネルに関連付けられている。都合のよいことに、限定はしないが周辺装置、コア、およびメモリユニットなどの複数のコンポーネントをＤＭＡコントローラ１００に接続することができる。都合のよいことに、ＤＭＡコントローラは、処理対象となるコンポーネントを動的に選択することができる。したがって、ＤＭＡコントローラとコンポーネントとの間の単なる接続は、必ずしも、ＤＭＡチャネルがそのコンポーネントに割り当てられることを意味しない。
【００２４】
バス９１は、ＤＭＡコントローラ１００、バスメディアアクセスコントローラ（ＭＡＣと表される）９８、複数のコア９２、複数のメモリユニット９４、外部高水準メモリインターフェイス９５、およびＥｔｈｅｒｎｅｔポート９７およびＰＣＩ  ９９などの通信ポートに接続される。それに加えて、複数の（Ｍ個の）周辺装置９６が、ＤＭＡコントローラ１００に接続される。
【００２５】
ＤＭＡコントローラ１００の異なるポートを異なるバスに接続できること、バス９１を、それぞれが専用のＭＡＣを都合よく備える複数のバスで置き換えることができることに留意されたい。
【００２６】
システム９０は、ＤＭＡコントローラ１００内の内部メモリユニット（図に示されていない）を含む、複数のメモリユニットを備える。さまざまな情報をさまざまなメモリユニットに格納することができる。都合のよいことに、バッファディスクリプタは、メモリユニット９４に格納される。ＤＭＡコントローラ１００自体の中に少なくとも１つのバッファディスクリプタを格納することができるが、これは必ずしもそうでないことに留意されたい。バッファディスクリプタにより指し示されているバッファは、メモリユニット９４または外部高水準メモリユニット９３内に実装することができる。
【００２７】
バッファディスクリプタは、予めプログラムされ、ＤＭＡタスクを制御する情報を含む。
【００２８】
図２は、本発明の一実施形態による、ＤＭＡコントローラ１００を例示する。
【００２９】
ＤＭＡコントローラ１００は、２つのＩ／Ｏポート１７２および１７４、Ｉ／Ｏポートインターフェイス１６０、バスインターフェイス１４０、複数のＦＩＦＯ  １５０、ＰＲＡＭ  １３０、ＤＭＡロジック１２０、チャネルロジックおよびアービタ１１０、およびレジスタファイル２００を備える。
【００３０】
ＤＭＡロジック１２０は、バスインターフェイス１４０、チャネルロジックおよびアービタ１１０、レジスタファイル２００、パラメータＲＡＭ（ＰＲＡＭ）１３０、およびＦＩＦＯ  １５０に接続される。ＰＲＡＭ  １３０は、バスインターフェイス１４０ならびにチャネルロジックおよびアービタ１１０に接続される。レジスタファイル２００は、チャネルロジックおよびアービタ１１０に接続される。ＦＩＦＯ  １５０は、バスインターフェイス１４０に接続される。Ｉ／Ｏポートインターフェイス１６０は、Ｉ／Ｏポート１７２および１７４、ならびにバスインターフェイス１４０に接続される。
【００３１】
ＤＭＡコントローラ１００は、バスインターフェイスおよび／またはそれぞれのＩ／Ｏポート用のＩ／Ｏポートインターフェイスを備えるが、説明を簡単にするため、１つのＩ／Ｏポートインターフェイス１６０および単一バスインターフェイス１４０のみが例示されていることに留意されたい。
【００３２】
２つのＩ／Ｏポート１７２および１７４がバス１７６に接続され、次いでバス１７６は、メモリユニット９４などの外部メモリユニットに接続される。デュアルＩ／Ｏポートにより、２つＤＭＡタスクを簡単に並列実行できる。Ｉ／Ｏポートの数は、２でなくてもよいことに留意されたい。
【００３３】
メモリユニット９４は、バッファディスクリプタを格納し、さらに、バッファを実装するためにも使用される。これらのバッファは、単一次元バッファまたは多次元バッファを含むことができる。多次元バッファは、互いにリンクされた複数のアドレス範囲を含む。バッファディスクリプタは１つまたはメモリユニットに格納されることができ、その一方で１つまたは複数の他のメモリユニットがバッファの実装に使用されることに留意されたい。バッファディスクリプタは、バッファのロケーション、ＤＭＡタスクまたはＤＭＡサブタスクを完了するために転送すべき残りのデータ（前記サイズは残留サイズとも呼ばれる）、バッファ次元の数、ＤＭＡタスクのタイミング、ＤＭＡタスクが終了し、および／またはバッファが満杯または空になった後実行すべきオペレーションなどのＤＭＡタスクのさまざまな特性を定義する。
【００３４】
例えば、バッファディスクリプタは、バッファが満杯になった後ＤＭＡコントローラに、（ｉ）ＤＭＡチャネルをシャットダウンするオペレーション（例えば、ＤＭＡチャネルがＤＭＡタスク要求をアービタに送信するのを阻止することにより）、（ｉｉ）再初期化するオペレーション（したがって、循環バッファを実装する）、（ｉｉｉ）特定の書き換え期間が終了した後再初期化するオペレーション（したがって、時間ベースの循環バッファを実装する）、（ｉｖ）バッファサイズを再インストールするオペレーション（したがって、インクリメンタルバッファを実装する）、または（ｖ）他のバッファに切り換えるオペレーション（したがって、連鎖バッファを実装する）などのうちの１つを実行させる命令または制御情報を含むことができる。
【００３５】
都合のよいことに、バッファディスクリプタは、ユーザーまたは他の実体により定義され、１つまたは複数のメモリユニット９４に格納される。それぞれのＤＭＡチャネルは、複数のバッファディスクリプタに関連付けられうる。これらのバッファディスクリプタは、限定はしないが、バッファディスクリプタテーブル（ＢＤＴ）など、さまざまな方法で用意できる。それぞれのＤＭＡチャネルは、一意的なＢＤＴに関連付けられることができる。
【００３６】
さまざまなデータ取り出し方法が、バッファディスクリプタに関して適用されうる。都合のよいことに、初めて特定のＤＭＡタスク要求がアービタにより選択されたときに、関連するバッファディスクリプタが、メモリユニット９４から取り出される。次いで、バッファディスクリプタは、ＰＲＡＭ  １３０内に格納され、ＤＭＡコントローラ１００により更新され、最終的に、メモリユニット９４に書き戻される。前記書き戻しオペレーションは、ＤＭＡタスクが終了すると実行されることができるが、これは、必ずしもそうなるわけではない。
【００３７】
チャネルロジックおよびアービタ１１０は、インターフェイス４２０およびアービタ４１０を備える。これは、限定はしないが周辺装置９６などのさまざまなメモリマップトコンポーネントからＤＭＡタスク要求を受け取り、それらのＤＭＡタスク要求から１つを選択するアービトレーションシーケンスを実行する。
【００３８】
インターフェイス４２０は、ＤＭＡタスク要求をアービタ４１０に送る前にＤＭＡタスクの処理が可能かどうか（関連するＤＭＡタスク要求がアービトレーションセッションを獲得するかどうか）をチェックするように適合されうる。このチェックは、ＤＭＡチャネルがイネーブルされているか、フリーズされていないか、Ｉ／Ｏポートが処理可能かどうか、および／またはＤＭＡタスク要求が一時的にマスクされていないかどうかなどを決定することを伴いうる。
【００３９】
ＤＭＡタスク要求は、例えば、特定のＤＭＡタスクが時間ベースの循環ＤＭＡタスクである場合、また定義済みＤＭＡタスク期間に、前のＤＭＡタスクが実行された場合に、一時的にマスクされうる。
【００４０】
本発明の一実施形態によれば、アービタ４１０は、ＤＭＡタスクに関連付けられている期限に応じて複数のＤＭＡタスク要求のうちから１つのＤＭＡタスク要求を選択するように適合される。都合のよいことに、アービタ４１０は、定義済み優先度に応じて実質的に同じ期限に関連付けられているＤＭＡタスク要求のうちから要求を選択するように適合される。
【００４１】
都合のよいことに、アービタ４１０は、タイミングに無関係なアービトレーションスキームを適用することにより実質的に同じ期限に関連付けられているＤＭＡタスク要求のうちから要求を選択するように適合される。このようなアービトレーションスキームは、期限の影響を受けず、ラウンドロビン、加重ラウンドロビン、固定優先度、動的割り当て優先度、均等化キューイング、低遅延キューイングなどのよく知られている従来技術のアービトレーションスキームのうちのどれかを含みうる。動的割り当て優先度では、１つまたは複数のアービトレーションサイクル毎にＤＭＡ要求の優先度を変えることができる。これらのアービトレーションスキームのうちの少なくともいくつかは、特定のＤＭＡチャネルにより消費される帯域幅の量を制限することができる。
【００４２】
都合のよいことに、アービタ４１０は、少なくとも１つの利用可能帯域幅パラメータ（ＡＢＰ）に応じてＤＭＡタスクを選択するように適合される。利用可能帯域幅パラメータとしては、ＤＭＡコントローラ１００にも接続されるバスに接続されているデバイスの個数、バス帯域幅、そのバスの状態（バスがビジー状態かどうか）などがある。本発明の一実施形態によれば、アービタは、アービトレーションが終了した後は実行できないＤＭＡタスク要求を無視する。例えば、いくつかのＤＭＡタスクは、バスがビジー状態でないこと、またデータ受信側が有効な状態にあることを必要とする。これらの条件が満たされない場合、アービタ４１０は、データをビジー状態のバスで、および／またはビジー状態のデータ受信側に転送することを伴うＤＭＡ要求を無視することができる。
【００４３】
都合のよいことに、アービタ４１０は、少なくとも１つの要求帯域幅パラメータ（ＲＢＰ）に応じてＤＭＡタスクを選択するように適合される。要求帯域幅パラメータは、ＤＭＡタスクを完了するために必要なデータ転送オペレーションの数、それぞれのデータ転送において転送されるデータのサイズなどであってよい。
【００４４】
本発明の一実施形態によれば、アービタ４１０は、１つまたは複数のＲＢＰおよび１つまたは複数のＡＢＰに応じてＤＭＡタスクを選択することができる。
【００４５】
本発明の一実施形態によれば、それぞれのＤＭＡタスクは、Ｉ／Ｏポート１７２および１７４の一方に関連付けられうる。このような場合、アービタ４１０は、２つの独立のアービトレーションセッションを実行することができる。第１のアービトレーションセッションは、Ｉ／Ｏポート１７２に関連付けられているＤＭＡタスクを選択し、他のセッションは、Ｉ／Ｏポート１７４に関連付けられているＤＭＡタスクを選択する。アービトレーションセッションは両方とも、並列実行できる。
【００４６】
本発明の他の実施形態によれば、ＤＭＡタスクは、最初はいくつかのＩ／Ｏポートに関連付けられていない。この場合、アービタ４１０は、２つのＤＭＡタスクを選択でき、次いで、ＤＭＡコントローラ１００は、どのＩ／ＯポートでＤＭＡタスクを処理するかを決定する。
【００４７】
本発明の一実施形態によれば、アービトレーションプロセスは、２つの段階を含む。第１の段階では、アービタ４１０は、定義済み期限範囲に従ってＤＭＡタスクを並べ替える。次いで、最短の期限範囲に関連付けられているＤＭＡタスクのうちからタスクを選択する。発明者は、８ビットの期限値および４つの期限範囲（０と１）、（２から７）、（８から６３）、および（６４から２５５）を使用したが、他の範囲も定義されうる。
【００４８】
ＤＭＡコントローラ１００は、複数のＦＩＦＯ  １５０を備える。都合のよいことに、１つのＦＩＦＯがそれぞれのＤＭＡチャネルに割り当てられる。ＦＩＦＯのステータスは、そのステータスに応じて１つまたは複数のＤＭＡ要求をチャネルロジックおよびアービタ１１０に送ることができるＤＭＡロジック１２０に供給されることができる。例えば、特定のＦＩＦＯが空であれば、ＤＭＡロジック１２０は、そのＦＩＦＯに書き込む決定を下し（書き込みオペレーションを実行することにより）、満杯であれば、空にする決定を下すことができる（読み出しオペレーションを実行することにより）。チャネルロジックおよびアービタ１１０は、ＤＭＡチャネルステータス（フリーズ、ディセーブル、デフロスト、イネーブル）、Ｉ／Ｏポートが利用可能かどうか、ＤＭＡチャネルに関連付けられているコンポーネントがＤＭＡ転送に現在関与できる状態にあるかどうかなどに応じて、複数のＤＭＡタスクのアービトレーションを実行するか、または一時的にＤＭＡタスクを無視するかを決定することができる。
【００４９】
ＤＭＡタスク要求は、ＤＭＡタスク実行時に使用すべきＩ／Ｏポートがビジー状態にある場合にアービトレーションセッションに入らないことはすでに言及されている。ＤＭＡコントローラのさまざまな部分が、このチェックを実行できることに留意されたい。本発明の他の実施形態によれば、Ｉ／Ｏポートのステータスは、チェックされず、そのようなＤＭＡタスク要求がアービトレーションセッションを獲得した場合、そのセッションは、ＤＭＡコントローラ１００の内部キュー内に格納されるか、または無視されるか、または一時的に無視されるようにできる。
【００５０】
図３は、本発明の一実施形態による、バスインターフェイス１４０を例示する。バスインターフェイス１４０は、ＤＭＡタスク要求サンプルユニット（ＲＳＵ）１４２、書き込みＦＩＦＯ  １４４、読み出しＦＩＦＯ  １４６、およびタスクマネージャ１４８を備える。ＲＳＵ  １４２は、ＤＭＡロジック１２０により与えられたＤＭＡタスク要求をサンプリングし、それらの要求をＩ／Ｏポートインターフェイス１６０に送る。
【００５１】
ＲＳＵ  １４２は、ＤＭＡロジックにより送られたＤＭＡタスク要求をサンプリングする。ＤＭＡタスク要求が検出されると、この要求はＩ／Ｏポートインターフェイス１６０に送られる。そのＤＭＡタスク要求に関連付けられているＩ／Ｏポートがビジー状態でない場合、要求は処理される。都合のよいことに、要求は、１クロックサイクル後に処理されるが、これは必ずしもそうではない。
【００５２】
そのＤＭＡタスク要求に関連付けられているＩ／Ｏポートがビジー状態である場合、ＲＳＵ  １４２は、ＲＳＵ−ｂｕｓｙ信号をＤＭＡロジック１２０に送ることができる。都合のよいことに、ＤＭＡタスク要求は、処理されるまで、タスクマネージャ１４８のキュー内に置かれる。
【００５３】
タスクマネージャ１４８は、いくつか（８個など）のＤＭＡタスク要求を格納することができるキューを備える。タスクマネージャ１４８のキューが満杯になると、ｔａｓｋ−ｍａｎａｇｅｒ−ｂｕｓｙ指示信号をＤＭＡロジックに送り、ＤＭＡロジックから新しい要求が来ないよう一時的にブロックする。キューが、それぞれのＩ／Ｏポートに割り当てられうることに留意されたい。
【００５４】
バスインターフェイス１４０は、内部読み出しＦＩＦＯ  １４６および書き込みＦＩＦＯ  １４８を備える。これらのＦＩＦＯは、タイミング制約条件を緩和し、またＩ／Ｏポートインターフェイス１６０およびＩ／Ｏポート１７２および１７４を通じて読み出しおよび書き込みオペレーションを行うためのパイプライン化構造を実現する。
【００５５】
図４は、本発明の一実施形態による、ファイルレジスタ２００のさまざまなレジスタを例示する。
【００５６】
本発明の一実施形態によれば、ファイルレジスタ２００は、１つまたは複数のシャドウレジスタを含む。シャドウレジスタは、対応するレジスタに関連付けられ、これを使用することで、レジスタが使用中であってもそのレジスタの内容を更新することができる。
【００５７】
ファイルレジスタ２００は、ＤＭＡバッファディスクリプタベースレジスタ、ＤＭＡチャネルコンフィギュレーションレジスタ、ＤＭＡグローバルコンフィギュレーションレジスタ２２０、ＤＭＡチャネルイネーブルレジスタ２３０、ＤＭＡチャネルディセーブルレジスタ２３２、ＤＭＡチャネルフリーズレジスタ２３４、ＤＭＡチャネルデフロストレジスタ２３６、ＤＭＡ  ＥＤＦレジスタ、ＤＭＡ  ＥＤＦマスクレジスタ２５０、ＤＭＡ  ＥＤＦステータスレジスタ２５４、ＤＭＡエラーレジスタ２６０、さらに各種デバッグレジスタ、プロファイリングレジスタ、追加のステータスレジスタ、およびアップデートレジスタなどの複数のプログラム可能なレジスタを備える。
【００５８】
それぞれのＤＭＡチャネルは、バッファディスクリプタテーブル（ＢＤＴ）に関連付けられる。ＢＤＴは、複数のバッファディスクリプタを含む。それぞれのＤＭＡチャネルは、そのＤＭＡチャネルのバッファディスクリプタテーブルのベースアドレスを格納するレジスタ２０２などの、ＤＭＡバッファディスクリプタベースレジスタを有する。
【００５９】
それぞれのＤＭＡチャネルは、ＤＭＡチャネルコンフィギュレーションレジスタ２１０などの、ＤＭＡチャネルコンフィギュレーションレジスタに関連付けられる。これは、ＤＭＡチャネルアクティブ（ＡＣＴＶ）フィールド２１２、ソースＩ／Ｏポート（ＳＰＲＴ）フィールド２１３、デスティネーションＩ／Ｏポート（ＤＰＲＴ）フィールド２１４、ソース多次元（ＳＭＤＣ）フィールド２１５、デスティネーション多次元（ＤＭＤＣ）フィールド２１６、ソースＢＤＴポインタ２１７、デスティネーションＢＤＴポインタ２１８、ラウンドロビン優先度グループ（ＲＲＰＧ）フィールド２１９を備える。それに加えて、これらのレジスタは、ソース／デスティネーション待ち時間または利用最適化スキームなどのフィールドを備えることができる。
【００６０】
ＡＣＴＶ  ２１２は、ＤＭＡチャネルがアクティブであるかそうでないかを示す。ＳＰＲＴ  ２１３は、ソースＩ／Ｏポートを示し、ＤＰＲＴ  ２１４は、デスティネーションＩ／Ｏポートを示す。ＳＭＤＣ  ２１５は、ソースバッファが多次元バッファであるかどうかを示す。ＤＭＤＣ  ２１６は、デスティネーションバッファが多次元バッファであるかどうかを示す。
【００６１】
ソースＢＤＴポインタ２１７は、ソースバッファディスクリプタまでのＢＤＴ内のオフセットを含む。デスティネーションＢＤＴポインタ２１８は、デスティネーションバッファディスクリプタまでのＢＤＴ内のオフセットを含む。選択されたバッファディスクリプタのアドレスは、バッファディスクリプタベースアドレスとオフセットから計算される。
【００６２】
ＲＲＰＧ  ２１９は、ラウンドロビンアービトレーションスキームにおけるＤＭＡチャネルの優先度を示す。
【００６３】
ＤＭＡグローバルコンフィギュレーションレジスタ２２０は、内部または外部バッファディスクリプタイネーブルフィールド２２２、アービトレーションタイプフィールド２２４などの様々なフィールドを備える。アービトレーションタイプフィールドは、複数の利用可能なアービトレーションスキームのうちから選択するように構成される。これらのアービトレーションスキームは、例えば、期限ベースのアービトレーションスキーム、期限に無関係なアービトレーションスキーム、および／または両方の組合せを含むことができる。
【００６４】
ＤＭＡチャネルイネーブルレジスタ２３０は、複数のビットを含む。それぞれのセットビットは、関連するＤＭＡチャネルがイネーブルされていることを示す。リセットビットは、無視される。ＤＭＡチャネルディセーブルレジスタ２３２は、ＤＭＡチャネル毎に１ビットを含む。そのビットがセットされた場合、ＤＭＡチャネルはディセーブルされる。リセットビットは、無視される。ＤＭＡチャネルフリーズレジスタ２３４は、ＤＭＡチャネル毎に１ビットを含む。そのビットがセットされた場合、ＤＭＡチャネルはフリーズされる。フリーズされたＤＭＡチャネルとディセーブルされたＤＭＡチャネルとの違いは、フリーズされたＤＭＡチャネルの要求は、考慮されるが、処理されず、ディセーブルされたＤＭＡチャネルの要求は、無視されるという点である。フリーズされたＤＭＡチャネルのＤＭＡチャネル設定は、変えられず、有効なままである。ＤＭＡチャネルデフロストレジスタ２３６は、ＤＭＡチャネル毎に１ビットを含む。そのビットがセットされた場合、ＤＭＡチャネルはデフロストされる、つまりフリーズステータスを終了する。
【００６５】
それぞれのＤＭＡチャネルは、ＤＭＡ  ＥＤＦレジスタ２４０などの、ＤＭＡ  ＥＤＦレジスタに関連付けられる。これは、３つのタイミングフィールドを含む。第１のタイミングフィールドは、カレントカウンタフィールド２４２と呼ばれ、ＤＭＡチャネルに関連付けられているタイミングカウンタの現在値（現在時刻）を格納する。第２のタイミングフィールドは、閾値フィールド２４４と呼ばれ、ＤＭＡタスクが実行されるべきときにタイミングカウンタの値を反映する閾値を格納する。第３のタイミングフィールドは、ベースカウンタフィールド２４６と呼ばれ、タイミングカウンタが初期化されるときにカウンタにロードされるベースカウンタ値を格納する。ＤＭＡタスク実行期間は、都合のよいことに、ベースカウンタ値と閾値との差を反映する。期限は、カレントカウンタ値と閾値との差を反映する。
【００６６】
都合のよいことに、ＤＭＡチャネルがディセーブルされると、そのＤＭＡチャネルに関連付けられているタイミングカウンタは、停止する。ＤＭＡチャネルがイネーブルされると、そのチャネルのタイミングカウンタに、ベースカウンタ値が再ロードされる。
【００６７】
ＤＭＡ  ＥＤＦマスクレジスタ２５０は、期限が来たとき、またはまさに期限が来ようとしているときに、割り込み要求の発生をイネーブルするか、またはマスクすることができる複数のビットを含む。本発明の一実施形態によれば、特定のＤＭＡタスクがＤＭＡタスク実行期間の定義済み部分期間内に完了しなかった場合に可能なタイミング違反の発生が示されうる。部分期間は、部分期間閾値により定義できる。この閾値を通ると、ＤＭＡコントローラ１００または他のデバイス（コア９２など）は、（ｉ）ＤＭＡタスクを削除するオペレーション、（ｉｉ）ＤＭＡタスクの優先度を上げるオペレーション、（ｉｉｉ）ＤＭＡタスクを強制的に実行するオペレーション、（ｉｖ）循環時間ベースのＤＭＡタスクの場合に、次のＤＭＡタスク実行期間に複数のＤＭＡタスクを実行することを許可するオペレーション、（ｖ）１つまたは複数のＤＭＡトランザクションを強制的に実行するオペレーション、（ｖｉ）１つまたは複数のＤＭＡサブタスクを強制的に実行するオペレーションなどのうちの少なくとも１つを実行することができる。
【００６８】
ＤＭＡ  ＥＤＦステータスレジスタ２５４は、１つまたは複数のタイミング違反が発生したかどうかを示す。ＤＭＡエラーレジスタ２６０は、さまざまなエラーの発生を示す複数のフィールドを備える。これらのエラーとしては、さまざまなＩ／Ｏポートエラー、アドレスエラー、ＰＲＡＭパリティチェック失敗、ＦＩＦＯエラー、タイミング違反エラーなどを含み得る。
【００６９】
図５は、本発明の一実施形態によるバッファディスクリプタテーブル３００を例示する。
【００７０】
それぞれのＤＭＡチャネルは、バッファディスクリプタテーブル（ＢＤＴ）に関連付けられる。ＢＤＴ  ３００は、１つまたは複数のメモリユニット９４内に都合よく格納され、ＢＴＤベースアドレスを開始位置とする。ＢＤＴ  ３００は、ＤＭＡチャネルのさまざまなＤＭＡタスクに関連付けることができるバッファディスクリプタのリストを含む。ＢＤＴ  ３００は、予めプログラムされるが、さまざまな方法で更新できる。
【００７１】
都合のよいことに、読み出しバッファディスクリプタおよび書き込みバッファディスクリプタがある。これらのバッファディスクリプタはそれぞれ、単一の次元バッファディスクリプタまたは多次元バッファディスクリプタとすることができる。
【００７２】
ＢＤＴ  ３００は、３０２と総称される多次元読み出しバッファディスクリプタおよび３０４と総称される複数の単一次元書き込みバッファディスクリプタを含む。読み出しバッファディスクリプタは、１つまたは複数の単一次元バッファディスクリプタおよび／または１つまたは複数の多次元バッファディスクリプタを含むことができることに留意されたい。書き込みバッファディスクリプタは、１つまたは複数の単一次元バッファディスクリプタおよび／または１つまたは複数の多次元バッファディスクリプタを含むことができる。
【００７３】
それぞれのＢＤＴは、多数のバッファディスクリプタを含むことができることに留意されたい。発明者は、最大１０２４個までの単一次元書き込みバッファディスクリプタを持つＤＭＡコントローラを使用したが、異なる数およびタイプのバッファディスクリプタを使用することもできる。都合のよいことに、ごくわずかなバッファディスクリプタが使用される場合、それらのバッファディスクリプタは、ＤＭＡコントローラ１００内に格納されるようにできる。
【００７４】
ＢＤ  ３１０などの単一次元バッファディスクリプタは、４つのフィールドＢＤ＿ＡＤＤＲ  ３１２、ＢＤ＿ＳＩＺＥ  ３１４、ＢＤ＿ＢＳＩＺＥ  ３１６、およびＢＤ＿ＡＴＴＲ  ３２０を含む。それぞれのフィールドは、３２ビット長である。ＢＤ＿ＡＤＤＲ  ３１２は、現在のバッファエントリを指すポインタを含む。このポインタは、バッファをスキャンし、ＤＭＡトランザクション毎にインクリメントされる。ＢＤ＿ＳＩＺＥ  ３１４は、ＤＭＡタスクまたはＤＭＡサブタスクを完了するために転送されるべき残りのデータのサイズを示す。この値は、ＤＭＡトランザクションが完了する毎に、ＤＭＡトランザクションサイズの分だけデクリメントされる。都合のよいことに、ＤＭＡタスクは、このフィールドはゼロになると完了する。ＢＤ＿ＢＳＩＺＥ  ３０８には、バッファのベースサイズ（ＤＭＡタスク全体で転送されるべきデータの合計サイズ）を格納する。
【００７５】
ＢＤ＿ＡＴＴＲ  ３２０は、（ｉ）ＤＭＡタスクが終了したときにマスクされた割り込み要求を発生するかどうかを示すＳＳＴ  ３２１、（ｉｉ）バッファが循環かインクリメンタルかを示すＣＹＣ  ３２２、（ｉｉｉ）ＢＤ＿ＳＩＺＥが０になったときに、バッファを閉じるかどうかを示すＣＯＮＴ  ３２３、（ｉｖ）次のＤＭＡタスクでどのＩ／Ｏポートを使用するかを示すＮＰＲＴ  ３２４、（ｖ）ＤＭＡタスクが完了した後、バッファアドレスをインクリメントするかどうかを（通常は、バッファオフセットを変更することにより）示すＮＯ＿ＩＮＣ  ３２５、（ｖｉ）次のＤＭＡタスクに使用されるバッファを選択するＮＢＤ  ３２６、（ｖｉｉ）ＭＡＣ  ９８により考慮できるバッファ優先度を設定するＰＰ  ３２８、（ｖｉｉｉ）単一のＤＭＡタスクにおいて転送できるデータの最大量を示すＴＳＺ  ３３０、（ｉｘ）ＢＤ＿ＳＩＺＥが０になると、バッファをフリーズするかどうかを示すＲＦＺ  ３３１、（ｘ）ＤＭＡコントローラにより送られたデータがその送り先に届くまでＤＭＡチャネルからの要求をマスクするかどうかを示すＭＲ  ３３２、（ｘｉ）ＤＭＡトランザクションサイズを示すＢＴＳＺ  ３３３、および（ｘｉｉ）期限ベースのアービトレーションが選択されている場合に、ＢＤ＿ＳＩＺＥが０になったら、バッファをアクティブにする方法を示すＥＤＦ  ３２７の各種のフィールドを含む。
【００７６】
ＥＤＦ  ３２７は、（ａ）ＤＭＡチャネルおよびアービタが、通常作業を続けられるかどうか（連続的に）、（ｂ）ＥＤＦカウンタに、ベースカウンタ値をロードすべきかどうか、または（ｃ）タスクの開始から定義済み期間が経過するまで（例えば、ＥＤＦカウンタが０になるまで）、そのＤＭＡチャネルのＤＭＡタスク要求をマスクできるかどうかを示すことができる。後者が発生すると、カウンタに、ベースカウンタ値がロードされる。
【００７７】
説明しやすくするため、４次元バッファと４次元バッファディスクリプタ３４０が例示されている。多次元バッファは、２つの次元、３つの次元、または４つよりも多い次元を持つことができることに留意されたい。４次元バッファのＤＭＡタスクは、４つのＤＭＡサブタスクを含む。
【００７８】
多次元バッファディスクリプタ３４０は、単一次元バッファディスクリプタのフィールドとともに追加のフィールドを含む。さらに、単一次元バッファディスクリプタよりも多い属性フィールドも含む。
【００７９】
多次元バッファディスクリプタを使用する場合、それぞれの次元（ＤＭＡサブタスク）について、別々に監視できる。そこで、ＤＭＡタスクにおいて転送されるべきデータの残りサイズを示す単一値（ＢＤ＿ＳＩＺＦ）の代わりに、第２、第３、および第４の次元を完了するなどのために、第１の次元の残りの繰り返し（Ｃ２ＤＩＭ  ３６２）、第２の次元の残りの繰り返し（Ｃ３ＤＩＭ  ３６３）、および第３の次元の残りの繰り返し（Ｃ４ＤＩＭ  ３６４）を数える３つの追加のカウンタがある。それに加えて、それぞれの追加の次元は、それ専用のオフセット（単一次元ＢＤ＿ＡＤＤＲ  ３１２フィールドの代わりに）および第２、第３、および第４の次元のそれぞれの繰り返しの総数を示すその繰り返しベースカウント（ＢＣ２ＤＩＭ  ２７２、ＢＣ３ＤＩＭ  ２７３、およびＢＣ４ＤＩＭ  ２７４）を持つ。
【００８０】
フィールド３２１〜３２７に加えて、追加属性フィールドは、属性フィールド３２０’に属し、ＬＡＳＴ  ３４１、ＢＤ  ３４２、ＳＳＴＤ  ３４３、ＦＲＺＤ  ３４４、ＣＯＮＴＤ  ３４５、およびＭＲＤ  ３４６を含む。
【００８１】
ＬＡＳＴ  ３４１は、バッファが連鎖バッファの連鎖中の最後の１つであるかどうかを示し、そうであれば、ＤＭＡチャネルは、バッファが書き込まれたか（書き込みオペレーション）、または空にされた（読み出しオペレーション）後閉じられる。ＢＤ  ３４２は、バッファの次元の数（４など）を示す。ＳＳＴＤ  ３４３は、第１、第２、第３、または第４のＤＭＡサブタスクの完了で、完了ステータスビットがセットされるかどうかを示す。ＦＲＺＤ  ３４４は、第１、第２、第３、または第４のＤＭＡサブタスクの完了で、ＤＭＡコントローラがＤＭＡチャネルをフリーズするかどうかを示す。ＣＯＮＴＤ  ３４５は、ＤＭＡチャネルが次のバッファディスクリプタに切りかわるとき−第１、第２、第３、または第４のＤＭＡサブタスクの完了した後に−を示すことによりバッファ間ジャンプ点を定義する。ＣＯＮＴＤ  ３４５は、ＤＭタスク全体が完了する前にバッファを切り換えることを容易にする。ＭＲＤ  ３４６は、ＤＭＡチャネル要求がマスクされるときを示す。
【００８２】
図６は、本発明の一実施形態による、４次元バッファ３５０を例示する。
【００８３】
バッファ３５０は、６４バイトの１２８×２５６×１２８のメモリセグメントを備える。第１の次元に属す連続するメモリセグメントの間のオフセットは、４４８バイトである。そこで、ＢＤ＿ＢＳＩＺＥは６４に等しく、ＢＣ２ＤＩＭは、１２８に等しく、ＢＣ３ＤＩＭは、２５６に等しく、ＢＣ４ＤＩＭは、１２８に等しい。
【００８４】
バッファ全体は、さまざまな次元の終点に対応する複数のバッファ間ジャンプ点を含むことができる。例えば、可能なバッファ間ジャンプ点の第１の集まりは、それぞれのメモリセグメントの末尾に配置することができる（第１の次元のサイズに対応する）。可能なバッファ間ジャンプ点の第２の集まりは、それぞれの１２８個のメモリセグメントに配置することができる（第１の次元のサイズに対応する）。可能なバッファ間ジャンプ点の第３の集まりは、それぞれの３２７６８個のメモリセグメントに配置することができる（第３の次元のサイズに対応する）。
【００８５】
バッファ間ジャンプ点は、例えば、これらの可能な終点のいずれか１つにおいて定義されうる。バッファ間ジャンプ点の選択は、ＣＯＮＴＤ  ３４５の値に応じて行われる。例えば、ＣＯＮＤが１に等しい場合、プロセスは、メモリセグメントがアクセスされると必ずジャンプする。そこで、３５０などの複数の多次元バッファがある場合、これらのバッファのそれぞれの第１の次元がアクセスされ、次いで、それらのバッファのそれぞれの第２の次元がアクセスされ、すべての次元がアクセスされるまで続く。例えば、ＣＯＮＤ  ３４５が２に等しい場合、バッファ間ジャンプ点の第２の集まりが選択される。
【００８６】
本発明の一実施形態によれば、このジャンプは、ＤＭＡタスクを続ける決定に応じて行われることに留意されたい。場合によっては、特定のバッファ間点に到達した後、デバイス９０は、受け取った情報の内容、前のＤＭＡサブタスクの成功などの少なくとも１つのパラメータを考慮して進むかどうかを決定する。
【００８７】
４次元バッファ３５０が循環バッファとして定義されている場合、最後のメモリセグメントがアクセスされた後に第１のメモリセグメントがアクセスされる。
【００８８】
図７は、本発明の一実施形態による、ＤＭＡチャネルロジック４４０および選択されたＤＭＡチャネルロジック４６０を例示する。
【００８９】
ＤＭＡコントローラ１００は、複数のＤＭＡチャネルを管理することができる。説明を簡単にするため、図７は、単一のＤＭＡチャネルを管理する、ＤＭＡチャネルロジック４４０および選択されたＤＭＡチャネルロジック４６０を例示する。
【００９０】
ＤＭＡチャネルロジック４４０は、チャンネルロジックおよびアービタ１１０内に配置される。チャネルロジックおよびアービタ１１０は、ＤＭＡチャネル毎にそのようなロジックを備える。
【００９１】
選択されたＤＭＡチャネルロジック４６０は、ＤＭＡロジック１２０内に配置される。ＤＭＡロジック１２０は、選択されたＤＭＡタスク要求を管理する単一のＤＭＡチャネルロジック４６０を含む。例えば、ＤＭＡコントローラ１００が実質的に同時に複数のＤＭＡタスクを管理するように適合されている場合、ロジック４６０などの追加のロジックを備えなければならない。例えば、ＤＭＡコントローラ１００が、Ｉ／Ｏポート（１７２および１７４）毎に１つのＤＭＡタスクを管理するように適合されている場合、２つの選択されたＤＭＡチャネルロジックを備えなければならない。
【００９２】
ＤＭＡチャネルロジック４４０は、タイミングカウンタユニット４４２、および追加のチャネルロジック４４８を備える。
【００９３】
タイミングカウンタユニット４４２は、（ｉ）ＤＭＡタスク、ＤＭＡサブタスク、またはＤＭＡトランザクションの実行の開始、（ｉｉ）ＤＭＡタスク要求の受け取り、（ｉｉｉ）ＤＭＡタスク要求の選択など、さまざまなイベントから経過した時間をカウントするタイミングカウンタ４４４などの少なくとも１つのタイミングカウンタを備える。
【００９４】
タイミングカウンタ４４４は、追加のチャネルロジック４４８によりサンプリングされ、再ロードされることが可能である。それに加えて、追加のチャネルロジック４４４で、ＤＭＡタスク要求をチャネルロジックおよびアービタ１１０に送ることを許可できるのは、それらのＤＭＡタスク要求が有効であり、および／またはＩ／Ｏポートにより処理できる場合のみである。このタスクを実行するために、追加のチャネルロジック４４８は、レジスタファイル２００内のさまざまなフィールドにアクセスし、都合よくバッファディスクリプタにアクセスすることができる。例えば、ＤＭＡチャネルイネーブルレジスタ２３０、ＤＭＡチャネルディセーブルレジスタ２３２、ＤＭＡチャネルフリーズレジスタ２３４などにアクセスする。周辺装置デバイスまたは他のメモリマップトデバイスにより受け取られたＤＭＡタスク要求および／または複数のＦＩＦＯ  １５０のうちの１つのＦＩＦＯにより開始された要求は、追加のチャネルロジック４４８によりマスクされるか、またはアービタ４１０に送られるようにできる。
【００９５】
本発明の一実施形態によれば、追加のチャネルロジック４４８は、ＤＭＡタスク実行部分時間間隔が経過したことを示す定義済み値にカウンタが達する前にＤＭＡタスクが完了したかどうかをチェックすることにより可能なタイミング違反を検出する（そして、可能なタイミング違反信号を送信する）ことができる。ＤＭＡタスク実行部分時間間隔は、バッファファイル２００またはバッファディスクリプタ内に入れることができる。信号は、コア９２を含む、デバイス９０のさまざまなコンポーネントに、またはＤＭＡコントローラ１００の他の部分に送ることができる。
【００９６】
追加のチャネルロジック４４８は、選択されたＤＭＡチャネルロジック４２０から、またはバッファディスクリプタから、ＤＭＡタスクが完了したことを示す指示を受け取ることができる。
【００９７】
選択されたＤＭＡチャネルロジック４６０は、選択されたＤＭＡタスクまたはサブタスクを管理する。これは、選択されたＤＭＡタスクのバッファディスクリプタにアクセスし、アドレス計算、ＤＭＡタスクがいつ終了したかを決定すること、バッファ間ジャンプをいつ実行すべきかを決定することなどのさまざまなオペレーションを実行する。
【００９８】
選択されたＤＭＡチャネルロジック４６０は、少なくとも１つの進行状況カウンタ４６２を備える。進行状況カウンタ４６２は、ＤＭＡタスクが開始した後、ベースアドレスをロードされ、ＤＭＡタスクまたはＤＭＡサブタスクにおいて転送されるべきデータの残りのサイズ、ＤＭＡトランザクションが完了している場合にはそのようなＤＭＡトランザクションサイズの分だけデクリメントされる。ＤＭＡタスクまたはＤＭＡサブタスクが終了すると、更新されたバッファディスクリプタがＰＲＡＭ  １３０およびメモリユニット９４に送り返される。
【００９９】
都合のよいことに、多次元バッファを管理する場合、それぞれの次元の繰り返しを数えるために、複数のカウンタが使用されなければならない。
【０１００】
選択されたＤＭＡチャネルロジック４６０は、さらに、さまざまなアドレスを受け取るアドレス計算ユニット４６４も備え、それらのアドレスを使用してバッファの選択されたエントリ（バッファディスクリプタによって指し示されている）にアクセスする、ジャンプオペレーションを実行するといったことを行う。
【０１０１】
図８は、本発明の一実施形態による、例示的なデータ転送オペレーションに関わるさまざまなバッファ７０、７１、７２、７３、７５、および７５を例示する図である。
【０１０２】
バッファ７１および７２は、ソースイメージを格納し、レジスタ７２および７３は、参照イメージを格納する。ソースイメージが符号化および／または圧縮により処理される場合に、両方のイメージからのデータが必要である。
【０１０３】
バッファ７０および７１は、ソースバッファであり、バッファ７２および７３は、参照バッファであり、バッファ７４および７５は、デスティネーションバッファである。バッファ７１および７２のそれぞれ１つは、３次元バッファである。
【０１０４】
バッファ７１の第１の次元は、Ｓ１で表されるメモリセグメントを含む。バッファ７１の第２の次元は、メモリセグメントＳ１およびＳ２を含む。バッファ７１の第３の次元は、Ｓ１〜Ｓ５０で表される５０個のメモリセグメントを含む。
【０１０５】
バッファ７２の第１の次元は、Ｓ５１で表されるメモリセグメントを含む。バッファ７２の第２の次元は、メモリセグメントＳ５１およびＳ５２を含む。バッファ７２の第３の次元は、Ｓ５１〜Ｓ１００で表される５０個のメモリセグメントを含む。
【０１０６】
バッファ７３の第１の次元は、Ｒ１で表されるメモリセグメントを含む。バッファ７３の第２の次元は、メモリセグメントＲ１およびＲ２を含む。バッファ７３の第３の次元は、Ｒ１〜Ｒ５０で表される５０個のメモリセグメントを含む。
【０１０７】
バッファ７４の第１の次元は、Ｒ５１で表されるメモリセグメントを含む。バッファ７４の第２の次元は、メモリセグメントＲ５１およびＲ５２を含む。バッファ７４の第３の次元は、Ｒ５１〜Ｒ１００で表される５０個のメモリセグメントを含む。
【０１０８】
ＤＭＡコントローラ１００は、それぞれのバッファの第２の次元の読み出しを完了すると必ず、バッファ間ジャンプを実行する。そのため、４８回のジャンプを行った後、バッファ７１および７２の読み出しを完了する。
【０１０９】
バッファ間ジャンプの結果、ビデオフレームの処理が容易になるような形で、バッファに、イメージデータを格納する。したがって、レジスタ７４は、メモリセグメントＳ１、Ｓ２、Ｓ５１、Ｓ５２、Ｓ３、Ｓ４、Ｓ５３、Ｓ５４．．．Ｓ１００を格納し、レジスタ７５は、メモリセグメントＲ１、Ｒ２、Ｒ５１、Ｒ５２、Ｒ３、Ｒ４、Ｒ５３、Ｒ５４．．．Ｒ１００を格納する。
【０１１０】
以下の図は、本発明のさまざまな実施形態によるさまざまな方法の流れ図である。これらの方法は、本発明のシステム９０により都合よく実行される。システム９０および特にＤＭＡコントローラ９０のさまざまなコンポーネントへの参照は、説明をしやすくするためにのみ行われている。当業者であれば、本明細書の説明に基づき、方法を他のシステムにも適用することができる。
【０１１１】
都合のよいことに、さまざまな方法の複数の段階を組み合わせることができ、また他の方法の１つまたは複数の段階を適用することにより特定の方法の一段階を実行することができる。これらの組合せの一部は、以下の説明において特に説明されるが、これは、説明を簡単にすることのみを目的としている。
【０１１２】
図９は、本発明の一実施形態による、複数のＤＭＡタスク要求のアービトレーションを行う方法５００の流れ図である。
【０１１３】
方法５００は、期限範囲を定義する任意選択の段階５０５から始まる。期限範囲は、互いに等しい場合があるが、必ずしもそうではない。発明者は、異なる長さの４つの期限範囲を使用した。
【０１１４】
段階５０５の後に、複数のＤＭＡタスク要求を受け取る段階５１０が続く。都合のよいことに、これらのＤＭＡタスク要求は、イネーブルされたＤＭＡチャネルからチャネルロジックおよびアービタ１１０で受け取られる。これらの要求は、アービトレーションサイクルでサンプリングされることができる。それぞれのＤＭＡタスク要求は、ＤＭＡチャネルＢＤＴ内の定義済みバッファディスクリプタにより記述される。
【０１１５】
段階５１０の後に、ＤＭＡタスクに関連付けられた期限に応じて複数のＤＭＡタスク要求のうちから１つのＤＭＡタスク要求を選択する段階５２０が続く。選択は、アービタ４１０により適用されうる。
【０１１６】
本発明の一実施形態によれば、段階５２０は、定義済み優先度に応じて実質的に同じ期限に関連付けられているＤＭＡタスク要求のうちから要求を選択することを含む。この優先度は、固定されるか、または動的に変化しうる。
【０１１７】
本発明の一実施形態によれば、選択は、期限に無関係なアービトレーションスキームを適用すること含むことができる。
【０１１８】
都合のよいことに、段階５２０は、少なくとも１つの利用可能帯域幅パラメータおよび／または少なくとも１つの要求帯域幅パラメータに応じて実行される。
【０１１９】
都合のよいことに、少なくとも１つのＤＭＡタスクは、繰り返しタスクであり、またさらには循環時間ベースのＤＭＡタスクでさえある。
【０１２０】
本発明の一実施形態によれば、段階５２０は、１つ（または複数の）期限範囲に属す期限に関連付けられている複数のＤＭＡタスク要求のうちから要求を選択することを含む。都合のよいことに、方法５００では、空でない範囲を探索し、最短の期限を含む。この範囲が複数のＤＭＡタスク要求を含む場合、方法５００は、それらのＤＭＡタスク要求のうちの１つを選択する。
【０１２１】
都合のよいことに、それぞれのＤＭＡタスク要求は、特定のＩ／Ｏポートに関連付けられる。そのような場合、この方法は、ポート毎にアービトレーションシーケンスを実行することができる。異なるアービトレーションスキームを並列実行できる。
【０１２２】
都合のよいことに、少なくとも１つのＤＭＡタスクは、多次元バッファから（または多次元バッファに）情報を取り出すことを伴う。
【０１２３】
都合のよいことに、方法５００は、さらに、ＤＭＡタスクの実行を監視することを含む。
【０１２４】
都合のよいことに、方法５００は、可能な期限違反に応じて割り込み要求を発生する段階５３０を含む。方法６００、７００、および／または８００の各種の段階は、そのＤＭＡタスクの実行時に適用されうることに留意されたい。
【０１２５】
方法５００は、期限に無関係のアービトレーション機構などの他のアービトレーションスキームを選択する段階（図に示されていない）を含むことができる。
【０１２６】
図１０は、本発明の一実施形態による、第１のＤＭＡタスクの実行を制御する方法６００の流れ図である。
【０１２７】
本発明の一実施形態によれば、コアの負荷は、ＤＭＡタスクが正常に完了した後に割り込み要求を発生しないことにより低減される。
【０１２８】
方法６００は、第１のＤＭＡタスク実行時間間隔および第１のＤＭＡタスク実行部分時間間隔を定義する段階６１０から始まる。都合のよいことに、これらの定義は、１つまたは複数のバッファディスクリプタ内に格納される。
【０１２９】
段階６１０の後に、選択が第１のＤＭＡ要求の優先度に応じて行われる、複数のＤＭＡタスク要求のうちから第１のＤＭＡタスク要求を選択する段階６２０が続く。選択は、方法５００の１つまたは複数の段階を適用することを伴うことができる。
【０１３０】
段階６２０の後に、第１のＤＭＡタスクの実行を監視する段階６５０が続く。
【０１３１】
段階６５０の後に、第１のＤＭＡタスク実行部分時間間隔において第１のＤＭＡタスクが完了していなかった場合に第１の可能なタイミング違反応答オペレーションを実行する段階６６０が続く。
【０１３２】
本発明のさまざまな実施形態によれば、方法６００は、複数のＤＭＡタスクに適用することができる。例えば、方法６００は、第２のＤＭＡタスク実行時間間隔および第２のＤＭＡタスク実行部分時間間隔を定義すること、第２のＤＭＡタスクの実行を監視すること、および第２のＤＭＡタスク実行部分時間間隔において第２のＤＭＡタスクが完了していなかった場合に第２の可能なタイミング違反応答オペレーションを実行することを含むことができる。
【０１３３】
本発明の一実施形態によれば、第１のＤＭＡタスクは、循環時間ベースＤＭＡタスクである。可能なタイミング違反が検出された後、今後のＤＭＡタスク時間間隔におけるＤＭＡタスクの実行が、変更されうる。
【０１３４】
本発明のさまざまな実施形態によれば、段階６６０は、（ｉ）割り込み要求を発生する段階、（ｉｉ）ＤＭＡタスクを停止する段階、（ｉｉｉ）第１のＤＭＡタスク要求の優先度を変更する段階、（ｉｖ）単一の第１のＤＭＡタスク実行時間間隔内で複数の第１のＤＭＡタスクの実行を許可する段階と、（ｖ）ＤＭＡタスクの完了を強制する段階、（ｖｉ）ＤＭＡサブタスクの完了を強制する段階のうちの１つ、または１つまたは複数の段階の組合せのいずれかを含むことができる。
【０１３５】
前の図に例示されていたＤＭＡコントローラ１００を参照すると、ＤＭＡコントローラ１００は、アービタをバイパスするか、または他の何らかの方法で一時的に他のＤＭＡ要求をフリーズし、ＤＭＡタスク要求をＩ／Ｏポートインターフェイスへ再び送らせることができる。
【０１３６】
本発明の一実施形態によれば、可能なタイミング違反応答オペレーションは、可能なタイミング違反を引き起こしたＤＭＡタスクの進行状況および／またはそのＤＭＡタスクの優先度に応じて行われる。例えば、ＤＭＡタスクがほとんど完了している場合（および／または高優先度を有する場合）、この方法は、ＤＭＡタスクを完了させ、停止させない傾向を持つ。
【０１３７】
図１１は、本発明の一実施形態による、ＤＭＡタスクを実行する方法７００の流れ図である。
【０１３８】
方法７００は、バッファ間ジャンプ点を複数の多次元バッファからそれぞれの多次元バッファの１つまたは複数の次元の実質的に終わりのところで定義する段階７１０から始まる。
【０１３９】
段階７１０の後に、ＤＭＡタスクの実行の要求を受け取る段階７５０が続く。
【０１４０】
段階７５０の後に、実行がバッファ間ジャンプ点でバッファからバッファへジャンプすることを含む、複数のＤＭＡサブタスクを実行する段階７７０が続く。
【０１４１】
都合のよいことに、段階７７０は、少なくとも１つのバッファ間ジャンプ点において、ＤＭＡサブタスクの実行を続けるかどうかを決定することを含む。したがって、方法７００は、この決定に応じて、ＤＭＡタスクの実行を続けるか、またはタスクを中断するか、またはさらには、少なくとも１つのＤＭＡサブタスクを再実行することができる。
【０１４２】
本発明のさまざまな実施形態によれば、決定は、（ｉ）決定の前に実行されたＤＭＡサブタスクの成功に応じて、（ｉｉ）決定の前に実行された少なくとも１つのＤＭＡサブタスクにおいて取り出されたデータの内容に応じてなどの条件に基づいて実行することができる。
【０１４３】
都合のよいことに、方法７００は、決定の際に少なくとも１つのＤＭＡチャネルをフリーズすることを含む。
【０１４４】
都合のよいことに、ＤＭＡタスクは、時間ベース循環ＤＭＡタスクである。
【０１４５】
都合のよいことに、ＤＭＡタスクは、データを多次元バッファから複数の単一次元バッファに書き込むことを含む。
【０１４６】
都合のよいことに、方法７００は、複数の多次元バッファのそれぞれの特定の１つの次元に関連付けられたＤＭＡサブタスクを実行し、次いで、複数の多次元バッファのそれぞれの他の１つの次元に関連付けられたＤＭＡサブタスクを実行することを含む。
【０１４７】
都合のよいことに、ＤＭＡタスクは、対応するＤＭＡタスク要求が選択されると実行される。この選択は、ＤＭＡタスクの優先度に応じて実行されうる。都合のよいことに、複数の多次元バッファに関連付けられたＤＭＡタスクの優先度は、これらの多次元バッファのうちの少なくとも１つの優先度に応じたものである。
【０１４８】
図１２は、本発明の一実施形態による、複数のＤＭＡタスクを制御する方法８００の流れ図である。
【０１４９】
方法８００は、複数のＤＭＡチャネルのそれぞれに対する複数のバッファディスクリプタを定義する段階８１０から始まり、少なくとも２つのバッファディスクリプタは、循環時間ベースＤＭＡタスクの実行を制御するタイミング情報を含む。バッファディスクリプタ内に含まれるさまざまな情報の例は、図５に示されている。
【０１５０】
都合のよいことに、タイミング情報は、ＤＭＡタスク実行時間間隔およびＤＭＡタスク優先度を定義する。これらのフィールドは、方法６００などの方法により使用することができる。都合のよいことに、少なくとも１つのバッファディスクリプタは、現在の繰り返しＩ／Ｏポート選択情報および次の繰り返しＩ／Ｏポート選択情報を含む。ＤＭＡコントローラ（ＤＭＡコントローラ１００など）が複数のＩ／Ｏポートを備える場合、これらのフィールドは、現在のＤＭＡタスク、ＤＭＡサブタスク、および／またはＤＭＡトランザクションの際に使用されなければならないＩ／Ｏポート、および次のＤＭＡタスク、ＤＭＡサブタスク、および／またはＤＭＡトランザクションの際に使用されなければならないＩ／Ｏポートを定義する。都合のよいことに、少なくとも１つのバッファディスクリプタは、アービトレーションタイプ情報を含む。そのため、このフィールドを考慮して、ＤＭＡコントローラは、限定はしないが、方法５００のアービトレーションスキームなどのアービトレーションスキームを選択することができる。
【０１５１】
段階８１０の後に、複数のＤＭＡタスク要求を受け取る段階８５０が続く。
【０１５２】
段階８５０の後に、複数のＤＭＡタスク要求のうちから１つのＤＭＡタスク要求を選択する段階８６０が続く。この選択は、方法５００の任意の段階を含みうる。
【０１５３】
段階８６０の後に、１つのＤＭＡタスクまたは１回のＤＭＡタスク繰り返しを実行し、実行を反映させるために選択されたＤＭＡタスク要求に関連付けられているバッファディスクリプタを更新する段階８７０が続く。段階８７０の後に、段階８６０が続く。
【０１５４】
都合のよいことに、段階８７０の後に、可能なタイミング違反が検出された後、割り込み要求を発生する段階８８０が続く。段階８８０および可能なタイミング違反オペレーションの後に、段階８６０が続く。
【０１５５】
バッファディスクリプタは、方法８００の実行時に更新されうるが、この更新段階は、説明を簡単にするため、図１１に例示されていないことに留意されたい。
【０１５６】
都合のよいことに、少なくとも１つのバッファディスクリプタが、ＤＭＡコントローラに結合されたメモリユニット内に格納され、循環時間ベースＤＭＡタスクの第１の繰り返しの実行は、循環時間ベースＤＭＡタスクに関連付けられたバッファディスクリプタをメモリユニットから取り出すことを含む。
【０１５７】
都合のよいことに、少なくとも１つの循環時間ベースＤＭＡタスクは、多次元バッファに関連付けられた複数のＤＭＡサブタスクを含む。都合のよいことに、方法８００は、異なるＤＭＡタスク繰り返しにおいて異なるＩ／Ｏポートを使用することを含む。
【０１５８】
本明細書で説明されている内容の変更形態、修正形態、および他の実装は、当業者であれば、請求項にある通り本発明の精神および範囲から逸脱することなく、思い付くことであろう。したがって、本発明は、前記の例示的説明ではなく、その代わりに、請求項の精神および範囲により定められる。
【図面の簡単な説明】
【０１５９】
【図１】本発明の一実施形態による、デバイスを例示する図である。
【図２】本発明の一実施形態による、ＤＭＡコントローラを例示する図である。
【図３】本発明の一実施形態による、バスインターフェイスを例示する図である。
【図４】本発明の一実施形態による、ファイルレジスタのさまざまなレジスタを例示する図である。
【図５】本発明の一実施形態によるバッファディスクリプタテーブルを例示する図である。
【図６】本発明の一実施形態による、４次元バッファを例示する図である。
【図７】本発明の一実施形態による、ＤＭＡチャネルおよび選択されたＤＭＡチャネルロジックを例示する図である。
【図８】本発明の一実施形態による、例示的なデータ転送オペレーションに関わるさまざまなバッファを例示する図である。
【図９】本発明の一実施形態による、複数のＤＭＡタスク要求のアービトレーションを行う方法の流れ図である。
【図１０】本発明の一実施形態による、第１のＤＭＡタスクの実行を制御する方法の流れ図である。
【図１１】本発明の一実施形態による、ＤＭＡタスクを実行する方法の流れ図である。
【図１２】本発明の一実施形態による、複数のＤＭＡタスクを制御する方法の流れ図である。
【図１】
2009505169.tif 000003
【図２】
2009505169.tif 000004
【図３】
2009505169.tif 000005
【図４】
2009505169.tif 000006
【図５】
2009505169.tif 000007
【図６】
2009505169.tif 000008
【図７】
2009505169.tif 000009
【図８】
2009505169.tif 000010
【図９】
2009505169.tif 000011
【図１０】
2009505169.tif 000012
【図１１】
2009505169.tif 000013
【図１２】
2009505169.tif 000014
【手続補正書】
【提出日】平成20年2月28日(2008.2.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＤＭＡタスク要求を受け取るように適合された、インターフェイスを備えるデバイスであって、前記デバイスは、前記ＤＭＡタスクに関連付けられた期限に応じて前記複数のＤＭＡタスク要求のうちから１つのＤＭＡタスク要求を選択するように適合されたアービタを備えることを特徴とし、少なくとも１つのＤＭＡタスクは、繰り返しタスクである、デバイス。
【請求項２】
前記アービタは、定義済み優先度に応じて実質的に同じ期限に関連付けられているＤＭＡタスク要求のうちから要求を選択するように適合されている請求項１に記載のデバイス。
【請求項３】
前記アービタは、タイミングに無関係のアービトレーションスキームを適用することにより実質的に同じ期限に関連付けられているＤＭＡタスク要求のうちから要求を選択するように適合されている請求項１に記載のデバイス。
【請求項４】
前記アービタは、少なくとも１つの利用可能帯域幅パラメータに応じて選択するように適合された請求項１から３のいずれかに記載のデバイス。
【請求項５】
前記アービタは、少なくとも１つの要求帯域幅パラメータに応じて選択するように適合された請求項１から４のいずれかに記載のデバイス。
【国際調査報告】
2009505169.tif 000015
2009505169.tif 000016
2009505169.tif 000017