コンピュータとコンピュータサイエンスの楽しさを伝えます。

【メモリ】一列に並んだ巨大な引き出し

【メモリ】一列に並んだ巨大な引き出し

「情報を作り、情報によって動く機械」であるプロセッサですが、大量の情報を記憶しておくことはできません。「材料となる情報(入力)」、「成果物となる情報(出力)」、「作業の経過の記録(仕掛データ)」、「作業の流れを記述した情報(プログラム)」、といった必要情報の格納がメモリの役割です。

メモリは、一列に並んだ巨大な引き出しをイメージするとよいです。

現代のメモリの物理構造は様々ですが、プログラマーは巨大な引き出しをイメージしておけば十分です。それぞれの引き出しは「アドレス(番地)」で指定できるようになっており、読み出しや書き込みは、アドレスで特定した個別の引き出しに対して行います。

引き出し一個一個は決まった長さのバイナリ文字列を格納する、という単純な構造ですが、それが集まると文書や画像、動画、科学データ、プログラムなど、どんな種類の情報も格納できる優れものです。ただ、電源が切れるとメモリは情報をすべて失ってしまう点が普通の引き出しとの大きな違いです。

 

プログラマーから見たメモリの構造

プログラマーから見たメモリの構造

メモリの物理構造は様々ですが、その論理的な構造は単純で、1バイト(8ビット)が入る容れ物が並ぶ巨大な引き出しと思えば十分です。

個々の引き出しにはアドレス(番地)が振られているので、アドレスの数からメモリ全体に格納できるバイト数を算出することができます。

例えば容量が4ギガバイト(4GB)のメモリを考えてみます。一つのアドレスに1バイト入るので、アドレスが4ギガ個あることになります。コンピュータ業界での4ギガは、32ビットで表せる2進数の数のことです。

つまり、このメモリのアドレスを10進数で表現すると、0から4,294,967,296までとなります。

1バイトを超えるサイズのバイナリ文字列は、続き番号の複数のアドレスを使って格納されます。

 

メモリの機能は「リード」と「ライト」の2つだけ

メモリの機能は「リード」と「ライト」の2つだけ

リード(read)は指定されたアドレスの内容をプロセッサに渡すこと、ライト(write)はプロセッサから渡された内容を指定されたアドレスに上書きすることです。どちらも、プロセッサ視点の用語になっています。

メモリは、「データレジスタ」と「アドレスレジスタ」という2つの容れ物を介してリードとライトを実行します。

図の説明

  • プロセッサがアドレス3を指定してリードを実行すると、アドレス3の内容がデータレジスタに格納されます。
  • プロセッサがアドレス2をを指定しデータレジスタに「00110000」を格納してライトを実行すると、アドレス2の内容が上書きされます。

メモリのリードとライトはアドレス単位が基本ですが、それでは1MBの画像データをメモリに格納しようとすると、約100万回のライトが必要になります。現代のプロセッサとメモリでは複数のアドレスへのリードやライトを一括して実行する機能も持っています。

 

 

  • Facebook
  • Hatena
  • twitter
  • Google+

2進数で遊ぼう!オリジナル商品

  • facebook
  • twitter

つぶやき

PAGETOP
Copyright © かながわグローバルIT研究所 All Rights Reserved.
Powered by WordPress & BizVektor Theme by Vektor,Inc. technology.