![見出し画像](https://assets.st-note.com/production/uploads/images/29173366/rectangle_large_type_2_1edb0a81c9a65a671cb385e2abdf45af.jpeg?width=1200)
アドレスとデータ
コンピューターの基礎知識の一環ですが、アドレスバスとデータバスについてです。
「アドレスは住所です、データはその住所に住んでいる人です」なんていう説明をむか~し聞いたことがあるかもしれません。
意外とこの説明は的を得ているのですが、メモリにはアドレスがあって、アドレスには番号がふってあります。
普通は0番地から始まり(ハードウエアによっては必ずしも0番地からではないですが)、そのメモリの許容量全部にアドレスが割り振られます。
最近はメモリも巨大化して、パソコン買うと、HDD/SSDが1TB(テラバイト)、メモリが16GB(ギガバイト)、などという巨大戦艦大和みたいなものが出てます。
CPUがキャッシュメモリを持っているのももはや当たり前ですが、キャッシュメモリの話はまた別の機会にします。
このメモリのサイズですが、最小単位は1Bit(ビット)と言って、データが0か1のいずれかを保持できる、つまり2通りしか取り得る値が存在しないものが複数集まって巨大になっているのです。
1Bitを8個並べたもののサイズを1Byte(バイト)と言って、これは2通りの値を持つ1Bitが8個集まっているので、2の8乗で256種類(00000000~11111111の8桁の0と1の取り得る場合の数)の取り得る値が存在します。
アドレスはこの1Byte単位でデータを配置している1つ1つの箱に住所を付けるということです。
0番地は00100001、1番地は10011100、・・・みたいな感じ。
サイズの単位は、
・1KB(キロバイト)=1024Byte
・1MB(メガバイト)=1024KByte=1024×1024Byte
・1GB(ギガバイト)=1024MByte=1024×1024×1024Byte
・1TB(テラバイト)=1024GB=1024×1024×1024×1024Byte=1099511627776Byte(1兆越え!!!)=8796093022208Bit
1024は2の10乗なのですが、コンピューターの世界は2のN乗が基本的な原単位となっていると覚えておきましょう、1Bite=8Bitの8も2の3乗です。
CPUとメモリのやりとりは、非常に簡単に言うと
①CPUがアドレス=XXのデータをちょうだいとメモリに言う
②メモリが○○ですと回答する
③CPUがそのデータを命令と解釈して命令を実行する
④CPUの演算結果をメモリに記憶する必要があれば、メモリにアドレス=YYにデータ=ZZを書いてとお願いする
⑤メモリは言われたアドレスに言われたデータを書く
④と⑤は必要な時だけですが、①②③は命令フェッチと言って、CPUはずっと休まずこれを繰り返し実行します(アドレスは命令されない限り連続した次のアドレスから読みます)。
(次回に続く)
いいなと思ったら応援しよう!
![toshi-o](https://d2l930y2yx77uc.cloudfront.net/assets/default/default_profile_4-e3b57528da29acad20d5a2db33268c87f1d39015448757ddf346d60fb5861e49.png?width=600&crop=1:1,smart)