(57)【要約】【課題】連続データの演算において、データの出力開始アドレスや出力順序，演算の組み合わせデータに関らず、並列に演算を行うことを目的とする。【解決手段】メモリ１０１，メモリ１０２から出力する、それぞれ連続する２つのアドレスの出力データをＡバスまたはＢバスまたはＣバスまたはＤバスに出力し、ＢバスまはたＣバスのデータをレジスタ１２２に格納して、演算器１２０に入力するデータをＣバス，Ｄバスまたはレジスタ１２２のうちから選択できる構成にすることにより、連続データの演算において、データの出力開始アドレスや出力順序，演算の組み合わせデータに関らず、並列に演算を行うことができる。【選択図】　　図１
2004086259.tif 000002
【特許請求の範囲】
【請求項１】
連続する２つのアドレスのデータを同時に出力する第１のメモリと、
連続する２つのアドレスのデータを同時に出力する第２のメモリと、
２つのデータを入力して演算する第１の演算器と、
２つのデータを入力して演算する第２の演算器と、
前記第１のメモリまたは前記第２のメモリの出力データのうち任意の１つのデータを保持するデータ保持手段と、
前記第１のメモリまたは前記第２のメモリの出力データと前記データ保持手段の出力データのうち任意の４つのデータを前記第１の演算器および前記第２の演算器に出力するデータ選択手段と
を有し、２つのメモリから連続して出力されるデータを並列演算処理することを特徴とするデータ処理装置。
【請求項２】
前記第１のメモリおよび前記第２のメモリからのデータ出力順序と前記第１の演算器および前記第２の演算器での演算内容に応じて、
前記第１のメモリおよび前記第２のメモリからの出力データを前記データ保持手段を介さずに前記第１の演算器および前記第２の演算器に出力して演算する第１のモードと、
前記第１のメモリの任意の出力データを前記データ保持手段を介して遅延を持たせて前記第２の演算器に出力し残りの前記第１のメモリの出力データおよび前記第２のメモリの出力データを前記データ保持手段を介さずに前記第１の演算器および前記第２の演算器に出力して演算する第２のモードと、
前記第２のメモリの任意の出力データを前記データ保持手段を介して遅延を持たせて前記第２の演算器に出力し残りの前記第２のメモリの出力データおよび前記第１のメモリの出力データを前記データ保持手段を介さずに前記第１の演算器および前記第２の演算器に出力して演算する第３のモードと
に場合分けてデータを転送し、メモリからのデータ出力順序や演算器での演算内容に関らず連続して並列演算処理を行うことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
演算内容に対応して、
最初の演算サイクルでは前記第１のメモリおよび前記第２のメモリからの出力データを前記データ保持手段を介さずに前記第１の演算器および前記第２の演算器に出力して演算し、２回目以降の演算サイクルでは前記第２のメモリの任意の出力データを前記データ保持手段を介して遅延を持たせて前記第２の演算器に出力し残りの前記第２のメモリの出力データおよび前記第１のメモリの出力データを前記データ保持手段を介さずに前記第１の演算器および前記第２の演算器に出力して演算する第４のモードを有することを特徴とする請求項１または請求項２記載のデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサやデジタルシグナルプロセッサで用いられ、データを並列処理するデータ処理装置に関するものである。
【０００２】
【従来の技術】
データ処理において２つのメモリ１とメモリ２を備え、前記２面のメモリに格納されたデータ間で演算を行う際に、両方のメモリのアドレスを順次インクリメントしながら連続したデータに対してを演算をする場合がある。このとき、処理の高速化を図るため、メモリ１から（２ｍ）、（２ｍ＋１）のデータを、メモリ２から（２ｎ）、（２ｎ＋１）のデータをそれぞれ２ワードずつ並列に読み出し、そのデータを並列に備えた演算器で処理することで、連続データの演算を２倍の効率で処理する構成にする場合がある。ここで、簡単のためアドレス２ｍ番地のデータを（２ｍ）と表している。以降の説明でも同じ表現を用いる。
【０００３】
以下、従来のデータ処理装置について図１１，図１２，図１３，図１４を参照しながら説明する。
図１１は従来のデータ処理装置の構成図である。図１２は従来の連続データの演算を説明する概念図，図１３は従来の連続的なデータの演算におけるデータ処理装置のデータ遷移図であり、図１４は従来の並列演算できない連続データの演算を説明する概念図である。
【０００４】
図１１において、１０１はメモリであり、偶数アドレスのデータ出力端子１０３と奇数アドレスのデータ出力端子１０４を備えている。同様に１０２はメモリであり、偶数アドレスのデータ出力端子１０５と奇数アドレスのデータ出力端子１０６を備えている。２０１はメモリ１０１のアドレスを格納するレジスタであり、加算器２０２によってマシンサイクル毎にアドレスが更新される。同様に２０３はメモリ１０２のアドレスを格納するレジスタであり、加算器２０４によってマシンサイクル毎にアドレスが更新される。
【０００５】
１０７はセレクタ回路であり、メモリ１０１またはメモリ１０２が出力したデータのうちいずれかのデータをＡバスに出力する。１０８セレクタ回路であり、メモリ１０１またはメモリ１０２が出力したデータのうちいずれかのデータをＢバスに出力する。１０９セレクタ回路であり、メモリ１０１またはメモリ１０２が出力したデータのうちいずれかのデータをＣバスに出力する。１１０セレクタ回路であり、メモリ１０１またはメモリ１０２が出力したデータのうちいずれかのデータをＤバスに出力する。１１１〜１１４はラッチでありそれぞれＡバス、Ｂバス、Ｃバス、Ｄバスのデータを一時的に保持する。１１５は演算器であり、ラッチ１１１とラッチ１１２のデータを用いて演算を行う。１１６は演算器１１５と並列に動作する演算器であり、ラッチ１１３とラッチ１１４のデータを用いて演算を行う。
【０００６】
メモリ１０１とメモリ１０２から出力されるデータは、アドレスポインタ（図示せず）によるアドレス更新によって順次新しいデータとなり、このデータが読み出される。特に２ワード並列読み出しの場合、アドレスポインタは「１」ずつアドレスを更新するのではなく、例えば２ｍ番地、２ｍ＋２番地、２ｍ＋４番地・・・のように偶数アドレスだけを使用して順次更新していくか、あるいは、２ｍ＋１番地、２ｍ＋３番地、２ｍ＋５番地・・・のように奇数アドレスだけを使用して順次更新していく。このようにアドレスポインタがメモリに対して１つのアドレス（例えば偶数アドレス）を指定すると、その偶数アドレスと次の奇数アドレスの２つのアドレスに対応するデータがセットになって読み出される。例えば、２ｍ番地のアドレス指定に対して、２ｍ番地と２ｍ＋１番地に対応するデータが順にメモリから読み出され、２ｍ＋２番地のアドレス指定に対して、２ｍ＋２番地と２ｍ＋３番地に対応するデータがメモリから読み出される。また、奇数番地でアドレス指定した場合には、その奇数アドレスと前の偶数アドレスに対応する２つのデータを出力する。例えば、２ｍ＋１番地のアドレス指定に対して、２ｍ番地と２ｍ＋１番地に対応するデータが順にメモリから読み出される。このように、２ワード並列読み出しを用いれば１回のアドレス指定に対して、２つのデータを読み出すことができるので、データ処理効率が２倍になる。
【０００７】
以上のように構成されたデータ処理装置において図１２に示す連続データの演算を行う方法を図１３を用いて説明する。なお、ここで演算は乗算を例として説明しており、以降も同様に乗算を例として説明する。
【０００８】
図１２では、メモリ１０１から（２ｍ），（２ｍ＋１），（２ｍ＋２）．．．のデータが連続的に出力し、メモリ１０２から（２ｎ），（２ｎ＋１），（２ｎ＋２）．．．のデータが連続的に出力しており、それぞれ同じタイミングに出力する（２ｍ）と（２ｎ），（２ｍ＋１）と（２ｎ＋１）．．．を演算する様子を示している。ここでは、同じサイクルにそれぞれのメモリからアドレスの連続する２つのデータが出力し、それらを並列に演算するものとする。
【０００９】
図１３において、まず、初回のマシンサイクルでメモリ１０１から（２ｍ），（２ｍ＋１）のデータを出力し、メモリ１０２から（２ｎ），（２ｎ＋１）のデータを出力する。次に、セレクタ回路１０７で（２ｍ＋１）を選択してＡバスに出力し、セレクタ回路１０８で（２ｎ＋１）を選択してＢバスに出力し、セレクタ回路１０９で（２ｍ）を選択してＣバスに出力し、セレクタ回路１１０で（２ｎ）を選択してＤバスに出力する。次に、ラッチ１１１でＡバスのデータ（２ｍ＋１）をラッチし、ラッチ１１２でＢバスのデータ（２ｎ＋１）をラッチし、ラッチ１１３でＣバスのデータ（２ｍ）をラッチし、ラッチ１１４でＤバスのデータ（２ｎ）ラッチする。ここで、演算を乗算とすると、初回サイクルでは、演算器１１５で（２ｍ＋１）×（２ｎ＋１）、演算器１１６で（２ｍ）×（２ｎ）の演算を行う。次の２回目のマシンサイクルでは、初回サイクルに連続して出力したアドレスに対してアドレスを＋２ずつインクリメントし、メモリ１０１から（２ｍ＋２），（２ｍ＋３）のデータを出力し、メモリ１０２から（２ｎ＋２）、（２ｎ＋３）のデータを出力する。初回サイクルと同じ経路でテータを送信し、演算器１１５で（２ｍ＋３）×（２ｎ＋３）、演算器１１６で（２ｍ＋２）×（２ｎ＋２）の演算を行う。このようにして、１マシンサイクルに付き、並列して２つの演算を実施できるので、２倍の処理効率で演算を行うことができる。
【００１０】
しかしながら、上記の従来の構成では、メモリ１０１からの２ワードの読み出しが２ｍ番地と２ｍ＋１番地の組み合わせとなるため、メモリ１０２からの読出しが２ｍ＋１番地から開始する連続データの場合、適切な演算を行うことができない場合があると言う問題点があった。つまり、図１４に示すように、初回サイクル目でメモリ１０１からは（２ｍ），（２ｍ＋１）が読み出されるのに対し、メモリ１０２からは（２ｎ＋１）のデータしか読み出すことができず、さらに、演算が（２ｍ）と（２ｎ＋１），（２ｍ＋１）と（２ｎ＋２）の組み合わせで実施されていく場合には、１サイクルに付き１回の演算しか行うことができないことになる。
【００１１】
【発明が解決しようとする課題】
本発明のデータ処理装置は上記の問題点を解決するために、連続データの演算において、データの出力開始アドレスや出力順序，演算の組み合わせデータに関らず、並列に演算を行うことを目的とする。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項１記載のデータ処理装置は、連続する２つのアドレスのデータを同時に出力する第１のメモリと、連続する２つのアドレスのデータを同時に出力する第２のメモリと、２つのデータを入力して演算する第１の演算器と、２つのデータを入力して演算する第２の演算器と、前記第１のメモリまたは前記第２のメモリの出力データのうち任意の１つのデータを保持するデータ保持手段と、前記第１のメモリまたは前記第２のメモリの出力データと前記データ保持手段の出力データのうち任意の４つのデータを前記第１の演算器および前記第２の演算器に出力するデータ選択手段とを有し、２つのメモリから連続して出力されるデータを並列演算処理することを特徴とする。
【００１３】
請求項２記載のデータ処理装置は、請求項１記載のデータ処理装置において、前記第１のメモリおよび前記第２のメモリからのデータ出力順序と前記第１の演算器および前記第２の演算器での演算内容に応じて、前記第１のメモリおよび前記第２のメモリからの出力データを前記データ保持手段を介さずに前記第１の演算器および前記第２の演算器に出力して演算する第１のモードと、前記第１のメモリの任意の出力データを前記データ保持手段を介して遅延を持たせて前記第２の演算器に出力し残りの前記第１のメモリの出力データおよび前記第２のメモリの出力データを前記データ保持手段を介さずに前記第１の演算器および前記第２の演算器に出力して演算する第２のモードと、前記第２のメモリの任意の出力データを前記データ保持手段を介して遅延を持たせて前記第２の演算器に出力し残りの前記第２のメモリの出力データおよび前記第１のメモリの出力データを前記データ保持手段を介さずに前記第１の演算器および前記第２の演算器に出力して演算する第３のモードとに場合分けてデータを転送し、メモリからのデータ出力順序や演算器での演算内容に関らず連続して並列演算処理を行うことを特徴とする。
【００１４】
請求項３記載のデータ処理装置は、請求項１または請求項２記載のデータ処理装置において、演算内容に対応して、最初の演算サイクルでは前記第１のメモリおよび前記第２のメモリからの出力データを前記データ保持手段を介さずに前記第１の演算器および前記第２の演算器に出力して演算し、２回目以降の演算サイクルでは前記第２のメモリの任意の出力データを前記データ保持手段を介して遅延を持たせて前記第２の演算器に出力し残りの前記第２のメモリの出力データおよび前記第１のメモリの出力データを前記データ保持手段を介さずに前記第１の演算器および前記第２の演算器に出力して演算するモードを有することを特徴とする。
【００１５】
以上の構成により、連続データの演算において、データの出力開始アドレスや出力順序，演算の組み合わせデータに関らず、並列に演算を行うことができる。
【００１６】
【発明の実施の形態】
以下、本発明の実施の形態におけるデータ処理装置について図面を参照しながら説明する。
【００１７】
図１は本発明のデータ処理装置の構成図であり、図２は本発明のデータ処理装置における各動作モードの動作を説明する図である。
図１において、１０１はメモリであり、偶数アドレスのデータ出力端子１０３と奇数アドレスのデータ出力端子１０４を備えている。同様に１０２はメモリであり、偶数アドレスのデータ出力端子１０５と奇数アドレスのデータ出力端子１０６を備えている。２０１はメモリ１０１のアドレスを格納するレジスタであり、加算器２０２によってマシンサイクル毎にアドレスが更新される。同様に２０３はメモリ１０２のアドレスを格納するレジスタであり、加算器２０４によってマシンサイクル毎にアドレスが更新される。
【００１８】
１０７セレクタ回路であり、メモリ１０１またはメモリ１０２が出力したデータのうちいずれかのデータをＡバスに出力する。１０８セレクタ回路であり、メモリ１０１またはメモリ１０２が出力したデータのうちいずれかのデータをＢバスに出力するか”０”を出力する。１０９セレクタ回路であり、メモリ１０１またはメモリ１０２が出力したデータのうちいずれかのデータをＣバスに出力する。１１０セレクタ回路であり、メモリ１０１またはメモリ１０２が出力したデータのうちいずれかのデータをＤバスに出力するか”０”を出力する。１２１はセレクタ回路であり、ＢバスまたはＣバスのデータを選択してレジスタ１２２に出力する。レジスタ１２２はセレクタ回路１２１の出力を一時的に保持する。１２３はセレクタ回路であり、Ｃバスまたはレジスタ１２２の出力を選択してラッチ１１７に出力する。１２４はセレクタ回路であり、Ｄバスまたはレジスタ１２２の出力を選択してラッチ１１８に出力する。１２５はラッチ回路でありＡバスの出力を一時的に保持する。１２６はラッチ回路でありＢバスの出力を一時的に保持する。１１９は演算器であり、ラッチ回路１２５とラッチ回路１２６から出力された２つのデータを用いて演算を行う。１２０は演算器１１９と並列に動作する演算器であり、ラッチ回路１１７とラッチ回路１１８から出力される２つのデータを用いて演算を行う。演算器１１９，演算器１２０として、加減算器，論理演算器，乗算器等の種々の演算器を用いることができる。なお、図１では、演算器１１９，演算器１２０の出力先は省略している。
【００１９】
本実施の形態では、以上の構成のデータ処理装置を用いて、セレクタ回路１０７〜１１０および１２３，１２４を制御することにより、少なくとも４種類の動作モードでの動作を可能にする。モード０〜モード３の４種類の動作モードを図２に示す。
【００２０】
図２において、モード０は、メモリ１０１の出力データとメモリ１０２の出力データのいずれの出力データのタイミングをも遅らせずに、出力されるタイミングのままで並列演算を行う動作モードである。モード０を選択する条件は、演算を行うデータに対応するアドレスをレジスタで示すとすると、（１）レジスタ２０１の初期値が偶数で加算値が＋１またはレジスタ２０１の初期値が奇数で加算値が−１、かつ、（２）レジスタ２０２の初期値が偶数で加算値が＋１またはレジスタ２０２の初期値が奇数で加算値が−１、である。
【００２１】
モード１は、メモリ１０１の出力データを１マシンサイクル遅らせて並列演算を行う動作モードである。モード１を選択する条件は、演算を行うデータに対応するアドレスをレジスタで示すとすると、（１）レジスタ２０１の初期値が偶数で加算値が−１またはレジスタ２０１の初期値が奇数で加算値が＋１、かつ（２）レジスタ２０２の値が偶数で加算値が＋１またはレジスタ２０２の値が奇数で加算値が−１、である。
【００２２】
また、モード２は、メモリ１０２の出力データを１マシンサイクル遅らせて並列演算を行う動作モードである。モード２を選択する条件は、演算を行うデータに対応するアドレスをレジスタで示すとすると、（１）レジスタ２０１の初期値が偶数で加算値が＋１またはレジスタ２０１の初期値が奇数で加算値が−１、かつ（２）レジスタ２０２の値が偶数で加算値が−１またはレジスタ２０２の値が奇数で加算値が＋１、である。
【００２３】
モード３は、初回のマシンサイクルは出力データを遅らせず、２回目以降のマシンサイクルでメモリ１０２の出力データを１マシンサイクル遅らせて並列演算を行う動作モードである。モード３が選択されるのはフィルタ用２並列演算を行うときである。
【００２４】
以下、モード０の動作について図３，図４を参照して説明する。
図３は本発明のモード０における連続データの演算を説明する概念図であり、図４は本発明のモード０での連続的なデータの演算におけるデータ処理装置のデータ遷移図である。
【００２５】
図３で示される演算を図４を用いて説明する。なお、図３の演算内容は、既出の図１２で説明した演算内容と同じなので説明を省略する。
図４に示すように、まず、初回のマシンサイクルでメモリ１０１から（２ｍ）、（２ｍ＋１）を出力し、メモリ１０２から（２ｎ）、（２ｎ＋１）を出力する。次に、セレクタ回路１０７によりに（２ｍ＋１）を選択してＡバスに出力し、セレクタ回路１０８により（２ｎ＋１）を選択してＢバスに、セレクタ回路１０９により（２ｍ）を選択してＣバスに、セレクタ回路１１０により（２ｎ）を選択してＤバスに出力する。次に、ラッチ１２５でＡバスのデータ（２ｍ＋１）をラッチし、ラッチ１２６でＢバスのデータ（２ｎ＋１）をラッチし、セレクタ回路１２３でＣバスのデータを選択することによってラッチ１１７でＣバスのデータ（２ｍ）をラッチし、セレクタ回路１２４でＤバスのデータを選択することによってラッチ１１８でＤバスのデータ（２ｎ）をラッチする。このようにして演算器１１９で（２ｍ＋１）×（２ｎ＋１）、演算器１２０で（２ｍ）×（２ｎ）の演算を行うことができる。次に、２回目のマシンサイクルではアドレスを＋２ずつインクリメントし、メモリ１０１から（２ｍ＋２），（２ｍ＋３）を出力し、メモリ１０２から（２ｎ＋２）、（２ｎ＋３）を出力する。データは最初のマシンサイクルと同じ経路を通り、演算器１１９，１２０が乗算処理を行うとすると、演算器１１９で（２ｍ＋３）×（２ｎ＋３）、演算器１２０で（２ｍ＋２）×（２ｎ＋２）の演算を行うことができる。３回目以降のマシンサイクルも同様であり、図３に示した連続データの演算を並列に実行することができる。
【００２６】
次に、モード１の動作について図５，図６を参照して説明する。
図５は本発明のモード１における連続データの演算を説明する概念図であり、図６は本発明のモード１での連続的なデータの演算におけるデータ処理装置のデータ遷移図である。
【００２７】
図５において、メモリ１０１から（２ｍ），（２ｍ＋１），（２ｍ＋２）．．．のデータが連続的に出力し、メモリ１０２から（２ｎ），（２ｎ＋１），（２ｎ＋２）．．．のデータが連続的に出力しており、（２ｍ）と（２ｎ＋１），（２ｍ＋１）と（２ｎ＋２），．．．のように演算する様子を示している。
【００２８】
図６に示すように、まず、初回のマシンサイクルでメモリ１０１から（２ｍ）、（２ｍ＋１）を出力し、メモリ１０２から（２ｎ）、（２ｎ＋１）を出力する。次に、セレクタ回路１０７によりに（２ｍ）を選択してＡバスに出力し、セレクタ回路１０８により（２ｎ＋１）を選択してＢバスに、セレクタ回路１０９により（２ｍ＋１）を選択してＣバスに、セレクタ回路１１０により’０’をＤバスに出力する。次に、ラッチ１２５でＡバスのデータ（２ｍ）をラッチし、ラッチ１２６でＢバスのデータ（２ｎ＋１）をラッチし、セレクタ回路１２３でレジスタ１２２のデータを選択することによってラッチ１１７でレジスタ１２２の出力データをラッチする。このときレジスタ１２２は不定である。セレクタ回路１２４でＤバスのデータを選択することによってラッチ１１８ではＤバスのデータ’０’をラッチする。このようにして演算器１１９で（２ｍ）×（２ｎ＋１）、演算器１２０で不定値×’０’の演算を行うことができる。ここで、セレクタ回路１２１はＣバスのデータ（２ｍ＋１）を選択してレジスタ１２２に格納し、２回目のマシンサイクルに備える。次に、２回目のマシンサイクルではアドレスを＋２ずつインクリメントし、メモリ１０１から（２ｍ＋２），（２ｍ＋３）を出力し、メモリ１０２から（２ｎ＋２）、（２ｎ＋３）を出力する。次に、セレクタ回路１０７によりに（２ｍ＋２）を選択してＡバスに出力し、セレクタ回路１０８により（２ｎ＋３）を選択してＢバスに、セレクタ回路１０９により（２ｍ＋３）を選択してＣバスに、セレクタ回路１１０により（２ｎ＋２）を選択してＤバスに出力する。次に、ラッチ１２５でＡバスのデータ（２ｍ＋２）をラッチし、ラッチ１２６でＢバスのデータ（２ｎ＋３）をラッチし、ラッチ１１７でレジスタ１１２の出力データ（２ｍ＋１）をラッチし、ラッチ１１８でＤバスのデータ（２ｎ＋２）をラッチする。このようにして２回目のマシンサイクルでは演算器１１９で（２ｍ＋２）×（２ｎ＋３）、演算器１２０で（２ｍ＋１）×（２ｎ＋２）の演算を行う。３回目のマシンサイクル以降も同様であり、図５に示した連続データの演算を並列に実行することができる。
【００２９】
以上のように、メモリ１０１のデータを遅らせることにより並列演算が可能になっている。
次に、モード２の動作について図７，図８を参照して説明する。
【００３０】
図７は本発明のモード２における連続データの演算を説明する概念図であり、図８は本発明のモード２での連続的なデータの演算におけるデータ処理装置のデータ遷移図である。
【００３１】
図７において、メモリ１０１から（２ｍ），（２ｍ＋１），（２ｍ＋２）．．．のデータが連続的に出力し、メモリ１０２から（２ｎ），（２ｎ＋１），（２ｎ＋２）．．．のデータが連続的に出力しており、（２ｍ＋１）と（２ｎ），（２ｍ＋２）と（２ｎ＋１），．．．のように演算する様子を示している。
【００３２】
図８において、まず、初回のマシンサイクルでメモリ１０１から（２ｍ）、（２ｍ＋１）を出力し、メモリ１０２から（２ｎ）、（２ｎ＋１）を出力する。次に、セレクタ回路１０７によりに（２ｍ＋１）を選択してＡバスに出力し、セレクタ回路１０８により（２ｎ）選択してをＢバスに、セレクタ回路１０９により（２ｎ＋１）を選択してＣバスに、セレクタ回路１１０により’０’をＤバスに出力する。次に、ラッチ１２５でＡバスのデータ（２ｍ＋１）をラッチし、ラッチ１２６でＢバスのデータ（２ｎ）をラッチし、ラッチ１１７でレジスタ１２２の出力データをラッチする。このときレジスタ１２２は不定である。セレクタ回路１２４でＤバスのデータを選択することによってラッチ１１８ではＤバスのデータ’０’をラッチする。このようにして初回サイクルで演算器１１９で（２ｍ＋１）×（２ｎ）、演算器１２０で不定値×’０’の演算を行うことができる。ここで、セレクタ回路１２１はＣバスのデータ（２ｎ＋１）を選択してレジスタ１２２に格納し、２回目のマシンサイクルに備える。次に、２回目のマシンサイクルではアドレスを＋２ずつインクリメントし、メモリ１０１から（２ｍ＋２），（２ｍ＋３）を出力し、メモリ１０２から（２ｎ＋２）、（２ｎ＋３）を出力する。次に、セレクタ回路１０７によりに（２ｍ＋３）を選択してＡバスに出力し、セレクタ回路１０８により（２ｎ＋２）を選択してＢバスに、セレクタ回路１０９により（２ｎ＋３）を選択してＣバスに、セレクタ回路１１０により（２ｍ＋２）を選択してＤバスに出力する。次に、ラッチ１２５でＡバスのデータ（２ｍ＋３）をラッチし、ラッチ１２６でＢバスのデータ（２ｎ＋２）をラッチし、セレクタ回路１２３でレジスタ１２２の出力データを選択してラッチ１１７でレジスタ１２２の出力データ（２ｎ＋１）をラッチし、セレクタ回路１２４でＤバスの出力データを選択してラッチ１１８でＤバスのデータ（２ｍ＋２）をラッチする。このようにして２回目のマシンサイクルでは演算器１１９で（２ｍ＋３）×（２ｎ＋２）、演算器１２０で（２ｎ＋１）×（２ｍ＋２）の演算を行うことができる。３回目以降のマシンサイクルも同様であり、図７に示した連続データの演算を並列に実行することができる。
【００３３】
以上のように、メモリ１０２のデータを遅らせることにより並列演算が可能になっている。
次に、モード３の動作について図９，図１０を参照して説明する。モード３はフィルタ用２並列演算を行う場合に用いる。
【００３４】
図９は本発明のモード３における連続データの演算を説明する概念図であり、図１０は本発明のモード３での連続的なデータの演算におけるデータ処理装置のデータ遷移図である。
【００３５】
図９において、メモリ１０１から（２ｍ），（２ｍ＋１），（２ｍ＋２）．．．のデータが連続的に出力し、メモリ１０２から（２ｎ），（２ｎ＋１），（２ｎ＋２）．．．のデータが連続的に出力しており、（２ｍ）×（２ｎ）、（２ｍ）×（２ｎ＋１）、（２ｍ＋１）×（２ｎ＋１）、（２ｍ＋１）×（２ｎ＋１）．．．のデータの組み合わせで乗算を行った後でそれらの積を加算するフィルタ用２並列演算を行う際の乗算部分の演算の様子を示している。
【００３６】
モード３でのデータの経路を図１０のタイミングチャートを参照しながら説明する。
図１０において、まず、初回のマシンサイクルでメモリ１０１から（２ｍ）、（２ｍ＋１）を出力し、メモリ１０２から（２ｎ）、（２ｎ＋１）を出力する。次に、セレクタ回路１０７によりに（２ｍ）を選択してＡバスに出力し、セレクタ回路１０８により（２ｎ＋１）を選択してＢバスに、セレクタ回路１０９により（２ｍ）を選択してＣバスに、セレクタ回路１１０により（２ｎ）を選択してＤバスに出力する。次に、ラッチ１２５でＡバスのデータ（２ｍ）をラッチし、ラッチ１２６でＢバスのデータ（２ｎ＋１）をラッチし、ラッチ１１７でＣバスのデータ（２ｍ）をラッチし、ラッチ１１８ではＤバスのデータ（２ｎ）をラッチする。このようにして初回サイクルでは演算器１１９で（２ｍ）×（２ｎ＋１）、演算器１２０で（２ｍ）×（２ｎ）の演算を行う。ここで、セレクタ回路１２１はＢバスのデータ（２ｎ＋１）を選択してレジスタ１２２に格納し、２回目のマシンサイクルに備える。次に、２回目のマシンサイクルではレジスタ２０１のアドレスを＋１、レジスタ２０２のアドレスを＋２インクリメントし、メモリ１０１から（２ｍ），（２ｍ＋１）を出力し、メモリ１０２から（２ｎ＋２）、（２ｎ＋３）を出力する。次に、セレクタ回路１０７により（２ｍ＋１）を選択してＡバスに出力し、セレクタ回路１０８により（２ｎ＋２）を選択してＢバスに、セレクタ回路１０９により（２ｍ＋１）を選択してＣバスに出力する。Ｄバスは特に使用しない。次に、ラッチ１２５でＡバスのデータ（２ｍ＋１）をラッチし、ラッチ１２６でＢバスのデータ（２ｎ＋２）をラッチし、セレクタ回路１２３でＣバスの出力データを選択してラッチ１１７でＣバスのデータ（２ｍ＋１）をラッチし、セレクタ回路１２４でレジスタ１２２の出力データを選択してラッチ１１８でレジスタ１２２の出力データ（２ｎ＋１）をラッチする。このようにして２回目のサイクルでは演算器１１９で（２ｍ＋１）×（２ｎ＋２）、演算器１２０で（２ｍ＋１）×（２ｎ＋１）の演算を行うことができる。３回目以降もレジスタとセレクタの制御により、フィルタ用２並列演算を実行することができる。
【００３７】
以上のように、２回目のマシンサイクル以降にメモリ１０２のデータを遅らせることにより、並列演算が可能となる。
以上の説明ではデータを並列に乗算する例を用いて説明したが、乗算以外の種々の演算に対しても適用することができる。
【００３８】
【発明の効果】
以上のように、本発明のデータ処理装置によれば、バスのデータをレジスタに格納して、演算器に入力するデータをバスとレジスタのうちから選択できる構成にすることにより、連続データの演算において、データの出力開始アドレスや出力順序，演算の組み合わせデータに関らず、並列に演算を行うことができる。
【図面の簡単な説明】
【図１】本発明のデータ処理装置の構成図
【図２】本発明のデータ処理装置における各動作モードの動作を説明する図
【図３】本発明のモード０における連続データの演算を説明する概念図
【図４】本発明のモード０での連続的なデータの演算におけるデータ処理装置のデータ遷移図
【図５】本発明のモード１における連続データの演算を説明する概念図
【図６】本発明のモード１での連続的なデータの演算におけるデータ処理装置のデータ遷移図
【図７】本発明のモード２における連続データの演算を説明する概念図
【図８】本発明のモード２での連続的なデータの演算におけるデータ処理装置のデータ遷移図
【図９】本発明のモード３における連続データの演算を説明する概念図
【図１０】本発明のモード３での連続的なデータの演算におけるデータ処理装置のデータ遷移図
【図１１】従来のデータ処理装置の構成図
【図１２】従来の連続データの演算を説明する概念図
【図１３】従来の連続的なデータの演算におけるデータ処理装置のデータ遷移図
【図１４】従来の並列演算できない連続データの演算を説明する概念図
【符号の説明】
１０１　　メモリ
１０２　　メモリ
１０３　　データ出力端子
１０４　　データ出力端子
１０５　　データ出力端子
１０６　　データ出力端子
１０７　　セレクタ回路
１０８　　セレクタ回路
１０９　　セレクタ回路
１１０　　セレクタ回路
１１１　　ラッチ
１１２　　ラッチ
１１３　　ラッチ
１１４　　ラッチ
１１５　　演算器
１１６　　演算器
１１７　　ラッチ
１１８　　ラッチ
１１９　　演算器
１２０　　演算器
１２１　　セレクタ回路
１２２　　レジスタ
１２３　　セレクタ回路
１２４　　セレクタ回路
１２５　　ラッチ
１２６　　ラッチ
２０１　　レジスタ
２０２　　加算器
２０３　　レジスタ
２０４　　加算器
【図１】
2004086259.tif 000003
【図２】
2004086259.tif 000004
【図３】
2004086259.tif 000005
【図４】
2004086259.tif 000006
【図５】
2004086259.tif 000007
【図６】
2004086259.tif 000008
【図７】
2004086259.tif 000009
【図８】
2004086259.tif 000010
【図９】
2004086259.tif 000011
【図１０】
2004086259.tif 000012
【図１１】
2004086259.tif 000013
【図１２】
2004086259.tif 000014
【図１３】
2004086259.tif 000015
【図１４】
2004086259.tif 000016