JP4170330B2 - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP4170330B2
JP4170330B2 JP2005297721A JP2005297721A JP4170330B2 JP 4170330 B2 JP4170330 B2 JP 4170330B2 JP 2005297721 A JP2005297721 A JP 2005297721A JP 2005297721 A JP2005297721 A JP 2005297721A JP 4170330 B2 JP4170330 B2 JP 4170330B2
Authority
JP
Japan
Prior art keywords
data
descriptor
memory
descriptors
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005297721A
Other languages
English (en)
Other versions
JP2006139766A (ja
Inventor
健一朗 安生
勝巳 戸川
僚子 佐々木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Electronics Corp
Original Assignee
NEC Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Electronics Corp filed Critical NEC Electronics Corp
Priority to JP2005297721A priority Critical patent/JP4170330B2/ja
Publication of JP2006139766A publication Critical patent/JP2006139766A/ja
Application granted granted Critical
Publication of JP4170330B2 publication Critical patent/JP4170330B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報処理装置に関し、特に所定の処理を専用に実行するプロセッサを備えた情報処理装置に関する。
近年の情報処理装置は、その処理性能の向上に伴って利用範囲が広がり、より高度な演算処理あるいは画像や動画のように膨大なデータを高速に処理する能力が要求されてきている。このような要求を満たすための手法として、ホストプロセッサとは別に画像処理あるいは動画処理等のように所定の演算処理を専用に実行するDSP(Digital Signal Processor)を備えた構成が知られている。このDSPを有する従来の情報処理装置の一例を図6に示す。なお、図6は、特許文献1で開示された情報処理装置の構成を模式的に示した図である。
図6に示すように、従来の情報処理装置は、ホストプロセッサ101と、DSP102と、DSP102へ供給する命令が一時的に格納されるDSP命令メモリ105と、DSP102で処理するデータあるいは処理後のデータを一時的に蓄積するDSPデータメモリ106と、ホストプロセッサ101やDSP102による処理対象のデータ及び処理後のデータ等が格納されるホストシステムメモリ103と、DSP102に対する命令やデータの送受信を制御するDMA制御装置107とを有する構成である。
ホストプロセッサ101とホストシステムメモリ103とはシステムバス104を介して接続され、DSP102とDSP命令メモリ105及びDSPデータメモリ106とはDMAバス108を介して接続される。また、ホストプロセッサ101とDSP102とは、システムバス104とDMAバス108とを中継するDMA制御装置107によって互いにデータや命令の送受信が可能に接続されている。
図6に示す情報処理装置では、DSP102に特定の処理を実行させることで、ホストプロセッサ101の処理負荷を軽減するだけでなく、DSP102が得意とする処理を実行することで、ホストプロセッサ101で処理するよりも処理時間を短縮できる。
ホストプロセッサ101からDSP102へ処理を依頼する場合、ホストプロセッサ101は、処理対象のデータが格納されたホストシステムメモリ103上のアドレス、該データを格納するDSPデータメモリ106上のアドレス、及び該データのサイズの情報を含む「データ転送パケット要求リスト」をDSP102へ送信する。DSP102は、「データ転送パケット要求リスト」を受信すると、上記ホストシステムメモリ103上のアドレス、DSPデータメモリ106上のアドレス、及びサイズ情報をそれぞれ抽出する。そして、それらの情報を基にDMA制御装置107を起動し、DMA制御装置107を介してホストシステムメモリ103上のアドレス領域から指定されたサイズのデータを読み出し、DSPデータメモリ106のアドレス領域へDMA転送する。
DSP102は、DSPデータメモリ106に転送されたデータに対し、例えばDSP命令メモリ105に格納された命令にしたがってプログラム処理を実行し、処理結果をDSPデータメモリ106へ書き戻す。
DSP102は、処理が終了すると、別の「データ転送パケット要求リスト」に基づき、DMA制御装置107を起動し、DMA制御装置107を介して処理結果をDMA転送し、ホストシステムメモリ103へ書き戻す。
特開平5−204828号公報
上述した情報処理装置では、処理性能をさらに向上させるために、マイクロプロセッサやDSP等から成る複数のサブプロセッサを追加し、それらのサブプロセッサに複数の処理を並列に実行させる構成が考えられる。しかしながら、このような構成では各サブプロセッサに供給する入力データと各サブプロセッサから受け取る出力データの順番が維持できないという問題が生じる。
例えば、DSPは入力されたデータに対して一つの処理を順次実行し、結果を処理したデータの順に出力する。したがって、図6に示すように一つのDSPのみを備えた従来の情報処理装置では、DSPに渡したデータの順に処理後のデータを受け取ればよく、ホストプロセッサは、出力データがどの入力データを処理したものであるか知ることができるため、入力データと出力データの対応付けが可能である。
一方、サブプロセッサとして複数のDSPを備えている場合、各DSPで処理に要する時間が異なると、処理時間の短いDSPから先に結果が出力され、各DSPに供給した入力データの順番と各DSPから受け取る出力データの順番が入れ変わってしまう。したがって、このような構成では、出力データがどの入力データを処理したものであるかを知るために、入力データと出力データとの対応関係を管理するための新たな仕組みが必要となる。
なお、入力データと出力データとの対応関係を管理するために、ハードウェアの構成が複雑になったり煩雑な処理が増えては、複数の処理を並列に実行することによる情報処理装置としての性能向上効果を相殺してしまう。そのため、サブプロセッサを用いて複数の処理を並列に実行する場合は、該サブプロセッサに対するデータ転送の効率が高く、管理に必要な情報を抑制し、かつサブプロセッサとCPUとの競合による無駄な応答待ち時間等が無い仕組みを構築することが望ましい。
本発明は上記したような従来の技術が有する問題点を解決するためになされたものであり、複数の処理を並列に実行する場合であっても、出力データがどの入力データに対応しているかの関連付けが可能な情報処理装置を提供することを目的とする。
上記目的を達成するため本発明の情報処理装置は、処理対象のデータが格納されたアドレスを示す入力アドレス情報、及び処理後のデータの格納先アドレスを示す出力アドレス情報をそれぞれ含む複数のディスクリプタが格納されたメモリと、
前記複数のディスクリプタの各々から得られる前記入力アドレス情報にしたがって前記処理対象のデータを前記メモリから読み出し、該データに対して所定の処理を実行し、前記出力アドレス情報にしたがって処理後のデータを前記メモリへ書き戻す、複数の前記所定の処理を並列に実行可能なストリームプロセッサと、
を有し、
前記ストリームプロセッサは、
複数の前記所定の処理を並列に実行可能なプロセッサグループと、
ディスクリプタ管理テーブルと、
前記メモリから前記複数のディスクリプタを取得し、該複数のディスクリプタの各々に含まれる前記入力アドレス情報にしたがって処理対象のデータを前記メモリから読み出し前記プロセッサグループへ供給する入力DMAと、
取得された前記複数のディスクリプタの各々に含まれる前記出力アドレス情報が格納された前記ディスクリプタ管理テーブルから前記出力アドレスを読み出し、前記プロセッサグループの処理結果を前記出力アドレスにしたがって前記メモリへ書き戻すメモリアクセス制御回路と、
を有する。
上記のように構成された情報処理装置では、複数のディスクリプタの各々に、処理対象のデータが格納されたアドレスを示す入力アドレス情報、及び処理後のデータの格納先アドレスを示す出力アドレス情報をそれぞれ含み、ストリームプロセッサは、該複数のディスクリプタの各々に対し、個々に含まれる入力アドレス情報にしたがって処理対象となるデータをメモリから読み出し、該データに対して所定の処理を実行し、出力アドレス情報にしたがって処理後のデータをメモリへ書き戻す。このため、複数の所定の処理を実行しても、複数のディスクリプタ各々の情報を用いて処理対象のデータである入力データと処理後のデータである出力データの対応関係を管理できる。
複数のディスクリプタ内の情報を用いて処理対象のデータである入力データと処理後のデータである出力データの対応関係を管理できるため、複数の処理を並列に実行する場合であっても、出力データがどの入力データに対応しているかの関連付けが可能になる。
次に本発明について図面を参照して説明する。
図1は本発明の情報処理装置の一構成例を示すブロック図である。
図1に示すように、本発明の情報処理装置は、ホストプロセッサであるCPU1と、複数の処理を並列に実行可能なストリームプロセッサ2と、CPU1及びストリームプロセッサ2で処理するデータや処理結果等が格納されるメモリ3とを有し、CPU1、ストリームプロセッサ2及びメモリ3が、バス4を介して互いにデータの送受信が可能に接続された構成である。メモリ3には、CPU1やストリームプロセッサ2の処理対象となるデータ及び処理後のデータと共に、それらのデータの識別に用いられる各種情報から成るディスクリプタが格納されている。なお、ホストプロセッサは、CPUである必要はなく、情報処理装置全体の処理や制御が可能であれば、DSPやその他の処理装置を用いてもよい。
ストリームプロセッサ2は、処理対象のデータをメモリ3から読み出す入力DMA21と、ディスクリプタを管理するディスクリプタ管理テーブル22と、複数の処理を並列に実行可能な複数のアレイ型プロセッサ23と、アレイ型プロセッサ23へ供給するデータ(入力データ)を一時的に保持する複数の入力FIFO24と、アレイ型プロセッサ23から出力されたデータ(出力データ)を一時的に保持する複数の出力FIFO25と、アレイ型プロセッサ23による処理結果(出力データ)をメモリ3へ書き戻すためのメモリアクセス制御回路26とを有する構成である。入力DMA21、ディスクリプタ管理テーブル22及びメモリアクセス制御回路26は、例えば論理回路やメモリ等を用いてそれぞれ構成してもよく、CPU(またはDSP)とメモリとを備え、該メモリに格納されたプログラムにしたがってCPU(またはDSP)により以下に記載するストリームプロセッサ2の各種処理を実現する構成であってもよい。
ストリームプロセッサ2は、格子状に配列された複数のアレイ型プロセッサ23(プロセッサグループと称す)を備え、これら複数のアレイ型プロセッサ23によって、処理を実行するためのチャネル(処理経路)が複数形成された構成である。したがって、入力FIFO24及び出力FIFO25は、各チャネルに対応してそれぞれ設けられている。アレイ型プロセッサ23の詳細については、例えば特開2003−196246号公報に記載されている。なお、ストリームプロセッサ2には、必ずしも複数のアレイ型プロセッサ23を用いる必要はなく、複数の処理を並列に実行可能であれば、例えばFPGA(Field Programmable Gate Array)やCPLD(Complex Programmable Logic Device)等のプログラマブルロジック、あるいはハードワイヤードロジック等の回路で構成してもよく、複数のCPUやDSPを備えた構成であってもよい。また、これらプログラマブルロジック、ハードワイヤードロジック、CPU、DSP等を各種組み合わせた構成であってもよい。
本発明では、プロセッサグループは、上述のように複数のアレイ型プロセッサ23で構成されていてもよく、あるいは複数のCPUやDSPによって構成されていてもよい。また、FPGAやCPLD等のプログラマブルロジック、あるいはハードワイヤードロジック等の回路で複数のプロセッサエレメントを構成してもよい。さらには1つのプロセッサであっても内部に複数のプロセッサエレメントをもつものはプロセッサグループと定義されるものとする。
入力DMA21には、各ディスクリプタが格納されたメモリ3上のアドレス領域を示すディスクリプタポインタが格納される。このディスクリプタポインタの値は、例えば情報処理装置に搭載されたCPU1により、メモリ3に格納されたストリームプロセッサ2を制御するためのプログラムにしたがって設定される。CPU1は、例えばストリームプロセッサ2に処理を依頼する際に、処理対象となるディスクリプタの先頭アドレスを示すアドレスポインタを入力DMA21のディスクリプタポインタにセットする。
入力DMA21は、CPU1から処理の依頼を受け取ると、最初にCPU1によって設定されたディスクリプタポインタを用いてメモリ3からディスクリプタを読み出し、該ディスクリプタの各種情報を基に処理対象のデータをメモリ3から読み出し、アレイ型プロセッサ23の指定されたチャネルの入力FIFO24へ転送する。
図2は図1に示した情報処理装置で用いるディスクリプタのフォーマットを示す模式図である。図2ではディスクリプタが128ビットで構成される例を示しているが、ディスクリプタの情報量は、CPU1やアレイ型プロセッサ23の処理ビット幅、あるいはメモリ空間の大きさ等に応じて適宜変更すればよい。なお、図2中のフィールド名が記載されていない領域は予備として用いる空き領域である。
図2に示すように、本実施形態で用いるディスクリプタは、INT(割り込みビット)、TYPE(属性ビット)、OWN(オーナビット)、TCMP(トランザクションコンプリートビット)、CHSEL(チャネルセレクト)、TID(トランザクション識別子)、CMD(コマンド)、ISIZE(データサイズ)、RADR(リターンデータアドレス(出力アドレス情報))、IADR(入力データアドレス(入力アドレス情報))の各フィールドをそれぞれ備えた構成である。
図2に示すTID(トランザクション識別子)は、ストリームプロセッサ2の処理対象となるデータを識別するための識別子が格納されるフィールドである。TIDの値は、後述するように処理対象のデータ(入力データ)と共に入力FIFO24へ供給され、処理後のデータ(出力データ)と共にアレイ型プロセッサ23から出力される。
CHSEL(チャネルセレクト)は、メモリ3から読み出したデータを供給するチャネルを指定するためのフィールドであり、処理を並列に実行するチャネル数(アレイ型プロセッサ23の数)に応じたビット数を備えている。入力DMA21によりメモリ3から読み出されたデータは指定されたチャネルに対応する入力FIFO24へ供給される。
IADR(入力データアドレス)はストリームプロセッサ2による処理対象のデータ(入力データ)のアドレスを示すデータバッファポインタが格納されるフィールドであり、RADR(リターンデータアドレス)はストリームプロセッサ2で処理されたデータ(出力データ)の格納先のアドレスを示すデータバッファポインタが格納されるフィールドである。さらに、ISIZEはストリームプロセッサ2による処理対象のデータの大きさを示す情報が格納されるフィールドである。
したがって、ストリームプロセッサ2は、IADRで指定されたアドレスからISIZEで指定されたサイズのデータを読み出し、該データ(入力データ)をCHSELで指定された入力FIFO24へ供給する。また、アレイ型プロセッサ23で処理されたデータ(出力データ)をRADRで指定されたアドレスを始めとするアドレス領域に格納する。
本実施形態では、ディスクリプタ内に処理対象となるデータの格納先を示すデータバッファポインタ(入力アドレス情報)と処理後のデータの格納先を示すデータバッファポインタ(出力アドレス情報)をそれぞれ備えているため、ストリームプロセッサ2へ供給する入力データとストリームプロセッサ2から出力される出力データの対応関係を管理することが可能であり、複数の処理を並列に実行する場合であっても、出力データがどの入力データに対応しているかの関連付けが可能になる。
OWN(オーナビット)は、データに対するアクセス権がCPU1にあるかストリームプロセッサ2にあるかを示すビットである。例えばアクセス権がストリームプロセッサ2にある場合、OWNビットは「1」に設定され、アクセス権がCPU1にある場合、OWNビットは「0」に設定される。
TCMP(トランザクションコンプリートビット)は、ストリームプロセッサ2による処理後のデータがRADRで指定されたアドレスに対して転送完了したとき「有効」となるビットである。
CPU1は、処理対象のデータに対応するディスクリプタポインタを設定することでストリームプロセッサ2に処理を依頼し、ストリームプロセッサ2で処理が終了したデータを受け取って他の処理で利用する。データには一意に対応するディスクリプタが必ず存在するため、CPU1は対応するディスクリプタを監視することでデータの処理状況を確認できる。例えば監視対象のディスクリプタ中のOWNビットが「0」でTCMPビットが「0」の場合はアレイ型プロセッサ23に対するデータ転送が完了していない状態を示し、OWNビットが「1」でTCMPビットが「0」の場合はアレイ型プロセッサ23に対するデータ転送が完了したことを示している。また、OWNビットが「1」でTCMPビットが「0」の場合はアレイ型プロセッサ23でデータを受け取り処理中であることを示し、OWNビットが「1」でTCMPビットが「1」の場合はストリームプロセッサ2でデータの処理が全て完了したことを示している。CPU1は、ディスクリプタを生成する際に、OWNビットを「0」、TCMPビットを「0」に設定しておく。なお、ディスクリプタの監視方法としては、各ディスクリプタをポーリングする方法(ディスクリプタをメモリ3から定期的に読み取って内容を確認する方法)、あるいはストリームプロセッサ2からOWNビットやTCMPビットが書き換わるたびに発生させることが可能な割り込み信号を用いる方法等がある。但し、ディスクリプタをポーリングする場合、本発明では、複数の処理を並列に実行するため、CPU1からストリームプロセッサ2に処理を依頼した順に対応するディスクリプタを一つ一つポーリングするとCPU1で処理の無駄が発生する。すなわち、処理を依頼した順に対応するディスクリプタのOWNビットが「1」、TCMPビットが「1」となる状態を待っていると、処理時間が短いために先に完了した他の処理の状態を検知できなくなってしまう。したがって、ポーリングを実行する際には、複数のディスクリプタに対して所定の周期毎に交互にポーリングを実行することが望ましい。
本実施形態では、これらOWNビット及びTCMPビットを利用することで、CPU1とストリームプロセッサ2による同じデータへの競合を容易に調停することが可能になり、CPU1とストリームプロセッサ2によるデータの共有化を実現できる。また、同じアドレスのデータに対するストリームプロセッサ2による処理の完了からCPU1による処理の開始を同期させることが可能であるため、情報処理装置としての処理性能を向上させることができる。
CMD(コマンド)は、ストリームプロセッサ2に対して処理の種類を指示するフィールドである。ストリームプロセッサ2は、複数のアレイ型プロセッサ23で処理可能な複数のアプリケーション(処理の種類)のうち、指定されたチャネルの処理の種類をCMDフィールドの情報にしたがって切り替える。
INT(割り込みビット)は、ストリームプロセッサ2による処理の完了をCPU1等へ通知する割り込み信号を発生するために用いるビットである。また、TYPE(属性ビット)は、メモリ3内に構築する、後述するディスクリプタのキュー構造を維持するために用いるビットである。
本発明の情報処理装置が有するストリームプロセッサ2は、上述したように複数の処理を並列に実行可能な構成であり、処理対象のデータをストリームプロセッサ2に連続して与えたとき、情報処理装置としての処理効率が最も高くなる。このようにストリームプロセッサ2へデータを効率良く転送するための手法として、図3に示すようにメモリ3に格納する複数のディスクリプタをリング状に接続してキューを構築しておくことが考えられる。
図3は図1に示した情報処理装置で用いるディスクリプタキューの一構成例を示す模式図である。
上述したように、本実施形態で用いるディスクリプタには、処理前のデータが格納されるアドレスを示すデータバッファポインタ(IADR)、処理後のデータが格納されるアドレスを示すデータバッファポインタ(RADR)、データのサイズ(ISIZE)、及びIADRがデータバッファポインタであるかリンク用のポインタ(リンクポインタ)であるかを示すTYPEフィールドをそれぞれ備えている。図3では、ディスクリプタキュー(Descriptor Queue)を構成する各ディスクリプタに、これらのフィールドのみを記載している。
各ディスクリプタのTYPEフィールドが「1」のとき、IADRには有効なデータが格納されたメモリ3中のデータバッファ(Data Buf)へアクセスするためのデータバッファポインタが格納されていることを示している。また、TYPEフィールドが「0」のとき、IADRには次のディスクリプタへアクセスするためのリンクポインタ(Link Ptr)が格納されていることを示している。そのため、図3に示すようにリング状のディスクリプタキューを構築する場合は、最後のディスクリプタのTYPEフィールドに「0」が格納され、IADRにはキューの先頭ディスクリプタのアドレスポインタが格納される。
図3では、先頭の第1のディスクリプタにTYPE=1、IADR=Iptr0、ISIZE=size0、RADR=Rptr0が格納され、次の第2のディスクリプタにTYPE=1、IADR=Iptr1、ISIZE=size1、RADR=Rptr1が格納され、第n(nは1以上の整数)のディスクリプタにTYPE=1、IADR=Iptr(n−1)、ISIZE=size(n−1)、RADR=Rptr(n−1)が格納され、最終のディスクリプタにTYPE=0、IADR=desc ptr(先頭のディスクリプタのポインタ)が格納された例を示している。
このようなディスクリプタキューをCPU1等によりメモリ3内に予め構築しておき、ストリームプロセッサ2による処理時に、これらのディスクリプタを順次読み出し、処理対象となるデータを連続してストリームプロセッサ2へ供給して処理すれば、アレイ型プロセッサ23へデータを効率良く転送でき、かつ処理した結果もメモリ3へ効率よく書き戻すことができるため、情報処理装置の処理性能が向上する。
本実施形態のストリームプロセッサ2が有する入力DMA21は、ディスクリプタのTYPEフィールドが「1」のとき、ディスクリプタのデータサイズ(例えば128ビット)に相当する値だけディスクリプタポインタの値を増加させることで、次に読み出すディスクリプタにアクセスする。したがって、CPU1により先頭のディスクリプタポインタがセットされると、以降、入力DMA21は、CPU1からの設定が無くてもTYPEフィールドに依存してディスクリプタポインタの値を内部で更新し、次のディスクリプタを読み出すことができる。このとき入力DMA21によりディスクリプタポインタの値を増加させ続けると、ディスクリプタを格納するためのアドレス領域が膨大となってしまう。そのため、上述した複数のディスクリプタをリング状に接続したディスクリプタキューを構築することで、ディスクリプタを格納するためのアドレス領域を削減している。
なお、メモリ3内のディスクリプタはリング状に接続されたキュー構造である必要はなく、処理対象のデータを連続してストリームプロセッサ2へ供給するためにディスクリプタを順次読み出すことが可能であればどのような構造であってもよい。例えば、離れたアドレス領域に格納されたディスクリプタを連続して読み出すキュー構造を実現する場合は、任意のアドレス領域に格納された最後のディスクリプタのTYPEフィールドを「0」に設定し、対応するIADRフィールドに連続しない他のアドレス領域のディスクリプタポインタを格納すればよい。また、連続するアドレス領域に格納されたディスクリプタをそれぞれ読み出すキュー構造を実現する場合は、任意のアドレス領域に格納された最後のディスクリプタのTYPEフィールドを「1」に設定しておけばよい。その場合、入力DMA21は、上述したようにディスクリプタのデータサイズに相当する値だけディスクリプタポインタの値を増加させて次のディスクリプタにアクセスするため、任意のアドレス領域に続くアドレス領域に格納されたディスクリプタを連続して読み出すことができる。
図4は図1に示したディスクリプタ管理テーブルの使用例を示す図であり、同図(a)はディスクリプタ管理テーブルに入出力される信号例を示すブロック図、同図(b)はディスクリプタ管理テーブルが備えるエントリフィールドの構成例を示す模式図である。
図4(a)、(b)に示すように、本実施形態で用いるディスクリプタ管理テーブル22は、メモリ3から読み出された複数のディスクリプタが格納されるエントリフィールドを備えた構成である。入力DMA21によってメモリ3から読み出されたディスクリプタ(Descriptor)は、例えばTIDをテーブルアドレスとするエントリに、ディスクリプタポインタ(Desc ptr)、書き込み完了フラグ(c)及び有効ビット(v)と共にそれぞれ格納される。
ディスクリプタ管理テーブル22へは、入力DMA21からディスクリプタの登録要求、TID、メモリ3から読み出されたディスクリプタ(Descriptor)がそれぞれ転送される。ディスクリプタ管理テーブル22は、ディスクリプタの登録要求と共に転送されたTID(テーブルアドレス)に対応するエントリ中の有効ビット(v)を確認し、有効ビット(v)が「0」、すなわちエントリが無効である場合は対応するディスクリプタの更新が可能であるため、登録要求の許可を示す「アクノリッジ」を入力DMA21へ返送し、受信したディスクリプタをそのエントリへ格納する。また、有効ビットが「1」、すなわちエントリが有効である場合は対応するディスクリプタの更新が不可能(例えば、該ディスクリプタにアクセス中)であるため、ディスクリプタの登録要求の不許可を示す「ノンアクノリッジ」を入力DMA21へ返送する。この場合、入力DMA21は、登録が許可されるまで、予め設定された回数、あるいは予め設定された時間が経過するまでディスクリプタの登録要求を繰り返し送信する。または、メモリ3から読み出したディスクリプタを一旦廃棄し、ディスクリプタポインタの値を増やすことなく再度メモリ3から同一のディスクリプタを読み出し、該ディスクリプタの登録を要求する動作を繰り返してもよい。なお、CPU1によりディスクリプタを生成する際には、このディスクリプタの登録要求が不許可となる機会を低減するため、複数のディスクリプタに対してTIDの値が重複しないように割り付けることが望ましい。TIDが重複すると、処理中のエントリに対してディスクリプタの登録要求が発生するおそれがあるため、入力DMA21は該エントリが「無効」となるまでディスクリプタの登録要求を繰り返し送信することになる。その場合、ストリームプロセッサ2は先のディスクリプタの登録要求が許可されるまで後続のディスクリプタの登録要求を受け付けることができなくなる。したがって、ストリームプロセッサ2による処理が完了し、CPU1による対応するディスクリプタへのアクセスが可能になった時点で、CPU1は、そのTIDを他の処理で用いるディスクリプタへ割り付けることができるようにする。
入力DMA21は、ディスクリプタ管理テーブル22にメモリ3から読み出したディスクリプタを登録後、該ディスクリプタからIADR及びISIZEをそれぞれ抽出し、バス4を経由してメモリ3から処理対象のデータを読み出し、CHSELで指定されたチャネルの入力FIFO24へ転送する。入力DMA21は、アレイ型プロセッサ23へデータを転送する際、そのデータと共にTID、CMD、ISIZEを添付して転送する。これらの情報はデータの先頭に付加してもよく、データと並行して転送してもよい。
また、入力DMA21は、ディスクリプタで指定された処理対象のデータの全てをアレイ型プロセッサ23へ転送すると、全データの転送完了を示す完了フラグの登録要求をディスクリプタ管理テーブル22へ送信する。ディスクリプタ管理テーブル22は、この完了フラグの登録要求を受信するまで、後述するメモリアクセス制御回路26から要求される対応するディスクリプタの削除(削除要求)を保留する。これにより、ディスクリプタで指定された処理対象のデータがアレイ型プロセッサ23に対して全て転送されていない状態で、ディスクリプタ管理テーブル22からメモリアクセス制御回路26によりエントリが削除されることを防止できる。このような機能が無い場合、処理後のデータをメモリ3へ転送中に後続のディスクリプタが到着し、そのTIDがアレイ型プロセッサ23に対するデータ転送完了前のディスクリプタと同一であった場合、ディスクリプタ管理テーブル22の対応するエントリに後続のディスクリプタが登録されてしまうため、誤動作を引き起こすおそれがある。
アレイ型プロセッサ23は、入力DMA21から受け取ったCMDにしたがって指定されたアプリケーションを起動し、連続して入力されるデータに対してそれぞれ所定の処理を実行し、処理結果を順次出力する。このとき、アレイ型プロセッサ23は、ISIZEで指定された全てのデータを受信してから処理を開始してもよく、受信したデータから順次処理し、処理結果を出力してもよい。
アレイ型プロセッサ23は、処理後の先頭データと共に受信したTIDを出力し、出力FIFO25へ転送する。メモリアクセス制御回路26は、アレイ型プロセッサ23から出力されたTIDを用いてディスクリプタ管理テーブル22にアクセスし、対応するディスクリプタからRADR(リターンデータアドレス)を抽出する。そして、このリターンデータアドレスから始まるメモリ領域に対してアレイ型プロセッサ23から出力された処理後のデータを格納する。
メモリアクセス制御回路26は、アレイ型プロセッサ23から出力されるデータの終わりを示すエンド信号を受信することで、処理後のデータの終わりを確認できる。このエンド信号を利用することで入力データの大きさと出力データの大きさとが一致しない処理をアレイ型プロセッサ23で実行できる。このように入力データの大きさ(固定長サイズ)に対して出力データの大きさが変化する(可変長サイズ)処理としては、データの圧縮処理あるいは圧縮データの伸長処理等がある。メモリアクセス制御回路26は、この最後のデータのメモリ3への書き込みが終了すると、対応するディスクリプタの削除要求及びそのTIDをディスクリプタ管理テーブル22へ送信し、当該エントリの有効ビットを「0」(無効)にする。また、ディスクリプタポインタを用いてメモリ3へアクセスし、対応するディスクリプタのTCMPビットを「1」に書き換え、処理の完了を他のデバイス(CPU1等)から判別できるようにする。
なお、メモリ3から読み出したディスクリプタは、ディスクリプタ管理テーブル22ではなく、処理を実行するアレイ型プロセッサ23へそれぞれ登録する構成も考えられる。そのような構成でも処理後のデータと共に対応するディスクリプタをメモリアクセス制御回路26へ渡せば、メモリアクセス制御回路26は、上記と同様に該ディスクリプタ中のリターンデータアドレスから始まるメモリ領域に対してアレイ型プロセッサ23から出力された処理後のデータを格納できる。しかしながら、このような構成では、情報量が多いディスクリプタ(図2に示したように本実施形態では128ビット)を各アレイ型プロセッサ23でそれぞれ保持する必要があり、アレイ型プロセッサ23に比較的大容量のバッファリソースが必要となる。そのため、本実施形態では、ディスクリプタはディスクリプタ管理テーブル22で保持し、アレイ型プロセッサ23はディスクリプタを識別するためのTIDのみを管理している。したがって、本実施形態では、ディスクリプタ管理テーブル22を備えることで、アレイ型プロセッサ23で情報量が多いディスクリプタを保持することなく、入力データと出力データの対応関係を識別できる。また、アレイ型プロセッサ23で必要なバッファリソースの容量を低減することが可能であり、アレイ型プロセッサ23のコストを低減できる。
次に、本発明の情報処理装置の動作について図5を用いて具体的に説明する。
図5は図1に示した情報処理装置の動作を示す模式図である。なお、図5は以下に記載する(1)〜(14)の各処理段階に応じて送受信される情報を図1に示したブロック図に追記した図面である。図中の四角内に記載された数値は以下の( )内に記載された各処理段階の数値と一致している。
(1)図5に示すように、ストリームプロセッサ2の入力DMA21は、例えばCPU1から処理の依頼を受信すると、予め格納されたディスクリプタポインタにしたがってメモリ3のアドレス(図5では0x40000000)へアクセスし、対応するディスクリプタを読み出す。
(2)ここでは、入力DMA21がメモリ3から読み出すディスクリプタ(以下、Descriptor Aと称す)に、CHSEL=1、TID=4、IADR=0x80000000、RADR=0x81000000、ISIZE=1024の情報が含まれているものとする。
(3)入力DMA21は、メモリ3からディスクリプタを読み出すと、該ディスクリプタ(Descriptor A)をディスクリプタポインタと共にディスクリプタ管理テーブル22へ登録する。このとき、入力DMA21は、ディスクリプタ管理テーブル22への登録が成功した場合はディスクリプタポインタを増加して後続するディスクリプタを読み出し、ディスクリプタ管理テーブル22への登録に失敗した場合は、メモリ3から読み出したディスクリプタを一旦廃棄し、ディスクリプタポインタの値を増やすことなく再度メモリ3から同一のディスクリプタを読み出し、該ディスクリプタの登録を要求する動作を繰り返す。
(4)続いて、入力DMA21は、読み出したDescriptor AからIADR及びISIZEをそれぞれ抽出し、メモリ3にアクセスしIADRで指定されたメモリアドレス(0x80000000)からISIZEで指定された1024バイトのデータの読み出しを要求する。なお、入力DMA21は、上記(1)〜(3)の処理を実行しつつ、既に読み出されたディスクリプタが在る場合はそのディスクリプタに基づいて(4)の処理を同時に実行することが可能である。
(5)メモリ3は、入力DMA21からのデータ読み出し要求に応じて、バス4を介して入力DMA21へ1024バイトのデータを転送する。なお、ストリームプロセッサ2により複数の処理を並列に実行する場合は、上記(4)に記載の入力DMA21によるメモリ3へのアクセスと、(5)に記載のメモリ3によるデータの転送処理とを同時に実行することが可能である。
(6)入力DMA21は、メモリ3から受信したデータをDescriptor A中のCHSELで指定されたチャネル(=CH1)の入力FIFO24へ供給する。このとき、入力FIFO24にはデータと共にTID(=4)を合わせて送信する。なお、ストリームプロセッサ2にて複数の処理を並列に実行する場合、入力DMA21はメモリ3からの入力データの受信と、入力FIFO24に対するデータ転送とを同時に実行することが可能である。
(7)続いて、入力DMA21は、Descriptor AのOWNビットをアクセス権がストリームプロセッサ2にあることを示す「1」に変更し、ディスクリプタポインタを用いてメモリ3中のDescriptor Aを書き換える。
(8)次に、入力DMA21は、ディスクリプタ管理テーブル22へ全てのデータの読み出しが完了したことを示す完了フラグの登録要求を送信し、ディスクリプタ管理テーブル22のTID=4のエントリの書き込み完了フラグを「1」に書き換える。
(9)アレイ型プロセッサ23は、入力DMA21から受け取ったデータを順次処理し、処理後のデータと共にTID=4を出力する。このとき、アレイ型プロセッサ23から出力されるデータのサイズは、入力されたデータのサイズと必ずしも一致するとは限らない。なお、アレイ型プロセッサ23は、入力DMA21からデータを受信しつつ、処理した結果を出力することが可能である。
(10)メモリアクセス制御回路26は、アレイ型プロセッサ23から出力されたTID=4をディスクリプタ管理テーブル22へ転送する。
(11)メモリアクセス制御回路26は、ディスクリプタ管理テーブル22に登録されたTID=4に対応するDescriptor AからRADR(0x81000000)を取得する。
(12)続いて、メモリアクセス制御回路26は、アレイ型プロセッサ23から出力されたデータをRADR=0x81000000から始まるメモリ3のアドレス領域へ格納する。
(13)メモリアクセス制御回路26は、アレイ型プロセッサ23から出力されたデータをメモリ3へ全て格納したら、対応するディスクリプタの削除要求及びそのTIDをディスクリプタ管理テーブル22へ送信し、当該エントリの有効ビットを「0」(無効)にする。このとき、ディスクリプタ管理テーブル22は入力DMA21から完了フラグの登録要求が発行されているか否かを確認し、登録要求が発行されていない場合、すなわち、アレイ型プロセッサ23に対してディスクリプタで指定された処理毎の全データの入力が完了していない場合は、完了フラグの登録要求が発行されるまでエントリの削除処理を保留する。ディスクリプタ管理テーブル22は、入力DMA21からの完了フラグの登録要求が発行されたら、対応するディスクリプタ(Descriptor A)が格納されたエントリの有効ビットを「0」(無効)にする。また、同時に後段の処理にて対応するディスクリプタのTCMPビットが処理の完了を示す「1」に更新されるのを防止する。
(14)メモリアクセス制御回路26は、ディスクリプタポインタにしたがってメモリ3へアクセスし、Descriptor A(0x40000000)のTCMPビットを「1」に書き換えると共に、必要に応じてCPU1などの外部デバイスに対して割り込み信号を送信する(INT=1のとき)。なお、メモリアクセス制御回路26は、上記(9)に記載のアレイ型プロセッサ23から出力された出力データの受信処理を実行しつつ、上記(10)〜(14)に記載の一連の処理を実行可能である。
本発明の情報処理装置によれば、ディスクリプタ内の情報を用いて処理対象のデータである入力データと処理後のデータである出力データの対応関係を管理できるため、複数の処理を並列に実行する構成であっても、出力データがどの入力データに対応しているかの関連付けが可能になる。したがって、CPU1とストリームプロセッサ2とを備えた情報処理装置を構成すれば、CPU1単体では実現できなかったスループットを得ることが可能になり、さらにストリームプロセッサ2により複数の処理を並列に実行できるため、より高いスループットを得ることができる。特にキュー構造のディスクリプタをCPU1等により予めメモリ3内に構築しておき、ストリームプロセッサ2による処理時に、これらのディスクリプタを順次読み出し、処理対象となるデータを連続してストリームプロセッサ2へ供給して処理させることで、アレイ型プロセッサ23へデータを効率良く転送でき、かつ処理した結果もメモリ3へ効率よく書き戻すことができるため、情報処理装置の処理性能が向上する。
また、本実施形態の情報処理装置によれば、一つの処理のみを実行する場合でも、従来の情報処理装置とは異なり、アレイ型プロセッサ23やCPU1においてデータをDMA転送するためのディスクリプタ設定が不要であることからオーバーヘッドが軽減される。したがって、本発明の情報処理装置は、一つの処理のみを実行する場合でも従来の情報処理装置に比べて情報処理装置としての処理性能が向上する。
なお、本発明の情報処理装置は、上記CPU1、ストリームプロセッサ2、メモリ3及びバス4を1つの半導体集積回路装置に備えた構成であってもよく、これらの構成要素が持つ機能を複数の半導体集積回路装置によって実現する構成であってもよい。
また、本発明では、ストリームプロセッサ2に供給する処理対象となるデータを読み出すためのディスクリプタ構造(a)、ストリームプロセッサ2に処理を依頼し、データを入力し、出力されたデータを受信するために、CPU1上で実行されるプログラム(b)、ストリームプロセッサ2に含まれる入力DMA21、アレイ型プロセッサ23、ディスクリプタ管理テーブル22、及びメモリアクセス制御回路26の処理をプロセッサ(CPUやDSP)で実現するためのプログラム(c)、ストリームプロセッサ2に対するディスクリプタポインタの設定等、ストリームプロセッサ2の動作を制御するためにCPU1で実行するプログラム(d)、並びに上記(a)−(d)に記載のプログラムが格納される記録媒体も発明の範囲に含まれる。
本発明の情報処理装置の一構成例を示すブロック図である。 図1に示した情報処理装置で用いるディスクリプタのフォーマットを示す模式図である。 図1に示した情報処理装置で用いるディスクリプタキューの一構成例を示す模式図である。 図1に示したディスクリプタ管理テーブルの使用例を示す図であり、同図(a)はディスクリプタ管理テーブルに入出力される信号例を示すブロック図、同図(b)はディスクリプタ管理テーブルが備えるエントリフィールドの構成例を示す模式図である。 図1に示した情報処理装置の動作を示す模式図である。 従来の情報処理装置の構成を示すブロック図である。
符号の説明
1 CPU
2 ストリームプロセッサ
3 メモリ
4 バス
21 入力DMA
22 ディスクリプタ管理テーブル
23 アレイ型プロセッサ
24 入力FIFO
25 出力FIFO
26 メモリアクセス制御回路

Claims (24)

  1. 処理対象のデータが格納されたアドレスを示す入力アドレス情報、及び処理後のデータの格納先アドレスを示す出力アドレス情報をそれぞれ含む複数のディスクリプタが格納されたメモリと、
    前記複数のディスクリプタの各々から得られる前記入力アドレス情報にしたがって前記処理対象のデータを前記メモリから読み出し、該データに対して所定の処理を実行し、前記出力アドレス情報にしたがって処理後のデータを前記メモリへ書き戻す、複数の前記所定の処理を並列に実行可能なストリームプロセッサと、
    を有し、
    前記ストリームプロセッサは、
    複数の前記所定の処理を並列に実行可能なプロセッサグループと、
    ディスクリプタ管理テーブルと、
    前記メモリから前記複数のディスクリプタを取得し、該複数のディスクリプタの各々に含まれる前記入力アドレス情報にしたがって処理対象のデータを前記メモリから読み出し前記プロセッサグループへ供給する入力DMAと、
    取得された前記複数のディスクリプタの各々に含まれる前記出力アドレス情報が格納された前記ディスクリプタ管理テーブルから前記出力アドレスを読み出し、前記プロセッサグループの処理結果を前記出力アドレスにしたがって前記メモリへ書き戻すメモリアクセス制御回路と、
    を備え、
    前記入力アドレス情報と前記出力アドレス情報は前記ディスクリプタに含まれる識別子により対応付けられ、
    前記プロセッサグループが前記識別子を前記入力DMAから入力し、前記処理結果を前記識別子とともに前記メモリに出力する情報処理装置。
  2. 前記複数のディスクリプタの各々は、
    該複数のディスクリプタ各々を識別するための識別子を備え、
    前記ディスクリプタ管理テーブルに、前記メモリから取得した前記複数のディスクリプタが前記識別子毎に格納され、
    前記入力DMAは、
    前記複数のディスクリプタと共に前記識別子を前記プロセッサグループへ供給し、
    前記メモリアクセス制御回路は、
    前記プロセッサグループから出力される前記識別子を用いて前記ディスクリプタ管理テーブルに格納された対応するディスクリプタから前記出力アドレス情報を読み出し、前記プロセッサグループの処理結果を前記メモリへ書き戻す請求項1記載の情報処理装置。
  3. 前記入力DMAは、
    前記複数のディスクリプタで指定された前記処理対象のデータの全てを前記プロセッサグループへ転送すると、全データの転送完了を示す完了信号を前記ディスクリプタ管理テーブルへ送信し、
    前記ディスクリプタ管理テーブルは、
    前記完了信号を受信するまで対応するディスクリプタの削除を保留する請求項2記載の情報処理装置。
  4. 前記プロセッサグループは、
    前記複数のディスクリプタの各々に含まれる前記入力アドレス情報にしたがって読み出した処理対象のデータに対する処理が完了すると、該データの終わりを示すエンド信号を出力する請求項2記載の情報処理装置。
  5. 前記複数のディスクリプタ各々に前記データに対するアクセス権が前記ストリームプロセッサにあるか否かを示すオーナビットを備え、
    前記入力DMAは、
    前記複数のディスクリプタの各々に含まれる前記入力アドレス情報にしたがって処理対象のデータを前記メモリから読み出すと、前記メモリに格納されたディスクリプタに含まれる前記オーナビットを、前記ストリームプロセッサに前記アクセス権があることを示す値に更新する請求項2記載の情報処理装置。
  6. 前記複数のディスクリプタ各々に、前記出力アドレス情報にしたがって前記ストリームプロセッサによる処理後のデータの前記メモリへの転送が完了したか否かを示すトランザクションコンプリートビットを備え、
    前記メモリアクセス制御回路は、
    前記プロセッサグループによる処理後のデータの前記メモリへの転送が全て完了したとき、対応するディスクリプタの前記トランザクションコンプリートビットを転送の完了を示す値に設定する請求項5記載の情報処理装置。
  7. 前記情報処理装置は、
    前記ストリームプロセッサの動作を制御するホストプロセッサを有し、
    前記ホストプロセッサは、
    前記複数のディスクリプタを、前記ストリームプロセッサからの連続した読み出しが可能に生成し、前記メモリに格納する請求項2記載の情報処理装置。
  8. 前記ホストプロセッサは、
    前記ストリームプロセッサで処理中のデータに一意に対応するディスクリプタを交互にポーリングし、該ディスクリプタの前記オーナビット及び前記トランザクションコンプリートビットをそれぞれ監視する請求項7記載の情報処理装置。
  9. 前記ホストプロセッサは、
    前記ストリームプロセッサによるデータの処理が完了し、前記ホストプロセッサから該データに一意に対応するディスクリプタへのアクセスが可能になった時点で、該ディスクリプタに付与した識別子を他の処理対象のデータに一意に対応するディスクリプタへ割り付ける請求項7記載の情報処理装置。
  10. 前記ストリームプロセッサは、
    処理実行中のディスクリプタを保持する一時記憶装置を有する請求項1記載の情報処理装置。
  11. 前記複数のディスクリプタの各々は、
    該複数のディスクリプタ各々を識別するための識別子を備え、
    前記一時記憶装置は、
    前記メモリから取得した前記複数のディスクリプタが前記識別子毎に格納されるディスクリプタ管理テーブルである請求項10記載の情報処理装置。
  12. 前記プロセッサグループは、
    アレイ型プロセッサ、プログラマブルロジック、ハードワイヤードロジック、CPUまたはDSPのうちの少なくともいずれか一つを含む複数から成る請求項2記載の情報処理装置。
  13. 処理対象のデータが格納されたアドレスを示す入力アドレス情報、及び処理後のデータの格納先アドレスを示す出力アドレス情報をそれぞれ含む複数のディスクリプタが格納されたメモリと、
    前記複数のディスクリプタの各々から得られる前記入力アドレス情報にしたがって前記処理対象のデータを前記メモリから読み出し、該データに対して所定の処理を実行し、前記出力アドレス情報にしたがって処理後のデータを前記メモリへ書き戻す、複数の前記所定の処理を並列に実行可能なストリームプロセッサと、
    を有し、
    前記ストリームプロセッサは、
    複数の前記所定の処理を並列に実行可能なプロセッサグループと、
    ディスクリプタ管理テーブルと、
    前記メモリから前記複数のディスクリプタを取得し、該複数のディスクリプタの各々に含まれる前記入力アドレス情報にしたがって処理対象のデータを前記メモリから読み出し前記プロセッサグループへ供給する入力DMAと、
    取得された前記複数のディスクリプタの各々に含まれる前記出力アドレス情報が格納された前記ディスクリプタ管理テーブルから前記出力アドレスを読み出し、前記プロセッサグループの処理結果を前記出力アドレスにしたがって前記メモリへ書き戻すただ1つのメモリアクセス制御回路と、
    を備え、
    前記入力アドレス情報と前記出力アドレス情報は前記ディスクリプタに含まれる識別子により対応付けられ、
    前記プロセッサグループが前記識別子を前記入力DMAから入力し、前記処理結果を前記識別子とともに前記メモリに出力する情報処理装置。
  14. メモリから読み出したデータに対して複数の処理を並列に実行可能なストリームプロセッサであって、
    処理対象のデータが格納されたアドレスを示す入力アドレス情報、及び処理後のデータの格納先アドレスを示す出力アドレス情報をそれぞれ含む複数のディスクリプタの各々から得られる、前記入力アドレス情報にしたがって前記処理対象のデータを前記メモリから読み出し、該データに対して所定の処理を実行し、前記出力アドレス情報にしたがって処理後のデータを前記メモリへ書き戻す、複数の前記所定の処理を並列に実行可能であり、
    前記複数の所定の処理を並列に実行可能なプロセッサグループと、
    ディスクリプタ管理テーブルと、
    前記複数のディスクリプタを前記メモリから取得し、該複数のディスクリプタの各々に含まれる入力アドレス情報にしたがって処理対象のデータを前記メモリから読み出し前記プロセッサグループへ供給する入力DMAと、
    取得された前記複数のディスクリプタの各々に含まれる前記出力アドレス情報が格納された前記ディスクリプタ管理テーブルから前記出力アドレスを読み出し、前記プロセッサグループの処理結果を前記出力アドレスにしたがって前記メモリへ書き戻すメモリアクセス制御回路と、
    を備え、
    前記入力アドレス情報と前記出力アドレス情報は前記ディスクリプタに含まれる識別子により対応付けられ、
    前記プロセッサグループが前記識別子を前記入力DMAから入力し、前記処理結果を前記識別子とともに前記メモリに出力するストリームプロセッサ。
  15. 前記ディスクリプタ管理テーブルに、前記メモリから取得した前記複数のディスクリプタ各々が、該複数のディスクリプタ各々を識別するための識別子毎に格納され、
    前記入力DMAは、
    前記処理対象のデータと共に前記識別子を前記プロセッサグループへ供給し、
    前記メモリアクセス制御回路は、
    前記プロセッサグループから出力される該識別子を用いて前記ディスクリプタ管理テーブルに格納された対応するディスクリプタから前記出力アドレス情報を読み出し、前記プロセッサグループの処理結果を前記メモリへ書き戻す請求項14記載のストリームプロセッサ。
  16. 前記入力DMAは、
    前記複数のディスクリプタで指定された前記処理対象のデータの全てを前記プロセッサグループへ転送すると、全データの転送完了を示す完了信号を前記ディスクリプタ管理テーブルへ送信し、
    前記ディスクリプタ管理テーブルは、
    前記完了信号を受信するまで対応するディスクリプタの削除を保留する請求項14記載のストリームプロセッサ。
  17. 前記プロセッサグループは、
    前記複数のディスクリプタの各々に含まれる前記入力アドレス情報にしたがって読み出した処理対象のデータに対する処理が完了すると、該データの終わりを示すエンド信号を出力する請求項14記載のストリームプロセッサ。
  18. 前記複数のディスクリプタの各々に、前記データに対するアクセス権が前記ストリームプロセッサにあるか否かを示すオーナビットを備え、
    前記入力DMAは、
    前記ディスクリプタに含まれる前記入力アドレス情報にしたがって処理対象のデータを前記メモリから読み出すと、前記メモリに格納されたディスクリプタに含まれる前記オーナビットを、前記ストリームプロセッサに前記アクセス権があることを示す値に更新する請求項14記載のストリームプロセッサ。
  19. 前記複数のディスクリプタの各々に、前記出力アドレス情報にしたがって前記ストリームプロセッサによる処理後のデータの前記メモリへの転送が完了したか否かを示すトランザクションコンプリートビットを備え、
    前記メモリアクセス制御回路は、
    前記プロセッサグループによる処理後のデータの前記メモリへの転送が全て完了したとき、対応するディスクリプタの前記トランザクションコンプリートビットを転送の完了を示す値に設定する請求項18記載のストリームプロセッサ。
  20. 前記ストリームプロセッサは、
    処理実行中のディスクリプタを保持する一時記憶装置を有する請求項14記載のストリームプロセッサ。
  21. 前記複数のディスクリプタの各々は、
    該複数のディスクリプタ各々を識別するための識別子を備え、
    前記一時記憶装置は、
    前記メモリから取得した前記複数のディスクリプタが前記識別子毎に格納されるディスクリプタ管理テーブルである請求項20記載のストリームプロセッサ。
  22. 請求項1に記載の情報処理装置において、
    前記ホストプロセッサに実行させるためのプログラムであって、
    前記入力アドレス情報と前記出力アドレス情報と識別子とを有する前記複数のディスクリプタを、前記ストリームプロセッサからの連続した読み出しが可能に生成し、
    前記メモリに格納するためのプログラム。
  23. 前記データに対するアクセス権が前記ストリームプロセッサにあるか否かを示すオーナビット、及び前記出力アドレス情報にしたがって前記ストリームプロセッサによる処理後のデータの前記メモリへの転送が完了したか否かを示すトランザクションコンプリートビットを含めて前記複数のディスクリプタを生成し、
    前記ストリームプロセッサで処理中のデータに一意に対応するディスクリプタを交互にポーリングし、該ディスクリプタの前記オーナビット及び前記トランザクションコンプリートビットをそれぞれ監視するための請求項22記載のプログラム。
  24. 前記ストリームプロセッサによるデータの処理が完了し、前記ホストプロセッサから該データに一意に対応するディスクリプタへのアクセスが可能になった時点で、該ディスクリプタに付与した識別子を他の処理対象のデータに一意に対応するディスクリプタへ割り付けるための請求項22または23記載のプログラム。
JP2005297721A 2004-10-12 2005-10-12 情報処理装置 Active JP4170330B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005297721A JP4170330B2 (ja) 2004-10-12 2005-10-12 情報処理装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004297639 2004-10-12
JP2005297721A JP4170330B2 (ja) 2004-10-12 2005-10-12 情報処理装置

Publications (2)

Publication Number Publication Date
JP2006139766A JP2006139766A (ja) 2006-06-01
JP4170330B2 true JP4170330B2 (ja) 2008-10-22

Family

ID=36620525

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005297721A Active JP4170330B2 (ja) 2004-10-12 2005-10-12 情報処理装置

Country Status (1)

Country Link
JP (1) JP4170330B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013065687A1 (ja) * 2011-11-04 2013-05-10 学校法人 早稲田大学 プロセッサシステム及びアクセラレータ
WO2015198395A1 (ja) * 2014-06-24 2015-12-30 株式会社日立製作所 並列計算装置及びその制御方法
JP7383390B2 (ja) 2019-04-12 2023-11-20 キヤノン株式会社 情報処理ユニット、情報処理装置、情報処理方法及びプログラム

Also Published As

Publication number Publication date
JP2006139766A (ja) 2006-06-01

Similar Documents

Publication Publication Date Title
US7370123B2 (en) Information processing apparatus
JP4456490B2 (ja) Dma装置
US9086916B2 (en) Architecture for efficient computation of heterogeneous workloads
US10409746B2 (en) Memory access control device and control method of memory access
US11341087B2 (en) Single-chip multi-processor communication
JP2007207026A (ja) Dma転送装置
JP2007079789A (ja) 計算機システム及びイベント処理方法
JP5360061B2 (ja) マルチプロセッサシステム及びその制御方法
JP2006338538A (ja) ストリームプロセッサ
EP1508100B1 (en) Inter-chip processor control plane
US20190146935A1 (en) Data transfer device, arithmetic processing device, and data transfer method
JP2007034392A (ja) 情報処理装置及びデータ処理方法
JP4170330B2 (ja) 情報処理装置
JP2003271574A (ja) 共有メモリ型マルチプロセッサシステムにおけるデータ通信方法
US20080147906A1 (en) DMA Transferring System, DMA Controller, and DMA Transferring Method
JP6817827B2 (ja) アクセラレータ処理管理装置、ホスト装置、アクセラレータ処理実行システム、方法およびプログラム
US8706923B2 (en) Methods and systems for direct memory access (DMA) in-flight status
JP2013196509A (ja) 情報処理装置及びその制御方法
US20080209085A1 (en) Semiconductor device and dma transfer method
JP6146306B2 (ja) I/oデバイス制御システムおよびi/oデバイス制御システムの制御方法
JP2020017043A (ja) ノード装置、並列計算機システム、及び並列計算機システムの制御方法
RU2571376C1 (ru) Способ и устройство для параллельной обработки цифровой информации в вычислительной системе
KR102536943B1 (ko) 데이터 절감 장치, 데이터 절감 방법 및 데이터 절감 장치를 포함하는 시스템
JP6204313B2 (ja) 電子機器
JP2005285042A (ja) データ一括転送方法および装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070214

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070411

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070620

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20070720

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070809

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070720

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20070828

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080708

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080806

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4170330

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110815

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120815

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130815

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350