第9回分

SIBの左下と右上がマイナスと書いてあるが、どう意味なのか

私も以前から気にはなっているのですが、こう書く習慣のようです。

なぜ、SIBやSELでQ1,Q2、QNの入力が2つずつあるのかが分からない

いえ、入力は左側の3本だけで、右側の3本は、それが素通りしているだけです。 次回やる、全体構成で、こうしておくと都合がよいのです。

BTDっていうのは何なのか

「ブースのデコーダ」と呼ばれる回路ブロックなのですが、 何の略なんでしょうね・・・

BTDに書いてある-1、0、+1の意味が分からない

yの添え字が、y2jに対して+1, 0, -1、という意味です。

ブースのアルゴリズムでQ2を求める際に、(Y2j+1(XOR)Y2j)*(Y2j+1(XOR)Y2j-1)でもいいのではないか。ただ、回路が複雑になりそうだが

もちろんかまいません。

Y2j、Y2j-1、Y2j-1からQ1、Q2、QNを求める際にQ2の論理式は積和標準形以外ではどのように構成するのか

こういうのは、ある意味、ひらめき、なんですよね。

ブースで乗算する際にbit数の調整はどうしているのか

全体のビット数のことでしょうか。 そうであれば、設計時に決めておくことになります。 結果のビット数のことであれば、Nビット×Nビットであれば、 結果は2Nビット分用意しておくことになります。

それぞれの論理式、論理回路の導出を略しているので、本当に求められるのか確かめてみたい

ぜひやってみてください。 なかなかよい練習になりますよ。

Zjの式が、どうしてそのようになるのかが分からない。Xjなどの桁数が合わない気がする

Zjは、最大でXの2倍になります(Yj=±2のとき)ので、ZjはXよりも 1ビット多い(N+1)ビット必要になります。

Yjが1の時と2の時でANjが同じなのが分かりづらいXN-1とANjの関係が良くわからない

XはNビット、Zjは(N+1)ビットですから、Zjの符号ビットであるANjは Xの符号ビットであるxN-1と同じになります。

Yj=-1の時のAij、ANjの出し方が良くわからない。+1はどこへ行くのか

この+1は、Zjの式の最後のほうにさりげなく入れてあるCjとして、 Zjに加えられます。

Yj=-2での真理値表の導き方が分からない

ANj, Aijの導出のところのことでしょうか。 そうであれば、Yj=2のときとYj=-1のときを参考に、 もう一度整理してみてください。

ブースの最初の列で、9=1001→(シフト)10010=2*9というのは0010010→(シフト)010010と考えるのか

そういうことです。

-2*=2(-X)=2*9はどうして-X=9なのか、-9ではないのか

例であげた乗算では、X=-9, Y=+25の例をやっていたので、 -2・X=18となります。

ブースのアルゴリズムの乗算でjの数は(N-2)/2と合ったがNが奇数の場合はどうなるの

ブースのアルゴリズムを用いる乗算器では、Nは必ず偶数とします。 つまり奇数ビットの乗算器が必要でも、1ビット足して偶数ビットの 乗算器として設計します。

論理式にORを用いるのは回路を規則的にするためなのか、規模を縮小するためなのか

NANDやNORを用いる、ということのことでしょうか。 そうであれば、CMOS回路では、NANDやNORは最小トランジスタ数で 構成できますが、ANDやORは、NANDやNORにNOT(インバータ)を 追加して構成する必要があります。 そんため、NANDとNORだけで論理式を記述することが得策であるわけです。

符号拡張の際に、符号ビットを足りない桁に詰める意味が分からない。最上位ビットだけではいけないのか

例で考えるとわかりやすいでしょう。 たとえば-2を、4ビットであらわすと1110ですが、 6ビットであらわすと111110となります。 つまり符号拡張のとき、拡張されたビットに、符号ビットである1を すべて埋めなければいけないことになります。

Xの2の補数を求める際に、Cj=1とすると、各桁に+1されてしまうのではないか

いえ、Zjの式のCjは、狽フ中ではなく、外にあるので、 各桁に+1されるわけではありません。

×2をシフタを用いて表現しなくても良いって事なのか

明示的にバレルシフタのようなシフト回路を用いなくても、 隣のビットとつないでおくことで、シフト演算を実現している、と 考えるとよいと思います。

ブースのアルゴリズムの一連の流れは、すべてブースが考えたのか

Wikipediaによれば、 1957年ごろにブースが、加算よりも高速なシフト演算を 優先的に用いる方法、として考えたもの、のようです。 ただしこのブースのアルゴリズムを、乗算器に載せるために BTDやSIB、SELなどの論理回路として設計したのは、 ブースより後のことのようです。

一般に演算時間と回路規模の間のトレードオフには何らかの関係式が成り立つのだろうか

これはなかなか難しい問題で、 特に乗算器のような回路では、「うまい回路構成」というのがあって、 回路規模が小さくて演算時間も短い、という構成が存在します。 フーリエ変換におけるFFT (Fast Fourie Transform)も、その類ですね。

乗算や加算だけでこれだけ回路が大きいので、実際はICを使っていると思うのだが、ICはあんな小さな中にあれだけの回路が組み込まれているのかが分からない。

1μm(1000分の1mm)以下の寸法で、作ることができるんですよねえ・・・

質問票の回答はいつ答えるのか

このように毎回答えていますよ。 (と、ここに書いてもしょうがないですが・・・)
戻る