lshwとlscpuはキャッシュで一致しません-どちらが正しいですか?


14

キャッシュに関する詳細(特に、コア間で共有されているキャッシュと共有されていないキャッシュ)を見つけようとしており、不整合に陥っています。

sudo lshw 言う

*-cache:0
     description: L1 cache
     physical id: a
     slot: Internal Cache
     size: 64KiB
     capacity: 64KiB
     capabilities: synchronous internal write-back
*-cache:1
     description: L2 cache
     physical id: b
     slot: External Cache
     size: 8MiB
     capabilities: synchronous internal write-back

しかし、lscpu主張

L1d cache:   32K
L1i cache:   32K
L2 cache:   256K
L3 cache:  8192K

命令キャッシュとデータキャッシュが一緒に追加されることをあまり心配しませんが、L2はどこに行きましたか?

Ubuntu 10.10を実行しているマシンで観察するか、uname -a話すことができます:

Linux name 2.6.35-32-generic #66-Ubuntu SMP Mon Feb 13 21:04:32 UTC 2012 x86_64 GNU/Linux

これは一般的な質問ですが、私が見つけることができる最も正確なメーカー仕様ウィキペディアも必要な詳細を持たないことに注意してください。

無関係なボーナスの質問:External Cache(4つの)コア間でキャッシュが共有されることを意味しInternal Cacheますか?


2つの考え。まず、メーカーは何と言っていますか?私のアプローチは、おそらくCPUの仕様を調べて、そこから先に進むことを試みることでしょう。第二に、それがあなたにできることであれば、最新のUbuntuまたはFedoraのLive CD / USBを起動した後にこれを試してみたらどうなるか興味があります。(たぶん、すでに修正されているバグですか?バグが存在し修正されたかどうかを確認する他の方法があると思いますが...)
不合理なジョン

@irrationalJohn:公式仕様についての良い点(より一般的な質問とは無関係)。残念ながら、仕様は役に立たない(編集を参照)。また、マシンを改ざんすることもできません。
ラファエル

回答:


3

質問にプロセッサに関する追加情報を追加していただきありがとうございます。投稿した例がを参照していることを知るのに役立ちますIntel Core i7-920 Processor

によって提供される情報lscpuは、3つのレベルのキャッシュL1、L2、およびL3をすべて含むため、より正確です。lshwIntelのCPUへのL3キャッシュの追加を反映するために、最小限の変更のみが行われたようです。3つのキャッシュレベルすべてに関する情報を表示する代わりに、L3キャッシュのサイズに関する情報は、明らかにL2キャッシュとして報告されます。

特定のマイクロアーキテクチャ内ではすべて同じであるため、調べた仕様にはL1およびL2キャッシュが含まれていなかったと思います。たとえば、Nehalemの場合、これは64 KB L1キャッシュ/コア(32 KB L1データ+ 32 KB L1命令)および256 KB L2キャッシュ/コア」です。

各コアに独自のL1およびL2を提供し、単一のはるかに大きな共通L3がNehalem(マイクロアーキテクチャ)の一部として最初に導入されたと思います(2008年11月?)。

L3を指すlshw用語External Cacheを使用する理由はわかりません。しかし、L3キャッシュはCPUダイ上にあり、外部とは思わないため、誤解を招くように感じます。繰り返しになりますが、これは古いソフトウェアを使用して新しいハードウェアを記述しようとしているが、ソフトウェアに最小限の変更を加えるだけのように感じます。

(おそらく、実際のソースコードを見るともっと多くのことを学ぶことができますが、それを試みる時間はありませんでした。)

最後に、はい、L3キャッシュはコア/スレッド間で共有されます。次の引用は、上記にリンクされたウィキペディアの記事からのものです。「ハイパースレッディングは、すべてのコアで使用可能な L3キャッシュとして組み込まれたL2の削減とともに再導入されました。


仕様に関するヘルプをありがとう。それでも、私たちが望むもののふりをするツールを持っている場合、仕様を探し出す必要はありません。
ラファエル

@RIは、あなたが(まだ)何かを探していることを知りませんでした。率直に言って、私がIntelで通常抱えている問題は、提供される情報が多すぎることです。どんな情報に興味がありますか?Intel i7-920ページの右側を見ると、クイックリンクが表示されます。データシートのリンクから、技術文書のページに移動できます。i7-900プロセッサには、機械仕様と熱仕様をリストする前の2つのボリュームがあります。ソフトウェア開発者は別のページにいます。リストするには多すぎます。
不合理なジョン

まあ、並列アルゴリズムのベンチマークを行ったので、キャッシュアーキテクチャが重要でした。GNU / Linuxツールが明らかに(すべての)信頼性があるわけではないのは残念です。とにかく、質問は私が取り組んでいた特定のマシンよりもツールに関するものでした。
ラファエル

@Raphael lshwキャッシュ結果を返す理由が本当にわかりません。ただし、出力を解析するスクリプトが破損する可能性があるため、出力形式を変更したくない場合があります。ソフトウェアツールを使用すると、簡単に自分を隅にペイントできます。
不合理なジョン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.