skripta(1 dio) ar

Upload: slavisa-djukic

Post on 02-Apr-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/27/2019 Skripta(1 Dio) ar

    1/76

    1

    1. Uvod

    1.1 Kratka istorija razvoja ra~unara

    Qudi su od davnina nastojali konstruisati ure|aje koji bi im olak{ali

    izvo|ewe ra~unskih operacija. U procesu ra~unawa koristimo decimalni brojni

    sistem koji ima 10 cifara: 0-9. Naziv decimalni poti~e od latinske rije~i decem

    koja zna~i deset, dok su simboli cifara do{li od Arapa, a ovi su ih preuzeli od

    Indusa. Sigurno je da je razlog kori{tewa ovog brojnog sistema u tome {to ~ovjek

    ima 10 prstiju na obe ruke (da nas je majka priroda podarila sa 6 prstiju na rukama,

    vrlo vjerovatno je da bi koristili brojni sistem sa bazom 12.

    ^ovjek je u po~etku, sasvim sigurno koristio prste za pomo} u brojawu. Prsti su

    korespondirali ciframa i numeri~kim veli~inama. Za rad sa ve}im brojevima

    koristili su se kamen~i}i. Na kostima koje datiraju iz perioda 30 000god. 20 000

    god. PNE, na|ene su recke kojima su brojne veli~ine memorisane. Na jednoj kosti iz

    Afrike, 8 500 god. PNE, zapisani su prosti brojevi 11, 13, 17 i 19, o~ito kao

    posebno interesantni.

    Izme|u 1900 i 1800 god. PNE pojavquju se prvi pozicioni brojni sistemi

    (Babilon, sa bazom 60). Izme|u 1000 i 500 god. PNE izumqen je abacus, prvi

    mehanizam kori{ten za prakti~no ra~unawe (Babilonci ili Kinezi). Abacus je u

    osnovi ravna (kamena, drvena ili sli~na plo~a, na koju se postavqaju elementi:

    kamen~i}i, {tapi}i i sl.).

    Leonardo da Vin~i je oko 1500 god. napravio prvi mehani~ki kalkulator. 1623.

    god. Wilhelm Schickhard napravio je mehani~ki ure|aj za osnovne matemati~ke

    operacije. Mnogo poznatiji Blaise Pascal (1642) i Gottfried Leibnitz (1671) projektovali

    su i gradili mehani~ke ma{ine koje su osnovne operacije radile 'automatski'.

    Radovi Charlesa Babbage-a (1823) mogu se smatrati samim po~etkom ra~unarstva ~ija

    je logika najsli~nija logici dana{wih ma{ina. Ada Lovelace Byron (1815-1851), k}i

    lorda Byrona, radila je sa Charlesa Babbage-om na wegovom projektu diferencne i

    analiti~ke ma{ine, i sugerisala je Babbage-u kako bi wegova ma{ina trebala biti

    programirana, pa je na osnovu toga ponijela epitet prvog programera, a programski

  • 7/27/2019 Skripta(1 Dio) ar

    2/76

    2

    jezik ADA je dobio naziv po wenom imenu. Sva ta i druga nastojawa, sve do

    ~etrdesetih godina dvadesetog vijeka, mogu se smatrati mehani~kom erom u razvoju

    ra~unara. Pojavom elektronskih ra~unara u{lo se u nevjerovatno buran period

    ra~unarstva, a koji je prema svim reperkusijama na ostale segmente qudske

    djelatnosti (informati~ka revolucija) ozna~io novu epohu u razvoju qudske

    civilizacije.

    Osnovni razlog tome svakako je u ~iwenici da je uspje{no rje{avawe ra~unskih i

    drugih aplikativnih problema primjenom ra~unara davalo ideje za rje{avawe jo{

    kompleksnijih problema, uz prirodne zahtjeve za ve}e procesne mogu}nosti i mawu

    cijenu. Za ilustraciju mo`emo navesti da tr`i{te superra~unara raste po stopi od

    30% godi{we. Ovaj trend je najmawe akademsko pitawe ili pitawe presti`a, ve} je

    u su{tini strate{ko pitawe progresa nacija, dr`ava i civilizacije u cjelini.

    1.1 Oblasti primjene ra~unara.Problemi koji se rje{avaju primjenom ra~unara zadiru u sve segmente nauke,

    tehnike, industrije, medicine itd. Sa stanovi{ta sofistifikacije obrade, aplika-

    cije se mogu grupisati u ~etiri nivoa;

    procesirawe podataka, procesirawe informacija, procesirawe znawa, inteligentno procesirawe.

    Kori{tewe ra~unara je po~elo procesirawem podataka, {to je i danas jedna od

    najzna~ajnijih oblasti primjene (numeri~ke simulacije kompleksnih fenomena kao

    {to su vrijeme, klima, proizvodni procesi, hemijske reakcije i sl.). Ipak, sve je

    izra`enije pomjerawe ka procesirawu informacija. Informacione objekte ~ine

    podaci povezani odre|enom sintaksnom strukturom ili relacijama. Akvizicija

    ogromne koli~ine podataka na ra~unarskim sistemima {irom svijeta stvorila je

    impresivnu bazu znawa (nau~ne, tehni~ke, komercijalne i druge informacije), {to

    je povratno iniciralo zahtjeve za procesirawe znawa. Iako su postignuti zna~ajni

    rezultati u ovoj oblasti, oni su jo{ uvijek daleko od spektakularnih prognoza.

    Inteligentni ra~unari, sposobni da razmi{qaju i donose odluke, jo{ uvijek nisu

    stvar bliske budu}nosti.

    Kompleksnost obrade i zahtjevi za procesnim mogu}nostima ra~unara rastu sa

    nivoom sofistifikovanosti problema. Uvjerewe je da isti trend pokazuje i mogu}-

  • 7/27/2019 Skripta(1 Dio) ar

    3/76

    3

    nost eksploatacije paralelizma ({to, s obzirom na tehnolo{ke limite mogu}nosti

    jednoprocesorskih ra~unara, name}e primjenu paralelnih ma{ina kao imperativ).

    Za ilustraciju kompleksnosti problema prva dva nivoa, nave{}emo nekoliko

    primjera.

    Simulacija klime na{e planete za period od 10 godina za aktuelne modele

    zahtijeva broj operacija u pokretnom zarezu reda 1016, uz produkciju stotina

    gigabajta podataka. Razli~ita poboq{awa simulacionog modela (pove}awe

    rezolucije, me|uokeanska interakcija i sl.) mogu dodatno pove}ati procesne

    zahtjeve. Sna`an pritisak za kori{tewe sve br`ih ra~unara imaju izra`eno

    komercijalne aplikacije, kao {to su video konferencijski sistemi, razumijevawe i

    procesirawe govora, internet i video servisi, trodimenzionalna grafika i

    animacija u realnom vremenu, sistemi za pomo} kod dono{ewa odluka itd. Za

    grafi~ke aplikacije visokih zahtjeva, procjena zahtjevane procesorske snage za

    animaciju u stvarnom vremenu je reda teraflopsa (1012 operacija u teku}em zarezu u

    sekundi ).

    1. 3 Trendovi razvojaPerformanse najmo}nijih ra~unara, od prvog ENIAC-a do dana{wih

    superra~unara, uve}avale su se u prosjeku za faktor 10 svakih 5 godina. Ovakav

    trend je odr`an zahvaquju}i izvanrednom razvoju tehnologije proizvodweelektronskih komponenata, ali i razvoju arhitekture ra~unara i na~ina

    procesirawa podataka (Sl.1.1).

    U po~etnom periodu, rast procesne mo}i se bazirao gotovo iskqu~ivo na razvoju

    tehnologije za proizvodwu elektronskih komponenata i akumuliranom znawu o

    projektovawu ra~unara i wegovih modula. Arhitektura ra~unara i na~in procesi-

    rawa su se, sve do po~etka 70-ih godina, zasnivali na jednostavnom konceptu i

    organizaciji von Neumann-ove ma{ine: ra~unar se sastoji od centralne procesne

    jedinice (CPJ) i memorije, koji su me|usobno povezani i izme|u kojih je mogu}aizmjena podataka. Centralna memorija izmjenqivog sadr`aja sadr`i kako podatke

    tako i program-niz instrukcija, ~ijim se izvo|ewem realizuje `eqena funkcija ili

    algoritam. Izvo|ewe instrukcija se sastoji iz dobavqawa operacionog koda, koji

    odre|uje semantiku instrukcije, i operanada u CPJ, izvr{ewa odre|enog ra~unawa i

    vra}awa rezultata u memoriju.

  • 7/27/2019 Skripta(1 Dio) ar

    4/76

    4

    Sl. 1.1 Vr{ne performanse ra~unara u periodu 1945-1998. Znakom su ozna~enijednoprocesorski, znakom + vektorski, a znakom x masovno paralelni ra~unari.

    Napredak tehnologije od cijevne (I generacija ra~unara), preko tranzistorske

    (druge generacije) i integrisanih kola malog i sredweg stepena integracije (tre}a

    generacija ra~unara) do VLSI kola imao je vi{estruke efekte. Impresivno i

    kontinualno pove}awe broja tranzistora u integrisanim kolima i pove}awe radne

    frekvencije, direktno su uticali na pove}awe performansi ra~unara. Ovo je, s

    druge strane, pred programere postavilo zahtjeve za boqe kori{tewe hardverskih

    mogu}nosti ra~unara, {to je rezultovalo softverskim tehnikama i konceptima za

    upravqawe konkurentnim doga|ajima: alokacija resursa, komunikacija i sinhroni-

    zacija izme|u procesa (monitori, semafori, barijere, signali) i sl. Procesirawe

    konkurentnih doga|aja je sistematski i intenzivno analizirano i prou~avano, {to

    je bio jedan od temeqa za uspje{nu realizaciju paralelnih ma{ina (u naj{irem

    smislu, paralelna ma{ina se sastoji iz skupa procesnih elemenata, povezanih

    odre|enim komunikacionim podsistemom, koji imaju mogu}nost paralelnog rada-

    procesirawa u ciqu izvr{ewa jedinstvenog posla).

    Svi navedeni faktori su stvorili uslove i podlogu za paralelno procesirawe,

    te za projektovawe i realizaciju prvih paralelnih ra~unara 60-tih godina (IBM

    9020, Goodyears Associative Processor, ILLIAC IV, CDC 7600). Pove}awe stepena

  • 7/27/2019 Skripta(1 Dio) ar

    5/76

    5

    integracije omogu}ilo je implementaciju kompleksnih funkcija i koncepata na

    hardverskom nivou: vektorsko i proto~no procesirawe, vi{estruke funkcionalne

    jedinice i sl., {to je dalo novi podsticaj za razvoj u domenu superra~unara.

    Po~etkom 80-tih godina po~iwe {ira komercijalna primjena paralelnih ra~unara

    (DAP, MPP, Cosmic Cube, NCube, Alliant, Sequents Balans, Cray, CM). Napretkom

    tehnologije i realizacijom kompleksnih modula na jednom kristalu, smawio se broj

    osnovnih komponenata potrebnih za implementaciju jednoprocesorskog ra~unara.

    Po{to je cijena ra~unara, aproksimativno, proporcionalna broju osnovnih

    komponenata koje ga ~ine, do{lo je do pada cijene ra~unara po jedinici procesne

    mo}i i potpune inverzije Grosch-evog zakona. Svako novo pove}awe stepena

    integracije, omogu}avalo je i pove}awe broja procesora u ra~unaru, za istu cijenu.

    Predvi|awe Sidney Fernbach-a je postalo realnost: aktuelni superra~unari nakon

    10-20 godina postaju dio standardne ra~unarske opreme.

    Danas, paralelni ra~unari preuzimaju dominaciju na tr`i{tu, iako se jo{

    uvijek posti`u izvanredni rezultati na eksploataciji paralelizma u okviru jedne

    centralne procesorske jedinice (superskalarni i superproto~ni procesori). Svi

    glavni protagonisti u podru~ju ra~unarske tehnike sla`u se da je paralelizam

    jedini na~in da se zadovoqe kontinualno rastu}i zahtjevi tr`i{ta za super brzim

    i jeftinim ra~unawem. Argument za ovakvo uvjerewe je nesporan, i bazira se na

    apsolutnom limitu u brzini prostirawa: brzini svjetlosti. Brzina ra~unawa

    jednog procesnog elementa je limitirana frekvencijom osnovnog takta. Pove}awe

    frekvencije osnovnog takta, zbog ka{wewa pri prostirawu signala (4-6 ns/m),

    zahtijeva smawewe rastojawa izme|u elemenata, {to tako|e ima svoj tehnolo{ki i

    fizi~ki limit. Aktuelno stawe u podru~ju ra~unara najvi{ih performansi (Sl.

    1.2) potvr|uje navedene ocjene. U bliskoj budu}nosti, paralelizam }e dominirati ne

    samo u superra~unarima nego i u personalnim ra~unarima, radnim stanicama i

    ra~unarskim mre`ama.

  • 7/27/2019 Skripta(1 Dio) ar

    6/76

    6

    Iako su mogu}nost pove}awa performansi i povoqniji odnos

    performansa/cijena osnovni razlozi za sve ve}u primjenu paralelnih ra~unara i

    paralelne obrade, oni nisu i jedini. Paralelni ra~unarski sistemi, zbog

    redundancije procesnih elemenata, imaju hardversku podlogu za mogu}nost preva-

    zila`ewa otkaza, odnosno realizaciju aspekata neosjetqivosti na gre{ke. Tako|e,

    ovakvi sistemi, po pravilu nude mogu}nost postepenog pove}awa performansi

    sistema dodavawem novih procesorskih, memorijskih i drugih modula.

    Sl. 1.2 Broj kori{tenih procesora u superra~unarima. Znakom + su ozna~eni vektorski, a

    znakom x masovno paralelni ra~unari.

    Jo{ jedan va`an trend }e imati sve vi{e uticaja na na~in procesirawa: ra~unarske

    mre`e. Ra~unarska mre`a povezuje fizi~ki dislocirane i heterogene ra~unare sa

    mogu}no{}u me|usobne komunikacije i kori{tewa distribuiranih resursa na isti

    na~in na koji se koriste lokalni resursi. Pove}awe brzine komunikacije u

    ra~unarskim mre`ama (ve} su aktuelne brzine od 1000 Mb/sec u standardnim

    mre`ama) i pouzdanosti mre`a, pru`i}e mogu}nost izvr{ewa programa

    istovremenim kori{tewem ne samo procesora lokalnog ra~unara nego i procesora

    u drugim ra~unarima u mre`i. Zbog toga, o~ekuje se da }e podru~je distribuiranog

    procesirawa sve vi{e konvergovati ka oblasti paralelnog procesirawa.

    Mo`e se postaviti pitawe, za{to je, i pored ubjedqivih, prethodno navedenih

    argumenata, navedeni koncepti prodirali relativno sporo, posebno u podru~je

    komercijalne primjene. Dva su osnovna razloga: paralelne ma{ine nisu jednostavne

    za realizaciju i, paralelno programirawe je znatno te`e od sekvencijalnog.

  • 7/27/2019 Skripta(1 Dio) ar

    7/76

    7

    Su{tinski ciq, da se ostvari ubrzawe izvo|ewa programa ili skupa programa,

    mo`e se ostvariti paralelnim procesirawem na nivou programa, zadataka-

    procedura, me|uinstrukcijskom nivou i (ili) u okviru izvo|ewa jedne ma{inske

    instrukcije. Eksploatacija paralelizma na najni`em nivou se realizuje

    hardverski, a udio hardvera u eksploataciji paralelizma opada prema vi{im

    nivoima, uz uobi~ajenu tendenciju rasta hardverskog udjela u implementaciji

    rje{ewa. U ovom domenu, razli~itim tehnikama, organizacijom i povezivawem

    procesnih i drugih elemenata, implementirani su kompleksni algoritmi za

    automatsko prepoznavawe i izvr{ewe paralelnih operacija na instrukcionom i

    me|uinstrukcionom nivou, {to je rezultovalo razli~itim arhitekturama.

    Sistemski softver je morao obezbijediti podr{ku za efikasno izvo|ewe

    programa u vi{eprocesorskom okru`ewu. Operativni sistemi su, pored

    standardnih zahtjeva za multiprogramski rad, morali obezbijediti efikasne

    mehanizme za:

    raspore|ivawe po procesnim elementima, ne samo procesa, nego i vi{estru-

    kih paralelnih niti u okviru procesa,

    balansirawe optere}ewa,

    komunikaciju izme|u procesora, uzimaju}i u obzir strukturu i stawe

    komunikacionog podsistema,

    mogu}nost dinami~ke rekonfiguracije u slu~aju otkaza nekog od elemenata i

    sl.

    Slijede}e fundamentalno pitawe je kako kreirati programe koji se izvode na para-

    lelnoj ma{ini. Jasno je da je u ciqu efikasne eksploatacije paralelizma, po{to

    hardver prepoznaje paralelizam uglavnom na nivou instrukcija ili grupe

    instrukcija, neophodna specifikacija paralelizma na nivou programa/zadataka.

    Dvije su mogu}nosti koje programeri imaju na raspolagawu: da pi{u na standardan

    na~in i u standardnim programskim jezicima, a da identifikaciju paralelizma i

    specifikaciju paralelnog izvo|ewa u potpunosti prepuste paralelizira-ju}im/vektoriziraju}im prevodiocima, ili da koriste specifi~ne programske

    naredbe i funkcije za eksplicitnu identifikaciju paralelizma i specifikaciju

    na~ina eksploatacije. Iako je automatska identifikacija paralelizma (posebno

    programskih petqi) ve} du`i period predmet intenzivnih nau~nih istra`ivawa, a

    proizvo|a~i paralelnih ma{ina su ulo`ili ogromne napore i sredstva u razvoj

  • 7/27/2019 Skripta(1 Dio) ar

    8/76

    8

    navedenih prevodilaca, generisani kod ~esto ne daje o~ekivane performanse.

    Programeri su, za vremenski kriti~ne i u pogledu ra~unawa visoko zahtjevne

    aplikacije, morali pisati eksplicitno paralelne programe koriste}i pro{irewa

    postoje}ih jezika naredbama za eksplicitnu specifikaciju paralelizma ili

    koriste}i potpuno nove programske jezike. Za postizawe najvi{ih performansi,

    ipak, neophodno je bilo programirawe na "ni`em" nivou. Iskustvo da je pisawe

    paralelnih programa, i pored novih paralelnih konstrukcija u programskim

    jezicima, i daqe kompleksan i te`ak zadatak, otvorilo je pitawe da li su te

    te{ko}e inherentno svojstvene paralelnom programirawu, ili su refleksija

    neadekvatnog okru`ewa za razvoj, analizu i pode{avawe paralelnih programa. Zbog

    toga, veliki napori se ula`u, tako|e, u razvoj programskog okru`ewa za podr{ku

    razvoju paralelnih programa.

    Pored navedenog, zna~ajna su istra`ivawa i rje{ewa na planu standardizacije

    komunikacije pri paralelnom izvo|ewu programa u heterogenom mre`nom okru-

    `ewu, analizi performansi, metoda za razvoj algoritama pogodnih za izvo|ewe na

    paralelnim arhitekturama itd. O~gledno je da je problematika paralelnog

    procesirawa izuzetno kompleksna, i da zahtijeva iskustvo i poznavawe razli~itih

    aspekata iz oblasti ra~unarskih arhitektura i hardvera, operativnih sistema,

    programskih jezika, algoritama, analize performansi i dr.

  • 7/27/2019 Skripta(1 Dio) ar

    9/76

    9

    2

    Klasifikacija ra~unarskiharhitektura

    2.1 Definicija arhitektura ra~unaraAspekt arhitekture ra~unarskih sistema tretira problem organizacije i

    strukture kontrolnih funkcija, procesnih elemenata, memorijskih modula, te

    sistema povezivawa. Arhitektura u osnovi defini{e podlogu za procesirawe/obra-

    du i time odre|uje mogu}nosti programske nadgradwe.

    S obzirom na razli~ite mogu}nosti koncepcije pojedinih elemenata

    ra~unarskih sistema i wihovih veza, spektar arhitektura je bio {irok jo{ od samog

    po~etka razvoja ra~unarske tehnike. Razli~iti koncepti su se preplitali u

    pojedinim rje{ewima, tako da se nijedna klasifikacija ne mo`e smatrati

    apsolutno adekvatnom.

    Prvu klasifikaciju ra~unarskih sistema dali su J.C.Murtha i R.L.Beadless (1964), a

    zatim Flynn (1966) L.C.Hobbs i D.J.Theis (1970). Najpoznatija i naj~e{}e kori{tena

    klasifikacija je Flynn-ova koja kategorizuje ra~unarske sisteme na osnovu odnosa

    instrukcionog toka i toka podataka na:

    SISD - ma{ine sa jednim tokom instrukcija i jednim tokom podataka,

    SIMD - ma{ine sa jednim tokom instrukcija i vi{estrukim tokom podataka,

    MISD - ma{ine sa vi{estrukim tokom instrukcija i jednim tokom podataka,

    MIMD - ma{ine sa vi{estrukim tokom i instrukcija i podataka.

    Feng (1972) predla`e klasifikaciju na bazi du`ine rije~i i broja rije~i koje se

    procesiraju paralelno. Konzistentnu klasifikaciju daje W.Handlerna bazi razli-

  • 7/27/2019 Skripta(1 Dio) ar

    10/76

    10

    kovawa tri nivoa procesirawa: nivo programske kontrolne jedinice (PCU) koja

    interpretira instrukcije, nivo aritmeti~ko-logi~ke jedinice (ALU) koja izvodi

    aritmeti~ko-logi~ke operacije, i nivo elementarnih logi~kih sklopova (ELC) koji

    izvode elementarne operacije.

    2.2 Hijerarhijska struktura organizacijera~unarskog sistema

    Standardna hijerarhijska predstava ra~unarskog sistema je u obliku koncentri~nih

    krugova (Sl. 2.1.)

    Aplik.Softver

    Sistemskisoftver

    Hardver

    Sl. 2.1 Hijerarhijska organizacija ra~unara

    Svaki od ovih nivoa mo`e se razlo`iti na podnivoe, npr hardverski nivo mo`e se

    posmatrati na:

    digitalnologi~kom nivou i

    nivou elektronskih sklopova.

  • 7/27/2019 Skripta(1 Dio) ar

    11/76

    11

    2.3 Razli~iti koncepti ra~unarskih arhitekturaU ciqu poboq{awa performansi, kao {to je ve} re~eno, pored primjene

    najnovijih tehnolo{kih rje{ewa nastojalo se {to vi{e operacija u tokuprocesirawa izvesti istovremeno. Razli~iti koncepti u arhitekturama

    ra~unarskih sistema proizlazili su iz razli~itih koncepata identifikacije i

    eksploatacije paralelizma i tehnolo{kih mogu}nosti realizacije tih koncepata.

    Postojawe paralelizma zna~i mogu}nost da se odre|ena ra~unawa mogu procesirati

    istovremeno. Paralelizam postoji i mo`e se detektovati i eksploatisati na vi{e

    hijerarhijskih nivoa. Na najvi{em nivou mo`emo posmatrati paralelizam izme|u

    programa-aplikacija (me|uprogramski paralelizam). Svaki program mo`emo

    posmatrati i kao ure|en skup zadataka izme|u kojih postoje relacije pretho|ewa i

    izme|u kojih mo`e postojati izmjena podataka (izlazne podatke iz jednog zadatka

    drugi zadatak koristi kao ulaz). Kao ni`e nivoe mo`emo identifikovati

    proceduralni nivo, nivo programskih petqi ili grupa instrukcija, instrukcioni

    nivo i nivo elementarnih operacija.

    Na najvi{em nivou, paralelizam se jednostavno mo`e eksploatisati pridjeqi-

    vawem razli~itih programa razli~itim procesorima (ili ~ak ra~unarima poveza-

    nim u odgovaraju}u mre`u). Ali, i svaki program inherentno sadr`i zna~ajan iznos

    paralelizma na ni`im nivoima koji se mo`e eksploatisati, i time, s jedne strane,

    smawiti vrijeme izvr{ewa programa, a s druge strane boqe iskoristiti postoje}e

    procesne resurse ma{ine. Ako postoji paralelizam izme|u zadataka, onda se oni

    mogu procesirati istovremeno na razli~itim procesorima (s tim da svaki

    procesor izvodi niz instrukcija, kojim se implementira dati zadatak, asinhrono od

    drugog). Ovaj trend je vodio razvoju MIMD vi{eprocesorskih arhitektura. Na

    ni`em nivou, posebno interesantne za eksploataciju paralelizma su programske

    petqe, koje veoma ~esto implementiraju operacije nad nizovima podataka

    (poqima/vektorima). U programskim petqama se ponavqa ista grupa operacija nad

    razli~itim skupom podataka. Mnogi nau~ni problemi zahtijevali su izvr{avawe

    ogromnog broja petqi nad velikim nizovima podataka. Optimalno izvr{avawe

    programskih petqi, odnosno operacija nad vektorima, bio je ciq arhitektura koje

    su rezultovale SIMD procesorskim poqima i vektorskim procesorima.

  • 7/27/2019 Skripta(1 Dio) ar

    12/76

    12

    Na nivou izvo|ewa instrukcija i grupa instrukcija, tako|e je mogu}e identifi-

    kovati (i eksploatisati) zna~ajan iznos paralelizma. Na ovom nivou (procesirawa

    instrukcija), najzna~ajnije tehnike za eksploataciju paralelizma su proto~na obra-

    da i grupna obrada operacija sa kori{tewem vi{e funkcionalnih jedinica.

    Koncept proto~ne obrade se sastoji u tome da se neka operacija razdijeli u

    sekvencijalni niz podoperacija, pri ~emu se svaka podoperacija realizuje u specija-

    lizovanom hardverskom sklopu (proto~nom stepenu). Niz ovih hardverskih segme-

    nata ~ini proto~ni sistem. Kroz proto~ni sistem se propu{ta tok podataka. Svaki

    podatak se parcijalno obra|uje u svakom proto~nom stepenu, a procesirawe podata-

    ka (kompletirawe operacije) se zavr{ava po izlasku procesiranog podatka iz

    proto~nog sistema (odre|ene varijacije postoje u smislu blokirawa odre|enih

    segmenata pri prolazu podatka kroz proto~ni sistem, mogu}nosti premo{}avawa i

    sl.). Sukcesivni podaci se obra|uju tako da se pojedine faze wihove obrade prekla-

    paju u razli~itim proto~nim stepenima (Sl. 2.2). Proto~ni stepeni mogu implemen-

    tirati jednu ili vi{e funkcija (multifunkcionalni proto~ni stepeni).

    S1

    S2

    Sn

    L LLL

    IzlazUlaz

    Sl. 2.2 Koncept proto~ne obrade.

    Ako je ka{wewe signala kroz prihvatni registar Tl, a propagacija kroz kombina-

    cionu logiku proto~nih stepeni Ti, onda je period radnog takta proto~nog sistema T

    = {Ti

    max i} +Tl= Tm+Tl. Frekvencija je limitirana najdu`im periodom ka{wewa

    kroz kombinacionu logiku nekog stepena.

    Koncept maksimalnog preklapawa operacija u proto~nim stepenima, vodio je

    implementaciji proto~nih stepeni pribli`no istih kombinacionih ka{wewa,

    {to se moglo realizovati za redukovani skup naj~e{}e kori{tenih optimizovanih

    operacija (instrukcija), odnosno RISC procesorskim arhitekturama. Drugi koncept

    istovremenog izvr{avawa vi{e operacija (instrukcija) izvorno poti~e od ideje na

    kojoj se zasnivaju podacima pokretane ma{ine: sve operacije koje imaju sve podatke

  • 7/27/2019 Skripta(1 Dio) ar

    13/76

    13

    potrebne za izvr{ewe ~ine trenutno slobodan skup operacija koji je spreman za

    izvo|ewe; skup procesora preuzima izvo|ewe operacija, nakon ~ega se generi{u

    novi izlazni podaci i novi skup slobodnih operacija, spremnih za izvo|ewe u

    narednom ciklusu.

    Sli~no prethodno navedenom, kod ma{ina pokretanih kontrolnim tokom, niz

    instrukcija se mo`e izvesti paralelno (slobodan skup), ako ne postoji zavisnost po

    podacima (direktna, izlazna ili antizavisnost). U nizu sukcesivnih instrukcija

    koje ne produkuju granawa (bazi~ni blok), prosje~an broj slobodnih operacija je ~ 3.

    Pove}awe prosje~nog broja slobodnih operacija posti`e se eksploatacijom

    paralelizma van bazi~nih blokova . Ovaj koncept vodio je razvoju ma{ina sa

    velikom du`inom rije~i (VLIW-very large instruction word), pri ~emu se vi{e

    nezavisnih operacija kodira u jednu VLIW instrukciju i sve se izvode istovremeno

    (na vi{e izvr{nih jedinica). Prepoznavawe skupa slobodnih operacija u programu,

    te planirawe wihovog izvr{ewa i kodirawe u VLIW instrukciju vr{i prevodilac

    u fazi prevo|ewa.

    Koncept istovremenog izvr{avawa vi{e instrukcija vodio je ekstenziji RISC

    arhitektura ka superskalarnim ma{inama. Redoslijed izvo|ewa i mapirawe izvo-

    |ewa instrukcija po procesnim resursima odre|uje se dinami~ki (sa mogu}no{}u

    prekorednog izvo|ewa). Predikcija granawa vr{i se dinami~ki, na bazi stawa

    automata za granawe pojedinih instrukcija, koja se vode u posebnoj, brzoj memoriji,

    sa vjerovatno}om poga|awa do 95%. Aktuelni superskalarni procesori standardno

    koriste proto~nu obradu u pojedinim funkcionalnim jedinicama. Postoji

    rasprostraweno uvjerewe da }e ove arhitekture dominirati u narednom periodu

    razvoja ra~unarske tehnike i da }e drugi aspekti imati malo uticaja na budu}i

    razvoj istih. Ipak, budu}i da je paralelno procesirawe izrazito invazivno i da

    prodire u sve aplikativne domene, od superprocesirawa do ugra|enih ra~unarskih

    sistema, postoje tako|e sna`ni argumenti da postoje}e arhitekture moraju

    evoluirati u pravcu podr`avawa generalnog modela za paralelno procesirawe. S

    obzirom na ogromne investicije ulo`ene u razvoj postoje}ih sistema i na ~iwenicu

    nastavka trenda rasta performansi postoje}ih tipova arhitektura, prirodno je

    o~ekivati da }e u bliskoj budu}nosti proces te}i u pravcu kombinovawa postoje}ih

    rje{ewa u ciqu {to ve}e eksploatacije paralelizma na svim hijerarhijskim

    nivoima.

  • 7/27/2019 Skripta(1 Dio) ar

    14/76

    14

    U ciqu kratkog pregleda ra~unarskih arhitektura izvr{ena je klasifikacija

    data slikom 2.3.

    Paralelni ra~. sistemi

    Upravqanikontrolnim tokom

    Upravqani podacima Upravqanizahtjevima

    SIMD MISDMIMD

    Vektorski Paralelni Visoko paralelni Labavo spregnuti

    Multiprocesori

    Multira~unari

    Lokalnera~un. mre`e

    DistribuiranisistemiAsocijativni

    Sistoli~ni

    Jednoprocesorski.sistemi

    Sl. 2.3 Klasifikacija ra~unarskih arhitektura.

  • 7/27/2019 Skripta(1 Dio) ar

    15/76

    15

    3. Klasina, Von-Noemanova arhitektura

    raunara

    3.1 Koncept Von-Noemanovog raunara

    Von-Noemanova arhitektura raunara je izvanredno strukturirana: na najviem nivou apstrakcije

    predstavlja se jednostavnim i razumljivim dijagramom (Sl. 3.1).

    I/OMEMORIJA

    CPU

    Sl. 3.1

    Memorija promjenljivog sadraja, sadri ne samo podatke/rezultate raunanja, nego i

    program (skup instrukcija/akcija) koji se izvodi. Ovaj koncept je omoguio univerzalnost i

    jednostavnost primjene raunara: novi aplikativni zadatak moe da se izvede na raunaru samo

    punjenjem drugog programa u memoriju i pokretanjem njegovog izvrenja. Centralna procesna

    jedinica (CPU) dobavlja instrukcije iz memorije i izvodi ih jednu za drugom. Instrukcije sadre

    informacije kako o vrsti operacije/akcije, tako i o operandima nad kojima se akcija izvodi.

    Distinkcija izmeu instrukcija i podataka u memoriji i odreivanje sekvence izvoenja je

    ostvarena koritenjem programskog brojaa (PC). Nakon zavretka izvoenja neke instrukcije,

    vrijednost programskog brojaa specifikuje memorijsku adresu slijedee instrukcije koja e se

    izvesti. Na ovaj nain postoji sekvencijalni tok kontrole (odreen nizom sukcesivnih vrijednosti

    programskog brojaa) koji upravlja izvrenjem programa. Dakle, u toku izvoenja, postoji jedan

  • 7/27/2019 Skripta(1 Dio) ar

    16/76

    16

    tok (niz) instrukcija koje se izvode nad odnosnim tokom (nizom) podataka. Iz navedenog razloga,

    ovaj tip arhitektura po Flyn-ovoj klasifikaciji spada u grupu SISD (single instruction-single data)

    raunara.

    Ovaj jednostavan koncept omoguio je da se kompleksan sistem, kao to je raunar sa svojim

    procesima, uspjeno analiziraju, te da se sistematski rjeavaju odnosni problemi.

    3.2 Princip organizacije SISD raunarskih sistema

    Globalni blok dijagram SISD raunara dat je na sl. 3.2. Osnovni funkcionalni elementi su, kako je

    to naznaeno i u dijelu 3.1, Centralna procesna jedinica (CPU), memorija i ulazno/izlazni

    (pod)sistem

    Sl. 3.2

    Izvrna jedinica

    .

    Program koji raunar izvodi, nalazi se u glavnoj memoriji raunara. Program u glavnoj memoriji

    moe biti trajno upisan (u memoriju sa trajnim sadrajem ROM-EPROM), ili se puni u glavnu

    memoriju (RAM) sa sekundarne memorije (koja je takoe memorija sa trajnim sadrajem),

    sistemskim programom. Prva varijanta je karakteristina za specijalizovane raunare za

    upravljanje procesima koji rade u oteanim eksploatacionim uslovima, dok je druga varijanta

    karakteristina za raunare ope namjene.

  • 7/27/2019 Skripta(1 Dio) ar

    17/76

    17

    Kontrolna jedinica dobavlja instrukcije iz memorije, dekodira ih i generie niz upravljakih

    signala u pravom trenutku i u korektnoj sekvenci kojima se obezbjeuje izvrenje operacije

    specifikovane instrukcionim kodom u izvrnoj jedinici procesora (Sl. 3.3). Npr. za izvoenje

    instrukcije za promjenu znaka (komplementiranje do 2) sadraja registra Rx:

    (Rx) (Rx),

    upravljaka jedinica generie signale kojima se:

    sadraj registra Rx dovodi na ulaz aritmetiko logike jedinice (ALU),

    izvodi promjena znaka (komplementiranje do 2) u ALU,

    rezultat upisuje nazad u registar Rx.

    3.3

    S obzirom da se mnogi rezultati izvrenja instrukcija koriste u kasnijoj fazi kao operandi

    (podaci) potrebno ih je memorisati. Registri CPU-a mogu uvati ove meurezultate, ali je broj

    registara u procesoru mali a instrukcije za svoje izvrenje esto zahtijevaju operande u registrima.

    Zbog navedenog, pored instrukcija, u glavnoj memoriji se nalaze i podaci sa kojima program

    operie u toku svoga izvoenja. Za trajno uvanje podataka i programa koristi se jeftinija

    sekundarna memorija (magnetni/optiki diskovi, magnetne trake). Magnetni diskovi se u

    odreenim sluajevima mogu koristiti i za privremeno smjetanje dijelova programa/podataka u

    toku izvoenja, kada kapacitet glavne memorije nije dovoljan. Procesor ne moe direktno

    dobavljati instrukcije niti podatke iz sekundarne memorije nego se to realizuje preko glavne

    memorije.

    Preko U/I sistema raunar komunicira sa spoljnim svijetom. Osnovni zadatak ovog sistema

    je transformacija informacija iz forme razumljive objektima spoljnjeg svijeta (ljudi, senzori,

    izvrni organi itd.) u formu razumljivu raunaru i obrnuto.

  • 7/27/2019 Skripta(1 Dio) ar

    18/76

    18

    Navedeni osnovni moduli raunara meusobno komuniciraju preko skupa prenosnih puteva

    (linija) - magistrale. Broj prenosnih linija kojima se istovremeno mogu prenositi informacije

    odreuje irinu magistrale (u bitima).

    3.2.1 Organizacija i struktura centralne procesne jedinice (CPU)

    Osnovna funkcija CPJ je da izrava program smjeten u glavnoj memoriji. Osnovni

    funkcionalni blokovi CPJ su upravljaka jedinica i izvrna jedinica (u literaturi poznata i kao

    staza podataka data path). Upravljaka jedinica vri pribavljanje instrukcija iz memorije,

    njihovo dekodiranje i generisanje upravljakih signala za izvrnu jedinicu (pribavljanje podataka i

    instrukcija iz memorije se moe realizovati i posebnom funkcionalnom jedinicom). Izvrna

    jedinica izvrava operacije predviene datom instrukcijom. Podaci u okviru CPU cirkuliu

    jednom ili vie skupina linija internih magistrala.Detaljnija blok ema procesora data je na sl. 3.4.

    Reset

    +1

    P

    C

    Sl. 3.4 Blok ema CPJ

  • 7/27/2019 Skripta(1 Dio) ar

    19/76

    19

    33..33 Izvrna jedinica

    Izvrna jedinica sadri aritmetiko-logiku (ALU) i druge funkcionalne jedinice za

    manipulaciju podacima, registre, pomjerae, generator adrese i komunikacione puteve

    izmeu njih. Kada postoji vie puteva podataka na ulazu/izlazu neke komponente,neophodna su upravljaka kola za selekciju podataka na odgovarajuim putevima

    (upravljake take). Upravljaka taka je prekida puta podataka koja, na bazi upravljakog

    signala, dozvoljava ili blokira prenos podataka na odgovarajuem prenosnom putu. Na sl 3.5 dat

    je principijelni primjer implementacije upravljakih taaka na ulazu/izlazu jedne funkcionalne

    jedinice CPU-a.

    3.5

    3.5

    Sl. 3.5 Upravljake take procesora

    Upravljake take pripadaju upravljakoj jedinici, a sami putevi za prenos podataka izvrnoj

    jedinici. MDR (memory data register) je interni registar preko kojeg se vri upis podataka u

    glavnu memoriju, odnosno itanje podataka iz glavne memorije. On slui kao bafer izmeu CPJ i

    memorije pri prenosu podataka izmeu ovih jedinica. MAR (memory address regeister) je takoe

    interni registar, preko kojeg se postavlja adresa memorijske lokacije koja se referencira (za itanje

    ili upis). Transfer podataka iz memorije u registar se odvija u slijedeim koracima:

    (MDR)Mem[MAR],

  • 7/27/2019 Skripta(1 Dio) ar

    20/76

    20

    (Rx) (MDR).

    Kao to je prethodno reeno, ALU i druge funkcionalne jedinice (pomjerai, mnoai,

    floating-point jedinice, grafike jedinice itd.) vre aritmetiko-logike operacije nad podacima-

    operandima predviene instrukcijom.

    3.3.1 Registri

    Registri se u procesoru koriste za prihvat i uvanje rezultata nakon izvrenja operacija u

    funkcionalnim jedinicama procesora, za prihvat podataka iz memorije, te za transfer

    podataka/meurezultata iz procesora u memoriju. Sastoje se iz elemenata koji mogu imati dva ili

    vie stabilnih stanja. Mogu se realizovati na razliite naine: kao flip-flopovi, kola koja uvaju

    informaciju kao elektrini tovar na gejtu ili kapacitetu odreenog tipa FET-a, kao skup prekidaa

    (fiksnog ili izmjenljivog stanja) itd. Izmeu bitova registara moe postojati odreena logika, koja

    moe vriti odreene operacije izmeu susjednih bitova registra (npr. kopiranje sadraja

    prethodnog/narednog bita u tekui bit registra, ime se ostvaruje pomjeranje sadraja u registru,

    odbrojavanje na vie, na nie itd.).

    Skup registara CPJ, ije stanje nakon izvrenja neke instrukcije moe imati uticaja na

    izvrenje slijedee instrukcije naziva se programski model procesora. Ovo iz razloga to je za

    programiranje na 'najniem' nivou dovoljno poznavanje programskog modela procesora, odnosno

    uloge i funkcije svakog registra iz programskog modela. MAR i MDR su interni registri, i ne

    pripadaju programskom modelu procesora. S obzirom da stanje ovih registara moe imati uticaj

    na izvrenje slijedee instrukcije, programski model se mora sauvati u sluaju suspenzije

    izvrenja programa (zbog prekida npr.), i restaurirati nakon zavretka suspenzije i prije nastavka

    izvoenja suspendovanog programa. Ostali registri CPJ se mogu svrstati u grupu internih

    registara.

    Registri programskog modela

    Ovi registre se mogu svrstati u slijedee grupe:

    Programski broja. Neposredno prije poetka pribavljanja i izvrenja instrukcije, ovaj

    registar sadri memorijsku adresu instrukcije koja treba da se izvri.

    Registri opte namjene. Ovi registri se generalno mogu referencirati u svim instrukcijama

    koje koriste registre: kako za speifikaciju operanada tako i za specifikaciju adresa. Ipak, u

    praksi obino postoje ogranienja na generalnost primjene ovih registara.

  • 7/27/2019 Skripta(1 Dio) ar

    21/76

    21

    Registri za podatke. Ovi registri mogu prihvatati podatke i njihov sadraj se moe

    koristiti kao operandi u operacijama specifikovanim instrukcijama. Ovi registri se ne

    mogu koristiti za specifikaciju adrese.

    Adresni registri. Koriste se za specifikaciju adrese operanada/instrukcija. Svakainstrukcija (sa izuzetkom instrukcije NOP No Operation) ili vri odreene operacije nad

    operandima, ili vri transfer kontrole izvoenja programa na instrukciju ija lokacija u

    memoriji nije neposredno iza tekue instrukcije (instrukcije grananja). Lokacije

    operanada i slijedee instrukcije dobijaju se u procesu sraunavanja efektivne adrese

    (operanada, instrukcije), a ovaj proces zavisi od primijenjenog naina adresiranja u

    odnosnoj instrukciji. Razumijevanje naina adresiranja i formiranja efektivne adrese je od

    kljunog znaaja za proces programiranja na asemblerskom nivou. Neki registri se u

    instrukcijama pri formiranju efektivne adrese koriste inherentno, a neki eksplicitno(mogue je koritenje vie registara za specifikaciju adrese istovremeno). Postoji vie

    varijanti adresnih registara, prema njihovoj ulozi u formiranju efektivne adrese:

    Segmentni registri (Intel 8086, ). Efektivna adresa se formira

    kombinacijom sadraja odnosnog segmentnog registra koji pokazuje na

    poetak segmenta (bazna adresa) i ofseta odstojanja od poetka segmenta

    koji se formira zavisno od adresnog naina. Koritenje ovih registara je

    podrazumijevajue, ali se moe navesti i eksplicitna upotreba registra kojom

    se ponitava podrazumijevajua upotreba (segment override)

    Indeksni registri. Mogu se koristiti kao indeks u neko polje iji je poetak

    odreen baznom adresom. Obino ovi registri imaju mogunost auto-

    inkrementiranja odnosno auto-dekrementiranja.

    Bazni registri. Njihova uloga je sutinski ista kao segmentnih registara, izuzev

    to se ovi registri eksplicitno navode pri specifikaciji instrukcije.

    Pokaziva steka. Ovaj registar pokazuje na vrh LIFO steka na koji se

    automatski smjetaju podaci pri pozivu potprograma ili pri ulasku u proces

    posluianja prekida. Takoe se stek moe koristiti za privremeno smjetanje

    podataka koritenjem odgovarajuih instrukcija (PUSH, PULL/POP). U ovim

    primjenama uloga pokazivaa je podrazumijevajua. Ovaj registar se najee

  • 7/27/2019 Skripta(1 Dio) ar

    22/76

    22

    moe i eksplicitno specifikovati (u instrukcijama kojima se inicijalizira ili

    uva sadraj pokazivaa).

    Statusni registar. Ovaj registar sadri markere (flags, condition codes), koji se

    postavlja se obino ju za indikaciju rezultata prethodne operacije. Npr. nakon

    izvrenja neke aritmetike operacije rezultat moe biti pozitivan, negativan, nula,

    moe se desiti prenos (carry) ili preljev/premaaj opsega. esto je nakon ovih

    aritmetikih operacija potrebno testirati rezultat izvrenja i donijeti odluku o

    daljem pravcu procesiranja na osnovu rezultata testiranja (npr. za sluaj preljeva,

    potrebno je pozvati neku rutinu za procesiranje greaka). Za ovo se koriste

    instrukcije grananja zavisno od uslova (BNE, BPO, JE, ). Ove instrukcije kao

    ulazne parametre koriste stanje markera u statusnom registru. Standardni markeri

    u statusnim rijeima procesora su:

    Sign (Znak). Bit koji oznaava znak (pozitivan/negativan) rezultata prethodne

    operacije.

    Zero (Nula). Bit koji je postavljen ako je rezultat prethodne operacije 0.

    Carry (Prenos). Ovaj bit se moe postaviti razliitim instrukcijama, npr.

    prenosom kod sabiranja iz bita najvie teine (odnosno 'pozajmljivanjem' kod

    oduzimanja), pomjerakim instrukcijama te eksplicitnim postavljanjem

    statusnog registra.

    Overflow (Preljev/premaaj). Ovaj bit se postavlja kada se rezultat operacije

    (npr. sabiranja) ne moe predstaviti brojem raspoloivih bita registra.

    Interrupt enable (Omoguenje prekida). Ovim bitom se dozvoljava/

    onemoguuje prekid izvrenja programa eksternim zahtjevom. U sluaju da je

    prekid dozvoljen i da postoji zahtjev za prekid, procesor nakon kompletiranja

    tekue instrukcije uva tekui kontekst/stanje izvrenja (ili neophodni dio tog

    konteksta) i zapoinje izvrenje rutine za servisiranje prekida (interrupt

    service routine). Ukoliko postoji vie ulaznih linija u procesor razliitih

    prioriteta kojima se moe zahtijevati prekid tekueg izvoenja i servisiranje

    zahtjeva, u tom sluaju u statusnom registru postoji vie bita kojima se

    odreuje minimalni prioritet zahtjeva koji e biti posluen.

  • 7/27/2019 Skripta(1 Dio) ar

    23/76

    23

    Biti privilegovanog reima. Ovim bitima se moe specifikovati reim

    izvoenja instrukcija: tipino korisniki reim (koji je efektivan kada se izvodi

    korisniki program) ne moe izvoditi sve instrukcije iz repertoara procesora.

    U supervizorskom reimu procesor izvodi sve instrukcije iz svog repertoara.

    Mogue je postojanje i reima rada sa privilegijama izmeu dva navedena

    sluaja.

    Interni registri

    Interni regstri su registri koje procesor interno koristi za privremeno smjetanje i baferovanje

    podataka u procesu pribavljanja i izvrenja instrukcije. Stanje ovih registara nakon izvrenja neke

    instrukcije ne utie na izvrenje slijedee instrukcije. Npr. MAR (memory address register) se

    koristi postavljanje memorijske adrese sa koje se vri oitavanje podatka/instrukcije, odnosno na

    koju se vri upis podatka. Nakon to se adresa (generisana generatorom adresa) postavi u MAR,

    transfer podatka izmeu procesora i memorije se vri aktiviranjem upravljakih signala za itanje/

    upis memorije (Mem_Read, Mem_Write). Ukoliko se vri upis u memoriju, prethodno se podatak

    mora postaviti u MDR (memory data register). Nakon itanja iz memorije, podatak se takoe

    prvo smjeta u MDR, a zatim se prosljeuje u registar ili ulaz ALU.

    Npr. ako se izvodi instrukcija

    ADD Rx, displ[Bx],

    koja vri sabiranje sadraja registra Rx i memorijske lokacije odreene baznom adresom

    (sadrane u registru Bx) i odstojanjem displ od poetka te adrese, onda:

    generator adresa prvo sraunava efektivnu adresu EfADR = (Bx) + displ,

    (MAR) EfADR,

    (DR)Mem[MAR],

    (Rx) (Rx) + (MDR). (ALU u jednom ciklusu sraunava zbir operanada koji su

    dovedeni na ulaz Rx i MDR, te vraa rezultat u odredini

    registar (Rx).

    3.3.2 Interne magistrale

    Internim magistralama se prenose podaci, adrese i upravljaki signali u okviru centralne

    procesne jedinice. U cilju postizanja veih brzina, broj internih (on chip) magistrala je po pravilu

    vei od spoljnih. U slijedeem primjeru su date varijante organizacije centralne procesorske

    jedinice sa razliitim brojem internih magistrala.

  • 7/27/2019 Skripta(1 Dio) ar

    24/76

    24

  • 7/27/2019 Skripta(1 Dio) ar

    25/76

    25

    3.3 Princip organizacije

    3.4 Struktura CPU

    3.5 Bazi~na organizacija memorije

    3.6 Izvo|enje programa

    3.7 Povezivanje i komunikacija sa periferijskim podsistemom

    3.8 Magistrale

    Izvrna jedinica

    +1

  • 7/27/2019 Skripta(1 Dio) ar

    26/76

    25

    33..33 Upravljaka jedinica

    Upravljaka jedinica generie signale za upravljanje svim aktivnostima u okviru CPJ,

    kontrolom upravljake jedinice se vri dobavljanje instrukcije iz memorije, njeno

    dekodovanje i identifikacija operacije koju je potrebno izvriti, identifikacija i prenos

    operanada od izvorita do funkcionalnih jedinica gdje se zahtijevana operacija izvodi, te

    vraanje rezultata na odredite. Ovaj proces se pod kontrolom upravljake jedinice

    ponavlja pri izvoenju svake slijedee instrukcije. Dakle, upravljaka jedinica djeluje kao

    'komandni centar' iz kojeg se upravlja radom ostalih jedinica sistema, a u svrhu izvrenja

    niza mainskih instrukcija programa ime se realizuje eljena funkcija - algoritam.

    Da bi upravljaka jedinica ostvarila ove zadatke, ona mora da:

    obezbijedi korektan redoslijed izvrenja instrukcija (sekvenciranje instrukcija),

    generisanjem potrebnih signala obezbijedi izvrenje selektovane instrukcije.

    Sekvenciranje instrukcija

    Kao to smo prethodno naveli, procesor izvodi niz instrukcija (elementarnih akcija sa

    stanovita asemblerskog programiranja) iz skupa mainskih instrukcija procesora. Skup

    mainskih instrukcija moe biti razliit (minimalni skup kojim se moe realizovati svaki

    algoritam je skup koji se sastoji iz (M. L. Minsky, 1967):

    instrukcije ADD ONE (dodaj jedan) i,

    instrukcije DECREMENT AND JUMP IF ZERO (umanji sadraj za jedan uz

    grananje ako je rezultat 0).

    Podrazumijeva se da se iza prve instrukcija (ADD ONE) u sekvencijalnom programu

    moe izvesti samo jedna (slijedea sekvencijalna instrukcija), tj. da ona ima samo jednog

    nasljednika, dok se nakon izvrenja druge instrukcije (DECREMENT AND JUMP IF

    ZERO) izvodi jedna od dvije mogue 'slijedee' instrukcije, zavisno od rezultata

    izvrenja. Druga instrukcija spada u grupu instrukcija grananja. U praksi je broj

    instrukcija prvog tipa znatno vei od drugog (priblino je 20% instrukcija grananja).

    Logika za odreivanje lokacije slijedee instrukcije, nakon izvoenja instrukcije I1

    prvog tipa, je jednostavna: ako PC pokazuje na lokaciju instrukcije I1, onda:

  • 7/27/2019 Skripta(1 Dio) ar

    27/76

    26

    na osnovu operacionog koda i naina adresiranja instrukcije I1, moe se utvrditi

    broj bajta w instrukcije I1,

    ako je slijedea instrukcija koja treba da se izvede smjetena neposredno iza I1,

    onda se njena adresa moe odrediti novom vrijednou PC-a:

    PCPC+ w.

    Kod instrukcije grananja, ukoliko je rezultat izvrenja takav da je potrebno izvriti

    instrukciju koja se ne nalazi iza same instrukcije nego na mjestu MX, onda sama

    instrukcija grananja sadri informacije (nain adresiranja, registri koji se koriste za

    specifikaciju adrese, ofseti i slino) na osnovu kojih se sraunava vrijednost MX

    (efektivna adresa) tako da je proces sraunavanja adrese slijedee instrukcije slijedei:

    na osnovu operacionog koda i naina adresiranja instrukcije I1, utvruje se broj

    bajta w instrukcije,

    ukoliko je uslov testiranja istinit, onda se na osnovu adresnog naina sraunava

    MX i PCMX; u suprotnom PCPC+ w.

    Pored prenosa upravljanja sa sukcesivnog toka instrukcija na instrukciju koja nije u

    nizu instrukcijama grananja (koje mogu biti instrukcije uslovnog ili bezuslovnog

    transfera), ovaj prenos se standardno u raunarskim sistemima moe realizovati

    instrukcijama za poziv potprograma (instrukcije tipa CALL, JSR ili slino), ili

    dogaajem prekida. Tipino, u ovim sluajevima, prenos upravljanja je privremen, i

    vraa se na taku gdje se prekid desio nakon zavretka potprograma ili obrade prekida.

    Izvoenje instrukcija

    Izvoenje instrukcija se realizuje tako to upravljaka jedinica generie niz upravljakih

    signala u pravo vrijeme i u korektnoj sekvenci, koji upravljaju radom izvrne jedinice

    procesora. Ovi signali su:

    interni upravljaki signali (koji upravljaju radom sklopova u okviru CPU-a),

    spoljni upravljaki signali (signali tipa MR, MW, IOR, IOW, statusni signali

    procesora),

    spoljni ulazni upravljaki signali (signali tipa Reset, Ready, BussError itd.),

  • 7/27/2019 Skripta(1 Dio) ar

    28/76

    27

    instrukcija signali na ovim linijama ukazuju na tip operacije koja treba da se

    obavi (Sl. 3.6).

    6

    Tipovi upravljakih jedinica

    Dve su varijante realizacije upravljake jedinice:

    direktno upravljanje. Logikom mreom se generiu kontrolni signali u

    predefinisanom redoslijedu za svaku mainsku instrukciju (hardwired/konvencionalni

    pristup),

    mikroprogramsko upravljanje (Wilkis 1953). Kontrolni signali se generiu izvrenjem

    mikroinstrukcija zapisanih u internoj mikroprogramskoj memoriji procesora.

    Izvoenje svake mainske instrukcije (koja ima svoj asemblerski ekvivalent) se

    realizuje nizom elementarnih akcija koje se implementiraju mikroinstrukcijama.

    Prednost direktnog upravljanja je brzina a mikroprogramskog jednostavnost

    realizacije i izmjena/otklanjanja greaka u projektovanju. Mikroprogramsko upravljanje

    takoe daje veu fleksibilnost u smislu mikroprogramske implementacije specijalnih

    rutina (korisnikih, dijagnostikih i dr.), mogunost emulacije procesora starijih

    generacija ili drugih procesora itd.

  • 7/27/2019 Skripta(1 Dio) ar

    29/76

    28

    Upravljaka jedinica sa direktnim upravljanjem.

    Varijante ovog tipa upravljakih jedinica su upravljake jedinice zasnovane na:

    tabeli stanja,

    elementima za kanjenje

    brojakoj sekvenci.

    Prilikom izvoenja instrukcije procesor prolazi kroz niz internih stanja. Na osnovu

    tekueg stanja i skupa ulaznih signala, generiu se izlazni signali i procesor prelazi u

    novo stanje. Dio generisanih izlaza se koristi kao ulazni signali sljedeeg stanja. Logika

    rada, moe se predstaviti tabelom stanja, kojom se opisuje prelazi procesora kroz interna

    stanja. Na Sl. 3.7 vrste u tabeli odgovaraju internim stanjima iz skupa Sint. Kolone u tabeliodgovaraju podskupovima ulaznih signala bj A ul. Iz stanja Sipod dejstvom podskupa

    ulaznih signala bj prelazi se u novo stanje Sij, pri emu se aktiviraju ulazni signali

    definisani sa aij Aiz.

    Sl. 3.7 Tabela stanja upravljake jedinice

    Problem sa realizacijom upravljake jedinice upravljane na bazi tabele stanja je u veliini

    tabele, zbog velikog broja moguih stanja i velikog broja stanja ulaznih signala.

    Upravljaka jedinica zasnovana na elementima za kanjenje

    Kod ovog koncepta upravljakih jedinica, polazi se od dijagrama toka rada upravljake

    jedinice. Za reprezentaciju n stanja sistema koristi se n-bistabilnih elemenata; jedan

    element po stanju.

  • 7/27/2019 Skripta(1 Dio) ar

    30/76

    29

    U datom trenutku aktivan je samo jedan bistabilni element i taj ukazuje na tekue stanje.

    Prelaz u novo stanje se moe predstaviti podskupom osnovnih koncepata dijagrama toka,

    pri emu se svaki od ovih koncepata implementira odgovarajuim upravljakim kolom

    (Sl.3.8)

    Nedostatak ove metode je u velikom broju flip-flopova koji se koriste za reprezentaciju

    stanja sistema, odnosno elemenata za kanjenje. Slian koncept realizacije je koncept

    zasnovan na brojakoj sekvenci.

    Sl. 3.8 Realizacija koncepata dijagrama toka upravljakim kolima

    Metoda brojake sekvence

    Upravljaka jedinica ovog tipa pretpostavlja izvrenje mainske instrukcije u kkoraka. U

    i-tom koraku aktivira se neki skup upravljakih linija koritenjem odnosnog faznog

    impulsa i. Fazni impulsi i (i = 1, , k) generiu se kolom 'broja sekvenci'. Sukcesivni

    impulsi na izlazu brojaa sekvenci su vremenski pomjereni za vrijeme trajanja impulsa

  • 7/27/2019 Skripta(1 Dio) ar

    31/76

    30

    (Sl. 3.9). Sprega brojaa sekvenci i logikog bloka kojim se implementira odnosna

    funkcija predstavljena je na sl. 3.10 (3.36).

    Sl.3.9 Broja sekvenci modula k

    Sl. 3.10 Sprega brojaa sekvenci i logikog bloka

  • 7/27/2019 Skripta(1 Dio) ar

    32/76

    31

    Primjer generisanja upravljakih signala pri izvoenju ADD instrukcije hipotetikog

    procesora metodom brojake sekvence, dat je u tekstu koji slijedi. Dio staza podataka

    hipotetikog procesora prikazan je na sl. 3.11 (1.2MP). Kontrolne take su predstavljene

    kruiima. Sadraj registra iz registarskog skupa, specifikovanog A-adresom ili B-

    adresom se prosljeuje na odnosnu magistralu (A ili B) tako da se oni pojavljuju na ulazu

    ALU kao operandi. Izlaz iz ALU-a ide na D-magistralu, i moe se kopirati u registar

    specifikovan B-adresom. Za selekciju registra A i B koriste se kontrolni signali 1 i 2, za

    kopiranje izlaza ALU signal 3, za oitavanje/upis sadraja registra kontrolni signal 4 i za

    specifikaciju ALU operacije signali 5 8.

    Sl. 3.11 Staze podataka hipotetikog procesora

    Pretpostavimo da ADD instrukcija hipotetikog procesora ima format:

  • 7/27/2019 Skripta(1 Dio) ar

    33/76

    32

    OPCODE ADD A-adresa B-adresa

    pri emu A i B adrese specifikuju odnosni registar u registarskom skupu. ADD

    instrukcija se moe definisati kao to slijedi:

    Dodaj sadraj registra specifikovanog A-adresom sadraju registra

    specifikovanog Badresom, i smjesti rezultat u registar odreen B-

    adresom.

    Pretpostavimo da je instrukcija ve raspoloiva u registru (instrukcioni registar).

    Vremenski dijagrami signala potrebnih za implementaciju gornje instrukcije, zajedno sa

    osnovnim taktom i faznim signalima 1 -4, dati su na Sl. 3.12.

    Sl. 3.12 Vremenski dijagrami upravljakih signala za implementaciju ADD instrukcije

  • 7/27/2019 Skripta(1 Dio) ar

    34/76

    33

    ADD operacija se implementira slijedeom sekvencom dogaaja:

    1 a. Omogui A-adresu: Ovim se postavlja prvi operand na ulaz ALU

    b. Omogui B-adresu: Ovim se postavlja drugi operand na ulaz ALU

    c. Postavi ALU kontrolu: Ovim se specifikuje operacija za izvrenje u ALU

    2 a. Omogui A-adresu: Zadri A - vrijednost na ulazu ALU-a

    b. Omogui B-adresu: Zadri B - vrijednost na ulazu ALU-a

    c. Omogui D-prihvatnik (le): Proslijeivanje rezultata na D-magistralu

    d. Postavi ALU kontrolu: Zadri ALU OPCODE

    3 a. Onemogui A-adresu: (posto vie nije potrebna)

    b. Omogui B-adresu: Za upis sadraja D magistrale u B registar

    c. Onemogui D-prihvatnik (le): (vie nije potrebna)

    d. Omogui upis: Omoguava upis D magistrale u B registar

    4 Onemoguenje svih signala: Kraj operacije

  • 7/27/2019 Skripta(1 Dio) ar

    35/76

    34

    Kontrolna logika potrebna za generisanje vremenskog dijagrama sa Sl. 3.12. data je na Sl.

    3.13.

    Sl. 3.13

    Metoda zasnovana na elementima za kanjenje je konceptualno ista kao i metoda

    zasnovana na brojakoj sekvenci. Konverzija rjeenja na bazi prve metode u rjeenje na

    bazi brojake sekvence je predstavljena na Sl. 3.14.

  • 7/27/2019 Skripta(1 Dio) ar

    36/76

    35

    Sl. 3.14 Korespondencija izmeu metode zasnovane na kanjenju i metode zasnovane na

    upravljakoj sekvenci

  • 7/27/2019 Skripta(1 Dio) ar

    37/76

    38

    Kao to je prethodno reeno, mikroinstrukcije sadre skup mikrokomandi koje

    kontroliu izvrenje skupa mikrooperacija u toku mikroinstrukcionog ciklusa. Ukoliko se

    svakom mikroinstrukcijom kotrolie izvrenje samo jedne mikrooperacije, onda se radi o

    vertikalnim mikroinstrukcijama, a ako se jednom mikroinstrukcijom moe specifikovati

    izvrenje vie mikrooperacija, onda se radi o horizontalnim mikroinstrukcijama.

    Prednost vertikalnih mikroinstrukcija je u:

    maksimalnom iskoritenju mikroinstrukcione rijei, jer se specifikuje samo

    operacija koja se izvodi,

    mikroprogramiranje je jednostavno zbog jednostavnosti formata mikroinstrukcija.

    Nedostatci vertikalnog mikroprogramiranja su u relativno dugim sekvencama

    mikroinstrukcija, to implicira due vrijeme izvrenja mikroprograma i to nema

    mogunost paralelnog izvoenja mikrooperacija.

    esto se pod horizontalnim mikroinstrukcijama podrazumijeva maksimalni

    paralelizam operacija, to podrazumijeva koritenje veeg broja razliitih polja u okviru

    mikroinstrukcije. Balansirani pristup koristi manji broj polja za specifikaciju mikro-

    operacija nego kod horizontalnih mikroinstrukcija; ovaj format mikroinstrukcija se esto

    referie terminom dijagonalni format (dijagonalne mikroinstrukcije). Dok je broj

    razliitih polja kod vertikalnih mikroinstrukcija 1-3, horizontalnih vei od 6, kod

    dijagonalnih instrukcija broj razliitih polja je od 4-6.

    Ukoliko se u mikroprogramskoj memoriji nalazi veliki broj mikroinstrukcija koje se

    ponavljaju (ako je ukupan broj mikroinstrukcija n, broj razliitih mikroinstrukcija je m pri

    emu je esto m

  • 7/27/2019 Skripta(1 Dio) ar

    38/76

    39

    Sl. 3.15 Konvencionalni i nanoprogramski koncpet realizacije mikroprogramske

    memorije

  • 7/27/2019 Skripta(1 Dio) ar

    39/76

    40

    33..44 Ulazno/Izlazni podsistem

    3.4.1 Povezivanje procesora sa okolinom

    Fiziko povezivanje mikroprocesora sa okolinom realizuje se preko elektriki

    provodljivih noica pinova. Preko pinova se realizuje napajanje procesora, taktna

    pobuda te prenos signala za komunikaciju sa memorijom i U/I podsistemom. Putevi koji

    povezuju pinove procesora sa ostalim dijelovima sistema ine spoljanu magistralu

    procesora. Razliiti procesori mogu imati odreene specifinosti u pogledu broja i

    funkcija pojedinih linija. Za ilustraciju, primjer linija za povezivanje hipotetikog

    procesora dat je na sl 3.16.

    Sl. 3.16

    3.4.2 Princip povezivanja sa U/I podsistemom

    Raunar komunicira sa spoljnim svijetom (ljudi, industrijski procesi itd.) preko

    ulazno/izlaznih jedinica (ureaja). S obzirom na primjenu raunara u svim oblastima

    ljudske djelatnosti, razvijen je veliki broj periferijskih ureaja sa kojima raunar moe da

    komunicira. Mnogi od ovih ureaja postali su standardni dio raunarskih sistema. I pored

  • 7/27/2019 Skripta(1 Dio) ar

    40/76

    41

    velikog broja, veoma razliitih perifernih jedinica, princip njihovog povezivanja sa

    raunarima je u znatnoj mjeri standardizovan.

    Prema komunikacionim karakteristikama, U/I ureaje moemo grupisati u:

    razumljive ovjeku (terminali, tampai, zvune U/I jedinice itd.),

    itljive od strane maine (magnetne trake, diskovi, skeneri itd),

    komunikacione (pogodni za komunikaciju sa udaljenim ureajima),

    razumljive specifinim ureajima/procesima (A/D konvertori, jedinice zasprezanje sa izvrnim organima itd.)

    Prema brzini, razlikujemo brze (magnetni diskovi, A/D konvertori, komunikacioni

    ureaji), jedinice srednjih brzina (jedinice magnetnih traka, standardni tastarure

    tampai itd.) i spore ureaje ( prekidai, releji i slino).

    Princip povezivanja periferijskih jedinica i raunara moe se predstavi sl. 3.17. Sa

    slike se vidi da se povezivanje sa periferijom vri posredstvom U/I interfejsa. Kao i

    memorijska sabirnica i U/I sabirnica sadri adresne linije, linije podataka, i kontrolne

    linije. Adresne linije slue za selekciju registara (portova) preko kojih se odvija

    komunikacija sa periferijskim jedinicama, a preko linija podataka se vri prenos

    informacija izmeu periferija i raunara. Kontrolnim linijama se prenose kontrolne i

    statusne informacije i vri sinhronizacija prenosa. Broj adresnih linija kao i broj linijapodataka ne moraju da korespondiraju broju odnosnih linija na memorijskoj sabirnici.

    Sl. 3.17 Povezivanje raunara sa periferijama

  • 7/27/2019 Skripta(1 Dio) ar

    41/76

    42

    Principijelna blok ema U/I interfejsa prikazana je na sl. 3.18

    Sl. 3.18 Blok ema U/I interfejsa

    Iako memorijski i U/I podsistem mogu da dijele odreene linije i adresa i podataka,

    oni su logiki razdvojeni: odreene kontrolne linije specifikuju da li se operacije odnose

    na U/I ili memorijski podsistem. Npr. pri generisanju U/I adrese 5, na adresnim linijama

    e se pojaviti vrijednost 5, ali e aktivan biti kontrolni signal za komunikaciju sa

    periferijama (M/IO u logikoj 0 ), a pri generisanju memorijske adrese 5, pored iden-

    tinog sadraja na adresnim linijama, na kontrolnim linijama signal M/IO bie u stanju

    logiko 1.

    I pored standardizacije tehnika povezivanja U/I ureaja sa raunarima problemi kod

    povezivanja proistiu iz razlike u: brzini periferija; broju bita prenosa; specifinom

    nainu zapisivanja/predstavljanja podataka; tipovima dozvoljenih operacija, nainu

    detekcije i reakcije na pojave greaka itd. Zbog tih specifinosti, nije racionalna

    implementacija logike povezivanja sa periferijama u sam CPU.

    3.4.3 U/I interfejs

  • 7/27/2019 Skripta(1 Dio) ar

    42/76

    43

    U/I interfejs kontrolie rad periferijskih jedinica u skladu sa naredbama procesora

    raunara, i po potrebi vri konverziju podataka iz jednog formata u drugi. Najee su

    periferijske jedinice zasebne cjeline, dok se U/I interfejs pakuje u isti kabinet/kuite sa

    procesorom i memorijom.

    Ponekad nije jednostavno utvrditi liniju razgranienja izmeu periferije i interfejsa.

    Npr. na sl. 3.19, enkoder konvertuje pritisak na tipku tastature u 7-bitni ASCII kod. Ovaj

    kod se pamti u interfejsu ka magistrali, i na zahtjev prosljeuje na samu magistralu. Iako

    je logiki enkoder u sastavu interfejsa, on se najee pakuje zajedno sa tastaturom, dok

    se interfejs prema magistrali implementira u kuitu zajedno sa procesorom.

    Sl. 3.19 Jednostavni interfejs tastature

    U/I interfejs treba da prepozna kada mu se CPU obraa u cilju slanja/itanja podataka

    /komandi/statusa i da izvri u predvienom vremenu zahtijevanu akciju/operaciju: prihvat

    ili slanje odnosnih podataka. Za realizaciju toga cilja, U/I interfejs treba da generie i da

    procesira odnosne signale za sinhronizaciju komunikacije sa CPJ. Zahtjevi analogni

    navedenom se postavljaju i pri komunikaciji U/I interfejsa sa periferijom. Dodatno, U/I

    interfejs treba da obezbjedi potrebnu konverziju podataka iz formata u kojem prima

    (alje) podatke od CPJ (periferijske jedinice) u format prijema od strane periferijske

    jedinice (CPJ), da obezbijedi procesiranje greaka itd. Principijelna blok ema U/Iinterfejsa, kojom se obezbjeuju navedene funkcije data je na sl. 3.20.

  • 7/27/2019 Skripta(1 Dio) ar

    43/76

    44

    Sl. 3.20 Blok ema U/I interfejsa

    U/I portovi

    Periferijski interfej sadri skup registara U/I portova kojima CPU moe da pristupa

    i preko kojih CPU komunicira sa interfejsom. Funkcije portova mogu biti:

    Baferovanje podataka ka/iz memorije, uvanje informacije o statusu ureaja sa kojim se komunicira, Registrovanje komandi CPU a upuenih U/I interfejsu.

  • 7/27/2019 Skripta(1 Dio) ar

    44/76

    45

    Skup portova predstavlja U/I programski model. Programski model interfejsa

    tastature sa sl. 3.19 sastoji se od jednog 8-bitnog I/O porta (KBDATA) (sl. 3.20).

    7 6 0

    0 Kod tipke (ASCII) KBDATA

    Sl. 3.20 Programski model interfejsa tastature

    Da bi oitao podatak sa tastature, program mora da izvede instrukciju koja vri

    transfer sadraja porta KBDATA u jedan od registara procesora. Iako je port KBDATA

    sa stanovita procesora read-only (mogue samo itanje), encoder (interfejs) moe da

    'upisuje' u njega podatke. Pokuaj upisa u port sa procesorske strane nema efekta na

    sadraj registra. Zbog navedenog, port se naziva 'ulazni'.

    Primjer interfejsa ka izlaznoj periferijskoj jedinici, sa jednim (izlaznim) portom

    (DIGOUT) u interfejsu, prikazan je na sl. 3.21.

    Sl. 3.21 a) 7-segmentni displej i pripadajui interfejs; b) programski model

    Periferija interpretira 8-bitni podatak kao dvije BCD cifre, sa prikazom na 2 7-

    segmentna displeja. Da bi se izvrio prikaz eljenih cifara, procesor mora poslati 2 BCD

    cifre u 1-om bajtu na izlazni port DIGOUT odgovarajuim instrukcijama.

  • 7/27/2019 Skripta(1 Dio) ar

    45/76

    46

    Pored toga to je KBDATA ulazni a DIGOUT izlazni port, razlika je i u tome to

    KBDATA ne pamti sadraj pritisnutog tastera, nego ga samo baferuje za prosljeivanje

    na U/I magistralu (kada se tipka tastature otpusti, istovremeno dolazi i do promjene

    KBDATA). S druge strane DIGOUT je registar sa memorijom: nakon upisa od strane

    procesora, sadraj porta se ne mijenja dok se ne upie nova vrijednost od strane CPU-a.

    Prema tipu podataka koji se izmjenjuju izmeu porta i procesora, razlikujemo:

    port podataka (preko kojeg se izmjenjuju podaci),

    statusni port (preko kojeg procesor moe dobiti informaciju o stanju prenosa, U/I

    interfejsa odnosno ureaja),

    upravljaki port, preko kojeg CPU postavlja komande i parametre za izvoenje

    U/I operacija.

    3.4.4 Naini selekcije U/I ureaja

    Za selekciju U/I ureaja i transfer podataka ka perifernim ureajima (i obrnuto),

    procesor moe koristiti dva naina. Jedan je koritenjem specijalnih U/I instrukcija

    procesora (izolirani U/I), dok se drugi realizuje koritenjem instrukcija za izmjenu

    podataka sa memorijom (memorijsko mapirani U/I).Primjer koritenja i formata U/I instrukcija IN / OUT je dat na sl. 3.22.

    IN Rn, Pn ; uitava se u registar Rn sadraj porta Pn,

    OUT Pn, Rn ; upisuje se u port Pn sadraj registra Rn.

    15 4 3 0

    Opcode Rn

    Pn

    Sl. 3.22 Koritenje i format U/I instrukcija

    IN / OUT instrukcije izvravaju transfer podataka slino memorijskim instrukcijama

    LD / ST, izuzev da ne adresiraju memoriju nego U/I port. Pri izvoenju memorijskih

    instrukcija procesor aktivira signal M/IO za selekciju memorije (logiko 1). Signal M/IO

  • 7/27/2019 Skripta(1 Dio) ar

    46/76

    47

    se koriste kako za selekciju portova U/I interfejsa (pored adresnih informacija), tako i za

    inicijalizaciju samog transfera. Pri transferu podataka iniciranom IN/OUT instrukcijama,

    memorija nije 'prozvana', jer je kontrolni signal M/IO postavljen na 0. Na taj nain

    adrese selektuju ili I/O portove, ili memorijske lokacije, zavisno od koritenih instrukcija

    (odnosno kontrolnih signala koji se generiu). Kod memorijski mapiranog U/I, I/O

    portovima se pristupa koritenjem memorijskih instrukcija. Jedan dio memorijskog

    adresnog prostora je pridjeljen za adresiranje U/I portova (sl. 3.23).

    Sl. 3.23 Izolovani i memorijski-mapirani I/O

    Prednosti memorijski - mapirane U/I komunikacije su:

    ne zahtijeva specijalizovane U/I instrukcije (kod nekih procesora oveinstrukcije nisu ni raspoloive),

    za U/I transfer se mogu koristiti sve instrukcije za referenciranje memorije,

    raspoloiv je veliki broj U/I portova,

    pojednostavljuje se hardverska struktura.

    Nedostaci memorijski - mapirane U/I komunikacije su: gubitak dijela adresnog prostora memorije (namijenjen za U/I), memorijske instrukcije nisu optimizovane za U/I operacije.

    3.4.5 Tehnike U/I komunikacije i prenosa podataka

  • 7/27/2019 Skripta(1 Dio) ar

    47/76

    48

    Pri U/I komunikaciji CPU moe biti u veoj ili manjoj mjeri ukljuen u proces U/I

    komunikacije. Ako su U/I operacije u potpunosti kontrolisane od strane CPU-a

    (iniciranje, osmatranje statusa periferije, transfer podataka i okonanje transfera), onda se

    ovakav tip transfera nazivaprogramirani U/I prenos.

    Programirani U/I prenos

    Tipian protokol komunikacije za oitavanje podataka sa ulaznog porta kod

    programiranog U/I prenosa dat je na sl. 3.24.

    Sl. 3.24 Protokol komunikacije za ulaznu jedinicu.

    Sl. 3.25 Programski model tastature sa kontrolnim i statusnim portom

    Npr. za programski model tastature koji se sastoji od jednog kontrolnog i statusnog

    porta i jednog ulaznog porta za podatke (sl. 3.25), uitavanje podataka tehnikom

    programiranog ulaza/izlaza dat je slijedeim kodom:

  • 7/27/2019 Skripta(1 Dio) ar

    48/76

    49

    INIT: LDA #1 ; Start (iniciranje) operacije

    STA KBCS ;

    CEKANJE: TST KBCS ; Testiranje spremnosti interfejsa (RDY=1)

    BPL CEKANJE ; ekanje, ako interfejs nije spreman

    LDA KBDATA ; Interfejs spreman, oitaj podatak

    .

    Pored ove varijante programiranog U/I (uslovni U/I prenos), u varijanti bezuslovnog

    prenosa procesor ne ispituje status spremnosti periferije za komunikaciju; ovo se

    primjenjuje kada se zna da je periferija uvijek spremna za U/I komunikaciju u trenutku

    iniciranja transfera. Primijetimo da je mogue inicirati pripremu slijedeeg podatka (npr.

    kod itanja jedinice magnetne trake), nakon oitavanja prethodnog, i nastaviti obradu

    (preklapanje obrade i U/I overlapped U/I).

    Tehnika prenosa podataka programiranim U/I ima veliki nedostatak u ogromnom

    gubitku procesorskog vremena dok se eka na spremnost periferije (problem se dijelom

    moe ublaiti preklapajuim U/I). U cilju minimizacije utroka procesorskog vremena pri

    U/I komunikaciji, razvijene su prekidne tehnike prenosa podataka, kao i prenos podataka

    direktnim pristupom memoriji.

  • 7/27/2019 Skripta(1 Dio) ar

    49/76

    50

    Prekidna tehnika U/I komunikacije

    Prekidi

    Prekidi su dogaaji koji uzrokuju prekid izvravanja normalnog toka programske

    sekvence. Ovi dogaaji mogu biti razliiti, a dijele se na softverske (generisane

    programom) i hardverske (generisane hardverskim sklopovima/ureajima) (sl. 3.26).

    Prekid proizilazi iz vieg prioriteta servisiranja dogaaja koji uzrokuje prekid, u odnosu

    na prioritet izvravanja osnovnog programa. Servisiranje se realizuje aktiviranjem

    prekidne rutine (interrupt service routine) koja treba da izvede sve potrebne akcije koje

    zahtijeva pojava tog dogaaja. Nakon servisiranja dogaaja prekida programska sekvenca

    se vraa na taku prekida, nakon ega se nastavlja izvoenje osnovnog programa.

    Prekidi

    Softverski (sinhroni) Hardverski

    Eksplicitnogenerisani

    Poslj. greke uizvoenju programa

    SWI

    INT

    SIM I/O INT

    .

    .

    .

    Eksterni Interni

    Maskirani Nemaskirani

    I/OALARM

    TIMER

    .

    .

    .

    .

    .

    ..

    .

    .

    DIV BYZERO

    POWER FAIL

    MACHINEMULFUNCTION

    PARITY ERROR

    .

    .

    .

    Sl. 3.26 Klasifikacija prekida

  • 7/27/2019 Skripta(1 Dio) ar

    50/76

    51

    Odreeni dogaaji najvieg prioriteta uvijek uzrokuju prekid (npr. POWER FAIL,

    MACHINE MULFUNCTION, ALARM, DIV BY ZERO, ). Maskirani prekidi se

    posluuju samo ako procesor prethodno postavi bitove dozvole prekida u statusnoj rijei

    procesora za odnosne dogaaje.

    Ideja prekida potie od problema komunikacije sa periferijama. Kod programiranog

    I/O procesor kontinualno testira spremnost periferije za komunikaciju. Pri takvom nainu

    komunikacije, u sistemu sa mnogo periferijskih jedinica procesor bi veinu vremena

    troio u ekanju na spremnost periferija. Takav nain rada bi usporavao ak i periferijske

    jedinice: periferija koja ima spreman podatak bi mogla da eka znaajan vremenski

    period zbog komunikacije procesora sa drugim periferijama programiranim U/I, to bi

    blokiralo pripremu novih podataka od strane periferija koje ekaju na komunikaciju.

    Alternativni pristup je da procesor radi koristan posao izvodei osnovni program, a daperiferija kada postane spremna za komunikaciju, izvjesti o tome procesor postavi

    zahtjev za komunikaciju. Na osnovu prioriteta zahtjeva, procesor moe prihvatiti zahtjev

    i servisirati dogaaj aktiviranjem prekidne rutine, ili odloiti servisiranje zahtjeva za neki

    kasniji trenutak vremena.

    Procesor moe prekinuti tekuu sekvencu kontrolnog toka samo izmeu individualnih

    mainskih instrukcija. Razlog tome je to to program ije se izvrenje prekida, treba da

    nastavi rad od take prekida nakon servisiranja dogaaja koji ga je generisao. Za to je

    potrebno uvanje stanja procesora (konteksta) u trenutku prekida, i restauracija tog stanja

    nakon servisiranja prekida. Poto je za izvoenje instrukcije osnovnog programa iza take

    prekida bitan samo kontekst programskog modela nakon izvoenja prethodne instrukcije,

    onda se prekidi dozvoljavaju samo nakon kompletiranja izvrenja jedne instrukcije a prije

    poetka izvrenja druge. Dakle, proces izvrenje jedne instrukcije bi se mogao opisati

    sekvencom:

    BEGINCheckForInterrupt;Fetch;Execute;

    END

  • 7/27/2019 Skripta(1 Dio) ar

    51/76

    52

    CheckForInterrupt sekvenca utvruje postojanje zahtjeva za prekid, odnosno

    dogaaja koji zahtijevaju posluivanje. Ukoliko se radi o dogaaju (tipu prekida) koji

    zahtijeva neodlono servisiranje ili ako je prekid koji se moe kontrolisati (maskirati)

    dozvoljen, onda se ulazi u proces posluivanja prekida u okviru kojeg se:

    Pohranjuje u memoriju (na stek) dio stanja ili kompletno stanje programskogmodela procesora i postavlja u PC adresa poetka rutine za servisiranje prekida (usklopu CheckForInterruptsekvence),

    Identifikuje izvor (uzrok prekida) i izvode se sve potrebne akcije za servisiranjeprekida (u sklopu ISR rutine za servisiranje prekida),

    Sauvano stanje programskog modela se restaurira sa steka (insrukcijom RTI return from interrupt, koja se izvodi na kraju ISR) i nastavlja izvoenje od mjestagdje je prekid nastao.

    Automatsko uvanje (dijela) programskog modela procesora, u procesu posluivanja

    prekida, obuhvata obavezno programski broja i statusnu rije procesora. Ukoliko je broj

    registara procesora mali, onda se najee pohranjuje kompletan programski model, a

    ukoliko je broj registara veliki, onda se zadatak uvanja/restauracije njihovog stanja

    realizuje u okviru ISR. Promjena stanja procesora (PC-a, registara i statusne rijei) pri

    ulasku u servisnu rutinu i restauracija sauvanog stanja pri povratku iz servisne rutine

    naziva se promjena konteksta procesora (context switching). U cilju brzog uvanja/

    restauracije konteksta, mnogi procesori imaju specijalizovane instrukcije kojim se

    specifikuje opseg registara iji se sadraj pohranjuje/restaurira.

    Servisiranje prekida zavisi od prirode dogaaja koji ga je uzrokovao. U daljnjem

    tekstu bie opisano vie varijanti koritenja mehanizma prekida u procesu U/I

    komunikacije.

    Sistem sa veim brojem prekidnih linija

    Najjednostavniji sluaj realizacije U/I komunikacije prekidnim mehanizmom je da

    svaka periferija ima svoju prekidnu liniju (Sl. 3.27). Svaka linija kojom se zahtijeva

    prekid ima obino fiksan prioritet. Omoguenje prekida odreenih prioriteta se kontrolie

    internim bitovima dozvole (interrupt enable). Za svaku prekidnu liniju definisana je

    specifina adresa na koju se preusmjerava programska sekvenca u sluaju dogaaja

  • 7/27/2019 Skripta(1 Dio) ar

    52/76

    53

    prekida (adresa ISR). U okviru interne CheckForInterrupt(mikroprogramske) sekvence

    procesora se:

    utvruje zahtjev za prekid najvieg prioriteta u IR,

    ukoliko je prekid tog nivoa dozvoljen (odgovarajuim bitima dozvole prekida(obino u statusnoj rijei procesora) kojima se specifikuje dozvola prekida

    odreenog prioriteta i vieg), onda se ulazi u sekvencu posluivanja prekida

    (pohranjivanje stanja i ulazak u ISR). Adresa ISR je odreena zahtjevom INTRi

    koji se posluuje.

    3.27

    Kod prekidnog sistema ovog tipa (multinivoijski prekidni sistem sa n-nivoa) tipino

    ureenje prioriteta je slijedee:

    Ako se posluuje prekid nivoa k < n, onda su dozvoljeni prekidi nivoa k+1, , n.

    Koncept gdje se svakom U/I interfejsu pridjeljuje jedan prekidni nivo, nije pogodan,

    jer broj periferija i U/I interfejsa moe biti veliki (nije ga lako unaprijed ni predvidjeti).

    Zbog toga se koristi rjeenje gdje je na jednu liniju zahtjeva za prekid mogue vezati vei

    broj U/I interfejsa (na ulazu u procesor moe postojati jedna ili vie prekidnih linija). Pri

    tome se koriste razliite tehnike za utvrivanje izvora prekida na odreenoj liniji.

    Identifikacija prozivanjem

    Kada se desi prekid uzrokovan zahtjevom za prekid INTRi na odreenoj liniji, ulazi

    se u proces posluivanja prekida aktiviranjem odgovarajue ISR-e. Pri ulasku u ISRi nije

  • 7/27/2019 Skripta(1 Dio) ar

    53/76

    54

    poznat izvor prekida, jer je vie U/I interfejsa vezano na istu liniju INTRi. Da bi se

    utvrdio izvor zahtjeva, odnosna ISRi treba da ispituje status svakog interfejsa vezanog na

    INTRi liniju. Prvi interfejs za koji se utvrdi da je postavio zahtjev (to se utvruje

    ispitivanjem statusnih portova interfejsa) opsluuje se u ISRi. Primjer hardverske

    realizacije ove tehnike (za procesor sa jednom linijom INT za specifikaciju zahtjeva za

    prekid), dat je na sl. 3.28, dok je primjer dijagrama toka odgovarajue ISR dat na sl. 3.29.

    Sl. 3.28 ema hardverske implementacije prekidne tehnike U/I komunikacijeprozivanjem

    Primijetimo da redoslijed ispitivanja odreuje i prioritet posluivanja zahtjeva istog

    prekidnog nivoa. Ovaj redoslijed moe biti fiksan, a moe se i mijenjati (npr. round-robin

    tehnikom: ureaj koji je poslednji posluen, u narednom posluivanju ispituje se na

    kraju). Takoe primijetimo da je mogua varijanta ISR-e u kojoj se vri povratak (RTI)

    na kraju posluivanja svakog interfejsa (im se poslui prvi interfejs koji je traio

    zahtjev). Ova varijanta je pogodna ako je mala vjerovatnoa da dva interfejsa

    istovremeno trae zahtjev za prekid.

  • 7/27/2019 Skripta(1 Dio) ar

    54/76

    55

    Sl. 3.29 Dijagram toka ISR kod tehnike prozivanja

    Lananje i vektorsko prekidanje

    Kod ove tehnike i dalje je vie U/I interfejsa vezano na jednu INTRi liniju zahtjev

    za prekid. Identifikacija U/I interfejsa koji je zahtijevao prekid i aktivacija rutine za

    posluivanje odnosnog interfejsa se realizuje hardverski. Da bi se aktivirala odnosna ISR

    rutina interfejsa koji je postavio zahtjev za prekid, odnosni interfejs postavlja na linije

    podataka prekidni vektor (odnosno identifikator na osnovu kojeg procesor identifikuje

    ISR). Da bi samo jedan ureaj (od vie njih, koji su eventualno postavili istovremenozahtjeve za prekid) postavio prekidni vektor na linije podataka, koristi se lananje. Nain

    realizacije lananja prikazan je na sl. 3.30.

  • 7/27/2019 Skripta(1 Dio) ar

    55/76

    56

    Sl. 3.30 Nain realizacije lananja

  • 7/27/2019 Skripta(1 Dio) ar

    56/76

    57

    INTA (interrupt acknowledge) se koristi kao signal da je CPU prepoznao zahtjev za

    prekid i da je spreman da primi informaciju o vektoru prekida. Ovim se ostvaruje

    sinhronizacija CPU-a i U/I interfejsa u procesu identifikacije zahtjeva za prekid.

    Logika kontrole U/I komunikacije prekidnom tehnikom esto se implementiraposebnim programibilnim kolom (kontroler prekida interrupt controler). Kolo obino

    sadri registar za pamenje zahtjeva za prekid (IRR interrupt request register), registar

    za maskiranje (IMR interrupt mask register) (sl. 3.31), registar statusa servisiranja (ISR

    interrupt service register), konrolne i statusne registre te logiku za lananje (chaining).

    Sl. 3.31 Logika za maskiranje zahtjeva za prekide

    Na slikama 3.32 i 3.33 prikazane su eme koritenja kontrolera prekida za sluaj

    povezivanja jedan port/interfejs - jedna prekidna linija, odnosno grupa portova/interfejsa- jedna prekidna linija.

  • 7/27/2019 Skripta(1 Dio) ar

    57/76

    58

    Sl. 3.32 Povezivanje U/I portova sa CPU preko kontrolera prekida

    Sl. 3.33 Prekidni sistem sa grupisanjem U/I interfejsa i kontrolerom prekida

    Program moe zabraniti odreene prekide postavljanjem odnosnih bitova u IMR.

    Preko kontrolnih portova se definie prioritetni mehanizam: fiksni prioriteti linija (sa

    mogunou da se bilo kojoj liniji pridijeli najnii prioritet), round robin itd. Takoe se

    definie vrijednost prekidnog vektora najnieg prioriteta, odnosno adresa rutine za

    servisiranje prekida (RSP). Ako se u IRR pojavi vie zahtjeva istovremeno, onda

    kontroler na bazi stanja registra maskiranja, registra servisiranja prekida (ISR), i

    prioritetnog mehanizma zakljuuje da li treba generisati zahtjev za prekid procesoru

    (linija INTREQ, sl. 3.32, 3.33). Ukoliko je u toku posluivanje prekida vieg nivoa, onda

    zahtjevi ostaju da 'vise' (pending requests). Ukoliko je pristigao jedan ili vie zahtjeva

  • 7/27/2019 Skripta(1 Dio) ar

    58/76

    59

    vieg nivoa od tekueg posluivanja, onda se postavlja linija INTREQ u aktivno, nakon

    prepoznavanja zahtjeva od strane CPU (aktivan INTA) interfejs (ili kontroler) postavlja

    vektor prekida na magistralu podataka koji odgovara zahtjevu najvieg nivoa (u varijanti

    na sl. 3.32, 3.33, postavljanje vektora prekida postavlja U/I port). Procesor na bazi

    prekidnog vektora odreuje adresu RSP i ulazi u proces posluivanja prekida, a kontroler

    postavlja bit u ISR. Na kraju obrade prekida, RSP je duna da signalizira kontroleru

    prekida da je servisiranje zavreno (preko kontrolnog porta), a kontroler na osnovu toga

    brie postavljeni bit u ISR. Na ovaj nain je implementacija U/I komunikacije prekidnom

    tehnikom znatno pojednostavljena, jer je cijela logika ve imlementirana u integrisanom

    kolu.

    Metod vektorskog prekida zauzeem magistrale

    Kod ovog metoda U/I interfejs treba prije postavljanja zahtjeva (linije INTR) da

    stekne pravo kontrole nad magistralom (bus master). Na taj nain samo jedan U/I

    interfejs moe da aktivira ovu liniju. Nakon aktiviranja zahtjeva i njegovog detektovanja

    od strane procesora, procesor alje signal prepoznavanja zahtjeva (INTA), a interfejs

    postavlja svoj vektor prekida na linijama za podatke.

    U/I komunikacija direktnim pristupom memoriji

    Komunikacija izmeu perifernih jedinica i procesora je relativno jednostavan i efikasan

    mehanizam, ukoliko su periferijske jedinice spore. U tom sluaju, i za veliki broj

    periferijskih jedinica, vrijeme koje procesor potroi za komunikaciju sa periferijama

    iznosi svega nekoliko procenata ukupnog procesorskog vremena.

    Meutim, transfer velikog broja podataka izmeu brzih periferija (diskova npr.) i

    memorije preko procesora mehanizmom prekida za transfer svakog pojedinanog

    podataka, zahtijevao bi znatan procenat procesorskog vremena (vrijeme pripreme i

    transfera podataka od strane periferije moe biti i krae od samog trajanja RSP). Prema

    tome, alternativni pristup se namee kao imperativ.

  • 7/27/2019 Skripta(1 Dio) ar

    59/76

    60

    Kanal za direktan pristup memoriji (DMA channel - direct memory access channel),

    je specijalni interfejs koji omoguava periferiji da izvri brz transfer podataka ka/iz

    memorije, bez uea CPU (odnosno, uee CPU-a se svodi na iniciranje transfera).

    Tokovi podataka kod programiranog U/I, prekidnog U/I i DMA prenosa su prikazani na

    sl. 3.34.

    Sl. 3.34 Tokovi podataka kod razliitih tehnika prenosa, a) programirani U/I; b)

    prekidni U/I; c) DMA U/I

  • 7/27/2019 Skripta(1 Dio) ar

    60/76

    61

    Da bi DMA interfejs izvrio prenos podataka ka memoriji, on standardno postavlja

    procesoru zahtjev za prekid INTR (kojim indicira spremnost za prijem/predaju podataka.

    Podaci se prenose u blokovima). Procesor postavlja parametre prenosa: adresu poetka

    memorijskog bloka, broj bloka diska, kao i broj bajta koji se prenosi, te izdaje komandu

    za prenos koja sadri i informaciju o smjeru prenosa (sl. 3.35).

    Sl. 3.35 Programski model DMA

    DMA interfejs treba da dobije pravo upravljanja magistralom u toku transfera

    podataka ka/iz memorije (ako bi i procesor i DMA istovremeno slali podatke preko

    magistrale, dolo bi do superpozicije i nekorektnog upisa/itanja). Zahtjev za upravljanje

    magistralom DMA saoptava procesoru preko linije BR (bus request), a odobrenje od

    procesora dobija kada procesor postavi signal BG (bus grant) (sl. 3.36)

    Sl. 3.36 Kontrolni signali za dobijanje prava upravljanja magistralom

    Prije predavanja magistrale DMA interfejsu, procesor treba da zavri tekue korite-

    nje magistrale (tekui aktivni ciklus magistrale) i da postavi svoje izlaze na magistralu u

    neaktivno stanje (stanje visoke impedanse). Ovo procesor moe da uradi u vie taaka

    ciklusa mainske instrukcije (npr. iza faze pribavljanja, faze dekodiranja instrukcije,

    pribavljanja operanda itd). Blok ema DMA interfejsa i naina povezivanja sa

    procesorom i memorijom data je na sl. 3.37

  • 7/27/2019 Skripta(1 Dio) ar

    61/76

    62

    Sl. 3.37 Blok ema DMA prenosa

    Postoji nekoliko varijanti DMA prenosa sa stanovita duine kontrole nad

    magistralom:

    1. Kraa ciklusa (Cycle stealing). Ukoliko pretpostavimo da disk jedinica moe da

    realizuje transfer jednog bajta svakih 800ns, a da je ciklus memorije 100ns, slijedi

    da ako od 8 memorijskih ciklusa 1 koristi DMA, procesoru ostaje 7/8 (87.5%

    propusnog opsega mamorije). Procesor ne troi svo svoje vrijeme na komunika-

    ciju sa memorijom; odreeni broj mainskih ciklusa procesor koristi za interne

    kalkulacije i manipulaciju podacima u samom procesoru. DMA postaje kontroler

    nad sabirnicom DMA kada je u procesu transfera podataka i kada procesor ne

    koristi magistralu (DMA 'krade' cikluse kontrole nad magistralom od procesora).

    Po ovom metodu se prenosi samo bajt ili rije po 'ukradenom' ciklusu. Sudari

    procesora i DMA kontrolera su rijetki (kada istovremeno ele pristup memoriji)

    ali u realnim situacijama moe doi i do produenja mainskih ciklusa za nekoliko

    taktova u procesu zauzimanja i oslobaanja magistrale. Navedeni efekti

    ograniavaju brzinu prenosa podataka, pa se ona koristi kod sporijih jedinica.

    2. Standardni DMA prenos. Kod ove varijante DMA interfejs dri kontrolu nad

    sabirnicom za vrijeme prenosa cijelog bloka podataka. Ovim se postiu velike

    brzine prenosa, ali procesor mora da eka dok DMA ne zavri transfer bloka.

  • 7/27/2019 Skripta(1 Dio) ar

    62/76

    63

    Kompromisno rjeenje je da DMA kontroler oslobaa sabirnicu nakon prenosa

    odreenog broja podblokova, kako bi procesoru omoguio da reaguje na izuzetne

    dogaaje (burst paketni DMA).

    3. Po treoj varijanti DMA kontroler koristi magistralu u mainskim ciklusima ukojima je ne koristi CPU. Na taj nain se maksimizira iskoritenje propusnog

    opsega memorije, i to bez blokade rada CPU.

    Napomenimo da se za potrebe specijalizovanih algoritama pri izvoenju U/I operacija

    (npr. esto se javlja potreba da se prije smjetanja u memoriju podaci prethodno

    transformiu) realizuju inteligentni U/I procesori sa svojim instrukcionim skupom i

    memorijom, koji minimizuju vrijeme CPU u U/I transakcijama i svode ga na

    supervizorsku ulogu.

  • 7/27/2019 Skripta(1 Dio) ar

    63/76

    64

    4. Napredne tehnike organizacije CPU

    4.1 Projektni prostor

    Razliite procesorske arhitekture se mogu predstaviti u projektnom prostoru sa taktnom

    frekvencijom kao apscisnom koordinatom i CPI (brojem ciklusa po instrukciji), kako je to

    predstavljeno na sl. 4.1.

    Sl. 4.1 Projektni prostor procesora

    Kako se implementacione tehnologije brzo usavravaju, frekvencija radnog takta procesora se

    brzo pomjera od manjih ka veim bzinama, odnosno kompletan dijagram sa sl. 4.1 se pomjera ka

    donjem desnom uglu. Drugi trend je da proizvoai procesora nastoje da smanje vrijednost CPI

    koristei kako hardverske tako i softverske pristupe.

    Konvencionalni procesori spadaju u familiju poznatu CISC (complex instruction set

    computers) procesora. Brzina takta ovih CISC procesora do nekoliko desetina MHz. sa opsegom

  • 7/27/2019 Skripta(1 Dio) ar

    64/76

    65

    CPI od 1 20 za mikroprogramske upravljake jedinice. Zbog toga su CISC procesori gornjem

    lijevom uglu projektnog prostora.

    RISC (reduced instruction set computers) procesori imaju veu frekvenciju radnog takta od

    CISC procesora. S obzirom da se najee koristi hardverski implementirana upravljaka

    jedinica, CPI je kod ovih maina reduciran na 1-2.

    Specijalna klasa RISC procesora su superskalarni procesori, kod koji se vie instrukcija

    mogu izvoditi istovremeno za vrijeme svakog ciklusa, pa je kod ovih procesora CPI ispod

    korespondentnih vrijednosti za RISC procesore.

    Procesori sa velikom duinom rijei (VLWI very long instruction word) koriste vie

    fun