Upravljačka jedinica
Upravljačka jedinica, Upravljački sklop ili kontrolna jedinica je dio središnje jedinice (na engleskom central processing unit CPU) koja usmjerava radnju i ima izravnu kontrolu preko ostalih dijelova CPU-a: spremnika, aritmetičko-logičke jedinice, instrukcijskih spremnika, sabirnica, ulazno/izlazih spremnika, spremnik prekida itd registara. Preko izlaznih signala upravljački sklopa usmjeruju radnje ostalih dijelova CPU uređaja.
Upravljačka jedinica je centralni dio mikroprocesora koji regulira i orkestrira izvršavanje naredbi koji su sastavni dio nekog procesora ili mikorporcesora. Mnogi procesori/mikroprocesori sastavni su dio većih cijelina, a i sami procesor odnosno mikroprocesor se sastoji od raznih dijelova kao: ALU, međuspremnika, predmemorija, programskog brojila, spremnik stanja, adresnog međuspremnika, podatkovnog međuspremnika, instrukcijskog međuspremnika i tako dalje. Ovi svi dijelovi ne mogu raditi u isto vrijeme već mora postojati neki redosljed kojim se ti pod dijelovi: uključe, isključe i kada koja dio procesora/mikroprocesora obavlja svoj rad. Ovaj redosljed može biti orkestriran sinkrono ili asinkrono. Postoje razna riješenja kako je izvedena upravljačka jedinica od kojih su dva najzastupljenija riješenja: mikroprogram i . Ta dva spomenuta riješenja uvjetovana tehnologijom i vremenom kada su izrađeni neki procesor/mikroprocesor, i naravno izborima tehnološkog tima prilikom dizajna tog procesora ili mikroprocesora. Kod tvrdo-užičene izvedbe izravno odnosno žičano spojeni svi dijelovi CPU-a su spojeni izravo na upravljačku jedinicu. Dok kod mikroprograma upravljanjem ostalih dijelova CPU-a obavlja se izvršavanjem skupa manjih radnji koje su kodirane u mikroprogram. Mikroprogram je pohranjen u kontrolnoj memoriji dok redosljed narebi mikrorprograma održava posebna jedinica nazvan mikrosljedbenik. Mikrosljedbenik izvršava naredbe u mikroprogramu u ono slijedu u kojemu su one napisane.
Uloga
Upravljačka jedinica je spona između programa koji se izvršava unutar nekog procesora i ostalih logičkih podjedinica, logičkih jedinica te povezivanjem s drugim vanjskim jedinicama. Upravljačka jedinica izvršava niz radnji koji su mogući u nekom mikroprocesoru, a osnovni pokretač je trenutna naredba i podradnje koje su dizajnirane da se izvrše. Ove podradnje su ili zapisane unutar pomoću jednog manjeg programa tj. mikroprograma i koji je spremljen u posebnoj brzoj memoriji i/ili su tvrdo uvezene preko tvrdo-užičenih namjenskih logičkih sklopova koje su izvedene preko tablice istine koja je nastala prilikom dizajna procesora.
Upravljačka jedinica zasnovana na mikroprogramu
Upravljačka jedinica koja radi na principu mikroprograma i daje dizajneru nekog procesora više savitljivosti tj. omogućava jednostavniju strukturu i uporabu manjeg broja logičkih skopova nego kod tvrdo-užićene upravljačke jedinice. Još tome mikroprogramska kontrolna jedinica omogućava izvedbu naredbi koje bi bilo jako teško ili nemoguće izvesti s tvrdo-užićenom upravljačkom jedinicom.
Kod mikroprogramske arhitekture svaka naredba procesora sačinjena je od jedne ili više manjih mikronaredbi. Slijed tih mikro instrukcija upravlja: mikromemorija (mikrospremnik), mikrobrojač i mikrokontrolna jedinica koja omogućava upravljanje s mikroprogramom. S mikro upravljačkom jedinicom moguće je obaviti: usporedbe, skokove unutar mikroprograma, izvršavanjem petlji i slično. U takvoj mikro kontrolnoj jedinici također postoje vanjski upravljački signali koji upravljaju: s čitanjem vanjske memorije, upravljanjem drugim jedinicama, prekidima i slično. Kontrolna jedinica koja je zasnovana na mikroprogramu je u stvari mali mikroprocesor koji koji je ugrađen u nekom većem procesoru ili mikroprocesoru, i ustvari po principu rada je sličan programu prevoditelju ili emulatoru.[1]Ovu ideju prvi je koncipirao Maurice Wilkes i izložio ga je na prvom računalnom kongresu koji se održao na u Manchesteru 1951. godine. Mikroprogramska kontrolna jedinica prvi put je bila upotrjebljena u računalu EDSAC2 1958 godine, i u kasnijim godinama postao temeljna jedinica većine mikroprocesora.
S obzirom na funkciju bitova u riječi nekog mikroprograma, tj. koje upravljački signali se upravljaju s bitovima neke mikronaredbe mikroprogramske arhitekture se dijele na: vodoravne, okomite, i dvostupanjske sisteme
Vodoravno mikroprogramiranje
Vodoravno mikroprogramska arhitektura je najjednostavnija, ali i najrastrošnija arhitetura u smislu memorijskog prostora. Kod ove arhitetkture svaki bit u riječi nekog mikroprograma translatira se na upravljački signal u izvršnoj jedinici. Primjerice ako za neki procesor potrebno 128 upravljačkih signala, tada svaka riječ mikroprograma mora biti 128 bita široka, da bi sadržala sve signale bez obzira hoće li će se oni koristiti ili ne svaki put. Vodoravno mikroprogramiranje je najbrže za izvršavanje i memorijski najrastrošnije, osobito kod procesora koji imaju velik broj upravljačkih signala. Pošto se svaki bit mora pohraniti u mikromemoriji i kod nekih uporabnih oblika nekada predstavlja rastrošnost u prostoru osobito kod izvedbi mikroprocesora gdje je važan svaki kvadratni milimetar.
Okomito mikroprogramiranje
Okomito mikroprogramiranje pokušava koliko je praktičnije moguće sačuvati broj bita koji se rabi za upravljačke signale u upravljačkoj jedinici, dizajneri pokušavaju koliko je god moguće ukrupnjavati upravljačke signale u jedan skup tako da bi se uštedjelo na veličini mikroprogramske memorije. Primjerice, ako neki procesor ima osam spremnika, tada je moguće rabiti samo tri bita da bi se širfrirao pristup tim spremnicima. Rabljenjem ove tehnike za sve ostale upravljačke signale, i također reorganiziranje nekih cjelna moguće i uporabom pojedinih logičkih krugova moguće je uštedjeti na broju bita koji su potrebni za spremanja mikroprograma. No dodavanjem dekodera, multipleksora, i ostalih logičih krugova potrebno možda dodati nove upravljačke signale, no isto s time dolaze i usporavanja i dodavanja zastoja širenja signala, sinkronizacijskih i drugih problema oko rada procesora koji rabi okomito mikroprogramiranje. Isto tako moguće je smanjiti prilagodivost nekog mikroprocesora zbog izbora nekih rješenja kod smanjivanja broja upravljačih signala, tako da kasnije prerađivanje nekog dizajna za neku novu svrhu postaje težim nego kod vodoravnog mikroprogramiranja.
Dvostupanjsko mikroprogramiranje (nanoprogramiranje)
Kod dvostupanjskog ili nanoprogramiranja processor ili mikroračunalo ne rabe mikroprogram da izravno radi s upravljačkom jedinicom, veće rabe drugi manji program tj. nanoprogram da se izvršavaju funkcije. Preko nanoprograma, moguće je dobiti procesor s većom fleksibilnošću i manjom širinom memorijskih polja koji su potrebni za upravljanje izvršnom jedinicom. Preko nanoprogramiranje kao i mikroprogram zatjeva sljedeće: nanoprogramski brojač, nanoupravljačku memoriju, nanonaredbeni spremnik. Jedini nedostaci nanoprogramiranja jest sporije izvršavanje zbog potrebe pristupa dvijema memorijama: mikroprogramskoj i nanoprogramskoj memoriji.
Tvrdo-užićena upravljačka jedinica
Tvrdo-užićena upravljačka jedinica rabi fiksne kombinatoričke logičke sklopove koje su pri prevođenju naredbi preko tih naredbi stvara upravljačke signale. Pri svome radu tvrdo-užićena upravljačka jedinica sadrži logičke sklopove za dekodiranje naredbi, i logiku za upravljanje s vanjskim jedinica, sklopove koje izvršavaju radnje u danom redosljedu, koje sadrži dijelove koje čitaju statusne registre ili vanjske ulaze.
Tvrdo-užićene upravljačke jedinice pojavile su se na računalima prve generacije, i postoje tri uvriježene metode koje se rabe:
- algoritmička metoda - pri izradi rabi se se tablica stanja koja upravlja redom kojim se otvaraju ili zatvaraju upravljački signali
- metodom zadrške - pri izradi se koriste se više vremeskih elementa (taktovi) koji u sebi imaju određeni redosljed, i kroz njih se upravljaja s izvršnim radnjama nekog procesora
- metodom logičkih matrica - za ovo se rabe posebni logički PLA krugovi, koji sadrže mnoštvo raznih logičkh krugova u jednom integriranom krugu
Srodni članci
Vrela
- ↑ Microprogrammed control unit http://www.cp.eng.chula.ac.th/~piak/talk/2013/chip-programming/doc/chap4-9.htm , pristupljeno 15. veljače 2016.