Sadržaj 1. Uvod u računarske arhitekture 9 1.1. Sadržaji poglavlja koja slijede 15 2. Istorija računara 17 2.1. Performanse i podjele računarskih arhitektura 20 2.1.1. Von Neumann-ov model računara 23 2.1.2. Razvoj od Von Neumann-a 27 2.2. Osnove dizajna računara 27 2.2.1. Kvantitativni principi dizajna računara 33 3. Arhitektura skupa instrukcija 35 3.1. Načini adresiranja memorije 36 3.2. Operacije u skupu instrukcija 37 3.2.1. Upravljačke instrukcije 38 3.2.2. Tipovi i veličine operanada 39 3.2.3. Kodiranje instrukcija 40 3.3. Uloga kompajlera 41 3.3.1. Uticaj kompajlera na arhitekturu 42 4. Arhitektura oglednog procesora 44 4.1. Format instrukcija 44 4.2. Efektivnost ogledne arhitekture 49 4.3. Protočne strukture 51 4.4. Ogledna arhitektura bez protočne strukture 51 4.5. Osnovna protočna struktura za arhitekturu oglednog procesora 53 5. Hazardi - osnovni problemi kod protočnih struktura 57 5.1. Strukturni hazardi 57 5.2. Hazardi podataka 59 5.2.1. Klasifikacija hazarda podataka 62 5.3. Hazardi podataka koji zahtjevaju zastoje 62 5.4. Kompajlersko raspoređivanje instrukcija 64 5.5. Upravljanje oglednom protočnom strukturom 65 5.6. Upravljački hazardi 67 5.6.1. Statičko predviđanje grananja 71 5.7. Prekidi/izuzeci u protočnoj strukturi 72 5.7.1. Izuzeci kod ogledne arhitekture 75 5.8. Komplikacije skupa instrukcija 76 5.9. Ogledna arhitektura i višeciklusne operacije 77 6. Paralelizam na nivou instrukcija 83 6.1. Paralelizam na nivou petlje 88 6.2. Dinamičko raspoređivanje instrukcija 89 6.3. Dinamičko raspoređivanje instrukcija sa semaforom 90 6.4. Dinamičko raspoređivanje instrukcija pomoću Tomasulovog algoritma 95 7. Dinamičko predviđanje grananja 102 7.1. Korištenje bafera odredišnih adresa grananja 108 8. Podrška kompajlera u povećanju paralelizma na nivou instrukcija 113 8.1. Otkrivanje i otklanjanje zavisnosti 113 8.2. Softverske protočne strukture 115 8.3. Trasiranje 117 8.4. Podrška hardvera u povećanju paralelizma na nivou instrukcija 119 8.4.1. Uslovne instrukcije 120 8.5. Kompajlersko spekulisanje uz podršku hardvera 121 8.6. Saradnja hardvera i softvera u svrhu spekulacije 122 8.6.1. Spekulisanje korištenjem bita “otrova” 123 8.6.2. Spekulativne instrukcije sa reimenovanjem 124 8.7. Hardversko spekulisanje 124 9. Superskalarni i VLIW procesori 132 9.1. Superskalarna verzija ogledne arhitekture 132 9.2. Višestruko pokretanje instrukcija sa dinamičkim raspoređivanjem 134 9.3. VLIW pristup 135 9.4. Ograničenja procesora sa višestrukim pokretanjem instrukcija 136 10. Memorijska hijerarhija 138 10.1. Keš memorije 141 10.2. Performanse keš memorije 146 10.3. Virtuelna memorija 150 10.4. Umjesto zaključka o memorijskoj hijerarhiji 159 11. Ulazno-izlazni podsistem 161 11.1. Upravljanje U/I uređajima 177 11.2. Adresiranje U/I uređaja 178 11.3. Programsko prozivanje i prekidi 178 11.4. Direktni pristup memoriji 181 12. Paralelne računarske arhitekture 184 12.1. Projektovanje paralelenih računara 184 12.2. Načini povezivanja komponenti sistema 184 12.3. Mreže za povezivanje 187 12.4. Preklopnici 189 12.5. Performanse paralelnih računara 191 Literatura