(57)【要約】【課題】プロセッサに対してデータ転送の完了を効率よく通知することが可能なデータ処理装置を実現する。【解決手段】メモリ側データ転送処理装置１３は、Ｋ個（Ｋ≧２）のメモリをそれぞれ制御するＫ個のメモリ制御部１３２を有している。データ転送処理の対象となるデータを構成するＮ個（Ｎ≧２Ｋ）のデータブロックそれぞれに対応するＮ個のパケットの内、最後のＫ個のパケットそれぞれには終了フラグと転送処理識別子とが付加される。Ｎ個のパケットはその送出順にＫ個のメモリ制御部１３２に順番に割り当てられる。各メモリ制御部１３２は、終了フラグ付きパケットに含まれるデータを書き込んだ場合、完了通知を発行する。全てのメモリ制御部から完了通知が発行された場合、データ転送処理の完了がプロセッサ１１に通知される。【選択図】      図１
2005346164.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、並列動作可能なＫ個（Ｋ≧２）のメモリを制御する受信側デバイスと、前記プロセッサからのデータ転送要求に応じて、前記受信側デバイスにデータを転送する送信側デバイスとを含むデータ処理装置であって、
前記送信側デバイスに設けられ、前記プロセッサからのデータ転送要求で指定されたデータ転送処理の対象となるデータを構成するＮ個（Ｎ≧２Ｋ）のデータブロックそれぞれに対応するＮ個のパケットを生成するパケット生成手段であって、前記Ｎ個のパケットの内、最後のＫ個（Ｋ≧２）のパケットそれぞれに終了フラグと前記データ転送処理を識別するための識別子とを付加する手段を含むパケット生成手段と、
前記受信側デバイスに設けられ、前記Ｋ個（Ｋ≧２）のメモリをそれぞれ制御するＫ個（Ｋ≧２）のメモリ制御部と、
前記受信側デバイスに設けられ、前記送信側デバイスから前記受信側デバイスに送出される前記Ｎ個のパケットがその送出順に前記Ｋ個のメモリに順番に割り当てられるように、前記送信側デバイスからの各パケットを前記Ｋ個のメモリ制御部の一つに送出するパケット処理手段と、
前記各メモリ制御部に設けられ、前記パケット処理手段から受信した各パケットを当該メモリ制御部に対応するメモリに書き込む処理と、前記終了フラグ付きのパケットが前記対応するメモリに書き込まれた場合、前記終了フラグ付きのパケットに付加されている識別子に対応するデータ転送処理に関する完了通知を発行する処理とを実行する手段と、
前記受信側デバイスに設けられ、前記Ｋ個のメモリ制御部の全てから前記データ転送処理に関する完了通知が発行された場合、前記データ転送処理の完了を前記プロセッサに通知する通知手段とを具備することを特徴とするデータ処理装置。
【請求項２】
前記パケット処理手段は、前記送信側デバイスからの前記各パケットに含まれる宛先アドレスに従って、前記各パケットを前記Ｋ個のメモリ制御部の一つに送出する手段を含むことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記通知手段は、割り込み信号によって前記データ転送処理の完了を前記プロセッサに通知する手段を含むことを特徴とする請求項１記載のデータ処理装置。
【請求項４】
前記プロセッサからのデータ転送要求は、ＤＭＡ（Direct Memory Access）転送要求であることを特徴とする請求項１記載のデータ処理装置。
【請求項５】
前記送信側デバイスは少なくとも一つのＩ／Ｏデバイスに接続され、前記Ｉ／Ｏデバイスとのデータ転送を実行する手段を含むことを特徴とする請求項１記載のデータ処理装置。
【請求項６】
プロセッサからのデータ転送要求に応じて、送信側デバイスから受信側デバイスへのデータ転送処理を実行するデータ転送制御方法であって、
前記受信側デバイスは、並列動作可能なＫ個（Ｋ≧２）のメモリをそれぞれ制御するＫ個（Ｎ≧１）のメモリ制御部を有しており、
前記プロセッサからのデータ転送要求で指定されたデータ転送処理の対象となるデータを構成するＮ個（Ｎ≧２Ｋ）のデータブロックそれぞれに対応するＮ個のパケットを生成して前記送信側デバイスから前記受信側デバイスに送出するパケット生成ステップであって、前記Ｎ個のパケットの内、最後のＫ個のパケットそれぞれに終了フラグと前記データ転送処理を識別するための識別子とを付加するステップを含むパケット生成ステップと、
前記送信側デバイスから前記受信側デバイスに送出される前記Ｎ個のパケットがその送出順に前記Ｋ個のメモリに順番に割り当てられるように、前記送信側デバイスからの各パケットを前記Ｋ個のメモリ制御部の一つに送出するステップと、
前記各メモリ制御部に、受信した各パケットを当該メモリ制御部に対応するメモリに書き込む処理と、前記終了フラグ付きのパケットに付加されている識別子に対応するデータ転送処理に関する完了通知を発行する処理とを実行させるステップと、
前記Ｋ個のメモリ制御部の全てから前記データ転送処理に関する完了通知が発行された場合、前記データ転送処理の完了を前記プロセッサに通知するステップとを具備することを特徴とするデータ転送制御方法。
【請求項７】
前記送信側デバイスからの各パケットを前記Ｋ個のメモリ制御部の一つに送出するステップは、前記送信側デバイスからの前記各パケットに含まれる宛先アドレスに従って、前記各パケットを前記Ｋ個のメモリ制御部の一つに送出するステップを含むことを特徴とする請求項６記載のデータ転送制御方法。
【請求項８】
前記データ転送処理の完了を前記プロセッサに通知するステップは、割り込み信号によって前記データ転送処理の完了を前記プロセッサに通知するステップを含むことを特徴とする請求項６記載のデータ転送制御方法。
【請求項９】
前記データ転送処理の完了を前記プロセッサに通知するステップは、前記完了通知が前記Ｋ個のメモリ制御部全てから発行された場合、割り込み信号を前記プロセッサに発行するステップを含むことを特徴とする請求項６記載のデータ転送制御方法。
【請求項１０】
前記送信側デバイスは少なくとも一つのＩ／Ｏデバイスに接続され、前記Ｉ／Ｏデバイスを制御するように構成されていることを特徴とする請求項６記載のデータ転送制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はプロセッサからのデータ転送要求に応じて送信側デバイスから受信側デバイスへのデータ転送を実行するデータ処理装置および同装置に適用されるデータ転送制御方法に関する。
【背景技術】
【０００２】
近年、コンピュータ、組み込みシステムのようなデータ処理装置においては、プロセッサの負荷を低減するために、プロセッサからのデータ転送要求に応じて送信側デバイスから受信側デバイスへのデータ転送処理を自動実行するためのデータ転送制御機能が用いられている。プロセッサは、データ転送処理が完了するまでの期間、上述のデータ転送処理以外の別の処理を実行することができる。
【０００３】
代表的なデータ転送制御機能としては、ＤＭＡ（Direct Memory Access）転送が知られている。
【０００４】
特許文献１には、実行されたデータ転送数と予め指定された総データ転送数とが一致したことを条件にＤＭＡ転送の完了を検知するＤＭＡ転送制御装置が開示されている。
【特許文献１】特開２００２−１０８４８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかし、通常、受信側デバイスへのデータ転送が完了したとしても、受信側デバイスによって制御されるメモリに全てのデータが実際に書き込まれたとは限らない。このため、メモリに実際に全てのデータが書き込まれたかどうかを確認するためには、受信側デバイスに対して書き込みが完了したかどうかを問い合わせることが必要になる。この問い合わせに起因するオーバーヘッドにより、プロセッサに対してデータ転送の完了を通知するタイミングは遅延される。
【０００６】
本発明は上述の事情を考慮してなされたものであり、プロセッサに対してデータ転送の完了を効率よく通知することが可能なデータ転送制御装置およびデータ転送制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の課題を解決するため、本発明は、プロセッサと、並列動作可能なＫ個（Ｋ≧２）のメモリを制御する受信側デバイスと、前記プロセッサからのデータ転送要求に応じて、前記受信側デバイスにデータを転送する送信側デバイスとを含むデータ処理装置であって、前記送信側デバイスに設けられ、前記プロセッサからのデータ転送要求で指定されたデータ転送処理の対象となるデータを構成するＮ個（Ｎ≧２Ｋ）のデータブロックそれぞれに対応するＮ個のパケットを生成するパケット生成手段であって、前記Ｎ個のパケットの内、最後のＫ個（Ｋ≧２）のパケットそれぞれに終了フラグと前記データ転送処理を識別するための識別子とを付加する手段を含むパケット生成手段と、前記受信側デバイスに設けられ、前記Ｋ個（Ｋ≧２）のメモリをそれぞれ制御するＫ個（Ｋ≧２）のメモリ制御部と、前記受信側デバイスに設けられ、前記送信側デバイスから前記受信側デバイスに送出される前記Ｎ個のパケットがその送出順に前記Ｋ個のメモリに順番に割り当てられるように、前記送信側デバイスからの各パケットを前記Ｋ個のメモリ制御部の一つに送出するパケット処理手段と、前記各メモリ制御部に設けられ、前記パケット処理手段から受信した各パケットを当該メモリ制御部に対応するメモリに書き込む処理と、前記終了フラグ付きのパケットが前記対応するメモリに書き込まれた場合、前記終了フラグ付きのパケットに付加されている識別子に対応するデータ転送処理に関する完了通知を発行する処理とを実行する手段と、前記受信側デバイスに設けられ、前記Ｋ個のメモリ制御部の全てから前記データ転送処理に関する完了通知が発行された場合、前記データ転送処理の完了を前記プロセッサに通知する通知手段とを具備することを特徴とする。
【発明の効果】
【０００８】
本発明によれば、プロセッサに対してデータ転送の完了を効率よく通知することが可能となる。
【発明を実施するための最良の形態】
【０００９】
以下、図面を参照して、本発明の実施形態を説明する。  
図１には、本発明の一実施形態に係るデータ処理装置の構成が示されている。このデータ処理装置は、例えば、コンピュータ、組み込みシステム等として実現されている。このデータ処理装置は、図示のように、プロセッサ１１、Ｉ／Ｏ側データ転送処理装置１２、メモリ側データ転送処理装置１３、および複数のメモリ１５を備えている。
【００１０】
プロセッサ１１は本データ処理装置の動作を制御するＣＰＵ（Central Processing Unit）であり、複数のメモリ１５を主記憶として使用する。プロセッサ１１は、主記憶にロードされたプログラムを実行すると共に、主記憶に格納されたデータを処理する。複数のメモリ１５はそれぞれメモリバンクとして実現されており、これら複数のメモリ１５は並列に動作することができる。
【００１１】
図１においては、４個のメモリバンク＃０〜＃３が設けられている場合が例示されている。アクセス対象のメモリバンクは、特定サイズを有するデータブロック単位で順番に切り替えられる。例えば、あるメモリアドレス空間に４個のデータブロックをシーケンシャルに書き込む場合には、データブロック毎に異なるメモリバンクがアクセスされる。これにより、４個のメモリバンク＃０〜＃３に対するアクセスが並列に実行される。同一のメモリバンクに対してデータブロック群をシーケンシャルに書き込む場合に比し、高速書き込みを実現することができる。このような並列アクセスは、４個のメモリバンク＃０〜＃３に対してメモリアドレスを横断して割り当てるインターリーブ制御を用いることによって実現することができる。
【００１２】
各メモリバンクは、例えば、特定サイズを各々が有する多数のページから構成される。メモリバンク＃０には、ページ０，ページ４、ページ８、ページ１２、…が割り当てられる。メモリバンク＃１には、ページ１，ページ５、ページ９、ページ１３、…が割り当てられる。メモリバンク＃２には、ページ２，ページ６、ページ１０、ページ１４、…が割り当てられる。メモリバンク＃３には、ページ３，ページ７、ページ１１、ページ１５、…が割り当てられる。Ｉ／Ｏ側データ転送処理装置１２から送出される４個のデータブロックをある連続するメモリアドレス空間に書き込む場合には、それら４個のデータブロックそれぞれに対応する宛先アドレス（メモリアドレス）の値は、１ページのデータサイズ分単位で増加する。これにより、これら４個のデータブロックはその送出順に４個のメモリバンクに順番に割り当てられる。
【００１３】
Ｉ／Ｏ側データ転送処理装置１２は、複数のＩ／Ｏデバイス１４に接続されており、それらＩ／Ｏデバイス１４を制御する。このＩ／Ｏ側データ転送処理装置１２は、プロセッサ１１からのデータ転送要求に応じてメモリ側データ転送処理装置１３にデータを転送する送信側デバイスとして機能する。Ｉ／Ｏ側データ転送処理装置１２は、パケット処理部１２１と、複数の転送制御部１２２とを備えている。
【００１４】
複数の転送制御部１２２は複数のＩ／Ｏデバイス１４にそれぞれ接続されている。各転送制御部１２２は、それに対応するＩ／Ｏデバイスとの間のデータ転送を実行する。パケット処理部１２１は、プロセッサ１１からのデータ転送要求で指定されたデータ転送処理の対象となるデータを、特定データサイズを有するデータブロック毎にパケット化するパケット生成処理を実行する。データ転送要求は、あるＩ／Ｏデバイス１４とメモリとの間のデータ転送を指定するＤＭＡ（Direct Memory Access）転送要求である。１回のデータ転送要求で指定されるデータ転送対象のデータサイズは、Ｎ個（Ｎ≧２Ｋ）のデータブロックの合計データサイズ以上である。ここで、Ｋ（Ｋ≧２）は、メモリバンクの個数である。
【００１５】
パケット生成処理は、プロセッサ１１からのデータ転送要求で指定されたデータ転送処理の対象となるデータを構成するＮ個（Ｎ≧２Ｋ）のデータブロックそれぞれに対応するＮ個のパケットを生成する。この場合、各パケットには、宛先アドレス（メモリアドレス）と、データ転送要求で指定されたデータ転送処理を一意に識別するための識別子（転送処理識別子）が付加される。
【００１６】
先頭のパケットに付加される宛先アドレスの値は、プロセッサ１１からのデータ転送要求で指定された転送先メモリアドレスに一致する。２番目のパケットに付加される宛先アドレスの値は転送先メモリアドレス＋データブロックサイズ、３番目のパケットに付加される宛先アドレスの値は転送先メモリアドレス＋２×データブロックサイズとなる。
【００１７】
転送処理識別子は、例えば、データ転送要求で指定されたＩ／Ｏデバイスを識別するためのデバイスＩＤと、データ転送処理の処理単位を識別するための転送ＩＤとを含む。
【００１８】
さらに、パケット生成処理においては、Ｎ個のパケットの内、先頭からＫ個のパケットに対しては、データ転送処理の開始を示す開始フラグが付加される。また、Ｎ個のパケットの内、最後のＫ個のパケットに対しては、データ転送処理の終了を示す終了フラグが付加される。
【００１９】
パケット処理部１２１によって生成されたパケットは、メモリ側データ転送処理装置１３に順次送信される。メモリ側データ転送処理装置１３は４個のメモリバンク１５を制御する受信側デバイスであり、パケット処理部１３１、およびメモリバンク１５の数と同数のメモリ制御部１３２を有している。パケット処理部１３１は、Ｉ／Ｏ側データ転送処理装置１２から送出されるパケット群がその送出順に４個のメモリバンク１５に順番に割り当てられるように、Ｉ／Ｏ側データ転送処理装置１２から受信した各パケットを４個のメモリ制御部１３２の一つに書き込み要求として送出する。この場合、各パケットに含まれる宛先アドレスに従って、パケット毎に送出先のメモリ制御部１３２が決定される。
【００２０】
各メモリ制御部１３２は、書き込み要求を蓄積するためのキューを有している。このキューは、例えば、ＦＩＦＯ（First-In First-Out）バッファから構成されている。書き込み要求は、その受付順に処理される。すなわち、各メモリ制御部１３２は、自身のキューに保持されている書き込み要求を順番に取り出し、そのメモリ制御部１３２に対応するメモリバンクにデータを書き込む。また、各メモリ制御部１３２のキューには、Ｉ／Ｏ側データ転送処理装置１２からの書き込み要求のみならず、プロセッサ１１から発行される書き込み要求も入力される。
【００２１】
各メモリ制御部１３２は、終了フラグ付きのパケットに含まれるデータをメモリバンクに書き込んだ場合、当該終了フラグ付きのパケットに付加されている転送処理識別子によって指定されるデータ転送処理の完了を示す完了通知をパケット処理部１３１に発行する機能を有している。
【００２２】
本実施形態においては、先頭の４個のパケットには開始フラグが付加され、また最後の４個のパケットには終了フラグが付加されているので、各メモリ制御部１３２には、開始フラグ付きのパケットと終了フラグ付きのパケットとが必ず送られる。これにより、各メモリ制御部１３２は、データ転送処理毎に、自身が処理すべきデータ転送の開始および終了を検知することができる。したがって、メモリ側データ転送処理装置１３においては、転送すべき全データ量をデータ転送処理毎に把握せずとも、データ転送処理毎にその完了を検知することができる。
【００２３】
パケット処理部１３１は、同一のデータ転送処理に関する完了通知が４個のメモリ制御部１３２全てから発行された場合、データが利用可能になったことをプロセッサ１１に知らせるために、割り込み信号を発行して当該データ転送処理の完了をプロセッサ１１に通知する。
【００２４】
次に、図２を参照して、Ｉ／Ｏ側データ転送処理装置１２のパケット処理部１２１によってデータ転送処理毎に生成されるパケット群の例を説明する。ここでは、デバイスＩＤ＝２のＩ／Ｏデバイス１４からメモリへのデータ転送を想定している。
【００２５】
Ｐ１〜ＰＮは、Ｎ個のデータブロックそれぞれに対応するパケットを示している。各パケットはブロックデータとヘッダとを含む。ヘッダは、デバイスＩＤを示す［ＩＤ］フィールド、転送ＩＤを示す［Ｔｒａｎｓ］フィールド、開始フラグが必要に応じてセットされる［Ｓｔａｒｔ］フィールド、終了フラグが必要に応じてセットされる［Ｅｎｄ］フィールドなどを含む。先頭の４個のパケットＰ１〜Ｐ４それぞれの［Ｓｔａｒｔ］フィールドには開始フラグとして“１”がセットされる。また、最後の４個のパケットＰＮ−３〜ＰＮそれぞれの［Ｅｎｄ］フィールドには終了フラグとして“１”がセットされる。次のディスクリプタの処理単位が開始されるときは処理単位を識別するためのＩＤが変更される。
【００２６】
図３には、パケットＰ１〜ＰＮが４個のメモリ制御部１３２に振り分けられる様子が示されている。図３では、パケットＰ１の宛先アドレスに対応するメモリバンクがメモリバンク＃０である場合を想定している。
【００２７】
開始フラグ付きパケットＰ１はメモリバンク＃０に対応するメモリ制御部＃０に送出され、開始フラグ付きパケットＰ２はメモリバンク＃１に対応するメモリ制御部＃１に送出され、開始フラグ付きパケットＰ３はメモリバンク＃２に対応するメモリ制御部＃２に送出される。
【００２８】
同様に、終了フラグ付きパケットＰＮ−３はメモリバンク＃０に対応するメモリ制御部＃０に送出され、終了フラグ付きパケットＰＮ−２はメモリバンク＃１に対応するメモリ制御部＃１に送出され、終了フラグ付きパケットＰＮ−１はメモリバンク＃２に対応するメモリ制御部＃２に送出され、終了フラグ付きパケットＰＮはメモリバンク＃３に対応するメモリ制御部＃３に送出される。
【００２９】
このようにして、開始フラグ付きパケットと終了フラグ付きパケットとが必ず各メモリ制御部１３２を通過する。あるメモリ制御部１３２を同じデータ転送処理に属する開始フラグ付きパケットと終了フラグ付きパケットとが通過した場合、そのメモリ制御部１３２を通過すべき一連のデータはすべて受理されたと判断することができる。各メモリ制御部１３２は、終了フラグ付きのパケットに含まれるデータの書き込みが完了した時、当該終了フラグ付きのパケットに付加されている転送処理識別子で指定されるデータ転送処理が完了したことを示す完了通知をパケット処理部１３１に発行する。パケット処理部１３１は、全てのメモリ制御部１３２から同一のデータ転送処理に関する完了通知を受信すると、当該データ転送処理の完了をプロセッサ１１に通知する。
【００３０】
なお、必ずしも開始フラグは必要ではなく、終了フラグを最後のＫ個のパケットそれぞれに対して付加すればよい。また、転送処理識別子も必ずしも各パケットに付加する必要はなく、最後のＫ個のパケットに対して付加すればよい。
【００３１】
次に、図４のフローチャートを参照して、プロセッサ１１によって実行される処理の手順について説明する。
【００３２】
プロセッサ１１は、まず、Ｉ／Ｏ側データ転送処理装置１２のパケット処理部１２１に対してデータ転送要求（ＤＭＡ転送要求）を発行する（ステップＳ１０１）。このデータ転送要求は、メモリ側データ転送処理装置１３を介して、あるいはプロセッサ１１とＩ／Ｏ側データ転送処理装置１２との間を直接接続するバスを介して、Ｉ／Ｏ側データ転送処理装置１２に送られる。データ転送要求は、データ送信元のＩ／Ｏデバイスを指定する送信元Ｉ／Ｏ情報、転送先のスタートメモリアドレスを指定する宛先アドレス情報、データ転送サイズを示すサイズ情報を含む。この後、プロセッサ１１は、データ送信元のＩ／Ｏデバイスに対応する転送制御部１２２に対して、データ転送の開始を指示する（ステップＳ１０２）。
【００３３】
この後、プロセッサ１１は、メモリ側データ転送処理装置１３から割込み（転送完了割り込み）が発生するまで待つ（ステップＳ１０３）。このステップＳ１０３においては、プロセッサ１１は、データ転送要求で要求したデータを扱う処理以外の他の任意の処理を行うことが出来る。メモリ側データ転送処理装置１３からの割込みによってデータ転送処理の完了が通知されると、プロセッサ１１は、メモリ上に転送された当該データの処理を開始する（ステップＳ１０４）。別のデータ転送を実行する場合には（ステップＳ１０５のＹＥＳ）、プロセッサ１１は、Ｉ／Ｏ側データ転送処理装置１２のパケット処理部１２１に対してデータ転送要求（ＤＭＡ転送要求）を発行する（ステップＳ１０６）。
【００３４】
次に、図５のフローチャートを参照して、Ｉ／Ｏ側データ転送処理装置１２によって実行される処理の手順を説明する。
【００３５】
Ｉ／Ｏ側データ転送処理装置１２のパケット処理部１２１は、Ｉ／Ｏ転送制御部１２２から転送されるデータを所定サイズのデータブロックに単位に分割し、そのデーブロック毎にパケットを作成する（ステップＳ１１１）。この場合、パケット処理部１２１は、転送開始から最初の４個のパケットには開始フラグをセットし、最後の４個のパケットには終了フラグをセットする（ステップＳ１１２〜Ｓ１１４）。パケット処理部１２１は、作成したパケットをその作成順にメモリ側データ転送処理装置１３に順次送信する（ステップＳ１１５）。もしプロセッサ１１から他のデータ転送要求を受けたならば（ステップＳ１１６のＹＥＳ）、パケット処理部１２１は、転送ＩＤ等を変更した後（ステップＳ１１７）、ステップＳ１１１〜Ｓ１１５の処理を実行する。
【００３６】
全てのパケット転送が完了すると、パケット処理部１２１は、プロセッサ１１からの終了指示を待つ（ステップＳ１１８）。終了指示を受信すると、パケット処理部１２１は、その終了指示によって指定されたＩ／Ｏデバイスによるデータ転送を終了させるための終了処理を実行する（ステップＳ１１９）。
【００３７】
なお、複数のＩ／Ｏデバイスそれぞれからメモリへの複数のデータ転送処理を並行して実行することもできる。
【００３８】
次に、図６のフローチャートを参照して、メモリ側データ転送処理装置１３によって実行される処理の手順を説明する。
【００３９】
メモリ側データ転送処理装置１３のパケット処理部１３１は、Ｉ／Ｏ側データ転送処理装置１２から送信されるパケットを受信する（ステップＳ１２１）。パケット処理部１３１は、受信したパケットの転送処理識別子（デバイスＩＤ、転送ＩＤ）をチェックし、新たなデータ転送処理に関するパケットであるか否かを判別する（ステップ１２２）。このステップ１２２では、デバイスＩＤと転送ＩＤの組み合わせが新しいものであるか否かをチェックすることによって、受信パケットが新たなデータ転送処理に関するパケットであるか否かが判別される。
【００４０】
受信パケットが新たなデータ転送処理に関するパケットであれば、つまり新規のデータ転送処理が開始されたならば（ステップＳ１２２のＹＥＳ）、パケット処理部１３１は、受信パケットに開始フラグが付加されているかどうかを判別する（ステップＳ１２３）。開始フラグが付加されているならば（ステップＳ１２３のＹＥＳ）、パケット処理部１３１は、新規のデータ転送処理を管理するためのリストを作成する（ステップＳ１２５）。
【００４１】
作成されたリストには、図７に示すように、新規のデータ転送処理に対応する転送処理識別子が対応付けられる。また、このリストには、受信した開始フラグ付きパケットの数（開始パケット数）を記憶するエリアと、受信した終了フラグ付きパケットの数（終了パケット数）を記憶するエリアと、完了通知を記憶するための４個のエリアとが設けられている。
【００４２】
ステップＳ１２５では、開始パケット数＝１に設定する処理も行われる。この後、パケット処理部１３１は、受信パケットをその受信パケットの宛先アドレスで指定されるメモリ制御部１３２に送出して当該メモリ制御部１３２に書き込みを指示する（ステップＳ１２６）。一方、開始フラグが付加されていないならば（ステップＳ１２３のＮＯ）、パケット処理部１３１は、異常発生をプロセッサ１１に通知する（ステップＳ１２４）。
【００４３】
受信パケットが新たなデータ転送処理に関するパケットではなく、既存のデータ転送処理に関するパケットであれば（ステップＳ１２２のＮＯ）、パケット処理部１３１は、受信パケットに開始フラグ／終了フラグが付加されているかどうかを判別する（ステップＳ１２７，Ｓ１２９）。開始フラグが付加されているならば（ステップＳ１２７のＹＥＳ）、パケット処理部１３１は、受信パケットの転送処理識別子に対応するリストの開始パケット数の値を＋１増加した後（ステップＳ１２８）、受信パケットをその受信パケットの宛先アドレスで指定されるメモリ制御部１３２に送出して当該メモリ制御部１３２に書き込みを指示する（ステップＳ１２６）。終了フラグが付加されているならば（ステップＳ１２９のＹＥＳ）、パケット処理部１３１は、受信パケットの転送処理識別子に対応するリストの終了パケット数の値を＋１増加した後（ステップＳ１３０）、当該リストの開始パケット数と終了パケット数が一致するかいなかを判断する（ステップＳ１３１）。
【００４４】
開始パケット数と終了パケット数が一致しないならば（ステップＳ１３１のＮＯ）、パケット処理部１３１は、受信パケットをその受信パケットの宛先アドレスで指定されるメモリ制御部１３２に送出して当該メモリ制御部１３２に書き込みを指示する（ステップＳ１２６）。
【００４５】
開始パケット数と終了パケット数が一致したならば（ステップＳ１３１のＹＥＳ）、パケット処理部１３１は、現在の開始パケット数／終了パケット数の値が、メモリバンクの個数に一致するかどうかを判別する（ステップＳ１３２）。
【００４６】
現在の開始パケット数／終了パケット数の値がメモリバンクの個数に一致するならば（ステップＳ１３２のＹＥＳ）、パケット処理部１３１は、受信パケットに付加された転送処理識別子で指定されるデータ転送処理に関する全てのパケットの受信を完了したことを、当該転送処理識別子に対応するリストに記録した後（ステップＳ１３４）、受信パケットをその受信パケットの宛先アドレスで指定されるメモリ制御部１３２に送出して当該メモリ制御部１３２に書き込みを指示する（ステップＳ１２６）。
【００４７】
現在の開始パケット数／終了パケット数の値がメモリバンクの個数に一致しないならば（ステップＳ１３２のＮＯ）、パケット処理部１３１は、プロセッサ１１に異常発生を通知する（ステップＳ１３３）。
【００４８】
ステップＳ１２６においては、各メモリ制御部１３２は、パケット処理部１３１から送出されたパケットをメモリバンクに書き込む。終了フラグが付加されたパケットに含まれるデータをメモリバンクに書き込む処理が完了した時、各メモリ制御部１３２は、その終了フラグが付加されたパケットに付加された転送処理識別子に対応するリストに、書き込み完了を示す完了通知を記録する。
【００４９】
パケット処理部１３１は、作成されている各リスト毎に、全パケットを受信完了し、且つ全てのメモリ制御部１３２からの完了通知を受信したかどうかを判別する（ステップＳ１３５）。全パケットを受信完了し、且つ全てのメモリ制御部１３２からの完了通知を受信したリストがあれば（ステップＳ１３５）、パケット処理部１３１は、当該リストに対応するデータ転送処理の完了を割り込み信号によってプロセッサ１１に通知する（ステップＳ１３６）。もちろん、全パケットの受信完了を検出するための処理を実行せず、全てのメモリ制御部１３２から完了通知を受信したか否かのみによって、データ転送処理の完了の有無を判断してもよい。
【００５０】
以上のように、本実施形態によれば、最後のＫ個のパケットそれぞれに終了フラグと転送処理識別子とが付加されているので、全てのメモリ制御部１３２に終了フラグ付きのパケットを送出することが出来る。
【００５１】
よって、メモリ側データ転送処理装置１３においては、同一のデータ転送処理に関する完了通知が全てのメモリ制御部１３２から発行されたか否かによって、当該データ転送処理の完了の有無を正しく判断することが出来る。また、転送対象のパケット数はデータ転送処理毎に異なる可能性があるが、本実施形態では、転送されたパケット数をカウントする必要はない。よって、転送対象のパケット数によらず、どのデータ転送処理についても共通の手順で転送完了を正しく検出することが出来る。
【００５２】
また、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００５３】
【図１】本発明の一実施形態に係るデータ処理装置の構成を示すブロック図。
【図２】図１のデータ処理装置に設けられたＩ／Ｏ側データ転送処理装置によって生成されるパケットの構造を説明するための図。
【図３】図１のデータ処理装置に設けられたメモリ側データ転送処理装置の複数のメモリ制御部にパケットが振り分けられる様子を示す図。
【図４】図１のデータ処理装置に設けられたプロセッサによって実行される処理の手順を示すフローチャート。
【図５】図１のデータ処理装置に設けられたＩ／Ｏ側データ転送処理装置によって実行される処理の手順を示すフローチャート。
【図６】図１のデータ処理装置に設けられたメモリ側データ転送処理装置によって実行される処理の手順を示すフローチャート。
【図７】図１のデータ処理装置で用いられるデータ転送処理管理用リストの例を示す図。
【符号の説明】
【００５４】
１１…プロセッサ、１２…Ｉ／Ｏ側データ転送処理装置、１３…メモリ側データ転送処理装置、１４…Ｉ／Ｏデバイス、１５…メモリバンク、１２１，１３１…パケット処理部、１２２…転送制御部、１３２…メモリ制御部。
【図１】
2005346164.tif 000003
【図２】
2005346164.tif 000004
【図３】
2005346164.tif 000005
【図４】
2005346164.tif 000006
【図５】
2005346164.tif 000007
【図６】
2005346164.tif 000008
【図７】
2005346164.tif 000009
【手続補正書】
【提出日】平成17年3月30日(2005.3.30)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
特許文献１には、実行されたデータ転送数と予め指定された総データ転送数とが一致したことを条件にＤＭＡ転送の完了を検知するＤＭＡ転送制御装置が開示されている。
【特許文献１】特開平５−３３４２３２号公報