Как получить информацию о слове, размере адреса, размере шины адреса, размере шины данных и размере шины инструкции?

12

Мне было интересно, как получить информацию о следующих вещах из командной строки в Linux:

  • слово (т. е. размер, который процессор может обрабатывать за один раз, что может не соответствовать разрядности ОС),
  • размер адреса (то есть количество бит в фактическом адресе),
  • размер шины адреса (не уверен, если он по размеру совпадает с размером адреса, но я думаю, что они разные и могут не согласиться),
  • размер шины данных,
  • размер инструкции?
Тим
источник
Многие из них не имеют четкого определения (имеется более одной шины, и они не имеют одинаковые размеры). Даже такие вещи, как «размер слова ЦП» не определены четко, некоторые ЦП (например, все ЦП ПК) имеют несколько размеров слов.
Жиль "ТАК ... перестать быть злым"

Ответы:

9

Сделайте cat /proc/cpuinfoи посмотрите на результаты:

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:

Большая часть информации, которую вы ищете, может быть выведена из этого.

sybreon
источник
Спасибо! (1) Что касается размера физического адреса, возможно ли, что это не размер шины адреса? (2) Правильно ли, что вывод не дает слово ЦП?
Тим
@Tim Вывод дает размер слова CPU загадочным образом: все процессоры i386 могут делать 8, 16 и 32, а lmфлаг указывает на процессор amd64, то есть процессор может делать 64. Размер слова для целочисленной арифметики такой же, как для адресов в этом семействе процессоров (если не считать регистры сегментов, но это совсем другая история).
Жиль "ТАК - перестань быть злым"
@ Жиль: Спасибо! (1) Что буквально означает lm? (2) Что вы подразумеваете под «если не считать регистры сегментов»?
Тим
@Tim Имена флагов ЦП имеют тенденцию быть неясными, а иногда и неточными, потому что имя флага было установлено до его точной функции. Проверьте список возможностей процессора Linux x86 ; lmэто «длинный режим». Сегментные регистры лучше оставить историкам ПК (ни одна современная ОС не использует их); но PAE , которая увеличивает размер адреса до 36 бит на 686 платформах, поддерживается большинством современных современных ПК.
Жиль "ТАК - перестань быть злым"
address sizesнет на ARM к сожалению.
Сиро Сантилли 冠状 病毒 审查 六四 事件 法轮功
17
  1. getconf WORD_BIT
  2. getconf LONG_BIT (размер длинных целых)
  3. arch

Например, в системе 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
источник