Logicko projektovanje racunarskih sistema I

Слични документи
LAB PRAKTIKUM OR1 _ETR_

Увод у организацију и архитектуру рачунара 1

Орт колоквијум

Испит из Основа рачунарске технике OO /2018 ( ) Р е ш е њ е Задатак 5 Асинхрони RS флип флопреализован помоћу НИЛИ кола дат је на след

_sheets.dvi

Logičke izjave i logičke funkcije

Испит из Основа рачунарске технике OO /2018 ( ) Р е ш е њ е Задатак 5 Асинхрони RS флип флопреализован помоћу НИ кола дат је на следећ

P1.2 Projektovanje asemblera

Algoritmi i arhitekture DSP I

Microsoft PowerPoint - 12a PEK EMT VHDL 1 od 4 - Uvod (2011).ppt [Compatibility Mode]

Орт колоквијум

ELEKTROTEHNIČKI FAKULTET, UNIVERZITET U BEOGRADU KATEDRA ZA ELEKTRONIKU UVOD U ELEKTRONIKU - 13E041UE LABORATORIJSKA VEŽBA Primena mikrokontrolera

ИСПИТНА ПИТАЊА (ОКВИРНИ СПИСАК) УОАР2 2018/19 ПРВИ ДЕО ГРАДИВА 1. Написати истинитоносне таблице основних логичких везника (НЕ, И, ИЛИ). 2. Написати и

TEORIJA SIGNALA I INFORMACIJA

Microsoft PowerPoint - 1.DE.RI3g.09.Uvod

P11.3 Analiza zivotnog veka, Graf smetnji

Microsoft PowerPoint - 13 PIK (Mentor Graphic ASIC).ppt

OPIS RAČUNARSKOG SISTEMA Računarski sistem se sastoji od procesora, operativne memorije, tajmera i terminala. Sve komponente računarskog sistema su me

zad_6_2.doc

Model podataka

PROMENLJIVE, TIPOVI PROMENLJIVIH

Zbirka resenih zadataka iz arhitekture racunara

Microsoft Word - SIORT1_2019_K1_resenje.docx

PowerPoint Presentation

Microsoft Word - CAD sistemi

Tutoring System for Distance Learning of Java Programming Language

AKVIZICIJA PODATAKA SA UREĐAJEM NI USB-6008 NI USB-6008 je jednostavni višenamjenski uređaj koji se koristi za akviziciju podataka (preko USBa), kao i

Studijski primer - Dijagrami toka podataka Softverski inženjering 1

Kontrola korisnickih racuna (UAC) pomaze tako sto sprecava potencijalno stetne programe da izvrse promene u vasem racunaru i obavestava vas pre izvrse

Nastavna cjelina: 1. Jezik računala Kataloška tema: 1.1. Bit 1.2. Brojevi zapisani četvorkom bitova Nastavna jedinica: 1.1. Bit   1.2. Brojevi zapisan

P1.0 Uvod

I колоквијум из Основа рачунарске технике I СИ- 2017/2018 ( ) Р е ш е њ е Задатак 1 Тачка А Потребно је прво пронаћи вредности функција f(x

Техничко решење: Метода мерења ефективне вредности сложенопериодичног сигнала Руководилац пројекта: Владимир Вујичић Одговорно лице: Владимир Вујичић

P9.1 Dodela resursa, Bojenje grafa

Microsoft PowerPoint - OOPpredavanja05 [Compatibility Mode]

УНИВЕРЗИТЕТ У НИШУ ПРИРОДНО-МАТЕМАТИЧКИ ФАКУЛТЕТ Департман за рачунарске науке Писмени део испита из предмета Увод у рачунарство 1. [7 пое

13E114PAR, 13S113PAR DOMAĆI ZADATAK 2018/2019. Cilj domaćeg zadatka je formiranje petlje softverske protočnosti za minimalni broj ciklusa.

Vektorski procesori Najveći izvor paralelizma su DoAll petlje kako je već definisano u poglavlju o paralelizaciji petlji. Paralelizam tih petlji, ako

Slide 1

Principi softverskog inženjerstva O predmetu

23. siječnja od 13:00 do 14:00 Školsko natjecanje / Osnove informatike Srednje škole RJEŠENJA ZADATAKA S OBJAŠNJENJIMA Sponzori Medijski pokrovi

POSLOVNI INFORMACIONI SISTEMI I RA^UNARSKE

Microsoft PowerPoint - 10 PEK EMT Logicka simulacija 1 od 2 (2012).ppt [Compatibility Mode]

oss_40_ docx

ELEKTRONIKA

Zadatak T=5: Jedinica WBSD propušta vred Potiče iz polja Rwb.LMD Signal Rwb.WRLMD izaziva propuštanje ove vrednosti 2. Vrednost 0000

SPR , IV godina, VHDL – Ispitna pitanja

Dijagrami sekvenci

Slide 1

Inženjering informacionih sistema

Razvoj programa, Code::Blocks, struktura programa, printf, scanf, konverzioni karakteri predavač: Nadežda Jakšić

Microsoft Word - inicijalni test 2013 za sajt

Microsoft Word - Svrha projekta.doc

Microsoft PowerPoint - 03-Slozenost [Compatibility Mode]

Microsoft PowerPoint - Bitovi [Compatibility Mode]

Техничко решење: Софтвер за симулацију стохастичког ортогоналног мерила сигнала, његовог интеграла и диференцијала Руководилац пројекта: Владимир Вуји

Logicko projektovanje racunarskih sistema I

Техничко решење: Метода мерења реактивне снаге у сложенопериодичном режиму Руководилац пројекта: Владимир Вујичић Одговорно лице: Владимир Вујичић Аут

РАСПОРЕД ИСПИТА У ИСПИТНОМ РОКУ ЈАНУАР 1 ШКОЛСКЕ 2016/2017. ГОДИНЕ (последња измена ) Прва година: ПРВА ГОДИНА - сви сем информатике Име пр

Припејд картица Корисничко упутство

Microsoft PowerPoint - Programski_Jezik_C_Organizacija_Izvornog_Programa_I_Greske [Compatibility Mode]

Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: min c T x Ax = b x 0 x Z n Gde pretpostavljamo da je A celobrojna matrica

Pojačavači

РЕПУБЛИКА СРБИЈА МИНИСТАРСТВО ПРИВРЕДЕ ДИРЕКЦИЈА ЗА МЕРЕ И ДРАГОЦЕНЕ МЕТАЛЕ Београд, Мике Аласа 14, ПП: 34, ПАК: телефон: (011)

06 Poverljivost simetricnih algoritama1

Microsoft Word - IzvjestajPlakalovic

RAČUNARSKI SISTEM Ne postoji jedinstvena definicija pojma računarski sistem. Računarski sistem predstavlja skup mašina i pridruženih metoda (realizova

Slide 1

Projektovanje digitalnih sistema

VIK-01 opis

Microsoft PowerPoint - GR_MbIS_12_IDEF

Microsoft PowerPoint - MODELOVANJE-predavanje 9.ppt [Compatibility Mode]

PowerPoint Presentation

Упутство за пријављивање испита путем интернета Да би студент могао да пријави испит путем интернета мора прво да се пријави. Пријављивање се врши у п

P1.3 Projektovanje makroasemblera

kriteriji ocjenjivanja - informatika 8

6-8. ČAS Celobrojno programiranje Rešavamo sledeći poblem celobrojnog programiranja: Gde pretpostavljamo da je A celobrojna matrica dimenzije,. Takođe

The Contemporary Systems Development Project Landscape

Школа Ј. Ј. Змај Свилајнац МЕСЕЧНИ ПЛАН РАДА ЗА СЕПТЕМБАР Школска 2018 /2019. Назив предмета: Информатика и рачунарство Разред: 5. Недељни број часова

PowerPoint Presentation

Microsoft Word - tumacenje rezultata za sajt - Lektorisan tekst1

PuTTY CERT.hr-PUBDOC

LAB 4 - Binarni komparator

KATALOG ZNANJA IZ INFORMATIKE

Edukacioni racunarski sistem

Рјешавање проблема потрошње у чиповима Александар Пајкановић Факултет техничких наука Универзитет у Новом Саду Фабрика чипова у Србији: има ли интерес

Републички педагошки завод Бања Лука Стручни савјетник за машинску групу предмета и практичну наставу Датум: године Тема: Елементи и начин

Tutoring System for Distance Learning of Java Programming Language

Microsoft Word - 11 Pokazivaci

Za formiranje JOPPD obrasca neophodno je točno popuniti šifre u osnovama primitaka. Svaka osnova primitka ima propisane šifre u prilozima JOPPD

УПУТСТВО ЗА КОРИСНИКА Приступ локацији часописа Српски архив за целокупно лекарство добија се преко internet adrese: Након

NACIONALNI REGISTAR IZVORA ZAGAĐIVANJA UPUTSTVO ZA KORIŠĆENJE INFORMACIONOG SISTEMA NACIONALNOG REGISTRA IZVORA ZAGAĐIVANJA Beograd, 2014.

Microsoft PowerPoint - 12 PAIK Planiranje rasporeda modula (2016) [Compatibility Mode]

UNIVERZITET UKSHIN HOTI PRIZREN FAKULTET RAČUNARSKIH NAUKA PROGRAM: TIT - BOS NASTAVNI PLAN-PROGRAM SYLLABUS Nivo studija Bachelor Program TIT-Bos Aka

Paper Title (use style: paper title)

PowerPoint Presentation

F-6-14

ДРУШТВО ФИЗИЧАРА СРБИЈЕ МИНИСТАРСТВО ПРОСВЕТЕ И СПОРТА РЕПУБЛИКЕ СРБИЈЕ Задаци за републичко такмичење ученика средњих школа 2006/2007 године I разред

ТРОУГАО БРЗИНА и математичка неисправност Лоренцове трансформације у специјалној теорији релативности Александар Вукеља www.

Транскрипт:

POKAZNA VEŽBA 10 Strukture za računanje Potrebno predznanje Urađena pokazna vežba 8 Poznavanje aritmetičkih digitalnih sistema i aritmetičko-logičkih jedinica Osnovno znanje upravljačkih jedinica digitalnih sistema Šta će biti naučeno tokom izrade vežbe? Nakon urađene vežbe bićete u mogućnosti da: Rukovodite različitim nivoima apstrakcije u vašem digitalnom sistemu nakon implementiranja jednostavnije komponente, istu ćete koristiti kao crnu kutiju unutar složenijeg sistema Primenite osnovne principe projektovanja složenih sistema modularnost, apstrakciju i skrivanje informacija Opišete složeni digitalni sistem u VHDL jeziku koristeći instanciranje modula Projektujete strukture za računanje kao digitalne sisteme Projektujete upravljačke jedinice za strukture za računanje Razumete različite tipove upravljačkih jedinica i izaberete odgovarajući tip za datu primenu Projektujete upravljačke jedinice koje izvršavaju određeni program na datoj strukturi za računanje. Apstrakt i motivacija Digitalni sistemi su pokazali svoju pravu moć i pregršt mogućnosti primene onog trenutka kada su počeli da se primenjuju za računanje. Mašina za računanje složenih matematičkih operacija ubrzo je evoluirala u mašinu koja je postala svačiji lični asistent obaveštava nas, omogućuje nam da pričamo sa udaljenim osobama, priča sa nama, planira nam dan, zabavlja nas, upravlja našim kućnim budžetom i asistira nas na još veliki broj načina. Naravno, još uvek može da rešava parcijalne diferencijalne jednačine, ukoliko vam ikad to zatreba. Ova mašina je, svakako, vaš omiljeni lični računar, a mozak te mašine je procesor univerzalna struktura za računanje. U ovoj vežbi ćemo se upoznati sa strukturama za računanje, naučićemo kako se one projektuju i kako se njima upravlja. Kroz jednostavan primer, implementiraćete vašu prvu strukturu za računanje. Nakon ove vežbe bićete pripremljeni da rešite konačni zadatak našeg predmeta projektovanje univerzalne strukture za računanje, procesora. 1

TEORIJSKE OSNOVE 1. Opis složenih digitalnih sistema u VHDL jeziku Osnovni principi prilikom projektovanja složenih sistema, ne samo u digitalnom svetu, su principi apstrakcije, modularnosti i skrivanja informacija. Principi modularnosti i apstrakcije znače da se neki deo sistema može zatvoriti u crnu kutiju i koristiti samo posmatrajući njegove ulaze i izlaze (apstrakcija se odnosi na izdvajanje bitnih osobina datog dela sistema, odn. njegovog ponašanja). Kada koristimo deo sistema kao crnu kutiju, kažemo da se nalazimo na višem nivou apstrakcije, u odnosu na nivo u kome je projektovan sadržaj te crne kutije. Složeni sistemi se projektuju kombinovanjem ovih crnih kutija povezivanjem njihovih prolaza. Koristeći ovaj pristup, sistem se može posmatrati kroz nivoe apstrakcije od najnižih (digitalna logička kola, flip-flopovi) do najviših (vrh hijerarhije sistema). Princip skrivanja informacija znači da, nakon što deo sistema zatvorimo u crnu kutiju, korišćenje tog dela sistema ne sme da zavisi od njegovog načina realizacije, odn. od onoga što se nalazi u crnoj kutiji. Razumevanje ovog principa zahteva veću pažnju ovaj princip ne zabranjuje korisniku modula da poznaje arhitekturu sistema koji koristi. Naprotiv, princip olakšava rad korisniku, jer korisnik ne treba da bude primoran da poznaje arhitekturu sistema ako želi da ga iskoristi kao komponentu. Jedan od najčešćih razloga kašnjenja u projektima je potreba da se ulazi u tuđ sistem, razume njegov rad, modifikuje po potrebi i iskoristi u svom sistemu. Ovo nikada ne bi trebao biti slučaj! Nakon što je neki modul završen, niko ko ga koristi ne bi trebao biti primoran da razume njegovu unutrašnjost da bi ga koristio, a sve potrebne promene unutar njega treba da vrši autor modula. Ovaj princip obavezuje autora nekog modula da ga napravi potpunog, iskoristljivog isključivo putem svojih prolaza i specifikacije funkcionalnosti. Pričajući u VHDL jeziku, kada završite projektovanje vašeg entiteta (entity), on mora biti iskoristljiv kroz svoje prolaze (ports) i specifikaciju ponašanja za date ulaze. Korisnik modula, odn. projektant sistema na višem nivou apstrakcije, nikada ne treba biti primorana da razume arhitekturu (architecture) modula da bi ga koristila. Ovi principi su potreban uslov da bi se projektovali složeni sistemi, pošto na visokim nivoima složenosti postaje nemoguće projektovati sistem vodeći računa o svakoj komponenti na najnižem nivou apstrakcije. Zamislite samo da se najnoviji procesori u celosti projektuju na nivou logičkih kola, koliko bi takvo projektovanje trajalo i da li bi uopšte bilo moguće? Mi smo već koristili ove principe u ranijim primerima, kada smo kombinacionu mrežu prikazali pomoću oblačića. Oblačić je u stvari crna kutija koja predstavlja skup logičkih kola koji realizuju funkciju koju mi želimo, no mi koristimo oblačić kao crnu kutiju ne vodeći računa o njegovom sadržaju, već samo posmatrajući njegove ulaze i izlaze. Slično možemo da uradimo i sa ranije realizovanim LED show sistemom. Kao što je prikazano na Slici 1-1, mi taj sistem možemo zatvoriti u crnu kutiju i koristiti ga u složenijim sistemima samo preko njegovih ulaza/izlaza. 2

Slika 1-1. LED show sistem zatvoren u crnu kutiju Nakon što pređemo na viši nivo apstrakcije, LED show sistem koristimo kao komponentu komunicirajući sa njom putem njenih ulaza/izlaza (odn. prolaza). VHDL jezik i alat Xilinx ISE podržavaju ranije navedene principe prilikom projektovanja složenih digitalnih sistema omogućavajući definisanje više entiteta unutar jednog projekta i instanciranje jednog entiteta u drugom. Na primer, pretpostavimo da želimo da iskoristimo naš LED show sistem u složenijem sistemu u kome, sem LED show entiteta, želimo da postavimo još jedan brojač između izlaza LED show sistema i izlaza ka LED diodama. Na višem nivou apstrakcije, možemo da instanciramo komponentu LED show sistema i povežemo je na ostatak sistema, kompletirajući sistem kao na Slici 1-2. U terminologiji digitalnih sistema, opis sistema na najvišem nivou hijerarhije se naziva top level. Slika 1-2. Top level složenog digitalnog sistema Instanciranje komponenti se u VHDL jeziku vrši unutar opisa arhitekture sistema. Kako bi pokazali kako se vrši instanciranje komponenti, posmatrajmo za početak top level sistema na Slici 1-3 koji se sastoji od dve komponente COMP1 i COMP2. Neka komponenta COMP1 ima dva ulaza (X1, X2) i jedan izlaz (Y). Neka komponenta COMP2 ima jedan ulaz (X) i dva izlaza (Y1, Y2). Komponente treba povezati kao na Slici 3-3. Komponente COMP1 i COMP2 su definisane kao posebni entiteti, a njihovi opisi se nalaze u posebnim VHDL datotekama. Listing 3-1 prikazuje arhitekturu najvišeg nivoa apstrakcije sistema gde se vidi način instanciranja komponenti u VHDL jeziku. Sistem ima dva ulaza (ia, ib) i dva izlaza (oc, od) koji treba da se povežu da ulaze komponente COMP1 i izlaze komponente COMP2, respektivno. Izlaz komponente COMP1 povezati sa ulazom komponente COMP2. Komponente se međusobno vezuju žicama, odn. signalima u VHDL-u. U ovom primeru, neka to bude signal S. 3

Listing 1-1. Arhitektura sistema sa Slike 3-3 Slika 1-3. Primer sistema sa dve komponente architecture Behavioral of MyTopLevel is begin component COMP1 is port ( X1 : in std_logic; X2 : in std_logic; Y : out std_logic ); end component; component COMP2 is port ( X : in std_logic; Y1 : out std_logic; Y2 : out std_logic ); end component; signal S : std_logic; icomp1 : COMP1 port map ( X1 => ia, X2 => ib, Y => S ); icomp2 : COMP2 port map ( X => S, Y1 => oc, Y2 => od ); end Behavioral; 4

Instanciranje komponente zahteva sledeće tri akcije: treba dodati VHDL datoteku u kojoj je opisana komponenta u projekat (izborom Project --> Add Source...) unutar arhitekture opisa vrha hijerarhije, deklaracija komponente treba biti napisana bre ključne reči begin, ona je identična opisu entiteta u svemu sem u ključnoj reči na početku i kraju opisa Nakon ključne reči begin, komponenta se treba instancirati koristeći sintaksu iz Listinga 1-1. Prilikom navođenja veza, ime pre operatora obrnute dodele (=>) je naziv prolaza komponente, a ime nakon njega je naziv signala u vrhu hijerarhije koji se povezuje na odgovarajući prolaz. Sve žice unutar vrha hijerarhije koje služe da bi se povezale dve komponente treba deklarisati kao interne signale. 2. Aritmetički elementi struktura za računanje Strukture za računanje su digitalni sistemi projektovani s ciljem izvršavanja matematičkih aritmetičkih i logičkih operacija. Najkorišćenije komponente unutar struktura za računanje su standardne kombinacione i sekvencijalne mreže sa kojima ste već upoznati: Sabirači i oduzimači Množači i delioci Pomerači Komparatori Aritmetičko-logičke jedinice Multiplekseri Registri Svaka struktura za računanje ima bar tri dela: 1. Registri opšte namene za čuvanje izračunatih vrednosti 2. Aritmetičko-logički deo za izvršavanje računanja 3. Upravljački deo za upravljanje registrima i aritmetičko-logičkim delom strukture. Primer dela strukture za računanje je dat na slici 2-1. iclk inrst sr0_en R0 iclk inrst sr1_en R1 + SHL = oresult sadder_op [1:0] sshl_en scmp_with [31:0], scmp_en Slika 2-1. Primer aritmetičkog dela strukture za računanje 5

Struktura za računanje sa slike 2-1 se može analizirati kroz ranije definisane delove: 1. Registri opšte namene R0 i R1 su dva 32-bitna registra, koriste se za čuvanje izračunatih vrednosti 2. Aritmetičko-logički deo se sastoji iz: a. 32-bitnog sabirača, koji prima dva 32-bitna operanda na ulazu i računa 32-bitni zbir prikazujući ga na izlazu (prenos se zanemaruje) b. 32-bitnog pomerača za jedno mesto u levo c. 32-bitnog komparatora, koji poredi dve vrednosti sa ulaza i na izlazu postavlja vrednost 1 ukoliko su ulazu jednaki, a 0 u suprotnom. 3. Upravljačka jedinica (nije prikazana na slici) kontroliše rad ostatka sistema: a. Registri se kontrolišu pomoću dva signala dozvole upisa (jedan po registru); ukoliko je signal dozvole aktivan (na vrednosti 1), u registar se upisuje vrednost sa ulaza, u suprotnom registar pamti staru vrednost b. Sabirač je kontrolisan 2-bitnim signalom sadder_op[1:0] i. Ukoliko je taj signal na vrednosti 00, prvi operand sabirača je vrednost registra R0, a drugi operand je vrednost registra R1 ii. Ukoliko je taj signal na vrednosti 01, prvi operand sabirača je konstanta 1, a drugi operand je vrednost registra R1 iii. Ukoliko je taj signal na vrednosti 10, prvi operand sabirača je vrednost registra R0, a drugi operand je konstanta 0 iv. Ukoliko je taj signal na vrednosti 11, prvi operand sabirača je konstanta 0, a drugi operand je vrednost registra R1 c. Pomerač je kontrolisan pomoću signala dozvole pomeranja sshl_en; ukoliko je signal dozvole aktivan (na vrednosti 1), pomerač pomera ulaznu vrednost za jedno mesto ulevo, a u suprotnom ne pomera ulaznu vrednost d. Komparator se kontroliše 32-bitnim operandom scmp_with[31:0], u pitanju je vrednost sa kojom se poredi izlaz iz pomerača, kao i signalom dozvole poređenja scmp_en; ukoliko je signal dozvole neaktivan, komparator će na izlazu uvek davati vrednost 0 i neće vršiti poređenje. Struktura za računanje neće vršiti nikakve operacije dok ne dobije aktivne kontrolne signale. Upravo pomoću ovih kontrolnih signala upravljačka jedinica može da kontroliše rad strukture za računanje jednostavnim definisanjem vrednosti kontrolnih signala u svakom trenutku vremena. Okrećemo se sada projektovanju upravljačkih jedinica. 3. Upravljačke jedinice struktura za računanje Upravljačka jedinica je centralna upravljačka stanica strukture za računanje. Njen zadatak je da definiše vrednosti kontrolnih signala čitavoj strukturi za računanje, za svaku komponentu. Upravljačke jedinice se mogu implementirati na dva načina: Opšte upravljačke jedinice se projektuju tako da mogu da izvršavaju proizvoljan skup operacija, tzv. program. Ove upravljačke jedinice primaju na ulazu instrukcije, tj. šifre koje govore upravljačkoj jedinici koju operaciju treba da izvrši u datom koraku. Instrukcije su često upamćene u memoriji iz koje se preuzimaju jedna za drugom i izvršavaju. 6

Specifične upravljačke jedinice se projektuju tako da izvršavaju jedan predodređeni niz operacija. Ove upravljačke jedinice ne primaju instrukcije, nego prilikom svakog pokretanja generišu isti niz kontrolnih signala i time izvršavaju konstantan program. One su jednostavnije za projektovanje, ali ograničavaju mogućnosti sistema kojim upravljaju. Prema tipu digitalnog sistema kojim je implementirana upravljačka jedinica, možemo razlikovati: Kombinacione upravljačke jedinice koje generišu kontrolne signale kombinacionom logikom, u zavisnosti od instrukcije koja se trenutno nalazi na njihovom ulazu. Ovim načinom se mogu implementirati jedino opšte upravljačke jedinice i one tada instrukcije izvršavaju uvek u jednom ciklusu takta sistema. Specifične upravljačke jedinice se ne mogu implementirati na ovaj način, osim ukoliko želite da vaš program ima samo jednu instrukciju! Upravljačke jedinice zasnovane na automatu sa konačnim brojem stanja prolaze kroz niz stanja i time izvršavaju niz instrukcija. Trenutno stanje automata i, ukoliko postoji, trenutna instrukcija, određuju izlaz automata, tj. kontrolne signale ka ostatku sistema. o Opšte upravljačke jedinice se implementiraju na ovaj način ukoliko instrukciju treba izvršiti u više faza, gde svaka faza odgovara stanju automata. o Specifične upravljačke jedinice se na ovaj način implementiraju veoma često, a tada jedno stanje automata odgovara jednoj instrukciji programa. Mikroprogramske upravljačke jedinice izvršavaju mikroprogram definisan u mikroprogramskoj memoriji unutar upravljačke jedinice. Mikroprogram definiše niz kontrolnih signala potrebnih da bi se izvršila data instrukcija i/ili program. o Opšte upravljačke jedinice se implementiraju na ovaj način ukoliko instrukciju treba izvršiti u više faza, a svaka faza odgovara jednoj mikroinstrukciji mikroprogama unutar upravljačke jedinice. o Specifične upravljačke jedinice se implementiraju na ovaj način ukoliko je željeni program zapamćen unutar upravljačke jedinice kao mikroprogram. Na ovom predmetu nećemo implementirati mikroprogramske upravljačke jedinice, zbog njihove složenosti. U ovoj vežbi ćemo implementirati specifičnu upravljačku jedinicu i primer opšte kombinacione upravljačke jedinice. 7

ZADACI 4. Aritmetički deo strukture za računanje Kao prvi korak, implementiraćemo strukturu za računanje sa slike 4-1. iclk inrst sr0_en R0 iclk inrst sr1_en R1 + SHL = oresult sadder_op [1:0] sshl_en scmp_with [31:0], scmp_en Slika 4-1. Primer aritmetičkog dela strukture za računanje Opišite ovu upravljačku jedinicu u jednoj VHDL datoteci. Jedini ulazi sistema su takt i reset, dok je jedini izlaz oresult. Svi kontrolni signali trebaju biti definisani kao interni signali. Oni će biti definisani upravljačkom jedinicom koju ćemo naknadno dodati. Referencirajte se na teorijski deo vežbe za objašnjenje funkcionisanja svake od komponenata. 5. Specifična upravljačka jedinica Sada ćemo implementirati jednostavnu specifičnu upravljačku jedinicu koja izvršava sledeći kratki program: R0 <- (R0 + R1) << 1 R1 <- R1 + 1 R1 == 4? Odlučite šta treba da budu vrednosti upravljačkih signala da bi se implementirala svaka od instrukcija ovog programa. Implementirajte upravljačku jedinicu kao automat sa 3 stanja, jedan po instrukciji. Neka se automat beskonačno vrti između ova tri stanja. Početne vrednosti registara (u resetu) postavite na R0 = 0 i R1 = 0. Ovaj program računa vrednost sledeće sume: N 1 i 2 N i i=0 8

Kada oresult dobije vrednost 1, tj. kada je R1 = 4, vrednost registra R0 je vrednost ove sume za N = 4. Promenom vrednosti sa kojom se poredi vrednost registra R1 moguće je lako ovaj program modifikovati tako da računa vrednost sume za proizvoljno N (naravno, ograničeno širinom registra). Opciono pokušajte modifikovati upravljačku jedinicu tako da kada vrednost oresult dostigne vrednost 1, automat prelazi u četvrto, konačno stanje, u kome sistem ne radi ništa (NOP) i automat ostaje stalno u tom stanju. 6. Opšta upravljačka jedinica implementirana kao kombinaciona mreža Sada ćemo modifikovati upravljačku jedinicu tako da ona prima instrukcije. Ovom modifikacijom upravljačka jedinica postaje opšta i može da realizuje proizvoljan program u okviru skupa instrukcija koje podržava. Dodaćemo još jedan ulaz sistema, iinstr[4:0], koji će predstavljati 5-bitnu instrukciju. Instrukcija treba da bude poslata ka upravljačkoj jedinici. Podržaćemo skup od šest instrukcija, prikazanih u tabeli 6-1. Tabela 6-1. Instrukcije podržane strukturom za računanje Mnemonik Kod Instrukcija ADD 000 dest <= R0 + R1 INC 001 R1 <= R1 + 1 MOV 010 dest <= src CMP4 011 R1 == 4? SHL 100 dest <= src << 1 ASH 101 dest <= (R0+R1) << 1 Instrukcija ima sledeći format: 3 bita kod instrukcije 1 bit odredišni registar (dest) 1 bit izvorni registar (src) Na primer, instrukcija 01001 je MOV instrukcija iz registra R1 u registar R0. Implementirajte ovakvu upravljačku jedinicu podržavajući ovih šest instrukcija kroz kombinacionu mrežu direktno definišući kontrolne signale u zavisnosti od trenutne instrukcije. Simulirajte strukturu za računanje koristeći ove tri instrukcije iz prethodnog problema kao ulaze (definišite ih u test benchu). ZAKLJUČAK Čestitamo na implementaciji vaše prve strukture za računanje! Struktura za računanje koju ste upravo implementirali je veoma jednostavan primer procesora strukture koja može da računa i odgovara na instrukcije. Ovaj procesor je veoma ograničen u svojim mogućnostima, ali sada ste spremni da projektujete univerzalnu strukturu za računanje sa opštom upravljačkom jedinicom RISC procesor. 9