Szablon wykładu należy uzupełnić podczas spotkania z wykładowcą STRUKTURA I DZIAŁANIE KOMPUTERA dr inż. Rafał Klaus Instytut Informatyki Politechnika Poznańska rafal.klaus@cs.put.poznan.pl www.cs.put.poznan.pl/rklaus Struktura i działanie komputera W1 struktura, funkcje, komputer PN-ISO/IEC 2382-1:1996-01.03.03, PN-N-01602:1997-2.24 STRUKTURA to sposób wzajemnego powiązania składników FUNKCJE określają działanie poszczególnych składników jako części struktury KOMPUTER - jednostka funkcjonalna, która może wykonywać obliczenia, włączając w to liczne operacje arytmetyczne i operacje logiczne, bez interwencji człowieka. Programy użytkowe System operacyjny Sprzęt 2 Model funkcjonalny komputera Komputer w ogólności realizuje cztery funkcje: przetwarzanie danych przechowywanie danych przenoszenie danych sterowanie Urządzenie do przechowywania danych Środowisko użytkowe źródło i miejsce przeznaczenia danych Urządzenie do przemieszczania danych Urządzenie sterujące Urządzenie do przetwarzania danych 3 drklaus 1
Operacje realizowane przez komputer przemieszczanie sterowanie przemieszczanie sterowanie pamięć przetwarzanie pamięć przetwarzanie przemieszczanie sterowanie przemieszczanie sterowanie pamięć przetwarzanie pamięć przetwarzanie 4 Struktura komputera Urządzenia peryferyjne Komputer pamięć przetwarzanie Jednostka centralna - procesor steruje działaniem komputera i realizuje jego funkcje przetwarzania danych Pamięć główna Przechowuje dane Wejście-wyjście Przenosi dane między komputerem a jego otoczeniem zewnętrznym Połączenia systemowe Mechanizmy zapewniające łączność między procesorem, pamięcią a wej.-wyj. wejściewyjście komputer Linie komunikacyjne Pamięć główna Połączenia systemowe Jednostka centralna 5 Cztery główne składniki procesora komputer Pamięć wejściewyjście główna Połączenia systemowe Jednostka centralna Jednostka sterująca steruje działaniem procesora i przez to komputera Jednostka arytmetycznologiczna (ALU) realizuje funkcje przetwarzania danych Rejestry realizują wewnętrzne przechowywanie danych w procesorze Połączenia wewnętrzne Mechanizm zapewniający łączność między jednostką sterującą, ALU a pamięcią rejestry Jednostka centralna Połączenia wewnętrzne Jednostka sterująca Jednostka arytmetyczno -logiczna 6 drklaus 2
procesor Jednostka sterująca rejestry magistrale Jednostka sterująca ALU Wykonanie rozkazu to szereg kroków zwanych cyklami (pobranie, adresowanie, wykonanie,..) Każdy cykl to sekwencja operacji - mikrooperacji np. przeniesienie danych między rejestrami, magistralą zewnętrzną, ALU Jednostka sterująca ma dwa zadania: Wykonanie mikrooperacji przez procesor we właściwej kolejności wynikającej z realizowanego programu Generowanie sygnałów sterujących, które powodują wykonanie mikrooperacji (otwieranie, zamykanie bram logicznych) Układy logiczne szeregowania Jednostka sterująca Pamięć sterująca Rejestry i dekodery jednostki sterującej 7 Komputer PN-ISO/IEC 2382-1:1996-01.03.04 Urządzenie, które jest sterowany przez wewnętrznie zapamiętane programy i który jest zdolny wykorzystać wspólną pamięć dla całego programu, bądź jego części, a także dla wszystkich lub części danych koniecznych do wykonania programów; wykonuje programy napisane lub zlecone przez użytkownika; wykonuje zlecone przez użytkownika manipulacje na danych dyskretnych reprezentowanych cyfrowo, włączając w to operacje arytmetyczne i operacje logiczne; także wykonuje programy, które się same modyfikują w trakcie przetwarzania. 8 www.mklaus.prv.pl Hardware und Software in einem Computersystem 9 drklaus 3
www.mklaus.prv.pl Aufbau eines Computersystems 10 Podstawowy cykl rozkazu Procesor realizując program wykonuje pewne powtarzające się czynności, polegające na cyklicznym pobieraniu kodów rozkazu z pamięci i wczytaniu ich do układu sterowania procesora, a następnie realizacji rozkazów, których kod został pobrany. W cyklu rozkazowym wyróżniamy dwie podstawowe fazy: fazę pobrania (fetch) i fazę wykonania (execution). 11 www.mklaus.prv.pl Aufbau eines Mikrocomputersystems 12 drklaus 4
Cykl rozkazu www.jlk.prv.pl Odczytanie z pamięci operacyjnej rozkazu wskazywanego przez licznik rozkazów LR i umieszczenie go w rejestrze rozkazów RR Dekodowanie rozkazu określenie jego typu i liczby ewentualnych dalszych argumentów Jeśli to konieczne to wyznaczenie adresów i pobranie potrzebnych argumentów Przesłanie do rejestru adresowego RA adresów argumentów i zmiana zawartości LR tak, aby wskazywał na następny rozkaz do pobrania Wykonanie wymaganych czynności wskazywanych przez rozkaz i zapamiętanie wyniku, a mianowicie, po zdekodowaniu i zinterpretowaniu rozkazu, układ sterujący generuje ciąg odpowiednich sygnałów. Rozkaz wykonuje ALU w procesorze, wykorzystując do tego celu rejestry robocze. W zależności od wyniku wykonania rozkazu ustawiane są znaczniki (ang. flags), które informują układ sterowania o bieżącym stanie procesora Odczytanie stanu procesora i przejście do kroku pierwszego 13 CYKLE www.jlk.prv.pl Cykl maszynowy Sekwencja operacji w jednostce centralnej, odpowiadająca jednemu cyklowi pamięci, cyklowi wejścia/wyjścia (we/wy) albo równoważnej operacji wewnętrznej. Rozkaz do jednego wykonania może wymagać jednego lub więcej cykli maszynowych, a cykl maszynowy zawiera zwykle więcej niż jeden cykl zegarowy. Cykl rozkazu Wykonanie programu Cykl rozkazu pobranieadresowaniewykonanieprzerwanie µop µop... 14 www.mklaus.prv.pl 15 drklaus 5
Przykład zależności czasowych związanych z operacją wczytania danych z urządzenia wejściowego. Cykl rozkazowy Cykl maszynowy 1 Cykl maszynowy 2 Cykl maszynowy 3 Impulsy taktujące 0T 1T 2T 3T 4T 5T 6T 7T 8T 9T 10T Cykl zegarowy Etap pobrania oraz Etap pobrania adresu Etap wczytania dekodowania rozkazu urządzenia wejścia danych 16 17 Adresowanie zawartością wskaźnika rozkazów Rozkaz przesłania D:=C a) sieć działań; b) pobranie rozkazu; c) wykonanie rozkazu 18 drklaus 6
Adresowanie zawartością wskaźnika danych 19 Adresowanie zawartością wskaźnika danych (pointer addressing) 20 Rozkaz z argumentem bezpośrednim = rozkaz z adresem natychmiastowym (immediate addressing) 21 drklaus 7
Adresowanie bezpośrednie (direct addressing) 22 Formaty rozkazów 0 B 1 C 2 D 3 E 4 H 5 L 6 M(HL) 7 A 00 d 110 n 00 001 110 10011000 MVI C,152D 0011 010 al ah 0 STA 1 LDA M(a):=A A:=M(a) 23 Z zero Z=1 gdy wynik operacji wynosi zero S- znak - najbardziej znaczący cy bit wyniku P parzystość gdy wynik zawiera parzystą liczbę jedynek CY przeniesienie przeniesienie (pożyczka) z najbardziej znaczącego cego bitu AC- przeniesieni pomocnicze przeniesieni z 3 go bitu A = 1001 0101 +y = 1101 0111 1 0110 1100 CY A 24 drklaus 8
Skok do podprogramu a) z programu głównego b) z innego podprogramu (zagnieżdżenie) www.jlk.prv.pl 25 Zapis i odczyt informacji ze stosu www.jlk.prv.pl 26 11001101 al ah 11001001 27 drklaus 9
Zespół jednostki centralnej prostego mikroprocesora www.mklaus.prv.pl 28 Fluβdiagramm der Operationsschritte 29 30 drklaus 10
Rozkaz RST www.jlk.prv.pl 31 Rozkaz MOV M,B www.jlk.prv.pl 32 www.jlk.prv.pl 33 drklaus 11
www.jlk.prv.pl 34 Zapisać w pamięci RAM od adresu 0000H 3 bajty rozkazu CALL 01ABH. Wykonać rozkaz w cyklu maszynowym obserwując zmiany na magistrali. Jaki rozkaz powinien poprzedzać CALL? W celu poprawnego zadziałania rozkazu CALL należy najpierw ustawić wskaźnik stosu SP. W celu dokonania tej poprawki należy na początku programu dodać rozkaz LXI SP, 04 który to ustawi wskaźnik stosu na adres 04. Adres 00 0001h 0002h Adres 00 0001h 0002h 0003h 0004h 0005h Wartość CDh ABh 01h Wartość 31h 04h CDh ABh 01h Mnemonik CALL 01ABh Mnemonik LXI SP, 04 CALL 01ABh 35 Wprowadzić do pamięci RAM program ustawiający wskaźnik stosu na adres 400H wykonujący kolejno rozkazy RST 7-4 i zatrzymujący mikroprocesor (rozkaz HALT ). Pod odpowiednimi adresami, do których odwołują się RST 7-4, umieścić rozkaz powrotu z podprogramu. Adres 00 0001h 0002h 0003h 0004h 0005h 0006h 0007h 0020h 0028h 0030h 0038h Wartość 31h 10h FFh F7h EFh E7h 76h Mnemonik LXI SP, 10 RST 7 RST 6 RST 5 RST 4 HLT Adres= 8*n Np. dla RST 7 8*7=56D=38H 36 drklaus 12
Interakcja jednostki centralnej ze sterownikiem urządzenia wejścia-wyjścia działa? Odpytywanie (ang. polling) procesor co jakiś czas (w szczególności bez przerwy) wykonuje rozkaz odczytu odpowiedniego rejestru sterownika, sprawdzając jego stan. Sterowanie przerwaniami (ang. interrupt-driven I/O) procesor inicjalizuje pracę sterownika a o jej zakończeniu lub zaistnieniu określonego stanu informowany jest przez przerwanie, które zgłasza sterownik. Bezpośredni dostęp do pamięci (ang. direct memory access) zadanie przekazywania danych pomiędzy sterownikiem a pamięcią spada na specjalizowany układ (DMA), który wykonuje swoje zadanie bez angażowania procesora. 37 Przerwanie Wstrzymanie takiego procesu, jak wykonanie programu maszynowego, spowodowane przez zdarzenie zewnętrzne w stosunku do tego procesu i realizowane w taki sposób, że proces może być jeszcze wznowiony. procesor inicjalizacja operacji sterownik przerwań sprawdzanie stanu rejestry adaptera adapter 38 Sterowanie przerwaniami przepływ sterowania program użytkownika moduł sterujący realizacja na osi czasu 1 1 2a 2b 3a 3b zapis I/O zapis I/O rozkaz I/O podprogram obsługi przerwania 4 5 4 2a 5 2b 4 3a 5 3b realizacja operacji I/O realizacja operacji I/O 39 drklaus 13
Sekwencyjna obsługa przerwań przepływ sterowania program użytkownika procedura obsługi przerwania 1 procedura obsługi przerwania 2 40 Zagnieżdżona obsługa przerwań przepływ sterowania program użytkownika procedura obsługi przerwania 1 procedura obsługi przerwania 2 41 Priorytetowa obsługa przerwań przepływ sterowania program użytkownika procedura obsługi przerwania o średnim priorytecie procedura obsługi przerwania o wysokim priorytecie procedura obsługi przerwania o niskim priorytecie 42 drklaus 14
Podać +12V na wyjście INTA. Sprawdź czy przerwanie zostanie przyjęte. Jaki rozkaz i pod jakim adresem umieścić, aby możliwe było przyjęcie przerwania? Adres 00 0001h 0002h 0003h 0004h 0005h 0006h 0038h Wartość 31h 10h C3h 03h Mnemonik LXI SP, 10 NOP JMP 0003h Program ten nie reaguje na sygnał przerwania. W celu włączenia obsługi przerwań należy wykonać rozkaz. W podanym powyżej programie należałoby go umieścić np. zamiast rozkazu NOP 0003h FBh 43 Kiedy pojawia się INTE? Czy przerwanie, które przyszło przed otwarciem systemu przerwań jest zapamiętywane i obsługiwane po otwarciu? Wysłać przerwanie w czasie pobrania kodu rozkazu JMP. Kiedy rozpocznie się reakcja na przerwanie? Kiedy pojawia się INTA? Kiedy zmienia się INTE? sygnał INTE pojawia się po wykonaniu następnego (w stosunku do ) rozkazu przerwanie które przyszło przed otwarciem systemu przerwań zostanie zignorowane przerwanie które pojawi się w trakcie wykonywania rozkazu zostanie zignorowane (układ przerwań jest włączany po wykonaniu się kolejnego rozkazu) rozpoczęcie obsługi przerwania wysłanego w trakcie wykonywania się rozkazu JMP zostanie obsłużone po wykonaniu skoku sygnał INTA pojawia się w momencie rozpoczęcia obsługi przerwania chwilę później zostaje zdjęty z magistrali sygnał INTE w celu zapobiegnięcia przerwania obsługiwanego właśnie przerwania (można oczywiście jeśli potrzebujemy ręcznie odblokować system przerwań rozkazem ) Adres 00 0001h 0002h 0003h 0004h 0005h 0006h 0038h Wartość 31h 10h FBh C3h 03h Mnemonik LXI SP, 10 JMP 0003h 44 Napisać program umożliwiający przyjmowanie i zliczanie przerwań. Program obsługi przerwania znajduje się w pamięci od adresu 38H. Zliczanie przerwań ma Obsługa następować w przerwań komórce pamięci o adresie 80H. Adres 00 0001h 0002h 0003h 0004h 0005h 0006h 0007h 0008h 0009h 000Ah 000Bh 0038h 0039h Wartość 31h 10h 21h 80h 36h FBh C3h 08h 34h Mnemonik LXI SP, 10 LXI H, 0080h MVI M, JMP 0008h INR M adres 0000 0003 0004 0005 0038 0039 0042 mnemonika LXI SP,400H NOP JMP 4 INR A STA 80H 45 drklaus 15
Zmodyfikować program tak, aby przerwania były przyjmowane w Obsługa stanie HALT przerwań Adres 00 0001h 0002h 0003h 0004h 0005h 0006h 0007h 0008h 0009h 0038h 0039h 003Ah Wartość 31h 10h 21h 80h 36h FBh 76h 34h FBh Mnemonik LXI SP, 10 LXI H, 0080h MVI M, HLT INR M adres 0000 0003 0004 0005 0038 0039 0042 mnemonika LXI SP 400H HALT JMP 4 INR A STA 80H 46 Zmodyfikować program tak, aby po przyjęciu 20 przerwań zamknąć system przerwań i zasygnalizować fakt urządzeniom zewnętrznym (np. port 8255). Adres 00 0001h 0002h 0003h 0004h 0005h 0006h 0007h 0008h 0009h 0038h 0039h 003Ah 003Bh 003Ch 003Dh 003Eh 003Fh 0040h 0041h 0042h 0043h Wartość 31h 10h 21h 80h 36h FBh 76h 34h 7Eh FEh 20h CAh 41h FBh D3h 13h Mnemonik LXI SP, 10 LXI H, 0080h MVI M, HLT INR M MOV A, M CPI 20h JZ 0041h OUT 13h 47 Klaus R. Lemieszewski Ł.: Systemy operacyjne cykl wykładów, WOM, Gorzów Wlkp., 2007, ISBN 978-83-89560-19-3 179 stronicowy podręcznik akademicki podzielono na dwie części. W pierwszej opisane zostały podstawy teoretyczne budowy systemów operacyjnych. Wdrugiejczęści książki znajdują się ćwiczenia, stanowiące podstawę zdobycia praktycznych umiejętności obsługi istniejących na rynku systemów operacyjnych. Książka została wzbogacona o płytę CD zawierającą zbiór programów freeware poszerzających zakres materiału do nauki systemów operacyjnych. Ksiązka jest cenową alternatywą dla innych tego typu pozycji na rynku. Kupić można w Księgarni Akademickiej na Politechnice Poznańskiej (budynek BM) lub u autora. (rafal.klaus@cs.put.poznan.pl) 48 drklaus 16
Dziękuję za uwagę Komentarze i pytania Prawo Balaniego: Jak długo trwa minuta, zależy od tego, po której stronie drzwi toalety się znajdujesz. 49 drklaus 17