ort 7 - procesori

Upload: neoh-emir

Post on 15-Jul-2015

488 views

Category:

Documents


3 download

TRANSCRIPT

Fakultet za informatiku i menad mentPredmet: Osnovi ra unarske tehnike Predava : Violeta Toma evi Asistent: Marko arac

ProcesoriMIKROPROCESORI Mikroprocesori Intel familije Istorija razvoja Arhitektura DMA DIREKTAN PRISTUP MEMORIJI Povezivanje mikroprocesora Intel 8086 sa DMA kontrolerom MEHANIZAM PREKIDA Povezivanje mikroprocesora Intel 8086 sa Interrupt kontrolerom

Mikroprocesori (1)Istorija razvoja procesora je vrlo kratka. Prvi procesori su nastali po etkom sedamdesetih godina pro log veka. Ipak, u ovom kratkom periodu ostvaren je ogroman tehnolo ki napredak (na pr. prvi procesori su radili na taktu 0.4MHz, a danas rade na preko 3GHz). Intenzivan razvoj u ovoj oblasti bio je pra en bespo tednim nadmetanjem firmi koje su se bavile proizvodnjom procesora.

Mikroprocesori (2)U vreme kada je firma IBM projektovala svoj prvi PC ra unar, na raspolaganju su bila dva proizvo a a mikroprocesora: Intel i Motorola. Iako su Motorolini procesori po mi ljenju IBM-ovih in enjera bili prihvatljiviji jer su imali bolje karakteristike, izbor je pao na Intel. Pri izboru su prevagnule slede e injenice: Intel-ov procesor je bio jeftiniji Intel-ov procesor je bio kompatibilan sa svim ranijim verzijama, a garantovana je i kompatibilnost sa svim budu im generacijama procesora IBM je dobio prava za proizvodnju Intel-ovog procesora za Intel-ov procesor je postojao gotov operativni sistem CP/M firme Digital Research, koji je u to vreme bio industrijski standard za mikrora unare

Karakteristike procesoraNajbitnije karakteristike svakog procesora su:radni takt koji se izra ava u Hz (MHz i GHz) irina magistrale podataka koja se izra ava u bitima irina adresne magistrale koja se izra ava u bitima; od nje direktno zavisi maskimalna koli ina memorije koji precesor mo e da adresira koli ina ke memorije

Istorija razvoja Intel mikroprocesora (1)Intel 4004prvi Intel-ov procesor nastao u novembru 1971.godine upakovan u samo jedan ip, za iju proizvodnju se koristila tada dostupna 10 m tehnologija koja mu je omogu ila da sadr i 2300 tranzistora veoma dobre karakteristike za to vreme radni takt od 0.4 do 0.8 MHz maksimum od 640 bajta eksterne memorije etvorobitna magistrala podataka

Istorija razvoja Intel mikroprocesora (2)Intel 8008procesor druge generacije nastao u aprilu 1972.god. glavna pobolj anja u odnosu na Intel 4004 osmobitna magistrala podataka maksimum od 16KB eksterne memorije radni takt se nije promenio i iznosio je od 0.5MHz do 0.8MHz zbog pro irenja magistrale, a time i mogu nosti obrade ALU, ovaj procesor je imao 3500 tranzistora integrisanih unutar jednog silicijumskog ipa

Istorija razvoja Intel mikroprocesora (3)Intel 8080centralni deo prvog komercijalno raspolo ivog ra unara Altair u toku nekoliko meseci prodato ih je na hiljade komada, pa je vrlo brzo dospeo na prvo mesto liste prodaje mikroprocesora imao je 4500 tranzistora i performanse 10 puta bolje u odnosu na prethodnika osnovne karakteristike radni takt od 2MHz maksimum od 64KB memorije

Istorija razvoja Intel mikroprocesora (4)

Izgled silicijumske plo ice procesora Intel 8080

Istorija razvoja Intel mikroprocesora (5)Intel 8086prvi 16-bitni procesor nastao sredinom 1978.godine, koga je IBM ugradio u svoj prvi personalni ra unar PC/XT proizvodio se u, za to vreme, veoma naprednoj 3 m tehnologiji, to je omogu ilo da ip sadr i 29000 tranzistora performanse su bile 10 puta bolje u odnosu na prethodnika osnovne karakteristike radni takt u verzijama 2, 5, 8 i 10MHz 20-bitna adresna magistrala omogu avala je pristup RAM-u od 1MB (tada se nije uo avala kasnija potreba za ve om memorijom)

Istorija razvoja Intel mikroprocesora (6)Intel 8028616-bitni procesor nastao 1982.godine, kada ga je IBM ugradio u svoj Advanced technology personalni ra unar PC/AT za 6 godina proizvodnje instalirano je 15 miliona ovih PC ra unara bio je prvi pravi procesor; uveo je koncept za ti enog moda (protected mode) koji omogu ava da vi e programa rade istovremeno, nezavisno jedan od drugog (multitasking); ova mogu nost je kasnije na la primenu u operativnim sistemima, na pr. u Windows OS osnovne karakteristike radni takt u verzijama 6, 10, 12, a kasnije i 20MHz adresirao je 16MB RAM-a imao je 134000 tranzistora

Istorija razvoja Intel mikroprocesora (7)Intel 80386prvi 32-bitni procesor nastao krajem 1985.godine, koji predstavlja veliki tehnolo ki napredak u Intel-u karakteristike ovog procesora zbog 32-bitne magistrale obezbe en je bar duplo ve i protok podataka nego kod procesora 80286 radni takt u verzijama 16, 20, 25 i 33MHz sadr avao je 275000 tranzistora do 1989.godine razvijena je cela familija ovih procesora; poslednja verzija iz 1989.god. mogla je da adresira 4GB RAM-a, to je ostalo kao standard za Intel-ove procesore do dana njih dana

Istorija razvoja Intel mikroprocesora (8)Intel 80386 (nastavak)u ovom procesoru se prvi put koristio princip pipeline koji omogu ava procesoru da zapo ne sa izvr avanjem naredne instrukcije pre nego to zavr i izvr avanje prethodne instrukcije svi ipovi u 386 familiji bili su pin-to-pin kompatibilni u 386 familiji je postojala softverska kompatibilnost sa familijom 286, to zna i da korisnici nisu morali da nabavljaju novi softver, ve su mogli da koriste i onaj koji su imali za 286 familiju familija 386 je ostvarila veliki napredak prvenstveno u razvoju ipova i uvela je standarde koje su mnogi kasniji ipovi pratili

Istorija razvoja Intel mikroprocesora (9)Izgled silicijumske plo ice i ku i ta procesora Intel 80386

Istorija razvoja Intel mikroprocesora (10)Intel 8048632-bitni procesor nastao po etkom 1989.godine karakteristike ovog procesora radni takt u verzijama od 25 do 100MHz (1994.god.); iako su prve verzije u 486 familiji radile na istom taktu kao poslednje verzije u familiji 386, 80486 je bio duplo br i zbog pobolj ane arhitekture sadr avao je 1.2 miliona tranzistora prvi procesor sa integrisanom ke memorijom veli ine 8KB u koju se kori enjem pipeline-a stavljala slede a instrukcija ili podatak, tako da procesor nije morao da pristupa spolja njoj memoriji; po to je ke memorija vrlo vrza, ovo je bio veliki pomak u brzini obrade podataka veliko pobolj anje je bilo i uvo enje integrisanog matemati kog koprocesora koji je procesoru omogu avao da aritmeti ke operacije nad brojevima u pokretnom zarezu izvr ava u jednom taktu

Istorija razvoja Intel mikroprocesora (11)Pentium familijePentium Imart 1993.g. Promena naziva (nije 586) zbog pravnih problema. Radni takt 60, 66, ..., 166, 200 i 233MHz. 32-bitna unutra nja magistrala podataka, 64-bitna spolja nja magistrala (duplo br e nego kod 486). Omogu eno izvr avanje dve instrukcije za vreme jednog takta. Dva nezavisna ke a (code i data). Od takta 75MHz, dva procesora mogla da rade zajedno u sistemu. Kompatibilnost sa starijim OS (DOS, Windows 3.1, Unix i OS/2). Najpoznatiji Pentium Pro i Pentium MMX. Za izradu ipova kori ena je 0.8 m i 0.35 m tehnologija. Neuspeli poku aj objedinjavanja najboljih osobina prethodnika. Optimizovan za 32-bitne aplikacije. MMX-ov set instrukcija koji je ve postao standard. Od Pentium Pro je uzeta tehnologija dinami kog izvr avanja koja omogu ava predvi anje narednih instrukcija u cilju pove anja brzine rada. Radni takt od 233 do 450MHz. 32KB L1 ke a (po 16KB za podatke i instrukcije) i do 512KB L2 ke a (duplo sporiji od L1, ali mnogo br i od sistemske memorije). Promena ku i ta: procesor i L2 se nalaze na plo ici u plasti nom ku i tu, koja se preko slota povezuje sa mati nom plo om.

Pentium II1998.g.

Istorija razvoja Intel mikroprocesora (12)Pentium familijePentuim IIIfeb. 1999.g. SSE set instrukcija (MMX-ov set pro iren sa 70 novih instrukcija) kojim je pobolj ano procesiranje 3D animacija. Radni takt od 450MHz do 1GHz. Da bi pove ao sigurnost online transakcija, Intel je odlu io da na svaki procesor ugradi serijski broj ipa (processor serial number - PSN) koji je mogao da se pro ita preko mre e ili Internet-a. Me utim, korisnici su smatrali da je to napad na njihovu privatnost i Intel je bio prinu en da dopusti isklju enje PSNa u BIOS-u. Nova, NetBurst arhitektura CPU dizajnirana tako da u budu nosti omogu i pove avanje brzine. Net Burst se sastoji od 4 nove tehnologije: Hyper Pipelined Technology (brzina procesora se pove ava pro irenjem pipeline-a, tako da se mo e raditi nad vi e instrukcija istovremeno), Rapid Execution Engine (Pentium IV sadr i dve ALU koje rade duplo br e od procesora to je nu na posledica pro irenja pipeline-a), Execution Trace Cache (bile su neophodne neke prepravke na ke u) i 400MHz sistemska magistrala. Radni takt od 1GHz do 3.6GHz.

Pentium IVjun 2002.g.

Arhitektura Intel mikroprocesoraArhitekturu Intel-ovih mikroprocesora prou i emo na primeru mikroprocesora Intel 8086, jer su sve kasnije generacije Intel-ovih mikroprocesora zadr ale kompatibilnost i sli nu strukturu kao navedeni procesor.

Osnovne karakteristikeIntel 808616-bitna magistrala podataka 20-bitna adresna magistrala (mogu e je adresirati 220 bajtova, tj. 1MB memorije) magistrala podataka i adresna magistrala su multipleksirane, tj. koriste iste pinove na mikroprocesoru postoje dve linije za spolja nje prekide poseban I/O (ulazno/izlazni) adresni prostor veli ine 64K za adresiranje perifernih jedinica postoji podr ka za rad sa DMA kontrolerom radni takt procesora je, u zavisnosti od verzije, 2, 5, 8, ili 10MHz

Pin-out procesora 8086 (1)GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 VCC AD15 A16 A17 A18 A19 BHE MN/MX RD HOLD HLDA WR M/IO DT/R DEN ALE INTA TEST READY RESET

CPU 8086

Pin-out procesora 8086 (2)PinVCC GND AD0AD15 A16A19 NMI [Not Masked Interrupt] INTR [Interrupt Request] INTA [Interrupt Acknowledge] CLK [Clock]

Opispozitivan kraj napajanja procesora (+5V) negativan kraj napajanja procesora (masa) multipleksirane magistrale podataka i adresa dodatne 4 linije za adresnu magistralu ulaz na koji se dovode nemaskirani prekidi ulaz na koji se sa kontrolera prekida dovodi signal o pristiglom zahtevu za spolja njim prekidom izlaz kojim procesor signalizira kontroleru prekida da je spreman da prihvati zahtev za prekidom ulaz za takt na kome radi procesor

Pin-out procesora 8086 (3)PinBHE [Bus High Enable] MN/MX [MiNimal/MaXimal]

Opisizlaz kojim procesor signalizira da je u 16-bitnom modu rada ulaz na osnovu koga procesor zna da li je u minimalnom ili maksimalnom modu rada, tj. da li je jedini procesor u sistemu ili ne signal kojim procesor zahteva podatak iz adresirane memorijske elije ili adresirane periferije signal kojim procesor upisuje podatak u adresiranu memorijsku eliju ili adresiranu periferiju signal kojim DMA kontroler tra i od procesora da mu prepusti magistralu signal kojim procesor signalizira DMA kontroleru da mu je prepustio magistralu

RD [Read] WR [Write] HOLD HLDA [Hold Acknowledge]

Pin-out procesora 8086 (4)PinM/IO

Opissignal kojim procesor govori ostatku sistema da li je adresa koju je postavio na adresnu magistralu adresa memorije ili adresa periferije signal kojim procesor signalizira da je na magistralu postavio adresu signal kojim procesor signalizira da je na magistralu postavio podatak ulazni signal kojim memorija ka e procesoru da je spremna za slede i ciklus itanja ili upisa podataka ulazni signal kojim se resetuje procesor ulaz koji procesoru ka e da je sistem u test modu i da instrukcije izvr ava jednu po jednu (step mode)

ALE [Address Latch Enable] DEN [Data Enable] READY RESET TEST

Princip radaMikroprocesori izvr avaju program tako to u ciklusima ponavljaju slede a 4 koraka, sve dok se ne do e do kraja programa: 1. dohvatanje instrukcije iz memorije i dekodovanje njenog operacionog koda 2. itanje operanda ako se to zahteva u instrukciji

3. izvr avanje instrukcije 4. ako se u instrukciji zahteva, upis rezultata u memoriju ili odgovaraju u perifernu jedinicuNapomena: Operandi su binarni brojevi nad kojima se vr e eljene aritmeti ke ili logi ke operacije. Nalaze se u memoriji zajedno sa instrukcijama, ili se dobijaju od neke periferije.

Unutra nja struktura (1)Mikroprocesori se sastoje od dve osnovne jedinice: 1. EU [Execution Unit] izvr na jedinica koja izvr ava instrukcije 2. BIU [Bus Inteface Unit] jedinica za spregu sa magistralom koja dohvata instrukcije iz memorije, ita operande i alje rezultat u memoriju ili ka odgovaraju oj periferiji Izvr na jedinica i jedinica za interfejs rade nezavisno jedna od druge i naj e e rade istovremeno.

Unutra nja struktura (2)EURegistri op te nameneInterna magistrala

BIUInstruction Pointer Generator adresa i kontroler magistraleEksterna magistrala

Registri za operande

Instruction Queue

ALUPSW registar

Execution Unit (1)Izvr na jedinica nije direktno povezana sa sistemskom magistralom. Centralni deo izvr ne jedinice je ALU koja, u zavisnosti od instrukcije, obavlja aritmeti ke ili logi ke operacije nad operandima. Instrukciju koju teba da izvr i, ALU dobija iz Instruction Queue koji se nalazi unutar BIU. Dobijenu instrukciju ALU izvr ava nad operandima koji se nalaze u dva 16-bitna registra iji su izlazi vezani na ulaze ALU. Operandi u registre dolaze iz memorije, sa periferije, ili iz registara op te namene ukoliko su rezultat prethodne operacije koju je ALU izvr ila.

Execution Unit (2)Ukoliko neka instrukcija zahteva podatak iz memorije ili sa neke od periferija koji nije raspolo iv u registrima za operande, izvr na jedinica prosle uje taj zahtev BIU, koja zatim obezbe uje tra eni podatak. Rezultat izvr avanja neke instrukcije u ALU mo e da bude novi operand za slede u instrukciju, ili podatak koji treba smestiti u memoriju ili poslati na neku od periferija. Kao rezultat izvr ene operacije mogu se postaviti i odre eni bitovi u PSW registru.

Bus Interface Unit (1)Jedinica za spregu sa magistralom vr i sve operacije sa memorijom i periferijama koje zahteva EU. Preko nje se, na zahtev EU, prenose podaci izme u procesora i memorije ili periferija. Tokom izvr avanja instrukcije u EU, BIU dohvata naredne instrukcije iz memorije i sme ta ih u internu memoriju, tj. Instruction Queue. U Instruction Queue mo e da se smesti do 6 instrukcija koje ekaju da se izvr e. Kori enje Instruction Queue-a obezbe uje da EU bude uvek snabdevena novim instrukcijama.

Bus Interface Unit (2)U slu aju da EU izvr i instrukciju koja prebacuje kontrolu na drugu lokaciju u memoriji (kao na primer instrukcije skoka GOTO, CALL, JUMP,...), jedinica za spregu sa magistralom: resetuje Instruction Queue dohvata instrukciju sa nove adrese i direktno je prosle uje EU nastavalja da puni Instruction Queue narednim instrukcijama

Registri op te namenePostoji 8 16-bitnih registara op te namene koji su svrstani u dve grupe od po 4 registra. Prvu grupu ine registri za podatke. slu e za uvanje razli itih vrsta podataka generisanih tokom izvr avanja programa korisnik mo e da im pristupa ( ita i menja sadr aj) bez ograni enja koriste se u ve ini aritmeti kih i logi kih operacija specifi ni su jer im je mogu e posebno adresirati gornju i donju polovinu od 8 bitova, to zna i da se svaki registar za podatke mo e koristiti ili kao jedan 16-bitni, ili kao dva 8-bitna registra Drugu grupu ine indeksni i pointer registri.

Instruction Pointer registarInstruction Pointer (IP) je registar koji sadr i adresu slede e instrukcije koju BIU treba da prenese iz memorije u procesor. IP je u su tini broja koji inkrementira sadr aj nakon preuzimanja nove instrukcije iz memorije. U slu aju da u programu treba napraviti skok, neophodno je promeniti vrednost IP-a. Nakon toga, prva slede a instrukcija koju treba izvr iti je ona koja se nalazi na adresi upisanoj u IP.

PSW registar (1)PSW (Processor Status Word) registar slu i za pam enje nekih bitnih osobina poslednjeg rezultata dobijenog iz ALU, kao i odre enih parametara procesora. Svaka informacija je predstavljena jednim bitom registra koji se zove fleg (flag zastavica). Mikroprocesor Intel 8086 ima16-bitni PSW koji sadr i: 6 statusnih flegova 3 kontrolna flega 7 bitova koji se ne koriste

PSW registar (2)Statusni flegovi predstavljaju informacije o rezultatu operacije izvr ene u ALU mo e ih menjati jedino EU korisnik mo e samo da ita njihove vrednosti, ali ne i da ih menja Kontrolni flegovi predstavljaju parametre bitne za rad procesora njihovu vrednost postavlja korisnik

PSW registar (3)Statusni flegoviCF [Carry flag]

OpisSetovan na 1 ako je bilo prenosa ili pozajmice pri ra unanju najvi eg bita rezultata. Dobija novu vrednost nakon svake instrukcije sabiranja, oduzimanja ili rotiranja. Setovan na 1 ako rezultat ima paran broj jedinica. Koristi se za proveru ispravnosti prenosa podataka do periferija. Setovan na 1 ako je pri ra unanju rezultata bilo prenosa ili pozajmice izme u ni eg i vi eg bajta. Setovan na 1 ako je rezultat operacije 0. Setovan na 1 ako je rezultat negativan broj, tj. po inje sa 1 (negativni brojevi se predstavljaju u komplementu dvojke). Setovan na 1 ako do e do prekora enja, tj., zbog veli ine, rezultat ne mo e da bude upisan na predvi enu lokaciju.

PF [Parity flag] AF [Auxiliary Carry flag] ZF [Zero flag] SF [Sign flag] OF [Overflow flag]

PSW registar (4)Kontrolni flegovi DF [Direction flag] IF [Interrupt flag] TF [Trap flag] IF zabranjuje ili dozvoljava spolja nje prekide koji dolaze po INTR liniji. Spolja nji prekidi koji sti u po NMI liniji ili unutra nji prekidi se ne mogu zabraniti ovim flegom.

Povezivanje sa okru enjemIntel 8086AD0AD15, A16A19 ALE RD WR M/IO

20

LE

20

Memorija

A DRD WR CS

Priferija 16

A DRD WR CS

Na slici je prikazan na in povezivanja procesora Intel 8086 sa memorijom i periferijama.

Razmena podataka sa memorijom (1)Potreba za razmenom binarnih informacija izme u procesora i memorije je veoma esta: itanje instrukcija iz memorije U memoriji se nalazi program koji procesor treba da izvr i. Program se sastoji od instrukcija koje, da bi se izvr ile, najpre treba pro itati, a zatim proslediti do procesora. itanje podataka iz memorije U memoriji se nalaze i podaci nad kojima procesor vr i obradu (operandi za aritmeti ko-logi ke operacije). upis rezultata u memoriju Nakon obrade, dobijeni rezultat se esto upisuje u memoriju da bi se sa uvao za kasniju upotrebu.

Razmena podataka sa memorijom (2)Upis binarnog podatka u memoriju: procesor adresira eljenu memorijsku lokaciju postavljanjem njene adrese na adresnu magistralu na magistralu podataka procesor postavlja podatak koji eli da upi e setovanjem signala WR (write pin29) procesor zadaje komandu memoriji da obavi upis podatka itanje binarnog podatka iz memorije: procesor adresira memorijsku lokaciju iz koje eli da pro ita podatak postavljanjem njene adrese na adresnu magistralu setovanjem signala RD (read pin32) procesor zadaje komandu memoriji da na magistralu podataka postavi adresirani podatak procesor preuzima podatak sa magistrale podataka

Razmena podataka sa memorijom (3)Problem: adresna magistrala i magistrala podataka su multipleksirane, pa nije mogu e da se na pinovima procesora istovremeno pojave i adrese i podaci, to je neophodno prilikom upisa i itanja sadr aja. Navedeni problem se re ava upotrebom le a. Le je sekvencijalno kolo sli no registru, s tom razlikom to se prilikom upisa podatka u le , podatak automatski pojavljuje na njegovom izlazu. Uloga le a je da privremeno zapamti adresu. Postupak postavljanja adrese i podatka: procesor najpre postavlja adresu na multipleksiranu magistralu zatim aktivira ALE signal kojim se adresa upisuje u le i prosle uje na njegov izlaz po to se izlaz le a vodi na adresni ulaz memorije, adresa je prosle ena do memorije sada procesor mo e na multipleksiranu magistralu da postavi podatak za upis ili da preko magistrale pro ita podatak iz memorije

Razmena podataka sa periferijom (1)Pod periferijama se podrazumevaju svi ure aji (osim memorije) koji su povezani sa procesorom. Periferije slu e za trajno skladi tenje podataka, ru ni unos ili itanje podataka, komunikaciju ra unara sa okru enjem, uklju uju i i komunikaciju sa drugim ra unarima. Uobi ajene periferije su hard disc, mi , tastatura, video kartica, modem, tampa i dr. Procesor komunicira sa periferijama ( alje im i prima podatke od njih) na sli an na in kao i sa memorijom, s tim to postoje dve razlike: Prva razlika je u tome to se sada ne adresira memorijska lokacija ve periferija. Naime, svaka periferija ima svoju adresu. Kada procesor na adresnu magistralu postavi adresu periferije, odgovori e mu samo periferija iju je adresu postavio.

Razmena podataka sa periferijom (2) Druga razlika je u tome to periferije i memorija moraju da znaju iju adresu je procesor postavio na magistralu. Adrese memorijskih lokacija i adrese periferija se poklapaju. Kada ne bi postojala nikakva dodatna informacija o tome kome procesor eli da se obrati, desilo bi se da mu istovremeno odgovore i memorija i periferija, to bi dovelo do gre ke u sistemu zbog sudara podataka koji dolaze sa razli itih strana na istu magistralu podataka. Problem se re ava M/IO signalom koji procesor postavlja na 1 kada eli da se obrati memoriji, odnosno na 0 kada eli da se obrati periferiji. Ovaj signal se vodi na CS (Chip Select) ulaze i memorije i periferije.

Direktan pristup memoriji - DMADMA Direct Memory Access predstavlja direktan transfer podataka izme u periferije i memorije, bez posredovanja procesora. DMA transfer podatka se obavlja tako to, uz pomo DMA kontrolera, periferija generi e adrese memorijskih lokacija i sme ta podatke u njih. DMA transfer se primenjuje: kada je potrebno preneti veliku koli inu podatka, pa bi transfer preko procesora znatno usporio prenos kada je periferija relativno brza (primer takve periferije je hard disc).

Povezivanje procesora Intel 8086 sa DMA kontroleromAddress Data Memorija Address Data

Intel 8086

Periferija Address Data A D

HOLD HLDA

DMA

Na slici nije prikazan adresni le , ali se podrazumeva da on postoji unutar procesora.

DMA ciklusDMA transfer se obavlja na slede i na in:DMA kontroler zahteva od procesora da mu omogu i pristup magistrali tako to aktivira signal HOLD (pin31). Kada procesor primi signal HOLD, zavr ava teku i ciklus na magistrali i aktivira signal HLDA (Hold Acknowledge - pin30), ime predaje magistralu DMA kontroleru. Dok DMA kontroler koristi magistralu, procesor ne sme da joj pristupa (ne mo e da pristupa memoriji u cilju upisa ili itanja), ali mo e da nastavi sa obradom podataka koji se trenutno u njemu nalaze. Kada zavr i DMA ciklus, DMA kontroler deaktivira HOLD signal, ime osloba a magistralu i predaje je procesoru.

Mehanizam prekida (1)Problem Ve ina periferija je znatno sporija od procesora. Ukoliko procesor treba da po alje podatke nekoj periferiji, na primer tampa u da ih od tampa, procesor mora da sa eka da periferija zavr i svoj posao, tj. tampanje prispelih podataka, kako bi poslao nove podatke za tampanje. ekanje na periferiju (dok ona obavi svoj posao) predstavlja izgubljeno vreme za procesor, jer je on tada besposlen. Re enje Navedeni problem se re ava uvo enjem mehanizma prekida koji omogu ava efikasniji rad ra unara sa periferijama. Kori enje prekida omogu ava procesoru da izvr ava druge instrukcije za vreme dok periferija obavlja svoj posao.

Mehanizam prekida (2)Zahvaljuju i mehanizmu prekida, procesor ne eka na osloba anje periferije, ve opslu uje periferiju na njen zahtev. Mehanizam prekida radi na slede i na in: Kada periferija postane spremna za prijem novih podataka od procesora, ona to signalizira procesoru slanjem zahteva za prekid. Po prijemu zahteva, procesor na kratko prekida izvr avanje teku eg programa i vr i skok na program koji se naziva prekidna rutina. U prekidnoj rutini opslu uje se periferija koja je zahtevala prekid, a nakon toga procesor se vra a tamo gde je stao u programu koji je izvr avao i nastavlja sa radom.

Mehanizam prekida (3)Postoje dve vrste prekida:spolja nji ili eksterni prekidi Ovo su prekidi koji dolaze od periferija. unutra nji prekidi Ovi prekidi mogu biti posledica izvr avanja instrukcije prekida, ili posledica neke neregularnosti u izvr avanju teku e instrukcije.

Eksterni prekidiProcesor Intel 8086 ima dve linije za eksterne prekide: INTR (Interrupt Request pin18) NMI (Not Masked Interrupt pin17)

INTR (1)Linija INTR je obi no povezana sa programabilnim kontrolerom prekida (Intel 8259). Uloga kontrolera prekida je da prihvata zahteve za prekidima upu ene od strane periferija koje su sa njim povezane. Nakon dobijanja zahteva, kontroler odre uje koji od pristiglih zahteva ima najvi i prioritet i ukoliko je pristigli zahtev vi eg prioriteta od prioriteta zahteva koji se trenutno obra uje, aktivira liniju INTR.

INTR (2)Intel 8086 Kontroler prekidam1 Periferija 1 Periferija 2 Periferija 3Prioritetni 8 koder

m2 m3

Data

256/8mn Periferija n

INTR INTA

Na slici nije prikazan na in povezivanja procesora Intel 8086 sa kontrolerom prekida.

INTR (3)Nakon aktiviranja linije INTR, procesor prihvata ili ne prihvata zahtev za prekidom u zavisnosti od vrednosti IF flega u PSW registru. Ako je navedeni fleg postavljen na 1, zahtev se prihvata, a ako je 0, zahtev se ignori e. Ukoliko procesor prihvati zahtev, najpre zavr ava izvr avanje teku e instrukcije. Stoga vreme potrebno da procesor prihvati prekid (vreme ka njenja prekida) zavisi od du ine instrukcije koja se trenutno izvr ava (najve e je ka njenje za instrukcije mno enja i deljenja). Nakon toga, procesor odgovara na zahtev aktiviranjem linije INTA (Interrupt Acknowledge pin24), ime se kontroler prekida obave tava da na magistralu podataka treba da postavi 8-bitni podatak koji predstavlja kod prekida i nosi informaciju o tome koja periferija je zahtevala prekid.

INTR (4)Na osnovu koda prekida dobijenog sa magistrale podataka, procesor odre uje koju prekidnu rutinu treba da pozove (onu koja odgovara periferiji koja je zahtevala prekid). Ukoliko tokom izvr avanja jedne prekidne rutine stigne zahtev vi eg prioriteta od onog koji se izvr ava, kontroler prekida e ponovo aktivirati liniju INTR i procesor e pre i na izvr avanje nove prekidne rutine. Kada je zavr i, procesor e se vratiti na prethodnu prekidnu rutinu, a kada i nju odradi, vrati e se na izvr avanje glavnog programa.

INTR (5)Procesor ima mogu nost da maskira pojedine prekide tako to kontroleru prekida alje odgovaraju u komandu. Maskirani prekidi se ignori u od strane kontrolera prekida i informacija o njihovom pojavljivanju se ne prosle uje procesoru. Prekid se maskira bitom maske mi na ulazu logi kih I kola tako to se taj bit postavi na vrednost 0.

Kontroler prekidam1Prioritetni 8 koder

Periferija 1 Periferija 2 Periferija 3

m2 m3

256/8mn Periferija n

NMIEksterni prekidi do procesora mogu sti i i po NMI liniji. U ovom slu aju re je o prekidima koji mogu da imaju katastrofalne posledice po procesor, na primer informacija o gubitnku napajanja, gre ka prilikom transfera na magistrali, gre ka u radu memorije, itd. Prekidi koji sti u po NMI liniji su nemaskiraju i, tj. ne postoji mogu nost da budu maskirani. Oni se ne mogu zabraniti ni IF flegom u PSW registru. Prekidi koji sti u po NMI liniji su vi eg prioriteta od bilo kog prekida koji sti e po INTR liniji, to zna i da u slu aju istovremenog pristizanja prekida sa obe linije, najpre se obra uje prekid koji je stigao po NMI liniji.

Interni prekidiInterni prekidi se generi u prilikom izvr avanja instrukcije internog prekida, tj. asemblerske instrukcije INT. Instrukcija sadr i kod prekida na osnovu koga procesor prelazi na izvr enje odre ene prekidne rutine (podprograma). Interni prekidi su vi eg prioriteta od eksternih prekida. Ukoliko u toku izvr avanja internog prekida, po nekoj od linija za eksterne prekide stigne zahtev za prekidom, prvo se procesira interni prekid, pa se tek onda prihvata zahtev za eksternim prekidom koji je najvi eg prioriteta.

Tabela prekida (1)Tabela prekida Interrupt Pointer Table je tabela koja uspostavlja vezu izme u koda prekida i prekidne rutine (programa) koju treba izvr iti da bi se opslu io taj prekid. Na osnovu koda prekida, iz tabele prekida se mo e dobiti adresa u memoriji na kojoj se nalazi prekidna rutina koju treba izvr iti. Tabela prekida ima 256 ulaza, za svaki tip prekida po jedan ulaz. Ona se uvek nalazi u prvom kilobajtu memorije. Za pam enje adrese prekidne rutine koriste se 4 bajta.

Tabela prekida (2)Adresa memorijske lokacije

4 bajta

0 Adresa prekidne rutine iji je kod 0 4 Adresa prekidne rutine iji je kod 1 8 Adresa prekidne rutine iji je kod 2 12 Adresa prekidne rutine iji je kod 3 . .

. .ostatak memorije

1020 Adresa prekidne rutine iji je kod 255 1024

.

.

uvanje konteksta procesora (1)Kad procesoru stigne zahtev za prekidom i on ga prihvati, pre nego to pre e na izvr avanje odgovaraju e prekidne rutine, procesor mora da sa uva kontekst u kome je izvr avao teku i program. Kontekst obuhvata: sadr aj PSW (Precessor Status Word) registra trenutnu vrednost IP (Instruction Pointer) registra

uvanje konteksta procesora (2)Kontekst je neophodno sa uvati kako bi, nakon zavr etka prekidne rutine, procesor znao odakle treba da nastavi izvr avanje glavnog programa i kakav je bio status nakon poslednje operacije koju je ALU izvr ila pre prekida. Restauriranje konteksta je potrebno zato to prilikom izvr avanja prekidne rutine obi no dolazi do promene sadr aja PSW registra, pa bi registar odslikavao osobine rezultata poslednje operacije u prekidnoj rutini, a ne osobine rezultata operacije izvr ene neposredno pre prelaska na prekidnu rutinu.

uvanje konteksta procesora (3)Kontekst procesora se uva u posebnom delu memorije koji se naziva stek (stack). Neposredno pre izvr avanja prekidne rutine, sadr aji PSW i IP ragistara se automatski alju na stek. Po zavr etku prekidne rutine se, tako e automatski, reinicijalizuju. U praksi se na steku uvaju i sadr aji pojedinih registara op te namene, ali to mora da nalo i korisnik (programer) softverskim putem. U zavisnosti od tipa prekida, programer utvr uje koji registri mogu promeniti stanje tokom izvr avanja prekidne rutine i njih eksplicitno sme ta na stek. Tako e, programer mora sam da reinicijalizuje ove registre softverskim putem po povratku iz prekidne rutine.

uvanje konteksta procesora (4)Vrh steka

PSW prekidne rutine koja je poslednja prekinuta Podaci se uvek upisuju na vrh steka. Stek podr ava LIFO (last in, first out) disciplinu pristupa, tj. sa steka se najpre uzima podatak koji je poslednji stavljen na stek. IP prekidne rutine koja je poslednja prekinuta

PSW druge prekidne rutine IP druge prekidne rutine PSW prve prekidne rutine IP prve prekidne rutine PSW glavnog programa IP glavnog programa

Dno steka