
データキャッシュ
命令キャッシュ
キャッシュフラッシュ
この三つの差がよくわかりません。キャッシュはCPUの処理速度を上げるためのものであることは理解しています。私が知っていたのはデータキャッシュのみで、同じデータのやり取りを行う時に使用するものですよね?
では、命令キャッシュとは、同じ命令を行うときに使用する?いつ、どこで、その命令をキャッシュに入れておくのでしょうか?
キャッシュフラッシュはなんとなくわかります。キャッシュに格納してある情報を要求先へ送ることですか?
会社でこの質問に答えれなくて、宿題にされてしまいました・・・・。答えでも、答えでなくてもいいです。情報をいただけたらと思い質問させていただきました。
よろしくお願い致します。
No.2ベストアンサー
- 回答日時:
プロセッサとメインメモリの処理速度は全然違うので, データが必要なたびにメインメモリにアクセスするのでは実行速度が大幅に低下してしまいます. そのため「メインメモリほど容量はないけどメインメモリより高速なメモリ」を間に入れて実行速度の低下を防ごうというのがキャッシュの主目的です. ここでは「データ」と書きましたが, プログラムの命令そのものもプロセッサから見ればデータの一種ですので, 当然命令に対しても同様に考えることができます. つまり, プロセッサから見ると, メモリアクセスは全てキャッシュに対して行われます.
また, 今のプロセッサは当然のようにパイプライン化されていますので, 命令の読み込み・実行・データのアクセスが全て同時に行われます. そのため, 命令を格納するメモリとデータを格納するメモリが同じバスに接続されていると, やはり実行速度は低下してしまうため, この 2つは異なるバスに接続するハーバードアーキテクチャが使われています. ということで, 「命令に対するキャッシュ」と「データに対するキャッシュ」を分けておくとうのは合理的である, ということになります.
そして, 処理が進んでいくと「キャッシュが全ていっぱいになってしまい, 新たなデータをキャッシュに読み込めなくなる」ことになります. このとき, キャッシュ上のデータを捨てる必要があるのですが, これを「キャッシュのフラッシュ」と呼びます. 命令キャッシュであったり, データキャッシュでもデータを読み込んでいるだけならいいのですが, データを書き込んでいる場合にはキャッシュ上のデータをメインメモリに書き戻す必要がある場合があります. これはデータをメモリに書き込むときに「メインメモリにも同時に書き込む (= write-through)」なら必要ないのですが, 「メインメモリにはあとで書き込む (= write-back)」場合には必須となります. したがって write-back の方がフラッシュの処理が面倒になりますが性能は一般に write-through より高くなります.
なお, #1 でも書かれているようにキャッシュは「アクセスの局所性」に基づいていますので, 分岐命令に対してうまく処理しなければならないという問題点があります (分岐先の命令をキャッシュに入れておかないと実行できないので). 普通は分岐予測というものを使うのですが, SPARC V9 では「絶対分岐しない分岐命令」というおもしろいものを用意してあります. これは命令単独では全く意味を持たないのですが, その副作用として「分岐先アドレスの命令をキャッシュに先読みする*かもしれない*」という機能があったりします.
No.1
- 回答日時:
キャッシュが有効である理由は、いわゆる参照の局所性(Locality of reference)があるからです。
そして、その参照の局所性は、データだけではなく、命令についても言えます。例えば、いかなる言語であっても普通にプログラムを書いた場合、一般的にループはよく現われます。そのプログラムをコンパイルした結果、通常は(つまりリバースエンジニアリングしにくくするためにわざとあっちこっちに飛ぶようなコードがはき出されていたりしない限りは)、そのループ部分の命令は局所的に存在します。よって、最近実行した命令をキャッシュに残しておけば、所定の確率で再度その命令をフェッチすることになります。
また、命令を先読みする場合があります。この場合も、先読みした命令をキャッシュに入れておくことにより、CPUから見た命令転送コストは、トータルとして少なくて済みます。
また、PCに基づいて単純に命令を先読みする場合だけではなく、分岐キャッシュ(分岐命令のアドレスとその分岐先とのアドレスのペアを保持)に基づいて、分岐先を予測して命令を先読みする場合もあります。
なお、キャッシュフラッシュは、キャッシュにおいている情報を捨てることではないでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ドライブ・ストレージ m.2 SSDとSATA SSDの容量とスピードとDRAMの関係について 4 2023/02/11 16:45
- その他(コンピューター・テクノロジー) ある外付けSSDのデータをパソコンを使ってもう1つの外付けSSDにコピーする場合は内蔵ストレージにキ 2 2023/07/14 07:33
- その他(コンピューター・テクノロジー) ある外付けSSDのデータをパソコンを使ってもう1つの外付けSSDにコピーする場合はキャッシュを作成し 2 2023/07/15 22:29
- 電子マネー・電子決済 楽天キャッシュのオートチャージについて教えてください 1 2023/05/20 10:18
- その他(ソフトウェア) googleスプレッドシートのキャッシュを自動で消したい 1 2023/01/30 12:05
- HTML・CSS Chrome のキャッシュについて 3 2022/05/26 07:50
- その他(学校・勉強) この中で間違ってある説明はありますか?詳しい方に教えていただきたいです。 A. 1つのプログラムが複 2 2023/07/14 01:15
- 財務・会計・経理 仕入れ先へのお金はどちらの年度のお金 5 2022/11/16 18:54
- 公認会計士・税理士 A社は、毎年期待値790円の1株あたりキャッシュ・フローを永遠に得られると予測されている。A社は、毎 1 2022/06/14 23:51
- 投資・株式の税金 B社の1株あたりキャッシュ・フローは、1年後に100円、2年後に105円、3年後に110.25円とい 1 2022/06/14 23:52
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
築古アパート投資って基本的に...
-
大阪・関西万博に行く為には、...
-
B/43やキャッシュ のようなアプ...
-
1年以上前のサイトを見るにはど...
-
ccmcacheとは ccmcacheとは何か...
-
ARPをクリアする理由について
-
ie4,5,6ではキャッシュサイズは...
-
!IEではこのサイトが見られない...
-
WindowsXPの共有フォルダで
-
iPadストレージのその他てなん...
-
ネットキャッシュの削除
-
楽天キャッシュでマクドナルド...
-
何故か写らない画像があります。
-
ページを開くと自動で更新。。
-
Shfd0039.dtaが開けません。
-
みずほ銀行の名古屋駅の中のATM
-
スマホの通信料は本体の戻るボ...
-
自分だけが文字化け
-
メールボックスの表示が変なん...
-
WindowsXPの終了時、「システム...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大阪・関西万博に行く為には、...
-
楽天キャッシュでマクドナルド...
-
SSDでネット閲覧は高速化します...
-
PCに知らない画像がいつの間に...
-
ccmcacheとは ccmcacheとは何か...
-
ASUS RAMCache IIIについて、Wi...
-
ARPをクリアする理由について
-
px.a8.netとは何ですか
-
SIMカードには何が入っているの...
-
B/43やキャッシュ のようなアプ...
-
サムネイルと実際の画像が一致...
-
GoogleDriveを使用してwebペー...
-
更新ボタンを押さないと最新の...
-
PentiumⅢ Xeon
-
キャッシュについて
-
端末のブラウザにキャッシュを...
-
Googleマップが逆さまになる
-
iPhone版Googleフォトのオフラ...
-
VIDEOタグでキャッシュさせない...
-
キャッシュにはウィルスも保存...
おすすめ情報