Mikroprocesori i programiranje

Slides:



Advertisements
Similar presentations
Prof: doc.dr. Samir Lemeš student: Samir Hrnjić. System restore je komponenta Microsoftovih operativnih sistema Windows Serveri ne podržavaju opciju System.
Advertisements

Block diagram of 8086.
Intel 8086 (8088) Microprocessor Structure
1.1. OSNOVNE KOMPONENTE RAČUNARA
Introduction to the processor and its pin configuration
COURSE OUTCOMES OF Microprocessor and programming
8086 MICROPROCESSOR ARCHITECTURE & SEGMENTATION
Matična ploča Mina Mirković I6.
Arhitektura i organizacija računara
8086 Features It is a 16 bit μp. It is manufactured with H-MOS technology has a 20 bit address bus can access up to 220 memory locations ( 1 MB)
32-bitni mikrokontroleri i primena - MS1BMP 2. deo
Struktura i princip rada računara
Pretraživanje interneta
Petlje WHILE – WEND.
FLASH MEMORIJE ili Flash EEPROM Nešto o flash memorijama.
Struktura i princip rada računara
Java Hello world !.
Algoritamske/programske strukture
Algoritmi raspoređivanja
Arhitektura računarskog sistema
32-bitni mikrokontroleri i primena - MS1BMP 2. deo
Grafičke kartice.
v.as.mr. Samir Lemeš Univerzitet u Zenici
Arhitektura i organizacija računara
OPIS KONAČNIH AUTOMATA POMOĆU VHDL-a
Programiranje - Blokovi naredbi i logički tipovi –
Pojam DBMS. Relacione baze podataka
IP šema adresiranja.
CheckBox RadioButton RadioGroup
Naredbe ciklusa.
OPERACIONI POJAČAVAČI SA DIFERENCIJALNIM ULAZOM I IZLAZOM
REPEAT…UNTIL Naredbe ciklusa.
Internet mreže, FTN - KZI
Programi,Podaci,Varijable,Računanje - 2
Karakteristike RISC procesora
KREIRANJE OBJEKATA.
32-bitni mikrokontroleri i primena - MS1BMP
Uvod u programiranje - matematika – X predavanje
Reference ćelije i opsega
14 UNUTRAŠNJE I ANONIMNE KLASE
Elementi programskog jezika PASCAL
Arhitektura računarskog sistema
Standardne kombinacione mreže
Arrays and strings -1 (nizovi i znakovni nizovi)
Predstavljanje instrukcija i načini adresiranja
Arhitektura računarskog sistema
Struktura MAC adrese i Ethernet okvira
Naredba Case Višestruko grananje.
Organizacija sistema zasnovana na
32-bitni mikrokontroleri i primena
Upravljanje marketingom u bankarstvu
M-datoteke.
MessageBox.
Organizacija adresnog prostora (2)
Ključne reči,identifikatori, konstante i promenljive
Internet FTP usluga.
1.6. Pohrana podataka.
PROGRAMSKI JEZIK PASCAL
32-bitni mikrokontroleri i primena - MS1BMP
MATEMATIČKI FAKULTET, UNIVERZITET U BEOGRADU
ELEKTRONIČKA POŠTA ( ) OTVARANJE RAČUNA.
Osnovni simboli jezika Pascal
Do While ... Loop struktura
MagistralA (bus) Milan Milovanovic I6.
Skup instrukcija procesora
Fakultet elektrotehnike i računarstva
ARHITEKTURA NA RAZINI LOGIČKIH SKLOPOVA
Programiranje - Naredbe za kontrolu toka programa – 3. dio
Ponavljanje Pisana provjera
8086 microprocessior PIN OUT DIAGRAM OF  Power supply and frequency signals  It uses 5V DC supply at V CC pin 40, and uses ground at V SS pin.
Presentation transcript:

Mikroprocesori i programiranje Prof. dr Zoran Lovreković

Tromagistralna arhitektura mikroprocesora Sistemski bus ili magistrala je fizička grupa signalnih linija koje se koriste za prenos signala unutar sistema. Zbog različitih grupa signala koji se koriste u sistemu, većina mikroprocesorskih sistema koristi tromagistralnu sistemsku arhitekturu koja se sastoji od: Adresnog busa Data busa Kontrolnog busa

Tromagistralna arhitektura mikroprocesora

Adresni bus Adresni bus je skup digitalnih linija kojima se prenosi adresna informacija i to samo u jednom smeru, od mikroprocesora ka memorijama ili U/I jedinicama Mikroprocesor na magistralu postavlja adresnu informaciju čime se precizno definiše i određuje put komunikacionih podataka na data busu Dakle, pomoću adresnog busa se uključuje određeni hardver u sistemu koji će da pošalje informaciju ka mikroprocesoru ili je primi od mikroprocesora Informacija koja se šalje ili prima naziva se podatak i nalazi se na data busu

Adresni bus

Data bus Funkcija data busa je da omogući prenos informacija koje se izmenjuju između mikroprocesora i spoljneg hardvera odabranog adresnim busem. U određenom trenutku mikroprocesor može da prima ili šalje podatke preko data busa, što znači da je data bus dvosmeran. Sve linije data busa, u određenom trenutku, mogu da se koriste samo u jednom smeru, od mp-a ka memoriji ili izlaznoj jedinici, odnosno od memorije ili ulazne jedinice ka mp-u..

Data bus

Kontrolni bus Postoje, u suštini, četiri različite mogućnosti prenošenja podataka u mikroprocesorskom sistemu: Mp šalje podatke u memoriju Mp prima podatke iz memorije Mp šalje podatke na izlaznu jedinicu Mp prima podatke sa ulazne jedinice U jednom trenutku, može se izvršavati samo jedna od ove 4 funkcije Signali kontrolnog busa je da definiše koja od 4 napred navedene funkcije se trenutno odvija u Mp sistemu

Funkcionisanje tromagistralne arhitekture Pet je osnovnih funkcija koje se obavljaju u Mp sistemima: Upis podataka u memoriju Čitanje podataka iz memorije Upis podataka u izlaznu jedinicu Čitanje podataka iz ulazne jedinice komunikacija između internih registara mikroprocesora

Upis podataka u memoriju Da bi se podaci upisali u memoriju, potreban je sledeći redosled radnji: Stanja signala na linijama adresnog busa moraju biti stabilna (naponski nivoi na adresnim izvodima memorije ne smeju da budu u prelaznom stanju). Naponski nivoi (logička stanja) signala na adresnom busu definišu fizičku lokaciju unutar memorije gde će se izvršiti upisivanje podataka.

Upis podataka u memoriju Podaci koje treba upisati u memoriju, postavljaju se na data bus, odnosno na izvode memorijskog kola. Preko kontrolnog busa se šalje odgovarajući signal na odgovarajući izvod memorijskog kola, čime se vrši upis podataka na adresiranu memorijsku lokaciju Vremenski dijagrami signala na ova tri busa prikazani su na sledećoj slici:

Upis podataka u memoriju

Čitanje podataka iz memorije Čitanje podataka iz memorije je inverzno upisu podataka u memoriju Da bi se ono ostvarilo, potrebno je sledeće: Mikroprocesor postavlja adresu memorijske lokacije iz koje se traže podaci, na adresni bus. Adresna informacija mora da bude stabilna, kao i kod upisa podataka u memoriju Data bus mora biti spreman da prihvati podatke sa adresirane mem. lokacije (Mp prelazi u mod za prihvatanje podataka –data izvodi na Mp-u sada se ponašaju kao ulazi)

Čitanje podataka iz memorije Kontrolni bus šalje signal odgovarajućeg logičkog nivoa na odgovarajući izvod memorije čime memoriji daje informaciju da je sve spremno za postavljanje podataka na data bus. Dijagram koji pokazuje oblik i redosled izvršenja signala na tromagistralnoj sabirnici mikroprocesora prikazan je na sledećoj slici:

Čitanje podataka iz memorije

Upis podataka u izlaznu jedinicu Pod izlaznom jedinicom se podrazumeva bilo koje odredište osim memorije, koje služi za prenos podataka iz Mp-a u spoljni svet. To može biti ekran, , štampač, ili obična led dioda, na primer. Kad mikroprocesor upisuje podatke u izlaznu jedinicu, redosled radnji je skoro isti kao kod upisivanje podataku u memoriju:

Upis podataka u izlaznu jedinicu

Čitanje podataka iz ulazne jedinice Ulazna jedinica može biti bilo koji izvor, osim memorije, koji može da šalje podatke ka mikroprocesoru (na primer tastatura, ili A/D konvertor). Podaci se iz ulazne jedinice šalju Mp-u kada je to zahtevano. Čitanje podataka iz ulazne jedinice je vrlo slično čitanju podataka iz memorije. Vremenski dijagrami signala na tromagistralnoj sabirnici prikazani su na sledećoj slici:

Čitanje podataka iz ulazne jedinice

Komunikacija između internih registara Kod ovakvih operacija, prenos podataka se obavlja unutar samog mikroprocesorskog kola i ne koristi se ni jedan sistemski bus. Primer ovakve radnje je operacija sabiranja (ADD instrukcija). Sadržaj nekog internog registra se dodaje sadržaju registra A (akumulator) i rezultat se upisuje u akumulator.

Mikroprocesor 8086 Jedan Mp možemo opisati pomoću: njegovog skupa registara i njihove funkcije, putevima između registara, nizom operacija koje se izvode nad binarnim podacima smeštenim u registre, i upravljačkim signalima (funkcijama) koji rukovode tim operacijama

Mikroprocesor 8086 Pod c. spada i skup informacija, načini adresiranja, tipovi podataka, itd... Većina današnjih Mp-a opšte namene je istog tipa arhitekture čiji su standardni elementi sledeči: Upravljačka jedinica (CU) ALU jedan ili više A skup registara opšte namene adresni registri interne sabirnice

Mikroprocesor 8086 8088 je 16bitni Mp sa 8bitnim data busom, ali na osnovu onga što “vidi” programer, ovaj Mp je 16bitni 8086 je 16bitni sa 16bitnim data busom Pod arhitekturom Mp-a podrazumeva se sve ono što programer u asembleru mora znaeti o procesoru da bi napisao program koji uvek daje isti rezultat bez obzira na realizaciju Mp (sistema) Svrha registara je povećanje brzine rada zbog smanjenja komuniciranja Mp-a sa memorijom

Registri Mp-a 8086

Registri Mp-a 8086 Ax (accumulator), Bx (base), Cx (count), i Dx (data) su 16bitni registri za podatke (adresabilni) Ovi registri se mogu adresirati i kao 8bitni Dakle, programi pisani za 8080 ili 8085 mogu da rade i na 8086 (8088) Bilo koji od Ax, Bx, Cx, i Dx može se upotrebiti za izvršavanje aritmetičkih i logičkih operacija, i pri tome se može raditi sa 16 ili sa 8bitnim podacima Ipak, sva 4 od ovih registara imaju svojih specifičnosti:

Registri Mp-a 8086 Cx u nekim slučajevima služi za brojanje (string operacije) Svi podaci koji ulaze u Mp ili izlaze iz Mp-a, moraju proći kroz Ax Dx sadržava adresu I/O vrata (porta) Podaci iz stek registara (SP-Stack pointer, i BP-Base pointer) i indeksnih registara (SI-Source index i DI-Destination index)kombinuju se sa podacima iz određenih registara BIU (BUS Interface Unit), odnosno oni služe kao “pomak” koji se dodaje sadržaju odgovarajućih segmentnih registara (relativno adresiranje)

Registri Mp-a 8086 Vrednosti zapisane u ova 4 registra se mogu programski menjati ili modificirati, pa se tako formiraju potrebne adrese. Ovo se obavlja u EU (Execution unit) pre prelaska na izvršenje neke naredbe To znači da sama instrukcija može sadržati ne adresu operanda, nego adresu registra u kome se nalazi ta adresa Sp služi za pokazivanje na aktivnu adresu steka. Ovu adresu ne pokazuje samostalno, već se njegov sadržaj sabira sa sadržajem SS (Stack segment) registra.

Registri Mp-a 8086 Slično se upotrebljava i BP (Base pointer), samo se njime adresira ne vrh, već unutrašnjost steka. SI (Source index) služi za adresiranje izvornog (Source) operanda, a DI (Destination Index) za adresiranje odredišnog operanda. Adresiranje je relativno u odnosu na DS (Data egment) registar u BIU. Stek najčešće “raste” naniže, odnosno dekrementira se pri stavljanju podataka naredbom PUSH Pošto SP radi sa 16bitnom adresom, to se dekrementiranje (i inkrementiranje) vrši sa 2.

Bus Interface Unit (način adresiranja) Address bus Mp-a 8086 ima 20 bita. To znači da se može adresirati 220=1Mbajt pošto 8086 operiše sa 16bitnim rečima, jedna reč nije dovoljna za celo Mbajtno područje zato je memorija podeljena na segmente od po 64Kbajta početna adresa svakog segmenta određena je odgovarajućim segmentnim registrom: -CS (Code segment-segment instrukcije), DS (Data segment), SS (Stack segment) i ES (Extra segment-posebni segment)

Bus Interface Unit (način adresiranja) znači adresa, naprimer instrukcije, dobije se kombinovanjem sadržaja PC i CS registara. To implicira da od ukupne 1Mbajt memorije, aktivna su uvek samo 4 segmenta od po 64Kbajta. područje bilo kog segmenta se može pomeriti zapisivanjem novog podatka u odgovarajući segmentni registar (početna adresa segmenta).

Način upotrebe memorije i adresiranja Adresno područje sastoji se od 1Mbajta sa adresama od 00000(16) do FFFFF(16) . Dužina podatka u svakoj lokaciji je 8bita. Ako se radi sa 16bitnim rečima, onda se one smeštaju u dva susedna bajta.

Način upotrebe memorije i adresiranja Početna adresa segmenta je: za instrukcije u CS za podatke u DS za stek u SS posebni u Es Adresa unutar segmenta dobija se dodavanjem “pomaka” iz odgovarajućeg registra (SP, BP, SI, DI, i PC), na početnu adresu segmenta.

Način upotrebe memorije i adresiranja To su takozvani “tekući” segmenti. Pošto su i segmentni registri 16bitni, a adresa 20bitna, mora se učiniti još sledeće: -sadržaju segmentnog registra dodaju se na mesta najmanje težine četiri bita nula (sva 4 bita su nule).

Način upotrebe memorije i adresiranja To znači da samo svaka 16-ta adresa može biti početna adresa segmenta. Na tu, početnu adresu segmenta XXXX0, dodaje se 16bitni pomak koji može odrediti bilo koju adresu unutar memorijskog segmenta od 64K. Sabiranje se obavlja u namenskom sabiraču adrese, kako je prikazano na sledećoj slici:

Način upotrebe memorije i adresiranja

PSW (Programm Status Word) registar Ovaj registar naziva se još i registar stanja, ili Flag registar (registar zastavica) njime se iskazuju neka stanja koja nastaju pri obradi podataka PSW je 16bitni, ali se ustvari upotrebljava samo 9bitova, i to: 6 zastavica statusa (status flags) 3 upravljačke zastavice

PSW (Programm Status Word) registar

PSW (Programm Status Word) registar Redosled zastavica u PSW registru je: XXXX OF DF IF TF SF ZF X AF X PF X CF Statusne zastavice: CF=Carry flag- postavlja se u stanje 1 ako se dogodi prenos iz najznačajnijeg bita pri izvedbi aritmetičkih operacija ili pri posuđivanju PF=Parity flag-postavlja se u stanje 1 ako rezultat dobijen izvođenjem instrukcije ima paran paritet (broj jedinica u rezultatu je paran broj)

PSW (Programm Status Word) registar AF=Auxilary carry flag-postavlja se u stanje 1 ako se desi prenos iz 4 niža u 4 viša bita ili posuđivanje iz 4 viša bita u 4 niža bita u bajtu manje težine 16bitne reči ZF=Zero flag-postavlja se u stanje 1 kada je rezultat izvođenja instrukcije 0 SF=Signal flag-postavlja se u stanje 1 ako je rezultat manji od nule, a 0 ako je rezultat veći od nule. Ovo je ustvari kopija bita najveće težine OF=Overflow flag-postavlja se u stanje 1 ako je rezultat, tretiran kao broj sa predznakom, izvan dopuštenog područja

PSW (Programm Status Word) registar Upravljačke zastavice: IF=Interrupt flag-ako je =0, INT se ne prihvata, a ako je =1, INT se može prihvatiti DF=Direction flag-određuje smer odvijanja “string” operacija. Za DF=0, ove instrukcije automatski smanjuju adresu, pa se podaci obrađuju od više adrese ka nižoj, i obrnuto TF=Trap flag-ako je =1, omogućuje izvršenje izvođenja programa “korak po korak”, t.j. jedne po jedne naredbe. Ovo može poslužiti za doterivanje programa

Adresiranje i skup instrukcija P 8086 kod 8086 I/O i M prostor su razdvojeni Svaki periferijski uređaj vezuje se u P sistem preko kontrolera. uloga kontrolera je da bez obzira na vrstu i tip periferijskog uređaja P prema spolja “vidi” isto. da bi se ovo ostvarilo, kontroleri treba da imaju: za prihvat podataka: -data registar za dobijanje informcija o režimu rada: -status registar za određivanje režima rada kontrolera: -control registar

Adresiranje i skup instrukcija P 8086 kontroler Data registar CPU Control registar Status registar

Adresiranje i skup instrukcija P 8086 kontroleru se dodeljuje adresa u I/O prostoru, ili u prostoru zajedničkom sa memorijom. kod P 8086 adrese portova se specificiraju naredbama IN i OUT, što znači da je ovo I/O prostor, razdvojen od memorijskog prostora. IN i OUT pored adrese kontrolera uključuju i dodatnu liniju koja omogućuje da memorija sa istom adresom zna da to nije za nju

Adresiranje i skup instrukcija P 8086 skup instrukcija za P 8086 sadrži 97 osnovnih tipova instrukcija ove instrukcije omogućuju rukovanje bitovima, rečima i nizovima skup instrukcija možemo podeliti na 6 podskupova: instrukcije za prenos podataka aritmetičke instrukcije logičke instrukcije instrukcije za rukovanje nizovima instrukcije za prenos upravljanja instrukcije za upravljanje procesorom

Adresiranje i skup instrukcija P 8086 Instrukcije koje trebaju 2 operanda, omogućuju da jedan od njih bude smešten u: registru memoriji, pri čemu je drugi operand u registru ili je konstanta u instrukcijskoj reči kao usputni podatak, u svim operacijama sa dva operanda izuzev množenja, deljenja i operacija sa nizovima

Organizacija P 8086 P 8086 i P 8088 imaju istu arhitekturu, razlikuju se samo u nekim detaljima (napr. 8088 ima 8bitnu, a 8086 16 bitnu magistralu podataka, nije im isti instrukcijski red čekanja, itd.) P 8086 je podeljen na dve celine: BIU (Bus Interface Unit) EU (Execution Unit), kako je prikazano na sledećoj slici

Organizacija P 8086

Organizacija P 8086 uvođenjem segmentnih registara, omogućeno je da se adresira 220 memorijskih lokacija to znači da za adrese treba 20 pinova za podatke treba 16 pinova kako je P 8086 čip sa 40 pinova, očigledno je da po istim linijama moraju ići i adresni i data vodovi to znači da postoje posebni ciklusi za adresiranje i za prenos podataka

Opis priključaka P 8086 rad BIU, a time i P-a u celini, kontroliše se priključkom MN/MX, kojim se selektuje minimalni ili maksimalni način rada P-a minimalni način rada: P generiše memorijske cikljuse i sve upravljačke signale P generiše i signale za dodatne čipove potrebne zbog preklapanja adresnih i data linija minimalni način rada P 8086 je prikazan na sledećoj slici:

Opis priključaka P 8086

Opis priključaka P 8086 Priključci koji se koriste i u min. i u max. režimu rada: AD15-AD0=multipleksirane adresne i linije podataka A19/S6-A16/S3=multipleksirane adresne i statusne linije BHE/S7=BUS High Enable/Status –ako je aktivan BHE, koristi se samo bajt veće težine reči podatka RD= kontrola čitanja

Opis priključaka P 8086 TEST=ulazni signal, u vezi sa 8087, utvrđuje da li je koprocesor završio instrukciju koju je inicirao 8086 ova linija može biti testirana instrukcijom tipa “wait for test”. za TEST=1, P miruje, dok ne bude TEST=0, kada P nastavlja sa radom (znači 8087 šalje signal na TEST.) 8086 i 8087 jedno vreme rade paralelno, a kada 8086 zahteva rezultat od 8087, ide wait)

Opis priključaka P 8086 RADY=ulazni signal, koji se koristi u radu sa sporim memorijama, kojima treba više od 4 takta vremena ovim signalom M javlja da joj treba više od 4 takta za kompletiranje memorijskog ciklusa RESET=ulaz kojim se od spolja P može dovesti u početno stanje NMI i INT=na maskirajući i maskirajući zahtev za interaptom CLK= takt iz takt oscilatora 8284

Opis priključaka P 8086 Priključci koji se koriste u minimalnom režimu rada: HOLD= ulazni signal na koji DMAC upućuje zahtev P-u da pređe u 3-state stanje i prepusti upravljanje magistralom DMAC-u HOLDA= izlazni signal, kojim P odgovara DMAC-u da odobrava njegov zahtev za magistralom P i DMAC zauzimaju magistralu samo koliko je to neophodno

Opis priključaka P 8086 P zauzme bus dok učita instrukciju, pa ga preda, opet ga zauzme dok dok učita I operand, preda, uzme bus i učita II operand, itd... u ostalim vremenskim intervalima pristup BUS-u ima DMAC pri HOLD=0, DMAC vraća magistralu P-u WR= upis u M ili u I/O M/IO= ako je 1, adresirana je memorija, a ako je 0, adresiran je I/O. I/O i M prostor su kod P 8086 razdvojeni. Zato RD i WR važe i za M i za I/O, a ovom komandom se vrši njihovo usmeravanje

Opis priključaka P 8086 znači, moguće je adresirati istu adresu, ali koja se odnosi na: memoriju ulazno/izlaznu jedinicu, i to: instrukcijama IN i OUT nekom memorijskom naredbom znači, M/IO daje kriterijum kojom instrukcijom je generisana data adresa DT/R=predaja/prijem podataka (data transmit/receive. Ovaj signal generiše direktno 8086

Opis priključaka P 8086 DEN=Data Enable, izlazni priključak, dozvola za podatke ALE= Address Latch Enable-izlazni priključak, “otvaranje” adresnog leča da se u njega upiše (upamti) adresa ALE=1 je obaveštenje spoljnim elementima da je na adresnom bus-u valjana adresa INTA= Interrupt Acknowledge, izlazni signal, potvrda prekida P ovaj signal šalje periferiji, da bi ona poslala INT vektor

Opis priključaka P 8086 Maksimalni način rada: RQ/GT0 i RQ/GT1=Request/Grant Buss Access Control- zahtev/dodeljivanje kontrole pristupa sabirnici -predstavljaju zamenu za signale HOLD i HOLDA u minimalnom režimu rada, i bidirekcioni su-po istoj liniji idu i zahtev i dozvola prvenstveno su namenjeni za multiprocesorski i koprocesorski rad skevenca request/grant se ralizuje u tri faze: zahtev dodeljivanje oslobađanje

Opis priključaka P 8086 procesor koji zahteva magistralu generiše zahtev sa RQ/GT0(1)=0 po istoj liniji P generiše povratni impuls, ukazujući da je ušao u HOLD stanje, odnosno vrši priznavanje zahteva i oslobađa magistralu BIU se za ovo vreme isključuje sa magistrale, a EU nastavlja rad sve dok ne naiđe na neku instrukciju koja zahteva korištenje magistrale, ili dok se ne isprazni instrukcijski red čekanja

Opis priključaka P 8086 kada procesor koji je zahtevao magistralu, obavi svoj zadatak, on generiše treći po redu impuls RQ/GT0=0, obaveštavajući P da može nastaviti prekinutu aktivnost RQ/GT0 je višeg prioriteta odRQ/GT1, dok su oba višeg prioriteta od interapt ulaza šema konfiguracije za maksimalni način rada data je sledećom slikom, nakon čega sledi objašnjenje ostalih priključaka P 8086 u maksimalnom režimu rada

Opis priključaka P 8086 Maksimalni režim rada 8086

Opis priključaka P 8086 LOCK=zaključano-koristi se kada višestruke pristupe na magistrali od strane neke instrukcije treba učiniti nedeljivim signal sa ove linije koriste drugi kontroleri sabirnice kao znak da ne trebaju zahtevati kontrolu nad sabirnicom ova linija ostaje aktivna do završetka instrukcije koja sledi iza instrukcije LOCK (dok se ne završi naredba sa prefiksom LOCK) da bi se omogućila primena LOCK mogućnosti, P mora na magistralu biti vezan preko BUS arbitra 8289

Opis priključaka P 8086 S2-S0= statusne linije za dekodovanje upravljačkih signala od strane BUS kontrolera 8288 pored generisanja DT/R, DEN i ALE signala postojećih u minimalnom režimu, BUSC generiše i S2-S0 signale, kako je to prikazano i objašnjeno na sledećoj slici:

Opis priključaka P 8086

Opis priključaka P 8086 QS1 QS0 0 0 vrsta aktivnosti 0 0 aktivnost ne postoji 0 1 prvi bajt opkoda uzima se iz reda čekanja prazan red čekanja 1 1 uzima se sledeći bajt instrukcije prefiks A u AIOWC i AMWTC ukazuje da se ovi signali generišu ranije (traju duže od standardnih) QS0 i QS1= Queue Status-daju status instrukcijskog reda čekanja, prema sledećoj tabeli:

Opis priključaka P 8086 tipičan primer koprocesiranja je korištenje 8087. i 8086 i8087 koriste zajednički instrukcioni niz svaki procesor analizira proces pripreme instrukcije, sa ciljem da odredi dali on ili drugi procesor treba da izvrši instrukciju nadgledanjem linija QS0 i QS1 koprocesor dobija i dekoduje instrukcije iz reda čekanja u sinhronizmu sa 8086 znači oba procesora vrše pripremu i dekodovanje instrukcijskog niza paralelno kada 8087 dekoduje instrukciju ESCAPE, on počinje sa procesiranjem

Opis priključaka P 8086 dekodovanje se zasniva na tome da su prvih 5 bitova za sve instrukcije 8087 identični sve ostale instrukcije 8087 ignoriše 8086 kod ESCAPE instrukcija samo pristupa memorijskom operandu i postavlja ga na magistralu QS0 i QS1 se mogu koristiti i za potrebe emulacije dalje sledi još prikaz statusnih signala zajedničkih i za minimalni i za maksimalni režim rada:

Opis priključaka P 8086 Statusni signali zajednički i za MIN i za MAX režim rada: S3 i S4=određuju rip pristupa magistrali koji je u toku S5=identičan flagu IF iz PSW-a S6=0 - P koristi magistralu (kod multiproc. sistema) S3 S4 memorijski pristup 0 0 alternativni, koristi se ES steku, koristi se SS 0 1 programu, ili se ne vrši pristup (CS ili ne) 1 1 podacima, koristi se DS

Organizacija magistrala Tipičan BIU BUS ciklus, prikazan je na sledećoj slici

Organizacija magistrala Za vreme T1 vrši se upis adrese u poseban registar (address latch). Pri tome P generiše signal ALE Za vreme T2, ukoliko se vrši upis, samo se javlja WR (prelazak sa 1 na 0), a ako se vrši čitanje, interna logika se iz režima slanja prebacuje u režim čitanja, i javlja se RD (prelazak sa 1 na 0) Za vreme T3 i T4, po istim linijama po kojima je išla adresa, sada ide podatak (AD0-AD15) u smeru P-magistrala. Ako u tkou T1-T4 stigne zahtev od DMAC-a, P neće poslati signal odobrenja za preuzimanje magistrale HLDA, već će to uraditi (predati magistralu DMAC-u) teko posle T4.

Ciklus čitanja kod 8086 čitanje podataka ostvaruje se za vreme jednog BUS ciklusa (T1-T4) po linijama AD0-AD15 za vreme T1 šalje se adresa a za vreme T2 podatak

T1 T2 T3 T4

Ciklus čitanja kod 8086 Samo kada ALE signal prelazi sa 0 na 1 (prednja ivica signala) signal adrese sa ulaza prolazi na address latch prelaskom ALE sa 1 na 0 (zadnja ivica signala) vrši se zabravljivanje (LOCK), dakle tačno posred Address Out i nakon toga promene ulaza se ne manifestuju na izlaz u latch-u

Ciklus pisanja kod 8086 signal WR se pojavljuje istovremeno kada i podaci, i to u toku T2 nakon toga, prvo WR postaje neaktivan (prelazi sa 0 na 1), pa se zatim sklanjaju podaci dakle, upravljački signali dolaze posle adresnih i data signala, a odlaze pre njih!

T1 T2 T3 T4 A19-A16 S3-S7, BHE AD15-AD0 ALE M/IO DT/R DEN

Ciklus pisanja kod 8086 DT/R = data transmit/receive –kada je =1, pisanje (predaja) podataka, a kada je =0, čitanje (prijem) podataka T1 address latch Data/Addr T2,T3, iT4 trans./receive

Ciklus pisanja kod 8086 sa prethodne slike se vidi da postoji opasnost da u T1 kroz 8286/8288 (prijemnik/predajnik) prođe adresa kao podatak (WR) da bi se ova mogućnost otklonila, uvodi se DEN signal = data enable –dozvola za podatke, koji sa 1 na 0 prelazi tek u toku T2 ovaj signal u toku T1 zakoči 8286 na ovaj način i u prijemu sprečava da neki podatak sa DATA BUS-a ode u AddressLatch (RD)

Rad sa sporim memorijama Ako T1-T4 nije dosta da se kompletira cikljus čitanja ili pisanja za neku sporu memoriju ili drugi periferijski uređaj, tada se dešava sledeće: periferija šalje signal RDY (sa 1 na 0) kao signalizaciju da je spora-ovaj signal ide u 8284 (takt generator) Mp obezbeđuje produženje memorijskog (BUS) ciklusa, sve dok se RDY ne vrati na 1(8284 šalje RDYOUT) Između T3 i T4 ubacuju se ekstra taktovi Tw Zahtev RDY mora stići najkasnije do kraja T2

Upravljanje sabirnicom od strane DMAC-a u minimalnom režimu periferija DMAC-u upućuje zahtev za DMA prenosom DMAC šalje Mp-u zahtev za magistralom (HOLD) Mp po završetku tekuće instrukcije i obavljanju pripremnih radnji javlja DMAC-u da mu prepušta sabirnicu (HLDA), i stavlja se u 3state stanje prema sabirnici na sledećoj slici se vidi da po nailasku HOLD, Mp daje signal odobrenja tek po isteku T4 Ako se HOLD ne vrati na 0, tada je DMAC uzurpirao magistralu

Tidle

Upravljanje sabirnicom od strane DMAC-a u maksimalnom režimu Zamena za signale HOLD i HLDA je jedna bidirekciona linija RQ/GT sada se koprocesorski rad (ili komunikacija sa DMAC-om) obavlja kao na sledećoj slici

Objašnjenje BHE signala adresna reč 8086 je 20 bitna, dakle adresni prostor je 220 bajta pri tome: 19 bita čine adresu 16 bitnog podatka, a 20-ti bit, A0, pokazuje da li je reč o gornjem ili donjem bajtu adresirane reči podatka sada je, dakle, memorija fizički uređena u dve banke, parnu i neparnu, kao na sledećoj slici, a BHE i A0 su odgovrajući čip selekt signali

Objašnjenje BHE signala Neparno adresirana reč se prenosi iz dva magistralna ciklusa: prvo BHE=0, A0=1, zatim BHE=1, A0=0

Upotreba signala TEST i WAIT u višeprocesorskom radu najčešće se višeprocesorski sklopovi organizuju tako da prvi Mp vrši radnje I/O i memorijskog nadzora, a drugi Mp radi sve ostalo (glavni Mp) ova dva Mp-a se međusobno moraju dogovarati to se postiže softverski, mehanizmom semafora SEMAFOR=1-magistrala je zauzeta, SEMAFOR=0-magistrala je slobodna Mp kome je potrebna magistrala gleda u semafor, i kada vidi 0, postavi ga u 1, zauzme BUS, i kada završi posao, oslobodi BUS, i stavi semafor na 0

Algoritam preuzimanja magistrale MOV Al,1 WAIT: LOCK XCHG AL, SEMAPHORE TEST AL, AL JNZ WAIT ... MOV SEMAPHORE, 0

Algoritam preuzimanja magistrale ako se ne bi radilo pod LOCK-om, moglo bi se desiti sledeće: neko je zauzeo magistralu (semafor=1) mi uzmemo sadržaj semafora u AL u prvom memorijskom ciklusu sada onaj ko je držao zauzetu magistralu, oslobađa je i u semafor stavi 0 u drugom memorijskom ciklusu mi vraćamo 1 u semafor

Algoritam preuzimanja magistrale situacija je sada sledeća: BUS je slobodan, a u semaforu se nalazi 1 =zaglavljeno-nema niko pristup magistrali, a ona je ustvari slobodna! zato se razmena obavlja pod LOCK-om, a onaj sa 0 neka sačeka (nulu može da gurne tek pošto mi, koji smo uzeli sadržaj semafora, u njega stavimo 1

Korištenje instrukcija ESC (ESCAPE) i WAIT, i signala TEST ove instrukcije i signal služe za sinhronizaciju rada procesora 8086 i korpocesora 8087 kada se javi situacija da 8087 treba da izvrši neku instrukciju, MP inicira to uz pomoć instrukcije ESCAPE i 8086 i 8087 imaju BIU, i oba nadziru isti instrukcijski red čekanja 8087 stalno nadgleda INSTRUCTION QUEUE i analizira proces pripreme instrukcije sa ciljem da odredi da li instrukciju treba da izvrši on ili 8086

uz pomoć ESC, koju je aktivirao 8086, 8087 može da primi instrukciju od 8086 8086 postavlja adresu operanda nad kojim se treba izvršiti operacija i prepušta ga 8087-ci 8087 počinje svoj posao, a 8086 nastavlja dalje paralelno da radi svoj posao, sve dok mu ne zatreba neki rezultat od 8087. tada proverava da li je 8087 završio-ako jeste, produžava sa svojim radom ako 8087 još nije završio, 8086 izvršava instrukciju WAIT, proveravajući stanje TEST nožice kada počne sa radom, 8087 postavlja TEST na 1, a kada završi, postavlja ga na 0 prikazano grafički, to izgleda kao na sledećoj sl.:

Uloga magistrale prilikom Interapta periferija aktivira liniju zahteva za prekidom na sistemskoj sabirnici kontroler prekida prima zahtev i upoređuje njegov prioritet sa ranije pristiglim zahtevima ako je zahtev višeg nivoa od ostalih, ili je jedini, upućuje se MP-u Mp šalje dva INTA impulsa PIC-u. Prvi zamrzava prioritet i postavlja nivoe u privremenu memoriju kontrolera (service level latch), a drugim INTA Mp zahteva vrednost 8bitnog pokazivača za tabelu vektora prekida

5. pokazivač pokazuje u TABELU VEKTORA PREKIDA, na vrednost IP i CS za rutinu konkretnog prekida 6. Mp uzima novi IP i CS a tekući IP i CS sprema na STACK, kao i FLAG (PSW)registar, i vrši skok na prekidni podprogram. IP, CS i PSW se na stek postavlja hardverski (automatski). sadržaj registara opšte namene (8registara opšte namene) se na stek smešta programski registri koji su na stek bili smešteni hardverski, vraćaju se po izvršenju potprograma sa steka instrukcijom RTN (povratak iz interapta) ostali registri sa steka se vraćaju programski Interapt veltro tabela data je sledećom slikom:

Sekvenca prihvatanja interapta data je sledećom slikom:

signal LOCK koristi se samo u max. modu rada između 1. i 2. BUS ciklusa moguće je nekoliko (tipično 3)stanja čekanja (IDLE CLOCK STATES) interapt BUS ciklus je sličan RD ili WR ciklusu, samo umesto RD ili WR ide INTA u 1. ciklusu se na INTA=0 zamrzava prioritet i postavlja nivoe u service level latch PIC-a, u 2. ciklusu se na INTA=0 od strane PIC-a šalje Mp-u 8bitni vektor broj po linijama podataka u Mp-u ovaj vektor se množi sa 4 (SHL, SHL) i tako se dobija adresa u prethodnoj tabeli