Czy BIOS jest odczytywany z układu BIOS lub kopiowany do pamięci RAM podczas uruchamiania?


10

Po pierwszym włączeniu komputera najpierw jest ustawiony cykl pobierania / wykonywania w celu pobierania instrukcji z układu BIOS bezpośrednio do rejestru instrukcji w CPU lub czy jest skonfigurowany automatyczny zespół obwodów, tak aby po wykryciu zasilania instrukcje zostały wykryte układ BIOS jest automatycznie ładowany do pamięci RAM?

Aktualizacja

Myślę, że znalazłem tutaj odpowiedź :

Po wyłączeniu sygnału resetowania procesor zaczyna działać. Nie można wykonać kodu w pamięci RAM, ponieważ pamięć RAM jest pusta. Producenci procesorów wstępnie programują procesor, aby zawsze zaczynał wykonywać kod pod adresem „FFFF: 0000” (zwykle ROM BIOS) ROM.

Tak więc procesor jest fizycznie skonfigurowany, aby przejść do pobierania i wykonywania adresu pamięci FFFF: 0000 w pamięci ROM, gdy tylko zostanie włączony.


1
Jeśli znajdziesz odpowiedź siebie, nie po to jako odpowiedź poniżej, zamiast edytowania go na to pytanie. ( Po pewnym czasie możesz zaakceptować własne odpowiedzi .)
user1686

Książka „Modernizacja i naprawa komputerów PC” wspomina o lokalizacji pamięci, z której pierwszy odczytuje procesor. I jest proces, którego uczą dawni nauczyciele CS, który może nadal obowiązywać, zwany bootstrapowaniem, podobnie jak wciąganie się za bootstrapy, czyli podstawy) system operacyjny zostanie załadowany.
barlop

Odpowiedzi:


3

Większość płyt miała w BIOSie opcję konfiguracji tego zachowania. Zwykle nazywało się to shadowingiem i zwykle było domyślnie włączone. Nie wydaje mi się, żeby wiele tablic przeszkadzało w dzisiejszych czasach i po prostu zawsze cienia. Powodem jest to, że pamięć RAM jest szybsza niż pamięć ROM, więc przyspiesza to, aby skopiować ją do pamięci RAM i uruchomić z tego miejsca.

Zauważ, że kopia nie jest wykonywana przez jakieś magiczne obwody, jest po prostu wykonywana przez sam bios, gdy zaczyna się początkowo poza ROM, po prostu kopiuje się do pamięci RAM, a następnie kontynuuje wykonywanie z tego miejsca.


Z tego, co rozumiem z tego, co powiedziałeś, po powrocie do życia procesor odczytuje instrukcje z pamięci ROM, które to instrukcje mówią „Skopiuj wszystkie instrukcje uruchamiania tutaj z pamięci ROM do pamięci RAM, a następnie ustaw licznik programu na taki i taki adres początkowy w pamięci RAM ”. Czy to w porządku?
wesele

@psusi Czy masz linki wyjaśniające, o czym mówisz? Cienie procesora nie dają mi wiele, a także to, jak można je skonfigurować. A kiedy mówisz? Kiedy płyty główne miały tę opcję? Czy możesz wskazać jakieś modele płyt głównych, które miałyby tę opcję?
barlop

18

Jest to kolejny przypadek, w którym otrzymana ludowa mądrość na ten temat, niestety pokazana na przykładzie psusiodpowiedzi, a nawet części pytania, utknęła w świecie tak, jak było około 1991 roku, pomimo bogactwa dostępnych odniesień technicznych wyjaśniających, jak to jest teraz. Inaczej.

W świecie pod koniec lat osiemdziesiątych oprogramowanie układowe maszyny - jedna z dwóch rzeczy zwanych „BIOS” w świecie kompatybilnym z IBM PC - rzeczywiście znajdowało się w układzie ROM na szynie ISA; a procesory rzeczywiście zaczęły wykonywać kod pod adresem fizycznym 000FFFF0, miejscem w „konwencjonalnej pamięci” dostępnym za pośrednictwem wskaźnika trybu rzeczywistego F000:FFF0Ten świat już dawno minął.

(Świat, w którym autor strony WWW, na którą wskazałeś, S. Ebrahim Shubbar, błędnie żyje, pomimo pisania w 2002 roku, jest jeszcze starszy. Procesory nie zaczęły się od tej CS:IPkombinacji FFFF:0000od 8086 roku. 80286 zmienił to na F000:FFF0Ale sam świat 80286 jest bardzo przestarzałym światem późnych lat osiemdziesiątych, w którym wciąż krąży mądrość ludowa).

Twój „układ BIOS” to pamięć RAM; a twój procesor nie jest 16-bitowy.

W nowoczesnych komputerach oprogramowanie układowe urządzenia jest przechowywane w nieulotnej pamięci RAM . Układ NVRAM jest podłączony do magistrali LPC (lub do dedykowanego interfejsu koncentratora oprogramowania układowego), a mostek LPC / FWH w „chipsecie” zwykle wyłącza do niego cykle zapisu. „Flashowanie” oprogramowania układowego polega na ustawieniu rejestrów mikroukładów, które umożliwiają zapis do NVRAM, a następnie zapis do NVRAM. (Na przykład w procesorze Intel ICH10 bit rejestru chipsetu, który umożliwia cykle zapisu, nosi nazwę BIOSWE„BIOS Write Enable”. Jest kilka dodatkowych szczegółów, które pominę tutaj, ale to jest sedno.)

Procesory x86 nie rozpoczęły wykonywania w miejscu 000FFFF0od czasów 80286. 32-bitowe procesory uruchamiają się w tak zwanym potocznie trybie nierealnym . Mimo że początkowa wartość CSrejestru po resecie jest F000, deskryptor segmentu powiązany z tym rejestrem początkowo zachowuje się FFFF0000jako jego adres bazowy. Tak fizyczny adres, który początkowo odpowiada na 16:16 CS: adres IP F000:FFF0jest w rzeczywistości, a nie było od czasów 80386 FFFFFFF0.

I właśnie tam oprogramowanie wewnętrzne maszyny jest głównie mapowane na fizyczną przestrzeń adresową na 32-bitowych i 64-bitowych komputerach x86. W oprogramowaniu wbudowanym znajduje się okno 128 kB w obszarze „pamięci konwencjonalnej”, ale pamięć NVRAM przechowująca oprogramowanie układowe może mieć do 16 MB (choć zależy to od mikroukładu) na nowoczesnych komputerach i jest natychmiast mapowana do 16 MB fizycznej przestrzeni adresowej poniżej linii 4GiB - tj. adresy fizyczne FF000000do FFFFFFFF. (Aby ponownie użyć ICH10 jako przykładu: część tej przestrzeni adresowej mapowanej na NVRAM jest kontrolowana przez rejestr mikroukładu znany jako FWH_DEC_EN„Włączanie dekodowania koncentratora oprogramowania układowego”. Oprogramowanie układowe jest kodowane w celu przeprogramowaniaFWH_DEC_ENzarejestruj się zgodnie z rozmiarem rzeczywistego układu NVRAM zainstalowanego na płycie głównej. Ale top 512KiB z NVRAM jest zawsze mapowany do adresów fizycznych FFF80000produktu FFFFFFFi nie mogą być wyłączone.) Kod pierwotnie wykonywany przez procesor natychmiast po resecie życia w górnym 64Kb tego zakresu adresów 16MiB.

Co się tyczy cieniowania ROM BIOS-u (tak się nazywa - to, dlaczego barlopmyślenie, że procesor jest śledzony, jest tajemnicą): Tak, dostęp do NVRAM na magistrali LPC lub hubie oprogramowania wciąż nie jest tak szybki, jak dostęp do głównego systemu (lotna) pamięć RAM. Ale powody, dla których cieniowanie jest ważne, znacznie zmniejszyły się wraz z zaletami systemów operacyjnych takich jak OS / 2 i Windows NT - ponownie na przełomie lat 80. i 90. Systemy operacyjne w trybie rzeczywistym, takie jak MS-DOS, PC-DOS, DR-DOS i tak dalej, były oparte na funkcjonalności I / O zapewnianej przez oprogramowanie układowe urządzenia. Tak więc kod oprogramowania i dane tylko do odczytu były często uzyskiwane w czasie wykonywania. Systemy operacyjne w trybie chronionym , takie jak OS / 2 i Windows NT, polegają znacznie mniejw przypadku usług dostarczanych przez oprogramowanie układowe w czasie wykonywania. Tak więc fakt, że kod wykonywany z pamięci NVRAM i dane tylko do odczytu w tym samym czasie przychodzą do procesora wolniej niż wtedy, gdy jest ukryty w systemowej pamięci RAM, jest mniejszym problemem niż kiedyś.

Co więcej, na jakim kodzie oprogramowania układowego i danych, na których polegają, niekoniecznie musi znajdować się część NVRAM odwzorowana na część fizycznej przestrzeni adresowej, wspomniane okno „konwencjonalnej pamięci” 128 kB, które z konieczności jest nawet możliwe do zacienienia. Nie wszystkie usługi oprogramowania układowego w trybie chronionym muszą znajdować się poniżej linii 1MiB w fizycznej przestrzeni adresowej, podobnie jak usługi oprogramowania układowego w trybie rzeczywistym, a niektóre nie. (I oczywiście będzie to tylko możliwe, aby wykonać tę samą sztuczkę o powierzchni fizycznej przestrzeni adresowej, że oni robią na żywo, jeśli istnieje co najmniej 4GiB systemowej RAM).

Jak na ironię, dokładniejszym źródłem informacji na ten temat niż pisanie S. Ebrahima Shubbara w 2002 r. Jest książka Phila Crouchera The BIOS Companion sprzed roku 2001. M. Croucher zauważa, że ​​Unices, Linux, Windows NT i „prawdopodobnie” (95 / 98) „„ nie czerpią korzyści z cieniowania ”. Niekoniecznie jest to całkowicie bezużyteczne , ale w porównaniu ze światem osób korzystających z MS-DOS, PC-DOS i DR-DOS w trybie rzeczywistym na 16-bitowych komputerach 80286 w 1989 roku jest stosunkowo niewiele.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.