Mekanisme firmware / perangkat keras apa yang memungkinkan pematian paksa?

41

Meskipun saya tidak tahu ini dengan pasti, saya cukup yakin bahwa menahan tombol daya pada semua komputer akan memaksa mereka untuk mati setelah berbagai waktu. Ini sangat berguna jika komputer macet, atau kesalahan lain mengharuskan reboot total.

Yang saya tertarik adalah apakah mekanisme pemadaman paksa ini disandikan secara keras ke dalam komputer yang mendasari firmware? Atau apakah ini dibangun ke komputer pada tingkat perangkat keras. Jika mekanismenya adalah firmware, maka logis untuk mengasumsikan bahwa kesalahan tingkat CPU akan mencegah mekanisme ini memicu dengan benar, yang membuat saya percaya ini adalah fungsi perangkat keras.

Untuk meringkas: Apakah mekanisme pematian paksa universal (saya berasumsi) dibangun pada tingkat perangkat keras atau firmware? Dan bisakah seseorang menguraikan mekanisme alam, varian dan sejarah umum.

pengguna4493605
sumber
7
@ EJP Salah. Lihat jawaban saya :)
DavidPostill
2
Pada beberapa perangkat khusus yang pernah saya gunakan yang juga memiliki tombol daya lunak dan bertenaga baterai (membuat siklus daya keras menjadi sulit bagi pengguna), kami secara eksplisit menambahkan mikrokontroler terpisah atau sirkuit timer + logika (atau bagian khusus) pada FPGA) untuk menangani daya ketika firmware cukup kompleks untuk memungkinkan daya mati jika ada bug firmware yang menguncinya.
Jason C
4
Kebanyakan pernyataan dengan "semua" salah.
Paŭlo Ebermann
2
Jika semuanya gagal, ada solusi pencadangan perangkat keras lengkap yang melibatkan kabel hitam tebal di bagian belakang dengan konektor 3 pin, melepas ini juga akan memaksa shutdown.
Darren H
3
@ DarrenH tidak pada laptop dengan baterai yang tidak dapat dilepas. Meratakan baterai akan bekerja tetapi umur saya 10+ jam (misalnya)
Chris H

Jawaban:

45

Apakah mekanisme universal-shutdown dibangun pada tingkat perangkat keras atau firmware?

Baik motherboard (perangkat keras) dan BIOS (firmware) terlibat dalam proses tersebut.

Pergantian daya yang sebenarnya (hidup dan mati) dilakukan oleh sirkuit pada motherboard. Sirkuit dipicu untuk mengubah keadaan dengan hubung singkat sesaat dari dua titik di sirkuit. Itu dilakukan dengan menekan tombol panel depan. Koneksi jangka pendek dari tombol itu sudah cukup. Rangkaian motherboard juga memiliki fungsi kedua dan ketiga yang bisa dilakukan.

BIOS biasanya diatur sehingga, jika sirkuit sudah dalam keadaan ON dan kontak sesaat tetap ditutup selama minimal 4 detik, salah satu dari dua tindakan akan dilakukan. Entah sistem akan langsung mati (seperti mematikan sakelar), atau motherboard akan memasuki kondisi "tidur" dan menunggu untuk dibangunkan kembali. Yang mana dari dua opsi ini yang dilakukan adalah sesuatu yang Anda atur di layar BIOS Setup. **

Ini adalah alasan bahwa motherboard tidak pernah sepenuhnya "Mati" di sebagian besar situasi operasi. Bahkan ketika "Off", ada sebagian kecil yang ditujukan untuk memeriksa input dari beberapa sumber (seperti tombol push depan, beberapa perangkat USB dan mungkin modem) sehingga dapat merespons dengan menyalakan daya ke seluruh sistem. Cara untuk benar-benar mematikan semua daya adalah dengan mencabut kabel daya, atau menggunakan sakelar fisik yang dipasang di bagian belakang PSU untuk mematikannya.

Sumber Bagaimana tombol daya bekerja?


Switch modern tidak mengandung sihir apa pun. Bahkan, mereka lebih rumit dan mahal daripada switch on / off fisik nyata.

Sakelar ini hanya input ke pengontrol mikro. Kontroler mikro dapat mengetahui kapan Anda menekan tombol, dan sisanya dikodekan dalam firmware untuk memutuskan apa yang harus dilakukan. Kekuasaan biasanya diaktifkan dengan transistor. Ini berarti tombol itu sendiri tidak harus menangani tegangan tinggi atau arus tinggi, jadi ada lebih banyak pilihan untuk membuatnya dan membuatnya menjadi kecil. Ini bisa berupa sakelar membran, misalnya, yang tidak akan pernah Anda gunakan untuk mengganti daya dinding.

Ini berarti bahwa sedikit perangkat biasanya aktif, setidaknya cukup untuk menyalakan mikro-controller. Namun, pengendali mikro modern dapat mengambil sejumlah kecil daya ketika tidak melakukan apa pun kecuali menunggu sinyal sakelar bahwa daya ini tidak relevan dalam kebanyakan kasus.

Dalam beberapa kasus, tombol ini benar-benar menyebabkan mikro untuk mendapatkan daya ketika ditekan, yang kemudian menyalakan beberapa transistor atau relay atau sesuatu untuk menjaga daya hidup. Ketika Anda menekan tombol untuk mematikan perangkat, mikro menutup semuanya, termasuk itu sendiri.

Sumber Bagaimana tombol-tombol daya modern pada perangkat ini bekerja menjawab dengan Olin Lathrop

DavidPostill
sumber
1
Untuk memperjelas, apakah tombol daya ditangani langsung oleh CPU utama seperti kebanyakan kode BIOS atau apakah firmware yang menangani tombol daya dijalankan pada mikrokontroler seperti bagian kedua dari jawaban Anda?
slebetman
3
Saya percaya keduanya: menekan tombol menghasilkan acara ACPI untuk CPU, tetapi ada juga CPU non-utama yang memonitornya untuk mengimplementasikan shutdown paksa yang sebenarnya jika ditekan tanpa respons dari CPU. Kalau tidak, Anda bisa berakhir dalam situasi di mana interupsi mati dan ACPI dinonaktifkan, dan tidak dapat memaksa shutdown.
pjc50
6

Apakah mekanisme pematian paksa universal (saya berasumsi) terpasang pada tingkat perangkat keras atau firmware?

Tanpa mencari referensi, ada logika yang cukup sederhana di sini: mereka harus bekerja pada tingkat perangkat keras karena mereka bekerja tanpa CPU di soket.

Tentu, PC tidak akan melakukan semua itu, tetapi Anda masih bisa menyalakannya secara teknis; jika mainboard Anda memiliki kemampuan untuk memberi Anda pesan (dengan bunyi bip atau kode 2 digit kecil) Anda mungkin akan mendapatkan kode "CPU buruk / tidak ada CPU". Anda juga akan dapat mematikannya dengan pers lama, yang merupakan bagian penting di sini.

Juga, perlu diingat bahwa dalam semua kasus di mana sistem berada dalam keadaan sangat tidak waras (yaitu, dalam mode single-user / linux kernel panic / BSOD dll) dan untuk semua maksud dan tujuan pada jalan buntu, daya tombol masih berfungsi (setidaknya tekan lama).

Perhatikan bahwa "tingkat perangkat keras" sudah merupakan istilah yang cukup luas; yaitu, bisa dengan mudah ada apa saja dari beberapa transistor hingga μC berdedikasi kecil dengan beberapa bit NVRAM sekitar (yang akan menjaga nilai-nilai dikonfigurasi oleh BIOS, misalnya pada perilaku pers-pendek), yang kebanyakan orang masih akan memanggil "perangkat keras".

AnoE
sumber