Arhitektura Računara 1. sedmica predavanja/ra-1sedmica.pdfBLC - Arhitektura Računara © 2011...

Preview:

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 Salapuravsalapura@inecco.netKonsultacije e-mailom

VježbeMag. Dipl. Ing. Saša Salapurasalapura@inecco.netKonsultacije 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

Recommended