Go to Kingston.com 日本 Homepage 日本  
Kingston メモリツール


ULTIMATE メモリガイド

メモリの働き

前の項で、パフォーマンスを最大限にするために通常CPUの近くに位置していますと説明しました。ここではさらに詳しく見ていきます。

メモリとプロセッサの関係


一般的なコンピューターのシステム図


CPUはしばしばコンピューターの頭脳と呼ばれます。ここではすべてのコンピューター処理が行われます。

チップセットはCPUを補佐します。ここではプロセッサと他のコンポーネントとの間で行われる情報の伝送を助け、多くのシステムは1つ以上のチップセットがあります。

メモリコントローラーはチップセットの一部に組み込まれていて、メモリとCPUの間の情報の伝送を手助けします。

バスとは、CPUやメモリ、その他の入出力装置をつなぐデータの経路のことです。バスもしくはバスアーキテクチャの設計はどれだけ速く多くのデータをマザーボード上で伝送できるかで決まります。また、システム上には、コンポーネント毎のさまざまな種類のバスがあります。例えば、メモリバスはメモリコントローラーからメモリソケットまでのバスのことです。最新のシステムでは、CPUとメモリを結ぶFrontside Bus(FSB)とメモリコントローラーとL2キャッシュを結ぶBackside Bus(BSB)があります。

メモリ速度

CPUがメモリから情報を引き出す際は、メモリコントローラーを通して命令を出します。メモリコントローラーはメモリに命令を伝え、CPUに返答します。CPUからメモリコントローラーを通してメモリ、そしてまたCPUへ戻るサイクルは、バスの速度などと同様にメモリ速度に影響します。 メモリ速度は、通常メモリのアクセスタイムをメガヘルツ(MHz)やナノセカンド(ns)という単位で測定し表記されます。

アクセスタイム(ナノセカンド)

アクセスタイムはメモリモジュールがデータを書込み、読み出す準備ができる間の時間です。以前メモリチップやモジュールは80nsから50ns程度のアクセスタイムでした。アクセスタイムはその数値が低くければ低いほど、速度が速いことを示します。

例えば、メモリコントローラーがメモリにデータを要求した際のメモリのアクセスタイムが70nsとします。次にメモリコントローラーからCPUへデータを送る時間を125nsとします(メモリコントローラーはデータの流れを管理するため時間がかかります)。そうすると、アクセスタイムが70nsのメモリからCPUへデータを送る場合、合計195nsもの時間がかかることになります。これらのデータはメモリモジュールからCPUまでバスを通して伝送されます。



メガヘルツ(MHz)

Synchronous DRAM以降のメモリチップは、メガヘルツ(MHz)単位で速度を表すことができ、またコンピューターのシステムクロックと同期します。システムクロックと同期できることで、システムのほかのコンポーネントとも容易に同期することができました。この速度をよく理解するにはシステムクロックについても理解する必要があります

システムクロック

コンピューターのシステムクロックはマザーボード上でメトロノームのように一定のリズムで動作し、あらゆるコンポーネントに信号は発しています。この信号は、短形波のリズムで発しています



しかしながら、実際にオシロスコープで信号をのぞいてみると、下のように見えます。



この信号の波は1つのクロックサイクルを表しています。例えば、システムクロックが100MHzの場合、1秒間に1億のクロックサイクルが発生します。コンピューターのすべての動きはこのクロックサイクルで測られます。CPUがメモリコントローラーを通してメモリに命令をした場合、6つのクロックサイクルを通して応答します。

CPUや他のデバイスがシステムクロックと異なる場合、掛けあわせたり、分割したりして同期させようとします。例えば、100MHzのシステムクロックが400MHzで動作するCPUと同期させようとすると、他のデバイスのシステムクロックは4クロック分の周期と同じと判断します。

多くの人たちは、CPUの速度がコンピューターの速度であると感じていることでしょう。しかしながら、システムバスや他のデバイスは異なる速度で動作しています。

最大のパフォーマンスを引き出す

コンピューターのプロセッサは年々性能が向上しています。プロセッサの速度が向上すると、コンピューターの性能も向上しますが、プロセッサはコンピューターの一部でしかありません。コンピューターの性能を総合的に向上させるには、他のコンポーネントも重要にあります。CPUがデータを処理するにはメモリからデータを読み込まなければなりません。したがってCPUとメモリの間の速度もコンピューターの性能を左右します。

したがって、高性能なメモリ技術はコンピューターの性能に大きく貢献します。しかしながら、メモリ自体の速度を向上させることは解決策の一つにすぎません。通常、プロセッサが処理する速度は、プロセッサとメモリ間の伝送より速いからです。メモリ技術の向上は、このメモリとプロセッサ間のコミュニケーションを円滑にできることを目指しています

キャッシュメモリ

キャッシュメモリはCPUに組み込まれている小容量(通常1MB未満)の高速なメモリです。キャッシュメモリはCPUから頻繁に要求されるデータや命令などを保存、供給します。また、通常のメモリにアクセスする時間よりもはるかに高速なので、多くのキャッシュメモリがあることでパフォーマンスも向上します。つまり、情報がキャッシュメモリになければ、通常のメモリに検索をかけなければならないが、キャッシュメモリにあることで検索の時間を大幅に短縮できます。

キャッシュの概念には「80/20」の法則があります。あなたのコンピューター上にあるプログラム、情報およびデータのうち約20%がよく使用され、さらにこの内コンピューター上で約80%の割合で常に使用されています。この20%のデータの内には、メールの送信や削除、ハードディスクへのファイルの保存、キーボードからの入力などが含まれています。CPUが現在処理しているデータや命令が再度必要な可能性がある場合、このキャッシュメモリがあることで効率よく処理することができます。

キャッシュメモリの働き
キャッシュメモリは、CPUが必要としている「ホットリスト」のようなものです。メモリコントローラーはキャッシュにCPUの命令を保存します。そして、頻度の高い命令を「ホットリスト」にどんどん加え、使用されなくなったデータは上書きされます。このように優先順位の高い情報をキャッシュに残し、低い情報は消されます。

キャッシュレベル
最近のキャッシュメモリはプロセッサの中に組み込まれていますが、システム上にキャッシュがある場合があります。例えば、CPU近くのマザーボード上にキャッシュメモリソケットを持っている場合はキャッシュメモリモジュールを増設することができます。キャッシュメモリはその構成がどのようなものであれ、CPUとの関係により「レベル」を割り当てられます。例えばCPUに一番近いキャッシュはL1キャッシュ、順にL2、L3と割り当てられます。また、コンピューターにはさまざまなキャッシュがあります。例えば、ハードディスクドライブをキャッシュとして使用する場合があります。キャッシュについてはメモリとストレージでその使い方が異なるので注意が必要です。

キャッシュメモリがパフォーマンスに優れているとすれば、なぜメインのメモリモジュールに使われなかったのでしょうか。その理由の一つにキャッシュメモリはSRAM(Static RAM)と呼ばれるメモリチップを使用しています。SRAMはメインメモリに通常使用されているDRAMより非常に高価なためコストが上がってしまうためです。さらにSRAMは頻繁に書き換える場合にパフォーマンスを発揮しますが、CPUから遠下がるとバスがボトルネックになり効果がなくなってしまいます

メインメモリとCPU間のやりとりは195nsですが、キャッシュメモリとCPUはわずか45nsです

システムボードレイアウト

システムボードを設計する場合、メモリモジュールの配置はシステム性能に大きく影響します。またメモリは、CPUが処理する必要のある情報を保持しなければならないため、CPUとメモリ間の速度はシステムに影響を与えます。

インターリーブ

インターリービングとは、CPUが複数のメモリバンクに同時に読み書きを行い、データ転送を高速化させる方法です。インターリーブ技術は主にサーバーやワークステーションなどの大きなシステムで利用されています。メモリはバンクにデータを読み書きしてリセットするまでが1サイクルで、このリセットをするときCPUが次の命令をするまでの間タイムロスが発生します。そこで、CPUはリセットされている間に別のバンクにアクセスすることで効率よく処理します。また、インターリーブはさらにパフォーマンスをあげるため、メモリチップ自体に機能する場合があります。例えばSDRAMチップ内部のメモリセルは2つの独立したセルバンクに分かれており、同時に活用することができます。2つのセルバンク間のインターリービングは、データを連続的に処理することができるため、メモリサイクルを高速化することができます。

バースト

バーストは上記と異なった高速化技術です。バーストは、CPUが必要とされる情報を予測し、メモリから連続するアドレスより情報の塊を引き出してCPUに送ります。CPUが要求する命令はメモリ上の連続したデータアドレスから引き出す可能性が高いため、途中のアドレスなどを省略してCPUに送りパフォーマンスを向上させます。このバースト機能はさまざまなメモリの読み書きで使うことができます。

EDO技術ができたことで、バーストとパイプラインは一般的に使われるようになりました。この機能を搭載したEDOチップは「バーストEDO」や「パイプラインバーストEDO」チップよ呼ばれます

パイプライン

通常一つのタスクの処理がおわるまで次のタスクが実行できないが、パイプラインはいくつかの肯定を分割し、前のタスクの処理が終わる前に、次のタスクを実行させるコンピューターの処理技術です。大きなタスクでも分割して、パイプライン処理することで、パフォーマンスが向上します。


© 2009 Kingston Technology Company - All Rights Reserved