P. 1
Arhitektura Racunala - skripta

Arhitektura Racunala - skripta

|Views: 1,679|Likes:
Published by Ismar Kunc

More info:

Published by: Ismar Kunc on Feb 26, 2012
Copyright:Traditional Copyright: All rights reserved

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

07/31/2013

pdf

text

SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI

ARHITEKTURA RAČUNALA
Nastavnik: Prof.dr.sc. Sven Gotovac Asistent: Goran Kraljević, dipl.ing.rač.

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

1

O predmetu

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

Pitanja, primjedbe, dogovor za konzultacije ...

 To: goran.kraljevic@hteronet.ba  Subject: ADR

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

2

Polaganje ispita kroz kolokvije ...

1. kolokvij 2. kolokvij Vježbe (asembler Intel 8086)

100 bodova 100 bodova 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.

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

3

Uvod

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

4

Funkcijski model von Neumannova računala

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

5

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.

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

6

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

Procesor (CPU)
Upravljačka jedinica

Upravljačka sabirnica (upravljački signali) Adresna sabirnica (adresa mem.lokacije)

ALU

Memorija

U/I uređaji

Registri

Podatkovna sabirnica (podatak iz memorije)

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

7

Ciklus izvoĎenja operacije

(zapisivanje podataka u memoriju)

Procesor (CPU)
Upravljačka jedinica

Upravljačka sabirnica (upravljački signali) Adresna sabirnica (adresa mem.lokacije)

ALU

Memorija

U/I uređaji

Registri

Podatkovna sabirnica (podatak u memoriju)

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

8

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.

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

9

Isječak iz Intelove porodice procesora

Tip procesora 4004 8008 8080 8086 286 386 486 DX

Godina 1971. 1972. 1974. 1978. 1982. 1985. 1989.

Data/Adress Bus 4/12 bit 8/14 bit 8/16 bit 16/20 bit 16/24 bit 32/32 bit 32/32 bit

Br. tranzistora 2.250 2.500 5.000 29.000 120.000 275,000 1,180.000

Pentium
Pentium Pro Pentium II Pentium III Pentium 4

1993.
1995. 1997. 1999. 2000.

64/32 bit
64/36 bit 64/36 bit 64/36 bit 64/36 bit

3,100.000
5,500.000 7,500.000 24,000.000 42,000.000

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

10

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

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

11

Glavni dijelovi procesora ...

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

12

Hijerarhijska organizacija memorije

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

13

Hijerarhijska organizacija memorije

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

14

Pentium – hijerarhijske razine memorije

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

15

Matična ploča za Pentium 4

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

16

U/I sučelja

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

17

Uvod u asembler

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

18

Različiti pogledi na računalo

31
1.10 Looking Ahead

0

PC
Viđenje programskog brojila sa stajališta programera
32 B bus 32 32 A bus PCout clk PCin

that comes from viewing The intellectual synthesis ectives each the three persp a computer system from uter design. It nt, effective comp leads to an efficie ine functions rstand how a mach is when you unde architectu re level m and the syste at the gate, ISA,

ther machine. Whe understand the that you fully puter Science, ctive is in Com of your career obje other aspect , or some Engineering book Computer e that this erest hop ing. it is our sinc computers t understand viding tha you by pro will serve

D

Q

clk

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

 Korisnički pogled

na računalo

 Pogled projektanta

arhitekture računala

 Pogled programera  Pogled projektanta

logičkih sklopova

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

19

Hijerarhijski model arhitekture računala

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

20

Pogled na računalo programera u simboličkom jeziku

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

21

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 mogao obavljati 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.

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

22

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

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

23

Razine programskih jezika – Primjer

Programski jezik više razine:
a=b+c;

Asembler:
ld r6,24 ld r7,28 add r5,r6,r7 st r5,32

Strojni oblik:
00001 00110 00000 00000000000011000 00001 00111 00000 00000000000011100 01100 00101 00110 00111 000000000000 00011 00101 00000 00000000000100000

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

24

Prikaz informacija u računalu

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

25

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

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

26

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

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

27

Binarni brojevni sustav

• Znamenke su 0 i 1, dakle baza brojanja B=2 što određuje binarni 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 }

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

28

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.

qn-1 D Q D Q

qn-2 D Q

q0

...

dn-1
Ak.god. 2010/2011.

dn-2
ARHITEKTURA RAČUNALA – vježbe

d0
29

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
ARHITEKTURA RAČUNALA – vježbe 30

Ak.god. 2010/2011.

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 4 100 5 101 6 110 7 111 23 -1

+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]

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

31

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

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

32

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

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

33

Zbrajanje binarnih brojeva

• Primjer 1. 100 + 10 110

• Primjer 2. 111 + 101 1100

• Zbrajanje u registru s ograničenim brojem bita 1 1 1 1 + 0 0 1 0 1 0 0 0 1
Preljev (overflow)

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

34

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

37
+ -37

0 0 1 0 0 1 0 1 1 1 0 1 1 0 1 0 1 1 1 0 1 1 0 1 1 0 0 1 0 0 1 0 1
1 0 0 0 0 0 0 0 0

+ 37

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

35

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 1111 (jedinični komplement) - 0 1 0 1 1010
Komplement do baze-1 Komplement do baze

(dvojni komplement)

1010 +0001 1011

Dokaz da je dobiveni broj - 5 1 0 1 1 (- 5) + 0 1 0 1 (+5) 0000

Operacija oduzimanja: 7 - 5 0 1 1 1 ( 7) + 1 0 1 1 (-5) 0010

Preljev 1

Preljev 1
ARHITEKTURA RAČUNALA – vježbe 36

Ak.god. 2010/2011.

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]

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

37

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 3 1 . 6 2
(2)

= 31.62

(8)

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

38

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 heksadecimalni ekvivalent 0111 1011 0011 1110 7 B 3 E
(16)

11001.11001(2) = 1 1001 . 1100 1000 = 19.C8 1 9 . C 8

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

39

Brojevi u različitim bazama
Bin. 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 Dec. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Hex. 0 1 2 3 4 5 6 7 8 9 A B C D E F Okt. 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

40

Razlomljeni binarni brojevi

• Razlomljeni binarni brojevi sadrže "binarnu točku", analogno decimalnom zarezu, odnosno točki u angloamerič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 = =101.112

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

41

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 0.50 .5 * 2 1.0 1.0 1

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

42

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 1 1 . 1 1 * 2-2 = 0 . 0 1 1 1 Kako u registar pohraniti točku?

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

43

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 P Karakteristika 0 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).

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

44

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.

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

45

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

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

46

Raspon i preciznost prikazivanja realnih brojeva

• Karakteristike Raspon 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

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

47

Realni brojevi dvostruke preciznosti

Deklaracija u programskom jeziku C: double

63 62 52 51 P Karakteristika
• • •

0
Mantisa

P je predznak ( P=1 negativan, P=0 pozitivan) Karakteristika je binarni eksponent + 1023 (11 bita) Mantisa je normalizirana (52 + 1 bit).

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

48

Raspon i preciznost prikazivanja realnih brojeva dvostruke preciznosti

• Karakteristike Raspon 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

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

49

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.

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

50

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

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

51

ASCII kod

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

52

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

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

53

UNICODE

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

54

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

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

55

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

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

56

Potencije broja 2

• Neke 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
...

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

57

Pitanja i zadaci za ponavljanje

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

58

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, ...)

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

59

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

Ak.god. 2010/2011.

ARHITEKTURA RAČUNALA – vježbe

60

Organizacija i arhitektura računala
Poglavlje 1

- UVOD -

Arhitektura i organizacija 1
Arhitektura predstavlja atribute računala vidljive programeru Instrukcijski 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?

Arhitektura i organizacija 2
Cjelokupnu Intel x86 obitelj karakterizira/dijeli istovjetnu temeljnu arhitekturu IBM System/370 obitelj također karakterizira ista temeljna arhitektura Ovo daje kompatibilnost kôda
U najmanju ruku prema generacijama unazad

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

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

Funkcije računala
Funkcije računala su:
Procesiranje podataka Pohrana podataka Upravljanje/management podataka Upravljanje

Funkcionalni dijagram računala
Funkcionalni pogled na računalo
Pohrana podataka

Upravlj. prebaciva njem podataka

upravljački mehanizam

Procesiranje podataka

Operacije (1)
Upravljane prebacivanjem podataka
npr., od tipkovnice do zaslona monitora
Data Storage Facility

Data Movement Apparatus

Control Mechanism

Data Processing Facility

Operacije (2)
Pohrana podataka
npr. download sa interneta na disk
Data Storage Facility

Data Movement Apparatus

Control Mechanism

Data Processing Facility

Operacije (3)
Procesiranje podataka
npr. upravljanje bazom podataka
Data Storage Facility

Data Movement Apparatus

Control Mechanism

Data Processing Facility

Operacije (4)
Procesiranje podataka, iz pohrane na I/O
npr. ispis liste studenata iz baze podataka
Data Storage Facility

Data Movement Apparatus

Control Mechanism

Data Processing Facility

Struktura - Top Level
Periferija

Računalo
glavna memorija

CPU Računalo

Sistemske sabirnice

I/O jedinice Kominikacijska sučelja

Struktura - CPU
CPU
Computer
I/O System Bus Memory CPU

Registri

ALU jedinica

Interne CPU interkonekcija

Kontrolna jedinica

Struktura – Kontrolna jedinica
Kontrolna jedinica
CPU
ALU Internal Bus Registers Control Unit

Logika sekvenciranja

Kontrolna jedinica, registri i dekoderi

Memorija kontrolne jedinice

Organizacija i arhitektura računala
Poglavlje 10 g j

Instrukcijski skup: Adresni modovi i formati

Adresni modovi
Izravni po značaju - Immediate Izravni - Di t I i Direct Neizravni - Indirect Registarski - Register Registarski neizravni - Register Indirect Adr. sa odmakom - Displacement (Indexed) Stack St k

Adresiranje izravno po značenju
Operand je dio instrukcije Operand = adresno polje ili adresa O d d lj d Npr. ADD 5
Dodaj 5 sadržaju akumulatora 5 je u ovom slučaju operand

Nema referenciranja na memoriju u pogledu zahvata/fetch podatka Ovo je doista brzo Ali i ograničene uporabne vrijednosti

Dijagram izravnog adresiranja po značenju
Instrukcija Opcode Operand

Izravno adresiranje
Adresno polje sadrži adresu operanda u memoriji gdje se nalazi Efektivna adresa (EA) = adresno polje (A) npr. ADD A p Dodaj sadržaj mem. ćelije/polja A vrijednosti u akumulatoru Pogledaj/potraži memorijsku lokaciju na dresi A za operand Samo jedno referenciranje/obraćanje memoriji za pristup tome podatku Nema dodatnih kalkulacija za izračun efektivne adrese ali je i adresni prostor na ovaj način limitiran

Dijagram izravnog adresiranja
Instrukcija Opcode Adresa A Memorija

Operand

Neizravno adresiranje (1)
Na memorijsku ćeliju/lokaciju ukazuje adresni pokazivač unutar adresnog polja operanda instrukcije EA = (A)
Pogledaj vrijednost mem. pokazivača A, pronađi adresu operanda na mem. adresi na (A) i tamo d d d i t potraži vrijednost traženog operanda npr. npr ADD (A) Akumulatoru dodaj sadržaj lokacije/ćelije memorije na koju je ukazao adresni pointer na lokaciji A

Neizravno adresiranje (2)
Vrlo veliko adresno područje 2n gdje je n = d lji jedne riječi dj j duljina j d ij či Može biti u ugniježđeno adresiranje, multilevel ili kaskadirano
npr. EA = (((A)))
⌧Pokušajte sami nacrtati dijagram ovog načina adresiranja operanada

Ovo htij O zahtijeva višestruki pristup memoriji za iš t ki i t iji pronalazak operanda te nešto usporava cijelu stvar u cijelosti...

Dijagram neizravnog adresiranja
Instrukcija Opcode d Adresa A d Memorija
Pokazivač P k i č na operand

Ope a d Operand

Registarsko adresiranje (1)
Operand se “drži”/čuva u registru imenovanim od strane adresnog polja instrukcije EA = R Ograničen broj registara na raspolaganju!!! j p j Potrebno je vrlo malo adresno polje
Kraće instrukcije – po duljini i brži zahvat instrukcije iz memorije, općenito. j j , p

Registarsko adresiranje (2)
Ne traži/treba i t N t ži/t b pristup memoriji iji Vrlo brzo izvršavanje takve instrukcije Vrlo ograničeno adresno područje Korištenje više registara povećava performanse
Ovo zahtijeva veliku koncentraciju dobru sposobnost j p g j korištenja i programiranja u asembleru u C-u...
⌧register int a;

po svojoj prisrodi slično kao i izravno adresiranje

Dijagram registarskog adresiranja
Instrukcija Opcode Register Adresa R Registri

Operand

Registarsko indirektno adresiranje
slično kao i indirektno adresiranje 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 to kod neizravnog adresiranja...

Dijagram registarskog neizravnog adresiranja
Instrukcija Opcode Register Adresa R Memorija

Registri
Opkazivač na adr. operanda p

Operand

Adresiranje sa odmakom... Displacement Addressing
EA = A + (R) Adresno polje sadrži dvije vrijednosti Ad lj d ži d ij ij d ti
A = bazna/temeljna adresa R = registar koji sadrži veličinu adresnog “odmaka” a može i obrnuto

Dijagram adresiranja sa odmakom
Instrukcija Opcode Register R Adresa A Registri
Pokazivač na adr. operanda

Memorija

+

Operand

Relativno adresiranje
To je verzija adresiranja sa odmakom R=P Program counter, PC t EA = A + (PC) nor. zahvati operand iz ćelije/lokacije A relativno u odnosu na lokaciju pokazanu od strane PC-a j p koristi se za referenciranje lokacije unutar mem. segmenta ali i kod cache meorije

Registarsko adresiranje bazne/temeljne adrese
A sadrži iznos odmaka adrese R sadrži pokazivač mem. adrese za baznu d ži k i č d b adresu R može biti eksplicitan ili implicitan u ukazu na adresu bazne adrese npr. memorijski segmentni registri u 80x86

Indeksirano adresiranje
A = bazna/temeljna adresa R = vrijednos adresnog odmaka ij d d d k EA = A + R Jako dobar pristup za adresiranje vektora i matrica
EA = A + R R++

Kombinacije adresiranja...
Postindeksiranje EA = (A) + (R) Preindeksiranje EA = (A+(R))

Stack adresiranje
Operand je/nalazi se/sprema se (implicitno) na vrhu stoga/stacka npr.
ADD Uzmi/pokupi dva operanda na vrhu stacka/stoga i zbroji ih

Instrukcijski formati
definira poredak/ustroj bitova u instrukciji koji d fi i k ji definira operacijski kod ij ki k d i sadržava (implicitno ili ekspplicitno) operand ili operande j j p j j Uobičajena je pojava korištenja više oblika instrukcijskih formata u jednom instrukcijskom skupu/setu. p /

Duljina instrukcije
Definirana je od strane i definira:
Veličinu memorije – memorijskog prostora Memorijsku organizaciju Bus t kt B strukturu – k komunikacijsku infrastrukturu ik ij k i f t kt Kompleksnost CPU-a Brzinu CPU B i 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

Organizacija i arhitektura računala
Struktura CPU-a i njegove funkcije j

CPU struktura
CPU mora obavljati slijedeće zadatke:
Zahvat instrukcija - Fetch instructions Interpretacija/dekodiranje instrukcija - Interpret instructions Zahvat podataka - Fetch data Procesiranje podataka Ispis/pisanje podataka

Registri
CPU mora imati na raspolaganju određeno radno područje na raspolaganju – privremeno pohranilište podataka koji k ji se zovu... registri i t i Broj i funkcija istih varira od procesora do procesora i ovisna je o njegovom dizajnu To je ujedno i glavna odluka kod dizajna j j g j procesora Oni su najviša točka u memorijskom hijerarhijskom ustroju

Registri vidljivi korisniku
Registri za općenitu uporabu - General Purpose Podatkovni registri P d tk i i ti Addresni registri Registri za instrukcije uvjetovanja, uvjetna g grananja i skokove - Condition Codes Registers j g

Registri opće namjene (1)
Mogu biti za doista istinsku općenitu najmjenu – za sve i svašta svašta... Bogu biti za ograničenu uporabu / specijalizirani – restricted registers ti t d i t Mogu se koristiti za podatke ili adresiranje istih Registri za podatke
Akumulator

Adresiranje
Segmentni registri

Registri opće namjene(2)
Ako su za istinsku općenitu uporabu...
Povećavaju fleksibilnost programiranja i olakšavaju ga... donekle ali i povećavaju veličinu/duljine instrukcije i njenu kompleksnost

A ako su specijalizirani... dobivamo specijalizirani
Manje i brže instrukcije ali i manju fleksibilnost programiranja. programiranja

Koliko GP registara koristiti?
Između 8 - 32 Ako j Ak ih je manje = i j imamo više memorijskih iš ij kih referenciranja/zahvata Više njih ne smanjuje broj memorijskih zahvata ali čini procesor više fleksibilnim i kompleksnijim

Koliko veliki trebaju biti?
Dovoljno veliki da mogu sadržavati/pohraniti potpunu adresu i dovoljno veliki da mogu sadržavati/pohraniti cijelu instrukcijsku riječ. ij l i t k ij k ij č Često je moguće i kombinirati sva podatkovna registra.. na način, npr.:
C programiranje double int a; long int a;

Registri za “uvjetni” kod...
Skup individualnih bitova
npr. npr rezultat zadnje operacije je bila nula (“0”)

Mogu se čitati (implicitno) od strane programa/aplikacije / lik ij
npr. skoči ako je nula (“0”)

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

Upravljački i statusni registri
Programski brojač - Program Counter Registar R i t za dekodiranje instrukcije - I t ti d k di j i t k ij Instruction Decoding Register Memorijski adresni registar - Memory Address Register Memorijski podatkovni registar - Memory Buffer Register g

Programska statusna riječ Program Status Word
Predstavljena je nizom bitova unutar registra širine jedne riječi... jednostavno Uključuje i kontrolu koda za postavljanje “uvjeta” uvjeta Includes Condition Codes Prikazuje status/oznaku posljednjeg dobivenog rezultata Označava pojavu nule “0” kao rezultata Sadrži i “Carry” bit Carry Označava pojavu “jednakosti” neke operacije Dojavljuje/ukazuje na prog. Preliv - Overflow prog Uključuje i/ili isključuje “interrupte” Služi i za nadzor, općenito. nadzor općenito

Supervizorski/nadzorni mod
Intel ring zero Kernel mod K l d Omogućava izvršavanje privilegiranih instrukcija Ovaj mod je korišten od strane O/S-a ali nije na raspolaganju korisničkim programima!!!

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

inače: dizajn CPU a i operativi sustav u CPU-a

čvrstoj su vezi te su ovisni jedno o drugome. drugome

Primjer organizacije registara

Instrukcijski ciklus procesora...
Objašnjeno u poglavlju 3

Indirektni ciklus instrukcije...
instrukcija može (a najčešće to i radi) zahtijevati pristup memoriji da bi zahvatila operande, operande indirektno adresiranje zahtijeva višestruke zahvate/memorijske pristupe operandima, h t / ij k i t di te se to na taj način može smatrati i posebnim dodatnim instrukcijskim podciklusom – instrukcijski subciklus zahvata višestrukih operanada iz memorije.

Instrukcijski ciklus sa indirektnim zahvatom... dijagram

Dijagram stanja instrukcijskog ciklusa sa indirektnim zahvatom

Protok/protočnost p p podataka (u ciklusu instrukcijskog zahvata) (1)
To ovisi o dizajnu procesora/CPU-a Generalno gledajući p g j protočni kanal je definiran koracima: j Fetch / Zahvati PC sadrži/pokazuje adresu slijedeće instrukcije Adresa se translatira u MAR Adresa iz MAR-a preslika se na adresnu sabirnicu Upravljačka jedinica šalje memoriji zahtijev za čitanje lokacije definirane adresom na adr. sabirnici Rezultat čitanja postavlja se na podatkovni dio sabirnice sa podatkovnog dijela sabirnice podatak se preslikava u MBR a iz MBR-a podatak se dalje proslijeđuje IR-u U međuvremenu sadržaj PC-a i k đ d ž j PC inkrementira se za 1 ti

Protok/protočnost p p podataka (u ciklusu instrukcijskog zahvata) (2)
sadržaj IR-a se analizira ukoliko IR sadržaj ukazuje na instrukciju koja koristi indirektno adresiranje tada se u instrukcijski ciklus fetch/execute uključuje i podcikljus indirektnog zahvata operanada iz memorije, na način: d i ij či N najznačajnijih bitova od MBR-a se proslijede MAR-u Upravljačka jedinica zahtijeva “čitanje”/pristup memoriji Rezultati čitanja (adrese operanada) translatiraju se u MBR

Slijedi dijagram...

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

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

Protok/protočnost podataka (u ciklusu instrukcijskog izvršenja)
Tijek toka podataka može poprimiti razne oblike u ovom slučaju To ovisi o instrukciji koja se izvršava Može sadržavati...
Čitanje/pisanje memorije Opsluga I/O jedinica Prijenos između registara ALU operacije

Protok/protočnost podataka (prilikom pojave interrupta)
Ovo je u principu vrlo jednostavno... i predvidljivo. p j Trenutni sadržaj PC registra se pohranjuje da bi se omogučio oporavak programa nakon obrade interrupta Sadržaj PC kopira S d ž j PC-a k i se u MBR “Specijalna” memorijska lokacija (npr. Stack/stog, stack pointer) učitava se u MAR Sadržaj MBR-a piše se u memorijsku lokaciju ukazanu od strane MAR-a Registar R i t PC učitava adresu interrupt vektora i njegove čit d i t t kt j rutine/potprograma i tek nakon toga slijedeća instrukcija može biti zahvačena (to je g j j ( j prva instrukcija interrupt potprograma)

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

Instrukcijski predzahvat Prefetch
Zahvat inače pristupa glavnoj memoriji Izvršenje instrukcije u uobičajenoj formi ne zahtijeva pristup gl. memoriji Pitanje... 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 unaprijedno zahvaćanje slijedeće i t k ij – ij d h ć j lij d ć instrukcije jednostavno PREDZAHVAT/PREFETCH!

Poboljšanje performansi?
Da, ali ne baš za dvostruko više:
Zahvat 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 da unaprijed zahvaćene instrukcije iz memorije nisu one koje grananje ili skok traže/zahtijevaju j g j / j j
⌧Nepotrebni pristupi memoriji?!?

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

Pipelining - Cjevovod
Zahvat instrukcije Dekodiranje instrukcije j j Izračun operanada (npr. efektivnih adresa) Zahvat operanada Izvršenje instrukcije Pisanje/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 jj j j j onda ovo NE IDE! A više instrukcija istovremeno? ☺

Vremenski dijagram instrukcijskog cjevovoda (1)

Vremenski dijagram instrukcijskog cjevovoda (2)

Programsko grananje u cjevovodu...

Kako se nositi sa programskim grananjem u cjevovodu?
Višestruki instrukcijski “stream”-ovi Predzahvat instrukcija d fi i ih P d h t i t k ij definiranih rezultatom lt t prog. grananja - Prefetch Branch Target Loop buffer j g j p Predviđanje grananja - Branch prediction Odgođeno prog. grananje u nekoliko slijedećih koraka - Delayed branching

Višestruki “streamovi”
Uporaba bar dva cjevovoda Predzahvat P d h t svakog grananja u zasebni cjevovod k j b i j d Korištenje adekvatnih cjevovoda

Predzahvat rezultata grananja Prefetch Branch Target
Rezultat grananja se unaprijed zahvaća iz mem. zajedno sa slijedećim instrukcijama koje slijede nakon grananja. Rezultat grananja se čuva dok se grananje ne R lt t j č d k j izvrši Ovaj način se koristi od IBM 360/91

Cirkularni bufer Loop Buffer
To je jedna vrlo brza memorijs Statička, najčešće. i upravljanja od strane FETCH dijela instrukcijskog cjevovoda p j p j g Prvo se provjerava buffer prije nego li se ide u zahvat instrukcije u memoriju Ovaj način zahvata je jako dobar u slučaju vrlo kratkih prog. skokova ili petlji k k lji slično kao i cache Korišten od strane CRAY 1 računala CRAY-1 računala.

Prediktivno grananje (1)
Ne-korištenje/nema predviđanja:
Pretpostavlja se uvijek da se skok ili grananje neće dogoditi. i uvijek se iz mem. dohvaća samo slijedeća i t k ij u nizu. ij k i d h ć lij d ć instrukcija i 68020 & VAX 11/780 VAX sustav neće raditi predzahvat instrukcije poslije prog. prog grananja ako će to rezultirati tzv. page fault mem. referenciranjem! (O/S vs. CPU dizajn!) Predviđanje P d iđ j grananja: j Uvjek se pretpostavlja da će se sa slijedećom instrukcijom dogoditi prog. skok ili grananje! g p g g j i uvijek se dohvaća rezultantna instrukcija navedenog skoka ili grananja

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

Korištenje K išt j

Predviđaj/Ne-predviđaj

prekidača kid č

Korištenje ovog prekidača temelji se na prethodnoj povijesti korištenja istog i pojavnosti prog. grananja ij ti k išt j i t j ti j ili skoka Ovaj način korištenja je dobar i koristan kod prog prog. petlji!

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

Predviđanje grananja - dijagram

Organizacija i arhitektura računala
Poglavlje 12

Reduced Instruction Set Computers RISC

Značajniji napredci u računalnim sustavima (1)
koncept “obitelji” računala
IBM System/360 1964 DEC PDP-8 odvajaju se arhitektura od načina implementacije

Mikroprogramirana upravljačka jedinica mikrokod
to je ideja Wilkes-a 1951 a napravio IBM S/360 1964

Cache memorija
IBM S/360 model 85 1969

Značajniji napredci u računalnim sustavima (2)
Solid State RAM – poluvodički RAM
o ovome je više rečeno pod dijelom koji se bavi memorijom

Mikroprocesori
Intel 4004 1971

Pipelining
Uvođenje postupaka paralelizacije u fetchexecute/zahvat-izvrši intrukcijskom ciklusu

Višeprocesorski sustavi

Slijedeći korak - RISC
Reduced Instruction Set Computer Glavne značajke
Veliki broj registara za opću namjenu - general purpose registers ili koristiti unaprjeđenu compiler tehnologiju za optimizaciju uporabe registara opće namjene Limitirani/ograničeni i jednostavan skup instrukcija Naglasak je dan na optimizaciju intrukcijskog pipeline-a

Usporedbe procesora
CISC IBM 370/168 1973 DEC VAX Intel 11/780 486 1978 1989 RISC Motorola MIPS 88000 R4000 1988 1991 Superscalar IBM Intel RS/6000 80960 1990 1989

No. of instruction 208 303

235

51

94

184

62

Instruction size (octets) 2-6 2-57 1-11 Addressing modes 4 22 GP Registers 16 16

4

32

4

4 or 8

11

3

1

2

11

8

32

32

32

23-256

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

0

0

0

Zašto onda CISC?
Troškovi izrade programa danas daleko nadilaze troškove razvoje sklopovlja/hardwarea Povećavanje kompleksnosti jezika visokog nivoa Semantička rupa!?! To sve vodi do:
Rasta/povećanja instrukcijskih skupova Sve više i više adresnih modova/načina dresiranja Hardwerska implementacija HLL (high level language) stanja
⌧npr. CASE (prekidač/selektor) naredba

Namjera i namjena CISC procesora
Jednostavno pisanje/razvijanje kompilera Poboljšanje efikasnosti izvršavanja programa
Kompleksne operacije u mikrokôdu

Podrša za još kompleksnije HLL

Izvršne/obradbene karakteristike
Obavljanje operacija Korištenje operanada Sekvenciranje obrade Analize se rade na programima pisanim u HLL-u Analize dinamike izvršavanja rade se tijekom izvršavanja ovih programa

Operacije
Dodjele
Prebacivanje/premještanje podataka

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

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

Relativna dinamička frekvencija Relative Dynamic Frequency
Dinamička pojavnost Pascal C Assign Loop Call If GoTo Other 45 5 15 29 6 38 3 12 43 3 1 Strojna instr. (Weighted) Pascal C 13 42 31 11 3 13 32 33 21 1 Uporaba mem. (Weighted) Pascal C 14 33 44 7 2 15 26 45 13 1

Operandi
Većinom su to lokalne skalarne varijable Postupci optimizacije trebaju se koncentrirati na pristup lokalnim varijablama Pascal 16 58 26 C 23 53 24 Average 20 55 25

Integer constant Scalar variable Array/structure

Procedure Calls
Vrlo zahtjevne u pogledu vremena potrebnog za izvršavanje Ovise o broju proslijeđenih im parametara Ovise i o nivou ugniježenja/nesting Većina programa ne radu “puno” poziva procedura bez njihovog povratka Većina varijabli je lokalna

Implikacije
Najbolja podrška dana je kroz optimizaciju najviše korištenih i vremenski najzahtjevnijih značakji ovakvog sustava Velika količina/broj registara
Adresno referenciranje na operande

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

Pojednostavljeni (reducirani) instrukcijski set

Kako koristiti puno registara?
Programsko rješenje:
Optimizacijom kompilera u svrhu alociranja većeg broja registara Alociranje se temelji na dodjeli registara varijablama koje su najviše u uporabi Ovo 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

Registri za lokalne varijable
Pohrana lokalnih skalarnih varijabli u registre Smanjena potreba za pristupom gl. memoriji -> brzina Svaki poziv procedure/funkcije mijenja pojam “lokalnosti” Moraju se proslijediti parametri ali se i moraju vratiti rezultati u glavnu petlju Mora se uspostaviti i stanje varijabli prozvanih /pozvanih potprograma u prethodno stanje nakon povratka

Registarski prozori/skupovi (1)
U uporabi je samo nekoliko parametara Limitirana dubina poziva procedura Uporaba više skupina malih skupova registara Poziv procedure prebacuje uporabu na drugi skup registara A povratak iz poziva procedure vraća na uporabu prethodnog skupa registara

Registarski prozori/skupovi (2)
Postoje tri područja/tipa unutar skup registara
Registri za parametre Registri za lokalne varijable Registri za privremene parametre/varijable Registri za privremenu uporabu jednog skupa registara preklapaju se sa istim takvim registrima ali iz nekog drugog skupa registara Ovo omogućuje prosljeđivanje parametara bez stvarnog prebacivanja podataka

Preklapajući registri raznih skupova registara

Dijagram kružnog međuspremnika/buffer-a

Način rada kružnog međuspremnika
Kada se napravi poziv potprograma, trenutni pokazivač skupa registara pomakne se na trenutno korišteni skup registara Ako su svi skupovi iskorišteni ili u uporabi, generira se interrupt i “najstariji” skup registara se sprema u memoriju Pokazivač spremljenog skupa registara pokazuje gdje se treba ponovo obnoviti/restorirati slijedeći snimljeni skup registara

Globalne varijable
Alocira ih kompiler u glavnoj memoriji
Vrlo neefikasno za učestalo pristupanje takvim varijablama

Postoje registri rezervirani samo za globalne varijable

Registeri vs. Cache
Large Register File Sve su lokalni skalari Individualne varijable Compiler dodjeljuje globalne varijable Save/restore temeljene na proceduri Adresiranje registara Cache Samo zadnje korišteni lokalni skalari Blok memorije Zadnje korištene globalne varijable Save/restore temeljeni na ugniježđenju caching algorithm Adresiranje memorije

Referenciranje/adresiranje skalara korištenje skupa registara

Referenciranje/adresiranje skalara Cache

Kompilersko optimiziranje uporabe registara
Pretpostavimo mali broj registara (16-32) Posao postupka optimizacije je na kompileru HLL programi nemaju eksplicitne načine da se adresiraju registri – to rade kompileri ili asemblerske rutine Dodjeli se simbolički ili virtualni registar svakoj potencijalnoj varijabli Mapiraj simboličkim registrima prave/postojeće registre Simbolički registri koji se inače ne preklapaju mogu čak dijeliti prave registre Ako ponestane pravih registara pojedine varijable mogu koristiti i memoriju umjesto njih

Zašto onda CISC (1)?
Pojednostavljenost kompilera? o ovome se može raspravljati... Kompleksne instrukcije teže je i pravovaljano iskoristiti u različite svrhe Optimizacija je u ovom slučaju prilično teška Da li su programi manji? Program zauzima manje memorije, ali… Memorija je (sada) relativno jeftina ali 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

Zašto onda CISC (2)?
Brži programi?
Naginje se uporabi jednostavnijih instrukcija Jako složena upravljačka jedinica/dekoder Veći mikrokod više mikrokod memorije ali 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

RISC karakteristike
Jedna instrukcija po ciklusu izvršavanja Registar-registar operacije malo, jednostavnih načina adresiranja malo, jednostavnih instrukcijskih formata Ožićeni dizajn – nema mikrokoda FInstrukcijski format fiksne veličine ali kompiler tu ima više posla

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

RISC Cjevovod/Pipelining
Većina instrukcija je naravi register-register Dvije faze instrukcijskog ciklusa
I: Instruction fetch – zahvat instrukcije E: Execute - izvršenje

Te za operacije učitavanj/load i pohrana/store
I: Instruction fetch E: Execute
⌧Izračun memorijske adrese

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

Efekat cjevovoda/Pipelininga

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

Normalno i zakašnjelo grananje
Address 100 101 102 103 104 105 106 Normal LOAD X,A ADD 1,A JUMP 105 ADD A,B SUB C,B STORE A,Z Delayed LOAD X,A ADD 1,A JUMP 105 NOOP ADD A,B SUB C,B STORE A,Z Optimized LOAD X,A JUMP 105 ADD 1,A ADD A,B SUB C,B STORE A,Z

Uporaba zakašnjelog grananja

Kontroverze uporabe RISC-a
Kvantitativne
usporedbu po veličini programa i brzini izvršavanja

Kvalitativne
problematična uporaba HLL-a – optimizacija vrlo naporna

Problemi
Nema dva RISC i CISC procesora koja su izravno usporediva Nema skupa programa za testiranje obje vrste procesora Teško je razlučiti efekte hardwarea od efekata kompilera Već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

Organizacija i arhitektura računala
Poglavlje 2
- Evolucija i performanse računala -

RAZVITAK DIGITALNIH SUSTAVA OSNOVNI CILJEVI PRI ZASNIVANJU SUSTAVA: ispunjavanje upravljačke funkcije pouzdanost pri radu jednostavno i lako održavanje niska cijena

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

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

PRVO POKOLJENJE (1941-1956)
Z3 1941 - Konrad Zuse

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

ENIAC – u pozadini...
Electronic Numerical Integrator And Computer Eckert i Mauchly University of Pennsylvania Trajektorijske tablice balističkog oružja Started 1943 Finished 1946
prekasno završeno, poslije rata

Korišteno do 1955

ENIAC - značajke
Decimalno računalo (ne binarno) 20 akumulatorskih registara od 10 znamenki Ručno programirano pomoću sklopki program osmišljen ožičavanjem programski skokovi nisu bili mogući 18,000 vakuumskih cijevi 30 tona 15,000 square feet / 90 m3 potrošnja el. energije - 140 kW 5,000 zbrajanja u sekundi množenje dva deset znamenkasta broja 2,8 ms

ENIAC - značajke
18,000 vakuumskih cijevi

DRUGO POKOLJENJE 1957-1964
diskretne poluvodičke komponente
1948 godine, tranzistor Bell laboratorije ekipa od 12 ljudi glavni za patent: W. Shokley, J. Bardeen, W. Brattain točkasti p-n spoj germanijev poluvodič s dvije zlatne folije

DRUGO POKOLJENJE 1957-1964
Značajke računala drugog pokoljenja: uporaba tranzistora magnetska jezgra kao unutrašnja memorija kapacitet glavne memorije 4k-32k bajta brži ulaz i izlaz, magnetske trake programski jezici visoke razine: fortran, cobol veliko smanjenje dimenzija i potrošnje povećana brzina i pouzdanost perioda reda mikrosekunde brzina obrade naredbi oko 1 mips primjene: računovodstvo

DRUGO POKOLJENJE 1957-1964 Prvi tranzistori
točkasti kontaktni tranzistori

DRUGO POKOLJENJE 1957-1964
PRIMJENA TRANZISTORA

Neke prednosti tranzistora: oko 200 puta manji od cijevi troši oko 100 puta manje energije

TRANZISTORSKI MODUL

DRUGO POKOLJENJE 1957-1964
HIBRIDNA TEHNIKA (1964)

TREĆE POKOLJENJE 1965-1971
integrirani digitalni sklopovi
Integrirani bistabil, jedan od prvih IC-a tvrtke Fairchild

Postanak integriranih sklopova s planarnim tranzistorima.

Značajke računala trećeg pokoljenja:

primjena integriranih logičkih sklopova magnetska ili poluvodička glavna mem. 32k-3M bajta ulaz-izlaz usmjeren na disk manje dimenzije, bolja svojstva i pouzdanost programski jezici visoke razine daljinska obrada i komunikacije operacijski sustavi zamjenjuju funkciju operatera periode reda nanosekunde brzina obrade naredbi 10 MIPS primjene: marketing, rezervacije, naplate

4. POKOLJENJE 1972-1989 Značajke:
Pojava mikroprocesora

primjena VLSI tehnologije povećana memorija i brzina (iznad 3 MB) kompatibilnost sklopovlja raznih proizvođača namjenski programi za korisničku primjenu brzine obrade od 100 mips do 1000 mips primjene: modeliranje i simuliranje, cad, kućna računala, proizvodnja

4. POKOLJENJE 1972-1989 Integracija i pojava mikroprocesora (i4004)

von Neumann/Turing
Koncept pohrane programa – za razliku od ožičavanja programa Glavna memorija pohranjuje programe i podatke ALU obrađuje isključivo binarne podatke Upravljačka jedinica interpretira i izvršava instrukcije iz glavne

memorije

Ulazno/izlazne jedinice su upravljanje od strane upravljačke jedinice Princeton Institute for Advanced Studies IAS Struktura završena i predstavljena 1952

Struktura von Nuemann-ovog računskog stroja

Aritmetičko logička jedinica

I/O jedinice

Glavna memorija

programska upravljačka jedinica

IAS - detalji
1000 x 40 bit words
Binarni brojevi 2 x 20 bit instrukcije

Set registara (storage in CPU)
Memory Buffer Register Memory Address Register Instruction Register Instruction Buffer Register Program Counter Accumulator Multiplier Quotient

Structure of IAS - detalji
Central Processing Unit - CPU Arithmetic and Logic Unit - ALU Accumulator MQ

Arithmetic & Logic Circuits I/O oprema MBR Instrukcije i podaci IBR IR PC MAR Control Circuits Adrese Glavna memorija

Programska kontrolna jedinica

Komercijalna računala
1947 - Eckert-Mauchly Computer Corporation UNIVAC I (Universal Automatic Computer) US Bureau of Census 1950 calculations Postaje dijelom Sperry-Rand korporacije Kasne 1950-e - UNIVAC II
Brži Više memorije

IBM
Bušene kartice - Punched-card processing equipment 1953 - računalo 701
IBM-ovo prvo računalo sa pohranom programa Znanstveni izračuni – Scientific calculations

1955 - računalo 702
Poslovne aplikacije

Vodi di razvoja serije računala 700/700

Tranzistori
Zamjena za vakuumske cijevi Manji Jeftiniji Manja toplinska disipacija Integrirani uređaji Izrađeni od silicija (kvarcnog pijeska) Izmljen 1947 u Bell-ovom laboratoriju William Shockley

Računala temeljena na tranzistorima
Druga generacija računala NCR & RCA izrađuju mala računala temeljena na poluvodičima/tranzistorima IBM 7000 DEC - 1957
Proizvedeno PDP-1 računalo

Microelektronika
Doslovno značenje - “umanjena/mala elektronika” Računalo je izgrađeno od logičkih sklopova, memorijskih ćelija i njihovih veza/ožičenja Omogućena izrada u poluvodičkoj tehnologiji
npr. silicijska ploča/waffer

Generacije računala
Vakuumske cijevi - 1946-1957 Tranzistori - 1958-1964 Small scale integration - 1965 i nadalje Medium scale integration - do 1971 Large scale integration - 1971-1977
3,000 - 100,000 sklopova na čipu 100-3,000 sklopova na čipu do 100 sklopova na čipu

Very large scale integration - 1978 do danas Ultra large scale integration
100,000 - 100,000,000 sklopova na čipu Preko 100,000,000 sklopova na čipu

Mooreov zakon
Povečanje gustoće sklopova na jednom čipu Gordon 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 mjeseci Troškovi izrade čipa gotovo da ostaju isti Veća gustoća pakiranja znači kraće električne veze – veće performanse čipa Manje dimenzije daju veću fleksibilnost primjene Smanjena potrošnja i zahtijevi za hlađenjem Manje interkonekcija među funkcionalnim cjelinama povećevaju pouzdanost

Rast broja tranzistora u CPU

IBM 360 serija računala
1964 Zamjena za (i nekompatibilna sa) 7000 serijom Planirano kao prvo računalo iz “obitelji” računala Slični ili identični set instrukcija Slični ili identični O/S Povećana brzina Povećan broj I/O portova (npr. više terminala) Povećana količina memorije ali i povećani troškovi izrade Multipleklsirana preklopnička struktura (multiplexed switch structure)

DEC PDP-8
1964 Prvo miniračunalo Nije zahtijevalo posebne prostorije sa rashladnim sustavima Dovoljno malo da stane na sto $16,000
$100k+ za IBM 360

Za potrebe primjenjenih aplikacija i OEM ugradnju BUS struktura

DEC - PDP-8 Bus Struktura

Konzolni upravljač

CPU

Glavna memorija

I/O modul /jedinica

I/O modul /jedinica

OMNIBUS sabirnica

Poluvodička memorija
1970 Fairchild Veličina jedne jezgre magnetske memorije
1 bit-a magnetske memorije

kapaciteta 256 bita nedestruktivno isčitavanje višestrukko brža nego magn.jezgrena memorija kapacitet joj se udvostručava svake 1-2 godine

Intel
1971 - 4004
Prvi mikroprocesor Sve komponente jednog CPU-a su na jednom čipu 4 bita

1972 ga nasljeđuje i8008
8 bita oba su razvijena za aplikacije posebne namjene

1974 - 8080
Intelov prvi procesor za opću namjenu

Ubrzavanje... kako ubrzati rad računala Pipelining On board cache – priručna memorija On board L1 & L2 cache Branch prediction – predikcija prog. grananja Data flow analysis – analiza prog. toka podataka Speculative execution – predviđanje rezultata obrade

Neusklađenost performansi...
Povećanje brzine procesora Povećanje kapaciteta memorije Povećanje brzine memorije zaostaje za povećanjem brzine procesora

DRAM i procesorske karakteristike

Trendovi u DRAM-u

Rješenja...
Povećanje broja zahvaćenih bitova u jednom zahvatnom ciklusu
To čini DRAM prije “širim” nego “dubljim”

Izmjena DRAM sučelja
Cache memorija

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

Povećanje propusne širine sučelja
High speed busvi/sabirnice Hijerarhizacija sučelja

Organizacija i arhitektura računala
Poglavlje 3

Sistemske sabirnice

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

Što je to program?
To je niz/sekvenca koraka obrade nad podacima iz glavne memorije Za svaki korak obavlja se ili aritmetička ili logička operacija Za svaku operaciju potreban je i djeluje različiti skup upravljačkih signala

Funkcija upravljačke jedinice
Svakoj operaciji je dodijeljen jedinstveni kôd
npr. ADD, MOVE, PUSH, JMP

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

Komponente / sastavni dijelovi
Upravljačka i ALU jedinica čine CPU Podaci 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

Računalne komponente: “Top Level” prikaz

Instrukcijski ciklus...
Dvo-koračni ciklus:
Zahvati/Fetch Izvrši/Execute Ciklus zahvata Ciklus izvršenja

Ciklus zahvata - Fetch Cycle
Programski brojač (PC) sadrži adresu zahvata slijedeće instrukcije Procesor 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” / IR Procesor (dekoderska jedinica) interpretira značenje instrukcije i izvršava zadanu akciju

Ciklus izvršenja - Execute Cycle
Procesor↔memorija prijenos podataka između procesora i memorije Procesor↔I/O prijenos podataka između procesora i I/O jedinice Procesiranje/obrada podataka Primjena aritmetičkih i logičkih operacija nad podacima Upravljanje - Control Izmjena sekvencijskog niza zadanih operacija/prog. instrukcija npr. skokovi (jump) Kombinacija gore navedenih operacija

Primjer izvršenja programa

Instrukcijski ciklus Dijagram stanja

Programski prekidi - Interrupts
To 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 nulom Vremenski sklopovi - Timer Generirani od strane internog procesorskog timera Korišteni u pre-emptive multi-tasking sustavima I/O od strane I/O upravljača/kontrolera Hardware/sklopovska pogreška npr. memorijska greška pariteta

Upravljanje programskim tijekom Program Flow Control

Ciklus programskog prekida Interrupt Cycle
Dodano instrukcijskom ciklusu – dio instrukcijskog ciklusa Procesor 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 instrukcije Ako se dogodi prekid: Obustavlja se izvršenje trenutnog programa Pohranjuje se stanje trenutnih operacija obrade PC se postavlja na pokazivanje adrese programa u memoriji zaduženog za obradu prog. prekida Procesiranje/obrada prekidne rutine Ponovno uspostavljanje stanja operacija obrade programa prije nastanka prog. prekida

Instrucijski ciklus (sa prog. prekidom) - Dijagram stanja

Višestruki programski prekidi...
Onemogućavanje djelovanja prog. prekida Procesor će ignorirati pojavu ostalih prekida dok obrađuje trenutni prog. prekid Pojava 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 nizu Obavlja se obrada prekida onim redosljedom kako su se pojavili u prekidnom nizu Definiranje prioriteta Prekidi sa niskom razinom značajnosti mogu se prekinuti prekidima većeg značaja Kada se obradi prekid većeg značaja, procesor se vraća na obradu prekida nižeg značaja/manje važnosti.

Višestruki prekidi – Sekvencijalni niz izvršenja prekida

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

Povezivanje/poveznice...
Sve funkcionalne jedinice računala moraju biti povezane Koriste se razne vrste povezivanja za razne vrste jedinica
Povezivanje memorijskog podsustava Ulazno/izlazni, I/O, podsustav CPU

Memorijsko sučelje/sabirnica
Prima i šalje podatke Prima adrese mem. lokacija Primanje upravljačkih signala
Čitanje/Read Pisanje/Write Vremensko reosvježavanje/Timing

Sučelja I/O jedinica(1)
Gledano od strane računala ovo sučelje je slično memorijskom sučelju Izlaz(i)
Prima podatke od računala Šalje podatke periferiji računala

Ulazi
Prima podatke od periferije Šalje podatke računalu

Sučelja I/O jedinica(2)
Primanje upravljačkih signala od računala Slanje upravljačkih signala periferiji
npr. zavrti ploče diska, otvori ladicu CD/DVD-a

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

Slanje signala prog. prekida (upravljanje prog. prekidima)

CPU sučelje
Čitanje instrukcija i podataka Pisanje podataka nakon procesiranja istih Slanje upravljačkih signala ostalim jedinicama računala Primanje, registriranje i reagiranje na pojavu prog. prekida

Sabirnice - Busevi
Postoji bezbroj mogućih načina i sistema povezivanja Jednostruke i višestruke sabirničke BUS strukture su najčešće u uporabi
npr. Control/Address/Data sabirnica (PC) npr. Unibus (DEC-PDP)

Sto je to sabirnica/bus?
Komunikacijski put kao poveznica dva ili više uređaja Uobičajena je tehnika “prozivanja” uređaja Često su funkcionalno grupirane
Broj komunikacijskih kanala u jednoj sabirnici npr. 32 bit data bus čini 32 odvojena 1-bit kanala

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

Podatkovna sabirnica...
Prenosi podatke
Treba 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

Adresna sabirnica
Identificira izvorište odakle se žele prenijeti podaci – identifikacija drugog kom. uređaja npr. 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

Upravljačka/kontrolna sabirnica
Prenosi upravljačke i vremenski periodičke/clock signale i informacije
signal za čitanje/pisanje memorije zahtjevi za programskim prekidima signali takta / clock signali

Strukturna shema sabirnice...

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

To je ustvari skupina od mnogo žica...

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

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

Sabirnica visokih performansi

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

Multipleksirane...
Linije dijele funkcionalne uloge Address valid ili data valid upravljača linija Prednost – manje komunikacijskih linija Nedostaci
⌧Složeno upravljanje takvom sabirnicom ⌧Ultimate performance

Arbitracija pristupa sabirnici...
Više od jednog uređaja može kontrolirati sabirnici i njen rad npr. CPU i DMA kontroler Samo jedan uređaj istovremeno može kontrolirati rad i pristupati sabirnici Arbitracija/pregovor u kontroli pristupa sabirnici može biti:
Centralizirana ili distribuirana

Centralizirana arbitracija
Samo jedan sklop ili uređaj kontrolira pristup sabirnici
Sabirnički kontroler Arbiter

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

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

Vremensko upravljanje - Timing
Koordinacija događaja na sabirnici Sinkrone sabirnice
Pojavnost događaja određena je clock/taktnim signalom Kontrolni dio sabirnice sadržava signal takta Prijelaz lokičkih 1-0 predstavlja takt sabirnice Svi uređaji mogu primati takt signal Uobičajena je sinkronizacija uređaja na rastući brid takt signala Uobičajeno jedan događaj traje jedan ciklus takt signala

Sinkroni timing dijagram

Asinkroni timing dijagram

PCI Sabirnica
Peripheral Component Interconnection razvio je Intel 32 ili 64 bit 50 linija

PCI sabirničke linije (nužne)
Sistemske linije
uključujući takt i reset signal

Adresne i podatkovne linije
32 multipleksirane linije za adrese i podatke Linije za prog. prekide i linije za validaciju podataka/adresa1

Linije za kontrolu sučelja Arbitracija
Nije distribuirana – centralizirana je Izravno povezivanje na PCI arbitarski sklop

linije za oznaku pojavnosti pogreški – error lines

PCI sabirničke linije (opcionalne)
Linije prog. prekida
Ne dijele se između uređaja

Podrška za priručnu memoriju 64-bit proširenje sabirnice
dodatne 32 linije vremenski multipleksirane 2 dodatne linije za odobrenje uređaju korištenja 64bit načina prijenosa podataka

JTAG/Boundary Scan
Za potrebe testiranja uređaja

PCI Naredbe
Transakcije između inicijatora (master) i odredišta (target) Master uređaj preuzima kontrolu na sabirnicom Određivanje tipa transakcije/razmjene
npr. čitanje I/O jedinice, ili pisanje,...

Adresna faza – samo jedna Jedna ili više podatkovnih faza

PCI timing dijagram čitanja..

PCI sabirničko pregovaranje/arbitracija...

Organizacija i arhitektura računala
Poglavlje 4

Interna memorija

Karakteristike
Lokacija/položaj Kapacitet Jedinice za prijenos Metode pristupa Performanse Fizikalne modeli memorije Fizikalne karakteristike Organizacija

Lokacija... gdje se nalazi
CPU Interna memorija Vanjska/externa memorija

Kapacitet... količina memorije
Veličina memorijske riječi...
Veličina određena prirodom organizacijom memorije Broj riječi koji se može pohraniti ili byte-ova

Jedinica za prijenos...
 Interna/unutarnja
Uobičajeno je strukturirana prema širini podatkovnog dijela sabirničkog sučelja – 1 riječ

 Vanjska/external
Uobičajeno je to blok podatka koji je veći od jedne memorijske riječi.

 Adresabilna jedinica
Najmanja lokacija koja se još može jednoznačno adresirati interno je to na razini jedne riječi jedan “klaster” na HDD-u

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 adrese Pristup lokaciji se ostvaruje kroz skokove u blizini tražene lokacije uz dodatno sekvencijalno traženje zadane lokacije Vrijeme pristupa ovisi o traženoj lokaciji i prethodno pristupljenoj lokaciji npr. HDD

Metode pristupa (2)
Slučajni
Individualne adrese lokacija identificiraju točno lokaciju kojoj se želi pristupiti Vrijeme pristupa ovisi brzini dekodiranja adrese i isčitavanja sadržaja lokacije npr. RAM

Asocijativno
Podatak se locira usporedbom traženog sadržaja sa sadržajem pretraživanih pohranjenih podataka Vrijeme traženja neovisno je o prethodno nađenoj lokaciji npr. priručna memorija

Memorijska hijerarhija
Registri/Registers
U CPU-u

Interna ili glavna memorija
Može sadržavati jednu ili više razina priručne memorije “RAM”

Vanjska memorija
Za masovniju pohranu podataka

Performanse
Vrijeme pristupa
Vrijeme pristupa između postavljanja adrese i dobivanja traženog podatka

Vrijeme memorijskog ciklusa
Vrijeme potrebno sa se memorija/sadržaj obnovi/oporavi prije slijedećeg ciklusa pristupa Vrijeme ciklusa=pristup+oporavak

Brzina prijenosa
Najveća brzina kojom se mogu prenijeti podaci

Vrste memorije prema fizičkom ustroju
Poluvodičke
RAM

Magnetske
Diskovi i trake

Optičke
CD & DVD

Druge vrste
Bubble Hologram

Fizikalne karakteristike...
Slabljenje signala / gubljenje informaciju u mem. ćeliji Svojstvo pamćenja nakon gubitka napajanja Izbrisivost Potrošnja energije

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

Sve u svemu...
Koliko je memorije potrebno?
Mjera potrebe... KAPACITET

Koliko brza mora biti?
Vrijeme je novac 

Koliko to košta / troškovi?

Lista hijerarhijskog ustroja...
Registri L1 Cache L2 Cache Glavna memorija – main memory Diskovna priručna memorija - Disk cache Disk Optička mem. Magnetske trake

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 memorija
Kako je moguće “keširati” cache memoriju?

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

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

Poluvodička memorija
RAM
Pogrešno je nazivana i shvaćena da je svaka poluvodička memorija random acces memorija
to nije uvijek tako -> npr. flash memorija ima klasterski način čitanja i pisanja (slično sektorima HDD-a)

Čitanje i pisanje Ovisnost o napajanju – sposobnost da zapamti podatak neovisno o napajanju Privremena pohrana podataka Statička ili dinamička

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

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

Read Only Memory (ROM)
Trajno spremanje podataka Za spremanje programa / Microprogramming Za spremanje nemjenjivih potprograma / Library subroutines Sistemski programi / (BIOS) Funkcijski parametri, tablice/matrice, konstante,...

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

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 16Mbitnu 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. matrice samo 11 pina za adresu (211=2048) Dodavanje još jednog adresnog pina poduplava ukupni mogući adresni prostor (4096x4096x4bit) -> kapacitet raste 4 puta!!!

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 pisanje To traje... oduzima dragocjeno vrijeme Usporava pristup – manje performanse

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

Pakiranja/kućišta

Modularna organizacija

Modularna organizacija (2)

Mehanizmi ispravke greške
Sklopovska greška – hardware error
to često znači trajnu nepopravljivu grešku 

programska/sftware greška
Slučajne, nisu destruktivne Nema trajnog oštećenja memorije

Detektiranje greške obavlja se putem Hammingovog postupka korekcije

Funkcija ispravke greške...

Priručna memorija - Cache
Mala količina brze memorije Smještena je na putu između CPU-a i glavne memorije Može biti ugrađena u CPU ili kao poseban modul

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

Dizajn cache memorije
Koja količina – kapacitet? Funkcije mapiranja Algoritmi zamjene sadržaja cache memorije novim blokovima podataka iz gl. memorije politika pisanja u cache memoriju – nimalo jednostavna i trivijalna stvar! Veličina korištenih blokova podataka Broj cache blokova

Veličina je ovdje doista bitna/važna
Trošak/troškovi
Puno cachea puno košta

Brzina
Viš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!

Tipična organizacija cache memorije

Funkcije mapiranja
Cache kapaciteta 64kB Veličina bloka je 4 byte-a
npr. cache čini 16k (214) blokova veličine 4 bytea

16MBytea glavne memorije 24 bit adresa
(224=16M)

Izravno mapiranje
 Svaki blok glavne memorije mapirn se samo jednim i egzaktnim dijelom cache memorije npr. 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

Izravno mapiranje Adresna struktura
Oznaka s-r 8 Cache linija/polje r 14 2 Jedinstvena riječ w

 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

Izravno mapiranje Tablica Cache polja/linije
Cache linija 0 1 m-1 Sadržaj glavne memorije 0, m, 2m, 3m…2s-m 1,m+1, 2m+1…2s-m+1 m-1, 2m-1,3m-1…2s-1

Cache sa direktnim mapiranjem
Organizacijska struktura

Izravno mapiranje - primjer

Izravno mapiranje prednosti i mane...
Jednostavnost Jeftino Fiksne lokacije za svaki blok memorije
Ako 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.

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

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

jedinstvena riječ  na ovaj način oznaka jednonačno i jedinstveno

Potpuni acosijativni cache oraganizacija...

Asocijativno mapiranje - primjer

Adresna struktura asocijativnog mapiranja
Oznaka 22 bit Riječ 2 bit

 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 32bitnog bloka podataka  e.g. Adresa Oznaka Podatak Cache linije FFFFFC FFFFFC 24682468 3FFF

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 skupini
npr. blok B može biti u bilo kojoj liniji iz skupa “i”

 npr. 2 linije po skupini
2-way asocijativno mapiranje Zadani blok može biti u bilo kojoj od dvije cache linije u samo jednoj skupini

Skupno asocijativno mapiranje primjer...
13 bit-ni broj skupa Broj bloka u glavnoj memoriji je modulo 213 npr. 000000, 00A000, 00B000, 00C000 … mapirani su istoj skupini

2-Way skupni asocijativni cache – Organizacija...

Skupno asocijativno mapiranje Adresna struktura
Oznaka 9 bit Skup 13 bit Riječ 2 bit

 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 1FF 7FFC 001 7FFC Oznaka 1FF 001 Podatak 12345678 11223344 Set number 1FFF 1FFF

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

Algoritmi zamjene blokova (1) Izravno mapiranje
Nemamo puno izbora... Svaki blok mapiran je samo u jednoj liniji/pilju cache-a Zamjena tog poja/linije

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ženju Koji 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

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 cache strukturu taku da svaki procesor ima svoj cache I/O jedinice mogu izravno adresirati glavnu memoriju -> npr. DMA pristup

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

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 cache memoriju  15% memorijskih referenci obuhvaća akcija zapisivanja kroz cache (north-bridge mem write action’s)

Novije RAM tehnologije (1)
Basic/”obični” DRAM ostao je isti po svojoj strukturi od pojave prvih RAM čipova Enhanced/poboljšani DRAM
Sadrži male količine i SRAM-a SRAM drži zadnje pročitane podatke (neka vrsta cache-a!)

Cache DRAM
za svrhe gdje su potrebne veće količine SRAM-a koristi se kako cache ili serijski “buffer”

Novije RAM tehnologije (2)
Synchronous DRAM (SDRAM)
 na njima se temelje današnji DIMM-ovi Pristup im je sinkroniziran putem vanjskog izvora takt-signala Adresira se kao i svaki RAM Buduć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 drugo Burst-mode omogućava SDRAM-u prijenos podataka u blokovima – ubrzanje pristupa podacima

SDRAM

DDR RAM

Organizacija i arhitektura računala
Poglavlje 5

Vanjska memorija

Vrste vanjskih memorija
Magnetski disk
RAID Zamjenjivi

Optičke O tičk
CD-ROM CD-Writable (WORM) CD-R/W DVD

Magnetske trake g

Magnetski disk
Metalni ili plastični disk presvučen magnetskim materijalom (FeO3, hrđa) Vrste prema namjeni
Floppy “Winchester” hard disk “Removable”/izmjenjivi hard disk

Organizacija podataka i formatiranje
Koncentrični prstenovi ili trake
Razmaci između traka Smanjivanjem razmaka povećava se kapacitet Jednak b j bit J d k broj bitova po traci (varijabilna gustoća t i ( ij bil t ć pakiranja) Konstantna kutna brzina - CAV

Trake su podijeljene na sektore Minimalna veličina podatkovnog bloka je jedan č sektor Jedan blok može biti i više od jednog sektora

Poredak podataka na disku / Data disk layout

Magnetizacija medija

Diskovi sa fiksnom i pomičnom glavom
Fiksna glava
Jedna R/W glava po traci Glave su montirane na fiksiranom držaču

Pomične l P ič glave
Jedna R/W glava po strani diska Montirane na pomičnom nosaču

Fiksne i pomične glave
HDD iz 1975.

Izmjenjivi ili ne...?
Izmjenjivi disk
Može se ukloniti iz disk jedinice i zamijeniti drugim diskom Na ovaj način se može do beskonačnosti povečavati kapacitet Jednostavna razmjena podataka između raznih računalnim sustava

Neizmjenjivi diskovi
Permanentno ugrađeni u disk jedinici

Izmjenjivi ili ne...?

Floppy Disk
8”, 5.25”, 3.5” Mali k M li kapacitet it t
do 1.44Mbyte (ili 2.88M, nikad populariziran)

Spor p j j j j Univerzalno primjenjiv i izmjenjiv Jeftin

Floppy Disk

“Winchester” hard Disk (1)
Razvio ga IBM u Winchester-u (USA) Hermetički zatvoren Jedan ili više diskova Glave lebde iznad diska na zračnom jastuku kada se ploče okreću Vrlo mal razmak između glava i ploča Vrlo robustan

“Winchester” hard Disk (2)
Univerzalno/široko primjenjiv Jeftin J fti Najbrža vanjska jedinica za pohranu podataka Sa vremenom postaju sve većeg kapaciteta
Danas... 1-2T uobičajeno j

Izmjenjivi hard diskovi
ZIP
Jeftin Zamjena za floppy Samo 100M

JAZ
Ne baš jeftin u odnosu na ZIP 1G

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

Traženje sektora
Prvo se mora se pronaći početak trake i sektora Formatiranje di k / format di k F ti j diska f t diska
To su dodatne informacije o ustriju diska koje nisu dostupne k j j d t krajnjem korisniku k i ik Formatiranje je proces označavanja traka i sektora

ST506 format (staro i nije u primjeni!)
Gap1 Id p Sync S Byte p Gap2 Data Gap3 Gap1 Id p p Gap2 Data Gap3 p p

Track Head Sector CRC

Sync Byte

Data CRC

Karakteristike jednog diska...
Fiksne (rijetko) ili pomične glave Izmjenjivi fik i di k i I j ji i ili fiksni diskovi Jednostrani ili dvostrani (češće) Jednopločni ili višepločni Mehanizam glave
Kontaktna glava (Floppy) Fiksni razmak Lebdeća glava (Winchester)

Višepločni diskovi
Jedna glava po strani diska Glave su mehanički spojene i poravnate Gl h ički j t Trake i cilindri su poravnati Podaci su podijeljeni po cilindrima ne sektorima
Jedan blok podataka nalazi se na više diskova u p istovjetnim trakama i cilindrima umanjuje potrebu za pomicanjem glave Povećanje brzine (čitanja/pisanja)

Brzina
Vrijeme pretraživanja Vrijeme potrebno da se j p glava pomakne na traženu traku (Obrtna) latencija Vrijeme potrebno da se podatak iz sektora “odvrti” ispod glave Vrijeme pristupa = traženje + latencija Brzina prijenosa

RAID
Redundant Array of Independent Disks Redundant Array of Inexpensive Disks y p U općoj uporabi postoji 6 nivoa organizacije RAID-a RAID nije hijerarhijski ustroj podataka j j j jp Skup fizičkih diskova “vidi” se kao jedan disk od strane OS-a Podaci su podijeljeni između fizičkih diskova u polju Redundantni mem. kapacitet diskova može se p upotrijebiti za spremanje npr. parity informacija

RAID 0
Bez redundancije Podaci su podijeljeni među p j j svim diskovima Round Robin raspodjela podataka Povećanje brzine Kad se čita podatak čita se p sa svih diskova istovremeno po jedan djelić podatka Diskovi rade u paraleli

RAID 1
Kopije diskova Podaci su na svim diskovima Na svakom disku nalaze se isti podaci - kopije Kada se čita, čita se sa svih , diskova - brzina Piše se na sve diskove usporenje p j Povratak podataka je jednostavan Zamjeni pokvareni disk i ponovo presnimi sve podatke na njega Nema tzv “down time”-a tzv. down time -a Vrlo skupo i vrlo sigurno

RAID 0+1

RAID 2
Diskovi su sinkronizirani Preslikavanje podataka u malim količinama o č a a često samo jedna riječ i/ili byte Korekcija greške se radi na j g temelju odgovarajućih algoritama ali samo za one podatke koji su na jednom disku Višestruki Viš t ki parity diskovi it di k i pohranjuju Hammingov kôd korekcije greške na odgovarajućim pozicijama Puno redundancije... vrlo sigurno i vrlo skupo gotovo da i nije u uporabi

Podatkovni diskovi di k i

Hamming ECC diskovi

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

RAID 4
Svaki od diskova radi nezavisno u odnosu na druge Vrlo dobro za mnogobrojne i česte I/O zahtjeve čitanja i pisanja na disk Velika logička polja – veliki kapaciteti Parity se računa bit-po-bit preko svih diskova u RAID polju Parity informacija pohranjuje se na parity disku

RAID 5
Slično kao RAID 4 Paraity se računa nad podacima raspodjeljenim na svim diskovima u polju Round robin rezervacija diskovnog prostora za parity informaciju raspodijeljenu na sve diskove Na ovaj način zaobilazi se poseban p y j disk rezerviran za parity – koji predstavlja usko grlo – brzina samo jednog diska zbog čitanja parityja Uobičajena uporaba kod mrežnih servera RAID 5 ne znači 5 diskova!!!!!

RAID 6
Slično kao RAID 5 Parity se računa dva puta nad podacima raspodjeljenim na svim diskovima u polju i to u različitim kombinacijama Na 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 sigurnost Uporaba kod mrežnih servera

Optička memorija - CD-ROM
Originalno zamišljen za pohranu audio informacija 650Mbytes dovoljno za oko 70 minuta audio zapisa Polikarbonat presvučen visokoreflektivnim materijalom (aluminij) Podaci su pohranjeni u obliku sitnih udubina/rupica Podaci se isčitavaju refleksijom laserske zrake od reflektivne površine fl k š Konstantna gustoća pakiranja Konstantna linearna brzina – CLV (ne CAV kao kod HDDa)

CD-ROM

CD-ROM – Brzine...
Audio je 1x brzinski CLV – Constant Linear Velocity y 1.2 ms-1 Traka (spirala) – duga je 5.27km trajanje 4391 sekunde = 73.2 minute Moguće su i veće brzine – cijelobrojni umnošci osnovne brzine npr. 4x,24x, 40x, 56x npr 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

CD-ROM Format
Min Sec Secto or Mode e Layered ECC 288 byte

FF 00 x 10 00 12 byte Sync

Data 2048 byte

4 byte Id

2352 byte

Mode 0 M d 0=prazno polje lj Mode 1=2048 byte podaci+korekcija greške Mode 2=2336 byte podataka

Random Access on CD-ROM – slučajno pristupanje podacima Teško za ostvariti... nije nemoguće -> sporo Pomicanje glave na grubo određenu t ž P i j l b d đ traženu poziciju Uspostava odgovarajuće brzine rotacije diska -> ispravni CAV Čitanje adrese trenutne pozicije Podešavanje pomaka na točnu adresu i to je to... komplicirano!!!

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 kapacitiete
DVD HDDVD BD

Vrlo jednostavno za masovnu produkciju Izmjenjiva diskovna jedinica - izmjenjivost j j j j j Robusnost – da li je doista robuno? -> CD/RW pouzdanost Skupo za malošaržne produkcije Sporo Spo o Moguće samo čitanje – samo kod CD-R

Ostale optičke memorije
CD-Writable
WORM cjenovno vrlo prihvatljivi Moraju M j biti kompatibilne sa CD-ROM formatom k tibil CD ROM f t

CD-RW
Izbrisive memorije danas su vrlo, vrlo cjenovno prihvatljive Moraju biti kompatibilne sa CD-ROM formatom

DVD – značenje imena, zbunjuje?
Digital Video Disk
Predviđen za distribuciju filmova

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

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

DVD - tehnologija
Višeslojno zapisivanje Veliki k V liki kapaciteti (4 7G po j d it ti (4.7G jednom sloju) l j ) Cjelovečernji film stane na cijeli disk
Koristi se MPEG kompresija

Filmovi nose regionalne kodove za reprodukciju g p j Reproduktori reproduciraju samo one filmove za koju je regiju reproduktor namjenjen

DVD-ROM

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

Magnetska traka/vrpca
Serijski pristup Sporo Vrlo, l j f i V l vrlo jeftino -> veliki kapaciteti Arhiviranje i sigurnosno kopiranje podataka

Digital Audio Tape (DAT)
Uporaba rotirajućih glava (kao i kod analognih video reproduktora) d kt ) Velik kapacitet na maloj traci – veličina “obične” audio trake 4Gbyte nekomprimirano 8Gbyte komprimirano Sigurnosne kopije podataka sa mrežnih servera,...

Organizacija i arhitektura računala
Poglavlje 6

Input/Output sustavi

I/O problemi...
Velika raznovrsnost periferije
Raznovrsne brzine prijenosa podataka Na raznim komunikacijskim brzinama U različitim formatima

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

I/O jedinice/moduli
to su sučelja prema CPU i memoriji isto tako to su sučelja i prema više od jedne IO jedinice

Vanjski uređaji
orijentirane prema čovjeku
Monitor, pisač, tipkovnica

orijentirane prema stroju
nadzor i kontrola/upravljanje

komunikacija
modem Network Interface Card (NIC)

I/O funkcije modula
Control & Timing CPU komunikacija komunikacija sa jedinicama Data buffering detekcija pogreške

I/O koraci...
CPU provjerava status modula I/O jedinice I/O modul odgovara svojim statusom Ako je modul spreman tada CPU zahtijeva razmjenu podataka I/O modul dobiva informacije od jedinice I/O modul proslijeđuje dobivene podatke ka CPU-u mogu postojati varijacije u koracima, npr. DMA prijenos podataka

Dijagram I/O modula
Systems Bus Interface Data Lines Data Register Status/Control Register External Device Interface External Device Interface Logic Data Status Control

Address Lines Data Lines

Input Output Logic

External Device Interface Logic

Data Status Control

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đaja upravlja funkcijama jedinice ili to ostavlja procesoru da obavi isto tako to može prepustiti i operativnom sustavu
npr. Unix sve I/O jedinice tretira kao običan file/datoteku

I/O tehnike
Programirljive pogonjene programskim prekidima Direct Memory Access (DMA)

Programirani I/O
CPU ima izravnu kontrolu nad I/O
provjerava status Read/write komande prijenos podataka

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

Programirani I/O – detaljnije...
CPU zahtijeva I/O operaciju I/O modul izvršava operaciju I/O modul postavlja status bit CPU periodički provjerava statusni bit I/O modul ne izvještava direktno CPU o svom stanju I/O modul ne djeluje preko interrupta CPU može čekati ili provjeriti kasnije da li je modul završio sa svojim poslom

I/O komande
CPU adresira modul
identificira modul

CPU postavlja komandne zahtjeve
kontrola – 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

Adresiranje I/O uređaja
Gledano od strane CPU-a to je isto kao i adresiranje memorije Svaki uređaj ima jedinstveni identifikator CPU komande sadrže i te identifikatore

I/O mapiranje
Memorijski mapirani I/O
Uređaji i memorija dijele isti adresni prostor I/O se pomaša kao obična memorijska lokacija nema posebnih komandi za I/O operacije

Izolirani I/O
Odvojeni adresni prostor Potrebna dodatna I/O ili memory select linija Specijalne komande za I/O operacije ⌧Ograničeni skup takvih komandi

Interruptom pogonjeni I/O
rješava probleme čekanja CPU-a Nema provjere stanja uređaja od strane CPU-a I/O modul izaziva interrupt kada je on spreman

Interruptom pogonjeni I/O Osnovne operacije
CPU zahtijeva komandu čitanja I/O modul uzima podatak od svoje periferije dok procesor radi nešto drugo I/O modul prekida CPU interruptom CPU traži prijenos podataka I/O modul prenosi podatke

Gledano od strane CPU-a...
zahtijeva komandu čitanja podataka Radi nešto drugo Provjerava pojavu interrupta Ako je interrupt:
Snima trenutno stanje (registre) obrađuje interrupt
⌧zahvaća i sprema podatke

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

Modul za identifikaciju interrupta (1)
Druga interrupt linija za svaki modul
PC Limitiran broj uređaja

Softwersko prozivanje i ispitivanje
CPU pita svaki modul za interrupt Sporoooo....

Modul za identifikaciju interrupta (2)
Daisy Chain ili hardwersko prozivanje
Interrupt Acknowledge šalje se putem interrupt lanca Modul postavlja adresu svog interrupt vektora na sabirnicu CPU analizira interrupt vektor i identificira izvor interrupta

Bus Master
Modul mora prvo preuzeti kontrolu nad sabirnicom pa tek onda izazvati interrupt npr. PCI ili SCSI

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

Primjer - PC Sabirnica
80x86 ima jednu interrupt liniju 8086 sustavi rabe 8259A interrupt kontroler 8259A ima 8 interrupt linija

Sekvenca događaja
8259A registrira i prihvaća interrupt 8259A određuje prioritet interrupta 8259A signalizira 8086 (podiže INTR liniju) CPU potvrđuje prijem interrupta 8259A postavlja odgovarajuću adresu interrupt vektora na sabirnicu CPU procesira interrupt

PC Interrupt Layout
8259A IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 8086

INTR

ISA Bus interrupt sistem
ISA ulančuje dva 8259As kontrolera zajedno povezuje ih putem interrupta IRQ2 Daje 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 kompatibilnost

Danas je to inkorporirano u sam čipset

ISA interrupt sistem
(IRQ 2) 8259A IRQ0 (8) IRQ1 (9) IRQ2 (10) IRQ3 (11) IRQ4 (12) IRQ5 (13) IRQ6 (14) IRQ7 (15) 8259A IRQ0 IRQ1 IRQ2 IRQ3 IRQ4 IRQ5 IRQ6 IRQ7 80x86

INTR

DMA

Direct Memory Access
Interruptom pogonjen i programiran I/O prijenos podataka inače zahtijeva aktivnost CPUa
Brzine prijenosa su limitirane CPU je tada zauzet

DMA predstavlja rješenje ovih problema

DMA funkcija
dodatan modul/hardware na sistemskoj sabirnici DMA preuzima kontrolu nad I/O od CPU-a

DMA operacije
CPU “kaže” DMA kontroleru:
Čitaj/piši adresu uređaja Početnu adresu memorijskog bloka podataka koju količinu podataka treba prenijeti

CPU nastavlja sa drugim poslom DMA kontroler obavlja prijenos podataka DMA kontroler šalje interrupt kada je gotov sa prijenosom

DMA prijenos Krađa ciklusa...?!?
DMA preuzima ciklus prijenosa podataka od sabirnice Prijenos jedne riječi podatka Ovo ne koristi interrupt
CPU program se ne prekida

CPU se onemougući prije nego pokuša pristupiti sabirnici
npr. 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

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

DMA ustroj (1)

CPU

DMA Controller

I/O Device

I/O Device

Main Memory

jedna sabirnica, odspojeni DMA kontroler Svaki 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

DMA ustroj (2)
CPU DMA Controller I/O Device I/O Device DMA Controller I/O Device Main Memory

Jedna sabirnica, integrirani DMA kontroler kontroler može podržavati više od >1 uređaja Svaki transfer koristi sabirnicu samo jednom
DMA u memoriju

CPU je onemogućen samo jednom

DMA ustroj (3)
CPU DMA Controller I/O Device I/O Device I/O Device Main Memory I/O Device

Odvojena I/O sabirnica Sabirnica podržava sve DMA sposobne uređaje Svaki transfer koristi sabirnicu jednom
DMA u memoriju

CPU je onemogućen samo jednom

I/O kanali
I/O postaju sve sofisticiranije npr. 3D grafičke kartice CPU nalaže I/O kontroleru da obavi prijenos podataka I/O kontroler obavlja cijeli transfer Povećanje brzine
Smanjuje opterećenje CPU-a Posebno građeni procesori za ovu namjenu su daleko najbrži u obavljanju ove funkcije

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

Small Computer Systems Interface (SCSI)
Paralelno sučelje 8, 16, 32 bit podatkovne linije Daisy chained Uređaji su neovisni jedna o drugom u lancu Uređaji u lancu mogu komunicirati jedan sa drugom kao i u slučaju host-slave komunikacije

SCSI - 1
Rane 1980s 8 bit 5MHz Data rate 5MBytes.s-1 7 uređaja u lancu
8 ako uključimo i Host-kontroler

SCSI - 2
1991 16 i 32 bit 10MHz Data rate 20 ili 40 Mbytes.s-1

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đaja Reselection/ponovno odabiranje istog uređaja
omogućava rekonekciju nakon npr. suspend moda npr. ako zahtjevana operacija traje određeno vrijrme tada se sabirnica može osloboditi za komunikaciju drugih uređaja

SCSI signalizacija (2)
Komanda – inicijator zahtijeva komunikaciju sa odredištem Zahtijevaju se podaci Zahtijeva se status Zahtijeva se poruka (obostrano)

Faze rada SCSI sabirnice
Reset Bus free Command, Data, Status, Message

Arbitration

(Re)Selection

SCSI Timing Diagram

Podešavanje/konfiguracija SCSI sabirnice
Sabirnica mora biti električki terminirana na oba kraja
uobičajeno je da je na jednom kraju host adapter na drugom kraju su terminatorski priključci

SCSI identifikator se mora postaviti
jumperi ili prekidači moraju biti jedinstveni u cijelom lancu 0 (zero) identifikator za boot jedinicu veći broj znači veći prioritet u arbitraciji

IEEE 1394 FireWire
Serijska sabirnica viskoih performansi Brza mali troškovi, jeftina jednostavna za implementaciju Koristi se kod digitalnih kamera, VCR-a, TV-a, fotoaparata, ...

FireWire ustroj
Daisy chain Do 63 devices na jednom portu
ustvari 64 od kojih je jedna i samo sučelje

Do 1022 busa se mogu povezati jednim bridge čipsetom Automatska konfiguracija Nema sabirničkih terminatora Može se oblikovati u stablastu strukturu

Organizacija FireWire-a u 3 nivoa – 3 Layer Stack
Fizička
Prijenosni medij, električne i signalizacijske karakteristike

Veza/Link
Prijenos podataka u paketima

Transakcije
Zahtjev-odgovor protokol

FireWire – Fizikalni nivo
Brzine prijenosa od 25 do 400Mbps Dvije forme/načina arbitracije
Temeljeno na stablastoj strukturi Korjenski 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” arbitracija i žurbena/urgent arbitracija

FireWire - Link nivo
Dvije vrste prijenosa
Asinkorni 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

Organizacija i arhitektura računala
Poglavlje 7

Podrška operativnog sustava

Ciljevi i funkcije
Prikladnost
Napraviti računalo da bude što jednostavnije za uporabu

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

Nivoi organizacije računalnog sustava

Zadaće operativnog sustava
Izrada programa Izvršenje programa Pristup I/O jedinicama kontrolirani pristup datotekama pristupi na razini sustava Detekcija i odgovori na pojavu greške Opsluga više korisnika

O/S kao upravljač rač. resursima

Vrste operativnih sustava
Interaktivni Batch/Šaržni Jednoprogramski (Uni-programming) Višeprogramski (Multi-tasking)

Prvi operativni sustavi...
Kasne 1940 do srednjih 1950 Nije bilo operativnog sustava Program komunicira sa hardwareom izravno Dva su glavna problema:
Scheduling/periodičko izvršavanje Setup time/vrijeme programiranja/pokretanja

Jednostavni “batch” sustavi
Rezidentan monitorski program Korisnik se naručuje operatoru za izvršavanje programa Operator izvršava program kada dodje na red / batch execution Monitorski program upravlja skvencom batch niza programa u svrhu redoslijednog izvršenja programa Kada je jedan posao izvršen upravljanje se vrća monitorskom programu koji pokreće izvršavanje slijedećeg posla sa liste Monitorski program upravlja redosljedom izvršavanja poslova

Jezik za kontrolu poslova / Job Control Language
Nalaže monitorskom programu što da radi obično se označava i počinje znakom $ npr.
$JOB $FTN ... instrukcije $LOAD $RUN ... podaci $END

Željene hardwerske mogućnosti/značajke
Zaštita sadržaja memorije
i na taj način zaštititi monitorski program

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

Privilegirane instrukcije
Može ih izvršiti samo monitorski program npr. I/O instrukcije

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

Višeprogramski “batch” sustavi
I/O uređaji vrlo spori Kada jedan program čeka I/O drugi može koristiti CPU

Jedan program...

Multiprogramiranje sa dva programa

Multiprogramiranje sa tri programa

Sustavi vremenske razdiobe / TIme sharing systems
Omogućava korisniku direktnu interakciju sa računalom Multiprogramiranje omogućava većem broju korisnika interakciju sa računalom

Scheduling
To je ključ multiprogramiranja Dugoročno Srednjoročno Kratkoročno I/O

Long Term Scheduling
Određuje koji programi su prijavljeni za procesiranje npr. upravljanje slobodom multiprograminga Jednom 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)

Medium Term Scheduling
Dio funkciji zamjene... uobičajeno je temeljen na potrebama za upravljanjem multiprogramskih sustava Ako nema virtualne memorije tada srednjoročni scheduling postaje problem

Short Term Scheduler
Ima funkciju dispečera Tu spadaju poslovi fine gradacije u smislu koji će posao biti slijedeće na redu npr. koji će posao moći rabiti procesor u slijedećem vremenskom prozoru koji dolazi / time slot-u

Procesna stanja

Blok procesne kontrole
Identifikator Stanje Prioritet Programski brojač Memorijski pokazivač Konetkstualni podaci I/O status Informacije o korisničkim accountima

Ključni elementi jednog O/S

Procesni Scheduling
Process Request Long-Term Queue Short-Term Queue CPU End

I/O

I/O Queue

I/O

I/O Queue

I/O

I/O Queue

Memorijski management
Uni-program
Memorija je podijeljena na dva dijela Jedan dio za O/S drugi za program koji se izvršava

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

Mehanizam zamjene...
Problem: I/O jedinice su tako spore u suporedbi prema CPU-u čak i u višeprogramskim sustavima tako da je CPU najveći dio vremena besposlen Rješenje:
Povećanje glavne memorije
⌧Skupo ⌧S vremenom dovodi do povećanja programa u smislu zauzeća memorije

Zamjena

Što je to zamjena?
Poslovi koji su dugoročno spremljeni na HDD – swap file Proces se “zamjenjuje” iz HDD-a u memoriju kad bude slobodnog mjesta Kada se proces završi, “miče” se iz glavne memorije Ako 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 čekanje Učitava se i pokreče proces koji nije blokiran ili je to posve novi proces ali proces zamjene poslova je ustvari I/O operacija budući se swap lista nalazi na HDD-u

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čine Proces se sprema na particiju najmanje raspoložive veličine u koju može stati tu se može pojaviti određena količina “izgubljene” memorije zbog particija koje su nešto veće nego li to proces zahtijeva Ovo se rješava particioniranjem memorije prema veličini procesa

Fiksno particioniranje

Varijabilno particioniranje (1)
Rezervira se samo ona količina memorije koliko to zahtijeva proces To 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 blokiranji New process may be smaller than swapped out process Opet imamo pojavu mem. rupe

Varijabilno particioniranje (2)
Sa vremenom će se pojaviti puno “viška” memorije zbog pojave rupa u particioniranju -> fragmentacija Rješenja:
Koalicioniranje – Spajanje susjednih memorijskih rupa u jednu veliku Kompaktiranje – Sa vremena na vrijeme proskenira se cijela memorija i sve memorijske rupe se relociraju u jedan slobodni memorijski blok/particiju

Efekt dinamičkog particioniranja

Relokacija
Nema garancije da će se proces uvijek učitati u isti dio memorije Instrukcije u sebi sadrže i adrese
Pozicije podataka Adrese za zahvat instrukcija (grananje)

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

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

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

Virtualna memorija
Zahtijeva ustraničenje
Ne zahtijeva sve stranice procesa u memoriji Učitava samo ne stranice procesa koje su trenutno potrebne

Greška “stranice”
ako tražena stranica procesa nije u memoriji O/S mora učitati traženu stranicu u memoriji Može se pojaviti i potreba da “zamjeni”stranicu procesa u svrhu oslobođenja memorije Stranice 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

Thrashing
Previše procesa u premalo memorije... O/S prvodi puno vremena u “swap”-iranju iz HDD-a u gl. memoriju i obratno Jako malo vremena pstaje za koristan rad Disk je stalno aktivan Rješenja
Dobar algoritam za izmjenu i zamjenu stranica u gl. memoriji Smanjenje broja aktivnih procesa Povećanje kapaciteta glavne memorije

Dodatno...
Ne trebamo baš sve procese u memoriji, zar ne? “Stranice” procesa možemo učitavati po potrebi tako da na kraju možemo u memoriju učitavati procese koji su relativno veliki jed imamo mjeta uklanjanjem stranica procesa koji na ne trebaju ili njihovih dijelova Glavna memorija zove se “stvarna” memorija Tako da korisnik “stvarnu” i “virtualnu” memoriju vidi kao jednu veliku memoriju – stvarna + virtualna = velika memorija

Struktura ustroja memorijskog ustraničavanja

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

Prednosti segmentacije
Pojednostavljeno upravljanje strukturama podataka koje stalno ratu po volumenu podataka Omogućava da se program izmjenjuje i rekompilira neovisno o drugim programima, bez ponovnog učitavanja Na ovaj način omogućeno je dijeljenje podataka među procesima a i samih programa isto tako omogućava i zaštitu od pristupa drugih programa neki sustavi čak kombiniraju segmentaciju i ustraničavanja
po ustroju su to dva vrlo slična procesa sa istom namjerom

Organizacija i arhitektura računala
Poglavlje 8

Računalna aritmetika

Aritmetiko-logička jedinica
Radi razne izračune Sve ostale jedinice u računalu su tamo da služe ALU jedinici Radi samo sa cijelim brojevima Može raditi i sa brojevima sa pomićnim zarezom – Float Point Numbers Može biti kao zasebna jedinica – matematički koprocesor Može biti kao odvojena jedinica – fizički odvojeni FPU (486DX +)

ALU Ulazi i zlazi

Prezentacija cijelog broja
Sa pomoću 0 i 1 se može prikazati bilo koji broj Samo pozitivni brojevi – “čisti” binarni format
npr. 146=10010010

nema preznaka “-” – negativnih brojeva nema decimalne točke mogućnost predznaka dvostruki komplement

Predznak
MSB bit rezerviran za predznak 0 znači pozitivan broj 1 znači negativan broj +18 = 00010010 -18 = 10010010 Problemi:
Treba voditi računa i o predznaku i o apsolutnoj vrijednosti broja u aitmetičkim operacijama dva načina zapisivanja broja nula (+0 i -0)

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

Korist dvostrukog komplementa
Samo jedan način prikaza broja 0 Jednostavnija matematika Operacija negacije je vrlo jednostavna
3 = 00000011 Booleov komplement Dodati 1 LSB bitu 11111100 11111101

Geometrijski prikaz dvostrukog komplementa cijelog broja

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

Specijalni slučaj negacije - 2
-128 = 10000000 bitwise not 01111111 Add 1 LSB bitu +1 Rezultat 10000000 Dobijemo: -(-128) = -128 X Obratiti pažnju na MSB bit (bit predznaka) a treba se promijeniti tijekom negacije

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

Konverzije brojeva s obzirom na njihovu binarnu dužinu
Pozitivni brojevi pakirani sa vodećim nulama leading zeros +18 = 00010010 +18 = 00000000 00010010 Negativni brojevi pakirani sa vodećim jedinicama - leading ones -18 = 10010010 -18 = 11111111 10010010 npr. pakiranje sa MSB bitom (predznakom)

Zbrajanje i oduzimanje
Normalno binarno zbrajanje Gleda 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

Hardwersko zbrajanje i oduzimanje

Množenje
To je kompleksna operacija Radi 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

Primjer množenja
1011 Multiplikand (11 dec) x 1101 Multiplikator (13 dec) 1011 djelomični umnožak Važno: ako je multiplikatorski bit 1 onda samo kopiraj 0000 1011 multiplikand 1011 inače nula 10001111 umnožak (143 dec) Važno: Rezultat je dvostruke duljine nego li su to operandi

Binarno množenje bez predznaka

Postupak izvršenja operacije množenja - primjer

Dijagram toka postupka binarnog množenja bez predznaka

Množenje negativnih brojeva
Ovo ne ide, ne može se! Rješenje 1
Ako je potrebno onda se negativni broj pretvori u pozitivni množe se normalnim postupkom ako su predznaci operanada različiti tada je rezultat negativan broj

Rješenje 2
Booth-ov algoritam

Booth-ov algoritam

Primjer Booth-ovog algoritma

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

Djeljenje binarnog broja bez predznaka
00001101 1011 10010011 1011 001110 Partial 1011 Remainders 001111 1011 100 Divisor Quotient Dividend

Remainder

Realni brojevi
Brojevi sa decimalnom točkom Mogu 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?

Brojevi sa pomičnim zarezom
Sign bit Biased Exponent Significand or Mantissa

+/- .significand x 2exponent Točka je zapravo fiksirana između znaka predznaka i ostatka broja Eksponent otkriva područje potencije prikazanog broja

Primjer broja sa pomičnim zarezom

Predznaci za float-brojeve
Mantissa je pohranjena u formatu dvostrukog komplementa Kako je zapisan i što znači eksponentni dio
npr. eksponent (bias) 128 znači 8 bit eksponent čija vrijednost može biti od 0-255 i oduzima mu se 128 da bi se dobila korektna vrijednost eksponenta područje vrijednosti je -128 do +127

Normalizacija
FP su uobičajeno normalizirani npr. eksponent je tako podešen da je MSB mantise jedinica (1) Budući da je on uvijek 1, tada taj bit nije potrebno spremati primjer; 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)

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 mantisse 23 bitna mantissa 2-23 ≈ 1.2 x 10-7 oko 6 decimalnih mjesta

Područja korektnog prikaza brojeva

IEEE 754
Standard za FP pohranu/zapis brojeva 32 i 64 bitni standard 8 i 11 bitni eksponent Prošireni format format (i mantissa i eksponent)

FP aritmetika +/Provjera prisutnosti nule (broj 0) Podešavanje eksponenata Zbrajanje ili oduzimanje Normalizacija rezultata

FP aritmetika x/÷
Provjera prisutnosti nule zbrajanje/oduzimanje eksponenata množenje/dijeljenje signifikanada – paziti na predznak Normalizacija Zaokruživanje Svi rezultati trebaju biti dvostruke duljine nego li su to operandi/signifikandi

FP Množenje

FP Dijeljenje

Organizacija i arhitektura računala
Poglavlje 9

Instrukcijski skup: Karakteristike i funkcije

Što je to instrukcijski skup?
To je skup instrukcija koje CPU razumije i prema njima radi određene radnje Strojni kôd binarni k ôd obično je vidljiv prilikom asemblerskog programiranja

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

Izvorni operand
Napravi nešto od ovoga...

Rezultantni operand
Spremi rezultat ovdje...

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

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 registrima I/O jedinicama

Način zapisivanja/predstavljanja instrukcije
U strojnom kôdu svaka instrukcija ima jedinstveni binarni zapis Za lakšu prezentaciju čovjeku kao programeru instrukcije su prikazane simbolički
npr. ADD, SUB, LOAD

Operandi također ovako mogu biti prikazani
ADD A,B

Vrste instrukcija
procesiranje podataka pohrana podataka (glavna memorija) Premještanje podataka (I/O) Kontrola tijeka programa

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

Načini adresiranja (b)
2 adrese
Jedna adresa je i za operand i za rezultat a=a+b Redukcija duljine instrukcije Traži još dodatne podoperacije – dodatan posao
⌧Privremeni spremnik za čuvanje privremenih rezultata

Načini adresiranja (c)
1 adresa
implicitna druga adresa obično je to nekakav registar (accumulator) oubičajeni način adresiranja kod prvotnih računala

Načini adresiranja (d)
0 (zero) adresa
sve adrese su implicitne koristi se stog/stack npr. push a push b add pop c c=a+b

Koliko i koji način adresiranja?
Više adresa u instrukciji
Složene (moćne?) instrukcije Više registara
⌧operacije među registrima su najbrže operacije

Manje instrukcija po programu – kraći i manji programi

Manje adresa u instrukciji
Manje složene (i moćne?) instrukcije Više instrukcija po programu ali i brži instrukcijski ciklus zahvata/izvršenja takvih instrukcija

Što odabrati, kako dizajnirati sustav (1)
Repertoar operacija
koliko ops? kako to one mogu obaviti? Koliko su one kompleksne?

Vrsta podataka Instrukcijski formati
Duljina op code polja Broj adresa/način adresiranja

Što odabrati, kako dizajnirati sustav (2)
Registri
Broj raspoloživih CPU registara Koje se operacije mogu izvoditi na kojim registrima?

Načini adresiranja… RISC protiv CISC-a

Tipovi operanada
Adrese Brojevi
Integer/floating point

Znakovi/Characters
ASCII

Logički podaci/Logical Data
Bitovi ili zastavice/flags

Tipovi podataka kod Pentuim-a
8 bit Byte 16 bit word 32 bit double word 64 bit quad word Adresiranje se izvodi putem 8-bitne jedinice 32 bit double word se čita na adresama djeljivim sa 4 (32bit=4x1byte)

Specifični tipovi podataka
Generalno – čisti binarni podaci Integer - single binary value Ordinal - unsigned integer Nepakirani BCD - One znamenka po byteu Pakirani BCD - 2 BCD znamenke po byteu Pokazivači blizine - 32 bitni offset unutar nekog segmenta Bit polje Byte String Floating Point

Vrste operacija
Prijenos podataka Artimetika Logičke operacije Pretvorbe/konverzija I/O Sistemsko upravljanje Prijenos ovlasti upravljanja

Prijenos podataka
Specificira/određuje
Izvor Odredište količinu podataka za prijenos

Mogu postojati različite instrukcije za različite operacije prijenosa podataka
npr. IBM 370

ili jedna instrukcija sa različitim adresiranjem
npr. VAX

Aritmetika
Add, Subtract, Multiply, Divide Signed Integer Floating point ? maže sadržavati
Increment (a++) Decrement (a--) Negate (-a)

Logičke operacije
Operacije na razini jednog bita – bit-po-bit AND, OR, NOT

Operacije konverzija/pretvorbe
npr. binarni broj u BCD zapis

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

Operacije sistemske kontrole
Privilegirane instrukcije CPU mora biti u posebnom stanju
Ring 0 kod 80386+ Kernel mode

Koriste se kod O/S-a

Operacije prijenosa ovlasti upravljanja
Granjanje
npr. granaj se na x ako je rezultat nula

Preskok/skok
npr. inkrement i skok ako je nula ISZ Register1 granaj xxxx ADD A

pozivi potprograma
poziv interrupt potprograma

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 byteova 12345678 može se pohraniti 4x8bit na slijedeći način...

Poredak byte-ova (primjer)
Adresa 184 185 186 186 Value (1) 12 34 56 78 Value(2) 78 56 34 12

npr. čitati odozgo prema dolje ili obratno?

Nazivi poredaka byte-ova
Ovaj problem se naziva “Endian” Sustav zapisivanja lijevo (Value-1) ina na najnižoj adresi najmanje značajan, LSB, byte Ovaj način se zove – BIG-ENDIAN Desni sustav ima LSB na najvišoj adresi i on se zove – LITTLE-ENDIAN

Standardi... što je standard?
Pentium (80x86), VAX su little-endian IBM 370, Motorola 680x0 (Mac), i većina RISC su big-endian Internet 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

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->