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



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

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

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

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

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

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

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

Pohled do nitra mikroprocesoru Josef Horálek

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

Procesor z pohledu programátora

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

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

a operačních systémů

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

Princip funkce počítače

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

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

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

RISC a CISC architektura

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

Architektury počítačů a procesorů

Architektura počítače

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

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

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

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

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

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

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

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

PROCESOR. Typy procesorů

Adresní mody procesoru

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

Architektura počítačů Logické obvody

Architektura procesoru ARM

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

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

Architektura počítačů Implementace procesoru

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

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

Architektura počítačů Logické obvody

Architektura procesorů PC shrnutí pojmů

OPS Paralelní systémy, seznam pojmů, klasifikace

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


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

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

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

Y36SAP

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

Opakování programování

Úvod. Instrukce musí obsahovat: typ operace adresu operandu (operandů) typ operandů modifikátory adresy modifikátory operace POT POT

CISC A RISC PROCESORY Jak pracují procesory CISC:

Jan Nekvapil ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE Fakulta elektrotechnická

Program a životní cyklus programu

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

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

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

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

Struktura a architektura počítačů

Principy počítačů I - Procesory

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

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

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

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

Paralelní programování

Roman Výtisk, VYT027

Popis instrukční sady procesoru ADOP

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

Architektura počítačů

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

Algoritmizace a programování

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

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

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

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

Přerušovací systém s prioritním řetězem

PROGRAMOVÁNÍ MIKROPOČÍTAČŮ CVIČENÍ 10

Procesy a vlákna (Processes and Threads)

x86 assembler and inline assembler in GCC

Proudové zpracování instrukcí I. Celočíselná pipeline RISC

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

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

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

ISU Cvičení 7. Marta Čudová

Operační systémy. Přednáška 8: Správa paměti II

Struktura programu v době běhu

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

Linux a 64 bitů. SUSE Labs. Michal Ludvig Vojtěch Pavlík

SÁLOVÉ POČÍTAČE. Principy počítačů. Literatura. Harvard Mark I Grace Murray Hopper ENIAC

Architektura Intel Atom

V 70. letech výzkumy četnosti výskytu instrukcí ukázaly, že programátoři a

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

BI-JPO (Jednotky počítače) Cvičení

PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných

Operační systémy. Přednáška 1: Úvod

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

Pohled do nitra mikroprocesoru

Architektura Pentia úvod

Transkript:

4-4. Přednáška 4. Přednáška ISA J. Buček, R. Lórencz 24-27 J. Buček, R. Lórencz

4-2 4. Přednáška Obsah přednášky Násobení a dělení v počítači Základní cyklus počítače Charakteristika třech základní typů ISA (střadačová, zásobníková a s univerzálními registry) Střadačově orientovaná ISA s absolutní a indexovou adresací Charakteristika dnešních střadačově orientovaných ISA (mikrořadiče atd.) Charakteristika zásobníkově orientované ISA (příklady, T8, JVM,.NET atd.) 24-27 J. Buček, R. Lórencz

24-27 J. Buček, R. Lórencz 4-3 4. Přednáška Násobení v počítači () C= B= A= C= C= + + + + C= B= A= Sečíst 4 čísla najednou? Neumíme! C = A B = 4 =? Sečteme postupně, posouváme Shift add

4-4 4. Přednáška Násobení v počítači (2) nezáporná celá čísla, dvojková soustava Máme spočítat C = A*B. Mějme registry A, B, C, C. Vynuluj C (C = ) 2. Posuň B doprava 3. Vypadla? ANO C = C + A NE nic 4. Posuň C doprava, přitom zasuň přenos ze sčítání 5. Posuň C doprava, přitom zasuň, co vypadlo z C 6. Všechny bity B zpracovány? NE jdi na 2. ANO výsledek je C = (C, C). Konec. Kolik bitů pro A, B, C? Proč máme C, C? Proč nemusíme nulovat C? 24-27 J. Buček, R. Lórencz

24-27 J. Buček, R. Lórencz 4-5 4. Přednáška Dělení v počítači () - - = : Kde začneme odčítat? A:B = 27 : 5 =?, zbytek? - - - - - = : R-B= R= R= R-B= R= R= R= B= A

4-6 4. Přednáška Dělení v počítači (2) nezáporná celá čísla, dvojková soustava Máme spočítat A : B = Q, zb. R. Mějme registry A, B, Q, R. Vynuluj R (R = ) 2. Posuň A doleva 3. Posuň R doleva, přitom zasuň, co vypadlo z A 4. Porovnej: R >= B? ANO R = R B, bit podílu = NE bit podílu = 5. Posuň Q doleva, přitom zasuň bit podílu z 4. 6. Všechny bity A zpracovány? NE jdi na 2. ANO podíl je Q, zbytek je R. Konec. Kolik bitů pro A, B, Q, R? Proč nemusíme nulovat Q? Jaký je rozdíl mezi porovnáním a odečtením? Více viz X36JPO (příští sem.), X36ARI (mag.) 24-27 J. Buček, R. Lórencz

4-7 4. Přednáška Architektura souboru instrukcí - ISA opakování () Vysoká Architektura počítače 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 24-27 J. Buček, R. Lórencz

4-8 4. Přednáška Architektura souboru instrukcí - ISA opakování (2) Zahrnuje Typy a formáty instrukcí, instrukční set 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 instrukci 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 Vlivy na vývoj architektur souboru instrukcí (ISA) Technologie výroby procesoru Operační systém Aplikace Programovací jazyky 24-27 J. Buček, R. Lórencz

4-9 4. Přednáška Instruction Fetch Instruction Decode Operand Fetch Execute Result Store Synchron Interrupt? ISA: Co musí být definováno? (3) Kódování instrukcí Jak se instrukce dekóduje? Umístění operandů Kolik explicitních operandů je v instrukci pro ALU? Jak jsou operandy umístěny v paměti? Který operand může být v paměti? Typy dat a velikosti operandů Operace v ISA Které jsou podporovány? Umístění výsledku Výběr další instrukce Skoky, volání podprogramů, návraty 24-27 J. Buček, R. Lórencz

4-4. Přednáška ISA: Základní třídy (4) Akumulátorově orientovaná ISA ( registr): operand ADD A acc acc + mem[a] ADD (A + IX) acc acc + mem[a + IX] IX je indexovací registr Zásobníkově orientovaná ISA operandů ADD stack(top ) stack(top) + stack(top ) top ISA orientovaná na univerzální registry (reg. 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) 24-27 J. Buček, R. Lórencz

4-4. Přednáška Akumulátorově orientovaná ISA s absolutní adresací - nejstarší ISA (949-6) vyvinula se z kalkulaček LOAD A acc mem[a] STORE A mem[a] acc ADD A acc acc + mem[a] SUB A acc acc mem[a] SHIFT LEFT acc 2 x acc SHIFT RIGHT acc acc / 2 JUMP A PC A JGE A if ( 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ý. 24-27 J. Buček, R. Lórencz

4-2 4. Přednáška Akumulátorově orientovaná ISA s absolutní adresací Práce s polem: sebemodifikující program C I A I + B I - N I < LOOP: LOAD I JGE DONE ADD ONE STORE I F: LOAD A F2: ADD B F3: STORE C LOAD ADDR F ADD ONE STORE ADDR F LOAD ADDR F2 ADD ONE STORE ADDR F2 LOAD ADDR F3 ADD ONE STORE ADDR F3 JUMP LOOP DONE: HLT Potřebuje společnou paměť pro program a data von Neuman. Všechny proměnné uloženy v paměti. Konstanta je také v paměti. Jedna iterace : 7 instrukcí (4 režie cyklu) načtení operandů (8 režie) 5 uložení (4 režie) Veliká režie cyklu (zejm. modifikace adres)! 24-27 J. Buček, R. Lórencz

4-3 4. Přednáška Akumulátorově orientovaná ISA s indexovacími registry Indexovací registr jeden nebo více registrů pro zjednodušení adresace paměti Úprava předchozích instrukcí : LOAD A, IX acc mem[a + IX] ADD A, IX acc acc + mem[a + IX] atd. Nové instrukce pro manipulaci s indexovacími registry JZi A,IX if (IX = ) then PC A else PC PC +, IX IX + LOADi A,IX IX mem[a] 24-27 J. Buček, R. Lórencz

4-4 4. Přednáška LOADi N, IX LOOP: JZi DONE, IX LOAD LASTA, IX ADD LASTB, IX STORE LASTC, IX JUMP LOOP DONE: HLT Cykly s indexovacími registry CI AI + BI - N I < LASTA LASTA - N A pole v paměti, podobně B, C Růst adres (Konstanta N je uložena v paměti na adrese N ; IX obsahuje proměnnou I) Program nemění sám sebe. Větší efektivita je zřejmá. Cenou jsou delší instrukce (-2 bity k určení indexregistru). 24-27 J. Buček, R. Lórencz

4-5 4. Přednáška Akumulátorově orientovaná ISA - dnes Z indexovacích registrů se vyvinuly speciální registry pro nepřímou adresaci, zvláštním typem je stack pointer (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 akumulátor (druhý operand může být v registrech nebo v paměti). Použita v prvních mikroprocesorech: 44, 88, 88, 652, Dnes použita v některých mikrokontrolérech: 85, 68HC, 68HC5, DOP ISA X86 představena jako ISA s více akumulátory => s nástupem i386 upravena na GPR. 24-27 J. Buček, R. Lórencz

4-6 4. Přednáška Akumulátorově orientovaná ISA - shrnutí Výhody: 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 5. a 7. letech - hardware byl drahý, paměť byla rychlejší než CPU. 24-27 J. Buček, R. Lórencz

4-7 4. Přednáška 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 Burroughs B5, 96 - počítač navržený k podpoře jazyka ALGOL 6. - vyhodnocení výrazů podporoval hardwarový zásobník 24-27 J. Buček, R. Lórencz

4-8 4. Přednáška Zásobníkově orientovaná ISA (2) HW zásobník = sada registrů s ukazatelem na vrchol (uvnitř CPU) Instrukce : PUSH A POP A ADD,SUB, Stack[++Top] mem[a] mem[a] Stack[Top--] Stack[Top-] Stack[Top] OP Stack[Top-] Top-- B5 rovněž podporuje indexovací registry. CPU TOP TOP- TOP-2 Main Memory ALU HW Stack Top-- 24-27 J. Buček, R. Lórencz

4-9 4. Přednáška Zásobníkově orientovaná ISA (3) HW zásobník je součástí CPU malý (N registrů) ALE Teoreticky je zásobník nekonečný N položek nejvýše na zásobníku je v CPU (HW zásobník) Zbytek se emuluje v hlavní paměti. Přenos mezi HW zásobníkem a pamětí řeší automaticky HW (Stack Spilling přelévání zásobníku) Přenos se provádí při přetečení nebo podtečení HW zásobníku. 24-27 J. Buček, R. Lórencz

4-2 4. Přednáška Zásobníkově orientovaná ISA příklad (4) Mějme 2-registrový HW zásobník Příklad : (a + b * c) / ((a + d * c) - e) Program v postfixovém zápisu: a b c * + a d c * + e - / Program Zásobník Přístupy do paměti PUSH a R a PUSH b R R b PUSH c R2 R R c, ss MUL R R sf ADD R PUSH a R R a PUSH d R2 R R d, ss PUSH c R3 R2 R R c, ss MUL R2 R R sf ADD R R sf PUSH e R2 R R e, ss SUB R R sf DIV R Celkem: 7 načtení operandu + 4 přelévání zásobníku (ss) + 4 čtení ze zásobníku (sf) Proměnné a a c se vždy čtou dvakrát (nezávisle na velikosti HW zásobníku)! 24-27 J. Buček, R. Lórencz

4-2 4. Přednáška Stejný příklad pro GPR (Load/Store) ISA 4 registry by měly stačit Výraz: (a + b * c) / ((a + d * c) - e) LOAD R, a LOAD R, c LOAD R2, b MUL R2, R ADD R2, R LOAD R3, d MUL R3, R ADD R3, R LOAD R, e SUB R3, R DIV R2, R3 a c b d e Potřeba pouze 5 čtení operandů (porovnejte se 7) Kódování instrukcí je delší Kompilátor je složitější Alokace registrů eliminuje zásobník pro vyhodnocení výrazu (je potřeba analýza využití proměnných, záleží na pořadí instrukcí) HW zásobník není potřeba Alokace registrů je NP-těžký problém 24-27 J. Buček, R. Lórencz

4-22 4. Přednáška Zásobníkově orientované ISA (5) Závěr většinou vyhynuly před rokem 98 Výhody: 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 24-27 J. Buček, R. Lórencz

4-23 4. Přednáška Inmos Transputers (985 996) navrženy k podpoře efektivního paralelního programování pomocí paralelního programovacího jazyka Occam Inmos T8 byl v druhé polovině 8. 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 Zásobníkově orientované ISA (6) Po roce 98 navržen pro SW emulaci (podobně jako PostScript) Sun PicoJava a další HW implementace 24-27 J. Buček, R. Lórencz

4-24 4. Přednáška Vývoj ISA Historický pohled Jeden akumulátor (EDSAC 95) Akumulátor + indexovací registry (Manchester Mark I, IBM 7 series 953) Oddělení programovacího modelu od implementace Orientace na vyšší jazyky Koncept rodiny (B5 963) (IBM 36 964) Koncept registrů pro všeobecné použití (GPR) CISC Load/Store architektura (Vax, Intel 432 977-8) (CDC 66, Cray 963-76) RISC (Mips, Sparc, HP-PA, IBM RS6,...987) 24-27 J. Buček, R. Lórencz