W jaki sposób komputer sam się restartuje?

491

Jak komputer może się zrestartować? Po wyłączeniu, jak to się mówi, aby wrócić ponownie? Jakie to oprogramowanie może to zrobić?

Seth Carnegie
źródło
8
@ jer.salamon: W rzeczywistości są to zupełnie inne ścieżki. Wyłączenie wywołuje procedurę ACPI, która wysyła sygnał do zasilacza ATX, który wyłącza główne szyny napięcia.
Ignacio Vazquez-Abrams
13
Jest to kontrolowane przez BIOS - jeśli pamięć służy, słowami kluczowymi są APM i APIC
pst
118
Nigdy tak naprawdę nie wyłącza się przy ponownym uruchomieniu.
Moab
10
Nie ma głupich pytań. Nie, może są - ale myślę, że ten jest naprawdę bardzo interesujący. Wyróżniony jako pytanie kandydata na tydzień .
slhck
4
Kiedyś telepracowałem na zdalnym serwerze, który był w zasadzie tylko komputerem bez ekranu i klawiatury w centrum danych firmy. Mój serwer nigdy nie był normalnie wyłączany, ale czasami zrestartowałem go od końca za pomocą WinXP Start-> TurnOffComputer-> Uruchom ponownie, aby wyeliminować niestabilności spowodowane testowaniem własnego kodu. Często pracowałem w wybranych przeze mnie czasach, gdy centrum danych było bezzałogowe. Było to bardzo męczące, co przypadkowo wybrany Wyłącz jako ostatecznego wyboru i musiał czekać aż dwa dni później dla operatora, aby przejść i nacisnąć na przełącznik dla mnie!
FumbleFingers

Odpowiedzi:

599

tl; dr: stany zasilania w twoim komputerze są kontrolowane przez implementację ACPI (zaawansowana konfiguracja i interfejs zasilania). Po zakończeniu procesu zamykania system operacyjny ustawia polecenie ACPI wskazujące, że komputer powinien się zrestartować. W odpowiedzi płyta główna resetuje wszystkie komponenty za pomocą odpowiednich poleceń lub linii resetowania, a następnie postępuje zgodnie z procesem ładowania. Płyta główna nigdy się tak naprawdę nie wyłącza, resetuje tylko różne komponenty, a następnie zachowuje się tak, jakby właśnie naciśnięto przycisk zasilania.

Długa i chaotyczna, ale (moim zdaniem) ciekawsza odpowiedź:

Soft Power i jak to działa

W dawnych czasach (no cóż, dla studenta takiego jak ja lata 90. dawno temu) mieliśmy płyty główne AT (Advanced Technology) z mocą ATzarządzanie. System zasilania AT był bardzo, bardzo prosty. Przycisk zasilania na twoim komputerze był przełącznikiem sprzętowym (prawdopodobnie z tyłu obudowy) i twoje wejście 120vac przeszło przez to. Fizycznie włączał i wyłączał zasilanie twojego zasilacza, a kiedy ten przełącznik był w pozycji Off, wszystko w twoim komputerze było całkowicie martwe (to sprawiło, że bateria CMOS była bardzo ważna, ponieważ bez niej nie było zasilacza, aby utrzymać sprzęt tykanie zegara). Ponieważ przełącznik zasilania był mechanizmem fizycznym, nie było żadnego programowego sposobu włączania i wyłączania zasilania. Windows wyświetli słynny komunikat „Teraz można bezpiecznie wyłączyć komputer”, ponieważ chociaż wszystko było zaparkowane i gotowe do wyłączenia, system operacyjny nie był w stanie przekręcić przełącznika zasilania. Ta konfiguracja była czasami określana jakotwarda moc , ponieważ to wszystko sprzęt.

W dzisiejszych czasach jest inaczej, ze względu na cuda płyt głównych ATX i mocy ATX (to Advanced Technology eXtended, jeśli śledzisz). Wraz z wieloma innymi postępami (mini-DIN PS / 2, ktoś?) ATX przyniósł miękką moc . Miękkie zasilanie oznacza, że ​​zasilanie komputera może być kontrolowane przez oprogramowanie. Przyniosło to kilka zmian importu:

  • Zasilanie rezerwowe: być może zauważyłeś złącze „5v SB” lub „5v standby” oznaczone w pinoutach zasilacza. Standby zasilaczto linia 5 V na płycie głównej, która jest zawsze włączona, nawet gdy komputer jest wyłączony. Dlatego podczas serwisowania nowoczesnych komputerów ważne jest, aby odłączyć lub wyłączyć twardy przełącznik zasilacza (jeśli jest obecny), ponieważ nawet gdy jest on wyłączony, możesz potencjalnie zewrzeć 5v SB i uszkodzić płytę główną. Dlatego też baterie CMOS nie są już tak ważne - 5v SB służy do wymiany baterii CMOS, ilekroć zasilacz ma zasilanie sieciowe, więc bateria CMOS jest używana tylko po całkowitym odłączeniu komputera. Linia 5v SB pozwala znacząco komponentom komputera (przede wszystkim BIOSowi i kartom sieciowym) na uruchomienie prostego oprogramowania, nawet gdy komputer jest wyłączony.
  • Inteligentna kontrola zasilania. Jeśli spojrzysz na pinout złącza płyty głównej zasilacza (P1), zauważysz dwa piny zwykle oznaczone PS_ON i PS_RDY. Skróty te oznaczają „zasilanie włączone” i „zasilanie gotowe”. Jeśli lubisz eksperymentować, weź zasilacz spoza komputera, podłącz go i ostrożnie zewrzyj linię uziemienia (jeden z czarnych przewodów) do linii PS_ON (zielony przewód). Zasilacz w widoczny sposób włączy się, a wentylator się rozkręci. Elementy płyty głównej działające poza + 5v SB faktycznie włączają i wyłączają zasilacz, podłączając zasilanie do pinu PS_ON. Ponieważ w zasilaczu znajdują się kondensatory i inne elementy, które ładują się chwilę, napięcia z głównych wyjść zasilacza mogą nie być stabilne natychmiast po włączeniu zasilacza. Do tego właśnie służy pin PS_RDY, włącza się, gdy wewnętrzna logika zasilacza określa, że ​​zasilacz jest „gotowy” i zapewni stabilną moc.

Tak więc przełącznik zasilania nie „włącza” komputera. Zamiast tego jest podłączony do podstawowych kontrolerów płyty głównej, które wykrywają naciśnięcie przycisku i wykonują szereg kroków w celu przygotowania systemu, w tym zapalają PS_ON, aby zapewnić dostęp do zasilania. Przycisk zasilania nie jest jedynym sposobem na uruchomienie procesu uruchamiania, urządzenia na szynie rozszerzeń mogą to zrobić. Jest to ważne, ponieważ karty sieciowe Ethernet pozostają włączone, gdy komputer jest wyłączony, i szukają bardzo konkretnego pakietu, często nazywanego „pakietem Magic”. Jeśli wykryją ten pakiet zaadresowany na swój adres MAC, uruchomią proces uruchamiania. Tak działa „Wake-on-LAN” (WoL). Zegar może również zainicjować rozruch (większość systemu BIOS pozwala ustawić czas uruchamiania komputera każdego dnia),

Zrozumienie kontroli mocy

Cóż, wyjaśniam kwestię Soft Power zarówno dlatego, że uważam, że jest interesująca (zawsze kluczowy powód, dla którego wyjaśniam rzeczy), a także dlatego, że pozwala ci zrozumieć, w jaki sposób zasilanie i stan uruchamiania / wyłączania komputera są kontrolowane przez oprogramowanie. W większości obecnych komputerów ten system oprogramowania jest implementacją interfejsu zaawansowanej konfiguracji i zasilania lub interfejsu ACPI . ACPI to ustandaryzowany, zunifikowany system umożliwiający oprogramowanie do sterowania systemem zasilania komputera. Być może słyszałeś o stanach zasilania ACPI. Podstawowym mechanizmem kontroli mocy są te „stany zasilania”, system operacyjny przełącza tryby zasilania, przygotowując się do przełączenia (procesy zamykania / hibernacji, które występują przed faktycznym wyłączeniem zasilania), a następnie nakazując płycie głównej przełączanie stanów zasilania . Stany mocy wyglądają następująco:

  • G0: Działa (stan włączenia komputera)
  • G1: Sleeping (stany gotowości komputera, podzielone na podstacje S)
    • S1: zasilanie procesora i pamięci RAM pozostaje włączone, ale procesor nie wykonuje instrukcji. Urządzenia peryferyjne są wyłączone.
    • S2: Procesor wyłączony, pamięć RAM utrzymana
    • S3: Wszystkie komponenty zostały wyłączone, z wyjątkiem pamięci RAM i urządzeń, które spowodują wznowienie (klawiatura). Gdy powiesz swojemu systemowi operacyjnemu „Sleep”, zatrzyma on procesy, a następnie przejdzie w ten tryb.
    • S4: Hibernacja. Absolutnie wszystko jest wyłączone. Po powiadomieniu systemu operacyjnego o hibernacji, zatrzymuje procesy, zapisuje zawartość pamięci RAM na dysku, a następnie przechodzi w ten tryb.
  • G2: Soft Off. jest to stan wyłączenia komputera. Zasilanie jest wyłączone dla wszystkiego oprócz urządzeń, które mogą uruchomić rozruch.
  • G3: Wyłączony mechanicznie.

Jak faktycznie się resetuje

Zauważysz, że ponowne uruchomienie nie jest jednym z tych stanów. Co się dzieje, gdy komputer uruchamia się ponownie? Odpowiedź może być zaskakująca, ponieważ z punktu widzenia zarządzania energią jest prawie niczym . Istnieje polecenie resetowania ACPI. Gdy mówisz, aby system operacyjny uruchomił się ponownie, postępuje on zgodnie z normalnym procesem zamykania (zatrzymuje wszystkie procesy, wykonuje konserwację, odinstalowuje systemy plików itp.), A następnie jako ostatni krok, zamiast wysyłać maszynę do stanu zasilania G2 (tak jakby to było po prostu polecenie wyłączenia) ustawia polecenie resetowania. Jest to ogólnie nazywane „Resetuj rejestr”, ponieważ podobnie jak większość interfejsu ACPI, jest to tylko adres, na który należy zapisać określoną wartość, aby zażądać resetu. Przytoczę specyfikację 2.0 dotyczącą jej działania:

Opcjonalny mechanizm resetowania ACPI określa standardowy mechanizm zapewniający całkowite zresetowanie systemu. Po wdrożeniu ten mechanizm musi zresetować cały system. Obejmuje to procesory, logikę rdzenia, wszystkie magistrale i wszystkie urządzenia peryferyjne. Z perspektywy OSPM stwierdzenie, że mechanizm resetowania jest logicznym odpowiednikiem włączania i wyłączania zasilania maszyny. Po uzyskaniu kontroli po resecie OSPM wykona działania w podobny sposób jak zimny rozruch.

Po ustawieniu rejestru resetowania kilka rzeczy dzieje się po kolei.

  • Cała logika została zresetowana. Oznacza to wysyłanie odpowiednich poleceń resetowania do różnych części sprzętu, w tym do procesora, kontrolera pamięci, kontrolerów urządzeń peryferyjnych itp. W większości przypadków oznacza to po prostu zapalenie fizycznego przewodu RST, jak pokazano powyżej.
  • Komputer jest następnie ładowany. Jest to część „wykonaj czynności w podobny sposób, jak przy zimnym rozruchu”. Płyta główna wykonuje te same kroki, jak gdyby zasilacz był gotowy po naciśnięciu przycisku zasilania.

Efektem końcowym tych dwóch kroków (które faktycznie dzielą się na znacznie więcej kroków) jest to, że wygląda na wszystko tak, jak komputer właśnie się uruchomił, ale moc była właściwie przez cały czas. Oznacza to mniej czasu potrzebnego na zamknięcie i uruchomienie (ponieważ nie trzeba czekać na przygotowanie zasilacza), i co ważne, umożliwia uruchomienie rozruchu przez zamknięcie systemu operacyjnego. Oznacza to, że nie trzeba używać kolejnego wyzwalacza uruchamiania (WoL itp.), I umożliwia użycie opcji Uruchom ponownie jako skutecznego sposobu zdalnego resetowania systemu, gdy nie ma możliwości uruchomienia rozruchu.


To była długa odpowiedź. Ale hej, mam nadzieję, że wiesz już więcej na temat zarządzania energią komputera. Z pewnością nauczyłem się kilku rzeczy, badając to.

jcrawfordor
źródło
3
+1. Bardzo pouczająca i przydatna odpowiedź. Tylko jeden punkt - PS_ON jest aktywny na niskim poziomie, tj. Przełączony na 0 V zamiast + 5 VSB w celu włączenia głównych wyjść.
MikeJ-UK,
2
W przypadku urządzeń USB uruchamiających rozruch niektóre BIOS-y mają opcję wybudzania komputera podwójnym kliknięciem lub naciśnięciem klawisza. Ponadto niektóre klawiatury Mac mają przyciski zasilania (tradycja sięga do oryginału).
Stuart P. Bentley,
1
Świetna odpowiedź, na pewno wiele się nauczyłem. Pozostaje jednak jedno pytanie: z punktu widzenia płyty głównej, jaka jest różnica między stanami S4 i G2? Zapisywanie pamięci RAM na dysku odbywa się w systemie operacyjnym, więc S4 brzmi jak „łagodne wyłączenie” sprzętu.
EMP,
1
Uważam, że S4 jest funkcjonalnie równoważny G2, ale różnica jest zachowana. Niektóre BIOS wydają się wykonywać „szybki test POST” przy uruchamianiu z S4, ale pełny test POST przy uruchamianiu z G2. Nie sądzę jednak, żeby istniał jakiś inny powód, poza tym, że ludzie chcą, aby S4 wznowił działanie w szybkim tempie.
jcrawfordor
1
To właściwie trochę uproszczone; istnieje (wiele) sposobów, aby zrestartować komputer bez ACPI, a czasem sam ACPI nie działa: superuser.com/questions/294681/…
Tobu
81

Oto punkt wyjścia:

Żetony zwykle nie wyłączają się, a następnie nie włączają. Zamiast tego istnieje linia zerowania, która wprowadzi procesor w tak zwany stan resetowania, gdy zwykle cała pamięć jest czyszczona, a procesor wygląda, jakby dopiero co został włączony. Podczas gdy ten pin jest trzymany wysoko (lub nisko, w zależności od procesora), procesor jest resetowany. Po zwolnieniu pin będzie kontynuował normalne uruchamianie, tak jakby był włączony po raz pierwszy. Chodzi o to, że samo nie ma odcięcia zasilania.

Jak to się skaluje do większych systemów, takich jak nowoczesne komputery? Dobrze współczesne komputery są zbudowane z komputerów, które czasami są wykonane z samych komputerów. Kiedy więc ustawisz resetowanie komputera, „komputery”, które powodują, że komputer zacznie zapisywać swoje stany (jeśli resetowanie jest kontrolowane), lub po prostu zostaną wyciągnięte szpilki resetowania.

Niektóre procesory i mikrokontrolery (które są miniaturowymi samodzielnymi komputerami, zwykle 20 lat za nowoczesnymi komputerami stacjonarnymi) mogą się zresetować za pomocą wewnętrznych przełączników. Jak powiedziałem, po zniknięciu sygnału generującego reset komputer uruchomi się. Zatem przesłanka zawarta w pytaniu nie jest całkowicie poprawna. Komputer nie wie, kiedy włączyć. Wiesz, kiedy trzeba go wyłączyć lub zresetować, a kiedy sygnał, który go utrzymuje, zniknie, włączy się.

To zachowanie może wyglądać dziwnie na nowoczesnym komputerze, który można ustawić tak, aby włączał się o określonej godzinie lub w sieci i tak dalej. Jak powiedziałem, komputery są zbudowane z komputerów. Tak więc, chociaż główny procesor może być wyłączony, wewnątrz może być wiele innych układów i mikrokontrolerów. Najbardziej oczywistym przypadkiem jest zegar czasu rzeczywistego, który często jest zasilany z baterii. Następnie może włączyć inne układy, które włączą inne układy, a reakcja łańcuchowa trwa do momentu włączenia całego komputera. Na dzisiejszych komputerach istnieje linia zasilacza o nazwie +5 VDC Standby Voltage. Zapewnia około 50 mW mocy różnym urządzeniom, które są włączone, gdy komputer jest wyłączony.

Trochę ciekawostek: pin resetujący na procesorze Intel 386 EX ma numer pin 110.

Arkusz danych 386EX rysunek 2

Na Intel i7-900 jest to numer telefonu AL39.

Mam nadzieję, że ktoś będzie w stanie udzielić odpowiedzi, która wyjaśni, jak wszystko działa z wysokiego poziomu, ponieważ jest to dość skomplikowany system.

AndrejaKo
źródło
Wow, dokładna odpowiedź.
Seth Carnegie
13
@Seth Carnegie To nie jest takie świetne. Właśnie dotknąłem rzeczy niskiego poziomu, które są prawdziwe dla większości komputerów, od tego w lodówce do komputera. Nie wspominałem nawet o ACPI, APM i innych nowoczesnych systemach zasilania, ani o tym, jak na starych komputerach mikrokontroler Intel 8042, który kontroler klawiatura może zresetować procesor, jak działa POST, resetuje wektory i wiele innych rzeczy.
AndrejaKo
1
@netvope Za dużo do wyobrażenia, powiedziałbym. Prawdopodobnie masz co najmniej jeden w myszy, jeden w klawiaturze, więcej niż 10 dla najbardziej podstawowych części płyty głównej (nawet jeśli weźmiemy pod uwagę wysoce zintegrowane „chipsety”), może jeden w zasilaczu, co najmniej jeden na każdym dysku (prawdopodobnie 2-3), kilka na każdej karcie rozszerzeń ... Monitory to także poważna sprawa, a moja drukarka ma teraz więcej pamięci RAM niż mój pierwszy komputer stacjonarny.
AndrejaKo,
4
Mówiąc o pamięci, pamięci podręczne niektórych nowych dysków twardych i procesorów są teraz większe niż pamięć RAM pierwszego komputera, z którego korzystałem. Możemy teraz uruchomić system Windows 95 całkowicie w pamięci podręcznej L2 i zachować całą partycję systemową w pamięci podręcznej napędu!
netvope,
27

Ten post na blogu opisuje, w jaki sposób Linux uruchamia ponowne uruchomienie.

Fragment:

Linux ma wiele różnych sposobów resetowania x86. Niektóre z nich są tylko 32-bitowe, więc zignoruję je, bo szczerze mówiąc, co robisz ze swoim życiem. Są też okropne. Pozostaje nam więc ich pięć.

  • kbd - uruchom ponownie za pomocą kontrolera klawiatury. Oryginalny komputer IBM miał linię resetowania procesora podłączoną do kontrolera klawiatury. Zapisanie odpowiedniej wartości magicznej pulsuje linią i maszyna resetuje się. Wszystko to jest bardzo proste, z wyjątkiem faktu, że nowoczesne maszyny nie mają kontrolerów klawiatury (w rzeczywistości są częścią wbudowanego kontrolera), a nawet bardziej nowoczesne maszyny nawet nie udają, że mają kontroler klawiatury. Teraz wbudowane kontrolery uruchamiają oprogramowanie. Jak wszyscy wiemy, oprogramowanie jest straszne. Co gorsza, oprogramowanie wbudowanego kontrolera zostało napisane przez autorów BIOS-u. Tak oczywiste jest, że wszelkie pozory, że to zawsze działa, są pewnego rodzaju wyszukaną fikcją. Niektóre maszyny są bardzo wybredne, ponieważ sprzęt znajduje się w dokładnie takim stanie, w jakim programowałby go system Windows. Niektóre maszyny działają 9 razy na 10, a następnie blokują się z powodu dziwnych problemów z taktowaniem. A inni po prostu w ogóle nie działają. Hurra!

  • triple - próba wygenerowania potrójnego błędu. Odbywa się to poprzez załadowanie pustej tabeli deskryptorów przerwań, a następnie wywołanie int (3). Przerwanie kończy się niepowodzeniem (nie ma IDT), procedura obsługi błędów kończy się niepowodzeniem (nie ma IDT), a procesor przechodzi w stan, który teoretycznie powinien wywołać reset. Tyle że wydaje się, że nie ma takiego wymogu i po prostu nie działa na wielu komputerach.

  • pci - właściwie nie pci. Tradycyjny dostęp do przestrzeni konfiguracji PCI uzyskuje się poprzez zapisanie 32-bitowej wartości na porcie io 0xcf8 w celu identyfikacji magistrali, urządzenia, funkcji i rejestru konfiguracji. Port 0xcfc następnie zawiera rejestr, o którym mowa. Ale jeśli zapiszesz odpowiednią parę magicznych wartości do 0xcf9, maszyna uruchomi się ponownie. Spektakularny! I nie jest w żaden sposób znormalizowany (z pewnością nie jest częścią specyfikacji PCI), więc różne chipsety mogą mieć różne wymagania. Booo.

  • efi - Usługi uruchomieniowe EFI zapewniają punkt wejścia do ponownego uruchomienia komputera. Zwykle nawet działa! Dopóki usługi uruchomieniowe EFI w ogóle działają, co może być rozciągnięte.

  • acpi - Najnowsze wersje specyfikacji ACPI umożliwiają podanie adresu (zwykle pamięci lub systemowego miejsca we / wy) i wartości do zapisania w nim. Chodzi o to, że zapisanie wartości na adres resetuje system. Okazuje się, że tak często się nie udaje. Nie można również przedstawić metody ponownego uruchomienia PCI za pomocą ACPI, ponieważ metoda ponownego uruchomienia PCI wymaga pary wartości, a ACPI daje tylko jedną.

jabiko
źródło
15
Jest to istotne, ale odpowiedź byłaby bardziej przydatna, jeśli umieścisz tutaj fragment informacji o drugiej stronie.
calvinf
1
tl; dr istnieje wiele sposobów ponownego uruchomienia; niektóre deski są wystarczająco mocno połamane, aby udawać okna , heurystyka, która wymaga kilku prób i spania, jest jedynym sposobem.
Tobu
10

Frobuje lokalizację I / O, która obniża linię danych, która mówi procesorowi, że powinien przerwać cokolwiek robi i zacząć uruchamiać kod z określonej lokalizacji w BIOS-ie.

Ignacio Vazquez-Abrams
źródło
... a ta lokalizacja jest określona w kodzie przekazywanym do ponownego uruchomienia systemu?
Knight Samar
1
@Knight Samar: Nie; lokalizacja we / wy jest na ogół stałą architektury, o której jądro wie. Możesz to zobaczyć np. W kodzie Linux restartu, takim jak arch / x86 / kernel / reboot.c.
sleske
czy ktoś ma dobre zasoby do dalszego czytania w tej sprawie?
matthias krull
@ mugen.kenichi i wszystko, przyjaciel dał mi to, aby polecić howstuffworks.com/bios.htm/printable
Knight Samar
Sugeruję superuser.com/a/347115/38062 .
JdeBP
10

Oczywiście w dawnych czasach przed zarządzaniem energią komputery mogły się zrestartować. (Czy ktoś pamięta, kiedy zamrożony program wymagał użycia Ctrl + Alt + Delete, aby ponownie uruchomić komputer?)

Na moim starym 486 polecenie języka asemblera JMP FFFF:0000(tj. Ustaw wskaźnik instrukcji procesora na wspomniany adres) spowoduje ponowne uruchomienie całego komputera. Innymi słowy, FFFF: 0000 odnosi się do lokalizacji w systemie BIOS, w której znajdują się instrukcje dotyczące tego, co powinien zrobić komputer przy pierwszym uruchomieniu. Podejrzewam, że PIN resetowania opisany w odpowiedzi AndrejaKo lub przyciski resetowania w dniach poprzedzających zarządzanie energią również zmusiłyby wskaźnik instrukcji do tego samego adresu.

Wyszukiwania Google dla JMP FFFF: 0000 ujawnia wiele interesujących stron na ten temat.

krubo
źródło
3
Trzeba też zapisać określoną wartość na 0040: 0072, aby ustalić, czy był to zimny (0x0000) czy ciepły rozruch (0x1234).
Synetech
9

Istnieje również coś o nazwie watchdog. To urządzenie służy jako przełącznik martwego człowieka. Komputer musi co sekundę sygnalizować stróżowi, że wciąż żyje. Gdy komputer ulegnie awarii, np. Po uruchomieniu w nieskończonej pętli, nie będzie sygnalizował watchdogowi, że nadal działa zgodnie z przeznaczeniem, przy której okazji watchdog wykona reset sprzętowy. Zostało to zademonstrowane w popularnej serii telewizyjnej terminatora, w której robot został ogłuszony przez skok napięcia wysokiego napięcia. zresetuje się za 2 minuty.

Marcel
źródło
2
To prawda, ale tak naprawdę nie odpowiada na pytanie.
śleske,
4
Czy istnieją organy nadzorujące, które faktycznie zrestartują cały komputer? Wiem, że czasami są one używane do różnych mikrokontrolerów wewnątrz komputera, ale czy istnieje jeden na poziomie całego komputera? Moje osobiste doświadczenie prowadzi mnie do odmowy, ale mile widziane są niektóre dowody za lub przeciw.
AndrejaKo,
5
@AndrejaKo: Pracowałem dla firmy, która produkowała serwery komunikacyjne (głównie serwery typu blade z podłączonymi modemami). Mieli licznik czasu, który był podłączony do styków resetowania na płycie głównej. Timer był okresowo zderzany przez narzędzie działające w tle na płycie głównej, więc jeśli procesor się zawiesił, organ nadzorczy w końcu wcisnąłby przycisk resetowania. Został podłączony do obwodu, który spowodował zajęcie linii telefonicznej podczas ponownego uruchamiania płyty głównej.
Robert Harvey
4

Z powrotem na starym IBM PC-1 kontroler klawiatury, co dziwne, obsłużył restart. IBM osadził mały mikroprocesor do obsługi klawiatury i miał kilka wolnych linii we / wy, więc użyli jednej z linii do sterowania linią resetowania głównego procesora. Polecenie wysłane do kontrolera klawiatury spowoduje zresetowanie procesora, tak jakby właśnie włączono zasilanie.

Zgaduję, że ta tradycja przetrwała również w erze „AT” i mogą pozostać jej ślady w ACPI.

Dodano: Istnieje interesujący szczegół na temat powyższego schematu resetowania. Podczas wczesnej sekwencji rozruchowej kod szukał określonego wzorca w pamięci RAM, który mógł zostać ustawiony przez poprzednio wykonywany kod. Jeśli ten kod był obecny, niektóre z testów POST (autotest po włączeniu zasilania) zostały pominięte. Wzór będzie obecny tylko na „ciepłym” bucie.

Daniel R. Hicks
źródło