(57)【要約】【課題】回路規模や配線増大を抑制しつつ複数のプログラムによる同時並行的なＤＭＡ転送を行うことである。【解決手段】複数のプログラムにより、データを格納するメモリとＤＭＡデバイスとの間でのＤＭＡデータ転送を次のように行う。ＣＰＵから指示されたデータ転送命令を格納媒体に格納し、複数のプログラムそれぞれに対応するデータ転送命令が格納された前記格納手段のアドレスを複数のカウンタにセットする。また、ＤＭＡデバイスからのデータ転送要求に基いて、複数のカウンタを切り替えながら、複数のカウンタにセットされたアドレスを用いて前記格納手段に格納されたデータ転送命令に従ってメモリとＤＭＡデバイスとの間でのＤＭＡデータ転送を実行する。このとき、実行するデータ転送命令のアドレスを格納するカウンタのカウンタ識別子をＤＭＡデバイスに出力する。【選択図】  図１
2014048954.tif 000002
【特許請求の範囲】
【請求項１】
複数のプログラムによるＤＭＡデータ転送を制御するデータ転送装置であって、
データを格納するメモリと、
ＣＰＵから指示されたデータ転送命令を格納する格納手段と、
前記複数のプログラムそれぞれに対応するデータ転送命令が格納された前記格納手段のアドレスがセットされた複数のカウンタと、
前記複数のカウンタのカウンタ識別子それぞれに対応させた、アドレスを格納する複数のレジスタを備えたＤＭＡデバイスと、
前記ＤＭＡデバイスからのデータ転送要求に基いて、前記複数のカウンタを切り替えながら、前記複数のカウンタにセットされたアドレスを用いて前記格納手段に格納されたデータ転送命令に従って前記メモリと前記ＤＭＡデバイスとの間でのＤＭＡデータ転送を実行するとともに、実行する前記データ転送命令のアドレスを格納するカウンタのカウンタ識別子を前記ＤＭＡデバイスに出力する実行手段とを有することを特徴とするデータ転送装置。
【請求項２】
前記ＤＭＡデバイスへのデータ転送時、前記ＤＭＡデバイスは、前記カウンタ識別子とデータを受信し、前記受信したカウンタ識別子に対応するレジスタに格納されたアドレスを参照して前記受信したデータを前記アドレスに対応する処理ユニットに出力することを特徴とする請求項１に記載のデータ転送装置。
【請求項３】
前記ＤＭＡデバイスからのデータ転送時、前記ＤＭＡデバイスは、前記カウンタ識別子を受信し、前記受信したカウンタ識別子に対応するレジスタに格納されたアドレスを参照して処理ユニットのバッファに格納されているデータを読み出して転送することを特徴とする請求項１又は２に記載のデータ転送装置。
【請求項４】
前記実行手段からの制御信号に従って、前記複数のカウンタのいずれかを選択する選択手段と、
前記選択手段により選択されたカウンタにセットされたアドレスを用いて前記格納手段にアクセスして格納されたデータ転送命令を読み出してデコードするデコード手段とをさらに有することを特徴とする請求項１乃至３のいずれか１項に記載のデータ転送装置。
【請求項５】
複数のプログラムにより、データを格納するメモリとＤＭＡデバイスとの間でのＤＭＡデータ転送を制御するデータ転送方法であって、
ＣＰＵから指示されたデータ転送命令を格納手段に格納する格納工程と、
前記複数のプログラムそれぞれに対応するデータ転送命令が格納された前記格納手段のアドレスを複数のカウンタにセットする設定工程と、
前記ＤＭＡデバイスからのデータ転送要求に基いて、前記複数のカウンタを切り替えながら、前記複数のカウンタにセットされたアドレスを用いて前記格納手段に格納されたデータ転送命令に従って、前記メモリと前記ＤＭＡデバイスとの間でのＤＭＡデータ転送を実行するとともに、実行する前記データ転送命令のアドレスを格納するカウンタのカウンタ識別子を前記ＤＭＡデバイスに出力する実行工程とを有することを特徴とするデータ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ転送装置及びデータ転送方法に関し、特に、ＤＭＡデータ転送を行うデータ転送装置及びデータ転送方法に関する。
【背景技術】
【０００２】
ＣＰＵに負荷をかけることなくデータを転送するために、従来、ダイレクトメモリアクセス（ＤＭＡ）を採用した装置が提案されている。例えば、特許文献１に開示されているデータ転送装置には、図７に示すように３つのプログラムカウンタ（ＰＣ）３−１、３−２、３−３とこれらに格納された３つのアドレスのいずれかを選択するＰＣ選択部４が備えられている。そして、ＰＣ選択部４で選択されたアドレスに格納されている命令は一度、命令メモリ５に格納され、命令デコード部６でその命令がデコードされる。その命令に基づいて、データ転送実行部７がＤＭＡポート７−１もしくは７−２を介してＤＭＡデバイス１−１もしくは１−２にデータを転送する。
【０００３】
この構成では、複数のＰＣとそれに対応した複数のＤＭＡポートを用いることで、複数のプログラムを同時並行的に実行し、プログラムに従ったデータ転送を行うことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３５２５９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１に開示されたような従来例では、複数のプログラムで同時並行的にデータ転送を行うため、各プログラムにそれぞれ割当てられた複数のＤＭＡポートを用いる必要がある。また、複数のＤＭＡポートを備えた場合、各ＤＭＡポートに接続されたＤＭＡデバイスに対して共通バスに接続する際は、各ＤＭＡデバイスへの配線や制御回路が必要となってしまう。このように、ＤＭＡポートの増大は回路規模や配線が増加してしまうという課題がある。
【０００６】
本発明は上記従来例に鑑みてなされたもので、回路規模や配線増大を抑制しつつ複数のプログラムによる同時並行的なＤＭＡデータ転送が可能なデータ転送装置及びデータ転送方法とを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明のデータ転送装置は、次のような構成を有する。
【０００８】
即ち、複数のプログラムによるＤＭＡデータ転送を制御するデータ転送装置であって、データを格納するメモリと、ＣＰＵから指示されたデータ転送命令を格納する格納手段と、前記複数のプログラムそれぞれに対応するデータ転送命令が格納された前記格納手段のアドレスがセットされた複数のカウンタと、前記複数のカウンタのカウンタ識別子それぞれに対応させた、アドレスを格納する複数のレジスタを備えたＤＭＡデバイスと、前記ＤＭＡデバイスからのデータ転送要求に基いて、前記複数のカウンタを切り替えながら、前記複数のカウンタにセットされたアドレスを用いて前記格納手段に格納されたデータ転送命令に従って前記メモリと前記ＤＭＡデバイスとの間でのＤＭＡデータ転送を実行するとともに、実行する前記データ転送命令のアドレスを格納するカウンタのカウンタ識別子を前記ＤＭＡデバイスに出力する実行手段とを有することを特徴とする。
【発明の効果】
【０００９】
従って本発明によれば、複数のプログラムに従ったデータを転送する際に、共通のポートを介してＤＭＡデバイスに転送できるので、回路の規模や配線の増大を抑制しつつ複数のプログラムに従った同時並行的なデータ転送を行うことができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施形態であるデータ転送部を含んだデータ処理装置の構成を示すブロック図である。
【図２】データ転送部の構成を示すブロック図である。
【図３】データ転送部の動作手順を示すフローチャートである。
【図４】データ転送部とＤＭＡデバイス間の信号プロトコルを示すタイミングチャートである。
【図５】ＤＭＡデバイスからのデータ転送時におけるデータ転送部の動作手順を示すフローチャートである。
【図６】ＤＭＡデバイスからのデータ転送時におけるＤＭＡデバイスの動作手順を示すフローチャートである。
【図７】従来技術に従うデータ転送装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１１】
以下添付図面を参照して本発明の実施形態の一例について詳細に説明する。
【００１２】
なお、この明細書において、「記録」（以下、「プリント」とも称する）とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わず、広く記録媒体上に画像、模様、パターン等を形成する、又は媒体の加工を行う場合も表すものとする。また、人間が視覚で知覚し得るように顕在化したものであるか否かを問わない。
【００１３】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、広く、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等、インクを受容可能なものも表すものとする。
【００１４】
図１は、本発明の実施形態であるデータ転送部を含んだデータ処理装置１０１のブロック図である。
【００１５】
図１において、ＣＰＵ１０２は内蔵ＲＯＭ（不図示）に格納されたプログラムに従ってデータ処理を行う演算回路として動作する。データ転送部１０５は内蔵されたメモリ（不図示）に記憶されたプログラムに従って、メモリ１０４とＤＭＡデバイス１０６との間のＤＭＡデータ転送を制御する。ＣＰＵ１０２はデータ転送部１０５にも接続され、データ転送の開始や終了などのメッセージとデータ転送部１０５へのプログラムの転送を行う。
【００１６】
データ転送部１０５はプログラム（スレッド）を所定の単位で切り替えながら異なるデータを転送する。これにより見かけ上、複数の異なるデータが同時並行的に処理されることになる。データ転送部１０５は処理対象のデータを転送する際、当該データの転送に同期させて、当該データに対応したプログラム（スレッド）を識別する情報（ＰＧＮｕｍ）を転送する。
【００１７】
ＤＭＡデバイス１０６はデータ転送部１０５からデータ及びＰＧＮｕｍを受信し、その受信データを及びＰＧＮｕｍに従ってＩＰ＿Ａ１０７、ＩＰ＿Ｂ１０８、ＩＰ＿Ｃ１０９に転送する機能を有している。ＩＰ＿Ａ１０７、ＩＰ＿Ｂ１０８、ＩＰ＿Ｃ１０９は所定の画像処理を実行するプロセッサ（Ｉｍａｇｅ  Ｐｒｏｃｅｓｓｏｒ）であり、それぞれ異なる画像処理を実行可能な機能ブロック（処理ユニット）である。
【００１８】
ここで、ＤＭＡデバイス１０６の動作について説明する。
【００１９】
ＤＭＡデバイス１０６は、ＩＰ＿Ａ１０７、ＩＰ＿Ｂ１０８、ＩＰ＿Ｃ１０９と接続されており、ＩＰ１０７〜１０９のアドレス空間は分離するようにマッピングされている。ＤＭＡデバイス１０６は、プログラムカウンタ番号ごとにアドレスを管理するレジスタ１１０、１１１、１１２を備えており、ＣＰＵ１０２により各ＩＰ１０７〜１０９に対応したアドレスが書き込まれる。レジスタ１１０、１１１、１１２には夫々、アドレスＡ、アドレスＢ、アドレスＣがセットされる。ＤＭＡデバイス１０６は処理対象のデータとともに送られてくるＰＧＮｕｍによって受信したデータがどのプログラムに対応したものであるかが分かるので、それに従ったＩＰにデータを転送する。
【００２０】
データ処理装置１０１は、例えば、インクジェット記録ヘッドを搭載した記録装置に適用される。この記録装置は、インクジェット記録ヘッドを搭載したキャリッジを往復走査して記録媒体にインクを吐出するエンジン部と、ホストと接続して画像データを受信し、画像処理や記録制御を行う印刷制御部と備える。この印刷制御部は、ＣＰＵやメモリやホストとのインタフェースを備えるが、このメモリへのデータの入出力にＤＭＡ転送が用いられ処理の高速化が図られている。この印刷制御部にデータ処理装置１０１が組み込まれ、データ転送の高速化を図っているものである。特に、記録媒体のサイズがＡ０、Ｂ０サイズなどの大判の記録用紙を用いる場合、この記録装置が扱う画像データ量も膨大になり、ここで説明するようなＤＭＡ転送を実行するデータ処理装置を適用することにより処理の高速化の点で効果は著しい。記録媒体のサイズがＡ４、Ｂ４サイズのオフィス用、個人用のインクジェット記録装置にも、このデータ処理装置が適用可能である。
【００２１】
なお、適用される記録装置は、上記構成のインクジェット記録装置のみならず、電子写真方式、昇華方式、熱転写方式など、他の記録方式を適用した多くの種類の記録装置に及ぶ。
【００２２】
図２はデータ転送部１０５の詳細な構成を示すブロック図である。ここでは、特に、ＤＭＡデバイス１０６への出力転送を例に図示している。
【００２３】
図２において、プログラムカウンタ（ＰＣ）更新部２００によりプログラムカウンタ（ＰＣ）２０１、２０２、２０３にセットされたアドレスは、メモリ２０６に格納された転送命令のアドレスを示すものである。プログラムカウンタ（ＰＣ）選択部２０４はプログラムカウンタ２０１、２０２、２０３のいずれか値をデータ転送実行部２０８からの制御信号に基づいて選択する。
【００２４】
なお、プログラムカウンタ２０１〜２０３の値（ＰＧＮｕｍ＝＃１、ＰＧＮｕｍ＝＃２、ＰＧＮｕｍ＝＃３）とレジスタ１１０〜１１２にセットされたアドレス（アドレスＡ、アドレスＢ、アドレスＣ）とは対応づけられている。即ち、ＰＧＮｕｍ＝＃１の場合、ＩＰ１０７が選択され、ＰＧＮｕｍ＝＃２の場合、ＩＰ１０８が選択され、ＰＧＮｕｍ＝＃３の場合、ＩＰ１０９が選択される。そして、ＰＧＮｕｍによって選択されたＩＰに画像データが転送され、画像処理が実行される。
【００２５】
アドレス（ａｄｒ）選択部２０５はメモリ２０６へのアクセスアドレスを切り替える。ＣＰＵ１０２からライトアクセスがある場合、ＣＰＵ１０２からのアドレスを選択するとともに、メモリ２０６にデータをライトするシーケンスを発生させ（不図示）、所望のアドレスにデータをライトする。命令デコード部２０７はメモリ２０６から読み込んだデータ転送命令を解読し、データ転送方向、データ転送先、データ転送元などを判定する。
【００２６】
データ転送実行部２０８は、命令デコード部２０７で解読したデータ転送命令に従ってＤＭＡポート２０９もしくはＣＰＵバス２１０を駆動してメモリ１０４とＤＭＡデバイス１０６とのデータ転送を実行する。また、データ転送実行部２０８はデータ転送部１０５のプログラムカウンタ番号の管理も担っている。ＤＭＡポート２０９は複数のプログラムに従ったデータの転送用に共用される。
【００２７】
なお、ＤＭＡデバイス１０６がデータ転送要求（ＤＭＡ＿Ｒｅｑ）信号をアサートすることで、ＤＭＡポート２０９とＤＭＡデバイス１０６との間のデータ転送が開始される。
【００２８】
次にデータ転送部の実際の動作をフローチャートを参照して説明する。
【００２９】
図３はデータ転送部１０５の動作概要を示すフローチャートである。
【００３０】
まず、ステップＳ３０１では、ＣＰＵ１０２がデータ転送部１０５のメモリ２０６に、３種類のデータ転送用のプログラムを書き込む。さらに、ステップＳ３０２では、ＣＰＵ１０２がデータ転送実行部２０８にプログラムを起動するように設定する。
【００３１】
ステップＳ３０３では、データ転送実行部２０８はプログラムカウンタ選択部２０４に対して制御信号を発行し、プログラムカウンタ２０１を選択するよう指示する。これにより、プログラムカウンタ２０１の値が示すメモリ２０６のアドレスに格納されている命令データが読み出され、命令デコード部２０７へ渡される。ステップＳ３０４では、受信したデータをデコードし、データ転送命令としてデータ転送実行部２０８へ伝達する。
【００３２】
ステップＳ３０５では受信したデータ転送命令に従って、データ転送実行部２０８は、メモリ１０４にリード要求を行う。ステップＳ３０６では、これに応じて、メモリ１０４から読み込んだ処理対象のデータを、どのプログラムに従ったデータかを識別するためのＰＧＮｕｍの情報とともにＤＭＡポート２０９を経て、ＤＭＡデバイス１０６へ転送する。
【００３３】
なお、ステップＳ３０３〜Ｓ３０６はパイプライン動作により実行される。例えば、ステップＳ３０３は、最初にプログラムカウンタ２０１を選択、次にプログラムカウンタ２０２を選択、その次はプログラムカウンタ２０３を選択というように、実行中のプログラムカウンタを順次選択していく。そして、所定単位毎に処理対象のプログラムを切り替えながら処理を進める。プログラムが最後まで実行されると、当該プログラムカウンタを除いたプログラムカウンタを順次選択し、すべてのプログラムが最後まで実行されるまで継続する。
【００３４】
ステップＳ３０４の命令デコードについても同様にステップＳ３０３で選択されたプログラムカウンタのアドレスに格納されている命令を順次デコードする。ステップＳ３０３やステップＳ３０４はデータ転送実行部２０８の動作状況に応じて一時停止することが可能である。即ち、ステップＳ３０３とステップＳ３０４がパイプライン動作することで、ステップＳ３０５において命令実行のための待ち時間を少なくすることが可能である。
【００３５】
ステップＳ３０７ではすべてのプログラムが実行されデータが転送されたかどうかを確認する。そして、転送未完了であれば、処理はステップＳ３０３に戻るが、転送終了と判断されれば、ＣＰＵ１０２へ割り込みをアサートし、データ転送が完了したことを通知して処理を終了する。
【００３６】
図４は、データ転送実行部２０８のＤＭＡポート２０９とＤＭＡデバイス１０６との間のプロトコルを説明するタイミングチャートである。
【００３７】
図４において、ＣＬＫ４０１はデータ転送実行部２０８とＤＭＡデバイス１０６で使用するクロック信号であり、立ち上がりエッジを利用した同期回路で構成されている。Ｄａｔａ４０２はデータ転送実行部２０８がデータ転送のために使用するデータ、ＰＧＮｕｍ４０３はプログラムカウンタ２０１〜２０３のどのプログラムによってデータを転送されているかを示すプログラムカウンタ番号である。ＤＭＡ＿Ｒｅｑ４０４はＤＭＡデバイス１０６のデータ転送部１０５に対するデータ要求信号、ＤＭＡ＿Ａｃｋ４０５はデータ転送実行部２０８がＤＭＡポート２０９にデータを出力していることを示すデータ出力信号である。
【００３８】
ここで、図４に示すタイミングチャートを参照して、ＤＭＡ処理フローを説明する。
【００３９】
クロックサイクル２（ＣＬＫ２）でＤＭＡデバイス１０６が、ＤＭＡ＿Ｒｅｑ４０４（データ要求信号）をアサートする。データ転送実行部２０８は、次のサイクル以降（ＣＬＫ３以降）で転送データの出力を試みる。
【００４０】
図４によれば、クロックサイクル３、４（ＣＬＫ３、４）では出力データの準備ができていないため、ＤＭＡ＿Ａｃｋ４０５（データ出力信号）はディアサートの状態を出力している。クロックサイクル５（ＣＬＫ５）で出力データの準備が完了したので、ＤＭＡ＿Ａｃｋ４０５（データ出力信号）をアサートするとともに、Ｄａｔａ４０２（データ）とＤａｔａ４０２（データ）のＰＧＮｕｍ４０３（プログラムカウンタ番号）に＃１を出力する。
【００４１】
この実施形態では、プログラムカウンタ２０１〜２０３の値として、プログラムカウンタ番号＃１、＃２、＃３が、それぞれ対応している。クロックサイクル６（ＣＬＫ６）でＤＭＡデバイス１０６は、ＤＭＡ＿Ａｃｋ（データ出力信号）がアサートされていることを確認するとＤａｔａ４０２（データ）とＰＧＮｕｍ４０３（プログラムカウンタ番号）を受信する。
【００４２】
このようにしてＤＭＡ＿Ｒｅｑ４０４（データ要求信号）とＤＭＡ＿Ａｃｋ４０５（データ出力信号）とが同時アサートされたクロックサイクルのＤａｔａ４０２（データ）とＰＧＮｕｍ４０３（プログラムカウンタ番号）を有効データとして扱うことができる。
【００４３】
次に、データ転送実行部２０８はクロックサイクル８（ＣＬＫ８）でプログラムカウンタ２０２のデータを出力し、クロックサイクル９（ＣＬＫ９）でＤＭＡデバイス１０６がデータとプログラムカウンタ番号を受信する。同様に、クロックサイクル９（ＣＬＫ９）でデータ転送実行部２０８が出力したデータとプログラムカウンタ番号をクロックサイクル１０（ＣＬＫ１０）でＤＭＡデバイス１０６が受信する。
【００４４】
さらに図４を参照してＤＭＡデバイス１０６の動作を説明する。
【００４５】
ＤＭＡデバイス１０６は、クロックサイクル６（ＣＬＫ６）でＤａｔａ４０２（データ）とＰＧＮｕｍ４０３（プログラムカウンタ番号）を受信する。受信したプログラムカウンタ番号が＃１であることからレジスタ１１０に格納されたアドレスＡの値を参照する。ＤＭＡデバイス１０６は、そのアドレス値とデータ転送部１０５から受信したＤａｔａ（データ）をＩＰ１０７、１０８、１０９に接続されたバス（ＩＰバス）へ出力する。同様に、クロックサイクル９（ＣＬＫ９）で受信したデータはプログラムカウンタ番号が＃２であることから、レジスタ１１１に格納されたアドレスＢの値を参照し、ＩＰバスへ出力する。同様に、クロックサイクル１０（ＣＬＫ１０）での受信データもレジスタ１１２に格納されたアドレスＣの値を参照しＩＰバスへ出力する。
【００４６】
なお、ＤＭＡデバイスからデータ転送部にデータを転送する場合にはデータ転送部１０５における処理動作は次のようになる。
【００４７】
図５はＤＭＡデバイスからデータ転送部へのデータ転送時におけるデータ転送部１０５における動作概要を示すフローチャートである。なお、図５において、既に図３を参照して説明したのと同じ処理ステップについては同じステップ参照番号を付してその説明は省略する。図３と図５とを比較すると分かるように、動作全体としては基本的に図３に示したものと同じであるが、ステップＳ３０４における受信したデータをデコードする処理以降のデータ転送する方向が異なっている。
【００４８】
具体的には、ステップＳ３０５ａではＤＭＡデバイス１０６からデータリードを行い、ステップＳ３０６ａでは、ステップＳ３０５ａで読み込んだデータをメモリ１０４へ転送する。
【００４９】
次に、ＤＭＡデバイスからデータ転送部へのデータ転送時のＤＭＡデバイスの動作について説明する。
【００５０】
図６はＤＭＡデバイスからデータ転送部へのデータ転送時のＤＭＡデバイス１０６における動作概要を示すフローチャートである。
【００５１】
ステップＳ６０１ではＣＰＵ１０２が、各ＩＰ１０７〜１０９からＤＭＡデバイス１０６を介してデータ転送部１０５に転送するデータの、先頭アドレスと転送データ量をＤＭＡデバイス１０６に書き込む。ステップＳ６０２では、ＤＭＡデバイス１０６は各ＩＰから書き込まれたアドレス情報と転送データ量との情報をもとに、ＩＰ１０７〜１０９から読み込んだデータを格納するバッファに対して順次、データを読み込み格納する。
【００５２】
ステップＳ６０３では、データ転送中のＩＰのバッファが空でないかを確認し、空であればデータの準備が完了したと判断する。ステップＳ６０４では、データ転送部１０５に対してＤＭＡ  Ｒｅｑ４０４（データ要求信号）をアサートする。
【００５３】
ステップＳ６０５では、データ転送部１０５がプログラムカウンタ番号とともにＤＭＡ＿Ａｃｋ４０５（データ出力信号）をアサートする。ＤＭＡデバイス１０６は、ＲＧＮｕｍ４０３とＤＭＡ＿Ａｃｋ４０５に従って、ＤＭＡデバイス１０６のレジスタに格納されたアドレス番号に対応したＩＰのバッファに格納されているデータを、Ｄａｔａ４０２（データ）として読み出す。このようにして、プログラムカウンタ番号に対応したデータが転送される。
【００５４】
ステップＳ６０６では、ステップＳ６０１で設定された転送データ量分の転送が完了したＩＰがあるか確認し、完了したものがあれば、処理はステップＳ６０７に進む。そして、当該ＩＰのバッファは空であっても問題ないため、以降のデータ準備完了判定の対象からそのＩＰを除外する。これに対して、ステップＳ６０１で設定された転送データ量分の転送が完了したＩＰがない場合、処理はステップＳ６０７をスキップする。ステップＳ６０８では、すべてのＩＰがステップＳ６０１で設定された転送データ量分の転送が完了したかを確認し、すべて完了していなければ再び処理はステップＳ６０２へ戻りデータ転送を継続する。すべて完了していた場合はデータ転送処理を終了する。
【００５５】
従って以上説明した実施形態によれば、データ転送部からプログラムカウンタ番号をデータと同期してＤＭＡデバイスへ伝達することで、ＤＭＡデバイスはオーバヘッドなしにデータ転送を行ったプログラムの判定をすることができる。また、図１に示した通り、複数のＩＰ（本実施形態では３つ）に対して、データ転送用の１つのＤＭＡポート、１つのＤＭＡデバイス、１つのＣＰＵとのインタフェースでデータ転送部を実現できる。
【００５６】
従って、プログラムの数に応じたＤＭＡポートを用いるものに比べ、回路規模や信号配線数の増大を抑制できる。また、ＤＭＡポートを複数とし、１つのＤＭＡポートを複数のプログラムによって共用するようにすれば、使用するプログラムの数よりもＤＭＡポートの数を少なくすることができるので、この場合も回路規模や配線数の増大を抑制できる。なお、本実施形態ではプログラムに従った転送先をＩＰとしたが、これに限らず他の処理ユニットに置き換えることも可能である。
【００５７】
また、以上説明した実施形態ではプログラムカウンタが３つの例を用いて説明したが、本発明はこれによって限定されるものではない。他の数のプログラムカウンタを備えていても良い。また、プログラムの識別には数字以外の識別子（例えば、カウンタ識別子）を用いても構わない。さらに、データ転送部とＤＭＡデバイスとの間でやりとりする信号についても上記説明した例は１例に過ぎず、これ以外のプロトコルも本発明に適用可能である。
【図１】
2014048954.tif 000003
【図２】
2014048954.tif 000004
【図３】
2014048954.tif 000005
【図４】
2014048954.tif 000006
【図５】
2014048954.tif 000007
【図６】
2014048954.tif 000008
【図７】
2014048954.tif 000009