みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

PCのメインメモリについて質問です!

PCのメインメモリについてなんですが、一次記憶装置というのは分かりますが、実際、メインメモリの性能がいいというのは、PCを使用する際、どんなメリットがあるのか教えてください!
PCに詳しい方、回答お願いします!

投稿日時 - 2012-01-15 11:24:33

QNo.7245596

暇なときに回答ください

質問者が選んだベストアンサー

まず、基本的にソフトウェアはHDDに格納されています。
HDDに対して、CPUは直接アクセスできません。また、書き込み・読み込み速度もCPUの処理に比べて低速です。
そのため、そのままHDDから読み出しをして処理するのではHDDアクセス速度以上の性能を出すことができません。
そこで、間にCPUが直接参照できるメモリを実装し、プログラムの実行部分をメモリに格納し、演算します。
メモリはCPUから直接アクセスできるうえ、書き込み・読み込み速度もHDDとはケタ違いです。
そのため、メモリに格納されたプログラムはHDDから実行するよりも格段に速く動かすことができます。

ここで、もしメモリの容量よりもプログラムの容量のほうが大きい場合はどうなるでしょうか。
基本的に、必要な部分を読み出し、使っていない部分はメモリに書き出しを行いません。
それで問題ないときはいいのですが、もし読み込んでいない部分が必要になったら・・・
そうなった場合、今後の処理に必要であると思われる部分をメモリ上に残し、使わなくなるであろう部分をメモリから削除、新たに演算を行いたい部分をHDDから読み込む・・・
という手間が発生します。
ここでは、演算部分のHDDへの退避なども行うため、かなりの処理遅延が発生するわけです。
もし、メモリが十分にあれば、必要な部分をすべて初めからメモリに格納できますから、この処理が発生しません。
そのため、メモリが多いほどメリットがあるといわれます。

もちろん、利用しているプログラムで必要な分がすでに搭載されているとしたら、いくらメモリを増やしてもあまり意味がありません。
しかし、現実にそういったプログラムだけではありませんし、OSですら1GBは必要になるご時世です。
複数のプログラムを動かすことも多いわけですから、やはりメモリが多いに越したことはないのです。

ちなみに、現在このメモリ(一次記憶装置)だけでは速度的に足りなくなっています。
そのため、CPU内部にさらに高速なキャッシュを持たせることが一般になっています。
繰り返し利用するロジックをキャッシュに読み込んでいれば、さらに速くなるんでないかい?ってことですね。

ちなみに
メモリが多い=たくさんの命令を一度に処理できる
ではありません。
あくまで命令処理はCPUの管轄ですから、一度に処理できるかどうかはメモリに関係がありません。
同時に実行する命令の数程度であれば、キャッシュで足りる部分です。
実際には、同時に命令を実行して処理が速くなった分、プログラムを高速に読み込まなければいけません。
そのため、単位時間当たりの読み込む命令数が増え、それを高速でCPUに供給するために多量のメモリを搭載する必要が出てきた・・・ってことです。

投稿日時 - 2012-01-15 13:08:45

お礼

詳しい回答ありがとうございます。今後、PCを購入する際の参考になりました。

投稿日時 - 2012-01-15 13:20:27

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

一次記憶装置という言い方は、あまり言わないような気もしますが・・・一般には主記憶装置(=補助記憶装置に対する言葉)といいます。主記憶装置というのは、CPUまたは、各種デバイスとデータをやりとりできる唯一の記憶装置となります。それに対する補助記憶装置は、データを長期保存するためのデバイスとなり、直接的にはCPUとデータをやりとりすることは、できないのが一般的です。

何というか、メモリの性能が良いという定義が、質問の中にないので、説明はし難いのですが、アクセス速度が速い、バンド幅が広いという前提で回答すると。
CPUやその他の補助記憶デバイスとのデータのやりとりが高速化し、待ち時間が短くなります。

例えば、主記憶装置の容量が不足した状態で、ソフトウェアを起動すると、CPU使用率が100%のままでホールドし、体感速度が劇的に低下します。これは、CPUに対して、送るデータが滞るためで、現実には、CPUの使用率は0%の場合もあります。

どういう意味かを具体的に、日々の生活で言えば、例えば渇水でダムの水がなくなったとしましょう。
水道の蛇口を最大にひねっても、元となる場所に水がなければ、水は出ないという結果になります。
これと同じで、メモリが足りないか、CPUの速度に見合ったメモリでなければ、CPUのスロットルが最大に開かれていたとしても、肝心の実行するべき命令が、僅かしか届かないため、見かけ上の速度が低下し、ソフトウェア上からは、CPU使用率が100%に見える状態になるのです。
これが、メモリ不足やメモリ帯域不足によって恒常的に発生すると、速度が低下して見えるようになります。
しかも、メインメモリは、この4から5年でハードディスクの50倍を超える速度に達していますから、メモリが不足すれば、劇的に速度は落ちて見えます。即ち、CPUは1/50の命令しか提供できないのに、100%使用しているように見えるのです。
そのため、沢山のソフトウェアを同時に使い、沢山のデータを扱う場合は、メモリが不足しないように、それに見合った容量のメモリを積んでおくことが肝要となります。


もう一つの帯域の不足というのは、CPUに内蔵されているメモリコントローラーの性能が100という数値だとして、例えばメモリそのものは70のものを取り付けると、CPUが持つ性能の最大値は、その70に引き摺られてしまうということです。例えば、1秒間にデータを1000回CPUに送り込めるとしたら、それが700回になり、1/3ほどCPUが待つ時間が生まれるようになります。それによって、元々CPUが想定している性能より、実際に実行しているときの性能が低くなるのです。
これは、帯域不足というものです。

即ち、パフォーマンス(性能)が高いメモリというのは、ソフトを実行する上で必要な容量を満たしたメモリであることと、CPU(内蔵のメモリコントローラー)に見合った能力を持ったメモリであることが性能の良いメモリということになります。

尚、性能では他にもいくつかあります。メモリにアクセスする際の割り込み速度の違い、クロックアップ耐性(オーバークロック時の品質)、欠陥管理能力(ECC)の性能、発熱に対する耐性などがあります。特に、自作される方でCPUのクロックアップをされる方は、性能の良さをクロックアップ時*の素行の良さとして、捉えることがあります。

*規定の動作周波数より高い周波数でハードウェアを稼働させること。

投稿日時 - 2012-01-15 13:03:40

お礼

詳しい回答ありがとうございます。メインメモリについて、よく分かりました。

投稿日時 - 2012-01-15 13:09:56

メモリは、
メモリの性能が良い=命令に対する処理が早い
メモリの容量が大きい=たくさんの命令を一度に処理することが出来る
と言えます。ですから性能の良いメモリをたくさん積めばより多くの命令をより速く
処理できることになります。その結果として、PCの動作が速くなるということです。

(PCの性能は、メモリだけで決まるものではありませんが、メモリによる差は使って
みればすぐに判ります)

投稿日時 - 2012-01-15 12:46:11

あなたにオススメの質問