HAI,
Jika saya menjalankan ini pada Dell T410, yang memiliki dua prosesor Xeon E5530 Quad Core, saya mendapatkan output seperti di bawah ini:
mov eax, 4
mov ebx, 0
mov ecx, 0
mov edx, 0
CPUID
; at this point eax=0x1c004121, ebx=0x1c0003f, ecx=0x3f, edx=0x0
Menurut Intel AP-485: "BIOS akan menggunakan fungsi ini untuk menentukan jumlah core yang diimplementasikan dalam paket prosesor fisik tertentu. Untuk melakukan ini BIOS pada awalnya harus mengatur register EAX ke 4 dan register ECX ke 0 sebelum mengeksekusi instruksi CPUID. Setelah mengeksekusi instruksi CPUID, (EAX [31:26] +1) berisi jumlah core. "
Seperti yang Anda lihat, EAX [31:26] adalah 7, jadi paket ini memiliki 8 core. Tapi saya tahu hanya ada 4. Adakah yang bisa memberi tahu saya cara menentukan jumlah inti dalam prosesor Intel yang berfungsi untuk E5530?
By the way, jumlah prosesor logis bekerja menjadi 16, yang saya harapkan karena prosesor ini adalah HyperThread. Tapi sekali lagi saya tahu itu sebenarnya hanya memiliki 8 prosesor logis.
Jika saya menjalankan instruksi CPUID untuk semua fungsi yang didukung, saya mendapatkan:
cpuid function, eax, ebx, ecx, edx
0x0, 0xb, 0x756e6547, 0x6c65746e, 0x49656e69,
0x1, 0x106a5, 0x7100800, 0x9ce3bd, 0xbfebfbff,
0x2, 0x55035a01, 0xf0b2e4, 0x0, 0x9ca212c,
0x3, 0x0, 0x0, 0x0, 0x0,
0x4, 0x1c004121, 0x1c0003f, 0x3f, 0x0,
0x5, 0x40, 0x40, 0x3, 0x1120,
0x6, 0x3, 0x2, 0x1, 0x0,
0x7, 0x0, 0x0, 0x0, 0x0,
0x8, 0x0, 0x0, 0x0, 0x0,
0x9, 0x0, 0x0, 0x0, 0x0,
0xa, 0x7300403, 0x44, 0x0, 0x603,
0xb, 0x1, 0x2, 0x100, 0x7,
0x80000000, 0x80000008, 0x0, 0x0, 0x0,
0x80000001, 0x0, 0x0, 0x1, 0x28100000,
0x80000002, 0x65746e49, 0x2952286c, 0x6f655820, 0x2952286e,
0x80000003, 0x55504320, 0x20202020, 0x20202020, 0x45202020,
0x80000004, 0x30333535, 0x20402020, 0x30342e32, 0x7a4847,
0x80000005, 0x0, 0x0, 0x0, 0x0,
0x80000006, 0x0, 0x0, 0x1006040, 0x0,
0x80000007, 0x0, 0x0, 0x0, 0x100,
0x80000008, 0x3028, 0x0, 0x0, 0x0,
cat /proc/cpuinfo