[コンピュータ]コンピュータの仕組み(基本論理回路〜機械語)



コンピュータの仕組み(電気回路〜基本論理回路) - 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
メディア: 大型本







この日記は外部ブログから読み込まれています。
http://d.hatena.ne.jp/yokkuns/20090723/1248301186
Tags: なし  /  回路 | 演算 | メモリ | 加算 | 信号 | 制御 | 出力 | 機械 | オペレーション | 入力
Binder: yokkunsのバインダー(日記数:34/公開設定:全体に公開)

 

この日記にコメントをつけるには、ログインする必要があります。
会員登録がまだのひとは「freemlに会員登録する!」ボタンを押して会員登録してください!
freemlに会員登録する!

不適切な日記を見つけたら、こちらからご報告ください!




yokkunsさんのマイページ

Mail Address(GMOとくとくID):
Password:

パスワードを忘れてしまった方 >>

会員登録する!
最近書かれた日記リスト
PR
フランチャイズの情報ならアントレnet
フランチャイズの情報ならアントレnet
中古車ならカーセンサー
中古車ならカーセンサー

http://www.freeml.com/feed.php?u_id=7353618&f_code=1