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á

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

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

Y36SAP

Struktura a architektura počítačů

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

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

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

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

Algoritmizace a programování

Princip funkce počítače

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

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

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

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

Architektury počítačů a procesorů

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

Struktura a architektura počítačů

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

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

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

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

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

Architektura počítače

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

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

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

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

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

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

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

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

Algoritmizace a programování

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

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

Adresní mody procesoru

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

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

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

Architektura procesoru ARM

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

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

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

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

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

Procesy a vlákna (Processes and Threads)

Opakování programování

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

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

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

Struktura a architektura počítačů

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

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

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

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

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

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

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

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

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

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

PROCESOR. Typy procesorů

Vstupně - výstupní moduly

Metody připojování periferií

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

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

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

RISC a CISC architektura

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

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

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

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

MIKROPROCESORY PRO VÝKONOVÉ SYSTÉMY. Systém přerušení. České vysoké učení technické Fakulta elektrotechnická

Procesor z pohledu programátora

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

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

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

Struktura a architektura počítačů

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

Kubatova Y36SAP 9. Strojový kód ISA architektura souboru instrukcí střadačově, zásobníkově orientovaná, GPR Kubátová Y36SAP-ISA 1

Petr Krajča. Katedra informatiky Univerzita Palackého v Olomouci. Petr Krajča (UP) KMI/YOS: Přednáška I / 21

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

x86 assembler and inline assembler in GCC

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

Jazyk symbolických adres

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.

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Jednočipové mikropočítače (mikrokontroléry)

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

Simulátory aplikačně specifických instrukčních procesorů Jazyk LISA. Masařík Karel

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 1

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 2

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 3

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 4

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 5

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 6

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 7

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 Ří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 Zabezpečení běhu Konzistence dat Ochrana proti kopírování Další Required computer features Program flow control Synchronous actions Asynchronous actions (event driven) Variable transport Variable processing Input/Output functions Auxiliary control functions Operation security Data consistency Reverse engineering protection Others A8B14ADP Algoritmizace a programovaní - Struktura počítače 16 8

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 9

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 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ý. Harvard 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 10

Systémová struktura počítače A8B14ADP Algoritmizace a programovaní - Struktura počítače 21 Systémová struktura počítače Kontrolní seznam 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 Check list No.1 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 11

Systémová struktura počítače Kontrolní seznam 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 Check list No.2 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 12

Instrukční cyklus Kontrolní seznam 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 Check list No.3 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 13

Komunikace mezi bloky Kontrolní seznam 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 Check list No.4 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 14

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 15

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 16

Princip volání procedury (Procedure Call) PC PROGRAM COUNTER ADDRESS PROGRAM MEMORY INSTRUCTIONS Zásobník (návratových adres) IR INSTRUCTION REGISTER DECODE EXECUTE + 00100 LD R0, MAX 00101 ADD R0, R1 00102 ST R0, SUM 00103 CALL 00805 00104 NOP 00105 CMP SUM, R3 00106 BNZ 00630C 00107 SP STACK POINTER 00805 00806 00807 LD R7, PORT3 AND R7, 3FEh RET 00104 STACK (LIFO) TOS Ukazatel zásobníku A8B14ADP Algoritmizace a programovaní - Struktura počítače 33 Synchronní akce volání procedury Kontrolní seznam 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 Check list No.5 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 17

Synchronní akce volání procedury - pokrač. Kontrolní seznam 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 Check list No.6 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 18

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á 19