(57)【要約】【課題】ＤＳＰサブシステムでは、ＤＳＰコアには処理部での処理動作以外に、データ転送指示のためのＤＭＡＣの動作制御を行う必要があるため、処理速度向上の負荷となっており、高速化の妨げとなっている。【解決手段】ＤＳＰコア１１は処理を完了している最終データのアドレスを出力する処理アドレス出力回路１２を有する。ＤＭＡＣ１３は出力回路１２からのアドレスを一定間隔で監視しており、これが入力バッファ１４のメモリ領域＃２の先頭のアドレスに達したときは、ＤＭＡＣ１３がバスアービタ１５を制御して入力バッファ１４のメモリ領域＃１の先頭から新規データを書き込み始める。これと同時に、メモリ領域＃３の先頭から処理データを読み出す。ＤＳＰコア１１は処理データの読み出し、処理のためのデータ書き込みをＤＭＡＣに指示する必要はなく、ＤＳＰコア１１の負荷を軽減できる。【選択図】図１
2007206924.tif 000002
【特許請求の範囲】
【請求項１】
ディジタル演算処理装置を用いてデータの演算処理を行う演算処理システムであって、
処理すべき入力データを一時記憶する入力記憶手段と、
前記入力記憶手段から順次に出力されるデータに対して、前記ディジタル演算処理装置による所望のデータ処理を行うデータ処理手段と、
前記データ処理手段により処理が完了している最終データの処理アドレスを出力する処理アドレス出力手段と、
前記処理アドレス出力手段から出力される前記処理アドレスを監視し、該処理アドレスが、前記入力記憶手段を複数の領域に分割したときに、それまでデータ処理されていたデータが記憶されていた分割領域とは別の分割領域のアドレスに移行した時に、前記入力記憶手段の前記複数の分割領域のうち、該別の分割領域以外の分割領域に新たな処理すべき入力データを一時記憶させる、ＤＭＡＣによるインタフェース手段と
を有することを特徴とする演算処理システム。
【請求項２】
ディジタル演算処理装置を用いてデータの演算処理を行う演算処理システムであって、
処理すべき入力データを一時記憶する入力記憶手段と、
前記入力記憶手段から順次に出力されるデータに対して、前記ディジタル演算処理装置による所望のデータ処理を行うデータ処理手段と、
前記データ処理手段により処理が完了している最終データの処理アドレスを格納するアドレス値記憶手段と、
前記アドレス値記憶手段から任意に設定した時間間隔で前記処理アドレスを読み出し、その読み出した処理アドレスが、前記入力記憶手段を複数の領域に分割したときに、それまでデータ処理されていたデータが記憶されていた分割領域とは別の分割領域のアドレスに移行した時に、前記入力記憶手段の前記複数の分割領域のうち、該別の分割領域以外の分割領域に新たな処理すべき入力データを一時記憶させる、ＤＭＡＣによるインタフェース手段と
を有することを特徴とする演算処理システム。
【請求項３】
前記入力記憶手段に替えて、前記処理すべき入力データを一時記憶すると共に、前記データ処理手段により処理された処理済みのデータを一時記憶する入出力記憶手段を設け、
前記インタフェース手段は、前記入出力記憶手段を複数の領域に分割し、複数の分割領域のうち、前記データ処理手段へデータが出力される第１の分割領域のデータ出力済みの領域部分に前記データ処理手段で処理された処理済みのデータを一時記憶させた後、外部へ該第１の分割領域内の処理済みのデータを読み出し、前記第１の分割領域以外の第２の分割領域に、前記第１の分割領域からのデータのデータ処理期間及び外部へのデータ出力期間中に新たなデータを入力して一時記憶させることを特徴とする請求項１又は２記載の演算処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は演算処理システムに係り、特にディジタル演算処理装置（ＤＳＰ：Digital Signal Processor）を用いて高速演算処理を行う演算処理システムに関する。
【背景技術】
【０００２】
ディジタル信号処理用の１チップ・マイクロセッサであるＤＳＰは、データメモリとして小容量のＳＲＡＭ（Static Random Access Memory）を接続することが多い。これはＤＳＰが演算処理に特化したアーキテクチャで、かつ、より高速な処理を実現するために高速なメモリ（ランダムアクセスを含む）を要求するためである。また、ＤＳＰは汎用の中央処理装置（ＣＰＵ:Central Processing Unit）と組み合わせたマルチプロセッサシステムとなることが多い（例えば、特許文献１参照）。その理由は、ＤＳＰが特定の信号処理ブロックとして扱われ、全体を制御するＣＰＵが必要とされるからである。
【０００３】
図８はマルチプロセッサシステムの一例のブロック図を示す。同図において、システム全体を制御するＣＰＵ１は命令用メモリ２が接続されると共にバス３に接続され、更にバス３上にはメインメモリ４と特定の機能を果たす、複数の（ここでは一例として２つの）ＤＳＰサブシステム５ａ、５ｂが接続されている。通常、バス３上にはメインメモリ４が接続され、処理結果が随時保存される。
【０００４】
ＤＳＰサブシステム５ａ、５ｂは、演算を行うＤＳＰコア６ａ、６ｂが命令用メモリ７ａ、７ｂに接続されると共に、データＲＡＭ（Random Access Memory）８ａ、８ｂと、ＤＭＡＣ（Direct Memory Access Controller）によるバスインタフェース（ＩＦ）９ａ、９ｂとがバスを介して接続されている。データ用メモリであるＲＡＭ８ａ及び８ｂは、前述した理由から小容量のＳＲＡＭで構成されている。ＤＳＰサブシステム５ａ、５ｂには処理すべきデータの入出力のためのバスＩＦ９ａ、９ｂを装備する必要があり、一般的にはこのバスＩＦ９ａ、９ｂにＤＭＡＣを採用し、ＤＳＰ処理負荷を軽減している。
【０００５】
従来のバスＩＦ９ａ、９ｂはＤＭＡＣを用いたダブルバッファ方式となっている。これはメモリ領域を２つに分け、１つの領域にＤＭＡＣが読み込みあるいは書き出しを行う間、別の領域でＤＳＰコア６ａ、６ｂが処理を行い、処理が終わると領域を入れ替えるためである。つまり、ＤＳＰサブシステム５ａ、５ｂでは、バッファ分のデータ入力、処理、出力という動作を繰り返している。
【０００６】
図９は上記のＤＳＰサブシステムの一例の構成図を示す。図９に示す一つのＤＳＰサブシステムは、図８に示したＤＳＰサブシステム５ａ又は５ｂを構成しており、入力バッファ８１と出力バッファ８２の各メモリ領域を２つに分け、１つの領域にＤＭＡＣ９１がデータの書き込み又は読み出しを行う間、もう一方の領域でＤＳＰコア６１が処理部６２により処理を行わせ、処理が終わるとメモリ領域に対する動作を入れ替えるダブルバッファ方式を採用している。このＤＳＰサブシステムでは、バッファ分のデータ入力、処理、出力という動作を繰り返している。
【０００７】
図９において、入力バッファ８１及び出力バッファ８２は、図８のデータＲＡＭ８ａ（又は８ｂ）に相当し、ＤＳＰコア６１、処理部６２、処理部６２の入力側スイッチＳＷ２及び出力側スイッチＳＷ３は、図８のＤＳＰコア６ａ（又は６ｂ）に相当し、ＤＭＡＣ９１、入力バッファ８１の入力側スイッチＳＷ１及び出力バッファ８２の出力側スイッチＳＷ４は、図８のバスＩＦ９ａ（又は９ｂ）に相当する。
【０００８】
次に、このＤＳＰサブシステムの動作について図１０のタイミングチャーチと共に説明する。ＤＳＰコア６１が処理部６２での処理を開始させるのに先立ち、ＤＭＡＣ９１に処理１に必要なデータを入力バッファ８１の領域＃１へ転送するように指示する。ＤＳＰコア６１は図１０（Ａ）にａ１で模式的に示すように、スイッチＳＷ１を通して入力バッファ８１の一方のメモリ領域＃１にデータが一杯に書き込まれるまで待ってから（Ｆｉｌｌ待ちしてから）、処理部６２が領域＃１からデータを読み出し、処理結果を出力バッファ８２の一方のメモリ領域＃３に書き込めるよう、ＤＳＰコア６１がＳＷ２及びＳＷ３を切り替える。ＳＷの切り替えとは、具体的には処理部６２が読み書きするアドレスをＤＳＰコア６１が指定することで行う。
【０００９】
図１０（Ａ）のａ２はＤＳＰコア６１によるスイッチＳＷ２に対してメモリ領域＃１のデータを処理部６２へ出力させる転送指示を示し、同図（Ａ）のａ３は処理部６２によるメモリ領域＃１からのデータに対する処理動作（この場合、処理０）を示す。また、図１０（Ｂ）のｂ１は入力バッファ８１のメモリ領域＃１へのデータ転送状態を示し、同図（Ｂ）のｂ２はメモリ領域＃１に処理０用のデータが格納されている状態を示す。
【００１０】
また、ＤＳＰコア６１は上記の処理部６２によりメモリ領域＃１のデータに対する処理０の処理を開始させる前に、処理０に続く処理１用のデータを入力バッファ８１のもう一方のメモリ領域＃２へ転送するようにＤＭＡＣ９１に指示する。ＤＳＰコア６１からＤＭＡＣ９１への指示とは、具体的にはＤＭＡＣ９１の設定レジスタに開始アドレス、転送回数等をＤＳＰプログラムによって設定することである。これにより、処理部６２が処理０を行っている間、図１０（Ｃ）にｃ１で示すように、ＤＭＡＣ９１によりスイッチＳＷ１を通して入力バッファ８１のメモリ領域＃２へ処理１用の新規のデータが入力される。処理０の実行中、メモリ領域＃２にはデータが一杯に蓄えられる。
【００１１】
処理部６２によるメモリ領域＃１のデータに対する処理０の処理結果が、図１０（Ｄ）にｄ１で模式的に示すように、出力バッファ８２の一方のメモリ領域＃３に溜まりきると、ＤＳＰコア６１はＳＷ１、ＳＷ２、ＳＷ３及びＳＷ４をそれまでとは反対側に一斉に切り替える。
【００１２】
すなわち、ＤＳＰコア６１は図１０（Ａ）にａ４で示すように、メモリ領域＃３に蓄えられた処理０の処理結果を外部へ転送するようにＤＭＡＣ９１に転送指示を行うと共に、スイッチＳＷ２を領域＃１の出力側から領域＃２の出力側へ切り替え、かつ、スイッチＳＷ３を領域＃３の入力側から領域＃４の入力側へ切り替える。また、このとき、ＤＭＡＣ９１はスイッチＳＷ１を領域＃２の入力側から領域＃１の入力側へ切り替え、かつ、スイッチＳＷ４を領域＃４の出力側から領域＃３の出力側へ切り替える。これにより、出力バッファ８２のメモリ領域＃３に蓄えられた処理０の処理結果は、図１０（Ｄ）にｄ２で示すようにスイッチＳＷ４を通して外部へ転送され始める。
【００１３】
続いて、ＤＳＰコア６１はメモリ領域＃２に蓄積され終わった処理１用のデータの処理部６２への入力転送を図１０（Ａ）にａ５で示すように行って処理部６２により処理１の処理を開始させるが、その前に次の処理２用のデータを入力バッファ８１のメモリ領域＃１へ転送するようにＤＭＡＣ９１に指示する。これにより、図１０（Ｃ）にｃ２で示すように、メモリ領域＃２に処理１用のデータが蓄積されている状態において、処理部６２が同図（Ａ）にａ６で模式的に示すように、処理１用のデータに対して処理１を行っている間、同図（Ｂ）にｂ３で示すように、ＤＭＡＣ９１によりスイッチＳＷ１を通して入力バッファ８１のメモリ領域＃１へ処理２用の新規のデータが入力される。また、処理部６２による処理１の処理結果は、スイッチＳＷ３を介して図１０（Ｅ）にｅ１で示すように、出力バッファ８２の領域＃４に蓄積される。以下、上記と同様の動作が繰り返される。
【００１４】
なお、上記の例は最も単純な例であり、実際には２系統以上の入力、２系統以上の出力となる場合が多く、ＳＷの切り替えはさらに多く複雑になる。
【００１５】
【特許文献１】特許第２５１０２７８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
図８〜図１０と共に説明したように、従来の演算処理システムの一例であるＤＳＰサブシステムでは、ＤＳＰコア６ａ、６ｂには処理部６２での処理動作以外に、データ転送指示のためのＤＭＡＣ９ａ、９ｂの動作制御を行う必要があるため、処理速度向上の負荷となっており、ＤＳＰでの高速処理を追求していくと、このＤＭＡＣ制御（バッファ管理）は高速化の妨げとなっている。
【００１７】
本発明は以上の点に鑑みなされたもので、ＤＭＡＣ制御によるＤＳＰ負荷を最小限に抑え，高速化を実現する演算処理システムを提供することを目的とする。
【課題を解決するための手段】
【００１８】
本発明は上記の目的を達成するため、ディジタル演算処理装置を用いてデータの演算処理を行う演算処理システムであって、処理すべき入力データを一時記憶する入力記憶手段と、入力記憶手段から順次に出力されるデータに対して、ディジタル演算処理装置による所望のデータ処理を行うデータ処理手段と、データ処理手段により処理が完了している最終データの処理アドレスを出力する処理アドレス出力手段と、処理アドレス出力手段から出力される処理アドレスを監視し、処理アドレスが、入力記憶手段を複数の領域に分割したときに、それまでデータ処理されていたデータが記憶されていた分割領域とは別の分割領域のアドレスに移行した時に、入力記憶手段の複数の分割領域のうち、別の分割領域以外の分割領域に新たな処理すべき入力データを一時記憶させる、ＤＭＡＣによるインタフェース手段とを有することを特徴とする。
【００１９】
この発明では、データ処理手段に処理アドレス出力手段を設け、かつ、インタフェース手段が処理アドレスを認識してデータ処理手段の入出力制御を自己判定する機能を有するようにしたため、データ処理手段によるインタフェース手段に対する処理データの読み出し、処理のためのデータ書き込みの指示を不要にできる。
【００２０】
また、上記の目的を達成するため、本発明は、処理すべき入力データを一時記憶する入力記憶手段と、入力記憶手段から順次に出力されるデータに対して、ディジタル演算処理装置による所望のデータ処理を行うデータ処理手段と、データ処理手段により処理が完了している最終データの処理アドレスを格納するアドレス値記憶手段と、アドレス値記憶手段から任意に設定した時間間隔で処理アドレスを読み出し、その読み出した処理アドレスが、入力記憶手段を複数の領域に分割したときに、それまでデータ処理されていたデータが記憶されていた分割領域とは別の分割領域のアドレスに移行した時に、入力記憶手段の複数の分割領域のうち、別の分割領域以外の分割領域に新たな処理すべき入力データを一時記憶させる、ＤＭＡＣによるインタフェース手段とを有することを特徴とする。
【００２１】
この発明では、処理を完了している最終データの処理アドレスをアドレス値記憶手段に書き込んで、それをインタフェース手段が読み出し、読み出した処理アドレスがそれまでデータ処理されていたデータが記憶されていた分割領域とは別の分割領域のアドレスに移行した時に、入力記憶手段の複数の分割領域のうち、別の分割領域以外の分割領域に新たな処理すべき入力データを一時記憶させる、入出力制御を自己判定する機能をインタフェース手段に設けることにより、データ処理手段は処理のみを連続して行うため、負荷を軽減できる。
【００２２】
また、上記の目的を達成するため、上記の発明における入力記憶手段に替えて、処理すべき入力データを一時記憶すると共に、データ処理手段により処理された処理済みのデータを一時記憶する入出力記憶手段を設けてもよく、この場合は、上記のインタフェース手段は、入出力記憶手段を複数の領域に分割し、複数の分割領域のうち、データ処理手段へデータが出力される第１の分割領域のデータ出力済みの領域部分にデータ処理手段で処理された処理済みのデータを一時記憶させた後、外部へ第１の分割領域内の処理済みのデータを読み出し、第１の分割領域以外の第２の分割領域に、第１の分割領域からのデータのデータ処理期間及び外部へのデータ出力期間中に新たなデータを入力して一時記憶させることを特徴とする。
【発明の効果】
【００２３】
本発明によれば、ディジタル演算処理装置によるデータ処理手段の処理アドレスを、ＤＭＡＣによるインタフェース手段が読み出して認識し、入出力制御を自己判定する機能を設けることにより、ディジタル演算処理装置が従来行っていたＤＭＡＣによるインタフェース手段に対する処理データの読み出し、処理のためのデータの書き込みの指示を不要にするようにしたため、ディジタル演算処理装置の負荷を軽減でき、その処理速度を従来に比べて向上することができる。
【００２４】
また、本発明によれば、インタフェース手段が読み出す、処理を完了している最終データのアドレス値を、ディジタル演算処理装置の処理プログラムにより実装できるため、ディジタル演算処理装置（ＤＳＰコア）の変更を伴わず、処理速度の向上の実現が容易となる。
【発明を実施するための最良の形態】
【００２５】
次に、本発明の実施の形態について図面と共に説明する。
【００２６】
（第１の実施の形態）
図１は本発明になる演算処理システムの第１の実施の形態のブロック図を示す。この実施の形態は一つのＤＳＰサブシステムを構成しており、ＤＳＰコア１１、処理アドレス出力回路１２、転送開始判断機能内蔵ＤＭＡＣ１３、入力バッファ１４、バスアービタ１５及び出力バッファ１６から構成されている。入力バッファ１４はメモリ領域を＃１と＃２の２つに分けて使用され、同様に、出力バッファ１６もメモリ領域を＃３と＃４の２つに分けて使用される。
【００２７】
ＤＳＰコア１１と処理アドレス出力回路１２とは、例えば図２のブロック図に示す構成とされている。ＤＳＰコア１１はプログラムを実行するために複数の汎用レジスタ１１０〜１１３と、複数のループ（Ｌｏｏｐ）レジスタ１１４、１１５を有しており、処理アドレス出力回路１２を構成するセレクタ１２１でどのレジスタ値を出力するかを選択できるようにしている。処理プログラムは、ここで選択されたレジスタに処理アドレスが入るように作成する。なお、処理アドレス出力回路１２はループレジスタを選択し、その値をそのまま出力するのではなく、レジスタの値が例えば”０”になったら、ある信号を出力する回路でもよい。
【００２８】
次に、本実施の形態の動作について説明する。いま、入力バッファ１４のメモリ領域＃１及び＃２には、既に新規のデータが溜まっており、出力バッファ１６メモリ領域＃３及び＃４には処理データが全くない状態とする。ＤＳＰコア１１はバスアービタ１５に対して、入力バッファ１４の先頭（メモリ領域＃１の先頭）のデータから順に処理していき、その処理結果を出力バッファ１６にメモリ領域＃３から順次に書き込んでいく処理制御を行う。
【００２９】
ＤＳＰコア１１は処理を完了している最終データのアドレスを出力する処理アドレス出力回路１２を持っており、これが転送開始判断機能内蔵ＤＭＡＣ１３へ常に処理アドレスを出力しておく。転送開始判断機能内蔵ＤＭＡＣ１３はこのアドレスを一定間隔で監視しており、これが入力バッファ１４のメモリ領域＃２の先頭のアドレスに達したときは、当該ＤＭＡＣ１３がバスアービタ１５を制御して入力バッファ１４のメモリ領域＃１の先頭から新規データを書き込み始める。
【００３０】
また、これと同時に、処理を完了している最終データのアドレスが入力バッファ１４のメモリ領域＃２の先頭のアドレスに達したときは、出力バッファ１６の書き込みのアドレスはメモリ領域＃４の先頭に達しており、メモリ領域＃３内には処理データが書き込み終わっているので、メモリ領域＃３の先頭から処理データを読み出す。ＤＭＡＣ１３はこれらの転送開始を自己判断できる機能を持っている。
【００３１】
処理が進み、転送開始判断機能内蔵ＤＭＡＣ１３が監視している処理アドレスが入力バッファ１４のメモリ領域＃１の先頭に戻ると、転送開始判断機能内蔵ＤＭＡＣ１３が入力バッファ１４のメモリ領域＃２の先頭から新規データの書き込みを開始し、出力バッファ１６のメモリ領域＃４の先頭から処理データの読み出しを開始する。以降上記の動作を繰り返す。
【００３２】
このように、本実施の形態によれば、ＤＳＰコア１１に処理アドレス出力回路１２を設け、かつ、ＤＭＡＣ１３が処理アドレスを認識してバスアービタ１５の入出力制御を自己判定する機能を有するようにしたため、ＤＳＰコア１１は従来のように処理データの読み出し、処理のためのデータ書き込みをＤＭＡＣに指示する必要はなく、ＤＳＰコア１１の負荷を軽減できるため、ＤＳＰ処理速度を向上できる。
【００３３】
（第２の実施の形態）
図３は本発明になる演算処理システムの第２の実施の形態のブロック図を示す。同図中、図１と同一構成部分には同一符号を付してある。図３の第２の実施の形態は、入力バッファと出力バッファとを共通化した、入出力バッファ１８を設けた点に特徴がある。この実施の形態では、入出力バッファ１８を２つのメモリ領域＃１と＃２に分け、一方をデータ書き込み動作させ、他方を読み出し動作させ、かつ、それを交互に切り替える動作を行う。
【００３４】
この実施の形態の動作について説明する。いま、入出力バッファ１８の領域＃１及び＃２には、既に新規のデータが埋まっている状態とする。バスアービタ１５は、転送開始制御機能内蔵ＤＭＡＣ１３の入出力制御に基づき、入出力バッファ１８の先頭（メモリ領域＃１の先頭）のデータから順次に読み出して処理していき、その処理結果をメモリ領域＃１内の不要となった部分に書き込んでいく。
【００３５】
ＤＭＡＣ１３が監視しているバスアービタ１５の処理アドレスが、入出力バッファ１８のメモリ領域＃２の先頭に達すると、入出力バッファ１８のメモリ領域＃１内には、その直前にメモリ領域＃１内に格納されていたすべての新規データに対してバスアービタ１５により処理された処理結果が格納されているので、ＤＭＡＣ１３がバスアービタ１５を制御して入出力バッファ１８のメモリ領域＃１から処理データを外部へ読み出し、その読み出し終了後、メモリ領域＃１に次の新規データを書き込む。
【００３６】
上記のメモリ領域＃１からの処理結果の外部への読み出しと、次の新規データのメモリ領域＃１への書き込みの期間中は、入出力バッファ１８のメモリ領域＃２の先頭から読み出された新規データに対するバスアービタ１５とＤＳＰコア１１による処理と、その処理結果のメモリ領域＃２の既にデータが読み出された領域部分への書き込み処理とが行われている。
【００３７】
そして、処理が進み、ＤＭＡＣ１３が監視しているバスアービタ１５の処理アドレスが、メモリ領域＃２の最後からメモリ領域＃１の先頭に戻ると、入出力バッファ１８のメモリ領域＃２内には、その直前にメモリ領域＃２内に格納されていたすべての新規データに対して処理された処理結果が格納されているので、ＤＭＡＣ１３がバスアービタ１５を制御して入出力バッファ１８のメモリ領域＃２から処理データを外部へ読み出し、その読み出し終了後、メモリ領域＃２に次の新規データを書き込む。
【００３８】
また、上記のメモリ領域＃２からの処理結果の外部への読み出しと、次の新規データのメモリ領域＃２への書き込みとが行われている期間中は、入出力バッファ１８のメモリ領域＃１の先頭から読み出された新規データに対するバスアービタ１５とＤＳＰコア１１による処理と、その処理結果のメモリ領域＃１の既にデータが読み出された領域部分への書き込み処理とが行われている。以下、上記と同様の動作が繰り返される。
【００３９】
このように、本実施の形態も、第１の実施の形態と同様に、ＤＳＰコア１１は従来のように処理データの読み出し、処理のためのデータ書き込みをＤＭＡＣに指示する必要はなく、ＤＳＰコア１１の負荷を軽減できるため、ＤＳＰ処理速度を向上できる。
【００４０】
（第３の実施の形態）
図４は本発明になる演算処理システムの第３の実施の形態のブロック図を示す。この実施の形態は一つのＤＳＰサブシステムを構成しており、ＤＳＰコア２１、高機能ＤＭＡＣ２２、入力バッファ２３、バスアービタ２４及び出力バッファ２５から構成されている。入力バッファ２３はメモリ領域を＃１と＃２の２つに分けて使用され、同様に、出力バッファ２５もメモリ領域を＃３と＃４の２つに分けて使用される。
【００４１】
図５は高機能ＤＭＡＣ２２の一実施の形態の構成図を示す。高機能ＤＭＡＣ２２は本実施の形態の特徴の一つである。高機能ＤＭＡＣ２２は、通常のＤＭＡＣの持つデータ転送機能部２２４のほかに、読み出し間隔設定レジスタ２２０を備えた処理アドレス読み出し機能部２２１と、最終転送領域記憶レジスタ２２２を備えた転送開始判定機能部２２３とを有する。
【００４２】
処理アドレス読み出し機能部２２１は、一定間隔で入力バッファ２３内の特定アドレス（ここでは、メモリ２６のアドレス）にアクセスし、そこの値を読み出す機能部である。読み出し間隔は読み出し間隔設定レジスタ２２０のレジスタ値によって自由に変えられる。この読み出し間隔設定レジスタ２２０のレジスタ値は処理速度と同調するよう、ＤＳＰコア２１が設定する。
【００４３】
転送開始判定機能部２２３は、最後に転送を行った領域を記憶しており読み出したアドレス値と比較して次の転送が行えるかを判断する機能部であり、メモリ２６からの処理アドレスに基づいてデータ転送機能部２２４の転送制御を行う。データ転送機能部２２４は、指定された領域に書き込み、あるいは読み出しといった転送を行う機能部であり、バスアービタ２４に対して入出力制御を行う。
【００４４】
次に、本実施の形態の動作について図６のタイミングチャートと共に説明する。入力バッファ２３のメモリ領域＃１及び＃２、出力バッファ２５のメモリ領域＃３及び＃４はそれぞれ１２８バイトの容量を持つ例で説明する。ＤＳＰコア２１がバスアービタ２４により処理を開始させるのに先立ち、高機能ＤＭＡＣ２２が各１バイトの処理０用データＤ０からデータＤ１２７を入力バッファ２３の領域＃１へ図６（Ｃ）にｃ１１で示すように転送制御する。
【００４５】
入力バッファ２３の領域＃１への処理０用データの転送完了後、図６（Ａ）にａ１１で模式的に示すように、ＤＳＰコア２１によりバスアービタ２４が入力バッファ２３の領域＃１の先頭のアドレスから処理０用データの先頭のデータＤ０から順に処理していく（処理０）。このときは、入力バッファ２３は、領域＃１に図６（Ｃ）にｃ１２で示すように処理０用データが格納されている状態にある。また、バスアービタ２４とＤＳＰコア２１による処理０の処理結果は、出力バッファ２５のメモリ領域＃３の先頭のアドレスから順に書き込んでいく。図６（Ｅ）のｅ１１は上記のメモリ領域＃３に処理０の処理結果が書き込まれる状態を模式的に示す。
【００４６】
ここで、ＤＳＰコア２１はバスアービタ２４で処理を完了する分割領域の最終データのアドレス値（処理アドレス）を、予め入力バッファ２３の特定位置（アドレス）であるメモリ２６内に書き込んでおく。データの入出力、つまりバッファリングにはこの位置（アドレス）は使用しない。この機能はＤＳＰコア２１のハードウェア変更を必要とせず、ＤＳＰ処理プログラムのみの変更で可能となる。
【００４７】
高機能ＤＭＡＣ２２はメモリ２６のデータ（処理アドレス）を一定間隔で読み出す機能を持っている。読み出し間隔は処理速度と関連し、ＤＳＰコア２１がこれを設定する。処理が進むにつれて、処理アドレスは図６（Ｂ）に示すように変化する。高機能ＤＭＡＣ２２は、読み出した処理アドレスの値が、入力バッファ２３のメモリ領域＃２内のアドレス”Ａ０”を示したタイミングで、次の処理１用データＤ１２８からデータＤ２５５を、図６（Ｄ）にｄ１１で模式的に示すように、入力バッファ２３の領域＃２へ転送して書き込む。
【００４８】
処理が進み、高機能ＤＭＡＣ２２は処理アドレスがメモリ２６から読み出したメモリ領域＃１のデータの最終アドレスである”Ａ１２７”となると、そのタイミングで入力バッファ２３のメモリ領域＃１のデータＤ０〜Ｄ１２７のデータ処理（処理０）が完了したと判断して、バスアービタ２４の入力を入力バッファ２３のメモリ領域＃２からのデータに切り替え、かつ、バスアービタ２４の出力を出力バッファ２５の領域＃４へと切り替えることで、ＤＳＰコア２１は連続して処理を実行する。
【００４９】
また、続く処理アドレス”Ａ１２８”のタイミングで、入力バッファ２３のメモリ領域＃１は空状態、出力バッファ２５のメモリ領域＃３はフル状態になるため、高機能ＤＭＡＣ２２はこれを判断し、出力バッファ２５のメモリ領域＃３の処理０の処理結果の外部への出力転送を図６（Ｅ）にｅ１２で示すように行い、かつ、入力バッファ２３のメモリ領域＃１へのＤ１２８からデータＤ２５５の処理１用データの入力転送を図６（Ｃ）にｃ１３で示すように行う。
【００５０】
入力バッファ２３の領域＃２へのＤ１２８からデータＤ２５５の処理１用データの転送完了後、図６（Ａ）にａ１２で模式的に示すように、ＤＳＰコア２１によりバスアービタ２４が入力バッファ２３の領域＃２の先頭のアドレスから処理１用データの先頭のデータＤ１２８から順に処理していく（処理１）。このときは、入力バッファ２３は、領域＃２に図６（Ｄ）にｄ１２で示すように処理１用データが格納されている状態にある。また、処理１の処理結果は、出力バッファ２５のメモリ領域＃４の先頭のアドレスから順に書き込んでいく。図６（Ｆ）のｆ１１は上記のメモリ領域＃４に処理１の処理結果が書き込まれる状態を模式的に示す。
【００５１】
以降、上記と同様に、高機能ＤＭＡＣ２２は入力転送及び出力転送を処理アドレスから判断し、実行する動作を繰り返す。このように、本実施の形態によれば、処理を完了している最終データのアドレス値をメモリ２６に書き込んでおき、それを高機能ＤＭＡＣ２２が読み出し、ＤＳＰコア２１の処理アドレスに一致するかどうか判定し、その判定結果に基づいて入出力制御を自己判定する機能を設けることにより、ＤＳＰコア２１は処理のみを連続して行うため、ＤＳＰ負荷を軽減でき、その結果ＤＳＰ処理速度の向上が図れる。また、処理アドレスの出力手段は、ＤＳＰ処理プログラムにより実装できるため、ＤＳＰコア２１の変更を伴わず実現が容易となる。
【００５２】
（第４の実施の形態）
図７は本発明になる演算処理システムの第４の実施の形態のブロック図を示す。同図中、図４と同一構成部分には同一符号を付してある。図７の第４の実施の形態は、入力バッファと出力バッファとを共通化した、入出力バッファ２８を設けた点に特徴がある。また、入出力バッファ２８には処理アドレスを格納するメモリ２９も設けられている。この実施の形態では、入出力バッファ２８を２つのメモリ領域＃１と＃２に分け、一方をデータ書き込み動作させ、他方を読み出し動作させ、かつ、それを交互に切り替える動作を行う。
【００５３】
この実施の形態の動作について説明する。いま、入出力バッファ２８のメモリ領域＃１及び＃２には、既に新規のデータが埋まっている状態とする。バスアービタ２４は入出力バッファ２８の先頭（メモリ領域＃１の先頭）のデータから順に処理していき、その処理結果をメモリ領域＃１内の不要となった部分に書き込んでいく。
【００５４】
高機能ＤＭＡＣ２７が監視している処理アドレスが、メモリ領域＃２の値に達したことを高機能ＤＭＡＣ２７が判断すると、高機能ＤＭＡＣ２７自らがメモリ領域＃１から処理データを読み出し、その後メモリ領域＃１に新規データを読み込む。処理が進み高機能ＤＭＡＣ２７が監視しているメモリ２９からの処理アドレスがメモリ領域＃１の先頭の値に戻ると、高機能ＤＭＡＣ２７がメモリ領域＃２から処理データが読み出され、メモリ領域＃２に新規データを読み込む。以降これを繰り返す。
【００５５】
本実施の形態も以上の各実施の形態と同様に、ＤＳＰコア２１は従来のように処理データの読み出し、処理のためのデータ書き込みをＤＭＡＣに指示する必要はなく、ＤＳＰコア２１の負荷を軽減できるため、ＤＳＰ処理速度を向上できる。
【００５６】
なお、本発明は以上の実施の形態に限定されるものではなく、例えば、入力バッファ１４、２３、出力バッファ１６、２５、入出力バッファ１８、２８を、メモリ領域を２分割した場合で説明したがメモリ領域の分割数はこれに限らないことは勿論である。
【図面の簡単な説明】
【００５７】
【図１】本発明の演算処理システムの第１の実施の形態のブロック図である。
【図２】図１中のＤＳＰコアと処理アドレス出力回路の一例の構成図である。
【図３】本発明の演算処理システムの第２の実施の形態のブロック図である。
【図４】本発明の演算処理システムの第３の実施の形態のブロック図である。
【図５】図４中の高機能ＤＭＡＣの一例の機能説明図である。
【図６】図４の動作説明用タイミングチャートである。
【図７】本発明の演算処理システムの第４の実施の形態のブロック図である。
【図８】マルチプロセッサシステムの一例のブロック図である。
【図９】図８の要部の構成説明図である。
【図１０】図８、図９の動作説明用タイミングチャートである。
【符号の説明】
【００５８】
１１、２１  ＤＳＰコア
１２  処理アドレス出力回路
１３  転送開始判断機能内蔵ＤＭＡＣ
１４、２３  入力バッファ
１５、２４  バスアービタ
１６、２５  出力バッファ
１８、２８  入出力バッファ
２２、２７  高機能ＤＭＡＣ
２６、２９  処理アドレス記憶用メモリ
【図１】
2007206924.tif 000003
【図２】
2007206924.tif 000004
【図３】
2007206924.tif 000005
【図４】
2007206924.tif 000006
【図５】
2007206924.tif 000007
【図６】
2007206924.tif 000008
【図７】
2007206924.tif 000009
【図８】
2007206924.tif 000010
【図９】
2007206924.tif 000011
【図１０】
2007206924.tif 000012