JP2650209B2 - 乗算装置 - Google Patents

乗算装置

Info

Publication number
JP2650209B2
JP2650209B2 JP62302463A JP30246387A JP2650209B2 JP 2650209 B2 JP2650209 B2 JP 2650209B2 JP 62302463 A JP62302463 A JP 62302463A JP 30246387 A JP30246387 A JP 30246387A JP 2650209 B2 JP2650209 B2 JP 2650209B2
Authority
JP
Japan
Prior art keywords
register
circuit
adder
multiplication
multiplier
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.)
Expired - Fee Related
Application number
JP62302463A
Other languages
English (en)
Other versions
JPH01142935A (ja
Inventor
浩二 黒田
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP62302463A priority Critical patent/JP2650209B2/ja
Priority to US07/273,582 priority patent/US4989168A/en
Priority to AU25993/88A priority patent/AU598405B2/en
Priority to CA000584487A priority patent/CA1289669C/en
Priority to EP88119983A priority patent/EP0318957B1/en
Priority to DE3854321T priority patent/DE3854321T2/de
Publication of JPH01142935A publication Critical patent/JPH01142935A/ja
Application granted granted Critical
Publication of JP2650209B2 publication Critical patent/JP2650209B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】 [概 要] 本発明は情報処理装置において乗算命令を実行する乗
算装置の回路構成に関し、 2進数データ内の“1"の数を計測する命令を高速で実
行することが可能で、これを少量のハードウェアで実現
できる回路を提供することを目的とし、 乗数を複数に分割したビット列ごとに該ビット列と被
乗数とを乗算する複数の回路を有する乗算装置におい
て、前記分割したビット列ごとに該ビット列と被乗数と
を乗算する複数の回路ごとに、分割された乗数を更にビ
ット毎に分割し、同じ重みとして加算する加算器とを設
けると共に与えられた2進数についての“1"の数を計測
する命令の実行に際しては該全加算器の出力を選択し、
乗算命令の実行に際しては前記乗数を分割したビット列
と被乗数とを乗算した結果の値を選択するセレクタを設
けることにより構成する。
[産業上の利用分野] 本発明は乗算装置に関するものであって、特に与えら
れた2進データ中の“1"の数を計測する命令(以下ポピ
ュレーションカウント命令と言う)を既存の乗算装置の
回路に若干の付加回路を加えることによって、高速に処
理し得る回路構成に係る。
[従来の技術] 最近の計算機システムの著しい進歩に伴って、該計算
機システムによる画像処理が盛んになってきている。
このような、コンピュータブラフィックの分野におい
ては、例えば、画像の濃淡を計算するのに、所謂、ポピ
ュレーションカウント命令がしばしば用いられる。
該ポピュレーションカウント命令は、例えば、64ビッ
トからなる入力データについて、“1"となっているビッ
トの数を算出し、その個数を結果レジスタに格納する処
理を、複数個のエレメントデータについて実行する。
第4図は従来のポピュレーションカウント命令の実行
回路の構成の例を示す図であって、50は入力データ(8
バイト)を格納するレジスタ、51はセレクタ、52はレジ
スタ、53は演算回路、54は先見加算器(図においては略
号にてCPAと記載)、55はレジスタ、56は最終結果を格
納するレジスタを表している。
同図において、先ず、8バイトのデータがセレクタ51
を通してレジスタ52に設定されると、英字符Bで示す最
下位の1バイトが演算回路53に投入される。
該演算回路53においては、該1バイトのデータについ
て“1"の数を算出して2進数に変換し、桁上げ先見加算
器54に送出し、一つ前のサイクルで算出された個数と加
算する。
従来方式においては、本図から明らかなごとく、上記
の演算を1回実行する毎に、レジスタ50からの8バイト
の入力データを1バイト右にシフトして、再度レジスタ
52に投入することを8回繰り返すことによって、8バイ
トのデータについての“1"の数をカウントし、最終結果
を最下位バイトに得ていた。
[発明が解決しようとする問題点] 上述したように従来はポピュレーションカウント命令
については、専用の回路を設けることにより命令の実行
を行なっていたが、入力データを分割して処理を反復し
て行なう構成を採っているため、その処理時間が長いと
いう問題点があった。
また、本例では、データ中の“1"の計測を1バイト単
位で処理する例で説明したが、これを高速化するため例
えば2バイト単位で処理することを考えると、処理速度
は改善されるが、該2バイトデータについて、“1"の個
数を算出する演算回路に多くのハードウェア量が必要と
なり実現的でなくなるという問題があった。
本発明は上記従来の欠点に鑑み、少ないハードウェア
を用意するだけで、比較的高速にポピュレーションカウ
ント命令を実行する方法を提供することを目的とするも
のである。
[問題点を解決するための手段] 本発明によれば上述の目的は、前記特許請求の範囲に
記載した手段により達成される。すなわち、本発明は、
乗数のビット列を複数に分割する回路と、該回路によっ
て分割したビット列ごとに該ビット列と被乗数とを乗算
する複数の回路と、該各回路の演算結果にそれぞれ重み
付けを行なって加算する回路とによって演算結果を求め
るごとく構成された乗算装置において、前記分割したビ
ット列ごとに該ビット列と被乗数とを乗算する複数の回
路ごとに、分割された乗数を更にビット毎に分割し、同
じ重みとして加算する加算器とを設けると共に与えられ
た2進数についての“1"の数を計測する命令の実行に際
しては該全加算器の出力を選択し乗算命令の実行に際し
ては前記乗数を分割したビット列と被乗数とを乗算した
結果の値を選択するセレクタを設けた乗算装置である。
[作 用] 第1図は本発明の原理を示すブロック図であって、1
は被乗数を保持するレジスタ、2は乗数を保持するレジ
スタ、3−A〜3−Dは分割した乗数をそれぞれ被乗数
と乗算する乗算回路、4は各乗算回路3−A〜3−Dで
演算された結果に重み付けを行なって加算する加算回
路、5は演算結果を格納するレジスタを表している。
乗算回路3−A〜3−Dは同様な構成のものである
が、表現を簡潔にして理解を容易にするため、第1図に
おいては3−A以外について内容を省略した形で表示し
ている。
同図において、ポピュレーションカウント命令を実行
する場合には、レジスタ2にデータをセットすると、複
数に分割されたビット列のそれぞれが乗算回路3−A〜
3−Dに入力される。
乗算回路3−Aに注目して説明すると上記入力ビット
列はレジスタ7に保持された後、ビット毎に分割し、加
算器9によって、それぞれ同じ重みとする分割されたす
べてのビットの加算が行なわれる。
セレクタ11は加算器9の出力を選択して(乗算を行な
うときは乗算回路8の出力を選択する)レジスタ12−A
に格納する。すなわち、レジスタ12−A内のデータは、
レジスタ7に保持されたデータの中の“1"の数である。
このようにして、乗算回路3−A〜3−Dのレジスタ
12−A〜12−Dにはそれぞれ、最初にレジスタ2にセッ
トされたデータを複数に分割したそれぞれのビット列内
の“1"の数がセットされることになる。
これらのレジスタ12−A〜12−Dの内容は加算回路4
によって重み付けを加味して加算され、その結果がレジ
スタ5に格納される。そのため、レジスタ12−A〜12−
Dに全加算器(12−Aの場合は9)の値をセットすると
きはこれを考慮しておかなれけばならない。
第2図はこのような、加算器4の動作と各レジスタ12
−A〜12−Dとの関係を説明する図であって、12−A〜
12−Dは第1図のレジスタ12−A〜12−Dに対応してお
り、斜線を施した部分がデータ中の“1"の数を表す値の
部分であって、他の部分には総て“0"がセットされる。
各レジスタ12−A〜12−Dは図に示すようにそれぞれ
の重み付けに従って桁をずらして加算され、ポピュレー
ションカウント命令の場合には各レジスタ12−A〜12−
Dの斜線を施した部分の値が加算されて、レジスタ13に
与えられたデータ中の“1"の数としてセットされる。
[実施例] 第3図は本発明の一実施例のブロック図であって、14
は被乗数を格納するレジスタ、15は乗数を格納するレジ
スタ、16−A〜16−Dはそれぞれ乗算回路、17は桁上げ
保存先見加算器、18は桁上げ先見加算器、19は正規化回
路、20はレジスタ、21は被乗数を保持するレジスタ、22
は分割された乗数データの一つを保持するレジスタ、23
はデコーダ、24は倍数発生器、25は桁上げ保存加算器、
26は桁上げ先見加算器、27はレジスタ22の中から取り出
された乗数データをビット毎に分割して同じ重みとして
加算する加算器、29は加算器27から出力されるデータか
ら指定されたフィールドのみを抽出して出力するか、あ
るいは桁上げ先見加算器26の出力を出力するかを選択す
るセレクタ、30−A〜30−Dはそれぞれの乗算回路の結
果を格納するレジスタを表している。
乗算回路16−B〜16−Dの構成は16−Aと同様である
ので省力して描いてある。
同図において、乗算を行なう場合は被乗数をレジスタ
14に格納すると共に乗数をレジスタ15に格納する。
この例では乗数は8バイトであって、これが2バイト
ずつに分割され、それぞれ各乗算回路16−A〜16−Dに
入力される。
以下、乗算回路内における動作を乗算回路16−Aを例
に採って説明する。
レジスタ21には8バイトの被乗数が、レジスタ22には
8バイトの乗数の1/4(2バイト)が保持される。倍数
発生器24は、レジスタ22に保持されている乗数をデコー
ダ23がデコードした結果に基づいて被乗数の倍数を算出
する。桁上げ保存加算器25は該倍数データを入力とする
複数段からなる加算器であって、その出力は桁上げ先見
加算器26に入力される。
セレクタ29は乗算の場合は該先見加算器26の側を選択
しその出力をレジスタ30−Aに格納する。
このようにして、各乗算回路16−A〜16−Dによって
計算され、それぞれレジスタ30−A〜30−Dに格納され
た各部分積データは、保存加算器17と桁上げ先見加算器
18とによって加算された後、正規化回路19によって正規
化された後レジスタ20に格納される。
一方、ポピュレーションカウント命令を実行する場合
は、データをレジスタ15に格納すると共にセレクタ29が
加算器27の出力を選択する。該加算器27の出力は、レジ
スタ22にセットされたデータをビット毎に分割し、同じ
重みとして加算したものであるから、レジスタ22に保持
されているデータ中の“1"の数を示す値を有している。
そして、セレクタ29はこれを、レジスタ30−Aの指定さ
れた位置に格納する。この位置は、前記[作用]の項で
説明したようにレジスタ30−A〜30−Dごとに異なる。
これらの、各レジスタ30−A〜30−Dに分割して格納
された該当するデータの“1"の数を示す値は桁上げ保存
加算器17、桁上げ先見加算器18により加算された後正規
化回路19を経てレジスタ20に格納される。
[発明の効果] 以上説明したように本発明によれば既存の乗算回路に
極く少量のハードウェアの回路を付加することにより、
ポピュレーションカウント命令を高速で実行することを
可能と成し得る利点がある。
【図面の簡単な説明】
第1図は本発明の原理を示すブロック図、第2図は部分
積の加算器と分割したデータ中の“1"の数の加算につい
て説明する図、第3図は本発明の一実施例のブロック
図、第4図は従来のポピュレーションカウント命令の実
行回路の構成の例を示す図である。 1、2、5、6、7、12−A〜12−D、14、15、20、2
1、22、30−A〜30−D……レジスタ、3−A〜3−
D、8、16−A〜16−D……乗算回路、4……加算回
路、9、27……加算器、11、29……セレクタ、17、25…
…桁上げ保存加算器、18、26……桁上げ先見加算器、19
……正規化回路、23……デコーダ、24……倍数発生器

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】乗数のビット列を複数に分割する回路と、
    該回路によって分割したビット列ごとに該ビット列と被
    乗数とを乗算する複数の回路と、該各回路の演算結果に
    それぞれ重み付けを行なって加算する回路とによって演
    算結果を求めるごとく構成された乗算装置において、 前記分割したビット列ごとに該ビット列と被乗数とを乗
    算する複数の回路ごとに、分割された乗数を更にビット
    毎に分割し、同じ重みとして加算する加算回路を設ける
    と共に、与えられた2進数についての“1"の数を計測す
    る命令の実行に際しては該加算器の出力を選択し、乗算
    命令の実行に際しては前記乗数を分割したビット列と被
    乗数とを乗算した結果の値を選択するセレクタを設けた
    ことを特徴とする乗算装置。
JP62302463A 1987-11-30 1987-11-30 乗算装置 Expired - Fee Related JP2650209B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP62302463A JP2650209B2 (ja) 1987-11-30 1987-11-30 乗算装置
US07/273,582 US4989168A (en) 1987-11-30 1988-11-21 Multiplying unit in a computer system, capable of population counting
AU25993/88A AU598405B2 (en) 1987-11-30 1988-11-28 A multiplying unit in a computer system, capable of population counting
CA000584487A CA1289669C (en) 1987-11-30 1988-11-29 Multiplying unit in a computer system, capable of population counting
EP88119983A EP0318957B1 (en) 1987-11-30 1988-11-30 Population counting in computer systems
DE3854321T DE3854321T2 (de) 1987-11-30 1988-11-30 Populationszählung in Rechnersystemen.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62302463A JP2650209B2 (ja) 1987-11-30 1987-11-30 乗算装置

Publications (2)

Publication Number Publication Date
JPH01142935A JPH01142935A (ja) 1989-06-05
JP2650209B2 true JP2650209B2 (ja) 1997-09-03

Family

ID=17909244

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62302463A Expired - Fee Related JP2650209B2 (ja) 1987-11-30 1987-11-30 乗算装置

Country Status (1)

Country Link
JP (1) JP2650209B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6297033A (ja) * 1985-10-24 1987-05-06 Hitachi Ltd 乗算装置
JPS62209621A (ja) * 1986-03-11 1987-09-14 Fujitsu Ltd 乗算装置

Also Published As

Publication number Publication date
JPH01142935A (ja) 1989-06-05

Similar Documents

Publication Publication Date Title
US4525796A (en) Pipelined operation unit for vector data
US7716269B2 (en) Method and system for performing parallel integer multiply accumulate operations on packed data
FI78186B (fi) Dataprocessor som utfoer en decimalmultiplikationsoperation under anvaendning av ett laesminne.
EP0755015A1 (en) Combining data values
US4594680A (en) Apparatus for performing quadratic convergence division in a large data processing system
JPH0368416B2 (ja)
EP0088544B1 (en) Index limited continuous operation vector processor
JPH05250146A (ja) 整数累乗処理を行なうための回路及び方法
US4692891A (en) Coded decimal non-restoring divider
JP2502836B2 (ja) 除算回路の前処理装置
JPH07107664B2 (ja) 乗算回路
US5867413A (en) Fast method of floating-point multiplication and accumulation
US5138570A (en) Multiplier signed and unsigned overflow flags
JP2650209B2 (ja) 乗算装置
US4190894A (en) High speed parallel multiplication apparatus with single-step summand reduction
US20050154773A1 (en) Data processing apparatus and method for performing data processing operations on floating point data elements
JPS58129653A (ja) 乗算方式
JP2737933B2 (ja) 除算装置
JPH0831024B2 (ja) 演算プロセッサ
US6704761B1 (en) Carry-save multiplier/accumulator system and method
EP0137525A2 (en) Arithmetic unit in data processing system with bit-extension circuitry
JPH10333883A (ja) 乗算方法および乗算回路
JP2675087B2 (ja) マイクロコンピュータ
JP2777265B2 (ja) 高基数開平演算装置
JPS62209621A (ja) 乗算装置

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees