(57)【特許請求の範囲】
【請求項１】
２のＮ乗個（Ｎは自然数）の第１の値の丸め平均値を求める情報処理装置であって、
それぞれが前記第１の値を記憶可能な第１および第２の記憶手段を含む複数の記憶手段と、
初期値を１とする下位１ビット用の記憶手段と、
前記第１の記憶手段に記憶された前記第１の値、前記第２の記憶手段に記憶された前記第１の値、および前記下位１ビット用の記憶手段に記憶された第２の値の加算演算を行い、前記加算演算の結果得られる演算和の下位１ビットを除く上位ビットの値を前記複数の記憶手段のうちの１つの記憶手段に出力するとともに、前記演算和の下位１ビットの値を前記第２の値として前記下位１ビット用の記憶手段に出力する演算手段とを備え、
前記演算手段は、前記加算演算を繰り返し行い、前記複数の記憶手段のうちの１つの記憶手段に出力される最後の値を、２のＮ乗個の丸め平均値とする
ことを特徴とする情報処理装置。
【請求項２】
前記演算手段では、前記第１の値のビット数と同数の前記演算和の上位ビットの値が前記複数の記憶手段のうちの１つの記憶手段に出力される
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
Ｎ×（２のＭ乗）個（Ｍ，Ｎは自然数）の第１の数値データを、１つの組が２のＭ乗個の前記第１の数値データからなるＮ組の前記第１の数値データに分け、前記Ｎ組の前記第１の数値データを並列に処理し、前記Ｎ組のそれぞれに対して丸め平均値を求める情報処理装置において、
それぞれがＮ個の前記第１の数値データを記憶可能な第１および第２の記憶手段を含む複数の記憶手段と、
前記Ｎ組のそれぞれに対する初期値を１とする下位１ビット用の記憶手段と、
前記Ｎ組のそれぞれについて、前記第１の記憶手段に記憶された前記第１の数値データ、前記第２の記憶手段に記憶された前記第１の数値データ、および前記下位１ビット用の記憶手段に記憶された第２の数値データの加算演算を行い、前記加算演算の結果得られる演算和の下位１ビットを除く上位ビットの数値データを前記複数の記憶手段のうち１つの記憶手段に出力するとともに、下位１ビットの数値データを前記第２の数値データとして前記下位１ビット用の記憶手段に出力する演算手段とを備え、
前記演算手段は、前記加算演算を繰り返し行い、前記複数の記憶手段のうちの１つの記憶手段に出力される最後の値を、２のＮ乗個の丸め平均値とする
ことを特徴とする情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報処理装置に関し、特に、複数の第１のビット数のデータと、所定の記憶部に記憶されている第２のビット数のデータを加算し、演算結果の第２のビット数の下位データを所定の記憶部に記憶させ、演算結果の残りの上位データを出力して、複数のデータの平均値を算出する情報処理装置に関する。
【０００２】
【従来の技術】
半導体技術の進歩に伴い、デジタル画像の処理などのデジタル信号処理が、様々な装置において行われている。
【０００３】
デジタル画像処理においては、例えば画像データの画素数を増加させる場合、新たな画素の値は、補間を利用して、所定の領域のオリジナルの画素の値から算出される。例えば、新たな画素の値は、その画素の周辺（上下左右隣り）の４個のオリジナル画素の値Ａ，Ｂ，Ｃ，Ｄを利用して、それらの４つの画素値の平均値（（Ａ＋Ｂ＋Ｃ＋Ｄ）／４）として算出される。
【０００４】
画素値が８ビットの整数で表現される場合、４個の画素値の総和を４で割り算した数は、その小数部分を四捨五入されて（丸められて）、整数化される。
【０００５】
四捨五入（丸め）は、所定の数ａに０．５を加算して（ａ＋０．５）、その数の小数部を切り捨てることに行われるので、Ｎ個のデータの平均値を整数として算出する場合、最初に、Ｎ個のデータの総和Σに、丸め用の値（０．５×Ｎ）を加算し（Σ＋０．５×Ｎ）、次に、その値をＮで割算し（Σ／Ｎ＋０．５）、最後に、その値の小数部を切り捨てればよい。
【０００６】
即ち、８ビットの４個（Ｎ＝４）の画素データＡ，Ｂ，Ｃ，Ｄの平均値は、８ビットの画素データＡ，Ｂ，Ｃ，Ｄの総和に、丸め用の値２（＝０．５×４）（２進数では｛１，０｝）を加算した値を、ＬＳＢ（Ｌｅａｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）側に２ビットだけシフトさせることにより算出される。
【０００７】
なお、これ以降、ｎビットの２進数は、｛Ａｎ，・・・，Ａｉ，・・・，Ａ０｝（Ａｉは、第ｉビットの値を表す）で表すことにする。
【０００８】
１つの加算器を利用して、例えば、上述の８ビットの４個の画素データＡ，Ｂ，Ｃ，Ｄの平均値を時系列に沿って算出する場合、最初に、８ビットのデータＡと、８ビットのデータＢの加算が行われる。このときの演算結果Ｅ（＝Ａ＋Ｂ）は、９ビットで表現される。
【０００９】
次に、８ビットのデータＣと、８ビットのデータＤの加算が行われる。このときの演算結果Ｆ（＝Ｃ＋Ｄ）は、９ビットで表現される。
【００１０】
そして、２つの９ビットの演算結果Ｅ，Ｆの加算が行われる。このときの演算結果Ｇ（＝Ｅ＋Ｆ）は、１０ビットで表現される。さらに、この演算結果Ｇに、丸め用の値｛１，０｝を加算する。
【００１１】
最後に、丸め用の値｛１，０｝を加算した後の演算結果Ｇ（１０ビット）の下位２ビットを無視することにより、即ち上位８ビットを取ることにより、４個の８ビットのデータＡ，Ｂ，Ｃ，Ｄの平均値が、整数（８ビット）として算出される。
【００１２】
【発明が解決しようとする課題】
しかしながら、上述のように、例えば８ビットの複数のデータから平均値を算出する場合、算出される平均値は８ビットであるにも拘わらず、それらのデータの総和を算出する過程において、９ビットまたは１０ビットのデータが生成されるので、データを保持するレジスタと、演算を行う加算器との間において、これらのデータを転送するために、最初のデータおよび算出される平均値のビット数より広いビット幅の伝送路が必要となり、回路規模を小さくすることが困難であるという問題を有している。
【００１３】
本発明は、このような状況に鑑みてなされたもので、複数の第１のビット数のデータと、所定の記憶部に記憶されている第２のビット数のデータを加算し、演算結果の第２のビット数の下位データを所定の記憶部に記憶させ、演算結果の残りの上位データを出力するようにして、最初のデータおよび算出される平均値のビット数と同一のビット幅の伝送路で処理を行うことができるようにするものである。
【００１４】
【課題を解決するための手段】
本発明の第１の情報処理装置は、それぞれが第１の値を記憶可能な第１および第２の記憶手段を含む複数の記憶手段と、初期値を１とする下位１ビット用の記憶手段と、第１の記憶手段に記憶された第１の値、第２の記憶手段に記憶された第１の値、および下位１ビット用の記憶手段に記憶された第２の値の加算演算を行い、加算演算の結果得られる演算和の下位１ビットを除く上位ビットの値を複数の記憶手段のうちの１つの記憶手段に出力するとともに、演算和の下位１ビットの値を第２の値として下位１ビット用の記憶手段に出力する演算手段とを備え、演算手段は、加算演算を繰り返し行い、複数の記憶手段のうちの１つの記憶手段に出力される最後の値を２のＮ乗個の丸め平均値とすることを特徴とする。
演算手段では、第１の値のビット数と同数の演算和の上位ビットの値が複数の記憶手段のうちの１つの記憶手段に出力される。
【００１６】
本発明の第２の情報処理装置は、それぞれがＮ個の第１の数値データを記憶可能な第１および第２の記憶手段を含む複数の記憶手段と、Ｎ組のそれぞれに対する初期値を１とする下位１ビット用の記憶手段と、Ｎ組のそれぞれについて、第１の記憶手段に記憶された第１の数値データ、第２の記憶手段に記憶された第１の数値データ、および下位１ビット用の記憶手段に記憶された第２の数値データの加算演算を行い、加算演算の結果得られる演算和の下位１ビットを除く上位ビットの数値データを複数の記憶手段のうち１つの記憶手段に出力するとともに、下位１ビットの数値データを第２の数値データとして下位１ビット用の記憶手段に出力する演算手段とを備え、演算手段は、加算演算を繰り返し行い、複数の記憶手段のうちの１つの記憶手段に出力される最後の値を２のＮ乗個の丸め平均値とすることを特徴とする。
【００１８】
第１の本発明においては、それぞれが第１の値を記憶可能な第１および第２の記憶手段を含む複数の記憶手段と、初期値を１とする下位１ビット用の記憶手段とが設けられる。そして、第１の記憶手段に記憶された第１の値、第２の記憶手段に記憶された第１の値、および下位１ビット用の記憶手段に記憶された第２の値の加算演算が行われ、加算演算の結果得られる演算和の下位１ビットを除く上位ビットの値が複数の記憶手段のうちの１つの記憶手段に出力されるとともに、演算和の下位１ビットの値が第２の値として下位１ビット用の記憶手段に出力される。ここで、加算演算は繰り返し行われ、複数の記憶手段のうちの１つの記憶手段に出力される最後の値が、２のＮ乗個の丸め平均値とされる。
【００２０】
第２の本発明においては、それぞれがＮ個の第１の数値データを記憶可能な第１および第２の記憶手段を含む複数の記憶手段と、Ｎ組のそれぞれに対する初期値を１とする下位１ビット用の記憶手段とが設けられる。そして、Ｎ組のそれぞれについて、第１の記憶手段に記憶された第１の数値データ、第２の記憶手段に記憶された第１の数値データ、および下位１ビット用の記憶手段に記憶された第２の数値データの加算演算が行われ、加算演算の結果得られる演算和の下位１ビットを除く上位ビットの数値データが複数の記憶手段のうちの１つの記憶手段に出力されるとともに、下位１ビットの数値データが第２の数値データとして下位１ビット用の記憶手段に出力される。ここで、加算演算が繰り返し行われ、複数の記憶手段のうちの１つの記憶手段に出力される最後の値が、２のＮ乗個の丸め平均値とされる。
【００２２】
【発明の実施の形態】
図１は、本発明の情報処理装置の第１の実施の形態の構成を示している。制御回路１は、メモリ２に記憶されているプログラムに従って動作し、例えば、所定の装置（図示せず）よりインタフェース３を介して供給されたデータを、加算回路４のレジスタファイル１１に出力したり、加算回路４により算出された値をインタフェース３を介して出力するようになされている。
【００２３】
加算回路４のレジスタファイル１１は、８ビットのレジスタＡ，Ｂ，Ｃ、および、図示せぬ複数の８ビットのレジスタＤ乃至Ｑの他、１ビットのレジスタＣＲＹ（記憶手段）を有している。
【００２４】
加算回路４の加算素子２１（加算手段）は、レジスタファイル１１の所定の２つの８ビットのレジスタより８ビットの伝送路を介して供給される２つの８ビットの値と、レジスタＣＲＹより供給される１ビットの値の総和を演算し、９ビットの演算結果の下位１ビット（ＬＳＢ）の値をレジスタＣＲＹに出力し、上位８ビットの値をレジスタファイル１１のいずれかの８ビットのレジスタに８ビットの伝送路を介して出力するようになされている。
【００２５】
例えば、加算回路４の加算素子２１は、図２に示すように、時刻Ｔにおいて入力された、レジスタＡとレジスタＢの８ビットの値、および、レジスタＣＲＹの１ビットの値の総和を演算し、時刻Ｔ＋１において、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値をレジスタＣＲＹに出力するとともに、演算結果の上位８ビットを、レジスタＣに出力する。
【００２６】
次に、２つの８ビットのデータの平均値を整数として（丸めを考慮して）算出するときの、図１の情報処理装置の動作について説明する。なお、図３に示すように、２つの８ビットのデータＡ，Ｂの平均値Ｃは、次式で算出される。
Ｃ＝（Ａ＋Ｂ＋１）＞＞１      （１）
【００２７】
ここで、Ｘ＞＞ｍは、整数（２進数）ＸをＬＳＢ側にｍビットだけシフトさせることを表している。即ち、Ｘが２ｍの倍数である場合、Ｘ＞＞ｍは、Ｘ／２ｍと同一である。
【００２８】
最初に、制御回路１は、レジスタＣＲＹに値１（丸め用の値）を記憶させる。
【００２９】
次に、制御回路１は、レジスタＡの８ビットの値Ａ（＝｛Ａ７，・・・，Ａ０｝）、レジスタＢの８ビットの値Ｂ（＝｛Ｂ７，・・・，Ｂ０｝）、および、レジスタＣＲＹの１ビットの値１を、加算素子２１に出力させる。
【００３０】
そして、加算素子２１は、図４に示すように、それらの値の総和（Ａ＋Ｂ＋１）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値（図中のＣＲＹＣ）を、レジスタＣＲＹに出力するとともに、上位８ビットの値（図中の｛Ｃ７，・・・，Ｃ０｝）を平均値ＣとしてレジスタＣに出力する。
【００３１】
以上のようにして、加算回路４は、レジスタＡ，Ｂに記憶されている８ビットの値の平均値を整数として演算し、レジスタＣに記憶させる。なお、レジスタファイル１１のレジスタＡ乃至Ｃと加算素子２１との間の伝送路のビット幅は、すべて８ビットで十分である。
【００３２】
次に、４つの８ビットのデータの平均値を整数として算出するときの、図１の情報処理装置の動作について説明する。なお、図５に示すように、４つの８ビットのデータＡ乃至Ｄの平均値Ｇは、次式で算出される。
Ｇ＝（Ａ＋Ｂ＋Ｃ＋Ｄ＋２）＞＞２      （２）
【００３３】
最初に、第１番目のサイクルにおいて、制御回路１は、レジスタＣＲＹに値１（丸め用の値２のうちの１）を記憶させる。
【００３４】
次に、制御回路１は、レジスタＡの８ビットの値Ａ（＝｛Ａ７，・・・，Ａ０｝）、レジスタＢの８ビットの値Ｂ（＝｛Ｂ７，・・・，Ｂ０｝）、および、レジスタＣＲＹの１ビットの値１を、加算素子２１に出力させる。
【００３５】
そして、加算素子２１は、図６に示すように、それらの値の総和（Ａ＋Ｂ＋１）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値（図中のＣＲＹＥ）を、レジスタＣＲＹに出力するとともに、上位８ビットの値（図中の｛Ｅ７，・・・，Ｅ０｝）をレジスタＥに出力する。なお、上位８ビットの値｛Ｅ７，・・・，Ｅ０｝は、次式で表される。
２×｛Ｅ７，・・・，Ｅ０｝＋ＣＲＹＥ＝Ａ＋Ｂ＋１      （３）
【００３６】
次に、第２番目のサイクルにおいて、制御回路１は、レジスタＣの８ビットの値Ｃ（＝｛Ｃ７，・・・，Ｃ０｝）、レジスタＤの８ビットの値Ｄ（＝｛Ｄ７，・・・，Ｄ０｝）、および、レジスタＣＲＹの１ビットの値（前回の演算結果のＬＳＢの値、即ち、ＣＲＹＥ）を、加算素子２１に出力させる。
【００３７】
そして、加算素子２１は、図７に示すように、それらの値の総和（Ｃ＋Ｄ＋ＣＲＹＥ）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値（図中のＣＲＹＦ）を、レジスタＣＲＹに出力するとともに、上位８ビットの値（図中の｛Ｆ７，・・・，Ｆ０｝）をレジスタＦに出力する。なお、上位８ビットの値｛Ｆ７，・・・，Ｆ０｝は、次式で表される。
２×｛Ｆ７，・・・，Ｆ０｝＋ＣＲＹＦ＝Ｃ＋Ｄ＋ＣＲＹＥ      （４）
【００３８】
次に、第３番目のサイクルにおいて、制御回路１は、レジスタＥの８ビットの値Ｅ（＝｛Ｅ７，・・・，Ｅ０｝）、レジスタＦの８ビットの値Ｆ（＝｛Ｆ７，・・・，Ｆ０｝）、および、レジスタＣＲＹの１ビットの値（前回の演算結果のＬＳＢの値、即ち、ＣＲＹＦ）を、加算素子２１に出力させる。
【００３９】
そして、加算素子２１は、図８に示すように、それらの値の総和（Ｅ＋Ｆ＋ＣＲＹＦ）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値（図中のＣＲＹＧ）を、レジスタＣＲＹに出力するとともに、上位８ビットの値（図中の｛Ｇ７，・・・，Ｇ０｝）を平均値ＧとしてレジスタＧに出力する。なお、上位８ビットの値｛Ｇ７，・・・，Ｇ０｝は、次式で表される。
２×｛Ｇ７，・・・，Ｇ０｝＋ＣＲＹＧ＝Ｅ＋Ｆ＋ＣＲＹＦ      （５）
【００４０】
なお、値｛Ｅ７，・・・，Ｅ０｝および値｛Ｆ７，・・・，Ｆ０｝は値Ａ，Ｂ，１の総和または値Ｃ，Ｄ，ＣＲＹＥの総和の上位８ビットの値であり、ＣＲＹＦは値Ｃ，Ｄ，ＣＲＹＥの総和のＬＳＢの値である。また、図９に示すように、ＣＲＹＦを１桁繰り上げて、さらに、ＣＲＹＦを反転した値ＮＯＴＦを加算することは、次式に示すように、ＣＲＹＦに１を加算することと等価である。さらに、値ＮＯＴＦは、丸めに影響を与えないので、ＣＲＹＦを１桁繰り上げることは、ＣＲＹＦに１を加算することと実質的に等価である。
２×ＣＲＹＦ＋ＮＯＴＦ＝ＣＲＹＦ＋１      （６）
【００４１】
従って、値Ｅ，Ｆ，ＣＲＹＦの総和の算出において、ＣＲＹＦをＥ０，Ｆ０と同じ桁において加算することにより、暗黙のうちに、丸め用の値のうちの残りの１が加算されていることになる。
【００４２】
次に、レジスタＧに出力された値｛Ｇ７，・・・，Ｇ０｝が、Ａ乃至Ｄの平均値であることを示す。
【００４３】
まず、式（３），（４），（６）より、次式の関係が導出される。
２×（Ｅ＋Ｆ＋ＣＲＹＦ）＋ＮＯＴＦ＝Ａ＋Ｂ＋Ｃ＋Ｄ＋２      （７）
【００４４】
さらに、式（７）の両辺の値をＬＳＢ側に１ビットだけシフトすると、次式の関係が導出される。
Ｅ＋Ｆ＋ＣＲＹＦ＝（Ａ＋Ｂ＋Ｃ＋Ｄ＋２）＞＞１      （８）
【００４５】
また、式（５）の両辺の値をＬＳＢ側に１ビットだけシフトすると、次式の関係が導出される。
｛Ｇ７，・・・，Ｇ０｝＝（Ｅ＋Ｆ＋ＣＲＹＦ）＞＞１      （９）
【００４６】
従って、式（８），（９）より、レジスタＧに出力された値｛Ｇ７，・・・，Ｇ０｝が、次式で表されるように、データＡ，Ｂ，Ｃ，Ｄの平均値Ｇ（式（２））であることがわかる。
0003610564.tif 000002
【００４７】
以上のようにして、４つの８ビットのデータＡ，Ｂ，Ｃ，Ｄの平均値が整数として３サイクルで算出され、レジスタＧに出力される。なお、レジスタファイル１１のレジスタＡ乃至Ｇと加算素子２１との間の伝送路のビット幅は、すべて８ビットで十分である。
【００４８】
次に、８つの８ビットのデータの平均値を整数として算出するときの、図１の情報処理装置の動作について説明する。なお、図１０に示すように、８つの８ビットのデータＡ乃至Ｈの平均値Ｑは、次式で算出される。
Ｑ＝（Ａ＋Ｂ＋Ｃ＋Ｄ＋Ｅ＋Ｆ＋Ｇ＋Ｈ＋４）＞＞３      （１１）
【００４９】
最初に、第１番目のサイクルにおいて、制御回路１は、レジスタＣＲＹに値１（丸め用の値４のうちの１）を記憶させる。
【００５０】
次に、制御回路１は、レジスタＡの８ビットの値Ａ（＝｛Ａ７，・・・，Ａ０｝）、レジスタＢの８ビットの値Ｂ（＝｛Ｂ７，・・・，Ｂ０｝）、および、レジスタＣＲＹの１ビットの値１を、加算素子２１に出力させる。
【００５１】
そして、加算素子２１は、図１１に示すように、それらの値の総和（Ａ＋Ｂ＋１）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値（図中のＣＲＹＪ）を、レジスタＣＲＹに出力するとともに、上位８ビットの値（図中の｛Ｊ７，・・・，Ｊ０｝）をレジスタＪに出力する。なお、上位８ビットの値｛Ｊ７，・・・，Ｊ０｝は、次式で表される。
２×｛Ｊ７，・・・，Ｊ０｝＋ＣＲＹＪ＝Ａ＋Ｂ＋１      （１２）
【００５２】
次に、第２番目のサイクルにおいて、制御回路１は、レジスタＣの８ビットの値Ｃ（＝｛Ｃ７，・・・，Ｃ０｝）、レジスタＤの８ビットの値Ｄ（＝｛Ｄ７，・・・，Ｄ０｝）、および、レジスタＣＲＹの１ビットの値（前回の演算結果のＬＳＢの値、即ち、ＣＲＹＪ）を、加算素子２１に出力させる。
【００５３】
そして、加算素子２１は、図１２に示すように、それらの値の総和（Ｃ＋Ｄ＋ＣＲＹＪ）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値（図中のＣＲＹＫ）を、レジスタＣＲＹに出力するとともに、上位８ビットの値（図中の｛Ｋ７，・・・，Ｋ０｝）をレジスタＫに出力する。なお、上位８ビットの値｛Ｋ７，・・・，Ｋ０｝は、次式で表される。
２×｛Ｋ７，・・・，Ｋ０｝＋ＣＲＹＫ＝Ｃ＋Ｄ＋ＣＲＹＪ      （１３）
【００５４】
次に、第３番目のサイクルにおいて、制御回路１は、レジスタＣの８ビットの値Ｅ（＝｛Ｅ７，・・・，Ｅ０｝）、レジスタＦの８ビットの値Ｆ（＝｛Ｆ７，・・・，Ｆ０｝）、および、レジスタＣＲＹの１ビットの値（前回の演算結果のＬＳＢの値、即ち、ＣＲＹＫ）を、加算素子２１に出力させる。
【００５５】
そして、加算素子２１は、図１３に示すように、それらの値の総和（Ｅ＋Ｆ＋ＣＲＹＫ）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値（図中のＣＲＹＬ）を、レジスタＣＲＹに出力するとともに、上位８ビットの値（図中の｛Ｌ７，・・・，Ｌ０｝）をレジスタＬに出力する。なお、上位８ビットの値｛Ｌ７，・・・，Ｌ０｝は、次式で表される。
２×｛Ｌ７，・・・，Ｌ０｝＋ＣＲＹＬ＝Ｅ＋Ｆ＋ＣＲＹＫ      （１４）
【００５６】
次に、第４番目のサイクルにおいて、制御回路１は、レジスタＧの８ビットの値Ｇ（＝｛Ｇ７，・・・，Ｇ０｝）、レジスタＨの８ビットの値Ｈ（＝｛Ｈ７，・・・，Ｈ０｝）、および、レジスタＣＲＹの１ビットの値（前回の演算結果のＬＳＢの値、即ち、ＣＲＹＬ）を、加算素子２１に出力させる。
【００５７】
そして、加算素子２１は、図１４に示すように、それらの値の総和（Ｇ＋Ｈ＋ＣＲＹＬ）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値（図中のＣＲＹＭ）を、レジスタＣＲＹに出力するとともに、上位８ビットの値（図中の｛Ｍ７，・・・，Ｍ０｝）をレジスタＭに出力する。なお、上位８ビットの値｛Ｍ７，・・・，Ｍ０｝は、次式で表される。
２×｛Ｍ７，・・・，Ｍ０｝＋ＣＲＹＭ＝Ｇ＋Ｈ＋ＣＲＹＬ      （１５）
【００５８】
次に、第５番目のサイクルにおいて、制御回路１は、レジスタＪの８ビットの値Ｊ（＝｛Ｊ７，・・・，Ｊ０｝）、レジスタＫの８ビットの値Ｋ（＝｛Ｋ７，・・・，Ｋ０｝）、および、レジスタＣＲＹの１ビットの値（前回の演算結果のＬＳＢの値、即ち、ＣＲＹＭ）を、加算素子２１に出力させる。
【００５９】
そして、加算素子２１は、図１５に示すように、それらの値の総和（Ｊ＋Ｋ＋ＣＲＹＭ）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値（図中のＣＲＹＮ）を、レジスタＣＲＹに出力するとともに、上位８ビットの値（図中の｛Ｎ７，・・・，Ｎ０｝）をレジスタＮに出力する。なお、上位８ビットの値｛Ｎ７，・・・，Ｎ０｝は、次式で表される。
２×｛Ｎ７，・・・，Ｎ０｝＋ＣＲＹＮ＝Ｊ＋Ｋ＋ＣＲＹＭ      （１６）
【００６０】
なお、値｛Ｊ７，・・・，Ｊ０｝および値｛Ｋ７，・・・，Ｋ０｝は値Ａ，Ｂ，１の総和または値Ｃ，Ｄ，ＣＲＹＪの総和の上位８ビットの値であり、ＣＲＹＭは値Ｇ，Ｈ，ＣＲＹＬの総和のＬＳＢの値である。また、図１６に示すように、ＣＲＹＭを１桁繰り上げて、さらに、ＣＲＹＭを反転した値ＮＯＴＭを加算することは、次式に示すように、ＣＲＹＭに１を加算することと等価である。さらに、値ＮＯＴＭは、丸めに影響を与えないので、ＣＲＹＭを１桁繰り上げることは、ＣＲＹＭに１を加算することと実質的に等価である。
２×ＣＲＹＭ＋ＮＯＴＭ＝ＣＲＹＭ＋１      （１７）
【００６１】
従って、値Ｊ，Ｋ，ＣＲＹＭの総和の算出において、ＣＲＹＭ（第０ビットの値）をＪ０，Ｋ０と同じ桁（第１ビット）において加算することにより、暗黙のうちに、丸め用の値４のうちの１が加算されていることになる。
【００６２】
次に、第６番目のサイクルにおいて、制御回路１は、レジスタＬの８ビットの値Ｌ（＝｛Ｌ７，・・・，Ｌ０｝）、レジスタＫの８ビットの値Ｍ（＝｛Ｍ７，・・・，Ｍ０｝）、および、レジスタＣＲＹの１ビットの値（前回の演算結果のＬＳＢの値、即ち、ＣＲＹＮ）を、加算素子２１に出力させる。
【００６３】
そして、加算素子２１は、図１７に示すように、それらの値の総和（Ｌ＋Ｍ＋ＣＲＹＮ）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値（図中のＣＲＹＰ）を、レジスタＣＲＹに出力するとともに、上位８ビットの値（図中の｛Ｐ７，・・・，Ｐ０｝）をレジスタＰに出力する。なお、上位８ビットの値｛Ｐ７，・・・，Ｐ０｝は、次式で表される。
２×｛Ｐ７，・・・，Ｐ０｝＋ＣＲＹＰ＝Ｌ＋Ｍ＋ＣＲＹＮ      （１８）
【００６４】
次に、第７番目のサイクルにおいて、制御回路１は、レジスタＮの８ビットの値Ｎ（＝｛Ｎ７，・・・，Ｎ０｝）、レジスタＰの８ビットの値Ｐ（＝｛Ｐ７，・・・，Ｐ０｝）、および、レジスタＣＲＹの１ビットの値（前回の演算結果のＬＳＢの値、即ち、ＣＲＹＰ）を、加算素子２１に出力させる。
【００６５】
そして、加算素子２１は、図１８に示すように、それらの値の総和（Ｎ＋Ｐ＋ＣＲＹＰ）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値（図中のＣＲＹＱ）を、レジスタＣＲＹに出力するとともに、上位８ビットの値（図中の｛Ｑ７，・・・，Ｑ０｝）を平均値ＱとしてレジスタＱに出力する。なお、上位８ビットの値｛Ｑ７，・・・，Ｑ０｝は、次式で表される。
２×｛Ｑ７，・・・，Ｑ０｝＋ＣＲＹＱ＝Ｎ＋Ｐ＋ＣＲＹＰ      （１９）
【００６６】
なお、値｛Ｎ７，・・・，Ｎ０｝および値｛Ｐ７，・・・，Ｐ０｝は値Ｊ，Ｋ，ＣＲＹＭの総和または値Ｌ，Ｍ，ＣＲＹＮの総和の上位８ビットの値であり、ＣＲＹＰは値Ｌ，Ｍ，ＣＲＹＮの総和のＬＳＢの値である。また、図１９に示すように、ＣＲＹＰを１桁繰り上げて、ＣＲＹＰを反転した値ＮＯＴＰを加算することは、次式に示すように、ＣＲＹＰに１を加算することと等価であり、さらに、第１ビットの値であるＣＲＹＰに１を加算することは、データＡ乃至Ｈの総和に２（＝｛１，０｝）を加算することと等価である。さらに、値ＮＯＴＰは、丸めに影響を与えないので、ＣＲＹＰを１桁繰り上げることは、ＣＲＹＰに１を加算することと実質的に等価である。
２×ＣＲＹＰ＋ＮＯＴＰ＝ＣＲＹＰ＋１      （２０）
【００６７】
従って、値Ｎ，Ｐ，ＣＲＹＰの総和の算出において、ＣＲＹＰ（第１ビット）をＮ０，Ｐ０と同じ桁（第２ビット）において加算することにより、暗黙のうちに、丸め用の値４のうちの残りの２が加算されていることになる。
【００６８】
次に、レジスタＱに出力された値｛Ｑ７，・・・，Ｑ０｝がＡ乃至Ｈの平均値であることを示す。
【００６９】
まず、式（１２）乃至（１５），（１７）より、次式の関係が導出される。
0003610564.tif 000003
【００７０】
さらに、式（２１）の両辺の値をＬＳＢ側に１ビットだけシフトすると、次式の関係が導出される。
0003610564.tif 000004
【００７１】
また、式（１６），（１８），（２０）より、次式の関係が導出される。
２×（Ｎ＋Ｐ＋ＣＲＹＰ）＋ＮＯＴＰ＝Ｊ＋Ｋ＋Ｌ＋Ｍ＋ＣＲＹＭ＋１      （２３）
【００７２】
さらに、式（２３）の両辺の値をＬＳＢ側に１ビットだけシフトすると、次式の関係が導出される。
Ｎ＋Ｐ＋ＣＲＹＰ＝（Ｊ＋Ｋ＋Ｌ＋Ｍ＋ＣＲＹＭ＋１）＞＞１      （２４）
【００７３】
そして、式（１９）の両辺の値をＬＳＢ側に１ビットだけシフトすると、次式の関係が導出される。
｛Ｑ７，・・・，Ｑ０｝＝（Ｎ＋Ｐ＋ＣＲＹＰ）＞＞１      （２５）
【００７４】
従って、式（２２），（２４），（２５）より、レジスタＱに出力された値｛Ｑ７，・・・，Ｑ０｝が、次式で表されるように、データＡ乃至Ｈの平均値Ｑ（式（１１））であることがわかる。
0003610564.tif 000005
【００７５】
以上のようにして、８つの８ビットのデータＡ乃至Ｈの平均値が整数Ｑとして７サイクルで算出され、レジスタＱに出力される。なお、レジスタファイル１１のレジスタＡ乃至Ｑと加算素子２１との間の伝送路のビット幅は、すべて８ビットで十分である。
【００７６】
なお、制御回路１は、以上のようにして算出した平均値を、例えばインタフェース３を介して所定の装置に出力する。
【００７７】
また、上記実施の形態においては、データの数が２個、４個、８個のいずれかの場合における、データの平均値を算出しているが、勿論、２Ｎ個（Ｎは、４以上の整数）のデータの平均値を算出することも可能である。その場合においても、レジスタファイル１１のレジスタと加算素子２１との間の伝送路のビット幅は、すべて８ビットで十分である。
【００７８】
図２０は、本発明の情報処理装置の第２の実施の形態の構成を示している。制御回路１、メモリ２、および、インタフェース３は、図１の第１の実施の形態のものと同様であるので、その説明を省略する。
【００７９】
加算回路４１−ｉ（ｉ＝１，・・・，４）の加算素子６１−ｉ（加算手段）は、レジスタファイル４２の所定の２つの３２ビットのレジスタより供給される２つの３２ビットの値のうちの、それぞれ第（（ｉ−１）×８）ビット乃至第（ｉ×８−１）ビットの８ビットと、１ビットのレジスタ６２−ｉ（記憶手段）より供給される１ビットの値の総和を演算し、９ビットの演算結果の下位１ビット（ＬＳＢ）の値をレジスタ６２−ｉに出力し、上位８ビットの値を、レジスタファイル４２のいずれかの３２ビットのレジスタに、３２ビットのデータのうちの第（（ｉ−１）×８）ビット乃至第（ｉ×８−１）ビットのデータとして出力するようになされている。
【００８０】
レジスタファイル４２は、３２（＝８×４）ビットのレジスタＡＡ，ＢＢ，ＣＣ、および、図示せぬ複数の３２ビットのレジスタを有している。各レジスタは、４つの８ビットのデータを保持するようになされている。
【００８１】
次に、平均値を算出する動作の一例として、レジスタＡＡに記憶されている４つの８ビットのデータと、そのデータに対応する、レジスタＢＢに記憶されている４つの８ビットのデータの平均値をそれぞれ算出するときの、図２０の情報処理装置の動作を説明する。
【００８２】
レジスタＡＡの第０ビット乃至第７ビットには、８ビットのデータＡ１（＝｛Ａ１７，・・・，Ａ１０｝）が記憶されており、レジスタＡＡの第８ビット乃至第１５ビットには、８ビットのデータＡ２（＝｛Ａ２７，・・・，Ａ２０｝）が記憶されている。同様に、レジスタＡＡの第１６ビット乃至第２３ビットには、８ビットのデータＡ３（＝｛Ａ３７，・・・，Ａ３０｝）が記憶されており、レジスタＡＡの第２４ビット乃至第３１ビットには、８ビットのデータＡ４（＝｛Ａ４７，・・・，Ａ４０｝）が記憶されている。
【００８３】
一方、レジスタＢＢの第０ビット乃至第７ビットには、８ビットのデータＢ１（＝｛Ｂ１７，・・・，Ｂ１０｝）が記憶されており、レジスタＢＢの第８ビット乃至第１５ビットには、８ビットのデータＢ２（＝｛Ｂ２７，・・・，Ｂ２０｝）が記憶されている。同様に、レジスタＢＢの第１６ビット乃至第２３ビットには、８ビットのデータＢ３（＝｛Ｂ３７，・・・，Ｂ３０｝）が記憶されており、レジスタＢＢの第２４ビット乃至第３１ビットには、８ビットのデータＢ４（＝｛Ｂ４７，・・・，Ｂ４０｝）が記憶されている。
【００８４】
そして、レジスタＡＡのデータＡｉとレジスタＢＢのデータＢｉの平均値Ｃｉ（＝（Ａｉ＋Ｂｉ＋１）＞＞１）（ｉ＝１，・・・，４）が、加算回路４１−ｉによってそれぞれ算出される。
【００８５】
最初に、制御回路１は、加算回路４１−１乃至４１−４のレジスタ６２−１乃至６２−４に値１（丸め用の値）を記憶させる。
【００８６】
次に、制御回路１は、レジスタＡＡの３２ビットの値のうち、第０ビット乃至第７ビットの８ビットのデータＡ１を、加算回路４１−１に出力させ、第８ビット乃至第１５ビットの８ビットのデータＡ２を、加算回路４１−２に出力させる。同様に、制御回路１は、レジスタＡＡの３２ビットの値のうち、第１６ビット乃至第２３ビットの８ビットのデータＡ３を、加算回路４１−３に出力させ、第２４ビット乃至第３１ビットの８ビットのデータＡ４を、加算回路４１−４に出力させる。
【００８７】
さらに、制御回路１は、レジスタＢＢの３２ビットの値のうち、第０ビット乃至第７ビットの８ビットのデータＢ１を、加算回路４１−１に出力させ、第８ビット乃至第１５ビットの８ビットのデータＢ２を、加算回路４１−２に出力させる。同様に、制御回路１は、レジスタＢＢの３２ビットの値のうち、第１６ビット乃至第２３ビットの８ビットのデータＢ３を、加算回路４１−３に出力させ、第２４ビット乃至第３１ビットの８ビットのデータＢ４を、加算回路４１−４に出力させる。
【００８８】
そして、加算回路４１−１の加算素子６１−１は、供給されたデータＡ１，Ｂ１と、レジスタ６２−１に記憶されている値１の総和（Ａ１＋Ｂ１＋１）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値を、レジスタ６２−１に出力するとともに、上位８ビットの値｛Ｃ１７，・・・，Ｃ１０｝をデータＡ１，Ｂ１の平均値Ｃ１としてレジスタＣＣの第０ビット乃至第７ビットに出力する。
【００８９】
加算回路４１−１に並行して、加算回路４１−２の加算素子６１−２は、供給されたデータＡ２，Ｂ２と、レジスタ６２−２に記憶されている値１の総和（Ａ２＋Ｂ２＋１）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値を、レジスタ６２−２に出力するとともに、上位８ビットの値｛Ｃ２７，・・・，Ｃ２０｝をデータＡ２，Ｂ２の平均値Ｃ２としてレジスタＣＣの第８ビット乃至第１５ビットに出力する。
【００９０】
同様に、加算回路４１−１に並行して、加算回路４１−３の加算素子６１−３は、供給されたデータＡ３，Ｂ３と、レジスタ６３−３に記憶されている値１の総和（Ａ３＋Ｂ３＋１）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値を、レジスタ６３−３に出力するとともに、上位８ビットの値｛Ｃ３７，・・・，Ｃ３０｝をデータＡ３，Ｂ３の平均値Ｃ３としてレジスタＣＣの第１６ビット乃至第２３ビットに出力する。
【００９１】
さらに、加算回路４１−１に並行して、加算回路４１−４の加算素子６１−４は、供給されたデータＡ４，Ｂ４と、レジスタ６４−４に記憶されている値１の総和（Ａ４＋Ｂ４＋１）を演算し、９ビットの演算結果のうちの下位１ビット（ＬＳＢ）の値を、レジスタ６４−４に出力するとともに、上位８ビットの値｛Ｃ４７，・・・，Ｃ４０｝をデータＡ４，Ｂ４の平均値Ｃ４としてレジスタＣＣの第２４ビット乃至第３１ビットに出力する。
【００９２】
以上のようにして、加算回路４１−１乃至４１−４は、レジスタＡＡ，ＢＢに記憶されている８ビットのデータの平均値を整数としてそれぞれ演算し、レジスタＣＣにそれぞれ記憶させる。このようにして、４個の加算回路４１−１乃至４１−４を並列に利用することにより、１サイクルで４個の平均値を算出することができる。
【００９３】
なお、第２の実施の形態においては、４個の加算回路４１−１乃至４１−４を使用しているが、Ｎ個の加算回路４１−１乃至４１−Ｎを使用することにより、１サイクルで、Ｎ個の平均値を算出することができる。
【００９４】
また、第１および第２の実施の形態においては、８ビットのデータの平均値を算出しているが、他のビット数のデータの平均値を算出するようにしてもよい。その場合、レジスタファイルのレジスタと、加算素子との間の伝送路は、そのデータのビット数に対応するビット幅があれば十分である。
【００９５】
【発明の効果】
以上のごとく、第１の本発明によれば、最初のデータおよび算出される平均値のビット数と同一のビット幅の伝送路で処理を行うことができる。
【００９６】
第２の本発明によれば、最初のデータおよび算出される平均値のビット数と同一のビット幅の伝送路で処理を行うことができるとともに、１サイクルで、Ｎ個の平均値を算出することができる。
【図面の簡単な説明】
【図１】本発明の情報処理装置の第１の実施の形態の構成を示すブロック図である。
【図２】図１の加算素子２１の入力と出力の関係の一例を示す図である。
【図３】２つの８ビットのデータの平均値を算出するときに行われる演算の一例を示す図である。
【図４】２つの８ビットのデータの平均値を算出するときの、図１の加算素子２１の入力と出力の関係の一例を示す図である。
【図５】４つの８ビットのデータの平均値を算出するときに行われる演算の一例を示す図である。
【図６】４つの８ビットのデータの平均値を算出するときの、第１番目のサイクルにおいて行われる演算の一例を示す図である。
【図７】４つの８ビットのデータの平均値を算出するときの、第２番目のサイクルにおいて行われる演算の一例を示す図である。
【図８】４つの８ビットのデータの平均値を算出するときの、第３番目のサイクルにおいて行われる演算の一例を示す図である。
【図９】レジスタＣＲＹの値の繰り上げの一例について説明する図である。
【図１０】８つの８ビットのデータの平均値を算出するときに行われる演算の一例を示す図である。
【図１１】８つの８ビットのデータの平均値を算出するときの、第１番目のサイクルにおいて行われる演算の一例を示す図である。
【図１２】８つの８ビットのデータの平均値を算出するときの、第２番目のサイクルにおいて行われる演算の一例を示す図である。
【図１３】８つの８ビットのデータの平均値を算出するときの、第３番目のサイクルにおいて行われる演算の一例を示す図である。
【図１４】８つの８ビットのデータの平均値を算出するときの、第４番目のサイクルにおいて行われる演算の一例を示す図である。
【図１５】８つの８ビットのデータの平均値を算出するときの、第５番目のサイクルにおいて行われる演算の一例を示す図である。
【図１６】レジスタＣＲＹの値の繰り上げの他の例について説明する図である。
【図１７】８つの８ビットのデータの平均値を算出するときの、第６番目のサイクルにおいて行われる演算の一例を示す図である。
【図１８】８つの８ビットのデータの平均値を算出するときの、第７番目のサイクルにおいて行われる演算の一例を示す図である。
【図１９】レジスタＣＲＹの値の繰り上げのさらに他の例について説明する図である。
【図２０】本発明の情報処理装置の第２の実施の形態の構成を示すブロック図である。
【符号の説明】
１  制御回路，  ２  メモリ，  ３  インタフェース，  ４  加算回路，  １１  レジスタファイル，  ２１  加算素子，  ４１−１乃至４１−４  加算回路，  ４２  レジスタファイル，  ６１−１乃至６１−４  加算素子，  ６２−１乃至６２−４  レジスタ
【図１】
0003610564.tif 000006
【図２】
0003610564.tif 000007
【図３】
0003610564.tif 000008
【図４】
0003610564.tif 000009
【図５】
0003610564.tif 000010
【図６】
0003610564.tif 000011
【図７】
0003610564.tif 000012
【図８】
0003610564.tif 000013
【図９】
0003610564.tif 000014
【図１０】
0003610564.tif 000015
【図１１】
0003610564.tif 000016
【図１２】
0003610564.tif 000017
【図１３】
0003610564.tif 000018
【図１４】
0003610564.tif 000019
【図１５】
0003610564.tif 000020
【図１６】
0003610564.tif 000021
【図１７】
0003610564.tif 000022
【図１８】
0003610564.tif 000023
【図１９】
0003610564.tif 000024
【図２０】
0003610564.tif 000025