Sunteți pe pagina 1din 53

6

~IS"J'l ;,\m cu !\[lr:Jlc >PH<)( ;1.:sc )A RI ·:

Cartea a fost structurată în 7 capitole. Capitolul I este o introducere în tematica


abo rd ată în caite.
Capito lele 2-4 prezintă microprocesoare din fam ilia fntel. Sunt descrise micro- CUPRINS
procesoarele 8086, 80386 şi Pentium rI. Desigur există mai multe microprocesoare în
familia Intel dar au fost alese cele de mai sus pentru că:
„ .„„ . „„:.. „„„„. „.„„„„.„„„„„„„„„.. „?
8086 este primul microprocesor pe l 6 biţi al familiei Jntel şi primul microprocesor ~~eraiă i~t~:~<l~;~~·~~·:::::::::: : :::: ·:: : : : ::::: ::: :: ::::::······ ·„. ···; ···:···· ··„:;: ·„·„„„...„.„........ ~
0

pe 16 biţi care s - a răspândit, are caracteristici care au fost preluate şi dezvoltate p. . I. I. Direcţii de evoluţie ale microprocesoarelor pe 16, 3_ ş1 64 b1,1..„„„„„ „„„„ „::·i 6
de toţi membri ulteriori ai familiei, este didactic şi uşor de înţeles;
~ap. 2. 2.~ii·c~~;,~~~:~:::1
1
~086'::„„„„„„„„„„„„„.„„„„„„
::::::::::::::::::::::::'.:::::::::::::::::::::::::::::::::::::::::::::::·::::·::·.:·: ...::~~
1

c 80386 este primul microprocesor pe 32 biţi al familie i fn te l şi modul său de


I . Prezentare „„„ .. „.„ .. „„„„.„„„. „28
gestiune a memoriei se regăseşte la toţi mem bri ulteriori ai fami liei; 0 enerală

2 ? Modurile d; lucru ş i tenninalele„.„„„„„„.„„ .. „„„„„„„„„ „„.„„„„.„.„„„„„ ..


Pentium Il este un microprocesor evoluat care implementează câteva caracteristici
~ l.~~;~:~r: ::;:::: :::.: :::.:.: ::: : :.:.•.•• .•::·: :.::.: .: : :: : ::.: : ::: :: .::: : : :: : : : : :••·:;
o 31
structurale avansate, ca de exemplu execuţia dinamică şi speculativă a programelo1~ ,· J
care asigură extraordinarele perfonnanţe regăsite şi la microprocesoarele mai 2.5. Oroanizarea şi gestionarea memone1„„„„„ .. „„„„„„„ „„„„„„..„„„„„„„„„„ ..
evoluate de azi. ~
2.6. Sistemul . .
de intrare I 1eş1Te„„„„„„„„„„„„„„„„ „„ .. „„ .. „„„„„„„„. .· .„......„ ...„„.46
„ . 45

2 7 Sistemul de întreruperi „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„. 50


1--5-'s: Unitate centrală cu microprocesorul 8086 .„„„„„:„„„„„„„„„.„i.8086.„„„„„„56
Sunt descrise: structura microprocesoarelor, modul de gestiune a memo1iei, sistemul
de întreruperi, modul de conectare a circuitelor de memorie şi a porturilor de intrare I ieşire. . - 2]). Conectarea memoriilor la 0 un.itate centrală cu m.1croprocesoru :::::::::::::
Capitolele 5 şi 6 prezintă microprocesoare din familia Motorola. Au fost·aJese ,_·•.„
1 2 I O. Conectarea porturilor la o unitate centra~ă cu imcro~rocesor~ 18086 59
62
microprocesoarele 68000, echivalentul lui 8086 şi 68030, echivalentul lui 80386. Deşi ---1:2.11 Conectarea microprocesorului 8086 în sisteme mult1?roce2s8o91 „„„„„„„„„„„. 63
răspândirea microprocesoarelor Motorola este mai redusă, autorul a considerat utilă . . 2 11 1 Arb1'tt·area maoistralei comune de către c1rcu1tul 8 „„„„„„„„„„ „. -
. . . "' . . I 8?89 „„„„„„ „„ „„„„6:>
? I I 2 Controlul magistralei comune de către c11:cu1tu - 66
prezentarea lor pentru a cunoaşte şi alte sol uţii pentru implementarea unor caracteri"stici C11i
11 :3: Comanda controlerului 8288 .de către arbitrul 8289 „„„„„„„„„„ „„„„
i
existente şi la micoprocesoarele din familia lntel precum şi noi caracteristici. / 2 . 11.4 . Confornraţii de sistem cu arbitrul 8289 „„„„„„„„„„„„„„„„„„„ .. „„„. 66
Capitolul 7 este dedicat calculatorului PC, mai exact a modului de conectare a sa Cap 3 Microprocesorul S0386 „„„„.„„:„„„„„„„„ ..„ .. „„„„.„„„„„„„„„„„„.„„„„ .. „„ .. „73 73
la lumea externă. Autorul consideră că este impo1tantă cunoaşterea modului în care

:, ·!ti; ,; ~:i~!i:~:z • 1 1
calculatornl PC poate monitoriza, controla şi comanda diferite aplicaţii externe, industriale
mai ales, ca urmare sunt descrise căi le prin care PC-ul poate face acest lucru: porturile
paralel şi seri e, portul USB şi magistralele de intrare I ieşire de pe placa de bază. Sunt
, 3 4. Ciclurile •· ••·•• •·•••••••••··
maş in ă „.„„„„„„„„„ •·•••· ·•:·••. ·•······• •. •••••„„ .. •„„
„„„„„„„„.„„„„„„„ ·• .. · • H
••••••• •••••• •••• •86
~'.'""'°'. 5 Oroanizarea ş i gestionarea memoriei .„„„„.„.„„.„„.„„„„„„„„„„„„„„„„.. „„„. 86
descrise şi câteva aplicaţii .
· t-·.).
1 . 3.5.o l. Modul real „„„„„„„„„„„„„„„„„„„„„„„„„„„ .···.„„„„„„„„„„„„„„„ „„„ g
Această carte constituie suportu] pentru disciplina Sisteme cu microprocesoare, •.. ·1, 3.5.2. Mod ul protejat. „.„.„.„.„ ......„ ...„.„„.„ .... „„.„ .. „„.„ ... „.„„ .. „„ ....„ ...„ .. „.i037
predată studenţilor din anul 3 ingineri şi 2 colegiu ai secţiei de Calculatoare, respectiv 1. 3.5.3. Modul virtual..„„„„„„„.„„„„„„„ „„„„„.„„„„„„„„ „„„„„„„„„.:::: ::::::::: Io4
Tehnică de calcul, din Facultatea de Automatică şi Calc11/atoare, Universitatea / 3.6. Initializarea microprocesorului „„„„„.„„„„. „„„„„„„„„„„„„„„„„„.. „ I05
' 3.7. Sistemul de intrare ieşire „„ „„ „ .... „„.„„ ... „„.„„„„„„„„„„„„ „„„„„„„„„„„ .„. 105
"Politeli11ica" din Timişoara. Autorul consideră că lucrarea este utilă şi specialiştilor şi ., 1.8. Sistemul de întreruperi.„„„„.„„„„ .. „„ ... „„ ... „.... .„... „„„ .... „.„„.„ .. „.„ ... „.„. 109
studenţi lor din domeniile electronicii, telecomunicaţi i lor, electrotehnicii, energeticii şi . .39 Unitate centrală cu microprocesorul 80386 „„„„.„:.„„.„„.„„„„„„„„„.„„„„„ I 10
mecatronici i. . ., 3: I O. Conectarea memoriiior la o unitate centrală cu microprocesorul 80386„„„. I 13
Cap. 4. Microprocesorul Pentium II „„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„„::::::::: ::::: 113
Timişoara, decembrie 2002 4.1. Caracteristici generale„„„„„„„ „„„„„„ „„„„„„ .„ „„ „„„„„„„„„„„„„ 113
4 2. Trăsăn1ri arhitecturale „„„„„„„„„„„ .. „„„ „„„„„.„„„„„ ... „„„„„.„ „„„„„„„„„ 12 1
4 ·3 Configuratii ale procesorului „„„„„„„„„„„„„„„ „„„ „„„„„„„„„„.„„„„„„ „„. !24
4 ·4: Conectare; microprocesorului Pentium fI pe placa de bază „„„ „„„„„„ .„„ .. „ 125
4:5. Alte microprocesoare din familia P6 „„„„„„„„„ „„ .„„„„„„„„ „„„„::·:: ::::::::::
Cap. s. Microprocesorul 68000 „„„„ ...„„„„„„ .. „„„„ .„„„.„.„„ „„ .„„„„„„„„„. · „. „:„„ 127
s l Prezentare 0enerală „... „„„„„„.„„„.„„„.„„„.„ ..„„ „„..„„„„„„„„„„ „„. ' l ?7
s:2: Terminalei: ................ ... „ ... „ .... „.„ ..„.... „ . ... „.„ ....... „ ......... „„....... .......... „ .. „.. -
Sl!'Tl·.i\U·: Cll flll<:R< Jl'H< )f:E~< l \RI ·:

5.3. Structura internă„ .. „„„.„„.„.„.„ .. .„„„.„.„.„.„„„.„.„.„„ .. „„ .. „„ .. „„„„.„„„„„. 131


5.4. Ciclurile maşină „„„.„„.„„„„„„„ „„„.„„„„„ .. „„„„.„„.„„.„„.„„ „.„.„...„. „„ . 135
5.5. Funciionarea în modul asincron şi în modul sincron .„„„„„„„.„.„„„„.„.„.„„ 138
5.6. Organizarea şi gestionarea memoriei „„„„„„„„„„„„„„„„„„.„„„.„„.„„„ „„„. 140 Capitolul 1
5.7. Sistemul de intrare I ieşire „„„ ... „„„„„.„„„„„„„„„. „.„ „„ ... „„ .... „.„„.„„„.„„. I<11
5.8. Sistemu l de întreruperi „„„„.„„„„„„„„„„.„„„.„„„„.„„.„„„ .. „.„.„„„„„„.„„„ 14 J INTRODUCERE
5.9. Unitate centrală cu microprocesoru l 68000 „„.„„.„„.„„.„„ „.. „„ ... „„.„.„„„„. 150
5.1 O. Conectarea memoriilor la o unitate centrală cu microprocesornl 68000„.„„ 150
Cap. 6. Microprocesorul 68030 .„„„ „„„„„.„„„ „„„„„.„.„„„„„„„„„„ „„.„„„„.„„„„. „„„ 153 Şti inţa calculatoarelor se caracterizează printr-o deoseb ită dinam icitate. Deş i
6. 1. Prezentare genera lă „.„„„.„„„„„.„„„„ „„ .. „„„.„„.„„.„.„„.„.„„„„ „„.„„.„ .„ „. 153 sc urtă, de aproximati v 60 de ani, istoria ştii nţei calculntoarelor este deosebit de h
6.;2. Organ izarea şi gestionarea memoriei„.„„„.„„„„.„„„„„„„„„„.„.„.„„„„„„„„ 153 şi concentrată. Calculatoare le au evoluat pe mai multe direcţii: performanţe. dimc11
6.2. 1. Unitatea de ges tiune a memoriei „.„.„.„.„ „.„„„.„.„.„.„„.„„„„.„ .. „„.„153 consllln şi cost. Prime le calculatoare, de uz general, lucrau Ja frecvenţe de tact d~
6.2.2. Mecani~nrnl de translatare a adreselor .„„.„.„.„.„„.„„.„„.„ „„„„„„.„„ 158 tle KHz, gestionau o memorie internă de zeci de octeţ i. ocupau o întreagă încn
r 6.2.3. Protecţia „.„.„ „„„„„„„„.„.„.„„„„„„„.„„„„.„.„„„ „. „.„„ „.„„.„„„„„.„164 consumul era la nivelu l de zeci de KW iar prctul era la nivelul zecilor sau sutelor di
, Cap. 7. Comanda apl i caţ iil or e~ternc cu microcalculatoru l PC„.„„„.„„.„ .. „„„„„.„„. 167 de dolari. Calculatoarele de uz general de azi lucrează la frecvenţe de tact de 1-3 t
7.1. Portul paralel ..„„.„ .. „„„„„„„„„.„„„ .. „.„ „„„.„„„„„„„.„.„„„.„„.„„.„.„„:.„„. 167 gestionează o memorie internă de sute de Mo. consu mu l este de aproximativ 500 \-\
7. 1.1. Standardizarea portului paralel „„„„„„„„„„„„„„„ ...„„.„.„.„.„„„„.„„ 168 tot cu monitor) iar preţu l este la nive lul sutelor de dolari. Aceste date, deşi sum.1
7.1.2. Caracteristicile de bază ale portului paralel „„„„„„„„„.„„„„„„„„„„„ 168 generale, arată gradientul uriaş aJ evoluţiei calculatoarelor.
7. 1.3. Cabluri şi caracteristici electrice „.„„„„„„„„„„„„ ..„.„„.„„.„„„ „.„„„ 172 Motorul evoluţiei acestei ştiinre ii constituie, în opinia autorului, domeniu l 111
7.1.4. Moduri de lucru„„„„„„„„„„„„„„„„.„„.„„„„„„„„.„„ ..„ .. „„.„ „.„ „„.„ 175 procesoarelor. Calculatoarele au evoluat şi în lipsa microprocesoarelor dar paşii semniftl
7. 1.5. Întreruperile la portul paralel „„„„„„„.„„.„„„„„„„.„.„„„„.„„„„„„„„ 191 au fos t tăcuţi după apariţi a acestora. Evolulin microprocesoarelor este, de asemr
7. 1.6. Utilizarea porcului paralel prin intermediul BIOS-ului „„„„„„„„„„.„. J 92 spectaculoasă deşi istoria lor este şi mai scurtă, de aprox imativ 30 de ani. Se va 1111
7.1. 7. Aplicaţii „.„.„.„„„„„„„„„.„.„„„.„„„„.„„„„„„„.„„„„„„.„.„.„.„„„.„„ 193 doar faptu l că primul microprocesor, 4004, al firmei Intel era pe 4 b i ţi şi inlo(
7.2. Portul serial „.. „.. .. „.„ ... „„.„„„„ ........ „... „„ .. „.„ .. „.„ „„„„„ .. „..„„ .„ .. ... .„... „ ... 237 aproximativ 2.900 tranzistoare în timp ce microprocesoarele Pentium IV, de U7.I,
7.2.1. Bazele comunicării serie a datelor „.„.„„„„.„„„„„.„„„ .„„ „„.„„„„.„„237 aceleiaşi firme In te l, sunt pe 64 biţi şi înglobează peste JO.OOO.OOO tranzistoare. M1
7.2.2. Standardul RS232 „„„„.„„„.„.„„„.„„.„.„„.„.„.„„ „„.„ „.„.„„„.„„„„„.243 procesoa rele au de termi.nat şi apariţia unu i no u tip de calculator, microcalcu latt
7.2.3. Standardele RS422 şi RS485 „„.„.„„„„„ .„.„„ .. „„.„„„ .„„.„„„.„„„„. „245 tipul cel mai răspândit fi ind PC-ul. Dezvoltarea perform anţelo r şi răspândirea PC-l11
7.2.4. Cabluri ş i conectori .„„„„.„„.„. „„„ „.„„. „„ .„ .„„„„„.„.„.„„„ .„.„.„„„„ 250 au determin at ş i impu lsionat ş i dezvoltarea altor domenii ale şti inţei calculatoarelot
7.2.5. Magistrala FC „..„„„ „„„„„.„.„„.„.„ „„„. „„„„ ..„„„„„ „„.„.„„ „„„ „„.„253 exemplu ed ificativ fii nd Internet- ul.
7.2. 6. Portul serie al calcul atorului PC.„.„„„„„„„. „„„„„„„„ „„„ .. „.„„„„.„„259 . Microprocesoarele se împart d_upă numl!rul de linii ale magistralei de dol•
7.3. Portul US B„„.„.„„„„„.„„.„.„„„.„ „„„„„„„.„.„„„„. „„„.„„.„.„„.„.„„„. „.. „„.269 microprocesoare pe: 4, 8. 16, 32 şi 64 biJl· Există microprocesoare deosebit de perfon11
7.3. 1. Stadiul actual al conectării periferiei la calculatorul PC .„„„„.„.„„„„.269 şi scumpe, la care magistrala de date poate avea mai mult de 64 biţi , şi microproce~<
7.3.2. Caracteristici generale ale USB „„„„.„.„„„.„„„„„„„.„„„„.„.„. „.„.„„ 270 de uz general întâlnite ln microcalculatoarele de lip PC şi în sisteme orientate pe 11plir
7.3.3. Caracteristici fizice ale USB „„„„„„„.„„„.„.„„„.„„„.„„„.„„„.„„„.„„270 Această carte descrie microprocesoarele de uz general pe 16, 32 şi, mai puţin. 64 u1
7.3.4. Protocolul USB .. „.„„ .. „„.„„„„ ... „ .. „.„„ .. „„ .. „.„„ ..„„.„„.„„„.„„ .. „„ .. 275 abordează problema uti li zării microcalculatorulu i PC în monitorizarea şi co1n11
7.3.5. Configurarea sistemului USB „„„„„„„.„„„„„„„.„„„„„„„„„.„„.„„„„277 aplicariilor externe.
7.3.6. Codificarea datelor.„„„„ ..„ ...„„„„ .. „ .. „ ... „„„„.„.„„.„„„.„„ .„.„.„ .. „ .. 277
7.3.7. Transferul datelor .„.„ .. „„„„ ... „.„„ .. „ ... „ .. „„.„ ... „.„„„ .. „„„.„.„.„.„.„ .. 278
7.3.8. USB 2.0„.„„ ..„ ... „.. „„.„„„ .. „„„„.„ .. „.„„ .. „.„.„.„ .. „ .. „„.„.„„.„„„.„„ .. 280 1.1. Direcţii de evoluţie ale microprocesoarelor pe 16,
7.4. Magistralele de intrare I ieşire„„.„„„„„„ „„„ „ „„„„ .„„.„„„„ . „„ „ „„„„„„„ „ .„280 32 şi 64 biţi
7.4.1. Placa de bază a unui PC „.„.„„„.„„.„.„.„„„„.„„„.„„„„„.„„.„„„.„ „„„280
7.4.2. Magistrale ..„„ ..... „... „.„„ .. „ .. „„ ...„ ... „. „„ .. „.„.„.„.„ .„.„ .. „ ... „ ........ ..„.282
În acest paragraf vor fi prezentate, pe scurt, principale le direcţii de evolL1\ic
7.4.3. Magistrala ISA ... „„ ...... „... ...... „.......„„ .„.„ ... „ ....... „ ... „ ..„.„ .....„ .... „„.283
7.4.4. Alte magistrale de I/E „„„„„„„.„.„„„.„„„„.„„.„„ .. „„.„„„ „„„. „„„„„ 287 microprocesoarelor pe 16. 32 şi 64 biţi , raportat la microprocesoarele pe 8 b i ţi.
7.4.5. Magistrala PCI .„ „.„„„„„.„„ .. „.„„„ „.„„„ .„„ .„.„„„„„„ .„„„„„„„.„„.„287 , Dimensiunile magistralelor de date şi adrese
Bibliografic „.„„.„.„.„„„„ .. „.„„„„„.„„ .„.„.„„ „..„„.„„.„„„„ „„.„„.„„ „„ „„„.„„ .„„ ..„„„„ 293
~ ~1~icroprocesoare le pe 8 biti, magistrala de d~yep_8_ biti iar ce~ ele adrese A

-- -- --
16 bili, permiţând gestionarea unui spaţiu ele rneni.o-rie de 64 Krt La miCroprocesonr
10 SIS'J'l~M I·'. CU l\llCRlll'Rt H'. LS< 'I.I HI·: Cap. I. Introducere II

p~_L6, 3ţ şi_ 64. _biţi aceste dimens iuni cresc. Astfel _ij~~~·ala de date. ar~ 1.§.• V• [!lstrucţiuni .şi-le execută în n@a qrdine, crescfuld ~âşti~tl de ti111p. lJ1.,e,w~'c:.li<!'.t..am,ill/&.fiL9j7
rq,sgectiv 64 b iţi ceea ce-a· duS "la_cr~Şreî"eâ vitezei de co~nunic~re cu _ na 1 ortunle este deose6lt de uti l ă întrucâ1 câş tigul oferit de banda de asamblare este anulat ·1a
Tn,trudt aca· a m1crop_.::~soare e ee I I ~ t~n~ era ;.i_n, ~t~,Ln~r-un CIC u.._a
modifi carea secvenţei normale de execuţie a unui program iar în cazul unor ramificări
cele e 16, 32 i 64 biţi se transferă mai m ulţi octeţi într-un smour ciclu. D_eş1 transferul cu condiţionate pierderea de timp este şi mai mare întrucât nu se poate afla adresa
memoria ş 1 cu po1tunle se poate ace pe cuvant, ublu cuvânt sau quadmplu cuvânt, se
următoarei instrucţiuni decât după execuţia celor de dinainte. Conceptul menţionat
păstrează, la toate microprocesoarele pe mai mult de 8 biţi, ~i transferul I_a ni vt:I ele octet.
,esigură previzionarea direcţiei de ey9Lqţiţ; a p~pgram u lui.._elimi r.iân9u~s_e astfel pierderea
l n acest fel se păstrează compatibilitatea cu programele scnse pentru microprocesoarele
det~J!irc~-ar fi "a·părutdacă nu se putea afla adresa L1rmătoarei instrucţiuni decât după
pe 8 biţi, din aceeaşi fam ilie, şi se conferă flexibilitate suplimentară pentru conectarea execuţia celorlaTte~- - „ ·

microprocesoarelor în sisteme.
N\1mărul liniilor de adrese creşte, de ase~n~n~.:_.!=reşterea~t_!'. ~rz.e~cu~s~,_Qe Mai multe moduri de lucru
. -· --~ - ·-- ·- -
la 20 linii de aâres"ă'· Ja iiîlcro]i'15cesoru1"]0§_9&J1..!!:.!11\f~cLg~tiolJSlr~a. ~~~ La-@i~ro.e!·~~esoarele peste J _biţi există mai multe moduri de lucru. ~!i~
nieî~1orie pe i Mo până la 36 li ~i~ d~ ad:·Wi l~L1!J.Î~ropr9ceso_i;._Ltl....Eeupum II. as1gurand • microprocesoare pe .16 !!lli au 2 m~µri .de lucru care au denumiri diferite, la diferite
gest10narea umu spaţiuCle memorie fizic de 64 Go. .fa111il ii._ /\_şţfel ele se numesc: ninirn i maxim la 80 6 i ptilizator .i su ervizor la
.i Structura internă - r, .~„~-- .1 ' ~· !.ndi ţrent d~ d~[1Umire, un mod este mai privilegiat şi ţiltt.t mai puţin privilegiat.
La m1croprocesgare!~ .m~i evoluate există mai multe moduri de lucru, cu diferite grade
--E~~ititiăsti1lciurii inte;ne a fost impulsionată de cerinţele tot mai 1.11ari _d~ .Yit~t?i!.. c!_~pri~il~~[)e exemplu, la 80386 există 4 nivele de privilegiu.
Viteză ~Ţ{;;x-;.;;a~ s--âObţlniit pri[l _creşterea frecvenţei de ta_~ţ' dar ac~~~-t~ ~. fost limitată _ 'Kjodurile _de l~?ru se instalează,_ în general, prin program, cu excepţia lui 8086 la
de-cilnsfrangei-r~le-cfronice · şi elecîroinâgneîice§iiţ·~--~nu-ău -perin!s creşterea frecvenţei care instalarea se face prin hardware.
şemnalu lui de tact de pe placa de bază a sisternului r.§.Ql!,!tL~ ~are s-a impus a fost !:!,tilizarea a
Existenta mai multor moduri de lucru este o caracteristică evoluată a unui micro-
2 se~ale de tact: unul extern şi umil intem cu ti·ecven a multirJj_cată fată de cea externă cu
proces.or:~Ea-asfgL.ira-prolecfiâ restirselor h.ârdware şi software ale unui sistem. Există resurse,
un actor mt e O rez uffânâ asttefîiecven e e tact man interne.~Totuşi, creŞterea nu
iTI_e_rno.rii, porturi, instrucţi uni, ~-~e mi pot fi folosite decât dacă un program rulează în modul
a fost suficientă şi un aport semnificativ a fost adus de modificări e structurale.
privileglât'-pro~âiidu-le astfol contra acceselor neautorizate la ele. ~a microprocesoarele
_Creştereayiteze_i~ _prin 1ng9if!,S'.ări structur~le, s-â_~~ţinut prin i~1p~eme~tarea a ~ care au m- · · ele de rivilegiu se oate face o jerarhizare a re.S.JJrselor: astfel
C0!1C_eP-te: su rş un~r?.a,_ aducerea în avans ş i . b~E)cl,a. de asamblare. _Ip_!!'l_~~r!~rul u_n~n nucleul ·sistemului de operare va avea pri~gml maxim având astfel acces la toate
microprocesor pe 1 , ___ şau 64 biţi există mai rnu te unităţi care lucrează relativ 1

resursele siste u1L i driverele sistemului de o erare vor avea nivelul oe privilegiu
independent, asigurând astfel, de exemplu, ~uprapunerea. aducerii codului unei-instrucţiuni imediat următor ca turnare nu vor avea acces la une e dm resurse iar 2ro ramefe"
cu execuţia altei instrucţiuni, rezu ltând câştig de tiJ}W_. La microprocesorul 8086 există ·' utilizatoril.or yor avea nivel minim de privilegiu având accesul la resu rse imitat. In
doar 2 astfel de unităţi interne dar la 80386 există 6 astfel de unităţi, câştigu l de timp ' acest fel sistemul de operare este protejat contra acceselor neautoriiâîefaresursele sale.
fiind cu atât mai mare cu cât numărul de unităţi este mai mare. rezultând astfel o funcţionare a sistemului sigură, neafectată de erorile utilizatori lor.
Implementarea conceptului de ·aducefe· îi'! aVansLpermlte__.!!!!.f.g>procesparelor să
folosească mai eficient timpul şi resursele externe. Astfel,_ dacă în timpul execuţiei unei - Sistemul de întreruperi }
Instrucţiun i mi surit solicitate magistralele externe, microg;&sorul aduce în ayaqs. din '_1_~ microprocesoarele pe 8 biţi, există d~~r întreruperi externe. La c~-le pe 1g,_32
1.nemorie, următoarele instruqiuni şi le depune în o mem~1~: tam2on internă de unde . ş i 64 biţi există întreruperi externe şi interne. Infrţjuperile.zxreft!~._vin din exterior, nu
vor ti luate în vederea execuţi ei. Ufiitatea ae execuţiedîiîinteriorul microprocesorului su.nt reR~_ţ'!hll~:-da~ SLJkMt~-s~cvenfa de program î11 l!!l.1RUI că~ia au_2J2..ărut 2i sunt
va prelLiă instruc(ÎuntJe mat rapta, Întrucât preluarea Se face din interior,· rezultânG astfel .~smc.:.~e_în raport cu 1ni~c!cn:iroc~~:. Fiecare microprocesor are terminale dedicate
ciştig_ d_e timp. pen1Tu·acesîeintreruperi: ·
·--· Implementarea conceptul ui de ~b<!ndă 9e~ai !Jl ~re., <ţ_ pern1is ca,_ la un moment ţnţreniperile ex teme pot fi împărţite în 2 categorii: mast:abile si nemascabile; mascarea
dat, într-un microprocesor să se a e mat mu te instrucţiuni, m 1 ente ~ realizându-se prin program. Cele mascabile pot sau n~ă fie luate în considerare, după
crescând astfel numărul de instrucţiuni executate în un[tqtea de timp. cui dore te ro ramatorul iar cele nemascabile vor fi lua.te întotdeauna în considerare.
„·. Pe lângii' conceptele de mai sus, la m1croproces-oarele pe 32 biţi au mai fost Tratarea lor se face prin intermediul unei ta e e care conţine adresele de început ale
implementate şi altele: ~~~LSJ~Jt!l>Hiţaţţ_a.J t;:l_l'._ecujfa. d\11amj\;~, prţdicţ!a ramifică'.il9r, rutinelor de tratare pe~tru diferite tipu1i de întreruperi. Pentru cele nemasc'!bile
toate având ca scop creşterea vitezei de Jucr~ S_(l.pefscalabtfita,tea înseamnă că micro- microprocesorul execută un acces la o intrare în tabe lă bine determi nată, de unqe
- rocesorul oate executa în araleJ__mai_multe-instrucţiuni. _Re3qM f_âştig de timP. dar a·unge la rutina de tratare iar pentru cele mascabilc:; micro rocesorul a tea tă un vector,
acesta este limitat de interdependenţele între ms ruc, 1 ~111 1 care_i:iu permit, uneori, exec\jţia pe linu e de date, e a ce care a generat cererea, iar acest vector îl fo loseşte pentru a .
în parql~UE"ecv.fi.a ' ditianfic;;~ înseamnă că micro rocesoru l ad1ice în avans mai multe ajunge la intrarea din tabelă care conţine adresa de început~ rutinei de tratare. Există _şi
instrucţiun i, le reordonează intern aste mcât să mm11n 1zeze inter epen ente e m re microp~oc_e~o~r~~~re au şi _întreruperi eXîerne nevectorizate, de exemplu 68000.- H--
12 SISTl·::>.w ( :1_! !lllt:llC ll'f{t )( :1·:sc l.\lli' 1:ap. I . lntrod\1ccrc

.b_tre~upe:~ile:\!1ţer[i_{; vin din interiorul microprocesoru lui, sunt rep~tabile dacă se la capacitarea da1a de memoria i11te1 nă plus memoria pe suport extern. Dacă în tim
repetă secvenţa de program în timpul căreia au apJ}rut ş1 sunt smcrone cu microprocesorul. execu[iei une i inst1uc1iuni, microprocesorn l ses i zează că nu există operandul dorit
Ele a-~ -~-~f!U_k!;: fie ~e_p ime~te_ inSern,~. '.!:QQrilla~ care apar înaintea sau În timpul execuţiei memoria i n ternă, întrerupe execu1i:1 instructiunii, după care intervine sistemul
unor instrucţiuni , de exemp.ILi. cnncercare de a realiza o împărţ ire cu 0 sau o încercare operare care caută operandul cerut pe suportul extern şi, dacă îl găseşte. îl încarcă
de a executa o instrucţiune pri v ilegi ată de către un program care rule<<Ză într-un mod memoria internă, într-o zonă pc c:ire o el i berează după anumite crite ri i şi apoi fie r
neprivilegit, fie instr~1cţiuni ded_iG~te. De exemplu, microprocesorul 8086, şi următoarele execuţia instn1ctiunii, fie cont inul'\ cxec una acesteia. Eliberarea se face prin scri ere
din fami lie,TLl~~ile -lNf nn a căror executie va provoca generarea unei suportu l extern. Transferul între memoria in ternă ş i cea externă nu se face la nivel
întreruperi interne. În acest fei pot fi emulate ·noi inst'rucţiuni. Trc;tare_a întreruperii.or octet ci la nivel ele blocuri, segmenle sau pagini ş i întregul mecanism este transpan
iiiterne este lot tabelară doar că acum, pentru fiecare situaţie internă anormală corespunde ut il izatorului care nu arc nimic de făcut pentr u lansarea în execuţie a mecanismului
.ojntrare)n tabel_ă iar în cazul instrucţiunilor, vectorul este generat inte{n. memorie virtuală. La ni velul utilizatorului se va simţ i o scădere a vitezei dar st
implementate, la nivelul s istemului de operare şi metode pentru minimizarea ace~
Facilităţi pentru implementarea de sisteme mu!titasldng tehnic i. Mai mult, mic roprocesorul oferă supo1i hardware pentru implementarea accs
Microprocesoarele peste 8 biţi oferă facil i tăţi pentru implementarea de sisteme tehnici . De exemplu, o asemenea teh nică lucrează în felul următor: atun ci când sislen
multitasking. Primul microprocesor la care se întâlnesc este 80286 al firmei Intel, pe 16 de operare găseşte blocul cu operandul dorit pe suportul extern, îl va aduce în memo
biţi. Următoare le microprocesoare, pe 32 şi 64 biţi, dezvoltă aceste facil ităţi. int ernă şi va scoate din memo ria in ternă un bloc, pe care îl alege după anumite crite1
Microprocesoarele firmei Intel, de la 80286 în sus, gestionează memoria în mai care va trebui să fie scris pe suportul extern. Dar acest bloc a fost adus în prealabil de
multe moduri. Modul protejat este cel ce conferă microprocesorului toate facilităţile s~1portul extern tot în cadrul unei operaţii a mecanismului de memorie virtuală şi, da
legate de implementarea sistemelor multitasking. Astfel, în acest mod microprocesorul sistemul d~ opera1~e const~tă că blo~ul nu a fost scris de la ultima aducere de pe supor
asigură prin hardware şi prin microcod: extern, deci nu a. !ost modificat, decide c_ă nu mai este necesară rescrierea lui pe supor
o separarea segmenlelor de memorie între diferite taskuri şi între acestea şi sistemul extern fimdcă oricum se găseşte acolo. ln acest fel se economiseşte ti mpul ·de scrier~
de operare; blocului pe supo11ul extern, timp care este semnificativ ţinând seama de faptul că ori
~ protecţi a segmentelor de memorie proprii unui task; în acest fel fiecare task are suport extern este foarte lent raportat la viteza microprocesorului. Microorocesu1
propriile segmente de memorie care nu pot fi accesate de alte taskuri decât dacă el oferă suport hardware pentru această tehnică în sensu l că are ranguri, pentru fiec2
doreşte acest lucru, de asemenea sistemul de operare are segmente de memorie segment sau pagină de memorie, care arată dacă segmentul sau pagina au fost modific<
proprii, protejate contra acceselor neautorizate; de la ultima lor ad ucere î11 memoria internă.
• comutarea taskurilor cu schimbarea automată a stării microprocesorului corespunzător
(l ]J_pplernentarea mecanismului ele memorie virtuală cere o a l tă fac ilitate şi anur
noului task. . osibilitatea de intreru ere a mstrucţiunilor 1n timpul execuţiei lor. Toate 1111croprocesoâi·c
Desigur, un sistem multitasking poate fi realizat şi fără microprocesoare care de a 8 - ,o 1n sus au această facilitate spre deosebire de cele pe 8 biţi şi restu l pe ·
biţi care nu permit ca instrucţiun i le lor să fie întrerupte.
includ facilităţile de mai sus, dar existenţa lor simplifi că enorm munca programatorilor
care nu mai trebuie să realizeze prin program operaţiile de mai sus ci se ocupă Existenţa mai multor spaţii de adrese impune un mecanism de translatare a adresei
microprocesorul de ele, in plus, obţinându-se şi câşt ig semnificativ de viteză. l_og.i~_e .îil act,rese lin_iare sau fizice. ~cest 111ec<1nism există la fiecare 1~1icroprocesor pes
8 b1ţ1 ŞI va 11 dem1 m1t. generic, Iv1.MU (acronimul de la "Memo1y Management Unit"). Unc
Gesti~.f'.l~refl memoriei microprocesoare includ MMU-ul, ele exemplu cele ale firmelor Intel şi, parţial, Motorola
_fJ:i1}~jp~l_<!_dj_~~c1i_e_d_e__ţvo luţie
a rnic_roprocesoarelor a constituit-o modul de gestiu!1e timp ce la alţe microprocesoare, de exemplu cele pe 16 şi 32 biţi ale firmei Zilog. MMU-
a memoriei. La microprocesoarele pe 8 biţi există „u.n singur spaţiu de adrese atât pentru este ex!ern. ln această cai1e vor fi descrise doar microprocesoare ce includ MMU-ul.
programator. cât şi-pent1:u 111icro_procesor. La 111icroprocesoa1:ele pe 16 biţi există ~E!!\ipl . ln forma sa cea mai s im plă, un MMU poate fi realizat printr-o tabelă care trebu
adreselor logj_9e, pentru programator şi spaţi ul adreselor fizice, pentru micro rocesor. să se afle în memoria fizică, fig. I. I. Adresa logică, furn izată de programator, este l
ca microprocesoaiel~ peste 16 biti există încă un spatlu, cel al a reselor liniare, o OST!. index în această tabelă iar conţinutul intrării din tabela astfel găsită va fi tocmai adre:
tot de către microp,roces~r. '=- · · fizică dorită. Mecanismul este foa11e simplu dar poate fi aplicat doar· da•
Existenţa mai multor spaţi i de adrese simplifică munca programatorilor. Aceştia microproce,sorul consideră memoria ca fiind liniară, locati ile succesive având adre'.
nu mai trebuie să tină cont de constrângerile fizice ale microprocesorului, în plus, mai succesive. lnsă marele dezavantaj al acestei soluţii este acela că tabela va trebui să ail
mulţi programatori pot lucra independent scriind taskuri care pot rula în paralel pe aceleaşi dimensi_uni ca memoria fizică ce trehuie gestionată ca urmare se pierde 2/3 d

acelaşi microprocesor.
memoria fizică. ln consecinţă această so luţie nu este folosită.
Obţinerea acestor avantaje mai cere, însă, ca microprocesorul să suporte memoria Unele microprocesoare con sideră memoria ca fiind împărţită în blocuri care p·
virtuală. Toate microprocesoarele de la 80286 în sus au această caracteri sti că. Mecanismul fi gestionate independent. Există 2 variante de blocuri: segmentel_e, ·card;tint bloc.uri c
de memorie v ir tua l ă permite extinderea capacităţii memoriei interne a unui sistem până dimensiu ni variabile şi mari, de e:-:emplu pot fi de 4 Go la microprocesorul 80386
14
Cap. 1. Intro ducere

ca::_~~nţ _g_e~ţio_nate prin. ?9ft'"..?re_ s.~l],..P,a&~!1!.~~1_ car~ sunt blocuri de dimensi uni fi~_e şi
ri11ci, de exemplu 4 Ko la 80386 ş 1 care sunt_gest1onate pnn hardware. U...!1~uu1.cro..
prbces9~e_ "văd'' 11'.~.mo~~- ~~...fl.i_n_aJ111p?.~lită ~Joar.. în segme11.te, de exemplu 8986_ iar 1
altele, de exemp!U- dela 80386 inclusiv în sus, "văd" m.emoria ca fi!nd împ~it~ în _ ·~
Segment
segment~ iar acestea ca fi ind alcătuite din pagini . ·segmentele sunt blocuri cu adrese f
de
succesive şi ele se ·pot suprapune. Este mai simpl L~ _ge_g~stiqnat o memori"· împărţită .
doar în segmente, întru~ât acţstea sLint inai ·puţine dar ctezavanta"j"ul ·unei aserneneâ___ cod
otianiză1T este fi:agmentarea melnoriei fizice: segmentele pot fi plasate astfel .îi1-- ;
1ne1noria--fizică"îii.cât să existe zone între ele dar acestea slnle atât de 1niCiîncât în ele să-
nu 7;1capă un alt s.egment ceea ce va duce la ineficienta utilizare a memoriei fizice. Fig.-1.2 · Segment
p·rezi1îtă un exemplu de plasare, cu fragmentare, a segmentelor în menioria fizica. de
zone
Qţzav.fulfăJ.~! e~Je rnil}im1zat.~e prog~amele de defragmenta re care reorganizează segmentele .. date
inu tilizabile
în memorie astfel încât să creeze spaţi i cu adrese succesive de dimensiuni mai mari în
care să încapă alte segmente. .\
r------- - -- -- --------------------- - - ---- - - --- ----- - ~
I I

: Memorie fizică : Segment


I I
I
I
I de
stivă
I I
I I
Adresa l ogică I I
I
I

I
I

H- I
I
I
I

I I
I I
I I
I I
I I
I I
~ Adresa locaţiei fizice
rL Fig. 1.2. Exemplu de fragmentare a memoriei
I I
I
I Locatie:
I
I
fizică i /-----------------------1
Memorie fizică
I
I
dorită : Adresă logică / :I
I I
I I
' I
I Componenta /
' - - -- - - '
I
I
I I
I
I
I
I
externă '------------' I
I I
I
I I
I I I
I I I
'I I I I
I
I
I
I
I
Componenta /
I
I
I
I
I
I internă '--------' I
I
I

I I
,-------- - -- - --- --- -~
Locaţie
I I
I
I I
I
I
I I
'
fabe la de transl,1ta1e
'
'
I
I fizică
I
----- ------ ------------------------- ---------- ----- -' dorită
Fig. 1. 1. Translatarea adreselor printr-o tabelă

(Jestionarea paginilor este mai complexă, întrucât sunt semnificativ mai multe,
dar operaţia este mult uşurată de faptul că au dimensiuni fixe iar microprocesqar~le I
oferă suport hardware specific. Avantajul împărţirii memoriei în pagini este eficienta I
I

utilizare a memoriei fizice. Dat fiind.faptul că o pagină are dimensiuni mici, ea poate fi
l
I
I
pl asată în orice zonă neutilizată din memoria fizică. I
I
La o memorie împărţită în segmente şi pagini pot fi folosite mecanisme de transla- : Tabela :
tare mai perfonnante. Figura 1.3 prezi ntă mecanismul de translatare al microprocesoarelor L- ------- - - ----- - --- ---- - -- - - - -- ----- -- - ----- --- - - - -- - -- -~
din familia Intel, de la 80286 în sus. Acest mecanism va fi re luat şi detaliat în Capitolul 3.
Fig. 1.3. Mecanismul de translatare a unei memorii împărţită în segmente
16 ~ l :->Tl '.~1 1. I .l' ,\J I( I(\ ll'I(\ )I :1 ·.~( ),\IU '.
Cap. I. '111troduce1c
Adresa logi c ă are 2 componente: o compone ntă care duce la adresa ele bază a
segmenlult!Î în care se află operandul dorit ş i care este internă n11 cmprocesoru!yj şi o
~nponentă furnizată de programator şi _:_ are .:.ste dep!as_a~tul i~ cadru~mentu~ Vrc --
a cărui adresă de bază a fost determinată. Asocierea Înlre cele 2 componente o face
- A2 YO ~

micmprocesorul după reguli bine determinate şi poate fi afre tată doar rarţ ial de către -
~
Al -Yl --
programator. ~ AO .7 -Y2
Această so l uţie cere o t abe lă de translatare de dimensiuni mici, ea trebuind să 4

aibă atâtea intrări câte segmente sunt. Şi cum numărul de segmente este mic, dimensiunea
L -YJ
s ::- Fig. 1.4. Confi guraţ i a tenninalelo
tabelei v.a fi mică chiar dacă o intrare nu conţine doar adresa de început a segmentulu i I -Y4 ;;. circu itulu i 74LS 138
ci ş i alte informaţii ca de exemplu dimensiunea segmentului, drepturile de acces la J
segment etc. Un alt avantaj al acestei soluţi i este acela că pentru orice acces o l ocaţie . -El 8 -
-
trebuie să se treacă prin mecanismul de gestiune a segmentelor care va face şi verificările
- YS ,;.

pentru drepturile de acces în respectivul segment. În acest fel segmentele sun t protejate - ~
-
E2
-Y6
contra acceselor neautorizate. În fine, un alt avantaj al acestei soluţii este acela că diferite -Y7
task uri pot lucra în paralel. Ele pot accesa memoria în paralel, fiecare task având
- E3 GND
I-~

proprii te segmente şi propria tabelă de trans latare. Dacă se dorqte. este posi bil ca unele 'i'
segmente să fie folosite în comun de mai multe taskuri ceea ce duce la folosirea mai
eficientă a memoriei. Exi stă şi un dezavantaj al acestei soluţi i: pentru a ajunge ta locaţ i a E3 IE2 /EJ A2 Al AO !YO ! Yl IY2 IY 3 I Y4 IY5 /Y6 IY
dorită trebuiesc făcute accese supl imentare la memorie ceea ce înseamnă timp suplimentar I o o o o o o l I l I I 1 1
iros it. Acest dezavantaj a fost minimizai ele soluţia care va fi prezentată în Capito lul 3. I o o o o l I o l J l I l I
Dacă programatoru! doreşte, segmentele vor fi gestionate ca fiind alcătuite din l o o o l o I l o I - I I l
pagini. Mecanism ul de translatare în pagini fizice preia ad resă generată de mecanismul de I o o o I I I 1 1 o I I
---I
l l
gestiune a segmentelor şi o transformă în adres2. fizică. Mecanismul de translatare poate I o o I o o I I
- 1 I o I I l
fi pe un nivel, sub fo rma unei tabele cu atâtea intrări câte tabele sunt, soluţi e neutilizată o o o
întrucât dimensiunea tabelei va fi mare ş i va ornpa o zonă cu adrese succesive mare în
I I I l l I I i o J [
1 o o l l o I I I I I I o 1
memorie, de exemplu la 80386 o asemenea tabelă are nevoie de 4 Mo, sau poate fi pe I o o
mai multe nivele fiecare tabelă clin aceste ni vele având dimensiuni mici, egale chiar cu
l I 1 I l l 1
-- 1 I l o
o X X X X X I I I I 1 1 I I
o pagină. Aceasta este sol uţia fo losită la 111icroprocesnarele Intel, de la 80386 în sus şi
X I X X X X I I l l J I l I
care va fi descrisă pe larg în Cap. 3. Avantajul ei este folosirea efici entă a memoriei iar X X .. l X X X I 1 I I l l l I
dezavantajul este fap tul că introd uce accese suplimentare la memorie ceea ce înseamnă
timp supl imentar pierd ut dar dezavantajul este minimizat prin introducerea unei Tabelul I. I. Fu nc ţiona rea circuitul ui 74LS I38
memorii cache doar pentru paginare. So luţi a va fi descrisă în Cap. 3.
Circuitul ;ire 3 ÎJJlrăJi de date,_ootate <;;!:!_A2-0, 3 intrări de validare, notate cu IE I. /E2
EJ şi 8 ieşiri , notate cu /Y7-0. 9!:_cuitul actLVG.fil:ă câte ;ieşire, în~nsu ! că o trece la O logi
i .2. Circuite uzuale e!,ntru fiecare combinaţie de_la in tri1rili..A2-0 dar numai dacă IE I /E2 =O ~ i E3 = =
Dacă vreuna din acest~condiţii 1~u ~încl~pli niti\' a se vedea ultimele 3 linii ~le tabe le
În capitolele următoare vor fi prezentate scheme pentru unităţi centrale şi pentru ~ate 1eşirjl~ ~unt inactive, adică la~c, indiferent de com binaţia de la intrările A2-0.
conectarea unor circuite de memori e la unităţi centrale cu diferite microprocesoare.
Circuitul decodificator 74LS139
Circuitele importante folosite vor fi descrise în continuare.
Este un circu it decodificator folosit în decoclificatoarele pentru memorii ş i pentr
Circuitul decodificator 74LS1 38 ~orturi . Configu raţia tenn inalelor, din punct de vedere funcţional.este prezentată în fig. 1.:
Este un circuit decodificator 3 la 8, folosit în decodificatoarele pentru memorii şi iar tabelul 1.2 s imet i z.ează funcţionarea circuitului.
pt:ntru porturi. Configuraţia terminalelor, din punct de vedere funcţional , este prezentatii Circuitul are 2 secţiun i independente 2 la 4, fiecare cu propria lin ie de validare
in fig. 1.4, iar tabelul I. I sintet i zează funcţion area circ ui tului . Pentru ca o secţiune să lucreze este necesar ca linia sa de validare să fie ta O logic ia
dacă aceasta este la I logic, i eşi ri le secţi u n i i respec tive sunt inacti ve, adică la I logic ..
„ •
18 Cap. 1. Introducere
l l)

'E
Vcc Vcc
;. l Al
li> IB -
l YO -
r
. IA2
. IA
-!Yl
.- : IA3
1Y2
1Y3
- ~
;. 1A4 7

.. -IG
7 lY2 ~
4 IY 4
-IY3

t
4
L .' -I G L
s
s 2 Fig. 1.6. Configuraţia terminalelo r
l Fig. J .5. Configuraţia terminalelor .
2Al 4
3 circuitului 74LS 139 .
r 2A2 4 2Yl
cin.:uimlui 74LS244

..
9 -
2YO . 2A3 2Y2 ::
.,.
r
2B -2Y l
-2Y2
r -
,.,.
;. 2A4
. -2G
213
2Y4
.
.
.. 2A r
r

- -2Y3 .. GND
. 2G GND
t
IA!
t l Y!

IA2
IY 2
/iG IB iA /iYO /iY I /iY2 /iY3
o o o o l 1 I IAJ
-~ I YJ
o o I 1 o I 1
o I o I I o I !A4
JY4
o I I 1 1 I o
I X X l I I I
?
IG .°t-'ig. 1.7. S.:hema internă a
Tabelul 1.2. Fu ncţionarea circuitului 74LS 139 2Al
2Y l circuitului 74LS244
2A2
Circuitul amplificator/ separator ·14LS244 ~ - - -r> 2Y2
Este un circuit folosit pentru amplificarea/ separarea magistralelor unid!recţionale 11 2AJ
-+ 2Y3
ale microprocesoarelor. Configuraţia term.in~lelor, din. punct de ;ed~re f~mcţtonal, este ~
prezentată în figura 1.6, iar figura 1.7 prezmta. sch.ema tnternă a ~1rc~1tullll_- • ] 2A4
Din schema sa internă se observă că c1rcu1tul este alcătlllt d~n 2 g1 upe de ~ate 4;. -----» 2 Y4

porii cu 3 s tări unidirecţionale, fiec~re .g rup.ă având o sing ură intrare de validare. j
Tabelul 1.3 s i nteti zează func ţionarea c1 rcU1tulu1. }: 2G

'2/G 1Y4-l 2Y4- l


-1/G
o o IA4-l 2A4-1
Cir cuitul amplificator/ separator 74LS245

o I IA4-l A ,3-a stare \ §g~Ll_llci rcui t folosit pentru amplificarea/ se ararea magistralelor biclirectionale
:~
. ale microprocesoarelor. Configuraţia term inalelor, din punct e ve ere funcţional, este
I o A 3-a stare ?A4- l
; prezentată în fig. l .8, iar fig. l .9 prezintă schema internă a circuitului.
l 1 A 3-a stare A 3-a srare
Din schema sa internă se observă c;ă circuitul este alcătuit din 8 perechi de porii
Tabelul 1.3. Func!ionarea circuitului 74LS244 Ş cu 3 stări bjdirectionale. Există o unică intrare dc _yal idare entru toate orţi e şi o
~ intrare -pentru stabilirea directiei de transfer. Tabelul l .4 sintetizează funcţionarea circuilll ui.
t

:ll
c~p. I . lntioducere
SIS IFi\11 " 1 :I : WUU Jl'l(C J<:l ·:SO,\RI;

IG DrR A8-I B8-I


Vcc
o o BS-1 Intrări
Al Bl o I I ntrăr i AS- I
A2 132 I X A 3-a stare A 3-a stare
B3
-
A3
7
84 Tabelul I .4. Funcţionarea circuitului 74LS245
A4 4
AS L 85 f>
A6
s 86 Fig. 1.8. Con fi guraţ i a terminalelor Circuitul registru 74LS373
2
A7 4 B7 circuitului 74LS245
<ll----:---~
Este un circuit registru cu 8 rangur i, CLI 3 stilri, folosit, în această carte, pent
5 BS «:] ~
<11----;> AS demultiplexarea magistralelor 111icroprocesoarorului 8086. Configuraţ i a terminalei•
din punct de vedere funcţional, este prezentată în fig. I. I O, iar fig. 1.1 1 prezi ntă scher
internă a circuitului.
DIR
G t
GND Vcc
ID lQ
2D 2Q
3Q
Al i
4D 4Q
4
SD SQ
L
A2
6D s 6Q Fig. I. l O. Configuraţia terminale Io
7D 3 7Q circuitului 74LS373
8D 7 llQ
3
A3

oe
--~ G
A4 GND

t\5
Fig. 1.9 Schema i nternă a Din schema sa internă se observă că circuitul este alcătuit din 8 bistabi le D cu
Jlări. Exis tă o intrare de validare pentru toate ieşirile, IOC şi o intrare pentru încărcare
circuitului 74LS245
bistabilelor, G, care trebuie să fie la I logic pentru a se realiza încărcarea. Tabelul I.
AO sintetizează funcţionarea circuitului.

IOC G 8Q- IQ
A.7 o o Vechiul conţinut
o I 8D-ID
I X A 3-a stare
AS
Tabelul I .5. Funcţionarea circuitului 74LS373

Toate circu itele descrise până acum pot fi găsite ş i în tehnologiile HC, H CT
D IR
Al-IC şi AHCT.

l
G
22
SISTI·:M1 : c.li 1\I I< .H< >l'Rc H 'l ·'.Sc >.\fli·

oe ---ti> ~">------~
lD
Vcc

-----+ IQ -„ Al4

20

r
07
· - - - ! l > lQ ... AO 2
7
3D 2
5 Fig. l.12 . Configuraţia termina[e[or
,__
6 00- -~ circu itu lui ele memorie 27256
3Q

40
. -OF.
."
„ -CE /PCM
-„ Vpp
Fig. I. 11. Schema i nternă a
SD GND
ciicuitului 74LS373
SQ
~

60
'1 ~'------11> 1'

~~~~~~~'K_
A J4-0

70 i
tCE I
CE
l1~----1!'»' ~----
-~- -~-~--J
I .
.ţ,
80
i ' - - - -- -t- . - - -

l~/
~

G
„,t;.•f~

-~-~
~
OE

I
I
„;1 07-0 I
~~--~------lK~~-o-u-T~~),_~
Circuitul memorie EPROM 27256 i
~

Este un circuit memorie EPROMLavând cagacitaţţa_Qe 32 Ko şi timpul de acces, ~


!Z,).
Fig. I. l 3. Ciclu l de citire din circuitul 27256
în funcţie de yarian@_sub care se prezintă, de 90-200 ns. Configuraţia terminalelor, din ~ tAcc - timpul de acces
punct de vedere funcţional, este prezentată în fig. I. 12. i TCE - întârzierea faţă de
max.90ns max. IOOns max. I20ns
max. 150ns max.200ns
Circuitul are 15 intrări de ad rese, Al4-0, 8 li nii de date, 07-0, o linie de se lecţie ·t semnalul de selecţie max.90ns max. IOOns max. l20ns max. 150 ns max. 200 ns
şi Rrogramare, /CE/ IPGM, o linie de validare a ieşirilor, /OE, o intrare pentru tensiunea ~
ue programare Vpp şi alimentările Vcc şi GND. Q_acă se execută citire din circuit, ·~ îoE - întârzierea faţă de max.35 ns
atunci liniile 07-0 sunt i~ if!!rart;.a-.YEP trebuie să fie o tensiun~ egală cu cea de la ··· semnalul de validare max.SOns max.SO ns max.50ns
max.50ns.
Vcc iar citirea datelor se face în conformitate cu diagrama din fi g. 1. 13. ~
. A'.l1~c1 ~ă1T1~ se .~onecteazba ~ceste ctrcuite la o unitate central~, trebuiesc respectaţi ~ Tabelul 1.6. Timpii necesari la ciclul de citire
111a1 mu 1ţI trmpr. 1mpu care tre u1esc respectaţi sunt reprezentaţi în figură iar valorile lor m
sunt date în tabelul 1.6. Au fost considerate 5 variante de circuit, cu timpi de acces diferiţi . Pentru aplicaţiile cl in această carte nu interesează faci litatea de programare a
~
circuitului ca urmare nu va fi descrisă.
if
SISJ'l ·:,\11 · t .1· ,\ll<.llCll ' ll< u :J·."< 1 \ HI ·: ~. lntm d u cere
24

Circu itul de memorie EPROM 27512 l~ IRc I


Este un circuit memorie EPROM. a vând capacitatea ele 64 Ko şi timpul de acces, I f,11< I

---~~·-·-------~-~!-------~~-_-_-_-_-
în funcţie de varianta sub care se prezintă, ele 90-200 ns. Contigura!ia terminalelor, din A l4-0
punct de vedere funcţional, este prezentată î n fig. I . 14.
Circuitul are 16 intrări de adrese. A 15-Q.Jl linii de date. 07-0. o linie de se lec.U&„
(CE. o linie de V<Lli.@.r~ aJeşir_i lo1~ şi pr_Qe:ra1mre, /QE/ Ye.p J.G:limentări le Vcc şi GND.
Dacă se execută citire din circuit, atunci liniile 07-0 sunt ieşiri. la intrarea de validare s.i,
'
-------------+--
WE ! · - -- - - - - -- -
j)i·ogramare trebuie să fie O logic iar citirea datelor se face_ după ~liagramă identică cu
cea clin fig. l. 13. -·
! Ies I
.Pentru aplicaţii l e din această carte nu interesează fac ilitatea de programare a
circuitului ca urmare nu va fi descrisă.
cs 14----~! _ r-
-ţ -+ I loE r

Vcc Vcc OE ---------1~!


.. Al S
. Al4 ~---+-1-------~
I

. .. ----------l~~~~OU_T_ _ _>~--
1/07-0
2 07 ~ I/07
6
.. AO
7
5
.
~
AO 2
2
Fig. I. 16. Ciclul de citire di n circuitul 62256
I
2 ..
s
6 uoo .-
00 1 t wc
I '~·---~r.;::----------c.. I
-
;;. cs IA. . I
..
,\\V
- -_,,- _..,_I I
- OE- ~~I -----,v i

/\~·--------------l~~---
CE
- - Al4-0
-.... -OE /Vpp ~ WE
GND

iLm__ _
GND
_t
Fig. I. 14. Configuratia terminalelor
if
Fig. 1.1 5. Configuraţia terminalelor OE =====-~ ' lcw
circui tului de memorie 27512 circuirnlu i de memo1ie 62256
cs i._,_·________ fjll._Jr - -----
Circuitul de memorie SRAM 62256 twr I
Este un circuit memorie SRAM, având capacitatea de 32 Ko şi timpul de acces.
în funcţie de varianta sub care se prezintă, de 45-85_n?.. Configuraţia terminalelor, din
punct de vedere fu11cţ1onal, este prezentată în figura 1.15.
WE
i f to_, , ~
__
• ______ Je> I

Circuitul are 15 linii de adrese. Al4-0. 8 lini i de date I/ 08-1, o intrare de ~I :.<L
I I" " I
selecţie7lcs, o 111trare de vaffciare a ieşiril,2.!i_ /OE si o iotr~re de comandă a scrierii, I I I
C!!.f:.. Citirea din circuit se face în conformitate cu diagrama d in figura I .16 iar scrierea l/08-1 _o_u_1_·_---'i~) I
I
în circuit se face în conformitate cu diagrama din fig. 1. 17.
Timpii care trebuiesc respectaţi la citire sunt reprezentaţi în fi.gură iar valorile lor
sunt date în tabelul 1.7.
l/08-1 _
i"1
_ _ _ _ _ _ _ _ _ __!,,,----
' lr>1v Lou

=> _
r» 1""''----fi» i
IN

Timpii care trebuiesc respectaţi la citire sunt reprezentaţi în figură iar valorile lor
sunt date în tabelu l 1.8. Fig. 1.17. Ciclul de scriere în circuitul 62256
~ i

26

Cin.:uit HM6?256B-4 HM62256B-5


~!S'l'l'. .\IF

HM62256B-7
el' ,\lfl :1tc l l'IH lCl'.S< l \RI '

HM6?.256B-8
I; (':!.~

l 1._1"
0 . 1.'L t.C"

• J. t,.I ,_. \
' ...

~ r.• ~

„r::.. '' I._,\ - L t.Jr '.'.\,.... \\'..:!°':.


(.,: ..ţ_~ Q.i(.. \ ~~
d ...< u~...\-<:..; J .. ~ „-.~
-Goe -:j - _,

lRc - durata unui


ciclu de citire
min. 45 ns min. 55 ns min. 70 ns min. 85 ns
I Capitolul 2
t 1\1< - timpul de acces
max. 45 ns max. 55 ns max. 70 ns max. 85 ns i~ MICROPROCESORUL 8086
la citire \i
t!·
tcs - întârzierea faţă
de semnalul de max. 45 ns max. 55 ns max. 70 ns max. 85 ns t: 2.1. Prezentare generală
selecţie
loE - întârzierea fa~ă 'f' Microprocesoru l 8086 a apărut în anul 1978 şi este pri111L!~.!!1icrop1~~~sor__r.!:_l_~
de semnalul de
validare
max. 30 ns max. 35 ns max . 50 ns max. 55 _:._J ,~ b.i!Lcare a cunoscut o largă utilizare. Apari ţia lui a fost urmată la scurt timp de o famil ie
lţ de componente: generatorul de tact 8284, controlerul de magistrală 8288, coprocesorul
~·· matematic 8087 şi coprocesorul de intrare I ieşire 8089. În anul I 979 a apărut micro-
' Tabelul 1.7. Timpii necesari la ciclul de citire k procesorul 8088 care a păstrat toate caracteristicile microprocesorului 8086 doar că
:( magistrala sa de date externă era de numai 8 biţi. Totuşi a cunoscut o largă răspândire,
Circuit HM622568-4 HM62256B-5 HM62256B-7 HM62256B-8 if mai ales datorită încorporării sale în microcalculatorul IBM PC-XT.
:!~ Printre caracteristicile microprocesorului 8086 se pot aminti:
twc - durata unui
ciclu de scriere
min. 45 ns min. 55 ns min. 70 ns min. 85 ns ·r: • r:_gistrele interne şi magistrala de date ex.ternă sunt pe 16 biţi;
.~ o pfilLbilita,ţg.de a adresa dire.s;U...1fade memorie,j.,
tAw - timpul de acces max. 45 ns max. 55 ns max. 70 ns max. 85 ns il o viteză mărită de lucru datorită atât.frecvent~i ţac~lui {? MHz la cea mai răspândită
la scriere 1. variantă, existând însă şi variante pe 4 MHz, 8086-4 şi 8 MHz, 8086-8) cât şi unei
tcw - durata semnalu-
min. 35 ns min. 40 ns min. 60 ns min. 75 ns t structuri interne bazată pe conce12tu!.je supr~nere care permite aducerea d1ÎÎ
lui de selecţie ţJ: memone, lll avans, a instrucpunllo r, în timpul unor ciCilii·i fără accese la magistrale;
twp - durata semnalu- ~ o poate acoperi o gamă lăi-gă" Cle'"âplicafi l datorită celor două moduri de îi.ieru ale
min. 30 ns min. 35 ns rnin. 50 ns min. 55 ns
lui de scriere ~j sale: modul minim pentru ap l icaţi i relativ simple, în care microprocesorul genereau'i.
~ el însuşi semnalele necesare transferurilor cu memoria şi cu porturile de intrare I
lo1-1z - timpu 1de ~· ie şire şi modul maxim, pentru aplicaţii complexe, inclusiv sisteme multiprocesor,
dezactivare a max. 20 ns max. 20 ns max. 25 ns max. 40 ns
., în care semnalele de comanaâ penfhr ntemotii'1i porturi sunt generate de un
i eş iril or ~
,,; controler de magistrală, 8288;
tow - timpul de
min. 35 ns
t~ o magistralele de date ş i adrese sunt multiplexate iar o parte dintre termi nalele de
prestabili re a min. 20 ns min. 25 ns min. 30 ns
~' COlnandă au rol dublu; aceasta a pen111s Încapsularea circuitului într-o capsulă cu
dalelor ~ doar 40 terminale.
toH - timpul de ~ Istoria microprocesoarelor este scurtă dar deosebit de dinamică. Gradientul evoluţiei
poststabilire a min. O ns min. O ns min. Ons min. O ns ~ microprocesoarelor a fost şi este deosebit de mare. Perfonnanţele microprocesoarelor
datelor ~ de azi sunt superioare şi depărtate de cele ale lui 8086. Sigur că atunci când se compară
~ performantele a 2 microprocesoare se iau în considerare mai multi factori dar, întrucât nu
Tabelul 1.8. Timpii necesari la ciclul de scriere 'li , '
ţ; se doreşte dezvoltarea acestui subiect în această carte, se vor prezenta doar 2 comparaţii :
"'; ~ microprocesorul 8086 include 29.000 tranzistoare pe când microprocesoarele
;~, Pentium IV de azi includ peste 30.000.000 tranzistoare,
:!: • frecvenţa tactului microprocesorului 8086 este de 4, 5 sau 8 MHz pe când frecvenţa
r tactului microprocesoarelor Pentium IV de azi este de 1.2 - 3 GHz.
!, În aceste cond i ţii s-ar putea pune întrebarea: la ce foloseşte studiul micro-
~ procesorului 8086, în anul 2002? Autorul consideră că stud iul acesttii microprocesor
:t este uti l din ce l puţ in următoarele motive:
~
t,

I•
28 SIS'J'l'i\.11'. ( :t, i\l lCR( Ji'lH J( :l'S( ,,,!{,„ r
I C~p. 2. '.l[icropn><..\'~nrul :-!UH6
a) Toată familia de microprocesoare Intel are ca microprocesor de bază, ca microprocesor l.
de pornire, circu itul 8086. Toate microprocesoarele care i-au urmat păstrează
TEST ™>~Al9/S6 - Al6/SJ
caracteristicile sale de bază, pe care, evident, le-au dezvoltat şi completat. ,
b) Toate d iferenţele între microsistemele pe 8 biţi şi cele pe 16 biţi pot fi evidenţiate optim, .,t.
INTR
di n punct ele veuere didactic, la nivelul unui microprocesor 8086 (strlJl:tura hardware, ~·:.k.1+ AD15 -0
organizarea şi gestionarea memoriei. conectarea porturil or, sistemul de întreruperi, NMI
pr;gramarea). Înţelegerea acestor diferenţe sunt titile şi necesare şi la trecerea spre RESET ~
sisteme bazate pe microprocesoare pe 32 biţi atât pentru pro i ectanţii de sisteme cât şi
8 /BHE /S7
pentru cei care pun în funcţiune, veri fi că şi depanează astfel de sisteme. 11
CLK
~
o 11-----lli'ls> /RD
8 -~ IRQ l/GTO CHOL
2.2. Modurile de lucru şi terminalele Vcc 6 11-----{J'il:>- / RQ //GTJ (HLD
--~
~ /LOCK (!WR)
Microprocesorul 8086 poate lucra în 2 moduri : modul m1111m şi cel maxim. GND ~ --~~ IS2 (M //IO)
Existenţa a mai multor moduri de lucru se regăseşte la toate microprocesoarele peste 8 biţi. ,,
Cele pe 16 biţi au doar 2 1noduri de lucru iar cele pe 32 biţi au 4 1noduri de lucru. Existenţa ~ ~ IS l (pT !IR)

mai multor moduri de lucru este o caracteristică utilă în sistemele cu microprocesoare ' ~ ISO (/DEN)
romplexe, inclusiv în cadrul PC-urilor, ele ordonând diferitele stratud de program din ·: f;> QSO (ALE)
punct de vedere al privilegiilor. Cu această facilitate se asigură separarea şi protecţia ~· MN//MX---""„·,,,i r:;.... QS I (/TNTA)
resurselor hardware şi software între diferitele straturi de programe. Astfel, de exemplu,
nucleul sistem ului de operare va rula în modul care oferă maximul de privilegiu, având„ "
<3 READY
acces la toate resursele sistemului. Alte modu le din sistemul de operare, de exemplu
driverele pentru diferite periferice, vor rula E.e un nivel de privilegiu mai mic ~~1cl_
~ la mai putine resurse iar erogramele apli~ative vor rula pe nivelul de privile iu
·--.... - =:E:t=-- -c:u,:=1.:::c.
minim având acces restricţionat la unele resurse. ln general, trecerea mtr-un mod în
altul se face prin pr~Tt1Condiţii controlate. Fig. 2. l. Terminalele microprocesorului 8086
Microprocesorul 8086, deşi im plementează această caracteristică, este cel mai ,/
rudimentar, din acest punct de vedere. Cele 2 moduri nu oferă privilegii diferite ci ele · 0 IRD .<"Re~d ~?n trol").: ieş ire cu trei stări, activă atunci când microprocesorul exeCL
se recomandă în anumite con figuraţi i hardware, pentru tipuri de aplicaţii dife rite iar un c1du ae t:1 t1re sau 111trare. - - ---
trecerea dintr-un mod în altul se fake prin hardware: există terminalul MN/ /MX la cart<, 0 'ff!.l.DY ~"Wait. Ş_tare ţZ0trol "): intrare pentru sincronizarea cu circu itele de rnemo 1

prin I !oaie se cere modul minim iar rin O logic se cere modul maxim. ş1 po1tunle 111a1 lente. -
Configuraţia terminalelor microprocesoru u1 8086 este prezentată în figura 2. 1. 0
INTR f'ÎÎÎtern~1pt Reguest"): intrar~ pentru cereri de întrerupere mascabile.
În continuare vor fi descrise semni ficaţii le term inalelor. Se va începe cu terminalele 0
fTES~ ("Wait.on Test Control"): intrare utilizată de instruqiu:;; Vh\ IT: dacfl 1TEST =
care au rol comun în ambele moduri de lucru. atunci execuţia programului continuă, în caz contrar microprocesorul execută stări <
e A 191 S6 - AJQ/S3 ("Address/ Status Bus"): ieşiri multiplexate cu trei stări; în timpul aş!epl~~·e; poale fi folosită pentru sincronizarea microprocesorului cu evenimente extern
stării îl reprezintă cele mai semnificative linii ale magistralei de adrese iar în ti mpul 0
NM! ( N~n-Maskable 1n;m.upt Request"): !n~r~re.pentrn cereri d~~treru12,ere nemascabil
stărilor T2 - T4, reprezintă informaţie de stare: S6 este întotdeauna O, SS copiază 0
RESET ( System Reset 1 ): mirare pentru m1ţ1al 1zarea microprocesorului.
indicatorul pentru întreruperi IF iar S4 şi S3 indică registrul de segment utilizat la : ° CLK ("System Clock"): intrare de tact cu frecven\a uzuală de 5 MHz şi facto r (
calculul adresei fizice. umplere de l/3.
o ADI 5 - O ("Address/ Data Bus"): magistrală multiplexatt de adrese I~ cu trei
. În continuare vor fi prezentate funcţiuni le terminalelor pentru modul rninir
stăn; 111 starea Tl reprezintă magistrala de ad rese iar în stările T2 - T4 devine "· term111alul MN/ /MX = l.
magistrală de date. ~ !;!! 110 ("M_e morv 1_10 Control"): ieşire cu trei stări având acelaşi rol ca ş i S2 ·
" IBHEI S7 (" Bus HiQh Enable/ Status"): i eşi re cu trei stări; în timpul stări i Tl i nd ică modul m~x1rn; daca are valoarea I înseamnă că se execută un ciclu de acces
dacă are sau nu loc un transfer p~]um'ătătea superi oară a magistralei de date ş i 11 ~0~·1 e iar dacă are valoarea O ~arnnă că se~~cută un ciclu de transfel' c
va lidează dacă are loc. iar în tim pul sH\ri lor T2 - T4 este bit de stare.
.
po rtu nle ele intrare I iesire
, . ·
·~
1;-.

:;o s1sT1·::vw 1:1 1 i\llC:H< ll'R< i1 :1:.sc>i\ J(J '. II Cap. :Z. lvlicroprocesoiul 8086 31

r: i '~·:~.r ,_.. · ~.r .. . ' .1-.:ÎJ1_,, '


o /WR ("Write Control"): ieşire cu trei stări, activă atunci când microprocesorul execută· ' .
L;~ ciclu ele scriere sau unul ~~ "2.3. Structura i nternă •'
\,,

" /!NTA ( "Interrupt Acknowledge") : cu trei stări, care se activează atunci când
ieşire
microprocesorul execută un ciclu de acceptare a unei cereri e mtrerupere mascabile. ~
Micro~rocesorul 8086 cugrir.de__ pQUă lllJi!ăJi functL?nale~Ji&: ?.:~'~L~
• ~E ("Address Latch Enab.le"): se activează atunci când pe magistrala multiplexată t~ asincro1uilna_~ ·endenî una faţă de cea l altă. Acestea sunt:
de adrese/ date sunt active adresele; se poate folosi pentru demult1 lexarea ·: . o ~;;,itatea de executie --- " ·ecution Unit" ~L; rolul de a executa instructiunile;
magistralei-prlrîîilcărcărea ad~selor în regi~. ~~· . , „ iii!E::z d ~ ~ -
e i5f! IR "Data Transmit/ Receive"): ieşire cu trei stări având acelaşi rol ca şi S I în
modul maxim: indică sensu trans eru ui e mag1stra a e ate: I înseamnă transm1s1e f<·'
i „ uni ti,ttea de interfaţ~re c9„1112gistralele. Bill "Bus Interface Unit") cu rolu l de a
aduce rnstruCţlUîitle·clfrl 1i1emorie ŞI ea trans era Operanzii Între llllitatea de execuţie
şi extei'ioi'ul microprocesorului.
iar mseamna rece[!tte. .ţ
o /DEN _("Data @able"): ieşire Cll tr<!Lstări car~validează transferul de date pe magistrală. ~
• f!OLD ("Hold Request"): intrare pentru cerere de cedare a magistralelor. ~
" HLDA ("Hold Acknowleclge"): ieşire , răspu ns la cererea de cedare a megistralelor ~
semnificând acceptarea acestei cereri; se activează după ce microprocesorul s-a i.J Registre
decuplat de la magistrale. . de
Se1~ni~caţiile ~celoraşi tenninale dar pentru modul maxim, terminalul MN/ /MX = O,~'). date Date
sunt descnse rn continuare. · ~· Registre pentru
o ~ - O ("Bus Cycle Status"): ie iri cu trei stări; sunt linii de stare care codifică ti ul ~ accesul în interi-
orul unui segment
~iclu pe care-l va executa micro rocesoru ; ele constituie intrăr!__pentru ~_:irc_~it ~
controler de magistrală, 8288, care va enera semnalele de coman ă pentru trans terunl~.~ IP
cu memorn e şi porturile; codificarea tipului de ciclu este prezentată în tabelu! 2. 1. ·f Registre Comandă~
·~ interne BIU
/S2 /S 1 ISO Tipul de ciclu ţ Magis-
o o o Acceptare a unei cereri de întrerupere t~ trale
o o l Intrare ~· externe
«;
o l o I eşire ~'
.;>
o l I Halt
I o o Aducere cod de instrucţiune
l o l Citire date
I I o Scriere d~te Şir instrucţiuni
„ _I I I Inactivă ~~
,J

Tabelul 2. L Codificarea tipului de ciclu la microprocesorul 8086 I,. ţ,.

• IRQ! IOTO. IRQ! !GTJ ("Request/ Grant Bus Access Control"): linii bidi recţionale J Registrul indicatorilor
I
I
folosite de microprocesor pentru primirea cererii de cedare a magistralelor şi acceptarea ~ I
t:i în urma unui dialog de tip cerere - acceptare - renunţare; cele două linii sunt~
independente. ;ţ
Unitarea de execuţie EU IUnitatea de interfaţare cu magistralele BfU
• ILOCK ("Bus Prioriry Lock Control"): ieşire cu trei stări care atunci când se activează ~ Fig. 2.2. Structura i nternă a microprocesorului 8086
Ltrală că microprocesoru1 nu doreşte cedarea magistralelor. Este sarcina unui arbitru J
de magistrală extern să nu permită ca o cerere ele cedare a magistralelor să ajungă l a ~ Existenţa a 2 uni tăţi funcţi onale duce la geşterea vitezei de lucru datorită
microprocesor amnci când /LOCK este activ. ~ suprapuîi~rilorîntre-ătÎÎVi'fiiţile- lor;· frr cât ni.11nărul de un ităţi f~,~~tiQnf1le iIJqep_~n4e!'1te
• QSJ, QSn: ("fnstruction Queue Status"): ieşiri care indică exterio111lui tipul de infonnaţie i ~_şte mai. mace,.. cu_A_t~t_ creşterea vitezei asigurată este mai mare. ~,a.:microprocesoarele
preluată de unitatea de execuţie din şirul de instrllcţiuni, în starea anterioară . J l!lt.erioare clin .familie, acest"număJ: ci·eşte (de exemplu 6 unităţ i la 80386 ).

.>t
_'?
,_
Unitatea de interfaţare c u magistralele, BIU
~unitate inte1faţează mi~roprocesorul cu exteriorul. prin interm ediu_l__~~_ei Jk','
'
I
~
;;1;;·11·'.i\IF. c:i1 \1 IUll ll'Rl l< .J·:S< I.\ IU . j11

Setu l de registre este pre7.entat în fig. 2.J.


7 o 7 o
magistrale de ac.lrese-ae- 20 linii, din care primele 16 sunt multiplexate cu magis_trala d_e : AX AH AL Registru acumulator
dale iar ultimele patru, cele mai semnificative, sunt multiplexate cu informaţie de stare. BX BH
De asemenea generează comandă şi
semnalele de de stare. f ex CH
BL Registru de bază
.~!11 jmplementează o importantă facilitat~...a micrnprocesorului şi anume aducerea ~ DX DH
CL
DL
Registru contor
Registrn Je date
în avans a instrucţiuni lor. Blocul numit Şir instrucţiuni este de fapt o memorie FlFO. 1,
având capacitatea de 6 octeţi îÎ1 care.se introduc instrucţiunile aduse în avans şi se furnizeaz.ă, ~ Registre generale
_la...cer.e1:e, către E.Y., _Dacă în acest bloc sunt cel puţin doi octeţi neocupaţi şi dacă EU nu ;~

~;;;. m -=:;~ f,ff:,.,plhn"""'


sol i cită BIU pentru vi:eui1 acces la magistrală. BIU va aduce în avans o instrucţi une. ~-1
lnstrucţiunile sunt pe 16 biţi şi sunt preluate din rnen101ie de la adrese succesive ~
celeia la care. se atlă instrucţiunea ce se execută. Dacă EU a rulat o instrucţi une cc ,i-:;1
modifică secvenţa normală de execuţie a instrucţiunilor, de exemplu o instrucţiune ele .;
salt, BJU iniţial izează şirul , citeşte din memorie noua instrucţiune, o transmite către EU l
şi apoi umple şirul citind în continuare instrucţiuni începând cu noua adresă. Registre de segment
Această facilitate_ asigură un important câştig în timp, întnt•::ât există o suprapunere 1
în timp, î1i·t~-e execuţia şi aducerea instrncţit1nuoi: ca;-e; practic, face să dispară timpul de „ 15 o

t= '.J i! ; d~~!~Et:;f~~~:„,;,
aducere a i nstrucţiunilor. Acest avantaj este anulat în cazul instrucţiunilor care modifică ~
secvenţa normală de execuţie a instrucţiunil or dar aceste cazuri sunt puţine rapo11ate la
cazul în care instrucţiunile sunt executate una după cealaltă.
Dacă în timpul execuţiei unei instrucţiuni, EU necesită transferul unui operand între
el şi exteriorul microprocesorului (memorie sau port), el comun ică lui Bill adresa, pe Reg;stre pentru acce5td în interiorul unui segment
16 biri, a operandului şi tipul de ciclu ce trebuie executat. B!U calculează adresa fizică a

-- ::i
operandului, pe 20 biţi, printr-un mecanism ce va fi prezentat la paragraful 2.1.5, utilizând 15
în acest scop unitatea aritmetică, UA şi registrele din interiorul său, generează semnalele de
comandă pentru transferul operandului şi mijloceşte transferul între EU şi exterior. Dacă
C<!rerea de operand, din partea lui EU, apare în timp ce BIU execută un ciclu de aducere
._„-_._-------:.......'..IP~---
E FLAGS :J
Indicator de instructiune
Registrul indicatoriior

anticipată a unei instrucţiuni, BlU încheie ciclul început şi apoi ex.ecută noul ciclu. Fig. 2.3 Setul de registre al 111icroprocesorului 8086

Unitatea de execuţie Registrele de date


Are rolul ele a decodifica şi executa instrucţiunile pe care le extrage succesiv clin
~enumirile lor sunt cete din figură. Particularitatea lor constă în aceea că de~
şirul de -i'îisfructiuni'-a1 BIU. Dacă în urma decodificării lor rezultă necesitatea unor el„~ pot fi1ad1esate
·
sunt. registre
~ . r. pe. 16 b1ti ŞI· ca doua- registre
· • superior·'
operanzi, comunică lui BIU cererea însoţită de adresa pe 16 biţi a operandului. În
j)e 8 biti recristrul
1
• •_
H ş1 ce . t11 1erior
da-- .b .' L:· Orie_a.ie
· d'intie
· e I~poate fi 11nplicat
· · 111• operaţii ·aritmetice
' "' şi logic<
timpul execuţiei instrucţiunilor. EU poziţionează indicatorii de condiţii.
· 1 au Ş I atn uţium specifice. prezentate în tabelul 2.2.
Dacă şiru l de instrucţiuni este în întregime neocupat, EU aşteaptă aducerea
instructiunilor de către BIU. De asemenea, în cazul unei instrucţiuni de salt, EU comunică Registru Functiune specifică
lui BIU noua adresă, a următoarei instrucţiuni şi aşteaptă aducerea acesteia de către BlU. AX . "fnmulţire, îmeărţire, intrare I ieşire ee cuvânt
_,, Setul de registre AL fnmulţ ire. împărţire, intrare I ieşire
J)e octet, ari tmetică zecimală
Spre deosebire de microprocesoarele pe 16 biţi ulterioare, ale altor firme, la 8086 AH lnrnu l ţi re, împă11ire
pe octet
a fost implementată o ~-ucltJ.@. neregulaţă a registr,elor. Puţine dintre ele sunt generale, BX Translatare
majoritatea având roluri predeterminate. Se pot împărţi în următoarel e categorii: ex Contor pentru operaţii cu siruri, bucle
o registrele _de date, -· CL Contor pentru deplasări ş i rotaţii
o registrele de segment, DX lnmultire împărţire, intrare I ieşire indirectă
0 regis(rele pentru accesu l în interiorul unu i segment,

o registrul indicator ele instrucţiune şi registrul indicatorilor de condiţii şi control.


Tabelul.'.!..::?. Registrele de cln1e ale microprocesoru lui 8086
'~~4
)<\ . . s1s·n:.M1„ <'. l 1 1\l l1'J(( 11'R< >< :1-:sc ),\lll'. -~
'lf c~p. 2. ;\1icroproccsorul 81J86 35

Registrele de segment . .. •
-~ SF ("Sign Flag"J, bit 7: indicator de semn: con rine bitul cel mai semnificativ al r.:wltatului
Pentru a adresa un spaţiu de I Mo microprocesorul di3pune de 20 lm11 de adre~. ~
1 aeCi copfază rangul de semn; va fi 1 pentru rezultat negativ şi Opentru rezultat pozitiv.
Dar registrele inrerne akunicrogrocesorului a~ ~~te 16 bip _Qec1 e~e nu pot memora ?. H ' • OF ("Overtlow Flag"), bit 11: indicator de depăşire; se activează atunci când apare
ad resă. Soluţia a constituit-o Îmjlărţirea memoriei. 1.n segmente de cate 64 ~~c~re Q_Ot tu:\ depăşirea capacităţii registrelor ca urmare a unei operaţii aritmetice cu operanzi cu
adresate prin- intermediul unei - dresele de'"~~1
configurati i pe I 6 biţi._ L ~. un 1~~~1,ne~ t dat, m1croi:irocesorul semn; va fi I atunci când apare un transport sau un împrumut în/ din rangul de semn.
oate lucra cu Qatru segm~nte:~llu.J de co?, lll~I dy ~.tiVă ş1 doua d_e datţ,,. A i': ~-~ti__t~e,! .i .~di~_aţo,ri sunt pe~tru c,QJl.~[QJ.
~t ale se~~~=~1~e. 1s~cle"ssigment. ~· C"!...!:~P _f.l.~g"1_ dacă
A •

celor atru s_unt : on mute 1n re Momii 111 cate o TF bit 8: indicator pentru modul pas CLI pas: va con(ine l,
se oo(in"a reseli:diiice-se va prezentam .paragraful 2. 1.5. . A w ~ ·-ihicroprocesorul va lucra în modul instrucţiune Cll i nstrucţiune .
. Re istrul cs conţiue..adresa de rnceput a segrne1:i_tu!u1 de co~, _111 car_e se a ~ I o IF ("Imemtpt Flag"}, bit 9: indicator pentru întreruperi: dacă va conţi ne l. microprocesorul
instn.icŢiTt~iTe a
. _Pi!j_ini. adresa_ o instrucţiun_~· microprocesor~il .combm~. conţm~itul lui'~. ~-ccepJă
cei:eri!e de întrerupere ce sosesc pe intrarea fNTR: în caz contrar Ie ignoră.
CS cLÎ--cel ·ai registri.t'Jur-indicator de instrucţnme, IP}~\~em~n:_g?t e,,.ista rn~i .multe fi o QF ("I)irection Flag"), bit 1O: ind icator de d irecţie: se foloseşte la operaţiile cu şiruri:
"se"mente de cod activ-area tmuia ·realizându-se pnn mcărcarea m CS a adresei d~ ~ dacă este 1, ad resa operandu lui din şir este incrementată după fiecare transfer iar
în6'eput ·3 · ;:especti~ului segment. _Registrul SS . co:1ţine adresa d_e început a seg'.nentului:~ dacă este O, adresa operandului din şir este decrementată dupa fiecare transfer.
g~~~llvă _i~i~:egi~~-re~e D_S şi ES c<mţ~~ act.re_s_el~_de 111ceput a doua segmente de date. i'.·. lnstructi_unil~ PUSH F şi PO~F permit modi~icarea. tuturo r indicatorilpr prin
. 1 - ·. ter·iorul unul segment ._, r, ,c, . depunerea lor m stivă, prelucrarea ş 1 readucerea lor m registrul indicatorilor. In plus,
Registrele pentru accesu mm · „d' - - • ·· CF IF ·OF · - · · · · d'
. . . 1 · it pentru m 1catom , ş1 exista mstrucpunr cu acţiune 1rectă.
Împreună cu registrele de date, reprezin_t_ă reg1strel_e _gene.ral~ a1e rn~cropr~ce~~1~~1. fl. _
Ele se pot diviza în_r~.gjsţre_il)dex şLregistre jnd.1 ~at9r. ~1strele mdex c_ontm.depla~ament.ul-::!
,:esej .. „--- ă J.In_pp~r.~ndJu cadrul segmentelor de date ŞI d~~e suphmen~~r e . 2.4. C1clurrle maşma .. I',,
şi
• • • w

deci· în rae_ort cu · reg1s · t.g:I.e _ ES . S~ folosesc, în general • Io. operatule


0
. · . cu ş1run. Sl ,•~- •
fITTiică ~dr:.e.s.a OR._~r~andului sursă iar Dl indică adresa opernndulut destmaţie. d, ~ ln conti_nuare se va prezenta modul de variaţie a semnalelor microprocesorului în
Registrele indicator conţin deplasamentul adresei la care. se afia_-un.0 ?eran. 1 ~! cadrul unor cicluri de bază. Toate transferurile între microprocesor şi memorii sau
codrul' ·s·egrnentului de sti_vă, SP indică deplasam~ntul la care :e afla vartul _--std~~ porturi se fac în conformitate cu aceste cicluri.
raportat la s·s iar BP- indic! deplasamentul adresei la care se gaseşte un _opeian lt11··. L'.n ci~lu 1.ninim du~ează patr~1 stăr~ n~tate cu Tl până la T4, o stare fiin~t_!.
cad rul segmentului stivă. . · ~a o perioada a _unpulsulu1 de tact. Intre stăn le Ţ3 şi T4 se pot insera stări de aşteptare,
I · d" t d e .ms t ruc t 1 ' u ne IP , "''"' notate
- cu Tw.• atunci - - când memoria sau porturile sunt prea lente, prin intermediliî
1
~ semnalului READY. Impulsul de tact are facturul de umplere egal cu J/3. Pentru
I
Reg stru 111 1ca or • ' .
I ndică adresa instrucţiunii următoare celeia care se execută„ Contme depl~amentL; f generarea lui se poate utiliza circuitul 8284.
·- -- 1 . . t. . . ; "e se va executa în cadrul segmentulut de coc .fi BIU - . I . I . 1- , „
adresei ~1nde. se at ă mst~u~ nmea cai . . , · . . • . 7 . .„. . ~ . .exe~uta c1~ ur~ a ~ag~stra a doar c.and EU 11 ~e~·e acest lucru sau când
tontinutul ltu IP se combma cu cel al lut CS.; · J aduce antici pat 111strucţmn1. Stările 1n care nu există vreo acl1v1tate a BIU cu exteriorul
- . 1 · d' t . ·1 de conditii şi control FLAG S '
iÎî· se numesc stări inactive. Între două cicluri la magistrală pot exista oricâte stari inactive.
Reg istru m ica on or • ' F. 2 4 · t- · · EU · BIU • 1 · I· · · · ·
.. · ·fi f ve şi constituie-~ ig. · prez111 a activrtatea ŞI 111 cazu unei secvenţe a catu1tă drn o mstrucţmne
peşi_ este un registru pe 16 b:ţi, doar 9 r~ngun sun~ sde_mrn t~adt d.t .. Ei se~i JMP, de salt, urmată de o instructiune MUL. Ooeraţi i le sunr descrise în fin-ură.
. ;- ·· · I · 8086 Dintre aceştia 6 sunt m 1caton e con l.Jt. · r:: - • . . · · "'
111d1cator11 microprocesoru u1 · . . '· · . „ t. fi1te_s.tati şi sei,ţ 1nlrucat variaţia semnalelor de comandă depinde de modul în care lucrează
· • • t' · de către microprocesor a unor ope1aţ11, po . 1} · . . . . . . .
pozlponează m urma exe~u.rer . . . -t nucroprocesoru, 1 se vor prezenta c1clunle de bază pentru modul m1111111 ş1 apoi diferenţele
pot lua decizii în funcţie d_e__conţmutul .lor. Aceştia sunt. . . • . ~ pentru modul maxim.
• CF. ("Carry Flag"), bit O: indicator de transpo~: se a~t~vea_ză atunci cand apaie U\t . .. .. „ ..
uunsport sau un împrumut din/ în rangul cel mat sem111f1canv; . • f
Ciclul de c1t1re date ŞI tnlrare pentru moclt.I minim
• PF ("Parity Flag"), bit 2: indicator de paritate: se activează atunci can~ ~~zultatu~ Este prezentat în fig. 2.5. Ciclul începe cu starea T J în care microprocesorul plasează
unei opera(ii aritmetice sau logi~e pr.od~ce un octet cu u~ num~~ P_~r de u~ttaţ1. _ cândt pe magistrala de ad1ese o co~fi~u.raţi~ pe 20 ~iţi. De_as1:1~enea acti.vează . semnalul
• AF ("Auxiliary Carry Flag"), bit 4: 111d1cator de transpo1.t auxi hai · se a?:iveaza ? ~BHE dacă transferul va folos i ş1 Jllinatatea mat senm1ficat 1 vă a mag1strale1 de date.
apare un transport sau un împrumut în operaţiile aritmetice cu operanzi m cod B CD~ f~trucâ_t circuitele de memorie şi porturi I.~ cer ca adresa să fie stabi lă pe toată durata
între digiţii acel ui aşi octet. . J c1clulu1. este necesar ca magistrala de ad 1~ese I date să fi e demu ltiplexată şi informaţi a ele
• ZF ("Zero Flag"), bit 6: indicator de zero: se activează dacă rezultatul unei operaţt, ~hdresă să fie memorată în tr-un registru. Jncărcarea se face cu semnalul ALE, fo los it ca
aritmetice sau logice este zero. ,semnal de strobare .
,. „
~
~
SISTEi\11" 1 :1 i .\III .ll< >1'\lt lCF.S\ l,\l{I ' i Cap. 2. i\licroprocesorul 81ltl6

Ciclul instruc- I Ciclu de .. Cidu de


,
magistrală
de - jCicl~ ~
La începutul stării Tl. semnalele M/ 110 şi DT/ /R sunt pozi ţionate 1.011
ciclului in curs. starea lor rămânând nemodificată tot timpul ciclului. Li nia M/ / I
I Stăn inactive_ i 1pag1st1 ala i1. indica dacă transferul curent se efectuează cu memoria. M/ / IO= I snu c:u pllrlUI ilc
tiunii JMP ,. magistrală
~--=~~--,~ Pj<lt ~

UiJL t
!IO = O. Linia DT/ / R va indica dacă microprocesorul transmite, DT/ /R = I
TI recepti?nează, DT/ IR= O. .

-Ui}L__ ln timpul stării T2. informaţ ia de pe liniile Al 91 S6 - A 16/ SJ se schi


reprezentând informa!ie de stare. Liniile S3 şi S4 care codifică registrul de scg

EU Q) !EU •d"" p~imH


2 ootofi. din (Cod"I şi<·
MLIL)I i~shuoti"nii
fo losit la calculul adresei fizice pot fi utilizate, prin decodificare, la selec(ia
® u
segment de memorie sau la protecţia unui segment faţă de accesele ncauLnr i
. !şi execută în 70-77
0
4
si-in 0 ©
I {fJ ti I nformaţia de stare rămâne ne111ocli.ficată şi în stăr i le T3 şi T4. Tot în starea T2. li
\
s1u ® I . .
®
d
. \..:},/ . I . „
I EU · ·rali zpază şi rul de 1nstructn1111,
m AD 15 - O trec în a tre ia stare ş i se acti vează semnalul /R O, ind icând că se execut
~ ciclu în care microprocesorul primeşte i nformaţie şi semnalul / DEN. ind i·
.
i) întrucât s-a executat o instrucţiune - e sat,. ·l .·11~ 1, 1 ~~ct1~ală i încarcă 4 octeţi în şir; " e.xteriorului că datele pot fi plasate pe magistrală.
2) şirul este ool, ca urmare BIU executa două c1c lll l a ma?:" . ş f 4 octeţi· ~~.
3) EU preia doi octeţi din şir i~~ B I~ încarcă încă ?oi octeţi I~ ~ir cai e va con.me . ' Pe frontul rid icător al tactului din starea T3, microprocesoru l testează
4) BIU încarcă încă doi octeţi m şir care va fi plm (6 octeţi), - . . MUL· READY. Dacă este l, intră în starea T4 iar dacă este O va insera stări de aşteptare,
~ în care informaţia de pe lini i rămâne nemodificată şi se testează din nou linia REP
" · · " care EU .executa
5) BIV este liber timp de 62 : 69 Stan, tunp lll ' ' -
mstruct1
. . . .
unear " , f
6) EU preia următorii doi oct~ţi di_n şir şi încep.e execuţi.a urmato::ue1 mstruc,1uni, '-; până când aceasta devine l . În starea T3 se preiau datele, iar la începutul stări i T
7) BIV încarcă încă doi octeţi în şir care este d111 nou plm. _ ~ dezartivează semnalele /RO şi /DEN indicând sfârşitul ciclului. La sfârş i nd acel•
stări T4 se pozi~ionează liniile DT/ / R şi M/ /10 pentru ciclul următor.
Fig. 2.4. Activităţile lui EU şi 81 U pentru o secvenţa concretă . ~
Ciclul de scriere date şi ieşire în modul minim

~ Tl T2
I T3 T4 Tl ~
~ ~ ) având următoarele
4 rl
Ciclul este prezentat in fig. 2.6. El este asemănător cu cel de citire şi int1

~--_J
particu l arităţi:

CLK I I I >+ : o pe liniile ADl 5 - O, după informaţia de adrese se va genera imediat, în starea T2,

~ ;~~~~ ==-<:'":J:~b:=t:: ~tfil_:r=r:==:~ -,~ ~ .


care se va înscrie în memorie sau po1t, fără ca aceste linii să mai treacă în a trei stai
o linia DT/ IR va avea nive l l faţă de nivel Oîn cazu l anterior;
- .w.„J
/BHE , I I
1
- „.
~- ~~~J-~
I \ 1. [ o /RO

la începutul stării T2 se act i vează semna lul de coma n dă /WR, mai devremt
în cazul anterior, indicând exteriorului că microprocesorul execută un c
I
de scriere sau citire;

ADA1LsE-0 ~-j~lf-~
,""'" . 11_ 1 e semnalul /DEN este act iva t mai devreme ca în cazul anterior.

Ciclurile de bază în modu l maJCim

M//lO : J!===:,,,-~ ... \


1
Prezentarea se va face comparativ cu ciclurile anleriore. indicând diferentele existe
-==="""'=f""'"",.,.,.""""~\=-t~=-=-=:::il=: i:~ Informaţia pe magistrala de adrese I date are aceeaşi variaţie ca şi în caw l cicluri Io
=""""=*"""'....., modul minim. De asemenea semnalele ALE, /DEN şi OT/ IR au aceeaşi variaţie ca ~
i ! modul minim deşi ele nu mai sunt generate de microprocesor ci de circuitul contn
I 7 de magistral ă 8288.
Fig. 2.7 prezintă semnalele de stare /S2 - O. Acestea indică circuitului 8'.2 88 ce

-t .
IRD i f t
i I i \ de ciclu va executa microprocesorul.
Fig. 2.8 prezintă comparati v semnalele de comandă /RD, IWR pentru modul mii
4I i ·· r= •
DT //R - ·~1··-===·· -i- _ i ! şi cele corespondente, generate de circuitul 8'.288 pentru modul maxim. Există două semi
_ "--··.·-" "\(~ '·~=---·· ··r··==·-""' .:. deutilecomandă de scriere avansate, I AM WC pentru memorii şi /AIOWC pentru port
=
_.11.
I~ -==r= in cazurile in care semnalele de comandă pentru scriere normale nu au du1
/DEN

READY

1

-l--·· „

- ·-·T --·---··-·····
· -

„ ..•.„
_„_ · „
.„.„„ . „
1
!
. • •„„ --····· ·-··· . .•.• · .·_-_,

1
=
1
=

1'
"-· -

.

' I I 1d . . I RA l'v1
·._1'·- """·"==·1··:~~= ~-~-:-·--- ~.~~·- \·~·~·-· ~el~:~~~ăg~;~\1~~~:~~i~~~~ţ~a~1:t~l~crei1~~~~ ~~pd~ ~ţ~~,~~; ~~~:~i ~/91c~~c~~\~r~:~m;1ale ~~~;·
•1
1 .

nu pot t1 folosite decât pentru comanda acelor circuite la care inscrierea i n formaţi ei· (
~omanclata de front ul posterior al semnalului ele comandă.
Fig. '.2.5 . Ciclul de citire date ş i intrare pentrn modul minim
u
38 SIS'l l':'vll· <:LI 1\IJUH ll'l{( J<:J·:S1 >.\l< l · 1~· Cap. 2. l\iicroproccsornl 8086 \ 1)

1 =--'n......_1..-11-
1~ ·~
T2 I .._'--T4=-=-! I TI ' CLK TI 1' T2 I T3 !'=i=-=T-4- ']'I

CLK TI /RD i LJ_J_,...._._-t-


A19/S6 - - \/
~~~3, Adr~se _2~4~ l~.
I ~

l 1+-
!WR
I ~

1-d_.J.,1r_;- ~ ~ :~ D~at= e-._g_e,.,.~-Fe_r_a_t-+e~ ~„--=r-


l~ fl:ţ-lh:
AD I S-0

__ MRDC, r·---
I-
ALE

M /!T.O
1~ /AMWC,/Alqwc

~1
J
1
....JJ

mR--f'
I I
I t /MWTC, flOj \fC [
1
lf 4 J
r =-- -
DT /IR =--
1
Jr
I
4- ·~ ~
'i·
Fig. 2.8. Semnalele de comandă penh·u modul maxim
Semnalele de comandă pentru scriere, normale sunt utile atunci când î11sl'rlrrn11
I i I , ~ informaţiei este comandată de frontul anterior al semnalului de comandă (de cxc111plt1 111
/DEN.._,,,_..,.._~-"==="l garantată existenţa datelor înainte de frontul
L ..--'"""""i"""'- circuite RAM dinamice). Este
I -~ acestor semnale.
antc1·irn ni

READY I j ________ I_: ____ 1:f Ciclul de acceptare a unei cereri de întrerupere mascabile
~ ·~ prezintă ciclul de acceptare a unei cereri de întrernpere mascabilc. C1l'111l
„ · „ ___ „ _______

· - -· -„„.„ .. „„.„....„-..-„„„„„„„j„-.„.-„„„„„„.„„_„„.„. ·. ·r--, 1 . Figura 2.9

·--·r„-·----· „...
_ ·- „ . „ ••

·
J .....
i
_„___________ 1J
I 1 1 .. :i~& treia
L! „·--·--·---„-·---L ar~ două s~bcicl~ri. _La începutu l pri~1~lui subc.iclu. m~gjstr~@ de .adrese'. date tre<.:L' t11 11

stare ş1 rămane m această stare pana la tennmarea c1clu!u1. Apoi se a·:t1vează sc1111111l11I
f. /INTA (generat de microprocesor în modu l minim sau de circuitul 8288 în 111ocl11I
Fig. 2.6. Ciclul de scriere date şi ieşire in modul minim ţ maxim) ind icând exteriorului că a acceptat cererea de întrerupere. In al doilea subc1rl11
·.~se activează lncă o dată senrnalul7 1NTA md1dnd eXferiorului că aşteaptă un vec101 du
TI T2 T3 T4 I TI ~ întrernpere pe magistrala de date, linii le D7 O. Acesta este fumizat de sursa cere11i dt'

Î întrerupere, în general m·in intermediul unui circuit spe<.:ializat entru întreruperi 82S9A.
CLK ~ Microprocesorul activează şi senmalul /LOCK indicând faptul că nu oreşte cc l111l'11
!t magistralelor între cele două subcicluri. Dacă microprocesorul este în mod minim. se1111111l11l
ALE
!. r· ~I .- ]-,--+ ~/LOCI< va fi activat doar intern dar o cerere HOLD nu va fi luată în co~siderare.

--T----··-·-·--- „.,
= ·~ Microprocesorul 8086 are facilitatea de cedare a magistralelor. In modul min1111,

-,·- -iI· · ~ cererea pent:·u cedare~ magistralelor este p1~mită p~ intrarea HO~D ia~ răspt~nstil mic1,11
/S2-0
·-
~r
t '
-----Â~-ti~---

--~·-w Ii --=·l·-
I
I
. ="=

I L=+--
„„„ ·~ procesorului la aceasta cerere este trecerea 111 a treia srare a mag1strale1111ult1p lcxute ~1 n
~ liniilor de comnnda: /RD, /\VR. Ml /IO, /DEN, DTI I R şi activarea liniei de rllspum
~ HLDA. Dezactivarea cererii HOLD va duce la dezactivarea răspunsului HLDA şi lu
·:~ preluarea controlului asupra magistralelor în starea următoare celei în care s-a deznc'liv11l
Fig. 2.7. lnformatia de stare pentru modul maxim !i semnalul HLDA.
~
~
~
'-;ISTl'.MI'. Ll' ~llC:lll Ji'I(< li :l'.S< l,\ 10 " c;,,p. 2. Microprocesorul ~086

TI Este sarcina unui arbitru de magistrală (ciicuitu l 8289 în familia lui 8086) să nu lase să aj1
la microprocesor cereri de cedare a magistralelor în timp ce semnalul /LOCK este a1
CLK Microprocesorul activează semnalul /LOC K în situaţii predeterminate (în lin
ciclului de acceptare a unei cereri de întrerupere) şi în timpul execuţiei unei instruc1
precedată de prefixul LOCK. Prefixul constă dintr-un octet plasat înaintea octeţi l or
compun instrucţi unea. Semnalul /LOCK se activează de către BIV la cererea lui
după ce acesta a executat prefixul LOCK şi rămâne activ pe toată durata exec1
~ instrucţi unii respective. Semnalul ILOCK este activat şi intr-o situatie predefinit
f anume în ciclul de acceptare a cererii de întrerupere mascabile.
..
~ O aplicaţie i mportantă a facilităţi i /LOCK este posibil itatea pe care o are mi
~ procesorul de a executa un acces la o.resursă comună care nu se poate executa cli
~: prin mai mul te cicluri la magistrală. In acest caz i nstrucţiunea ce real i zează ace•
trebuie să fie precedată de prefixu l LOCK, întrucât în caz contrar s-ar putea ca oper

Fig. 2.9. Ciclul de acceptare a unei cereri de întrerupere mascabile


I
~
p
să fie întreruptă, între două cicluri la magistrală, de un procesor mai prioritar,
transferul iniţiat să se încheie cu date false.
Un exemplu clasic este următorul: se consideră un sistem multiprocesor cu res1
partajate, starea unei resurse fiind indicată de un "semafor" care este un indic;
comandabil prin program. El poate fi, de exemplu, un rang al LU1ei locaţi i de memo
în modul maxim, cedarea I preluarea magistralelor se face pe două linii bidi.re~ţiona~e, (; Microprocesorul 8086 are posibilitatea de a testa semaforul şi dacă acesta arată
independente una de cealaltă. /RQ/ /GTO şi /RQ/ /GTl şi are loc în unna um11 dialog m ;: resursa este l iberă, să îl activeze, astfel ca semaforul să ind ice în continuare st<
trei faz.e: li ocupat a resursei, fără riscu l de a fi întrerupt intre ciclul de citire a semaforului şi cel
„ în prima fază cel care cere controlul asupra magist1~alelor ac_tivea.ză lini~ '?'_QI ; poziţionare. Pentru aceasta se poate folosi programul de mai jos, în care instrucţiu
/GTi, care este intrare pentru microprocesor, semnalul avand semmficat1e de ce1.e1e, . , XCHG realizează atât citirea cât şi poziţionarea semaforului :
~ în a doua fază microprocesorul activează aceeaşi linie. semnalul avâ1:d sem111ficaţ1e ·
HOV l~L, 1; se poziţionează registrul AL
de acceptare a cererii şi cedare a magistralelor; activarea semna~ulrn se face fie la
WAIT : LOCK XCHG MEM, P.L; se face schimbul între conţinu t ul locaţie i MEM, unc
sfârşitul ciclului la magistrală curent fie într-o stare inactivă; microprocesorul s-a .•~.-
se află semaforu l şi registrul AL; în AL se va afl
deconectat de la magistrale; .
vechiul conţinu t al semaforului iar în MEM se va af
„ în ultima fază linia fRQ/ /Gîi este activată din nou de cel care a cerut magistralele, ' noul conţinu t al său
semnalul având sem nificaţie de renu nţare la controlul asupra magistralelor.
'.::'EST 1, 1'.L; se testează semaforul: dacă conţi n utul lui AL est
Linia IRQ/ /GTO este prioritară asupra li niei IRQ/ /GTl. Dacă cer~rea soseşte diferit ele O se aşteaptă întrucât resursa a fost ocupe
simultan pe ambele linii, microprocesorul răspunde I~ cerer~a /r:--Q/ /GTO Ş'. , după ce a
în caz contrar se contin uă cu accesul la resursă.
reprimit magistralele, răspunde ş i la cererea !RO/ /Gl ~· Daca 1111:r?proc~.s~nII ~ăspund~ JNZ W.ll.I T
la cererea /RQ/ /GTI, cea de pe linia O va fi satisfăcuta doar dupa mche1e1ea d1alogul u1
Datorită prefixului LOCK, accesul la semafor şi poziţionarea sa se fac făn
referitor la linia l. _ _. .
Microprocesorul va relua magistralele doar. dt~p~ l.recerea a ~oua stan d111.11101ne~1~!1 permite accesul altui procesor la magistrală. În caz contrar ar apărea sit1_1aţii de conflict dt
dezactivării liniei HOLD sau din momentul pnm1rn 1mpulsulm de renunţate pe lm1a cum rezultă din următorul exemplu: procesorul i testează semaforul, sesizează că resu
este liberă după care doreşte un acces pentru activarea semaforului dar simultan acest ac•
IRQ/ /Gîi. . - 'd .. dori t şi de procesorul i + l. mai prioritar, care va activa semaforul, reţinând astfel resu
o cerere de magistrală, pe linia HOLD sau fRQ/ /GTt, nu e~te luata .m const e1a1e este
A

comună, în timp ce procesorul i care nu cunoaşte activitatea procesorului i + l va con tir


în timpul senmalului RESET dar dacă ea se menţine şi după ~e:act'.va1~ea !~11 RESET· va fi
operaţia de acces la resursa comună neştiind că aceasta aparţine procesorului i + I.
imediat deservită. Aceasta este o trăsătură care poate li folos ita la m~~ca1ea _loca.ţ11.lor de
memorie începând cu adre5a FFFFOH înainte ca microproceso~·til să-ŞI mc~a~a act1v.1ta'.ea.
După ce rnicropi·ocesorul a cedat magistralele, EU. contmuă execuţ~a uistn;ct~u~,; lor , 2.5. Organizarea şi gestionarea memoriei
din şirul ele instruqiuni până când dev ine necesar un etc lu la magistral~ sau yana cand
şir ul devine gol, aceasta fiind o facil itate ~up l imentar~ l:entru .c r.eşterea .v1t.eze1. . Microprocesorul 8086 poate ge~tion a~ I {Vlo ele memorie. Datori tă (aptului că to
o altă faci li tate a micro procesoru lui 8086 consta 111 blocai ea mag1stl ale Io'. exte1 ne. _!]gistri;l~ale sunt pe 16 biţi. el__!l!! P-Q~t~ Lr~nsfera intern adrese mai lu ngi de 16 b
Microprocesorul acti vează semnalul /LOCK atunci când nu doreşte cedarea magistrale lor. ~e~ ce duce la o îrripăfţire â"Sjjaţiu l ui ele I Mo în ,~egme nte de 64 Ko. Micropniceso
-12 s 1s·1 l·:,\lf·: c:u llfl<:R< )j>J{(JU ·:Sc) \RI·.

poate lucra la un moment dat cu 4 asemenea segmente, a?resele lor de încerrnt găsind u-
se în registrele de segment.
't-~·; Cap. 2. M ic roprocesorul HIJ86

Pentru o eratii cu şiruri, accesul_J_a_un element din irul sui ă se face rin intermediul
!: registrelor OS pentntlidresa de ază şi SI pentru deplasament iar accesul la un elemen
-U

Segmentele sunt blocuri de memorie care se pot şi suprapune. Există restricţia ca ijdin şirul d:stinaţi~ se. face prin mtermediul registrelor ES şi Dl.
adresele lor de început sa fie multiplu de l 6. Segmentar<::a memoriei are avantajele: ~f--:-i:>:ş~ combmaţta registru segment - registru pentru accesul în interiorul segmentului
'" este facilitată programarea modulară; fiecare modul poate ocupa unul sau mai rÎ este 1mpl1cJtă, programatorul are posi b!litatea, limitată, de a modifica această combinatie.
multe segmente putând fi dezvollat independent unul faţă de celălalt; -~ _Fi~~1~·a _2~ 1_!_ ~~·ezintă o i1~rngine de ansamblu asupra segmentării. În exemiJ!ul
• fac ilitează relocarea dinamică a programe lot; pentru aceasta este necesar ca acestea ;f. prezentat cele 4 segmente sunt disjuncte.
să nu afecteze conţinuturile registrelor segment şi să nu facă referire la locaţii din lt~.
1
afara segmentului; programul poate fi plasat oriunde în memorie prin modificarea ~ Valori mari
conţi nuturilor registrelor de segment; ~ Segment de adrese
o se poate utiliza un număr mare de stive, prin plasarea adresei de început a
segmentului sti vă în registrul SS şi a vârfului stivei în SP.
'{
~
• „....... ___
de cod

Printre dezavantajele segmentării se pot enumera: ~~ -~

• limitări în lungimea programelor introduse de dimensiunile segmentelor; ~


• adresa fizică se obţine din două configuraţii printr~un mecanism care necesită timp ·f cs
Segment
deci duce la o scădere a vitezei de lucru. tt de stivă
(„ Figura 2.1 O prezintă mecanisrritil de calcul al adresej ţizif~- Cele două configuratii J ss -
~

DS
'I r~ilos itc s~mt .conţin_utul un~i re~istru se~m~nt şi ~ ?_:p las~ment furni~t de progran:ator ~
~

~nrc se m~~i;c~ într-u~n registru :nt~L C:_o_~tmutul re~strufut .segment este d_eplasat la stanga
{; ES Segment
cu Jatru rangun, plasandu-se O 1n ratigunle rămase hbere ş1 apoi se aduna deplasamentl-!l f
ii ... de date
o >\1n ându-se astfel o adresă pe 20 bl'iLExemplu: presupunem că: (SS) = 2590H şi ·f: .... ~-=

(SP) = I 248H. Adresa fizică a vârfului stivei este: 25900H + J248H =26B48H. j
~

logioă 1
Segment
15 15 o .~ de date
ES-100001
\ Atfrosn

' 4j
CS,SS,DS ""

----------
I
------------ -·~
D_<f!.~;~;~=i ~·

~
·'ţ

·:~~'
~
suplimentar Valori mici
de adrese

~:llmw:::l':.! Fig. 2.11. Segmentarea la microprocesorul 8086


~ .
f .
M1croproc.esoru l 8086 poate lucra cu operanzi pe bit, digit, octet, cuvânt, dublu
~ cuvant sau bloc. In cazul în care se transferă operanzi pe cuvânt, dacă acesta începe la o
·~ adresă pară transferul se face într-un singur cicl u iar dacă acesta începe la o adresă
-~ n~pară Sl~nt ne~esare două cicluri pentru transfer. Conform conventiilor firmei INTEL,
"l
ţ
eas.t rate_şi la mt.cropr_o~soarele ulterioare din famil ie, cuvântul este memorat cu octetul
li E:Ja1puţin sem111ficat1v la o adresă de valoare mai mică iar dublul cuvânt este memorat
19 O ~ cu ~uvântul maipliflriSemn!_f~ativ la o adresă de valoare mai ;nică. De exemplu
C
Adresa fizică .J f
opeian~ul AB02H este memorat la âC!resa pară 24680H dacă octetul 02h este memorat
~. , . 'li. la locaţia cu adresa 24680H şi octetul ABH este memorat la locaţia cu adresa 24681 H.
Fig. 2.10. Calculul adr_esei fizice la microprocesorul 8086- ,-y ·- _ I li . Spaţiul de memorie direct adresabi l de către 8086 este de I Mocu adresele de la
.. . .• . . .. :~ OOO_?CJH la F~F.r:FH. ~dresarea se poate face la nivel de octet dar şi la nivel de cuvânt, fără
pc1~1n1 a ndu~e codul unei 111str~cţ1um, mtotdeauna ad1 es~ de bază a segmen~lu1 s~ ~a- ·îf a e.:1sta r~s~·1cţ11 re_fentoare la adresa de început a cuvintelor. Totuşi transferul unui cuvânt
1-1,n,1tn..!:.Cj lSlrul CS iar d~plasamentul 111 IP. Pentru un acc~s 1:1 stivă se folosesc re~1strele _ss:· ·.~ aLin~at, ad ie~ a. căru i ~dresă este pară, durează un singur ciclu maşină, pe când transferul unui
~11 11 SS şi BP att1nci când se do'.eşte accesul la un operand aflat în segmentul stivă. i
pu11!1 u ocfresa de bază ş i SP, pentru dep lasament, atunci_cand se lucrează ".u ':'.~~Jt_tl~ţ1v~ 1 ,~ c~vant neal 1111at, ad i că a cărui adresă este impară, durează două cicluri maşină, procesul
fiind transparent pentru utilizator şi reflectându-se doar în scăderea vitezei. în spaţi ul ele

~
i
4-1 SISTl :. r--11·: i;ti MI CH< lPltr J< . l·.S( l,\RF ~ Cap. 2. .\lic rnprncesoru! 8086
memorie există două zone, fig. 2. I2, una la început, in domeniul OOOOOH - 0007FH şi
cealaltă la sffirşit, în domeniul FFFFOH - FFFFFH care au destinaţi~ speciale,. ~in această
cau ză fiind fie dedicate fie rezervate. Prima memore ază tabela de intrerupen iar a doua
f FFFFFH
FFFFDH P...~=~==ii
FFFFEH
FFFFCH 1o=-~.....,,.=-.a
m e morează secventa de initializare a unui sistem cu 8086 întrucât, dupa dezactivarea
~err.11alului P ESET: microprocesorul execută un acces la adresa FFFFOH.
f
FFFFFH
Rezervat FFFFCH

Dedicat
FFFFBH
FFFFOH
t
~
~
02H"""""~=~=J

OOH ~="""'"'==dl
~I
<!
f
~
~
Disponibil Al9-l Dl5-8 /BHE 07-0
Fig. 2.13. Împărţirea memoriei în două blocuri la 8086
~
p În cazul unui transfer al unui cuvânt aliniat, ambele blocuri vor fi val.
00080H
simultan de liniile AO = / BHE =O. Va avea loc transferul între cele două locaţii acin
0007FH fj, şi întrega magistrală de date.
Rezervat
În cazul unui acces la un cuvânt nealiniat sunt necesare două ciclrn
00014H
000!3H ·p
magistrală. La primu l ciclu, /BHE =O şi AO = I, întrucât adresa este impară, dec i s
Dedicat OOOOOH r transfera octetul de la adre~ii]p'!@_p_e jumătatea superioară a magistralei de date. A<
Fig. 2. 12. Organizarea memoriei la microprocesorul 8086 tf este octetul mai putin sen~1ificativ al operandului. Urmează apoi al dodea ciclu m
a,2resa este i ncr~ntută, deci A0;-0 ş 1 7BRE = l, ~ urm~re se va transfera ciClefi
Fizic, memoria poate fi împărţită în două blocuri de maxim 512 .Ko: blocul_ ar ~. la adresa [2.ill·ă pe jj1mătatea inferiQilră a magistralei de date. Acesta este octetul
şi blocul imear. ~ţt par cuprinde do_E locaţii cu ad1:e~_pare i.ar cel np,par cu?rmcl~ ~ semnificativ al operandului. Aceste operaţii sunt executate de microprocesor, inel
doar locaţii cu adrese imP<l.!!· Blocul par este coiieCîâ'fla 1u111atatea tnfeno~ra a n~ag1strale1 ~ direcţionarea corectă a octeţilor către jumăt~ţile corespunzi.iloare ale registrelor inte1
dedate, 0 7 - O iar cel impar este conectat la jumătatea superioară a mag1str~le1 ?e date, / Modul de organizare şi gestiune a memoriei descris mai sus, impune o amu
D 15 . 8. Liniile de adrese A 19 - I sunt folosi le pentru a selecta câte o locaţie, sunultan ţ
formă de ordonare a programului.
din ambele blocuri. Transferul între locaţiile selectate şi magistrala de date se face doar )
sub controlul a mcă două li nii, AO şi / BHE, în conformitate cu tabelul 2.3.
/BI-LE AO Se transferă
2.6. Sistemu! de intrare I ieşire
o o A111 bi i octeţi
Microprocesorul 8086 permite conectarea pol'turilor de imrare I ieşire atâ
o I Octet superior la/ de la adresă impară
~~ţiul de memorie cât şi în spaţiul de int ra re I ieşire separat de cel de memorie.
I o Octet infe1ior la/ de la adresă pară
Spatiul de VE este sugrapus peste primul segment t.le 64 KO, în zona OOOOC
1 1 Fără transfer
OFFFFH iL_este accesibi l prin inslrucpuni de J/E cledicate, IN şi OUT. 8086 pen
Tabelul 2.3 Selecţia octeţilor pari şi impari la microprocesorul 8086 conectarea atât a porturilor pe 8 biţi cât ş i a celor pe 16 biţi. Un port pe 8 bi ţi pont
conectat atât pe pa11ea superioară cât şi pe pa11ea inferioară a magistralei de date.
Figura 2.13 prezintă divizarea memoriei în cele două blocuri. Pentru acces~1I la. L~n
recomandă conectarea unui număr egal de porturi pe cele două jumătăţi ale magi str
operand octet aflat la o adresă pară, linia AO va val!cla b!ocul par, ~ntrucât A~°".?· iar lnml de date dar numai din motive de încărcare egală.
/B HE va invalida blocul impar. Va avea loc transferul intre l ocaţia adresata ş1 Jlln~ătatea
inferioară a maoistralei de clate. Pentru accesu l la un operand octet aflat la o adresă impară
Adresele de po11 trebuie să ţină seama de conectarea liniilor ele date ale portull
/inia AO va inv:lida blocul par, întrucât AO = I, în timp ce /BHE =O va val.ida bl?cul impar. magistrala de date a microprocesorului. Dacă s-a făcut conectcirea pe j umatalea 1meri(
Va avea loc transferul între locaţia adresată şi jumătatea superioară a mag1strale1 de date. ~ a acesteia al'unci adresele ele port tre ~fje toate pare iar dacă s-a făcut conect<
~ pe jurnătaten superioară a acesteia_a~.fil]Ese le d~Jort tre buie să fie toate impare.
~
fi
46 SISTJ·:~!I'. ~l C'.l\<
c:L' >l'l\l JU·:S< J,\RI ~ 'lftţ Cip- 2. l\licroproceso ruJ 8llH6
47

Pentru conectarea unui po1i pe 16 biţi , adresa de port trebuie să fie pară dacă se Al5·1
A2
sau - - -- - --'
doreşte transferul cuvântului de 16 bi!i într-un singur ciclu la magist rală. Pentrn se lec ţ ia
portului vor fi folosite şi semnale le AO şi /B HE.
A7-I Al ro
AO L
Modul de lucru al microprocesorului infl uenţează schema de conectare a po1iului. f!· s Se lectie pen tru
-ln modul mi nim, microprocesorul generea?.ă semnalul_!\1/ ILO = I dac[. în ciclul curent (~ porturi pe 8 b iti,
selimiSferă date cu memona şi M/ /10 - O dacă în ciclul curent se transferă dare cu un ~, AO El
cu adrese rare
~· Acest semnal nu este necesar dacă mem7)ria şi sp~ţiul de T/E nu sunt suprapuse sau ~ E2
Y7
dacă porturile sunt conectate în spaţiul de memorie. ln modul maxim, circuitul 8288 1.
t" B HE - - - 1 " 6 - - - i E3
generează semnale de comandă separate pentru comanda memoriilor şi a porturilor.
Conectarea porturi lor în s p aţi ul de memorie se poate face prin validarea semnale lor de A2
selecţie a porturilor cu semnalele tîvfWTC, /MRDC sau /AWfWC iar conectarea porturilor fi Al YO
în spaţi ul de I/E se face prin validarea semnalelor de se lecţie cu semnalele /IOWC, .~ AO L
s Selectie pentru
/lORC şi I AIOWC. b
Pentru transferul datelor la I de la porturile de I/E există i nstrucţi uni le dedicate
1N ş i OUT. l nstrucţiunea - IN transferă un octet în registrul AL sau un cuvânt în registrul ,~
l El
3
8
l porturi pe 8 biti,
cu adrese im pare

E2
AX. Portul poate fi adresat direct, prin un octet, permiţând astfel adresarea a 256 ~ Y7
E3
po1iuri de intrare şi tot atâtea de ieşire sau adresa sa poate fi plasată în prealabil în 4~.·
registrul DX, permiţând astfel adresarea a 65536 porturi de intrare şi tot atâtea de ieşire. ·~
Instrucţiunea OUT transferă un octet din registru l AL sau un cuvâf!t diQ. registrul AX la jji;
AIS -1
un port a cărui adresă poate fi ~ecificată ca şi li! instrucţi110ea IN. Utilizând adresarea 'l. sau ------===--' A2
incfireclă, o i nstrncţiune de l/E poate adresa oricare po1t din spaţiul de l/E. t A7-l Al YO
AO L Selectie pentru
Figura 2. 14 prezintă soluţii pentru generarea semnalelor de selecţie pentru po1turi. ~ s porturi pe 8 bi ti,
l
3
cu adrese pare sau pentru
2.7. Sistemul de întreruperi "
:~ El 8 porturi pe l 6 biti
AO
~
5 Y7
Întreruperile permit abandonarea momentană de către microprocesor a execuţiei unui lţ EJ

program şi începerea execuţiei Ll!lUJalt program situat oriunde în SIJ.~tiul de memorie. ~


Încazul microprocesorului 8086 întreruperile pot fi generate fie datorită unor 1 ·1 A2

cauze externe microprocesorului, fie datorită unor cauze interne. Ca urmare ele se împart Al YO
AO L Selectie pentru portuii pe
în două categorii: întreruperi externe si interne. Microprocesorul 8086 poate trata 256 s 8 biti, cu adrese impare
tipuri de întreruperi, fiecăruia fiind u-i asociat un cod care-l identifică. Accesul la rutinele t I sau pentrnporturi pe 16 biti
de tratare a cererilor de întreruperi se face pri n intermediu l unei tabele de întreruperi, ~ El
3
8
si t ll!\l~ în domeniul OOOOOH - 003FFH ş i prezentată în tabelul 2.4. g E2
Y7
Tip
Eroare la divizare
Pas cu pas
întrerupere mascabi l ă
Intrare
o
l
2
Adresă
OOOOH
0004H
0008H
i
~
~
Al5 · 1
sau
A7-l
- - - ---:-- - '
E3

A2
Al
AO ro
Breakpoint
Depăşire
Rezervat
3
4
5 - 31
(JOOCH
OOIOH
0014H - 007CH
Ir AO
El
L
s
l
3
Selectie pe nt ru
porturi pe 16 biti
~
Disponibil 32 - 255 OO~OH - OOJFCH El 8
Instruc1iu ni O- 255 OOOOH - 003FCH
Tabelul 2.4. Tabela de întreruperi la microprocesorul 8086 j
ii:
EJ

Fig. 2. 14. Soluţi i pemru generarea semnalelor de seleqie pentru porturi


48 SI::. J'F.ME r:t.1MICR< ll'IU JC :F.Sl J;\lll :· Cnp. 2. i\licrnproce~oru! 3086

Fiecare wţrare ocu pă patru locaţii de memo~·ie şi ~~~ u'.·mătoarea str~ctură:. cel acestui cicl u microprocesorul primeşte un vector pe care li multiplică cu paln1
mai putin semnificativ octet al registrului IP. cel ma1 _semn1t1cau: octet .al re~1st1 ului îP. ex~cu~11 accesul la o intr~re din tabela întreruperilor de unde obţine adresa de începl
m mai PJ!tin semnificativ octet al registrul.!:!l._ c;'S şL_<:~I ~!)ai sem111ficat~v ,.octet ~~ [' rutinei de tratare a cerern de întrerupere. Aceasta trebuie să se încheie cu instruc1il11
registrului~ o intrare conţine adresa corn letă _a rutme1 de tratar~ a. 1~terupem ~ JRET care va realiza reveni rea în programul principal şi restabilirea, prin citire 1
;:;spective. Pentru a realiza accesu a o 111trare m1croproceso1 ul 11mlt1pl1ca cu pat1 u ~ stivă, a conţinuturilor registrului indicatorilor şi reg istrelor CS şi fP. cu valorile existe
~dlll peC"are-1 Q.ci.!Jle:_Şje şi care i~enţj_fică tip_ul î~1trerupe.1:ii. _ . _ . _„ ·;. înainte de luarea în considerare a cererii de întrerupere ..
Tabela de întreruperi este împă1ţită în trei domen11 : o zona dedicata, mtrallle 0-4, ~. Utilizatorul a.re la dispoziţie, pentru cererile de întrerupere externe m'1scnl> I
care este utilizată în mod automat de microprocesor la apariţia unor tipL'.ri de }n.tr~rupere, ~ zona 00080H - 003FFH din tabe la de întreruperi, adică dispu ne de maxim 224 intri
predefinite, o zonă rezervată de firma lNTEL, intrările 5-3 ~ şi ~ wnă dispo111bita pen~u Dacă nu se doreşte păstrarea compatibil i tăţii cu alte produse ale firme i INTEL si nici
cereri le de întrerupere utilizator, intrări l e 32-255. Toate 1ntranle pot fi accesate pt m se folosesc întreruperile predefinite, se pot utiliza şi cei lal ţi vectori. '
instructiunile INT nn. . . Cererea c~e }ntrerupere de pe linia NMI este nemascabilă şi predefinită de tipul
Întreruperile externe sunt iniţiate prin intermediul celor două i n trări d~d.1cate ale Pentru a fi luata 111 considerare este necesar să aibă o durată ele minim două s l~tri . '
microprocesorului, JNTR ş i NMI. O cerer~ de întrerupere care soseşt~ pe linia :.~T~ este de asemenea testată la sfârşitul execu(iei une i instrucţiuni. Operaţiunile execulE
este 0 cerere de întrerupere mascabi l ă. ln general ea este generata de un c11 ~~11'. de microprocesor la luarea ei în considerare sunt: salvarea registrului indicatorii!
specializat, controler de întrerLiperi, 8259A, care evaluează prioritate~ î~ cazul ap.an!1e1 anu larea indicatorilor fF şi TE salvarea registrelor CS şi IP în sîi~ă şi încărcarea lor ,
cererilor simultane din mai multe surse şi lasă să treacă ~ererea cu pn~ntat~ maxima la infonn~ţia din intrarea 2 a tabelei de întreruperi.
momentul respectiv. Semnalul ll'JTR este testat de rrucroprocesor m ..ultima stare a ~ lntreruperil~- interne a~ar ca urmare a execuţiei unei instrucţiuni tipice sau
ultimului ciclu corespunzător execuţiei unei instrucţiuni .. Exi.stă excepţ!1 _de la această ţ urmare a producem unw eve111ment intern. Ele se împart în două categorii:
regulă şi anume cazul instrne!iunilor care l~crea~ă . cu şiru.n la c~re _I.mi~ ~NTR este li O) întreruperi generate de instrucţ iunea INT nn şi
testată după prelucrarea fi ecărui element al ş1rulu1 ŞI cazul mstrucţwnn "'A-T. la care h " întreruperi predefinite.
linia INTR este testată după fi ecare verificare a liniei ffEST. , .
Există -j câteva situaţii în care cererea de întrerupere nu este luată m considerare ~
decât după ex:cuţia următoarei instrucţiuni. Este cazul instrucţiunilor pr:c~da'.e de pr~fix_~:
nu se rec.unoaşte nici 0 cerere de întrerupere între execuţia prefixulu.1 ş1 a mstrucţ1un11. '
· De asemenea este cazul instrucţiuni lor MOV şi POP care încarcă registrele_de se~ment: ~'.
'

I . fnstrucţiune_a INT nn realizează accesul la intrarea nn în tabela de întreruve1


Deci are ~elaş1 efect c~ şi_:i Întrerupere externă de tip nn, doar că 11u este mascabilă
nu se execută vre un ciclu extern de acceptare a ei. Ca urmare mic roprocesorul ,
executa ace leaş i operaţii la luarea în considerare a acestor întreruperi ca şi în cazi
celor externe, fără însă a genera semnalele /INTA.
nu se recunoaşte nici o cerere de întrerupere până când nu se execută ş1 urn~atoarea ~
instrucţiune. Este 0 facilitate de protecţ ie utilă .în cazul în ~are se doreş te s: h1 m~ar~~
unui segment, pentru care este necesară mod1_fic.area. co11ţ 1 nutu r ilor a. doua_ reg1~t1;. ~
l .~utinele pentru tratarea acestor întreniper.i pot fi folosite pentrn emulare, testu.re etc.
lntreruperile predefinite sunt generate intern de către însuşi microprocesorul, I
;ietecla'.·ea unor e:venimente interne deosebite. Acestea sunl nemascabile şi la luarea le
registrul de segment ş i registrul pentru accesul m mteno1~ul seg1:1ent~ilu1. Daca se 1a 1~ i 111 considerare, microprocesoru! execută aceleaşi operaţi i ca în cazul instrucţi unilor [N'
considerare 0 cerere de întrerupere după sch.imbarea_ c~nţ.inutulut reg1stru.l.u1 segment Ş~ ~ nn. În continuare vor fi prezentate întrernperile predefinite .
înaintea schimbării conţinutului celuilalt registru, exista nscul ca acest ult1m.tiansfe1 sa t~ . E;·oare.la divizare, _tip O: este generată în urma e:'l'.ecuţiei instruqiunilor de împărţ in
nu aibă loc corect ceea ce va conduce la o altă locaţie clin noul segment ŞI nu la cea . atunci cand catul este mai mare decât va loarea max i mă admisă (de exemplu la împărţi re
dorită. Din cele de mai sus rezultă că dacă se doreşte schimbarea unui se~men~ este i: ~u O).' .Es~~ considerară ca făcând parte din instruqiunea de î mpărţire. În cazu
necesară execuţia întâi a instrucţi unii care mod~tică registrul segment urmată 1med1at de l ~nsli~uc_!1un11 DIV valoarea câtului care determ i nă generarea întreruperii este FFH dac.
execuţia instrucţiuni i care modifică celal~lt reg~stru; . . , unparţ1torul este octet sau FFFFH dacă lmpărtitorul este cuvânt iar în cazu l instructiuni
Pentru luarea în considerare a unei ceren de mtrerupere ce soseşte pe I.inia IN~R~ -,. IDJV această valoare este 7FH in primul caz Şi 7FFFH în al doilea caz. . ·
este necesar ca sistemul de întreruperi al microprocesorului să fie activat. ad1ca ~ Pas cu pas, tip I: întreruperea poate fi luată în considerare după setarea indicatornlu
indicalorul de întreniperi lf să conţină valoarea 1. Dacă IF = O, cererea de întrerupe'.e t de c?ntro! TF. La sfârşitul execuţiei fiecărei instrucţiuni, microprocesorul va lua îi
nu va fi l uată în considerare . .Indicatorul IP poate fi controlat de programator pnn ~ considerare o întrerupere predefinită de tipul 1. Rutina de tratare a cererii de \ntrerupen
instrucţiuni: CLI pentru anularea lui şi ST! pentru seta~ea lui. După_ luare~ în cons1der~e : poate afişa conţi nuturile registrelor, a memoriei în vederea verificării sau depanări
a unei cereri pe linia INTR. microprocesorul anuleaza pe IF pent1u„a p1eveni lua~e~ ll1 f pro?ramelor. Microprocesorul nu dispune de instrucţiuni pentru modificarea directă <
considerare a unei no i cereri. De asemenea. indicatorul TF va f1. anulat 1.nvalldand f ~nd~cator:~ l u} TF Operaţia se poate realiza prin instrucţi unea PUSHF care depum
faci li tatea de luc ru ln mod pas cu pas. Apoi clepu.ne în st.ivă registrul 111d1ca_to~·iior (cu IF ţ 1n?1caton 1 111 stivă unde pot fi prel uc raţi şi apoi registru l indicatorilor poate f
şi TF având vechile valori) şi registrele CS ş 1 TP. D111 acest moment mcep: ciclul ~ reanc ă rcat cu i nstrucţiunea POPF.
exterior de acceptare a unei cereri de întrerupere. de~cris în paragrafu l 2.1.4. In urma ~ Întreruperea nernascabilă, tip 2. a fost descrisă la în1"reruper il e e:xterne.
L
·~
\~

_s_11_ _ ____________________s_1s_··1_·1·_:r--_11_·._<·_l1_:-._1_11._R_<_11_'1\<" IC« >.\RI'. ·I C•p 2. Ofoopromornl 81J'6


· - - - - - - - - - - - - - - :>!
Breakpoint, tip 3: este o instrucţiune pe un singur octet care poate fi folosită ~ . .~ig~1ra 2.15 prez'.n tă configuraţia terminalelor, din punct de vedere funqional.
pen.tru fi.~ar~a unor P.~mcte .de în trerupere în timpu l ex~cuţiei unui program în scopul i pent1 u cucu nu l 8284A. Figura 2.16 prezi ntă schema bloc a circuitului.
venficărn ş1 depanărn unui program. Faţă de mstrucţ1unea INT nn cu nn = 03 are ·.;
avantaj ul că ocupă un singur octet în memorie. .~ -Jl!o RESET ,.-,.- ',,_,.,
Depăşire, tip 4: întreruperea este generată în urma apariţiei depăşirii capacităţii , - - ~--·~ , . ._____.„.„
..,,g.ş,
registrelor oricare ar fi operaria aritmetică cu opcranzi cu semn ce se execută, dec i dacă ~; !------.,."",osc
indicatoru I OV = I . Dar întreruperea nu se generează automat ci numai dacă ~ X! I

microprocesorul execută o instrucţiune lNTO care trebuie să urmeze unei instrucţiuni i X2


„:. :t.:;
n1itm~Lice cu operanzi cu semn. -~ 8
·Timpul de procesare a unei cereri de întrerupere, defini t ca timpul din momen tuL ~t F/C
Îll cu re cererea este recunoscută şi momentul în care microprocesorul execută accesul la'~ 2 - -------P> PCLK
rnln.:sn de î nceput a rutinei de tratare depinde de tipul întreruperii şi are valori în 1· EF!

do111e11iul 50-6 l perioade de tact. Pentru a determina timpul de acceptare a cererii de ,


111ll 1)1t1pcrc externe, trebuie luat în considerare şi momentul în care apare în raport cu !
RDY! 8
ÂENI
dclLli uc execuţie a instrucţiunii curente. ·~ 4
Prioritatea acordată de microprocesor în cazul apariţiei simultane a mai multor.,~ RDY 2
tlpul'I de cereri de întreruperi este următoarea (în ordine descrescătoare):
• eroare la divizare, INT nn,
·.
,„
AEN2 A ----~ RE AD Y
~~.:.:..ii....:.;;."~~·

• lNTO, . ASYNC
• NM l, !.I
• INTR şi ~
• pas cu pas. ~
Dacă î n timpul procesării unei cereri de întrerupere mascabi!e, apare o cerere pe F Fig. 2. I 5. Configuraţia termina lelor la cirwitul 8284A
11 11111 NMl înainte ca să se fi realizat accesul la rutina de tratare a primei cereri, cererea ~ .'! •

du po linia NM I va fi satisfăcută cu prioritate. Dacă microprocesorul este în modul d~ 1·


l11cni pt1s cu pas, el va lua în considerare o cerere de întrerupere în felul următor:, ..
l'tltlll .1.oază acces ul la rutina de tratare a noii întreruperi, conform cu tipul ei, dar înainte .
111• executa rea primei instrucţiuni din această rutină ia î n considerare întreruperea de tip ~
1111~ cu pas şi dă controlul rutinei care o tratează; la încheierea acesteia redă control ul
111t111cl cnrc tratează cealaltă l'ntrerupere.
i X1
K ase
X2

2.8. Unita~e central ă cu microprocesorul 8085


Microprocesorul 8086 necesită câteva circuite pentru a se obţine o unitate centrală.I"
I
•,, 111 111cle interne ale acestor circuite sunt cunoscute, complexitatea lor este medie, ca JU!.EFf
FIC

· 3 2 PCLK
SYNC SYNC
111111.11 c se poate realiza o unitate centrală şi fără aceste circuite, implementându-le disc re~; CSYNC
111 pmli şi bistabile. Se recomandă, totuşi utilizarea lor, din considerente de consum,~· RDYl _ _ _ _ _ _ _ __ _ _r ___.:;:_ _ _-_-__;e~ _ _-___.. .11 _J
li11hlllt11lc şi dimensiuni. ~ 1 A=11
Gonoratoru l de tact 8284A .
9ircuiLUI 8284A are 3 roluri într - o unitate centrală cu microprocesorul 8086: . RDY2
• pc11erează tactul către microproces<~.r şi pentr~ c~ ~ec ializate pentru interfeţe, ·
r-,J;,:ttU!ol-
:f·
\AENz-+ D
;--tRR.\Dl
• ijt: ni::reazt\ semnalul RE~ ~~ ~ătre microproce~or, sin.cronizându - I ~ u tact~il"şi ·J LCLK
__
• l:!..!lliQJ'eAză semnalul de 1111ţ1all zare, RESET, catre mi croprocesor, s111cro111zandu·l ASYNC' - - - - - - - -- - - -- - -
c11111ct11I. {
·~ . Fig. 2.1 6. Schema bloc a circ uitulu i 8284A
~
li'
SISTl~;\fl~ u: Ml(Rt ll'f{( J('fo.S< J,\f(f: i~.' Cap. 2. i\Licroproce~orul 81JS()

Tactul CLK căt re micro rocesor este enerat de către lin divizor la 3 care are ca
intrări
fie un oscilator cu cuarţ. fie un semnal de tact extern conectat la intrarea , o OSC ("?scil'.ator Outpu~"): ieşire ele tact. semnalul având frecventa într~
cuarţului sau a semnalului de pe intrarea EFI) şi caracte .- r · n- ·
Tactul CLK va avea frecvenţa egală cu 173 ctln_f!·e~enta intrării şi f~or d:. u0.Plere 1/3. CLK ("CI ·k") . . d llS ICI 1-·
oe : 1eş~re e ~act pentru microprocesor; semnalul are frecventa c
0
Semnalul Ost va avea frecvenţa şi factorul de umplere ale semnalului de la intrare. El' •

poate fi conectat lâ infrnrea ErI a altor circuite 8284A, în sisteme multiprocesor. ~111 cea ~semnalului de la mtrare şi factor de umplere de 113. ·
I CL~ ~ Penpherai Cl_ock"): ieşire de tact pentru circuite specializare pentru ine
0
Circuitul oferă încă un semnal de tact, PCLK, care are frecvenţa pe jumăta te faţă de cea
de la CLK şi factor de umplere I/2. Acesta este util pentru circuitele specializate pentru cu, fi , .C\ e~.ţa de l ~~ _f~~a_de c~a a semnalului de la CLK şi cu factor de umplere de
interfeţe clin familia microprocesorului 8080. Acestea pot fi utilizate ele micro- o ~EA_D_Y (dRea?y d). ieşire catre microprocesor, pe care se generează cererea 1·
rnse1a1ea e stan e aşteptare . ~
procesorul 8086 clar sunt mai lente decât acesta şi necesită un tact de frecvenţă mai ,
m i că. Blocurile divizoare care generează semnalele de tact sunt sincronizate cu un Controlerul de magistrală 8288
semnal extern, CSYNC, care va sincroniza generatoru l de tact cu evenimente exteme, " Este u 1~ circuit necesar atunci când microprocesorul 8086 lucrează în 11
de exemplu cu un alt circuit 8284A în sisteme multiprocesor. 111ax1m, geneiand toate semnale le de comandă pentru transferu 11 "I ·
Pe l ângă generarea tactului, circuitul 8284/\ are şi rolul de a sincroniza intrarea Porturile ele i t / · · · e cu memorta s::
. . _n rare ieş1'.·e. Are_ş1 rolul de a amp lifica i eşirile c!e comandă i date F
de iniţializare /RES, cu frontul căzător al tactului, rezultând semnalul de iniţializare 2. 17 pt ezin ta configuraţia terrnmalelor circuitului, din punct de vedere funşcţionaÎ.
RESET, către microprocesor şi celelalte circuite .
O altă facilitate a circuitului este aceea de a genera semnalul READY, cerere
.
I
S2 ~ MRDC
către microprocesor pentru stări de aşteptare, sincronizat cu tactul CLK. Există 2 surse
externe, independente, pentru cereri de stări de aşteptare: RDY I şi RDY2, active la 1 . Sf
. -&T-'T~
""
logic, fiecare dintre ele fiind sau nu validate de intrările /AEN 1, respectiv /AEN2. Din ' -
so ;.. A'MWC
schemă rezultă că există şi posibilitatea folosirii intrărilor /AEN I, 2, active la O logic,
ca surse pentru cereri externe de aşteptare şi a semnalelor RDY l, 2 ca validări . 8 ;:; !ORC
Utilizarea acestor semnale depinde ele circuitele care generează cererile externe de 1·..
----ip
îOWC
aşteptare: dncă acestea sunt active la l logic atunci se vor conecta la intrăr ile RDY J, 2
1
2 ~ AIO'.VC
iar dacă sunt active la O logic, se vor conecta la intrările /AEN 1, 2.
Semnilicaţiile terminalelor sunt: ·
AEN . 8 -e>- iNTA

o IRES \"Reset Input"): intrare activă la O logic, indicând o cerere de i n i ţializare pentru " CLK 8 DT ! R
întregul sistem; în mod uzual, la această intrare se conectează un grup RC ş i un ·
IOB
comutator. 1 '-------~ DEN
o X I şi X2 ("Crystal Inputs"): in t rări la care se conectează un cuarţ. . CEN
MCE / PDEN
o
O logic, atunci intrarea este un cristal ele cuarţ iar dacă este I logic, atunci intrarea ALE
este un semnal de tact ex tern, conectat la in trarea EFI. . Fig. 2. 17. Configuraţia terminalelor ia circl!itul 8288
a EF/ l''Extemal frequency Input"): intrare pentru tactul extern.
& CSYNC ("Clock Synchronization"): intrare pentru sincronizarea divizoarelor care I 108~reu it~~ ~re 2 moduri de lucrn. selectabile prin nivelul de la intrarea IOB.
generează semnalele de tact; este util atunci când se doreşte sincronizarea circuitului f. · I lo"'1c. este modul de comandă a magistralei de intrare/ ieşire în t
cu alte cir~uite 8284A, în sisteme multiprocesor. ~e1~11.alele care controlează magistrala de intrare I ieşire se vor activa i1~de ~~~sen~
" RDYI şi RDY2 ("Bus Ready"): intrări pentru cereri externe de stări de aşteptare, . tntiaiea_IAEN. ~cest m~d se foloseşte atunci când magistrala de intrare Jie ire e•
active la J logic. '. ~:~~~ala ':.1ag1stra~a s1st~m_, de exemplu atunci când într-un sistem rnulti~roce;
d,;
1s ~ pet t1e11e p1 opne unu i singur procesor.
o IAEN 1 şi IAEN2 ("Address Enable"): intrări , active la O logic, pentru validarea ~j 2
cererilor externe de stări de aşteptare; pot fi folosite şi ca i ntrări pentru surse externe 11 · JOB=~ logic: este modu! de comandă a magistralei sistem. Generarea semnalelor ,
de cereri de aşteptare şi atunci intrările ROY l şi RDY2 vor avea funcţia de validare. ~ coma~d~ pe1:tru transferu'.1 ~a fi validată prin intermediul semnalului /AEN. Se folose<
o /ASYNC ("Reacly Synchronization Select"): intrare pentru a selecta unul sau două nivele ~ ~~u~c1 cand 1:s~11 seJe unui sistem .stmt plasate pe magistrala comună şi sunt panajate ~
.I de sincronizare a cererilor externe RDY; este utilă pentru a oferi timp suplimentar acelor
circu ite care nu pot genera cererea de aşteptare externă în timpul impus de procesor. ~
t
. ai.multe 1~ 1c10p1oc~soare. A1~brtrul de magislrală comunică controlerului 3288 . .1r
~nteim~~llll semn~lulu1 /A~N. ca resursei~ sunt libere şi acesta poale genera semimlel~-,
. o111an Ia pent1u tt ansferun. Este calea pnn care unui microprocesor i se pe1·1111'te ' ' t LI. i·
" RESET("Reset"): ieşire pentru in iţia li zarea microprocesorul ui. l! <1cc.:esu ·· laresu1.e ·s Ie pnita,1ate
· · t 1·111tr-u11 sistem
· • '
multiprocesor cu magistrală ''
com u nă.

~
În funqie de combi naţia de pe liniile de stare /S2 - /SO, circuitul generea~ă 3X

semnalele de comandă pentru cicire/ scriere de la/ la memorii şi ponuri de intrare I


ieş i re precum ş i pentru acceptarea unei cereri de întrerupere. Semnalele de comandă oe BHE
iiEs L
pentru scriere se generează atât în forma lor normală cât şi în cea avansată. CLK s ~
KOYl

Ji
3
Circuitul generează şi câteva semnale de control: DEN, cu rolul de validare a
transferului de informaţii pe magistrala de date, DT/ IR, cu rolu l de a indica sensul AEN~ 1 Al9-0 ,'
G
transferului, ALE pemru demultiplexarea magistralei de adrese I date şi /PDEN cu rolul
de validare a transferului de date pe magistrala de intrare I ieşire. De asemenea, este •
generat semnalul MCE, cu rol în ciclul de acceptare a unei cereri de întrerupere atunci · ·· 8
cftnd există mai n:ulte circuite ~ontroler pentru gestionarea cererilor de întrerupere. · •· o GSC
Semn i ficaţiile terminale or sunt: . ~- 8
• IS2 - ISO ("Status"): intrări pentru informaţia de stare de la microprocesor, care indică ~
cc tip de ciclu va executa. ·~
2X
o CLK ("Clock"): intrare de tact de la circuitul 8284A. lf
• 108 ("!/O Bus Mode"): intrare care selectează modul de lucru al circuitului. L
• CEN ("Control Enable"): intrare pentru validarea circuitului; dacă CEN = O logic, ·1.· MN/ s Dl S-O
2
MX
tonte semnalele de comandă, plus DEN şi /PDEN trec în starea lor inactivă . ~ DIR ~

• IAEN ("Address Enable"): intrare pentru validarea semnalelor de comandă pentru


- 5
; G

trnnsferuri le cu memoria ş i porturile; semnificaţia sa trebuie corelată cu cea a ~


8cmnalu!ui IOB. I' Fig. 2. I 8. UC cu microprocesorul 8086 în modul minim
• / MNDC ("Memory Read Command"): ieşire de comandă pentru citirea din memorie. ·--~
GSC este Generatorul pentru Semnale de Comangă pentru transfernri!e cu memorie
• / AIWTC ("Memory Write Command"): ieşire: de comandă pentru scrierea în memorie. ··f; şi porturile ..~p)icaţii le în care mi.croprocesorul 8086 lucreaz.ă în modul minim sunt cte
• IA MWC ("Advanced Memory Write Command"): ieşire de comandă avansată pentru
scricien în memorie.
f
r mic~ Şj n~edie complexitate1 în sisteme monol?~J· Semnalele de c;nandă pentru
transferurtle cu memoria ş i porturile de intrare I ieşire sunt aenerate de către micro-
, //OWC ("li O Write Command"): ieş ire de comandă pentru scrierea în porturi. .,··.·1-. procesor. Fi ura 2 . 19 prezintă o soluţi e pentru generarea semn;lelor de comandă entru
• 11\/0WC ("Advanced I/ O Write Command"): ieş ire de comandă avansată pentru transfe · ·
Ht't lcn~a în porturi
• /INFA ("lnterrupt Acknowledge"): ieşire pentru semnal ul de acceptare a unei cereri i RD D---ţi. IOR
de î1llruruperc mascabile. ~ ~
I
WR _ _,.,_ IOW
• I >l\'N ("Data Enable"): ieşire pentru val idarea transferurilor pe magistrala de date; va ~ >j_~--v
rnmnnclu circuitele separatoare plasate pe liniile de date. M /TO
• f 1'/'/ /I? ("Data Transmit/ Receive"): ieşi re pentru stabilirea transferu lui pe magistrala
cl11 cinic; dncă este 1 logic atunci transferul este de la microprocesor spre exterior iar
D--+ MEMR
_
1
d11cn este O logic, atunci trabânsferu! este din exterior spre microprocesor. ,~ MEMW
• M H ("Addrcss Latch Enab le"): ieşire fo losită la demultiplexarea magistralei de
11d1C'SC'/ t.lnte a microprocesorului.
• MC 'li'/ /PDEN ("Master Cascade/ Peripheral Data Enable): ieşire cu rol dublu: în modu!
dn comandă a magistralei de l/E are semnificaţie de /PDEN şi validează transferurile
I · Fig. 2.19 Generarea sem nalelor de comandă pentru transferurile cu memoria şi porturile;
' În varianta prezentată în fig. 2 .1 8, există amplificatoare pe liniile de date, tă;ă ca
de dnto pe magistrala de intrare I ieşire iar în modul de comandă a magistralei sistem acestea să fie obligatorii.
1111Rtimn i licaţie de MCE şi are rol în ciclul de acceptare a unei cereri de întrerupere .lir ~~~t~te. _c e_..". trală cu. m_icroprocesorul 8.086. _în. modul max. im ' :"· :
r11t111\li t:Rnd există mai mLtlte circu ite controler pentru generarea cererilor de întrerupere. ~ _
P. Figura 2.20 prez.in ta schema bloc a une i u111taţ1 centrale cu microprocesorul 8086
Unit 1to centrală cu microprocesorul 8086 în modul m inim · -· · ~ în modul maxim.
Figura 2. J 8 prezintă schema bloc a unei unităţi centrale cu microprocesoru! 8086 -~ Modu l de lucru maxim este recomandat în arlicaţi i complexe, în sisteme 111[1lti-
l11 111111lt1l 111inim. I ~roces'OiJ0îci'SJ'f~.r_o
_ceş_q_ru!-: nn mai genei·ează-ei'foi;'LiŞi .serniîălele de co·111?DQ~q1 _njţ:Jj:ill_ria
I
-~~------------------------- ...„„„„„„~
Cap. 2. ?llicroprocesorul 808(1
3X
7x

Al~)
llHE
RES
CLK
RDYJ
8 A l4 Al 4
AENJ 4 Al5·1 : ~ 6 I/O 6 I/O'
~ A 2 .2
2 2
AO 5 AO AO 2
6
s 5
cs 6 6
S2-0 CE l/ Ot
OE
8 OE WE WE
o
s
6

A1 5
2X
AJ4 A14 At4
2 07
L 7 6 I/O 6 1107
s 015-0 2 2 2
M N/ AO 5 AO 2 AO 1
MX '
4 6 5 5
~I RS CE 00 Q? 6 I/O .i:;s 6
OE 1100
G Q.!f
OE WE WE

~
Fig. 2.20. UC cu microprocesorul 8086 în modul max.im
şi porturile ci ele vor fi generate de circuitul ded icat 8288. Acesta primeşte dii:_i partea ~ Al9 A2 YO SELrn
iilicropiocesorul ul frifor matic de stare din c~re el află ce execută microprocesoru l pentru AlS Al Yl ~ SE Lu
a ş ti ce semnale de coma n dă să genereze. In sisteme mqltiprocesur, circuitul 8288 este ~ Al7 AO L SE1':2 7x
s Y2
comandat de arb itrul de magistral ă care îi permite sau nu să genereze semnalele de li I Y3 SELnJ
comand ă pentru transferuri le cu memoria şi porturile. i 3 Y4 SEIR~ Al~ SEi..m1
!
8 --
El YS SEI.iis SElm
2.9. Conectarea memoriilor la o unitate centra ~ă cu F.2 Y6 SEL!6
~~SELrn
F.J Y7 SE4:
microprocesorul 8086 ~
~
Pentru conectarea memoriilor la o un itate centrală cu microprocesorul 8086 trebuie
rornit de la mod ul în care microprocesorul "vede" memoria, fig. 2.13. Se observă că
memori a este împă rţ ită în 2 blocuri, unu i conectat la jumătatea su perioară a magistralei I -WR_-c
(iYIWTC)
AO
BHE ~H\>VR

~
~ __
LWH
de date, a lcătu it doar din adrese impare şi validat de semnalul /BHE şi ce l ălalt conectat ~
la jumiiratea i nfe rioară a magistralei de date, al că t u i t doar din adrese pare şi validat de Fig. 2.2 l . Conectarea a I Mo memorie la un microprocesor 8086

II
semnalu l AO. Val idarea transferuri lor pe jumătăţile magistralei de date sau pe întrnaga
magis tra l ă de date se face în co nfo rmitate cu tab. 2.3. două semn~ le de comandă pentru scriere, /HWR ("High Write") pent111 scrierea pe li
Figura 2.2 1 prezi ntă o solu ţie pentru următoarea ha1iă a memoriei: D8 - Dl5 ŞI /LWR ("Low Wri te") pentnr scrierea pe linii le DO - 07. Dacă ambele seir
.l „- o 128 Ko memorie EPROM, în zona eOOOOh - fffffh, cu circuite 275 12 (capacitate 64 Ko), de comandă pentru scriere sunt act ive, se va face scriere pe cuvânt. Pentru citire nu
• 896 Ko memorie SRAM, în restul spaţ i ul u i de me morie, cu circuite 62256 (capacitate necesară vreo condiţionare, întrucât microprocesorul va prelua de pe liniile de date,
32Ko). configuraţia cerută prin program chiar dacă memori ile oferă o confiouratie de d imen•
Pentru generarea semnalelor de selec!ie s-a utilizat un circuit decodificator 74LS 138. mai mari . Semnalele clin paranteze le în locuiesc pe cele de deasupra ~r. î;1 modul ma~
Întrucât accesul microprocesorului la un cod de instrucţiune se face întotdeauna pe I Fig. 2.22 prezintă conectarea a 256 Ko memorie în conformitate cu următoarea h;
cuvânt, cele 2 circuite EPROM vor fi comandate împreu111i . Conectarea circuitelor SRAM
t r~h ui e să permi tă accesul la nive l de cuvânt sau ele octel. În acest scop au fost generate
Ii 0
128 Ko memorie EPROM în zona eOOOOh - fffffh, <.:li circuite 27256 (32 Ko). ·
" 128 Ko memorie SRAM în ;:ona 00000 - I ffftli. cu circuite 62256 (32 Ko).
'i8 SISTl::'lll·: <':U Ml< :i{t >PR< lt :1·.St >.\ 1(1 · (~p. 2. i\licroprot:t:SOntl 8()86 59

Locaţ iile de memorie acoperite de fiecare ci rcuit sunt:


o
.~
"i' " 62256 - I: OOOOOh, OOU02hl „ ., Offfeh;
CI

ft • 62256 - 2: OOOO!h, 0000311 .. .. , Offftl1;


" 62256 - 3: lOOOOh, 10002h, . . ., lfffeh;
o 62256 - 4: IOOO l h, 10003h, „ ., lftffh;
o 27256 - I: eOOOOh. e0002h, ... , efffeh;
Îi-'.' !"-
\ONN'-'"l \ 0 - ft"!
27256 - 2: eOOO Ih, e0003h, ... , effffh;
I~~
..,. o
~ ... · ~ 1tJI <. .~ it'.l o 272j6 - 3: fOOOOh, f0002h, ... , ffffeh;
Q 27256 - 4: fOOOlh, f0003h, ... , fffffh.

'O
00
o00 2.1 O. Conectarea porturilor la o u n itate centrală cu
....
o
V.
o
microprocesorul8086
8 . . . ·8 u
o
.....
o. Pentru conectarea porturilor la un microprocesor 8086 tre buie ţinut seama de
eu toate consideraţii le prezentate la paragraful 2.1.6. Există multe asemănări cu conectarea
.E memoriilor, diferenţele fi ind următoarele:
c:
::l " pentru conectarea pq(turilor este necesară decodificarea a mai puţine linii de adrese;
~ dacă pentru conectarea memorii lor trebuiesc luate în considerare toate lin iile de adrese
Q.)
.§ A 19 - AO, pentru conectarea porturilor sunt suficiente liniile A 15 - AO sau chiar
A7 - AO, d acă adresarea porturilor este d i rectă;
5E f; semnalele de comandă folosite pentru validarea porturilor vor fi cele active la
8 ... ·8
transferurile cu porturile: M/ /!O = O, dacă microprocesorul l ucrează în modul
minim şi /IORC, /!OWC dacă microprocesorul l ucrează în modu l minim.
Figura 2.23 prezintă o inte1faţă de intrare de bază, aplicată la citirea unor comutatoare,
I~ · .. · ·lţ figura 2.24 prezintă o interfaţă de ieş ire de bază, ap l icată la comanda unor LED-uri iar
figura 2.25 prezintă soluţia pentru generarea semnalelor de selecţie pentru cele:?. interfeţe.

__ _,8 x12k

AO YO
D15-8
I L
I
s sau

~
2
+ A7 4
Y7
D7-3
4
·1
Ji 1~1i . ~ SELIN
Gl

:< " G2

I Fig. 2.23. Conectarea unor comutatoare la un m icroprncc~or 8086


60 ~ISTl : ;\ ll ·: < .!.' !\!!t .l(l ll'Rl li .!·:st >.\HJ: Cap. 2. ,\ficroprocesornl 8086

Pentrn decodificare vor fi folosite doar liniile de adrese A7 - AO. Vor fi utilizate in~
de intrare I ieşire cu adresare directă a po11urilor. Ponurile pot fi adresate cu <
8 X 330 Q 20h, 21 h, 30h şi 3 l h. Semnalul /SEL20 este seleqia pentru po11ul cu adresa 20h ş.

A6 A2 YO
AS Al Yl
IQ
D15-8 ID A4 AO L Y2

sau I
> L
s
3
s
1
3
Y3

Y4
D7-0 A7 8
8D 7 __Ml!Q__ El YS
3 (IORC 0 IOWC) E2 YG
SELOlrr E3 Y7
G
oe t Fig. 2.26. Conectarea a 4 porturi cu adresele pe 8 biţi

Fig. 2.24. Conectarea unor LED - uri la un microprocesor 8086 I Figura 2.27 prezintă conectarea mai multor porturi pe 8 b iţi, cu adrese pe
Pentru decod ificare vor fi luate în considerare liniile A 15 - AO iar instrucţi ut
- --
RD(IORC) I
~
int·are - ieşire folosite vor adresa po11urile indirect, prin intermed iul registrultii [
fost generate semnale de selecţie pen tru 8 porturi cu adrese în zona 037811 - 037t}

~
I
A7
YO SE LIN
A6 Al
L l.B -s
~
AS AO Yl lYO
s SELOUT
lA lYl -
.. Si
1 ,.
__Ml!Q__ 3 ~ AO 7 1Y2 s-
WR(lOWC) lG ·-

I
(IORC" IOWC) 8 4 1Y3 S:
L
VALl E2
Y7 s
VAL2 E3 t· l
3

I'
2YO Sl
2B 9
2 YJ Sl
Adresă 001t Pară I mpară
2A
2Y2 Sl
Transfer pe D7 - 0 D 15 8 A9 -
2Y3 Sl
VALI AO /BHE AS 2G
A6
VAL2 AO
/BHE
Fig. 2.25. Generarea semnale lor de selecţ i e
t A3

Semnalele din paranteze corespu nd modu lui maxim. ~abelu l. clin figu ra 2.25 arată t
~ _Ml!Q__
legătura între adresa po11ului (pară sau impară), ju'.nMatea dm magistrala de date la care 1· '10RC 0 IOWC)
este legat portul şi sem nale le care val i dează decod1hcatorul. . .. . .i
Figura 2.26 prezin tă o soluţ ie pentru conectarea a 4 porturi pe 8 b1ţ1 . rn adrese le pe ,;
8 biţi, 2 fiine! co nectate la liniile D7 - DO iar celelalte 2 fiin d conectate la liniik D I5 · D8. ~ Fig. 2.27. Co nectarea a 8 porturi cu adresele pe 16 bi ţi

t
.,
:1
(>- SIS'J'l·'. fl ll ' <:t i t-.-111 :JH Jl'll< l< :J~S< l1\RF ~. Cap. 2. ~ucroprocesornl 8080 63
~:-

Pentru arbitrarea cererilor, există circuite arb itru de magistrală. În fam ilia micro-
2.11. Conectarea microprocesorului 8086 î n sisteme rocesorului 8086 mie de sincronizare ·i arbitrare au fost reluate de circuitu l
arbitru e magistrală 8289.
multiprocesor
~ 2.11.1. Arbitrarea magistrcilei comune de către circuitul 8289
Microprocesorul 8086 dispune de puţine resurse pentru conectarea în sisteme
111ulliprocesor: t
Arbitrul de magistrală 8289 lucrează împreună cu controlerul de magistrală 8288
• fac il itatea de LOCK pri n care anuntă că nu doreste să cedeze magistralele ad i<;.ă_IJ.~ .„,~. ~ntru a conecta unităti centrale cu 8086, 8088 sau 8089 la sisteme multiprocesor de tiR
doreşte să cedeze accesul la resurse (dacă, însă, i se cere să cedeze magistralele o , multimaster. De fapt calea prin care arbitrul de mag istrală oermjte sap 011 1m11j mjcro-
va face), illocesor să acceseze resursele magistralei com11ne este circuitul 828~. Procesorul ~u
• fuuilitatea de lucru cu un coprocesor utilizînd linia TEST şi instrucţiunea WAIT; cunoaşte f:
existenţa arbitrulu i ele magistrală şi lucrează ca şi cum ar avea controlul excl usiv
asupra magistralei comune. Dacă procesorului nu i se permite accesul la magistral ă,
• mecanismul de cedare - acceptare a magistralţlor din modul maxim, câ~d poate ·,
Comunica cu alte 2 microprocesoare. arbitrul de magistrală mi va permite accesul fa magistrală contro lerului de magistrală,
J
8288. precum şi amplificatoarelor situate pe masistralele de date si adrese (acestea vor
Circuitele din familie (controlerul 8288, arbitrul de "n~gistrală 828~ !!cu ~npleţaj ·â
fi forţate să treacă în starea de mare i mpedanţă). Intrucît comanda nu ajunge la partenerul
lll'USll.I rcsu~ astfel încâ!_ mic_!:oprocesorul 8086 poate fi conectat uşor la sisteme :~
procesorului (memorie sau port), nu se va genera o achitare a comenzii (XACK) iar
11 ultiproceso r cu magi strală comună, de tip multimaster, la care _şe leagă_resurse ,;_~
procesorul va intra în stări de aşteptare . Semnalul XACK este în mod uzual folosit
(1111~morii 1 po1tu ri) comune. ~
pentru a comanda intrări l e ROY ale generatorului de tact şi astfel procesorul va rămîne
l~xislă 2 probleme care trebuiesc rezolvate de proiectant: ~- în stări de aşteptare pînă cinci arbitrul de magistrală va permite accesul procesorului pe
• sincroni zarea între migoprQcesoare în scop_ul evitării conflictelor; f magistrala comună adică· controlerul de magistrală va putea genera semnalele de comandă
• 11tl~itrarca ~eril2.f d~acces l<! magistrala comună. .I
Ponlnt sincronizarea microprocesoarelor există mai multe soluţii. Una constă în ·ii
iar amp lificatoarele vor ieşi din starea de înal tă impedanţă. După generarea comenzii,

I
se va genera către procesor achitarea XACK, de către modulul implicat în transfer, ceea
11111111111.m unui tact comun pentru toate microprocesoarele, eliminând astfel defazarea ce va permite ieşirea procesorului din stări ele aşteptare şi încheierea ciclului curent
111111• 111kroproccsoare. Soluţia poate fi aplicată doar până când dimensiunile sistemului ·ft Deci arbitrul de magistrală este răspunzător de evitarea conflictelor pe magistrala comună.
1hwl11 muri, <.:find pot apare probleme ca: întârzierea între diferitele semnale de tact, Într-un sistem _rnultima~ter ţ!?te necesară definirea unei riorităţi în cazul existent~]
t1VQ11l1111lc reflexii, deteriorări ale fronturilor semnalelor de tact etc. toate conducând la , mai mulcor cereri de acces simullane la magistrala comună. Arbi tru 8289 penrnte
l11t•111t10111 flinc1 ionare a sistemului. - finpl'em~mrarea-: trei tehnici de stabffire 'ă priori tătii: tehnka pa'ralelă, tehnica serială ş i
() 1mlulie mai bună constă în existenta unui tact local pentru fiecare microprocesor, · tehnica rotativă...
li\ 1 1~11 d9vcni11d asjncrone unul fată de celălalt. Cererile microprocesoarelor de acces la ·
1
_fB_dluJ!iillfilb;1el~t:ste prezentată în figura 2.28. Fiecare arbitru are o !inie de cerere
11111 T~trnln comună vor fi sincronizate de un tact extern de mare frecvenţă, respectându- "· ~ de mauistrâfă 7B"R.E ("Bns Re, uest"), entru a ob ine accesul e mao-istrala comună. ·
~· 111 Il ţ•Î ~.!.ll:lnlc: le de acces pe magistrala comună. Avantajul asigurat de această soluţie ~ Toate liniile . btră într-un codi 1cafclrCu rioritate care va genera a resa binară a
1 h 11111dl1l:lritatca hardware-ului. Dac.ă sunt necesare noi funcţii ale sistemului, pot fi 1· liniei /BREO ~ea mai pri ori tară şi activă la un momerit dat. Adresa -· 1~_aT~ aste
11dn11"11lr noi module, fără a influenţa pe cele existente. • ·; obţi nută va tLdecQdificată de un decodjficator pentt;u a obtine semnalul de achitare
lmplomcntarea acestei soluţii se poate realiza în dou ă moduri. In primul, toate ,, ~orespunzătQr {B_PR N ("Bus Priority In") care se va activ~ la arbitrul sel_mai_m:i9riţfil
1 111 lll• de occcs la magistrală intră într-un arbitru care, în plus, va sincroniza toate „.~ care a cerut accesul la magistrala comună.
l1111nillu cu tactul magistralei, de mare frecvenţă. I ntrările sunt asincrone, una faţă de
1r 11lt1lltl lnr nrbitrul va alege microprocesorul căruia i se va permite accesul la magistrala .
·1
Arbitrul care a primit dreptul de acces va.permite accesul P!..~es_<?rulu i propriu
E!,J11ag-i'Sţi-~a ,,SQ!lllll}ă, prin intenrn;diul c.i.@.!Jitului 8288, imediat ce aceasta va-d~-ven i
1111111111n. f11 ce l1llalt mod, utilizat de firma Intel, cererile sunt întâi sincronizate cu un tact · ~ Dacă un arbitru câştigă magistrala, el nu o poate aycesa imediat ci trebuie să
1 h 111 de 111arc frecvenţă şi apoi intră în arbitru. În acest fel, circuitele comune de arbitrare ·. aştepte până ce prezentul cleţiniltor al magistralei îşi încheie ciclul de transfer. La sfârşitu l
1111! 11•tll1~c la minimum ceea ce duce la creşterea siguranţei în funcţionare. Dacă unul · unui ciclu de transfer, prezentul deţi t]~tor.ses i zează că nu mai are prioritate ş i eliberează
tll111 ln·11ltclo de sincronizare, situate acum local, se va defecta este suficientă eliminarea

1111111111111 11\ func(ioneze. În celălalt mod, defectarea unuia din circuitele de sincronizare :~
d111111 111 opri rea întregu lui sistem. În plus, deplasarea mecanismului de sincronizare la
1ilv1l11l 111icroproceso1ului permite controlul direct al acestuia asupra si nc roni ză rii, ceea ..
1r 1111 '" p11len realiza, la acelaşi cost şi performanţe, în celălalt mod. i
I r
magistrala, dezactivând semnaJ ul /BUSY. Acesta este un semnal activ la O logic, comandat
pl~1 li po cnre se află circuitul şi microprocesorul de care aparţine iar restul sistemului va ~ prin ·SAU cablat, conectat la intrarea fiecăru i arbitru din sistem. ,Atunci când iBUSY
devine l logic, arbitrul care are prioritate, adică are SC!1ma!ul /BPRN activ, i ntr ă pe
magistrală şi"activează semnalul /BUSY indicînd astfel tuturor celorlalţi arbitri că
1i1ăgisii.-ala esle ocupată. Toate transferurile pe magistrala comună sunt sincron izate cu
tactul._ma~istralei, /BCLK, pe rmi ţind astfel stabilizarea tuturor circuitelor.
64 c~p. 2. ;\Lcroprocesorul 8086

OUSY
Bt
CBRQ

Arbitru Arbi tru Arbitru Arbitru Arbitru Arbitru


8289 8289 8289 8289 8289 8289
l 2 11 I 2
,, r: ·. i
BPRN -JJrRe-· BPRN BPRO B PRN Ill'RO llPR N BPRO B PRN

Fig. 2.29. Sol uţia serială pentru stabilirea pri ori tăţii
Codi ficator cu
prioritate
• 2. 11.2. Controlul magistralei comune de către circuitu! 82E

Decodilicoror
I A~iţr~tl demagistrală 8189 permite accesul la magistrala comună a procesoar
master de mare şi m ic~ p~ioritat~. Pro_cesorul cu prioritate mare va putea intra pe rnagis
comună atunci când prezentul deţinător al magistralei îşi încheie ciclul. Procesoru
prioritate mai mică va ·pLltea intra pe magistrală dacă nici un procesor cu prioritate
mare nu o doreşte. Dacă un procesor prioritar deţine magistrala ş i dacă un procesor

II
. ( ,·
puţin pri oritar o doreşte, arbitrul său va activa, la O logic, semnalul /CBRQ, indicân•
procesorul ui mai prio ritar acestuia că un procesor mai puţi n prioritar doreşte magist
atunc i când aceas ta va fi liberă.
Configumrea arbitru lui 8289 depinde de structura sistemului ş i va determina mc
Fig. 2.28. Soluţi a paral e lă pentru stabilirea priori trtţii · în care preia şi e l iberează magistrala comuna. Dacă arbitrul este conectat la un proc<

iS.oiţ•ţ;j pcc„ntată
S;!.@l>}ste în "guco 2.29. A<b;tddo mag;sfrală

maximă va avea intrarea proprie /B PRN conectată la O logic. N uma~u l d: ~1 b~t11 care
pot fi conectaţ i în l anţ depinde de frecvenţa tactu lui comun, /BCLK ş1 de mtirz1erea de
legaţi laoţ
" '."' fo

I
~e_ r.ri~:>rit~ţi,_ ~!i minând astfel ne:es1'.at~a c trcu1te lor„cod thc.~to.1 - de~?d1 fi~ato.r. Lan t~!­
de priori tăţi se real izează conecland ieşirea /~PR~ ( B:ts P1.1ot.1ty Out ~a at btltt'.!t11•• 111 ~~
care are acces atât la mag istrala com ună cât ş i la o magi stra l ă rezidentă, arbitrul se
' supune tehnicii de prioritizare doar pentru accesele la magistrala comună. Dacă procese
accesează magistra!a rezidentă, arbitrul va permite unu i arbitru mai puţin prioritar
preia magistrala comună dacă acesta îi activează intrarea /CBRQ. Un exemplu
prioritar la intrarea /BPRN a arbitrulu i imediat mat puţ111 pn?ntar. A~b1trul ct1 .p~ 10,11tate '. asemenea s tructură este aceea în care memoriile sunt legate pe magistrala comună
porturile sunt legate pe magistrala rezidentă. Atunci arbitrul va permite accesul proceson
la memorii doar trecând prin partea de prioritizare. Arbitrul cunoaşte ce fel de acces
propagare de la arbitru la arbitru. De exemplu pentru un tact cu frecvenţa de IO MHz, executa procesorul. decodificând liniile de stare ale acestuia.
se pot conecta doar trei arbitri. . . . • 1· .f'1agistr,?.lsi_comună deţinută de un arbitru mai prioritar este cedată unui arb:
Soluţia rotativă este si mil ară cu cea paralel ă doar că pnon tat.ea es~e reasi gnat~ 111 mai puţin prioritar, într - o anumită situaţi e, dacă acesta a cerut-o, prin activa
mod dinamic. Codificatorul cu prioritate este înlocuit de un c1rcu1t ;nai ~om~lex care , semnalului /C BRQ. Aceasta este dată de stări l e inactive T1 care se întâlnesc doa1
roteşte pri o r~tatea între arbitri care cer acces, asigurând astfe l fiecărui arbitru tnnp egal procesoarele 8086 şi 8088. Ele apar datorită fac i l ităţi i procesorul ui de a aduce instruc\i
pe magistrala. .. . . • . ' în avans şi de a le depline lntr-o memorie internă . .Întrucât procesorul poate ad1
Exi stă avantaje ş i dezavantaje ale fiecăre i so luţ11. So l uţ i a rotat iva cer.e 111a1 mu.l t~ instrucţiuni mai repede decât le poate executa, 111e11101l a i nternă se va umple ra~
circuite, iar so luţia seri al ă nu poate fi ap l icată decât pentru un . nu măr n~1 c de a~·~1 lr1 „ '.1·qces~rul_ :'. a i_ntra în stăr i inactive până când începe execuţi a instrucţi unil or mem9r
legaţi în l anţ. ~omp~om isul cel .m.ai.· bu'.1. este a.sigurat de s~l,uţ 1a paralela, perm1ţand 1· intern. ln timp ul acestor stări inactive, magistrala com u nă poate fi cedată unui arb i
conectarea unui numar mare de a1bttt t făt ă un hat cl ware exces1 \ . inai puţi n priori tar.
66 SISTl :,.\(I · 1:11;\Jll:](l i J>IU lC:LSt L\1(1·. ·., ·;
Cap. 2. ~I.i cro pro ccscru l 8086

Cedarea magistralei comune poate fi împiedicată de către un procesor, prin • ·. -------,


intermeclit1l semnalului /LOCK. Procesorul generează acest semnal către propriul · ~ I
I [J- I
arbitru cerându-i acestuia să nu permită cedarea magistralei cât timp semnalul este activ. ·J: · Rr,se
I
Semnalul este folosit pentru a proteja secvenţe critice de cod, de ex.: lucrul cu semafoare,':)
JOB ~--ţ-P iiliSY
transferurile cu harddisk ul, secvenţă de refresh etc. Trebuie remarcat că dacă un procesor .:~. 8
- LOCI(
;';. CU<
8 ~ I t?>- CBRQ
'I
/ .:.. I';-;)
_;• ':..-- -~> l I
primeşte cererea de cedare a magistralelor el va trebui să i se supună chiar dacă a ~k;.
2
8
~ ~r\
~
8 . I BPR O

gune1ut semnalul /LOCK. Este sarci1.1a arbitrului ~e magistrală !>ă nu ~ase să ajungă la .~
~
SI 9 BPRN
4 READY - -5;1 I
-r-~ HRECJ
AEN .
--~
procesor vreo cerere de cedare a magistralelor daca acesta nu doreşte sa o cedeze. r11 ~ RO Y! A CLK

.:l
Bc1:R

către arbitrul 8289 r' ml I

2.11.3. Comanda controlerului 8288 de I w -,,...~


. ·1
I : .:1·
- s~ A E.\I ~

I
I
'
~ MRriC
Arb itrul 8289 comandă controlerul 8288 prin intermediul liniei /AEN. Atunci '.~ ;
r.llnd arbitrn l permite accesul procesorului la magistrala comună, el va activa linia ;" l
4
CLK
READY
-S2
- - - - - - - -K> CLK
'-t> SI
;:.. Sii 8
2
8
-!l

~
I I> MWTC
~---t-;> A.MW("
I
j

!ORC M
/Al ~N. Aceasta va permite accesul separatoarelor de pe liniile de adrese şi date pe'<- St DcN
I
lUWC
I fp. A
11111 ~istrala comună iar tampoanele de la ieşirile de comandă ale controlerului de " · 8 so ~
-- OTI R
- 8 <}----+- - AiOWC g.

111nglstralll vor fi scoase din starea de mare impedanţă. Semnalele de comandă vor n: ~ · o --
LOCK
ALE 100
- 1-
<I I
I
I
INTA
c
1qml 13cncrate, de către circuitul 8288, în func. ţie de tipul de ciclu executat de procesor. : . 8 I
Dacii arbitrul nu permite accesul procesorului la magistrala comună, el va: f
1hvnctivu semnalul /AEN, Ca urmare, circuitul 8288 va trece come serIUlalele de '- •' M!il
6 -BHE
Al9-16
V
J
4>
)
oc
L
I
I
I
I
o
m
u

1•1>1111111dtl o transferurilor cu resursele de pe magistrala comună în starea lor inactivă. De.J r s

l
---t--t.- B HE n
MX I IK

M1rn1r11ca separatoarele de pe liniiie de date şi adrese între magistralele procesorului şi ,„ AD15-0


K :;,.> 3
7
I
.. ->
I - Al 9-0
a

11111~l s t 1 nlu comună vor fi trecute în a 3-a stare permiţând astfel accesul altor procesoare · · 3
I
I
l11111111i1.btralo comună. .
' f,)
I 4'
1' -- - --
I
I
I
2.11.4. Configuraţii de sistem cu arbitrul 8289 ·~ 1·
"
_,.:· I
,_L L I

i ;
__ _,____, . 1' I
fn fiunilia procesorului 8086 există două tipuri de procesoare: procesorul de VE,:'i s I

HOll'J şi p1 ocesoare generale, non l/E, 8.086 ş i 8088. Corespunzător, arb!t.r~il . 8}Ş,9_file ·ir···
d1111n 11mduri ele funclionare: --- ··
„„.' ('
J •
. !.·
' •' ·::-
·".:!:i:-~
-
G
2
4
r--r--v
<'L..--r-=1'>
I
A D15-0
5
, ·..,;..„-~ OIR I
• 11111tlul lOif ("i;° O Peripheral Bus") care permite accesul procesorului atâtJ_a la o : .____„_ I
I
111nglstrald de UE cît şi la o magi strală comună;· .. „ . · • I
• 111odul REŞ)3 ("Resident Bus") care permite acce~ul procesorului atât_ la o · ---·-·--'
Fig. 2.30. Conectaren în modul Single Bus
h111gl s lrnlă relidentâ cît şi la o magistrală com'tină. ~
f11 mod uzual configurarea arbitrului trebuie să se facă funcţie de procesorul la l
1 n11 t!'llO conectat adică: modul IOB pentru un procesor de l/E şi modul RESB pentru ~
1111 p1 or1•i10~ non !/~. Totuşi este. p~r~isă ~i c~n.figurarea inversă, alegerea configurării
ln1 n11d11 se 111 funcţie de caractenst1c1le aphcaţ1e1.
C'elc două moduri se instalează comandând terminalele cu aceleaşi denumiri.
'
de

. I
~~n~ile d~ st~re şi l~nia de tact ~le proc,esorului sunt conectate atât la controlernl
. magi_tială cal ş1 la arb.1trul de magistrală. ln acest fel, atât arbitrul de matYistrală
ş1 controlerul de maaistrala- cL
e
1· 1 d · l
m_os~ 1pu ~ c1c u pe care-l va executa microprocesorul.
:~b 1 ~11~ coman?ă contr?lerul pnn 111ten11ed1ul liniei /AEN. Tenninalul /JOB al arbitrn!ui
~ e ie,:,a.t la I iar tem1malul IOB al controlerului este legat la O. Ter1ninalul RESB al
0
cât

l ltu·~ tlll ~u comandă nici un te1minal, se va instala un al treilea mod, modul Single Bus. ~ a1b1trulu1 este legat la O.
111 1•111 u lll bllrul permite conectarea procesorului doar la o magistrJlă comună. Dacă -~ .Tot arbitrul control.ează, prin intermediul separatoarelor de pe rm1gistralele de
11111lirlr terminale sunt comandate simultan procesorul poate fi conectat într-un sistem I
date şi aclres~ accesul mrc.roprocesorului la lini ile de date şi adrese ale magistralei
111 11111~l11 t111I~ comună, magistrală de l/E şi magi strală rezidentă. ·1
comune .. Daca nu este pennis accesu l, acestea vor avea ieş irile în a 3 .. a stare.
Mnclul Sl ngle Bus .··"" 8 , Fi gura 2.31 prezintă un sistem multiprocesor cu arbitrul 8289 în modul Sin„Je
~~: in ~a.re s-au folosit ~elinica paralelă şi cea seri ală de stab ilire a i1riorităţii. În sist;m
Figlll·a 2.30 prezintă schema unui master care se poate conecta doar la o magistrală. ~.· :xi::.tă t1: 1 mast~r-un , pnontatea sistemului I fiind cea mai mare. Conexiunile cu iinie
11111111111\, d~ lip rnultimaster. Arbitrul 8289 va lucra în modu l Single Bus. "Î
intreruptn se reteră la tehnica seria lă. Se observă că fiecare arbitru este conectat la tactul

Cap. 2 . .\licrop1oct:sorul 8086
"'""I I· ~ 11 „ CI I ;\'fi( :He11' 1(1 )( :1„sc) \RI-"
- - - - - - -- - - - -- -- --
J>
procesorul clore~ te accesul la memoria sistem ii va real iza prin magistra la cc
:i.
Figura 2.32 prezin tă o asemenea configuraţie utilizând procesorul de 1IE 8089. Mai
~D
o -< :;>;; de J/E poate c:ontine şi blocuri de memorie pentru rutinele de 1/E şi pentru a e
;:,. ,/'.... • "">-':::!. --
BCLK
~
''-'
t;.
I
i~
+' ' ..__ f-- -.. BCLK ~
tampoane de l/E. A ceste memori i vor fi tratate ca periferice. Transferu l între un pe
şi procesor se va realiza prin intermediul memoriei ele pe mag istrala de l/E unde
(Jj
§..
<I>
3
w
BUSY .„
~

...
I
I
I
f)> ,_
,
~
-
..__
>- „"-
-,,.
BUSY
!:!t
ct>
3
nitina de l/E între periferic ş i un tampon. Tamponul va putea să fie accesat prin inten
magistralei com une pentru a realiza un transfer între acest a şi memor ia sistemulu i
CBRQ f--- CBRQ "'
,.__,.....I ..,,.,.- - - -- I--
,___ f-- ----- BPRO
BPRO
,.........

=
~

BPRN .... BPRN


BREQ
..__ f--- ~ r+
::- BREQ
XAC K

-- ,__ _;.,
MRDC „ -INTA
RD\'I S r*------------
INTA , .. . MRDC >- 1---Y
-
BHE, A19-0
w L I I! AE:.ii 8
Ali1:2
I
A19-0 , BHE
~
!Ir- I I ~ REMJY
AD15-0 <_; ~ 'r-
-- I.
I AD15·0
I Cl.K
H-~_,---J-ţ. cu;
I Comenzi
I 0 1r. s
I l/E 2

,·-...
I REAO\'
8
'-- ,__
,__ '-- cu:kl-- - --o--- ---'
s:
(1)
3
K;
/L---
„, I
,__
,__
-
->--
1--
i-
1"'
BCLK
BUSY
Ul
u;·
ro
3 8
o
SNi f - -- --,.---,
o--- - - - . . - - . /1
SJ. - 11
9

AiiN
108
RESB

o
ffi·
A
_,...i
.1\
-
1--
'--
!~ CBRQ
'-- BPRO
8
9 Con

~--1
-S2 AEN' p

J ~~
1/ (J
BPRN A 19- 16 //L----~::?=====;---Ţ-V mei

K
,_
1--
I-
1-- f.- BREQ
MRDC , .. . JNTA M
A D 15-0 <-.,.-~>I CLK 8
2
-o
o
;:::\.
5.
"A

,, ·-
,__ L_

V-
llmT A1 9·0, BHE
g.
~---1---1

-
ALE
--1--I PDEN
8
8 108 .

k'. ~
,~

V-
,__
,__ Ullil; AD15-0 d DEN DT / R

"
I~ G
G

' 7 :- v I
E
L
s Ad rese
}
- ,__ 7
~'--
~
--· 3
oa "'U
S: cn "O
o.> 5·
..., kil
I O cu ::::!.•
N
.__ t[ §:
ll><"'
14-
...r-i..,., < ~I c; D IR
G lllR
L___..(S-o ~ Dair L
L
s
Fig. 2.3 J. Sistem mu ltiprocesor cu arbitrul 8289 l"n modul Sing le Bus r 2
4 <;·- -----------
s
2
4
5
5
Modul 1013 . „ „ f
În acest mod. procesorul , în general de J/E, co~troleaz~ m_ai multe pe1 i Ţe1 i_c: f
conectate la o magistrală de !IE distinctă de celelalte magistrale ~1111 sistem. ~omu_~1c~ed ~ Fig. 2.3 2. Con fi guraţ ie cu 8289 în modul JOB
prncesorului cu l~ne 11101-·1 a ,·'ce face (Jrin intermediul mag1~trale1 comune. tun1.:1 can f..~
,!, (

7 1)
- -- -- - - - --' " 11' >11 :< :l ' M '' :R<"'I<<' !'.''< ' I I< I ·~ Cap. 2. l\hcro proc e ~o rnl 8086

Această configuraţie permite unui procesor de l/E să efectueze operaţii pe magistrala ·it· ~ Dacă se doteşte conectarea unui procescr non l/E atunci va trebui ca şi la acesta
proprie, concurent cu procesorul principal care va lucra cu magistrala comună. ' · să fi eseparate ce le d o uă spaţii: de memorie şi de 1/E. Pentru accesul la spaţiu l de !IE !:it'
Din figura 2.32 se observă că procesorul de l/E 8089 are separatoare atât către .• vor fo losi doar instrucţiuni dedicate de I/E.
liniile magistralei comune cât ş i către liniile magistralei de VE. Ele sunt comandate de I ,
semnale diferite, DEN respecti v /PDEN. şi exclusive ceea ce va evita un posibil conflict. ::i-'.: :I. ACK - - - - - -l>I fWY I RDY l IQ----- - XAC1'
Semnalele de c?1~a.ndă pent_ru transferu1:ile. CLI periŢe~ia c?nectată la.rnagi:trala de l/E :-ft.·
vor fi generate tara intervenţia semnalului /AEN, adica arbitrarea rnag1strale1 comune nu I'
va influenţa comanda acestor resurse. Dacă procesoru! 8089 accesează memoria comună i(
atunci va activa separatoarele aflate pe liniile de date către magistrala sistem şi, dacă define a ~ENI 4 AEN2

1nagistrala va realiza transferu!, iar dacă nu o deţine atunci va intra în procesul de arbitrare. '.i · A
READY
C'LK

1
ModulRESB ~
Acest mod este utilizat atunci când un procesor non I/E este conectat atât ia o .,
RE AD Y
111ogistrală rezidentă cât şi la magistrala sistem. Fig. 2.33 prezintă o asemenea configuraţie. 1

Conrrol
Procesorul va accesa atît resursele aflate pe magistrala rezidentă cât şi cele aflate pe '• ~" CLK CLK

11\U~istrala sistc::m. Vor fi ~1tilizate dou~ c!rcuite c~ntro ler ~e ma~istrală, unul pentl~1 fiecare ':~' 8 52-0 S1 - 0 8
111uplsLrnl~\. Arbitru! este mfonnat, pnn intermediul termmalulu1 SYSB/ /RESB ('System · o·. 2 RESB
ll11s I Rcsident Bus") unde se află resursele pe care doreşte procesoru! să le acceseze la un : '. 8 ' AEN 8 IOB
6 9 M
11101111.:nl dat: pe magistrala rezidentă sau pe magistrala sistem. Distincţia între ele se va · f., A l 9·1 o SYSB /
l111'll prin maparea lor în spaţii diferite de adrese. Ca urmare, acelaşi semnal va trebui să :.l i ADl5·U
ll•lr.ctc1~ şi ~irct.1itul 8288 implic.at îi: tran:fer. Selecţia se face prin ,intermediul intrării j R!ZSB

t 'hN n c11cu1tulu1 8288. O adresă 11npl1cată m transfer va fi memorată m ambele tampoane · f


p1•11li 11 mirese. Tampoanele către magistrala sistem pot sau nu să fie în a treia stare pe I-.
1fi11d culc că tre magistrala re zidentă vor fi întotdeauna deschise. Cele două controlere · i.: A1'N CEN AEN CEN
de i1111"l~lrolă vor fi selectate prin un sen~nal care corespunde spaţiilor de adrese în care .~
~11111 pl11•mtc resursele comandate de ele. Intotdeauna unul din controlere va fi blocat iar q Comen i Comenzi

1r lnl11lt VII lucra, evitându-se astfel posibile conflicte. Astfel doar semnalele de comandă ,i M
8
1 n111 i1111glstrala sistem sau către magistrala rezidentă vor putea fi generate. ,.,~ 2 2
m

l11t rfaţo la două magistrale multimaster f 8


8
DTIR 8
8
Micrnprocesorul 8086 se poate conecta la două magistrale multimaster prin ft
l111i 1111t1dlltl unei interfeţe asemănătoare cu cea corespunzătoare modului RESB . \~ D
1111111 11111 diforc n\ă este că acum sunt necesare două circuite arbitru, cîte unul pentru ~ E
11111111 r 11111gl~ trnlă multimaster. Figura 2.34 prezintă o asemenea configuraţie. ~ c
l11t11c111ni ca şi în cazul anterior există un semnal care selectează arbitrul şi ~
111 1 111111!~1111 di: magi strală care corespunde magistralei sistem sau rezidentă. Intrările de ·t' . oe
L
o
L
s
G

111i1i.1111ln o,unl ace l eaşi ca şi la modul anterior.


1\1 U r n unuia clin modurile de lucru ale arbitrului 8289
• 1\11111111 Sln~le Dus
,
1
·.:].· ·,·.
Adrese
$
3
7
3
3
7
.l

I 'ILC modul cel mai simplu. Se recomandă în sistemele multiprocesor în care pot fi
111d l.•111r hlHlc accesele le resurse, altfel spus, lăţimea de bandă a magistralei comune este
111lLil'iil de mare pentru a acoperi maximul cererilor de acces la resurse. Este o soluţie simplă G DIR G DIR

1l li1ll l11n 11c11tru ca moi multe procesoare master să poată accesa resurse comune scum pe. I'. L L
• l\l11d11l IOB
I .M it l'l.lt.:urnandat atunci când resursele unu i sistem pot fi separate astfel încît
fJ s
4
s
::!
4
In i l lt-1 ln ~n fie conecta tă pe o magistrală de !/E iar memoria să fie conectată la i' .,·. 5 5
11111~1 lrnln •istem. Se fo l oseşte, de obicei, la conectarea procesorului de I!E 8089
l •11ll11'111111 uslfcl încât spatiile de l/E şi memorie să fie separate. Fig. 2.33 . Configuraţie cu 8289 în modul RESB

~l
72

I. • Modul RESB
Este n:comandat atunc:i când un procesor non 1/E doreşte acces la resurse locale
şi la resurse comune. Nu există nici o constrângere referitoare la_ inst rucţiuni le ce_ pot_fi
folosite pentru accesul la oricare resurse. Aceste mod cere ex i stenţa a două circuite Capitolul 3
controler de mag istrală.
XACK MICROPROCESORUL 80386
::- RDYL g
REA DY
XAC K \> CLK
___., - 2
AENI S 8 1.1. Prezentare generală
j--p
(l>~ A
RDH 4
o
8 Evoluţia microprocesoarelor d in fornilia Inte l a continuat, după 8086, cu r
6 procesoarele 80186 şi 80286. Ambele sunt microprocesoare pe 16 biţi iar 8028;
;':
·' - - A19-16 deosebit de important fiind primul microprocesor din familie care a implementat un :
S2- O „
:,. Al S-0 de gestiune a memoriei performant, pre luat de toate microprocesoarele din fami lie

a
M
11 M
la actualul Pentium IV. Totuşi, va fi prezentat următorul microprocesor pe linia ev<
familiei, şi anume 80386. Motivele sunt următoarele:
a) Microprocesorul 386 este primul microprocesor pe 32 biţi, atât la nivelul magi~
g. de date cât şi la nivelul registrelor sale interne. Există şi o variantă a ac

~
g.
. ··. ! microprocesor, notată 386SX, care coincide cu 386 cu excepţia magistralei de
-<>--- CLK mu
conlrol :) redusă la 16 biţi şi a magistralei de adrese, redusă de la 32 la 24 biţi. După ar
111
u
L1'
8
2 "'
S:!-0 .-
-~
-~
S:?-0 2
8
A
"
Control I
l lui 386SX, 386 a fost redenumit 386DX. În continuare. prezentarea se va a;
I
h-v>
V

8 8 i .
rV 386DX şi se va folos i notaţia mai simplă 386.

nr-n
9 9
b) Microprocesorul 80386 conţine un mecanism de gestiune a memoriei perfo1
li)

m
a
SYSB/
RESB /\CN
_,_
I,_ ..__,____
.__,____
SYSB I
Rro.SD
-AEN a
care preia de la 286 conceptul şi solu[ia segmentării memo riei şi îi adaugă conc
- l
~
A
s '"' ~
' . ;>
9 w şi soluţia paginării memoriei. Toate microprocesoarele din famil ie care i-au u
l CEN AEN CE:·I -AEN au preluat acest mecanism de gestiune a memoriei.
e
comen?. 8 CLK 14--- I- « } - .---- . CLK Comenzi c) Viteza microprocesoru lui 80386 a crescut nu nu mai prin creşterea frecvenţei tac
, I/I---'-
.___ ,____ s;-:-u s2
dar şi prin îmbunătăţi ii structurale. ca de exemplu: creşterea n umărului blocurilor in
7 -
~ .- "
( -
8
SZ-IJ
' >
" 8 DTIR ~- DT/R 8 care l ucrează independent ş i cic lmi1e maşină cu generarea în avans a adrese lor.
DEN - OEN 8 d) Include fac il ităţi de depanare ş i autotestare.

------V
ALE

.J, 117 \ 7
t\LE

V ~
e) Creşterea capacităţii de memorie gestionabilă: 64 To/ task memorie virtua l ă ce
fi mapată în 4 Go memorie fiz ică .
r
G Oc G

<;=f
A L L Adrese
s
. s 3.2. Terminalele şi semnificaţiile lor
3
7
A

i(
'
) J
7
r==>
I
t
3

""
ll V

c
3

\V
Microprocesorul 386DX se prezintă într-o capsulă PGA cu 132 termir
Configuraţia terminalelor este prezentată în figu ra 3.1. În continuare vor fi des<
semnificaţiile terminalelor.
c OlR DIR
o A3 ! - 2 ("Address Bus"): magistrala de adrese pe care microprocesorul plas1
D :ue

<
A

.
"
L
s
2 I<
L
s
l
A
Dale
. )
adrese ele memorii sau de porturi; adresarea este la nivel de dublu cuvânt (32 bi ţ i ;
• IBE3 - O ("Byte Enable"): 4 i eşi ri care ara tă dimensiunea operandului transfer<
cic lul curent; fiecare linie corespunde unui sfert din magistrala de date ş i când
'< y
' 4 ' V
4
s 5 activă, O. arată că pe sfertul respectiv este transferat un octet; corespondenţa eşte:
::::::: /BE3 D3 1 · 24, :::::> /BE2 D23 - 16.
Fig.. 2.34. Conectaren unu i procesor 8086 la doufi magistrale multimaster ~ /BEI - DI 5 - 8. ~ /BEO - D7 - O.
SISTl ~i'vfl·. U ! 1\1!1 :ROl'Rl lU '.S\li\RE~i;-
\4.
proteqia oferită de rangul S permite ca anumite pagini să fie accesate doar din i{
11wdul supervizor. ~acă în ! impui operaţiei de translatare se întâlneşte rangul S == !,:'f.:2·
1111111~· 1 se crează o ~ntrare 111 ATC_ cu r~ngul B = I, ceea ce înseamnă că reluarea ~
ullwfonrll a accesu lui va da o excepţie de tip Bus Error. \·~~ Capitolul 7
Tabe lul 6.3 prezintă împărţirea spaţi ului de memorie iar figu ra 6. 12 prezintă un"''ţf
lll'ho1·0 de translatare ţi nând seama de protecţii le oferite de rangurile S şi WP: COMANDA APLICATllLOR EXTERNE
·:.''!Â
CU MvCROCALCULP.TORUl ' PC
s WP '!<>it
~~
Tioul spatiul ui de memorie
- o o
O· 1
Su1)ervizor sau utilizator cu scriere I citire
SuEervizor sau utilizator doar cu citire
ţ.:\, monitorizarea,
?J1,
Conectarea diferi telo r echipamente periferice la calculatorul PC, precum şi
comanda şi controlul un or aplicaţii externe, industriale şi domestice de
I o Supervizor cu scrierei citire
\;::( către PC s~ face utilizând urm ătoarele căi: interfaţa paralelă, interfata serie, denumite în
l 1
-
Supervizor doar cu citire
Tabelul 6.3. ÎmpăJ1irea spaţiului de memorie după rangurile S şi WP
!:109. t~.?.~;'!1 · ~o:r~uriT~j)araTer·-~- ·seri~: ~0'ffilt~fo~~-~L§.~ p~~t'.i11i · ş i j12~i~l~ ~~r~ ..P~_rmi_t_
,f,9.n~ţfl.1~e~ d/!:~~tă p~ mag~~tnlle, l ~_de .u:iţrap~_/ 1eş!fe,~ _I§~ J~ tCL
·
O SCllliă analiză comparativă a celor 4 soluţn arata ca:
S a iu su ervizor doar cu citire :. P2l°!;';t! ~13.]~J este fo~~- ~~~P.~5li~Jl.~~ig~1r~~L1_~ ~-i-~n_te_resurse pentru o gamă 1~1-gă d~
" ap licaţi i , în sens ul că oferă multe linii de date, comandă şi stare şi viteză medie; mm
~r~ şi avantajul că există o mulţime de plăci cu ap l icaţi i pentru po1tul paralel precum şi
.:~ . software specific care_pot fi folosite ca puncte de reper pentru crearea altor aplicaţii;
t=t -~.~,. · -p~!~~l., .~rl·ţ·!- est~?~~.~~!he_1__1~a-
/
0
răspândit,_~?fe„E~-n1aL.P..~1ţip.~_.resţ1rse
foa.1te dec·.ât. ce·! .pa..1.·ale! .
--'(nui11ă: ~~J~1! .rn!lJ.rnic,_vitt;:ză mai 111ică)_d_~1~ şi__p~J.j_,.t _ilŢlplţ.mri:iţ~rţ_. f!.1~.-~;: ş1
( 'JIU Root
,..._ ..:8'-"D:..::a'-"ţi:..::u...:s:..::u=e1...:.
·v.:.:iZ:.:O:.:..r..::.c.:.:.ll..::S.::.;cr:.:..ie:.:r.:::.e.:...l..:c.:.:it.:.:ir..::.e . _ii@f~nţă În fun~!i()!1fil_~ ~_wE,;_ mai are ŞÎ avantaj ul că _există p_ mu\ţjme _de_plăci CU
I 111111101....._..1-_ S;:__=-'l:..:.,_WP-"--=--'l'----1 1 - - - - - - - - - -- --1 : : !!pficaţîi pentru portul serie preciini -şi software-specific care pot fi folosite ca puncte
S = 1,WP=O
,·.::'ji d_e ree_er _p_~").tn.} crearea altor aplicaţi i;

tilt= ~1f};l!.~.J.g~l3. ~~!~ .r~.!~t-!\/.. 1:1§.~1 1 _s:!er(viteză mare şi foarte mare, co.mparativ c~1 portul
0

E S=O, WP= I
S =O, WP =O
- 1-~------------l~~ }
Spaţiu supervizor sau utilizator
p~_ra'fe\ ?fi:fră)°.si_b i_litatea de a conecta m~i multe plăci. cu aplic~ţ1i pe acelaşi port al
~ ·• ;: . calculatorn!u1 âar protocolul USB este puţm cunoscut ş1 greu de unplementat;
· 4 ~).o-ti;riJic.~1:S-,P,e..!:mlt. ~9riecta.i:ell. diresţă P.e_1:nagişt1:~lele de int!'ar~f i~şfre1 _fSA şi r.c;.!.
doar cu t:itirc 9feră viteză maximă, întrucât pe'1111iţ c6i1ectarţa directă (l plăci lor cu ~p1i_ caţii pe placa de
F1---------------1~ bază a calcu'Jâfci1:ului dai:·acea5tă soluţie cere deschiderea calculatorului şi accesul direct
- ~ pep1aca de bază ceea ce impune o foaite bună cunoaştere a plăcii de bază, mai exact
f---W> ~tiiă.gistralelor de intrare/ ieşire iar, pe de altă parte, introduce un factor de risc în
F ·-----------1~
Spaţiu supervizor sau utilizator cu _-,,~..
fu!fcţionarea calculatorului înh"L!Cât placa ap licaţie poate afecta direct funcţionarea acestuia
. S~~pul acestu i capitol este cunoaşterea celor 4 căi p.rin care calculatorul PC poate
scriere I citi re comanda, controla şi monitoriza aplicaţii externe, ca urmare ele vor fi descrist:: în continuare.
pi ţ=: :
7.1. Portul paralel

Tabelele de la acest nivel folosesc


I Tabelele de la acest nivel folosesc câmpul
ţ=ţ Acest subcapitol descrie po1tul paralel al calculatorului PC. Vor fi descrise şi apl icaţii
cu portul paralel. Accentul va fi pus pe uti lizarea portului paralel sub sistemul de
câmpul din adresa logică indicat de din adresa logică indicat de câmpul TIB operare DOS. Există mai multe echipamente periferice care se conectează ia portul
câmpul TIA din regislrul TC din registru TC
paralel : imprimante, scnnncre, unităţi CD-ROM etc. precum ş i o gamă l argă de apl icaţii
Fig. 6.12. Arbore de translatare care oferă protecţie datorită rangurilor WP şi S externe, de comand ă, monitorizare şi control. Conectarea !a portul paral el al PC-ului se
face prin intermediu l une i cuple standard, de tip O, mamă, cu 25 pini, situată în pmtea
pos teri oară a calculatorulu i.

--- - - -- - - - - - - - - - - -
___________......„.„
.ill.,~

•;li.'~:'

_16_8_ _ _ __ __ _ _ _ _ _ _ _ _ _ _ _ _ _ s_1s_·1_:"_~_il_·:_t:_u_~_11_c_:ll_<_ll_'R_<_JC_:1_·:S_<_L_\l..:.::\E :.;~· Cap. 7. Com:rnda apucapilor l·xtt:rm cu minoc.1kula1"rul l'C:


.~~~:

7.1.1. Standardizarea portului paralel ~.~ ~srn1t~ _datu'!:t~e p_()!:!:_


"
ţt~ .
fil?rii i~pi:i_r~-~~~·. La variantele ulterioare, liniile de stare au fost folosite
-
şi pe

Datorită intensei utilizări a portului paralel, datorită cerinţelor mereu crescânde de .··~, '.abelul 7.1 ~rezint.ă plasarea semnalelor la conectorul de 25 pini, de tip
performanţă pe care trebuie să le satisfacă precum şi datorită cerinţelor producătorilor de ·. * portu lu~ paralel. D1mens1umle senmalelor corespund modului original de luc
imprimante a apărnt necesitatea standardizări i acestui port Opera~a a fost realizată de către ·~:; , . portidui paralel, denumit uzual SPP ("Standard Parallel Porr'). La celelalte modt
. ~-;, :· '.standar~uî .IBEE)28~ "Standard Signaling Method for a Bidirectional Parallel Interface l
lucru, definite de standardul 1284, aceleaşi semnale vor primi alte denumiri.
(•· .
for Personal Computer" care a apărut în martie 1994. Standardul descrie comunicarea
Pin
de mare viteză, bidirecţională, între un PC şi un periferic, la o viteză de 50-100 ori mai "ţ
mare decât cea a portului paralel original, asigurând totodată şi compatibilitatea cu c-".„ conector Semnal SPP Direc1ie Registru Descriere Inver
şi
porturile paralele imprimantele mai vechi, de dinainte de apariţia standardului. ~-1r
t-t_.ip_D_-r-----j---+---+--:--:---:-"""."""---------l-h-ru_·d_\
\-( Ş_t_g_ndârdul IEEE 1284 d~fineşte în totalitate portul paralel al PC-ului.~ElpreY.e~~ .. 1 t
/Strobe In/Out Control Activ la O.Arată că pe liniile de date,
• _S modl,!ri ~e _transfer pentru date, -- · ·~' datele sunt valide
" p_· metodă pentru port şi periferic pentru a determina modurile de tranşfer supo1tate :·~· 2 DataO Out Data Linia de date cea mai puţin
precum şi pentru a negocia, stabili, un âminie mod, semnificativă
interfeţei
• caracteristicile fizice: cabluri, conectori/ / r
-- · '
":~;" t--=>3--ţ--;:D~ata=-1;--i--:o~u:--t-+--:D::::-a:--ta--1----.!L~in:.'.i~e~d~e~d~a~te~----+---
7
• ·caracteristici!e interft:ţei ·!'l.l~9td.11.e; _amplificato~re de linie, receptoare, _impedanţa Out Data Linie de date
4 Data2
li mei; terriiinatoare. ·· · ·- - 5 Data3 Out Data Linie de date
Data4 Out Data Linie de date
Viteza mare oferită de porturile paralele conforme cu standardul 1284 nu era necesară 6
atunci când la acest port erau conectate doar imprimante matriciale, echipamente lente 7 Data5 Out Data Linie de date
şi unidirecţionale. Atunci, însă, când a fost necesară conectarea unor echipamente ·; 8 Data6 Out Data Linie de date
periferice mai rapide: imprimante laser, scannere, unităţi CD-ROM, a devenit evidentă 9 Data? Out Data Linia de date cea mai semnificativă
necesitatea unei viteze mai mari a portului. De asemenea, bidirecţionalitatea cerută de Activ la O. Arată că datele au fost
10 /Ack In Stare
unele echipamente periferice: scannere, unităţi CD-ROM, precum şi de multe aplicaţii • preluate de peri feric
de comandă şi control a impus regândirea portului paralel. Aceste cerinţe au fost Activ la I . Arată că imprimanta este
ll Busy In Stare
ocupată şi nu poate primi date
Da
rezoţvate de standardul IEEE 1284 în condiţiile păstrării . compatibilităţii totale cu
porturile paralele şi echipamentele periferice corespunzătoare mai vechi. 12
PaperOuV
In Stare Activ la I. Arată lipsa hârtiei.
PaperEnd
7.1.2. Caracteristicile de bază ale portului paralel 13 Select ~n Stare
Activ ia I. Arată că imprimanta este
on-line
Portul paralel constă din interfaţa paralelă şi conectorul de 25 pini, tip D, mamă, Activ la O. Comandă imprimanta să
situat pe panoul posterior al calculatorului. Interfaţa paralelă constă din totalitatea /Auto-Line
14 In/Out Control insereze automat un avans al hârtiei la Da
circuitelor şi registrelor de comandă, date şi stare care asigură legătura între un echipament feed
fiecare revenire a capului de tipărire
periferic sau o aplicaţie externă şi magistralele ISA sau PCI ale calculatorului. Fizic, interfaţa /Error/
paralelă se poate afla pe o placă de extensie, la PC-urile mai vechi, sau pe placa de bază, LS In Stare Activ la O. Arată apariţia unei erori
/Fault
la PC-urile mai noi. Ea este implementată prin circuite distincte, la PC-urile mai vechi, 16 /Initialize In/Out Control Activ la O. Iniţializează imprimanta
sau inclusă într-un controler de II E, la PC-urile mai noi. /Select Printer/ Activ la O. I ndică imprimantei că
.
•'.
•. _La_ n.i~~lul conector~1lui, portul paralel este alcătuit dir!J]~şi 8 17
/Select In
ln/Out Control
este se lectată
Da
•' linii de masă.1.inU.I.e_~~ s~mnal sunt împărţit.~ în 3 grupe: 18-25 Masa electrică
Gnd - -
e c!ţ _d_(!t~, 8 I.inii,
e de controL4 linii şi Tabelul 7.1. Semnatele portului paralel
" de stare, S linii.
-· -Î~ ~~;i~~ta originală a portului paralel, liniile de date au fost prevăzute pentru a "Inversare hardware" înseamnă că i nterfaţa poriului inversează semnalul. Dacă,
transfera date către imprimantă, ca urmare erau unidi recţionale. ln variantele ulterioare, d:
exemplu, la intrarea Busy imprimanta plasează 1, atunci portul va citi semnalul ca
aceste linii au devenit bidirecţionale . ..!dniil~de~cJ>Jl1rnl a~r fost prevăzute.J?.entr11_~ialog firnd O. ln ceea ce priveşte semnalele de ieşire inversate de hardware ele trebuiesc
şi cor~~~prim~lţ.i i.a~J)nli!_e, de şg;: au fost prevăzti-te penfîî.î„dialog _ş}_.i1~dica~-a _ negate prin program înainte de a fi trimise la port. '
,_:...•·>„

.'\~
·~
i.ţ, ~
ţ,.'
l 7U SISTl :.i\ff. r .ll MIC!lOPRO<:ES( l,\Jl/:. ;~'
Cop. 7. ComanJa aplic:iţiifor cxtl·rnc cu mier<J(akul.wirul PC: 171
Standardul 1284 prevede 3 tipuri de conectori:
acolo un port paralel atunci îi alocă d~u11.irna _LPT2. Dacă la adr~sa 3bch nu a găsit un po11
o de tip A, cel de 25 pini, cunoscut uwal sub numele de conector D, fig.7. I.a parăTeI,_~!~inc~-~e.!~1.!.Qelaâ.ffres-tl")781_1 îi alocădenumirea LPTI : Simi lar, este verificată
• de tip B, un conector Centronics de 36 pini, existent la majoritatea imprimantel©r ·~::Y
. ~;.
1 ~ adresa 278h. Ca ~rmare, la adresa 3 bch se poate afla doar portul paralel LPTl, la
cu jet sau laser, fig. 7. I .b, şi {. agr~s_a. 37'8.b~~-:-P.ot afla LPTl sau LPT2, iar la 278h se pot afla LPTl, LPT2 sau LPT3.
• de tip C, un conector tot Centronics de 36 pini dar de dimensiuni mai mici decât :~~ Există însă Şi porturi 'paralele mai vechi la care pot fi setate denumirile LPTl,
cel de tip B, fig.7.1.c. LPT2 sau LPT3 prin conexiuni. ·~: ·
''. Întrucât denumirile şi adresi;le alocate porturi lor paralele pot diferi de la un
.„,:' calculator la altul, este necesară stabil irea unor puncte de reper pentru utilizatori, adică
Il 0000000000000 a) de tip A (D) I
pentru aceia care doresc să fo l osească po11ul paralel. Acestea sunt oferite de BIOS care
000000000000
'~ încarcă, în RAM, adresele de bază alocate porturilor paralele la adrese fixe, tabelu l 7.2.
2~ 14
Adresă fixă

:p
Semnificatie
0000:0408 Adresă de bază pentru LPT I

~ [!::::;::::::::::::: /]
0000:040a Adresă de bază pentru LPT2

c: b)detipB
0000:040c
Tabelul 7.2. Adresele de bază din
Adresă de bază pentru LPT3

RAM care conţin adresele de bază ale porturilor paralele

În continuare vor fi descrise registrele ele bază folosite de mQ_qt1_r_i!e de lucru. .„,
~dre~a de bai:Jti„!}9.ţ!!_~_P,:_ :_~u~i. _c~1. Baz~~se află ~~&î}!rY!: :o~-d~t~I ~urnit. ş! '.o.1;t :/
od] ( I::" " " " " " "'] J[bo I o) de tip C
de...Dil.tţ, figura 7.2. Este un port u111d1rect1onal m modurile ae lucru "Compat1b1hty , .
':.t!.l.Q!JL~" .şj,,b idil~t(~goijăctiî ~TIO~Liriie "~{e Îu~~:{~ ,;Byte", '.'EPP'.' şi "ECP". . .. l
I
. _ ... I I I I I I I I I I I I C_ . .
7
Data? Da!aG , I DataS Data4 Dattl I _Data2
o
Datai -! Data(]
Fig. 7.1. Conectorii prevăzuţi de standardul IEEE 1284 (
Fig.7.2. Portul de Date
Ct>rH!Ctoru I de tip C este cel recomandat pentru noile porturi paralele. Este mai I

111ll u1 celelalte tipuri, permite o prindere mai bună a cablului, are caracteristici electrice !:a a~resa B~i:_ă + 1 se află .rsgi~ţ~·~~l}i~. s~t,2(~tJl..!!DJ~ _ii _port de Stare, fig ura 7.3. 1:
111111 h1111u ş i, în plus, prevede 2 pini pentru 2 semnale suplimentare: Peripheral Logic q11.~U'!.!_1gu ri corespund la 5 'linii de infrar\i_(pinii 10 - 15 ai conectorul ui), un rang i,
111&111 ~i {fost Logic High. Totuşi, conectorul cel mai răspândit rămâne, încă, cel de tip c_or~sp un_qeil~e~ -Iiiff.~!.LiR.~fCŞ12.i·ăngurl ·stint· rezervate. Rangurile notate ~u * coresjjltîid 1
:\ Âl'c:~l conector se află şi pe panoul posterior al PC-ului. unor semnale inversate hard ware:-„6acă în i-â'ngul 2 se citeşte I, înseamnă că nu s-a
S"m nalelor portului paralel le sunt asignate ranguri din registre din interfaţă. generat întrerupere. Dacă în rangu l 7 se citeşte l, înseamnă că la pinul de la conector
l 1111lu 111odurile folosesc 3 registre, de bază, la care unele moduri adaugă şi altele. valoarea semnalului Busy este O. Portul de Stare poate fi doar citit.
l(r)Jl~llc: lor Ic corespund adrese de port din spaţiul de I! E al PC-ului. Registrele sunt văzute
du p11rntisor ca blocuri contigue aflate la adrese succesive, pomind de Ja o adresă de bază.
7 o
11 IOS-ul ("Basic Input/ Output System") sesizează existenta într-un calculator a [ Busy* Ack lPape~Qut l Selectin I Error ] IRQ* Rez. Rez. ]
p1l11n lu 3 porturi paralele pe care le denumeşte LPTl, LPTI şi LPTJ. Adrese·l~d~ baiă Fig.7.3. Portul de Stare
lllll1111tt' Slllll: .
• Jhclt. pentru portul paralel aflat pe plăcile video, la PC-urile mai vechi sau, mai !::a .adresa Bază +2 se află t~g;iş!ru\ ~e c~ntrg!, np1nit şi P..01.ţ_tjţ_i;;_Qf}![Ql, figura 7.4.
11ou, pc plăcile de bază, - ~i.:1nguril e Tşt·6 sUnt riefofosite. 'Rangurile 5 şi 4 sunt ranguri de control intern. Rangu l
• 11a11 pentru LPTl, în mod uzual şi 4__vU.afLcta-generarea unei întreruperi iar rangul 5 va -va-lida modul bidirecţional care
• J 1811pentru LPT2, în mod uzual. pe1111ite transferu l în ambe le sensuri a 8 biţi de date. Porturile paralele vechi nu supot1ă
1,u pornirea calculatorulu i, BIOS-ul este cel care alocă porturilor paralele acest mod. Pentru ca un asemenea po11 să suporte totuşi acest mod, va fi necesară t1
dr111111111ile LPT. La început verifică existenţa unui port paralel la adresa 3bch şi dacă îl intervenţi a la nivelul hardware-ului po1iului. . ;f.1;
.,,n• r~ll' îl tdocă denumirea LPTI. În continuare verifică adresa 378h şi dacă gfu;eŞte · şi ~~_1j_k1:Q..coresp.J.111d la 4 SţfTIDE_Le de.contrQLSelect Printer, Ini tialize, Autq_/„
Linefeed şi /S trobe. Cele notate cu* sunt inveÎ:sâte-l iardware. _E xistă şi p~~~.a- ·
·"'
' ~··.

J
;
(3p. 7. Comanda :1plicaţiilor cxtcrrn: cu n11n1Jcalcul.1cocul l'C
j 172
i
7 o +5V
~ ' 1
, Nefol. Nefol. /S trobe* tampon ieşi re

Auto Line feed* · DO /Strobe (pin I )


....___ __,. InitiaHze Printer tampon intrare
oe
' - - - - - & Select Prinle~
+5V
Enable :}jia Ack Line
tampon i eş ire
'-----<11>- Enable Bi-Directional Port

Dl /Autolinefeed (pin
Fig.7.4. Portul de Control oe
tampon intrare
aceste linii, normal de ieşire să fie folosit~ c_a .inţrări. Aceasta rezultă din schema rangurilor
corespoiWenre-a1ra>ortuîcîe„Ccintro·1; fig.7.5. Notaţia OC înseamnă "Open Colector". +SV
După cum se observă din schemă, ieşirile acestor ranguri sunt cu colector în gol
(exi s tă, însă, ş i po1turi la care aceste ieş iri sunt "ITL normale). Rezis tenţa de tragere tampon i eşi re

este de 4,7 kQ şi poate fi pe placa portului, la periferic sau, mai rar, niciunde. În acest D2 /Initialize (pin 16)
din urmă caz va fi necesară plasarea în exteriorul portul ui a rezistenţelor la +5 V, oe
valoarea recomandată fiind de 4,7 kQ. Aceste rezistenţe nu vor afecta corecta funcţionare ;;·~~ tampon intrare
a po1tului chiar dacă există alte rezistenţe de tragere sau chiar dacă portul are ieşire ,,
normală. În aceste situaţii ele vor funcţiona ca încărcări suplimentare de aproximativ ·' 'f; +5 V
1 mA. Pentru a utiliza aceste linii ca intrări, va fi necesară încărcarea în port a r:
tampon ieşire
combinaţiei xxxxO I 00 ceea ce va forţa I la ieşirile porţi l or cu colector în gol.
Nivelele de tensiune ale semnalelor de la portul paralel sunt TTL. Curentul .„J D3 /Select Printer (pin
absorbit I generat este dat în tabelul 7.3.
tampon intrare oe
Linia

. Fig.7.5. Schema rangurilor de comandă din Portu l de Contro l

Control, i eş ire, I.a O Io ic (<0,4V 7 mA absorbit 14 m.A absorbit Pin pentru semnal Pin Jen tru masa cor
Nume senmal Centronics Centronics Centronics Cer
A(D) A(D)
Tabelul 7.3. Curentu 1absorbit I generat la liniile portului paralel B c B
/Strobe I I 15 18 19
7 .1.3. Cabluri şi caracteristici electrice DataO 2 2 6 19 20
Datai 3 3 7 19 21
Standardul 1284 prevede utilizarea a 3 tipuri de conectori. Tabelul 7.4 prezintă Data2 4 4 8 20 22
poziţionarea semnalelor la pinii conectorilor. Pornind de la acest tabel se pot construi Data3 5 5 9 20 23
diferite cabluri între diferiţii conectori afl aţi la po1t, respectiv la periferic. Tabelul 7.5 Data4 6 6 10 21 24
prezintă trei tipuri de cabluri. Fiecare linie de semnal este însoţită de o masă proprie. DataS 7 7 11 21 25
Fiecare a 2-a linie din tabelul 7.5 corespunde unei conexiuni de masă. Data6 8 8 12 22 26
Din punct de vedere electric, standardul IEEE 1284 de l imitează 2 nivele de 22 27
Data? 9 9 13
echipamente ş i cabluri:
/Ack 10 JO 3 24 28
• echi pamente şi cabluri de nivel 1 care nu dispun de v iteză mare de transfer
Busy 11 lJ l 23 29
definită de standard ci doar de facilitatea de bidirec ţi o n ali tate;
PaperOut/PaperEnd 12 12 5 24 28
• echipamente şi cabluri de nivel 2 care n ecesi tă şi vi teză mare de transfer.
175
Cap. 7. Comand.1 nplica1iilor cxct·rnc· tu 1rncn 1calculn1orul l'!:

Pin pentru senmal Pin pentru masa coresp . Cablu A-B Cablu A-C Cablu B - C
Centronics Centronics Conector A Conector B Conector A Conector C Conector B Conector C
A(D) A{D) Centronics Centronics 4
B c B c ,)t : 15 32 15 4 32

3- ,,,l~·1·
Select 13 13 2 24 28 20 _.)
?~
29 23 22 29 22
I AutoLinefeed 14 14 17 25 30 35 16 31 16 14 31 14
~

/Error //Fault 15 32 4 23 29 22 ·,
30 25 32 30 32
25
/In irialize 31 32
•·r.' '
17 16 36 16
16 14 25 30 ·~t 17 36
34
?5 34 30
-~··i
/SelectPrinter I /Selectln 17 36 16 30 34 J,. 25 30 25
Host Logic f-li!!h 18
Pcrioher~l Logic High 36
":. Tabelul 7.5. Trei tipuri de cabluri paralele
.\
-;-.<~
Echipamentele şi cablurile de nivel 2 nu pot utiliza decât conectori de tip C.
Tnbelul 7.4. Poziţionarea pinilor la conectorii acceptaţi de standardul IEEE 1284
Echipamentele care se conectează trebuie să aibă amplificatoare şi receptoare de linie
conforme cu cerinţele din standard iar impedanţa cablului trebuie să respecte, de
Cablu A-B Cablu A - C Cablu B c asemenea, cerinţele standardului. În aceste condilii, lungimea maximă permisă · a
Conector A Conector B Conector A Conector C Conector B Conector C cablu lui este de I Om . Pentru echipamentele şi cablurile de nivel l nu există cerinţele
l l 1 5 I 5 electrice (amplificatoare de linie, receptoare de linie, i mpedanţă a cablului) existente
18 19 18 33 19 33 oentru nivelul 2. Se recomandă, doar ca fiecare fir de semnal să fie însoţit de un fir de
2 2 2 6 2 6 ~asă. Pot fi uti lizaţi conectorii de tip A, B sau C. În aceste condi ţii, lungimea maximă
19 20 19 24 20 24 permisă a cablu)ui este 'de 3m.
~ 3 3 7 3 7
19 21 19 25 2! 25 7.1.4. Moduri de lucru
- 4 4 4 8 4 8 ·," .~t~1~d~rdul IE~§_ lf.?.~ . d~fineşte c.inci_moduri de lucru pentru interfata. paralelă:'
1-

1-
1~
20
~
20
22
5
23
20
5
20
26
9
27
22
5
23
26
9
27
asigurând transferul datelor în sens direct (PC către periferic), în sens invers (periferic /
căfre'PC) sau în ambele se1isuri. Moduri.le definite sunt: .
a).!1f,g2.V.1;,,'.k9.l.I!E§titl.Ul~ este denumirea dată de standard pentru modul original, cunoscut
I
6 6 6 10 6 10 §l.§.~1.1Lnu1riele Centr(mi.c.s.~S.ti),1~d.(!.fq ~<W SPP; .
b) .~?dyl_ ''.t:li!J!?.l~': as!s_~!~ă tran.;;!~_u! d~ţe!_qr îp se~.s inversi .P~~~ i!~ten!lediul liniilor de '· .. 1
~

- 21
7
24
7
21
7
?8
Il
24
7
28
11 Ş~are, sub f?~·~a a 2 &rupe de câte 4 biţi; 1· . 1
ct\IÎ~::.1,L'..'.I~.~~;~: asigură transferul invers a 8 biţi simultan, prin intermediul liniilor de i
1-
21 25 21 29 25 29
1-
8 8 8 12 8 12 date; mai este cunoscut şi sub denumirea de mod octet sau bidirecţional
1~

22 26 22 30 26 30 dC~f~ (.Enhanced Parallel Po11): ~uJă. ti:aDS.fţ.r .R.b;l.i[s:cţionaJ d.e .mare viteză; a fost
\) 1?,r~văzut in_iţ!_al pentru. peri feri ce ca: unităţi 9e .disc.. unităţi CD-ROM, adaptoare de '.
9 9 13 9 13
reţea etc.;
e) ECP (Extended Capability Po11):_ as!g~fUnu1.şfi:~..!Jidirecţional de mare viteză; a fost !
1~
22 27 22 31 27 31
10 10 10 3 10 3 ·-p~·eyăzu_t iniţial pentru imprinian.te cu jet şi laser. i-- -„ ·· „ - - - • · • • .~-
2'1 28 24 21 28 21 Toate po1:turile paralele existente pot transfera date în ambele sensuri, lucrând în
li 1l 11 [ 11 1 ~odurile "Compatibility" sau "Nibble". Modul "Byte" poate fi utilizat de mai puţine porturi.
23 29 23 19 29 19 In toate aceste moduri, transferul se face prin program. Pentru fiecare octet de transferat.
·=
12 12 12 5 12 5 programul va trebui să poziţioneze datele, să verifice starea imprimantei şi să comande linia
~
24 28 24 23 28 23 /Strobe. Ca urma1„e, rata de transfer a datelor va fi mică, fiind limitată la max.150 ko/s.
1-
13 13 13 2 13. 2 Uirimele două moduri sunt mult mai performante. Ele au fost implementate ·111
24 28 24 20 28 20 controlerele de II E afl ate pe placa de bază a PC-ului. Dialogul nu se mai real izează prin
1-
14 14 14 17 14 17 program, ci prin hardware. Programul va transfera o dată printr-o singură intrncţiune
25 30 r-:> 35 30 35 OUT Controlerul de V E e~te cel care va asigura, în continuare. întregul transfer.

- -~~ -~~~
'"
f

176
SISl"l '.1\IF n : MICI{( ll'ROCl'S< >.\RI ~ ( :ap. 7. Co manda aplic:i.ţiil1Jr cxtcrm· cu m icwrnltulat<>rul l'C :

.. -,
Modul " Compatibility" .: , Modul " Nibble"
i Este modul original de lucru al portului paralel, cunoscut şi ~u? nu~ele C~ntr~nics, Este modul cel mai răspândit pentru a primi date de la periferic şi se
Standard sau SPP ("Standard Parallel Pon"). Este un mod u111d1recţ1onal ş1 asigură faptul că la toate porturile paralele standard există 5 linii prin care se poate
transferul datelor de la PC la periferic. A fost prevăzut în standard pentru a păstra imprimantei. Aceste Jlnii pot fi .folosite_pţntru a trans~a un oct~t. în„2 gni!J'

date se face în conformitate cu diagrama din figura 7.6. .•


:.
compatibilitatea cu numărul mare de porturi paralele vechi existente. Transferul unei ... )1J.ti. Pe linia /Ack nu se transferă dată pentru că este fofosltă iâ dialog.
Semnalele por1ului paralel primesc alte denumiri şi semnificaţii . Ac
prezentate în tabelul 7.6, făcându-se şi analogia cu denumirile din modul stan·
~ mio 500 "' ~: mi" 500 os ~ mio 500 "' ol _____
bate ------Ir
----~
Loate valide I Pin conector Nume semnal Nume semnal
l.______ _
tip D 1
SPP "Nibble"
Direcţie Descriere
I
\------------
1
l /Strobe /St robe Out Neutilizat la transferul
2-9 Data0-7 - - Neutilizate la transferul
/Strobe --~ -
Când este o indică o jum
Busy - - - - - - - - -- - - -- -- - -- - - - - - - - , 10 /Ack PtrClk In octet val idă şi este pus la 1 c
la trecerea la I a lui Ho ~
/Ack ~l li Busy PtrBusv Io Data3, apoi Data?
·'., .
!5 ms12 Paper End AckDataReq In Data2, apoi Data6
Fig.7.6. Diagrama de transfer a unei date în modul "Compatibility" 13 Select X flag In Data l, apoi Data5
Semnal de dialog. Este pus
.:, . Operaţiile ce trebuiesc real izate de program sunt:
14
/Auto
Linefeed
HostBusy Out
tând că portul poate primi o j
de octet. Este pus la I arăt
·:! ~ ~ • scrie data la Portul de Date;
o citeste Poi1ul de Stare, rangu! Busy, pentru a vedea dacă imprimanta este liberă; iumătatea de octet a fost p

o daci imprimanta este liberă, atunci scrie la Portul de_ Control şi activează linia /Strobe; 15 /Error /Data Avail ln DataO, apoi Data4
• scrie la Po11ul de Control şi dezactivează _!,inia /Strobe. 16 /Inirialize /Init Out Neutilizat la transferul in
Linia Busy este activă atunci când periferic~1l preia o dată şi o _dept~ne în t~~onul 17 /Select In 1284Active Out
Este la l atunci când portul
propriu sau atunci dind perifericul nu poate primi o dată (de exemplu unpnmanta tipareşte un mod definit de lEEE I
sau este decuplată de la li nie). . 18-25 Gnd Gnd - Masa electrică
Semnalul /Ack are rolul să comunice încheierea transferului. Tabelul 7.6.Semnalele modului "Nibble"

I
. Pentru a transfera o dată vor fi necesare 4 instrucţiuni de 1/E şi cel puţin tot atâtea
.~lte instructiuni. Efectul va fi o limitare a ratei de_Jrm1sf~f1'l_ ma_~m_u~UOO ko/s, rata Transferul unei <late se face în confonnitate cu diagrama din figura 7.7.
· - f,tg:uaLă fiin_ii_d~ Po!lr 5.Q kofş„ ceea ce este suficŢent ~ntru petiferice mai vechi, de exemplu
~- imprimante matriciale, dar insuficient pentru 1mpnmante cu laser, scanner~ etc.
HostBusy
._[ Pentru a asigura o creştere a ratei de transfer,...în. a~J_mod, a fost tmplementa~ă
· în controlere de li E o variantă care defineşte un'·t~l_!l_pon.B.EO în care programul scne
PtrBusy
} datele. Acestea sunt apoi preluate de controler şi transferate către imprimantă utili_zând
\ un dialog realizat prin hardware conform cu figura 7 ·?,· ~o?ul ~ste cunoscut şt ~ub
l numele "Fast Centronics" sau "Parallel Port FIFO Mode ŞI asigura.o creş_t~te_ a r<!ţ~!_d!.
AckDalaReq
X flag
Biţii O -3 B iţ i i 4-i

I f transfer de-pănii~ iOOio/__ş.. Nu este un mod definit de standardul IEEE 1284 ci acceptat
La;;:-ca-o-vruTaiiiă a unui mod definit.
/DataAvai l

PtrClk
f D~_aş.a..c.1.1m...s.:.a_~~t~t_.._n_:i_o~ul "Co1Ţ1patjpilitt'...~ş_ţţ doar u~!dire·cţ·i~nal, exist~ şi
,,....:...· . u .PO?iblJHatea..de. a.ciţj c!a,te_ Î!:I__~;~ m?.d. Pentru aceas~~-~l?.~es~ 4-~~ d~ s:.~~1.4 Fig.7.7. Diagrama pentru transfernl unui octet în modul ''Nibble''
, 4 . , l linii de control la care seJţagă linii~ dea~ţe ce Jrej'îu1esc c1t1te. I~e0u~e _avu~~1_1Jă ~a- 1.n
{preaTâbi1:Trj;iifite .de.~ s.e realiza conexjunile, să se scrie la Poi:tul. ?~ ~~tr0_~~nuguf<\~a Operaţii le ce trebuiesc realizate de program sunt:
I xxxxO I00 pentru a plasa _i_eşirile portului, comandate de porţi cu colector m gol, J..°- • portul cere o jumătate de octet activând ta OHostBusy;
Lf logic peiHru a putea fi, apoi! com_andate din exterior. • peri fericul răspunde plasând prima jumătate de octet pe linii ş i activând la O PtrCI
.--4~

· ~;·1·
~~'
178 __ slSTl·:Mt·: <.li f\!IUH JPR< iU·:s< l.\IU·: ':~~ Cnp. Î. <:ornant.la •tplic:11ul11r externe· cu micrnc;ilculatorul JlC 179

dezactivează
• portul că
pe HostBusy indicând a preluat primajumătate de octetşi ~..rJ de a scrie la Portul de Date, data va fi memorată
în registru dar nu va apare pe liniile de
nu poate încă prelua o altă dată; · :·~~ date. Ea va apare pe aceste linii atunci când rangu l 5 din Portul de Control este
• perifericul d_~zactivează pe PtrClk ca ră~puns la dezactivarea lui HostBusy; -~,1 programat la O. . . . • ,

1 r
, ... ~,
" toate operaţ11 le se repetă pentru a doua _iurnătate de octet;

. \ t azul portunlor mai vechi neafectand linule de control. Intrucat transferul e~t :·"'
, • • , • „ , ,
~.:-11 La portun le paralel~ mai 1101 această schemă este mglobată mtr-un controler de
Modul "Nibble" are marele avantaj de a oferi transfer de la periferic la port î11 -~;;J i/E. La_ portunl.e mai veclu la care implementai ea s-a făcut cu circuitele din figură, se
·li poate. mtervem pentru modificarea schemei dacă portul este doar un1'd1' r ect'10 11 l

--~ i<.l Modificarea constă în deconectarea intrăr1"1 IOC a 1·ea1·st1·L1l 1'1 "41 S374 ·
i
. ' . . • t · ·
P::?
co11tr?la~.~o~•. ~.Pf~.8~~!~'--·~~rţ~* __ş1 ma.i [u!JlLS!ţ_~-·'~-~L.c.oresp~!1~~~?,'.:..~~~ „.i~ _,_. a rangul 5 al Portului de . ,111 • .11. ~. ~ ' -
)sîo1~o~Cl.,.rat~ ~e ~~ns~er _este !1m1~ată la m_ax.?0 ko/_ s-~~·- cţ_~~ ~~-n~1 este ~J:!t!g~ntJ?~u (..;;.? I ~Din ăcate există Ciontrol şi, _cone~ta'..ea c ct11tulu1 74~S2.4_4 c_a m figu1a ..·
şi, conec.~1 ea sa
•penfence perform~nt~; sc;:ann,ţre, imprimante !~ser, etc. ,~1 ~ , d ferenţe mt1e po1tu11le paralele ale .d1fen. ţi101 producătm 1. La
/ „ " • . --- - · .( · unele porturi paralele rangul 5 dm Portul ele Control este folosit doar pentni dezactivarea
Modul "Byte" · ·,~-- modului bidirecţional iar pentru activarea sa, se foloseşte rangul 6 din Portul de Control. Se
Este primul mod care permite transferul datelor în ambele sensuri pe liniile de :.J recomandă măsurarea poitului par~lel da_că se d.oreşt~ utilizarea sa în m?dul bidi~eqional._
date. În plus, spre deosebire de modul anterior în care transferul spre port al unei date ..:\·..· •·.1·• · Ţabelul 7.7 1~r~zmtă denum1nle şi semrnficaptle semnalelor utilizate tăcandu-se ş1
du 8 biti se făcea în 2 faze acum transferul spre port al unei date de 8 biţi se face într-o ~-~ analogia cu denummle semnalelor în modul standard, iar figura 7.9 prezintă diagrama
singura fază. Modul mai e~te cunoscut şi sub denumirea de mod bidirecţional sau octet ;: pentru transferul unei date în modul "Byte".
snu PS/2. Acest mod se bazează pe o modificare a schemei po1tului prin care registrele '''.:, Pin conector Nume Nume
r11rc trnnsferă datele la pinii de date ai conectorulu i pot fi dezactivate, trecute în starea ~.1 tio D semnal·SPP semnal "B yte" Direcţie Descriere
tlu Tnu l tă impedanţă, existând posibilitatea de a citi liniile respective. Schema Portului · i,"
do J)ote bidirecţional original este prezentată în figura 7 .8 l ./Strobe HostClk
·- -
Out Este un serrmaJ de achit?.rc, S.cti val la O
la sfârşitul transferului fiecărui octet
·." 2-9 Data0-7 Data0-7 In/Out Date, pot fi transferate bidirccponaJ

~
l!-JA D0-7 Este activat la O indicând date valide
Di Qi Data 0-7 10 /Ack PtrClk In pe linii şi este activat la I ca răspuns
" /'\,.
1111 ~di n Port de Control ,f '
la activarea la 1 a lui HostBusy
IOC 11 Busy Ptr:Busy In Indică starea de ocupat a perifericului
IOW CLK 12 PaperEnd Ack.DataReq In Aceeaşi valoare cu /DataAvai l
13 Select X flag In Neutilizat în modul "Byte"
74LS374
Este activat la Oarătând că po1tul
14 I AutoLinefeed HostBusy este gata pentru transferul unui oele!.
Out
Este activat la I arătând că data a
fost primită
Este activat la Ode către periferic
1Yi!Ai / 15 /Error /DataAvai l In indicând că data trim i să către po1t
2Yi2Ai "-.J este disponibilă
lG 16

j
IOR l _ 20
/Tnitialize /Init Out Nefolosit. Este la l
17 /Selectin 1284Active Este la 1 atunci când portul este în
Out
74LS244 un mod definit de IEEE 1284
-
Fig.7.8. Schema Portului de Date bidirecţional original
I
18-25 Gnd Gnd

Tabelul 7.7. Semnalele modului ''Byte"


-
Masa electrică

Modificarea adusă constă în rolul pe care-l primeşte rangul 5 din Portul de


t '1111trol. La po1turile unidirecţionale, registrul 74LS374 avea intrarea I/O legată la Operaţiile executate sunt:
11111 li, deci datele erau doar ieşiri. La citirea acestui registru se primea data ultimă care a "' portul arată că poate prelua o dată activând la O pe HostBt!sy;
hi' l (1 imisă. La po1tul bidirecţional, rangul 5 din Portul de Control comandă intrarea • perifericul răspunde plasând data pe lin ii şi apoi activează la O pe PtrClk; .
III) 11 registrului. Dacă acest rang este programat la I atunci registrul trece în starea de " portul activează la 1 pe HostBusy indicând că a primit data şi nu este încă gata
111111111 Impedanţă şi liniile de date pot fi comandate din exterior. Rămâne şi posibilitatea pentru un alt octet;
p ~-------------------------------------
~xr~rnt' tu mic rncakubt1.1 rul l'C
. 181) Cnp. 7. Comanda apLicatiilnr

t· " perifericul activează la 1 pe PtrClk răspunzând po1tului; . Pin conector Nume sellUlal Nume semnal
L Direcţie Descriere
~ portul generează impulsul HostClk ca răspuns pentru periferic. tipD SPP EPP
i: Este activ la O, indicând c
I /Strobe /Write Out
o;\. ~
Este l la citire .
. [!;"it 2-9 Data0-7 AD0-7 In/Out Lmii bidirectionale de adres·
,i • !
Host Busy .·~':St-t
~/t: ~ IO /Ack /Intr ln Întrerupere de la perif
~-~--~--,,-~~~~~~~~---~~--, ,--~-~- ~ii
'
.'' .
Data 0-7 Data ~ X . validă ~· Î~ Este un semnal de dialog ca
când este O arată că se poat
•: tt
,.-------.. . :. ::'.[~I
I
11 Busy AVait 1n
un ciclu, adică semnalul des
datelor sa u adreselor poate I
iar atunci când esLe 1 arată că
PtrClk
·'~t ..,:;o.·~
încheia un ciclu, adică sem·
strobare poate fi dez.acL
Hostc-
1k-----------~LJ------~ll 12 PaperEnd Liber ln La d ispoz iţia utilizaton
,,,~ 13 Select Liber In La dispoz i ţia utilizaton
"~:it.~~
Semnal de strobare a datelo
Fig.7.9. Diagrama de transfer a unui octet în modul "Byte" :;;'~· 14 1
AutoLinefeed /DataStb Out este la O arată că se desfăşa
Pent~u a verifica dacă u~port paralel existent suportă
modu l bi~irecţiona~ se'.J~· 15 /Error Liber In
ciclu de CiLireDate sau Scrif
La dispozitia utilizatoru
poate folosi programul Debug dm DOS sau se concepe un program propriu. Se scrie L .'·l 16 /Initialize /Reset Out Iniţializare a perifericulu i
în rangul 5 al Portului de Control încercând în acest fel plasarea portulu i în moc.lu(:·::
"Byte", sens invers. Apoi se scrie o valoare la Portul de Date şi se citeşte Portul de,,~­ Semnal de su·obare a adreselo
Date. Dac~ portul su~oi:ă mod "Byte". atunci i~şirile regist1:L~lui v~r ~ în a 3-a stare. şr :~ - 17 /Selectln /AdrStb Out este la Oarată că se des făşoară t
de CitireAdrese sau Scriere/
valoarea c1t1tă nu comc1de cu cea scri să. Daca valoarea c 1t1tă co111c1de cu cea scnsa ·. •
atunci portul este doar unidirecţional. . · : Jt 18-25 Gnd Gnd - Masa electrică

Modul EPP ("Enhanced Parallel Port") ';:!, Tabelul 7.8. Semnalele modului EPP
·„,,
Modul EPP a fost dezvoltat şi promovat de un grup de firme: Intel, Xircon, Zenith, -.„: Toate transferurile se desfăşoară în conformitate cu anum ite diagrame d~
Data Systems, interesate în creşterea vitezei po1tului paralel şi în asigw·area transferului . ··~ deos~bire
de modurile anterioare. diagramele nu mai sunt implementate prin prog
bid irecţional în scopul conectării unor echipamente mai rapide decât cele existente la" ·. de catre hardware-ul (controlerul) portului. Programul nu va trebui decât să i
momentul respectiv: scannere, imprimante laser rapide, unităţi CD-ROM etc. ~runsferul ceea ce se va realiza prin intem1ediul unei si ngure instruc ţiuni de i
! • Există două specificaţi i pentru portul EPP: EPP ! .7 este o variantă a modului EPP 1eş1re pentru fiecare dată de transferat.
implementată la nivelul microprocesornlui 386SL, în setul de cipnri al acestuia, înainte :· Transferul de tip sc riere date are loc în conformitate cu diagrama din fig
de apariţia standardului IEEE 1284 şi EPP 1.9, varianta modului EPP care a fost definită i Operaţi ile sunt următoarele: ~
de IEEE 1284. Există o diferenţă între ele care va fi descrisă ulterior. • programul scrie o dată la Portul de Date EPP prin intermed iul unei instructi•
Tabelul 7 .8 prezintă denumirile şi semnificaţiile semnalelor acestui mod făcându-se ;~, ieşire, mai exact prin intermediul unui ciclu de li E de iesire · ·
o portul plasează datele pe linii şi act ivează semnalu l /Write;
' '
şi analogia cu denumirile semnalelor din modul standard. .,~
M_oduL ?PP..permite o rat~ _de transfer de 0,5 - 2 Mol sec. Creşţ~r.e,~_1:aţţ;_L~e 0 semnalul /VVait este la O. ca urmare semnalul /DataStr va fi activat·

~ "tranş(er,_uip_ortat l_q._c!!Lelalte moduri, s~a."putuf obţine datorităJaptul ui că gialog\1l_pentru ,. e portul aşteaptă răspunsul de la periferic, adică semnalul /VVait la I;
; transferul unei dat~ nu mai este realizat prin program ci de către hardware-ul poi-tuftif, • semnalul /DataStr este dezactivat ş i ciclul se încheie .
· mai exact de controlerul de I/ E care comandă po1tul pai·alel. · - ·--- ·- - -- Semnalul flOW este senmal de co man dă ISA Din diagrama 7.9 se observă că în
Modu l EP P defineşte 4 tipuri de transfer: ~rans~er are loc în timpul unui ciclu ISA. Un nou transfer poate începe numai
• citire date şi scriere date: în aceste cicluri se transferă date între po1i şi periferic; 1nche1erea ciclului ISA anterior şi atunci când perifericul este pregătit, adică /Wait este
• citire adrese şi scriere adrese: în aceste cicluri se transferă adrese şi cuvinte de · Rata de transfer este în domeniul 0.5 - 2 Mol sec şi este determinată de vitezele
comandă şi control.
2porturi. Motivu l este ace la că pentru transferul unei date are loc un dialog, num it di.
182 c:~r · 7. ( :, urrnnda aplic.i1ulor externe cu rnicmcalculato1 ul I'<: 183

După încheierea ciclului ISA şi după dezactivarea lui /Wait, poate începe un nou
IIOW ciclu. .
Figura 7.12 prezintă un ciclu de scriere adrese. Operaţiile exe7utate sunt aceleaşi c~
D0_,_-7_ _ _ ___,C Date valide şi la ciclul de scriere de date cu excepţia faptului că programul scrie la. Po11ul de adresa
EPP şi nu la Portul de Date EPP iar semnalul de strobare este /AdrStr şr nu /DataStr.
/Write
/IOW

/DLa.-ta~Srt---~--~---~-=~:::;7'*\~~~
/Wait . ~-_3 !
A0-7~--~--~X~~----A_d_r_e_se~,_c_o_m_e_.1_1z_i_~~-~lx===
/Write
Fig.7.10. Diagrama ciclului Scriere date în modu l EPP

t:u interblocare, în care fiecărei tranziţii a unui semnal de control i se răspunde prin .
l1 u11zi~ia unui semnal de control al celuilalt pa11ener până când se ajunge în starea' .
l11l(lalll. La diagrama din fig. 7. IO, la activarea lui /DataStr i se răspunde cu activarea,.·.
1111 /Wait ceea ce va provoca, la rândul său, dezactivarea lui /Wait. · Fig„7.12. Diagrama ciclului scriere adrese în modul EPP
Fig. 7. 11 prezintă ciclul de citire date.
Figura 7.13 pre-L'.inlă un ciclu de citire adrese. Operaţi i le executate sunt aceleaşi ca şi
/ lOR la ciclul de citire date cu excepţia faptului că programul citeşte de la Po~tul de Adresă
EPP şi nu de la cel de date EPP iar semnalul de strobare utilizat este /AdrStr ş1 un.fDataStr.
I Write
/IOR .____ _ _ _J
I DntaS tr /Write

/AdrStr q_ j\
1wa;1~J'.~~._____
I
I Wnit '1 .

~~~~-------~-~

1)0.?______ _ _ __ ~X\-______D_a_ta_I_n_ _~X'--- t y-


A0_-7~~~~~~-~~~~-~X~~-A_d_r_es_'e_,_c_o_m_e_n_z_~(\____
]

Fig. 7.11. Diagrama ciclului citi re date în modul EPP


Fig. 1. 13. Diagrama ciclului de citire adrese în modul EPP
Co ş i în cazul anterior, semnalul /IOR este un semnal ISA şi apare în diagramă 1
11n1t1111 li urata că transferul se desfăşoară într-un ciclu ISA. j Descrierile prezentate corespund modului EPP 1.9. Varianta EPP 1.7, apărut~
Operaţii le sunt: !nainte de standardul IEEE 1284 diferă de EPP 1.9 prin aceea că semnalele /DataStr ŞI
• programul ci teşte data de la Portul de Date EPP, prin intermediul unei instrucţiuni
de intrare (/IOR activ),
1 /AdrStr se vor activa indiferent de starea liniei /Wait. Aceasta înseamnă că perifericul
I nu poate împiedica începerea unui ciclu. Un periferic în modul EPPJ .9 va lucra
• portul activează /DataStr cerându-i perifericului o dată; /DataStr se activează doar corespunzător cu un po11 în modul EPPl.7 dar un periferic în modul EPPl.7 nu va
d1tcn rerifericul este liber, adică /Wait este la O, putea lucra cu lln port în modul EPPl.9. . , . .
• pcrl foricul pl asează date le pe linii şi activează /Wait arătând că datele sunt valide, Marele avantaj al modu lui EPP este că transferul une i date are loc 111 t1mp_u l unui
• por tul preia date le cu frontul urcător al lui /DataStr şi îl dezactivează pe acesta, singur ciclu al magistralei de intrare I i eşi r~ .a ~~! ~~~~1:1~1.i. ~ra~sferul reahza~du-s:
• pori feri cul dezactivează /Wait şi ia datele de pe linii . După încheierea ciclulu i ISA asincron, prin dialog cu interb locare, se obţrne viteză rnaxună, h1:11tată d.oar de ~ttezeL
şi dLtpl\ dezactivarea lui /Wait, poate începe un nou ciclu. · c:·elor 2 parteneri. Pentru transferul unei date este necesară o s ingură mstru cţrune de
184 SIS l'l ·'.:'\ll ·. (:li ;\llCH< Jl'll< JCl·:so,\1t1~,· ;, C:np. 7. Comnnda aplicaţiilor cxrci nl' cu rrutrucalClllacorul l'C

OUT sau lN iar pentru transferul unui bloc de date se poate folosi o singură instrucţiune ~"q 0 introduce în stări de aşteptare până la încheierea transferu lui (răspunsu
.~ i' de!/ E preced ată de prefixul REP. ·tl"".. pacă, însă, un asemenea ciclu este pornit fără a fi conectat un periferic, sa
, Un alt avantaj al, ~1odu lui EP'. este acela că nu trebuie~c- realizate operaţii il..
0 de.fec.ţiun~ la nivelul ~~rifericului sau al cab}ul.ui, atu1~ci portul nu v~ i:
suplimentare pentru stabil irea sensului de transfer al date lor. Exista un semnal, care .<lk~ 1Wa1t şi va introduce stan de aşteptare la nesfarş1t, blocand astfel mag1sh
atunci când este I arată un ciclu de citire iar atun~i ~ând este O aram un ciclu d~ scriere.' :~~I întregul calculator. Ieşi rea din această situaţie este asigurată de un mecanism c
Semnalul este comandat de controlerul portului ş1 nu este necesar vreun dialog cu . ~t- care va asigura deblocarea ciclului şi va anunţa starea de Time Out după apr
perifericul pentru stabilirea sensu lui de transfer. Acest avantaj este important atunci .. /': de la activarea unuia din semnalele de comandă pentru periferie ale magi~
când la transferu! unu i bloc trebuiesc realizate dese schimbări de sens. -~." Înainte de a lansa în execuţie modul EPP, portul paralel trebuie
Tabelul 7.9 prezintă registrele (porturile) utilizate în modul EPP. Dacă programul ·i;; stare inactivă, un port EPP trebu ie să aibă semnalele /Ad rS tr, /DataStr. f'
foloseşte . porturile aflate la adresele Bază, Bază + 1, B ază + 2 comportarea portului ''/, inactive, adică la I. Dacă este necesară setarea acestor linii se va seri
paralel î~ mod EPP va fi identică cu cea din modtil SPP şi la aceleaşi performanţe. .:,~, xxxxO I 00 la Portul de Control.
Dacă, însă, programul execută o instrucţiune ele OUT/ IN la/ de la porturile aflate la ·11„~ La unele porturi nu se poate realiza un ciclu de scriere, dacă portul a
adresele Bază+ 4, Bază+ 5 atunci portul paralel va lucra în conformitate cu diagramele ~~iil· în sens invers. Ca urmare se recomandă stabil irea sensului direct, prin I
i prezentate în fig. 7. I O- 7. 13, la performanţele maxime asigurate ele modul EPP. ·,l'~,~ rangu lui 5 din Portul de Contro l.
.· \ De asemenea este necesar ca înaintea fiecărui transfer rangul de Ti
Nume port
Port de Date
Adresă
Bază
Utilizare SPP
Da
Direcţie
I eşi re '>iţ~'
:X
O. Dacă nu există această siguranţă, atunci este necesară ştergerea sa prin I

! l ' I Port de Stare Bază+l Da Intrare Modul ECP ("E:xtended Capabilities Port")
I
Port de Control Bază+2 Da Intrare/ Ieşire Modul ECP a fost dezvoltat ~i promovat de firmele Hewlett-Packar•
Port de adrese EPP B ază+3 Nu Intrare/ Ie ş ire în scopul definirii unui mod performant de comunicare cu periferice rapid·
Port de Date EPP Bază+4 Nu Intrare/ leş ire laser, scannere. Întocmai ca şi modul EPP, modul ECP asigură transfer rapid ş
';·: .! Dialogul este implementat tot prin hardware, la nivelul controlerului de int
·.· Nedefini t(16/32 biti)
Nedefinit (32 biii)
Bază+5
Bază+6
Nu
Nu
Intrare/ Ieşire
Intrare/ l eşire , ţ Un dezavantaj faţă de modul EPP este acela că pentru instalare;
.,, · transfer invers este necesar, în prealabil, un d ialog între port şi periferic,
Nedefinit (32 biti) Bază+? Nu Intrare/ I eşi re
este consumatoare de timp. După stabil irea sensului, transferurile se
Tabelul 7.9. Registrele(porturile) modului EPP viteză mai mare ca în cazul modului EPP. Ca urmare, modul ECP se reco
ri,
- i
'
Porturile aflate la adresele B ază+ 5, Bază+ 6, B ază+ 7 sunt la dispoziţia utilizatomlui.
când schimbările de sens sunt puţine.
La, mo.c,ly) ECP apar câteva trăsături care permit creşterea ratei <
Ele pot fi folosite ca porturi de co'nfigurare sau pentru transferuri pe 16 sau 32 b iţi. Pot anume_: _compresia datelor, adresarea de canal, tampoane FIFO pentru
rămâne şi neutilizate. Dacă de exemplu, portul paralel are doar 8 linii de date pot fi ,, ·anijiifu_se11.sJJri şi accesul la canalele DMA. ·- ·
imp lementate transferuri cu date pe 32 biţi în modul EPP În acest scop, controlerul de Compresi ă date lor este realizată prin metoda numi tă RLE ("Run Lengl
li E va prelua data de 32 biţi în 4 cicluri în fiecare transferând câte 8 biţi. Aceştia vor fi şi este utilă atunci când se transferă date repetitive. Dacă de exemplu
depuşi, succesiv, în po1turile de date aflate la adrese le Bază+ 4 - Bază+ 7. Aceste 4 transferu l a JO de caractere "a" atunci se va transfera un n umăr RLE ega
cicluri sunt transparente pentru program, ele sunt implementate la nivelul controlerului, singur caracter "a". Perifericul va repeta caracterul a de atâtea ori cât îi a
şi transferu! unei date pe 32 biţi, în această formă, durează mai puţin decât 4 cicluri de RLE. Pentru a identifica n umăru l RLE şi pentru a-l distinge de celelalte
transfe r pe 8 biţi de sine stătătoare. ,,; trim is ca o comandă la Portul ele adrese ECP. cu bitul cel mai semnificativ
Deşi s-a păstrat compatibilitatea cu modurile anterioare a apărut, totuşi, o modificare deosebi de o adresă de canal care se trimite la acelaşi port dar cu rai
la bitul O al Portului de Stare. Aces t rang era rezervat în modul standard iar în modul ~, semnificativ la J. Compresia este uti lă atunci când se trimit informaţii gra
EPP are semn ificaţie de Time Ou t. Este activat atunci când linia /Wait nu este act i vată în acest caz, se întâlnesc uzual caractere care se repetă.
la O după aproximativ l O ~LS, depinzând şi de po1i, după activarea liniilor /IOR sau Conceptul de adresare de canal diferă de adresarea de po1t uzi.ială. l
/IOW. Se ream inteşte că liniile /!OR şi /lOW sunt liniile pentrn semnalele de comandă adresarea mai multor echipamente logice aflate într-u n singur echipament fizic
pentru transferurile cu periferia ale magistralei ISA. Justificarea prezenţei acestu i rang în acest sens este un echipament multifiJ11cţional de tip fax/modem/imprimar
derivă din faptul că modul EPP este dependent de caracteristicile de timp ale ciclurilor echipament fizic, cu un singur po1i paralel, cuprinde un fax, un modem şi o
de pe magistrala ISA. De exemplu, într-un ciclu de citire, portul trebuie să asigure Fiecare din acestea poate fi văzut ca un echipament logic separat Util izând
dialogul pentru transfer şi să preia data în acelaşi ciclu ISA. Pentru a asigura timpul canal a modului ECP, este pos i bi l ă transferarea de date cu fax-ul în timp c~
necesar, portul va folosi linia IOCHRDY("l/O Channel Ready") a magistralei ISA pentru a este ocupată. În modul standard, dacă imprimanta era ocupată nu era po
"„
• 1

:- .....
- - -- - ,
.' [;:. ·;

186 s1s·1nv!E c:u MICRC ll'R< )<:ESC l,\Jll: ·~(.;, Cnp. Î , C:omanda aplicaţiilor i:xt<:rm: cu micruc~lculncorul i'(:
~i~~ -
transf~r ~u echipamentul fiz~c deci cu nici unul ~in echipamentele lo~ic~. În modul J'.~
ECP, msa, programul va m?d1fica adre~~ de ~anal şi_ tran~'.erul va putea sa ?1bă loc. :·i.':r
Tabelul 7.10 prezintă denummle ş1 semmfi caţ11le semnalelor dm acest m od :~~'
. D0-7 ~~--'X~~__::D~a~t~a_v~a_lid~ă~l~~X~~~-'X~~~D~at~a~v~a_li~d_ă_2~_,~~
Comanda r1 ------
f!\cându -se şi analogia cu denum irile semnalelor din modul standard. ':::'. '. ·
1,
:~!1
..
Data I

Pin conector Nume semnal Nume semnal Direc- ': . _


HostClk
Descriere c 1
tip D SPP EPP ţie :tv l

Semnal de dialog folosit împreună ~ţl


PeriphAck ~~~~~~~~-'

I
'
/Strobe HostClk Out cu PeriphAck penn·u a transfera date
sau adrese în sens direct ... l.· ~.)·~1
~-~

~-\
Fig. 7.14. Diagrama transferului de la port la periferic
1~

2-9 Data0-7 Data0-7 In/Out Linii bidireqionale de date ":~\\ Separarea între cicluri le în care se transreră date de cele în care se transferă
1-

10 /Ack PeriphClk In
Semnal de dialog folosit împreună
cu HostAck pentru a transfera date ·.:·1
'1 comenzi se face prin linia HostAck, comandată de citre po1i. Dacă HostAck este .1
atunci se vor transfera date iar dacă HostAck este O atunci se vor transfera comenz1.
în se.ns invers Există 2 tipuri de comenzi. Dacă rangul 8 este O atunci celeialte ranguri reprezintă un

".·:.l~·
Semnal de dialog folosit împreună număr RLE, cu valori de la O la 127. Dacă rangul 8 este 1, atunci celelalte ranguri
cu HostC!k pentru a transfera date rep rezi ntă o adresă de canal.
11 Busy PeriphAck In sau adrese în sens direct La transferul :ri: Figura 7.15 prezintă diagrama transferului de la periferic la port.
în sens invers distinge între date şi 'i~.
. . (

comenzi i I ReverseReques-t·
Este răspunsul la cererea /Reverse -.'î
I :2 PaperEnd I AckReverse ln .~~
Request. Este ~ctiv la O •,
I AckReverse
1:1 Select X flag In Indicator de extensie
Semnal de dialog folosit împreun ă I D0-7 --i Data validă i '{=1 Data validă 2 r=
1•1 I AutoLinefeed H ostAck Out
cu PeriphClk pentru a transfera date
în sens invers. La transferul 'in sens
direct distinge între date si comenzi .. ~
.J PeriphAck - - - - - - -- -- - - - - - - D-a-ta---:1_--_-_-....!_ __C.::_c_o_m_a_n_d_a_,,_:_-_- -_-_·

Este activat la Ode către periferic indt- PeriphClk


I~ /Error /PeriphRequest In
când disponibilitatea datelor inverse
Cerere, activă la O, pentru instalarea HostAck
I Ct /Tnitialize /ReverseRequest Out
modului de transfer invers
Este I când portul este într-un mod ·l Fig. 7. I 5 Diagrama transferului de la periferic la port
I/ /Selectin 1284Active Out
compatibil 1284 .'.~
1
111--;:i~ Operaţi ile care se execută sunt:

~
<lnd Gnd - Masa electrică
• portul cere transfer în sens invers activând linia /ReverseRequest,
Tabelul 7.1 O. Semnalele modului ECP ..; „ perifericul răspunde că acceptă cererea, activând linia /AckReverse,
o perifericul plasează datele pe linii şi arată ce se va transfera: date (PeriphAck= l)
I 1~11111 /, Iii arată diagrama transfe rului de la port la periferic. Operaţiile executate I sau comenzi (PeriphAck=O),
11111
• p11111ll pl11scu?t\ datele pe linii şi arată ce tip de ciclu va executa: transfer de date 1
cj
„ perifericul activează PeriphC lk la Oindicând că datele sunt valide,
• poiiul răspunde activând la 1 linia HostAck,
11111 IAt'K I) snu transfer de comenzi (HostAck=O), • perifericul răspunde dezactivând pe PeriphClk; se recomandă uti lizarea acestui
1 11111111l 111•1lvc11z!I semnalul HostClk ind ic~.nd perifericului că datele sunt valide,
front pentru încărcarea datelor în port,
• p11JI h dc11l 1•1\qpunde cu activarea la 1 a lui PeriphAck, · • portul răspu nde dezactivând pe HostAck şi comunicând astfel că este gata pentru
• p111111i 1n~ p11nd o cu dezactivarea lui HostAck; se recomandă utilizarea acestui front un nou ciclu.
111111111p1uh1u1cu dalelor de către periferic, Din ultima d iagramă se observă şi o d iferenţă importantă între modurile EPP şi
• p 1ll11iloul l'nspunde cu dezactivarea lui PeriphAck şi un nou ciclu poate începe. ECP, amintită deja. Dacă la modu l EPP pot fi amestecate ciclurile cu transfe r în orice
t. . ;
~ „
E:,·.
..
~ , 188 ~ IS l'l ·:M I·: (:LI M ICI{( Jl'R<lG:so.\R/( Cap. 7. C rnnanda aplicariilor cxrt·rm· cu micn 1calculawrul PC :
'·.
direcţie , fără
.
dialog suplimentar, la modul ECP este necesar un dialog pentru- a stabili ·. ,. . Pentru instalarea modurilor descrise mai sus se foloseşte Registrul de Contn
sensu l invers. Portul trebuie să ceară sensL~I i~vers prin. acti v~rea lui '.~e~erseRequest şi '~ (ECR). Structura lui este dată în fi gura 7.16. Rangurile 7-5 din ECR fixează modul l
să aştepte răspunsul de acceptare al penfenculut prin activarea l1111e1 /AckReverse. '!~"~·". . (
Doar apoi poate să înceapă transferul. · lRt 7
' '.fi'·~;) '
Setul de. registre folosit în. m~dul .ECP es'.e. mai . c.:ompiex decât cel folosit în ·~~ L---....1.---..i..---..l.--r--J'----r--•-...,..-~-..,...--'-r---
celelalte moduri. Tabelul 7. I I prezmta registrele uti lizate m modul ECP. ..:.,:1 ·· FIT

Nume port
.Portul de Date
Adresă

B ază
Mod în care Utilizare
este folosit (*)
0.1
SPP
Da
Direcţie

Ieşire
i.1·~1·1~-· ~p
Service ECP
Portul' ECP de adrese FIFO B ază 4 Nu In trare/Ieşire · ··~'; •- - -!&>-Validare ECP
~~-
Portul de Stare Bază+! 0-7 Da Intrare
t •
:~".. Întrerupere ECP
Portul de Control Bază+2 0-7 Da Intrare/ Ieşire
Portul de Date FJFO B ază+400h 4 Nu Intrare/ Ieşire OOO - Standard
Portul de Date FIFO Bază+400h 3 Nu Intrare /Ieşire 001 - Byte
Portul de test PIFO B ază+400h 6 Nu Int rare/Ieşi re Ol O - Port Paralel PIFO
Registrul de configurare A Bază+400h 7 Nu Intrare 011- ECP FIFO
Re gistru l de configurare B Bază+401h 7 Nu Intrare/Iesire 100- EPP
Registrnl de control extins (ECR) Bază+402b 0-7 Nu Intrare/Ieş ire
JOl - Rezervat
,f •'
11 O - Test FIFO
•.,, ' * Semnificaţiile numerelor din această coloană sunt prezentate "111 tab. 1.12. '. l J l - Configurare
' i•
Tabelul 7.11. Registrele (porturile) modului EPP
Fig. 7 .16. Structura Registrului de co ntrol extins
. I
Există mai multe moduri în care poate lucra un port ECP. Acestea sunt
I Dacă unui po11 ECP i se cere modul Standard el va lucra ca un port I
prezentate în tabelul 7.12. original. Dacă i se cere modul Byte va lucra în sens invers. Unnătoarete do uă m
Port paralel FIFO ş i ECP FJFO, uti li zează hardware-ul pentru a genera dialogul n•
Nume mod ECP N umăr Descriere
transferu lui, diferenţa între ele fiind aceea că modul Pot1 paralel FIFO gen erează 1
Standard o Portul EC P va lucra ca ş i un port standard. de tip Standard, pe când modul ECP FIFO generează dialog de ti p ECP. Modu
• :- l
Bvte 1 Portul ECP va lucra ca un port b id irecţion al. FIFO este folosit pentru a verifica dimensiunea tampoanelor FIFO. Dacă portul e
. ·' Atunci când programul scrie o dată la Portul de Date FIFO,
' ' acest mod, orice octet scris la Portul de test FIFO, adresa Bază+400h, va fi încăr
aceasta va fi trimisă la periferic, utilizând dialogul de tip SPP. tamponul FIFO şi orice port citit de la acest port va fi citit de la tamponul I
Port paralel FIFO 3 Se obţine vi teză mai mare ca în modul standard pentru că Utilizând ş i rangurile FIFO Plin ş i FfFO Gol, se poate dete1mina dimensiunea tampo:
dialogu l este generat prin hardware şi se fo losesc tampoane
Fl FO care în mod uzual este de 16 octeţi.
de tio FIFO. Dialogul, însă nu este de tio ECP, ci de tip SPP.
Rangul 4 din ECR, Întrerupere ECP, are ro lul să valideze sau nu utili
Mod tipic ECP. Transferul se rea li zează prin dialog de tip
ECP PIFO 4 întreruperi lor. Rang ul 3, Validare DMA, valid ează sau nu utilizarea DMA iar ran1
ECP, srenerat prin hardware.
. ' Portul va lucra ca şi în modul EPP. Nu este disponibil la toate
Service ECP, ind ică, dacă este setată la 1, apar iţia unei cereri de întrerupere. Resc
funcţie
EPP 5 controlerele de I/E. Acolo unde nu este, modul este rezervat.
lui se face în mod diferit, în de controlerul de I/ E existent. La unele pc
resetarea acestui rang se face scriind O la el , prin program, în timp ce la alte pc
Atunci când programul scrie o d ată la Portul de test FlFO, a-
ceasta va fi trimisă în tamponul FIFO. Orice citire din Portul de resetarea se real i ze ază doar prin citirea registrului.
Test FIFO 6 test FIFO se va realiza din tamponul FIFO. Împreună cu rangurile Rangurile I, FIFO Plin şi O, FIFO Gol, indi că starea tampoanelor FIFO. Dacă
de stare FIFO Plin/Gol, acest mod este util penu·u a afla dimen- Plin este setat, atunci tamponul este plin. Dacă FIFO Gol este setat, atunci tamI
siu nea tampoanelor FIFO implementate oe oortul oaralel. este gol. Dacă nici unul nu este setat atunci există date în tampon dar nu este plin.
Este un mod folosit pentru configurarea portului paralel, prin ~ Pentru instalarea unui mod de de lucru se configurează registrul ECR, con
Configurare 7
intermediul registrelor de confornrare A ş i B . modul ui dorit şi apoi se pot scrie ş i citi date la/de la adresa de port corespunzătoare
Modul ECP dispune de doua registre de configurare care oferă infor:
Tabelul 7. 12. Modurile de lucru ale unui port ECP sup limentare despre fun cţionarea portulu i în mod ul ECP. Acestea su nt disponibile
· ".,~!:"1'i
190 SISTE>f E CI! M h;IH ll'ROCl·C« >'RE ·~ c~p. 7, Comnnda aplirnţiilor CX ( cfllC cu micrucalculotorul l'<. 191

dRcă portul ost< ;n modul de oonfigu""· IR od,osele B"ă+400h pentrn regi"•·ul A şi ·~ 7 o


B02ă+40 Ih pentrn "•"""' B Fig. 7.17 P"ZiRtă ''""'"" "gi„rnlui de coofigm•re A. ·~

7 '-y---J o ·.~
Selectează sau afişează starea canalului DMA folosit:
I Octeţi rămaşi în FIFO: J:~~ OOO - fo loseşte canal DMA pe 8 biţi setat prin conexiuni
4 00 - întregul cuvânt ~·.~~~ Starea curentă 001 - canal 1 DMA
O1 - I octet '-;t.f a li niei IRQ 010 - canal 2 DMA
:~ =; ~~~::: ;: :~l I - transfer cu
Ol I - canal 3 DMA
100 - foloseşte canal DMA pe 16 biţi setat prin conexiuni
O- octetul ce aşteaptă să fie trimis „~,~ compresie RLE 10 1 - canal 5 DMA
nu afectează r·angul FIFO Plin ""~:-, O- transfer fără 110 - canal 6 DMA
I - octetul ce aşteaptă să fie trimis -;~j compresie RLE 111 - canal 7 DMA
afectează rangul FIFO Plin -1:j
--~1 Selectează sau afişează starea liniei IRQ:
Rezervat -,-, ;',1 OOO -·întrerupere se l ectată cu conexiuni
OOO - cuvinte de 16 biţi ~ 001 - IRQ 7
001 - cuvinte de 8 biţi
010 - cuvinte de 32 biţi J OJO- IRQ 9 _

·~
01 1 - IRQ 10
I - întreruperi active pe nivel 1 00~ IRQ 11
O- întreruperi active pe front 101 - IRQ 14
110-IRQ 15

.·~j
Fig. 7.17. Structura registrulu i de configurare 111 - IRQ 5
Rangul cel mai semnificativ arată dacă întreruperile sunt active pe nivel sau pe Fig. 7.18. Structura registrului de configurare B
front, aceasta depinzând de magistrala exi stentă pe placa po1tului. Următoarele 3 raguri
arată dimensiunea magistral ei de pe placa portului: 8, 16 sau 32 biţi. Acestă informaţie
·; Rangurile 5-3 asi gnează sau afişează liniile de întrerupere alocate portului paralel,

l
este utilă driverului pentru portul paralel pentru a seta dimensiunea cuvântului care se iar rangurile 2-0 asignează sau afişează canalul DMA fo losit de portul paralel.Instalarea
transferă în conformitate cu dimensiunea magistralei portului. Transferul poate avea loc unuia <.lin modurile de lucru descrise se face prin intermediul BIOS-ului. Există şi
şi dacă dimensiunea cuvântului şi a magistralei portului nu coicid dar eficienţă maximă posibilitatea ca un program utilizator să realizeze aceste configuraţii, acţionând asupra
se poate obţine dacă ele coincid.
~
unor registre, dar nu se recoman dă acest lucru din cel pu ţi n 2 motive:
Următoarele 3 ranguri folosesc la revenirea dintr-o eroare. Programul trebuie să " nu există setări standard pentru aceste registre, ca urmare este posibil ca programul
ştie câţi octeţi au rămas în tamponul FIFO. La unele porturi rangul FIFO Plin se referă
şi la octetul care aşteaptă să fie transmis iar la alte porturi acest octet nu influenţează
rangul F!FO Plin. Apoi, portul paralel are doar 8 bi ţi de date şi dacă se transferă la port
un cuvânt de 16 sau 32 biţi, este necesar ca programul care asigură revenirea din
tratarea unei erori să ştie câţi octeţi au mai rămas de transferat.
,~
J
,i
utilizator să nu fie portabil şi
• dacă sistemul este multitasking, modificarea acestor registre de un task va putea
afecta funcţionarea celorlalte taskuri.

7.1.5. Întreruperile la portul paralel


Figura 7.18 prezintă structura registrului de configurare B. El oferă informaţii
despre configurarea portului la nivelul întreruperilor ş i al canalelor DMA. Unele porturi
1 V Întreruperile nu sunt utilizate la transferul cu imprimanta nici sub DOS şi nici
pot fi configurate prin program, altele prin BIOS iar altele prin conexiuni. În ultimele sub Windows. Ele pot fi, însă, utile atunci când portul paralel este folosit în aplicaţi i de
două cazuri, registrul de configurare B este doar cu citire. timp real, de exemplu monitorizarea unu i proces. Dacă în timpul mon ito rizării, la
Rangul 7 selectează sau nu comprimarea datelor de către port, prin metoda RLE. apari ţi a unui eveniment, trebuie ca po1iul să ia o decizie, să execute o anumită
Dacă e~te I, se realizează comprimarea. Rangul 6 indică starea liniei de întrerupere IRQ, comandă, de exemplu, atunci va fi fo los ită o intra re a portului paralel pe care va sosi o
ln fonna(ia poate fi folos ită la diagnosticarea de conflicte, atunci când această linie este cerere de întrerupere. Procesu l va trata această cerere în c011cordanţa cu cerinţele
fo l os ită şi de alte resurse. aplicaţie i respective.

--------
-
192 ~l~Tl·:Ml·: UJ Mlf:J\C.)PR(H:m;(l,\ilt( Cap. 7 . Comanda aplicapilnr <:xt<:m c cu mic1ocnlculatorul PC

J
( )~. rr10_d -~-~~~l. ~JiJti.UG.-.~~~~,f~Ql.E~~~„~ll:>.F~tei,.PO.J:f,!J~14.P-%~~!.Junt _[R~I-J?.e.1_1tr~·.,~.
\ J:.~T I ş1 îRQ~_1~e_nţr_11_l..PT..2~Dacă nu există Ll''1 ~. llUJ5 va.li alo-Cată pentru placa de '~t 7.1.7. Aplicaţii
..

.
.~

l
i \ . ' swîef. EXfstă posibilitatea ca o l i~ie de..întrerupere _să fie al?cată la tnai mul~e resu:se. :.;;;,~.tf
De exemplu IRQ5 poate fi alocata plăcu <le sunet ş1 po1iulu1 LPT2. Este sarc111a rutinei. '}'l Verificarea porturilor paralele
,, .)..- Jele tratare a cererii de întrerupere să identifice, în această situaţie, resu rsa care a cerut"·l~-~~ Primul program descris verifi că existenţa porturi lor paralele şi anur
:').,"· / întreruperea. _l!_eţcă. po,rtu_
v. l fste folosit doar pentru . ţip~rire, atunci ~~t~- posj_Q.(! ca ~\-: mesaj_, portul sau porturile paralele găsite. El c i teşte locaţiile din memoria
i întrerupe.1:u~_g_[~J..W-alidate. · · · -· - · · -~ se află adresele de bază ale porturilor paralele din sistem. Programul este ut
·--Pentru vizualizarea corespondenţei dintre resurse şi liniile de întrerupere, în „);:1·. poate afla pe al tă cale existenţa sau nu a porturilor paralele dintr-un cc
Windows 95/98 se foloseşte calea System~ DeviceB Manager~ Properties. :f.' precum şi adresele lor de bază.
Pţntru ca cererea d~_Jntrerupere să ajungă la procesor, este necesară validarea. ··. \, Următorul program află care este tipul de port paralel val idat dintr-w·
l:
1
liniei de"întrerupere, la nTvelliîCoiitrolerurt.ilde-iîi"treruperi. Conllil5!r~od~că:IRQ.7~ ,.~l anunţă printr-un mesaj. Programul începe prin a verifica dacă po1tul este în
linia al6c~~:P:O~tU.l\1i -p~ralel, validârea acestei linii se va răe~ scriind o în, rangl,!l,J al ·... Pentru aceasta se fo loseş te metoda descrisă în [1 1). Se citeşte registrul
; . po1·f1illîf9_~_l..8:. adreş_a_?lh, .IMR ("Interrupt Mask Register). lntrucât după acc~p_ţa~â......·„·
Ltiiei-cereri de întrerupere, sistemul de întrerupei va fi dezactivat, este necesară reactivjlr~ -~,,
adresa Bază + 402h şi se verifică dacă rangul O (FIFO Gol) este 1 şi rani
Plin) este O. Dacă nu, atunci tpodul nu este ECP. Dacă da, se mai face o ve
sa, 'după tratat'ea cererii. Aceasta se poate realiza prin setarea rangului ICR ("Interrupt · ,.' constă în modificarea ultimelor 3 ranguri ale registrului ECR astfel: rang
t.d.· Control Port"), adresa 20h, de obicei înainte de a ieşi din rutina de tratare a cererii. , ·.· rangurile I şi O ia O. Se citeşte din nou registrul ECR şi dacă se obţi ne o coi
;;;: .. La nivelul portului paralel, întreruperile pot fi validate sau invalidate prin · ~f care rangul I este O şi rangul O este I, rezultă că portul existent este de tip E•
intermediul rangului 4 din Portul de Control, Enable IRQ Via Ack.Line. Dacă întrerur.erile- ·:- Apoi se verifică dacă portul existent este EPP. Se scrie la Portul d(
_sunt validat~_ a.ţ!!t].Cj o Întrerup~re yţ1_fi..generată la tranZlţlar=:;·o-;, ~~~~lul.ui/Ack: I: adresa Bază + 4, o configuraţie ş i apo i se citeşte ace l aşi port. Dacă ~
~Şi porturi la_ca:e Întret:U~~rea este gen~r~tă ~a. tra~ziţia 0_~ .sei:i?ăîuJiil~~:- ;•.·•.
ra config~raţia trimisă, po1tul paralel existent este de tipul EPP.
ln continuare se verifică dacă există sau nu port paralel. Până acum s-•
· Se recomandă ca, mamte de ut1l1zarea acestei mtran, sa se venfice tranz1ţ 1a de pe ltma ·:
I Ack care va determi1Ja generarea unei cereri de întrerupere. dacă exi stă, portul paralel nu este nici ECP nici EPP. Pentru aceasta se fix
' Standard şi apoi se trimit 2 configuraţii la Potiul de Date, adresa Bază. G
7.1 .6. Utilizarea portului paralel prin. intermediul B!OS - ului scriere la Portul de Date se face o citire şi o comparaţie . Dacă după vreuna dir

l
obţine coinci denţă rezultă că nu există port paralel. În caz contrar se verifică
Portul paralel poate fi folosit şi prin iritennediul rutinelor din BIOS. Accesul la existent este în mod bidirecţional sau standard. Pentru aceasta se pune la I r
rutina din BIOS care corespunde portului paralel se face prin instrucţiunea INT I7H. Po1tul de Control, adresa Bază + 1 şi se scrie o configuraţ i e la Po1tul de Datt
Funcţ iile care pot fi realizate depind de configuraţia încărcată în registrul AH înainte de configuraţia trimisă şi dacă nu este coincidenţă înseamnă că portul este în mod b
lansarea instrucţiunii şi sunt prezentate în tab. 7.13. Dacă după citire se obţine coincidenţă, înseamnă că portul este în mod stand<
Al treilea program instalează şi apoi comunică, prin mesaje, modurile de
Nume funcţie Combinaţie în AH Descriere
Se trimite la portul parnlel caracterul aflat în registrul
AL. În DX se află numărul perifericului referit (O în
1 Dar acest program va perm ite instalarea oricărui mod ECP doar dacă, în prea
setat în CMOS modul ECP. Programul nu are efect dacă în CMOS am setat

! afara lui ECP, ceea ce înseamnă că programul nu pennite modificarea modurii


,! .
Tipărire varianta standard). La ieşi.rea din rutină, dacă transferul
OOH CMOS. Pentru a real iza modificarea, ar trebui să existe acces la registrele cc
caracter nu a reuşit, în AH se află configuraţia corespunzătoare de Intrare/Ieşire, care comandă portul paralel. Această informaţie depinde de la
funcţiei Citire stare periferic, cu rangul O, eroare de
controler şi nu se poate afla decât dacă se dispune de documentaţia tehnică a con·
"time-out" la l. Pentru transfer reuşit rangul Oeste O. 1 Programul instalează şi citeşte modurile ECP acţionând la nivelul ran
Iniţializare În DX se încarcă numărul perifericului referit. La 4
OlH I din ECR.
periferic ieşirea din rutină , în AH se află starea perifericului. 1
La ieşirea din rutină, în AH se obţine starea 1 ; programul verifica existenta porturilor paral ele si da unul din mesaj el e ·
perifericului. Semni fi ca ţiil e rangurilor din AH: .model small
Citire stare bit 7-periferic disponibi l; bit 6-există imprimantă; .stack
021-I .data
periferic bit 5-lipsă hâttie; bit 4-imp rimantă selectată ; parl db ' LPTl la adresa 03bch!'
bit 3-eroare de transfer; biţi 2, I - neutilizaţi; parll db 'LPT2 la adresa 0378h!'
bit O-eroare de "time-out" parl2 db 'LPTl la adresa 0278h!'
par2 db 'LPT2 la adresa 0378h l ·
Tabelul 7.13. Funcţiile BIOS pentru po1tui paralel par2 1 db 'LPT2 la adresa 0278h!'
Cap. 7. Comanda aplicafiiJor externe cu 111Krncakulatr1rul P<:
195
pa~3 db 'LPT3 la adresa 0278h! · !~ mov ax, es : [si]
no db 'Nu există port paralel!· -.~,_, cmP ah, 03
nu db 'Nu mai exist~ alt por t paralel!· · ~·,:: et3
.code ~:-: jnz
;procedura carriage return- line feed
crlf proc
.>:ii}
.)}·i~
~~; ~~~:!h
mov cx,2ld
mov al, Oah ·u;" ?I mov si, offset par2
mov ah,14
int lOh
mov al,Odh
·lî
·~·~
;. :~~
. ~ -- .}~~::f
call afis
jmp cont2
et3: cmp ah, 02
mov .ah, 14 "!f;;i, jnz mtpar
int lOh '
,i;t'~~ cmp al, 78h
ret
crlf endp . :.'~l~ . t~~ ~~~;~d
;procedura afisare text ~"~1 mov si, offset par21

~:! 1 c~~!:te
~:~~~~; cont2:
afis proc
t ext: mov al, ds: fsi] continutul
mov ah,14 locatiilor 0:40c 40d
-~· mov si,040ch
int lOh '. "" · mov ax, es: [si]
inc si "'{•. cmp ah, 02
loop text ~ ,..~'t ··j nz nupar
call crlf
r1.1L
'~~ :mp al, 78h
·.L Jnz nupar
afis endp 'd mov ex, 21d
;se initializeaza registrul de segment ds .:1 mov si, offset par3
ILart: mov ax, SEG parl
mov ds, ax
·~ fcall afis
.1 jmp final
, '·\
;mesaj "nu mai exista alt port paralel!"
;se citeste continutul locatiilor 0:408 409
mov ax, O
'.j
nupar: mov cx,3ld
mov es,ax mov si,offset nu
mov si,040Bh call af is
mov ax, es: [si ] jmp final

·l
C'mp ah,03 ;mesaj "nu exista port paralel ! "
jnz etl nopar : mov cx,2Jd
cmp al,Obch mov si,offset no
jnz et2 call afis
mov cx,2 l d
mov si,offset parl ·~ ;se asteapta o tastare si iesire in dos
final: mov ah,lOh
call afis int 16h
jmp contl .1 mov ah, 4ch
int 2lh
etl: cmp ah, 02h
jnz nopar
cmp al,78h
:j end start

..
jnz nopar ~1 ;programul tippp.asm verifica tipul de port paralel validat si da
;unul din mesajele de mai jos
mov cx,2ld . model small
mov si,offset parl2 ~'~. . s tack
call afis ~ .data
jmp contl
et2: cmp al,7Bh ~ parl db 'Por tul este in modul ECP''
par2 db 'Portul este in modul EPP''
jnz nopar
par3 db 'Portul este in modul Bidirectional!'
mov cx , 2ld
par4 db 'Portul este i n modul Standard!'
mov si,offset parll par5 db 'Nu es t e port par alel!·
call af i s base equ 0378h
;se citeste continutu l locatiilor 0:40a 40b .cade
contl: mov si,040ah ;procedura carriage re tu r n - l ine feed
l 'J6 Cap. 7. Comanda aplicaţiilor externe cu microcakulat1Jl'lll l'C
-
crlf proc mov ex, 25d
mov al, Oah mov s i ,offset par2
mov ah,1 4 call afis
int lOh jmp f i nal
mov al,Odh ;se verifica daca nu exista port paralel
mov ah,14 et2: call timeout
int lOh mov dx, base+2
ret in al, dx
,,. crlf endp and al,l l Ollll l b
;p~ocedu ra afi s are text out dx, al
af is proc dec dx
text: moy a l ,ds: (s i ] dec dx
.'.i mov a h,1 4 mov a l,S Sh
int lOh out dx,al
i nc si in al, dx
loop text cmp al, SSh
call crl i! jnz et3
ret mov al , Oaah
afis endp out dx, a l
;procedura stergere time out bit in al , dx
timeout proc cmp al, Oaah
mov dx,base+ l jnz et3
in al,dx ;se verifica daca este mod standard sau bidirectional
ret. mov dx,base+2
timeout endp in al, dx
;se initializeaza registrul de segment ds or al,OOlOOOOOb
start: mov ax,seg parl out dx, a l
mov ds,ax dec dx
;se verif i ca daca este mod ECP dec dx
mov dx,base+402h .:. mov al , 5Sh
in · al,dx out dx, al
and al , OOOOOOllb in al, dx
cmp al , 01 cmp al,SSh
jnz et l jz et4
in .al,dx mov ex, 35d
and al,lll l llOOb
or al, OOOOOlOOb
out dx,al
in al,dx
and al,OOOOOOllb
l ·' mov si, offset par3
call af is
.: jmp final
et4: mov cx,30d
' mov si,offset par4
call afis
cmp al,01
jnz etl
mov cx,25d
j
· jmp final
et3: mov cx , 2ld
mov si,offset parl - mov si , offset parS
call afis call afis
jmp final ;se asteapta o tastare si iesire in dos
;se verifica daca este mod EPP final: mov ah, lOh
etl: mov dx,base+4 int 16h
mov al,Oaah mov ah, 4ch
out dx ,al int 21h
call timeout end start
mov dx, b as e +4
in al,dx ;programul ecp . asm instaleaza si. afiseaza tipul de mod ECP v
' .mode l small
cmp a l, Oaah .stack
jnz et 2 .data
call timeout
198 C:3p. 7. ConrnnJa ~p l ic:iriil 11r cxwrnc cu micwc:t!cubtCJrul I'<: 199

base equ 0378h cmp al,OcOh


bOOO db 'Mod ECP Standard!' jz te,5tf
bOOOl db 'Mod ECP Byte!. mov ex, 18d
bOlO db 'Mod ECP Parallel Port FIFO!' mov si,offset bl l l
bOll db 'Mod ECP FIFO!' call afis
blOO db 'Mod ECP EPP ! ' jmp final
blOl db 'Rezervat!' t•3Stf: mo•.r c:·:, 18d
bllO db ' Mod ECP FI FO Test! ' mov si,offset bllO
bll l db ' Mod Configuration!· call afis
.code jmp final
; procedura·carriage re t urn - l i ne f e ed rez :rnov cx,9
crlf proc : mov si,offset blOl
mov al , Oah call afis
mov ah , 14 j mp final
int lOh epp: mov cx,12d
mov al,Odh mov si,offset blOO
mov ah,14 call afis
int lO h jmp final
ret ecp: mov cx,13d
crlf endp mov si,offset bOll
;procedura afisare text call af is
afis proc jmp final
text: mov al,ds: [si] paralel: mov cx,27d
mov ah,14 mov si,offset b 01 0
int lOh call afis
inc si jmp final
loop text octet : mov cx,13d
call crl f mov si,offset bOOl
ret call afis
afis endp jrnp final
;se i n itializeaza registrul de segment ds standard : mov cx , 17d
start: mov ax , seg bOOO mov s i ,offset bOOO
mov ds,ax call afis
·~
;seteaza modul ECP dor i t ;se asteapta o tastare si iesire in dos
mov dx,base+402 h _,;f final : mov ah,lOh
in al,dx \'! int 16h
and al,Olllllllb ·~ mov ah, 4ch
or al,OllOOOOOb .J int 2lh
out dx,al :4 end start
;citeste modul ECP existent J
,i
mov dx,base+402h
in al,dx 1 Conectarea unor minitastaturi mecanice
and al,lllOOOOOb
cmp al , O 1 Conectarea unei singure minitastaturi
jz standard
cmp al,20h ~j În continuare vor fi prezentate câteva soluţii pentru conectarea une i minitastaturi
mecanice cu 12 contacte.
jz octet
cmp al,40h !j Soluţi a 1
jz paralel
cmp al, 60h :l Este prezentată în fig. 7.19.
jz ecp ] Programul următor citeşte tastatura. El indică, printr-un mesa j, tasta acti onată.
cmp al , 80 h
jz epp
Principiul c itirii constă în scrierea câte unu i O pe co loanele tastatL!rii, liniile· Data5,
cmp al,OaOh Data6, Data7 ale portului paralel, succesiv şi citirea linii lor tastaturii adică a liniilor de
jz rez ' stare Busy, I Ack, Paper Out şi Select ale portului paralel.
200 SISTl·.Ml'. C:U MICIU Jl'R< lCl '~'>< lARJ\ C:np. 7. Comanda aplicaţiilur ~xrc·:·m· cu microcalculator.ul Pc:

/Strobe 1 tas ta9 db "Tasta 9 ! "


z tas tas db "Tasta * ! "
Data O tasta O db "Tasta 0!"
('j
Data 1 3 tastad db "Tasta # ! "
o Data 2 4 ba se equ 378h
.code
~ •: •t
+5V
Data 3 5 ,·_.1,.. ._' ;procedura af isare mesaj
(j Data 4 6
10 k -':.~~ . afis proc
t-l +5V ' ,i>:iJ text : mov al,ds: (s i ]
o Dara 5 7 JO k
.;~~., moî ah,14
~ Dara6 8 +5V
JO k Fig. 7. 19. Conectarea ("\"i int l Oh
"d Data 7 9 _·;d inc si
o 10
1 +5V unei minitastaturi
\,. 1 loop text
~
YAck
11
JO k
mecanice la portul ... ~' ret
Busy parale l- soluţia I afis endp
"d ' ; i niti a lizare registru de segment ds
~
~
POIPE 12
Select 13
/Auto Lf 14
"J-~.:

. fi·~).
,•{,V'
start: mov ax, seg ta s tal
mov ds,ax
. " ;incepe scanarea t astatur ii
t"'-1 /EITor 15 mov dx,base
t'"4 t~t~·
/Init 16 mov al, Offh
out dx,al
/Se! In 17 reia : mov al,Odfh ; o pe dS
Gnd 18-25 out dx ,al
..,,' La o citire va trebui fie ca toate liniile să fie la 1, ceea ce înseamnă că nu s-'1
inc dx
in al,dx
. ; acţionat nici o tastă, fie ca o linie să fie la O, pe care se află tasta care s-a acţionat. La rol al ,1
j c tasl ;rangul este inversat hardware
intersecţia coloanei pe care se află O şi a liniei de pe care se citeşte Ose află tasta care rol al,l
s-a acţionat. jnc tas4
Diodele au fost prevăzute în scopul protecţiei liniilor Data5, Data6, Data7. Dacă, rol al,l
de' exemplu, la un moment dat se generează O pe linia Data5 şi I pe liniile Data6, Data? jnc tas7
'l_ ro l al, l
şi se acţionează simultan pe tastele I şi 2 atunci, în cazul lipsei diodelor, linia Data6 va
~ jc etl
fi forţată la O, ceea ce va duce, foarte probabil la distrugerea ieş ir ii respec tive. Prezenţa jmp tas s
diodelor împiedică propagarea nivelului O până la pinul Data6. Nivelul O se va propaga etl: dec dx
doar până în anodul diodei de pe această linie şi nu se va produce nici o distrugere. mov al , Obfh ;O pe d6
Conectarea diodelor introduce şi un dezavantaj şi anume nivelul de O logic citit out dx,al
la liniile de stare va fi afectat de căderea de tensiune pe diodă care este de 0,7 V pentru inc dx
in al,dx
o diodă cu siliciu şi 0,2 V pentru o diodă cu germaniu. Pentru a nu ajunge la valoarea ro l a l , l
limită pe care o acceptă o intrare, pentru O logic, este necesar ca diode le folosite să fie jnc etO
cu germaniu. jmp .t as2.
etO: rol al,l
;programul citeste o tastatura mecanica cu 12 contacte jc e t 2
. model small jmp tasS
.s tack et2: r ol al,l
.data jc et3
tas tal db "Tasta l!" jmp tasB
tasta2 db "Tas ta 2!" et3: r o l al,l
tasta3 db "Tasta 3 ! „ jc et4
tasta4 db "Tasta 4 ! (1 jmp taso
tastaS db "Tasta 5 ! " et 4 : dec dx
tasta6 db "Tasta 6!" mov a l,7 fh ;O pe d7
tasta? db "Tasta 7 ! „ au t dx, al
tasta8 db "Tasta 8 ! „ inc dx
202 SJS'J'l·:MJ·; <:l.I MICR\ WJ{( H .l~Sf l .\l{I; t:ap. 7. <:nmnnJa aplica~iilor cxrL· rn ~ cu microcalculawrul PC
in al,dx
rol al,l ~: i n al ,dx
?rol ' al, 1
jnc er:S
jmp tas3 rol al , 1
etS: rol al,l jnc tasS
jc et6 mov ex, 8
jmp tas6 mov si,offset tasta5
et6: rol al,l call afis
jc et7 jmp final
~: in al,dx
jmp tas9
ro1 al , 1
et7: rol al,l rol al,l
jc et8
jmp tasd· rol al,l
etB:dec clx jnc tas8
jmp reia mov cx,8
mov si,offset tasta8
tasl: in al,dx ;se asteapta dezactivarea tastei call afis
?'Ci-:l'â1, 1 jmp final
jc tasl
tasO: in al,dx
mov cx,8 ;afisare mesaj ror- al, l
mov si,offset tastal rol al, l
call afis rol al,l
jmp final
tas4: in al,dx rol al,l
~-or- al' 1 jnc taso
rol al,l mov cx,8
jnc tas4 mov si,offset tasta O
mov cx,8 call af is
jmp final
mov si,offset tasta4 tas3: in al,dx
call afis
jmp final -r'6'.f a 1 ' 1
jc tasJ
.ţaş_7 : in al, dx
ror·--al, 1 mov cx,8
rol al,l mov si,offset tasta]
rol al,l call afis
jnc tas7 j mp fin5.l
mov cx,8 tas6: in al ,dx
··?ora1.1
mov si,offs et tasta? rol al, l
call afis jnc tas6
jmp final mov cx,8
tass: in al,dx mov si,o.ffset tasta6
r'OT ·a1, 1 call af is
rol al,l
jmp final
rol al,l
rol al,l .t;as9: in al , dx
·f6T""a1, 1
jnc tass rol al,!
mov cx,8
rol al,1
mov si,offset tastas jn.:: tas9
call afis
mmr cx,8
jmp final
tas2: in al,dx mov si,offset tasta9
ror al, 1 call afis
jmp final
jc tas2
mov cx,8 tasd: in al,dx
mov si,offset tasta2 rol al,l
call afis rol al,l
jmp final rol al, 1
rol al,l

S-ar putea să vă placă și