コンピュータメモリについて
このセクションでは、PCが現在使用中のプログラムやデータを格納し、プロセッサにデータを供給したりプロセッサからの結果を受け取ったりするパイプラインとなる汎用メモリについて解説します。「読み書き可能なメモリ」または「Random Access Memory (RAM)」と呼ばれる汎用メモリは、データの読み取りと書き込みの両方が可能である必要があります。現代のPCでは、以下の2種類のRAMが使用されています。
ダイナミックRAM
「ダイナミックRAM (DRAM)」は、データを格納してもわずか数分の一秒後には失われてしまうため、システムが常に「リフレッシュ」し続ける必要があります。これがパフォーマンスの低下を招き、速度を制限する要因となります。一般的なDRAMは60ナノ秒のアクセス速度を提供しますが、安価で消費電力が比較的少ないのが特徴です。
スタティックRAM
「スタティックRAM (SRAM)」は、リフレッシュを必要とせず、電源が供給されている限り自動的に内容を保持します。SRAMはDRAMよりも桁違いに速いアクセス時間を提供しますが、高価で消費電力も大きくなります。
PCは、これらの特性を活かした階層型メモリ構造を採用しています。
メインメモリ
PCメモリの大半にはDRAM(現代のシステムでは後述の「SDRAM」という派生版が使用されます)が使われており、これは「メインメモリ」と呼ばれます。通常256 MBから1 GB以上の大容量ですが、現代のCPUに追いつくには速度が不足しています。メインメモリは、CPUが必要とするプログラムやデータを一時的に保存する場所であり、CPUとディスク間のバッファとして機能します。
キャッシュメモリ
「キャッシュメモリ」は、CPUとメインメモリ間のアクセスをバッファリングする、高速なSRAMを用いた小容量のメモリです。
現代のPCには2層のキャッシュメモリが存在します。
一次キャッシュメモリ
「一次キャッシュメモリ」は「レベル1キャッシュ」または「L1キャッシュ」とも呼ばれ、通常16~128 KBの非常に高速なメモリがCPUと同じチップ上に搭載されています。L1キャッシュのサイズと効率は、CPUのパフォーマンスを決定づける主要な要素です。L1キャッシュの量と種類は使用するCPUによって決まるため、アップグレードはできません。
二次キャッシュメモリ
L1キャッシュだけでは、プロセッサとメインメモリ間の速度差を解消するには不十分です。「二次キャッシュメモリ」は「レベル2キャッシュ」または「L2キャッシュ」とも呼ばれ、コストとパフォーマンスの妥当な妥協点としてそのギャップを埋める役割を果たします。L2キャッシュは、Intel Pentium 4やCeleron、AMD Athlon 64やSempronを含むすべての現代のプロセッサにおいて、CPUパッケージ(またはCPU基板自体)の一部となっています。現代のプロセッサのL2キャッシュメモリサイズは、128 KBから2 MBの範囲です。
キャッシュを使いこなす
プロセッサに搭載されているキャッシュメモリの量は、特に小さなデータセットを扱う場合にパフォーマンスに劇的な影響を与えることがあります。例えば、ほぼ同じ2つのプロセッサでSETI@Home (http://setiathome.ssl.berkeley.edu/) クライアントをテストした際、L2キャッシュが512 KBのプロセッサと1 MBのプロセッサを比較すると、後者は前者の半分以下の時間でワークユニットを完了させました。これは、ワークユニット全体が1 MBのL2キャッシュには収まったものの、512 KBのL2キャッシュには収まらなかったためです。1 MBのL2キャッシュに収まらないほど巨大なデータセットを使用する同様の分散処理アプリケーションを実行した場合、L2キャッシュが大きいプロセッサの速度向上はわずかでした。似たような2つのプロセッサで迷っているなら、常にL2キャッシュが大きい方を選んでください。
メモリの種類
最近のシステムでは、以下のいずれかの種類のメインメモリが使用されています。
同期式DRAM
「同期式DRAM」は「SDRAM」とも呼ばれ、1996年に出荷が開始され、2001年頃までPCで広く使用されていました。現在では廃れた非同期形式のメモリと異なり、SDRAMはCPUと共通のクロックリファレンスを共有します。CPUとメモリが同期しているため、CPUは任意に待機する必要がなく、必要な時にいつでもメモリとデータを転送できます。SDRAMの速度は、かつてのメモリ形式のようにナノ秒ではなく、MHzで規定されます。同期式DRAMには以下の形式があります。
JEDEC SDRAM
「JEDEC SDRAM」または「PC66 SDRAM」は、後の「PC100 SDRAM」や「PC133 SDRAM」と区別するためにそう呼ばれています。
PC100 SDRAM
「PC100 SDRAM」は、100 MHzのFSBを使用するPentium IIおよびPentium IIIプロセッサでの使用向けに定格されています。
PC133 SDRAM
「PC133 SDRAM」は133 MHzのFSBでの使用向けに定格されています。PC133メモリがあれば、PC66やPC100メモリがインストールされたシステムを安全にアップグレードできると決めつけてはいけません。特にIntel 440BXおよび810シリーズチップセットに基づくシステムの一部はPC100メモリを必要とし、PC133メモリをインストールしても正しく動作しません。
一般的に、PC66、PC100、PC133 SDRAMモジュールはまだ入手可能ですが(流通は限られています)、SDRAMを使用するシステムはアップグレードの候補としては不適切です。最新のSDRAMシステムでさえ5年以上前の製品であり、耐用年数の終わりに近づいています。1 GHz以上のPentium IIIモデルのような最速のSDRAMシステムは、二次的な役割を果たすには十分な速度ですが、SDRAMのメガバイトあたりのコストが非常に高いため、他の古いシステムからメモリを流用する場合を除き、アップグレードには経済的合理性がありません。
DDR-SDRAM
標準的なSDRAMと比較して、「Double Data Rate SDRAM (DDR-SDRAM)」はクロックサイクルあたりのデータ転送量を2倍にし、実質的にメモリ帯域幅のピークを2倍にします。DDR-SDRAMは標準的なSDRAMの進化した改良版であり、現在では区別するために「Single Data Rate SDRAM」または「SDR-SDRAM」と呼ばれることもあります。DDR-SDRAMはSDR-SDRAMと製造コストがほぼ同じであるため、すぐにSDR-SDRAMを過去のものとしました。
DDR-SDRAMメモリモジュール(DIMM:Dual In-line Memory Module)に使用されるチップは、動作速度に基づいて命名されます。例えば、100 MHzのチップは200 MHzまでダブルパンプされるためDDR200チップと呼ばれます。同様に、133 MHzで動作するチップはDDR266、166 MHzで動作するチップはDDR333、200 MHzで動作するチップはDDR400チップと呼ばれます。
チップ速度で指定されるSDR-SDRAM DIMMとは異なり、DDR-SDRAM DIMMは帯域幅で指定されます。
データパスは64ビット(8バイト)幅です。例えば、DDR200チップを使用するDDR-SDRAM DIMMは、8バイトを1秒間に2億回転送するため、合計帯域幅は1,600メガバイト/秒となり、PC1600 DIMMと呼ばれます。同様に、DDR266チップを使用するものはPC2100、DDR333チップを使用するものはPC2700、DDR400チップを使用するものはPC3200とラベル付けされます。
PC3200 DDR-SDRAMモジュールの価格下落により、それより低速なDDR-SDRAMはすぐに市場から消えましたが、PC2700モジュールは限定的に流通しています。PC2100以下のDDR-SDRAMの入手性が低くても、それらの低速版を使用するシステムにとっては問題にはなりません。なぜなら、PC3200メモリはそれら下位互換性があるからです。
速ければ良いというものではない
ゲーマーやオーバークロッカーなどの熱心なユーザーをターゲットにした、PC3500、PC4000、PC4200以上の高パフォーマンスメモリモジュールがあります。これらの高価なモジュールは、システムを定格速度以上にオーバークロックしない限り、何の恩恵ももたらしません。
混ぜるな危険
高速なモジュールと低速なモジュールを混ぜると、高速なメモリはインストールされている最も遅いモジュールの速度に合わせて動作します。また、一部のマザーボードは混合速度のメモリをうまく処理できません。低速なDDR-SDRAMの容量が不足しており、プロセッサがPC3200 DDR-SDRAMの高速性を活かせる場合は、単にPC3200モジュールを追加するよりも、古いモジュールを交換する方が合理的な場合が多いです。
DDR-SDRAMを使用するシステムは、アップグレードの良い候補です。ラベルが貼られていない場合、モジュールの製品番号をメーカーのウェブサイトで確認することで、速度やその他の特性を特定できます。DDR-SDRAM DIMMは184ピンを使用しており、ピン数と切り欠きの位置を確認することで、168ピンのSDR-SDRAMや240ピンのDDR2-SDRAMメモリモジュールと見分けることができます。「図6-2」はDDR-SDRAM DIMMを示しています。
図6-2:DDR-SDRAM DIMM
DDR2 SDRAM
2003年初頭までには、オリジナルのDDR-SDRAM技術は限界に達しつつありました。AMDとIntelがより高速なFSBへと移行する中で、DDR-SDRAMは追いつくのに苦労していました。主流のDDR-SDRAMはPC3200が上限です。PC3200メモリを使用したデュアルチャネルDDRチップセット(対になったメモリモジュールの帯域幅を結合する)は、ピーク帯域幅を6,400 MB/sに制限します。これは、主流のPentium 4モデルのように、800 MHzのFSBで動作する64ビット(8バイト)幅のメモリチャネルを持つプロセッサの帯域幅要件と一致しますが、新しいプロセッサが登場すると、デュアルチャネルDDR-SDRAMでさえプロセッサの帯域幅増加に追いつけなくなります。
長期的な解決策は「DDR2 SDRAM」です。DDR2は、帯域幅の増加、低電圧化(DDRの2.5Vに対し1.8V)、低消費電力化、パッケージの改善など、標準的なDDR技術に一連の進化した改良を組み込んでいます。DDR-SDRAMが同じクロックレートで動作した際にSDR-SDRAMの帯域幅を2倍にしたのと同様に、DDR2-SDRAMは電気インターフェースの速度を2倍にすることで、DDR-SDRAMの帯域幅を2倍にします。DDR2 DIMMは、184ピンのDDR-SDRAMやそれ以前のコネクタと互換性のない新しい240ピンコネクタを使用します。「表6-1」は、比較としてPC3200 (DDR400) DDR-SDRAMを含め、DDR2-SDRAMの重要な特性をリストしています。
表6-1:DDR2の特性
Intelは導入当初からDDR2を強く推進しましたが、普及は2つの理由から遅れました。第一に、DDR2メモリは当初、DDRメモリに対して200%から300%も高い非常に高値で販売されていました。2005年後半までにはその差は15%から20%まで縮まり、DDR2はより合理的な選択肢となりました。第二に、DDR2はDDRよりもはるかに高い帯域幅を提供しますが、その一方で「レイテンシ」もはるかに高くなります。実質的には、DDR2はDDRより高速にデータを配信できますが、データの配信を開始するまでに時間がかかるということです。ビデオ編集のようなシーケンシャル(逐次)アクセスを主に利用するアプリケーションでは、DDR2の帯域幅の利点が明らかに高いメモリパフォーマンスをもたらします。一方、多くのパーソナル生産性向上プログラムのようにメモリをランダムにアクセスするアプリケーションでは、DDRのレイテンシの利点が有利に働きます。DDR2-SDRAM DIMMは240ピンを使用しており、ピン数と切り欠きの位置を確認することで、168ピンのSDR-SDRAMや184ピンのDDR-SDRAMメモリモジュールと見分けることができます。
Rambus RDRAM
「Rambus RDRAM」は、IntelとRambusが共同開発した独自のRAM規格です。Rambus RDRAMは「RIMM」と呼ばれるモジュールにパッケージ化されています(これは頭字語ではなく商標です)。
RDRAMメモリには「Base Rambus」、「Concurrent Rambus」、「Direct Rambus」の3種類があります。最初の2つは現在では廃れており、ゲームコンソールなどのデバイスにのみ使用されていました。PCで使用されるすべてのRDRAMメモリはDirect Rambusメモリです。RDRAMはPC600、PC700、PC800、PC1066という4つの速度で製造されてきましたが、現在入手可能なのはPC800とPC1066のみです。DDR-SDRAMと同様に、RDRAMモジュールも帯域幅に応じて命名されますが、違いがあります。RDRAMは16ビットまたは18ビットのデータパス(SDRAMの64ビットに対し)を使用して一度に2バイトを転送します。そのため、PC800 RDRAMの帯域幅はわずか1.6 GB/s、PC1066でも2.133 GB/sであり、DDR-SDRAMやDDR2-SDRAMの帯域幅よりもはるかに低いです。
1つに2つのモジュール
RDRAM RIMMはもともと16ビットまたは18ビットのパーツとして提供されていました。デュアルチャネルRDRAMマザーボードでは、これらのモジュールはチャネルごとに1つずつ、ペアでインストールする必要がありました。現在入手可能なPC1066 32/36ビットRDRAM RIMMは、実質的に2つの16ビットまたは18ビットRIMMを1つのパッケージにまとめたものであり、デュアルチャネルRDRAMシステムに単体でインストールできます。
RDRAMはレイテンシの問題も抱えており、そのレイテンシはRDRAMデバイスの数が増えるにつれて増加します。導入当時は潜在的により高い全体的パフォーマンスを提供していましたが、より高速で安価なDDR-SDRAMがすぐにデスクトップシステム向けとしてのRDRAMを過去のものとしました。RDRAMベースのシステムはアップグレード可能ですが、システムの古さと追加RDRAMのコスト、そしてマザーボードを交換してDDR-SDRAMやDDR2-SDRAMに切り替えるコストを慎重に比較検討してください。
RambusはもはやPC用ではない
Rambusは「XDR DRAM」というRDRAMの後継機を導入しました。これは価格はともかく性能面ではDDR-SDRAMと競合するものです。XDR DRAMはSonyのゲームコンソールPlayStation 3で使用されていますが、既存のPCチップセットでXDR DRAMをサポートするものはありません。Rambusメモリを搭載したPCはすべて、現在、その設計耐用年数の終わりに近づいています。
システムの古さを知ることで、システムに搭載されている可能性が高いメモリの種類を判断できます。「図6-3」は、過去10年間に新しいシステムにインストールされてきたメモリの種類のタイムラインを示しています。
図6-3:年ごとの新システムにおけるメモリの種類
2005年後半の時点でのPCメモリの展望は、今後数年間は予測可能です。PC3200 DDR-SDRAMメモリは引き続きローエンドシステムで使用され、古いシステムをアップグレードするユーザー向けに広く利用可能です。DDR2-SDRAMは2005年にIntelベースのシステムでようやく足がかりを築きました。2006年を通してAMDがDDR2互換プロセッサを導入するにつれ、DDR2は主流のメモリ技術となり、徐々にDDR-SDRAMを置き換えていくでしょう。
0 件のコメント