Transcript
Page 1: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

1. Zahtjevi na arhitekturu digitalnog računala Zahtjeve na arhitekturu digitalnog računala odreñuje njegov direktni korisnik, a to je prvenstveno programer koji programira u C-u. Programski jezik C zahtjeva računalo koje može izvoditi:

• aritmetičke i logičke naredbe: o aritmetičke: zbroji, oduzmi, pomnoži, podijeli o logičke: I, ILI, EXOR, NE, … o naredbe nad bitovima: I, ILI, EXOR, NE, …, posmak, rotacija

• naredbe za upravljanje programskim tokom, o bezuvjetna: goto o uvjetna: if, if-else, swich, while, do-while, for

Aritmetičke i logičke operacije te operacije nad bitovima izvode se nad elementarnim tipovima podataka:

• znakovi (char) • cjelobrojni (int) • s pomičnim zarezom jednostruke preciznosti (float) • s pomičnim zarezom dvostruke preciznosti (double)

Osim postavljenih zahtjeva programera treba voditi računa da se računalo treba realizirati pomoću digitalnih sklopova. Polazeći od navedenog slijedi da računalo opće namjene se mora sastojati od dvije funkcionalne cjeline: jedne u koju će biti zapisane naredbe i podaci te druge koja će sukladno zapisanim naredbama izvoditi obradu nad podacima. Naredbe i podaci zapisuju se u zaseban sklop koji se naziva memorija, a obrado podataka sukladno zadanim naredbama izvodi procesor. Rješenje računala opće namjene prikazano na Slika 1.1. Ovakav model poznat je po nazivu Von Neumanov model računala.

Slika 1.1 Von Neumanov model računala.

1.1. Način zapisivanja podataka u memoriju

Cjelobrojni podaci se u memoriju zapisuju u binarnom obliku . Za prikaz negativnih brojeva koristi se dvostruki komplement.

Page 2: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

BINARNI BROJEVNI SUSTAV Brojevni sustav s bazom brojanja B ima znamenke 0, 1, 2, ... , B-1 Npr. u dekadskom sustavu B=10, a znamenke su 0, 1, 2, ..., 8 i 9. Ako je baza B=2 dobiva se binarni brojevni sustav, čije znamenke su 0 i 1. Iz engleskog BInary digiT nastalo je ime za najmanju količinu informacije BIT. Primjer zapisivanja brojeva: 5710 = 5 * 101 + 7 * 100 = 1*25 + 1*24 + 1*23 + 0*22 + 0*21 + 1*20 = 1 1 1 0 0 1 2 Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima, a broj bita za prikaz brojeva je iz tehničkih razloga ograničen .

Ureñaji koji obrañuju i pohranjuju binarne informacije fizički se izvode pomoću elektroničkih elementa s 2 stabilna stanja (bistabil), koji su vrlo brzi i jeftini. Pretvorba dekadskog broja u binarni

Binarni broj tvore ostaci dijeljenja s 2, odozdo prema gore

57 : 2 = 28 1 1 1 0 0 1

1

28 : 2 = 140

14 : 2 = 70

7 : 2 = 31

3 : 2 = 11

1 : 2 = 01

Page 3: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

NEGATIVNI BINARNI BROJEVI Registar je skup memorijskih elemenata koji pamte znamenke binarnog broja što znači da je za odreñeno računalo unaprijed propisana dužina registra, a time i brojevno područje unutar kojeg se kreću brojevi. Primjer: Operacija 7 - 5 u računalu s registrom od 4 bita obavit će se kao 7 + (-5). Binarni prikaz broja -5 je sljedeći: Pozitivni broj 0 1 0 1

Komplement do baze-1 1 1 1 1 Komplement do baze 1 0 1 0

(jedinični komplement) + 0 1 0 1 (dvojni komplement) + 0 0 0 1 1 0 1 0 1 0 1 1

Dokaz da je dobiveni broj - 5 Operacija oduzimanja 7 - 5 1 0 1 1 (- 5) 0 1 1 1 ( 7) + 0 1 0 1 (+5) + 1 0 1 1 (-5) 0 0 0 0 0 0 1 0 Preljev 1 Preljev 1

U registru s 3 bita, ako je prvi bit predznak mogu se prikazati sljedeći brojevi: Dekadski broj Binarni broj 0 000 1 001 2 010 3 011 -4 100 -3 101 -2 110 -1 111 Za n = 3 dobije se interval [-22, 22 - 1], Za n = 8 taj je interval [-27, 27- 1 ], tj. [-128, 127]. Općenito: [-2n-1, 2n-1 - 1]. Dodavanjem jedinice najvećem prikazinom cijelom broju, dobit će se najmanji prikazini cijeli broj (npr. za n=8 , 127 + 1 � -128) , odnosno oduzimanjem jedinice od najmanjeg prikazinog cijelog broja dobit će se najveći prikazini broj (npr. za n=8 , -128 – 1 � 127)

Page 4: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

OKTALNI BROJEVNI SUSTAV Baza sustava je B=8 a znamenke su 0, 1, 2, 3, 4, 5, 6, 7. Koristi se za skraćeno zapisivanje binarnih sadržaja kada je to spretno. Primjer: 36-bitni broj 001 110 000 101 111 001 010 011 111 000 100 001 oktalni broj 1 6 0 5 7 1 2 3 7 0 4 1 HEKSADEKADSKI BROJEVNI SUSTAV Baza sustava je B = 16, a znamenke su 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Koristi se za skraćeno zapisivanje binarnog sadržaja. Primjer: 16-bitni broj 0111 1011 0011 1110 heksadekadski ekviv. 7 B 3 E

RAZLOMLJENI BINARNI BROJEVI Razlomljeni binarni brojevi sadrže "binarnu točku", analogno decimalnom zarezu, odnosno točki u anglo-američkoj notaciji. Primjer: prikaz razlomljenih brojeva 5.75 10 = 5 * 100 + 7 * 10-1 + 5 * 10-2 = = 1*22 + 0*21 + 1*20 + 1*2-1 + 1*2-2 = 1 0 1 . 1 1 2

Pretvaranje decimalnog broja u binarni Cjelobrojni dio dekadskog broja pretvara se u binarni uzastopnim dijeljenjem, a decimalni uzastopnim množenjem s 2, gdje cjelobrojni dio dobivenih produkata tvori znamenke binarnog razlomka.

Page 5: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Primjer: pretvaranje decimalnih brojeva koji se ne mogu prikazati konačnim brojem binarnih frakcija

Treba uočiti da se konačni decimalni razlomak prikazuje kao beskonačni periodički binarni razlomak. Binarni broj se množi s potencijama baze 2 tako da se binarna točka pomakne odgovarajući broj mjesta desno ili lijevo, zavisno da li je predznak potencije pozitivan ili negativan. Primjer: 1 . 1 1 * 22 = 1 1 . 1

PRIKAZ REALNIH BROJEVA U RAČUNALU Standardna točnost: 32 bita (4 byte) Dvostruka točnost: 64 bita (8 byte) Realni brojevi standardne točnosti Deklaracija u programskom jeziku C: float IEEE (Institute of Electrical and Electronics Engineers) standard 754 za prikaz realnih brojeva u standarnoj točnosti:

Page 6: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

31 30 24 23 0

P eksponent mantisa

P predznak ( P=1 negativan, P=0 pozitivan) Karakteristika binarni eksponent + 127 (da se izbjegne prikaz negativnog eksponenta) Mantisa normalizirana (samo jedan bit ispred binarne točke). Primjer: prikazati dekadski broj 5.75 5.7510 = 101.112 * 20 = 1.01112 * 22 Kako se normalizacijom svakog binarnog broja (osim nule) postiže oblik 1.xxxxx, vodeća jedinica ne pohranjuje se u računalu i naziva se skrivenim bitom. Time se štedi jedan bit što povećava točnost. Predznak = 0 (pozitivan broj) Binarni eksponent = 2 K = 2 + 127 = 129 = (1000 0001)2 Mantisa (cijela) 1.0111 Mantisa (bez skrivenog bita) 0111 Rezultat:

0 10000001 01110000000000000000000 ili

0100 0000 1011 1000 0000 0000 0000 0000 binarno 4 0 B 8 0 0 0 0 heksadecimalno

Primjeri: 2 = 102 * 20 = 12 * 21 = 0100 0000 0000 0000 ... 0000 0000 = 4000 0000 hex P = 0, K = 1 + 127 = 128 (10000000), M = (1.) 000 0000 ... 0000 0000 -2 = -102 * 20 = -12 * 21 = 1100 0000 0000 0000 ... 0000 0000 = C000 0000 hex Jednako kao 2, ali P = 1 4 = 1002 * 20 = 12 * 22 = 0100 0000 1000 0000 ... 0000 0000 = 4080 0000 hex Jednaka mantisa, BE = 2, K = 2 + 127 = 129 (10000001) 6 = 1102 * 20 = 1.12 * 22 = 0100 0000 1100 0000 ... 0000 0000 = 40C0 0000 hex 1 = 12 * 20 = 0011 1111 1000 0000 ... 0000 0000 = 3F80 0000 hex K = 0 + 127 (01111111). .75 = 0.112 * 20 = 1.12 * 2-1 = 0011 1111 0100 0000 ... 0000 0000 = 3F40 0000 hex Poseban slučaj - 0:

Page 7: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Normalizacijom broja 0 ne može se dobiti oblik 1.xxxxx 0 = 0 0000000 0000 ... tj. kao 1.02 * 2-127

Raspon i točnost realnih brojeva Za slučaj realnog broja standardne točnosti karakteristika (8 bita) se može nalaziti u intervalu [0,255]. Specijalni slučajevi karakteristike su 0 i 255, pa obzirom da je BE = K - 127, BE se može kretati u intervalu [-126,127]. Kada je K = 0 i svi bitovi mantise nula radi se o broju nula. Kada je K = 0 i postoje binarne frakcije u mantisi tada je to denormalizirani broj, tj. više ne postoji skriveni bit. Kada je K = 255 i svi bitovi mantise nula radi se o prikazu +∞ illi -∞ ovisno od predznaka P Kada je K = 255 i postoje binarne frakcije u mantisi ne radi se o prikazu broja (NaN) Najmanji pozitivni broj ≠ 0 koji se može prikazati je: 0.000000000000000000000012 *2-126 što iznosi 1.401298464324817*10-45 a najveći je: 1.111111111111111111111112 * 2127 ≈ 2128 = 3.402823669209*1038 Točnost: 24 binarne znamenke 224

≈ 10x � 24 log 2 ≈ x log 10 � x ≈ 24 log 2 = 7.224719895936

tj. približno 7 prvih važećih točnih znamenki. Prikaz pomoću brojevnog pravca: -3.4*1038 -1.4*10-45 0 1.4*10-45 3.4*1038 Numeričke pogreške Nemogućnost korištenja svih bita kod računanja Primjer: 0.000110 + 0.990010 0.000110 : (1.)101000110110111000101112 * 2

-14

0.990010 : (1.)111110101110000101000112 * 2-1

Kod zbrajanje, binarne točke moraju biti poravnate: .000000000000011010001101 * 2

0 Samo 11 od 24 bita! +.111111010111000010100011 * 2

0

.111111010111011100110000 * 20 = 0,990099906921410

Page 8: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Realni brojevi dvostruke točnosti Deklaracija u programskom jeziku C: double

63 62 52 51 0

P eksponent mantisa

P predznak ( P=1 negativan, P=0 pozitivan) Karakteristika binarni eksponent + 1023 (da se izbjegne prikaz negativnog eksponenta) Mantisa normalizirana (samo jedan bit ispred binarne točke). Raspon: K ∈ [0,2047]. BE = K - 1023 BE ∈ [-1022,1023] Specijalni slučajevi: K=0 i K=2047 Kada je K = 0 i svi bitovi mantise nula radi se o broju nula Kada je K = 0 i postoje binarne frakcije u mantisi tada je to denormalizirani broj, tj. više ne postoji skriveni bit Kada je K = 2047 i svi bitovi mantise nula radi se o prikazu +∞ ili -∞ ovisno o predznaku P Kada je K = 2047 i postoje binarne frakcije u mantisi tada se ne radi o prikazu broja (Nan) Najmanji pozitivni broj različit od nule koji se može prikazati je: 0.0000 ...0012 * 2-1022 što je 4.9406 * 10-324 a najveći je: 1.1111.....1111112 * 21023 ≈ 21024 = 1.797693134862316*10308 Točnost: 53 binarne znamenke 253

≈ 10x � 53 log 2 ≈ x log 10 � x ≈ 53 log 2 = 15.95458977019

tj. približno 16 prvih važećih točnih znamenki. Postoji još i long double, meñutim, njegova veličina ovisi o platformi, pa se tako mogu naći implementacije u kojima je njegova veličina 64,80,96 ili 128 bita. ANSI standard propisuje da nije manji od double broja. Primjer raspodjele ako je njegova veličina 80 bita: long double 80 bita Karakteristika: 15 bita Binarni eksponent: Karakteristika – 16383

Page 9: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

1.2. Prikaz naredbi

Kako je već navedeno računalo treba izvoditi aritmetičke i logičke naredbe, te naredbe za upravljanje programskim tokom. Prikaz naredbi definirati će se na primjeru jedne aritmetičke naredbe:

rez = op1 + op2

Nazivi varijabli su ekvivalent memorijskih adresa na kojima se varijabla pohranjuje. Sadržaj te memorijske lokacije je vrijednost varijable. Tako npr. op1 je smješten na adresi 100 čiji sadržaj je 10, a op2 na adresi 101 čiji sadržaj je 15. Rezultat, rez smješten je na adresi 102 i sadržaj prije operacije je 0.

Slika 1.2 Način pohrane varijabli u memoriji računala.

Sukladno navedenome naredba sadrži sljedeće informacije:

operacija + adresa rezultata 102 adresa operanda 1 100 adresa operanda 2 101

Adrese su numerički podaci koje je moguće prikazati u binarnom obliku. Operaciju je moguće proizvoljno kodirati kao u primjeru:

Naredba Simbol Operacijski kod

Operacijski kod binarno

zbrajanje + 0 0000 oduzimanje - 1 0001 množenje * 2 0010 dijeljenje / 3 0011 ostatak dijeljenja % 4 0100 I nad bitovima AND 5 0101 ILI nad bitovima OR 6 0110 EXOR nad bitovima EXOR 7 0111 NE nad bitovima NOT 8 1000 itd

Tablica 1.1 Naredbe kao i pripadajući operacijski kodovi.

Page 10: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Na ovaj način sve informacije mogu se zapisati u binarnom obliku. Neka računalo može adresirati 4Gbyta memorije slijedi da je za prikaz adresa potrebno 32 bita, a neka ima do 15 operacija pa je njih moguće prikazati s 4 bita. Sada je naredbu moguće prikazati na način:

Operacijski kod Adresa rezultata Adresa operanda 1 Adresa operanda 2 4 bita 32 bita 32 bita 32 bita

100 bita

Definiranje rasporeda polja u naredbi i njihovo značenje naziva se format naredbe. Ovakva naredba zauzima 12 okteta i 4 bita. U praksi je dobro da naredba zauizima cijeli broj okteta, u ovom primjeru 13, pa se polje operacijskog koda proširuje za dodatna četiri bita i naredba sada ima sljedeći format:

Op. kod

Adresa rezultata Adresa operanda 1 Adresa operanda 2

8 bita 32 bita 32 bita 32 bita

104 bita

Ovim je definiran prikaz varijabli i naredbi u memoriji računala. Slijedi opis izvoñenja naredbe.

1.3. Izvoñenje naredbi – princip rada procesora

Kako je već prije opisano sve naredbe i podaci zapisani su u binarnom obliku u memoriji računala. Da bi izveo operaciju procesor mora imati informaciju gdje se nalazi naredba koju treba izvesti, odnosno njenu adresu. Tu adresu procesor treba imati u jednom zasebnom spremniku. Kada se s te adrese dohvati naredba procesor je interno pohrani da bi mogao kasnije izvesti operaciju. Za očekivati je da se sljedeća naredba koju treba izvesti nalazi neposredno iza naredbe koja se trenutno izvodi. Zato se sadržaj spremnika koji sadrži adresu naredbe koju treba izvesti inkrementira za veličinu naredbe.

Sukladno namjeni spremnik u kojem je pohranjena adresa sljedeće naredbe koju treba izvesti, a koji se nakon dohvata naredbe inkrementira da pokazuje na sljedeću naredbu se naziva programsko brojilo (program counter) skr. PC. Spremnik u koji se privremeno pohrani naredba dok se operacija ne izvede naziva se spremnik naredbe (instruction register) skr. IR.

Korak prebacivanja naredbe iz memorije u procesor i priprema za dohvat sljedeće naredbe naziva se dohvat naredbe.

Nakon što je naredba iz memorije prebačena u procesor, procesor mora izvesti naredbu. Kao prvi korak izvoñenja naredbe je dohvat prvog operanda s adrese koja je sastavni dio naredbe te njegova privremena pohrana u procesor. Sljedeći korak je dohvat drugog operanda. Kad su u operandi dohvaćeni slijedi izvoñenje operacije temeljem operacijskog koda. Procesor mora imati zaseban sklop za izvoñenje aritmetičkih i logičkih operacija koji se naziva aritmetička i

logička jedinica (arithmetical and logical unit) skr. ALU. Nakon što se izvede operacija rezultat se privremeno pohrani u jedan spremnik. Zadnji korak je upis rezultata natrag u memoriju na adresu odreñenu naredbom.

Korak dohvata operanda, izvoñenja operacije te pohrana rezultata u memoriju naziva se izvoñenje naredbe.

Cijeli ciklus sastoji se od dva koraka: dohvata naredbe (fetch) i koraka izvoñenja naredbe

(execute).

Page 11: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Cijeli postupak prikazan je na primjeru jednostavne aritmetičke naredbe u C-u:

int x = 20, y = 30, z = 10, rez; rez = x + y – z;

Operandi x, y, z i rez zauzimaju po svaka po četiri uzastopne memorijske lokacije. Kao primjer uzeti će se da je:

adr x ≡ 100 adr y ≡ 104 adr z ≡ 108 adr rez ≡ 112

Memorijske lokacije koje zauzima x, y i z se inicjaliziraju na zadane vrijednosti.

Aritmetička naredba izvodi se u dva koraka:

rez = x + y; rez = rez - z;

Sukladno Tablica 1.1 u kojoj je dan primjer operacijskih kodova naredbe se kodiraju na način:

Op. kod + Adr, rez. rez Adr, op1. x Adr, op2. y

rez = x + y; 0 112 100 104 Op. kod - Adr, rez. rez Adr, op1. rez Adr, op2. z

rez = rez – z; 1 112 112 108

Početno stanje procesora prikazano je na sljedećoj slici:

Slika 1.3 Početno stanje računala prije nego se pokrene izvoñenje naredbi.

Izvoñenje programa počinje od adrese 0 koja je zapisana u programskom brojilu PCu. Sa adrese 0 13 okteta se prebaci u spremnik naredbe IR te se programsko brojilo PC inkrementira za 13 da pokazuje na sljedeću naredbu.

Ukoliko se prebacuje oktet po oktet tada ova faza traje 13 taktova.

Page 12: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

0

12

100

MEMORIJA

PROCESOR

13

25

103104

107108

111112

115

x

y

z

rez

20

30

10

0

0 112 100 104

Op.

code

adr.

rez

adr.

op1

adr.

op2

13PC

IR

ALU

0 112 100 104

1 112 112 108

Slika 1.4 Dohvat prve naredbe

Ovim je završena faza dohvata naredbe. Slijedi faza izvoñenja naredbe.

Temeljem operacijskog koda zaključuje se da se radi o operaciji za zbrajane, te slijedi dohvat prvog operanda. Adresa operanda (100) upisana je u trećem polju spremnika naredbe IR. S te adrese operand se prebacuje u privremeni spremnik procesora. Neka je za dekodiranje naredbe potreban jedan takt, a za dohvat četiri okteta još četiri takta. Ova faza prikazana je sljedećom slikom

0

12

100

MEMORIJA

PROCESOR

13

25

103104

107108

111112

115

x

y

z

rez

20

30

10

0

0 112 100 104

Op.

code

adr.

rez

adr.

op1

adr.

op2

13PC

IR

20

ALU

0 112 100 104

1 112 112 108

Slika 1.5 Dohvat prvog operanda prve naredbe.

Page 13: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Slijedi dohvat drugog operanda. Adresa operanda (104) upisana je u četvrtom polju spremnika naredbe IR. S te adrese operand se prebacuje u privremeni spremnik procesora. Za dohvat četiri okteta potrebno je četiri takta. Ova faza prikazana je sljedećom slikom:

0

12

100

MEMORIJA

PROCESOR

13

25

103104

107108

111112

115

x

y

z

rez

20

30

10

0

0 112 100 104

Op.

code

adr.

rez

adr.

op1

adr.

op2

13PC

IR

20 30

ALU

0 112 100 104

1 112 112 108

Slika 1.6 Dohvat drugog operanda prve naredbe.

Nakon što su dohvaćeni operandi izvodi se operacija. Rezultat operacije upisuje se u privremeni spremnik. Neka je za izvoñenje operacije potrebno jedan takt.

0

12

100

MEMORIJA

PROCESOR

13

25

103104

107108

111112

115

x

y

z

rez

20

30

10

0

0 112 100 104

Op.

code

adr.

rez

adr.

op1

adr.

op2

13PC

IR

20 30

50

ALU

0 112 100 104

1 112 112 108

Slika 1.7 Izvoñenje operacije.

Page 14: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Posljednji korak u izvoñenju naredbe je pohrana rezultata na adresu (112) specificiranu drugim poljem naredbe. Neka je za prebacivanje četiri okteta iz procesora u memoriju potrebno četiri takta.

0

12

100

MEMORIJA

PROCESOR

13

25

103104

107108

111112

115

x

y

z

rez

20

30

10

50

0 112 100 104

Op.

code

adr.

rez

adr.

op1

adr.

op2

13PC

IR

20 30

50

ALU

0 112 100 104

1 112 112 108

Slika 1.8 Pohrana rezultata prve naredbe natrag u memoriju.

Ovim je završen cijeli ciklus dohvata i izvoñenja prve naredbe.

U sljedećoj tablici dan je rezime trajanja dohvata i izvoñenja naredbe.

faza trajanje

(takt)

dohvat naredbe dohvat naredbe 13 okteta inkrementiranje PC-a

13

dekodiranje 1 dohvat 1. operanda 4 dohvat 2. operanda 4 ALU operacija 1

izvoñenje naredbe

pohrana rezultata 4 UKUPNO 27

Iz tablice može se zaključiti da cijeli ciklus relativno dugo traje, ukupno 27 taktova. Takoñer. veliki dio vremena troši se na dohvat naredbe čemu je razlog relativno velika naredba 13 okteta.

Slijedi izvoñenje druge naredbe. Ciklus dohvata naredbe identičan je kao i za prvu naredbu. Slijedi dekodiranje naredbe i dohvat operanada, izvoñenje operacije te pohrana rezultata. Cijeli ciklus prikazan je na sljedećoj slici:

Page 15: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Slika 1.9 Ciklus izvoñenja druge naredbe.

Ovim je razrañen jedan mogući princip rada računala. U ovom konceptu operandi se dohvaćaju direktno iz memorije te se rezultat takoñer pohranjuju natrag u memoriju. Naredba sadrži operacijski kod te tri adrese (dva operanda i rezultat).

Page 16: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Cilj je prilikom projektiranja računala dobiti računalo koje je na istoj tehnološkoj osnovi:

• brže • bolje koristi resurse računala (memoriju i spremnike procesora)

Analizirajući rješenje predloženo prethodnim tekstom mogu se uočiti sljedeći nedostaci:

1. naredba je relativno velika pa dohvat naredbe relativno dugo traje 2. nakon što je izvedena prva naredba, njen rezultat koji je ujedno u operand sljedeće

naredbe prvo se vrati u memoriju, a onda u sljedećoj naredbi ponovo iz memorije vraća u procesor

Drugi nedostatak relativno se često dešava posebice kod složenih aritmetičkih izraza koji rezultiraju nizom kumulativnih naredbi (rezultat prethodne je operand sljedeće). U ovom slučaju poboljšanje je lako napraviti na način da se rezultat umjesto da se upisuje u memoriju proslijedi kao rezultat sljedećoj naredbi. Rezultat operacije upisuje se u poseban spremnik u kojem automatski postaje jedan operand sljedeće naredbe. Kako se u ovom spremniku kumuliraju rezultati naredbi on se naziva akumulator. Navedeno rezultira sljedećim konceptom procesora:

0

100

MEMORIJA

PROCESOR

103104

107108

111112

115

x

y

z

rez

20

30

10

0

PC

IR

ALU

4

8

12

16

op1/rez op2

Acc

Slika 1.10 Koncept procesora s akumulatorom

Kako u predloženom konceptu procesora jedan operand i rezultat se obavezno nalaze u akumulatoru tako njih nije potrebno specificirati u naredbi. Na ovaj način naredba poprima oblik:

Op. kod

Adresa rezultata

8 bita 32 bita

Naredba je sada samo 40 bita odnosno 5 okteta. Na ovaj način napravljena je ušteda u korištenju memorije, a i potrebno je znatno kraće vrijeme dohvata naredbe. Takoñer, nije potrebno dohvaćati jedan operand te spremati rezultat natrag u memoriju. Sukladno navedenome trajanje izvoñenja naredbe iznosilo bi:

Page 17: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

faza trajanje

(takt)

dohvat naredbe dohvat naredbe 5 okteta inkrementiranje PC-a

5

dekodiranje 1 dohvat 2. operanda 4 izvoñenje naredbe ALU operacija 1

UKUPNO 11

Usporedbom s prethodnim konceptom procesora s tri adrese, kod procesora s akumulatorom izvodi se naredba 27/11 ≈ 2,5 puta brže.

Da li je procesor temeljen na akumulatoru stvarno toliko brži?

Odgovor na ovo pitanje može se dobiti ukoliko se analizira izvoñenje istog programskog odsječka kao u prethodnom rješenju na ovom procesoru.

int x = 20, y = 30, z = 10, rez; rez = x + y – z;

gdje su varijable x, y, z i rez na istim adresama kao u prethodnom primjeru.

Procesor s akumulatorom očekuje u akumulatoru jedan operand. Da bi se mogao inicijalno napuniti akumulator s prvim operandom nekog kumulativnog računa potrebno je uvesti zasebnu naredbu koja sadržaj memorijske lokacije upisuje u akumulator. Zato se uvodi naredba load koja prebacuje sadržaj memorijske lokacije u akumulator.

Na sličan način kad se završi kumulativni račun potrebno je rezultat vratiti u memoriju. Zato se uvodi naredba store koja prebacuje sadržaj akumulatora u zadanu memorijsku lokaciju.

Naredbe load i store su naredbe za prijenos podataka. Ove naredbe nemaju AL operaciju i zato traju za jedan takt manje od AL operacija.

Zadani primjer na procesoru s akumulatorom izvodio bi se preko sljedećeg niza naredbi:

naredba opis trajanje 1. load 100 sadržaj x adr. 100 u akumulator, acc = 30 10 2. zbroji 104 acc = acc + y , acc = 50 11 3, oduzmi 108 acc = acc - z , acc = 40 11 4, store 112 sadržaj acc na adresu z (112), z = 40 10 UKUPNO 42

Na procesoru koji je temeljen na naredbama s tri adrese izvoñenje ovog primjera trajalo je 2*27 = 54 takta, a na procesoru temeljenom na akumulatoru 42. Slijedom navedenog ubrzanje koje se dobiva novim konceptom je svega 54/42 odnosno oko 25%. Slično razmatranje vrijedi i za korištenje memorije budući da procesor s akumulatorom zahtjeva četiri naredbe te program zauzima 20 okteta usporedbi s 26 okteta kod prvobitne varijante (30% uštede).

Navedena razmatranja vode zaključku da je dobit procesora s akumulatorom to veća ukoliko su kumulativni izrazi veći, dok ukoliko nema kumulativnog računanja zbog potrebe učestalog donosa operanda u akumulator i pohrane rezultata u memoriju ovakav procesor može iskazati čak i lošije performanse.

Izvoñenje naredbi na procesoru s akumulatorom prikazano je sljedećom slikom:

Page 18: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

0

100

MEMORIJA

PROCESOR

103104

107108

111112

115

x

y

z

rez

20

30

10

0

0PC

IR

ALU

4

op1/rez op2

Acc

5

910

1415

19

load 100

zbroji 104

oduzmi 108

store 112load 100

5

0

100

MEMORIJA

PROCESOR

103104

107108

111112

115

x

y

z

rez

20

30

10

0

5PC

IR

20

ALU

4

op1/rez op2

Acc

5

910

1415

19

load 100

zbroji 104

oduzmi 108

store 112load 100

0

100

MEMORIJA

PROCESOR

103104

107108

111112

115

x

y

z

rez

20

30

10

0

5PC

IR

20

ALU

4

op1/rez op2

Acc

5

910

1415

19

load 100

zbroji 104

oduzmi 108

store 112zbroji 104

10

0

100

MEMORIJA

PROCESOR

103104

107108

111112

115

x

y

z

rez

20

30

10

0

10PC

IR

20 30

ALU

4

op1/rez op2

Acc

5

910

1415

19

load 100

zbroji 104

oduzmi 108

store 112zbroji 104

0

100

MEMORIJA

PROCESOR

103104

107108

111112

115

x

y

z

rez

20

30

10

0

10PC

IR

50 30

ALU

4

op1/rez op2

Acc

5

910

1415

19

load 100

zbroji 104

oduzmi 108

store 112zbroji 104

0

100

MEMORIJA

PROCESOR

103104

107108

111112

115

x

y

z

rez

20

30

10

0

10PC

IR

50 30

ALU

4

op1/rez op2

Acc

5

910

1415

19

load 100

zbroji 104

oduzmi 108

store 112oduzmi 108

15

Page 19: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

0

100

MEMORIJA

PROCESOR

103104

107108

111112

115

x

y

z

rez

20

30

10

0

15PC

IR

50 10

ALU

4

op1/rez op2

Acc

5

910

1415

19

load 100

zbroji 104

oduzmi 108

store 112oduzmi 108

0

100

MEMORIJA

PROCESOR

103104

107108

111112

115

x

y

z

rez

20

30

10

0

15PC

IR

40 10

ALU

4

op1/rez op2

Acc

5

910

1415

19

load 100

zbroji 104

oduzmi 108

store 112oduzmi 108

0

100

MEMORIJA

PROCESOR

103104

107108

111112

115

x

y

z

rez

20

30

10

0

15PC

IR

40 10

ALU

4

op1/rez op2

Acc

5

910

1415

19

load 100

zbroji 104

oduzmi 108

store 112store 112

20

0

100

MEMORIJA

PROCESOR

103104

107108

111112

115

x

y

z

rez

20

30

10

40

20PC

IR

40 10

ALU

4

op1/rez op2

Acc

5

910

1415

19

load 100

zbroji 104

oduzmi 108

store 112store 112

Slika 1.11 Izvoñenje programskog odsječka na procesoru s akumulatorom.

Primjer:

Usporedi izvoñenje sljedećeg programskog odsječka na oba tipa procesora: int x = 10, y = 20, z = 30, a = 5, b = 15, c = 25, rez; rez = (y + z)*x + (b + c)*a;

Rješenje: Procesor s tri adrese Procesor s akumulatorom

naredbe trajanje naredbe trajanje

temp = y + z 26 load y 10 temp = temp*x 26 zbroji z 11 rez = b + c 26 pomnoži x 11 rez = rez*a 26 store rez 10 rez = rez + temp 26 load b 10 zbroji c 11 pomnoži a 11 zbroji rez 11 store rez 10 130 95

Page 20: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Procesor s akumulatorom približno je 35% brzi od procesora s tri adrese.

Ali, iz navedenog primjera može se vidjeti da ukoliko bi procesor imao više akumulatora, u kojima bi bilo moguće pohraniti meñurezultate proračuna dobilo bi se još veće ubrzanje. Na tragu ovog zaključka iznjedrio se novi koncept procesora. Procesor sadrži više spremnika u koje se privremeno pohranjuju operandi i rezultati operacija. Sve aritmetičke i logičke operacije izvode se samo nad sadržajima spremnika te se rezultat operacije pohranjuje samo u jedan od spremnika. Operandi se u spremnike donose pomoću load naredbe, a rezultati se upisuju u memoriju pomoću store naredbe. Ovakav koncept procesora naziva se procesor sa

spremnicima opće namjene.

Procesor sa 32 spremnika opće namjene prikazan je sljedećom slikom:

0

100

MEMORIJA

PROCESOR

103104

107108

111112

115

x

y

z

rez

20

30

10

0

PC

IR

4

8

12

16

ALU

R0R1R2R3

R31

Slika 1.12 Procesor sa spremnicima opće namjene

Aritmetička naredba ovakvog procesora mora sadržavati informacije o operaciji te spremnicima u kojima se nalaze operandi te spremniku u koji se pohranjuje rezultat. Kako je spremnika u ovom primjeru svega 32 za njihovo adresiranje potrebno je 5 bita. Sukladno navedenome format naredbe je:

Op. kod Adresa spremnika

rezultata Adresa spremnika

operanda 1 Adresa spremnika

operanda 2 5 bita 5 bita 5 bita 5 bita

20 bita

Ovakav koncept procesora ima još kraću naredbu koja u osnovi zauzima svega tri okteta.

Izvoñenje primjera kojim su opisani principi rada prethodna dva modela procesora na procesoru sa spremnicima opće namjene prikazan je sljedećim slikama:

Page 21: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,
Page 22: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Slika 1.13 Izvoñenje programskog odsječka na procesoru sa spremnicima opće namjene.

Page 23: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Procjena vremena izvoñenje naredbe na procesoru sa spremnicima opće namjene prikazano je u sljedećoj tablici:

faza trajanje

(takt)

dohvat naredbe dohvat naredbe 3 okteta inkrementiranje PC-a

3

dekodiranje 1 dohvat operanda 1 izvoñenje naredbe ALU operacija 1

UKUPNO 6

Ova analiza pokazuje da su ovakvi procesori približno duplo brži od procesora s akumulatorom, dok je broj naredbi da se izvede proračun približno isti.

Temeljem provedenih razmatranja ovaj koncept procesora iskristalizirao se kao najbolje rješenje koje će se daljnje razrañivati u ovom udžbeniku.

Ovdje je važno i potrebno još jednom napomenuti da su procjene broja taktova odnosno vremena izvoñenja naredbi rañene temeljem pretpostavke da procesor dohvaća iz memorije oktet po oktet (osam bitovna podatkovna sabirnica). Ukoliko procesor dohvaća više okteta u jednom taktu ovi podaci će se promijeniti. Takoñer i vrijeme izvoñenja naredbe varira u ovisnosti o realizaciji procesora što će biti naknadno obrañeno. Unatoč svemu navedenome ove procjene su pomogle da se na odreñeni način kvantitativno usporede ponuñena rješenja.

1.4. Načini dohvata operanda – adresni modovi

U dosadašnjim razmatranjima obrada se radila samo s varijablama koje su odreñene adresom memorijske lokacije na koju se sadržaj (vrijednost varijable) zapisuje. Programeri imaju potrebu specificirati operande operacija i na drugačije načine.

Različiti načini pristupa operandima pokazani su na sljedećem primjeru programskog odsječka u C-u:

#define N 10 int i, *pokazivac, podaci[N]; struct student { char ime[20], prezime[20]; int godina; } Ante; …. pokazivac = podaci; for (i = 0; i < N; i++) podaci[i] = i+5; ….

Ovaj programski odsječak pokazuje da su operandi definirani kao konstante, varijable pokazivači, polja, strukture. Postavlja se pitanje kako pristupati ovakvim podacima, odnosno kako bi procesor trebao pristupati ovakvim podacima.

Razmotrimo primjer kada je jedan od operanada konstanta. Konstantu je moguće zapisati u naredbi u polje predviñeno za adresu operanda ali sada se postavlja pitanje kako razlikovati da se radi o konstanti a ne operandu.

Page 24: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Primjer:

int x = 20, y = 30, rez; rez = x + y + 104;

x ≡ adr 100, y ≡ adr 104, rez ≡ adr 108

Programski odsječak izvodi se na način:

rez = x + y rez = rez + 104

Sukladno Tablica 1.1 u kojoj je dan primjer operacijskih kodova naredbe se kodiraju na način:

Op. kod + Adr, rez. rez Adr, op1. x Adr, op2. y

rez = x + y; 0 108 100 104

Op. kod + Adr, rez. rez Adr, op1. rez operand 2 104

rez = rez + 104; 0 108 108 104

Postavlja se pitanje kako razlikovati korištenje drugog operanda, odnosno u prvoj naredbi vrijednost operanda se nalazi na adresi 104, a u drugoj je operand vrijednost 104 i zapisana je direktno u naredbi. Ovo je moguće jedino ukoliko razlikujemo ova dva tipa zbrajanja. To znači da će operacija u zavisnosti o kombinacije operanada imati različiti operacijski kod.

Naredba 0p1 op2 Operacijski kod

Operacijski kod binarno

zbrajanje var var 0 0000 0000 oduzimanje var var 1 0000 0001 množenje var var 2 0000 0010 dijeljenje var var 3 0000 0011 ostatak dijeljenja var var 4 0000 0100 I nad bitovima var var 5 0000 0101 ILI nad bitovima var var 6 0000 0110 EXOR nad bitovima var var 7 0000 0111 NE nad bitovima var var 8 0000 1000 ….. zbrajanje var konst 16 0001 0000 oduzimanje var konst 17 0001 0001 množenje var konst 18 0001 0010 dijeljenje var konst 19 0001 0011 …..

Nakon ovakvog odabira operacijskih kodova naredbe se prikazuju na sljedeći način

Op. kod + Adr, rez. rez Adr, op1. x Adr, op2. y

rez = x + y; 0 108 100 104

Op. kod + Adr, rez. rez Adr, op1. rez operand 2 104

rez = rez + 104; 16 108 108 104

Page 25: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Slika 1.14 Operand (varijabla) specificiran preko memorijske adrese.

Slika 1.15 Operand (konstanta) specificiran u okviru .naredbe

Za primijetiti je da ovakvim rješenjem dohvat konstante brži od dohvata varijable koja zahtjeva dodatne pristupe memoriji.

Slična razmatranja mogu se provesti i za pokazivače. Pokazivač je varijabla čiji sadržaj je adresa na kojoj se nalazi operand.

Na sljedećoj slici prikazan je dohvat operanda prikazanog kao pokazivač.

Page 26: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Slika 1.16 Operand (pokazivač) specificiran u okviru .naredbe.

Za razliku od konstante, pokazivač može biti ili samo prvi operand, ili samo drugi operand, ili oba operanda, rezultat, odnosno bilo koja kombinacija operanada i rezultata.

Polja i strukture zapisuju se u memoriju početno od neke bazne adrese pa nadalje element po element. Na sljedećoj slici prikazan je zapis polja u memoriji kao i način pristupa pojedinačnom članu polja.

0

1

10100 = podaci

N-1

MEMORIJA

20104

5108

podaci[0]

podaci[1]

podaci[2]

7112

podaci[3]

35132

podaci[8]

35136

podaci[9]

baza = 100

+

indeks x veličina

elementa

-10116

podaci[4]

pom

ak

Slika 1.17 Način zapisa polja u memoriji kao i pristup članu polja

Za pristup članovima polja, a slično vrijedi za strukturu dobro je uvesti zasebni spremnik u koji će se zapisati baza, a pomak može biti konstanta koja se zapiše u okviru naredbe.

Page 27: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

0

1

10100 = podaci

N-1

MEMORIJA

20104

5108

podaci[0]

podaci[1]

podaci[2]

7112

podaci[3]

35132

podaci[8]

35136

podaci[9]

-10116

podaci[4]

PROCESOR

... ... ... 16

Op.

coderez op1 op2

100

+ adresa 116

baza

pomak

Slika 1.18 Način pristupa operandu preko baze i pomaka

Način pristupa operandu, odnosno pohrane rezultata, naziva se adresni mod. Različiti adresni modovi prikazani su i objašnjeni na sljedećim slikama.

Adresiranje u kojem je operand sastavni dio naredbe, slučaj kada se radi o konstanti, naziva se neposredno adresiranje (immediate addressing) i prikazano je sljedećom slikom

Slika 1.19 Operand kao konstanta koja je sastavni dio naredbe neposredno adresiranje

(immediate addressing)

Neposrednim adresiranjem može se specificirati samo operand.

Pristup operandima, ali i rezultatu preko memorijske adrese (varijablama) naziva se direktno

adresiranje (direct addressing) i prikazano je sljedećom slikom.

Page 28: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Slika 1.20 Operandu ili rezultatu se pristupa preko adrese(varijabla) direktno adresiranje

(direct addressing)

Indirektan pristup operandu ili rezultatu bilo posredno preko memorijske adrese ili spremnika (pokazivač) naziva se indirektno adresiranje (indirect addressing).

Slika 1.21 Operandu ili rezultatu se pristupa indirektno pomkoću memorijske lokacije(pokazivač) indirektno adresiranje (indirect addressing)

Slika 1.22 Operandu ili rezultatu se pristupa indirektno pomoću spremnika (pokazivač) indirektno adresiranje pomoću spremnika (indirect register addressing)

Page 29: 1. Zahtjevi na arhitekturu digitalnog računala. semestar/Arhitektura... · Za binarno prikazivanje informacija je potreban najveći broj elemenata u usporedbi s ostalim prikazima,

Pristup operandima ili rezultatu računajući adresu kao baza + pomak, Slika 1.18, naziva se bazno adresiranje (base addressing). Koristi se za pristup složenim tipova podataka.

Nakon svih ovih razmatranja za uočiti je da za svaku operaciju su moguće brojne kombinacije pristupa operandima i rezultatu (adresnih modova) što može rezultirati velikim brojem operacija. Temeljem navedenoga prisutna su dva različita koncepta računala.

Prvi koncept je podržati što veći broj adresnih modova što rezultira velikom brojem naredbi. Ovakav koncept naziva se računalo s složenim skupom naredbi (Complex Instruction Set

Computer) skr. CISC.

Suprotan koncept je podržati samo ograničeni broj adresnih modova što rezultira malim brojem naredbi. Ovakav koncept naziva se računalo s malim skupom naredbi (Reduced

Instruction Set Computer) skr. RISC.


Top Related