1 České vysoké učení technické Fakulta elektrotechnická Algoritmizace a programování Ver.1.10 Struktura počítače - pokračování J. Zděnek 2015 A8B14ADP Algoritmizace a programovaní - Systém přerušení 2 Systémová struktura počítače – pokrač. Systém přerušení
27
Embed
Algoritmizace a programování - cvut.czmotor.feld.cvut.cz/sites/default/files/predmety/A8B14ADP/...České vysoké učení technické Fakulta elektrotechnická. Algoritmizace a programování.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
1
České vysoké učení technické Fakulta elektrotechnická
Algoritmizace a programování
Ver.1.10
Struktura počítače - pokračování
J. Zděnek 2015
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 2
Systémová struktura počítače – pokrač.
Systém přerušení
2
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 3
Asynchronní akce – hardwareové (hw) volání procedury
Řadič přerušení
Žádosti o přerušení
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 4
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
• Asynchronous event• Background (level)• Lowest program level
• Shared resources• Accumulator• Processor status word - PSW
• Flag register• Program context (save/restore)
4
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 7
Asynchronní akce – hw volání procedury (ISR)
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 8
Prostředky pro organizaci hw volání procedury (interrupt)
5
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 9
Sdílené prostředky (sdílí je ISR a přerušený program)
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 10
Žádost o obsluhu přerušení (hw volání procedury)
6
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 11
Žádost o obsluhu aktivní - 1
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 12
Dokončení aktivní instrukce - 2
7
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 13
Uložení (Push) návratové adresy do zásobníku (Stack) - 3
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 14
Vyzvednutí adresy obslužného programu (ISR) - 4
8
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 15
Spuštění obslužné procedury přerušení (ISR) - 5
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 16
Uložení kontextu do zásobníku - 6
9
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 17
Provedení těla obslužné procedury (ISR) - 7
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 18
Obnovení kontextu (ze zásobníku) - 8
10
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 19
Vyzvednutí návratové adresy (ze zásobníku) - 9
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 20
Obnovení běhu přerušeného programu - 10
11
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 21
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á jeprá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í 22
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
12
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 23
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 48
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
25
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 49
Cache – Vyrovnávací paměť - jednohladinová
Single Level Cache
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 50
Cache – Vyrovnávací paměť - dvouhladinová
Multi Level Cache
26
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 51
Virtuální paměť (Virtual Memory) - princip
Main Memory
Disk
Main Memory
Disk
Physical Address
LogicalAddress
+
Page 0
Page 1
Page 2
Page 3
Page 4
Page 5
Page N
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 52
Virtuální paměť (Virtual Memory)
• Virtuální paměť
• 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)
27
České vysoké učení technické Fakulta elektrotechnická