RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

Podobni dokumenti
Turingov stroj in programiranje Barbara Strniša Opis in definicija Definirajmo nekaj oznak: Σ abeceda... končna neprazna množica simbolo

Slide 1

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

Microsoft Word - vaje2_ora.doc

Delavnica Načrtovanje digitalnih vezij

Vrste

Microsoft Word - UP_Lekcija04_2014.docx

4.Racionalna števila Ulomek je zapis oblike. Sestavljen je iz števila a (a ), ki ga imenujemo števec, in iz števila b (b, b 0), ki ga imenujemo imenov

Microsoft Word - avd_vaje_ars1_1.doc

ARS1

Priloga 1: Pravila za oblikovanje in uporabo standardiziranih referenc pri opravljanju plačilnih storitev Stran 4012 / Št. 34 / Uradni lis

Učinkovita izvedba algoritma Goldberg-Tarjan Teja Peklaj 26. februar Definicije Definicija 1 Naj bo (G, u, s, t) omrežje, f : E(G) R, za katero v

Delavnica Načrtovanje digitalnih vezij

Osnove matematicne analize 2018/19

Microsoft Word - CNC obdelava kazalo vsebine.doc

Microsoft Word - M docx

Diapozitiv 1

Navodila:

Prekinitveni način delovanja PLK Glavni program (OB1; MAIN) se izvaja ciklično Prekinitev začasno ustavi izvajanje glavnega programa in zažene izvajan

Zavod sv. Stanislava Škofijska klasična gimnazija Programiranje v Pythonu Program za računanje Maturitetna seminarska naloga iz informatike Kandidat:

Sistemi Daljinskega Vodenja Vaja 3 Matej Kristan Laboratorij za Strojni Vid Fakulteta za elektrotehniko, Univerza v Ljubl

Microsoft Word - Seštevamo stotice.doc

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Verjetnost Pisni izpit 5. februar 2018 Navodila Pazljivo preberite

CelotniPraktikum_2011_verZaTisk.pdf

Microsoft PowerPoint _12_15-11_predavanje(1_00)-IR-pdf

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov

Strojna oprema

Vaje: Matrike 1. Ugani rezultat, nato pa dokaži z indukcijo: (a) (b) [ ] n 1 1 ; n N 0 1 n ; n N Pokaži, da je množica x 0 y 0 x

Microsoft Word - M docx

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

Diapozitiv 1

Delavnica Načrtovanje digitalnih vezij

Microsoft PowerPoint - Java_spremenljivke

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

DN5(Kor).dvi

Microsoft Word - ELEKTROTEHNIKA2_ junij 2013_pola1 in 2

Matematika Diferencialne enačbe prvega reda (1) Reši diferencialne enačbe z ločljivimi spremenljivkami: (a) y = 2xy, (b) y tg x = y, (c) y = 2x(1 + y

Urejevalna razdalja Avtorji: Nino Cajnkar, Gregor Kikelj Mentorica: Anja Petković 1 Motivacija Tajnica v posadki MARS - a je pridna delavka, ampak se

Microsoft Word doc

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/testi in izpiti/ /IZPITI/FKKT-februar-14.dvi

PREDMETNI KURIKULUM ZA RAZVOJ METEMATIČNIH KOMPETENC

ORA 1-3

5 SIMPLICIALNI KOMPLEKSI Definicija 5.1 Vektorji r 0,..., r k v R n so afino neodvisni, če so vektorji r 1 r 0, r 2 r 0,..., r k r 0 linearno neodvisn

Slide 1

glava.dvi

resitve.dvi

Mladi za napredek Maribora srečanje DOLŽINA»SPIRALE«Matematika Raziskovalna naloga Februar 2015

4. tema pri predmetu Računalniška orodja v fiziki Ljubljana, Grafi II Jure Senčar

Microsoft Word - M docx

Ime in priimek

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij

Univerza v Ljubljani FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Tržaška c. 25, 1000 Ljubljana Realizacija n-bitnega polnega seštevalnika z uporabo kvan

Spoznajmo PowerPoint 2013

INFORMATOR BIROKRAT 1/2011

ANALITIČNA GEOMETRIJA V RAVNINI

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 6. julij 2018 Navodila Pazljivo preberite be

P181C10111

Orodje za izvoz podatkov

BiokemInfo - Pregled funkcij

DOMACA NALOGA - LABORATORIJSKE VAJE NALOGA 1 Dani sta kompleksni stevili z in z Kompleksno stevilo je definirano kot : z = a + b, a p

Poročanje izdanih računov pri gotovinskem poslovanju

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas

10. Meritev šumnega števila ojačevalnika Vsako radijsko zvezo načrtujemo za zahtevano razmerje signal/šum. Šum ima vsaj dva izvora: naravni šum T A, k

Microsoft Word - NAVODILA ZA UPORABO.docx

_ _BDA_CapitalSports_CS-Timer.indd

Diapozitiv 1

INFORMATOR BIROKRAT 1/2011

Diapozitiv 1

FAKULTETA ZA STROJNIŠTVO Matematika 2 Pisni izpit 9. junij 2005 Ime in priimek: Vpisna št: Zaporedna številka izpita: Navodila Pazljivo preberite bese

BYOB Žogica v vesolju Besedilo naloge Glavna ideja igre je paziti, da žoga ne pade na tla igralne površine, pri tem pa zbrati čim več točk. Podobno ig

Lehmerjev algoritem za racunanje najvecjega skupnega delitelja

Univerza na Primorskem FAMNIT, MFI Vrednotenje zavarovalnih produktov Seminarska naloga Naloge so sestavni del preverjanja znanja pri predmetu Vrednot

Microsoft Word - Analiza rezultatov NPZ matematika 2018.docx

S rdf

Srednja šola za oblikovanje

FGG14

Teorija kodiranja in kriptografija 2013/ AES

UNIVERZA V LJUBLJANI FAKULTETA ZA MATEMATIKO IN FIZIKO Katja Ciglar Analiza občutljivosti v Excel-u Seminarska naloga pri predmetu Optimizacija v fina

NAJRAJE SE DRUŽIM S SVIČNIKOM, SAJ LAHKO VADIM ČRTE IN KRIVULJE, PA VELIKE TISKANE ČRKE IN ŠTEVILKE DO 20. Preizkusite znanje vaših otrok in natisnite

Ime in priimek: Vpisna št: FAKULTETA ZA MATEMATIKO IN FIZIKO Oddelek za matematiko Statistika Pisni izpit 31. avgust 2018 Navodila Pazljivo preberite

SESTAVA VSEBINE MATEMATIKE V 6

ELEKTRIČNI NIHAJNI KROG TEORIJA Električni nihajni krog je električno vezje, ki služi za generacijo visokofrekvenče izmenične napetosti. V osnovi je "

Mere kompleksnih mrež (angl. Network Statistics) - Seminarska naloga pri predmetu Izbrana poglavja iz diskretne matematike

INDIVIDUALNI PROGRAM PREDMET: MATEMATIKA ŠOL. LETO 2015/2016 UČITELJ: ANDREJ PRAH Učenec: Razred: 7. Leto šolanja: Ugotovitev stanja: Učenec je lani n

resitve.dvi

Naloge 1. Dva električna grelnika z ohmskima upornostma 60 Ω in 30 Ω vežemo vzporedno in priključimo na idealni enosmerni tokovni vir s tokom 10 A. Tr

COBISS3/Medknjižnična izposoja

rm.dvi

Microsoft Word - M docx

resitve.dvi

7. VAJA A. ENAČBA ZBIRALNE LEČE

Microsoft PowerPoint - Mocnik.pptx

Geometrija v nacionalnih preverjanjih znanja

NAVODILA AVTORJEM PRISPEVKOV

(Microsoft Word - MSDN AA Navodila za \232tudente FS.doc)

Diapozitiv 1

C:/Users/Matevž Èrepnjak/Dropbox/FKKT/TESTI-IZPITI-REZULTATI/ /Izpiti/FKKT-avgust-17.dvi

ACAD-BAU-Analiza-prostorov

Transkripcija:

RAM stroj Nataša Naglič 4. junij 2009 1 RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni trak, pomnilnik ter program. Bralni trak- zaporedje polj, vsako vsebuje celo število, lahko tudi negativno. Ko se znak prebere, se glava pomakne za eno polje v desno. Pisalni trak- zaporedje praznih polj. Ko se izvrši ukaz za pisanje, se v prazno polje vpiše število, glava se pomakne za eno polje v desno. Ko je simbol zapisan, se ga ne da spremeniti. Pomnilnik- neomejeno zaporedje registrov r0,... Vsak register lahko shrani eno število. Ta model je veljaven, če velja: Velikost problema je dovolj majhna, da ga lahko shranimo v glavni pomnilnik računalnika. Števila, uporabljena pri računanju, so dovolj majhna da jih lahko zapišemo z eno pomnilniško besedo. Program za RAM ni shranjen v pomnilniku. Iz tega sledi, da sam sebe ne more spreminjati. Je zgolj zaporedje ukazov; npr aritmetične operacije, operacije za sprejem in izpis podatkov, posredno naslavljanje, vejitve,... Vsa računanja se izvajajo v prvem registru r0, ti. akumulatorju. 1

Primer ukazov (Tabela 1). Slika 1: skica RAM modela Vsak ukaz je sestavljen iz operacijske kode in naslova ( ali oznaka). Operand je lahko: = i... celo število i, i... nenegativno število i, ki ponazarja vsebino registra i, *i... označuje posredno naslavljanje ( je vsebina registra j, kjer je celo število j zapisano v registru i, če <0 se stroj vstavi). Program P - V splošnem RAM program P definiramo kot preslikavo iz bralnega v pisalni trak. Definiramo ga s preslikavo c, iz nenegativnih celih števil v cela števila (c(i)... vsebina registra i), in pa s programskim števcem P C, ki določa naslednji ukaz, ki naj se izvrši. Na začetku imamo c(i) = 0, za vsak i 0. PC je nastavljen na prvi ukaz programa P, pisalni trak je prazen. 2

Operacijska koda LOAD STORE ADD SUB MULT DIV READ WRITE JUMP JGTZ JZERO HALT Naslov oznaka oznaka oznaka Tabela 1: Nabor ukazov Po izvršitvi k-tega ukaza programa P, se P C avtomatsko poveča na P C +1, tj. naslednji ukaz, razen če je k-ti ukaz JUMP, JGTZ, JZERO, HALT. Da bi določili pomen posameznega ukaza, definirajmo v(a)... vrednost a a: v(= i) = i, v(i) = c(i), v( i) = c(c(i)), Naslednja tabela (Tabela 2) definira ukaze, ki smo jih določili zgoraj. Operand a je lahko = i ali i ali i. Če ukaz ni definiran, npr. STORE(= i), ga obravnavamo kot HALT. Podobno tudi deljenje z 0 prekine program. Po izvršitvi ukaza sledi P C P C + 1. Torej se ukazi vršijo eden za drugim, dokler ne pride do ukazov HALT ali JUMP, ali dokler JGTZ ali JZERO nimata izpolnjenega pogoja. Predpostavimo, da P vedno prebere n števil iz vhodnega traku in na izhodni trak izpiše največ eno število. Če po branju x1,..., xn na izhodni trak zapiše y in nato prekine izvajanje, pravimo, da P izračuna funkcijo f(x1,..., xn) = y. Lahko pa RAM program definiramo tudi s končno abecedo znakov Γ, podobno kot Turingov stroj. Pri tem znake predstavimo s celimi števili 1,..., k, za nek k. RAM sprejme jezik tako, da vpišemo začetni niz s = a1 a2... an, a1 na prvo mesto traku... niz zaključimo z 0 na n + 1 mestu. 3

Ukaz Pomen LOAD a c(0) v(a) STORE i c(i) c(0) STORE i c(c(i)) c(0) ADD a c(0) c(0) + v(a) SUB a c(0) c(0) v(a) MULT a c(0) c(0) v(a) DIV a c(0) c(0)/v(a) READ i c(i) trenutni vhodni simbol (glava se premakne za eno polje v desno) READ i c(c(i)) trenutni vhodni simbol (glava se premakne za eno polje v desno) WRITE a trenutno prosto mesto na pisalnem traku v(a) (glava se premakne za eno polje v desno) JUMP b P C se nastavi na ukaz z oznako b JGTZ b P C se nastavi na ukaz z oznako b če velja c(0) > 0 JZERO P C se nastavi na ukaz z oznako b če velja c(0) = 0 HALT Konča izvajanje programa Tabela 2: Definicija ukazov Za niz pravimo, da ga je RAM program P sprejel, če P prebere vse znake s, znak 0, na pisalni trak zapiše 1 in konča program. Jezik, ki ga P sprejme, je množica sprejetih nizov. Poglejmo si še primer RAM programa, ki izračuna funkcijo. Definirajmo funkcijo: f(n) = { n n za n 1 0 sicer Spremenljivke r1, r2, r3 so shranjene v registrih 1, 2 in 3. Program množi število n samo s seboj n 1 krat (Tabela 3). 2 Računska zahtevnost Povprečni kriterij En register RAM programa porabi eno prostorsko enoto. En ukaz RAM programa porabi eno časovno enoto. 4

RAM program Pomen READ 1 beri r1 LOAD 1 če r1 0, zapiši 0 JGTZ pos WRITE = 0 JUMP endif pos: LOAD 1 r2 r1 STORE 2 LOAD 1 r3 r1 1 SUB =1 STORE 3 while: LOAD 3 dokler r3 > 0 JGTZ continue JUMP endwhile continue: LOAD 2 r2 r2 r1 MULT 1 STORE 2 LOAD 3 r3 r3 1 SUB =1 STORE 3 JUMP while endwhile: WRITE 2 zapiši r2 endif: HALT Tabela 3: RAM program Logaritemski kriterij (upošteva omejeno velikost ene enote spomina) Definirajmo naslednjo logaritemsko funkcijo za celo število i: { 1 za i = 0 l(i) = log i + 1 sicer Prva tabela (Tabela 4) prikazuje časovno zahtevnost t(a) za a, druga (Tabela 5) pa za vsak ukaz posebej. Logaritemski kriterij upošteva, da se število n v registru predstavi z log n + 1 biti. Osnovan je na dokaj grobi predpostavki, da je časovna zahtevnost izvršitve ukaza sorazmerna z dolžino a. 5

Operand a t(a) = i l(i) i l(i) + l(c(i)) i l(i) + l(c(i)) + l(c(c(i))) Tabela 4: Časovna zahtevnost za e Ukaz časovna zahtevnost) LOAD a t(a) STORE i l(c(0)) + l(i) STORE i l(c(0)) + l(i) + l(c(i)) ADD a l(c(0)) + t(a) SUB a l(c(0)) + t(a) MULT a l(c(0)) + t(a) DIV a l(c(0)) + t(a) READ i l(vhod) + l(i) READ i l(vhod) + l(i) + l(c(i)) WRITE a t(a) JUMP b 1 JGTZ b l(c(0)) JZERO l(c(0)) HALT 1 Tabela 5: Časovna zahtevnost za ukaze Poglejmo si logaritemsko casovno zahtevnost za ukaz ADD i: Poglejmo najprej koliko nas stane dekodiranje a: branje števila i: l(i), branje c(i), vsebine registra i in iskanje registra c(i): l(c(i)), branje vsebine registra c(i): l(c(c(i))). ADD i sešteje števili c(c(i)) in število c(0), tj. število v akumulatorju. Vidimo, da je l(c(0)) + l(i) + l(c(i)) + l(c(c(i))) dokaj realna ocena. Logaritemsko prostorsko zahtevnost definiramo kot vsoto po vseh registrih, tudi akumulatorju; l(xi), kjer je xi največja vrednost shranjena v registru i med računanjem. Izračunajmo sedaj časovno in prostorsko zahtevnost RAM programa, ki smo ga opisali zgoraj. Največ nas stane zanka množenja (MULT ). Ko se 6

vrši i-tič, akumulator vsebuje n i, drugi register pa vsebuje n. Skupaj imamo n 1 ponovitev ukaza MULT. Povprečni kriterij: vsaka izvršitev nas stane eno časovno enoto, torej za vsa množenja O(n). Če gledamo logaritemski kriterij dobimo: i-to množenje: l(n i ) + l(n) = (i + 1) log n Vsa množenja: n 1 i=1 log n O(n 2 log n) Prostorsko zahtevnost določajo števila shranjena v registrih 0 do 3: Povprečni kriterij: O(1). Logaritemski kriterij: O(n log n), saj je največje število shranjeno v katerem od teh registrov n n in l(n n ) = n log n. Literatura: [1] http://www.fmf.uni-lj.si/ orbanic/ram.pdf 7