Informatika 1 2. el adás: Absztrakt számítógépek

Hasonló dokumentumok
SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

Bevezetés az informatikába

Számítógépek felépítése, alapfogalmak

Hardverközeli programozás 1 1. gyakorlat. Kocsis Gergely

Turing-gép május 31. Turing-gép 1. 1

Számítógépek felépítése, alapfogalmak

Egyszerű RISC CPU tervezése

Adatok ábrázolása, adattípusok

1. Az utasítás beolvasása a processzorba

A számítógép alapfelépítése

Digitális rendszerek. Utasításarchitektúra szintje

A számítógépes nyelvészet elmélete és gyakorlata. Automaták

Deníciók és tételek a beugró vizsgára

Algoritmuselmélet 12. előadás

A Formális nyelvek vizsga teljesítése. a) Normál A vizsgán 60 pont szerezhet, amely két 30 pontos részb l áll össze az alábbi módon:

A Számítógépek hardver elemei

Bonyolultságelmélet. Monday 26 th September, 2016, 18:50

Számításelmélet. Második előadás

A Számítógépek hardver elemei

Informatika érettségi vizsga

Turing-gépek. Számításelmélet (7. gyakorlat) Turing-gépek 2009/10 II. félév 1 / 1

Assembly Utasítások, programok. Iványi Péter

A digitális számítás elmélete

Bonyolultságelmélet. Thursday 1 st December, 2016, 22:21

A 32 bites x86-os architektúra regiszterei

DIGITÁLIS TECHNIKA I BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

2. Fejezet : Számrendszerek

sallang avagy Fordítótervezés dióhéjban Sallai Gyula

Formális módszerek GM_IN003_1 Program verifikálás, formalizmusok

Bevezetés a számítástechnikába

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

NP-teljesség röviden

Adatelérés és memóriakezelés

Mechatronika és mikroszámítógépek

Kiterjesztések sek szemantikája

Bevezetés az informatikába

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

Kriptográfia 0. A biztonság alapja. Számítás-komplexitási kérdések

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Kifejezések. Kozsik Tamás. December 11, 2016

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

definiálunk. Legyen egy konfiguráció, ahol és. A következő három esetet különböztetjük meg. 1. Ha, akkor 2. Ha, akkor, ahol, ha, és egyébként.

Algoritmusok helyességének bizonyítása. A Floyd-módszer

Programok értelmezése

Bevezetés az informatikába

Dr. Oniga István DIGITÁLIS TECHNIKA 8

Aritmetikai utasítások I.

Automaták mint elfogadók (akceptorok)

Az integrált áramkörök kimenetének kialakítása

Számítógépek felépítése

A SZÁMÍTÓGÉP KIALAKULÁSA. Zámori Zoltán, KFKI

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

Mechatronika és mikroszámítógépek

A MiniRISC processzor

Számítógépes alapismeretek

Programozási nyelvek 6. előadás

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

Aritmetikai és logikai műveletek. Adattömb kezelése.

A Számítógépek felépítése, mőködési módjai

Számítógép architektúra

Kifejezések. Kozsik Tamás. December 11, 2016

Teljes visszalépéses elemzés

Házi feladatok megoldása. Nyelvek használata adatszerkezetek, képek leírására

Máté: Számítógép architektúrák

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Számítógép architektúrák I. Várady Géza

Algoritmuselmélet. Bonyolultságelmélet. Katona Gyula Y.

Újrakonfigurálható eszközök

Súlyozott automaták alkalmazása

Segédanyagok. Formális nyelvek a gyakorlatban. Szintaktikai helyesség. Fordítóprogramok. Formális nyelvek, 1. gyakorlat

Assembly utasítások listája

Adatszerkezetek Adatszerkezet fogalma. Az értékhalmaz struktúrája

Operandus típusok Bevezetés: Az utasítás-feldolgozás menete

2018, Funkcionális programozás

Bevezetés a programozásba I.

Digitális technika VIMIAA02 9. hét

Assembly Címzési módok. Iványi Péter

DSP architektúrák dspic30f család memória kezelése

2018, Diszkrét matematika

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Adatszerkezetek és algoritmusok

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

7.hét: A sorrendi hálózatok elemei II.

Dr. Schuster György február / 32

Fordítás Kódoptimalizálás

A C programozási nyelv I. Bevezetés

Számrendszerek. Bináris, hexadecimális

A C programozási nyelv I. Bevezetés

Digitális technika HF2 Elkészítési segédlet Gépi szintű programozás

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Járműfedélzeti rendszerek I. 3. előadás Dr. Bécsi Tamás

Digitális technika II., 2009/2010 tavasz 1. vizsga A csoport

Véges automaták, reguláris nyelvek

Digitális technika VIMIAA02 9. hét Fehér Béla BME MIT

Bevitel-Kivitel. Eddig a számítógép agyáról volt szó. Szükség van eszközökre. Processzusok, memória, stb

Átírás:

Informatika 1 2. el adás: Budapesti M szaki és Gazdaságtudományi Egyetem 2015-09-08

1 2 3

A egy M = Q, Γ, b, Σ, δ, q 0, F hetes, ahol Q az 'állapotok' nem üres halmaza, Γ a 'szalag ábécé' véges, nem üres halmaza, b Γ az 'üres szimbólum' (az egyetlen jel, amib l végtelen sok lehet a szalagon), Σ Γ \ {b} a 'bemeneti jelek' halmaza, q 0 Q a 'kezd állapot' F Q a 'végállapotok' halmaza (ekkor a gép leáll). δ : (Q \ F ) Γ Q Γ {L, R} az 'átviteli függvény' (ha nincs értelmezve, a gép leáll), ahol R a szalag jobbra, L balra mozgatást jelenti, H ChurchTuring-tézis: minden formalizálható probléma, ami megoldható algoritmussal, az megoldható pel is.

Dolgos hód (Radó Tibor, 1962, busy beaver) az a, amely adott típusú ek közül a legtöbb nem üres jelet írja egy üres szalagra, és véges lépésben leáll. Q = {A, B, C, HALT} Γ = {0, 1} b = 0 (az üres jel) Σ = {1} q 0 = A (kezd állapot) F = {HALT} δ táblázata: A B C 0 1RB 1LA 1LB 1 1LC 1RB 1RH 1 A 0 0 0 0 0 0 0 0 0 0 0 0 2 B 0 0 0 0 0 0 1 0 0 0 0 0 3 A 0 0 0 0 1 1 0 0 0 0 0 0 4 C 0 0 0 1 1 0 0 0 0 0 0 0 5 B 0 0 1 1 1 0 0 0 0 0 0 0 6 A 0 1 1 1 1 0 0 0 0 0 0 0 7 B 0 0 1 1 1 1 1 0 0 0 0 0 8 B 0 0 0 1 1 1 1 1 0 0 0 0 9 B 0 0 0 0 1 1 1 1 1 0 0 0 10 B 0 0 0 0 0 1 1 1 1 1 0 0 11 B 0 0 0 0 0 0 1 1 1 1 1 0 12 A 0 0 0 0 1 1 1 1 1 1 0 0 13 C 0 0 0 1 1 1 1 1 1 0 0 0 14 H 0 0 0 1 1 1 1 1 1 0 0 0

Knuth: A programozás m vészete c. könyve számára kigondolt hibrid (bináris/decimális) gép (assembler nyelve a MIXAL) Egy bájt binárisan 6 bit (063), decimálisan 2 számjegy (099). Egy szó 5 bájt és egy el jel. Regiszterek: A (akkumulátor) és X (extension) (5 bájt + el jel), 6 indexregiszter (2 bájt + el jel), J (jump, 2 bájt) Egy példaprogram: TERM EQU 19 console device no. (19=typewriter) ORIG 1000 start address START OUT MSG(TERM) output data at address MSG HLT MSG ALF "HELLO" ALF Egy tutorial. " WORL" ALF "D " halt execution END START end of program

A RAM-gép egy természetes számokkal indexelt p programtárból és egy természetes számokkal indexelt r adattárból áll, mely induláskor csak 0-kat tartalmaz. A program végrehajtása a p 0 cellájába írt utasítással indul és egy üres utasítással zárul. Az adattár i-edik cellájának (i N 0 ) tartalmát r[i] vagy r i jelöli, ami csak egész szám lehet. Megengedett utasítások, ahol z Z, i, n N 0 : r i z r i r n, r i r rn (azaz r i r[r[n]]), r i r i ± r n, (r i r i r n, r i r i /r n ), p n : ugrás az n-edik programsorra, if r i = 0 p n : ugrás az n-edik programsorra, ha r i = 0, if r i > 0 p n : ugrás az n-edik programsorra, ha r i > 0,

A RAM-gép el adáson bemutatott számítógépszer változata: A programtár és a memória véges, minden memóriacella 1-bytos, minden utasítás 2-bytos, az els byte az utasítást, a második az operandust tartalmazza, pl. ADD 12 jelentése: r 0 r 0 + r 12 számítás és összehasonlítás csak a 0-dik memóriacella (és esetleg egy másik) tartalmával végezhet, az utasításokat mnemonikokkal jelöljük, ezek három változata: közvetlen: az n operandus egy szám, a m veletet azzal végezzük (jelölése az utasítás végére tett =) direkt: az n operandust memóriacímnek tekintjük és a m veletet az r[n] (azaz az r n ) tartalmával végezzük, indirekt: az n operandust egy memóriacím címének tekintjük, a m veletet az r[r[n]] (azaz az r rn ) számmal végezzük (jelölése az utasítás végére tett *)

JUMP n ugrás az n-edik utasításra Vezérl utasítások JZERO n ugrás az n-edik utasításra, ha r 0 = 0 JGTZ n ugrás az n-edik utasításra, ha r 0 > 0 HALT leállás Aritmetikai utasítások direkt indirekt közvetlen op ADD n r 0 r 0 + r n ADD* n r 0 r 0 + r rn ADD= n r 0 r 0 + n SUB n r 0 r 0 r n SUB* n r 0 r 0 r rn SUB= n r 0 r 0 n MULT n r 0 r 0 r n MULT* n r 0 r 0 r rn MULT= n r 0 r 0 n DIV n r 0 r 0 /r n DIV* n r 0 r 0 /r rn DIV= n r 0 r 0 /n Adatmozgatás, IO direkt indirekt közvetlen op LOAD n r 0 r n LOAD* n r 0 r rn LOAD= n r 0 n STORE n r n r 0 STORE* n r rn r 0 READ n az input eszközr l r 1, r 2,..., r n -be olvas n számot WRITE n az output eszközre írja r 1, r 2,..., r n tartalmát

Írjunk programot (a, b) kiszámítására, ahol a, b N 0! p utasítás operandus megjegyzés 0 READ 2 beolvas két számot (r[1] <- a és r[2] <- b) 1 LOAD 2 r[0] <- r[2] azaz r[0] <- b 2 JZERO 16 ha b = 0, ugorj 16-ra, a lnko(a,b) = a 3 LOAD 1 r[0] <- r[1] 4 DIV 2 r[0] <- a/b 5 STORE 3 r[3] <- a/b 6 MULT 2 7 STORE 4 r[4] <- b* a/b 8 LOAD 1 9 SUB 4 r[0] <- a - b* a/b = a mod b 10 STORE 5 11 LOAD 2 12 STORE 1 r[1] <- b 13 LOAD 5 14 STORE 2 r[2] <- a mod b 15 JUMP 2 16 WRITE 1 írd ki r[1] tartalmát, ami = lnko(a,b) 17 HALT

Kérdések 1 Hogy m ködik a? 2 Melyik re írt programokat nevezzük dolgos hódnak? 3 A RAM-gép Neumann-elv? 4 Mi a különbség a direkt és az indirekt gépi utasítás között? 5 Mi a memória tartalma az alábbi program végrehajtása után? 1 LOAD= 5 2 STORE 1 3 STORE* 1 4 JZERO 7 5 LOAD= 2 6 MUL 1 7 HALT