1. 序論
コンピュータは20世紀後半に発明された新しい道具である.その出現以来,まだ数十年しかたっていないが,今日多くの人々に何らかの形で恩恵を与えている.直接的にコンピュータを利用することもあれば,旅行の予約など,他者を介して間接的に利用することもある.既に,携帯電話や家電製品などに組み込まれ,無意識のうちにコンピュータを使っているのが現状である.電子情報通信関連の技術者は,コンピュータをただ道具として使うだけでなく,その仕組みや構造を理解すると共に使いこなし,また,今以上に発展させていかなければならない.そのためには,コンピュータの使用法を学ぶだけではなく,その構造についても知っておく必要がある.本章では,コンピュータの構造を理解するために必要最小限の論理回路についての基礎知識を学ぶ
1.1 アナログとデジタル
現在利用されているコンピュータはあらためて説明するまでもないが,電子機器であり電気エネルギーによって動作している.例えば,水圧,気圧,熱,光など他のエネルギー源によって動作するコンピュータが作れないとは限らないが,実際のところその利便性から電気的な回路によってコンピュータは作られている.つまりコンピュータとは,複雑な電子回路の一種と考えることができる.我々が普段扱っている情報は,通常電気的な情報ではない.むしろその方が稀である.コンピュータを使って情報を処理するということは,情報を電気的な信号にいったん置き換え,それをコンピュータによって処理させ,電気的に得られた結果を我々の利用でき形態の情報に再び変換するという過程を経ている.
我々の扱う情報の形態は,さまざまであるが,大別するとアナログとデジタル量とに分けられる.アナログとは,時間,電流,電圧,など連続的に変化する物理量を形容する言葉である.一方デジタルとは,離散的な物理量を形容する言葉である.例えば,時間は連続的に進んでいるがLEDや液晶を使って時間を離散的な数値表示する時計は一般にデジタル時計と呼ばれている.対して従来の短長針の動きで時間を表わす時計をアナログ時計などと呼ぶこともある.この例からも分かるように,取り扱う情報がアナログ量であってもある程度の誤差を許容すればデジタルに直して表現することできる.アナログ量を取り扱うアナログ計算機も特定用途で過去に使われることはあったが,現在流通しているすべてのコンピュータの内部では,このデジタル情報をもとに処理を行っている.
1.2 2進数による情報の表現
デジタル量として最も単純なものは,2値論理といわれるものである.これは例えば情報が ない
( 偽
)か, ある
( 真
)か,数値を当てはめれば“ 0
”か“ 1
”というように2通りの状態で情報を表すものである.これを電気信号に当てはめれば,”偽”と”真”の状態を例えば電圧の”0V”と”5V”にそれぞれ割り当てることができる.電圧は連続的な値であるが,ある境界(しきい値)を決めてそれより小さければ0V,大きければ5Vと決めれば電気的に2値論理を取り扱うことができる.この電圧値を何ボルトと数値で取り扱うのではなく,Lowレベル(または単にL),Highレベル(または単にH)と表すこともある.以上をまとめて図1.1に示す.例えば電気回路においてLowレベルまたはHighレベルという2値は電源と負荷を接続した回路でスイッチがOFFかONかという2状態で簡単に実現できる.このように電気的な回路でデジタル量簡単に表現できることが最大の利点であり,コンピュータがデジタル量をもとに処理を行っている理由である.
10進数 |
2進数 |
16進数 |
---|---|---|
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 |
0 1 2 3 4 5 6 7 8 9 A B C D E F |
2進数と16進数の変換は非常に簡単である.2進数を4桁ごとに区切り,表1.2の通りに16進数を当てはめてゆけばよい.2進数から16進数への変換例を図1.2に示す.逆に16進数から2進数への変換は16進数の各桁を2進数に変換して並べればよい.
数値の表記に2進数を用いても加減乗除などの数値演算を行うことができる.図1.5は2進数における加算の例である.加算の場合,10進数の加算と同様に各桁を足していく.ただしこの場合,“1+1”は“2”とはならず“10”となり,桁上がりが生じる.
乗除算についても,図1.7及び図1.8にそれぞれ示す.2進数の乗算は,10進数の乗算を筆算で行う場合と同様に行えばよいが,2進数の場合は数値が0と1しかないので,乗数の0と1に対応して桁を左にずらしながら(左シフト)被乗数を並べ,その結果を足し合わせればよい.このように乗算は加算の繰り返しで実現できる.
2進数の除算についても,10進数の除算の筆算で行う場合と同様にシフト動作と減算の繰り返しによって行えばよい.ただし2進数の減算は2の補数表現による加算を用いることから実際には加え戻し法(復元法),または引きはなし法(非復元法)と呼ばれるより複雑な計算手法を用いなければならない.
1.4 論理回路とは
これまで述べてきた2進数の演算は,コンピュータ内部ではデジタル回路の組み合わせにより実現される.デジタル回路は1(真)または0(偽)という論理値をもとに演算を行うことから,論理回路とも呼ばれている.論理回路は次の2種類に大別される.
(1)組合せ回路
出力は入力の組み合わせによって完全に定義され,それが加えられた順序には関係しないもの.(2)順序回路
論理回路の出力がその時の入力のみでなく,回路の状態(履歴)によって決まるもの.