Algoritmizace a programování

Podobné dokumenty
Algoritmizace a programování

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Systémová struktura počítače

ŘÍZENÍ ELEKTRICKÝCH POHONŮ. Systémová struktura počítače Řízení běhu programu. České vysoké učení technické Fakulta elektrotechnická

Struktura a architektura počítačů (BI-SAP) 1

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

Y36SAP

Struktura a architektura počítačů

Architektura počítače Základní bloky Provádění instrukcí

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

Algoritmizace a programování

Struktura a architektura počítačů (BI-SAP) 7

Systém přerušení. Algoritmizace a programování. Struktura počítače - pokračování. Systémová struktura počítače pokrač.

Pohled do nitra mikroprocesoru Josef Horálek

Princip funkce počítače

Strojový kód k d a asembler procesoru MIPS SPIM. MIPS - prostředí NMS NMS. 32 ks 32bitových registrů ( adresa registru = 5 bitů).

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Přednášky o výpočetní technice. Hardware teoreticky. Adam Dominec 2010

VÝUKOVÝ MATERIÁL. 3. ročník učebního oboru Elektrikář Přílohy. bez příloh. Identifikační údaje školy

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Architektury počítačů a procesorů

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Architektura počítače

Architektury VLIW M. Skrbek a I. Šimeček

Mikrokontroléry. Doplňující text pro POS K. D. 2001

Struktura a architektura počítačů

Algoritmizace a programování

Profilová část maturitní zkoušky 2014/2015

Vstup-výstup Input-Output Přehled a obsluha

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Další aspekty architektur CISC a RISC Aktuálnost obsahu registru

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

C2115 Praktický úvod do superpočítání

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Adresní mody procesoru

Architektura procesoru ARM

Základní principy konstrukce systémové sběrnice - shrnutí. Shrnout základní principy konstrukce a fungování systémových sběrnic.

MSP 430F1611. Jiří Kašpar. Charakteristika

Procesory, mikroprocesory, procesory na FPGA O. Novák, CIE 11 1

IUJCE 07/08 Přednáška č. 1

Kubatova Y36SAP 8. Strojový kód Jazyk symbolických instrukcí asembler JSA pro ADOP a AVR Kubátová Y36SAP-strojový kód 1

Procesor. Základní prvky procesoru Instrukční sada Metody zvýšení výkonu procesoru

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Opakování programování

Struktura a architektura počítačů (BI-SAP) 9

Procesy a vlákna (Processes and Threads)

Struktura a architektura počítačů

Reprezentace dat v informačních systémech. Jaroslav Šmarda

Přednáška. Strojový kód a data. 4. Přednáška ISA J. Buček, R. Lórencz

Přednáška. Vstup/Výstup. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Strojový kód. Instrukce počítače

Procesor. Procesor FPU ALU. Řadič mikrokód

Operační systémy. Jednoduché stránkování. Virtuální paměť. Příklad: jednoduché stránkování. Virtuální paměť se stránkování. Memory Management Unit

Sběrnicová struktura PC Procesory PC funkce, vlastnosti Interní počítačové paměti PC

Architektury CISC a RISC, uplatnění v personálních počítačích

2.8 Procesory. Střední průmyslová škola strojnická Vsetín. Ing. Martin Baričák. Název šablony Název DUMu. Předmět Druh učebního materiálu

Principy komunikace s adaptéry periferních zařízení (PZ)

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Základní uspořádání pamětí MCU

Profilová část maturitní zkoušky 2015/2016

PROCESOR. Typy procesorů

8. Laboratoř: Aritmetika a řídicí struktury programu

Vstupně - výstupní moduly

Assembler RISC RISC MIPS. T.Mainzer, kiv.zcu.cz

Provádění instrukcí. procesorem. Základní model

Technické prostředky počítačové techniky

Koncepce DMA POT POT. Při vstupu nebo výstupu dat se opakují jednoduché činnosti. Jednotlivé kroky lze realizovat pomocí speciálního HW.

Přednáška. Správa paměti II. Katedra počítačových systémů FIT, České vysoké učení technické v Praze Jan Trdlička, 2012

Profilová část maturitní zkoušky 2017/2018

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Hardware - komponenty počítačů Von Neumannova koncepce počítače. Von Neumannova koncepce počítače

Z{kladní struktura počítače

Procesor z pohledu programátora

Maturitní témata. IKT, školní rok 2017/18. 1 Struktura osobního počítače. 2 Operační systém. 3 Uživatelský software.

Metody připojování periferií BI-MPP Přednáška 2

Metody připojování periferií

Profilová část maturitní zkoušky 2013/2014

Počítač jako prostředek řízení. Struktura a organizace počítače

Struktura a architektura počítačů

Základní pojmy. Program: Algoritmus zapsaný v programovacím jazyce, který řeší nějaký konkrétní úkol. Jedná se o posloupnost instrukcí.

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

RISC a CISC architektura

NSWI /2011 ZS. Principy cpypočítačůčů aoperačních systémů ARCHITEKTURA

Architektura počítačů. Instrukce a návrh instrukční sady. Lubomír Bulej KDSS MFF UK

Sběrnicová architektura POT POT. Jednotlivé subsystémy počítače jsou propojeny sběrnicí, po které se přenáší data oběma směry.

Programování v C++ 1, 1. cvičení

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

Vstupně výstupní moduly. 13.přednáška

Petr Krajča. 26. říjen, 2012

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 TECHNICKÉ VYBAVENÍ POČÍTAČŮ

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Témata profilové maturitní zkoušky

Jazyk symbolických adres

PB002 Základy informačních technologií

Paměťový podsystém počítače

Systémy pro sběr a přenos dat

Architektura počítačů

Předmluva 13 Použité konvence 14. KAPITOLA 1 Základní číselné soustavy a pojmy Číselné soustavy a převody 15 1.

Semestrální práce z předmětu Speciální číslicové systémy X31SCS

Transkript:

Algoritmizace a programování Struktura počítače České vysoké učení technické Fakulta elektrotechnická Ver.1.10 J. Zděnek 2015

Struktura předmětu Systémová struktura počítače, procesor, paměti, periferní zařízení Systém přerušení, zpracování asynchronních událostí Algoritmy, programy, programovací jazyky, jazyk C Proměnné, typy, operátory, výrazy, příkazy, vstup a výstup Řízení běhu programu, řídící struktury Struktura programu v C, podprogramy a funkce Předávání parametrů (hodnotou, odkazem), reentrantní funkce Procedurální programování Pole, struktury a uniony Ukazatele a ukazatelová aritmetika Soubory, standardní knihovny Algoritmy vyhledávání a řazení, rekurze Preprocesor, podmíněný překlad, makra, hlavičkové soubory Specifika programování vestavěných (Embedded) systémů A8B14ADP Algoritmizace a programovaní - Struktura počítače 2

Zdroje informací Přednášky k předmětu A8B14ADP Web předmětu A7B14SAP http://motor.feld.cvut.cz Literatura [1] Kernighan, B.W. - Ritchie, D.M.: Programovací jazyk C, Computer Press, Brno 2006. ISBN: 97880251089702. [2] Harbison, S.P.- Steele, G.L.: A Reference Manual 5th ed. Prentice Hall 2002. ISBN: 978-01308959293. [3] Herout, P.: Učebnice jazyka C. 6. vyd. Kopp 2010. ISBN: 978-80-7232-383-84. [4] Herout, P.: Učebnice jazyka C - 2.díl, 4. vyd. Kopp 2010. ISBN: 978-80-7232-367-85. [5] Wróblenski, P.-Michalek, M.-Kiszka, B: Algoritmy. Datové struktury a programovací techniky. ComputerPress, 2004. ISBN: 80-251-0343-9 A8B14ADP Algoritmizace a programovaní - Struktura počítače 3

Učební pomůcky (software) Integrované vývojové prostředí pro OS Windows nebo Linux IDE NetBeans s instalací kompilátoru pro jazyk C http://www.netbeans.org (instalace pro studenty zdarma) Integrované vývojové prostředí pro OS Windows IDE MPLAB s instalací kompilátoru pro jazyk C, (Microchip C18) http://www.microchip.com (instalace pro studenty zdarma) A8B14ADP Algoritmizace a programovaní - Struktura počítače 4

Systémová struktura počítače - úvod Struktura počítače A8B14ADP Algoritmizace a programovaní - Struktura počítače 5

Architektura počítače - hardware Hlavní komponenty počítače Paměť programu a dat Vstupní a výstupní zařízení Komunikace s okolním světem Procesor Výpočetní část Mezipaměť výsledků Řízení Řadič (Controller) A8B14ADP Algoritmizace a programovaní - Struktura počítače 6

Architektura typu von Neumann Společná paměť programu (instrukcí) a dat NELZE paralelně číst instrukce a přenášet data (cesta je společná) A8B14ADP Algoritmizace a programovaní - Struktura počítače 7

Architektura typu von Neumann Instrukce a data jsou uložena v téže paměti. Instrukce a data nelze přenášet po sběrnici současně (společná cesta) pomalejší činnost Jednodušší propojení procesoru s pamětí Paměť je organizována lineárně (tzn. jednorozměrně) a je rozdělena na stejně velké buňky, které se adresují celými čísly (zprav. 0, 1, 2, 3,... ). Data ani instrukce nejsou explicitně označeny. Explicitně nejsou označeny ani různé datové typy. Pro reprezentaci dat i instrukcí se používají dvojkové signály. Instrukce se provádějí jednotlivě, a to v pořadí, v němž jsou zapsány v paměti, pokud není toto pořadí změněno speciálními instrukcemi (nazývanými skoky). Počítač tvoří: Processor (ALU aritmetická a logická jednotky, registry, řídicí část (řadič controller), hlavní paměť (main memory) společně instrukce a data, systém přerušení, vstupní a výstupní zařízení (periferie peripherals) A8B14ADP Algoritmizace a programovaní - Struktura počítače 8

Architektura typu Harvard Oddělená paměť programu (instrukcí) a dat LZE paralelně číst instrukce a přenášet data (cesty jsou oddělené) A8B14ADP Algoritmizace a programovaní - Struktura počítače 9

Architektura typu Harvard Instrukce a data jsou uložena v oddělených pamětech. Instrukce lze číst současně s přenosem dat (oddělené cesty) rychlejší činnost Šířka přenosové cesty instrukcí může být jiná (větší) než přenosová cesta dat. Složitější propojení procesoru s pamětmi (vs von Neumann ) Data a instrukce jsou explicitně označeny Paměť je organizována lineárně (tzn. jednorozměrně) a je rozdělena na stejně velké buňky, které se adresují celými čísly (zprav. 0, 1, 2, 3,... ). Pro reprezentaci dat i instrukcí se používají dvojkové signály. Instrukce se provádějí jednotlivě, a to v pořadí, v němž jsou zapsány v paměti, pokud není toto pořadí změněno speciálními instrukcemi (nazývanými skoky). Počítač tvoří: Processor (ALU aritmetická a logická jednotky, registry, řídicí část (řadič controller), paměť programu (instrukcí), paměť dat, systém přerušení, vstupní a výstupní zařízení (periferie peripherals) A8B14ADP Algoritmizace a programovaní - Struktura počítače 10

Vývoj software úrovně abstrakce Literatura: [1] A8B14ADP Algoritmizace a programovaní - Struktura počítače 11

Vývoj software úrovně abstrakce Překladač (sw) Asembler (sw) Processor (hw) if( z < 0 z > 35} x++; else y++; cmp z, #0 bnc Cont1 cmp z, LIM bc Cont1 inc x 1001 0011 0101 0001 0110 1101 0011 1010 0001 1110 1100 0011 0111 0010 1010 0001 0101 1110 0010 0011 *WR *RD DB 1 2 3 4 A8B14ADP Algoritmizace a programovaní - Struktura počítače 12

Organizace hlavní (operační) paměti počítače Hlavní paměť je rozdělena na buňky paměťová místa, kterým jsou přiřazena nezáporná čísla nazývaná adresy Obsah paměťového místa je slovo slovo (word) velikost závisí na procesoru (např. 16b, 24b, 32b, 64b), b značí bit (binary digit) B značí byte (slabika), 8b = 1B, byte je uspořádaná osmice bitů, obvykle 2 nebo i více byteů tvoří slovo, např. u procesorů Intel řady x86 1 slovo = 2B = 16b. Obsah paměťového místa na adrese adr bývá někdy označován <adr>; nehrozí-li nedorozumění píše se však často adr místo <adr>. A8B14ADP Algoritmizace a programovaní - Struktura počítače 13

Slabiková organizace paměti Dva používané způsoby uložení v paměti (Big vs Little endian) Př. 1 slabika = 1B 1 slovo = 2B 1 dvojité slovo = 4B [dw Double Word] tedy 32b Od adresy 8001 má být uloženo dvojité slovo 1234ABCD: 1. způsob 2. způsob Adresa Big-endian Little-endian Big-endian (IBM360, Motorola 6800) 8001 12 CD 8002 34 AB Little-endian (Intel x86, DEC Alpha) 8003 AB 34 Oba způsoby (Motorola 88110) 8004 CD 12 A8B14ADP Algoritmizace a programovaní - Struktura počítače 14

Zobrazení dat v paměti Numerická data čísla: V pevné řádové čárce (fixed point) celá čísla (integer format) byte, word, racionální čísla (fraction format) byte, word, V pohyblivéřádovéčárce (floating point), racionální čísla, double, float,, matisa+charakteristika Formát zobrazení: Dvojková (binary), př. 10100011b Šestnáctková (hexadecimal), př. A3h nebo 0xA3 Desítková (decimal), př. 163d nebo 163 Bez znaménka (unsigned), pouze nezáporná, byte, word, unsigned Se znaménkem (signed), integer, short int, signed Různě dlouhá, různý rozsah hodnot (short int, integer, long int, byte, word, double, A8B14ADP Algoritmizace a programovaní - Struktura počítače 15

Požadované vlastnosti počítače Požadované vlastnosti počítače Required computer features Řízení toku programu synchronní akce asynchronní akce (řízení událostmi) Přesun proměnných Zpracování proměnných Funkce vstupu/výstupu Pomocné řídicí funkce Program flow control Synchronous actions Asynchronous actions (event driven) Variable transport Variable processing Input/Output functions Auxiliary control functions Zabezpečení běhu Konzistence dat Ochrana proti kopírování Další Operation security Data consistency Reverse engineering protection Others A8B14ADP Algoritmizace a programovaní - Struktura počítače 16

Architektura typu von Neumann A8B14ADP Algoritmizace a programovaní - Struktura počítače 17

Architektura typu Harvard Typ.různá šířka A8B14ADP Algoritmizace a programovaní - Struktura počítače 18

Architektura typu Harvard další modifikace Paralelní čtení/zápis dat Čtení konstant z Flash A8B14ADP Algoritmizace a programovaní - Struktura počítače 19

Architektura von Neumann versus Harvard von Neumann Harvard Jednodušší struktura Sdílená sběrnice nelze paralelně transportovat instrukce a data Společný paměťový prostor instrukcí a dat. Možno pružně rozdělit paměť pro instrukce data a zásobník (pokud vše v RAM) Prostor pro zásobník (Stack) bývá dostatečný. Složitější struktura Oddělené sběrnice možnost paralelního transportu instrukce a dat (rychlost větší) Oddělené prostory instrukcí a dat. Paměť programu (instrukcí) často širší slovo proti paměti dat kompaktnější jednocyklové instrukční kódy. Zásobník často mimo paměť dat (rozdílná šířka paměti programu a dat). Hloubka zásobníku omezená (pak nutno přemístit do paměti dat a to pomalé) A8B14ADP Algoritmizace a programovaní - Struktura počítače 20

Systémová struktura počítače A8B14ADP Algoritmizace a programovaní - Struktura počítače 21

Systémová struktura počítače Kontrolní seznam 1 Check list No.1 Počítač sériový stroj CPU - Procesor Paměť programu Paměť dat Vstup / výstup Společná sběrnice Hodiny (synchronizace) XTAL krystal Nulování Periferie Vnější paměť Master sběrnice Computer sequence machine CPU Central Processing Unit Program memory Data memory Input / output Bus Clock XTAL crystal Reset Peripherals External memory Bus master A8B14ADP Algoritmizace a programovaní - Struktura počítače 22

Systémová struktura počítače Kontrolní seznam 2 Check list No.2 Počítač sériový stroj FSA - konečný automat FSM konečný automat Sychronní automat Stav automatu Podmínky přechodu Instrukce programu Proměnné programu Zásobník programu BIOS Operační systém Aplikační program Zaváděcí program Computer sequence machine FSA Finite State Automaton FSM Finite State Machine Synchronous FSA FSA state Transition conditions Program instructions Program variables Program stack BIOS (Basic I/O System) Operating system Users application Bootstrap A8B14ADP Algoritmizace a programovaní - Struktura počítače 23

Instrukční cyklus A8B14ADP Algoritmizace a programovaní - Struktura počítače 24

Instrukční cyklus Kontrolní seznam 3 Check list No.3 Instrukční cyklus Čtení instrukce Vykonání instrukce Dekódování instrukce Čtení operandu Zpracování operandů Zápis výsledku Řídicí sběrnice (CB) Datová sběrnice (DB) Adresová sběrnice (AB) Sběrnicový cyklus Směr přenosu informace Instruction cycle Operational code (Opcode) fetch Instruction execution Instruction decode Operand read Operand processing Result write Control bus (CB) Data bus (DB) Address bus Bus cycle Information transfer direction A8B14ADP Algoritmizace a programovaní - Struktura počítače 25

Rozdělení společné sběrnice A8B14ADP Algoritmizace a programovaní - Struktura počítače 26

Komunikace mezi bloky Kontrolní seznam 4 Check list No.4 Komunikace mezi bloky CB, DB, AB Obousměrná sběrnice Jednosměrná sběrnice Pouze jeden bus master Směr čtení Směr zápis Adresa platná Data platná Dekodér adresy Pole paměťových jednotek čtení/zápis z/do paměti Block communication CB, DB, AB Bidirectional bus Unidirectiona bus One bus master only Direction READ Direction WRITE Address valid Data valid Address decoder Memory array Memory READ/WRITE A8B14ADP Algoritmizace a programovaní - Struktura počítače 27

Činnost společné sběrnice (AB, DB, CB) A8B14ADP Algoritmizace a programovaní - Struktura počítače 28

Kde číst následující instrukci Čítač instrukcí 1) Další instrukci čti vždy z adresy uložené v PC 2) Adresa v PC se mění automaticky, po čtení instrukce ukazuje na další instrukci 3) Adresa v PC se dá změnit vykonáním instrukce skoku, cílová adresa je součástí instrukce A8B14ADP Algoritmizace a programovaní - Struktura počítače 29

Větvení programu (Jump, Branch) Realizace větvení programu A8B14ADP Algoritmizace a programovaní - Struktura počítače 30

Dekompozice problému na dílčí části A8B14ADP Algoritmizace a programovaní - Struktura počítače 31

Požadavky pro volání procedury Návratová adresa A8B14ADP Algoritmizace a programovaní - Struktura počítače 32

Princip volání procedury (Procedure Call) Zásobník (návratových adres) Ukazatel zásobníku A8B14ADP Algoritmizace a programovaní - Struktura počítače 33

Synchronní akce volání procedury Kontrolní seznam 5 Check list No.5 Synchronní akce Čítač instrukcí - PC Ukazatel do paměti programu Postupné čtení Automatická inkrementace Vnucená adresa Zásobník Ukazatel zásobníku Ukazatel na vrchol zásobníku Vrchol zásobníku Vlož do zásobníku - PUSH Vyzvedni ze zásobníku - POP Synchronous actions Program Counter PC Pointer to program memory Sequential read Auto-increment Forced address Stack Stack Pointer Pointer to stack top TOS top of stack PUSH POP A8B14ADP Algoritmizace a programovaní - Struktura počítače 34

Synchronní akce volání procedury - pokrač. Kontrolní seznam 6 Check list No.6 Synchronní akce - pokrač. Začátek programu Hlavní smyčka Volání procedury Návratová adresa Začátek procedury Tělo procedury Bod návratu (return) Vnořené volání Návěští (cílová adresa skoku) Skok (bez návratové adresy) Hloubka zásobníku Synchronous actions cont'd Program start point Main loop Procedure call Return address Procedure start Procedure body Return Nested calls Label (jump target address) Jump (no return address) Stack depth A8B14ADP Algoritmizace a programovaní - Struktura počítače 35

Sdílené prostředky (sdílí je procedury) A8B14ADP Algoritmizace a programovaní - Struktura počítače 36

Princip volání procedury (synchronní) Volání procedury - souhrn akcí Volání procedury je vyvolané programem (synchronní) ne vnější událostí (vnější událost viz. přerušení) Stejným mechanismem se řídí i vnořené volání (procedura volá proceduru) Další instrukce se vždy čte z adresy právě uložené v čítači instrukcí (PC) Čti instrukci Call Ulož návratovou adresu (tj. obsah čítače instrukcí) do zásobníku Vlož do čítače instrukcí počáteční adresu procedury Ulož kontext do zásobníku Proveď tělo procedury Vyzvedni kontext Proveď instrukci Return Ta vyzvedne Návratovou adresu ze zásobníku do čítače instrukcí (PC) Pokračuj v programu za místem volání Call na pozadí tj. čti instrukci z adresy uložené v PC A8B14ADP Algoritmizace a programovaní - Struktura počítače 37

Algoritmizace a programování Struktura počítače KONEC České vysoké učení technické Fakulta elektrotechnická