• ベストアンサー

命令キャッシュとデータキャッシュ

命令キャッシュとデータキャッシュの違いについて教えてください。 命令キャッシュ=データの更新が少ない データキャシュ=データの更新が多い ってとこまではわかったのですが、それ以上はよくわからないのです。 あとなぜ命令キャッシュとデータキャッシュに分ける必要があるのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • chiezo2005
  • ベストアンサー率41% (634/1537)
回答No.2

命令とデータの間はアクセスするときにまったく相関がありません。 キャッシュはアクセスするときに相関があるデータを読み書きするときに ヒット率があがるものですから,最初からまったく相関のない 命令とデータを同じキャッシュに入れるということはキャッシュの ヒット率を下げることは明らかです。 したがって分けているということになります。

myamyanmya
質問者

お礼

相関がないから分けて、分けたほうが効率が良いということですね。 わかりやすい説明ありがとうございました。

その他の回答 (2)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

命令キャッシュとデータキャッシュの最大の違いはライトバックの有無です。 ライトバックの必要がない命令キャッシュとデータキャッシュと共用すると、著しく効率が悪くなります。

myamyanmya
質問者

お礼

ありがとうございました。

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

主メモリー上の命令エリアとデータエリアを考えて見ましょう。 命令エリアはプログラム実行中参照オンリーで書き換えられることはありません。 データエリアは読み書き両方有ります。 性格の違うものは分けてキャッシュした方がトータルの効率がよくなるのでそうなっています。 昔の計算機は分かれていませんでした。

myamyanmya
質問者

お礼

なんとなくわかりました。 ありがとうございます。

関連するQ&A

  • データキャッシュ、命令キャッシュ、キャッシュフラッシュ

    データキャッシュ 命令キャッシュ キャッシュフラッシュ  この三つの差がよくわかりません。キャッシュはCPUの処理速度を上げるためのものであることは理解しています。私が知っていたのはデータキャッシュのみで、同じデータのやり取りを行う時に使用するものですよね?  では、命令キャッシュとは、同じ命令を行うときに使用する?いつ、どこで、その命令をキャッシュに入れておくのでしょうか?  キャッシュフラッシュはなんとなくわかります。キャッシュに格納してある情報を要求先へ送ることですか?  会社でこの質問に答えれなくて、宿題にされてしまいました・・・・。答えでも、答えでなくてもいいです。情報をいただけたらと思い質問させていただきました。 よろしくお願い致します。

  • 非キャッシュ領域へのキャッシュデータの上書き

    こんにちは。どなたかご存知でしたら教えてください。 とあるCPUのキャッシュラインサイズが32バイトで、 非キャッシュアクセスするグローバル変数Aのアドレスがが32バイト境界上になく、 かつ、変数Aの直前の領域がキャッシュアクセスする領域の場合、 変数Aの先頭の領域がキャッシュの影響を受けて意図しないデータで つぶされる(上書きされる)可能性はあるのでしょうか? 非キャッシュアクセスするグローバル変数は必ずキャッシュラインサイズで境界調整する必要があるのでしょうか? 以上、よろしくお願いします。

  • RSSが更新されていなかったら、キャッシュを利用

    RSSを取得して表示させているのですが、毎回取得するのではなく、 RSSが更新されてたら新しいデータを表示、 RSSが更新されていなかったら、キャッシュを利用するよう、変更したいです。 可能でしょうか? RSSが更新されたかどうかは、取得しなくても分かるのでしょうか? 「キャッシュ利用」=「予め保存期間を決める」 =「その期間中に、元RSSが更新されても、キャッシュが効いているので、表示内容は変更されない」ということ? RSSが更新されてたら新しいデータを表示、 RSSが更新されていなかったら、キャッシュを利用、 みたいなことは出来ないのでしょうか?

    • ベストアンサー
    • PHP
  • htmlを更新したら、キャッシュをクリアしたい

    最近会社のホームページの更新を任されるようになったのですが、 度々更新しても、更新されていないと他部署から連絡が入ってきます。 ブラウザ上で更新すると、修正した内容が表示されるため、 キャッシュの問題だと思っているのですが、どうしたら更新した時だけ キャッシュをクリアできるのでしょうか? metaタグについては調べました。 でも、metaタグですと、キャッシュを禁止するか、定期的にリロードをさせるか、 キャッシュの有効期限を明記するまでしか分かりませんでした。 ホームページの更新は不定期です。毎日ちょっとづつ更新することもあれば、 3か月以上放置することもあります。 なので、キャッシュの有効期限や禁止ではなく、ホームページを更新した時のみ キャッシュをクリアしたいのです。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • キャッシュデータを保存する

    ブラウザで閲覧したWebデータのキャッシュデータを保存するには どのフォルダを保存すればいいのでしょうか。

  • 1次キャッシュと2次キャッシュ

    インターネットやOSでの処理するデータはキャッシュから読み込むと ハードディスクから読むよりは速いということは分かっています。 1次キャッシュと2次キャッシュのについて、簡単に説明してください。 1次キャッシュはメインメモリーのことですか?

  • アセンブラの命令について

    データ転送命令MOV ds と制御命令MOV addを実行するに必要なメモリアクセス回数は最大何回になりますか。 よろしくお願いいたします。

  • 関数と命令の違いについて

    プログラミング言語の関数と命令の違いについてなのですが、 関数は返り値があるもの、命令は返り値が無いもの。 とどこかで読んだ覚えがあるのですが、 いくつかのプログラミング言語を使っているとそうは思わないときがあります。 (voidの関数のように、何も返さない関数もあると思います。) 検索して調べてみると、例えば、 HSPなどでは命令と関数が明確に区別されていますが、 なでしこでは曖昧のように思います。 (なでしこの場合、標準の機能は、どれも命令と呼ばれていますが、命令のくせに普通に値を返します。) しかし、もし、先述の通りだとすると、 何故、わざわざ区別する必要があるのでしょうか? すべて、関数にしてしまっても良いと思うのですが? また先述の、命令と関数の違いがそもそも間違っているのであれば、 正しい違いを教えていただけるとありがたいです。

  • キャッシュさせたい

    よく、HTMLをキャッシュさせない方法の質問はされてますが、私はCGI出力をキャッシュさせたいのです。 CGIの内容は、頻繁に代わるものなのですが、ユーザーにとっては代わっても代わらなくてもいいものです。 更新ボタンを押さない限りは、読み込まれても更新されないのが望ましいのですが。

  • キャッシュについて

    L1(一次)キャッシュ L2(二次)キャッシュ の違いは何ですか?