(57)【要約】    【課題】  ＤＭＡコントローラに与える命令列を複雑にすることなく単純化することができ、バースト転送を活用した効率的なデータ転送を行うことができるデータ転送装置を提供する。    【解決手段】  転送元アドレスと転送先アドレスのバーストアラインメント境界に対するアドレスオフセット値を一致させるという制約条件を設けることで、命令列を単純化する。グローバルメモリ２０５上の転送元アドレスポインタｓｐからローカルメモリ２０３上の転送先アドレスポインタｄｐにデータをＤＡＭ転送する場合、アラインメント境界に対する転送先アドレスポインタｄｐのアドレスオフセット値を調整することで、上記制約条件を満たす。【選択図】      図８
2006139416.tif 000002
【特許請求の範囲】
【請求項１】
ＤＭＡによるデータ転送を行うデータ転送装置であって、
転送元アドレスおよび転送先アドレスのうち、一方のアドレスの特定のアラインメント境界に対するアドレスオフセットが、他方のアドレスの前記特定のアラインメント境界に対するアドレスオフセットに一致するように、前記一方のアドレス値を調整するアドレスオフセット調整手段と、
前記一方のアドレス値が調整された後、前記転送元アドレスおよび前記転送先アドレスをＤＭＡコントローラに設定する設定手段とを備え、
前記ＤＭＡコントローラは、前記特定のアラインメント境界に対するアドレスオフセットが転送元アドレスと転送先アドレスとで等しいことを条件にデータ転送を実行させる命令にしたがって、ＤＭＡによるデータ転送を行うことを特徴とするデータ転送装置。
【請求項２】
前記転送先アドレスとして指定可能なダブルバッファメモリと、
前記ダブルバッファメモリの一方に格納されたデータを読み出して処理するデータ処理手段とを備え、
前記データ処理手段は、前記転送先アドレスとして指定される前記ダブルバッファメモリの他方にデータ転送が行われる間、前記ダブルバッファメモリの一方に格納されたデータを読み出して処理し、
前記データ転送および前記データ処理が終わった後、前記ダブルバッファメモリの一方と前記転送先アドレスとして指定される前記ダブルバッファメモリの他方とを切り替えることを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記転送元アドレスとして指定可能なダブルバッファメモリと、
データを処理して前記ダブルバッファメモリの一方に格納するデータ処理手段とを備え、
前記データ処理手段は、前記転送元アドレスとして指定される前記ダブルバッファメモリの他方からデータ転送が行われる間、データを処理して前記ダブルバッファメモリの一方に格納し、
前記データ転送および前記データ処理が終わった後、前記ダブルバッファメモリの一方と前記転送元アドレスとして指定される前記ダブルバッファメモリの他方とを切り替えることを特徴とする請求項１記載のデータ転送装置。
【請求項４】
ＤＭＡによるデータ転送を行うデータ転送方法であって、
ＣＰＵは、転送元アドレスおよび転送先アドレスのうち、一方のアドレスの特定のアラインメント境界に対するアドレスオフセットが、他方のアドレスの前記特定のアラインメント境界に対するアドレスオフセットに一致するように、前記一方のアドレス値を調整するアドレスオフセット調整ステップと、
前記ＣＰＵは、前記一方のアドレス値が調整された後、前記転送元アドレスおよび前記転送先アドレスをＤＭＡコントローラに設定する設定ステップと、
前記ＤＭＡコントローラは、前記特定のアラインメント境界に対するアドレスオフセットが転送元アドレスと転送先アドレスとで等しいことを条件にデータ転送を実行させる命令にしたがって、ＤＭＡによるデータ転送を行うデータ転送ステップとを有するデータ転送方法。
【請求項５】
請求項１乃至３のいずれかに記載のデータ転送装置を実現するためのコンピュータ読み取り可能なプログラムコードを有するプログラム。
【請求項６】
請求項５記載のプログラムを格納した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＭＡ（ダイレクトメモリアクセス）によるデータ転送を行うデータ転送装置およびデータ転送方法に関する。
【背景技術】
【０００２】
この種のデータ転送装置として、従来、ＤＭＡ制御装置（ＤＭＡコントローラ）が知られている（特許文献１参照）。このＤＭＡ制御装置は、一般的なＤＭＡ制御装置に対し、転送元アドレスアラインバイト判定器、アラインバイト数判定器、転送先アドレスアラインバイト判定器、アラインバイト数統合器、最小アラインバイト生成器等を追加することにより、転送途中の転送元アドレスと転送先アドレスのアラインメントの変化に応じて、その時点で最も効率的な転送（バースト転送含む）を選択してデータ転送を実行するものである。
【特許文献１】特開２０００−１３２４９７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上記従来例では、転送元アドレスアラインバイト判定器、アラインバイト数判定器、転送先アドレスアラインバイト判定器、アラインバイト数統合器、最小アラインバイト生成器等、多くのハードウェア資源を追加する必要があった。また、これらのハードウェアの追加を行っても、複雑なデータ転送に対応したり、転送パターンを柔軟に変更することはできず、ハードウェア規模の増大に見合った機能の向上が得られなかった。
【０００４】
そこで、本発明は、ＤＭＡコントローラに与える命令列を複雑にすることなく単純化することができ、バースト転送を活用した効率的なデータ転送を行うことができるデータ転送装置およびデータ転送方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記目的を達成するために、本発明のデータ転送装置は、ＤＭＡによるデータ転送を行うデータ転送装置であって、転送元アドレスおよび転送先アドレスのうち、一方のアドレスの特定のアラインメント境界に対するアドレスオフセットが、他方のアドレスの前記特定のアラインメント境界に対するアドレスオフセットに一致するように、前記一方のアドレス値を調整するアドレスオフセット調整手段と、前記一方のアドレス値が調整された後、前記転送元アドレスおよび前記転送先アドレスをＤＭＡコントローラに設定する設定手段とを備え、前記ＤＭＡコントローラは、前記特定のアラインメント境界に対するアドレスオフセットが転送元アドレスと転送先アドレスとで等しいことを条件にデータ転送を実行させる命令にしたがって、ＤＭＡによるデータ転送を行うことを特徴とする。
【０００６】
また、本発明のデータ転送方法は、ＤＭＡによるデータ転送を行うデータ転送方法であって、ＣＰＵは、転送元アドレスおよび転送先アドレスのうち、一方のアドレスの特定のアラインメント境界に対するアドレスオフセットが、他方のアドレスの前記特定のアラインメント境界に対するアドレスオフセットに一致するように、前記一方のアドレス値を調整するアドレスオフセット調整ステップと、前記ＣＰＵは、前記一方のアドレス値が調整された後、前記転送元アドレスおよび前記転送先アドレスをＤＭＡコントローラに設定する設定ステップと、前記ＤＭＡコントローラは、前記特定のアラインメント境界に対するアドレスオフセットが転送元アドレスと転送先アドレスとで等しいことを条件にデータ転送を実行させる命令にしたがって、ＤＭＡによるデータ転送を行うデータ転送ステップとを有する。
【発明の効果】
【０００７】
本発明の請求項１に係るデータ転送装置によれば、転送元アドレスおよび転送先アドレスのうち、一方のアドレスの特定のアラインメント境界に対するアドレスオフセットが、他方のアドレスの前記特定のアラインメント境界に対するアドレスオフセットに一致するように、前記一方のアドレス値を調整し、前記一方のアドレス値が調整された後、前記転送元アドレスおよび前記転送先アドレスをＤＭＡコントローラに設定し、前記ＤＭＡコントローラは、前記特定のアラインメント境界に対するアドレスオフセットが転送元アドレスと転送先アドレスとで等しいことを条件にデータ転送を実行させる命令にしたがって、ＤＭＡによるデータ転送を行うので、ＤＭＡコントローラに与える命令列を複雑にすることなく単純化することができ、バースト転送を活用した効率的なデータ転送を行うことができる。また、請求項２、３に係るデータ転送装置によれば、データ処理およびデータ転送の性能を高めることができる。
【発明を実施するための最良の形態】
【０００８】
本発明のデータ転送装置およびデータ転送方法の実施の形態について図面を参照しながら説明する。本実施形態のデータ転送装置は、ダイレクトメモリアクセス処理を行うデータ処理システムに適用される。
【０００９】
［第１の実施形態］
図１は第１の実施形態におけるデータ処理システムの構成を示すブロック図である。このデータ処理システムは、プロセッサ２０１、ＤＭＡコントローラ２０２、ローカルメモリ２０３、バス制御部２０４、グローバルメモリ２０５およびメモリアクセスデバイス２０６を有する。
【００１０】
本実施形態では、グローバルメモリ２０５には、処理されるべき入力データが記憶されており、プロセッサ２０１は、このデータに対してデータ処理を行い、その結果を再びグローバルメモリ２０５に出力する場合を想定する。グローバルメモリ２０５は、処理データを十分に記憶可能な大容量のものであるが、バス接続部２０４を介してプロセッサ２０１と接続されているので、グローバルメモリ２０５へのアクセスには時間がかかる。したがって、プロセッサ２０１がグローバルメモリ２０５に記憶されたデータを直接読み書きすると、アクセスに時間がかかって処理性能が上がらなくなる。
【００１１】
このような問題を解決するため、本実施形態では、ＤＭＡコントローラ２０２に、ローカルメモリ２０３が接続されている。ローカルメモリ２０３は、プロセッサ２０１側に配置され、高速アクセス可能な小容量のメモリである。図中点線で示すように、ＤＭＡコントローラ２０２がグローバルメモリ２０５上の処理データの一部を読み込み、ローカルメモリ２０３に書き込む。そして、プロセッサ２０１は、ローカルメモリ２０３に記憶された入力データを読み込んでデータ処理を行う。この結果、メモリアクセスに待たされる時間が少なくなり、高速な処理が可能となる。プロセッサ２０１からの出力データについても、一旦ローカルメモリ２０３に書き込み、ＤＭＡコントローラ２０２によってローカルメモリ２０３上のデータをグローバルメモリ２０５に転送することで、高速な処理が可能となる。
【００１２】
メモリアクセスデバイス２０６は、グローバルメモリ２０５にアクセス可能なデバイスであり、例えば、メモリアクセスデバイス２０６で生成されたデータをグローバルメモリ２０５に書き込む。書き込まれたデータは、処理すべき入力データとして扱われる。
【００１３】
また、本実施形態では、転送元アドレスおよび転送先アドレスの間で、バーストアラインメント境界に対するアドレスオフセット値が一致するように、転送アドレス値に制約条件を加えることで、図２に示すように転送制御を単純化できる。図２は制約条件が成り立つ場合のデータ転送を示す図である。転送元アドレスがバーストあるいはワードのアラインメント境界に一致している場合、必ず転送先アドレスも対応するアラインメント境界に一致しているので、読み込み側の転送単位と書き込み側の転送単位を常に一致させることができる。
【００１４】
入力データ１は、ワードアラインメント境界にもバーストアラインメント境界にも一致していないので、バイト単位で読み込まれ、そのまま、バイト単位で出力データ１として書き込まれる。入力データ２は、バーストアラインメント境界に一致しているので、バースト転送で読み込まれ、そのままバースト転送で出力データ２として書き込まれる。入力データ３および出力データ３についても同様にバースト転送される。入力データ４については、残りデータのサイズがバースト長に満たないので、ワード単位の転送で読み込まれ、そのままワード単位の転送で出力データ４として書き込まれる。入力データ５および出力データ５についても同様にワード転送される。このように、図２では、転送元アドレスとバーストあるいはワードアラインメント境界との関係だけを考慮して転送単位を決定すればよいので、制御を単純化できる。
【００１５】
図３は制約条件をつけた場合、ダイレクトメモリアクセス処理装置（ＤＭＡコントローラ）に与える命令列の例を示す図である。最初のＬＯＯＰ命令からｌｏｏｐ０＿ｅｎｄラベルまでは、変数ＡＲ０に格納された転送元アドレスから変数ＡＲ１に格納された転送先アドレスにバイト単位のデータコピーを行う命令列である。２番目のＬＯＯＰ命令からｌｏｏｐ１＿ｅｎｄラベルまでは、変数ＡＲ０から変数ＡＲ１にバースト単位のデータコピーを行う命令列である。３番目のＬＯＯＰ命令からｌｏｏｐ２＿ｅｎｄラベルまでは、バースト長分の残りデータが無くなった時点で、バイト単位のデータコピーを行う命令列である。ここで、各ループのループ回数は、最初に与えられる転送元アドレスと転送サイズから計算され、命令列の実行前に設定されている。このように、転送元アドレスと転送先アドレスのアラインメント境界に対するオフセット値の制約条件を設けることで、非常に単純な命令列で効率的なデータ転送を行うことができる。尚、ここでは説明を簡単にするために、バイト単位の転送とバースト転送の２種類の転送方式を用いる場合の命令列を示したが、図２に示すようにさらにワード単位の転送を用いる場合にも容易に拡張可能である。
【００１６】
つぎに、転送元アドレスと転送先アドレスに関する上記制約条件を満たすための、アドレス値の調整を示す。図４はグローバルメモリ２０５からローカルメモリ２０３へ処理データを転送する際、処理データの配置を示す図である。同図（Ａ）はグローバルメモリ２０５の場合を示し、同図（Ｂ）はローカルメモリ２０３の場合を示している。図中、グローバルメモリ２０５およびローカルメモリ２０３の左端のアドレスは、それぞれバーストアラインメント境界を示している。図では、一般的にＮバイトアラインメント境界と示されている。転送される処理データのサイズは、一般にバースト長の倍数とは限らないので、グローバルメモリ２０５上の、転送１回当たりの処理データ１〜５の開始アドレスのバーストアラインメント境界に対するオフセット値は、図（Ａ）に示すように変動する。
【００１７】
一方、ローカルメモリ２０３については、必ずしもダブルバッファメモリの構成である必要は無いが、ここではダブルバッファメモリの構成で転送データを格納する例を示す。転送１回分のデータを格納するためのローカルバッファのサイズは、通常、転送１回当たりのデータサイズの最大値とすればよい。ここでは、その最大値に加え、バースト長分だけ余計にバッファサイズを確保している（図中、拡張部分）。これは、後述するように、ローカルメモリ２０３側の転送先アドレスの調整を行うために設けられた領域である。ローカルメモリ２０３側のローカルバッファの開始アドレスは、このデータを処理するプロセッサ２０１の都合で自由に設定されるが、ここではローカルバッファはいずれもバーストアラインメント境界から始まるものとしている。
【００１８】
このように配置されたデータに対し、上記制約条件を満たすための制御を行った場合の動作を示す。図５、図６および図７はグローバルメモリ２０５からローカルメモリ２０３にデータを転送する際の各転送毎の動作を示す図である。図において、白い菱形は転送元アドレス、黒い菱形は転送先アドレスを示している。まず、グローバルメモリ２０５における最初の処理データ１をローカルバッファ１に転送する。図５では、処理データ１の開始アドレスとローカルバッファ１の開始アドレスは、バーストアラインメント境界に一致している例が示されており、特に、転送先アドレスの調整を行う必要は無い。
【００１９】
図６では、グローバルメモリ２０５上の処理データ２をローカルバッファ２に転送する。処理データ２の転送元アドレスはバーストアラインメント境界と一致しないので、転送先アドレスは、バーストアラインメント境界と一致したローカルバッファ２の開始アドレスに対し、転送元アドレスのバーストアラインメント境界に対するオフセット値分を加えたアドレスに調整される。そして、処理データ２は調整後の転送先アドレスに転送される。このとき、プロセッサ２０１は、ローカルバッファ１に転送済みの処理データ１に対するデータ処理を並行して行う。図７では、グローバルメモリ２０５上の処理データ３をローカルバッファ１に転送する。図６と同様、処理データ３の転送元アドレスはバーストアラインメント境界と一致しないので、転送先アドレスに対する調整が行われ、処理データ３は調整後の転送先アドレスに転送される。このとき、プロセッサ２０１は、ローカルバッファ２に転送済みの処理データ２に対するデータ処理を並行して行う。以後のデータについても、同様に転送先アドレスの調整とデータ転送が行われる。尚、図５〜図７では、処理データ１、２、３と最初から順に転送・処理される場合を示したが、処理によっては、処理データ３、２、１など、異なる順序で転送・処理される場合もあり、特に転送の順序は制約されない。
【００２０】
図８はデータ転送処理手順を示すフローチャートである。この処理プログラムはプロセッサ２０１内のＲＯＭ（図示せず）に格納されており、プロセッサ２０１によって実行される。ここで、転送元アドレスポインタｓｐは、グローバルメモリ２０５上にあって、次に転送すべきデータを指している。転送先アドレスポインタｄｐは、ローカルメモリ２０３上にあって、次にデータが転送されるローカルバッファのアドレスを指している。プロセッサ入力アドレスポインタｐｐは、ローカルメモリ２０３上の、プロセッサ２０１が次にデータ処理を行うローカルバッファのアドレスを指している。つまり、ダブルバッファメモリの場合、転送先アドレスポインタｄｐが一方のローカルバッファを指していると、プロセッサ入力アドレスポインタｐｐは他方のローカルバッファを指している。
【００２１】
まず、各ポインタｓｐ、ｄｐ、ｐｐを初期値に初期化する（ステップＳ１）。最初のデータ転送に対する転送先アドレスポインタｄｐのバーストアラインメント境界に対するオフセットの調整処理を行う（ステップＳ２）。図５に示したように、ローカルバッファの開始アドレスがバーストアラインメント境界に一致している場合、この処理は数式（１）で実現される。
【００２２】
ｄｐ＝（ｄｐ＆ＢＵＲＳＴ＿ＡＬＩＧＮ＿ＭＡＳＫ）｜（ｓｐ＆ＢＵＲＳＴ＿ＯＦＦＳＥＴ＿ＭＡＳＫ）    ……  （１）
ここで、「＆」はビット毎の論理積演算を示す。「｜」はビット毎の論理和演算を示す。ＢＵＲＳＴ＿ＡＬＩＧＮ＿ＭＡＳＫはバースト長以下のビットをクリアするためのビットマスクである。ＢＵＲＳＴ＿ＯＦＦＳＥＴ＿ＭＡＳＫはバーストアラインメント境界に対するオフセット値だけを取り出すためのビットマスクである。仮に、バースト長を３２とすると、ＢＵＲＳＴ＿ＡＬＩＧＮ＿ＭＡＳＫの値は０ｘｆｆｆｆｆｅ０（１６進数）、ＢＵＲＳＴ＿ＯＦＦＳＥＴ＿ＭＡＳＫの値は０ｘ１ｆ（１６進数）となる。尚、ローカルバッファの開始アドレスがバーストアラインメント境界と一致しない場合、数式（１）に示すような単純な論理演算にはならないが、論理演算に加えて加減算を用いることで処理は実現される。
【００２３】
転送元アドレスポインタｓｐおよび調整後の転送先アドレスポインタｄｐを用い、ＤＭＡ転送パラメータをＤＭＡコントローラ２０２に設定する（ステップＳ３）。そして、ＤＭＡ転送を開始する（ステップＳ４）。既に開始済みのＤＭＡ転送の終了を確認し、終了していない場合、終了するまで待つ（ステップＳ５）。ダブルバッファメモリ構成のローカルバッファの切り替えを行う（ステップＳ６）。この処理では、転送先アドレスポインタｄｐとプロセッサ入力アドレスポインタｐｐの値を交換することが行われる。
【００２４】
そして、次に転送すべきデータが残っているか否かを確認し（ステップＳ７）、残っていない場合、ＤＭＡ転送を行わず、ステップＳ１２の処理に進む。一方、次に転送すべきデータが残っている場合、転送元アドレスポインタｓｐの更新を行い（ステップＳ８）、次のＤＭＡ転送のために、ステップＳ２と同様、転送先アドレスポインタｄｐの調整を行う（ステップＳ９）。そして、ステップＳ３の処理と同様、ＤＭＡ転送パラメータの設定を行い（ステップＳ１０）、ステップＳ４の処理と同様、ＤＭＡ転送を開始する（ステップＳ１１）。開始済みのＤＭＡ転送と並行し、プロセッサ２０１はプロセッサ入力アドレスポインタｐｐの指し示す入力データを読み出して処理する（ステップＳ１２）。
【００２５】
この後、全データの処理が終了したか否かを判別し（ステップＳ１３）、終了していない場合、ステップＳ５の処理に戻り、ＤＭＡ転送終了を待つ。一方、全データの処理が終了すると、本処理を終了する。
【００２６】
このように、第１の実施形態のデータ転送装置によれば、ＤＭＡコントローラに与える命令列を複雑にすることなく単純化することができ、バースト転送を活用した効率的なデータ転送を行うことができる。
【００２７】
［第２の実施形態］
前記第１の実施形態では、グローバルメモリ２０５からローカルメモリ２０３にデータを転送し、プロセッサ２０１がデータ処理を行う場合を示したが、第２の実施形態では、逆にプロセッサ２０１で処理したデータをローカルメモリ２０３に書き込み、グローバルメモリ２０５にＤＭＡ転送する場合を示す。第２の実施形態におけるデータ処理システムの構成は前記第１の実施形態と同じであるので、その説明を省略する。
【００２８】
図９は第２の実施形態におけるデータ転送処理手順を示すフローチャートである。この処理プログラムはプロセッサ２０１内のＲＯＭ（図示せず）に格納されており、プロセッサ２０１によって実行される。この場合、データ配置および動作は、前記第１の実施形態の図６〜図８と同様であり、ＤＭＡの転送方向を逆に読み替えるだけでよい。
【００２９】
まず、ローカルメモリ側の転送元アドレスポインタｓｐ、グローバルメモリ側の転送先アドレスポインタｄｐ、およびプロセッサ２０１による処理データの出力アドレスポインタｐｐの各ポインタを初期化する（ステップＳ２１）。
【００３０】
出力アドレスポインタｐｐのバーストアラインメント境界に対するオフセット値を、転送先アドレスポインタｄｐのバーストアラインメント境界に対するオフセット値に合わせるための調整を行う（ステップＳ２２）。前記第１の実施形態と同様、ローカルバッファの先頭アドレスがバーストアラインメント境界と一致している場合、この調整は数式（２）で実現される。
【００３１】
ｐｐ＝（ｐｐ＆ＢＵＲＳＴ＿ＡＬＩＧＮ＿ＭＡＳＫ）｜（ｄｐ＆ＢＵＲＳＴ＿ＯＦＦＳＥＴ＿ＭＡＳＫ）    ……  （２）
調整後の出力アドレスポインタｐｐで示されるローカル出力データ領域に対し、プロセッサ２０１は処理データの出力を行う（ステップＳ２３）。既にＤＭＡ転送が開始されているか否かを判別し（ステップＳ２４）、既にＤＭＡ転送が開始されている場合、ＤＭＡ転送の終了を待つ（ステップＳ２５）。一方、ＤＭＡ転送が開始されていない場合、あるいはステップＳ２５でＤＭＡ転送が終了すると、ダブルバッファメモリ構成のローカルバッファの切り替えを行う（ステップＳ２６）。このステップ処理は、転送元アドレスポインタｓｐと出力アドレスポインタｐｐの値を交換することで実現される。ＤＭＡコントローラ２０２に対するＤＭＡ転送パラメータの設定を行い（ステップＳ２７）、グローバルメモリ２０５上の転送先アドレスｄｐを更新し（ステップＳ２８）、ＤＭＡ転送を開始する（ステップＳ２９）。
【００３２】
この後、データ処理が終了したか否かを判別し（ステップＳ３０）、終了していない場合、ステップＳ２２の処理に戻り、プロセッサ２０１が次の処理データを出力する際の出力アドレスポインタｐｐの調整を行う。一方、データ処理が終了した場合、最後に実行したＤＭＡ転送が終了するのを待ち（ステップＳ３１）、本処理を終了する。
【００３３】
第２の実施形態のデータ転送装置によれば、プロセッサ２０１で処理したデータをローカルメモリ２０３からグローバルメモリ２０５にＤＭＡ転送する際にも、ＤＭＡコントローラに与える命令列を単純化して、効率的なデータ転送を行うことができる。
【００３４】
尚、前記第１および第２の実施形態における、図８および図９のフローチャートで示されるデータ処理は、プロセッサ２０１によって実行されたが、データ処理を行うプロセッサ以外にプロセッサが存在するような構成の場合、データ処理とＤＭＡ転送の制御を別々のプロセッサで分担することも可能である。また、上記各実施形態では、バーストアラインメント境界を基準に説明したが、ワードアラインメント境界など、他の要因によるアラインメント境界を基準にしても、本発明は同様に適用可能である。
【００３５】
尚、本発明は、上記実施形態の構成に限られるものではなく、特許請求の範囲で示した機能、または本実施形態の構成が持つ機能が達成できる構成であればどのようなものであっても適用可能である。また、本発明は、複数の機器から構成されるシステムに適用しても、１つの機器からなる装置に適用してもよい。
【００３６】
また、本発明の目的は、上記実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）が記憶媒体に格納されたプログラムコードを読み出して実行することによっても達成される。
【００３７】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００３８】
プログラムコードを供給するための記憶媒体としては、例えば、ＲＯＭ、フロッピー（登録商標）ディスク、ＰＣＭＣＩＡカードやコンパクトフラッシュ（登録商標）等のメモリカード、ハードディスク、マイクロＤＡＴ、光磁気ディスク、ＣＤ−ＲやＣＤ−ＲＷ等の光ディスク、ＤＶＤ等の相変化型光ディスク等で構成されてもよい。また、プログラムコードをネットワークを介してダウンロードしてもよい。
【００３９】
また、コンピュータが読み出したプログラムコードを実行することにより、上記実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることはいうまでもない。
【００４０】
更に、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００４１】
【図１】第１の実施形態におけるデータ処理システムの構成を示すブロック図である。
【図２】制約条件が成り立つ場合のデータ転送を示す図である。
【図３】制約条件をつけた場合、ダイレクトメモリアクセス処理装置（ＤＭＡコントローラ）に与える命令列の例を示す図である。
【図４】グローバルメモリ２０５からローカルメモリ２０３へ処理データを転送する際、処理データの配置を示す図である。
【図５】グローバルメモリ２０５からローカルメモリ２０３にデータを転送する際の各転送毎の動作を示す図である。
【図６】グローバルメモリ２０５からローカルメモリ２０３にデータを転送する際の各転送毎の動作を示す図である。
【図７】グローバルメモリ２０５からローカルメモリ２０３にデータを転送する際の各転送毎の動作を示す図である。
【図８】データ転送処理手順を示すフローチャートである。
【図９】第２の実施形態におけるデータ転送処理手順を示すフローチャートである。
【符号の説明】
【００４２】
２０１  プロセッサ
２０２  ＤＭＡコントローラ
２０３  ローカルメモリ
２０５  グローバルメモリ
【図１】
2006139416.tif 000003
【図２】
2006139416.tif 000004
【図３】
2006139416.tif 000005
【図４】
2006139416.tif 000006
【図５】
2006139416.tif 000007
【図６】
2006139416.tif 000008
【図７】
2006139416.tif 000009
【図８】
2006139416.tif 000010
【図９】
2006139416.tif 000011