Računarske arhitekture Predavanje 1: Uvod CS61C F99 9/20/2018 Računarske arhitekture Predavanje 1: Uvod Oktobar 2003 Doc. dr Novica Nosović ETF – Sarajevo, soba 0-22 novica.nosovic@etf.unsa.ba
Pregled Uvod u strukture računara Organizacija i anatomija računara CS61C F99 9/20/2018 Pregled Uvod u strukture računara Organizacija i anatomija računara Brze tehnološke promjene Struktura nastave Važne stvari koje treba zapamtiti credential: bring a computer die photo wafer : This can be an hidden slide. I just want to use this to do my own planning. I have rearranged Culler’s lecture slides slightly and add more slides. This covers everything he covers in his first lecture (and more) but may We will save the fun part, “ Levels of Organization,” at the end (so student can stay awake): I will show the internal stricture of the SS10/20. Notes to Patterson: You may want to edit the slides in your section or add extra slides to taylor your needs. RA2002-3 Pr 1
Šta su “Strukture računara”? CS61C F99 9/20/2018 Šta su “Strukture računara”? I/O system Processor Compiler Operating System (Windows XP) Application (Netscape) Digital Design Circuit Design Datapath & Control transistors Memory Hardware Software Assembler Instruction Set Architecture Interakcija više nivoa apstrakcije RA2002-3 Pr 1
Nivoi predstavljanja temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; CS61C F99 9/20/2018 Nivoi predstavljanja temp = v[k]; v[k] = v[k+1]; v[k+1] = temp; High Level Language Program (e.g., C) Compiler lw $to, 0($2) lw $t1, 4($2) sw $t1, 0($2) sw $t0, 4($2) Assembler (npr. MIPS) Asembler Mašinski jezik (MIPS) 0000 1001 1100 0110 1010 1111 0101 1000 1010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111 Mašinski interpreter Upravljački signali ° RA2002-3 Pr 1
Anatomija: 5 komponenti računara CS61C F99 9/20/2018 Anatomija: 5 komponenti računara Personal Computer Keyboard, Mouse Computer Processor (active) Memory (passive) (where programs, data live when running) Devices Disk (where programs, data live when not running) Control (“brain”) Input That is, any computer, no matter how primitive or advance, can be divided into five parts: 1. The input devices bring the data from the outside world into the computer. 2. These data are kept in the computer’s memory until ... 3. The datapath request and process them. 4. The operation of the datapath is controlled by the computer’s controller. All the work done by the computer will NOT do us any good unless we can get the data back to the outside world. 5. Getting the data back to the outside world is the job of the output devices. The most COMMON way to connect these 5 components together is to use a network of busses. Datapath (“brawn”) Output Display, Printer RA2002-3 Pr 1
Tehnološki Trendovi: Kapacitet memorije (1 Chip DRAM) CS61C F99 9/20/2018 Tehnološki Trendovi: Kapacitet memorije (1 Chip DRAM) God. (Megabit) 1980 0.0625 1983 0.25 1986 1 1989 4 1992 16 1996 64 1999 256 1.55X/god, ili dvostruko svakih 1.6 godina RA2002-3 Pr 1
Tehnološki trendovi: Mikroprocesori CS61C F99 9/20/2018 Tehnološki trendovi: Mikroprocesori Alpha 21264: 15 million Pentium Pro: 5.5 million PowerPC 620: 6.9 million Alpha 21164: 9.3 million Sparc Ultra: 5.2 million Moore’s Law 2X tranzistora/Chip Svakih 1.5 godina “Moore-ov zakon”: RA2002-3 Pr 1
Tehnološki Trendovi: Procesorske Performanse CS61C F99 9/20/2018 Tehnološki Trendovi: Procesorske Performanse 1.54X/yr Porast procesorskih performansi /god (Joy-ev zakon) a ne Moore-ov zakon (tranzistora/chip-u) RA2002-3 Pr 1
Računarska Tehnologija => Dramatične promjene CS61C F99 9/20/2018 Računarska Tehnologija => Dramatične promjene Procesor 2X brži svake 1.5 godine; 1000X performanse u zadnjih 10 god. Memorija DRAM kapacitet: 2x / 1.5 god.; 1000X u zadnjih 10 god. Cijena po bitu: pada oko 25% godišnje Disk Kapacitet: > 2X svakih 1.5 god. Cijena po bitu : pada oko 60% godišnje 120X u zadnjih 10 god Savremeni PC kada vi diplomirate: ??? Procesor clock: 8000 MegaHertz (8 GigaHertz) Memorija: 4000 MegaByte (4 GigaBytes) Disk Kapacitet: 600 GigaBytes (0.15 TeraBytes) Nove stvari! Mega => Giga, Giga => Tera RA2002-3 Pr 1
Zašto studirati strukture računara? CS61C F99 9/20/2018 Zašto studirati strukture računara? PROMJENE; Nikada nije bilo uzbudljivije! Utiču na sve aspekte inženjeringa i računarskih nauka Bionics: Sensors in latex fingers instantly register hot and cold, and an electronic interface in his artificial limb stimulates the nerve endings in his upper arm, which then pass the information to his brain. The $3,000 system allows his hand to feel pressure and weight, so for the first time since losing his arms in a 1986 accident, he can pick up a can of soda without crushing it or having it slip through his fingers. One Digital Day RA2002-3 Pr 1
Šta ćete učiti? Strukture računara – kako ih vidi programer CS61C F99 9/20/2018 Šta ćete učiti? Strukture računara – kako ih vidi programer Šta piše programer Kako se to prevodi u nešto što računar razumije Kako računar interpretira program Zašto se programi izvršavaju sporo Naučite osnovne stvari iz računarstva i inženjeringa 5 klasičnih komponenti računara kako računar manipuliše onim što predstavlja stvari računari sa programom u memoriji – instrukcije su podaci princip lokalnosti – iskorišten u memorijskoj hijerarhiji (keš) prevođenje i indirektno izvršavanje više performanse korištenjem paralelizma (protočnost) principi apstrakcija, predstavljanje sistema po nivoima/slojevima kompajliranje protiv interpretiranja – smanjuju broj slojeva sistema principi i greške – zablude pri mjerenju performansi We will take a break and talk about class philosophy. RA2002-3 Pr 1
Šta nećete učiti? C C++ Java Pisati programe Programirati u asembleru CS61C F99 9/20/2018 Šta nećete učiti? Pisati programe ako znate jedan (programski) jezik, lako ćete naučiti i drugi ... ako znate C++ ili Java, lako ćete razumjeri njuhove pretke, C... Programirati u asembleru to ćete naučiti učeći osnovne stvari Projektovati logičke strukture (hardver) shvatite hardver kao nivo apstrakcije, morate ga razumjeti da bi shvatili više nivoe Kompajlere i operativne sisteme ali morate znati njihove uloge i principe C C++ Java RA2002-3 Pr 1
Struktura nastave – zvanično! 1. Predmet: RAČUNARSKE ARHITEKTURE 2. Semestar: VII + VIII 3. Opterećenje: P AV LV - prosječno sedmično 3 0 3 - ukupno 90 0 90 4. Sadržaj Klasifikacije računarskih arhitektura. Paralelizam u jednoprocesorkim računarskim sistemima. Prevazilaženje uskih grla između podsistema računara i balansiranje propusnih opsega podsistema. Pipeline i vektorske arhitekture računarskih sistema. Multiprocesorske računarske arhitekture. Računari vođeni tokom podataka (data-flow računari i VLSI računarske arhitekture). Paralelne računarske arhitekture za specijalizovane primjene. Komparativna analiza različitih tipova arhitektura sistema i ocjena performansi. RA2002-3 Pr 1
Hronologija i sadržaj RAČUNARSKE ARHITEKTURE - PERFORMANSE I PODJELE VON NEUMANN-OV MODEL, RAZVOJ OD VON NEUMANN-A, OSNOVE DIZAJNA, KVANTITATIVNI PRINCIPI DIZAJNA ARHITEKTURA SKUPA INSTRUKCIJA NAČINI ADRESIRANJA MEMORIJE, OPERACIJE U SKUPU INSTRUKCIJA, UPRAVLJAČKE INSTRUKCIJE, TIPOVI I VELIČINE OPERANADA, KODIRANJE INSTRUKCIJA, ULOGA KOMPAJLERA, UTICAJ KOMPAJLERA NA ARHITEKTURU, OGLEDNA LOAD/STORE ARHITEKTURA, FORMAT INSTRUKCIJA, EFEKTIVNOST OGLEDNE ARHITEKTURE PROTOČNE STRUKTURE OGLEDNA ARHITEKTURA BEZ PROTOČNE STRUKTURE, OSNOVNA PROTOČNA STRUKTURA ZA OGLEDNU ARHITEKTURU HAZARDI STRUKTURNI HAZARDI, HAZARDI PODATAKA, KLASIFIKACIJA HAZARDA PODATAKA, HAZARDI PODATAKA KOJI ZAHTJEVAJU ZASTOJE, KOMPAJLERSKO RASPOREÐIVANJE INSTRUKCIJA, UPRAVLJANJE OGLEDNOM PROTOCNOM STRUKTUROM, UPRAVLJACKI HAZARDI, STATICKO PREDVIÐANJE GRANANJA, PREKIDI/IZUZECI U PROTOCNOJ STRUKTURI, IZUZECI KOD OGLEDNE ARHITEKTURE, KOMPLIKACIJE SKUPA INSTRUKCIJA, OGLEDNA ARHITEKTURA I VIŠECIKLUSNE OPERACIJE RA2002-3 Pr 1
Hronologija i sadržaj (nastavak) 5 PARALELIZAM NA NIVOU INSTRUKCIJA PARALELIZAM NA NIVOU PETLJE, DINAMICKIO RASPOREÐIVANJE INSTRUKCIJA, DINAMIČKO RASPOREÐIVANJE SA SEMAFOROM, TOMASULOV ALGORITAM, DINAMIČKO PREDVIÐANJE GRANANJA, KORIŠTENJE BAFERA ODREDIŠNIH ADRESA GRANANJA, SUPERSKALARNI I VLIW PROCESORI, SUPERSKALARNA VERZIJA OGLEDNE ARHITEKTURE, VIŠESTRUKO POKRETANJE INSTRUKCIJA SA DINAMIČKIM RASPOREÐIVANJEM, VLIW PRISTUP, OGRANIČENJA PROCESORA SA VIŠESTRUKIM POKRETANJEM INSTRUKCIJA 6 PODRŠKA KOMPAJLERA U POVECANJU ILP-a OTKRIVANJE I ODKLANJANJE ZAVISNOSTI, SOFTVERSKE PROTOČNE STRUKTURE, TRASIRANJE 7 PODRŠKA HARDVERA U POVECANJU ILP-a USLOVNE INSTRUKCIJE, KOMPAJLERSKO SPEKULISANJE UZ PODRŠKU HARDVERA, SARADNJA HW-SW U SVRHU SPEKULACIJE, SPEKULISANJE KORIŠTENJEM BITA "OTROVA", SPEKULATIVNE INSTRUKCIJE SA REIMENOVANJEM, HARDVERSKO SPEKULISANJE 8 PARALELNE RAČUNARSKE ARHITEKTURE PROJEKTOVANJE PARALELNIH RAČUNARA, NAČINI POVEZIVANJA KOMPONENTI SISTEMA, MREŽE ZA POVEZIVANJE, PREKLOPNICI, PERFORMANSE PARALELNIH RAČUNARA RA2002-3 Pr 1
Literatura Computer Architecture: A Quantitative Approach: 2nd Edition, J. L. Hennessy, D. A. Patterson Computer Organization & Design: The Hardware/Software Interface , D. A. Patterson, J. L. Hennessy A. Thanenbaum: Structured Computer Architectures a ako nemate ništa bolje, onda Novica Nosović, RAČUNARSKE ARHITEKTURE – interni materijal – ETF Sarajevo, 1999 RA2002-3 Pr 1
Ocjenjivanje Zadaće (2 individualno) 20% Seminarski radovi (2 timski rad) 40% Završni pismeni ispit 40% Najuspješnijih 10% završni ispit polažu prije junskog ispitnog roka RA2002-3 Pr 1
Teme za seminarske radove - prijedlozi Registarski prozori, Cache hierarhije, Data prefetching, Cache coherency, Game engine anatomy, Bluetooth, Pojekat seti@home, IBM Hypersocket, IBM Chipkill, NAS vs SAN, Systolic arrays, firewire, switch/router (ATM), Beowulf, ARM procesor, Embeded processors, AMD Opteron, DDR, Power management, VMware, UltraSPARC, blade servers ... ili po dogovoru! RA2002-3 Pr 1
} Zapamtite... 30 sedmica da naučite osnove računarskih arhitektura Preincip apstrakcija služi za predstavljanje sistema u slojevima Šta su podaci? – Program određuje šta je šta! Koncept smještanja programa u memoriju – i instrukcije su podaci!!! Princip lokalnosti diktira memorijsku hijerarhiju (od keša pa naniže) Povećanje performansi iskorištavanjem paralelizma (protočnosti) Kompajleri protiv interpretera – smenjuje se broj nivoa u sistemu Principi i zablude pri mjerenju performansi Nastavlja se ubrzani razvoj u računarstvu 2X brže svakih 18 mjeseci; brzina procesora, veličina memorije, kapacitet diska; Moore-ov zakon to omogućava (2X tran./chip/1.5 god) 5 klasičnih komponenti svakog računara 1. Kontrolna jedinica; 2. Put podataka; 3. Memorija; 4. Ulaz; 5. Izlaz } Processor RA2002-3 Pr 1