第6回分

補数を作成するときに一番上のビットの上で"1"ができても出来なくても同じに扱ってよいのですか?

最上位の上のケタは、もともとしまっておく場所がありませんから、 無視をすることにしましょう。

多bit加算でA-1とAが分かりませんでした.

多ビット加算器のBの扱いが良く分からない.

B=1のとき,A-1 or A-1+1になるかが良く分かりません.

A=A,B=1,Cin=0のとき{Cout,S}=A-1となっていったが良く分かりませんでした.詳細な説明をお願いします.

fを使った所が良く分からなかった.

もう一度、ノートやこのWebのメモを使って、よく復習をしてみてください。

CinもS0,S1と同様に制御信号として扱えるのか?

そのとおりです。

RCAは安価でBCLAは高速であるが,一般的に良く使われるのはどちらですか?

(用途によるとは思いますが)一番有用な加算器はどれですか?

繰り返しになりますが、用途次第、ですね。

1の補数+1で2の補数になるのは基本事項ですか?

そのとおりです。

なぜAND, ORではなくNAND, NORを使うのか?(なぜCMOS回路では負論理を使うのか?)

CMOS回路では、残念ながら直接ANDやORは作ることができないんですよね。 MOSFETの動作原理から、ぜひよく考えてみてください。

NORもNANDで表せるので,NANDのみで良いのではないか?

そのとおりです。 ただしNORを使った方が簡略に表現できる場合もありますから、 そのような場合にはNORを使うべきですよね。

なぜANDとORを使った回路がNANDだけで表せるのか?

ブール代数の基本ですから、まあ復習をしておいてください。

NAND変換が分かりません.

ブール代数の基本のド・モルガンの定理そのものですから、 もう一度良く考えてみてください。

NANDとNORではどちらが良く使われますか?OR,ANDだとだめなのですか?

いろいろな理由(主に動作速度の面)から、 できるだけNANDを使った方がいいですね。

多ビット加算器の真理値表で「A-1」(B=1, Cin=0の場合)の-1はAの各ビット全体を引くのですか?

いえ、AをNビットの二進数の数とみなし、その値から1を引く、 ということですね。 つまり算術的な減算です。

多ビット加算器を用いて加算と減算のみをする場合,Cinは加算か減算かを選択するためのものなんですか?

結果として、そのように考えることができますね。

桁上げ保存加算器の回路はどのようになりますか?

FAを、前回やったような全加算器の回路で置き換えればいいでしょうね。

桁上げ保存加算回路の手順を図や例なしでどのように説明して良いか分からない.

CSAの回路図が良く理解できなかった.

キャリー保存加算器の図をみながら、じっくり考えてみてください。

桁上げ保存加算器で桁上がりによる加算の入力増加や最後の加算追加で増える演算時間はキャリーの伝播時間短縮分より小さいのですか?

3つの数を加算するときに桁上がりを置いておく利点が分かりません.

RCAでは、キャリーの伝播が完了するまでの時間は桁数に比例しますが、 から、キャリー保存加算器では1桁のFAの演算時間分の遅延を 待てばよいので、結果としてかなり速くできます。

桁上げ保存加算は普通の加算器にくらべて桁数がいくつ以上になると有利になりますか?

加算対象の数と加算の桁数、および最後の桁上げの吸収の加算器次第、ですね。

16bitBLCAは16bitRCAに比べてMOSFETの数は5割しか多くないのに,消費電力が約3倍になるのは何故ですか?

各MOSFETの動作頻度(負荷容量の充放電の頻度)が高い、ということですね。 つまり「遊んでいる」回路が少ないために速い、とも考えることができます。

incrementやdecrementは必要?Bに1や-1を入れればよいのでは?

そのとおりですが、Bのすべての桁をいじってを1や-1にする手間と、 S0とS1でまとめてBを変更するのと、どちらが効率的か、 ということですね。

B,S0,S1,B'の使い方が分かりません.Bが入力されているのに,インクリメントする必要はあるのか?

S0, S1も制御信号として外部から与えるもの、と考えると わかりやすいでしょうか。

ALUで作った補数は減算の他にも使用されるのですか?

そうですね、他の使い道は、なさそうです。

A,Bは4bit,Cout,Cinは1ビットと考えれば良いですか?

A, Bの桁数は、講義では、例として4ビットとしましたが、 実際には作ろうとするALUの桁数と同じになりますね。 Cin, Coutは1ビットです。

プログラムでA=A+1とするよりもA++としたほうが演算が早くなるというのは実際にB=0,Cin=1としているからなのか?コンパイルでの最適化でより短いアセンブリコードを生成するようになっていると思っていた.

なかなかおくが深い話になるとおもうのですが、 「A++」だと、「インクリメントする命令」、となり、 「A=A+1」だと、「1をオペランドとして加算する命令」、となると 考えられますが、後者は、オペランドの1をフェッチする時間がかかる分、 遅くなる、ということではないかと思います。

キャリー保存加算器で、途中の計算で出てきた本来あるキャリーの伝搬が,このときまでに終了していて加えることが可能ということですか?

いえ、途中で発生したキャリーは、最後にまとめて加算しています。 つまり各桁のFAでの、A+B+Cinという演算のうち、Cinを足す部分だけを 後回しにすることで、足し算の順序を変えているだけですね。

入力部S1,S0と出力S1,S0は全く違うものですか?

まぎらわしくてごめんなさい、入力のS1, S0はselect(選択)のS、 出力のS1, S0は、sum(加算結果)のS、です。

いろいろな加算器が出てきたが,それぞれの用途を知りたい.

演算をする回路、つまりコンピュータそのもの、ですね。

WEBの質問を見ましたが,私の質問がありませんでした.類似の質問はあったのですが,質問の内容を分かりやすく直したのでしょうか?

ごめんなさい、ほとんど同じ内容の質問は、1つにまとめています。

ワークステーション室からHPが見れないので対処をお願いします.

さきほど確認したら、問題なく見られるようですが・・・? URL(アドレス)を間違えていませんか?

シフト演算,掛け算などを詳しく知りたい.

掛け算(乗算)は、後ほど詳しくやります。 シフトも・・・乗算に関連して少し触れると思います。

電気機器が発生する電磁波の人体への影響があるといわれているが,ディジタル回路,LSIに対しては電磁波がどのような悪影響を及ぼすのか?

LSIが出す電磁波、というのは、いわゆるEMIといって、 いろいろ対策も研究されているのですが、 受ける影響、というのは、あまり聞いたことがありませんね。 オンチップインダクタといって、LSI上にコイルを作っている場合は アンテナとなって電波を受信することがあるかもしれませんが・・・ あまり聞いたことはありませんね。

1の補数復習が役立った.

はい、どうも。

decrementの考え方が面白かった.

はい、どうも。

補数の作り方が良く分からなかった.

ちょいと復習をしてみてくださいな。

加算器,ALUと似たような物なのに,集積回路で表すと何種類もあって覚えるのが大変.

まあ「覚える」必要はないんじゃないですかね。

桁上げ保存加算器はBCLAなどに比べて凄くないと感じた.

まあそうですね。

加算器が減算器になるのが不思議.

それが2進数の妙、というものかと思います。
戻る