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

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

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

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

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

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

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

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

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

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

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

Pohled do nitra mikroprocesoru Josef Horálek

Procesor z pohledu programátora

Princip funkce počítače

Popis instrukční sady procesoru ADOP

RISC a CISC architektura

a operačních systémů

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

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

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

Architektury počítačů a procesorů

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

Pohled do nitra mikroprocesoru

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

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

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

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

Architektura počítače

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

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

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

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

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

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

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

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

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

Y36SAP

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

Registry 32 bitové pro všeobecné použití: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP.

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

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

Assembler - 2.část. poslední změna této stránky: Zpět

x86 assembler and inline assembler in GCC

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

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

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

CHARAKTERISTIKA PROCESORU PENTIUM První verze:

Počítače Didaktik. Jan Lorenz. Semestrální projekt z X31SCS

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

Architektura procesoru ARM

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

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

Architektura počítačů Logické obvody

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

ISU Cvičení 7. Marta Čudová

Architektura počítačů Implementace procesoru

PROCESOR. Typy procesorů

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

Opakování programování

Architektura počítačů Logické obvody

ISU Cvičení 3. Marta Čudová

Algoritmizace a programování

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

Algoritmizace a programování

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.

Algoritmizace a programování

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

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

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

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

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

Architekura mikroprocesoru AVR ATMega ( Pokročilé architektury počítačů )

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

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

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

Universita Pardubice Fakulta elektrotechniky a informatiky. Mikroprocesorová technika. Semestrální práce

Adresní mody procesoru

2 Hardware a operační systémy

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

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

Úvod SISD. Sekvenční výpočty SIMD MIMD

Techniky zvýšení výkonnosti procesoru, RISC a CISC procesory

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

Úvod do programovacích jazyků (Java)


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

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

CISC A RISC PROCESORY Jak pracují procesory CISC:

Základní deska (1) Parametry procesoru (2) Parametry procesoru (1) Označována také jako mainboard, motherboard

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

Přednáška 2 A4B38NVS - Návrh vestavěných systémů 2014, kat. měření, ČVUT - FEL, Praha J. Fischer A4B38NVS, 2014, J.Fischer, kat. měření, ČVUT - FEL 1

Architektura počítačů

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

Architektura Pentia 1

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

Architektury CISC a RISC, uplatnění rysů architektur RISC v personálních počítačích - pokračování

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

Základní deska (1) Označována také jako mainboard, motherboard. Deska plošného spoje tvořící základ celého počítače Zpravidla obsahuje:

Jazyk symbolických adres

Transkript:

Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti Struktura a architektura počítačů (BI-SAP) 8 doc. Ing. Hana Kubátová, CSc. Katedra číslicového návrhu Fakulta informačních technologii ČVUT v Praze Hana Kubátová BI-SAP 8, ISA letní semestr 2010-11

BI-SAP 8: osnova Strojový kód ISA architektura souboru instrukcí střadačově, zásobníkově orientovaná, GPR zdroje: přednášky doc. Lórencze o Architektuře počítačů Hana Kubátová BI-SAP 8, ISA 2

Architektura souboru instrukcí, ISA - Instruction Set Architecture Vysoká Architektura počítače vyplývá z ISA Aplikace Úroveň abstrakce Nízká Operační systém Překladač Architektura souboru instrukcí Architektura procesoru I/O Systém Číslicový návrh VLSI obvodový návrh Hana Kubátová BI-SAP 8, ISA 3

Instrukční soubor = kritický interface software instruction set hardware Hana Kubátová BI-SAP 8, ISA 4

Strojový kód Co musí instrukce obsahovat instrukce = příkaz, zakódovaný jako číslo co se má provést s čím se to má provést (operandy) kam se má uložit výsledek kde se má pokračovat Tyto informace jsou obsaženy v instrukci... tzn. explicitně např. počítač SAPO, tzv. 5 adresový Zčásti v instrukci, zčásti dány architekturou počítače, tzn. implicitně (von Neumannova architektura) Hana Kubátová BI-SAP 8, ISA 5

Příklady strojových instrukcí op. znak operand1 operand2 výsledek 3 adresová instrukce op. znak operand1 operand2 2 adresová instrukce výsledek se ukládá na místo prvního operandu, zavedení operace přesun {x} z {x} {y} z = {z} {y} z op. znak operand 1 adresová instrukce zavedení pracovního registru STŘADAČ, ACCUMULATOR {x} S {x} {y} z = {S} {y} S Hana Kubátová BI-SAP 8, ISA {S} z 6

instrukce: operační znak, OZ, opcode operand(y) více střadačů více registrů k obecnému použití Příklad: Motorola 68000 Datové registry D 0, D 1,..., D 7 á 32b Odčítání 32b: D n paměť D n OZ: 9 n 0 B 9 instrukce: OZ <D3> - <18FF20 18FF23> D3 adresa 96B90018FF20 zápis ve strojovém kódu je nepřehledný a špatně se programuje vyšší programovací jazyk VPJ: Pascal, Java, C jazyk symbolických instrukcí JSI... operační znak i adresy (operandy) jsou zapsány symbolicky...asembler Hana Kubátová BI-SAP 8, ISA 7

Příklad kódování instrukce v AVR Symbolický zápis instrukce mov r1, r2 Zdrojový operand Cílový operand Strojový kód instrukce mov, kterou načítá a dekóduje mikropočítač Cílový operand 0 0 1 0 1 1 r d d d d d r r r r Jméno instrukce Příklad Operační znak mov r1, r2 : 0x2C12 Zdrojový operand Hana Kubátová BI-SAP 7, AVR 8

Příklad programu v symbolickém vyjádření a ve strojovém kódu Tuto transformaci provádí program zvaný asembler Adresa v paměti programu Symbolické vyjádření programu ldi r17, 0x55 ldi r18, 0x88 mov r16, r17 mov r17, r18 mov r18, r16 jmp 0 Převod mezi symbolickým vyjádřením a strojovým kódem zajišťuje překladač (asembler) Toto píše programátor 0000: E515 0001: E828 0002: 2F01 0003: 2F12 0004: 2F20 0005: 940C 0006: 0000 Obsah paměti programu Toto je mikropočítačem načítáno a dekódováno jako instrukce Poznámka: mlčky předpokládáme, že strojový kód umísťujeme od adresy 0x0000. Hana Kubátová BI-SAP 7, AVR 9

Technologie tvorby programu v asembleru Zdrojový soubor *.asm Překladač (asembler) Binární soubor (případně HEX soubor) *.bin, *.hex Toto se nahrává do paměti programu mikropočítače Hana Kubátová BI-SAP 7, AVR 10

Architektura souboru instrukcí, ISA - Instruction Set Architecture Zahrnuje Typy a formáty instrukcí, instrukční soubor Datové typy, kódovaní a reprezentace, způsob uložení dat v paměti Módy adresování paměti a přístup do paměti dat a instrukcí Mimořádné stavy Umožňuje Abstrakce (výhoda různé implementace stejné architektury) Definice rozhraní mezi nízko-úrovňovým SW a HW Standardizuje instrukce, bitové vzory strojového jazyka Hana Kubátová BI-SAP 8, ISA 11

Instrukční cyklus Čtení instrukce Dekódování instrukce Načtení operandů Provedení instrukce Uložení výsledku přerušení? Hana Kubátová Formát a kódování instrukcí Jak se instrukce dekóduje? Umístění operandů a výsledku Kolik explicitních operandů je v instrukci pro ALU? Jak jsou operandy umístěny v paměti nebo jinde? Který operand může být v paměti? Typy dat a velikosti operandů Operace v ISA Které jsou podporovány? Výběr další instrukce Skoky, větvení programu, volání podprogramů fetch-decode-execute je implicitní! BI-SAP 8, ISA 12

Adresace operandů - přímá... jen operační znak... konstanta = přímý operand paměť pole registrů... přímá adresa (paměti nebo registru) Hana Kubátová BI-SAP 8, ISA 13

Adresace operandů - nepřímá d) Indirect... nepřímá adresa (pomocí paměti nebo registru) Hana Kubátová BI-SAP 8, ISA 14

Adresace operandů - relativní d) relative Hana Kubátová BI-SAP 8, ISA 15

Adresace operandů - indexová inkrement Hana Kubátová BI-SAP 8, ISA 16

ISA: Základní třídy Střadačově (akumulátorově) orientovaná ISA (1 registr=střadač): 1 operand ADD A acc acc + mem[a] ADD (A + IX) acc acc + mem[a + IX] IX je indexovací registr Zásobníkově orientovaná ISA 0 operandů ADD stack(top-1) stack(top) + stack(top-1) top-- ISA orientovaná na registry pro všeobecné použití (GPR = General Purpose Registers): 2 operandy ADD A B EA(A) EA(A) + EA(B) 3 operandy ADD A B C EA(A) EA(B) + EA(C) EA Efektivní adresa (určuje registr, nebo operand v paměti) Hana Kubátová BI-SAP 8, ISA 17

nejstarší ISA (1949-60) vyvinula se z kalkulaček LOAD A acc mem[a] STORE A ADD A SUB A SHIFT LEFT Střadačově orientovaná ISA s absolutní adresací mem[a] acc acc acc + mem[a] acc acc - mem[a] acc 2 x acc SHIFT RIGHT acc acc / 2 JUMP A PC A JGE A if (0 acc) then PC A LOAD ADDR X načtení adresy operandu X do acc STORE ADDR X uložení adresy operandu X z acc Typicky méně než 24 instrukcí! Hardware byl velmi drahý. Hana Kubátová BI-SAP 8, ISA 18

Střadačově orientovaná ISA - dnes Z indexovacích registrů se vyvinuly speciální registry pro nepřímou adresaci, zvláštním typem je stack pointer SP (ukazatel na vrchol zásobníku). Procesory také zahrnují pracovní registry (tzv. zápisníková paměť). Toto pole snižuje četnost přístupů do paměti. Implicitním operandem ALU je vždy střadač (druhý operand může být v registrech nebo v paměti). Použita v prvních mikroprocesorech: 4004, 8008, 8080, 6502, Dnes použita v některých mikrokontrolérech: 8051, 68HC11, 68HC05, ISA X86 představena jako ISA s více střadači => s nástupem i386 upravena na GPR. Hana Kubátová BI-SAP 8, ISA 19

Výhody : Střadačově orientovaná ISA - shrnutí jednoduchý HW minimální vnitřní stav procesoru rychlé přepínání kontextu krátké instrukce (záleží na typu druhého operandu) jednoduché dekódování instrukcí Nevýhody : častá komunikace s pamětí (dnes problém) omezený paralelismus mezi instrukcemi Není náhodou, že tento typ ISA byl populární v 50. a 70. letech - hardware byl drahý, paměť byla rychlejší než CPU. Hana Kubátová BI-SAP 8, ISA 20

Zásobníkově orientovaná ISA Využití zásobníku při vykonávání programu : Vyhodnocení výrazů Vnořená volání podprogramů - předávání návratové adresy a parametrů - lokální proměnné Známým příkladem byl Burrough B5000, 1960 - počítač navržený k podpoře jazyka ALGOL 60. - vyhodnocení výrazů podporoval hardwarový zásobník Hana Kubátová BI-SAP 8, ISA 21

Zásobníkově orientovaná ISA HW zásobník = sada registrů s ukazatelem na vrchol (uvnitř CPU) Instrukce : PUSH A Stack[++Top] mem[a] POP A mem[a] Stack[Top--] ADD,SUB, Stack[Top-1] Stack[Top] OP Stack[Top-1] Top-- B5000 rovněž podporuje indexovací registry. CPU Main Memory ALU HW Stack Top++, Hana Kubátová BI-SAP 8, ISA 22

Výhody : Zásobníkově orientované ISA... většinou vyhynuly před rokem 1980 jednoduchá a efektivní adresace operandů krátké instrukce vysoká hustota kódu (krátké programy) jednoduché dekódování instrukcí neoptimalizující překladač se dá snadno napsat Nevýhody: nelze náhodně přistupovat k lokálním datům zásobník je sekvenční (omezuje paralelismus) přístupy do paměti je těžké minimalizovat Hana Kubátová BI-SAP 8, ISA 23

Zásobníkově orientované ISA po roce 1980 Inmos Transputers (1985 1996) navrženy k podpoře efektivního paralelního programování pomocí paralelního programovacího jazyka Occam Inmos T800 byl v druhé polovině 80. let nejrychlejší 32-bitový CPU zásobníkově orientovaná ISA zjednodušila implementaci podpora pro rychlé přepínání kontextu Forth machines Forth je zásobníkově orientovaný jazyk používá se v řídicích a kybernetických aplikacích několik výrobců (Rockwell, Patriot Scientific) Intel x87 FPU nepříliš dobře navržený zásobník pro vyhodnocování FP výrazů překonán architekturou SSE2 FP v Pentiu 4 Java Virtual Machine,.NET navržen pro SW emulaci (podobně jako PostScript) Sun PicoJava a další HW implementace Hana Kubátová BI-SAP 8, ISA 24

Vývoj ISA Historický pohled jeden střadač (EDSAC, 1950) střadač + indexovací registry (Manchester Mark I, IBM 700 series, 1953) oddělení programovacího modelu od implementace orientace na vyšší jazyky koncept rodiny (B5000, 1963) (IBM 360, 1964) koncept registrů pro všeobecné použití (GPR) CISC (Vax, Intel 432, 1977-80) Load/Store architektura (CDC 6600, Cray 1, 1963-76) RISC (Mips, Sparc, HP-PA, IBM RS6000,...1987) Hana Kubátová BI-SAP 8, ISA 25

GPR ISA dnes převládá Po roce 1975 používají všechny nové procesory nějakou podobu GPR (registry pro všeobecné použití.. general purpose registers) Výhody GPR ISA Registry - jsou rychlejší než paměť (včetně cache!!) K registrům lze přistupovat náhodně (versus.. zásobník je přísně sekvenční) Registry mohou obsahovat mezivýsledky a lokální proměnné Méně častý přístup do paměti potenciální urychlování Hana Kubátová BI-SAP 8, ISA 26

GPR ISA Nevýhody GPR ISA omezený počet registrů složitější překladač (optimalizace použití registrů) přepnutí kontextu trvá déle registry nemohou obsahovat složitější datové struktury (records ) k objektům v registrech nelze přistupovat přes ukazatele (omezuje alokaci registrů) Hana Kubátová BI-SAP 8, ISA 27

Jednoduchý procesor von Neumannova typu CPU CU Paměť DB AB D7:D0 A7:A0 ALU Registry CB Sběrnice CPU musí obsahovat ALU, CU a registry pro dočasné uchování dat, instrukcí a pomocných proměnných CPU pro běh programu prochází základním cyklem počítače: 1. Instruction Fetch IF načtení instrukce 2. Instruction Decode ID dekódování instrukce 3. Operand Fetch OF načtení operandu(ů) 4. Instruction Execution IE vykonání instrukce 5. Write Back WB zapsání výsledku (také Result Store) IF ID OF IE WB Interrupt? Hana Kubátová BI-SAP 8, ISA 28

Jednoduchý procesor... PC AB Řízení IR IF ID M paměť ALU ACC DB PC Program Counter, prog. čítač, obsahuje adresu instrukce, která bude vykonána v dalším cyklu ACC Accumulator, střadač, obsahuje zpracovávaná data ALU Arithmetic Logic Unit, aritmeticko-logická jednotka, vykonává operace s daty IR Instruction Register, instrukční registr, obsahuje kód aktuálně prováděné Hana instrukce Kubátová pro programátora BI-SAP je skrytý 8, ISA 29 M OF IE WB Interrupt?

Jednoduchý procesor...čtení instrukce IF PC AB Řízení IR ID OF ALU ACC M IE WB DB Interrupt? Procesor pošle adresu instrukce z PC na AB M vystaví obsah paměťového místa instrukce z adresy v PC na DB IR kód instrukce z DB je zapsán do IR Hana Kubátová BI-SAP 8, ISA 30

Jednoduchý procesor...dekódování instrukce PC AB Řízení IR IF ID OF ALU ACC M IE WB k DB Interrupt? IR instrukční kód z IR je dekódován interní logikou (řadičem) a současně jsou generovány řídící signály pro ALU a další interní obvody procesoru. PC programový čítač vystaví hodnotu na AB, ALU zvětší tuto hodnotu o k a zapíše nazpět do PC (když pc je původní obsah PC, pc pc+k), hodnota k je určena dekódováním instrukce, sekvenční zpracování k=1, skok k nějaké celé číslo s omezeného intervalu. Hana Kubátová BI-SAP 8, ISA 31

Jednoduchý procesor... čtení operandů IF PC AB Řízení IR ID OF ALU ACC M IE WB DB Interrupt? IR zapsání adresy operandu, který má být při vykonávání instrukce použit, na AB M paměť vystaví hodnotu operandu na DB, takto je operand připraven pro zpracování buď v ALU nebo v ACC Hana Kubátová BI-SAP 8, ISA 32

Jednoduchý procesor... vykonání instrukce IF PC AB Řízení IR ID OF ALU ACC M IE WB DB Interrupt? IR vystavuje na AB adresu hodnoty operandu, který má být při vykonání instrukce použit ALU operace je vykonána v ALU podle instrukce, jejíž kód je v IR a generuje pomocí interní logiky řídící signály M paměť může mít nadále vystavenou hodnotu operandu na DB ACC slouží jako cílový registr, může být ale také zdrojovým Hana Kubátová BI-SAP 8, ISA 33

Jednoduchý procesor... zápis výsledku ne vždy se provádí PC ALU AB Řízení ACC IR M IF ID OF IE WB Interrupt? IR vystaví hodnotu adresy paměti, kam má být hodnota obsažená v ACC zapsána ACC vystaví hodnotu obsaženou v něm na DB M hodnota z DB je zapsána do paměti Táto fáze základního cyklu může být, nebo nemusí být vykonána. V některých Hana Kubátová BI-SAP 8, ISA 34 procesorech je táto fáze zákl. cyklu vykonávaná jako separátní instrukce. DB

Návrh instrukcí procesoru jaké jak kódované jak dlouhé jaká adresace operandů kolik registrů Hana Kubátová BI-SAP 8, ISA 35

Přesuny dat MOV kam, co kam... registr co... registr (obsah registru) v AVR pouze registr LDI registr, konstanta pro práci s pamětí ST paměť, registr LD registr, paměť PUSH, POP ukládání/výběr ze zásobníku Hana Kubátová BI-SAP 8, ISA 36

Deklarace proměnných pseudoinstrukce vyhrazení místa v paměti (pro výsledek) zadání vstupních dat data: SHORT - jednobytový operand se znaménkem BYTE - jednobytový operand bez znaménka WORD - dvoubytový operand deklarace... DS, DB, DW Hana Kubátová BI-SAP 8, ISA 37

Aritmetické binární ADD ADC SUB SBB CMP, CP porovnání: CMP unární NOT INC DEC jako SUB, ale neuloží výsledek, jen příznaky Hana Kubátová BI-SAP 8, ISA 38

Logické binární AND OR XOR unární NEG Hana Kubátová BI-SAP 8, ISA 39

LABORATOŘ - Mikropočítač AVR Produkt firmy Atmel, které mají na jednom čipu integrován procesor paměť programu paměť dat rozsáhlou sadu periferíí (vstupně-výstupní brány, čítače, časovače, převodníky, komunikační rozhraní apod.) Hana Kubátová BI-SAP 8, ISA 40

AVR Butterfly LCD displej - 6 alfanumerických znaků (po 14 segmentech) Joystick - 5 směrů (nahoru, dolů, doleva, doprava, kolmý stisk (enter)) Čidlo teploty Čidlo osvětlení Krystalový oscilátor 32,768 khz (pro měření času) Elektroakustický měnič (piezo) Napájení z baterie Hana Kubátová BI-SAP 8, ISA 41

Architektura ATMEGA169 Hana Kubátová BI-SAP 8, ISA 42

ATMEGA169 Univerzální registry - 32 osmibitových registrů (R0 až R31) Posledních šest z nich tvoří po dvojicích tři indexregistry (Slouží k adresování přístupu do paměti) Speciální registry Programový čítač - 16bitový (Program Counter - PC) Ukazatel na vrchol zásobníku - 16bitový (Stack Pointer - SP) Registr příznaků - 8bitový (Status Register - SREG) Paměť dat: 1 KB, organizace 1K x 8 bitů, čtení i zápis Paměť programu: 16KB, organizace 8K x 16 bitů, pouze čtení (zápis speciálním způsobem) Periferie např. řadič displeje (LCD) Vnitřní zdroj hodinového kmitočtu Hana Kubátová BI-SAP 8, ISA 43

Paměť programu Data (8 bitů, zápis) Adresa Paměť programu (16kB) Zapiš Čti Instrukce (16 bitů, čtení) Data (8 bitů, čtení) Hana Kubátová BI-SAP 7, AVR 44

Paměť dat Adresa Paměť dat (1kB) Data (8 bitů, zápis) Zapiš Čti Data (8 bitů, čtení) Hana Kubátová BI-SAP 7, AVR 45

Registry Hana Kubátová BI-SAP 8, ISA 46

Stavový registr SREG ( flagy ) C Z N V S H T I - - - - - - - - C: Carry flag Z: Zero flag N: Negative flag V: Two s complement overflow indicator S: N V for signed tests H: Half carry flag T: Transfer bit used by BLD and BST instructions I: Global Interrupt Enable/Disable flag Hana Kubátová BI-SAP 7, AVR 47

Skoky Nepodmíněný skok JMP Podmíněné skoky BRxx (BR namísto J) změna běhu programu bez zapamatování místa odkud se skákalo Na rozdíl od podprogramu, kdy je třeba si zapamatovat, kam se vrátit. Hana Kubátová BI-SAP 8, ISA 48

BRBC: branch if bit in SREG is cleared Syntax: BRBC S,k Operands: 0 s 7, -64 k +63 Operation: If SREG(s) = 0 then PC PC + k + 1 else PC PC + 1 Program counter: PC PC + k + 1 PC PC + 1 if condition is false Podobně BRBS Hana Kubátová BI-SAP 8, ISA 49

Další podmíněné skoky BRCS BRCC... S set, C clear Syntax: BRCS k BREQ... Z=1, BRNE... Z=0, BRGE... N xor V = 0... Procesor umí nastavit či vynulovat příznaky v SREG Hana Kubátová BI-SAP 8, ISA 50

Relace Doplňkový kód Nezáporná čísla < JL JB JLE JBE = JE JE JNE JNE JGE JAE > JG JA E Equal L Less G Greater B Below A Above Podmínka skoku: příslušné příznaky. Např.: JB CF=1 JB=JC JBE CF ZF JE SF OF = 1 JGE SF OF = 0 atd. Hana Kubátová BI-SAP 8, ISA 51

Posuvy SHL, SHR, ASR aritmetický posun vpravo, RRC, RLC Hana Kubátová BI-SAP 8, ISA 52

Posuvy LSL, LSR posuvy logické (SHIFT) ROL, ROR rotace přes Carry ASR aritmetický posuv vpravo (? Vlevo?)... A řada dalších instrukcí, viz web SAP Hana Kubátová BI-SAP 7, AVR 53

Podprogramy Volání... CALL k k je adresa Program counter: PC k Stack: STACK PC + 2 SP SP 2, (2 bytes, 16 bits) post-dekrementace Návrat z podprogramu... RET Při volání se ukládá návratová adresa na zásobník, Při návratu se obnovuje původní obsah PC ze zás. pre-inkrementace Stack: Hana Kubátová BI-SAP 7, AVR SP SP + 2, (2 bytes, 16 bits) 54

Zásobník - stack Operace: PUSH Rr... uložení registru na zásobník Rr STACK Program counter: Stack: PC PC + 1 SP SP 1 POP Rd... nahrání registru ze zásobníku Rd STACK Program counter: PC PC + 1 Hana Kubátová BI-SAP 7, AVR Stack: SP SP + 1 55

Zásobník... Zásobník roste směrem k nižším adresám Obsah SP registru ukazuje na vrchol zásobníku na první prázdnou položku, na kterou se bude zapisovat např. instrukcí PUSH Je simulován v hlavní paměti Hana Kubátová BI-SAP 7, AVR 56

... zásobník 000 8 bitů data data 3FF Hana Kubátová BI-SAP 7, AVR 57