Upload
trinhngoc
View
245
Download
4
Embed Size (px)
Citation preview
BLC - Arhitektura Računara © 2011 Valentina Salapura 1
Arhitektura Računara
1. sedmica
Valentina SalapuraSaša Salapura
Predavanja dostupna na:www.blc.edu.ba
[prilagodjeno od predavanja D. Patterson, M. J. Irwin]
BLC - Arhitektura Računara © 2011 Valentina Salapura 2
UvodNaziv predmeta: Arhitektura RačunaraSemestar: 1 Fond časova: 2 + 2Broj ESPB bodova: 6
BLC - Arhitektura Računara © 2011 Valentina Salapura 3
NastavniciPredavanja:
Prof. Dr. Valentina [email protected] e-mailom
VježbeMag. Dipl. Ing. Saša [email protected] poslije nastave, e-mailom i po dogovoru
BLC - Arhitektura Računara © 2011 Valentina Salapura 4
Logistika NastavePredavanja
Nastavni materijalDodatna literatura – knjige
- Computer Organization and Design- D. Patterson & J. Hennessy
Internet, wikipediaPitanja, sugestije, zanimanja – e-mail
VježbeKontinuiran rad, bodovi za svaku napravljenu vježbu
Seminarski rad
BLC - Arhitektura Računara © 2011 Valentina Salapura 5
OcjenjivanjeOcjenu čine
1. parcijanli ispit ~25%- sredinom semestra
2. parcijanli ispit ~25%- krajem semestra
Vježbe ~30%- bodovi dobijeni tokom svake vježbe
Seminarski rad ~20%Aktivno sudjelovanje u nastavi ~10%
- Kroz prisustvo vježbama
Maksimum – 110% prolaz od 51%, 7 od 61%, 8 od 71%, 9 od 81%, 10 od 91%
Završni usmeni ispit- samo za popravku ocjene
Fokus na kontinuiran rad tokom semestra
BLC - Arhitektura Računara © 2011 Valentina Salapura 6
Šta da Očekujete od Kursa?Da naučite osnovne koncepte i pojmove iz arhitektureračunaraDa se upoznate sa glavnim komponentama računara, kako komponente rade zajedno pri izvršenjuprograma, kako su dizajniraneDa razumijete osnovne koncepte arhitekture računara i kako oni utiču na performancu računara i aplikacijaDa razumijete opis današnjih najnovijih računara, i ocjenite njihovu performancu
BLC - Arhitektura Računara © 2011 Valentina Salapura 7
Glavne Nastavne JediniceOrganizacija računarskog sistema, MIPS arhitektura
Funkcionalne jedinice i registri
MIPS instrukcijeKodiranje, aritmetičke i logičke instrukcije, skakanje i grananje, load i store, specijalne instrukcije
Instrukcije za aritmetiku fiksnog i pomičnog zarezaMemorija
Organizacija memorije, priručna memorija
Protočna organizacija računaraHazardi i spekulacija
Paralelni procesori i trendovi
BLC - Arhitektura Računara © 2011 Valentina Salapura 8
Evolucija Računara
Kad je izumljen prvi tranzistor?
BLC - Arhitektura Računara © 2011 Valentina Salapura 9
Evolucija Računara
Kad je izumljen prvi tranzistor?Moderna elektronika počela je sa izumombipolarnog tranzistora 1947 od Bardeen et.al u Bell Laboratoriji
BLC - Arhitektura Računara © 2011 Valentina Salapura 10
Evolucija Računara
Kad je izumljeno prvo integrisano kolo (IC -integrated circuit)?
BLC - Arhitektura Računara © 2011 Valentina Salapura 11
Evolucija Računara
Kad je izumljeno prvo integrisano kolo (IC -integrated circuit)?
1958 Jack Kilby iz Texas Instruments je uspješno(ručno) spojio nekoliko tranzistora, kapaciteta i otpornika na istoj podlozi, i integralna kola su bilarođena
BLC - Arhitektura Računara © 2011 Valentina Salapura 12
Razvoj Procesne Tehnologije
6,200,000,000Submicron VLSI 20052,400,000Very Large Scale IC (VLSI)1995900Integrisana kola (IC)197535Tranzistor19651Vakumske cijevi1951
Relativna Performanca/ Cijena Jedinice
TehnologijaGodina
Kako bi bilo kad bi tehnologija u transportunapredovala istom brzinom?
Mogli bi preći Evropu za par sekundi za 1 KM
BLC - Arhitektura Računara © 2011 Valentina Salapura 13
Skaliranje Tehnologije
+2 GenerationsCMOS
room to addfunction
corecore
+1 GenerationsCMOS
corecore
Current Gen.CMOS
corecore
p substrate, doping α*NA
Scaled Device
L/α xd/α
GATEn+ source
n+ drain
WIRINGVoltage, V / α
W/αtox/α
Skaliranje poluprovodnikaDennardova teorija skaliranja
Povecava gustinu računanja
Omogućuje veću brzinuračunanja
Source: Dennard et al., JSSC 1974.
BLC - Arhitektura Računara © 2011 Valentina Salapura 14
Mooreov Zakon
Courtesy, Intel ®
1965, Gordon Moore iz Intelaje predvidio da se brojtranzistora koji se mozeintegrisati na čipu udvostručisvake dvije godine
BLC - Arhitektura Računara © 2011 Valentina Salapura 15
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 MHzX mW
Intel Pentium IV (2001)42,000,000 tranzistora
271 mm2, 180 nm 1.7 GHz64 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 16
Napredak Tehnologije
128
11
2016
256643216842Faktor integracije
8162232456590Tehnologija (nm)
2018201420122010200820062004Visoko-volumenskaproizvodnja
BLC - Arhitektura Računara © 2011 Valentina Salapura 17
Porast Broja Tranzistora po čipu
BLC - Arhitektura Računara © 2011 Valentina Salapura 18
Performanca Procesora tokom Godina
Zadnjih godina porast je usporio
BLC - Arhitektura Računara © 2011 Valentina Salapura 19
Napredak Tehnologije
Šta se dešava?
Brzina računaraje zaustavljena“zidom” snage!
BLC - Arhitektura Računara © 2011 Valentina Salapura 20
Malo Fizike i Matematike…Aktivna snaga P je fCV2
C je kapacitetV je naponf je frekvencija (proporcionalna sa V)
Pretpostavimo da je za jedan procesorC=10nF, V=1.2V; f=2GHzSnaga P= f CV2 = 28.8 W
Povećajmo napon V na 1.3V da povećamo frekvenciju f na2.4 GHz
P = 40.6 W
Stavimo dva procesora sa naponom 1.1 V i frekvencijomf=1.6GHz
P = 38.7 W
BLC - Arhitektura Računara © 2011 Valentina Salapura 21
Gdje su Računari ?
BLC - Arhitektura Računara © 2011 Valentina Salapura 22
Glavne Komponente Računara
Memorija
Ulaz
IzlazProcesor
Kontrola
Put Podataka
Računar
Pet glavnih komponenti računara - ulaz (miš, tastatura), izlaz (monitor, printer), memorija (priručunamemorija (SRAM), glavna memorija (DRAM), disk, CD/DVD), put podataka i kontrola
Put podataka+ kontrola =procesor(centralnaprocesnajedinica(CPU))
BLC - Arhitektura Računara © 2011 Valentina Salapura 23
Organizacija i Dizajn RačunaraKako računar radi
Koji računar odabrati za studiranje?Različite vrste: embedded, laptop, desktop, server
Različite upotrebe: automobili, grafika, finansije, nauka,…
Različiti proizvođači: Intel, AMD, IBM, HP, Apple, Sony, …
Različite tehnologije, različite cijene, performance i snage !
Najbolji pristup učenju:Fokus na specifični računar, razumijevanje kako radi
Razumijeti opšte principe i istorijske trendove
BLC - Arhitektura Računara © 2011 Valentina Salapura 24
Porast Prodaje Računara (Ugrađenih Računara)
BLC - Arhitektura Računara © 2011 Valentina Salapura 25
Izazovi u Arhitekturi RačunaraIndustrija se mijenja brže nego bilo koja drugaindustrijaOsnovna pravila se mijenjaju svake godine
Novi problemiNove mogućnostiNovi kompromisi i pravila
Cilj je da se programi izvršavaju brže nego na bilokojem drugom računaru
BLC - Arhitektura Računara © 2011 Valentina Salapura 26
Kraj 1. Lekcije
BLC - Arhitektura Računara © 2011 Valentina Salapura 27
Izvršenje Programa
Sistemski softverOperativni sistem – upravni program koji posreduje izmeđukorisnič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
Kompajler – prevodi programe pisane u višim programskimjezicima (npr. C, Java) u instrukcije koje mašina može izvršiti
Sistemski softver
Softverska aplikacija
Hardware
BLC - Arhitektura Računara © 2011 Valentina Salapura 28
Izvršenje ProgramaProgram 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 $2, $5, 2add $2, $4, $2lw $15, 0($2)lw $16, 4($2)sw $16, 0($2)sw $15, 4($2)jr $31
Mašinski (objektni) kod (za MIPS)000000 00000 00101 0001000010000000000000 00100 00010 0001000000100000. . .
BLC - Arhitektura Računara © 2011 Valentina Salapura 29
Izvršenje ProgramaProgram 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 $2, $5, 2add $2, $4, $2lw $15, 0($2)lw $16, 4($2)sw $16, 0($2)sw $15, 4($2)jr $31
Mašinski (objektni) kod (za MIPS)000000 00000 00101 0001000010000000000000 00100 00010 0001000000100000. . .
C kompajler
asembler
one-to-many
one-to-one
BLC - Arhitektura Računara © 2011 Valentina Salapura 30
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 31
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 manipulisanjesimbolima, Java za programiranje veba, …)Poboljšavaju produktivnost programera – razumljiviji kod je jednostavniji za testiranje i ispravkePoboljšano održavanje kodaDozvoljava programerima da budu nezavisni od računara zakoji pišu program (kompajleri i asembleri prevode programe u višim programskim jezicima u binarne instrukcije bilo kojemašine)Kompajleri su jako dobri, mogu proizvesti vrlo efikasanasemblerski kod optimalan za računar na kojem će bitiizvšavan
Viši programski jezici
Kao rezultat, danas se jako malo programira u asembleru
Prednosti Viših Programskih Jezika ?
BLC - Arhitektura Računara © 2011 Valentina Salapura 32
Organizacija RačunaraOdređena je saFunkcionalnim jedinicama – mogućnosti i performansa(Functional Units - FUs)
npr., registri, ALU, multiplekseri, memorija, ...
Način kako su FUpovezane
npr., buses
Logika i kakoinformacija tečeizmedju FUInstruction Set Architecture (ISA) – skup instrukcijaRegister Transfer Level (RTL) opis računara
Memorija
Ulaz
Izlaz
Procesor
Kontrola
Put Podataka
Računar
BLC - Arhitektura Računara © 2011 Valentina Salapura 33
Glavne Komponente Računara
Procesor
Kontrola
Put podataka
Memorija
Periferija
Ulaz
Izlaz
Mreža
BLC - Arhitektura Računara © 2011 Valentina Salapura 34
Obrada Programa
C kompajler
asembler
program u višem programskom jeziku (C)swap (int v[], int k). . .
program u asemblerskom jeziku (za MIPS)swap: sll $2, $5, 2
add $2, $4, $2lw $15, 0($2)lw $16, 4($2)sw $16, 0($2)sw $15, 4($2)jr $31
mašinski (objektni) kod (za MIPS)000000 00000 00101 0001000010000000000000 00100 00010 0001000000100000100011 00010 01111 0000000000000000100011 00010 10000 0000000000000100101011 00010 10000 0000000000000000101011 00010 01111 0000000000000100000000 11111 00000 0000000000001000
BLC - Arhitektura Računara © 2011 Valentina Salapura 35
Obrada Programa
C kompajler
asembler
program u višem programskom jeziku (C)swap (int v[], int k). . .
program u asemblerskom jeziku (za MIPS)swap: sll $2, $5, 2
add $2, $4, $2lw $15, 0($2)lw $16, 4($2)sw $16, 0($2)sw $15, 4($2)jr $31
mašinski (objektni) kod (za MIPS)000000 00000 00101 0001000010000000000000 00100 00010 0001000000100000100011 00010 01111 0000000000000000100011 00010 10000 0000000000000100101011 00010 10000 0000000000000000101011 00010 01111 0000000000000100000000 11111 00000 0000000000001000
BLC - Arhitektura Računara © 2011 Valentina Salapura 36
Ulaz Učitava Objektni Kod000000 00000 00101 0001000010000000000000 00100 00010 0001000000100000100011 00010 01111 0000000000000000100011 00010 10000 0000000000000100101011 00010 10000 0000000000000000101011 00010 01111 0000000000000100000000 11111 00000 0000000000001000
Procesor
Kontrola
Put podataka
Memorija
Periferija
Ulaz
Izlaz
Mreža
BLC - Arhitektura Računara © 2011 Valentina Salapura 37
Objektni Kod je Spremljen u Memoriju
Procesor
Kontrola
Put podataka
Memorija000000 00000 00101 0001000010000000000000 00100 00010 0001000000100000100011 00010 01111 0000000000000000100011 00010 10000 0000000000000100101011 00010 10000 0000000000000000101011 00010 01111 0000000000000100000000 11111 00000 0000000000001000
Periferija
Ulaz
Izlaz
Mreža
BLC - Arhitektura Računara © 2011 Valentina Salapura 38
Procesor Učitava Instrukciju
Procesor
Kontrola
Put podataka
Memorija000000 00000 00101 0001000010000000000000 00100 00010 0001000000100000100011 00010 01111 0000000000000000100011 00010 10000 0000000000000100101011 00010 10000 0000000000000000101011 00010 01111 0000000000000100000000 11111 00000 0000000000001000
Procesor učitava (dohvati, fetch) instrukciju iz memorije
Periferija
Ulaz
Izlaz
Mreža
BLC - Arhitektura Računara © 2011 Valentina Salapura 39
Kontrola Dekodira Instrukciju
Procesor
Put podataka
Memorija000000 00100 00010 0001000000100000
Kontrola dekodira instrukciju da utvrdi šta da izvrši
Periferija
Ulaz
Izlaz
MrežaKontrola
BLC - Arhitektura Računara © 2011 Valentina Salapura 40
Put Podataka Izvršava Instrukciju
Procesor
Memorija
contents Reg #4 ADD contents Reg #2results put in Reg #2
Put podataka izvršava instrukciju pod upravomkontrole
000000 00100 00010 0001000000100000
Periferija
Ulaz
Izlaz
MrežaKontrola
Put podataka
BLC - Arhitektura Računara © 2011 Valentina Salapura 41
Šta je Slijedeće?
Procesor
Kontrola
Put podataka
Memorija000000 00000 00101 0001000010000000000000 00100 00010 0001000000100000100011 00010 01111 0000000000000000100011 00010 10000 0000000000000100101011 00010 10000 0000000000000000101011 00010 01111 0000000000000100000000 11111 00000 0000000000001000
Periferija
Ulaz
Izlaz
Mreža
BLC - Arhitektura Računara © 2011 Valentina Salapura 42
Procesor
Kontrola
Put podataka
Memorija000000 00000 00101 0001000010000000000000 00100 00010 0001000000100000100011 00010 01111 0000000000000000100011 00010 10000 0000000000000100101011 00010 10000 0000000000000000101011 00010 01111 0000000000000100000000 11111 00000 0000000000001000
Periferija
Ulaz
Izlaz
Mreža
Procesor učitava slijedeću instrukciju iz memorije
Fetch
DecodeExec
Koju memorijsku lokacijutreba učitati kao slijedeću?
Šta je Slijedeće?
BLC - Arhitektura Računara © 2011 Valentina Salapura 43
Organizacija ProcesoraKontrola treba imati logiku da
Put podataka treba imati logiku da
BLC - Arhitektura Računara © 2011 Valentina Salapura 44
Organizacija ProcesoraKontrola treba imati logiku da
Sa koje lokacije treba učitati i gdje pohraniti podatke?
Odluči koje instrukcija je slijedeća, i učita je iz memorijeDekodira instrukcijuGeneriše signale koji kontrolišu kako informacija teče izmeđukomponenti u putu podatakaKontroliše koje operacije će izvrsiti funkcionalne jedinice putapodataka
Izvrši instrukciju – aktivira funkcionalne jedinice (npr. sabiralo) i memorijske lokacije (tj. registri) Spoji funkcionalne jedinice tako da instrukcije mogu bitiizvršene kako trebaUčita podatke iz memorije, i spremi podatke u memoriju
Put podataka treba imati logiku da
BLC - Arhitektura Računara © 2011 Valentina Salapura 45
Izlazni Podaci su Pohranjeni u Memoriji
Procesor
Kontrola
Put Podataka
Memorija
000001000101000000000000000000000000000001001111000000000000010000000011111000000000000000001000
Po završetku programa, rezultat je pohranjen u memoriju
Periferija
Ulaz
Izlaz
Mreža
BLC - Arhitektura Računara © 2011 Valentina Salapura 46
Periferija za Izlaz Iščitava Podatke
Procesor
Kontrola
Put Podataka
Memorija
000001000101000000000000000000000000000001001111000000000000010000000011111000000000000000001000
Periferija
Ulaz
Izlaz
Mreža
BLC - Arhitektura Računara © 2011 Valentina Salapura 47
Instruction Set Architecture (ISA)Arhitektura Skupa Instrukcija
instruction set architecture
software
hardware
ISA je opis interfejsa između softvera i hardvera
BLC - Arhitektura Računara © 2011 Valentina Salapura 48
Različiti Skupovi Instrukcija (ISA)Alpha AXPIntel 80x86/pentiumVAXMIPSSPARCIBM 360Intel IA-64 (Itanium)PowerPC
BLC - Arhitektura Računara © 2011 Valentina Salapura 49
MIPS ISAVrste Instrukcija
Load/StoreAritmetičko-logičkeSkakanje i GrananjePomičnog Zareza
- koprocesor
Upravljanje MemorijomSpecijalne
R0 - R31
PCHILO
OP
OP
OP
rs rt rd sa funkc.
rs rt konstanta
cilj skoka
3 formata instrukcija, svi formati koriste 32 bita
Registri
R
I
J
BLC - Arhitektura Računara © 2011 Valentina Salapura 50
Kako ovi Dijelovi čine Cjelinu?
Koordinacija puno različitih nivoa apstrakcijeUz brzu promjenu komponentiDizajn, mjerenje i ocjena
I/OProcesor
Kompajler
OperativniSistem
Aplikacije
Digitalni DizajnElektronska Kola
Skup Instrukcija Firmware
Memorija
Put podataka & Kontrola
Mreža
BLC - Arhitektura Računara © 2011 Valentina Salapura 51
ZaključakSve komponente računara pripadaju u jednu od pet kategorijaSkup instrukcija (ISA) definiše kako softver smijekoristiti računarMnogo vrlo razlicitih računara mogu koristiti istu ISA-uVrlo brzi softver zahtijeva detaljno razumijevanjeračunara na kojem je izvršavan
BLC - Arhitektura Računara © 2011 Valentina Salapura 52
Kraj 2. Lekcije