JP2948378B2 - 重力多体系および電気力多体系用相互作用力計算用処理装置 - Google Patents
重力多体系および電気力多体系用相互作用力計算用処理装置Info
- Publication number
- JP2948378B2 JP2948378B2 JP27657291A JP27657291A JP2948378B2 JP 2948378 B2 JP2948378 B2 JP 2948378B2 JP 27657291 A JP27657291 A JP 27657291A JP 27657291 A JP27657291 A JP 27657291A JP 2948378 B2 JP2948378 B2 JP 2948378B2
- Authority
- JP
- Japan
- Prior art keywords
- logarithmic
- output
- flag
- value
- bit
- 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 - Lifetime
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02E—REDUCTION OF GREENHOUSE GAS [GHG] EMISSIONS, RELATED TO ENERGY GENERATION, TRANSMISSION OR DISTRIBUTION
- Y02E60/00—Enabling technologies; Technologies with a potential or indirect contribution to GHG emissions mitigation
- Y02E60/10—Energy storage using batteries
Landscapes
- Complex Calculations (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Description
いながら運動している多数の星から構成される天体の様
な重力多体系や、互いに電気力を及ぼしあいながら運動
する多数のプラズマ粒子やタンパク質分子中の原子から
なる電気力多体系において、ある粒子が他の粒子から受
ける力およポテンシャルを計算するための専用処理装置
に関するものである。
るたくさんの粒子からなる系である。銀河や球状星団な
どの多くが重力多体系とみなすことができる。重力多体
系はニュートンの運動方程式と万有引力(重力)だけに
支配される極めて単純な系でもあるにかかわらず、非線
形性に富んだ奇妙な振る舞いをすることが多い。3体以
上の場合は解析解が無いので数値計算を行う必要がある
が、大変な計算量を伴う。重力は遠方まで届くため、N
個の粒子の移動を計算するためにはN×(N−1)/2
個のペアに働く相互作用を全て考慮せねばならない。従
来は、重力および重力ポテンシャル計算をソフトウェア
で記述し、スーパーコンピュータ上で計算していた。
Nが大きいとその計算量は膨大になり現在最高のスーパ
ーコンピュータをもってしても数万体の計算が限度であ
る。一方、重力多体系の3次元構造を明らかにするため
には、最低数百万体の粒子の相互作用の数値計算をしな
ければならないが、現状のスーパーコンピュータでは計
算能力が全く足りないという、根本的問題がある。同様
の問題は、強結合プラズマや、強い不安定性が存在する
希薄プラズマや、タンパク質分子の3次元構造の解析の
分野においても存在する。また、スーパーコンピュータ
は極めて高価であるので、上記計算を行うにしても極め
て高価なものとなる。
ポテンシャルの計算、あるいは、電気力多体系における
電気力と電気力ポテンシャルを、スーパーコンピュータ
とほぼ同程度のスピードで計算し、かつ、スーパーコン
ピュータよりもはるかに安い価格の、処理装置を提供す
るものである。
うに、一つの集積回路1上に、相対位置計算手段2と、
相対距離計算手段3と、1/2乗手段4と、3/2乗手
段5と、対数表現除算手段6aと、対数表現除算手段6
bと、3個の相互作用力計算手段7a,7b,7cと、
ポテンシャル計算手段8と、4個の固定小数点表現変換
手段9a,9b,9c,9dと、4組の積算用加算手段
10a, 10b,10c,10dと積算値レジスタ手
段11a,11b,11c,11dと、積算値レジスタ
手段11の内容を0にする手段と、積算値レジスタ手段
11の内容をホールドする手段と、外部バスインターフ
ェース手段15と、4つのパイプラインレジスタ19
a,19b,19c,19dから構成されている。前記
相対位置計算手段2は、成分差計算手段20a,20
b,20c及び3次元座標用レジスタ手段21a,21
b,21cを備えている。
2点の座標データのうち一方(Xj,Yj,Zj)は集
積回路1の外部より毎サイクル供給され、もう一方の座
標データ(Xi,Yi,Zi)は外部バス13および内
部バス12aを介し相対位置計算手段2内部のXi,Y
i,Zi用レジスタ手段21に格納されている。相対位
置計算手段2ではXi−Xj,Yi−Yj,Zi−Zj
を求め、それぞれ対数表現のXij,Yij,Zijに
変換する。相対距離計算手段3は、外部バス13および
内部バス12aを介して書き込まれる内部レジスタ46
の値eとXij,Yij,Zijから r2=Xij**2+Yij**2+Zij**2+e**2 を求め、出力する。なお、eは定数である。1/2乗手
段4はr=r2**(1/2)を求める。3/2乗手段
5はrとr2の積をとることによりr3=r2**(3
/2)を求める。集積回路1の外部より、予め対数表現
で表現されたMjが毎サイクル供給される。なお、Mj
は質量或いは電荷である。二つの対数表現除算手段6a
と6bは、それぞれ、Mj/r3とMj/rを求める。
三つの相互作用力計算手段7a,7b,7cは前記Mj
/r3とそれぞれXij,Yij,Zijの積、すなわ
ち、Xij*(Mj/r3),Yij*(Mj/r
3),Zij*(Mj/r3)を計算する。ポテンシャ
ル計算手段8は定数uとMj/rからu*(Mj/r)
を計算する。固定小数点変換手段9a,9b,9cは、
それぞれ、対数表現のXij*(Mj/r3),Yij
*(Mj/r3),Zij*(Mj/r3)を固定小数
点表現に変換する。固定小数点変換手段9dは対数表現
のu*(Mj/r)を固定小数点表現に変換する。積算
用加算手段10a,10b,10c,10dは、それぞ
れ、固定小数点表現に変換された前記4つの値とそれ以
前のそれぞれの積算値が入っている積算値レジスタ手段
11a,11b,11c,11dの値と足しあわせ、そ
の結果はそれぞれ積算値レジスタ手段11a,11b,
11c,11dに書き込まれる。また積算値レジスタ手
段11の内容は内部バス12bおよび外部バス13を使
い集積回路1の外部に読み出すことができる。
れている。このため、データ間の遅延の差をあわせるた
めのパイプラインレジスタ19a,19b,19c,1
9dがある。遅延されるデータはXij,Yij,Zi
j,Mjである。
する。ビット長lの2進数pが実数 x=2**(p/f) ...(式5) を表すものとする。ここでfは定数で、 f=2**m ...(式6) と表せるものとする。このmを小数語長と呼ぶことにす
る。もとのビットパターンを小数部語長mビットの符号
なし固定小数点表示と見たときの値をyとすると、 p=y*f ...(式7) 従って、 x=2**y ...(式8) なる関係が成り立つ。この表現形式により、1以上2*
*(2**(1−m))未満の範囲の実数を相対間隔2
**(−(2**m))で表現することになる。実施例
においては、ビット長l=12、そのうち小数部語長m
=5ビットという形式を用いている。従って、ビットパ
ターン0x000(0xは、これに続く3桁の数が0〜
Fの16進数であることを示している)は1、ビットパ
ターン0x001は2**(1/32)、ビットパター
ン0xFFFは2**(127+(31/32))を表
すことになる。この12ビットを対数表現のビット[1
1:0]に割当てる。なお、ビット[11:0]はビッ
ト0からビット11までの12ビットからなるデータを
意味する。この形式では正の値しか表現できない。そこ
で、符号にもう1ビット、0か否かを示すのにもう1ビ
ット使う、前者のビットを符号フラグとよび、対数表現
のビット12に割当てる。後者のビットが1であれば対
数表現で表現される値は0ではないとする。このビット
のことを非ゼロフラグとよび、対数表現のビット13に
割当てる。したがって、実施例では対数表現を合計14
ビットで表している。
構成は図1に示されている。
ビットで、固定小数点で表現されている。入力Mjは1
4ビット幅で対数表現で表されている。外部バス13
は、3ビット幅のレジスタアドレスA[2:0]と28
ビット幅のデータバスD[27:0]と制御信号である
CS(チップセレクト)、OE(アウトプットエネーブ
ル)、WE(ライトイネーブル)から構成されている。
PC (パイプラインコントロール) 14は、集積回路
1の演算可を示す1ビットの入力信号である。NB 1
6は、2点間の距離が定数hよりも小さい場合を検出す
る1ビットの出力信号である。このNB 16は、相互
作用力やポテンシャルが大きくなってオーバーフロー等
を生じ得る場合を検出するのに使用される。
ータを伝える内部バス12aと、外部バス13にデータ
を出力するための内部バス12bから構成される。
関して同じ処理を行うために3個の処理手段を持ってい
るが、それらの内容は同等なので、ここではX成分用の
ものについてのみ説明する。
ある。これはラッチで構成されている。これは外部バス
13から内部バス12aを介して書き込まれる。このレ
ジスタ手段21は20ビット長で固定小数点表現の値が
入る。書き込みの為のラッチの制御は外部バスインター
フェース手段15によって行われる。
す。集積回路1の外部より供給されるXj[19:0]
と、Xiレジスタ手段21aより供給されるXi[1
9:0]は、20ビット減算器29aに与えられ、差X
j−Xiは20ビット幅のD型フリップフロップ(以下
DFFと略す)36aに入力する。DFF 36aの出
力をXD[19:0]とする。このMSBであるXD
[19]はXj−Xiの符号を表している。20ビット
幅減算器29bで0−XDを求めておき、XD[19]
で19ビット幅のマルチプレクサ31を制御し、Xj−
Xiの絶対値を得る。つまり、Xj−Xiが0もしくは
正ならばXD[19]は0となりマルチプレクサ31は
XD[18:0]を出力し、そうでなければXD[1
9]は1でマルチプレクサ31は減算器20bの出力す
なわちXi−Xjを出力し、DFF 36cに与える。
XD[19]は1ビット幅のDFF 36b,36e,
36h,36lを経て対数表現の符号フラグであるXi
j[12]となる。DFF 36cの出力はDFF 3
6fの入力となるほか、コンパレータ35aに与えら
れ、コンパレータ35aで0との比較を行い19ビット
全てが0ならば0をそうではないならば1を出力し、D
FF 36d,36g,36kを経て対数表現の非ゼロ
フラグであるXij[13]として出力する。
次に述べるようにして対数表現に変換される。
32はプライオリティエンコーダとして動作し、xa
[18:0]を入力し、表1に示す様に入力xa[1
8:0]を出力xe[4:0]に変換する。表1におい
て“x“は0と1のどちらでもよいことを示す。
ビットが、シフタ33の出力のMSBに現れるように、
PLA 32はシフタ制御信号sc[4:0]をも発生
し、シフタ33を制御する。ただし、ここで、シフタ3
3はxa[18:0]が全ビット0ならばシフタ33の
出力は全ビット0となるよう、また、シフトイン部分は
常に0となるようになっている。シフタ33の出力は1
9ビット幅のDFF 36iに与えられ、その出力をx
m[18:0]とする。
部である。いっぽう、xm[18:0]は小数部をあら
わしていて、二つのコンパレータ35bと35cおよび
ROM(リードオンリーメモリ) 34のアドレス入力
上位6ビットとして与えられる。コンパレータ35bは
xm[18:13]が全て1のときのみ、すなわち、1
6進表示で3Fのときのみ、1を出力する。コンパレー
タ35cはxm[12:0]が全て0の時のみ出力xm
nzに0を出力する。xmnzはROM 34のアドレ
ス入力の最下位ビットに与える。ROM 34は128
語×5ビットの構成で小数部の対数表現への変換を行
う。アドレス入力(すなわちxm[18:13],,x
mnz)をX、データ出力をYと書くと、 xmnz=0の場合 Y=0x1F & (32*log2 (1+X/12
8)) xmnz=1かつxm[13]=0の場合 Y=0x1F & (32*log2 (1+(X>>
2)/32)) xmnz=1かつxm[13]=1の場合 Y=0x1F & (32*log2 (1+(X>>2
+1)/32)) という関係にある。ただし、この式における丸めは四捨
五入とする。なお、式中の記号&は、各ビット単位の論
理ANDを意味する。
タを5ビットに丸めてから対数に変換するのとほとんど
同じである。ただし、四捨五入される値がちょうど1/
2に等しい場合(すなわちxmnz=0の場合)は四捨
五入しないで6ビットの値をそのまま使って変換する。
これにより、端数がちょうど1/2の時の丸めの方向か
らおきるバイアスを無くしている。
五入によって切上げられて32になる場合は、対数表現
の非小数部の方を1増やす必要がある。これはXの値が
0x7Eと0x7Fの場合で、この条件はコンパレータ
35bで検出され、その出力を加算器30のキャリーイ
ン入力に与え、入力の一方にDFF 36jを経たxe
[4:0]を入力し、もう一方の入力には全ビット0を
与えることでインクリントを行う。ROM 34の出力
はDFF 36nを経て対数表現の小数部Xij[4:
0]となる。加算器30の出力はDFF 36mを経て
対数表現の小数部Xij[9:5]となる。なお、Xi
j[11:10]はここでは常に0のため省略されてい
る。
パイプライン化するために存在している。
使用される対数表現乗算手段の実施例を図3に示す。こ
こでは二つの対数表現値a[13:0]とb[13:
0]の乗算について説明する。乗算結果はc[13:
0]とする。1個のANDゲート22と、1個のExO
Rゲート23と、1個の12ビット幅の加算器24から
構成されている。
易に理解できる。
のみ非ゼロであるから、ANDゲート22を利用し、a
[13]とb[13]の論理積をc[13]とする。ま
た、aとbの符号が互いに異なるときのみcは負になる
ので、ExORゲート23を利用し、a[12]とb
[12]の排他的論理和をとってc[12]とする。
ここでは対数表現値a[13:0]を非ゼロの対数表現
値b[13:0]で割り、c[13:0]を得る場合に
ついて説明する。この対数表現除算手段ではゼロで割る
ことは無いと仮定している。
らb[11:0]を引きc[11:0]とする。aがゼ
ロならばcもゼロなのでa[13]をそのままc[1
3]とする。aとbの符号が互いに異なるときのみcは
負になるので、ExORゲート26を利用し、a[1
2]とb[12]の排他的論理和をとってc[12]と
する。
二つの非負の対数表現XとYから、XとYを固定小数点
で表現したときの値をそれぞれxとyとすると、対数表
現加算手段は、非負の(x+y)を表す対数表現値Zを
得るものである。XとYは非負を仮定しているので、対
数表現の符号フラグを除く13ビットX[12:0],
Y[12:0],Z[12:0]を扱えばよい。
実行出来る。
をそのまま出力。
のX,Yを符号無し2進数とみて比較し、大きい方を選
ぶ。また、XとYの差d=|X−Y|を得る。dが0x
FFよりも大きいときは二つの入力X,Yのうち小さい
方の値が大きい方の値の1/256よりも大きくない。
したがって、丸めの方向を考慮しても演算結果Zは、
X,Yのうちの大きい方の値そのままである。dが0x
FFよりも小さい場合は、ZはX,Yのうちの大きい方
よりも大きくなる。X>Yの場合、ZとXとdの間には
次の関係が成り立つ。
点形式で表現している。したがってこの関係をROMに
入れておきdをアドレスとして与え、読み出されたデー
タをXに足せばZが得られる。
Y[12:0]は共に減算器37a,37bに接続さ
れ、更に、X[12:0]はDFF 38d、Y[1
2:0]はDFF 38eに接続され、対数表現の非ゼ
ロフラグであるX[12],Y[12]は更にNAND
ゲート63に接続され、その出力はDFF 38lを経
て信号zeroとなる。この信号は二つの入力XとYの
少なくとも一つが0であることを意味している。13ビ
ット幅の減算器37aはX−Yを、13ビット幅の減算
器37bはY−Xを計算する。減算器37aはXとYの
大小比較も兼ねており、これは減算器37aのキャリー
出力を見ることで行われる。キャリー出力はDFF 3
8a及びインバータ40を経てXgeY,YgtXとい
う信号を得る。XgeYはXがYよりも大きいか等しい
ことを、YgtXはYがXよりも大きいことを意味す
る。二つの減算器37aと37bの出力はそれぞれDF
F 38bとDFF 38cを経てマルチプレクサ39
aに与えられる。このマルチプレクサ39aはXgeY
で制御されており|X−Y|を出力XmY[12:0]
として出す。つまり、X>=Yの時はX−Yを、X<Y
の時はY−Xを出力する。一方、DFF 38dとDF
F 38eの出力はマルチプレクサ39bに与えられ
る。このマルチプレクサ39bはYgtXで制御されX
とYのうちの小さくない方を選び、つまり、Y>Xなら
ばYを、そうではないときはXを選び、選ばれた値はD
FF 38h,38jを経て加算器44の一方の入力に
入る。XmY[12:0]の上位5ビットXmY[1
2:8]を6入力NORゲート42aの5つの入力に与
える。この5ビット分は前記dが0xFFよりも大きい
ことを検出するのに使われる。またNORゲート42a
の残る一つの入力にはzeroが入り、すでに述べたよ
うに、入力X,Yの少なくとも一方が0であることを示
している。したがって、NORゲート42aの出力が0
の時は、XとYの差が0xFFよりも大きいか、XとY
の少なくとも一方が0であることを示している。NOR
ゲート42aの出力はDFF 38gを経てpassと
いう信号となる。この信号は6ビット分コピーされて6
ビット幅でANDゲート43に供給される。
[7:0]はROM 41のアドレス入力に接続する。
このROMは前記(式16)の関係を格納しており、構
成は256語×6ビットで、そのデータDとアドレスA
の関係は、小数部が5ビットであることを考慮すると D=32*log2 (1+2**(−A/32)) ...(式17) である。ROM 41の出力は6ビット幅のDFF 3
8fを経て6ビット幅の2入力ANDゲート43に入力
する。ANDゲート43は各ビットについてのANDを
とる。ANDゲート43の出力は6ビット幅のDFF
38iを経て、上位側に7ビット分の0を付加し、13
ビット加算器44のもう一方の入力に入る。ANDゲー
ト43の一方の入力にはそれぞれDFF 38fの各出
力が、もう一方の入力が前記passが接続されてい
る。したがって、ANDゲート43はpassが0のと
き、加算器44への入力を0にする。したがって、dが
0xFFよりも大きい時とXとYの少なくとも一方が0
の場合は、X,Yの小さくない方に0が加えられ出力と
してZ[12:0]に出る。そうではない場合は、RO
M 41から読み出した値をX,Yのうちの小さくない
方に足してZ[12:0]に出す。
ここでは三つの対数表現加算手段45a,45b,45
cを用いる。相対距離計算手段の行う演算 r2=Xij**2+Yij**2+Zij**2+e**2 のうち、2乗の演算は、Xij,Yij,Zij,eは
対数表現であるがゆえ、フラグの2ビットを除く部分を
MSB側に1ビットシフトしLSBに0を与えることに
より達成される。例えば、Xijに関しては、Xij
[12],Xij[10],Xij[9],Xij
[8],・・・,Xij[1],Xij[0],0を与
えることになる。図6においては、これをXij[1
2,,10..0],,0で表している。Yij,Zi
jに関しても同様である。ここでは2乗をとるので結果
は必ず非負である。したがって、対数表現の符号フラグ
を除く13ビットで処理をしている。Xij**2とY
ij**2を対数表現加算手段45aの入力に与え、X
ij**2+Yij**2を得る。eレジスタ46の1
3ビット出力の2乗e**2とZij**2を対数表現
加算手段45bの入力に与え、Zij**2+e**2
を得る。さらにこれら2つの加算結果を対数表現加算手
段45cの入力に与え、r2を得る。
7の13ビット出力hとを13ビット幅の減算器48に
与え、大小比較する。比較結果は減算器48のキャリー
アウトからインバータ49を介してNB 16として集
積回路1外部に出力する。r2>=hならばNBは0、
r2<hならばNBは1となる。
ス13から内部バス12aを経て値がロードされる。ロ
ードの制御は外部バスインターフェース手段15が行
う。
は非負の対数表現であるので、これを1/2乗するため
には非フラグ部r2[11:1]を1ビットLSB側に
シフトしr[10:0]とし、r[11]を0とすれば
よい。非ゼロフラグに関してはr2[12]をそのまま
r[12]とする。これは0の1/2乗は0であり、非
ゼロの値の1/2乗は非ゼロであるからである。ここで
の計算対象の性質上r2とrは決して負になることはな
いため対数表現の符号フラグを省略している。
とその1/2乗であるrを対数表現乗算手段でかけるこ
とによりr2の3/2乗であるr3を得ている。計算対
象の性質上r2とrは決して負になることはないため対
数表現の符号フラグを省略している。
a,6bに入力するまえに、符号フラグにその値が非負
であることを意味する0を補い与える。Mjは負の値を
とりうるため、、対数表現除算手段6a,6bでは符号
フラグも取り扱う。
手段の実施例を示す。この両者は同じ構成と同じ動作を
有し、違いは入出力データにある。X座標軸方向の相互
作用力に関して説明すると、パイプラインレジスタ19
aにてパイプラインステージの差を補正するために遅延
されたXijと対数表現除算手段6aで得られたMj/
r3の積を対数表現乗算手段51でとると、X座標軸方
向の相互作用力が得られる。3つの相互作用力計算手段
7a,7b,7cとポテンシャル計算手段8の入力デー
タと出力データをまとめると下記のようになる。
た0x1000を用いている。
を示す。この手段は、5ビット×32語のROM 5
2、PLA 53、5個の2入力ANDゲート54と、
DFF55a,55b,55cと、48ビット出力のシ
フタ56から構成されており、14ビット幅の対数表現
を48ビット幅の固定小数点表現と符号フラグに変換す
る。YSignは符号フラグである。
ので、これをROM 52で固定小数点表現の小数部分
に変換する。X[4:0]をA、ROMの出力をDとす
ると、その関係は D=32*(2**(A/32)−1) である。ただし、対数表現の非ゼロフラグX[12]が
0、つまり対数表現Xが0を表しているならば、固定小
数点表現の小数部分も0でなければならない。そこで、
ANDゲート54でそのためのマスキングを行ってい
る。この、ANDゲート54の出力のMSB側にX[1
2]をビット5として追加し合計6ビットとし、DFF
55cを経てシフタ56の入力y[5:0]とする。
ROM 52は(2**(A/32))から1を差し引
いた値を固定小数点表現の5ビット幅の小数部として出
力するので、ビット5にX[12]を付加することは、
Xが非ゼロならばその固定小数点表現にて1を加えたこ
とに等しく、したがって、2**(A/32)を表す実
数を小数幅5ビットの固定小数点表現で得たことにな
る。一方、Xが0ならばX[12]は0かつANDゲー
ト54の出力もみな0となり、固定小数点表現でも0と
なる。X[11:5]はy[5:0]を48ビット幅の
どこに置くかを決める。X[11:5]をPLA 53
に与えシフタのシフト制御信号を作り、DFF 56b
を介してシフタに与える。PLA 53はX[11:
5]が67の時y[5]がY[47]に、20の時にy
[5]がY[0]に現れるように、つまり (X[11:5]の値)−(Y[5]が現れるYのビッ
ト位置)=20 となるようなシフト制御信号を作る。Y[47:0]の
うちy[5:0]に対応しない場所はすべて0となる。
対数表現の符号フラグであるX[13]はDFF55a
を経てYSignとして符号フラグとして出力される。
手段の実施例をまとめて示す。これらは56ビット幅の
インバータ57、56ビット幅の2入力マルチプレクサ
58、56ビット幅の加算器59、56ビット幅の2入
力マルチプレクサ60、56ビット幅のレジスタ61、
2個の28ビット幅のトライステートバッファ62a,
62bから構成されている。積算用加算器に与えられる
入力は48ビットの固定小数(Y[47:0]と呼ぶこ
とにする)とその符号をしめすフラグ(YSignと呼
ぶことにする)である。 Y[47:0]のMSB側に
8ビットの0を付加してY[55:0]とする。以降の
計算は56ビット幅で行われる。Y[55:0]の各ビ
ット毎の反転をインバータ57でとり、それとY[5
5:0]をマルチプレクサ58に与え、YSignで選
択する。YSignが0ならばY[55:0]がそのま
ま出力され、1ならばインバータ57の出力が選択され
る。このマルチプレクサの出力を加算器59の一方の入
力に与え、もう一方の入力にはレジスタ61の出力を与
え、キャリーイン入力にはYSignを与える。この一
連の接続により、YSign=0すなわちY[47:
0]は正もしくは0の時はY[47:0]と積算値レジ
スタの値を足し合わせ、YSign=1の時はY[4
7:0]の2の補数をとり積算値レジスタの値と足し合
わせる、つまり積算値レジスタの値からY[47:0]
を引く。2の補数をとる操作は各ビットを反転しそれに
1を足すことであるが、実施例ではインバータ57がビ
ットの反転を行い加算器59のキャリーイン入力にYS
ignを与えることで1を足している。
60を経て積算値レジスタ61にロードされる。ただ
し、マルチプレクサ60に積算値レジスタクリア信号が
与えられている場合はこのマルチプレクサは0を選択し
出力し、レジスタ61はレジスタロード信号が1の時の
み56ビット幅の入力をロードする。積算値レジスタ6
1の出力はすでに述べた様に加算器59の一方の入力と
トライステートバッファ62a,62bに与えられる。
2bはともに28ビット幅で、一方は積算値レジスタ6
1の出力の上位28ビットを入力し、もう一方は積算値
レジスタの出力の下位28ビットを入力する。いずれの
トライステートバッファも28ビット幅の内部バス12
bをドライブする。各トライステートバッファのイネー
ブル信号すなわち積算値レジスタ読み出し信号は外部バ
スインターフェース手段15にて作られる。
実施例を示す。実施例は集積回路1外部より、3ビット
のレジスタアドレスA[2:0]、チップセレクト入力
CS、ライトイネーブル入力WE、アウトプットイネー
ブル入力OE、集積回路1に対する演算可を示すPC
14、28ビット幅の双方向性データバスDB[27:
0]を入力する。このうちPC 14を除くRA[2:
0],CS,WE,OE,DB[27:0]は外部バス
13を構成する。
路1のクロックに対して非同期な入力である。そのた
め、それぞれクロックに対して同期をとるシンクロナイ
ザ64a,64b,64c,64dに入力し、それらの
出力をレジスタアドレスデコーダ66に入力する。集積
回路1が外部バス13からの入力を受け付けるのはCS
=1かつWE=1かつOE=0のときで、A[2:0]
で指定された内部レジスタ(Xi,Yi,Zi,e,
h)に対応して、レジスタ書き込み信号がアサートされ
る。集積回路1が外部バス13に値を出力するのはCS
=1かつWE=0かつOE=1のときで、A[2:0]
で指定された積算値レジスタの上位もしくは下位の28
ビットの読み出し信号がアサートされる。同時に、バス
ドライブ信号がアサートされる。
0]はDFF 68bを介して内部バ12aに接続さ
れ、また、内部バス12bはDFF 68aとトライス
テートバッファ65を介してDB[27:0]に出力す
る。トライステートバッファ65はバスドライブ信号を
DFF 67で1クロック遅らせたもので制御され、バ
スドライブ信号がアサートされた次のサイクルの間、ラ
ッチとして機能するDFF 68aの出力をDB[2
7:0]に出力し、そうではないときはハイインピーダ
ンス状態になる。
トライステートバッファを介して内部バス12bをドラ
イブする。したがって、積算値レジスタの読み出し手順
は下記のようになる。
OE=1をアサートする。
出力する。
ドライブ信号と積算値レジスタ上位/下位読み出し信号
をアサートする。
下位の値が内部バス12bに出力。
と内部バス12bの値がそれぞれDFF 67,DFF
68aに取り込まれる。
ブ状態となり、DFF 68aの値がDB[27:0]
に出力される。
は、DB[27:0]の値はDFF68bを経て内部バ
ス12aに現れるので、各内部レジスタは対応する書き
込み信号で内部バス12aの値を取り込む。
に入力し、1クロック毎にその値は右隣のDFFに送ら
れていく。DFF 69のDFFの個数はXj,Yj,
Zj,Mjの入力から積算値レジスタ手段11の積算値
レジスタ61までにあるパイプラインステージ数−1に
等しく、実施例では14個である。
Cの入力から積算値レジスタロード信号18と積算値レ
ジスタゼロクリア信号17の生成を説明する。Xj,Y
j,Zj,Mjの値はそれが有効であるかどうかにかか
わらず、毎サイクル入力され、計算され、積算値レジス
タ手段11の積算値レジスタ61の入力に達する。X
j,Yj,Zj,Mjが有効な時PC=1を入力する。
逆にXj,Yj,Zj,Mjが無効なときはPC=0を
入力する。有効なXj,Yj,Zj,Mjは連続して毎
サイクル与えられるものとする。図13では時刻0,
1,2に有効なXj,Yj,Zj,Mjが与えられ、こ
の間PC=1で、それ以外のときはPC=0である。P
Cの値はクロック毎にDFF 69a,69b,69
c,...69m,69nと伝播していき、時刻15,
16,17においてDFF 69nの出力は1になる。
時刻15のときには時刻0に入力されたXj等のデータ
が、時刻16のときには時刻1に入力されたXj等のデ
ータが、時刻17のときには時刻2に入力されたXj等
のデータが積算値レジスタ61の入力に現れる。したが
って、積算値レジスタは時刻14にゼロクリアする必要
がある。これはDFF 69mの出力の1とDFF 6
9nの出力の0を同時に検出すればよい。これはインバ
ータ70とANDゲート72で行われ、ANDゲート7
2の出力が積算値レジスタゼロクリア信号17である。
図13の時刻14において積算値レジスタゼロクリア信
号17を与えることにより、時刻14において積算値レ
ジスタの値は0となる。積算値レジスタはその入力に有
効な値が来ている時にのみロードされる。すなわち、D
FF 69mとDFF 69nの出力をORゲート71
に与え、その出力を積算値レジスタロード信号18とす
る。図13では時刻14,15,16,17にて積算値
レジスタロード信号18は1となる。PCが1から0に
戻ると14サイクル後にDFF 69nの出力も0とな
り、積算値レジスタに新たな値はロードされず値は保持
される。
の距離を求め相互作用力とポテンシャルを計算しそれら
の積算を1回おこなう」という計算はスーパーコンピュ
ータ上の30個の浮動小数点命令に相当する。本発明は
パイプライン処理を行っておりその計算を見掛け上1サ
イクルで行う事ができる。従って、本発明による集積回
路で構成される処理装置を30MHzで動作させると9
00MFlopsの処理能力を得ることができる。これ
はスーパーコンピュータの性能にほぼ等しい。本発明に
よる処理装置は標準的なCMOSテクノロジーで集積回
路上に構成するこができ、その量産価格は汎用マイクロ
プロセッサのCPUチップ程度であり、スーパーコンピ
ュータと比較すると極めて安価である。
作させると、個数に比例する処理能力を容易に得ること
が出来る。これにより、スーパーコンピュータよりも大
きな処理能力を得ることも容易である。
る。
る。
る。
ある。
る。
の実施例のブロック図である。
ク図である。
のブロック図である。
ブロック図である。
ミングチャートのブロック図
算手段、4:1/2乗手段、5:3/2乗手段、6:対
数表現除算手段、7:相互作用力計算手段、8:ポテン
シャル計算手段、9:固定小数点表現変換手段、10:
積算用加算手段、11:積算値レジスタ手段、12:内
部バス、13:外部バス、14:PC、15:外部バス
インターフェース手段、16:NBフラグ、17:積算
値レジスタゼロクリア信号、18:積算値レジスタロー
ド信号、19:パイプラインレジスタ、20:成分差計
算手段、21:Xi,Yi,Zi用レジスタ手段、2
2:ANDゲート、23:ExORゲート、24:加算
器、25:減算器、26:ExORゲート、29:減算
器、30:加算器、31:2入力マルチプレクサ、3
2:PLA、33:シフタ、34:ROM、35:コン
パレータ、36:DFF、37:減算器、38:DF
F、39:2入力マルチプレクサ、40:インバータ、
41:ROM、42:NORゲート、43:ANDゲー
ト、44:加算器、45:対数表現加算手段、46:e
レジスタ、47:hレジスタ、48:減算器、49:イ
ンバータ、50:対数表現乗算手段、51:対数表現乗
算手段、52:対数小数変換ROM、53:PLA、5
4:ANDゲート、55:DFF、56:シフタ、5
7:インバータ、58:2入力マルチプレクサ、59:
加算器、60:2入力マルチプレクサ、61:レジス
タ、62:トライステートバッファ、63:NANDゲ
ート、64:シンクロナイザ、65:トライステートバ
ッファ、66:レジスタアドレスデコーダ、67:DF
F、68:DFF、69:DFF、70:インバータ、
71:ORゲート、72:ANDゲート
Claims (11)
- 【請求項1】 一方の質量または電荷の中心点の座標を
内部に記憶し、他方の質量または電荷の中心点の座標と
質量または電荷を外部から与え、この2点間に作用する
重力および重力ポテンシャルまたは電気力および電気カ
ポテンシャルを計算する単一の集積回路で構成された処
理装置であって、連続して供給される座標と質量または電荷のデータとを
パイプラインで計算する計算手段と、 計算した重力と重力ポテンシャルまたは電気力および電
気力ポテンシャルを積算する積算手段と、 各座標成分の差を求める相対位置計算手段と、 前記2点間の距離の2乗であるr2を求める相対距離計
算手段と、 r2を1/2乗した値rを求める1/2乗手段と、 r2を3/2乗した値r3を3/2乗手段と、 装置外部から与えられる質量或いは電荷Mjを用いて、
Mj/r3とMj/rを求める除算手段と、 相互作用力の各座標成分であるXij*Mj/r3,Y
ij*Mj/r3,Zij*Mj/r3を求める三つの
相互作用力計算手段と、 ポテンシャルu*Mj/r(ただしuは定数)を求める
一つのポテンシャル計算手段と、 これら計算された四つの値をそれぞれ積算するための4
個の積算用加算手段と、 それぞれの積算値を保持する4個の積算値レジスタ手段
と、 r2と定数hの大小を比較し、結果を装置外部にフラグ
として出力するコンパレータ手段と、 Xi,Yi,Zi,e,hの値を保持するレジスタ手段
と、 装置外部から与えられるレジスタ選択アドレス信号に従
い、前記4個の積算値レジスタの内容を内部バスを経て
外部データバスに出力するとともに、かつ前記レジスタ
選択アドレス信号に従い、前記Xi,Yi,Zi,e,
hの値を保持するレジスタ手段に外部バスから内部バス
を経て値を書き込む外部バスインターフ ェース手段とを
有 することを特徴とする処理装置。 - 【請求項2】 前記座標と質量または電荷のデータは、
実数データxを2のべき数で対数表現する所定ビット長
の2進数pと非ゼロを表す1ビットの非ゼロフラグおよ
び正負を表す1ビットの符号フラグからなることを特徴
とする請求項1記載の処理装置。 - 【請求項3】 処理装置に対する演算可を示す信号の0
から1への立ち上がりを検出し、前記4個の積算値レジ
スタ手段の内容を全て0にし、前記演算可を示す信号が
1の間、前記積算用加算手段の出力を取り込み、前記演
算可を示す信号が0の間、前記4個の積算値レジスタ手
段の内容を保持することを特徴とする請求項1記載の処
理装置。 - 【請求項4】 前記相対位置計算手段において、X,
Y,Z成分用にそれぞれ同一の構成の3個の成分差計算
手段を有し、各成分差計算手段は、成分差の正負を求め
る手段と、成分差が0かどうかを検査する手段と、成分
差の絶対値を求める手段と、成分差の絶対値においてM
SB側に連続して並ぶ0の個数を検出するプライオリテ
ィエンコーダ手段と、該プライオリティエンコーダ手段
の出力結果によって決まるシフト量だけ成分差の絶対値
をシフトするシフタ手段と、 該シフタ手段の出力を入力とする対数表現変換補間手段
と、前記シフタ手段の出力においてMSB側から所定の
個数の1が連続して並んでいるならば前記プライオリテ
ィエンコーダ手段の出力に1を加算するインクリメント
手段とを有することを特徴とする請求項1記載の処理装
置。 - 【請求項5】 前記相対距離計算手段の Xij**2+Yij**2+Zij**2+e**2 の計算を、 2**(x/m)と2**(y/m)なる値を表す対数
表現x,yから2**(z/m)=2**(x/m)+
2**(y/m)なる値を表す対数表現zを求める対数
表現加算器であって、xとyの大小を比較する手段と、
xとyの差の絶対値を求める手段と、その絶対値を入力
とする対数表現加算器用補間手段と、その出力とxとy
のうち小さくない方を加算する手段を有し、その出力を
zとする 対数表現加算器と、 2**(x/m)と2**(y/m)なる値を表す対数
表現xとyから2**(z/m)=(2**(x/
m))*(2**(y/m))なる値を表す対数表現z
を求める対数表現乗算器であって、xとyの前記符号フ
ラグのExORをとり、それをzの符号フラグとし、x
とyの前記非ゼロフラグのANDをとり、それをzの非
ゼロフラグとし、xとyのフラグではない部分を加算器
に与えzのフラグではない部分とする対数表現乗算器と
を有す ることを特徴とする請求項1記載の処理装置。 - 【請求項6】 前記3/2乗手段として前記対数表現乗
算器を使用し、r2とrを前記対数表現乗算器に与える
ことによってr3を得ることを特徴とする請求項4記載
の処理装置。 - 【請求項7】 Mj/r3とMj/rを求める前記対数
表現除算手段として、 2**(x/m)と2**(y/m)なる値を表す対数
表現x,yから2**(z/m)=(2**(x/
m))/(2**(y/m))なる値を表す対数表現z
を求める対数表現除算器であって、xとyの前記符号フ
ラグのExORをとり、それをzの符号フラグとし、x
の前記非ゼロフラグをzの非ゼロフラグとし、xとyの
フラグではない部分を減算器に与えzのフラグではない
部分とする対数表現除算器を使用 することを特徴とする
請求項1記載の処理装置。 - 【請求項8】 前記三つの相互作用力計算手段は、Xi
jとMj/r3、YijとMj/r3、およびZijと
Mj/r3をそれぞれ入力とする三つの前記対数表現乗
算器を有することを特徴とする請求項5記載の処理装
置。 - 【請求項9】 前記ポテンシャル計算手段は、uとMj
/rを入力とする前記の対数表現乗算器を有することを
特徴とする請求項5記載の処理装置。 - 【請求項10】 対数表現のフラグではない部分の一部
を逆変換補間手段に与え、対数表現の非ゼロフラグが0
の場合、前記逆変換補間手段の出力をゼロクリアするマ
スク手段と、該マスク手段の出力を対数表現のフラグで
はない部分の別の部分に従いシフトするシフト手段と、
対数表現の符号フラグが負を意味している場合、前記シ
フト手段の出力の各ビットを反転させる反転手段と、該
反転手 段の出力のMSBで符号拡張する手段と、対数表
現の符号フラグが非負を表すならば0を出力し負を表す
ならば1を出力する手段とを有する、対数表現から固定
小数点表現への変換を行う固定小数点表現変換手段を更
に備えていることを特徴とする請求項1記載の処理装
置。 - 【請求項11】 前記積算用加算手段のキャリーイン
を、前記固定小数点表変換手段から供給することを特徴
とする請求項10記載の処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27657291A JP2948378B2 (ja) | 1991-09-28 | 1991-09-28 | 重力多体系および電気力多体系用相互作用力計算用処理装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP27657291A JP2948378B2 (ja) | 1991-09-28 | 1991-09-28 | 重力多体系および電気力多体系用相互作用力計算用処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0589157A JPH0589157A (ja) | 1993-04-09 |
JP2948378B2 true JP2948378B2 (ja) | 1999-09-13 |
Family
ID=17571348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP27657291A Expired - Lifetime JP2948378B2 (ja) | 1991-09-28 | 1991-09-28 | 重力多体系および電気力多体系用相互作用力計算用処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2948378B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004059979B4 (de) * | 2004-12-13 | 2007-11-22 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Vorrichtung und Verfahren zur Berechnung einer Signalenergie eines Informationssignals |
JP4321510B2 (ja) | 2005-10-21 | 2009-08-26 | 日本電気株式会社 | 多体問題用演算装置 |
JP4732316B2 (ja) * | 2006-12-07 | 2011-07-27 | キヤノン株式会社 | 画像処理装置、記録装置、画像処理方法、プログラム、および記憶媒体 |
-
1991
- 1991-09-28 JP JP27657291A patent/JP2948378B2/ja not_active Expired - Lifetime
Non-Patent Citations (5)
Title |
---|
パリティ Vol.5,No.2(1990−2−1)pp.54〜55 |
天文月報 Vol.83,No.8(1990−7−20)pp.224〜226 |
日本物理学会誌 Vol.45,No.11(1990−11−5)pp.812〜819 |
生物物理 Vol.31,No.4(1991−7−25)pp.156〜160 |
電子情報通信学会春季全国大会講演論文集(1990−3−18)p.6−126 |
Also Published As
Publication number | Publication date |
---|---|
JPH0589157A (ja) | 1993-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5375079A (en) | Arithmetical unit including accumulating operation | |
US5506797A (en) | Nonlinear function generator having efficient nonlinear conversion table and format converter | |
JPH0431412B2 (ja) | ||
US5337266A (en) | Method and apparatus for fast logarithmic addition and subtraction | |
EP0297588A2 (en) | Trigonometric function arithmetic processor using pseudo-division | |
US12141225B2 (en) | Inference accelerator using logarithmic-based arithmetic | |
JP2948378B2 (ja) | 重力多体系および電気力多体系用相互作用力計算用処理装置 | |
Biji et al. | Performance analysis of Vedic mathematics algorithms on re-configurable hardware platform | |
JP2009507413A (ja) | 全加算器モジュールおよび該全加算器モジュールを用いる乗算器デバイス | |
JPH0568725B2 (ja) | ||
US4038538A (en) | Integer and floating point to binary converter | |
Ercegovac et al. | Fast radix-2 division with quotient-digit prediction | |
US20230086090A1 (en) | Methods and Apparatus for Quotient Digit Recoding in a High-Performance Arithmetic Unit | |
Jothin et al. | High performance modified static segment approximate multiplier based on significance probability | |
US5097434A (en) | Hybrid signed-digit/logarithmic number system processor | |
Gudivada et al. | Novel optimized low power design of single-precision floating-point adder using Quantum-dot Cellular Automata | |
Dawid et al. | High speed bit-level pipelined architectures for redundant CORDIC implementation | |
SalehiTabrizi et al. | Designing Efficient Two-Level Reverse Converters for Moduli Set {2^ 2n+ 1-1, 2^ 2n, 2^ n-1\} 2 2 n+ 1-1, 2 2 n, 2 n-1 | |
Kwak et al. | High-speed CORDIC based on an overlapped architecture and a novel σ-prediction method | |
Sait et al. | A novel technique for fast multiplication | |
Kwak et al. | A new scheme for prediction of rotation directions in CORDIC processing | |
Koppala et al. | Performance comparison of fast multipliers implemented on variable precision floating point multiplication algorithm | |
Chen et al. | Decimal floating-point antilogarithmic converter based on selection by rounding: Algorithm and architecture | |
Roy | Basic Combinational Circuits | |
sravya Alapati et al. | Hardware Implementation of Posit Numeration System using FPGA for Signal Processing Applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R370 | Written measure of declining of transfer procedure |
Free format text: JAPANESE INTERMEDIATE CODE: R370 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313117 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20070702 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100702 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110702 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110702 Year of fee payment: 12 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120702 Year of fee payment: 13 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120702 Year of fee payment: 13 |