• ベストアンサー

cpuキャッシュメモリ→優劣の目の付け所は?

最近、キャッシュメモリなるものが気になります。 当サイトなどで概要については、なんとなく把握したつもりです。 わたしの理解は以下のようなものです。 基本的に、1次キャッシュと2次キャッシュがあって、 それらの容量が大きいほどよいプロセッサ。 よって、セレロンというcpuはこれらのキャッシュが 一般的にペンティアムやデュアルコアcpuに比べ低いため、 低価格で販売できている。 ↑このような理解でよろしいのでしょうか? また、キャッシュの容量が大きいほどスピードは、 下がってしまうというのもよく説明にありますよね。 そうすると、こんがらがってしまうのですが。

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

  • ベストアンサー
  • parts
  • ベストアンサー率62% (6364/10149)
回答No.5

L1(=Level1/一次)/L2またはTrace Cacheの役割は、速度隠蔽をすることにあります。i486SX/DXシリーズ頃から8KBのキャッシュを実装したのが始まりです。 このキャッシュは、CPUの周波数と同じクロックで同期するため、2GHzのプロセッサなら20億回キャッシュを参照できるほどの速さがあります。一般にL1キャッシュ(またはTrace Cache)がCPUのコアダイに内蔵されコンピュータ内で最も高速なアクセス速度となります。次いでL2が2番目となります。 このキャッシュには頻繁に使う命令が格納されており、最もアクセス頻度が高い直近の処理情報をL1に、次いで頻度が高い処理情報をL2にそして、それより頻度が低いものをL3または外部のメモリに蓄えます。 一般にキャッシュ容量を増やす場合は、L2またはL3キャッシュの容量が増加します。これが増えれば、速度がCPU内蔵キャッシュの最大で1/15程度に遅くなるメモリにいちいちアクセスしなくとも必要なデータにヒットする可能性が高くなります。そのため、容量が大きければより高速になるという考え方ができます。 しかし、それはあくまでそこに適当な命令が保存できており、キャッシュヒット率が一定以上確保できているという前提が必要です。キャッシュを極端に増やしすぎると今度はミスヒットした場合に、待ち時間が長くなります。また、一つの命令のサイズにも依存し、あまりにも小さいな命令情報を大量にキャッシュに確保していても速度隠蔽の効果はありません。 どういうことかというと、L1キャッシュにデータがなければL2を参照し、L2になければメモリまたはL3キャッシュを参照し、それより下ならメモリまたはハードディスクの仮想メモリを参照します。 そして、見つかった場所から上位のデータを置き換えていきます。 容量が大きければ、出入りの速さを早くしない限り置き換えに時間が掛かります。そのため、逆にミスヒット時の性能は低下することになります。 これは、コップに水を入れる作業と同じです。小さなコップに同じ10ml/秒で水を入れるのと大きなコップに同じ速さで入れるのでは、小さいほど早いです。大きなコップに水を短時間で入れるには20~30ml/秒で入れるしかありません。こういう改良がなければミス時の速度低下が大きくなるのです。 データの読み書きは、必ず全ての情報をチェックしますから、容量が大きければ、その速度が速くならない限りそれだけ時間が掛かります。 もう一つは、10MBのデータを10MBのキャッシュに保存すれば早くなります。 もしそれが4MBのキャッシュでは3回に分けて処理する必要がありますからね。 しかし、3MBのキャッシュで10KBの命令をループしていくとしたら速度はどうなるでしょうか?容量の少ないデータを連続で扱えば、速度はそれほど変化しません。1つの命令または連続する命令がキャッシュの容量を超える場合には、より大きなキャッシュほど速度が上がりますが、パソコンでそういうチャンスに巡り会うには、それだけプログラミングもそれに最適化されていなければ意味がないのです。 キャッシュは、容量が大きければ速度が速いわけではなく、プログラミングの手法がキャッシュ容量に最低化されているか、またはキャッシュに収まりきれないほどの連続データでなければ効果はないのです。逆に、ミスヒットとのトレードオフを考えてキャッシュ容量は決まっています。 Pentium4などのキャッシュは本気でキャッシュの容量を重視すれば2MBではなく4MBや6MBにもしたでしょう。そうしないのは、それが妥当な容量だったからです。尚、Celeronのキャッシュはそもそも普通より少ない容量にしてあります。

kitreewood
質問者

お礼

丁寧なご解説、誠にありがとうございます。 この文章が理解できるよう何回も読み直して勉強します。 「逆に、ミスヒットとのトレードオフを考えてキャッシュ容量は決まっています」 この辺の感覚が難しいですね。 クロック数のように数値が大きいほど良いというわけではないということはわかりました。 妥当なラインというものがあるのですね。

その他の回答 (4)

  • Jimo
  • ベストアンサー率37% (68/179)
回答No.4

メモリアクセスの多いプログラムほどキャッシュの効果が出ますが,キャッシュを大きく すると消費電力の増加も伴います。消費電力の増加はTDPの増加に直結します。また,CPU のアルゴリズムによってもその効果に多少影響してきますので,一概に言えないところが 難しいですね。ただし,Celeronなどのバリュー製品がCoreなどのハイパフォーマンス製品 よりも性能が劣るのは間違いありません。これは,性能の違いと言うよりも製造コストの 問題です。キャッシュを減らせば,それだけ歩留まりが上がりますし。

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.3

キャッシュの容量が大きいほど遅くなると言うのは、キャッシュの読み書きの所用時間です。遅いといってもメインメモリよりは大幅に早いですが。 キャッシュの容量を増やすとキャッシュのヒット率は上がりますがキャッシュのアクセスタイムは遅くなります。トータルで性能が上がるか下がるかは難しい問題です。 キャッシュが一次/二次に分かれているのは、このせいです。超高速キャッシュを少しと、普通の速度のキャッシュをたくさん(二次キャッシュ)。

  • syunmaru
  • ベストアンサー率37% (1635/4345)
回答No.2

>基本的に、1次キャッシュと2次キャッシュがあって、 それらの容量が大きいほど良いプロセッサ。 私の場合は、この容量の大きさが同じCPUのGHzでも、底力の違いだと思っています。 総合的には、早いと思います。 感じとして、サクサクと機敏に反応する感じがします。 セレロンは、何となく、もやっとした感じがします。(ワンテンポ遅れる感じ) ペンティアムとか、Cuo2Duoは、その点、サクサク感があります。 ですから、 >一般的にペンティアムやデュアルコアcpuに比べ低いため、 低価格で販売できている。 その通りだと思います。 個人的な意見です。 他の方は、違った見方をしていると思います。

kitreewood
質問者

お礼

こういう角度あるご回答をお待ちしておりました。 もうあくまで感覚的になんですが、 同クロック数のセレロンとペンティアムを使い比べた場合、 わたしもサクサク感の違いを感じていたんです。 この違いはどこから来るのかと調べていたら、 1・2次キャッシュの容量がことなるということに気づいたんですね。 ありがとうございます。

  • Azuma1
  • ベストアンサー率39% (78/200)
回答No.1

キャッシュというのはCPUが使用頻度の多い低速な装置から、いちいち読み出す手間を省くために命令もしくはデータをメモリに置くことを言います。 つまり、メモリに置いた内容を次に再利用すれば良いのですが、利用できないのなら、また低速な装置から読み出す事になります。従って、内容を沢山おけば再利用できる確率が高くなります。この再利用がヒットですね。 しかし、極端な例を挙げると、ハードディスクの内容をメモリに全部置くとしたら転送に時間がかかってしまいますし、これでヒットしなければ無駄になります。 ヒット率と容量のバランスが必要では無いでしょうか。

kitreewood
質問者

お礼

「極端な例を挙げると、ハードディスクの内容をメモリに全部置くとしたら転送に時間がかかってしまいますし、これでヒットしなければ無駄になります。 ヒット率と容量のバランスが必要では無いでしょうか。」 とてもわかりやすい例を挙げていただき、大変感謝いたします。 バランスなんですね。

関連するQ&A

  • CPU-キャッシュ-メモリと速さ

    PC買い替えのため、特にスピードに重点を置いて各商品のスペックを比べています。その過程で、以下のように理解したつもりですが、自信がありません。どなたかアドバイスをいただけないでしょうか。 ・動作命令は、CPU⇒1次キャッシュ⇒2次キャッシュ⇒メモリ⇒デスク(ページング)と流れる。 ・この流れの中で上流ほど早く、自分の中で処理できない(自分の容量を超える)場合、遅い下流に流す。 ・したがって、CPU速度のみに目が向きがちだが、キャッシュも重要である。 ・1次キャッシュは高価なのでこの容量を押さえ、2次キャッシュの容量を大きくする傾向があるが、1次キャッシュの容量が大きければ2次キャッシュへ流さないで高速に処理できるので、1次キャッシュの容量も重要である。

  • AMDのCPUの2次キャッシュは少なくないでしょうか?

    初めてパソコンを自作しているのですが、CPU選びで困ってます。AMDのデュアルコアCPUを買うことに決めているのですが、インテルのCPUと比較すると、インテルのデュアルコアCPUは2次キャッシュが4MBや6MBのものがほとんどですが、AMDのCPUは2次キャッシュが512KB×2個か1MB×2個です。 2次キャッシュの容量はパソコンのスピードにけっこう影響すると思うのですが、AMDの2次キャッシュの容量で問題ないのでしょうか?

  • CPUとメモリ…

    いつもお世話になっています。 BTOパソコン(マウスコンピューター)を購入しようとして色々値段と相談しつつ考えているのですが、CPUとメモリをどう決定すればいいか悩んでいます 私の候補としているPCのCPUの選択肢に ・AMD AthlonXP プロセッサ2200+ ・Intel Pentium4 プロセッサ2.66GHz  ・Intel Celeron プロセッサ2.6GHz  ・Intel Celeron プロセッサ2.4GHz  ・Intel Celeron プロセッサ2.0GHz  とありまして、過去の投稿を見ていると、Athlonはゲームをするのにはサクサク動くけど文書処理はあまり…と書かれていました。 Intelの方はPentiumの方が動作的に安定しているが、celeronでもメモリの数値が多ければ同じくらいの動作が出来るという意見も出ていました。 メモリは256MBか512MBにしようと思っているのですが、それならばCeleronでもいいんでしょうか(Celeronも数値が大きいほど処理速度が速くなるんでしょうか) ちなみに私がPCを使う用途としては、インターネット、メール、word、ラベル作成(ラベルマイティ)、HP作成(ビルダーを使用)、スキャナを使った文章取込、DLした音楽を聞く…などです。 PCでTVを見たり、DVDを見たりという計画はほぼないです。 ややこしい質問になってしまいましたが、アドバイスお願いいたします。

  • CPUについて(Pentium(R) M とCeleron(R) M )

    ノートパソコンの購入を検討しているのですが、 CPUはPentium(R) MとCeleron(R) Mがあって、迷っています。 ◆Pentium(R) M は、プロセッサ 725 2MB L2キャッシュ、1.60GHz) ◆Celeron(R) M は、プロセッサ 350 1MB L2キャッシュ、1.30GHz) PCの使用用途は、Photoshopをたまに利用したりしています。メモリは増設で512以上を予定しています。 価格の事を考えると、Celeronを購入しようと思っているのですが、Pentiumでないとうまく動作しないものなのでしょうか? ちなみに今使っているPCは、Celeron(TM)650MhzでPhotoshop等たまに利用しています。 よきアドバイスをお願いいたします。

  • CPUか、メモリか

    いつもお世話になっております。 またまた教えてください。 新しいノートPCの購入を考えています。 それで、悩んでいるのですが、値段がほとんど変わらない場合(5000円以内)、メモリとCPU、どちらを優先させますか? 具体的には、 メモリの場合、 1GB(512MBx2)デュアルチャネルDDR2-SDRAM メモリ か、 512MB (512MBx1) DDR2-SDRAMメモリ をとるか、 あるいは、CPUの場合、 インテル(R) Core(TM) 2 Duo プロセッサー T5500 (2MB L2キャッシュ、1.66GHz、667MHz FSB) か、 インテル(R) Celeron(R) Mプロセッサー 430 (1MB L2キャッシュ、1.73GHz、533MHz FSB) をとるかなのですが・・・。 どっちを優先すればいいか、あなたの考えを聞かせてください。

  • デュアルコアCPUの名称

    ペンティアムDとあるCPUは、デュアルコアのCPUだけど、セレロンDとあるCPUは、デュアルコアのCPUではない。というので正しいですか? 何か間抜けなこと聞いてすみません。

  • CPUよりメモリにお金を積むべきでしょうか?

    DELL(デル)でPCを買おうかなと思っています。 そこでCPUとメモリについて質問です。 デルには ・Pentium4 ・CeleronD ・Celeron があるかと思いますが、どれを選んだらいいのかわかりません。 http://www1.jp.dell.com/content/products/compare.aspx?c=jp&id=dimen&l=jp&s=dhs# (1)Pentium4&メモリ512MB (2)Celeron&メモリ1GB ↑のどちらがいいんでしょうか? 実際に見積もりをしてみました(予算は10万円前後) (1)Dimension 3000 CPU - HTテクノロジ インテル(R) Pentium(R)4 プロセッサ 3EGHz メモリ - 512MB(256MBx2) DDR-SDRAMメモリ HDD - 80GB ドライブ - DVD/CD-RWコンボドライブ モニタ - E173FPc 17インチ TFT液晶 ¥94780 (2)Dimension 2400 CPU - インテル(R) Celeron(R)4 プロセッサ 2.60GHz メモリ - 1GB(512MBx2) DDR-SDRAMメモリ HDD - 80GB ドライブ - DVD/CD-RWコンボドライブ モニタ - E173FPc 17インチ TFT液晶 ¥90780 でした。 使用目的は ・ネット ・音楽 ・illustrator ・photoshop くらいです。 上記で挙げた(1)と(2)ではどちらがオススメですか? またペン4とセレロンの違いも教えて頂けたらうれしいです。

  • CPUの........

    CPUのPentiumデュアルコアとCore2Duoプロセッサーはどちらのほうがおすすめですか?

  • メモリの増設について

    自分のパソコンは、 Intel(R) Pentium(R)III プロセッサ-800EB MHz キャッシュメモリ 1次 32KB(CPU内蔵) 2次 256KB(CPU内蔵) メインメモリ (*2) 標準容量 64MB(SDRAM-DIMM、PC100対応) (*3) なんですけど、こんどOSを乗せ変えたいのでメモリを256MB、できれば512MBに増設しようと考えています。 そこで、質問なのですが、基本的にメモリの増設っていくらくらいかかるんですか?普通に電気屋さんで買えるのですか? よろしくお願いします。

  • CPUのキャッシュ

    CPUの1次2次キャッシュがありますがなぜこれは大容量化できないのでしょうか? HDのキャッシュはサムスンあたりのDRAMがついています。8MB-64MBぐらいありますよね。 ちょうど同時期に発売される主流なDRAMチップ1つ分ぐらいのキャッシュサイズです。 CPUの内部キャッシュはコストがかかると昔から言われていますが 多コアになったりGPUと結合したりしている今、内部キャッシュはまだ大容量化できないのでしょうか? 2GB,4GBとかは言いませんが、1次キャッシュで64MBとか2次キャッシュで512MBとか。 それほどコストがかかってしまうのでしょうか? 今の技術であればダイサイズはあまり変わらない気がします。 CPU内部のメモリとは種類が違うってことは知っています。

専門家に質問してみよう