Sunteți pe pagina 1din 12

1. Scopul lucrrii: Studierea algoritmului de funcionare i a timpilor de efectuare a operaiilor a microprocesorului I8080, familiarizarea cu modurile de adresare.

Proiectarea numrtorului programabil. 2. Noiuni teoretice 2.1. Algoritmul de funcionare a microprocesorului Intervalul de timp necesar procesorului de a sc imba informaia cu e!teriorul este denumit ciclul"main. Intervalul de timp necesar pentru e!ecuia unei instruciuni este denumit ciclul"instruciune. #!ecutarea unei instruciuni $ciclul instruciune% &n funcie de comple!itatea se necesit de la ' p(n la ) cicluri maina $*'"*)%. +a r(ndul sau fiecare ciclu main este compus de la , p(n la ) stri $-', -., -,, -/, -)%. 0 stare fiind definit ca o perioad a semnalului de tact '. 1n primele , stri ale primului ciclu"main $*'% primul octet al instruciunii este adus din memorie &n registru de instruciuni. Starea -/ este utilizata pentru decodificarea codului instruciunii. 2aca instruciunea este compusa dintr"un singur octet este necesara i starea -) pentru e!ecuia acesteia $in astfel de cazuri ciclul"instruciune necesita un singur ciclu"main ce consuma ) stri%. 2aca instruciunea este compusa din . sau , octet, dup ciclul 3#-45 $*'% $aducerea codului instruciunii% mai este necesar i alte cicluri"main. 3iecare ciclu main din cele ) posibile realizeaz o anumita operaie e!primata prin cuv(ntul de stare $citire, &nscriere etc.%. 6ceste operaii sunt &nlnuite &n cadrul ciclului"instruciune &n funcie de tipul instruciunii, dar ca regula se tie ca totdeauna primul ciclu cu care &ncepe instruciunea este 3#-45. Pentru fiecare ciclu"main *P genereaz semnalul de sincronizare S784 din fiecare din cele ) cicluri"main posibile *P genereaz un cuv(nt de stare ce indic spre e!terior ce fel de operaii se realizeaz &n ciclul"main curent. 2eci magistrala de date este multiple!ata &ntre cuv(ntul de stare i datele de intrare sau ieire din *P. Pentru ciclurile"main i ciclurile" instruciune se pot scrie relaiile de timp: 4I4+9 *6:I8; < -'=-.=->ait=-,=-/=-) 4I4+9 I8S-?94@I98# < *'=*.=*,=*/=*)

3ig...' *icrocipul de sincronizare

Pentru generarea semnalelor de tact . se utilizeaz un circuit generator de orologiu $integrat separat de 8080%. 6cesta este circuitul 8../ AP )80 B3./ care e destinat pentru sincronizarea micro"sistemelor pe baza microprocesoarelor &n studiu. Beneratorul &n afara de semnalele ' i . mai produce semnalele ?#627 i ?#S#-. -otodat mai produce semnalul pentru strobarea cuv(ntului de stare S-SC pe durata impulsului S784. 4onectarea generatorului de orologiu este dat &n fig...'. *P are '0 tipuri diferite de operaii caracterizate fiecare de un cuv(nt de stare. ?ealizarea unei instruciuni se reduce la &nlnuirea a ma!im ) din aceste operaii $fiecare operaie e!ecut(ndu"se pe durata unui ciclu main%. 4uv(ntul de stare PSD ce corespunde ciclului"main &n curs este generat de *P pe durata semnalului S784 multiple!at pe magistrala de date. 2eoarece magistrala de date va fi folosita pentru ve icularea datelor &ncep(nd cu -, &nseamn ca pentru pstrarea cuv(ntului de stare pe &ntreaga durata a ciclului"main, acest cuv(nt de stare trebuie introdus intr"un registru. &n acest scop microprocesorului i se ataeaz circuitul integrat 8..8 sau AP )80 CA .8, care este un amplificator de bufer de magistrala bidirecional i latc pentru cuv(ntul de stare. 2eoarece din cuv(ntul de stare &n AP )80 CA .8 se vor obine anumite semnale de control, acest circuit este denumit i controler de sistem. *P &mpreuna cu generatorul de orologiu , amplificatorul de magistrala i controlerul de sistem formeaz modul de unitate centrala de procesoare. Pe durata impulsului S784 cuv(ntul de stare generat de *P pe magistrala de date este &nscris &n controlerul de sistem care este strobat $validat% de ctre semnalul de strob S-S-C produs de generatorul de orologiu. Tabelul 2.1 Mnemonicele biilor pentru Procesor State Word
4onfirmare intrare &n 56+0 ' ' 0 ' 0 ' 0 0 6ducerea instr. Cit mag. date Scriere ieire 4itire intrare 4itirea instr. Scriere stiva 4onfirmare &ntrerupere 8 ' ' 0 0 0 ' 0 0 4onfirmare 56+G 0 ' 0 ' 0 0 0 ' 4itire stiva / 0 ' ' 0 0 0 0 ' Scrierea memoriei , 0 0 0 0 0 0 0 0

20 I8-6 2' D0 2. S-64A 2, 56+-6 2/ 092) *' 2E I8P 2F *#*?

' 0 ' 0 0 0 ' 0 '

. 0 ' 0 0 0 0 0 '

) 0 0 ' 0 0 0 0 0

E 0 0 0 0 ' 0 0 0

F ' ' 0 0 0 ' 0 0

I8-6 I8-6 I8-6 IH0 D IH0 D

*#* *#* *#* *#* *#* ? D ? D ?

#!plicaiile pentru mnemonicele biilor de PSD sunt &n -ab. '. 9nul din aceste semnale este I8-6. 20. #ste bitul care indica faptul ca o &ntrerupere prezentata microprocesorului a fost acceptata $numai daca fanionul intern de

autorizare a &ntreruperii are valoarea '%. 6cest bit apare &n ciclurile"main I8-?#?9P#?# i 56+- I8-?#?9P#?#. &n cursul acestor tipuri de cicluri prin configurarea lui 20 cu semnalul 2CI8 se obine un semnal cu care se poate &ncrca &n acumulator un cuv(nt de pe magistrala de date 2C6S#. 6cest cuv(nt este generat de ctre perifericul ce a solicitat &ntreruperea fiind considerat o instruciune ?#S-6?- sau 46++. 2e fapt acest cuv(nt conine adresa subrutinei necesare perifericului solicitatI D0 $D?I-# 09-P9-%, 2'. 6cest bit evideniaz faptul ca ciclul care debuteaz va realiza o operaie de transfer de informaie de la procesor &nspre e!terior. 6ceste cicluri $c(nd D0 este activ% corespund &nscrierii &n memorie $stiva% sau la un periferic. S-64A, 2.. 2eoarece stiva se realizeaz &n memoria e!terna acest bit difereniaz intre operaiile citireH&nscriere stiva i operaiile &nscriereHcitire memorie. &n acest ciclu pe magistrala de adresare se afla adresa v(rfului stivei. 5+-6, 2,. 6cest bit este prezentat &n ciclurile de tip 56+I8-?#?9P#?# i semnalizeaz e!teriorul ca *P si"a blocat &n urma e!ecutrii unei instruciuni 56+-. 2eblocarea *P se poate face fie printr"o &ntrerupere e!terna $daca I8-#<'% fie printr"o comanda de iniializare ?#S#-. 09-, 2/. #ste pus acest bit c(nd se efectueaz operaiile de ieire la un periferic. Intr"un astfel de ciclu magistrala de adresare conine adresa perifericului, iar cea de date cuv(ntul transmis la periferic valid &n momentul c(nd semnalul D? devine activ. *'"2). Citul ) din cuv(ntul de stare apare totdeauna &n primul ciclu de citire a instruciunii $3#-45%. 6pare i &n ciclurile &ntrerupere, 56+I8-?#?9P#?# deoarece &n acestea se citete o instruciune ?#S-6?- sau 46++. I82"2E.4a i bitul 2/ acest bit indica lucrul cu perifericul, dar sensul informaiei este de la periferic la procesor, adic de intrare. 1n acest ciclu magistrala de adrese conine adresa perifericului, iar pe magistrala de date perifericul trebuie s plaseze cuv(ntul care s fie valid &n momentul c(nd *P activeaz semnalul 2CI8. *#*?, 2F. 9ltimul bit al cuv(ntului de stare identifica un ciclu de citire a memoriei. Informaia din memorie trebuie s fie valida pe 2P la apariia semnalului 2CI8. -abela celor '0 cuvinte de stare generate de *P pe durata semnalului sJnc precum i semnalele obinute pentru magistrala de control vezi fig..... Pentru cele '0 cuvinte de stare diferite controlerul de sistem produce printr"o logica interna ) semnale de control $care formeaz propriul zis semnalele magistralei de control% 6ceste semnale de control sunt: *#* ?<2F K 2CI8 #ste generat prin ecuaia de mai sus i apare &n ciclurile c(nd se efectueaz o citire la memorie: *#* D < 2/ K D? 6pare &n ciclurile de scriere a memoriei. IH0? < 2E K 2CI8 6pare &n ciclurile de citire a unui periferic IH0D < 2/ K D? 6pare &n ciclurile de &nscriere a unui periferic.

I8-6 < 20 K 2CI8 6pare &n ciclurile de acceptare a unei &ntreruperi &n scopul forrii din e!terior pe 2C a codului unei instruciuni ?#S-6?- sau 46++. Se observa ca semnalele magistralei de control &n contrast cu informaia coninut &n cuv(ntul de stare &nglobeaz at(t informaia despre tipul de ciclu cit i relaii de timp select(nd acel interval de timp din cadrul ciclului care este destinat pentru transmitereaHrecepionarea pe magistrala de date a informaiei ctre destinaiile e!terne sau provenind de la sursele interne. Pe de alta parte informaia coninuta &n PSD este mult mai bogata &n sensul ca din cele '0 tipuri de cicluri posibile numai ) sunt prezentate e!plicit prin semnalele magistralei de control, unele din ele fiind suprapuse din punct de vedere al funcionarii memorieiHdispozitivelor periferice. 2e aceia dac uneori este nevoie de un bit din cuv(ntul de stare, acesta trebuie LprinsM pe durata semnalului S784 i memorat &ntr"un registru. Pentru o &nelegere mai amnunita a funcionarii microprocesorului se va e!plica algoritmul de &ndeplinire a unui ciclu main tipic $fig....%. Pe durata strii -' coninutul numrtorului de adrese P4 este transmis pe 6C $magistrala de adrese% i se genereaz semnalul S784 ceea ce determina la r(ndul sau ca pe 2C $magistrala de date% s se transmit cuv(ntul de stare . 6cest cuv(nt de stare este totdeauna 3#-45 daca ciclul main este *'. Sgeile care pornesc din fronturile cresctoare ale lui -. indica semnalele generate $cu anumite &nt(rzieri% de acest front. Stare -' este totdeauna urmata de starea -. $fig....%, pe parcursul creia se testeaz semnalele ?#627, 5+-6 i 50+2. 2aca ?#627<', iar 5+-6<50+2<0 se trece &n continuare &n starea -,. Pe durata strii -, informaia e!trasa din memorie este accesibila pe 2C i transferata &n registrul de instruciuni I?. &n dependenta de tipul instruciunii &n e!ecuie ciclul"main este complet dup starea -,, -/, -). &n starea -/, decodificatorul &mpreuna cu unitatea de control genereaz semnale necesare transferurilor interne. +a sf(ritul strii -/ se testeaz daca ciclul curent este complet. &n caz afirmativ se continua cu starea -' a ciclului main urmtor *.. 9nele cicluri necesita i starea -) dup care se trece la -' &n ciclul *. &nafara situaiei c(nd ciclul instruciunii a necesitat doar un ciclu"main. Pe durata ultimei stri a ultimului ciclu main al fiecrei instruciuni se testeaz semnalul de cerere &ntrerupere I8-. 2aca I8-#<' i a fost validata posibilitile de &ntrerupere, atunci *P trece la deservirea perifericului, care a cerut &ntreruperea, printr"un ciclu *' special. &n acest ciclu *' special se trimite &n stiva adresa din P4, se oprete incrementarea numrtorului de adrese i la generarea de ctre *P a semnalului de acceptare &ntrerupere I8-6<0, perifericul trebuie s pun pe magistrala de date instruciunea ?S-, care e!prima adresa $ce va fi &ncrcata &n P4% unde se afla prin instruciune din subrutina deservirii a perifericului. 2aca ?#627 <0 se trece &ntr"o stare de ateptare D6I- notata prin ->. 1n starea -> microprocesorul poate rm(ne un numr multiplu de perioade - nelimitat. Semnalul ?#627<0 permite ca *P s se sincronizeze $sa atepte% cu memorii e!terne sau perifericele cu funcie mai lenta.

3ig.... 6lgoritmul de &ndeplinire a unui ciclu main tipic. *P confirma intrarea &n starea -> prin generarea semnalului D6I-<'. 2in starea -> se iese odat cu venirea semnalului ?#627<'. 1n starea -., dac

semnalul ?#627<' i 50+2<' se stabilete &n N'O un bistabil interior $bistabilul indica la cerere ca *P s elibereze magistralele%. Starea 5+26. *agistralele vor fi eliberate &n stare -, $daca ciclul curent introduce informaii &n *P%, &n stare -/ $daca ciclul curent e!trage informaii din *P%.+a preluarea administrrii magistralele *P trece &n totdeauna &n starea -' a urmtorului ciclu main. &n starea de oprire, starea 56+-, *P trece daca semnalul 56+- $ format &n ciclul *. a instruciunii 5+-% este egal cu N'O. &n aceasta stare magistralele interne de date i adrese trec &n starea de &nalta impedana, semnalul de ieire D6I-<', iar e!ecutarea programului este oprita. ?eluarea e!ecutrii programului dup ce s"a &nt(lnit instruciunea 5+-, poate fi fcuta doar de ctre o cerere de &ntrerupere I8-<' sau o reiniializare a *P comandat cu semnalul de iniializare ?#S#-. Instruciunea 5+- poate fi privit ca o operaie de ateptare p(n c(nd apare o &ntrerupere. 2up re&ntoarcerea din subrutina de servire a &ntreruperii prin care s"a forat ieirea din starea 56+- se reia e!ecutarea programului de la instruciunea imediat urmtoare instruciunii 5+-. 2aca &ntreruperile nu sunt autorizate prin instruciunea #I &nainte de a surveni 5+-, *P nu va mai putea iei din starea 56+- dec(t printr"o reiniializare a sistemului $semnal ?#S#- cu pornire de la adresa 00005%. 2in starea 56+microprocesorul poate trece &n starea 5+26 daca semnalul 50+2 este egal cu '. 2aca 50+2<0 *P se re&ntoarce &n starea de oprire 56+-. 0peraiile care au loc &n stare -, s(nt determinate de tipul de ciclu main &n curs de e!ecuie. 1ntr"un ciclu de e!tragere a instruciunii *P interpreteaz informaia de pe 2C ca o instruciuneI iar intr"un ciclu de citire a memoriei sau a stivei, informaia de pe magistrala de date va fi interpretata ca o data. *P plaseaz datele pe 2C &n starea -, a ciclurilor main de scriere a memoriei sau a stivei. 2.2. Modurile de adresare a MP I ! ! Performanele oricrui *P sunt puternic afectate de modul cum reuete sa aduc $citeasc% si sa duca $&nscrie% datele &n memorie. *P trebuie sa genereze un cuv(nt de 'E bii pentru adresarea locaiei de memorie &n care este stocata data ce urmeaz a fi procesata. 3elul cum se construiete $determina% adresa locaiei de memorie este denumit mod de adresare. *odul de adresare afecteaz pronunat timpul necesar si memoria consumata pentru realizarea unei instruciuni. 6cestea sunt argumentele pentru faptul ca *P " le sunt &nzestrate cu tot mai multe posibilitatea de implementare a modurilor de adresare. I8080 permite E moduri de adresare: adresare imediataI adresare directaI adresare implicitaI adresare a registrelorI adresare cu registru perec e $adresare indirecta prin registre%I adresare combinata.

Adresare imediat +a adresarea imediat operandul necesar &n procesare este situat imediat dup baitul ce reprezint codul operaiei. Instruciunile cu adresare imediata sunt cu operanzi de un bait sau . baii, ocup(nd &n memorie evident . respectiv , locaii. $3ig...,%

3ig..., 6dresarea imediat "#emplu$ *PI 6, 0)5 Instruciunile cu adresare imediat sunt utilizate pentru introducerea constantelor $simple sau duble% &n calcul. 1n cazul c(nd constanta este dubl instruciunea se folosete pentru introducerea unei adrese &ntr"o perec e de registre, care apoi se va utiliza pentru adresarea memoriei $adresare cu registru perec e%. Adresare direct #este cel mai simplu mod de adresare a memoriei. 3iecare instruciune cu adresare directa conine adresa locaiei de memorie &n care se afla operandul necesar procesrii. Instruciunile ocupa , locaii succesive &n memoria de programe. &n prima locaie de memorie este codul operaiei, &n a doua locaie este bJtul cel mai puin semnificativ, iar &n a , locaie Q baitul cel mai semnificativ al adresei. ?ezult ca o astfel de instruciune necesita , citiri la memorie $cicluri" main% pentru aducerea operandului. &n consecina o instruciune cu adresare directa consuma multe stri ale *P.

3ig. ../ 6dresarea direct "#emplu$ +26 80E05 Adresare implicit #!ist unele instruciuni care prin &nsi formatul binar$codul operaiei% indica implicit registrul ce ia parte la operaie. 2e e!emplu instruciunea 266 implicit se refera doar la acumulator. -oate instruciunile operaiilor logice si aritmetice folosesc acest mod de adresare. Adresarea registrelor 6cest mod de adresare se folosete c(nd operandul implicat &n procesare se afla &n unul din registrele interne $6, C, 4, 2, #, 5, +%. Instruciunile care folosesc adresare la registru conin &n formatul binar de un bait codul instruciunii si codurile registrelor implicate. 9ltimii , bii mai puin semnificativi vor codifica registrul sursa $al operandului%. 9rmtorii , bii Q registrul destinaie, iar primii . bii mai semnificativi codul operaiei. 3iecrui registru al *P i se impune un cod unic. "#emplu$ *0P C4

Adresare cu registru perec%e 6dresa unei locaii de memorie &n care se afla data necesara poate fi specificata prin coninutul unui registru perec e ca &n fig...).

3ig. ..) 6dresarea prin registru perec e "#emplu$ *0P 6, * Prin utilizarea adresei din registru perec e instruciunea nu mai necesita . baii &n plus $ca sa indice adresa% ca la cea cu adresare directa, de aceea acest mod de adresare micoreaz spaiul folosit &n memoria de programe, iar viteza de aducere a datelor creste deoarece scade numrul cipurilor de citire a memoriei. 0 utilizare obinuit pentru adresarea cu registrul perec e este &n manipularea tabelelor de date &n memorie. 6ceasta manipulare a tabelelor se bazeaz pe faptul ca adresa de &nceput este &ncrcat intr"un registru perec e, iar dup fiecare citire $sau &nscriere% a memoriei coninutul registrului perec e este incrementat sau decrementat, deci este posibila adresarea locaiei urmtoare. 2e obicei registrul perec e 5 este cel mai utilizat pentru acest mod de adresare, dar sunt instruciuni care permit si adresarea cu registrele C si 2. "#emplu$ S-6R CI +26R CI +26R 2I S-6R 2I Adresare combinat 9nele instruciuni au un mod de adresare compus din modurile prezentate anterior. 2e e!emplu instruciunea *0P 6, *, folosete si modul de adresare implicit si modul de adresare &n registrul perec e sau instruciunea de apelare a unui subprogram 46++ necesita o adresare directa urmata de o adresare cu registrul perec e, mai e!act cu registrul indicator de stiva.

&. Mersul lucrrii Proiectarea numrtorului programabil

L1

L2

L3

L4

L5

V1 5V

U7B U5A V2 0V U7C U7A U1A


J CP K S Q _ Q

U1B U4A
J CP K S Q _ Q

U5C U4B U5D


J CP K S Q _ Q

U6A U2B U6B U4C


J CP K S Q _ Q

U6C U3A U6D U4D


J CP K S Q _ Q

U2A

U5B

R
V3 0V V4 0V V5 5V

U8A

U8B

U10A U11B

U10B

V6 5V

U11A

U10C

U8C

V7 0V

U8D

U9A

Fig. 3.1

8umarator programabil

2at fiind faptul c numrtorul programabil, figura ,.', este realizat &n baza a cinci bistabile SA sincrone, acesta va fi capabil s numere de la zero p&n la treizeci i unu. Ideea unui astfel de numrtor, este de a numra impulsurile de intrare, p&n la o anumit valoare predefinit. Procesul de numrare poate fi at&t direct, de la zero p&n la valoarea stabilit, c&t i invers, de la trezeci i unu p&n la aceeai valoare prealabil stabilit. 1n construcia dispozitivului intr un comparator, format din cinci elemente logice Nsau cu e!cludereO, funcia cruia fiind de a &nscrie &n numrtor valoarea binar a numrului p&n la care va fi efectuat numrarea, i de a o compara cu valoarea binar a numrului de impulsuri sosite, i &n caz c&nd aceastea vor fi egale, de a reseta numrtorul. Prin intermediul c eiei 9FC setm regimul de numrare, direct sau invers. +a c eia 9F4 se aplic impulsurile de sincronizare care i se numr.

'onclu(ii$ 8umrtorul de impulsuri este un dispozitiv numeric secvenial, destinat numrrii impulsurilor &n sistemul binar de numeraii. 9na dintre caracteristicele de baz a numrtoarelor de acest tip este c bistabilele trec &n starea urmtoare concomitent. Structura numrtoarelor const &n aceea c elementul .":I"S69 &ntrunete ieirile bistabilului i magistralele de comand a direciei de numrare. 1n aa mod la intrarea bistabilului se ia &n consideraie at&t semnalul de comand a direciei de numrare, c&t i starea bistabilului precedent. 8umrtorul programabil, proiectat &n aceast lucrare de laborator, reprezint o parte component fundamental care intr &n structura procesorului Intel 8080. 4u aTutorul la asemenea numrtoare, se pot accesa consecutiv celule de memorie, pentru &nscrierea sau citirea informaiei, este posibil operarea cu registrele P4 i SP, din cadrul *icroprocesorului, increment&nd i decrement&nd informaia.

*I8IS-#?9+ #2946@I#I 6+ ?#P9C+I4II *0+20P6 98IP#?SI-6-#6 -#58I4; 6 *0+20P#I 3649+-6-#6 ?62I0#+#4-?08I4; SI -#+#40*98I46@II 46-#2?6 SIS-#*# 0P-0#+#4-?08I4#

26?# 2# S#6*; )a lucrarea de laborator Nr 2 Tema$ Studiul algoritmului de funcionare *i de adresare a microprocesorului intel ! !. Proiectarea numrtorului programabil. )a diciplina$ Structuri Microprocesorale

A efectuat St. gr. S+",! 1

8eagu B eorg ii.

A -erificat )ect.uni-. Uubco 6.

45I:I8;9 .0'0

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