1 / 57

ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA ELEKTRONIKU SEMINARSKI RAD VHDL OPIS SAYEH PROCESORA

ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA ELEKTRONIKU SEMINARSKI RAD VHDL OPIS SAYEH PROCESORA Predmet: Mikroprocesorski sistemi Profesor : Prof.dr. Mile Stojčev Studenti: Nikola Sekulović (10963) Lazar Velimirović (11017) Niš, jul 2007. SAYEH.

lona
Download Presentation

ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA ELEKTRONIKU SEMINARSKI RAD VHDL OPIS SAYEH PROCESORA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA ELEKTRONIKU SEMINARSKI RAD VHDL OPIS SAYEH PROCESORA Predmet: Mikroprocesorski sistemi Profesor: Prof.dr. Mile Stojčev Studenti:Nikola Sekulović (10963) Lazar Velimirović (11017) Niš, jul 2007.

  2. SAYEH U delu koji sledi prikazaćemo dizajn i opis procesora. CPU je SAYEH ( Simple Architecture, Yet EnoughHardware - jednostavna arhitektura, ali sa dovoljno hardvera) koji je dizajniran za svrhe učenja i testiranja.

  3. Detalji funkcionalnosti procesora • Jednostavan CPU primer koji je ovde razmatran ima registarsko polje koje se koristi za instrukcije za obradu podataka. • CPU ima 16-bitnu magistralu podataka i 16-bitnu adresnu magistralu.

  4. Slika prikazuje signale SAYEH interfejsa

  5. Komponente CPU-a • SAYEH komponente koje se koriste zainstrukcije uključuju standardne registre kao što su: 1.programski brojač 2.instrukcioni registar 3.aritmetičko-logička jedinica i 4.statusni registar.

  6. Komponenete CPU-a Ovaj procesor ima registre koji čine polje registara R0,R1, R2, R3, kao i pokazivač prozora (Window Pointer) koji definiše R0, R1, R2, R3 unutar polja registara

  7. Komponenete CPU-a • CPU komponente i kratak opis svake: - PC: Programski brojač, 16 bitova - R0, R1, R2, R3 registri opšte namene koji su deo polja registara, 16 bita -RegFile: Registri opšte namene koji čine prozor od 4 registra u registarskom polju od 8 registara

  8. Komponenete CPU-a - WP: Pokazivač prozora ukazuje polju registara da definiše RO, R1, R2, R3, 3 bita - IR: Instrukcijski registar u koji se smešta instrukcija, 16 bita

  9. Komponenete CPU-a - ALU: ALU može da obavlja sledeće aritmetičke i logičke operacije nad svojim 16-bitnim operandima: 1.sabiranje 2.oduzimanje 3.množenje 4. AND 5. OR 6. NOT 7. Shiftleft 8. Shiftright i 9.upoređivanje

  10. Komponenete CPU-a - Z flag: Postaje 1 kada je izlaz iz ALU 0 - C flag: Postaje 1 kada ALU ima izlaz sa prenosom

  11. Skup instrukcija SAYEH procesora

  12. Skup instrukcija SAYEH procesora

  13. Skup instrukcija SAYEH procesora

  14. Skup instrukcija SAYEH procesora

  15. Skup instrukcija SAYEH procesora

  16. Opšti format 8-bitnih i 16-bitnih SAYEH instrukcija je prikazan na slici: SAYEH instrukcije

  17. SAYEH instrukcije - OPCODE polje je 4-bitni kod koji odredjuje tip instrukcije. - Polja Left (levo) i Right (desno) su 2-bitni kodovi koji biraju registre R0 do R3 za izvor i/ili odredište instrukcije. Obično, Left se koristi za odredište, a Right za izvor. - Immediate polje se koristi za trenutne podatke, ili ako su dve 8-bitne instrukcije zapakovane koristi se za drugu instrukciju.

  18. SAYEH instrukcije - Naš procesor ima ukupno 29 instrukcija - Instrukcije sa I trenutnim poljem su 16-bitne instrukcije a ostale su 8-bitne instrukcije - Instrukcije koje koriste polja Destination (odredište) i Source (izvor) (označeni sa D i S u tabeli seta instrukcija) imaju OPCODE koji je ograničen na 4 bita - Instrukcije koje ne zahtevaju specifikaciju izvornih i odredišnih registara korise ova polja kao OPCODE ekstenzije

  19. SAYEH staza podataka Glavne komponente SAYEH procesora su Addressing Unit(adresna jedinica) koja se sastoji od PC (Program Counter-programski brojač) i Address Logic (adresna logika), IR (instrukcioni registar), WP (Window Pointer), RegisterFile koji se sastoji od Left Decoder 1 i Right Decoder 2, ALU (aritmetičko-logička jedinica) i Flags (zastavice).

  20. SAYEH staza podataka

  21. Komponente staze podataka Slika pokazuje hijerarhijsku strukturu SAYEH komponenti.

  22. Komponente staze podataka - Addressing Unit se dalje deli na PC i Address Logic. - Addressing Logic(adresna logika) je kombinaciono kolo koje je sposobno dodavati svoje ulaze u cilju generisanja 16-bitnog izlaza koji formira adresu za memoriju procesora. - Program Counter i Instruction Register su 16-bitni registri. - Register File je dvoportna memorija i polje od 8 šesnaestobitnih registara.

  23. Komponente staze podataka - Window Pointer je trobitni registar koji se koristi kao osnova Register File. - Specifični registri za čitanje i upis (R0, R1, R2 ili R3) u Register File su određeni svojim 4-bitnim magistralama koje dolaze iz InstructionRegistera. 2 bita se koriste za izbor izvornog registra, a druga 2 bita biraju odredišni registar.

  24. Komponente staze podataka • Kada je Window Pointer aktivan, dodaje svoj trobitni ulaz na svoje trenutne podatke. • Flags registar je dvobitni registar koji čuva flag izlaze iz Aritmetic Unit. • Aritmetic Unit je 16-bitna aritmetička i logička jedinica koja ima odredjene funkcije. 9-bitni ulaz bira funkciju ALU-a prikazanu u ovoj tabeli. Ovaj kod je obezbedjen od strane kontrolera procesora.

  25. ALU operacije

  26. ALU operacije

  27. Blok IR (instrukcioni registar) Blok IR predstavlja 16-bitni registar koji se u okviru izvršne jedinice koristi kao instrukcioni registar. Blok IR ima sledeće portove: • Clk – ulaz taktnog signala (kad je =1 registar pamti sadržaj na ulazu), • Load – ulaz za dozvolu izlaza podataka (kada je =0 registar je otkačen sa magistrale, a kada je =1 memorisani sadržaj registra se pojavljuje na izlazu), • 16-bitni ulaz Data – ulaz na koji se dovodi instrukcija, • 16-bitni izlaz Q – izlaz iz instrukcionog registra usmeren ka upravljačkoj jednici (kontroleru), • 8-bitni izlaz Q1– izlaz koji predstavlja gornjih 8 bitova iz 16-bitnog ulaza Data.

  28. Blok PC (programski brojač) PC predstavlja blok koji određuje adresu naredne instrukcije koju treba izvršiti. Blok PC ima sledeće portove: • Clk – ulaz taktnog signala (kad je =1 registar pamti sadržaj na ulazu), • PC -16-bitni ulaz • 16-bitni ulaz RSide – ulaz koji se dovodi iz registarskog polja, • 8-bitni ulaz IR– ulaz koji se dovodi iz instrukcionog registra, • Izl –16-bitni izlaz koji se vodi na memoriju i na ulaz PC-a, • Reset PC – ulaz koji postavlja izlaz na nula vektor, • PCplus1– kontrolni signal (ako je =1 sadržaj brojača se uvećava za 1) , • PCplusI– kontrolni signal (ako je =1 sadržaj brojača se uvećava za vrednost IR), • R0plusI– kontrolni signal (ako je =1 na izlazu brojača je zbir ulaza RSide i ulaza IR ), • R0plus0– kontrolni signal (ako je =1 na izlazu brojača je ulaz RSide ), • Jmp – kontrolni signal (ako je =1 ulaz PC se samo prosleđuje na izlaz Izl).

  29. Blok WP (pokazivač prozora) WP je 3-bitni registar koji ukazuje na jedan od osam registara u polju Register File. Blok WP ima sledeće portove: • Clk – ulaz taktnog signala (kad je =1 registar pamti sadržaj na ulazu), • Data – trobitni ulaz • Q – trobitni izlaz koji definiše registar u registarskom polju, • WPreset – kontrolni ulaz (ako je =1 izlaz Q je nula vektor), • WPadd – kontrolni ulaz (ako je =1 ulaz se dodaje na trenutno stanje WP-a).

  30. Blok FR FR je 2-bitni registar koji opisuje stanje aritmetičko-logičke jedinice. Blok FR ima sledeće portove: • Clk – ulaz taktnog signala (kad je =1 registar pamti sadržaj na ulazu), • Cout, Zout – 1-bitni ulazi, • C,Z – 1-bitni izlazi, • Cset – kontrolni ulaz (ako je =1 izlaz C se postavlja na 1), • Creset – kontrolni ulaz (ako je =1 izlaz C se postavlja na 0), • Zset – kontrolni ulaz (ako je =1 izlaz Z se postavlja na 1), • Zreset – kontrolni ulaz (ako je =1 izlaz Z se postavlja na 0).

  31. Blok RF (registarsko polje) Register File predstavlja polje od osam 16-bitnih registara. Blok Register File ima sledeće portove: • Clk – ulaz taktnog signala (kad je =1 registar pamti sadržaj na ulazu), • Data -16-bitni ulaz • Rd, Rs –16-bitni izlazi koji predstavljaju operande za aritmetičko-logičku jedinicu, • WP– 3-bitni kontrolni signal koji definiše registar, • Sel– 4-bitni kontrolni signal (donja dva bita se koriste za definisanje izvora(source), a gornja dva za definisanje odredišta (destination) ), • WEL– kontrolni signal (ako je =1 na mestu osam nižih bitova u registru koji je definisan kontrolnim signalom WP upisaće se nižih osam bitova sa ulaza DATA), • WEH– kontrolni signal (ako je =1 na mestu osam viših bitova u registru koji je definisan kontrolnim signalom WP upisaće se osam viših bitova sa ulaza DATA).

  32. Aritmetičko-logička jedinica U sledećoj tabeli prikazane su operacije koje izvršava aritmetičko-logička jedinica procesora SAYEH.

  33. Aritmetičko-logička jedinica Aritmetičko-logička jedinica ima sledeće portove: • Clk – ulaz taktnog signala, • B15to0 – ulazni kontrolni signal (ako je =1 ulaz B se propusti na izlaz ALUout), • AandB – ulazni kontrolni signal (ako je =1 izvršava se logička operacija 'i' ), • AorB – ulazni kontrolni signal (ako je =1 izvršava se logička operacija 'ili' ), • NotB – ulazni kontrolni signal (ako je =1 vrši se komplementiranje ulaza B), • AaddB – ulazni kontrolni signal (ako je =1 izvršava se sabiranje nad ulaznim operandima), • AsubB – ulazni kontrolni signal (ako je =1 ALU jedinica od operanda na ulazu A oduzima operand na ulazu B), • AmulB – ulazni kontrolni signal (ako je =1 izvršava se množenje ulaznih operanada), • AcmpB – ulazni kontrolni signal (ako je =1 ulaz A se poredi sa ulazom B), • ShrB– ulazni kontrolni signal (ako je =1 sadržaj ulaza B se pomera za jedno mesto ulevo), • ShlB– ulazni kontrolni signal (ako je =1 sadržaj ulaza B se pomera za jedno mesto udesno), • 16-bitni ulaz A – ulaz podataka, • 16-bitni ulaz B – ulaz podataka, • 16-bitni izlaz ALUout – izlaz rezultata operacije, • jednobitni izlazi Cout, Zout – izlazi statusnih markera.

  34. Blok memorija Blok memorije ima sledeće portove: • 16-bitni ulaz Addr – adresni ulaz memorije, • jednobitni ulaz RE – kontrolni signal (ako je =1 dozvoljeno je iščitavanje podataka iz memorije), • jednobitni ulaz WE – kontrolni signal (ako je =1 dozvoljeno je upisivanje podataka u memoriju), • Data – 16-bitni ulaz podataka, • Q– 16-bitni izlaz podataka.

  35. Multiplekser Multiplekser SAYEH procesora ima sledeće portove: • I0 i I1– 4-bitni ulazi, • O - 4-bitni izlaz, • Shadow – kontrolni signal (ako je =1 na izlaz se vodi I0, a ako je =0 na izlaz se vodi I1).

  36. Trostatički bafer 1 Bafer 1 SAYEH procesora ima sledeće portove: • I– 8-bitni ulaz, • O - 8-bitni izlaz, • IR_on_LOpndBus – kontrolni signal (ako je =1 ulaz I se vodi na izlaz O kojise dalje upisuje na mesto nižih 8 bitova operanda Rs).

  37. Trostatički bafer 2 Bafer 2 SAYEH procesora ima sledeće portove: • I– 8-bitni ulaz, • O - 8-bitni izlaz, • IR_on_HOpndBus – kontrolni signal (ako je =1 ulaz I se vodi na izlaz O kojise dalje upisuje na mesto viših 8 bitova operanda Rs).

  38. Trostatički bafer 3 Bafer 3 SAYEH procesora ima sledeće portove: • I– 16-bitni ulaz, • O - 16-bitni izlaz, • RFright_on_OpndBus – kontrolni signal (ako je =1 ulaz I se vodi na izlaz O kojise dalje vodi na ulaz B aritmetičko-logičke jedinice).

  39. Trostatički bafer 4 Bafer 4 SAYEH procesora ima sledeće portove: • I– 16-bitni ulaz, • O - 16-bitni izlaz, • Rs_on_AddressUnitRside – kontrolni signal (ako je =1 ulaz I (odnosno operand Rs) se vodi na izlaz O kojise dalje vodi na ulaz Rside bloka PC).

  40. Trostatički bafer 5 Bafer 5 SAYEH procesora ima sledeće portove: • I– 16-bitni ulaz, • O - 16-bitni izlaz, • Rd_on_AddressUnitRside – kontrolni signal (ako je =1 ulaz I (odnosno operand Rd) se vodi na izlaz O kojise dalje vodi na ulaz Rside bloka PC).

  41. Trostatički bafer 6 Bafer 6 SAYEH procesora ima sledeće portove: • I– 16-bitni ulaz, • O - 16-bitni izlaz, • ALUout_on_Databus – kontrolni signal (ako je =1 ulaz I (odnosno izlaz iz aritmetičko-logičke jedinice) se vodi na izlaz O tj. na magistralu podataka).

  42. Trostatički bafer 7 Bafer 7 SAYEH procesora ima sledeće portove: • I– 16-bitni ulaz, • O - 16-bitni izlaz, • Address_on_Databus – kontrolni signal (ako je =1 ulaz I (odnosno adresa koju generiše blok PC) se vodi na magistralu podataka).

  43. Kontroler Upravljačka jedinica služi da na osnovu trenutne instrukcije izvrši generisanje upravljačkih signala.Upravljačka jednica procesora SAYEH je realizovana kao upravljačka jedinica sa direktnim upravljanjem (eng. hardwired control).

  44. Kontroler Blok CU ima sledeće portove: • Clock – taktni signal procesora, • IR – tekuća instrukcija, • ExternalReset – signal kojim se resetuje stanje procesora, • MemDataReady – signali dozvole (ako je =1 moguće je čitanje podataka iz memorije ili upis podataka u memoriju), • jednobitni ulazi C, Z – statusni markeri ALU-a, • ReadIO, WriteIO – signali koji se šalju ulazno-izlaznim jedinicama, • 36-bitni izlaz Control – upravljački signali izvršne jedinice. Control

  45. Procesor SAYEH • Blokovi koji su do sada opisani povezani su na sledeći način:

  46. Testiranje sintetizovanog procesora Programskom sekvencom od šest naredbi testiraćemo korektnost rada sintetizovanog procesora SAYEH. • Add R1, R6; R1 ← R1 + R6 • Shl R7; R0 ← Shl R7 • Or R3, R7; R3 ← R3 Or R7 • Not R5; R0 ← Not R5 • Sub R1, R6; R1 ← R1 – R6 • Sta (R3), R4; mem(R3) ← R4

  47. Definisanjeinicijalnih vrednosti memorijskih lokacija Sadržaj programske memorije za odgovarajuću programsku sekvencu treba da bude sledećeg oblika: • Memory[0]=1011011000000000=B600: Add R1,R6 • Memory[1]=1001001100000000=9300: Shl R7 • Memory[2]=0111111100000000=7F00: Or R3,R7 • Memory[3]=1000000100000000=8100: Not R5 • Memory[4]=1100011000000000=C600: Sub R1,R6 • Memory[5]=0011110000000000=3C00: Sta (R3),R4 Napomena: Mašinski kod, četiri MS bita instrukcije, označen je crvenom bojom, naredna četiri bita označena plavom bojom specificiraju izvorišni i odredišni operand instrukcije, zadnjih osam bitova specificiraju neposrednu vrednost opkoda instrukcije, tj. polje koje se naziva imm. Kada se opkodom ne specificira korišćenje polja imm tada je njegova vrednost 00h.

  48. Definisanje sadržaja registara registarskog polja • Sadržaj registara registarskog polja pre početka izvršenja programske sekvence treba biti sledeći: Reg_file[0]=0000000000000000=0000; Reg_file[1]=0000000000000001=0001; Reg_file[2]=0000000000001010=000A; Reg_file[3]=0000000000000011=0003; Reg_file[4]=0000000000000100=0004; Reg_file[5]=0000000000000101=0005; Reg_file[6]=0000000000000110=0006; Reg_file[7]=0000000000000111=0007;

  49. Sadržaj registara pre izvršenja programske sekvence

  50. Sadržaj registara nakon prve instrukcije ( Add R1,R6 : R1 ← R1 + R6 )

More Related