JP2005128832A - データ処理装置と剰余演算回路 - Google Patents

データ処理装置と剰余演算回路 Download PDF

Info

Publication number
JP2005128832A
JP2005128832A JP2003364415A JP2003364415A JP2005128832A JP 2005128832 A JP2005128832 A JP 2005128832A JP 2003364415 A JP2003364415 A JP 2003364415A JP 2003364415 A JP2003364415 A JP 2003364415A JP 2005128832 A JP2005128832 A JP 2005128832A
Authority
JP
Japan
Prior art keywords
remainder
value
partial
residue
divisor
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.)
Pending
Application number
JP2003364415A
Other languages
English (en)
Inventor
Shigenari Kawabata
重成 川端
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2003364415A priority Critical patent/JP2005128832A/ja
Publication of JP2005128832A publication Critical patent/JP2005128832A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】剰余演算回路の構成の簡略化及び処理の高速化
【解決手段】被演算値を、LSB側から所定ビット数づつのビットグループ毎に、或る除数による剰余演算を行って、上記除数に対する剰余値を算出する第1の部分剰余演算部(PM3:11−1〜11−4)と、複数の上記部分剰余演算部により得られた複数の剰余値を加算するとともに、加算結果を上記除数に対する剰余を表現できる最小ビット数の値に変換する部分加算部(PAM3)と、部分加算部により生成された値に対し、LSB側から上記所定ビット数づつのビットグループ毎に剰余演算を行って、被演算値の除数に対する剰余値を算出する第2の部分剰余演算部(PM3:13−1,13−2、15)を有する。そして第1の部分剰余演算部と部分加算部と第2の部分剰余演算部をツリー構造で配する。部分加算部で各剰余値を加算した際には、剰余値を表現できる最小ビット数に変換して出力することで、加算時の桁上がり処理に起因する演算量の増大を抑制する。
【選択図】 図3

Description

本発明は、剰余演算を用いたデータ処理装置、及び剰余演算回路に関するものである。
特許第2541758号公報
一般に剰余演算は繰り返し減算による順序回路で構成されるが、演算結果が出力されるまでに時間がかかるという欠点がある為、除数が固定の値の場合においては変換テーブルにて構成した方が回路規模が小さくなる。
但し入力と出力の関係を使いそのまま論理合成をかけたり、若しくは変換テーブルをリードオンリメモリに保持させる等の手法を採る場合、回路規模が大きくなる等の難点がある。
このような点を解決する従来技術としては、上記特許文献1に開示されているものがある。図9に、上記特許文献1に記載された剰余算出回路を示す。
この回路では、除数を3とする場合、被除数としての2進数の各ビット(各桁)の重みはLSB(第0ビット)側から1,2,1,2,1,2・・・となることに着目している。即ち被除数において0を含む偶数ビット(重み1のビット)が「1」であれば、余りは「1」であり、奇数ビット(重み2のビット)が「1」であれば余りは「2」となる。そして偶数ビットの余りの合計と奇数ビットの余りの合計の和が、被除数を3で割った余りとなる。
この原理を利用して、12ビットの被除数に対する剰余算出回路が図9のように構成されている。
図9では、各全加算器71〜82の入出力信号線に付した「1」,「2」の数字は重み(余り)「1」,「2」を示すものとしている。
全加算器71,72は被除数の偶数ビット(重み1)の加算を行い、全加算器73,74は奇数ビット(重み2)の全加算を行う。全加算器75は前段の全加算器71,72の重み1の信号Sを加算し、全加算器76は前段の全加算器71,72の重み2の信号CRYと全加算器75の重み2の信号CRYとを加算する。
全加算器77は前段の全加算器73,74の重み2の信号Sを加算し、全加算器78は前段の全加算器73,74の重み1の信号CRYと全加算器77の重み1の信号CRYとを加算する。
次段以降の各全加算器79〜82においても各信号の重みを考慮しつつ同一重み同士の加算処理を行い、最終的に3ビット信号となるまで前述の加算処理が繰返される。そして、この最終的な3ビットの信号をモジュロ3算出回路45へ入力して剰余出力OUTが得られる。
即ちこの回路では、2進数の被除数の各ビットについて、偶数ビットは重み1、奇数ビットは重み2を持たせ、重み1同士、重み2同士のビットを全加算器に入れると、全加算器の和Sと桁上げCに、重み1若しくは重み2のいずれかが入力値の重みの種類によって一意に出力されることを利用して、この全加算器を通過する毎に元の値を1ビットずつ減らしていく。そしてこれを繰り返すことで必要最低限のビット数に変換した後に小さな規模のモジュロ3算出演算器を利用可能にしており、結果として全体の回路規模縮小と回路速度の向上を図っている。
しかしながら上記特許文献1の回路では、モジュロ3算出を行っている事が既知であるにもかかわらず、それを利用しているのは回路の最終段のみであり、途中の演算で直接それを利用している所が無い。
例えば初期の段階で奇数ビットと偶数ビットの組合せの際、両方とも1、つまり10進表現で「3」という値の場合は、モジュロ3(除数が3の剰余)では「0」に等価である。従って奇数ビットと偶数ビットの組み合わせで2進数値「11」となる場合、「00」に変換することで伝播させる情報量が削減できることが考えられるが、その特徴が生かされておらず、回路規模縮小や回路速度向上の効果が少ない。
そこで本発明では、回路規模縮小及び回路速度向上という点で、より効果の大きい剰余演算回路を提案し、またその剰余演算回路を用いたデータ処理装置を提案する。
本発明のデータ処理装置は、入力データもしくは該入力データに対応した被演算値について剰余演算を行う剰余演算手段と、上記剰余演算手段によって得られた剰余に応じて上記入力データを処理する処理手段とを備える。
そして上記剰余演算手段は、上記入力データ又は上記被演算値のいずれか一方に対し、LSB側から所定ビット数づつのビットグループ毎に或る除数による剰余演算を行って、上記除数に対する剰余値を算出する第1の部分剰余演算部と、上記第1の部分剰余演算部により得られた複数の剰余値を加算するとともに、加算結果を上記除数に対する剰余を表現できる最小ビット数の値に変換する部分加算部と、上記部分加算部により生成された値に対し、LSB側から上記所定ビット数づつのビットグループ毎に上記除数による剰余演算を行って、上記入力データ又は上記被演算値の上記除数に対する剰余値を算出する第2の部分剰余演算部とを含む。
また上記剰余演算手段は、Nビット(Nは3以上の整数)の上記入力データ又は上記被演算値について、LSB側から各ビットの剰余パターンが同一となる所定ビット数づつのビットグループ毎に、上記除数による剰余演算を行う。
また、特に除数を「3」とする場合、上記第1の部分剰余演算部は、Nビット(Nは3以上の整数)の上記入力データ又は上記被演算値について、LSB側から順に2ビットづつのビットグループ毎に除数「3」による剰余演算を行って2ビットの剰余値を算出し、上記部分加算部は、上記第1の部分剰余演算部により得られた複数の剰余値を加算するとともに、加算結果を2ビットの値に変換する。
本発明の剰余演算回路は、上記剰余演算手段としての構成を有するものである。
このような本発明においては、剰余演算手段(剰余演算回路)では、第1の部分剰余演算部により、入力データ又は被演算値について、例えば2ビットづつなどのビットグループ毎に剰余を算出する。このとき剰余値は、当然ながら除数に応じてあり得る値のみとなる。例えば除数3であれば、剰余値は0,1,2のいずれかとなる。そしてその後、部分加算部で各剰余値を加算するわけであるが、例えば除数3の場合、被加算数と加算数ともに0〜2の範囲に抑えられる性質を利用して加算論理構成を採ることができ、加算時の桁上がり処理に起因する演算量の増大を抑制できる。また加算結果を除数に対する剰余を表現できる最小ビット数(除数3の場合は0,1,2を表現できる2ビット)の値に変換する。この値は、ビット数が削減された入力データ又は被演算値を構成する値ともいえる。つまり、ツリー構造上で並列の複数の部分加算部の出力は、この時点で当初の入力データ又は被演算値よりビット数の削減された被演算値となる。その被演算値については、さらに第2の部分剰余演算部により、ビットグループ毎に処理される。
このようにして、部分剰余演算部と部分加算部のツリー構造において伝播させる情報量を削減していく。
本発明によれば、剰余演算回路(剰余演算手段)において、入力データ又は被演算値を複数のビットグループに分けて剰余演算を行い、各剰余値を加算し、かつその際に加算結果を除数に対する剰余を表現できる最小ビット数の値に変換していく処理を繰り返すことで、最終的に、当初の被演算値に対する所定の除数による剰余値を得る。このため、剰余演算過程において効率的に伝搬される情報量が削減されていくことになり、結果として回路規模の縮小と回路速度の向上に大きな効果を得ることができる。
また、このような剰余演算手段を用いたデータ処理装置は、剰余演算手段の回路規模の縮小化に伴って、全体の規模を削減し、また剰余演算手段の処理の高速化により高速処理が可能となる。
本発明の実施の形態のデータ処理装置の構成例を図1,図2に示す。
本発明のデータ処理装置は、入力データの値、もしくは該入力データに対応された被演算値について剰余演算を行う剰余演算手段と、この剰余演算手段によって得られた剰余に基づいて、上記入力データの処理を選択する選択処理手段とを備えるものであり、このようなデータ処理装置の一例として、図1では、メモリに対するデータ記憶の選択制御を行うデータ処理装置を示している。
図1のデータ処理装置は、データDTを、その各データDTに与えられたアドレスAdの剰余に応じて、記憶するメモリ部を振り分けて記憶させる装置である。この場合CPU3は、記憶すべきデータDT及びアドレスAdを出力する部位として示している。CPU3はバスB2によりデータDT及びアドレスAdを選択処理部2に供給する。
メモリ4A,4Bは、データDTを記憶するメモリである。メモリ4AはバスB1によって書込/読出アクセスが行われ、またメモリ4Bは、バスB2によって書込/読出アクセスが行われるものとしている。
剰余演算回路1は、アドレスAdとしてのNビットの2進数値を被演算値として入力し、その被演算値に対して例えば除数3で割った余りとしての剰余値mを出力する。
剰余値mは選択処理部2に供給される。除数3の場合、剰余値mは、0,1,2のいずれかとなる。
選択処理部2は、例えば剰余値m=0のアドレスAdが与えられたデータDTについては、メモリ4Bに書き込み、剰余値m=1又は2のアドレスAdが与えられたデータDTについては、メモリ4Aに書き込むように選択処理を行う。即ち、剰余値m=0の場合は、バスB2を選択してCPU3からのデータDT及びアドレスAdを出力し、剰余値m=1又は2の場合は、バスB1を選択してCPU3からのデータDT及びアドレスAdを出力する。
即ちこのデータ処理装置は、例えばアドレスAd及びデータDTに規則性があり、アドレスが3の倍数の値のときのデータDTが、アドレスが3の倍数でない値のデータDTと異なる性質を持つ場合に、これをメモリ4A、4Bに振り分けて格納する装置である。
例えばアドレスが3の倍数の値のデータDTは、ビット数B1のデータであり、アドレスが3の倍数でない値のデータDTはビット数B2のデータであるとすると、この場合、メモリ4Aはビット数B2のデータの格納領域、メモリ4Bはビット数B1のデータの格納領域として使用されることになる。従って、データビット長に応じてデータを振り分ける用途に好適な装置となる。
なお、例えばこの図1のように供給されたデータの記憶領域を選択するのではなく、アドレス値に応じてデータを取捨するデータ処理装置も構成できる。即ち、選択処理部2が、アドレスAdの剰余値m=0の場合のみ、そのデータDT及びアドレスAdをメモリに転送して記憶させ、アドレスAdの剰余値m=1又は2の場合は、そのデータDTの記憶は行わないようにする装置である。
また、図1の例ではメモリ4A、4Bへの記憶の振り分けとしたが、メモリ4A、4Bに代えて2種類のデータ処理部を設け、入力されたデータをアドレスの剰余値mに応じて2つのデータ処理部の一方に振り分けるような構成も考えられる。例えばデータの加算、累積、平均化、最大・最小検出などのデータ処理や、データ合成などの処理に対して、入力データの振り分けを行う。
これら各種の構成において、データDTに対応された値としてアドレスAdの剰余演算を行って、その結果に応じてデータ経路を選択する構成が、剰余演算回路1を含むデータ処理装置として想定される。
もちろんデータDTに対応された値、つまり剰余演算回路1での被演算値となるアドレス値としては、メモリに対応する狭義のアドレスに限らず、特定のデータフォーマット上で規定されるセクタ番号など、データ単位毎に付された値であればよい。
図2は、入力データDT自体が、剰余演算回路1での被演算値とされるデータ処理装置例を示している。
この場合、入力データDTが選択処理部2A及び剰余演算回路1に供給され、また剰余演算回路1は、データDTについて例えば除数3による剰余値mを選択処理部2Aに供給する。
選択処理部2Aは、例えば剰余値m=0のデータのみを、データ処理部5に転送する。
このデータ処理装置は、データ自体の値として、3の倍数のデータを抽出し、所定のデータ処理を行う回路となる。例えば3の倍数という特定のデータ値が発生することをトリガとして特定の処理を実行したり、或いは3の倍数というデータ値のみの積算、平均化、データ収集などを行う回路として好適である。
もちろん、図2のようにデータDT自体の剰余値mを求める場合でも、選択処理部2Aにおいて、データの取捨ではなく、出力経路の振り分けという処理を行うようにしてもよい。
そして、以上の図1,図2で例示したようなデータ処理装置では、剰余演算回路1の回路規模や動作速度は、全体の回路規模や動作性能に大きく関わることは言うまでもない。
図1,図2の実施の形態における剰余演算回路1は、以下説明する構成とされることで、小さい回路規模であることと高速演算動作を実現する。
図3に、剰余演算回路1の構成例を示す。この図3の剰余演算回路1は、8ビットの被演算値が入力され、これに対して除数3による剰余値を算出する構成例としている。ここでいう8ビットの被演算値とは、図1の場合、アドレスadに相当し、図2の場合データDTに相当する。8ビットの被演算値はLSB側からビットb0・・・b7として示している。
この剰余演算回路1は、基本的に、部分剰余演算部(PM3)と、部分加算部(PAM3)とがツリー構造をとって構成される。
即ち、部分剰余演算部(PM3)11−1〜11−4、13−1,13−2、15と、部分加算部(PAM3)12−1,12−2、14を備える。
なお、本発明の請求項の記載に対応させれば、部分剰余演算部11−1〜11−4は第1の部分剰余演算部、部分剰余演算部13−1,13−2、15は第2の部分剰余演算部となる。
部分剰余演算部11−1〜11−4は、被演算値を、LSB側から複数のビットグループに分けた状態において、各ビットグループに対して所定の除数による剰余演算を行って、除数に対する剰余値を算出する。具体的には8ビットの被演算値を、LSB側から各ビットの剰余パターンが同一となる複数のビットグループに分ける。この場合、除数3であることで、8ビットの各桁の剰余(重み)は、上記もしたようにLSB側から1,2,1,2,1,2,1,2となる。そのため剰余パターンとして「1,2」のパターンを1グループとする。つまり、8ビットの被演算値を、LSB側から順に2ビットづつの複数のビットグループに分けた状態において、各ビットグループに対して除数「3」による剰余演算を行って2ビットの剰余値を算出する構成とされる。
部分剰余演算部11−1は、8ビットの被演算値の一部であるビットb0,b1について、除数3による剰余を出力する。
同様に部分剰余演算部11−2は、ビットb2,b3について、除数3による剰余を出力する。
部分剰余演算部11−3は、ビットb4,b5について、除数3による剰余を出力する。
部分剰余演算部11−4は、ビットb6,b7について、除数3による剰余を出力する。
各部分剰余演算部11(11−1〜11−4)により出力される剰余値は、除数3であることにより、0,1,2のいずれかである。つまり2ビット値として「00」「01」「10」のいずれかとなる。
部分剰余演算部11−1、11−2の各2ビットの出力(剰余値)は、部分加算部12−1に供給される。
また部分剰余演算部11−3、11−4の各2ビットの出力(剰余値)は、部分加算部12−2に供給される。
部分加算部12−1,12−2は、それぞれ、複数の部分剰余演算部により得られた複数の剰余値を加算するとともに、加算結果を除数3に対する剰余を表現できる最小ビット数の値に変換し、この値を、ビット数が削減された被演算値を構成する値とする。除数3の場合、剰余値は0,1,2のいずれかであるため、除数3に対する剰余を表現できる最小ビット数とは2ビットである。
従って、部分加算部12−1は、部分剰余演算部11−1、11−2からの各2ビットの剰余値を加算し、これを2ビット値で出力する。ここで、部分剰余演算部11−1、11−2からの剰余値は、それぞれ0,1,2のいずれかであることで、加算値としては、0,1,2,3,4のいずれかとなる。加算値4を考慮すると、出力に3ビットが必要であるが、部分加算部12−1はこれを2ビットで出力する。つまり、剰余としては「4」は「1」と等価であることから、加算値として「4」が得られた場合は「1」(つまり2ビット値「01」)として出力する。これは換言すれば、加算した結果により一部の剰余演算を行っていることにもなる。
そしてこれは、加算結果による桁上がりを無くし、加算時の桁上がり処理に起因する演算量の増大を抑制する作用をなすものとなる。
部分加算部12−2は、部分剰余演算部11−3、11−4からの各2ビットの剰余値を加算し、これを部分加算部12−1と同様にして2ビット値で出力する。
部分加算部12−1、12−2から各2ビット出力されることで、その段階で被演算値は8ビットから4ビットに削減されたことになる。つまり各部分加算部12−1、12−2からの各2ビットの出力は、ビット数が4ビットに削減された被演算値を構成する値となる。
この4ビットのうちのLSB側の2ビット、つまり部分加算部12−1の出力は、部分剰余演算部13−1に供給される。
また4ビットのうちのMSB側の2ビット、つまり部分加算部12−2の出力は、部分剰余演算部13−2に供給される。
部分剰余演算部13−1、13−2は、上記部分剰余演算部11−1〜11−4と同様の構成である。つまりこの場合、部分剰余演算部13−1、13−2は、4ビットの被演算値を、LSB側から2ビットづつの複数のビットグループに分けた状態において、各ビットグループに対して除数「3」による剰余演算を行い、2ビットの剰余値を算出する。
部分剰余演算部13−1、13−2が、部分剰余演算部11−1〜11−4と同様に2ビット値に対して除数3の剰余を算出することで、部分剰余演算部13−1、13−2の出力値(剰余値)は、それぞれ0,1,2のいずれかとなる。
部分剰余演算部13−1、13−2の各2ビットの出力(剰余値)は、部分加算部14に供給される。部分加算部14は、上記部分加算部12−1,12−2と同様の構成とされる。
即ち部分加算部14は、複数の部分剰余演算部により得られた複数の剰余値を加算するとともに、加算結果を除数3に対する剰余を表現できる最小ビット数(2ビット)の値に変換し、この値を、ビット数が削減された被演算値を構成する値とする。つまり、部分加算部14の出力の時点で、もともとの8ビットの被演算値は、2ビットの被演算値に削減されたものとなる。
部分加算部14の2ビットの出力は、部分剰余演算部15に供給される。部分剰余演算部15は、上記部分剰余演算部11−1〜11−4、13−1,13−2と同様の構成であり、2ビットのビットグループに対して除数「3」による剰余演算を行い、2ビットの剰余値を算出する。
すると、この部分剰余演算部14から出力される2ビットの剰余値m0,m1が、元々の8ビットの被演算値に対する剰余値mとなる。この剰余値が上記図1,図2における選択処理部2(2A)に供給される。
このように剰余演算回路1は、部分剰余演算部(PM3)と部分加算部(PAM3)が、入力される被演算値に対して、部分的に剰余を算出しながらビット数を順次削減していくようなツリー構成を採る。
部分剰余演算部PM3(11,13,15)と、部分加算部PAM3(12,14)の構成を図4,図6に示す。
部分剰余演算部PM3は、図4に示すようにアンドゲート21,22により構成される。
上述のように部分剰余演算部には2ビットが入力されるが、2ビットのMSB側の入力値IM(PM)は、アンドゲート21に非反転入力され、またアンドゲート22に反転入力される。
また2ビットのうちのLSB側の入力値IL(PM)は、アンドゲート21に反転入力され、またアンドゲート22に非反転入力される。
アンドゲート21の出力はMSB側の出力値OM(PM)となり、アンドゲート22の出力はLSB側の出力値OL(PM)となる。
この場合、2ビットの入力値IM(PM)、IL(PM)に対して、出力される2ビットの出力値OM(PM)、OL(PM)を、図5に示している。
図示するように、入力値IM(PM)、IL(PM)としての「00」「01」「10」「11」に対して、2ビットの出力値OM(PM)、OL(PM)は、それぞれ「00」「01」「10」「00」が出力される。つまり、10進数の値0,1,2,3に対して、3を除数とする剰余値0,1,2,0が出力されることになる。
次に図6に部分加算部PAM3の構成を示す。上記のように部分剰余演算部PM3は、2ビットの出力値OM(PM)、OL(PM)として、「00」「01」「10」のいずれかとなり、「11」はあり得ないため、部分加算部PAM3は、部分剰余演算部PM3からの「11」の入力を考慮しない論理回路構成を採ることができる。
部分加算部PAM3は、図6のように、ナンドゲート31、アンドゲート32,35,36、オアゲート33,38、イクスクルーシブオアゲート37、マルチプレクサ34により構成される。
上述した図3からわかるように、部分加算部PAM3には、2つの部分剰余演算部PM3から、各2ビットの剰余値が入力される。
一方の部分剰余演算部PM3からの2ビットの出力値OM(PM)、OL(PM)は、それぞれ図6の部分剰余演算部PM3に対して入力値IM1(PAM)、IL1(PAM)として入力される。また他方の部分剰余演算部PM3からの2ビットの出力値OM(PM)、OL(PM)は、それぞれ入力値IM2(PAM)、IL2(PAM)として入力される。
例えば図3の部分加算部12−1の場合、部分剰余演算部11−1の出力値OM(PM)、OL(PM)が、入力値IM1(PAM)、IL1(PAM)となり、部分剰余演算部11−2の出力値OM(PM)、OL(PM)が、入力値IM2(PAM)、IL2(PAM)となる。
入力値IM1(PAM)、入力値IM2(PAM)は、ナンドゲート31、オアゲート33、アンドゲート36に供給される。
入力値IL1(PAM)、入力値IL2(PAM)は、アンドゲート35、イクスクルーシブオアゲート37に供給される。
オアゲート33の出力は、反転入力、及び非反転入力としてマルチプレクサ34の2つの入力となる。
マルチプレクサ34は、アンドゲート35の出力に応じて入力を選択する。即ち、アンドゲート35の出力が「0」であれば、「0」側の入力を選択する。この場合マルチプレクサ34は、オアゲート33の論理和を、アンドゲート32に供給することになる。
また、アンドゲート35の出力が「1」であれば、マルチプレクサ34は「1」側の入力を選択する。この場合マルチプレクサ34は、オアゲート33の論理和の反転値を、アンドゲート32に供給することになる。
ナンドゲート31の出力とマルチプレクサ34の出力に対して、アンドゲート32で論理積がとられて、これがMSB側の出力値OM(PAM)となる。
またアンドゲート36の出力とイクスクルーシブオアゲート37の出力に対して、オアゲート38で論理和がとられて、これがLSB側の出力値OL(PAM)となる。
出力値OM(PAM)、OL(PAM)が、部分加算部PAM3による2ビットの出力値である。
このような部分加算部PAM3において、入力値IM1(PAM)、IL1(PAM)、IM2(PAM)、IL2(PAM)に対して、出力される2ビットの出力値OM(PAM)、OL(PAM)を、図7に示す。
部分加算部PAM3は、入力値IM1(PAM)、IL1(PAM)と、入力値IM2(PAM)、IL2(PAM)の加算を行い、かつ加算結果について部分的に剰余をとることでを2ビット値に変換して出力する。
上記のように入力値IM1(PAM)、IL1(PAM)、及び入力値IM2(PAM)、IL2(PAM)としては「11」という値は発生しないため、入力値の関係は図7の9とおりとなる。そして、各場合の加算値を10進表記で示しているが、加算値が「0」〜「3」のいずれかの場合は、その値が2ビットの出力値OM(PAM)、OL(PAM)として出力される。また加算値が「4」となる場合は、出力は3ビットの「100」ではなく、剰余値「1」として、2ビットの出力値OM(PAM)、OL(PAM)は「01」として出力される。
以上の構成からわかるように本例では、部分剰余演算部PM3は、2ビットの入力に対して0,1,2のいずれかの剰余値を算出する。また部分加算部PAM3は、2つの部分剰余演算部PM3からの出力を加算し、さらにそれを2ビット値として出力する。そしてこの部分剰余演算部PM3と部分加算部PAM3が、図3のようにツリー構造とされることで、効率的に剰余演算を行い、回路規模の縮小や処理の高速化を実現するものである。
除数が固定値3の場合を考えると、被除数(被演算値)を2進数で表した場合、第0ビットから2ビットずつとってそれぞれに対し3で割った余りを求め、その結果を加算して再び3で割った余りを求め、という作業を繰り返して最終的に得た値は、元の被除数を直接3で割った余りと同じ値になる。つまり、上記構成により正しく8ビットの被演算値に対する剰余が求められるものである。
また、2ビットに対して3で割った余りは0,1,2のいずれかであり、それらを加算した場合とりうる値は0,1,2,3,4となり、2ビット同士の加算で3ビット目に桁上がりするのは加算結果が4の場合のみである。さらにその場合においては1ビット目、2ビット目は必ず0である為、4を3で割った余り1に一意的に写像させることができる。これが部分加算部PAM3において行われることで、演算途中の段階で不要な桁上がり演算の量を効果的に削減できる。
そしてこのような桁上がり演算量の削減が、従来の剰余演算回路に比較して、大幅な構成の簡略化や処理速度の向上に有効である。
実際上、被除数が8ビットの場合では、入力と出力の関係を羅列して論理合成を掛けた場合に比べ、ゲート数を約3分の1にする事ができる。
また上記特許文献1における入力値が12ビットの場合の回路例を図9に示したが、これと比較するために、本例において入力値を12ビットとした場合の構成を図8に示す。
この場合も、12ビットの入力値は、MSB側から2ビットづつ、それぞれ部分剰余演算部PM3(11−1〜11−6)で剰余値が算出され、2つの部分剰余演算部PM3からの出力が、部分加算部PAM3(12−1、12−2,12−3)で加算されると共に2ビット値として出力される。
以降、図示するように部分剰余演算部13−1,13−2、部分加算部14、部分剰余演算部15−1,15−2、部分加算部16、部分剰余演算部17がツリー上に配されることで、順次伝搬される情報量が削減されながら最終的にm0,m1として剰余値mが得られるものとなる。
この図8の構成と、図9の構成を比較したところ、本例によれば回路面積で約10%〜30%の縮小、遅延時間(処理速度)で約20%〜30%の短縮を図ることができる事が確認された。
以上、本発明の実施の形態について説明してきたが、本発明は多様な変形例が考えられる。剰余演算回路1としては、もちろん、入力値が例示した8ビット、12ビットの場合以外でも、同様にツリー構造を採ることで本発明の回路を実現できる。
また、除数は3の場合で述べたが、もちろん他の除数の場合も適用できる。
また、上記例では、入力値をLSB側から2ビットづつのビットグループに分けて、それぞれを部分剰余演算部PM3で剰余値を得るものとしたが、例えば4ビットづつに分けるなど、他の例も考えられる。なお、その場合、各ビットグループは剰余パターンが同一となるグループとすることが好適である。つまり、除数に応じて、2進数値の各桁の重みは規則性を有するが(例えば除数5であれば、各桁の重みはLSB側から1,2,4,3のパターンが繰り返される)そのパターン毎を1つのビットグループと回路構成上、最も効率がよい。
本発明の実施の形態のデータ処理装置の構成例のブロック図である。 実施の形態の他のデータ処理装置の構成例のブロック図である。 実施の形態の剰余演算回路のブロック図である。 実施の形態の部分剰余演算部の回路図である。 実施の形態の部分剰余演算部の入出力値の説明図である。 実施の形態の部分加算部の回路図である。 実施の形態の部分加算部の入出力値の説明図である。 実施の形態の他の剰余演算回路のブロック図である。 従来の剰余演算回路のブロック図である。
符号の説明
1 剰余演算回路、2,2A 選択処理部、3 CPU、4A,4B メモリ、5 データ処理部、PM3,11−1〜11−4、13−1,13−2、15,15−1,15−2,17 部分剰余演算部、PAM3,12−1,12−2,12−3,14,16 部分加算部

Claims (6)

  1. 入力データもしくは該入力データに対応した被演算値について剰余演算を行う剰余演算手段と、
    上記剰余演算手段によって得られた剰余に応じて上記入力データを処理する処理手段とを備え、
    上記剰余演算手段は、
    上記入力データ又は上記被演算値のいずれか一方に対し、LSB側から所定ビット数づつのビットグループ毎に或る除数による剰余演算を行って、上記除数に対する剰余値を算出する第1の部分剰余演算部と、
    上記第1の部分剰余演算部により得られた複数の剰余値を加算するとともに、加算結果を上記除数に対する剰余を表現できる最小ビット数の値に変換する部分加算部と、
    上記部分加算部により生成された値に対し、LSB側から上記所定ビット数づつのビットグループ毎に上記除数による剰余演算を行って、上記入力データ又は上記被演算値の上記除数に対する剰余値を算出する第2の部分剰余演算部と、
    を含むことを特徴とするデータ処理装置。
  2. 上記剰余演算手段は、
    Nビット(Nは3以上の整数)の上記入力データ又は上記被演算値について、LSB側から各ビットの剰余パターンが同一となる所定ビット数づつのビットグループ毎に、上記除数による剰余演算を行うことを特徴とする請求項1に記載のデータ処理装置。
  3. 上記第1の部分剰余演算部は、
    Nビット(Nは3以上の整数)の上記入力データ又は上記被演算値について、LSB側から順に2ビットづつのビットグループ毎に除数「3」による剰余演算を行って2ビットの剰余値を算出し、
    上記部分加算部は、
    上記第1の部分剰余演算部により得られた複数の剰余値を加算するとともに、加算結果を2ビットの値に変換することを特徴とする請求項1に記載のデータ処理装置。
  4. 被演算値を、LSB側から所定ビット数づつのビットグループ毎に、或る除数による剰余演算を行って、上記除数に対する剰余値を算出する第1の部分剰余演算部と、
    上記第1の部分剰余演算部により得られた複数の剰余値を加算するとともに、加算結果を上記除数に対する剰余を表現できる最小ビット数の値に変換する部分加算部と、
    上記部分加算部により生成された値に対し、LSB側から上記所定ビット数づつのビットグループ毎に上記除数による剰余演算を行って、上記被演算値の上記除数に対する剰余値を算出する第2の部分剰余演算部と、
    を含むことを特徴とする剰余演算回路。
  5. Nビット(Nは3以上の整数)の上記被演算値について、LSB側から各ビットの剰余パターンが同一となる所定ビット数づつのビットグループ毎に、上記除数による剰余演算を行うことを特徴とする請求項4に記載の剰余演算回路。
  6. 上記第1の部分剰余演算部は、
    Nビット(Nは3以上の整数)の上記被演算値について、LSB側から順に2ビットづつのビットグループ毎に除数「3」による剰余演算を行って2ビットの剰余値を算出し、
    上記部分加算部は、
    上記第1の部分剰余演算部により得られた複数の剰余値を加算するとともに、加算結果を2ビットの値に変換することを特徴とする請求項4に記載の剰余演算回路。
JP2003364415A 2003-10-24 2003-10-24 データ処理装置と剰余演算回路 Pending JP2005128832A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003364415A JP2005128832A (ja) 2003-10-24 2003-10-24 データ処理装置と剰余演算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003364415A JP2005128832A (ja) 2003-10-24 2003-10-24 データ処理装置と剰余演算回路

Publications (1)

Publication Number Publication Date
JP2005128832A true JP2005128832A (ja) 2005-05-19

Family

ID=34643398

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003364415A Pending JP2005128832A (ja) 2003-10-24 2003-10-24 データ処理装置と剰余演算回路

Country Status (1)

Country Link
JP (1) JP2005128832A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010091913A (ja) * 2008-10-10 2010-04-22 Renesas Technology Corp データ処理装置
JP2011123356A (ja) * 2009-12-11 2011-06-23 Oki Semiconductor Co Ltd 素数生成装置、素数生成方法、及び素数生成プログラム
JP2020509407A (ja) * 2017-02-21 2020-03-26 タレス・ディス・フランス・エス・ア 暗号アプリケーションのための素数を生成する方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010091913A (ja) * 2008-10-10 2010-04-22 Renesas Technology Corp データ処理装置
JP2011123356A (ja) * 2009-12-11 2011-06-23 Oki Semiconductor Co Ltd 素数生成装置、素数生成方法、及び素数生成プログラム
JP2020509407A (ja) * 2017-02-21 2020-03-26 タレス・ディス・フランス・エス・ア 暗号アプリケーションのための素数を生成する方法
JP7055142B2 (ja) 2017-02-21 2022-04-15 タレス・ディス・フランス・エス・ア 暗号アプリケーションのための素数を生成する方法

Similar Documents

Publication Publication Date Title
JP3244506B2 (ja) 小型乗算器
JP4290202B2 (ja) ブース乗算の装置および方法
US7849125B2 (en) Efficient computation of the modulo operation based on divisor (2n-1)
Pieper et al. Efficient Dedicated Multiplication Blocks for 2's Complement Radix-2m Array Multipliers.
JP2010152468A (ja) ハッシュ値演算装置及びハッシュ値演算方法及びハッシュ値演算プログラム
JP3003467B2 (ja) 演算装置
JPH08123769A (ja) 並列プロセッサ
JP2009507413A (ja) 全加算器モジュールおよび該全加算器モジュールを用いる乗算器デバイス
JP6428488B2 (ja) 加減算器及び加減算器の制御方法
JP2005128832A (ja) データ処理装置と剰余演算回路
TW202113584A (zh) 乘積累加裝置及其方法
Timarchi et al. A unified addition structure for moduli set {2 n− 1, 2 n, 2 n+ 1} based on a novel RNS representation
Al-Khaleel et al. Fast binary/decimal adder/subtractor with a novel correction-free BCD addition
JPH0467213B2 (ja)
JPH06348461A (ja) 剰余算出回路
JP4873546B2 (ja) データ処理装置、データ処理方法
JPH0370416B2 (ja)
WO2021149104A1 (ja) 秘密計算装置、秘密計算方法、およびプログラム
JP2002157114A (ja) 乗算器及びそれを搭載した集積回路装置
WO2022068618A1 (zh) 一种带精度的量子除法运算方法及装置
JP2734438B2 (ja) 乗算装置
US20130262549A1 (en) Arithmetic circuit and arithmetic method
JP4230234B2 (ja) 全加算器用のパリティ予測回路
US7472154B2 (en) Multiplication remainder calculator
Rajkumar et al. VLSI Implementation of Signed Multiplier using Quaternary Signed Digit Number System