Professional Documents
Culture Documents
Magacin (Stack)
Koncepcija: FIFO (First In First Out) Podatak koji se prvi smesta u red cekanja prvi se i izbavlja. Koristi se za formiranje bafera za smestanje opisa zadataka koji cekaju na izvrsenje od strane procesora i dr. Predstavlja FIFO bafer. Ovde su potrebna dva pokazivaca: - Zaglavlje (head) - Rep (tail) Zaglavlje: pokazuje na prvu slobodnu lokaciju koja sledi nakon zadnjeg unetog podatka. Rep: pokazuje lokaciju prvog unetogpodatka Kada i rep i zaglavlje pokazuju na istu lokaciju => red cekanja je prazan.
Zasniva se na identifikaciji dva razlicita nezavisna koncepta: toka instrukcija i toka podataka Tok podataka definie se kao sekvenca podataka koji se pozivaju od strane toka instrukcija (ukljuujui ulazne podatke i privremene podatke) Tok instrukcija se definie kao sekvenca instrukcija koja se obavlja od strane raunara Postoje etiri klase raunara: SISD SIMD MISD MIMD
jednostruki tok podataka jednostruki tok instrukcija viestruki tok instrukcija viestruki tok podataka
Klasifikacione eme
Flynnova klasifikacija racinara
SISD MISD
SIMD MIMD
SISD - jedinstveni tok instrukcija - jedinstveni tok podataka (Single Instruction stream Single Data stream) klasu raunara ine konvencionalne von Neumann-ove arhitekture (program se izvrsava prema redosledu instrukcija). Kod ovih raunara u jednom trenutku procesira se samo jedna instrukcija koja operie nad jedinstvenim tokom podataka, operanada i rezultata. SIMD - jedinstveni tok instrukcija i viestruki tok podataka (Single Instruction stream Multiple Data stream). Kod ovih raunara jednom instrukcijom simultano se operie nad nekoliko elemenata podataka. MISD - viestruki tok instrukcija i jedinstveni tok podataka (Multiple Instruction stream Single Data stream). Kod ove klase raunara nad jedinstvenim podacima operie se od strane veeg broja instrukcija MIMD - viestruki tok instrukcija viestruki tok podataka (Multiple Instruction stream Multiple Data stream). Ova klasa ra~unara je veoma iroka jer pokriva sve multiprocesorske i multikompjuterske sisteme, tj. sisteme sa privatnom ili deljivom memorijom, slabo, umereno ili vrsto spregnute sisteme itd.
Na mainskom nivou svaka instrukcija se predstavlja sekvencom bitova Kodiranjem ovih bitova formira se informacija koja je potrebna radi upravljanja izvrenjem instrukcije Ovom informacijom treba da se definie: tip operacije koja treba da se izvri implicitna ili eksplicitna specifikacija jednog ili veeg broja operanada nad kojima se izvrava operacija tj. specificiraju se izvorni operandi adresa gde treba da se smesti rezultat obavljene operacije, tj. specificira se odredini operand, i adresa naredne instrukcije koju treba izvriti nakon to se obavi tekua
Predstavljanje instrukcija
Instrukciju ine sledea dva globalna dela: operacioni adresni Operacioni deo se zove operacioni kd, tj. opkd Adresni deo sadri informaciju o izvornim operandima, odredinom operandu i adresu naredne instrukcije Izgled (layout) instrukcije zove se format instrukcije.
Sve nabrojane stavke (opkdovi, operandi, adresni naini rada, i adresni opseg) ukazuju da je potrebno koristiti vei broj bitova po instrukciji to znai da e instrukcija biti dua. Due instrukcije zauzimaju vei memorijski prostor i za due vreme se pribavljaju iz memorije, a to znai da ih CPU izvrava sporije. Za memoriju kaemo da predstavlja "usko grlo" sistema jer u principu CPU moe da izvrava instrukcije bre nego to ih moe pribaviti. Reenje se sastoji u korienju : ke memorije kraih instrukcija Za zadatu duinu instrukcije neophodno je napraviti kompromis izmedju broja opkdova i adresnih mogunosti. Faktori koji imaju direktni uticaj na duinu polja za adresiranje su: broj adresnih naina rada broj operanada specifikacija internih registara u odnosu na memoriju adresni opseg adresna granularnost
Jedan od standardnih naina za opis arhitekture uzima u obzir koliko je eksplicitnih adresa operanada ukljueno u instrukcije. Najvei broj CPU-ova izvodi se kao jedno-, dvo-, ili tro-adresna maina, pri emu se adresa naredne instrukcije dobija implicitno ( obino preko programskog brojaa (PC)). U praksi etvoro-adresne instrukcije veoma retko sreemo. Neki raunari su projektovani tako da najvei broj instrukcija ne sadri eksplicitne adrese, pa se zbog toga ove maine zovu nulto-adresne maine. Tro-adresna maina Kod tro-adresnih instrukcija specificiraju se lokacije sva tri operanda, dva izvorina, i jedan odredini. Ove instrukcije zahtevaju relativno dug format. Tro-adresni format instrukcija obino sreemo kod 32-bitnih RISC procesora Primer: HLL aritmetiki iskaz Y:= (A-B) / (C+D*E) se izvrava pomou sledee sekvence
Broj adresa
Dvo-adresna maina Kod dvo-adresnih instrukcija specificiraju se dva operanda pri emu je jedan od izvorinih operanada istovremeno i odredini. Ovaj nain adresiranja se veoma esto koristi kod 8-, 16- i 32-bitnih mikroprocesora tipa CISC . Primer: HLL aritmetiki iskaz Y:= (A-B) / (C+D*E) se izvrava pomou sledee sekvence
Jedno-adresna maina Kod jedno-adresnih maina specificira se jedan operand i to izvorini, drugi izvorini operand je istovremeno i odredini i implicitno se podrazumeva. Ovaj pristup je bio korien kod ranijih maina pri emu se implicitna adresa odnosila na CPU-ov registar poznat kao akumulator (ACC) Primer: HLL aritmetiki iskaz Y:= (A-B) / (C+D*E) se izvrava pomou sledee sekvence
Nulto-adresna maina Kod aritmetiko-logikih operacija ne specificira se eksplicitno adresa operanda, jer se eksplicitno podrazumeva gde se nalazi operand. Svi operandi koji se koriste potrebno je da budu na vrhu magacina. Na vrh magacina ukazuje pokaziva SP (Stack Pointer). Za izbavljanje podatka sa vrha magacina koristi se operacija Pop, a za smetanje podatka na vrh magacina opeacija Push, koje su jedine operacije za komuniciranje sa memorijom Primer: HLL aritmetiki iskaz Y:= A*B+C*C se izvrava pomou sledee sekvence TOS oznaava vrh magacina
Adresni prostori
Kod najveeg broja raunara postoji vei broj razliitih adresnih prostora Svaki prostor ima odredjenu namenu, a najvanije su: Registarski prostor ine ga registri opte i specifine namene Prostor glavne memorije koristi se za uvanje programa i podataka U/I prostor namenjen za adresiranje periferala Prostor magacina realizuje se kao memorija tipa LIFO Upravljaki prostor ine ga PSW, SR, registri MMU-a i dr.
Svakom operandu instrukcije pridruen je odgovarajui podatak X. Podatak moe biti lociran u memorijskom, U/I podsistemu, CPU-ovim registrima, ili da predstavlja deo instrukcije. Da bi izvrio instrukciju procesor treba da pribavi tekuu vrednost X-a. Ova vrednost se moe specificirati na nekoliko naina koje zovemo adresni naini rada (addressing modes) ili adresne tehnike (addressing techniques). Adresni naini rada su sredstva koja se koriste za preslikavanje naina vidjenja adresibilnog prostora maine na pogled maine. Odredjuju gde se precizno nalazi eljeni podatak tj. gde je njegova efektivna adresa, EA. Specifikacija adresnog naina rada, koja je sadrana u okviru instrukcije, odredjuje kako procesor treba da koristi i interpretira bitove instrukcije i ostalu informaciju da bi izraunao efektivnu adresu. Da bi odredio efektivnu adresu CPU koristi usluge sledeih operacija: selekcija bira se operand koji moe biti registarski ili memorijski korienje baze odnosi se na sabiranje vrednosti pomou kojih se formira adresa skaliranje umnoavanje vrednosti nekog od operanda (obino umnoavanje sa faktorom 1, 2, 4, 8, ....) indeksiranje odnosi se na sabiranje i noenje celobrojne vrednosti indirekcija itanje vrednosti sa zadate adrese inkrementiranje dodavanje konstante registru ili mem. lokaciji dekrementiranje oduzimanje konstante registru ili mem. lokaciji Naini adresiranja U zavisnosti od toga kako se vri formiranje efektivne adrese razlikujemo sledee naine adresiranja :
Naini adresiranja
10
podatak
memorijska adresa
podatak
podatak
memorijska adresa
podatak
Apsolutno adresiranje Ako adresa u instrukciji specificira (memorijsku) lokaciju operanda bez korienja bilo koje druge dodatne informacije tada taj tip efektivne adrese nazivamo apsolutna adresa. Ovaj tip apsolutne efektivne adrese mogue je specificirati na vie naina pa u zavisnosti od toga razlikujemo sledee naine apsolutnog adresiranja: neposredno adresiranje vrednost operanda je sastavni deo instrukcije direktno adresiranje odredjeni bitovi instrukcije sadre kompletnu EA implicitno sama instrukcija ne sadri adresnu informaciju u eksplicitnoj formi, ve se EA formira na osnovu opkda Indirektno adresiranje Indirektnom adresom nazivamo onu adresu koja ne specificira memorijsku lokaciju operanda ve memorijsku lokaciju u kojoj se nalazi adresa operanda. Razlikujemo sledea dva naina indirektnog adresiranja: registarsko indirektno procesor interpretira sadraj specificiranog registra kao (direktnu) memorijsku lokaciju. indirektno adresiranje preko memorije indirektna memorijska adresa specificira direktno memorijsku adresu gde se nalazi adresa operanda.
11
Relativno adresiranje Kod relativnog adresiranja polje operanda sadri relativnu adresu ili razmetaj, a kompletna adresa operanada formira se od strane CPU-a. Instrukcijom se takodje aksplicitno ili implicitno identifikuju ostale memorijske lokacije koje sadre dodatnu adresnu informaciju. Kod relativnog adresiranja postoje sledee varijante: PC-relativno - adresa operanda je specificirana relativno u odnosu na sadraj programskog brojaa bazno-registarsko - u registru kome se obraamo uva se memorijska adresa koju sabiramo sa razmetajem (specificiran u samoj instrukciji), pa se na taj nain formira EA. indeksno-adresiranje - EA se izraunava sabiranjem sadraja selektovanog registra sa adresom specificiranom u okviru instrukcije. autoindeksno - u toku izvrenja instrukcije vri se automatsko inkrementiranje ili dekrementiranje indeksnog registra preko magacina - pristup magacinu regulie se pomou pokazivaa magacina. Neposredno adresiranje Najjednostavniji oblik apsolutnog adresiranja je neposredni (immediate addressing) Adresni deo instrukcije specificira vrednost operanda, tj. operand je konstanta i sastavni je deo instrukcije
Karakteristike: koristi se da definie konstante operand se pribavlja u CPU u trenutku kada se pribalja instrukcija obim podatka koji se pribavlja ogranien je obimom adresnog polja
12
Direktno adresiranje Kod direktnog naina adresiranja u odgovarajue polje operanda (polje operand_A) smetena je adresa memorijske lokacije A koja odgovara podatku (operandu) X kome se pristupa, tj. adresni deo instrukcije sam predstavlja adresu na osnovi koje se vri obraanje memoriji, pa se zbog toga ova adresa zove direktna adresa.
Karakteristike: prednost ovog naina rada adresiranja je jednostavnost izvodjenja, a nedostatak ogranieni adresni opseg
13
Registarsko adresiranje Slino je direktnom adresiranju. Jedina razlika je u tome to se adresno polje odnosi na specifikaciju registra, a ne adresu glavne memorije
Karakteristike: adresno polje instrukcije kojim se specificira registar je mali i obima nekoliko bitova ne vri se obraanje memoriji instrukcije koje manipuliu sa sadrajem registra brzo se izvravaju ogranien adresni prostor Implicitno adresiranje Za implicitnu adresu operanda kaemo da je ona koja se u adresnom delu naredbe ne specificira posebno, ve je mesto operanda unapred poznato i zavisi od opkda polja. Karakteristike: Ovakav nain rada adresiranja koristimo kod postavljanja vrednosti markera registra CCR Tipini primeri su instrukcije Clc ;marker prenosa C se postavlja na nulu Stc ;marker prenosa C se postavlja na jedan Indirektno adresiranje preko memorije Kod indirektnog adresiranja, adresom se specificira memorijska lokacija u kojoj se ne uva operand nego adresa operanda
Karakteristike: potrebne su dve operacije pribavljanja mogunost pristupa veem adresnom prostoru vei broj obraanja memoriji
14
Registarsko indirektno adresiranje Kao to je registarsko adresiranje analogno sa direktnim adresiranjem, tako je i registarsko indirektno adresiranje analogno sa indirektnim adresiranjem. U oba sluaja razlika se ogleda u sledeem: Adresno polje instrukcije kod indirektnog adresiranja ukazuje na memorijsku lokaciju, a kod registarsko indirektnorg adresiranja na registar
Relativno adresiranje Kada se deo adresne informacije sadri u instrukciji, a kompletna adresa formira od strane CPU-a, za ovaj nain adresiranja kaemo da se zove relativno. Ovo adresiranje se karakterie time da polje operanda sadri relativnu adresu ili razmetaj (displacement ili offset) neki autori za termin razmetaj koriste pojam pomeraj. Tri najee koriene tehnike relativnog adresiranja su: PC-relativno bazno-registarsko indeksno PC - relativno adresiranje Kod ovog adresiranja registar kome se implicitno obraamo je programski broja (PC) Tekua adresa instrukcije sabira se sa razmetajem i na taj nain formira se EA. Kod ove operacije razmetaj se tretira kao broj u dvojinom komplementu. Kao rezultat, EA predstavlja relativni razmetaj u odnosu na adresu instrukcije PC relativno adresiranje koristi koncept lokalnosti jer najvei broj obraanja memoriji je relativno blizu instrukciji koja se tekue izvrava. Efektivna adresa se izraunava na sledei nain: EA = (PC) + D gde je: D razmetaj specificiran instrukcijom
15
Bazno-registarsko adresiranje Interpretacija bazno registarskog adresiranja je sledea: Registar kome se obraamo, R, uva memorijsku adresu, a adresno polje sadri razmetaj, D, (obino je to neoznaena celobrojna vrednost) u odnosu na memorijsku lokaciju. Kada se registar R koristi na ovaj nain kaemo da je bazni registar, a njegov sadraj se zove bazna adresa. Obraanje baznom registru moe biti eksplicitno ili implicitno. Bazno-registarsko adresiranje podrava relokatibilnost programa i podataka, tj. mogunost raunarskog sistema da u razliito vreme programu ili segmentima podataka dodeljuje razliite oblasti glavne memorije Indeksno adresiranje Kod indeksnog adresiranja interpretacija je sledea: Adresno polje, A, sadri adresu glavne memorije, a u registru R, u kome se obraamo smeten je pozitivni razmetaj u odnosu na tu adresu. Za registar R kaemo da je indeksni registar . Korienje ovog naina adresiranja je suprotan interpretaciji bazno-registarskog adresiranja. Nezavisno od interpretacije, kod oba naina adresiranja (bazno-registarski i indeksni) metod izraunavanje EA je isti, EA=R+D. Indeksiranjem se obezbedjuje efikasan mehanizam za obavljanje iterativnih operacija Autoindeksiranje Indeksni registar se esto koristi za obavljanje iterativnih zadataka. Kod nekih arhitektura, nakon obavljene iterativne operacije, ugradjuje se onaj deo aktivnosti instrukcije koji automatski vri inkrementiranje ili dekrementiranje indeksnog registra. Rezultantni adresno modifukujui proces se zove autoindeksiranje. Postoje sledee varijante autoindeksiranja: postinkrementiranje, postdekrementiranje, preinkementiranje, predekrementiranje, kombinacija post-/pre-inrementiranje/dekrementiranje Adresiranje magacina Magacin predstavlja linearno polje lokacija glavne memorije. Magacinu se moe pristupiti samo sa jednog kraja koji se naziva vrh-magacina (TOS- Top of Stack). Pristup magacinu regulie se registrom SP koji se naziva pokaziva magacina (stack pointer). Operacijom upis u magacin, nazvanom Push smeta se novi podatak na vrh magacina. Operacija itanje, nazvana Pop izbavlja podatak sa vrha magacina. Operacija Push/Pop menja se poloaj vrha magacina za odgovarajuu duinu operanda koji se smeta/izbavlja u/iz magacina.
16
Programeri esto imaju potrebu da nekoliko puta u okviru programa ponavljaju odredjene sekvence. Najjednostavnije ovaj problem se reava tako to se sekvenca instrukcija kad god zatreba prepie. Ako je sekvenca dugaka, ili se esto ponavlja, ovaj posao postaje zaista dosadan. Kao alternative se nude sledea dva reenja koja se baziraju na grupisanju instrukcija u jedinstvenu celinu : makro naredbe potprogrami (procedure) Obe strategije imaju svoje prednosti i nedostatke. Kod poziva, procedure izvravaju instrukcije Call i Return. Ako je procedura kratka, a poziv procedure est, izvrenje instrukcija Call i Return u znaajnoj meri usporava brzinu izvrenja programa. Makro naredbe obezbedjuju efikasnije reenje problema uestalog izvrenja iste ili skoro iste sekvence instrukcija. Nedostatak makro naredbe se ogleda u poveanju obima programa.
Makro naredbe
Veliki broj asemblerskih jezika je proirljiv. Asembleri dozvoljavaju korisniku da definie nove instrukcione mnemonike koje zovemo makro naredbe Makro naredbe se mogu smatrati kao sastavni deo jezika, pa se kao takve i mogu pozivati. Novo definisane instrukcije mogu se koristiti potpuno ravnopravno sa svim ostalim instrukcijama iz skupa instrukcija na asemlerskom jeziku. Makro naredba predstavlja sekvencu mainskih instrukcija koja se definie jedanput, a moe se koristiti po nekoliko puta u toku izvornog programa. Definicija makro naredbe lii na definiciju procedure. Procedure i makro naredbe nisu isto. Razlika se ogleda u sledeem : korienjem makro naredbi ne tedi se memorijski prostor na mestima na kojima se poziva marko naredba ubacije se sekvenca mainskih instrukcija, koje ine makro naredbe, ime se obim programa poveava makro naredbe nije potrebno povezivati, tj. linkovati. makro naredbe su pogodnije za primenu kada se u toku programa javljaju kratke celine po nekoliko puta, a procedure kada su celine due. Definicija makro naredbe Definicija makro naredbe predstavlja metod dodele imena delu programa. Razliiti asembleri koriste razliitu notaciju kod definicje makro naredbi. Nezavisno od detalja svi imaju sledee tri osnovne celine: zaglavlje u kome se javlja ime makro naredbe koja se definie, tekst koji ini telo makro naredbe, direktiva koja se odnosi na kraj definicije. Kada se ime makro naredbe koristi kao opkd tada je ono poznato kao makro poziv a njegova ekspanzija telom makro naredbe zove se makro ekspanzija Definicija makroa ukljuuje zadavanje formalnih parametara, a makro pozivom se predaju aktuelni parametri.
17
Procedure
Procedura je osnovna programska jedinica kod najveeg broja HLL-ova. Korienjem procedure moe da pobolja itljivost, pisanje, i odravanje velikih programa. Procedure takodje smanjuju veliinu programa jer je njihov kd deljiv, tj. zajedniki za vei broj programa Upotreba procedura je takodje svojstvena kod uvodjenja novih programskih tehnika kao to je rekurzivno programiranje ime se u znaajnoj meri smanjuju napori programera kod realizacije odredjenih algoritama. Lako prepoznajemo korienje procedura u skoro svim programima koje danas sreemo. Implementacija procedura podrazumeva upravljanje nekim strukturama podataka koje zbog poziva procedura unose dodatno vremensko prekoraenje, tj. usporavaju brzinu izvrenja programa Savremeni mikroprocesori poseduju specijalne instrukcije koje izvode ove aktivnosti, a njihov efekat se ogleda u poboljanju performansi Aktivnosti kod poziva procedura Prenos parametara proceduri (preko magacina, registara, itd) Predaja upravljanja eljenoj proceduri Dodela prostora radi memorisanja lokalno promenljivih, Pamenje konteksta programa iz koga je izvren poziv, Pristup parametrima u toku izvrenja procedure, Obnavljanje konteksta programa iz koga je izvren poziv, Oslobadjanje prostora koji je bio rezervisan za memorisanje lokalno promenljivih, Izbavljanje parametara (iz magacina, registara, itd), Vraanje upravljanja programu iz koga je izvren poziv.
18
U odnosu na to kako se skupom instrukcija vri specifikacija operanada instrukcije raunare moemo podeliti na sledee tipove: L/S Load/Store arhitekture R/M Registar-Memorija arhitektura R + M Registarplus-Memorija arhitekture
Podela raunara
Load/Store arhitektura
RISC masine karakterise Load/Store format naredbi. Svi operandi se nalaze u registrima. Upis podataka u memoriju: pomocu Store naredbe, Citanje podataka iz memorije: pomocu Load naredbe. Ova koncepcija arhitekturnog resenja obezedila je sledece karakteristike: Regularnost kod izvrsenja instrukcija Jednostavno dekodiranje instrukcija Reducirani sklop naredbi Velika brzina rada Fiksni obim instrukcija sa uniformnom prezentacijom polja u oviru instrukcije.
Registar/Memorija arhitektura
Kod ovih arhitektura jedan od izvornih operanada mora da se nalazi u memoriji, a drugi izvorni, koji se istovremeno koristi kao odredisni, mora da bude regstarski. Ove masine koriste dvo-adresni format instrukcija
Registar-plus-Memorija arhitektura
Operandi se nalaze u memoriji ili u registrima. Sva tri operanda se mogu nezavisno specificirati (tro-adresni format). Kod dvo-adresnih formata, adresa jednog od izvornih operanada mora da bude i odredisna.
19
Tehnike za U/I prenos podataka se dele na sledee tri grupe: Programirana U/I tehnika Pragrammed I/O technique Prekidna U/I tehnika Interrupt I/O technique Direktni pristup memoriji - DMA (Direct Memory Access) Programirana U/I i prekidna U/I tehnika se obavljaju pod programskom kontrolom, dok se DMA obavlja pod hardverskom kontrolom
20
Adresiranje U/I uredjaja: U/I uredjaji se povezuju na sistemsku magistralu preko odgovarajucih U/I interfejsa, tj. Kontrolera U/I uredjaja. Kod mikroracunara se za adresiranje U/I uredjaja koriste dve metode: 1. Memorisko preslikani U/I I 2. Izdvojeni U/I. Kod Memorijsko preslikanog U/I-a adresni proctor za memorijske lokacije I U/I uredjaje je jednistven. Drugim recima, linije za upis I citanje koje pripadaju upravljackoj magistrali su jedinstvene. Naredbe koje se koriste su iste, nezavisno da li se prstupa memoriji ili U/I-u. Izdvojeni U/I ima odvojene prostore za memoriju I U/I tj. Jedna grupa linija uravljacke magistrale se koristi za upis ili citanje memorije a druga za U/I. Kod ovog pristupa U/I upravljacke linije na magistrali se aktiviraju posebnim komandama. Tipovi programiranog U/I prenosa Postoje dva tipa programiranog U/I: Bezuslovni U/I prenos karakteristike su sledee: Koristi se tamo gde je vreme odziva spoljnih perifernih uredjaja poznato i stalno. Uredjaji moraju biti spremni za prenos podataka u trenutku izvodjenja U/I naredbe. Prenos se lako izvodi. Uslovni U/I prenos karakteristike su sledee: U toku prenosa mikroraunar ispituje status U/I. Ako U/I uredjaj nije spreman programski se ispituje njegov status sve dok se ne ispuni uslov za predaju ili prijem. Ovakav tip prenosa koristi se na onim mestima i u onim sluajevima gde se ne sme preuzeti akcija ako prethodno nisu ispunjeni neki uslovi. Nedostaci programiranog U/I prenosa: Brzina prenosa je ograniena brzinom sa kojom CPU moe da testira i opsluuje U/I uredjaje Vreme koje CPU potroi na testiranje statusa U/I uredjaja kao i vreme koje je potrebno da se obavi prenos podataka esto je mogue efikasnije iskoristiti
21
Prekidna U/I tehnika Kod prekidne U/I tehnike prenos podataka se inicira od strane U/I uredjaja koji signalaizira CPU-u kada je spreman za prenos podataka. Ne postoji vie potreba za permanentnim stalnim testiranjem statusa U/I uredjaja. Osnovni mehanizam rada je isti kao kod programirane U/I tehnike: CPU razmenjuje podatke sa U/I uredjajem preko svojih registara. Drugim recima: sastavni deo U/I interfejsa su jos uvek portovi za podatke, upravljanje I statusni. Za razliku od programirane U/I tehnike, gde je iniciranje procesa prepusteno CPUu pa U/I program mora cesto da analizira stats U/I uredjaja, kod prekidne U/I tehnike prenos podataka inicira U/I uredjaj koji koristi prekidni mehanizam da obavsti CPU o svojoj spremnosti.. U/I koristi iste prekindne mehanizmekada je potrebano da CPU obrati paznju na njega iz drugih razloga, npr. Kada se javi greska, da ukase na zavrsetak lokalne operacije itd. Dva osnovna problema kod ove tehnike: 1. Kako CPU odredjuje koji uredjaj je zahtevao prekid? 2. Koji zahtev ima prednost kada se javi vise zahtva od jednom? (1.) Prihvatanje adrese za obradu prekida U odnosu na nain kako CPU odredjuje adresu uredjaja koji je izazvao prekid razlikujemo dva tipa prekida: Vektorski prekidi U/I uredjaj predaje prekidni vektor koji se koristi da generie poetnu adresu rutine za obradu tog prekida. Vektor moe da predstavlja potpunu ili parcijalnu adresu. Korisni su kod CPU-ova koji primaju zahteve za prekid od nekoliko uredjaja preko iste uprvaljake linije Nevektorski prekidi U/I uredjaj predaje zahtev za prekid CPU-u aktiviranjem linije IRQ Kada je CPU spreman da procesira zahtev on aktivira signal IACK kojim ga obavetava da je prihvatio zahtev za prekid (2) etiri poznate kategorije prihvatanja zahteva za prekid kada istovremeno naidje vei broj zahteva za prekid su: 1. Veci broj prekidnih linija. Najjednostavniji nacin da se resi problem prihvatanja zahteva za prekid je da se obezbedi veci broj prekidnih linija zmedju CPU i U/I interfejsa. U ovom slucaju je potrebno svakom zahtevu za prekid dodeliti jedinstveni prioritet prei cemu ce svaki izvor prekida biti poznat CPUu. => CPU odredjuje kojoj ce liniji dodeliti najveci prioritet. Neprakticno resenje jer zahteva veliki broj veza. 2. Softversko kruno ispitivanje Jednostavan nain za usluzivanje prekida. U ovom sluaju je vei broj U/I ureaja povezano na vei broj U/I interfejsa. => Prioritet opsluivanja se odreuje softverskim kruznim ispitivanjem. Nedostatak: dugo traje
22
3. Lananje i vektorksko prekidanje Lancanje: Hardverski se odredjuje prednost uredjaja na osnovu aktivacije odgovarajuce linije. Ukoliko se desi da dva interfejsa istovremeno izdaju zahtev za prekid, prvi ce biti usluzen onaj koji je blii mkroprocesoru. => Prioritet se odredjuje fizickom pozicijom ploce u sistemu. Prednosti: jedinstven nacin identifikacije, ne zahteva dodatni hardver a postojeci se lsko prosiruje i preuredjuje. Nedostaci: ima mogucnost prosirivanja I preuredjivanja samo hardvera, prioritet opsluzivanjaje odredjen fizickom pozicijom, zahteva dodatno vreme. Vektorsko prekidanje: Unapredjena verzija metode lancanja da bi se smanjilo vreme prekoracenja kod procesa kruznog opsluzivanja. => Svakoj INTR liniji je dodeljen prioritet. 4. Magistralno arbitrazni metod Koristi vektorski prekid sa logikom tipa kodera prioriteta. Samo jedan U/I interfejs ima pravo upravljanja nad magistralom u jednom trenutku.
23
DMA rad: 1. CPU inicira DMA kontroler koji tada spreman za prenos podataka 2. U/I uredjaj obavestava DMA kontroler kada je spreman za rad. 3. DMA kontroler pocinje sa prenosom podataka 4. DMA kontroler obavestava CPU kada je proces zavrsen (obicno se koristi u tu svrhu prekid) Tipovi DMA prenosa 1. Podela u zavisnosti od nacina realizacije DMA prenosa: a. Kradja ciklusa: DMA kontroler koristi sistemsku magistralu na princiu kradje magistralnih ciklusa mikroprocesoru. Okupiranje I oslobadjanje magistrale se sinhronizuje sa mikroprocesorom. Koristi se kod relativno sporih prenosa podataka. b. Normalni: DMA kontroler koristi celu sistemsku magistralu u toku trajanja celokupnog vremena koje je potrebno za prenos bloka podataka a mikroprocesoru je zabranjen pristup magstrali za taj duzi vremenski period. Koristi se za veoma brz prenos podataka. Nedostatak: mikroprocsor je duze vreme pasivan. Resenje: Podaci se salju u odredjenom broju podblokova specificiranih duzina da bi CPU imao pristup magistrali za hitne operacije nakon svakog prenesenog podbloka. Ovaj princip se zove BURST (paketni) DMA. c. Transparentni: DMA kontroler koristi sistemsku magistralu kada je mikroprocesor ne koristi, bez sukobljavanja. Ovo se ostvaruje kada je vreme pristupa memoriji kratko ili kada se koriste specijalni magistralni slotovi koji u datom trenutku nisu potrebni CPUu. Koristi se I za brzi I za spori prenos kod odredjenih vrsta magistrala. 2. U zavisnosti od nacina hardverske realizacije DMA kontrolera, prenos na sistemskoj magistrali moze biti:. a. Direktni: ostvaruje se izmedju U/I podsistema I memorije b. Indirektni: DMA kontroler je sklop koji sluzi da privremeno prihvati podatak tipa bajt ili rec koji se prenosi izmedju U/I podsistema I memorije. Nedostatak: prenos svakog podatka se realizuje za vremenski period od dva magistralna ciklusa. 3. U zavisnosti od smera prenosa podataka, razlikujemo sledece tipove DMA prenosa: a. DMA IN: prenos tipa U/I podsistem => memorija b. DMA OUT: prenos tipa memorija => U/I podsistem c. DMA MEMORY TO MEMORY: prenos tipa memorija => memorija Mana DMA: implementacija DMA tehnike zahteva ugradnju relativno komplikovanog hardvera.
24
Kada se govori o arhitekturi raunara definiu se tri osnovna i razliita nivoa apstrakcije: arhitekturni specificira funkcionalno ponaanje procesora, implementacioni odnosi se na logiku strukturu ili organizaciju koja vai za tu arhitekturu, i realizacioni predstavlja fiziku strukturu u koju se ugradjuje ta implementacija Arhitektura Arhitektura se esto naziva ISA. ISA se koristi kao interfejs izmedju softvera i hardvera, ili izmedju programa i procesora. ISA specificira skup instrukcija koji karakteriu funkcionalno ponaanje unapred definisanog skupa instrukcija. Sav softver se mora preslikati ili kodirati u ovaj skup instrukacija kako bi mogao da se izvrava od strane procesora. Svaki program se kompajlira u sekvencu instrukcija koje pripadaju tom skupu. Tipini primeri arhitektura su IBM 360, DEC VAX, Motorola 68k, Power PC, IA 32, i dr. Atributi koji prate arhitekturu su asemblerski jezik, format instrukcija, adresni nain rada, i programski model. Implementacija Implementacija predstavlja specifini dizajn arhitekture koja se naziva mikroarhitektura. U toku ivota, jedna ISA arhitektura moe da ima vei broj implementacija, pri emu sve implementacije izvravaju programe za tu ISA. Primeri implementacija poznatih arhitektura su IBM 360/91, VAX 11/780, Motorola 68040, PowerPC 604, Intel P6. Atributi koji su tipini za implementaciju su protoni dizajn, ke memorija, i prediktori granjanja. Implementacija se ostvaruje na nivou hardvera i nevidljiva je softveru. Realizacija Realizacija implementacije se odnosi na fiziko ugradjivanje dizajna. Kada se govori o mikroprocesorima tu se pre svega misli na to da li je to fiziko ugradjivanje sprovedeno na ipu ili multiipu. Za datu implementaciju postoji vei broj relizacija. Realizacije se mogu razlikovati u odnosu na taktnu frekvenciju, kapacitet memorije, interfejs magistrale, pakovanje i dr. Atributi koji prate realizaciju su povrina ipa, disipacija, hladjenje, pouzdanost, i dr. Projektovanje mikroprocesora- ta definie ISA ? ISA definie skup instrukcija nazvan asemblerske instrukcije. Svaka instrukcija specificira operaciju i jedan ili vei broj operanada. Svaka ISA na jedinstven nain definie asemblerski jezik. Program na asemblerskom jeziku ini sekvenca asemblerskih instrukcija. Uglavnom ISA se medjusobno razlikuju po tome koliki se broj operanada specificira instrukcijom. Postoje 3-, 2-, 1-, i 0-adresne maine.
RISC arhitekture
25
RISC je skraenica od Reduced Instruction Set Computer to znai procesor sa redukovanim skupom naredbi broj naredbi reda 100 CISC je skraenica od Complex Instruction Set Computer to znai procesor sa sloenim skupom naredbi broj naredbi reda nekoliko stotina (600 800) Prelazak sa CISC na RISC CISC koncepti RISC i CISC koncepti predstavljaju dve kole koje se odnose na ISA Osnovne arhitekturne karakteristike klasinih CISC procesora su: Ranije CISC arhitekture imale su: Jedinstveni ke u kome se uvaju instrukcije i podaci. Isti put za podatke/instrukcije i koristile malo registarsko polje (RF-register file). Mikroprogramski upravljanu memoriju za implementiranje velikog skupa naredbi Arhitektura kod koje postoje posebni putevi za pristup podacima i instrukcijama naziva se Harvard arhitektura
CISC I RISC
26
Noviji CISC procesori kakvi su MC68030 i MC68040 koriste: Posebne keeve za podatke i instrukcije. Reenja koja se okreu ka direktnom upravljanju Klasini CISC procesori koriste jedinstveni put za pristup memoriji podataka i memoriji instrukcija. Ovakav tip arhitekture se naziva Princeton arhitektura
Prelazak sa CISC na RISC RISC koncepti Keevi za podatke i instrukcije su izdvojeni, a takodje su razliiti i putevi preko kojih se pristupa ovim memorijama (Harvard arhitektura) Kod RISC-ova se koristi registarsko polje neto veeg obima Upravljaka jedinica je bazirana na direktnom upravljanju. Mogue je postii CPI reda jedan ciklus.
27
Smernice razvoja kod CISC-ova Reprezenti su procesori iz serije Intel x86, Motorola MC 68xxx, Digital VAX serija, i neke IBM maine. Porast skupa instrukcija je bio stimulisan popularnou mikroprogramskog upravljanja 60-tih i 70-tih godina prolog veka. Jedan tipian CISC procesor ima vie od 300 instrukcija. Koriste promenljive formate instrukcija/podataka, pri emu obim tipinih rei mo`e biti 8-, 16-, 32-, i 64-bita. Koristi se relativno mali skup registara opte namene, od 8 do 24. Postoji veliki broj operacija obraanja memoriji, koje koriste na desetinu adresnih naina rada (oko 20), ukljuujui indeksno i indirektno adresiranje. Skoro svi veliki proizvodjai mikroprocesorskih ipova imali su znaajne investicije u razvoju CISC arhitektura od kasnih 60-tih do pojave prvih RISC ipova Razlika izmedju CISC i RISC pristupa u pogledu memorije Protona obrada kod CISC maina kada se vreme pristupa memoriji u toku faze IF obavljalo za vei broj ciklusa CISC procesori kod kojih se vreme pristupa memoriji u toku faze IF obavlja za jedan ciklus Tajming RISC procesora pod uslovom da ne postoje zavisnosti
28
Broj i inamena internih registara u velikoj meri varira u zavisnosti od rahitekture pa se njihov broj i kapacitet drdjuje na osnovu velikog broja kompromisa. Inerni registri mogu da budu opsti i registri specijalne namene. U registrima opste namene se cuvaju lokalne i globalne promenljive, pokazivaci, parametri i rezultati kojima se moze brzo pristupiti pa je zbog oga dobro da ih ima puno. Problem koji se javlja u radu sa registrima opste namene je da se cesto javlja vremensko prekoracenje. Projektanti koriste softverska ihardverska resenja za manipulaciju sa sadrzajem velikog broja internih registara tj. RF poljem. Dodela registara se vrsi softverski u procesu povezivanja progra ma. Sa druge strane, hardverske tehnike se oslanjaju na tehniku rada sa registarskim prozorima. Ovom prilikom se RF polje deli na nekoliko banaka pri cemu se banka dodeljuje kod svakog poziva a oslobadja pri povratku iz procedure. Banke su organizovane u obliku kruznog bafera. Kada se zahteva banka koja je prethodno dodeljena , da nebi doslo do dopisivanja preko prethodno zapamcene informacije, procesor smesta prethodnu informaciju u memorije (prekoracenje prozora). Kod povratka, prethodno memorisan sadrzaj registarske banke procesor puni iz memorije (podbacaj prozora). Softversk tehnika za pamcenje sadrzaja registara po definiciji cini da hardver bude jednostavan. Ipak, kada se gleda celovit problem, treba istaci sledece: (a) Povezivanje programa kod RF polja se u ovoj tehnici je brzo a dinamicko linkovanje se lako ostvaruje. (b) Potreban je veci broj bitova za identifikaciju operanada zbog veceg broja adresibilnih registara. Dve tehnike za rad sa prozorima: Rad sa prozorima fiksne i promenljive duzine. Kod rada sa fiksnim prozorima projektant prozora je taj kojidefinise broj prozora po banci dok kod rada sa prozorma promenljive duzine, softverski se specificira obim banke i trenutak dodele.
29
Primer: RF polje se sastoji od 138 registara. Fizicki registri od 0 do 9 su globalni registri i dele se od strane svih procedura. Svaki proces za sebe vidi skup logickih registara od 0 do 31. Logicki registri od 26 do 31 su deljivi izmedju tekuce procedure i procedure roditelj a logicki registri od 10-15 su deljivi izmedju tekuce procedure i procedure naslednik. U jednom trenutku vidljiv je samo jedan prozor registara i adresno je dostupan kao da je sve to jedinstveni skup registara. Prozori su podeljeni u tri oblasti fiksnih duzina: Parametarski registri se koriste za cuvanje parametara koji se prenose iz procedure roditelj u tekucu proceduru i obrnuto. Lokalni registri se koriste za cuvanje lokalno promenljivih i dodeljuju se od strane kompilatora. Privremeni registri se koriste za razmenu parametara i rezultata izedju tekuce procedure i procedure naslednika. Privremeni registri na jednom nivou su fizicki gledano isti kao i parametarski registri na narednom nizem nivou sto omogucava da se parametri izmedju procedura prenose bez stavrnog kopiranja podataka iz jednih lokacija u druge. Da se ne bi desilo da broj prozora treba da bude neogranicen, registtarski prozori se koriste za cuvanje samo najskorije aktiviranih procedura. Kada se kruzni bafer popuni, stanje se cuva u memoriji a kasnije se to stanje vraca u bafer kada se tokom vremena dubina gnezdjenja smanjuje. Zbog toga je stvarna organizacija registarskog polja izvedena kao kruzni bafer sa prozorima koji se preklapaju.
U ovom lsucaju se u globalnom registru cuva informacija o tekucoj poziciji prozora. Njegova vrednost se povecava za vrednost zeljenog registra pri svakom obracanju prozoru a zatim dovodi na ulaz dekodera koji selektuje zeljeni registar. Jedina instrkcija koja se koristi u radu sa ovim prozorima je operacija pomeranja. Kod poziva procedure procedura roditelj azurira sadrzaj (pozitivni pomeraj) tekuceg pokazivaca prozora kako bi ukazao na prvi parametar koji se predaje. Negativni pomeraj odgovara povratku iz procedure. Nakon poziva procedura moze da pristupa registrima tekuceg prozora na osnovu sadrzaja pozivaca prozora.
30
Protonost (pipelining) je standardna hardverska tehnika koja se kod raunara koristi za postizanje boljih performansi. Kada se govori o izvrenju instrukcija ono se ostvaruje na taj nain to se obrada instrukcije deli na vei broj fiksnih koraka koji se izvravaju sekvencijalno. Protonu realizaciju funkcije ine nekoliko hardverskih stepena S1, ...., Sn, medjusobno razdvojenih leevima.Kako instrukcija prolazi kroz protoni sistem, hardver svakog stepena obavlja odredjeni tip obrade.Kada instrukcija napusti protoni sistem ona je u potpunosti izvrena. Dobre performanse kod protone obrade postiu se zahvaljujui paralelizmu. Paralelizam se odnosi na istovremenu obradu nekoliko insrtrukcija od kojih se svaka izvrava u razliitom stepenu.
Izvrenje instrukcije ini sekvencu akcija. Akcije se specificiraju semantikom instrukcije. Neke od karakteristinih akcija, koje se obino u toku izvrenja instrukcije javljaju, su: Pribavljanje instrukcije IF (Instruction Fetch) Dekodiranje instrukcije ID ( Instruction Decode) Pribavljanje operanada OF (Operands Fetch) Izvrenje instrukcije EX (Instruction Execution) Pristup memoriji ME (Memory Access) Upis rezultata WB (Write-Back) ...
31
Premoavanje predstavlja tehniku pomou koje je mogue poboljati performanse kod protone obrade.
Na slici su prikazana 4 puta za premoscavanje. Tri puta dovode na ulaz stepena EX a cetvrti na ulaz stepena ME. Ovim se, naravno, usloznjava strukturaprotocnog sistema kako sa aspekta upravljanja tako i ugradnje dodatnih multipeksera ali se postizu znacajni rezultati u povecanju brzine rada. Ova metoda moze dovesti i do zastoja u radu protocnog sistema jer se rezultat neke instrukcije moze koristiti tek nakon upisivanja u neki od registara RF polja. Ipak, neki od zastoja se mogu eliminisati ili redukovati ako se obezbedde specijalni putevi za brzo premoscavanje podataka izmedju dva stepena.
32
Osnovna ideja protone obrade je da se ostvari preklapanje u izvrenju izmedju sukcesivnih instrukcija ime se tedi na vremenu i poveava propusnost. Skoro svi dananji savremeni procesori koriste tehniku protone obrade ime na jedan indirektan nain postiu bolje performanse u odnosu na strogo sekvencijalno izvrenje. Definiimo dva pojma koja se odnose na protoni dizajn: Protoni ciklus (alternativni pojmovi su procesorski ciklus ili taktni period): perioda taktnog signala, Cp kojim se pobudjuje protoni sistem. Perioda je odredjena od najdueg vremenskog kanjenja potrebnog da se izvri jedna operacija kroz neki od protonih stepena. Tekui protoni procesori operiu sa procesorskim ciklusom koji je reda od 200 ps - 20 ns (tj. 5 GHz 50 MHz) Latencija iniciranja instrukcija: broj procesorskih ciklusa izmedju iniciranja dve susedne instrukcije u programskoj sekvenci. broj procesorskih ciklusa Broj procesorskih ciklusa potreban za procesiranje sekvence od k instrukcija iznosi broj_procesorskih_ciklusa = broj_procesorskih_ciklusa_da_se_generie_prvi_rezultat + broj_instrukcija_u_sekvenci - 1 = n + k -1 gde je: n-broj protonih stepeni, a k - duina sekvence instrukcija. Broj procesorskih ciklusa po instrukciji (CPI) iznosi: CPI = (n + k - 1) / k = 1 + (n - 1) / k kada k 1, tada CPI n, a u slucaju kada k , tada CPI 1, to znai da se CPI nalazi u granicama 1 < CPI < n. Ubrzanje Ubrzanje (speedup) protonog sistema u odnosu na neprotoni sistem se definie kao S pro = T neprotocno / T protocno = n * k / (n + k - 1) , to znai da S pro n, kada k Vaan faktor koga treba uzeti u obzir kod procene performansi predstavlja dodatno kanjenje koje unosi svaki le u lancu. Vreme potrebno protonom stepenu da procesira podatak jednako je zbiru T ci + T ri , gde je: T ci - vreme procesiranja signala od strane stepena Si, a T ri - predstavlja kanjenje koje unosi le Li . Zbog uticaja kanjenja koje unosi le ubrzanje realnog protonog sistema bie dato sledeom relacijom S pro = (( n - ) * k)/ ( k + n - 1) to znai da S pro n - , kada k gde je: prekoraenje usled T ri , tj. prekoraenje usled dodatnog vremena, svakog protonog stepena, potrebnog da se ostvari sinhronizovan rad. efikasnost Efikasnost protonog sistema koji obavlja izraunavanje (ili niz izraunavanja) se definie kao E ideal = S pro / n = (n * k) / ( n2 + n * k - n)
33
Odmotavanje petlji
Petlje ine znaajni deo programskih sekvenci. Od velike vanosti je eliminisati zastoje koji se javljaju u toku njihovog izvrenja. U cilju postizanja vee brzine izvrenje programa vri se odmotavanje petlje (loop unrooling). Ako se petlja odmota n puta dobija se n kopija tela petlje , a na kraju programske sekvence postoji instrukcija bezuslovnog grananja Branch. Vrednosti koje su funkcije indeksa petlje, kao to su adresni indeksi, uskladjuju se kod svake od n kopija. Na ovaj nain smanjuje se broj grananja, a time se ubrzava izvrenje programa Problem: ako je n veliko, telo petlje ce praviti veliki broj instrukcija pa I memorija mora imati veliki kapacitet. Resenje: omotavanje petlji se vrsi u grupama (dve iteracije cine jednu grupu)
Superskalarne masine mogu da iniciraju izvrsenje nekoliko instrukcija po ciklusu Superprotocne masine mogu da iniciraju izvrsenje samo jedne instrukcije po ciklusu ali je vreme ciklusa znatno krace u odnosu na latenciju funkcionalne jedinice. Uvodjenje paralelizma na nivou instrukcija je znacajno uticalo na poboljsanje performansi Parametri masine: Instrukciono protocni ciklus taktni period kod protocnosti instrukcija Latencija iniciranjaizvrsenja instrukcija broj ciklusa izmedju iniciranja izvrsenja dve susedne isntrukcije Konflikti kod koriscenja resursa kada dve ili vise instrukcija zahteva koriscenje jednog resursa Jednostavne operacije Operativna latentnost vreme ( u ciklusima) dok rezultat ne bude dostupan na koriscenje kao operand u sledecoj instrukciji. Klasa instrukcija grupa instrukcijakoja u toku izvrsenja koristi istu funkcionalnu jedinicu Osnovna skalarna masina Da bi obro procenili performance masina koje koriste paralelizam na nivou instrukcija, definisacemo osnovnu skalarnu masinu koja se karakterise sledecim: Broj instukcija po ciklusu cije izvrsenje inicira = 1 Latencija iniciranja jednostavnih instrukcija u ciklusima = 1 Latencija izmedju iniciranja izvrsenja instrukcija u ciklusima = 1 Kod ove masine nikada ne dolazi do: blokiranja operativne latentnosti, zastoja ili do umetanja operacije tipa Nop.
Izvrsavaju jednu instrukciju po ciklusu: izvrsi se jedno iniciranje I ocekuje se jedno izvrsenje. Superskalarni procesori baziraju svoj nacin rada na koriscenju vestacke instrukcione protocnosti sto znaci da se po jednom ciklusu inicira izvrsenje veceg broja instrukcija a isto tako generise veci broj rezultata.
Superskalarne masine
34
Ovi procesori koriste veci nivo paralelizma na nivou instrukcija. Superskalarna masina ce imati sledece karakteristike: Broj instrukcija cije se izvrsenje inicira po ciklusu jednako je n Latencija jednostavnih instrukcija merena u ciklusima jednaka je 1 Paralelizam na nivou instrukcija potreban da bi se u potpunosti dobilo iskoriscenje masine je n
VLIW (Very Long Instruction Word) masine imaju instrukcije velikog obima (stotinu I vise bitova). Svakom instrukcijom se moze specificirati veci broj operacija tj. Tezi se ka eksploatisanju paralelizma na nivou instrukcije. Sve aktivnosti se odredjuju u toku kompilcije tako dasu svi konflikti predvidjeni a instrukcije u hardveru se tako formiraju da do konflikta ne moze da dodje. Tri osnovne razlike izmedju VLIW I superskalarnih masina: 1. Dekodiranje VLIW instrukcija je jednostavnije jer su fiksnog formata pa ne moze da dodje do premasivanja raspolozivih resursa. Kod VLIW masina se odlucue koja ce sledeca operacija da bude izvrsena u toku kompajliranja sto ID logiku ove masine cini jednostavnijom. 2. Zbog fiksnog formata VLIW instrukcija nije pogodno koristiti VILW masine u slucajevima kada je dostupnost paralelizma niza od one koja se moze eksploatisati ovom masinom. U takvim slucajevima pakovanjekoda je mnogo pogodnije kod Superskalarnih masina jer nemapraznog prostora zbog fiksnog formata instrukcija. 3. Superskalane masine su objektivno kodno kompatibilne sa velikim brojem ne paralelnih masina don VILW masine koriste razliciti iznos paralelizma pa zbog toga I poseduju razlicite skupove instrukcija
VLIW masine