(57)【要約】【課題】複数の処理を並行して実行する場合であっても、入力データと出力データとの対応関係を維持することが可能な情報処理装置を提供する。【解決手段】処理対象のデータが格納されたアドレスを示す入力アドレス情報、及び処理後のデータの格納先アドレスを示す出力アドレス情報をそれぞれ含む複数のディスクリプタが格納されたメモリと、複数のディスクリプタの各々から得られる入力アドレス情報にしたがって処理対象のデータをメモリから読み出し、該データに対して所定の処理を実行し、出力アドレス情報にしたがって処理後のデータをメモリへ書き戻す、複数の所定の処理を並列に実行可能なストリームプロセッサとを有する構成とする。【選択図】図１
2006139766.tif 000002
【特許請求の範囲】
【請求項１】
処理対象のデータが格納されたアドレスを示す入力アドレス情報、及び処理後のデータの格納先アドレスを示す出力アドレス情報をそれぞれ含む複数のディスクリプタが格納されたメモリと、
前記複数のディスクリプタの各々から得られる前記入力アドレス情報にしたがって前記処理対象のデータを前記メモリから読み出し、該データに対して所定の処理を実行し、前記出力アドレス情報にしたがって処理後のデータを前記メモリへ書き戻す、複数の前記所定の処理を並列に実行可能なストリームプロセッサと、
を有する情報処理装置。
【請求項２】
前記ストリームプロセッサは、
複数の前記所定の処理を並列に実行可能なプロセッサグループと、
前記メモリから前記複数のディスクリプタを取得し、該複数のディスクリプタの各々に含まれる前記入力アドレス情報にしたがって処理対象のデータを前記メモリから読み出し前記プロセッサグループへ供給する入力ＤＭＡと、
前記複数のディスクリプタの各々に含まれる前記出力アドレス情報にしたがって前記プロセッサグループの処理結果を前記メモリへ書き戻すメモリアクセス制御回路と、
を有する請求項１記載の情報処理装置。
【請求項３】
前記複数のディスクリプタの各々は、
該複数のディスクリプタ各々を識別するための識別子を備え、
前記ストリームプロセッサは、
前記メモリから取得した前記複数のディスクリプタが前記識別子毎に格納されるディスクリプタ管理テーブルを有し、
前記入力ＤＭＡは、
前記複数のディスクリプタと共に前記識別子を前記プロセッサグループへ供給し、
前記メモリアクセス制御回路は、
前記プロセッサグループから出力される前記識別子を用いて前記ディスクリプタ管理テーブルに格納された対応するディスクリプタから前記出力アドレス情報を読み出し、前記プロセッサグループの処理結果を前記メモリへ書き戻す請求項２記載の情報処理装置。
【請求項４】
前記入力ＤＭＡは、
前記複数のディスクリプタで指定された前記処理対象のデータの全てを前記プロセッサグループへ転送すると、全データの転送完了を示す完了信号を前記ディスクリプタ管理テーブルへ送信し、
前記ディスクリプタ管理テーブルは、
前記完了信号を受信するまで対応するディスクリプタの削除を保留する請求項３記載の情報処理装置。
【請求項５】
前記プロセッサグループは、
前記複数のディスクリプタの各々に含まれる前記入力アドレス情報にしたがって読み出した処理対象のデータに対する処理が完了すると、該データの終わりを示すエンド信号を出力する請求項３記載の情報処理装置。
【請求項６】
前記複数のディスクリプタ各々に前記データに対するアクセス権が前記ストリームプロセッサにあるか否かを示すオーナビットを備え、
前記入力ＤＭＡは、
前記複数のディスクリプタの各々に含まれる前記入力アドレス情報にしたがって処理対象のデータを前記メモリから読み出すと、前記メモリに格納されたディスクリプタに含まれる前記オーナビットを、前記ストリームプロセッサに前記アクセス権があることを示す値に更新する請求項３記載の情報処理装置。
【請求項７】
前記複数のディスクリプタ各々に、前記出力アドレス情報にしたがって前記ストリームプロセッサによる処理後のデータの前記メモリへの転送が完了したか否かを示すトランザクションコンプリートビットを備え、
前記メモリアクセス制御回路は、
前記プロセッサグループによる処理後のデータの前記メモリへの転送が全て完了したとき、対応するディスクリプタの前記トランザクションコンプリートビットを転送の完了を示す値に設定する請求項６記載の情報処理装置。
【請求項８】
前記情報処理装置は、
前記ストリームプロセッサの動作を制御するホストプロセッサを有し、
前記ホストプロセッサは、
前記複数のディスクリプタを、前記ストリームプロセッサからの連続した読み出しが可能に生成し、前記メモリに格納する請求項３記載の情報処理装置。
【請求項９】
前記ホストプロセッサは、
前記ストリームプロセッサで処理中のデータに一意に対応するディスクリプタを交互にポーリングし、該ディスクリプタの前記オーナビット及び前記トランザクションコンプリートビットをそれぞれ監視する請求項８記載の情報処理装置。
【請求項１０】
前記ホストプロセッサは、
前記ストリームプロセッサによるデータの処理が完了し、前記ホストプロセッサから該データに一意に対応するディスクリプタへのアクセスが可能になった時点で、該ディスクリプタに付与した識別子を他の処理対象のデータに一意に対応するディスクリプタへ割り付ける請求項８記載の情報処理装置。
【請求項１１】
前記ストリームプロセッサは、
処理実行中のディスクリプタを保持する一時記憶装置を有する請求項１記載の情報処理装置。
【請求項１２】
前記複数のディスクリプタの各々は、
該複数のディスクリプタ各々を識別するための識別子を備え、
前記一時記憶装置は、
前記メモリから取得した前記複数のディスクリプタが前記識別子毎に格納されるディスクリプタ管理テーブルである請求項１１記載の情報処理装置。
【請求項１３】
前記プロセッサグループは、
アレイ型プロセッサ、プログラマブルロジック、ハードワイヤードロジック、ＣＰＵまたはＤＳＰのうちの少なくともいずれか一つを備える請求項３記載の情報処理装置。
【請求項１４】
メモリから読み出したデータに対して複数の処理を並列に実行可能なストリームプロセッサであって、
処理対象のデータが格納されたアドレスを示す入力アドレス情報、及び処理後のデータの格納先アドレスを示す出力アドレス情報をそれぞれ含む複数のディスクリプタの各々から得られる、前記入力アドレス情報にしたがって前記処理対象のデータを前記メモリから読み出し、該データに対して所定の処理を実行し、前記出力アドレス情報にしたがって処理後のデータを前記メモリへ書き戻す、複数の前記所定の処理を並列に実行可能なストリームプロセッサ。
【請求項１５】
前記複数の所定の処理を並列に実行可能なプロセッサグループと、
前記複数のディスクリプタを前記メモリから取得し、該複数のディスクリプタの各々に含まれる入力アドレス情報にしたがって処理対象のデータを前記メモリから読み出し前記プロセッサグループへ供給する入力ＤＭＡと、
前記複数のディスクリプタ各々に含まれる前記出力アドレス情報にしたがって前記プロセッサグループの処理結果を前記メモリへ書き戻すメモリアクセス制御回路と、
を有する請求項１４記載のストリームプロセッサ。
【請求項１６】
前記メモリから取得した前記複数のディスクリプタ各々が、該複数のディスクリプタ各々を識別するための識別子毎に格納されるディスクリプタ管理テーブルを有し、
前記入力ＤＭＡは、
前記処理対象のデータと共に前記識別子を前記プロセッサグループへ供給し、
前記メモリアクセス制御回路は、
前記プロセッサグループから出力される該識別子を用いて前記ディスクリプタ管理テーブルに格納された対応するディスクリプタから前記出力アドレス情報を読み出し、前記プロセッサグループの処理結果を前記メモリへ書き戻す請求項１５記載のストリームプロセッサ。
【請求項１７】
前記入力ＤＭＡは、
前記複数のディスクリプタで指定された前記処理対象のデータの全てを前記プロセッサグループへ転送すると、全データの転送完了を示す完了信号を前記ディスクリプタ管理テーブルへ送信し、
前記ディスクリプタ管理テーブルは、
前記完了信号を受信するまで対応するディスクリプタの削除を保留する請求項１５記載のストリームプロセッサ。
【請求項１８】
前記プロセッサグループは、
前記複数のディスクリプタの各々に含まれる前記入力アドレス情報にしたがって読み出した処理対象のデータに対する処理が完了すると、該データの終わりを示すエンド信号を出力する請求項１５記載のストリームプロセッサ。
【請求項１９】
前記複数のディスクリプタの各々に、前記データに対するアクセス権が前記ストリームプロセッサにあるか否かを示すオーナビットを備え、
前記入力ＤＭＡは、
前記ディスクリプタに含まれる前記入力アドレス情報にしたがって処理対象のデータを前記メモリから読み出すと、前記メモリに格納されたディスクリプタに含まれる前記オーナビットを、前記ストリームプロセッサに前記アクセス権があることを示す値に更新する請求項１５記載のストリームプロセッサ。
【請求項２０】
前記複数のディスクリプタの各々に、前記出力アドレス情報にしたがって前記ストリームプロセッサによる処理後のデータの前記メモリへの転送が完了したか否かを示すトランザクションコンプリートビットを備え、
前記メモリアクセス制御回路は、
前記プロセッサグループによる処理後のデータの前記メモリへの転送が全て完了したとき、対応するディスクリプタの前記トランザクションコンプリートビットを転送の完了を示す値に設定する請求項１９記載のストリームプロセッサ。
【請求項２１】
前記ストリームプロセッサは、
処理実行中のディスクリプタを保持する一時記憶装置を有する請求項１５記載のストリームプロセッサ。
【請求項２２】
前記複数のディスクリプタの各々は、
該複数のディスクリプタ各々を識別するための識別子を備え、
前記一時記憶装置は、
前記メモリから取得した前記複数のディスクリプタが前記識別子毎に格納されるディスクリプタ管理テーブルである請求項２１記載のストリームプロセッサ。
【請求項２３】
処理対象のデータが格納されたアドレスを示す入力アドレス情報、及び処理後のデータの格納先アドレスを示す出力アドレス情報をそれぞれ含む複数のディスクリプタが格納されたメモリと、
前記メモリから前記複数のディスクリプタを取得し、該複数のディスクリプタ各々に含まれる前記入力アドレス情報にしたがって処理対象となるデータを前記メモリから読み出し、該データに対して所定の処理を実行し、前記出力アドレス情報にしたがって処理後のデータを前記メモリへ書き戻す、複数の前記所定の処理を並列に実行可能なストリームプロセッサと、
前記ストリームプロセッサの動作を制御するホストプロセッサと、
を有する情報処理装置において、
前記ホストプロセッサに実行させるためのプログラムであって、
前記複数のディスクリプタを、前記ストリームプロセッサからの連続した読み出しが可能に生成し、
前記メモリに格納するためのプログラム。
【請求項２４】
前記データに対するアクセス権が前記ストリームプロセッサにあるか否かを示すオーナビット、及び前記出力アドレス情報にしたがって前記ストリームプロセッサによる処理後のデータの前記メモリへの転送が完了したか否かを示すトランザクションコンプリートビットを含めて前記複数のディスクリプタを生成し、
前記ストリームプロセッサで処理中のデータに一意に対応するディスクリプタを交互にポーリングし、該ディスクリプタの前記オーナビット及び前記トランザクションコンプリートビットをそれぞれ監視するための請求項２３記載のプログラム。
【請求項２５】
前記ストリームプロセッサによるデータの処理が完了し、前記ホストプロセッサから該データに一意に対応するディスクリプタへのアクセスが可能になった時点で、該ディスクリプタに付与した識別子を他の処理対象のデータに一意に対応するディスクリプタへ割り付けるための請求項２３または２４記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置に関し、特に所定の処理を専用に実行するプロセッサを備えた情報処理装置に関する。
【背景技術】
【０００２】
近年の情報処理装置は、その処理性能の向上に伴って利用範囲が広がり、より高度な演算処理あるいは画像や動画のように膨大なデータを高速に処理する能力が要求されてきている。このような要求を満たすための手法として、ホストプロセッサとは別に画像処理あるいは動画処理等のように所定の演算処理を専用に実行するＤＳＰ（Digital Signal Processor）を備えた構成が知られている。このＤＳＰを有する従来の情報処理装置の一例を図６に示す。なお、図６は、特許文献１で開示された情報処理装置の構成を模式的に示した図である。
【０００３】
図６に示すように、従来の情報処理装置は、ホストプロセッサ１０１と、ＤＳＰ１０２と、ＤＳＰ１０２へ供給する命令が一時的に格納されるＤＳＰ命令メモリ１０５と、ＤＳＰ１０２で処理するデータあるいは処理後のデータを一時的に蓄積するＤＳＰデータメモリ１０６と、ホストプロセッサ１０１やＤＳＰ１０２による処理対象のデータ及び処理後のデータ等が格納されるホストシステムメモリ１０３と、ＤＳＰ１０２に対する命令やデータの送受信を制御するＤＭＡ制御装置１０７とを有する構成である。
【０００４】
ホストプロセッサ１０１とホストシステムメモリ１０３とはシステムバス１０４を介して接続され、ＤＳＰ１０２とＤＳＰ命令メモリ１０５及びＤＳＰデータメモリ１０６とはＤＭＡバス１０８を介して接続される。また、ホストプロセッサ１０１とＤＳＰ１０２とは、システムバス１０４とＤＭＡバス１０８とを中継するＤＭＡ制御装置１０７によって互いにデータや命令の送受信が可能に接続されている。
【０００５】
図６に示す情報処理装置では、ＤＳＰ１０２に特定の処理を実行させることで、ホストプロセッサ１０１の処理負荷を軽減するだけでなく、ＤＳＰ１０２が得意とする処理を実行することで、ホストプロセッサ１０１で処理するよりも処理時間を短縮できる。
【０００６】
ホストプロセッサ１０１からＤＳＰ１０２へ処理を依頼する場合、ホストプロセッサ１０１は、処理対象のデータが格納されたホストシステムメモリ１０３上のアドレス、該データを格納するＤＳＰデータメモリ１０６上のアドレス、及び該データのサイズの情報を含む「データ転送パケット要求リスト」をＤＳＰ１０２へ送信する。ＤＳＰ１０２は、「データ転送パケット要求リスト」を受信すると、上記ホストシステムメモリ１０３上のアドレス、ＤＳＰデータメモリ１０６上のアドレス、及びサイズ情報をそれぞれ抽出する。そして、それらの情報を基にＤＭＡ制御装置１０７を起動し、ＤＭＡ制御装置１０７を介してホストシステムメモリ１０３上のアドレス領域から指定されたサイズのデータを読み出し、ＤＳＰデータメモリ１０６のアドレス領域へＤＭＡ転送する。
【０００７】
ＤＳＰ１０２は、ＤＳＰデータメモリ１０６に転送されたデータに対し、例えばＤＳＰ命令メモリ１０５に格納された命令にしたがってプログラム処理を実行し、処理結果をＤＳＰデータメモリ１０６へ書き戻す。
【０００８】
ＤＳＰ１０２は、処理が終了すると、別の「データ転送パケット要求リスト」に基づき、ＤＭＡ制御装置１０７を起動し、ＤＭＡ制御装置１０７を介して処理結果をＤＭＡ転送し、ホストシステムメモリ１０３へ書き戻す。
【特許文献１】特開平５−２０４８２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述した情報処理装置では、処理性能をさらに向上させるために、マイクロプロセッサやＤＳＰ等から成る複数のサブプロセッサを追加し、それらのサブプロセッサに複数の処理を並列に実行させる構成が考えられる。しかしながら、このような構成では各サブプロセッサに供給する入力データと各サブプロセッサから受け取る出力データの順番が維持できないという問題が生じる。
【００１０】
例えば、ＤＳＰは入力されたデータに対して一つの処理を順次実行し、結果を処理したデータの順に出力する。したがって、図６に示すように一つのＤＳＰのみを備えた従来の情報処理装置では、ＤＳＰに渡したデータの順に処理後のデータを受け取ればよく、ホストプロセッサは、出力データがどの入力データを処理したものであるか知ることができるため、入力データと出力データの対応付けが可能である。
【００１１】
一方、サブプロセッサとして複数のＤＳＰを備えている場合、各ＤＳＰで処理に要する時間が異なると、処理時間の短いＤＳＰから先に結果が出力され、各ＤＳＰに供給した入力データの順番と各ＤＳＰから受け取る出力データの順番が入れ変わってしまう。したがって、このような構成では、出力データがどの入力データを処理したものであるかを知るために、入力データと出力データとの対応関係を管理するための新たな仕組みが必要となる。
【００１２】
なお、入力データと出力データとの対応関係を管理するために、ハードウェアの構成が複雑になったり煩雑な処理が増えては、複数の処理を並列に実行することによる情報処理装置としての性能向上効果を相殺してしまう。そのため、サブプロセッサを用いて複数の処理を並列に実行する場合は、該サブプロセッサに対するデータ転送の効率が高く、管理に必要な情報を抑制し、かつサブプロセッサとＣＰＵとの競合による無駄な応答待ち時間等が無い仕組みを構築することが望ましい。
【００１３】
本発明は上記したような従来の技術が有する問題点を解決するためになされたものであり、複数の処理を並列に実行する場合であっても、出力データがどの入力データに対応しているかの関連付けが可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１４】
上記目的を達成するため本発明の情報処理装置は、処理対象のデータが格納されたアドレスを示す入力アドレス情報、及び処理後のデータの格納先アドレスを示す出力アドレス情報をそれぞれ含む複数のディスクリプタが格納されたメモリと、
前記複数のディスクリプタの各々から得られる前記入力アドレス情報にしたがって前記処理対象のデータを前記メモリから読み出し、該データに対して所定の処理を実行し、前記出力アドレス情報にしたがって処理後のデータを前記メモリへ書き戻す、複数の前記所定の処理を並列に実行可能なストリームプロセッサと、
を有する。
【００１５】
上記のように構成された情報処理装置では、複数のディスクリプタの各々に、処理対象のデータが格納されたアドレスを示す入力アドレス情報、及び処理後のデータの格納先アドレスを示す出力アドレス情報をそれぞれ含み、ストリームプロセッサは、該複数のディスクリプタの各々に対し、個々に含まれる入力アドレス情報にしたがって処理対象となるデータをメモリから読み出し、該データに対して所定の処理を実行し、出力アドレス情報にしたがって処理後のデータをメモリへ書き戻す。このため、複数の所定の処理を実行しても、複数のディスクリプタ各々の情報を用いて処理対象のデータである入力データと処理後のデータである出力データの対応関係を管理できる。
【発明の効果】
【００１６】
複数のディスクリプタ内の情報を用いて処理対象のデータである入力データと処理後のデータである出力データの対応関係を管理できるため、複数の処理を並列に実行する場合であっても、出力データがどの入力データに対応しているかの関連付けが可能になる。
【発明を実施するための最良の形態】
【００１７】
次に本発明について図面を参照して説明する。
【００１８】
図１は本発明の情報処理装置の一構成例を示すブロック図である。
【００１９】
図１に示すように、本発明の情報処理装置は、ホストプロセッサであるＣＰＵ１と、複数の処理を並列に実行可能なストリームプロセッサ２と、ＣＰＵ１及びストリームプロセッサ２で処理するデータや処理結果等が格納されるメモリ３とを有し、ＣＰＵ１、ストリームプロセッサ２及びメモリ３が、バス４を介して互いにデータの送受信が可能に接続された構成である。メモリ３には、ＣＰＵ１やストリームプロセッサ２の処理対象となるデータ及び処理後のデータと共に、それらのデータの識別に用いられる各種情報から成るディスクリプタが格納されている。なお、ホストプロセッサは、ＣＰＵである必要はなく、情報処理装置全体の処理や制御が可能であれば、ＤＳＰやその他の処理装置を用いてもよい。
【００２０】
ストリームプロセッサ２は、処理対象のデータをメモリ３から読み出す入力ＤＭＡ２１と、ディスクリプタを管理するディスクリプタ管理テーブル２２と、複数の処理を並列に実行可能な複数のアレイ型プロセッサ２３と、アレイ型プロセッサ２３へ供給するデータ（入力データ）を一時的に保持する複数の入力ＦＩＦＯ２４と、アレイ型プロセッサ２３から出力されたデータ（出力データ）を一時的に保持する複数の出力ＦＩＦＯ２５と、アレイ型プロセッサ２３による処理結果（出力データ）をメモリ３へ書き戻すためのメモリアクセス制御回路２６とを有する構成である。入力ＤＭＡ２１、ディスクリプタ管理テーブル２２及びメモリアクセス制御回路２６は、例えば論理回路やメモリ等を用いてそれぞれ構成してもよく、ＣＰＵ（またはＤＳＰ）とメモリとを備え、該メモリに格納されたプログラムにしたがってＣＰＵ（またはＤＳＰ）により以下に記載するストリームプロセッサ２の各種処理を実現する構成であってもよい。
【００２１】
ストリームプロセッサ２は、格子状に配列された複数のアレイ型プロセッサ２３（プロセッサグループと称す）を備え、これら複数のアレイ型プロセッサ２３によって、処理を実行するためのチャネル（処理経路）が複数形成された構成である。したがって、入力ＦＩＦＯ２４及び出力ＦＩＦＯ２５は、各チャネルに対応してそれぞれ設けられている。アレイ型プロセッサ２３の詳細については、例えば特開２００３−１９６２４６号公報に記載されている。なお、ストリームプロセッサ２には、必ずしも複数のアレイ型プロセッサ２３を用いる必要はなく、複数の処理を並列に実行可能であれば、例えばＦＰＧＡ（Field Programmable Gate Array）やＣＰＬＤ（Complex Programmable Logic Device）等のプログラマブルロジック、あるいはハードワイヤードロジック等の回路で構成してもよく、複数のＣＰＵやＤＳＰを備えた構成であってもよい。また、これらプログラマブルロジック、ハードワイヤードロジック、ＣＰＵ、ＤＳＰ等を各種組み合わせた構成であってもよい。
【００２２】
本発明では、プロセッサグループは、上述のように複数のアレイ型プロセッサ２３で構成されていてもよく、あるいは複数のＣＰＵやＤＳＰによって構成されていてもよい。また、ＦＰＧＡやＣＰＬＤ等のプログラマブルロジック、あるいはハードワイヤードロジック等の回路で複数のプロセッサエレメントを構成してもよい。さらには１つのプロセッサであっても内部に複数のプロセッサエレメントをもつものはプロセッサグループと定義されるものとする。
【００２３】
入力ＤＭＡ２１には、各ディスクリプタが格納されたメモリ３上のアドレス領域を示すディスクリプタポインタが格納される。このディスクリプタポインタの値は、例えば情報処理装置に搭載されたＣＰＵ１により、メモリ３に格納されたストリームプロセッサ２を制御するためのプログラムにしたがって設定される。ＣＰＵ１は、例えばストリームプロセッサ２に処理を依頼する際に、処理対象となるディスクリプタの先頭アドレスを示すアドレスポインタを入力ＤＭＡ２１のディスクリプタポインタにセットする。
【００２４】
入力ＤＭＡ２１は、ＣＰＵ１から処理の依頼を受け取ると、最初にＣＰＵ１によって設定されたディスクリプタポインタを用いてメモリ３からディスクリプタを読み出し、該ディスクリプタの各種情報を基に処理対象のデータをメモリ３から読み出し、アレイ型プロセッサ２３の指定されたチャネルの入力ＦＩＦＯ２４へ転送する。
【００２５】
図２は図１に示した情報処理装置で用いるディスクリプタのフォーマットを示す模式図である。図２ではディスクリプタが１２８ビットで構成される例を示しているが、ディスクリプタの情報量は、ＣＰＵ１やアレイ型プロセッサ２３の処理ビット幅、あるいはメモリ空間の大きさ等に応じて適宜変更すればよい。なお、図２中のフィールド名が記載されていない領域は予備として用いる空き領域である。
【００２６】
図２に示すように、本実施形態で用いるディスクリプタは、ＩＮＴ（割り込みビット）、ＴＹＰＥ（属性ビット）、ＯＷＮ（オーナビット）、ＴＣＭＰ（トランザクションコンプリートビット）、ＣＨＳＥＬ（チャネルセレクト）、ＴＩＤ（トランザクション識別子）、ＣＭＤ（コマンド）、ＩＳＩＺＥ（データサイズ）、ＲＡＤＲ（リターンデータアドレス（出力アドレス情報））、ＩＡＤＲ（入力データアドレス（入力アドレス情報））の各フィールドをそれぞれ備えた構成である。
【００２７】
図２に示すＴＩＤ（トランザクション識別子）は、ストリームプロセッサ２の処理対象となるデータを識別するための識別子が格納されるフィールドである。ＴＩＤの値は、後述するように処理対象のデータ（入力データ）と共に入力ＦＩＦＯ２４へ供給され、処理後のデータ（出力データ）と共にアレイ型プロセッサ２３から出力される。
【００２８】
ＣＨＳＥＬ（チャネルセレクト）は、メモリ３から読み出したデータを供給するチャネルを指定するためのフィールドであり、処理を並列に実行するチャネル数（アレイ型プロセッサ２３の数）に応じたビット数を備えている。入力ＤＭＡ２１によりメモリ３から読み出されたデータは指定されたチャネルに対応する入力ＦＩＦＯ２４へ供給される。
【００２９】
ＩＡＤＲ（入力データアドレス）はストリームプロセッサ２による処理対象のデータ（入力データ）のアドレスを示すデータバッファポインタが格納されるフィールドであり、ＲＡＤＲ（リターンデータアドレス）はストリームプロセッサ２で処理されたデータ（出力データ）の格納先のアドレスを示すデータバッファポインタが格納されるフィールドである。さらに、ＩＳＩＺＥはストリームプロセッサ２による処理対象のデータの大きさを示す情報が格納されるフィールドである。
【００３０】
したがって、ストリームプロセッサ２は、ＩＡＤＲで指定されたアドレスからＩＳＩＺＥで指定されたサイズのデータを読み出し、該データ（入力データ）をＣＨＳＥＬで指定された入力ＦＩＦＯ２４へ供給する。また、アレイ型プロセッサ２３で処理されたデータ（出力データ）をＲＡＤＲで指定されたアドレスを始めとするアドレス領域に格納する。
【００３１】
本実施形態では、ディスクリプタ内に処理対象となるデータの格納先を示すデータバッファポインタ（入力アドレス情報）と処理後のデータの格納先を示すデータバッファポインタ（出力アドレス情報）をそれぞれ備えているため、ストリームプロセッサ２へ供給する入力データとストリームプロセッサ２から出力される出力データの対応関係を管理することが可能であり、複数の処理を並列に実行する場合であっても、出力データがどの入力データに対応しているかの関連付けが可能になる。
【００３２】
ＯＷＮ（オーナビット）は、データに対するアクセス権がＣＰＵ１にあるかストリームプロセッサ２にあるかを示すビットである。例えばアクセス権がストリームプロセッサ２にある場合、ＯＷＮビットは「１」に設定され、アクセス権がＣＰＵ１にある場合、ＯＷＮビットは「０」に設定される。
【００３３】
ＴＣＭＰ（トランザクションコンプリートビット）は、ストリームプロセッサ２による処理後のデータがＲＡＤＲで指定されたアドレスに対して転送完了したとき「有効」となるビットである。
【００３４】
ＣＰＵ１は、処理対象のデータに対応するディスクリプタポインタを設定することでストリームプロセッサ２に処理を依頼し、ストリームプロセッサ２で処理が終了したデータを受け取って他の処理で利用する。データには一意に対応するディスクリプタが必ず存在するため、ＣＰＵ１は対応するディスクリプタを監視することでデータの処理状況を確認できる。例えば監視対象のディスクリプタ中のＯＷＮビットが「０」でＴＣＭＰビットが「０」の場合はアレイ型プロセッサ２３に対するデータ転送が完了していない状態を示し、ＯＷＮビットが「１」でＴＣＭＰビットが「０」の場合はアレイ型プロセッサ２３に対するデータ転送が完了したことを示している。また、ＯＷＮビットが「１」でＴＣＭＰビットが「０」の場合はアレイ型プロセッサ２３でデータを受け取り処理中であることを示し、ＯＷＮビットが「１」でＴＣＭＰビットが「１」の場合はストリームプロセッサ２でデータの処理が全て完了したことを示している。ＣＰＵ１は、ディスクリプタを生成する際に、ＯＷＮビットを「０」、ＴＣＭＰビットを「０」に設定しておく。なお、ディスクリプタの監視方法としては、各ディスクリプタをポーリングする方法（ディスクリプタをメモリ３から定期的に読み取って内容を確認する方法）、あるいはストリームプロセッサ２からＯＷＮビットやＴＣＭＰビットが書き換わるたびに発生させることが可能な割り込み信号を用いる方法等がある。但し、ディスクリプタをポーリングする場合、本発明では、複数の処理を並列に実行するため、ＣＰＵ１からストリームプロセッサ２に処理を依頼した順に対応するディスクリプタを一つ一つポーリングするとＣＰＵ１で処理の無駄が発生する。すなわち、処理を依頼した順に対応するディスクリプタのＯＷＮビットが「１」、ＴＣＭＰビットが「１」となる状態を待っていると、処理時間が短いために先に完了した他の処理の状態を検知できなくなってしまう。したがって、ポーリングを実行する際には、複数のディスクリプタに対して所定の周期毎に交互にポーリングを実行することが望ましい。
【００３５】
本実施形態では、これらＯＷＮビット及びＴＣＭＰビットを利用することで、ＣＰＵ１とストリームプロセッサ２による同じデータへの競合を容易に調停することが可能になり、ＣＰＵ１とストリームプロセッサ２によるデータの共有化を実現できる。また、同じアドレスのデータに対するストリームプロセッサ２による処理の完了からＣＰＵ１による処理の開始を同期させることが可能であるため、情報処理装置としての処理性能を向上させることができる。
【００３６】
ＣＭＤ（コマンド）は、ストリームプロセッサ２に対して処理の種類を指示するフィールドである。ストリームプロセッサ２は、複数のアレイ型プロセッサ２３で処理可能な複数のアプリケーション（処理の種類）のうち、指定されたチャネルの処理の種類をＣＭＤフィールドの情報にしたがって切り替える。
【００３７】
ＩＮＴ（割り込みビット）は、ストリームプロセッサ２による処理の完了をＣＰＵ１等へ通知する割り込み信号を発生するために用いるビットである。また、ＴＹＰＥ（属性ビット）は、メモリ３内に構築する、後述するディスクリプタのキュー構造を維持するために用いるビットである。
【００３８】
本発明の情報処理装置が有するストリームプロセッサ２は、上述したように複数の処理を並列に実行可能な構成であり、処理対象のデータをストリームプロセッサ２に連続して与えたとき、情報処理装置としての処理効率が最も高くなる。このようにストリームプロセッサ２へデータを効率良く転送するための手法として、図３に示すようにメモリ３に格納する複数のディスクリプタをリング状に接続してキューを構築しておくことが考えられる。
【００３９】
図３は図１に示した情報処理装置で用いるディスクリプタキューの一構成例を示す模式図である。
【００４０】
上述したように、本実施形態で用いるディスクリプタには、処理前のデータが格納されるアドレスを示すデータバッファポインタ（ＩＡＤＲ）、処理後のデータが格納されるアドレスを示すデータバッファポインタ（ＲＡＤＲ）、データのサイズ（ＩＳＩＺＥ）、及びＩＡＤＲがデータバッファポインタであるかリンク用のポインタ（リンクポインタ）であるかを示すＴＹＰＥフィールドをそれぞれ備えている。図３では、ディスクリプタキュー（Ｄｅｓｃｒｉｐｔｏｒ  Ｑｕｅｕｅ）を構成する各ディスクリプタに、これらのフィールドのみを記載している。
【００４１】
各ディスクリプタのＴＹＰＥフィールドが「１」のとき、ＩＡＤＲには有効なデータが格納されたメモリ３中のデータバッファ（Ｄａｔａ  Ｂｕｆ）へアクセスするためのデータバッファポインタが格納されていることを示している。また、ＴＹＰＥフィールドが「０」のとき、ＩＡＤＲには次のディスクリプタへアクセスするためのリンクポインタ（Ｌｉｎｋ  Ｐｔｒ）が格納されていることを示している。そのため、図３に示すようにリング状のディスクリプタキューを構築する場合は、最後のディスクリプタのＴＹＰＥフィールドに「０」が格納され、ＩＡＤＲにはキューの先頭ディスクリプタのアドレスポインタが格納される。
【００４２】
図３では、先頭の第１のディスクリプタにＴＹＰＥ＝１、ＩＡＤＲ＝Ｉｐｔｒ０、ＩＳＩＺＥ＝ｓｉｚｅ０、ＲＡＤＲ＝Ｒｐｔｒ０が格納され、次の第２のディスクリプタにＴＹＰＥ＝１、ＩＡＤＲ＝Ｉｐｔｒ１、ＩＳＩＺＥ＝ｓｉｚｅ１、ＲＡＤＲ＝Ｒｐｔｒ１が格納され、第ｎ（ｎは１以上の整数）のディスクリプタにＴＹＰＥ＝１、ＩＡＤＲ＝Ｉｐｔｒ（ｎ−１）、ＩＳＩＺＥ＝ｓｉｚｅ（ｎ−１）、ＲＡＤＲ＝Ｒｐｔｒ（ｎ−１）が格納され、最終のディスクリプタにＴＹＰＥ＝０、ＩＡＤＲ＝ｄｅｓｃ  ｐｔｒ（先頭のディスクリプタのポインタ）が格納された例を示している。
【００４３】
このようなディスクリプタキューをＣＰＵ１等によりメモリ３内に予め構築しておき、ストリームプロセッサ２による処理時に、これらのディスクリプタを順次読み出し、処理対象となるデータを連続してストリームプロセッサ２へ供給して処理すれば、アレイ型プロセッサ２３へデータを効率良く転送でき、かつ処理した結果もメモリ３へ効率よく書き戻すことができるため、情報処理装置の処理性能が向上する。
【００４４】
本実施形態のストリームプロセッサ２が有する入力ＤＭＡ２１は、ディスクリプタのＴＹＰＥフィールドが「１」のとき、ディスクリプタのデータサイズ（例えば１２８ビット）に相当する値だけディスクリプタポインタの値を増加させることで、次に読み出すディスクリプタにアクセスする。したがって、ＣＰＵ１により先頭のディスクリプタポインタがセットされると、以降、入力ＤＭＡ２１は、ＣＰＵ１からの設定が無くてもＴＹＰＥフィールドに依存してディスクリプタポインタの値を内部で更新し、次のディスクリプタを読み出すことができる。このとき入力ＤＭＡ２１によりディスクリプタポインタの値を増加させ続けると、ディスクリプタを格納するためのアドレス領域が膨大となってしまう。そのため、上述した複数のディスクリプタをリング状に接続したディスクリプタキューを構築することで、ディスクリプタを格納するためのアドレス領域を削減している。
【００４５】
なお、メモリ３内のディスクリプタはリング状に接続されたキュー構造である必要はなく、処理対象のデータを連続してストリームプロセッサ２へ供給するためにディスクリプタを順次読み出すことが可能であればどのような構造であってもよい。例えば、離れたアドレス領域に格納されたディスクリプタを連続して読み出すキュー構造を実現する場合は、任意のアドレス領域に格納された最後のディスクリプタのＴＹＰＥフィールドを「０」に設定し、対応するＩＡＤＲフィールドに連続しない他のアドレス領域のディスクリプタポインタを格納すればよい。また、連続するアドレス領域に格納されたディスクリプタをそれぞれ読み出すキュー構造を実現する場合は、任意のアドレス領域に格納された最後のディスクリプタのＴＹＰＥフィールドを「１」に設定しておけばよい。その場合、入力ＤＭＡ２１は、上述したようにディスクリプタのデータサイズに相当する値だけディスクリプタポインタの値を増加させて次のディスクリプタにアクセスするため、任意のアドレス領域に続くアドレス領域に格納されたディスクリプタを連続して読み出すことができる。
【００４６】
図４は図１に示したディスクリプタ管理テーブルの使用例を示す図であり、同図（ａ）はディスクリプタ管理テーブルに入出力される信号例を示すブロック図、同図（ｂ）はディスクリプタ管理テーブルが備えるエントリフィールドの構成例を示す模式図である。
【００４７】
図４（ａ）、（ｂ）に示すように、本実施形態で用いるディスクリプタ管理テーブル２２は、メモリ３から読み出された複数のディスクリプタが格納されるエントリフィールドを備えた構成である。入力ＤＭＡ２１によってメモリ３から読み出されたディスクリプタ（Ｄｅｓｃｒｉｐｔｏｒ）は、例えばＴＩＤをテーブルアドレスとするエントリに、ディスクリプタポインタ（Ｄｅｓｃ  ｐｔｒ）、書き込み完了フラグ（ｃ）及び有効ビット（ｖ）と共にそれぞれ格納される。
【００４８】
ディスクリプタ管理テーブル２２へは、入力ＤＭＡ２１からディスクリプタの登録要求、ＴＩＤ、メモリ３から読み出されたディスクリプタ（Ｄｅｓｃｒｉｐｔｏｒ）がそれぞれ転送される。ディスクリプタ管理テーブル２２は、ディスクリプタの登録要求と共に転送されたＴＩＤ（テーブルアドレス）に対応するエントリ中の有効ビット（ｖ）を確認し、有効ビット（ｖ）が「０」、すなわちエントリが無効である場合は対応するディスクリプタの更新が可能であるため、登録要求の許可を示す「アクノリッジ」を入力ＤＭＡ２１へ返送し、受信したディスクリプタをそのエントリへ格納する。また、有効ビットが「１」、すなわちエントリが有効である場合は対応するディスクリプタの更新が不可能（例えば、該ディスクリプタにアクセス中）であるため、ディスクリプタの登録要求の不許可を示す「ノンアクノリッジ」を入力ＤＭＡ２１へ返送する。この場合、入力ＤＭＡ２１は、登録が許可されるまで、予め設定された回数、あるいは予め設定された時間が経過するまでディスクリプタの登録要求を繰り返し送信する。または、メモリ３から読み出したディスクリプタを一旦廃棄し、ディスクリプタポインタの値を増やすことなく再度メモリ３から同一のディスクリプタを読み出し、該ディスクリプタの登録を要求する動作を繰り返してもよい。なお、ＣＰＵ１によりディスクリプタを生成する際には、このディスクリプタの登録要求が不許可となる機会を低減するため、複数のディスクリプタに対してＴＩＤの値が重複しないように割り付けることが望ましい。ＴＩＤが重複すると、処理中のエントリに対してディスクリプタの登録要求が発生するおそれがあるため、入力ＤＭＡ２１は該エントリが「無効」となるまでディスクリプタの登録要求を繰り返し送信することになる。その場合、ストリームプロセッサ２は先のディスクリプタの登録要求が許可されるまで後続のディスクリプタの登録要求を受け付けることができなくなる。したがって、ストリームプロセッサ２による処理が完了し、ＣＰＵ１による対応するディスクリプタへのアクセスが可能になった時点で、ＣＰＵ１は、そのＴＩＤを他の処理で用いるディスクリプタへ割り付けることができるようにする。
【００４９】
入力ＤＭＡ２１は、ディスクリプタ管理テーブル２２にメモリ３から読み出したディスクリプタを登録後、該ディスクリプタからＩＡＤＲ及びＩＳＩＺＥをそれぞれ抽出し、バス４を経由してメモリ３から処理対象のデータを読み出し、ＣＨＳＥＬで指定されたチャネルの入力ＦＩＦＯ２４へ転送する。入力ＤＭＡ２１は、アレイ型プロセッサ２３へデータを転送する際、そのデータと共にＴＩＤ、ＣＭＤ、ＩＳＩＺＥを添付して転送する。これらの情報はデータの先頭に付加してもよく、データと並行して転送してもよい。
【００５０】
また、入力ＤＭＡ２１は、ディスクリプタで指定された処理対象のデータの全てをアレイ型プロセッサ２３へ転送すると、全データの転送完了を示す完了フラグの登録要求をディスクリプタ管理テーブル２２へ送信する。ディスクリプタ管理テーブル２２は、この完了フラグの登録要求を受信するまで、後述するメモリアクセス制御回路２６から要求される対応するディスクリプタの削除（削除要求）を保留する。これにより、ディスクリプタで指定された処理対象のデータがアレイ型プロセッサ２３に対して全て転送されていない状態で、ディスクリプタ管理テーブル２２からメモリアクセス制御回路２６によりエントリが削除されることを防止できる。このような機能が無い場合、処理後のデータをメモリ３へ転送中に後続のディスクリプタが到着し、そのＴＩＤがアレイ型プロセッサ２３に対するデータ転送完了前のディスクリプタと同一であった場合、ディスクリプタ管理テーブル２２の対応するエントリに後続のディスクリプタが登録されてしまうため、誤動作を引き起こすおそれがある。
【００５１】
アレイ型プロセッサ２３は、入力ＤＭＡ２１から受け取ったＣＭＤにしたがって指定されたアプリケーションを起動し、連続して入力されるデータに対してそれぞれ所定の処理を実行し、処理結果を順次出力する。このとき、アレイ型プロセッサ２３は、ＩＳＩＺＥで指定された全てのデータを受信してから処理を開始してもよく、受信したデータから順次処理し、処理結果を出力してもよい。
【００５２】
アレイ型プロセッサ２３は、処理後の先頭データと共に受信したＴＩＤを出力し、出力ＦＩＦＯ２５へ転送する。メモリアクセス制御回路２６は、アレイ型プロセッサ２３から出力されたＴＩＤを用いてディスクリプタ管理テーブル２２にアクセスし、対応するディスクリプタからＲＡＤＲ（リターンデータアドレス）を抽出する。そして、このリターンデータアドレスから始まるメモリ領域に対してアレイ型プロセッサ２３から出力された処理後のデータを格納する。
【００５３】
メモリアクセス制御回路２６は、アレイ型プロセッサ２３から出力されるデータの終わりを示すエンド信号を受信することで、処理後のデータの終わりを確認できる。このエンド信号を利用することで入力データの大きさと出力データの大きさとが一致しない処理をアレイ型プロセッサ２３で実行できる。このように入力データの大きさ（固定長サイズ）に対して出力データの大きさが変化する（可変長サイズ）処理としては、データの圧縮処理あるいは圧縮データの伸長処理等がある。メモリアクセス制御回路２６は、この最後のデータのメモリ３への書き込みが終了すると、対応するディスクリプタの削除要求及びそのＴＩＤをディスクリプタ管理テーブル２２へ送信し、当該エントリの有効ビットを「０」（無効）にする。また、ディスクリプタポインタを用いてメモリ３へアクセスし、対応するディスクリプタのＴＣＭＰビットを「１」に書き換え、処理の完了を他のデバイス（ＣＰＵ１等）から判別できるようにする。
【００５４】
なお、メモリ３から読み出したディスクリプタは、ディスクリプタ管理テーブル２２ではなく、処理を実行するアレイ型プロセッサ２３へそれぞれ登録する構成も考えられる。そのような構成でも処理後のデータと共に対応するディスクリプタをメモリアクセス制御回路２６へ渡せば、メモリアクセス制御回路２６は、上記と同様に該ディスクリプタ中のリターンデータアドレスから始まるメモリ領域に対してアレイ型プロセッサ２３から出力された処理後のデータを格納できる。しかしながら、このような構成では、情報量が多いディスクリプタ（図２に示したように本実施形態では１２８ビット）を各アレイ型プロセッサ２３でそれぞれ保持する必要があり、アレイ型プロセッサ２３に比較的大容量のバッファリソースが必要となる。そのため、本実施形態では、ディスクリプタはディスクリプタ管理テーブル２２で保持し、アレイ型プロセッサ２３はディスクリプタを識別するためのＴＩＤのみを管理している。したがって、本実施形態では、ディスクリプタ管理テーブル２２を備えることで、アレイ型プロセッサ２３で情報量が多いディスクリプタを保持することなく、入力データと出力データの対応関係を識別できる。また、アレイ型プロセッサ２３で必要なバッファリソースの容量を低減することが可能であり、アレイ型プロセッサ２３のコストを低減できる。
【００５５】
次に、本発明の情報処理装置の動作について図５を用いて具体的に説明する。
【００５６】
図５は図１に示した情報処理装置の動作を示す模式図である。なお、図５は以下に記載する（１）〜（１４）の各処理段階に応じて送受信される情報を図１に示したブロック図に追記した図面である。図中の四角内に記載された数値は以下の（  ）内に記載された各処理段階の数値と一致している。
【００５７】
（１）図５に示すように、ストリームプロセッサ２の入力ＤＭＡ２１は、例えばＣＰＵ１から処理の依頼を受信すると、予め格納されたディスクリプタポインタにしたがってメモリ３のアドレス（図５では0x40000000）へアクセスし、対応するディスクリプタを読み出す。
【００５８】
（２）ここでは、入力ＤＭＡ２１がメモリ３から読み出すディスクリプタ（以下、Descriptor Aと称す）に、ＣＨＳＥＬ＝１、ＴＩＤ＝４、ＩＡＤＲ＝0x80000000、ＲＡＤＲ＝0x81000000、ＩＳＩＺＥ＝1024の情報が含まれているものとする。
【００５９】
（３）入力ＤＭＡ２１は、メモリ３からディスクリプタを読み出すと、該ディスクリプタ（Descriptor A）をディスクリプタポインタと共にディスクリプタ管理テーブル２２へ登録する。このとき、入力ＤＭＡ２１は、ディスクリプタ管理テーブル２２への登録が成功した場合はディスクリプタポインタを増加して後続するディスクリプタを読み出し、ディスクリプタ管理テーブル２２への登録に失敗した場合は、メモリ３から読み出したディスクリプタを一旦廃棄し、ディスクリプタポインタの値を増やすことなく再度メモリ３から同一のディスクリプタを読み出し、該ディスクリプタの登録を要求する動作を繰り返す。
【００６０】
（４）続いて、入力ＤＭＡ２１は、読み出したDescriptor AからＩＡＤＲ及びＩＳＩＺＥをそれぞれ抽出し、メモリ３にアクセスしＩＡＤＲで指定されたメモリアドレス（0x80000000）からＩＳＩＺＥで指定された１０２４バイトのデータの読み出しを要求する。なお、入力ＤＭＡ２１は、上記（１）〜（３）の処理を実行しつつ、既に読み出されたディスクリプタが在る場合はそのディスクリプタに基づいて（４）の処理を同時に実行することが可能である。
【００６１】
（５）メモリ３は、入力ＤＭＡ２１からのデータ読み出し要求に応じて、バス４を介して入力ＤＭＡ２１へ１０２４バイトのデータを転送する。なお、ストリームプロセッサ２により複数の処理を並列に実行する場合は、上記（４）に記載の入力ＤＭＡ２１によるメモリ３へのアクセスと、（５）に記載のメモリ３によるデータの転送処理とを同時に実行することが可能である。
【００６２】
（６）入力ＤＭＡ２１は、メモリ３から受信したデータをDescriptor A中のＣＨＳＥＬで指定されたチャネル（＝ＣＨ１）の入力ＦＩＦＯ２４へ供給する。このとき、入力ＦＩＦＯ２４にはデータと共にＴＩＤ（＝４）を合わせて送信する。なお、ストリームプロセッサ２にて複数の処理を並列に実行する場合、入力ＤＭＡ２１はメモリ３からの入力データの受信と、入力ＦＩＦＯ２４に対するデータ転送とを同時に実行することが可能である。
【００６３】
（７）続いて、入力ＤＭＡ２１は、Descriptor AのＯＷＮビットをアクセス権がストリームプロセッサ２にあることを示す「１」に変更し、ディスクリプタポインタを用いてメモリ３中のDescriptor Aを書き換える。
【００６４】
（８）次に、入力ＤＭＡ２１は、ディスクリプタ管理テーブル２２へ全てのデータの読み出しが完了したことを示す完了フラグの登録要求を送信し、ディスクリプタ管理テーブル２２のＴＩＤ＝４のエントリの書き込み完了フラグを「１」に書き換える。
【００６５】
（９）アレイ型プロセッサ２３は、入力ＤＭＡ２１から受け取ったデータを順次処理し、処理後のデータと共にＴＩＤ＝４を出力する。このとき、アレイ型プロセッサ２３から出力されるデータのサイズは、入力されたデータのサイズと必ずしも一致するとは限らない。なお、アレイ型プロセッサ２３は、入力ＤＭＡ２１からデータを受信しつつ、処理した結果を出力することが可能である。
【００６６】
（１０）メモリアクセス制御回路２６は、アレイ型プロセッサ２３から出力されたＴＩＤ＝４をディスクリプタ管理テーブル２２へ転送する。
【００６７】
（１１）メモリアクセス制御回路２６は、ディスクリプタ管理テーブル２２に登録されたＴＩＤ＝４に対応するDescriptor AからＲＡＤＲ（0x81000000）を取得する。
【００６８】
（１２）続いて、メモリアクセス制御回路２６は、アレイ型プロセッサ２３から出力されたデータをＲＡＤＲ＝0x81000000から始まるメモリ３のアドレス領域へ格納する。
【００６９】
（１３）メモリアクセス制御回路２６は、アレイ型プロセッサ２３から出力されたデータをメモリ３へ全て格納したら、対応するディスクリプタの削除要求及びそのＴＩＤをディスクリプタ管理テーブル２２へ送信し、当該エントリの有効ビットを「０」（無効）にする。このとき、ディスクリプタ管理テーブル２２は入力ＤＭＡ２１から完了フラグの登録要求が発行されているか否かを確認し、登録要求が発行されていない場合、すなわち、アレイ型プロセッサ２３に対してディスクリプタで指定された処理毎の全データの入力が完了していない場合は、完了フラグの登録要求が発行されるまでエントリの削除処理を保留する。ディスクリプタ管理テーブル２２は、入力ＤＭＡ２１からの完了フラグの登録要求が発行されたら、対応するディスクリプタ（Descriptor A）が格納されたエントリの有効ビットを「０」（無効）にする。また、同時に後段の処理にて対応するディスクリプタのＴＣＭＰビットが処理の完了を示す「１」に更新されるのを防止する。
【００７０】
（１４）メモリアクセス制御回路２６は、ディスクリプタポインタにしたがってメモリ３へアクセスし、Descriptor A（0x40000000）のＴＣＭＰビットを「１」に書き換えると共に、必要に応じてＣＰＵ１などの外部デバイスに対して割り込み信号を送信する（ＩＮＴ＝１のとき）。なお、メモリアクセス制御回路２６は、上記（９）に記載のアレイ型プロセッサ２３から出力された出力データの受信処理を実行しつつ、上記（１０）〜（１４）に記載の一連の処理を実行可能である。
【００７１】
本発明の情報処理装置によれば、ディスクリプタ内の情報を用いて処理対象のデータである入力データと処理後のデータである出力データの対応関係を管理できるため、複数の処理を並列に実行する構成であっても、出力データがどの入力データに対応しているかの関連付けが可能になる。したがって、ＣＰＵ１とストリームプロセッサ２とを備えた情報処理装置を構成すれば、ＣＰＵ１単体では実現できなかったスループットを得ることが可能になり、さらにストリームプロセッサ２により複数の処理を並列に実行できるため、より高いスループットを得ることができる。特にキュー構造のディスクリプタをＣＰＵ１等により予めメモリ３内に構築しておき、ストリームプロセッサ２による処理時に、これらのディスクリプタを順次読み出し、処理対象となるデータを連続してストリームプロセッサ２へ供給して処理させることで、アレイ型プロセッサ２３へデータを効率良く転送でき、かつ処理した結果もメモリ３へ効率よく書き戻すことができるため、情報処理装置の処理性能が向上する。
【００７２】
また、本実施形態の情報処理装置によれば、一つの処理のみを実行する場合でも、従来の情報処理装置とは異なり、アレイ型プロセッサ２３やＣＰＵ１においてデータをＤＭＡ転送するためのディスクリプタ設定が不要であることからオーバーヘッドが軽減される。したがって、本発明の情報処理装置は、一つの処理のみを実行する場合でも従来の情報処理装置に比べて情報処理装置としての処理性能が向上する。
【００７３】
なお、本発明の情報処理装置は、上記ＣＰＵ１、ストリームプロセッサ２、メモリ３及びバス４を１つの半導体集積回路装置に備えた構成であってもよく、これらの構成要素が持つ機能を複数の半導体集積回路装置によって実現する構成であってもよい。
【００７４】
また、本発明では、ストリームプロセッサ２に供給する処理対象となるデータを読み出すためのディスクリプタ構造（ａ）、ストリームプロセッサ２に処理を依頼し、データを入力し、出力されたデータを受信するために、ＣＰＵ１上で実行されるプログラム（ｂ）、ストリームプロセッサ２に含まれる入力ＤＭＡ２１、アレイ型プロセッサ２３、ディスクリプタ管理テーブル２２、及びメモリアクセス制御回路２６の処理をプロセッサ（ＣＰＵやＤＳＰ）で実現するためのプログラム（ｃ）、ストリームプロセッサ２に対するディスクリプタポインタの設定等、ストリームプロセッサ２の動作を制御するためにＣＰＵ１で実行するプログラム（ｄ）、並びに上記（ａ）−（ｄ）に記載のプログラムが格納される記録媒体も発明の範囲に含まれる。
【図面の簡単な説明】
【００７５】
【図１】本発明の情報処理装置の一構成例を示すブロック図である。
【図２】図１に示した情報処理装置で用いるディスクリプタのフォーマットを示す模式図である。
【図３】図１に示した情報処理装置で用いるディスクリプタキューの一構成例を示す模式図である。
【図４】図１に示したディスクリプタ管理テーブルの使用例を示す図であり、同図（ａ）はディスクリプタ管理テーブルに入出力される信号例を示すブロック図、同図（ｂ）はディスクリプタ管理テーブルが備えるエントリフィールドの構成例を示す模式図である。
【図５】図１に示した情報処理装置の動作を示す模式図である。
【図６】従来の情報処理装置の構成を示すブロック図である。
【符号の説明】
【００７６】
１    ＣＰＵ
２    ストリームプロセッサ
３    メモリ
４    バス
２１    入力ＤＭＡ
２２    ディスクリプタ管理テーブル
２３    アレイ型プロセッサ
２４    入力ＦＩＦＯ
２５    出力ＦＩＦＯ
２６    メモリアクセス制御回路
【図１】
2006139766.tif 000003
【図２】
2006139766.tif 000004
【図３】
2006139766.tif 000005
【図４】
2006139766.tif 000006
【図５】
2006139766.tif 000007
【図６】
2006139766.tif 000008