Algoritmizace a programování Struktura počítače - pokračování České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015
Systémová struktura počítače pokrač. Systém přerušení A8B14ADP Algoritmizace a programovaní - Systém přerušení 2
Asynchronní akce hardwareové (hw) volání procedury Žádosti o přerušení Řadič přerušení A8B14ADP Algoritmizace a programovaní - Systém přerušení 3
Asynchronní akce hw volání procedury (ISR) Kontrolní seznam 7 Check list No.7 Asynchronní akce Systém přerušení Hardwarové volání procedury Předdefinovaná cílová adresa Vektor přerušení Tabulka vektorů přerušení Asynchronní žádost o přerušení Řadič přerušení Vstupy žádostí o přerušení Asynchronní událost Žádost o přerušení do CPU Potvrzení žádosti od CPU Asynchronous actions Interrupt system Hardware procedure call Predefined target address Interrupt vector Interrupt vector table Asynchronous interrupt request Interrupt controller Interrupt request inputs Interrupt event CPU interrupt request CPU interrupt acknowledge A8B14ADP Algoritmizace a programovaní - Systém přerušení 4
Asynchronní akce hw volání procedury (ISR). Kontrolní seznam 8 Check list No.8 Asynchronní akce - pokrač. Instrukce je nepřerušitelná Reakční doba přerušení Priorita přerušení Statická priorita přerušení Dynamická priorita přerušení Programová priorita přerušení Typy přerušení Maskovatelné přerušení Nemaskovatelné Programové (ladící) přerušení Program řízený událostmi Asynchronous actions cont'd Instruction is uninterruptable Interrupt latency Interrupt priority Static interrupt priority Dynamic interrupt priority Software interrupt priority Interrupt types Maskable interrupt Nonmaskable interrupt Trap (software interrupt) Event driven program A8B14ADP Algoritmizace a programovaní - Systém přerušení 5
Asynchronní akce hw volání procedury (ISR) Kontrolní seznam 9 Check list No.9 Asynchronní akce - pokrač. Obsluha přerušení - ISR Návratová adresa z přerušení Instrukce návratu z přerušení Asynchronní událost Pozadí programu Nejnižší hladina programu Sdílené zdroje Střadač Stavové slovo procesoru - PSW Příznakový registr Kontext programu (uložit/obnovit) Asynchronous actions cont'd Interrupt service routine - ISR Interrupt return address Interrupt return instruction Asynchronous event Background (level) Lowest program level Shared resources Accumulator Processor status word - PSW Flag register Program context (save/restore) A8B14ADP Algoritmizace a programovaní - Systém přerušení 6
Asynchronní akce hw volání procedury (ISR) A8B14ADP Algoritmizace a programovaní - Systém přerušení 7
Prostředky pro organizaci hw volání procedury (interrupt) A8B14ADP Algoritmizace a programovaní - Systém přerušení 8
Sdílené prostředky (sdílí je ISR a přerušený program) A8B14ADP Algoritmizace a programovaní - Systém přerušení 9
Žádost o obsluhu přerušení (hw volání procedury) A8B14ADP Algoritmizace a programovaní - Systém přerušení 10
Žádost o obsluhu aktivní - 1 A8B14ADP Algoritmizace a programovaní - Systém přerušení 11
Dokončení aktivní instrukce - 2 A8B14ADP Algoritmizace a programovaní - Systém přerušení 12
Uložení (Push) návratové adresy do zásobníku (Stack) - 3 A8B14ADP Algoritmizace a programovaní - Systém přerušení 13
Vyzvednutí adresy obslužného programu (ISR) - 4 A8B14ADP Algoritmizace a programovaní - Systém přerušení 14
Spuštění obslužné procedury přerušení (ISR) - 5 A8B14ADP Algoritmizace a programovaní - Systém přerušení 15
Uložení kontextu do zásobníku - 6 A8B14ADP Algoritmizace a programovaní - Systém přerušení 16
Provedení těla obslužné procedury (ISR) - 7 A8B14ADP Algoritmizace a programovaní - Systém přerušení 17
Obnovení kontextu (ze zásobníku) - 8 A8B14ADP Algoritmizace a programovaní - Systém přerušení 18
Vyzvednutí návratové adresy (ze zásobníku) - 9 A8B14ADP Algoritmizace a programovaní - Systém přerušení 19
Obnovení běhu přerušeného programu - 10 A8B14ADP Algoritmizace a programovaní - Systém přerušení 20
Princip programu řízeného událostmi - souhrn Obsluha žádosti o přerušení souhrn akcí Dokonči právě prováděnou instrukci (instrukce je nepřerušitelná) Ulož (Push) návratovou adresu do zásobníku (tj. adresu, která je právě v čítači instrukcí (PC)) Vyzvedni adresu ISR (tj. podprogramu obsluhy přerušení) z tabulky vektorů přerušení Spusť ISR Vynuluj Interrupt Request Flag (závisí na typu procesoru) Ulož kontext do zásobníku Proveď tělo ISR (vlastní obsluhu žádosti o přerušení) Obnov původní kontext (vyzvedni ho ze zásobníku) Proveď instrukci Return Ta vyzvedne Návratovou adresu ze zásobníku do čítače instrukcí (PC) Pokračuj v programu na pozadí tj. čti instrukci z adresy uložené v PC A8B14ADP Algoritmizace a programovaní - Systém přerušení 21
Event Driven Program Principle - summary Interrupt request service summary Finish current background instruction (instruction is uninterruptable) Push Return Address to stack (i.e. address in program counter) Get ISR Address from Interrupt Vector Table Start ISR routine Clear Interrupt Request Flag (depends on processor type) Save context to stack Run ISR body Restore context from stack Execute Return instruction Pop Return Address from stack (Pop it to program counter) Continue background program read next instruction from address in PC A8B14ADP Algoritmizace a programovaní - Systém přerušení 22
Typy systémů přerušení Jednohladinové neprioritní Single level - non-priority interrupt system Vícehladinové prioritní Nemaskovatelné Softwareové Trap Maskovatelné Multi level priority interrupt system Nonmaskable Trap Maskable S pevnou hw prioritou S dynamicky volitelnou prioritou Fixed priority system Flexible priority system A8B14ADP Algoritmizace a programovaní - Systém přerušení 23
Řadič přerušení princip (Interrupt Controller) Interrupt Enable Interrupt Flag Žádost o přerušeni Povolení maskovatelných žádostí A8B14ADP Algoritmizace a programovaní - Systém přerušení 24
Cyklus obsluhy přerušení (Interrupt Cycle) A8B14ADP Algoritmizace a programovaní - Systém přerušení 25
DMA cyklus (Direct Memory Access Cycle) A8B14ADP Algoritmizace a programovaní - Systém přerušení 26
DMA - princip A8B14ADP Algoritmizace a programovaní - Systém přerušení 27
DMA převzetí řízení sběrnice DMA TRANSFER CYCLE ADDRESS VALID DATA VALID BUS REQUEST BUS RELEASED DMA END CPU CONTINUES ADDR.BUS DATA BUS nread nwrite HOLD HLDA BUS MASTER 1 -CPU BUS MASTER 2 DMA CONTROLLER NOTE: nread, nwrite - SIGNAL ACTIVE IN 0 A8B14ADP Algoritmizace a programovaní - Systém přerušení 28
Programátorský model počítače A8B14ADP Algoritmizace a programovaní - Systém přerušení 29
Struktura CPU versus operandy Kontrolní seznam 10 Check list No.10 Struktura CPU versus operandy Orientovaný na zásobník ALU, PSW (Příznakový reg) zásobník Střadačově orientovaný ALU, PSW (Příznakový reg) Paměť dat Registrově orientovaný ALU, PSW (Příznakový reg) univerzální registry (v CPU) Paměťově orientovaný ALU, PSW, paměť dat CPU systems versus operands Stack oriented ALU, PSW (Flags) stack Accumulator oriented ALU, PSW (Flags), Accumulator Data memory Register oriented ALU,PSW (Flags) Universal (scratchpad) registers Memory oriented ALU, PSW (Flags), data memory A8B14ADP Algoritmizace a programovaní - Systém přerušení 30
Struktura CPU versus operandy - 1 STACK TOS ALU FLAGS STATUS STACK ORIENTED CPU A8B14ADP Algoritmizace a programovaní - Systém přerušení 31
Struktura CPU versus operandy - 2 DATA MEMORY ALU FLAGS STATUS ACCUMULATOR ACCUMULATOR ORIENTED CPU A8B14ADP Algoritmizace a programovaní - Systém přerušení 32
Struktura CPU versus operandy - 3 REGISTERS (INSIDE CPU) ALU FLAGS STATUS REGISTER ORIENTED CPU A8B14ADP Algoritmizace a programovaní - Systém přerušení 33
Struktura CPU versus operandy - 4 DATA MEMORY ALU FLAGS STATUS MEMORY ORIENTED CPU A8B14ADP Algoritmizace a programovaní - Systém přerušení 34
Oddělený prostor vstupů a výstupů A8B14ADP Algoritmizace a programovaní - Systém přerušení 35
Mapování prostoru vstupů/výstupů do paměti A8B14ADP Algoritmizace a programovaní - Systém přerušení 36
Hardwareový zásobník (v CPU) A8B14ADP Algoritmizace a programovaní - Systém přerušení 37
Adresové módy (způsoby adresování operandů) Kontrolní seznam 11 Check list No. 11 Adresové módy Paměť dat Paměť programu Přímá adresa Nepřímá adresa Ukazatel do paměti Indexové adresování Bázová adresa + index Adresování pomocí bank Přemapování paměti Přístupová banka Skrytý paměťový prostor Addressing modes Data memory Program memory Direct address Indirect address Memory pointer Indexed addressing Base address + index Memory banking Remapping Access bank Hidden memory space A8B14ADP Algoritmizace a programovaní - Systém přerušení 38
Přímá adresa (adresa součástí instrukce) A8B14ADP Algoritmizace a programovaní - Systém přerušení 39
Nepřímá adresa (adresa je v registru) A8B14ADP Algoritmizace a programovaní - Systém přerušení 40
Indexové adresování A8B14ADP Algoritmizace a programovaní - Systém přerušení 41
Dynamické přemapování a přímá adresa A8B14ADP Algoritmizace a programovaní - Systém přerušení 42
Instrukční soubor počítače rozdělení Kontrolní seznam 12 Check list No. 12 Instrukční soubor počítače Pevná řádová čárka Plovoucí řádová čárka Přesuny operandů Aritmetické operace Posuny a rotace Logické operace Bitové operace Nepodmíněné skoky Absolutní, relativní Podmíněné skoky Volání podprogramu a návrat Řídící instrukce instruction set Fixed point Floating point Move operations Arithmetic operations Shift, Rotate operations Logical operations Bit operations Goto, Branch Direct, relative Conditional Branch Call, Return Control instructions A8B14ADP Algoritmizace a programovaní - Systém přerušení 43
Paměť počítače Paměť počítače je zařízení pro uchování programu a dat Základní funkce paměti: Uložení informace do paměti zápis Vyzvednutí informace z paměti čtení Třídění pamětí různá hlediska: Způsob použití v počítači Metoda přístupu k informacím v paměti Uchování a změna informace v paměti Fyzikální princip paměti Rychlost přístupu k informaci Kapacita paměti A8B14ADP Algoritmizace a programovaní - Systém přerušení 44
Třídění pamětí počítače Způsob použití v počítači Operační paměť (Main Memory) Externí paměť Vyrovnávací paměť (cache, nebo mezi počitači) Komunikační paměť (mezi počítači) Metoda přístupu k informacím v paměťi: Libovolný (náhodný) výběr položky (adresovatelná paměť) Jednobránová, dvoubránová, vícebránová Sekvenční (postupný) výběr položky (sériová paměť) Fronta (Queue, FIFO First In First Out) Zásobník (Stack, LIFO Last In First Out) Asociativní paměť (Contents Addressable Memory) A8B14ADP Algoritmizace a programovaní - Systém přerušení 45
Třídění pamětí počítače Uchování a změna informace v paměti: Volatilní po vypnutí napájení ztrácejí informaci SRAM Statická RAM (Static Random Access Memory) DRAM Dynamická RAM SDRAM Synchronní dynamická RAM Nevolatilní po vypnutí napájení informace zůstává v paměti ROM (Read Only Memory) EPROM (Erasable ROM) EEPROM (Electrically Erasable ROM) FLASH SRAM zálohovaná baterií Magnetické disky Optické disky A8B14ADP Algoritmizace a programovaní - Systém přerušení 46
Třídění pamětí počítače Fyzikální princip paměti: Polovodičové (Elektronické) Magnetické Optické Rychlost přístupu k informaci: Rychlé pro zápis i čtení (R/W) SRAM DRAM SDRAM Rychlé pro čtení ROM EPROM EEPROM FLASH A8B14ADP Algoritmizace a programovaní - Systém přerušení 47
Cache vyrovnávací paměť Urychlení práce počítače Část informace přesunuta do menší ale rychlé paměti (cache) Přístup procesoru k této informaci rychlejší Pokud informace v cache není, nutno ji přisunout do cache z operační paměti Cache může být rozdělena na více úrovní (hladin) jedna z úrovní je přímo v procesoru, druhá může být vně procesoru (ale sestavená z rychlejší paměti než je paměť operační) Cache může být určena jen pro data nebo i pro instrukce Data cache Instruction cache Virtual-to-physical address translation cache (u počítače s virtuální pamětí, kde je paměťový prostor rozšířen z operační paměti i na disk) Data cache po zpracování dat se data uloží: Ihned zpět do operační paměti (write-through method) Do data cache (write-back method). Zpět do operační paměti se uloží později, při novém plnění data cache A8B14ADP Algoritmizace a programovaní - Systém přerušení 48
Cache Vyrovnávací paměť - jednohladinová Single Level Cache A8B14ADP Algoritmizace a programovaní - Systém přerušení 49
Cache Vyrovnávací paměť - dvouhladinová Multi Level Cache A8B14ADP Algoritmizace a programovaní - Systém přerušení 50
Virtuální paměť (Virtual Memory) - princip A8B14ADP Algoritmizace a programovaní - Systém přerušení 51
Virtuální paměť Virtuální paměť (Virtual Memory) Paměťový prostor je rozšířen na disk Adresy (logické) mohou mít hodnotu větší než odpovídá operační paměti Část instrukcí a dat spuštěného programu je odložena (Swap) na disk (ty, které nejsou právě třeba při provádění programu) Paměťová jednotka, která se přenáší mezi virtuální a fyzickou pamětí se nazývá stránka (Page) A8B14ADP Algoritmizace a programovaní - Systém přerušení 52
Algoritmizace a programování Struktura počítače KONEC České vysoké učení technické Fakulta elektrotechnická