2012 m. gruodžio 28 d., penktadienis

2. Vienkristalio CISC architektūros bazinio procesoriaus įtaisai ir jų tarpusavio sąveika


Tikslai:
1.      Suprasti bendriausius procesoriaus darbo principus.
2.      Paaiškinti, kaip procesorius organizuoja programiškai valdomą duomenų apdorojimą, kokias funkcijas ir kokiu būdu jis atlieka pats, o ką tik "paveda" savo "padėjėjams".
Temai studijuoti skirtas laikas:               2 teorijos valandos;
2 savarankiško darbo valandos.
Procesorius- tai programa valdomas įtaisas skirtas duomenims apdoroti. Jis realizuotas viename arba keliuose labai didelio integracijos laipsnio lustuose.
Duomenų apdorojimą iš principo galima realizuoti vien aparatinėmis priemonėmis. Tuo tikslu pirmiausiai parenkamas registrų ir kitų funkcinių įtaisų bei multiplekserių rinkinys, leidžiantis  organizuoti duomenų perdavimą ir apdorojimą.
Tačiau vieno duomenų apdorojimo algoritmo pakeitimas kitu, reikalautų sukurti naują skaitmeninį apdorojimo įtaisą.
Tik kuriant pirmąjį elektroninį kompiuterį  ENIAC, inžinierių ir matematikų bendradarbiavimo rezultate, buvo prieita išvados, kad programas, lygiai taip pat, kaip ir duomenis galima saugoti atmintinėje, taigi keičiant duomenų apdorojimo algoritmą, užtenka pakeisti tik atmintinėje saugomą programą, nekeičiant aparatinės dalies.
Tam, kad atsirastų galimybė vienu ir tuo pačiu elektroniniu įtaisu vykdyti skirtingus algoritmus, būtina  organizuoti programinį duomenų apdorojimą.
Kompiuteryje yra būtinas Centinis (pagrindinis) procesorius CPU (central processing unit) kuris vykdo pagrindinę programą. Daugiaprocesorinėse sistemose centrinio procesoriaus funkcija yra dalinama keliems procesoriams (įprastai šie procesoriai būna identiški), taip gerokai padidinamas sistemos našumas. Vienas iš daugiaprocesorinėje sistemoje esančių procesorių turi būti pagrindiniu.
Visa, ką mes nurodome kompiuteriui padaryti, jo požiūriu, yra sudėtingos užduotys. Kompiuteris turi vykdyti komandų seką. Projektuojant kompiuterį  parenkama jo komandų sistema.
2.1 pav. Komandos ciklas
Žemiausio lygio programavimo kalba išreikšta ta forma, kurią naudoja programuotojas, vadinama asembleriu, o ta forma, kuria dirba kompiuteris - mašinine kalba. Procesorius gali atlikti aritmetines, logines, duomenų persiuntimo, nukreipimo ir kai kurias kitas komandas.
Centrinis procesorius yra vienas sudėtingiausių kompiuterio integrinių grandynų. Geriausias būdas suprasti kompiuterio darbą, išnagrinėti, kaip jis vykdo programą, išreikštą mašininiais kodais.
Nesužadinta programa yra saugoma kokiame nors kompiuterio kaupiklyje (pvz., diskiniame kaupiklyje). Programą sužadinus, ji visa arba jos dalis yra įrašoma į kompiuterio operatyviąją atmintį (RAM).

Vykdoma programa – tai visuma atmintyje saugomų instrukcijų.

Instrukcija susideda iš komandos (operacijos, kurią turės vykdyti CPĮ, kodo ir adresų, nurodančių, kur RAM rasti operacijai atlikti reikalingus duomenis, o kartais ir pačių  duomenų, kurių reikės operacijai atlikti.

Vykdydamas programą, centrinis procesorius ima iš RAM instrukcijas bei duomenis, atlieka instrukcijose nurodytas operacijas ir įrašo į RAM gautus rezultatus.
Instrukcija apdorojama per du žingsnius: pirmiausia centrinis procesorius skaito (išrenka) instrukciją iš atminties, o po to - ją vykdo, taigi programos vykdymo procesą sudaro pasikartojantys instrukcijų išrankos bei instrukcijų vykdymo procesai. Patį instrukcijos vykdymo procesą gali sudaryti keli smulkesni žingsniai.
Taigi, kiekvieno instrukcijos ciklo pradžioje procesorius instrukciją išrenka iš atminties. Nustatant, kuri instrukcija bus išrenkama toliau, tipiškame CPU taikomas programos skaitikliu PC pavadintas registras. Nekalbant apie specialius atvejus, centrinis procesorius po kiekvienos išrankos padidina programos skaitiklio reikšmę vienetu ir taip gali išrinkti kitą sekos instrukciją. Išrinktoji instrukcija siunčiama į centrinio procesoriaus registrą, kuris žinomas kaip instrukcijų (komandų) registras. Instrukcijos pateikiamos dvejetainiu kodu, nurodančiu, kokį veiksmą turi daryti centrinis procesorinis įrenginys. CPU dešifruoja instrukciją ir vykdo ją.
Jei kompiuteris tesugebėtų vykdyti tik aritmetines ir persiuntimo komandas, jis mažai tepranoktų aritmometrą ar kalkuliatorių.
Didžiausią galią kompiuteriams teikia mikroprocesoriuose atliekamos loginės ir nukreipimo operacijos. Jų dėka mikroprocesorius koreguoja savo veiksmus priklausomai nuo ankstesniųjų operacijų rezultatų.
Sąlyginiai nukreipimai leidžia mikroprocesoriui koreguoti savo veiksmus pagal susiklosčiusią situaciją. Atsiranda galimybė kurti išsišakojančias programas, organizuoti duomenų apdorojimo ciklus ir kt.
Centrinis procesorius (CPU) yra vienas sudėtingiausių kompiuterio lustų. Jame realizuotas sudėtingas integrinis grandynas. Jis vykdo programą ir atlieka visas joje nurodytas matematines bei logines operacijas.
Procesoriaus sandaroje galima išskirti tris pagrindines dalis:
Ø      operacinis įtaisas,
Ø      registrų blokas,
Ø      valdymo įtaisas.
2.2 pav. Apibendrinta procesoriaus sandara

Visi CPU įtaisai tarpusavyje yra sujungti vidinėmis duomenų ir adresų bei valdymo signalų magistralėmis. Duomenų magistrale abiem kryptimis cirkuliuoja duomenys ir adresai, o adresų magistrale – tik adresai.

Operacinis įtaisas
Duomenų apdorojimo įtaisą kompiuterinės   technikos idėjų pradininkas Čarlzas Beibidžas pavadino "skaičių malūnu". Tad kas gi ir kaip mala skaičius MP 8080?
ALU (Arithmetic and Logic Unit) – aritmetinis ir logikos įtaisas atlieka aritmetines (pvz., sudėties, atimties,) ir logines ( pvz., loginės sandaugos) operacijas. Kiekvienos komandos poveikis priklauso nuo to, kokie multiplekseriai gauna valdymo signalus. Tokiu būdu atsiranda galimybė įvairia tvarka rikiuojant komandas  tuo pačiu įrenginiu vykdyti skirtingus algoritmus.
Žinoma, registrų, multiplekserių ir kitų įtaisų parinktas variantas gali būti labiau tinkamas vieniems arba kitiems algoritmams apdoroti, tačiau tai  ir yra mokestis už tai, kad vieną ir tą patį įtaisą pritaikome įvairiems uždaviniams spręsti.
Itin svarbios jame žymių registro funkcijos. Operacinis įtaisas ne tik formuoja operacijos rezultatą, bet ir žymes, apibudinančias jį. Žymių registre F (flags) fiksuojamos žymės, kurios praneša programai apie kompiuterio būseną, nurodo aritmetinės operacijos rezultato ypatumus, apsprendžia, ar leidžiami pertraukčių aptarnavimai ir pan.
Nors operacinis įtaisas turi grandines, galinčias realizuoti bet kurią komandų sistemos komandą, tačiau visus tam reikalingus valdymo signalus jis gauna iš valdymo įtaiso.
Valdymo įtaisas suderina visų CPU įtaisų darbą. Jis valdo programos komandos, paimtos iš PK atmintinės vykdymą, formuoja valdymo signalus per magistralę perduodamus kitiems mikroprocesorinės sistemos įtaisams.
Schemos, realizuotos mikroprocesoriaus valdymo įtaise, inicijuoja operacinio ir kitų mikroprocesoriaus įtaisų darbą. Formuojami valdymo signalai panaudojami ir kitų procesoriaus modulio dalių, pvz.: sistemos valdiklio darbo iniciacijai. Operaciniame įtaise suformuotos žymės Y turi įtakos valdymo įtaise vykdomoms sąlyginio nukreipimo komandoms.  Pertraukties signalai inicijuoja valdymo įtaisą pereiti prie kitos programos vykdymo.

Operacinis ir valdymo įtaisai yra svarbiausi ir privalomi procesoriaus įtaisai.




2.3 pav. Operacinio ir valdymo įtaisų sąveika

D- duomenys; R – rezultatai, Y – Žymės, X – valdymo signalai, K – komanda, Int – pertrauktys.
Tačiau be šių įrenginių procesoriuose paprastai yra ir registrų blokas.
Registrų blokas
Registras - specializuota atminties ląstelė, esanti procesoriuje. Registruose saugomi į CPU įvesti duomenys (pvz., adresai, nurodantys, kur atmintinėje ieškoti duomenų ar programos komandų; duomenys su kuriais reikės atlikti veiksmus), skaičiavimo rezultatai. Kokias operacijas gali atlikti ALU, kiek, kokių ir kokios talpos registrų yra PP, taip pat valdymo įtaiso sudėtingumas priklauso nuo konkretaus CPU architektūros.
Skirtingai nuo įprastos atminties, registrai yra neatskiriama procesoriaus dalis, daugumos paplitusių procesorių komandos leidžia manipuliuoti tik duomenimis, esančiais registruose. Tipišku atveju, procesorius perkelia duomenis iš atminties į registrą, atlieka su duomenimis tam tikrus veiksmus, o paskui perkelia rezultatą į atmintinę.
Kreiptis į atmintinės ląstelę atliekama per magistralę. Tam reikia atskiro procesoriaus darbo ciklo, o registrai yra "po ranka", pačiame procesoriuje. Kiekvienas registras yra tartum lenta, kurioje mikroprocesorius fiksuoja tarpinius skaičiavimų rezultatus.
Be paties procesoriaus šiuolaikiniuose procesoriuose gali būti integruoti ir kiti įtaisai, pvz.:pirmojo ir antrojo lygio priešatmintinės, atmintinės valdiklis. Šiuolaikiniai  procesoriai turi visą eilę papildomų posistemių, leidžiančių didinti duomenų apdorojimo efektyvumą, bet apie tai medžiaga bus pateikta antrajame modulyje.  
2.4. Bazinis CISC architektūros procesorius
Šios potemės tikslas - susipažinti su aštuonių skilčių mikroprocesoriumi I8080. Tik perpratus konkretaus mikroprocesoriaus vidinę organizaciją, jo programinį modelį, galimas tolimesnis žingsnis - programavimo įvaldymas. Procesoriaus I8080 pasirinkimas nėra atsitiktinis, nes išmokę jį, būsite tarsi įvaldę pagrindinę Intel procesorių abėcėlę. Nagrinėjant sudėtingesnius procesorius, bereiks tik perprasti kai kuriuos juose įgyvendintus naujus sprendimus. Be to tai bus svarus pagrindas mikrovaldiklių ir programuojamųjų loginių valdiklių dalykams, kuriuose būtent 8-ių skilčių procesorių programavimas bus plačiai nagrinėjamas. Pagrindiniai Jūsų uždaviniai, studijuojant šią temą - MP struktūros ir funkcionavimo įsisavinimas.
Susipažinkite - mikroprocesorius I8080
Prisiminkite, bendrus principus mes jau aptarėme. Tad perdaug sudėtinga neturėtų būti. Vidinėje mikroprocesoriaus struktūroje išskiriamos 3 pagrindinės sudėtines dalys:
Ø      aritmetinis - loginis įtaisas,
Ø      valdymo įtaisas,
Ø      bendrųjų ir specialiųjų registrų blokas.
2.4 pav. Mikroprocesoriaus 8080 sandara

Operacinis įtaisas sudarytas iš šių pagrindinių dalių:
Ø      aritmetinio loginio įtaiso (ALU), skirto betarpiškai apdoroti informaciją,
Ø      kaupiklio, skirto atliekamų operacijų rezultatui saugoti,
Ø      žymių registro F (flags),
Ø      pagalbinių schemų.
Kaupiklis (akumuliatorius) irgi būna beveik visuose procesoriuose. Paprastai jame turi būti iš ankso įrašomas vienas dvinarės operacijos (sudėties, atimties ir pan.) narių. Antrasis narys gali būti bendrosios paskirties registre arba ir atmintinėje už procesoriaus ribų. Operacijos rezultatas irgi patalpinamas akumuliatoriuje ir gali būti iš ten perkeltas į reikiamą vietą vėlesnėmis komandomis.

Žymių registras
Šis registras saugo keletą bitų, kurių reikšmės automatiškai nustatomos po kai kurių aritmetinių bei loginių operacijų ir gali būti naudojamos kitoms aritmetinėms operacijos arba sąlyginio nukreipimo komandoms. Pavyzdžiui, sudedant du ašuonženklius (dvejetainėje sistemoje) skaičius, gali būti gautas irdevynženklis dvejetainis skaičius. Perteklinis tokio skaičiaus bitas bus išsaugotas žymių registro F (flags) "carry" (angl. perpildymas) skiltyje.
Visos žymių (flags)  registro reikšmės gali būti perkeliamos į dėklą bei vėliau iš ten atkuriamos.

Žymių (veiksmaženklių) registre F, įvykdžius aritmetinę - loginę operaciją, fiksuojamos to rezultato žymės:
Z (ZERO) -                  į šiai žymei skirtą skiltį įrašomas 1, kai įvykdžius komandą gaunamas rezultatas lygus nuliui.
S (SIGN) -                   ši žymė suformuojama tada, kai gaunamas neigiamas aritmetinės komandos vykdymo rezultatas.
C (CARRY) -      kėlimo vienetas, suformuojamas tada, kai įvykdžius aritmetinę operaciją, gaunama pernaša iš vyriausios skilties.
AC (accumulator) -          perneša iš jaunesnės tetrados į vyresnę.
P (parrity) - lygiškumo žymė - šioje skiltyje gaunamas  1, jeigu vienetukų skaičius kaupiklyje lyginis.
Pagal  atskiras  žymių registro  F  skiltis  vykdomos  sąlyginės  nukreipimo,  kreipimosi  į paprogramę bei grįžimo iš paprogramės komandos.

Komandos vykdymo fazėje į operacinį įtaisą išduodami valdymo signalai priklauso ne tik nuo operacijos kodo, bet ir adresavimo režimo.
Pvz., vykdant tipinę aritmetinės sudėties operaciją (prie kaupiklio turinio sumuojant atmintinės ląstelės turinį, būtinas dar vienas kreipties į atmintinę ciklas ir duomens iš išrinktos ląstelės perdavimas į procesorių. Operaciniame įtaise tas duomuo bus susumuojamas su kaupiklio A turiniu. Rezultatas išsaugomas kaupiklyje. Svarbu tai, kad žymių registre suformuojamos ir išsaugomos žymės, apibūdinančios gautąjį rezultatą.
Kai kurie šio bloko registrai specializuoti, o kai kurių paskirtis neapibrėžta, jie vadinami bendros paskirties arba tiesiog bendraisiais registrais.
Bendrosios paskirties registrai.  Įvykdžius komandą, rezultatas dažnai nesiunčiamas į pagrindinę atmintį, o laikinai saugomas viename iš bendrųjų registrų. Vėliau jį galima panaudoti vykdant kitą komandą.
Vienas ar keli bendrosios paskirties registrai yra labai nedidelė greitai pasiekiama procesoriaus vidinė atmintinė duomenims saugoti. Priklausomai nuo procesoriaus tipo, kai kurie aritmetiniai veiksmai gali būti įmanomi tik tarp tokio registro ir kaupiklio. Kad būtų galima bendruosius registrus skirti vieną nuo kito, jiems suteikiami unikalūs vardai arba numeriai, kurie ir naudojami programoje. Intel 8080 procesoriaus bendrosios paskirties registrų bloke yra šeši aštuonių skilčių bendrosios paskirties registrai: B, C, D, E ir F. Jie gali būti naudojami ir kaip registrų poros, turinčios po šešiolika skilčių. Galimos tik tokios registrų poros:BCDE, HL, kurios žymimos atitinkamas B, D ir H raidėmis. Operaciniame bloke esantys  A ir F registrai sudaro procesoriaus būsenos žodį PSW (processor status word).
Bendruosius registrus programuotojas savo programoje gali naudoti taip, kaip jam reikia.
Kiekvienas iš bendrųjų registrų ir kaupiklis A žymimi ne tik raidėmis, bet ir triženkliu dvejetainiu kodu, kuriuo registras nurodomas mašinos komandose, žiūrėkite lentele:

4.1 lentelė. Registrų vadrai ir dvejetainiai kodai
Registro
vardas
Dvejetainis
kodas
Registro
vardas
Dvejetainis
kodas
B
C
D
E
000
001
010
011
H
L
M
A
100
101
110
111

Čia raidė M žymi ne registrą, o pagrindinės atminties ląstelę (baitą), kurios adresas saugomas registrų poroje HL. Todėl kreipiantis į atminties ląstelę, komandoje naudojamas operandas M.

Kad būtų galima skirti registrus sudarančius bitus, šie yra numeruojami iš dešinės į kairę nuo 0 iki 7. Bitas 0 vadinamas žemesniuoju (jauniausiuoju), o bitas 7 – aukštesniuoju (vyriausiuoju) registro bitu.

a ) Aštuonių bitų ilgio registre;         b) Šešiolikos bitų ilgio registre
2.5 pav. Sunumeruoti bitai

Programuotojas savo programose negali pakeisti kai kurių specializuotų registrų paskirties arba sužinoti jų turinio, t. y. sakoma, kad šie registrai programai yra neprieinami. Bet yra registrų, kuriuos programuotojai gali naudoti savo programoje. Tokie mikroprocesoriaus registrai vadinami programoje naudojamais (programai prieinamais) registrais.

Kai kurių mikroprocesorių tam tikrus registrus galima naudoti specialiems tikslams, pavyzdžiui,: kaupiklis, programos skaitiklis, komandų registras, atminties adreso registras ir kt. Kaupiklis yra vienas iš ALU registrų ir skirtas operandui (prieš atliekant operaciją) arba operacijos rezultatui laikinai saugoti.
 Svarbiausi procesoriaus  registrai:
Ø      Atminties adreso registras. Jis sisteminėje magistralėje prijungtas prie adresų linijų ir nurodo vykdomos skaitymo arba rašymo operacijos adresą atmintyje.
Ø      Duomenų buferio registras. Jis prijungtas sisteminėje magistralėje prie duomenų linijų ir jame yra patalpinami saugojimui į atmintį paruošti arba paskutinieji nuskaityti iš atminties duomenys.
Ø      Programos skaitiklis PC. Jame yra sekančios išrenkamos instrukcijos adresas.
Ø      Instrukcijų registras. Jame patalpinama paskutinė išrinkta instrukcija.
Programos skaitiklis PC (komandų skaitiklis, komandos adreso registras), vėlesniuose procesoriuose IP – (komandos rodiklis) naudojamas tuomet, kai reikia formuoti ir saugoti vykdomos komandos adresą. Įvykdžius komandą, programos skaitiklyje bus saugomas naujo komandos adresas, t. y. adresas, kuriuo ši komanda saugoma mikrokompiuterio atmintyje.
Adreso registras naudojamos komandos, operando arba operacijos rezultato adresui įsiminti tuomet, kai reikia komandą arba operandą skaityti iš atminties arba operacijos rezultatą įrašyti į atmintį. Adreso registras gali būti ne mikroprocesoriuje, o mikrokompiuterio pagrindinėje atmintyje.
Dėklo viršūnės registras Kaip jau minėta 1.1 skyriuje, tam tikra atmintinės dalis paprastai naudojama, kaip dėklas. Tam, kad būtų galima kreiptis į ją, reikalingas specialios paskirties dėklo viršūnės registras.   Įrašant informaciją į dėklą, kiekvieno sekančio žodžio adresas didinamas, atitinkamai pakeičiant dėklo viršūnės adresą. Nuskaitant informaciją, dėklo viršūnės adresas mažinamas.
Grįžtant prie nutrauktos programos tęsimo, ši informacija iš dėklo atstatoma. Kompiuteryje gali atsitikti taip, kad viena programa nutraukia kitą, šią - dar viena. Sugrįžtama prie nutrauktųjų programų - priešinga tvarka. Todėl informacija, įrašyta į dėklą pirmoji, nuskaitoma iš jo paskutinė.
Kviečiant įvairių programos vietų bendrai naudojamą paskirties kodo fragmentą (pavyzdžiui, simbolio išvedimo į ekraną paprogramę), taip pat aptarnaujant pertraukimus, svarbu neužmiršti šiuo metu vykdomos komandų sekos adreso, kad užbaigus pertraukiančiąją programą būtų galima grįžti atgal. Grįžimo adresas beveik visada išsaugomas dėkle. Baigiant pertraukiančiąją programą, dėklo viršūnėje visada bus reikalingas grįžimo adresas, nes jis  buvo įkeltas paskutinis.
Dėkle gali būti išsaugomas ne tik ankstesnis vykdymo adresas, bet ir įvairi kita su ankstesniu vykdymu susijusi informacija (registrų bei žymių reikšmės, kai kada ir informacija apie įvedimo ar išvedimo įrenginių būseną).
Procesoriaus būsenos žodžio (PSW) registre saugomas procesoriaus būsenos žodis PSW (Processor Status Word), t. y. Informacija apie MP būseną ir vykdomą programą kiekvienu laiko momentu. Pavyzdžiui, PSW registre paprastai saugomi įvykdytos komandos rezultato požymiai (neigiamas rezultatas, nulinis rezultatas, perpildymas ir kt. Nors PSW registras skirtas ypatingoms funkcijoms atlikti, bet jį savo programose gali naudoti ir programuotojas, t. y. Tam tikromis komandomis galima skaityti ir net pakeisti šio registro turinį. Dažnai  PSW sudaro kaupiklio ir žymių registro pora,  pvz.,  I 8080 procesoriuje A ir F registrai sudaro porą PSW.
Komandos vykdymo algoritmas
Taigi buvo sukurtas toks procesoriaus funkcionavimo algoritmas:
Pirmuoju komandos išrinkimo žingsniu iš specialaus Programos komandų skaitiklio arba Komandos rodyklės registro išrenkama komanda, kuri išsaugoma komandos registre.
Antrajame žingsnyje dešifruojamas komandos operacijos kodas ir išduodama valdymo signalų seka būtina tai komandai įvykdyti.
Trečiuoju žingsniu išsaugomas operacijos rezultatas.
Prieš pradedant vykdyti kitą ciklą, komandų skaitiklio turinys padidinamas ir procesorius analogiškai kitame cikle vykdo antrą, vėlesniame trečiąją ir kitas komandas.
Įprastinę nuoseklią komandų vykdymo tvarką keičia nukreipimo komandos, kurios į komandų skaitiklį įrašo kitą adresą , todėl atsiranda galimybė „peršokti“ į kitą programos vietą.
Komandų registras skirtas vykdomos komandos kodui saugoti. Kaip buvo minėta, operacijos kodas, komandos kodo dalis, naudojamas formuojant VĮ valdymo signalų seką, nes ji priklauso nuo konkretaus operacijos kodo. Likusioje komandos kodo dalyje turi būti nurodyta informacija apie operandų, su kuriais atliekama operacija, adresus.
Komandų dešifravimo įtaise operacijos kodas dešifruojamas ir keičiamas į valdymo signalą, kuris sužadina atitinkamas valdymo įtaiso grandines, o šis savo ruožtu formuoja valdymo signalus būtinus tai komandai įvykdyti.
Tam, kad programa galėtų būti vykdoma, pirmiausiai į procesoriuje esantį programos komandų skaitiklį PC (IPįvedamas pirmosios komandos adresas.
Pradėjus dirbti mikroprocesorinei sistemai, šis adresas per adreso registrą perduodamas  į adresų magistralę ir iš to adreso operatyviosios atmintinės ląstelės (ląstelių) išrenkama pirmoji komanda. Ji per duomenų buferius įrašoma į procesoriaus komandų registrą. Komandų operacijos kododešifratoriuje dešifruojamas operacijos kodas. Dešifratorius  viena iš išėjimo linijų išduoda signalą valdymo įtaisui, o šis savo ruožtu išduoda sinchronizuotus  komandai vykdyti reikalingus signalus į kitus procesoriaus įtaisus bei signalus, reikalingus magistralei valdyti.
Po to komandų skaitiklio turinys padidinamas ir analogiškai išrenkama bei vykdoma kita programos komanda.
Įvesties – išvesties komandomis duomenys įvedami į procesorių iš išorinio įrenginio arba atvirkščiai. Nukreipimo komandos gali pakeisti komandų skaitiklio turinį ir tuo pačiu įprastinę komandų vykdymo tvarką. Sąlyginės nukreipimo komandos suteikia procesoriui ypatingą galią. Tai leidžia organizuoti ciklinį duomenų apdorojimą, išsišakojančius programų algoritmus.
Intel 8086 - tai 16-os duomenų skilčių procesorius, turintis 20 adresų linijų, multipleksuotų
su duomenų linijoms. Jis gali adresuoti iki 1 MB talpos pagrindinę atmintį.
Šis MP  "iš apačios į viršų" programiškai suderintas su Intel 8080, tačiau visiško komandų
atitikimo asemblerio lygyje nėra. Jo komandų sistema yra žymiai išplėsta, naudojami
sudėtingesni adresacijos režimai, žymiai pakeista MP vidinė sandara.
8086 "brolio" - MP 8088 sandara identiška, tačiau jis teturi 8 išorines duomenų linijas.
Vidinėje MP sandaroje skiriamos dvi savarankiškos dalys: operacinis ir sąsajos blokai . Komandų išrinkimo bei vykdymo fazės konvejerizuojamos. Operaciniam įtaisui tebevykdant komandą, į sąsajos bloke esančius 6 komandų eilės registrus išrenkami kitos komandos baitai. Paprastai, pabaigus vienos komandos vykdymo fazę, iš karto galima pradėti vykdyti kitą komandą.














2.6 pav. MP 8086 sandara

Šis MP turi multipleksuotus adreso ir duomenų išvadus AD0-AD15. Likusieji adreso išvadai A16-A19 yra multipleksuoti su būsenos baito skiltimis.
Kiti signalai:

Ø      READY - iš laikrodžio perduodamas signalas apie kitų modulių pasiruošimą informacijos perdavimui / priėmimui.
Ø      RESET -    signalas iš laikrodžio, - perveda MP į išeities būseną.
Ø      CLK -         taktiniai impulsai.
Ø      INTR -        maskuojamasis (draudžiamasis) pertraukčių signalas.
Ø      NMI -         nemaskuojamasis pertraukčių įėjimas.
Ø      INTA\ - pertraukimo patvirtinimo signalas.
Ø      HOLD - tiesioginių mainų reikalavimas.
Ø      HLDA - tiesioginių mainų patvirtinimo signalas.
Procesoriuje 8086 pasikeitė bendrųjų registrų vardai. Programiniame šio procesoriaus modelyje išskiriami 4  šešiolikos skilčių registrai AXBXCX ir DX. Savo ruožtu kiekvienas iš jų gali būti naudojamas ir kaip du atskiri aštuonių skilčių registrai: AH, AL; BHBL ir t. t.


Procesoriaus registrai

Duomenų registrai

AX
Akumuliatorius
BX
Bazinis registras
CX
Skaitiklis
DX
Duomenų registras

















2.7 pav. Procesoriaus 8086 registrai
Plačiau apie atminties segmentaciją ir konvejerizavimo principą sužinosite kitose temose.
2.6. SVK
  1. Ar galima visus valdymo signalus, būtinus komandos įvykdymui, išduoti vienu metu?
2.              Kokiu būdu formuojami elementarūs valdymo signalai?

3.      Kokie pagrindiniai parametrai charakterizuoja procesorių?

4.       kokių pagrindinių dalių susideda kompiuterio procesorius?

5.      Kas vadinama ALU?

6.       atlieka procesoriaus aritmetinis-loginis įrenginys?

7.      Kas yra ir kam naudojami procesoriaus registrai?

8.      Kas vadinama procesoriaus kaupikliu (akumuliatoriumi)?

9.      Kas sudaro ir kam skirtas procesoriaus žymių flagregistras?

10.  Kas vadinama ir nuo ko priklauso procesoriaus adresavimo erdvė?

11.    nusako procesoriaus skilčių skaičius?

12.   kokių dalių sudaryta procesoriaus komanda?

13.  Kas vadinama operandu?

14.  Kodėl MP I8086 sudarytas  2 autonomiškų dalių?

15.  Kokia komandų eilės registrų funkcija I8086?

16.  Kam skirtas sumatorius I8086 sąsajos bloke?

17.  Kuo šis mikroprocesorius skiriasi nuo I8088?

18.  Kokius žinote bendruosius I8086 registrus ir kokie  naudojimo ypatumai?

19.  Kaip ir kodėl MP 8086 RAM skirstoma į bankus?

1.      Procesorius- tai programa valdomas įtaisas skirtas duomenims apdoroti. Jis realizuotas viename arba keliuose labai didelio integracijos laipsnio lustuose.
2.      Žemiausio lygio programavimo kalba išreikšta ta forma, kurią naudoja programuotojas vadinama asembleriu, o ta forma, kuria dirba kompiuteris - mašinine kalba.
3.      Procesorius gali atlikti aritmetines, logines, duomenų persiuntimo, nukreipimo ir kai kurias kitas komandas.
4.       Nesužadinta programa yra saugoma kokiame nors kompiuterio kaupiklyje (pvz., diskiniame kaupiklyje). Programą sužadinus, ji visa arba jos dalis yra įrašoma į kompiuterio operatyviąją atmintį (RAM).
5.      Vykdoma programa - tai visuma atmintyje saugomų instrukcijų.
6.      Instrukcija susideda iš komandos (operacijos, kurią turės vykdyti CPĮ, kodo ir adresų, nurodančių, kur RAM rasti operacijai atlikti reikalingus duomenis, o kartais ir pačių  duomenų, kurių reikės operacijai atlikti.
7.      Vykdydamas programą, centrinis procesorius ima iš RAM instrukcijas bei duomenis, atlieka instrukcijose nurodytas operacijas ir įrašo į RAM gautus rezultatus.
8.      Instrukcija apdorojama per du žingsnius: pirmiausia centrinis procesorius skaito (išrenka) instrukciją iš atminties, o po to - ją vykdo, taigi programos vykdymo procesą sudaro pasikartojantis instrukcijų išrankos bei instrukcijų vykdymo procesas
9.      Didžiausią galią kompiuteriams teikia mikroprocesoriuose atliekamos loginės ir nukreipimo operacijos. Jų dėka mikroprocesorius koreguoja savo veiksmus priklausomai nuo ankstesniųjų operacijų rezultatų.
10.  Sąlyginiai nukreipimai leidžia mikroprocesoriui koreguoti savo veiksmus pagal susiklosčiusią situaciją. Atsiranda galimybė kurti išsišakojančias programas, organizuoti duomenų apdorojimo ciklus ir kt.
11.  Visi CPU įtaisai tarpusavyje yra sujungti vidinėmis duomenų ir adresų bei valdymo signalų magistralėmis.
12.  Duomenų magistrale abiem kryptimis cirkuliuoja duomenys ir adresai, o adresų magistrale – tik adresai.
13.  Itin svarbios procesoriuje žymių registro funkcijos. Operacinis įtaisas ne tik formuoja operacijos rezultatą, bet ir žymes, apibudinančias jį. Žymių registre F (flags) fiksuojamos žymės, kurios praneša programai apie kompiuterio būseną, nurodo aritmetinės operacijos rezultato ypatumus, apsprendžia, ar leidžiami pertraukčių aptarnavimai ir pan.
14.  Valdymo įtaisas  suderina visų CPU įtaisų darbą. Jis valdo programos komandos, paimtos iš PK atmintinės vykdymą, formuoja valdymo signalus per magistralę perduodamus kitiems mikroprocesorinės sistemos įtaisams.
15.  Operacinis ir valdymo įtaisai yra svarbiausi ir privalomi procesoriaus įtaisai.
16.  Registruose saugomi į CPU įvesti duomenys (pvz., adresai, nurodantys, kur atmintinėje ieškoti duomenų ar programos komandų; duomenys su kuriais reikės atlikti veiksmus), skaičiavimo rezultatai
17.  Kreiptis į atmintinės ląstelę atliekama per magistralę. Tam reikia atskiro procesoriaus darbo ciklo, o registrai yra "po ranka", pačiame procesoriuje. Kiekvienas registras yra tartum lenta, kurioje mikroprocesorius fiksuoja tarpinius skaičiavimų rezultatus.
18.  Operacinis įtaisas sudarytas iš šių pagrindinių dalių: aritmetinio loginio įtaiso (ALU), skirto betarpiškai apdoroti informaciją, kaupiklio, skirto atliekamų operacijų rezultatui saugoti, žymių registro F (flags), pagalbinių schemų.
19.  Kaupiklis (akumuliatorius) irgi būna beveik visuose procesoriuose. Paprastai jame turi būti iš ankso įrašomas vienas dvinarės operacijos (sudėties, atimties ir pan.) narių. Antrasis narys gali būti bendrosios paskirties registre arba atmintinėje už procesoriaus ribų. Operacijos rezultatas irgi patalpinamas akumuliatoriuje ir gali būti iš ten perkeltas į reikiamą vietą vėlesnėmis komandomis.
20.  Žymių registras saugo keletą bitų, kurių reikšmės automatiškai nustatomos po kai kurių aritmetinių operacijų ir gali būti naudojamos kitoms aritmetinėms operacijos arba sąlyginio nukreipimo komandoms.
21.   Įvykdžius komandą, rezultatas dažnai nesiunčiamas į pagrindinę atmintį, o laikinai saugomas viename iš bendrųjų registrų. Vėliau jį galima panaudoti vykdant kitą komandą.
22.  Atminties adreso registras  sisteminėje magistralėje prijungtas prie adresų linijų ir nurodo vykdomos skaitymo arba rašymo operacijos adresą atmintyje.
23.  Programos komandų skaitiklyje  yra kitos išrenkamos instrukcijos adresas.
24.  Instrukcijų registras. Jame patalpinama paskutinė išrinkta instrukcija.
25.  Programos skaitiklis PC (komandų skaitiklis, komandos adreso registras), vėlesniuose procesoriuose IP – (komandos rodiklis) naudojamas tuomet, kai reikia formuoti ir saugoti vykdomos komandos adresą. Įvykdžius komandą, programos skaitiklyje bus saugomas naujos komandos adresas, t. y. adresas, kuriuo ši komanda saugoma mikrokompiuterio atmintyje.
26.  Komandų registras skirtas vykdomos komandos kodui saugoti.
27.  Adreso registras naudojamos komandos, operando arba operacijos rezultato adresui įsiminti tuomet, kai reikia komandą arba operandą skaityti iš atminties arba operacijos rezultatą įrašyti į atmintį.
28.  Tam tikra atmintinės dalis paprastai naudojama, kaip dėklas. Tam, kad būtų galima kreiptis į ją, reikalingas specialios paskirties dėklo viršūnės registras.  
29.  Įrašant informaciją į dėklą, kiekvieno sekančio žodžio adresas didinamas, atitinkamai pakeičiant dėklo viršūnės adresą. Nuskaitant informaciją, dėklo viršūnės adresas mažinamas. Grįžtant prie nutrauktos programos tęsimo, ši informacija iš dėklo atstatoma.
30.  Procesoriaus būsenos žodžio (PSW) registre saugomas procesoriaus būsenos žodis PSW (Processor Status Word), t. y. informacija apie MP būseną ir vykdomą programą kiekvienu laiko momentu.
31.  Dažnai  PSW sudaro kaupiklio ir žymių registro pora, pvz.,  I  8080 procesoriuje tai A ir F registrai.
32.  Pirmuoju komandos išrinkimo žingsniu iš specialaus programos komandų skaitiklio arba Komandos rodyklės registro išrenkama komanda, kuri išsaugoma komandos registre.
33.  Antrajame žingsnyje dešifruojamas komandos operacijos kodas ir išduodama valdymo signalų seka būtina tai komandai įvykdyti.
34.  Trečiuoju žingsniu išsaugomas operacijos rezultatas.
35.  Prieš pradedant vykdyti kitą ciklą, komandų skaitiklio turinys padidinamas ir procesorius analogiškai kitame cikle vykdo antrą, vėlesniame trečiąją ir kitas komandas.
36.  Įprastinę nuoseklią komandų vykdymo tvarką keičia nukreipimo komandos, kurios į komandų skaitiklį įrašo kitą adresą , todėl atsiranda galimybė „peršokti“ į kitą programos vietą.
37.  Tam, kad programa galėtų būti vykdoma, pirmiausiai į procesoriuje esantį komandų PC (IP) skaitiklį įvedamas pirmosios komandos adresas.
38.  Pradėjus dirbti mikroprocesorinei sistemai, šis adresas per aderso registrą perduodamas  į adresų magistralę ir iš to adreso operatyviosios atmintinės ląstelės (ląstelių) išrenkama pirmoji komanda
39.  Intel 8086 - tai 16-os duomenų skilčių procesorius, turintis 20 adresų linijų, multipleksuotų su duomenų linijoms. Jis gali adresuoti iki 1 MB talpos pagrindinę atmintį.
40.  Šis MP  "iš apačios į viršų" programiškai suderintas su Intel 8080, tačiau visiško komandų atitikimo asemblerio lygyje nėra. Jo komandų sistema yra žymiai išplėsta, naudojami sudėtingesni adresavimo režimai, žymiai pakeista MP vidinė sandara.
41.  8086 "brolio" - MP 8088 sandara identiška, tačiau jis teturi 8 išorines duomenų linijas.

Komentarų nėra:

Rašyti komentarą

Etiketės