arhitektura racunala - skripta

511
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA vježbe 1 Asistent: Goran Kraljević, dipl.ing.rač. Nastavnik: Prof.dr.sc. Sven Gotovac ARHITEKTURA RAČUNALA FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI SVEUČILIŠTE U MOSTARU

Upload: ismar-kunc

Post on 20-Feb-2015

1.592 views

Category:

Documents


27 download

TRANSCRIPT

Page 1: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 1

Asistent: Goran Kraljević, dipl.ing.rač.

Nastavnik: Prof.dr.sc. Sven Gotovac

ARHITEKTURA RAČUNALA

FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI

SVEUČILIŠTE U MOSTARU

Page 2: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 2

Web

http://www2.fsr.ba/nastava/adr

Pitanja, primjedbe, dogovor za konzultacije ...

To: [email protected]

Subject: ADR

O predmetu

Page 3: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 3

Polaganje ispita kroz kolokvije ...

1. kolokvij 100 bodova

2. kolokvij 100 bodova

Vježbe (asembler Intel 8086) 100 bodova

Ukupno : 300 bodova

Potrebno je osvojiti min. 50 bodova (50%) iz svakog kolokvija i min. 50 bodova iz vježbi da bi se uspješno položio ispit iz “Arhitekture digitalnog računala”.

Svi studenti koji polože ispit putem kolokvija oslobođeni su usmenog dijela ispita.

Page 4: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 4

U v o d

Page 5: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 5

Funkcijski model von Neumannova računala

Page 6: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 6

Vrste sabirnica

• Dijelovi računala su povezani pomoću posebne skupine vodiča koji se nazivaju sabirnice (engl. Bus)

• Sabirnice su redovito izvedene kao vodiči na površini tiskane pločice, a izvedene su i na priključnice (konektore) unutar računala kako bi se mogli priključiti dodatni sklopovi.

• S obzirom na vrstu informacija koje prenose postoje tri osnovne vrste sabirnica:

Sabirnica podataka (engl. Data Bus)

– je skup vodiča za prijenos električnih signala koji predočuju podatke.

– Broj tih vodiča redovito odgovara količini bita koju odjednom može obraditi CPU. Tako, npr. 32-bitna računala redovito imaju sabirnicu podataka koja se sastoji od 32 vodiča.

Adresna sabirnica (engl. Address Bus)

– je skup vodiča za prijenos električnih signala koji predočuju adrese, a njihov broj ovisi o građi računala (npr. 20 linija).

Nadzorno-upravljačka sabirnica (engl. Control Bus)

– je skup vodiča za prijenos električnih signala koji predočuju nadzorne i upravljačke signale, a njihov broj i funkcija pojedinog vodiča razlikuje se od računala do računala.

Page 7: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 7

Ciklus izvoĎenja operacije(čitanje podataka iz memorije)

Procesor (CPU)

Upravljačka sabirnica

(upravljački signali)

Memorija U/I

uređaji

Registri

ALU

Upravljačka

jedinica

Adresna sabirnica

(adresa mem.lokacije)

Podatkovna sabirnica

(podatak iz memorije)

Page 8: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 8

Ciklus izvoĎenja operacije(zapisivanje podataka u memoriju)

Procesor (CPU)

Upravljačka sabirnica

(upravljački signali)

Memorija U/I

uređaji

Registri

ALU

Upravljačka

jedinica

Adresna sabirnica

(adresa mem.lokacije)

Podatkovna sabirnica

(podatak u memoriju)

Page 9: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 9

Vrste sabirnica

• Širina podatkovne sabirnice podataka (npr. 32 bita, 64 bita) utiče na količinu podataka koja se u jednom memorijskom ciklusu može prenijeti preko podatkovne sabirnice.

Ukoliko je širina podatkovne sabirnice npr. 32-bita onda je u jednom memorijskom ciklusu moguće preko podatkovne sabirnice prenijeti 32 bita podataka (4B).

Ukoliko je širina podatkovne sabirnice npr. 64-bita onda je u jednom memorijskom ciklusu moguće preko podatkovne sabirnice prenijeti 64 bita podataka (8B).

• Širina adresne sabirnice podataka (npr. 32 bita, 36 bita) utiče na veličinu izravno adresirljivog memorijskog prostora.

Ukoliko je širina adresne sabirnice npr. 32-bita onda je moguće izravno adresirati 232 memorijskih lokacija. Ukoliko je veličina jedne memorijske lokacije 8 bita (1B), onda možemo reći da je ukupna količina izravno adresirljivog memorijskog prostora 232 B, odnosno 4 GB.

Ukoliko je širina adresne sabirnice npr. 36-bita onda je moguće izravno adresirati 236 memorijskih lokacija. Ukoliko je veličina jedne memorijske lokacije 8 bita (1B), onda možemo reći da je ukupna količina izravno adresirljivog memorijskog prostora 236 B, odnosno 64 GB.

Page 10: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 10

Isječak iz Intelove porodice procesora

Tip procesora Godina Data/Adress Bus Br. tranzistora

4004 1971. 4/12 bit 2.250

8008 1972. 8/14 bit 2.500

8080 1974. 8/16 bit 5.000

8086 1978. 16/20 bit 29.000

286 1982. 16/24 bit 120.000

386 1985. 32/32 bit 275,000

486 DX 1989. 32/32 bit 1,180.000

Pentium 1993. 64/32 bit 3,100.000

Pentium Pro 1995. 64/36 bit 5,500.000

Pentium II 1997. 64/36 bit 7,500.000

Pentium III 1999. 64/36 bit 24,000.000

Pentium 4 2000. 64/36 bit 42,000.000

Page 11: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 11

Mooreov zakon

• Gordon Moore, suosnivač Intela• 1965. uočava trend – dupliranje broja tranzistora po kvadratnom inču

svakih godinu dana (4 godine nakon izuma); danas – svakih 18 mjeseci

Page 12: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 12

Glavni dijelovi procesora ...

Page 13: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 13

Hijerarhijska organizacija memorije

Page 14: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 14

Hijerarhijska organizacija memorije

Page 15: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 15

Pentium – hijerarhijske razine memorije

Page 16: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 16

Matična ploča za Pentium 4

Page 17: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 17

U/I sučelja

Page 18: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 18

Uvod u asembler

Page 19: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 19

Različiti pogledi na računalo

will serve you by providing that understanding.computers it is our sincerest hope that this book Computer Engineering, or some other aspect of your career objective is in Computer Science, that you fully understand the machine. Whether at the gate, ISA, and the system architecture levelis when you understand how a machine functions leads to an efficient, effective computer design. It a computer system from each the three perspectives The intellectual synthesis that comes from viewing

1.10 Looking Ahead

D Q

clk

32 3232

PCout

B bus

clk

PCin

A bus

Viđenje programskog brojilasa stajališta programera

PC

31 0

Viđenje programskog brojila sastajališta projektanta logičkih vrata

Korisnički pogled na računalo

Pogled projektanta arhitekture računala

Pogled programera Pogled projektanta

logičkih sklopova

Page 20: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 20

Hijerarhijski model arhitekture računala

Page 21: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 21

Pogled na računalo programera u simboličkom jeziku

Page 22: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 22

Pogled na računalo programera u simboličkom jeziku

Programer koji programira u strojnom (odnosno simboličkom jeziku)izrađuje temeljnu programsku podršku potrebnu kako bi procesor mogaoobavljati svoje zadatke.

• Strojni jezik (engl. Machine language)je skup temeljnih naredbi koje procesor može izvoditi, a izražen je kao niz 0 i 1.

• Simbolički jezik (engl. Assembly language)je alfanumerički ekvivalent strojnog jezika. Programeru je puno lakše koristiti

skraćenicu naredbe koje ga podsjeća na operaciju koju procesor mora izvesti nego binarni zapis iste naredbe.

• Program za prevoĎenje simboličkog jezika (engl. Assembler)je program koji translatira (preslikava jedan na jedan) simbolički jezik u strojni

jezik procesora.

Napomena: Svi viši programski jezici (npr. C, C++, ...) su prenosivi s procesora na procesor, dok su strojni odnosno simbolički jezici vezani uz odreĎeni procesor.

Page 23: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 23

Razine programskih jezika

• Strojni jezik (engl. Machine language)

- jedino što računalo “može” razumijeti- sastoji se od kombinacija 0 i 1- direktno povezan s arhitekturom računala- efikasan, ali je u njemu teško programirati

• Simbolički jezik (engl. Assembly language)

- također direktno ovisi o arhitekuri računala- napredak jer se umjesto 0 i 1 koriste mnemonički kodovi- treba se prevesti u strojni kod prije izvršenja

• Programski jezici više razine (engl. High level languages)

- dobro definirani, nalikuju pravom jeziku (uglavnom engleskom)- fundamentalna razlika je u tome što više nisu vezani uz arhitekturu računala

Page 24: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 24

Razine programskih jezika – Primjer

Programski jezik više razine:

a=b+c;

Asembler:

ld r6,24ld r7,28add r5,r6,r7st r5,32

Strojni oblik:

00001 00110 00000 00000000000011000

00001 00111 00000 00000000000011100

01100 00101 00110 00111 000000000000

00011 00101 00000 00000000000100000

Page 25: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 25

Prikaz informacija u računalu

Page 26: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 26

Prikaz informacija u računalu

Brojevni sustavi

• Binarni brojevni sustav

• Oktalni brojevni sustav

• Heksadecimalni brojevni sustav

Pretvaranje brojeva između različitih brojevnih sustava

Aritmetičko – logičke operacije

• Zbrajanje, oduzimanje

• Aritmetika dvojnog komplementa

Prikaz brojeva i znakova u računalu

• Prikaz cijelih brojeva

• Prikaz brojeva u pomičnom zarezu

• Prikaz znakova u računalu

• ASCII kod

Page 27: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 27

Brojevni sustavi

• Je li dekadski sustav prikladan za ugradnju u računalo?

– Trebalo bi načiniti elektronički element koji je u stanju prikazati 10 diskretnih stanja

– Moguće, ali komplicirano i skupo, možda i sporo.

• Jednostavno, brzo, jeftino i pouzdano rješenje: bistabil

– Elektronički element koji je u mogućnosti spremiti dva diskretna stanja

– Pouzdano i neosjetljivo na manje promjene napona. Npr.

0 – 2,5 V znamenka 0

2,51 – 6 V znamenka 1

Page 28: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 28

Binarni brojevni sustav

• Znamenke su 0 i 1, dakle baza brojanja B=2 što određujebinarni brojevni sustav

• Iz engleskog BInary digiT nastalo je ime za najmanju količinu informacije, znamenku binarnog brojevnog sustava BIT.

• Broj od n znamenki u brojevnom sustavu s bazom 2:

– zn-1 ∙ 2n-1 + zn-2 ∙ 2n-2 + ... + z1 ∙ 21 + z0 ∙ 20, zi { 0, 1 }

Page 29: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 29

Registar

• Binarni broj se sastoji od više znamenki (bitova) – tako da za prikaz broja moramo upotrijebiti nekoliko bistabila. Takva grupa bistabila čini registar.

• Registri su sastavni dio svih dijelova računala. Broj bistabila u registru nekog računala određuje njegovu duljinu. Duljina većine registara u nekom računalu je određena duljinom riječi računala.

• Riječ je količina informacija koju računalo može obraditi u jednoj operaciji, pohraniti u memoriju, odnosno dobaviti iz memorije. Najčešće duljine riječi (pa prema tome i registara) su 8, 16, 32 i 64 bita.

QD

dn-1

qn-1

QD

dn-2

qn-2

QD

d0

q0

...

Page 30: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 30

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 = 14

0

14 : 2 = 7

0

7 : 2 = 3

1

3 : 2 = 1

1

1 : 2 = 0

1

Page 31: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 31

Primjer svih sadržaja u registru od tri bita

U registru s 3 bita mogu se prikazati sljedeći brojevi:

Dekadski broj Binarni broj

0 000 0

1 001

2 010

3 011 +1

4 100

5 101

6 110

7 111 23 -1

• Za n=3 dobije se interval [0, 23 - 1], općenito [0, 2n - 1]

• Za n=8 dobije se interval [0, 28 - 1], tj. [0, 255]

Page 32: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 32

Kontrola rezultata u digitalnoj aritmetici

Rezultat operacije u digitalnoj aritmetici može se

provjeravati s da li je:

• Negativan (negative)

• Nula (zero)

• Prekoračio opseg brojeva (overflow)

• Ima prijenos (carry)

• Ostali uvjeti

Page 33: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 33

Kontrola rezultata u digitalnoj aritmetici

• Negativan rezultat (negative)

– Ako je operacija nad cijelim brojevima ispravno provedena, tj.nije došlo do preljeva tada je predznačni rezultat negativan ako i samo ako mu je najznačajniji bit postavljen u 1 (ne vrijedi za kod s posmakom)

• Rezultat je nula (zero)

– Rezultat X=0 ako i samo ako su svi njegovi bitovi 0

• Preljev (overflow)

– Preljev je prekoračenje rezultata računskih operacija u digitalnoj aritmetici van dozvoljenog opsega brojeva

– Ako je došlo do preljeva, rezultat računske operacije je pogrešan

• Prijenos (carry)

– Prijenos označava pojavu bita prijenosa

Page 34: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 34

Zbrajanje binarnih brojeva

• Primjer 2.

111

+ 101

1100

• Primjer 1.

100

+ 10

110

• Zbrajanje u registru s ograničenim brojem bita

1 1 1 1

0 0 0 1

+

1

0 0 1 0

Preljev

(overflow)

Page 35: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 35

Negativni binarni brojevi

• Negativni brojevi se prikazuju tzv. tehnikom dvojnog komplementa.Nule pretvaramo u jedinice, a jedinice u nule (komplement do baze – 1), a zatim tom komplementu dodajemo 1 (komplement do baze – dvojni komplement).

• Primjer: -37 u registru s 8 bita

0 0 1 0 0 1 0 1

1 1 0 1 1 0 1 0

1 1 0 1 1 0 1 1

+ 1

37

-37

0 0 1 0 0 1 0 137

+

0 0 0 0 0 0 0 01

Page 36: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 36

Oduzimanje binarnih brojeva

Operacija 7 - 5 u računalu s registrom od 4 bita obavit će se kao

7 + (-5). Binarni prikaz broja -5 je: 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

Page 37: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 37

Primjer svih sadržaja u registru od tri bita (ako je prvi bit predznak)

U registru s 3 bita, ako je prvi bit predznak mogu se prikazati

sljedeći brojevi:

Dekadski broj Binarni broj

0 000

1 001 -22

2 010

3 011 0 +1

-4 100

-3 101 22 -1

-2 110

-1 111

• Za n=3 dobije se interval [-22, 22 - 1], općenito [-2n-1, 2n-1 - 1]

• Za n=8 dobije se interval [-27, 27 - 1], tj. [-128, 127]

Page 38: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 38

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

– Zapis se može dobiti iz dekadskog sukcesivnim dijeljenjem s 8 i

zapisivanjem ostataka s desna na lijevo, ali i direktno iz binarnog

zapisa grupiranjem po tri znamenke (zdesna nalijevo – lijevo od

decimalne točke, a slijeva nadesno – desno od decimalne točke)

• Primjeri:

36-bitni broj 001 110 000 101 111 001 010 011 111 000 100 001

oktalni ekvivalent 1 6 0 5 7 1 2 3 7 0 4 1

11 001 . 110 01 (2) = 31.62 (8)

3 1 . 6 2

Page 39: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 39

Heksadecimalni 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.

– Zapis se može dobiti iz dekadskog sukcesivnim dijeljenjem s 16 i

zapisivanjem ostataka s desna na lijevo, ali i direktno iz binarnog

zapisa grupiranjem po 4 znamenke (zdesna nalijevo – lijevo od

decimalne točke, a slijeva nadesno – desno od decimalne točke)

• Primjeri:

16-bitni broj 0111 1011 0011 1110

heksadecimalni ekvivalent 7 B 3 E

11001.11001(2) = 1 1001 . 1100 1000 = 19.C8 (16)

1 9 . C 8

Page 40: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 40

Brojevi u različitim bazama

Bin. Dec. Hex. Okt.

0000 0 0 00001 1 1 10010 2 2 20011 3 3 30100 4 4 40101 5 5 50110 6 6 60111 7 7 71000 8 8 101001 9 9 111010 10 A 121011 11 B 131100 12 C 141101 13 D 151110 14 E 161111 15 F 17

Page 41: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 41

Razlomljeni binarni brojevi

• Razlomljeni binarni brojevi sadrže "binarnu točku", analogno decimalnom zarezu, odnosno točki u anglo-američkoj notaciji.

Primjer prikaza 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

Page 42: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 42

Primjer pretvaranja dekadskog razlomka 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.

1.25 = 1 + .25

.25 * 2 1 . 0 1

0.50

.5 * 2

1.0

Page 43: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 43

Množenje s 2n i 2-n

• Binarni broj se množi s potencijama baze 2 tako da se binarna točka pomakne odgovarajući broj mjesta desno ili lijevo, zavisno od toga da li je predznak potencije pozitivan ili negativan.

Na primjer:

1 . 1 1 * 22 = 1 1 11 . 1 1 * 2-2 = 0 . 0 1 1 1

Kako u registar pohraniti točku?

Page 44: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 44

Realni brojevi standardne preciznosti

• IEEE (Institute of Electrical and Electronics Engineers) standard

754 za prikaz realnih brojeva u standardnoj točnosti:

Deklaracija u programskom jeziku C: float

31 30 23 22 0

P Karakteristika Mantisa

• P je predznak ( P=1 negativan, P=0 pozitivan)

• Karakteristika je binarni eksponent + 127 (da se izbjegne prikaz

negativnog eksponenta)

• Mantisa je normalizirana (samo jedan bit ispred binarne točke).

Page 45: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 45

Realni brojevi standardne preciznosti – Primjer

Primjer: Prikazati broj 5.75 kao realni broj

5.7510 = 101.112 * 20 = 1.01112 * 22

• Normalizacijom svakog binarnog broja (osim nule) postiže

se oblik:

1.xxxxx

• Zbog toga se vodeća jedinica ne pohranjuje u računalu i

naziva se skrivenim bitom (hidden bit).

• Time se uštedi jedan bit što povećava preciznost.

Page 46: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 46

Realni brojevi standardne preciznosti – Primjer

• Predznak = 0 (pozitivan broj)

• Binarni eksponent = 2

• Karakteristika K = 2 + 127 = 129 = (1000 0001)2

• Mantisa (cijela) .......................... 1.0111

• Mantisa (bez skrivenog bita) ...... 0111

Rezultat: 0 10000001 01110000000000000000000

ili hex. 0100 0000 1011 1000 0000 0000 0000 0000

4 0 B 8 0 0 0 0

Page 47: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 47

Raspon i preciznost prikazivanja realnih brojeva

• KarakteristikeRaspon karakteristike: K [0,255]

K = 0 rezervirana je za prikaz nule

K = 255 rezervirana je za prikaz

BE = K - 127

Raspon binarnog eksponenta: BE [-126,127]

– Najmanji pozitivni broj 0 koji se može prikazati je:

1.02 * 2 -126 = 1.175494350822*10 -38

a najveći je:

1.111111111111111111111112 * 2127 2128 = 3.402823669209*1038

Page 48: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 48

Realni brojevi dvostruke preciznosti

• Deklaracija u programskom jeziku C: double

63 62 52 51 0

P Karakteristika Mantisa

• P je predznak ( P=1 negativan, P=0 pozitivan)

• Karakteristika je binarni eksponent + 1023 (11 bita)

• Mantisa je normalizirana (52 + 1 bit).

Page 49: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 49

Raspon i preciznost prikazivanja realnih brojeva dvostruke preciznosti

• KarakteristikeRaspon karakteristike: K [0,2047]

K = 0 rezervirana je za prikaz nule

K = 2047 rezervirana je za prikaz

BE = K - 1023

Raspon binarnog eksponenta: BE [-1022,1023]

– Najmanji pozitivni broj 0 koji se može prikazati je:

1.02 * 2 -1022 = 2.225073858507*10 -308

a najveći je:

1.1111.....1111112 * 21023 21024 = 1.797693134862316*10308

Page 50: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 50

Razlika izmeĎu preciznosti i točnosti

• Preciznost (precision)

- broj znamenki koji opisuje neku veličinu

• Točnost (accuracy)

- točnost je bliskost stvarnoj (nepoznatoj) vrijednosti

• Za dovoljnu točnost potrebna je adekvatna preciznost, ali

preciznost ne implicira automatski točnost jer su iskazane

znamenke mogle nastati na temelju npr. pogrešnog

mjerenja.

Page 51: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 51

Prikaz slova i ostalih znakova

• Kombinacijom jedinica i nula – kôdom

• Koliko ima znakova?

– 26 velikih slova engleske abecede

– 26 malih slova engleske abecede

– 10 znamenaka

– operatori, interpunkcije, upravljački znakovi

• Dovoljan je 1 byte

• ASCII (ISO-7 standard): 7 bita za informaciju + 1 bit za paritet

27 = 128 različitih znakova

• Paritet

ako je u informaciji neparan broj bita, bit pariteta postavlja se na 1, inače

na 0 (može i obratno: odd/even parity). Omogućuje otkrivanje jednostruke

pogreške pri prijenosu informacija

Page 52: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 52

ASCII kod

Page 53: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 53

Problem prikaza internacionalnih znakova

• 8-bitni ASCII kôd 28 = 256 različitih znakova

• Naši su znakovi smješteni u područje 128-255

• Osobna računala koja rade pod Windowsima imaju nekoliko načina prikaza naših slova.

– Starije verzije koristile su CE - varijantu za Centralnu i Istočnu Europu. Sada se to postiže automatski odabirom hrvatske tipkovnice, međutim ipak može doći do zbrke jer su u uporabi dva standarda; Central European (Windows 1250) i Central European (ISO 8852).

• 8-bitni ASCII kôd nije dovoljan za prikaz znakova svih jezika u svijetu, a pogotovo za kineska i japanska slova

• UNICODE

1 znak 16 bita 216 = 65536 različitih znakova

Page 54: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 54

UNICODE

Page 55: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 55

Memorija računala (spremnik)

• Skup registara jednake duljine

• Današnja računala: 8-bitni registri – bajtovi (byte)

• Kratica: B

• Veličina spremnika izražava se kao višekratnik od 210 ili 220

210 B = 1024 B = 1 kB

220 B = 1024·1024 B = 1.048.576 B = 1 MB

• Do svakog se bajta može pristupiti direktno, navođenjem rednog broja – adrese.

0

1

2

3

4

...

n-2

n-1

Page 56: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 56

Memorija računala (spremnik)

• Kojim redom pohraniti bajtove 32 bitnog registra u spremnik?

• Dvije mogućnosti:

– oktet najmanjeg značaja (LSB) pohranjuje se na najnižu adresu cijelog podatka – Little Endian

– oktet najvećeg značaja (MSB) pohranjuje se na najnižu adresu cijelog podatka – Big Endian

• PC: Little Endian

Page 57: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 57

Potencije broja 2

20 = 1

21 = 2

22 = 4

23 = 8

24 = 16

25 = 32

26 = 64

27 = 128

28 = 256

29 = 512

210 = 1024 = 1K

211 = 2048 = 2K

212 = 4096 = 4K

213 = 8192 = 8K

214 = 16384 = 16K

215 = 32768 = 32K

216 = 65536 = 64K...

220 = 1048576 = 1024K = 1M...

• Neke potencije broja 2 ...

Page 58: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 58

Pitanja i zadaci za ponavljanje

Page 59: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 59

Pitanja i zadaci za ponavljanje

1) Objasnite osnovnu razliku između računala koji imaju:

• 32-bitnu i 64-bitnu podatkovnu sabirnicu

• 32-bitnu i 36-bitnu adresnu sabirnicu

2) Navedite stanje na vanjskim sabirnicama: adresnoj, podatkovnoj i upravljačkoj sabirnici (sve sabirnice su 32-bitne) pri ciklusu izvođenja:

• čitanja podataka iz memorije (sa mem.lokacije 10000000h, podatak je broj 7)

• zapisivanja podataka u memoriju(na mem.lokaciju 10000000h, podatak je broj 7)

3) Objasnite osnovne razlike između strojnog jezika, simboličkog jezika (asembler) i programskih jezika više razine (npr. C, C#, Java, ...)

Page 60: Arhitektura Racunala - skripta

Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 60

Pitanja i zadaci za ponavljanje

4) Broj 27.75 prikazan decimalno prikažite u binarnom, oktalnom i heksadecimalnom brojevnom sustavu.

5) Broj 7A prikazan heksadecimalno prikažite u binarnom, oktalnom i decimalnom brojevnom sustavu.

6) Na koji se način decimalni broj -11.5 pohranjuje u memoriji računala kao realan broj standardne točnosti. Organizacija riječi u memoriji je Little Endian, a veličina memorijske riječi (memorijske lokacije) je 8 bita (1B).

31 30 23 22 0

Page 61: Arhitektura Racunala - skripta

Organizacija i arhitektura računala

Poglavlje 1- UVOD -

Page 62: Arhitektura Racunala - skripta

Arhitektura i organizacija 1

Arhitektura predstavlja atribute računala vidljive programeruInstrukcijski skup, broj bitova korišten za predstavljanje podatka, I/O mehanizmi, adresne tehnike.npr., postoje li instrukcije za množenje, djeljenje,...?

Organizacija je predstavljena načinom implementacije značajki rač. sustava

Upravljački signali, sučelja, memorijska tehnologija. npr., postoji li HW jedinica za množenje ili je ona implementirana tehnikom ponavljanja operacije zbrajanja?

Page 63: Arhitektura Racunala - skripta

Arhitektura i organizacija 2

Cjelokupnu Intel x86 obitelj karakterizira/dijeli istovjetnu temeljnu arhitekturuIBM System/370 obitelj također karakterizira ista temeljna arhitekturaOvo daje kompatibilnost kôda

U najmanju ruku prema generacijama unazad

Organizacija se razlikuje među različitim verzijama računalnih sustava

Page 64: Arhitektura Racunala - skripta

Struktura i funkcije

Struktura predstavlja način na koji su komponente sustava međusobno povezane i kako se međusobno odnoseFunkciju predstavlja operacija individualne komponente kao dijela cjelokupne strukture

Page 65: Arhitektura Racunala - skripta

Funkcije računala

Funkcije računala su:Procesiranje podatakaPohrana podatakaUpravljanje/management podatakaUpravljanje

Page 66: Arhitektura Racunala - skripta

Funkcionalni dijagram računala

Funkcionalni pogled na računalo

Upravlj. prebacivanjem podataka

upravljačkimehanizam

Pohranapodataka

Procesiranjepodataka

Page 67: Arhitektura Racunala - skripta

Operacije (1)

Upravljane prebacivanjem podatakanpr., od tipkovnice do zaslona monitora

DataMovementApparatus

ControlMechanism

DataStorageFacility

DataProcessingFacility

Page 68: Arhitektura Racunala - skripta

Operacije (2)

Pohrana podatakanpr. download sa interneta na disk

DataMovementApparatus

ControlMechanism

DataStorageFacility

DataProcessingFacility

Page 69: Arhitektura Racunala - skripta

Operacije (3)

Procesiranje podatakanpr. upravljanje bazom podataka

DataMovementApparatus

ControlMechanism

DataStorageFacility

DataProcessingFacility

Page 70: Arhitektura Racunala - skripta

Operacije (4)

Procesiranje podataka, iz pohrane na I/Onpr. ispis liste studenata iz baze podataka

DataMovementApparatus

ControlMechanism

DataStorageFacility

DataProcessingFacility

Page 71: Arhitektura Racunala - skripta

Struktura - Top Level

Računalo

glavnamemorija

I/Ojedinice

Sistemske sabirnice

Periferija

Kominikacijskasučelja

CPU

Računalo

Page 72: Arhitektura Racunala - skripta

Struktura - CPU

Computer ALUjedinica

Kontrolnajedinica

Interne CPUinterkonekcija

Registri

CPU

I/O

Memory

SystemBus

CPU

Page 73: Arhitektura Racunala - skripta

Struktura – Kontrolna jedinica

CPU

Memorijakontrolnejedinice

Kontrolna jedinica,registri i dekoderi

Logikasekvenciranja

ControlUnit

ALU

Registers

InternalBus

Kontrolna jedinica

Page 74: Arhitektura Racunala - skripta

Organizacija i arhitektura Organizacija i arhitektura računala

Poglavlje 10g jInstrukcijski skup:

Adresni modovi i formatiAdresni modovi i formati

Page 75: Arhitektura Racunala - skripta

Adresni modovi

Izravni po značaju - ImmediateI i Di tIzravni - DirectNeizravni - IndirectRegistarski - RegisterRegistarski neizravni - Register IndirectRegistarski neizravni Register IndirectAdr. sa odmakom - Displacement (Indexed) St kStack

Page 76: Arhitektura Racunala - skripta

Adresiranje izravno po značenju

Operand je dio instrukcijeO d d lj ili dOperand = adresno polje ili adresaNpr. ADD 5

Dodaj 5 sadržaju akumulatora5 je u ovom slučaju operand

Nema referenciranja na memoriju u pogledu zahvata/fetch podatkazahvata/fetch podatkaOvo je doista brzoAli i ograničene uporabne vrijednostiAli i ograničene uporabne vrijednosti

Page 77: Arhitektura Racunala - skripta

Dijagram izravnog adresiranja po značenju

OperandOpcode

Instrukcija

OperandOpcode

Page 78: Arhitektura Racunala - skripta

Izravno adresiranjeAdresno polje sadrži adresu operanda u memoriji gdje se nalaziAdresno polje sadrži adresu operanda u memoriji gdje se nalaziEfektivna adresa (EA) = adresno polje (A)npr. ADD Ap

Dodaj sadržaj mem. ćelije/polja A vrijednosti u akumulatoruPogledaj/potraži memorijsku lokaciju na dresi A za operand

Samo jedno referenciranje/obraćanje memoriji za pristup tome podatkuNema dodatnih kalkulacija za izračun efektivne adreseNema dodatnih kalkulacija za izračun efektivne adreseali je i adresni prostor na ovaj način limitiran

Page 79: Arhitektura Racunala - skripta

Dijagram izravnog adresiranja

Adresa AOpcode

Instrukcija

Adresa AOpcodeMemorija

Operand

Page 80: Arhitektura Racunala - skripta

Neizravno adresiranje (1)

Na memorijsku ćeliju/lokaciju ukazuje adresni pokazivač unutar adresnog polja operandapokazivač unutar adresnog polja operanda instrukcije EA (A)EA = (A)

Pogledaj vrijednost mem. pokazivača A, pronađi d d d i (A) i tadresu operanda na mem. adresi na (A) i tamo

potraži vrijednost traženog operandanpr ADD (A)npr. ADD (A)

Akumulatoru dodaj sadržaj lokacije/ćelije memorije na koju je ukazao adresni pointer na lokaciji Ana koju je ukazao adresni pointer na lokaciji A

Page 81: Arhitektura Racunala - skripta

Neizravno adresiranje (2)

Vrlo veliko adresno područje2n dj j d lji j d ij či2n gdje je n = duljina jedne riječiMože biti u ugniježđeno adresiranje, multilevel ili kaskadirano

npr. EA = (((A)))⌧Pokušajte sami nacrtati dijagram ovog načina adresiranja

operanada

O htij iš t ki i t ijiOvo zahtijeva višestruki pristup memoriji za pronalazak operandate nešto usporava cijelu stvar u cijelosti...

Page 82: Arhitektura Racunala - skripta

Dijagram neizravnog adresiranja

dd

Instrukcija

Adresa AOpcodeMemorija

P k i čPokazivač naoperand

OperandOpe a d

Page 83: Arhitektura Racunala - skripta

Registarsko adresiranje (1)

Operand se “drži”/čuva u registru imenovanim od strane adresnog polja instrukcijeod strane adresnog polja instrukcijeEA = ROgraničen broj registara na raspolaganju!!!Potrebno je vrlo malo adresno poljej p j

Kraće instrukcije – po duljinii brži zahvat instrukcije iz memorije, općenito.j j , p

Page 84: Arhitektura Racunala - skripta

Registarsko adresiranje (2)N t ži/t b i t ijiNe traži/treba pristup memorijiVrlo brzo izvršavanje takve instrukcijeVrlo ograničeno adresno područjeKorištenje više registara povećava performanseKorištenje više registara povećava performanse

Ovo zahtijeva veliku koncentraciju dobru sposobnost korištenja i programiranja u asembleruj p g ju C-u...⌧register int a;

po svojoj prisrodi slično kao i izravno adresiranje

Page 85: Arhitektura Racunala - skripta

Dijagram registarskog adresiranja

Register Adresa ROpcode

Instrukcija

Register Adresa ROpcodeRegistri

Operand

Page 86: Arhitektura Racunala - skripta

Registarsko indirektno adresiranje

slično kao i indirektno adresiranjeEA (R)EA = (R)Operand se nalazi u mem. ćeliji/lokaciji ukazanoj od strane sadržaja u registru R – Registar R sadrži adresu lokacije gdje se nalazi operand.Veliko adresno područje (2n)Nešto manje memorijskih pristupa nego li je toNešto manje memorijskih pristupa nego li je to kod neizravnog adresiranja...

Page 87: Arhitektura Racunala - skripta

Dijagram registarskog neizravnog adresiranja

Register Adresa ROpcode

Instrukcija

Register Adresa ROpcodeMemorija

Registri

OperandOpkazivač na adr.operandap

Page 88: Arhitektura Racunala - skripta

Adresiranje sa odmakom... Displacement Addressing

EA = A + (R)Ad lj d ži d ij ij d tiAdresno polje sadrži dvije vrijednosti

A = bazna/temeljna adresaR = registar koji sadrži veličinu adresnog “odmaka”a može i obrnuto

Page 89: Arhitektura Racunala - skripta

Dijagram adresiranja sa odmakom

Register ROpcode

InstrukcijaAdresa ARegister ROpcode

MemorijaAdresa A

Registri

OperandPokazivač na adr.operanda +

Page 90: Arhitektura Racunala - skripta

Relativno adresiranje

To je verzija adresiranja sa odmakomR P t PCR = Program counter, PCEA = A + (PC)nor. zahvati operand iz ćelije/lokacije A relativno u odnosu na lokaciju pokazanu od strane PC-aj pkoristi se za referenciranje lokacije unutar mem. segmenta ali i kod cache meorijesegmenta ali i kod cache meorije

Page 91: Arhitektura Racunala - skripta

Registarsko adresiranje bazne/temeljne adrese

A sadrži iznos odmaka adreseR d ži k i č d bR sadrži pokazivač mem. adrese za baznu adresuR može biti eksplicitan ili implicitan u ukazu na adresu bazne adresenpr. memorijski segmentni registri u 80x86

Page 92: Arhitektura Racunala - skripta

Indeksirano adresiranje

A = bazna/temeljna adresaR ij d d d kR = vrijednos adresnog odmakaEA = A + RJako dobar pristup za adresiranje vektora i matrica

EA = A + RR++

Page 93: Arhitektura Racunala - skripta

Kombinacije adresiranja...

PostindeksiranjeEA (A) (R)EA = (A) + (R)

PreindeksiranjeEA = (A+(R))EA (A+(R))

Page 94: Arhitektura Racunala - skripta

Stack adresiranje

Operand je/nalazi se/sprema se (implicitno) na vrhu stoga/stackavrhu stoga/stackanpr.

ADD Uzmi/pokupi dva operanda na vrhu stacka/stoga i zbroji ih

Page 95: Arhitektura Racunala - skripta

Instrukcijski formati

definira poredak/ustroj bitova u instrukcijik ji d fi i ij ki k dkoji definira operacijski kodi sadržava (implicitno ili ekspplicitno) operand ili operandeUobičajena je pojava korištenja više oblika j j p j jinstrukcijskih formata u jednom instrukcijskom skupu/setu.p /

Page 96: Arhitektura Racunala - skripta

Duljina instrukcije

Definirana je od strane i definira:Veličinu memorije memorijskog prostoraVeličinu memorije – memorijskog prostoraMemorijsku organizacijuB t kt k ik ij k i f t ktBus strukturu – komunikacijsku infrastrukturuKompleksnost CPU-aB i CPUBrzinu CPU-a

To je u suštini kompromis između korištenja ž žskupa “snažnih” instrukcija i raspoloživog

prostora, kako memorijskog tako i registarskog

Page 97: Arhitektura Racunala - skripta

Organizacija i arhitektura Organizacija i arhitektura računala

Struktura CPU-a i njegove funkcijej

Page 98: Arhitektura Racunala - skripta

CPU struktura

CPU mora obavljati slijedeće zadatke:Zahvat instrukcija Fetch instructionsZahvat instrukcija - Fetch instructionsInterpretacija/dekodiranje instrukcija - Interpret instructionsinstructionsZahvat podataka - Fetch dataProcesiranje podatakaProcesiranje podatakaIspis/pisanje podataka

Page 99: Arhitektura Racunala - skripta

Registri

CPU mora imati na raspolaganju određeno radno područje na raspolaganju privremenoradno područje na raspolaganju – privremeno pohranilište podatakak ji i t ikoji se zovu... registriBroj i funkcija istih varira od procesora do procesora i ovisna je o njegovom dizajnuTo je ujedno i glavna odluka kod dizajna j j g jprocesoraOni su najviša točka u memorijskomOni su najviša točka u memorijskom hijerarhijskom ustroju

Page 100: Arhitektura Racunala - skripta

Registri vidljivi korisniku

Registri za općenitu uporabu - General PurposeP d tk i i t iPodatkovni registriAddresni registriRegistri za instrukcije uvjetovanja, uvjetna grananja i skokove - Condition Codes Registersg j g

Page 101: Arhitektura Racunala - skripta

Registri opće namjene (1)

Mogu biti za doista istinsku općenitu najmjenu –za sve i svaštaza sve i svašta...Bogu biti za ograničenu uporabu / specijalizirani

t i t d i t– restricted registersMogu se koristiti za podatke ili adresiranje istihRegistri za podatke

Akumulator

AdresiranjeSegmentni registriSegmentni registri

Page 102: Arhitektura Racunala - skripta

Registri opće namjene(2)

Ako su za istinsku općenitu uporabu...Povećavaju fleksibilnost programiranja i olakšavajuPovećavaju fleksibilnost programiranja i olakšavaju ga... donekleali i povećavaju veličinu/duljine instrukcije i njenuali i povećavaju veličinu/duljine instrukcije i njenu kompleksnost

A ako su specijalizirani dobivamoA ako su specijalizirani... dobivamoManje i brže instrukcijeali i manju fleksibilnost programiranjaali i manju fleksibilnost programiranja.

Page 103: Arhitektura Racunala - skripta

Koliko GP registara koristiti?

Između 8 - 32Ak ih j j i iš ij kihAko ih je manje = imamo više memorijskih referenciranja/zahvataViše njih ne smanjuje broj memorijskih zahvata ali čini procesor više fleksibilnim i kompleksnijim

Page 104: Arhitektura Racunala - skripta

Koliko veliki trebaju biti?

Dovoljno veliki da mogu sadržavati/pohraniti potpunu adresupotpunu adresui dovoljno veliki da mogu sadržavati/pohraniti ij l i t k ij k ij čcijelu instrukcijsku riječ.Često je moguće i kombinirati sva podatkovna registra.. na način, npr.:

C programiranjedouble int a;long int a;

Page 105: Arhitektura Racunala - skripta

Registri za “uvjetni” kod...

Skup individualnih bitovanpr rezultat zadnje operacije je bila nula (“0”)npr. rezultat zadnje operacije je bila nula (“0”)

Mogu se čitati (implicitno) od strane / lik ijprograma/aplikacije

npr. skoči ako je nula (“0”)

ali obično se ne mogu postaviti u stanje “0” ili “1” od strane programa/aplikacije

Page 106: Arhitektura Racunala - skripta

Upravljački i statusni registri

Programski brojač - Program CounterR i t d k di j i t k ij I t tiRegistar za dekodiranje instrukcije - Instruction Decoding RegisterMemorijski adresni registar - Memory Address RegisterMemorijski podatkovni registar - Memory Buffer Registerg

Page 107: Arhitektura Racunala - skripta

Programska statusna riječ Program Status Word

Predstavljena je nizom bitova unutar registra širinePredstavljena je nizom bitova unutar registra širine jedne riječi... jednostavnoUključuje i kontrolu koda za postavljanje “uvjeta” -Uključuje i kontrolu koda za postavljanje uvjeta -Includes Condition CodesPrikazuje status/oznaku posljednjeg dobivenog rezultataPrikazuje status/oznaku posljednjeg dobivenog rezultataOznačava pojavu nule “0” kao rezultataSadrži i “Carry” bitSadrži i Carry bitOznačava pojavu “jednakosti” neke operacijeDojavljuje/ukazuje na prog Preliv - OverflowDojavljuje/ukazuje na prog. Preliv - OverflowUključuje i/ili isključuje “interrupte”Služi i za nadzor općenitoSluži i za nadzor, općenito.

Page 108: Arhitektura Racunala - skripta

Supervizorski/nadzorni mod

Intel ring zeroK l dKernel modOmogućava izvršavanje privilegiranih instrukcijaOvaj mod je korišten od strane O/S-aali nije na raspolaganju korisničkimali nije na raspolaganju korisničkim programima!!!

Page 109: Arhitektura Racunala - skripta

Ostali registri

CPU može imati registre koji ukazuju na:Procesne kontrolne blokove ili jednostavnijeProcesne kontrolne blokove – ili, jednostavnije, “sistemske procese”Interrupt vektoreInterrupt vektore

inače: dizajn CPU a i operativi sustav uinače: dizajn CPU-a i operativi sustav u čvrstoj su vezi te su ovisni jedno o drugomedrugome.

Page 110: Arhitektura Racunala - skripta

Primjer organizacije registara

Page 111: Arhitektura Racunala - skripta

Instrukcijski ciklus procesora...

Objašnjeno u poglavlju 3

Page 112: Arhitektura Racunala - skripta

Indirektni ciklus instrukcije...

instrukcija može (a najčešće to i radi) zahtijevati pristup memoriji da bi zahvatila operandepristup memoriji da bi zahvatila operande,indirektno adresiranje zahtijeva višestruke

h t / ij k i t dizahvate/memorijske pristupe operandima,te se to na taj način može smatrati i posebnim dodatnim instrukcijskim podciklusom –instrukcijski subciklus zahvata višestrukih operanada iz memorije.

Page 113: Arhitektura Racunala - skripta

Instrukcijski ciklus sa indirektnim zahvatom... dijagram

Page 114: Arhitektura Racunala - skripta

Dijagram stanja instrukcijskog ciklusa sa indirektnim zahvatom

Page 115: Arhitektura Racunala - skripta

Protok/protočnost podatakap p(u ciklusu instrukcijskog zahvata) (1)

To ovisi o dizajnu procesora/CPU-aGeneralno gledajući protočni kanal je definiran koracima:g j p jFetch / Zahvati

PC sadrži/pokazuje adresu slijedeće instrukcijeAdresa se translatira u MARAdresa iz MAR-a preslika se na adresnu sabirnicuUpravljačka jedinica šalje memoriji zahtijev za čitanje lokacijeUpravljačka jedinica šalje memoriji zahtijev za čitanje lokacije definirane adresom na adr. sabirniciRezultat čitanja postavlja se na podatkovni dio sabirnicesa podatkovnog dijela sabirnice podatak se preslikava u MBRa iz MBR-a podatak se dalje proslijeđuje IR-uU đ d ž j PC i k ti 1U međuvremenu sadržaj PC-a inkrementira se za 1

Page 116: Arhitektura Racunala - skripta

Protok/protočnost podatakap p(u ciklusu instrukcijskog zahvata) (2)

sadržaj IR-a se analiziraukoliko IR sadržaj ukazuje na instrukciju koja koristiukoliko IR sadržaj ukazuje na instrukciju koja koristi indirektno adresiranje tada se u instrukcijski ciklus fetch/execute uključuje i podcikljus indirektnog zahvata

d i ij čioperanada iz memorije, na način:N najznačajnijih bitova od MBR-a se proslijede MAR-uUpravljačka jedinica zahtijeva “čitanje”/pristup memorijiUpravljačka jedinica zahtijeva “čitanje”/pristup memorijiRezultati čitanja (adrese operanada) translatiraju se u MBRMBR

Slijedi dijagram...

Page 117: Arhitektura Racunala - skripta

Protok/protočnost podataka - Normalanp p(u ciklusu instrukcijskog zahvata)

Page 118: Arhitektura Racunala - skripta

Protok/protočnost podataka - Indirektanp p(u ciklusu instrukcijskog zahvata)

Page 119: Arhitektura Racunala - skripta

Protok/protočnost podataka(u ciklusu instrukcijskog izvršenja)

Tijek toka podataka može poprimiti razne oblike u ovom slučajuu ovom slučajuTo ovisi o instrukciji koja se izvršavaMože sadržavati...Čitanje/pisanje memorijeOpsluga I/O jedinicaPrijenos između registaraALU operacije

Page 120: Arhitektura Racunala - skripta

Protok/protočnost podataka(prilikom pojave interrupta)

Ovo je u principu vrlo jednostavno...i predvidljivo.p jTrenutni sadržaj PC registra se pohranjuje da bi se omogučio oporavak programa nakon obrade interruptaS d ž j PC k i MBRSadržaj PC-a kopira se u MBR“Specijalna” memorijska lokacija (npr. Stack/stog, stack pointer) učitava se u MARSadržaj MBR-a piše se u memorijsku lokaciju ukazanu od strane MAR-aR i t PC čit d i t t kt i jRegistar PC učitava adresu interrupt vektora i njegove rutine/potprogramai tek nakon toga slijedeća instrukcija može biti zahvačena (to je g j j ( jprva instrukcija interrupt potprograma)

Page 121: Arhitektura Racunala - skripta

Protok/protočnost podatakap p(prilikom pojave interrupta) - dijagram

Page 122: Arhitektura Racunala - skripta

Instrukcijski predzahvat -Prefetch

Zahvat inače pristupa glavnoj memorijiIzvršenje instrukcije u uobičajenoj formi ne zahtijeva pristup gl. memorijiPitanje... Da li se može zahvatiti slijedeća instrukcija

štijekom faze izvršenja trenutne instrukcije?Odgovor: MOŽE! I to se zove Instrukcijski predzahvat ili

ij d h ć j lij d ć i t k ijunaprijedno zahvaćanje slijedeće instrukcije –jednostavno PREDZAHVAT/PREFETCH!

Page 123: Arhitektura Racunala - skripta

Poboljšanje performansi?

Da, ali ne baš za dvostruko više:Zahvat je inače kraći nego li je to faza izvršenjaZahvat je inače kraći nego li je to faza izvršenja⌧Da li onda zahvatiti više od jedne instrukcije?!?

Bilo koji programski skok ili grananje znače daBilo koji programski skok ili grananje znače da unaprijed zahvaćene instrukcije iz memorije nisu one koje grananje ili skok traže/zahtijevajuj g j / j j⌧Nepotrebni pristupi memoriji?!?

Može se dodati više nivoa predzahvata gdje se p g jnastoje zahvatiti instrukcije iz raznih segmenata memorije koje bi mogle biti slijedeći kandidati j j g jprilikom programskog skoka ili grananja.

Page 124: Arhitektura Racunala - skripta

Pipelining - Cjevovod

Zahvat instrukcijeDekodiranje instrukcijej jIzračun operanada (npr. efektivnih adresa)Zahvat operanadaIzvršenje instrukcijePisanje/pohrana rezultata

Pokušajte preklopiti ove operacije, bilo koju sa bilo kojom!Ako se radi o jednoj jedinoj instrukciji koja se trenutno izvršava j j j j j jonda ovo NE IDE!A više instrukcija istovremeno? ☺

Page 125: Arhitektura Racunala - skripta

Vremenski dijagram instrukcijskog cjevovoda (1)

Page 126: Arhitektura Racunala - skripta

Vremenski dijagram instrukcijskog cjevovoda (2)

Page 127: Arhitektura Racunala - skripta

Programsko grananje u cjevovodu...

Page 128: Arhitektura Racunala - skripta

Kako se nositi sa programskim grananjem u cjevovodu?

Višestruki instrukcijski “stream”-oviP d h t i t k ij d fi i ih lt tPredzahvat instrukcija definiranih rezultatom prog. grananja - Prefetch Branch TargetLoop bufferPredviđanje grananja - Branch predictionj g j pOdgođeno prog. grananje u nekoliko slijedećih koraka - Delayed branchingkoraka Delayed branching

Page 129: Arhitektura Racunala - skripta

Višestruki “streamovi”

Uporaba bar dva cjevovodaP d h t k j b i j dPredzahvat svakog grananja u zasebni cjevovodKorištenje adekvatnih cjevovoda

Page 130: Arhitektura Racunala - skripta

Predzahvat rezultata grananjaPrefetch Branch Target

Rezultat grananja se unaprijed zahvaća iz mem. zajedno sa slijedećim instrukcijama koje slijedezajedno sa slijedećim instrukcijama koje slijede nakon grananja.R lt t j č d k jRezultat grananja se čuva dok se grananje ne izvršiOvaj način se koristi od IBM 360/91

Page 131: Arhitektura Racunala - skripta

Cirkularni buferLoop Buffer

To je jedna vrlo brza memorijsStatička, najčešće.Statička, najčešće.

i upravljanja od strane FETCH dijela instrukcijskog cjevovodaPrvo se provjerava buffer prije nego li se ide u zahvat p j p j ginstrukcije u memorijuOvaj način zahvata je jako dobar u slučaju vrlo kratkih prog. k k ili ljiskokova ili petlji

slično kao i cacheKorišten od strane CRAY 1 računalaKorišten od strane CRAY-1 računala.

Page 132: Arhitektura Racunala - skripta

Prediktivno grananje (1)

Ne-korištenje/nema predviđanja:Pretpostavlja se uvijek da se skok ili grananje neće dogoditi.i ij k i d h ć lij d ć i t k ij ii uvijek se iz mem. dohvaća samo slijedeća instrukcija u nizu.68020 & VAX 11/780VAX sustav neće raditi predzahvat instrukcije poslije progVAX sustav neće raditi predzahvat instrukcije poslije prog. grananja ako će to rezultirati tzv. page fault mem. referenciranjem! (O/S vs. CPU dizajn!)

P d iđ j jPredviđanje grananja:Uvjek se pretpostavlja da će se sa slijedećom instrukcijom dogoditi prog. skok ili grananje!g p g g ji uvijek se dohvaća rezultantna instrukcija navedenog skoka ili grananja

Page 133: Arhitektura Racunala - skripta

Prediktivno grananje (2)

Predviđanje pomoću Opcode-a:Kod pojedine vrste instrukcija veća je vjerojatnost da će one u konačnici proizvesti prog. skok ili grananje nego li je to kod drugih instrukcija!

č žNa ovaj način se može predvidjeti skok ili grananje sa točnošću od 75-80%.

K išt j kid čKorištenje Predviđaj/Ne-predviđaj prekidačaKorištenje ovog prekidača temelji se na prethodnoj

ij ti k išt j i t i j ti jpovijesti korištenja istog i pojavnosti prog. grananja ili skokaOvaj način korištenja je dobar i koristan kod progOvaj način korištenja je dobar i koristan kod prog. petlji!

Page 134: Arhitektura Racunala - skripta

Prediktivno grananje (3)

Odgođeno grananjePrincip; “Ne izvršavaj instrukciju prog skoka iliPrincip; “Ne izvršavaj instrukciju prog. skoka ili grananja se dok ne budeš morao”Ovo zahtijeva preslagivanje instrukcija uOvo zahtijeva preslagivanje instrukcija u programskom nizu istih obazirući se upravo na instrukcije skoka i grananja na način da ih se j g jpremjesti što dalje od početka instrukcijskog niza (ukoliko je to moguće, naravno)

Page 135: Arhitektura Racunala - skripta

Predviđanje grananja - dijagram

Page 136: Arhitektura Racunala - skripta

Organizacija i arhitektura računala

Poglavlje 12Reduced Instruction Set Computers

RISC

Page 137: Arhitektura Racunala - skripta

Značajniji napredci u računalnim sustavima (1)

koncept “obitelji” računalaIBM System/360 1964DEC PDP-8odvajaju se arhitektura od načina implementacije

Mikroprogramirana upravljačka jedinica -mikrokod

to je ideja Wilkes-a 1951a napravio IBM S/360 1964

Cache memorijaIBM S/360 model 85 1969

Page 138: Arhitektura Racunala - skripta

Značajniji napredci u računalnim sustavima (2)

Solid State RAM – poluvodički RAMo ovome je više rečeno pod dijelom koji se bavi memorijom

MikroprocesoriIntel 4004 1971

PipeliningUvođenje postupaka paralelizacije u fetch-execute/zahvat-izvrši intrukcijskom ciklusu

Višeprocesorski sustavi

Page 139: Arhitektura Racunala - skripta

Slijedeći korak - RISC

Reduced Instruction Set Computer

Glavne značajkeVeliki broj registara za opću namjenu - generalpurpose registersili koristiti unaprjeđenu compiler tehnologiju za optimizaciju uporabe registara opće namjeneLimitirani/ograničeni i jednostavan skup instrukcijaNaglasak je dan na optimizaciju intrukcijskogpipeline-a

Page 140: Arhitektura Racunala - skripta

Usporedbe procesoraCISC RISC SuperscalarIBM DEC VAX Intel Motorola MIPS IBM Intel370/168 11/780 486 88000 R4000 RS/6000 809601973 1978 1989 1988 1991 1990 1989

No. of instruction208 303 235 51 94 184 62

Instruction size (octets)2-6 2-57 1-11 4 32 4 4 or 8

Addressing modes4 22 11 3 1 2 11

GP Registers16 16 8 32 32 32 23-256

Control memory (k bytes) (microprogramming)420 480 246 0 0 0 0

Page 141: Arhitektura Racunala - skripta

Zašto onda CISC?

Troškovi izrade programa danas daleko nadilaze troškove razvoje sklopovlja/hardwareaPovećavanje kompleksnosti jezika visokog nivoaSemantička rupa!?!To sve vodi do:

Rasta/povećanja instrukcijskih skupovaSve više i više adresnih modova/načina dresiranjaHardwerska implementacija HLL (high levellanguage) stanja⌧npr. CASE (prekidač/selektor) naredba

Page 142: Arhitektura Racunala - skripta

Namjera i namjena CISC procesora

Jednostavno pisanje/razvijanje kompileraPoboljšanje efikasnosti izvršavanja programa

Kompleksne operacije u mikrokôdu

Podrša za još kompleksnije HLL

Page 143: Arhitektura Racunala - skripta

Izvršne/obradbene karakteristike

Obavljanje operacijaKorištenje operanadaSekvenciranje obradeAnalize se rade na programima pisanim u HLL-uAnalize dinamike izvršavanja rade se tijekom izvršavanja ovih programa

Page 144: Arhitektura Racunala - skripta

Operacije

DodjelePrebacivanje/premještanje podataka

Uvjetna stanja (IF, LOOP)Kontrola sekvencijalnog izvršavanja

Procedura “call-return” vrlo je zahtjevna u pogledu vremena potrebnog da se izvršiPojedine HLL instrukcije vode do pojave nužnosti uporabe puno operacija strojnog kôda

Page 145: Arhitektura Racunala - skripta

Relativna dinamička frekvencijaRelative Dynamic Frequency

Dinamička Strojna instr. Uporaba mem.

pojavnost (Weighted) (Weighted)Pascal C Pascal C Pascal C

Assign 45 38 13 13 14 15

Loop 5 3 42 32 33 26Call 15 12 31 33 44 45If 29 43 11 21 7 13GoTo - 3 - - - -Other 6 1 3 1 2 1

Page 146: Arhitektura Racunala - skripta

Operandi

Većinom su to lokalne skalarne varijablePostupci optimizacije trebaju se koncentrirati na pristup lokalnim varijablama

Pascal C AverageInteger constant 16 23 20Scalar variable 58 53 55Array/structure 26 24 25

Page 147: Arhitektura Racunala - skripta

Procedure Calls

Vrlo zahtjevne u pogledu vremena potrebnog za izvršavanjeOvise o broju proslijeđenih im parametaraOvise i o nivou ugniježenja/nestingVećina programa ne radu “puno” poziva procedura bez njihovog povratkaVećina varijabli je lokalna

Page 148: Arhitektura Racunala - skripta

Implikacije

Najbolja podrška dana je kroz optimizaciju najviše korištenih i vremenski najzahtjevnijih značakji ovakvog sustavaVelika količina/broj registara

Adresno referenciranje na operande

Pažljivo osmišljavanje cjevovoda/pipeline-aPredviđanje grananja, itd.

Pojednostavljeni (reducirani) instrukcijski set

Page 149: Arhitektura Racunala - skripta

Kako koristiti puno registara?

Programsko rješenje:Optimizacijom kompilera u svrhu alociranja većeg broja registaraAlociranje se temelji na dodjeli registara varijablama koje su najviše u uporabiOvo zahtijeva sofisticiranu analizu programa da bi se pravilno optimiziralo za uporabu velikog broja registara u takvom procesoru

Sklopovsko/hardware rješenje:paaa.... imamo puno registara, zar ne?stoga... možemo više varijabli koristiti i jednostavno i spremati u registre a ne u gl. memoriju

Page 150: Arhitektura Racunala - skripta

Registri za lokalne varijable

Pohrana lokalnih skalarnih varijabli u registreSmanjena potreba za pristupom gl. memoriji -> brzinaSvaki poziv procedure/funkcije mijenja pojam “lokalnosti”Moraju se proslijediti parametriali se i moraju vratiti rezultati u glavnu petljuMora se uspostaviti i stanje varijabli prozvanih /pozvanih potprograma u prethodno stanje nakon povratka

Page 151: Arhitektura Racunala - skripta

Registarski prozori/skupovi (1)

U uporabi je samo nekoliko parametaraLimitirana dubina poziva proceduraUporaba više skupina malih skupova registaraPoziv procedure prebacuje uporabu na drugi skup registaraA povratak iz poziva procedure vraća na uporabu prethodnog skupa registara

Page 152: Arhitektura Racunala - skripta

Registarski prozori/skupovi (2)

Postoje tri područja/tipa unutar skup registaraRegistri za parametreRegistri za lokalne varijableRegistri za privremene parametre/varijableRegistri za privremenu uporabu jednog skupa registara preklapaju se sa istim takvim registrima ali iz nekog drugog skupa registaraOvo omogućuje prosljeđivanje parametara bez stvarnog prebacivanja podataka

Page 153: Arhitektura Racunala - skripta

Preklapajući registri raznih skupova registara

Page 154: Arhitektura Racunala - skripta

Dijagram kružnog međuspremnika/buffer-a

Page 155: Arhitektura Racunala - skripta

Način rada kružnog međuspremnika

Kada se napravi poziv potprograma, trenutni pokazivač skupa registara pomakne se na trenutno korišteni skup registaraAko su svi skupovi iskorišteni ili u uporabi, generira se interrupt i “najstariji” skup registara se sprema u memorijuPokazivač spremljenog skupa registara pokazuje gdje se treba ponovo obnoviti/restoriratislijedeći snimljeni skup registara

Page 156: Arhitektura Racunala - skripta

Globalne varijable

Alocira ih kompiler u glavnoj memorijiVrlo neefikasno za učestalo pristupanje takvim varijablama

Postoje registri rezervirani samo za globalne varijable

Page 157: Arhitektura Racunala - skripta

Registeri vs. Cache

Large Register File Cache

Sve su lokalni skalari Samo zadnje korišteni lokalni skalariIndividualne varijable Blok memorijeCompiler dodjeljuje globalne varijable Zadnje korištene globalne varijableSave/restore temeljene na proceduri Save/restore temeljeni na ugniježđenju

caching algorithm Adresiranje registara Adresiranje memorije

Page 158: Arhitektura Racunala - skripta

Referenciranje/adresiranje skalara -korištenje skupa registara

Page 159: Arhitektura Racunala - skripta

Referenciranje/adresiranje skalara -Cache

Page 160: Arhitektura Racunala - skripta

Kompilersko optimiziranje uporabe registara

Pretpostavimo mali broj registara (16-32)Posao postupka optimizacije je na kompileruHLL programi nemaju eksplicitne načine da se adresiraju registri – to rade kompileri ili asemblerske rutineDodjeli se simbolički ili virtualni registar svakoj potencijalnoj varijabliMapiraj simboličkim registrima prave/postojeće registreSimbolički registri koji se inače ne preklapaju mogu čak dijeliti prave registreAko ponestane pravih registara pojedine varijable mogu koristiti i memoriju umjesto njih

Page 161: Arhitektura Racunala - skripta

Zašto onda CISC (1)?

Pojednostavljenost kompilera?o ovome se može raspravljati...Kompleksne instrukcije teže je i pravovaljano iskoristiti u različite svrheOptimizacija je u ovom slučaju prilično teška

Da li su programi manji?Program zauzima manje memorije, ali…Memorija je (sada) relativno jeftinaali možda ne zauzima manje bita nego samo izgleda kraće ali u svojoj simboličkoj formi⌧Složenije instrukcije zahtijevaju i operacijske kodove veće duljine –

više memorije⌧Referenciranje registara zahtijeva doista manje memorije

Page 162: Arhitektura Racunala - skripta

Zašto onda CISC (2)?

Brži programi?Naginje se uporabi jednostavnijih instrukcijaJako složena upravljačka jedinica/dekoderVeći mikrokod više mikrokod memorijeali jednostavne instrukcije ne traže više vremena u svom izvršavanju nego složene

Kako stvari stoje... CISC se ne smatra bašadekvatnim rješenjem za izgradnju računala

Page 163: Arhitektura Racunala - skripta

RISC karakteristike

Jedna instrukcija po ciklusu izvršavanjaRegistar-registar operacijemalo, jednostavnih načina adresiranjamalo, jednostavnih instrukcijskih formataOžićeni dizajn – nema mikrokodaFInstrukcijski format fiksne veličineali kompiler tu ima više posla

Page 164: Arhitektura Racunala - skripta

RISC vs. CISC

Nema tu jasne granice što, kako i kadaMnogi dizajni procesora posuđuju rješenja za izgradnju pojedinih podsustava kako iz CICS-a tako i iz RISC-anpr. PowerPC i Pentium II,... to su ustvari mješavine i CISC-a i RISC-a

Page 165: Arhitektura Racunala - skripta

RISC Cjevovod/Pipelining

Većina instrukcija je naravi register-registerDvije faze instrukcijskog ciklusa

I: Instruction fetch – zahvat instrukcijeE: Execute - izvršenje

Te za operacije učitavanj/load i pohrana/storeI: Instruction fetchE: Execute⌧Izračun memorijske adrese

D: Memory⌧Register→memorija ili memorija→register operacije

Page 166: Arhitektura Racunala - skripta

Efekat cjevovoda/Pipelininga

Page 167: Arhitektura Racunala - skripta

Optimizacija cjevovoda

Zakašnjelo grananjeNema efekta sve dok se slijedeća instrukcija u cjevovodu ne izvrši Ova slijedeća instrukcija uvodi i uzrokuje vremensko čekanje

Page 168: Arhitektura Racunala - skripta

Normalno i zakašnjelo grananje

Address Normal Delayed Optimized100 LOAD X,A LOAD X,A LOAD X,A101 ADD 1,A ADD 1,A JUMP 105102 JUMP 105 JUMP 105 ADD 1,A103 ADD A,B NOOP ADD A,B104 SUB C,B ADD A,B SUB C,B105 STORE A,Z SUB C,B STORE A,Z106 STORE A,Z

Page 169: Arhitektura Racunala - skripta

Uporaba zakašnjelog grananja

Page 170: Arhitektura Racunala - skripta

Kontroverze uporabe RISC-a

Kvantitativneusporedbu po veličini programa i brzini izvršavanja

Kvalitativneproblematična uporaba HLL-a – optimizacija vrlo naporna

ProblemiNema dva RISC i CISC procesora koja su izravno usporedivaNema skupa programa za testiranje obje vrste procesoraTeško je razlučiti efekte hardwarea od efekata kompileraVećina komercijalnih procesora je mješavina RISC-a i CISC-a tako da je teško pronaći arhitekturni čitsti ili CISC pa tako i RISC

Page 171: Arhitektura Racunala - skripta

Organizacija i arhitektura računala

Poglavlje 2- Evolucija i performanse računala -

Page 172: Arhitektura Racunala - skripta

OSNOVNI CILJEVI PRI ZASNIVANJU SUSTAVA:

ispunjavanje upravljačke funkcijepouzdanost pri radujednostavno i lako održavanjeniska cijena

RAZVITAK DIGITALNIH SUSTAVA

Page 173: Arhitektura Racunala - skripta

Abacus

kinesko računalo Abacus 1200 g. p.n.e

Page 174: Arhitektura Racunala - skripta

PRVO POKOLJENJE (1941-1956)

Značajke računala prvog pokoljenja:

vakuumske cijevi i živine linije za kašnjenje

magnetski bubanj kao unutrašnja memorija

glavna memorija 1000-4000 bajta

simboličko programiranje na niskoj razini

problemi zagrijavanja i održavanja

perioda reda ms

brzina obrade: 2000 naredbi u sekundi

primjene: znanost, pohrana podataka

Page 175: Arhitektura Racunala - skripta

PRVO POKOLJENJE (1941-1956)

Z3 1941 - Konrad Zuse

Page 176: Arhitektura Racunala - skripta

Z3 – u pozadini

uporaba bistabilnih elemenata

polulogaritamsko predstavljanje brojeva (s fiksnim zarezom)

dekadsko-binarna pretvorba

osnovne operacije: I, ILI i negacija

zbrajanje ili oduzimanje u 50 -70 ms

Page 177: Arhitektura Racunala - skripta

ENIAC – u pozadini...

Electronic Numerical Integrator And ComputerEckert i MauchlyUniversity of PennsylvaniaTrajektorijske tablice balističkog oružjaStarted 1943Finished 1946

prekasno završeno, poslije rata

Korišteno do 1955

Page 178: Arhitektura Racunala - skripta
Page 179: Arhitektura Racunala - skripta

ENIAC - značajke

Decimalno računalo (ne binarno)20 akumulatorskih registara od 10 znamenkiRučno programirano pomoću sklopkiprogram osmišljen ožičavanjemprogramski skokovi nisu bili mogući18,000 vakuumskih cijevi30 tona15,000 square feet / 90 m3

potrošnja el. energije - 140 kW5,000 zbrajanja u sekundimnoženje dva deset znamenkasta broja 2,8 ms

Page 180: Arhitektura Racunala - skripta

ENIAC - značajke

18,000 vakuumskih cijevi

Page 181: Arhitektura Racunala - skripta

DRUGO POKOLJENJE 1957-1964

diskretne poluvodičke komponente

1948 godine, tranzistor Bell laboratorijeekipa od 12 ljudiglavni za patent: W. Shokley, J. Bardeen, W. Brattaintočkasti p-n spojgermanijev poluvodič s dvije zlatne folije

Page 182: Arhitektura Racunala - skripta

DRUGO POKOLJENJE 1957-1964

Značajke računala drugog pokoljenja:

uporaba tranzistoramagnetska jezgra kao unutrašnja memorijakapacitet glavne memorije 4k-32k bajtabrži ulaz i izlaz, magnetske trakeprogramski jezici visoke razine: fortran, cobolveliko smanjenje dimenzija i potrošnjepovećana brzina i pouzdanostperioda reda mikrosekundebrzina obrade naredbi oko 1 mipsprimjene: računovodstvo

Page 183: Arhitektura Racunala - skripta

DRUGO POKOLJENJE 1957-1964

Prvi tranzistoritočkasti kontaktni tranzistori

Page 184: Arhitektura Racunala - skripta

DRUGO POKOLJENJE 1957-1964

PRIMJENA TRANZISTORA

Neke prednosti tranzistora:

oko 200 puta manji od cijevi

troši oko 100 puta manje energije

TRANZISTORSKI MODUL

Page 185: Arhitektura Racunala - skripta

DRUGO POKOLJENJE 1957-1964

HIBRIDNA TEHNIKA (1964)

Page 186: Arhitektura Racunala - skripta

TREĆE POKOLJENJE 1965-1971

integrirani digitalni sklopoviPostanak integriranih sklopova s planarnim tranzistorima.

Značajke računala trećeg pokoljenja:

primjena integriranih logičkih sklopovamagnetska ili poluvodička glavna mem. 32k-3M bajtaulaz-izlaz usmjeren na diskmanje dimenzije, bolja svojstva i pouzdanostprogramski jezici visoke razinedaljinska obrada i komunikacijeoperacijski sustavi zamjenjuju funkciju operateraperiode reda nanosekundebrzina obrade naredbi 10 MIPSprimjene: marketing, rezervacije, naplate

Inte

grira

ni b

ista

bil,

jeda

n od

prv

ih IC

-a tv

rtke

Fairc

hild

Page 187: Arhitektura Racunala - skripta

4. POKOLJENJE 1972-1989

Značajke:Pojava mikroprocesora

primjena VLSI tehnologijepovećana memorija i brzina (iznad 3 MB)kompatibilnost sklopovlja raznih proizvođačanamjenski programi za korisničku primjenubrzine obrade od 100 mips do 1000 mipsprimjene: modeliranje i simuliranje, cad, kućna računala, proizvodnja

Page 188: Arhitektura Racunala - skripta

4. POKOLJENJE 1972-1989

Integracija i pojava mikroprocesora (i4004)

Page 189: Arhitektura Racunala - skripta

von Neumann/Turing

Koncept pohrane programa – za razliku od ožičavanja programaGlavna memorija pohranjuje programe i podatkeALU obrađuje isključivo binarne podatkeUpravljačka jedinica interpretira i izvršava instrukcije iz glavne memorijeUlazno/izlazne jedinice su upravljanje od strane upravljačke jedinicePrinceton Institute for Advanced Studies

IASStruktura završena i predstavljena 1952

Page 190: Arhitektura Racunala - skripta

Struktura von Nuemann-ovogračunskog stroja

Glavnamemorija

Aritmetičko logičkajedinica

programska upravljačkajedinica

I/Ojedinice

Page 191: Arhitektura Racunala - skripta

IAS - detalji

1000 x 40 bit wordsBinarni brojevi2 x 20 bit instrukcije

Set registara (storage in CPU)Memory Buffer RegisterMemory Address RegisterInstruction RegisterInstruction Buffer RegisterProgram CounterAccumulatorMultiplier Quotient

Page 192: Arhitektura Racunala - skripta

Structure of IAS - detalji

Glavnamemorija

Arithmetic and Logic Unit - ALU

Programska kontrolna jedinica

I/Ooprema

MBR

Arithmetic & Logic Circuits

MQAccumulator

MARControlCircuits

IBR

IR

PC

Adrese

Instrukcijei podaci

Central Processing Unit - CPU

Page 193: Arhitektura Racunala - skripta

Komercijalna računala

1947 - Eckert-Mauchly Computer CorporationUNIVAC I (Universal Automatic Computer)US Bureau of Census 1950 calculationsPostaje dijelom Sperry-Rand korporacijeKasne 1950-e - UNIVAC II

BržiViše memorije

Page 194: Arhitektura Racunala - skripta

IBM

Bušene kartice - Punched-card processing equipment1953 - računalo 701

IBM-ovo prvo računalo sa pohranom programaZnanstveni izračuni – Scientific calculations

1955 - računalo 702Poslovne aplikacije

Vodi di razvoja serije računala 700/700

Page 195: Arhitektura Racunala - skripta

Tranzistori

Zamjena za vakuumske cijeviManjiJeftinijiManja toplinska disipacijaIntegrirani uređajiIzrađeni od silicija (kvarcnog pijeska)Izmljen 1947 u Bell-ovom laboratorijuWilliam Shockley

Page 196: Arhitektura Racunala - skripta

Računala temeljena na tranzistorima

Druga generacija računalaNCR & RCA izrađuju mala računala temeljena na poluvodičima/tranzistorimaIBM 7000DEC - 1957

Proizvedeno PDP-1 računalo

Page 197: Arhitektura Racunala - skripta

Microelektronika

Doslovno značenje - “umanjena/mala elektronika”Računalo je izgrađeno od logičkih sklopova, memorijskih ćelija i njihovih veza/ožičenjaOmogućena izrada u poluvodičkoj tehnologiji

npr. silicijska ploča/waffer

Page 198: Arhitektura Racunala - skripta

Generacije računala

Vakuumske cijevi - 1946-1957Tranzistori - 1958-1964Small scale integration - 1965 i nadalje

do 100 sklopova na čipuMedium scale integration - do 1971

100-3,000 sklopova na čipuLarge scale integration - 1971-1977

3,000 - 100,000 sklopova na čipuVery large scale integration - 1978 do danas

100,000 - 100,000,000 sklopova na čipuUltra large scale integration

Preko 100,000,000 sklopova na čipu

Page 199: Arhitektura Racunala - skripta

Mooreov zakonPovečanje gustoće sklopova na jednom čipuGordon Moore - suosnivač Intel-a“Broj tranzistora na čipu će se udvostručavati svake godine”Od 1970’s ova tvrdnja se malo ublažila/smanjila

Broj tranzistora se udvostručuje svakih 18 mjeseciTroškovi izrade čipa gotovo da ostaju istiVeća gustoća pakiranja znači kraće električne veze – veće performanse čipaManje dimenzije daju veću fleksibilnost primjeneSmanjena potrošnja i zahtijevi za hlađenjemManje interkonekcija među funkcionalnim cjelinama povećevajupouzdanost

Page 200: Arhitektura Racunala - skripta

Rast broja tranzistora u CPU

Page 201: Arhitektura Racunala - skripta

IBM 360 serija računala1964Zamjena za (i nekompatibilna sa) 7000 serijomPlanirano kao prvo računalo iz “obitelji” računala

Slični ili identični set instrukcijaSlični ili identični O/SPovećana brzinaPovećan broj I/O portova (npr. više terminala)Povećana količina memorijeali i povećani troškovi izrade

Multipleklsirana preklopnička struktura (multiplexed switchstructure)

Page 202: Arhitektura Racunala - skripta

DEC PDP-8

1964Prvo miniračunaloNije zahtijevalo posebne prostorije sa rashladnim sustavimaDovoljno malo da stane na sto$16,000

$100k+ za IBM 360

Za potrebe primjenjenih aplikacija i OEM ugradnju BUS struktura

Page 203: Arhitektura Racunala - skripta

DEC - PDP-8 Bus Struktura

OMNIBUS sabirnica

Konzolniupravljač CPU

Glavnamemorija

I/O modul/jedinica

I/O modul/jedinica

Page 204: Arhitektura Racunala - skripta

Poluvodička memorija

1970FairchildVeličina jedne jezgre magnetske memorije

1 bit-a magnetske memorije

kapaciteta 256 bitanedestruktivno isčitavanjevišestrukko brža nego magn.jezgrena memorijakapacitet joj se udvostručava svake 1-2 godine

Page 205: Arhitektura Racunala - skripta

Intel

1971 - 4004 Prvi mikroprocesorSve komponente jednog CPU-a su na jednom čipu4 bita

1972 ga nasljeđuje i80088 bitaoba su razvijena za aplikacije posebne namjene

1974 - 8080Intelov prvi procesor za opću namjenu

Page 206: Arhitektura Racunala - skripta

Ubrzavanje... kako ubrzati rad računala

PipeliningOn board cache – priručna memorijaOn board L1 & L2 cacheBranch prediction – predikcija prog. grananjaData flow analysis – analiza prog. toka podatakaSpeculative execution – predviđanje rezultata obrade

Page 207: Arhitektura Racunala - skripta

Neusklađenost performansi...

Povećanje brzine procesoraPovećanje kapaciteta memorijePovećanje brzine memorije zaostaje zapovećanjem brzine procesora

Page 208: Arhitektura Racunala - skripta

DRAM i procesorske karakteristike

Page 209: Arhitektura Racunala - skripta

Trendovi u DRAM-u

Page 210: Arhitektura Racunala - skripta

Rješenja...

Povećanje broja zahvaćenih bitova u jednom zahvatnom ciklusu

To čini DRAM prije “širim” nego “dubljim”

Izmjena DRAM sučeljaCache memorija

Smanjenje frekvencije memorijskog pristupaKompleksniji/složeniji cache i cache na čipu

Povećanje propusne širine sučeljaHigh speed busvi/sabirniceHijerarhizacija sučelja

Page 211: Arhitektura Racunala - skripta

Organizacija i arhitektura računala

Poglavlje 3Sistemske sabirnice

Page 212: Arhitektura Racunala - skripta

Koncept “programa”

Ožičeni programski sustavi nisu fleksibilniHardware za općenitu namjenu može obavljati raznorazne poslove, uz ispravno programiranje upravljačkih signala upravljačke jediniceUmjesto ponovnog reožičenja dodan je novi skup kontrolnih signala / novi set (sekvenci) instrukcija

Page 213: Arhitektura Racunala - skripta

Što je to program?

To je niz/sekvenca koraka obrade nad podacima iz glavne memorijeZa svaki korak obavlja se ili aritmetička ili logička operacijaZa svaku operaciju potreban je i djeluje različiti skup upravljačkih signala

Page 214: Arhitektura Racunala - skripta

Funkcija upravljačke jedinice

Svakoj operaciji je dodijeljen jedinstveni kôdnpr. ADD, MOVE, PUSH, JMP

Hardware i dekoderska jedinica prima i dekodira kôd te upravlja upravljačkim signalima upravljačke jedinicei... imamo RAČUNALO!

Page 215: Arhitektura Racunala - skripta

Komponente / sastavni dijelovi

Upravljačka i ALU jedinica čine CPUPodaci i instrukcije trebaju se unijeti u sustav a rezultati obrade se prosljeđuju van tog sustava

Ulazi/izlazi

Potrebna je “privremena” memorija za pohranu programskog koda i rezultata obrade

Glavna memorija

Page 216: Arhitektura Racunala - skripta

Računalne komponente:“Top Level” prikaz

Page 217: Arhitektura Racunala - skripta

Instrukcijski ciklus...

Dvo-koračni ciklus:Zahvati/FetchIzvrši/Execute

Ciklus zahvata Ciklus izvršenja

Page 218: Arhitektura Racunala - skripta

Ciklus zahvata - Fetch Cycle

Programski brojač (PC) sadrži adresu zahvata slijedeće instrukcijeProcesor zahvaća instrukcije iz dijela memorije adresiranog od strane PC-aIncrement PC

Ukoliko to drugačije (programski) nije rečeneo

Instrukcija se učitava u “Instrukcijski registar” / IRProcesor (dekoderska jedinica) interpretira značenje instrukcije i izvršava zadanu akciju

Page 219: Arhitektura Racunala - skripta

Ciklus izvršenja - Execute Cycle

Procesor↔memorijaprijenos podataka između procesora i memorije

Procesor↔I/Oprijenos podataka između procesora i I/O jedinice

Procesiranje/obrada podatakaPrimjena aritmetičkih i logičkih operacija nad podacima

Upravljanje - ControlIzmjena sekvencijskog niza zadanih operacija/prog. instrukcijanpr. skokovi (jump)

Kombinacija gore navedenih operacija

Page 220: Arhitektura Racunala - skripta

Primjer izvršenja programa

Page 221: Arhitektura Racunala - skripta

Instrukcijski ciklus -Dijagram stanja

Page 222: Arhitektura Racunala - skripta

Programski prekidi - InterruptsTo je mehanizam pomoću kojega ostale jedinice računala (npr. I/O jedinica) može prekinuti normalni slijed sekvencijalnog izvršavanja programa

npr. programski prelje/overflow, dijeljenje sa nulomVremenski sklopovi - Timer

Generirani od strane internog procesorskog timeraKorišteni u pre-emptive multi-tasking sustavima

I/Ood strane I/O upravljača/kontrolera

Hardware/sklopovska pogreškanpr. memorijska greška pariteta

Page 223: Arhitektura Racunala - skripta

Upravljanje programskim tijekom -Program Flow Control

Page 224: Arhitektura Racunala - skripta

Ciklus programskog prekida -Interrupt Cycle

Dodano instrukcijskom ciklusu – dio instrukcijskog ciklusaProcesor provjerava pojavnost interrupta

pojava interrupta daje se na znanje procesoru putem upravljačkih interrupt signala

Ako nema prog. prekida dalje se nastavlja sa fazom zahvata slijedeće instrukcijeAko se dogodi prekid:

Obustavlja se izvršenje trenutnog programaPohranjuje se stanje trenutnih operacija obradePC se postavlja na pokazivanje adrese programa u memoriji zaduženog za obradu prog. prekidaProcesiranje/obrada prekidne rutinePonovno uspostavljanje stanja operacija obrade programa prije nastanka prog. prekida

Page 225: Arhitektura Racunala - skripta

Instrucijski ciklus (sa prog. prekidom) - Dijagram stanja

Page 226: Arhitektura Racunala - skripta

Višestruki programski prekidi...

Onemogućavanje djelovanja prog. prekidaProcesor će ignorirati pojavu ostalih prekida dok obrađuje trenutni prog. prekidPojava prekida se bilježi po redu i u nizu te se niz pojavnosti prekida provjerava tek kada se izvrši obrada prvog prekida u nastalom nizuObavlja se obrada prekida onim redosljedom kako su se pojavili u prekidnom nizu

Definiranje prioritetaPrekidi sa niskom razinom značajnosti mogu se prekinuti prekidima većeg značajaKada se obradi prekid većeg značaja, procesor se vraća na obradu prekida nižeg značaja/manje važnosti.

Page 227: Arhitektura Racunala - skripta

Višestruki prekidi – Sekvencijalni niz izvršenja prekida

Page 228: Arhitektura Racunala - skripta

Višestruki prekidi – Nested/ugniježđeno izvršavanje prekida

Page 229: Arhitektura Racunala - skripta

Povezivanje/poveznice...

Sve funkcionalne jedinice računala moraju biti povezaneKoriste se razne vrste povezivanja za razne vrste jedinica

Povezivanje memorijskog podsustavaUlazno/izlazni, I/O, podsustavCPU

Page 230: Arhitektura Racunala - skripta

Memorijsko sučelje/sabirnica

Prima i šalje podatkePrima adrese mem. lokacijaPrimanje upravljačkih signalaČitanje/ReadPisanje/WriteVremensko reosvježavanje/Timing

Page 231: Arhitektura Racunala - skripta

Sučelja I/O jedinica(1)

Gledano od strane računala ovo sučelje je slično memorijskom sučeljuIzlaz(i)

Prima podatke od računalaŠalje podatke periferiji računala

UlaziPrima podatke od periferijeŠalje podatke računalu

Page 232: Arhitektura Racunala - skripta

Sučelja I/O jedinica(2)

Primanje upravljačkih signala od računalaSlanje upravljačkih signala periferiji

npr. zavrti ploče diska, otvori ladicu CD/DVD-a

Prima podatke od računalanpr. koji je to broj porta za identifikaciju periferije

Slanje signala prog. prekida (upravljanje prog. prekidima)

Page 233: Arhitektura Racunala - skripta

CPU sučelje

Čitanje instrukcija i podatakaPisanje podataka nakon procesiranja istihSlanje upravljačkih signala ostalim jedinicama računalaPrimanje, registriranje i reagiranje na pojavu prog. prekida

Page 234: Arhitektura Racunala - skripta

Sabirnice - Busevi

Postoji bezbroj mogućih načina i sistema povezivanjaJednostruke i višestruke sabirničke BUS strukture su najčešće u uporabi

npr. Control/Address/Data sabirnica (PC)npr. Unibus (DEC-PDP)

Page 235: Arhitektura Racunala - skripta

Sto je to sabirnica/bus?

Komunikacijski put kao poveznica dva ili više uređajaUobičajena je tehnika “prozivanja” uređajaČesto su funkcionalno grupirane

Broj komunikacijskih kanala u jednoj sabirnicinpr. 32 bit data bus čini 32 odvojena 1-bit kanala

Linije napajanja u grupiranoj sabirnici nisu stvarnim funkcionalnim dijelom sabirnice u funkciji razmjene podataka

Page 236: Arhitektura Racunala - skripta

Podatkovna sabirnica...

Prenosi podatkeTreba zapamtiti da na ovom nivou prijenosa informacija ne postoji razlika između “podataka” i “instrukcija” – sve su to podaci koji se prenose

Ključni faktor performansi predstavlja “širina”sabirnice

8, 16, 32, 64 bit

Page 237: Arhitektura Racunala - skripta

Adresna sabirnica

Identificira izvorište odakle se žele prenijeti podaci – identifikacija drugog kom. uređajanpr. Procesor treba pročitati instrukciju/podatak iz memorijske lokacije zadane adresnom sabirnicomŠirina sabirnice određuje najveći memorijski kapacitet računalnog sustava

npr. 8080 ima 16 bit adresnu sabirnicu i omogućava 64kB adresnog prostora

Page 238: Arhitektura Racunala - skripta

Upravljačka/kontrolna sabirnica

Prenosi upravljačke i vremenski periodičke/clocksignale i informacije

signal za čitanje/pisanje memorijezahtjevi za programskim prekidimasignali takta / clock signali

Page 239: Arhitektura Racunala - skripta

Strukturna shema sabirnice...

Page 240: Arhitektura Racunala - skripta

Kako prepoznati sabirnicu?

Kako ustvari sabirnica izgleda/fizički?Paralelni vodovi na matičnoj pločiRibbon kabeli / plosnati višežični kabeliVišepolne priključnice na matičnoj ploči / slotovi⌧npr. PCI, PCI-Express, ISA, DDR, SDRAM,...

To je ustvari skupina od mnogo žica...

Page 241: Arhitektura Racunala - skripta

Problemi korištenja samo jedne sabirnice...

Puno uređaja spojenih na jednoj sabirnici izravno vodi do:

Kašnjenja u propagaciji signala⌧Dugački vodovi značajno i negativno utječu na performanse

sabirnice,⌧Približavanje max. mogućem kapacitetu prijenosa podataka

putem ove sabirnice

Većina sustava koristi višestruke sabirnice da bi zaobišla upravo navedene probleme

Page 242: Arhitektura Racunala - skripta

Tradicionalni topologija sabirnice (ISA)(sa priručnom memorijom)

Page 243: Arhitektura Racunala - skripta

Sabirnica visokih performansi

Page 244: Arhitektura Racunala - skripta

Vrste sabirnica...

Posve određene / Dedicated...Odvojene data i adresne linije

Multipleksirane...Linije dijele funkcionalne ulogeAddress valid ili data valid upravljača linijaPrednost – manje komunikacijskih linijaNedostaci⌧Složeno upravljanje takvom sabirnicom⌧Ultimate performance

Page 245: Arhitektura Racunala - skripta

Arbitracija pristupa sabirnici...

Više od jednog uređaja može kontrolirati sabirnici i njen radnpr. CPU i DMA kontrolerSamo jedan uređaj istovremeno može kontrolirati rad i pristupati sabirniciArbitracija/pregovor u kontroli pristupa sabirnici može biti:

Centralizirana ilidistribuirana

Page 246: Arhitektura Racunala - skripta

Centralizirana arbitracija

Samo jedan sklop ili uređaj kontrolira pristup sabirnici

Sabirnički kontrolerArbiter

Može biti dio CPU-a ili zaseban sklop/uređaj

Page 247: Arhitektura Racunala - skripta

Distribuirana arbitracija

Svaki uređaj na sabirnici može preuzeti kontrolu nad njomUpravljača logika kontrole pristupa sabirnice nalazi se na svakom uređaju spojenog na nju.

Page 248: Arhitektura Racunala - skripta

Vremensko upravljanje - Timing

Koordinacija događaja na sabirniciSinkrone sabirnice

Pojavnost događaja određena je clock/taktnim signalomKontrolni dio sabirnice sadržava signal taktaPrijelaz lokičkih 1-0 predstavlja takt sabirniceSvi uređaji mogu primati takt signalUobičajena je sinkronizacija uređaja na rastući brid takt signalaUobičajeno jedan događaj traje jedan ciklus takt signala

Page 249: Arhitektura Racunala - skripta

Sinkroni timing dijagram

Page 250: Arhitektura Racunala - skripta

Asinkroni timing dijagram

Page 251: Arhitektura Racunala - skripta

PCI Sabirnica

Peripheral Component Interconnectionrazvio je Intel32 ili 64 bit50 linija

Page 252: Arhitektura Racunala - skripta

PCI sabirničke linije (nužne)

Sistemske linijeuključujući takt i reset signal

Adresne i podatkovne linije32 multipleksirane linije za adrese i podatkeLinije za prog. prekide i linije za validaciju podataka/adresa1

Linije za kontrolu sučeljaArbitracija

Nije distribuirana – centralizirana jeIzravno povezivanje na PCI arbitarski sklop

linije za oznaku pojavnosti pogreški – error lines

Page 253: Arhitektura Racunala - skripta

PCI sabirničke linije (opcionalne)

Linije prog. prekidaNe dijele se između uređaja

Podrška za priručnu memoriju64-bit proširenje sabirnice

dodatne 32 linijevremenski multipleksirane2 dodatne linije za odobrenje uređaju korištenja 64bit načina prijenosa podataka

JTAG/Boundary ScanZa potrebe testiranja uređaja

Page 254: Arhitektura Racunala - skripta

PCI Naredbe

Transakcije između inicijatora (master) i odredišta (target)Master uređaj preuzima kontrolu na sabirnicomOdređivanje tipa transakcije/razmjene

npr. čitanje I/O jedinice, ili pisanje,...

Adresna faza – samo jednaJedna ili više podatkovnih faza

Page 255: Arhitektura Racunala - skripta

PCI timing dijagram čitanja..

Page 256: Arhitektura Racunala - skripta

PCI sabirničkopregovaranje/arbitracija...

Page 257: Arhitektura Racunala - skripta

Organizacija i arhitektura računala

Poglavlje 4Interna memorija

Page 258: Arhitektura Racunala - skripta

Karakteristike

Lokacija/položajKapacitetJedinice za prijenosMetode pristupaPerformanseFizikalne modeli memorijeFizikalne karakteristikeOrganizacija

Page 259: Arhitektura Racunala - skripta

Lokacija... gdje se nalazi

CPUInterna memorijaVanjska/externa memorija

Page 260: Arhitektura Racunala - skripta

Kapacitet... količina memorije

Veličina memorijske riječi...Veličina određena prirodom organizacijom memorijeBroj riječi koji se može pohranitiili byte-ova

Page 261: Arhitektura Racunala - skripta

Jedinica za prijenos...

Interna/unutarnjaUobičajeno je strukturirana prema širini podatkovnog dijela

sabirničkog sučelja – 1 riječ

Vanjska/externalUobičajeno je to blok podatka koji je veći od jedne memorijske

riječi.

Adresabilna jedinicaNajmanja lokacija koja se još može jednoznačno adresiratiinterno je to na razini jedne riječijedan “klaster” na HDD-u

Page 262: Arhitektura Racunala - skripta

Metode pristupa (1) Sekvencijlani

Starta se na početku memorije te se dalje iščitava prema nadolazećem redoslijedu

Vrijeme pristupa ovisi o položaju podatka i prethodnoj pristupljenoj lokaciji

npr. magnetska traka Izravni

Individualni podatkovni blokovi imaju jedinstvene adresePristup lokaciji se ostvaruje kroz skokove u blizini tražene

lokacije uz dodatno sekvencijalno traženje zadane lokacijeVrijeme pristupa ovisi o traženoj lokaciji i prethodno

pristupljenoj lokacijinpr. HDD

Page 263: Arhitektura Racunala - skripta

Metode pristupa (2)SlučajniIndividualne adrese lokacija identificiraju točno

lokaciju kojoj se želi pristupitiVrijeme pristupa ovisi brzini dekodiranja adrese i

isčitavanja sadržaja lokacijenpr. RAM

AsocijativnoPodatak se locira usporedbom traženog sadržaja sa

sadržajem pretraživanih pohranjenih podatakaVrijeme traženja neovisno je o prethodno nađenoj

lokacijinpr. priručna memorija

Page 264: Arhitektura Racunala - skripta

Memorijska hijerarhija

Registri/RegistersU CPU-u

Interna ili glavna memorijaMože sadržavati jednu ili više razina priručne

memorije“RAM”

Vanjska memorijaZa masovniju pohranu podataka

Page 265: Arhitektura Racunala - skripta

Performanse

Vrijeme pristupaVrijeme pristupa između postavljanja adrese i

dobivanja traženog podatka

Vrijeme memorijskog ciklusaVrijeme potrebno sa se memorija/sadržaj

obnovi/oporavi prije slijedećeg ciklusa pristupaVrijeme ciklusa=pristup+oporavak

Brzina prijenosaNajveća brzina kojom se mogu prenijeti podaci

Page 266: Arhitektura Racunala - skripta

Vrste memorije prema fizičkom ustroju

PoluvodičkeRAM

MagnetskeDiskovi i trake

OptičkeCD & DVD

Druge vrsteBubbleHologram

Page 267: Arhitektura Racunala - skripta

Fizikalne karakteristike...

Slabljenje signala / gubljenje informaciju u mem. ćeliji

Svojstvo pamćenja nakon gubitka napajanjaIzbrisivostPotrošnja energije

Page 268: Arhitektura Racunala - skripta

Organizacija

Fizičko ustrojavanje bitova u riječito i nije baš uvječ tako očita stvar...npr. multipleksirani pristup memorijskim

modulima

Page 269: Arhitektura Racunala - skripta

Sve u svemu...

Koliko je memorije potrebno?Mjera potrebe... KAPACITET

Koliko brza mora biti?Vrijeme je novac

Koliko to košta / troškovi?

Page 270: Arhitektura Racunala - skripta

Lista hijerarhijskog ustroja...

RegistriL1 CacheL2 CacheGlavna memorija – main memoryDiskovna priručna memorija - Disk cacheDiskOptička mem.Magnetske trake

Page 271: Arhitektura Racunala - skripta

Hoćete brzu memoriju?

Da li je moguće napraviti računalo da koristi samo statičku memoriju? Rasprava slijedi...

Statička memorija... ovo bi bilo doista brzo!Ako je to tako onda nam ne treba cache

memorijaKako je moguće “keširati” cache memoriju?

Ako je sve to moguće onda će ovo koooštati..

Page 272: Arhitektura Racunala - skripta

Lokalizirani pristup memoriji...

Tijekom ciklusa izvršavanja programa, memorijski pristupi gravitiraju pristupima unutar uskog memorijskog adresnog raspona -> klasterima memorije

npr. izvršavanje petlji... petlje u programu

Page 273: Arhitektura Racunala - skripta

Poluvodička memorija

RAM Pogrešno je nazivana i shvaćena da je svaka

poluvodička memorija random acces memorijato nije uvijek tako -> npr. flash memorija ima klasterski

način čitanja i pisanja (slično sektorima HDD-a)

Čitanje i pisanjeOvisnost o napajanju – sposobnost da zapamti

podatak neovisno o napajanjuPrivremena pohrana podatakaStatička ili dinamička

Page 274: Arhitektura Racunala - skripta

Dinamički RAM

Bitovi su pohranjeni kao u obliku naobja u kondenzatoru Naboj se “troši” – samopražnjenje kondenzatora Potrebno konstantno osvježavanje sadržaja Vrlo jednostavna konstrukcija/strukturna građa Površinski/volumenski vrlo mala Jeftina Potreba za posebnim sklopovljem za osvježavanje

sadržaja! Sporija od statičke memorije Koristi se kao glavna memorija

Page 275: Arhitektura Racunala - skripta

Statički RAM

Bitovi pohranjeni u flip/flopovima - bistabilima Nema “trošenja/curenja” naboja Nije potrebno osvježavanje memorije Puno kompleksnija kontrukcija u odnosu na DRAM Površinski/volumenski puno veća po jednom bitu – više tranzistora Skuplja od DRAM-a Ne treba sklopovlje za osvježavanje Brža Koristi se kao CACHE memorija

Page 276: Arhitektura Racunala - skripta

Read Only Memory (ROM)

Trajno spremanje podatakaZa spremanje programa / MicroprogrammingZa spremanje nemjenjivih potprograma / Library

subroutinesSistemski programi / (BIOS)Funkcijski parametri, tablice/matrice,

konstante,...

Page 277: Arhitektura Racunala - skripta

Vrste ROM-a Sadržaj upisan tijekom izrade ROM u tvornici

Vrlo skupo na mali broj komada Programabilne (samo jednom) - OTP

PROM Potrebna posebna oprema za programiranje - programatori

R/W ali većinom samo “čitane” - Read “mostly” Programirljive i izbrisive (EPROM)

Brisanje se obavlja UV svjetlom Električki izbrisive (EEPROM)

Pisanje traje višestruko dulje nego čitanje Flash memorija

U cijelosti električki izbrisiva

Page 278: Arhitektura Racunala - skripta

Detaljnjiji prikaz organizacije...

16Mbit-ni čip može se organizirati kao 1M/milijunm adresabilnih lokacija širine riječi od 16 bita 1 čip!

16 1Mbit-nih čipova sa 1-bitnom organizacijom “riječi” isto tako čini 16Mbit-nu memoriju 16 čipova!

16Mbit čip može se organizirati kao 2048 x 2048 x 4bit matrica / ćelija matrice (riječ) ima 4 bita! Reducirani broj adresnih pinova

Multipleksiranje redaka i stupaca mem. matricesamo 11 pina za adresu (211=2048)Dodavanje još jednog adresnog pina poduplava ukupni mogući

adresni prostor (4096x4096x4bit) -> kapacitet raste 4 puta!!!

Page 279: Arhitektura Racunala - skripta

Osvježavanje sadržaja...

Sklopovi za osvježavanje su u čipu memorije (najčešće)

Ciklus osvježavanja onemogućuje pristup memoriji

Osvježavanje se provodi kroz retke...Isčitavanje i ponovno pisanjeTo traje... oduzima dragocjeno vrijemeUsporava pristup – manje performanse

Page 280: Arhitektura Racunala - skripta

Tipični 16 Mb DRAM (4M x 4)

Page 281: Arhitektura Racunala - skripta

Pakiranja/kućišta

Page 282: Arhitektura Racunala - skripta

Modularnaorganizacija

Page 283: Arhitektura Racunala - skripta

Modularna organizacija (2)

Page 284: Arhitektura Racunala - skripta

Mehanizmi ispravke greške

Sklopovska greška – hardware errorto često znači trajnu nepopravljivu grešku

programska/sftware greškaSlučajne, nisu destruktivneNema trajnog oštećenja memorije

Detektiranje greške obavlja se putem Hammingovog postupka korekcije

Page 285: Arhitektura Racunala - skripta

Funkcija ispravke greške...

Page 286: Arhitektura Racunala - skripta

Priručna memorija - Cache

Mala količina brze memorijeSmještena je na putu između CPU-a i glavne

memorijeMože biti ugrađena u CPU ili kao poseban modul

Page 287: Arhitektura Racunala - skripta

Cache operacije – ukratko...

CPU zahtijeva podatak iz memorijske lokacije... prvo provjerava cache da li u njemu postoji traženi

sadržaj tražene mem. lokacije ako postoji uzima ga iz cache-a -> vrlo pristup ako ne postoji tada ga isčitava iz glavne memorije u

cache memoriju i nakon toga prosljeđuje se CPU-u Cache sadrži oznake/tagove sadržaja u svrhu

identificiranja koji je blok podataka iz glavne memorije u kojem dijelu cache memorije

Page 288: Arhitektura Racunala - skripta

Dizajn cache memorije

Koja količina – kapacitet?Funkcije mapiranjaAlgoritmi zamjene sadržaja cache memorije

novim blokovima podataka iz gl. memorijepolitika pisanja u cache memoriju – nimalo

jednostavna i trivijalna stvar!Veličina korištenih blokova podatakaBroj cache blokova

Page 289: Arhitektura Racunala - skripta

Veličina je ovdje doista bitna/važna

Trošak/troškoviPuno cachea puno košta

BrzinaViše cachea znači i bolje performanse obrade (ali

samo do neke granice)Provjera i traženje određenog sadržaja u cacheu

zahtijeva vrijeme!!!Puno cachea – puno vremena!

Page 290: Arhitektura Racunala - skripta

Tipična organizacija cachememorije

Page 291: Arhitektura Racunala - skripta

Funkcije mapiranja

Cache kapaciteta 64kBVeličina bloka je 4 byte-anpr. cache čini 16k (214) blokova veličine 4 bytea

16MBytea glavne memorije24 bit adresa(224=16M)

Page 292: Arhitektura Racunala - skripta

Izravno mapiranje

Svaki blok glavne memorije mapirn se samo jednim i egzaktnim dijelom cache memorijenpr. ako je traženi blok gl. memorije u cache-u tada se on nalazi

na točno određenom mjestu. Adresa se sastoji od dva dijela. LSB w bitova identificiraju/definiraju “jedinstvenu” riječ. MSB s bitova definiraju jedan mem. blok MSB bitovi su podijeljeni na:

cache polje pretraživanja / dio cache linije – r i ... oznaku/tag – s-r dio MSB-a

Page 293: Arhitektura Racunala - skripta

Izravno mapiranjeAdresna strukturaOznaka s-r Cache linija/polje r

Jedinstvena riječ w

8 14 2

24 bit-na adresa 2 bit identifikator riječi (4 byte po bloku) 22 bit-ni identifikator bloka

8 bit tag (=22-14)14 bit polje/linija

Ne postoje dva bloka u istom pilju sa istom oznakom Cache se pretražuje pretraživanjem polja/linije i provjerom

oznake/tag

Page 294: Arhitektura Racunala - skripta

Izravno mapiranjeTablica Cache polja/linije

Cache linija Sadržaj glavne memorije0 0, m, 2m, 3m…2s-m1 1,m+1, 2m+1…2s-m+1

m-1 m-1, 2m-1,3m-1…2s-1

Page 295: Arhitektura Racunala - skripta

Cache sa direktnim mapiranjemOrganizacijska struktura

Page 296: Arhitektura Racunala - skripta

Izravno mapiranje - primjer

Page 297: Arhitektura Racunala - skripta

Izravno mapiranjeprednosti i mane...

JednostavnostJeftinoFiksne lokacije za svaki blok memorijeAko program konstantno pristupa dvama blokovima

koji su mapirani na isto polje/liniju cache-a tada su promašaji zahvata iz cache-a vrlo zastupljeni/veliki.

Page 298: Arhitektura Racunala - skripta

Asocijativno mapiranje

Blok iz glavne memorije može se pohraniti u bilo koji dio cache memorije

Memorijska adresa interpretira se i kao oznaka i kao jedinstvena riječ

na ovaj način oznaka jednonačno i jedinstveno identificira blok glavne memorije

Prilikom pretraživanja svaka oznaka iz linije/polja se ispitiva u svrhu poklapoanja pretrage

Ovaj način cache-iranja je prezahtijevan

Page 299: Arhitektura Racunala - skripta

Potpuni acosijativni cacheoraganizacija...

Page 300: Arhitektura Racunala - skripta

Asocijativno mapiranje - primjer

Page 301: Arhitektura Racunala - skripta

Oznaka 22 bitRiječ2 bit

Adresna struktura asocijativnog mapiranja

22 bit-na oznaka pohranjena je sa svakim 32-bitnim blokom podataka

Uspoređuje se polje sa oznakom/tagom sa zadanim tagom za uspješan pronalazak

LSB 2-bita adrese identificiraju koja 16-bitna riječ je tražena iz 32-bitnog bloka podataka

e.g.Adresa Oznaka Podatak Cache linijeFFFFFC FFFFFC 24682468 3FFF

Page 302: Arhitektura Racunala - skripta

Skupno asocijativno mapiranje

Cache je podijeljen na niz podskupova/grupa blokova Svaki skup sadrži broj linije cachea Zadani blok mapira se prema bilo kojoj cache liniji u

zadanoj skupininpr. blok B može biti u bilo kojoj liniji iz skupa “i”

npr. 2 linije po skupini2-way asocijativno mapiranjeZadani blok može biti u bilo kojoj od dvije cache linije u samo

jednoj skupini

Page 303: Arhitektura Racunala - skripta

Skupno asocijativno mapiranjeprimjer...

13 bit-ni broj skupaBroj bloka u glavnoj memoriji je modulo 213

npr. 000000, 00A000, 00B000, 00C000 …mapirani su istoj skupini

Page 304: Arhitektura Racunala - skripta

2-Way skupni asocijativni cache – Organizacija...

Page 305: Arhitektura Racunala - skripta

Skupno asocijativno mapiranjeAdresna struktura

Dio riječi koji se odnosi na “skup” se koristi kod određivanja gdje se traži podatak

Uspoređuje se “tag” da bi se dobio uvod da li je podatak pronađen (hit) ili ne (miss)

npr.Adresa Oznaka Podatak Set number1FF 7FFC 1FF 12345678 1FFF001 7FFC 001 11223344 1FFF

Oznaka 9 bit Skup 13 bitRiječ2 bit

Page 306: Arhitektura Racunala - skripta

2-Way skupno asocijativno mapiranje – Primjer....

Page 307: Arhitektura Racunala - skripta

Algoritmi zamjene blokova (1)Izravno mapiranje

Nemamo puno izbora...Svaki blok mapiran je samo u jednoj liniji/pilju

cache-aZamjena tog poja/linije

Page 308: Arhitektura Racunala - skripta

Algoritmi zamjene blokova (2)Asocijativni i skupni asocijativni cache Algoritam implementiran na razini hardwarea (brzina) Najmanje korišteni u zadnje vrijeme / Least Recently Used (LRU)

npr. u 2-way skupnom asocijativnom traženjuKoji je od 2 bloka LRU?!?

First-in-first-out (FIFO)zamjena bloka koji stoji u cache-u najduže od svih

Najmanje korišteni, inače - Least-frequently-used (LFU)zamjeni blok koji se najmanje koristio – imao najmanji broj

“pogodaka” Slučajno dređivanje koji će se blok u cache-u zamijeniti

Page 309: Arhitektura Racunala - skripta

Politika/meotde pisanja...

Cache blok se ne smije prepisati novim podacima ukoliko sadržaj glavne memorije nije “najsvježiji”

Više procesorski sustavi mogu imati cachestrukturu taku da svaki procesor ima svoj cache

I/O jedinice mogu izravno adresirati glavnu memoriju -> npr. DMA pristup

Page 310: Arhitektura Racunala - skripta

Prepisivanje – Write Through

Svaka akcija zapisivanja osim u cache-u zapisuje se istovremeno i u glavnoj memoriji.

Višeprocesorski sustavi mogu nadzirati promet glavne memorije u svrhu očuvanja “svježine” podataka u lokalnom cacheu

To generira puno prometa.... Usporava pisanje podataka općenito

Neadekvatna usklađenost sadržaja cache-a i gl. memorije uzrokuje “probleme” u rač. sustavima

Page 311: Arhitektura Racunala - skripta

Povratno pisanje – Write Back

Obnavljenje podataka se obavlja samo u cache memoriji “Update” bit za cache polje/liniju postavljen je samo

onda ako je potrebna obnova podataka Ako je potrebno zamijeniti blok, on se zapisuje ponovo

nazad u memoriju ali samo ako je “update” bit postavljen.

Ostale cache linije ostaju nesinkronizirane sa glavnom memorijom.

I/O jedinice moraju pristupati gl. memoriji kroz cachememoriju

15% memorijskih referenci obuhvaća akcija zapisivanja kroz cache (north-bridge mem write action’s)

Page 312: Arhitektura Racunala - skripta

Novije RAM tehnologije (1)

Basic/”obični” DRAM ostao je isti po svojoj strukturi od pojave prvih RAM čipova

Enhanced/poboljšani DRAMSadrži male količine i SRAM-aSRAM drži zadnje pročitane podatke (neka vrsta

cache-a!)

Cache DRAMza svrhe gdje su potrebne veće količine SRAM-akoristi se kako cache ili serijski “buffer”

Page 313: Arhitektura Racunala - skripta

Novije RAM tehnologije (2)

Synchronous DRAM (SDRAM) na njima se temelje današnji DIMM-oviPristup im je sinkroniziran putem vanjskog izvora

takt-signalaAdresira se kao i svaki RAMBudući da SDRAM prenosi podatke prema

sistemskom taktu, CPU tada zna kada će podaci biti spremni

CPU ne treba čekati, može raditi nešto drugoBurst-mode omogućava SDRAM-u prijenos podataka

u blokovima – ubrzanje pristupa podacima

Page 314: Arhitektura Racunala - skripta

SDRAM

Page 315: Arhitektura Racunala - skripta

DDR RAM

Page 316: Arhitektura Racunala - skripta

Organizacija i arhitektura Organizacija i arhitektura računalaPoglavlje 5

Vanjska memorijaVanjska memorija

Page 317: Arhitektura Racunala - skripta

Vrste vanjskih memorija

Magnetski diskRAIDRAIDZamjenjivi

O tičkOptičkeCD-ROMCD-Writable (WORM)CD-R/WDVD

Magnetske trakeg

Page 318: Arhitektura Racunala - skripta

Magnetski disk

Metalni ili plastični disk presvučen magnetskim materijalom (FeO hrđa)materijalom (FeO3, hrđa)Vrste prema namjeni

Floppy“Winchester” hard disk“Removable”/izmjenjivi hard disk

Page 319: Arhitektura Racunala - skripta

Organizacija podataka i formatiranje

Koncentrični prstenovi ili trakeRazmaci između trakaRazmaci između trakaSmanjivanjem razmaka povećava se kapacitetJ d k b j bit t i ( ij bil t ćJednak broj bitova po traci (varijabilna gustoća pakiranja)Konstantna kutna brzina CAVKonstantna kutna brzina - CAV

Trake su podijeljene na sektorečMinimalna veličina podatkovnog bloka je jedan

sektorJedan blok može biti i više od jednog sektora

Page 320: Arhitektura Racunala - skripta

Poredak podataka na disku / Data disk layout

Page 321: Arhitektura Racunala - skripta

Magnetizacija medija

Page 322: Arhitektura Racunala - skripta

Diskovi sa fiksnom i pomičnom glavom

Fiksna glavaJedna R/W glava po traciJedna R/W glava po traciGlave su montirane na fiksiranom držaču

P ič lPomične glaveJedna R/W glava po strani diskaMontirane na pomičnom nosaču

Page 323: Arhitektura Racunala - skripta

Fiksne i pomične glaveHDD iz 1975.

Page 324: Arhitektura Racunala - skripta

Izmjenjivi ili ne...?

Izmjenjivi diskMože se ukloniti iz disk jedinice i zamijeniti drugimMože se ukloniti iz disk jedinice i zamijeniti drugim diskomNa ovaj način se može do beskonačnosti povečavatiNa ovaj način se može do beskonačnosti povečavati kapacitetJednostavna razmjena podataka između raznihJednostavna razmjena podataka između raznih računalnim sustava

Neizmjenjivi diskoviNeizmjenjivi diskoviPermanentno ugrađeni u disk jedinici

Page 325: Arhitektura Racunala - skripta

Izmjenjivi ili ne...?

Page 326: Arhitektura Racunala - skripta

Floppy Disk

8”, 5.25”, 3.5”M li k it tMali kapacitet

do 1.44Mbyte (ili 2.88M, nikad populariziran)

SporUniverzalno primjenjiv i izmjenjivp j j j jJeftin

Page 327: Arhitektura Racunala - skripta

Floppy Disk

Page 328: Arhitektura Racunala - skripta

“Winchester” hard Disk (1)

Razvio ga IBM u Winchester-u(USA)Hermetički zatvorenJedan ili više diskovaGlave lebde iznad diska na zračnom jastuku kada se ploče okrećuVrlo mal razmak između glava i pločapločaVrlo robustan

Page 329: Arhitektura Racunala - skripta

“Winchester” hard Disk (2)

Univerzalno/široko primjenjivJ ftiJeftinNajbrža vanjska jedinica za pohranu podatakaSa vremenom postaju sve većeg kapaciteta

Danas... 1-2T uobičajenoj

Page 330: Arhitektura Racunala - skripta

Izmjenjivi hard diskoviZIPZIP

JeftinZamjena za floppySamo 100M

JAZNe baš jeftin u odnosu na ZIP1G

L-120 (a: drive)0 (a d e)Isto tako čita i 3.5” floppyDa li će postati popularan? -> NE!Da li će postati popularan? > NE!

Page 331: Arhitektura Racunala - skripta

Traženje sektora

Prvo se mora se pronaći početak trake i sektoraF ti j di k / f t di kFormatiranje diska / format diska

To su dodatne informacije o ustriju diska koje nisu d t k j j k i ikdostupne krajnjem korisnikuFormatiranje je proces označavanja traka i sektora

Page 332: Arhitektura Racunala - skripta

ST506 format (staro i nije u primjeni!)

Gap1 Id Gap2 Data Gap3 Gap1 Id Gap2 Data Gap3p p p p p p

STrack

SyncByte Head Sector CRC Sync

ByteData CRC

Page 333: Arhitektura Racunala - skripta

Karakteristike jednog diska...

Fiksne (rijetko) ili pomične glaveI j ji i ili fik i di k iIzmjenjivi ili fiksni diskoviJednostrani ili dvostrani (češće)Jednopločni ili višepločniMehanizam glaveMehanizam glave

Kontaktna glava (Floppy)Fiksni razmakFiksni razmakLebdeća glava (Winchester)

Page 334: Arhitektura Racunala - skripta

Višepločni diskovi

Jedna glava po strani diskaGl h ički j i tGlave su mehanički spojene i poravnateTrake i cilindri su poravnatiPodaci su podijeljeni po cilindrima ne sektorima

Jedan blok podataka nalazi se na više diskova u pistovjetnim trakama i cilindrimaumanjuje potrebu za pomicanjem glavePovećanje brzine (čitanja/pisanja)

Page 335: Arhitektura Racunala - skripta

Brzina

Vrijeme pretraživanjaVrijeme potrebno da se j pglava pomakne na traženu traku

(Obrtna) latencija(Obrtna) latencijaVrijeme potrebno da se podatak iz sektora “odvrti” ispod glave

Vrijeme pristupa = traženje + latencija+ latencijaBrzina prijenosa

Page 336: Arhitektura Racunala - skripta

RAID

Redundant Array of Independent Disks Redundant Array of Inexpensive Disksy pU općoj uporabi postoji 6 nivoa organizacije RAID-aRAID nije hijerarhijski ustroj podatakaj j j j pSkup fizičkih diskova “vidi” se kao jedan disk od strane OS-aPodaci su podijeljeni između fizičkih diskova u poljuRedundantni mem. kapacitet diskova može se pupotrijebiti za spremanje npr. parity informacija

Page 337: Arhitektura Racunala - skripta

RAID 0

Bez redundancijePodaci su podijeljeni među p j jsvim diskovimaRound Robin raspodjela podatakapodatakaPovećanje brzine

Kad se čita podatak čita se psa svih diskova istovremeno po jedan djelić podatkapodatkaDiskovi rade u paraleli

Page 338: Arhitektura Racunala - skripta

RAID 1

Kopije diskovaPodaci su na svim diskovimaNa svakom disku nalaze se isti podaci - kopijeKada se čita, čita se sa svih ,diskova - brzinaPiše se na sve diskove -usporenjep jPovratak podataka je jednostavan

Zamjeni pokvareni disk iZamjeni pokvareni disk i ponovo presnimi sve podatke na njegaNema tzv “down time”-aNema tzv. down time -a

Vrlo skupo i vrlo sigurno

Page 339: Arhitektura Racunala - skripta

RAID 0+1

Page 340: Arhitektura Racunala - skripta

RAID 2

Diskovi su sinkroniziraniPreslikavanje podataka u malim količinamao č a a

često samo jedna riječ i/ili byte

Korekcija greške se radi na j gtemelju odgovarajućih algoritama ali samo za one podatke koji su na jednom diskuViš t ki it di k iVišestruki parity diskovi pohranjuju Hammingov kôd korekcije greške na odgovarajućim pozicijama

Hamming ECCdiskovi

Podatkovnidi k iodgovarajućim pozicijama

Puno redundancije... vrlo sigurnoi vrlo skupogotovo da i nije u uporabi

diskovidiskovi

gotovo da i nije u uporabi

Page 341: Arhitektura Racunala - skripta

RAID 3

Slično kao i RAID 2Samo jedan redundantni disk bez obzira na ukupnu veličinu poljaJednostavna korekcija greške pomoću parity bita za odgovarajuću veličinu bloka bitova podatakaPodaci na pokvarenom disku mogu se rekonstruirati od ostalih ispravnih diskova i parity diskaVrlo velike brzine prijenosa

Page 342: Arhitektura Racunala - skripta

RAID 4

Svaki od diskova radi nezavisno u odnosu na drugeVrlo dobro za mnogobrojne i česte I/O zahtjeve čitanja i pisanja na diskVelika logička polja – veliki kapacitetiParity se računa bit-po-bit preko svih diskova u RAID poljuParity informacija pohranjuje se naParity informacija pohranjuje se na parity disku

Page 343: Arhitektura Racunala - skripta

RAID 5

Slično kao RAID 4Paraity se računa nad podacima raspodjeljenim na svim diskovima uraspodjeljenim na svim diskovima u poljuRound robin rezervacija diskovnog prostora za parity informacijuprostora za parity informaciju raspodijeljenu na sve diskoveNa ovaj način zaobilazi se poseban disk rezerviran za parity – koji p y jpredstavlja usko grlo – brzina samo jednog diska zbog čitanja parityjaUobičajena uporaba kod mrežnih servera

RAID 5 ne znači 5 diskova!!!!!

Page 344: Arhitektura Racunala - skripta

RAID 6

Slično kao RAID 5Parity se računa dva puta nad podacima raspodjeljenim na svimpodacima raspodjeljenim na svim diskovima u polju i to u različitim kombinacijamaNa ovaj način zaobilazi se posebanNa ovaj način zaobilazi se poseban disk rezerviran za parity – koji predstavlja usko grlo – brzina samo jednog diska zbog čitanja parityja te se uvodi dodatna parity informacija čime se povečava sigurnostUporaba kod mrežnih servera

Page 345: Arhitektura Racunala - skripta

Optička memorija - CD-ROM

Originalno zamišljen za pohranu audio informacija650Mbytes dovoljno za oko 70 minuta audio zapisaPolikarbonat presvučen visokoreflektivnim materijalom (aluminij)Podaci su pohranjeni u obliku sitnih udubina/rupicaPodaci se isčitavaju refleksijom laserske zrake od

fl k šreflektivne površineKonstantna gustoća pakiranjaKonstantna linearna brzina – CLV (ne CAV kao kod HDD-a)

Page 346: Arhitektura Racunala - skripta

CD-ROM

Page 347: Arhitektura Racunala - skripta

CD-ROM – Brzine...

Audio je 1x brzinskiCLV – Constant Linear Velocityy1.2 ms-1

Traka (spirala) – duga je 5.27kmtrajanje 4391 sekunde = 73.2 minute

Moguće su i veće brzine – cijelobrojni umnošci osnovne brzinenpr 4x 24x 40x 56xnpr. 4x,24x, 40x, 56x,...Obično navedene brzine na jedinici znače i maximalne moguće brzine čitanja koje ta jedinica može postići

Page 348: Arhitektura Racunala - skripta

CD-ROM Format

FF or e Layered00 00

FF x 10 M

inSe

cSe

cto

Mod

e

DataLayeredECC

12 byteSync

4 byteId

2048 byte 288 byte

2352 byte

M d 0 ljMode 0=prazno poljeMode 1=2048 byte podaci+korekcija greškeMode 2=2336 byte podataka

Page 349: Arhitektura Racunala - skripta

Random Access on CD-ROM – slučajno pristupanje podacima

Teško za ostvariti... nije nemoguće -> sporoP i j l b d đ t žPomicanje glave na grubo određenu traženu pozicijuUspostava odgovarajuće brzine rotacije diska -> ispravni CAVČitanje adrese trenutne pozicijePodešavanje pomaka na točnu adresuPodešavanje pomaka na točnu adresui to je to... komplicirano!!!

Page 350: Arhitektura Racunala - skripta

CD-ROM – prednosti i mane...

Veliki kapacitet (?) – danas je to upitno jer se razvijaju svakim danom nove modifikacije osnovnog CD-ROM ustroja ali za veće kapacitietekapacitiete

DVDHDDVDBD

Vrlo jednostavno za masovnu produkcijuIzmjenjiva diskovna jedinica - izmjenjivostj j j j jRobusnost – da li je doista robuno? -> CD/RW pouzdanostSkupo za malošaržne produkcijeSpo oSporoMoguće samo čitanje – samo kod CD-R

Page 351: Arhitektura Racunala - skripta

Ostale optičke memorije

CD-WritableWORMWORMcjenovno vrlo prihvatljiviM j biti k tibil CD ROM f tMoraju biti kompatibilne sa CD-ROM formatom

CD-RWIzbrisive memorijedanas su vrlo, vrlo cjenovno prihvatljiveMoraju biti kompatibilne sa CD-ROM formatom

Page 352: Arhitektura Racunala - skripta

DVD – značenje imena, zbunjuje?

Digital Video DiskPredviđen za distribuciju filmovaPredviđen za distribuciju filmova

Digital Versatile DiskPredviđen za korištenje u računalima za raznovrsne primjene⌧Čitanje podataka i filmskog apisa⌧Čitanje podataka i filmskog zapisa

Nešto drugo?ž šSlužbeno... ništa od navedenog!!!

Page 353: Arhitektura Racunala - skripta

DVD - tehnologija

Višeslojno zapisivanjeV liki k it ti (4 7G j d l j )Veliki kapaciteti (4.7G po jednom sloju)Cjelovečernji film stane na cijeli disk

Koristi se MPEG kompresija

Filmovi nose regionalne kodove za reprodukcijug p jReproduktori reproduciraju samo one filmove za koju je regiju reproduktor namjenjenkoju je regiju reproduktor namjenjen

Page 354: Arhitektura Racunala - skripta

DVD-ROM

Page 355: Arhitektura Racunala - skripta

DVD/RW

Ovdje ima mnogo problema oko definicije što je to standard za DVD/RWto standard za DVD/RWPrve generacije DVD jedinica možda ne mogu čit ti DVD/RW di k b tčitati ove DVD/RW diskove zbog toga –nedostatak standarda!!!

Page 356: Arhitektura Racunala - skripta

Magnetska traka/vrpca

Serijski pristupSporoV l l j f iVrlo, vrlo jeftino -> veliki kapacitetiArhiviranje i sigurnosnosigurnosno kopiranje podataka

Page 357: Arhitektura Racunala - skripta

Digital Audio Tape (DAT)

Uporaba rotirajućih glava (kao i kod analognih video

d kt )reproduktora)Velik kapacitet na maloj traci – veličina “obične” audio trake

4Gbyte nekomprimirano8Gbyte komprimirano

Sigurnosne kopije podataka saSigurnosne kopije podataka sa mrežnih servera,...

Page 358: Arhitektura Racunala - skripta

Organizacija i arhitektura računala

Poglavlje 6Input/Output sustavi

Page 359: Arhitektura Racunala - skripta

I/O problemi...

Velika raznovrsnost periferijeRaznovrsne brzine prijenosa podatakaNa raznim komunikacijskim brzinamaU različitim formatima

Sve su sporije od CPU-a i RAM-aPotrebne su I/O jedinice

Page 360: Arhitektura Racunala - skripta

I/O jedinice/moduli

to su sučelja prema CPU i memorijiisto tako to su sučelja i prema više od jedne IO jedinice

Page 361: Arhitektura Racunala - skripta

Vanjski uređaji

orijentirane prema čovjekuMonitor, pisač, tipkovnica

orijentirane prema strojunadzor i kontrola/upravljanje

komunikacijamodemNetwork Interface Card (NIC)

Page 362: Arhitektura Racunala - skripta

I/O funkcije modula

Control & TimingCPU komunikacijakomunikacija sa jedinicamaData bufferingdetekcija pogreške

Page 363: Arhitektura Racunala - skripta

I/O koraci...

CPU provjerava status modula I/O jediniceI/O modul odgovara svojim statusomAko je modul spreman tada CPU zahtijeva razmjenu podatakaI/O modul dobiva informacije od jediniceI/O modul proslijeđuje dobivene podatke ka CPU-umogu postojati varijacije u koracima, npr. DMA prijenos podataka

Page 364: Arhitektura Racunala - skripta

Dijagram I/O modula

Data Register

Status/Control Register

ExternalDeviceInterfaceLogic

ExternalDeviceInterfaceLogic

InputOutputLogic

DataLines

AddressLines

DataLines

Data

Status

Control

Data

Status

Control

Systems Bus Interface External Device Interface

Page 365: Arhitektura Racunala - skripta

Odluke I/O modula

Skriti ili otkriti sva svoja svojstva CPU-u?odluka da li podržava samo jedan ili više I/O uređajaupravlja funkcijama jedinice ili to ostavlja procesoru da obaviisto tako to može prepustiti i operativnom sustavu

npr. Unix sve I/O jedinice tretira kao običan file/datoteku

Page 366: Arhitektura Racunala - skripta

I/O tehnike

Programirljivepogonjene programskim prekidimaDirect Memory Access (DMA)

Page 367: Arhitektura Racunala - skripta

Programirani I/O

CPU ima izravnu kontrolu nad I/Oprovjerava statusRead/write komandeprijenos podataka

CPU čeka I/O modul da završi operacijuovo bespotrebno troši dragocjeno vrijeme CPU-a

Page 368: Arhitektura Racunala - skripta

Programirani I/O – detaljnije...

CPU zahtijeva I/O operacijuI/O modul izvršava operacijuI/O modul postavlja status bitCPU periodički provjerava statusni bitI/O modul ne izvještava direktno CPU o svom stanjuI/O modul ne djeluje preko interruptaCPU može čekati ili provjeriti kasnije da li je modul završio sa svojim poslom

Page 369: Arhitektura Racunala - skripta

I/O komande

CPU adresira modulidentificira modul

CPU postavlja komandne zahtjevekontrola – kaže modulu što da učini⌧npr. zavrti disk

Testira – provjerava status⌧npr. napajanje? greška?Čita/piše⌧Modul prebacuje podatke putem posebne buffer memorije u

I/O jedinicu

Page 370: Arhitektura Racunala - skripta

Adresiranje I/O uređajaGledano od strane CPU-a to je isto kao i adresiranje memorijeSvaki uređaj ima jedinstveni identifikatorCPU komande sadrže i te identifikatore

Page 371: Arhitektura Racunala - skripta

I/O mapiranje

Memorijski mapirani I/OUređaji i memorija dijele isti adresni prostorI/O se pomaša kao obična memorijska lokacijanema posebnih komandi za I/O operacije

Izolirani I/OOdvojeni adresni prostorPotrebna dodatna I/O ili memory select linijaSpecijalne komande za I/O operacije⌧Ograničeni skup takvih komandi

Page 372: Arhitektura Racunala - skripta

Interruptom pogonjeni I/O

rješava probleme čekanja CPU-aNema provjere stanja uređaja od strane CPU-aI/O modul izaziva interrupt kada je on spreman

Page 373: Arhitektura Racunala - skripta

Interruptom pogonjeni I/OOsnovne operacije

CPU zahtijeva komandu čitanjaI/O modul uzima podatak od svoje periferije dok procesor radi nešto drugoI/O modul prekida CPU interruptomCPU traži prijenos podatakaI/O modul prenosi podatke

Page 374: Arhitektura Racunala - skripta

Gledano od strane CPU-a...

zahtijeva komandu čitanja podatakaRadi nešto drugoProvjerava pojavu interruptaAko je interrupt:

Snima trenutno stanje (registre)obrađuje interrupt⌧zahvaća i sprema podatke

Page 375: Arhitektura Racunala - skripta

Problemi kod izgradnje takvog sustava...

Kako otkriti koji je modul proizveo interrupt ako ima više takvih modula?Kako obraditi višestruke interrupte kada se pojave?

npr. jedan je interrupt prekinut drugim, itd...

Page 376: Arhitektura Racunala - skripta

Modul za identifikaciju interrupta (1)

Druga interrupt linija za svaki modulPCLimitiran broj uređaja

Softwersko prozivanje i ispitivanjeCPU pita svaki modul za interruptSporoooo....

Page 377: Arhitektura Racunala - skripta

Modul za identifikaciju interrupta (2)

Daisy Chain ili hardwersko prozivanjeInterrupt Acknowledge šalje se putem interrupt lancaModul postavlja adresu svog interrupt vektora na sabirnicuCPU analizira interrupt vektor i identificira izvor interrupta

Bus MasterModul mora prvo preuzeti kontrolu nad sabirnicom pa tek onda izazvati interruptnpr. PCI ili SCSI

Page 378: Arhitektura Racunala - skripta

Višestruki interrupti

Svaka interrupt linija ima svoj prioritetInterrupti višeg prioriteta mogu prekinuti interrupte nižeg prioritetaAko se koristi tehnika bus masteringa/preuzimanje kontrole sabirnice, tada onaj tko je preuzeo sabirnicu može izazvati interrupt

Page 379: Arhitektura Racunala - skripta

Primjer - PC Sabirnica

80x86 ima jednu interrupt liniju8086 sustavi rabe 8259A interrupt kontroler8259A ima 8 interrupt linija

Page 380: Arhitektura Racunala - skripta

Sekvenca događaja

8259A registrira i prihvaća interrupt8259A određuje prioritet interrupta8259A signalizira 8086 (podiže INTR liniju)CPU potvrđuje prijem interrupta8259A postavlja odgovarajuću adresu interruptvektora na sabirnicuCPU procesira interrupt

Page 381: Arhitektura Racunala - skripta

PC Interrupt Layout

8086

INTR

8259A

IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7

Page 382: Arhitektura Racunala - skripta

ISA Bus interrupt sistem

ISA ulančuje dva 8259As kontrolera zajednopovezuje ih putem interrupta IRQ2Daje ukupno 15 linija interrupata

16 linija minus jedna za uspostavljanje veze među njima

IRQ 9 se koristi za preusmjeravanje korištenja IRQ2

da bi se postigla unazadna kompatibilnostDanas je to inkorporirano u sam čipset

Page 383: Arhitektura Racunala - skripta

ISA interrupt sistem

80x86

INTR

8259A

IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7

8259A

IRQ0 (8)IRQ1 (9)IRQ2 (10)IRQ3 (11)IRQ4 (12)IRQ5 (13)IRQ6 (14)IRQ7 (15)

(IRQ 2)

Page 384: Arhitektura Racunala - skripta

DMA

Page 385: Arhitektura Racunala - skripta

Direct Memory Access

Interruptom pogonjen i programiran I/O prijenos podataka inače zahtijeva aktivnost CPU-a

Brzine prijenosa su limitiraneCPU je tada zauzet

DMA predstavlja rješenje ovih problema

Page 386: Arhitektura Racunala - skripta

DMA funkcija

dodatan modul/hardware na sistemskoj sabirniciDMA preuzima kontrolu nad I/O od CPU-a

Page 387: Arhitektura Racunala - skripta

DMA operacije

CPU “kaže” DMA kontroleru:Čitaj/pišiadresu uređajaPočetnu adresu memorijskog bloka podatakakoju količinu podataka treba prenijeti

CPU nastavlja sa drugim poslomDMA kontroler obavlja prijenos podatakaDMA kontroler šalje interrupt kada je gotov sa prijenosom

Page 388: Arhitektura Racunala - skripta

DMA prijenosKrađa ciklusa...?!?

DMA preuzima ciklus prijenosa podataka od sabirnicePrijenos jedne riječi podatkaOvo ne koristi interrupt

CPU program se ne prekida

CPU se onemougući prije nego pokuša pristupiti sabirnicinpr. prije nego li se operand ili podatak zahvate ili zapiše

To ponešto usporava izvršavanje i rad CPU-a ali ne puno u odnosu kada CPU ima kontrolu nad sabirnicom

Page 389: Arhitektura Racunala - skripta

Dodatna pitanja...

Kakav efekt ima cachiranje memorije na DMA transfer?Pomoć: koliko je sistemska sabirnica slobodna/raspoloživa za transfer?

Page 390: Arhitektura Racunala - skripta

DMA ustroj (1)

jedna sabirnica, odspojeni DMA kontrolerSvaki transfer koristi sabirnicu dva puta

I/O u DMA a onda DMA u memoriju

CPU je tada u jednom ciklusu dva puta onemogućen u korištenju sabirnice

CPU DMAController

I/ODevice

I/ODevice

Main Memory

Page 391: Arhitektura Racunala - skripta

DMA ustroj (2)

Jedna sabirnica, integrirani DMA kontrolerkontroler može podržavati više od >1 uređajaSvaki transfer koristi sabirnicu samo jednom

DMA u memoriju

CPU je onemogućen samo jednom

CPU DMAController

I/ODevice

I/ODevice

Main Memory

DMAController

I/ODevice

Page 392: Arhitektura Racunala - skripta

DMA ustroj (3)

Odvojena I/O sabirnicaSabirnica podržava sve DMA sposobne uređajeSvaki transfer koristi sabirnicu jednom

DMA u memoriju

CPU je onemogućen samo jednom

CPU DMAController

I/ODevice

I/ODevice

Main Memory

I/ODevice

I/ODevice

Page 393: Arhitektura Racunala - skripta

I/O kanali

I/O postaju sve sofisticiranijenpr. 3D grafičke karticeCPU nalaže I/O kontroleru da obavi prijenos podatakaI/O kontroler obavlja cijeli transferPovećanje brzine

Smanjuje opterećenje CPU-aPosebno građeni procesori za ovu namjenu su daleko najbrži u obavljanju ove funkcije

Page 394: Arhitektura Racunala - skripta

Povezivanje putem sučelja

Povezivanje uređaja međusobnoKoliko žica?Procesori/memorije/sučelja za posebnu namjenu?npr. SCSI, FireWire, USB, ...

Page 395: Arhitektura Racunala - skripta

Small Computer Systems Interface (SCSI)

Paralelno sučelje8, 16, 32 bit podatkovne linijeDaisy chainedUređaji su neovisni jedna o drugom u lancuUređaji u lancu mogu komunicirati jedan sa drugom kao i u slučaju host-slave komunikacije

Page 396: Arhitektura Racunala - skripta

SCSI - 1

Rane 1980s8 bit5MHzData rate 5MBytes.s-1

7 uređaja u lancu8 ako uključimo i Host-kontroler

Page 397: Arhitektura Racunala - skripta

SCSI - 2

199116 i 32 bit10MHzData rate 20 ili 40 Mbytes.s-1

Page 398: Arhitektura Racunala - skripta

SCSI Signalizacija (1)Između inicijatora i odredišta

obično je to host i device/uređaj

Da li je sabirnica slobodna? (npr. Ethernet)Arbitracija – preuzimanje kontrole nad sabirnicom (kao kod PCI)Odabir odredišnog uređajaReselection/ponovno odabiranje istog uređaja

omogućava rekonekciju nakon npr. suspend modanpr. ako zahtjevana operacija traje određeno vrijrme tada se sabirnica može osloboditi za komunikaciju drugih uređaja

Page 399: Arhitektura Racunala - skripta

SCSI signalizacija (2)

Komanda – inicijator zahtijeva komunikaciju sa odredištemZahtijevaju se podaciZahtijeva se statusZahtijeva se poruka (obostrano)

Page 400: Arhitektura Racunala - skripta

Faze rada SCSI sabirnice

ArbitrationBus free (Re)Selection

Command,Data, Status,Message

Reset

Page 401: Arhitektura Racunala - skripta

SCSI Timing Diagram

Page 402: Arhitektura Racunala - skripta

Podešavanje/konfiguracija SCSIsabirnice

Sabirnica mora biti električki terminirana na oba kraja

uobičajeno je da je na jednom kraju host adapterna drugom kraju su terminatorski priključci

SCSI identifikator se mora postavitijumperi ili prekidačimoraju biti jedinstveni u cijelom lancu0 (zero) identifikator za boot jedinicuveći broj znači veći prioritet u arbitraciji

Page 403: Arhitektura Racunala - skripta

IEEE 1394 FireWire

Serijska sabirnica viskoih performansiBrzamali troškovi, jeftinajednostavna za implementacijuKoristi se kod digitalnih kamera, VCR-a, TV-a, fotoaparata, ...

Page 404: Arhitektura Racunala - skripta

FireWire ustroj

Daisy chainDo 63 devices na jednom portu

ustvari 64 od kojih je jedna i samo sučelje

Do 1022 busa se mogu povezati jednim bridgečipsetomAutomatska konfiguracijaNema sabirničkih terminatoraMože se oblikovati u stablastu strukturu

Page 405: Arhitektura Racunala - skripta

Organizacija FireWire-a u 3 nivoa –3 Layer Stack

FizičkaPrijenosni medij, električne i signalizacijske karakteristike

Veza/LinkPrijenos podataka u paketima

TransakcijeZahtjev-odgovor protokol

Page 406: Arhitektura Racunala - skripta

FireWire – Fizikalni nivo

Brzine prijenosa od 25 do 400MbpsDvije forme/načina arbitracije

Temeljeno na stablastoj strukturiKorjenski uređaj djeluje kao arbitar/pregovarač“Prvi dođe-prvi bude poslužen”Tko je najbliži korjenskom uređaju ima najveći prioritet“fer” arbitracijai žurbena/urgent arbitracija

Page 407: Arhitektura Racunala - skripta

FireWire - Link nivo

Dvije vrste prijenosaAsinkorni prijenos⌧Varijabilna količina podataka sudjeluje u procesu prijenosa u

obliku paketa⌧Explicitno adresiranje⌧prisutna potvrda prijema i/ili predaje podataka jednog

paketa

Izokrona/sinkrona⌧Podaci se prenose u paketima fiksne veličine u pravilnim

vremenskim intervalima⌧Vrlo jednostavno/pojednostavljeno adresiranje⌧Nema potvrde prijema/slanja paketa sa podacima

Page 408: Arhitektura Racunala - skripta

Organizacija i arhitektura računala

Poglavlje 7Podrška operativnog sustava

Page 409: Arhitektura Racunala - skripta

Ciljevi i funkcije

PrikladnostNapraviti računalo da bude što jednostavnije za uporabu

Efikasnost/učinkovitostOmogućiti što bolje iskorištenje računalnih resursa

Page 410: Arhitektura Racunala - skripta

Nivoi organizacije računalnog sustava

Page 411: Arhitektura Racunala - skripta

Zadaće operativnog sustava

Izrada programaIzvršenje programaPristup I/O jedinicamakontrolirani pristup datotekamapristupi na razini sustavaDetekcija i odgovori na pojavu greškeOpsluga više korisnika

Page 412: Arhitektura Racunala - skripta

O/S kao upravljač rač. resursima

Page 413: Arhitektura Racunala - skripta

Vrste operativnih sustava

InteraktivniBatch/ŠaržniJednoprogramski (Uni-programming)Višeprogramski (Multi-tasking)

Page 414: Arhitektura Racunala - skripta

Prvi operativni sustavi...

Kasne 1940 do srednjih 1950Nije bilo operativnog sustavaProgram komunicira sa hardwareom izravnoDva su glavna problema:

Scheduling/periodičko izvršavanjeSetup time/vrijeme programiranja/pokretanja

Page 415: Arhitektura Racunala - skripta

Jednostavni “batch” sustavi

Rezidentan monitorski programKorisnik se naručuje operatoru za izvršavanje programaOperator izvršava program kada dodje na red / batchexecutionMonitorski program upravlja skvencom batch niza programa u svrhu redoslijednog izvršenja programaKada je jedan posao izvršen upravljanje se vrćamonitorskom programu koji pokreće izvršavanje slijedećeg posla sa listeMonitorski program upravlja redosljedom izvršavanja poslova

Page 416: Arhitektura Racunala - skripta

Jezik za kontrolu poslova / Job Control Language

Nalaže monitorskom programu što da radiobično se označava i počinje znakom $npr.

$JOB$FTN... instrukcije$LOAD$RUN... podaci$END

Page 417: Arhitektura Racunala - skripta

Željene hardwerskemogućnosti/značajke

Zaštita sadržaja memorijei na taj način zaštititi monitorski program

Timerda bi se spriječilo da jedan posao preuzme i monopolizira cijeli sustav

Privilegirane instrukcijeMože ih izvršiti samo monitorski programnpr. I/O instrukcije

Interrupti / programski prekidiOmogućavanje vraćanja kontrole nad izvršavanim programom uslijed mrtvih petlji, pogrešaka, ...

Page 418: Arhitektura Racunala - skripta

Višeprogramski “batch” sustavi

I/O uređaji vrlo sporiKada jedan program čeka I/O drugi može koristiti CPU

Page 419: Arhitektura Racunala - skripta

Jedan program...

Page 420: Arhitektura Racunala - skripta

Multiprogramiranje sa dva programa

Page 421: Arhitektura Racunala - skripta

Multiprogramiranje sa tri programa

Page 422: Arhitektura Racunala - skripta

Sustavi vremenske razdiobe / TImesharing systems

Omogućava korisniku direktnu interakciju sa računalomMultiprogramiranje omogućava većem broju korisnika interakciju sa računalom

Page 423: Arhitektura Racunala - skripta

Scheduling

To je ključ multiprogramiranjaDugoročno SrednjoročnoKratkoročnoI/O

Page 424: Arhitektura Racunala - skripta

Long Term Scheduling

Određuje koji programi su prijavljeni za procesiranjenpr. upravljanje slobodom multiprogramingaJednom kada je program stavljen na procesnu listu tada on postaje proces/posao kratkoročnog schedulera(ili ga se zamijeni za posao koji je srednjoročni)

Page 425: Arhitektura Racunala - skripta

Medium Term Scheduling

Dio funkciji zamjene...uobičajeno je temeljen na potrebama za upravljanjem multiprogramskih sustavaAko nema virtualne memorije tada srednjoročni scheduling postaje problem

Page 426: Arhitektura Racunala - skripta

Short Term Scheduler

Ima funkciju dispečeraTu spadaju poslovi fine gradacije u smislu koji će posao biti slijedeće na redunpr. koji će posao moći rabiti procesor u slijedećem vremenskom prozoru koji dolazi / time slot-u

Page 427: Arhitektura Racunala - skripta

Procesna stanja

Page 428: Arhitektura Racunala - skripta

Blok procesne kontrole

IdentifikatorStanjePrioritetProgramski brojačMemorijski pokazivačKonetkstualni podaciI/O statusInformacije o korisničkim accountima

Page 429: Arhitektura Racunala - skripta

Ključni elementi jednog O/S

Page 430: Arhitektura Racunala - skripta

Procesni Scheduling

Process

Request

EndLong-TermQueue

Short-Term

QueueCPU

I/O QueueI/O

I/O QueueI/O

I/O QueueI/O

Page 431: Arhitektura Racunala - skripta

Memorijski management

Uni-programMemorija je podijeljena na dva dijelaJedan dio za O/Sdrugi za program koji se izvršava

Multi-program“Korisnički” dio je podijeljen na manje dijelove i dijeljen je između aktivnih procesa

Page 432: Arhitektura Racunala - skripta

Mehanizam zamjene...

Problem: I/O jedinice su tako spore u suporedbiprema CPU-u čak i u višeprogramskimsustavima tako da je CPU najveći dio vremena besposlenRješenje:

Povećanje glavne memorije⌧Skupo⌧S vremenom dovodi do povećanja programa u smislu

zauzeća memorijeZamjena

Page 433: Arhitektura Racunala - skripta

Što je to zamjena?

Poslovi koji su dugoročno spremljeni na HDD – swap fileProces se “zamjenjuje” iz HDD-a u memoriju kad bude slobodnog mjestaKada se proces završi, “miče” se iz glavne memorijeAko niti jedan od procesa u gl. memoriji nije završio sa radom (npr.sve I/O jedinice su trenutno zauzete)

Zamjenjuje/postavlja se blokirani proces sa poslom na listi za čekanjeUčitava se i pokreče proces koji nije blokiran ili je to posve novi procesali proces zamjene poslova je ustvari I/O operacija budući se swap lista nalazi na HDD-u

Page 434: Arhitektura Racunala - skripta

Particioniranje

Dijeljenje memorije na dijelove u svrhu njene rezervacije za procese (uključujući i procese operativnog sustava)particije fiksne veličine

ne moraju biti jednake veličineProces se sprema na particiju najmanje raspoložive veličine u koju može statitu se može pojaviti određena količina “izgubljene” memorije zbog particija koje su nešto veće nego li to proces zahtijevaOvo se rješava particioniranjem memorije prema veličini procesa

Page 435: Arhitektura Racunala - skripta

Fiksnoparticioniranje

Page 436: Arhitektura Racunala - skripta

Varijabilno particioniranje (1)

Rezervira se samo ona količina memorije koliko to zahtijeva procesTo dovodi do pojave rupe na kraju memorije koja može biti premala da bi se iskoristila

samo jedna mala količina neiskoristive memorije na kraju je ipak manje nego kod fiksnog particioniranja i njenog viška memeorije

Kada su svi procesi blokirani tada se oni zamjenjuju sa novima koji nisu blokiranjiNew process may be smaller than swapped out processOpet imamo pojavu mem. rupe

Page 437: Arhitektura Racunala - skripta

Varijabilno particioniranje (2)

Sa vremenom će se pojaviti puno “viška”memorije zbog pojave rupa u particioniranju -> fragmentacijaRješenja:

Koalicioniranje – Spajanje susjednih memorijskih rupa u jednu velikuKompaktiranje – Sa vremena na vrijeme proskenirase cijela memorija i sve memorijske rupe se relocirajuu jedan slobodni memorijski blok/particiju

Page 438: Arhitektura Racunala - skripta

Efekt dinamičkog particioniranja

Page 439: Arhitektura Racunala - skripta

Relokacija

Nema garancije da će se proces uvijek učitati u isti dio memorijeInstrukcije u sebi sadrže i adrese

Pozicije podatakaAdrese za zahvat instrukcija (grananje)

Logičko adresiranje – relativno adresiranje u odnosu na početak programaFizičko adresiranje – egzaktno adresiranje memorije

Page 440: Arhitektura Racunala - skripta

Ustraničavanje memorije - Paging

Podjela memorije na dijelove jednake veličine, male djeliće – stranice, memorijske okvirePodjela programa na male djelove jednake veličine - straniceRezerviranje određenog broja stranica memorije prema veličini procesaO/S održava i osvježava ovu listi i vodi računa o broju slobodnih stranica memorijeProcesi ne zahtijevaju stranice memorije koje su logički i fizički poredane jedna za drugom

Page 441: Arhitektura Racunala - skripta

Logičko i fizičko adresiranje –Paging/memorijsko ustraničenje

Page 442: Arhitektura Racunala - skripta

Virtualna memorija

Zahtijeva ustraničenjeNe zahtijeva sve stranice procesa u memorijiUčitava samo ne stranice procesa koje su trenutno potrebne

Greška “stranice”ako tražena stranica procesa nije u memorijiO/S mora učitati traženu stranicu u memorijiMože se pojaviti i potreba da “zamjeni”stranicu procesa u svrhu oslobođenja memorijeStranice se izbacuju iz memorije na temelju povijesti njihovog korištenja – manje korištene stranice procesa prije će biti izbačene iz memorije nego koje se češće upotrjebljavaju

Page 443: Arhitektura Racunala - skripta

Thrashing

Previše procesa u premalo memorije...O/S prvodi puno vremena u “swap”-iranju iz HDD-a u gl. memoriju i obratnoJako malo vremena pstaje za koristan radDisk je stalno aktivanRješenja

Dobar algoritam za izmjenu i zamjenu stranica u gl. memorijiSmanjenje broja aktivnih procesaPovećanje kapaciteta glavne memorije

Page 444: Arhitektura Racunala - skripta

Dodatno...

Ne trebamo baš sve procese u memoriji, zar ne?“Stranice” procesa možemo učitavati po potrebitako da na kraju možemo u memoriju učitavatiprocese koji su relativno veliki jed imamo mjetauklanjanjem stranica procesa koji na ne trebaju ili njihovih dijelovaGlavna memorija zove se “stvarna” memorijaTako da korisnik “stvarnu” i “virtualnu”memoriju vidi kao jednu veliku memoriju –stvarna + virtualna = velika memorija

Page 445: Arhitektura Racunala - skripta

Struktura ustroja memorijskog ustraničavanja

Page 446: Arhitektura Racunala - skripta

Segmentacija

Ustraničenje obično nije vidljivo krajnjem korisniku/programeruSegmentacija to jeUobičajeno je da su program a i podaci razbacani po različitim memorijskim segmentimaMože postojati veliki broj zasebnih memorijskih segmenata kako za programe tako i za podatke

Page 447: Arhitektura Racunala - skripta

Prednosti segmentacije

Pojednostavljeno upravljanje strukturama podataka koje stalno ratu po volumenu podatakaOmogućava da se program izmjenjuje i rekompiliraneovisno o drugim programima, bez ponovnog učitavanjaNa ovaj način omogućeno je dijeljenje podataka među procesima a i samih programaisto tako omogućava i zaštitu od pristupa drugih programaneki sustavi čak kombiniraju segmentaciju i ustraničavanja

po ustroju su to dva vrlo slična procesa sa istom namjerom

Page 448: Arhitektura Racunala - skripta

Organizacija i arhitektura računala

Poglavlje 8Računalna aritmetika

Page 449: Arhitektura Racunala - skripta

Aritmetiko-logička jedinica

Radi razne izračuneSve ostale jedinice u računalu su tamo da služe ALU jediniciRadi samo sa cijelim brojevimaMože raditi i sa brojevima sa pomićnim zarezom – FloatPoint NumbersMože biti kao zasebna jedinica – matematički koprocesorMože biti kao odvojena jedinica – fizički odvojeni FPU (486DX +)

Page 450: Arhitektura Racunala - skripta

ALU Ulazi i zlazi

Page 451: Arhitektura Racunala - skripta

Prezentacija cijelog broja

Sa pomoću 0 i 1 se može prikazati bilo koji brojSamo pozitivni brojevi – “čisti” binarni format

npr. 146=10010010

nema preznaka “-” – negativnih brojevanema decimalne točkemogućnost predznakadvostruki komplement

Page 452: Arhitektura Racunala - skripta

Predznak

MSB bit rezerviran za predznak0 znači pozitivan broj1 znači negativan broj+18 = 00010010-18 = 10010010Problemi:

Treba voditi računa i o predznaku i o apsolutnoj vrijednosti broja u aitmetičkim operacijamadva načina zapisivanja broja nula (+0 i -0)

Page 453: Arhitektura Racunala - skripta

Dvostruki komplement

+3 = 00000011+2 = 00000010+1 = 00000001+0 = 00000000-1 = 11111111-2 = 11111110-3 = 11111101

Page 454: Arhitektura Racunala - skripta

Korist dvostrukog komplementa

Samo jedan način prikaza broja 0Jednostavnija matematikaOperacija negacije je vrlo jednostavna

3 = 00000011Booleov komplement 11111100Dodati 1 LSB bitu 11111101

Page 455: Arhitektura Racunala - skripta

Geometrijski prikaz dvostrukog komplementa cijelog broja

Page 456: Arhitektura Racunala - skripta

Specijalni slučaj negacije - 1

0 = 00000000Bitwise not 11111111Add 1 LSB bitu +1Rezultat 1 00000000Overflow se ignorira, tako da imamo:- 0 = 0 √

Page 457: Arhitektura Racunala - skripta

Specijalni slučaj negacije - 2

-128 = 10000000bitwise not 01111111Add 1 LSB bitu +1Rezultat 10000000Dobijemo:-(-128) = -128 XObratiti pažnju na MSB bit (bit predznaka)a treba se promijeniti tijekom negacije

Page 458: Arhitektura Racunala - skripta

Raspon skupa brojeva

8 bitni dvostruki komplement+127 = 01111111 = 27 -1-128 = 10000000 = -27

16 bitni dvostruki komplement+32767 = 011111111 11111111 = 215 - 1-32768 = 100000000 00000000 = -215

Page 459: Arhitektura Racunala - skripta

Konverzije brojeva s obzirom na njihovu binarnu dužinu

Pozitivni brojevi pakirani sa vodećim nulama -leading zeros+18 = 00010010+18 = 00000000 00010010Negativni brojevi pakirani sa vodećim jedinicama - leading ones-18 = 10010010-18 = 11111111 10010010npr. pakiranje sa MSB bitom (predznakom)

Page 460: Arhitektura Racunala - skripta

Zbrajanje i oduzimanje

Normalno binarno zbrajanjeGleda se overflow bit u slučaju preljeva

Operacija oduzimanja svodi se na operaciju zbrajanja pozitivnog broja a i negativnog broja b

a - b = a + (-b)

tako da samo trebamo operaciju zbrajanja i jedinicu za negaciju/komplement

Page 461: Arhitektura Racunala - skripta

Hardwersko zbrajanje i oduzimanje

Page 462: Arhitektura Racunala - skripta

Množenje

To je kompleksna operacijaRadi se na način da se za svaki bit/znamenku izračunava samo dio umnoška i na kraju dijelovi umnoška se zbrajaju

slično kao i množenje u decimalnom sustavu –metoda potpisivanja množaka

Page 463: Arhitektura Racunala - skripta

Primjer množenja

1011 Multiplikand (11 dec)x 1101 Multiplikator (13 dec)

1011 djelomični umnožak0000 Važno: ako je multiplikatorski bit 1 onda samo kopiraj

1011 multiplikand1011 inače nula10001111 umnožak (143 dec)Važno: Rezultat je dvostruke duljine nego li su to operandi

Page 464: Arhitektura Racunala - skripta

Binarno množenje bez predznaka

Page 465: Arhitektura Racunala - skripta

Postupak izvršenja operacije množenja - primjer

Page 466: Arhitektura Racunala - skripta

Dijagram toka postupka binarnog množenja bez predznaka

Page 467: Arhitektura Racunala - skripta

Množenje negativnih brojeva

Ovo ne ide, ne može se!Rješenje 1

Ako je potrebno onda se negativni broj pretvori u pozitivnimnože se normalnim postupkomako su predznaci operanada različiti tada je rezultat negativan broj

Rješenje 2Booth-ov algoritam

Page 468: Arhitektura Racunala - skripta

Booth-ov algoritam

Page 469: Arhitektura Racunala - skripta

Primjer Booth-ovog algoritma

Page 470: Arhitektura Racunala - skripta

Dijeljenje

još složenije od množenjaNegativni brojevi stvarno mogu biti problem!Postupak se temelji na postupcima dugotrajnog i zahtjevnog djeljenja

Page 471: Arhitektura Racunala - skripta

001111

Djeljenje binarnog broja bez predznaka

1011

00001101

100100111011

0011101011

1011100

Quotient

Dividend

Remainder

PartialRemainders

Divisor

Page 472: Arhitektura Racunala - skripta

Realni brojevi

Brojevi sa decimalnom točkomMogu se izvesti u gormi čistog binarnog broja

1001.1010 = 24 + 20 +2-1 + 2-3 =9.625

gdje je tu decimalna točka?Fiksna decimalna točka?

Vrlo ograničeni brojevni skup

Pomična decimalna točka?Kako je postavljena i gdje je ta točka?

Page 473: Arhitektura Racunala - skripta

Brojevi sa pomičnim zarezom

+/- .significand x 2exponent

Točka je zapravo fiksirana između znaka predznaka i ostatka brojaEksponent otkriva područje potencije prikazanog broja

Sign

bit

BiasedExponent

Significand or Mantissa

Page 474: Arhitektura Racunala - skripta

Primjer broja sa pomičnim zarezom

Page 475: Arhitektura Racunala - skripta

Predznaci za float-brojeve

Mantissa je pohranjena u formatu dvostrukog komplementaKako je zapisan i što znači eksponentni dio

npr. eksponent (bias) 128 znači8 bit eksponentčija vrijednost može biti od 0-255i oduzima mu se 128 da bi se dobila korektna vrijednost eksponentapodručje vrijednosti je -128 do +127

Page 476: Arhitektura Racunala - skripta

Normalizacija

FP su uobičajeno normaliziraninpr. eksponent je tako podešen da je MSB mantisejedinica (1)Budući da je on uvijek 1, tada taj bit nije potrebno sprematiprimjer; znanstveni način zapisivanja brojeva je takav da je normaliziran na način da se uvijek dobije broj koji ispred zareza ima samo jednu brojku

npr. 3.123 x 103)

Page 477: Arhitektura Racunala - skripta

Područje FP brojeva

Za 32 bitne brojeve to je:8 bit eksponent+/- 2256 ≈ 1.5 x 1077

Točnost je...ovosi o promjenjivosti LSB-a mantisse23 bitna mantissa 2-23 ≈ 1.2 x 10-7

oko 6 decimalnih mjesta

Page 478: Arhitektura Racunala - skripta

Područja korektnog prikaza brojeva

Page 479: Arhitektura Racunala - skripta

IEEE 754

Standard za FP pohranu/zapis brojeva32 i 64 bitni standard8 i 11 bitni eksponentProšireni format format (i mantissa i eksponent)

Page 480: Arhitektura Racunala - skripta

FP aritmetika +/-

Provjera prisutnosti nule (broj 0)Podešavanje eksponenataZbrajanje ili oduzimanjeNormalizacija rezultata

Page 481: Arhitektura Racunala - skripta

FP aritmetika x/÷

Provjera prisutnosti nulezbrajanje/oduzimanje eksponenatamnoženje/dijeljenje signifikanada – paziti na predznakNormalizacijaZaokruživanjeSvi rezultati trebaju biti dvostruke duljine nego li su to operandi/signifikandi

Page 482: Arhitektura Racunala - skripta

FPMnoženje

Page 483: Arhitektura Racunala - skripta

FPDijeljenje

Page 484: Arhitektura Racunala - skripta

Organizacija i arhitektura računala

Poglavlje 9Instrukcijski skup:

Karakteristike i funkcije

Page 485: Arhitektura Racunala - skripta

Što je to instrukcijski skup?

To je skup instrukcija koje CPU razumije i prema njima radi određene radnjeStrojni kôdbinarni k ôdobično je vidljiv prilikom asemblerskogprogramiranja

Page 486: Arhitektura Racunala - skripta

Elementi jedne instrukcije

Operacijski kôd (Op code)napravi to i to...

Izvorni operandNapravi nešto od ovoga...

Rezultantni operandSpremi rezultat ovdje...

Slijedeća instrukcija je...Kad si završio sa ovom instrukcijom, idi na slijedeću tu i tu instrukciju

Page 487: Arhitektura Racunala - skripta

Gdje su svi ti silni operandi, gdje završe, što se sa njima događa?

Ako se sada to pitate... onda ste puno toga prije ovog predavanja propustili ☺pa... u glavnoj memoriji, virtualnoj memoriji, cacheu,...CPU registrimaI/O jedinicama

Page 488: Arhitektura Racunala - skripta

Način zapisivanja/predstavljanja instrukcije

U strojnom kôdu svaka instrukcija ima jedinstveni binarni zapisZa lakšu prezentaciju čovjeku kao programeru instrukcije su prikazane simbolički

npr. ADD, SUB, LOAD

Operandi također ovako mogu biti prikazaniADD A,B

Page 489: Arhitektura Racunala - skripta

Vrste instrukcija

procesiranje podatakapohrana podataka (glavna memorija)Premještanje podataka (I/O)Kontrola tijeka programa

Page 490: Arhitektura Racunala - skripta

Načini adresiranja (a)

3 adreseOperand 1, Operand 2, Rezultata = b + c;Može biti i 4. adresa - slijedeća instrukcija (obićno je to implicitno izraženo)ali nije uobičajenoPotrebne su vrlo velike riječi da bi se takva instrukcija mogla pohraniti

Page 491: Arhitektura Racunala - skripta

Načini adresiranja (b)

2 adreseJedna adresa je i za operand i za rezultata = a + bRedukcija duljine instrukcijeTraži još dodatne podoperacije – dodatan posao⌧Privremeni spremnik za čuvanje privremenih rezultata

Page 492: Arhitektura Racunala - skripta

Načini adresiranja (c)

1 adresaimplicitna druga adresaobično je to nekakav registar (accumulator)oubičajeni način adresiranja kod prvotnih računala

Page 493: Arhitektura Racunala - skripta

Načini adresiranja (d)

0 (zero) adresasve adrese su implicitnekoristi se stog/stacknpr. push a

push baddpop c

c = a + b

Page 494: Arhitektura Racunala - skripta

Koliko i koji način adresiranja?

Više adresa u instrukcijiSložene (moćne?) instrukcijeViše registara⌧operacije među registrima su najbrže operacije

Manje instrukcija po programu – kraći i manji programi

Manje adresa u instrukcijiManje složene (i moćne?) instrukcijeViše instrukcija po programuali i brži instrukcijski ciklus zahvata/izvršenja takvih instrukcija

Page 495: Arhitektura Racunala - skripta

Što odabrati, kako dizajnirati sustav (1)

Repertoar operacijakoliko ops?kako to one mogu obaviti?Koliko su one kompleksne?

Vrsta podatakaInstrukcijski formati

Duljina op code poljaBroj adresa/način adresiranja

Page 496: Arhitektura Racunala - skripta

Što odabrati, kako dizajnirati sustav (2)

RegistriBroj raspoloživih CPU registaraKoje se operacije mogu izvoditi na kojim registrima?

Načini adresiranja…

RISC protiv CISC-a

Page 497: Arhitektura Racunala - skripta

Tipovi operanada

AdreseBrojevi

Integer/floating point

Znakovi/CharactersASCII

Logički podaci/Logical DataBitovi ili zastavice/flags

Page 498: Arhitektura Racunala - skripta

Tipovi podataka kod Pentuim-a

8 bit Byte16 bit word32 bit double word64 bit quad wordAdresiranje se izvodi putem 8-bitne jedinice32 bit double word se čita na adresama djeljivim sa 4 (32bit=4x1byte)

Page 499: Arhitektura Racunala - skripta

Specifični tipovi podataka

Generalno – čisti binarni podaciInteger - single binary valueOrdinal - unsigned integerNepakirani BCD - One znamenka po byteuPakirani BCD - 2 BCD znamenke po byteuPokazivači blizine - 32 bitni offset unutar nekog segmentaBit poljeByte StringFloating Point

Page 500: Arhitektura Racunala - skripta

Vrste operacija

Prijenos podatakaArtimetikaLogičke operacijePretvorbe/konverzijaI/OSistemsko upravljanjePrijenos ovlasti upravljanja

Page 501: Arhitektura Racunala - skripta

Prijenos podataka

Specificira/određujeIzvorOdredištekoličinu podataka za prijenos

Mogu postojati različite instrukcije za različite operacije prijenosa podataka

npr. IBM 370

ili jedna instrukcija sa različitim adresiranjemnpr. VAX

Page 502: Arhitektura Racunala - skripta

Aritmetika

Add, Subtract, Multiply, DivideSigned IntegerFloating point ?maže sadržavati

Increment (a++)Decrement (a--)Negate (-a)

Page 503: Arhitektura Racunala - skripta

Logičke operacije

Operacije na razini jednog bita – bit-po-bitAND, OR, NOT

Page 504: Arhitektura Racunala - skripta

Operacije konverzija/pretvorbe

npr. binarni broj u BCD zapis

Page 505: Arhitektura Racunala - skripta

I/O operacije

Mogu postojati I/O operacije specifične za pojedine vrste I/O jedinicaili se mogu koristiti instrukcije za prijenos podataka – ako je I/O memorijski mapiranaili putem odvojenog DMA kontrolera

Page 506: Arhitektura Racunala - skripta

Operacije sistemske kontrole

Privilegirane instrukcijeCPU mora biti u posebnom stanju

Ring 0 kod 80386+Kernel mode

Koriste se kod O/S-a

Page 507: Arhitektura Racunala - skripta

Operacije prijenosa ovlasti upravljanja

Granjanjenpr. granaj se na x ako je rezultat nula

Preskok/skoknpr. inkrement i skok ako je nulaISZ Register1granaj xxxxADD A

pozivi potprogramapoziv interrupt potprograma

Page 508: Arhitektura Racunala - skripta

Poredak byte-ova

Kojim redoslijedom isčitavamo byteove broja ako on zauzima više od jednog bytea?npr. broj može biti pohranjen u hex-a formatu i zauzimati 4-8 byteova12345678 može se pohraniti 4x8bit na slijedeći način...

Page 509: Arhitektura Racunala - skripta

Poredak byte-ova (primjer)

Adresa Value (1) Value(2)184 12 78185 34 56186 56 34186 78 12

npr. čitati odozgo prema dolje ili obratno?

Page 510: Arhitektura Racunala - skripta

Nazivi poredaka byte-ova

Ovaj problem se naziva “Endian”Sustav zapisivanja lijevo (Value-1) ina na najnižoj adresi najmanje značajan, LSB, byteOvaj način se zove – BIG-ENDIANDesni sustav ima LSB na najvišoj adresi ion se zove – LITTLE-ENDIAN

Page 511: Arhitektura Racunala - skripta

Standardi... što je standard?

Pentium (80x86), VAX su little-endianIBM 370, Motorola 680x0 (Mac), i većina RISC su big-endianInternet je big-endian

što čini pisanje internet programa na PC-u još više problematičnim!WinSock omogućava i pruža “htoi” i “itoh” (Host to Internet & Internet to Host) funkcije za konverziju