Materiały do wykładu. 4. Mikroprocesor. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski



Podobne dokumenty
4.Mikroprocesor. Małe przypomnienie 4.1. Marcin Peczarski. Rejestry(2) 4.3. Rejestry(1) 4.2. KodmaszynowyaAsembler(AVR) 4.5. KodmaszynowyaAsembler 4.

Architektura komputerów

Architektura komputerów

2 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.02 Rok akad. 2011/ / 24

Budowa Mikrokomputera

Materiały do wykładu. 4.Mikroprocesor. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski. 5 kwietnia 2009

Architektura Systemów Komputerowych

Projektowanie. Projektowanie mikroprocesorów

Architektura komputerów

Architektura systemów komputerowych

Architektura mikroprocesorów TEO 2009/2010

Organizacja typowego mikroprocesora

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]

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Programowalne układy logiczne

Wprowadzenie do architektury komputerów. Model programowy procesora i jego struktura Procesory CISC i RISC

Witold Komorowski: RISC. Witold Komorowski, dr inż.

Architektura komputerów. Asembler procesorów rodziny x86

Architektura komputerów

Programowanie Niskopoziomowe

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Architektura systemów komputerowych. dr Artur Bartoszewski

Model von Neumanna 0.1

Architektura komputerów

ARCHITEKTURA PROCESORA,

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

Przetwarzanie potokowe pipelining

Architektura mikroprocesorów z rdzeniem ColdFire

Spis treúci. Księgarnia PWN: Krzysztof Wojtuszkiewicz - Urządzenia techniki komputerowej. Cz. 1. Przedmowa Wstęp... 11

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

Schematy zarzadzania pamięcia

Wydajność obliczeń a architektura procesorów. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Architektura systemów komputerowych. Lista instrukcji procesora

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

Architektura potokowa RISC

Architektura Systemów Komputerowych. Jednostka ALU Przestrzeń adresowa Tryby adresowania

Układ sterowania, magistrale i organizacja pamięci. Dariusz Chaberski

Budowa i zasada działania komputera. dr Artur Bartoszewski

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Architektura komputerów. Komputer Procesor Mikroprocesor koncepcja Johna von Neumanna

Architektura komputerów egzamin końcowy

architektura komputerów w. 4 Realizacja sterowania

Struktura i działanie jednostki centralnej

Programowanie w C++ 1 Opis procesora Sextium II. Opis procesora Sextium. materiały dydaktyczne udostępnione przez Tomasza Wierzbickiego

Architektura Systemów Komputerowych

Działanie systemu operacyjnego

Działanie systemu operacyjnego

Budowa komputera Komputer computer computare

Rozszerzalne kody operacji (przykład)

3 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.06 Rok akad. 2011/ / 22

Mikroprocesory rodziny INTEL 80x86

Programowanie Niskopoziomowe

Działanie systemu operacyjnego

Programowanie Niskopoziomowe

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

LEKCJA TEMAT: Zasada działania komputera.

Pytania. W obecnie wykorzystywanych komputerach osobistych jest stosowana architektura: jednoszynowa. pamięciowo-centryczna.

Architektura komputera

Mikroprocesor Operacje wejścia / wyjścia

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

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

Język programowania: Lista instrukcji (IL Instruction List)

Procesory rodziny x86. Dariusz Chaberski

Stronicowanie w systemie pamięci wirtualnej

Architektura systemów komputerowych. dr Artur Bartoszewski

Programowanie w asemblerze Środowiska 64-bitowe

Architektura Systemów Komputerowych

Działanie systemu operacyjnego

Architektura typu Single-Cycle

Jerzy Nawrocki, Wprowadzenie do informatyki

Wydajność obliczeń a architektura procesorów

Programowanie w asemblerze Wprowadzenie

Zarządzanie zasobami pamięci

Podstawy techniki mikroprocesorowej. Dr inż. Grzegorz Kosobudzki p.311a A-5. Tel

Architektura komputerów

organizacja procesora 8086

Programowanie w asemblerze Środowiska 64-bitowe

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Podstawy Techniki Mikroprocesorowej

Budowa systemów komputerowych

Architektura systemów informatycznych

Technologie Informacyjne Wykład 3

Architektura Systemów Komputerowych. Rozwój architektury komputerów klasy PC

architektura komputerów w. 8 Zarządzanie pamięcią

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

3.Przeglądarchitektur

Zarządzanie pamięcią operacyjną

Architektura systemów informatycznych

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK SP.01 Rok akad. 2011/ / 27

2. Architektura mikrokontrolerów PIC16F8x... 13

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

Programowanie w asemblerze Architektura procesora

Materiały do wykładu. 7.Architekturax86. Marcin Peczarski. Instytut Informatyki Uniwersytet Warszawski

Jednostka centralna. dr hab. inż. Krzysztof Patan, prof. PWSZ

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

LEKCJA TEMAT: Współczesne procesory.

Podstawy techniki cyfrowej Układy wejścia-wyjścia. mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

Magistrala systemowa (System Bus)

Transkrypt:

Materiały do wykładu 4. Mikroprocesor Marcin Peczarski Instytut Informatyki Uniwersytet Warszawski 19 marca 2007

Małe przypomnienie 4.1 Rejestry Układ współpracy z szynami Jednostka sterująca połączenia wewnętrzne Jednostka arytmetyczno- -logiczna Jednostka arytmetyczno- -logiczna Jednostka arytmetyczno- -logiczna

Rejestry (1) 4.2 danych adresowe ogólnego przeznaczenia specjalizowane stanu, znaczników licznik programu zmiennopozycyjne wektorowe segmentowe zarządzania pamięcią debugowania

architektura bezrejestrowa minimalny zestaw rejestrów mały zestaw rejestrów specjalizowanych mały zestaw rejestrów uniwersalnych duży zestaw rejestrów uniwersalnych bufor wierzchołka stosu stosowy zestaw rejestrów Rejestry (2) 4.3

Kod maszynowy a Asembler 4.4 Kod maszynowy binarny sposób opisu rozkazów procesora Każda architektura ma swój unikalny kod maszynowy. W obrębie tej samej architektury kod maszynowy może być nieco różny dla poszczególnych modeli procesorów. Asembler język programowania niskiego poziomu Jedno polecenie odpowiada zwykle jednemu rozkazowi maszynowemu. Każda architektura ma swój unikalny Asembler. asembler program tłumaczący Asembler na kod maszynowy

Kod maszynowy a Asembler (68000) 4.5 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 OP R D S EA OP kod operacji, np.: 1000 or, 1001 sub, 1100 and, 1101 add R numer rejestru danych, gdzie jest pierwszy argument operacji D kierunek operacji: wynik zapisywany w pierwszym (0) lub drugim (1) argumencie S rozmiar operacji: 00 bajt, 01 word, 10 long word EA adres efektywny: opis położenia drugiego argumentu add.w d2, d1 d1 := d1 + d2 1101 001 0 01 000010

Kod maszynowy a Asembler (IA-32) 4.6 Różne kodowania mov eax, ebx 89 D8 8B C3 Synonimy jle jng 7E imm8 jb jnae jc 72 imm8 Synonimy i różne kodowania shl eax, 1 sal eax, 1 D1 E0 C1 E0 01 Prefiksy mov ax, bx 66 89 D8 66 8B C3 jle jng 0F 8E imm32 jb jnae jc 0F 82 imm32

Aplikacyjne: przesyłanie danych, operacje arytmetyczne, operacje bitowe, operacje na napisach, Lista instrukcji (rozkazów) 4.7 instrukcje sterujące (skok warunkowy, warunkowe wykonanie instrukcji). Systemowe (tryb uprzywilejowany lub nadzorcy): zarządzanie systemowymi strukturami danych, zmiana trybu pracy procesora.

Sterowanie wykonaniem programu 4.8 Jednoetapowe (bez znaczników) bz s1, displ ; branch if s1 = 0 Dwuetapowe ze znacznikami cmp eax, 4 ; set flags je label ; jump if zf = 1 Dwuetapowe z predykatami cmp.eq p1, p2 = r1, r2 ; if r1 = r2 (p1) add r3 = 1, r3 ; then r3 := r3 + 1 (p2) add r3 = 3, r3 ; else r3 := r3 + 3

Operacje dwuargumentowe 4.9 Przykładowa składnia add r1, r2 add r1, r2 add r1, r2, r3 add r1, r2, r3 Możliwa semantyka r1 := r1 + r2 r2 := r1 + r2 r1 := r2 + r3 r3 := r1 + r2

Tryby adresowania argumentów (1) 4.10 Nazwa i opis Oznaczenia Przykłady w IA-32 natychmiastowy 7 $7 #7 mov dword [1000], 7 bezpośredni [1000] mov dword [1000], 7 pośredni [[1000]] nie występuje rejestrowy (bezpośredni) r1 mov eax, [ebx] (rejestrowy) pośredni [r1] mov eax, [ebx] indeksowy [r1+8] mov eax, [ebx+4*ecx+8] [r1+r2] stosowy [sp] push eax [sp+4] pop eax mov [esp+2*ecx+4], eax

Tryby adresowania argumentów (2) 4.11 Nazwa i opis Oznaczenia Przykłady w IA-32 względny ip+8 jc label pc+9 rejestrowy pośredni z preinkrementacją [+r1] rejestrowy pośredni [r1+] movs z postinkrementacją pop eax rejestrowy pośredni [-r1] loop z predekrementacją push eax rejestrowy pośredni [r1-] movs z postdekrementacją

Cykl pracy (Z80) 4.12 cykl rozkazowy cykle procesora cykle zegara INC [HL] pobranie odczyt zapis T 1 T 2 T 3 T 4 T 1 T 2 T 3 T 1 T 2 T 3

Pomiar wydajności 4.13 IPS Instructions Per Second MIPS = 10 6 IPS FLOPS Floating Point Operations Per Second MFLOPS = 10 6 FLOPS GFLOPS = 10 9 FLOPS TFLOPS = 10 12 FLOPS PFLOPS = 10 15 FLOPS

Metody zwiększania wydajności (1) 4.14 Zwiększanie częstotliwości taktowania: ograniczenia konstrukcyjne i technologiczne, wydzielanie ciepła, czas propagacji. Inne pomysły: pobieranie instrukcji na zakładkę, kolejka (bufor) instrukcji, przetwarzanie potokowe, zrównoleglanie wykonywania instrukcji.

Metody zwiększania wydajności (2) 4.15 Nienadążanie szybkość pracy pamięci za wzrostem szybkości pracy procesorów: zwiększanie szerokości szyny danych; wielopoziomowe pamięci podręczne, początkowo jako zewnętrzne, a obecnie w jednym układzie scalonym z procesorem; pamięci umożliwiające pobieranie danych co jeden cykl zegara, a nawet dwa razy w jednym cyklu zegara.

Przetwarzanie potokowe 4.16 I 1 I 2 I 3 I 4 I 1 I 2 I 3 I 4 F D E W F D E W F D E W F D E W F D E W F D E W F D E W F D E W F fetch D decode E execute W write back

Problemy w przetwarzaniu potokowym 4.17 F D E W F D E E W zależność zasobu F D E W F D E W zależność danych F D E W F D E F D F zależność sterowania F D E W F D E W

Potokowe układy arytmetyczne 4.18 F = h g f f µ g µ h x t f(x t ) x t+1 f(x t+1 ) f(x t ) g(f(x t )) x t+2 f(x t+2 ) f(x t+1 ) g(f(x t+1 )) g(f(x t )) F (x t ) x t+3 f(x t+3 ) f(x t+2 ) g(f(x t+2 )) g(f(x t+1 )) F (x t+1 )

Zależności między danymi 4.19 RAW odczyt po zapisie load-use define-use mov eax, 7 add eax, 3 add ebx, eax mul ebx WAR zapis po odczycie add eax, ebx mov ebx, 4 WAW zapis po zapisie add eax, ebx and ecx, edx

Zależności sterowania 4.20 Pobieranie docelowego rozkazu z wyprzedzeniem. Równoległe przetwarzanie obu gałęzi programu. Predykcja skoków (przewidywanie rozgałęzień): zawsze następuje skok, nigdy nie następuje skok, decyduje kod instrukcji (kompilator), jak przy ostatnim wykonaniu, tablica historii skoków. Bufor pętli. Opóźnione rozgałęzianie.

Metody zrównoleglania 4.21 Procesor superskalarny wektorowy (SIMD Single Instruction Multiple Data) z bardzo długim słowem instrukcji (VLIW Very Long Instruction Word) Zrównoleglenie w trakcie wykonywania algorytm kompilator

Wydawanie i kończenie instrukcji 4.22 pipe 1 scheduler pipe 2 re-order buffer pipe 3

Architektury RISC i CISC (1) 4.23 RISC Reduced Instruction Set Computers Zawierają ograniczony, prosty zbiór instrukcji. Zawierają dużą liczbę uniwersalnych rejestrów. Instrukcje arytmetyczno- -logiczne wykonywane są na rejestrach. CISC Complex Instruction Set Computers Występują skomplikowane instrukcje wspierające języki wysokiego poziomu. Zawierają małą liczbą rejestrów i/lub rejestry specjalizowane. Instrukcje arytmetyczno- -logiczne mogą pobierać argumenty z pamięci i umieszczać wynik w pamięci.

Architektury RISC i CISC (2) 4.24 RISC Reduced Instruction Set Computers Kody instrukcji są stałej długości, typowo 4 bajty, i mają stałe rozmieszczenie pól, co ułatwia dekodowanie. Posiadają małą liczbę trybów adresowania. Dozwolone jest tylko adresowanie wyrównane. CISC Complex Instruction Set Computers Kody instrukcji mają zmienną długość, typowo od jednego do kilkunastu bajtów. Występuje prefiksowanie instrukcji utrudniające dekodowanie. Posiadają dużą liczbę trybów adresowania. Dozwolone jest adresowanie niewyrównane.

Architektury RISC i CISC (3) 4.25 CISC rozkazy Translator µops RISC

Geneza mikroprocesora 4.26 Zbyt czasochłonne projektowanie od podstaw z bramek logicznych nowego modelu np. kalkulatora lub sterownika windy. Podczas projektowania łatwo popełnić trudny do usunięcia błąd. Układ uniwersalny mikroprocesor. Nowa funkcjonalność przez wymianę programu.

Geneza mikroprogramowania 4.27 Zbyt czasochłonne projektowanie od podstaw z bramek logicznych nowej jednostki sterującej (mikro)procesora. Podczas projektowania łatwo popełnić trudny do usunięcia błąd. Uniwersalna jednostka sterująca. Nowa funkcjonalność przez wymianę mikroprogramu.

Mikroprogramowanie 4.28 Język wysokiego poziomu Asembler Kod maszynowy µoperacje µprogram sprzęt

System przerwań 4.29 Przerwania sprzętowe: maskowalne, niemaskowalne. Przerwania programowe. Praca krokowa: debugowanie. Wyjątki: ponawianie instrukcji, która spowodowała wyjątek. Obsługa przerwań: tablica przerwań.

Sprzętowe wsparcie dla systemów operacyjnych 4.30 Translacja adresów: segmentacja, stronicowanie, prosta i odwrotna tablica stron. Poziomy ochrony: wewnętrzny, nadzorcy, uprzywilejowany, zewnętrzny, aplikacji. Wywoływanie usług systemu operacyjnego: przerwania, specjalna instrukcja (syscall).

Segmentacja 4.31 pamieć wirtualna procesu 1 pamięć liniowa pamieć wirtualna procesu 2

Stronicowanie 4.32 pamięć fizyczna (ramki) liniowa pamięć wirtualna (strony) dysk

liniowy adres wirtualny nr strony przemieszczenie tablica stron Tablica stron 4.33 atrybuty nr ramki nr ramki specjalny rejestr nr ramki przemieszczenie adres fizyczny

Stronicowanie wielopoziomowe 4.34 liniowy adres wirtualny nr tablicy nr strony przemieszczenie katalog tablic tablica stron nr ramki nr ramki nr ramki specjalny rejestr nr ramki przemieszczenie adres fizyczny

liniowy adres wirtualny nr strony przemieszczenie Odwrócona tablica stron 4.35 funkcja haszująca odwrócona tablica stron nr strony atrybuty nr ramki przemieszczenie adres fizyczny

TLB 4.36 Każde odwołanie do pamięci wymaga zajrzenia do tablicy stron, która sama jest przechowywana w pamięci. Taki mechanizm jest nieefektywny. Przy odwoływaniu się do pamięci obowiązuje zasada lokalności. Rozwiązaniem jest bufor translacji adresów (ang. TLB Translation Lookaside Buffer).

Urządzenia wejścia-wyjścia 4.37 Metody adresowania urządzeń wejścia-wyjścia: rozdzielona przestrzeń adresowa, wspólna przestrzeń adresowa. Przesyłanie dużych bloków danych: transmisja procesorowa (PIO Programmed Input/Output), bezpośredni dostęp do pamięci (DMA Direct Memory Access). Sterowniki urządzeń.

Mikroprocesory są wszędzie 4.38