1 / 33

Mikroprocesor

Mikroprocesor. Architektura Systemów Komputerowych. mgr inż. Michał Misiak. Wstęp. CPU – Central Processing Unit Realizuje instrukcje wykonywania programu Cechy odróżniające procesory pomiędzy sobą: Architektura

Download Presentation

Mikroprocesor

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Mikroprocesor Architektura Systemów Komputerowych mgr inż. Michał Misiak

  2. Wstęp • CPU – Central Processing Unit • Realizuje instrukcje wykonywania programu • Cechy odróżniające procesory pomiędzy sobą: • Architektura • RISC – architektura procesora o uproszczonej liście rozkazów. Umożliwia stosowanie wysokich częst. taktowania. • CISC – architektura wykorzystująca złożoną listę rozkazów • Liczba bitów przetwarzania w jednym takcie • Częstotliwość taktowania [MHz]

  3. Budowa mikroprocesora • Składowe mikroprocesora: • Jednostka arytmetyczno-logiczna (ALU) – odpowiedzialna za wykonywania obliczeń, których wyniki końcowe i pośrednie przechowywane są w rejestrach • Układ sterownika – pobiera rozkazy z pamięci i je dekoduje • Bloki rejestrów

  4. Budowa procesora (2) • Rodzaje rejestrów: • Danych – przechowywanie argumentów i wyników operacji arytmetyczno-logicznych • Adresowe – przechowywanie adresów do operacji arytmetycznych na adresach • Ogólne – mogą pełnić funkcję rej. danych jak i adresowych • Specjalizowane – pełnią ściśle określoną funkcję np.. akumulator, wskaźnik stosu • Stanu, znaczników • Licznik programu – przechowuje adres bieżącej instrukcji do wykonania • Zmiennopozycyjne – przechowują liczby w formacie zmiennopozycyjnym • Wektorowe – przechowują wektor • Segmentowe – wykorzystywane przy implementacji segmentowego modelu pamięci

  5. Przykładowa architektura Źródło: http://ocforum.pl/showthread.php?t=13323

  6. Rodzaje architektur ze względu na rodzaj rejestrów • Architektura bezrejestrowa – przechowywane są wyłączenie adresy. Wymagany jest bezpośredni dostęp do pamięci • Podstawowy zestaw rejestrów: akumulator, wskaźnik stosu, licznik programu, rejestr adresowy. W trakcie obliczeń jeden argument jest w pamięci, a drugi jest zapamiętywany wraz z wynikiem. (architektura IAS-Princeton Institute of Advanced Studies zaproponowana przez von Neumana) • Architektura z podstawowym zestawem rejestrów specjalizowanych. Przykład: architektura 16 bitowa x86 • Mały zestaw rejestrów uniwersalnych, które mogą pełnić dowolną funkcję • Duży zestaw rejestrów uniwersalnych. Np. architektura Cray X1E • Architektura z buforem wierzchołka stosu umożliwiająca przechowanie kilku ramek stosu w rejestrze bez konieczności odwoływania się do pamięci

  7. Kod maszynowy i asembler • Kod maszynowy - binarny sposób opisu rozkazów procesora charakterystyczny dla konkretnego typu procesora • Asembler – jest to nakładka, język umożliwiający niskopoziomowe programowanie. Jedna instrukcja odpowiada jednemu rozkazowi. Asembler jest specyficzny dla danej architektury.

  8. Przykładowy kod w Asembler mov ax, 0D625h ;wprowadź do rejestru AX liczbę szesnastkową D625 (54821 dziesiętnie) mov es, ax ;załaduj rejestr segmentowy ES wartością znajdującą się w AX (D625) mov al, 24 ;załaduj dolną (młodszą) połówkę rejestru AX (AL) liczbą dziesiętną 24 mov ah, 0 ;wyzeruj górną (starszą) połówkę rejestru AX (AH) int 21h ;wywołaj przerwanie 21H

  9. Lista instrukcji • Typy instrukcji • Systemowe - uprzywilejowane • Aplikacyjne – mogą być wykonywane zawsze

  10. Instrukcje aplikacyjne • Instrukcje przesyłania danych • Instrukcje arytmetyczne • Operacje bitowe • Operacje na napisach • Instrukcje sterujące wykonaniem programu: instrukcje skoku, warunkowego przypisania, warunkowego wykonania operacji (if-else)

  11. Realizacja instrukcji warunkowych • Model ze znacznikami: • operacja warunkowa realizowana dwufazowo: modyfikacja znacznika/znaczników jednobitowego oraz skok warunkowy w zależności od wartości znaczników • Model bez znaczników: • Instrukcja sprawdza warunek i wykonuje skok. Model popularny w arch. RISC • Z predykatami: • Predykat – uogólniony znacznik umożliwiający przechowywanie wartości logicznej wcześniej obliczonego warunku. Instrukcje określają numer predykatu. Model w arch. IA-64

  12. Sposoby realizacja operacji arytmetycznych dwuargumentowych • Argument źródłowy jest jednocześnie argumentem wynikowym: • add r1, r2 r1:=r1+r2 lub r2:=r1+r2 • Argument wynikowy różny od argumentów początkowych: • add r1, r2, r3 r1:=r2+r3 lub r3:=r1+r2

  13. Typy adresowania • Adresowanie to sposób sięgania po dane do rozkazów • Konstrukcja programu zależna od sposobu umieszczania argumentów w pamięci • Adres komórki, gdzie jest zawarty kod rozkazu przechowywany jest w liczniku rozkazów • Tryb adresowania określa miejsce, gdzie jest umieszczony adres argumentu lub sposób w jaki jest obliczany

  14. Adresowanie poprzez rejestr • Najprostszy typ adresowania • Argumentami rozkazu są dwa rejestry. Kopiowanie jednego rejestru do drugiego 00000100011 00000100011 BX AX MOV AX BX

  15. Adresowanie natychmiastowe • Stała jako argument źródłowy jest zawarta w rozkazie, a nie rejestrze 00000100011 AX MOV AX 20 Lub AX 14h

  16. Adresowane bezpośrednie • Dana zawarta w rozkazie, adres wyznacza położenie argumentu od początku segmentu • Argumentem adresowania jest etykieta • MOV AX, TAB – ładowanie tablicy TAB do rejestru AX

  17. Adresowanie pośrednie rejestrowe • Adres efektywny argumentu znajduje się w rejestrze bazowym lub we wskaźniku bazy albo w rejestrze indeksowym • Rejestry będące argumentami pośrednimi zapisywane w programie przy pomocy „[ ]” • MOV ax, [bx] - do ax ładuje zawartość komórki, której adres wskazuje rejestr bazowy bx.

  18. Tryby adresowania argumentów

  19. Tryby adresowania • Każdy procesor zawiera tryb adresowania: • adresowanie natychmiastowe • rejestr bezpośredni • rejestr pośredni • Aktualnie procesory zawierają: • Wariant trybu indeksowego

  20. Cykl pracy mikroprocesora • Cyfrowy układ synchroniczny, taktowany sygnałem zegarowym • Z punktu widzenia programisty mikroprocesor wykonuje instrukcje sekwencyjnie • Podstawowy sposób wykonywania programu na procesorze: • Cykl rozkazowy (instruction cycle): okres czasu potrzebny do pobrania i wykonania jeden instrukcji zajmuje od 1 do kilku cykli procesora (machine cycle). Zapis/odczyt wymaga jednego cyklu. Cykl składa się z kilku taktów zegara. • Wykonanie instrukcji wykonywane jest w dodatkowym cyklu procesora • W nowych procesorach rozdzielono fazę komunikacji z pamięcią od fazy wykonania instrukcji. Umożliwia to pobieranie kolejnych instrukcji przed zakończeniem poprzednich • Cykl współpracy z pamięcią – od 1 do kilku taktów zegara • Cykl wykonania instrukcji – od 1 do kilkuset taktów zegara • UWAGA częstotliwości taktów zegara mogą być różne

  21. Pomiar wydajności • Wydajność procesorów mierzy się za pomocą • IPS (Instructions per seconds). Wielokrotność MIPS = 10^6*IPS • FLOPS (floating point operations per second). Wielokrotność MFLOPS, GFLOPS, TFLOPS

  22. Sposoby zwiększania wydajności • Zwiększanie częstotliwości taktowania procesora. Ograniczone przez właściwości fizyczne: wydzielanie ciepła, czas propagacji sygnałów w układach cyfrowych • Inne sposoby zwiększania wydajności: • Wcześniejsze pobieranie instrukcji • Kolejkowanie instrukcji • Przetwarzanie potokowe • Zrównoleglenie wykonywania instrukcji

  23. Problemy ze zwiększaniem wydajności • Różnica w częstotliwości taktowania pamięci oraz częstotliwości taktowania procesora. Rozwiązanie: • Użycie wielopoziomowych pamięci podręcznych (cache) • Zwiększenie szerokości szyny danych • Pamięć pozwalająca na pobieranie danych co jeden cykl zegara lub dwa razy w jednym cyklu

  24. Przetwarzanie potokowe • Rozłożenie wykonywania instrukcji na ciąg etapów wykonywanych w jednym cyklu zegara • Instrukcje przemieszczane są jedna za drugą (porównanie do taśmy produkcyjnej). • Zaleta: wykonanie instrukcji w jednym cyklu zegara pomimo, że źródłowa instrukcja może zająć znacznie więcej cykli zegarowych. Oszczędność na średnim czasie dla cyklu, natomiast pojedynczy cykl może być znacznie dłuższy. • Rzeczywistość: brak możliwości realizacji takiego modelu. Występowanie zależności między danymi, a sterowaniem i zasobami. Konieczne rozkazy skoku wymagające wyczyszczenia całego potoku i rozpoczęcie wypełniania potoku od początku.

  25. Przetwarzanie szeregowe i równoległe PI DI PA WI ZW PI DI PA WI ZW PI DI PA WI ZW PI DI PA WI ZW PI DI PA WI ZW PI DI PA WI ZW

  26. Przykład 1. instruction fetch (IF) pobranie instrukcji z pamięci 2. instruction decode (ID) dekodowanie instrukcji 3. execute (EX) wykonanie instrukcji 4. memory access (MEM) dostęp do pamięci 5. store; write back (WB) zapisanie wyników działania instrukcji

  27. Przetwarzanie potokowe • Zależności między danymi: • RAW (odczyt po zapisie) • WAR (zapis po odczycie) • WAW (zapis po zapisie)

  28. Architektura superskalarna i wektorowa • Możliwość zrównoleglenia wykonywanych instrukcji poprzez zwiększenie liczby potoków i jednostek wykonawczych: • ALU – Arithmetic Logic Unit • AGU – Address Generator Unit • FPU – Floating Point Unit • LSU – Load Store Unit • Architektury wykorzystujące wielopotokowość: • Architektura superskalarna – zrównoleglenie na poziomie wykonania – układy wewnątrz procesora decydują o zrównolegleniu (hyper threading) • Architektura wektorowa – zrównoleglenie na poziomie algorytmu do postaci wektora • Architektura z procesorem o długim słowie instrukcji (VLIW – Very Long Instruction Word) – zrównoleglenie na poziomie kompilatora – opisanie co mają robić poszczególne jednostki wykonawcze

  29. Architektura RISC i CISC Źródło: UW Notatki Marcin Peczarski

  30. Przerwania • Żądanie Przerwania IRQ (Interrupt ReQuest) – sygnał powodujący zmianę przepływu sterowania niezależnie od aktualnie wykonywanego programu • Procesor zatrzymuje wykonanie programu i realizuje kod procedury obsługi przerwania (interrupt handler)

  31. Rodzaje przerwań • Sprzętowe • Zewnętrzne – sygnał przerwania pochodzi z zewnętrznego układu do obsługi przerwań sprzętowych. Wykorzystywane do komunikacji z urządzeniami końcowymi. • Wewnętrzne, tzw. wyjątki (exceptions). Procesor sygnalizuje sytuację wyjątkową (dzielnie przez zero) • Niepowodzenie (faults) – wykonywana instrukcja powoduje błąd i procesor woła kolejną. • Pułapki (traps) – sytuacja nie jest błędem, a wystąpienie jej ma na celu wykonanie określonego kodu. Wykorzystywany w debugerach • Błędy (aborts) – błędy, których nie można naprawić • Programowe – wywoływanie procedury przerwania z kodu programu. Używane do komunikacji z systemem operacyjnym. W kodzie przerwania wywoływana jest funkcja systemowa.

  32. Rodzina procesorów x86 (1) • Tryb rzeczywisty • Adres procedury obsługi przerwania zapisany w tablicy wektorów przerwań • Przerwania identyfikowane przez numer (wektor). Możliwych 256 przerwań • Tablica przerwań znajduje się w pierwszych 1024 komórkach pamięci operacyjnej • PC obsługie 16 IRQ. Pod numerem przerwania należy rozumieć zasób udostępniony przez procesor. Ograniczona liczba przerwań może powodować konfilkt.

  33. Rodzina procesorów x86 (2) • Tryb chroniony • Tablica deskryptorów przerwań (IDT) asocjuje wektor wyjątku lub przerwania z deskryptorem bramy dla procedury lub zadania • Deskryptor bramy pozwalający na kontrolowany dostęp do segmentów kodu o różnych stopniach uprzywilejowania • IDT zawiera 256 wpisów. Rozmiar to 256*8 • Rodzaje deskryptorów: • deskryptor bramy zadania (Task-Gate Descriptor) • deskryptor bramy przerwania (Interrupt-Gate Descriptor) • deskryptor bramy pułapki (Trap-Gate Descriptor)

More Related