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 lscpu
klaim
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 -a
berbicara:
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 Cache
artinya cache dibagikan di antara (empat) core (dan Internal Cache
sebaliknya)?
cpu
cache
system-information
Raphael
sumber
sumber
Jawaban:
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
lscpu
lebih akurat karena mencakup ketiga level cache, L1, L2, dan L3. Tampaknyalshw
hanya 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
lshw
menggunakan istilahExternal Cache
untuk 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 . "
sumber
lshw
mengembalikan 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.