Subsections
情報の単位はビット(bit
2)と言う.1ビットは,"0"か"1"か,
"yes"か"no"かのように,2種類の情報を分けることができる
3."yes"か"no"とかのように
表現すると後の計算が面倒なので,今後はすべて"0"か"1"の記号を用いることにする.よ
うするに,"0"か"1"のいずれかが生じる事象
4で,"0"または
"1"を得たとき,1ビットの情報を得たという.
それでは,2ビットとはどういう情報であろうか?.それは,"00"か"01"か"10"か"11"のよ
うに4つの事象があるとき,それらのいずれかを受け取ったとき,2ビットの情報を受け取った
ことになる.同様に,"0と1がn個"あるような事象がある時に,それらの一つの事象を知
らされた場合,nビットの情報を受け取ったことになる.
これまでの話から,2進数の桁数がビット数になることが分かる.n桁の2進数はnビットの
情報を表すことが可能で,それは2
個の事象を分けることができる.
個の事象を分
けるために
ビット必要となると,
 |
(1) |
の関係がある.
秋田高専の学生数を800人とすると,一人一人を区別するために,
必要な情報量をビット数で答えよ.さらに,2進数で表現すると何桁必要か?.
ビット数は,
である.2進数で表現すると,10桁必要となる.
- 情報の単位は,ビットが用いられる.それは,"0"か"1"の2つの事象の1つの状態
を表す.
- 2進数の桁数がビット数である.
- 16進数の1桁は2進数の4桁なので,16進数の1桁は4ビット,2桁は8ビットである.
個の事象があるとき,それの一つの情報を得るためには,
ビット
必要である.
アセンブラ言語CASL IIが動作するコンピューターをCOMET IIという.これにはCPUとメモ
リーがある.第1回の講義で述べたように,メモリーにはアドレスとデータの内容がある.
このCOMET IIのメインメモリー(主記憶装置)は,図
1に示すとお
り,アドレス16ビット,メモリー16ビットとなっている.
- アドレスが16ビット,メモリーが16ビットになっている.
- アドレス1個あたり,1個のデータがある.
この図を見ても分かるように,2進数表示は紙面の面積が必要で紙の無駄である.もう少
し紙を節約し,更に分かりやすくするために,通常は図2の
16進数表示が使わる.
COMET IIでは,データは16ビット単位で扱われる.この16ビットの単位を1
ワード(1語)と呼ぶ.この1ワードは,教科書に書かれているように,便宜
上,上位8ビットと下位8ビットに分けられる.そうして,最下位のビットか
ら番号がつけられている.最下位のビット番号が0で,最上位が15である.コ
ンピューターの世界では,整数は0から数えることが多いので,それに慣れる必要がある.こうすると便利なことは,整数を表す場合,ビット番号が2進数の指
数を表す.すなわち,第0ビットは
,第7ビットは
,第15ビット
は
の桁を表すのである.まことに便利である.
CASL IIのプログラムではよほどのことが無い限り,整数しか取り扱わない.ひとつの整
数は,メモリーのひとつのアドレスに格納される.符号無し整数の場合,2進数で表現し
た整数がそのまま,メモリー上のデータとなる.メモリーに格納された整数の様子を図
3に示す.ただし,符号付整数か,符号無し整数かの判別は,プ
ログラム次第である.符号付きの整数については,次の章で示す.
その整数の範囲については,教科書の通りである.電卓で自分で確認してみよう.
図 3:
整数を格納しているメモリーの状態(16進数表示)
|
COMET IIのメモリーは先ほど述べたとおりである.皆さんが使っているIntelのPentiumの
メモリーはどうなっているのだろうか?.まず,アドレスバスは32 ビットである.通常の
コンピューターのデータは,8ビット単位で扱われ,その単位を1 Byteと言う.一つのア
ドレスに1 Byte(8 bits)のデータが格納されている.Pentium のアドレスバスは32ビット
ので,それが取り扱うことができるデータ数は,

である.

でG(ギガ)
5なので,4 GBytesのデータを扱うことができる.
また,データバスは64 bitsで,レジスター6は32 bitsであ
る.一度に32 bitsのデータを取り扱うことができるから,32bit CPUと呼ばれている.こ
こで,ひとつ疑問が生じる.1つのアドレスには8 bitsのデータしか格納されないのに,
64 bitsのデータを一度に取り扱うのは変と感じる.どうやっているかというと,pentium
では一度に8個のアドレスのデータを読み書きできるのである.
ひとつのアドレスに,64 bitsを格納できるようにすれば,問題がなくなるように考えら
れる.そうすると他の問題が生じる.今まで,8 bits単位でデータを取り扱ってきたので,
過去のデータやソフトウェアーとの互換性がなくなる可能性がある.
実際のコンピューターで使われるメモリーは,RAM(Random Access Memory)である.1ビッ
トのデータは,RAMの内部のコンデンサー7に電荷が有れば1
に、無ければ0になる。いったい、メモリー1枚にどれほどのコンデンサーがあるのだろう
か?。
- 近頃の市販の1枚のRAMは、512 MBytesである。
- 1 Byteは8ビットなので、1 Byteあたり8個のコンデンサーがある。
- 512 MBytes=2
Byteである。
以上のことから、512 MBytesのRAMの中に、

のコンデンサーがある。
約43億個である。非常に驚かされる。これが、1個の間違いも無く動く、どうなっている
のだろうか?
ホームページ:
Yamamoto's laboratory著者:
山本昌志
Yamamoto Masashi
2005-11-17