0

DLX procesor sa 5 stepena pipeline-a (deo 2)

4. Opis dizajna

4.1 Zabeleške uz dizajn

Kodovanje instrukcija i načina adresiranja zadato je sledećom tabelom

naziv 15..12 11..8 7..4 3..0 reči
NOOP 0000 0000 0000 0000 1
Store 0001 rezultat xxxx adresa 1
Mov 0010 ureg Izreg rotiranje 1
Add 0011 rezultat prviop Drugiop 1
Sub 0100 reultat prviop drugiop 1
And 0101 rezultat prviop drugiop 1
Or 0110 rezultat prviop drugiop 1
Xor 0111 rezultat prviop drugiop 1
Not 1000 rezultat prviop XXXX 1
Jgt 1001 adresa prviop drugiop 1
Jge 1010 adresa prviop drugiop 1
Je 1011 adresa prviop drugiop 1
Jsr 1100 treba nesto mozda 1
Rti 0000 1111 1111 1111 1
Push 1110 pom eraj registar 1
Pop 1111 registar Pom eraj 1
Load 1101 registar xxxx Adresa 1

 

 

Pipeline procesor sa 5 stepeni protočne obrade (DLX)

4.2 Dijagrami toka

Sve instrukcije prolaze kroz 5 stepeni protočne obrade u kojima se na osnovu instrukcije odlučuje kojim tokom će se instrukcija izvršavati. Ne postoji jedinstvena upravljavčka jedinica, već je sve realizovano direktnim vezama i logičkim ili sekvencijalnim kolima. Hazardi se utvrđuju u među blokovima. Postoji stall jedinica koja upravlja utvrđivanjem hazarda, i koja kao ulaze prima IR iz svih međublokova i ako ima potrebe zaustavlja ili briše međublok. Hazard se događa ukoliko u IF/ID se nalazi instrukcija koja treba da pročita neki od registara koji se menja u nekoj od ranijih instrukcija. Do brisanja međublokova dolazi ukoliko je naišla instrucija skoka, pa treba obrisati ranije instrukcije, jer je predikcija skoka urađena po sistemu branch not taken.  Ranije je objašnjen sled izvršavanja instukcija.


5. Testiranje i verifikacija

5.1 Simulacija i test benčevi

Simulacija je izvršena pomoću aplikacije Quartus II 8.1 Web Edition. Ova aplikacija je izabrana jer vrši projekciju za direktnu izradu na štampanoj ploči, tako da koristi realna kašnjenja koja se javljaju u izabranom FCPGA čipu. Test primer je izabran tako da obuhati što više situacija koje se mogu dogoditi u procesoru.

Testiranje je odrađeno i na sintetizovanom modelu u qaurtusovom waveformu.

Uz ovu dokumentaciju su priloženi print-skrinovi sa testiranja sintetizovanog modela.

5.2 Verifikacione tehnike i algoritmi

Prilikom verifikacije su prvo uzeti u obzir zahtevi koje komponenta treba da zadovolji. Na osnovu tih zahteva su kreirani testovi svake jedinice pojedinačno u wave formu, koje bi simulirale rad dređene komponente. Proverene komponente čiji testovi nisu pali su nastvavili da se integrišu u veće celine, dok su se one koje nisu mogli da prođu verifikaciju vraćale u razvoj, da bi se nepravilnosti u njihovom radu otklonile. Pravljene su jedinice koje se sastojeod nekoliko komponenata i one se ponovo testirale. Takođe komponente koje bi u ovakvom slučaju pokazale neke nepavilnosti u funkcionisanju su vraćane u razvoj. Na kraju je ceo procesor izložen test programima karakterističnim za njegovo korišćenje.

5.3 Planovi testiranja

– testiranje pojedinačnih komponenata

– testiranje rada blokova koji se sastoje od nekoliko blokova

– test program za ceo procesor:

 

LOAD R1, [R0]

ADD R2,R1,R1

PUSH R2

SUB R3,R2,R1

POP R4

STORE R3,[R4]

STORE R2, [R1]

6. Implementacija

Procesor treba da bude inplementiran za FPGA chip. Implementacija je urađena uz pomoć programa Quartus II 8.1 Web Edition. Izabrani programski jezik je bio VHDL jer je najpogodniji za opis hardverskih komponenata i predstavlja moćan alat za pisanje kako u programerskoj paradimi tako i u u paradigmi vezanoj za konkurentno izvršavanje kakvo se javlja u hardverskim elementima.

6.2 Konvencije dizajna i stil kodiranja

Korišćena je konvencija da ne postoje trostatički bufferi na FPGA čipovima.

8. Literatura

Spisak literature korišćen u izradi domaćeg zadatka u IEEE formatu:

[1]

www.altera.com , USA, 2010

[2]

http://kondor.etf.rs/~vm/os/vlsi/index.html, Serbia, 2010

[3]

http://tams-www.informatik.uni-hamburg.de/vhdl/vhdl.html, Germany, 2010

 

[4]

http://ghdl.free.fr/dlx/ , France, 2010

[5]

http://www.cse.lehigh.edu/~caar/lou/dlx.html, USA, 2010

[6]

http://lsdis.cs.uga.edu/~kaarthik/projects/dlx.html, USA, 2010

 Kompletan VLSI kod se moze naći na sledećoj adresi: http://cid-4b45ba21e0eded68.skydrive.live.com/self.aspx/.Public/VLSI/DLXprocessor.rar

Moguće su greške u implementaciji.

Born in Bratislava, Slovakia, but he lived in Belgrade, Serbia. Now he is doing a PhD in natural language processing at the University of Manchester. Great enthusiast of AI, natural language processing, machine learning, web application security (founder of OWASP local chapter in Serbia, currently one of the leaders of OWASP Manchester chapter and OWASP Seraphimdroid project), open source, mobile and web technologies. Looking forward to create future. Nikola wants to teach machines to feel and understand. Always finding way for dreams to come true.

Twitter LinkedIn Google+ YouTube Xing  

email

Leave a Reply

Your email address will not be published. Required fields are marked *