検索
特集/連載

「PCが重い」なら――パフォーマンスを支える“影のメモリ”を理解しようPC動作を支える仮想メモリ【後編】

PCのパフォーマンスを左右する「仮想メモリ」。普段は意識しにくいが、物理メモリと補完し合いながらPCのパフォーマンスを支えている存在だ。本稿では両者の違いや仕組み、進化の背景を解説する。

Share
Tweet
LINE
Hatena

 PCのパフォーマンスを左右する要素の一つに「仮想メモリ」がある。仮想メモリは、目に見えないところでPCの動作を支えている存在だ。それに対して、「物理メモリ」は実際にPCに搭載されている物理的なメモリを指す。

 仮想メモリと物理メモリは、どちらもPCの動作に欠かせない重要な存在だが、両者の役割の違いを正しく理解している人は意外と少ない。仮想メモリは「メモリが足りないときの補助」と説明されることもあるが、それだけでは不十分だ。PCのパフォーマンスやシステム設計にどう影響するのか。誕生の歴史から最新の進化までを押さえながら、仮想メモリと物理メモリの本質を理解しよう。

「仮想メモリ」と「物理メモリ」の大きな違いとは

 仮想メモリと物理メモリを比較する際、一般的に大きな違いの一つになるのは「処理速度」だ。物理メモリは仮想メモリよりも読み書きが高速だが、容量を増やすには専用のメモリチップを購入する必要があり、コストがかかる。PCがメモリを利用する場合、まず使用されるのは物理メモリだ。仮想メモリは、物理メモリの空き容量が不足してきたときに初めて活用される補助的な役割を担っている。

 ユーザーは、「DIMM」(Dual Inline Memory Module)などのメモリモジュールを購入してPCに追加搭載できる。こうした物理メモリの増設は、仮想メモリを使用する際に発生しがちな処理の遅延、つまり「スワップアウト」や「スワップイン」を原因とするパフォーマンス低下の回避に役立つ。スワップアウトとは、物理メモリの容量が不足した際に、使われていないデータを仮想メモリ(ストレージの領域)に一時的に退避させる処理のこと。スワップインは、その退避データを再び物理メモリに戻す処理を指す。

 PCに搭載できる物理メモリの最大容量は機種によって異なる。一方で、仮想メモリの容量はPCに搭載されているストレージの空き容量に依存する。仮想メモリの設定は、通常はOSで実施する。

 アクセスの仕組みにも違いがある。物理メモリはCPU(中央演算装置)から直接アクセスできるため、処理速度が高速になる。仮想メモリは、ストレージを経由するため、データのやりとりに時間がかかる。

仮想メモリの歴史

 仮想メモリが開発される前、初期のコンピュータは主記憶装置として磁気コアメモリを使用し、補助記憶装置として磁気ドラムを使用していた。1940年代と1950年代には物理メモリは高額で、供給が不足していた。プログラムのサイズと複雑さが増すにつれ、開発者はメモリ容量不足を気にする必要があった。

 初期の頃、プログラマーは利用可能なメモリ容量を超えた大きなプログラムを実行するために「オーバーレイ」と呼ばれる方式を採用していた。プログラムの常時実行しない部分をオーバーレイとして設定し、必要な時だけメモリ内に読み込む方式だ。実装には高度なプログラミング技術が必要で、実装の困難さが仮想メモリの開発の推進力となった。

 さまざまな説があるが、一般的にはドイツの物理学者フリッツルドルフ・ギュンチュが1956年に仮想メモリの概念を開発したとされる。ギュンチュは、今日のキャッシュメモリ(頻繁にアクセスするデータを一時的に保持するメモリ)と似た仕組みを開発した。

 最初の仮想メモリは、マンチェスター大学(The University of Manchester)が開発したスーパーコンピュータ「Atlas」のための一段階記憶システムだ。このシステムはページングを使用して仮想メモリアドレスを物理メモリにマッピングした。Atlasは1959年に開発され、1962年に稼働開始した。

 1961年、仮想メモリを持つ最初の商用コンピュータがBurroughsによって公開された。この仮想メモリはページング方式ではなく、セグメンテーション方式を採用していた。

 1969年、IBMの研究者が仮想メモリをサポートするメインフレームを開発した。1970年代の標準的なメインフレームとミニコンピュータ(小型のメインフレーム)は仮想メモリをサポートしていたが、初期のPCに組み込まれていなかった。当時はPCの用途ではメモリ不足は起きないと考えられていたためだ。しかし、それは誤りだった。Intelは1982年にプロセッサ「Intel 80286」の保護モードで仮想メモリを導入し、1985年の「Intel 80386」登場時にページングのサポートを導入した。現在、仮想メモリはMicrosoftのOS「Windows」の欠かせない機能となっている。

仮想メモリの未来

 データ分析やAI(人工知能)など、コンピュータの現代の用途を考えると、処理要件に応じて拡張可能な仮想メモリに対するニーズがなくなることはないだろう。

 仮想メモリの今後の発展には以下のような技術が寄与すると予想される。

  • クラウドコンピューティング技術
    • 仮想メモリの容量増加
  • 不揮発性メモリ技術
    • 読み書きの高速化
  • AI技術
    • メモリの機能強化とセキュリティ強化
  • 量子コンピューティング技術
    • 仮想メモリのパフォーマンス向上

関連キーワード

OS | CPU | ビジネスPC | DRAM


Copyright © ITmedia, Inc. All Rights Reserved.

ページトップに戻る