Wykład jest przygotowany dla IV semestru kierunku Elektronika i Telekomunikacja. Studia I stopnia Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Innowacyjna dydaktyka bez ograniczeń zintegrowany rozwój Politechniki Łódzkiej zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych Zadanie nr 30 Dostosowanie kierunku Elektronika i Telekomunikacja do potrzeb rynku pracy i gospodarki opartej na wiedzy 90-924 Łódź, ul. Żeromskiego 116, tel. 042 631 28 83 www.kapitalludzki.p.lodz.pl
Systemy wbudowane (Embedded Systems) System wbudowany to system specjalnego przeznaczenia, którego sercem jest wbudowany komputer i zaprojektowany do wykonania niewielu wcześniej zdefiniowanych zadań, zazwyczaj z bardzo szczegółowymi wymaganiami Przykłady: - odtwarzacze MP3 - telefony komórkowe - systemy naprowadzania pocisków - układy ABS (Antilock Brake System) SoC (system on chip) to cały układ specyficzny dla danej aplikacji (ASIC application-specific integrated circuit) zintegrowany w jednym układzie scalonym, używający architektury procesora IP (Intellectual Property) Alternatywa programowane sterowniki (PLA) lub FPGA 2
Parametry systemów wbudowanych Głównym celem jest zmniejszenie złożoności sprzętowej i kosztu Istnieją systemy pracujące w czasie rzeczywistym Urządzenia I/O (wyłączniki, silniki, światła, itd.) nazywane są urządzeniami polowymi (field devices); sprawdzenie stanu wejściowych urządzeń przez procesor, wykonanie na danych zaplanowanego algorytmu i przesłanie wyników na wyjściowe nazywa się skanem (scan). W każdym skanowaniu sprawdzone są wszystkie wejścia, algorytm, wszystkie wyjścia są uaktualnione Program sterujący jest przechowywany w ROM lub flash memory Wielkość pamięci operacyjnej (RAM wspierającej algorytmy) jest zazwyczaj mała Systemy są zaprojektowane do wieloletniej, niezmiennej pracy 3
... Systemy wbudowane muszą same stwierdzić w auto-teście, czy są sprawne Watchdog timer specjalny zegar z mechanizmem wykrywania błędów inicjowany z pewną wartością na początku skanowania, lub w określonych przedziałach czasowych. Zmniejsza swą wartość, w miarę postępu skaningu lub innych algorytmów. Co jakiś czas procesor przesyła do niego komendę restartu (czyli ponownego zwiększenia zawartości do danej wartości). Jeżeli takiej komendy nie ma i układ osiągnie wartość zero występuje warunek błędu; cały układ jest restartowany, albo wyłączane są potencjalnie niebezpieczne podsystemy, albo układ przechodzi w stan hibernacji, itp. 4
Przykładowe typy architektury Pojedyncza pętla sterowania (Round Robin) Oprogramowanie sterujące zawiera jedną pętlę. W ramach tej pętli wywoływane są podprogramy. Każdy podprogram to część wykonywanych funkcji i/lub sterowania sprzętem. Struktura najprostsza, w jednozadaniowych układach. Przy pojedynczej pętli nie stosuje się przerwań (zbyt trudna obsługa). Oprogramowanie praktycznie nie może być rozbudowywane, łatwo można dołączyć urządzenie Przykład kodu dla sterownika: Controller {While (TRUE) Service A; Service B; Service C; } 5
... Pętla sterowana przerwaniami (Round Robin with Interrupts) zadania są włączane w przypadku wystąpienia określonych zdarzeń (przerzucenie zegara, pojawienie się bajtu danych w porcie wejściowym, itp.). Systemy te pracują ( tkwią jako pojedyncze zadanie) w głównej pętli i każde przerwanie obsługiwane jest przez podprogram obsługi przerwania wybierany zależnie od ustawionej flagi urządzenia Jeżeli obsługa przerwania jest bardzo długa, możliwe jest wstawienie części czynności do kolejki (wywoływanej kolejnymi przerwaniami) i powrót do pętli głównej w celu sprawdzenia, czy nie ma dalszych, może bardziej ważnych, przerwań Wielozadaniowe jądro z dyskretnymi procesami 6
RTOS Real Time Operating System Dwa typy architektury odpowiadają RTOS: non-preemptive [nie wyprzedzający] architektura oparta na schemacie funkcjonalnych kolejek zadania są organizowane jako kolejka wydarzeń (FQS function queue Scheduling), pętla przetwarza wydarzenia po jednym w jednostce czasu; bardzo łatwo jest rozbudować oprogramowanie poprzez dołożenie zadania lub kolejki preemptive architektura wielozadaniowa; stały system operacyjny Jeżeli OS może równocześnie wykonywać wiele zadań system wielozadaniowy co przenosi odpowiedzialność na OS i ułatwia budowę struktury układu 7
Główne funkcje systemu operacyjnego Ciągłe śledzenie stanu wszystkich zasobów (procesorów, pamięci, przełączników, urządzeń I/O) w każdej chwili czasu Przydzielanie zadań procesorom w sposób uzasadniony (t.j. maksymalizując wykorzystanie procesora) Gdy procesy mogą być wykonywane równolegle tworzenie bliźniaczego, pączkowanego procesu (spawning) bądź niezależnie - nowego procesu Gdy zakończone są wszystkie procesy pączkowane z przetwarzania równoległego zebranie wszystkich pojedynczych wyników i przekazanie ich do innych procesorów 8
Komendy FORK i JOIN Każdy pączkujący proces otrzymuje nowy, unikalny numer identyfikacyjny. W programie tworzony jest od etykiety (label) 1. For k=1 to n-1 FORK label(k); Oznacza, że wypączkowanych zostaje n-1 procesów, każdy z oddzielnym identyfikacyjnym numerem k. Każdy z nich rozpocznie się od etykiety 2. k=n; Proces, który wykonał FORK otrzymał numer k=n i to jest jedyny proces, który dotrze tutaj. Pozostałe skaczą do etykiety 3. Label: c[k]=a[k] + b[k]; Dodaj k-aty element każdego wektora; tę operację wykona n różnych procesów, niekoniecznie równolegle 4. JOIN n; Zakończ wszystkie procesy utworzone przez FORK. Od tego punktu jest tylko jeden proces 9
Praca wielozadaniowa Najpierw cały algorytm stanowił jeden proces. Został alokowany do jednego z wolnych w systemie procesorów. Ten procesor poprzez wykonanie pętli FORK żąda od systemu utworzenia n-1 nowych zadań, kontynuujących przetwarzanie od kroku 2. Czyli po kroku 2 n procesów czeka na przetwarzanie. Proces k=n kontynuuje swoje przetwarzanie na danym procesorze (macierzystym dla innych procesów) Pozostałe n-1 procesów wchodzi w kolejkę procesów i procesy te zostają alokowane do poszczególnych procesorów w miarę, gdy te stają się wolne Przetwarzanie trwa każdorazowo do komendy JOIN. 10
JOIN Z instrukcją JOIN związany jest licznik, który musi odliczyć do n (n procesów jest przetwarzanych); inicjowany jest z zawartością 0 Każdy proces dochodzący do JOIN, zwiększa licznik o 1 Po sprawdzeniu, że wartość w liczniku nie jest n, proces zostaje zakończony, procesor, który go przetwarzał, jest zwolniony i może przyjąć inny proces Procesor przetwarzający proces który jako n-ty doszedł do JOIN, przechodzi do następnej instrukcji i kontynuuje przetwarzanie Zazwyczaj czas na instrukcje FORK JOIN jest równoważny wykonaniu 50 500 instrukcji (każda składa się z kilku faz, czyli efektywnie 10 100 linijek programu) 11
Wielozadaniowy OS Jeżeli układ posiada tylko jeden procesor jednozadaniowy, nawet jeżeli aplikacja podzielona jest na wiele zadań i tak wszystkie zadania będą przetwarzane szeregowo Jeżeli procesor jest wielozadaniowy, ale istnieje ścisła szeregowa zależność pomiędzy wykonywanymi zadaniami - i tak wszystkie zadania będą przetwarzane szeregowo W POWYŻSZYCH PRZYPADKACH NIE JEST CELOWE WYKORZYSTYWANIE WIELOZADANIOWEGO OS (nic nie da) 12
Potrzeba mechanizmów synchronizacji Poszczególne procesy przetwarzane w różnych wątkach lub procesorach muszą się komunikować Dane, które są dzielone muszą być prawidłowo udostępniane i aktualizowane przez współbieżne zadania Poszczególne procesory mogą przetwarzać z różną częstotliwością, same procesy mogą być różnej długości, itd. Segmenty kodu, które muszą być przetwarzane w sposób wzajemnie się wykluczający nazywane są krytycznymi sekcjami 13
Przykładowe zarządzanie zasobami przydzielanie zadań Harmonogram optymalny powinien zapewnić taką alokację zadań i w takiej kolejności, żeby uzyskać najkrótszy czas wykonania. Generalnie zadanie jest nierozwiązywalne jednoznacznie a priori, dlatego istnieje i wciąż jest udoskonalane wiele modeli zarządzania Techniki zarządzania są statyczne (każde zadanie jest alokowane do danego procesora w oparciu o ograniczenia wprowadzone przez poprzednio alokowane, przetwarzane zadania i dynamiczne (alokowanie w oparciu o charakterystyki przetwarzania) Większość modeli opiera się na prawdopodobieństwie, heurystyce, itd. 14
Procesor ARM (Advanced RISC Machine) Mikroprocesor uniwersalny, przeznaczony do ogólnych zastosowań, może być sercem dowolnie dużego systemu hardware i software. Sam potrafi wczytać dane, przeprowadzić najbardziej skomplikowane przetwarzanie a potem zapisać swoje obliczenia i wyniki w pamięci masowej, lub przekazać na inne urządzenie wyjściowe (np. ekran monitora) Twórcą ARM i właścicielem znaku jest Acorn Computers, Wielka Brytania 15
Cechy ARM Olbrzymi plik ujednoliconych rejestrów Zapisywalna i ładowana architektura, co pozwala przetwarzac dane w oparciu o zawartości rejestrów a nie bezpośrednie operacje na systemie pamięci Proste tryby adresowe Instrukcje o ustalonej długości, co ułatwia ich dekodowanie Procesor ma wbudowaną optymalizację obsługi pętli (automatyczne zwiększanie i zmniejszanie o 1), ładuje i zapisuje instrukcje wielokrotne, daje pełną kontrolę nad ALU, pozwala na warunkowe wykonywanie wszystkich instrukcji Zapewnia pipeline z trójfazowym i pięciofazowym strumieniem instrukcji 16
Zwiększenie efektywności działania Zwiększenie częstotliwości zegara Wymaga to uproszczenia logiki w każdej fazie pipeline, wtedy można zwiększyć ilość faz Zmniejszenie średniej ilości cykli zegarowych na instrukcję Należy przyjąć algorytmy zmniejszające konieczność opróżniania pipeline oraz ponownie opracować algorytmy wykonywania niektórych funkcji (skrócić czas przetwarzania pojedynczej instrukcji) Wąskim gardłem jest dostęp do pamięci (prawie w każdym cyklu zegara i prawie w każdej fazie wykonywania) Albo wydłużyć słowa jednorazowo wpisywane i odczytywane do pamięci, albo przeznaczyć oddzielne pamięci dla poszczególnych instrukcji 17
Pięciofazowy kanał (pipeline) 1. Pobieranie instrukcja jest pobierana z pamięci i umieszczana w pipeline 2. Dekodowanie instrukcja jest zdekodowana i operandy przeczytane z pliku rejestru; są trzy porty odczytu w ARM; więc w większości operacja mieści się w jednym cyklu 3. Wykonanie operand jest przesunięty i generowany wynik ALU; jeżeli jest to load lub store generowany jest adres pamięci w ALU 4. Bufor / dane jeżeli potrzeba, następuje dostęp do pamięci danych, jeżeli nie ALU buforuje wynik przez jeden cykl zegara, aby wyrównać długość działania fazy 5. Przepisanie (write back) wyniki wygenerowane przez instrukcję są przepisane do pliku rejestru, włącznie z wszelkimi danymi pobranymi z pamięci 18
Tryby procesora w ARM Architektura ARM zapewnia 7 trybów procesora: 1. USER (usr): normalny tryb wykonywania programu 2. FAST INTERRUPT (fiq): umozliwia szybki transfer danych lub procesy w kanale 3. INTERRUPT (irq): do obsługi normalnych pzerwań 4. SUPERVISOR (svc): zastrzeżony tryb dla OS 5. ABORT (abt): wdraża pamięć wirtualną i / lub jej ochronę 6. UNDEFINED (und): emulacja oprogramowania procesorów (koprocesorów) 7. SYSTEM (sys) uprzywilejowane zadania OS 2, 3, 4 i 5 nazywane są trybami wyjątków (exception codes) 19
KONIEC CZĘŚCI DZIESIĄTEJ Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Innowacyjna dydaktyka bez ograniczeń zintegrowany rozwój Politechniki Łódzkiej zarządzanie Uczelnią, nowoczesna oferta edukacyjna i wzmacniania zdolności do zatrudniania osób niepełnosprawnych Zadanie nr 30 Dostosowanie kierunku Elektronika i Telekomunikacja do potrzeb rynku pracy i gospodarki opartej na wiedzy 90-924 Łódź, ul. Żeromskiego 116, tel. 042 631 28 83 www.kapitalludzki.p.lodz.pl