JP2001195234A - 情報処理装置 - Google Patents

情報処理装置

Info

Publication number
JP2001195234A
JP2001195234A JP2000003236A JP2000003236A JP2001195234A JP 2001195234 A JP2001195234 A JP 2001195234A JP 2000003236 A JP2000003236 A JP 2000003236A JP 2000003236 A JP2000003236 A JP 2000003236A JP 2001195234 A JP2001195234 A JP 2001195234A
Authority
JP
Japan
Prior art keywords
register
addition
circuit
multiplier
subtraction
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
JP2000003236A
Other languages
English (en)
Inventor
Tetsukazu Satonaga
哲一 里永
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2000003236A priority Critical patent/JP2001195234A/ja
Publication of JP2001195234A publication Critical patent/JP2001195234A/ja
Pending legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 乗算、加算、減算などの複数種類の演算を行
うことができるとともに、その演算速度を向上させた情
報処理装置を提供する。 【解決手段】 CSA12〜17及びCLA付き加算器
18で構成される従来の奇偶乗算器の前段に、CSA1
1を設ける。CSA11において、部分積y1 Xとy0
Xの部分和演算を行うとともに、第3の置数Zとの加算
を行う。乗算を行う場合には第3の置数Zを0とし、置
数Xと置数Yとで奇偶乗算器と同様の乗算処理を行う。
加算時には加算する数を置数Xと第3の置数Zとして設
定し、置数Yは1とする。これにより、部分積y0 X=
X、y1 X以降は0となり、X+Yを実行することがで
きる。また減算時には被減算数を置数Xに、減算数の2
の補数を第3の置数Zとして設定し、置数Yは1とす
る。加算によりX−Yが実現できる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、加減算及び乗算を
行う情報処理装置に関するものであり、特に、回路構成
を再構成できるプログラマブル論理回路に用いて好適な
情報処理装置に関するものである。
【0002】
【従来の技術】デジタル回路装置の分野において、フィ
ールドプログラマブルゲートアレイ(FPGA)やプロ
グラマブルロジックデバイス(PLD)などのプログラ
マブル論理回路が、特定用途向け集積回路(ASIC)
を作成する前の試作デバイスとして、または、数週間か
ら数ヶ月という長い作製期間を要するASICの代替デ
バイスとして使われてきた。また、最近では、回路構成
を変更できるというプログラマブル論理回路の特徴を生
かして、回路装置作成後にも、仕様を変更したり回路欠
陥を修正するためにプログラマブル論理回路が使われて
いる。
【0003】FPGAやPLDのようなハードウエア上
で乗算器の設計を行う場合、基本的な回路として配列型
並列乗算器が用いられている。図21は、一般的な配列
型並列乗算器の一例のブロック図、図22は、同じく部
分積生成回路の一例の説明図、図23は、同じく構成の
一例を示す回路図、図24は、同じく論理セルの一例を
示す回路図である。図中、101〜108はCSA(C
arry SaveAdder)、109はCLA(C
arry Look Ahead:桁上げ先見方式)付
き加算器、111はAND回路、121は論理セル、1
22は全加算器、123はAND回路である。配列型並
列乗算器では、通常の筆算による乗算と同様に、部分積
を生成し、桁あわせを行って部分積を加算してゆくこと
によって行われる。y0 X〜y7 Xは部分積であり、例
えば2進数であれば図22に示すようにAND回路11
1によって部分積を演算することができる。例えばy0
についてそれぞれx0 〜x7 との積がx0 0 〜x7
0 として得られる。これらをまとめてy0 Xとして示
し、図21におけるCSA101〜108に入力され
る。
【0004】CSA101〜108は、それぞれ、部分
積と、前段における加算すべき桁の部分和、それに前段
における加算すべき桁より1桁下の桁からの繰り上がり
の3つを加算する。最終的にCLA付き加算器109に
よって繰り上がりなどの加算処理を行う。各CSA10
1〜108の最下位桁の出力及びCLA付き加算器10
9の出力が、最終的な積として得られる。なお、CSA
101においては前段のCSAがないので、前段よりの
部分和及び繰り上がりは0を入力している。
【0005】このような配列型並列乗算器は、図24に
示すようなAND回路123及び全加算器122(図中
ではFAとして示す)により構成された論理セル121
を図23に示すようにアレイ状に配置し、結線すること
により得られる。例えば、nビット×nビットの乗算の
場合、n2 個のANDゲートを用意することにより、部
分積を求め、それらを加算することにより演算結果を得
ることができる。
【0006】上述のような配列型並列乗算器では、乗算
するビット数に応じてCSAの段数が増加するため、例
えば8ビットの乗算を行うには少なくとも8サイクル分
の演算時間が必要となる。乗算器をさらに高速に実行す
るために、配列型並列乗算器を変形した奇偶乗算器が用
いられている。図25は、奇偶乗算器の一例を示すブロ
ック図である。図中、131〜136はCSA、137
はCLA付き加算器である。また、y0 X〜y7 Xは図
21と同様、例えば図22に示すようにして求めた部分
積である。図25に示す奇偶乗算器では、CSA131
とCSA132、及び、CSA133とCSA134が
並列に実行できる。このような構成によって、この例で
はCSAの段数が半分に減少し、配列型並列乗算器より
約2倍高速になる。この奇偶乗算器についても、例えば
図24に示した演算セル121を用い、ほぼアレイ状に
配置して図25に示すように結線することによって実現
可能である。
【0007】一方、プログラマブル論理回路上で機能回
路を構成する技術として、スケルトン方式と、それを発
展させたスーパースケルトン方式がある。スケルトン方
式とは、プログラマブル論理回路上で、再構成した後の
回路と再構成する前の回路との共通部分であるスケルト
ン回路を用いた方式である。これにより、差分となる小
さな単位の回路情報で新たな回路を構成することがで
き、再構成時間を短縮することができる。しかしなが
ら、スケルトン方式では大幅に機能変更を行うことはで
きない。そこで、小さな回路情報の変更で、大幅に機能
を変更できるスーパースケルトン方式が提案されてい
る。
【0008】スーパースケルトン方式とは、部分的に制
御線・回路が付け加えられたスケルトン回路が配置配線
され、入力の初期値レジスタや、制御線の値を変える等
の僅かな変化により、機能を切り替えることができる方
式である。スーパースケルトンの従来例の一つとして、
配列型並列乗算器をもとにしたそろばん型加減乗除算が
特願平11−225087号に記載されている。
【0009】図26は、そろばん型加減乗算器の一例を
示すブロック図である。図中、141は演算回路部、1
42はCLA付き加算器、143はXレジスタ、144
はYレジスタ、145はCレジスタ、146はPレジス
タ、147はSレジスタである。演算回路部141及び
CLA付き加算器142は、図23に示したものであ
る。このような配列型並列乗算器に、演算の制御や初期
値などを与えるレジスタを外部に設けて構成している。
Xレジスタ143及びYレジスタ144は、乗算時の2
つの数を格納するレジスタであるが、Yレジスタ144
には加減算時は1が格納される。また、Cレジスタ14
5は乗算時には0であるが、加算時には加算する一方の
数が格納され、減算時には減算する数のビットを反転し
たデータが格納される。Pレジスタ146は通常は0で
あるが、減算時に1が格納され、Cレジスタ145の数
と加算されて2の補数を実現する。演算結果はSレジス
タ147に格納される。このような構成によって、各レ
ジスタに設定する値により、乗算、加算、そして2の補
数を用いた減算が可能となる。
【0010】また同様に、例えば特開平9−50367
号公報や特開平11−24890号公報などにおいて
も、各論理セルに相当する部分に、制御信号により切り
替えを行う部分を付加し、配列型並列乗算器としての機
能に加算、減算の機能を持たせた回路について、記載さ
れている。
【0011】このようなスーパースケルトン方式での回
路では、加算、減算、乗算を共通した回路によって実現
することができる。しかし、いずれの演算を行う場合に
も、演算回路部はビット数だけのサイクル数、例えば8
ビットの演算であれば8サイクルの処理時間を必要とす
る。そのため、上述の奇偶乗算器を構成した場合の4サ
イクルに比べて演算速度が遅いという欠点があった。一
方、上述の奇偶乗算器では乗算の機能しか有しておら
ず、加算器、減算器を構成する場合には、それぞれ別々
の機能回路を構成する必要があるという問題があった。
【0012】
【発明が解決しようとする課題】本発明は、上述した事
情に鑑みてなされたもので、乗算、加算、減算などの複
数種類の演算を行うことができるとともに、その演算速
度を向上させた情報処理装置を提供することを目的とす
るものである。
【0013】
【課題を解決するための手段】本発明は、複数の計算の
流れで部分和とキャリーの加算処理を行う、例えば奇偶
乗算器に、演算機能を切り替えるための構成を付加す
る。これによって、乗算、加算、減算、さらには積和演
算を可能とするとともに、奇偶乗算器の高速性を有する
情報処理装置が得られる。
【0014】すなわち、第1の置数及び第2の置数につ
いて複数の計算の流れで部分和とキャリーの加算処理を
行う乗算器の前段に、乗算器の最初の部分和演算の一部
及び第3の置数との加算を行う加算器を設ける。これに
よって、第3の置数を0として第1の置数と第2の置数
の乗算を行うことができるとともに、第1または第2の
置数の一方を1として、他方と第3の置数との加算を行
うことが可能になる。
【0015】さらに、補数を表す第4の置数を乗算器及
び加算器に入力し、この第4の置数を1とし、また第1
または第2の置数の一方を1として、他方と第3の置数
の反転と第4の置数を加算することによって、2の補数
による減算を行うことができる。この場合、乗算及び加
算時は第4の置数を0としておけばよい。
【0016】さらに、部分和の初期値として0以外の第
5の置数を入力することによって、積和演算が可能にな
る。
【0017】このような演算回路は、例えばプログラマ
ブル論理回路上に構成することができる。その場合、乗
算、加算、2の補数の減算、積和演算などを行う際に回
路の再構成を行う必要がなく、それぞれの置数の設定に
より演算を行わせることができる。そのため、再構成に
要する時間についても処理時間に加算されず、高速な演
算が可能になる。
【0018】
【発明の実施の形態】図1は、本発明の情報処理装置の
第1の実施の形態を示す基本ブロック図である。図中、
11〜17はCSA、18はCLA付き加算器である。
この第1の実施の形態では、図25に示すような奇偶乗
算器の前段に、CSA11を設けて構成している。すな
わち、CSA12〜17は図25におけるCSA131
〜136に対応し、CLA付き加算器18は図25にお
けるCLA付き加算器137に対応するものである。
【0019】CSA11は、奇偶乗算器の初段であるC
SA12で行っていたy1 X及びy 0 Xの部分和演算を
行うとともに、第3の置数Zの値を加算するように構成
している。そして、CSA12では、CSA11による
演算結果を受けて、y2 Xとの部分和を演算するように
構成している。
【0020】第3の置数Zは、‘0’とすることで置数
Xと置数Yとの間の乗算を行うことができる。この場
合、CSA11の分だけサイクル数は必要となるが、動
作としては図25に示した奇偶乗算器と同様であり、C
SA12とCSA13、及び、CSA14とCSA15
が並列して動作し、高速な演算が可能である。
【0021】また置数Yを1(y0 を‘1’、y1 〜y
7 を‘0’)に設定すると置数Xと第3の置数Zの間で
加算あるいは減算が可能になる。y0 のみが‘1’であ
るからCSA11において第3の置数Zと置数X(y0
X=X)とが加算されることになる。減算時には第3の
置数Zとして2の補数を設定すれば、減算が行われる。
なお減算時には、第3の置数Zとしてビット反転したデ
ータを設定するとともに、補数用の第4の置数(値
‘1’)を加算するように構成するとよい。
【0022】このように、図1に示すような奇偶乗算器
をベースにした回路で演算を行うので、配列型並列乗算
器を利用する構成に比べて高速に演算を行うことができ
るとともに、乗算だけでなく、加算及び減算も同じ回路
で実行可能になる。
【0023】図2は、本発明の情報処理装置の第1の実
施の形態を実現する回路ブロック図、図3は、同じく演
算回路部21の一例を示す回路構成図である。図中、2
1は演算回路部、22はCLA付き加算器、23はXレ
ジスタ、24はYレジスタ、25はZレジスタ、26は
Iレジスタ、27はSレジスタである。また、図3にお
いて、黒丸はAND回路を示し、部分積を演算する。ま
たFAは全加算器であり、図中の横一列がそれぞれ、図
1におけるCSA11〜17に相当する回路部分であ
る。なお、図3においてはXレジスタ23及びYレジス
タ24からの配線は省略し、AND回路を示す黒丸の位
置によって、演算を行うXレジスタ23及びYレジスタ
24中のビットを特定するように示している。さらに、
図3で全加算器FAに入力されてない部分には‘0’が
入力されるものとする。
【0024】図2において、演算回路部21は図3に示
すような構成を有しており、図1に示した構成を実現し
ている。基本的には奇偶乗算器であり、前段にCSA1
1に相当する全加算器FAが追加されている。
【0025】Xレジスタ23及びYレジスタ24は、そ
れぞれ上述の置数X及び置数Yを格納するためのレジス
タであり、上述のように、乗算時の2つの数を格納する
とともに、加減算時にはYレジスタ24に‘1’(y0
が‘1’、y1 〜y7 が‘0’)が格納される。また、
Zレジスタ25には第3の置数Zが格納される。上述の
ように、乗算時には0であるが、加算時には加算する一
方の数が格納され、減算時には減算する数のビットを反
転したデータが格納される。
【0026】Iレジスタ26は、2の補数による減算時
に補数を格納するレジスタである。Iレジスタ26の各
ビットの値は、図3に示すように、CSA11〜17の
最下位桁の全加算器に入力されている。通常は0である
が、減算時に1が格納され、Zレジスタ25の最下位桁
に加算されて、反転しただけのZレジスタ25の値が2
の補数となる。
【0027】Sレジスタ27は、演算結果を格納する。
演算結果は、CSA11〜17の最下位桁と、CLA付
き加算器18の出力から構成される。ビット幅は置数
X、Y及び第3の置数Zのビット幅の倍となる。
【0028】CLA付き加算器22は、図1におけるC
LA付き加算器18に対応するものである。CLA付き
加算器22は、奇偶乗算器の最終段であるCSA17の
出力から最終的な演算結果を得るために用いられる。具
体的には、図3に示すように、乗算器アレイの最終段の
出力c5’〜c14’とs6’〜s14’とから、演算
結果s5〜s15を演算している。
【0029】図3においては、図1,図2に示すCLA
付き加算器22(あるいはCLA付き加算器18)を、
4ビットを1ブロックとし、CLA付き加算器1〜3に
分割して示している。各CLA付き加算器1〜3では、
分割された単位間でCLAを用いて桁上げ信号を伝搬さ
せ、分割された単位内はリップルで桁上げ信号を伝える
方式をとっている。
【0030】図4は、図3におけるCLA付き加算器1
の一例を示す回路図、図5は、同じくCLA付き加算器
2の一例を示す回路図、図6は、同じくCLA付き加算
器3の一例を示す回路図、図7は、これらのCLA付き
加算器において用いられている半加算器(HA:Hal
f Adder)の一例を示す回路図である。図4ない
し図6に示すように、CLA付き加算器1〜3では、s
i ’,ci ’がともに“1”のときは下の桁からの桁上
げ信号ci の値にかかわらず桁上げ信号ci が発生す
る。また、si ’,ci ’のどちらかが“1”のときは
i-1 の値でciが決定される。この様子を式で表す
と、次のようになる。 ci =gi +pi ・ci-1 ただし、 gi =si ’・ci-1 ’,pi =si ’XORci-1 ’ である。ここで、gi は桁上げ生成信号(genera
tor)と呼び、pi は桁上げ伝搬信号(propag
ator)と呼ぶ。機能的には図7に示す半加算器(H
A)のキャリーおよび和の出力と全く等しい。
【0031】上述の式に従い、図4ないし図6における
各桁の桁上げ信号ci を表すと、 c5 =g56 =g6 +p6 ・c5 =g6 +p6 ・g57 =g7 +p7 ・c6 =g7 +g6 ・p7 +g5 ・p
6 ・p78 =g8 +p8 ・c7 =g8 +g7 ・p8 +g6 ・p
7 ・p8 +g5 ・p 6 ・p7 ・p89 =g9 +p9 ・c810=g10+p10・c9 =g10+g9 ・p10+p9 ・p
10・c811=g11+p11・c10=g11+g10・p11+g9 ・p
10・p11+p9 ・p 10・p11・c812=g12+p12・c11=g12+g11・p12+g10・p
11・p12+g9 ・p 10・p11・p12+p9 ・p10・p11
・p12・c813=g13+p13・c1214=g14+p14・c13=g14+g13・p14+p13・p
14・c12 となる。これより、全ての桁の桁上げ信号は、自桁の入
力値と、それぞれのCLA付き加算器での最下位の桁上
げ信号(ここではc5 ,c8 ,c12)だけで生成するこ
とができる。もちろん、CLA付き加算器22は、図4
〜図6に示した構成に限られるものではなく、一般的な
構成でよい。
【0032】上述のようにして生成されたキャリー信号
i を用い、最終的な出力si (この場合s5 〜s15
として、s6 〜s15については、1つ下位の桁から出さ
れたキャリー信号ci-1 と半加算器HAからの桁上げ伝
搬信号pi との排他的論理和を取ることにより出力され
る。また、s5 についてはp5 を出力する。なお、s 0
〜s4 に付いては、それぞれ、CSA11,12,1
4,16,17の最終桁からそれぞれ得られる。このよ
うにして、16ビットの演算結果がSレジスタ27に格
納される。
【0033】なお、上述の図1ないし図3では、8ビッ
ト同士の加減乗算を行う場合について示している。この
場合に、演算に必要なサイクル数は5サイクルである。
従来の配列型並列乗算器を用いた場合には8サイクルが
必要であり、本発明により高速化を図ることができる。
もちろん、8ビットの演算器に限らず、任意ビット長の
演算器を構成することが可能である。
【0034】次に、上述の本発明の情報処理装置の第1
の実施の形態における動作について説明する。図8は、
本発明の情報処理装置の第1の実施の形態において乗算
を行う場合の各レジスタの設定状態の一例の説明図であ
る。上述の構成において8ビット×8ビットの乗算を行
う場合を考える。この場合、X(x7 6 5 4 3
2 1 0 )、Y(y7 6 5 4 3 2 1
0 )とし、X×Yを演算するものとすれば、Xレジスタ
23,Yレジスタ24,Zレジスタ25,Iレジスタ2
6には、以下のような値を設定する。 Xレジスタ:x7 6 5 4 3 2 1 0 Yレジスタ:y7 6 5 4 3 2 1 0 Zレジスタ:00000000 Iレジスタ:000000
【0035】この場合、第3の置数Zは0であるので、
CSA11においてはy0 Xとy1Xとが桁あわせして
加算される。その結果がCSA12に入力され、以後、
奇偶乗算器として機能し、X×Yの演算結果として S(積):s1514131211109 8 7 6
5 4 3 2 1 0 がSレジスタ27に格納される。
【0036】図9は、本発明の情報処理装置の第1の実
施の形態において加算を行う場合の各レジスタの設定状
態の一例の説明図である。上述の構成において8ビット
+8ビットの加算を行う場合を考える。この場合、X
(x7 6 5 4 3 2 1 0 )、Y(y7 6
5 4 3 2 1 0 )とし、X+Yの演算を行う
ものとすれば、Xレジスタ23,Yレジスタ24,Zレ
ジスタ25,Iレジスタ26には、以下のような値を設
定する。 Xレジスタ:x7 6 5 4 3 2 1 0 Yレジスタ:00000001 Zレジスタ:y7 6 5 4 3 2 1 0 Iレジスタ:000000
【0037】ここで、X+Yを実行するが、加算数Yは
Zレジスタ25に格納し、Yレジスタ24には‘1’を
格納する。これによって、y1 X〜y7 Xは0になる。
また、y0 X=Xとなり、CSA11においてはXレジ
スタ23に格納されている値Xと、Zレジスタ25に格
納されている値Yとが加算されることになる。以後、C
SA12,14,16,17と送られるが、加算される
数が0であるため、繰り上がりの処理のみが行われる。
そして、X+Yの演算結果として、S(和):s8 7
6 5 4 3 2 1 0がSレジスタ27に格納
される。
【0038】図10は、本発明の情報処理装置の第1の
実施の形態において減算を行う場合の各レジスタの設定
状態の一例の説明図である。上述の構成において8ビッ
ト−8ビットの減算を行う場合を考える。この場合、X
(x7 6 5 4 3 21 0 )、Y(y7 6
5 4 3 2 1 0 )とし、X−Yを演算するも
のとすれば、Xレジスタ23,Yレジスタ24,Zレジ
スタ25,Iレジスタ26には、以下のような値を設定
する。 Xレジスタ:x7 6 5 4 3 2 1 0 Yレジスタ:00000001 Zレジスタ:_y7 _y6 _y5 _y4 _y3 _y2 _
1 _y0 Iレジスタ:000001 ここで、‘_’は反転信号であることを示す。また図中
では‘ ̄’を付して示している。以下同様である。
【0039】ここではX−Yを実行するが、減算数Yは
各ビットを反転してZレジスタ25に格納し、2の補数
とするためにIレジスタに‘1’を設定する。また、Y
レジスタ24には‘1’を格納する。これによって、加
算時と同様に、y1 X〜y7Xは0、y0 X=Xとな
る。CSA11において、値Yの反転である_YにIレ
ジスタに格納されている‘1’が加算され、値Yの2の
補数が得られる。それとともに値Xが加算され、値X
と、値Yの2の補数との加算、すなわち減算が実現でき
る。以後、CSA12,14,16,17と送られる
が、加算される数が0であるため、繰り上がりの処理の
みが行われる。そして、X−Yの演算結果として、 S(和):s7 6 5 4 3 2 1 0 がSレジスタ27に格納される。
【0040】図11は、加算/減算選択器の一例を示す
回路図である。図中、31はインバータ、32はセレク
タである。例えばZレジスタ25の前段あるいは直後
に、各ビットに対応して図11に示す加算/減算選択器
を設けておくことができる。加算/減算選択器は、セレ
クタ32に対し、入力された信号と、その信号をインバ
ータ31で反転した信号を入力し、セレクト信号によっ
て切り替える。セレクタ32は、セレクト信号に従い、
加算時には入力された信号を出力し、減算時には反転し
た信号を出力する。もちろん、さらに値‘0’も入力さ
れており、乗算時には‘0’を選択して出力するように
構成してもよい。このような回路によって、減算時に値
を反転して設定する処理が不要になる。
【0041】同様の加算/減算選択器は、例えばIレジ
スタ26の最下位ビットについても適用することができ
る。減算の時のみ、値‘1’に切り替えるように構成す
ることができる。
【0042】このようにして、本発明の第1の実施の形
態で示した情報処理装置によれば、同じ構成によって、
値の設定によって乗算、加算、減算を行うことができ
る。また、基本的に奇偶乗算器の構造を有しており、配
列型並列乗算器に比べて高速に演算を実行することがで
きる。
【0043】図12は、本発明の情報処理装置の第2の
実施の形態を示す基本ブロック図である。図中、41〜
50はCSA、51はCLA付き加算器である。この第
2の実施の形態では、演算を行う8ビットの乗数Yのう
ち、4ビットずつを配列型並列乗算器と同様に構成して
4ビットの乗算を並列して実行し、CSA49,50に
よりこれらをまとめる演算を行う。基本的には奇偶乗算
器と同様、複数の計算の流れで部分和とキャリーの加算
処理を行う乗算器である。例えば図25におけるCSA
131〜136は、図12におけるCSA43,47,
44,48,49,50にそれぞれ対応している。すな
わち、図25に示した構成に対して、CSA131の前
段にCSA41,42を追加し、またCSA132の前
段にCSA45,46を追加した構成である。
【0044】CSA41には、部分積y0 Xとともに、
第3の置数に相当するCinと、第5の置数に相当する
Pinの一部(pin0 〜pin7 )が入力されており、こ
れらの値が加算される。以下、CSA42〜44におい
て順に部分積y1 X、y2 X、y3 Xとの部分和演算が
行われる。このとき、それぞれ、pin8 、pin9 、p
in10が加算される。
【0045】一方、CSA45〜48は、部分積y4
〜y7 Xに付いての部分和演算を行う。このとき、それ
ぞれ、pin11〜pin14との加算も行われる。最後に、C
SA49,50は、CSA44の出力とCSA48の出
力の加算を行う。CSA50では、pin15との加算も行
われる。
【0046】このようにして、2つの流れに分けて演算
を行うことによって、この例では6サイクルで乗算を実
行することができる。そのため、配列型並列乗算器に比
べて演算の高速化を図ることができる。
【0047】第3の置数に相当するCinは、上述の第
1の実施の形態における第3の置数Zと同様であり、
‘0’とすることで置数Xと置数Yとの間の乗算を行う
ことができる。また置数Yを1(y0 を‘1’、y1
7 を‘0’)に設定すると置数Xと第3の置数に相当
するCinの間で加算あるいは減算が可能になる。y0
のみが‘1’であるからCSA41においてCinとX
(y0 X=X)とが加算されることになる。減算時には
Cinとして2の補数を設定すれば、減算が行われる。
なおこの例ではPinを利用し、Cinとしてビット反
転したデータを設定するとともに、第5の置数に相当す
るPinに値‘1’を設定して加算するように構成して
いる。
【0048】さらにこの第2の実施の形態では、積和演
算が可能である。すなわち、加算時の初期値として、第
5の置数に相当するPinの値を設定し、順次、部分和
を求めて行けばよい。上述のようにCSA41において
in0 〜pin7 との加算を行うとともに、CSA42〜
48,50において、順にpin8 〜pin15との加算を行
う。これによって、第5の置数に相当するPinの値が
加算された演算結果が得られる。
【0049】図13は、本発明の情報処理装置の第2の
実施の形態を実現する回路ブロック図、図14は、同じ
く演算回路部51の一例を示す回路構成図である。図
中、61は演算回路部、62はCLA付き加算器、63
はXレジスタ、64はYレジスタ、65はCinレジス
タ、66はPinレジスタ、67はSレジスタである。
また、図14において、黒丸はAND回路を示し、部分
積を演算する。またFAは全加算器であり、図中の横一
列がそれぞれ、図12におけるCSA41〜50に相当
する回路部分である。なお、図14においてはXレジス
タ63及びYレジスタ64からの配線は省略し、AND
回路を示す黒丸の位置によって、演算を行うXレジスタ
63及びYレジスタ64中のビットを特定するように示
している。さらに、図14で全加算器FAに入力されて
ない部分には‘0’が入力されるものとする。
【0050】図13において、演算回路部61は図14
に示すような構成を有しており、図12に示した構成を
実現している。基本的には奇偶乗算器であり、上部の4
段のCSAとそれに続く4段のCSAが並列的に実行さ
れる。
【0051】Xレジスタ63及びYレジスタ64は、そ
れぞれ上述の置数X及び置数Yを格納するためのレジス
タであり、上述のように、乗算時の2つの数及び積和演
算時に乗算する2つの数を格納する。また、加減算時に
はYレジスタ64に‘1’(y0 が‘1’、y1 〜y7
が‘0’)が格納される。また、Cinレジスタ65
は、第3の置数に相当するCinが格納される。上述の
ように、乗算時にはキャリーの初期値として0が格納さ
れるが、加算時には加算する一方の数が格納され、減算
時には減算する数のビットを反転したデータが格納され
る。
【0052】Pinレジスタ66には、2の補数による
減算時には1が格納され、積和演算時には加算数が格納
される。すなわち、通常は0であるが、減算時に1(p
in1〜pin15が‘0’、pin0 が‘1’)が格納され
る。これによって、CSA41の最下位桁に1が加算さ
れ、反転しただけのCinレジスタ65の値が2の補数
となる。また、積和演算時には乗算結果と同じビット幅
の加算値が格納され、各CSA41〜48,50の初期
値として入力される。
【0053】Sレジスタ67は、演算結果を格納する。
演算結果は、CSA41〜44,49,50の最下位桁
と、CLA付き加算器18の出力から構成される。ビッ
ト幅は置数X、Y及び第3の置数に相当するCinのビ
ット幅の倍となる。
【0054】CLA付き加算器62は、図12における
CLA付き加算器51に対応するものである。CLA付
き加算器62は、奇偶乗算器の最終段であるCSA50
の出力から最終的な演算結果を得るために用いられる。
具体的には、図14に示すように、乗算器アレイの最終
段の出力から、演算結果s6 〜s15を演算している。
【0055】図14においては、図12,図13に示す
CLA付き加算器62(あるいはCLA付き加算器5
1)を、4ビットを1ブロックとし、CLA付き加算器
1〜3に分割して示している。各CLA付き加算器1〜
3では、分割された単位間でCLAを用いて桁上げ信号
を伝搬させ、分割された単位内はリップルで桁上げ信号
を伝える方式をとっている。図14と上述の図3とを比
較して分かるように、CSAから出力される演算結果の
桁数が、図14に示す例の方が1桁多いため、CLA付
き加算器62で扱う桁数は1桁少ない。
【0056】各CLA付き加算器1〜3の回路構成は図
4〜図6とほぼ同様であり、入力される信号が異なる程
度である。上述のように扱う桁数が1桁少ないので、C
LA付き加算器3で演算する桁数が1桁少なくなる。そ
のため、図6に示したCLA付き加算器の構成よりも、
さらに簡略化された回路となる。
【0057】なお、上述の図12ないし図14では、8
ビット同士の加減乗算、および、8ビット同士の乗算に
16ビットの加算を行う積和演算を行う場合について示
している。しかしこれに限らず、任意ビット長の演算器
を構成することが可能である。
【0058】次に、上述の本発明の情報処理装置の第2
の実施の形態における動作について説明する。図15
は、本発明の情報処理装置の第2の実施の形態において
乗算を行う場合の各レジスタの設定状態の一例の説明図
である。上述の構成において8ビット×8ビットの乗算
を行う場合を考える。この場合、X(x7 6 5 4
3 2 1 0 )、Y(y7 6 5 4 3 2
1 0 )とし、X×Yを演算するものとすれば、Xレジ
スタ63,Yレジスタ64,Cinレジスタ65,Pi
nレジスタ66には、以下のような値を設定する。 Xレジスタ:x7 6 5 4 3 2 1 0 Yレジスタ:y7 6 5 4 3 2 1 0 Pinレジスタ:0000000000000000 Cinレジスタ:00000000
【0059】この場合、第3の置数に相当するCin及
び第5の置数に相当するPinはともに0であるので、
CSA41においてはy0 Xに0が加算されるのみであ
り、y0 Xが演算結果となる。以後、奇偶乗算器として
機能し、X×Yの演算結果として S(積):s1514131211109 8 7 6
5 4 3 2 1 0 がSレジスタ67に格納される。
【0060】図16は、本発明の情報処理装置の第2の
実施の形態において加算を行う場合の各レジスタの設定
状態の一例の説明図である。上述の構成において8ビッ
ト+8ビットの加算を行う場合を考える。この場合、X
(x7 6 5 4 3 21 0 )、Y(y7 6
5 4 3 2 1 0 )とし、X+Yを演算するも
のとすれば、Xレジスタ63,Yレジスタ64,Cin
レジスタ65,Pinレジスタ66には、以下のような
値を設定する。 Xレジスタ:x7 6 5 4 3 2 1 0 Yレジスタ:00000001 Cinレジスタ:y7 6 5 4 3 2 1 0 Pinレジスタ:0000000000000000
【0061】ここで、X+Yを実行するが、加算数Yは
Cinレジスタ65に格納し、Yレジスタ64には
‘1’を格納する。これによって、y1 X〜y7 Xは0
になる。また、y0 X=Xとなり、Pinレジスタ66
の値も0であることから、CSA41においてはXレジ
スタ63に格納されている値Xと、Cinレジスタ65
に格納されている値Yとが加算されることになる。以
後、CSA42〜44,49,50と送られるが、加算
される数が0であるため、繰り上がりの処理のみが行わ
れる。そして、X+Yの演算結果として、 S(和):s8 7 6 5 4 3 2 1 0 がSレジスタ67に格納される。
【0062】図17は、本発明の情報処理装置の第2の
実施の形態において減算を行う場合の各レジスタの設定
状態の一例の説明図である。上述の構成において8ビッ
ト−8ビットの減算を行う場合を考える。この場合、X
(x7 6 5 4 3 21 0 )、Y(y7 6
5 4 3 2 1 0 )とし、X−Yを演算するも
のとすれば、Xレジスタ63,Yレジスタ64,Cin
レジスタ65,Pinレジスタ66には、以下のような
値を設定する。 Xレジスタ:x7 6 5 4 3 2 1 0 Yレジスタ:00000001 Cinレジスタ:_y7 _y6 _y5 _y4 _y3 _y
2 _y1 _y0 Pinレジスタ:0000000000000001
【0063】ここではX−Yを実行するが、減算数Yは
各ビットを反転してCinレジスタ65に格納し、2の
補数とするためにPinレジスタに‘1’を設定する。
また、Yレジスタ64には‘1’を格納する。これによ
って、加算時と同様に、y1X〜y7 Xは0、y0 X=
Xとなる。CSA41において、値Yの反転である_Y
にPinレジスタに格納されている‘1’が加算され、
値Yの2の補数が得られる。それとともに値X(=y0
X)が加算され、値Xと、値Yの2の補数との加算、す
なわち減算が実現できる。以後、CSA42〜44,4
9,50と送られるが、加算される数が0であるため、
繰り上がりの処理のみが行われる。そして、X−Yの演
算結果として S(和):s7 6 5 4 3 2 1 0 がSレジスタ67に格納される。
【0064】ここで、Cinレジスタ65の前段あるい
は直後に、例えば上述の第1の実施の形態と同様、例え
ば図11と同様の回路をCinレジスタ65の前段ある
いは直後に挿入することができる。これによって、Ci
nレジスタ65への入力(加算のときyi 、減算のとき
_yi )の制御をセレクト信号によって制御することが
できる。
【0065】図18は、本発明の情報処理装置の第2の
実施の形態において積和演算を行う場合の各レジスタの
設定状態の一例の説明図である。上述の構成において8
ビット×8ビット+16ビットの積和演算を行う場合を
考える。この場合、X(x76 5 4 3 2 1
0 )、Y(y7 6 5 4 3 2 1 0 )、P
(p1514131211109 8 7 6 5 4
3 2 1 0 )とし、X×Y+Pを演算するものと
すれば、Xレジスタ63,Yレジスタ64,Cinレジ
スタ65,Pinレジスタ66には、以下のような値を
設定する。 Xレジスタ:x7 6 5 4 3 2 1 0 Yレジスタ:y7 6 5 4 3 2 1 0 Cinレジスタ:00000000 Pinレジスタ:p1514131211109 8
7 6 5 4 32 1 0
【0066】この場合、加算する数はPinレジスタ6
6に格納される。この値は加算の初期値としてCSA4
1〜48,50に入力される。CSA41においては、
Pinレジスタ66のうちp0 〜p7 が入力され、これ
とy0 Xが加算される。以下、順にCSA42〜48,
50において最初に出現する桁に対して、それぞれ、p
8 〜p15の値が初期値として与えられ、加算されてゆ
く。このようにして、加算する数を加算時の初期値とし
て与えて、乗算時の部分和を計算して行くことによっ
て、積和演算を行うことができる。このようにして、最
終的にX×Y+Pの演算結果として S(積):s1514131211109 8 7 6
5 4 3 2 1 0 がSレジスタ67に格納される。
【0067】上述のように、本発明の第2の実施の形態
で示した情報処理装置によれば、同じ構成によって、値
の設定によって乗算、加算、減算、積和演算を行うこと
ができる。また、基本的に奇偶乗算器の構造を有してお
り、配列型並列乗算器に比べて高速に演算を実行するこ
とができる。
【0068】上述の第1の実施の形態及び第2の実施の
形態で示した本発明の情報処理装置では、同じ回路構成
によって加減乗算あるいは加減乗算と積和演算を行うこ
とができる。そのため、例えばFPGAなどのプログラ
マブル論理回路に適用することによって、演算時に発生
する回路の再構成回数を減少させ、高速化が可能であ
る。
【0069】図19は、プログラマブル論理回路の平面
構造の一例の説明図、図20は、同じく内部構造の一例
を示すブロック図である。図中、71はプログラマブル
論理回路、72は論理セル、73は配線領域、74は入
出力端子、81は回路素子、82はコンフィギュレーシ
ョンメモリである。プログラマブル論理回路71は、図
20に示すように、回路情報を格納するためのコンフィ
ギュレーションメモリ82と、論理セルや配線領域から
なる回路素子81を有している。コンフィギュレーショ
ンメモリ82は、例えばEEPROM、SRAMなどの
書き換え可能なメモリ素子で構成されている。回路情報
がコンフィギュレーションメモリ82に格納されると、
この回路情報に従って、例えば図19に示す論理セル7
2内の回路構成や、論理セルと入出力端子74を相互に
接続する配線領域73の接続状態が再構成される。コン
フィギュレーションメモリ82の一部分を書き換えるこ
とにより、プログラマブル論理回路71が動作中であっ
ても、回路を部分的に再構成することができる。プログ
ラマブル論理回路71に再構成された回路素子81に、
図19に示す入出力端子74を介して、処理すべきデー
タが入力され、また、その処理結果が出力される。
【0070】このようなプログラマブル論理回路71に
対して、例えば上述の第1あるいは第2の実施の形態で
示した本発明の情報処理装置を構成するための回路情報
をコンフィギュレーションメモリ82に格納し、回路素
子81を再構成する。これによって、加減乗算、あるい
は加減乗算と積和演算を行うだけであれば回路の再構成
を行わなくてよい。例えば図25に示したような奇偶乗
算器では、乗算処理しか行うことができないので、加算
・減算処理を行う場合にはそのための処理回路を、その
都度、コンフィギュレーションメモリ82にデータをロ
ードし、回路素子81の再構成を行わなければならず、
全体の処理時間が長くかかってしまう。しかし、本発明
の情報処理装置をプログラマブル論理回路71上に構成
しておけば、乗算、加算・減算、あるいはさらに積和演
算の各演算の切り替え時に再構成を行わなくてよいた
め、全体の処理時間を短縮することが可能になる。ま
た、本発明の情報処理装置は、奇偶乗算器に対して、数
段のCSAといくつかのレジスタ、あるいはさらにイン
バータ、マルチプレクサ、制御線を設ける程度の追加で
済み、従来とほぼ同規模の回路規模で構築可能である。
【0071】さらに、従来よりプログラマブル論理回路
71への応用として提案されている、配列型並列乗算器
を用いたそろばん型加減乗算器に比べ、本発明の情報処
理装置をプログラマブル論理回路71に構築した場合に
は高速に演算処理を行うことができる。
【0072】もちろん、本発明の情報処理装置は、プロ
グラマブル論理回路で実現するほか、ワイヤードロジッ
クにより基板上あるいはLSI上に構築する等、独立し
た、あるいは他の回路に組み込んだ回路として構築する
ことが可能である。
【0073】
【発明の効果】以上の説明から明らかなように、本発明
によれば、配列型並列乗算器よりも高速に演算が可能で
あるとともに、奇偶乗算器では実現できなかった加算、
減算、さらには積和演算についても同じ回路で演算が可
能である。
【0074】また、このように同じ回路で加減乗算、さ
らには積和演算が可能で、しかも高速な演算が行えるこ
とから、再構成可能なプログラマブル論理回路への応用
が可能であり、再構成の回数を減少させて再構成に要す
る時間を削減するとともに、演算時間を短縮し、高速化
を図ることができるという効果がある。
【図面の簡単な説明】
【図1】 本発明の情報処理装置の第1の実施の形態を
示す基本ブロック図である。
【図2】 本発明の情報処理装置の第1の実施の形態を
実現する回路ブロック図である。
【図3】 本発明の情報処理装置の第1の実施の形態に
おける演算回路部21の一例を示す回路構成図である。
【図4】 図3におけるCLA付き加算器1の一例を示
す回路図である。
【図5】 図3におけるCLA付き加算器2の一例を示
す回路図である。
【図6】 図3におけるCLA付き加算器3の一例を示
す回路図である。
【図7】 図3におけるCLA付き加算器1〜3で用い
られている半加算器の一例を示す回路図である。
【図8】 本発明の情報処理装置の第1の実施の形態に
おいて乗算を行う場合の各レジスタの設定状態の一例の
説明図である。
【図9】 本発明の情報処理装置の第1の実施の形態に
おいて加算を行う場合の各レジスタの設定状態の一例の
説明図である。
【図10】 本発明の情報処理装置の第1の実施の形態
において減算を行う場合の各レジスタの設定状態の一例
の説明図である。
【図11】 加算/減算選択器の一例を示す回路図であ
る。
【図12】 本発明の情報処理装置の第2の実施の形態
を示す基本ブロック図である。
【図13】 本発明の情報処理装置の第2の実施の形態
を実現する回路ブロック図である。
【図14】 本発明の情報処理装置の第2の実施の形態
における演算回路部51の一例を示す回路構成図であ
る。
【図15】 本発明の情報処理装置の第2の実施の形態
において乗算を行う場合の各レジスタの設定状態の一例
の説明図である。
【図16】 本発明の情報処理装置の第2の実施の形態
において加算を行う場合の各レジスタの設定状態の一例
の説明図である。
【図17】 本発明の情報処理装置の第2の実施の形態
において減算を行う場合の各レジスタの設定状態の一例
の説明図である。
【図18】 本発明の情報処理装置の第2の実施の形態
において積和演算を行う場合の各レジスタの設定状態の
一例の説明図である。
【図19】 プログラマブル論理回路の平面構造の一例
の説明図である。
【図20】 プログラマブル論理回路の内部構造の一例
を示すブロック図である。
【図21】 一般的な配列型並列乗算器の一例のブロッ
ク図である。
【図22】 一般的な配列型並列乗算器における部分積
生成回路の一例の説明図である。
【図23】 一般的な配列型並列乗算器の構成の一例を
示す回路図である。
【図24】 一般的な配列型並列乗算器の構成の一例に
おける論理セルの一例を示す回路図である。
【図25】 奇偶乗算器の一例を示すブロック図であ
る。
【図26】 そろばん型加減乗算器の一例を示すブロッ
ク図である。
【符号の説明】
11〜17,41〜50,101〜108,131〜1
36…CSA、18,22,51,62,109,13
7,142…CLA付き加算器、21,61,141…
演算回路部、23,63,143…Xレジスタ、24,
64,144…Yレジスタ、25…Zレジスタ、26…
Iレジスタ、27,67,147…Sレジスタ、31…
インバータ、32…セレクタ、65…Cinレジスタ、
66…Pinレジスタ、71…プログラマブル論理回
路、72…論理セル、73…配線領域、74…入出力端
子、81…回路素子、82…コンフィギュレーションメ
モリ、111…AND回路、121…論理セル、122
…全加算器、123…AND回路、145…Cレジス
タ、146…Pレジスタ。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 第1の置数及び第2の置数について複数
    の計算の流れで部分和とキャリーの加算処理を行う乗算
    器と、該乗算器の前段において前記乗算器の最初の部分
    和演算の一部及び第3の置数との加算を行う加算器を有
    し、前記第3の置数を0として前記第1の置数と前記第
    2の置数の乗算を行うとともに、前記第1または第2の
    置数の一方を1として他方と第3の置数との加算を行う
    ことを特徴とする情報処理装置。
  2. 【請求項2】 さらに補数を表す第4の置数が前記乗算
    器及び前記加算器に入力されており、前記乗算及び前記
    加算時は前記第4の置数を0とするとともに、減算時に
    は前記第4の置数を1とし、前記第1または第2の置数
    の一方を1として他方と第3の置数の反転と前記第4の
    置数を加算して減算を行うことを特徴とする請求項1に
    記載の情報処理装置。
  3. 【請求項3】 さらに、前記第1及び第2の置数の2倍
    長の第5の置数の一部と第3の置数と乗算器の前段にお
    いて前記乗算器の最初の部分和演算の一部との加算を行
    う1ないし複数の加算器を前記乗算器の前記複数の計算
    の流れごとに有し、前記乗算及び前記加算時は前記第5
    の置数を0とするとともに、減算時には前記第5の置数
    を1とし前記第1または第2の置数の一方を1として他
    方と第3の置数の反転と前記第5の置数を加算して減算
    を行い、さらに、前記第3の置数を0として前記第1の
    置数と前記第2の置数の乗算結果に前記第5の置数を加
    算して積和演算を行うことを特徴とする請求項1に記載
    の情報処理装置。
  4. 【請求項4】 前記乗算器及び1ないし複数の前記加算
    器は、プログラマブル論理回路上に構成されることを特
    徴とする請求項1ないし請求項3のいずれか1項に記載
    の情報処理装置。
JP2000003236A 2000-01-12 2000-01-12 情報処理装置 Pending JP2001195234A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000003236A JP2001195234A (ja) 2000-01-12 2000-01-12 情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000003236A JP2001195234A (ja) 2000-01-12 2000-01-12 情報処理装置

Publications (1)

Publication Number Publication Date
JP2001195234A true JP2001195234A (ja) 2001-07-19

Family

ID=18532214

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000003236A Pending JP2001195234A (ja) 2000-01-12 2000-01-12 情報処理装置

Country Status (1)

Country Link
JP (1) JP2001195234A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008508637A (ja) * 2004-08-04 2008-03-21 インテル コーポレイション 合計セルと結合されたキャリースキップセルを具備するキャリースキップ加算器
JP2009110238A (ja) * 2007-10-30 2009-05-21 Sanyo Electric Co Ltd 演算装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008508637A (ja) * 2004-08-04 2008-03-21 インテル コーポレイション 合計セルと結合されたキャリースキップセルを具備するキャリースキップ加算器
JP2009110238A (ja) * 2007-10-30 2009-05-21 Sanyo Electric Co Ltd 演算装置

Similar Documents

Publication Publication Date Title
KR940002479B1 (ko) 고속 디지탈 병렬승산기(multiplier)
JP3244506B2 (ja) 小型乗算器
JP3613396B2 (ja) 機能ブロック
JPH08503570A (ja) 高速桁上げのためのロジック構造および回路
JPS60163128A (ja) 乗算回路
JPH03186924A (ja) 除算装置
US6519621B1 (en) Arithmetic circuit for accumulative operation
JP3537378B2 (ja) 加算器および集積回路
JP2001195234A (ja) 情報処理装置
JP3558119B2 (ja) 情報処理システム、プログラマブル論理回路の回路情報形成方法、プログラマブル論理回路の再構成方法
CN109196465B (zh) 双精度浮点运算
JP2002026721A (ja) 情報処理装置
JPH0464091B2 (ja)
JPH10133857A (ja) 除算装置
JPH01220528A (ja) パリテイ発生器
TWI802095B (zh) 模數乘法電路與對應之計算模數乘法之方法
US6844756B1 (en) Configurable dedicated logic in PLDs
JP2681968B2 (ja) 演算処理装置
JP3457082B2 (ja) 演算装置
JP3540136B2 (ja) データ分割並列シフタ
JPS6182234A (ja) 乗算器回路
JPH0528407B2 (ja)
JPH11282651A (ja) 並列乗算器
JPH04250527A (ja) 演算回路
JPH0253819B2 (ja)