Professional Documents
Culture Documents
ARS2 Priprava Na Ustni
ARS2 Priprava Na Ustni
Table of Contents
1 Zakaj vhod in izhod...........................................................................................................................4 2 Magnetni disk....................................................................................................................................4 2.1 Zgradba in format diska.............................................................................................................4 2.2 Dostop do podatkov...................................................................................................................5 2.3 Krmilnik diska...........................................................................................................................5 3 V/I krmilniki......................................................................................................................................6 4 Naslavljanje V/I naprav.....................................................................................................................6 4.1 Pomnilnisko preslikan V/I.........................................................................................................6 4.2 Loen V/I prostor.......................................................................................................................6 4.3 Posredno preko V/I procesorjev.................................................................................................7 5 Prenos V/I podatkov..........................................................................................................................7 5.1 Programski V/I...........................................................................................................................7 5.2 Programski V/I z uporabo prekinitev.........................................................................................7 5.3 DMA..........................................................................................................................................8 5.4 V/I procesorji.............................................................................................................................9 6 V/I procesorji..................................................................................................................................10 6.1 V/I procesorji pri IBM 370......................................................................................................10 6.1.1 Programiranje kanalov.....................................................................................................12 6.1.2 Aktiviranje kanalskega programa.....................................................................................13 6.2 V/I procesorji pri CDC Cyber 170...........................................................................................16 7 Prenosne poti...................................................................................................................................17 7.1 Osnovne vrste prenosov...........................................................................................................17 7.1.1 Sinhronski in asinhronski prenosi....................................................................................18 7.1.2 Eksplozijski in protokolski prenosi..................................................................................20 7.1.3 Izvorni sinhronski prenosi................................................................................................22 8 Osnovne lastnosti digitalnih vezij...................................................................................................24 8.1 Bipolarna tehnologija...............................................................................................................24 8.2 CMOS tehnologija...................................................................................................................25 8.3 Zakaj im manje napetosti......................................................................................................25 8.4 Slabosti TTL............................................................................................................................25 8.5 Odpornost proti sumu..............................................................................................................25 8.6 Vhodna obremenitev digitalnih vezij.......................................................................................25 8.7 Izhodi vrste tri-state in open collector.....................................................................................25 8.8 GTL..........................................................................................................................................26 9 Logina vezja...................................................................................................................................26 9.1 Kombinatorina vezja..............................................................................................................26 9.1.1 Multiplekserji in demultiplekserji....................................................................................26 9.1.2 Dekodirniki in kodirniki...................................................................................................26 9.2 Sekvencna vezja.......................................................................................................................26 9.2.1 Asinhronska sekvencna vezja...........................................................................................26 9.2.2 Sinhronska sekvencna vezja.............................................................................................26 10 Podajanje mikroprocesorjev..........................................................................................................27 10.1 Prekinitveni signali ...............................................................................................................28 10.1.1 Prekinitve pri 80486.......................................................................................................28 10.1.2 Motorola 68400 prekinitve.................................................................................................28 10.2 Prenosi pri 80486...................................................................................................................29 10.2.1 Bralni cikel.....................................................................................................................29 10.2.2 Pisalni cikel....................................................................................................................29 2
10.2.3 Eksplozijski cikel...........................................................................................................29 10.3 Pentium Pro - protokolski eksplozijski prenos......................................................................29 10.4 Quad Pump............................................................................................................................29 11 Bralni pomnilnik (ROM)...............................................................................................................30 Kako je shranjena informacija pri posameznih vrstah pomnilnika? .................................................30 11.2 EPROM..................................................................................................................................30 11.3 EEPROM...............................................................................................................................31 11.3.2 Kako delujeta EPROM in EEPROM? Podrobnosti, razlike?.........................................31 11.3.3 Kakna je razlika med "flash" EEPROM-om in "pravim" EEPROM-om?...................32 12 RAM..............................................................................................................................................33 12.1 SRAM....................................................................................................................................33 12.1.1 Razlika med SRAM in EEPROM .................................................................................33 12.2 DRAM...................................................................................................................................33 12.2.1 Page mode dostop .........................................................................................................35 12.2.2 Osvezevanje...................................................................................................................35 12.2.3 Kako vemo pri DRAM-u kdaj je podatek na razpolago?...............................................36 12.3 SDRAM.................................................................................................................................37 12.3.1 DDR SDRAM................................................................................................................38 12.3.2 Kako izvedemo navadne prenose (pri SDRAM-ih).......................................................38 12.3.3 DDR2 in DDR3..............................................................................................................39 12.3.4 Podajanje asovnih parametrov......................................................................................41 12.3.5 Standardizirane frekvence za DDR3..............................................................................41 12.3.6 Preslikava naslovov v pomnilnike lokacije pri DDR3.................................................41 12.3.7 Core i7............................................................................................................................42 13 Prikljuevanje pomnilnikih in drugih naprav..............................................................................42 13.1 Procesorji, ki ne uporabljajo protokolskega prenosa.............................................................42 13.2 Procesorji, ki uporabljajo protokolski prenos........................................................................42 14 Prekinitveni krmilniki....................................................................................................................43 14.1 PIC 6828 prekinitveni krmilnik.............................................................................................43 14.2 Vektorske prekinitve..............................................................................................................45 14.3 Intel PIC 8259A prekinitveni krmilnik..................................................................................46 15 Prenaanje podatkov z DMA.........................................................................................................49 15.1 Problemi pri DMA ................................................................................................................49 15.2 DMA PRENOSI.....................................................................................................................49 15.3 Vrste DMA prenosov glede na pot.........................................................................................51 15.4 Vrste DMA prenosov glede na casovno zaporedje dogodkov...............................................52
2 Magnetni disk
2.1 Zgradba in format diska
Razlikujemo med mehkimi (oppy) diski ter trdimi diski, vendar se vecinoma uporabljajo trdi diski. Informacija je obstojna, pocasnejsi je dostopni cas in hitrost prenosa, vendar je zato shranjevanje podatkov cenejse kot na obstojne pomnilnike. Trdi disk je sestavljen iz vecih plosc, ki se vrtijo s hitrostmi med 5400 in 15000 obrati na minuto. Vsaka povrsina plosce je razdeljena na na koncentricne kroznice, ki jim pravimo sledi. Stevilo sledi na povrsino je tipicno med 5000 in 20000. Vsaka sled je razdeljena na sektorje. To je najmanjsa enota, ki jo lahko beremo in pisemo. Stevilo sektorjev na sledi je tipicno med 50 in 200, najpogostejsa velikost sektorja je pa 512 B.
Stevilo sektorjev na sledi imenujemo format diska, ki ga sestavljajo seostale stvari: - Servozapis. Iz tega dobi glava informacijo s pomocjo katere postavi glavo tocno na sredino sledi. Servozapis je deloma na sledi in delomana prostoru med sledema. Je prisoten pri vsakem sektorju, zato se lahko popravlja pozicija glave veckrat na en obrat. Velikokrat nosi tudi informacijo o stevilki sledi in stevilki sektorja. Temu recemo No-ID format. Slabost ID zapisov je, da po nepotrebnem zasedajo prostor. - Uvod oz. adresna marka. Enolicna kombinacija bitov, ki podajo zacetek sektorja. Vrzeli so ostanki prejsnjih pisanj in njihova vsebina je nedenirana, zato brez uvoda ne bi mogli vedeti kje je zacetek 4
sektorja. - Podatkovni zapis je namenjen shranjevanju podatkov, velikost je ponavadi 512 B. - Biti za detekcijo/korekcijo napak. Teh je ponavadi 64 ali 128. Pri branju se uporabljajo za detekcijo napak in morebitno popravljanje.
Formatirana velikost diska je skupno stevilo bajtov v podatkovnih zapisih, neformatirana je pa ves prostor, vkljucno z vrzelmi, servozapisi, uvodi, biti za detekcijo napak, itd. Za dostop se ne uporablja vec naslov v obliki stevilke povrsine in stevilke sektorja, temvec se uporabljajo logicni sektorji, ki so oznaceni s stevilkami od 0 naprej. Vsaka stevilka logicnega sektorja se s pomocjo tabele, ki je del elektronike na disku, enolicno preslika v stevilko sledi in stevilko sektorja na sledi (zicni naslov). To dopusca proizvajalcem da mrtve sektorje izkljucijo iz te tabele, poleg tega pa jim tudi ni treba vec navajati stevila povrsin in sektorjev na povrsino. Glave na disku lebdijo, ker so zelo blizu povrsini, vzletajo in pristajajo pa na notranjem delu, ki se ne uporablja za podatke. Vse glave se premikajo istocasno, aktivna je pa samo ena.
je povezan z diskom prek kabla. Za krmilnike diska obstaja vec standardov, kot so npr. ATA, SATA, SCSI, itd. Za programerja je viden samo krmilnik diska, ponavadi ga pa kontrolira operacijski sistem.
3 V/I krmilniki
Pri prikljucevanju V/I naprav je koristno predpostaviti, da je vsaka naprava prikljucena preko krmilnika naprave. Ponavadi je v istem ohisju oz. na isti plosci kot CPE in glavni pomnilnik. Krmilnik je lahko preprost oz. trivialen, torej le mnozica logicnih vrat ali kak register brez sposobnosti za procesiranje informacije. Pri zapletenih napravah, kot so trdi diski, je pa lahko krmilnik kot nek specializiran racunalnik. Za vsak krmilnik lahko recemo, da je gledano s strani CPE ali iz V/I procesorja videti kot doloceno stevilo registrov. Na te registre lahko gledamo kot na posebne pomnilniske lokacije. Programer doseze, da bo naprava pricela izvajati operacijo tako, da v enega od registrov krmilnike pise ustrezno vsebino. Z branjem registrov pa lahko spremlja stanje V/I naprave. Danes se vse vec dela, ki je bilo prej v krmilniku, opravlja v sami napravi, saj logika in vezja postajajo cenejsa. Vecino dela, ki ga opravlajajo krmilniki bi bilo mogoce narediti v CPE, vendar se to cim manj uporablja, saj je bolje, ce CPE uporabljamo za izvajanje programov in ga ne obremenjujemo z V/I operacijami.
5.3 DMA
Ker je programski V/I neuporaben pri napravah, ki prenesejo zelo veliko podatkov v majhnem casu, je resitev za hitre prenose neposreden dostop do pomnilnika. Namesto da gredo podatki skozi CPE pod kontrolo programa, jih krmilnik naprave prenasa neposredno v glavni pomnilnik ali iz glavnega pomnilnika. Morata biti izpolnjena pogoja: - Obstajati mora neposredna povezava med krmilnikom V/I naprave in glavnim pomnilnikom - Krmilnik mora biti sposoben tvoriti pomnilniske naslove in kontrolne signale za komuniciranje z glavnim pomnilnikom. Mora znati steti prenesene besede in preverjati stanje V/I naprave ali je pripravljena za branje/pisanje. Ubistvu mora znati izvajati zanko, ki bi jo sicer izvajali s programskim V/I. Ponavadi imajo DMA krmilniki register v katerega vpisemo naslov na katerem je zacetek prenosa ter nek register v katerega vpisemo dolzino prenosa. 8
CPE mora podati DMA krmilniku zacetni naslov polja v glavnem pomnilniku, dolzino besed, vpisati kontrolne vrednosti (smer prenosa) ter poslati ukaz za zacetek izvajanja operacije. Lahko imamo en DMA krmilnik, ki je povezan z V/I krmilniki drugih naprav, lahko ima pa V/I krmilnik naprave DMA sposobnost.
6 V/I procesorji
6.1 V/I procesorji pri IBM 370
V/I procesorji pri IBM 370 se imenujejo kanali. Nimajo svojega pomnilnika, programi za njih so shranjeni v glavnem pomnilniku. Uporabljajo se zicni naslovi pri prenosih, skupaj s tabelo okvirov strani. Vsak kanal je prikljucen na eno V/I vodilo, na katerega je prikljucenih vec V/I krmilnikov. Na vsak V/I krmilnik je lahko prikljucenih vec naprav, vendar je potem lahko aktivna samo ena od teh naenkrat. Ima dve vrsti V/I vodil: - Paralelno V/I vodilo. Omogoca najvisjo hitrost 4,5MB/s do razdalje 122m. - Serijsko V/I vodilo. Je lahko ESCON vodilo, ki omogoca 17MB/s do 1000m ali pa novejse FICON, ki naj bi omogocalo tudi do 350MB/s preko razdalje do 10km. Kanalov je lahko najvec 256. Vodila so za progarmerje nevidna, torej ni razlik pri programiranju zaradi vodil. Do 370-XA je imel vsak kanal svoj naslov, znotraj njega pa so bili se naslovi nanj prikljucenih naprav. Ce je bil nek krmilnik prikljucen na vec kot en kanal, je imela vsaka nanj prikljucena naprava vec naslovov. Ce pogledamo kako to deluje pri paralelnem V/I vodilu, ima vsaka naprava svoj 8-bitni naslov, ki je znan krmilniku. Najvecje stevilo krmilnikov na kanal je 8, torej je stevilo vseh naprav na krmilniku lahko 256. Pri 370-XA je bila narejena sprememba. Vsaka naprava je bila povezana s podkanalom. Naslov naprave je enak naslovu podkanala in je vedno enak, ne glede na stevilo moznih poti do naprave. Kanali se vedno zicno obstajajo, vendar so za programerja pomembni samo podkanali. Naslovi so 16-bitni, naprav je zato lahko najvec 216. Prenosi so sestavljeni iz 3 delov: 1. Izbira. Kanal ugotavlja ali obstaja naslovljena V/I naprava in ali je pripravljena za delo. Potek: Preko BUS OUT podatkovnih signalov poslje kanal 8-bitni naslov naprave Istoasno kanal aktivira kontrolni signal ADDRESS OUT, s katerim obvesti krmilnike, da je na signalih BUS OUT naslov krmilniki primerjajo naslove svojih naprav s poslanim naslovom kanal nato aktivira signal SELECT OUT(na vodilu je informacija namenjena krmilnikom), ki gre skozi vse krmilnike. Krmilnik z napravo, ki ima naslov enak poslanemu, zapre signalu pot, sicer se signal vrne v kanal kot SELECT IN, ki pomeni da naslovljena naprava ne obstaja. To pomeni da prenos ni moen in kanal o tem obvesti CPE krmilnik, ki prepozna naslov, aktivira signal OPERATIONAL IN kanal odgovori, tako da deaktivira ADDRESS OUT in preneha poiljati naslov Krmilnik poslje preko BUS IN podatkovnih signalov naslov naprave nazaj v kanal in mu to sporoi z aktiviranjem signala ADDRESS IN Kanal preveri naslov, e je pravilen polje preko BUS OUT podatkovnih signalov ukaz in to 10
sporoi krmilniku z aktiviranjem signala COMMAND OUT Krmilnik preveri, e je ukaz mogoe izvriti in polje preko BUS IN signalov stanje naprave, kar sporoi s signalom STATUS IN e stanje omogoa prenos podatkov, kanal aktivira signal SERVICE OUT (izbira konana) *izbira je lahko neuspena prenos se takoj zakljui *pri nekaterih ukazih (branje stanja naprave), je uspena izbira e konec ukaza 2. Prenos podatkov. Pri prenosu iz V/I naprave v pomnilnik vodi prenos krmilnik naprave. Vsaki, ko ima naprava pripravljen podatek, ga krmilnik da na signale BUS IN in aktivira signal SERVICE IN, s imer sporoi kanalu, naj prevzame podatek. Kanal potrdi sprejem s signalom SERVICE OUT. To se ponavlja, dokler niso preneeni vsi podatki (asinhronski nain, ker imamo potrditve). Hitrost prenaanja je odvisna od hitrosti, s katero naprava oddaja nove podatke.
3. Zakljucno zaporedje. Z zakljunim zaporedjem se naprava odklopi od vodila. To je obratna operacija od izbire in ugotavljanje pravilnosti prenosa. sproi ga lahko kanal ali krmilnik ali oba kanal sproi zakljuno zaporedje ko ugotovi, da je tevilo prenesenih podatkov enako zahtevanemu 11
po prenosu zadnjega podatka aktivira COMMAND OUT (namesto SERVICE OUT) krmilnik da na BUS IN konno stanje naprave in aktivira STATUS IN kanal sprejme konno stanje in aktivira SERVICE OUT in deaktivira SELECT OUT krmilnik nato deaktivira signala OPERATIONAL IN in STATUS IN *od tu naprej je vodilo prosto in se lahko prine naslednji ukaz
Do 1983 je IBM uporabljal tri vrste paralelnih kanalov, ki so bile prilagojene razlicno hitrim napravam: - Selektorski kanal je bil namenjen za prikljucevanje hitrih naprav - Bajt-multiplekserski kanal za prikljucevanje pocasnih naprav - Blok-multiplekserski kanal zdruzuje lastnosti selektorskega in bajt-multiplekserskega kanala. Z uvedbo 370-XA je prislo do poenotenja paralelnih kanalov. Zdaj je vsak kanal bil sposoben delati na dva nacina: eksplozijski nacin in bajt-multiplekserski nacin.
12
V vsakem CCW doloca operacijska koda enega od sestih osnovnih ukazov: 1. Read. Ta ukaz zahteva branje podanega stevila bajtov iz V/I naprave ter prenos v glavni pomnilnik. 2. Write. Ta ukaz prenese podano stevilo bajtov iz glavnega pomnilnika v V/I napravo. 3. Read backward. Branje v obratno smer, recimo pri magnetnih trakovih. Tudi v glavni pomnilnik gre v padajoco smer. 4. Sense. Ta ukaz prebere stanje V/I naprave in ga prenese v gl. pomnilnik. 5. Control. Poslje v krmilnik V/I naprave ukaz za krmilnik. 6. Transfer in channel. Tukaj gre ubistvu za skos na naslov, ki je podan v parametru naslov polja. Operacijska koda je dolga 8 bitov, kar je prevec za 6 ukazov, to pa zato ker je operacijska koda namenjena lahko tudi V/I krmilniku. Vsak CCW ima tudi zastavice z naslednjimi pomeni: 1. CD (Chain Data). Kadar je enak 1, to za podkanal pomeni, da naj prevzame naslednji CCW. Isti ukaz se mora nadaljevati z novimi podatki. Operacijska koda naslednjega CCW se ignorira. 2. CC (Chain Command). Kadar je enak 1, to za podkanal pomeni, da naj prevzame naslednji CCW z novo operacijsko kodo. 3. SLI (Suppress inocrrect Length Indication). Ce se prenos konca preden se je preneslo toliko bajtov, kot jih vsebuje parameter dolzine polja, je to napaka. S SLI to ignoriramo. 4. SKIP Podatke beremo iz V/I naprave, vendar jih ne zapisemo v glavni pomnilnik. 5. PCI (Program Controlled Interrupt) Kadar podkanal prevzame CCW, v katerem je bit PCI enak 1, poslje v CPE zahtevo za prekinitev. 6. IDA (Indirect Data Addressing) Kadar je ta bit aktiven, naslov ne pomani zicnega naslova polja v pomnilniku, temvec zicni naslov zacetka seznama zicnih naslovov strani, ki sestavljajo polje. 7. S (Suspend) S pomocjo tega lahko zacasno ustavimo delovanje kanala in ga kasneje nadaljujemo.
Ker podkanal enolino doloa V/I napravo, naslova V/I naprave ni potrebno podati. tevilka podkanala na katerega se nanaa ukaz je vedno v splono namenskem registru R1 vsota baznega registra B2 in odmika D2 tvori navidezni naslov ki kae na ORB blok v glavnem pomnilniku
Izvajanje ukaza START SUBCHANNEL: CPE preko posebnih signalov ki povezujejo kanalski sistem s CPE, sporoi kanalskemu sistemu tevilko podkanala, ki naj prine z izvrevanjem kanalskih ukazov iz pomnilnika se prebere ORB blok (navidezni naslov bloka je v ukazu) in se prenese v podkanal ORB blok je iz treh 32 bitnih besed, ena izmed njih je fizini naslov prvega CCW iz katerega potem podkanal vzame prvi CCW gledano iz CPE je ukaz START SUBCHANNEL konan, ko je opravljen prenos vsebine bloka v podkanal Prenos ORB v podkanal ni vedno uspeen, odvisen je od stanja v katerem je bil podkanal ob izvrevanju ukaza START SUBCHANNEL Kaj se je zgodilo lahko programer vidi iz pogojnih bitov v PSW(program status word) registru (bita 18 in 19), ki se postavita ob koncu ukaza START SUBCHANNEL Programer mora preveriti kaj se je zgodilo: 0: prenos ORB je bil uspeen - podkanal zael izvajati kanalski program 1: podkanal ima akajo opis stanja, ki ga je treba prevzeti z ukazom TEST SUBCHANNEL. Ta ukaz omogoa dostop do podkanalske statusne besede SCSW, ki jo sestavljajo tri 32 bitne besede, v katerih je podroben opis stanja podkanala 2: podkanal je zaseden 3: podkanal ne deluje (ga ni, je izkljuen, vse poti do njega so zasedene)
14
Osnovni mehanizem s katerim lahko programer spremlja dogajanje v podkanalu so V/I prekinitve: podkanal vedno zahteva prekinitev po zakljuku zadnjega kanalskega ukaza programer lahko s postavitvijo zastavice PCI dosee, da podkanal zahteva prekinitev pred prietkom izvrevanja CCW, v katerem je PCI=1 podkanal vedno zahteva prekinitve ob napakah; takrat se izvrevanje podkanalskega programa ustavi Vzroki za prekinitev ostanejo shranjeni v podkanalu. Ko se CPE odzove, se v pomnilnik na naslove 184-191 shrani informacija o izvoru prekinitve, tudi tevilka podkanala. Z ukazom TEST SUBCHANNEL lahko programer prenese opis stanja iz podkanala v glavni pomnilnik v obliki podkanalske statusne besede SCSW. Ta ukaz istoasno tudi sprosti kanal, tako da zbrie zahtevo po prevzemu akajoega opisa stanja.
15
16
7 Prenosne poti
Vodilo je ubistvu skupek zic, ki ima odcepe. Pri enostavnih racunalnikih imamo na eno vodilo na katerega so prikljuceni CPE, glavni pomnilnik, ter V/I krmilniki. Problem tukaj je, da CPE in glavni pomnilnik ne moreta komunicirati medtem ko komunicirajo V/I krmilniki in glavni pomnilnik. Zato velikokrat povezemo CPE in krmilnik pomnilnika tocka-v-tocko, isto glavni pomnilnik in krmilnik pomnilnika, potem pa z V/I vodilom povezemo krmilnik pomnilnika ter krmilnike V/I naprav. Naloge krmilnika pomnilnika je, da usklajuje zahteve po dostopih do pomnilnika, ki prihajajo iz CPE in V/I. Da se to dvoje lahko odvija istocasno uporabimo pomnilnisko prepletanje. Poleg tega v primeru istocasnih zahtev do enega module krmilnik pomnilnika poskrbi, da ena naprava pocaka.
17
1. Vzpostavitveni cas. Enota, ki sprejema informacijo, mora imeti pred zakljuckom prenosa na svojih podatkovnih signalih prisoten stabilen podatek nek minimalen cas, ki mu recemo vzpostavitveni cas. Podan je v specikaciji vsake enote. 2. Cas dostopa. Pri branje je deniran kot cas, ki pretece od trenutka vzpostavitve naslovnih in kontrolnih signalov do trenutka, ko naslovljena enota da podatek na podatkovne signale. Pri pisanju je cas, ki pretece od trenutka vzpostavitve naslovnih, podatkovnih in kontrolnih do trenutka, ko so ti zapisani v enoto. 3. Drzalni cas. Pri nekaterih napravah moraj biti podatki prisotni se nek cas po zakljucku prenosa. Da je dobra izkoriscenost (da CPE ne caka na podatke brez dela), morajo biti prenosne poti hitre. Vidimo da lahko zadosca tzak + tdostop + tvzpostavitveni 2T Vendar moramo upostevati da je zakasnitev priblizno 1,4ns pri dolzini prenosne poti 20cm. Ker morajo pri branju signali najprej pripotovati do naslovljene enote in nazaj, je pogoj za pravilen prenost dolocen z 2 + tzak + tdostop + tvzpostavitveni 2T Torej celo pri neskoncno hitrih vezjih casa prenosa ne moremo zmanjsati pod 2 .
18
Asinhronski: gospodar umakne nasl. in kontr. signale ele ob prvi negativni fronti po sprejemu potdritvenega signala as ni vnaprej doloen hitre enote aktivirajo potrditveni signal hitreje, s tem je odpravljena slabost sinhronskega prenosa potrebno je asovno vezje, ki zakljui predolge cikle, ki se zgodijo, e ne dobimo potrditvenega signala (npr. e naslovljena naprava ne obstaja, se tudi nobena ne odzove) zaradi potrditvenega signala je bolj zapleten od sinhronskega zakasnitve zaradi konne hitrosti po vodilu
19
20
21
22
Quad pump protokolski eksplozijski prenos izvorno sinhronski prenos 2 sinhronizacijska signala s periodo Ts = T/2 v 1 periodi centralne ure se poljejo 4 podatki. uporablja se v Intelovih procesorjih 80x86 od leta 2000 naprej (Pentium 4, Core). za ukaze (naslovni signali in atributi) A3-A35 - prvi prenos: naslov A3-A35 - drugi prenos: atribut v 1 periodi centralne ure se polje 1 ukaz (dovolj hitro) uporabljal se je v Intelovih procesorjih P4 in C2 do jeseni 2008 hitrost se je od leta 2000 do 2008 poveala 10-krat
Double pump
23
25
8.8 GTL
tehnologija
s katero so zgrajeni mikroprocesorji gtl = gunning transceiver logic prepovedano obmoje je 0.1V napajalna napetost je 0.4-1.2V (mnogo nija kot TTL in CMOS) kar pomeni da je napetostna prebojna trdnost bolja (ike so lahko bolj skupaj)9 Boolova algebra Pri nacrtovanju digitalnih sistemov obicajno delamo tako, da zanemarimo elektronsko naravo logicnih vezij iz katerih jih gradimo in jih jemljemo kot idealna. To na omogoca, da pri delu uporabimo Boolovo algebro.
9 Logina vezja
9.1 Kombinatorina vezja
Kombinatoricna vezja so taka vezja, pri katerih je stanje izhoda odvisno samo od trenutnega stanja vhodov. To pomeni, da izhod ni odvisen od preteklih stanj vhodov. Kombinatoricna vezja nimajo spomina.
26
Register pomeni vec ip-opov skupaj, Lahko hrani vec bitov informacije. Stevci so registri, ki ob urinih impulzih povecujejo ali zmanjsujejo svojo vsebino.
10 Podajanje mikroprocesorjev
D
Podatkovni registri Naslovni registri
Kontrolni signali
Uporaba se reducira na uporabo signalov procesorja. Mi moramo samo realizirati poti. Signali so multipleksirani (na enem vodilu dva signala, gre za asovno multipleksiranje), nekateri so tudi nemultipleksirani. POMEN SIGNALOV: kakno informacijo nosi kako vpliva na delovanjem obiajno to opisujemo z besedami SMER SIGNALOV: vhod izhod dvosmeren (ne oboje hkrati half-duplex) doloa dodaten signal kaj se uporablja(branje/pisanje) STANJE SIGNALOV: 0...nizek napetostni nivo (pozitivna logika) 1...visok napetostni nivo Hi-Z...visoko impedanno stanje OZNAEVANJE SIGNALOV: 27
Podatkovni signali: * D0,D1,...,D31 (pozitivna logika) * D0\,D1\,...,D31\ (negativna logika) Naslovni signali: A0,A1,...A31 Kontrolni signali: * RESET ... vezje se bo ob visokem stanju resetiralo * IRQ\ ... aktiven ob nizkem stanju *R/W ... e je visoko stanje se bere, e je nizko se pie
4. Ko dobi stevilko vektorja, shrani stack frame v sklad. 5. Iz stevilke vektorja se tvori 32-bitni vektor tako, da se s 4 pomnozena stevlika vektorja pristeje k vsebini registra VBR. 68040 prebere v PC 32-bitno vrednost z naslova na katerega kaze vektor. 6. Z ukazom RTE se vrne iz prekinitve, vrne informacije stanja iz sklada.
Glavna prednost bralnih pomnilnikov je to, da so obstojni (njihovi podatki se obdrzijo tudi po tem, ko jim izklopimo vir napajanja). V vecjih sistemih kot je npr. PC so tam shranjeni zagonski programi, ki poskrbijo da se v bralno-pisalni pomnilnik prenese operacijski sistem. V ROM se shranjujejo ukazi, tabele in podobni kompleksni vzorci bitov. ROM cipi se proizvajajo predvsem v organizaciji x 8. Mask ROM so po narocilu narejeni cipi, ki jim vsebino vgradijo v tovarni. Tam pretvorijo uporabnikovo specikacijo vrednosti bitov v maske, s katerimi naredijo cip. (tipino nad 100000 kosov) Pri pomnilniski celici pomeni prisotnost tranzistorja 1, odsotnost pa 0, ali pa obratno. Tipicne velikosti: 32K x 8, 64K x 8, 128K x 8, 256K x 8, 512K x 8 in 1M x 8. Dostopni casi se gibljejo od 100 do 300ns.
Kako je shranjena informacija pri posameznih vrstah pomnilnika? ROM - vsebina je nespremenljiva, ipi v organizaciji x8 ali x16 (x1 je neroden - za 8-bitne besede mora sestaviti 8 ipov), vsebina je obstojna. RAM - vsebina je spremenljiva, vendar neobstojna, ob izklopu energije izgubimo vsebino.12.1 PROM PROM pomeni programmable ROM. Z njimi oznacujemo ROMe, ki imajo varovalko. Nov PROM ima vse bite postavljene v stanje 1, potem pa uporabnik s programatorjem prezge varovalke dolocenih celic in tako naredi, da ima cip zeleno vsebino.
11.2 EPROM
EPROM pomeni erasable programmable ROM. Kot pomnilniska celica sluzi MOSFET tranzistor s plavajocimi vrati, ki jih je mogoce elektricno nabiti s prebojem izolacijske plasti vrat. S tem se v plavajocih vratih shrani majhen elektricni naboj (okrog 106 elektronov), ki se zaradi kvalitetnega dielektrika ohrani zelo dolgo. Ko ga enkrat sprogramiramo s tem, da ga izpostavimo visokim voltazam, ga lahko zbrisemo le z uporabo UV svetlobe. Pri EPROMih je stevilo brisanj in programiranj omejeno. Ponavadi je to tam okrog 100. Proizvajalci garantirajo, da se obdrzijo podatki na EPROMih 10 let, vendar pri tem predpostavljajo najslabse mozne pogoje. Tipicne velikosti: 32K x 8 do 1M x 8. Tipicni dostopni casi so od 100 do 300ns.
30
11.3 EEPROM
EEPROMi so po zgradbi in delovanju zelo podobni EPROMom. Tudi oni uporabljajo kot pomnilnisko celico MOSFET tranzistor s plavajocimi vrati in hranijo informacijo v obliki naboja. Za brisanje ne potrebujejo UV svetlobe. Brisanje vsebine se doseze s povisano napetostjo, ki povzroci Fowler-Nordheim tunelski efekt. Ker novejsi EEPROMi iz 5V sami tvorijo 12V, lahko EEPROMe programiramo brez da jih jemljemo iz podnozja. Pisanje (brisanje + pisanje) je tipicno 10000 krat pocasnejse od branja. Stevilo pisanj je omejeno, tipicno pod 100000.
31
32
12 RAM
12.1 SRAM
Glavna razlika med RAMi in ROMi je to, da so ROMi obstojni, medtem ko so RAMi neobstojni (volatile) - njihova vsebina se izgubi ob izgubi napajanja. Po vklopu je vsebina nedenirana. Pri staticnemu RAMu (SRAM) je pomniniska celica zgrajena kot ipop. Ta je obicajno narejen iz sestih MOS tranzistorjev. Bit, ki ga zapisemo v SRAM celico ostane nespremenjen, dokler ga ne prepisemo ali dokler ne izgubimo napetosti. Najveckrat so izdelani v CMOS tehnologiji in imajo cas dostopa od 10ns do 150ns. Hitrejsi, vendar manjsi in energijsko pozresnejsi so bipolarni ECL SRAM cipi, kjer je cas dostopa blizu 1ns. Branje je popolnoma enako kot pri EPROMih, pri pisanju je pa treba na podatkovne signale dati podatek dovolj zgodaj pred zakljuckom cikla. Pri vecini SRAMov je pisalni cikel mogoce zakljuciti ali s prehodom signala R/W v neaktivno stanje ali s prehodom signala CE v neaktivno stanje. Maksimalna velikost tam okoli 128 Mbit. To, da je staticni, pomeni da ga ni treba osvezevati (v kontrastu z DRAMi). Tipicni signali za kontrolo SRAMA so W/R, CE in OE. V stanju pripravljenosti, ko CE ni aktiven, porabi zelo malo energije.
12.2 DRAM
Pri dinamicnih RAMih je pomnilniska celica zgrajena iz enega tranzistorja, informacija pa je shranjena v obliki elektricnega naboja na kondenzatorju. Ta kapacitivnost je zelo majhna: tipicno znasa 20-30fF. Ker je informacija shranjena v obliki naboja so na prvi pogled DRAM celice podobne EPROM in EEPROM celicam, vendar podobnost ni velika. Pri DRAM se kondenzator izprazni v nekaj 10 milisekundah, pri EPROMih in EEPROMih je pa ta cas 10 let. Bit, ki ga zapisemo v DRAM celico zato v zelo kratkem casu izgine, zato moramo konstanto osvezevati bitno ravnino (tipicno na vsakih 64ms). Pomnilnike celice so pri statinem in dinaminem ipu urejene v obliki pravokotnega polja, ki mu pravimo bitna ravnina. Predstavljamo si lahko, da je celica na kriiu vrstice in stolpca. Vsak 33
bit v ravnini ima svoj naslov, ki je sestavljen iz naslova vrstice in stolpca. e elimo dostopati do ve bitov hkrati potrebujemo ve bitnih ravnin (navadno 8 - organizacija x8). tevilo podatkovnih signalov je enako tevilu bitnih ravnin (vsak signal je povezan s svojo bitno ravnino). Ob branju se naslovljeni bit iz vsake bitne ravnine poda na pripadajoi podatkovni signal, pri pisanju pa se vsak od podatkovnih signalov prepise v naslovljeni bit pripadajoe bitne ravnine.
Da bi zmanjsali stevilo nozic pri DRAMih razdelimo naslovne signale v dve polovici. Zaradi posebnosti DRAM pomnilnikih celic, se hitrost dostopa skoraj ni ne poslaba. Prva polovica doloca vrstico, druga pa stolpec naslovljenega bita oz. besede pri organizacijah x 8 (8 bitnih ravnin). To je v bistvu multipleksiranje, tako da moramo povedati cipu kdaj je na naslovnih signalih vrstica, kdaj pa stolpec. DRAMi imajo zato namesto CE signala dva - signal RAS (Row Address Strobe) in CAS (Column Address Strobe). Ko se oba deaktivirata je dostopnega cikla konec. Potek dostopa: 1. Na naslovne signale (A0-A14) najprej podamo naslov vrstice 34
2. Aktiviranje RAS signala. ip shrani naslov vrstice, ki po preteku drzalnega casa 10ns ni vec potreben. Branje je destruktivno. Vrstica se izbrise in se shrani v register vrstice. 3. Na naslovne signale nato podamo naslov stolpca 4. Aktiviranje CAS signala (ne prej kot 20ns po aktiviranju RAS). ip shrani naslov stolpca, ki po preteku dralnega casa 15ns ni vec potreben. Pri branju (WE=1) se na podatkovnem izhodu DOUT pojavi podatek, ki ostane prisoten dokler sta aktivna RAS\ in CAS\ Pri pisanju (WE=0) loimo "zgodnje pisanje" - podatek na podatkovnem vhodu DIN se ob aktivnem prehodu CAS\ interno shrani in nato zapie v naslovljeno celico. Pri tem je smer dostopa izbrana pred aktiviranjem CAS\ signala. "branje-pisanje" - pri aktiviranju CAS\ je WE\=1, podatek se pojavi na DOUT, ob kasnejem prehodu WE\ v 0 se podatek na DIN interno shrani in zapie v naslovljeno celico. Podatek na DOUT ostane prisoten; e sta DIN in DOUT povezana, tega ne moremo uporabljati. 5. Deaktiviranje CAS povzroci, da gre Dout v Hi-Z. 6. Po koncu dostopa mora biti signal RAS v neaktivnem stanju najmanj 60ns, preden se lahko pricne naslednji dostop (precharge as, ki je potreben da se iz registra vrstice zapise nazaj v pomnilnisko ravnino). as dostopa od zacetka cikla ni daljsi od 80ns, ampak se naslednji dostop lahko pricne sele cez 150ns. Pri DRAMih se zato as dostopa merjen od aktiviranja signala RAS (tRAS) razlikuje od asa cikla(tRC) e je DRAM razdeljen na recimo 8 bitnih ravnin, potem ima vsaka svoj register vrstice.
12.2.2 Osvezevanje
Informacija je shranjena kot el. naboj na kondenzatorju. Ta naboj se zaradi neidealnega dielektrika v razmeroma kratkem asu izgubi tudi ob prisotni napajalni napetosti, zato je potrebno pomnilnike celice perisodino osveevati. Pri tirikratnem poveanju DRAM ipov se osveevalna perioda povea za samo dvakrat (pri 4x evjem DRAM-u je 2x ve vrstic in 2x ve stolpcev in iz tega izvira dvakratno poveanje periode; ob enkratnem osveevanju neke vrstice se namre osveijo vse celice v vrstici). Prav tako je pomembno povedati, da je bitna ravnina pravokotnik. Zdajnji RAMi imajo ve vrstic kot stolpcev. as osveevanja je doloen z osveevalno periodo, ki pomeni najdalji e dovoljen as za osveitev vseh celic. Danes je ta perioda 64ms, povpreen as med dvema osveevanjema pa 7,8 s. Ob prehodu RAS\ v nizko stanje se vedno naredi tudi osveevanje naslovljene vrstice, s signalom RAS\ 35
pa moramo nasloviti v doloenem asu e vse ostale vrstice. Vrste osveevanja: Z bralnimi cikli - e zagotovimo, da se v asu ene osveevalne periode prebere vsaka vrstica najmanj enkrat, je s tem osveevanje zagotovljeno. To lahko naredimo programsko (ni praktino) ali pa z DMA krmilnikom, ki ga inicializiramo tako, da v doloenem asu prebere vse vrstice. S pisalnimi cikli - neroden, ker poleg osveevanja naredimo tudi vpis v pomn. celico in ker v splonem ne vemo, kaj se nahaja v tej celicil, ne moremo zagotoviti, da se njena vsebina ne bo spremenila. Uprabno v posebnih aplikacijah, kjer se pie v pomn. (npr. digitalni osciloskop). Osveevanje samo z RAS\ cikli - aktivira se samo RAS\ cikel. CAS\ ostane neaktiven, WE\ se ignorira. Naredi se osveevanje vrstice, ki je doloena z naslovnimi signali. Zahteva uporabo dodatne osveevalne logike - s asovnim vezjem (zunanji tevec) se vsakih nekaj s anredi samo RAS\ cikel. Medtem dostop do DRAM-a ni moen CAS\ pred RAS\ - preprosteja osveevalna logika v primerjav z RAS only, ker uporablja tevec naslovov, ki je vgrajen v ip in se na koncu avtomatsko povea za 1. ip prepozna ta cikel po tem, da se CAS\ aktivira ob neaktivnem RAS\. V ostalem velja isto kot za osveevanje z RAS\ cikli. Porazdeljeno osveevanje - na vsakih nekaj s se sproi en osveevalni cikel, dobro za hiter odziv Koncentrirano osveevanje - npr. 1024 zaporedno si sledeih ciklov, razmeroma dolg as Tipina velikost: (2007) 2Gb = 8 (modulov) x 32Mb x 8
36
12.3 SDRAM
SDRAM - synchronous dynamic random access memory
Za razliko od ostalih DRAM-ov je sinhroniziran z uro procesorja (uvedba urinega signala). Deluje kot preprost cevovod (zato mora biti sinhroniziran). Vsebuje asinhronske DRAM, vsi signalii (RAS\, CAS\, WE\, A0-A13, D0-D7, ... ) se shranijo v registre ob aktivni fronti ure. Vija hitrost, ker ni ve potrebno paziti na pravilen asovni razmak med signali (RAS\ - CAS\) in zaradi cevovodnga izvajanja ni potrebno akati, da se izvri dani ukaz - nov ukaz lahko izstavimo e prej. Latenca - as, ki ga je potrebno akati, da se pojavijo podatki, preden izstavimo nov ukaz. Zaetna zakasnitev v primerjavi SDRAM proti DRAMu ni manja, je kvejemu enaka, ker jedro SDRAM oitno sestavlja DRAM. Vija hitrost se pokae predvsem page mode nainu dostopa. Dostop do informacije v registru vrstice je hitreji po zaetni zakasnitvi kot pri asinhronskem DRAMu. as za izstavljanje zahteve po dostopu do registra vrstice se ne priteva k asu dostopa, ker se zahteva zapie v registre e med izvajanjem prejnjega ukaza. Podobno sinhronsko delovanje so uspeno implementirali tudi pri SRAMih(SSRAM).
37
DDR pomeni double data rate. Za razliko od SDR SDRAMa, doseze DDR SDRAM vecjo pasovno sirino tako, da prenasa podatke na pozitivni in negativni fronti urinega signala. V praksi se to pozna kot dva krat hitrejsi prenos kot pri SDRAMu. Tako povecanje hitrosti je zaradi kombinacije eksplozijskega nacina prenosa in prefetch registra. Najprej se izda ukaz za odpiranje vrstice. S tem se prenese vsebina iz bitne ravnine v register vrstice. Z ukazom za branje stolpca se prenesejo naenkrat 2, 4 ali 8 sosednjih bitov v prefetch register. Pri branju se iz prefetch registra ob vsaki fronti prenesejo biti na podatkovne signale. Pri pisanju pa se ob fronti ure stanje podatkovnih signalov najprej zapie v prefetch registre. Ko je prefetch register poln se hkrati prenese 2,4,8 bitov v register vrstice. Bralnih ali pisalnih dostopov si lahko pri odprti vrstici sledi ve. Na koncu je potrebno vrstico zapreti (precharge ukaz). Vsaka bitna ravnina ima svoj prefetch register, ki je pa zelo blizu nozic cipa, zato je dostop do prefetch registra veliko hitrejsi. Vsi prenosi so dolzine 8 in so eksplozijski.
38
39
Prednost DDR2 pred DDR je zmonost vijih frekvenc ure, izvorno-sinhronski nain, 4-bitni prefetch, 2 urina signala (eden je glede na drugega invertiran). Ker sta simetrina je manj presluha, zaradi tega se ostali signali hitreje umirijo. Poraba: 1,8V 2Gb ip Pri organizaciji x8 je 8 modulov velikosti 32Mx8, vsak modul z vrstico velikosti 1024x8. Pri organizaciji x16 je 8 modulov 16Mx16, vrstica pa je 1024x16 Pri organizaciji x4 pa je 8 modulov 64Mx4
41
12.3.7 Core i7
Prenosi so se vedno dolzine 64B, kar pomeni 8 zaporednih prenosov. A3, A4, A5 obvezno dolocajo stolpec. Stevilo kanala je ostanek pri deljenju naslova s 3, naslov znotraj kanala je pa kvocient A6,A7,...,A37/3 -> A6',A7',...,A37' - stolpec: A6',...,A12' - modul: A13'...A15' - vrstica: A16'...A37'
42
14 Prekinitveni krmilniki
14.1 PIC 6828 prekinitveni krmilnik
Pri druini procesorjev 6800 se uporabljajo poenostavljene vektorske prekinitve - vektor je fiksen, tako ni potrebno da procesor izvede prekinitveno prevzemni cikel. CPE te druine so narejene tako, da iz njihovih signalov ni mogoe razbrati kdaj se odzove na prekinitev.
PIC 6828 mora biti prikljuen na procesorjeve signale A1-A4 neposredno ob mikroprocesorju. Vsi elementi morajo namesto A1-A4 uporabljati signale Z1-Z4. e se pojavita naslova FFF8, FFF9, se A1-A4 preslikajo v Z1-Z4, pri vseh ostalih naslovih so Z1-Z4 = A1-A4, isto velja tudi za FFF8, FFF9, e na vhodih IN7\ do IN0\ ni prekinitvenih zahtev. e so prekinitvene zahteve, se upoteva najvija in biti A1-A4 se preslika po tabeli:
43
O tej preslikavi procesor ne ve niesar zato obravnava podatke kot, da so prebrani z FFF8 in FFF9. V resnici so prebrani z naslovov, ki ustreza prekinitveni prioriteti z najvijo prioriteto. Tako dobimo 8 parov prek. vektorjev iz katerih se bere naslov PSP. S tem je doseeno avtomatsko prepoznavanje naprave. Kadar je kateri od vhodov IN7\-IN0\ v nizkem stanju, se to prenese ob negativni fronti signala E v register zahtev. e je prioriteta (0-7) enaka ali vija od vsebine v 4-bitnem registru maske, se na IRQ\ izhodu postavi nizko stanje, sicer se ignorira. Z ustrezno postavitvijo maske (programer) je mogoe realizirati vgnezdene prekinitve.
Ko procesor reagira na IRQ\, se na naslovnem vodilu pojavita naslova FFF8 in FFF9. Z dodatnim vezjem:
moramo zagotoviti, da sta CS\=0 in CS =1 PIC je izbran, R/W=1, A1-A4=0011 Z1-Z4 (preslikava). Vpis v register maske: R/W=0, CS1=1, CS0~=0 v reg. se prenesejo A1-A4 (pisati moramo na doloene pomn. lokacije - 256) 1. Vsak PSP mora ob vrnitvi pustiti reg. maske v takem stanju kot na zaetku (v nasprotnem primeru se poroi sistem vgnezdenih prekinitev). Ker 6828 ne omogoa branja registra maske, moramo shraniti vrednost reg. maske tudi nekam v RAM. 2. Vsak PSP mora postaviti masko na vrednost, ki je za 1 vija od njegove prioritete. To 44
povzroi da 6828 postavi IRQ\ v neakt. stanje, takoj zatem mora 6828 s CLI omogoiti prekinitve. (s tem je omogoeno, da prekinitvene zahteve z vijo prioriteto lahko prekinejo ta program) e elimo pisati na FFF8 in FFF9, se preslikovanje ne aktivira (ni signala na IN0\-IN7\), vendar ker se s pisanjem na te (FFE0-FFFF) naslove spreminja vsebina registra maske, je priporoljivo prekinitve izklopiti. Vgnezdene prekinitve: v krmilniku rabimo 4-bitni register (prioritete; 9 monosti), v katerega mora program zapisati trenutno prioriteto izvajajoega PSP. e je prioriteta zahteve vija od vsebine registra, se sproi prekinitvena zahteva (aktivira se IRQ#). Vsebina PSP: 1. Shrani vsebino registra prioritete na sklad. 2. Nastavi register na prioriteto tega PSP. 3. Obvesti prekinjajoo napravo, da bo njena zahteva upotevana. 4. Omogoi prekinitve (ukaz CLI). X. Obiajni PSP. N-1. Vrni vsebino registra na shranjeno vrednost. N. RTI. Kako krmilnik ve, kdaj je konec prekinitvenega servisnega programa? Korak N-1 in N.
45
46
Gledano iz mikroprocesorja je videti kot 2 vhodno-izhodni lokaciji(dostop do registrov je zato moen le z upotevajem pravil za naslavljanje). Programsko izberemo ali deluje na nain prilagojen 8080 ali 8085 (CALL, 2x 8-bitni naslov PSP), ali 80x86 (8-bitna t. prek. vekt.). V 8080/85 nainu priakuje 3 zaporedne cikle v katerih je aktievn INTA\, v 80x86 pa dva. Prekinitvene zahteve so pripepeljane na vhode IR0-IR7 (IR0 > IR1 > ... > IR7), programsko lahko izberemo ali vhodi delujejo na nivo ali prehod, v registru maske lako vsak vhod maskiramo. Aktiven nivo/prehod na vsakem omogoenem IR vhodu se shrani v reg. prek. zahtev IRR in povzroi aktiviranje INT, ki je povezan na prekinitveni vhod mikroprocesorja. Procesor se odzove z PPC. PIC 8259A prepozna PPC po aktivnem signalu INTA\, ki je aktiven v vseh ciklih PPC aktiven. 1. POLNO VGNEZDENI NAIN: V 1. ciklu z aktivnim INTA\ se zahteva z najvijo prioriteto prenese iz IRR v reg. servisirajoih zahtev ISR, ustrezni bit v IRR pa se resetira. V naslednjem INTA\ ciklu (dveh pri 8080/85) da 8259A na pod. vodilo t. vektorja, ki ustreza pravkar ponastavljenemu bitu v ISR. Ta bit ostane postavljen dokler PSP pred vrnitvijo ne polje EOI (End Of Interrupt). Dokler je ISR postavljen, se prekinitve z nijo prioriteto (vija t.) ignorirajo, kar omogoa uporabo vgnezdenih prekinitev. 2. ROTIRAJOA PRIORITETA: Prioriteta, kateri je bilo ustreeno, se postavi kot najnija. Npr. ustreemo IR4 prioritete IR5, IR6, IR7, IR0, ... , IR4 - tako imajo vsi vhodi v povpreju isto prioriteto. e elimo ve kot 8 prekinitvenih vhodov, uporabimo kaskadno prikljuitev - dodamo nove 8259A, katerih INT prikljuimo na vhode IR0-IR7 prvega 8259A. V INTA\ ciklu ta s signali CAS0-CAS2 (namenjeni samo za to) izbere ustrezni novi 8259A, ki potem da na podatkovno vodilo prek. vektor. Prvi 8259A je gospodar, ostali sunji - izberemo s signalom SP/EN\ in z ustrezno inicializacijo registrov.
47
Kaj se dogaja v prvem in kaj v zadnjem cliku prekinitev pri 80486? 1. Pojavi se zahteva IRx#, ki se shrani v register zahtev IRR. 2. e je prioriteta IRx# vija od najvije v registru servirajoih zahtev ISR, se aktivira prekinitveni signal INTA#. 3. Procesor se odzove in naredi prekinitveno prevzemni cikel. 4. Slepi cikel: najviji bit iz IRR se prenese v ISR. 5. Pravi cikel: krmilnik da na podatkovne signale D0 do D7 t. prekinitvenega vektorja, ki ustreza najvijemu bitu v IRR (naslov PSP). 6. Na koncu PSP mora programer obvestiti prekinitveni krmilnik, da naj postavi najviji bit v ISR na 0 (to naredi s pisanje 8-bitne EOI kombinacije bitov v kontrolni register prekinitvenega krmilnika - ukaz OUT). Kako krmilnik ve, kdaj je konec prekinitvenega servisnega programa? Glej toko 6.
48
49
4. Izraun pomnilnikega naslova naslednjega podatka. Potrebujemo nek register, kamor ob inicializaciji vpiemo pomnilniski naslov prenasane besede. DMA krmilnik ga ob branju/pisanju povecuje tako da kae na naslednji naslov. Ponavadi ga DMA krmilnik povea/zmanja za konstanten korak (najvekrat 1). Za ta korak je potrebno malo asa, saj se to lahko zgodi e pri 3. koraku. 5. tetje prenesenih podatkov. Vsak DMA krmilnik vsebuje register dolzine polja. Ob inicializaciji se vanj vpie dolina, ki se zmanjuje za 1. To mu pove koliko mora e brati ali pisati. 6. Primerjava stevila prenesenih podatkov z dolzino polja. Ko je dolina polja enaka 0, preide DMA v neaktivno stanje in prepusti vodilo mikroprocesorju. Za obvestilo o koncu se v registru krmilnika postavi ustrezen bit ali se sproi prekinitev. DMA prenos je tipicno 5 do 10 krat hitrejsi od programskega. Mikroprocesor mora jemati ukaze iz pomnilnika, DMA pa tono ve kaj mora storiti oz. delo opravi elektronika. Preden DMA krmilnik prine s prenosi, ga je potrebno inicializirati. To doseemo z vpisom ustreznih vrednosti v registre krmilnika. Ob vklopu je DMA krmilnik v neaktivnem stanju, saj v nasprotnem primeru inicializacija sploh ne bi bila mona, saj bi procesor ne mogel dostopati do njegovih registrov. DMA krmilnik mora imeti tudi podatkovne signale, preko katerih je moen dostop do registrov. Pri inicializaciji je potrebno definirati vsaj: zaetni naslov polja v pomnilniku dolina polja smer prenosa
50
Pri veini DMA krmilnikov pa lahko doloimo tudi dosti drugih parametrov (vrsta prenosa, nain delovanja po zakljuku prenosa, uporaba prekinitev, trajanje ciklov,...)
2. Istocasni ali leteci prenos (fly-by). Pri tem nacinu se beseda prebere iz izvora in v istem ciklu zapise v ponor. Naslovni in kontrolni signali se vedno nanasajo na pomnilnik, ker se ti naslovi med prenosom spreminjajo. Naslov V/I naprave je fiksen. Kako potem izbiramo napravo? DMA krmilnik ve, na katero napravo se nanaa prenos, ker pripravljena naprava poroa o svoji pripravljenosti s signalom RDY. Krmilnik opremimo z izhodom DACK. Z njim je naprava obveena, da se prenos nanaa nanjo. Ta signal mora iti v napravo, iz katere je prisel RDY. Kako reiti problem kontrolnih signalov? Kontrolni signali se vedno nanaajo na pomnilnik. Kar pomeni, da branje iz pomnilnika pomeni pisanje v VI napravo. Ena reitev je dodajanje logike, ki invertira bralne signale v pisalne ob aktivnem DACK-u.
51
52
53