Bagaimana pesan “CPU yang tidak didukung terpasang” ditampilkan?

55

Saya memiliki sebuah CPU yang tidak didukung dimasukkan ke dalam mesin saya dan saya mendapatkan error ini ketika PC saya boot: Unsupported CPU installed. Pertanyaan saya bukan bagaimana cara memperbaikinya melainkan:

Bagaimana pesan kesalahan ini ditampilkan jika CPU tidak digunakan? Bisakah BIOS bekerja tanpa CPU?

David
sumber
13
Jelas, CPU cukup baik untuk menjalankan pemeriksaan rutin CPU dan menampilkan beberapa teks di layar, tetapi tidak cukup baik untuk mem-boot OS aktual pada perangkat keras Anda.
Dmitry Grigoryev
22
@DmitryGrigoryev "Jelas, CPU [...] tidak cukup baik untuk mem-boot OS yang sebenarnya pada perangkat keras Anda." Belum tentu begitu jelas. Bagaimana jika saya ingin boot, katakanlah, FreeDOS? Apa yang dikatakan BIOS tentang apa yang saya boot di PC? Ada alasan mengapa setiap boot loader MBR, bahkan hari ini, awalnya dijalankan dalam mode nyata.
CVn
7
@ MichaelKjörling Saya kira produsen BIOS memutuskan bahwa mendukung TPM dan memastikan pengguna Windows bahagia lebih penting daripada membiarkan Anda mem-boot FreeDOS.
Dmitry Grigoryev
3
@ MichaelKjörling: BIOS mungkin menyimpan tambalan mikrokode yang gagal diterapkan. Tidak ada cara untuk memprediksi kegunaan CPU pada saat itu.
MSalters
2
CPU apa yang terpasang dan di motherboard apa? Misalnya, apakah Anda menginstal prosesor Coffee Lake pada papan Z270 atau Z170? (Kombinasi ini tidak akan berfungsi karena Coffee Lake dan chipset Z370-nya membuat perubahan yang tidak kompatibel pada pinout soket, meskipun menggunakan soket LGA1151 fisik yang sama.)
bwDraco

Jawaban:

50

Tidak, BIOS tidak dapat bekerja tanpa CPU.

Hal pertama yang dilakukan komputer Anda saat dihidupkan adalah memeriksa apakah koneksi antara CPU dan RAM baik. Ini adalah pemeriksaan listrik sederhana bahwa semua output jalur bus terhubung ke input yang benar. Jika pemeriksaan sederhana ini tidak lulus, Anda mendapatkan kode bip (atau mungkin tampilan LED pada beberapa motherboard). Pemeriksaan ini tidak memerlukan CPU, namun tanpa kehadiran CPU, Anda bahkan mungkin tidak mendapatkan kode bip, karena bahkan memerlukan beberapa ukuran pemrosesan (tergantung pada motherboard).

Akan tetapi, setelah hal-hal ini diperiksa, maka CPU memulai eksekusi program yang terdapat dalam BIOS ROM yang melakukan beberapa pemeriksaan tingkat lebih tinggi tambahan (seperti apakah pengaturan waktu kerja, apakah firmware tambahan untuk perangkat terpasang dapat dimuat dengan benar, dll). Program ROM ini ditulis dalam bahasa assembly x86 dan memang membutuhkan CPU untuk menjalankannya.

Apa yang terjadi dalam kasus Anda adalah bahwa CPU secara elektrik kompatibel dengan motherboard dan berfungsi, tetapi tidak memiliki dukungan fitur tingkat rendah yang menjadi sandaran motherboard. Mungkin Anda menggunakan CPU yang memiliki TDP lebih tinggi (menghasilkan lebih banyak panas) daripada yang bisa ditangani motherboard, memiliki lebih banyak core daripada yang diketahui BIOS untuk diinisialisasi, atau mungkin tidak mendukung kondisi daya yang coba diatur oleh BIOS. Anda tidak menyebutkan apa kombo CPU / motherboard yang Anda gunakan.

Dalam kasus apa pun, CPU memberikan dukungan yang cukup untuk BIOS sehingga dapat menjalankan program yang disimpan dalam ROM-nya (termasuk memindahkan byte masuk dan keluar dari memori video). Itu tidak bisa lebih jauh dari itu.

Mungkin hanya memeriksa keluarga dan loncatan ID dari prosesor terhadap daftar internal jenis CPU yang didukung. Dalam banyak kasus, ini dapat ditambal dengan pemutakhiran BIOS. Tetapi Anda harus memasukkan CPU yang didukung terlebih dahulu untuk menginstalnya.

Wes Sayeed
sumber
21
Saya pikir bagian penting dari jawaban ini salah. The BIOS tidak dapat beroperasi tanpa CPU seperti itu adalah program pertama CPU mengeksekusi . Itu tidak bisa melakukan apa pun dengan sendirinya. ( Tanpa CPU tidak ada kode bip terjadi , BTW; ia dapat melakukan kode bip tanpa RAM karena init hati-hati dengan register saja). Pesan tersebut mungkin karena mengharapkan fitur dari CPU yang tidak disediakannya, tetapi karena inisialisasi x86 cukup dapat dilakukan untuk mencetak pesan tersebut.
DarkDust
21
Seorang pembuat motherboard bisa menciptakan sistem analog sederhana yang akan berbunyi 5 detik setelah startup, kecuali aktif berbalik off oleh BIOS. Jadi secara teknis tidak akan menjadi fitur BIOS, tetapi lebih merupakan fitur kurangnya-BIOS.
MSalters
5
Bahkan setelah pengeditan, ini tidak benar: Ini adalah pemeriksaan listrik sederhana bahwa semua output jalur bus terhubung ke input yang benar. Jika pemeriksaan sederhana ini tidak lulus, Anda mendapatkan kode bip (atau mungkin tampilan LED pada beberapa motherboard). Pemeriksaan ini tidak memerlukan CPU… Selain itu, bukan BIOS yang memulai eksekusi suatu program dalam ROM, CPU melakukan itu dan program ini adalah BIOS. Maaf untuk melakukan nitpicking, tetapi dari jawaban Anda sepertinya BIOS adalah beberapa perangkat keras yang sebagian independen dari CPU padahal sebenarnya, BIOS "hanyalah" program dalam ROM (atau flash).
DarkDust
5
@TobySpeight: Bukan sihir. CPU lagi. Ini adalah EC, pengontrol tertanam seperti yang dimiliki semua laptop. Di laptop itu mengelola pengisian daya baterai dan lampu status. Di desktop itu dapat mengelola pembaruan BIOS. Terkadang mereka juga mengatur pengaturan daya papan dan hal-hal seperti port pengisian USB.
Zan Lynx
4
@WesSayeed: Apakah Anda yakin ini masalahnya? Karena AFAIK, tidak ada yang namanya "bus check", karena pemeriksaan kawat murni akan membutuhkan modifikasi yang sangat mahal untuk chip DRAM dan memberikan sedikit nilai tambahan. Segera setelah CPU memiliki daya, ia mulai membaca dan menjalankan instruksi dari ROM BIOS, yang akan membaca setiap SPD DIMM dan pengaturan dari CMOS RAM dan mencoba untuk menginisialisasi pengontrol DRAM. Maka ia akan dengan cepat menguji DRAM (POST), diikuti oleh inisialisasi semua periferal lain yang relevan. Lihat video ini: youtube.com/watch?v=xc08SN6Dhz4
mic_e
11

Mungkin karena fitur yang tidak didukung berasal dari mode terproteksi, tetapi pada saat itu menampilkan pesan ini, ia belum memasukkannya dan masih dalam mode 8086. Jadi, itu tidak berfungsi TANPA CPU, BIOS hanyalah sebuah program, tidak dapat bekerja tanpa CPU. Hanya saja terdeteksi bahwa itu tidak bisa melewati titik tertentu dalam eksekusi dan berhenti sebelum mencapai tempat itu.

Saya akan menjelaskan: PC DOS pertama tidak memiliki semua mode eksekusi rumit yang diperlukan untuk penggunaan multi-tugas dan multi-pengguna yang benar. Ketika Intel memperkenalkannya dalam CPU-nya, mereka ingin mempertahankan kompatibilitas dengan CPU yang lebih lama. Itu sebabnya mereka memperkenalkan mode-mode itu: Pertama-tama mereka memulai CPU 8086, mereka melakukan beberapa tes dan inisialisasi, dan baru kemudian mereka pergi ke mode terlindungi.

Truk
sumber
3
Mungkin tidak ada ekstensi set instruksi yang menjadi masalah. Ini lebih seperti CPU yang terlalu baru untuk BIOS (mis. IvyBridge dalam mobo Sandybridge tanpa BIOS yang diperbarui), jadi tidak tahu cara memprogram pengaturan kontrolnya dengan benar. (mis. register konfigurasi manajemen daya CPU yang menetapkan ambang daya untuk Turbo, pengontrol waktu DRAM memori, atau apa pun. Dan jika CPU terlalu baru, mungkin ada hal-hal baru yang seharusnya dilakukan oleh BIOS tetapi hal itu seharusnya tidak tahu tentang. Juga perangkat keras grafis berbeda dalam CPU baru
Peter Cordes
8

"CPU yang tidak didukung" tidak memberi tahu Anda bahwa CPU tidak berfungsi. Ini mungkin berarti bahwa firmware pada motherboard (apakah BIOS atau UEFI) telah mengeksekusi beberapa kode pada CPU yang telah menentukan bahwa CPU tidak kompatibel dengan beberapa fitur tertentu yang diandalkan motherboard selama operasi normal. Atau hanya bahwa motherboard belum diuji dengan CPU ini dan pabrikan tidak ingin mengambil risiko itu.

Tetapi semua ini tidak berarti bahwa CPU tidak dapat menjalankan instruksi pada saat boot. Sebagai contoh, semua CPU x86 modern memiliki instruksi CPUID yang dapat digunakan untuk menentukan apakah berbagai fitur prosesor tersedia. Kode boot dapat menjalankan instruksi ini dan menampilkan pesan kesalahan jika fitur yang diperlukan tidak tersedia.

Artelius
sumber
... dan ketika Artelius menulis "CPU x86 modern", jika kita dapat mempercayai paragraf pengantar Wikipedia tentang masalah ini, itu merujuk pada sesuatu yang lebih baru daripada CPU Pentium 1993 atau 80486SL, yang terdengar benar. Perhatikan bahwa tampaknya (saya belum memeriksa dokumentasi Intel untuk memverifikasi) CPUID mengandalkan register EAX, yang diperkenalkan dengan 80386 pada tahun 1985 ...
CVn
-10

BIOS memiliki daftar periksa (POST) yang digunakan untuk menginisialisasi semua bagian komputer. Ketika mereka tidak lulus cek, maka Anda mendapatkan kesalahan seperti milik Anda. Bagian dari set instruksi POST adalah untuk menetapkan interupsi ke komponen. Jika semua komponen memiliki interupsi, OS dimuat dan interupsi diteruskan ke OS sehingga OS dapat berinteraksi dengan komponen. Ini adalah versi yang disederhanakan dari apa yang terjadi untuk singkatnya. Berikut adalah daftar yang lebih rinci tentang apa yang terjadi: detail boot

BIOS memiliki kontrol awal perangkat sehingga dapat memeriksa dan menampilkan kesalahan jika diperlukan. Banyak kesalahan yang saya lihat adalah bunyi bip, atau LED berkedip yang harus dicari artinya. Biasanya tidak menunjukkan kesalahan pada monitor seperti pada kasus Anda (karena bagaimana jika kartu video adalah masalahnya). BIOS memiliki kemampuan untuk menjalankan hanya urutan inisialisasi paling dasar, dan dalam beberapa kasus menyampaikan hanya kode kesalahan paling dasar. BIOS sudah memiliki interupsi untuk komponen yang berfungsi seperti yang dinyatakan di atas sehingga tidak perlu CPU untuk memproses apa pun untuk mengirim sinyal menggunakan motherboard untuk menghasilkan bunyi bip atau lampu berkedip, atau dalam kasus Anda kartu video untuk menampilkan pesan.

Musselman
sumber
4
Ini salah. BIOS tidak dapat melakukan sesuatu yang rumit seperti menampilkan informasi di layar tanpa kemampuan pemrosesan yang belum sempurna dari CPU yang bekerja dengan benar.
Wes Sayeed
6
Anda tampaknya mendapat kesan bahwa interupsi digunakan untuk mengontrol perangkat keras. Mereka tidak. Juga, interupsi sangat banyak dilakukan melalui CPU, jadi jika CPU tidak dapat mengeksekusi kode, ia tidak dapat menjalankan interupsi (yang sedikit lebih dari instruksi lompat tidak langsung yang sedikit dimuliakan) dan tentu saja tidak akan dapat untuk mengatur salah satu vektor interupsi. Tidak mungkin bahwa BIOS akan dapat mengatur refresh memori, bahkan, sehingga memori di mana vektor interupsi disimpan (di x86, ruang alamat 1 KiB terendah) tidak mungkin bahkan dapat digunakan.
CVn
6
Ada masalah yang lebih mendasar dengan jawaban ini: BIOS hanyalah kode yang berjalan pada CPU. Ini tidak terpisah dari CPU, dan tidak dapat bertindak sendiri.
duskwuff