Próbuję znaleźć szczegółowe informacje na temat pamięci podręcznych (w szczególności, które pamięci podręczne są dzielone między rdzeniami, a które nie są) i natknąłem się na niespójność.
sudo lshw
mówi
*-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
ale lscpu
twierdzi
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 8192K
Nie przejmuję się zbytnio dodawaniem instrukcji i bufora danych, ale gdzie poszło L2?
Obserwowane na komputerze z systemem Ubuntu 10.10 lub uname -a
mówiąc:
Linux name 2.6.35-32-generic #66-Ubuntu SMP Mon Feb 13 21:04:32 UTC 2012 x86_64 GNU/Linux
To ogólne pytanie, ale zauważ, że ani najbardziej precyzyjna specyfikacja producenta, jaką mogłem znaleźć, ani Wikipedia nie mają niezbędnych szczegółów.
Niespowiązane pytanie bonusowe: czy External Cache
oznacza, że pamięć podręczna jest współdzielona między (czterema) rdzeniami (i Internal Cache
odwrotnie)?
cpu
cache
system-information
Raphael
źródło
źródło
Odpowiedzi:
Dziękujemy za dodanie dodatkowych informacji o procesorze do pytania. Pomaga wiedzieć, że zamieszczone przykłady odnoszą się do
Intel Core i7-920 Processor
.Informacje dostarczone przez
lscpu
są dokładniejsze, ponieważ obejmują wszystkie trzy poziomy pamięci podręcznej, L1, L2 i L3. Wygląda na to, żelshw
został jedynie minimalnie zmodyfikowany, aby odzwierciedlić dodanie przez Intel procesora pamięci podręcznej L3. Zamiast wyświetlać informacje o wszystkich trzech poziomach pamięci podręcznej, informacje o wielkości pamięci podręcznej L3 są najwyraźniej zgłaszane jako pamięć podręczna L2.Zakładam, że specyfikacje, które oglądałeś, nie obejmowały pamięci podręcznej L1 i L2, ponieważ w ramach danej mikroarchitektury wszystkie są takie same. Na przykład dla Nehalem jest to „ 64 KB pamięci podręcznej L1 / rdzeń (32 KB danych L1 + 32 KB instrukcji L1) i 256 KB pamięci podręcznej / rdzenia L2 ”.
Wierzę, że nadanie każdemu rdzeniu własnego L1 i L2 z jednym, znacznie większym wspólnym L3 zostało wprowadzone po raz pierwszy jako część Nehalem (mikroarchitektura) (w listopadzie 2008?).
Nie wiem, dlaczego
lshw
używa tego terminuExternal Cache
w odniesieniu do L3. Ale wydaje mi się to mylące, ponieważ pamięć podręczna L3 znajduje się na kości procesora, a nie to, co uważam za zewnętrzne . Znowu wydaje się, że to próba użycia starego oprogramowania do opisania nowego sprzętu, przy minimalnych zmianach w oprogramowaniu.(Prawdopodobnie więcej można się dowiedzieć patrząc na rzeczywisty kod źródłowy, ale nie miałem czasu, aby to zrobić.)
Wreszcie tak, pamięć podręczna L3 jest współdzielona między rdzeniami / wątkami. Poniższy cytat z artykułu Wikipedia połączone powyżej „ hiperwątkowość jest ponownie wraz ze zmniejszeniem L2, który został włączony jako L3 cache , które nadaje się do użytku przez wszystkie rdzenie . ”
źródło
lshw
zwraca wyniki pamięci podręcznej. Ale być może nie chcieli zmienić formatu wyjściowego z obawy, że mogą zepsuć skrypt analizujący wyniki. Za pomocą narzędzi programowych możesz zbyt łatwo zamalować się w kącie.