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 1
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 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 Check list No.7 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 2
Asynchronní akce hw volání procedury (ISR). Kontrolní seznam 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 Check list No.8 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 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) Check list No.9 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 3
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 4
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 5
Žá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 6
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 7
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 8
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 9
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 10
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 11
Typy systémů přerušení Jednohladinové neprioritní Vícehladinové prioritní Nemaskovatelné Softwareové Trap Maskovatelné S pevnou hw prioritou S dynamicky volitelnou prioritou Single level - non-priority interrupt system Multi level priority interrupt system Nonmaskable Trap Maskable Fixed priority system Flexible priority system A8B14ADP Algoritmizace a programovaní - Systém přerušení 23 Řadič přerušení princip (Interrupt Controller) TRAP DECODED INTRQ NMI IR0 IR1 Event Detector Priority Encoder Register (Active Interrupt) Comparator IR2 IF0 IE0 IF1 IE1 Driver IF2 GIE IE1 Control Interrupt Enable Interrupt Flag Žádost o přerušeni Povolení maskovatelných žádostí A8B14ADP Algoritmizace a programovaní - Systém přerušení 24 12
Cyklus obsluhy přerušení (Interrupt Cycle) A8B14ADP Algoritmizace a programovaní - Systém přerušení 25 DMA cyklus (Direct Memory Access Cycle) XTAL (CRYSTAL) STABLE SYNC. SIGNAL Power Supply Clock Power Monitor RESET DRQ1 DRQn HOLD CPU DMA Controller HLDA Common Bus Program Memory BIOS Operating System Application Program Data Memory MAIN MEMORY PROGRAM INSTRUCTIONS PROGRAM VARIABLES & PROGRAM STACK IRQ1 IRQ2 IRQn Interrupt Controller I/O Channels Output Input World A8B14ADP Algoritmizace a programovaní - Systém přerušení 26 13
DMA - princip XTAL (CRYSTAL) STABLE SYNC. SIGNAL DRQn DMA Controller Clock Control Commands Transfer Count Destination Address Source Address BUS MASTER 1 HOLD CPU HLDA INTRQ INTACK Common Bus Program Memory BIOS Operating System Application Program Data Memory MAIN MEMORY PROGRAM INSTRUCTIONS PROGRAM VARIABLES & PROGRAM STACK BUS MASTER 2 IRQ1 IRQ2 IRQn Interrupt Controller I/O Channels Output Input World A8B14ADP Algoritmizace a programovaní - Systém přerušení 27 DMA převzetí řízení sběrnice A8B14ADP Algoritmizace a programovaní - Systém přerušení 28 14
Programátorský model počítače A8B14ADP Algoritmizace a programovaní - Systém přerušení 29 Struktura CPU versus operandy Kontrolní seznam 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 Check list No.10 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 15
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 A8B14ADP Algoritmizace a programovaní - Systém přerušení 32 16
Struktura CPU versus operandy - 3 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 17
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 18
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 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 Check list No. 11 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 19
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 20
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 21
Instrukční soubor počítače rozdělení Kontrolní seznam 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 Check list No. 12 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 22
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 23
Fyzikální princip paměti: Polovodičové (Elektronické) Magnetické Optické Třídění pamětí počítače 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 24
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 25
Virtuální paměť (Virtual Memory) - princip Physical Address Main Memory + Logical Address Main Memory Page 0 Page 1 Page 2 Page 3 Page 4 Disk Disk Page 5 Page N 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 26
Algoritmizace a programování Struktura počítače KONEC České vysoké učení technické Fakulta elektrotechnická 27