CUPRINS1. Structura generală a unui calculator personal. ........................................... 3   1.1. Ce este un c...
5.2. Calculatoarele IBM PS/2. ......................................................................... 78   5.3. Arhitect...
1. STRUCTURA UNUI CALCULATOR PERSONAL      1.1. Ce este un calculator personal ?      Un sistem de calcul, sau un calculat...
Figura 1.1. Structura hard-soft a unui calculator      Calculatoarele personale pot fi întâlnite astăzi în birouri, în şco...
Un calculator "lap-top" este un calculator personal portabil, suficient de mic şi uşor(cântărind numai 4-5 kg) astfel încâ...
- sistemul de intrare / ieşire sau porturi ( Input / Output System or ports )           Figura 1.2. Reprezentarea simplifi...
Pentru a "conversa" cu utilizatorul, un calculator dispune de următoarele dispozitiveperiferice de bază: tastatura pentru ...
microprocesorul, printr-o linie a magistralei, că poate prelua controlul magistralei, şi decipoate efectua transferuri de ...
Memoria internă a unui calculator personal poate fi realizată cu circuite de două feluri :          • ROM -Read Only Memor...
2. REPREZENTAREA INTERNĂ A                               INFORMAŢIEI      Este dificil de găsit o definiţie adecvată a noţ...
B - 66             b - 98           1 - 49            CR - 13 ( Carriage Return )        C - 67             c - 99        ...
Deoarece N1 〉 N2 〉 N3 〉 ... ≥ 0, se va ajunge inevitabil după un număr de paşi - m - la uncât egal cu zero.      Înmulţind...
În concluzie, conform celor relatate anterior, pentru reprezentarea oricărui număr întregsau real, într-o baza oarecare p,...
ymym-1 ... y1y0,y-1y-2... fiind reprezentarea în baza q a numărului real r      De asemenea, calculele sunt efectuate în b...
Deci 418(10) = 1A2(16)         Exemple de conversie din baza 2,8,16 în baza 10:      Fie ymym-1 ... y1y0,y-1y-2... un numă...
F24A(16) = 1111 0010 0100 1010 = 1111001001001010(2)                         baza 10           baza 16         baza 2     ...
este negativ (x < 0), se inversează cifrele reprezentării binare în cod direct a numărului -x,care este un număr pozitiv. ...
Reprezentarea în virgulă fixă limitează gama numerelor ce pot fi reprezentate. Astfel,dacă i este numărul de biţi rezervaţ...
3. LOGICĂ COMBINATORICĂ ŞI SECVENŢIALĂ      3.1. Elemente de logică booleană. Funcţii logice.      În practica electronică...
Elementele mulţimii B satisfac următoarele proprietăţi, (∀) X,Y,Z ∈B:       1. idempotenţa:                    X+X = X ; X...
O funcţie booleană de n variabile este o funcţie f : Bn→B, unde Bn = BxBx....xB de nori. Valorile unei funcţii booleene po...
2. Să se implementeze funcţia f(X,Y) = XY + X utilizând întâi porţi AND, OR,                          NOT, şi apoi utilizâ...
2p coloane, fiecare element al matricii indicând valoarea funcţiei corespunzătoare valorilorvariabilelor ce poziţionează e...
exemplu, pe o capsulă cu 14 pini pot să încapă 6 inversoare, 4 porţi AND cu 2 intrări, 1poartă NAND cu 8 intrări etc.     ...
ieşire trebuie să fie "1" logic) este VOH = 2,4V, iar tensiunea de ieşire maximă în starea "low"(atunci când la ieşire tre...
3.4. Structuri logice combinaţionale      O structură logică combinaţională, sau un circuit logic combinaţional, este un c...
Circuitul multiplexor este unul din principalele circuite combinaţionale, fiind denumituneori şi circuit "selector", deoar...
Pentru a aduna două numere pe n biţi, se conectează mai multe circuite CDB483 încascadă, ca în figura de mai jos. De regul...
Un sistem logic pur combinaţional nu posedă memorie, ieşirile la un moment dat fiindcomplet definite de intrări. La un sis...
Bistabilul de tip R-S      Intrarea R, numită şi intrare de Reset, aduce ieşirea Q a bistabilului în zero la următorulfron...
Bistabilele integrate care pot fi întâlnite pe piaţă sunt puţin mai complicate decât celeprezentate anterior. Astfel, circ...
La fiecare front activ al semnalului de ceas SI→Q1, Q1→Q2, Q2→Q3, Q3→Q4.      Un exemplu concret de registru integrat este...
incrementează (adună 1) numărul binar Y3Y2Y1Y0 la fiecare front crescător al intrării Cu, şidecrementează (scade 1) număru...
4. MICROPROCESOARELE DIN FAMILIA INTEL 80x86      4.1. Microprocesorul I80286      4.1.1. Caracteristici generale      Mic...
Unitatea de interfaţă cu magistrala controlează toate operaţiile pe care microprocesorulle efectuează pe magistrală, gener...
operanzii instrucţiunilor, şi totodată gestionează indicatorii de condiţie şi stare conţinuţi înregistrul indicatorilor de...
mai semnificativi din AX, şi din registrul AL, ce conţine cei mai puţin semnificativi 8 biţi dinAX.      Registrele SP şi ...
În modul de lucru protejat, registrele de segment conţin un index într-o tabelă dedescriptori a segmentelor. O intrare în ...
AH = 10010001       - indicatorul de zero - ZF (Zero Flag) - este poziţionat în unu dacă rezultatulinstrucţiunii executate...
Un registru care nu poate fi întâlnit la I8086, este registrul sau cuvântul de stare masină-MSW (Machine Status Word), cu ...
- Ciclul procesor - este format din doi cicli de ceas sistem. Microprocesorul foloseşteun ceas intern PCLK, format prin di...
fiind deconectat de la magistrală (toate semnalele de la pinii procesorului sunt în starea demare impedanţă).      Micropr...
Semnalele S0 şi S1 de pe magistrala de control disting între o operaţie de citire, scrieresau recunoaştere întrerupere ast...
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Initiere operare pc
Upcoming SlideShare
Loading in...5
×

Initiere operare pc

3,899

Published on

Published in: Education
1 Comment
0 Likes
Statistics
Notes
  • Invata Acum Gratis Sa Faci Bani Pe Net! Ai nevoie de bani? Nu astepta sa vina ei la tine! Vezi GRATIS un video de 10 minute cum sa faci bani.Intra pe site: http://www.thepiratetrader.ro/succes-aff052.html
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

No Downloads
Views
Total Views
3,899
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
108
Comments
1
Likes
0
Embeds 0
No embeds

No notes for slide

Initiere operare pc

  1. 1. CUPRINS1. Structura generală a unui calculator personal. ........................................... 3 1.1. Ce este un calculator personal ? .................…............................…............ 3 1.2. Structura hardware de principiu a unui calculator personal. ….……........... 52. Reprezentarea internă a informaţiei. ............................................................ 10 2.1. Reprezentarea numerelor într-un sistem de numeraţie. ............................... 11 2.2 Conversia numerelor dintr-o bază în alta. ................................................... 13 2.3. Reprezentarea numerelor în calculator. Coduri de reprezentare. ................ 163. Logică combinatorică şi secvenţială. ............................................................. 19 3.1. Elemente de logică booleană. Funcţii logice. ............................................. 19 3.2. Implementarea funcţiilor logice. Minimizarea funcţiilor logice. .................. 21 3.3. Materializarea funcţiilor logice. Circuite logice. ........................................ 23 3.4. Structuri logice combinaţionale. ................................................................ 26 3.5. Sisteme logice secvenţiale. ........................................................................ 28 3.5.1. Tipuri de bistabile. ....................................................................... 29 3.5.2. Registre şi numărătoare. .............................................................. 314. Microprocesoarele din familia INTEL 80x86. ............................................. 34 4.1. Microprocesorul I80286. .................................................…..................... 34 4.1.1. Caracteristici generale. ................................................................. 34 4.1.2. Arhitectura internă a microprocesorului I80286. ........................... 34 4.1.3. Registrele microprocesorului I80286. ............................................ 36 4.1.4. Operaţiile de bază pe magistrală ale microprocesorului I80286. ..... 40 4.1.5. Modurile de lucru ale microprocesorului I80286. .......................... 54 4.1.6. Adresarea datelor. Moduri de adresare. ......................................... 47 4.1.7. Gestiunea şi protecţia memoriei la microprocesorul I80286. Conceptul de memorie virtuală. ..................................................... 49 4.1.8. Întreruperile microprocesorului I80286. ......................................... 55 4.2. Microprocesorul I80386. ........................................................................... 58 4.2.1. Caracteristici generale. .................................................................. 58 4.2.2. Registrele microprocesorului I80386. ............................................ 60 4.2.3. Paginarea memoriei. ..................................................................... 62 4.2.4. Modul virtual 8086 ....................................................................... 64 4.2.5. Memorii cache. ............................................................................. 65 4.2.6. Variante de realizare ale microprocesorului I80386. ...................... 67 4.3. Microprocesorul I80486. .......................................................................... 68 4.3.1. Structură internă. .......................................................................... 68 4.3.2. Arhitecturi CISC şi RISC. ..................................................…....... 70 4.3.3. Variante de realizare ale microprocesorului I80486. Conceptul de "upgrade". ..…….........................................…........ 72 4.4. Pentium. ......................................................................................….…...... 735. Structura calculatoarelor personale IBM. ..................................................... 76 5.1. Generalităţi. ...........................................................................................… 76 1
  2. 2. 5.2. Calculatoarele IBM PS/2. ......................................................................... 78 5.3. Arhitectura Microchannel. ........................................................................ 81 5.4. Interfaţarea calculatoarelor IBM. Comunicaţia paralelă şi serială. ............. 85 5.5. Tastatura. ................................................................................................ 89 5.6. Mouse. .................................................................................................... 91 5.7. Imprimante. ............................................................................................. 92 5.8. Monitoare şi adaptoare grafice. ................................................................ 94 5.9. Unităti de memorie externă. ..................................................................... 99 5.9.1. Discuri magnetice. ...……………................................................. 101 5.9.2. Discuri optice. ............................................................................. 105 5.10. Alte dispozitive de intrare/ieşire. ......................................….................. 1066. Arhitecturi paralele de calculatoare. ........................................................... 108 6.1. Evoluţia sistemelor de calcul.Calculatorul de tip von Neumann. .....…...... 108 6.2. Paralelism în sisteme uniprocesor. ............................................................ 111 6.3. Calculatoare pipe-line. ............................................................................. 112 6.4. Clasificarea Flynn a arhitecturilor de calculatoare. .................................... 115 6.5. Calculatoare SIMD. ................................................................................ 116 6.6. Sisteme multiprocesor cu memorie partajată. ........................................... 118 6.7. Sisteme multiprocesor fără memorie partajată. Transputere. .................... 121 6.8. Sisteme multiprocesor orientate pe flux de date. ...................................... 1257. Sisteme de operare. ....................................................................................... 130 7.1. Generalităţi. .......................... .................................................................. 130 7.1.1. Interfeţe text şi interfeţe grafice. .................................................. 132 7.1.2. Partiţionarea şi formatarea discurilor. ........................................... 136 7.2. Sistemul de operare MS-DOS. .................................………................... 138 7.2.1. Sistemul de fişiere. Structura discului sub MS-DOS. ................... 113 7.2.2. Lansarea sistemului de operare. ..... ............................................ 144 7.2.3. Configurarea sistemului de operare. ............................................ 145 7.2.4. Crearea fişierelor de comenzi. Fişierul AUTOEXEC.BAT. ...….. 151 7.2.5. Procesorul de comenzi COMMAND.COM. ................................ 153 7.2.6. Comenzi interne. ...................................................................….. 154 7.2.7. Comenzi externe. ..................................................................….. 159 7.3. Microsoft WINDOWS 95. ...................................................................… 167 7.3.1. Elemente Windows 95. ................................................................ 167 7.3.1.1. Ferestre. ...................................................................…… 168 7.3.1.2. Meniuri. ...................................................................…… 169 7.3.1.3. Casete de dialog. ......................................................…… 170 7.3.1.4. Desktop. ....................................................................….. 172 7.3.2. Windows Explorer. ..................................................................… 175 7.3.3. Control Panel. ........................................ ..............................….. 178 7.4. Linux. ................................................................................................….. 184 7.4.1. Structura sistemului Linux. ....................................................….. 184 7.4.2. Instalarea sistemului Linux. ....................................................…. 189Bibliografie. ...................................................................................................…. 191 2
  3. 3. 1. STRUCTURA UNUI CALCULATOR PERSONAL 1.1. Ce este un calculator personal ? Un sistem de calcul, sau un calculator, este destinat prelucrării informaţiei, acceptând,memorând şi prelucrând datele sau informaţiile de intrare, pentru a produce informaţiile deieşire sau rezultatele prelucrării, fiind compus din două părţi principale: hardware şisoftware. Hardware este un termen general, utilizat pentru a desemna partea fizică a unuicalculator, alcătuită din componente electronice şi mecanice, împreună cu totalitateadispozitivelor folosite de calculator în prelucrarea informaţiei. Software este tot un termengeneral, care desemnează totalitatea programelor folosite de un calculator, pentru atransforma informaţiile sau datele de intrare, în informaţii de ieşire sau rezultate. Structura hard-soft a unui calculator poate fi reprezentată ca o serie de cercuri saunivele concentrice, fiecare nivel exterior implicând existenţa nivelelor interioare, aşa cumeste arătat în figura1.1. Sistemul de operare este format dintr-un ansamblu de programe, care asigură o interfaţăîntre utilizator şi hardware-ul calculatorului, sau, cu alte cuvinte, face posibilă comunicareaîntre utilizator şi calculator. De asemenea, sistemul de operare realizează interfaţa întrehardware-ul calculatorului şi restul software-ului, toate celelalte programe utilizândhardware-ul calculatorului prin intermediul sistemului de operare. Software-ul utilitar pune la dispoziţia utilizatorului o multitudine de instrumentesoftware necesare dezvoltării propriilor programe, sau programe de aplicaţie şi, de asemenea,instrumente software cu ajutorul cărora se poate menţine buna funcţionare a sistemului decalcul. Programele din cea de-a doua categorie sunt uneori direct invocate de către sistemulde operare, aşa că pot fi considerate şi componente ale sistemului de operare. Dacă, până în anii 80, se făcea o distincţie netă între calculatoare mari, calculatoaremedii sau microcalculatoare, în principal pe baza dimensiunii memoriei şi vitezei deprelucrare a datelor, odată cu apariţia calculatoarelor personale comerciale în 1976, cândSteven Jobs şi Steve Wozniak au fondat firma APPLE, şi odată cu creşterea gradului deintegrare a componentelor electronice, noţiunile de calculatoare mici, medii sau mari nu maisunt atât de clare. Astăzi, un calculator personal care poate intra în dotarea oricărei familii,dar care poate fi folosit cu succes în majoritatea aplicaţiilor întâlnite în practică, are ocapacitate de memorare şi o viteză de prelucrare mult superioară capacităţii de memorare şivitezei de prelucrare de la calculatoarele mari din anii 70. 3
  4. 4. Figura 1.1. Structura hard-soft a unui calculator Calculatoarele personale pot fi întâlnite astăzi în birouri, în şcoli, în întreprinderi, ladomiciliu. Întrucât ele au devenit din ce în ce mai puternice, au preluat multe din sarcinilecalculatoarelor mari de acum 20 -30 de ani. Termenul de calculator personal generează confuzie, deoarece atunci când IBM aprodus primul său calculator personal, în 1981, l-a numit IMB Personal Computer sau IBMPC. Pentru unii, termenul de calculator personal înseamnă numai calculatoarele IBM saucompatibile hardware cu acestea. Dar, prin extensie, prin calculator personal se poate înţelegeorice calculator monoutilizator cu destinaţie generală. Calculatoarele cu destinaţie generală sunt acele calculatoare capabile să rezolve o marevarietate de probleme, adaptabilitatea la fiecare tip de problemă realizându-se prinintermediul programelor. Nu toate calculatoarele sunt calculatoare cu destinaţie generală.Astăzi sunt produse o gamă largă de calculatoare dedicate, destinate rezolvării unor problemespecifice, un calculator dedicat fiind capabil să ruleze numai programele necesare rezolvăriitipului respectiv de probleme pentru care este dedicat calculatorul. Calculatoare dedicate potfi întâlnite în ceasurile electronice, camerele video, pompele de benzină, sistemele de ghidareale rachetelor, sistemele de control ale roboţilor industriali etc. Până acum câţiva ani, termenii de calculator personal (Personal Computer) şicalculator de birou (Desktop Computer) desemnau unul şi acelaşi lucru. Astăzi, noţiunea decalculator personal tinde să cuprindă şi acele calculatoare portabile, de mici dimensiuni, şicare nu pot fi desemnate prin termenul de calculator de birou sau "desktop computer", careeste folosit în continuare numai pentru calculatoarele ce pot fi întâlnite în mod uzual înbirouri, şi care sunt destinate rezolvării problemelor curente dintr-un birou: procesări detexte, baze de date, dezvoltări de programe etc. 4
  5. 5. Un calculator "lap-top" este un calculator personal portabil, suficient de mic şi uşor(cântărind numai 4-5 kg) astfel încât să încapă într-un geamantan de mici dimensiuni.Calculatoarele "lap-top" sunt prevăzute cu hard disk, ecran plat realizat pe bază de cristalelichide (LCD - Liquid Cristal Display), fiind alimentate cu energie electrică de la o bateriereîncărcabilă. Calculatoarele "lap-top" mai sunt desemnate şi prin termenul de "notebookcomputer". Un alt termen controversat este cel de staţie de lucru ( "workstation" ). O staţie de lucrueste un calculator de birou performant, fiind mai puternic decât calculatoarele personaleuzuale (calculatoarele IBM), şi care este folosit, în principal, de cercetători ştiinţifici,ingineri, creatori de desene animate şi alţii, care necesită prelucrări intensive de date. Întrucâtstaţiile de lucru devin din ce în ce mai ieftine, şi calculatoarele personale din ce în ce maiputernice, este foarte dificil de trasat o linie de departajare între o staţie de lucru şi cele maiputernice calculatoare personale. În afara tipurilor de calculatoare descrise mai sus, şi care sunt în esenţă calculatoaremonoutilizator, deşi pot fi folosite şi ca sisteme multiutilizator, mai pot fi întâlnite astăzicalculatoare şi mai puternice, care sunt destinate din start lucrului cu mai mulţi utilizatori înacelaşi timp, în vederea rezolvării unor probleme deosebit de complexe. Asemeneacalculatoare sunt desemnate prin termenul de "mainframe computers", un exemplu decalculator "mainframe" fiind calculatorul utilizat pentru rezervarea locurilor la o companie detransport aeriană. Acest calculator permite tuturor agenţilor companiei aeriene dintr-o ţară, săfacă rezervări folosind acelaşi calculator şi aceleaşi informaţii, în acelaşi timp. Agentulcompaniei aeriene comunicã cu calculatorul "mainframe" prin intermediul unui terminal, ceeste un ansamblu format din tastatură şi ecran, şi care transferă informaţiile către şi de lacalculatorul "mainframe". Calculatorul "mainframe" se poate afla într-o cameră alăturată sauîntr-o altă ţară. Un alt exemplu de calculator "mainframe" este calculatorul dintr-o bancă,care este implicat în tranzacţii financiare cu diferiţi clienţi. Rămânând în cadrul definiţiei extensive a calculatorului personal, ca fiind un calculatormonoutilizator cu destinaţie generală, cuprinzând aici şi calculatoarele de birou,calculatoarele portabile şi chiar staţiile de lucru, în lucrarea de faţă se vor aborda numaicalculatoarele personale IBM sau compatibile cu acestea. 1.2. Structura hardware de principiu a unui calculator personal Un calculator personal este un sistem de prelucrare a informaţiei, a cărui unitatecentrală de prelucrare este realizată pe baza unui microprocesor. În general, orice calculator,şi nu neapărat un calculator personal, are trei elemente constitutive principale: - unitatea centrală de prelucrare sau UCP ( Central Processing Unit - CPU ) - memoria ( memory ) 5
  6. 6. - sistemul de intrare / ieşire sau porturi ( Input / Output System or ports ) Figura 1.2. Reprezentarea simplificată a hardware-ului unui calculator personal Unitatea centrală de prelucrare realizează prelucrările sau procesările numerice înconformitate cu o secvenţă de operaţii elementare, sau instrucţiuni, numită program. Deci, ounitate centrală de prelucrare poate executa un set limitat de operaţii elementare, carecompun repertoriul de instrucţiuni al UCP-ului respectiv. La calculatoarele din generaţiileanterioare, UCP-ul era compus, din punct de vedere constructiv, din foarte multecomponente. Datorită creşterii gradului de integrare a componentelor electronice, s-a ajuns cao unitate centrală de prelucrare să fie condensată într-un singur circuit integrat. O unitatecentrală de prelucrare realizată pe o singură pastilă de siliciu (sau cip) se numeştemicroprocesor. Programele care sunt executate de microprocesor sunt stocate în memoria internă acalculatorului personal. Datele procesate de către aceste programe sunt de asemenea stocateîn memoria calculatorului. Dar, memoria internă are o capacitate limitată. Din această cauză,se folosesc pentru stocarea programelor şi datelor, dispozitivele sau unităţile de memorieexternă. Cele mai utilizate dispozitive de memorie externă sunt dispozitivele magnetice:discuri flexibile (floppy disks), benzile magnetice, discurile de mare capacitate sau discurilehard (hard disks), o altã denumire frecvent utilizată pentru acestea din urmă fiind cea dediscuri Winchester. Altă categorie de dispozitive de memorie externă, folosite în prezent,sunt dispozitivele optice: CD-ROM, DVD (Digital Versatile Disc). Un program, pentru a fi executat, trebuie să fie adus din memoria externă în memoriainternă. Deci, un microprocesor execută secvenţe de instrucţiuni din memoria internă. 6
  7. 7. Pentru a "conversa" cu utilizatorul, un calculator dispune de următoarele dispozitiveperiferice de bază: tastatura pentru introducerea programelor sau datelor de prelucrat,display-ul sau ecranul pentru afişarea informaţiilor din calculator, care pot fi în particularrezultatele prelucrării, şi imprimanta, pentru tipărirea pe hârtie a acestor informaţii. Unitateacentrală de prelucrare preia date de la dispozitivele de intrare prin intermediul porturilor deintrare, şi trimite date către dispozitivele de ieşire, prin intermediul porturilor de ieşire.Totalitatea porturilor de intrare / ieşire formează sistemul de intrare / ieşire al calculatorului. UCP este conectată la memorie şi porturile de I/E prin intermediul unor linii paralele,care alcătuiesc magistrala de comunicaţie a calculatorului. Deci, ca element constitutivprincipal al unui calculator personal, este şi această conectare a tuturor resurselor sale prinintermediul unei magistrale de comunicaţie. Această magistrală are 3 secţiuni :• magistrala de date (Data Bus), pe care microprocesorul citeşte date din memorie sau porturile de intrare, sau scrie date în memorie sau porturile de ieşire. Datele citite din memorie pot fi, în particular, instrucţiuni.• magistrala de adrese (Address Bus), UCP-ul folosind aceste linii pentru a selecta locaţia de memorie sau portul de I/E, din care se vrea o dată pentru a fi citită, sau în care se doreşte înscrierea unei date.• magistrala de control (Control Bus), formată din linii specifice utilizate de microprocesor pentru controlul transferurilor de date pe magistrală. De exemplu, printr-o linie se poate specifica dacă microprocesorul citeşte sau scrie date (dacă microprocesorul ţine linia respectivă în "0", aceasta înseamnă cã procesorul citeşte date din memorie sau porturile de intrare; dacă microprocesorul pune "1" pe această linie, se va efectua o scriere în memorie sau porturile de ieşire), prin altă linie dacă se face o operaţie cu memoria sau cu porturile de I/E etc. Dimensiunea magistralei de date va da tipul procesorului, respectiv al calculatoruluirealizat în jurul procesorului respectiv. Dacă magistrala de date are 16 linii, deci transferurilede date se pot face numai pe cuvânt (1cuvânt = 2 octeţi), se spune că avem un calculator pe16 biţi, dacă magistrala de date are 32 linii avem un calculator pe 32 biţi etc. În mod obişnuit, magistrala unui calculator personal este controlată de microprocesor,în sensul că microprocesorul este cel care dirijează transferul de date pe magistrală. Însă,microprocesorul poate ceda controlul magistralei unor alte dispozitive, care pot efectuatransferuri de date pe magistrală. De exemplu, prin utilizarea unui dispozitiv de acces directla memorie, sau dispozitiv DMA (Direct Memory Access), procesorul poate ceda magistralaacestui dispozitiv DMA, care efectuează transferuri de date între dispozitivele periferice şimemorie, microprocesorul fiind degrevat de sarcina unor astfel de transferuri, şi efectuând înacest timp alte operaţii, care duc la creşterea gradului de paralelism şi implicit la creştereavitezei de calcul. Când transferul DMA s-a terminat, dispozitivul DMA anunţă 7
  8. 8. microprocesorul, printr-o linie a magistralei, că poate prelua controlul magistralei, şi decipoate efectua transferuri de date pe magistrală. Cele mai frecvent întâlnite familii de microprocesoare sunt: Intel (8088/8086, 80286,80386, I80486, Pentium), Motorola (Motorola 680xx), AMD, Zilog (Z80, Z8000), Sparc(Sun Sparc şi UltraSparc pe 32 de biţi), Mips etc. Calculatoarele IBM PC/XT sau ATutilizau unul din microprocesoarele I8088 sau I8086 ale firmei INTEL, calculatoarele dinfamilia IBM PS/2 unul din microprocesoarele I8086, I80286, I80386 sau chiar I80486, iarcalculatoarele IBM actuale folosesc procesoare puternice cum ar fi Pentium II sau PentiumIII. Pentru exemplificare, microprocesorul I8088 are magistrala de date de 8 biţi, magistralade adrese de 16 biţi, magistrala de control de 8 biţi, iar microprocesorul I8086 are magistralade date de 16 biţi, magistrala de adrese de 20 de biţi şi magistrala de control de 8 biţi.Celelalte microprocesoare Intel vor fi tratate pe larg în secţiunile următoare. Un microprocesor poate adresa în mod direct un spaţiu de memorie de 2na locaţii dememorie, unde na este numărul de linii de adresă ale magistralei microprocesorului. Lacalculatoarele personale actuale, unitatea elementară de memorie care poate fi adresată esteoctetul. Deci, microprocesorul poate scrie/citi în/din memorie cel puţin octeţi. Dacămagistrala de date are mai mult de 8 linii, cum este cazul microprocesorului I8086 care are 16linii de date, se pot face transferuri de date între microprocesor şi memorie atât pe octet cât şipe cuvânt (1 cuvânt = 2 octeti = 16 biţi). La microprocesoarele I80386 şi I80486, care aumagistrala de date de 32 de biţi, se pot face transferuri pe octet, pe cuvânt sau pe dublu-cuvânt (1 dublu-cuvânt = 2 cuvinte = 32 de biţi ). Totalitatea adreselor fizice de memorie pe care le poate forma un microprocesor,formează spaţiul de adrese de memorie. De exemplu, la I8086 spaţiul de adrese de memorieeste 0 -- 220-1, adică un spaţiu de adrese de memorie de 1Moctet; microprocesoarele I80386,I80486 şi Pentium, cu 32 de linii de adresă, având un spaţiu de adrese de memorie de 232,adică 4Gocteţi. Spaţiul de adrese de memorie se măsoară în octeţi, cu următorii multipli:1Koctet sau 1Kb(yte) = 210 octeţi (1024 octeţi), 1Moctet sau 1Mb = 210 Kb, 1Goctet sau 1Gb= 210 Mb. Analog locaţiilor de memorie, fiecare port de intrare/ieşire are asociată o adresă deintrare/ieşire. Totalitatea adreselor de I/E formează spaţiul de I/E al unui microprocesor. Lamicroprocesorul I8086, porturile pot fi pe 8 sau 16 biţi, după cum microprocesorul poate citisau scrie date din/în porturile respective (pe octet sau pe cuvânt). Procesoarele din familiaIntel 80x86 pot adresa un spaţiu de I/E de 64Kporturi de 8biţi, sau 32Kporturi de 16 biţi. Fiecare microprocesor are o intrare de ceas, semnalul de la această intrare fiind folositpentru sincronizarea operaţiilor sale interne. Frecvenţa semnalului de ceas determină vitezacu care microprocesorul procesează datele, şi este important ca această frecvenţă să fie câtmai mare. De exemplu, dacă microprocesorul Z80 funcţiona la o frecvenţă de 2,5 sau 4MHz,s-a ajuns ca un procesor Pentium III să poată funcţiona la o frecvenţă de 600MHz. 8
  9. 9. Memoria internă a unui calculator personal poate fi realizată cu circuite de două feluri : • ROM -Read Only Memory - ce sunt memorii din care microprocesorul poate numai să citească date, şi al căror conţinut nu se pierde la întreruperea alimentării calculatorului. Memoriile ROM sunt utilizate pentru a stoca programe şi date care trebuie să existe permanent în sistem. BIOS-ul (Basic Input Output Sistem) sistemului de operare se află rezident în memoria ROM a calculatorului. Conţinutul memoriilor de tip ROM poate fi şters cu ajutorul unui fascicul de raze ultraviolete (memorii EPROM – Erasable Programmable ROM), existând şi variante mai moderne (memoriile EEPROM – Electrical Erasable Programmable ROM), al căror conţinut poate fi şters şi rescris cu ajutorul unui program special. • RAM - Random Access Memory - ce sunt memorii la care microprocesorul poate atât citi cât şi scrie date, şi al căror conţinut se pierde la întreruperea alimentării. Sunt folosite pentru stocarea temporară a informaţiei. Din punctul de vedere al tehnologiei de realizare, memoriile de tip RAM sunt de douăfeluri: • memorii statice (SRAM – Static RAM), care menţin informaţia atât timp cât există tensiune de alimentare, fără a mai fi necesară reîmprospătarea (refresh-ul) sau rescrierea informaţiei. Sunt memorii rapide, dar sunt scumpe. • memorii dinamice (DRAM – Dynamic RAM), la care informaţia se volatilizează în timp, şi de aceea este necesară reîmprospătarea periodică a acesteia, cu ajutorul unui circuit specializat. Memoriile dinamice sunt mai lente decât memoriile statice, însă sunt mai ieftine, şi sunt memoriile cu care se realizează memoria internă de mare capacitate a calculatoarelor actuale. Există mai multe variante de memorii dinamice DRAM, mai recente fiind: - EDO RAM (Extended data Output DRAM) – care, printr-un artificiu, fac posibilă citirea unor date din circuit în acelaşi timp în care se termină citirea anterioară, rezultând o creştere a vitezei de acces la aceste memorii. - SDRAM (Synchronous DRAM) – procesorul accesând aceste memorii la o viteză sincronă cu viteza de lucru a magistralei calculatorului (plăcii de bază), mergând până la 100 MHz. Memoriile ESDRAM (Enhanced SDRAM) sunt variantele mai recente şi îmbunătăţite ale memoriilor SDRAM. Circuitele de memorie sunt încapsulate în aşa numitele circuite DIPs (Dual InlinePackages), sub forma unor barete de memorie, în două variante constructive: • Circuite SIMM (Single Inline Memory Module), cu 30 de pini şi care permit un acces la date pe 8 biţi, respectiv cu 72 de pini, şi care permit un acces la date pe dublu-cuvânt. • Circuite DIMM (Double Inline Memory Module) – realizate într-o tehnologie mai recentă, şi mai performante. Baretele DIMM au 168 de pini şi permit un acces la datele conţinute pe 64 de biţi. 9
  10. 10. 2. REPREZENTAREA INTERNĂ A INFORMAŢIEI Este dificil de găsit o definiţie adecvată a noţiunii de informaţie, ea având multeînţelesuri. Totuşi, în teoria informaţiei, sau mai precis în teoria transmiterii informaţiei,termenul de informaţie se aplică acelor lucruri care pot fi comunicate, fie că au sau nu ovaloare. Astfel, cuvintele, numerele, imaginile de pe o foaie de hârtie sunt simboluri cereprezintă o informaţie . Un calculator nu poate înţelege cuvinte, imagini sau chiar litere, şi nu poate procesainformaţie fără să o dividă în unităţi mai mici de informaţie, la fel cum un copil, pentru aînţelege un cuvânt, trebuie să audă sunetele care compun cuvântul respectiv. Bitul este unitatea cea mai mică de informaţie. Un bit poate distinge între doua stări,deci poate avea două valori: 0 sau 1, sau cu alte cuvinte "da" sau "nu", "alb" sau "negru". Uncalculator poate procesa cantităţi mai mari de informaţie, tratând grupurile de biţi ca unităţi deinformaţie. Astfel, o colecţie de 8 biţi numită octet sau "byte", unde fiecare bit poate fi 0 sau1, poate distinge între 256 de stări diferite ( 28=256 ), deci dacă am vrea să comunicăm cucineva folosind un octet, am putea transmite cel mult 256 de mesaje diferite, fiecare mesajfiind asociat cu o combinaţie de 0 şi 1 a celor 8 biţi. Celelalte unităţi de masură a informaţiei,multipli ai octetului, au fost introduse în capitolul precedent. Ce înseamnă pentru un calculator un şir de biţi de genul 10011010 ?. Un asemenea şirde biţi poate fi un număr, o literă a alfabetului, o instrucţiune a unui program sau orice altlucru. Deoarece calculatoarele reduc orice informaţie la o combinaţie de 0 şi 1, numerele dincalculator sunt reprezentate folosind numai combinaţii ale celor două cifre sau simboluri. Astăzi, calculatoarele nu lucrează numai cu numere, ci la fel de mult sunt folosite şicaracterele, calculatorul procesând cuvinte, propoziţii etc. Pentru aceasta, este necesar cafiecare caracter să fie reprezentat în mod unic ca o secvenţă de biţi, făcând posibilămemorarea şi reprezentarea grafică a mesajelor. Cele mai utilizate coduri alfanumerice suntASCII - American Standard Code for Information Interchange - şi EBCDIC - ExtendedBinary Coded Decimal Interchange Code. În prezent, marea majoritate a calculatoareloracceptă numai codul ASCII, în care fiecărui caracter alfanumeric îi corespunde un cod unic pe7 biţi, sau pe 8 biţi în cazul codului ASCII extins. Întrucât codul ASCII este intens folosit decătre utilizatori, este necesară menţionarea codurilor ASCII ale celor mai utilizate caractere : A - 65 a - 97 0 - 48 - 32 ( blanc ) 10
  11. 11. B - 66 b - 98 1 - 49 CR - 13 ( Carriage Return ) C - 67 c - 99 2 - 50 LF - 10 (Line Feed ) D - 68 d - 100 3 - 51 ş.a.m.d ş.a.m.d. ş.a.m.d. De asemenea, instrucţiunile programelor sunt codificate folosind secvenţe de biţi. Deexemplu, secvenţa 10101001 poate determina calculatorul să adune 2 numere, în timp ce altăsecvenţă poate determina calculatorul să execute o altă operaţie. 2.1. Reprezentarea numerelor într-un sistem de numeraţie. Se numeşte sistem de numeraţie, o mulţime finită de simboluri (sau cifre) şi de regulifolosite pentru reprezentarea unui număr. Un sistem de numeraţie poziţional este un sistem denumeraţie la care aportul unei cifre în valoarea totală a unui număr depinde atât de valoareacifrei, cât şi de locul ocupat de cifră în reprezentarea numărului respectiv. Sistemul denumeraţie arab este un sistem de numeraţie poziţional, spre deosebire de sistemul denumeraţie roman care nu este un sistem poziţional. Teorema: Fie p∈ N, p > 1. Atunci (∀) N∈Z, (∃) m∈N astfel încât să avem în mod unicegalitatea : N = xmpm + xm-1pm-1 +.......+ x1p + x0 (1) unde 0 ≤ xi ≤ p-1 (∀) i = 0,1,...,m şi xm≠0 Demostraţie: Se poate presupune că N∈ Z + (dacă N∈ Z- demonstraţia se va face identic pentrunumărul -N ∈ Z + ). Împărţind succesiv la p, obţinem egalităţile : N = N1p + x0, x0 〈 p N1 = N2p + x1, x1 〈 p . (2) . Nm-1 = Nmp + xm-1, xm-1 〈 p Nm = 0*p + xm , xm 〈 p 11
  12. 12. Deoarece N1 〉 N2 〉 N3 〉 ... ≥ 0, se va ajunge inevitabil după un număr de paşi - m - la uncât egal cu zero. Înmulţind cu p0 prima relaţie, cu p1 a doua relaţie ş.a.m.d cu pm ultima relaţie, adunândmembru cu membru şi simplificând, obţinem egalitatea (1). Unicitatea descompuneriinumărului N, într-o sumă ca cea de mai sus, rezultă din unicitatea obţinerii câtului şi restuluiîn relaţiile (2), conform teoremei de împărţire cu rest a două numere întregi. Definiţie : Se numeşte reprezentarea în baza p a numărului întreg N, succesiunea decifre xmxm-1 ... x1x0, unde xi verifică relaţiile : a) 0 ≤ xi ≤ p-1 (∀) i = 0,1,...,m şi xm≠0 (3) b) N= xmpm + xm-1 pm-1 +.......+ x1p + x0 Conform teoremei precedente, reprezentarea (3) este unică. Definiţie : Se numeşte reprezentarea în baza p a numărului real r, succesiunea decifre xmxm-1 ... x1x0,x-1x-2x-3..., unde xi verifică relaţiile : a) 0 ≤ xi ≤ p-1 (∀) i = ... -2,-1,0,1,...,m şi xm≠0 b) r = xmpm + xm-1pm-1 +.......+ x1p + x0 + x-1p-1 + x-2p-2 + .... Se demonstrează că reprezentarea de mai sus este unică. Numărul real r se poate scrie sub forma : r = ri + rl unde ri = [r] - partea întreagă a lui r rl = {r} - partea fracţionară a lui r Conform teoremei demonstrate anterior, numărul întreg ri se scrie în mod unic astfel : ri = xmpm + xm-1pm-1 +.......+ x1p + x0 , unde 0 ≤ xi ≤ p-1 (∀) i = 0,1,...,m şi xm≠0 Înmulţind rl cu p şi reţinând partea întreagă, după care continuând înmulţirea părţilorfracţionare cu p obţinem : rl *p = x-1 + rl1 rl1*p = x-2 + rl2 , x-i - partea întreagă (4) rl2*p = x-3 + rl3 , rli - partea fracţionară ş.a.m.d. Înmulţind relaţiile (4) cu p-1, p-2, p-3 ... şi adunând membru cu membru, dupăsimplificare obţinem: rl = x-1p-1 + x-2p-2 + ... (5) Evident, reprezentarea (5) este unică. Deci r = xmpm + xm-1pm-1 +....+ x1p + x0 + x-1p-1 + x-2p-2 + ... Dacă prin înmulţirea cu p, a părţii fracţionare obţinute într-una din relaţiile (4), obţinemrezultatul 0, numărul real r are un număr finit de cifre zecimale, altfel va avea un numărinfinit de cifre zecimale. 12
  13. 13. În concluzie, conform celor relatate anterior, pentru reprezentarea oricărui număr întregsau real, într-o baza oarecare p, se folosesc numai p simboluri sau cifre. Cifrele sistemuluibinar sunt 0 şi 1, ale sistemului octal (baza 8) sunt 0,1,2,3,4,5,6,7, iar ale sistemuluihexazecimal (baza 16) sunt 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. 2.2. Conversia numerelor dintr-o bază în alta Fie numărul întreg N scris în baza p. Pentru a obţine echivalentul lui în baza q, scrisN(q), va trebui să obţinem o reprezentare de forma ymym-1 ... y1y0, unde N(q) = ymqm + ym-1qm-1+.......+ y1q + y0 şi 0 ≤ yi ≤ q-1 (∀) i = 0,1,...,m; ym≠0. Pentru aceasta, se împarte numărul N(p) la q şi apoi succesiv câturile obţinute, pânăcând se obţine câtul zero. Cifrele reprezentării în baza q sunt resturile împărţirilor succesiveluate în ordinea inversă obţinerii lor. N(p) = N1(p)*q + y0 N1(p) = N2(p)*q + y2 . 0 ≤ yi ≤ q-1, i = 0,1,2,..,m . Nm-1(p) = Nm(p)*q + ym-1 Nm(p) = 0 * q + ym În acest mod se face conversia unui număr întreg, din baza p în baza q, calculele fiindefectuate în baza p. Fie r(p) un număr real scris în baza p. Deci, r(p) se descompune într-o parte întreagă şi oparte fracţionară astfel : r(p) = ri(p) +rl(p). Numărul ri(p) fiind un număr întreg, se converteşte în baza q conform procedurii datemai sus, obţinându-se o reprezentare de forma ymym-1 ... y1y0. Pentru conversia părţiifracţionare, se înmulţeşte rl(p) cu q, se separă partea întreagă de partea fracţionară, apoi secontinuă înmulţirea părţii fracţionare cu q, repetându-se procedeul până când parteafracţionară devine zero, sau până când se obţin cifrele părţii fracţionare în baza q, cu oanumită precizie. rl(p) *q = y-1 + rl1(p) rl1(p)*q = y-2 + rl2(p) rl2(p)*q = y-2 + rl3(p) ş.a.m.d. Deci r(q) = ymqm + ym-1qm-1 +....+ y1q + y0 + y-1q-1 + y-2q-2 + ... , 13
  14. 14. ymym-1 ... y1y0,y-1y-2... fiind reprezentarea în baza q a numărului real r De asemenea, calculele sunt efectuate în baza p. Se pot evidenţia proceduri de conversiea numerelor întregi sau reale, din baza p în baza q, calculele fiind efectuate în baza q. Se vaexemplifica o astfel de procedură în exemplele următoare, transformând numere din baza 2, 8,16 în baza 10, calculele fiind efectuate în baza 10. Sistemele de numeraţie folosite de către utilizatorii de calculatoare, în afară de sistemulzecimal, sunt: sistemul binar, sistemul octal şi sistemul hexazecimal. Sistemul binar estesistemul de numeraţie în care lucrează calculatoarele electronice, datorită faptului că nu aredecât două cifre, ceea ce duce la o implementare uşoară a calculelor în hardware. Sistemele denumeraţie octal şi hexazecimal sunt folosite deoarece comprimă şirurile lungi de biţi dinreprezentarea unui număr în baza 2, iar conversia din baza 2 in baza 8 sau 16, şi invers, seface foarte uşor, fără calcule laborioase. Exemple de conversie dintr-o bază în alta : Exemplu de conversie din baza 10 în baza 2 : 13,725(10) = 13(10) + 0,725(10) 13(10) = 1101(2) 0,725 x 2 = 1,450 = 1 + 0,450 0,450 x 2 = 0,900 = 0 + 0,900 0,900 x 2 = 1,800 = 1 + 0,800 0,800 x 2 = 1,600 = 1 + 0,600 ş.a.m.d. 0,725(10) = 0,1011..(2) Deci 13,725(10) = 1101,1011..(2) Exemplu de conversie din baza 10 în baza 16 : 14
  15. 15. Deci 418(10) = 1A2(16) Exemple de conversie din baza 2,8,16 în baza 10: Fie ymym-1 ... y1y0,y-1y-2... un număr real reprezentat în baza p. Pentru a obţinereprezentarea acestui număr în baza q, calculele fiind efectuate în baza q, va trebui săcalculăm următoarea sumă: ∑ yix pi (în baza q). În cazul numerelor întregi, se calculează osumă asemănătoare, dar din care lipsesc termenii corespunzători puterilor negative ale lui p. 10101(2) = 1x24 + 0x23 + 1x22 + 0x21 + 1x20 = 16 + 0 + 4 + 0 + 1 = 21(10) 1101110(2) = 1x26 + 1x25 + 0x24 + 1x23 + 1x22 + 1x21 + 0x20 = 64 + 32 + 0 + 8 + 4 + + 2 + 0 = 110(10) 101,1(2) = 1x22 + 0x21 + 1x20 + 1x2-1 = 4 + 0 + 1 + 0,5 = 5,5(10) 1A2(16) = 1x162 + 10x161 + 2x160 = 256 +160 + 2 = 418(10) A0B(16) = 10x162 + 0x161 + 11x160 = 2560 + 0 + 11 = 2577(10) 163(8) = 1x82 + 6x81 + 3x80 = 64 + 48 + 3 = 115(10) Exemple de conversie din baza 2 în baza 16 şi invers: Pentru a transforma un număr din baza 2 în baza 16, nu este necesar să facem conversiadin baza 2 în baza 10 şi apoi conversia din baza 10 în baza 16, ci se poate face directconversia din baza 2 în baza 16 sau invers, utilizând tabela din figura 2.1. Pentru a realiza conversia unui număr întreg din baza 2 în baza 16, se împarte numărulbinar în grupe de câte 4 cifre binare, începând de la cifra cea mai puţin semnificativă,înlocuindu-se apoi fiecare grupă de 4 cifre binare cu cifra hexazecimală corespondentă dintabela de mai jos. În cazul numerelor reale, împărţirea în grupe de câte 4 cifre binare se faceîncepând de la virgula zecimală spre cele două capete. Pentru conversia inversă, din baza 16în baza 2, se înlocuieşte fiecare cifră hexazecimală cu grupul corespondent de 4 cifre binaredin tabelă. Zerourile din faţa numărului sunt nesemnificative. Exemple : 110001010011110(2) = 0110 0010 1001 1110 = 629E(16) 10110,101011(2) = 0001 0110, 1010 1100 = 16,AC(16) 1AE(16) = 0001 1010 1110 = 110101110(2) 15
  16. 16. F24A(16) = 1111 0010 0100 1010 = 1111001001001010(2) baza 10 baza 16 baza 2 0 0 0000 1 1 0001 2 2 0010 3 3 0011 4 4 0100 5 5 0101 6 6 0110 7 7 0111 8 8 1000 9 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111 Figura 2.1. Tabela de conversie a cifrelor hexazecimale în baza 2 Într-un mod asemănător, se poate face conversia din baza 2 în baza 8 şi invers, utilizândo tabelă similară, ce asociază fiecărei cifre octale numărul binar echivalent scris pe 3 biţi.Împărţirea numărului binar se face, în acest caz, pe grupe de câte 3 cifre. 2.3. Reprezentarea numerelor în calculator. Coduri de reprezentare. Ţinând cont de reprezentarea internă a semnului numerelor binare, distingemurmătoarele trei coduri de reprezentare: a) codul direct - în care numărul binar este reprezentat prin modulul număruluiprecedat de un bit de semn; 0 dacă este pozitiv, 1 dacă este negativ. Exemple: x = +1101 se reprezintă în cod direct astfel : xd = 01101 y = - 11011,101 → yd = 111011,101 b) codul invers sau codul complementar faţă de 1 - în care dacă numărul este pozitiv,se reprezintă în cod invers la fel ca şi în cod direct, deci precedat de un bit 0. Dacă numărul x 16
  17. 17. este negativ (x < 0), se inversează cifrele reprezentării binare în cod direct a numărului -x,care este un număr pozitiv. Exemple: x = +1101 → xi = 01101 y = -1101,011 → yi = 10010,100 c) codul complementar faţă de 2 - În cazul numerelor pozitive, reprezentarea esteaceeaşi ca şi în codul direct. Pentru numerele negative, codul în complement faţă de 2 seobţine din codul invers, la care se adaugă 1 în rangul cel mai puţin semnificativ. Exemple: x = +1101 → xc = 01101 y = -1101 → yi = 10010 + 1 ⎯−⎯ yc = 10011 În prezent, codul în complement faţă de 2 este acceptat în exclusivitate la majoritateacalculatoarelor electronice, şi îl vom folosi în continuare. La reprezentare internă a unui număr binar, nu se poate face abstracţie de numărul debiţi pe care se reprezintă numărul binar. Dacă se doreşte reprezentarea numărului binar pe unnumăr mai mare de biţi, se face extensia bitului de semn în cei mai semnificativi biţi. Deexemplu, fie numărul zecimal -7, a cărui reprezentare în complement faţă de 2, pe un octet,este 11111001 (+7 reprezentat în cod direct este 0111, deci -7 în cod complementar faţă de 2va fi 1001, la care se face extensia bitului de semn până la octet ). Reprezentat în codcomplementar faţă de 2 pe un cuvânt, -7 va fi 1111111111111001 (de exemplu, în urmaexecuţiei instrucţiunii MOV AX,-7 registrul AX va conţine valoarea binară1111111111111001). Ca o remarcă la reprezentarea în complement faţă de 2, se poate observa că numerelepozitive vor avea întotdeauna cel mai semnificativ bit 0, în timp ce numerele negative voravea 1 în cel mai semnificativ bit. Relativ la modul de reprezentare a virgulei zecimale, numerele reale pot fi reprezentateîn virgulă fixă sau în virgulă mobilă. Un număr real reprezentat în virgulă fixă este o succesiune de cifre împărţite de o marcăzecimală, într-o parte întreagă şi una fracţionară. Astfel, formatul de reprezentare în virgulăfixă conţine un bit de semn, un câmp format dintr-un număr oarecare de biţi pentrureprezentarea părţii întregi a numărului real şi un câmp pentru reprezentarea părţii fracţionare.Aceste câmpuri sunt de lungime constantă. Exemplu de format în virgulă fixă: 17
  18. 18. Reprezentarea în virgulă fixă limitează gama numerelor ce pot fi reprezentate. Astfel,dacă i este numărul de biţi rezervaţi pentru partea întreagă, f numărul de biţi rezervaţi pentrupartea fracţionară, numărul real maxim ce poate fi reprezentat este rmax = 011.. 1,111...1, ceconţine i biţi 1 în faţa virgulei zecimale şi f biţi 1 după virgula zecimală. Dacă în cazul reprezentării în virgulă fixă a numerelor reale, sarcina evidenţei mărciizecimale revine programatorului, în cazul reprezentării în virgulă mobilă, această sarcinărevine calculatorului. Pentru a reprezenta un număr real r în virgulă mobilă sau flotantă,acesta se scrie sub forma : r = + M* bE ; b∈N, b ≥ 2 şi E∈Z M se numeşte mantisă, E exponent, iar b este baza de reprezentare a numărului.Reprezentarea numărului real r de mai sus este unică, dacă 1/b 〈 ⏐M⏐ 〈 1. Operaţia prin carese modifică mantisa pentru a îndeplini această condiţie, ajustând corespunzător exponentul, senumeşte normalizare a mantisei. De exemplu, adunând 0,785x101 (7,85) cu 0,625x101 (6,25),obţinem 1,410x101, iar după normalizare 0,410x102. Exemplu de format în virgulă mobilă : Există mai multe formate standard de reprezentare a numerelor reale în virgulă fixă saumobilă, dar acestea nu vor fi tratate în secţiunea de faţă. Formatul de virgulă mobilă prezentatmai sus este formatul IEEE pentru numere reale scurte (pe 32 de biţi). Operaţiile cu numere învirgulă fixă sunt executate mai repede decât aceleaşi operaţii cu numere în virgulă mobilă,deoarece în cel de-al doilea caz sunt necesare calcule suplimentare, dar sunt preferatenumerele reprezentate în virgulă mobilă datorită faptului că uşurează munca programatorului.Procesoarele din familia Intel 80x86 nu au instrucţiuni de prelucrare a numerelor în virgulămobilă. Pentru aceasta sunt utilizate coprocesoarele aritmetice din familia 80x87. La 80486 şiPentium, coprocesorul arimetic este integrat pe cip împreună cu procesorul principal. 18
  19. 19. 3. LOGICĂ COMBINATORICĂ ŞI SECVENŢIALĂ 3.1. Elemente de logică booleană. Funcţii logice. În practica electronică, cifrele binare se reprezintă prin două niveluri de tensiune.Astfel, pentru familia de circuite logice integrate TTL - Tranzistor Tranzistor Logic - seasignează "1" logic pentru un nivel de tensiune mai mare de 2,4V (cuprins între 2,4V şi 5V),şi un "0" logic pentru un nivel de tensiune mai mic de 0,4V (cuprins între 0 şi 0,4V ). Într-omanieră simplificată, se poate considera că "1" logic este reprezentat de un nivel de tensiuneapropiat de +5Vcc, iar "0" logic este reprezentat de un nivel de tensiune apropiat de 0Vcc,majoritatea circuitelor electronice dintr-un calculator fiind alimentate cu o tensiune electricăcontinuă între +5Vcc şi 0Vcc. Algebra care corespunde logicii binare sau bivalente, utilizate până în prezent încalculatoare, este algebra Boole. Algebra Boole operează pe o mulţime B formată din douăvalori: "0" şi "1" (deci B = {0,1}), pe care se definesc trei legi de compoziţie : negaţia,disjuncţia şi conjuncţia. Complementarea logică sau negaţia (operatorul NOT) este definită prin următorul tabelde adevăr : Simbolul grafic cel mai utilizat pentru reprezentarea operatorului negaţie esteurmătorul: Disjuncţia logică sau suma logică (operatorul SAU,OR) şi conjuncţia logică sauprodusul logic (operatorul ŞI, AND ) sunt definite de următoarele tabele de adevăr: Simbolurile grafice utilizate pentru reprezentarea celor două operaţii logice sunt: 19
  20. 20. Elementele mulţimii B satisfac următoarele proprietăţi, (∀) X,Y,Z ∈B: 1. idempotenţa: X+X = X ; X*X = X 2. comutativitate: X+Y = Y+X ; X*Y =Y*X 3. asociativitate: X+(Y+Z) = (X+Y)+Z ; X*(Y*Z) = (X*Y)*Z 4. distributivitate: X*(Y+Z) = X*Y+X*Z ; X+Y*Z = (X+Y)*(X+Z) 5. existenţa elementului neutru: X+0 = X ; X*1 = X 6. existenţa complementului: X+X = 1 ; X*X = 0 7. dubla negaţie: X=X 8. legile lui De Morgan: X*Y = X+Y ; X+Y = X*Y 9. absorbţia: X*(X+Y) = X ; X+X*Y = X Formulele lui De Morgan ne permit să scriem orice relaţie logică folosind numai doi dincei trei operatori definiţi anterior; sau numai NOT şi OR, sau numai NOT şi AND. Dacăcombinăm cei doi operatori din fiecare pereche de operatori dată mai sus, obţinem încă doinoi operatori, cu tabelele de adevăr şi simbolurile următoare: operatorul NOR (SAU-NU) operatorul NAND (ŞI-NU) Orice relaţie logică se poate scrie utilizând numai unul din operatorii NAND sau NOR. O altă operaţie logică, des utilizată, este operaţia sau relaţia logică SAU EXCLUSIV(XOR), al cărei tabel de adevăr şi simbol grafic sunt date mai jos. 20
  21. 21. O funcţie booleană de n variabile este o funcţie f : Bn→B, unde Bn = BxBx....xB de nori. Valorile unei funcţii booleene pot fi prezentate într-un tabel, cu 2n linii şi n+1 coloane,numit tabel de adevăr al funcţiei. În primele n coloane se trec cele 2n combinaţii de valori alevariabilelor funcţiei, iar în coloana n+1 se trec valorile funcţiei corespunzătoare fiecăreicombinaţii. Exemplu: f(X,Y,Z) = XYZ + YZ +XZ O funcţie booleană, sau o expresie booleană, este în forma canonică disjunctivă, dacă sescrie ca o disjuncţie de mintermeni, şi este în forma canonică conjunctivă, dacă se scrie ca oconjuncţie de maxtermeni. Un mintermen este un produs logic, conţinând fiecare variabilă odată şi numai o dată, fie variabila fie negaţia ei. Un maxtermen este o sumă logică, ce conţinefiecare variabilă o dată şi numai o dată, fie variabila fie negaţia ei. Exemple: f(X,Y,Z) = XYZ +XYZ +XYZ f(X1,X2,X3) = (X1+X2+X3)(X1+X2+X3)(X1+X2+X3) Funcţia logică al cărei tabel de adevăr a fost prezentat mai sus se poate scrieîn forma canonică disjunctivă astfel : f(X,Y,Z) = XYZ +YZ + XZ = XYZ + (X+X)YZ + X(Y+Y)Z = XYZ + XYZ + XYZ +XYZ + XYZ Forma canonică conjunctivă este mai puţin utilizată în practică decât forma canonicădisjunctivă. 3.2. Implementarea şi minimizarea funcţiilor logice Porţile logice sunt circuitele care implementează funcţiile logice de bază: NOT,AND,OR, NAND, NOR, XOR. Prin implementarea unei funcţii logice, se înţelege realizarea ei cuajutorul circuitelor fundamentale sau porţilor logice. Costul unei funcţii logice este egal cunumărul de intrări în circuitele logice elementare ce realizează funcţia dată. Exemple: 1. Să se implementeze funcţia f(X,Y,Z) = XYZ + XY + XYZ 21
  22. 22. 2. Să se implementeze funcţia f(X,Y) = XY + X utilizând întâi porţi AND, OR, NOT, şi apoi utilizând numai porţi NAND. Numărul de niveluri al unei structuri sau implementări logice este egal cu numărulmaxim de circuite pe care le parcurge un semnal de la intrare la ieşire. În primul exemplu,funcţia este implementată pe 3 niveluri logice, în cel de-al doilea exemplu fiind implementatăpe 2 niveluri logice. Prin minimizarea unei funcţii logice se înţelege metodologia obţinerii unei expresiilogice echivalente cu cost minim, pentru un număr dat de niveluri logice. Funcţia dinexemplul 1, de mai sus, poate fi minimizată şi implementată astfel : f(X,Y,Z) = XYZ + XY + XYZ = (X + X)YZ +XY = YZ + XY Costul funcţiei după minimizare este C(f) = 7, spre deosebire de prima implementare, încare costul funcţiei este C(f) = 13. Metoda Veitch - Karnaugh de minimizare a unei functii logice: Se consideră o funcţie de n variabile logice, în forma normală disjunctivă. Se împartcele n variabile în 2 mulţimi de k şi p elemente, k + p = n. Vom forma o matrice cu 2k linii şi 22
  23. 23. 2p coloane, fiecare element al matricii indicând valoarea funcţiei corespunzătoare valorilorvariabilelor ce poziţionează elementul în matrice. În general, putem grupa 21, 22, 23,..., 2ptermeni vecini cu valori 1 ale funcţiei , eliminându-se din termenul rezultant 1,2,3,...,pvariabile, pentru care echivalenţii binari îşi schimbă valoarea în rangurile corespunzătoareacestor variabile. Pentru ordonarea coloanelor şi liniilor matricei Veitch-Karnaugh, sefolosesc combinaţiile posibile ale valorilor variabilelor de intrare, două coloane sau liniialăturate schimbând doar un singur bit. Exemplul 1: Să se minimizeze următoarea funcţie de 4 variabile : f(X1,X2,X3,X4) = X1X2X3X4+ X1X2X3X4+ + X1X2X3X4+ X1X2X3X4+ X1X2X3X4+ X1X2X3X4+ X1X2X3X4 Exemplul 2: Să se minimizeze următoarea funcţie de 3 variabile : f(X1,X2,X3) = X1X2X3+ X1X2X3+ + X1X2X3+ X1X2X3+ X1X2X3+ X1X2X3 3.3. Materializarea funcţiilor logice. Circuite logice. Orice poartă logică definită pentru 2 intrări, şi care implementează una din funcţiilelogice de bază descrise mai sus, poate fi gândită şi utilizată cu un număr mai mare de intrări.Astfel, există porţi logice OR, AND, NAND etc. cu 3, 4 sau chiar 8 intrări. Pe o capsulă decircuit integrat pot fi implementate una sau mai multe porţi, depinzând de dimensiuneacapsulei (numărul de pini al capsulei) precum şi de numărul de intrări ale porţilor logice. De 23
  24. 24. exemplu, pe o capsulă cu 14 pini pot să încapă 6 inversoare, 4 porţi AND cu 2 intrări, 1poartă NAND cu 8 intrări etc. Circuitul 7404, reprezentat mai sus, este o capsulă de 14 pini în tehnologie TTL, careconţine 6 inversoare; circuitul 7400 conţine 4 porţi NAND cu 2 intrări ; circuitul 7432 conţine4 porţi OR cu 2 intrări etc. Capsulele sunt alimentate la o tensiune de +5Vcc. În funcţie de tehnologia de realizare, există trei mari categorii de circuite logice : - TTL - Tranzistor Tranzistor Logic, cu varianta TTL Shottky. - ECL - Emiter Coupled Logic - MOS - Metal Oxid Semiconductor, cu cele 3 variante: PMOS, NMOS, CMOS Caracteristicile principale ale circuitelor logice : - timpul de propagare, notat cu tp şi măsurat în nsec. Este timpul scurs între momentulmodificării unei variabile la intrare şi momentul când răspunsul este furnizat la ieşireacircuitului. - puterea disipată, notată cu P şi măsurată în mW. - Fan-out, ce reprezintă numărul maxim de intrări ce pot fi conectate la ieşirea unuicircuit logic. La ieşirea unui circuit nu pot fi conectate un număr prea mare de intrări. Astfel,pentru circuitele TTL, Fan-out = 10, ceea ce înseamnă că la ieşirea unei porţi logice TTL, dincele prezentate în acest capitol, pot fi conectate maximum 10 intrări ale altor porţi logice. - valorile tipice ale tensiunilor de intrare şi ieşire. De exemplu, pentru familia decircuite logice TTL, tensiunea de ieşire minimă garantată în starea "high" (atunci când la 24
  25. 25. ieşire trebuie să fie "1" logic) este VOH = 2,4V, iar tensiunea de ieşire maximă în starea "low"(atunci când la ieşire trebuie să fie "0" logic) este VOL = 0,4V. În mod obişnuit, ieşirile circuitelor date mai sus nu pot fi conectate împreună. În unelesituaţii, cum este conectarea la magistrală, apare necesitatea conectării împreună a ieşirilormai multor circuite logice. În acest caz devin utile circuitele "tri-state", ieşirea circuituluiavând trei stări posibile : nivel ridicat ("1"), nivel coborât ("0"), şi deconectat sau starea demare impedanţă. Dacă circuitul "tri-state" este activat, ieşirea circuitului va fi în starea "high"sau "low" în funcţie de intrările circuitului. Dacă circuitul este dezactivat, ieşirea circuituluiva fi deconectată de la magistrală, magistrala sau linia comună fiind controlată de ieşirea altuicircuit logic. Exemple: Poartă ŞI-NU cu 2 intrări de date şi o intrare de activare Obs: Semnalele active pe nivel coborât sunt marcate pe desen printr-un cerculeţ, denumirea semnalului fiind supraliniată. Mai jos este prezentat un circuit buffer sau circuit tampon, a cărui ieşire Z va fi egală cuintrarea X dacă intrarea de activare E este 1, altfel ieşirea Z va fi în starea de mare impedanţă. Exemplu de cuplare la o linie de magistrală a mai multor semnale (X1,X2,X3), utilizândcircuite buffer: 25
  26. 26. 3.4. Structuri logice combinaţionale O structură logică combinaţională, sau un circuit logic combinaţional, este un circuit cun intrări şi m ieşiri, la care ieşirile pot fi exprimate ca funcţii numai de intrările circuitului. Decodorul este circuitul logic combinaţional cu n variabile de intrare şi cel mult 2nvariabile de ieşire, la care numai o singură ieşire este activă (de regulă în starea "low") la unmoment dat, celelalte ieşiri fiind inactive. Va fi activă ieşirea yk, k=0,1, ...2n-1, unde kreprezintă corespondentul zecimal al numărului binar XnXn-1...X2X1 existent pe cele n linii deintrare. Circuitul decodor poate avea una sau mai multe intrări de activare. Exemple: Circuitul 7442 este un decodor zecimal, cel mult una din cele 10 ieşiri fiind activă la unmoment dat. Astfel, dacă la intrare avem combinaţia DCBA = 0111, toate ieşirile vor fi în "1"logic, cu excepţia ieşirii 7 care va fi în "0" logic. Circuitul 74138 este un decodor octal cu 3 intrări de activare. Circuitul va fi activ dacăE1=E2=0 şi E3=1. Altfel, toate ieşirile sunt inactive (în starea "high") indiferent de combinaţiade pe liniile C,B,A. Dacă circuitul este activ, acesta va funcţiona conform următoarei tabelede adevăr : 26
  27. 27. Circuitul multiplexor este unul din principalele circuite combinaţionale, fiind denumituneori şi circuit "selector", deoarece este utilizat ca un comutator de selectare a anumitorintrări. De exemplu, un multiplexor cu 8 intrări selectează şi trimite la ieşire una din cele 8intrări, în funcţie de un cod de selecţie pe 3 biţi, aflat pe cele 3 intrări de selecţie. În cazul general, cu ajutorul celor n intrări de selecţie, se selectează una din cele 2nintrări de date, intrare care este cuplată la ieşire. Uneori, circuitele multiplexoare suntprevăzute cu intrări de activare. Un exemplu concret de circuit multiplexor este circuitul74151, care implementează următoarea funcţie logică: Y = S(CBAI0+CBAI1+CBAI2+CBAI3+CBAI4+CBAI5+CBAI6+CBAI7) Dacă S=1 circuitul este inactiv, deci Y=0 indiferent de intrările C,B,A, I0-I7. Circuituleste activ, funcţionând ca un comutator comandat de intrările de selecţie, numai dacă S=0. Un alt circuit logic combinaţional este sumatorul, care realizează suma a două numerebinare. De exemplu, circuitul sumator CDB483 adună două numere binare pe 4 biţi astfel : C4∑3∑2∑1∑0 = X3X2X1X0 +Y3Y2Y1Y0 + C0 27
  28. 28. Pentru a aduna două numere pe n biţi, se conectează mai multe circuite CDB483 încascadă, ca în figura de mai jos. De regulă, se preferă n = 4k. Tot circuite combinaţionale sunt şi unităţile aritmetico-logice, care pot efectua diferiteoperaţii aritmetice şi logice. De exemplu, ALU74181 este o unitate aritmetico-logică pe 4 biţi,care poate realiza 16 operaţii logice şi 16 operaţii aritmetice asupra operanzilor pe 4 biţi.Circuitul are 4 intrări de selecţie a operaţiei şi o intrare de control a modului. Dacă intrarea decontrol a modului este "0", circuitul realizează o operaţie aritmetică asupra operanzilor:adunare, scădere etc., operaţie selectată de cele 4 intrări de selecţie a operaţiei. Dacă intrareade control este "1", circuitul va realiza una din cele 16 operaţii logice (produs logic, sumălogică etc.) selectate de intrările de selecţie a operaţiei. Pentru a realiza operaţii logice sauaritmetice pe mai mulţi biţi, se conectează mai multe circuite ALU74181 în cascadă. Oasemenea unitate aritmetico-logică, dar mult mai performantă, se găseşte în interiorul oricăruimicroprocesor. 3.5. Sisteme logice secvenţiale Capacitatea de a memora este foarte utilă în soluţionarea unor probleme. Nu toateproblemele pot fi rezolvate într-o manieră pur combinaţională. Funcţia de memorare nepermite să reţinem datele până în momentul când este necesară prelucrarea lor, împreună cualte date de intrare. Dispozitivele secvenţiale sau dispozitivele cu memorie, au o intrare deceas (sau intrare de tact), starea lor schimbându-se numai ca urmare a tranziţiei acestui semnalde ceas. 28
  29. 29. Un sistem logic pur combinaţional nu posedă memorie, ieşirile la un moment dat fiindcomplet definite de intrări. La un sistem secvenţial, relaţia dintre ieşiri şi intrări estedeterminată şi de evoluţia anterioară a intrărilor şi ieşirilor. Un sistem logic secvenţial poate fidivizat într-un circuit pur combinaţional şi un circuit cu memorie astfel: Dacă poarta logică este elementul combinaţional de bază al structurilor combinaţionale,bistabilul este elementul secvenţial de bază al sistemelor secvenţiale. Elementele dememorare, şi în particular bistabilii, îşi modifică ieşirea în funcţie de intrări numai ca urmarea tranziţiei semnalului de ceas. 3.5.1. Tipuri de bistabile Bistabilul de tip D - este elementul fundamental de memorare. Ieşirea Q la momentul n+1 (la a n+1-a tranziţie a semnalului de ceas) este egală cuintrarea D la momentul n (intrarea anterioară tranziţiei n+1 a semnalului de ceas). Mai clar,funcţionarea bistabilului de tip D rezultă din următoarea diagramă de semnale: 29
  30. 30. Bistabilul de tip R-S Intrarea R, numită şi intrare de Reset, aduce ieşirea Q a bistabilului în zero la următorulfront activ al semnalului de ceas, sau altfel spus, resetează ieşirea bistabilului. Dacă intrareaS, numită şi intrare de Set, este 1, ieşirea bistabilului va trece în 1 la următorul front activ alceasului. Dacă R=S=0, ieşirea bistabilului rămâne nemodificată după a n+1-a tranziţie asemnalului de ceas. R=S=1 determină trecerea bistabilului într-o stare nedeterminată (ieşireapoate fi atât 0 cât şi 1), fiind necesară evitarea acestei combinaţii. Pot exista bistabile R-S fărăintrare de ceas, bistabilul fiind resetat imediat ce intrarea R=1, şi fiind setat imediat ceintrarea S=1. Bistabilele pot fi active pe nivel sau pe front. În cazul bistabilelor active pe nivel,tranziţia ieşirii bistabilului este determinată de nivelul semnalului de ceas, spre deosebire debistabilele active pe front, la care tranziţia ieşirii este determinată de frontul crescător saudescrescător al semnalului de ceas. Bistabilul de tip D prezentat anterior este un bistabil activpe frontul crescător al semnalului de ceas. Bistabilul de tip J-K Spre deosebire de bistabilul R-S, în cazul bistabilului J-K, dacă J=K=1, ieşirea Q abistabilului la momentul n+1 va fi egală cu ieşirea Q la momentul anterior tranziţiei n+1 asemnalului de ceas, inversată. 30
  31. 31. Bistabilele integrate care pot fi întâlnite pe piaţă sunt puţin mai complicate decât celeprezentate anterior. Astfel, circuitul 7474 (sau echivalentul său CDB474) conţine 2 bistabilede tip D pe capsulă, care arată ca în figura 3.1. R şi S sunt intrări asincrone active pe nivelcoborât, care resetează, respectiv setează ieşirea Q a bistabilului, indiferent de semnalul deceas. De asemenea, fiecare bistabil mai este prevăzut cu o ieşire Q, ce reprezintă ieşirea Qinversată. Ceasul este activ pe front crescător. Capsula 7473 (sau CDB473) conţine 2 bistabileJ-K active pe frontul descrecător al semnalului de ceas, cu intrări asincrone de set şi reset. Figura 3.1. Bistabilele integrate 7474 şi 7473 3.5.2. Registre şi numărătoare Mai multe bistabile pot fi grupate în configuraţii de registre sau numărătoare. Registrelefolosesc, de obicei, ca dispozitiv de memorare a datelor. Spre deosebire de bistabile, carememorează o informaţie de un bit, registrele sunt dispozitive care pot stoca cuvinte (mai mulţibiţi), deci registrele sunt realizate prin alăturare de bistabile, fiecare bistabil memorând unsingur bit. Registrele pot fi cu acces paralel sau cu acces serie. La registrele cu acces paralel,operaţia de încărcare se realizează simultan în cele n circuite basculante ale registrului, pefrontul activ al semnalului de ceas. Exemplu de registru cu acces paralel, implementat cu bistabile de tip D: În cazul registrelor cu acces serie, încărcarea bistabilelor registrului se face serial, de lao intrare serială. Exemplu de registru serie, implementat cu bistabile de tip D: 31
  32. 32. La fiecare front activ al semnalului de ceas SI→Q1, Q1→Q2, Q2→Q3, Q3→Q4. Un exemplu concret de registru integrat este circuitul 7495 (sau CDB495) prezentat înfigura 3.2, şi care este un registru de 4 biţi, cu posibilitate de operare sincronă serie sauparalelă. Funcţionarea circuitului 7495 este următoarea: Dacă S=1, este permisă operareaparalelă, şi se vor încărca în registru, în paralel, datele de la D0-D3, la o tranziţie din 1 în 0 aintrării de tact CP2 (ceas activ pe front descrescător). Dacă S=0, este permisă operarea serie, şila o tranziţie din 1 în 0 a intrării de ceas CP1, se realizează deplasarea serie dreapta ainformaţiei din registru: DS→Q0, Q0→Q1, Q1→Q2, Q2→Q3. Figura 3.2. Circuitele 7495 şi 74193 De asemenea, mai multe bistabile pot forma o configuraţie de numărător, o asemeneaconfiguraţie numărând impulsurile de la intrarea de ceas a bistabilelor. Ieşirile bistabilelorsunt interpretate, în acest caz, ca un număr binar ce reprezintă starea numărătorului, sau cualte cuvinte, ieşirile bistabilelor reprezintă numărul de impulsuri de ceas apărute la intrarea detact a bistabilelor. Astăzi nu se mai realizează practic numărătoare cu circuite bistabileindividuale, existând numeroase numărătoare integrate. Astfel, circuitul 74193 este un numărător binar reversibil de 4 biţi (sau numărătormodulo 16). Circuitul are două intrări de ceas active pe front pozitiv: Cu - pentruincrementarea numărătorului şi Cd - pentru decrementarea numărătorului. Numărătorul poatefi resetat (Y3=Y2=Y1=Y0=0), dacă intrarea R=1. PL este o intrare de comandă a încărcăriiparalele, deci dacă PL efectuează o tranziţie din "1" în "0", se realizează încărcarea paralelă:D0→Y0, D1→Y1, D2→Y2, D3→Y3. Numărarea este posibilă dacă PL=1 şi R=0. Circuitul 32
  33. 33. incrementează (adună 1) numărul binar Y3Y2Y1Y0 la fiecare front crescător al intrării Cu, şidecrementează (scade 1) numărul Y3Y2Y1Y0 la fiecare front crescător al intrării Cd. IeşirileTCD şi TCU sunt "low" la trecerea prin zero a numărătorului când se numără înapoi, respectiv latrecerea prin 15 când se numără înainte. Funcţiile logice realizate de cele două ieşiri sunt: TCU = Y3Y2Y1Y0Cu TCD = Y3Y2Y1Y0Cd Aceste două ieşiri sunt necesare pentru cuplarea mai multor numărătoare 74193 încascadă, în vederea implementării unor numărătoare pe mai mulţi biţi. Funcţionarea ca numărător înainte rezultă din următoarea diagramă de semnale: O diagramă asemănătoare poate fi trasată şi în cazul numărării înapoi. 33
  34. 34. 4. MICROPROCESOARELE DIN FAMILIA INTEL 80x86 4.1. Microprocesorul I80286 4.1.1. Caracteristici generale Microprocesorul IAPX-286, sau I80286, este un microprocesor produs de firma INTEL,aparţinând familiei IAPX, ce cuprinde microprocesoarele I8088, I8086, I80286, I80386,I80486, Pentium. I80286 poate funcţiona până la o frecvenţă de 25MHz, fiind perfectcompatibil în jos cu microprocesoarele anterioare din familie: I8088 şi I8086. Are douămoduri de lucru: modul real şi modul protejat. Setul de instrucţiuni al microprocesoruluiI8086 a fost lărgit cu instrucţiuni specifice modului de lucru protejat, ce oferă suportulnecesar implementării unor sisteme de operare multitasking, cum este OS/2. Într-un asemeneasistem de operare, unitatea centrală de prelucrare serveşte pe rând mai multe taskuri, sauprograme, astfel încât utilizatorul are impresia că sunt rulează mai multe programe simultan. I80286 are magistrala de date de 16 biţi la fel ca şi I8086, dar în schimb are magistralade adrese de 24 de biţi, cu care poate adresa în mod direct un spaţiu de memorie de16Mocteţi. De asemenea, are în compunere o unitate de gestiune a memoriei, prin intermediulcăreia poate adresa o memorie virtuală de 1Goctet. La fel ca şi I8086, poate adresa un spaţiude I/E de 64 Kporturi de 8 biţi sau 32 Kporturi de 16 biţi. I80286 lucrează în conjuncţie cu coprocesorul matematic I80287, care, spre deosebirede I8087, poate asigura asistenţă microprocesorului I80286, în ce priveşte efectuareacalculelor matematice, şi în modul protejat. Microprocesorul I80286 este microprocesorul în jurul căruia sunt realizatecalculatoarele IBM AT sau compatibile, folosind o magistrală de tip ISA - IndustrialStandard Architecture. I80286 este livrat în două moduri diferite: într-o capsulă de plastic deformă pătrată, cu pini numai pe cele 4 laturi ale capsulei, sau într-o capsulă pătrată ce conţineo matrice de pini - Pin Grid Array. 4.1.2. Arhitectura internă a microprocesorului I80286 Microprocesorul I80286 este compus din 4 unităţi independente care lucrează în paralel: - unitatea de interfaţă cu magistrala - BU (Bus Unit); - unitatea instrucţiunilor - IU (Instrucţion Unit); - unitatea de execuţie - EU (Execution Unit); - unitatea de adresare - AU (Adress Unit). 34
  35. 35. Unitatea de interfaţă cu magistrala controlează toate operaţiile pe care microprocesorulle efectuează pe magistrală, generând adresele, datele şi semnalele de control pentru memorieşi porturile de I/E. BU transferă date între memorie sau porturi, şi microprocesor, la cerereaunităţii de execuţie. Dacă BU nu are o astfel de cerere din partea unităţii de execuţie, va aducedin memorie următoarea instrucţiune în secvenţă, pe care o plasează într-o coadă deinstrucţiuni. Aceasta presupune că instrucţiunile se execută în secvenţă, una după alta, înordinea în care apar în memorie. Dacă survine o ruptură în secvenţă (de exemplu oinstrucţiune de salt), coada de instrucţiuni este resetată şi se reîncepe citirea instrucţiunilor cuanticipaţie de la noua adresă. Coada de instrucţiuni este o memorie internă de 6 octeţi, carememorează codurile instrucţiunilor înainte de a fi utilizate de unitatea instrucţiunilor. Acestmecanism de citire cu anticipaţie a instrucţiunilor permite eliminarea timpilor morţi de citiredin memorie a instrucţiunii următoare. Figura 4.1.1. Schema bloc internă a microprocesorului I80286 Unitatea instrucţiunilor primeşte instrucţiuni din coada de instrucţiuni, le decodifică, şile plasează într-o altă coadă, cu lungimea de 3 octeţi, numită coada instrucţiunilordecodificate. Unitatea de execuţie execută instrucţiunile preluate din coada de instrucţiunidecodificate, şi face apel la unitatea de interfaţă cu magistrala, pentru toate transferurile dedate cu memoria sau cu porturile de I/E. Unitatea de execuţie conţine o unitate aritmetico-logică - Arithmetical Logical Unit, destinată efectuării calculelor aritmetice şi logice careintervin în execuţia instrucţiunilor. UAL efectuează calculele manevrând regiştrii generali şi 35
  36. 36. operanzii instrucţiunilor, şi totodată gestionează indicatorii de condiţie şi stare conţinuţi înregistrul indicatorilor de condiţie şi stare F. Unitatea de adresare asigură gestiunea memoriei, mecanismele de protecţie a memorieişi translatarea adreselor virtuale (sau logice) în adrese fizice, care sunt apoi utilizate deunitatea de interfaţă cu magistrala. Arhitectura microprocesorului I80286 este o arhitectură de tip bandă de asamblare, sau"pipe- line", cele 4 unităţi lucrând în paralel, astfel că, spre exemplu, în timp ce unitatea deexecuţie este ocupată cu execuţia instrucţiunii curente, unitatea de interfaţă cu magistralaîncarcă instrucţiunea următoare, sau transferă în memorie rezultatul instrucţiunii executateanterior. În acelaşi timp, unitatea instrucţiunilor decodifică următoarea instrucţiune deexecutat, pe care o pune în coada de instrucţiuni decodificate, pentru a fi preluată de unitateade execuţie. 4.1.3. Registrele microprocesorului I80286 Microprocesorul I80286 conţine 15 registre interne de 16 biţi. Aceste registre pot fi grupate în 5 categorii astfel: - registre generale - registre indicatoare de adresă şi index - registre de segment - registrul pointerului de instrucţiuni - registre de control şi stare Figura 4.1.2. Registrele microprocesorului I80286 Registrele generale AX, BX, CX, DX sunt utilizate în majoritatea instrucţiuniloraritmetice şi logice, şi pot fi folosite atât ca registre pe 16 biţi, cât şi ca registre pe 8 biţi. Deexemplu, registrul AX, registru pe 16 biţi, este compus din registrul AH ce conţine cei 8 biţi 36
  37. 37. mai semnificativi din AX, şi din registrul AL, ce conţine cei mai puţin semnificativi 8 biţi dinAX. Registrele SP şi BP sunt denumite registre indicatoare de adresă (sau pointer) şi suntfolosite numai ca registre pe 16 biţi. Registrul SP conţine deplasamentul în octeţi al vârfuluistivei, faţă de începutul segmentului de stivă curent. De cele mai multe ori, şi registrul BPconţine un deplasament în segmentul de stivă curent. Registrele BX şi BP mai sunt denumiteuneori şi registre bază, fiind desemnate să conţină adresa de bază a unei structuri de date dinmemorie, cum ar fi adresa de bază a unui tablou. Registrele index SI şi DI sunt registre numai pe 16 biţi, şi conţin de regulă un index,care se incrementează sau se decrementează pe măsură ce se examinează o structură de date.Sunt folosite în special de instrucţiunile de prelucrare a şirurilor de caractere. Spaţiul de memorie adresabil de 80286 este împărţit în segmente logice cu dimensiuneamaximă de 64Kb. În general, programele sunt constituite din mai multe segmente (module) decod, date, sau stivă, numai o parte din acestea fiind utilizate la un moment dat.Microprocesorul I80286 permite unui program să aibă acces la 4 segmente simultan.Registrele de segment sunt utilizate pentru a identifica cele 4 segmente curente, fiecareregistru fiind specializat pentru un anumit tip de segmente. Registrele de segment sunt: - CS - registru de segment de cod - DS - registru de segment de date - SS - registru de segment de stivă - ES - registru de segment de date suplimentare Toate registrele de segment au 16 biţi. Registrele de segment pot fi modificate prinprogram. Conţinutul registrelor de segment este interpretat diferit în funcţie demodul de lucru al microprocesorului: real sau virtual. În modul de lucru real, care este modul de lucru compatibil I8086, registrele de segmentconţin cei mai semnificativi 16 biţi ai adresei de bază a segmentelor de memorie. Pentru aface acces la o dată din memorie, microprocesorul trebuie să cunoască adresa de bază asegmentului în care se află data ce se doreşte a fi accesată (adresa primului octet dinsegment), precum şi adresa relativă în segment a datei respective, sau un deplasament, cereprezintă distanţa în octeţi faţă de începutul segmentului. Astfel, în modul real, CS conţine cei mai semnificativi 16 biţi ai adresei de bază asegmentului de cod curent, DS conţine cei mai semnificativi 16 biţi ai adresei de bază asegmentului de date curent ş.a.m.d. Segmentele de cod ale unui program conţin instrucţiunile programului, segmentele dedate (referite de DS şi ES) conţin date sau variabile pentru programul ce se execută,segmentele de stivă, referite prin intermediul registrului de segment SS, conţin zone dememorie organizate pe principiul stivei. 37
  38. 38. În modul de lucru protejat, registrele de segment conţin un index într-o tabelă dedescriptori a segmentelor. O intrare în această tabelă conţine un descriptor de segment, carecuprinde : - adresa de bază a segmentului, - dimensiunea segmentului, - drepturile de acces la segmentul respectiv etc. Deci, registrul de segment indică o intrare într-o tabelă de descriptori a segmentelor,unde se găseşte adresa de bază a segmentului în care se doreşte a se efectua accesul. Dinaceastă cauză, în modul de lucru protejat, registrele de segment mai sunt denumite şi selectoride segment, deoarece selectează un segment dintr-o tabelă ce descrie mai multe segmente. Registrul pointer de instrucţiuni - IP - este un registru de 16 biţi, care conţine adresarelativă în raport cu începutul segmentului de cod curent, a următoarei instrucţiuni ce trebuieexecutată. Registrul IP este transparent la nivelul programatorului, el fiind actualizat automatdupă citirea instrucţiunii curente, astfel încât să indice deplasamentul următoarei instrucţiunide executat. Registrul indicatorilor de stare şi control - F - conţine indicatorii de stare şi control aimicroprocesorului. Indicatorii de stare, în număr de 6, sunt poziţionati de unitatea aritmetico-logică în urma execuţiei unei instrucţiuni, şi reflectă anumite stări ale rezultatului uneioperaţii aritmetice sau logice. Unele instrucţiuni ale microprocesorului testează aceştiindicatori şi, în funcţie de cum sunt poziţionaţi (în 0 sau în 1), se execută anumite acţiunispecifice. Indicatorii de stare sunt următorii: - indicatorul de transport - CF (Carry Flag ) - este unu dacă a apărut transport dinbitul cel mai semnificativ în exterior, sau s-a făcut împrumut în exterior din bitul cel maisemnificativ al rezultatului. Indicatorul CF este afectat şi de instrucţiunile de rotire şideplasare. - indicatorul de paritate -PF (Parity Flag) - este poziţionat (este pus în 1 logic) dacărezultatul execuţiei instrucţiunii are octetul cel mai puţin semnificativ cu un număr par de biţiunu. În caz contrar PF este poziţionat în zero. - indicatorul de transport auxiliar - AF (Auxiliary Carry Flag) - este unu dacă laexecuţia instrucţiunii a apărut un transport între rangul 3 şi rangul 4 al rezultatului. Deexemplu, presupunând că în registrul AH avem valoarea 58H şi în registrul BH valoarea 29H,în urma execuţiei instrucţiunii ADD AH,BH, care adună conţinutul registrului AH cu BH şipune rezultatul în AH, apare un transport din rangul 3 în rangul 4, ceea ce determină setareaindicatorului AF. AH = 01101000 + BH = 00101001 ⎯⎯⎯⎯ 38
  39. 39. AH = 10010001 - indicatorul de zero - ZF (Zero Flag) - este poziţionat în unu dacă rezultatulinstrucţiunii executate anterior a fost zero. - indicatorul de semn - SF (Sign Flag) - este unu dacă s-a obţinut un rezultat negativ(strict mai mic decât zero). Mai precis, SF este identic cu bitul cel mai semnificativ alrezultatului, dat fiind faptul că, în reprezentarea numerelor în complement faţă de 2, numerelenegative au primul bit 1. - indicatorul de depăşire - OF (Overflow Flag) - este unu dacă la execuţia instrucţiuniianterioare a apărut o depăşire, adică dimensiunea rezultatului depăşeşte capacitatea locaţiei dedestinaţie. Indicatorii de control pot fi poziţionati în unu sau în zero prin program, asigurând prinaceasta controlul prin program al unor operaţii ale procesorului. Indicatorii de control sunturmătorii: - indicatorul de direcţie - DF (Direction Flag) - Dacă DF este poziţionat în unu, atuncişirurile de caractere vor fi prelucrate de la adrese mari spre adrese mici de memorie, sau de ladreapta la stânga. Ştergând DF (poziţionând în zero), şirurile vor fi prelucrate de la stânga ladreapta. - indicatorul de întrerupere - IF (Interrupt Flag) - Dacă IF este poziţionat în unu prinprogram, microprocesorul va recunoaşte cererile de întrerupere externă. Ştergând acestindicator, întreruperile externe vor fi invalidate. - indicatorul de urmărire - TF (Trap Flag) - Dacă TF este poziţionat în unu,procesorul intră în modul de execuţie pas cu pas, pentru depanare. În acest mod, dupăexecuţia unei instrucţiuni se generează o întrerupere internă, ceea ce dă posibilitateainvestigării rezultatului execuţiei fiecărei instrucţiuni dintr-un program. Indicatorii de stare şi control prezentaţi mai sus sunt aceeaşi cu indicatorii de condiţie şistare ai microprocesorului I8086. De fapt, toate registrele prezentate anterior pot fi întâlnite şila I8086. În plus faţă de I8086, I80286 mai conţine în registrul indicatorilor de condiţie şistare, trei biţi, care sunt folosiţi numai în modul protejat, fiind ignoraţi în modul de lucru real.Aceştia sunt: - indicatorul NT (Nested Task) - ce indică dacă instrucţiunea curentă evoluează încadrul aceluiaşi task, sau ea provoacă o schimbare de task. - câmpul IOPL (I/O Priviledge Level) - format din 2 biţi, şi care reprezintă nivelul deprivilegiu cel mai slab, pentru care nivelul taskului în curs de execuţie trebuie să fie superiorsau egal, pentru a putea executa instrucţiuni de I/E. Un nivel de privilegiu este mai slab, dacănumeric este mai mare. De exemplu, nivelul 3 este mai slab decât nivelul 2. Registrul indicatorilor de condiţie şi stare are următoarea configuraţie : 39
  40. 40. Un registru care nu poate fi întâlnit la I8086, este registrul sau cuvântul de stare masină-MSW (Machine Status Word), cu următoarea configuraţie: Microprocesorul I80286 nu foloseşte decât cei mai puţin semnificativi 4 biţi ai acestuiregistru de 16 biţi, ceilalţi biţi fiind rezervaţi pentru 80386. Semnificaţia biţilor esteurmătoarea: - PE (Protected mode Enable) - Dacă acest bit este poziţionat în unu prin program,I80286 va intra în modul protejat. Odată poziţionat în unu, numai prin resetareamicroprocesorului acest bit poate fi adus în zero, determinând intrarea microprocesorului80286 în modul de lucru real. La microprocesorul 80386, acest bit poate fi poziţionat în zeroprin program. - MP (Monitor Processor extension) - Dacă MP=1 se indică prezenţa unui coprocesormatematic. - EM (Coprocessor EMulation) - Dacă EM este setat, toate funcţiile coprocesoruluimatematic vor fi emulate. Aceasta înseamnă că, spre exemplu, un logaritm nu este calculat decoprocesorul matematic I80287, ci de o rutină din biblioteca matematică, folosind numaiinstrucţiuni ale microprocesorului I80286. - TS (Task Switch) - Dacă bitul este setat a avut loc o comutare de task, şi este posibilsă se determine dacă coprocesorul matematic execută încă o instrucţiune a taskului precedent,sau este pregătit pentru un nou task. Deoarece anumite instrucţiuni ale coprocesorului 80287necesită până la 1000 de perioade de ceas, este posibil ca I80286 să servească alt task în acesttimp, reîntorcându-se la taskul precedent atunci când coprocesorul a terminat de executatinstrucţiunea.4.1.4. Operaţiile de bază pe magistrală ale microprocesorului I80286 Activitatea pe magistrală a microprocesorului I80286 diferă mult faţă de activitateaprocesoarelor anterioare, datorită mecanismului de tip "pipe-line" realizat de I80286.Procesorul I80286 plasează adresele pe magistrala de adrese înaintea sfârşitului ciclului demagistrală precedent, datele citite sau scrise fiind valide pe magistrala de date şi la începutulciclului de magistrală următor. Acest lucru a permis reducerea ciclului de magistrală la numaidoi cicli procesor, în timp ce ar fi fost necesari trei cicli procesor. Se definesc următoarelenoţiuni: - Ciclul de ceas sistem - este timpul scurs între două fronturi crescătoare alesemnalului de ceas de la intrarea CLK a microprocesorului (perioada ceasului extern). 40
  41. 41. - Ciclul procesor - este format din doi cicli de ceas sistem. Microprocesorul foloseşteun ceas intern PCLK, format prin divizarea cu doi a ceasului sistem CLK. Ciclul procesor esteperioada ceasului PCLK. - Ciclul de magistrală - este timpul necesar unui transfer de date pe magistrală (deexemplu, citirea unui cuvânt din memorie sau porturile de intrare, sau scrierea unui cuvânt înmemorie sau porturile de ieşire ). - Ciclul instrucţiune - este timpul necesar execuţiei unei instrucţiuni, şi este format dincicli de magistrală şi din cicli interni ai microprocesorului. În general, orice microprocesor execută un program prin execuţia repetată aurmătorilor paşi: - aducerea (citirea) instrucţiunii următoare din memorie; - aducerea sau citirea operanzilor din memorie, dacă instrucţiunea citită anterior necesită operanzi din memorie; - efectuarea prelucrărilor numerice asupra operanzilor; - transferul (scrierea) rezultatului în memorie, dacă instrucţiunea prevede acest lucru. Ciclul instrucţiune este de fapt timpul de execuţie al celor două mari etape care intervinîn execuţia unei instrucţiuni: citirea instrucţiunii din memorie, şi execuţia propriu-zisă ainstrucţiunii, ce cuprinde citirea operanzilor, efectuarea calculelor şi scrierea rezultatului. Există patru tipuri de cicli procesor, numite şi stări, fiecare stare fiind caracterizatăprintr-o anumită activitate pe magistrală. Cele 4 stări sunt: - TI (Idle) - stare inactivă; - TS (Status) - stare de generare a semnalelor de stare; - TC (Command) - stare de comandă în curs; - TH (Hold) - stare de abandon a magistralei. Toate stările durează o perioadă de ceas procesor PCLK, adică 2 perioade de ceassistem CLK. Starea TI indică faptul că nu se solicită nici un transfer de date pe magistrală, procesorulcontrolând magistrala ca "master", dar neefectuând transferuri de date pe magistrală. Starea activă TS este semnalizată prin trecerea pe nivel coborât a liniilor de stare S0şi/sau S1, care indică tipul operaţiei pe magistrală. Tot în această stare, sunt generatesemnalele de control, semnalele de adresă şi, în cazul unui ciclu de scriere, sunt generate şisemnalele de date. Starea TC urmează după o stare TS, şi semnifică o operaţie în curs de execuţie pemagistrală. În această stare sunt efectuate transferurile de date între memorie sau porturi pe deo parte, şi procesor pe de altă parte. Starea TH indică faptul că I80286 a pierdut controlul magistralei. În această staremagistrala este folosită de un alt dispozitiv, pentru efectuarea transferurilor de date, 80286 41
  42. 42. fiind deconectat de la magistrală (toate semnalele de la pinii procesorului sunt în starea demare impedanţă). Microprocesorul poate să execute următoarele operaţii pe magistrală : - citire / scriere memorie; - citire / scriere porturi de I / E; - recunoaştere întrerupere; - HALT sau blocare ("shutdown"). Figura 4.1.3. Ciclul de citire În cea de-a doua perioadă de ceas sistem a stării TC a ciclului de magistrală precedent,procesorul plasează, pe magistrala de adrese, adresa de memorie sau adresa portului de I/E, şiactivează semnalele M/IO şi COD/INTA de pe magistrala de control, pentru a indica ooperaţie cu memoria sau cu porturile de I/E. În starea TS a ciclului de citire, procesorulactivează semnalele de stare S0 şi S1, şi anume: S0 pe nivel ridicat şi S1 pe nivel coborât,pentru a indica un ciclu de citire. Semnalul M/IO permite distincţia între un acces la memorie şi un acces la porturile deI/E astfel: M/IO = 1 - indică o operaţie cu memoria M/IO = 0 - indică o operaţie cu porturile de I/E Semnalul COD/INTA, combinat cu semnalul M/IO, permite distincţia între citirea unuioperand din memorie şi citirea codului unei instrucţiuni când M/IO = 1, sau permite distincţiaîntre o operaţie de recunoaştere a întreruperii şi o operaţie de citire/scriere port de I/E, astfel : M/IO = 1 COD/INTA = 1 - citire cod instrucţiune din memorie COD/INTA = 0 - citire operand / scriere rezultat din/în memorie M/IO = 0 COD/INTA = 1 - citire/scriere port de I/E COD/INTA = 0 - recunoaştere întrerupere 42
  43. 43. Semnalele S0 şi S1 de pe magistrala de control disting între o operaţie de citire, scrieresau recunoaştere întrerupere astfel: S1 S0 0 0 - recunoaştere întrerupere 0 1 - citire port sau memorie 1 0 - scriere port sau memorie 1 1 - neutilizată În intervalul de timp scurs între furnizarea adreselor pe magistrala de adrese, la sfârşitulciclului de magistrală precedent, şi cea de-a doua jumătate a stării TC a ciclului de citire,memoria sau portul adresat trebuie să furnizeze pe magistrala de date conţinutul locaţiei dememorie adresate sau conţinutul portului adresat, în vederea citirii de către procesor. Dacămemoria sau portul nu sunt atât de rapide, se vor lansa alţi cicli TC, până când datele suntdisponibile pe magistrala de date. La sfârşitul stării TC a ciclului de citire, procesorul testează semnalul READY, careeste controlat de memorie şi porturile de I/E. Dacă semnalul READY = 0, ceea ce specificăfaptul că datele sunt disponibile pe magistrală, ciclul de magistrală curent se va termina,procesorul citind (preluând) datele de pe magistrala de date. Dacă READY = 1, se specificăfaptul că memoria sau portul adresat nu a furnizat încă datele pe magistrala de date, şi se vagenera încă o stare TC, la sfârşitul căreia se va testa din nou semnalul READY ş.a.m.d. (se vaprelungi ciclul de citire curent cu încă o stare TC). Ciclul de scriere este similar cu ciclul de citire, procesorul activând corespunzător A0-A23, M/IO, COD/INTA la sfârşitul ciclului de magistrală precedent, după care, în starea TS aciclului de magistrală curent, pune S1 pe 1, S0 pe 0, indicând o operaţie de scriere, şi pemagistrala de date pune datele în vederea scrierii în memorie sau portul adresat. Dacămemoria sau portul nu reuşesc să efectueze operaţia de scriere în timp util, vor ţine semnalulREADY pe 1, ceea ce determină procesorul să prelungească ciclul de magistrală curent custări TC suplimentare. 43

×