Professional Documents
Culture Documents
Gradja Racunala
Gradja Racunala
Temelji
Princip rada raunala temelj: Turingov teorijski
model algoritmikog stroja Slijedno interpretiranje simboliki opisane zadae algoritme Problem: Kako prikazivati simbole?
upravljaka jedinica
procesor (CPU)
vrpca
memorija (RAM)
( x1 x2 ... xk ) ( b )
0i k
xb ,
i i
xi {0,..., k 1}, b N
Zadaci
Primjer 2.1: Pretvori slijedee binarne brojeve u dekadske: a) 100101 b) 1101001 c) 1111011
na bn 1 mjestu stoji bit 0 ili 1 to predstavlja predznak '' odnosno '-'. Ukupni raspon cijelih brojeva koji se moe prikazati u n bitova je od -(2 n-1 -1) do (2 n 1 1).
Zadaci
Primjer 2.3: Odredite decimalnu vrijednost brojeva 10100011 i 00010110 u konvenciji predznaka.
Primjer 2.4: Odredite 8-bitnu binarnu vrijednost broja -34 u komplementarnoj notaciji.
Sign Exponent
11 bits, bias = 1023, 1022 to 1023
Significand
52 bits for fractional part (plus hidden 1 in integer part)
11100111
eksponent mantisa
Kod dekodiranja prvo se izdvoji mantisa i postavlja se zarez na poetku s lijeve strane. Slijedea 3 bita prikazuju eksponent u ekcesivnoj notaciji koji je jednak 2 to znai da pomiemo zarez 2 mjesta udenso pa imamo: Binarna kombinacija ispred zareza definira cijeli broj 1, dok bitovi iza zareza prikazuju decimale po pravilu negativnih potencija od 2.
01,11
01,11 0 21 1 20 1 2 1 1 2 2 1 3 4
Zadaci
Primjer 2.5: Odredite racionalnu vrijednost broja u 8-bitnom zapisu 01011001.
Binarna aritmetika
1. Binarno zbrajanje
primjer:
Binarna aritmetika
Primjer zbrajanja 4-bitnog sloga sa zastavicom prijelaza (overflow flag) Prilikom zbrajanja binarnih slogova potrebno je obratiti pozornost na ispravnost rezultata tj. prelazi li rezultat raspon dozvoljenih brojeva. overflow i underflow.
Binarna aritmetika
1. Binarno oduzimanje
primjer:
Oduzima se kao i kod decimalnog oduzimanja ili zbrajanjem dvojnog komplementarnog umanitelja.
Binarna aritmetika
1. Binarno mnoenje
primjer:
Kod binarnog mnoenja djelomian umnoak pomie se za jedno mjesto ulijevo pri svakom uzimanju idueg mnoitelja.
Binarna aritmetika
1. Binarno dijeljenje
primjer:
Primjenom pravila binarnog oduzimanja i mnoenja moe se obaviti binarno dijeljenje na isti nain kao dijeljenje decimalnih brojeva.
Zadaci
Zadatak 2.1: 11000111 (-57) +11011101 (-35) 110100100 00111001 - 11011101
01011100
10100100 (-92)
1001101 x 101
1101101 : 11 =
ASCII (American Standard Code for Information Interchange) kodirana norma. Koristi 7-bitni slog za kodiranje velikih i malih slova, brojaka te pravopisnih, matematikih i posebnih znakova. Proireni ASCII obuhvaa 8-bitni slog i podrazumijeva 256 razliitih simbola.
Tablica istinitosti
Tablica istinitosti
Tablica istinitosti
Tablica istinitosti
Tablica istinitosti
Tablica istinitosti
Polu sumator
rezultat prijenos
Puni sumator
Bistabili i registri
Osnove Za pamenje i manipuliranje binarnih brojeva u raunalu potrebni su sklopovi koji mogu biljeiti 2 stanja.
Bistabili i registri
Osnove
Bistabil, flip-flop, je sekvencijalni sklop digitalne elektronike koji moe zapamtiti podatak veliine jedan bit. Elektroniki gledano radi se o sklopu koji ima dva stabilna stanja (logiku 0 i 1). Bistabil obino ima dva ili tri ulaza na koje se dovode ulazni impulsi koje u ovom sklopu nazivamo okidni impulsi. Bistabil moe imati jedan, dva ili tri ulaza i ima jedan ili dva izlaza. Ulazi se oznaavaju ovisno o vrsti bistabila, dok se izlazi oznaavaju s Q (logiko stanje bistabila) i (logiki komplement izlaza Q). Promjena iz jednog stabilnog stanja u drugo naziva se okidanje bistabila. Bistabile moemo podijeliti u dvije osnovne skupine i to na asinkrone i sinkrone bistabile. Asinkroni bistabili imaju svojstvo da reagiraju na promjenu impulsa im se pojavi na ulazu u sklop, to daje pogrean rezultat kada se ulazni impulsi ne dovode istovremeno na ulaz. Sinkroni bistabil je verzija asinkronog koji ima dodatni ulaz (CLK, eng. clock) na koji se dovode sinkronizacijski impulsi konstantne frekvencije tako da bistabil mijenja stanje na promjenu okidnog impulsa.
Bistabil su 1919. godine napravili William Eccles i F. W. Jordan i bio je izveden iz dvije elektronske cijevi koje su nakon izuma tranzistora 1947. godine zamijenjene istim.
Bistabili i registri
Osnove Za pamenje i manipuliranje binarnih brojeva u raunalu potrebni su sklopovi koji mogu biljeiti 2 stanja.
Bistabili i registri
Osnove Binarna vrijednost koja se eli pohraniti na bistabil dovodi se na prikljuak D, na izlaznom prikljuku Q se oitava stanje bistabila i ulazni prikljuak POHRANITI se dovodi poseban upravljaki signal
Bistabili i registri
S-R bistabil S-R bistabil ima 2 signala S (set) i R (reset) i izlaze Q i NOT(Q). Set znai postavi bistabil u stanje 1, a reset postavi bistabil u stanje 0.
S 0 0 0
R 0 0 1
Qn 0 1 X
Qn+1 0 1 0
1
1
0
1
X
X
1
neodre eno
Bistabili i registri
S-R bistabil Odgovarajua logika shema:
Bistabili i registri
J-K bistabil JK bistabil se od SR bistabila razlikuje samo po tome to nema zabranjenih stanja, odnosno stanja u kojima su ulazi J i K logiki isti daju na izlazu stanja koja ovise i o prethodnim stanjima bistabila. Kod JK bistabila se uvodi i trei CLK ulaz koji slui za sinkronizaciju. J 0
Jednadba stanja
K 0 1 0 1
Qn+1 Qn 0 1
0 1 1
Bistabili i registri
J-K bistabil
Bistabili i registri
D bistabil
D bistabil je modifikacija SR bistabila koja se dobije tako da se ulazna varijabla spoji direktno na ulaz S, dok se na ulaz R dovede invertirani ulaz. D bistabil jednostavno samo upisuje (odnosno daje na izlazu) podatak koji mu je dan na ulazu, pa ga zbog toga moemo promatrati kao elementarnu esticu za memoriranje jednog bita, ili kao element za kanjenje ukoliko ukljuimo i CLK ulaz. Upravo zbog ovih svojstava (eng. data, podatak i eng. delay, kanjenje) bistabil je i dobio ime D bistabil.
D 0 1
Qn+1 0 1 Qn + 1 = D
Bistabili i registri
T bistabil
T bistabil je verzija JK bistabila kod kojega su ulazi J i K meusobno spojeni tako da samo jedan logiki ulaz T. T bistabil ima i jo jedan CLK ulaz. Spojimo li ulaz T na logiku jedinicu dobivamo sklop koji mijenja logiko stanje na CLK impuls ime se na izlazu T bistabila dobiva niz impulsa dvostruko manje frekvencije od frekvencije CLK. Upravo zbog svojstva promjene stanja, eng. toggle, prebacivati, je i T bistabil dobio ime. Jednadba stanja T bistabila:
T 0 1
Qn+1 Qn
Bistabili i registri
Registri Predstavljaju nanizane bistabile u cjelinu koji slue za pamenje viebitnih podataka.
Registri
Prenoenje podataka izmeu registara Prijenos podataka s jednog bistabila na drugi vri se koritenjem logikih vrata (brane).
Registri
Prenoenje podataka izmeu registara Prijenos podataka s registara na drugi registar primjenom sabirnice i dovodnog signala.
Registri
Dekoder Za neko stanje na registru dekoder e biljeiti jedno stanje na svom vodu, odnosno biljeit e mogua stanja registra.
Realizacije bistabila
Pomani registar Sklop koji se sastoji od vie D bistabila, koji imaju zajedniki taktni ulaz, a spojeni su tako da je izlaz jednog doveden na ulaz drugog.
Osim pamenja kodne rijei, osnovna funkcija je pomak bitova u lijevo ili udesno ime ostvarujemo mnoenje ili dijeljenje, te paralelno, serijska pretvorba.
Realizacije bistabila
Brojila Sklop koji se sastoji od vie T ili JK bistabila koji su povezani tako da njihovo slijedee stanje ovisi samo o prethodnom (prijelaz u slijedee stanje nastaje u trenutku nastupanja taktnog signala). Brojilo boji ukupan broj signala koji dou na nj.
Vrsta generatora sekvence koji prolaskom kroz sva stanja na izlazu generira konanu sekvencu kodnih kompleksija . Ima ulogu binarnog brojenja. Jedna od primjena je brojanje rednog broja instrukcija.
Realizacije bistabila
Memorija Na registrima se biljee podaci koje slue u obradi. Postoje i neki podaci koji se uvaju za neko drugo vrijeme obrade. Takvi registri koji omoguuju trajno spremanje podataka zovemo memorija.
svaki registar ima LOKACIJU svaka lokacija mora imati ADRESU sadraj lokacije predstavlja podatak koji se pamti u memoriji. ADRESNI REGISTAR registar u kojem se biljei adresa lokacije REGISTAR MEMORIJSKIH PODATAKA registar u kojem se prenose podaci iz memorije i obrnuto
CPU
Procesor (engl. CPU) se sastoji od podatkovnog dijela i kontrolnog dijela. U dananjim raunalima koristi se 32 bitni adresni prostor za adresiranja byteova. Program counter (PC) i Instruction register (IR) su spojnica izmeu kontrolnog dijela i podatkovnog dijela. PC sadri adresu instrukcije koja se dohvaa iz memorije i potom stavlja u IR gdje se interpretira.
Podjela procesora na 2 kategorije.
CPU
Koraci u izvrenju programa kontrolnog dijela fetch-execute cycle 1) Dohvati slijedeu instrukciju koja se treba izvriti iz memorije. 2) Dekodiraj opcode (kod operatora) 3) Uitaj operande iz memorije, ako ih ima. 4) Izvri instrukciju i spremi rezultat.
CPU
Koraci u izvrenju programa podatkovnog dijela datapath. Podatkovni dio se sastoji od kolekcije registara zvanih datoteka registara (register file) koji slue za spremanje podataka (operanada). ALU implementira razliite binarne i unarne operacije (+,*,NOT,AND,OR)
Skup instrukcija
Skup instrukcija (Instruction set) skup instrukcija koje procesor moe izvriti. Skup instrukcija ovisi o modelu procesora. Compiler program koji prevodi jezik vie razine (C, Java, Pascal) u strojni jezik. Prevoenje jezika: High-level jezik Assembly jezik
compile vrijeme assembly vrijeme
Strojni jezik
vrijeme izvrenja
Svaki assembly jezik ima svoju sintaksu. Primjer sintakse assembly jezika SPARC modela:
raspoloivost procesora
Z80 mikroprocesor
PREGLED SIMULACIJA
Z80 mikroprocesor
Zilog Z80 je 8-bitni procesor dizajniran od tvtke Zilog 1976 pa nadalje. Veliku primjenu naao je u stolnim i ugraenim raunalima. Populariziran u prodoru Sinclair ZX Spectrum raunala. Znaajke:
o o o o o o o o
Niska potronja energije Izrauje se za 2 brzine (do 2.5MHz i 4 MHz) dvostruki set registara ope namjene statusni registri 2 16-bitna indeksna registra vektorski prekidni sustav 3 naina rukovanja maskiranim prekidima dinamiko osvjeenje memorije
Usporedba
Frederico Fagin nakon to je napustio Intel nakon rada na 8080 osniva tvrtu Zilog koja na trite izdaje Z80. Arhitektura Z80 je znatno poboljana od arhitekture Intel 8080. Neke od razlika: napredniji instrukcijski skup novi IX i IY indeksni registri vektoriziran nain rada s prekidima manje ipova za kontrolu radnog takta ugraen DRAM osvjeenje jeftinija cijena ... Z80 preuzima trite nad Intel8080 i postaje meu najpopularnijim 8-bitnim mikroprocesorima
Vanjski izgled
Vanjski izgled
+5V,GND (ulazni) napajanje mikroprocesora (ulazni) signal vremenskog voenja sustava takt (uobiajeno 4 MHz, engl. clock)
SABIRNICA ADRESA (engl. ADDRESS BUSS) A0-A15 (izlazni) adresiranje memorije i vanjskih jedinica
SABIRNICA PODATAKA (engl. DATA BUS) D0-D7 (dvosmjerni) podatak koji se ita ili pie u memoriju ili vanjsku jedinicu KONTROLA SUSTAVA (engl. SYSTEM CONTROL) M1 (izlazni) oznaava da je trenutni strojni ciklus dohvat operacijskog koda iz memorije, kada je M1 aktivan zajedno sa IORQ, oznaava ciklus potvrde zahtjeva za prekid MREQ (izlazni) oznaava da se na sabirnici adresa nalazi adresa za itanje ili pisanje u memoriju IORQ (izlazni) oznaava da se na niih 8 bita sabirnice adresa nalazi adresa vanjske jedinice RD (izlazni) oznaava ciklus itanja iz memorije ili vanjske jedinice WR (izlazni) oznaava ciklus pisanja iz memorije ili vanjske jedinice RFSH (izlazni) oznaava da 7 niih bita sabirnice adresa sadre adresu osvjeavanja za dinamike memorije.Bit A7 je u nuli, a na gornjih 8 bita upisan je sadraj registra I.
Vanjski izgled
KONTROLA MIKROPROCESORSKE JEDINICE (engl. CPU CONTROL) HALT - (izlazni) oznaava da je Z80 izveo naredbu HALT i da eka prekid (obini ili nemaskirani).Dok je procesor u stanju HALT, izvode se naredbe NOP, kako bi se osvjeavale dinamike memorije. WAIT (ulazni) dojava procesoru da adresirana memorija ili vanjska jedinica nije spremna za prijenos podataka.Dok je taj signal aktivan, procesor umee stanja ekanja.Taj signal omoguava upotrebu memorijskih i vanjskih ureaja bilo koje brzine i asinkronu komunikaciju s procesorom. INT (ulazni) zahtjev za prekid.Postavlja ga neka vanjska jedinica.Zahtjev e biti obraen na kraju tekue naredbe ako je prekid omoguen. NMI (ulazni, aktivan na padajui brid) nemaskirani zahtjev za prekid.Slino kao i obian zahtjev za prekid, ali ima vii prioritet i ne moe se maskirati (onemoguiti).Zahtjev e biti uvijek obraen na kraju tekue naredbe, a obrada se izvodi uvijek na isti nain. RESET (ulazni) postavljanje mikroprocesora u poetno stanje.Registri PC,I i R postavljaju se u nulu, onemoguava se prekid i postavlja se prekidni nain rada O.Sabirnice adresa i podataka postavljaju se u visoku impedanciju, a kontrolni signali u naktivno stnje.Memorija se ne osvjeava.
Vanjski izgled
KONTROLA SABIRNICE PROCESORA (engl. CPU BUS CONTROL) BUSRQ (ULAZNI) zahtjev procesoru da preda upravljanje nad sabirnicama adresa, podataka i kontrolnim prikljucima.Kada je zahtjev prihvaen, svi ti prikljuci prelaze u stanje visoke impedancije i vanjskoj jedinici koja je postavila zahtjev omoguuju preuzimanje upravljanja nad njima.Zahtjev za sabirnicom je prioritetniji od obinog i nemaskiranog zahtjeva za prekid.Zahtjev za sabirnicom bit e prihvaen im zavri trenutni strojni ciklus. BUSAQ - (izlazni) dojava vanjskoj jedinici koja je zahtijevala sabirnicu da je procesor postavio sve prikljuke u stanje visoke impedancije.
Arhitektura
Tehniki opis
Akumulator A 8 bitni registar -izvor i odredite operananda za instrukcije s jednim ili 2 operanda Registri B,C,D,E,H,L skup od 8 bitnih registara za prijevremeno pohranjivanje meurezultata i rezultata. Registarski pa H i L kazalo podataka (sadre 16-bitnu adresu podataka) Registar uvieta F 8 bitni registar - zastavica predznaka (S), zastavica polovinog prijenosa (H),
zastavica parnosti/preliva (P/O), zastavica oduzimanja (N), zastavica prijenosa (C) PC (program counter)- 16 bitni registar - programsko brojilo i sadri adresu memorijske lokacije na kojoj se nalazi naredba koja e se sljedea dohvatiti i izvriti memorije u koji se podaci pohranjuju kao u pomini registar tako da novi podatak potiskuje stari podatak dublje u stog. Radi po LIFO principu
SP (stack pointer)- 16 bitni registar.slui za spremanje podataka na stog. Stog prestavlja dio
registri IX, IY- 16 bitni registri - se koriste za indeksno adresiranje. U registar se upisuju poetne
adrese memorije bloka u koji se eli pohranjivati podatak ili ih dohvati. Dodatni bajt opisuje odstupanje od poetne adrese.
registar prekidnog vektora I 8 bitni registar - adresni registar stranice prekida programa. Prilikom
vektorskog prekidnog rada omoguava adresiranje bilo koje memorijske lokacije na kojoj se nalazi prekidna rutina registar R (refresh)- 8 bitni registar slui za zadravanje pri osvjeavanju dinamike memorije
Izvoenje programa
Program koji elimo da CPU obavi nalazi se spremljen u memoriji koja nije dio CPU-a. Cijela memorija je adresibilna tako da je svakoj 8-bitnoj memorijskoj lokaciji ( od 65536 lokacija ) pridruena neka adresa. Mikroprocesor je napajan s 5 V i dovodi mu se takt. Program se poinje obavljati postavljanjem sadraja 16-bitnog programskog brojila na adresnu sabirnicu. Ujedno se alje i upravljaki signal RD (itaj). Memorijski sklop dekodira postavljenu adresu i omoguava pristup mikroprocesoru sadraju memorijske lokacije preko 8-bitne sabirnice podataka. Taj se sadraj sprema u CPU, u instrukcijski registar, i to je operacijski kod instrukcije.
Izvoenje programa
Nakon to je programsko brojilo poslalo na adresnu sabirnicu adresu memorijske lokacije prve instrukcije brojilo se inkrementira i eka da prenese adresu druge instrukcije na adresnu sabirnicu. Spremljeni operacijski kod instrukcije u instrukcijskom registru se dekodira i kontrolna jedinica generiranjem upravljakih signala aktivira pojedine sklopove da bi se izvrila instrukcija ( npr. prijenos podataka u akumulator ili registre ope namjene ili upisivanje u memoriju ili prijenos podataka na U/I jedinicu, ili npr. aktiviranje ALU - aritmetike logike jedinice za obavljanje zbrajanja, oduzimanja, inkrementiranja, izvravanja logikog I, ILI, EX ILI, itd. ). Isto tako kontrolna jedinica moe upravljati perifernim jedinicama u ovisnosti o programu, a isto tako i one mogu upravljati CPU-om preko kontrolnih ulaza i izlaza.
Nakon obavljanja prve instrukcije programsko brojilo ponovno postavlja sadraj (koji je inkrementiran u odnosu na prvi put ) na sabirnicu podataka. Iz memorije se uzima slijedea instrukcija i program se nastavlja.
Programiranje Z80
Program piemo u simbolikom strojnom jeziku, odnosno mnemonikom obliku.To znai da se instrukcije ne prikazuju u binarnom obliku nego u obliku korijene engleske rijei koja opisuje njihovu namjenu (npr. ADD A,B za zbrajanje). Postupak razvoja programa: 1.PISANJE : EDITOR IME.ASM 2.asembler je ime za strojni jezik ali i za program prevoditelj napisanog ASM programa 3.PREVOENJE : X80 (tzv. cross asembler) IME.OBJ 4.POVEZIVANJE : LINK1 IME.TSH ili IME.HEX 5.IZVOENJE
Programiranje Z80
Primjeri instrukcija LD A,B - iz B registra u A (akumulator) LD (BC),A - na adresu u memoriji koja je navedena u BC paru registara smjesti podatak iz akumulatora A PUSH BC - stavi na stog POP BC - skini sa stoga EX AF,AF - razmjena podataka EXX - sva tri izmjenjivanja odjednom CPI i CPIR - usporedi A sa (HL), inkrementiraj HL i dekrementiraj BC ADD A,H - zbroji A sa H SUB A,B - odzmi B od A DAA - pretvara A u BCD oblik NOP - no operation (troi jedan ciklus takta) HALT - zaustavlja CPU RLC E - rotiranje u lijevo RRC D - rotiranje u desno BIT 2,H - ispitaj 2 bit registra H SET 2,H - postavi 2 bit registra H RES 4,0 - resetiraj 4 bit na vrijednost 0 IN A,ime - uitavanje s vanjske jedinice definirane adrese pod imenom ime (iskljuvo preko akumulatora) OUT ime,A - ispis na vanjsku jedinicu (iskljuivo preko akumulatora) JP nn - apsolutni bezuvjetni skok JP cc,nn - uvjetni skok JR c - relativni skok DJNZ e - skok u petlji (Decrement and Jump if Not Zero)
Simulacija Z80
Demonstracija asemblera Z80 primjenom simulatora u javi appletu.
Skup instrukcija
Alat koji emo koristiti .................................................. Z80 simulator Primjer 1 Zbrajanje 2 broja Primjer 5 Program s power() rutinom Primjer 2 Uporaba smicanja ulijevo za mnoenje Primjer 4 Zbrajanje 2 elementa iz liste. Primjer 3 Zbrajanje 2 elementa iz liste.