Bagaimana cara mendapatkan informasi tentang kata, ukuran alamat, ukuran bus alamat, ukuran bus data, dan ukuran bus instruksi?

12

Saya bertanya-tanya bagaimana cara mendapatkan informasi tentang hal-hal berikut dari baris perintah di Linux:

  • kata (yaitu ukuran yang dapat diproses CPU pada satu waktu, yang mungkin bukan kedalaman bit OS),
  • ukuran alamat (yaitu jumlah bit dalam alamat aktual),
  • address bus size (tidak yakin apakah itu sama dengan ukuran alamat berdasarkan definisi, tapi saya pikir mereka berbeda dan mungkin tidak setuju),
  • ukuran bus data,
  • ukuran instruksi?
Tim
sumber
Banyak dari ini tidak terdefinisi dengan baik (ada lebih dari satu bus dan mereka semua tidak memiliki ukuran yang sama). Bahkan hal-hal seperti "ukuran kata CPU" tidak didefinisikan dengan jelas, beberapa CPU (misalnya semua CPU PC) memiliki beberapa ukuran kata.
Gilles 'SO- stop being evil'

Jawaban:

9

Lakukan cat /proc/cpuinfodan lihat hasilnya:

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:

Banyak informasi yang Anda cari dapat disimpulkan dari ini.

sybreon
sumber
Terima kasih! (1) Tentang ukuran alamat fisik, mungkinkah ukurannya bukan ukuran bus alamat? (2) Apakah benar output tidak memberikan kata CPU?
Tim
@ Tim Outputnya memberikan ukuran kata CPU dengan cara yang samar: semua CPU i386 dapat melakukan 8, 16 dan 32, dan lmflag menunjukkan CPU amd64, yaitu CPU dapat melakukan 64. Ukuran kata untuk aritmatika bilangan bulat sama dengan untuk alamat pada keluarga CPU ini (kecuali jika Anda menghitung register segmen, tapi itu cerita lain).
Gilles 'SANGAT berhenti menjadi jahat'
@Gilles: Terima kasih! (1) Apa yang saya maksud secara harfiah? (2) Apa yang Anda maksud dengan "kecuali jika Anda menghitung register segmen"?
Tim
@Tim Nama flag CPU cenderung tidak jelas dan terkadang tidak akurat karena nama flag diselesaikan sebelum fungsinya yang tepat. Periksa daftar fitur CPU Linux x86 ; lmadalah "mode panjang". Register segmen sebaiknya diserahkan kepada sejarawan PC (tidak ada OS modern yang menggunakannya); tetapi PAE , yang meningkatkan ukuran alamat menjadi 36 bit pada 686 platform, didukung oleh sebagian besar OS PC modern.
Gilles 'SANGAT berhenti menjadi jahat'
address sizessayangnya tidak ada di ARM.
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功
17
  1. getconf WORD_BIT
  2. getconf LONG_BIT (ukuran bilangan bulat panjang)
  3. arch

Misalnya, pada sistem 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
sumber