第7回
ALUのA+B+1やA-B-1などの無駄な部分は何かに使えないのか
残念ながら、どうしようもないっぽいですね。
ALUで信号を選択する回路が複雑だがもっと簡単には出来ないのか
前回見たように、論理演算だけならばなんとかなるのですが、
算術演算が入ると、たぶん今回見た構成が最もシンプルかと思います。
ALUでCoutが伝わらないとなっているが、次のbitのALUがどのようになっているのか気になった。算術演算時はCoutはどうするのか
Coutが伝わらない、ということは、言い換えれば、
次の桁のCinを常に0にする、と考えればよいです。
ALUの構成のところで、AとA'がどうなっているのかが混乱した。加算器を使ったALUでCin→Cin'とするには入力S2、S1、S0、Cin→出力Cin'でいいのか
Aの方は、論理演算のときだけ切り替わるので、ちょっとややこしいですね。
Cinは、算術演算のときは、0や1とする必要がありますが、
論理演算のときは常に0になるため、実際にはS2によってのみ決まる
回路となります。
ALUを作るときCinを判定する回路ではS2だけをいれてS1、S0を入れなくても良いのか
上記の通り、実はそうなります。
全加算器をもちいたALUにおいてS=A+B'=A(XOR)BでBのダッシュが消えるのはなぜなのか。
すいません、板書のミスですね。B'のままです。
全加算器をもちいたALUにおいて加算器はRCAになるということだったが、CLAなどにするときは構成が変わるのか
CLAは、上位の桁へのキャリーの伝播だけを先に求める方式ですから、
加算の結果S自体は、全加算器から出てくるそのまま、でかまいません。
キャリーのところだけ、論理演算のときは0に、算術演算のときは
CLA構成とする、ということで可能ですね。
ANDを作る際にS=A(XOR)B'→A''B'でS=A''B+/A''*/Bとしたが、その時B'=/Bだからとかいてあったのだが、なぜ今B'=/Bなのですか
B→B'とする回路の真理値表で、AND演算を埋め込もうとしていたのは
S1=1, S0=0のときで、そのときは、B'=/Bとなっているから、です。
論理回路でANDにつくるときK=/Bはどこからでてきましたか
こうするとうまくいくなあ、という、「思いつき」です。
Cinの入力にS2、S1、S0のうちS2はいらないのか。黒板ではS1から2本出てつながってますか
すいません、板書のミスです。
課題の真理値表で、A+B(加算)とA+B(OR)とあるが、同じ物なのか
いえ、記号が違うだけで、前者は算術和(普通の足し算)、後者は論理和、です。
(まぎらわしいんですよね>「+」の記号)
今日習ったALUが実際に用いられているALUなのか
使っているものが多いかと思います。
A'を構成する回路の制御信号はS0、S1、S2でいいのか
そうなるはずです。
複雑な演算器が沢山出てきて分からなくなってきた。課題の2bitALUも難しいと思う
BとB'の真理値表の使い分けが分かりにくい
そう思ったので、自分で整理してもらいないと思い、課題としました。
A'、B'などの上付き符号を使われると、元のA,Bと混同して分かりにくい
すいません、そうですね。ちょっと表記方法を考えてみます。
シフト演算はどんな時に用いるのか。どのくらい高速化できるのか
シフト演算は2n倍する時に便利なのは分かったが、それがシフト演算回路を用意するほどの物なのか。
バレルシフタの実用性があまり見えない
一部の乗算としても使えますし、プログラム中で1ビット単位で
データを使うこともよくありますが、そのときにもビットシフトは必須です。
いずれにしても、高速演算を目指すDSPではバレルシフタを搭載しているものも
多いようですが、一般のマイクロプロセッサでは少ないようですね。
左シフトはどのようにやるのか
右シフトの逆にするだけです。
2の倍数をかけるときは論理シフトを使い、奇数をかけるときは他の方法を使うのか
例えば5倍は、4倍+1倍と、シフト演算と加算を併用するか、
あるいは次回から見ていく、乗算気を使うことになります。
バレルシフタ以外で良いシフト演算器はあるのか
ないでしょう。
バレルシフタが分からない
もう一度整理しながら見てみてください。
例でやったバレルシフタは2段なのか
そういうことになります。
n bit×m段のセレクタのnは何に使われているのか
横に並んでいるセレクタの個数、ですね。
ALUを使う場合の問題点は何か
?問題点?
ソボクな疑問集に戻る
/
講義資料のページに戻る