Architektura komputerów

Podobne dokumenty
Organizacja typowego mikroprocesora

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Wprowadzenie. Dariusz Wawrzyniak. Miejsce, rola i zadania systemu operacyjnego w oprogramowaniu komputera

Systemy operacyjne. Wprowadzenie. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

Systemy operacyjne. wykład dr Marcin Czarnota laboratorium mgr Radosław Maj

Architektura komputerów

Architektura potokowa RISC

Programowanie współbieżne Wykład 2. Iwona Kochańska

dr inż. Konrad Sobolewski Politechnika Warszawska Informatyka 1

Logiczny model komputera i działanie procesora. Część 1.

LEKCJA TEMAT: Zasada działania komputera.

WPROWADZENIE Mikrosterownik mikrokontrolery

Prezentacja systemu RTLinux

Architektura komputerów

Budowa systemów komputerowych

Metody optymalizacji soft-procesorów NIOS

Architektura i administracja systemów operacyjnych

Systemy operacyjne na platformach mobilnych 2 Programowanie aplikacji z graficznym interfejsem użytkownika w GTK+

Urządzenia wejścia-wyjścia

System komputerowy. System komputerowy

Architektura komputerów Wprowadzenie do algorytmów

Pośredniczy we współpracy pomiędzy procesorem a urządzeniem we/wy. W szczególności do jego zadań należy:

Architektura systemu komputerowego

Systemy na Chipie. Robert Czerwiński

Struktura systemów komputerowych

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Programowanie Niskopoziomowe

Mikroprocesor Operacje wejścia / wyjścia

Wykład I. Podstawowe pojęcia. Studia Podyplomowe INFORMATYKA Architektura komputerów

Szkolenia specjalistyczne

Architektura komputera. Dane i rozkazy przechowywane są w tej samej pamięci umożliwiającej zapis i odczyt

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Architektura mikroprocesorów z rdzeniem ColdFire

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

4. Procesy pojęcia podstawowe

dokument DOK wersja 1.0

Magistrala systemowa (System Bus)

Architektura komputera. Cezary Bolek. Uniwersytet Łódzki. Wydział Zarządzania. Katedra Informatyki. System komputerowy

Dodatek B. Zasady komunikacji z otoczeniem w typowych systemach komputerowych

Zaawansowane programowanie w języku C++ Zarządzanie pamięcią w C++

Struktura i funkcjonowanie komputera pamięć komputerowa, hierarchia pamięci pamięć podręczna. System operacyjny. Zarządzanie procesami

ZARZĄDZANIE SIECIAMI TELEKOMUNIKACYJNYMI

PRZERWANIA. 1. Obsługa zdarzeń, odpytywanie i przerwania Obsługa zdarzeń jest jedną z kluczowych funkcji w prawie każdym systemie czasu rzeczywistego.

Architektura komputerów, Informatyka, sem.iii. Rozwiązywanie konfliktów danych i sterowania w architekturze potokowej

Wstęp do informatyki. Architektura co to jest? Architektura Model komputera. Od układów logicznych do CPU. Automat skończony. Maszyny Turinga (1936)

Systemy operacyjne. Systemy operacyjne. Systemy operacyjne. Zadania systemu operacyjnego. Abstrakcyjne składniki systemu. System komputerowy

ARCHITEKTURA PROCESORA,

Technika mikroprocesorowa. Systemy operacyjne czasu rzeczywistego

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

Architektura systemu komputerowego. Działanie systemu komputerowego. Przerwania. Obsługa przerwań (Interrupt Handling)

Metody obsługi zdarzeń

UTK ARCHITEKTURA PROCESORÓW 80386/ Budowa procesora Struktura wewnętrzna logiczna procesora 80386

dr inż. Małgorzata Langer Architektura komputerów

Architektura systemów komputerowych. dr Artur Bartoszewski

POLITECHNIKA WARSZAWSKA Wydział Elektroniki i Technik Informacyjnych. Instytut Telekomunikacji Zakład Podstaw Telekomunikacji

Projektowanie oprogramowania systemów PROCESY I ZARZĄDZANIE PROCESAMI

Architektura komputerów. Układy wejścia-wyjścia komputera

Działanie systemu operacyjnego

Pamięć wirtualna. Przygotował: Ryszard Kijaka. Wykład 4

Działanie systemu operacyjnego

Wstęp do informatyki. System komputerowy. Magistrala systemowa. Architektura komputera. Cezary Bolek

Architektura Systemów Komputerowych. Bezpośredni dostęp do pamięci Realizacja zależności czasowych

Systemy operacyjne III

4. Procesy pojęcia podstawowe

Budowa komputera Komputer computer computare

dr inż. Jarosław Forenc

Wprowadzenie do systemów operacyjnych

Przerwania, polling, timery - wykład 9

Działanie systemu operacyjnego

LEKCJA TEMAT: Współczesne procesory.

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Mikrokontroler ATmega32. System przerwań Porty wejścia-wyjścia Układy czasowo-licznikowe

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

Architektura komputerów

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Łukasz Januszkiewicz Technika antenowa

Struktury systemów operacyjnych Usługi, funkcje, programy. mgr inż. Krzysztof Szałajko

Wstęp do programowania 2

Wykład 2. Mikrokontrolery z rdzeniami ARM

Budowa Mikrokomputera

Architektura mikroprocesorów TEO 2009/2010

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Architektura komputerów

Systemy wbudowane. Uproszczone metody kosyntezy. Wykład 11: Metody kosyntezy systemów wbudowanych

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

Rejestr HKEY_LOCAL_MACHINE

Zaawansowane programowanie w języku C++ Programowanie obiektowe

Podstawy Techniki Mikroprocesorowej

Budowa i zasada działania komputera. dr Artur Bartoszewski

IIPW_SML3_680 (Z80) przewodnik do ćwiczeń laboratoryjnych

Mikroprocesory rodziny INTEL 80x86

Wydajność systemów a organizacja pamięci, czyli dlaczego jednak nie jest aż tak źle. Krzysztof Banaś, Obliczenia wysokiej wydajności.

Studia podyplomowe realizowane w ramach zadania 5 Systemy mobilne i techniki multimedialne

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

Algorytm poprawny jednoznaczny szczegółowy uniwersalny skończoność efektywność (sprawność) zmiennych liniowy warunkowy iteracyjny

MIKROKONTROLERY I MIKROPROCESORY

Temat: Pamięci. Programowalne struktury logiczne.

Architektura typu Single-Cycle

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Przetwornik ADC procesora sygnałowego F/C240 i DAC C240 EVM

Transkrypt:

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