wykład 10
Transkrypt
wykład 10
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 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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 Architektura komputerów, część 10 2 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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 Architektura komputerów, część 10 3 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego ... • 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. Architektura komputerów, część 10 4 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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; } Architektura komputerów, część 10 5 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego ... • 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 Architektura komputerów, część 10 6 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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 Architektura komputerów, część 10 7 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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 Architektura komputerów, część 10 8 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Komendy FORK i JOIN • 1. 2. 3. 4. Każdy pączkujący proces otrzymuje nowy, unikalny numer identyfikacyjny. W programie tworzony jest od etykiety (label) 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 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 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 JOIN n; Zakończ wszystkie procesy utworzone przez FORK. Od tego punktu jest tylko jeden proces Architektura komputerów, część 10 9 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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. Architektura komputerów, część 10 10 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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) Architektura komputerów, część 10 11 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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) Architektura komputerów, część 10 12 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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 Architektura komputerów, część 10 13 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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. Architektura komputerów, część 10 14 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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 Architektura komputerów, część 10 15 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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 Architektura komputerów, część 10 16 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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 Architektura komputerów, część 10 17 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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 Architektura komputerów, część 10 18 Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 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) Architektura komputerów, część 10 19 KONIEC CZĘŚCI DZIESIĄTEJ Prezentacja multimedialna współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie Dr inż. Małgorzata Langer Architektura komputerów „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