(57)【要約】【課題】回路規模や配線資源を大幅に増加することなく、簡易な構成で処理速度を向上させることができるとともに、多種類の演算が可能である演算処理装置を提供する。【解決手段】演算命令に従って入力データを各ビット単位で論理積処理を行うＡＮＤ回路７及び各ビット単位の論理積演算結果に対して所望のビット数分だけシフト処理を行うシフト回路８ａ〜８ｄを有する第１演算部３と、シフト回路８ａ〜８ｄによる処理データを加算入力とし加算処理を実行する加算器４とをＡＬＵ２が備える。【選択図】図１
2008117218.tif 000002
【特許請求の範囲】
【請求項１】
演算対象のデータを保持する入力メモリと、
前記入力メモリから読み出した演算対象データに対して演算命令に従った演算を実行する第１演算部と、前記第１演算部による演算結果のデータを入力して演算命令に従った演算を実行する第２演算部とを有する算術演算ユニットとを備え、
前記算術演算ユニットは、前記演算命令に従って前記第１演算部及び前記第２演算部による演算を制御することにより、少なくとも２種類の演算を実行する演算処理装置。
【請求項２】
第１演算部は、演算命令に従って論理演算を行い、
第２演算部は、演算命令に従って数値演算を行うことを特徴とする請求項１記載の演算処理装置。
【請求項３】
第１演算部は、入力メモリから読み出した演算対象データに対してビット単位で論理積演算を実行する論理積回路と、前記論理積回路から各ビット単位の論理積演算結果を入力して所定のビット単位でシフト処理するシフト回路とを備え、
第２演算部は、前記シフト回路からのデータを加算処理する加算器から構成され、
算術演算ユニットは、演算命令に従って前記論理積回路による論理積演算及び前記シフト回路によるシフト処理を制御することにより、前記入力メモリから読み出した演算対象データに対して加算処理及び乗算処理を行うことを特徴とする請求項１又は請求項２記載の演算処理装置。
【請求項４】
算術演算ユニットは、
第１演算部は、入力メモリから読み出した演算対象データに対して論理否定演算を実行する論理否定回路と、０又は１のうちいずれのビット値からなるキャリー信号を選択するキャリー信号選択部とを有し、
第２演算部は、前記論理否定回路からのデータ及び前記キャリー信号選択部により選択されたキャリー信号を入力し、これらの加算処理結果又はキャリー信号を出力する全加算器から構成され、
演算命令に従って前記第２演算部による加算処理結果又はキャリー信号を選択して演算結果として出力する選択処理部を備え、
演算命令に従って前記論理否定回路による論理否定演算及び前記キャリー信号選択部によるキャリー信号の選択を制御することにより、前記入力メモリから読み出した演算対象データに対して数値演算処理及び論理演算処理を行うことを特徴とする請求項１又は請求項２記載の演算処理装置。
【請求項５】
算術演算ユニットによる演算結果のデータを保持する出力メモリを備え、
演算命令に応じて前記出力メモリに保持されたデータを演算対象データとして入力メモリにフィードバックすることを特徴とする請求項１から請求項４のうちのいずれか１項記載の演算処理装置。
【請求項６】
演算対象のデータを保持する入力メモリと、
請求項１から請求項４のうちのいずれか１項記載の算術演算ユニットを少なくとも２つ以上直列に接続してなる算術演算ユニット群と、
前記算術演算ユニット群における直列接続した各算術演算ユニット間に設けられ、前段の算術演算ユニットによる演算結果を保持し、該保持データを後段の算術演算ユニットの演算対象データとして出力するレジスタと、
前記各算術演算ユニット毎に設けられ、前記算術演算ユニットの接続順を付帯した演算命令を保持する記憶部と、
前記記憶部に保持された前記演算命令から算術演算ユニットの接続順を判定し、該判定結果に応じて前記演算命令における命令コードを前記接続順に対応する算術演算ユニットに出力する判定処理部とを備え、
前記算術演算ユニット群の各算術演算ユニットは、前記演算命令における命令コードに従って第１演算部及び第２演算部による演算を制御することにより、少なくとも２種類の演算を実行する演算処理装置。
【請求項７】
演算命令に応じてレジスタに保持された演算結果のデータを前段の算術演算ユニットによる演算対象データとしてフィードバックすることを特徴とする請求項６記載の演算処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、電子データを演算処理する演算処理装置に係り、例えばデジタルスチルカメラやデジタルビデオカメラ、音声処理装置におけるデータ演算処理を行う演算処理装置に関するものである。
【背景技術】
【０００２】
四則演算や論理演算を行う算術演算ユニット（Arithmetic Logic Unit；以下、ＡＬＵと称す）と、ＡＬＵからの演算結果を一時記憶しておくメモリ等から構成されるプロセッサエレメント（以下、ＰＥと称す）とを複数有する演算処理装置である、ＳＩＭＤ（Single Instruction Multiple Data）装置は、単一命令で多数のデータの処理が可能である。これにより、例えば動画や音声などの高速処理に用いられている。
【０００３】
しかしながら、例えばデジタルカメラの多画素化に伴い、ＳＩＭＤ装置に搭載されるＡＬＵも個数を増加させてより高速化が求められている。この一方で低消費電力化、即ち回路規模が少ないままで、さらなる高速処理が可能であることが要望されている。
【０００４】
例えば、特許文献１に開示される従来の演算処理装置では、処理サイクル数が多い乗算器についての高速演算を実現するため、乗算専用あるいは部分的な積を求めるために乗算器を設けている。
【０００５】
【特許文献１】特開平７−２７１５５５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の演算処理装置では、乗算器内の構成として乗算専用あるいは部分的な積を求める乗算器を有しており、高速ではあるものの回路規模が大きくなるという課題があった。
【０００７】
さらに、従来の演算処理装置では、算術演算である乗算器と加算演算を行えるものの、論理演算（ＡＮＤやＯＲ）などを行うことができず、これらの演算が必要な場合には別途専用演算器を用意しなければならない。
【０００８】
この発明は、上記のような課題を解消するためになされたもので、回路規模や配線資源を大幅に増加することなく、簡易な構成で処理速度を向上させることができるとともに、多種類の演算が可能である演算処理装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る演算処理装置は、演算対象のデータを保持する入力メモリと、入力メモリから読み出した演算対象データに対して演算命令に従った演算を実行する第１演算部と、第１演算部による演算結果のデータを入力して演算命令に従った演算を実行する第２演算部とを有する算術演算ユニットとを備え、算術演算ユニットが、演算命令に従って第１演算部及び第２演算部による演算を制御することにより、少なくとも２種類の演算を実行するものである。
【発明の効果】
【００１０】
この発明によれば、演算対象データに対して演算命令に従った演算を実行する第１演算部と、第１演算部による演算結果のデータを入力して演算命令に従った演算を実行する第２演算部とを有する算術演算ユニットとを備え、算術演算ユニットが、演算命令に従って第１演算部及び第２演算部による演算を制御することにより、少なくとも２種類の演算を実行するので、回路規模や配線資源を大幅に増加することなく、簡易な構成で処理速度を向上させることができるとともに、多種類の演算ができるという効果がある。
【発明を実施するための最良の形態】
【００１１】
実施の形態１．
図１は、この発明による演算処理装置の構成を示す図である。図１に示すように、本発明による演算処理装置は、入力メモリ１、ＡＬＵ２及び出力メモリ５を備える。入力メモリ１は、演算対象となるデータを格納するメモリである。算術演算ユニットであるＡＬＵ２は、第１演算部３と第２演算部４を備える。
【００１２】
出力メモリ５は、ＡＬＵ２によって演算処理されたデータを保持するメモリである。なお、図１では、出力メモリ５から読み出された演算結果のデータが入力メモリ１にフィードバックできるように、出力メモリ５の出力が入力メモリ１の入力に接続されたループ構造をなしている。
【００１３】
第１演算部３は、図示しないＣＰＵ等から所望の演算命令（加算や減算、乗算、論理和など）に従って、対象となるデータ入力メモリ１から読み出し、該データに対して論理演算（論理和、反転、シフトなど）を行う。なお、入力メモリ１には、予め演算対象データを保持しておく。
【００１４】
第２演算部４は、第１演算部３で処理されたデータを入力し、上記演算命令に従って数値演算（加算など）を行う。このように、本発明では、処理を高速に実行できる論理演算と、時間を要する数値演算に分離して演算を行う。
【００１５】
これにより、演算処理に要する時間としては、数値演算に要する処理時間が支配的になり、これと比較して論理演算に要する処理時間がほとんど無視できる時間となるため、ＡＬＵ２全体としての演算処理速度を向上させることができる。
【００１６】
図２は、この発明の実施の形態１によるＡＬＵの構成を示す図であり、該ＡＬＵでは乗算と加算を切り替えて実行することが可能である。図２に示すように、第１演算部３は、ＡＮＤ回路（ＡＮＤ）７、及びシフト回路（ＳＨＩＦＴ）８ａ〜８ｄを備える。ＡＮＤ回路７及びシフト回路８ａ〜８ｄは、双方ともその動作及び停止を不図示のＣＰＵからの演算命令によって制御される。
【００１７】
ＡＮＤ回路（論理積回路）７は、図１に示した入力メモリ１からのデータＡ，Ｂの論理積を実行する。シフト回路８ａ〜８ｄは、それぞれに設定されたシフト量だけＡＮＤ回路７の演算結果をシフトして第２演算部４に出力する。図２の例では、加算器により第２演算部４が構成されている（以下、加算器４と適宜称す）。加算器４は、シフト回路８ａ〜８ｄからの各出力Ｐａ〜Ｐｄを加算し、データＱを演算結果として出力する。
【００１８】
次に動作について説明する。
以降では、図３に示すように、データＡ（４ビット）として２進数表記が１０１０（１０進数表記の１０）、データＢ（４ビット）として２進数表記が０１０１（１０進数表記の５）を演算対象とする。また、図３（ａ）は、データＡ，Ｂの乗算を示しており、図３（ｂ）は、データＡ，Ｂの加算を示している。
【００１９】
（１）乗算処理
先ず、ＡＬＵ２は、不図示のＣＰＵから乗算処理すべき旨の演算命令を受けると、内部のＡＮＤ回路７が、入力メモリ１から入力したデータＡとデータＢの各ビット単位の論理積を算出する。例えば、データＡ（１０１０）の各ビットに対して、データＢのＬＳＢ（Least Significant Bit）のビット値「１」（図３（ａ）中にＢ［０］と表記する）を論理演算したビット値「１０１０」がシフト回路８ｄに出力される。また、データＡ（１０１０）の各ビットに対して、データＢのＬＳＢから２番目のビット（図３（ａ）中にＢ［１］と表記する）の値「０」を論理演算したビット値「００００」がシフト回路８ｃに出力される。
【００２０】
データＡ（１０１０）の各ビットに対して、データＢのＬＳＢから３番目のビット（図３（ａ）中にＢ［２］と表記する）の値「１」を論理演算したビット値「１０１０」がシフト回路８ｂに出力される。データＡ（１０１０）の各ビットに対して、データＢのＬＳＢから４番目のビット（図３（ａ）中にＢ［３］と表記する）の値「０」を論理演算したビット値「００００」がシフト回路８ａに出力される。
【００２１】
シフト回路８ａでは、ＡＮＤ回路７から入力した論理演算結果に対してシフト量「０」の右シフト処理（図３（ａ）中で＜＜０と表記する）を行い、処理結果をデータＰａとして加算器４に出力する。また、シフト回路８ｂでは、ＡＮＤ回路７から入力した論理演算結果に対してシフト量「１」、つまり１ｂｉｔの右シフト処理（図３（ａ）中で＜＜１と表記する）を行い、処理結果をデータＰｂとして加算器４に出力する。
【００２２】
同様に、シフト回路８ｃでは、ＡＮＤ回路７から入力した論理演算結果に対して２ビットの右シフト処理（図３（ａ）中で＜＜２と表記する）を行い、処理結果をデータＰｃとして加算器４に出力する。シフト回路８ｄでは、ＡＮＤ回路７から入力した論理演算結果に対して３ビットの右シフト処理（図３（ａ）中で＜＜３と表記する）を行い、処理結果をデータＰｄとして加算器４に出力する。
【００２３】
加算器４では、第１演算部３から得られたシフト結果のデータＰａ〜Ｐｄを加算処理する（Ｑ＝Ｐａ＋Ｐｂ＋Ｐｃ＋Ｐｄ）。これにより、データＡとデータＢの乗算結果としてデータＱ（０１１００１０）が得られる。
【００２４】
（２）加算処理
先ず、ＡＬＵ２は、不図示のＣＰＵから加算処理すべき旨の演算命令を受けると、内部のＡＮＤ回路７が動作停止すると共に、シフト回路８ａ〜８ｄもシフト処理を行わない。入力メモリ１からのデータＡとデータＢは、ＡＮＤ回路７で演算処理されることなく、シフト回路８ａ及びシフト回路８ｄそれぞれに出力される。また、シフト回路８ｂ，８ｃには、４ビットの「００００」データがそれぞれ出力される。
【００２５】
シフト回路８ａでは、入力したデータＡ（１０１０）に対してシフト量「０」の右シフト処理（図３（ｂ）中で＜＜０と表記する）を行い、処理結果をデータＰａとして加算器４に出力する。また、シフト回路８ｂでは、入力したデータ（００００）に対してシフト量「０」の右シフト処理を行い、処理結果をデータＰｂとして加算器４に出力する。
【００２６】
同様に、シフト回路８ｃでは、入力したデータ（００００）に対してシフト量「０」の右シフト処理を行い、処理結果をデータＰｃとして加算器４に出力する。シフト回路８ｄでは、入力したデータＢ（０１０１）に対してシフト量「０」の右シフト処理を行い、処理結果をデータＰｄとして加算器４に出力する。
【００２７】
加算器４では、第１演算部３から得られたシフト結果のデータＰａ〜Ｐｄを加算処理する（Ｑ＝Ｐａ＋Ｐｂ＋Ｐｃ＋Ｐｄ）。これにより、データＡとデータＢの加算結果としてデータＱ（０１１１１）が得られる。
【００２８】
なお、上記では、（１）乗算処理、（２）加算処理をそれぞれ単独で行う場合を示したが、実際上多くの場合、最終的に得る演算が、単一の乗算若しくは加算で終了することはほとんどありえず、それらの多数の組み合わせによって行われる。そこで、本発明では、図１に示すように、ＡＬＵ２の演算結果として得られた値を出力メモリ５に収納しておき、所望の演算において使用する場合に出力メモリ５から入力メモリ１にフィードバックして、所望の演算結果が得られるまで上記動作を繰り返す。
【００２９】
以上のように、この実施の形態１によれば、演算命令に従って入力データを各ビット単位で論理積処理を行うＡＮＤ回路７及び各ビット単位の論理積演算結果に対して所望のビット数分だけシフト処理を行うシフト回路８ａ〜８ｄを有する第１演算部３と、シフト回路８ａ〜８ｄによる処理データを加算入力とし加算処理を実行する加算器４とをＡＬＵ２が備えたので、演算命令によって同一構成で乗算と加算が可能な構成としたことから、少なくとも複数の演算を同一の構成で実現できるため、汎用的かつプログラマブルな演算処理装置を得ることができる。
【００３０】
また、上記実施の形態１では、回路規模の大きい専用演算回路（例えば、乗算器）を設けることなく、その演算が可能なため回路規模を小さくすることができる。これにより、低消費電力化を図ることができる上、複数の演算処理装置を用いてのアレイ化に適した演算処理装置を構成することも可能である。
【００３１】
なお、上記実施の形態１では、演算対象となるデータを４ビットとし、その演算を行うための構成を示したが、本発明はこれに限定されるものではなく、データの処理ビットに応じた構成であればよい。
【００３２】
実施の形態２．
図４は、この発明の実施の形態３による演算処理装置のＡＬＵの構成を示す図であり、演算処理装置の全体構成は、上記実施の形態１で示した図１と同様である。図４に示すように、この実施の形態２による第１演算部３は、ＮＯＴ回路（ＮＯＴ）１０、及びキャリー信号選択部１１を備える。ＮＯＴ回路１０及びキャリー信号選択部１１は、双方ともその動作及び停止を不図示のＣＰＵからの演算命令によって制御される。
【００３３】
ＮＯＴ回路（論理否定回路）１０は、図１に示した入力メモリ１からのデータＡ，Ｂに対して、不図示のＣＰＵからの演算命令に応じて反転処理（論理否定）を実行する。キャリー信号選択部１１は、ＣＰＵからの演算命令に応じて、０か１かのビット値からなるキャリー信号Ｃｉｎ（下位桁からのキャリー）を第２演算部（以下、加算器４と適宜称す）４に出力する。
【００３４】
加算器４は、全加算器で構成され、第１演算部３のＮＯＴ回路１０により処理されたデータＡ，ＢをデータＡｉｎ，Ｂｉｎとして入力し、キャリー信号選択部１１からのキャリー信号Ｃｉｎを入力する。マルチプレクサ（選択処理部）１２は、加算器４による加算処理結果のデータＱ若しくはキャリー信号選択部１１からのキャリー信号（データＣ）（上位桁へのキャリー）のいずれかを選択して演算結果データＸとして出力する。
【００３５】
次に動作について説明する。
（１）加算処理
先ず、不図示のＣＰＵから加算処理すべき旨の演算命令をＡＬＵ２が受けると、内部のＮＯＴ回路１０は、その動作を停止する。これにより、ＮＯＴ回路１０に入力されたデータＡ，ＢがそのままデータＡｉｎ，Ｂｉｎとして加算器４に出力される。このとき、キャリー信号選択部１１は、キャリー信号としてビット値「０」をキャリー信号Ｃｉｎ（下位桁からのキャリー）として加算器４に出力する。
【００３６】
加算器４では、データＡｉｎとデータＢｉｎを加算し、この演算結果をデータＱ（Ａ＋Ｂ）としてマルチプレクサ１２に出力する。一方、加算器４は、キャリー信号ＣｉｎもそのままデータＣとしてマルチプレクサ１２に出力する。マルチプレクサ１２では、ＣＰＵからの加算処理すべき旨の演算命令に従って、加算器４における演算結果の出力（データＱ）を選択するように、そのデータ入力を加算器４の演算出力側に切り替えておく。
【００３７】
これにより、ＡＬＵ２からの出力としてデータＸ（Ａ＋Ｂの加算結果）が得られる。なお、キャリー信号（データＣ）（上位桁へのキャリー）が必要な場合は、マルチプレクサ１２においてデータＱの入力を選択した後、データＣの入力を選択してデータＸとしてデータＣを出力させればよい。
【００３８】
（２）減算処理
不図示のＣＰＵから減算処理すべき旨の演算命令をＡＬＵ２が受けると、内部のＮＯＴ回路１０は、データＡに対する反転動作を停止する一方、データＢに対しては反転処理を実行する。このとき、キャリー信号選択部１１は、キャリー信号Ｃｉｎとして「１」を加算器４に出力する。
【００３９】
例えば、図３と同様に、データＡが４ビットの１０１０である場合、データＡｉｎは、そのまま１０１０となる。また、データＢが４ビットの０１０１である場合、データＢｉｎは、反転処理により１０１０となる。
【００４０】
加算器４では、データＡｉｎ（データＡ）とデータＢｉｎ（データＢの反転）とキャリー信号Ｃｉｎ（１）を加えるデータＢの２の補数をとった加算を実行する。これにより、加算器４の演算結果は、データＡとデータＢの減算（Ａ−Ｂ）がデータＱとしてマルチプレクサ１２に出力される。なお、この場合においても、加算器４は、キャリー信号ＣｉｎをそのままデータＣとしてマルチプレクサ１２に出力する。
【００４１】
マルチプレクサ１２では、ＣＰＵからの減算処理すべき旨の演算命令に従って、加算器４における演算結果の出力（データＱ）を選択するように、そのデータ入力を加算器４の演算出力側に切り替えておく。また、上位桁へのキャリーであるデータＣが必要な場合は、マルチプレクサ１２においてデータＱの入力を選択した後、データＣ（この場合はボロー）の入力を選択してデータＸとしてデータＣを出力させればよい。
【００４２】
（３）論理積処理
論理演算である論理積（Ａ＆Ｂ）は、周知のように全加算器のキャリー生成論理を示す下記式に従う。
Ｃ＝（Ａｉｎ  ＆  Ｂｉｎ）ｏｒ（Ｂｉｎ  ＆  Ｃｉｎ）ｏｒ（Ａｉn  ＆  Ｃｉｎ）
以降では、上記式を用いてデータＡとデータＢの論理積を求める。つまり、加算器４の入力データＡｉｎ，Ｂｉｎ，Ｃｉｎを用いて上記式からデータＣを算出する。
【００４３】
先ず、不図示のＣＰＵから論理積処理すべき旨の演算命令をＡＬＵ２が受けると、内部のＮＯＴ回路１０は、データＡとデータＢに対する反転動作を停止する。このとき、キャリー信号選択部１１は、キャリー信号Ｃｉｎとしてビット値「０」からなる４ビットのデータ（００００）を選択して加算器４に出力する。これにより、加算器４には、データＡｉｎとしてデータＡがそのまま、データＢｉｎとしてデータＢがそのまま、キャリー信号Ｃｉｎとして「０」が入力される。
【００４４】
全加算器である加算器４では、上記式より上位桁へのキャリー出力Ｃとして（Ａｉｎ  ＆  Ｂｉｎ）の論理積結果が得られる。マルチプレクサ１２では、ＣＰＵからの論理積処理すべき旨の演算命令に従って、加算器４におけるキャリー出力（データＣ）を選択するように、そのデータ入力を加算器４のキャリー出力側に切り替えておく。これにより、ＡＬＵ２の演算結果としてデータＡ，Ｂの論理積が得られる。
【００４５】
（４）論理和処理
先ず、不図示のＣＰＵから論理和処理すべき旨の演算命令をＡＬＵ２が受けると、内部のＮＯＴ回路１０は、データＡとデータＢに対する反転動作を停止する。このとき、キャリー信号選択部１１は、キャリー信号Ｃｉｎとしてビット値「１」からなる４ビットのデータ（１１１１）を選択して加算器４に出力する。これにより、加算器４には、データＡｉｎとしてデータＡがそのまま、データＢｉｎとしてデータＢがそのまま、キャリー信号Ｃｉｎとして「１」が入力される。
【００４６】
全加算器である加算器４では、上記式より上位桁へのキャリー出力Ｃとして（Ａｉｎ  ｏｒ  Ｂｉｎ）の論理和結果が得られる。マルチプレクサ１２では、ＣＰＵからの論理和処理すべき旨の演算命令に従って、加算器４におけるキャリー出力（データＣ）を選択するように、そのデータ入力を加算器４のキャリー出力側に切り替えておく。これにより、ＡＬＵ２の演算結果としてデータＡ，Ｂの論理和が得られる。
【００４７】
以上のように、この実施の形態２によれば、演算命令に従って入力データの反転処理を行うＮＯＴ回路１０及び０，１のいずれかのビット値からなるキャリー信号を選択するキャリー信号選択部１１を有する第１演算部３と、ＮＯＴ回路１０による処理データを加算入力とし、キャリー信号選択部１１による選択データを下位桁からのキャリーとする全加算器からなる加算器４と、演算命令に従って加算器４からの出力データを選択して演算結果として出力するマルチプレクサ１２とをＡＬＵ２が備えたので、同一構成の演算部であっても演算命令に従って少なくとも２種類以上の数値演算若しくは論理演算を実行可能であることから、回路規模をより小さくすることが可能である。
【００４８】
また、この実施の形態２では、多種の演算が可能なため、よりプログラマブルな演算処理装置を得ることができる。さらに、この実施の形態２では、加算と減算がほぼ同じ処理速度で実行可能である。これにより、この実施の形態２の演算処理装置による減算処理を利用すれば、特別な比較器などを用意することなく、大小比較や条件分離を高速に行うことができる。
【００４９】
実施の形態３．
図５は、この発明の実施の形態３による演算処理装置の構成を示す図である。図５に示すように、この実施の形態３による演算処理装置は、入力メモリ１５、ＡＬＵ２−１，２−２，・・・、レジスタ１６−１，１６−２，・・・、ヘッダ解析部１７−１，１７−２，・・・、ラッチ１８−１，１８−２，・・・、出力メモリ１９を備える。
【００５０】
入力メモリ１５及び出力メモリ１９は、ブロック若しくはフレームといった単位のデータを収納しておくメモリである。ＡＬＵ２−１，２−２，・・・は、各出力がレジスタ１６−１，１６−２，・・・に接続されており、上記実施の形態１又は上記実施の形態２と同様の構成を有する。レジスタ１６−１，１６−２，・・・は、上記実施の形態１における出力メモリ５と同様に各ＡＬＵ２−１，２−２，・・・からの出力データを保持する。
【００５１】
ヘッダ解析部（判定処理部）１７−１，１７−２，・・・は、図６に示す演算命令における命令コードのヘッダ部分を解析し、接続するＡＬＵへ命令コードを送出する。ラッチ（記憶部）１８−１，１８−２，・・・は、演算命令バス２０から該当するＡＬＵへの演算命令を保持するものである。
【００５２】
なお、この実施の形態３による演算処理装置では、入力メモリ１５から少なくとも２つ以上のＡＬＵがシリアルに出力メモリ１９に接続されており、各ＡＬＵは単一の演算命令バスにより接続されている。
【００５３】
図６は、図５中の演算処理装置で取り扱われる演算命令の構造を示す図である。図６に示すように、実施の形態３による演算命令は、処理順番号をヘッダとし、その後に演算処理制御コードが命令コード（各ＡＬＵの演算部に対する制御コード）とされた構造を有する。
【００５４】
次に動作について説明する。
入力メモリ１５に収納されたデータは、所望の演算を行うためにＡＬＵ２−１に出力される。ＡＬＵ２−１は、上記実施の形態１や上記実施の形態２と同様に動作する。このとき、不図示のＣＰＵから演算命令バス２０を介して演算命令がシリアル接続された各ＡＬＵに対して送出されると、該演算命令は、ラッチ１８−１で保持される。
【００５５】
ヘッダ解析部１７−１は、ラッチ１８−１で保持される演算命令のヘッダを解析して処理順番号をデコードし、ＡＬＵ２−１に出力する。例えば、並び順が一番目であるＡＬＵ２−１に対する演算命令である場合、ヘッダには処理順番号として「１」が記載されている。
【００５６】
このように、ラッチ１８−１で一旦保持された命令コードは、ヘッダ解析部１７−１によってデコード（或いは比較）された処理順番号が、該当するＡＬＵの並び順とその処理順が一致した場合にのみＡＬＵ２−１に送出される。なお、各ヘッダ解析部１７−１，１７−２，・・・には、予め処理順の番号付けをしておく。ＡＬＵ２−１は、命令コードを受けると、該命令コードに従って演算処理を入力データに対して施し、演算結果をレジスタ１６−１に出力する。
【００５７】
同様に演算命令のヘッダに処理順として「２」が付帯されていると、ヘッダ解析部１７−２は、この演算命令における命令コードをＡＬＵ２−２に送出する。これにより、ＡＬＵ２−２によって、入力データに対し上記命令コードに従った演算が行われる。この間、ＡＬＵ２−１に処理順が「１」が付帯された命令コードが演算命令として送られており、ＡＬＵ２−１は、入力メモリ１５に収納された別のデータに対して演算を行う。
【００５８】
このようにして、所望の演算を行った後、出力メモリ１９には最終的な演算結果が収納される。
【００５９】
以上のように、この実施の形態３によれば、少なくとも２つ以上のＡＬＵをシリアルに接続し、命令コードに処理順を付帯し、その処理順にあった命令コードを該当するＡＬＵに出力するので、例えば音声のストリームデータやＣＣＤセンサ等の画像のラスターデータをリアルタイムに処理することが可能となる。
【００６０】
また、演算命令を各ＡＬＵに与える演算命令バス２０を、単一（共通バス）で構成したことから、バスの配線負荷を減らすことが可能となり、回路規模の小さい演算処理装置を得ることができる。
【００６１】
なお、上記実施の形態３では、１つのＡＬＵが１つの演算を行う例を示したが、所望の演算ステップが多数の場合にはその数だけＡＬＵを持たなければならない。従って、ＡＬＵ数がＭ、演算ステップ数Ｎとすると、Ｍ＜Ｎの場合には、図５に示したレジスタ１６−１からＡＬＵ２−１にフィードバックする経路を用いて、ＡＬＵ２−１に複数演算ステップの演算を行わせることで所望の演算の結果を得ることができる。
【００６２】
この場合、各ＡＬＵ２−１，２−２，・・・に対する演算ステップ数を予め決めておき、例えばＡＬＵ２−１にはＮ／Ｍの演算を行わせるように、演算命令のヘッダにこの回数に応じたヘッダ「１」を付帯した演算命令を用いればよい。
【００６３】
また、上記実施の形態３では、演算命令を保持するラッチと、演算命令の解析結果に応じてラッチが保持する演算命令の命令コードをＡＬＵに出力するヘッダ解析部として、演算命令のヘッダ内容をデコードするデコーダ或いは自己に設定された処理順とヘッダ内容を比較する比較器を用いる例を示したが、この機能を達成することができれば、別の手段を用いてもよい。
【図面の簡単な説明】
【００６４】
【図１】この発明による演算処理装置の構成を示す図である。
【図２】この発明の実施の形態１によるＡＬＵの構成を示す図である。
【図３】実施の形態１によるＡＬＵの演算処理を説明するための図である。
【図４】この発明の実施の形態２によるＡＬＵの構成を示す図である。
【図５】この発明の実施の形態３による演算処理装置の構成を示す図である。
【図６】図５中の演算処理装置で取り扱われる演算命令の構造を示す図である。
【符号の説明】
【００６５】
１，１５  入力メモリ、２，２−１，２−２・・・  ＡＬＵ、３  第１演算部、４  第２演算部（加算器）、５，１９  出力メモリ、７  ＡＮＤ回路（論理積回路）、８ａ〜８ｄ  シフト回路、１０  ＮＯＴ回路（論理否定回路）、１１  キャリー信号選択部、１２  マルチプレクサ（選択処理部）、１６−１，１６−２・・・  レジスタ、１７−１，１７−２・・・  ヘッダ解析部（判定処理部）、１８−１，１８−２・・・  ラッチ（記憶部）、２０  演算命令バス。
【図１】
2008117218.tif 000003
【図２】
2008117218.tif 000004
【図３】
2008117218.tif 000005
【図４】
2008117218.tif 000006
【図５】
2008117218.tif 000007
【図６】
2008117218.tif 000008