Arhitektura Računara
1. sedmica
Valentina Salapura
Saša Salapura
Predavanja dostupna na:
www.blc.edu.ba
[prilagodjeno od predavanja D. Patterson, M. J. Irwin]
BLC - Arhitektura Računara
© 2011 Valentina Salapura
1
Uvod
‰
Naziv predmeta: Arhitektura Računara
‰
Semestar: 1
‰
Fond časova: 2 + 2
‰
Broj ESPB bodova: 6
BLC - Arhitektura Računara
© 2011 Valentina Salapura
2
Nastavnici
‰
‰
Predavanja:
O
Prof. Dr. Valentina Salapura
O
[email protected]
O
Konsultacije e-mailom
Vježbe
O
Mag. Dipl. Ing. Saša Salapura
O
[email protected]
O
Konsultacije poslije nastave, e-mailom i po dogovoru
BLC - Arhitektura Računara
© 2011 Valentina Salapura
3
Logistika Nastave
‰
Predavanja
O
Nastavni materijal
O
Dodatna literatura – knjige
- Computer Organization and Design
- D. Patterson & J. Hennessy
‰
O
Internet, wikipedia
O
Pitanja, sugestije, zanimanja – e-mail
Vježbe
O
‰
Kontinuiran rad, bodovi za svaku napravljenu vježbu
Seminarski rad
BLC - Arhitektura Računara
© 2011 Valentina Salapura
4
Ocjenjivanje
‰
Ocjenu čine
O
1. parcijanli ispit
~25%
- sredinom semestra
O
2. parcijanli ispit
~25%
- krajem semestra
O
Vježbe
~30%
- bodovi dobijeni tokom svake vježbe
O
Seminarski rad
~20%
O
Aktivno sudjelovanje u nastavi
~10%
- Kroz prisustvo vježbama
O
Maksimum – 110%
prolaz od 51%, 7 od 61%, 8 od 71%, 9 od 81%, 10 od 91%
O
Završni usmeni ispit
- samo za popravku ocjene
‰
Fokus na kontinuiran rad tokom semestra
BLC - Arhitektura Računara
© 2011 Valentina Salapura
5
Šta da Očekujete od Kursa?
‰
Da naučite osnovne koncepte i pojmove iz arhitekture
računara
‰
Da se upoznate sa glavnim komponentama računara,
kako komponente rade zajedno pri izvršenju
programa, kako su dizajnirane
‰
Da razumijete osnovne koncepte arhitekture računara i
kako oni utiču na performancu računara i aplikacija
‰
Da razumijete opis današnjih najnovijih računara, i
ocjenite njihovu performancu
BLC - Arhitektura Računara
© 2011 Valentina Salapura
6
Glavne Nastavne Jedinice
‰
Organizacija računarskog sistema, MIPS arhitektura
O
‰
Funkcionalne jedinice i registri
MIPS instrukcije
O
Kodiranje, aritmetičke i logičke instrukcije, skakanje i
grananje, load i store, specijalne instrukcije
‰
Instrukcije za aritmetiku fiksnog i pomičnog zareza
‰
Memorija
O
‰
Protočna organizacija računara
O
‰
Organizacija memorije, priručna memorija
Hazardi i spekulacija
Paralelni procesori i trendovi
BLC - Arhitektura Računara
© 2011 Valentina Salapura
7
Evolucija Računara
‰
Kad je izumljen prvi tranzistor?
BLC - Arhitektura Računara
© 2011 Valentina Salapura
8
Evolucija Računara
‰
Kad je izumljen prvi tranzistor?
O Moderna
elektronika počela je sa izumom
bipolarnog tranzistora 1947 od Bardeen et.al u Bell
Laboratoriji
BLC - Arhitektura Računara
© 2011 Valentina Salapura
9
Evolucija Računara
‰ Kad
je izumljeno prvo integrisano kolo (IC integrated circuit)?
BLC - Arhitektura Računara
© 2011 Valentina Salapura
10
Evolucija Računara
‰ Kad
je izumljeno prvo integrisano kolo (IC integrated circuit)?
O 1958
Jack Kilby iz Texas Instruments je uspješno
(ručno) spojio nekoliko tranzistora, kapaciteta i
otpornika na istoj podlozi, i integralna kola su bila
rođena
BLC - Arhitektura Računara
© 2011 Valentina Salapura
11
Razvoj Procesne Tehnologije
Godina
Tehnologija
Relativna Performanca/
Cijena Jedinice
1951
Vakumske cijevi
1
1965
Tranzistor
35
1975
Integrisana kola (IC)
900
1995
Very Large Scale IC (VLSI) 2,400,000
2005
Submicron VLSI
6,200,000,000
Kako bi bilo kad bi tehnologija u transportu
napredovala istom brzinom?
Mogli bi preći Evropu za par sekundi za 1 KM
BLC - Arhitektura Računara
© 2011 Valentina Salapura
12
Skaliranje Tehnologije
‰
Scaled Device
Voltage, V / α
WIRING
tox/α
W/α
GATE
n+
source
n+
drain
L/α
p substrate, doping α*NA
xd/α
Skaliranje poluprovodnika
O
Dennardova teorija skaliranja
O
Povecava gustinu računanja
O
Omogućuje veću brzinu
računanja
Source: Dennard et al., JSSC 1974.
Current Gen.
CMOS
+1 Generations
CMOS
+2 Generations
CMOS
room to add
function
core
core
core
BLC - Arhitektura Računara
© 2011 Valentina Salapura
13
Mooreov Zakon
‰
1965, Gordon Moore iz Intela
je predvidio da se broj
tranzistora koji se moze
integrisati na čipu udvostruči
svake dvije godine
Courtesy, Intel ®
BLC - Arhitektura Računara
© 2011 Valentina Salapura
14
Evolucija Računara
Intel 4004 (1971)
2,300 tranzistora
3 mm2, 10μm
0.2 MHz
2mW
Intel 8088 (1978)
29,000 tranzistora
20 mm2, 3μm
2 MHz
X mW
Intel Pentium IV (2001)
42,000,000 tranzistora
271 mm2, 180 nm
1.7 GHz
64 mW
Za 30 godina, računari su postali 8500x brzi, čipovi 90 veći,
tranzisori 55x manji, čipovi sa 18,000x više T, i koriste 32,000x više snage
BLC - Arhitektura Računara
© 2011 Valentina Salapura
15
Napredak Tehnologije
Visoko-volumenska
proizvodnja
2004
2006
2008
2010
2012
2014
2016
2018
Tehnologija (nm)
90
65
45
32
22
16
11
8
Faktor integracije
2
4
8
16
32
64
128
256
BLC - Arhitektura Računara
© 2011 Valentina Salapura
16
Porast Broja Tranzistora po čipu
BLC - Arhitektura Računara
© 2011 Valentina Salapura
17
Performanca Procesora tokom Godina
BLC - Arhitektura Računara
Zadnjih godina porast je
usporio
© 2011 Valentina Salapura
18
Napredak Tehnologije
Šta se
dešava?
Brzina računara
je zaustavljena
“zidom” snage!
BLC - Arhitektura Računara
© 2011 Valentina Salapura
19
Malo Fizike i Matematike…
‰
‰
Aktivna snaga P je fCV2
O
C je kapacitet
O
V je napon
O
f je frekvencija (proporcionalna sa V)
Pretpostavimo da je za jedan procesor
C=10nF, V=1.2V; f=2GHz
Snaga P= f CV2 = 28.8 W
‰
Povećajmo napon V na 1.3V da povećamo frekvenciju f na
2.4 GHz
P = 40.6 W
‰
Stavimo dva procesora sa naponom 1.1 V i frekvencijom
f=1.6GHz
P = 38.7 W
BLC - Arhitektura Računara
© 2011 Valentina Salapura
20
Gdje su Računari ?
BLC - Arhitektura Računara
© 2011 Valentina Salapura
21
Glavne Komponente Računara
‰
Pet glavnih komponenti računara - ulaz (miš,
tastatura), izlaz (monitor, printer), memorija (priručuna
memorija (SRAM), glavna memorija (DRAM), disk,
CD/DVD), put podataka i kontrola
Računar
‰
Put podataka
+ kontrola =
procesor
(centralna
procesna
jedinica
(CPU))
Kontrola
Ulaz
Memorija
Put
Podataka
Procesor
BLC - Arhitektura Računara
Izlaz
© 2011 Valentina Salapura
22
Organizacija i Dizajn Računara
‰
Kako računar radi
‰
Koji računar odabrati za studiranje?
‰
O
Različite vrste: embedded, laptop, desktop, server
O
Različite upotrebe: automobili, grafika, finansije, nauka,…
O
Različiti proizvođači: Intel, AMD, IBM, HP, Apple, Sony, …
O
Različite tehnologije, različite cijene, performance i snage !
Najbolji pristup učenju:
O
Fokus na specifični računar, razumijevanje kako radi
O
Razumijeti opšte principe i istorijske trendove
BLC - Arhitektura Računara
© 2011 Valentina Salapura
23
Porast Prodaje Računara (Ugrađenih Računara)
BLC - Arhitektura Računara
© 2011 Valentina Salapura
24
Izazovi u Arhitekturi Računara
‰
Industrija se mijenja brže nego bilo koja druga
industrija
‰
Osnovna pravila se mijenjaju svake godine
‰
O
Novi problemi
O
Nove mogućnosti
O
Novi kompromisi i pravila
Cilj je da se programi izvršavaju brže nego na bilo
kojem drugom računaru
BLC - Arhitektura Računara
© 2011 Valentina Salapura
25
Kraj 1. Lekcije
BLC - Arhitektura Računara
© 2011 Valentina Salapura
26
Izvršenje Programa
Softverska aplikacija
Sistemski softver
Hardware
‰
Sistemski softver
O
Operativni sistem – upravni program koji posreduje između
korisničkog programa i hardvera (npr. Linux, MacOS, Windows)
- Izvršava osnovne operacije ulaza i izlaza
- Dodijeljuje memoriju
- Omogućuje zaštićeno izvršenje više aplikacija
O
Kompajler – prevodi programe pisane u višim programskim
jezicima (npr. C, Java) u instrukcije koje mašina može izvršiti
BLC - Arhitektura Računara
© 2011 Valentina Salapura
27
Izvršenje Programa
‰
Program u višem programskom jeziku (npr. C)
swap (int v[], int k)
(int temp;
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
)
‰
Program u asemblerskom jeziku (for MIPS)
swap:
‰
sll
add
lw
lw
sw
sw
jr
$2, $5, 2
$2, $4, $2
$15, 0($2)
$16, 4($2)
$16, 0($2)
$15, 4($2)
$31
Mašinski (objektni) kod (za MIPS)
000000 00000 00101 0001000010000000
000000 00100 00010 0001000000100000
. . .
BLC - Arhitektura Računara
© 2011 Valentina Salapura
28
Izvršenje Programa
‰
Program u višem programskom jeziku (npr. C)
swap (int v[], int k)
(int temp;
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
)
‰
C kompajler
Program u asemblerskom jeziku (for MIPS)
swap:
‰
one-to-many
sll
add
lw
lw
sw
sw
jr
$2, $5, 2
$2, $4, $2
$15, 0($2)
$16, 4($2)
$16, 0($2)
$15, 4($2)
$31
Mašinski (objektni) kod (za MIPS)
one-to-one
asembler
000000 00000 00101 0001000010000000
000000 00100 00010 0001000000100000
. . .
BLC - Arhitektura Računara
© 2011 Valentina Salapura
29
Prednosti Viših Programskih Jezika ?
‰
Viši programski jezici
‰
Kao rezultat, danas se jako malo programira u
asembleru
BLC - Arhitektura Računara
© 2011 Valentina Salapura
30
Prednosti Viših Programskih Jezika ?
‰
‰
Viši programski jezici
O
Dozvoljavaju programeru da misli u prirodnijem jeziku, i u
jeziku za posebnu namjenu (Fortran za naučno računanje,
Cobol za poslovne aplikacije, Lisp za manipulisanje
simbolima, Java za programiranje veba, …)
O
Poboljšavaju produktivnost programera – razumljiviji kod je
jednostavniji za testiranje i ispravke
O
Poboljšano održavanje koda
O
Dozvoljava programerima da budu nezavisni od računara za
koji pišu program (kompajleri i asembleri prevode programe u
višim programskim jezicima u binarne instrukcije bilo koje
mašine)
O
Kompajleri su jako dobri, mogu proizvesti vrlo efikasan
asemblerski kod optimalan za računar na kojem će biti
izvšavan
Kao rezultat, danas se jako malo programira u
asembleru
BLC - Arhitektura Računara
© 2011 Valentina Salapura
31
Organizacija Računara
‰
Određena je sa
‰
Funkcionalnim jedinicama – mogućnosti i performansa
(Functional Units - FUs)
O
‰
npr., registri, ALU, multiplekseri, memorija, ...
Način kako su FU
povezane
O
Računar
Kontrola
Ulaz
npr., buses
Memorija
Put Podataka
‰
Logika i kako
informacija teče
izmedju FU
Izlaz
Procesor
‰
Instruction Set Architecture (ISA) – skup instrukcija
‰
Register Transfer Level (RTL) opis računara
BLC - Arhitektura Računara
© 2011 Valentina Salapura
32
Glavne Komponente Računara
Periferija
Procesor
Mreža
Kontrola
Put
podataka
BLC - Arhitektura Računara
Memorija
Ulaz
Izlaz
© 2011 Valentina Salapura
33
Obrada Programa
‰
program u višem programskom jeziku (C)
swap (int v[], int k)
. . .
‰
program u asemblerskom jeziku (za MIPS)
swap:
‰
sll
add
lw
lw
sw
sw
jr
$2, $5, 2
$2, $4, $2
$15, 0($2)
$16, 4($2)
$16, 0($2)
$15, 4($2)
$31
mašinski (objektni) kod (za MIPS)
000000
000000
100011
100011
101011
101011
000000
BLC - Arhitektura Računara
00000
00100
00010
00010
00010
00010
11111
C kompajler
00101
00010
01111
10000
10000
01111
00000
asembler
0001000010000000
0001000000100000
0000000000000000
0000000000000100
0000000000000000
0000000000000100
0000000000001000
© 2011 Valentina Salapura
34
Obrada Programa
‰
program u višem programskom jeziku (C)
swap (int v[], int k)
. . .
‰
program u asemblerskom jeziku (za MIPS)
swap:
‰
sll
add
lw
lw
sw
sw
jr
$2, $5, 2
$2, $4, $2
$15, 0($2)
$16, 4($2)
$16, 0($2)
$15, 4($2)
$31
mašinski (objektni) kod (za MIPS)
000000
000000
100011
100011
101011
101011
000000
BLC - Arhitektura Računara
00000
00100
00010
00010
00010
00010
11111
C kompajler
00101
00010
01111
10000
10000
01111
00000
asembler
0001000010000000
0001000000100000
0000000000000000
0000000000000100
0000000000000000
0000000000000100
0000000000001000
© 2011 Valentina Salapura
35
Ulaz Učitava Objektni Kod
000000
000000
100011
100011
101011
101011
000000
Procesor
00000
00100
00010
00010
00010
00010
11111
00101
00010
01111
10000
10000
01111
00000
0001000010000000
0001000000100000
0000000000000000
0000000000000100
0000000000000000
0000000000000100
0000000000001000
Periferija
Mreža
Kontrola
Put
podataka
BLC - Arhitektura Računara
Memorija
Ulaz
Izlaz
© 2011 Valentina Salapura
36
Objektni Kod je Spremljen u Memoriju
Memorija
Procesor
Kontrola
Put
podataka
BLC - Arhitektura Računara
000000
000000
100011
100011
101011
101011
000000
00000
00100
00010
00010
00010
00010
11111
00101
00010
01111
10000
10000
01111
00000
0001000010000000
0001000000100000
0000000000000000
0000000000000100
0000000000000000
0000000000000100
0000000000001000
Periferija
Mreža
Ulaz
Izlaz
© 2011 Valentina Salapura
37
Procesor Učitava Instrukciju
Procesor učitava (dohvati, fetch) instrukciju iz memorije
Memorija
Procesor
Kontrola
Put
podataka
BLC - Arhitektura Računara
000000
000000
100011
100011
101011
101011
000000
00000
00100
00010
00010
00010
00010
11111
00101
00010
01111
10000
10000
01111
00000
0001000010000000
0001000000100000
0000000000000000
0000000000000100
0000000000000000
0000000000000100
0000000000001000
Periferija
Mreža
Ulaz
Izlaz
© 2011 Valentina Salapura
38
Kontrola Dekodira Instrukciju
Kontrola dekodira instrukciju da utvrdi šta da izvrši
Procesor
Periferija
Mreža
Kontrola
000000 00100 00010 0001000000100000
Memorija
Ulaz
Put podataka
Izlaz
BLC - Arhitektura Računara
© 2011 Valentina Salapura
39
Put Podataka Izvršava Instrukciju
Put podataka izvršava instrukciju pod upravom
kontrole
Procesor
Periferija
Mreža
Kontrola
000000 00100 00010 0001000000100000
Memorija
Ulaz
Put podataka
contents Reg #4 ADD contents Reg #2
results put in Reg #2
BLC - Arhitektura Računara
Izlaz
© 2011 Valentina Salapura
40
Šta je Slijedeće?
Procesor
Kontrola
Put
podataka
BLC - Arhitektura Računara
Memorija
000000
000000
100011
100011
101011
101011
000000
00000
00100
00010
00010
00010
00010
11111
00101
00010
01111
10000
10000
01111
00000
0001000010000000
0001000000100000
0000000000000000
0000000000000100
0000000000000000
0000000000000100
0000000000001000
Periferija
Mreža
Ulaz
Izlaz
© 2011 Valentina Salapura
41
Šta je Slijedeće?
Procesor učitava slijedeću instrukciju iz memorije
Procesor
Kontrola
Put
podataka
Memorija
000000
000000
100011
100011
101011
101011
000000
00000
00100
00010
00010
00010
00010
11111
00101
00010
01111
10000
10000
01111
00000
0001000010000000
0001000000100000
0000000000000000
0000000000000100
0000000000000000
0000000000000100
0000000000001000
Periferija
Mreža
Ulaz
Izlaz
Fetch
Exec
BLC - Arhitektura Računara
Decode
Koju memorijsku lokaciju
treba učitati kao slijedeću?
© 2011 Valentina Salapura
42
Organizacija Procesora
‰
Kontrola treba imati logiku da
‰
Put podataka treba imati logiku da
BLC - Arhitektura Računara
© 2011 Valentina Salapura
43
Organizacija Procesora
‰
‰
Kontrola treba imati logiku da
O
Odluči koje instrukcija je slijedeća, i učita je iz memorije
O
Dekodira instrukciju
O
Generiše signale koji kontrolišu kako informacija teče između
komponenti u putu podataka
O
Kontroliše koje operacije će izvrsiti funkcionalne jedinice puta
podataka
Put podataka treba imati logiku da
O
Izvrši instrukciju – aktivira funkcionalne jedinice (npr. sabiralo)
i memorijske lokacije (tj. registri)
O
Spoji funkcionalne jedinice tako da instrukcije mogu biti
izvršene kako treba
O
Učita podatke iz memorije, i spremi podatke u memoriju
Sa koje lokacije treba učitati i gdje pohraniti podatke?
BLC - Arhitektura Računara
© 2011 Valentina Salapura
44
Izlazni Podaci su Pohranjeni u Memoriji
Po završetku programa, rezultat je pohranjen u
memoriju
Procesor
Memorija
Periferija
Mreža
Kontrola
Put
Podataka
BLC - Arhitektura Računara
Ulaz
00000100010100000000000000000000
00000000010011110000000000000100
00000011111000000000000000001000
Izlaz
© 2011 Valentina Salapura
45
Periferija za Izlaz Iščitava Podatke
Procesor
Periferija
Mreža
Kontrola
Put
Podataka
Memorija
Ulaz
Izlaz
00000100010100000000000000000000
00000000010011110000000000000100
00000011111000000000000000001000
BLC - Arhitektura Računara
© 2011 Valentina Salapura
46
Instruction Set Architecture (ISA)
Arhitektura Skupa Instrukcija
software
instruction set architecture
hardware
ISA je opis interfejsa između softvera i
hardvera
BLC - Arhitektura Računara
© 2011 Valentina Salapura
47
Različiti Skupovi Instrukcija (ISA)
‰
Alpha AXP
‰
Intel 80x86/pentium
‰
VAX
‰
MIPS
‰
SPARC
‰
IBM 360
‰
Intel IA-64 (Itanium)
‰
PowerPC
BLC - Arhitektura Računara
© 2011 Valentina Salapura
48
MIPS ISA
Vrste Instrukcija
‰
O
Load/Store
O
Aritmetičko-logičke
O
Skakanje i Grananje
O
Pomičnog Zareza
Registri
R0 - R31
- koprocesor
O
Upravljanje Memorijom
PC
HI
O
Specijalne
LO
3 formata instrukcija, svi formati koriste 32 bita
‰
R
OP
rs
rt
I
OP
rs
rt
J
OP
BLC - Arhitektura Računara
rd
sa
funkc.
konstanta
cilj skoka
© 2011 Valentina Salapura
49
Kako ovi Dijelovi čine Cjelinu?
Aplikacije
Operativni
Sistem
Skup Instrukcija
Memorija
Kompajler
Firmware
Procesor
I/O
Mreža
Put podataka & Kontrola
Digitalni Dizajn
Elektronska Kola
‰
Koordinacija puno različitih nivoa apstrakcije
‰
Uz brzu promjenu komponenti
‰
Dizajn, mjerenje i ocjena
BLC - Arhitektura Računara
© 2011 Valentina Salapura
50
Zaključak
‰
Sve komponente računara pripadaju u jednu od pet
kategorija
‰
Skup instrukcija (ISA) definiše kako softver smije
koristiti računar
‰
Mnogo vrlo razlicitih računara mogu koristiti istu ISA-u
‰
Vrlo brzi softver zahtijeva detaljno razumijevanje
računara na kojem je izvršavan
BLC - Arhitektura Računara
© 2011 Valentina Salapura
51
Kraj 2. Lekcije
BLC - Arhitektura Računara
© 2011 Valentina Salapura
52
Download

Arhitektura Računara 1. sedmica