Jak wyświetla się komunikat „Zainstalowano nieobsługiwany procesor”?

55

Mam nieobsługiwany CPU włożony w moim komputerze i uzyskać ten błąd, gdy mój komputer jest uruchamiany: Unsupported CPU installed. Moje pytanie nie polega na tym, jak to naprawić, ale:

Jak wyświetla się ten komunikat o błędzie, jeśli procesor nie jest używany? Czy BIOS może działać bez procesora?

David
źródło
13
Oczywiście, procesor jest wystarczająco dobry, aby uruchomić procedurę sprawdzania procesora i wyświetlić tekst na ekranie, ale nie jest wystarczająco dobry, aby uruchomić rzeczywisty system operacyjny na twoim sprzęcie.
Dmitrij Grigoriew
22
@DmitryGrigoryev „Oczywiście procesor [...] nie jest wystarczająco dobry, aby uruchomić rzeczywisty system operacyjny na twoim sprzęcie.” Niekoniecznie tak oczywiste. Co jeśli chcę uruchomić, powiedzmy, FreeDOS? Co BIOS ma do powiedzenia na temat uruchamiania komputera? Istnieje powód, dla którego dowolny moduł ładujący MBR, nawet dzisiaj, początkowo działa w trybie rzeczywistym.
CVn
7
@ MichaelKjörling Podejrzewam, że producent BIOSu zdecydował, że wsparcie TPM i upewnienie się, że użytkownicy Windows są zadowoleni, jest ważniejsze niż pozwolenie na uruchomienie FreeDOS.
Dmitrij Grigoriew
3
@ MichaelKjörling: BIOS może zawierać poprawki mikrokodu, które nie mają zastosowania. W tej chwili nie można przewidzieć użyteczności procesora.
MSalters
2
Jaki procesor jest zainstalowany i na jakiej płycie głównej? Na przykład, czy w jakiś sposób zainstalowałeś procesor Coffee Lake na płycie Z270 lub Z170? (Ta kombinacja nie będzie działać, ponieważ Coffee Lake i jej chipset Z370 wprowadziły niezgodne zmiany w wyprowadzeniu gniazda, pomimo korzystania z tego samego fizycznego gniazda
LGA1151

Odpowiedzi:

50

Nie, BIOS nie może działać bez procesora.

Pierwszą rzeczą, którą robi komputer po włączeniu, jest sprawdzenie, czy połączenia między procesorem a pamięcią RAM są dobre. Jest to prosta kontrola elektryczna, czy wszystkie wyjścia linii magistrali są podłączone do odpowiednich wejść. Jeśli ten prosty test się nie powiedzie, otrzymasz kod dźwiękowy (lub ewentualnie wyświetlacz LED na niektórych płytach głównych). Ta kontrola nie wymaga procesora, jednak bez procesora możesz nawet nie otrzymać kodów dźwiękowych, ponieważ nawet to wymaga pewnego pomiaru (zależy od płyty głównej).

Gdy jednak te rzeczy się sprawdzą, procesor rozpoczyna wykonywanie programu zawartego w pamięci ROM systemu BIOS, który wykonuje dodatkowe kontrole wyższego poziomu (np. Czy czasy taktowania pamięci działają, czy można poprawnie załadować dodatkowe oprogramowanie układowe dla urządzeń pokładowych itp.). Program ten ROM jest napisany w języku asemblera x86 i nie wymagają CPU, aby go wykonać.

W twoim przypadku procesor jest elektrycznie zgodny z płytą główną i działa, ale brakuje mu obsługi funkcji niskiego poziomu, od których zależy płyta główna. Być może używałeś procesora, który ma wyższy TDP (generuje więcej ciepła) niż płyta główna jest w stanie obsłużyć, ma więcej rdzeni niż BIOS wie, jak zainicjować, lub być może nie obsługuje stanu zasilania, który BIOS próbuje ustawić. Nie wspomniałeś o używanym zestawie procesora / płyty głównej.

W każdym razie procesor zapewnia BIOSowi wystarczającą obsługę, aby mógł wykonywać programy zapisane w jego pamięci ROM (w tym przenosić bajty do iz pamięci wideo). Po prostu nie może pójść dalej.

Prawdopodobnie po prostu sprawdza rodzinę i identyfikatory krokowe procesora na wewnętrznej liście obsługiwanych typów procesorów. W wielu przypadkach można to załatać aktualizacją systemu BIOS. Ale musisz najpierw włożyć obsługiwany procesor, aby go sflashować.

Wes Sayeed
źródło
21
Myślę, że ważne części tej odpowiedzi są błędne. BIOS nie może działać bez CPU, ponieważ jest to pierwszy program, CPU wykonuje . Nie może nic zrobić samodzielnie. ( Bez procesora nie występują kody dźwiękowe , BTW; może generować kody dźwiękowe bez pamięci RAM z powodu starannej inicjacji tylko z rejestrami). Wiadomość jest prawdopodobnie dlatego, że oczekuje od procesora funkcji, których nie zapewnia, ale ze względu na fakt, że jest x86, można wykonać wystarczającą inicjalizację, aby wydrukować tę wiadomość.
DarkDust
21
Producent płyty głównej może stworzyć prosty system analogowy, który wyemituje 5 sekund po uruchomieniu, chyba że zostanie aktywnie wyłączony przez BIOS. Więc technicznie nie byłby to funkcja BIOS, ale raczej brak funkcji BIOS.
MSalters
5
Nawet po edycji nie jest to poprawne: jest to proste sprawdzenie elektryczne, czy wszystkie wyjścia linii magistrali są podłączone do odpowiednich wejść. Jeśli ten prosty test nie przejdzie pomyślnie, otrzymasz kod dźwiękowy (lub ewentualnie wyświetlacz LED na niektórych płytach głównych). Ta kontrola nie wymaga procesora… To nie BIOS uruchamia program w pamięci ROM, procesor to robi, a tym programem jest BIOS. Przepraszam za nitpicking, ale z twojej odpowiedzi wygląda na to, że BIOS to sprzęt, który jest częściowo niezależny od CPU, podczas gdy BIOS jest „tylko” programem w pamięci ROM (lub flash).
DarkDust
5
@TobySpeight: Nie magia. Jeszcze jeden procesor. To EC, wbudowany kontroler podobny do laptopa. W laptopie zarządza ładowaniem baterii i lampkami stanu. Na pulpicie może zarządzać aktualizacjami systemu BIOS. Czasami również zarządzają ustawieniami zasilania płyty i takimi rzeczami, jak porty ładowania USB.
Zan Lynx,
4
@WesSayeed: Czy na pewno tak jest? Ponieważ AFAIK, nie ma czegoś takiego jak „kontrola magistrali”, ponieważ kontrola czystego przewodu elektrycznego wymagałaby bardzo kosztownych modyfikacji układów DRAM i zapewniła niewielką dodatkową wartość. Gdy tylko procesor zostanie zasilony, zaczyna odczytywać i wykonywać instrukcje z pamięci ROM BIOS, która odczyta SPD i ustawienia każdego DIMM z pamięci CMOS RAM i spróbuje zainicjować kontroler DRAM. Następnie szybko przetestuje DRAM (POST), a następnie zainicjuje wszystkie inne odpowiednie urządzenia peryferyjne. Zobacz ten film: youtube.com/watch?v=xc08SN6Dhz4
mic_e
11

Prawdopodobnie dlatego, że nieobsługiwana funkcja pochodzi z trybu chronionego, ale w momencie wyświetlenia tego komunikatu jeszcze go nie wprowadziła i wciąż jest w trybie 8086. Więc nie działa BEZ CPU, BIOS to tylko program, nie może działać bez CPU. Po prostu wykrył, że nie mógł przekroczyć określonego punktu egzekucji i zatrzymał się, zanim dotarł do tego miejsca.

Wyjaśnię: pierwsze komputery DOS nie miały wszystkich skomplikowanych trybów wykonywania potrzebnych do prawidłowego wielozadaniowości i użytkowania przez wielu użytkowników. Kiedy Intel wprowadził go do swoich procesorów, chcieli zachować zgodność ze starszymi procesorami. Dlatego wprowadzili te tryby: najpierw uruchamiają procesor 8086, przeprowadzają testy i inicjalizują, a dopiero potem przechodzą w tryb chroniony.

Camion
źródło
3
Prawdopodobnie nie brakuje rozszerzeń zestawu instrukcji, które są problemem. Bardziej prawdopodobne jest, że procesor jest zbyt nowy dla BIOS-u (np. IvyBridge w mobo Sandybridge bez zaktualizowanego BIOS-u), więc nie wie, jak poprawnie zaprogramować ustawienia sterowania. (np. rejestr konfiguracji zarządzania energią procesora, który ustawia progi mocy dla Turbo, taktowanie pamięci DRAM kontrolera pamięci itp. A jeśli procesor jest zbyt nowy, mogą być nowe rzeczy, które BIOS powinien zrobić, ale to, że nie wie o tym. W nowych procesorach także grafika jest inna
Peter Cordes,
8

„Nieobsługiwany procesor” nie informuje, że procesor nie działa. Prawdopodobnie oznacza to, że oprogramowanie wbudowane na płycie głównej (BIOS lub UEFI) wykonało pewien kod na CPU, który stwierdził, że CPU jest niekompatybilny z niektórymi szczególnymi funkcjami, na których opiera się płyta główna podczas normalnej pracy. Albo po prostu, że płyta główna nie została przetestowana z tym procesorem, a producent nie chce ryzykować.

Ale nic z tego nie oznacza, że ​​procesor nie może wykonać instrukcji podczas rozruchu. Na przykład wszystkie współczesne procesory x86 mają instrukcję CPUID, której można użyć do ustalenia, czy dostępne są różne funkcje procesora. Kod rozruchowy może wykonać tę instrukcję i wyświetlić komunikat o błędzie, jeśli wymagane funkcje nie będą dostępne.

Artelius
źródło
... a kiedy Artelius pisze „nowoczesne procesory x86”, jeśli możemy zaufać akapitowi wprowadzającemu Wikipedię na ten temat, odnosi się to do czegoś nowszego niż procesory Pentium lub 80486SL z 1993 roku, co wydaje się właściwe. Zauważ, że najwyraźniej (nie sprawdziłem dokumentacji Intela, aby zweryfikować) CPUID opiera się na rejestrze EAX, który został wprowadzony wraz z 80386 w 1985 roku ...
CVn
-10

BIOS ma listę kontrolną (POST), przez którą przechodzi, aby zainicjować wszystkie części komputera. Jeśli nie przejdą kontroli, pojawi się błąd taki jak Twój. Częścią zestawu instrukcji POST jest przypisanie przerwania do komponentu. Jeśli wszystkie komponenty mają poprawnie przerwania, system operacyjny jest ładowany, a przerwania są przekazywane do systemu operacyjnego, aby system operacyjny mógł wchodzić w interakcje z komponentami. To jest uproszczona wersja tego, co dzieje się dla zwięzłości. Oto bardziej szczegółowa lista tego, co się dzieje: szczegóły rozruchu

BIOS ma wstępną kontrolę nad urządzeniami, więc w razie potrzeby może sprawdzać i wyświetlać błędy. Wiele błędów, które widziałem, to sygnały dźwiękowe lub migające diody LED , które należy sprawdzić pod kątem ich znaczenia. Zwykle nie pokazuje błędu na monitorze, jak w twoim przypadku (ponieważ co, jeśli problem stanowi karta graficzna). BIOS ma możliwość uruchomienia najbardziej podstawowej sekwencji inicjalizacji, aw niektórych przypadkach przekazuje tylko najbardziej podstawowe kody błędów. BIOS ma już przerwania dla działających komponentów, jak wspomniano powyżej, więc procesor nie musi przetwarzać niczego, aby wysłać sygnał za pomocą płyty głównej w celu wygenerowania sygnału dźwiękowego lub migającego światła lub, w twoim przypadku, karty graficznej do wyświetlenia wiadomość.

Musselman
źródło
4
To jest niepoprawne. BIOS nie może zrobić czegoś tak skomplikowanego, jak wyświetlanie informacji na ekranie, bez pewnych podstawowych funkcji przetwarzania z procesora działającego poprawnie.
Wes Sayeed,
6
Wydaje się, że masz wrażenie, że do kontroli sprzętu używa się przerwań. Oni nie są. Przerwania są również bardzo często wykonywane przez procesor, więc jeśli procesor nie byłby w stanie wykonać kodu, nie mógłby wykonać przerwania (co jest niewiele więcej niż nieco chwalebną instrukcją pośredniego skoku) i na pewno nie byłby w stanie aby ustawić dowolny z wektorów przerwań. Jest mało prawdopodobne, aby BIOS był w stanie skonfigurować odświeżanie pamięci, a nawet pamięć, w której przechowywane są wektory przerwań (w x86, najniższy 1 KiB przestrzeni adresowej), prawdopodobnie nie byłaby użyteczna.
CVn
6
Odpowiedź jest bardziej fundamentalna: BIOS to po prostu kod działający na procesorze. Nie jest niezależny od procesora i nie może działać samodzielnie.
duskwuff