arhitektura racunala - skripta
TRANSCRIPT
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 1
Asistent: Goran Kraljević, dipl.ing.rač.
Nastavnik: Prof.dr.sc. Sven Gotovac
ARHITEKTURA RAČUNALA
FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI
SVEUČILIŠTE U MOSTARU
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 2
Web
http://www2.fsr.ba/nastava/adr
Pitanja, primjedbe, dogovor za konzultacije ...
Subject: ADR
O predmetu
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 3
Polaganje ispita kroz kolokvije ...
1. kolokvij 100 bodova
2. kolokvij 100 bodova
Vježbe (asembler Intel 8086) 100 bodova
Ukupno : 300 bodova
Potrebno je osvojiti min. 50 bodova (50%) iz svakog kolokvija i min. 50 bodova iz vježbi da bi se uspješno položio ispit iz “Arhitekture digitalnog računala”.
Svi studenti koji polože ispit putem kolokvija oslobođeni su usmenog dijela ispita.
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 4
U v o d
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 5
Funkcijski model von Neumannova računala
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 6
Vrste sabirnica
• Dijelovi računala su povezani pomoću posebne skupine vodiča koji se nazivaju sabirnice (engl. Bus)
• Sabirnice su redovito izvedene kao vodiči na površini tiskane pločice, a izvedene su i na priključnice (konektore) unutar računala kako bi se mogli priključiti dodatni sklopovi.
• S obzirom na vrstu informacija koje prenose postoje tri osnovne vrste sabirnica:
Sabirnica podataka (engl. Data Bus)
– je skup vodiča za prijenos električnih signala koji predočuju podatke.
– Broj tih vodiča redovito odgovara količini bita koju odjednom može obraditi CPU. Tako, npr. 32-bitna računala redovito imaju sabirnicu podataka koja se sastoji od 32 vodiča.
Adresna sabirnica (engl. Address Bus)
– je skup vodiča za prijenos električnih signala koji predočuju adrese, a njihov broj ovisi o građi računala (npr. 20 linija).
Nadzorno-upravljačka sabirnica (engl. Control Bus)
– je skup vodiča za prijenos električnih signala koji predočuju nadzorne i upravljačke signale, a njihov broj i funkcija pojedinog vodiča razlikuje se od računala do računala.
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 7
Ciklus izvoĎenja operacije(čitanje podataka iz memorije)
Procesor (CPU)
Upravljačka sabirnica
(upravljački signali)
Memorija U/I
uređaji
Registri
ALU
Upravljačka
jedinica
Adresna sabirnica
(adresa mem.lokacije)
Podatkovna sabirnica
(podatak iz memorije)
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 8
Ciklus izvoĎenja operacije(zapisivanje podataka u memoriju)
Procesor (CPU)
Upravljačka sabirnica
(upravljački signali)
Memorija U/I
uređaji
Registri
ALU
Upravljačka
jedinica
Adresna sabirnica
(adresa mem.lokacije)
Podatkovna sabirnica
(podatak u memoriju)
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 9
Vrste sabirnica
• Širina podatkovne sabirnice podataka (npr. 32 bita, 64 bita) utiče na količinu podataka koja se u jednom memorijskom ciklusu može prenijeti preko podatkovne sabirnice.
Ukoliko je širina podatkovne sabirnice npr. 32-bita onda je u jednom memorijskom ciklusu moguće preko podatkovne sabirnice prenijeti 32 bita podataka (4B).
Ukoliko je širina podatkovne sabirnice npr. 64-bita onda je u jednom memorijskom ciklusu moguće preko podatkovne sabirnice prenijeti 64 bita podataka (8B).
• Širina adresne sabirnice podataka (npr. 32 bita, 36 bita) utiče na veličinu izravno adresirljivog memorijskog prostora.
Ukoliko je širina adresne sabirnice npr. 32-bita onda je moguće izravno adresirati 232 memorijskih lokacija. Ukoliko je veličina jedne memorijske lokacije 8 bita (1B), onda možemo reći da je ukupna količina izravno adresirljivog memorijskog prostora 232 B, odnosno 4 GB.
Ukoliko je širina adresne sabirnice npr. 36-bita onda je moguće izravno adresirati 236 memorijskih lokacija. Ukoliko je veličina jedne memorijske lokacije 8 bita (1B), onda možemo reći da je ukupna količina izravno adresirljivog memorijskog prostora 236 B, odnosno 64 GB.
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 10
Isječak iz Intelove porodice procesora
Tip procesora Godina Data/Adress Bus Br. tranzistora
4004 1971. 4/12 bit 2.250
8008 1972. 8/14 bit 2.500
8080 1974. 8/16 bit 5.000
8086 1978. 16/20 bit 29.000
286 1982. 16/24 bit 120.000
386 1985. 32/32 bit 275,000
486 DX 1989. 32/32 bit 1,180.000
Pentium 1993. 64/32 bit 3,100.000
Pentium Pro 1995. 64/36 bit 5,500.000
Pentium II 1997. 64/36 bit 7,500.000
Pentium III 1999. 64/36 bit 24,000.000
Pentium 4 2000. 64/36 bit 42,000.000
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 11
Mooreov zakon
• Gordon Moore, suosnivač Intela• 1965. uočava trend – dupliranje broja tranzistora po kvadratnom inču
svakih godinu dana (4 godine nakon izuma); danas – svakih 18 mjeseci
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 12
Glavni dijelovi procesora ...
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 13
Hijerarhijska organizacija memorije
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 14
Hijerarhijska organizacija memorije
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 15
Pentium – hijerarhijske razine memorije
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 16
Matična ploča za Pentium 4
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 17
U/I sučelja
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 18
Uvod u asembler
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 19
Različiti pogledi na računalo
will serve you by providing that understanding.computers it is our sincerest hope that this book Computer Engineering, or some other aspect of your career objective is in Computer Science, that you fully understand the machine. Whether at the gate, ISA, and the system architecture levelis when you understand how a machine functions leads to an efficient, effective computer design. It a computer system from each the three perspectives The intellectual synthesis that comes from viewing
1.10 Looking Ahead
D Q
clk
32 3232
PCout
B bus
clk
PCin
A bus
Viđenje programskog brojilasa stajališta programera
PC
31 0
Viđenje programskog brojila sastajališta projektanta logičkih vrata
Korisnički pogled na računalo
Pogled projektanta arhitekture računala
Pogled programera Pogled projektanta
logičkih sklopova
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 20
Hijerarhijski model arhitekture računala
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 21
Pogled na računalo programera u simboličkom jeziku
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 22
Pogled na računalo programera u simboličkom jeziku
Programer koji programira u strojnom (odnosno simboličkom jeziku)izrađuje temeljnu programsku podršku potrebnu kako bi procesor mogaoobavljati svoje zadatke.
• Strojni jezik (engl. Machine language)je skup temeljnih naredbi koje procesor može izvoditi, a izražen je kao niz 0 i 1.
• Simbolički jezik (engl. Assembly language)je alfanumerički ekvivalent strojnog jezika. Programeru je puno lakše koristiti
skraćenicu naredbe koje ga podsjeća na operaciju koju procesor mora izvesti nego binarni zapis iste naredbe.
• Program za prevoĎenje simboličkog jezika (engl. Assembler)je program koji translatira (preslikava jedan na jedan) simbolički jezik u strojni
jezik procesora.
Napomena: Svi viši programski jezici (npr. C, C++, ...) su prenosivi s procesora na procesor, dok su strojni odnosno simbolički jezici vezani uz odreĎeni procesor.
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 23
Razine programskih jezika
• Strojni jezik (engl. Machine language)
- jedino što računalo “može” razumijeti- sastoji se od kombinacija 0 i 1- direktno povezan s arhitekturom računala- efikasan, ali je u njemu teško programirati
• Simbolički jezik (engl. Assembly language)
- također direktno ovisi o arhitekuri računala- napredak jer se umjesto 0 i 1 koriste mnemonički kodovi- treba se prevesti u strojni kod prije izvršenja
• Programski jezici više razine (engl. High level languages)
- dobro definirani, nalikuju pravom jeziku (uglavnom engleskom)- fundamentalna razlika je u tome što više nisu vezani uz arhitekturu računala
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 24
Razine programskih jezika – Primjer
Programski jezik više razine:
a=b+c;
Asembler:
ld r6,24ld r7,28add r5,r6,r7st r5,32
Strojni oblik:
00001 00110 00000 00000000000011000
00001 00111 00000 00000000000011100
01100 00101 00110 00111 000000000000
00011 00101 00000 00000000000100000
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 25
Prikaz informacija u računalu
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 26
Prikaz informacija u računalu
Brojevni sustavi
• Binarni brojevni sustav
• Oktalni brojevni sustav
• Heksadecimalni brojevni sustav
Pretvaranje brojeva između različitih brojevnih sustava
Aritmetičko – logičke operacije
• Zbrajanje, oduzimanje
• Aritmetika dvojnog komplementa
Prikaz brojeva i znakova u računalu
• Prikaz cijelih brojeva
• Prikaz brojeva u pomičnom zarezu
• Prikaz znakova u računalu
• ASCII kod
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 27
Brojevni sustavi
• Je li dekadski sustav prikladan za ugradnju u računalo?
– Trebalo bi načiniti elektronički element koji je u stanju prikazati 10 diskretnih stanja
– Moguće, ali komplicirano i skupo, možda i sporo.
• Jednostavno, brzo, jeftino i pouzdano rješenje: bistabil
– Elektronički element koji je u mogućnosti spremiti dva diskretna stanja
– Pouzdano i neosjetljivo na manje promjene napona. Npr.
0 – 2,5 V znamenka 0
2,51 – 6 V znamenka 1
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 28
Binarni brojevni sustav
• Znamenke su 0 i 1, dakle baza brojanja B=2 što određujebinarni brojevni sustav
• Iz engleskog BInary digiT nastalo je ime za najmanju količinu informacije, znamenku binarnog brojevnog sustava BIT.
• Broj od n znamenki u brojevnom sustavu s bazom 2:
– zn-1 ∙ 2n-1 + zn-2 ∙ 2n-2 + ... + z1 ∙ 21 + z0 ∙ 20, zi { 0, 1 }
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 29
Registar
• Binarni broj se sastoji od više znamenki (bitova) – tako da za prikaz broja moramo upotrijebiti nekoliko bistabila. Takva grupa bistabila čini registar.
• Registri su sastavni dio svih dijelova računala. Broj bistabila u registru nekog računala određuje njegovu duljinu. Duljina većine registara u nekom računalu je određena duljinom riječi računala.
• Riječ je količina informacija koju računalo može obraditi u jednoj operaciji, pohraniti u memoriju, odnosno dobaviti iz memorije. Najčešće duljine riječi (pa prema tome i registara) su 8, 16, 32 i 64 bita.
QD
dn-1
qn-1
QD
dn-2
qn-2
QD
d0
q0
...
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 30
Pretvorba dekadskog broja u binarni
Binarni broj tvore ostaci dijeljenja s 2, odozdo prema gore:
57 : 2 = 28 1 1 1 0 0 1
1
28 : 2 = 14
0
14 : 2 = 7
0
7 : 2 = 3
1
3 : 2 = 1
1
1 : 2 = 0
1
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 31
Primjer svih sadržaja u registru od tri bita
U registru s 3 bita mogu se prikazati sljedeći brojevi:
Dekadski broj Binarni broj
0 000 0
1 001
2 010
3 011 +1
4 100
5 101
6 110
7 111 23 -1
• Za n=3 dobije se interval [0, 23 - 1], općenito [0, 2n - 1]
• Za n=8 dobije se interval [0, 28 - 1], tj. [0, 255]
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 32
Kontrola rezultata u digitalnoj aritmetici
Rezultat operacije u digitalnoj aritmetici može se
provjeravati s da li je:
• Negativan (negative)
• Nula (zero)
• Prekoračio opseg brojeva (overflow)
• Ima prijenos (carry)
• Ostali uvjeti
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 33
Kontrola rezultata u digitalnoj aritmetici
• Negativan rezultat (negative)
– Ako je operacija nad cijelim brojevima ispravno provedena, tj.nije došlo do preljeva tada je predznačni rezultat negativan ako i samo ako mu je najznačajniji bit postavljen u 1 (ne vrijedi za kod s posmakom)
• Rezultat je nula (zero)
– Rezultat X=0 ako i samo ako su svi njegovi bitovi 0
• Preljev (overflow)
– Preljev je prekoračenje rezultata računskih operacija u digitalnoj aritmetici van dozvoljenog opsega brojeva
– Ako je došlo do preljeva, rezultat računske operacije je pogrešan
• Prijenos (carry)
– Prijenos označava pojavu bita prijenosa
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 34
Zbrajanje binarnih brojeva
• Primjer 2.
111
+ 101
1100
• Primjer 1.
100
+ 10
110
• Zbrajanje u registru s ograničenim brojem bita
1 1 1 1
0 0 0 1
+
1
0 0 1 0
Preljev
(overflow)
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 35
Negativni binarni brojevi
• Negativni brojevi se prikazuju tzv. tehnikom dvojnog komplementa.Nule pretvaramo u jedinice, a jedinice u nule (komplement do baze – 1), a zatim tom komplementu dodajemo 1 (komplement do baze – dvojni komplement).
• Primjer: -37 u registru s 8 bita
0 0 1 0 0 1 0 1
1 1 0 1 1 0 1 0
1 1 0 1 1 0 1 1
+ 1
37
-37
0 0 1 0 0 1 0 137
+
0 0 0 0 0 0 0 01
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 36
Oduzimanje binarnih brojeva
Operacija 7 - 5 u računalu s registrom od 4 bita obavit će se kao
7 + (-5). Binarni prikaz broja -5 je: 0 1 0 1
Komplement do baze-1 1 1 1 1 Komplement do baze 1 0 1 0
(jedinični komplement) - 0 1 0 1 (dvojni komplement) + 0 0 0 1
1 0 1 0 1 0 1 1
Dokaz da je dobiveni broj - 5 Operacija oduzimanja: 7 - 5
1 0 1 1 (- 5) 0 1 1 1 ( 7)
+ 0 1 0 1 (+5) + 1 0 1 1 (-5)
0 0 0 0 0 0 1 0
Preljev 1 Preljev 1
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 37
Primjer svih sadržaja u registru od tri bita (ako je prvi bit predznak)
U registru s 3 bita, ako je prvi bit predznak mogu se prikazati
sljedeći brojevi:
Dekadski broj Binarni broj
0 000
1 001 -22
2 010
3 011 0 +1
-4 100
-3 101 22 -1
-2 110
-1 111
• Za n=3 dobije se interval [-22, 22 - 1], općenito [-2n-1, 2n-1 - 1]
• Za n=8 dobije se interval [-27, 27 - 1], tj. [-128, 127]
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 38
Oktalni brojevni sustav
• Baza sustava je B=8 a znamenke su 0,1,2,3,4,5,6,7
– Koristi se za skraćeno zapisivanje binarnih sadržaja kada je to
spretno
– Zapis se može dobiti iz dekadskog sukcesivnim dijeljenjem s 8 i
zapisivanjem ostataka s desna na lijevo, ali i direktno iz binarnog
zapisa grupiranjem po tri znamenke (zdesna nalijevo – lijevo od
decimalne točke, a slijeva nadesno – desno od decimalne točke)
• Primjeri:
36-bitni broj 001 110 000 101 111 001 010 011 111 000 100 001
oktalni ekvivalent 1 6 0 5 7 1 2 3 7 0 4 1
11 001 . 110 01 (2) = 31.62 (8)
3 1 . 6 2
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 39
Heksadecimalni brojevni sustav
• Baza sustava je B = 16, a znamenke su:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
– Koristi se za skraćeno zapisivanje binarnog sadržaja.
– Zapis se može dobiti iz dekadskog sukcesivnim dijeljenjem s 16 i
zapisivanjem ostataka s desna na lijevo, ali i direktno iz binarnog
zapisa grupiranjem po 4 znamenke (zdesna nalijevo – lijevo od
decimalne točke, a slijeva nadesno – desno od decimalne točke)
• Primjeri:
16-bitni broj 0111 1011 0011 1110
heksadecimalni ekvivalent 7 B 3 E
11001.11001(2) = 1 1001 . 1100 1000 = 19.C8 (16)
1 9 . C 8
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 40
Brojevi u različitim bazama
Bin. Dec. Hex. Okt.
0000 0 0 00001 1 1 10010 2 2 20011 3 3 30100 4 4 40101 5 5 50110 6 6 60111 7 7 71000 8 8 101001 9 9 111010 10 A 121011 11 B 131100 12 C 141101 13 D 151110 14 E 161111 15 F 17
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 41
Razlomljeni binarni brojevi
• Razlomljeni binarni brojevi sadrže "binarnu točku", analogno decimalnom zarezu, odnosno točki u anglo-američkoj notaciji.
Primjer prikaza razlomljenih brojeva:
5.75 10 = 5 * 100 + 7 * 10-1 + 5 * 10-2 =
= 1*22 + 0*21 + 1*20 + 1*2-1 + 1*2-2 =
= 1 0 1 . 1 1 2
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 42
Primjer pretvaranja dekadskog razlomka u binarni
• Cjelobrojni dio dekadskog broja pretvara se u binarni uzastopnim dijeljenjem, a decimalni uzastopnim množenjem s 2, gdje cjelobrojni dio dobivenih produkata tvori znamenke binarnog razlomka.
1.25 = 1 + .25
.25 * 2 1 . 0 1
0.50
.5 * 2
1.0
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 43
Množenje s 2n i 2-n
• Binarni broj se množi s potencijama baze 2 tako da se binarna točka pomakne odgovarajući broj mjesta desno ili lijevo, zavisno od toga da li je predznak potencije pozitivan ili negativan.
Na primjer:
1 . 1 1 * 22 = 1 1 11 . 1 1 * 2-2 = 0 . 0 1 1 1
Kako u registar pohraniti točku?
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 44
Realni brojevi standardne preciznosti
• IEEE (Institute of Electrical and Electronics Engineers) standard
754 za prikaz realnih brojeva u standardnoj točnosti:
Deklaracija u programskom jeziku C: float
31 30 23 22 0
P Karakteristika Mantisa
• P je predznak ( P=1 negativan, P=0 pozitivan)
• Karakteristika je binarni eksponent + 127 (da se izbjegne prikaz
negativnog eksponenta)
• Mantisa je normalizirana (samo jedan bit ispred binarne točke).
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 45
Realni brojevi standardne preciznosti – Primjer
Primjer: Prikazati broj 5.75 kao realni broj
5.7510 = 101.112 * 20 = 1.01112 * 22
• Normalizacijom svakog binarnog broja (osim nule) postiže
se oblik:
1.xxxxx
• Zbog toga se vodeća jedinica ne pohranjuje u računalu i
naziva se skrivenim bitom (hidden bit).
• Time se uštedi jedan bit što povećava preciznost.
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 46
Realni brojevi standardne preciznosti – Primjer
• Predznak = 0 (pozitivan broj)
• Binarni eksponent = 2
• Karakteristika K = 2 + 127 = 129 = (1000 0001)2
• Mantisa (cijela) .......................... 1.0111
• Mantisa (bez skrivenog bita) ...... 0111
Rezultat: 0 10000001 01110000000000000000000
ili hex. 0100 0000 1011 1000 0000 0000 0000 0000
4 0 B 8 0 0 0 0
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 47
Raspon i preciznost prikazivanja realnih brojeva
• KarakteristikeRaspon karakteristike: K [0,255]
K = 0 rezervirana je za prikaz nule
K = 255 rezervirana je za prikaz
BE = K - 127
Raspon binarnog eksponenta: BE [-126,127]
– Najmanji pozitivni broj 0 koji se može prikazati je:
1.02 * 2 -126 = 1.175494350822*10 -38
a najveći je:
1.111111111111111111111112 * 2127 2128 = 3.402823669209*1038
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 48
Realni brojevi dvostruke preciznosti
• Deklaracija u programskom jeziku C: double
63 62 52 51 0
P Karakteristika Mantisa
• P je predznak ( P=1 negativan, P=0 pozitivan)
• Karakteristika je binarni eksponent + 1023 (11 bita)
• Mantisa je normalizirana (52 + 1 bit).
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 49
Raspon i preciznost prikazivanja realnih brojeva dvostruke preciznosti
• KarakteristikeRaspon karakteristike: K [0,2047]
K = 0 rezervirana je za prikaz nule
K = 2047 rezervirana je za prikaz
BE = K - 1023
Raspon binarnog eksponenta: BE [-1022,1023]
– Najmanji pozitivni broj 0 koji se može prikazati je:
1.02 * 2 -1022 = 2.225073858507*10 -308
a najveći je:
1.1111.....1111112 * 21023 21024 = 1.797693134862316*10308
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 50
Razlika izmeĎu preciznosti i točnosti
• Preciznost (precision)
- broj znamenki koji opisuje neku veličinu
• Točnost (accuracy)
- točnost je bliskost stvarnoj (nepoznatoj) vrijednosti
• Za dovoljnu točnost potrebna je adekvatna preciznost, ali
preciznost ne implicira automatski točnost jer su iskazane
znamenke mogle nastati na temelju npr. pogrešnog
mjerenja.
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 51
Prikaz slova i ostalih znakova
• Kombinacijom jedinica i nula – kôdom
• Koliko ima znakova?
– 26 velikih slova engleske abecede
– 26 malih slova engleske abecede
– 10 znamenaka
– operatori, interpunkcije, upravljački znakovi
• Dovoljan je 1 byte
• ASCII (ISO-7 standard): 7 bita za informaciju + 1 bit za paritet
27 = 128 različitih znakova
• Paritet
ako je u informaciji neparan broj bita, bit pariteta postavlja se na 1, inače
na 0 (može i obratno: odd/even parity). Omogućuje otkrivanje jednostruke
pogreške pri prijenosu informacija
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 52
ASCII kod
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 53
Problem prikaza internacionalnih znakova
• 8-bitni ASCII kôd 28 = 256 različitih znakova
• Naši su znakovi smješteni u područje 128-255
• Osobna računala koja rade pod Windowsima imaju nekoliko načina prikaza naših slova.
– Starije verzije koristile su CE - varijantu za Centralnu i Istočnu Europu. Sada se to postiže automatski odabirom hrvatske tipkovnice, međutim ipak može doći do zbrke jer su u uporabi dva standarda; Central European (Windows 1250) i Central European (ISO 8852).
• 8-bitni ASCII kôd nije dovoljan za prikaz znakova svih jezika u svijetu, a pogotovo za kineska i japanska slova
• UNICODE
1 znak 16 bita 216 = 65536 različitih znakova
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 54
UNICODE
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 55
Memorija računala (spremnik)
• Skup registara jednake duljine
• Današnja računala: 8-bitni registri – bajtovi (byte)
• Kratica: B
• Veličina spremnika izražava se kao višekratnik od 210 ili 220
210 B = 1024 B = 1 kB
220 B = 1024·1024 B = 1.048.576 B = 1 MB
• Do svakog se bajta može pristupiti direktno, navođenjem rednog broja – adrese.
0
1
2
3
4
...
n-2
n-1
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 56
Memorija računala (spremnik)
• Kojim redom pohraniti bajtove 32 bitnog registra u spremnik?
• Dvije mogućnosti:
– oktet najmanjeg značaja (LSB) pohranjuje se na najnižu adresu cijelog podatka – Little Endian
– oktet najvećeg značaja (MSB) pohranjuje se na najnižu adresu cijelog podatka – Big Endian
• PC: Little Endian
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 57
Potencije broja 2
20 = 1
21 = 2
22 = 4
23 = 8
24 = 16
25 = 32
26 = 64
27 = 128
28 = 256
29 = 512
210 = 1024 = 1K
211 = 2048 = 2K
212 = 4096 = 4K
213 = 8192 = 8K
214 = 16384 = 16K
215 = 32768 = 32K
216 = 65536 = 64K...
220 = 1048576 = 1024K = 1M...
• Neke potencije broja 2 ...
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 58
Pitanja i zadaci za ponavljanje
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 59
Pitanja i zadaci za ponavljanje
1) Objasnite osnovnu razliku između računala koji imaju:
• 32-bitnu i 64-bitnu podatkovnu sabirnicu
• 32-bitnu i 36-bitnu adresnu sabirnicu
2) Navedite stanje na vanjskim sabirnicama: adresnoj, podatkovnoj i upravljačkoj sabirnici (sve sabirnice su 32-bitne) pri ciklusu izvođenja:
• čitanja podataka iz memorije (sa mem.lokacije 10000000h, podatak je broj 7)
• zapisivanja podataka u memoriju(na mem.lokaciju 10000000h, podatak je broj 7)
3) Objasnite osnovne razlike između strojnog jezika, simboličkog jezika (asembler) i programskih jezika više razine (npr. C, C#, Java, ...)
Ak.god. 2010/2011. ARHITEKTURA RAČUNALA – vježbe 60
Pitanja i zadaci za ponavljanje
4) Broj 27.75 prikazan decimalno prikažite u binarnom, oktalnom i heksadecimalnom brojevnom sustavu.
5) Broj 7A prikazan heksadecimalno prikažite u binarnom, oktalnom i decimalnom brojevnom sustavu.
6) Na koji se način decimalni broj -11.5 pohranjuje u memoriji računala kao realan broj standardne točnosti. Organizacija riječi u memoriji je Little Endian, a veličina memorijske riječi (memorijske lokacije) je 8 bita (1B).
31 30 23 22 0
Organizacija i arhitektura računala
Poglavlje 1- UVOD -
Arhitektura i organizacija 1
Arhitektura predstavlja atribute računala vidljive programeruInstrukcijski skup, broj bitova korišten za predstavljanje podatka, I/O mehanizmi, adresne tehnike.npr., postoje li instrukcije za množenje, djeljenje,...?
Organizacija je predstavljena načinom implementacije značajki rač. sustava
Upravljački signali, sučelja, memorijska tehnologija. npr., postoji li HW jedinica za množenje ili je ona implementirana tehnikom ponavljanja operacije zbrajanja?
Arhitektura i organizacija 2
Cjelokupnu Intel x86 obitelj karakterizira/dijeli istovjetnu temeljnu arhitekturuIBM System/370 obitelj također karakterizira ista temeljna arhitekturaOvo daje kompatibilnost kôda
U najmanju ruku prema generacijama unazad
Organizacija se razlikuje među različitim verzijama računalnih sustava
Struktura i funkcije
Struktura predstavlja način na koji su komponente sustava međusobno povezane i kako se međusobno odnoseFunkciju predstavlja operacija individualne komponente kao dijela cjelokupne strukture
Funkcije računala
Funkcije računala su:Procesiranje podatakaPohrana podatakaUpravljanje/management podatakaUpravljanje
Funkcionalni dijagram računala
Funkcionalni pogled na računalo
Upravlj. prebacivanjem podataka
upravljačkimehanizam
Pohranapodataka
Procesiranjepodataka
Operacije (1)
Upravljane prebacivanjem podatakanpr., od tipkovnice do zaslona monitora
DataMovementApparatus
ControlMechanism
DataStorageFacility
DataProcessingFacility
Operacije (2)
Pohrana podatakanpr. download sa interneta na disk
DataMovementApparatus
ControlMechanism
DataStorageFacility
DataProcessingFacility
Operacije (3)
Procesiranje podatakanpr. upravljanje bazom podataka
DataMovementApparatus
ControlMechanism
DataStorageFacility
DataProcessingFacility
Operacije (4)
Procesiranje podataka, iz pohrane na I/Onpr. ispis liste studenata iz baze podataka
DataMovementApparatus
ControlMechanism
DataStorageFacility
DataProcessingFacility
Struktura - Top Level
Računalo
glavnamemorija
I/Ojedinice
Sistemske sabirnice
Periferija
Kominikacijskasučelja
CPU
Računalo
Struktura - CPU
Computer ALUjedinica
Kontrolnajedinica
Interne CPUinterkonekcija
Registri
CPU
I/O
Memory
SystemBus
CPU
Struktura – Kontrolna jedinica
CPU
Memorijakontrolnejedinice
Kontrolna jedinica,registri i dekoderi
Logikasekvenciranja
ControlUnit
ALU
Registers
InternalBus
Kontrolna jedinica
Organizacija i arhitektura Organizacija i arhitektura računala
Poglavlje 10g jInstrukcijski skup:
Adresni modovi i formatiAdresni modovi i formati
Adresni modovi
Izravni po značaju - ImmediateI i Di tIzravni - DirectNeizravni - IndirectRegistarski - RegisterRegistarski neizravni - Register IndirectRegistarski neizravni Register IndirectAdr. sa odmakom - Displacement (Indexed) St kStack
Adresiranje izravno po značenju
Operand je dio instrukcijeO d d lj ili dOperand = adresno polje ili adresaNpr. ADD 5
Dodaj 5 sadržaju akumulatora5 je u ovom slučaju operand
Nema referenciranja na memoriju u pogledu zahvata/fetch podatkazahvata/fetch podatkaOvo je doista brzoAli i ograničene uporabne vrijednostiAli i ograničene uporabne vrijednosti
Dijagram izravnog adresiranja po značenju
OperandOpcode
Instrukcija
OperandOpcode
Izravno adresiranjeAdresno polje sadrži adresu operanda u memoriji gdje se nalaziAdresno polje sadrži adresu operanda u memoriji gdje se nalaziEfektivna adresa (EA) = adresno polje (A)npr. ADD Ap
Dodaj sadržaj mem. ćelije/polja A vrijednosti u akumulatoruPogledaj/potraži memorijsku lokaciju na dresi A za operand
Samo jedno referenciranje/obraćanje memoriji za pristup tome podatkuNema dodatnih kalkulacija za izračun efektivne adreseNema dodatnih kalkulacija za izračun efektivne adreseali je i adresni prostor na ovaj način limitiran
Dijagram izravnog adresiranja
Adresa AOpcode
Instrukcija
Adresa AOpcodeMemorija
Operand
Neizravno adresiranje (1)
Na memorijsku ćeliju/lokaciju ukazuje adresni pokazivač unutar adresnog polja operandapokazivač unutar adresnog polja operanda instrukcije EA (A)EA = (A)
Pogledaj vrijednost mem. pokazivača A, pronađi d d d i (A) i tadresu operanda na mem. adresi na (A) i tamo
potraži vrijednost traženog operandanpr ADD (A)npr. ADD (A)
Akumulatoru dodaj sadržaj lokacije/ćelije memorije na koju je ukazao adresni pointer na lokaciji Ana koju je ukazao adresni pointer na lokaciji A
Neizravno adresiranje (2)
Vrlo veliko adresno područje2n dj j d lji j d ij či2n gdje je n = duljina jedne riječiMože biti u ugniježđeno adresiranje, multilevel ili kaskadirano
npr. EA = (((A)))⌧Pokušajte sami nacrtati dijagram ovog načina adresiranja
operanada
O htij iš t ki i t ijiOvo zahtijeva višestruki pristup memoriji za pronalazak operandate nešto usporava cijelu stvar u cijelosti...
Dijagram neizravnog adresiranja
dd
Instrukcija
Adresa AOpcodeMemorija
P k i čPokazivač naoperand
OperandOpe a d
Registarsko adresiranje (1)
Operand se “drži”/čuva u registru imenovanim od strane adresnog polja instrukcijeod strane adresnog polja instrukcijeEA = ROgraničen broj registara na raspolaganju!!!Potrebno je vrlo malo adresno poljej p j
Kraće instrukcije – po duljinii brži zahvat instrukcije iz memorije, općenito.j j , p
Registarsko adresiranje (2)N t ži/t b i t ijiNe traži/treba pristup memorijiVrlo brzo izvršavanje takve instrukcijeVrlo ograničeno adresno područjeKorištenje više registara povećava performanseKorištenje više registara povećava performanse
Ovo zahtijeva veliku koncentraciju dobru sposobnost korištenja i programiranja u asembleruj p g ju C-u...⌧register int a;
po svojoj prisrodi slično kao i izravno adresiranje
Dijagram registarskog adresiranja
Register Adresa ROpcode
Instrukcija
Register Adresa ROpcodeRegistri
Operand
Registarsko indirektno adresiranje
slično kao i indirektno adresiranjeEA (R)EA = (R)Operand se nalazi u mem. ćeliji/lokaciji ukazanoj od strane sadržaja u registru R – Registar R sadrži adresu lokacije gdje se nalazi operand.Veliko adresno područje (2n)Nešto manje memorijskih pristupa nego li je toNešto manje memorijskih pristupa nego li je to kod neizravnog adresiranja...
Dijagram registarskog neizravnog adresiranja
Register Adresa ROpcode
Instrukcija
Register Adresa ROpcodeMemorija
Registri
OperandOpkazivač na adr.operandap
Adresiranje sa odmakom... Displacement Addressing
EA = A + (R)Ad lj d ži d ij ij d tiAdresno polje sadrži dvije vrijednosti
A = bazna/temeljna adresaR = registar koji sadrži veličinu adresnog “odmaka”a može i obrnuto
Dijagram adresiranja sa odmakom
Register ROpcode
InstrukcijaAdresa ARegister ROpcode
MemorijaAdresa A
Registri
OperandPokazivač na adr.operanda +
Relativno adresiranje
To je verzija adresiranja sa odmakomR P t PCR = Program counter, PCEA = A + (PC)nor. zahvati operand iz ćelije/lokacije A relativno u odnosu na lokaciju pokazanu od strane PC-aj pkoristi se za referenciranje lokacije unutar mem. segmenta ali i kod cache meorijesegmenta ali i kod cache meorije
Registarsko adresiranje bazne/temeljne adrese
A sadrži iznos odmaka adreseR d ži k i č d bR sadrži pokazivač mem. adrese za baznu adresuR može biti eksplicitan ili implicitan u ukazu na adresu bazne adresenpr. memorijski segmentni registri u 80x86
Indeksirano adresiranje
A = bazna/temeljna adresaR ij d d d kR = vrijednos adresnog odmakaEA = A + RJako dobar pristup za adresiranje vektora i matrica
EA = A + RR++
Kombinacije adresiranja...
PostindeksiranjeEA (A) (R)EA = (A) + (R)
PreindeksiranjeEA = (A+(R))EA (A+(R))
Stack adresiranje
Operand je/nalazi se/sprema se (implicitno) na vrhu stoga/stackavrhu stoga/stackanpr.
ADD Uzmi/pokupi dva operanda na vrhu stacka/stoga i zbroji ih
Instrukcijski formati
definira poredak/ustroj bitova u instrukcijik ji d fi i ij ki k dkoji definira operacijski kodi sadržava (implicitno ili ekspplicitno) operand ili operandeUobičajena je pojava korištenja više oblika j j p j jinstrukcijskih formata u jednom instrukcijskom skupu/setu.p /
Duljina instrukcije
Definirana je od strane i definira:Veličinu memorije memorijskog prostoraVeličinu memorije – memorijskog prostoraMemorijsku organizacijuB t kt k ik ij k i f t ktBus strukturu – komunikacijsku infrastrukturuKompleksnost CPU-aB i CPUBrzinu CPU-a
To je u suštini kompromis između korištenja ž žskupa “snažnih” instrukcija i raspoloživog
prostora, kako memorijskog tako i registarskog
Organizacija i arhitektura Organizacija i arhitektura računala
Struktura CPU-a i njegove funkcijej
CPU struktura
CPU mora obavljati slijedeće zadatke:Zahvat instrukcija Fetch instructionsZahvat instrukcija - Fetch instructionsInterpretacija/dekodiranje instrukcija - Interpret instructionsinstructionsZahvat podataka - Fetch dataProcesiranje podatakaProcesiranje podatakaIspis/pisanje podataka
Registri
CPU mora imati na raspolaganju određeno radno područje na raspolaganju privremenoradno područje na raspolaganju – privremeno pohranilište podatakak ji i t ikoji se zovu... registriBroj i funkcija istih varira od procesora do procesora i ovisna je o njegovom dizajnuTo je ujedno i glavna odluka kod dizajna j j g jprocesoraOni su najviša točka u memorijskomOni su najviša točka u memorijskom hijerarhijskom ustroju
Registri vidljivi korisniku
Registri za općenitu uporabu - General PurposeP d tk i i t iPodatkovni registriAddresni registriRegistri za instrukcije uvjetovanja, uvjetna grananja i skokove - Condition Codes Registersg j g
Registri opće namjene (1)
Mogu biti za doista istinsku općenitu najmjenu –za sve i svaštaza sve i svašta...Bogu biti za ograničenu uporabu / specijalizirani
t i t d i t– restricted registersMogu se koristiti za podatke ili adresiranje istihRegistri za podatke
Akumulator
AdresiranjeSegmentni registriSegmentni registri
Registri opće namjene(2)
Ako su za istinsku općenitu uporabu...Povećavaju fleksibilnost programiranja i olakšavajuPovećavaju fleksibilnost programiranja i olakšavaju ga... donekleali i povećavaju veličinu/duljine instrukcije i njenuali i povećavaju veličinu/duljine instrukcije i njenu kompleksnost
A ako su specijalizirani dobivamoA ako su specijalizirani... dobivamoManje i brže instrukcijeali i manju fleksibilnost programiranjaali i manju fleksibilnost programiranja.
Koliko GP registara koristiti?
Između 8 - 32Ak ih j j i iš ij kihAko ih je manje = imamo više memorijskih referenciranja/zahvataViše njih ne smanjuje broj memorijskih zahvata ali čini procesor više fleksibilnim i kompleksnijim
Koliko veliki trebaju biti?
Dovoljno veliki da mogu sadržavati/pohraniti potpunu adresupotpunu adresui dovoljno veliki da mogu sadržavati/pohraniti ij l i t k ij k ij čcijelu instrukcijsku riječ.Često je moguće i kombinirati sva podatkovna registra.. na način, npr.:
C programiranjedouble int a;long int a;
Registri za “uvjetni” kod...
Skup individualnih bitovanpr rezultat zadnje operacije je bila nula (“0”)npr. rezultat zadnje operacije je bila nula (“0”)
Mogu se čitati (implicitno) od strane / lik ijprograma/aplikacije
npr. skoči ako je nula (“0”)
ali obično se ne mogu postaviti u stanje “0” ili “1” od strane programa/aplikacije
Upravljački i statusni registri
Programski brojač - Program CounterR i t d k di j i t k ij I t tiRegistar za dekodiranje instrukcije - Instruction Decoding RegisterMemorijski adresni registar - Memory Address RegisterMemorijski podatkovni registar - Memory Buffer Registerg
Programska statusna riječ Program Status Word
Predstavljena je nizom bitova unutar registra širinePredstavljena je nizom bitova unutar registra širine jedne riječi... jednostavnoUključuje i kontrolu koda za postavljanje “uvjeta” -Uključuje i kontrolu koda za postavljanje uvjeta -Includes Condition CodesPrikazuje status/oznaku posljednjeg dobivenog rezultataPrikazuje status/oznaku posljednjeg dobivenog rezultataOznačava pojavu nule “0” kao rezultataSadrži i “Carry” bitSadrži i Carry bitOznačava pojavu “jednakosti” neke operacijeDojavljuje/ukazuje na prog Preliv - OverflowDojavljuje/ukazuje na prog. Preliv - OverflowUključuje i/ili isključuje “interrupte”Služi i za nadzor općenitoSluži i za nadzor, općenito.
Supervizorski/nadzorni mod
Intel ring zeroK l dKernel modOmogućava izvršavanje privilegiranih instrukcijaOvaj mod je korišten od strane O/S-aali nije na raspolaganju korisničkimali nije na raspolaganju korisničkim programima!!!
Ostali registri
CPU može imati registre koji ukazuju na:Procesne kontrolne blokove ili jednostavnijeProcesne kontrolne blokove – ili, jednostavnije, “sistemske procese”Interrupt vektoreInterrupt vektore
inače: dizajn CPU a i operativi sustav uinače: dizajn CPU-a i operativi sustav u čvrstoj su vezi te su ovisni jedno o drugomedrugome.
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 operandepristup memoriji da bi zahvatila operande,indirektno adresiranje zahtijeva višestruke
h t / ij k i t dizahvate/memorijske pristupe operandima,te se to na taj način može smatrati i posebnim dodatnim instrukcijskim podciklusom –instrukcijski subciklus zahvata višestrukih operanada iz memorije.
Instrukcijski ciklus sa indirektnim zahvatom... dijagram
Dijagram stanja instrukcijskog ciklusa sa indirektnim zahvatom
Protok/protočnost podatakap p(u ciklusu instrukcijskog zahvata) (1)
To ovisi o dizajnu procesora/CPU-aGeneralno gledajući protočni kanal je definiran koracima:g j p jFetch / Zahvati
PC sadrži/pokazuje adresu slijedeće instrukcijeAdresa se translatira u MARAdresa iz MAR-a preslika se na adresnu sabirnicuUpravljačka jedinica šalje memoriji zahtijev za čitanje lokacijeUpravljačka jedinica šalje memoriji zahtijev za čitanje lokacije definirane adresom na adr. sabirniciRezultat čitanja postavlja se na podatkovni dio sabirnicesa podatkovnog dijela sabirnice podatak se preslikava u MBRa iz MBR-a podatak se dalje proslijeđuje IR-uU đ d ž j PC i k ti 1U međuvremenu sadržaj PC-a inkrementira se za 1
Protok/protočnost podatakap p(u ciklusu instrukcijskog zahvata) (2)
sadržaj IR-a se analiziraukoliko IR sadržaj ukazuje na instrukciju koja koristiukoliko IR sadržaj ukazuje na instrukciju koja koristi indirektno adresiranje tada se u instrukcijski ciklus fetch/execute uključuje i podcikljus indirektnog zahvata
d i ij čioperanada iz memorije, na način:N najznačajnijih bitova od MBR-a se proslijede MAR-uUpravljačka jedinica zahtijeva “čitanje”/pristup memorijiUpravljačka jedinica zahtijeva “čitanje”/pristup memorijiRezultati čitanja (adrese operanada) translatiraju se u MBRMBR
Slijedi dijagram...
Protok/protočnost podataka - Normalanp p(u ciklusu instrukcijskog zahvata)
Protok/protočnost podataka - Indirektanp p(u ciklusu instrukcijskog zahvata)
Protok/protočnost podataka(u ciklusu instrukcijskog izvršenja)
Tijek toka podataka može poprimiti razne oblike u ovom slučajuu ovom slučajuTo ovisi o instrukciji koja se izvršavaMože sadržavati...Čitanje/pisanje memorijeOpsluga I/O jedinicaPrijenos između registaraALU operacije
Protok/protočnost podataka(prilikom pojave interrupta)
Ovo je u principu vrlo jednostavno...i predvidljivo.p jTrenutni sadržaj PC registra se pohranjuje da bi se omogučio oporavak programa nakon obrade interruptaS d ž j PC k i MBRSadržaj PC-a kopira se u MBR“Specijalna” memorijska lokacija (npr. Stack/stog, stack pointer) učitava se u MARSadržaj MBR-a piše se u memorijsku lokaciju ukazanu od strane MAR-aR i t PC čit d i t t kt i jRegistar PC učitava adresu interrupt vektora i njegove rutine/potprogramai tek nakon toga slijedeća instrukcija može biti zahvačena (to je g j j ( jprva instrukcija interrupt potprograma)
Protok/protočnost podatakap p(prilikom pojave interrupta) - dijagram
Instrukcijski predzahvat -Prefetch
Zahvat inače pristupa glavnoj memorijiIzvršenje instrukcije u uobičajenoj formi ne zahtijeva pristup gl. memorijiPitanje... Da li se može zahvatiti slijedeća instrukcija
štijekom faze izvršenja trenutne instrukcije?Odgovor: MOŽE! I to se zove Instrukcijski predzahvat ili
ij d h ć j lij d ć i t k ijunaprijedno zahvaćanje slijedeće instrukcije –jednostavno PREDZAHVAT/PREFETCH!
Poboljšanje performansi?
Da, ali ne baš za dvostruko više:Zahvat je inače kraći nego li je to faza izvršenjaZahvat je inače kraći nego li je to faza izvršenja⌧Da li onda zahvatiti više od jedne instrukcije?!?
Bilo koji programski skok ili grananje znače daBilo koji programski skok ili grananje znače da unaprijed zahvaćene instrukcije iz memorije nisu one koje grananje ili skok traže/zahtijevajuj g j / j j⌧Nepotrebni pristupi memoriji?!?
Može se dodati više nivoa predzahvata gdje se p g jnastoje zahvatiti instrukcije iz raznih segmenata memorije koje bi mogle biti slijedeći kandidati j j g jprilikom programskog skoka ili grananja.
Pipelining - Cjevovod
Zahvat instrukcijeDekodiranje instrukcijej jIzračun operanada (npr. efektivnih adresa)Zahvat operanadaIzvršenje instrukcijePisanje/pohrana rezultata
Pokušajte preklopiti ove operacije, bilo koju sa bilo kojom!Ako se radi o jednoj jedinoj instrukciji koja se trenutno izvršava j j j j j jonda ovo NE IDE!A više instrukcija istovremeno? ☺
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”-oviP d h t i t k ij d fi i ih lt tPredzahvat instrukcija definiranih rezultatom prog. grananja - Prefetch Branch TargetLoop bufferPredviđanje grananja - Branch predictionj g j pOdgođeno prog. grananje u nekoliko slijedećih koraka - Delayed branchingkoraka Delayed branching
Višestruki “streamovi”
Uporaba bar dva cjevovodaP d h t k j b i j dPredzahvat svakog grananja u zasebni cjevovodKorištenje adekvatnih cjevovoda
Predzahvat rezultata grananjaPrefetch Branch Target
Rezultat grananja se unaprijed zahvaća iz mem. zajedno sa slijedećim instrukcijama koje slijedezajedno sa slijedećim instrukcijama koje slijede nakon grananja.R lt t j č d k jRezultat grananja se čuva dok se grananje ne izvršiOvaj način se koristi od IBM 360/91
Cirkularni buferLoop Buffer
To je jedna vrlo brza memorijsStatička, najčešće.Statička, najčešće.
i upravljanja od strane FETCH dijela instrukcijskog cjevovodaPrvo se provjerava buffer prije nego li se ide u zahvat p j p j ginstrukcije u memorijuOvaj način zahvata je jako dobar u slučaju vrlo kratkih prog. k k ili ljiskokova ili petlji
slično kao i cacheKorišten od strane CRAY 1 računalaKorišten od strane CRAY-1 računala.
Prediktivno grananje (1)
Ne-korištenje/nema predviđanja:Pretpostavlja se uvijek da se skok ili grananje neće dogoditi.i ij k i d h ć lij d ć i t k ij ii uvijek se iz mem. dohvaća samo slijedeća instrukcija u nizu.68020 & VAX 11/780VAX sustav neće raditi predzahvat instrukcije poslije progVAX sustav neće raditi predzahvat instrukcije poslije prog. grananja ako će to rezultirati tzv. page fault mem. referenciranjem! (O/S vs. CPU dizajn!)
P d iđ j jPredviđanje grananja:Uvjek se pretpostavlja da će se sa slijedećom instrukcijom dogoditi prog. skok ili grananje!g p g g ji uvijek se dohvaća rezultantna instrukcija navedenog skoka ili grananja
Prediktivno grananje (2)
Predviđanje pomoću Opcode-a:Kod pojedine vrste instrukcija veća je vjerojatnost da će one u konačnici proizvesti prog. skok ili grananje nego li je to kod drugih instrukcija!
č žNa ovaj način se može predvidjeti skok ili grananje sa točnošću od 75-80%.
K išt j kid čKorištenje Predviđaj/Ne-predviđaj prekidačaKorištenje ovog prekidača temelji se na prethodnoj
ij ti k išt j i t i j ti jpovijesti korištenja istog i pojavnosti prog. grananja ili skokaOvaj način korištenja je dobar i koristan kod progOvaj način korištenja je dobar i koristan kod prog. petlji!
Prediktivno grananje (3)
Odgođeno grananjePrincip; “Ne izvršavaj instrukciju prog skoka iliPrincip; “Ne izvršavaj instrukciju prog. skoka ili grananja se dok ne budeš morao”Ovo zahtijeva preslagivanje instrukcija uOvo zahtijeva preslagivanje instrukcija u programskom nizu istih obazirući se upravo na instrukcije skoka i grananja na način da ih se j g jpremjesti što dalje od početka instrukcijskog niza (ukoliko je to moguće, naravno)
Predviđanje grananja - dijagram
Organizacija i arhitektura računala
Poglavlje 12Reduced Instruction Set Computers
RISC
Značajniji napredci u računalnim sustavima (1)
koncept “obitelji” računalaIBM System/360 1964DEC PDP-8odvajaju se arhitektura od načina implementacije
Mikroprogramirana upravljačka jedinica -mikrokod
to je ideja Wilkes-a 1951a napravio IBM S/360 1964
Cache memorijaIBM S/360 model 85 1969
Značajniji napredci u računalnim sustavima (2)
Solid State RAM – poluvodički RAMo ovome je više rečeno pod dijelom koji se bavi memorijom
MikroprocesoriIntel 4004 1971
PipeliningUvođenje postupaka paralelizacije u fetch-execute/zahvat-izvrši intrukcijskom ciklusu
Višeprocesorski sustavi
Slijedeći korak - RISC
Reduced Instruction Set Computer
Glavne značajkeVeliki broj registara za opću namjenu - generalpurpose registersili koristiti unaprjeđenu compiler tehnologiju za optimizaciju uporabe registara opće namjeneLimitirani/ograničeni i jednostavan skup instrukcijaNaglasak je dan na optimizaciju intrukcijskogpipeline-a
Usporedbe procesoraCISC RISC SuperscalarIBM DEC VAX Intel Motorola MIPS IBM Intel370/168 11/780 486 88000 R4000 RS/6000 809601973 1978 1989 1988 1991 1990 1989
No. of instruction208 303 235 51 94 184 62
Instruction size (octets)2-6 2-57 1-11 4 32 4 4 or 8
Addressing modes4 22 11 3 1 2 11
GP Registers16 16 8 32 32 32 23-256
Control memory (k bytes) (microprogramming)420 480 246 0 0 0 0
Zašto onda CISC?
Troškovi izrade programa danas daleko nadilaze troškove razvoje sklopovlja/hardwareaPovećavanje kompleksnosti jezika visokog nivoaSemantička rupa!?!To sve vodi do:
Rasta/povećanja instrukcijskih skupovaSve više i više adresnih modova/načina dresiranjaHardwerska implementacija HLL (high levellanguage) stanja⌧npr. CASE (prekidač/selektor) naredba
Namjera i namjena CISC procesora
Jednostavno pisanje/razvijanje kompileraPoboljšanje efikasnosti izvršavanja programa
Kompleksne operacije u mikrokôdu
Podrša za još kompleksnije HLL
Izvršne/obradbene karakteristike
Obavljanje operacijaKorištenje operanadaSekvenciranje obradeAnalize se rade na programima pisanim u HLL-uAnalize dinamike izvršavanja rade se tijekom izvršavanja ovih programa
Operacije
DodjelePrebacivanje/premještanje podataka
Uvjetna stanja (IF, LOOP)Kontrola sekvencijalnog izvršavanja
Procedura “call-return” vrlo je zahtjevna u pogledu vremena potrebnog da se izvršiPojedine HLL instrukcije vode do pojave nužnosti uporabe puno operacija strojnog kôda
Relativna dinamička frekvencijaRelative Dynamic Frequency
Dinamička Strojna instr. Uporaba mem.
pojavnost (Weighted) (Weighted)Pascal C Pascal C Pascal C
Assign 45 38 13 13 14 15
Loop 5 3 42 32 33 26Call 15 12 31 33 44 45If 29 43 11 21 7 13GoTo - 3 - - - -Other 6 1 3 1 2 1
Operandi
Većinom su to lokalne skalarne varijablePostupci optimizacije trebaju se koncentrirati na pristup lokalnim varijablama
Pascal C AverageInteger constant 16 23 20Scalar variable 58 53 55Array/structure 26 24 25
Procedure Calls
Vrlo zahtjevne u pogledu vremena potrebnog za izvršavanjeOvise o broju proslijeđenih im parametaraOvise i o nivou ugniježenja/nestingVećina programa ne radu “puno” poziva procedura bez njihovog povratkaVećina varijabli je lokalna
Implikacije
Najbolja podrška dana je kroz optimizaciju najviše korištenih i vremenski najzahtjevnijih značakji ovakvog sustavaVelika količina/broj registara
Adresno referenciranje na operande
Pažljivo osmišljavanje cjevovoda/pipeline-aPredviđanje grananja, itd.
Pojednostavljeni (reducirani) instrukcijski set
Kako koristiti puno registara?
Programsko rješenje:Optimizacijom kompilera u svrhu alociranja većeg broja registaraAlociranje se temelji na dodjeli registara varijablama koje su najviše u uporabiOvo zahtijeva sofisticiranu analizu programa da bi se pravilno optimiziralo za uporabu velikog broja registara u takvom procesoru
Sklopovsko/hardware rješenje:paaa.... imamo puno registara, zar ne?stoga... možemo više varijabli koristiti i jednostavno i spremati u registre a ne u gl. memoriju
Registri za lokalne varijable
Pohrana lokalnih skalarnih varijabli u registreSmanjena potreba za pristupom gl. memoriji -> brzinaSvaki poziv procedure/funkcije mijenja pojam “lokalnosti”Moraju se proslijediti parametriali se i moraju vratiti rezultati u glavnu petljuMora se uspostaviti i stanje varijabli prozvanih /pozvanih potprograma u prethodno stanje nakon povratka
Registarski prozori/skupovi (1)
U uporabi je samo nekoliko parametaraLimitirana dubina poziva proceduraUporaba više skupina malih skupova registaraPoziv procedure prebacuje uporabu na drugi skup registaraA povratak iz poziva procedure vraća na uporabu prethodnog skupa registara
Registarski prozori/skupovi (2)
Postoje tri područja/tipa unutar skup registaraRegistri za parametreRegistri za lokalne varijableRegistri za privremene parametre/varijableRegistri za privremenu uporabu jednog skupa registara preklapaju se sa istim takvim registrima ali iz nekog drugog skupa registaraOvo omogućuje prosljeđivanje parametara bez stvarnog prebacivanja podataka
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 registaraAko su svi skupovi iskorišteni ili u uporabi, generira se interrupt i “najstariji” skup registara se sprema u memorijuPokazivač spremljenog skupa registara pokazuje gdje se treba ponovo obnoviti/restoriratislijedeći snimljeni skup registara
Globalne varijable
Alocira ih kompiler u glavnoj memorijiVrlo neefikasno za učestalo pristupanje takvim varijablama
Postoje registri rezervirani samo za globalne varijable
Registeri vs. Cache
Large Register File Cache
Sve su lokalni skalari Samo zadnje korišteni lokalni skalariIndividualne varijable Blok memorijeCompiler dodjeljuje globalne varijable Zadnje korištene globalne varijableSave/restore temeljene na proceduri Save/restore temeljeni na ugniježđenju
caching algorithm Adresiranje registara Adresiranje memorije
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 kompileruHLL programi nemaju eksplicitne načine da se adresiraju registri – to rade kompileri ili asemblerske rutineDodjeli se simbolički ili virtualni registar svakoj potencijalnoj varijabliMapiraj simboličkim registrima prave/postojeće registreSimbolički registri koji se inače ne preklapaju mogu čak dijeliti prave registreAko ponestane pravih registara pojedine varijable mogu koristiti i memoriju umjesto njih
Zašto onda CISC (1)?
Pojednostavljenost kompilera?o ovome se može raspravljati...Kompleksne instrukcije teže je i pravovaljano iskoristiti u različite svrheOptimizacija je u ovom slučaju prilično teška
Da li su programi manji?Program zauzima manje memorije, ali…Memorija je (sada) relativno jeftinaali možda ne zauzima manje bita nego samo izgleda kraće ali u svojoj simboličkoj formi⌧Složenije instrukcije zahtijevaju i operacijske kodove veće duljine –
više memorije⌧Referenciranje registara zahtijeva doista manje memorije
Zašto onda CISC (2)?
Brži programi?Naginje se uporabi jednostavnijih instrukcijaJako složena upravljačka jedinica/dekoderVeći mikrokod više mikrokod memorijeali jednostavne instrukcije ne traže više vremena u svom izvršavanju nego složene
Kako stvari stoje... CISC se ne smatra bašadekvatnim rješenjem za izgradnju računala
RISC karakteristike
Jedna instrukcija po ciklusu izvršavanjaRegistar-registar operacijemalo, jednostavnih načina adresiranjamalo, jednostavnih instrukcijskih formataOžićeni dizajn – nema mikrokodaFInstrukcijski format fiksne veličineali kompiler tu ima više posla
RISC vs. CISC
Nema tu jasne granice što, kako i kadaMnogi dizajni procesora posuđuju rješenja za izgradnju pojedinih podsustava kako iz CICS-a tako i iz RISC-anpr. PowerPC i Pentium II,... to su ustvari mješavine i CISC-a i RISC-a
RISC Cjevovod/Pipelining
Većina instrukcija je naravi register-registerDvije faze instrukcijskog ciklusa
I: Instruction fetch – zahvat instrukcijeE: Execute - izvršenje
Te za operacije učitavanj/load i pohrana/storeI: Instruction fetchE: Execute⌧Izračun memorijske adrese
D: Memory⌧Register→memorija ili memorija→register operacije
Efekat cjevovoda/Pipelininga
Optimizacija cjevovoda
Zakašnjelo grananjeNema efekta sve dok se slijedeća instrukcija u cjevovodu ne izvrši Ova slijedeća instrukcija uvodi i uzrokuje vremensko čekanje
Normalno i zakašnjelo grananje
Address Normal Delayed Optimized100 LOAD X,A LOAD X,A LOAD X,A101 ADD 1,A ADD 1,A JUMP 105102 JUMP 105 JUMP 105 ADD 1,A103 ADD A,B NOOP ADD A,B104 SUB C,B ADD A,B SUB C,B105 STORE A,Z SUB C,B STORE A,Z106 STORE A,Z
Uporaba zakašnjelog grananja
Kontroverze uporabe RISC-a
Kvantitativneusporedbu po veličini programa i brzini izvršavanja
Kvalitativneproblematična uporaba HLL-a – optimizacija vrlo naporna
ProblemiNema dva RISC i CISC procesora koja su izravno usporedivaNema skupa programa za testiranje obje vrste procesoraTeško je razlučiti efekte hardwarea od efekata kompileraVećina komercijalnih procesora je mješavina RISC-a i CISC-a tako da je teško pronaći arhitekturni čitsti ili CISC pa tako i RISC
Organizacija i arhitektura računala
Poglavlje 2- Evolucija i performanse računala -
OSNOVNI CILJEVI PRI ZASNIVANJU SUSTAVA:
ispunjavanje upravljačke funkcijepouzdanost pri radujednostavno i lako održavanjeniska cijena
RAZVITAK DIGITALNIH SUSTAVA
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 ComputerEckert i MauchlyUniversity of PennsylvaniaTrajektorijske tablice balističkog oružjaStarted 1943Finished 1946
prekasno završeno, poslije rata
Korišteno do 1955
ENIAC - značajke
Decimalno računalo (ne binarno)20 akumulatorskih registara od 10 znamenkiRučno programirano pomoću sklopkiprogram osmišljen ožičavanjemprogramski skokovi nisu bili mogući18,000 vakuumskih cijevi30 tona15,000 square feet / 90 m3
potrošnja el. energije - 140 kW5,000 zbrajanja u sekundimnoženje dva deset znamenkasta broja 2,8 ms
ENIAC - značajke
18,000 vakuumskih cijevi
DRUGO POKOLJENJE 1957-1964
diskretne poluvodičke komponente
1948 godine, tranzistor Bell laboratorijeekipa od 12 ljudiglavni za patent: W. Shokley, J. Bardeen, W. Brattaintočkasti p-n spojgermanijev poluvodič s dvije zlatne folije
DRUGO POKOLJENJE 1957-1964
Značajke računala drugog pokoljenja:
uporaba tranzistoramagnetska jezgra kao unutrašnja memorijakapacitet glavne memorije 4k-32k bajtabrži ulaz i izlaz, magnetske trakeprogramski jezici visoke razine: fortran, cobolveliko smanjenje dimenzija i potrošnjepovećana brzina i pouzdanostperioda reda mikrosekundebrzina obrade naredbi oko 1 mipsprimjene: računovodstvo
DRUGO POKOLJENJE 1957-1964
Prvi tranzistoritoč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 sklopoviPostanak integriranih sklopova s planarnim tranzistorima.
Značajke računala trećeg pokoljenja:
primjena integriranih logičkih sklopovamagnetska ili poluvodička glavna mem. 32k-3M bajtaulaz-izlaz usmjeren na diskmanje dimenzije, bolja svojstva i pouzdanostprogramski jezici visoke razinedaljinska obrada i komunikacijeoperacijski sustavi zamjenjuju funkciju operateraperiode reda nanosekundebrzina obrade naredbi 10 MIPSprimjene: marketing, rezervacije, naplate
Inte
grira
ni b
ista
bil,
jeda
n od
prv
ih IC
-a tv
rtke
Fairc
hild
4. POKOLJENJE 1972-1989
Značajke:Pojava mikroprocesora
primjena VLSI tehnologijepovećana memorija i brzina (iznad 3 MB)kompatibilnost sklopovlja raznih proizvođačanamjenski programi za korisničku primjenubrzine obrade od 100 mips do 1000 mipsprimjene: modeliranje i simuliranje, cad, kućna računala, proizvodnja
4. POKOLJENJE 1972-1989
Integracija i pojava mikroprocesora (i4004)
von Neumann/Turing
Koncept pohrane programa – za razliku od ožičavanja programaGlavna memorija pohranjuje programe i podatkeALU obrađuje isključivo binarne podatkeUpravljačka jedinica interpretira i izvršava instrukcije iz glavne memorijeUlazno/izlazne jedinice su upravljanje od strane upravljačke jedinicePrinceton Institute for Advanced Studies
IASStruktura završena i predstavljena 1952
Struktura von Nuemann-ovogračunskog stroja
Glavnamemorija
Aritmetičko logičkajedinica
programska upravljačkajedinica
I/Ojedinice
IAS - detalji
1000 x 40 bit wordsBinarni brojevi2 x 20 bit instrukcije
Set registara (storage in CPU)Memory Buffer RegisterMemory Address RegisterInstruction RegisterInstruction Buffer RegisterProgram CounterAccumulatorMultiplier Quotient
Structure of IAS - detalji
Glavnamemorija
Arithmetic and Logic Unit - ALU
Programska kontrolna jedinica
I/Ooprema
MBR
Arithmetic & Logic Circuits
MQAccumulator
MARControlCircuits
IBR
IR
PC
Adrese
Instrukcijei podaci
Central Processing Unit - CPU
Komercijalna računala
1947 - Eckert-Mauchly Computer CorporationUNIVAC I (Universal Automatic Computer)US Bureau of Census 1950 calculationsPostaje dijelom Sperry-Rand korporacijeKasne 1950-e - UNIVAC II
BržiViše memorije
IBM
Bušene kartice - Punched-card processing equipment1953 - računalo 701
IBM-ovo prvo računalo sa pohranom programaZnanstveni izračuni – Scientific calculations
1955 - računalo 702Poslovne aplikacije
Vodi di razvoja serije računala 700/700
Tranzistori
Zamjena za vakuumske cijeviManjiJeftinijiManja toplinska disipacijaIntegrirani uređajiIzrađeni od silicija (kvarcnog pijeska)Izmljen 1947 u Bell-ovom laboratorijuWilliam Shockley
Računala temeljena na tranzistorima
Druga generacija računalaNCR & RCA izrađuju mala računala temeljena na poluvodičima/tranzistorimaIBM 7000DEC - 1957
Proizvedeno PDP-1 računalo
Microelektronika
Doslovno značenje - “umanjena/mala elektronika”Računalo je izgrađeno od logičkih sklopova, memorijskih ćelija i njihovih veza/ožičenjaOmogućena izrada u poluvodičkoj tehnologiji
npr. silicijska ploča/waffer
Generacije računala
Vakuumske cijevi - 1946-1957Tranzistori - 1958-1964Small scale integration - 1965 i nadalje
do 100 sklopova na čipuMedium scale integration - do 1971
100-3,000 sklopova na čipuLarge scale integration - 1971-1977
3,000 - 100,000 sklopova na čipuVery large scale integration - 1978 do danas
100,000 - 100,000,000 sklopova na čipuUltra large scale integration
Preko 100,000,000 sklopova na čipu
Mooreov zakonPovečanje gustoće sklopova na jednom čipuGordon Moore - suosnivač Intel-a“Broj tranzistora na čipu će se udvostručavati svake godine”Od 1970’s ova tvrdnja se malo ublažila/smanjila
Broj tranzistora se udvostručuje svakih 18 mjeseciTroškovi izrade čipa gotovo da ostaju istiVeća gustoća pakiranja znači kraće električne veze – veće performanse čipaManje dimenzije daju veću fleksibilnost primjeneSmanjena potrošnja i zahtijevi za hlađenjemManje interkonekcija među funkcionalnim cjelinama povećevajupouzdanost
Rast broja tranzistora u CPU
IBM 360 serija računala1964Zamjena za (i nekompatibilna sa) 7000 serijomPlanirano kao prvo računalo iz “obitelji” računala
Slični ili identični set instrukcijaSlični ili identični O/SPovećana brzinaPovećan broj I/O portova (npr. više terminala)Povećana količina memorijeali i povećani troškovi izrade
Multipleklsirana preklopnička struktura (multiplexed switchstructure)
DEC PDP-8
1964Prvo miniračunaloNije zahtijevalo posebne prostorije sa rashladnim sustavimaDovoljno malo da stane na sto$16,000
$100k+ za IBM 360
Za potrebe primjenjenih aplikacija i OEM ugradnju BUS struktura
DEC - PDP-8 Bus Struktura
OMNIBUS sabirnica
Konzolniupravljač CPU
Glavnamemorija
I/O modul/jedinica
I/O modul/jedinica
Poluvodička memorija
1970FairchildVeličina jedne jezgre magnetske memorije
1 bit-a magnetske memorije
kapaciteta 256 bitanedestruktivno isčitavanjevišestrukko brža nego magn.jezgrena memorijakapacitet joj se udvostručava svake 1-2 godine
Intel
1971 - 4004 Prvi mikroprocesorSve komponente jednog CPU-a su na jednom čipu4 bita
1972 ga nasljeđuje i80088 bitaoba su razvijena za aplikacije posebne namjene
1974 - 8080Intelov prvi procesor za opću namjenu
Ubrzavanje... kako ubrzati rad računala
PipeliningOn board cache – priručna memorijaOn board L1 & L2 cacheBranch prediction – predikcija prog. grananjaData flow analysis – analiza prog. toka podatakaSpeculative execution – predviđanje rezultata obrade
Neusklađenost performansi...
Povećanje brzine procesoraPovećanje kapaciteta memorijePovećanje brzine memorije zaostaje zapoveć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čeljaCache memorija
Smanjenje frekvencije memorijskog pristupaKompleksniji/složeniji cache i cache na čipu
Povećanje propusne širine sučeljaHigh speed busvi/sabirniceHijerarhizacija sučelja
Organizacija i arhitektura računala
Poglavlje 3Sistemske sabirnice
Koncept “programa”
Ožičeni programski sustavi nisu fleksibilniHardware za općenitu namjenu može obavljati raznorazne poslove, uz ispravno programiranje upravljačkih signala upravljačke jediniceUmjesto ponovnog reožičenja dodan je novi skup kontrolnih signala / novi set (sekvenci) instrukcija
Što je to program?
To je niz/sekvenca koraka obrade nad podacima iz glavne memorijeZa svaki korak obavlja se ili aritmetička ili logička operacijaZa svaku operaciju potreban je i djeluje različiti skup upravljačkih signala
Funkcija upravljačke jedinice
Svakoj operaciji je dodijeljen jedinstveni kôdnpr. ADD, MOVE, PUSH, JMP
Hardware i dekoderska jedinica prima i dekodira kôd te upravlja upravljačkim signalima upravljačke jedinicei... imamo RAČUNALO!
Komponente / sastavni dijelovi
Upravljačka i ALU jedinica čine CPUPodaci i instrukcije trebaju se unijeti u sustav a rezultati obrade se prosljeđuju van tog sustava
Ulazi/izlazi
Potrebna je “privremena” memorija za pohranu programskog koda i rezultata obrade
Glavna memorija
Računalne komponente:“Top Level” prikaz
Instrukcijski ciklus...
Dvo-koračni ciklus:Zahvati/FetchIzvrši/Execute
Ciklus zahvata Ciklus izvršenja
Ciklus zahvata - Fetch Cycle
Programski brojač (PC) sadrži adresu zahvata slijedeće instrukcijeProcesor zahvaća instrukcije iz dijela memorije adresiranog od strane PC-aIncrement PC
Ukoliko to drugačije (programski) nije rečeneo
Instrukcija se učitava u “Instrukcijski registar” / IRProcesor (dekoderska jedinica) interpretira značenje instrukcije i izvršava zadanu akciju
Ciklus izvršenja - Execute Cycle
Procesor↔memorijaprijenos podataka između procesora i memorije
Procesor↔I/Oprijenos podataka između procesora i I/O jedinice
Procesiranje/obrada podatakaPrimjena aritmetičkih i logičkih operacija nad podacima
Upravljanje - ControlIzmjena sekvencijskog niza zadanih operacija/prog. instrukcijanpr. skokovi (jump)
Kombinacija gore navedenih operacija
Primjer izvršenja programa
Instrukcijski ciklus -Dijagram stanja
Programski prekidi - InterruptsTo je mehanizam pomoću kojega ostale jedinice računala (npr. I/O jedinica) može prekinuti normalni slijed sekvencijalnog izvršavanja programa
npr. programski prelje/overflow, dijeljenje sa nulomVremenski sklopovi - Timer
Generirani od strane internog procesorskog timeraKorišteni u pre-emptive multi-tasking sustavima
I/Ood strane I/O upravljača/kontrolera
Hardware/sklopovska pogreškanpr. memorijska greška pariteta
Upravljanje programskim tijekom -Program Flow Control
Ciklus programskog prekida -Interrupt Cycle
Dodano instrukcijskom ciklusu – dio instrukcijskog ciklusaProcesor provjerava pojavnost interrupta
pojava interrupta daje se na znanje procesoru putem upravljačkih interrupt signala
Ako nema prog. prekida dalje se nastavlja sa fazom zahvata slijedeće instrukcijeAko se dogodi prekid:
Obustavlja se izvršenje trenutnog programaPohranjuje se stanje trenutnih operacija obradePC se postavlja na pokazivanje adrese programa u memoriji zaduženog za obradu prog. prekidaProcesiranje/obrada prekidne rutinePonovno uspostavljanje stanja operacija obrade programa prije nastanka prog. prekida
Instrucijski ciklus (sa prog. prekidom) - Dijagram stanja
Višestruki programski prekidi...
Onemogućavanje djelovanja prog. prekidaProcesor će ignorirati pojavu ostalih prekida dok obrađuje trenutni prog. prekidPojava prekida se bilježi po redu i u nizu te se niz pojavnosti prekida provjerava tek kada se izvrši obrada prvog prekida u nastalom nizuObavlja se obrada prekida onim redosljedom kako su se pojavili u prekidnom nizu
Definiranje prioritetaPrekidi sa niskom razinom značajnosti mogu se prekinuti prekidima većeg značajaKada se obradi prekid većeg značaja, procesor se vraća na obradu prekida nižeg značaja/manje važnosti.
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 povezaneKoriste se razne vrste povezivanja za razne vrste jedinica
Povezivanje memorijskog podsustavaUlazno/izlazni, I/O, podsustavCPU
Memorijsko sučelje/sabirnica
Prima i šalje podatkePrima adrese mem. lokacijaPrimanje upravljačkih signalaČitanje/ReadPisanje/WriteVremensko reosvježavanje/Timing
Sučelja I/O jedinica(1)
Gledano od strane računala ovo sučelje je slično memorijskom sučeljuIzlaz(i)
Prima podatke od računalaŠalje podatke periferiji računala
UlaziPrima podatke od periferijeŠalje podatke računalu
Sučelja I/O jedinica(2)
Primanje upravljačkih signala od računalaSlanje upravljačkih signala periferiji
npr. zavrti ploče diska, otvori ladicu CD/DVD-a
Prima podatke od računalanpr. koji je to broj porta za identifikaciju periferije
Slanje signala prog. prekida (upravljanje prog. prekidima)
CPU sučelje
Čitanje instrukcija i podatakaPisanje podataka nakon procesiranja istihSlanje upravljačkih signala ostalim jedinicama računalaPrimanje, registriranje i reagiranje na pojavu prog. prekida
Sabirnice - Busevi
Postoji bezbroj mogućih načina i sistema povezivanjaJednostruke i višestruke sabirničke BUS strukture su najčešće u uporabi
npr. Control/Address/Data sabirnica (PC)npr. Unibus (DEC-PDP)
Sto je to sabirnica/bus?
Komunikacijski put kao poveznica dva ili više uređajaUobičajena je tehnika “prozivanja” uređajaČesto su funkcionalno grupirane
Broj komunikacijskih kanala u jednoj sabirnicinpr. 32 bit data bus čini 32 odvojena 1-bit kanala
Linije napajanja u grupiranoj sabirnici nisu stvarnim funkcionalnim dijelom sabirnice u funkciji razmjene podataka
Podatkovna sabirnica...
Prenosi podatkeTreba zapamtiti da na ovom nivou prijenosa informacija ne postoji razlika između “podataka” i “instrukcija” – sve su to podaci koji se prenose
Ključni faktor performansi predstavlja “širina”sabirnice
8, 16, 32, 64 bit
Adresna sabirnica
Identificira izvorište odakle se žele prenijeti podaci – identifikacija drugog kom. uređajanpr. Procesor treba pročitati instrukciju/podatak iz memorijske lokacije zadane adresnom sabirnicomŠirina sabirnice određuje najveći memorijski kapacitet računalnog sustava
npr. 8080 ima 16 bit adresnu sabirnicu i omogućava 64kB adresnog prostora
Upravljačka/kontrolna sabirnica
Prenosi upravljačke i vremenski periodičke/clocksignale i informacije
signal za čitanje/pisanje memorijezahtjevi za programskim prekidimasignali takta / clock signali
Strukturna shema sabirnice...
Kako prepoznati sabirnicu?
Kako ustvari sabirnica izgleda/fizički?Paralelni vodovi na matičnoj pločiRibbon kabeli / plosnati višežični kabeliVišepolne priključnice na matičnoj ploči / slotovi⌧npr. PCI, PCI-Express, ISA, DDR, SDRAM,...
To je ustvari skupina od mnogo žica...
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 ulogeAddress valid ili data valid upravljača linijaPrednost – manje komunikacijskih linijaNedostaci⌧Složeno upravljanje takvom sabirnicom⌧Ultimate performance
Arbitracija pristupa sabirnici...
Više od jednog uređaja može kontrolirati sabirnici i njen radnpr. CPU i DMA kontrolerSamo jedan uređaj istovremeno može kontrolirati rad i pristupati sabirniciArbitracija/pregovor u kontroli pristupa sabirnici može biti:
Centralizirana ilidistribuirana
Centralizirana arbitracija
Samo jedan sklop ili uređaj kontrolira pristup sabirnici
Sabirnički kontrolerArbiter
Može biti dio CPU-a ili zaseban sklop/uređaj
Distribuirana arbitracija
Svaki uređaj na sabirnici može preuzeti kontrolu nad njomUpravljača logika kontrole pristupa sabirnice nalazi se na svakom uređaju spojenog na nju.
Vremensko upravljanje - Timing
Koordinacija događaja na sabirniciSinkrone sabirnice
Pojavnost događaja određena je clock/taktnim signalomKontrolni dio sabirnice sadržava signal taktaPrijelaz lokičkih 1-0 predstavlja takt sabirniceSvi uređaji mogu primati takt signalUobičajena je sinkronizacija uređaja na rastući brid takt signalaUobičajeno jedan događaj traje jedan ciklus takt signala
Sinkroni timing dijagram
Asinkroni timing dijagram
PCI Sabirnica
Peripheral Component Interconnectionrazvio je Intel32 ili 64 bit50 linija
PCI sabirničke linije (nužne)
Sistemske linijeuključujući takt i reset signal
Adresne i podatkovne linije32 multipleksirane linije za adrese i podatkeLinije za prog. prekide i linije za validaciju podataka/adresa1
Linije za kontrolu sučeljaArbitracija
Nije distribuirana – centralizirana jeIzravno povezivanje na PCI arbitarski sklop
linije za oznaku pojavnosti pogreški – error lines
PCI sabirničke linije (opcionalne)
Linije prog. prekidaNe dijele se između uređaja
Podrška za priručnu memoriju64-bit proširenje sabirnice
dodatne 32 linijevremenski multipleksirane2 dodatne linije za odobrenje uređaju korištenja 64bit načina prijenosa podataka
JTAG/Boundary ScanZa potrebe testiranja uređaja
PCI Naredbe
Transakcije između inicijatora (master) i odredišta (target)Master uređaj preuzima kontrolu na sabirnicomOdređivanje tipa transakcije/razmjene
npr. čitanje I/O jedinice, ili pisanje,...
Adresna faza – samo jednaJedna ili više podatkovnih faza
PCI timing dijagram čitanja..
PCI sabirničkopregovaranje/arbitracija...
Organizacija i arhitektura računala
Poglavlje 4Interna memorija
Karakteristike
Lokacija/položajKapacitetJedinice za prijenosMetode pristupaPerformanseFizikalne modeli memorijeFizikalne karakteristikeOrganizacija
Lokacija... gdje se nalazi
CPUInterna memorijaVanjska/externa memorija
Kapacitet... količina memorije
Veličina memorijske riječi...Veličina određena prirodom organizacijom memorijeBroj riječi koji se može pohranitiili byte-ova
Jedinica za prijenos...
Interna/unutarnjaUobičajeno je strukturirana prema širini podatkovnog dijela
sabirničkog sučelja – 1 riječ
Vanjska/externalUobičajeno je to blok podatka koji je veći od jedne memorijske
riječi.
Adresabilna jedinicaNajmanja lokacija koja se još može jednoznačno adresiratiinterno je to na razini jedne riječijedan “klaster” na HDD-u
Metode pristupa (1) Sekvencijlani
Starta se na početku memorije te se dalje iščitava prema nadolazećem redoslijedu
Vrijeme pristupa ovisi o položaju podatka i prethodnoj pristupljenoj lokaciji
npr. magnetska traka Izravni
Individualni podatkovni blokovi imaju jedinstvene adresePristup lokaciji se ostvaruje kroz skokove u blizini tražene
lokacije uz dodatno sekvencijalno traženje zadane lokacijeVrijeme pristupa ovisi o traženoj lokaciji i prethodno
pristupljenoj lokacijinpr. HDD
Metode pristupa (2)SlučajniIndividualne adrese lokacija identificiraju točno
lokaciju kojoj se želi pristupitiVrijeme pristupa ovisi brzini dekodiranja adrese i
isčitavanja sadržaja lokacijenpr. RAM
AsocijativnoPodatak se locira usporedbom traženog sadržaja sa
sadržajem pretraživanih pohranjenih podatakaVrijeme traženja neovisno je o prethodno nađenoj
lokacijinpr. priručna memorija
Memorijska hijerarhija
Registri/RegistersU CPU-u
Interna ili glavna memorijaMože sadržavati jednu ili više razina priručne
memorije“RAM”
Vanjska memorijaZa masovniju pohranu podataka
Performanse
Vrijeme pristupaVrijeme pristupa između postavljanja adrese i
dobivanja traženog podatka
Vrijeme memorijskog ciklusaVrijeme potrebno sa se memorija/sadržaj
obnovi/oporavi prije slijedećeg ciklusa pristupaVrijeme ciklusa=pristup+oporavak
Brzina prijenosaNajveća brzina kojom se mogu prenijeti podaci
Vrste memorije prema fizičkom ustroju
PoluvodičkeRAM
MagnetskeDiskovi i trake
OptičkeCD & DVD
Druge vrsteBubbleHologram
Fizikalne karakteristike...
Slabljenje signala / gubljenje informaciju u mem. ćeliji
Svojstvo pamćenja nakon gubitka napajanjaIzbrisivostPotrošnja energije
Organizacija
Fizičko ustrojavanje bitova u riječito 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...
RegistriL1 CacheL2 CacheGlavna memorija – main memoryDiskovna priručna memorija - Disk cacheDiskOptič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
memorijaKako 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 memorijato nije uvijek tako -> npr. flash memorija ima klasterski
način čitanja i pisanja (slično sektorima HDD-a)
Čitanje i pisanjeOvisnost o napajanju – sposobnost da zapamti
podatak neovisno o napajanjuPrivremena pohrana podatakaStatička ili dinamička
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 podatakaZa spremanje programa / MicroprogrammingZa spremanje nemjenjivih potprograma / Library
subroutinesSistemski 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 16Mbit-nu memoriju 16 čipova!
16Mbit čip može se organizirati kao 2048 x 2048 x 4bit matrica / ćelija matrice (riječ) ima 4 bita! Reducirani broj adresnih pinova
Multipleksiranje redaka i stupaca mem. matricesamo 11 pina za adresu (211=2048)Dodavanje još jednog adresnog pina poduplava ukupni mogući
adresni prostor (4096x4096x4bit) -> kapacitet raste 4 puta!!!
Osvježavanje sadržaja...
Sklopovi za osvježavanje su u čipu memorije (najčešće)
Ciklus osvježavanja onemogućuje pristup memoriji
Osvježavanje se provodi kroz retke...Isčitavanje i ponovno pisanjeTo traje... oduzima dragocjeno vrijemeUsporava pristup – manje performanse
Tipični 16 Mb DRAM (4M x 4)
Pakiranja/kućišta
Modularnaorganizacija
Modularna organizacija (2)
Mehanizmi ispravke greške
Sklopovska greška – hardware errorto često znači trajnu nepopravljivu grešku
programska/sftware greškaSlučajne, nisu destruktivneNema trajnog oštećenja memorije
Detektiranje greške obavlja se putem Hammingovog postupka korekcije
Funkcija ispravke greške...
Priručna memorija - Cache
Mala količina brze memorijeSmještena je na putu između CPU-a i glavne
memorijeMože biti ugrađena u CPU ili kao poseban modul
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 mapiranjaAlgoritmi zamjene sadržaja cache memorije
novim blokovima podataka iz gl. memorijepolitika pisanja u cache memoriju – nimalo
jednostavna i trivijalna stvar!Veličina korištenih blokova podatakaBroj cache blokova
Veličina je ovdje doista bitna/važna
Trošak/troškoviPuno cachea puno košta
BrzinaViše cachea znači i bolje performanse obrade (ali
samo do neke granice)Provjera i traženje određenog sadržaja u cacheu
zahtijeva vrijeme!!!Puno cachea – puno vremena!
Tipična organizacija cachememorije
Funkcije mapiranja
Cache kapaciteta 64kBVeličina bloka je 4 byte-anpr. cache čini 16k (214) blokova veličine 4 bytea
16MBytea glavne memorije24 bit adresa(224=16M)
Izravno mapiranje
Svaki blok glavne memorije mapirn se samo jednim i egzaktnim dijelom cache memorijenpr. ako je traženi blok gl. memorije u cache-u tada se on nalazi
na točno određenom mjestu. Adresa se sastoji od dva dijela. LSB w bitova identificiraju/definiraju “jedinstvenu” riječ. MSB s bitova definiraju jedan mem. blok MSB bitovi su podijeljeni na:
cache polje pretraživanja / dio cache linije – r i ... oznaku/tag – s-r dio MSB-a
Izravno mapiranjeAdresna strukturaOznaka s-r Cache linija/polje r
Jedinstvena riječ w
8 14 2
24 bit-na adresa 2 bit identifikator riječi (4 byte po bloku) 22 bit-ni identifikator bloka
8 bit tag (=22-14)14 bit polje/linija
Ne postoje dva bloka u istom pilju sa istom oznakom Cache se pretražuje pretraživanjem polja/linije i provjerom
oznake/tag
Izravno mapiranjeTablica Cache polja/linije
Cache linija Sadržaj glavne memorije0 0, m, 2m, 3m…2s-m1 1,m+1, 2m+1…2s-m+1
m-1 m-1, 2m-1,3m-1…2s-1
Cache sa direktnim mapiranjemOrganizacijska struktura
Izravno mapiranje - primjer
Izravno mapiranjeprednosti i mane...
JednostavnostJeftinoFiksne lokacije za svaki blok memorijeAko program konstantno pristupa dvama blokovima
koji su mapirani na isto polje/liniju cache-a tada su promašaji zahvata iz cache-a vrlo zastupljeni/veliki.
Asocijativno mapiranje
Blok iz glavne memorije može se pohraniti u bilo koji dio cache memorije
Memorijska adresa interpretira se i kao oznaka i kao jedinstvena riječ
na ovaj način oznaka jednonačno i jedinstveno identificira blok glavne memorije
Prilikom pretraživanja svaka oznaka iz linije/polja se ispitiva u svrhu poklapoanja pretrage
Ovaj način cache-iranja je prezahtijevan
Potpuni acosijativni cacheoraganizacija...
Asocijativno mapiranje - primjer
Oznaka 22 bitRiječ2 bit
Adresna struktura asocijativnog mapiranja
22 bit-na oznaka pohranjena je sa svakim 32-bitnim blokom podataka
Uspoređuje se polje sa oznakom/tagom sa zadanim tagom za uspješan pronalazak
LSB 2-bita adrese identificiraju koja 16-bitna riječ je tražena iz 32-bitnog bloka podataka
e.g.Adresa Oznaka Podatak Cache linijeFFFFFC FFFFFC 24682468 3FFF
Skupno asocijativno mapiranje
Cache je podijeljen na niz podskupova/grupa blokova Svaki skup sadrži broj linije cachea Zadani blok mapira se prema bilo kojoj cache liniji u
zadanoj skupininpr. blok B može biti u bilo kojoj liniji iz skupa “i”
npr. 2 linije po skupini2-way asocijativno mapiranjeZadani blok može biti u bilo kojoj od dvije cache linije u samo
jednoj skupini
Skupno asocijativno mapiranjeprimjer...
13 bit-ni broj skupaBroj bloka u glavnoj memoriji je modulo 213
npr. 000000, 00A000, 00B000, 00C000 …mapirani su istoj skupini
2-Way skupni asocijativni cache – Organizacija...
Skupno asocijativno mapiranjeAdresna struktura
Dio riječi koji se odnosi na “skup” se koristi kod određivanja gdje se traži podatak
Uspoređuje se “tag” da bi se dobio uvod da li je podatak pronađen (hit) ili ne (miss)
npr.Adresa Oznaka Podatak Set number1FF 7FFC 1FF 12345678 1FFF001 7FFC 001 11223344 1FFF
Oznaka 9 bit Skup 13 bitRiječ2 bit
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-aZamjena 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ženjuKoji je od 2 bloka LRU?!?
First-in-first-out (FIFO)zamjena bloka koji stoji u cache-u najduže od svih
Najmanje korišteni, inače - Least-frequently-used (LFU)zamjeni blok koji se najmanje koristio – imao najmanji broj
“pogodaka” Slučajno dređivanje koji će se blok u cache-u zamijeniti
Politika/meotde pisanja...
Cache blok se ne smije prepisati novim podacima ukoliko sadržaj glavne memorije nije “najsvježiji”
Više procesorski sustavi mogu imati cachestrukturu taku da svaki procesor ima svoj cache
I/O jedinice mogu izravno adresirati glavnu memoriju -> npr. DMA pristup
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 cachememoriju
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 DRAMSadrži male količine i SRAM-aSRAM drži zadnje pročitane podatke (neka vrsta
cache-a!)
Cache DRAMza svrhe gdje su potrebne veće količine SRAM-akoristi se kako cache ili serijski “buffer”
Novije RAM tehnologije (2)
Synchronous DRAM (SDRAM) na njima se temelje današnji DIMM-oviPristup im je sinkroniziran putem vanjskog izvora
takt-signalaAdresira se kao i svaki RAMBudući da SDRAM prenosi podatke prema
sistemskom taktu, CPU tada zna kada će podaci biti spremni
CPU ne treba čekati, može raditi nešto drugoBurst-mode omogućava SDRAM-u prijenos podataka
u blokovima – ubrzanje pristupa podacima
SDRAM
DDR RAM
Organizacija i arhitektura Organizacija i arhitektura računalaPoglavlje 5
Vanjska memorijaVanjska memorija
Vrste vanjskih memorija
Magnetski diskRAIDRAIDZamjenjivi
O tičkOptičkeCD-ROMCD-Writable (WORM)CD-R/WDVD
Magnetske trakeg
Magnetski disk
Metalni ili plastični disk presvučen magnetskim materijalom (FeO hrđa)materijalom (FeO3, hrđa)Vrste prema namjeni
Floppy“Winchester” hard disk“Removable”/izmjenjivi hard disk
Organizacija podataka i formatiranje
Koncentrični prstenovi ili trakeRazmaci između trakaRazmaci između trakaSmanjivanjem razmaka povećava se kapacitetJ d k b j bit t i ( ij bil t ćJednak broj bitova po traci (varijabilna gustoća pakiranja)Konstantna kutna brzina CAVKonstantna kutna brzina - CAV
Trake su podijeljene na sektorečMinimalna veličina podatkovnog bloka je jedan
sektorJedan blok može biti i više od jednog sektora
Poredak podataka na disku / Data disk layout
Magnetizacija medija
Diskovi sa fiksnom i pomičnom glavom
Fiksna glavaJedna R/W glava po traciJedna R/W glava po traciGlave su montirane na fiksiranom držaču
P ič lPomične glaveJedna R/W glava po strani diskaMontirane na pomičnom nosaču
Fiksne i pomične glaveHDD iz 1975.
Izmjenjivi ili ne...?
Izmjenjivi diskMože se ukloniti iz disk jedinice i zamijeniti drugimMože se ukloniti iz disk jedinice i zamijeniti drugim diskomNa ovaj način se može do beskonačnosti povečavatiNa ovaj način se može do beskonačnosti povečavati kapacitetJednostavna razmjena podataka između raznihJednostavna razmjena podataka između raznih računalnim sustava
Neizmjenjivi diskoviNeizmjenjivi diskoviPermanentno ugrađeni u disk jedinici
Izmjenjivi ili ne...?
Floppy Disk
8”, 5.25”, 3.5”M li k it tMali kapacitet
do 1.44Mbyte (ili 2.88M, nikad populariziran)
SporUniverzalno primjenjiv i izmjenjivp j j j jJeftin
Floppy Disk
“Winchester” hard Disk (1)
Razvio ga IBM u Winchester-u(USA)Hermetički zatvorenJedan ili više diskovaGlave lebde iznad diska na zračnom jastuku kada se ploče okrećuVrlo mal razmak između glava i pločapločaVrlo robustan
“Winchester” hard Disk (2)
Univerzalno/široko primjenjivJ ftiJeftinNajbrža vanjska jedinica za pohranu podatakaSa vremenom postaju sve većeg kapaciteta
Danas... 1-2T uobičajenoj
Izmjenjivi hard diskoviZIPZIP
JeftinZamjena za floppySamo 100M
JAZNe baš jeftin u odnosu na ZIP1G
L-120 (a: drive)0 (a d e)Isto tako čita i 3.5” floppyDa li će postati popularan? -> NE!Da li će postati popularan? > NE!
Traženje sektora
Prvo se mora se pronaći početak trake i sektoraF ti j di k / f t di kFormatiranje diska / format diska
To su dodatne informacije o ustriju diska koje nisu d t k j j k i ikdostupne krajnjem korisnikuFormatiranje je proces označavanja traka i sektora
ST506 format (staro i nije u primjeni!)
Gap1 Id Gap2 Data Gap3 Gap1 Id Gap2 Data Gap3p p p p p p
STrack
SyncByte Head Sector CRC Sync
ByteData CRC
Karakteristike jednog diska...
Fiksne (rijetko) ili pomične glaveI j ji i ili fik i di k iIzmjenjivi ili fiksni diskoviJednostrani ili dvostrani (češće)Jednopločni ili višepločniMehanizam glaveMehanizam glave
Kontaktna glava (Floppy)Fiksni razmakFiksni razmakLebdeća glava (Winchester)
Višepločni diskovi
Jedna glava po strani diskaGl h ički j i tGlave su mehanički spojene i poravnateTrake i cilindri su poravnatiPodaci su podijeljeni po cilindrima ne sektorima
Jedan blok podataka nalazi se na više diskova u pistovjetnim trakama i cilindrimaumanjuje potrebu za pomicanjem glavePovećanje brzine (čitanja/pisanja)
Brzina
Vrijeme pretraživanjaVrijeme potrebno da se j pglava pomakne na traženu traku
(Obrtna) latencija(Obrtna) latencijaVrijeme potrebno da se podatak iz sektora “odvrti” ispod glave
Vrijeme pristupa = traženje + latencija+ latencijaBrzina prijenosa
RAID
Redundant Array of Independent Disks Redundant Array of Inexpensive Disksy pU općoj uporabi postoji 6 nivoa organizacije RAID-aRAID nije hijerarhijski ustroj podatakaj j j j pSkup fizičkih diskova “vidi” se kao jedan disk od strane OS-aPodaci su podijeljeni između fizičkih diskova u poljuRedundantni mem. kapacitet diskova može se pupotrijebiti za spremanje npr. parity informacija
RAID 0
Bez redundancijePodaci su podijeljeni među p j jsvim diskovimaRound Robin raspodjela podatakapodatakaPovećanje brzine
Kad se čita podatak čita se psa svih diskova istovremeno po jedan djelić podatkapodatkaDiskovi rade u paraleli
RAID 1
Kopije diskovaPodaci su na svim diskovimaNa svakom disku nalaze se isti podaci - kopijeKada se čita, čita se sa svih ,diskova - brzinaPiše se na sve diskove -usporenjep jPovratak podataka je jednostavan
Zamjeni pokvareni disk iZamjeni pokvareni disk i ponovo presnimi sve podatke na njegaNema tzv “down time”-aNema tzv. down time -a
Vrlo skupo i vrlo sigurno
RAID 0+1
RAID 2
Diskovi su sinkroniziraniPreslikavanje podataka u malim količinamao č a a
često samo jedna riječ i/ili byte
Korekcija greške se radi na j gtemelju odgovarajućih algoritama ali samo za one podatke koji su na jednom diskuViš t ki it di k iVišestruki parity diskovi pohranjuju Hammingov kôd korekcije greške na odgovarajućim pozicijama
Hamming ECCdiskovi
Podatkovnidi k iodgovarajućim pozicijama
Puno redundancije... vrlo sigurnoi vrlo skupogotovo da i nije u uporabi
diskovidiskovi
gotovo da i nije u uporabi
RAID 3
Slično kao i RAID 2Samo jedan redundantni disk bez obzira na ukupnu veličinu poljaJednostavna korekcija greške pomoću parity bita za odgovarajuću veličinu bloka bitova podatakaPodaci na pokvarenom disku mogu se rekonstruirati od ostalih ispravnih diskova i parity diskaVrlo velike brzine prijenosa
RAID 4
Svaki od diskova radi nezavisno u odnosu na drugeVrlo dobro za mnogobrojne i česte I/O zahtjeve čitanja i pisanja na diskVelika logička polja – veliki kapacitetiParity se računa bit-po-bit preko svih diskova u RAID poljuParity informacija pohranjuje se naParity informacija pohranjuje se na parity disku
RAID 5
Slično kao RAID 4Paraity se računa nad podacima raspodjeljenim na svim diskovima uraspodjeljenim na svim diskovima u poljuRound robin rezervacija diskovnog prostora za parity informacijuprostora za parity informaciju raspodijeljenu na sve diskoveNa ovaj način zaobilazi se poseban disk rezerviran za parity – koji p y jpredstavlja usko grlo – brzina samo jednog diska zbog čitanja parityjaUobičajena uporaba kod mrežnih servera
RAID 5 ne znači 5 diskova!!!!!
RAID 6
Slično kao RAID 5Parity se računa dva puta nad podacima raspodjeljenim na svimpodacima raspodjeljenim na svim diskovima u polju i to u različitim kombinacijamaNa ovaj način zaobilazi se posebanNa ovaj način zaobilazi se poseban disk rezerviran za parity – koji predstavlja usko grlo – brzina samo jednog diska zbog čitanja parityja te se uvodi dodatna parity informacija čime se povečava sigurnostUporaba kod mrežnih servera
Optička memorija - CD-ROM
Originalno zamišljen za pohranu audio informacija650Mbytes dovoljno za oko 70 minuta audio zapisaPolikarbonat presvučen visokoreflektivnim materijalom (aluminij)Podaci su pohranjeni u obliku sitnih udubina/rupicaPodaci se isčitavaju refleksijom laserske zrake od
fl k šreflektivne površineKonstantna gustoća pakiranjaKonstantna linearna brzina – CLV (ne CAV kao kod HDD-a)
CD-ROM
CD-ROM – Brzine...
Audio je 1x brzinskiCLV – Constant Linear Velocityy1.2 ms-1
Traka (spirala) – duga je 5.27kmtrajanje 4391 sekunde = 73.2 minute
Moguće su i veće brzine – cijelobrojni umnošci osnovne brzinenpr 4x 24x 40x 56xnpr. 4x,24x, 40x, 56x,...Obično navedene brzine na jedinici znače i maximalne moguće brzine čitanja koje ta jedinica može postići
CD-ROM Format
FF or e Layered00 00
FF x 10 M
inSe
cSe
cto
Mod
e
DataLayeredECC
12 byteSync
4 byteId
2048 byte 288 byte
2352 byte
M d 0 ljMode 0=prazno poljeMode 1=2048 byte podaci+korekcija greškeMode 2=2336 byte podataka
Random Access on CD-ROM – slučajno pristupanje podacima
Teško za ostvariti... nije nemoguće -> sporoP i j l b d đ t žPomicanje glave na grubo određenu traženu pozicijuUspostava odgovarajuće brzine rotacije diska -> ispravni CAVČitanje adrese trenutne pozicijePodešavanje pomaka na točnu adresuPodešavanje pomaka na točnu adresui to je to... komplicirano!!!
CD-ROM – prednosti i mane...
Veliki kapacitet (?) – danas je to upitno jer se razvijaju svakim danom nove modifikacije osnovnog CD-ROM ustroja ali za veće kapacitietekapacitiete
DVDHDDVDBD
Vrlo jednostavno za masovnu produkcijuIzmjenjiva diskovna jedinica - izmjenjivostj j j j jRobusnost – da li je doista robuno? -> CD/RW pouzdanostSkupo za malošaržne produkcijeSpo oSporoMoguće samo čitanje – samo kod CD-R
Ostale optičke memorije
CD-WritableWORMWORMcjenovno vrlo prihvatljiviM j biti k tibil CD ROM f tMoraju biti kompatibilne sa CD-ROM formatom
CD-RWIzbrisive memorijedanas su vrlo, vrlo cjenovno prihvatljiveMoraju biti kompatibilne sa CD-ROM formatom
DVD – značenje imena, zbunjuje?
Digital Video DiskPredviđen za distribuciju filmovaPredviđen za distribuciju filmova
Digital Versatile DiskPredviđen za korištenje u računalima za raznovrsne primjene⌧Čitanje podataka i filmskog apisa⌧Čitanje podataka i filmskog zapisa
Nešto drugo?ž šSlužbeno... ništa od navedenog!!!
DVD - tehnologija
Višeslojno zapisivanjeV liki k it ti (4 7G j d l j )Veliki kapaciteti (4.7G po jednom sloju)Cjelovečernji film stane na cijeli disk
Koristi se MPEG kompresija
Filmovi nose regionalne kodove za reprodukcijug p jReproduktori reproduciraju samo one filmove za koju je regiju reproduktor namjenjenkoju je regiju reproduktor namjenjen
DVD-ROM
DVD/RW
Ovdje ima mnogo problema oko definicije što je to standard za DVD/RWto standard za DVD/RWPrve generacije DVD jedinica možda ne mogu čit ti DVD/RW di k b tčitati ove DVD/RW diskove zbog toga –nedostatak standarda!!!
Magnetska traka/vrpca
Serijski pristupSporoV l l j f iVrlo, vrlo jeftino -> veliki kapacitetiArhiviranje i sigurnosnosigurnosno kopiranje podataka
Digital Audio Tape (DAT)
Uporaba rotirajućih glava (kao i kod analognih video
d kt )reproduktora)Velik kapacitet na maloj traci – veličina “obične” audio trake
4Gbyte nekomprimirano8Gbyte komprimirano
Sigurnosne kopije podataka saSigurnosne kopije podataka sa mrežnih servera,...
Organizacija i arhitektura računala
Poglavlje 6Input/Output sustavi
I/O problemi...
Velika raznovrsnost periferijeRaznovrsne brzine prijenosa podatakaNa raznim komunikacijskim brzinamaU različitim formatima
Sve su sporije od CPU-a i RAM-aPotrebne su I/O jedinice
I/O jedinice/moduli
to su sučelja prema CPU i memorijiisto tako to su sučelja i prema više od jedne IO jedinice
Vanjski uređaji
orijentirane prema čovjekuMonitor, pisač, tipkovnica
orijentirane prema strojunadzor i kontrola/upravljanje
komunikacijamodemNetwork Interface Card (NIC)
I/O funkcije modula
Control & TimingCPU komunikacijakomunikacija sa jedinicamaData bufferingdetekcija pogreške
I/O koraci...
CPU provjerava status modula I/O jediniceI/O modul odgovara svojim statusomAko je modul spreman tada CPU zahtijeva razmjenu podatakaI/O modul dobiva informacije od jediniceI/O modul proslijeđuje dobivene podatke ka CPU-umogu postojati varijacije u koracima, npr. DMA prijenos podataka
Dijagram I/O modula
Data Register
Status/Control Register
ExternalDeviceInterfaceLogic
ExternalDeviceInterfaceLogic
InputOutputLogic
DataLines
AddressLines
DataLines
Data
Status
Control
Data
Status
Control
Systems Bus Interface External Device Interface
Odluke I/O modula
Skriti ili otkriti sva svoja svojstva CPU-u?odluka da li podržava samo jedan ili više I/O uređajaupravlja funkcijama jedinice ili to ostavlja procesoru da obaviisto tako to može prepustiti i operativnom sustavu
npr. Unix sve I/O jedinice tretira kao običan file/datoteku
I/O tehnike
Programirljivepogonjene programskim prekidimaDirect Memory Access (DMA)
Programirani I/O
CPU ima izravnu kontrolu nad I/Oprovjerava statusRead/write komandeprijenos podataka
CPU čeka I/O modul da završi operacijuovo bespotrebno troši dragocjeno vrijeme CPU-a
Programirani I/O – detaljnije...
CPU zahtijeva I/O operacijuI/O modul izvršava operacijuI/O modul postavlja status bitCPU periodički provjerava statusni bitI/O modul ne izvještava direktno CPU o svom stanjuI/O modul ne djeluje preko interruptaCPU može čekati ili provjeriti kasnije da li je modul završio sa svojim poslom
I/O komande
CPU adresira modulidentificira modul
CPU postavlja komandne zahtjevekontrola – kaže modulu što da učini⌧npr. zavrti disk
Testira – provjerava status⌧npr. napajanje? greška?Čita/piše⌧Modul prebacuje podatke putem posebne buffer memorije u
I/O jedinicu
Adresiranje I/O uređajaGledano od strane CPU-a to je isto kao i adresiranje memorijeSvaki uređaj ima jedinstveni identifikatorCPU komande sadrže i te identifikatore
I/O mapiranje
Memorijski mapirani I/OUređaji i memorija dijele isti adresni prostorI/O se pomaša kao obična memorijska lokacijanema posebnih komandi za I/O operacije
Izolirani I/OOdvojeni adresni prostorPotrebna dodatna I/O ili memory select linijaSpecijalne komande za I/O operacije⌧Ograničeni skup takvih komandi
Interruptom pogonjeni I/O
rješava probleme čekanja CPU-aNema provjere stanja uređaja od strane CPU-aI/O modul izaziva interrupt kada je on spreman
Interruptom pogonjeni I/OOsnovne operacije
CPU zahtijeva komandu čitanjaI/O modul uzima podatak od svoje periferije dok procesor radi nešto drugoI/O modul prekida CPU interruptomCPU traži prijenos podatakaI/O modul prenosi podatke
Gledano od strane CPU-a...
zahtijeva komandu čitanja podatakaRadi nešto drugoProvjerava pojavu interruptaAko je interrupt:
Snima trenutno stanje (registre)obrađuje interrupt⌧zahvaća i sprema podatke
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 modulPCLimitiran broj uređaja
Softwersko prozivanje i ispitivanjeCPU pita svaki modul za interruptSporoooo....
Modul za identifikaciju interrupta (2)
Daisy Chain ili hardwersko prozivanjeInterrupt Acknowledge šalje se putem interrupt lancaModul postavlja adresu svog interrupt vektora na sabirnicuCPU analizira interrupt vektor i identificira izvor interrupta
Bus MasterModul mora prvo preuzeti kontrolu nad sabirnicom pa tek onda izazvati interruptnpr. PCI ili SCSI
Višestruki interrupti
Svaka interrupt linija ima svoj prioritetInterrupti višeg prioriteta mogu prekinuti interrupte nižeg prioritetaAko se koristi tehnika bus masteringa/preuzimanje kontrole sabirnice, tada onaj tko je preuzeo sabirnicu može izazvati interrupt
Primjer - PC Sabirnica
80x86 ima jednu interrupt liniju8086 sustavi rabe 8259A interrupt kontroler8259A ima 8 interrupt linija
Sekvenca događaja
8259A registrira i prihvaća interrupt8259A određuje prioritet interrupta8259A signalizira 8086 (podiže INTR liniju)CPU potvrđuje prijem interrupta8259A postavlja odgovarajuću adresu interruptvektora na sabirnicuCPU procesira interrupt
PC Interrupt Layout
8086
INTR
8259A
IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7
ISA Bus interrupt sistem
ISA ulančuje dva 8259As kontrolera zajednopovezuje ih putem interrupta IRQ2Daje ukupno 15 linija interrupata
16 linija minus jedna za uspostavljanje veze među njima
IRQ 9 se koristi za preusmjeravanje korištenja IRQ2
da bi se postigla unazadna kompatibilnostDanas je to inkorporirano u sam čipset
ISA interrupt sistem
80x86
INTR
8259A
IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7
8259A
IRQ0 (8)IRQ1 (9)IRQ2 (10)IRQ3 (11)IRQ4 (12)IRQ5 (13)IRQ6 (14)IRQ7 (15)
(IRQ 2)
DMA
Direct Memory Access
Interruptom pogonjen i programiran I/O prijenos podataka inače zahtijeva aktivnost CPU-a
Brzine prijenosa su limitiraneCPU je tada zauzet
DMA predstavlja rješenje ovih problema
DMA funkcija
dodatan modul/hardware na sistemskoj sabirniciDMA preuzima kontrolu nad I/O od CPU-a
DMA operacije
CPU “kaže” DMA kontroleru:Čitaj/pišiadresu uređajaPočetnu adresu memorijskog bloka podatakakoju količinu podataka treba prenijeti
CPU nastavlja sa drugim poslomDMA kontroler obavlja prijenos podatakaDMA kontroler šalje interrupt kada je gotov sa prijenosom
DMA prijenosKrađa ciklusa...?!?
DMA preuzima ciklus prijenosa podataka od sabirnicePrijenos jedne riječi podatkaOvo ne koristi interrupt
CPU program se ne prekida
CPU se onemougući prije nego pokuša pristupiti sabirnicinpr. prije nego li se operand ili podatak zahvate ili zapiše
To ponešto usporava izvršavanje i rad CPU-a ali ne puno u odnosu kada CPU ima kontrolu nad sabirnicom
Dodatna pitanja...
Kakav efekt ima cachiranje memorije na DMA transfer?Pomoć: koliko je sistemska sabirnica slobodna/raspoloživa za transfer?
DMA ustroj (1)
jedna sabirnica, odspojeni DMA kontrolerSvaki transfer koristi sabirnicu dva puta
I/O u DMA a onda DMA u memoriju
CPU je tada u jednom ciklusu dva puta onemogućen u korištenju sabirnice
CPU DMAController
I/ODevice
I/ODevice
Main Memory
DMA ustroj (2)
Jedna sabirnica, integrirani DMA kontrolerkontroler može podržavati više od >1 uređajaSvaki transfer koristi sabirnicu samo jednom
DMA u memoriju
CPU je onemogućen samo jednom
CPU DMAController
I/ODevice
I/ODevice
Main Memory
DMAController
I/ODevice
DMA ustroj (3)
Odvojena I/O sabirnicaSabirnica podržava sve DMA sposobne uređajeSvaki transfer koristi sabirnicu jednom
DMA u memoriju
CPU je onemogućen samo jednom
CPU DMAController
I/ODevice
I/ODevice
Main Memory
I/ODevice
I/ODevice
I/O kanali
I/O postaju sve sofisticiranijenpr. 3D grafičke karticeCPU nalaže I/O kontroleru da obavi prijenos podatakaI/O kontroler obavlja cijeli transferPovećanje brzine
Smanjuje opterećenje CPU-aPosebno građeni procesori za ovu namjenu su daleko najbrži u obavljanju ove funkcije
Povezivanje putem sučelja
Povezivanje uređaja međusobnoKoliko žica?Procesori/memorije/sučelja za posebnu namjenu?npr. SCSI, FireWire, USB, ...
Small Computer Systems Interface (SCSI)
Paralelno sučelje8, 16, 32 bit podatkovne linijeDaisy chainedUređaji su neovisni jedna o drugom u lancuUređaji u lancu mogu komunicirati jedan sa drugom kao i u slučaju host-slave komunikacije
SCSI - 1
Rane 1980s8 bit5MHzData rate 5MBytes.s-1
7 uređaja u lancu8 ako uključimo i Host-kontroler
SCSI - 2
199116 i 32 bit10MHzData 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đajaReselection/ponovno odabiranje istog uređaja
omogućava rekonekciju nakon npr. suspend modanpr. ako zahtjevana operacija traje određeno vrijrme tada se sabirnica može osloboditi za komunikaciju drugih uređaja
SCSI signalizacija (2)
Komanda – inicijator zahtijeva komunikaciju sa odredištemZahtijevaju se podaciZahtijeva se statusZahtijeva se poruka (obostrano)
Faze rada SCSI sabirnice
ArbitrationBus free (Re)Selection
Command,Data, Status,Message
Reset
SCSI Timing Diagram
Podešavanje/konfiguracija SCSIsabirnice
Sabirnica mora biti električki terminirana na oba kraja
uobičajeno je da je na jednom kraju host adapterna drugom kraju su terminatorski priključci
SCSI identifikator se mora postavitijumperi ili prekidačimoraju biti jedinstveni u cijelom lancu0 (zero) identifikator za boot jedinicuveći broj znači veći prioritet u arbitraciji
IEEE 1394 FireWire
Serijska sabirnica viskoih performansiBrzamali troškovi, jeftinajednostavna za implementacijuKoristi se kod digitalnih kamera, VCR-a, TV-a, fotoaparata, ...
FireWire ustroj
Daisy chainDo 63 devices na jednom portu
ustvari 64 od kojih je jedna i samo sučelje
Do 1022 busa se mogu povezati jednim bridgečipsetomAutomatska konfiguracijaNema sabirničkih terminatoraMože se oblikovati u stablastu strukturu
Organizacija FireWire-a u 3 nivoa –3 Layer Stack
FizičkaPrijenosni medij, električne i signalizacijske karakteristike
Veza/LinkPrijenos podataka u paketima
TransakcijeZahtjev-odgovor protokol
FireWire – Fizikalni nivo
Brzine prijenosa od 25 do 400MbpsDvije forme/načina arbitracije
Temeljeno na stablastoj strukturiKorjenski uređaj djeluje kao arbitar/pregovarač“Prvi dođe-prvi bude poslužen”Tko je najbliži korjenskom uređaju ima najveći prioritet“fer” arbitracijai žurbena/urgent arbitracija
FireWire - Link nivo
Dvije vrste prijenosaAsinkorni prijenos⌧Varijabilna količina podataka sudjeluje u procesu prijenosa u
obliku paketa⌧Explicitno adresiranje⌧prisutna potvrda prijema i/ili predaje podataka jednog
paketa
Izokrona/sinkrona⌧Podaci se prenose u paketima fiksne veličine u pravilnim
vremenskim intervalima⌧Vrlo jednostavno/pojednostavljeno adresiranje⌧Nema potvrde prijema/slanja paketa sa podacima
Organizacija i arhitektura računala
Poglavlje 7Podrška operativnog sustava
Ciljevi i funkcije
PrikladnostNapraviti računalo da bude što jednostavnije za uporabu
Efikasnost/učinkovitostOmogućiti što bolje iskorištenje računalnih resursa
Nivoi organizacije računalnog sustava
Zadaće operativnog sustava
Izrada programaIzvršenje programaPristup I/O jedinicamakontrolirani pristup datotekamapristupi na razini sustavaDetekcija i odgovori na pojavu greškeOpsluga više korisnika
O/S kao upravljač rač. resursima
Vrste operativnih sustava
InteraktivniBatch/ŠaržniJednoprogramski (Uni-programming)Višeprogramski (Multi-tasking)
Prvi operativni sustavi...
Kasne 1940 do srednjih 1950Nije bilo operativnog sustavaProgram komunicira sa hardwareom izravnoDva su glavna problema:
Scheduling/periodičko izvršavanjeSetup time/vrijeme programiranja/pokretanja
Jednostavni “batch” sustavi
Rezidentan monitorski programKorisnik se naručuje operatoru za izvršavanje programaOperator izvršava program kada dodje na red / batchexecutionMonitorski program upravlja skvencom batch niza programa u svrhu redoslijednog izvršenja programaKada je jedan posao izvršen upravljanje se vrćamonitorskom programu koji pokreće izvršavanje slijedećeg posla sa listeMonitorski program upravlja redosljedom izvršavanja poslova
Jezik za kontrolu poslova / Job Control Language
Nalaže monitorskom programu što da radiobično se označava i počinje znakom $npr.
$JOB$FTN... instrukcije$LOAD$RUN... podaci$END
Željene hardwerskemogućnosti/značajke
Zaštita sadržaja memorijei na taj način zaštititi monitorski program
Timerda bi se spriječilo da jedan posao preuzme i monopolizira cijeli sustav
Privilegirane instrukcijeMože ih izvršiti samo monitorski programnpr. I/O instrukcije
Interrupti / programski prekidiOmogućavanje vraćanja kontrole nad izvršavanim programom uslijed mrtvih petlji, pogrešaka, ...
Višeprogramski “batch” sustavi
I/O uređaji vrlo sporiKada jedan program čeka I/O drugi može koristiti CPU
Jedan program...
Multiprogramiranje sa dva programa
Multiprogramiranje sa tri programa
Sustavi vremenske razdiobe / TImesharing systems
Omogućava korisniku direktnu interakciju sa računalomMultiprogramiranje omogućava većem broju korisnika interakciju sa računalom
Scheduling
To je ključ multiprogramiranjaDugoročno SrednjoročnoKratkoročnoI/O
Long Term Scheduling
Određuje koji programi su prijavljeni za procesiranjenpr. upravljanje slobodom multiprogramingaJednom kada je program stavljen na procesnu listu tada on postaje proces/posao kratkoročnog schedulera(ili ga se zamijeni za posao koji je srednjoročni)
Medium Term Scheduling
Dio funkciji zamjene...uobičajeno je temeljen na potrebama za upravljanjem multiprogramskih sustavaAko nema virtualne memorije tada srednjoročni scheduling postaje problem
Short Term Scheduler
Ima funkciju dispečeraTu spadaju poslovi fine gradacije u smislu koji će posao biti slijedeće na redunpr. koji će posao moći rabiti procesor u slijedećem vremenskom prozoru koji dolazi / time slot-u
Procesna stanja
Blok procesne kontrole
IdentifikatorStanjePrioritetProgramski brojačMemorijski pokazivačKonetkstualni podaciI/O statusInformacije o korisničkim accountima
Ključni elementi jednog O/S
Procesni Scheduling
Process
Request
EndLong-TermQueue
Short-Term
QueueCPU
I/O QueueI/O
I/O QueueI/O
I/O QueueI/O
Memorijski management
Uni-programMemorija je podijeljena na dva dijelaJedan dio za O/Sdrugi za program koji se izvršava
Multi-program“Korisnički” dio je podijeljen na manje dijelove i dijeljen je između aktivnih procesa
Mehanizam zamjene...
Problem: I/O jedinice su tako spore u suporedbiprema CPU-u čak i u višeprogramskimsustavima tako da je CPU najveći dio vremena besposlenRješenje:
Povećanje glavne memorije⌧Skupo⌧S vremenom dovodi do povećanja programa u smislu
zauzeća memorijeZamjena
Što je to zamjena?
Poslovi koji su dugoročno spremljeni na HDD – swap fileProces se “zamjenjuje” iz HDD-a u memoriju kad bude slobodnog mjestaKada se proces završi, “miče” se iz glavne memorijeAko niti jedan od procesa u gl. memoriji nije završio sa radom (npr.sve I/O jedinice su trenutno zauzete)
Zamjenjuje/postavlja se blokirani proces sa poslom na listi za čekanjeUčitava se i pokreče proces koji nije blokiran ili je to posve novi procesali proces zamjene poslova je ustvari I/O operacija budući se swap lista nalazi na HDD-u
Particioniranje
Dijeljenje memorije na dijelove u svrhu njene rezervacije za procese (uključujući i procese operativnog sustava)particije fiksne veličine
ne moraju biti jednake veličineProces se sprema na particiju najmanje raspoložive veličine u koju može statitu se može pojaviti određena količina “izgubljene” memorije zbog particija koje su nešto veće nego li to proces zahtijevaOvo se rješava particioniranjem memorije prema veličini procesa
Fiksnoparticioniranje
Varijabilno particioniranje (1)
Rezervira se samo ona količina memorije koliko to zahtijeva procesTo dovodi do pojave rupe na kraju memorije koja može biti premala da bi se iskoristila
samo jedna mala količina neiskoristive memorije na kraju je ipak manje nego kod fiksnog particioniranja i njenog viška memeorije
Kada su svi procesi blokirani tada se oni zamjenjuju sa novima koji nisu blokiranjiNew process may be smaller than swapped out processOpet imamo pojavu mem. rupe
Varijabilno particioniranje (2)
Sa vremenom će se pojaviti puno “viška”memorije zbog pojave rupa u particioniranju -> fragmentacijaRješenja:
Koalicioniranje – Spajanje susjednih memorijskih rupa u jednu velikuKompaktiranje – Sa vremena na vrijeme proskenirase cijela memorija i sve memorijske rupe se relocirajuu jedan slobodni memorijski blok/particiju
Efekt dinamičkog particioniranja
Relokacija
Nema garancije da će se proces uvijek učitati u isti dio memorijeInstrukcije u sebi sadrže i adrese
Pozicije podatakaAdrese za zahvat instrukcija (grananje)
Logičko adresiranje – relativno adresiranje u odnosu na početak programaFizičko adresiranje – egzaktno adresiranje memorije
Ustraničavanje memorije - Paging
Podjela memorije na dijelove jednake veličine, male djeliće – stranice, memorijske okvirePodjela programa na male djelove jednake veličine - straniceRezerviranje određenog broja stranica memorije prema veličini procesaO/S održava i osvježava ovu listi i vodi računa o broju slobodnih stranica memorijeProcesi ne zahtijevaju stranice memorije koje su logički i fizički poredane jedna za drugom
Logičko i fizičko adresiranje –Paging/memorijsko ustraničenje
Virtualna memorija
Zahtijeva ustraničenjeNe zahtijeva sve stranice procesa u memorijiUčitava samo ne stranice procesa koje su trenutno potrebne
Greška “stranice”ako tražena stranica procesa nije u memorijiO/S mora učitati traženu stranicu u memorijiMože se pojaviti i potreba da “zamjeni”stranicu procesa u svrhu oslobođenja memorijeStranice se izbacuju iz memorije na temelju povijesti njihovog korištenja – manje korištene stranice procesa prije će biti izbačene iz memorije nego koje se češće upotrjebljavaju
Thrashing
Previše procesa u premalo memorije...O/S prvodi puno vremena u “swap”-iranju iz HDD-a u gl. memoriju i obratnoJako malo vremena pstaje za koristan radDisk je stalno aktivanRješenja
Dobar algoritam za izmjenu i zamjenu stranica u gl. memorijiSmanjenje broja aktivnih procesaPovećanje kapaciteta glavne memorije
Dodatno...
Ne trebamo baš sve procese u memoriji, zar ne?“Stranice” procesa možemo učitavati po potrebitako da na kraju možemo u memoriju učitavatiprocese koji su relativno veliki jed imamo mjetauklanjanjem stranica procesa koji na ne trebaju ili njihovih dijelovaGlavna memorija zove se “stvarna” memorijaTako da korisnik “stvarnu” i “virtualnu”memoriju vidi kao jednu veliku memoriju –stvarna + virtualna = velika memorija
Struktura ustroja memorijskog ustraničavanja
Segmentacija
Ustraničenje obično nije vidljivo krajnjem korisniku/programeruSegmentacija to jeUobičajeno je da su program a i podaci razbacani po različitim memorijskim segmentimaMože postojati veliki broj zasebnih memorijskih segmenata kako za programe tako i za podatke
Prednosti segmentacije
Pojednostavljeno upravljanje strukturama podataka koje stalno ratu po volumenu podatakaOmogućava da se program izmjenjuje i rekompiliraneovisno o drugim programima, bez ponovnog učitavanjaNa ovaj način omogućeno je dijeljenje podataka među procesima a i samih programaisto tako omogućava i zaštitu od pristupa drugih programaneki sustavi čak kombiniraju segmentaciju i ustraničavanja
po ustroju su to dva vrlo slična procesa sa istom namjerom
Organizacija i arhitektura računala
Poglavlje 8Računalna aritmetika
Aritmetiko-logička jedinica
Radi razne izračuneSve ostale jedinice u računalu su tamo da služe ALU jediniciRadi samo sa cijelim brojevimaMože raditi i sa brojevima sa pomićnim zarezom – FloatPoint NumbersMože biti kao zasebna jedinica – matematički koprocesorMože biti kao odvojena jedinica – fizički odvojeni FPU (486DX +)
ALU Ulazi i zlazi
Prezentacija cijelog broja
Sa pomoću 0 i 1 se može prikazati bilo koji brojSamo pozitivni brojevi – “čisti” binarni format
npr. 146=10010010
nema preznaka “-” – negativnih brojevanema decimalne točkemogućnost predznakadvostruki komplement
Predznak
MSB bit rezerviran za predznak0 znači pozitivan broj1 znači negativan broj+18 = 00010010-18 = 10010010Problemi:
Treba voditi računa i o predznaku i o apsolutnoj vrijednosti broja u aitmetičkim operacijamadva načina zapisivanja broja nula (+0 i -0)
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 0Jednostavnija matematikaOperacija negacije je vrlo jednostavna
3 = 00000011Booleov komplement 11111100Dodati 1 LSB bitu 11111101
Geometrijski prikaz dvostrukog komplementa cijelog broja
Specijalni slučaj negacije - 1
0 = 00000000Bitwise not 11111111Add 1 LSB bitu +1Rezultat 1 00000000Overflow se ignorira, tako da imamo:- 0 = 0 √
Specijalni slučaj negacije - 2
-128 = 10000000bitwise not 01111111Add 1 LSB bitu +1Rezultat 10000000Dobijemo:-(-128) = -128 XObratiti pažnju na MSB bit (bit predznaka)a treba se promijeniti tijekom negacije
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 00010010Negativni brojevi pakirani sa vodećim jedinicama - leading ones-18 = 10010010-18 = 11111111 10010010npr. pakiranje sa MSB bitom (predznakom)
Zbrajanje i oduzimanje
Normalno binarno zbrajanjeGleda se overflow bit u slučaju preljeva
Operacija oduzimanja svodi se na operaciju zbrajanja pozitivnog broja a i negativnog broja b
a - b = a + (-b)
tako da samo trebamo operaciju zbrajanja i jedinicu za negaciju/komplement
Hardwersko zbrajanje i oduzimanje
Množenje
To je kompleksna operacijaRadi se na način da se za svaki bit/znamenku izračunava samo dio umnoška i na kraju dijelovi umnoška se zbrajaju
slično kao i množenje u decimalnom sustavu –metoda potpisivanja množaka
Primjer množenja
1011 Multiplikand (11 dec)x 1101 Multiplikator (13 dec)
1011 djelomični umnožak0000 Važno: ako je multiplikatorski bit 1 onda samo kopiraj
1011 multiplikand1011 inače nula10001111 umnožak (143 dec)Važno: Rezultat je dvostruke duljine nego li su to operandi
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 pozitivnimnože se normalnim postupkomako su predznaci operanada različiti tada je rezultat negativan broj
Rješenje 2Booth-ov algoritam
Booth-ov algoritam
Primjer Booth-ovog algoritma
Dijeljenje
još složenije od množenjaNegativni brojevi stvarno mogu biti problem!Postupak se temelji na postupcima dugotrajnog i zahtjevnog djeljenja
001111
Djeljenje binarnog broja bez predznaka
1011
00001101
100100111011
0011101011
1011100
Quotient
Dividend
Remainder
PartialRemainders
Divisor
Realni brojevi
Brojevi sa decimalnom točkomMogu se izvesti u gormi čistog binarnog broja
1001.1010 = 24 + 20 +2-1 + 2-3 =9.625
gdje je tu decimalna točka?Fiksna decimalna točka?
Vrlo ograničeni brojevni skup
Pomična decimalna točka?Kako je postavljena i gdje je ta točka?
Brojevi sa pomičnim zarezom
+/- .significand x 2exponent
Točka je zapravo fiksirana između znaka predznaka i ostatka brojaEksponent otkriva područje potencije prikazanog broja
Sign
bit
BiasedExponent
Significand or Mantissa
Primjer broja sa pomičnim zarezom
Predznaci za float-brojeve
Mantissa je pohranjena u formatu dvostrukog komplementaKako je zapisan i što znači eksponentni dio
npr. eksponent (bias) 128 znači8 bit eksponentčija vrijednost može biti od 0-255i oduzima mu se 128 da bi se dobila korektna vrijednost eksponentapodručje vrijednosti je -128 do +127
Normalizacija
FP su uobičajeno normaliziraninpr. eksponent je tako podešen da je MSB mantisejedinica (1)Budući da je on uvijek 1, tada taj bit nije potrebno sprematiprimjer; znanstveni način zapisivanja brojeva je takav da je normaliziran na način da se uvijek dobije broj koji ispred zareza ima samo jednu brojku
npr. 3.123 x 103)
Područje FP brojeva
Za 32 bitne brojeve to je:8 bit eksponent+/- 2256 ≈ 1.5 x 1077
Točnost je...ovosi o promjenjivosti LSB-a mantisse23 bitna mantissa 2-23 ≈ 1.2 x 10-7
oko 6 decimalnih mjesta
Područja korektnog prikaza brojeva
IEEE 754
Standard za FP pohranu/zapis brojeva32 i 64 bitni standard8 i 11 bitni eksponentProšireni format format (i mantissa i eksponent)
FP aritmetika +/-
Provjera prisutnosti nule (broj 0)Podešavanje eksponenataZbrajanje ili oduzimanjeNormalizacija rezultata
FP aritmetika x/÷
Provjera prisutnosti nulezbrajanje/oduzimanje eksponenatamnoženje/dijeljenje signifikanada – paziti na predznakNormalizacijaZaokruživanjeSvi rezultati trebaju biti dvostruke duljine nego li su to operandi/signifikandi
FPMnoženje
FPDijeljenje
Organizacija i arhitektura računala
Poglavlje 9Instrukcijski skup:
Karakteristike i funkcije
Što je to instrukcijski skup?
To je skup instrukcija koje CPU razumije i prema njima radi određene radnjeStrojni kôdbinarni k ôdobično je vidljiv prilikom asemblerskogprogramiranja
Elementi jedne instrukcije
Operacijski kôd (Op code)napravi to i to...
Izvorni operandNapravi nešto od ovoga...
Rezultantni operandSpremi rezultat ovdje...
Slijedeća instrukcija je...Kad si završio sa ovom instrukcijom, idi na slijedeću tu i tu instrukciju
Gdje su svi ti silni operandi, gdje završe, što se sa njima događa?
Ako se sada to pitate... onda ste puno toga prije ovog predavanja propustili ☺pa... u glavnoj memoriji, virtualnoj memoriji, cacheu,...CPU registrimaI/O jedinicama
Način zapisivanja/predstavljanja instrukcije
U strojnom kôdu svaka instrukcija ima jedinstveni binarni zapisZa lakšu prezentaciju čovjeku kao programeru instrukcije su prikazane simbolički
npr. ADD, SUB, LOAD
Operandi također ovako mogu biti prikazaniADD A,B
Vrste instrukcija
procesiranje podatakapohrana podataka (glavna memorija)Premještanje podataka (I/O)Kontrola tijeka programa
Načini adresiranja (a)
3 adreseOperand 1, Operand 2, Rezultata = b + c;Može biti i 4. adresa - slijedeća instrukcija (obićno je to implicitno izraženo)ali nije uobičajenoPotrebne su vrlo velike riječi da bi se takva instrukcija mogla pohraniti
Načini adresiranja (b)
2 adreseJedna adresa je i za operand i za rezultata = a + bRedukcija duljine instrukcijeTraži još dodatne podoperacije – dodatan posao⌧Privremeni spremnik za čuvanje privremenih rezultata
Načini adresiranja (c)
1 adresaimplicitna druga adresaobično je to nekakav registar (accumulator)oubičajeni način adresiranja kod prvotnih računala
Načini adresiranja (d)
0 (zero) adresasve adrese su implicitnekoristi se stog/stacknpr. push a
push baddpop c
c = a + b
Koliko i koji način adresiranja?
Više adresa u instrukcijiSložene (moćne?) instrukcijeViše registara⌧operacije među registrima su najbrže operacije
Manje instrukcija po programu – kraći i manji programi
Manje adresa u instrukcijiManje složene (i moćne?) instrukcijeViše instrukcija po programuali i brži instrukcijski ciklus zahvata/izvršenja takvih instrukcija
Što odabrati, kako dizajnirati sustav (1)
Repertoar operacijakoliko ops?kako to one mogu obaviti?Koliko su one kompleksne?
Vrsta podatakaInstrukcijski formati
Duljina op code poljaBroj adresa/način adresiranja
Što odabrati, kako dizajnirati sustav (2)
RegistriBroj raspoloživih CPU registaraKoje se operacije mogu izvoditi na kojim registrima?
Načini adresiranja…
RISC protiv CISC-a
Tipovi operanada
AdreseBrojevi
Integer/floating point
Znakovi/CharactersASCII
Logički podaci/Logical DataBitovi ili zastavice/flags
Tipovi podataka kod Pentuim-a
8 bit Byte16 bit word32 bit double word64 bit quad wordAdresiranje se izvodi putem 8-bitne jedinice32 bit double word se čita na adresama djeljivim sa 4 (32bit=4x1byte)
Specifični tipovi podataka
Generalno – čisti binarni podaciInteger - single binary valueOrdinal - unsigned integerNepakirani BCD - One znamenka po byteuPakirani BCD - 2 BCD znamenke po byteuPokazivači blizine - 32 bitni offset unutar nekog segmentaBit poljeByte StringFloating Point
Vrste operacija
Prijenos podatakaArtimetikaLogičke operacijePretvorbe/konverzijaI/OSistemsko upravljanjePrijenos ovlasti upravljanja
Prijenos podataka
Specificira/određujeIzvorOdredištekoličinu podataka za prijenos
Mogu postojati različite instrukcije za različite operacije prijenosa podataka
npr. IBM 370
ili jedna instrukcija sa različitim adresiranjemnpr. VAX
Aritmetika
Add, Subtract, Multiply, DivideSigned IntegerFloating point ?maže sadržavati
Increment (a++)Decrement (a--)Negate (-a)
Logičke operacije
Operacije na razini jednog bita – bit-po-bitAND, 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 jedinicaili se mogu koristiti instrukcije za prijenos podataka – ako je I/O memorijski mapiranaili putem odvojenog DMA kontrolera
Operacije sistemske kontrole
Privilegirane instrukcijeCPU mora biti u posebnom stanju
Ring 0 kod 80386+Kernel mode
Koriste se kod O/S-a
Operacije prijenosa ovlasti upravljanja
Granjanjenpr. granaj se na x ako je rezultat nula
Preskok/skoknpr. inkrement i skok ako je nulaISZ Register1granaj xxxxADD A
pozivi potprogramapoziv interrupt potprograma
Poredak byte-ova
Kojim redoslijedom isčitavamo byteove broja ako on zauzima više od jednog bytea?npr. broj može biti pohranjen u hex-a formatu i zauzimati 4-8 byteova12345678 može se pohraniti 4x8bit na slijedeći način...
Poredak byte-ova (primjer)
Adresa Value (1) Value(2)184 12 78185 34 56186 56 34186 78 12
npr. čitati odozgo prema dolje ili obratno?
Nazivi poredaka byte-ova
Ovaj problem se naziva “Endian”Sustav zapisivanja lijevo (Value-1) ina na najnižoj adresi najmanje značajan, LSB, byteOvaj način se zove – BIG-ENDIANDesni sustav ima LSB na najvišoj adresi ion se zove – LITTLE-ENDIAN
Standardi... što je standard?
Pentium (80x86), VAX su little-endianIBM 370, Motorola 680x0 (Mac), i većina RISC su big-endianInternet je big-endian
što čini pisanje internet programa na PC-u još više problematičnim!WinSock omogućava i pruža “htoi” i “itoh” (Host to Internet & Internet to Host) funkcije za konverziju