• ベストアンサー

キャッシュ方式のライトバックとライトスルーって

キャッシュ方式のライトバックとライトスルーってどっちが普及してるんですか? ほとんど一般の製品はライトスルーなのかな? ちなみにこの書き込み方式はハードウェアでもう固定されているものなのでしょうか?それとも設定によって変更できるものなのでしょうか? なんだか取り留めない質問ですが、わかる方よろしくお願いいたします。

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

  • ベストアンサー
  • 10451198
  • ベストアンサー率61% (77/126)
回答No.5

Pentium4以降のインテルCPUはすべてライトバックです。よって、パソコン用CPUのキャッシュとしては、ライトバックが圧倒的といえるでしょう。 一般にライトバック方式のキャッシュはライトスルーとしても動作できます。よって、CPUはライトバックキャッシュをHWとしてもち、必要に応じてライトバックまたはライトスルーとして使うのです。 現在のパソコンで使われるCPUは、ライトバック方式のキャッシュをHWとしてもち、MESI方式で制御しています。で、SとIだけの状態を使うようにすれば、ライトスルーとして動作するのです。MESI全部をつかえばライトバックね。このあたりの制御はCPUの中のMTRRの設定によって行います。 それから、既出の回答で、ちょっと気になる部分があったので補足をしておきます。 >i486のL1キャッシュはライトスルー方式 初期は確かにそうでしたが、後期にはライトバックになりました。(P24D) また、486は1段しかキャッシュがないので、わざわざL1とはいいません。 >Pentium4のL1キャッシュはライトスルー方式とライトバック方式の組み合わせ Pentium4は2種類あり、L1キャッシュはをれぞれライトスルーとライトバックですが、組み合わせではありません。 また、Pentium4はL2が搭載されており、これがライトバックです。インテルCPUはインクルーシブですので、L1の方式はあまり問題ではなく、もっとも外側のL2がライトバックであることをもって、CPU全体としてライトバック、とします。 つまりPentium4は、L1の方式とは無関係に、ライトバックです。

noname#64280
質問者

お礼

おおすごい。デバイスの設計とかしてる人ですか? >SとIだけの状態を使うようにすれば、ライトスルーとして動作する なるほど、Mの状態が、キャッシュにのみデータが存在する(メモリに書き込みされていない状態)ということですね?排他の状態がよくわかりませんでしたが、まぁイメージはつかめました。 >インテルCPUはインクルーシブですので、L1の方式はあまり問題ではなく、もっとも外側のL2がライトバックであることをもって、CPU全体としてライトバック なるほど、L1のデータはL2にすべて含まれるんでL1がどっちであろうがそんなに変わらないってことですね。 L1とL2の速度差とL2とメモリの速度差を考えれば、L1のキャッシュ方式がどちらだろうが大差なさそうなのは明白ですねw インテルの場合はインクルーシブということですが、逆にAMDの場合は、L1の値はL2には含まれないのですか? 大変詳しくわかりやすい回答ありがとうございました。

その他の回答 (5)

noname#194317
noname#194317
回答No.6

AMDのCPUでは、L1とL2で同じデータ領域を持たない排他方式(エクスクルーシブ)です。キャッシュはコストの問題から、むやみに容量を大きくできないので、L1にあるものはL2で持たない方が、キャッシュの利用効率を高くできるという発想です。 しかし、排他制御にかかる時間が存在するので、何も考えずに同じデータを持つ方が高速だという考え方もあります。インテルはこの方法ですね。 また最近は、CPUコアが複数あるので、それぞれのコアにどうキャッシュを持たせるのかが問題になります。L1もL2も個別に持つか、L1だけ個別でL2を共有するか… これがなぜ問題になるかと言えば、例えばコア1とコア2で同じメモリ領域にアクセスしているとき、それぞれのコアで違うデータを書き込むと、お互いの認識にずれが生じるからです。どこかで意思統一しないと致命的誤動作につながりますが、それをいつ、どうやって行うのが良いかという問題です。キャッシュの一貫性制御(コヒーレンシ制御)が必要になるわけですね。 ここでもライトバックだと、話がいっそう複雑になりそうだというのは、容易に想像できると思います。 ところで、もうこの次元の話になると、めいめい勝手に勉強してくれってことじゃダメなんですかね?(笑)

noname#64280
質問者

お礼

>ところで、もうこの次元の話になると、めいめい勝手に勉強してくれってことじゃダメなんですかね?(笑) そうですねw まぁ、いろいろな会社があってそれぞれに独自の考え方で製品の設計をしてるので、いろんな考え方がありますよね。 個人的には、 >排他制御にかかる時間が存在するので、何も考えずに同じデータを持つ方が高速だという考え方もあります。 の方が対コスト的にもいいんじゃないかな~なんて勝手に思ってますが、まぁ、素人考えなんでw いずれにせよ。回答ありがとうございました。 閉じるの忘れてましたw

回答No.4

>書き込み方式はハードウェアでもう固定されているものなのでしょうか? >知りたかったのはCPUのキャッシュのことです。 LSIで作りこんでいるものはハードウェア固定。 ・i486のL1キャッシュはライトスルー方式 ・Pentium4のL1キャッシュはライトスルー方式とライトバック方式の組み合わせ ・AthlonXPのL1キャッシュはライトバック方式 ソフトウェア上のキャッシュは変更可能。 それぞれ設計思想が違うだけなので、どちらが一般的に普及しているのかでは無いと思います。 (安全性と速度性能、設計工数(作りやすさ)のトレードオフ) http://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%BC%E3%83%90%E3%83%BC%E3%83%89%E3%83%BB%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3

noname#64280
質問者

お礼

ありがとうございます。 どちらが一般に普及してるとかではないようですね。 助かりました。ありがとうございます。

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

メモリーキャッシュの話ならハード固有のものでソフトではコントロールできません。 しかも階層化が普通ですからL1とL2で方式が違ったりします。↓ いずれにしてもメモリーキャッシュはOSからも見えません。 結局コストパーフォーマンスによって方式が選ばれるわけです。 それにしてもパソコン教室で出るのが信じられないような質問ですね。 情報処理試験の講座なら出るかも知れませんが。

参考URL:
http://ja.wikipedia.org/wiki/%E3%82%AD%E3%83%A3%E3%83%83%E3%82%B7%E3%83%A5%E3%83%A1%E3%83%A2%E3%83%AA
noname#64280
質問者

お礼

ありがとうございます。 どちらが普及してるとかは一概には言えないようですね。 パソコン教室ですが、パソコン整備関係(自分でトラブルに対応できるようになろう!みたいな)の講習です。 取得目的に対してオーバースペックな内容な気もしますが、教科書にのってるのでw

noname#194317
noname#194317
回答No.2

普及という意味では、対象にもよります。WindowsXPのハードディスクだと、デバイスマネージャでハードディスクのプロパティを見れば「ディスクの書き込みキャッシュを有効にする」というチェックボックスがあり、普通は有効になっていると思いますので、ライトバックの方が普及していると言えるでしょう。 Windowsのディスクキャッシュは、OSが用意している機能なので、ハードウェア固定ではありません。一方、ディスクドライブが持っているキャッシュについては、ハードウェアに依存します。 性能的にはライトバックの方が速いですが、ライトスルーの方が安全(特に取り外し可能なメディア)であることは確かです。ライトスルーだと書き込み中さえ避ければ、原則的にいつ取り外したり電源を切っても、データが壊れる心配はありませんが、ライトバックだとキャッシュの中身を反映する前に操作したら、最悪の場合は管理領域が壊れてデータが全滅という恐れもあり得ます。 なお、ライトバックの場合でも、キャッシュの中身を反映するまでの時間(キャッシュ上にしか正しいデータが存在しない時間)が短ければ、性能は低下する反面、安全度は高まります。Windowsでは、比較的反映するまでの時間は短めだと思います。UNIXだと、ユーザーが明示的にキャッシュを反映しろと指示するまでキャッシュ上だけで何とかしようとするものもあるので、こういう環境でうっかり電源を切ると、大変なことになります。 CPU内蔵のキャッシュにもライトバックとライトスルーがあり、L1はライトバックだけどL2はライトスルーといった、混合式の場合もあります。BIOSでどっちか選べるかも知れませんが、積極的に変える意味はないのでは?

noname#64280
質問者

お礼

ご回答ありがとうございます。 知りたかったのはCPUのキャッシュのことです。 実はパソコンの講習したときに生徒から質問受けたんです。 どっちのほうが普及してるんですか?って。 考えてみれば、製品の仕様とか見てもライトバック、ライトスルーの方式とかはのってないですし、実際どっちが普及してるんだろうな~と思ったもので。 多分コスト的にはライトスルーの方がかからないので一般のCPUはライトスルーなんじゃないかなとは思うんですが・・・ そして、HDDのキャッシュでもライトスルーとライトバックがあるとは知りませんでした。

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

なんのキャッシュの話でしょうか? USBメモリーやHDDのキャッシュでしたら,ソフト的に設定できます。 HDDのプロパティのポリシーでキャッシュを有効にするにチェックすると ライトバック動作,チェックがないとライトスルー動作になります。

noname#64280
質問者

補足

すみません。CPUのキャッシュのことです。 (キャッシュをメモリに書き戻す際の動作) HDDのキャッシュでもライトバック、ライトスルーがあるんですね。 逆に知りませんでした。

関連するQ&A