Como obter informações sobre palavras, tamanho do endereço, tamanho do barramento de endereços, tamanho do barramento de dados e tamanho do barramento de instruções?

12

Eu queria saber como obter informações sobre as seguintes coisas na linha de comando no Linux:

  • word (ou seja, o tamanho que a CPU pode processar de uma só vez, que pode não ser a profundidade de bits do SO),
  • tamanho do endereço (ou seja, o número de bits em um endereço real),
  • tamanho do barramento de endereço (não tenho certeza se é o mesmo que tamanho de endereço por definição, mas acho que eles são diferentes e podem não concordar),
  • tamanho do barramento de dados,
  • tamanho da instrução?
Tim
fonte
Muitos deles não estão bem definidos (há mais de um barramento e nem todos têm o mesmo tamanho). Mesmo coisas como "tamanho da palavra CPU" não estão claramente definidas, algumas CPUs (por exemplo, todas as CPUs de PC) têm vários tamanhos de palavra.
Gilles 'SO- stop be evil'

Respostas:

9

Faça um cat /proc/cpuinfoe observe os resultados:

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:

Muitas informações que você está procurando podem ser deduzidas disso.

sybreon
fonte
Obrigado! (1) Sobre o tamanho do endereço físico, é possível que ele não seja o tamanho do barramento de endereço? (2) É certo que a saída não dê uma palavra de CPU?
Tim
@Tim A saída fornece o tamanho da palavra da CPU de maneira enigmática: todas as CPUs i386 podem executar 8, 16 e 32, e o lmsinalizador indica uma CPU amd64, ou seja, a CPU pode executar 64. O tamanho da palavra para aritmética inteira é o mesmo que para endereços nessa família de CPUs (a menos que você conte os registros de segmento, mas isso é outra história).
Gilles 'SO- stop being evil' em
@Gilles: Obrigado! (1) O que lm significa literalmente? (2) O que você quer dizer com "a menos que conte os registros de segmento"?
Tim
Os nomes de sinalizadores da CPU @Tim tendem a ser obscuros e, às vezes, imprecisos porque o nome do sinalizador foi definido antes de sua função exata. Confira a lista de recursos da CPU do Linux x86 ; lmé o "modo longo". É melhor deixar os registros de segmento para historiadores de PC (nenhum sistema operacional moderno os usa); mas o PAE , que aumenta o tamanho do endereço para 36 bits em 686 plataformas, é suportado pela maioria dos principais sistemas operacionais modernos de PC.
Gilles 'SO- stop be evil'
address sizesinfelizmente não está presente no ARM.
Ciro Santilli # 19/17
17
  1. getconf WORD_BIT
  2. getconf LONG_BIT (o tamanho de números inteiros longos)
  3. arch

Por exemplo, em um 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
Zed
fonte