Was bedeutet "cpuid level"?

9568
user35153

Für ein Beispiel habe ich nur die Ausgabe von einem Kern einer 16-Kern-Maschine ausgegeben.

Was bedeutet die Ausgabe mit "cpuid level" von "6"? Was bedeuten auch "Bogomips" von "5992.10" und "clflush size" von "64"?

processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 6 model name : Intel(R) Xeon(TM) CPU 3.00GHz stepping : 8 cpu MHz : 2992.689 cache size : 4096 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 2 fpu : yes fpu_exception: yes cpuid level : 6 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge  mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2  ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl  vmx cid cx16 xtpr lahf_lm bogomips : 5992.10 clflush size : 64 cache_alignment: 128 address sizes: 40 bits physical, 48 bits virtual power management: 
5

2 Antworten auf die Frage

3
Petesh

Die meisten Informationen werden von der x86-Anweisung 'cpuid' abgerufen. Die "Ebene" ist der maximale Optionssatz, mit dem Sie den Prozessor sicher nach Informationen fragen können.

Die Intel App-Notiz unter http://www.intel.com/assets/pdf/appnote/241618.pdf enthält ausführliche Informationen zu dieser Anweisung. Ich glaube, die "Ebene" entspricht der "Funktion", die im Dokument aufgeführt ist.

1
David Spillett

bogomipsS basiert auf der Geschwindigkeit eines sehr spezifischen Satzes von Anweisungen in einer Schleife. Der Kernel verwendet den Wert für einige Timing-Schleifen. Außerhalb dieses Kontextes ist es ziemlich bedeutungslos - einige glauben fälschlicherweise, dass dies ein Maß für die CPU-Geschwindigkeit ist (was in diesem Kontext sehr spezifisch ist, jedoch nicht generell).

clfushIn der Funktionsliste wird auf die Verfügbarkeit des Cache-Zeilen-Spülungsmerkmals verwiesen, eine Anweisung, mit der dem CPU-Cache mitgeteilt wird, dass ein bestimmter Datenblock nicht mehr benötigt wird oder möglicherweise nicht mehr gültig ist (sollte daher bei Bedarf erneut gelesen werden) . Ich vermute, dass die angegebene Größe clflush sizedie Granularität ist, mit der dieser Prozess gesteuert werden kann, dh der kleinste Block, der geleert werden kann (wahrscheinlich direkt auf die Zeilenbreite der L1-Caches der CPU bezogen). Dies ist wahrscheinlich auch nicht hilfreich, wenn Sie nicht ein CPU-Ingenieur sind oder auf andere Weise versuchen, etwas auf einem sehr niedrigen Niveau zu debuggen.