algoritmizace a programování -...
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
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
3
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 5
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í 6
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)
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
Typy systémů přerušení
• Jednohladinové – neprioritní
• Vícehladinové – prioritní• Nemaskovatelné• Softwareové – Trap
• Maskovatelné
• S pevnou hw prioritou
• S dynamicky volitelnouprioritou
• 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í 24
Řadič přerušení – princip (Interrupt Controller)
EventDetector
PriorityEncoder
IF0
IF1
IF2 GIE
IE0
IE1
IE1
Register(Active
Interrupt)
Comparator
Driver
INTRQTRAP DECODED
Control
NMI
IR0
IR1
IR2
Žádost o přerušeni
Povolenímaskovatelných
žádostí
Interrupt Flag
Interrupt Enable
13
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 25
Cyklus obsluhy přerušení (Interrupt Cycle)
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 26
DMA cyklus (Direct Memory Access Cycle)
CPU
DataMemory
I/OChannels
World
Output
CommonBus
Clock
PowerMonitor
PowerSupply
RESET
XTAL(CRYSTAL)
STABLE SYNC. SIGNAL
ProgramMemory
BIOS
OperatingSystem
ApplicationProgram
MAINMEMORY
PROGRAMINSTRUCTIONS
PROGRAMVARIABLES
&PROGRAM
STACK
InterruptController
HOLD HLDA
IRQ1
IRQ2
IRQnInput
DMAController
DRQ1
DRQn
14
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 27
DMA - princip
CPU
DataMemory
I/OChannels
World
Output
CommonBus
Clock
XTAL(CRYSTAL)
STABLE SYNC. SIGNAL
ProgramMemory
BIOS
OperatingSystem
ApplicationProgram
MAINMEMORY
PROGRAMINSTRUCTIONS
PROGRAMVARIABLES
&PROGRAM
STACK
InterruptController
HOLD
HLDA
IRQ1
IRQ2
IRQnInput
DRQn
Control Commands
Transfer Count
Destination Address
Source Address
DMA Controller
INTRQ INTACK
BUS MASTER 1
BUS MASTER 2
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 28
DMA – převzetí řízení sběrnice
15
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 29
Programátorský model počítače
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 30
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
16
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 31
Struktura CPU versus operandy - 1
ALU
FLAGS
STATUS
TOS
STACK
STACK ORIENTED CPU
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 32
Struktura CPU versus operandy - 2
17
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 33
Struktura CPU versus operandy - 3
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 34
Struktura CPU versus operandy - 4
ALU
FLAGS
STATUS
DATA MEMORY
MEMORY ORIENTED CPU
18
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 35
Oddělený prostor vstupů a výstupů
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 36
Mapování prostoru vstupů/výstupů do paměti
19
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 37
Hardwareový zásobník (v CPU)
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 38
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
20
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 39
Přímá adresa (adresa součástí instrukce)
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 40
Nepřímá adresa (adresa je v registru)
21
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 41
Indexové adresování
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 42
Dynamické přemapování a přímá adresa
22
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 43
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í 44
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• …
23
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 45
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í 46
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• …
24
A8B14ADP Algoritmizace a programovaní - Systém p řerušení 47
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í 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á
Algoritmizace a programování
Struktura počítače
KONEC