lshw dan lscpu tidak setuju pada cache - mana yang benar?

14

Saya mencoba mencari tahu secara spesifik tentang cache (khususnya cache mana yang dibagi antara core dan yang tidak) dan telah mengalami ketidakkonsistenan.

sudo lshw kata

*-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

tapi lscpuklaim

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

Saya tidak terlalu khawatir tentang instruksi dan cache data yang ditambahkan bersamaan, tetapi kemana L2 pergi?

Diamati pada mesin yang menjalankan Ubuntu 10.10, atau untuk membiarkannya uname -aberbicara:

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

Ini adalah pertanyaan umum, tetapi perhatikan bahwa spesifikasi pabrikan yang paling tepat yang dapat saya temukan maupun Wikipedia tidak memiliki perincian yang diperlukan.

Pertanyaan bonus yang tidak terkait: apakah External Cacheartinya cache dibagikan di antara (empat) core (dan Internal Cachesebaliknya)?

Raphael
sumber
Dua pemikiran. Pertama, apa yang dikatakan pabrikan? Pendekatan saya mungkin akan mencari spesifikasi untuk CPU dan kemudian mencoba untuk alasan maju dari sana. Kedua, jika itu sesuatu yang bisa Anda lakukan, saya akan penasaran untuk melihat apa yang Anda dapatkan jika Anda mencoba ini setelah mem-boot Live CD / USB untuk Ubuntu atau Fedora terbaru. (Mungkin itu bug yang sudah diperbaiki? Saya kira ada cara lain untuk memeriksa apakah ada bug dan diperbaiki, tapi ...)
John
@irrationalJohn: Poin bagus tentang spesifikasi resmi (meskipun tidak terkait dengan pertanyaan yang lebih umum). Sayangnya, spesifikasi bahkan tidak membantu (lihat edit). Juga, saya tidak bisa mengutak-atik mesin.
Raphael

Jawaban:

3

Terima kasih telah menambahkan informasi tambahan tentang prosesor ke pertanyaan Anda. Ini membantu untuk mengetahui bahwa contoh yang Anda kirim merujuk ke Intel Core i7-920 Processor.

Informasi yang disediakan oleh lscpulebih akurat karena mencakup ketiga level cache, L1, L2, dan L3. Tampaknya lshwhanya dimodifikasi secara minimal untuk mencerminkan penambahan L3 cache Intel ke CPU mereka. Alih-alih menampilkan informasi tentang ketiga level cache, informasi tentang ukuran cache L3 tampaknya dilaporkan sebagai cache L2.

Saya berasumsi bahwa spesifikasi yang Anda lihat tidak termasuk cache L1 dan L2 karena dalam mikroarsitektur tertentu semuanya sama. Misalnya, untuk Nehalem ini adalah " 64 KB L1 cache / core (32 KB L1 Data + 32 KB L1 Instruksi) dan 256 KB L2 cache / core. ".

Saya percaya memberikan masing-masing inti L1 dan L2 dengan L3 tunggal yang jauh lebih besar pertama kali diperkenalkan sebagai bagian dari Nehalem (mikroarsitektur) (pada November 2008?).

Saya tidak tahu mengapa lshwmenggunakan istilah External Cacheuntuk merujuk ke L3. Tapi menurut saya itu menyesatkan karena cache L3 ada pada CPU die dan bukan yang saya anggap eksternal . Sekali lagi, ini terasa seperti mencoba menggunakan perangkat lunak lama untuk menggambarkan perangkat keras yang lebih baru sementara hanya membuat sedikit perubahan pada perangkat lunak.

(Mungkin lebih banyak yang bisa dipelajari dengan melihat kode sumber yang sebenarnya, tetapi saya tidak punya waktu untuk mencoba melakukan itu.)

Akhirnya, ya cache L3 dibagi di antara inti / utas. Kutipan berikut berasal dari artikel Wikipedia yang tertaut di atas, " Hyper-threading diperkenalkan kembali bersamaan dengan pengurangan L2, yang telah dimasukkan sebagai L3 Cache yang dapat digunakan oleh semua core . "

John yang tidak rasional
sumber
Terima kasih atas bantuannya mengenai spesifikasi. Tetap saja, harus memburu spesifikasi menyebalkan jika kita memiliki alat yang berpura-pura dengan apa yang kita inginkan.
Raphael
@RI tidak sadar Anda (masih) mencari sesuatu. Terus terang, masalah yang biasanya saya miliki dengan Intel adalah terlalu banyak informasi yang diberikan. Jenis info apa yang Anda minati? Melihat ke kanan pada halaman Intel i7-920 Anda akan melihat Tautan Cepat . Tautan datasheet membawa Anda ke halaman dokumen teknis . Ada dua volume pada prosesor i7-900 bahkan sebelum mereka membuat daftar spesifikasi mekanik & termal. Man pengembang perangkat lunak di halaman lain. Terlalu banyak untuk dicantumkan.
rasional John
Yah, saya membandingkan algoritma paralel sehingga arsitektur cache itu penting. Sangat menyebalkan bahwa alat-alat GNU / Linux tampaknya tidak (semua) dapat diandalkan. Lagi pula, pertanyaannya lebih pada alat daripada mesin spesifik yang saya kerjakan.
Raphael
@ Raphael Saya tidak begitu tahu mengapa lshwmengembalikan hasil cache yang dilakukannya. Tetapi mungkin mereka tidak ingin mengubah format output mereka karena khawatir mereka mungkin merusak skrip yang menguraikan output mereka. Anda dapat melukis diri sendiri dengan mudah menggunakan alat perangkat lunak.
rasional John