Come ottenere informazioni su parola, dimensione dell'indirizzo, dimensione del bus dell'indirizzo, dimensione del bus dati e dimensione del bus di istruzione?


12

Mi chiedevo come ottenere informazioni sulle seguenti cose dalla riga di comando in Linux:

  • parola (ovvero la dimensione che la CPU può elaborare contemporaneamente, che potrebbe non essere la profondità di bit del sistema operativo),
  • dimensione dell'indirizzo (ovvero il numero di bit in un indirizzo effettivo),
  • dimensione del bus dell'indirizzo (non sono sicuro che sia uguale alla dimensione dell'indirizzo per definizione, ma penso che siano diversi e potrebbero non essere d'accordo),
  • dimensione del bus dati,
  • dimensione dell'istruzione?

Molti di questi non sono ben definiti (c'è più di un bus e non hanno tutti le stesse dimensioni). Anche cose come "dimensioni delle parole della CPU" non sono chiaramente definite, alcune CPU (ad esempio tutte le CPU dei PC) hanno diverse dimensioni delle parole.
Gilles 'SO- smetti di essere malvagio' il

Risposte:


9

Fai un cat /proc/cpuinfoe guarda i risultati:

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:

Molte delle informazioni che stai cercando possono essere dedotte da questo.


Grazie! (1) Per quanto riguarda la dimensione dell'indirizzo fisico, è possibile che non sia la dimensione del bus dell'indirizzo? (2) È giusto che l'uscita non fornisca la parola CPU?
Tim

@Tim L'output fornisce la dimensione della parola della CPU in modo criptico: tutte le CPU i386 possono fare 8, 16 e 32 e il lmflag indica una CPU amd64, ovvero la CPU può fare 64. La dimensione della parola per l'aritmetica intera è la stessa di per gli indirizzi su questa famiglia di CPU (a meno che non si contino i registri di segmento, ma questa è tutta un'altra storia).
Gilles 'SO- smetti di essere malvagio' il

@Gilles: grazie! (1) Cosa significa letteralmente lm? (2) Cosa intendi con "se non conti i registri di segmento"?
Tim

@Tim I nomi dei flag della CPU tendono ad essere oscuri e talvolta inaccurati perché il nome del flag è stato risolto prima della sua esatta funzione. Dai un'occhiata all'elenco delle funzionalità della CPU Linux x86 ; lmè "modalità lunga". I registri di segmento sono meglio lasciati agli storici dei PC (nessun moderno SO li usa); ma PAE , che aumenta le dimensioni degli indirizzi a 36 bit su piattaforme 686, è supportato dalla maggior parte dei moderni sistemi operativi per PC.
Gilles 'SO- smetti di essere malvagio' il

address sizespurtroppo non è presente su ARM.
Ciro Santilli 19 病毒 审查 六四 事件 法轮功

17
  1. getconf WORD_BIT
  2. getconf LONG_BIT (la dimensione dei numeri interi lunghi)
  3. arch

Ad esempio, su un sistema Fedora 14 x64:

% 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.