Informatica
Arhitectura sistemelor de calcul - lucrarea de laboratorLucrarea de laborator nr. 1 Arhitectura sistemelor de calcul 1.1. Scopul lucrarii In lucrare sunt prezentate principalele componente ale unui sistem de calcul precum si modul de functionare al acestora. Se va analiza modul in care diferitele componente ale unui calculator influenteaza performantele globale ale sistemului. Ca si exemplu de implementare se considera arhitectura calculatoarelor personale compatibile IBM. 1.2. Consideratii generale
Datele sunt depuse pe suporturi sub forma de simboluri sau caractere.
Procesul de prelucrare a datelor cuprinde: metoda de prelucrare; mijloacele tehnice utilizate. Sistemul informatic are ca element de culegere, stocare, prelucrare si transmitere a datelor un calculator electronic. Functiile de baza ale unui sistem de calcul sunt: transferul datelor; stocarea datelor; prelucrarea datelor In sistemul de calcul sunt vehiculate trei categorii de informatii: date care trebuie prelucrate; instructiuni care indica prelucrarile ce trebuie efectuate asupra datelor; adrese care permit localizarea diferitelor date si instructiuni. Unitatea de memorie are rolul de a stoca instructiunile si datele. Memoria este formata dintr-un numar mare de celule independente (numite si locatii), fiecare celula putand memora o valoare. Adresa este un numar care identifica in mod unic o locatie de memorie. Memoria poate fi volatila sau nevolatila Unitatea centrala de prelucrare (CPU) are rolul de a executa instructiunile realizand urmatoarele actiuni: Faza de adresare Faza de citire; Faza de decodificare Faza de executie.
Dispozitivele de intrare/iesire permit transferul informatiei intre CPU, memorie si lumea externa. Busul de date vehiculeaza datele propriu-zise. Busul de adrese este calea pe care sunt transmise de CPU adresele catre memorie. sau se vehiculeaza adresele dispozitivului de I/O. Busul de comenzi vehiculeaza semnalele de comanda si control intre toate aceste blocuri 1.3. Structura generala a unui sistem de calcul Sistemele de calcul sunt formate dintr-o retea de subsisteme care pot avea urmatoarele functii:
Structura de baza a unui SI/E standard cuprinde: canale de transfer, procesoare de I/E, unitatile de legatura(UL) ale echipamentelor periferice (EP), precum si interfetele dintre aceste componente.
Sistemele de I/E au o structura ierarhizata caracterizata prin niveluri de ierarhizare, intre care sunt vehiculate 4 tipuri de vectori: de date, de adresa, de comanda si de raspuns. Transferul de date implica urmatorii pasi: verificarea starii perifericului ( daca este disponibil); activarea, conectarea perifericului; transferul datelor dezactivarea (deconectarea) perifericului.
Transferul de date se poate face programat in cazul echipamentelor periferice care realizeaza prelucrarea datelor secvential autonom, daca prelucrarea datelor si vehicularea lor se face in paralel In cazul transferului programat procesorul central realizeaza controlul fiecarui transfer Pentru echipamentele care nu necesita pasul de activare executarea instructiunii de I/E are loc in timp ce procesorul se afla in starea corespunzatoare buclei de asteptare. Pentru echipamentele care necesita activarea, vehicularea datelor se face de regula in blocuri de informatii de diferite lungimi, fiind utilizat controlul prin intreruperi al transferului fiecarui bloc de informatie.Ultimul eveniment al fazei de activare il constituie pregatirea conditiilor de intrerupere. In secventa de intrerupere procesorul executa urmatoarele actiuni: incarca instructiunile de transfer actualizeaza numarul de caractere care urmeaza sa fie citite precum si adresa din memorie unde va fi depus urmatorul caracter; revine la programul principal intrerupt Transferul programat poate fi eficientizat prin utilizarea unei zone tampon de memorie. O solutie mult mai eficienta si complexa este transferul autonom, sau acces direct la memorie (ADM) (direct memory acces - DMA), care necesita circuite suplimentare cu functii de comanda, vehiculare a datelor, stocare a unor informatii necesare transferului. Procesorul de I/E are urmatoare functiuni de baza: preia din memoria centrala informatiile necesare initializarii executa un set simplu de instructiuni opereaza asupra variabilelor procesului detecteaza erorile si poate lua decizii sincronizeaza transferul datelor Sincronizarea transferului de date se poate realiza continuu prin multiplexare Ceasul este sursa semnalelor de sincronizare ale unui calculator. Canalul multiplexor are urmatoarele functii: adreseaza si initializeaza unitatile de legatura; interpreteaza si trateaza cererile de intrerupere; testeaza starea unitatilor de legatura asigura prioritati Unitatile de legatura au functiunile impuse de caracterisitcile transferului de date si anume: asincronismul; diferente de ordine de marime intre vitezele de transmitere; caracterul si forma diferita a datelor.
Unitatea de legatura are urmatoarele functiuni mai importante:
Sincronizarea se poate face pe baza fluxului de informatii pe baza unui semnal de sincronizare generat de E.P. cu ajutorul unui ceas intern sau al unitatii de legatura Realizarea transferului de date se face in 2 faze distincte: faza de activare caracterizata de timpul de acces; faza de transfer propriu-zisa Semnalele pot fi grupate in 4 categorii de vectori functionali: vectori de date; vectori de adresa; vectori de comanda; vectori de raspuns. Vectorul de date se caracterizeaza prin: sensul de vehiculare cantitatea de cifre binare care se transfera lungimea maxima a blocului de informatii; viteza maxima de transfer. Vectorul de adresa realizeaza: selectia elementelor primare de transfer sensul si amplitudinea miscarii ansamblului electromecanic; realizeaza identificarea semnalului de sincronizare Vectorul de comanda are 3 componente distincte: semnalele imperative sau ordine; semnale de timp semnale definitorii Vectorul de raspuns are urmatoarele componente: semnale de stare semnale de eroare; semnale de raspuns definitorii semnale de timp care reprezinta semnale de sincronizare Echipamentele si unitatile functionale sunt interconectate prin frontiere fizice care reprezinta interfete de I/E. Modul in care semnalele sunt vehiculate, secventa lor de timp si semnificatia fiecaruia definesc interfata logica. Interfata fizica reprezinta mediul de transmitere Magistrala de date (bus) reprezinta structura logica si fizica a interfetelor si realizeaza 3 functii: comunicarea datelor si a semnalelor de comanda sincronizarea comutarea Functiile sunt realizate prin alegerea mediului fizic de transmitere adoptarea unui protocol logic de transmisie care stabileste secventa de timp a transmiterii alegerea, la un moment dat, a unitatii emitatoare si a unitatii receptoare dintr-un numar de unitati conecate la bus. Caracteristicile principale ale unui bus sunt lungimea si latimea, care reprezinta numarul de linii in paralel. Conectarea unitatilor functionale poate fi realizata: radial serie In cazul conectarii radiale unitatea multiplexoare adreseaza un anume echipament la nivel inferior de comanda prin plasarea semnalelor pe setul de linii corespunzator echipamentului apelat. Pentru conectarea serie liniile de interconectare trebuie sa contina un vector de adresa, fiecarui dispozitiv fiindu-i asigurata o adresa sau un cod de selectare.
Echipamentul selectat are in structura sa un circuit de decodificare a adresei, cu ajutorul caruia isi recunoaste propria adresa si permite validarea transferului de informatii. Echipamentul care cere o conexiune cu o unitate de rang superior transmite si mijlocul de identificare. Secventele in timp ale activitatilor pot fi sincrone, atunci cand actiunile se interconditioneaza (fiecarui pas i se cere semnal de comanda urmat imediat de un semnal de raspuns de confirmare). Protocolul logic permite utilizarea busului prin specificarea ordinii activitatilor pentru efectuarea transferului de informatii. Un protocol este o descriere a zonelor de biti semnificativi dintr-o transmisie. Protocolul este prestabilit prin structura logicii de comanda a unitatii care conduce activitatea busului. Functiunile protocolului sunt:
Lungimea busului, exprimata in m, determina nivelul semnalelor. Latimea cablului la transmisiile paralele determina cantitatea de informatii transmise. Circuitele de comunicare speciale pot fi: cu un singur fir intre emitator si receptor cu 2 fire (schema diferentiala balansata
Canalul de intrare-iesire controleaza operatiile de intrare-iesire efectuate cu ajutorul perifericelor, dupa initierea lor de catre unitatea de comanda si permite cuplarea, indirecta, la unitatea centrala, a mai multor dispozitive periferice. Procesorul specializat in operatii de intrare-iesire controleaza schimbul de date intre memorie si periferice. Unitatea de I/E efectueaza transferul informatiilor intre memoria principala a sistemului de calcul si mediul exterior Componentele principale ale unei unitati de I/E sunt urmatoarele: Modulele de I/E; Echipamentele periferice; Interconexiunile dintre memorie si echipamentele periferice (magistralele); Interfetele dintre aceste componente. Functiile si cerintele principale ale unui modul de I/E sunt: Control si sincronizare; Comunicatia cu UCP; Comunicatia cu echipamentele externe; Bufferarea datelor; Detectia erorilor. Controlul transferului de date de la un echipament extern la UCP poate cuprinde urmatoarele etape:
Modulul de I/E trebuie sa permita comunicatia cu UCP prin: Decodificarea comenzilor Raportarea starii Recunoasterea adreselor
Registrele interne (Magistrala interna de date) reprezinta celule de depozitare in interiorul procesorului, marimea acestora determina marimea datelor, tipul de soft sau comenzile si instructiunile cu care poate lucra procesorul. Marimea registrelor interne este un indiciu important asupra cantitatii de informatii pe care procesorul o poate prelucra la un moment dat. Registrul reprezinta fisierele de configurare a sistemului, utilizate de Windows la stocarea parametrilor dispozitivelor hardware si driverelor instalate, a preferintelor utilizatorului etc. Registru-o zona de stocare din memorie, care are o capacitate de stocare definita (un bit, un octet sau un cuvant de calculator) si are functii speciale. Comunicatia cu echipamentele externe se realizeaza prin semnale de control, de stare si de date. Bufferarea datelor este o functie esentiala a unui modul de I/E.
Modul de I/E trebuie sa efectueze detectia erorilor si raportarea acestora catre UCP. Un modul de I/E care are o interfata de nivel inalt cu UCP este numit canal de I/E sau procesor de I/E. Un modul de I/E care este simplu si necesita un control detaliat al UCP este numit de obicei controler de I/E sau controler de dispozitiv. Din punct de vedere fizic, conform modelului clasic definit de J. Von Neumann, un calculator se compune din 5 tipuri de componente: dispozitive de intrare (ex: tastatura, mouse, interfete de proces, etc.); memorie (interna si externa, volatila si nevolatila); unitate aritmetico-logica; unitate de comanda; dispozitive de iesire (ex: ecran, imprimanta, etc.). Aceste componente sunt conectate intre ele prin una sau mai multe magistrale. Magistrala se defineste ca un mediu de comunicatie intre componentele unui calculator. O magistrala se compune dintr-un set de semnale prin care se transmit date si comenzi. Transferul de date pe magistrala se face pe baza unui set de reguli. Aceste reguli stabilesc cine, cand si cum comunica pe magistrala; stabilesc secventa de aparitie a semnalelor, interconditionarile existente intre semnale si relatiile de timp intre semnale.
Un calculator personal actual, are in mod uzual urmatoarele tipuri de componente:
1.4. Structura unui calculator personal compatibil IBM PC-AT Datorita caracterului lor versatil, aceste calculatoare au devenit cele mai utilizate calculatoare de astazi. Aceste calculatoare au la baza un procesor din familia Intel x86, sau un clon al acestuia. Procesorul folosit Pentium IV, are urmatoarele caracteristici functionale si de performanta:
Intr-o configuratie uzuala, procesorul, memoria interna si o parte din interfetele de intrare/iesire se situeaza pe o placa comuna denumita 'placa de baza' (eng. mother board). Restul interfetelor se monteaza in locatiile libere (eng. slots) aflate pe placa de baza. La variantele actuale majoritatea interfetelor uzuale sunt integrate pe placa de baza: interfata video, interfata de disc rigid si flexibil, interfata de retea, interfata de tastatura, interfata seriala si interfata paralela. Pentru extinderea sistemului sau pentru inlocuirea unor interfete cu altele mai performante se adauga placi, care se conecteaza pe una din magistralele sistemului. Intr-un calculator personal actual se intalnesc urmatoarele tipuri de magistrale:
Principalele functii ale placii de baza sunt integrate in cateva circuite integrate (eng. chipset), special proiectate pentru o anumita varianta de procesor. Aceste circuite solutioneaza transferul ultrarapid intre procesor si memoria interna a calculatorului si asigura conexiunea cu principalele tipuri de interfete. In figura 3.3 s-a reprezentat schema de principiu a unei placi de baza, in care s-au folosit 2 astfel de circuite.
1.5. Componentele placilor de baza Placa de baza este cea mai importanta componenta a unui calculator personal si contine urmatoarele componente: Soclul sau slotul procesorului; Setul de cipuri (puntile de nord si de sud sau conrollerele de memorie si intrare/iesire); Cipul Super I/O; Memoria ROM BIOS (memorie Flash ROM/hub firmware); Soclurile SIMM/DIMM/RIMM (memorie RAM); Conectoarele de magistrala ISA/PCI/AGP; Regulatorul de tensiune al unitatii CPU; Bateria
Setul de cipuri controleaza interfata sau conexiunile dintre procesor si restul calculatorului si contine interfata cu magistrala procesorului, controllerele de memorie, controllerele de magistrala, controllerele de intrare/iesire etc. In arhitectura North/South Bridge setul de cipuri cuprinde sectiunile puntea de nord (North Bridge), puntea de sud (South Bridge) si cipul Super I/O. Puntea de nord face legatura dintre magistrala de mare viteza a procesorului si magistralele mai lente AGP si PCI. Puntea de sud face legatura dintre magistrala PCI si magistrala ISA. Cipul Super I/O contine urmatoarele componente frecvent folosite: Controllerul unitatii de discheta; Doua controllere pentru porturi seriale, Controllerul portului paralel, Interfata cu mouse-ul si tastatura. Arhitectura centralizata (hub) foloseste un cip Memory Controller Hub in loc de puntea de nord, si un cip I/O Controlller Hub, in loc de puntea de sud.
1.6. Desfasurarea lucrarii In cadrul lucrarii de laborator se vor identifica fizic componentele unui calculator personal compatibil IBM PC-AT si se vor analiza variantele constructive si parametrii de performanta (ex: viteza, capacitate, caracteristici functionale, etc.). In acest scop se vor dezasambla principalele componente ale unui calculator PC. Se vor identifica tipurile si variantele constructive de componente, placi si interfete. In masura posibilitatilor se vor obtine date de catalog (Datasheet) despre componentele identificate folosind Internet-ul. Pe placa de baza a calculatorului se vor identifica: tipul procesorului, tipul si capacitatea placutelor de memorie, tipul circuitelor care insotesc procesorul, tipul de sloturi (magistrale) existente pe placa, etc. Pentru detalii se va consulta Internet-ul. Se vor identifica tipurile de interfete care sunt incluse in placa de baza si cele care sunt atasate in sloturi, ca si extensii. Se vor determina tipurile de conexiuni externe ale unui calculator tip PC (ex: conector serial, paralel, USB, monitor, tastatura, modem, etc.) Pentru fiecare tip de conexiune se va analiza numarul de semnale folosite, forma mecanica a conectorilor, numarul de conexiuni de un anumit tip, etc. 1.7. Raport de laborator
Ceasul - este componenta hard ce generaza un numar de impulsuri electrice intr-o periaoda de timp. Un impuls generat de ceas se numeste tact, iar frecventa ceasului MB se masoara in multiplii unui Hz. Fiecare tact este un semnal de efectuare a unei operatii elementare. Unitate de masura Prescurtare Explicatii 1 byte (octet) B 8 biti 1 Kilooctet KB 210 octeti 1024 octeti 1 Megaoctet MB 210 KB 220 octeti 1048576 octeti 1 Gigaoctet GB 210 MB 220 KB 230 octeti 1 Teraoctet TB 210 GB 220 MB 230 KB 240 octeti 3 Frecvente si latimi de banda specifice magistralei de date.Magistrala de date este un sistem de conducte virtuale prin care circula datele intre componentele sistemului de calcul. Aceste "conducte" sunt caracterizate prin cantitatea de date ce poate incapea intr-o sectiune a conductei si prin frecventa cu care trec datele prin acea sectiune. Prima caracteristica poarta numele de "latime de banda" iar cea de-a doua de "frecventa" a "conductei" de date. In continuare sunt prezentate principalele tipuri de "conducte de date" (numite generic bus-uri) si caracteristicile lor. Bus-ul de procesor, este canalul de date ce leaga magistrala de date cu procesorul. El are o latime de banda de 64 de biti, iar frecventele de bus corespund cu cele din tabelul de mai sus, in functie de tipul de procesor Bus-ul de memorie, este canalul de date ce leaga magistrala de date cu memoria RAM. Caracteristicile acestuia corespund, in general cu cele ale bus-ului de procesor Bus-ul PCI, este canalul de date ce leaga magistrala de date cu dispozitivele de conversie conectate prin interfata PCI (peripheral component interconnect). Latimea sa de banda este de 32 biti iar frecventa de 33 MHz. Bus-ul AGP (Advanced Graphic Port), este canalul de date ce leaga magistrala de date cu palca grafica. Este o versiune imbunatatita a bus-ului PCI, avand 32 biti latimea de banda si frecvente de 66 MHz (AGP), 2x66 MHz (AGP 2x), 4x66 MHz (AGP 4x), 8x66 MHz (AGP 8x) Bus-ul ISA - Este precursorul bus-ului PCI, si conecteaza magistrala de date cu dispozitive de conversie prin interfata ISA (Industry Standard Architecture). Are o latime de banda de 16 biti si o frecventa de 8,3 MHZ Bus-ul IDE (Internal Drive Electronics) - Este canalul de date ce leaga dispozitivele de stocare permanenta. Bus-ul IDE este bazat pe standardul PCI si poseda toate caracteristicile acestuia. Frecventele uzuale ale procesoarelor din sistemele actuale sunt prezentate in urmatorul tabel, pentru cei doi mari producatori prezenti pe aceasta piata, Intel si AMD:
Arhitectura placii de baza - descrie forma sa generala, tipurile de carcase si surse de tensiune pe care le poate folosi precum si organizarea sa fizica. Exista mai multe tipuri de placi de baza din punct de vedere al form-factorului: AT: cel mai ieftin tip de placa de baza, insa de obicei acest tip de placa de baza este foarte mic si are o multime de cabluri pentru porturile seriale, paralele si PS/2 care pot impiedica introducerea unor placi; AT si Baby AT: Aceste doua variante difera in principal prin dimensiuni, mai ales prin latime; AT/ATX: Este la fel ca AT numai ca exista un conector si pentru sursa de alimentare de tip ATX, pentru a folosi facilitatile acesteia din urma, acest tip de placa de baza a fost, pentru o perioada, cel mai vandut model pe piata din Romania; ATX: Avantaj: Nu mai exista cablurile pentru porturile seriale, paralele si PS/2, acestea fiind in suporturi metalice; ATX si Baby ATX: A fost prima schimbare semnificativa dupa multi ani a design-ului placii de baza (1995); Micro ATX: Este un ATX cu mai putine sloturi de extensie, de obicei pe placa sunt puse si placa video si aceea de sunet; NLX: La fel ca MicroATX, numai ca placa de baza nu se fixeaza in nici un surub si ea este introdusa intr-un slot special; LPX si LPX: Folosit in general in produsele de serie; Principalul scop este acela de a reduce spatiul ocupat si costurile; NLX - Este forma moderna a placilor LPX fiind orientat tot spre micsorarea dimensiunilor sistemului. CONTINE: Setul de cipuri ( Chipset-ul) - Este subcomponenta de control si comanda a placii de baza, fiind in general format din cateva cipuri principale, usor de identificat, fiind cele mai mari cipuri de pe placa de baza cu exceptia procesorului. Chipset-urile sunt integrate, insemnand ca sunt lipite, pe placa de baza si nu sunt upgradabile fara a schimba intreaga placa. Aceste circuite logice controleaza transferul de date dintre procesor, cache, magistrale sistem, periferice etc, aproape tot ce exista in interiorul calculatorului. Toate chipset-urile au 3 caracteristici comune: System controller Peripheral controller Memory controller System controller - tipul de raspuns al sistemului este critic pentru calculatoarele din ziua de astazi, deoarece toate componentele trebuie sa se sincronizeze perfect. Un semnal este inmultit sau impartit pentru a determina frecventa componentei cu care comunica. Pulsul sistemului este tinut de catre system clock. Un oscilator produce un semnal cu care componentele de pe placa de baza se vor sincroniza Majoritatea chipset-urilor actuale au acest system clock programabil. Acest lucru da posibilitatea utilizarii unor procesoare la frecvente foarte mari prin schimbarea catorva jumperi de pe placa de baza sau la unele placi de baza din BIOS. Memory controller - Aceasta parte a chiset-ului determina tipul, viteya si cantitatea de RAM care va fi folosita de catre sistem. De asemenea, el se ocupa cu folosirea memoriei cache L2/L3, corectarea erorilor si greselilor aparute la transferul de date dinspre / inspre memoria RAM. Peripheral controller - conecteaza PC-ul cu alte device-uri. Componentele principale ale unui chipset modern sunt: Northbridge - se refera la principalul circuit de control al magistralei cum ar fi memoria cache, memoria principala si controller+ul magistralei PCI; Southbridge - caracterizeaza controller-ele periferice, ca EIDE sau porturi seriale. Soclul pentru procesor - O alta caracteristica importanta dupa care se deosebesc placile de baza sunt soclurile in care se introduce procesorul denumite SOCKET. Magistrala - Reprezinta ansamblul conexiunilor care transfera semnalele intre doua componente ale calculatorului. Magistrala de date (bus) - este canalul de date prin care componentele din interiorul calculatorului comunica intre ele. Cu cat se pot trimite simultan mai multe semnale cu atat mai multe date se pot transfera si deci magistrala este mai rapida; Intr-un calculator informatia este memorata sub forma numerica, sub forma de insiruiri de cifre binare. Transferul pe liniile de comunicatie se face astfel: valoarea pentru 1 bit este data de existenta unei tensiuni, un interval de timp (un tact de ceas ), pe un singur traseu al magistralei ( o conexiune similara unui fir ). Cel mai des se foloseste tensiunea de 5V rezultand 1= 1 daca aceasta tensiune exista, sau valoarea pentru 1 bit = 0 daca tensiunea este egala cu 0V (lipseste). Cu cat exista mai multe linii, cu atat se pot transfera mai multi biti distincti in acelasi timp. Magistrala de adrese - este grupul de linii care transporta informatia de adresa necesara pentru precizarea locatiei de memorie catre care este transmisa informatia sau din care trebuie citita informatia. Fiecare linie dintr-o magistrala de adresa transporta un singur bit de informatie, deci un singur bit de adresa. Cu cat exista mai multe linii pentru specificarea adresei cu atat se vor putea adresa mai multe locatii din memorie. Marimea unei magistrale de adrese limiteaza dimensiunea maxima de memorie interna adresabila direct pe care un procesor o poate accesa. Placa de baza Placa de baza este
principala placa electronica a unui calculator. Ea reprezinta
componenta hardware care asigura interconectarea functionala (impreuna
cu Sistemul de Operare) si fizica dintre toate componentele unui sistem de
calcul. Ceasul este o componenta hardware care genereaza un numar de impulsuri intr o perioada de timp. Un impuls generat de ceas reprezinta un TACT. Memoria Cashe are functie de zona tampon. Chipsetul este componenta
de comanda si control a placii de baza. El are doua componente: Southbridge: caracterizeaza controllerele periferice, ca EIDE sau porturi seriale. Soutbridge are de obicei un singur cip si are avantajul ca se poate folosi si cu alte tipuri de chipseturi. Procesoarele rapide necesita
circuite de control capabile sa le sustina. Specificatiile vitezei
procesorului se fac folosind doi parametrii: viteza magistralei de memorie si
multiplicatorul procesorului. Magistrala procesorului si magistrala memoriei
conecteaza intre ele procesorul, setul de cipuri si memoria. de conectare cu microprocesorul (magistrale de adrese din
memoria interna si externa, magistrale de date), de conectare cu alte
elemente. Magistrala de date (bus) este canalul de date prin care componentele din interiorul calculatorului comunica intre ele. Magistrala procesorului este la cel mai inalt nivel fiind folosita la transferul de date intre chipset si procesor. Magistrala memoriei cache are o arhitectura de nivel
inalt (folosita la procesoarele Pentium II Pro si mai noi), implicand o
magistrala dedicata pentru accesarea memoriei cache. Magistrala de
memorie este de nivel doi si conecteaza subsistemul de memorie cu
chipsetul si procesorul. CONECTORI DE MAGISTRAL A SI PL ACI I/O Magistrala este o cale prin care pot circula datele in interiorul unui calculator. Aceasta cale este utilizata pentru comunicatie si se stabileste intre doua sau mai multe elemente ale calculatorului. Un PC are mai multe tipuri de magistrale, intre care se afla urmatoarele: Magistrala procesorului; Magistrala de adrese; Magistrala memoriei; Magistrala I/O. Magistrala procesorului Magistrala procesorului este calea de comunicatie intre CPU (unitatea centrala de prelucrare) si cipurile cu care lucreaza direct. Acesta magistrala este folosita pentru a transfera date intre CPU si magistrala principala a sistemului, de exemplu, sau intre CPU si memoria externa rapida (cache). Figura 3.1 arata cum se incadreaza aceasta magistrala intr-un sistem PC tipic. Nu toate sistemele PC au o memorie externa rapida (cache) pentru CPU; aceste memorii rapide sunt in general folosite in sistemele mai noi care utilizeaza cipuri 486 mai rapide sau cipuri Pentium. In multe sisteme deci, singurul scop al magistralei procesorului este acela de a comunica cu magistrala principala a sistemului. Deoarece scopul magistralei procesorului este de a da si a primi date de la CPU cu cea mai mare viteza posibila, aceasta magistrala lucreaza la o viteza mult mai mare decat orice alta magistrala din sistem; aici nu exista ″gatuiri″. Magistrala este compusa din circuite electrice pentru date, pentru adrese si pentru control. Intr-un sistem 486 de exemplu, magistrala procesorului este compusa din 32 de linii de adresa, 32 de linii de date si cateva linii de control. Magistrala procesorului unui sistem Pentium are 64 linii de date, 32 linii de adresa si linii de control asociate. Magistrala procesorului lucreaza la aceeasi viteza a ceasului de baza ca si CPU si poate transfera un bit de date pe o linie de date la fiecare perioada sau la doua perioade ale ceasului. Astfel, un sistem 486 poate transfera 32 biti de date simultan, in timp ce un sistem Pentium poate transfera 64 biti de date. Pentru a determina viteza de transfer pe magistrala procesorului, se multiplica marimea datelor (32 biti pentru 486 sau 64 biti pentru Pentium) cu viteza ceasului magistralei (aceeasi cu viteza de baza al CPU). Magistrala memoriei Magistrala memoriei este utilizata la transferul informatiei intre CPU si memoria principala - memoria RAM (memoria cu acces aleator) a sistemului. Aceasta magistrala este implementata printr-un set de cipuri dedicate si este responsabila cu transferul informatiilor intre magistrala procesorului si magistrala memoriei. Acest set de cipuri este in general acelasi cu setul de cipuri responsabil cu gestionarea magistralei I/O. Figura 3.2 indica felul cum se integreaza magistrala memoriei in sistemul PC. Fig. 3.2 Magistrala memoriei Informatia care circula prin magistrala memoriei este tansferata la o viteza mult mai mica decat viteza de transfer a informatiei pe magistrala procesorului, din doua motive: - magistrala memoriei are mai putine linii de date, iar cipurile cu memorie nu pot sa manipuleze date la fel de repede cum o face procesorul. Soclurile cipurilor sau conectorii modulelor SIMM sunt conectati la magistrala memoriei la fel cum sunt cuplati conectorii de extensie la magistrala I/O. Magistrala de adrese Magistrala de adrese este in realitate o parte a magistralei de memorie. Magistrala de adrese este folosita in operatiile cu memoria. Ea selecteaza adresa de memorie pentru operatia urmatoare. Dimensiunea magistralei este direct legata de marimea memoriei pe care unitatea centrala o poate adresa direct. PROIECTAREA INTERFETELOR DE INTRARE/IESIRE Rolul interfetelor de intrare/iesire este de a realiza conectarea dispozitivelor periferice la magistrala sistemului de calcul. O astfel de interfata este constituita din doua parti partea de interfata cu semnalele de pe magistrala sistem si partea de interfata cu dispozitivul de intrare iesire. Magistrala sistem
Dispozitiv periferic Figura 1 Interfata de intrare/iesire Interfetele sunt standardizate pentru anumite categorii de echipamente (dispozitive de stocare externa a datelor, dispozitive de afisare dispozitive de tiparire, etc.). Exemple de standarde pentru interfete sunt standardul IDE sau ATA pentru unitati de stocare standardul SVGA pentru dispozitive de afisare interfata MIDI pentru dispozitive multimedia. Figura 2 prezinta schema de principiu a unei interfete de intrare iesire. Se pot identifica urmatoarele blocuri functionale blocul de decodificare si selectie blocul de amplificare a semnalelor de pe magistrala ; registrul de date pentru semnale de intrare ; registrul de date pentru semnale de iesire ; registrul de comanda si control ; registrul de stare ; Decodificatorul asigura selectarea interfetei si a registrelor acesteia. Astfel fiecare registru are asociata o adresa in spatiul de memorie I/O al sistemului. Amplificatorul asigura legatura dintre magistrala interna a interfetei si magistrala de date a sistemului. Registrele memoreaza datele de intrare, datele de iesire, semnalele de comanda precum si starea dispozitivului conectat la interfata. Magistrala de adrese Magistrala de date Magistrala de comenzi Amplif. bidirectional Magistrala interna de date Registru de Registru de Registru Registru Dec. iesire intrare de comanda de stare In Out Control Stare Figura 2. Schema de principiu a unei interfete de intrare/iesire Blocul de decodificare genereaza semnalele pentru selectia registrelor interfetei, folosind pentru aceasta semnalele de adresa si comanda de pe magistrala. Fiecare interfata are o adresa de baza si un set de adrese locale relative la adresa de baza. Decodificarea adresei se realizeaza in doua trepte mai intai are loc decodificarea adresei de baza a interfetei pe baza adreselor superioare de pe magistrala iar apoi decodificarea adresei de registru din liniile inferioare de adresa. Semnalul de selectie a interfetei valideaza amlificatorul bidirectional de date si submodulul de decodificare a adreselor locale. Magistrala de adrese Adr. sup Adr. inf Dec Dec. Sel0 Placa Sel Reg. Sel1 Sel2 IORC IORC ... IOWC IOWC Seln Figura 3 Blocul de decodificare si selectie [1] Semnalele de comanda folosite sunt IORC si IOWC, semnale generate de catre procesor in momentul adresarii unui port de intrare/iesire. O anumita adresa poate fi utilizata atat pentru selectia unui registru de intrare cat si a unui registru de iesire, in acest caz semnalele de comanda IORC sau IOWC vor valida registrul corespunzator. Exista mai multe moduri de selectare a adreselor de intrare iesire [1]: selectie totala - in care toate liniile de adresa sunt utilizate in decodificare; selectie partiala - in care se folosesc doar o parte din liniile de adresa selectie liniara - fiecare linie de adresa selecteaza un anumit registru. Prima metoda este rar utilizata deoarece necesita mai multe componente pentru decodificare. In schimb sunt disponibile toate adresele din spatiul de adresare. In cazul selectiei partiale se utilizeaza numai o parte din liniile de adresa, fapt ce duce la diminuarea spatiului de adresare. Aceasta metoda este cea mai utilizata deoarece necesita un numar redus de componente si de cele mai multe ori spatiul fizic ocupat de porturile de intrare/iesire nu depaseste cateva sute de octeti. La calculatoarele compatibile IBM PC se utilizeaza numai primele 10 linii de adresa (A0 - A9) rezultand in acest fel un spatiu de adresare de 1Ko. Acest spatiu de adresare este partajat intre diferitele interfete ale calculatorului. Selectia liniara se utilizeaza in cazul unor sisteme dedicate de dimensiuni mici (sisteme incapsulate), acolo unde numarul de porturi de intrare/iesire este foarte mic Fiecare linie de adresa corespunde cu selectia unui registru. In acest caz numarul de adrese disponibile se reduce la numarul de linii de adresa. Valorile de adresa trebuie astfel alese incit o singura linie sa fie activa (0 logic), iar restul sa fie inactive (ex FEh=1111.1110b, FDh=1111.1101b) . Registrele de intrare si iesire asigura transferul de date intre echipamentul periferic la care este conectata interfata - si magistrala sistem. Numarul de biti de date pe care se face transferul depinde de viteza perifericului. In mod uzual se utilizeaza registre de 8 sau 16 biti. In ceea ce priveste selectia registrelor trebuie respectate urmatoarele reguli [1]: pentru registrele de intrare semnalul de selectie se va conecta pe intrarea de validare a iesirii circuitului (CS- Chip Select), pentru a putea controla momentul in care datele de intrare ajung pe magistrala ; astfel se evita un conflict pe liniile de date ale magistralei pentru registrele de iesire semnalul de selectie se conecteaza la intrarea de inscriere a circuitului (CLK Clock), pentru a asigura inscrierea in registru a datelor prezente pe magistrala ; iesirile sunt de obicei valide tot timpul. La calculatoarele de proces interfata de intrare/iesire face legatura dintre calculator si dispozitivele de automatizare distribuite in proces senzori, elemente de actionare, controloare logice programabile, etc ) In acest caz se recomanda izolarea galvanica a semnalelor de intrare si iesire, pentru a evita transmiterea in calculator a unor tensiuni periculoase. Izolarea se poate face prin optocuploare, transformatoare de semnal sau relee. Registrul de stare indica starea interfetei si a echipamentului periferic conectat la interfata. Indicatorii de stare ofera informatii cu privire la: functionarea echipamentului periferic oprit/pornit, valid/invalid ; transferul datelor transfer in curs de desfasurare, oprire temporara, date prezente sau nu la intrare, date preluate la iesire, terminarea transferului ; aparitia unor erori in decursul transferului eroare de paritate eroare de sincronizare, incapacitate de transfer, etc Informatiile de stare sunt importante pentru controlul fluxului de date. Registrul de comanda permite controlul interfetei si al echipamentului periferic prin program Comanda data poate specifica modul de lucru al interfetei precum si parametrii transferului de date, cum ar fi viteza de transfer, modul de sincronizare, formatul datelor. De asemenea registrul de comanda se poate utiliza pentru controlul hardware al transferului de date prin setarea unor semnale specifice interfetei CS, ON/OFF, PAUSE RESUME, AUTO/MANUAL, etc )
|