VHDL opis jednostavnog procesora

Slides:



Advertisements
Presentaciones similares
Simulación en VHDL del Datapath del MIPS
Advertisements

Equipo #3 Unidad III: ALU Efraín Corral Eduardo Castillo Elías Alarcón
El modelo de Von Neumann
ORGANIZACIÓN COMPUTACIONAL
ARQUITECTURA DE COMPUTADORES - VON NEUMANN MODEL
Sonido de las sílabas. Sonido de las sílabas.
Introduction to Microprocessors (Conference 2) From: Wikipedia, the free encyclopedia.
Profesor: Rodrigo Sanhueza F.
Maravilloso momento Č udesni trenutak Cuando recibas esta visita, pásala rápido a tus amigos. Kad dobiješ Marijin posjet, pošalji ga svojim prijateljima.
Pan.
RESUMEN: Softmicro de 8 bits Xilinx
Composición Interna de un Procesador
LOS NOMBRES (imenice). Rod imenica (género del nombre) U španskom jeziku imenice mogu biti samo muškog ili ženskog roda ( ne postoje imenice srednjeg.
Teo 2: Plataformas para programación paralela

Computer Architecture Notes Jan 26, 2004 Dusan Kuzmanovic Jimmy Ortegon.
Diseño digital para microprocesadores
ARQUITECTURA DE LOS MICROPROCESADORES DE 8 BITS
Interfaces de entrada / salida
Unidad 2: Organización del CPU
Interfases de Entrada / Salida
Partes de un Ordenador.
Técnicas Digitales III Familia DSP56F801 Universidad Tecnológica Nacional Facultad Regional San Nicolás.
Capítulo.2 - Fundamentos del Lenguaje VHDL
DSL Domain Specific Language (Lenguaje Especifico del Dominio)
VHDL Breve introducción.
Arquitectura del 8086/8088 TEEL 4011
Cap. 12 Microprocesadores (Conferencia 3) TEEL 4011 Prof. Jaime José Laracuente-Díaz Referencia: Floyd.
CPU 8088 vs. Pentium TEEL 4011 Prof. Jaime José Laracuente-Díaz.
Capítulo 5. El procesador: Camino de datos y control.
Unidad aritmético lógica
ARQUITECTURA DE COMPUTADORES Semestre A-2009 Clase 11.
Ña Un Una Unos Unas ni.
A New Breed of Learning Tool Rafael S. García Nésmary Hernández Abdiel Avilés Advisor: Dr. B. Vélez.
Diseño del procesador uniciclo
E.A.P. “INGENIERÍA DE SISTEMAS” UNIVERSIDAD PERUANA UNION.
Unidad Central de Proceso
PICOBLAZE RESUMEN.
RESUMEN: Softmicro de 8 bits Xilinx
Belgrade University Aleksandra Smiljanić: High-Capacity Switching Uvod 
[ Historia de las CPU Intel ]
Arquitectura de Computadores IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia.
Arquitectura de Computadores Clases 7-10 Diseño de una CPU Básica IIC 2342 Semestre Rubén Mitnik Pontificia Universidad Católica de Chile Escuela.
Organización del Computador
PICOBLAZE RESUMEN.
Organización del Computador
Hardverske komponente računara
Radovanović Katarina 2859/00
KATABOLIZAM.
Spoljašnja memorija PODELA SPOLJAŠNJIH MEMORIJA                       Magnetne memorije Optičke memorije                                  Hard disk   
Statistika cena.
AKTUATORI U JEDNOSMERNOM POGONU
*život najvećeg umjetnika 20.stoljeća!*
v.as.mr. Samir Lemeš Univerzitet u Zenici
METODE PROGNOZIRANJA POGODNE ZA PRIMENU U POŠTANSKOM SEKTORU
IV SAVJETOVANJE CG KO CIGRE
PRONALAŽENJE HADISA NA OSNOVU PRVOG PRENOSIOCA ASHABA
PICOBLAZE RESUMEN.
EJERCICIOS DE FONÉTICA
Pronalaženje hadisa na osnovu njegovog sadržaja Opće hadiske zbirke
UPRAVLJANJE PERSONALNOM TRANZICIJOM ZAPOSLENIH
Microarquitectura Modelo de estudio: Mic-1
SEKVENCIRANJE MIKROINSTRUKCIJA
Професор: Наставни предмет: Тема: Узраст: Потребна технологија:
Katarina Soldat, 1099, GB Eva Zetović, 1121, GB
KOMPENZACIJSKI MENADŽMENT
Costa Concordia Bruno Akmačić, 6.b.
Juliana Carmona Esteban Cano
KOMPENZACIJSKI MENADŽMENT 7. Beneficije
Transcripción de la presentación:

VHDL opis jednostavnog procesora Bratislav Džombić (8627) JASP VHDL opis jednostavnog procesora ELEKTRONSKI FAKULTET U NIŠU KATEDRA ZA ELEKTRONIKU Mikroprocesorska tehnika JUN 2006.

Predmet rada Opis u VHDL-u jednostavnog procesora pod nazivom JASP JASP (Just Another Simulated Processor) je 16-bitni procesor, osmišljen u edukacione svrhe i sadrži minimalan broj komponenata potrebnih za upoznavanje sa osnovama rada procesora Ovaj rad se bavi: opisom komponeneta i analizom rada procesora, da bi na osnovu toga mogao biti izvršen opis procesora JASP u VHDL-u

Računarski sistem Minimalistički pristup Koji je najmanji broj komponenata koji je potreban da bi se opisao računarski sistem? Procesor – da obrađuje informacije i upravlja sistemom Memorija – za smeštanje podataka Ulazni i izlazni uređaj – za unos, odnosno izlaz podataka. memorija instrukcije podaci procesor registri adrese Instrukcije i podaci

Procesor JASP Izvršna jedinica Upravljačka jedinica ALU čine je registri i ALU SP INC PC IR MAR MDR A B ALU ALUx ALUy ALUr PSR Upravljačka jedinica upravlja radom izvršne jednice pomoću kontrolnih signala Upravljačka jedinica

Registri ALU Programski brojač Inkrementer Pokazivač magacina Upravljačka jedinica SP INC PC IR MAR MDR A B ALU ALUx ALUy ALUr PSR Programski brojač Inkrementer (eng. Program Counter) – u njemu se nalazi adresa sledeće instrukcije koju treba izvršiti. (eng. Incrementer) – prihvata sadržaj programskog brojača i uvećava ga za jedan. Pokazivač magacina (eng. Stack Pointer) – čuva adresu vrha (eng. Top of the Stack – TOS) memorijskog bloka magacin (eng. Stack). Instrukcioni registar (eng. Instruction Register) – čuva instrukciju koja se tekuće izvršava. Memorijsko-adresni registar (eng. Memory Address Register) – čuva adresu memorijske lokacije iz koje se čita ili u koji se upisuje podatak. Memorijski registar podataka (eng. Memory Data Register) – čuva podatak koji se čita iz adresirane lokacije. Registar opšte namene A čuva podatak za tekuću naredbu Registar opšte namene B čuva podatak za tekuću naredbu Ulazni registar ALU - X čuva podatak nad kojim će se izvršiti operacija u ALU Ulazni registar ALU - Y čuva podatak nad kojim će se izvršiti operacija u ALU Izlazni registar ALU - R prihvata rezultat operacije izvršene u ALU Procesorsko statusni registar (eng. Processor Status Register) – čuva i označava stanje procesorskog sistema.

Procesorsko statusni registar To je specijalizovani registar u kojem se čuvaju markeri (eng. flags) koje ALU postavlja kao rezultat izvršenja operacije, kao i markeri prekida. Za razliku od ostalih registara ne koristi se ceo sadržaj PSR već određeni bitovi. - I E v V N Z C Markeri prekida: I – zahtev prekida (eng. Interrupt Request) E – dozvola prekida (eng. Interrupt Enable) vvv – vektor prekida – ukazuje na to kako će procesor postupati sa prekidom (servisirati prekid). Markeri ALU: V – premašaj (eng. Overflow) N – negativna vrednost Z – nula C – prenos (eng. carry)

Instrukcioni registar Ovaj registar je poseban po tome što na svom izlazu daje memorisanu instrukciju razdvojenu na opkôd i operand. Ovo je značajno jer se opkôd dalje prosleđuje upravljačkoj jednici koja ga dekodira i na osnovu toga započinje njeno izvršenje. X opkôd operand Opkôd – operacioni deo – definiše tip instrukcije i način adresiranja, Operand – definiše lokaciju podatka potrebnom instrukciji. Opkod je dužine 8 bita – najveći broj različitih instrukcija je 256. JASP podržava jednooperandske instrukcije – lokacija drugog operanda se podrazumeva ili se dobija dekodiranjem operacionog dela instrukcije.

Proširenje operanda Svrha proširenja operanda je da se od 8-bitnog binarnog broja koji predstavlja operand, dobijen deljenjem instrukcije u IR, generiše 16-bitni broj iste vrednosti, kojim se može dalje manipulisati. Proces proširenja se može obaviti na dva načina: X ↓ Proširenje znakom – ispred operanda se dodaje 8-bitna nula ili jednica u zavisnosti od znaka operanda (tj. od bita najveće težine). 1 X ↓ Proširenje nulama – ispred operanda se dodaje 8-bitna binarna nula

Aritmetičko-logička jednica Aritmetičko-logička jedinica (eng. Arithmetic Logic Unit – ALU) je deo procesora zadužen za obradu podataka. ALU izvršava aritmetičke i logičke operacije nad podacima. Blokovi ALU: registri ALU – ALUx, ALUy, ALUr – registri u kojima se čuvaju podaci sa kojima se vrši operacija, kao i rezultat operacije, kolo za spregu sa magistralom – DBC (eng. Data Bus Conection) – kolo pomoću kojeg registru selektivno pristupaju magistrali za podatke, aritmetičko-logička kola –ALK – skup kola koja obavljaju aritmetičke i logičke operacije, kao i kolo kojim se vrši selekcija operacije Portovi ALU: Kontrolni signali Markeri stanja Magistrala podataka

Operacije ALU U sledećoj tabeli prikazane su operacije koje podržava aritmetičko-logička jednica procesora JASP: ALUsel Operacija RTL Opis 0000 ADD ALUr=[ALUx]+[ALUy] Sabiranje u dvojičnom komplementu. Sadržaj ALUx i ALUy se sabiraju i rezultat se smešta u ALUr 0001 ADC ALUr=[ALUx]+[ALUy]+[PSR(c)] Sabiranje u dvojičnom komplementu. Sadržaj ALUx i ALUy i marker C se sabiraju i rezultat se smešta u ALUr 0010 SUB ALUr=[ALUx]-[ALUy] Oduzimanje u dvojičnom komplementu. Sadržaj ALUx i ALUy se oduzimaju i rezultat se smešta u ALUr 0011 SL ALUr=[ALUx]<<1 Logičko pomeranje sadržaja ALUx u levo i smeštanje rezultata u ALUr 0100 SR ALUr=[ALUx]>>1 Logičko pomeranje sadržaja ALUx u desno i smeštanje rezultata u ALUr 0101 AND ALUr=[ALUx]&[ALUy] Izvodi se logička operacija I nad bitovima ALUx i ALUy i rezultat se smešta u ALUr 0110 OR ALUr=[ALUx]|[ALUy] Izvodi se logička operacija ILI nad bitovima ALUx i ALUy i rezultat se smešta u ALUr 0111 NOT ALUr=~[ALUx] Izvodi se logička operacija NE nad bitovima ALUx i rezultat se smešta u ALUr 1000 NEG ALUr=~[ALUx]+1 Izvodi se komplementiranje u dvojičnom komplementu nad ALUx i rezultat se smešta u ALUr 1001 INC ALUr=[ALUx]+1 Dodaje se 1 sadržaju ALUx i rezultat se smešta u ALUr 1010 DEC ALUr=[ALUx]-1 Oduzima se 1 od sadržaja ALUx i rezultat se smešta u ALUr 1011 SWAP ALUr(7:0)=[ALUx(15:8)] ALUr(15:8)=[ALUx(7:0)] Zamena mesta bajta najveće težine sa bajtom najmanje težine i rezultat se smešta u ALUr

Potpuni sabirač Potpuni sabirač (eng. Full Adder) je gradivni element svih aritmetičkih kola koje vrše operacije u dvojičnom komplementu. Potpuni sabirač je kolo koje vrši sabiranje u dvojičnom komplementu generišući zbir i bit prenosa. X Y Cin S Cout 1

Jednica za spregu sa magistralom Jednica za spegu sa magistalom je kolo ALU čiji zadatak je da selektivno dozvoljava pristup registara ALU magistrali podataka. Selektorski kôd i njegov rezultat su prikazani u sledećoj tabeli: Kôd Rezultat 00 Svi registri ALU su otkačeni sa magistale 01 ALUx je povezan na magistralu 10 ALUy je povezan na magistralu 11 ALUr je povezan na magistralu

Upravljačka jedinica Blokovi upravljačke jednice Kontroler prekida (eng. Interuppt Controller) - Njegova uloga je da na izlazu daje signal prekida ukoliko su prekidi dozvoljeni (PSR(E) =1) i postoji zahtev za prekidom. Blok uslova grananja ispituje statusne markere iz ALU (koji se čuvaju u PSR) i na osnovu toga generiše signal koji dozvoljava grananje ili ne. Logika ovo je blok u kome se, na osnovu rezultata iz Bloka uslova grananja i signala BT, generiše selektorski signal za izbor naredne adrese mikromemorije, odnosno naredne mikroistrukcije. Adresni maper Ovo je blok u kojem se, na osnovu opkoda instrukcije, generiše adresa prve mikroinstrukcije u rutini. To se radi prostim dodavanjem 4-bitnog broja nula postojećem opkodu. Mikro inkrementer 12-bitni registar inkrementer koji tekuću adresu mikromemorije uvećava za 1. Selektor adresa Portovi upravljačke jednice multiplekser koji odlučuje koja će od tri raspoložive adrese mikromemorije biti prosleđena adresnom ulazu mikromemorije Mikro MAR Signali prekida 12-bitni memorijsko adresni registar u kojem se čuva tekuća adresa mikromemorije Mikromemorija Opkod instrukcije memorija upravljačke jednice u kojoj se nalaze mikroinstrukcije. Memorijske adrese su 12-bitne što znači da poseduje 4096 slobodnih memorijskih lokacija Taktni signal Mikro MDR 52-bitni memorijski registar podataka koji memoriše tekuću mikroinstrukciju i deli je na odgovarajuće kontrolne signale na svom izlazu ALU markeri Reset signal Kontrolni signali za izvršnu jednicu

Mikroprogramsko upravljanje Upravljačka jedinica (eng. Control Unit) generiše upravljačke signala za rad procesora. Upravljačka jedinica procesora JASP je izvedena po konceptu upravljačke jednice sa mikroprogramskim upravljanjem. Upravljačka jedinica sa mikroprogramskim upravljanjem zahteva realizaciju upravljačke jedinice na bazi ROM ili RAM memorije u kojoj se smeštaju vrednosti upravljačkih signala, koji će biti aktivirani u odgovarajućem trenutku. Mikroprogramsko upravljanje praktično znači da svaka programska instrukcija aktivira sekvencu upravljačkih signala (mikroinstrukcija). Mikroinstrukcije su smeštene u okviru mikromemorije upravljačke jednice.

Izvršavanje instrukcija Prvi ciklus je ciklus pribavljanja instrukcije iz memorije (eng. Fetch). Fetch rutina ima 6 mikroinstrukcija. Pribavljeni opkod instrukcije se zatim dekodira. Dekodirani opkod predstavlja mikromemorijsku adresu prve mikroinstrukcije u datoj rutini. Sekvenca mikroinstrukcija (rutina) se zatim izvršava do poslednje. Vrši se provera da li postoji zahtev za prekidom i da li su prekidi dozvoljeni. Ukoliko su uslovi prekida ispunjeni aktivira se mikroprogramska rutina prekida. Ukoliko uslovi prekida nisu ispunjeni aktivira se FETCH rutina.

Format mikroinstrukcije   cond BT Kontrolni signali Adresa naredne mikroinstrukcije Broj bitova 4 1 36 12 cond – određuje da li će se naredna adresa mikroinstrukcije biti uzeta sa ulaza 0 (tekuća adresa + 1) ili će biti uzeta sa ulaza 1 (addr) multipleksera u okviru mikrosekvencera u zavisnosti od stanja markera. branch target (BT) – određuje da li se adresa naredne mikroinstrukcije uzima sa ulaza koji se snabdeva adresom iz mapera ili ne. Kontrolni signali – predstavlja kontrolne signale koji se direktno vode na hardver izvršne jedinice. Adresa naredne mikroinstrukcije – ovo polje specificira prvu adresu naredne rutine. Ovo polje se koristi na kraju svake rutine kako bi se adresirala FETCH rutina.

Kontrolni signali Register Output Enable signali – dozvola da se sadržaj određenog registra pojavi na magistrali, vode se na En ulaze registara, Register Clock signali – taktni signal registra, odnosno dozvola upisa podatka koji je na ulazu u registar, vode se na Clk ulaze registara, Memorija RW i CS signali – signal izbora između upisa i čitanja (RW) i chip select signal (CS) memorije, vode se na RW i CS ulaze memorije, respektivno, ALU control signali – selektorski signali ALU, vode sa na ulaz ALUsel aritmetičko-logičke jedinice, ALU data bus signali – selektorski signali koji određuju pristup registara ALU megistrali podataka, vode se na BusCode ulaz aritmetičko-logičke jedinice, Proširenje operanda – selektorski signal koji određuje na koji način će operand biti proširen, vodi se na ulaz znak bloka za proširenje operanda, PSR(E) – setuje vrednost markera prekida E (Interuppt Enable), vodi se na ulaz E PSR registra, PSR(I) - setuje vrednost markera prekida I (Interuppt Request), vodi se na ulaz I PSR registra, PSRSel – selektorski signal PSR registra, vodi se na PSRSel ulaz ovog kola.

Podela mikroinstrukcija Mikroinstrukcije se mogu podeliti u četiri grupe: Mikroinstrukcije za premeštanje podataka (eng. Data Movement micro-instructions) - sadrže odgovarajuće kontrolne signale pomoću kojih se vrši premeštanje podataka među registrima ALU mikroinstrukcije - sadrže odgovarajuće kontrolne signale pomoću kojih se vrši biranje operacije koju ALU treba da izvrši Testne mikroinstrukcije - mikroinstrukcije čiji je zadatak da provere stanje pojedinih markera Kontrolne mikroinstrukcije (eng. Processor Control micro-instructions) - postavljaju markere prekida I i E na određeno stanje. U ovu grupu takođe spadaju i ALU Data Bus signali i signali za kontrolu memorije

Mikromemorija - primer U sledećoj tabeli prikazan je primer sadržaja mikromemorije: Opkod (hex.) Mnemonik RTL Adrese mikromemorije (hex.) FETCH MAR<-[PC] INC<-[PC] PC<-[INC] MDR<-[M[MAR]] IR<-[MDR] CU<-[IR(opcode)] 000 001 002 003 004 005 00 ADD #data,A ALUx<-[A] ALUy<-[IR(operand)] ALUr=[ALUx]+[ALUy] A<-[ALUr] 006 007 008 009 01 ADD #data,B ALUx<-[B] B<-[ALUr] 010 011 012 013 02 ADD addr,A MAR<-[IR(operand)] MDR<-[M(MAR)] ALUy<-[MDR] 020 021 022 023 024 025

Mikromemorija – primer 2 U sledećoj tabeli prikazan je primer sadržaja mikromemorije sa mikroinstrukcijama u binarnom obliku:

Glavna memorija Memorija je element koji je sposoban da pamti veći broj podataka, kojima može selektivno da se pristupa. RAM (eng. Random Access Memory) je memorija iz koje se mogu čitati i u koju se mogu upisivati podaci. Memorija koju ovde opisujemo je RAM memorija koja koristi 16-bitne adrese, što znači da ima maksimalno do 65535 memorijskih lokacija. U svakoj lokaciji može se zapamtiti podatak dužine 16 bita. Blok memorije: Blok memorije ima sledeće portove: 16-bitni ulaz Address – adresni ulaz memorije, jednobitni ulaz CS – chip select signal, u slučaju da je CS=1 memorija je dostupna za korišćenje, u slučaju CS=0 isključuje sve funkcije RAM-a, ne menjajući mu sadržaj. Ovo je prednost po pitanju potrošnje energije, jednobitni ulaz RW – kontrolni signal kojim se određuje da li se iz memorije čita (RW=1) ili se u memoriju upisuje podatak (RW=0), 16-bitni ulaz/izlaz Data – ulaz, odnosno izlaz podataka.

Konačni izgled sistema

VHDL VHDL (eng. Very-high-speed-integrated-circuit Hardware Description Language) je jezik za opis digitalnih elektronskih sistema koji je razvijen u okviru programa razvoja vrlo brzih integrisanih kola. VHDL je projektovan da zadovolji potrebe u procesu projektovanja: omogućava opis strukture sistema, tj. dekompozicije na podsisteme i međusobne povezanosti podsistema, omogućava specifikaciju funkcije sistema korišćenjem jednostavnih formi programskog jezika, omogućava simulaciju sistema pre izrade, tako da se alternative projekta mogu porediti i testirati bez trošenja vremena i novca koje zahteva prototipovanje hardvera.

Pristup VHDL opisu Primenjen u ovom radu Izvršena je dekompozicija sistema na kola koja obavljaju konkretne operacije (operaciona kola ALU, registri, multiplekseri) VHDL opis ALU VHDL opis ALU kola za operaciju pomeranja u levo (eng Shift Left) Ovakva kola opisana su na nivou ponašanja (eng. behavioral level) VHDL opisa. Opisom na strukturnom nivou VHDL-a opisane su veze između kola u kompleksnijim sistemima (kao što su ALU, upravljačka jednica, procesor)

Programski paket Active-HDL Programski paket korišćen za VHDL opis je Active-HDL, verzija 6.3, kompanije ALDEC.

Programski paket Active-HDL Primer radne površine programa Active-HDL 6.3

JASPer – simulator JASP procesora Kao pomoćno sredstvo u radu korišćen je program JASPer koji simulira rad procesora JASP. Ovaj program se može slobodno preuzeti sa adrese http://www.brittunculi.com/jasp/

Zaključak Pre početka pisanja kôda potrebno je detaljno upoznavanje sa radom kola koje se opisuje, kao i sa načinom realizacije pojedinih funkcija kola. Potrebno je pre početka pisanja kôda savladati sematiku i pravila pisanja VHDL jezika. Prilikom VHDL opisa kôda treba težiti optimalnosti kôda. Na osnovu opisa ponašanja, na jednostavan način pomoću VHDL-a i sredstava za sintezu, moguće je doći do hardverske realizacije kola. Ovo znatno ubrzava projektovanje složenih sistema. Projektant je okrenut načinu rada sistema koji projektuje, a ne problemu hardverske realizacije.

Literatura Mark Burrell – „Fundamentals of Computer Architecture”, Palgrave Macmillan, 2004 Mile Stojčev – “RICS, CISC i DSP procesori”, Elektronski Fakultet Niš, 1997 Mile K. Stojčev, Saša S. Ristić, Miloš D. Krstić – “Zbirka zadataka iz mikroprocesora i mikroračunara”, Elektronski Fakultet Niš, 1999 Prof.dr Milunka Damnjanović (kao urednik) i grupa predavača na Elektronskom fakultetu u Nišu – “Praktikum laboratorijskih vežbanja iz projektovanja i testiranja elektronskih kola i sitema”, Elektronski Fakultet Niš, 2000 J. Mirkowski, M. Kapustka, Z. Skowronski, A. Biniszkiewicz – “Interactive VHDL Tutorial REV.2.1”, Evita ™, 1998