Comment obtenir des informations sur le mot, la taille de l'adresse, la taille du bus d'adresse, la taille du bus de données et la taille du bus d'instructions?

12

Je me demandais comment obtenir des informations sur les choses suivantes à partir de la ligne de commande sous Linux:

  • mot (c'est-à-dire la taille que la CPU peut traiter à la fois, qui peut ne pas être la profondeur de bits du système d'exploitation),
  • la taille de l'adresse (c'est-à-dire le nombre de bits dans une adresse réelle),
  • la taille du bus d'adresse (je ne sais pas si c'est la même que la taille de l'adresse par définition, mais je pense qu'elles sont différentes et peuvent ne pas être d'accord),
  • taille du bus de données,
  • taille de l'instruction?
Tim
la source
Beaucoup d'entre eux ne sont pas bien définis (il y a plus d'un bus et ils n'ont pas tous la même taille). Même des choses comme la «taille du mot CPU» ne sont pas clairement définies, certains CPU (par exemple tous les CPU PC) ont plusieurs tailles de mot.
Gilles 'SO- arrête d'être méchant'

Réponses:

9

Faites un cat /proc/cpuinfoet regardez les résultats:

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:

Beaucoup d'informations que vous recherchez peuvent en être déduites.

sybreon
la source
Merci! (1) À propos de la taille de l'adresse physique, est-il possible que ce ne soit pas la taille du bus d'adresse? (2) Est-il vrai que la sortie ne donne pas de mot CPU?
Tim
@Tim La sortie donne la taille du mot CPU de manière cryptique: tous les CPU i386 peuvent faire 8, 16 et 32, et l' lmindicateur indique un CPU amd64, c'est-à-dire que le CPU peut en faire 64. La taille de mot pour l'arithmétique entière est la même que pour les adresses de cette famille de CPU (sauf si vous comptez les registres de segments, mais c'est une toute autre histoire).
Gilles 'SO- arrête d'être méchant'
@Gilles: Merci! (1) Que signifie littéralement lm? (2) Qu'entendez-vous par «à moins de compter les registres de segments»?
Tim
Les noms d'indicateur CPU @Tim ont tendance à être obscurs et parfois inexacts car le nom d'indicateur a été défini avant sa fonction exacte. Consultez la liste des fonctionnalités du processeur Linux x86 ; lmest le «mode long». Il est préférable de laisser les registres de segments aux historiens des PC (aucun système d'exploitation moderne ne les utilise); mais PAE , qui porte la taille des adresses à 36 bits sur 686 plates-formes, est pris en charge par la plupart des principaux systèmes d'exploitation PC modernes.
Gilles 'SO- arrête d'être méchant'
address sizesn'est pas présent sur ARM malheureusement.
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
17
  1. getconf WORD_BIT
  2. getconf LONG_BIT (la taille des entiers longs)
  3. arch

Par exemple, sur un système 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
Zed
la source