Structura microprocesorului

30
1 Structura unui microprocesor DefiniŃii Sunt prezentate câteva defini Ń ii strict necesare pentru în Ń elegerea no Ń iunilor ce vor urma. De asemenea, este prezentat ă arhitectura foarte general ă a unui sistem de calcul, care nu necesit ă multe cuno ş tin Ń e pentru a fi bine în Ń eleas ă . Pornind de la aceasta, vor fi dezvoltate arhitecturi reale foarte diverse ş i complicate. 1.1 Câteva definiŃii Vom defini cuvintele ce vor fi utilizate foarte frecvent în lucrare, care sunt de fapt larg folosite în informatic ă . Chiar dac ă defini Ń iile nu coincid total cu cele ale Academiei, au meritul de a fi simple ş i clare. Circuit integrat - component ă electronic ă de mici dimensiuni, (cu suprafa Ń a mă surat ă în milimetri p ă tra Ń i) ce conŃ ine un numă r de tranzistoare elementare interconectate; el poate avea func Ń ii cablate sau programate. Circuitele integrate sunt clasificate în mai multe categorii, în func Ń ie de densitatea de integrare: circuite integrate simple, circuite integrate pe scar ă medie (MSI - Medium Scale Integration ), circuite integrate pe scar ă largă (LSI - Large Scale Integration ), circuite integrate pe scar ă foarte largă (VLSI - Verry Large Scale Integration ), etc. Dup ă dezvoltarea explozivă a circuitelor integrate în ultimii ani, aceste no Ń iuni au început s ă devină desuete. Unitate central ă sau Unitate central ă de procesare este acea component ă a unui calculator care realizeaz ă prelucrarea datelor pe baza unui program ş i controlul întregului sistem. Se utilizeaz ă frecvent nota Ń ia CPU ( Central Processing Unit ) ceea ce desemneaz ă de data aceasta în mod exclusiv un microprocesor. Microprocesor - este un circuit integrat (LSI, VLSI) cu mii de tranzistoare în structur ă care realizeaz ă func Ń iile unit ăŃ ii centrale dintr-un calculator. Microcalculator - sistem de calcul în care unitatea central ă este un microprocesor; un microcalculator mai cuprinde: blocuri de memorie, circuite pentru transferul informa Ń iei (porturi de intrare - ie ş ire) ş i dispozitive periferice - tastatur ă , monitor, unitate de discuri, imprimant ă etc. 1

description

structura unui microprocesor

Transcript of Structura microprocesorului

  • 1 Structura unui microprocesor Definiii

    Sunt prezentate cteva definiii strict necesare pentru nelegereanoiunilor ce vor urma. De asemenea, este prezentat arhitectura foartegeneral a unui sistem de calcul, care nu necesit multe cunotinepentru a fi bine neleas. Pornind de la aceasta, vor fi dezvoltatearhitecturi reale foarte diverse i complicate.

    1.1 Cteva definiii Vom defini cuvintele ce vor fi utilizate foarte frecvent n lucrare,

    care sunt de fapt larg folosite n informatic. Chiar dac definiiile nucoincid total cu cele ale Academiei, au meritul de a fi simple i clare.

    Circuit integrat - component electronic de mici dimensiuni, (cusuprafaa msurat n milimetri ptrai) ce conine un numr detranzistoare elementare interconectate; el poate avea funcii cablate sauprogramate. Circuitele integrate sunt clasificate n mai multe categorii, nfuncie de densitatea de integrare: circuite integrate simple, circuiteintegrate pe scar medie (MSI - Medium Scale Integration), circuiteintegrate pe scar larg (LSI - Large Scale Integration), circuite integratepe scar foarte larg (VLSI - Verry Large Scale Integration), etc. Dupdezvoltarea exploziv a circuitelor integrate n ultimii ani, aceste noiuniau nceput s devin desuete.

    Unitate central sau Unitate central de procesare este aceacomponent a unui calculator care realizeaz prelucrarea datelor pe bazaunui program i controlul ntregului sistem. Se utilizeaz frecvent notaiaCPU (Central Processing Unit) ceea ce desemneaz de data aceasta nmod exclusiv un microprocesor.

    Microprocesor - este un circuit integrat (LSI, VLSI) cu mii detranzistoare n structur care realizeaz funciile unitii centrale dintr-uncalculator.

    Microcalculator - sistem de calcul n care unitatea central este unmicroprocesor; un microcalculator mai cuprinde: blocuri de memorie,circuite pentru transferul informaiei (porturi de intrare - ieire) idispozitive periferice - tastatur, monitor, unitate de discuri, imprimantetc.

    1

  • Hardware - totalitatea componentelor materiale ale unui sistem decalcul (structuri mecanice, cabluri, cutii, circuite, etc.).

    Software - totalitatea componentelor imateriale (programe de sistemi de aplicaii) cu care este dotat un sistem de calcul. Pentru programelecomplexe, nu exist nici o metod de verificare care s garanteze c estefr erori de concepie. Doar utilizarea ndelungat n practic a unuiprogram poate duce la detectarea i eliminarea total a erorilor.

    Sistem de operare - totalitatea programelor care permitutilizatorului accesul deplin la toate resursele sistemului. Conineprograme cu denumiri specifice dup funciile realizate, care asiguraccesul la echipamentele periferice (tastatur, monitor, uniti externe dememorie etc.) organizarea informaiei sub form de fiiere i o gam largde operaii asupra acestora (deschiderea, nchiderea, transferul, afiarea,crearea, tergerea, modificarea i altele). Cele mai rspndite sisteme deoperare sunt MS-DOS, WINDOWS i UNIX.

    Noiunea de memorie. Nu se poate nelege funcionarea unuisistem programabil, ca microprocesorul de exemplu, fr a stpninoiunea de memorie.

    S considerm, de exemplu, o comod cu mai multe sertaresuprapuse, pe care le numerotm. Numrul fiecrui sertar este ceea ce

    numim n general adres iarsertarul este n informaticlocaie de memorie. Pentrusistemul de calcul, memoriaeste un ir finit de locaiinumerotate (fig.1). O locaie este definit dedou entiti informaionale:coninutul i adresa.

    Coninutul este un ir decifre binare 0 sau 1 (BinaryDigit = bit) care poatereprezenta o dat (un numrsau un caracter n cod binar, ostare, etc.) sau o comand(instruciune). Numrul decifre binare dintr-o locaiereprezint dimensiunealocaiei (formatul memoriei)(pentru 8 bii se utilizeazdenumirea "octet" iar pentru

    16 bii - "cuvnt").

    2

    0 1 0 1 0 1 0 1 0 0 0 1 1 1 0 1

    Celule (locaii) de memorie Adrese

    0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 1 0 1 1 1 0 1 1 1 1 1 0 0 0 1 0 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 0 1 0 0 1 1 0 0 1 11 1 0 0 0 0 1 10 0 0 0 1 1 1 11 1 1 1 0 0 0 0

    0 0 0 00 0 0 10 0 0 20 0 0 30 0 0 40 0 0 50 0 0 60 0 0 70 0 0 80 0 0 90 0 1 00 0 1 1

    Fig. 1. Reprezentarea memoriei (locaii de 8 bii)

  • Adresa este numrul de ordine al unei locaii de memorie; adresapermite identificarea fiecrei locaii n irul ordonat de locaii cealctuiesc memoria unui sistem de calcul.

    Structura memoriei organizat pe locaii, cu delimitarea anumitorzone este numit "harta memoriei".

    Se pot evidenia dou astfel de zone:- Memoria de date (locaiile conin "date");- Memoria de programe (locaiile conin instruciuni codificate).

    Instruciunea reprezint cea mai simpl operaie (comand) pe careo poate transmite programatorul ctre o unitate central (care poate fi unmicroprocesor). Unitatea central poate recunoate i executa numaiinstruciunile codificate pentru care a fost construit; acestea formeazsetul de instruciuni caracteristic unitii centrale.

    Un ir de instruciuni, organizate logic dup un algoritm, formeazun program; prin intermediul programului, utilizatorul transmite sistemuluide calcul o anumit sarcin privind prelucrarea datelor (task). Noiuneade task este mai larg dect cea de program: exist sarcini pentru a crorndeplinire sunt necesare mai multe programe.

    Magistrala este un ansamblu de conexiuni electrice prin carecircul informaie de acelai tip avnd ca suport semnale electrice; nfuncie de tipul informaiei, magistralele sunt de trei categorii: de date, deadrese i de control. O caracteristic de baz este dimensiuneamagistralei, adic numrul liniilor de conectare; avem astfel magistrale de8 bii (cu 8 linii de conectare), magistrale de 16 bii (cu 16 linii deconectare), etc. Dimensiunea fiecrei magistrale este determinat destructura unitii centrale i determin la rndul su structura memoriei(numrul de bii pe locaie) i a porturilor de intrare / ieire.

    Prin cuvntul magistral se nelege de regul i ansamblul decircuite electronice (amplificatoare uni- sau bi-direcionale) care sporescputerea semnalelor electrice (pentru fan-out mai mare) i aduc nivelul(tensiunea) la valoarea standard.

    Magistralele unidirecionale pot transmite informaia ntr-un singursens iar cele bidirecionale, n ambele sensuri (sensul de transmisie estecontrolat de unitatea central). Magistrala de adrese este unidirecional(de la unitatea central spre sistem) iar magistralele de date i de controlsunt bidirecionale.

    La o magistral se cupleaz n paralel mai multe blocuri de acelaitip sau de tipuri diferite; acestea devin active succesiv sub comandaunitii centrale; astfel UC coordoneaz toate transferurile din sistem.

    3

  • 1.2 Structura sistemelor de calcul

    Orice sistem numeric de prelucrare a datelor, primete din exteriordate binare pe care le prelucreaz pe baza unor programe de lucruexistente n memorie. Rezultatele prelucrrii sunt transmise ctre exteriorprin uniti specializate.

    Principalele componente hardware sunt vizibile n structura dinfigura 2, care este valabil att pentru sisteme simple (calculator debuzunar), ct i pentru sisteme complexe de calcul.

    UCP - unitate central de procesare (microprocesor n cazul n caresistemul de calcul este un microcalculator). Ea conine o unitatecentral de comand - UCC i o unitate aritmetic i logic - UAL; Memoria;Uniti de intrare / ieire - I/E;

    1. UCC are rol de prelucrare a datelor i de coordonare a ntreguluisistem. Prin intermediul magistralelor extrage succesiv din memorieinstruciuni, le interpreteaz i genereaz semnale de comand ctreunitile de prelucrare a datelor. Operaiilor aritmetice i logice suntefectuate de unitatea UAL.

    2. Memoria pstreaz programe i date. Programele sunt stocate nmemorie sub form de iruri de instruciuni iar datele sunt operanzi saurezultate ale prelucrrilor. Datele sunt numere binare (iruri de ''0'' i ''1'')iar instruciunile sunt comenzi de prelucrare, care dei se prezint tot ca

    UCP

    UAL

    UCC

    MEMORIA

    Mag.de adrese

    Mag. de date

    Mag. de control

    Uniti I / E

    Unitate de

    Intr/ieiri

    Unitate de intrare

    Unitate de ieire

    Figura 2. Structura unui sistem de calcul

    4

  • iruri de cifre binare, vor fi numitecoduri. Anumite zone de memorie vorfi utilizate pentru programe iar altele, pentru date.

    Controlul asupra coninutului memoriei revine exclusiv unitiicentrale; blocul de memorie nu are nici un control asupra semnificaieiinformaiei pe care o conine.

    3. Unitile sau dispozitivele de intrare/ieire (notate I/E sauInput/Output=I/O) realizeaz legtura dintre sistemul de calcul i lumeaexterioar. O unitate elementar de tip I/O este numit n mod curent portde intrare/ieire . ntre porturi i locaiile de memorie exist asemnridar i deosebiri fundamentale.

    Ca i locaiile de memorie, porturile sunt adresabile (fiecare port areo adres proprie de identificare); operaiile pe care unitatea central lepoate efectua cu porturile sunt: ''scriere port'' - transfer de date la port i''citire port'' - transfer de date de la port la UCC (aceleai operaii seefectueaz i cu locaiile de memorie).

    Deosebirea esenial fa de locaiile de memorie este legtura pecare porturile o realizeaz cu echipamentele externe (periferice):tastatur, monitor, uniti de memorie externe (disc, band), imprimant,alte echipamente specifice unor procese industriale ( traductoare,echipamente de for, de semnalizare etc.). Aceast funcie a porturilor de''puncte de frontier '' determin i alte deosebiri fa de locaiile dememorie:

    Informaia primit prin intermediul porturilor este tot timpul ''deactualitate'' - informaie nou pentru UCC.Informaia ''scris '' ntr-un port nu este stocat n mod pasiv, ca ntr-olocaie de memorie ci are efect asupra unui periferic (aprinde luminileoraului, declanaz sistemul de propulsie al unei rachete cosmice).Operaiile cu porturile sunt realizate de UCC prin instruciunispecifice, de tip IN (Input) sau OUT (Output), altele dect cele cumemoria, MOV, PUSH, POP etc.

    Din punct de vedere software, un sistem de calcul dispune de doucomponente fundamentale.

    1. Sistemul de operare - totalitatea programelor care asigur accesul

    utilizatorului la resursele sistemului ( MS-DOS, WINDOWS, UNIX etc.).Programele, cu denumiri specifice dup funciile realizate, asigur accesuli controlul dispozitivelor periferice, organizarea informaiei n memoriaintern, ncrcarea i execuia programelor de aplicaii etc.

    Fr un sistem de operare, calculatorul este o cutie inutil.2. Programele de aplicaii - introduse de utilizator n scopul

    rezolvrii sarcinilor proprii. Acestea au o varietate practic nelimitat.

    5

  • 1.3 Arhitectura de baz a unui microprocesorAcest capitol se refer la structura intern a unui microprocesor

    "standard", unitile interne fiind prezente sub form mai simpl sau maicomplex la toate tipurile de microprocesoare .

    Dei exist o mare varietate de microprocesoare, produse de diferitefirme, cu multe deosebiri n structura i tehnologia lor de fabricaie, toateau o schem structural comun, rezultat din operaiile de baz pe care leefectueaz. Caracteristicile structurale i funcionale comune rezult dinfilosofia proiectrii microprocesoarelor, ca instrumente complexe pentrurealizarea unor sisteme numerice flexibile, rapide, puternice i la un prede cost deosebit de avantajos.

    Structura de baz conine 5 uniti cu funcii specifice: unitatea decomand i control - UCC, unitatea aritmetic i logic - UAL, memoriaintern (format din registre = locaii), unitatea de adresare a memorieiexterne i unitatea de instruciuni.

    1.3.1. Memoria internEste format din registre cu dimensiunea (numr de celule de

    memorie) egal cu cea a magistralei de date.

    UAL

    A TF

    UCC

    Memorie

    Memorie (registre)

    Unitate de adresarea memoriei

    Magistrala intern de date RD

    R1R2

    Rk

    (microcod)

    externeRA

    Unitate de instruciuni

    :

    Magistrala de control

    Magistralade adrese

    Magistralade date

    Fig. 3 Arhitectura standard a unui microprocesor

    6

  • Registrele, notate R1, R2, . . . ,Rk, sunt numite "de uz general"deoarece, prin intermediul instruciunilor, n acestea se pot stoca temporardate de orice tip (numerice, alfanumerice, date de intrare - ieire, adrese,instruciuni etc.). n mod frecvent, n registrele de uz general se stocheazoperanzi i rezultate intermediare ale prelucrrilor numerice; registrelefiind conectate la magistrala intern de date, transferul datelor este rapidi facil.

    Setul de registre de uz general constituie un atribut de arhitecturdeoarece aceste registre sunt la dispoziia programatorului; acesta leutilizeaz prin intermediul instruciunilor. Pentru a fi uor de utilizat,registrele au un nume format din una sau mai multe litere: A, B, C, . . ,AX, BX, . . , EAX, EDI, EDS etc.

    1.3.2. Registrul de date i registrul de adreseDou registre, RA i RD prin care se realizeaz conectarea cu

    magistralele externe de date i adrese, au rol cu totul special n structur.

    Registrul de date RD memoreaz temporar datele magistralei pe careo deservete. Datele ce se transfer spre exterior sunt meninute pemagistral pn cnd dispozitivele externe (de regul mai lente dectprocesorul) le recepioneaz n registrele proprii. Datele transferate prinmagistral spre microprocesor se consider recepionate dup nscrierea nRD, care fiind conectat la magistrala intern de date devine surs de datepentru blocurile interne.

    DESTBC QD

    DC Q

    DI 7

    DI 6

    DI 5 DC Q

    DC Q

    DI 4

    DI 3

    DI 2

    DI 1

    DI 0 DC QDC QDC Q

    DC Q

    DO 0

    DO 1

    DO 2

    DO 3

    DO 4

    DO 5

    DO 6

    DO 7

    Fig. 4. Schema unui registru de 8 bii

    7

  • Similar, registrul de adrese RA are rolul de a menine o adres pemagistrala extern de adrese un timp suficient pentru ca memoria iporturile s o poat nregistra pentru realizarea funciei de selecie.

    Cele dou registre, RA i RD sunt invizibile pentru utilizator.n figura 4 este prezentat schema de principiu a unui registru de 8

    bii care poate fi utilizat ca tampon pentru magistrala de adrese (RA).Pentru o magistral de 16 bii, se utilizeaz dou registre de 8 bii.

    Registrul din figur are i rol de amplificator de magistral,asigurnd un fan - out de 20 intrri TTL. Informaia de la intrrile DIapare al ieirile DO pe nivelul 1 logic al semnalului STB i este memoratn cele 8 circuite basculante bistabile de tip D. Pentru ca informaia s fiedisponibil la ieiri, este necesar ca semnalul de validare DE = 0.

    1.3.3. Unitatea aritmetic i logic (UAL)Acest bloc funcional execut prelucrarea datelor. Funciile

    realizate de unitate sunt:funcii aritmetice: adunare, scdere, nmulire, mprire; funcii logice: I, SAU, SAU EXCLUSIV, NU i complement.

    Fiecare funcie este activat de o instruciune corespunztoare carefurnizeaz i operanzii implicai n operaie.

    Pentru realizarea funciilor sale, unitatea aritmetic i logicutilizeaz cteva registre speciale care fac parte integrant din UAL:

    AcumulatorulRegistru de uz general care este utilizat de UAL pentru stocarea

    unuia dintre operanzi i pentru rezultatul operaiei; din acest punct devedere are un rol cu totul special n comparaie cu celelalte registre de uzgeneral.

    Registrul FEste registrul fanioanelor de condiii (Flags) i conine celule de

    memorie independente, cu funcii specifice, pentru nregistrarea unorinformaii ce rezult din operaiile aritmetice i logice (semnulrezultatului, paritatea, existena bitului de transport sau mprumut,depirea domeniului i altele). n ansamblu, indicatorii de condiiiexprim starea unitii aritmetice i logice.

    Registrul de deplasareEste utilizat pentru deplasri spre stnga sau spre dreapta a unui

    operand. Deplasrile se pot face cu unul sau mai muli bii. Deplasareaspre stnga cu un bit este echivalent cu nmulirea cu 2 iar cea spredreapta, cu mprirea prin 2.

    La microprocesoarele de 8 bii, acumulatorul este folosit i caregistru de deplasare ns la microprocesoarele evoluate exist un registruspecial cu aceast funcie, care nu este vizibil pentru programator.

    8

  • Deplasrile spre stnga sau spre dreapta se realizeaz sub comanda unorinstruciuni specifice care acioneaz asupra unui registru de uz generalsau unei locaii de memorie. Pentru realizarea operaiei, coninutulregistrului sau locaiei se transfer n registrul de deplasare, se executdeplasarea i apoi rezultatul se transfer napoi n registru sau locaie.Pentru programator operaiile secundare sunt invizibile.

    1.3.4. Unitatea de adresare a memoriei externeRolul acestei uniti este calcularea adresei unui operand aflat n

    memoria extern, ncrcarea acesteia pe magistrala de adrese i controlultransferului ntre memorie i microprocesor.

    n memoria extern se adreseaz instruciuni i operanzi. Pentruinstruciuni se utilizeaz un registru special de adres, PC (ProgramCounter) - numrtor de program sau IP (Instruction Pointer) - indicatorde instruciuni; coninutul su crete cu o unitate dup citirea fiecruioctet.

    Pentru adresarea operanzilor (datelor) se utilizeaz registre deadresare numite ''index''. Adresa se poate obine direct din registru sauprin adunarea (scderea) unui deplasament (constant specificat ninstruciune). Adresarea datelor se poate face i direct, prin ncrcareaadresei n registrul RA; n acest caz, adresa este furnizat de instruciune.

    1.3.5. Unitatea de comand i controlCoordoneaz funcionarea tuturor unitilor interne pentru execuia

    operaiilor coninute n mod codificat n instruciuni.Funciile unitii de comand sunt:

    Extragerea instruciunii din memoria extern.Se ''citete'' instruciunea din zona care conine programul aflat n

    execuie. Instruciunea are dou zone de informaie: zona de cod, careconine operaia caracteristic instruciunii i zona de date (operanzi).Zona de cod se ncarc n registrul de instruciuni, aflat n unitatea deinstruciuni.

    Decodificarea instruciunii.Fiecare instruciune are ca efect o succesiune specific de operaii

    elementare, numite microoperaii. Secvena de microoperaii este generatde unitatea de comand pe baza codului instruciunii; determinarea acesteisecvene n funcie de cod, este numit ''decodificare''.

    Execuia propriu-zis const n activarea succesiv a unitilorinterne pentru efectuarea operaiilor din secvena corespunztoareinstruciunii.

    Codul instruciunii permite obinerea tuturor informaiilor necesareexecuiei operaiilor impuse de instruciune:

    9

  • - numrul de octei din formatul instruciunii;- tipul operaiei principale (adunare, scdere, transfer, salt etc.);- numrul operanzilor implicai n operaie;- adresa fiecrui operand ( dac este operand aflat temporar ntr-un

    registru intern, se specific acest registru; dac este operand n memorie,se specific adresa sau cum se obine adresa lui).

    Fiecare instruciune corespunde unei operaii fundamentale, care, ngeneral se realizeaz n mai multe etape. Execuia unei instruciuni este unir de operaii elementare:

    starea - corespunde unei perioade de tact (T) i este durata uneioperaii elementare (de exemplu, incrementarea unui registru);ciclul main - conine 3 - 5 stri i corespunde unei etape dinexecuia unei instruciuni (de exemplu, citirea unei locaii dememorie, transferul de date ntre un registru intern i o locaie dememorie etc.); o instruciune conine 1 - 5 cicluri main, dintre careprimul ciclu main este de citire memorie (citirea codului instr.).

    n desfurarea n timp a unei instruciuni, unitatea de comand icontrol selecteaz i adreseaz unitile interne ale microprocesorului carerealizeaz funcii specifice rolului lor.

    Realizarea concret a unitii de comand i control (UCC) estespecific fiecrui tip de microprocesor i determin multe dinperformanele sale.

    Ca structur, UCC este un automat finit, care funcioneaz pe bazaunui microprogram introdus n procesul de fabricaie. Acest microprogramnu poate fi modificat de utilizator i corespunde setului de instruciuni,fiind un interpretor de instruciuni. De aceea, setul de instruciuni este deasemenea fix pentru fiecare tip de microprocesor.

    t

    t

    T1 T2 T3 T4 T5

    CM (ciclu main)Fig.4 Diagrama semnalului de tact i delimitarea unui ciclu main

    stare stare stare stare stare

    CM

    10

  • n figura de mai sus este prezentat structura general a unitii decomand i control. Registrul de instruciuni (RI) memoreaz temporarcodul instruciunii, care este ncrcat din memorie prin intermediulmagistralei externe de date. Decodorul identific instruciunea n cadrulsetului de instruciuni; informaia privind instruciunea curent estetransferat blocului de comand.

    Blocul de comand i sincronizare, pe baza unui microprogram deinterpretare, genereaz semnalele de comand ctre unitile interne deexecuie.

    1.4 Principiul de funcionare al unui microprocesor

    Programul este compus din instruciuni care se afl n memorie.Citirea instruciunilor din memorie se face n sensul cresctor al adreselorla care sunt memorate. Activitatea microprocesorului const, n principal,n execuia instruciunilor una cte una, n ordinea n care se afl nprogram. Principalele etape sunt aadar:

    citirea instruciunii din memorie i stocarea sa ntr-un registru intern;decodarea instruciunii, adic identificarea operaiilor coninute subform codificat n instruciune;

    Magistrala de date

    Magistrala de control

    RI

    Decodor

    Bloc de comand

    i sincronizare

    . . . .

    .

    .

    . . . .

    Semnale de comand pentru unitile interne

    Semnaledecontrolinterne

    Fig. 5 Structura unitii de comand i control

    11

  • executarea operaiilor ntr-o anumit ordine.Fiecare instruciune are o anumit adres. Pentru citirea instruciunii

    este necesar ncrcarea adresei pe magistrala de adrese pentru a serealiza accesul la locaia de memorie. Microprocesorul trebuie s dispunn permanen de adresa instruciunii curente, din care, prin incrementareobine adresa instruciunii urmtoare. n acest scop se utilizeaz unregistru de adresare, numit, n general, numrtor de program (PC -Program Counter) sau indicator de instruciuni (IP - Instruction Pointer)care conserv n permanen adresa curent.

    Primul octet al unei instruciuni (uneori i al doilea) este totdeaunaoctet de cod; el este ncrcat temporar n registrul RI (registrul deinstruciuni). Un octet d o informaie direct de 8 bii, adic 16 stri,ceea ce este insuficient pentru setul de instruciuni. De aceea,instruciunile sunt codificate pe 8 bii, ceea ce permite utilizarea tuturorcombinaiilor binare, n total 256; dac se utilizeaz doi octei de cod,numrul maxim de instruciuni codificabile este 256 x 256.

    Pentru obinerea informaiei din codul instruciunii, este necesaroperaia de decodare (decodorul are 8 intrri i 256 ieiri, cte una pentrufiecare instruciune codat) i transformarea ieirilor decodorului ncomenzi electrice care urmeaz s activeze unitile interne care vorexecuta operaiile prestabilite. De exemplu, o comand de adunareactiveaz unitatea aritmetic pentru operaia de adunare.

    Decodarea instruciunii furnizeaz i informaia privind numrul deoctei pe care l conine. Astfel, unitatea central poate separainstruciunile din irul de octei al programului. Unele instruciuni coninpe lng unul sau doi octei de cod i operanzi. Acetia sunt transferai nregistrele de uz general, RI fiind rezervat exclusiv pentru coduri. Dupcitirea unui octet din program, numrtorul de program (PC) este

    Memorie

    Numrtor (PC)

    Registru de instruciuni

    Decodor

    Unitate de execuie

    Acumulator

    Unitatea decomand

    Fig.6 Etapele tratrii unei instruciuni

    Microprocesor

    12

  • incrementat (coninutul crete cu o unitate: PC+1), fiind astfel pregtitpentru extragerea octetului urmtor, care se afl n memorie la adresaurmtoare n sens cresctor.

    Registrul PC se comport asemntor cu indicatorul kilometric alunui automobil: el indic permanent numrul de kilometri parcuri icrete cu o unitate imediat ce a fost parcurs nc un kilometru.

    1.4.1. Ceasul microprocesoruluiCircuitele de comand i cele care genereaz secvenele de operare,

    pun n funciune diferite uniti interne ale microprocesorului la anumitemomente. UCC fiind un automat secvenial cu numr finit de stri,funcioneaz pe baza unor impulsuri de tact. Acestea sunt produse de ungenerator electronic pilotat de un cristal de cuar, care asigur stabilitateafrecvenei la variaia tensiunii de alimentare i a temperaturii. Generatorulde tact poate fi un circuit specializat extern sau poate fi coninut nstructura intern a microprocesorului (Fig.7).

    Frecvena impulsurilor de tact determin viteza de execuie ainstruciunilor. O operaie elementar se efectueaz ntr-o singurperioad de tact. Viteza de operare, exprimat n operaii/secund, va fi:

    v = f = 1T op/ sec .unde

    f este frecvena (n Herz) iar T este perioada (n secunde).

    De exemplu, la o frecven de 100 MHz, rezult o vitez de operarede 100 000 000 de operaii elementare pe secund.

    Nu se pot msura foarte riguros performanele unui microprocesor,deoarece nu exist un instrument cu asemenea funcie.

    Evaluarea performanelor se face prin compararea diferitelor tipuride microprocesoare ntre ele, pe baza unor criterii unanim recunoscute.

    1111

    2222

    Microprocesor Microprocesor

    Gen

    erat

    or

    de ta

    ct

    Gen

    erat

    or

    de ta

    ct

    Fig.7 Relaia generator de tact - microprocesor

    QzQz

    13

  • Viteza de operare, de exemplu, se exprim prin mai muli parametri:Frecvena de tact, exprimat n MHz; cu ct este mai mare, cu attviteza de execuie crete. Frecvena nu exprim ns foarte exactviteza de execuie a instruciunilor; n cazul apelrii la subrutine, estenecesar un interval de timp pentru schimbarea adresei curente. Unuimicroprocesor i sunt necesare 10 perioade de tact pentru a executasaltul iar altuia, 20 de perioade. Dac s-ar dubla frecvena de tact lacel de-al doilea, durata saltului rmne aceeai!Numrul de instruciuni pe secund; se exprim n MIPS (Milioane deInstruciuni Pe Secund). Durata de execuie (exprimat n perioadede tact), difer foarte mult n funcie de tipul instruciunii. Cele mailungi instruciuni sunt cele pentru operaii aritmetice n virgulmobil; de aceea, unitatea recunoscut este FLOPS (Floating PointOperation per Second).

    La compararea calculatoarelor, totul se complic, deoarece pe lngperformanele unitii centrale intervin cele de sistem: viteza de transferpe magistrale, viteza de operare a discului, a monitorului. Au fostconcepute programe test speciale pentru evaluarea performanelor prinmsurarea timpului de execuie pe diferite calculatoare. Orice program,ns, favorizeaz o anumit arhitectur n detrimentul alteia.

    1.4.2. Exemplu de execuie a unui program simpluExemplul urmtor este real dar corespunde microprocesoarelor de 8

    bii, care dei au performane modeste, prezint avantajul simplitii.Urmrirea etapelor de execuie nu este foarte dificil iar valoarea

    pedagogic este considerabil.Problema const n adunarea 5+12, rezultatul fiind ncrcat n

    registrul acumulator .Vom privi problema din punctul de vedere al programatorului, care

    are acces doar la registrele interne i la locaiile de memorie.Instruciunile i operanzii (5 i 12) se afl n memorie.Secvena complet de operaii este urmtoarea:

    Prima instruciune transfer numrul 5 din memorie n acumulator;A doua, comand adunarea lui 12 la coninutul acumulatorului;Rezultatul adunrii rmne n acumulator.

    Organigrama programului (schema logic) este dat n fig.8.

    14

  • Programul din memorie va conine aadar dou instruciuni, careconin i operanzii. Vom presupune c programul ncepe la adresa 0105.

    Pentru a fi executat de microprocesor, programul trebuie scris n codmain (n sistem binar sau n hexazecimal) i ncrcat n memorie, octetcu octet ncepnd cu locaia de memorie cu adresa 0105.

    n setul de instruciuni al microprocesorului cutm instruciunilecorespunztoare. Pentru aceasta, este necesar manualul de utilizare; vomfolosi manualul de utilizare al microprocesorului Intel 8085, unde gsimtoate informaiile necesare, cu privire la instruciuni.

    MOV A, d8 ; ncarc n acumulator data de 8 biiADD A, d8 ; adun data la acumulator, rezultatul n A.

    Vom nlocui n corpul fiecrei instruciuni operanzii generici, cu 5 i 12.Instruciunea Descrierea Cod Hexa Cod binar

    MOV A, 05H

    ncarc n acumulator numrul 05 (05 n Hexa este tot 05)

    3E 05

    0011 11100000 0101

    ADD A, 0CH Adun 12 la acumulator (12 n Hexa este C)

    C60C

    1100 01100000 1100

    Cei 4 octei (din ultimele dou coloane ale tabelului) definesc ntotalitate programul.

    Programul se ncarc n memorie, octet cu octet, de la adresa 0105.Celulele de memorie fiind circuite bistabile (binare), n memorie vom gsiprogramul sub form de cod binar (ultima coloan).

    Start program

    Pune 5 n acumulator

    Adaug 12 la acumulator

    Sfrit de program

    Fig. 8 Schema logic a programului

    15

  • n continuare vom derula ''filmul'' operaiilor care au loc pentruexecuia programului. Este pus n eviden principiul fundamental alrulrii programelor ntr-un sistem numeric de calcul.

    Etapa 0: situaia iniialNe intereseaz coninutul numrtorului de program (PC), al

    registrului de instruciuni (RI) i al registrului acumulator (A).PC conine adresa primei instruciuni (0105), acumulatorul conine

    data rmas din operaii anterioare, care nu mai intereseaz pe nimeni iarregistrul RI conine codul unei instruciuni anterioare, care, de asemeneanu ne intereseaz.

    Etapa 1: Citirea primului octet. Coninutul contorului (PC) sencarc pe magistrala de adrese, ceea ce are ca efect selectarea locaiei cuadresa 0105, care conine primul octet al instruciunii ( de cod).

    0105

    0106

    0107

    0108

    0109

    0 0 1 1 1 1 1 0

    0 0 0 0 0 1 0 1

    1 1 0 0 0 1 1 0

    0 0 0 0 1 1 0 0

    Fig. 9 Aspectul programului n memorie

    Coninutul locaiei Adresa

    UAL

    A T

    UCC

    (registre)

    Magistrala intern de date RD

    (microcod)

    :

    RI

    Decodor PC= 0105

    01050106010701080109

    0011 11100000 01011100 01100000 1100

    MemoriaMicroprocesor

    Fig. 10 Adresarea memoriei pentru extragerea primului octet

    X X X X X X X X X X X X

    16

  • Dup citirea primului octet, contorul de program este incrementatautomat, aadar coninutul lui devine PC = 0106.

    Dup decodare, UCC obine informaia privind octetul de date icomand citirea lui i ncrcarea n registrul A; UCC ''tie'' c al doileaoctet este ultimul i deci va urma eventual alt instruciune.

    Etapa 2: Citirea octetului al doilea (operandul 05). Coninutulcontorului (PC) se ncarc pe magistrala de adrese, ceea ce are ca efectselectarea locaiei cu adresa 0106, care conine al doilea octet al

    UAL

    A T

    UCC

    (registre)

    Magistrala intern de dateRD

    (microcod)

    :

    RI

    Decodor PC= 0106

    01050106010701080109

    0011 11100000 01011100 01100000 1100

    Memorie

    0011 1110

    Fig. 11 ncrcarea octetului de cod n RI i decodarea Microprocesor

    UAL

    A T

    UCC

    (registre)

    Magistrala intern de dateRD

    (microcod)

    :

    RI

    Decodor PC= 0106

    01050106010701080109

    0011 11100000 01011100 01100000 1100

    Memorie

    0011 0101

    Fig. 12 Citirea celui de-al doilea octet al instruciunii (primul operand)Microprocesor

    17

  • instruciunii - octetul de date. Acesta va fi ncrcat n registrul A, conformcomenzii primei instruciuni. Dup citirea octetului de date, n modautomat, coninutul contorului devine PC = 0107.

    Etapa 3: Citirea octetului de cod ( instruciunea a doua) .Se efectueaz aceleai operaii ca n etapa 1, dar locaia de memorie

    selectat este 0107, n care se afl codul instruciunii a doua.

    UAL

    A T

    UCC

    (registre)

    Magistrala intern de dateRD

    (microcod)

    :

    RI

    Decodor PC= 0107

    01050106010701080109

    0011 11100000 01011100 01100000 1100

    Memorie

    0011 01010000 0101

    Fig. 13 ncheierea execuiei primei instruciuniMicroprocesor

    UAL

    A T

    UCC

    (registre)

    Magistrala intern de dateRD

    (microcod)

    :

    RI

    Decodor PC= 0107

    01050106010701080109

    0011 11100000 01011100 01100000 1100

    Memorie

    0011 01010000 0101

    Fig.14 Citirea locaiei cu adresa 0107, codul instruciunii a douaMicroprocesor

    18

  • Etapa 4: Citirea octetului al doilea .Acesta reprezint al doilea operand ce va fi ncrcat n registrul

    temporar T, al unitii aritmetice UAL (fig. 16, 17). Transferul n T seexecut pe baza comenzii codificate n instruciunea ADD A, 0C - deadunare a operandului 0C la acumulator; aceeai instruciune comandoperaia de adunare A+T i plasarea rezultatului n registrul A (fig.18).

    UAL

    A T

    UCC

    (registre)

    Magistrala intern de dateRD

    (microcod)

    :

    RI

    Decodor PC= 0108

    01050106010701080109

    0011 11100000 01011100 01100000 1100

    Memorie

    1100 01100000 0101

    Fig. 15 Decodarea instruciunii a doua (de adunare)Microprocesor

    UAL

    A T

    UCC

    (registre)

    Magistrala intern de dateRD

    (microcod)

    :

    RI

    Decodor PC= 0108

    01050106010701080109

    0011 11100000 01011100 01100000 1100

    Memorie

    0000 0101 1100 0110

    Fig. 16 Citirea octetului al doilea al instruciunii de adunare.

    Microprocesor

    19

  • Operaia de adunare A+T se face ntr-o singur perioad de tact iarrezultatul este plasat n A prin intermediul magistralei interne de date lacare registrul A este conectat.

    n fig.19, 20, sunt prezentate cele dou instruciuni descompuse noperaii elementare (conform manualului de utilizare Intel); sunt delimitateperioadele de tact i ciclurile main. Pentru prima instruciune, ciclulmain CM1:

    UAL

    A T

    UCC

    (registre)

    Magistrala intern de dateRD

    (microcod)

    :

    RI

    Decodor PC= 0109

    01050106010701080109

    0011 1110

    0000 11001100 01100000 0101

    Memorie

    1100 01100000 0101 0000 1100

    Fig. 17 ncrcarea octetului 0C n registrul temporar TMicroprocesor

    UAL

    A T

    UCC

    (registre)

    Magistrala intern de dateRD

    (microcod)

    :

    RI

    Decodor PC= 0109

    01050106010701080109

    0011 11100000 01011100 01100000 1100

    Memorie

    1100 01100001 0001 0000 1100

    Fig. 18 Efectuarea adunrii A+T, rezultatul fiind 0001 0001=17

    Microprocesor

    20

  • T1: coninutul numrtorului PC este ncrcat pe magistrala deadrese iar pe magistrala de date se ncarc temporar cuvntul de stare(Status).

    T2: se incrementeaz PC pentru citirea locaiei urmtoare.Tw: dac citirea memoriei dureaz mai mult de o stare, se insereaz

    automat o stare de ateptare ( wait).

    T3: codul instruciunii se transfer n registrul de instruciuni.T4: se face decodarea octetului de cod.Ciclul main CM2:T1: coninutul numrtorului PC este ncrcat pe magistrala de

    adrese iar pe magistrala de date se ncarc temporar cuvntul de stare(Status).

    T2, (Tw), T3: data din locaia adresat se copiaz n A(acumulator).

    n cazul instruciunii ADD A, 0CH, desfurarea n timp esteasemntoare (fig.20), cu deosebirea c al doilea ciclu main are 4 stri,copierea operandului se face n registrul T iar n ultima stare se faceadunarea A+T cu depunerea rezultatului n A.

    ;se transfer octetul 05H n acumulatorMOV A, 05H

    M1 M2

    PC outStatus PC=PC+1 Cod RI Decod. Satus Data A

    T1 T2 T3 T4 T1 T2 T3

    Tw TwFig. 19 Desfurarea n timp a instruciunii MOV A, 05H

    PC out PC=PC+1

    ;se adun octetul 0C la acumlatorADD A, 0CH ;rezultatul se obine n acumulator.M1 M2

    PC outStatus PC=PC+1 Cod RI Decod. Satus Data T

    T1 T2 T3 T4 T1 T2 T3

    Tw Tw

    Fig. 20 Desfurarea n timp a instruciunii ADD A, 0CH

    PC out A A+TT4

    PC=PC+1

    21

  • 2 Magistrale i standarde de magistral

    2.1 Conceptul de magistralMicroprocesorul schimb informaii nu numai cu memoria dar i cu

    lumea perifericelor ( tastatur, mouse, ecran, imprimant, modem etc.). Eldialogheaz cu aceste periferice prin intermediul circuitelor de interfa,numite nc de ''intrare/ieire'' (I/O - input/output). Toate perifericeletrebuie s poat fi nominalizate individual prin adrese specifice; acesteadrese nu se confund cu cele de memorie, deoarece ele sunt activesimultan cu comenzi specifice numai circuitelor de interfa.

    Comunicarea cu memoria i perifericele se realizeaz prin liniiparalele de transfer de date, magistrale.

    Magistrala este un mediu comun de comunicaie ntre componenteleunui sistem de calcul; fizic, este format din linii electrice prin carecircul semnale de acelai tip i amplificatoare electronice pentrumeninerea nivelului de tensiune n condiiile creterii numrului decomponente conectate.

    Orice magistral este generat i controlat de o unitate specializat,de regul unitatea central a sistemului. Aceast unitate iniiaz dialogulcu alte uniti conectate la magistral (uniti de intrare/ieire, memorie).Dialogul este totdeuna de tipul UC unitate secundar i nu ntre douuniti secundare.

    Ampl

    . de

    Unitatecentral

    C1 C2 C3 C4

    De

    codo

    rm

    agi

    stra

    l

    ::

    :

    linii de selecie

    Sel Sel Sel Sel

    Fig. 1 Comunicare ntre UC i componenta C3, prin magistral. Celelalte componente conectate sunt pasive

    Magistral bidirecional

    n fig.2, este prezentat amplificatorul de magistral Intel 8286,bidirecional, pe 8 bii, cu ieiri cu trei stri i fan-out 20 pentru ieirileB, 6 pentru ieirile A.

    22

  • Circuitul realizeaz funciile de amplificare i transfer atta timp ctsemnalul Dac , ieirile trec n starea de nalt impedan.DE = 0. DE = 1Sensul transferului este stabilit de intrarea T: dac T=1, transferul se facede la A la B iar dac T=0, de la B la A.

    Introducerea conceptului de magistral a revoluionat modul deconcepere i proiectare a sistemelor de calcul. Modelul de calculatorbazat pe magistral a fost preluat mai ales de familiile de mini i microcalculatoare. Prin standardizarea magistralelor, sistemele de calcul audevenit deschise, n sensul c productorii de componente au putut srealizeze module de memorie, interfee de intrare / ieire, echipamenteperiferice, pentru familii mari de calculatoare, bazndu-se numai pespecificaiile magistralei.

    Au fost dezvoltate diferite standarde de magistral, urmrindevoluia microprocesoarelor utilizate ca uniti centrale i implicit anecesitilor lor de comunicare (vitez, mod de transfer, sincronizareetc.).

    DE

    A0B0

    A1

    B1

    A2B2

    A3

    B3

    A4

    B4

    A5B5

    A6

    B6

    A7B7

    Fig. 2. Schema unui amplificator bidirecional de magistral (Intel 8286)

    T

    23

  • S-au dezvoltat magistrale specializate pentru anumite tipuri deechipamente periferice ( uniti de disc, console grafice etc.).

    Din acest punct de vedere se pot distinge dou clase de magistrale:Magistrale de sistem - dezvoltate n special pentru conectareaunitii centrale cu celelalte componente de baz ale sistemului: ISA,EISA, MULTIBUS, PCI;Magistrale specializate - care sunt destinate optimizrii transferuluide date ntre sistem i anumite tipuri de periferice: VESA, SCSI,GPIB.

    Apariia i evoluia rapid a microprocesoarelor a consacrat modelulde calculator bazat pe magistral. Semnalele generate de microprocesorsunt concepute tocmai pentru conectarea la o magistral de sistem.

    Dei familiile de microprocesoare sunt diferite, n funcie deproductor, totui numeroase caracteristici ale magistralelor lor suntcomune ( principii de transfer, tipuri de semnale, dimensiune), astfel cmodulele proiectate pentru o anumit magistral pot fi adaptate uorpentru alta.

    2.2 Elementele de baz ale unei magistraleO magistral, care din punct de vedere fizic este constituit din linii

    conductoare i amplificatoare de semnal, din punct de vedere funcional se

    Microprocesor

    Memorie

    Interfa demagistral

    Interfa video Interfa hard disc Intrri / Ieiri

    Magistral standard ISA, EISA, MCA

    Magistral intern

    Fig.3 Microprocesorul genereaz magistrala intern (de date, adrese,i de control). Interfaa de magistral face corespondendena cu magistrala standard (extins).

    24

  • compune dintr-un set de semnale electrice i un set de reguli careguverneaz accesul la comunicaie i transferul de informaii.

    Informaiile transferate pot fi: date, instruciuni, informaii decontrol i sincronizare. Regulile de funcionare se refer la:

    caracteristicile fizice i electrice ale componentelor conectate lamagistral (niveluri de tensiune, cureni, ncrcare, tip conectori);secvena de generare a semnalelor necesare pentru transfer;timpi limit pentru diferite faze ale unui transfer i timpi de meninerea unui anumit semnal;dependene funcionale i temporare ntre diferite tipuri de semnale.

    n funcie de numrul liniilor utilizate pentru transferul de date,magistralele sunt de dou tipuri:

    paralele i seriale.Cele seriale se utilizeaz n principal pentru comunicaie ntre

    sisteme de calcul aflate la distan (reele de calculatoare).

    2.3 Magistrale paraleleO magistral paralel se compune din urmtoarele tipuri de semnale:

    semnale de date - utilizate pentru transfer de date n ambele sensuri;la un moment dat o singur unitate poate s emit pe liniile de date;numrul liniilor de date ( 8, 16, 32, 64) determin dimensiuneacuvntului de date ce poate fi transferat i viteza de transfer;semnale de adres - avnd rolul de adresare a modulului destinaiesau surs; numrul liniilor de adres determin dimensiunea spaiuluide adresare al magistralei;semnale de comand - specific direcia de transfer (dinspre procesorsau ctre procesor) i tipul componentei adresate (modul de memorie,dispozitiv de intrare/ieire, controler de ntreruperi etc.).semnale de control - stabilesc condiiile de transfer pe magistral;semnale de ntrerupere - semnalizeaz apariia unor evenimenteinterne sau externe i determin ntreruperea execuiei programuluicurent;semnale de tact - au rol de sincronizare i permit generarea unorsemnale de frecven programabil;semnale de alimentare - utilizate ca tensiuni de alimentare pentrucomponentele sitemului;semnale de control acces - utilizate pentru arbitraj i pentru controlulaccesului la magistral, n cazul magistralelor multimaster.

    25

  • Numrul i semnificaia particular a semnalelor depinde de tipul idestinaia magistralei. Anumite grupe de semnale pot lipsi i alte grupepot fi adugate (semnale de eroare, de control paritate etc.).

    Clasificare1. Dup modul de lucru, n raport cu semnalul de tact:

    magistrale sincrone - ciclurile de transfer sunt corelate cu semnalulde tact. Dimensiunea magistralei este limitat de frecvena semnaluluide tact.magistrale asincrone - nu exist o legtur direct ntre ciclul detransfer i semnalul de tact al sistemului; majoritatea magistraleloractuale lucreaz pe acest principiu (ISA, EISA, MULTIBUS).

    2. Dup numrul de uniti master conectate la magistral:magistrale unimaster - exist o singur unitate master pe magistral;nu sunt necesare mecanisme de arbitraj. Unitatea master iniiaz oricetransfer de informaie i are permanent controlul deplin asupra striimagistralei; unitile slave conectate la magistral nu dispun deelementele necesare pentru controlul magistralei.magistrale multimaster - sunt controlate de mai multe uniti masterdar nu simultan; magistrala trebuie s conin semnale de arbitraj iun anumit protocol de transfer al controlului ntre unitile master.

    3. Dup modul de realizare a transferului de date:magistrale cu transfer prin cicluri (secveniale); se aplic regula cala un moment dat cel mult un ciclu de transfer s se afle ndesfurare; majoritatea magistralelor folosesc acest principiu detransfer.magistrale tranzacionale - transferul de date se efectueaz printranzacii; o tranzacie este divizat n mai multe faze care se potdesfura simultan dac ele utilizeaz grupuri de semnale diferite.

    Pentru compatibilizarea modulelor cu sistemele de calcul, au foststandardizate multe tipuri de magistrale.

    n cadrul unui sistem de calcul pot s coexiste ma imulte tipuri destandarde, specializate pe transfer de date ntre diferite tipuri decomponente de sistem. Astfel se poate utiliza o magistral de mare vitezpentru transferul ntre procesor i memorie, o magistral cu acces multiplupentru conectarea unor periferice de mare vitez (disc, interfa video) io magistral de vitez redus pentru periferice lente.

    n domeniul calculatoarelor personale s-au dezvoltat mai multemagistrale care au devenit standarde n fapt, nainte de standardizarea lorformal:

    26

  • ISA (Industrial Standard Architecture) - magistrala de sistem aprimelor calculatoare personale compatibile IBM PC i care nc seutilizeaz n majoritatea calculatoarelor personale.EISA (Extended ISA) - varianta extins a magistralei ISA.VESA Local Bus ( Video Electronics Standard Association) -magistral proiectat iniial pentru pentru accelerarea transferuluintre procesor i interfaa grafic, s-a dovedit util i pentru altetipuri de interfee de mare vitez (

    Hard Disc).PCI (Peripheral Component Interconnect) - magistral de marevitez adaptat cerinelor procesoarelor evoluate din familia Intel. Afost adoptat n arhitectura general Power PC definit de Apple-IBM - Motorola.PCMCIA (Personal Computer Memory Card InternationalAssociation) n format de carte de credit.

    2.4 Caracteristici funcionale ale magistralei ISAMagistrala ISA (Industrial Standard Architecture) a fost definit

    pentru calculatoarele personale IBM PC. Se utilizeaz pentru conectarean sistem a interfeelor de intrare/ieire specifice unui calculator personal:interfaa de disc, interfaa video, interfaa de sunet i diferite alte interfeede utilizator.

    Este o magistral asincron, care poate transfera date pe 8 i 16 bii.Semnalele magistralei se regsesc pe sloturile de extensie ale

    calculatorului. Un slot se compune din doi conectori, unul de 64 de pini icellalt de 36 de pini.

    Pe o magistral ISA transferul de date se realizeaz pe baz decicluri de magistral. n funcie de tipul transferului, exist 4 tipuri deciclu:

    ciclu de citire memorie ( - Memory Read Command);MRDC ciclu de scriere memorie ( - Memory Write Command);MWTC ciclu de citire port intrare ( - Input Output Read Command);IORC ciclu de scriere port ieire ( - Input Output Write Command);IOWC

    n paranteze sunt menionate denumirile semnalelor care se activeaz laexecuia fiecrui tip de ciclu, toate fiind active n ''0''.

    A1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A31B1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .B31

    C1 . . . . . . . . . . . . . . . . . . C18D1 D18. . . . . . . . . . . . . . . . . .

    Fig.4 Conectorii magistralei ISA (62 +36 pini)

    27

  • Conectorii magistralei ISA se compun din dou seciuni:Seciunea de origine, pe 8 bii (PC XT), cu 62 de pini;Seciunea de extensie la 16 bii (PC AT), cu 36 de pini.

    Liniile de semnal sunt:SA0 . .SA19 (System Address) linii de adres pentru memorie iporturi;LA17 . . LA23 (Lachable Address) linii de adres nememorate, validenumai pe durata semnalului BALE.

    CLK linia semnalului de tact al sistemului;Reset DRV (Reset Driver) comanda de iniializare;SD0 . . SD15 (System Data Lines) linii bidirecionale de date;I/O CH CK (I/O Channel Check) indic o eroare de paritate;I/O CH RDY (I/O Channel Ready) prin dezactivare, semnalulintroduce stri de ateptare pentru dispozitive lente;IRQ3 . .IRQ7, IRQ9 . .IRQ15 (Interrupt Request) cereri de ntrerupere; IORC (Input/Output Read Command) citire port de intrare (periferic);IOWC

    (Input/Output Write Command) scriere port de ieire(periferic);SMEMR (System Memory Read) citire memorie din spaiul sub 1 MB;

    A1B1

    A10B10

    A20B20

    A31B31

    C1D1

    C10D10

    I/O CH CKSD7SD6SD5SD4SD3SD2SD1SD0I/O CH RDYAENSA19SA18SA17SA16SA15SA14SA13SA12SA11SA10SA9SA8SA7SA6SA5SA4SA3SA2SA1SA0

    Mas

    Mas

    Reset DRV+5VIRQ9-5VDRQ2-12VOWS+12V

    SMEMWSMEMRIOWIORDACK3DRQ3DACK1DRQ1RefreshCLKIRQ7IRQ6IRQ5IRQ4IRQ3DACK2T/CBALE+5VOSCMas

    SBHELA23LA22LA21LA20LA19LA18LA17MEMRMEMWSD 8SD 9SD10SD11SD12SD13

    C18 D18SD14SD15

    MEM CS16I/O CS16 IRQ10

    IRQ11IRQ12IRQ15IRQ14DACK0DRQ0DACK5DRQ5DACK6DRQ6DACK7DRQ7+5VMASTERMas

    Fig.5 Semnalele magistralei ISA: seciunea de 62 de pini i seciunea de extensie de 36 de pini

    28

  • SMEMW (System Memory Write) scriere memorie n spaiul deadresare sub 1 MB;MRDC (Memory Read Command) citire memorie n tot spaiul;MWTC (Memory Write Command) scriere memorie n tot spaiul;DRQ0 . . DRQ7 (DMA Request) cereri de acces direct la memorie (0..3pentru transferuri de 8 bii, 4..7 pentru transferuri de 16 bii);DACK0 . . DACK7 (DMA Acknowledge) achitare cereri DMA (0..3pentru transferuri de 8 bii, 4..7 pentru transferuri de 16 bii);AEN (Address Enable) invalideaz selecia porturilor I/O pe duratadesfurrii unui ciclu DMA;REFRESH - indic ciclu main de remprosptare memorie DRAM;T/C (Terminal Count) indic terminarea transferului DMA;SBHE

    (System Bus Hight Enable) indic transfer pe octetul superiorde date (SD8 . . 15);MASTER semnal generat de un modul master (procesor de intr./ieire)cnd iniiaz un ciclu de transfer;MEMCS 16 (Memory Size 16) indic selectarea unui modul dememorie pe 16 bii;I/O CS 16 (Input/Output Size 16) indic selecia unui port pe 16 bii;OSC (Oscilator) semnal generat de oscilatorul sitemului; acest semnaleste divizat cu diferii factori pentru obinerea frecvenei de transfer,de remprosptare memorie etc.

    2.5 Arbitrajul magistralelorntr-un sistem cu mai multe procesoare (sistem multiprocesor), i o

    singur magistral de sistem, un singur procesor trebuie s aib controlulmagistralei, altfel apar conflicte de acces. Este necesar aadar, prezenaunui arbitru, care s atribuie magistrala unui singur procesor la un momentdat.

    Gestiunea magistralelor este numit ''arbitrajul magistralelor'' i esteasigurat de circuite logice speciale; aceste circuite sunt numite genericASIC (Application Specific Integrated Circuit) i au ca sarcin rezolvareaconflictelor de acces la magistral. Arbitrajul se face n funcie de nivelulde prioritate al fiecrui concurent. n general, dispozitivele deremprosptare a memoriei DRAM i cele de acces direct la memorie,DMA, au nivelul de prioritate maxim.

    Problemele de acces la magistral sunt evitate dac fiecare procesorare memorie intern ''cache''; este unul din motivele pentru care generaiileevoluate de microprocesoare dispun de memorie intern, integrat pe chip.

    29

  • 30