JP2908231B2 - ベクトル演算装置 - Google Patents
ベクトル演算装置Info
- Publication number
- JP2908231B2 JP2908231B2 JP6059530A JP5953094A JP2908231B2 JP 2908231 B2 JP2908231 B2 JP 2908231B2 JP 6059530 A JP6059530 A JP 6059530A JP 5953094 A JP5953094 A JP 5953094A JP 2908231 B2 JP2908231 B2 JP 2908231B2
- Authority
- JP
- Japan
- Prior art keywords
- bit
- data
- bits
- output
- input
- 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
Links
- 238000000034 method Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 230000001186 cumulative effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Description
し、特に、コンピュータ装置に含まれるベクトル演算装
置に関する。
対応しベクトルデータの演算有効または演算無効を判別
するマスクデータに対して、前記マスクデータの先頭か
ら有効ベクトル長で指定されるビット数の各ビットの値
が“1”であるビットの数を数える演算を行う演算装置
は、マスクデータを先頭ビットから1ビットずつ加算カ
ウンタを用いて有効ベクトル長で指定された値だけ累積
加算処理を行い演算結果を算出している。
ル演算装置では、マスクデータを先頭ビットから1ビッ
トずつ加算カウンタを用いて有効ベクトル長で指定され
た値だけ累積加算処理を行い演算結果を算出していたこ
とから演算処理が低速であるという欠点がある。
置は、ベクトルレジスタと、前記ベクトルレジスタのワ
ード数に対応したベクトルデータの演算有効または演算
無効を判別するマスクデータを出力するマスクレジスタ
と、前記マスクレジスタより出力されるマスクデータの
全ビットに対して先頭ビットから有効ベクトル長で指定
された値のビットまでのマスクデータはそのまま出力
し、有効ベクトル長で指定された値のビットから最大有
効長ビットまでのマスクデータは“0”に差し替え出力
する有効ビット判別部と、該有効ビット判別部から出力
された有効ビット判別済みのすべてのマスクデータに対
して値が“1”であるビットの数を計算するビット
“1”カウント演算部とを具備することを特徴とする。
る。
示す構成図および動作説明図である。
作について説明する。ベクトルレジスタに格納されてい
るベクトルデータの有効無効を判別するマスクデータを
格納するマスクレジスタ01は、そのすべてのマスクデー
タをマスクレジスタ出力データ02,03,04,05,06,07,08,0
9,10として有効ビット判別部11内のビット差し替え回路
23へ出力する。
生成回路13は、マスクレジスタ01と同一のビット幅で、
マスクレジスタ01の0番目のビットから有効ベクトル長
12の値の番号のビットまでは“1”を、有効ベクトル長
12の値の番号のビットより以降のビットに対して“0”
を生成し、ビットパタン生成回路出力14,15,16,17,18,1
9,20,21,22としてビット差し替え回路23へ出力する。
トパタン生成回路出力14,15,16,17,18,19,20,21,22の各
ビットの値が“0”となっているビットはマスクレジス
タ出力データ02,03,04,05,06,07,08,09,10の同一のビッ
ト番号のビットの値を“0”に差し替え、ビットパタン
生成回路出力14,15,16,17,18,19,20,21,22の各ビットの
値が“1”となっているビットに対してはマスクレジス
タ出力データ02,03,04,05,06,07,08,09,10の値を差し替
えずビット差し替え回路出力データ24,25,26,27,28,29,
30,31,32として、ビットの値が“1”であるビットの数
を計算するビット“1”カウント演算部33へ出力する。
器群43では、9ビットのビット差し替え回路出力データ
24,25,26,27,28,29,30,31,32を各3ビットに3分割し、
ビット差し替え回路出力データ24,25を2入力データと
しビット差し替え回路出力データ26をキャリィデータと
し1ビット全加算器34へ入力し、ビット差し替え回路出
力データ27,28を2入力データとしビット差し替え回路
出力データ29をキャリィデータとして1ビット全加算器
35へ入力し、ビット差し替え回路出力データ30,31を2
入力データとしてビット差し替え回路出力データ32をキ
ャリィデータとして1ビット全加算器36へ入力する。3
ビットに分割されたビット差し替え回路出力データ24〜
32によって1ビット全加算器34,35,36は10進数で2の
重みを持つキャリィ出力データ37,38,39と、10進数で
1の重みを持つサム出力データ40,41,42を出力する。第
2演算器群46では共に10進数で2の重みを持つキャリ
ィ出力データ37,38,39の内のデータ37,38を2入力デー
タとしキャリィ出力データ39をキャリィデータとして1
ビット全加算器44へ入力し、同様に共に10進数で1の
重みを持つキャリィ出力データ40,41,42の内のデータ4
0,41を2入力データとしキャリィ出力データ42をキャリ
ィデータとして1ビット全加算器45へ入力する。これよ
り1ビット全加算器44は、10進数で4の重みを持つキ
ャリィ出力データ47と、10進数で2の重みを持つサム
出力データ49とを出力し、1ビット全加算器45は、10
進数で2の重みを持つキャリィ出力データ48と、10進
数で1の重みを持つサム出力データを得る。ここで、1
ビット全加算器45より出力されたサム出力データを10
進数で1の重みを持つビットが1ビットのみであること
から演算結果ビット3出力データ50として出力する。第
3演算器群59では10進数で2の重みを持つデータビッ
トがキャリィ出力データ48およびサム出力データ49の2
ビットであることから、キャリィ出力データ48およびサ
ム出力データ49を2入力データとし“0”信号入力51を
キャリィデータとして1ビット全加算器52へ入力する。
キャリィ出力データ48とサム出力データ49の1ビット全
加算器の加算結果として10進数で4の重みを持つキャ
リィ出力データ53を加算器53が出力し、サム出力データ
を10進数で2の重みを持つビットが1ビットのみであ
ることから演算結果ビット2出力データ54として出力す
る。同様にして10進数で4の重みを持つデータビット
がキャリィ出力データ47およびキャリィ出力データ53の
2ビットであることから、キャリィ出力データ47および
キャリィ出力データ53を2入力データとし“0”信号入
力55をキャリィデータとし1ビット全加算器56へ入力す
る。キャリィ出力データ47とキャリィ出力データ53の1
ビット加算器加算結果としてキャリィ出力データを10
進数で8の重みを持つビットが1ビットのみであること
から演算結果ビット0出力データ57として加算器56が出
力し、サム出力データを10進数で4の重みを持つビッ
トが1ビットのみであることから演算結果ビット1出力
データ58として出力する。出力である演算結果ビット0
出力結果57および演算結果ビット1出力データ58および
演算結果ビット2出力データ54および演算結果ビット3
出力データ50を各ビット番号順に並べた演算結果61が各
ビットの値が“1”であるビットの数を数える演算の演
算結果である。
“101110101”で、有効ベクトル長12の値が8
すなわち2進数で“1000”のときのこの実施例の動
作イメージを示す。
路出力データとして“111111110”が出力され
る。
110101”が出力される。
回路出力データで値が“0”であるビットに対応したマ
スクレジスタ出力データのビットを“0”に差し替え
“101110100”をビット差し替え回路出力デー
タとして各3ビットに分割して1ビット全加算器34,35,
36へ出力する。
た各3ビットのデータの演算を行い結果として1ビット
全加算器34ではキャリィ出力“1”、サム出力“0”を
出力し、1ビット全加算器35ではキャリィ出力“1”、
サム出力“0”を出力し、1ビット全加算器36ではキャ
リィ出力“0”、サム出力“1”を出力する。
ットのデータよりキャリィ出力“1”、サム出力“0”
を出力する。同様に1ビット全加算器45では、入力より
キャリィ出力“0”、サム出力“1”を出力する。
44のサム出力“0”と1ビット全加算器45のキャリィ出
力“0”と“0”信号よりキャリィ出力“0”、サム出
力“0”を出力する。
44のキャリィ出力“1”と1ビット全加算器52のキャリ
ィ出力“0”と“0”信号よりキャリィ出力“0”、サ
ム出力“1”を出力する。
サム出力、1ビット全加算器52のサム出力、1ビット全
加算器45のサム出力をビットの重み順に整列させると演
算結果として2進数" 0101”即ち10進数で“5”
を得る。これは、ビット差し替え回路出力のビット
“1”の数である。
マスクデータに対する有効ビット判別動作と、あるビッ
ト幅を持った有効ビット判別済み入力データを任意のビ
ット幅に等分割しそれぞれの等分割データの各ビットの
値が“1”であるビットの数を算出する複数の演算器を
持ち、前記演算器より出力として得られる演算結果に対
する同等の重みを持ったビットを別々にそれぞれ等分割
しそれぞれの等分割データの各ビットの値が“1”であ
るビットの数を出力する複数の演算器に入力していくと
いう処理を階層的に行うことにより、従来の有効ベクト
ル長で指定された値だけ加算カウンタを用いて累積加算
を行う演算処理より高速に演算処理を行うことができ
る。
示す構成図および動作説明図である。
作について説明する。ただし、第1の実施例の同一部分
の説明は省略する。ベクトルレジスタに格納されている
ベクトルデータの有効無効を判別するマスクデータの格
納レジスタであるマスクレジスタ01のすべてのマスクデ
ータをマスクレジスタ出力データ02,03,04,05,06,07,0
8,09,10として有効ビット判別部11内のビット差し替え
回路23へ出力する。
生成回路13では、マスクレジスタ01と同一のビット幅
で、マスクレジスタ01の0番目のビットから有効ベクト
ル長12の値の番号のビットまでは“1”を、有効ベクト
ル長12の値の番号のビットより以降のビットに対して
“0”を生成し、ビットパタン生成回路出力14,15,16,1
7,18,19,20,21,22としてビット差し替え回路23へ出力す
る。
ットパタン生成回路出力14,15,16,17,18,19,20,21,22の
各ビットの値が“0”となっているビットはマスクレジ
スタ出力データ02,03,04,05,06,07,08,09,10の同一のビ
ット番号のビットの値を“0”に差し替え、ビットパタ
ン生成回路出力14,15,16,17,18,19,20,21,22の各ビット
の値が“1”となっているビットに対してはマスクレジ
スタ出力データ02,03,04,05,06,07,08,09,10の値を差し
替えずビット差し替え回路出力データ24,25,26,27,28,2
9,30,31,32としてビットの値が“1”であるビットの数
を計算するビット“1”カウント演算部33へ出力する。
器群43では、9ビットのビット差し替え回路出力データ
24,25,26,27,28,29,30,31,32を各3ビットに3分割し、
ビット差し替え回路出力データ24,25を2入力データと
してビット差し替え回路出力データ26をキャリィデータ
として1ビット全加算器34へ入力し、ビット差し替え回
路出力データ27,28を2入力データとしてビット差し替
え回路出力データ29をキャリィデータとして1ビット全
加算器35へ入力し、ビット差し替え回路出力データ30,3
1を2入力データとしてビット差し替え回路出力データ3
2をキャリィデータとして1ビット全加算器36へ入力す
る。3ビット分割されたビット差し替え回路出力データ
24〜32によって1ビット全加算器34,35,36は10進数で
2の重みを持つキャリィ出力データ37,37,39と、10進
数で1の重みを持つサム出力データ40,41,42を出力す
る。第2演算器群46では共に10進数で2の重みを持つ
キャリィ出力データ37,38,39の内37,38を2入力データ
としてキャリィ出力データ39をキャリィデータとして1
ビット全加算器44へ入力し、同様に共に10進数で1の
重みを持つキャリィ出力データ40,41,42の内40,41を2
入力データとしてキャリィ出力データ42をキャリィデー
タとして1ビット全加算器45へ入力する。これより1ビ
ット全加算器44は10進数で4の重みを持つキャリィ出
力データ47と、10進数で2の重みを持つサム出力デー
タ49を出力し、1ビット全加算器45は10進数で2の重
みを持つキャリィ出力データ48と、10進数で1の重み
を持つサム出力データを出力する。ここで、》1ビット
全加算器45より出力されたサム出力データを、10進数
で1の重みを持つビットが1ビットのみであることから
、演算結果ビット3出力データ50として出力する。ここ
で、1ビット全加算器44からの出力である10進数で4
の重みを持つキャリィ出力データ47と10進数で2の重
みを持つサム出力データ49とをビットの重み順に整列し
2ビットの2進数とし、1ビット全加算器45からの出力
である10進数で2の重みを持つキャリィ出力データ48
を1ビットの2進数として2入力加算器60へ入力する。
2入力加算器60より出力される3ビットの出力データは
演算結果の上位3ビットであることから演算結果ビット
0出力データ56、演算結果ビット1出力データ57、演算
結果ビット2出力データ53を出力する。出力である演算
結果ビット0出力データ56および演算結果ビット1出力
データ57および演算結果ビット2出力データ53および演
算結果ビット3出力データ50を各ビット番号順に並べた
演算結果61が各ビットの値が“1”であるビットの数を
数える演算の演算結果である。
“101110101”で、有効ベクトル長12の値が8
すなわち2進数で“1000”のときの第2の実施例の
動作イメージを示す。ただし、第1の実施例の同一部分
についての説明は省略する。
力“10”と、1ビット全加算器45のキャリィ出力
“0”の2入力データより結果“010”を出力する。
全加算器45のサム出力をビットの重み順に整列させると
演算結果として2進数“0101”即ち10進数で
“5”を得る。これは、ビット差し替え回路出力のビッ
ト“1”の数である。
マスクデータに対する有効ビット判別動作と、あるビッ
ト幅を持った有効ビット判別済み入力データを任意のビ
ット幅に等分割しそれぞれの等分割データの各ビットの
値が“1”であるビットの数を算出する複数の演算器を
持ち、前記演算器より出力として得られる演算結果に対
する同等の重みを持ったビットを別々にそれぞれ等分割
しそれぞれの等分割データの各ビットの値が“1”であ
るビットの数を出力する複数の演算器に入力していくと
いう処理を階層的に行い、演算器出力で演算結果に対し
て上位の重みを持つビットが各2ビットずつとなった階
層で各ビットの重み順にビットを整列させ加算器に入力
し、加算器からの出力結果を各2ビットずつの上位の重
みを持つビットの演算結果として出力することにより、
従来の有効ベクトル長で指定された値だけ加算カウンタ
を用いて累積加算を行う演算処理より高速に演算処理を
行うことができる。
レジスタより出力されるマスクデータの全ビットに対し
て先頭ビットから有効ベクトル長で指定された値のビッ
トまでのマスクデータはそのまま出力し有効ベクトル長
で指定された値のビットから最大有効長ビットまでのマ
スクデータは“0" に差し替え出力する有効ビット判別
部と、有効ビット判別部から出力された有効ビット判別
済みのすべてのマスクデータに対してビットの値が
“1”であるビットの数を計算する演算器を用いること
により、マスクデータ中で先頭から有効クトル長で指定
されるビット数までの内ビットの値が“1”であるビッ
トの数を数える演算を高速に処理することができるとい
う効果を奏する。
ジ図である。
ジ図である。
Claims (3)
- 【請求項1】 ベクトルレジスタと、前記ベクトルレジ
スタのワード数に対応したベクトルデータの演算有効ま
たは演算無効を判別するマスクデータを出力するマスク
レジスタと、前記マスクレジスタより出力されるマスク
データの全ビットに対して先頭ビットから有効ベクトル
長で指定された値のビットまでのマスクデータはそのま
ま出力し、有効ベクトル長で指定された値のビットから
最大有効長ビットまでのマスクデータは“0”に差し替
え出力する有効ビット判別部と、該有効ビット判別部か
ら出力された有効ビット判別済みのすべてのマスクデー
タに対して値が“1”であるビットの数を計算するビッ
ト“1”カウント演算部とを具備することを特徴とする
ベクトル演算装置。 - 【請求項2】 あるビット幅を持った入力データを任意
のビット幅に等分割して入力されそれぞれの入力データ
の各ビットの値が“1”であるビットの数を算出する複
数の加算演算器を有する第1演算器群と、該第1演算器
群より出力として得られる演算結果データで同等の重み
を持ったビットを別々にそれぞれ等分割して入力され該
等分割データの各ビットの値が“1”であるビットの数
を出力する第2演算器群と、該第2演算器群の演算結果
に対して同等の重みを持ったビットが1ビットのみとな
るまで該第2演算器群を階層的に構成することにより
、前記階層的に構成された前記第2演算器の前記出力
データを各ビットの重み順にビットを整列し演算結果と
して出力する処理を行う前記ビット“1”カウント演算
部とを具備することを特徴とする請求項1記載のベクト
ル演算装置。 - 【請求項3】 前記ビット“1”カウント演算部が、あ
るビット幅を持った入力データを任意のビット幅に等分
割し入力されそれぞれの入力データの各ビットの値が
“1”であるビットの数を算出する複数の加算演算器を
有する第1演算器群と、該第1演算器群より出力として
得られる演算結果データで同等の重みを持ったビットを
別々にそれぞれ等分割して入力され該等分割データの各
ビットの値が“1”であるビットの数を出力する第2演
算器群と、該第2演算器群の演算結果に対して同等の重
みを持ったビットが各2ビット以下となるまで該第2の
演算器群を階層的に構成し、該第2演算器群より出力さ
れる演算結果に対して同等の重みを持ったビットをそれ
ぞれの重み順に整列して入力され演算結果を出力する処
理を行う2入力加算器とを具備することを特徴とする請
求項1記載のベクトル演算装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6059530A JP2908231B2 (ja) | 1994-03-29 | 1994-03-29 | ベクトル演算装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP6059530A JP2908231B2 (ja) | 1994-03-29 | 1994-03-29 | ベクトル演算装置 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH07271765A JPH07271765A (ja) | 1995-10-20 |
| JP2908231B2 true JP2908231B2 (ja) | 1999-06-21 |
Family
ID=13115926
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP6059530A Expired - Fee Related JP2908231B2 (ja) | 1994-03-29 | 1994-03-29 | ベクトル演算装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP2908231B2 (ja) |
-
1994
- 1994-03-29 JP JP6059530A patent/JP2908231B2/ja not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JPH07271765A (ja) | 1995-10-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5500812A (en) | Multiplication circuit having rounding function | |
| JP3244506B2 (ja) | 小型乗算器 | |
| EP0328063B1 (en) | Absolute value calculating circuit having a single adder | |
| CA1231455A (en) | Nonrestoring divider | |
| US5734599A (en) | Performing a population count using multiplication | |
| KR970006408B1 (ko) | 논리회로의 자동설계방법 및 그 장치와 승산기 | |
| KR100627993B1 (ko) | 3입력 분할 가산기 | |
| JP2908231B2 (ja) | ベクトル演算装置 | |
| US6151616A (en) | Method and circuit for detecting overflow in operand multiplication | |
| CA1323106C (en) | Method and apparatus for a parallel carry generation adder | |
| JPH0464091B2 (ja) | ||
| US7051062B2 (en) | Apparatus and method for adding multiple-bit binary-strings | |
| US5903484A (en) | Tree circuit | |
| US5781465A (en) | Method and apparatus for fast carry generation detection and comparison | |
| GB2127187A (en) | Circuits for operating on N- digit operands | |
| JPH056263A (ja) | 加算器およびその加算器を用いた絶対値演算回路 | |
| US6631393B1 (en) | Method and apparatus for speculative addition using a limited carry | |
| JP2710412B2 (ja) | 乗除算回路 | |
| KR20060078258A (ko) | 가변 진법 나눗셈 연산기 | |
| JP3482102B2 (ja) | 絶対値距離演算回路 | |
| US6748411B1 (en) | Hierarchical carry-select multiple-input split adder | |
| RU205198U1 (ru) | Параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде | |
| RU2753184C1 (ru) | Параметризуемый однотактный умножитель двоичных чисел с фиксированной точкой в прямом и дополнительном коде | |
| JPS6227864A (ja) | 累算回路 | |
| KR950015180B1 (ko) | 고속연산형 가산기 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 19990223 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080402 Year of fee payment: 9 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090402 Year of fee payment: 10 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100402 Year of fee payment: 11 |
|
| LAPS | Cancellation because of no payment of annual fees |