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

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

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

Model von Neumanna 0.1

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]

Architektura komputerów

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

Architektura komputerów

Architektura komputerów

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

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

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

Architektura komputerów

architektura komputerów w. 4 Realizacja sterowania

Projektowanie. Projektowanie mikroprocesorów

Architektura mikroprocesorów z rdzeniem ColdFire

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

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

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

LEKCJA TEMAT: Zasada działania komputera.

Architektura systemów komputerowych

Architektura potokowa RISC

Architektura Systemów Komputerowych

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

Działanie systemu operacyjnego

Działanie systemu operacyjnego

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

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

Działanie systemu operacyjnego

Architektura komputerów

Budowa i zasada działania komputera. dr Artur Bartoszewski

Mikroprocesory rodziny INTEL 80x86

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

Działanie systemu operacyjnego

Przetwarzanie potokowe pipelining

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

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

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

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

Stronicowanie w systemie pamięci wirtualnej

Schematy zarzadzania pamięcia

Podstawy Techniki Mikroprocesorowej

Budowa Mikrokomputera

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

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

Architektura systemów komputerowych. dr Artur Bartoszewski

Architektura komputerów

Architektura mikroprocesorów TEO 2009/2010

System pamięci. Pamięć wirtualna

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

Architektura komputera

Rozszerzalne kody operacji (przykład)

KARTA PRZEDMIOTU. 2. Kod przedmiotu: MK_ Nazwa przedmiotu: SYSTEMY MIKROPROCESOROWE I WBUDOWANE

Architektura komputerów egzamin końcowy

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

KARTA PRZEDMIOTU KARTA PRZEDMIOTU

Programowanie Niskopoziomowe

Architektura Systemów Komputerowych

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

dr inż. Rafał Klaus Zajęcia finansowane z projektu "Rozwój i doskonalenie kształcenia i ich zastosowań w przemyśle" POKL

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

Struktura i działanie jednostki centralnej

Wydajność obliczeń a architektura procesorów

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

Zegar - układ wysyłający regularne impulsy o stałej szerokości (J) i częstotliwości (f)

Programowalne układy logiczne

ARCHITEKTURA PROCESORA,

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

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Obliczenia Wysokiej Wydajności

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

Notatkidowykładuz architekturykomputerów

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

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

Magistrala systemowa (System Bus)

System pamięci. Pamięć wirtualna

3.Przeglądarchitektur

MIKROKONTROLERY I MIKROPROCESORY

Budowa systemów komputerowych

Technika mikroprocesorowa I Wykład 2

Architektura Systemów Komputerowych

Systemy operacyjne III

Programowanie Niskopoziomowe

Zarządzanie pamięcią operacyjną

3.Przeglądarchitektur

Architektura typu Single-Cycle

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

Informatyka I stopień (I stopień / II stopień) Ogólnoakademicki (ogólno akademicki / praktyczny) niestacjonarne (stacjonarne / niestacjonarne)

Wydajność programów sekwencyjnych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Architektura systemów komputerowych. Lista instrukcji procesora

organizacja procesora 8086

Mikroprocesor Operacje wejścia / wyjścia

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

Architektura komputerów. Asembler procesorów rodziny x86

Kurs Zaawansowany S7. Spis treści. Dzień 1

BUDOWA I DZIAŁANIE MIKROPROCESORA

System pamięci. Pamięć wirtualna

Architektura komputerów II - opis przedmiotu

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

Transkrypt:

Materiałydowykładu Małe przypomnienie 4.1 4.Mikroprocesor Rejestry Układ współpracy zszynami sterująca Marcin Peczarski InstytutInformatyki UniwersytetWarszawski arytmetyczno- -logiczna połączeniawewnętrzne arytmetyczno- -logiczna arytmetyczno- -logiczna 6marca2008 Rejestry(1) 4.2 Rejestry(2) 4.3 danych adresowe ogólnegoprzeznaczenia specjalizowane stanu,znaczników wskaźnikstosu licznikprogramu zmiennopozycyjne wektorowe segmentowe zarządzaniapamięcią debugowania architekturabezrejestrowa minimalnyzestawrejestrów mały zestaw rejestrów specjalizowanych mały zestaw rejestrów uniwersalnych duży zestaw rejestrów uniwersalnych buforwierzchołkastosu stosowy zestaw rejestrów KodmaszynowyaAsembler 4.4 Kodmaszynowy binarnysposób opisu rozkazów procesora Każdaarchitekturamaswójunikalnykodmaszynowy. W obrębie tej samej architekturykod maszynowymoże być nieco różnydlaposzczególnychmodeliprocesorów. Asembler językprogramowanianiskiegopoziomu KażdaarchitekturamaswójunikalnyAsembler. asembler program tłumaczącyasembler na kod maszynowy KodmaszynowyaAsembler(AVR) 4.5 blinker: 00002ab68f in old_sreg,sreg 00002b930f push r16 00002c9100006c lds r16,blinker_counter 00002e950a dec r16 00002ff039 breq blinker_off 0000303300 cpi r16,blinker_half_period 000031f041 breq blinker_on blinker_end: 0000329300006c sts blinker_counter,r16 000034910f pop r16 000035be8f out SREG,old_sreg 0000369518 reti KodmaszynowyaAsembler(68000) 4.6 151413121110 9 8 7 6 5 4 3 2 1 0 OP R D S EA OP kodoperacji,np.:1000or,1001sub,1100and,1101add R numerrejestru danych,gdzie jest pierwszy argumentoperacji Jedno polecenie odpowiada zwykle jednemu rozkazowi maszynowemu. D kierunekoperacji:wynikzapisywanywpierwszym(0)lubdrugim(1)argumencie S rozmiaroperacji:00bajt,01word,10longword EA adres efektywny:opis położeniadrugiegoargumentu add.wd2,d1 d1:=d1+d2 1101 001 0 01 000010 KodmaszynowyaAsembler(IA-32) 4.7 000008DA 8DB600000000 leaesi,[esi+0x0] 000008E0 81FAFFFF0000 cmpedx,0xffff 000008E6 75EE jnz0x8d6 000008E8 C70424E0910408 movdword[esp],0x80491e0 000008EF E8A8FDFFFF call0x69c 000008F4 B948910408 movecx,0x8049148 000008F9 31D2 xoredx,edx 000008FB 894C2408 mov[esp+0x8],ecx 000008FF 89542404 mov[esp+0x4],edx 00000903 C70424C0880408 movdword[esp],0x80488c0 0000090A E8BDFDFFFF call0x6cc 0000090F 83C40C addesp,byte+0xc 00000912 C3 ret

Różnekodowania moveax,ebx KodmaszynowyaAsembler(IA-32) 4.8 Synonimy jle jng 7Eimm8 jb jnae jc 72imm8 Synonimyiróżnekodowania shleax,1 saleax,1 D1E0 89D8 8BC3 C1E001 Prefiksy movax,bx 6689D8 668BC3 jle jng 0F8Eimm32 jb jnae jc 0F82imm32 Aplikacyjne przesyłanie danych operacjearytmetyczne operacjebitowe operacjenanapisach Listainstrukcji(rozkazów) 4.9 instrukcje sterujące(skok bezwarunkowyi warunkowy,warunkowewykonanieinstrukcji,wołanieprocedury,powrótzprocedury) Systemowe(tryb uprzywilejowanylub nadzorcy) zarządzanie systemowymi strukturami danych zmianatrybupracyprocesora Sterowaniewykonaniemprogramu 4.10 Operacje dwuargumentowe 4.11 Jednoetapowe(bezznaczników) bzs1,displ ;branchifs1=0 Dwuetapowezeznacznikami cmpeax,4 ;setflags jelabel ;jumpifzf=1 Dwuetapowezpredykatami cmp.eqp1,p2=r1,r2 ;ifr1=r2 (p1)addr3=1,r3 ;thenr3:=r3+1 (p2)addr3=3,r3 ;elser3:=r3+3 Przykładowaskładnia Możliwasemantyka addr1,r2 r1:=r1+r2 addr1,r2 r2:=r1+r2 addr1,r2,r3 r1:=r2+r3 addr1,r2,r3 r3:=r1+r2 Nazwai opis natychmiastowy bezpośredni Tryby adresowania argumentów(1) 4.12 Oznaczenia Przykładyw IA-32 7$7#7 movdword[1000],7 [1000] movdword[1000],7 pośredni [[1000]] niewystępuje rejestrowy(bezpośredni) r1 moveax,[ebx] (rejestrowy)pośredni [r1] moveax,[ebx] indeksowy [r1+8] moveax,[ebx+4*ecx+8] [r1+r2] stosowy [sp] pusheax [sp+4] popeax mov[esp+2*ecx+4],eax Nazwai opis Tryby adresowania argumentów(2) 4.13 Oznaczenia Przykładyw IA-32 względny ip+8 jclabel pc+9 rejestrowypośredni z preinkrementacją [+r1] rejestrowypośredni [r1+] movs z postinkrementacją popeax rejestrowypośredni [-r1] loop z predekrementacją pusheax rejestrowypośredni [r1-] movs z postdekrementacją Cyklpracy(Z80) 4.14 Pomiarwydajności 4.15 cyklrozkazowy cykleprocesora cyklezegara 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 IPS Instructions Per Second MIPS=10 6 IPS FLOPS FloatingPointOperationsPerSecond MFLOPS=10 6 FLOPS GFLOPS=10 9 FLOPS TFLOPS=10 12 FLOPS PFLOPS=10 15 FLOPS

Metodyzwiększaniawydajności(1) 4.16 Zwiększanie częstotliwościtaktowania ograniczeniakonstrukcyjne i technologiczne wydzielanie ciepła czaspropagacji Innepomysły pobieranieinstrukcjinazakładkę kolejka(bufor)instrukcji przetwarzaniepotokowe zrównoleglanie wykonywania instrukcji Metodyzwiększaniawydajności(2) 4.17 Nienadążanie szybkość pracy pamięci za wzrostem szybkości pracy procesorów zwiększanie szerokościszyny danych wielopoziomowe pamięci podręczne,początkowo jako zewnętrzne, aobecniewjednymukładziescalonymzprocesorem pamięci umożliwiające pobieranie danych co jeden cykl zegara, anawetdwarazywjednymcykluzegara Przetwarzanie potokowe 4.18 Problemyw przetwarzaniupotokowym 4.19 I 1 I 2 I 3 I 4 I 1 I 2 I 3 I 4 F fetch D decode E execute W writeback F D E E W zależność zasobu zależność danych F D E F D F zależność sterowania Potokowe układy arytmetyczne 4.20 Zależnościmiędzydanymi 4.21 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 ) RAW odczytpozapisie load-use moveax,7 addebx,eax WAR zapispoodczycie addeax,ebx movebx,4 WAW zapispozapisie addeax,ebx andecx,edx define-use addeax,3 mulebx Zależnościsterowania 4.22 Metodyzrównoleglania 4.23 Pobieranie docelowego rozkazu z wyprzedzeniem Równoległe przetwarzanie obu gałęzi programu Predykcja skoków(przewidywanie rozgałęzień) zawszenastępujeskok nigdynienastępujeskok decyduje kod instrukcji(kompilator) jakprzyostatnimwykonaniu tablicahistoriiskoków Buforpętli Opóźnionerozgałęzianie Procesor superskalarny wektorowy (SIMD SingleInstructionMultipleData) zbardzodługimsłoweminstrukcji (VLIW VeryLongInstructionWord) Zrównoleglenie wtrakciewykonywania algorytm kompilator

Wydawanieikończenieinstrukcji 4.24 ArchitekturyRISCiCISC(1) 4.25 scheduler pipe1 pipe2 pipe3 re-order buffer RISC ReducedInstructionSet Zawierająograniczony,prosty zbiórinstrukcji. Zawierają dużą liczbę uniwersalnychrejestrów. Instrukcjearytmetyczno- -logicznewykonywanesąna rejestrach. CISC ComplexInstructionSet Występująskomplikowaneinstrukcje wspierające języki wysokiegopoziomu. Zawierająmałąliczbąrejestrów i/lubrejestryspecjalizowane. Instrukcjearytmetyczno- -logicznemogąpobieraćargumentyz pamięciiumieszczać wynikwpamięci. ArchitekturyRISCiCISC(2) 4.26 ArchitekturyRISCiCISC(3) 4.27 RISC ReducedInstructionSet CISC ComplexInstructionSet Kodyinstrukcjisąstałejdługości,typowo4bajty,imająstałe rozmieszczenie pól,co ułatwia dekodowanie. Kodyinstrukcjimajązmienną długość,typowoodjednegodo kilkunastubajtów.występuje prefiksowanieinstrukcjiutrudniającedekodowanie. Posiadająmałąliczbętrybów adresowania. Dozwolonejesttylkoadresowaniewyrównane. Posiadajądużąliczbętrybów adresowania. Dozwolonejestadresowanieniewyrównane. CISC rozkazy Translator µops RISC Genezamikroprocesora 4.28 Zbytczasochłonneprojektowanieodpodstawzbrameklogicznych nowegomodelunp.kalkulatoralubsterownikawindy Podczas projektowaniałatwopopełnić trudnydo usunięciabłąd Układuniwersalny mikroprocesor Nowafunkcjonalnośćprzezwymianęprogramu Genezamikroprogramowania 4.29 Zbytczasochłonneprojektowanieodpodstawzbrameklogicznych nowejjednostkisterującej(mikro)procesora Podczas projektowaniałatwopopełnić trudnydo usunięciabłąd Uniwersalnajednostkasterująca Nowafunkcjonalnośćprzezwymianęmikroprogramu Mikroprogramowanie 4.30 Językwysokiegopoziomu Asembler Kodmaszynowy µoperacje µprogram sprzęt Systemprzerwań 4.31 Przerwaniasprzętowe maskowalne niemaskowalne Przerwaniaprogramowe Pracakrokowa debugowanie Wyjątki ponawianie instrukcji,która spowodowaławyjątek Obsługaprzerwań tablicaprzerwań

Sprzętowe wsparcie dla systemów operacyjnych 4.32 Segmentacja 4.33 Translacjaadresów segmentacja stronicowanie,prostaiodwrotnatablicastron Poziomyochrony wewnętrzny,nadzorcy,uprzywilejowany zewnętrzny,aplikacji Wywoływanie usług systemu operacyjnego przerwania specjalnainstrukcja(syscall) pamiećwirtualna procesu1 pamięć liniowa pamiećwirtualna procesu2 Stronicowanie 4.34 pamięć fizyczna (ramki) Tablicastron 4.35 liniowyadreswirtualny nrstrony przemieszczenie tablicastron liniowa pamięć wirtualna (strony) atrybuty dysk specjalnyrejestr przemieszczenie adresfizyczny Stronicowanie wielopoziomowe 4.36 Odwróconatablicastron 4.37 liniowyadreswirtualny nrtablicy nrstrony przemieszczenie liniowyadreswirtualny nrstrony przemieszczenie katalogtablic tablicastron funkcja haszująca odwróconatablicastron nrstrony atrybuty przemieszczenie przemieszczenie specjalnyrejestr adresfizyczny adresfizyczny TLB 4.38 Urządzeniawejścia-wyjścia 4.39 Każde odwołanie do pamięci wymaga zajrzenia do tablicy stron, którasamajestprzechowywanaw pamięci. Taki mechanizm jest nieefektywny. Przy odwoływaniu się do pamięci obowiązuje zasada lokalności. Rozwiązaniem jest bufor translacjiadresów(ang.tlb Translation LookasideBuffer). Metodyadresowaniaurządzeńwejścia-wyjścia rozdzielonaprzestrzeńadresowa wspólnaprzestrzeńadresowa Przesyłaniedużychblokówdanych transmisjaprocesorowa(pio ProgrammedInput/Output) bezpośrednidostępdopamięci(dma DirectMemoryAccess) Sterownikiurządzeń hardware software

DMA 4.40 Mikroprocesorysąwszędzie 4.41 Odciąża procesor przy przesyłaniu dużych bloków danych. Dane przesyłane są bezpośrednio między sterownikiem urządzenia apamięciąoperacyjną. Przesyłanie obsługuje sterownikdma specjalizowanyukład podłączonydoszynysystemowej. Fazytransmisji: rozkazów procesorinicjujekanałdmaizapisujeparametry transmisji, danych wykonywane jest przesyłanie, statusu sterownikdmazgłaszaprzerwanie,procesorodczytuje statusizwalniakanałdma.