Як отримати інформацію про слово, розмір адреси, розмір адресної шини, розмір шини даних та розмір шини інструкції?


12

Мені було цікаво, як отримати інформацію про наступні речі з командного рядка в Linux:

  • слово (тобто розмір, який процесор може обробити за один раз, який може бути не бітною глибиною ОС),
  • розмір адреси (тобто кількість бітів у фактичній адресі),
  • розмір адресної шини (не впевнений, чи він такий самий, як розмір адреси за визначенням, але я думаю, що вони різні і можуть не погодитися),
  • розмір шини даних,
  • розмір інструкції?

Багато з них не є чітко визначеними (існує більше однієї шини, і вони не мають однакових розмірів). Навіть такі речі, як "розмір слова CPU", чітко не визначені, деякі процесори (наприклад, усі ПК на ПК) мають кілька розмірів слів.
Жил 'SO- перестань бути злим'

Відповіді:


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:

З цього можна зробити багато інформації, яку ви шукаєте.


Спасибі! (1) Щодо фізичного розміру адреси, можливо, це може бути не розмір адресної шини? (2) Чи правильно, що вихід не дає слова CPU?
Тім

@Tim Вихід дає криптовалюту розміру слова CPU: усі процесори i386 можуть робити 8, 16 і 32, а lmпрапор вказує на процесор amd64, тобто процесор може робити 64. Розмір слова для цілої арифметики такий самий, як для адрес цього сімейства процесорів (якщо не рахувати сегментні регістри, але це зовсім інша історія).
Жил 'SO- перестань бути злим'

@Gilles: Дякую! (1) Що буквально означає lm? (2) Що ви маєте на увазі під "якщо не рахувати сегментні регістри"?
Тім

Імена прапорців процесора @Tim, як правило, невідомі, а іноді й неточні, оскільки ім'я прапора було встановлено перед його точною функцією. Перегляньте список функцій процесора Linux x86 ; lm"довгий режим". Реєстри сегментів найкраще залишити історикам ПК (жодна сучасна ОС їх не використовує); але PAE , який збільшує розміри адреси до 36 біт на 686 платформах, підтримується більшістю основних сучасних ОС ПК.
Жил 'SO- перестань бути злим'

address sizesна жаль, в ARM немає.
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.