表紙 <戻 進>

   メモリの仕組み   

  1. 第1項:メモリ?
  2. 第2項:超巨大な1列ロッカー
  3. 第3項:CPUのビット数
  4. 第4項:32ビットのロッカー

[1]メモリ?

メモリという単語は、コンピュータに興味のある人には馴染み深い言葉です。
このメモリに、コンピュータのデータが記憶されていることは、
コンピュータを良く知らない人でも聞いたことのある話だと思います。

一般人のコンピュータ知識としては、それで十分なのですが、
プログラミングをする場合には、それだけでは不十分です。
メモリがデータを記憶するのはどのような仕組みなのか、
それを、しっかりと理解しておく必要があるでしょう。

だからと言って、CMOSの構造を説明するつもりは毛頭ありません。
重要なのは、ハード的な仕組みではなく、ソフト的な概念です。
メモリとは、どんな仕組みでデータを蓄えておけるのか、
そして、プログラムでは、どんな方法でメモリを取り扱っているのかを説明します。

目次に戻る


[2]超巨大な1列ロッカー

メモリの中には、非常に多くの電子部品が組み込まれていて、
その1つ1つが、自分自身の状態を持っています。
状態、すなわち、オンかオフである、ということです。

そして、電子部品の状態がオンならば1、オフならば0というように、
それぞれの部品が、1であるか0であるかを記憶しています。

これは、例えるならば、超巨大な1列ロッカーのような構造です。
その数は、10や100といった、常識的な数では済まされません。
メモリ64MBのコンピュータならば、5億個以上のロッカーが並んでいます。

そして、そのロッカーには、番号がつけられています。
また、1つ1つのロッカーは、荷物という状態を持っています。
荷物が入っていたら1、入っていなかったら0としてカウントしましょう。

コンピュータは、このロッカーに荷物を詰め込んで、数値を記憶します。
全ての数値は、1と0の組み合わせで記憶されています。
要するに、コンピュータは数値を2進数で記憶しているのです。

目次に戻る


[3]CPUのビット数


ビットという言葉も、おそらく聞いたことがあるのではないでしょうか。
今、我々が使っているコンピュータは32ビットです。
今(原稿の執筆時期)は、AMD社の64ビットCPUが話題になってますが、
我々一般ユーザーが使うようになるのは、まだまだ先の話です。

ところで、このビットとは、一体何のことなのでしょうか。
実は、今回のテーマである、メモリともとても深く関係しているのです。

先ほど、メモリとは、超巨大な1列ロッカーであると説明しました。
そして、数値は、2進数として記録されていると説明しました。
しかし、このデータは全て2進数で記録されていますから、
いちいち1つ1つのデータをやりとりしていてはとても面倒です。

そこで、誰でも思いつくのが、何個かまとめて使う方法です。
例えば、メモリのデータの内、8個をまとめて使うようにすれば、
2進数で、00000000〜11111111の範囲の数、すなわち、
10進数で、0〜255、の範囲の数を使って計算出来るって寸法です。
これなら、結構マトモな計算が出来そうですね。

既に気づいた人がおられるかもしれませんが、その通りです。
CPUが1回で扱うメモリの2進数での桁数が、ビット数なのです。
CPUが何ビットと言ったような場合には、だいたいそのような意味です。
ただし、特殊命令でそれ以上のビット数を一度で計算できるCPUもあります。

なお、1ビットとは、2進数1桁のことを意味しています。
先ほどの場合、CPUの処理単位が32ビットであるということです。


[4]32ビットのロッカー


CPUは、メモリのデータの何個かをひとまとめにして取り扱うことは説明しました。
そして、現在のコンピュータは、多くが32個をひとまとめにして取り扱っています。
これを、32ビットコンピュータと呼ぶわけです。
ここから先では、この32ビットを前提として話を進めていくことにします。

32ビットのコンピュータは、32個のデータをひとまとめにして取り扱います。
つまり、超巨大な1列ロッカーは、32個ずつ仕分けして使えばいいのです。
しかし、現実には、8個ずつに仕分けされて、それぞれに番号がつけられています。
8個ずつにデータを区分けするとは、メモリを8ビット単位で取り扱うということです。

8ビットは1バイトとも呼ばれていて、コンピュータの基本的な単位となっています。
これは、色々なデータを扱う上で、8ビットは都合が良いからです。
8ビットで0〜255の数値を表せるので、比較的小さな数値の記憶には最適です。
また、2進数で動作するコンピュータには、8ビットはキリのいい桁でもあります。

この様な事情から、実際のコンピュータでのメモリの取り扱いは、
ロッカーを8個ずつにまとめて、8個を1単位として番号を割り当てています。
32ビットコンピュータでは、32ビットの番号が割り当てられています。
つまり、0番〜約42億番までの8ビットの数値を扱うことが出来るのです。

目次に戻る



<−前に戻る  先頭に戻る  次へ進む−>