27
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í

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í

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 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í

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í

Page 2: 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í

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

Page 3: 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í

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)

Page 4: 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í

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)

Page 5: 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í

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)

Page 6: 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í

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

Page 7: 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í

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

Page 8: 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í

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

Page 9: 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í

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

Page 10: 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í

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

Page 11: 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í

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

Page 12: 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í

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

Page 13: 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í

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

Page 14: 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í

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

Page 15: 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í

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

Page 16: 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í

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

Page 17: 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í

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

Page 18: 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í

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

Page 19: 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í

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

Page 20: 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í

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)

Page 21: 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í

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

Page 22: 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í

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• …

Page 23: 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í

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• …

Page 24: 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í

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

Page 25: 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í

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

Page 26: 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í

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)

Page 27: 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í

27

České vysoké učení technické Fakulta elektrotechnická

Algoritmizace a programování

Struktura počítače

KONEC