コンピュータの仕組み(電気回路〜基本論理回路) - yokkunsの日記の続き。
基本論理回路の組み合わせで、以下のような演算回路を作成出来ます。
回路図をきれいに描くソフトがインストールされていなかったため、図はきたないです、ごめんなさい。
比較回路(comparator)
二数の大小関係を求める論理回路。具体的には以下のような出力が出る回路。
のとき出力、のとき、
のとき出力、その他の場合
のとき出力、その他の場合
これを、前回やった、AND、OR回路を使って組むと下図のようになる。
半加算器(HA)
1桁の2進数、を入力とし、和と上位への桁上げを出力する論理回路。
X Y S C
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
全加算器(FA)
2進数の1桁の加算は、上の半加算器(HA)の入力部に、下位の桁からの桁上げを加えることにより行うことが出来る。
このように、、、の3入力をもつ加算回路を全加算器という。
X Y C_i S C_0
0 0 0 0 0
0 0 1 1 0
0 1 0 1 0
0 1 1 0 1
1 0 0 1 0
1 0 1 0 1
1 1 0 0 1
1 1 1 1 1
加減算回路
加減算回路は、XORという論理回路を使います。XORは、入力値が異なる場合に"1"、同じ場合には"0"を出力する回路です。AND、OR、NOTで組めるので興味のある方はチャレンジしてみてください。
制御信号Pが0の時は、加算で、Pが1の時には、Yは反転され、さらにC_0が1になるため2の補数となり、減算になる。
デコーダ
符号化された情報を解読し、実際の動作を引き起こす信号を作り出す回路で、一般に入力数は出力数よりすくない。
以下のようなことに使用される。
制御装置において、各命令を示す符号化された記号を解読し、各部に送り出す制御信号を作る。
メモリにおいて、符号化されたアドレス信号を解読して、メモリ選択信号を作る。
メモリの例
上の図では、03番地までの4つのメモリから、1つ選択して取り出している。
番地は、03なので、2桁の二進数で表現出来ます。この2桁の二進数から、4つの制御信号を作るのがデコーダの役割です。
んで、下のD0D7は、データバスと呼ばれるデータを転送するバスで、すべてのメモリと接続されてます。
制御信号が、1の番地のみ電流が流れるため、該当する番地のデータだけ転送出来るわけです。
機械語
演算装置とは、算術演算、論理演算を実行する装置で、ALU(Aarithmetic and logical unit)と呼ばれます。
さて、このALUも、メモリと同じように、演算回路も制御信号により選択されます。そして、この制御信号は、機械語のオペレーションコードから作られます。
あ、その前に、機械語の構成ですね。
機械語は、オペレーションコード部と、アドレス部で構成されており、オペレーションコードには、演算や制御などの命令が入り、アドレス部には、その命令で処理されてるデータ(オペランド)が格納されてる場所(またはデータ自身)が入っています。
コンピュータが演算を行うには、2つの入力が必要なんですが、入力は一度に一個しか出来ないため、アキュムレータと呼ばれる一時記憶装置に保存します。
例えば、オペレーションコードが以下の仕様だった場合、
オペレーションコード 命令の種類
00000000 加算
00000001 減算
00000010 AND
00000011 OR
00000100
00000101 メモリからACCへ
00000110 ACCからメモリへ
次の機械語は、2番地のデータと3番地のデータを加算して、結果を4番地に保存するプログラムになります。
00000101 00000010
00000000 00000011
00000110 00000100
00000101から、メモリの内容をACCにコピーする回路を選択、00000010番地の内容をその回路に転送
00000000から、加算回路を選択、00000011番地の内容を回路に転送。加算された結果がACCに格納される。
00000110から、ACCをメモリにコピーする回路を選択、ACCの内容を00000100番地にコピー
さて、これで、回路と機械語がつながりました。
もっと詳しく解説したかったのですが、果てしなく長くなってしまうため、いろいろ中途半端になったところがありますが、とっかかりになれば幸いです。
次回は、機械語からアセンブリ言語、そしてC言語へって感じで進めたいと思います。
参考
以下の書籍を参考にしました.
電子計算機基礎論
作者: 手塚慶一
出版社/メーカー: 昭晃堂
発売日: 1993/12
メディア: 単行本
アセンブリ言語スタートブック
作者: 高田美樹
出版社/メーカー: 技術評論社
発売日: 2009/04/25
メディア: 大型本

絵文字入力パレット



※入力欄では、コード文字で表示されます。




[日記][目標]1月完走しました (0)
