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: Prof. Dr. Valentina Salapura vsalapura@inecco.net Konsultacije e-mailom Vježbe Mag. Dipl. Ing. Saša Salapura salapura@inecco.net Konsultacije poslije nastave, e-mailom i po dogovoru BLC - Arhitektura Računara 2011 Valentina Salapura 3
Logistika Nastave Predavanja Nastavni materijal Dodatna literatura knjige - Computer Organization and Design - D. Patterson & J. Hennessy Internet, wikipedia Pitanja, sugestije, zanimanja e-mail Vježbe Kontinuiran rad, bodovi za svaku napravljenu vježbu Seminarski rad BLC - Arhitektura Računara 2011 Valentina Salapura 4
Ocjenjivanje Ocjenu č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 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 naperformancurač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 Funkcionalne jedinice i registri MIPS instrukcije Kodiranje, aritmetičke i logičke instrukcije, skakanje i grananje, load i store, specijalne instrukcije Instrukcije za aritmetiku fiksnog i pomičnog zareza Memorija Organizacija memorije, priručna memorija Protočna organizacija računara 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? 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)? 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 1951 1965 1975 1995 2005 Tehnologija Vakumske cijevi Tranzistor Integrisana kola (IC) Very Large Scale IC (VLSI) Submicron VLSI Relativna Performanca/ Cijena Jedinice 1 35 900 2,400,000 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 Voltage, V / α Scaled Device n+ source tox/α GATE L/α p substrate, doping α*na WIRING n+ drain W/α xd/α Skaliranje poluprovodnika Dennardova teorija skaliranja Povecava gustinu računanja Omogućuje veću brzinu računanja Source: Dennard et al., JSSC 1974. Current Gen. CMOS core +1 Generations CMOS core +2 Generations CMOS room to add function 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 mm 2, 10μm 0.2 MHz 2mW Intel 8088 (1978) 29,000 tranzistora 20 mm 2, 3μm 2 MHz X mw Intel Pentium IV (2001) 42,000,000 tranzistora 271 mm 2, 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 Zadnjih godina porast je usporio BLC - Arhitektura Računara 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 fcv 2 C je kapacitet V je napon f je frekvencija (proporcionalna sa V) Pretpostavimo da je za jedan procesor C=10nF, V=1.2V; f=2ghz Snaga P= f CV 2 = 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 Put podataka + kontrola = procesor (centralna procesna jedinica (CPU)) Kontrola Put Podataka Računar Memorija Ulaz Procesor Izlaz BLC - Arhitektura Računara 2011 Valentina Salapura 22
Organizacija i Dizajn Računara Kako 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 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 Novi problemi Nove mogućnosti Novi kompromisi i pravila Cilj je da se programi izvršavaju brže nego na bilo kojemdrugomrač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 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 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 $2, $5, 2 add $2, $4, $2 lw $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 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; one-to-many Program u asemblerskom jeziku (for MIPS) swap: sll $2, $5, 2 add $2, $4, $2 lw $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 0001000010000000 000000 00100 00010 0001000000100000... one-to-one C kompajler asembler 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 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, ) Poboljšavaju produktivnost programera razumljiviji kod je jednostavniji za testiranje i ispravke Poboljšano održavanje koda 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) 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
Kontrola Procesor Put Podataka Računar Memorija Ulaz Izlaz Organizacija Računara Određena je sa Funkcionalnim jedinicama mogućnosti i performansa (Functional Units - FUs) npr., registri, ALU, multiplekseri, memorija,... Način kako su FU povezane npr., buses Logika i kako informacija teče izmedju FU 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 Procesor Kontrola Put podataka Memorija Periferija Mreža Ulaz Izlaz BLC - Arhitektura Računara 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 $2, $5, 2 add $2, $4, $2 lw $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 0001000010000000 000000 00100 00010 0001000000100000 100011 00010 01111 0000000000000000 100011 00010 10000 0000000000000100 101011 00010 10000 0000000000000000 101011 00010 01111 0000000000000100 000000 11111 00000 0000000000001000 C kompajler asembler BLC - Arhitektura Računara 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 $2, $5, 2 add $2, $4, $2 lw $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 0001000010000000 000000 00100 00010 0001000000100000 100011 00010 01111 0000000000000000 100011 00010 10000 0000000000000100 101011 00010 10000 0000000000000000 101011 00010 01111 0000000000000100 000000 11111 00000 0000000000001000 C kompajler asembler BLC - Arhitektura Računara 2011 Valentina Salapura 35
Ulaz Učitava Objektni Kod 000000 00000 00101 0001000010000000 000000 00100 00010 0001000000100000 100011 00010 01111 0000000000000000 100011 00010 10000 0000000000000100 101011 00010 10000 0000000000000000 101011 00010 01111 0000000000000100 000000 11111 00000 0000000000001000 Procesor Kontrola Put podataka Memorija Periferija Mreža Ulaz Izlaz BLC - Arhitektura Računara 2011 Valentina Salapura 36
Objektni Kod je Spremljen u Memoriju Procesor Kontrola Put podataka Memorija 000000 00000 00101 0001000010000000 000000 00100 00010 0001000000100000 100011 00010 01111 0000000000000000 100011 00010 10000 0000000000000100 101011 00010 10000 0000000000000000 101011 00010 01111 0000000000000100 000000 11111 00000 0000000000001000 Periferija Mreža Ulaz Izlaz BLC - Arhitektura Računara 2011 Valentina Salapura 37
Procesor Učitava Instrukciju Procesor učitava (dohvati, fetch) instrukciju iz memorije Procesor Kontrola Put podataka Memorija 000000 00000 00101 0001000010000000 000000 00100 00010 0001000000100000 100011 00010 01111 0000000000000000 100011 00010 10000 0000000000000100 101011 00010 10000 0000000000000000 101011 00010 01111 0000000000000100 000000 11111 00000 0000000000001000 Periferija Mreža Ulaz Izlaz BLC - Arhitektura Računara 2011 Valentina Salapura 38
Kontrola Dekodira Instrukciju Kontrola dekodira instrukciju da utvrdi šta da izvrši Procesor Kontrola 000000 00100 00010 0001000000100000 Put podataka Memorija Periferija Mreža Ulaz Izlaz BLC - Arhitektura Računara 2011 Valentina Salapura 39
Put Podataka Izvršava Instrukciju Put podataka izvršava instrukciju pod upravom kontrole Procesor Kontrola 000000 00100 00010 0001000000100000 Put podataka contents Reg #4 ADD contents Reg #2 results put in Reg #2 Memorija Periferija Mreža Ulaz Izlaz BLC - Arhitektura Računara 2011 Valentina Salapura 40
Šta je Slijedeće? Procesor Kontrola Put podataka Memorija 000000 00000 00101 0001000010000000 000000 00100 00010 0001000000100000 100011 00010 01111 0000000000000000 100011 00010 10000 0000000000000100 101011 00010 10000 0000000000000000 101011 00010 01111 0000000000000100 000000 11111 00000 0000000000001000 Periferija Mreža Ulaz Izlaz BLC - Arhitektura Računara 2011 Valentina Salapura 41
Šta je Slijedeće? Procesor učitava slijedeću instrukciju iz memorije Procesor Kontrola Put podataka Memorija 000000 00000 00101 0001000010000000 000000 00100 00010 0001000000100000 100011 00010 01111 0000000000000000 100011 00010 10000 0000000000000100 101011 00010 10000 0000000000000000 101011 00010 01111 0000000000000100 000000 11111 00000 0000000000001000 Periferija Mreža Ulaz Izlaz Exec Fetch Decode Koju memorijsku lokaciju treba učitati kao slijedeću? BLC - Arhitektura Računara 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 Odluči koje instrukcija je slijedeća, i učita je iz memorije Dekodira instrukciju Generiše signale koji kontrolišu kako informacija teče između komponenti u putu podataka Kontroliše koje operacije će izvrsiti funkcionalne jedinice puta podataka Put podataka treba imati logiku da Izvrši instrukciju aktivira funkcionalne jedinice (npr. sabiralo) i memorijske lokacije (tj. registri) Spoji funkcionalne jedinice tako da instrukcije mogu biti izvršene kako treba 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 Kontrola Put Podataka Memorija 00000100010100000000000000000000 00000000010011110000000000000100 00000011111000000000000000001000 Periferija Mreža Ulaz Izlaz BLC - Arhitektura Računara 2011 Valentina Salapura 45
Periferija za Izlaz Iščitava Podatke Procesor Kontrola Put Podataka Memorija Periferija Mreža 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 Load/Store Aritmetičko-logičke Skakanje i Grananje Pomičnog Zareza - koprocesor Upravljanje Memorijom Specijalne Registri R0 - R31 PC HI LO 3 formata instrukcija, svi formati koriste 32 bita R I J OP OP OP rs rt rd sa funkc. rs rt konstanta cilj skoka BLC - Arhitektura Računara 2011 Valentina Salapura 49
Kako ovi Dijelovi čine Cjelinu? Aplikacije Operativni Sistem Skup Instrukcija Kompajler Firmware Memorija 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