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