Wie erhalte ich Informationen zu Wort, Adressgröße, Adressbusgröße, Datenbusgröße und Befehlsbusgröße?

12

Ich habe mich gefragt, wie ich unter Linux Informationen über die folgenden Dinge über die Befehlszeile erhalten kann:

  • Wort (dh die Größe, die die CPU gleichzeitig verarbeiten kann, möglicherweise nicht die Bittiefe des Betriebssystems),
  • Adressgröße (dh die Anzahl der Bits in einer tatsächlichen Adresse),
  • Adressbusgröße (nicht sicher, ob sie per Definition der Adressgröße entspricht, aber ich denke, sie sind unterschiedlich und stimmen möglicherweise nicht überein),
  • Datenbusgröße,
  • Anweisungsgröße?
Tim
quelle
Viele davon sind nicht genau definiert (es gibt mehr als einen Bus und sie haben nicht alle die gleiche Größe). Selbst Dinge wie „CPU-Wortgröße“ sind nicht klar definiert. Einige CPUs (z. B. alle PC-CPUs) haben mehrere Wortgrößen.
Gilles 'SO - hör auf böse zu sein'

Antworten:

9

Machen Sie eine cat /proc/cpuinfound schauen Sie sich die Ergebnisse an:

processor       : 1
vendor_id       : GenuineIntel
cpu family      : 6
model           : 23
model name      : Genuine Intel(R) CPU           U4100  @ 1.30GHz
stepping        : 10
cpu MHz         : 1200.000
cache size      : 2048 KB
physical id     : 0
siblings        : 2
core id         : 1
cpu cores       : 2
apicid          : 1
initial apicid  : 1
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 13
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm xsave lahf_lm
bogomips        : 2593.48
clflush size    : 64
cache_alignment : 64
address sizes   : 36 bits physical, 48 bits virtual
power management:

Viele der Informationen, nach denen Sie suchen, können daraus abgeleitet werden.

Sybreon
quelle
Vielen Dank! (1) Ist es bei der physischen Adressgröße möglich, dass es sich nicht um die Adressbusgröße handelt? (2) Ist es richtig, dass der Ausgang kein CPU-Wort gibt?
Tim
@Tim Die Ausgabe gibt die CPU-Wortgröße auf kryptische Weise an: Alle i386-CPUs können 8, 16 und 32 ausführen, und das lmFlag zeigt eine amd64-CPU an, dh die CPU kann 64. Die Wortgröße für die Ganzzahlarithmetik ist dieselbe wie für Adressen in dieser CPU-Familie (es sei denn, Sie zählen Segmentregister, aber das ist eine ganz andere Geschichte).
Gilles 'SO - hör auf böse zu sein'
@ Gilles: Danke! (1) Was bedeutet ich wörtlich? (2) Was meinen Sie mit "es sei denn, Sie zählen Segmentregister"?
Tim
@ Tim CPU-Flag-Namen sind in der Regel dunkel und manchmal ungenau, da der Flag-Name vor seiner genauen Funktion festgelegt wurde. Überprüfen Sie die Funktionsliste der Linux x86-CPU . lmist "langer Modus". Segmentregister sollten am besten PC-Historikern überlassen werden (kein modernes Betriebssystem verwendet sie). aber PAE , die Adresse Größen bis 36 Bits auf 686 Plattformen erhöht, wird von den meisten großen modernen PC - Betriebssystemen unterstützt.
Gilles 'SO - hör auf böse zu sein'
address sizes ist auf ARM leider nicht vorhanden.
Ciro Santilli 事件 改造 中心 法轮功 六四
17
  1. getconf WORD_BIT
  2. getconf LONG_BIT (die Größe langer Ganzzahlen)
  3. arch

Zum Beispiel auf einem Fedora 14 x64-System:

% uname -a
Linux grinchy 2.6.35.14-106.fc14.x86_64 #1 SMP Wed Nov 23 13:07:52 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux

% getconf WORD_BIT
32

% getconf LONG_BIT
64

% arch
x86_64
Zed
quelle