Bagaimana komputer bisa hidup kembali sendiri? Setelah itu mati, bagaimana ia memberitahu dirinya untuk kembali lagi? Perangkat lunak apa yang dapat melakukan ini?
@ jer.salamon: Mereka sebenarnya jalur yang sama sekali berbeda. Mematikan menjalankan rutin ACPI yang mengirimkan sinyal ke catu daya ATX yang mematikan rel tegangan utama.
Ignacio Vazquez-Abrams
13
Ini dikontrol melalui BIOS - jika ingatanku, kata kunci yang menarik adalah APM dan APIC
pst
118
Itu tidak pernah benar-benar "mati" di restart.
Moab
10
Tidak ada pertanyaan bodoh. Tidak, mungkin ada - tapi saya pikir ini sebenarnya sangat menarik. Ditampilkan sebagai pertanyaan tentang kandidat minggu .
slhck
4
Saya dulu telework di server jauh yang pada dasarnya hanya PC tanpa layar atau keyboard di pusat data perusahaan. Server saya biasanya tidak pernah dimatikan sama sekali, tetapi kadang-kadang saya reboot dari akhir saya menggunakan WinXP Start-> TurnOffComputer-> Restart, untuk memilah ketidakstabilan yang disebabkan oleh pengujian kode saya sendiri. Saya sering bekerja pada waktu yang saya pilih sendiri, ketika pusat data tidak berawak. Itu sangat melelahkan apa yang secara tidak sengaja saya pilih Matikan sebagai opsi terakhir, dan harus menunggu sampai dua hari kemudian untuk operator untuk pergi dan tekan tombol on untuk saya!
FumbleFingers
Jawaban:
598
tl; dr: status daya di komputer Anda dikendalikan oleh implementasi ACPI (konfigurasi lanjutan dan antarmuka daya). Di akhir proses pematian, sistem operasi Anda menetapkan perintah ACPI yang menunjukkan bahwa komputer harus reboot. Sebagai tanggapan, motherboard me-reset semua komponen menggunakan perintah atau jalur reset masing-masing, dan kemudian mengikuti proses bootstrap. Motherboard tidak pernah benar-benar mati, hanya me-reset berbagai komponen dan kemudian berperilaku seolah-olah tombol power baru saja ditekan.
Panjang dan bertele-tele tetapi (menurut saya) jawaban yang lebih menarik:
Soft Power dan cara kerjanya
Di masa lalu (well, oke, untuk seorang mahasiswa seperti saya tahun 90-an sudah lama), kami memiliki motherboard AT (Advanced Technology) dengan kekuatan ATpengelolaan. Sistem daya AT sangat, sangat sederhana. Tombol daya pada komputer Anda adalah pergantian perangkat keras (mungkin di bagian belakang kasing) dan input 120vac Anda menembusnya. Secara fisik menyalakan daya ke catu daya Anda dan mematikan, dan ketika saklar ini dalam posisi Off semua komputer Anda benar-benar mati (ini membuat baterai CMOS sangat penting, karena tanpa itu tidak ada catu daya untuk menjaga perangkat keras jam berdetak). Karena saklar daya adalah mekanisme fisik, tidak ada cara perangkat lunak untuk menghidupkan dan mematikan daya. Windows akan menampilkan pesan terkenal "Sekarang aman untuk mematikan komputer Anda" karena, meskipun semuanya diparkir dan siap dimatikan, tidak mungkin bagi OS untuk benar-benar mematikan saklar daya. Konfigurasi ini kadang-kadang disebut sebagaihard power , karena itu semua perangkat keras.
Saat ini segalanya berbeda, karena keajaiban motherboard ATX dan kekuatan ATX (itulah Advanced Technology eXtended jika Anda melacak). Seiring dengan sejumlah kemajuan lainnya (mini-DIN PS / 2, ada yang?), ATX menghadirkan soft power . Daya lunak berarti daya ke komputer dapat dikontrol oleh perangkat lunak. Ini membawa beberapa perubahan impor:
Daya siaga: Anda mungkin telah melihat konektor "5v SB" atau "5v standby" berlabel pinout catu daya. The power supply siagaadalah jalur 5v ke motherboard Anda yang selalu hidup, bahkan ketika komputer dimatikan. Inilah sebabnya mengapa penting untuk mencabut atau mematikan sakelar PSU (jika ada) ketika melayani komputer modern, karena bahkan ketika komputer mati, Anda dapat berpotensi mengurangi SB 5v dan merusak motherboard. Ini juga mengapa baterai CMOS tidak lagi penting - SB 5v digunakan untuk mengganti baterai CMOS setiap kali catu daya memiliki daya listrik, sehingga baterai CMOS hanya digunakan saat Anda mencabut komputer sepenuhnya. Garis 5v SB penting memungkinkan komponen komputer Anda (yang paling penting BIOS dan adapter jaringan) untuk tetap menjalankan beberapa perangkat lunak sederhana bahkan ketika komputer dimatikan.
Kontrol catu daya cerdas. Jika Anda melihat pinout untuk konektor motherboard (P1) catu daya Anda, Anda akan melihat dua pin biasanya berlabel PS_ON dan PS_RDY. Ini berarti "catu daya menyala" dan "catu daya siap". Jika Anda ingin bereksperimen, ambil catu daya yang tidak ada di komputer, colokkan, dan dengan hati-hati menyambungkan kabel ground (salah satu kabel hitam) ke kabel PS_ON (kabel hijau). Catu daya secara nyata akan menyala, dengan kipas berputar. Komponen-komponen motherboard yang kehabisan +5v SB sebenarnya menghidupkan dan mematikan catu daya Anda dengan menghubungkan daya ke pin PS_ON. Karena ada beberapa kapasitor dan komponen lain dalam catu daya yang memerlukan waktu beberapa saat untuk diisi ulang, tegangan dari output utama catu daya mungkin tidak segera stabil setelah PSU menyala. Inilah gunanya pin PS_RDY, muncul ketika logika internal catu daya menentukan bahwa catu daya "siap" dan akan memberikan daya yang stabil.
Jadi, sakelar daya Anda tidak lagi "menyalakan" komputer. Sebagai gantinya, itu terhubung ke pengontrol dasar motherboard Anda, yang mendeteksi bahwa tombol telah ditekan dan menjalankan sejumlah langkah untuk menyiapkan sistem, termasuk menyalakan PS_ON sehingga daya akan tersedia. Tombol daya bukan satu-satunya cara untuk memicu proses startup, perangkat pada bus ekspansi Anda juga dapat melakukannya. Ini penting karena adapter jaringan ethernet Anda benar-benar tetap hidup ketika komputer Anda mati dan mencari paket yang sangat spesifik yang sering disebut sebagai "paket ajaib." Jika mereka mendeteksi paket ini ditujukan ke alamat MAC mereka, mereka akan memicu proses startup. Beginilah cara "Wake-on-LAN" (WoL) bekerja. Jam juga dapat memulai boot (kebanyakan BIOS memungkinkan Anda untuk mengatur waktu kapan komputer harus booting setiap hari),
Memahami Kontrol Daya
Baik, saya menjelaskan tentang Soft Power karena saya pikir ini menarik (selalu menjadi alasan utama saya menjelaskan banyak hal) dan karena ini memungkinkan Anda untuk memahami bagaimana daya dan kondisi komputer Anda yang mati / hidup semua dikendalikan oleh perangkat lunak. Di sebagian besar komputer saat ini, sistem perangkat lunak ini merupakan implementasi dari Konfigurasi Lanjut dan Antarmuka Daya, atau ACPI . ACPI adalah sistem standar dan terpadu yang memungkinkan perangkat lunak untuk mengontrol sistem daya komputer Anda. Anda mungkin pernah mendengar tentang status daya ACPI. Mekanisme dasar kontrol daya adalah "kondisi daya" ini, sistem operasi Anda beralih melalui mode daya dengan mempersiapkan sakelar (proses penonaktifan / hibernasi yang terjadi sebelum daya benar-benar mati), dan kemudian memerintahkan motherboard untuk mengalihkan status daya . Status daya terlihat seperti ini:
G0: Bekerja (kondisi "aktif" komputer Anda)
G1: Tidur (status siaga komputer Anda, dibagi ke dalam substrat S)
S1: daya ke CPU dan RAM tetap menyala, tetapi CPU tidak menjalankan instruksi. Perangkat periferal dimatikan.
S2: CPU dimatikan, RAM dipertahankan
S3: Semua komponen dimatikan kecuali untuk RAM dan perangkat yang akan memicu resume (keyboard). Ketika Anda memberi tahu OS Anda untuk "Tidur", itu akan menghentikan proses dan kemudian masuk ke mode ini.
S4: Hibernasi. Benar-benar semuanya dimatikan. Ketika Anda memberi tahu sistem operasi Anda untuk Hibernate, itu menghentikan proses, menyimpan konten RAM ke disk, dan kemudian memasuki mode ini.
G2: Soft Off. ini adalah kondisi "mati" komputer Anda. Daya mati untuk segalanya kecuali untuk perangkat yang dapat memicu boot.
G3: Mekanik mati.
Bagaimana reset sebenarnya terjadi
Anda akan melihat bahwa reboot bukan salah satu dari kondisi ini. Jadi apa yang sebenarnya terjadi ketika komputer Anda ketika reboot? Jawabannya mungkin mengejutkan, karena dari perspektif manajemen daya hampir tidak ada . Ada perintah reset ACPI. Ketika Anda memberitahu sistem operasi Anda untuk reboot, itu mengikuti proses shutdown yang normal (menghentikan semua proses Anda, melakukan sedikit pemeliharaan, menurunkan sistem file Anda, dll), dan kemudian sebagai langkah terakhir, alih-alih mengirim mesin ke status daya G2 (seperti yang akan terjadi jika Anda hanya menyuruhnya untuk Shut Down) itu menetapkan perintah Reset. Ini umumnya disebut sebagai "Reset register", karena seperti kebanyakan antarmuka ACPI itu hanya alamat yang nilai tertulisnya harus ditulis untuk meminta reset. Saya akan mengutip spesifikasi 2.0 tentang apa yang dilakukannya:
Mekanisme reset ACPI opsional menetapkan mekanisme standar yang menyediakan pengaturan ulang sistem lengkap. Ketika diimplementasikan, mekanisme ini harus mengatur ulang seluruh sistem. Ini termasuk prosesor, logika inti, semua bus, dan semua periferal. Dari perspektif OSPM, menegaskan mekanisme reset adalah setara logis dengan kekuatan bersepeda mesin. Setelah mendapatkan kontrol setelah reset, OSPM akan melakukan tindakan seperti boot dingin.
Jadi, ketika register reset diatur, beberapa hal terjadi secara berurutan.
Semua logika diatur ulang. Ini berarti mengirim masing-masing perintah reset ke berbagai bit perangkat keras termasuk CPU, pengontrol memori, pengontrol periferal, dll. Dalam kebanyakan kasus ini hanya berarti menyalakan kawat RST fisik, seperti yang ditunjukkan AndrejaKo di atas.
Komputer kemudian bootstrap. Ini adalah bagian "melakukan tindakan dengan cara yang sama ke boot dingin". Motherboard melakukan langkah yang sama seperti jika catu daya baru saja siap setelah tombol daya ditekan.
Efek akhir dari dua langkah ini (yang sebenarnya memecah menjadi lebih banyak langkah) adalah terlihat seperti semuanya seperti komputer baru saja boot, tetapi daya sebenarnya ada di sepanjang waktu. Ini berarti lebih sedikit waktu yang diperlukan untuk mematikan dan memulai (karena Anda tidak perlu menunggu catu daya menjadi siap), dan yang penting memungkinkan bootup dimulai oleh sistem operasi yang dimatikan. Ini berarti pemicu startup lain tidak perlu digunakan (WoL dll), dan memungkinkan Anda untuk menggunakan Reboot sebagai cara yang efektif untuk mengatur ulang sistem dari jarak jauh, ketika Anda tidak memiliki cara untuk memicu booting.
Itu jawaban yang panjang. Tapi hei, semoga Anda tahu lebih banyak tentang manajemen daya komputer sekarang. Saya tentu belajar beberapa hal meneliti ini.
+1. Jawabannya sangat informatif & bermanfaat. Hanya satu titik - PS_ON aktif rendah yaitu beralih ke 0V daripada + 5VSB untuk mengaktifkan output utama.
MikeJ-UK
2
Untuk perangkat USB yang memicu boot, beberapa BIOS memiliki opsi untuk membangunkan komputer dengan klik dua kali atau penekanan tombol. Juga, beberapa keyboard Mac memiliki tombol Power (sebuah tradisi yang akan kembali ke aslinya).
Stuart P. Bentley
1
Jawaban yang bagus, saya tentu belajar banyak. Namun, satu pertanyaan tetap: dari sudut pandang motherboard, apa perbedaan antara status S4 dan G2? Menyimpan RAM ke disk dilakukan oleh OS, sehingga S4 terdengar seperti "lunak" untuk perangkat keras.
EMP
1
Saya percaya S4 secara fungsional setara dengan G2, tetapi perbedaannya disimpan. Beberapa BIOS tampaknya melakukan "POST cepat" ketika mulai dari S4 tetapi POST penuh ketika mulai dari G2. Saya tidak berpikir ada alasan untuk ini, meskipun, selain itu orang ingin melanjutkan S4 menjadi cepat.
jcrawfordor
1
Itu sebenarnya agak sederhana; ada (banyak) cara non-ACPI untuk mem-boot ulang komputer, dan kadang-kadang ACPI saja tidak berfungsi: superuser.com/questions/294681/…
Tobu
81
Inilah titik awalnya:
Keripik biasanya tidak mati lalu hidupkan. Sebagai gantinya, ada garis reset yang akan membawa prosesor dalam kondisi reset yang disebut ketika biasanya semua memori dihapus dan prosesor sepertinya baru saja dinyalakan. Ketika pin dipegang tinggi (atau rendah, tergantung pada prosesor), prosesor dalam pengaturan ulang. Setelah pin dilepaskan, pin akan melanjutkan booting secara normal, seperti jika diaktifkan untuk pertama kali. Intinya adalah tidak ada pemadaman listrik sendiri.
Jadi bagaimana skala ini ke sistem yang lebih besar seperti PC modern? Nah, komputer modern terbuat dari komputer yang terkadang terbuat dari komputer itu sendiri. Jadi, ketika Anda mengatur komputer untuk mengatur ulang, "komputer" yang membuat komputer akan mulai menyimpan status mereka (jika pengaturan ulang dikontrol), atau hanya dengan mengatur ulang pin yang disetel.
Beberapa prosesor dan mikrokontroler (yang merupakan miniatur komputer mandiri, biasanya 20 tahun di belakang komputer desktop modern) dapat mengatur ulang diri menggunakan sakelar internal. Seperti yang saya katakan, setelah sinyal yang menghasilkan reset hilang, komputer akan memulai. Jadi premis dalam pertanyaan itu tidak sepenuhnya benar. Komputer tidak tahu kapan harus dihidupkan. Di tahu kapan harus "off" atau di reset dan ketika sinyal yang menyimpannya hilang, itu akan menyala.
Perilaku ini mungkin terlihat aneh pada komputer modern yang dapat diatur untuk dihidupkan pada waktu tertentu atau melalui jaringan dan sebagainya. Seperti yang saya katakan komputer terbuat dari komputer. Jadi, sementara prosesor utama mungkin mati, mungkin ada banyak chip dan mikrokontroler lain di dalamnya yang aktif. Kasing yang paling jelas adalah jam waktu nyata yang sering menggunakan baterai. Kemudian dapat mengaktifkan chip lain yang akan mengaktifkan chip lain dan reaksi berantai berjalan sampai seluruh komputer menyala. Pada komputer saat ini, ada saluran PSU yang disebut +5 VDC Standby Voltage. Ini menyediakan sekitar 50 mW daya ke berbagai perangkat yang hidup ketika komputer "mati".
Sedikit trivia: Reset pin pada prosesor Intel 386 EX adalah pin nomor 110.
Pada Intel i7-900 itu adalah nomor tanah AL39.
Saya berharap bahwa seseorang akan dapat memberikan jawaban yang akan menjelaskan bagaimana hal-hal bekerja dari sudut pandang tingkat tinggi, karena sistemnya cukup rumit.
@Seth Carnegie Tidak terlalu bagus. Saya baru saja menyentuh hal-hal tingkat rendah yang berlaku untuk sebagian besar komputer, dari yang ada di kulkas hingga PC. Saya bahkan tidak menyebutkan ACPI, APM, dan sistem daya modern lainnya atau bagaimana pada PC lama mikrokontroler Intel 8042 yang mengontrol keyboard dapat mengatur ulang prosesor, cara kerja POST, reset vektor dan banyak hal lainnya.
AndrejaKo
1
@netvope Terlalu banyak untuk dibayangkan, kataku. Anda mungkin memiliki setidaknya satu di mouse Anda, satu di keyboard, lebih dari 10 untuk bagian paling dasar dari motherboard (bahkan jika kita memperhitungkan "chipset" yang sangat terintegrasi), mungkin satu di unit catu daya, setidaknya satu di setiap drive (lebih mungkin 2-3), beberapa di setiap kartu ekspansi ... Monitor juga bisnis serius dan printer saya sekarang memiliki lebih banyak RAM daripada komputer desktop pertama saya.
AndrejaKo
4
Berbicara tentang memori, cache dari beberapa HDD dan CPU baru sekarang lebih besar dari RAM komputer pertama yang saya gunakan. Kita sekarang dapat menjalankan Windows 95 seluruhnya dalam cache L2 dan menyimpan seluruh partisi sistem dalam cache drive!
Linux memiliki banyak cara berbeda untuk mereset x86. Beberapa dari mereka hanya 32-bit dan saya hanya akan mengabaikannya karena jujur saja apa yang Anda lakukan dengan hidup Anda. Juga, mereka mengerikan. Jadi, itu membuat kami berlima.
kbd - reboot melalui pengontrol keyboard. IBM PC asli memiliki garis reset CPU yang diikat ke pengontrol keyboard. Menulis nilai magis yang sesuai membuat garis dan mesin me-reset. Ini semua sangat mudah, kecuali kenyataan bahwa mesin-mesin modern tidak memiliki pengontrol papan ketik (mereka sebenarnya adalah bagian dari pengontrol yang tertanam) dan bahkan mesin yang lebih modern bahkan tidak berpura-pura memiliki pengontrol papan ketik. Sekarang, pengendali tertanam menjalankan perangkat lunak. Dan, seperti kita semua tahu, perangkat lunak itu mengerikan. Tetapi, yang lebih buruk, perangkat lunak pada pengontrol tertanam telah ditulis oleh penulis BIOS. Jadi jelas segala kepura-puraan bahwa ini pernah berhasil adalah semacam fiksi yang rumit. Beberapa mesin sangat pilih-pilih tentang perangkat keras yang berada dalam kondisi tepat yang akan diprogram oleh Windows. Beberapa mesin bekerja 9 kali dari 10 dan kemudian mengunci karena beberapa masalah waktu yang aneh. Dan yang lain tidak bekerja sama sekali. Hore!
tiga upaya untuk menghasilkan kesalahan tiga. Ini dilakukan dengan memuat tabel deskriptor interupsi kosong dan kemudian memanggil int (3). Interupsi gagal (tidak ada IDT), penangan kesalahan gagal (tidak ada IDT) dan CPU memasuki kondisi yang, secara teori, kemudian memicu reset. Kecuali sepertinya tidak ada persyaratan bahwa ini terjadi dan itu tidak bekerja pada banyak mesin.
pci - tidak benar-benar pci. Akses ruang konfigurasi PCI tradisional dicapai dengan menulis nilai 32 bit ke io port 0xcf8 untuk mengidentifikasi bus, perangkat, fungsi, dan register konfigurasi. Port 0xcfc kemudian berisi register yang dimaksud. Tetapi jika Anda menulis pasangan nilai sihir yang sesuai ke 0xcf9, mesin akan reboot. Spektakuler! Dan tidak distandarisasi dengan cara apa pun (tentu saja bukan bagian dari spesifikasi PCI), jadi chipset yang berbeda mungkin memiliki persyaratan yang berbeda. Booo.
efi - layanan runtime EFI menyediakan titik masuk untuk mem-boot ulang mesin. Biasanya bahkan berfungsi! Selama layanan runtime EFI bekerja sama sekali, yang mungkin merupakan peregangan.
acpi - Versi terbaru dari spesifikasi ACPI memungkinkan Anda memberikan alamat (biasanya memori atau ruang IO sistem) dan nilai untuk menulis di sana. Idenya adalah bahwa menulis nilai ke alamat akan menyetel ulang sistem. Ternyata hal itu sering gagal. Tidak mungkin merepresentasikan metode reboot PCI melalui ACPI, karena metode reboot PCI membutuhkan sepasang nilai dan ACPI hanya memberi Anda satu.
Ini relevan, tetapi jawabannya akan lebih berguna jika Anda memberikan kutipan dari informasi halaman lain di sini.
calvinf
1
tl; dr ada banyak cara untuk mem-boot ulang; beberapa papan rusak cukup parah yang berpura - pura menjadi jendela , heuristik yang melibatkan beberapa kali mencoba dan tidur sedikit, adalah satu-satunya cara.
Tobu
10
Ini mengganggu lokasi I / O yang menarik garis data rendah yang memberitahu CPU bahwa ia harus menghentikan apa pun yang dilakukannya dan mulai menjalankan kode dari lokasi tertentu di BIOS.
... dan lokasi itu ditentukan dalam kode yang dilewatkan ke panggilan sistem reboot?
Knight Samar
1
@Knight Samar: Tidak; lokasi I / O umumnya adalah konstanta arsitektur, yang diketahui oleh kernel. Anda dapat melihat ini misalnya dalam kode reboot Linux, seperti arch / x86 / kernel / reboot.c.
sleske
apakah ada yang punya sumber daya yang baik untuk membaca lebih lanjut tentang masalah itu?
Kembali di masa lalu sebelum manajemen daya, komputer masih bisa me-restart sendiri, tentu saja. (Adakah yang ingat ketika program yang dibekukan berarti Anda harus menggunakan Ctrl + Alt + Delete untuk mem-boot ulang komputer?)
Pada 486 lama saya, perintah bahasa rakitan JMP FFFF:0000(yaitu, mengatur Instruksi Pointer CPU ke alamat tersebut) akan menyebabkan seluruh komputer restart. Dengan kata lain, FFFF: 0000 membahas lokasi di BIOS yang memiliki instruksi untuk apa yang harus dilakukan komputer saat pertama kali dimulai. Saya menduga Pin Reset yang dijelaskan oleh jawaban AndrejaKo, atau mengatur ulang tombol di masa pra-manajemen daya, juga akan memaksa Instruction Pointer ke alamat yang sama.
Anda juga perlu menulis nilai tertentu ke 0040: 0072 untuk menentukan apakah itu cold (0x0000) atau warm boot (0x1234).
Synetech
9
Ada juga yang bernama pengawas. Perangkat ini berfungsi sebagai saklar orang mati. Komputer harus memberi sinyal kepada pengawas setiap menitnya bahwa itu masih hidup. Ketika komputer macet, misalnya dengan menjalankan loop tak berujung, ia akan gagal memberi sinyal kepada pengawas bahwa ia masih berjalan sebagaimana dimaksud, pada saat mana pengawas akan melakukan reset perangkat keras. Ini ditunjukkan dalam serial tv populer dari terminator, di mana robot tersingkir oleh lonjakan listrik tegangan tinggi. itu akan mereset sendiri dalam 2 menit.
Ini benar, tetapi tidak benar-benar menjawab pertanyaan.
sleske
4
Apakah ada anjing penjaga yang benar-benar akan me-restart seluruh komputer? Saya tahu bahwa mereka kadang-kadang digunakan untuk berbagai mikrokontroler di dalam komputer, tetapi apakah ada satu tingkat komputer secara keseluruhan? Pengalaman pribadi saya membuat saya mengatakan tidak, tetapi beberapa bukti untuk atau menentang akan diterima.
AndrejaKo
5
@AndrejaKo: Saya dulu bekerja di perusahaan yang membuat server komunikasi (pada dasarnya blade server dengan modem yang terhubung dengannya). Mereka memiliki pengawas waktu yang terhubung ke pin reset pada motherboard. Timer dihadang secara berkala oleh utilitas latar belakang yang berjalan pada motherboard, jadi jika prosesor macet, pengawas akhirnya akan menekan tombol reset. Itu diikat ke sirkuit yang membuat saluran telepon sibuk sementara motherboard reboot.
Robert Harvey
4
Kembali pada IBM PC-1 lama, pengendali keyboard, anehnya, menangani reboot. IBM menyematkan mikroprosesor kecil untuk menangani keyboard, dan memiliki beberapa jalur I / O cadangan, sehingga mereka menggunakan salah satu jalur untuk menggerakkan garis reset CPU utama. Perintah yang dikirim ke pengontrol keyboard akan menghasilkan CPU diatur ulang seolah-olah listrik baru saja dihidupkan.
Saya menduga tradisi ini berlanjut hingga era "AT", dan mungkin masih ada sisa-sisa di ACPI hari ini.
Ditambahkan: Ada detail menarik tentang skema setel ulang di atas. Selama urutan boot awal, kode mencari pola tertentu dalam RAM yang mungkin telah ditetapkan oleh kode yang sebelumnya dijalankan. Jika kode ini ada, beberapa diagnostik POST (power-on self-test) dilewati. Pola hanya akan ada pada boot "warm".
Jawaban:
tl; dr: status daya di komputer Anda dikendalikan oleh implementasi ACPI (konfigurasi lanjutan dan antarmuka daya). Di akhir proses pematian, sistem operasi Anda menetapkan perintah ACPI yang menunjukkan bahwa komputer harus reboot. Sebagai tanggapan, motherboard me-reset semua komponen menggunakan perintah atau jalur reset masing-masing, dan kemudian mengikuti proses bootstrap. Motherboard tidak pernah benar-benar mati, hanya me-reset berbagai komponen dan kemudian berperilaku seolah-olah tombol power baru saja ditekan.
Panjang dan bertele-tele tetapi (menurut saya) jawaban yang lebih menarik:
Soft Power dan cara kerjanya
Di masa lalu (well, oke, untuk seorang mahasiswa seperti saya tahun 90-an sudah lama), kami memiliki motherboard AT (Advanced Technology) dengan kekuatan ATpengelolaan. Sistem daya AT sangat, sangat sederhana. Tombol daya pada komputer Anda adalah pergantian perangkat keras (mungkin di bagian belakang kasing) dan input 120vac Anda menembusnya. Secara fisik menyalakan daya ke catu daya Anda dan mematikan, dan ketika saklar ini dalam posisi Off semua komputer Anda benar-benar mati (ini membuat baterai CMOS sangat penting, karena tanpa itu tidak ada catu daya untuk menjaga perangkat keras jam berdetak). Karena saklar daya adalah mekanisme fisik, tidak ada cara perangkat lunak untuk menghidupkan dan mematikan daya. Windows akan menampilkan pesan terkenal "Sekarang aman untuk mematikan komputer Anda" karena, meskipun semuanya diparkir dan siap dimatikan, tidak mungkin bagi OS untuk benar-benar mematikan saklar daya. Konfigurasi ini kadang-kadang disebut sebagaihard power , karena itu semua perangkat keras.
Saat ini segalanya berbeda, karena keajaiban motherboard ATX dan kekuatan ATX (itulah Advanced Technology eXtended jika Anda melacak). Seiring dengan sejumlah kemajuan lainnya (mini-DIN PS / 2, ada yang?), ATX menghadirkan soft power . Daya lunak berarti daya ke komputer dapat dikontrol oleh perangkat lunak. Ini membawa beberapa perubahan impor:
Jadi, sakelar daya Anda tidak lagi "menyalakan" komputer. Sebagai gantinya, itu terhubung ke pengontrol dasar motherboard Anda, yang mendeteksi bahwa tombol telah ditekan dan menjalankan sejumlah langkah untuk menyiapkan sistem, termasuk menyalakan PS_ON sehingga daya akan tersedia. Tombol daya bukan satu-satunya cara untuk memicu proses startup, perangkat pada bus ekspansi Anda juga dapat melakukannya. Ini penting karena adapter jaringan ethernet Anda benar-benar tetap hidup ketika komputer Anda mati dan mencari paket yang sangat spesifik yang sering disebut sebagai "paket ajaib." Jika mereka mendeteksi paket ini ditujukan ke alamat MAC mereka, mereka akan memicu proses startup. Beginilah cara "Wake-on-LAN" (WoL) bekerja. Jam juga dapat memulai boot (kebanyakan BIOS memungkinkan Anda untuk mengatur waktu kapan komputer harus booting setiap hari),
Memahami Kontrol Daya
Baik, saya menjelaskan tentang Soft Power karena saya pikir ini menarik (selalu menjadi alasan utama saya menjelaskan banyak hal) dan karena ini memungkinkan Anda untuk memahami bagaimana daya dan kondisi komputer Anda yang mati / hidup semua dikendalikan oleh perangkat lunak. Di sebagian besar komputer saat ini, sistem perangkat lunak ini merupakan implementasi dari Konfigurasi Lanjut dan Antarmuka Daya, atau ACPI . ACPI adalah sistem standar dan terpadu yang memungkinkan perangkat lunak untuk mengontrol sistem daya komputer Anda. Anda mungkin pernah mendengar tentang status daya ACPI. Mekanisme dasar kontrol daya adalah "kondisi daya" ini, sistem operasi Anda beralih melalui mode daya dengan mempersiapkan sakelar (proses penonaktifan / hibernasi yang terjadi sebelum daya benar-benar mati), dan kemudian memerintahkan motherboard untuk mengalihkan status daya . Status daya terlihat seperti ini:
Bagaimana reset sebenarnya terjadi
Anda akan melihat bahwa reboot bukan salah satu dari kondisi ini. Jadi apa yang sebenarnya terjadi ketika komputer Anda ketika reboot? Jawabannya mungkin mengejutkan, karena dari perspektif manajemen daya hampir tidak ada . Ada perintah reset ACPI. Ketika Anda memberitahu sistem operasi Anda untuk reboot, itu mengikuti proses shutdown yang normal (menghentikan semua proses Anda, melakukan sedikit pemeliharaan, menurunkan sistem file Anda, dll), dan kemudian sebagai langkah terakhir, alih-alih mengirim mesin ke status daya G2 (seperti yang akan terjadi jika Anda hanya menyuruhnya untuk Shut Down) itu menetapkan perintah Reset. Ini umumnya disebut sebagai "Reset register", karena seperti kebanyakan antarmuka ACPI itu hanya alamat yang nilai tertulisnya harus ditulis untuk meminta reset. Saya akan mengutip spesifikasi 2.0 tentang apa yang dilakukannya:
Jadi, ketika register reset diatur, beberapa hal terjadi secara berurutan.
Efek akhir dari dua langkah ini (yang sebenarnya memecah menjadi lebih banyak langkah) adalah terlihat seperti semuanya seperti komputer baru saja boot, tetapi daya sebenarnya ada di sepanjang waktu. Ini berarti lebih sedikit waktu yang diperlukan untuk mematikan dan memulai (karena Anda tidak perlu menunggu catu daya menjadi siap), dan yang penting memungkinkan bootup dimulai oleh sistem operasi yang dimatikan. Ini berarti pemicu startup lain tidak perlu digunakan (WoL dll), dan memungkinkan Anda untuk menggunakan Reboot sebagai cara yang efektif untuk mengatur ulang sistem dari jarak jauh, ketika Anda tidak memiliki cara untuk memicu booting.
Itu jawaban yang panjang. Tapi hei, semoga Anda tahu lebih banyak tentang manajemen daya komputer sekarang. Saya tentu belajar beberapa hal meneliti ini.
sumber
Inilah titik awalnya:
Keripik biasanya tidak mati lalu hidupkan. Sebagai gantinya, ada garis reset yang akan membawa prosesor dalam kondisi reset yang disebut ketika biasanya semua memori dihapus dan prosesor sepertinya baru saja dinyalakan. Ketika pin dipegang tinggi (atau rendah, tergantung pada prosesor), prosesor dalam pengaturan ulang. Setelah pin dilepaskan, pin akan melanjutkan booting secara normal, seperti jika diaktifkan untuk pertama kali. Intinya adalah tidak ada pemadaman listrik sendiri.
Jadi bagaimana skala ini ke sistem yang lebih besar seperti PC modern? Nah, komputer modern terbuat dari komputer yang terkadang terbuat dari komputer itu sendiri. Jadi, ketika Anda mengatur komputer untuk mengatur ulang, "komputer" yang membuat komputer akan mulai menyimpan status mereka (jika pengaturan ulang dikontrol), atau hanya dengan mengatur ulang pin yang disetel.
Beberapa prosesor dan mikrokontroler (yang merupakan miniatur komputer mandiri, biasanya 20 tahun di belakang komputer desktop modern) dapat mengatur ulang diri menggunakan sakelar internal. Seperti yang saya katakan, setelah sinyal yang menghasilkan reset hilang, komputer akan memulai. Jadi premis dalam pertanyaan itu tidak sepenuhnya benar. Komputer tidak tahu kapan harus dihidupkan. Di tahu kapan harus "off" atau di reset dan ketika sinyal yang menyimpannya hilang, itu akan menyala.
Perilaku ini mungkin terlihat aneh pada komputer modern yang dapat diatur untuk dihidupkan pada waktu tertentu atau melalui jaringan dan sebagainya. Seperti yang saya katakan komputer terbuat dari komputer. Jadi, sementara prosesor utama mungkin mati, mungkin ada banyak chip dan mikrokontroler lain di dalamnya yang aktif. Kasing yang paling jelas adalah jam waktu nyata yang sering menggunakan baterai. Kemudian dapat mengaktifkan chip lain yang akan mengaktifkan chip lain dan reaksi berantai berjalan sampai seluruh komputer menyala. Pada komputer saat ini, ada saluran PSU yang disebut +5 VDC Standby Voltage. Ini menyediakan sekitar 50 mW daya ke berbagai perangkat yang hidup ketika komputer "mati".
Sedikit trivia: Reset pin pada prosesor Intel 386 EX adalah pin nomor 110.
Pada Intel i7-900 itu adalah nomor tanah AL39.
Saya berharap bahwa seseorang akan dapat memberikan jawaban yang akan menjelaskan bagaimana hal-hal bekerja dari sudut pandang tingkat tinggi, karena sistemnya cukup rumit.
sumber
Posting blog ini menjelaskan bagaimana Linux memicu reboot.
Kutipan:
sumber
Ini mengganggu lokasi I / O yang menarik garis data rendah yang memberitahu CPU bahwa ia harus menghentikan apa pun yang dilakukannya dan mulai menjalankan kode dari lokasi tertentu di BIOS.
sumber
Kembali di masa lalu sebelum manajemen daya, komputer masih bisa me-restart sendiri, tentu saja. (Adakah yang ingat ketika program yang dibekukan berarti Anda harus menggunakan Ctrl + Alt + Delete untuk mem-boot ulang komputer?)
Pada 486 lama saya, perintah bahasa rakitan
JMP FFFF:0000
(yaitu, mengatur Instruksi Pointer CPU ke alamat tersebut) akan menyebabkan seluruh komputer restart. Dengan kata lain, FFFF: 0000 membahas lokasi di BIOS yang memiliki instruksi untuk apa yang harus dilakukan komputer saat pertama kali dimulai. Saya menduga Pin Reset yang dijelaskan oleh jawaban AndrejaKo, atau mengatur ulang tombol di masa pra-manajemen daya, juga akan memaksa Instruction Pointer ke alamat yang sama.Sebuah pencarian Google untuk JMP FFFF: 0000 mengungkapkan banyak halaman yang menarik tentang hal ini.
sumber
Ada juga yang bernama pengawas. Perangkat ini berfungsi sebagai saklar orang mati. Komputer harus memberi sinyal kepada pengawas setiap menitnya bahwa itu masih hidup. Ketika komputer macet, misalnya dengan menjalankan loop tak berujung, ia akan gagal memberi sinyal kepada pengawas bahwa ia masih berjalan sebagaimana dimaksud, pada saat mana pengawas akan melakukan reset perangkat keras. Ini ditunjukkan dalam serial tv populer dari terminator, di mana robot tersingkir oleh lonjakan listrik tegangan tinggi. itu akan mereset sendiri dalam 2 menit.
sumber
Kembali pada IBM PC-1 lama, pengendali keyboard, anehnya, menangani reboot. IBM menyematkan mikroprosesor kecil untuk menangani keyboard, dan memiliki beberapa jalur I / O cadangan, sehingga mereka menggunakan salah satu jalur untuk menggerakkan garis reset CPU utama. Perintah yang dikirim ke pengontrol keyboard akan menghasilkan CPU diatur ulang seolah-olah listrik baru saja dihidupkan.
Saya menduga tradisi ini berlanjut hingga era "AT", dan mungkin masih ada sisa-sisa di ACPI hari ini.
Ditambahkan: Ada detail menarik tentang skema setel ulang di atas. Selama urutan boot awal, kode mencari pola tertentu dalam RAM yang mungkin telah ditetapkan oleh kode yang sebelumnya dijalankan. Jika kode ini ada, beberapa diagnostik POST (power-on self-test) dilewati. Pola hanya akan ada pada boot "warm".
sumber