ガラスのコンピュータ社会  RSSを登録する

コンピュータ社会は大変便利で、これまでには考えられなかったような環境を私たちにもたらしてくれます。しかし、便利さとは裏腹に、以前には考えられなかったような恐ろしさをもたらしています。そんな現代社会の脆弱性を明らかにしたいと思います。

  • 発行周期 ほぼ 月刊
  • 最新号 2009/10/25
  • 部数 32部
  • メルマガID 0001003702
  • 個別ページ
最新号をメルマガでお届けします    
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。
2009/10/25

論理回路の仕組み

コンピュータが処理を素早くこなす仕組みを紹介しましょう。

コンピュータが情報を処理するとき基本となるのが、論理回路です。
論理回路は、「AND」、「OR」、「NOT」のような基本的な論理演算を行う回路です。
論理回路の多くは半導体を使って作られていますが、ここでは一番簡単なダイオードとトランジスタを使います。
コンピュータを構成しているCPUやメモリ、そのほかの集積回路と呼ばれる部品の多くは、
ここで紹介する論理回路が山のように組み込まれたものなのです。
ダイオードは、一方向にだけ電流が流れるようにした半導体で、ダイオード記号の黒三角形の方向が流れる電流の方向です。
Aを陽極(アノード)、Kを陰極(カソード)と呼び、
A側がプラス、K側がマイナスのとき、AからBに向かって電流が流れます。
反対に、A側をマイナス、K側をプラスにしたときにも弱い電流がKからAの方向に流れるのですが、
その電流はとても弱いので部品としては、一方向にだけ電流を流す半導体と考えることができます。
ダイオードには足が二本しかありません。
しかし、集積回路でよく使われるトランジスタにはもう一つ足があります。
それぞれの足を、エミッタ(E)、ベース(B)、コレクタ(C)と呼んでいます。
トランジスタの記号の黒矢印の端子がエミッタを表します。
EをマイナスにしてCをプラスにすると、Bに電圧がかかっていないときには電流が流れませんが、
プラスの電圧をかけるとCからEに電流が流れます。
トランジスタを使うと、ベースBの電圧によってコレクタCからエミッタEへの電流を流したり止めたりできます。
つまり、電流のON、OFFをトランジスタを使うことで実現させるのです。ちょっとわかりにくいかも知れませんが、
ベース、コレクタ、エミッタと電気の流れを示しておきましょう。

   -C          ←E
   |          | 
→B |        B-|
   →E         -C

電池と電球で、直列と並列回路を作って、スイッチを入れたり切ったりすると、電球が点いたり消えたりしますが、
電気が点いた状態を「1」(オン)、消えた状態を「0」(オフ)と考え、この回路がほんの少し複雑になったもの、
と考えてもかまいません。

実際のコンピュータを構成している演算回路はAND、OR、NOTといった基本回路が複数組み合わせされています。
CPUの内部では、ALU(Arithmetic and Logic Unit)と呼ばれる部分で、算術論理演算装置と訳されています。
ALUが果たす役割は、四則演算(ベキ乗演算を含む)と論理演算を行うのですが、
算術演算を行う回路を算術演算装置、論理演算を行う回路を論理演算装置と呼ぶこともあります。
どちらも、CPUの中のCPUとでも呼ぶ重要な働きをする部分です。この演算装置以外にCPUを構成している装置には、 

   ・バスユニット
   ・プリフェッチ装置
   ・デコード装置
   ・制御装置
   ・算術論理演算装置
   ・メモリ管理装置

があります。情報の流れは、
   ・バスユニット
   ・プリフェッチ装置
   ・デコード装置
   ・制御装置
   ・算術論理演算装置
   ・メモリ管理装置
   ・バスユニット

のようになりますが、算術論理演算装置を上手に利用するためにその他の装置はある、
と考えていいでしょう。ですから、このALUが本当の意味でコンピュータの頭脳の中枢ということになります。
多少強引ですが、

   ・バスユニット→脳幹
   ・プリフェッチ装置→小脳
   ・デコード装置→小脳
   ・制御装置→小脳
   ・算術論理演算装置→大脳
   ・メモリ管理装置→大脳記憶域
   
   ということになります。

●コンピュータを流れる信号

実際にコンピュータの中で、どのように数字や文字が扱われているのかを説明しましょう。
8ビットで処理するとき、00000000~11111111までで256種の区別ができます。
では、大きな数値を扱うときはどうするのだ、という疑問が湧いてくるでしょう。
整数値を二進数で表現するときには、小数点が整数値を表す、二進数の最後のビットの右側にあると考えます。
このように、ある数を示す二進数表現の最後のビットの右側に小数点をいつも決めて表す方式を、
小数点の位置がいつも決まっていることから、固定小数点表示といいます。
固定小数点数は、小数点以下がいつも0ですから整数値ということになります。
それでは、小数点以下にも値がある実数値を二進数で表現するにはどうすればよいのでしょう。
小数点以下に値がある数値を2進数で表現するのは、実は大変やっかいなのです。
例えば0.1を二進数で表現しようとすると、正確に表すことができないのです。
この問題を解決するための仕掛けが、指数表現です。
0.1は、1×10^-1と表現します。0.001は1×10^-3ですね。
このようにすると、10のべき乗の数値を調整して同じ数値を表すことができるようになります。
このこの表示方法を小数点の位置が移動することから、浮動小数点表示と呼びます。
指数表現で0.001を1×10^-3と表現したとき、
1を仮数と呼び、10のべき乗の値の3を指数と呼びます。
これは10進数の世界ですが、同じように、二進数でも浮動小数点表示を利用して処理を行うのです。
   
   
   --------------------------------
   仮数			指数
    			2のべき乗	2進数表示
   1000000000000.0		0		00000000
   100000000000.00		1		00000001
   10000000000.000		2		00000010
   1000000000.0000		3		00000011
   100000000.00000		4		00000100
   10000000.000000		5		00000101
   1000000.0000000		6		00000110
   100000.00000000		7		00000111
   10000.000000000		8		00001000
   1000.0000000000		9		00001001
   100.00000000000		10		00001010
   10.000000000000		11		00001011
   1.0000000000000		12		00001100
   0.10000000000000		13		00001101
   0.010000000000000	    14		00001110
   --------------------------------

このように、私たちの普段使っている実数をコンピュータ内部では浮動小数点数形式を使って表現しているのですが、
コンピュータでの浮動小数点数は、私たちが使っている実数とはちょっと違っている点があります。
浮動小数点表示の仮数部は、二進数表示したときの小数点以下の各けたを表しています。
図に示すように、小数点以下1位は二分の一、第2位は四分の一、第3位は八分の一を表しているので、
十進数で書けばそれぞれ.5、.25、.125に対応それぞれ対応することになります。

  
最新号をメルマガでお届け
登録 解除

規約に同意して

登録した方には、まぐまぐの公式メルマガ(無料)をお届けします。

最近の記事

上へ戻る