JPH01185725A - 乗算装置 - Google Patents
乗算装置Info
- Publication number
- JPH01185725A JPH01185725A JP63010091A JP1009188A JPH01185725A JP H01185725 A JPH01185725 A JP H01185725A JP 63010091 A JP63010091 A JP 63010091A JP 1009188 A JP1009188 A JP 1009188A JP H01185725 A JPH01185725 A JP H01185725A
- Authority
- JP
- Japan
- Prior art keywords
- carry
- adder
- input
- register
- data
- 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
Links
- 238000004321 preservation Methods 0.000 abstract 8
- 238000010586 diagram Methods 0.000 description 19
- 238000000034 method Methods 0.000 description 7
- 101100112111 Caenorhabditis elegans cand-1 gene Proteins 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 241000287531 Psittacidae Species 0.000 description 1
- 102100029469 WD repeat and HMG-box DNA-binding protein 1 Human genes 0.000 description 1
- 101710097421 WD repeat and HMG-box DNA-binding protein 1 Proteins 0.000 description 1
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔概要〕
乗算装置に関し、
ポピユレーション・カウント命令を実行できる乗算装置
を提供することを目的とし、 被乗数レジスタと、乗数レジスタと、乗数レジスタの乗
数データをデコードするデコーダと、デコーダのデコー
ド結果に基づいて被乗数の倍数データを生成する倍数発
生器と、倍数発生器からの倍数データを入力とする第1
の桁上げ保存加算器と、第1の桁上げ保存加算器からの
出力を入力とする桁上げ先見加算器とを具備する乗算装
置において、乗数レジスタの乗数データを2ビット毎ま
たは3ビット毎に分割してビット対応の加算を行う第2
の桁上げ保存加算器を設けると共に、第1の桁上げ保存
加算器の入力段にセレクタを設け、ポピユレーション・
カウント命令が発行された場合に、セレクタによって第
2の袷上げ保存加算器からのキャリィとサムとを選択し
、これらを第1の桁上げ保存加算器及び桁上げ先見加算
器で加算することを構成要件としている。
を提供することを目的とし、 被乗数レジスタと、乗数レジスタと、乗数レジスタの乗
数データをデコードするデコーダと、デコーダのデコー
ド結果に基づいて被乗数の倍数データを生成する倍数発
生器と、倍数発生器からの倍数データを入力とする第1
の桁上げ保存加算器と、第1の桁上げ保存加算器からの
出力を入力とする桁上げ先見加算器とを具備する乗算装
置において、乗数レジスタの乗数データを2ビット毎ま
たは3ビット毎に分割してビット対応の加算を行う第2
の桁上げ保存加算器を設けると共に、第1の桁上げ保存
加算器の入力段にセレクタを設け、ポピユレーション・
カウント命令が発行された場合に、セレクタによって第
2の袷上げ保存加算器からのキャリィとサムとを選択し
、これらを第1の桁上げ保存加算器及び桁上げ先見加算
器で加算することを構成要件としている。
本発明は、データ中の1”の値を持つビットの個数を計
数する命令(ポピユレーション・カウント命令)をも実
行できるようになった乗算装置に関するものである。
数する命令(ポピユレーション・カウント命令)をも実
行できるようになった乗算装置に関するものである。
最近の計算機システムの著しい進歩に伴って、計算機シ
ステムによる画像処理が盛んになって来ている。
ステムによる画像処理が盛んになって来ている。
このようなコンピュータ・グラフィックの分野において
、例えば画像の濃淡を計算するのに、いわゆるポピユレ
ーション・カウント命令がしばしば用いられる。
、例えば画像の濃淡を計算するのに、いわゆるポピユレ
ーション・カウント命令がしばしば用いられる。
第8図は従来のポピユレーション・カウント命令の実行
回路の例を示す図である。同図において、31は入力レ
ジスタ、32はセレクタ、33はレジスタ、34は演算
装置、35は桁上げ先見加算器、36は結果レジスタを
それぞれ示している。
回路の例を示す図である。同図において、31は入力レ
ジスタ、32はセレクタ、33はレジスタ、34は演算
装置、35は桁上げ先見加算器、36は結果レジスタを
それぞれ示している。
先ず、8バイトのデータがセレクタ32を通してレジス
タ33に設定されると、最下位の1バイトが演算回路3
4に投入される。演算回路34においては、該1バイト
のデータについて“1′の個数を算出して2進数に変換
し、桁上げ先見加算器35に送出し、一つ前のサイクル
で算出された個数と加算される。
タ33に設定されると、最下位の1バイトが演算回路3
4に投入される。演算回路34においては、該1バイト
のデータについて“1′の個数を算出して2進数に変換
し、桁上げ先見加算器35に送出し、一つ前のサイクル
で算出された個数と加算される。
第9図はポピユレーション・カウント命令の処理手順を
示す図である。第9図は上述の説明から理解できるもの
と思われるので、説明は省略する。
示す図である。第9図は上述の説明から理解できるもの
と思われるので、説明は省略する。
従来方式においては、演算を一回実行する毎に、レジス
タ31からの8バイトの入力データを1バイト右にシフ
トして、再びレジスタ33に投入することを8回繰り返
すことによって、8バイトのデータについての“1′の
個数を計数し、最終結果を最下位バイトに得ていた。従
って、従来方式においては、第8図に示すような専用の
ハードウェアが必要になると共に、処理時間も長くなる
と言う問題があった。
タ31からの8バイトの入力データを1バイト右にシフ
トして、再びレジスタ33に投入することを8回繰り返
すことによって、8バイトのデータについての“1′の
個数を計数し、最終結果を最下位バイトに得ていた。従
って、従来方式においては、第8図に示すような専用の
ハードウェアが必要になると共に、処理時間も長くなる
と言う問題があった。
1バイト単位で処理する代わりに、2バイト単位で処理
することも考えられるが、2バイト単位で処理すると、
処理速度は改善されるが、2バイト・データについて′
1′の個数を算出する演算回路に多くのハードウェア量
が必要となり、現実的でなくなると言う問題があった。
することも考えられるが、2バイト単位で処理すると、
処理速度は改善されるが、2バイト・データについて′
1′の個数を算出する演算回路に多くのハードウェア量
が必要となり、現実的でなくなると言う問題があった。
″ところで、ポピユレーション・カウント命令の使用頻
度が少ないこと、パイプライン方式の計算機では乗算パ
イプラインの使用頻度が加算パイプラインに比べて少な
いこと、及び乗算パイプラインは倍数データを発生させ
該倍数データに基づいて該乗数をシフトして加算するた
めの複数入力の桁上げ保存加算器がビット対応に設けら
れ−ていること等に着目すると、少ないハードウェア量
で且つ計算機システムの他の演算に影響を与えることな
く乗算パイプラインを使用することにより、ポピユレー
ション・カウント命令を効率よく実行できることが期待
できる。
度が少ないこと、パイプライン方式の計算機では乗算パ
イプラインの使用頻度が加算パイプラインに比べて少な
いこと、及び乗算パイプラインは倍数データを発生させ
該倍数データに基づいて該乗数をシフトして加算するた
めの複数入力の桁上げ保存加算器がビット対応に設けら
れ−ていること等に着目すると、少ないハードウェア量
で且つ計算機システムの他の演算に影響を与えることな
く乗算パイプラインを使用することにより、ポピユレー
ション・カウント命令を効率よく実行できることが期待
できる。
本発明は、この点に鑑みて創作されたものであって、既
存の乗算装置に若干のハードウェアを追加するだけでポ
ピユレーション・カウント命令を実行できるようになっ
た乗算装置を提供することを目的としている。
存の乗算装置に若干のハードウェアを追加するだけでポ
ピユレーション・カウント命令を実行できるようになっ
た乗算装置を提供することを目的としている。
第1図は本発明の原理図である。乗算装置は、被乗数レ
ジスタ2aと、乗数レジスタ2bと、該乗数レジスタ2
bから取り出された乗数データをデコードするデコーダ
3と、上記デコーダ3のデコード結果に基づいて被乗数
の倍数データを生成する倍数発生器4と、該倍数発生器
4からの倍数データを入力とする複数段から成る第1の
桁上げ保存加算器5と、該第1の桁上げ保存加算器5か
らの出力を入力とする桁上げ先見加算器6とを具備して
いる。この種の乗算装置は公知のものであるが、本発明
はこの種の乗算装置において、上記乗数レジスタ2bの
中から取り出された乗数データをデコードするデコーダ
3とは独立に、該乗数データを任意の2ビット毎または
3ビット毎に分割してビット対応の加算を行う2入力ま
たは3入力の第2の桁上げ保存加算器12を設ける共に
、上記倍数発生器4からの倍数データを入力とする複数
段からなる第1の桁上げ保存加算器50入力段に、セレ
クタ41を設けている。
ジスタ2aと、乗数レジスタ2bと、該乗数レジスタ2
bから取り出された乗数データをデコードするデコーダ
3と、上記デコーダ3のデコード結果に基づいて被乗数
の倍数データを生成する倍数発生器4と、該倍数発生器
4からの倍数データを入力とする複数段から成る第1の
桁上げ保存加算器5と、該第1の桁上げ保存加算器5か
らの出力を入力とする桁上げ先見加算器6とを具備して
いる。この種の乗算装置は公知のものであるが、本発明
はこの種の乗算装置において、上記乗数レジスタ2bの
中から取り出された乗数データをデコードするデコーダ
3とは独立に、該乗数データを任意の2ビット毎または
3ビット毎に分割してビット対応の加算を行う2入力ま
たは3入力の第2の桁上げ保存加算器12を設ける共に
、上記倍数発生器4からの倍数データを入力とする複数
段からなる第1の桁上げ保存加算器50入力段に、セレ
クタ41を設けている。
データの中の“1“のビットの個数を計数するための所
定の命令が発行されると、上記倍数発生器4からの倍数
データを抑止し、上記セレクタ41によって上記第2の
桁上げ保存加算器12からのキャリィ出力12aとサム
出力12bとを選択して上記第1の桁上げ保存加算器5
に入力し、該第1の桁上げ保存加算器5の出力を入力と
する桁上げ先見加算器6で加算する。
定の命令が発行されると、上記倍数発生器4からの倍数
データを抑止し、上記セレクタ41によって上記第2の
桁上げ保存加算器12からのキャリィ出力12aとサム
出力12bとを選択して上記第1の桁上げ保存加算器5
に入力し、該第1の桁上げ保存加算器5の出力を入力と
する桁上げ先見加算器6で加算する。
第2図は本発明の一実施例のブロック図である。
同図において、1はベクトル・レジスタ、1aと1bは
レジスタ、2aないし2hもレジスタ、3はデコーダ、
4は倍数発生器、41はセレクタ、5は桁上げ保存加算
器、6は桁上げ先見加算器、7aないし7dはレジスタ
、8は桁上げ保存加算器、9は桁上げ先見加算器、19
はポスト・シフタ、llaはレジスタ、llbもレジス
タ、AないしDは乗算単位をそれぞれ示している。
レジスタ、2aないし2hもレジスタ、3はデコーダ、
4は倍数発生器、41はセレクタ、5は桁上げ保存加算
器、6は桁上げ先見加算器、7aないし7dはレジスタ
、8は桁上げ保存加算器、9は桁上げ先見加算器、19
はポスト・シフタ、llaはレジスタ、llbもレジス
タ、AないしDは乗算単位をそれぞれ示している。
ベクトル・レジスタ1から読み出された8バイトの被乗
数データはレジスタ1aにセットされ、ベクトル・レジ
スタ1から読み出された8バイトの乗数データはレジス
タ1bにセットされる。レジスタ1aの上位4バイトは
レジスタ2a、2cにそれぞれセットされ、レジスタ1
aの下位4バイトはレジスタ2e、2gにそれぞれセッ
トされる。レジスタ1bの上位4バイトはレジスタ2b
。
数データはレジスタ1aにセットされ、ベクトル・レジ
スタ1から読み出された8バイトの乗数データはレジス
タ1bにセットされる。レジスタ1aの上位4バイトは
レジスタ2a、2cにそれぞれセットされ、レジスタ1
aの下位4バイトはレジスタ2e、2gにそれぞれセッ
トされる。レジスタ1bの上位4バイトはレジスタ2b
。
2rにそれぞれセットされ、レジスタ1bの下位4バイ
トはレジスタ2d、2hにそれぞれセットされる。乗算
単位AはCUX I Uの乗算を行い、乗算単位BはC
UX I Lの乗算を行い、乗算単位CはCLX IU
の乗算を行い、乗算単位りはILXCLの乗算を行う。
トはレジスタ2d、2hにそれぞれセットされる。乗算
単位AはCUX I Uの乗算を行い、乗算単位BはC
UX I Lの乗算を行い、乗算単位CはCLX IU
の乗算を行い、乗算単位りはILXCLの乗算を行う。
但し、CUは被乗数の上位4バイト、CLは被乗数の下
位4バイト、IUは乗数の上位4バイト、ILは乗数の
下位4バイトをそれぞれ示す。
位4バイト、IUは乗数の上位4バイト、ILは乗数の
下位4バイトをそれぞれ示す。
乗算単位A、B、C,Dは同じ構成を有しているので、
乗算単位Aについてのみ説明する。乗算単位Aにおいて
、乗数レジスタ2bの乗数データはデコーダ3によって
デコードされ、デコード結果が倍数発生器4に送られる
。倍数発生器4は、デコード結果に従って被乗数の倍数
データを作成し、作成した倍数データを出力する。また
、乗数レジスタ2bの乗数データは、この乗数データを
・2ビットまたは3ビット毎に分割してビット対応の加
算を行う2入力または3入力の桁上げ保存加算器12に
入力される。桁上げ保存加算器12からのキャリィ12
a及びサム12bは、乗数レジスタ2bの乗数データの
中に存在する′1′のビットの個数を示している。セレ
クタ41は、通常の乗算命令の場合には倍数発生器4か
らの倍数データを選択し、ポピユレーション・カウント
命令の場合には桁上げ保存加算器12からのキャリィ出
力12aおよびサム出力12bを選択する。セレクタ4
1によって選択されたデータは、桁上げ保存加算器5に
入力される。桁上げ保存加算器5は、17入力を持ち、
複数段から成るものである。
乗算単位Aについてのみ説明する。乗算単位Aにおいて
、乗数レジスタ2bの乗数データはデコーダ3によって
デコードされ、デコード結果が倍数発生器4に送られる
。倍数発生器4は、デコード結果に従って被乗数の倍数
データを作成し、作成した倍数データを出力する。また
、乗数レジスタ2bの乗数データは、この乗数データを
・2ビットまたは3ビット毎に分割してビット対応の加
算を行う2入力または3入力の桁上げ保存加算器12に
入力される。桁上げ保存加算器12からのキャリィ12
a及びサム12bは、乗数レジスタ2bの乗数データの
中に存在する′1′のビットの個数を示している。セレ
クタ41は、通常の乗算命令の場合には倍数発生器4か
らの倍数データを選択し、ポピユレーション・カウント
命令の場合には桁上げ保存加算器12からのキャリィ出
力12aおよびサム出力12bを選択する。セレクタ4
1によって選択されたデータは、桁上げ保存加算器5に
入力される。桁上げ保存加算器5は、17入力を持ち、
複数段から成るものである。
桁上げ保存加算器5から出力されるサムとキャリィは、
桁上げ先見加算器6によって加算される。
桁上げ先見加算器6によって加算される。
桁上げ先見加算器6から出力される加算結果は、レジス
タ7aにセットされる。
タ7aにセットされる。
乗算単位A、B、C,Dから出力される演算結果は、桁
上げ保存加算器8によって加算される。
上げ保存加算器8によって加算される。
桁上げ保存加算器8の出力は、桁上げ先見加算器9に入
力され、加算される0桁上げ先見加算器9の加算結果は
ポスト・シフタ10によってポスト・シフトされ、その
結果はレジスタllaにセットされる。ポピユレーショ
ン・カウント命令の場合、レジスタllaのビット26
ないしビット31が“0°に抑止され、ビット26ない
しビット31が“0゛に抑止された上位8バイトがレジ
スタllbにセットされる。
力され、加算される0桁上げ先見加算器9の加算結果は
ポスト・シフタ10によってポスト・シフトされ、その
結果はレジスタllaにセットされる。ポピユレーショ
ン・カウント命令の場合、レジスタllaのビット26
ないしビット31が“0°に抑止され、ビット26ない
しビット31が“0゛に抑止された上位8バイトがレジ
スタllbにセットされる。
第3図は本発明の要部の詳細の例を示すブロック図、第
4図は第1のセレクタの例を示す図、第5図は第2のセ
レクタの例を示す図である。同図において、13−0な
いし13−31はAND回路、14−0ないし14−3
1もAND回路、15−Oないし15−15は半加算器
、16−2ないし16−17もAND回路、17−2な
いし17−17もAND回路、18−2ないし18−1
6もAND回路、19−2ないし19−17もAND回
路、20−2ないし20−17もAND回路、21−2
ないし21−16もAND回路、41aは第1のセレク
タ、41bは第2のセレクタをそれぞれ示している。第
3図の半加算器15−0ないし15−15は、桁上げ保
存加算器1・2を構成しており、AND回路16−2な
いし16−17及び19−2ないし19−17はセレク
タ41の部分に相当している。また、AND回路17−
2ないし17−17.18−2ないし18−16.20
−2ないし20−17及び21−1ないし21−16は
、倍数発生器40部分に相当する。
4図は第1のセレクタの例を示す図、第5図は第2のセ
レクタの例を示す図である。同図において、13−0な
いし13−31はAND回路、14−0ないし14−3
1もAND回路、15−Oないし15−15は半加算器
、16−2ないし16−17もAND回路、17−2な
いし17−17もAND回路、18−2ないし18−1
6もAND回路、19−2ないし19−17もAND回
路、20−2ないし20−17もAND回路、21−2
ないし21−16もAND回路、41aは第1のセレク
タ、41bは第2のセレクタをそれぞれ示している。第
3図の半加算器15−0ないし15−15は、桁上げ保
存加算器1・2を構成しており、AND回路16−2な
いし16−17及び19−2ないし19−17はセレク
タ41の部分に相当している。また、AND回路17−
2ないし17−17.18−2ないし18−16.20
−2ないし20−17及び21−1ないし21−16は
、倍数発生器40部分に相当する。
R3−0(レジスタ2bのビットO)はAND回路13
−0および14−0に入力され、R3−29はAND回
路13−29および14−29に入力され、R3−30
はAND回路13−30および14−30に入力され、
R3−31はAND回路13−31および14−31に
入力される。乗算命令の場合には、AND回路13−O
ないし13−31が開き、R3−0ないしR3−31は
デコーダ3に送られる。
−0および14−0に入力され、R3−29はAND回
路13−29および14−29に入力され、R3−30
はAND回路13−30および14−30に入力され、
R3−31はAND回路13−31および14−31に
入力される。乗算命令の場合には、AND回路13−O
ないし13−31が開き、R3−0ないしR3−31は
デコーダ3に送られる。
ポピユレーション・カウント命令の場合には、AND回
路14−0ないし14−31が開き、R3−0とR3−
1とが半加算器15−0に入力され、R3−28とR3
−29が半加算器15−14に入力され、R3−30と
R3−31が半加算器15−15に入力される。なお、
第3図のようにレジスタ2bのデータを2ビット毎に区
切って区切られた2ビットの中の′1゛の個数を対応す
る半加算器で求める代わりに、レジスタ2bのデータを
3ビット毎に区切って区切られた3ビットの中の°1゛
の個数を対応する3入力の桁上げ加算器で求めることも
可能である。
路14−0ないし14−31が開き、R3−0とR3−
1とが半加算器15−0に入力され、R3−28とR3
−29が半加算器15−14に入力され、R3−30と
R3−31が半加算器15−15に入力される。なお、
第3図のようにレジスタ2bのデータを2ビット毎に区
切って区切られた2ビットの中の′1゛の個数を対応す
る半加算器で求める代わりに、レジスタ2bのデータを
3ビット毎に区切って区切られた3ビットの中の°1゛
の個数を対応する3入力の桁上げ加算器で求めることも
可能である。
半加算器15−0ないし15−15から出力されるキャ
リィのビットOはAND回路16−2に入力され、キャ
リィのビット1はAND回路16−3に入力され、キャ
リィのビット14はAND回路16−16に入力され、
キャリィのビット15はAND回路16−17に入力さ
れる。AND回路16−2ないし16−17は、ポピユ
レーション・カウント命令の場合に開く。
リィのビットOはAND回路16−2に入力され、キャ
リィのビット1はAND回路16−3に入力され、キャ
リィのビット14はAND回路16−16に入力され、
キャリィのビット15はAND回路16−17に入力さ
れる。AND回路16−2ないし16−17は、ポピユ
レーション・カウント命令の場合に開く。
AND回路17−2−1ないし17−17は乗算命令の
場合に開く。AND回路18−2−1ないし18−16
−2も同様である。AND回路17−2−1には十CA
ND−0(被乗数のビット0)と62+1とが入力され
、AND回路17−2−2には−CAND−0とG2−
1とが入力され、AND回路17−3−1には十〇AN
D−2と63+1とが入力され、AND回路17−3−
2には一〇AND2と63−1とが入力され、AND回
路17−16−1には十CAND−28とG16 +1
とが入力され、AND回路17−16−2には−CAN
D−28とG16−1とが入力され1、AND回路17
−17には十CAND−30とG17 +1とが入力さ
れる。AND回路1B−2−1には十CAND−1と6
2+2とが入力され、AND回路18−2−2には−C
AND−1と62−2とが入力され、AND回路18−
3−1には十〇AND−3と63+2とが入力され、A
ND回路18−3−2には−CAND〜3と63−2と
が入力され、AND回路18−16−1には十〇AND
−29とG16 +2とが入力され、AND回路18−
16−2には一〇AND−29とG16−2とが入力さ
れる。
場合に開く。AND回路18−2−1ないし18−16
−2も同様である。AND回路17−2−1には十CA
ND−0(被乗数のビット0)と62+1とが入力され
、AND回路17−2−2には−CAND−0とG2−
1とが入力され、AND回路17−3−1には十〇AN
D−2と63+1とが入力され、AND回路17−3−
2には一〇AND2と63−1とが入力され、AND回
路17−16−1には十CAND−28とG16 +1
とが入力され、AND回路17−16−2には−CAN
D−28とG16−1とが入力され1、AND回路17
−17には十CAND−30とG17 +1とが入力さ
れる。AND回路1B−2−1には十CAND−1と6
2+2とが入力され、AND回路18−2−2には−C
AND−1と62−2とが入力され、AND回路18−
3−1には十〇AND−3と63+2とが入力され、A
ND回路18−3−2には−CAND〜3と63−2と
が入力され、AND回路18−16−1には十〇AND
−29とG16 +2とが入力され、AND回路18−
16−2には一〇AND−29とG16−2とが入力さ
れる。
AND回路16−2.17−2.18−2の出力は桁上
げ加算器5の入力端子G2−30に印加され、AND回
路16−3.17−3.18−3の出力は桁上げ加算器
5の入力端子G3−30に印加され、AND回路16−
16.17−16.18−16の出力は桁上げ加算器5
の入力端子G16−30に印加され、AND回路16−
17.17−17の出力は桁上げ加算器5の入力端子G
17−30に印加される。
げ加算器5の入力端子G2−30に印加され、AND回
路16−3.17−3.18−3の出力は桁上げ加算器
5の入力端子G3−30に印加され、AND回路16−
16.17−16.18−16の出力は桁上げ加算器5
の入力端子G16−30に印加され、AND回路16−
17.17−17の出力は桁上げ加算器5の入力端子G
17−30に印加される。
半加算器15−Oないし15−15から出力されるサム
のビットOはAND回路19−2に入力され、サムのビ
ット14はAND回路19−16に入力され、サムのビ
ット15はAND回路19−17に入力される。AND
回路19−2ないし19−17は、ポピユレーション・
カウント命令の場合に開く。
のビットOはAND回路19−2に入力され、サムのビ
ット14はAND回路19−16に入力され、サムのビ
ット15はAND回路19−17に入力される。AND
回路19−2ないし19−17は、ポピユレーション・
カウント命令の場合に開く。
AND回路20−2−1ないし20−17は乗算命令の
場合に開く。AND回路21−1ないし21−16−2
も同様である。AND回路20−2−1には十CAND
−1と62+1とが入力され、AND回路20−2−2
には−CAND:4 とG2−1とが入力され、AND
回路20−16−1には+CAND−29とG16+1
とが入力され、AND回路20−16−2には−CA
ND−29とG16−1とが入力され、AND回路20
−17には十CAND−31とG17 +1 とが入力
される。AND回路21−1には−CAND−0とG1
−2とが入力され、AND回路21−2−1には十CA
ND−2と62÷2とが入力され、AND回路21−2
−2には−CAND−2とG2−2とが入力され、AN
D回路21−16−1には十CAND−30とG16+
2とが入力され、AND回路21−16−2には−CA
ND−30とG16−2とが入力される。
場合に開く。AND回路21−1ないし21−16−2
も同様である。AND回路20−2−1には十CAND
−1と62+1とが入力され、AND回路20−2−2
には−CAND:4 とG2−1とが入力され、AND
回路20−16−1には+CAND−29とG16+1
とが入力され、AND回路20−16−2には−CA
ND−29とG16−1とが入力され、AND回路20
−17には十CAND−31とG17 +1 とが入力
される。AND回路21−1には−CAND−0とG1
−2とが入力され、AND回路21−2−1には十CA
ND−2と62÷2とが入力され、AND回路21−2
−2には−CAND−2とG2−2とが入力され、AN
D回路21−16−1には十CAND−30とG16+
2とが入力され、AND回路21−16−2には−CA
ND−30とG16−2とが入力される。
AND回路21−1の出力は桁上げ加算器5の入力端子
G1−31に印加され、AND回路19−2.20−2
.21−2の出力は桁上げ加算器5の入力端子G2−3
1に印加され、AND回路19−16.20−16.2
1−16の出力は桁上げ加算器5の入力端子G16−3
1に印加され、AND回路19−17.20−17の出
力は桁上げ加算器5の入力端子G17−31に印加され
る。
G1−31に印加され、AND回路19−2.20−2
.21−2の出力は桁上げ加算器5の入力端子G2−3
1に印加され、AND回路19−16.20−16.2
1−16の出力は桁上げ加算器5の入力端子G16−3
1に印加され、AND回路19−17.20−17の出
力は桁上げ加算器5の入力端子G17−31に印加され
る。
第6図は通常の乗算における加算方法を模式的に示した
図である。倍数ゲートG1+1がオンである場合にはレ
ジスタ2bの被乗数はそのまま、61−1がオンである
場合は反転されて桁上げ加算器5に入力され、倍数ゲー
) G1+2がオンである場合にはレジスタ2bの被乗
数は1ビット左シフトして桁上げ加算器5に入力され、
G1−2オンである場合は1ビット左シフトして、さら
に反転されたデータが入力され、倍数ゲートG2+1が
オンである場合にはレジスタ2bの被乗数は2ビット左
シフトして桁上げ加算器5に入力され、62〜1がオン
の場合は2ビット左シフトして、さらに反転されたデー
タが入力され、倍数ゲー) G2+2がオンである場合
にはレジスタ2bの被乗数は3ビット左シフトして桁上
げ加算器5に入力され、G−2−2がオンである場合に
は3ビット左シフトして、さらに反転されたデータが入
力される。以下、図示の通りである。
図である。倍数ゲートG1+1がオンである場合にはレ
ジスタ2bの被乗数はそのまま、61−1がオンである
場合は反転されて桁上げ加算器5に入力され、倍数ゲー
) G1+2がオンである場合にはレジスタ2bの被乗
数は1ビット左シフトして桁上げ加算器5に入力され、
G1−2オンである場合は1ビット左シフトして、さら
に反転されたデータが入力され、倍数ゲートG2+1が
オンである場合にはレジスタ2bの被乗数は2ビット左
シフトして桁上げ加算器5に入力され、62〜1がオン
の場合は2ビット左シフトして、さらに反転されたデー
タが入力され、倍数ゲー) G2+2がオンである場合
にはレジスタ2bの被乗数は3ビット左シフトして桁上
げ加算器5に入力され、G−2−2がオンである場合に
は3ビット左シフトして、さらに反転されたデータが入
力される。以下、図示の通りである。
ポピユレーション・カウント命令の場合には次のように
なる。倍数ゲートGl、 G2.・・・、G17毎に入
力端子が桁上げ加算器5に設けられているとすると、桁
上げ加算器12から出力されるサムのビット0は入力端
子G1の重み23tのビット位置に印加され、桁上げ加
算器12から出力されるキャリィのビットOは入力端子
G1の重み233のビット位置に印加される。また、桁
上げ加算器12から出力されるサムのビット1は入力端
子G2の重み2°のビット位置に印加され、桁上げ加算
器12から出力されるキャリィのビット0は入力端子G
2の重み233のビット位置に印加される。以下、図示
の通りである。各入力端子Gl、G2.・・・、G17
における重み232のビット位置及び重み233のビッ
ト位置のデータは、桁上げ加算器5で加算される。この
加算結果は、レジスタ2bのデータの中にある‘1’の
ビットの個数を表している。
なる。倍数ゲートGl、 G2.・・・、G17毎に入
力端子が桁上げ加算器5に設けられているとすると、桁
上げ加算器12から出力されるサムのビット0は入力端
子G1の重み23tのビット位置に印加され、桁上げ加
算器12から出力されるキャリィのビットOは入力端子
G1の重み233のビット位置に印加される。また、桁
上げ加算器12から出力されるサムのビット1は入力端
子G2の重み2°のビット位置に印加され、桁上げ加算
器12から出力されるキャリィのビット0は入力端子G
2の重み233のビット位置に印加される。以下、図示
の通りである。各入力端子Gl、G2.・・・、G17
における重み232のビット位置及び重み233のビッ
ト位置のデータは、桁上げ加算器5で加算される。この
加算結果は、レジスタ2bのデータの中にある‘1’の
ビットの個数を表している。
第7図は4個の乗算単位から出力される“1゛の個数の
求め方を説明する図である。同図において、R2CAN
Dはレジスタ2aの被乗数データ、R3IERはレジス
タ2bの乗数データ、CUは被乗数データの上位4バイ
ト、CLは被乗数データの下位4バイト、IUは乗数デ
ータの上位4バイト、ILは乗数データの下位4バイト
をそれぞれ示す。
求め方を説明する図である。同図において、R2CAN
Dはレジスタ2aの被乗数データ、R3IERはレジス
タ2bの乗数データ、CUは被乗数データの上位4バイ
ト、CLは被乗数データの下位4バイト、IUは乗数デ
ータの上位4バイト、ILは乗数データの下位4バイト
をそれぞれ示す。
CUX I Uは乗算単位Aから出力され、CUXIL
は乗算単位Bから出力され、CLXIUは乗算単位Cか
ら出力され、CLXILは乗算単位りから出力さる。C
UX IUは21F?ないし264の重みを持ち、CL
X I Uは29%ないし232の重みを持ち、CUX
ILも29%ないし23zの重みを持ち、CLX I
Lは2 h3ないし2°の重みを持つ。
は乗算単位Bから出力され、CLXIUは乗算単位Cか
ら出力され、CLXILは乗算単位りから出力さる。C
UX IUは21F?ないし264の重みを持ち、CL
X I Uは29%ないし232の重みを持ち、CUX
ILも29%ないし23zの重みを持ち、CLX I
Lは2 h3ないし2°の重みを持つ。
CUXIU、CLXIU、CUXIL及びCLXILの
和は、桁上げ保存加算器8と桁上げ先見加算器9によっ
て求められる。
和は、桁上げ保存加算器8と桁上げ先見加算器9によっ
て求められる。
ポピユレーション・カウント命令の場合、CLXILの
ビット26ないし31は乗数レジスタの下位4バイトの
中にある“1゛の個数を示し、CUXILのビット26
ないし31も乗数レジスタの下位4バイトの中にある“
1′の個数を示し、CLXIUのビット26ないし31
は乗数レジスタの上位4バイトの中にある1′の個数を
示し、CUX I Uのビット26ないし31も乗数レ
ジスタの上位4バイトの中にある1′の個数を示す。
ビット26ないし31は乗数レジスタの下位4バイトの
中にある“1゛の個数を示し、CUXILのビット26
ないし31も乗数レジスタの下位4バイトの中にある“
1′の個数を示し、CLXIUのビット26ないし31
は乗数レジスタの上位4バイトの中にある1′の個数を
示し、CUX I Uのビット26ないし31も乗数レ
ジスタの上位4バイトの中にある1′の個数を示す。
ポピユレーション・カウント命令の場合、乗算単位A、
B、C,Dの出力の加算結果をそのまま出力すると、加
算結果の中には8バイト・データの中の°1°の個数が
重複して存在することになる。
B、C,Dの出力の加算結果をそのまま出力すると、加
算結果の中には8バイト・データの中の°1°の個数が
重複して存在することになる。
このため、加算結果のビット26ないし31を強制的に
“0′にし、加算結果の上位8バイトだけを出力する。
“0′にし、加算結果の上位8バイトだけを出力する。
第2図の実施例におけるポピユレーション・カウント命
令の実行手順を説明する。
令の実行手順を説明する。
■ ベクトル・レジスタ1から乗数データをレジスタ1
bにセットする。
bにセットする。
■ レジスタ1bの上位4バイトをレジスタ2b。
2fにそれぞれセットし、レジスタ1bの下位4バイト
をレジスタ2d、2hにそれぞれセットする。
をレジスタ2d、2hにそれぞれセットする。
■ 分割された4バイト(32ビット)のデータを更に
任意の16ビット毎の2群に分け、16ビット幅の半加
算器で16ビットずつのサムと・キャリィを得る。この
とき、乗数レジスタ2bからデコーダ3に至るルートは
抑止される。
任意の16ビット毎の2群に分け、16ビット幅の半加
算器で16ビットずつのサムと・キャリィを得る。この
とき、乗数レジスタ2bからデコーダ3に至るルートは
抑止される。
■ 半加算器の出力はセレクタ41を介して桁上げ保存
加算器5に入力される。
加算器5に入力される。
■ 桁上げ保存加算器59桁上げ先見加算器6で加算す
ると、4バイト・データに対する“1゛の個数が出てく
る。
ると、4バイト・データに対する“1゛の個数が出てく
る。
■ 乗算単位A、B、C,Dはそれぞれ並行して動作し
、レジスタ7a、7cにはレジスタ1bの上位4バイト
の“1゛の個数がセットされ、レジスタ7b、7dには
レジスタ1bの下位4バイトの“1“の個数がセットさ
れる。レジスタ7a、7b、7c、7dのデータは、ソ
レソれビットの重みを考慮して桁上げ保存加算器8゜桁
上げ先見加算器9で加算され、ビット0ないしとット1
27の加算結果が出力されるが、ビット26ないしビッ
ト31のデータに“Ooをセットし、ビットOなしビッ
ト63のデータがポピユレーション・カウント結果とし
て出力される。
、レジスタ7a、7cにはレジスタ1bの上位4バイト
の“1゛の個数がセットされ、レジスタ7b、7dには
レジスタ1bの下位4バイトの“1“の個数がセットさ
れる。レジスタ7a、7b、7c、7dのデータは、ソ
レソれビットの重みを考慮して桁上げ保存加算器8゜桁
上げ先見加算器9で加算され、ビット0ないしとット1
27の加算結果が出力されるが、ビット26ないしビッ
ト31のデータに“Ooをセットし、ビットOなしビッ
ト63のデータがポピユレーション・カウント結果とし
て出力される。
以上の説明から明らかなように、本発明によれば、乗算
装置に比較的少ないハードウェアを追加するだけでポピ
ユレーション・カウント命令を実行することが出来る。
装置に比較的少ないハードウェアを追加するだけでポピ
ユレーション・カウント命令を実行することが出来る。
第1図は本発明の原理図、第2図は本発明の一実施例の
ブロック図、第3図は本発明の要部の詳細の例を示すブ
ロック図、第4図は第1のセレクタの構成例を示す図、
第5図は第2のセレクタの構成例を示す図、第6図は通
常の乗算における加算方法を模式的に説明する図、第7
図は4個の乗算単位から出力される“1゛の個数の和の
求め方を説明するための図、第8図は従来のポピユレー
ション・カウント命令の実行回路の例を示す図、第9図
は第8図の実行回路におけるポピユレーション・カウン
ト命令の処理手順を示す図である。 1・・・ベクトル・レジスタ、1aと1b・・・レジス
タ、2aないし2h・・・レジスタ、3・・・デコーダ
、4・・・倍数発生器、41・・・セレクタ、5・・・
桁上げ先見加算器、6・・・桁上げ保存加算器、7aな
いし7d・・・レジスタ、8・・・桁上げ保存加算器、
9・・・桁上げ先見加算器、19・・・ポスト・シフタ
、lla・・・レジスタ、llb・・・レジスタ、Aな
いしD・・・乗算単位。 特許出願人 富士通株式会社 代理人弁理士 京 谷 四 部 鵡4飼 %4図 R2CAND (2u CL=
]R3IER「■「Tコ=コ [==]]]x=] cL\工し [ピ]Iて=■==] こUx工工法41固のti
LILつ゛ら出力ごれう′1′のイ固較の禾oのfめ芳
%7図 データ(8バイト) 姥8図
ブロック図、第3図は本発明の要部の詳細の例を示すブ
ロック図、第4図は第1のセレクタの構成例を示す図、
第5図は第2のセレクタの構成例を示す図、第6図は通
常の乗算における加算方法を模式的に説明する図、第7
図は4個の乗算単位から出力される“1゛の個数の和の
求め方を説明するための図、第8図は従来のポピユレー
ション・カウント命令の実行回路の例を示す図、第9図
は第8図の実行回路におけるポピユレーション・カウン
ト命令の処理手順を示す図である。 1・・・ベクトル・レジスタ、1aと1b・・・レジス
タ、2aないし2h・・・レジスタ、3・・・デコーダ
、4・・・倍数発生器、41・・・セレクタ、5・・・
桁上げ先見加算器、6・・・桁上げ保存加算器、7aな
いし7d・・・レジスタ、8・・・桁上げ保存加算器、
9・・・桁上げ先見加算器、19・・・ポスト・シフタ
、lla・・・レジスタ、llb・・・レジスタ、Aな
いしD・・・乗算単位。 特許出願人 富士通株式会社 代理人弁理士 京 谷 四 部 鵡4飼 %4図 R2CAND (2u CL=
]R3IER「■「Tコ=コ [==]]]x=] cL\工し [ピ]Iて=■==] こUx工工法41固のti
LILつ゛ら出力ごれう′1′のイ固較の禾oのfめ芳
%7図 データ(8バイト) 姥8図
Claims (1)
- 【特許請求の範囲】 被乗数レジスタ(2a)と、 乗数レジスタ(2b)と、 該乗数レジスタ(2b)から取り出された乗数データを
デコードするデコーダ(3)と、上記デコーダ(3)の
デコード結果に基づいて、被乗数の倍数データを生成す
る倍数発生器(4)と、該倍数発生器(4)からの倍数
データを入力とする複数段から成る第1の桁上げ保存加
算器(5)と、該第1の桁上げ保存加算器(5)からの
出力を入力とする桁上げ先見加算器(6)と を具備する乗算装置において、 上記乗数レジスタ(2b)の中から取り出された乗数デ
ータをデコードするデコーダ(3)とは独立に、該乗数
データを2ビット毎または3ビット毎に分割してビット
対応の加算を行う2入力または3入力の第2の桁上げ保
存加算器(12)を設けるとともに、 上記倍数発生器(4)からの倍数データを入力とする複
数段からなる第1の桁上げ保存加算器(5)の入力段に
、セレクタ(41)を設け、 データの中の‘1’のビットの個数を計数するための所
定の命令が発行された場合に、 上記倍数発生器(4)からの倍数データを抑止し、上記
セレクタ(41)によって上記第2の桁上げ保存加算器
(12)からのキャリィ出力(12a)とサム出力(1
2b)とを選択して上記第1の桁上げ保存加算器(5)
に入力し、該第1の桁上げ保存加算器(5)の出力を入
力とする桁上げ先見加算器(6)で加算する ことを特徴とする乗算装置。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63010091A JPH01185725A (ja) | 1988-01-20 | 1988-01-20 | 乗算装置 |
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 |
DE3854321T DE3854321T2 (de) | 1987-11-30 | 1988-11-30 | Populationszählung in Rechnersystemen. |
EP88119983A EP0318957B1 (en) | 1987-11-30 | 1988-11-30 | Population counting in computer systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63010091A JPH01185725A (ja) | 1988-01-20 | 1988-01-20 | 乗算装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH01185725A true JPH01185725A (ja) | 1989-07-25 |
Family
ID=11740663
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63010091A Pending JPH01185725A (ja) | 1987-11-30 | 1988-01-20 | 乗算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH01185725A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100351507B1 (ko) * | 2000-09-14 | 2002-09-05 | 한국과학기술연구원 | 실시간 제어용 공기조화 장치 및 그 제어방법 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62209621A (ja) * | 1986-03-11 | 1987-09-14 | Fujitsu Ltd | 乗算装置 |
-
1988
- 1988-01-20 JP JP63010091A patent/JPH01185725A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62209621A (ja) * | 1986-03-11 | 1987-09-14 | Fujitsu Ltd | 乗算装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100351507B1 (ko) * | 2000-09-14 | 2002-09-05 | 한국과학기술연구원 | 실시간 제어용 공기조화 장치 및 그 제어방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3729881B2 (ja) | 並列加算および平均演算を行うための回路およびその方法 | |
EP0924601B1 (en) | Parallel data processing in a single processor | |
US5299319A (en) | High performance interlock collapsing SCISM ALU apparatus | |
JP2002108606A (ja) | スティッキービット生成回路及び乗算器 | |
JPH05233228A (ja) | 浮動小数点演算装置およびその演算方法 | |
US7827226B2 (en) | Hybrid arithmetic logic unit | |
JPH0823811B2 (ja) | 3オペランド演算論理機構におけるオーバーフローを決定する方法及び算術上のオーバーフローを検出する機構 | |
US5721697A (en) | Performing tree additions via multiplication | |
EP1323031B1 (en) | Single instruction multiple data processing | |
JP2006228190A (ja) | 入力値に逆数演算を実施して結果値を作り出すデータ処理装置および方法 | |
US20040010536A1 (en) | Apparatus for multiplication of data in two's complement and unsigned magnitude formats | |
US6499046B1 (en) | Saturation detection apparatus and method therefor | |
JP5193358B2 (ja) | 多項式データ処理演算 | |
US7260711B2 (en) | Single instruction multiple data processing allowing the combination of portions of two data words with a single pack instruction | |
JPH01185725A (ja) | 乗算装置 | |
JPH10111791A (ja) | 除算装置 | |
JP2000081966A (ja) | 演算装置 | |
JP3286793B2 (ja) | キャリアウトを確定する回路及び方法 | |
KR100315303B1 (ko) | 디지탈 신호 처리기 | |
JP2608090B2 (ja) | 高基数非回復型除算装置 | |
JP3130797B2 (ja) | 積和演算処理方法およびその装置 | |
Senthilvelan et al. | Flexible arithmetic and logic unit for multimedia processing | |
JPS6246369A (ja) | 積和命令実行方式 | |
KR100246472B1 (ko) | 디지탈신호처리기 | |
JPH03256117A (ja) | 乗算器 |