arhitektura i organizacija računara (3+2)
DESCRIPTION
Arhitektura i organizacija računara (3+2). nastavnik: Emina I. Milovanović e-mail ema @elfak.ni.ac.rs. Literatura. Nebojša Milenković, Arhitektura i organizacija računara , Elektronski fakultet, Niš, 2004, ISBN: 86-80135-85-2. - PowerPoint PPT PresentationTRANSCRIPT
Arhitektura i organizacija Arhitektura i organizacija računararačunara(3+2)(3+2)
nastavnik: Emina I. Milovanovićnastavnik: Emina I. Milovanović
e-mail emae-mail [email protected]@elfak.ni.ac.rs
Literatura Nebojša Milenković, Arhitektura i organizacija
računara, Elektronski fakultet, Niš, 2004, ISBN: 86-80135-85-2.
D. Patterson and J. Hennessy, Computer organization and design: The Hardware/Software Interface, Fourth edition, Morgan Kaufmann Publishers, 2009, ISBN: 978-0-12-374493-7.
W. Stallings, Arhitektura i organizacija računara, Projekat u funkciji performansi, Računarski fakultet i CET, Beograd, 2006.
Prezentacije sa predavanja
Način ocenjivanjaNačin ocenjivanja Dva kolokvijuma (30+30, svaki pojedinaDva kolokvijuma (30+30, svaki pojedinačno čno
>15>15)) Teorijski deo ispita 40Teorijski deo ispita 40 Ocene: Ocene: 51-60 (šest)51-60 (šest) 61-70 (sedam)61-70 (sedam) 71-80 (osam)71-80 (osam) 81-90 (devet)81-90 (devet) 91-100 (deset)91-100 (deset)
– Domaći zadaci ili testovi na kraju svakog predavanja?Domaći zadaci ili testovi na kraju svakog predavanja?
Arhitektura i organizacija 1 Arhitektura računara (ili arhitektura skupa
instrukcija, engl. Instruction Set Architecture – ISA) predstavlja atribute računara vidljive programeruSkup instrukcija, formati instrukcija, načini predstavljanja
podataka (broj bitova), tehnike adresiranja, npr., postoje li instrukcije za množenje, djeljenje,...?
Arhitektura je logički ili apstraktni opis računara Organizacija predstavlja implementaciju
arhitekture računarskog sistema, tj. projektovanje funkcionalnih jedinica računara, kao što su centralni procesor, memorijski sistem, magistrale, ulazno-izlazni sistem Upravljački signali, memorijska tehnologija.
npr., postoji li HW jedinica za množenje ili je ona implementirana tehnikom ponavljanja operacije sabiranja?
Arhitektura i organizacija 2 Celokupn Intel x86 familija ima istu osnovnu
arhitekturu skupa instrukcija IBM System 360/370 familiju takođe
karakteriše ista arhitektura skupa instrukcijaOvo daje kompatibilnost kôda, u najmanju ruku prema
generacijama unazad
Ista arhitektura skupa instrukcija može imati mnogo različitih implemenatcija
Kratak sadržaj predmetaKratak sadržaj predmeta Uvod, performanse sistemaUvod, performanse sistema Arhitekura skupa instrukcijaArhitekura skupa instrukcija
Globalna struktura, registri procesora, adresnost Globalna struktura, registri procesora, adresnost računara, načini adresiranja operanda, tipovi računara, načini adresiranja operanda, tipovi podataka, tipovi instrukcija, format instrukcija, podataka, tipovi instrukcija, format instrukcija, upravljačka jedinica procesoraupravljačka jedinica procesora
Protočna organizacija procesoraProtočna organizacija procesora Hazardi i tehnike za prevazilaženje hazardaHazardi i tehnike za prevazilaženje hazarda
Memorijska hijerarhijaMemorijska hijerarhija Organizacija memorije, keš memorija, virtuelna Organizacija memorije, keš memorija, virtuelna
memorijamemorija
Računarska aritmetikaRačunarska aritmetika Sabiranje, množenje, deljenje Sabiranje, množenje, deljenje
AORAOR
Performanse računarskih sistemaPerformanse računarskih sistema
PerformansePerformanse Postizanje idealnih (vršnih) perfomansi Postizanje idealnih (vršnih) perfomansi
računarskog sistema zahteva savršeno slaganje računarskog sistema zahteva savršeno slaganje izmenju mogućnosti sistema i ponašanja izmenju mogućnosti sistema i ponašanja programaprograma Mogućnosti mašine se mogu poboljšatiMogućnosti mašine se mogu poboljšati
boljom tehnologijomboljom tehnologijom inovacijom arhitektureinovacijom arhitektureefiksnijim upravljanjem resursaefiksnijim upravljanjem resursa
Ponašanje programa je teško predvideti zbog visoke Ponašanje programa je teško predvideti zbog visoke zavisnosti odzavisnosti odaplikacijeaplikacijeodabranog algoritmaodabranog algoritmastruktura podatakastruktura podatakaefikasnosti programskog jezikaefikasnosti programskog jezika tehnologije kompilatoratehnologije kompilatoraveštine programeraveštine programera
PerformansePerformanse Kada kaKada kažžemo da je jedan raemo da je jedan raččunar, recimo X, unar, recimo X,
brbržži od drugog rai od drugog raččunara, recimo Y, imamo u unara, recimo Y, imamo u vidu da ravidu da raččunar X izvrunar X izvrššava programe za kraava programe za kraćće e vreme od ravreme od raččunara Y. unara Y. Pri tome kao meru koristimo:Pri tome kao meru koristimo:
vreme odzivavreme odziva (engl. response time), odnosno drugi termin (engl. response time), odnosno drugi termin vreme izvrvreme izvrššenjaenja (engl. execution time), ili (engl. execution time), ili
propusnostpropusnost (engl. throghput), odre (engl. throghput), određđenu kao obim posla enu kao obim posla obavljen u jedinici vremenaobavljen u jedinici vremena
Mere za ocenu performansiMere za ocenu performansi
Vreme odziva (proteklo vreme)Vreme odziva (proteklo vreme) vreme koje protekne od trenutka izdavanja zahteva vreme koje protekne od trenutka izdavanja zahteva
do trenutka kada je zadatak izvršen (meri se u sec).do trenutka kada je zadatak izvršen (meri se u sec). smatra se da je bolji onaj računar koji isti iznos posla smatra se da je bolji onaj računar koji isti iznos posla
obavi za kraće vremeobavi za kraće vreme Vreme doziva obuhvataVreme doziva obuhvata
korisničko procesorsko vremekorisničko procesorsko vremevreme pristupa memorijivreme pristupa memorijivreme pristupa diskovimavreme pristupa diskovimavreme potrebno za obavljanje U/I aktivnostivreme potrebno za obavljanje U/I aktivnostidodatno vreme zbog poziva OSdodatno vreme zbog poziva OS
Performanse sistema koji izvršava odredjeni Performanse sistema koji izvršava odredjeni programprogram Performanse=1/Vreme_izvršenjaPerformanse=1/Vreme_izvršenja
Mere performsnsiMere performsnsiPoredjenje mašina X i Y koje izvršavaju isti programPoredjenje mašina X i Y koje izvršavaju isti program
n=n= =Vreme_izvršenja_Y
Vreme_izvršenja_XPerformanse_Y
Performanse_X
Primer:• Program na mašini A se izvršava za TA =1 sec• Program na mašini B se izvršava za TB = 10 sec
• Performanse_A/Performanse_B= TB / TA=10• Mašina A ima 10 puta bolje performanse od mašine B
Računar često deli više korisnika, tj. izvršava više programa Računar često deli više korisnika, tj. izvršava više programa (recimo serveri)(recimo serveri) U takvim slučajevima je mnogo bitnije da se poveća propusnost U takvim slučajevima je mnogo bitnije da se poveća propusnost
sistema (obavljeni obim posla u jedinici vremena), nego da se sistema (obavljeni obim posla u jedinici vremena), nego da se minimizira izvršenje jednog programaminimizira izvršenje jednog programa
za procenu ovih performansi koristi se aritmetička i težinska aritmetička za procenu ovih performansi koristi se aritmetička i težinska aritmetička sredina vremena izvršenjasredina vremena izvršenja
n
iisrednje T
nT
1
1gde je Ti vreme izvršenja i-tog programa, gde je Ti vreme izvršenja i-tog programa, a a nn broj programa koji se izvršava broj programa koji se izvršava
m
ii
m
iii
tezinsko
w
Tw
T
1
1
gde je wgde je wii težina, tj. broj izvršavanja težina, tj. broj izvršavanja ii-tog -tog programa , a programa , a mm broj različitih programa broj različitih programa
PrimerPrimerProgrami P1 i P2 izvršavaju se na tri računara A,B i C. Vremena izvršenja programa prikazana su u tabeli.Odrediti ukupno vreme izvršenja ovih programa na računarima A, B i Caritmetičku sredinu vremena izvršenjatežinsku sredinu vremena izvršenja ako se program P1 izvršava 20 puta, P2 jednomtežinsku sredinu vremena izvršenja ako se program P1 izvrašva 20 puta a P2 10 puta
Računar ARačunar B Računar C
1 Program P1 (sec) 5 10 20
2 Program P1 (sec) 200 100 20
3 Ukupno vreme 205 110 40
4 Aritmetička sredina (Tsrednje) 102.5 55 20
5 Težinska aritm. sredina (20,1) 14.29 14.29 20
6 Težinska aritm. sredina (20,10) 70 40 20
Procesorske performanseProcesorske performanse Procesori današnjih računara se pobudjuju Procesori današnjih računara se pobudjuju
frekvencijom fiksne učestalostifrekvencijom fiksne učestalostiffclkclk=1/T=1/Tclkclk ,T ,Tclkclk dužina trajanja taktnog intervala dužina trajanja taktnog intervala
Procesorsko vremeProcesorsko vremeTTCPU CPU =N=NCPU CPU * T* Tclk clk =N=NCPUCPU / f / fclkclk
Od čega zavisi NOd čega zavisi NCPU CPU ?? od dužine programa, tj. broja mašinskih instrukcija koje treba od dužine programa, tj. broja mašinskih instrukcija koje treba
izvršitiizvršiti– Jedna mašinska instrukcija se sastoji od elementarnih ili mikro Jedna mašinska instrukcija se sastoji od elementarnih ili mikro
operacija, različite kompleksnosti i broja, u zavisnosti od složenosti operacija, različite kompleksnosti i broja, u zavisnosti od složenosti instrukcije i imlementacije CPUinstrukcije i imlementacije CPU
Mikro operacija je elementarna hardverska opercaija koja se može obaviti za jedan Mikro operacija je elementarna hardverska opercaija koja se može obaviti za jedan clk ciklus. clk ciklus.
Ovo odgovara jednoj mikro-instrukciji kod mikroprogramski upravljanih CPU. Ovo odgovara jednoj mikro-instrukciji kod mikroprogramski upravljanih CPU. PrimeriPrimeri: regist: registarskearske opera operacciijeje: shift, load, clear, increment, ALU : shift, load, clear, increment, ALU
operations: add , subtract, etc.operations: add , subtract, etc. Jedna mašinska instrukcija se može izvršavati za 1 ili više clk ciklusaJedna mašinska instrukcija se može izvršavati za 1 ili više clk ciklusa Poželjno je poznavati srednji broj taktova po instrukciji - CPIPoželjno je poznavati srednji broj taktova po instrukciji - CPI
broj CPU-ovih taktnih impulsa
Procesorske performanseProcesorske performanse Kako odrediti srednji broj taktova po instrukciji Kako odrediti srednji broj taktova po instrukciji
za dati set instrukcija?za dati set instrukcija? Praćenjem velikih programa u toku dužeg vremenaPraćenjem velikih programa u toku dužeg vremena
Ako učestalost (verovatnoća) pojavljivanja instrukcije tipa IAko učestalost (verovatnoća) pojavljivanja instrukcije tipa Iii iznosi piznosi pii, i ako njeno izvršenje zahteva t, i ako njeno izvršenje zahteva tii procesorskih procesorskih taktnih impulsataktnih impulsa
Procesorsko vremeProcesorsko vreme
programu ua instrukcij broj ,
ainstrukcij setu ua instrukcij broj je ,1
II
cpu
N
iii
NN
NCPI
NtpCPI
clkIcpu TCPINT [sec/program]
clkIcpu TCPINT
Broj instrukcija NBroj instrukcija NII
TTclkclk CPICPIZavisi od:
Organizacije CPU Tehnologije
Zavisi od:
Programa
Kompajleraseta instrukcijaOrganizacije CPU
Zavisi od:
Programa
Kompajlera
seta instrukcija
PrimerPrimer
Program se iProgram se izvršava na odredjenoj mašini zvršava na odredjenoj mašini sa sledećim karakteristikama: sa sledećim karakteristikama: Ukupan broj instrukcija u programu: Ukupan broj instrukcija u programu: 10,000,000 10,000,000 Srednji broj taktova po instrukciji,Srednji broj taktova po instrukciji, CPI : 2.5 CPI : 2.5
clkclk/instru/instrukkcicijiji.. Radna frekvencija Radna frekvencija CPU : 200 MHz.CPU : 200 MHz.
Koliko je vreme izvršenje ovog programa?Koliko je vreme izvršenje ovog programa?
TcpuTcpu = = Broj instrukcijaBroj instrukcija x CPI x CPI x x TclkTclk
= 10,000,000 x 2.5 x 1 / = 10,000,000 x 2.5 x 1 / ffclkclk
= 10,000,000 x 2.5 x 5x10= 10,000,000 x 2.5 x 5x10-9-9
= = 00.125 sec.125 sec
Tcpu = Seconds = Instructions x Cycles x Seconds
Program Program Instruction Cycle
Tcpu = Seconds = Instructions x Cycles x Seconds
Program Program Instruction Cycle
Faktori koji utiču na performanse Faktori koji utiču na performanse CPUCPU
CPU time = Seconds = Instructions x Cycles x Seconds
Program Program Instruction Cycle
CPU time = Seconds = Instructions x Cycles x Seconds
Program Program Instruction Cycle
CPI Clock Cycle CBroj instrukcija
Program
Compiler
Organization
Technology
Instruction SetArchitecture (ISA)
X
X
X
X
X
X
X X
X
Alternativne mere CPU Alternativne mere CPU performansiperformansi MIPS – Milion instrukcija po sekundiMIPS – Milion instrukcija po sekundi
Veći broj MIPS-ova znači brža mašina Veći broj MIPS-ova znači brža mašina (uglavnom)(uglavnom)
66
666
1010
1
101010
__
CPI
f
TCPI
TCPIN
N
T
N
T
ainstrukcijbrojukupanMIPS
clk
clk
clkI
I
cpu
I
cpu
MIPS - problemiMIPS - problemi MIPS zavisi od skupa instrukcija date MIPS zavisi od skupa instrukcija date
arhitekturearhitekture teško je porediti arhitekture sa različitim setom teško je porediti arhitekture sa različitim setom
instrukcijainstrukcija
MIPS se menja u zavisnosti od programa koji MIPS se menja u zavisnosti od programa koji se izvršava, čak i na istoj mašinise izvršava, čak i na istoj mašini
Veći broj MIPS-ova u nekim slučajevima ne Veći broj MIPS-ova u nekim slučajevima ne mora značiti bolje performanse (kompilatori)mora značiti bolje performanse (kompilatori)
MIPS može dati lošije rezultate za mašinu koja MIPS može dati lošije rezultate za mašinu koja brže radibrže radi
Primer:Primer: Mašina poseduje sledeće klase instrukcijaMašina poseduje sledeće klase instrukcija::
Za dati program dava komajlera generišu sledeći broj Za dati program dava komajlera generišu sledeći broj instrukcijainstrukcija::
Mašina radi na učestalosti od Mašina radi na učestalosti od 100 MHz100 MHz
Klase instrukcija CPI A 1 B 2 C 3
Broj instrukcija (u milionima) za svaku klasu instrukcija Kod iz: A B C Comp 1 5 1 1 Comp 2 10 1 1
Primer (nastavak)Primer (nastavak)
MIPS = MIPS = ffclkclk / (CPI x 10 / (CPI x 1066) = 100 MHz / (CPI x 10) = 100 MHz / (CPI x 1066))
CPI = CPI = NNCPUCPU / / Broj_instrukcjijaBroj_instrukcjija
TTcpucpu = = Broj_instrukcijaBroj_instrukcija x CPI / x CPI / ffclkclk
Za kompajlerZa kompajler 1: 1: CPICPI11 = (5 x 1 + 1 x 2 + 1 x 3) / (5 + 1 + 1) = 10 / 7 = 1.43 = (5 x 1 + 1 x 2 + 1 x 3) / (5 + 1 + 1) = 10 / 7 = 1.43
MIPMIPSS1 1 = = ((100 100 *10*1066))/ (1.428 x 10/ (1.428 x 1066) = ) = 70.070.0
TTcpu1cpu1 = ((5 + 1 + 1) x 10 = ((5 + 1 + 1) x 1066 x 1.43) / (100 x 10 x 1.43) / (100 x 1066) = ) = 0.100.10 sec sec
Za kompajlerZa kompajler 2: 2: CPICPI22 = (10 x 1 + 1 x 2 + 1 x 3) / (10 + 1 + 1) = 15 / 12 = 1.25 = (10 x 1 + 1 x 2 + 1 x 3) / (10 + 1 + 1) = 15 / 12 = 1.25
MIPMIPSS2 2 = = ((100 100 *10*1066))/ (1.25 x 10/ (1.25 x 1066) = ) = 80.080.0
TTcpu2cpu2 = ((10 + 1 + 1) x 10 = ((10 + 1 + 1) x 1066 x 1.25) / (100 x 10 x 1.25) / (100 x 1066) = ) = 0.150.15 sec sec
n
iicpu itipaainstrukcijBrojCPIN
1___
RešenjeRešenje Da bi se otklonile anomalije koristi se relativni Da bi se otklonile anomalije koristi se relativni
MIPSMIPS Relativni MIPS =TRelativni MIPS =Trefref/T/Točoč *MIPS *MIPSrefref
TTref ref - vreme izvršenja programa na referentnoj mašini - vreme izvršenja programa na referentnoj mašini
TToč oč - vreme izvršenja programa na mašini čije se - vreme izvršenja programa na mašini čije se performanse procenjujuperformanse procenjuju
MIPSMIPSrefref - broj MIPSova referentne mašine (VAX 11/780 1 - broj MIPSova referentne mašine (VAX 11/780 1 MIPS mašina)MIPS mašina)
koristiti iste kompajlerekoristiti iste kompajlere
MFLOPS -MFLOPS - Million FLOating-Point Operations Per Million FLOating-Point Operations Per SecondSecond
MFLOPS=MFLOPS=
MFLOPS je mera zavisna i od mašine i od MFLOPS je mera zavisna i od mašine i od programaprograma Kao mera namenjen je samo za procenu performasi Kao mera namenjen je samo za procenu performasi
kod izvršenja operacija u pokretnom zarezu i ne sme kod izvršenja operacija u pokretnom zarezu i ne sme se primenjivati van tog kontekstase primenjivati van tog kontekstaNpr. kod TEX programa broj MFLOPS teži 0, bez obzira Npr. kod TEX programa broj MFLOPS teži 0, bez obzira
koliko je brza mašina (TEX programi ne koriste operacije u koliko je brza mašina (TEX programi ne koriste operacije u pokretnom zarezu) pokretnom zarezu)
broj FP operacija u programu
Tcpu x 106
Šta je Benchmark?Šta je Benchmark? Skup reprezentativnih prgrama za ocenu performansi Skup reprezentativnih prgrama za ocenu performansi
računara koji generišu relativnu sliku o performansama računara koji generišu relativnu sliku o performansama sistemasistema
Koji se programi mogu iskoristiti kao benchmark?Koji se programi mogu iskoristiti kao benchmark? Realni programi koji se izvršavaju na ciljnoj arhitekturiRealni programi koji se izvršavaju na ciljnoj arhitekturi
veoma specifični, nisu portabilni, kompleksni:teško je meriti veoma specifični, nisu portabilni, kompleksni:teško je meriti performanseperformanse
Skup (miks) realnih programa koji su tipični za ciljanu aplikaciju Skup (miks) realnih programa koji su tipični za ciljanu aplikaciju ili opterećenje (ili opterećenje (SPEC95, SPEC CPU2000SPEC95, SPEC CPU2000))
Jezgra (kernels)Jezgra (kernels) ključni delovi realnih programa sa intenzivnim izračunavanjimaključni delovi realnih programa sa intenzivnim izračunavanjima
» PrimeriPrimeri: Matrix factorization, FFT, tree search, etc.: Matrix factorization, FFT, tree search, etc.– koriste se za testiranje specifičnih aspekata mašine. koriste se za testiranje specifičnih aspekata mašine.
Igračke (Toy benchmark): kratki programi koji generišu poznati Igračke (Toy benchmark): kratki programi koji generišu poznati rezultat (eratostenovo sito, Purezultat (eratostenovo sito, Puzzzzle, Quicksort)le, Quicksort)
Sintetički programiSintetički programiMali, specijalno napisani programi sa ciljem da izoluju pojedine Mali, specijalno napisani programi sa ciljem da izoluju pojedine
aspekte performanisi: aspekte performanisi: – integerinteger operacije operacije, floating point, local memory, input/output, , floating point, local memory, input/output, itditd– Primeri: Drhystone (za Integer operacija), Whetstone (za FP operacije)Primeri: Drhystone (za Integer operacija), Whetstone (za FP operacije)
Realni programi
Miks realnih programa
“Kernel” Benchmarks
Sintetički
Za Protiv
• Reprezentativi• veoma specifični.• nisu portabilni.• Kompleksni
• Portabilni.• široka primena.• realne ocene
• Lako se izvršavaju, u ranoj fazi projektovanja sistema
• Identifikuju vršne performanse i potencijalna uska grla
• manje reprezentativi.
• Lako je “prevariti” tj. projektovati hw tako da se dobiju dobre ocene
• Dobijene vršne performanse mogu biti mnogo bolje od onih dobijenih realnim aplikacijama
Tipovi benchmarkaTipovi benchmarka
Ubrzanje sistemaUbrzanje sistema Kod arhitektura kod kojih je uveden bilo koji Kod arhitektura kod kojih je uveden bilo koji
vid poboljšanja, može se dati ocena o vid poboljšanja, može se dati ocena o dobijenom poboljšanju sa stanovišta dobijenom poboljšanju sa stanovišta performansi korišćenjem mere UBRZANJEperformansi korišćenjem mere UBRZANJE
S=S=Vreme izvršenja programa na arhitetkuri bez poboljšanja
Vreme izvršenja programa na arh. sa izvedenim poboljšanjem
enhanced
enhancedenhanced
overall
Speedup
FractionFraction
Speedup
)1(
1
Ako se poAko se poboljšanje može izvršiti samo na delu sistema, procena boljšanje može izvršiti samo na delu sistema, procena ukupnog poboljšana sa stanovišta ubrzanja se može dobiti kao ukupnog poboljšana sa stanovišta ubrzanja se može dobiti kao
delagpoboljsanoubrzanjejekolikooznacavaSpeedup
epoboljsanjizvrsenojekojimnaddeooznacavaFraction
ubrzanjeukupnooznacavaSpeedup
enhanced
enhanced
overall
PrimerPrimer Dve grupe inDve grupe inžženjera dobile su zadatak da poboljenjera dobile su zadatak da poboljššaju performanse aju performanse
nekog sistema iz proizvodnog programa preduzenekog sistema iz proizvodnog programa preduzećća. Po isteku a. Po isteku dobijenog vremena, prva grupa je najavila poboljdobijenog vremena, prva grupa je najavila poboljššanje, koje anje, koje aktivnosti sistema sa uaktivnosti sistema sa uččeešćšćem od 5% u ukupnim aktivnostima em od 5% u ukupnim aktivnostima sistema ubrzava 20 puta. Druga grupa je najavila svoje resistema ubrzava 20 puta. Druga grupa je najavila svoje reššenje, enje, koje aktivnosti sistema sa ukoje aktivnosti sistema sa uččeešćšćem od 50% u ukupnim em od 50% u ukupnim aktivnostima sistema ubrzava 2 puta. aktivnostima sistema ubrzava 2 puta. ČČije reije reššenje daje veenje daje većće e poboljpoboljššanje performansi sistema?anje performansi sistema?
33,125.05.0
1
25.0
5.01
1
05,10025.095.0
1
2005.0
05.01
1
)1(
1
grupaII
grupaI
Speedup
FractionFraction
Speedup
enhanced
enhancedenhanced
overall
Rešenje II grupe obezbeđuje mnogo veće poboljšanje performansi .Rešenje II grupe obezbeđuje mnogo veće poboljšanje performansi .