主記憶装置(メインメモリ)とは — 定義と仕組み、ビット・バイトの基礎
主記憶装置(メインメモリ)の定義と仕組みを図解でやさしく解説。CPUとの関係やビット・バイトの基礎から応用まで、初心者にもわかる入門ガイド。
コンピュータのメモリは、一時的な記憶領域です。中央処理装置(CPU)が必要とするデータや命令を保持します。多くの場合、プログラムを実行する前に、そのプログラムはストレージ(HDDやSSDなど)からメモリにロードされます。これにより、CPUはプログラムやデータに高速にアクセスできるようになります。メインメモリはほとんどすべてのコンピュータで必要とされる基本的な部品です。
バイナリとトランジスタ
コンピュータは通常、バイナリのデジタル電子機器であり、情報は「オン/オフ」の2つの状態で表されます。オンとオフは0と1で表され、これらの最小単位がビットです。バイナリの状態を実現するために、多くの電子回路ではトランジスタが使われます。メインメモリの各記憶セルはトランジスタやコンデンサなどの素子で構成され、これらが集まって大量のビットを保持します。
ビットとバイトの基礎
メモリ内の各オン/オフの設定は2進数の桁、すなわちビットと呼ばれます。基本的に8つのビットをまとめた単位をバイトと呼びます。1バイトで表せる値の範囲は0〜255(2^8−1)です。バイトは内部的に4ビットずつの2つのニブル(英語: nibble)に分けることもでき、ニブルは半バイトの意味で使われます。
用語の由来については、bit(binary digitの略)が「ビット」で、byteは「バイト」として用いられます。歴史的には誤読や混乱を避けるためにスペルを変えて「byte」とした経緯があります。ニブル(nibble)は英語の語呂合わせ(「一口サイズ」)から来ており、半バイト(4ビット)を指します。
容量の単位と実際の大きさ
- 1 bit = 0 または 1
- 1 byte = 8 bit
- 1 KB(キロバイト)≈ 1,024 byte(厳密表記では KiB = 1,024 byte)
- 1 MB(メガバイト)≈ 1,024 KB、1 GB(ギガバイト)≈ 1,024 MB、1 TB(テラバイト)≈ 1,024 GB
現代のパソコンではメインメモリが数GBから数十GB、サーバーでは数百GB〜数TBとなることがあります。用途やOSによっては、仮想メモリやスワップ領域を用いて物理メモリ容量以上のアドレス空間を扱います(後述)。
メインメモリの種類と役割
メインメモリにはいくつかの種類がありますが、一般的には以下のように区分されます。
- RAM(Random Access Memory) — 読み書き可能で、一般的なメインメモリ。主にDRAM(動的RAM)が大量記憶に使われ、SRAMはキャッシュなど高速性が要求される領域で使われます。DRAMは定期的なリフレッシュを必要としますが、容量当たりのコストが低いのが特徴です。
- ROM / フラッシュメモリ — 電源断後も内容が残る不揮発性メモリ。BIOSやファームウェアの保存に使われます。最近は不揮発性メモリ技術(NVRAM、3D XPointなど)も登場し、システムの設計に新しい選択肢を提供しています。
- キャッシュメモリ — CPU内部や近傍にある非常に高速なSRAM。レジスタとメインメモリの中間にあって、アクセス遅延を短縮します(L1/L2/L3キャッシュなど)。
アクセス方法とアドレッシング
メモリ内の各バイトはアドレス(番地)で参照されます。CPUはアドレスバスを通じてメモリ位置を指定し、データバスでデータの読み書きを行います。CPUのワード幅(例えば32ビット、64ビット)は一度に扱えるアドレスやデータの大きさに影響します。また、エンディアン(バイト順序)によってマルチバイト値のメモリ配置が異なります。
速度と階層構造
メモリは「速度」と「容量」のトレードオフがあります。最も高速なのはCPUレジスタやL1キャッシュ、次いでL2/L3キャッシュ、メインメモリ(DRAM)、その下にSSD/HDDなどのストレージが来ます。この階層をうまく利用することで、システム全体の性能を向上させます。
仮想メモリとスワップ
ほとんどの現代的なOSは仮想メモリを使い、各プロセスに連続した仮想アドレス空間を提供します。物理メモリが不足すると、OSは使われていないページをディスク上のスワップ領域やページファイルに退避(スワップアウト)し、必要になれば再び読み込む(スワップイン)ことで動作を継続します。これにより、実際の物理メモリ容量よりも大きなメモリ空間を扱える一方で、ディスクアクセスが発生すると速度が大きく低下します。
実用上のポイント
- プログラムの動作を速くするためには、十分なメインメモリと適切なメモリ管理が重要です。
- メモリ不足はスワップによる性能低下の主因になります。常に余裕のある容量を確保することが望ましいです。
- 高性能用途では、メモリの周波数、レイテンシ、チャネル構成(デュアル/クアッドチャネル)なども性能に影響します。
以上がメインメモリの基本的な定義と仕組み、ならびに桁やビットとバイトに関する基礎知識です。初歩的な理解があれば、メモリの種類や容量、速度の違いを把握して適切なシステム設計やトラブルシューティングが行えるようになります。
記憶の中の文字
メモリのバイトは、数字、文字、記号などの文字を表すコードを格納するために使用されます。8ビットで256種類のコードを格納することができます。これで十分だと考えられ、バイトは8ビットに固定されるようになった。これにより、10進数10桁、小文字26文字、大文字26文字、多くの記号を格納することができます。初期のコンピュータは1バイトに6ビットを使用していました。これは64種類のコードを与えた。これらのコンピュータには小文字はありませんでした。
コンピュータ科学者たちは、それぞれの文字を表現するコードについて合意しなければなりませんでした。現代のコンピュータのほとんどは、情報交換のための米国標準コードであるASCIIを使用しています。ASCIIでは、各コードは8ビット(0と1の任意の組み合わせ)で、1つの文字を形成します。文字Aはコード01000001で表されます。
すべての世界の言語のすべての異なる文字を可能にするために、現代のコンピュータは256以上の異なる文字を必要とします。Unicodeと呼ばれる別のコードシステムは、各文字に1から4バイトを使用して1,112,064の異なる文字を可能にします。
メモリアドレス
コンピュータのCPUは、個々のバイトにアクセスすることができます。それは各バイトにアドレスを使用します。コンピュータのメモリのアドレスはゼロから始まり、コンピュータが使用できる最大の数まで上がります。古いコンピュータでは、アドレス指定できるメモリの量に制限がありました。32ビットコンピュータは4GBまでのメモリをアドレスすることができます。最新のコンピュータは64ビットを使用しており、18,446,744,073,709,551,616バイト=16エクサバイトのメモリをアドレスすることができます。
コンピュータが使用する数字は非常に大きくなることがあります。簡単にするために、K(キロバイトの場合)やKi(キビバイトの場合)という単位を使うことができます。コンピュータのメモリでは、数字は2の累乗です。1キビバイトは10の2乗、つまり2×2×2×2×2×2×2で、210=1024バイトと書きます。例えば、メモリの64KiBまたは64KBと書かれた64キバイトは、1,024×64=65,536バイトと同じです。メモリの容量が大きくなると、メガバイト(MB)またはメビバイト(MiB)、ギガバイト(GB)またはジバイト(GiB)という単位が使われます。コンピュータ・メモリの1メガバイトとは、220バイトまたは1024KBを意味し、1,048,576バイトである。1ジバイトは230バイトまたは1024MBを意味します。
数字は2の倍数です。これが、キログラムの場合のように1000ではなく、1キロバイトのメモリが1024バイトである理由です。この混乱を避けるために、国際電気標準会議(IEC)では2進数をkibibibyte, mebibibyte, gibibyteと呼んでいます。また、キロバイト、メガバイト、ギガバイトは10乗の意味で使用しています。Joint Electron Device Engineering Council (JEDEC) は古い名前をそのまま使っています。さらに悪いことに、ハードディスクドライブ(HDD)のようなコンピュータのストレージのサイズは、10のべき乗で測定されています。つまり、500GBのディスクドライブは500×1000×1000×1000バイトです。これは、500 x 1024 x 1024 x 1024 x1024である500GBのメモリよりもはるかに少ないです。ほとんどのコンピュータ科学者はまだ古い名前を使っていて、メモリや記憶装置について話すときには単位が違うことを覚えておかなければなりません。
読み取り専用メモリ
コンピュータが常に必要とするプログラムや命令があります。ROM(Read Only Memory)とは、これらの重要な制御プログラムやシステムソフトウェアを格納し、プログラムの起動や起動などの機能を実行するために使用される永久メモリのことです。ROMは不揮発性です。つまり、電源を切っても内容が失われることはありません。その内容は、コンピュータを構築したときに書き込まれますが、最近のコンピュータでは、ユーザーが専用のソフトウェアを使用して内容を変更することができます。
ランダムアクセスメモリ
ランダムアクセスメモリ(RAM)は、コンピュータシステムのワーキングメモリとして使用されます。入力データ、中間結果、プログラム、その他の情報を一時的に記憶します。読み出しおよび/または書き込みが可能です。通常は揮発性で、電源を切るとすべてのデータが失われることを意味します。ほとんどの場合、データストレージとして使用されるハードディスクから再度ロードされます。
不揮発性メモリ
不揮発性メモリとは、電源が入っていないときに記憶された情報を保持するコンピュータメモリのことである。
不揮発性メモリの例としては、以下のようなものがあります。
- よみとりせんようメモリ
- フラッシュメモリ
コンピュータのストレージを指すこともあります。これらは常に不揮発性である。
例としては、inlcude.
- ソリッドステートドライブ(SSD)やUSBフラッシュドライブのように、フラッシュメモリを使用するソリッドステートデバイス。
- ハードディスクドライブ(HDD)、フロッピーディスク、磁気テープなどの磁気コンピュータ記憶装置
- CD-ROM、DVD-ROM、ブルーレイなどの光ディスク
- 紙テープやパンチングカードなどの紙の収納

ソリッドステートドライブは、不揮発性ストレージの一例である。
質問と回答
Q:コンピュータ・メモリとは何ですか?
A:コンピュータのメモリは、中央処理装置(CPU)がアクセスするためのデータと命令を保持する一時的な記憶領域です。
Q:プログラムはどのように実行されるのですか?
A:プログラムが実行される前に、CPUが直接アクセスできるように記憶装置からメモリにロードされなければなりません。
Q:バイナリーデジタルエレクトロニクスとは何ですか?
A:バイナリ・デジタル・エレクトロニクスとは、コンピュータの電気をオン・オフするためにトランジスタを使用し、オンとオフ、ゼロとイチという2つの状態を作りだすことです。
Q:ビットとバイトとは何ですか?
A:コンピュータのメモリ内の1つのオン/オフ設定を2進数の数字またはビットと呼びます。8つのビットの集まりをバイトと呼びます。
Q:ビットとバイトという言葉はどこから来たのですか?
A:ビットとバイトという言葉は、コンピュータ科学者によって作られました。「ビット」は2進数の「ビ」と桁の「ト」を組み合わせたもので、「バイト」は混乱を避けるために「バイト」から変更されたものです。
Q:ニブルとは何ですか?
A:ニブルとは、1バイトの半分で、4ビットずつで構成されています。一口分の半分と考えられていたため、このような名前になった。
Q:ニブルという言葉は誰が考えたのですか?
A:ニブルという言葉は、コンピュータ科学者が1バイトの半分を表す適切な言葉を必要としていたときに作ったものです。
百科事典を検索する