PL180369B1 - Sposób sterowania systemem komputerowym PL PL PL PL PL PL - Google Patents

Sposób sterowania systemem komputerowym PL PL PL PL PL PL

Info

Publication number
PL180369B1
PL180369B1 PL95319041A PL31904195A PL180369B1 PL 180369 B1 PL180369 B1 PL 180369B1 PL 95319041 A PL95319041 A PL 95319041A PL 31904195 A PL31904195 A PL 31904195A PL 180369 B1 PL180369 B1 PL 180369B1
Authority
PL
Poland
Prior art keywords
state
cpu
power
suspend
microcontroller
Prior art date
Application number
PL95319041A
Other languages
English (en)
Other versions
PL319041A1 (en
Inventor
Dwayne Thomas Crump
Steven Taylor Pancoast
John Matthew Landry
Paul Harrison Benson Iv
Original Assignee
Ibm
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ibm, International Business Machines Corp filed Critical Ibm
Publication of PL319041A1 publication Critical patent/PL319041A1/xx
Publication of PL180369B1 publication Critical patent/PL180369B1/pl

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/30Means for acting in the event of power-supply failure or interruption, e.g. power-supply fluctuations

Abstract

1. Sposób sterowania systemem komputerowym zawierajacym jednostke centralna z przerwaniem zarzadzania systemowego, zasilacz, procesor zarzadzania zasilaniem i pamiec nieulotna, w którym przelacza sie zasilacz z pierwszego stanu do drugiego stanu w odpowiedzi na spelnienie przynajmniej jednego warunku z okreslonego zestawu wa- runków, wysyla sie sygnal przerwania do jednostki centralnej przez procesor zarzadza- nia zasilaniem poprzez uaktywnienie przerwania zarzadzania systemowego jednostki centralnej przed przelaczeniem zasilacza z pierwszego stanu do drugiego stanu oraz wy- konuje sie przynajmniej jeden okreslony zestaw zadan przez jednostke centralna w od- powiedzi na przerwanie od procesora zarzadzania zasilaniem i przed przelaczeniem za- silacza z pierwszego stanu do drugiego stanu, przy czym ustalony zestaw zadan obej- muje zapisanie danych przez jednostke centralna w pamieci nieulotnej, znamienny tym, ze steruje sie procesor zarzadzania zasilaniem (106) i przelacza sie zasilacz (17) z pierwszego stanu do drugiego stanu, po czym dostarcza sie zasilanie ukladowe do ukla- du komputerowego (10) i pomocnicze zasilania do procesora zarzadzania zasilaniem (106) z zasilacza (17), znajdujacego sie w pierwszym stanie, dostarcza sie tylko pomoc- nicze zasilanie do procesora zarzadzania zasilaniem (106) z zasilacza (17) znajdujacego sie w drugim stanie, oraz steruje sie jednostke centralna (40) w odpowiedzi na przerwa- nie tak, aby uniemozliwic procesorowi zarzadzania zasilaniem (106) spowodowanie przelaczenia zasilacza (17) z pierwszego stanu do drugiego stanu przez pewien czas, w którym jednostka centralna (40) wykonuje przynajmniej jeden ustalony zestaw zadan. PL PL PL PL PL PL

Description

Przedmiotem wynalazku jest sposób sterowania systemem komputerowym, zwłaszcza systemem komputerowym mającym możliwość wykonywania zadań systemowych bezpośrednio przed wyłączeniem zasilania.
Systemy komputerów osobistych PC znalazły szerokie zastosowanie, zapewniając moc obliczeniową dla wielu dziedzin życia dzisiejszego, nowoczesnego społeczeństwa Zwykłe komputery PC mogą być określane, jako mikrokomputer stołowy (biurkowy), mikrokomputer wolnostojący lub przenośny, składający się z pojedynczej jednostki centralnej CPU (Central Processing Unit) ze stowarzyszoną pamięcią nietrwałą albo trwałą, włączając w to wszystkie pamięci typu RAM i BIOS RAM, a także składający się z monitora systemowego, klawiatury, jednego lub więcej napędów dyskietek, napędu pamięci dysku stałego (znanego również pod nazwą napędu dysku stałego), urządzenia wskazującego zwanego myszką oraz z opcjonalnej drukarki. Jedną z cech wyróżniających te systemy jest zastosowanie płyty głównej lub planaru systemowego do elektrycznego połączenia tych elementów składowych ze sobą. Systemy te są zaprojektowane przede wszystkim w celu zapewnienia pojedynczemu użytkownikowi niezależnej mocy obliczeniowej, przy czym są one stosunkowo niedrogie, dla umożliwienia ich nabywania przez osoby fizyczne lub małe firmy.
Zwykłe systemy komputerów osobistych są używane do uruchamiania oprogramowania, realizującego takie różnorodne działania jak przetwarzanie tekstu, manipulowanie danymi poprzez arkusze kalkulacyjne, gromadzenie danych i ustalanie relacji między nimi w bazach danych, wyświetlanie grafiki, projektowanie systemów elektrycznych i mechanicznych przy użyciu oprogramowania do projektowania systemów itd.
Z europejskich opisów patentowych nr nr 0635778, 0636964 i 0636978 znany jest system komputerowy mający cztery stany gospodarowania zasilaniem: normalny stan operacyjny, stan gotowości (oczekiwania), stan zawieszenia, stan wyłączenia. Do przełączania między stanami wyłączenia, normalnego stanu operacyjnego i zawieszenia używa się jednego przełącznika.
W opisie patentowym ER nr 0565914 ujawniony jest system komputerowy mający pewną liczbę niezależnie sterowanych płaszczyzn zasilania, które są zasilane selektywnie tak, ze system komputerowy zuzywa minimum mocy, koniecznej do wykonania określonej funkcji.
Z kolei w publikacji nr WO 92/21081 zgłoszenia międzynarodowego jest ujawniony system, w którym w odpowiedzi na określone wcześniej warunki takie, jak żądanie wejścia do trybu zawieszania, jednostka centralna CPU steruje zasilaczem i odbiera z niego zasilanie pomocnicze.
Istotą sposobu sterowania systemem komputerowym, według wynalazku, zawierającym jednostkę centralną z przerwaniem zarządzania systemowego, zasilacz, procesor zarządzania zasilaniem i pamięć nieulotną, w którym przełącza się zasilacz z pierwszego stanu do drugiego stanu w odpowiedzi na spełnienie przynajmniej jednego warunku z określonego zestawu warunków, wysyła się sygnał przerwania do jednostki centralnej przez procesor zarządzania zasilaniem poprzez uaktywnienie przerwania zarządzania systemowego jednostki centralnej przed przełączeniem zasilacza z pierwszego stanu do drugiego stanu oraz wykonuje się przynajmniej jeden określony zestaw zadań przez jednostkę centralną w odpowiedzi na przerwanie od procesora zarządzania zasilaniem i przed przełączeniem zasilacza z pierwszego stanu do drugiego stanu, przy czym ustalony zestaw zadań obejmuje zapisanie danych przez jednostkę centralną w pamięci nieulotnej, jest to, że steruje się procesor zarządzania zasilaniem i przełącza się zasilacz z pierwszego stanu do drugiego stanu, po czym dostarcza się zasilanie układowe do układu komputerowego i pomocnicze zasilania do procesora zarządzania zasilaniem z zasilacza, znajdującego się w pierwszym stanie, dostarcza się tylko pomocnicze zasilanie do procesora zarządzania zasilaniem z zasilacza znajdującego się w drugim stanie, oraz steruje się jednostkę centralną w odpowiedzi na przerwanie tak, aby uniemożliwić procesorowi zarządzania zasilaniem spowodowanie przełączenia zasilacza z pierwszego stanu do drugiego stanu przez pewien czas, w którym jednostka centralna wykonuje przynajmniej jeden ustalony zestaw zadań.
180 369
Korzystnie przełącza się zasilacz z drugiego stanu do pierwszego stanu w odpowiedzi na zakończenie odmierzania czasu przez układ czasowy, przy czym układ czasowy znajduje się w procesorze zarządzania zasilaniem i kończy odmierzanie czasu po upływie ustalonego czasu, oraz oblicza się przez jednostkę centralną długość przedziału czasowego i zapisuje się ją w procesorze zarządzania zasilaniem.
Korzystnie w trakcie wykonywania przynajmniej jednego ustalonego zestawu zadań zapisuje się przez jednostkę centralną dane dotyczące ustalonego przedziału czasu do pamięci nieulotnej.
Korzystnie ustalony przedział czasowy obejmuje pewną liczbę jednostek czasowych, po której zasilacz przełącza się na sygnał z procesora zarządzania zasilaniem z drugiego stanu do pierwszego stanu, po czym dane odpowiadające ustalonemu przedziałowi czasu obejmują wartość bezwzględną czasu i daty, kiedy procesor zarządzania zasilaniem ma spowodować przełączenie zasilacza z drugiego stanu do pierwszego stanu.
Korzystnie w trakcie zapisywania danych w pamięci nieulotnej przez jednostkę centralną zapisuje się dane odnoszące się do alokacji zasobów systemowych.
Korzystnie w trakcie wykonywania przynajmniej jednego ustalonego zestawu zadań zapisuje się stan układu komputerowego w pamięci nieulotnej.
Korzystnie w trakcie zapisywania danych w pamięci nieulotnej przez jednostkę centralną zapisuje się dane odnoszących się do tego, jaki stan zasilacza powinien być domyślny.
Normalny stan operacyjny w rozwiązaniu według wynalazku jest właściwie identyczny z normalnym stanem operacyjnym typowego komputera stołowego. Użytkownicy mogą posługiwać się aplikacjami oraz zasadniczo traktować ten komputer jak każdy inny. Jedyną różnicą jest obecność sterownika gospodarowania zasilaniem, który działa w tle (w systemie BIOS i systemie operacyjnym), w sposób przeźroczysty dla użytkownika. Częścią sterownika gospodarowania zasilaniem w systemie operacyjnym OS (Operating System) jest rozszerzony interfejs programowany Udoskonalonego Gospodarowania Zasilaniem APM (Advanced Power Management), który występuje obecnie w większości systemów operacyjnych, przeznaczonych do działania na procesorach rodziny Intel 80x86. Część sterownika gospodarowania zasilaniem w systemie BIOS (APM BIOS) komunikuje się ze sterownikiem APM OS. Sterownik APM OS i procedury systemu APM BIOS sterują przejściem komputera do i z innych trzech stanów.
Drugi stan, stan gotowości, zużywa mniej mocy (zasilania) niz normalny stan operacyjny, jednak opuszcza działanie aplikacji, które byłyby wykonane w innym przypadku. Ogólnie, pobór mocy w stanie gotowości oszczędza się poprzez wprowadzenie urządzeń do ich odpowiednich trybów niskiego poboru mocy, np. następuje oszczędzanie poboru mocy w stanie gotowości poprzez zanik obrotów dysku stałego w napędzie dysku stałego oraz poprzez zanik generowania sygnału wizyjnego.
Trzeci stan to stan zawieszenia: W stanie zawieszenia system komputerowy zużywa skrajnie małą ilość mocy. W stanie zawieszenia komputer pobiera z gniazdka ściennego bardzo mało mocy. Jedyną mocą, która jest zużywana, jest mała ilość mocy do podtrzymania układu do monitorowania przełącznika, przy czym, gdy system ten nie otrzymuje zasilania prądem przemiennym AC, jest to moc pobierana z baterii wewnątrz systemu komputerowego lub, gdy system ten otrzymuje zasilanie prądem przemiennym AC, jest to mała ilość mocy, generowana na szynie zasilania pomocniczego przez zasilacz.
To małe zużycie mocy osiąga się przez przechowanie stanu systemu komputerowego w urządzeniu pamięciowym z dyskiem stałym (w napędzie dysku stałego) zanim zasilanie zostanie wyłączone. W celu wejścia do stanu zawieszenia, system komputerowy przerywa dowolny kod programu i przekazuje sterowanie komputera do sterownika gospodarowania zasilaniem. Sterownik gospodarowania zasilaniem ustala stan systemu komputerowego i zapisuje stan systemu komputerowego w urządzeniu pamięciowym z dyskiem stałym. Stan rejestrów jednostki centralnej CPU, pamięci podręcznej jednostki centralnej CPU, pamięci systemowej, systemowej pamięci podręcznej, rejestrów wizji, pamięci wizji i rejestrów innych urządzeń są zapisywane na dysk stały. Całkowity stan systemu podlega przechowaniu w taki sposób, że może on być odtworzony bez niekorzystnego wpływu przerwania
180 369 na aplikacje programowe. Komputer zapisuje następnie dane do pamięci trwałej CMOS wskazując, ze system został zawieszony. W końcu komputer przerywa wytwarzanie mocy przez zasilanie. Całkowity stan systemu zostaje bezpiecznie zachowany w urządzeniu pamięciowym z dyskiem stałym, system jest teraz w stanie wyłączonym a komputer otrzymuje teraz jedynie małą ilość regulowanej mocy z zasilacza, aby zasilać układy do monitorowania przełącznika.
Czwarty i ostatni stan to stan wyłączenia. W stanie tym zasilacz przestaje dostarczać regulowaną moc do systemu komputerowego, przy czym ten stan systemu komputerowego nie został zachowany na dysku stałym. Stan wyłączenia jest właściwie identyczny ze stanem typowych komputerów stołowych, wyłączanych w zwykły sposób.
Przełączanie ze stanu do stanu wywoływane jest przez sterownik gospodarowania zasilaniem i typowo opiera się na zdarzeniach zamykania (zwierania) pojedynczego przełącznika, na znaczniku stanu i dwóch czasomierzach: czasomierzu nieaktywności stanu gotowości i czasomierzu nieaktywności stanu zawieszenia. System ma pojedynczy przycisk zasilania. Przycisk ten może być użyty do włączenia systemu, zawieszenia stanu systemu, odtworzenia stanu systemu i wyłączenia systemu.
Zaletą rozwiązania według wynalazku jest możliwość wykonania zadań systemowych w systemie komputerowym bezpośrednio przed wyłączeniem zasilania.
Sposób według wynalazku objaśniono w oparciu o przykłady wykonania przedstawione na rysunkach, na których fig. 1 przedstawia komputer osobisty w widoku perspektywicznym, fig. 2 - elementy komputera osobistego z fig. 1, składającego się z podstawy montażowej, pokrywy, elektromechanicznego urządzenia pamięciowego o bezpośrednim dostępie i płyty planarnej, fig. 3A i 3B przedstawiają schemat blokowy niektórych elementów składowych komputera osobistego z figur 1 i 2, fig. 4 przedstawia graf stanów systemu komputerowego obejmujący cztery stany systemu: normalny, gotowości, zawieszania i wyłączenia, fig 5 - schemat blokowy zasilacza, fig. 6A1, 6A2, 6A3 przedstawiają schemat elektryczny układu gospodarowania zasilaniem, fig. 6B przedstawia schemat elektryczny połączenia układu gospodarowania zasilaniem z wewnętrznym modemem, fig. 6C - wykresy różnych sygnałów wewnątrz układu ustawiania wartości początkowej dla układów gospodarowania zasilaniem, fig 6D - schemat elektryczny drugiego przykładu wykonania układu detekcji i korekcji błędu zasilacza, fig. 7 - schemat przejść stanów przełącznika, podtrzymywanych przez procesor gospodarowania zasilaniem, fig. 8 - ogólną sieć działań procedury włączania, fig. 9A1 i 9A2 przedstawiają szczegółową sieć działań Procedury Nadzorczej, wywoływanej przez sterownik urządzenia APM w systemie operacyjnym w przybliżeniu co jedną sekundę, fig. 9B przedstawia sieć działań przedstawiającą szczegóły Procedury APM Działania Nad Ostatnim Żądaniem, fig. 9C - sieć działań przedstawiającą szczegóły Procedury APM Odrzucenia Ostatniego Żądania, figury od 10A do 10F przedstawiają sieci działań przedstawiające szczegóły Procedury Zawieszania, figury 11A do 11D - sieci działań przedstawiające szczegóły Procedury Inicjowania, figury 12A do 12E - sieci działań przedstawiające szczegóły Procedury Wznowienia, figury 13A do 13D - sieci działań przedstawiające szczegóły Procedury Zapamiętania Stanu CPU, figury 14A do 14D sieci działań przedstawiające szczegóły Procedury Odtworzenia Stanu CPU, figury 15A do 15C - sieci działań przedstawiające szczegóły Procedury Zapamiętania Stanu 8959 CPU, figury 16A do 16D - sieci działań przedstawiające szczegóły Procedury Dynamicznej Alokacji Zapamiętanych Plików, fig. 17 przedstawia sieć działań przedstawiającą szczegóły Procedury Wyjścia ze Stanu Gotowości, fig. 18 - sieć działań przedstawiającą szczegóły Procedury Wejścia Do Stanu Gotowości, zaś figury 19A do 19D przedstawiają sieci działań przedstawiające szczegóły Procedury Procesora Gospodarowania Zasilaniem.
Przedmiot wynalazku będzie opisany poniżej szczegółowo z odniesieniem do rysunków, na których przedstawiony jest korzystny przykład wykonania wynalazku, przy czym, co jest zrozumiałe, wynalazek dotyczy kompletnego projektu systemu komputerowego, włączając w to, lecz bez ograniczania się do projektowania architektury komputera, projektowania układów logicznych, projektowania systemu BIOS, projektowania kodu programu trybu chronionego 80486, projektowania kodu programowego aplikacji, projektowa
180 369 nia kodu programowego systemu operacyjnego i użycia rozszerzonego interfejsu programowanego Udoskonalonego Gospodarowania Zasilaniem.
Odnosząc się bardziej szczegółowo do towarzyszących rysunków przedstawiono tu przykład wykonania systemu mikrokomputerowego i ogólnie wskazywanego przez 10 na figurze 1. Jak wzmiankowano powyżej, komputer 10 może mieć dołączony monitor ekranowy 11, klawiaturę 12, myszkę 13 i drukarkę lub ploter 14. Komputer 10 ma obudowę 15, utworzoną przez dekoracyjną część zewnętrzną 16 (figura 2) oraz wewnętrzną część osłaniającą 18, które współdziałają z podstawą montażową 19, określając zamkniętą, osłoniętą przestrzeń przeznaczoną do pomieszczenia zasilanych elektrycznie elementów składowych przetwarzania i pamiętania danych do przetwarzania i przechowywania danych cyfrowych. Co najmniej niektóre z tych elementów składowych montuje się na wielowarstwowej płycie planarnej 20 lub płycie głównej, która zamontowana jest na podstawie montażowej 19, przy czym dostarcza ona środków do elektrycznego połączenia między elementami składowymi komputera 10, zarówno tymi określonymi powyżej, jak i innymi elementami towarzyszącymi, takimi jak napędy dysków elastycznych, różne formy urządzeń pamięciowych o dostępie bezpośrednim, karty lub płyty adapterów pomocniczych, i tym podobne.
System komputerowy ma zasilacz 17, przycisk włączenia zasilania 21, również dalej w tym dokumencie przełącznik 21 oraz diodę świecącą do sygnalizacji funkcji zasilani e/sprzęzenie zwrotne LED 23. Inaczej niż w zwykłym wyłączniku zasilania w typowym systemie, przycisk zasilania 21 nie dołącza/rozłącza szyn zasilania prądu przemiennego AC z zasilaczem 17, jak będzie to objaśnione poniżej. Podstawa montażowa 19 składa się z podstawy wskazywanej przez 22, panelu czołowego 24 i panelu tylnego 25 (fig.2). Panel czołowy 24 zawiera co najmniej jedną otwartą kieszeń (w zilustrowanej postaci - cztery kieszenie) do pomieszczenia urządzenia pamięciowego, takiego jak napęd dyskowy dla dysków magnetycznych lub optycznych, napęd taśmowy do archiwowania i tym podobne. W przedstawionej postaci, dostarczana jest para kieszeni górnych 26 i 28 oraz para kieszeni dolnych 29 i 30. Jedna z kieszeni górnych 26 przystosowana jest do przyjęcia urządzenia zewnętrznego pierwszego rozmiaru (jak na przykład napędy znane jako napędy 3,5 cała), natomiast druga 28 przystosowana jest do przyjęcia napędów jednego wybranego z dwóch rozmiarów (jak na przykład 3,5 cala i 5,25 cala), a kieszenie dolne są przystosowane przyjęcia urządzeń tylko jednego rozmiaru (3,5 cala). Jeden napęd dysków elastycznych wskazany jest przez 27 na fig. 1 i jest urządzeniem pamięciowym o bezpośrednim dostępie z wymiennym nośnikiem, będącym w stanie pomieścić dyskietkę wkładaną do niego i używać tej dyskietki, aby odbierać, przechowywać i dostarczać dane, jak jest to ogólnie znane. Jeden napęd dysku stałego jest wskazywany przez 31 i jest urządzeniem pamięciowym o bezpośrednim dostępie ze stałym nośnikiem, będącym w stanie pamiętać i dostarczać dane, jak jest to ogólnie znane.
Przed powiązaniem powyższej struktury z rozwiązaniem według wynalazku, warto jest dokonać ogólnego przeglądu działania systemu komputera osobistego 10. Nawiązując do fig. 3A i 3B, jest tu pokazany schemat blokowy systemu komputera osobistego, który ilustruje różne elementy składowe tego systemu takie, jak system 10 i zawierający elementy składowe zamontowane na płycie planarnej 20 i połączenie tej płyty z gniazdami we/wy oraz innymi urządzeniami systemu komputera osobistego. Z płytą planarną 20 połączony jest procesor systemowy, który występuje tu jako jednostka CPU 40, składająca się z mikroprocesora połączonego szybką magistralą lokalną CPU 42 poprzez jednostkę sterowania pamięcią 46, która z kolei połączona jest z nietrwałą pamięcią o dostępie bezpośrednim (RAM) 53. Jednostka sterowania pamięcią 46 składa się ze sterownika pamięci 48, multipleksera adresów 50, bufora danych 52. Jednostka sterowania pamięcią 46 jest z kolei połączona z pamięcią o dostępie bezpośrednim (RAM) 53, jak reprezentują ją cztery moduły pamięci RAM 54. Sterownik pamięci 48 zawiera (układy logiczne) do mapowania adresów do i z mikroprocesora 40 w określonych obszarach pamięci RAM 53. Logika ta służy do odzyskania pamięci RAM, poprzednio zajmowanej przez system BIOS. Następnie sterownik pamięci 48 generuje sygnał wyboru pamięci ROM (ROMSEL), używany do udostępniania i blokowania pamięci ROM 88. Chociaż można użyć dowolnego właściwego mikro
180 369 procesora jako jednostki CPU 40, to odpowiednim mikroprocesorem jest mikroprocesor typu 80486 z pamięcią podręczną CPU 41.
Mimo ze przedmiot wynalazku jest opisany w dalszej części wraz z dokładnym odniesieniem do schematów blokowych systemu z fig. 3A i 3B, to należy zrozumieć, że rozważono możliwość użycia rozwiązania według wynalazku z innymi konfiguracjami sprzętu płyty planarnej, np. procesorami systemowymi 40 mogą być mikroprocesory Intel 80286 lub 80386. Jednakże znane są inne mikroprocesory, które są w stanie wykonywać zestaw instrukcji architektury Intel x86, a użycie wyrażonych terminów zmierza do objęcia nimi dowolnego mikroprocesora będącego w stanie wykonywać ten zestaw instrukcji. Jak jest to wiadome, wczesne komputery osobiste typowo używały popularnych wtedy mikroprocesorów Intel 8088 lub 8086, jako mikroprocesorów systemowych. Procesory te mają możliwość adresowania jednego megabajta pamięci. Od nie tak dawna, komputery osobiste typowo używają mikroprocesorów o wysokiej szybkości działania Intel 80286, 80386 lub 80486, które mogą działać w trybie wirtualnym lub rzeczywistym, aby emulować wolniejszy mikroprocesor 8088 oraz tryb chroniony, uzyskując rozszerzenie zakresu adresowania z 1 MB do 4 GB dla niektórych modeli. W istocie właściwość rzeczywistego trybu procesorów 80286, 80386 lub 80486 dostarcza sprzętowej kompatybilności z oprogramowaniem napisanym dla mikroprocesorów 8086 i 8088. Opisane procesory z rodziny firmy Intel są często identyfikowane poprzez trzy cyfry odnoszące się do ostatnich trzech cyfr pełnego określenia typu, jak np. 486.
Wracając teraz do fig. 3A i 3B - magistrala lokalna CPU 42, zawierająca elementy składowe przeznaczone do przesyłania danych, adresów i sterowania, zapewnia połączenie między jednostką CPU, koprocesorem matematycznym 44 (jeśli nie znajduje się wewnątrz jednostki centralnej CPU), sterownikiem wizji 56, systemową pamięcią podręczną 60 i sterownikiem pamięci podręcznej 62. Sterownik wizji 56 został stowarzyszony z monitorem (lub terminalem wideo) 11 i pamięcią wizji 58.
Również bufor 64 jest sprzężony z lokalną magistralą CPU 42. Sam bufor 64 jest podłączony do wolniejszej (w porównaniu z magistralą lokalną CPU 42) magistrali systemowej 66, również zawierającej elementy składowe przeznaczone do przesyłania danych, adresów i sterowania. Magistrala systemowa 66 rozciąga się pomiędzy buforem 64 i następnym buforem 68. Magistrala systemowa 66 jest następnie połączona z jednostką taktujące-sterującą i sterowania magistrali 70 oraz jednostką DMA 71. Jednostka DMA 71 składa się z jednostki centralnej obsługi zdarzeń konfliktowych 82 i sterownika DMA 72. Dodatkowy bufor 71 zapewnia sprzężenie pomiędzy magistralą systemową 66 i opcjonalną magistralą charakterystyczną taką jak np. magistrala ISA 76. Do magistrali 76 jest podłączona pewna liczba gniazd we/wy 78, służących do przyłączenia kart adapterowych ISA (nie przedstawionych). Karty adapterowe ISA są dołączone na wtyk do gniazd we/wy 78 i mogą dostarczać dodatkowe urządzenia we/wy lub pamięci dla systemu 10.
Magistrala sterowania arbitrażem (obsługi zgłoszeń konfliktowych) 80 sprzęga sterownik DMA 72 i jednostkę centralną arbitrażu (obsługi zdarzeń konfliktowych) 82 z gniazdami we/wy 78, adapterem dyskietek 84 i sterownikiem dysku stałego IDE 86.
Ze względu na to, ze system mikrokomputerowy 10 jest przedstawiony z podstawowym modułem pamięci RAM 4 MB to zrozumiałe jest, że dodatkowa pamięć może być podłączona, poprzez dodatkowe opcjonalne moduły pamięci o wysokiej gęstości 54, jak prezentują to fig.3A i fig.3B. Tylko dla celów ilustracyjnych niniejszy wynalazek opisuje się z odniesieniem do podstawowego modułu pamięci RAM 4 MB.
Bufor zatrzaskowy (blokujący) 68 jest sprzężony z magistralą systemową 66 i magistralą planarną we/wy 90. Magistrala planarna we/wy 90 zawiera odpowiednio elementy składowe przeznaczone do przesyłania danych, adresów i sterowania. Wzdłuż magistrali planarnej we/wy 69 dołączone są różne adaptery we/wy i inne elementy składowe takie, jak adapter dyskietek 86, adapter dyskowy IDE, sterownik przerwań 92 i adapter RS-232 94, trwała CMOS RAM 96, tutaj również występująca jako NVRAM, zegar czasu rzeczywistego CMOS (RTC) 98, adapter równoległy 100, pewna liczba czasomierzy 102, pamięć „tylko do odczytu ROM 88, układ 8042 104 oraz układy gospodarowania zasilaniem. Układ 8042,
180 369 przedstawiony jako 104, jest mikroprocesorem podporządkowanym, który sprzężony jest z klawiaturą 12 i myszką 13. Układy gospodarowania zasilaniem 106 są w komunikacji układowej z zasilaczem 17, przełącznikiem zasilania 21, diodą świecącą zasilanie/sprzęzenie zwrotne LED 23 i modemem wewnętrznym 900 i/lub modemem zewnętrznym 902. Modem zewnętrzny jest typowo połączony z transformatorem 904, który podłączony jest do typowego gniazda ściennego. Modemy zewnętrzne 900, 902 są połączone z typowym gniazdem telefonicznym. Układy gospodarowania zasilaniem 106 są przedstawione na figurach 6A i 6B oraz są obszerniej opisane w tekście związanym z fig. 6A, 6B 6C i figurze 7 Pamięć tylko do odczytu 88 przechowuje program sterujący systemu BIOS, używany do sprzęgania urządzeń we/wy i systemu operacyjnego jednostki CPU 40. System BIOS przechowywany w pamięci ROM 88 może być kopiowany do pamięci RAM 53 w celu skrócenia czasu wykonywania instrukcji BlOS-a. Dalej pamięć ROM 88 podlega (poprzez sygnał ROMSEL) sterownikowi pamięci 48. Jeżeli pamięć ROM 88 jest uaktywniona przez sterownik pamięci 48, to system BIOS wykonuje się z pamięci ROM. Jeżeli zaś pamięć ROM 88 jest zablokowana przez sterownik pamięci 48, to nie odpowiada ona na zapytania adresowe z jednostki CPU 40,to jest system BIOS wykonuje się z pamięci RAM.
Zegar czasu rzeczywistego 98 wykorzystuje się do odliczania pomiaru czasu dnia, a pamięć NVRAM pamięta dane o konfiguracji systemu. Oznacza to, ze pamięć NVRAM 96 będzie zawierać wartości opisujące bieżącą konfigurację systemu. Pamięć NVRAM 96 zawiera np. informację opisującą pojemność dysku stałego lub dyskietki, typ ekranu, ilość pamięci, czas, datę, itp. Ponadto, dane te pamiętane są w pamięci NVRAM kiedykolwiek wykona się specjalny program konfiguracyjny taki, jak Ustaw Konfigurację. Pogram Ustaw Konfigurację ma na celu zapamiętać w pamięci NVRAM wartości charakteryzujące konfigurację systemu.
Prawie wszystkie powyższe urządzenia zawierają rejestry z nietrwałą informacją. W celu niedopuszczenia do niepotrzebnego zagęszczenia rysunków, rejestry konkretnego urządzenia będą odnoszone do niego, np. rejestry CPU będą odnoszone do rejestrów jednostki CPU 40, a rejestry sterownika wizji będą odnoszone do rejestrów sterownika wizji 56.
Jak wspomniano wyżej, komputer ma obudowę oznaczoną ogólnie jako 15, która funkcjonuje wspólnie z podstawą montażową 19, tworząc zamkniętą osłoniętą przestrzeń przeznaczoną do pomieszczenia wyżej zidentyfikowanych elementów składowych mikrokomputera. Korzystnie jest uformować obudowę z zewnętrznej pokrywowej części dekoracyjnej 16, która jest jednolicie odlanym elementem składowym, wykonanym z dającego się odlewać materiału syntetycznego i cienkiego metalicznego arkusza wykładziny 18, ukształtowanym tak, aby pasował do konfiguracji części dekoracyjnej. Jednakże obudowa może być zrobiona według innych znanych sposobów, gdyż użyteczność tego wynalazku nie jest ograniczona do obudów opisanego typu.
Odnosząc się teraz do fig. 4, gdzie przedstawiono graf stanów systemu komputerowego według niniejszego wynalazku. System komputerowy 10 ma cztery stany: normalny stan operacyjny 150, stan gotowości 152, stan zawieszania 154 i stan wyłączenia 156. Przejścia między tymi stanami, przedstawionymi na fig. 4, są istotne do opisu przykładu wykonania, lecz nie mają znaczenia ograniczającego wynalazek. W konsekwencji dodatkowe zdarzenia mogą być wykorzystane alternatywnie, aby spowodować przejście między stanami.
Normalny stan operacyjny 150 systemu komputerowego 10 według wynalazku jest właściwie identyczny z normalnym stanem operacyjnym dowolnego typowego komputera stołowego. Użytkownicy mogą korzystać z aplikacji i w zasadzie traktować ten komputer jak dowolny inny. Jedną, przeźroczystą dla użytkownika różnicą, jest obecność sterownika gospodarowania zasilaniem w systemie operacyjnym (sterownik APM OS), który działa w tle oraz obecność różnych procedur APM BIOS. Procedury APM BIOS będą przedyskutowane w poniższym tekście, przy czym obejmują one Procedurę Zawieszania (Suspend Routine) Procedurę Wznowienia (Resume Routine), Procedurę Inicjowania (Boot-Up Routine), Procedurę Nadzorczą (Supervisor Routine), Procedurę Zapamiętania Stanu CPU (Save CPU State Routine) i Procedurę Odtworzenia Stanu CPU (Restore CPU State Routine). Jedną procedurą APM BIOS nie przedstawioną na żadnej z figur jest Procedura Traso
180 369 wania APM BIOS (APM BIOS Routing). Procedura Trasowania APM BIOS w zasadzie akceptuje polecenia ze sterownika APM OS i wywołuje odpowiednią procedurę APM OS, np. kiedy sterownik APM OS wydaje Polecenie Zawieszenia, wtedy APM BIOS wywołuje Procedurę Zawieszenia. Jako inny przykład, kiedykolwiek sterownik APM OS wydaje polecenie Podaj Zdarzenie (Get Event), wtedy Procedura Trasowania APM BIOS wywołuje Procedurę Nadzorczą. Procedury te są umieszczone w systemie BiOS i podlegają przepisywaniu do pamięci RAM, gdy system BIOS jest tam przepisywany. Sterownik gospodarowania zasilaniem w systemie operacyjnym i procedury APM BIOS sterują przejściem komputera między czterema stanami. Odniesienie poprzez słowo APM dotyczy ogólnie sterownika APM OS, chociaż kontekst może nakazywać co innego.
Drugi stan, stan gotowości 152, zużywa mniej mocy elektrycznej niz normalny stan operacyjny, lecz opuszcza działanie aplikacji, które byłyby wykonane w innym przypadku W stanie gotowości 152, zuzycie mocy jest ogólnie oszczędzane poprzez programowe umieszczenie urządzeń w odpowiednio niskich trybach zużycia mocy. W korzystnym przykładzie wykonania, następuje oszczędzanie mocy elektrycznej w stanie gotowości 152 poprzez zanik obrotów dysku stałego w urządzeniu pamięciowym z dyskiem stałym 31, poprzez zaprzestanie generowania sygnału wizyjnego oraz wprowadzenie jednostki CPU 40 w tryb niskiego zużycia mocy, jak to będzie obszerniej opisane poniżej. Jednakże nie dąży się tu do ograniczania metod, które mogą być użyte do obniżenia zuzycia mocy takich, jak spowolnienie lub zatrzymanie zegara CPU.
Korzystnie moc elektryczna oszczędzana jest na trzy oddzielne sposoby. Po pierwsze w normalnym stanie operacyjnym 150, dysk stały w urządzeniu pamięciowym z dyskiem stałym 31 stale się obraca np. z szybkością 3600, 4500 lub 5400 obrotów na minutę (RPM). W stanie gotowości 152 sterownik dysku IDE 86 wydaje polecenie, które wywołuje wprowadzenie urządzenia pamięciowego z dyskiem stałym 31 do trybu niskiego poboru mocy (ustają obroty dysku stałego wewnątrz urządzenia pamięciowego z dyskiem stałym 31), co oszczędza moc typowo zużywaną przez silnik, znajdujący się wewnątrz urządzenia pamięciowego z dyskiem stałym 31, podczas napędzania dysku stałego.
Po drugie - w normalnym stanie operacyjnym 150, sterownik wizji 56 systemu komputerowego ciągle generuje sygnał wizji (E1SYN, VSYNC, R,G,B itd. jak jest to dobrze znane w tej dziedzinie) odpowiednio do obrazu widzianego na terminalu ekranowym 11. W stanie gotowości 152 sterownik wizji 56 przerywa generowanie sygnału wizyjnego, oszczędzając przez to energię elektryczną normalnie przez niego zużywaną; wszystkie sygnały E1SYN, VSYNC, R,G i B są sprowadzane do [wartości] około 0,00 VDC. Użycie monitora zgodnego z VESA (Video Electronics Standards Association) pozwala na dalsze oszczędzanie mocy, ponieważ monitory zgodne z VESA wyłączają się same, jeśli sygnały HSYN, VSYNC przyjmują wartość około 0,00 VDC.
Po trzecie - w normalnym stanie operacyjnym 150, jednostka centralna CPU 40 wykonuje polecenia, zużywając przez to moc elektryczną. W stanie gotowości 152 system BIOS wydaje instrukcję HALT (zatrzymaj), znacząco obniżając zużycie mocy, az do wystąpienia następnego przerwania sprzętowego. W trakcie faktycznie jałowej pracy, CPU może pozostawać w stanie wstrzymania dłużej niz 90% czasu. Należy zauważyć, ze pewne systemy mają oszczędzacze ekranu, które powodują że ekrany 11 stają się ciemne, aby zapobiec wypalaniu fosforu z przedniej powierzchni terminala. W większości takich systemów sterownik wizji 56 stale generuje sygnał wizyjny; to jest generuje tylko sygnał wizyjny, odpowiadający ciemnemu ekranowi lub dynamicznemu wyświetlaniu. Stąd, system komputerowy wykonujący program oszczędzania ekranu ciągle zużywa moc elektryczną konieczną do generowania sygnału wizji.
Trzecim stanem jest stan zawieszenia 154. W stanie zawieszema 154, system komputerowy zuzywa skrajnie małą ilość mocy elektrycznej. Komputer w stanie zawieszenia zużywa mniej niz 100 miliwatów mocy elektrycznej w przykładzie wykonania wynalazku. Jedyną zużywaną mocą jest 5 watów zużywanych w związku z nieefektywnością zasilacza 17 oraz małą ilością mocy używanej przez układy gospodarowania zasilaniem 106.
180 369
To małe zuzycie mocy elektrycznej uzyskuje się poprzez zapamiętanie stanu systemu komputerowego w urządzeniu pamięciowym z dyskiem stałym (na dysku twardym) 31 zanim nastąpi wyłączenie zasilania. W celu wejścia do stanu zawieszenia 154, CPU 40 przerywa działanie dowolnych aplikacji i przekazuje sterowanie wykonywaniem programów do sterownika gospodarowania zasilaniem. Sterownik gospodarowania zasilaniem stwierdza stan systemu komputerowego 10 i zapisuje całkowity stan systemu komputerowego do urządzenia pamięciowego z dyskiem stałym 31. Stan rejestrów CPU 40, pamięć podręczna CPU 41, systemowa pamięć podręczna 41, systemowa pamięć RAM 53, rejestry pamięci wizji 56 oraz pozostałe rejestry o nietrwałej zawartości są zapisywane do napędu dysku stałego 31. Całkowity stan systemu komputerowego 10 zapamiętuje się w taki sposób, ze stan ten może być odtworzony bez znaczących strat użytkowych. Oznacza to, ze użytkownik nie potrzebuje czekać na załadowanie się systemu operacyjnego, graficznego interfejsu użytkownika i aplikacji programowych, jakby normalnie czekał.
Komputer zapisuje następnie dane do trwałej pamięci CMOS 96, wskazując ze system został zawieszony. W końcu CPU 40 poleca mikrosterownikowi U2 spowodować zatrzymanie dostarczania mocy regulowanej przez zasilacz 17 do systemu poprzez szyny ± 5VDC i ±12VDC. Teraz system komputerowy 10 wyłącza się z całkowitym stanem komputera bezpiecznie zapamiętanym w urządzeniu pamięciowym z dyskiem stałym 31.
Słowo stan używane jest w obrębie tego opisu w dwóch podobnych, zatem możliwych do pomylenia wariantach. Urządzenia mogą być w konkretnym stanie. Cztery stany systemu - normalny 150, gotowości 152, zawieszenia 154 i wyłączenia 156 odnoszą się do ogólnego stanu systemu komputerowego 10 według wynalazku. Stany te opisują system komputerowy 10 w sposób ogólny, np. w trakcie normalnego stanu operacyjnego 150, CPU 40 wykonuje ciągle kody programowe i zmienia pewną liczbę rejestrów w obrębie systemu 10. Również podobna czynność zachodzi w trakcie stanu gotowości 152. Stąd w trakcie normalnego stanu operacyjnego 150 i stanu gotowości 152 konfiguracja rejestrów i pamięci systemu komputerowego pozostaje dynamiczna.
Inne urządzenia mogą być również w pewnych stanach. Układy gospodarowania zasilaniem 106 korzystnie posługują się drugim procesorem, jako procesorem gospodarowania zasilaniem, takim jak mikrosterownik U2, przedstawionym na fig. 6A, aby dokonać implementacji gospodarowania zasilaniem o różnych właściwościach. Wiele takich procesorów jest odpowiednich - w tym konkretnym przykładzie wykonania wynalazku procesorem gospodarowania zasilaniem jest programowany mikrosterownik 83C750. Zmienne i wyprowadzenia mikrosterownika U2 mogą być w kilku stanach, jak to będzie objaśnione w tekście, towarzyszącym fig. 6A.
Można porównać powyższe - ze stanem urządzenia, np. stan systemu komputerowego 10 lub stan CPU 40. Stan urządzenia odnosi się do warunku urządzenia w konkretnym cyklu komputera. Wszystkie lokalizacje w pamięci oraz rejestry będą miały szczególne wartości binarne. Stan urządzenia jest binarnym statycznym ujęciem zawartości tego urządzenia.
Stan systemu komputerowego 10 odnosi się do operacyjnych równoważników, lecz niekoniecznie do dokładnych kopii, np. system komputerowy w stanie A może mieć pewną pamięć w pamięci podręcznej CPU 41 lub systemowej pamięci podręcznej 60. Możliwe jest opróżnienie zawartości jednej z pamięci podręcznych z powrotem do systemowej pamięci RAM 53, wprowadzając system komputerowy w stan B. Określając dokładnie, stan systemu komputerowego w stanie A jest różny od stanu systemu komputerowego w stanie B, ponieważ zawartości pamięci podręcznej oraz systemowej pamięci RAM są różne. Jednakże z perspektywy operacyjnej oprogramowania, stany A i B są takie same, ponieważ oprócz niewielkiego zmniejszenia szybkości pracy systemu (spowodowanej przez program, nie korzystający przy działaniu z pamięci podręcznej) nie ma oddziaływania na wykonywanie programów. Oznacza to, że komputer w stanie A oraz komputer w stanie B pod względem oprogramowania jest operacyjnie równoważny, nawet pomimo to, że komputer, którego pamięć podręczna została opróżniona, będzie podlegać niewielkiemu zmniejszeniu wydaj
180 369 ności, dopóki obszary pamięci podręcznej są ponownie ładowane użytecznym kodem programowym.
Słowo moc jest również użyte w dwóch podobnych, jednak możliwych do pomylenia wariantach. Moc najczęściej odnosi się do mocy elektrycznej. Jednakże moc sporadycznie odnosi się również do mocy obliczeniowej.
Układ - ogólnie odnosi się do fizycznego urządzenia elektronicznego lub do pewnej liczby urządzeń elektrycznie połączonych. Jednakże termin układ służy również do zawarcia w nim ekwiwalentów kodu CPU urządzeń elektronicznych, np. z jednej strony dwu wejściowa bramka logiczna NAND może być realizowana poprzez układ 74LS00 lub równoważnie poprzez urządzenie programowane. Oba te urządzenia są fizycznymi urządzeniami elektronicznymi. Z drugiej strony bramka logiczna NAND może być implementowana w oparciu o dwa wejścia do odczytu jednostki centralnej CPU 40 z odczytywanych przez CPU portów wejściowych, generowanie wyniku bramki NAND poprzez użycie polecenia jednostki centralnej CPU i wyprowadzenie wyniku poprzez porty wyjściowe, zapisywane przez CPU. Porty sprzęgające CPU mogą być takie proste, jak dekodowane rejestry zatrzaskowe lub ich równoważniki w postaci urządzenia programowalnego lub takie złożone, jak układy PIA, które są dobrze znane w przedmiotowej dziedzinie. Termin układ należy rozumieć wystarczająco obszernie, aby objąć wszystkie trzy powyższe przykłady implementacji bramki logicznej NAND. W pewnych przypadkach układ może odnosić się po prostu do ścieżki elektrycznej. Typy ścieżek elektrycznych obejmują przewody, ścieżki na płytkach drukowanych, itp. lub dowolne kombinacje typów ścieżek, które tworzą jedną elektrycznie połączoną ścieżkę.
Sygnał może odnosić się do pojedynczej fali sygnału elektrycznego lub do pewnej liczby fal, np. sterownik wizji generuje sygnał wizji. Sygnał wizji jest faktycznie pewną liczbą sygnałów przenoszonych po pewnej liczbie przewodników elektrycznych: HSYNC, VSYNC, R,G,B, itd. jak to jest dobrze znane w stanie techniki.
Wracając teraz do fig. 4. - czwarty i ostatni stan jest stanem wyłączenia 156. Stan wyłączenia 156 jest w istocie identyczny ze stanem wyłączenia dowolnego systemu komputerowego, który to system może być wyłączony w zwykłym sensie. W stanie tym podstawowa jednostka regulacyjna 172 zasilacza 17 przestaje dostarczać regulowaną moc do systemu komputerowego 10, (z wyjątkiem małej ilości mocy poprzez wyjście AUX5, jak to będzie obszerniej objaśnione w związku z figurą 5), lecz stan systemu komputerowego 10 nie jest pamiętany na dysku stałym 31. Stan zawieszenia 154 i stan wyłączenia 156 są podobne przez to, że zasilacz 17 nie generuje dłużej regulowanej mocy. Różnią się w tym, że w stanie wyłączenia 156, stan systemu komputerowego 10 nie jest pamiętany na dysku stałym 31, jak to jest w stanie zawieszenia 154. Ponadto podczas opuszczania stanu wyłączenia 156, komputer 20 ładuje się jak przy włączeniu. To jest dowolny kod wykonawczy musi być zainicjowany przez użytkownika lub automatycznie, za pomocą środków takich jak plik AUTOEXEC.BAT. Jednakże podczas opuszczania stanu zawieszenia 154, komputer 10 wznawia działanie w miejscu, gdzie nastąpiło przerwanie. Oznacza to, ze dowolny kod wykonawczy musi rozpoczynać albo użytkownik lub musi to czynić się to za pomocą środka takiego jak plik AUTOEXEC.BAT. Jednakże po opuszczeniu przez komputer 10 stanu zawieszenia 154, dokonuje się wznowienia wykonywania programu w miejscu, gdzie zostało ono przerwane.
Figura 4 przedstawia również przegląd zdarzeń, które powodują przejścia między czterema stanami. Zdarzenia te będą dalej objaśnione na figurach od 6,7 do 8. Przycisk włączenia mocy 21, dwa czasomierze (czasomierz nieaktywności stanu gotowości i czasomierz nieaktywności stanu zawieszenia, patrz figura 9), czasomierz minut do pobudzenia i Znacznik Zezwolenia Zawieszenia (Suspend Enable Flag) - patrz fig. 6A i 7 - wszystkie oddziałują na stan, do którego komputer wchodzi. Ogólnie - dwa czasomierze mogą być czasomierzami sprzętowymi lub czasomierzami programowymi CPU, działającymi w jednostce centralnej CPU jako programy. W korzystnym przykładzie wykonania wynalazku, oba czasomierze są czasomierzami programowymi CPU, wykonywanymi z segmentów danych systemu BIOS. Jednakże, te dwa czasomierze ewentualnie mogłyby być czasomierzami sprzę
180 369 towymi, co byłoby lepszym rozwiązaniem, ponieważ zmniejszałoby koszt systemu. Czasomierze zostaną dokładniej objaśnione na fig. 9. Oba czasomierze są aktywne, gdy komputer 10 jest w normalnym stanie operacyjnym 150 lub w stanie gotowości 152. Czasomierze komunikują się z innymi procedurami tak, że wyczerpanie się zadanego, w którymś z czasomierzy okresu spowoduje przejście w sposób, jak opisano poniżej. Jeden lub oba czasomierze mogą być skonfigurowane, aby nastąpił ich stan wyczerpania po pewnym okresie czasu, zależnym od określonych potrzeb użytkownika. W korzystnym przykładzie wykonania wynalazku nieaktywność czasomierza stanu gotowości i nieaktywność czasomierza stanu zawieszenia mogą być ustawione tak, aby wyczerpały się po 10 do 90 minut Pojedynczo lub oba czasomierze można zatrzymać po to, aby skonfigurować nowszy okres odliczania.
Zatrzymanie czasomierzy może przyjąć formę ostatecznego zaprzestania akcji zwiększania liczników przez czasomierze lub po prostu formę zignorowania faktu wyczerpania okresu zliczania. W korzystnym przykładzie wykonania wynalazku, ustawienie wartości zero, jako wartości wyczerpania czasomierza powoduje to, że wyczerpanie czasomierza nie podlega sprawdzaniu. Użytkownik lub jakiś komputer sieciowy może, np nie chcieć wejść do stanu zawieszenia 154 ponieważ, czyniąc to może spowodować, ze sieć LAN ulegnie awarii, wiązącej się z tym komputerem.
Teoretycznie, czasomierze mogą czas zliczać lub odliczać i mogą być nastawiane na ustalony i określony wcześniej stan oraz oczekuje się, że mogą zliczać do innego ustalonego i określonego wcześniej stanu, kiedy to czasomierz zostanie uruchomiony (lub zostanie uruchomiony ponownie) lub może być użyta bieżąca wartość, przy czym obliczona różnica lub suma, wskazuje koniec okresu, wyczerpania. W korzystnym przykładzie wykonania, gdy ponownie ustawia się czasomierze, zapamiętuje się bieżącą wartość zmiennej minutowej z zegara czasu rzeczywistego 98. Sprawdza się termin ustawienia czasomierzy poprzez odjęcie bieżącej wartości minutowej od zapamiętanej wartości minutowej i poprzez porównanie różnicy z wartością wybraną przez użytkownika.
Na oba czasomierze mają wpływ niektóre działania systemu, np. w przykładzie wykonania wynalazku jest to działanie użytkownika, przejawiające się naciśnięciami klawiszy klawiatury 12, ruchem myszki 13, naciśnięcia klawiszy myszki 13 lub działanie dysku stałego 31 powodujące ponowne uruchomienie każdego zegara, jak będzie to obszerniej objaśnione na fig. 9, ponadto w trakcie naciskania klawiszy klawiatury 12 przez użytkownika lub użycia myszki 13 oraz w trakcie dostępu aplikacji do dysku stałego 31, żadne ustawienie czasomierza nie może ulec wyczerpaniu. Dodatkowo inne zdarzenia systemowe mogą być użyte do ponownego ustawienia czasomierzy. Dowolne przerwanie sprzętowe może być alternatywnie monitorowane ze względu na aktywność. Stąd, mogłoby być wskazane, aby drukowanie (przerwanie IRQ5 lub IRQ7) lub dostęp do portu COMM (przerwanie IRQ2 lub IRQ3) zapobiegało wejściu systemu do stanu zawieszenia 154.
Znacznik Zezwolenia Zawieszenia jest przerzutnikiem zatrzaskowym, znajdującym się w mikro sterowniku U2, dającym się odczytywać i być manipulowanym przez CPU, co zostanie obszerniej objaśnione na fig.óA. W skrócie, umieszczenie mikrosterownika U2 w danym trybie uzyskuje się przez naciśnięcie przełącznika 21, co wprowadza system 10 do stanu 156, umieszczenie mikrosterownika U2 w innym trybie uzyskuje się przez kolejne naciśnięcie przełącznika 21, co wprowadza system 10 do stanu zawieszenia 154. Jeśli system komputerowy 10 znajduje się w normalnym stanie operacyjnym 150 i zostanie naciśnięty przycisk 21, przy wyzerowanym Znaczniku Zezwolenia Zawieszenia, zapisanym w mikro sterowniku U2, to system komputerowy 10 wchodzi do stanu wyłączenia 156, jak przedstawiono na 158. Jeśli system komputerowy 10 znajduje się w stanie wyłączenia 156 i zostanie naciśnięty przycisk 21, to system komputerowy wchodzi do normalnego stanu operacyjnego 150, jak przedstawiono na 160. Ponadto, kilka zewnętrznych zdarzeń, które zostaną poniżej objaśnione obszerniej, mogą powodować przejście systemu ze stanu wyłączenia 156 do normalnego stanu operacyjnego 150.
Jeśli system komputerowy 10 znajduje się w normalnym stanie operacyjnym 150, to jakieś zdarzenie może spowodować wejście komputera do stanu gotowości 152; jeśli wyczerpie się czasomierz nieaktywności stanu gotowości, to system komputerowy 10 przejdzie
180 369 do stanu gotowości 152, jak przedstawiono na 162. W sytuacji alternatywnej, system może dostarczać takich środków, jak pole dialogowe, przełącznik lub inne urządzenie wejściowe, aby użytkownik wymuszał bezpośrednio przejście systemu do stanu gotowości. W stanie gotowości 152 dowolna czynność systemu lub użytkownika - opisanego poprzednio rodzaju, włączając w to naciśnięcie przełącznika mocy 21, spowoduje opuszczenie stanu gotowości 152 i ponowne wejście do normalnego stanu operacyjnego, jak przedstawiono na 164.
Naciśnięcie przycisku mocy 21 powoduje przejście systemu ze stanu gotowości 152 do normalnego stanu operacyjnego zapobiegając dezorientacji użytkownika. Jak wzmiankowano powyżej, będąc w stanie gotowości monitor 11 ma ekran pusty, natomiast dioda święcąca do sygnalizacji funkcji zasilanie/sprzęzenie zwrotne LED 23 świeci lub mruga, zależnie od tego, jak są skonfigurowane znaczniki w mikrosterowniku U2. Użytkownik zbliżający się do systemu może zauważyć, że ekran monitora 11 jest pusty i pomyśleć, ze system jest w stanie zawieszenia 154 lub wyłączenia 156 i nacisnąć przycisk mocy 21, aby spróbować wprowadzić system do normalnego stanu operacyjnego 150. Jeśli naciśnięcie przycisku mocy 21 spowoduje wejście systemu albo do stanu zawieszenia 154, albo do stanu wyłączenia 156, to powyższy użytkownik wyłączy lub zawiesi komputer, co jest akurat odwrotne do jego intencji. Dlatego tez, podczas stanu gotowości 152, naciśnięcie przycisku mocy 21 spowoduje zmianę stanu systemu ze stanu gotowości do normalnego stanu operacyjnego. Nawet w stanie pracy jałowej, jednostka centralna CPU 40 wnet sprawdzi, czy przycisk został naciśnięty. Przerwania sprzętowe przenoszą jednostkę centralną CPU 40 z jałowego stanu pracy około 20 razy na sekundę, odtąd podczas następnego polecenia APMPodaj Zdarzenie (APM Get Event), mikro sterownik U2 jest pytany o określenie, czy przycisk 21 był naciśnięty.
Jeśli komputer 10 znajduje się w normalnym stanie operacyjnym 150, to dwa zdarzenia mogą spowodować wejście do stanu zawieszenia 154. Pierwszy - jeśli wyczerpie się czasomierz nieaktywności stanu zawieszenia, to system komputerowy 10 zmieni stan, na stan zawieszenia 154, jak przedstawiono na 166. Drugi - użytkownik może spowodować wejście komputera 10 do stanu zawieszenia 154, bezpośrednio przez naciśnięcie przycisku mocy 21, przy ustawionym Znaczniku Zezwolenia Zawieszenia, zapisanym w mikrosterowniku U2, również przedstawionym na 164. Ponadto alternatywnie, sterownik APM może wydać żądanie zawieszenia poprzez polecenie Ustaw Stan Zasilania: Zawieszony, który powoduje wywołanie Procedury Zawieszenia przez sterownik APM BIOS. Podczas stanu zawieszenia 154, użytkownik powoduje przejście do normalnego stanu operacyjnego 150 poprzez naciśnięcie przycisku mocy 21, jak przedstawiono na 168.
Ponadto kilka zdarzeń zewnętrznych może być użytych do zmiany systemu 10 ze stanu zawieszenia 154 do normalnego stanu operacyjnego 150, w trakcie 168 lub ze stanu wyłączenia 156 do normalnego stanu operacyjnego 150, na 160, np. układ detekcji dzwonka telefonu , w mikrosterowniku U2 w układach z fig. 6A. skonfigurowano do powodowania, aby system 10 opuszczał stan wyłączenia 156 lub stan zawieszenia 154 i wchodził do normalnego stanu operacyjnego 150, gdy podłączona linia telefoniczna jest w stanie wywołania. Taka właściwość jest przydatna dla systemów odbierających dane telefaksowe lub dane cyfrowe. System wchodzi do normalnego stanu operacyjnego - reagując na dzwonek telefonu (wywołanie), wykonuje ustawione wcześniej funkcje takie, jak akceptowanie nadchodzącej transmisji obrazów nieruchomych, pobieranie i wysyłanie plików, zezwalanie na zdalny dostęp do systemu itd. oraz ponowne wejście do stanu zawieszenia odpowiednio do wyczerpania się czasomierza nieaktywności stanu gotowości, pobierając moc tylko wtedy, gdy system znajduje się w normalnym stanie operacyjnym.
Podobnie mikrosterownik U2 przystosowuje licznik minut do pobudzenia alarmowego, który zezwala zdarzeniu typu alarm spowodować, opuszczenie przez system 10 stanu zawieszenia 154 lub stanu wyłączenia 156 i wejść do normalnego stanu operacyjnego 150. Taki system jest użyteczny do wysyłania telefaksów lub danych cyfrowych w określonej porze dnia, wykorzystując nizsze stawki posługiwania się telefonem oraz do wykonywania systemowych funkcji konserwatorskich takich, jak tworzenie kopii zapasowych systemowego napędu stałego 31 za pomocą systemu kopii taśmowych. W ostatnim przypadku minuto
180 369 wy alarm pobudzenia ustawia się, aby włączyć maszynę w określonym okresie czasu przed terminem zgodnym z planem, aby spowodować wykonanie programu tworzenia taśmowych kopii zapasowych. Alternatywnie plan systemu APM BIOS także może być użyty do wykonania programu tworzenia taśmowych kopii zapasowych.
W końcu, jeśli system komputerowy 10 znajduje się w stanie gotowości 152 i wyczerpie się czasomierz nieaktywności stanu zawieszenia, to komputer 10 zmienia stan zawieszenia 154, jak przedstawiono na 170. System komputerowy 10 nie może zmienić stanu zawieszenia 154 z powrotem na stan gotowości 152, lecz może jedynie przejść do normalnego stanu operacyjnego 150, jak opisano w tekście towarzyszącym przejściu 168.
Oczywiście system komputerowy 10 nie może natychmiast zmieniać stanów. Przy każdym przejściu z jednego z czterech stanów, wymagany jest pewien okres czasu, aby wykonać konieczne zmiany systemowe. Szczegóły dotyczące każdego okresu przejścia będą objaśnione na figurach od 6 do 15.
Przed omówieniem szczegółów realizacji kodu programowego przez jednostkę CPU 40, może być użyteczne, najpierw przeanalizować wymagania sprzętowe, niezbędne do osiągania czterech stanów. Schemat blokowy zasilacza 17 jest przedstawiony na fig. 5. Zasilacz 17 ma dwie jednostki: jednostkę sterującą 174 i podstawową jednostkę regulacyjną 172. Zasilacz 17 ma kilka wejść: wejście Line-In, które akceptuje napięcia 115 VAC albo 220 VAC pobierane z typowego gniazda ściennego oraz wejście ÓN, które steruje czynnościami regulacyjnymi zasilacza 17. Zasilacz 17 ma też kilka wyjść: wyjście AC Line-Out oraz ± 5 VDC, ± 12 VDC, AUX5, GND i POWERGOOD. Wyjście AC Line-Out ma wartość 115 VA, które typowo pasuje do wejścia mocy elektrycznej zasilającego terminala ekranowego 11. Jednostka sterowania 174 akceptuje sygnał wejściowy ON i generuje sygnał wyjściowy POWERGOOD. Podstawowa jednostka regulacyjna 172 selektywnie reguluje przemianą napięcia wejściowego Line-In 115 VAC na napięcie ± 5 VDC, ± 12 VDC. Czy podstawowa jednostka regulacyjna 172 ma regulować moc podawaną na szynach ± 5 VDC, ± 12 VDC zalezy od wartości sygnału ON, jak wynika to ze sprzężenia z jednostką sterowania 174. W korzystnym przykładzie wykonania wynalazku, jednostka sterowania 174, powinna zapewnić izolację dla układów generujących sygnał ÓN, używając np. odpowiedniego transoptora.
Wejście Line-In i wyjścia Line-Out oraz ± 5 VDC, ± 12 VDC, GND i POWERGOOD są dobrze znane w przedmiotowej dziedzinie. Gdy zasilacz 17 jest wyłączony, to jest, gdy nie dostarcza regulowanego napięcia przy wykorzystaniu wejścia Line-In, to sygnał POWERGOOD ma logiczną wartość 0 (ZERO). Gdy zasilacz 17 jest włączony, to zasilacz 17 wytwarza regulowane napięcia ± 5 VDC, ± 12 VDC z napięcia 115 VAC na wejściu Line-In. Te cztery stabilizowane napięcia i związana z nimi szyna GND dostarczają moc dla systemu (zasilanie do systemu). Gdy regulowane napięcia osiągną poziomy w zakresie dopuszczalnych tolerancji, to sygnał POWERGOOD zmienia się w logiczną 1 (JEDYNKĘ). Gdy tylko napięcia ± 5 lub ± 12 V przekroczy granice tolerancji, to sygnał POWERGOOD zmienia się w logiczne 0, wskazując jednocześnie ten warunek.
Wyjście AUX5 dostarcza napięcie pomocnicze ± 5 VDC do planaru. Kiedy zasilacz 17 podłączony jest do typowego gniazda ściennego, o nominalnym napięciu 115 VAC, wtedy podstawowa jednostka regulacyjna 172 dostarcza regulowanego napięcia ± 5 VDC na wyjście sygnału AUX5, zależnie od tego czy zasilacz jest włączony, czy wyłączony. Stąd, podczas odbioru prądu AC, zasilacz 17 stale dostarcza nominalne ± 5 VDC na wyjście AUX5. Wyjście AUX5 różni się od wyjścia +5V tylko tym, że podstawowa jednostka regulacyjna 172 generuje regulowane napięcie +5 VDC poprzez wyjście + 5, gdy zasilacz 17 jest włączony. Wyjście AUX5 różni się ponadto od wyjścia +5V tym, ze w korzystnym przykładzie wykonania wynalazku, podstawowa jednostka regulacyjna 172 dostarcza kilka amperów prądu o napięciu + 5 VDC poprzez wyjście + 5 VDC, podczas gdy jednostka 172 dostarcza mniej niz jeden amper prądu o napięciu + 5 VDC poprzez wyjście AUX5.
Typowe dotychczasowe zasilacze używają przełączników dwupołożeniowych o wysokim obciążeniu prądowym do włączania i odłączania wejścia Line-In do i od sekcji regulacji zasilacza. Zasilacz 17 w niniejszym wynalazku nie używa przełącznika dwupołożenio
180 369 wego o wysokim obciążeniu prądowym. Przełącznik 21 raczej steruje układami, które generują sygnał ON . W przykładzie wykonania wynalazku, przełącznik 21 jest chwilowym jednobiegunowym, jednopołożeniowym wyłącznikiem przyciskowym, jednakże można adaptować układy z fig. 6A do wykorzystania przełączników innych typów takich jak przełącznik jednopolowy, dwupołozeniowy. Wejście AC Line-In jest stale połączone z podstawową jednostką regulacyjną 172 z gniazdem ściennym. Kiedy sygnał ON jest logiczną 1 (w przybliżeniu równą wartości AUX5, nominalnie ± 5 VDC), wtedy podstawowa jednostka regulacyjna 172 nie przemienia prądu AC o napięciu 115 V z szyny Line-In na ± 5 VDC lub ± 12 VDC na wyjściach ± 5 lub ± 12. Podstawowa jednostka regulacyjna 172 dostarcza tylko prądu o niskiej wartości o nominalnym napięciu ± 5 VDC na wyjściu sygnału AUX5. Z drugiej strony, kiedy sygnał ÓN jest logicznym 0 (w przybliżeniu GND), wtedy podstawowa jednostka regulacyjna 172 dokonuje przemiany prądu AC o napięciu 115 V pobieranego z szyny Line-In na ± 5 VDC lub ± 12 VDC odpowiednio na wyjściach ± 5 lub ± 12. Stąd, kiedy sygnał ÓN jest logiczną 1, wtedy zasilacz 17 jest wyłączony, a kiedy sygnał ON jest logicznym 0, wtedy zasilacz 17 jest włączony.
Odnosząc się do fig. 6A (która składa się z figur od 6A1 do 6A3), przedstawiono na niej uproszczony rysunek układów elektronicznych systemu komputerowego 10. Układy na fig.óA odpowiadają za sprzężenie między przełącznikiem 21, diodą świecącą sygnalizacji funkcji zasilanie/sprzęzenie LED 23, zasilaczem 17, terminalem ekranowym 11 i wykonywaniem kodu programowego w jednostce centralnej CPU 40.
Układy obejmują cztery (4) zintegrowane układy Ul - pierwszy programowany układ PAL16L8; U2 - programowany mikrosterownik 83C750, U3 - układ 74L505, który jest dobrze znany w przedmiotowej dziedzinie techniki i U4 - drugi programowany układ PAL16L8 oraz różne dyskretne elementy składowe w komunikacji układowej, jak przedstawiono na fig. 6A. Ogólnie układy typu PAL Ul i U4 sprzęgają magistralę we/wy planaru 90 z fig. 3 A i fig.3B z mikrosterownikiem U2, który sprzężony jest z pozostałymi układami fig. 6A, które sprzężone są z przełącznikiem 21, z zasilaczem 17, terminalem ekranowym 11 i programowanym syntezatorem zegarowym 906. Programowany syntezator zegarowy 906 może być jednym z wielu takich urządzeń, jak np. układ CH9055A.
Układy z fig. 6A obejmujądalej przełącznik 21, kryształ 16 MHz Yl, osiemnaście rezystorów RI do R18, osiem kondensatorów CI do C8, trzy tranzystory MOSFET typu N Q1 - Q3, które są standardowymi tranzystorami niskoprądowymi NMOS FET, w układzie przełącznika logicznego w korzystnym przykładzie wykonania wynalazku oraz sześć małych diod sygnałowych CR1 do CR6, wszystkie skonfigurowane i połączone tak, jak przedstawiono na fig 6A. Rezystory R1 do R18 są rezystorami o mocy 1/4 wata i mają wartości, jak przedstawiono na fig.6A ± 5%.
Kondensator Cl jest kondensatorem elektrolitycznym o wartości 10 pF (± 10%). Kondensatory C2 i C3 są kondensatorami tantalowymi o wartości 22 pF (± 10%). Kondensatory C4 - C8 są kondensatorami ceramicznymi o wartości 0,1 pF (± 10%). Na końcu kondensator C9 jest kondensatorem ceramicznym o wartości 1000 pF (± 10%).
Kryształ Yl i kondensatory C2 i C3 generują sygnały używane przez mikrosterownik U2 do sterowania taktowaniem operacji, jak jest to znane w przedmiotowej dziedzinie. Diody CR1 i CR3 oraz rezystor R14 izolują sygnał AUX5 od sygnału VBAT, umożliwiając jednocześnie sygnałowi AUX5 uzupełnianie sygnału VBAT, podczas generowania sygnału AUX5 przez zasilacz 17, bateria 171 nie jest rozładowywana. Sygnał AUX5 podlega zmniejszeniu na diodach CR1 i CR3, aby dostarczyć odpowiednie napięcie dla urządzeń połączonych z VBAT. Alternatywnie szyna sygnału VBAT jest izolowana od szyny sygnału AUX5.
Drugi układ PAL U4 połączony jest z liniami adresowymi od SA(1) do SA(15) i linią AEN odblokowanie adresu. Linie od SA(1) do SA(15) i linia AEN są częścią magistrali planarnej we/wy 90, przedstawionej na fig. 3A i 3B. Drugi układ PAL U4 jest zaprogramowany do pełnienia funkcji zwykłego dekodera adresów, wystawiając aktywny niski sygnał DCD#, gdy określony wcześniej adres znajduje się na liniach adresowych od SA(1) do SA(15) i linia AEN odblokowanie adresu jest aktywna. W tym przykładzie wykonania wy
180 369 nalazku, drugi układ PAL U4 jest wstępnie zaprogramowany, aby dekodować dwa kolejne 8 bitowe porty we/wy (1/0) o adresach OECH i OEDH. Alternatywnie, sygnał DCD# może być generowany przez inne urządzenie elektroniczne takie, jak sterownik pamięci lub zestaw układów sterownika ISA.
Pierwszy układ PAL Ul jest zaprogramowany, aby zapewnić kilka funkcji: (i) interfejs odczytu/zapisu miedzy jednostką CPU a mikrosterownikiem U2 do umożliwiania przekazywania poleceń i danych między jednostką CPU 40 a mikrosterownikiem U2, (ii) logiczny pierścień przerwania myszki INT12 i przerwania klawiatury INT1; oraz wyjście ustawiające w stan początkowy do ustawiania w stan początkowy mikrosterownika U2 odpowiednio do poleceń z jednostki CPU 40.
Pierwszy układ PAL Ul używa dwóch kolejnych portów we/wy, tutaj traktowanych jako porty gospodarowania zasilaniem. Pierwszy układ PAL Ul ma osiem (8) wejść od magistrali planarnej we/wy 90: SD(4), SD(0), SA(0), IOW#, IOR#, RST DRV i IRQ12. Pierwszy układ PAL Ul jest ustawiany w stan początkowy do znanego warunku początkowego poprzez aktywny wysoki sygnał wejściowy RST DRV na pin 7 (16), który generowany jest przez sterownik pamięci 46.
Linia ustawiająca stan początkowy (zerowania) RST751 :mikrosterownika U2 podawana jest na pin 9. Układ ustawiający stan początkowy 920 odpowiada za generowanie sygnału linii RST751, przy czym obejmuje on cztery rezystory R4, R16, R17 i R18, dwa kondensatory Cl i C8, dwa tranzystory MOSFETS Q2 i Q3, połączone z pierwszym układem PAL Ul i mikrosterownikiem U2, jak przedstawiono na fig.6A. Układ ustawiający stan początkowy 920 sprzęga sygnał wyjściowy z linii RESET (ustawiający stan początkowy) z pierwszego układu PAL Ul z sygnałem wejściowym RST751 (ustawiającym stan początkowy) mikrosterownika U2 tak, ze kiedy linia RESET jest logiczną 1, wtedy linia RST75 ustawiana jest do logicznej 1, powodując tym samym ustawienie stanu początkowego wyzerowanie) mikrosterownika U2.
Pierwszy układ PAL Ul ustawia w stan początkowy (zeruje) mikrosterownik U2, odpowiednio do jednostki centralnej CPU 40, wpisującej logiczną 1 na bit 0 portu sterującego OEDH. Wpisanie logicznej 1 na bit 0 portu sterującego OEDH powoduje to, ze pierwszy układ PAL Ul ustawia linię RESET do logicznej 1, co ustawia linie RST751 do logicznej 1, powodując tym samym ustawienie mikrosterownika U2 w stan początkowy. Jednostka CPU 40 zeruje żądanie ustawienia w stan początkowy poprzez wpisanie logicznego 0 na bit 0 portu sterującego OEDH.
Ponadto układ ustawiający stan początkowy ustawia linię RST751 do logicznej 1, powodując tym samym ustawienie mikrosterownika U2 w stan początkowy, kiedykolwiek napięcie sygnału AUX5 podnosi się o zadaną wielkość, jakby to zdarzyło się po zmniejszeniu napięcia sygnału AUX5 podczas wystąpienia ograniczenia zużycia energii elektrycznej lub wyłączenia źródła prądu AC dla zasilacza 17, jak przedstawiono na fig. 6C. W konkretnej konfiguracji z fig. 6A, linia RST751 jest ustawiana do logicznej 1 na okres czasu określony przez rezystor R17 i kondensator C8 (powodując ustawienie w stan początkowy, mikrosterownika U2), gdy napięcie sygnału AUX5 wzrasta o wielkość progową w określonym czasie większym niż stała czasowa określona przez rezystor R4, R16 i kondensator Cl. Co może zachodzić po typowych ograniczeniach zuzycia energii elektrycznej lub jej wyłączeniach. Wartością progową jest w przybliżeniu wartość 1,5 VDC w przykładzie wykonania wynalazku, przedstawionym na fig. 6A.
Odnosząc się teraz do fig. 6C, przedstawione są kształty fali dla układu ustawiania stanu początkowego 920 w okresie czasu, gdy wartość sygnału AUX5 rośnie, przy zastosowaniu zasilania AC do zasilacza 17 i w okresie czasu w trakcie którego zachodzi ograniczenie zużycia energii elektrycznej. Przed chwilą tO zasilacz 17 nie generuje sygnału AUX5, przy czym sygnał VBAT wynosi w przybliżeniu 3,3 V, tranzystor Q3 przewodzi i sprowadza linię RST751 do potencjału masy. W chwili tO zasilacz 17 zaczyna generować sygnał AUX5 i napięcie rośnie ze stałą opartą na obciążeniu i kondensatorach w zasilaczu 17, mających wpływ na sygnał AUX5. Węzeł 1 - węzeł między CI i R4 jest sprzężony pojemnościowo z sygnału AUX5, zatem napięcie w nim rośnie, gdy rośnie sygnał AUX5
180 369
W chwili tl, napięcie w Węźle 1 osiąga w przybliżeniu wartość 1,5 V, które jest wystarczające do wysterowania tranzystora Q2, co powoduje przejście Węzła 2 na potencjał masy. W chwili t2, gdy napięcie w Węźle 2 przechodzi przez 2,5 V, tranzystor Q3 przestaje przewodzić i sygnał na linii RST571 skacze do poziomu sygnału AUX5 poprzez rezystor R18 oraz rośnie wraz z sygnałem AUX5 w przybliżeniu do wartości 5 V. Kiedy linia R5T751 przyjmuje w przybliżeniu wartość 3 V, wtedy mikrosterownik U2 ma ustawiony stan początkowy.
W chwili t3, sygnał AUX5 przestaje wzrastać, zatem napięcie w Węźle 1 też przestaje rosnąć i węzeł zaczyna rozładowywać się do potencjału masy (linia RESET pierwszego układu PAL Ul jest w stanie NISKI (LOW)) ze stałą określoną przez kondensator Cl i rezystor R4. W chwili t4, gdy napięcie w Węźle 1 przechodzi przez wartość około 1,5 V, tranzystor Q2 przestaje przewodzić i Węzeł 2 ładuje się ze stałą określoną przez kondensator C8 i rezystor R17. W chwili t5, gdy napięcie w Węźle 2 przechodzi przez wartość około 2,5 V tranzystor Q3 przewodzi, sprowadzając linię RST751 do potencjału masy. Stąd, ustawianie stanu początkowego włączenia zostaje zakończone, przy czym system jest zwykle w tym stanie przy wartości sygnału AUX5 wynoszącej 5 V, sygnału VBAT wynoszącego 3,3 V, potencjale Węzła 1 równym potencjałowi masy i potencjale Węzła 2 równym sygnałowi VBAT.
W chwili t6, na linii sygnału AUX5 rozpoczyna się ograniczenie zuzycia energii elektrycznej i sygnał AUX5 rozładowuje się. Będąc pojemnościowe sprzężony z sygnałem AUX5, potencjał Węzła 1 stara się podążać za sygnałem AUX5, lecz nie może, ponieważ diody w pierwszym układzie PAL Ul zapobiegają przed obniżeniem napięcia o więcej niz 0,5 V. W chwili t7, napięcie sygnału AUX5 osiąga najniższy punkt i zaczyna wzrastać ponownie. Ponownie potencjał Węzła 1 nadąża za sygnałem AUX5 i rośnie. W chwili t8 potencjał Węzła 1 osiąga w przybliżeniu 1,5 V, co wystarcza do wysterowania tranzystora Q2, który sprowadza potencjał Węzła 2 do masy. W chwili t9 potencjał Węzła 2 przechodzi przez 2,5 V, tranzystor Q3 przestaje przewodzić i linia RST571 skacze do poziomu AUX poprzez rezystor R18 oraz rośnie wraz z sygnałem AUX5 w przybliżeniu do wartości 5 V. Kiedy lima RST751 przyjmuje w przybliżeniu wartość 3 V, wtedy mikrosterownik U2 ma ustawiony stan początkowy.
W chwili tlO, sygnał AUX5 przestaje wzrastać, zatem napięcie w Węźle 1 tez przestaje rosnąć i węzeł zaczyna rozładowywać się do potencjału masy (linia RESET pierwszego układu PAL Ul jest w stanie NISKI (LOW)) ze stałą określoną przez kondensator Cl i rezystor R4. W chwili tli, gdy napięcie w Węźle 1 przechodzi przez wartość około 1,5 V, tranzystor Q2 przestaje przewodzić i Węzeł 2 ładuje się ze stałą określoną przez kondensator C8 i rezystor R17. W chwili tl2, gdy napięcie w Węźle 2 przechodzi przez wartość około 2,5 V, tranzystor Q3 przewodzi, sprowadzając linię RST751 do potencjału masy. Zatem ustawianie stanu początkowego, wywołanego ograniczeniem zużycia energii elektrycznej jest zakończone. Należy zauważyć, ze podczas konkretnego ograniczenia zuzycia energii elektrycznej, Węzeł 1 nie uzyskuje potencjału ponad 3 V i stąd nie mogłoby nastąpić ustawienie stanu początkowego mikrosterownika, jeśli połączony jest z końcówką linii RST751. Jednakże napięcie sygnału AUX5 jest obniżone poniżej 4 V, co mogłoby wystarczyć, aby spowodować wejście mikrosterownika U2 do niezdefiniowanego stanu.
Próg dla uruchomienia ustawiania stanu początkowego związany jest z wartością odniesienia, zatem, aby zwiększyć lub obniżyć napięcie progowe, konieczne jest odpowiednio zwiększenie lub zmniejszenie wartości odniesienia (w tym przypadku sygnału VBAT). Układ ustawiania stanu początkowego zapewnia korzyści związane ze zwiększoną ochroną ustawiania stanu początkowego dla mikrosterownika U2, będąc przy tym układem niedrogim i w istocie nie zużywającym mocy, gdy nie następuje ustawianie stanu początkowego mikrosterownika U2.
Odnosząc się z powrotem do fig. 6A, mikrosterownik U2 jest sprzężony z jednostką CPU 40 poprzez pierwszy układ PAL Ul i ma szereg wejść i wyjść oraz funkcji, które dają się sterować od wewnętrz.
180 369
Sygnał SWITCH (przełącznik) wchodzi na pin 8 (P0.0) i odzwierciedla bieżący stan przycisku 21. Przycisk 21 jest normalnie rozwarty. Przy rozwartym przycisku 21, lima SWITCH ustawiana jest do wartości logicznego 0 (masa) poprzez rezystor Rl. Kiedy przycisk 21 zostanie naciśnięty, powodując zdarzenie zamknięcia, wtedy linia SWITCH jest ustawiana do wartości logicznej 1 (sygnał AUX5) poprzez rezystor R13. Kondensator C6 likwiduje zakłócenia (odbicia) związane ze zdarzeniem zamknięcia przełącznika, przy czym dalsze eliminowanie zakłóceń po zdarzeniu zamknięcia przełącznika 21 jest wykonywane w ramach mikro sterownika U2 poprzez odczytywanie sygnału SWITCH określoną wcześniej liczbę razy, np. 50 razy, upewniając się, że linia SWITCH była taka sama dla tych wszystkich odczytów.
Regulowanie zasilacza 17 jest bezpośrednio sterowane przez mikrosterownik U2. Jak przedstawiono na fig. 6A, sygnał ON wychodzi na pin 5 (P3.0) i wraz sygnałem SWITCH, tworzy sumę logiczną OR na drucie poprzez rezystor R6 do sterowania sygnałem ON# zasilacza. Kiedy sygnał ON jest logiczną 1, tranzystor MOSFET Q1 przewodzi, powodując tym samym ustawienie linii ON# (pin 2 zworki JP2) do logicznego 0 (GND), co wywołuje rozpoczęcie dostarczania przez zasilacz 17 regulowanej mocy do systemu poprzez szyny ± 5 VDC i ± 12 VDC. Z drugiej strony, kiedy linia ON przyjmuje wartość logicznego 0, tranzystor MOSFET Q1 nie przewodzi, powodując tym samym ustawienie linii ON# (pin 2 zworki JP2) do logicznej 1 (sygnał AUX5) poprzez rezystor R7, co wywołuje przerwanie dostarczania przez zasilacz 17 regulowanej mocy do systemu poprzez szyny ± 5 VDC i ± 12VDC.
Stan linii ON jest sterowany przez mikrosterownik U2, odpowiednio do zdarzenia zamknięcia przełącznika 21 i odpowiednio do wymagań jednostki centralnej CPU 40 poprzez bit zapisywalnego rejestru w obrębie mikrosterownika U2, który może być zapisany przez tę jednostkę . Mikrosterownik U2 jest zasilany przez sygnał AUX5, zatem mikrosterownik U2 jest zasilany stale, wykonując kody programowe i sterując systemem. Jeśli zasilacz 17 nie dostarcza regulowanej mocy do systemu przez szyny ± 5 VDC i ± 12 VDC i albo (i) przełącznik 21 jest naciśnięty albo (ii) zachodzi jakieś zdarzenie zewnętrzne, to mikrosterownik U2 wystawia sygnał ON, powodując tym samym, że zasilacz 17 dostarcza regulowaną moc do systemu przez szyny ± 5 VDC i ± 12 V VDC. Mikrosterownik kontynuuje wystawianie sygnału ON po zwolnieniu przełącznika 21.
Jako obwód działający z rezerwą, zasilacz 17 może być włączony pod bezpośrednią kontrolą użytkownika poprzez przycisk 21. Typowo opcja ta będzie używana wyłącznie wtedy, gdy mikrosterownik przestanie funkcjonować zgodnie z oczekiwaniem, czego dowodem będzie niedostarczanie zasilania przez zasilacz odpowiednio do naciśnięcia przycisku mocy 21. Jak przedstawiono na fig. 6A, przełącznik 21 steruje również linią ON# zasilacza 17 poprzez diodę CR2, MOSFET Ql, rezystor R7 i zworkę JP2. Przycisk 21 jest normalnie otwarty i linia SWITCH jest ustawiana do logicznego 0 poprzez rezystor Rl i tranzystor MOSFET Q1 nie przewodzi, zatem linia ON# (pin 2 zworki JP2) jest ustawiana do logicznej 1 (sygnał AUX5) poprzez rezystor R7 a zasilacz 17 nie dostarcza regulowanej mocy poprzez szyny ± 5 VDC i ± 12 VDC. Kiedy przycisk 21 zostanie naciśnięty i przytrzymany przez użytkownika, linia SWITCH jest ustawiana do logicznej 1, a tranzystor MOSFET Q1 przewodzi, co powoduje ustawienie linii ON# (pin 2 zworki JP2) do logicznego 0 (GND) i rozpoczęcie dostarczania przez zasilacz 17 regulowanej mocy poprzez szyny ± 5 VDC i ± 12 VDC. Z przyciskiem 21 ciągle wciśniętym, po podaniu zasilania do obwodu, system BIOS powoduje, ze jednostka CPU 40 wykonuje test, czy mikrosterownik U2 ciągle funkcjonuje. Jeśli nie, to jednostka CPU 40 ustawia stan początkowy mikrosterowmka U2, który po tym wyzerowaniu, wykrywa, ze przełącznik 21 jest naciskany. Zatem z przyciskiem 21 stale przytrzymywanym, mikrosterownik U2 wystawia sygnał ON i w końcu użytkownik zwalnia przełącznik 21 z przekonaniem, że mikrosterownik obecnie steruje zasilaczem 17. W celu użycia tej opcji podtrzymania, użytkownik musi nacisnąć przycisk 21 na jakiś okres czasu - rzędu sekund, w przybliżeniu dwóch sekund po pojawieniu się logo.
Mikrosterownik U2 wyłącza system jedynie w odpowiedzi na (i) naciśnięcie przełącznika 21 lub (ii) na polecenie wyłączenia systemu skierowane przez jednostkę CPU 40 do
180 369 tego mikrostero wnika. Dla tego mikro sterownika zdarzenia te są takie same, ponieważ jest on skonfigurowany tak, aby zdarzenie naciśnięcia przełącznika było powodowane przez zdarzenie zwarcia przełącznika 21 lub poprzez jednostkę centralną CPU 40, przy czym naciśnięcie/zwolnienie przycisku sprzętowego jest traktowane w istocie tak samo, jak naciśnięcie/zwolnienie przycisku programowego. Mikrosterownik U2 wyłącza system bez polecenia z jednostki CPU 40 jedynie wtedy, kiedy w mikrosterowniku U2 wyzerowany jest Znacznik Zezwolenia Zawieszenia. W takim przypadku, kiedy system jest zasilany oraz Znacznik Zezwolenia Zawieszenia jest zerowany, odpowiednio do zdarzenia zwarcia przełącznika 21, wtedy mikrosterownik U2 zeruje sygnał ON, skutkiem tego zasilacz 17 przestaje dostarczać regulowaną moc poprzez szyny ± 5 VDC i ± 12 VDC. Sygnał ON pozostaje wyzerowany po zwolnieniu przycisku 21.
Mikrosterownik U2 wyłącza również system odpowiednio do polecenia z jednostki CPU 40, jeśli byłoby ono wydane po prawidłowym zapamiętaniu stanu systemu w napędzie dysku stałego (zawieszenie). Odpowiednio do takiego polecenia, mikrosterownik U2 zeruje sygnał ON, skutkiem tego zasilacz 17 przestaje dostarczać regulowaną moc poprzez szyny ± 5 VDC i ± 12 VDC.
Mikrosterownik U2 może również wykrywać i oddziaływać na system na podstawie pewnych zdarzeń, jeśli one zachodzą Sygnał ΕΧΤ RING wchodzi na pm 7 (P0.1) i umożliwia mikrosterownikowi wykrycie sygnału wywołania z włączonego zewnętrznego modemu 902. Jak jest to znane, typowe zewnętrzne modemy dostarczają sygnał dzwonka (wywołania), który przerzuca się do logicznej 1 w dobrze znanym formacie RS-232, gdy sygnał dzwonka zostaje wykryty na łączach telefonicznych a/b. Sygnał ten sprzęgany jest z mikrosterownikiem U2 poprzez diodę CR6 i dzielony na rezystor RIO i rezystor Rll, a na końcu wprowadzany do mikrosterownika U2 poprzez linię ΕΧΤ RING. Przerzucony sygnał jest próbkowany co 25 milisekund i analizowany przez mikrosterownik U2, który uważa sygnał dzwonka za obecny, gdy tylko wejście to ma wartość logicznej 1 dla dwóch kolejnych próbek. Odpowiednio do napotkanych warunków, mikrosterownik U2 uznaje sygnał ON, powodując tym samym, że zasilacz 17 dostarcza regulowaną moc poprzez szyny ± 5 VDC i ± 12 VDC. W celu użycia sygnału ΕΧΤ RING do wykrywania nadchodzącego wywołania telefonicznego, musi być obecny zewnętrznie zasilany modem 902.
Alternatywnie, inne urządzenie, które dostarcza sygnał binarny zgodny ze specyfikacją RS-232 (lub wystarczająco bliski tej specyfikacji, aby uznać sygnał ΕΧΤ RING) może być sprzężone z linią ΕΧΤ RING i może być używane do pobudzania systemu, np. sensory ruchu, sensory alarmu włamaniowego, sensory aktywizowane głosem, sensory światła, sensory światła podczerwonego, sensory grzechotania (drgań mechanicznych) itd.
Jak przedstawiono na fig. 6A i 6B, niniejszy przykład wykonania wynalazku ma również poczynione założenie do wykrywania sygnału dzwonka telefonicznego z wewnętrznego modemu 900, mającego transoptor OPTO1, oparty o układ wykrywania dzwonka. Wewnętrzny modem 900 może być zaprojektowany dla płyty planarnej 20 albo umieszczony w jednym z gniazd rozszerzeń 78. W tym ostatnim przypadku, modem 900 musi być zmodyfikowany, aby uzyskać złącze typu berg lub podobne, umożliwiające elektryczne połączenie sygnału z transoptora OPTO1 z układami gospodarowania zasilaniem z fig. 6A. Sygnał ΕΧΤ WAKEUP# wchodzi na pin 4 (PO.2) mikrosterownika U2 i jest używany do wprowadzenia sygnału z transoptora wykrywania dzwonka OPTO1 z wewnętrznego modemu 900. Sygnał ten jest sprzężony poprzez rezystor R9 i rezystor R5, diodę CR6 i kondensator C9 oraz ostatecznie wchodzi do mikrosterownika U2 poprzez linię sygnału ΕΧΤ WAKEUP#.
Układ zabezpieczenia przepięciowego 905 wewnętrznego modemu 900 połączony jest z liniami telefonicznymi a/b i zapewnia ochronę przed wyładowaniami atmosferycznymi lub innymi zdarzeniami elektrycznymi, które mogłyby uszkodzić modem 900 oraz ustawia progowe napięcie dzwonka.
Zmieniający się sygnał z transoptora OPTO1 jest wykrywany i analizowany przez mikrosterownik U2, który uznaje zawsze, ze sygnał dzwonka jest obecny, gdy trzy kolejne okresy sygnału ΕΧΤ WAKEUP mają częstotliwość między 15,1 Hz a 69,1 Hz. Inaczej niz obwód sygnału ΕΧΤ RING - który musi być zasilony, aby dostarczyć sygnał z ΕΧΤ RING
180 369
- wewnętrzny modem 900 nie potrzebuje być zasilany dla potrzeb transoptora OPTO1, aby dostarczyć odpowiedni sygnał na linii ΕΧΤ WAKEUP#, która normalnie podłączona jest do sygnału AUX5 przez receptor R5.
Mikrosterowmk U2 może przerwać pracę jednostki CPU 40 poprzez SMI, to jest przerwanie zarządzania systemowego jednostki centralnej CPU (SMI - System Management Imerrupt), jeśli jednostka CPU 40 jest wyposażona w mechanizm przerwań SMI, przy czym jednostka (CPU 40 nie potrzebuje być wyposażona w mechanizm przerwania SMI). Sygnał SMI OUT# wyprowadzony jest na pin 3 (P3.2) mikrosterownika U2 i umożliwia mikrosterownikowi U2 bezpośrednie przerwanie pracy CPU 40, bez oczekiwania aż system operacyjny dokona walidacji uprawomocnienia lub w inny sposób zezwoli na przerwanie. Stan linii SMI OUT# jest sterowany przez bit, dającego się zapisywać rejestru, umieszczonego w obrębie mikrosterownika U2, który może być zapisany przez jednostkę CPU 40. Ponadto mikrosterownik U2 może wystawić sygnał SMI OUT# i tym samym przerwać pracę CPU 40 odpowiadając na wykryty stan aktywności na linii ACTIYITY# lub zanim mikrosterownik U2 spowoduje zatrzymanie dostarczania mocy regulowanej dla systemu przez zasilacz 17. Zdarzenia te pojedynczo lub oba mogą uaktywnić lub zablokować polecenia z jednostki CPU 40 do mikrosterownika U2. Ponadto mikrosterownik U2 może wystawić sygnał SMI OUT# i tym samym przerwać pracę CPU 40 odpowiednio do wykrytego przerwania na linii ACTIYITY# lub zanim mikroprocesor U2 spowoduje zaprzestanie dostarczania regulowanej mocy do systemu przez zasilacz 17. Na zdarzenia te pojedynczo lub razem może zezwalać lub blokować je, jednostka CPU 40 poprzez swoje polecenia kierowane do mikrosterownika U2.
Przy każdym przerwaniu zarządzania systemowego SMI, mikroprogram w CPU jednostka 40 zapamiętuje jej stan w specjalnym obszarze pamiętania stanu jednostki CPU 40, dokonując transferu do oraz z pamięci. Od tego czasu, jednostka CPU 40 wykonuje program obsługi przerwań, który realizuje funkcje jak poniżej. W celu odtworzenia stanu jednostki CPU 40, program obsługi przerwań wydaje instrukcję RSM (wznowienie), co powoduje odtworzenie przez jednostkę CPU 40 jej własnego stanu ze specjalnego obszaru pamiętania.
Zanim jednostka CPU 40 spowoduje, że mikrosterownik U2 wystawi przerwanie do jednostki CPU 40 poprzez przerwanie SMI jednostki centralnej CPU 40, to jednostka CPU 40 zapisuje wartość do zmiennej w pamięci CMOS NVRAM, wskazując przyczynę dla przerwania SMI. W pamięci CMOS NVRAM wartość ta domyślnie przyjmuje 00H, wskazując jednostce centralnej CPU 40, ze mikrosterownik U2 wystawia przerwania do jednostki CPU 40 asynchronicznie, jak zachodzi to, zanim mikrosterownik U2 spowoduje zaprzestanie dostarczania regulowanej mocy przez zasilacz 17. Po każdym przerwaniu SMI, jednostka CPU 40 ustawia zmienną w pamięci CMOS NVRAM na 00H. Odpowiednio do tej wartości, jednostka CPU 40 wykonuje pewne zadania przy założeniu, ze system ma być wkrótce wyłączony przez mikrosterownik U2. Jednostka CPU 40 może przedłużyć okres, przed upływem którego mikrosterownik U2 wyłączy zasilanie systemu, poprzez periodyczne ponowne uruchamianie zegara przedłużania wyłączania zasilania, znajdującego się w mikrosterowniku U2.
Podczas okresu czasu, zanim nastąpi wyłączenie systemu, jednostka CPU 40 może wykonać liczne zadania, np. ze względu na to, że użytkownik mógł zmienić jeden lub więcej parametrów, które wpływają na alarm pobudzenia, jednostka CPU 40 ponownie oblicza i zapisuje do mikrosterownika U2 nowe minuty, jako wartość pobudzenia. Ponadto, jednostka CPU 40 zapisuje do pamięci CMOS NVRAM pewne informacje, które mają być później zapisane do napędu dysku stałego 31 takie, jak okres czasu, w którym system komputerowy działał od swego ostatniego włączenia.
Inne wartości zapisane przez jednostkę CPU 40 obejmują: 01H, która wskazuje, ze jednostka CPU 40 ma przeskoczyć do Procedury Zawieszenia przy 254, 02H, która wskazuje, ze CPU 40 ma przeskoczyć do Procedury Wznowienia przy 454 i OFFH, która wskazuje, ze jednostka CPU 40 ma ustawić specjalny obszar pamiętania stanu CPU w strukturze danych segmentu E000H.
180 369
W niniejszym przykładzie, mikro sterownik uzyskuje sterowanie nad wygaszaniem monitora 11. Sygnał DISP BLANK wychodzi na pin 1 (P3.4) mikrosterownika U2 i bezpośrednio steruje wygaszaniem monitora 11. Dwa inwertery U3D i U3E sprzęgają sygnał DISP BLANK z liniami ESYNC# i BLANK#.
Przy liniach ESYNC# i BLANK# w stanie logicznej 1, sterownik wizji 56 generuje sygnał wizji. Kiedy ESYNC# i BLANK# są logicznym 0 (GND), wtedy sterowmk wizji 56 przestaje generować sygnał wizji. Stan linii DISP BLANK jest sterowany przez bit rejestru zapisywalnego, który, może być zapisany przez jednostkę CPU 40, umieszczoną w obrębie mikrosterownika U2. Jednostka CPU 40 przekazuje instrukcje do mikrosterownika U2, aby wygasić monitor, gdy system wchodzi do stanu gotowości 152. Ponadto, linia DISP BLANK jest sekwencyjnie ustawiana, a następnie, zerowana odpowiednio do zdarzeń zamykania przełącznika 21. Podobnie, stan aktywny na dowolnym z aktywnych przerwań, w tym przypadku sygnałów INT1 i INT2, powodują że mikro sterownik zeruje linię DISP BLANK, pozwalając tym samym sterownikowi wizji 56 generować sygnał wizji.
Ponadto, mikrosterownik U2 steruje częstotliwością sygnałów zegarowych, generowanych przez syntezator zegarowy 906. Trzy zworki typu Berg JPO, JP1 i JP2 nie przedstawione na rysunku, sterują syntezatorem zegarowym jak następuje: kiedy JPO=O, JP1=1 i JP2=0, wtedy syntezator zegarowy generuje sygnał zegarowy 33 MHz, kiedy JPO=1, JP 1=1 i JP2=1, wtedy syntezator zegarowy generuje sygnał zegarowy 25 MHz i kiedy JPO=O, JP1=1 i JP2=1, wtedy syntezator zegarowy generuje sygnał zegarowy 8 MHz. Syntezator zegarowy 906 steruje dalej trzema liniami zegarowymi CLK0, CLK1, CLK2, które odpowiadają zworkom JPO, JP1 i JP2. Jak przedstawiono na fig.6A, trzy linie CLK0, CLK1, CLK2 są sterowane przez mikrosterownik U2 poprzez sygnał CLK SLOW#, który wychodzi na pin 2 (P3.3) mikrosterownika U2. Jak przedstawiono sygnał CLK SLOW# jest podwójnie odwrócony na inwerterach z otwartymi wyjściami kolektorowymi U3A, U3B i U3C. Również rezystory R15 i R8 są rezystorami do ustawiania, odpowiednio wyjścia kolektorowego układu U3A i wejścia CLK0 syntezatora zegarowego 906 do logicznej 1.
Trzy sygnały zegarowe CLK0, CLK1 i CLK2 oraz trzy zworki JPO, JP1 i JP2 sterują syntezatorem zegarowym jak następuje: kiedy sygnał CLK SLOW# jest logiczną 1, wtedy sygnały CLK1 i CLK2 są również logicznymi 1, zatem syntezator zegarowy 906 jest sterowany przez zworki JP1 i JP2 i generuje wyższe sygnały zegarowe 25 MHz lub 33 MHz na użytek systemu. Z drugiej strony, kiedy sygnał CLK SLOW# jest logicznym 0, wtedy sygnały CLK1 i CLK2 są również logicznymi 0, zatem syntezator zegarowy 906 generuje sygnał zegarowy o nizszej częstotliwości 8 MHz na użytek systemu, powodując tym samym mniejsze zużycie mocy. Jak przedstawiono na fig. 6A, zworka typu Berg oddziela linię CLK SLOW# od linii CLK0. Jeśli zworka znajduje się na miejscu, to linia CLK0 nadąża za linią CLK SLOW#. Z drugiej strony, jeśli brak w tym miejscu zworki, to linia CLKO pozostaje przyciągnięta do logicznej 1 poprzez rezystor R8, niezależnie od stanu sygnału CLK SLOW#. Stan linii CLK SLOW# sterowany jest przez bit zapisywalnego rejestru, znajdującego się w obrębie mikrosterownika U2, , który może być zapisywany przez jednostkę CPU 40. Ponadto linia CLK SLOW# może być wyzerowana przez mikrosterowmk U2 w odpowiedzi na stan aktywny na linii ACTIVITY#. Jak jest to oczywiste, w niniejszym wynalazku można wykorzystać także inne syntezatory zegarowe, przy czym , połączenia między mikrosterownikiem U2 i syntezatorem zegarowym można byłoby zmienić, aby dopasować się do specyficznych wymagań, związanych z użyciem konkretnego syntezatora.
Ponadto, mikrosterownik U2 bezpośrednio steruje zapalaniem diody świecącej sygnalizującej funkcje zasilanie/sprzęzenie zwrotne LED 23. Sygnał LED CNTRL wyprowadza się na pin 22 (P3.3), umożliwiając mikrosterownikowi U2 bezpośrednie sterowanie diodą f świecącą zasilanie/sprzęzenie LED 23. Rezystory R2 i R3, oraz diody CR4 i CR5 umożliwiają wzbudzanie diody świecącej zasilanie/sprzęzenie LED 23 poprzez szynę zasilania AUX5 lub szynę zasilania VCC w odpowiedzi na linii LED CNTRL, będącej w stanie logicznego 0. Kiedy sygnał linii LED CNTRL jest logiczną 1, wtedy dioda świecąca zasilanie/sprzęzenie LED 23 nie rozświetla się. Jak to poniżej zostanie obszerniej opisane, stanem
180 369 linii LED CNTRL steruje mikrosterownik U2 w odpowiedzi na zdarzenie zamknięcia przełącznika 21 w odpowiedzi na alarm pobudzenia, w odpowiedzi na jeden lub więcej sygnałów dzwonkowych na dowolnym wejściu wykrywającym sygnał dzwonkowy lub w odpowiedzi na umieszczenie systemu w stanie gotowości.
Mikrosterownik U2 może sterować diodą LED 23, która może być zwykłą diodą świecącą mocy. Jako taka, dioda LED 23 rozświetla się po wystąpieniu zdarzenia zamknięcia przełącznika 21, które powoduje, ze system zmienia stan wyłączenia 156 albo stan zawieszenia 154 na normalny stan operacyjny 150. Podobnie mikrosterownik U2 gasi diodę LED 23 po zdarzeniu zwolnienia przełącznika 21, co powoduje, ze system zmienia normalny stan operacyjny 150 na stan zawieszenia 154 albo na stan wyłączenia 156.
Ponadto, dioda LED 23 może być selektywnie rozświetlana przez mikrosterownik U2 w określonym tempie, np. co sekundę, aby wskazać, ze system jest w stanie gotowości 152. Ponadto dioda LED 23 może być selektywnie rozświetlana przez mikrosterownik U2 w różnym tempie, np. co pół sekundy, aby wskazać, że system został pobudzony przez dzwonek lub alarm oraz, że system jest albo w stanie wyłączenia, albo w stanie zawieszenia. Alternatywnie, podczas stanu zawieszenia dioda LED 23 może być selektywnie rozświetlana przez mikrosterownik U2, grupami błysków, aby wskazać ile razy system miał włączane zasilanie przez zdarzenia zewnętrzne takie, jak dzwonek, alarm itd. oraz ile razy był wyłączany w wyniku wyczerpania czasomierza nieaktywności stanu zawieszenia. W tym przypadku system BIOS zapatrzony jest w jedną lub więcej funkcji, umożliwiających systemowi OS i programom aplikacyjnym modyfikowanie liczby, określającej ile razy mikrosterownik U2 ma rozświetlać diodę LED 23, np. jeśli system jest pobudzony przez dzwonek oraz odbiera się transmisję obrazów nieruchomych, to telekomunikacyjny program aplikacyjny może wywołać określoną funkcję systemu BIOS, aby dodać jedno błyśnięcie do grupy błysków. Zatem system BIOS powoduje, ze jednostka CPU 40 zapisuje nową liczbę błysków do mikrosterownika U2, który z kolei powoduje, ze dioda LED 23 błyska poleconą liczbę razy.
Sygnał POWERGOOD wchodzi na pin 4 (P3.1) mikrosterownika U2 i umożliwiając jego wykorzystanie przez mikrosterownik U2 i jednostkę CPU 40. W szczególności mikrosterownik wykorzystuje sygnał POWERGOOD do wprowadzenia układu detekcji błędów, opartej o sprzężenie zwrotne oraz ich korekcji w celu określenia, czy zasilacz 17 znalazł się w stanie błędu oraz w celu wyzerowania błędnych warunków. Jak opisano to w innym miejscu tej specyfikacji, jeśli sygnał ON został wystawiony na pewien okres czasu (np. trzy sekundy) oraz sygnał POWERGOOD jest w stanie logicznego 0, wskazując, że zasilacz 17 nie dostarcza regulowanych napięć o prawidłowych poziomach, to mikrosterownik U2 zakłada, ze zasilacz 17 jest w stanie błędu z powodu np. przeciążenia prądowego. Z kolei mikrosterownik U2, aby mieć możliwość wyzerowania błędnego warunku, przerywa wystawianie sygnału ON na pewien okres czasu (np. pięć sekund), aby umożliwić wyzerowanie błędu. Zatem, mikrosterownik U2 ponownie wystawia sygnał ON i oczekuje az sygnał POWERGOOD stanie się logiczną 1, wskazując, ze zasilacz 17 dostarcza regulowaną moc do systemu. Bez tej detekcji błędów opartej o sprzężenie zwrotne oraz ich korekcji, zasilacz 17 mógłby pozostać w błędnym stanie, a mikrosterownik U2 mógłby kontynuować wystawianie sygnału ON i dokonywać prób, aby zasilacz 17 zaczynał generowanie regulowanej mocy. Jedynym rozwiązaniem byłoby odłączenie zasilania AC od zasilacza 17 i wyzerowanie błędu.
Na fig. 6. przedstawiono alternatywny przykład wykonania układu detekcji i korekcji błędów zasilacza. Ten przykład wykonania wykorzystuje cztery tranzystory FET Q10 do Q13, rezystory R20 do 23, kondensator C20 i układ 74HC132 do wykrycia, kiedy zasilacz 17 jest w stanie błędu i wyzerowanie tego błędu. Tranzystor Q2 wymusza stan NISKI sygnału ON na okres czasu określony przez rezystor R22 i kondensator C20, natomiast kiedy sygnału ON jest w stanie WYSOKI, wtedy następuje zasilenie AUX5 a napięcie VCC pozostaje poniżej progu wyzwalającego tranzystor Qll, zerując tym samym błędny warunek w zasilaczu.
Sygnał ACTIYITY# wchodzi na pin 19 (INT1) mikrosterownika U2 i jest wykorzystywany przez mikrosterownik U2 odpowiednio do aktywności klawiatury 12 i myszki 13.
180 369
Sygnał IRQ1 jest sygnałem sprzętowego przerwania od klawiatury, który wchodzi na pin 8 (17) pierwszego układu PAL Ul, przy czym naciskając klawisz klawiatury 12 powoduje się pulsowanie sygnału IRQ1. Sygnał IRQ12 jest sygnałem sprzętowego przerwania od myszki, który wchodzi na pin 11 (19) pierwszego układu PAL Ul, przy czym przesuwając myszką 13 lub naciskając klawisz myszki 13 powoduje się pulsowanie sygnału IRQ12. Sygnały IRQ1 i IRQ12 są logicznie sumowane w pierwszym układzie PAL Ul i wychodzą, jako sygnał ACTIVITY#. Wykorzystanie sygnału ACTIYITY# nigdy me pozwala mikrosterownikowi U2 na pominięcie żadnego stanu aktywności klawiatury 12 lub myszki 13.
Podczas stanu gotowości, aktywność dowolnego przerwania powoduje, że mikrosterownik U2 natychmiast wznawia wyświetlanie na monitorze. Posłużenie się w ten sposób przerwaniami od sygnałów IRQ1 i IRQ12 daje użytkownikowi natychmiastowe sprzężenie zwrotne w postaci wznowienia wyświetlania na monitorze, po powrocie ze stanu gotowości 152 do normalnego stanu operacyjnego 150. Bez tego, użytkownik mógłby nie odebrać sprzężenia zwrotnego, możliwie, że dopiero po sekundach później, kiedy zarządzanie APM sprawdza aktywność użytkownika, jak to przedstawiono na fig. 9.
Komunikacja między sterownikiem CPU 40 i mikrosterownikiem U2 realizuje się przy użyciu sygnału SD(0), który wchodzi na pin 18 (1/06) pierwszego układu PAL Ul i wchodzi do mikrosterownika U2 poprzez linię RWDO, która wychodzi z pinu 13 (1/03) pierwszego układu PAL Ul i wchodzi na pin 13 (PLO) mikrosterownika U2, sygnału SD(1), który wchodzi na pin 14 (Pl.l) mikrosterownika U2, sygnału SD(2), który wchodzi na pin 15 (PI.2) mikrosterownika U2, sygnału SD(3), który wchodzi na pin 16 (PI.3) mikrosterownika U2, sygnału SD(4), który wchodzi na pin 6 (15) pierwszego układu PAL Ul, sygnału o STROBĘ#, który wchodzi na pin 18 (INT0) mikrosterownika U2 i sygnału PROC RDY, który wychodzi, z pinu 20 (PI.7) mikrosterownika U2. Pierwszy układ PAL Ul i mikrosterownik U2 są skonfigurowane i zaprogramowane aby dostarczać; (i) czterobitowe równoległe zapisy z jednostki CPU 40 do mikrosterownika U2 wzdłuż szyny SD(0) poprzez szyny RWDO, SD(1), SD(2) i SD(3) z jednym adresem, będącym w zasadzie jednobitowym zapisem do zerowania (ustawiania w stan początkowy) mikrosterownika U2 oraz innym, będącym półbajtem zapisywanym w mikrosterowniku U2, który jest ważny tylko wtedy, kiedy bit danych sygnału SD(4) jest w stanie WYSOKI oraz (ii) szeregowe (jednobitowe) odczyty z mikrosterownika U2 przez jednostkę CPU 40 wzdłuż szyny SD(0) poprzez szynę RWDO, z jednym adresem, odpowiadającym bitowi statusu i innym, odpowiadającym bitowi danych z mikrosterownika U2.
Odnosząc się teraz do fig. 19 - przedstawiono na niej kilka procedur wykonywanych przez mikrosterowmk U2 począwszy od etapu 1160. Mikrosterownik U2 zwykle wykonuje jedną z dwóch głównych procedur- Procedurę Włączenia Zasilania przy zadaniach od 1168 do 1216 lub Procedurę Wyłączenia Zasilania przy zadaniach od 1260 do 1308. Procedura Włączenia Zasilania wykonywana jest przez mikrosterownik U2, kiedy zasilacz 17 dostarcza regulowanej mocy poprzez szyny ± 5 i ± 12 lub zasilacz 17 nie dostarcza regulowanej mocy poprzez szyny ± 5 i ± 12, lecz system jest w trakcie włączania zasilania. Procedura Wyłączenia Zasilania wykonywana jest przez mikrosterownik U2, kiedy zasilacz 17 me dostarcza regulowanej mocy poprzez szyny ± 5 i ± 12 lub zasilacz 17 dostarcza regulowanej mocy poprzez szyny ± 5 i ± 12, lecz system jest w trakcie wyłączania zasilania. Ponadto występują trzy procedury sterowane przerwaniami: jedna do komunikacji z jednostką CPU 40 - od etapów 1220 do 1232, - jedna do wykrywania aktywności myszki 13 lub klawiatury 12 - od etapów 1236 do 1244 i jedna, która dostarcza podstawę czasu z rozdzielczością 25milisekund, pół sekundy oraz sekundową lub minutową- od etapów 1248 do 1256.
Po pierwsze, mikrosterownik U2 podlega inicjacji podczas etapu 1164, w trakcie którego inicjowane są wszystkie zmienne, zmienne licznikowe, a także inicjowane jest oraz zezwala się na przerwanie zegarowe, a także inicjowane są przerwania zewnętrzne, które sterują procedurą komunikacji i procedurą aktywności.
Procedura komunikacji jest procedurą sterowaną przerwaniami, zaczynającą się w etapie 1220, wykonującą się odpowiednio do stanu linii IO STROBĘ, której stan logicznego 0 wymusza pierwszy układ PAL Ul, stan ten wskazuje, ze jednostka CPU 40 rozpo
180 369 czyna polecenie lub zapytanie. W skrócie, procedura ta odbiera jedno lub więcej pół bajtowych poleceń lub zapytań z jednostki CPU 40, w etapie 1224 oraz wprowadza polecenie zwrotów danych, odpowiednio do zapytania, w etapie 1228 i zwraca sterowanie wykonywaniem programów do przerwanego kodu programowego w etapie 1232.
Mikro sterownik U2 kolejno odbiera półbajty z jednostki CPU 40, które tworzą polecenie lub zapytanie. Po odebraniu półbajtu mikrosterownik U2 wymusza przyjęcie stanu NISKI przez sygnał PROC RDY. Kiedy jest on gotowy do odbioru następnego półbajtu, wtedy wymusza on ponownie przyjęcie stanu WYSOKI przez sygnał PROC RDY. Po dostrzeżeniu przez jednostkę CPU 40 przejścia sygnału PROC RDY ze stanu NISKI do stanu WYSOKI, jednostka CPU 40 ; może z kolei zapisać następny półbajt polecenia.
Podczas gdy mikrosterownik U2 realizuje polecenie lub zapytanie odebrane z jednostki CPU 40, to nie może otrzymać innego polecenia, zatem mikrosterownik U2 ustawia linię PROC RDY w stan logicznego 0, wskazując jednostce centralnej CPU 40 (poprzez odczyt portu statusu), że mikrosterownik U2 nie może jeszcze zaakceptować następnego polecenia/zapytania. Kiedy skończy się ta realizacja, linia PROC RDY ustawiana jest w stan logicznej 1, wskazując jednostce centralnej CPU 40 (poprzez odczyt statusu portu), że mikrosterownik U2 jest gotowy do zaakceptowania następnego polecenia/zapytania.
Procedura aktywności jest procedurą sterowaną przerwaniami zaczynającą się przy etapie 1236, która wykonuje się odpowiadając na stan logicznego 0 linii ACTIVITY#, wymuszony przez pierwszy układ PAL Ul, który wskazuje, że użytkownik użył albo myszki 13, albo klawiatury 12. W skrócie, procedura ta odpowiadając na odebrane przerwanie: (i) ustawia bit, wskazujący ze wystąpiła aktywność albo myszki 13, albo klawiatury 12, (ii) odtwarza szybkość czasomierza, jeśli uaktywnione jest spowalnianie czasomierza, (iii) zapełnia ekran 11, jeśli dozwolone jest wygaszanie, (iv) ponownie uruchamia czasomierz odporny na uszkodzenia, (v) generuje przerwanie SMI skierowane do jednostki CPU 40, jeśli jest dozwolone, w etapie 1240. Ustawienie bitu przez tę procedurę podlega następnie na odpytaniu przez Procedurę Nadzorczą za każdym poleceniem podaj zdarzenie APM, jak jest to określone bardziej szczegółowo w innym miejscu tej specyfikacji.
Procedura czasomierza jest procedurą sterowaną przerwaniami zaczynającą się w etapie 1248, która wykonuje się odpowiednio do wewnętrznego przerwania czasomierza, przy czym wykorzystuje ona swobodny 16-bitowy licznik, skonfigurowany do generowania przerwań co 25 milisekund, aby dostarczyć podstawę czasu dla mikro sterownika U2. Procedura czasomierza zapewnia następujące podstawy czasu: 25-miłisekundowe, półsekundowe, sekundowe i minutowe. W skrócie, procedura ta odbiera przerwania, określa kiedy zaistniały różne chwile, wykonuje odpowiednie czynności w etapie 1252 i zwraca sterowanie wykonywaniem programów do przerwanego kodu w etapie 1256.
Co jeden impuls (co 25 milisekund), jeśli zasilacz nie dostarcza regulowanej mocy oraz, jeśli mikrosterownik skonfigurowany jest do odpowiadania na dzwonki (wywołania), procedura czasomierza sprawdza wystąpienie wywołania RS-232 na linii ΕΧΤ RING i ustawia bit, jeśli takie zajdzie.
Co pół sekundy, w czasie stanu wyłączenia albo stanu zawieszenia, procedura czasomierza określa, czy powinna przerzucić diodę LED 23, aby dokonać wprowadzenia wzbudzenia sekwencji migania wskaźnika zewnętrznego wywołania, jak jest to określone bardziej szczegółowo w innym miejscu tej specyfikacji.
Co sekundę, w czasie stanu gotowości, procedura czasomierza określa, czy powinna przerzucić diodę LED 23, aby dokonać wprowadzenia wzbudzenia sekwencji migania wskaźnika stanu zawieszenia, jak jest to określone bardziej szczegółowo w innym miejscu tej specyfikacji. (R)
Również co sekundę procedura czasomierza zmniejsza licznik czasomierza odpornego na uszkodzenie, zmniejsza licznik czasomierza APM zawieszenia spowodowanego uszkodzeniem i zmniejsza licznik czasomierza błędów zasilacza, jeśli ma to uzasadnienie oraz ustawia odpowiedni bit jeśli, nastąpiło wyczerpanie czasomierza. Czasomierz odporny na uszkodzenie jest czasomierzem 20 - sekundowym, który po wyczerpaniu okresu zliczania powoduje, że mikrosterownik U2 wyłącza zasilanie systemu. Czasomierz odporny na
180 369 uszkodzenia jest często uruchamiany ze stanem początkowym (jest zerowany) przez Procedurę Nadzorczą w odpowiedzi na polecenie APM - podaj zdarzenia, dlatego jak długo kod programowy wykonywany jest prawidłowo przez jednostkę CPU 40, czasomierz odporny na uszkodzenie nigdy nie wyczerpuje okresu swego zliczania. Jednakże, jeśli kod programowy przestaje wykonywać się prawidłowo, to czasomierz odporny na uszkodzenie wyczerpuje okres swego zliczania i odpowiednio do naciśnięcia lub zwolnienia przycisku mocy 21, mikrosterownik U2 powoduje przerwanie przez zasilacz 17, dostarczania regulowanej mocy na szynach ± 5 i ± 12 przy założeniu, że system BIOS i inne procedury nie działają prawidłowo.
Czasomierz APM zawieszenia spowodowanego uszkodzeniem jest 18-sekundowym zegarem uaktywnianym, gdy przełącznik 21 jest w stanie wyłączenia/zwolnienia wskazującym, ze użytkownik próbuje wyłączyć system i powodującym, ze system stara się zawiesić, po wyczerpaniu się okresu zliczania czasomierza, z nadzieją, że nastąpi to przed wyczerpaniem się czasomierza odpornego na uszkodzenie, powodującym, że mikrosterownik wyłączy system. Podobnie jak czasomierz odporny na uszkodzenie, tak czasomierz APM zawieszenia spowodowanego uszkodzeniem jest często uruchamiany ze stanem początkowym (zerowany) przez kod programowy, wykonywany przez jednostkę CPU 40, np. APM - Podaj Zdarzenia, APM - Działanie Nad Ostatnim Żądaniem, APM - Odrzucenie Ostatniego Żądania. Zatem, jak długo kod programowy wykonywany jest prawidłowo przez jednostkę CPU 40, tak długo czasomierz APM zawieszenia spowodowanego uszkodzeniem nigdy nie wyczerpuje okresu swego zliczania. Jednakże, jeśli kod programowy przestaje wykonywać się prawidłowo, to czasomierz APM zawieszenia spowodowanego uszkodzeniem wyczerpuje okres swego zliczania.
Kiedy czasomierz APM zawieszenia spowodowanego uszkodzeniem wyczerpie okres swego zliczania, wtedy mikrosterownik U2 ustawia bit. Bit ten podlega sprawdzaniu za każdym przerwaniem zegarowym poziomu 0, które pojawia się co około 55 milisekund. Ponadto procedura obsługi przerwania zegarowego poziomu 0 ponownie uruchamia czasomierz odporny na uszkodzenie. Jeśli procedura obsługi przerwania zegarowego poziomu 0 wykrywa, że czasomierz APM zawieszenia spowodowanego uszkodzeniem wyczerpał się, to przeskakuje ona do Procedury Zawieszenia próbując zawiesić system, jak opisano to w związku z fig. 10.
Zawieszenie rozpoczęte przez procedurę obsługi przerwania zegarowego poziomu 0 nie jest korzystną metodą dokonywania zawieszenia. Wiele programów aplikacyjnych i adapterów uwzględnia działanie APM i wykonuje zadania w odpowiedzi na zawieszenie systemu. Zawieszenie rozpoczęte przez procedurę obsługi przerwania zegarowego poziomu 0 nie może posłużyć się gospodarowaniem APM, aby wskazać tym uwzględniającym działanie APM jednostkom, że zawieszenie zbliża się. W związku z tym system ulega zawieszeniu bez prawidłowego przygotowania tych jednostek. Jako taki, system będzie zapamiętany poprzez zawieszenie rozpoczęte przez procedurę obsługi przerwania zegarowego poziomu 0, zatem dane z pamięci nie zostaną stracone; jednakże użytkownik może potrzebować przeładowania maszyny, aby umieścić system we właściwym stanie, po zapamiętaniu pożądanych danych.
Czasomierz APM zawieszenia spowodowanego uszkodzeniem jest szczególnie przydatny w łataniu dziur w sterowniku gospodarowania typu APM w systemie SO, np. kiedy wyświetlane jest modalne okienko dialogowe Microsoft Windows 3.1, wtedy sterownik Windows APM przestaje wydawać polecenia APM - podaj zdarzenia. Zatem, jeśli wyświetlane jest modalne okienko dialogowe, a użytkownik naciska przycisk mocy 21 próbując zawiesić system, to system nie zawiesi się. Mikrosterownik U2 zauwazy, ze przełącznik jest w stanie wyłączenia/zwolnienia, lecz Procedura Nadzorcza nie zostanie wywołana, ponieważ przestały pojawiać się polecenia APM - podaj zdarzenia.
Naciśnięcie przełącznika nie zadziała, dopóki modalne okienko dialogowe nie zostanie wyzerowane przez użytkownika. Jednakże, jeśli kiedyś wyczerpie się czasomierz APM zawieszenia spowodowanego uszkodzeniem, przy czym jeśli to wyczerpanie zostanie wykryte przez procedurę obsługi przerwania zegarowego poziomu 0, to stan systemu zostanie
180 369 zapamiętany w zakresie możliwości, bez sygnalizowania tego jednostkom uwzględniającym działanie APM, że system jest zawieszany.
Co minutę procedura czasomierza zmniejsza liczbę minut do pobudzenia czasomierza alarmowego i czasomierza aktywności. Kiedy wyczerpią się minuty do pobudzenia czasomierza alarmowego, jeśli uaktywniony, to mikrosterownik spowoduje, ze zasilacz 17 rozpocznie dostarczanie regulowanej mocy na szynach ± 5 i ± 12.
Po zainicjalizowaniu mikro sterownika U2, zasilacz 17 podlega testowaniu, w etapie 1168, aby określić, czy zasilanie jest wyłączone. Jeśli zasilanie jest jeszcze włączone, to mikrosterownik U2 sprawdza, czy zasilacz 17 nie uległ uszkodzeniu, w etapie 1172. Zasilacz 17 ma kilka wewnętrznych układów zabezpieczeń, które powodują zamknięcie systemu lub błąd. Mikrosterownik U2 określa, czy zasilacz 17 działa błędnie jak następuje: jeśli mikrosterownik działa (wskazując, że linia AUX5 jest zasilana, to znaczy zasilanie AC jest dostarczane do zasilacza 17) i mikrosterownik U2 wystawia sygnał ON, przy próbie spowodowania dostarczania regulowanej mocy przez zasilacz 17 na szynach ± 5 i ± 12 , przy czym linia POWERGOOD nie jest wystawiana wskazując, że zasilacz 17 nie dostarcza regulowanej mocy na szynach ± 5 i ± 12), wtedy zasilacz 17 działa błędnie i musi być ustawiony w stan początkowy (wyzerowany).
W ETAPIE 1172, zasilacz 17 podlega faktycznie dwukrotnemu testowaniu. Mikrosterownik U2 wystawia sygnał ON i następnie czeka przez trzy sekundy, jak jest to mierzone w oparciu o wewnętrzną podstawę czasu. Kiedy sygnał POWERGOOD nie jest wystawiany po wystawieniu sygnału ON przez około trzy sekundy, wtedy mikrosterownik U2 zeruje sygnał ON i czeka następne pięć sekund. Następnie wystawia on sygnał ON i czeka następne trzy sekundy. Jeśli sygnał POWERGOOD nie jest wystawiany po wystawieniu , sygnału ON przez trzy sekundy, to mikrosterownik U2 zeruje sygnał ON, uznając, że zasilacz 17 działa błędnie. Jeśli zasilacz 17 działa błędnie, to mikrosterownik U2 przeskakuje do Procedury Wyłączenia Zasilania, jak wskazano w etapie 1174. Z drugiej strony, jeśli zasilacz 17 nie pracuje błędnie lub jest wyłączony, to mikrosterownik powoduje, że zasilacz 17 zaczyna dostarczać regulowaną moc na szynach ± 5 i ± 12, w etapie 1175 oraz inicjalizuje porty we/wy, włącza diodę LED 23 i uaktywnia przerwania zewnętrzne, w etapie 1176.
Figura 7 przedstawia automat stanów przełącznika podtrzymywanych przez mikrosterownik U2. Jak przedstawiono na fig. 7, zmiana stanów w odpowiedzi na zdarzenia zamknięcia przełącznika 21 i inne zdarzenia, takie jak ustawianie w stan początkowy systemu komputerowego 10 i zapisywanie dokonywane przez jednostkę CPU 40. Przy sygnale AUX5 nie dostarczanym przez zasilacz 17, mikrosterownik U2 nie jest zasilany, zatem stan przełącznika nie ma znaczenia, w etapie 174. Naciśnięcie przełącznika 21, dzwonek telefoniczny z dowolnego źródła, wyczerpanie się czasu w minutach do pobudzenia czasomierza alarmowego oraz polecenie z jednostki CPU 40 do mikrosterownika U2 powodują rozpoczęcie dostarczania przez zasilacz 17 mocy do systemu, jak jest to opisane w związku z fig. 6.
Jak przedstawiono na fig. 7, przełącznik 21 ma cztery stany monitorowane przez mikrosterownik U2: (i) stan włączenia/naciśnięcia 176 (w którym użytkownik przytrzymuje przycisk i próbuje włączyć maszynę), (ii) stan włączenia/zwolnienia 178 (w którym użytkownik zwolnił przycisk i próbuje włączyć maszynę), (iii) stan wyłączenia/naciśnięcia 180 (w którym użytkownik przytrzymuje przycisk i próbuje wyłączyć maszynę), (iv) stan wyłączenia/zwolnienia 182 (w którym użytkownik zwolnił przycisk i próbuje wyłączyć maszynę). Następnie, w etapie 1180, mikrosterownik U2 testuje, czy przełącznik jest w stanie wyłączony/zwolniony, wskazując, że użytkownik zwolnił przycisk i próbuje wyłączyć maszynę.
Kiedy w stanie 174 naciśnie się przełącznik 21, wtedy mikrosterownik U2 wchodzi do stanu przełącznika włączenie/naciśnięcie 176. Zwolnienie przełącznika 21 powoduje, ze mikrosterownik U2 wchodzi do stanu, przełącznika włączenie/zwolnienie 178. Podobnie, kiedy mikrosterownik U2 zostanie ustawiony w stan początkowy, wtedy wchodzi ON do stanu włączenia/zwolnienia 178. Poprzez ponowne naciśnięcie przełącznika 21, powoduje się, ze mikrosterownik U2 wchodzi do stanu przełącznika wyłączenie/zwolnienie 182. Zatem kolejne zamykania przełącznika 21 powodują przechodzenie mikrosterownika U2 przez
180 369 cykl czterech stanów, jak przedstawiono na fig. 7. Mikrosterownik U2 jest w stanie włączenia/zwolnienia 178, gdy system komputerowy 10 znajduje się w normalnym stanie operacyjnym 150. Programy aplikacyjne będą działać w tym stanie. W stanie tym system może wejść do i wyjść ze stanu gotowości 152. Stan ten więc odpowiada wygenerowanemu przez użytkownika żądaniu przerwania stanu zawieszenia. Stan przełącznika wyłączenie/zwolnienie jest stanem odpowiadającym żądaniu zawieszenia zgłoszonym przez użytkownika. Zatem, uruchamiając system w stanie wyłączenia 156 oraz jednokrotnie naciskając i zwalniając przełącznik 21 umieszcza się system komputerowy w normalnym stanie operacyjnym 150. Naciskając i zwalniając przełącznik 21 jeszcze raz generuje się żądanie zawieszenia, które jest odczytywane przez Procedurę Nadzorczą i której działanie przedyskutowano dokładniej w związku z fig. 9. Naciskając i zwalniając przełącznik 21 trzeci raz, zanim system znajdzie się w stanie zawieszenia 154, generuje się żądanie przerwania zawieszania, które odczytuje Procedura Nadzorcza.
Odnosząc się z powrotem do fig. 19, jeśli użytkownik zwolnił przycisk i próbuje wyłączyć maszynę, to mikrosterownik U2 przeskakuje do Procedury Wyłączania Zasilania, jak przedstawiono w etapie 1184.
Z drugiej strony, jeśli przycisk znajduje się w stanie wyłączenie/naciśnięcie, wskazującym, że użytkownik przytrzymuje przycisk próbując wyłączyć maszynę, to mikrosterownik U2 bada, czy stan przełącznika został zamaskowany przez system BIOS, w etapie 1192. System BIOS maskuje stan przełącznika jeden raz na wejście do stanu gotowości 152, zapobiegając naciśnięciu przełącznika, wymuszającego przejście systemu ze stanu gotowości do stanu zawieszenia, przeciwdziałając dezorientacji użytkownika, jak objaśniono to w innym miejscu.
Jeśli, stan przełącznika 21 został zamaskowany przez system BIOS, to kod programowy mikrosterownika przeskakuje z powrotem do etapu 1176 i zeruje bit maski, umożliwiając następnemu naciśnięciu przełącznika spowodowanie wejścia systemu albo do stanu wyłączenia, albo do stanu zawieszenia. Z drugiej strony, jeśli nie został zamaskowany lub przełącznik nie jest w stanie wyłączenia/naciśnięcia, to mikrosterownik wykonuje procedurę sprawdzającą poprawność jego pracy (procedura poprawności - wykrywania kolizji) w etapie 1196.
Procedura poprawności służy do wskazywania jednostce centralnej CPU 40, że mikrosterownik U2 działa poprawnie. Wyjście linii CMD STATE# mikrosterownika (pin 17, PI.4) jest normalnie logiczną 1. Co 50 -60 mikrosekund mikrosterownik U2 wymusza logiczne 0 na tej linii na około 1,5 mikrosekundy, a następnie podnosi stan tej linii do logicznej 1. Ze względu na to, ze status portu gospodarowania zasilaniem, odczytywany przez jednostkę CPU 40 jest logicznym iloczynem stanu linii CMD STATE# i PROC RDY, to każde przejście ze stanu WYSOKI do stanu NISKI i z powrotem może być tak często monitorowane przez jednostkę CPU 40, np., gdy system ładuje się, po to, aby zagwarantować, że mikrosterownik U2 działa prawidłowo.
Następnie, mikrosterownik U2 sprawdza, czy system wydał polecenie wyłączenia zasilania, etapie 1200. Jednostka CPU 40 może uzyskiwać dostęp do każdej zmiennej w mikrosterowniku U2 oraz mieć właściwie możliwość ich zmiany. Jeśli system BIOS ustawił zmienną wskazującą, ze zasilanie systemu powinno być wyłączone, np. po tym, gdy nastąpiło zapisanie stanu systemu na twardym dysku 31 podczas zawieszenia, to mikrosterownik U2 przeskakuje do Procedury Wyłączenia Zasilania, jak wskazano to w etapie 1204.
Z drugiej strony, jeśli system BIOS nie wydał polecenia wyłączenia zasilania, to mikrosterownik U2 wykonuje Procedurę OdpornąNa Uszkodzenia w etapie 1204.
Czasomierz odporny na uszkodzenia jest 20-sekundowym zegarem, który jest uaktywniany, gdy zasilacz 17 dostarcza regulowaną moc na szynach ± 5 i ± 12. Procedura ta sprawdza, czy licznik czasomierza odpornego na uszkodzenia wyczerpał się, i ustawia bit, gdy tak się stało. Procedura ta ponownie uruchamia czasomierz odporny na uszkodzenia, jeśli system BIOS poleci to zrobić.
180 369
Następnie w etapie 1212, w celu synchronizacji mikrosterownika z zasilaczem 17, mikro sterownik sprawdza, linię POWER GOOD w celu wykrycia, czy zasilacz 17 nadal dostarcza regulowaną moc na szynach ± 5 i ± 12.
Jeśli zasilacz 17 nie dostarcza regulowanej mocy na szynach ± 5 i ± 12, to mikrosterownik U2 przeskakuje do Procedury Wyłączenia Zasilania, jak przedstawiono w etapie 1216. Z drugiej strony, jeśli zasilacz 17 dostarcza regulowaną moc na szynach ± 5 i ± 12, to kod programowy mikrosterownika przeskakuje z powrotem do etapu 1180 i kontynuuje działanie
Procedura Wyłączenia Zasilania zaczyna się w etapie 1260. Po pierwsze mikrosterownik U2 blokuje przerwanie aktywności w etapie 1264, aby zabezpieczyć ekran przed wygaszaniem,
Następnie, w etapie 1268 mikrosterownik sprawdza stan linii POWER GOOD w celu wykrycia, czy zasilacz 17 nadal dostarcza regulowaną moc na szynach ± 5 i ± 12. Jeśli zasilacz 17 dostarcza regulowaną moc na szynach ± 5 i ± 12, to mikrosterownik U2 bada, czy ekran powinien być wygaszony i/lub wyłączona dioda LED 23, w etapie 1272. Jeżeli tak, to mikrosterownik U2 powoduje że sterownik wizji 56 wygasza sygnał wizji i/lub wyłącza diodę LED 23.
Od tego czasu, gdy nie przewiduje się, żeby dioda LED 23 oraz ekran były wygaszone, mikrosterownik bada, czy system BIOS polecił włączyć system z powrotem poprzez ustawienie bitu lub użytkownik polecił włączyć system z powrotem poprzez ponowne naciśnięcie przycisku mocy 21. Jeśli, żaden z powyższych warunków nie zachodzi, to oznacza, ze system ma być z powrotem włączony i mikrosterownik U2 przeskakuje do Procedury Włączenia Zasilania, jak wskazano to w etapie 1284.
Następnie, mikrosterownik określa, czy pojawił się sygnał dzwonka na linii ΕΧΤ WAKEUP# z transoptora OPTO1. Pociąga to za sobą zwykłe sprawdzenie za pomocą linii RS232, czy linia ΕΧΤ WAKEUP# ma stan WYSOKI, zaś dla sygnału z transoptora OPTO1 sprawdzenie stanu przez mikrosterownik U2. Linia ΕΧΤ WAKEUP# ma normalnie stan WYSOKI wymuszany przez rezystor R5. Transoptor OPTO1 wymusza stan linii na NISKI, jeśli napięcie na liniach a/b jest wyzsze niz próg napięciowy ustawiony przez układ zabezpieczenia przepięciowego 905, np. 60 V, gdy linia telefoniczna wystawia sygnał dzwonka. Jednakże, warunek ten może być również spełniony, gdy linia telefoniczna podlega testowaniu lub w wyniku szumu na linii. Zatem zwykłe czekanie na stan NISKI linii ΕΧΤ WAKEUP# może zezwolić na zadziałanie fałszywego sygnału dzwonka (wywołania), który pobudzi system.
Zatem, poprzez mierzenie częstotliwości sygnału dzwonka (wywołania), mikrosterownik określa czy sygnał jest sygnałem dzwonka (wywołania). Sygnał dzwonka według standardów jest sygnałem o częstotliwości od 16 Hz do 58 Hz. Mikrosterownik U2 mierzy trzy okresy czasu między czterema narastającymi zboczami sygnału ΕΧΤ WAKEUP#, przy czym, jeśli wszystkie trzy okresy odpowiadają częstotliwości od 15,1 Hz do 69 Hz, to mikrosterownik U2 uznaje, ze pojawił się prawidłowy sygnał dzwonka na tej linii i ustawia odpowiedni bit.
Procedura sprawdzania rozpoczyna się po wykryciu na linii ΕΧΤ WAKEUP# stanu NISKI. Jeśli stan NISKI na tej linii utrzymuje się podczas trzech kolejnych odczytów, to mikrosterownik U2 oczekuje az linia powróci do stanu WYSOKI na trzy kolejne odczyty. Bezpośrednio po tym, podlega odczytowi 16-bitowy licznik, który tworzy podstawy dla przerwania zegarowego, a odczytana wartość jest zapamiętywana, przy czym mikrosterownik U2 oczekuje na przejście linii do stanu NISKI przez kolejne trzy odczyty. Następnie mikrosterownik U2 bada, czy okres czasu między pierwszymi dwoma zboczami mieści się w przedziale między 15 milisekund a 66 milisekund, wskazując, ze częstotliwość sygnału wynosi od 15,1 Hz do 69,1 Hz. Jeśli tak, to licznik o wysokiej rozdzielczości jest próbkowany ponownie, a mikrosterownik oblicza różnicę między dwoma próbkami licznika, gdy czeka na następne przejście ze stanu NISKI na WYSOKI. Proces powtarza się dla następnych dwóch przejść ze stanu NISKI na WYSOKI na linii ΕΧΤ WAKEUP#. Jeśli wszystkie trzy okresy czasu mieszczą się w podanym zakresie, to mikrosterownik U2 uznaje, że na
180 369 linii pojawił się prawidłowy sygnał dzwonka i ustawia odpowiedni bit. Jeśli nie ma stanu NISKI na linii ΕΧΤ WAKEUP# lub, jeśli dowolny z tych okresów czasu jest spoza podanego zakresu, to kontynuuje się realizację kodu, programowego mikrosterownika, bez ustawiania bitu. Następnie mikrosterownik bada, czy wystąpił sygnał dzwonka lub wyczerpał się licznik minutowy do alarmowego pobudzenia w etapie 1286. Dla sygnału dzwonka RS 232, sygnału dzwonka z transoptora lub sygnału z licznika minutowego do alarmowego pobudzenia pociąga to za sobą sprawdzenie przez mikrosterownik U2, czy jest ustawiony stowarzyszony bit.
Jeśli wystąpił sygnał dzwonka lub wyczerpał się licznik minutowy do alarmowego pobudzenia, to następuje z powrotem załączenie zasilania systemu, a mikrosterownik U2 przeskakuje do Procedury Włączania Zasilania, jak wskazano to w etapie 1287.
Od tego czasu, w etapie 1288, mikrosterownik sprawdza, czy zasilacz 17 dostarcza regulowaną moc na szynach ± 5 i ± 12. Jeśli nie, to kod programowy przeskakuje z powrotem do etapu 1280 i pętla zaczyna się od nowa. Z drugiej strony jeśli zasilacz 17 dostarcza regulowaną moc na szynach ± 5 i ± 12, to mikrosterownik U2 wykonuje procedurę sprawdzania, w etapie 1292 oraz procedurę odporności na uszkodzenia, przy 1296. Działanie obu tych procedur było przedyskutowane w tekście towarzyszącym odpowiednim etapom 1196i 1208.
Jedynie w trzech sytuacjach mikrosterownik U2 powoduje zatrzymanie dostarczania regulowanej mocy przez zasilacz 17 na szynach ± 5 i ± 12: (i) system BIOS polecił natychmiastowe wyłączenie zasilania, zaimplementowane poprzez procedurę komunikacyjną, (ii) czasomierz odporny na uszkodzenia uległ wyczerpaniu lub (iii) użytkownik naciska przycisk mocy a znacznik Zezwolenia Zawieszenia w mikrosterowniku U2 nie jest ustawiony, przy czym odczytuje się warunek, dla którego mikrosterownik U2 za każdym razem bada sygnał wejściowy SWITCH. Zatem mikrosterownik U2 bada, czy czasomierz odporny na uszkodzenia uległ wyczerpaniu w etapie 1300, jeśli nie, to kod programowy przeskakuje z powrotem do etapu 1280 i ponownie zaczyna pętlę.
Z drugiej strony, jeśli czasomierz odporny na uszkodzenia uległ wyczerpaniu, wskazując, że zasilanie systemu ma zostać wyłączone, to mikrosterownik U2 generuje przerwanie SMI do jednostki CPU 40, w etapie 1304, jeśli jest to dozwolone. Umożliwia to jednostce CPU 40 wykonanie pewnych zadań przy założeniu, że zasilanie systemu ma być wyłączone natychmiast po ich wykonaniu, np. jednostka CPU 40 ponownie oblicza i zapisuje do mikrosterownika U2 zaktualizowaną liczbę minut, służącą do alarmowego pobudzenia.
Jeśli jednostka CPU 40 nie podejmuje żadnej dalszej czynności, to mikrosterownik wyłącza zasilanie systemu po wyczerpaniu się programowanego czasomierza przerwania SMI. Jednostka CPU 40 może przedłużyć ten okres czasu poprzez ponowne uruchomienie czasomierza SMI, wpisując odpowiednią wartość do mikrosterownika U2.
Zatem, a także, jeśli badanie w etapie 1286 wskaze, że zasilacz nie dostarcza prawidłowej mocy (prawidłowego zasilania), to mikrosterownik U2 wyłącza zasilanie systemu w etapie 1308. Pociąga to za sobą: (i) spowodowanie zatrzymania dostarczania regulowanej mocy przez zasilacz 17 na szynach ± 5 i ± 12, (ii) zablokowanie przerwania komunikacyjnego, ponieważ jednostka CPU 40 ma właśnie utracić zasilanie, (iii) ustawienie portów wyjściowych (oprócz sygnału ON) w stan WYSOKI, aby zminimalizować ich zuzycie mocy (w tym trybie mikrosterownik U2 może jeszcze odczytywać sygnały SWITCH, ΕΧΤ RING, ΕΧΤ WAKEUP itd.), (iv) takie ustawienie zmiennej wyłączenie zasilania, ze na jej podstawie pozostałe procedury zauważą wyłączenie zasilania systemu i (v) taką zmianę stanu przełącznika do stanu wyłączenie/zwolnienie, ze następne naciśnięcie włączy ponownie zasilanie systemu.
Od tej chwili kod programowy przeskakuje z powrotem do etapu 1280 i ponownie zaczyna pętlę w oczekiwaniu na sygnał dzwonka (wywołania), naciśnięcie przełącznika, polecenie systemu BIOS, aby pobudzić system lub na wyczerpanie się licznika minut do alarmowego pobudzenia.
Po opisaniu aspektów sprzętowych systemu komputerowego 10 teraz pozostają do opisania aspekty kodu programowego.
180 369
Odnosząc się do fig. 8 - przedstawiono na niej sieć działań procedury włączania zasilania. Procedura zaczyna się w etapie 200, gdy jednostka CPU 40 przeskakuje do wykonania kodu wskazanego przez Wektor Ustawienia Stanu Początkowego (w skrócie wektor zerowania). Zachodzi to za każdym razem, gdy następuje podanie zasilania do jednostki CPU lub kiedykolwiek następuje ustawienie stanu początkowego tej jednostki CPU poprzez sygnał sprzętowego ustawienie stanu początkowego lub gdy wykonywana jest instrukcja RESET poprzez skok do kodu, wskazanego przez wektor zerowania (wektor ustawienia stanu początkowego). Takie procedury ustawiania stanu początkowego są dobrze znane w przedmiotowej dziedzinie techniki.
Przede wszystkim, przebieg Procedury Włączania, zasilania zalezy od tego, dlaczego następuje włączenie zasilania maszyny. Jak będzie to objaśnione bardziej szczegółowo w odniesieniu do fig. 11, system 10 mógłby być włączany przy ograniczonym poborze mocy lub braku zasilania. W takiej sytuacji byłoby niewłaściwie pozwolić na pozostawanie systemu w stanie włączenia. Zatem, Procedura Włączania Zasilania określa, czy pozwolić na pozostawanie systemu w stanie włączenia w etapie 940. Jeśli przy włączeniu zasilania, system nie został zasilony prawidłowo, to jednostka CPU 40 poleca mikrosterownikowi U2 spowodować, aby zasilacz zatrzymał dostarczanie regulowanej mocy do systemu w etapie 942.
Sprawdzenie - wykonywane przy określaniu, czy system ma pozostać włączony - ma potwierdzić, że linia telefoniczna przenosi sygnał dzwonienia, gdy system został włączony w odpowiedzi na to, co mikrosterownik U2 uznał za sygnał dzwonka (wywołania). W szczególności, po włączeniu zasilania systemu, jeśli system został pobudzony w odpowiedzi na sygnał dzwonka, podczas oczekiwania systemu na rozpędzenie się dysku stałego w napędzie dysku stałego 31, jednostka CPU 40 odpytuje modem 900 lub 902, które są obecnie w pełni zasilane, czy to wykrycie sygnału dzwonka jest poprawne. Jeśli nie, to następuje wyłączenie zasilania systemu. Jeśli modem 900 albo 902 również wykrywa sygnał dzwonka, to system ma nie przerywać kontynuacji procesu ładowania.
Zakładając, że system ma być zasilany, przebieg działania Procedury Włączania Zasilania zależy ogólnie od tego, czy system jest w stanie wyłączenia 156, czy w stanie zawieszenia 154. To jest, zależy to czy Znacznik Zawieszenia odpowiednio jest wyzerowany lub ustawiony w pamięci CMOS NVRAM 96. Jak przedstawiono w etapie 202, system 10 określa, czy jest ON w stanie wyłączenia 156, czy w stanie zawieszenia 154 poprzez odczyt Znacznika Zawieszenia z trwałej pamięci CMOS 96. Jeśli system opuszcza normalny stan operacyjny 150 albo do stanu wyłączenia 156, albo do stanu zawieszenia 154 - każda procedura albo ustawia, albo zeruje Znacznik Zawieszenia w pamięci CMOS NVRAM 96. Jeśli Znacznik Zawieszenia jest ustawiony w pamięci NVRAM 96, to system komputerowy 10 jest w stanie zawieszenia 154 a stan systemu komputerowego został zapamiętany w urządzeniu pamięciowym ze stałym dyskiem 31. Z drugiej strony, jeśli Znacznik Zawieszenia jest wyzerowany w pamięci NVRAM 96, to system komputerowy 10 jest w stanie wyłączenia 156 a stan systemu komputerowego nie został zapamiętany w urządzeniu pamięciowym ze stałym dyskiem 31. Stąd, jeśli Znacznik Zawieszenia jest ustawiony w pamięci NVRAM 96, to komputer , wykonuje normalną procedurę ładowania, przedstawioną w etapach 204 - 210. Pierwsze zadanie, to wewnętrzny test po włączeniu (POST), jak przedstawiono w etapie 204, zadanie to będzie objaśnione bardziej szczegółowo w odniesieniu do fig. 11, przy czym po zakończeniu wykonywania testu POST, jednostka CPU 40 wywołuje Procedurę PBOOT, aby załadować system operacyjny, jak przedstawiono w etapie 206.
Procedura PBOOT to typowa procedura, która działa w komputerach firmy IBM z drobnymi zmianami, które będą objaśnione poniżej. Procedura PBOOT określa skąd inicjować, (albo z napędu dysku stałego 31 albo z dyskietki znajdującej się w napędzie dyskietek 27) oraz ładować system operacyjny, który analizuje i wprowadza zmiany systemowe, zgodnie z instrukcjami zawartymi w pliku CONFIG.SYS oraz w końcu wykonuje plik wsadowy AUTOEXEC.BAT. Procedura PBOOT jest dobrze znana w przedmiotowej dziedzinie techniki. System SO dokonuje załadowania sterownika urządzenia APM, który przepytuje system BIOS, aby sprawdzić, czy system ten uwzględnia istnienie APM. Jeśli tak, to procedura systemu BIOS APM i procedura SO APM wykonują uzgodnienia i od tej chwili
180 369 współpracują, aby dostarczyć różne właściwości tu opisane. System operacyjny wykonuje kod programowy w sposób nieograniczony zgodnie z instrukcjami użytkownika, jak przedstawiono w etapie 210. Jednakże konsekwencją poinformowania interfejsu API Procedur}' Nadzorczej jest to, ze system BIOS APM i system operacyjny APM powodują, ze Procedura Nadzorcza wykonuje się równolegle z programami wykonawczymi, jak wskazano w etapie 212. Oznacza to, ze system 10 jest systemem wielozadaniowym z mulipleksowaniem czasu, przy czym APM - podaj zdarzenie (APM Get Event) i w konsekwencji Procedura Nadzorcza są wykonywane periodycznie. Końcowym efektem jest to, ze Procedura Nadzorcza wykonuje się co około jedną sekundę. Procedura Nadzorcza będzie w pełni objaśniona w związku z fig. 9. Po zakończeniu normalnej procedury ładowania w etapach 204 do 210, system komputerowy 10 jest w normalnym stanie operacyjnym 150, jak to przedyskutowano w związku z fig 4.
Odnosząc się ponownie do etapu 202, jeśli Znacznik Zawieszenia jest ustawiony w pamięci NVRAM 96, to stan systemu został zapamiętany w napędzie dysku stałego 31, a system 10 wykonuje procedurę wznowienia inicjowania, przedstawioną w etapach 214 do 220. Po pierwsze, system wykonuje skrócony test POST, jak wskazano poprzez 214. Skrócony test POST będzie objaśniony pełniej w odniesieniu do fig. 11. Po wykonaniu skróconego testu POST, system wywołuje Procedurę Wznowienia, jak przedstawiono poprzez 216. Procedura Wznowienia będzie uszczegółowiona w tekście związanym z fig. 12. Wystarczy powiedzieć, że Procedura Wznowienia odtwarza stan systemu 10, zgodnie z jego konfiguracją sprzed zawieszenia systemu. Inaczej niz procedura normalnego inicjowania, wskazana poprzez etapy 204 do 210, procedura wznowienia inicjowania nie potrzebuje informować interfejsu API APM o obecności Procedury Nadzorczej, ponieważ procedura APM musi być w stanie działania, aby zawiesić system oraz kiedy system jest odtwarzany, wtedy system gospodarowania APM podlega załadowaniu do pamięci. Stąd, kiedy Procedura Wznowienia skończy odtwarzanie systemu 10, wtedy gospodarowanie APM jest już na miejscu i działa z odtworzonym kodem programowym, jak jest to wskazane w etapach 212 i 220. Po skończeniu procedury wznowienia inicjowania w etapach 214 do 220, system komputerowy 10 jest w normalnym stanie operacyjnym 150, jak przedyskutowano to w odniesieniu do fig 4. Stąd, po wykonaniu albo procedury normalnego inicjowania w etapach 204 do 210, albo procedury wznowienia inicjowania w etapach 214 do 220 system komputerowy 10 jest w normalnym stanie operacyjnym 150.
Fig. 9 przedstawia sieć działań Procedury Nadzorczej, wywoływanej przez APM co około jedną sekundę podczas Podaj Zdarzenie. Różne systemy operacyjne będą wykonywać Podaj Zdarzenie z różną częstotliwością.
Procedura Nadzorcza zaczyna się w etapie 222 na fig. 9, W tekście poniżej zakłada się, ze system komputerowy 10 rozpoczyna działanie od normalnego stanu operacyjnego 150. Pierwszym zadaniem jest sprawdzenie, w etapie 224, czy użytkownik nacisnął przełącznik 21. Stan przełącznika 21 jest sprawdzany przez jednostkę CPU 40, która przepytuje mikro sterownik U2, jak to pełniej opisano w odniesieniu do fig. 6A i fig. 7.
Jeśli sprawdzenie w etapie 224, wskazuje, ze użytkownik nacisnął przełącznik 21, to Procedura Nadzorcza określa następnie, czy Żądanie Zawieszenia zostało poprzednio skierowane do sterownika urządzenia APM w określonym systemie operacyjnym w etapie 950.
Jeśli sprawdzenie w etapie 950, wskazuje, że Żądanie Zawieszenia nie zostało jeszcze wysłane do sterownika urządzenia APM, to Procedura Nadzorcza wydaje Żądanie Zawieszenia skierowane do sterownika urządzenia APM S0, w etapie 226 i następnie wraca do sterownika APM w etapie 228. W odpowiedzi na ustawę Kod Powrotny APM Żądanie Zawieszenia, sterownik APM rozgłasza o nadchodzącym zawieszeniu tak, ze urządzenia uwzględniające działanie APM mogą wykonywać konieczne zadania systemowe (takie, jak synchronizacja znakowa twardych dysków) oraz wydaje następnie Polecenie Zawieszenia, które powoduje, ze Procedura Trasowania systemu BIOS APM, wywołuje Procedurę Zawieszenia. Procedura Zawieszenia opisana jest w odniesieniu do fig. 10. Procedura Zawieszenia powoduje w zasadzie to, ze system 10 opuszcza normalny stan operacyjny 150 i wchodzi do stanu zawieszenia 154 i może zwrócić sterowanie do Procedury Nadzorczej po
180 369 kilku instrukcjach (jeśli system nie jest gotowy, aby być zawieszony) po kilku minutach, godzinach, dniach, tygodniach lub latach później (jeśli nastąpi zawieszenie oraz wznowienie systemu). Procedura Zawieszenia zawsze ustawia Kod Zwrotny APM Normalne Wznowienie, niezależnie od tego, czy Procedura Zawieszenia wraca bez zawieszenia, czy wraca po ukończonym zawieszeniu i wznowieniu.
Często w etapie 224, jeśli przełącznik 21 nie został naciśnięty, to Procedura Nadzorcza przechodzi do etapu 952, aby określić, czy ustawiony jest Znacznik Krytycznego Zawieszenia. Podobnie, jeśli Żądanie Zawieszenia zostało poprzednio wysłane do sterownika APM w systemie SO, to Procedura Nadzorcza następnie przechodzi do etapu 952, aby określić, czy ustawiony jest Znacznik Krytycznego Zawieszenia. Jeśli ustawiony jest Znacznik Krytycznego Zawieszenia, to Procedura Nadzorcza bada następnie, czy Żądanie Krytycznego Zawieszenia zostało poprzednio wysłane do sterownika APM, w etapie 954.
Jeśli Żądanie Krytycznego Zawieszenia nie zostało wysłane do sterownika APM, to Procedura Nadzorcza wydaje Kod Zwrotny APM Żądania Krytycznego Zawieszenia w etapie 956 i następnie wraca do sterownika APM w etapie 958. W odpowiedzi na Żądanie Krytycznego Zawieszenia, sterownik APM natychmiast zawiesza system, bez rozgłaszania, ze zbliza się zawieszenie, przy czym od tej chwili urządzenia, uwzględniające istnienie APM, nie mogą wykony wać swoich poszczególnych zadań poprzedzających zawieszenie.
Jeśli nie jest ustawiony ani Znacznik Krytycznego Zawieszenia w etapie 952, ani nie zostało wydane Żądanie Krytycznego Zawieszenia do sterownika APM w systemie SO w etapie 954, to Procedura Nadzorcza określa następnie, czy Zawieszenie nie zostało załatwione przez dłużej niż 15 sekund w etapie 957. Jeśli tak, to Procedura Nadzorcza ustawia Znacznik Krytycznego Zawieszenia w etapie 958, powodując skutkiem tego, że sprawdzenie w trakcie etapu 954, będzie wykonane podczas następnego APM - Podaj Zdarzenie.
Od tego czasu lub, jeśli Zawieszenie nie zostało załatwione przez okres krótszy niż 15 sekund, to Nadzorca sprawdza, czy, Zawieszenie nie zostało załatwione w etapie 959. Jeśli tak, to jednostka CPU 40 powoduje, ze mikrosterownik U2 ponownie uruchamia (ustawia w stan początkowy) czasomierz odporny na uszkodzenia i czasomierz APM zawieszenia spowodowanego błędami w etapie 960.
Od tego czasu lub, jeśli Zawieszenie zostało załatwione, to Procedura Nadzorcza przechodzi następnie do etapu 230, aby sprawdzić, czy system został właśnie wznowiony. Jeśli wywołana zostaje Procedura Zawieszenia, to system uznaje, ze został on właśnie wznowiony niezależnie od tego, czy Procedura Zawieszenia wraca bez zawieszenia, czy wraca po zakończeniu zawieszenia i wznowieniu. Wznowienie podlega sprawdzeniu w etapie 230 i, jeśli system został właśnie wznowiony (lub zawieszenie nie zostało wykonane z uwagi na wykorzystanie DMA lub pliku), to w etapie 232 wydawany jest Kod Zwrotny APM Wznowienie Normalne i przekazywany do APM w etapie 234. W odpowiedzi, sterownik APM SO aktualizuje zegar systemowy i inne wartości, które w międzyczasie mogły stać się przestarzałe.
Często zdarza się, że system 10 nie został jeszcze wznowiony, a Procedura Nadzorcza przechodzi następnie do etapu 236, aby sprawdzać aktywność jakiegoś użytkownika. W trakcie etapu 236 sprawdzane są trzy rodzaje aktywności użytkowników: aktywność plików twardych 31, aktywność klawiatury 12 i aktywność myszki 13. Co każde APM - Podaj Zdarzenie, Procedura Nadzorcza odczytuje wartość dla głowicy pliku twardego, cylindra i sektora z napędu dysku stałego 31, odpytuje mikrosterownik U2, czy była jakakolwiek aktywność na linii przerwania od myszki lub na linii przerwania od klawiatury lub na dowolnej z linii, wskazującej na aktywność użytkownika oraz odczytuje liczbę minut z zegara czasu rzeczywistego 98, którego zakres wynosi od 0 minut do 59 minut i zawraca z powrotem do 0 minut na początku każdej godziny. Trzy zmienne aktywności napędu dysku stałego (numer głowicy, numer cylindra i numer sektora) oraz liczba minut są pamiętane tymczasowo.
Trzy zmienne aktywności napędu dysku stałego są następnie porównywane z trzema zmiennymi aktywności napędu dysku stałego zapamiętane przed poprzednim Podaj Zdarzenie. Jeśli trzy bieżące wartości dotyczące napędu dysku stałego są takie same jak warto
180 369 ści sprzed poprzedniego Podaj Zdarzenie i, jeśli nie było żadnej aktywności ani w postaci przerwania od myszki, ani od klawiatury, to nie było żadnej aktywności użytkowników. Jeśli wartości dotyczące napędu dysku stałego są różne lub była aktywność w postaci przerwania od myszki lub przerwania od klawiatury, to była aktywność użytkowników i bieżące, zmienne aktywności napędu dysku stałego są pamiętane do porównania z wartościami, które odczyta się podczas następnego polecenia Podaj Zdarzenie.
Powyższy schemat wykrywania aktywności jest taki, ze procedura wykonuje się w jednostce CPU 40, aby określić aktywność napędu dysku stałego oraz jedynie dwa przerwania sprzętowe są monitorowane na okoliczność aktywności. Alternatywnie, aktywność mogłaby być monitorowana wyłącznie w trybie sprzętowym, np. wszystkie 16 linie przerwań sprzętowych mogłoby być monitorowane na okoliczność aktywności.
Jeśli wystąpiła aktywność, to Procedura Nadzorcza określa następnie, czy system komputerowy 10 jest w stanie gotowości 152 poprzez sprawdzenie znacznika gotowości w etapie 238. Jeśli znacznik gotowości jest ustawiony, wskazując, ze system 10 jest w stanie gotowości 152, to Procedura Nadzorcza wychodzi ze stanu gotowości 152 i wchodzi do normalnego stanu operacyjnego 150 w etapie 240. Procedura Nadzorcza wychodzi ze stanu gotowości 152 poprzez podanie zasilania z powrotem do urządzeń, którym wyłączono zasilanie przy wejściu do stanu gotowości 152, , jak przedstawiono na fig. 18. W skrócie, gdy system wychodzi ze stanu gotowości 152, to Procedura Nadzorcza odtwarza sygnał wizji, rozpędza dysk twardy, umieszczony w napędzie dysku stałego 31, odtwarza zegar systemowy, blokuje wywołania stanu jałowego jednostki CPU z APM tak, ze wywołania stanu jałowego jednostki CPU ze sterownika APM nie wstrzymują już dłużej jednostki CPU 40 i oraz zeruje znacznik wskazujący, ze system 10 jest w Stanie Gotowości 152.
Ponadto, jeśli wystąpiła aktywność, to liczba minut z zegara czasu rzeczywistego 98 jest również zapamiętana do porównania z liczbą minut odczytaną podczas następnego polecenia Podaj Zdarzenia (Get Events). Poprzez zapamiętanie bieżącej liczby minut dokonuje się rzeczywistego ustawienia stanu początkowego czasomierza nieaktywności stanu gotowości i czasomierza nieaktywności stanu zawieszenia w etapie 241. Podczas normalnego użycia będzie występować aktywność użytkownika i Procedura Nadzorcza ustawia Kod Zwrotny APM Brak Zdarzeń w trakcie 242 i zwraca kod wywołania APM w trakcie 243. Gospodarowanie APM nie wywołuje więcej procedur w odpowiedzi na Kod Zwrotny APM Brak Zdarzeń.
Jeśli sprawdzenie w etapie 236 wskazuje, ze nie było aktywności użytkownika, to Procedura Nadzorcza z kolei sprawdza, czy wyczerpał się czasomierz nieaktywności stanu gotowości i czasomierz nieaktywności stanu zawieszenia, odpowiednio w etapie 245 i 247. Jeśli system 10 jest w stanie gotowości 152, to czasomierz nieaktywności stanu gotowości nie jest sprawdzany na wyczerpanie to raczej test przeskakuje do etapu 244.
Obydwa czasomierze sprawdzane są na wyczerpanie poprzez odejmowanie bieżącej liczby minut od zapamiętanej liczby minut, aby uzyskać liczbę odpowiadającą liczbie minut od kiedy wystąpiła aktywność użytkownika. Liczba ta jest porównywana z wartością ustalonego czasu nieaktywności stanu gotowości w etapie 245 i wartością ustalonego czasu nieaktywności stanu zawieszenia w etapie 247. Dwie wartości czasu oczekiwania są wybieralne przez użytkownika i mogą być ustawione tak, ze system nigdy nie wejdzie do stanu gotowości 152, nigdy nie wejdzie do stanu zawieszenia 154 lub nigdy nie wejdzie do stanu gotowości 152 lub do stanu zawieszenia 154, z powodu wyczerpania się jednego z czasomierzy. Ustawienie wartości oczekiwania na wartość 0 wskazuje, ze czasomierz nie powinien się nigdy wyczerpać.
Jeśli liczba minut liczona od ostatniej aktywności użytkownika jest równa lub większa niz wartość ustalonego czasu nieaktywności stanu gotowości, to Procedura Nadzorcza powoduje, ze system 10 wchodzi do stanu gotowości 152 w etapie 246. Jeśli czasomierz nieaktywności stanu gotowości nie został wyczerpany, to Procedura Nadzorcza sprawdza następnie czy nie został wyczerpany czasomierz nieaktywności stanu zawieszenia w etapie 247. Z drugiej strony, jeśli czasomierz nieaktywności stanu gotowości został wyczerpany, to Procedura Nadzorcza powoduje, że system 10 wchodzi do stanu gotowości 152 poprzez
180 369 umieszczenie pewnych elementów składowych w trybach pracy o odpowiednio niskim zużyciu mocy, jak przedstawiono na fig. 18. W skrócie, w korzystnym przykładzie wykonania wynalazku Procedura Nadzorcza wygasza sygnał wizji, zwalnia obroty dysku stałego, znajdującego się napędzie dysku stałego 31, zwalnia zegar systemowy, odblokowuje wywołania Stanu Jałowego CPU z APM tak, ze wywołania Stanu Jałowego CPU ze sterownika APM zatrzymują jednostkę CPU 40 i ustawiają znacznik wskazujący, ze system 10 jest w Stanie Gotowości 152. Po spowodowaniu wejścia systemu 10 do stanu gotowości 152, Procedura Nadzorcza sprawdza, czy wyczerpał się czasomierz nieaktywności stanu zawieszenia w etapie 247.
Procedura Nadzorcza sprawdza, czy wyczerpał się czasomierz nieaktywności stanu zawieszenia w etapie 247.
Jeśli liczba minut od ostatniej aktywności użytkownika jest równa lub większa niz wartość ustalonego czasu nieaktywności stanu zawieszenia, to Procedura Nadzorcza ustawia Kod Zwrotny APM Żądanie Zawieszenia w etapie 248 i wraca do ATM w etapie 243. Jak opisano powyżej w odniesieniu do etapu 226, w odpowiedzi na ustawienie Kodu Zwrotnego APM Żądanie Zawieszenia, APM wykonuje niezbędne zadania systemowe, a następnie wywołuje Procedurę Nadzorczą. Działanie Procedury Zawieszenia pełniej przedyskutowano w odniesieniu do fig. 10 przy czym, w skrócie, powoduje ona opuszczenie przez system 10 normalnego stanu operacyjnego 150 i wejście do stanu zawieszenia 154. Jak przedyskutowano w tekście towarzyszącym etapowi 226, Procedura Zawieszenia może zwrócić sterowanie do Procedury Nadzorczej z lub bez zawieszania systemu 10. Z drugiej strony, jeśli czasomierz nieaktywności stanu zawieszenia nie został, wyczerpany, to Procedura Nadzorcza ustawia Kod Zwrotny APM Brak Zdarzeń w etapie 242 i wraca do kodu wywołującego APM w etapie 243.
Chociaż najczęściej Kod Zwrotny APM Brak Zdarzeń będzie zwracany do APM, to także różne inne zdarzenia mogą być zwracane do APM. Jednakże, tylko jeden Kod Zwrotny APM może być wyspecyfikowany dla każdego APM - Podaj Zdarzenie, np. po wejściu do stanu gotowości 152, procedura Brak Zdarzeń zwracana jest do APM. Po opuszczeniu stanu zawieszenia 154, Kod Zwrotny APM Normalne Wznowienie zwracany jest do APM. Specyficzne komunikaty uszeregowane w kolejce dla APM będą ściśle zależeć od natury systemu komputerowego. Procedura Nadzorcza również zwraca Kod Zwrotny APM Normalne Wznowienie lub Kod Zwrotny APM Żądanie Zawieszenia.
Odnosząc się teraz do fig. 9B - przedstawiona jest na niej sieć działań Procedury APM Działania Nad Ostatnim Żądaniem, począwszy od etapu 961. Odpowiednio do wydanego powyższego Ostatniego Żądania, procedury gospodarowania APM BlOS-a ponownie uruchamiają w mikro sterowniku U2 w etapie 962, czasomierz odporny na uszkodzenia i czasomierz APM zawieszenia spowodowanego przez uszkodzenie oraz ponownie uruchamiają czasomierz 15-sekundowego okresu nie załatwienia zawieszenia, aby zapobiec wydaniu żądania krytycznego zawieszenia, w trakcie oczekiwania przez gospodarowanie APM systemu SO na przygotowanie systemu do zawieszenia w etapie 963 i wraca w etapie 964.
Odnosząc się teraz do fig. 9C, przedstawiona jest na niej sieć Procedury APM - Odrzucenie Ostatniego Żądania, poczynając od etapu 965. Odpowiednio do wydanego powyższego Odrzucenia Ostatniego Żądania, procedury gospodarowania APM system BIOS-u ponownie uruchamiają w mikro sterowniku U2 w etapie 966, czasomierz odporny na uszkodzenia i czasomierz APM zawieszenia spowodowanego, uszkodzeniem oraz ustawiają Znacznik Krytycznego Zawieszenia, wymuszając tym samym natychmiastowe zawieszenie w etapie 967 i powrót w etapie 968.
Procedury Włączenia Zasilania i Wznowienia najlepiej zrozumie się wraz z informacjami dotyczącymi Procedury Zawieszenia. Zatem wyraża się przekonanie, ze opis procedur gospodarowania APM BlOS-a najlepiej zostanie zbadany w następujący sposób: przegląd procedury Włączania Zasilania (fig. 8), Procedury Nadzorczej (fig. 9), Procedury Zawieszenia (fig. 10), Procedury Zawieszenia (fig. 10), procesu Włączania Zasilania (fig. 11), Procedury Wznowienia (Fig. 12), Procedury Zapamiętania Stanu CPU (Fig. 13)
180 369
Procedury Odtworzenia Stanu CPU (fig. 14) oraz Procedury Zachowania Stanu 8259 (fig· 15).
Wyraża się przekonanie, że chociaż większość procedur oddziałuje na inne, a proces zawieszenia/wznowienia jest ciągłym cyklem, to jednak dyskusja o Procedurze Zawieszenia (fig. 10) przed Procedurą Inicjowania (fig. 11) będzie bardzo przydatna. Odnosząc się teraz do fig. 10 - przedstawiono na niej sieć działań Procedury Zawieszenia. Przypomnijmy, ze po wykonaniu albo procedury normalnego inicjowania 204 do 210, albo procedury wznowienia inicjowania w etapach 214 do 220, system komputerowy 10 jest w normalnym stanie operacyjnym 150. Ponadto, jak wzmiankowano powyżej w odniesieniu do fig.8, czy nastąpiło normalne inicjowanie systemu komputerowego w etapach 214 do 220, czy tez nastąpiło wznowienie inicjowania, to po zakończeniu dowolnej z nich, sterownik APM SO uwzględnia takie procedury BIOS APM, jak Procedura Nadzorcza, przedstawiona na fig. 8. W rezultacie, APM odpytuje Procedurę Nadzorczą co około jedną sekundę.
Procedura Zawieszenia przedstawiona jest na fig. 10 i zaczyna się w etapie 250. Procedura Zawieszenia wywoływana jest przez APM w odpowiedzi na zwrócenie przez Procedurę Nadzorczą do APM Kodu Zwrotnego APM Żądanie Zawieszenia. Ponadto Procedura Zawieszenia jest wywoływana i częściowo wykonywana, gdy system przechodzi przez Punkt Kontrolny, jak jest to pełniej objaśnione w tekście towarzyszącym fig. 17 i fig. 18. Po pierwsze przebieg Procedury zawieszenia zalezy, czy jednostka CPU 40 jest częścią S, wyposażoną w mechanizm przerwań SMI, sprawdzenie w etapie 970. Jeśli tak, to jednostka CPU 40 powoduje, ze mikrosterownik U2 generuje przerwanie SMI z powrotem do jednostki CPU 40, w etapie 972. Odpowiednio do przerwania SMI, mikrorozkaz w jednostce CPU 40 zapamiętuje stan jednostki CPU 40 w strukturze danych segmentu EO00H w etapie 974, jak jest to znane fachowcom w przedmiotowej dziedzinie.
Z drugiej strony, jeśli jednostka CPU 40 nie jest częścią S, wykorzystującą przerwanie SMI, to wywoływana jest Procedura Zapamiętania Stanu CPU, jak przedstawiono w etapie 252. Procedura Zapamiętania Stanu CPU będzie uszczegółowiona w opisie towarzyszącym fig. 13. Wystarczy teraz powiedzieć, że niezależnie w jakim trybie znajduje się jednostka CPU 40, kiedy Procedura Zawieszenia jest pierwotnie wywołana, to pozostałość Procedury Zawieszenia będzie wykonana w Trybie Rzeczywistym jednostce CPU 40 i, stąd może być wykonywana bez obawy generowania błędów, które mogłyby być spowodowane przy próbie wykonywania instrukcji spoza dopuszczalnej przestrzeni adresowej lub przy próbie wykonania instrukcji uprzywilejowanej.
Procedura Zapamiętania Stanu CPU zwraca sterowanie programem do Procedury Zawieszenia w etapie 253, w unikatowy sposób. Powrót od Procedury Zapamiętania Stanu CPU do Procedury Zawieszenia pociąga za sobą ustawienie w stan początkowy jednostki centralnej CPU, przy czym jest to dokładniej objaśnione poniżej w opisie towarzyszącym etapom 630 i 632 z fig. 13. Ważnym szczegółem w odniesieniu do Procedury Zawieszenia jest to, że zawartość rejestrów CPU została zapisana w strukturze danych segmentu EO00H i obecnie jednostka CPU 40 znajduje się w Trybie Rzeczywistym.
Po powrocie Procedury Zapamiętania Stanu CPU lub po zapamiętaniu przez jednostkę CPU swojego własnego stanu odpowiednio do mechanizmu przerwania SMI, Procedura Zawieszenia następnie upewnia się, czy przełącznik 21 został naciśnięty w etapie 254. Zamknięcie przełącznika 21 podlega na sprawdzeniu, jak opisano to w odniesieniu do fig. 6 i fig. 7. Jeśli przełącznik 21 nie został naciśnięty, to realizowane zawieszenie - jest zawieszeniem programowym i Znacznik Zawieszenia Programowego jest ustawiony w pamięci CMOS NVRAM 96. Uzyskuje się przez to, ze zawieszenie programowe nie jest mylone z zawieszeniem sprzętowym, wywołanym przez zamknięcie przełącznika. Wszystkie zawieszenia programowe są zamieniane na zawieszenia sprzętowe poprzez ustawianie bitu w mikrosterowmku U2. Następne zamknięcie przełącznika po zamianie zawieszenia programowego na zawieszenie sprzętowe przerywa zawieszenie.
Następny etap 262 ma na celu ustawić stos w segmencie E000H.
Po ustawieniu stosu Procedura Zawieszenia sprawdza - w etapie 264 - sterownik DMA 72, adapter dyskietek 84 i sterownik dysków IDE 86, aby zobaczyć, czy bieżąco re
180 369 alizowane są odpowiednio, transfery typu DMA, transfery z napędów dyskietek lub transfery plików z dysków stałych.
Jeśli tak, to zawieszenie nie może być dokonane, ponieważ charakterystyki właściwe dla tych trzech typów transferów zapobiegają wykonaniu wystarczającego zawieszenia, np. jeśli plik z dysku stałego podlega transferowi z napędu dysku stałego 31, przy czym dane zostały już odczytane przez sterownik IDE, lecz nie zostały jeszcze przekazane do pamięci systemowej 53. Dane te nie mogą być należycie udostępnione jednostce centralnej CPU, a zatem dane te mogłyby być stracone, jeśli system byłby zawieszony w środku odczytu pliku z dysku stałego. Stąd, jeśli dowolny z tych trzech typów transferów jest w trakcie realizacji, to zawieszenie jest odraczane do następnego APM - Podaj Zdarzenie, kiedy to sterowniki DMA i dyskietek są badane pod względem aktywności jeszcze raz.
Zatem, zadania wykonywane w etapach 252, 260 i 262 muszą zostać odwrócone tak, ze sterowanie może być z powrotem zwrócone do APM. Po pierwsze, system BIOS podlega zmianie z odczytu/zapisu na tylko odczyt, jak przedstawiono w etapie 265. Uzyskuje się to przez zamknięcie segmentu E000H, który nadal zawiera dane lustrzane. Stos utworzony w etapie 262 podlega pobraniu i odtworzeniu. W końcu, stan CPU jest odtwarzany przez Procedurę Otworzenia Stanu CPU, w etapie 266, zanim sterownie zostanie przekazane z powrotem do APM w etapie 267. Procedura Zawieszenia będzie ponownie odpytywana przez APM w przybliżeniu za około sekundę podczas następnego Podaj Zdarzenie. Do tego czasu, transfer(y), który(e) zapobiegają) procesowi zawieszenia będą prawdopodobnie zakończone, umożliwiając kontynuowanie [procesu] zawieszenia.
Wracając teraz do etapu 264, jeśli nie podlegają, na bieżąco realizacji transfery typu DMA, z napędu dyskietek lub z pliku dyskowego, to zawieszenie może być wykonane. Procedura Zawieszenia podlega kontynuacji w etapie 268. Przypomnijmy, że Czasomierz Odporny Na Uszkodzenia nieprzerwanie dokonuje odliczania (liczy w dół) i spowoduje, że system sam się wyłączy, jeśli nastąpi wyczerpanie zakresu odliczania tego Czasomierza przy stanie przełącznika 21 wy łączony/zwolniony. Stąd pierwszym zadaniem jest ustawić stan początkowy Czasomierza Odpornego Na Uszkodzenia, opisanego w tekście związanym z fig. 6A i fig. 19, jak to przedstawiono w etapie 268.
Następnie, zapamiętuje się stan koprocesora 8042 104, w etapie 270. Jednostka CPU 40 jest w stanie bezpośrednio odczytywać te rejestry a ich wartości są zapisywane do struktury danych w segmencie E000H.
Następnie, w etapie 272 zapamiętuje się stan sterownika przerwań typu 8259 92. Procedura Zawieszenia wywołuje Procedurę Zachowania Stanu 8259, co będzie szczegółowo przedstawione w opisie towarzyszącym fig. 15. Wystarczy powiedzieć, że Procedura Zachowania Stanu 8259 sprawdza zawartość nieznanych rejestrów sterownika przerwań 8259 92, pomimo że niektóre rejestry są tylko do zapisu. Wartości rejestrów są zapisywane bezpośrednio do struktury danych w segmencie E000H.
Po zapamiętaniu stanu sterownika przerwań 92, musi nastąpić zmiana konfiguracji sterownika przerwań 92 do stanu znanego, umożliwiającego prawidłowe funkcjonowanie różnych zadań sterowanych przerwaniami, wykonywanych przez Procedurę Zawieszenia. Dlatego następuje wymiana Obszarów Danych BIOS i Tabeli Wektorów w etapie 274. Procedura Zawieszenia kopiuje zawartość stanu obecnego Obszaru Danych BIOS i Tabeli Wektorów w segmencie 0000H do lokacji w segmencie E000H. Następnie zawartość Obszaru Danych BIOS w stanie znanym i Tabela Wektorów jest kopiowana ze struktury danych do segmentu E000H podczas etapu 414 Procedury Inicjowania, przedstawionej na fig. 11, której działanie jest przedstawione poniżej. Na końcu Obszar Danych BIOS w stanie obecnym i Tabela Wektorów są kopiowane z segmentu 000H do struktury danych w segmencie E000H. Po skończeniu tej procedury w etapie 274, wszystkie przerwania takie, jak przerwanie 13H (odczyt/zapis dysku) i przerwanie 10H (dostęp wizji) będą funkcjonować zgodnie z oczekiwaniem.
Następnie zapamiętuje się stan czasomierzy 102, w etapie 276. Rejestry czasomierzy są dobrze znane w przedmiotowej dziedzinie techniki. Jednostka CPU 40 jest w stanie bezpośrednio odczytywać wszystkie te rejestry, a ich wartości są zapisywane do struktury da
180 369 nych w segmencie E000H. W etapie 276 zapamiętuje się również stan sterownika dyskowego IDE 86. Jednostka CPU 40 jest w stanie bezpośrednio odczytywać wszystkie te rejestry, a ich wartości są zapisywane do struktury danych w segmencie E000H.
Następny krok to przygotowanie pamięci systemowej do zapisu jej zawartości w Pliku Zawieszenia na dysku stałym 31. Pamięć systemowa obejmuje pamięć systemową RAM 53, która obejmuje i pamięć główną i pamięć rozszerzoną oraz pamięć wizji 58. W tym przypadku, części pamięci RAM 53 mogą być w zewnętrznej pamięci podręcznej 60. Pamięć podręczna jednostki centralnej CPU opróżniona w etapie zadania 628, które będzie omawiane w związku z fig. 13. Następnie zostaje opróżniona zewnętrzna pamięć podręczna 60 w etapie 286 oraz uaktywniona do szybkiego zapisu na dysk stały 31.
Kod wykonujący się w systemie komputerowym 10 mógłby wprowadzić sterownik IDE 86 do nieznanego stanu. Zatem, następnym krokiem jest zainicjowanie sterownika IDE 86, aby znalazł się w znanym stanie w etapie 292. Uzyskuje się to przez zapisanie wartości bezpośrednio do rejestrów, znajdujących się w sterowniku IDE 86.
Następnie uruchamia się tor równoległy sterowany przerwaniami do odczytu i zapamiętania stanu modemów w strukturze danych E000H, w etapie 976. Procedura przechwytuje przerwania odpowiadające stanowi portu COMM, stowarzyszonego z określonym modemem, przesyła polecenia do modemu, aby spowodować, żeby modem sekwencyjnie przesyłał z powrotem zawartość swoich rejestrów, procedura odbiera z modemu transmisje z zawartością rejestrów, zapamiętuje wartości rejestrów do struktury danych w segmencie E000H. Procedura ta przesyła pierwsze polecenie do modemu, a następnie odpowiada w sposób sterowany przerwaniami, odbiera odpowiedź modemu i przesyła następne polecenie do modemu odpowiednio do przerwania z portu COMM, az wszystkie rejestry modemu zostaną zapamiętane. Jeśli procedura nie jest wykonywana jako tor równoległy, to procedura mogłaby dodać kilka sekund (3-5 sekund na modem, zależnie od określonego modemu i bieżącej przepływności danych cyfrowych) do czasu, który przeznacza się na zawieszenie systemu. Będąc torem równoległym sterowanym przerwaniami, dodaje on drobne odcinki czasu (lub ich nie dodaje) do czasu zawieszenia w przypadku, gdy kończy on swe wykonywanie, zanim stan systemu zostanie zapisany na dysku stałym 31.
Po uruchomieniu procedury zapamiętania stanu modemu, jako toru równoległego sterowanego przerwaniami, Plik Zawieszenia musi być ulokowany na dysku stałym, znajdującym się w napędzie dysku stałego 31, w etapie 294. Numer głowicy, sektora i cylindra Pliku Zawieszenia zapamiętuje się w pamięci CMOS 96. Po zlokalizowaniu Pliku Zawieszenia odczytuje się rozmiar pliku oraz podpis. W korzystnym przykładzie wykonania wynalazku podpis jest kodem ASCII o arbitralnie ustalonej długości, który wskazuje na obecność Pliku Zawieszenia. Inne alternatywne warianty podpisu są dopuszczalne takie, jak użycie łańcuchów binarnych o sekwencjach, w których prawdopodobieństwo przypadkowego znalezienia w systemie plików stałych jest bardzo małe.
Odczytawszy rozmiar pliku oraz podpis Pliku Zawieszenia, następnym krokiem będzie zapewnić poprawność podpisu i rozmiaru pliku w etapie 296. Jeśli ani podpis nie jest poprawny, wskazując, ze może inny program zmodyfikował Plik Zawieszenia, ani rozmiar pliku nie jest poprawny, wskazując, że rozmiar Pliku Zawieszenia został zmodyfikowany, to Procedura Zawieszenia wywołuje Procedurę Fatalnego Błędu Zawieszenia, który uruchamia się w etapie 652 z fig. 13, w etapie 298. Jeśli użytkownik naciśnie przełącznik 17, aby wyjść z Procedury Fatalnego Błędu Zawieszenia, to sterowanie programami przechodzi z etapu 299 do etapu 506.
Z drugiej strony, jeśli podpis jest poprawny a Plik Zawieszenia wystarczająco duży, to Procedura Zawieszenia może kontynuować zapisywanie stanu systemu komputerowego do pamięci.
Przed zapisaniem stanu systemu komputerowego 10 na dysk stały, jednostka centralna CPU 40 poleca mikrosterowmkowi U2 ponownie uruchomić (ustawić stan początkowy) czasomierz odporny na uszkodzenia i zapytuje mikrosterownik U2, aby określić, czy przełącznik 21 został naciśnięty ponownie, w etapie 297. Jeśli przełącznik 21 nie został naciśnięty ponownie, to zawieszenie powinno być kontynuowane. Z drugiej strony, jeśli prze
180 369 łącznik 21 został naciśnięty ponownie, to proces zawieszania przerywa się Ponownie uruchamia się czasomierz odporny na uszkodzenia oraz sprawdza się przełącznik 21 na zamknięcie w kilku punktach w Procedurze Zawieszenia. Etap 297 ma tylko charakter ilustracyjny, gdyż projektanci układów będą w stanie określić dopuszczalny okres czasu między, ponownymi uruchomieniami czasomierza odpornego na uszkodzenia. Procedura Zawieszenia powinna ustawić w stan początkowy czasomierz odporny na uszkodzenia, zanim wyczerpie się powodując, że mikrosterownik U2 doprowadzi do wyłączenia zasilacza 17. Podobnie przy tej okazji powinien zostać sprawdzony przełącznik 21. Jeśli przełącznik 21 został naciśnięty ponownie, wskazując, że użytkownik żąda przerwania procesu zawieszenia, to kod powinien skoczyć do odpowiedniego punktu w Procedurze Wznowienia, to jest do punktu nie-zawieszony i powrócić z częściowego zawieszenia.
Podobnie, użycie klawiszy Ctrl-Alt-Del przerywa stan zawieszenia, w etapie 350. Naciśnięcie klawiszy Ctrl-Alt-Del (równoczesne naciśnięcie klawiszy Ctrl, Alt i Del) jest dobrze znanym sposobem ustawiania w stan początkowy (zerowania) typowych systemów komputerowych, opartych na systemie BIOS oraz na rodzinie jednostek centralnych CPU Intel 80x86. System komputerowy 10 obsługuje przerwanie od klawiszy Ctrl-Alt-Del wraz z programem obsługi Przerwania 1 systemu BIOS, jak jest to znane w stanie techniki. System komputerowy 10 ma lekko zmodyfikowany program obsługi Przerwania 1, w etapie 350, który zeruje Znacznik Zawieszenia w pamięci CMOS 96, w etapie 352, i przechodzi do Procedury Inicjowania przy ustawianiu w stan początkowy systemu, w etapie 354.
W systemie komputerowym 10 według niniejszego wynalazku, naciśnięcie klawiszy Ctrl-Alt-Del podczas wykonywania Procedury. Zawieszenia powoduje wejście systemu komputerowego do wyłączenia 156. Zachodzi to dlatego, że po zamknięciu przełącznika 21, naciśnięcie klawiszy Ctrl-Alt-Del powoduje wywołanie Procedury Inicjowania i Procedura Inicjowania inicjuje mikrosterownik U2 do stanu, w którym wyczerpał się czasomierz odporny na uszkodzenia a przełącznik 21 jest jeszcze w stanie wyłączony/zwolniony. Stąd naciśnięcie klawiszy Ctrl-Alt-Del powoduje wejście systemu komputerowego 10 do stanu wyłączenia 156.
Odnosząc się teraz do etapu 300, Plik Zawieszenia ponownie jest zlokalizowany na dysku stałym 31, przy czym fraza podpisu podlega zapisaniu w pierwszych bitach Pliku Zawieszenia w etapie 300. Następnie całe 64 kilobajtów danych z segmentu E000H podlega zapisaniu do Pliku Zawieszenia, w etapie 302. Ta kopia 64 KB danych segmentu E000H ma rzeczywiście na celu zatrzymanie miejsca i będzie ponownie zapisana do tej samej lokacji przy końcu Procedury Zawieszenia.
Następnie zapamiętuje się stan sterownika wizji 56 w etapie 303. Jednostka centralna CPU jest w stanie odczytywać wszystkie te rejestry a ich wartości są zapisywane do struktury danych w E000H.
Następnie do Pliku Zawieszenia zapisuje się pamięć systemową. Uzyskuje się to przez system buforów bliźniaczych, za pomocą którego odczytuje się dane z pamięci systemowej, dokonuje kompresji i zapisuje dane do segmentu E000H oraz na końcu zapisuje skompresowane dane z segmentu E000H do Pliku Zawieszenia. Dwie procedury działają w trybie multipleksowania czasu: jedna dokonuje kompresji danych i zapisuje do segmentu E000H, a druga zapisuje dane do Pliku Zawieszenia. Pierwsza z nich wykonuje się na pierwszym planie, natomiast druga jest procedurą sterowaną przerwaniami, działającą w tle. Oczywiście, ze względu na to, że jest tylko jedna jednostka centralna CPU, to tylko jedna procedura może wykonywać się w danej jednostce czasu. Ponieważ jednak druga procedura jest sterowana przerwaniami, to może ona przerwać wykonywanie pierwszej procedury, gdy wymaga tego optymalizacja szybkości transferu danych do Pliku Zawieszenia. Każdy z tych buforów ma po 8 kilobajtów pojemności, co powinno pozwolić na optymalizację czasu transferu na napęd dyskowy 31.
Proces ten rozpoczyna się w etapie 304 wraz odczytem, kompresją i zapisem danych do segmentu E000H z wystarczającą ilością danych do zapełnienia pierwszego z buforów o pojemności 8 KB. Dane te podlegają kompresji przy użyciu metody kodowania grupowego. W tym czasie Procedura Zapisu z Bufora, która ogólnie wskazywana jest w etapie 307,
180 369 zaczyna się w etapie 306. Procedura Zapisu z Bufora jest procedurą sterowaną przerwaniami, która działa w tle i obejmuje etapy 308 do 310. Procedura Kompresji, ogólnie wskazywana w etapie 311, obejmuje etapy 312 do 318 i jest procedurą pierwszoplanową. Po pierwsze, Procedura Zapisu z Bufora w etapie 307 przepisuje zawartość bufora, właśnie zapełnionego w etapie 304, do Pliku Zawieszenia, w etapie 308. Podczas gdy Procedura Zapisu z Bufora w etapie 307 przepisuje zawartość tego bufora do Pliku Zawieszenia, to Procedura Kompresji w etapie 311 kontynuuje czytanie następnych bajtów z pamięci systemowej, dokonuje ich kompresji i zapisuje skompresowane dane do drugiego z dwóch buforów 8 KB, w etapie 312. Po zapełnieniu przez Procedurę Kompresji w etapie 311 tego buforu skompresowanymi danymi, następnym krokiem jest określenie, czy cała pamięć systemowa została juz poddana kompresji, w etapie 314.
Sterownik IDE 86 nie może bardzo szybko zapisywać danych na dysk stały 31. W konsekwencji Procedura Kompresji w etapie 311 będzie zawsze kończyć zapełnianie bufora 8 KB bez zapisu na dysk stały 31, zanim Procedura Zapisu z Bufora w etapie 307 skończy przepisywanie zawartości bufora na dysk stały 31. Zatem Procedura Kompresji w etapie 311 musi czekać, az Procedura Zapisu z Bufora z etapu 307 skończy przepisywanie zawartości bufora na dysk stały 31. Jeśli Procedura Kompresji z etapu 311 nie skończyła kompresji i zapisywania całej pamięci systemowej, to Procedura Kompresji z etapu 311 czeka na Procedurę, Zapisu z Bufora z etapu 307, w etapie 316.
Procedura Kompresji: z etapu 311 i Procedura Zapisu z Bufora z etapu 307 komunikują się poprzez ustawianie znaczników. Kiedy Procedura Zapisu z Bufora z etapu 307 kończy przepisywanie zawartości bieżącego bufora do Pliku Zawieszenia, to Procedura z etapu 307 przełącza następnie znaczniki buforowe, wskazując Procedurze Kompresji etap 311, ze może rozpocząć napełnianie skompresowanymi danymi bufor, którego zawartość została właśnie przepisana do Pliku Zawieszenia. Następnie czasomierz odporny na uszkodzenia C2 jest ustawiany w stan początkowy, a przełącznik 21 podlega sprawdzeniu, czy wystąpiło zdarzenie jego zamknięcia, w etapie 309, w sposób objaśniony w opisie towarzyszącym etapowi 297.
Z kolei Procedura Zapisu z Bufora z etapu 307 decyduje, czy bufor, którego zawartość została właśnie przepisana do Pliku Zawieszenia jest ostatnim buforem z zawartością która ma być przepisaną w etapie 310. Jeśli nie, to Procedura Zapisu z Bufora w etapie 307 przepisuje do Pliku Zawieszenia bufor, właśnie zapełniony przez Procedurę Kompresji w etapie 311. W międzyczasie Procedura Kompresji 311 poprzez zbadanie znaczników buforowych, określa, czy bufor jest gotowy na odbiór skompresowanej zawartości pamięci systemowej. Oznacza to, ze Procedura Kompresji z etapu 311 czeka w etapie 316 az Procedura Zapisu z Bufora w etapie 307 skończy zajmować się bieżącym buforem, podczas tego oczekiwania kontynuowana jest pętla kompresowania , w etapie 312.
Należy zauważyć, ze pamięć wizji 58 jest kompresowana, jeśli wspomagane jest liniowe buforowanie ramek, lecz pamięć ta nie jest kompresowana przy dostępie stronami VESA. Pamięć wizji o dostępie stronami VESA podlega raczej odczytowi poprzez sterownik 56, przy użyciu odwołań VESA i jest zapisywana bez kompresji, przy użyciu systemu buforów bliźniaczych, objaśnionego bardziej szczegółowo powyżej.
Procedura Kompresji z etapu 311 skończywszy kompresję całej pamięci systemowej, oczekuje w etapie 318 na zakończenie przepisywania przez Procedurę Zapisu z Bufora w etapie 307 zawartości drugiego bufora do Pliku Zawieszenia. Procedura Zapisu z Bufora w etapie 307 po skończeniu swego działania, rozgałęzia się na etapy od 310 do 318 i przestaje istnieć. W tym czasie nie są wykonywane w tle żadne procedury, a główny program kontynuuje swe działanie w etapie 320.
Następnie, w etapie 320, zapamiętuje się stan jednostki DMA 71 (sterownik DMA 72 i Główny Arbiter 82) stan sterownika dyskietek 82077 84 i, stan układów UART RS232 94. Urządzenia te mają rejestry. Wszystkie rejestry w ramach sterownika dyskietek 84 i układów UART 94 są bezpośrednio odczytywane przez jednostkę centralną CPU, a odczytane wartości są zapisywane bezpośrednio do struktury danych w segmencie E000H. Jednostka DMA nie ma odczytywalnych rejestrów. Normalnie raczej rejestry tylko do zapisu są usta
180 369 wiane przed każdym transferem typu DMA. Z tej przyczyny Procedura Zawieszenia zatrzymuje proces zawieszania, jeśli wykonuje się transfer typu DMA.
Następnie, w etapie 978 Procedura Zawieszenia bada, czy zakończyła się procedura sterowana przerwaniami zapamiętania stanu modemu, opisana w tekście towarzyszącym etapowi 976. Jeśli nie, to czeka na jej zakończenie.
Wyraża się przekonanie, że korzystnie jest mieć możliwość wykrywania nieumiejętnego manipulowania Plikiem Zawieszenia, gdy system komputerowy 10 wejdzie do stanu zawieszenia 150, np. możliwe, ze ktoś wygeneruje zmodyfikowany Plik Zawieszenia, przesunie Plik Zawieszenia na dysk sztywny lub spróbuje odtworzyć system komputerowy 10 w różnym stanie od tego zapamiętanego. Przy końcu, umieszcza się wartość pseudolosową w strukturze danych, segmentu E000H. Jak przedstawiono w etapie 328, po skończeniu procedury sterowanej przerwaniami zapamiętania stanu modemu, odczytuje się 16-bitowy stempel czasowy z jednego z szybkich czasomierzy 102. Ten stempel czasowy jest z kolei zapisywany w strukturze danych segmentu E000H.
Następnie oblicza się 16-bitową sumę kontrolną dla całego segmentu E000H poprzez dodawanie do siebie każdego 16-bitowego słowa w segmencie E000H zawsze bez uwzględniania bitu przeniesienia. Suma kontrolna podlega zapisaniu w strukturze danych segmentu E000H, w etapie 330 i jest zapisywany w pamięci NVRAM CMOS, w etapie 332. Po tym, wszystkie zmienne robocze są przepisywane z jednostki centralnej CPU do segmentu E000H segmentu danych, w etapie 334, przy czym cały segment E000H jest ponownie przepisywany do Pliku Zawieszenia, rozpoczynając zapis po frazie podpisu Pliku Zawieszenia (bezpośrednio po podpisie), w etapie 336. Następnie ustawiany jest Znacznik Zawieszenia w pamięci NVRAM CMOS 96, w etapie 338, informując system 10, że stan systemu komputerowego został zapamiętany w Pliku Zawieszenia.
Następnie, Procedura Zawieszenia określa, czy zaliczono Punkt Kontrolny w etapie 980. Jeśli tak, to system nie powinien być wyłączony z zasilania, raczej działanie systemu musi być wznowione do koniecznego zakresu, aby odtworzyć go z częściowego zawieszenia, które właśnie zostało wykonane. Dlatego, jeśli zaliczono Punkt Kontrolny, w etapie 982, to Procedura Zawieszenia przechodzi do etapu 484 Procedury Wznowienia, która następnie wykonuje częściowe wznowienie.
Jeśli Punkt Kontrolny nie jest zaliczany, to jednostka centralna CPU 40 wyłącza zasilacz poprzez wydanie polecenia mikrosterownikowi U2, aby wymusił sygnał ON do logicznego 0, powodując przez to, ze podstawowa jednostka regulacyjna 172 zasilacza 17 przestanie dostarczać regulowane napięcie na szynach ± 5 i ± 12. Zanim napięcie spadnie do około zera, mija kilka sekund, dając jednostce centralnej CPU czas na wykonanie wielu, poleceń. Zatem jednostka CPU 40 wykonuje nie kończącą się pętlę, w etapie 342, gdy czeka aż napięcie zasilania systemowego generowane przez zasilacz 17 zaniknie na tyle, ze CPU jednostka 40 przestanie funkcjonować.
Odnosząc się teraz do fig. 11, gdzie przedstawione są szczegóły Procedury Inicjowania. Proces inicjowania został omówiony w odniesieniu do fig.8. Procedura Inicjowania rozpoczyna się w etapie 380, gdy jednostka CPU 40 wykonuje kod wskazany przez Wektor Zerowania (Wektor Ustawiania W Stan Początkowy). Następuje to za każdym razem, gdy włącza) się zasilanie jednostki centralnej CPU 40 oraz zawsze, gdy ustawiany jest stan początkowy poprzez skok do kodu programowego wskazanego przez ten wektor.
Pierwsze zadanie to testowanie i inicjowanie sterownika pamięci 46, w etapie 382 Jednostka CPU 40 podlega testowaniu przez procedurę POST. Część testu CPU ma na celu określenie, czy CPU jest częścią S wyposażoną w jednostkę SMI. Jeśli tak, to ustawia się znacznik wskazujący ten fakt. Sterownik pamięci 46 podlega zainicjowaniu przez procedurę POST.
Następnie Procedura Inicjowania testuje, w etapie 986, czy funkcjonuje mikrosterownik U2. Aby to zrobić, jednostka CPU 40 sekwencyjnie czyta port stanu układu gospodarowania zasilaniem 106 i oczekuje na przejście ze stanu WYSOKI na NISKI i z powrotem ze stanu NISKI na WYSOKI. Takie przejście wskazuje, że układ wykrywania kolizji mikroste
180 369 równika U2 funkcjonuje; zatem jednostka CPU 40 może kontynuować proces inicjowania, przy założeniu, ze mikrosterownik U2 funkcjonuje zgodnie z oczekiwaniem.
Jeśli jednostka CPU 40 nie wykryje przejścia w porcie statusu, w określonym wcześniej okresie czasu, np. w ciągu jednej lub dwóch sekund, to mikrosterownik U2 me ma układu wykrywania kolizji i jednostka CPU 40 poleca ustawić w stan początkowy pierwszy układ PAL Ul, w etapie 988, jak objaśniono powyżej. Następnie jednostka CPU 40 oczekuje ponownie na przejście portu stanu ze stanu WYSOKI do stanu NISKI, w etapie 990. Jeśli jednostka CPU 40 ponownie nie wykryje przejścia w porcie stanu, w przeciągu jednej lub dwóch sekund, to mikrosterownik U2 nie ma układu wykrywania kolizji i jednostka CPU 40 blokuje właściwości gospodarowania zasilaniem tu opisane, w etapie 992, przy założeniu, że mikrosterownik U2 jest w takim stanie, że nie może być ustawiony w stan początkowy (wyzerowany).
Z drugiej strony, jeśli funkcjonuje mikrosterownik U2, to jednostka CPU 40 odświeża w mikrosterowniku U2 liczbę minut do pobudzenia alarmowego, w etapie 994. Podstawa czasu zegara czasu rzeczywistego RTC 98 jest dokładniejsza niż podstawa czasu mikrosterownika U2.
Zatem, aby pokonać to ograniczenie bez wyposażania mikrosterownika U2 w dokładniejszą podstawę czasu, lecz bez dużych wydatków, system BIOS synchronizuje mniej dokładną podstawę czasu poprzez dokładniejszą oraz aktualizuje liczbę minut do pobudzenia alarmowego w mikrosterowniku U2, przy użyciu bardziej dokładnej liczby, pobieranej z zegara czasu rzeczywistego RTC 98, przy każdym inicjowaniu systemu. W celu osiągnięcia tego, jednostka CPU 40 odczytuje absolutną datę alarmu i czas z pamięci CMOS 96, oblicza liczbę minut do pobudzenia alarmowego i zapisuje ją w mikrosterowniku U2.
Zatem, jeśli mikrosterownik U2 nie funkcjonuje, powodując, ze dokonuje się zablokowania właściwości gospodarowania zasilaniem, to Procedura Inicjowania określa, czy system został zainicjowany odpowiednio do podania mocy do zasilacza 17, w etapie 996. Korzystnie, zasilacz 17 zawsze pobiera zasilanie AC poprzez swoją podstawową jednostkę regulacyjną 172, natomiast sterowania regulowaną mocą na jego szynach ± 5 i ± 12 V dokonuje się poprzez wejście ON#. Tym sposobem zasilacz 17 może stale zapewniać napięcie z linii zasilającej AUX5, potrzebne do zasilania układów gospodarowania zasilaniem 106 oraz być sterowanym przez układy gospodarowania zasilaniem 106, bez włączania samemu zasilania AC.
Jednakże, niektórzy użytkownicy przedkładają zasilanie swoich systemów komputerowych za pomocą listwy zasilającej z przełącznikiem, wyłączając i włączając zasilanie AC całego systemu pojedynczym przełącznikiem.
Stwarza to pewne problemy przed układami gospodarowania zasilaniem 106, ponieważ mikrosterownik U2 i inne urządzenia są skonfigurowane tak, że muszą być stale zasilane poprzez linię zasilająca AUXS. Zatem, system musi być wyposażony w metodę określania, ze był on zasilany przez podanie zasilania AC i zachowywać się stosownie do tego.
Jednakże linia AUX5 podlega również zanikom napięcia w sieci (zanikowi zasilania) i ograniczeniom poboru mocy. Po zaniku napięcia w sieci lub ograniczeniu poboru mocy, podukład zerowania 920 ustawia mikrosterownik U2 w stan początkowy, aby zapobiec zawieszeniu z uwagi na przekroczenie tolerancji napięcia. Zatem system musi być w stanie określić dalej, czy mikrosterownik U2 został pobudzony po ograniczeniu poboru mocy lub po podaniu zasilania AC.
Zatem, w etapie 996, jednostka CPU 40 przepytuje mikrosterownik U2 o zdarzenie, które powoduje, ze zasilacz 17 ma być włączony. Mikrosterownik U2 może zwrócić jedną dowolną z czterech odpowiedzi: (1) był wyzerowany, a zatem spowodował, ze zasilacz 17 rozpoczyna dostarczanie regulowanej mocy na szynach ± 5 i ± 12 V, (2) wyczerpały się minuty do pobudzenia alarmowego, (3) pojawił się sygnał dzwonka (sygnał wywołania) albo na wejściu dzwonkowym RS-232 albo na wejściu dzwonkowym z transoptora OPTO1 i/lub (4) został naciśnięty przełącznik 21. Przy użyciu programów aplikacyjnych można bezpośrednio odczytać z mikrosterownika U2 przyczynę, dla której włącza się zasilanie systemu, programem takim może być program planujący, który mógłby wykonywać pewne programy,
180 369 odpowiednio do konkretnej przyczyny, która spowodowała włączenie zasilania systemu. Alternatywnie, przyczynę włączenia zasilania systemu można uzyskać przez jedno lub więcej wywoływań systemu BIOS.
Poza ustawianiem w stan początkowy przez jednostkę CPU 40, mikrosterownik U2 podlega ustawianiu w stan początkowy wyłącznie przez podukład ustawiania w stan początkowy 920, który ustawia mikrosterownik U2 w stan początkowy, kiedykolwiek podana jest linia AUX5. Zatem, jeśli nastąpiło ustawienie mikrosterownika U2 w stan początkowy lub mikrosterownik U2 zwrócił niepoprawny kod pobudzenia, testowanie w etapie 997, to jednostka CPU 40 musi wtedy określić, czy zasilacz 17 powinien kontynuować regulowanie zasilania na szynach ± 5 i ± 12 V lub nie, w etapie 998. Na końcu używa się znacznika w NVRAM CMOS, zwanego DEFAULT_ON. Jeśli znacznik ten jest ustawiony, to zasilacz 17 powinien kontynuować dostarczanie regulowanego zasilania, po ustawieniu mikrosterownika U2 w stan początkowy. Z drugiej strony, jeśli znacznik DEFAULT_ON nie jest ustawiony, to zasilacz 17 powinien zaprzestać dostarczanie regulowanego zasilania na szynach ± 5 i ± 12 V, po ustawieniu mikrosterownika U2 w stan początkowy, w etapie 1000. Zatem zanikanie napięcia do około zera zajmuje kilka sekund, dając jednostce CPU 40 czas na wykonanie licznych poleceń. Zatem, jednostka CPU 40 wykonuje nie kończącą się pętlę etapie 1002, gdy czeka az napięcie zasilania systemowego generowane przez zasilacz 17 zaniknie na tyle, ze jednostka CPU 40 przestanie funkcjonować, w etapie 1005. Jak wzmiankowano powyżej, mikrosterownik U2 jest korzystnie zasilany przez linię AUX5 i kontynuuje wykonywanie zaprogramowanych procedur.
Zatem, jeśli mikrosterownik zwróci prawidłowy kod pobudzenia, w etapie 997 lub jeśli mikrosterownik U2 został ustawiony w stan początkowy, lecz system ma pozostać zasilany, w etapie 998, to jednostka CPU 40 poleca mikrosterownikowi U2, w etapie 1004, generować zwrotny sygnał przerwania SMI do jednostki CPU 40 zanim spowoduje to zaprzestanie dostarczania regulowanej mocy na szynach ± 5 i ± 12 V w przypadku, gdy mikrosterownik U2 uzna, że zasilanie powinno być wyłączone. Również, w etapie 1004, jednostka CPU 40 ustawia bit sygnału DEFAULT ON w pamięci NVRAM CMOS tak, jakby ulegało zanikowi zasilanie AC, przy czym system włączy się z, powrotem sam po ponownym podaniu zasilania AC.
Następnie, Procedura Inicjowania wykonuje pierwsze przejście rozpoznanie alokacji zasobów, w etapie 1006, dla potrzeb Włącz i Pracuj (Pług & Play).
Następnie pamięć zwierciadlana podlega testowaniu, a system BIOS jest kopiowany z pamięci ROM 88 do części pamięci zwierciadlanej RAM 53. Przebieg realizacji kodu wykonawczego zależy od tego, czy Znacznik Zawieszenia jest ustawiony w pamięci NVRAM CMOS 96. Jeśli Znacznik
Zawieszenia jest ustawiony, to system komputerowy 10 jest w stanie zawieszenia 150 i system komputerowy 10 powinien być odtworzony do stanu, w którym on się znajdował, kiedy został zawieszony. Pamięć systemowa RAM 53 w segmentach E000H i F000H podlega skróconemu testowaniu. W celu skrócenia czasu, który zuzy wa komputer do wznowienia swojej pracy, pamięć jest po prostu sprawdzana na okoliczność odpowiedniej wielkości oraz zapisywana zerami (każda lokacja podlega zapisaniu wartością 000H).
Z drugiej strony, jeśli Znacznik Zawieszenia jest wyzerowany w pamięci NVRAM CMOS 96, to pamięć systemowa RAM 53 w segmentach E000H i F000H, poddana jest standardowemu dogłębnemu testowi pamięci, obejmującemu: test na sklejone bity, dwu bitowy test pamięci, test liniowy adresowania krzyżowego. Testy te są dobrze znane w przedmiotowej dziedzinie techniki.
Po przetestowaniu segmentów E000H i F000H, wykonuje się zwierciadlane odbicie przepisywanie systemu BIOS, które obejmuje kopiowanie zawartości systemu ROM BIOS 88 do pamięci systemowej RAM 53 oraz konfigurowanie sterownika pamięci, przy czym odbicie to służy do wykonywania systemu BIOS z pamięci RAM. Zwierciadlane odbicie systemu BIOS wykonuje się w celu przyśpieszenia działania systemu; wydajność system ulega poprawie, ponieważ BIOS działa raczej w oparciu o szybszą pamięć systemową RAM 53 (typowy czas dostępu wynosi 80 nanosekund) niż wolniejszą pamięć ROM 88 (typowy
180 369 czas dostępu wynosi 250 nanosekund). Wykonywanie zwierciadlanego odbicia systemu BIOS obejmuje ładowanie programu kopiującego pod adres w pamięci niższej, kopiowanie systemu BIOS do segmentów E000H i F000H pamięci systemowej RAM 53 oraz uaktywnienie odzwierciedlonej pamięci RAM.
Następnie podlega testowaniu i inicjowaniu sterownik wizji 56, testuje się również pamięć wizji 58, oba testowania w etapie 384. Testy te oraz inicjacje są dobrze znane w przedmiotowej dziedzinie techniki.
Następnie, Procedura Inicjowania wykonuje drugie przejście rozpoznanie alokacji zasobów, w etapie 1008, dla potrzeb Włącz i Pracuj (Pług & Play).
Przepływ działanie kodu wykonawczego zalezy od tego, czy Znacznik Zawieszania jest ustawiony w pamięci CMOS NVRAM, w etapie 386. Jeśli Znacznik Zawieszania jest ustawiony, to pozostała pamięć systemowa RAM 53 jest po prostu sprawdzana pod względem wielkości oraz zerowana, podobnie jak w etapie 383. Jeśli, jednakże, Znacznik Zawieszania jest wyzerowany w pamięci CMOS NVRAM 96, to pozostała pamięć systemowa RAM 53 jest testowana w etapie 398 przy użyciu dogłębnego testu trzystopniowego, opisanego w odniesieniu do etapu 383.
Po przetestowaniu pamięci, urządzenia pomocnicze włączając w to układ 8259, układy UART, układy 8042 oraz dowolne inne - podlegają testowaniu i inicjowaniu, w etapie 400. Sterownik dysku stałego podlega inicjowaniu w etapie 408.
Przepływ kodu wykonawczego zależy od tego, czy Znacznik Zawieszania jest ustawiony w pamięci CMOS NYRAM 96, w etapie 409. Jeśli Znacznik Zawieszania jest ustawiony, wskazując, ze stan systemu został poprawnie zapamiętany, kiedy nastąpiło wyłączenie zasilania ostatnim razem, to Procedura Inicjowania przeskakuje test sterownika dysku stałego 86 oraz napędu dysku stałego 31. Z drugiej strony, jeśli Znacznik Zawieszania jest wyzerowany w pamięci CMOS NYRAM 96, wskazując, że stan systemu nie został poprawnie zapamiętany, kiedy nastąpiło wyłączenie zasilania ostatnim razem, to Procedura Inicjowania wykonuje kompletny test sterownika dysku stałego 86 oraz napędu dysku stałego 31, w etapie 410.
Następnie dokonuje się testowania oraz inicjowania sterownika napędu dyskietek 84, w etapie 412.
W tym czasie inicjowane są wszystkie urządzenia a wektory wskazują znane lokacje tak, ze wszystkie procedury przerwań będą działać zgodnie z oczekiwaniem. Zatem Procedura Inicjowania wykonuje zdjęcie Obszaru Danych Systemu BIOS i Tabeli Wektorów, w etapie 414, poprzez zapisanie kopii Obszaru Danych Systemu BIOS i Tabeli Wektorów do struktury danych w segmencie E000H. Tę kopię Obszaru Danych Systemu BIOS i Tabeli Wektorów wykorzystuje Procedura Zawieszenia w etapie 274, do umieszczenia systemu komputerowego 10 w znanym stanie, ze wszystkimi przerwaniami, działającymi zgodnie z oczekiwaniem.
Następnie dokonuje się skanowania dowolnych rozszerzeń systemu BIOS i inicjowania w etapie 416, jak jest to dobrze znane w przedmiotowej dziedzinie techniki.
Rozszerzenia systemu BIOS są blokami kodu systemu BIOS dodanymi do systemu przez adaptery peryferyjne takie, jak adaptery sieciowe. Rozszerzenia systemu BIOS lokowane są typowo w segmentach C000H i D000H na magistrali ISA 76 i mają skojarzone podpisy do identyfikacji rozszerzenia systemu BIOS, jako takiego. Jeśli wykryje się rozszerzenie systemu BIOS, to następuje sprawdzenie długości oraz wyliczenie i sprawdzenie sumy kontrolnej. Jeśli wszystko podpis, długość i suma kontrolna - wskazuje, że istnieje prawidłowe rozszerzenia systemu BIOS, to sterowanie programami przechodzi do rozkazu, znajdującego się trzy bajty za podpisem i rozszerzenie systemu BIOS może wykonywać dowolne wymagane zadania takie, jak inicjowanie adaptera peryferyjnego. Po skończeniu działania przez rozszerzenie systemu BIOS, sterowanie powraca z powrotem do Procedury Inicjowania, która poszukuje dalszych rozszerzeń. Dowolne dalsze rozszerzenia systemu BIOS są obsługiwane jak powyższe rozszerzenie systemu BIOS. Jeśli nie nastąpi wykrycie dalszych rozszerzeń systemu BIOS, to Procedura Inicjowania przechodzi z kolei do etapu 417
180 369
Następnie, w etapie 1010, jednostka CPU odczytuje przyrost godzin włączenia zasilania systemu i dodaje jądo wartości zapamiętanej w specjalnej partycji na dysku stałym 31 oraz ponownie zapisuje nową zsumowaną liczbę godzin włączenia zasilania, z powrotem do specjalnej partycji na dysku stałym 31. Jak zostanie to objaśnione w innym miejscu, zanim mikro sterownik U2 wyłączy zasilanie systemu, to przerywa on pracę CPU przez wystawienie linii przerwania SMI. Zatem jednostka CPU wykonuje pewne zadania przy założeniu, ze wkrótce będzie wyłączone zasilanie systemu. Korzystnie, pociąga to za sobą zapamiętanie pewnych informacji w pamięci CMOS NVRAM takich, jak godzin włączenia zasilania, zmierzony przez zegar upływających godzin z włączonym zasilaniem. Zatem, jednostka CPU zezwala mikrosterownikowi U2 na wyłączenie zasilania systemu.
W etapie 417 Procedura Inicjowania poszukuje partycji na dysku stałym 31, która ma figurować, jako partycja specjalnie alokowana dla Pliku Zawieszania. Jeśli w tablicy partycji zostanie znaleziona partycja o wystarczającej wielkości z identyfikatorem PS/1 FE lub partycja hibernacji z identyfikatorem 84, aby pomieścić Plik Zawieszania dla konkretnego systemu, to Plik Zawieszania wykorzysta tę partycję. Zatem w pierwszych bajtach tego obszaru zapisuje się Podpis Pliku Zawieszania, a początkowe numery głowicy, sektora i cylindra tego obszaru zapisuje się w pamięci CMOS NVRAM 96.
Działanie kodu wykonawczego rozgałęzia się następnie, zależnie od tego, czy Znacznik Zawieszania jest ustawiony w pamięci CMOS NVRAM 96. Jeśli Znacznik Zawieszania jest wyzerowany, to Procedura Inicjowania przekazuje sterowanie do procedury PBOOT w etapie 420. Procedura PBOOT jest procedurą znaną w przedmiotowej dziedzinie techniki, a jest odpowiedzialna za ładowanie systemu operacyjnego (SO) oraz interpretera zleceń albo z dyskietek, albo z dysku stałego 31. Jeśli nie została znaleziona partycja dla Pliku Zawieszania, w etapie 417, to system SO wykonuje specyficzny program obsługi opisany w opisie związanym fig. 16, który sprawdza, czy partycja została znaleziona i jeśli nie, to dokonuje alokacji pliku w przyległych sektorach (jeśli potrzeba to dokonuje się defragmentacji obszaru) w tablicy FAT (FAT - File Allocation Table), zapisuje podpis w pierwszych bajtach Pliku Zawieszania, a początkowe numery głowicy, sektora i cylindra Pliku Zawieszania zapisuje w pamięci CMOS NVRAM 96.
Niezależnie o tego, kiedy następuje alokacja Pliku Zawieszania, to powinien on obejmować przyległe sektory, aby umożliwić szybki zapis na dysk i szybki odczyt z dysku, odpowiednio podczas zawieszeń i wznowień.
System SO dokonuje następnie konfiguracji systemu w oparciu o polecenia znalezione w pliku CONFIG.SYS. Na końcu system SO wykonuje plik AUTOEXEC.BAT, który przekazuje wreszcie sterowanie wykonywaniem z powrotem do systemu operacyjnego. Jeśli Znacznik Zawieszania jest wyzerowany w pamięci CMOS NVRAM 96, wskazując, ze stan systemu nie został zapamiętany, gdy ostatnim razem zanikło zasilanie, to program RESUME.EXE, który pełniej jest objaśniony w opisie do etapu 421, zostaje pominięty.
Odnosząc się z powrotem do etapu 418, jeżeli Znacznik Zawieszania jest ustawiony w pamięci CMOS NVRAM 96, wskazując, ze stan systemu został poprawnie zapamiętany, kiedy nastąpiło wyłączenie zasilania ostatnim razem, to przepływ wykonywanego kodu rozgałęzia się, zależnie od tego, czy ustawiony jest Znacznik Ponownej Inicjacji
Adapterów w pamięci CMOS NVRAM 96, w etapie 419. Jeśli ustawiony jest Znacznik Ponownej Inicjacji Adapterów, to Procedura Inicjowania przekazuje sterowanie do Procedury PBOOT w etapie 421. Podobnie jak zwykła Procedura PBOOT, Procedura PBOOT według wynalazku ładuje system operacyjny, który dokonuje konfiguracji systemu, zgodnie z poleceniami znajdującymi się w plikach CONFIG.SYS i AUTOEXEC.BAT, przy czym powodują one między innymi ładowanie sterowników i konfigurowanie systemu, jak jest to dobrze znane w przedmiotowej dziedzinie techniki.
Polecenia w plikach CONFIG.SYS i AUTOEXEC.BAT mogą inicjować karty adapterów w danym systemie. Niniejsze zgłoszenie domniemywa istnienie trzech typów kart adapterów: adaptery Typu I nie potrzebują inicjowania, adaptery Typu II wymagają inicjowania, lecz są umieszczane w znanym stanie pracy przez rozszerzenie systemu BIOS lub sterowniki załadowane poprzez pliki CONFIG.SYS i AUTOEXEC.BAT, adaptery Typu III są
180 369 modyfikowane przez kod wykonujący się systemie. Systemy obejmujące adaptery Typu I i Typu II mogą być zawieszane i odtwarzane. Jednakże systemów, które obejmują adaptery Typu III oraz zawierają wiele adapterów sieciowych nie wolno odtwarzać, dopóki karty mają stowarzyszony sterownik urządzenia, uwzględniający APM oraz który dokonuje ponownej inicjacji adaptera po wystąpieniu pewnych warunków takich, jak usunięcie zasilania systemu. Systemy mogą zawieszać karty Typu III, które mają sterownik urządzenia, uwzględniający APM.
Plik RESUME.EXE dodaje się do pliku AUTOEXEC.BAT w korzystnym przykładzie wykonania wynalazku, przy czym jest on odpowiedzialny za transferowanie sterowania programami z systemem SO do Procedury Wznowienia. System SO w etapie 420 pomija obecność pliku RESUME.EXE. Jednakże system SO w etapie 421 wykonuje plik RESUME.EXE, który przekazuje sterowanie do Procedury Wznowienia, po skończeniu inicjowania adapterów Typu II przez sterowniki urządzeń, załadowanych przez system SO z plików CONFIG.SYS i AUTOEXEC.BAT.
Odnosząc się z powrotem do etapu 419, jeśli Znacznik Ponownej Inicjacji Adapterów jest wyzerowany w pamięci CMOS 96, to system SO przekazuje sterowanie wykonywaniem do Procedury Wznowienia poprzez program RESUME.EXE. Procedura Wznowienia odtwarza stan systemu na podstawie Pliku Zawieszenia z dysku stałego, przy czym jest to opisane szczegółowo w opisie do fig. 12.
Odnosząc się teraz do fig. 12, przedstawia ona sieć działań Procedury Wznowienia oraz etapy od 450 do 530. Po pierwsze jednostka CPU 40 podlega testowaniu w etapie 451. Jeśli jednostka CPU 40 wyposażona jest w technikę SMI, to generowany jest sygnał CPU wznowienie SMI, który umieszcza jednostki CPU w tym trybie, przy czym następuje przejście do etapu 454. Jeśli jednostka CPU nie jest wyposażona w technikę SMI, to zachodzi wznowienie zamykania systemu, w którym dokonuje się zerowania, a program obsługi zerowania przeskakuje do kodu w etapie 454. Podczas procesu konfiguracji - Obszar Danych Systemu BIOS i Tablica Wektorów podlega prawdopodobnie modyfikacji do nieznanego stanu. Zatem podstawowe procedury systemu BIOS mogą, lecz nie muszą funkcjonować zgodnie z oczekiwaniem. Procedura Wznowienia odblokowuje segment
E000H ze stanem odczyt/zapis, w etapie 454 oraz wywołuje Procedurę Wymiany Obszaru Danych Systemu BIOS i Tablicy Wektorów w etapie 456. Procedura ta wymienia znany, prawidłowy Obszar Danych Systemu BIOS i Tablicę Wektorów, które były skopiowane do segmentu E000H w etapie 414 - ze zmodyfikowanym Obszarem Danych Systemu BIOS i Tablicą Wektorów, które są właśnie aktywne w segmencie 0000H. Po skończeniu tej procedury, znany Obszar Danych Systemu BIOS i Tablica Wektorów są aktywne w segmencie 0000H, a zmodyfikowany Obszar Danych Systemu BIOS i Tablica Wektorów są w segmencie E000H, a procedury systemu BIOS funkcjonują zgodnie z oczekiwaniem.
Następnie Procedura Wznowienia blokuje wszystkie przerwania z wyjątkiem tych wspierających działanie klawiatury i dysku stałego, w etapie 458. Następnie Procedura Wznowienia umieszcza Plik Zawieszenia na dysku stałym 31 w etapie 460, i odczytuje rozmiar pliku oraz podpis, który, jak objaśniono powyżej jest wielobajtowym identyfikatorem dla Pliku Zawieszenia. Przepływ wykonywanego kodu rozgałęzia się w etapie 462, zależnie od tego, czy Plik Zawieszenia ma poprawny rozmiar oraz podpis. Jeśli Plik Zawieszenia nie ma poprawnego rozmiaru oraz podpisu, to Procedura Wznowienia zeruje Znacznik Zawieszenia w pamięci CMOS 96, w etapie 464, a sterowanie programami podlega przekazaniu do kodu w lokacji wskazanej przez Wektor Ustawiania W Stan Początkowy, w etapie 466, powodując tym samym, że ładowanie systemu odbywa się, jakby system nigdy nie był zawieszony. Z drugiej strony, jeśli Plik Zawieszenia ma poprawny rozmiar oraz podpis, to Procedura Wznowienia kontynuuje wznawianie systemu poprzez czytanie 64 KB bloku z Pliku Zawieszenia, znajdującego się za podpisem (część Pliku Zawieszenia odpowiadająca informacji o segmencie E000H) z przeznaczeniem do segmentu 1000H, w etapie 468.
Następnie obliczana jest suma kontrolna bloku w 1000H w etapie 470, przy czym odczytuje się poprzednio zapamiętaną sumę kontrolną z trwałej pamięci CMOS 96, w etapie 472, zaś przepływ kodu wykonywanego, rozgałęzia się w etapie 474, zależnie od tego, czy
180 369 suma kontrolna w etapie 470 jest taka sama, jak suma kontrolna obliczona w etapie 330. Jeśli suma kontrolna obliczona w etapie 470 nie jest taka sama, jak suma kontrolna obliczona w etapie 330, to Plik Zawieszenia trochę się rozpłynął (np. mógł ulec manipulacji), a sterowanie przekazuje się do etapu 464, które zeruje Znacznik Zawieszenia, przy czym system ustawia w stan początkowy, jak objaśniono w opisie do etapów 464 i 466. Jeśli suma kontrolna obliczona w etapie 470 jest taka sama, jak suma kontrolna obliczona w etapie 330, to domniemywa się, że Plik Zawieszenia jest tym samym zapisanym przez Procedurę Zawieszenia, a dane z segmentu 1000H są kopiowane do segmentu E000H, w etapie 476.
Teraz Procedura Wznowienia zapisuje na ekranie, w etapie 478, specjalny ekran sygnalizujący, aby poinformować użytkownika, ze system podlega odtworzeniu oraz, ze użytkownik powinien nacisnąć klawisze Ctrl-Alt-Del w celu przerwania wznowienia. Jak przy Procedurze Zawieszenia, naciśnięcie klawiszy Ctrl-Alt-Del zeruje Znacznik Zawieszenia, w etapie 526 i [powoduje] ponowne załadowanie systemu w etapie 528. Stąd po naciśnięciu klawiszy Ctrl-Alt-Del ponowne ładowanie systemu przebiega normalnie i wykonuje się Procedura Wznowienia.
Następnie odtwarzane są stany sterownika dyskietek 82077 84 oraz jednostki DMA 71 poprzez przepisanie wartości z segmentu E000H struktury danych do odpowiadających im rejestrów, odpowiednio w etapie 480 i 482.
Następnie, w etapie 1020 rozpoczyna działanie tor równoległy sterowany przerwaniami do odtwarzania stanu modemów na podstawie struktury danych segmentu E000H. Jak przy działaniu procedury w etapie 976, procedura odtworzenia stanu modemu przechwytuje przerwania odpowiadające portowi COMM, skojarzonemu z konkretnym modemem, odczytuje wartości ze struktury danych segmentu E000H, przesyła polecenia i wartości do modemu, aby spowodować odtworzenie w nim stanu rejestrów. Procedura ta przesyła pierwsze polecenie do modemu, a następnie odpowiada w trybie sterowania przerwaniami, odbierając odpowiedź modemu i przesyłając następną wartość do modemu odpowiednio do każdego przerwania z portu COMM, az do chwili odtworzenia rejestrów modemu. Podobnie jak z procedurą zapamiętania stanu modemu, jeśli nie jest ona wykonywana jako tor równoległy, to procedura może dodać kilka sekund do czasu, który zajmuje wznowienie systemu. Będąc torem równoległym sterowanym przerwaniami, nie przedłuża on lub przedłuża o bardzo mało czas niezbędny do wznowienia systemu, jeśli tylko w pełni wykona on swe funkcje zanim nastąpi odczyt stanu systemu z dysku stałego 31.
Po uruchomieniu procedury sterowanej przerwaniami w torze równoległym do odtwarzania stanu modemów w etapach , od 486 do 500, pamięć systemowa podlega odtworzeniu na podstawie Pliku Zawieszenia, przy użyciu procedury buforów bliźniaczych podobnej do procedury objaśnionej w opisie do etapów od 304 do 318 Procedury Zawieszenia. System buforów bliźniaczych odczytuje skompresowane dane z Pliku ,
Zawieszenia, zapisuje je do segmentu E000H, dokonuje ich dekompresji i zapisuje w pamięci systemowej. Dwie procedury działają w trybie multipleksowania czasu: jedna odczytuje dane z Pliku Zawieszenia i zapisuje je do segmentu E000E1, druga dokonuje dekompresji danych i zapisuje do pamięci systemowej. Ta druga procedura wykonuje się na pierwszym planie natomiast pierwsza, będąca procedurą sterowaną przerwaniami, działa w tle. Oczywiście, ze względu na to, że jest tylko jedna jednostka centralna CPU, to tylko jedna procedura może wykonywać się w danym okresie czasu. Jednakże, ponieważ pierwsza procedura jest sterowana przerwaniami, to może ona przerwać wykonywanie drugiej procedury, gdy wymaga się optymalizacji szybkości transferu danych z Pliku Zawieszenia. Każdy z tych buforów ma 8 kilobajtów pojemności, co powinno pozwolić na optymalizację czasu transferu.
Proces ten rozpoczyna się w etapie 486 odczytem z Pliku Zawieszenia i zapisem do segmentu E000H ilości danych wystarczającej do zapełnienia pierwszego z buforów o pojemności 8 KB. W tym czasie Procedura Odczytu z Bufora, która ogólnie wskazywana jest przez etap 489, zaczyna się w etapie 306. Procedura Odczytu z Bufora jest procedurą sterowaną przerwaniami, która działa w tle i obejmuje etapy 490 do 498. Procedura Dekompresji, ogólnie wskazywana przez etap 493, obejmuje etapy 494 do 498 i jest procedurą pierw
180 369 szoplanową. Po pierwsze, w trakcie 490, Procedura Odczytu z Bufora z etapu 489 rozpoczyna czytanie następnych 8KB danych z Pliku Zawieszenia i zapisywanie ich do drugiego bufora, będącego teraz buforem bieżącym. Podczas gdy Procedura Odczytu z Bufora z etapu 489 odczytuje następnych 8 KB danych z Pliku Zawieszenia i zapisywanie ich bufora bieżącego, to Procedura Dekompresji z etapu 493 czyta bufor zapełniony w etapie 486, dokonuje dekompresji skompresowanych danych i zapisuje je do pamięci systemowej, w etapie 494. Po dokonaniu dekompresji przez Procedurę Dekompresji z etapu 493 wszystkich danych z tego buforu, następnym krokiem jest określenie, czy już cała pamięć systemowa została poddana dekompresji, w etapie 494.
Sterownik IDE 86 nie może bardzo szybko odczytywać danych z dysku stałego 31. W konsekwencji Procedura Dekompresji z etapu 493 zawsze będzie kończyć dokonywanie dekompresji bufora 8 KB nie zapisanego na dysk stały 31, zanim Procedura Odczytu z Bufora z etapu 489 skończy odczytywanie danych z dysku stałego 31 do bufora bieżącego. Zatem Procedura Dekompresji z etapu 493 musi czekać, az Procedura Odczytu z Bufora 489 skończy odczytywanie danych z dysku stałego 31. Jeśli Procedura Dekompresji z etapu 493 nie skończyła dekompresji i zapisywania całej pamięci systemowej, to Procedura Dekompresji z etapu 493 czeka na Procedurę Odczytu z Bufora z etapu 489, w etapie 498. Procedura Dekompresji z etapu 493 i Procedura Odczytu z Bufora z etapu 489 komunikują się poprzez ustawianie znaczników. Kiedy Procedura Odczytu z Bufora z etapu 489 kończy odczytywanie danych z Pliku Zawieszenia do bieżącego bufora, to Procedura z etapu 489 przełącza następnie znaczniki buforowe, w etapie 490, wskazując Procedurze Dekompresji z etapu 493, ze może rozpocząć dekompresję danych w buforze, które zostały właśnie odczytane z Pliku Zawieszenia. Następnie Procedura Odczytu z Bufora z etapu 489 decyduje, czy blok 8 KB pozostaje do odczytu z Pliku Zawieszenia, w etapie 492 Jeśli nie to, Procedura Odczytu z Bufora z etapu 489 odczytuje pozostałe dane z Pliku Zawieszenia i zapisuje je do bieżącego bufora, w etapie 502. Procedura Odczytu z Bufora z etapu 489 przestaje działać w tle, czekając faktycznie na zakończenie przez Procedurę Dekompresji z etapu 493 dokonywania dekompresji ostatniej pamięci.
W międzyczasie Procedura Dekompresji z etapu 493, poprzez zbadanie znaczników buforowych, określa czy bufor jest gotowy do dekompresji pamięci systemowej. Oznacza to, ze Procedura Dekompresji z etapu 493 czeka w etapie 498, aż Procedura Odczytu z Bufora z etapu 489 skończy operację z bieżącym buforem, w którym to czasie kontynuowana jest pętla dekompresji, w etapie 494.
Po skończeniu dekompresji całej pamięci systemowej przez Procedurę Dekompresji z etapu 493, jedyną procedurą działającą w tle jest procedura sterowana przerwaniami odtworzenia stanu modemu, objaśniona w tekście towarzyszącym do etapu 1020, przy czym główny program kontynuuje swe działanie w etapie 504.
Następnie odtwarzane są stany sterownika wizji 56 i sterownika IDE 86 w etapie 504 i 506 poprzez przepisanie wartości z segmentu E000H struktury danych do rejestrów znajdujących się w obrębie każdego z tych dwóch urządzeń. Etap 504 wskazuje również punkt, do którego przechodzi Procedura Zawieszenia (patrz etap 1024), jeśli zaliczany jest Punkt Kontrolny.
Następnie, w etapie 1022, Procedura Wznowienia sprawdza, czy nastąpiło zakończenie procedury sterowanej przerwaniami odtworzenia stanu modemu, opisanej w tekście towarzyszącym etapowi 1020. Jeśli nie, to oczekuje ona na jej zakończenie.
Jak przedstawiono w etapie 508, po skończeniu procedury sterowanej przerwaniami odtworzenia stanu modemu, pamięć podręczna 41 jednostki centralnej CPU oraz systemowa pamięć podręczna 60 są uaktywniane poprzez zapisanie właściwych wartości odpowiednio do jednostki CPU 40 i sterownika pamięci podręcznej 62. Następnie Procedura Wznowienia odtwarza stan sterownika czasomierza 102, mikroprocesora 8042 interfejsu klawiatury 104 oraz sterownika przerwań 8259 92 poprzez zapisanie wartości z segmentu E000H struktury danych do rejestrów znajdujących się w obrębie odpowiednich urządzeń, w trakcie etapów od 510 do 514.
180 369
Następnie stany układów UART 94 są odtwarzane poprzez przepisanie wartości z segmentu E000H struktury danych do ich odpowiednich rejestrów, w etapie 484.
Następnie Procedura Wznowienia wywołuje Procedurę Wymiany Obszaru Danych Systemu BIOS i Tablicy Wektorów, w etapie 516. Przed wywołaniem tej procedury, znany Obszar Danych Systemu BIOS i Tablica Wektorów jest aktywny w segmencie 0000H, przy czym odczytany z Pliku Zawieszenia, Obszar Danych Systemu BIOS i Tablica Wektorów jest nieaktywny w strukturze danych segmentu E000H. Po wymianie znany Obszar Danych Systemu BIOS i Tablica Wektorów jest nieaktywny w segmencie E000H, a Obszar Danych Systemu BIOS i Tablica Wektorów, która była zapamiętana przez Procedurę Zawieszenia jest aktywny w segmencie 0000H.
W końcu Procedura Wznowienia przechodzi do Procedury Odtworzenia Stanu CPU, w etapie 518, która odtwarza stan jednostki CPU 40 do stanu zanim został on zawieszony. Procedura Odtworzenia Stanu CPU będzie pełniej objaśniona w opisie do fig. 14. Procedura Odtworzenia Stanu CPU przekazuje w końcu sterowanie wykonywaniem z powrotem do gospodarowania zasilaniem APM.
Ostatecznie, jednostka CPU 40 wykonuje instrukcję RETURN, powodującą, ze system wraca do APM. System kontynuuje teraz wykonywanie kodu, jakby system nigdy nie był zawieszony. Dla wszystkich praktycznych celów system nie podlega oddziaływaniu przez procedurę zawieszenie/wznowienie.
Odnosząc się teraz do fig. 13, przedstawia ona sieć działań Procedury Zapamiętania Stanu CPU. Procedura Zawieszenia przechodzi do Procedury Zapamiętania Stanu CPU w etapie 600. Należy zauważyć, że udoskonalone gospodarowania zasilaniem APM uaktywnia segmenty E000H i F000H, z których działają te procedury, z dostępem typu odczyt/zapis. Ponadto EFLAGS oraz osiem rejestrów ogólnego przeznaczenia było zapamiętanych przez APM, jak wskazano w etapie 602. Na początku Procedura Zapamiętania Stanu CPU oczekuje na dostęp typu DMA, aby zakończyć i zsynchronizować się z danych myszki 13, w etapie 604, aby zapewnić, że procedura ta wykona się między transmisjami pakietów z danymi myszki (pakietu myszki). Następujące kroki umożliwiają DMA zakończenie i synchronizację pakietu z danymi z myszki: (1) odblokowanie przerwań, (2) oczekiwanie 7 milisekund na zakończenie dowolnego dostępu DMA, (3) zablokowanie przerwań, (4) oczekiwanie 5 milisekund na granicę pakietu myszki, (5) odblokowanie przerwań, (6) oczekiwanie dalszych 5 milisekund na przybycie pakietu myszki (7) zablokowanie przerwań. Po wykonaniu tych kroków, kod może być bezpiecznie wykonany między pakietami myszki.
Następnie, w etapie 606, na Stosie umieszcza się stan Linii Adresowej 20 (port we/wy 92H).
Przepływ wykonywanego kodu rozgałęzia się następnie, w etapie 1030, zależnie od tego, czy CPU jednostka 40 jest częścią S wyposażoną w przerwanie SMI. Jeśli tak, to jednostka CPU 40 poleca mikrosterownikowi U2 wygenerować z powrotem do jednostki CPU 40 przerwanie SMI, w etapie 1032. W odpowiedzi na to przerwanie SMI, mikroprogram w jednostce CPU 40 zapamiętuje stan CPU 40 w E000:FE00H w strukturze danych segmentu E000H, w etapie 1034. Zatem, jednostka CPU 40 zapamiętuje stan koprocesora zmiennoprzecinkowego, w etapie 1036 i wywołuje Procedurę Zawieszenia (fig. 10), w etapie 1038. Jak to objaśniono w innym miejscu, następuje powrót Procedury Zawieszenia, w etapie 1040 oraz odtworzenie stanu koprocesora zmiennopozycyjnego, również w etapie 1040. Zatem w etapie 1042 instrukcja RSM (wznowienie) odtwarza stan jednostki CPU 40 i rozgałęzia się do etapu 732.
Z drugiej strony, jeśli jednostka CPU 40 nie jest wyposażona w przerwanie SMI, to stan jej musi być zapamiętany przy użyciu pozostałego z fig. 13 kodu, przy czym stan koprocesora matematycznego 44 umieszcza się na Stosie, w etapie 608. Następnie, w etapie 610, znacznik ustawia się lub zeruje, aby wskazać, czy CPU działa w, trybie 32-bitowym, czy 16-bitowym, odpowiednio. Przepływ wykonywanego kodu rozgałęzia się następnie, w etapie 612, zależnie od tego, czy jednostka CPU 40 działa w Trybie Chronionym, czy nie. Jeśli jednostka CPU 40 nie działa w Trybie Chronionym, to musi działać w Trybie Rzeczywistym, przy czym rejestry mogą być zapamiętane w bardzo prosty sposób. Po pierwsze,
180 369 wartości w słowie statusu maszyny i CR3 są zapisywane do segmentu E000H struktury danych w obszarach odpowiadających wartości TR oraz LDTR, ponieważ wartości TR oraz LDTR mają wartość zero w Trybie Rzeczywistym.
Kod ten następnie łączy się z ogólną ścieżką w etapie 616, kiedy to wartości zapamiętane w GDRT i LDRT są zapisywane w strukturze danych segmentu E000H. Następnie przepływ wykonywanego kodu rozgałęzia się, w etapie 618, zależnie od tego, czy jednostka CPU 40 działa w Trybie Wirtualnym procesora 8086, czy nie. Jeśli jednostka CPU 40 nie działa w Trybie Wirtualnym procesora 8086, to kod kontynuuje ruch w dół ogólną ścieżką do etapu 620, gdzie rejestry do usuwania błędów z programu DR7, DR6, DR3, 4R2, DR1 i DR0 są umieszczane na Stosie. Rejestry te są używane przez programy uruchomieniowe oraz inne procedury. Następnie DS, ES, FS i GS są umieszczane na Stosie, w etapie 622. Z kolei wartości z CS, SS i ESP są zapisywane do segmentu E000H struktury danych.
W tym punkcie, wszystkie wartości, które miały być , zapisane do segmentu E000H struktury danych zostały zapisane tak, ze atrybut segmentów E000H i F000H struktury danych, stanowiących Zwierciadlane Odbicie Pamięci RAM może zostać zmieniony z powrotem na tylko-odczyt, w etapie 626. Z kolei, pamięć podręczna 41 CPU zostaje opróżniona przy użyciu polecenia Zapis Powrotny i Unieważnienie Pamięci Podręcznej, w etapie 628.
Na końcu, ustawiany jest Znacznik Zamknięcia Systemu w pamięci trwałej CMOS 96, w etapie 630. Wreszcie Procedura Zapamiętania Stanu CPU Powraca w istocie do Procedury Zawieszenia, w etapie 632. Powrót ten jest faktycznie operacją WYZERUJ (ustaw w stan początkowy), po której następuje rozgałęzienie kodu. Jednostka CPU 40 ustawia w stan początkowy poprzez skok do kodu wskazanego przez Wektor Ustawiania W Stan Początkowy. Ustawianie w stan początkowy jednostki CPU 40 wymusza przejście jednostki CPU 40 do Trybu Rzeczywistego, w którym wszystkie urządzenia i lokacje pamięci mogą być udostępniane bez obawy wygenerowania błędu ochrony. Po tej chwili, stan jednostki CPU 40 został już zapamiętany a Procedura Zawieszenia musi zapamiętać stan pozostałej części systemu.
W obrębie kodu wskazanego przez Wektor Ustawiania W Stan Początkowy, sterowanie programami rozgałęzia się, zależnie od tego, czy ustawiony jest Znacznik Zamknięcia Systemu w pamięci trwałej CMOS 96. Jeśli Znacznik Zamknięcia Systemu jest wyzerowany, to system ładuje się tak, jakby uczynił to normalnie. Z drugiej strony, jeśli Znacznik Zamknięcia Systemu jest ustawiony, to kod rozgałęzia się do pozostałej części Procedury Zawieszenia zaś sterowanie wykonywaniem, przechodzi do etapu 253 na fig. 10 w obrębie Procedury Zawieszenia, która kończy zawieszanie system 10. Stąd Procedura Zapamiętania Stanu CPU skutecznie Powraca do Procedury Zawieszenia w etapie 632.
Odnosząc się z powrotem do etapie 612, jeśli jednostka CPU 40 jest w Trybie Chronionym, to kod rozgałęzia się, w trakcie 634, zależnie od tego, czy jednostka CPU 40 jest w Trybie Wirtualnym procesora 8086, czy nie. Jeśli jednostka CPU 40 nie jest Trybie Wirtualnym procesora 8086, to kod ponownie rozgałęzia się, w etapie 636, zależnie od tego, czy poziom bieżącego przywileju równa się zero. Jeśli poziom bieżącego przywileju jest różny od zera, to procedura bez odpowiedniego przywileju wykonuje Procedurę Zapamiętania Stanu CPU oraz wywoływana jest Procedura Fatalnego Błędu Zawieszenia (rozpoczyna się w trakcie etapie 652). Poniżej przedyskutuje się Procedurę Fatalnego Błędu Zawieszenia. Jeśli sterowanie programami powraca z Procedury Fatalnego Błędu Zawieszenia, to jednostka CPU musi być przywrócona do swych warunków sprzed wywołania Procedury Zapamiętania Stanu CPU tak, ze wykonywanie programu rozgałęzia się na etap 794, na fig. 14, który wykonuje częściowe odtworzenie stanu CPU. Wymagane jest jedynie częściowe odtworzenie, ponieważ bardzo mało zostało zmodyfikowane w jednostce centralnej CPU.
Odnosząc się z powrotem do etapu 636, jeśli wywołany kod ma prawidłowy poziom przywileju, to zapamiętywanie jest kontynuowane, w etapie 642, przy czym wartości CR0, CR3, TR i LDTR są zapamiętane w strukturze danych segmentu E000H. Następnie ten kod łączy się z ogólną ścieżką w etapie 616, kiedy to wartości w GDTR i IDTR są zapamiętane w strukturze danych segmentu E000H, jak objaśniono powyżej. Od tego miejsca, realizacja kodu podąża ścieżką od etapu 618 do etapu 632, co było objaśnione powyżej, skutkując
180 369
Powrotem (zerowanie wraz z rozgałęzieniem) do pozostałej części kodu Procedury Zawieszenia.
Odnosząc się z powrotem do etapu 634, jeśli jednostka CPU 40 jest w Trybie Wirtualnym procesora 8086, to wykonywanie kontynuuje się w etapie 644, kiedy to wartość słowa statusowego maszyny (mniej znaczące 16 bitów CRO) zapamiętuje się w strukturze danych segmentu E000H, przy czym Znacznik w strukturze danych segmentu E000H jest ustawiony, wskazując, że jednostka CPU 40 jest w Trybie Wirtualnym procesora 8086. Kod ten łączy się z ogólną ścieżką w etapie 616 poprzez transfer przez etapy 646 i 648. W etapie 618, jeśli CPU była Trybie Wirtualnym procesora 8086, to sterowanie rozgałęzia się na etap 650, kiedy to wartości DS, ES, FS i GS są zapamiętane w segmencie E000H struktury danych. Kod ponownie łączy się z ogólnym kodem w etapie 624. Od tego miejsca realizacja kodu podąża ścieżką od etapu 624 do etapu 632, co było objaśnione powyżej, skutkując Powrotem (zerowanie wraz z rozgałęzieniem) do pozostałej części kodu Procedury Zawieszenia.
W trakcie etapów od 652 do 664 napotyka się Procedurę Fatalnego Błędu Zawieszenia, przy czym wywołuje się ją w etapie 638, jeśli kod z niepoprawnym poziomem przywileju dokonuje prób zapamiętania stanu CPU. Po pierwsze, w etapie 654 zeruje się Czasomierz Odporny Na Uszkodzenia. Następnie głośnik brzęczy pewną liczbę razy ze słyszalną częstotliwością, np. trzy razy z częstotliwością 886 Hz w ciągu 0,25 sekundy z 1/6 sekundy przerwy między brzęczeniami, w etapie 656. Trzy brzęczenia (sygnały akustyczne) zwracają uwagę użytkownika, ze próbowane zawieszenie nie nastąpiło. Po brzęczeniu, Czasomierz Odporny Na Uszkodzenia ponownie podlega wyzerowaniu w etapie 658, aby dać użytkownikowi kolejne 15-18 sekund zanim wyczerpie się Czasomierz Odporny Na Uszkodzenia i nastąpi przez to zamknięcie zasilacza 17.
Następnie, Procedura Fatalnego Błędu Zawieszenia wielokrotnie sprawdza, czy Przełącznik 21 był naciśnięty przez użytkownika, w etapach 660 i 662, co by wskazywało, ze użytkownik chce przerwać proces zawieszania. Przełącznik podlega sprawdzaniu przez jednostkę CPU 40 na okoliczność zamknięcia, poprzez odpytywanie mikrosterownika U2, czy nastąpiło zdarzenie zamknięcia. Jeśli użytkownik naciśnie przycisk 21, to sterowanie wykonywaniem wraca do etapu 640, jak wyżej. Jeśli użytkownik nie naciśnie przycisku 21 w przeciągu 15-18 sekund, to Czasomierz Odporny Na Uszkodzenia wyczerpie się i zasilacz 17 zostanie wyłączony przez mikrosterownik U2, przy czym oczywiście całe wykonywanie kodu przez CPU 40 będzie zakończone, gdy napięcie w systemie przekroczy [zakres] tolerancji.
Odnosząc się teraz do fig. 14, przedstawia ona rozpoczęcie w etapie 700 przepływu działań Procedury . Odtworzenia Stanu CPU. Procedura ta wywoływana jest przez
Procedurę Wznowienia, po odtworzeniu [stanu] pozostałej części sprzętu oraz pamięci do ich stanu sprzed zawieszenia. Po pierwsze, jeśli segment E000H struktury danych nie ma jeszcze atrybutu odczyt/zapis, to [taki atrybut] powinien być nadany w etapie 702.
Następnie przepływ kodu wykonawczego rozgałęzia się, zależnie od tego, czy jednostka CPU 40 działała w Trybie Wirtualnym procesora 8086, gdy została zawieszona, w etapie 704. Jeśli jednostka CPU 40 działała w Trybie Wirtualnym procesora 8086, gdy system 10 został zawieszony, to odtwarza się kod w etapach 706 do 728, unikatowych dla Trybu Wirtualnego CPU 8086. Z kolei kod łączy się z ogólną ścieżką w etapach od 730 do 748.
Jeśli jednostka CPU 40 była w Trybie Wirtualnym procesora 8086, gdy stan ten został zapamiętany, to do CR3, LDTR i TR nie mogła mieć dostępu Procedura Zachowania Stanu CPU, aby zapamiętać ich wartości w strukturze danych segmentu E000H. Zatem CR3, LDTR i TR podlegają oszacowaniu, odpowiednio w etapach 706, 708 i 710 Ogólnie podlegają one oszacowaniu przez poszukiwanie w pamięci systemowej RAM 53 struktur, na które wskazują CR3, LDTR i TR, np. poprzez znalezienie wejścia do LDT w GDT, umożliwia się określenie LDTR.
CR3 podlega oszacowaniu w etapie 706. CR3 utrzymuje Rejestr Podstawowy Katalogu Stron PDBR (Page Directory Base Register), który zawiera adres ramki strony katalogu stron, utrzymuje bit Zablokowania Pamięci Podręcznej Poziomu Stron PCD (Page-Level
180 369
Cache Disable) oraz bit Jednoczesnego Zapisu Pamięci Podręcznej Poziomu Stron PCD (Page-Level WriteThrough) Oszacowanie PDBR wykonuje się, wiedząc, że katalog stron musi rozpoczynać się od granicy 4K w pamięci systemowej RAM 53 oraz znając wartości dla IDTR i GDTR, które zostały zapamiętane w strukturze danych segmentu E000H przy wykorzystaniu Procedury Zapamiętania Stanu CPU i przy założeniu, ze kod systemu BIOS wykonuje się z segmentu F000H. Założenie to jest uzasadnione, ponieważ kod systemu BIOS jest juz odzwierciedlony w pamięci Zwierciadlanej RAM, dla poprawy szybkości jego działania. Jeśli system operacyjny skopiował kod systemu BIOS do innego obszaru, to oszacowanie CR3 zakończy się błędem.
Według powyższych załozeń, każda strona 4 K pamięci fizycznej podlega sprawdzeniu, czy występuje tablica translacji stron, odpowiadająca segmentom kodu systemu BIOS. To jest adres efektywny 03C0H na stronie zawierałby wartości 000F0XXX, 000FlXXX, 000F2XXX, ... 000FEXXX. Po zlokalizowaniu strony, system pamięci RAM 53 poszukuje katalogu stron, którego pierwsze wejście odpowiada fizycznemu adresowi tablicy stron, która została zlokalizowana powyżej. Fizyczny adres katalogu stron jest poprawnym odgadnięciem wartości PDBR.
Przypuszczalna wartość PDBR podlega następnie weryfikacji, aby upewnić się, że PDBR dokona poprawnej translacji adresów dla GDTR i IDTR. To wykorzystuje się PDBR do translacji adresu liniowego GDTR, a pierwsze wejście GDT podlega weryfikacji na zero (pierwszych osiem bajtów GDT ma zawsze wartość 00H w dowolnym trybie CPU). Następnie fizyczny adres, który jest zwracany, podlega weryfikacji, czy mieści się w granicach pamięci fizycznej. Do przeprowadzenia translacji z liniowej na fizyczną wykorzystuje się procedurę, która imituje metodę translacji CPU. Adres który poddany został translacji, zwracany jest do ESI, a znacznik przeniesienia CF zeruje się, jeśli strona fizyczna występuje w pamięci fizycznej oraz CF ustawia się, jeśli strona fizyczna nie występuje w pamięci fizycznej. Przy użyciu procedury translacji odczytuje się pierwszy bajt GDT z pamięci 53. Jeśli pierwsze wejście GDT jest puste, to hipotetyczny PDBR przeszedłszy przez swój pierwszy test, ę podlega ponownemu testowaniu. Następnie wykorzystuje się PDBR do translacji IDTR, aby odnaleźć IDT, za pomocą procedury translacji. Następnie fizyczny adres, który jest zwracany, podlega weryfikacji, czy znajduje się w granicach fizycznej pamięci. Jeśli pierwsza lokacja IDT znajduje się w fizycznej pamięci, to PDBR przeszedł swój drugi test.
Jeśli hipotetyczny PDBR dokonuje poprawnie translacji na GDTR i IDTR, to domniema się, że wartość odpowiada PDBR i zapisuje się ją do obszaru CR3 w obrębie struktury danych segmentu E000H. Jeśli, z drugiej strony, hipotetyczny CR3 doprowadza test do błędu, to procedurę rozpoczyna się ponownie, w poszukiwaniu, w systemowej pamięci, tablicy translacji stron segmentu kodu systemu BIOS, co może prowadzić do poprawnej wartości CR3.
Dla PCD i PWT zakłada się zawsze, że mają one ustalone wartości 00H przy normalnych operacjach planarnych. Wartości te są ustalone na zero i zapisywane w obrębie PDBR obszaru CR3 w strukturze danych segmentu E000H.
Po dokonaniu oszacowania CR3, szacuje się LDTR w etapie 708. LDTR może być oszacowany, ustalając, ze CR3 . został oszacowany, wiedząc, ze LDT jest gdzieś w obrębie GDT i wiedząc, ze LDT musi być obecny w pamięci. Do oszacowania LDTR, przeszukuje się GDT w poszukiwaniu LDT, który został zaznaczony jako obecny. Domniema się, że pierwszy LDT obecny w fizycznej pamięci (sprawdzony przy użyciu procedury translacji, objaśnionej w tekście towarzyszącym etapowi 706) i oznakowany jako obecny, jest tablicą na którą wskazuje LDTR. Fizyczny adres początku tablicy zapamiętany jest w obszarze LDTR w strukturze danych segmentu E000H.
Wyraża się przekonanie, ze powyższa metoda oszacowania LDTR jest wystarczająco niezawodna, aby być przydatna, nawet pomimo to, ze pod nadzorem systemu operacyjnego OS/2 może być zaznaczony więcej niż jeden LDT, jako obecny i być obecny w pamięci fizycznej. Popularną procedurą Trybu Wirtualnego procesora 8086 jest EMM386, ale może
180 369 ona powodować pewne problemy. Jednakże CR3 i LDTR dla EMM386 mogą być łatwo oszacowane, ponieważ EMM386 ma tylko jeden CR3 i jeden LDTR.
Po dokonaniu oszacowania CR3 i LDTR, szacuje się TR w etapie 710. Istotnie, każde wejście selektora zadania w obrębie GDT i LDT prowadzi do poszukiwania selektora stanu zadania z ustawionym bitem zajętości. Sprawdza się pole typu dla każdego wejścia, aby zobaczyć, czy zajęty jest selektor stanu zadania 80286 lub zajęty jest selektor stanu zadania 80486. Pierwsze wejście z zajętym albo TSS , 286, albo TSS 486 domniema się, że jest adresem, który wskazuje TR. Fizyczny adres wejścia z zajętym TSS 286 lub TSS 486 zostaje zapamiętany w obszarze TR w obrębie segmentu E000H struktury danych. Jeśli żadne wejście nie ma zajętego TSS 286 lub TSS 486, to wartość zero zapamiętuje się w obszarze TR w obrębie struktury danych segmentu E000H.
Oszacowawszy CR3, LDTR i TR kontynuuje się działanie kodu w etapie 712. W etapie 712, jeśli TR wskazuje poprawny TSS, to zeruje się bit zajętości w TSS, wskazywanym przez TR, w etapie 714. Którakolwiek z dróg kontynuowania działania kodu w etapie 716, gdzie DS, ES, FS i GS są ładowane przez selektor jest poprawna dla GDT. Następnie CR3 i CRO są ładowane wartościami ze struktury danych segmentu E000H, w etapie 718. Z kolei odblokowuje się stronicowanie, w etapie 720 tak, że jedynym obszarem, dla którego adresowanie liniowe równa się adresowaniu fizycznemu, jest obszar w segmentach E000H i F000H. Następnie IDTR, GDTR, LDTR i TR są ładowane wartościami zapamiętanymi w strukturze danych segmentu E000H, w etapie 722.
Na końcu tworzy się Stos Przerwań Trybu Wirtualnego 8086 w etapie 724 i 726 przez umieszczenie odpowiadających wartości GS, FS, DS, ES, SS, ESP, EFLAGS (po ustawieniu bitu Trybu Wirtualnego) i CS ze struktury danych segmentu E000H na Stosie. Również, adres zwrotny, odpowiadający kodowi w etapie 730 umieszcza się na stosie w etapie 726. W końcu wykonuje się instrukcję IRETD, aby umieścić jednostkę CPU 40 z powrotem w Trybie Wirtualnym procesora 8086 i dokonuje transferu wykonywania, do kodu odpowiadającego etapowi 730.
Etap 730 rozpoczyna się w ogólnym torze, używanym przez każdy z różnych torów na fig. 14. W etapie 730, stan koprocesora 44 odtwarza się na podstawie wartości zapamiętanych w strukturze danych segmentu E000H. Następnie ze Stosu pobierany jest stan Linii Adresowej 20 (port we/wy 92H), w etapie 732. Etap 732 jest również miejscem, do którego przychodzi procedura zapamiętania stanu CPU, wykorzystująca przerwanie SMI (patrz etap 1046). Następnie segment E000H Zwierciadlanej Pamięci RAM ustawia się ponownie na tylko do odczytu, w etapie 734. W etapie 736, gospodarowanie zasilaniem APM łączy się ze sprzętem poprzez ponowne uruchomienie czasomierza odpornego na uszkodzenia, jak pisano w tekście do opisu fig. 6A i 19. Następnie atrybut Zwierciadlanej Pamięci RAM w segmentach E000H i F000H struktury danych ustawia się ponownie na tylko-odczyt, w etapie 738. W końcu, w etapie 740, Procedura Odtworzenia Stanu CPU ustawia znacznik, wskazujący, ze zachodzi normalne wznowienie. Etapy 742, 744 i 746 nie są wykonywane przez Procedurę Odtworzenia Stanu CPU, lecz po prostu są używane do przedstawiania, ze w pewnym okresie czasu poprzedzającym powrót do kodu, który był przerwany przez zdarzenie zawieszenia: pobieranych jest ze Stosu osiem rejestrów ogólnego przeznaczenia, zezwala się na przerwania masko walne (jeśli były one dozwolone, gdy działanie kodu zostało przerwane) oraz pobiera się znaczniki ze stosu. W końcu Procedura Odtworzenia Stanu CPU powraca do Procedury Nadzorczej, która zwraca sterowanie z powrotem do gospodarowania zasilaniem APM, które aktualizuje przestarzałe wartości systemowe i zwraca sterowanie do kodu, który został przerwany.
Odnosząc się teraz z powrotem do etapu 704, jeśli jednostka CPU 40 nie była w Trybie Wirtualnym procesora 8086, kiedy wystąpiło przerwanie, to działanie kodu podąża ścieżką od etapu 750 do etapu 792, kiedy to kod łączy się z ogólnym torem zadań od etapu 730 do etapu 748. W etapie 750, jeśli wartość TR w strukturze danych segmentu E000H określa, że TR wskazuje na prawidłowy TSS, to bit zajętości w TSS ulega wyzerowaniu w etapie 752. W innym przypadku, z kolei w etapie 754, GDTR i CRO są ładowane wartościami z segmentu E000H struktury danych.
180 369
Następnie pusta tablica katalogu stron i tablica translacji stron są ładowane do segmentu E000H, w trakcie zadań etapów od 756 do 764. Po pierwsze segment E000H Zwierciadlanej Pamięci RAM ustawia się na odczyt/zapis, w etapie 756. Po drugie pod adresem 0E0000H tworzy się nową tablicę katalogu stron, w etapie 758. Po trzecie, pierwsze wejście do nowej tablicy katalogu stron podlega modyfikacji na 0E1000H, w etapie 760. Po czwarte pod adresem 0E1000H tworzy się nową tablicę katalogu stron tak, że występują w niej adresy od 0E0000 do OFFFFF, przy czym adresy liniowe są równe adresom fizycznym dla tego zakresu adresów, w etapie 762. W końcu, podstawowy rejestr katalogu stron w CR3 podlega załadowaniu 0E0000H tak, ze translacje adresów są wykonywane poprzez nowy pusty katalog stron i nową pustą tablicę translacji w 0E0000H. Stronicowanie podlega ponownemu uaktywnieniu (jeśli daje się zastosować), kiedy CRO został załadowany w trakcie etapu 754.
Następnie, segmenty E000H i F000H Zwierciadlanej Pamięci RAM ustawia się na zapis/odczyt, w etapie 766. Z kolei, jeśli jednostka CPU 40 wykonywała kod 16-bitowy, gdy została zawieszona, to była w Trybie 16-Bitowym i adres efektywny, wskazujący na ścieżkę kodu 16-bitowego zostaje zapamiętany w strukturze danych segmentu E000H, w etapie 770. Z drugiej strony, jeśli jednostka CPU 40 nie była Trybie 16-Bitowym, to była Trybie 32Bitowym i adres, efektywny, wskazujący na ścieżkę kodu 32-bitowego zostaje zapamiętany w strukturze danych segmentu E000H, w etapie 772, zamiast w kopii 16-bitowej. W każdym zdarzeniu, te ścieżki kodu są równoległe i różnią się tylko tym, że jedne używają 16bitowych operandów a drugie 32-bitowych operandów. Etapy od 770 do 772 zwykle ustawiają adres efektywny na jedną z równoległych ścieżek. Do jednej z tych ścieżek (tej odpowiadającej adresowi efektywnemu) wchodzi się w etapie 782, poniżej.
Następnie, w etapie 774, wartość CR3 ze struktury danych segmentu E000H ładuje się do EDX, wartość SS ze struktury danych segmentu E000H ładuje się do CX, wartość ESP ze struktury danych segmentu E000H ładuje się do EBP, wartość TR ze struktury danych segmentu E000H ładuje się do górnej połówki ESI oraz wartość LDTR ze struktury danych segmentu E000H ładuje się do dolnej połówki ESI (SI). Wartości te są przesuwane do swoich właściwych lokacji, poniżej. Następnie GDTR, LDTR i CRO ładuje się ich wartościami ze struktury danych segmentu E000H, w etapie 776. W etapie 778, LDTR ładuje się wartością LDTR zapamiętaną w SI. Z kolei, kod skacze daleko do adresu efektywnego, umieszczonego albo w etapie 770, albo w etapie 772. Skok jest zakodowany poprzez bezpośrednio umieszczony opkod (kod operacyjny) w kodzie źródłowym oraz użycie adresu efektywnego albo z etapu 770, albo z etapu 772. Następnie kod kontynuuje działanie albo poprzez ścieżkę opkodu 16-bitowego, albo poprzez ścieżkę opkodu 32-bitowego, w etapie 782.
Następnie CR3 ładuje się wartością CR3 zapamiętaną w EDX, SS ładuje się wartością SS zapamiętaną w CX i ESP ładuje się wartością ESP zapamiętaną w EBP, w etapie 784.
Z kolei GS, FS, ES i DS są pobierane ze stosu, w etapie 786. W etapie 788, jeśli jednostka CPU 40 z przerwanym działaniem, wykonywała kod w trybie chronionym, to TR ładuje się wartością TR, zapamiętaną w górnej połówce ESI, w etapie 790. W innym przypadku, wykonywanie kodu kontynuuje się w etapie 792, kiedy to rejestry uruchomieniowe DR0, DR1, DR2, DR3, DR6 i DR7 są pobierane ze Stosu.
W tym punkcie, ta ścieżka kodu łączy się z ogólną ścieżką etapów od 730 do 748, które były objaśnione powyżej. W etapie 794, procedura usuwania błędów również) łączy się z ogólną ścieżką od etapu 640 Procedury Zapamiętania Stanu CPU.
Odnosząc się teraz do fig. 15, przedstawia ona sieć działań Procedury Zapamiętania Stanu 8259, w etapie 800.
Zapamiętanie stanów układów 8259 zachodzi poprzez zapamiętywanie wartości okresowych przerwań, używanych przez zegar czasu rzeczywistego 98, w etapie 802 oraz zapamiętanie wszystkich innych dających się czytać rejestrów, w etapie 804, w strukturze danych segmentu E000H. Architektura systemu komputerowego 10 wymaga pewnych rejestrów układu 8259 tylko do odczytu o ustalonych wartościach. Wartości te są dobrze znane i nie potrzebują być określane. Wartości układu 8259, które są trudne do uzyskania to adresy układu bazowego 8259, adresy układu podporządkowanego 8259 oraz dane, czy dwa
180 369 układy 8259 są ustawione tak, aby przedstawiać przerwania nie załatwione lub będące w trakcie obsługi przez system SO.
Cztery powyższe pozycje podlegają sprawdzeniu z pozostałym kodem na fig. 15. W etapie 806 układ 8259 podlega maskowaniu, pozostawiając jedynie nie zamaskowane przerwania od klawiatury 12 i myszki 13.
Następnie, tablica wektorów przerwań jest zapamiętywana poprzez kopiowanie 1 K dolnej pamięci fizycznej do struktury danych segmentu E000H, w trakcie 808. Z kolei, w etapie 810, nowa pusta tablica wektorów przerwań podlega ładowaniu do 1 K dolnej pamięci fizycznej, poprzez ładowanie 256 unikatowych pustych wektorów, które wskazują na 256 pustych procedur obsługi przerwań, które rozpoczynają się w segmencie C800H. W etapie 812, w segmencie C800H generuje się 256 pustych procedur obsługi przerwań.
Następnie blokowane są przerwania od klawiatury 12 i myszki 13, w etapie 814. Dowolne nie potwierdzone przerwania od klawiatury 12 i myszki 13 są potwierdzane, w etapie 816.
Następnie generowane jest przerwanie od klawiatury, w etapie 818, przy czym przerwanie to podlega sprawdzeniu, czy podstawowy układ 8259 jest ustawiony w stan nie załatwione lub w obsłudze, w etapie 820. Wartość ta jest następnie zapisywana do struktury danych segmentu E000H. W etapie 822, kod oczekuje na obsłużenie przerwania. Przerwanie obsługuje się, w etapie 824, poprzez wywołanie jednej z pustych procedur obsługi.
Poprzez wywołanie pustej procedury obsługi określa się adres układu podstawowego 8259 oraz określa, czy układ 8259 nie był załatwiony lub był w trybie obsługi. Adres układu podstawowego oraz tryb są zapamiętane w strukturze danych segmentu E000H.
Podobna procedura wykonywana jest dla układu podporządkowanego 8259 w etapach 826, 828, 830Ϊ 832.
W etapie 834 odtwarzana jest tablica wektorów przerwań poprzez kopiowanie wartości ze struktury danych segmentu E000H z powrotem do 1 K dolnej pamięci fizycznej.
Następnie segment E000H ponownie ustawia się w stan tylko do odczytu, w etapie 836, przy czym wszystkie przerwania są maskowane, w etapie 838, w przygotowaniu do powrotu do programu wywołującego, w etapie 840.
Odnosząc się teraz do fig. 16, przedstawia ona sieć działań procedury używanej do alokacji Pliku Zawieszenia. Jak wskazano w tekście towarzyszącym etapowi 1012, Plik Zawieszenia alokowany w tablicy FAT powinien zajmować przylegające sektory, aby umożliwić szybkie zapisywanie na dysk oraz szybkie odczytywanie z dysku odpowiednio podczas zawieszeń i wznowień. Jak jest to również oczywiste dla fachowców w przedmiotowej dziedzinie techniki, Plik Zawieszenia musi być wystarczająco duży, aby zachować skompresowaną zawartość dotyczącą stanu całego systemu.
Przy końcu, procedura do dynamicznej alokacji Zawieszenia rozpoczyna się w etapie 1050. Procedura ta wykonywana jest przez system SO za każdym razem, gdy system ładuje się bez wykonywania Procedury Wznowienia, przy czym powinna być wykonywana po dodaniu pamięci do systemu. Po pierwsze, Procedura Alokacji przedstawiona na fig. 16 bada, czy obecny jest układ gospodarowania zasilaniem, w etapie 1052, poprzez sprawdzenie znacznika w pamięci CMOS NVRAM. Jeśli nie występuje postać sprzętowa gospodarowania zasilaniem 106, to program wychodzi, w trakcie 1054. Jeśli występuje postać sprzętowa gospodarowania zasilaniem 106, to procedura sprawdza, czy Wznowienie nie jest załatwione, w etapie 1056. Jeśli nie, wtedy program wychodzi, w etapie 1058.
Jeśli wznowienie jest załatwione, to następnie Procedura Alokacji bada, czy istnieje Partycja Zapamiętania Pliku, w etapie 1060. Jeśli Partycja Zapamiętania Pliku istnieje, to program wychodzi, w etapie 1062, przy założeniu, że partycja jest wystarczająco duża, aby zachować stan całego systemu.
Jeśli nie istnieje Partycja Zapamiętania Pliku, to plik musi być alokowany w tablicy FAT dla Pliku Zapamiętania. Po pierwsze, określa się rozmiar pliku, w etapie 1064. Obliczenia te dokonuje się przez dodanie rozmiaru pamięci systemowej RAM 53, rozmiaru pamięci wizji 58, rozmiaru innych urządzeń, mających dużą pojemność pamięci nietrwałej
180 369 oraz 64 kilobajtowego obszaru do składowania wartości z rejestrów różnych urządzeń, takich jak jednostka CPU 40.
Po obliczeniu wymaganego rozmiaru Pliku Zapamiętania, dokonuje się następnie prób alokacji Pliku Zapamiętania w tablicy FAT, w etapie 1066. Jeśli nie ma wystarczającej przestrzeni do składowania, dostępnej na dysku stałym 31, to Procedura Alokacji wywołuje procedurę, w etapie 1070, aby zwiększyć rozmiar dostępnej przestrzeni na dysku stałym 31, jeśli jest to możliwe.
Wywołania systemu DOS nie gwarantują przylegania sektorów w pliku. Zatem, jeśli dysk stały 31 ma wystarczającą przestrzeń do zachowania Pliku Zapamiętania, to Procedura Alokacji określa następnie, czy przestrzeń jest zwarta, w etapie 1072. Jeśli Plik Zapamiętania jest pofragmentowany (nie jest zwarty), to Procedura Alokacji wywołuje procedurę, w etapie 1074, aby dokonać defragmentacji dysku stałego w celu zapewnienia zwartości pliku dla Plik Zapamiętania, jeśli jest to możliwe. Jeśli Plik Zapamiętania nie jest pofragmentowany, to następnie Procedura Alokacji zapisuje podpis (PS/1 Power Managment) do pierwszego sektora Pliku Zapamiętania, w etapie 1076. Z kolei Procedura Alokacji dokonuje konwersji DOS-owego programu obsługi dla pliku na fizyczny cylinder, - głowicę i sektor dla systemu BIOS i zapisuje te wartości do pamięci CMOS NVRAM, w etapie 1078 Na końcu Procedura Alokacji wychodzi, w etapie 1080.
Procedura do defragmentacji dysku stałego 31, która została wywołana w etapie 1074, rozpoczyna się w trakcie, etapu 1082 i trwa do etapu 1094. Na początku testuje się dysk stały 31, w etapie 1084, aby 'określić, czy jest on skompresowany przy użyciu jednej z procedur kompresowania dysków stałych.
Jeśli dysk stały 31 nie jest skompresowany, to z kolei dokonuje się defragmentacji całego dysku stałego 31, w etapie 1094, przy użyciu narzędzi defragmentujących. Zatem, procedura powraca, w trakcie 1088, aby rozpocząć od nowa część ałokacyjną Procedury Alokacji, w etapie 1090.
Jeśli dysk stały 31 jest skompresowany, to z kolei minimalizowana jest skompresowana część dysku stałego 31, w etapie 1092. Zatem, nie skompresowana część dysku stałego 31, w etapie 1094, podlega defragmentacji, przy użyciu narzędzi defragmentujących. Zatem następuje powrót procedury w etapie 1088, aby rozpocząć od nowa część ałokacyjną Procedury Alokacji, w etapie 1090.
Procedura, która została wywołana w etapie 1070 do zwiększenia przestrzeni dostępnej na dysku stałym 31 rozpoczyna się w etapie 1100 i trwa do etapu 1110. Po pierwsze podlega testowaniu dysk stały 31, w etapie 1102, aby określić, czy jest on skompresowany przy użyciu jednej z procedur kompresowania dysków stałych.
Jeśli dysk stały 31 nie jest skompresowany oraz dysk stały 31 nie ma wystarczająco dużo przestrzeni, dostępnej dla Pliku Zapamiętania, wyświetlany jest komunikat, w etapie 1104, informujący użytkownika ze, aby skorzystać z właściwości zawieszenia i wznowienia, użytkownik musi albo dodać dodatkową pojemność dyskową, albo skasować pliki z dysku stałego 31.
Jeśli dysk stały 31 jest skompresowany, to z kolei zwiększa się rozmiar nieskompresowanej części dysku stałego 31, jeśli jest to możliwe, w etapie 1108. Zatem, procedura powraca, w etapie 1110, aby rozpocząć od nowa część ałokacyjną Procedury Alokacji, w etapie 1090.
Odnosząc się teraz do fig. 17, przedstawiona jest na niej sieć działań Procedury Wyjścia ze Stanu Gotowości, w etapie 1120. Zrozumiałe jest, że gdy system wychodzi ze stanu gotowości 152, to system odwraca zmiany spowodowane przechodzeniem systemu z normalnego stanu operacyjnego 150 do stanu gotowości 152. W skrócie, gdy system wychodzi ze stanu gotowości 152, to system odtwarza sygnał wizji, rozświetla diodę LED 23, rozpędza dysk stały znajdujący się w obrębie napędu dysku stałego 31, odtwarza stan zegara systemowego, blokuje wywołania Stanu Jałowego CPU, wyposażonej w APM tak, że wywołania Stanu Jałowego CPU ze sterownika APM nie zatrzymują dłużej jednostki CPU 40 oraz zeruje znacznik, wskazujący, że system 10 jest w Stanie Gotowości 152.
180 369
Po pierwsze, procedura sprawdza, w etapie 1122, czy Punkt Kontrolny był wygenerowany, gdy system wszedł do stanu gotowości 152. Jeśli tak, to bit, zaliczenia Punktu Kontrolnego jest zerowany, w etapie 1124, wskazując przez to, że Punkt Kontrolny nie jest dłużej ważny. W tym konkretnym przykładzie wykonania wynalazku, Punkt Kontrolny traci swoją ważność, gdy system wychodzi ze stanu gotowości. Dane z Punktu Kontrolnego są używane wyłącznie do wznowienia systemu, kiedy system zachowa się niepoprawnie, będąc w stanie gotowości 152, ponieważ większość systemów wykorzystuje pliki wirtualnej wymiany na dysku stałym, to dokonując wznowienia na podstawie danych z Punktu Kontrolnego można byłoby wprowadzić maszynę do stanu, w którym plik wymiany będzie całkowicie odmienny od oczekiwanego, przez stan systemu zachowany jako dane z Punktu Kontrolnego. W pewnym przypadku, dane z Punktu Kontrolnego mogą być unieważnione po następnym dostępie dyskowym. W innym przypadku, dane z Punktu Kontrolnego mogłyby być unieważnione po dostępie dyskowym do pliku, który mógłby spowodować problemy systemowe, jeśli system byłby wznowiony na podstawie tych danych z Punktu Kontrolnego. Jeszcze w innym przypadku, dane z Punktu Kontrolnego mogłyby być dostępne dla użytkowników przez cały czas, ze zrozumieniem, ze wznowienie na podstawie danych z Punktu Kontrolnego może spowodować, ze pewne lub wszystkie dane na dysku stałym 31 będą stracone.
Zatem, jeśli nie był zaliczony Punkt Kontrolny, to, jednostka CPU 40, w etapie 1126, poleca mikro sterownikowi U2 spowodować, żeby: (i) sterownik wizji rozpoczął jeszcze raz generowanie sygnału wizji, (ii) syntezator zegarowy 906 wznowił generowanie wyższej częstotliwości zegara systemowego ( 25 MHz lub 33 MHz) i (iii) rozświetlił diodę LED 23. Następnie, w etapie 1128, jednostka CPU 40 zapisuje prawidłową wartość do sterownika dysku stałego 86, aby spowodować, ze napęd dysku stałego 31 rozpocznie rozpędzanie się. Następnie, blokowane są wywołania Stanu Jałowego CPU, wyposażonej w APM tak, że zatrzymania CPU nie wystąpią, w etapie 1130. Na końcu, zeruje się Znacznik Gotowości, w etapie 1132, wskazując, ze system 10 jest w normalnym stanie operacyjnym 150, a procedura wraca do programu wywołującego, w etapie 1140.
Odnosząc się teraz do fig. 18, przedstawia ona sieć działań procedury Wejścia do Stanu Gotowości, rozpoczynającą się w etapie 1140. W skrócie, gdy system wchodzi do stanu gotowości 152, to system gasi sygnał wizji, powoduje miganie diody LED 23, zwalnia obroty napędu dysku stałego 31, spowalnia zegar systemowy, zezwala na wywołania Stanu Jałowego CPU wyposażonej w APM tak, że wywołania Stanu Jałowego CPU ze sterownika APM zatrzymują CPU oraz ustawia znacznik, wskazując, że system 10 jest w Stanie Gotowości 152.
Po pierwsze procedura sprawdza, w etapie 1142, czy Punkt Kontrolny jest zaliczany. Jeśli tak, to wykonuje się większą część Procedury Zawieszenia, w etapie 1144 tak, ze stan systemu komputerowego 10 składuje się na dysku stałym 31. W niniejszym przykładzie wykonania wynalazku, Punkt Kontrolny jest zaliczany, gdy system wchodzi do stanu gotowości. Alternatywnie, Punkt Kontrolny może być , okresowo zaliczany i wykorzystywany do wznawiania systemu, z uwzględnieniem uwag przedyskutowanych w tekście towarzyszącym Fig. 17. Następnie, w etapie 1146, wykonuje się wystarczającą część Procedury Wznowienia, aby powrócić do normalnego stanu z częściowego Zawieszenia, które nastąpiło w etapie 1144. Następnie ustawiany jest bit zaliczenia Punktu Kontrolnego, w etapie 1148, aby wskazać, ze zaliczony został prawidłowy Punkt Kontrolny. Należy pamiętać, ze w tym przykładzie wykonania wynalazku, dane z Punktu Kontrolnego wykorzystywane są wyłącznie, gdy system zachowuje się niepoprawnie podczas stanu gotowości 152. W takim przypadku, gdy system podlega ładowaniu, to wznawia się go od zapamiętanego Punktu Kontrolnego.
W idealnym przypadku, Punkt Kontrolny powinien być całkowicie przejrzysty dla systemu. Jako taki, Punkt Kontrolny powinien być porzucony, jeśli wystąpi przerwanie sprzętowe, aby zapobiec utracie danych. Alternatywnie, przy normalnym zawieszeniu, ignorowane są dowolne przerwania sprzętowe.
180 369
Zatem, jeśli nie został zaliczony żaden Punkt Kontrolny, w etapie 1150, jednostka centralna CPU poleca mikrosterownikowi U2 spowodować, żeby: (i) sterownik wizji zatrzymał generowanie sygnału wizji, (ii) syntezator zegarowy 906 spowolnił zegar systemowy poprzez zmniejszenie jego wyższych częstotliwości (z 25 MHz lub 33 MHz) do 8 MHz i (iii) rozświetlił diodę LED 23. Następnie, w etapie 1152, jednostka CPU 40 zapisuje prawidłową wartość do sterownika dysku stałego 86, aby spowodować, że napęd dysku stałego 31 przestanie się obracać. Następnie, zezwala się na wywołania Stanu Jałowego CPU, wyposażonej w APM tak, ze wywołania Stanu Jałowego CPU ze sterownika APM zatrzymują CPU, w etapie 1154. Na końcu, ustawia się Znacznik Gotowości, w etapie 1156, wskazując, ze system 10 jest w stanie gotowości 152 , a procedura wraca do programu wywołującego, w etapie 1158.
Ze względu na to, ze niniejszy wynalazek został zilustrowany poprzez opis jego przykładu wykonania oraz ze względu na to, że przykłady wykonania wynalazku zostały opisane ze znaczną szczegółowością, nie jest zatem intencją zgłaszającego, aby zawężać lub w jakikolwiek sposób ograniczać zakres zastrzeżeń patentowych do takich szczegółów. Dodatkowe korzyści i modyfikacje zadań wykonywanych przez układ gospodarowania zasilaniem 106, takich jak monitorowanie sprzętowe jednego lub większej liczby przerwań, może zostać wbudowanych w zestaw układów. Zatem, wynalazek nie jest ograniczony do specyficznych szczegółów, które zostały przedstawione i opisane. Zgodnie z powyższym, mogą być czynione odejścia od tych szczegółów bez odchodzenia od istoty wynalazku.
180 369
180 369
180 369
CIĄG DALSZY FIG. 3B
180 369
CIĄG DALSZY FIG. 3A
FIG. 3B
180 369
158
156
Użytkownik naciska przycisk mocy przy zabronionym zawieszeniu
Stan wyłączenia
162
Wyczerpanie czasu nieaktywności stanu gotowości
152
Działanie użytkownika (naciśnięcie przycisku mocy przez użytkownika)
Stan gotowości
150
Użytkownik naciska przycisk mocy lub zachodzi zdarz, zewn. (alarm, dzwonek itd) stan
Użytkownik naciska przycisk mocy lub zachodzi zdarzenie zewn. (alarm, dzwonek itd.)
Normalny operacyjny
164
160
166
Koniec przerwy w aktywności stanu zawieszenia lub użytkownik naciska przycisk mocy, gdy dozwolony jest stan zawieszenia
168
170
Wyczerpanie czasu nieaktywności stanu zawieszenia
154
Stan zawieszenia
180 369 zasilacz
180 369
10-CHRDY#
PCD# IOR# IOW# «_ PROC RDY
CMD STATE# 5
SP(4J_ RSTDRV IRQ1
IRQ12 _8 vcc
C4 1μ F
I0
I8
I2
I3
I4
I5
I7
I9
10-GND
20-YCC l/OO 1/01 I/02 I/03 I/04
I/05 l/06 1/07
RWDO
14_____NC
15____NC
IO_STROBE#
RESET
18____________________
ACTMTY#
CIĄG DALSZY FIG. 6A2
PAL16V8
20-PIN PLCC
SD(O)
180 369
R10 220K
IN 4148 VBAT +
IN 4148
IN 4148
CR6
R11 180K
CR1
Wywołanie z COM 1 (Pm 9 ze złącza D)
R14
10K
CR3
R 13 150
R5 470K
U2
R1 470K
-L C6 1μΡ co
CIĄG DALSZY FIG 6A1
SD(1)
SD(2)
SD(3)
RST751
OSC1 10
OSC2 11
Y1 16MHz —IDH1
C2 22pF
12-GND 24-AUX5
P1 0
P1.1
P1.2
P0 0
PO 1
SWITCH
ΕΧΤ RING __!___________=______
CD
CD
N CO
P1.3
P1 4
P1.5/INT0
P1.6/INT1
P1.7/T0
RST o _L C3 q^22pF
X2
X1
P0.2
P36
P3.7
87C750
24-PIN DIP
AUX5
X C5
T 1μΡ
Dioda LED sprzężenia zwrotnego zasilania
EXT_WAKEUP # . q-----------------------------------------5
P3.2
P33
P34
P35
P3.0
P3.1
- 4 PWR_GOOD i
3 SMI_OUT# !
2 CLK_SLOW# i
1 DISP BLANK ! --------=-----------------1
RSTCNTRL
LED_CNTRL
NC
AUX5
VCC
R3 820
IN4148
CR4 ® R2
IN4148 5 56°
CR5
R12
330
PIN 39 ze złącza HDD
180 369
CIĄG DALSZY FIG. 6A2
180 369
AUX5
U2
CR6
R5 I
470K §
R9 I ΕΧΤ
-^A*---i------=-3^ WKEUP#
Mikrosterownik PO 2
900
C9 1000pF vcc
905
Łącze telef - a
Łącze telef-b
Układ zabezpieczenia przepięciowego
0PT01
-> Do modemu
AUX5
R23 220K
Przełącznik z eliminacją zakłóceń >— elektrycznych _
74H132 ·© —\ R20 )---w/---' 10ΚΩ
R21
AW--39 Ω
AUX5
Q13
Włącz zasilacz
Powergood >—
R22 470K
Q12
Q10
C20 μ F +5V - napięcie logiczne z zasilacza
Q11
180 369
180 369
180 369
FIG. 8
180 369
Procedura Nadzorcza. Pytaj o Zdarzenie, wywoływana przez APM
222
NIE
TAK
Wydaj Żądanie Zawieszenia do Sterownika APM SO (powoduje, ze APM wywołuje Procedurę Zawieszenia, Fig. 10)
Powrót do APM
FIG. 9A1
CIĄG DALSZY FIG. 9A2
180 369
CIĄG DALSZY FIG. 9A1
232
Wydaj Kod Zwrotny APM Normalne
Wznowienie (powoduje, że APM aktualizuje pewne parametry systemowe)
Powrót do APM
FIG. 9A2
180 369
FIG. 9C
FIG. 9B
180 369
F!G. 10A
CIĄG DALSZY FIG. 1OB
180 369
CIĄG DALSZY FIG. 1OA
. 267 ____V/
Powrót do APM
FIG. 10B
CIĄG DALSZY FIG. 10C
180 369
CIĄG DALSZY FIG. 1OB
-----------2_________
Zainicjuj sterownik IDE, aby wprowadzić dysk stały do określonego stanu
292
Tor równoległy
294
Zlokalizuj Plik Zawieszenia, odczytaj rozmiar pliku i podpis
Rozpoczmj Równoległą Procedurę Sterowaną Przerwaniami do odczytu rejestrów dowolnego modemu i zapisz ich wartość do struktury danych
E000H
350
976
352
Tu powoduje skok kodu naciśnięcie Ctrl-Alt-Delete
Wyzeruj znacznik zawieszenia w pamięci CMOS
296
NIE
TAK
297
Czy
Przejdź do wektora zerowania i skutkiem tego dokonaj restartu systemu (nie ma powrotu) rozmiar pliku i podpis są poprawne?
Wyzeruj czasomierz odporny na uszkodzenia i upewnij się, ze przełącznik nie był naciśnięty ponownie
300
Zlokalizuj Plik Zawieszenia na dysku stałym, zapisz frazę podpisu na dysku __ stałym
299
354
298
Wywołaj Procedurę Fatalnego Błędu Zawieszenia (zadanie 652 Fig. 13) / Przejdź do \ zadania 506, aby powrócić do normalnego stanu ze stanu częściowego K zawieszenia /
CIĄG DALSZY FIG. 10D
FIG. 10C
180 369
CIĄG DALSZY FIG 1OC
Zapisz całą64K strukturę danych z segmentu EOOOH
na dysk stały
303
304
Przeczytaj dane z pamięci systemowej, dokonaj kompresji i zapisz do bufora #1 w segmencie
EOOOH, przetwarzaj wystarczającą ilość danych, aby zapełnić bufor #1
Zapamiętaj stan sterownika wizji
306
Rozpoczmj w Torze Równoległym Procedurę Sterowaną Przerwaniami Zapisu z Bufora Bliźniaczego do Bufora
Tor równoległy (Procedura Zapisu z Bufora)
307
312
308
Czytaj następne dane z pamięci systemowej, dokonaj kompresji i zapisz do me zapisywanego właśnie bufora w segmencie EOOOH oraz do Pliku Zawieszenia. Przetwarzaj ilość danych, wystarczającą do zapełnienia bufora
316
Czekaj na zakończenie zapisywania bieżącego bufora do Pliku Zawieszenia przez Procedurę Zapisu z Bufora 7Γ
Zapisz bieżący bufor do Pliku Zawieszenia, uczyń drugi bufor buforem bieżącym
Wyzeruj czasomierz odporny na uszkodzenia i upewnij się, ze przełącznik nie był naciśnięty ponownie
TAK
NIE
309 / dokonano zapisu ostatniego bufora κ do Pliku
Zawieszenia?^/
310
TAK
CIĄG DALSZY FIG 40E
180 369
CIĄG DALSZY FIG. 1OD
318
320
Czekaj na zakończenie zapisywania bieżącego bufora do Pliku Zawieszenia przez procedurę Zapisu z Bufora _______________2_______
Zapamiętaj stan sterownika DMA, stan sterownika dyskietek 82077 i stan układów UART poprzez zapisanie wartości ich odpowiednich rejestrów do struktury danych segmentu E000H ______2
Czekaj, jeśli jest to konieczne, na zakończenie działania równoległego toru modemowego
978
DALSZY FIG WF
180 369
CIĄG DALSZY FIG 10E
Zapisz ponownie całą 64K strukturę danych z segmentu E000H na dysku stałym
Ustaw znacznik zawieszenia w pamięci CMOS
TAK
180 369
Procedura Inicjowania CPU skacze do Wektora Zerowania przy włączeniu zasilania lub zerowaniu
Test CPU: dokonaj konfiguracji sterownika pamięci
986
Nie
Czy mikrosterownik funkaonuje ?
Tak i__
994
988
Zeruj mikrosterownik
Dokonaj inicjowania konfiguracji pobudzenia: oblicz liczbę minut do pobudzenia alarmowego i zapiszjąw mikrosterowniku U3
990
Tak
Zablokuj właściwości c gospodarowania zasilaniem
Nie
Czy mikrosterownik funkaonuje ?
992
996
Tak
Czy system załadował się po podaniu zasilania AC ?
(czy mikrosterownik U3 został wyzerowany?)
Nie
997
Nie
Tak
Czy system został włączony z uzasadnionej przyczyny?
998 z' Czy system ma pozostać włączony?
(czy jest ustawiony bit DEFAULTON?)/
Tak
Nie
1000
Przekaz mikrosterownikowi U3, aby spowodował zaprzestanie podawania zasilania przez zasilacz, skutkiem tego dokonać wyłączenia zasilania systemu
CIĄG DALSZY FIG. 11B
180 369
CIĄG DALSZY FIG 11A
CIĄG DALSZY FIG. 11C
180 369
CIĄG DALSZY FIG. 11B
FIG. 11C
CIĄG DALSZY FIG. 11D
180 369
CIĄG DALSZY FIG. 11C
FIG. 11D
180 369
Wygeneruj przerwanie
SMI, aby wprowadzić
CPU do Trybu SMM
458 _________2_______
Zablokuj wszystkie przerwania z wyjątkiem przerwań od klawiatury i dysku stałego
460
Znajdź Plik Zawieszenia na dysku stałym, odczytaj podpis
TAK
Spowoduj zamknięcie systemu związane ze wznowieniem
CIĄG DALSZY FIG. 12B
180 369
CIĄG DALSZY FIG. 12A
CIĄG DALSZY FIG. 12C
180 369
CIĄG DALSZY FIG. 12B
Odtwórz stan sterownika dyskietek 8277 poprzez zapisanie wartości z segmentu E000H do rejestrów 8277
Odtwórz stan sterownika DMA poprzez zapisanie wartości z segmentu E000H do rejestrów tego sterownika
482
524
526
1020
Ctrl-Alt-Delete
Naciśnięcie powoduje przeskok w to miejsce
i
Tor równoległy
486
Odczytaj blok 8K z Pliku Zawieszenia do bufora #1 w segmencie E000H
Rozpocznij w Torze Równoległym Procedurę Sterowaną Przerwaniami Czytania do Bufora z Bufora B iźmaczego
494
488
Czytaj dane z bufora w segmencie E000H, do którego na bieżąco me dokonuje się zapisu, dokonaj ich dekompresji i zapisz do pamięci systemowej, przetwarzaj wszystkie dane znajdujące się w tym buforze
Rozpocznij Równoległą Procedurę Sterowaną Przerwaniami odczytu wartości rejestrów ze struktury danych E000H oraz wyślij je do modemów
Zeruj znacznik zawieszenia w pamięci CMOS _____2_____
Przejdź do wektora zerowania, a skutkiem tego załaduj system w normalny sposób
Procedura Równoległego Czytania do Bufora
489
498
Czekaj az Procedura Czytania do Bufora zakończy czytanie z Pliku Zawieszenia do bufora bieżącego
490
Czytaj następne 8K z Pliku Zawieszenia i zapiszje do bufora bieżącego, uczyń drugi bufor buforem bieżącym
CIĄG DALSZY FIG 12D
180 369
CIĄG DALSZY FIG. 12C
CIĄG DALSZY FIG. 12E
180 369
CIĄG DALSZY FIG. 12D
Wykonaj instrukcję RSM (wznowienie), która odtworzy stan CPU i powróci do APM
180 369
CIĄG DALSZY FIG 13B
180 369
CIĄG DALSZY FIG 13A
180 369
CIĄG DALSZY FIG. 13B
FIG. 13C
180 369
FIG. 13D
180 369
Ciąg dalszy na FIG. 14B
FIG. 14A
180 369
Ciąg dalszy z FIG. 14A
Ciąg dalszy na FIG. 14C
FIG. 148
180 369
Ciąg dalszy z FIG. 14B
Ciąg dalszy na FIG 14D
FIG. 14C
180 369
Ciąg dalszy z FIG. 14C
FIG. 14D
180 369
Ciąg dalszy na FIG. 15B
FIG. 15A
180 369
Ciąg dalszy z FIG. 15A
Ciąg dalszy na FIG. 15C
FIG. 15B
180 369
Ciąg dalszy z FIG. 15B
FIG. 15C
180 369
Ciąg dalszy na FIG. 16B
FIG. 16A
180 369
Ciąg dalszy z FIG. 16A
FIG. 16B
180 369
FIG. 16C
180 369
FIG 16D
180 369
FIG. 17
180 369
FIG 18
180 369
Ciąg dalszy na FIG. 19B
FIG. 19A
180 369
Ciąg dalszy z FIG 19A
FIG. 19B
180 369
Ciąg dalszy na FIG. 19D
FIG. 19C
180 369
Ciąg dalszy z FIG. 19C
FIG. 19D
180 369
Departament Wydawnictw UP RP. Nakład 70 egz. Cena 6,00 zł.

Claims (7)

  1. Zastrzeżenia patentowe
    1. Sposób sterowania systemem komputerowym zawierającym jednostkę centralną z przerwaniem zarządzania systemowego, zasilacz, procesor zarządzania zasilaniem i pamięć nieulotną w którym przełącza się zasilacz z pierwszego stanu do drugiego stanu w odpowiedzi na spełnienie przynajmniej jednego warunku z określonego zestawu warunków, wysyła się sygnał przerwania do jednostki centralnej przez procesor zarządzania zasilaniem poprzez uaktywnienie przerwania zarządzania systemowego jednostki centralnej przed przełączeniem zasilacza z pierwszego stanu do drugiego stanu oraz wykonuje się przynajmniej jeden określony zestaw zadań przez jednostkę centralną w odpowiedzi na przerwanie od procesora zarządzania zasilaniem i przed przełączeniem zasilacza z pierwszego stanu do drugiego stanu, przy czym ustalony zestaw zadań obejmuje zapisanie danych przez jednostkę centralną w pamięci nieulotnej, znamienny tym, ze steruje się procesor zarządzania zasilaniem (106) i przełącza się zasilacz (17) z pierwszego stanu do drugiego stanu, po czym dostarcza się zasilanie układowe do układu komputerowego (10) i pomocnicze zasilania do procesora zarządzania zasilaniem (106) z zasilacza (17), znajdującego się w pierwszym stanie, dostarcza się tylko pomocnicze zasilanie do procesora zarządzania zasilaniem (106) z zasilacza (17) znajdującego się w drugim stanie, oraz steruje się jednostkę centralną (40) w odpowiedzi na przerwanie tak, aby uniemożliwić procesorowi zarządzania zasilaniem (106) spowodowanie przełączenia zasilacza (17) z pierwszego stanu do drugiego stanu przez pewien czas, w którym jednostka centralna (40) wykonuje przynajmniej jeden ustalony zestaw zadań.
  2. 2. Sposób według zastrz. 1, znamienny tym, że przełącza się zasilacz (17) z drugiego stanu do pierwszego stanu w odpowiedzi na zakończenie odmierzania czasu przez układ czasowy, przy czym układ czasowy znajduje się w procesorze zarządzania zasilaniem (106) i kończy odmierzanie czasu po upływie ustalonego czasu, oraz oblicza się przez jednostkę centralną (40) długość przedziału czasowego i zapisuje się ją w procesorze zarządzania zasilaniem (106).
  3. 3. Sposób według zastrz. 1, znamienny tym, ze w trakcie wykonywania przynajmniej jednego ustalonego zestawu zadań zapisuje się przez jednostkę centralną (40) dane dotyczące ustalonego przedziału czasu do pamięci nieulotnej (86).
  4. 4. Sposób według zastrz. 3, znamienny tym, że ustalony przedział czasowy obejmuje pewną liczbę jednostek czasowych, po której zasilacz (17) przełącza się na sygnał z procesora zarządzania zasilaniem (106) z drugiego stanu do pierwszego stanu, po czym dane odpowiadające ustalonemu przedziałowi czasu obejmują wartość bezwzględną czasu i daty, kiedy procesor zarządzania zasilaniem (106) ma spowodować przełączenie zasilacza (17) z drugiego stanu do pierwszego stanu.
  5. 5. Sposób według zastrz. 3, znamienny tym, że w trakcie zapisywania danych w pamięci nieulotnej (86) przez jednostkę centralną (40) zapisuje się dane odnoszące się do alokacji zasobów systemowych.
  6. 6. Sposób według zastrz. 3, znamienny tym, że w trakcie wykonywania przynajmniej jednego ustalonego zestawu zadań zapisuje się stan układu komputerowego (10) w pamięci nieulotnej (86).
  7. 7. Sposób według zastrz. 3, znamienny tym, ze w trakcie zapisywania danych w pamięci nieulotnej (86) przez jednostkę centralną (40) zapisuje się dane odnoszących się do tego, jaki stan zasilacza powinien być domyślny.
    180 369
PL95319041A 1994-09-07 1995-08-31 Sposób sterowania systemem komputerowym PL PL PL PL PL PL PL180369B1 (pl)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/301,464 US5511204A (en) 1994-09-07 1994-09-07 Performing system tasks at power-off using system management interrupt
PCT/GB1995/002054 WO1996007963A1 (en) 1994-09-07 1995-08-31 Performing system tasks at power-off using system management interrupt

Publications (2)

Publication Number Publication Date
PL319041A1 PL319041A1 (en) 1997-07-21
PL180369B1 true PL180369B1 (pl) 2001-01-31

Family

ID=23163492

Family Applications (1)

Application Number Title Priority Date Filing Date
PL95319041A PL180369B1 (pl) 1994-09-07 1995-08-31 Sposób sterowania systemem komputerowym PL PL PL PL PL PL

Country Status (7)

Country Link
US (1) US5511204A (pl)
EP (1) EP0780000B1 (pl)
JP (1) JP3452426B2 (pl)
KR (1) KR100196893B1 (pl)
DE (1) DE69514241T2 (pl)
PL (1) PL180369B1 (pl)
WO (1) WO1996007963A1 (pl)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557739A (en) * 1994-11-14 1996-09-17 Gateway 2000, Inc. Computer system with component removal and replacement control scheme
US5727221A (en) * 1994-12-22 1998-03-10 Texas Instruments Incorporated Computer system power management interconnection circuitry and systems
KR0139985B1 (ko) * 1995-01-06 1998-07-01 김광호 옵션 카드의 하이버네이션 시스템
US5842037A (en) * 1995-03-20 1998-11-24 Telefonaktiebolaget Lm Ericsson Interference reduction in TDM-communication/computing devices
KR0172003B1 (ko) * 1995-03-28 1999-03-30 김광호 컴퓨터 시스템 및 그 제어방법
US5721877A (en) * 1995-05-31 1998-02-24 Ast Research, Inc. Method and apparatus for limiting access to nonvolatile memory device
US5838929A (en) * 1995-06-01 1998-11-17 Ast Research, Inc. Upgrade CPU module with integral power supply
US5974552A (en) * 1995-12-29 1999-10-26 Samsung Electronics Co., Ltd. Method and apparatus for executing a scheduled operation after wake up from power off state
US5765001A (en) 1996-04-29 1998-06-09 International Business Machines Corporation Computer system which is operative to change from a normal operating state to a suspend state when a power supply thereof detects that an external source is no longer providing power to said power supply at a predetermined level
US5827071A (en) * 1996-08-26 1998-10-27 Sorensen; Steven Michael Method, computer program product, and system for teaching or reinforcing information without requiring user initiation of a learning sequence
US6065125A (en) * 1996-10-30 2000-05-16 Texas Instruments Incorporated SMM power management circuits, systems, and methods
US6064652A (en) * 1996-11-13 2000-05-16 Next Level Communications Cell grant mechanism
US5922075A (en) * 1996-12-20 1999-07-13 Intel Corporation Power management control of pointing devices during low-power states
US5877956A (en) * 1996-12-23 1999-03-02 Micron Electronics, Inc. System for burning in and diagnostically testing a computer
US5872913A (en) * 1997-03-07 1999-02-16 International Business Machines Corporation System and method for low overhead, high precision performance measurements using state transistions
US6246397B1 (en) 1997-07-30 2001-06-12 Gateway, Inc. Screen saver computer program prohibition based on storage device activity
US6128732A (en) * 1997-12-15 2000-10-03 Compaq Computer Corporation Implementing universal serial bus support with a minimum of system RAM
US6122744A (en) * 1998-05-20 2000-09-19 Intel Corporation Selecting a routine based on processing power
JP2000021086A (ja) * 1998-07-03 2000-01-21 Hitachi Ltd データ記録再生方法
EP0973086B1 (en) * 1998-07-15 2009-11-04 Hewlett-Packard Company, A Delaware Corporation Computer remote power on
US6816934B2 (en) * 2000-12-22 2004-11-09 Hewlett-Packard Development Company, L.P. Computer system with registered peripheral component interconnect device for processing extended commands and attributes according to a registered peripheral component interconnect protocol
US6145048A (en) * 1998-09-17 2000-11-07 Micron Technology, Inc. Method of processing system management interrupt requests
US6212592B1 (en) 1998-09-17 2001-04-03 Micron Technology, Inc. Computer system for processing system management interrupt requests
US6615288B1 (en) * 1999-12-27 2003-09-02 Dell Products L.P. Generating system management interrupt in response to usb controller signal and processing interrupt routine in upper most level of system memory
US7049761B2 (en) 2000-02-11 2006-05-23 Altair Engineering, Inc. Light tube and power supply circuit
WO2002071734A2 (en) * 2000-12-19 2002-09-12 Smal Camera Technologies, Inc. Compact digital camera system
US7698689B2 (en) * 2002-08-13 2010-04-13 Phoenix Technologies Ltd. Method for meeting SMI duration limits by time slicing SMI handlers
US7870241B2 (en) 2002-11-27 2011-01-11 International Business Machines Corporation Automated power control policies based on application-specific redundancy characteristics
US7421431B2 (en) * 2002-12-20 2008-09-02 Intel Corporation Providing access to system management information
CN1327344C (zh) * 2003-08-19 2007-07-18 英特尔公司 无交流电源时保存和恢复工作状态的基本输入/输出系统
US8250406B2 (en) * 2003-08-19 2012-08-21 Intel Corporation Operational state preservation in the absence of AC power
KR100560751B1 (ko) * 2003-12-17 2006-03-13 삼성전자주식회사 정전 검출 장치
TWM294697U (en) * 2006-01-11 2006-07-21 Twinhead Int Corp Start system
US20090249087A1 (en) * 2008-03-25 2009-10-01 Nir Jacob Wakrat Power Event Indicator for Managed Memory Device
US8155766B2 (en) * 2008-11-03 2012-04-10 Hitachi, Ltd. Methods and apparatus to provision power-saving storage system
US9753487B2 (en) 2013-03-14 2017-09-05 Micron Technology, Inc. Serial peripheral interface and methods of operating same
US9459676B2 (en) 2013-10-28 2016-10-04 International Business Machines Corporation Data storage device control with power hazard mode
US9411704B2 (en) 2013-11-20 2016-08-09 Fujitsu Technology Solutions Intellectual Property Gmbh Computer systems and methods of detecting AC failure
US10317985B2 (en) 2014-01-29 2019-06-11 Hewlett Packard Enterprise Development Lp Shutdown of computing devices
EP2924538B1 (en) * 2014-03-25 2020-06-17 Fujitsu Technology Solutions Intellectual Property GmbH Computer system and method for its operation
US9343116B2 (en) 2014-05-28 2016-05-17 Micron Technology, Inc. Providing power availability information to memory
US10554519B2 (en) 2016-02-08 2020-02-04 Cray Inc. System and method for dampening power swings in distributed computer environments
US11294442B2 (en) 2017-02-01 2022-04-05 Hewlett-Packard Development Company, L.P. Delay of power off to write data from volatile to non-volatile memory of a solid state drive
KR102504660B1 (ko) * 2018-02-05 2023-03-02 삼성전자주식회사 응용 프로세서, 전장 프로세서, 그리고 응용 프로세서를 포함하는 컴퓨팅 장치
JP2023077138A (ja) * 2021-11-24 2023-06-05 株式会社リコー リブートシステム、方法およびプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3980935A (en) * 1974-12-16 1976-09-14 Worst Bernard I Volatile memory support system
US4171539A (en) * 1977-12-19 1979-10-16 The Bendix Corporation Power strobed digital computer system
US4443865A (en) * 1981-10-26 1984-04-17 Allen-Bradley Co. Processor module for a programmable controller
US4747041A (en) * 1983-06-27 1988-05-24 Unisys Corporation Automatic power control system which automatically activates and deactivates power to selected peripheral devices based upon system requirement
US4782355A (en) * 1985-06-26 1988-11-01 Canon Kabushiki Kaisha Power source device
US4851987A (en) * 1986-01-17 1989-07-25 International Business Machines Corporation System for reducing processor power consumption by stopping processor clock supply if a desired event does not occur
US5222239A (en) * 1989-07-28 1993-06-22 Prof. Michael H. Davis Process and apparatus for reducing power usage microprocessor devices operating from stored energy sources
US5167024A (en) * 1989-09-08 1992-11-24 Apple Computer, Inc. Power management for a laptop computer with slow and sleep modes
US5218704A (en) * 1989-10-30 1993-06-08 Texas Instruments Real-time power conservation for portable computers
US5230074A (en) * 1991-01-25 1993-07-20 International Business Machines Corporation Battery operated computer power management system
US5239652A (en) * 1991-02-04 1993-08-24 Apple Computer, Inc. Arrangement for reducing computer power consumption by turning off the microprocessor when inactive
US5410711A (en) * 1991-02-14 1995-04-25 Dell Usa, L.P. Portable computer with BIOS-independent power management
US5390350A (en) * 1991-04-22 1995-02-14 Western Digital Corporation Integrated circuit chip core logic system controller with power saving features for a microcomputer system
US5394527A (en) * 1991-05-17 1995-02-28 Zenith Data Systems Corporation Method and apparatus facilitating use of a hard disk drive in a computer system having suspend/resume capability
EP0584257B1 (en) * 1991-05-17 2004-08-04 Packard Bell NEC, Inc. Power management capability for a microprocessor having backward compatibility
US5283905A (en) * 1991-06-24 1994-02-01 Compaq Computer Corporation Power supply for computer system manager
US5423045A (en) * 1992-04-15 1995-06-06 International Business Machines Corporation System for distributed power management in portable computers

Also Published As

Publication number Publication date
KR100196893B1 (ko) 1999-06-15
US5511204A (en) 1996-04-23
PL319041A1 (en) 1997-07-21
DE69514241T2 (de) 2000-06-08
EP0780000B1 (en) 1999-12-29
JP3452426B2 (ja) 2003-09-29
WO1996007963A1 (en) 1996-03-14
DE69514241D1 (de) 2000-02-03
KR960011765A (ko) 1996-04-20
JPH0887365A (ja) 1996-04-02
EP0780000A1 (en) 1997-06-25

Similar Documents

Publication Publication Date Title
PL180369B1 (pl) Sposób sterowania systemem komputerowym PL PL PL PL PL PL
PL180098B1 (pl) Sposób sterowania systemem komputerowym PL PL PL PL PL PL PL PL
KR100218613B1 (ko) 컴퓨터시스템및글리치회로
KR100196883B1 (ko) 컴퓨터 시스템
KR100190736B1 (ko) 컴퓨터 시스템
JP4028605B2 (ja) Sormセッションを有するコンピュータ・システム及び方法
US5758174A (en) Computer system having a plurality of stored system capability states from which to resume
US5551043A (en) Standby checkpoint to prevent data loss
KR100288664B1 (ko) 컴퓨터시스템
KR0167810B1 (ko) 컴퓨터 시스템 및 그의 상태 보관방법
KR100188501B1 (ko) 다수의 사용자 및 윈도에 기초한 컴퓨터 시스템 및 다수의 사용자에 기초한 컴퓨터 시스템을 제공하는 방법
KR0128275B1 (ko) 컴퓨터 시스템과그의 전력사용 관리방법, 인터럽트 제어기의 베이스 어드레스 상태 확인방법과 씨피유 상태보존 및 복원방법
JP3341970B2 (ja) コンピュータ・システム
US5581692A (en) Automatic clearing of power supply fault condition in suspend system
EP0749063A2 (en) Method and apparatus for suspend/resume operation in a computer
KR100207884B1 (ko) 컴퓨터 시스템, 코드 실행 제어 방법, 및 컴퓨터 시스템 전력 관리 방법