Top Banner
PROCESOR DP32 U ovom radu analizira se princip rada procesora DP32. Ova analiza se sastoji iz dva dela: 1. Teorijski deo 2. Praktični deo Prvi deo se odnosi na sagledavanja koja se tiču sledećih detalja: Tipovi podataka Definicija skupa podataka Struktura sistema U drugom delu biće opisano test kolo i simulator DP32. Kroz zadavanje odgovarajućih test sekvenci analiziraće se rad DP32 i izvršiti: Upoznavanje sa arhitekturom DP32 i Upoznavanje sa radom simulatora DP32 i korišćenje simulatora DP32 radi izvršavanja odgovarajućih definisanih programskih test sekvenci.
57

PROCESOR DP32

Jan 10, 2016

Download

Documents

tyanne

PROCESOR DP32 U ovom radu analizira se princip rada procesora DP32. Ova analiza se sastoji iz dva dela: Teori j ski deo Praktični deo Prvi deo se odnosi na sagledavanja koja se tiču sledećih detalja: Tipovi podataka Definicija skupa podataka Struktura sistema - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: PROCESOR DP32

PROCESOR DP32

U ovom radu analizira se princip rada procesora DP32. Ova analiza se sastoji iz dva dela:

1. Teorijski deo2. Praktični deo

Prvi deo se odnosi na sagledavanja koja se tiču sledećih detalja:

• Tipovi podataka• Definicija skupa podataka• Struktura sistema

U drugom delu biće opisano test kolo i simulator DP32. Kroz zadavanje odgovarajućih test sekvenci analiziraće se rad DP32 i izvršiti:

• Upoznavanje sa arhitekturom DP32 i• Upoznavanje sa radom simulatora DP32 i korišćenje simulatora DP32 radi izvršavanja

odgovarajućih definisanih programskih test sekvenci.

Page 2: PROCESOR DP32

TEORIJSKI DEO PROCESORA DP32

TIPOVI PODATAKA

Svaka arhitektura može da manipuliše sa različitim brojem tipova podataka. Za mikroprocesor se kaže da podržava određeni tip podataka samo ako je u stanju da sa prihvatljivom efikasnošću manipuliše sa operandima tog tipa. Za efikasnu podršku važna su sledeća dva faktora:

• instrukcije koje se koriste da obadve operacije nad formatima podataka sa kojima se manipuliše, i • adresni načini rada koji omogučavaju jednostavan pristup operandima sa kojima se manipuliše.

Tipove podataka sa kojima računar manipuliše delimo u tri kategorije:

• korisničko definisani podaci - korisnik ih eksplicitno specificira u programu. Struktura ovih podataka je uglavnom određena mogućnostima programskog jezika.• sistemsko definisani podaci - u toku izvršenja programa implicitno se generišu od strane računarskog sistema.• instrukcije - program koji se izvršava može se posmatrati kao kompozicija podataka koji imaju svoju sopstvenu strukturu i osobine.

Page 3: PROCESOR DP32

KORISNIČKO DEFINISANI PODACI

Ove podatke delimo na proste (skalarne), struktuirane i podatke pokazivačkog tipa.

Skalarni tipovi podataka Svaki tip iz ove grupe podataka ima sledeće tri osobine:• skup vrednosti koje podatak može da uzima (domen);• operacije koje su nad tim podatkom dozvoljene;• način predstavljanja u memoriji računara. Domen karakterišu dva aspekta: opseg - broj vrednosti koje podatak može da uzima; preciznost -

rastojanje između sukcesivnih vrednosti podataka.

Celobrojne vrednosti Celobrojne vrednosti (integers) se normalno koriste :• za brojanje;• kao indeksi elemenata tipa polja;• za predstavljanje memorijskih adresa i dr. Kod računarskih sistema njihov opseg (range) je ograničen od strane arhitekture računara.

Page 4: PROCESOR DP32

Mikro procesori koriste dve prezentacije za memorisanje celobrojnih vrednosti:

• notacija dvoičnog komplementa - vrednost A predstavlja se nizom od n bitova (an-1,...,a0) čija je vrednost

A = -an-1 2n-1+ ∑ ai 2i

Sa ovom prezentacijom opseg je

-2n-1 ≤ A ≤ 2n-1-1

Ove brojeve zovemo označene celobrojne vrednosti.• čista binarna notacija - vrednost A predstavlja se kao niz od n bitova (an-1,...,a0) čija je vrednost

A=∑ ai 2i

Kod ove prezentacije opseg dozvoljenih vrednosti je

0 ≤ A ≤ 2n-1

i zbog toga ove brojeve zovemo neoznačenim celobrojnim vrednostima. Kada je rezultat van opsega koji se može predstaviti, generiše se premašaj (overflow).

i=0

n-2

i=0

n-2

Page 5: PROCESOR DP32

Opsezi brojeva koji se mogu predstaviti pomoću 32-bitne reči, koristeći prezentaciju dvoičnog komplementa moguće je predstaviti celobrojne vrednosti u opsegu od -231 do 231-1, što iznosi 232 različitih brojeva:

• negativni brojevi između -(1-2-24)*2127 i -0.5*2-128

• pozitivni brojevi između 0.5*2-128 i (1-2-24)*2127

• negativni brojevi manji od -(1-2-24)*2127, nazvani negativni premašaj (negative overflow)• negativni brojevi veći od -0.5*2-128, nazvani negativan podbačaj (negative underflow)• nula• pozitivni brojevi manji od 0.5*2-128, nazvani pozitivan podbačaj (positive underflow) • pozitivni brojevi veći od (1-2-24)*2127, nazvani pozitivni premašaj (positive overflow)

Page 6: PROCESOR DP32

DEFINICIJA SKUPA INSTRUKCIJE

PREDSTAVLJANJE INSTRUKCIJA

Na konvencionalnom mašinskom nivou svaka instrukcija se predstavlja sekvencom bita. Kodiranjem ovih bitova, na odgovarajući način, formira se informacija koja je potrebna radi upravljanja izvršenjem instrukcije. Ovom informacijom treba da se definiše:• tip operacije koja treba da se izvrši,• implicitna ili eksplicitna specifikacija jednog ili većeg broja operanada nad kojima se izvršava operacija, tj. specificiraju se izvorni operandi,• adresa gde treba da se smesti rezultat obavljene operacije, tj. specificira se odredišni operand,• adresa naredne instrukcije koju treba izvršiti nakon što se obavi tekuća. Instrukciju čine sledeća dva globalna dela: operacioni i adresni.

Globalni delovi instrukcije

Page 7: PROCESOR DP32

Bazični format n-operandskog formata instrukcije

ADRESNI DEO INSTRUKCIJE

Sastavni delovi adresnog dela instrukcije su polja operandi i modifikator. Modifikator uobičajno sadrži informaciju kojom se : • opisuje način adresiranja;• ukazuje o dodatnim uslovima koji se odnose na pristup podacima ili na način izvršenja operacije.

Page 8: PROCESOR DP32

Faktori koji imaju direktan uticaj na dužinu polja za adresiranje su: • broj adresnih načina rada • broj operanada• specifikacija internih registara u odnosu na memoriju • adresni opseg • adresna granularnost

OPERACIONI DEO INSTRUKCIJE

Neka instrukciju čine (n+k)-bitova, od kojih se k-bitova dodeljuje opkodu a n-bitova jedinstvenoj adresi. Sa k-bitova dobija se 2k različitih opkodova. Alternativno, istih (k+n) bitova je moguće podeliti tako da se (k-1) bit dodeli opkodu a (n+1) bit adresi, što znači da je broj instrukcija prepolovljen ali je broj memorijskih lokacija udvostručen, ili je za isti iznos memorije, rezolucija koja se odnosi na pristup memoriji, dva puta veća. Sa (k+1)-bitnim opkodom i (n-1)-bitnom adresom broj opkodova je dva puta veći, ali je broj dostupnih adresibilnih lokacija, prepolovljen. Tehnika kodiranja koja se bazira na proširenju broja bitova opkoda zove se kodiranje sa proširenjem.

Page 9: PROCESOR DP32

FORMAT INSTRUKCIJA

DP32 je 32-bitni procesor sa jednostavnim skupom instrukcija. Skup instrukcija DP32 je podeljen na veliki broj kodiranih podataka koji uključuje: programsko-upravljačke, aritmetičke, logičke i prenos podataka instrukcije.

ARITMETIČKE I LOGIČKE INSTRUKCIJE

Sve aritmetičke i logičke instrukcije su dužine 32-bita.U konkretnom slučaju pojam reč se odnosi na obim podataka od 32-bita.

gde je:op - op-kôd polje, r3 - adresa odredišnog registra, r1 i r2 - adrese izvorišnih registra, i8 - neposredna celobrojna vrednost u prezentaciji dvoičnog komplementa.

Page 10: PROCESOR DP32

Aritmetičke i logičke instrukcije

Page 11: PROCESOR DP32

LOAD I STORE INSTRUKCIJE PROCESORA DP32

Page 12: PROCESOR DP32

Instrukcije tipa Load i Store u zavisnosti od vrednosti razmeštaja imaju dva formata:

Format naredbi Load i Store sa većim razmeštajem

Format naredbi Load i Store sa manjim razmeštajem

gde je:• op - op-kôd, • r3- adresa registara za punjenje i pamćenje, • r1 - indeksni registar,• disp - veći neposredni razmeštaj, • i8 - manji neposredni razmeštaj,• ignore - polje čiji se sadržaj ignoriše

Page 13: PROCESOR DP32

BRANCH INSTRUKCIJE

Postoje četiri Branch instrukcije.

Page 14: PROCESOR DP32

Format osnovnog Branch-a

Format quick Branch-a

Page 15: PROCESOR DP32

Format indexed Branch-a

Format quick indexed Branch-a

gde je : • op - op-kôd, • disp - veći neposredni razmeštaj• i8 - manji neposredni razmeštaj, • r1 - indeksni registar i• ivnz - stanje maske.

Branch se izvršava ako je: cond = ((V & v) | (N & n) | (Z & z)) = i.

Page 16: PROCESOR DP32

KLASE INSTRUKCIJA

Instrukcije možemo podeliti u sledeće grupe:

1. prenos-podataka (Ld, Ldq, St, Stq) – pomoću ovih instrukcija vrši se kopiranje informacija iz jedne lokacije u drugu. Lokacije mogu pripadati registrima procesora ili memorij i

2. aritmetičke (Add, Sub, Mul, Div, Addq, Subq, Mulq, Divq) – obavljaju aritmetičke operacije nad numeričkim podacima,

3. logičke (OR, AND, XOR, MASK) – uključuju Booleove i druge nenumeričke operacije.

4. programsko-upravljačke (Br, Bi, Brq, Biq) – menjaju sekvencu programskog izvršenja.

Page 17: PROCESOR DP32

STRUKTURA SISTEMA

ARHITEKTURA PROCESORA DP32

DP32 je 32-bitni procesor sa jednostavnim skup instrukcija. On sadrži sledeće registre:

• 256 registara opšte namene (R0 - R255), • programski brojač ( Program Counter - PC) • registar marker-uslova ( Condition Code - CC).

Registrima opšte namene se pristupa programski. Sadržaju registra PC se pristupa instrukcijama grananja. Naredbe za postavljanje i brisanje bitova registra CC Set bit_i Reset bit_i ne postoje. Obim memorije i obim adrese je 32-bitni. Instrukcije su multipli 32-bitnih reči. Instrukcije su smeštene u memoriji. Bitovi trobitnog CC registra se ažuriraju nakon izvršenja svake aritmetičke ili logičke instrukcije.

Registri procesora DP32

Page 18: PROCESOR DP32

ARHITEKTURA MAGISTRALE

Procesor DP32 komunicira sa memorijom preko sinhrone 32-bitne sistemske magistrale.

Globalni dijagram procesora DP32 na nivou ulazno-izlaznih signala

Talasni oblik taktnih impulsaphi1 i phi2 procesora DP32

Pomoću taktnih impulsa, phi1 i phi2 obezbeđeno je dvofazno taktno pobuđivanje procesora bez preklapanja. Izlaz (tzv. port) A_bus-a je 32-bitna adresna magistrala. Port D_bus je 32-bitna dvosmerna magistrala podataka. Portovi READ i WRITE definišu transakcije tipa čitanje (read) i upisa (write) na magistrali . Port FETCH je statusni signal, koji ukazuje da je u toku transakcija čitanja na magistrali, a odnosi se na fazu pribavljanje instrukcije. Stanje na ulazu READY definiše memorija sa ciljem da ukaže da je pročitani podatak dostupan, ili da će se on korektno upisati.

Page 19: PROCESOR DP32

Svaka perioda taktnog impulsa phi1 definiše jedno od stanja na magistrali. Magistrala se može naći u stanju Ti (pasivno-idle), T1 ili T2. Transakcije na magistrali čine: stanje T1, iza koga sledi jedno ili više stanja T2, sa umetnutim Ti stanjima između transakcija. Vremenski dijagram transakcije tipa read na magistrali:

Transakcija read magistrale DP32

Page 20: PROCESOR DP32

Vremenski dijagram transakcije tipa write na magistrali:

Transakcija write magistrale DP32

Page 21: PROCESOR DP32

Tipovi i entity

Konstanta unit_delay se koristi kao inicijalno vremensko kašnjenje (default-na vrednost). Konstanta bool_to_bit predstavlja tabelu pretraživanja koja se koristi za konverziju između boolean uslova i podataka tipa bit. Konstanta je deferred tipa, a njena vrednost je zadata u telu package-a. Funkcija resolve_bit_32 je funkcija koja se odnosi na rezoluciju, a koristi se da odredi vrednost na 32-bitnoj magistrali koja ima veći broj drajverskih stepena. Ovakva magistrala je deklarisana sa podtipom bus_bit_32 tipom podataka. Podtip bit_8 je deo 32-bitne reči koji se koristi kao op-kôd ili adresni registar. CC_bit je tip za markere uslova, dok cm_bit je tip za masku uslova kod branch op-kôda. Sledeći skup dekleracije konstanti definiše oblik op-kod bitova za validne op-kodove. Na kraju, definisan je skup funkcija za konverziju vrednosti bit-vektor-a u numeričke vrednosti.

Deklaracija package za dp32_types

Page 22: PROCESOR DP32

U telu package-a dp32_type data je vrednost za deferred konstantu bool_to_bit: uslov false se prevodi u '0', a true se prevodi u '1' Definisano je telo resolution funkcije za 32-bitnu magistralu. Funkcija prihvata kao parametar jedno neograničeno polje vrednosti bit_32, i kao rezultat generiše promenljivu obima bit koja se dobija kao logička OR operacija svih vrednosti. Funkcija pretpostavlja da je dužina polja veća od jedan. Ako driveri magistrale nisu aktivni, prazno polje se predaje funkciji rezolucije. U ovom slučaju kao rezultat se koristi, default-na vednost za sve bitove čija je vrednost '0' (float_value)

Telo package-a za dp32_types

Page 23: PROCESOR DP32

Telo package-a za dp32_types

Funkcija bits_to_int konvertuje bit vektor predstavljen kao označena vrednost u dvojičnom komplementu u vrednost tipa integer. Lokalna promenljiva temp je deklarisana kao bit vektor iste vrednosti i indeksnog opsega kao parametarski bitovi. Rezultat tipa variable se inicijalizura na nulu kada se poziva funkcija, a nakon toga se koristi da akumulira ponderisane bitske vrednosti u petlji tipa for. Funkcija bits_to_natural obavlja sličnu funkciju kao bits_to_int, ali ne obavlja specijalno procesiranje kada su u pitanju negativni brojevi. Funkcija int_to_bits obavlja suprotnu funkciju od funkcije bits_to_int.

Page 24: PROCESOR DP32

Deklaracija entity-ja za dp32

Entity sadrži generičku konstantu Tpd koja se koristi da specificira propagaciona kašnjenja između ulaznih događaja i promene na izlaznim signalima. Default-na vrednost je jedinično kašnjenje specificirano u package dp32_types. Portovi reset, clock i upravljački signali magistrale predstavljeni su vrednostima tipa bit. Izlaz adresne magistrale je tip bit-vektor, jer je procesor jedini modul koji pobuđuje ovu magistralu. Magistrala podataka je resolved tip bit-vektor, jer može biti pobuđivana kako od strane procesora tako i od memorijskog modula. Reč bus u port dekleraciji ukazuje da svi drajveri na magistrali podataka moraju istovremeno da se deaktiviraju (nijedan od njih ne pobuđuje magistralu).

Page 25: PROCESOR DP32

Telo arhitekture behaviour za dp32

Model se koristi za izvršenje test programa koji sadrži skup instrukcija procesora DP32 kada je on poveže na memoriju. Deklaracioni deo u telu arhitekture sadrži deklaraciju tipa registrskog polja (RF polje) procesora DP32. RF polje čine 256 32-bitna registra koji se adresiraju prirodnim brojevima u opsegu 0-255. Ovaj proces deklariše veći broj promenljivih koje odslikavaju interno stanje procesora, a to su : RF (Register File) polje (reg), programski brojač (Program Counter - PC) i registar tekuće instrukcije (current_instr.). Veći broj radnih promenljivih i alijaza je takođe deklarisan.

Opis behaviour

Page 26: PROCESOR DP32

Telo arhitekture behaviour za dp32

Parametri su memorijska adresa sa čije se lokacije čita, marker koji ukazuje da li se operacija čitanje odnosi na pribavljanje instrukcije i rezultantni parametar koji vraća pročitani podatak. Procedura memory_read:• aktiviranje adrese i priprema bit portova• čekanje na narednu rastuću ivicu ulaznog signala phi1, ukazujući na početak sledećeg taktnog intervala• proveravanje stanja na reset ulaznom portu i ako je on postavljen vraćanje na početak bez dalje akcije• ako je reset neaktivan model počinje od stanja T1, tako da nakon rastuće ivice impulsa phi1 aktivira propagaciono kašnjenje read bit porta• čekanje sve do sledeće rastuće ivice ulaznog signala phi1 označavajući start sledećeg taktnog intervala• ponovno proveravanje reset-a i prekidanje rada ako je reset postavljen• startovanje petlje izvršavajući stanja T2, čekanje sve dok se ulazni signal phi2 ne promeni sa '1' na '0’ i proveravanje reset-a, resetujući se ako je postavljen

Procedura memory_read

Page 27: PROCESOR DP32

Telo arhitekture behaviour za dp32

Procedura memory_read

U drugom slučaju

• proveravanje stanja ready bit ulaznog porta, i ako je postavljen prihvatanje podataka sa porta za magistralu podataka i napuštanje petlje. • ako ready ulazni port nije postavljen, petlja se ponavlja, dodajući još jedno stanje T2 u transakciji.• nakon petlje, čekanje na sledeću rastuću ivicu ulaznog signala, označavajući start stanja Ti na kraju transakcije. • posle ponovnog proveravanja reset-a, l deaktiviranje ready-ja kako bi se završila transakcija

Page 28: PROCESOR DP32

Procedura memory_write

Telo arhitekture behaviour za dp32

Procedura memory_write je slična, ona implementira model transakcije upisa u memoriju. Parametri su memorijka adresa i podaci koje treba upisati. Na sličan način ovaj model proverava stanje reset-a posle svake tačke čekanja. Jedina razlika je ta što se kraju transakcije portu magistrale podataka dodeljuje null signal. Ovim se modelira ponašanje deaktiviranja procesora sa magistralom podataka tj. to je trenutak kada on ne pobuđuje više port.

Page 29: PROCESOR DP32

Procedure add i subtract, implementiraju aritmetičke operacije na celobrojnim 32 bit-nim vrednostima predstavljenim dvojičnim komplementom. Svaka procedura prihvata dva celobrojna (integer) operanda, generiše 32 bit-nu reč i postavlja markere uslova V, N, i Z. Rezultanti parametar je tipa inout jer test koji se odnosi na rezultate negative i zero čita rezultat nakon što je on bio upisan. Procedure add i subtract, u slučaju da se javi premašaj, koriste tehniku wrap arround.

Procedure add i subtract

Page 30: PROCESOR DP32

Procedure multiply i divide

Procedure multiply i divide, implementiraju aritmetičke operacije na celobrojnim 32 bit-nim vrednostima predstavljenim dvojičnim komplementom. Svaka procedura prihvata dva celobrojna (integer) operanda, generiše 32 bit-nu reč i postavlja markere uslova V, N, i Z. Rezultanti parametar je tipa inout jer test koji se odnosi na rezultate negative i zero čita rezultat nakon što je on bio upisan. Procedure multiply i divide, u slučaju da se javi premašaj, vraćaju najveću ili najmanju celobrojnu vrednost.

Page 31: PROCESOR DP32

Model ponašanja procesora DP32, koji se aktivira u toku faze inicijalizacije simulacije, se sastoji od tri sekcije koje se ponavljaju sekvencijalno: • procesiranje reset-a: kada se aktivira ulaz reset, svi upravljački portovi se postavljaju u inicijalna stanja, drajveri magistrale podataka se deaktiviraju, a registar PC se postavlja na nulu. Model zatim čeka sve dok se signal reset ne promeni. • pribavljanje instrukcija: predstavlja jednostavno poziv procedure za čitanje memorije. Adresu generiše registar PC, fetch marker je true, a rezultat (opkôd instrukcije) se smešta u instrukcioni registar. Registar PC se nakon toga inkrementira koristeći prethodno opisanu aritmetičku proceduru.• izvršenje instrukcija: pribavljena instrukcija se nakon toga dekodira na sledeće delove: op-kôd, adrese izvorišnog i odredišnog registra, i polje neposredna konstanta.

Telo arhitekture behaviour za dp32

Page 32: PROCESOR DP32

Telo arhitekture behaviour za dp32

Op-kôd se koristi kao selektor iskaza case, koji kodira izvršnje instrukcije. Kod aritmetičkih instrukcija (uključujući i quick forme) pozivaju se aritmetičke procedure, prethodno definisane. Kod logičkih instrukcija registarske bit-vektor vrednosti se koriste kod VHDL logičkih izraza sa ciljem da odrede rezultantni bit-vektori. Marker uslova Z se postavlja ako je rezultat bit-vektor kod koga su svi bitovi postavljeni na 0. Model izvršava instrukciju Load tako što prvo čita razmeštaj iz memorije a nakon toga inkrementira sadrđaj regitara PC-a. Razmeštaj se dodaje vrednosti index-nog registra pa se na taj način formira efektivna adresa. Dobijena vrednost se zatim koristi kao adresa kod operacije memory read, a pročitani podatak se smešta u rezultantni (specificirani) registar. Operacija quick Load se izvršava slično sa izuzetkom da ne postoji potreba za čitanjem memorije; promenljiva i8 se pribavlja iz op-kôda instrukcija. Kod instrukcija Store i quick Store umesto operacije memory read obavlja se operacija memory write.

Page 33: PROCESOR DP32

Telo arhitekture behaviour za dp32

Izvršenje instrukcije Branch počinje tako što se čita memorija radi pribavljanja razmeštaja, a nakon toga sledi inkrementiranje PC registra za jedan. Razmeštaj se dodaje vrednosti PC registra da bi se formirala efektivna adresa. Procenjuje se uslov grananja, upoređujući bitove markera uslova sa maskom uslova koja je specificirana instrukcijom, kako bi se odredilo da li će do grananja doći ili ne. Ako do grananja dolazi u PC registar se upisuje vrednost efektivne adrese. Izvršenje Branch indexed instrukcije je slično sa izuzetkom što se vrednost indeksnog regista upisuje u PC pa se na taj način formira efektivna adresa. Forme quick Branch-a su takođe slične, ali se neposredna konstanta koristi kao razmeštaj a ne kao vrednost koja se pribavlja iz memorije.

Page 34: PROCESOR DP32

SIMULATOR DP32

TEST KOLO

Testiranje ponašanja modela procesora DP32 vrši se njegovim povezivanjem na kolo za testiranje:

Kolo test bench-a za DP32

Page 35: PROCESOR DP32

Entitet CLOCK_GEN čine dve formalne generic konstante:

• vremenski period Tpw odgovara širini taktnog impulsa za svaki od signala PHI1 i PHI2

• vremenski period Tps je impuls razdvajanja

Na osnovu ovih vrednosti taktna perioda odgovara dvostrukom zbiru vremena kada su impulsi aktivni i kada postoji razdvajanje (Tclk=2 Tpw +2 Tps)

Arhiktekturu taktnog genereratora, opisanu u VHDL-u, čine dva konkurentna iskaza:• Drajver reset signala generiše vrednost '1' kada je signal RESET aktiviran, a zatim se ovaj signal postavlja na vrednost '0' nakon nešto više od dva taktna perioda.• Proces drajvera takta trenutno generiše impuls PHI1, nakon čega sledi impuls PHI2.Ovaj proces je repetitivan.

Page 36: PROCESOR DP32

Deklaracija entity kao i behaviour arhitektura memorijskog modula:

Telo arhitekture sastoji se od jednog procesa koji implementira behaviour:

• postavaljanje izalaznih portova u inicijalno stanje• nakon toga čeka se na komandu read ili write

1. Kod komande write, nakon određenog kašnjenja aktivira se signal ready. Kašnjenje odgovara vremenu pristupa kod operacije upisa u memoriju. Nakon toga model čeka sve dok se ne završi ciklus write, i u tom periodu, vrednost na magistrali za podatke se uzorkuje i upisuje u memorijsko polje.

2. Kod komande read, pristupa se podatku iz memorijskog polja, a nakon određenog kašnjenja podatak se postavalja na magistrali za podatake. Ovo kašnjenje se odnosi na vreme pristupa memoriji kod operacije čitanja. Bit ready se postavlja nakon isteka kašnjenja.

Na kraju memorijskog ciklusa, proces se ponavlja, ostavljajući drajvere magistrale podataka i bita ready u inicijalno stanje, a nakon toga čeka na narednu komandu.

Page 37: PROCESOR DP32

Opis kola test bench-a za DP32

Entity ne sadrži portove, s obzirom da ne postoje spoljne veze sa test bench-om. Telo arhitekture sadrži deklaraciju komponenata za taktovanje, memoriju i procesor. Portovi kod deklarisanih komponenata u potpunosti odgovaraju onim kod deklaracija entity-ja. Ne postoje formalne generic konstante, tako da aktuelni parametri za generic-e kod entity deklaracije su specificirane u konfiguraciji. Telo arhitekture nakon toga deklariše signale koji se koriste za povezivanje komponenata. Ovi signali, u toku izvršenja simulacije, mogu se trasirati od strane simulacionog monitora.

Page 38: PROCESOR DP32

Konfiguracija za test bench, koja koristi behaviour opis procesora DP32:

Konfiguracijom se specificira da svaka od komponenata arhitekture test bench-a treba da koristi behaviour arhitekturu odgovarajućeg entity-ja. Aktuelne generic konstante se specificiraju za generator takta, pri čemu je taktna perioda 20 ns. Pri ovome se koristi default-na vrednost za generic konstante i default-ne vrednosti za ostale entity-je.

Page 39: PROCESOR DP32

Prva kolona prikazuje broj linija za unos programa koji generiše editor programa. U okviru druge, treće i četvrte kolone prikazuje se adresa memorijske lokacije odgovarajuće instrukcije ili makro naredbe. U petoj, šestoj, sedmoj i osmoj koloni je izvršivi kod u heksadecimalnom obliku svake od instrukcija ili makro naredbe, op-kôdovi obima jedne reči (kakav je slučaj linija 13) ili dve reči (linija 12). Kolona devet je dodeljena direktivama (include, begin i end) i labelama instrukcije (start, loop, counter). Kolona deset odgovara mnemoniku naredbe ili makro instrukcije.

Kolone 11-15 specificiraju izvorne i odredišne operande ili adresu grananja. Npr. u liniji 13 su izvorni i odredišni operand, a u liniji 15 adresa grananja. Kolona 16 označava komentar koji počinje znakom '!' i važi do kraja linije. Linije 3, 4 i 5 rezervisane za komentar, a linije 2, 6, 17 su prazne.

Page 40: PROCESOR DP32

1. 07000000 07 (Lmask) r0 r0 -r0

2. 10020000 10 (Addq) r2 r0 0

3. 21020000

00000008

21(St) r2 r0 ignored

00000008 (disp)

4. 10020201 10 (Addq) r2 r2 1

10 (Subq) r1 r2 105. 1101020A

32 24 23 16 15 8 7 0

32 24 23 16 15 8 7 0

32 24 23 16 15 8 7 0

32 24 23 16 15 8 7 0

32 24 23 16 15 8 7 0

Page 41: PROCESOR DP32

50 (Brq) xxxx 1001 xxxx -56. 500900FA

32 24 23 20 19 16 15 8 7 0

i=1, v=0, n=o, z=1

Branch se izvršava ako je: cond = ((V & v) | (N & n) | (Z & z)) = i.

50 (Brq) xxxx 0000 xxxx -57. 500000FA

32 24 23 20 19 16 15 8 7 0

i=0, v=0, n=o, z=0

bezuslovni branch

Page 42: PROCESOR DP32

SOFTVERSKI PAKETI KORIŠĆENI PRI IZRADI PROJEKTA:

• Active-HDL v5.1

• Windows Notepad

• Microsoft Word

• Corel CAPTURE 8

• Adobbe Photoshop 7.0

POTREBNA KONFIGURACIJA RAČUNARA :

• PC računar u klasi Pentium II procesora

• Windows 95/98/ME, Windows2000/NT, WindowsXP

• 1024x768 rezolucija / 16bitna paleta boja

• 128 MB RAM memorije

• 1 GB memorije na hard disku

Page 43: PROCESOR DP32

Korak 1

Početno usvajamo da je program za sintezu DP32 procesora prethodno instaliran u memoriju računara. Hardverska sinteza procesora DP32 i simulacija njegovog rada se obavlja pokretanjem programa Active HDL. Za pokretanje programa Active HDL potrebno je obaviti sledeće aktivnosti:• izabrati programsku ikonu My Computer lociranu na Desktop-u. • aktivirati My Computer – aktiviranje se izvodi dvostrukim klikom levog tastera miša na odabranu ikonu • na C: particiji aktivirati My _Designs, gde se nalazi folder proc• otvoriti folder i aktivirati ikonu proc.adf (Active HDL.Design) Startovanjem ikone pojavljuje se aplikacioni prozor. Crvenom bojom je uokviren folder proc u polju Design Browser

Page 44: PROCESOR DP32

U ovom prozoru može se posmatrati: a) program kreiran za potrebe simulacije, b) listanje sadržaja memorije i c) tok simulacije (tj.generisane vrednosti i vremenski dijagram izabrane simulacije).

Page 45: PROCESOR DP32

Selektovati i kliknuti levim tasterom miša na confing.txt da bi otvorili sekciju pomoću koje biramo zadati primer U izabranoj simulaciji prikazano je izvršenje programa counter.

Ovim smo završili učitavanje zahtevane simulacije programa counter.

Page 46: PROCESOR DP32

Korak 2

Ovaj korak se odnosi na fazu pripreme izvršenja simulacije koja uključuje sledeće aktivnosti: • Kompajliranje: aktivira se klikom na ikonicu Compile All koji je locirana u Tool Bar-u. Izveštaj da je

kompajliranje uspešno završeno ili nije, broj sintaksnih grešaka detektovanih u toku kompajliranja, i vreme potrebno za analizu prikazuje se u sekciji Console

Page 47: PROCESOR DP32

• Inicijalizacija simulacije: Nakon što je utvrđeno da je kompajliranje uspešno završeno i da nema grešaka u programu aktivira se komanda Initialize Simulation. U konkretnom slučaju prvo se selektuje Simulation na Menu Bar-u, a nakon otvaranja padajućeg menija bira se Initialize Simulation.

Page 48: PROCESOR DP32

Korak 3

Nakon inicijalizacije simulacije sledi pokretanje koje uključuje sledeću aktivnost.• Izborom Simulation na Menu Bar-u otvara se padajući meni koji sadrži opciju Run. Selekcijom i aktiviranjem opcije Run startuje se simulacija.

U prozoru koji je markiran kao No simulation, može se pratiti vreme trajanja simulacije. Istovremeno u sekciji Console promenjen je sadržaj, odnosno sekcija sada daje izveštaj da je u toku proces simulacije.

Page 49: PROCESOR DP32

Korak 4

Proces simulacije se može zaustaviti sa ciljem da se proveri stanje internih registara procesora i memorije. Na osnovu pročitanih stanja internih registara i memorije može se proveriti da li program ispravno funkciniše ili ne. Aktivnost koja prati ovaj korak je sledeća• Zaustavljanje simulacije: selekcijom polja Simulation na Menu Bar-u otvara se padajući meni koji sadrži opciju Stop. Aktiviranjem opcije Stop zaustavlja se simulacija.

Page 50: PROCESOR DP32

Izgled prozora nakon zaustavljanja simulacije

U sekciji Console treba uočiti izveštaj o vremenu trajanja simulacije do trenutka zaustavljanja. Takođe treba uočiti i vrste V=reg I V=mem u polju Tree. Klikom na simbol ‘+’ koji prethodi V=reg prikazuje se listing sadržaja registara procesora DP32, a klikom na simbol ‘+’ koji prethodi V=mem prikazuje se listing sadržaja memorije.

Page 51: PROCESOR DP32

Stanje registra

Page 52: PROCESOR DP32

Stanje memorije

Uočiti da je sadržaj reg(2)=00000005, a da je sadržaj mem(8)=00000004. Razlika između sadržaja reg(2) i mem(8) nastaje kao posledica trenutka zaustavljanja procesa simulacije. Konkretno proces simulacije je prekinut posle naredbe add a pre naredbe store. Za slučaj da je proces simulacije zaustavljen posle naredbe store a pre naredbe add do nekonzistentnosti sadržaja reg(2) i mem(8) ne dolazi.

Page 53: PROCESOR DP32

Korak 5

Ukoliko želimo da završimo simulaciju postupak je sledeći:• Selekcijom Simulation na Menu Bar-u otvara se padajući meni koji sadrži opciju End Simulation. Klikom na polje End Simulation završava se tekuća simulacija. Indikacija o završetku procesa simulacije se raportira u prozoru Console porukom # Simulation has been stopped.

Page 54: PROCESOR DP32

Da bi postavili sistem u inicijalno stanje neophodno je preduzeti sledeće korake:• privući crvenu graničnu liniju na početak simulacije (0 ns)• klikom desnim tasterom miša na crvenu graničnu liniju pojavljuje se padajući meni. • aktiviranjem opcije Clear All Waveforms After Cursor (slika 13) sistem se postavlja u inicijalno stanje.

Page 55: PROCESOR DP32

Izgled prozora nakon postavljanja sistema u inicijalno stanje (svi interni registri su postavljeni na vrednost ‘0’, sve memorijske lokacije su izbrisane)

Page 56: PROCESOR DP32

Listanje sadržaja programske memorije

Često se javlja potreba za listanjem sadržaja programske memorije nakon što je program load-ovan. Listanje se obavlja na sledeći način:

1. Pre kompajliranja treba upisati zadatak odgovarajuće grupe (1-16). Svaki student treba da promeni samo naziv programa obeležen crvenom bojom, dvostrukim klikom na config.txt u Design Browser-u.

Page 57: PROCESOR DP32

2. Aktiviranjem mem_input.txt otvara se prozor u kome je prikazan layout memorije u binarnom obliku, i prozor koji nas obaveštava da je modifikovan sadržaj memorije kao i da li želimo da prihvatimo tu promenu.