32bit 64bitの違い

コンピュータ

1ビットメモリ

1ビットのメモリがあります。

これは0か1かを記憶することができ、記憶した値をアウトプットとして出力します。

1ビットメモリ

記憶させる方法はsが1のときのiの値が記憶されます

例えば1を記憶させたい場合は、

  • まずiに1を送ります
  • 次にsを1にします
  • sを0にします

そうするとメモリにはsを1にしていたときのiが記憶されました。

iの値に関わらず記憶された値が出力されるので、iが0になったとしてもoutputは1のままです(sが0の場合)。

次にこのメモリを8個つなげて、sを1つにまとめてコントロールできるようにします。

8ビットメモリ(1バイト)

そうすることで、8つの0と1を記憶させることができます。

つまり8ビットのメモリができました。

そして、8ビットのメモリは1つの単位になっていてこれを1バイトと呼びます。

ANDゲート

さらに先ほどのメモリにANDゲートをつなげます。

ANDゲートはこのような性質を持っており、

ANDゲート

表を見ると、bのインプットが1のときaのインプットがそのままアウトプットとなることがわかります。

つまり、enablerを1にすることによってそのときのiの値をoutputとして出力することができます。

レジスタ

そして1バイトのメモリにそれぞれANDゲートをつなげると以下のようになります。

1バイトメモリとANDゲート

enablerを1にするとそれぞれのメモリに保存されている値(0か1)をoutputでき、

enablerを0にするとoutputはすべて0を出力します

つまりenablerは門番のような役割をしていて、1を入力するとメモリに記憶された値を、門を開けて通す。

0を入力すると門を閉めてメモリの値を通さないというような感じです

そしてこれらを一つにしたものがレジスタです。

8ビットのレジスタ

レジスタの中に入っている1bitのメモリの数はこの図では8個ですが、

メモリの数を増やせばより多くの数字を記憶することができるようになります。

中にあるbit数によって左右から出る選の数が変わるので省略してこのように描きます。

iとoの2重線はレジスタ内のbitの数を表しています。

レジスタ省略図

32bit~ 64bit~の意味

このレジスタの中に入っている1bitノメモリの数がよく聞く32bit版~や64bit版~の意味です。

つまり64bit版~というのはレジスタに64個の1bitメモリが入っているという意味なんですね。

レジスタ間のデータの移動方法

そしてレジスタの中のメモリに記憶されている、データをほかのレジスタに送るためにはどうすれば良いでしょうか。

レジスタ同士をこのようにつなげます。

R1→R2にデータを送りたい場合は、

  1. R1のeをon(1)にする。
  2. R2のsをon(1)にする
  3. R2のsをoff(0)にする

こうすることでR1に記憶されていたデータがR2にコピーされました。

ちなみにR1のデータは消えず、R2に元々あったデータは消滅します。

そしてこれらの8本の線には名前があり、バスと呼ばれます

バスと呼ばれる理由は、乗り物のバスに性質が似ているからです。

バスは決められたルートを走り、その途中にあるバス停で乗客を乗せたり下ろしたりします。

それと同じでこのバスではレジスタ(バス停)のデータ(乗客)を乗せて、他のレジスタに送っているということです。

 

今回はレジスタというものを勉強してみました。

つい最近までパソコンに性能として書いている32bitとか64bitとかは数字が大きい方がスゴイぐらいにしか思っていませんでしたが、

調べてみると1つのレジスタの中にあるbitの個数だったんですね。謎が解明されました。

コメント

タイトルとURLをコピーしました