SlideShare uma empresa Scribd logo
1 de 191
Baixar para ler offline
CUPRINS

1. 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. ….……........... 5
2. 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. ................ 16
3. 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. .............................................................. 31
4. 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. ......................................................................................….…...... 73
5. Structura calculatoarelor personale IBM. ..................................................... 76
   5.1. Generalităţi. ...........................................................................................… 76



                                                         1
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. ......................................….................. 106
6. 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. ...................................... 125
7. 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. ....................................................…. 189
Bibliografie. ...................................................................................................…. 191




                                                          2
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 de
ieşire sau rezultatele prelucrării, fiind compus din două părţi principale: hardware şi
software. Hardware este un termen general, utilizat pentru a desemna partea fizică a unui
calculator, alcătuită din componente electronice şi mecanice, împreună cu totalitatea
dispozitivelor folosite de calculator în prelucrarea informaţiei. Software este tot un termen
general, care desemnează totalitatea programelor folosite de un calculator, pentru a
transforma 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 sau
nivele concentrice, fiecare nivel exterior implicând existenţa nivelelor interioare, aşa cum
este 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 între
hardware-ul calculatorului şi restul software-ului, toate celelalte programe utilizând
hardware-ul calculatorului prin intermediul sistemului de operare.
      Software-ul utilitar pune la dispoziţia utilizatorului o multitudine de instrumente
software 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 de
calcul. Programele din cea de-a doua categorie sunt uneori direct invocate de către sistemul
de 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, calculatoare
medii sau microcalculatoare, în principal pe baza dimensiunii memoriei şi vitezei de
prelucrare a datelor, odată cu apariţia calculatoarelor personale comerciale în 1976, când
Steven Jobs şi Steve Wozniak au fondat firma APPLE, şi odată cu creşterea gradului de
integrare a componentelor electronice, noţiunile de calculatoare mici, medii sau mari nu mai
sunt 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 o
capacitate de memorare şi o viteză de prelucrare mult superioară capacităţii de memorare şi
vitezei de prelucrare de la calculatoarele mari din anii '70.



                                                3
Figura 1.1. Structura hard-soft a unui calculator

      Calculatoarele personale pot fi întâlnite astăzi în birouri, în şcoli, în întreprinderi, la
domiciliu. Întrucât ele au devenit din ce în ce mai puternice, au preluat multe din sarcinile
calculatoarelor mari de acum 20 -30 de ani.
      Termenul de calculator personal generează confuzie, deoarece atunci când IBM a
produs primul său calculator personal, în 1981, l-a numit IMB Personal Computer sau IBM
PC. Pentru unii, termenul de calculator personal înseamnă numai calculatoarele IBM sau
compatibile hardware cu acestea. Dar, prin extensie, prin calculator personal se poate înţelege
orice calculator monoutilizator cu destinaţie generală.
      Calculatoarele cu destinaţie generală sunt acele calculatoare capabile să rezolve o mare
varietate de probleme, adaptabilitatea la fiecare tip de problemă realizându-se prin
intermediul programelor. Nu toate calculatoarele sunt calculatoare cu destinaţie generală.
Astăzi sunt produse o gamă largă de calculatoare dedicate, destinate rezolvării unor probleme
specifice, un calculator dedicat fiind capabil să ruleze numai programele necesare rezolvării
tipului respectiv de probleme pentru care este dedicat calculatorul. Calculatoare dedicate pot
fi întâlnite în ceasurile electronice, camerele video, pompele de benzină, sistemele de ghidare
ale rachetelor, sistemele de control ale roboţilor industriali etc.
      Până acum câţiva ani, termenii de calculator personal (Personal Computer) şi
calculator de birou (Desktop Computer) desemnau unul şi acelaşi lucru. Astăzi, noţiunea de
calculator personal tinde să cuprindă şi acele calculatoare portabile, de mici dimensiuni, şi
care nu pot fi desemnate prin termenul de calculator de birou sau "desktop computer", care
este folosit în continuare numai pentru calculatoarele ce pot fi întâlnite în mod uzual în
birouri, şi care sunt destinate rezolvării problemelor curente dintr-un birou: procesări de
texte, baze de date, dezvoltări de programe etc.


                                                 4
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 cristale
lichide (LCD - Liquid Cristal Display), fiind alimentate cu energie electrică de la o baterie
reîncărcabilă. Calculatoarele "lap-top" mai sunt desemnate şi prin termenul de "notebook
computer".
      Un alt termen controversat este cel de staţie de lucru ( "workstation" ). O staţie de lucru
este un calculator de birou performant, fiind mai puternic decât calculatoarele personale
uzuale (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ât
staţiile de lucru devin din ce în ce mai ieftine, şi calculatoarele personale din ce în ce mai
puternice, este foarte dificil de trasat o linie de departajare între o staţie de lucru şi cele mai
puternice calculatoare personale.
      În afara tipurilor de calculatoare descrise mai sus, şi care sunt în esenţă calculatoare
monoutilizator, deşi pot fi folosite şi ca sisteme multiutilizator, mai pot fi întâlnite astăzi
calculatoare şi mai puternice, care sunt destinate din start lucrului cu mai mulţi utilizatori în
acelaşi timp, în vederea rezolvării unor probleme deosebit de complexe. Asemenea
calculatoare sunt desemnate prin termenul de "mainframe computers", un exemplu de
calculator "mainframe" fiind calculatorul utilizat pentru rezervarea locurilor la o companie de
transport 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. Agentul
companiei aeriene comunicã cu calculatorul "mainframe" prin intermediul unui terminal, ce
este un ansamblu format din tastatură şi ecran, şi care transferă informaţiile către şi de la
calculatorul "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 calculator
monoutilizator 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 numai
calculatoarele 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 unitate
centrală 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
- 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 în
conformitate cu o secvenţă de operaţii elementare, sau instrucţiuni, numită program. Deci, o
unitate centrală de prelucrare poate executa un set limitat de operaţii elementare, care
compun repertoriul de instrucţiuni al UCP-ului respectiv. La calculatoarele din generaţiile
anterioare, UCP-ul era compus, din punct de vedere constructiv, din foarte multe
componente. Datorită creşterii gradului de integrare a componentelor electronice, s-a ajuns ca
o unitate centrală de prelucrare să fie condensată într-un singur circuit integrat. O unitate
centrală de prelucrare realizată pe o singură pastilă de siliciu (sau cip) se numeşte
microprocesor.
     Programele care sunt executate de microprocesor sunt stocate în memoria internă a
calculatorului 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 memorie
externă. Cele mai utilizate dispozitive de memorie externă sunt dispozitivele magnetice:
discuri flexibile (floppy disks), benzile magnetice, discurile de mare capacitate sau discurile
hard (hard disks), o altã denumire frecvent utilizată pentru acestea din urmă fiind cea de
discuri 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 memoria
internă. Deci, un microprocesor execută secvenţe de instrucţiuni din memoria internă.



                                               6
Pentru a "conversa" cu utilizatorul, un calculator dispune de următoarele dispozitive
periferice 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 particular
rezultatele prelucrării, şi imprimanta, pentru tipărirea pe hârtie a acestor informaţii. Unitatea
centrală de prelucrare preia date de la dispozitivele de intrare prin intermediul porturilor de
intrare, ş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 constitutiv
principal al unui calculator personal, este şi această conectare a tuturor resurselor sale prin
intermediul 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 calculatorului
realizat în jurul procesorului respectiv. Dacă magistrala de date are 16 linii, deci transferurile
de date se pot face numai pe cuvânt (1cuvânt = 2 octeţi), se spune că avem un calculator pe
16 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 efectua
transferuri de date pe magistrală. De exemplu, prin utilizarea unui dispozitiv de acces direct
la memorie, sau dispozitiv DMA (Direct Memory Access), procesorul poate ceda magistrala
acestui dispozitiv DMA, care efectuează transferuri de date între dispozitivele periferice şi
memorie, microprocesorul fiind degrevat de sarcina unor astfel de transferuri, şi efectuând în
acest timp alte operaţii, care duc la creşterea gradului de paralelism şi implicit la creşterea
vitezei de calcul. Când transferul DMA s-a terminat, dispozitivul DMA anunţă



                                                   7
microprocesorul, printr-o linie a magistralei, că poate prelua controlul magistralei, şi deci
poate 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 AT
utilizau unul din microprocesoarele I8088 sau I8086 ale firmei INTEL, calculatoarele din
familia IBM PS/2 unul din microprocesoarele I8086, I80286, I80386 sau chiar I80486, iar
calculatoarele IBM actuale folosesc procesoare puternice cum ar fi Pentium II sau Pentium
III.
       Pentru exemplificare, microprocesorul I8088 are magistrala de date de 8 biţi, magistrala
de adrese de 16 biţi, magistrala de control de 8 biţi, iar microprocesorul I8086 are magistrala
de 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 de
memorie, unde na este numărul de linii de adresă ale magistralei microprocesorului. La
calculatoarele personale actuale, unitatea elementară de memorie care poate fi adresată este
octetul. 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 16
linii de date, se pot face transferuri de date între microprocesor şi memorie atât pe octet cât şi
pe cuvânt (1 cuvânt = 2 octeti = 16 biţi). La microprocesoarele I80386 şi I80486, care au
magistrala 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 memorie
este 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ă de
intrare/ieşire. Totalitatea adreselor de I/E formează spaţiul de I/E al unui microprocesor. La
microprocesorul I8086, porturile pot fi pe 8 sau 16 biţi, după cum microprocesorul poate citi
sau scrie date din/în porturile respective (pe octet sau pe cuvânt). Procesoarele din familia
Intel 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 folosit
pentru sincronizarea operaţiilor sale interne. Frecvenţa semnalului de ceas determină viteza
cu care microprocesorul procesează datele, şi este important ca această frecvenţă să fie cât
mai 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
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 Inline
Packages), 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
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 o
valoare. Astfel, cuvintele, numerele, imaginile de pe o foaie de hârtie sunt simboluri ce
reprezintă o informaţie .
      Un calculator nu poate înţelege cuvinte, imagini sau chiar litere, şi nu poate procesa
informaţ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". Un
calculator poate procesa cantităţi mai mari de informaţie, tratând grupurile de biţi ca unităţi de
informaţie. Astfel, o colecţie de 8 biţi numită octet sau "byte", unde fiecare bit poate fi 0 sau
1, poate distinge între 256 de stări diferite ( 28=256 ), deci dacă am vrea să comunicăm cu
cineva folosind un octet, am putea transmite cel mult 256 de mesaje diferite, fiecare mesaj
fiind 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 şir
de biţi poate fi un număr, o literă a alfabetului, o instrucţiune a unui program sau orice alt
lucru. Deoarece calculatoarele reduc orice informaţie la o combinaţie de 0 şi 1, numerele din
calculator 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 şi
caracterele, calculatorul procesând cuvinte, propoziţii etc. Pentru aceasta, este necesar ca
fiecare 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 sunt
ASCII - American Standard Code for Information Interchange - şi EBCDIC - Extended
Binary Coded Decimal Interchange Code. În prezent, marea majoritate a calculatoarelor
acceptă numai codul ASCII, în care fiecărui caracter alfanumeric îi corespunde un cod unic pe
7 biţi, sau pe 8 biţi în cazul codului ASCII extins. Întrucât codul ASCII este intens folosit de
către utilizatori, este necesară menţionarea codurilor ASCII ale celor mai utilizate caractere :


       A - 65          a - 97          0 - 48          ' ' - 32 ( blanc )


                                                10
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. De
exemplu, 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 reguli
folosite pentru reprezentarea unui număr. Un sistem de numeraţie poziţional este un sistem de
numeraţie la care aportul unei cifre în valoarea totală a unui număr depinde atât de valoarea
cifrei, cât şi de locul ocupat de cifră în reprezentarea numărului respectiv. Sistemul de
numeraţie arab este un sistem de numeraţie poziţional, spre deosebire de sistemul de
numeraţ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 unic
egalitatea :
                  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 pentru
numă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
Deoarece N1 〉 N2 〉 N3 〉 ... ≥ 0, se va ajunge inevitabil după un număr de paşi - m - la un
câ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ând
membru cu membru şi simplificând, obţinem egalitatea (1). Unicitatea descompunerii
numă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 de
cifre 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 de
cifre 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ţilor
fracţ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ţinem
rezultatul 0, numărul real r are un număr finit de cifre zecimale, altfel va avea un număr
infinit de cifre zecimale.


                                                        12
În concluzie, conform celor relatate anterior, pentru reprezentarea oricărui număr întreg
sau real, într-o baza oarecare p, se folosesc numai p simboluri sau cifre. Cifrele sistemului
binar sunt 0 şi 1, ale sistemului octal (baza 8) sunt 0,1,2,3,4,5,6,7, iar ale sistemului
hexazecimal (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, scris
N(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 succesive
luate î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 fiind
efectuate în baza p.
      Fie r(p) un număr real scris în baza p. Deci, r(p) se descompune într-o parte întreagă şi o
parte 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 date
mai sus, obţinându-se o reprezentare de forma ymym-1 ... y1y0. Pentru conversia părţii
fracţionare, se înmulţeşte rl(p) cu q, se separă partea întreagă de partea fracţionară, apoi se
continuă înmulţirea părţii fracţionare cu q, repetându-se procedeul până când partea
fracţionară devine zero, sau până când se obţin cifrele părţii fracţionare în baza q, cu o
anumită 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
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 conversie
a numerelor întregi sau reale, din baza p în baza q, calculele fiind efectuate în baza q. Se va
exemplifica 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 sistemul
zecimal, sunt: sistemul binar, sistemul octal şi sistemul hexazecimal. Sistemul binar este
sistemul de numeraţie în care lucrează calculatoarele electronice, datorită faptului că nu are
decât două cifre, ceea ce duce la o implementare uşoară a calculelor în hardware. Sistemele de
numeraţie octal şi hexazecimal sunt folosite deoarece comprimă şirurile lungi de biţi din
reprezentarea unui număr în baza 2, iar conversia din baza 2 in baza 8 sau 16, şi invers, se
face 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
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ţine
reprezentarea 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ă o
sumă 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 conversia
din baza 2 în baza 10 şi apoi conversia din baza 10 în baza 16, ci se poate face direct
conversia 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ărul
binar î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ă din
tabela 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 binare
din 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
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ând
o 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, distingem
următoarele trei coduri de reprezentare:
       a) codul direct - în care numărul binar este reprezentat prin modulul numărului
precedat 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
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 este
aceeaşi ca şi în codul direct. Pentru numerele negative, codul în complement faţă de 2 se
obţ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 majoritatea
calculatoarelor electronice, şi îl vom folosi în continuare.
      La reprezentare internă a unui număr binar, nu se poate face abstracţie de numărul de
biţi pe care se reprezintă numărul binar. Dacă se doreşte reprezentarea numărului binar pe un
număr mai mare de biţi, se face extensia bitului de semn în cei mai semnificativi biţi. De
exemplu, 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 2
va fi 1001, la care se face extensia bitului de semn până la octet ). Reprezentat în cod
complementar faţă de 2 pe un cuvânt, -7 va fi 1111111111111001 (de exemplu, în urma
execuţ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ă numerele
pozitive vor avea întotdeauna cel mai semnificativ bit 0, în timp ce numerele negative vor
avea 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 pentru
reprezentarea 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
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 pentru
partea fracţionară, numărul real maxim ce poate fi reprezentat este rmax = 011.. 1,111...1, ce
conţ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ărcii
zecimale 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 care
se modifică mantisa pentru a îndeplini această condiţie, ajustând corespunzător exponentul, se
numeş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ă sau
mobilă, dar acestea nu vor fi tratate în secţiunea de faţă. Formatul de virgulă mobilă prezentat
mai sus este formatul IEEE pentru numere reale scurte (pe 32 de biţi). Operaţiile cu numere în
virgulă 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 preferate
numerele 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 şi
Pentium, coprocesorul arimetic este integrat pe cip împreună cu procesorul principal.



                                                18
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 - se
asignează "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-o
manieră simplificată, se poate considera că "1" logic este reprezentat de un nivel de tensiune
apropiat 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 în
calculatoare, 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 tabel
de adevăr :




      Simbolul grafic cel mai utilizat pentru reprezentarea operatorului negaţie este
următorul:




      Disjuncţia logică sau suma logică (operatorul SAU,OR) şi conjuncţia logică sau
produsul 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
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 din
cei 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ă doi
noi 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
O funcţie booleană de n variabile este o funcţie f : Bn→B, unde Bn = BxBx....xB de n
ori. 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 ale
variabilelor funcţiei, iar în coloana n+1 se trec valorile funcţiei corespunzătoare fiecărei
combinaţii.
        Exemplu: f(X,Y,Z) = XYZ + YZ +XZ




      O funcţie booleană, sau o expresie booleană, este în forma canonică disjunctivă, dacă se
scrie ca o disjuncţie de mintermeni, şi este în forma canonică conjunctivă, dacă se scrie ca o
conjuncţie de maxtermeni. Un mintermen este un produs logic, conţinând fiecare variabilă o
dată şi numai o dată, fie variabila fie negaţia ei. Un maxtermen este o sumă logică, ce conţine
fiecare 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 cu
ajutorul circuitelor fundamentale sau porţilor logice. Costul unei funcţii logice este egal cu
numă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
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ărul
maxim 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 expresii
logice echivalente cu cost minim, pentru un număr dat de niveluri logice. Funcţia din
exemplul 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, în
care 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 împart
cele n variabile în 2 mulţimi de k şi p elemente, k + p = n. Vom forma o matrice cu 2k linii şi


                                                22
2p coloane, fiecare element al matricii indicând valoarea funcţiei corespunzătoare valorilor
variabilelor ce poziţionează elementul în matrice. În general, putem grupa 21, 22, 23,..., 2p
termeni vecini cu valori 1 ale funcţiei , eliminându-se din termenul rezultant 1,2,3,...,p
variabile, pentru care echivalenţii binari îşi schimbă valoarea în rangurile corespunzătoare
acestor variabile. Pentru ordonarea coloanelor şi liniilor matricei Veitch-Karnaugh, se
folosesc combinaţiile posibile ale valorilor variabilelor de intrare, două coloane sau linii
ală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ţiile
logice 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ă de
circuit integrat pot fi implementate una sau mai multe porţi, depinzând de dimensiunea
capsulei (numărul de pini al capsulei) precum şi de numărul de intrări ale porţilor logice. De


                                              23
exemplu, pe o capsulă cu 14 pini pot să încapă 6 inversoare, 4 porţi AND cu 2 intrări, 1
poartă NAND cu 8 intrări etc.




      Circuitul 7404, reprezentat mai sus, este o capsulă de 14 pini în tehnologie TTL, care
conţine 6 inversoare; circuitul 7400 conţine 4 porţi NAND cu 2 intrări ; circuitul 7432 conţine
4 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 momentul
modificării unei variabile la intrare şi momentul când răspunsul este furnizat la ieşirea
circuitului.




        - 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 unui
circuit 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, din
cele 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 de
circuite logice TTL, tensiunea de ieşire minimă garantată în starea "high" (atunci când la




                                                 24
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 unele
situaţii, cum este conectarea la magistrală, apare necesitatea conectării împreună a ieşirilor
mai multor circuite logice. În acest caz devin utile circuitele "tri-state", ieşirea circuitului
având trei stări posibile : nivel ridicat ("1"), nivel coborât ("0"), şi deconectat sau starea de
mare 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 circuitului
va fi deconectată de la magistrală, magistrala sau linia comună fiind controlată de ieşirea altui
circuit 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ă cu
intrarea 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ând
circuite buffer:




                                                  25
3.4. Structuri logice combinaţionale

      O structură logică combinaţională, sau un circuit logic combinaţional, este un circuit cu
n 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 2n
variabile de ieşire, la care numai o singură ieşire este activă (de regulă în starea "low") la un
moment dat, celelalte ieşiri fiind inactive. Va fi activă ieşirea yk, k=0,1, ...2n-1, unde k
reprezintă corespondentul zecimal al numărului binar         XnXn-1...X2X1   existent pe cele n linii de
intrare. 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 un
moment 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ţia
de pe liniile C,B,A. Dacă circuitul este activ, acesta va funcţiona conform următoarei tabele
de adevăr :


                                                  26
Circuitul multiplexor este unul din principalele circuite combinaţionale, fiind denumit
uneori şi circuit "selector", deoarece este utilizat ca un comutator de selectare a anumitor
intrări. De exemplu, un multiplexor cu 8 intrări selectează şi trimite la ieşire una din cele 8
intră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 2n
intrări de date, intrare care este cuplată la ieşire. Uneori, circuitele multiplexoare sunt
prevăzute cu intrări de activare. Un exemplu concret de circuit multiplexor este circuitul
74151, 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. Circuitul
este 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ă numere
binare. De exemplu, circuitul sumator CDB483 adună două numere binare pe 4 biţi astfel :
                 C4∑3∑2∑1∑0 = X3X2X1X0 +Y3Y2Y1Y0 + C0




                                                  27
Pentru a aduna două numere pe n biţi, se conectează mai multe circuite CDB483 în
cascadă, 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 diferite
operaţ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 de
control 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ă intrarea
de 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 sau
aritmetice pe mai mulţi biţi, se conectează mai multe circuite ALU74181 în cascadă. O
asemenea unitate aritmetico-logică, dar mult mai performantă, se găseşte în interiorul oricărui
microprocesor.



      3.5. Sisteme logice secvenţiale

      Capacitatea de a memora este foarte utilă în soluţionarea unor probleme. Nu toate
problemele pot fi rezolvate într-o manieră pur combinaţională. Funcţia de memorare ne
permite să reţinem datele până în momentul când este necesară prelucrarea lor, împreună cu
alte date de intrare. Dispozitivele secvenţiale sau dispozitivele cu memorie, au o intrare de
ceas (sau intrare de tact), starea lor schimbându-se numai ca urmare a tranziţiei acestui semnal
de ceas.




                                                28
Un sistem logic pur combinaţional nu posedă memorie, ieşirile la un moment dat fiind
complet definite de intrări. La un sistem secvenţial, relaţia dintre ieşiri şi intrări este
determinată şi de evoluţia anterioară a intrărilor şi ieşirilor. Un sistem logic secvenţial poate fi
divizat î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 de
memorare, şi în particular bistabilii, îşi modifică ieşirea în funcţie de intrări numai ca urmare
a 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ă cu
intrarea 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
Bistabilul de tip R-S




      Intrarea R, numită şi intrare de Reset, aduce ieşirea Q a bistabilului în zero la următorul
front activ al semnalului de ceas, sau altfel spus, resetează ieşirea bistabilului. Dacă intrarea
S, numită şi intrare de Set, este 1, ieşirea bistabilului va trece în 1 la următorul front activ al
ceasului. Dacă R=S=0, ieşirea bistabilului rămâne nemodificată după a n+1-a tranziţie a
semnalului de ceas. R=S=1 determină trecerea bistabilului într-o stare nedeterminată (ieşirea
poate 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 ce
intrarea 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 de
bistabilele active pe front, la care tranziţia ieşirii este determinată de frontul crescător sau
descrescător al semnalului de ceas. Bistabilul de tip D prezentat anterior este un bistabil activ
pe 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 a
bistabilului la momentul n+1 va fi egală cu ieşirea Q la momentul anterior tranziţiei n+1 a
semnalului de ceas, inversată.



                                                30
Bistabilele integrate care pot fi întâlnite pe piaţă sunt puţin mai complicate decât cele
prezentate anterior. Astfel, circuitul 7474 (sau echivalentul său CDB474) conţine 2 bistabile
de tip D pe capsulă, care arată ca în figura 3.1. R şi S sunt intrări asincrone active pe nivel
coborât, care resetează, respectiv setează ieşirea Q a bistabilului, indiferent de semnalul de
ceas. De asemenea, fiecare bistabil mai este prevăzut cu o ieşire Q, ce reprezintă ieşirea Q
inversată. Ceasul este activ pe front crescător. Capsula 7473 (sau CDB473) conţine 2 bistabile
J-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. Registrele
folosesc, de obicei, ca dispozitiv de memorare a datelor. Spre deosebire de bistabile, care
memorează o informaţie de un bit, registrele sunt dispozitive care pot stoca cuvinte (mai mulţi
biţi), deci registrele sunt realizate prin alăturare de bistabile, fiecare bistabil memorând un
singur 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, pe
frontul 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 la
o intrare serială. Exemplu de registru serie, implementat cu bistabile de tip D:




                                                31
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 în
figura 3.2, şi care este un registru de 4 biţi, cu posibilitate de operare sincronă serie sau
paralelă. Funcţionarea circuitului 7495 este următoarea: Dacă S=1, este permisă operarea
paralelă, şi se vor încărca în registru, în paralel, datele de la D0-D3, la o tranziţie din 1 în 0 a
intrării de tact CP2 (ceas activ pe front descrescător). Dacă S=0, este permisă operarea serie, şi
la o tranziţie din 1 în 0 a intrării de ceas CP1, se realizează deplasarea serie dreapta a
informaţ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 asemenea
configuraţie numărând impulsurile de la intrarea de ceas a bistabilelor. Ieşirile bistabilelor
sunt interpretate, în acest caz, ca un număr binar ce reprezintă starea numărătorului, sau cu
alte cuvinte, ieşirile bistabilelor reprezintă numărul de impulsuri de ceas apărute la intrarea de
tact a bistabilelor. Astăzi nu se mai realizează practic numărătoare cu circuite bistabile
individuale, existând numeroase numărătoare integrate.
      Astfel, circuitul 74193 este un numărător binar reversibil de 4 biţi (sau numărător
modulo 16). Circuitul are două intrări de ceas active pe front pozitiv: Cu - pentru
incrementarea numărătorului şi Cd - pentru decrementarea numărătorului. Numărătorul poate
fi resetat (Y3=Y2=Y1=Y0=0), dacă intrarea R=1. PL este o intrare de comandă a încărcării
paralele, 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
incrementează (adună 1) numărul binar Y3Y2Y1Y0 la fiecare front crescător al intrării Cu, şi
decrementează (scade 1) numărul Y3Y2Y1Y0 la fiecare front crescător al intrării Cd. Ieşirile
TCD şi TCU sunt "low" la trecerea prin zero a numărătorului când se numără înapoi, respectiv la
trecerea 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 în
cascadă, î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
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 perfect
compatibil î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 microprocesorului
I8086 a fost lărgit cu instrucţiuni specifice modului de lucru protejat, ce oferă suportul
necesar implementării unor sisteme de operare multitasking, cum este OS/2. Într-un asemenea
sistem de operare, unitatea centrală de prelucrare serveşte pe rând mai multe taskuri, sau
programe, 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 magistrala
de adrese de 24 de biţi, cu care poate adresa în mod direct un spaţiu de memorie de
16Mocteţi. De asemenea, are în compunere o unitate de gestiune a memoriei, prin intermediul
căreia poate adresa o memorie virtuală de 1Goctet. La fel ca şi I8086, poate adresa un spaţiu
de 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 deosebire
de I8087, poate asigura asistenţă microprocesorului I80286, în ce priveşte efectuarea
calculelor matematice, şi în modul protejat.
      Microprocesorul I80286 este microprocesorul în jurul căruia sunt realizate
calculatoarele IBM AT sau compatibile, folosind o magistrală de tip ISA - Industrial
Standard Architecture. I80286 este livrat în două moduri diferite: într-o capsulă de plastic de
formă pătrată, cu pini numai pe cele 4 laturi ale capsulei, sau într-o capsulă pătrată ce conţine
o 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
Unitatea de interfaţă cu magistrala controlează toate operaţiile pe care microprocesorul
le 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 cererea
unităţii de execuţie. Dacă BU nu are o astfel de cerere din partea unităţii de execuţie, va aduce
din memorie următoarea instrucţiune în secvenţă, pe care o plasează într-o coadă de
instrucţiuni. Aceasta presupune că instrucţiunile se execută în secvenţă, una după alta, în
ordinea în care apar în memorie. Dacă survine o ruptură în secvenţă (de exemplu o
instrucţiune de salt), coada de instrucţiuni este resetată şi se reîncepe citirea instrucţiunilor cu
anticipaţie de la noua adresă. Coada de instrucţiuni este o memorie internă de 6 octeţi, care
memorează codurile instrucţiunilor înainte de a fi utilizate de unitatea instrucţiunilor. Acest
mecanism de citire cu anticipaţie a instrucţiunilor permite eliminarea timpilor morţi de citire
din 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ă, şi
le plasează într-o altă coadă, cu lungimea de 3 octeţi, numită coada instrucţiunilor
decodificate.
      Unitatea de execuţie execută instrucţiunile preluate din coada de instrucţiuni
decodificate, şi face apel la unitatea de interfaţă cu magistrala, pentru toate transferurile de
date 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 care
intervin în execuţia instrucţiunilor. UAL efectuează calculele manevrând regiştrii generali şi




                                                35
operanzii instrucţiunilor, şi totodată gestionează indicatorii de condiţie şi stare conţinuţi în
registrul 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 de
unitatea 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 de
execuţ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 executate
anterior. În acelaşi timp, unitatea instrucţiunilor decodifică următoarea instrucţiune de
executat, pe care o pune în coada de instrucţiuni decodificate, pentru a fi preluată de unitatea
de 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ţiunilor
aritmetice şi logice, şi pot fi folosite atât ca registre pe 16 biţi, cât şi ca registre pe 8 biţi. De
exemplu, registrul AX, registru pe 16 biţi, este compus din registrul AH ce conţine cei 8 biţi



                                                  36
mai semnificativi din AX, şi din registrul AL, ce conţine cei mai puţin semnificativi 8 biţi din
AX.
      Registrele SP şi BP sunt denumite registre indicatoare de adresă (sau pointer) şi sunt
folosite numai ca registre pe 16 biţi. Registrul SP conţine deplasamentul în octeţi al vârfului
stivei, faţă de începutul segmentului de stivă curent. De cele mai multe ori, şi registrul BP
conţine un deplasament în segmentul de stivă curent. Registrele BX şi BP mai sunt denumite
uneori şi registre bază, fiind desemnate să conţină adresa de bază a unei structuri de date din
memorie, 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 dimensiunea
maximă de 64Kb. În general, programele sunt constituite din mai multe segmente (module) de
cod, 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, fiecare
registru 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 prin
program. Conţinutul registrelor       de     segment    este interpretat diferit în funcţie de
modul de lucru al microprocesorului: real sau virtual.
      În modul de lucru real, care este modul de lucru compatibil I8086, registrele de segment
conţin cei mai semnificativi 16 biţi ai adresei de bază a segmentelor de memorie. Pentru a
face acces la o dată din memorie, microprocesorul trebuie să cunoască adresa de bază a
segmentului în care se află data ce se doreşte a fi accesată (adresa primului octet din
segment), precum şi adresa relativă în segment a datei respective, sau un deplasament, ce
reprezintă 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ă a
segmentului de cod curent, DS conţine cei mai semnificativi 16 biţi ai adresei de bază a
segmentului de date curent ş.a.m.d.
      Segmentele de cod ale unui program conţin instrucţiunile programului, segmentele de
date (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 de
memorie organizate pe principiul stivei.




                                                37
În modul de lucru protejat, registrele de segment conţin un index într-o tabelă de
descriptori a segmentelor. O intrare în această tabelă conţine un descriptor de segment, care
cuprinde :
               - 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. Din
această cauză, în modul de lucru protejat, registrele de segment mai sunt denumite şi selectori
de 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 adresa
relativă în raport cu începutul segmentului de cod curent, a următoarei instrucţiuni ce trebuie
executată. Registrul IP este transparent la nivelul programatorului, el fiind actualizat automat
după citirea instrucţiunii curente, astfel încât să indice deplasamentul următoarei instrucţiuni
de executat.
      Registrul indicatorilor de stare şi control - F - conţine indicatorii de stare şi control ai
microprocesorului. 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 unei
operaţii aritmetice sau logice. Unele instrucţiuni ale microprocesorului testează aceşti
indicatori şi, în funcţie de cum sunt poziţionaţi (în 0 sau în 1), se execută anumite acţiuni
specifice.
      Indicatorii de stare sunt următorii:
       - indicatorul de transport - CF (Carry Flag ) - este unu dacă a apărut transport din
bitul cel mai semnificativ în exterior, sau s-a făcut împrumut în exterior din bitul cel mai
semnificativ al rezultatului. Indicatorul CF este afectat şi de instrucţiunile de rotire şi
deplasare.
       - 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ţi
unu. În caz contrar PF este poziţionat în zero.
       - indicatorul de transport auxiliar - AF (Auxiliary Carry Flag) - este unu dacă la
execuţia instrucţiunii a apărut un transport între rangul 3 şi rangul 4 al rezultatului. De
exemplu, 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 şi
pune rezultatul în AH, apare un transport din rangul 3 în rangul 4, ceea ce determină setarea
indicatorului AF.
               AH = 01101000 +
               BH = 00101001
                   ⎯⎯⎯⎯



                                                  38
AH = 10010001
       - indicatorul de zero - ZF (Zero Flag) - este poziţionat în unu dacă rezultatul
instrucţ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 al
rezultatului, dat fiind faptul că, în reprezentarea numerelor în complement faţă de 2, numerele
negative au primul bit 1.
       - indicatorul de depăşire - OF (Overflow Flag) - este unu dacă la execuţia instrucţiunii
anterioare a apărut o depăşire, adică dimensiunea rezultatului depăşeşte capacitatea locaţiei de
destinaţie.
      Indicatorii de control pot fi poziţionati în unu sau în zero prin program, asigurând prin
aceasta controlul prin program al unor operaţii ale procesorului. Indicatorii de control sunt
urmă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 la
dreapta la stânga. Ştergând DF (poziţionând în zero), şirurile vor fi prelucrate de la stânga la
dreapta.
       - indicatorul de întrerupere - IF (Interrupt Flag) - Dacă IF este poziţionat în unu prin
program, microprocesorul va recunoaşte cererile de întrerupere externă. Ştergând acest
indicator, î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ă posibilitatea
investigă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 şi
stare ai microprocesorului I8086. De fapt, toate registrele prezentate anterior pot fi întâlnite şi
la I8086. În plus faţă de I8086, I80286 mai conţine în registrul indicatorilor de condiţie şi
stare, 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ă în
cadrul 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 de
privilegiu cel mai slab, pentru care nivelul taskului în curs de execuţie trebuie să fie superior
sau 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
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 acestui
registru de 16 biţi, ceilalţi biţi fiind rezervaţi pentru 80386. Semnificaţia biţilor este
urmă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 resetarea
microprocesorului acest bit poate fi adus în zero, determinând intrarea microprocesorului
80286 în modul de lucru real. La microprocesorul 80386, acest bit poate fi poziţionat în zero
prin program.
       - MP (Monitor Processor extension) - Dacă MP=1 se indică prezenţa unui coprocesor
matematic.
       - EM (Coprocessor EMulation) - Dacă EM este setat, toate funcţiile coprocesorului
matematic vor fi emulate. Aceasta înseamnă că, spre exemplu, un logaritm nu este calculat de
coprocesorul matematic I80287, ci de o rutină din biblioteca matematică, folosind numai
instrucţiuni ale microprocesorului I80286.
       - TS (Task Switch) - Dacă bitul este setat a avut loc o comutare de task, şi este posibil
să 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 80287
necesită până la 1000 de perioade de ceas, este posibil ca I80286 să servească alt task în acest
timp, reîntorcându-se la taskul precedent atunci când coprocesorul a terminat de executat
instrucţiunea.


4.1.4. Operaţiile de bază pe magistrală ale microprocesorului I80286

      Activitatea pe magistrală a microprocesorului I80286 diferă mult faţă de activitatea
procesoarelor anterioare, datorită mecanismului de tip "pipe-line" realizat de I80286.
Procesorul I80286 plasează adresele pe magistrala de adrese înaintea sfârşitului ciclului de
magistrală precedent, datele citite sau scrise fiind valide pe magistrala de date şi la începutul
ciclului de magistrală următor. Acest lucru a permis reducerea ciclului de magistrală la numai
doi cicli procesor, în timp ce ar fi fost necesari trei cicli procesor. Se definesc următoarele
noţiuni:
       - Ciclul de ceas sistem - este timpul scurs între două fronturi crescătoare ale
semnalului de ceas de la intrarea CLK a microprocesorului (perioada ceasului extern).




                                               40
- Ciclul procesor - este format din doi cicli de ceas sistem. Microprocesorul foloseşte
un ceas intern PCLK, format prin divizarea cu doi a ceasului sistem CLK. Ciclul procesor este
perioada ceasului PCLK.
       - Ciclul de magistrală - este timpul necesar unui transfer de date pe magistrală (de
exemplu, citirea unui cuvânt din memorie sau porturile de intrare, sau scrierea unui cuvânt în
memorie sau porturile de ieşire ).
       - Ciclul instrucţiune - este timpul necesar execuţiei unei instrucţiuni, şi este format din
cicli de magistrală şi din cicli interni ai microprocesorului.
      În general, orice      microprocesor     execută un program prin execuţia repetată a
urmă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ă a
instrucţ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 ceas
sistem CLK.
      Starea TI indică faptul că nu se solicită nici un transfer de date pe magistrală, procesorul
controlâ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 generate
semnalele de control, semnalele de adresă şi, în cazul unui ciclu de scriere, sunt generate şi
semnalele de date.
      Starea TC urmează după o stare TS, şi semnifică o operaţie în curs de execuţie pe
magistrală. În această stare sunt efectuate transferurile de date între memorie sau porturi pe de
o parte, şi procesor pe de altă parte.
      Starea TH indică faptul că I80286 a pierdut controlul magistralei. În această stare
magistrala este folosită de un alt dispozitiv, pentru efectuarea transferurilor de date, 80286




                                                41
fiind deconectat de la magistrală (toate semnalele de la pinii procesorului sunt în starea de
mare 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, şi
activează semnalele M/IO şi COD/INTA de pe magistrala de control, pentru a indica o
operaţie cu memoria sau cu porturile de I/E. În starea TS a ciclului de citire, procesorul
activează 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 de
I/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 unui
operand 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
Semnalele S0 şi S1 de pe magistrala de control disting între o operaţie de citire, scriere
sau 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şitul
ciclului 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 de
memorie 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 sunt
disponibile pe magistrala de date.
      La sfârşitul stării TC a ciclului de citire, procesorul testează semnalul READY, care
este 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 va
genera încă o stare TC, la sfârşitul căreia se va testa din nou semnalul READY ş.a.m.d. (se va
prelungi 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 a
ciclului de magistrală curent, pune S1 pe 1, S0 pe 0, indicând o operaţie de scriere, şi pe
magistrala 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 semnalul
READY pe 1, ceea ce determină procesorul să prelungească ciclul de magistrală curent cu
stări TC suplimentare.




                                                43
Figura 4.1.4. Ciclul de scrire


      Ciclii de recunoaştere întrerupere apar în urma apariţiei unei întreruperi externe, când
procesorul execută recunoaşterea întreruperii, pentru a afla adresa rutinei de tratare a
întreruperii unde va transfera controlul.
      Ciclii de HALT şi blocare apar fie ca efect al execuţiei instrucţiunii HALT (ce opreşte
procesorul din execuţia normală a instrucţiunilor), fie datorită apariţiei excepţiilor multiple la
execuţia unei instrucţiuni. Procesorul poate fi scos din starea de HALT şi din starea de
blocare fie prin resetarea microprocesorului, fie printr-o întrerupere externă nemascabilă. În
plus, procesorul poate fi scos din starea de HALT şi printr-o întrerupere externă mascabilă,
dacă întreruperile externe mascabile sunt validate.
      Resetarea, sau iniţializarea procesorului, se face prin aplicarea unui "1" logic pe intrarea
RESET a procesorului. După reset I80286 intră în modul real, registrul MSW fiind încărcat
cu valoarea FFF0H, cele mai semnificative linii de adresă, A20-A23, fiind tinute în "1" logic,
astfel încât prima instrucţiune executată va fi instrucţiunea de la adresa fizică FFFFF0H, care,
de regulă, este o instrucţiune de salt în zona de memorie de până la 1Mb. Această instrucţiune
de salt determină dezactivarea liniilor A20-A23, care vor trece în zero, procesorul I80286
lucrând în modul real, ca un procesor I8086. Pentru a intra în modul protejat, trebuie setat,
prin program, bitul PE din registrul MSW.


      4.1.5. Modurile de lucru ale microprocesorului I80286

      Modul de lucru real este modul compatibil I8086, asigurând posibilitatea rulării pe
sisteme cu I80286 a programelor dezvoltate anterior pe microprocesoarele 8086/8088.
Singurul avantaj este faptul că viteza de lucru este mai mare.
      În modul de lucru real memoria este adresată folosind un pointer de 32 de biţi, format
din două componente:


                                               44
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

Mais conteúdo relacionado

Mais procurados

Introducere in filosofia obiectuala
Introducere in filosofia obiectualaIntroducere in filosofia obiectuala
Introducere in filosofia obiectualaAurel Rusu
 
22 teza varga csaba f v_- 27_sept_ 2018 final-converted-semnat
22 teza varga csaba f v_- 27_sept_ 2018 final-converted-semnat22 teza varga csaba f v_- 27_sept_ 2018 final-converted-semnat
22 teza varga csaba f v_- 27_sept_ 2018 final-converted-semnatPopescuAnca8
 
Arhitectura sistemelor-de-calcul
Arhitectura sistemelor-de-calculArhitectura sistemelor-de-calcul
Arhitectura sistemelor-de-calculgetumarius
 
56489014 dr-prop-intelectuale an-iii
56489014 dr-prop-intelectuale an-iii56489014 dr-prop-intelectuale an-iii
56489014 dr-prop-intelectuale an-iiiexodumuser
 
Manual instructiuni-samsung-s5530-titan-grey
Manual instructiuni-samsung-s5530-titan-greyManual instructiuni-samsung-s5530-titan-grey
Manual instructiuni-samsung-s5530-titan-greyQuickmobile
 
Suport de curs instruire utilizatori IMI PQ ianuarie 2013
Suport de curs instruire utilizatori IMI PQ ianuarie 2013Suport de curs instruire utilizatori IMI PQ ianuarie 2013
Suport de curs instruire utilizatori IMI PQ ianuarie 2013IMI PQ NET Romania
 
86576063 dreptul-proprietatii-intelectuale-curs-id-iunie-2011
86576063 dreptul-proprietatii-intelectuale-curs-id-iunie-201186576063 dreptul-proprietatii-intelectuale-curs-id-iunie-2011
86576063 dreptul-proprietatii-intelectuale-curs-id-iunie-2011exodumuser
 
81591504 curs-drept-institutional-european
81591504 curs-drept-institutional-european81591504 curs-drept-institutional-european
81591504 curs-drept-institutional-europeanexodumuser
 
Manual utilizare lg_gd510_ro
Manual utilizare lg_gd510_roManual utilizare lg_gd510_ro
Manual utilizare lg_gd510_roQuickmobile
 
17711612 dreptul-securitatii-sociale
17711612 dreptul-securitatii-sociale17711612 dreptul-securitatii-sociale
17711612 dreptul-securitatii-socialeexodumuser
 
510402 Cristian Frasinaru Curs Practic De Java
510402 Cristian Frasinaru Curs Practic De Java510402 Cristian Frasinaru Curs Practic De Java
510402 Cristian Frasinaru Curs Practic De Javaguesteeb1f68
 
Dreptul muncii-2011
Dreptul muncii-2011Dreptul muncii-2011
Dreptul muncii-2011exodumuser
 
Dreptul proprietatii intelectuale_curs_i
Dreptul proprietatii intelectuale_curs_iDreptul proprietatii intelectuale_curs_i
Dreptul proprietatii intelectuale_curs_iexodumuser
 
46678951 sisteme-informationale-si-aplicatii-informatice-in-administrarea-afa...
46678951 sisteme-informationale-si-aplicatii-informatice-in-administrarea-afa...46678951 sisteme-informationale-si-aplicatii-informatice-in-administrarea-afa...
46678951 sisteme-informationale-si-aplicatii-informatice-in-administrarea-afa...anaany2
 
Programare RSS Atom şi Podcast - cuprins şi introducere
Programare RSS Atom şi Podcast - cuprins şi introducereProgramare RSS Atom şi Podcast - cuprins şi introducere
Programare RSS Atom şi Podcast - cuprins şi introducereTraian Anghel
 

Mais procurados (16)

Introducere in filosofia obiectuala
Introducere in filosofia obiectualaIntroducere in filosofia obiectuala
Introducere in filosofia obiectuala
 
22 teza varga csaba f v_- 27_sept_ 2018 final-converted-semnat
22 teza varga csaba f v_- 27_sept_ 2018 final-converted-semnat22 teza varga csaba f v_- 27_sept_ 2018 final-converted-semnat
22 teza varga csaba f v_- 27_sept_ 2018 final-converted-semnat
 
Arhitectura sistemelor-de-calcul
Arhitectura sistemelor-de-calculArhitectura sistemelor-de-calcul
Arhitectura sistemelor-de-calcul
 
56489014 dr-prop-intelectuale an-iii
56489014 dr-prop-intelectuale an-iii56489014 dr-prop-intelectuale an-iii
56489014 dr-prop-intelectuale an-iii
 
Manual instructiuni-samsung-s5530-titan-grey
Manual instructiuni-samsung-s5530-titan-greyManual instructiuni-samsung-s5530-titan-grey
Manual instructiuni-samsung-s5530-titan-grey
 
Suport de curs instruire utilizatori IMI PQ ianuarie 2013
Suport de curs instruire utilizatori IMI PQ ianuarie 2013Suport de curs instruire utilizatori IMI PQ ianuarie 2013
Suport de curs instruire utilizatori IMI PQ ianuarie 2013
 
86576063 dreptul-proprietatii-intelectuale-curs-id-iunie-2011
86576063 dreptul-proprietatii-intelectuale-curs-id-iunie-201186576063 dreptul-proprietatii-intelectuale-curs-id-iunie-2011
86576063 dreptul-proprietatii-intelectuale-curs-id-iunie-2011
 
81591504 curs-drept-institutional-european
81591504 curs-drept-institutional-european81591504 curs-drept-institutional-european
81591504 curs-drept-institutional-european
 
Manual utilizare lg_gd510_ro
Manual utilizare lg_gd510_roManual utilizare lg_gd510_ro
Manual utilizare lg_gd510_ro
 
17711612 dreptul-securitatii-sociale
17711612 dreptul-securitatii-sociale17711612 dreptul-securitatii-sociale
17711612 dreptul-securitatii-sociale
 
510402 Cristian Frasinaru Curs Practic De Java
510402 Cristian Frasinaru Curs Practic De Java510402 Cristian Frasinaru Curs Practic De Java
510402 Cristian Frasinaru Curs Practic De Java
 
Dreptul muncii-2011
Dreptul muncii-2011Dreptul muncii-2011
Dreptul muncii-2011
 
Dreptul proprietatii intelectuale_curs_i
Dreptul proprietatii intelectuale_curs_iDreptul proprietatii intelectuale_curs_i
Dreptul proprietatii intelectuale_curs_i
 
46678951 sisteme-informationale-si-aplicatii-informatice-in-administrarea-afa...
46678951 sisteme-informationale-si-aplicatii-informatice-in-administrarea-afa...46678951 sisteme-informationale-si-aplicatii-informatice-in-administrarea-afa...
46678951 sisteme-informationale-si-aplicatii-informatice-in-administrarea-afa...
 
Limajul c
Limajul cLimajul c
Limajul c
 
Programare RSS Atom şi Podcast - cuprins şi introducere
Programare RSS Atom şi Podcast - cuprins şi introducereProgramare RSS Atom şi Podcast - cuprins şi introducere
Programare RSS Atom şi Podcast - cuprins şi introducere
 

Destaque

Ghid pentru utilizarea calculatorului si a internetului
Ghid pentru utilizarea calculatorului si a internetuluiGhid pentru utilizarea calculatorului si a internetului
Ghid pentru utilizarea calculatorului si a internetuluiEla Iliesi
 
Prezentarea calculatorului
Prezentarea calculatoruluiPrezentarea calculatorului
Prezentarea calculatoruluiSima Sorin
 
Suport-curs-calculator
Suport-curs-calculatorSuport-curs-calculator
Suport-curs-calculatorContul Meu
 
2 1 Structura Si Fuctionarea Calculatorului
2 1 Structura Si Fuctionarea Calculatorului2 1 Structura Si Fuctionarea Calculatorului
2 1 Structura Si Fuctionarea CalculatoruluiVasile Filat
 
Pagina de Facebook - Ghid practic
Pagina de Facebook - Ghid practicPagina de Facebook - Ghid practic
Pagina de Facebook - Ghid practicAlexandru Negrea
 
Sisteme de numeratie calculatoare
Sisteme de numeratie calculatoareSisteme de numeratie calculatoare
Sisteme de numeratie calculatoareroxanaolteanu
 
Arhiva Dobrogei Constantin Moisil vol 2
Arhiva Dobrogei Constantin Moisil vol 2Arhiva Dobrogei Constantin Moisil vol 2
Arhiva Dobrogei Constantin Moisil vol 2Florin Anastasiu
 
Arhiva Dobrogei Constantin Moisil vol 3
Arhiva Dobrogei Constantin Moisil vol 3Arhiva Dobrogei Constantin Moisil vol 3
Arhiva Dobrogei Constantin Moisil vol 3Florin Anastasiu
 
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc''Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'Otilia-Loredana Tudor
 
Introducere în Linux
Introducere în LinuxIntroducere în Linux
Introducere în LinuxAlex Eftimie
 
Cum sa iti promovezi afacerea prin Facebook
Cum sa iti promovezi afacerea prin FacebookCum sa iti promovezi afacerea prin Facebook
Cum sa iti promovezi afacerea prin FacebookMADD Online Solutions
 
Introducere baza de-date
Introducere baza de-dateIntroducere baza de-date
Introducere baza de-dateChelariu Mihai
 
Microsoft+access+este+aplicatia+de+management+a+bazelor[1]
Microsoft+access+este+aplicatia+de+management+a+bazelor[1]Microsoft+access+este+aplicatia+de+management+a+bazelor[1]
Microsoft+access+este+aplicatia+de+management+a+bazelor[1]Claudia
 
Instruire Asistata De Calculator Modul1a
Instruire Asistata De Calculator Modul1aInstruire Asistata De Calculator Modul1a
Instruire Asistata De Calculator Modul1aCella Buciuman
 
Baze+de+date 1
Baze+de+date 1Baze+de+date 1
Baze+de+date 1Claudia
 

Destaque (20)

Ghid pentru utilizarea calculatorului si a internetului
Ghid pentru utilizarea calculatorului si a internetuluiGhid pentru utilizarea calculatorului si a internetului
Ghid pentru utilizarea calculatorului si a internetului
 
Prezentarea calculatorului
Prezentarea calculatoruluiPrezentarea calculatorului
Prezentarea calculatorului
 
Suport-curs-calculator
Suport-curs-calculatorSuport-curs-calculator
Suport-curs-calculator
 
2 1 Structura Si Fuctionarea Calculatorului
2 1 Structura Si Fuctionarea Calculatorului2 1 Structura Si Fuctionarea Calculatorului
2 1 Structura Si Fuctionarea Calculatorului
 
Pagina de Facebook - Ghid practic
Pagina de Facebook - Ghid practicPagina de Facebook - Ghid practic
Pagina de Facebook - Ghid practic
 
Curs depanare pc
Curs depanare pcCurs depanare pc
Curs depanare pc
 
Sisteme de numeratie calculatoare
Sisteme de numeratie calculatoareSisteme de numeratie calculatoare
Sisteme de numeratie calculatoare
 
Arhiva Dobrogei Constantin Moisil vol 2
Arhiva Dobrogei Constantin Moisil vol 2Arhiva Dobrogei Constantin Moisil vol 2
Arhiva Dobrogei Constantin Moisil vol 2
 
Arhiva Dobrogei Constantin Moisil vol 3
Arhiva Dobrogei Constantin Moisil vol 3Arhiva Dobrogei Constantin Moisil vol 3
Arhiva Dobrogei Constantin Moisil vol 3
 
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc''Documents.tips curs baze-de-date-5642553eddb8c.doc'
'Documents.tips curs baze-de-date-5642553eddb8c.doc'
 
Hard disk
Hard diskHard disk
Hard disk
 
Introducere în Linux
Introducere în LinuxIntroducere în Linux
Introducere în Linux
 
Cum sa iti promovezi afacerea prin Facebook
Cum sa iti promovezi afacerea prin FacebookCum sa iti promovezi afacerea prin Facebook
Cum sa iti promovezi afacerea prin Facebook
 
Introducere baza de-date
Introducere baza de-dateIntroducere baza de-date
Introducere baza de-date
 
Microsoft+access+este+aplicatia+de+management+a+bazelor[1]
Microsoft+access+este+aplicatia+de+management+a+bazelor[1]Microsoft+access+este+aplicatia+de+management+a+bazelor[1]
Microsoft+access+este+aplicatia+de+management+a+bazelor[1]
 
Instruire Asistata De Calculator Modul1a
Instruire Asistata De Calculator Modul1aInstruire Asistata De Calculator Modul1a
Instruire Asistata De Calculator Modul1a
 
Baze de date Access
Baze de date AccessBaze de date Access
Baze de date Access
 
Microsoft office word 2010
Microsoft office word 2010Microsoft office word 2010
Microsoft office word 2010
 
Baze+de+date 1
Baze+de+date 1Baze+de+date 1
Baze+de+date 1
 
Manual microsoft excel
Manual microsoft excelManual microsoft excel
Manual microsoft excel
 

Semelhante a Initiere operare pc

SeniorERP Presentation
SeniorERP PresentationSeniorERP Presentation
SeniorERP PresentationDaniel Toma
 
Curs practic de_java
Curs practic de_javaCurs practic de_java
Curs practic de_javastones1
 
Cristian frasinaru curs-practic_de_java
Cristian frasinaru curs-practic_de_javaCristian frasinaru curs-practic_de_java
Cristian frasinaru curs-practic_de_javaBujor Elena
 
Cristian frasinaru curs practic de java
Cristian frasinaru   curs practic de javaCristian frasinaru   curs practic de java
Cristian frasinaru curs practic de javaCorniciuc Oana
 
Curs ubuntu
Curs ubuntuCurs ubuntu
Curs ubuntucrys72f
 
HP manual, cunoastere, exploatare, remedierea deranjamentelor.pdf
HP manual, cunoastere, exploatare, remedierea deranjamentelor.pdfHP manual, cunoastere, exploatare, remedierea deranjamentelor.pdf
HP manual, cunoastere, exploatare, remedierea deranjamentelor.pdfssuser65ff8a
 
Manual programare-cnc-freza-mitica-vlad-fanuc
Manual programare-cnc-freza-mitica-vlad-fanucManual programare-cnc-freza-mitica-vlad-fanuc
Manual programare-cnc-freza-mitica-vlad-fanucMiticavlad Neamitica
 
Cicerone laurentiu popa teza doctorat
Cicerone laurentiu popa  teza doctoratCicerone laurentiu popa  teza doctorat
Cicerone laurentiu popa teza doctoratadinachirila
 
Manual instructiuni-sony-ericsson-xperia-arc-lt15i-blue
Manual instructiuni-sony-ericsson-xperia-arc-lt15i-blueManual instructiuni-sony-ericsson-xperia-arc-lt15i-blue
Manual instructiuni-sony-ericsson-xperia-arc-lt15i-blueQuickmobile
 
Manual instructiuni-sony-ericsson-xperia-arc-lt15i-blue
Manual instructiuni-sony-ericsson-xperia-arc-lt15i-blueManual instructiuni-sony-ericsson-xperia-arc-lt15i-blue
Manual instructiuni-sony-ericsson-xperia-arc-lt15i-blue8qisfgvs
 
Applications of Artificial Intelligence in Advanced Logic Synthesis
Applications of Artificial Intelligence in Advanced Logic SynthesisApplications of Artificial Intelligence in Advanced Logic Synthesis
Applications of Artificial Intelligence in Advanced Logic SynthesisCodrin Pruteanu
 
Manual instructiuni-sony-ericsson-mt15i-neo-red
Manual instructiuni-sony-ericsson-mt15i-neo-redManual instructiuni-sony-ericsson-mt15i-neo-red
Manual instructiuni-sony-ericsson-mt15i-neo-redQuickmobile
 
Manual instructiuni-lg-gt540-silver
Manual instructiuni-lg-gt540-silverManual instructiuni-lg-gt540-silver
Manual instructiuni-lg-gt540-silverQuickmobile
 
Manual instructiuni-lg-gt540-silver
Manual instructiuni-lg-gt540-silverManual instructiuni-lg-gt540-silver
Manual instructiuni-lg-gt540-silverQuickmobile
 
Manual instructiuni-lg-gt405-viewty-black
Manual instructiuni-lg-gt405-viewty-blackManual instructiuni-lg-gt405-viewty-black
Manual instructiuni-lg-gt405-viewty-blackQuickmobile
 
Manual instructiuni-lg-gt400-viewty-white
Manual instructiuni-lg-gt400-viewty-whiteManual instructiuni-lg-gt400-viewty-white
Manual instructiuni-lg-gt400-viewty-whiteQuickmobile
 
Manual utilizare t715_ug_ro
Manual utilizare t715_ug_roManual utilizare t715_ug_ro
Manual utilizare t715_ug_roQuickmobile
 
Manual utilizare se_xperia_x2_ro
Manual utilizare se_xperia_x2_roManual utilizare se_xperia_x2_ro
Manual utilizare se_xperia_x2_roQuickmobile
 

Semelhante a Initiere operare pc (20)

SeniorERP Presentation
SeniorERP PresentationSeniorERP Presentation
SeniorERP Presentation
 
Curs practic de_java
Curs practic de_javaCurs practic de_java
Curs practic de_java
 
Cristian frasinaru curs-practic_de_java
Cristian frasinaru curs-practic_de_javaCristian frasinaru curs-practic_de_java
Cristian frasinaru curs-practic_de_java
 
Cristian frasinaru curs practic de java
Cristian frasinaru   curs practic de javaCristian frasinaru   curs practic de java
Cristian frasinaru curs practic de java
 
Curs ubuntu
Curs ubuntuCurs ubuntu
Curs ubuntu
 
Curs Sctr2009
Curs Sctr2009Curs Sctr2009
Curs Sctr2009
 
HP manual, cunoastere, exploatare, remedierea deranjamentelor.pdf
HP manual, cunoastere, exploatare, remedierea deranjamentelor.pdfHP manual, cunoastere, exploatare, remedierea deranjamentelor.pdf
HP manual, cunoastere, exploatare, remedierea deranjamentelor.pdf
 
Manual programare-cnc-freza-mitica-vlad-fanuc
Manual programare-cnc-freza-mitica-vlad-fanucManual programare-cnc-freza-mitica-vlad-fanuc
Manual programare-cnc-freza-mitica-vlad-fanuc
 
Cicerone laurentiu popa teza doctorat
Cicerone laurentiu popa  teza doctoratCicerone laurentiu popa  teza doctorat
Cicerone laurentiu popa teza doctorat
 
Cuprins
CuprinsCuprins
Cuprins
 
Manual instructiuni-sony-ericsson-xperia-arc-lt15i-blue
Manual instructiuni-sony-ericsson-xperia-arc-lt15i-blueManual instructiuni-sony-ericsson-xperia-arc-lt15i-blue
Manual instructiuni-sony-ericsson-xperia-arc-lt15i-blue
 
Manual instructiuni-sony-ericsson-xperia-arc-lt15i-blue
Manual instructiuni-sony-ericsson-xperia-arc-lt15i-blueManual instructiuni-sony-ericsson-xperia-arc-lt15i-blue
Manual instructiuni-sony-ericsson-xperia-arc-lt15i-blue
 
Applications of Artificial Intelligence in Advanced Logic Synthesis
Applications of Artificial Intelligence in Advanced Logic SynthesisApplications of Artificial Intelligence in Advanced Logic Synthesis
Applications of Artificial Intelligence in Advanced Logic Synthesis
 
Manual instructiuni-sony-ericsson-mt15i-neo-red
Manual instructiuni-sony-ericsson-mt15i-neo-redManual instructiuni-sony-ericsson-mt15i-neo-red
Manual instructiuni-sony-ericsson-mt15i-neo-red
 
Manual instructiuni-lg-gt540-silver
Manual instructiuni-lg-gt540-silverManual instructiuni-lg-gt540-silver
Manual instructiuni-lg-gt540-silver
 
Manual instructiuni-lg-gt540-silver
Manual instructiuni-lg-gt540-silverManual instructiuni-lg-gt540-silver
Manual instructiuni-lg-gt540-silver
 
Manual instructiuni-lg-gt405-viewty-black
Manual instructiuni-lg-gt405-viewty-blackManual instructiuni-lg-gt405-viewty-black
Manual instructiuni-lg-gt405-viewty-black
 
Manual instructiuni-lg-gt400-viewty-white
Manual instructiuni-lg-gt400-viewty-whiteManual instructiuni-lg-gt400-viewty-white
Manual instructiuni-lg-gt400-viewty-white
 
Manual utilizare t715_ug_ro
Manual utilizare t715_ug_roManual utilizare t715_ug_ro
Manual utilizare t715_ug_ro
 
Manual utilizare se_xperia_x2_ro
Manual utilizare se_xperia_x2_roManual utilizare se_xperia_x2_ro
Manual utilizare se_xperia_x2_ro
 

Mais de ELENA NITA

Mais de ELENA NITA (9)

Tema3.3
Tema3.3Tema3.3
Tema3.3
 
Modulul 1 ecdl
Modulul 1 ecdlModulul 1 ecdl
Modulul 1 ecdl
 
Modulul 7 ecdl
Modulul 7 ecdlModulul 7 ecdl
Modulul 7 ecdl
 
Modulul 6 ecdl
Modulul 6 ecdlModulul 6 ecdl
Modulul 6 ecdl
 
Modulul 5 ecdl
Modulul 5 ecdlModulul 5 ecdl
Modulul 5 ecdl
 
Modulul 4 ecdl
Modulul 4 ecdlModulul 4 ecdl
Modulul 4 ecdl
 
Modulul 3 ecdl
Modulul 3 ecdlModulul 3 ecdl
Modulul 3 ecdl
 
Modulul 2 ecdl
Modulul 2 ecdlModulul 2 ecdl
Modulul 2 ecdl
 
Modulul 1 ecdl
Modulul 1 ecdlModulul 1 ecdl
Modulul 1 ecdl
 

Initiere operare pc

  • 1. CUPRINS 1. 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. ….……........... 5 2. 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. ................ 16 3. 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. .............................................................. 31 4. 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. ......................................................................................….…...... 73 5. Structura calculatoarelor personale IBM. ..................................................... 76 5.1. Generalităţi. ...........................................................................................… 76 1
  • 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. ......................................….................. 106 6. 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. ...................................... 125 7. 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. ....................................................…. 189 Bibliografie. ...................................................................................................…. 191 2
  • 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 de ieşire sau rezultatele prelucrării, fiind compus din două părţi principale: hardware şi software. Hardware este un termen general, utilizat pentru a desemna partea fizică a unui calculator, alcătuită din componente electronice şi mecanice, împreună cu totalitatea dispozitivelor folosite de calculator în prelucrarea informaţiei. Software este tot un termen general, care desemnează totalitatea programelor folosite de un calculator, pentru a transforma 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 sau nivele concentrice, fiecare nivel exterior implicând existenţa nivelelor interioare, aşa cum este 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 între hardware-ul calculatorului şi restul software-ului, toate celelalte programe utilizând hardware-ul calculatorului prin intermediul sistemului de operare. Software-ul utilitar pune la dispoziţia utilizatorului o multitudine de instrumente software 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 de calcul. Programele din cea de-a doua categorie sunt uneori direct invocate de către sistemul de 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, calculatoare medii sau microcalculatoare, în principal pe baza dimensiunii memoriei şi vitezei de prelucrare a datelor, odată cu apariţia calculatoarelor personale comerciale în 1976, când Steven Jobs şi Steve Wozniak au fondat firma APPLE, şi odată cu creşterea gradului de integrare a componentelor electronice, noţiunile de calculatoare mici, medii sau mari nu mai sunt 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 o capacitate de memorare şi o viteză de prelucrare mult superioară capacităţii de memorare şi vitezei de prelucrare de la calculatoarele mari din anii '70. 3
  • 4. Figura 1.1. Structura hard-soft a unui calculator Calculatoarele personale pot fi întâlnite astăzi în birouri, în şcoli, în întreprinderi, la domiciliu. Întrucât ele au devenit din ce în ce mai puternice, au preluat multe din sarcinile calculatoarelor mari de acum 20 -30 de ani. Termenul de calculator personal generează confuzie, deoarece atunci când IBM a produs primul său calculator personal, în 1981, l-a numit IMB Personal Computer sau IBM PC. Pentru unii, termenul de calculator personal înseamnă numai calculatoarele IBM sau compatibile hardware cu acestea. Dar, prin extensie, prin calculator personal se poate înţelege orice calculator monoutilizator cu destinaţie generală. Calculatoarele cu destinaţie generală sunt acele calculatoare capabile să rezolve o mare varietate de probleme, adaptabilitatea la fiecare tip de problemă realizându-se prin intermediul programelor. Nu toate calculatoarele sunt calculatoare cu destinaţie generală. Astăzi sunt produse o gamă largă de calculatoare dedicate, destinate rezolvării unor probleme specifice, un calculator dedicat fiind capabil să ruleze numai programele necesare rezolvării tipului respectiv de probleme pentru care este dedicat calculatorul. Calculatoare dedicate pot fi întâlnite în ceasurile electronice, camerele video, pompele de benzină, sistemele de ghidare ale rachetelor, sistemele de control ale roboţilor industriali etc. Până acum câţiva ani, termenii de calculator personal (Personal Computer) şi calculator de birou (Desktop Computer) desemnau unul şi acelaşi lucru. Astăzi, noţiunea de calculator personal tinde să cuprindă şi acele calculatoare portabile, de mici dimensiuni, şi care nu pot fi desemnate prin termenul de calculator de birou sau "desktop computer", care este folosit în continuare numai pentru calculatoarele ce pot fi întâlnite în mod uzual în birouri, şi care sunt destinate rezolvării problemelor curente dintr-un birou: procesări de texte, baze de date, dezvoltări de programe etc. 4
  • 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 cristale lichide (LCD - Liquid Cristal Display), fiind alimentate cu energie electrică de la o baterie reîncărcabilă. Calculatoarele "lap-top" mai sunt desemnate şi prin termenul de "notebook computer". Un alt termen controversat este cel de staţie de lucru ( "workstation" ). O staţie de lucru este un calculator de birou performant, fiind mai puternic decât calculatoarele personale uzuale (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ât staţiile de lucru devin din ce în ce mai ieftine, şi calculatoarele personale din ce în ce mai puternice, este foarte dificil de trasat o linie de departajare între o staţie de lucru şi cele mai puternice calculatoare personale. În afara tipurilor de calculatoare descrise mai sus, şi care sunt în esenţă calculatoare monoutilizator, deşi pot fi folosite şi ca sisteme multiutilizator, mai pot fi întâlnite astăzi calculatoare şi mai puternice, care sunt destinate din start lucrului cu mai mulţi utilizatori în acelaşi timp, în vederea rezolvării unor probleme deosebit de complexe. Asemenea calculatoare sunt desemnate prin termenul de "mainframe computers", un exemplu de calculator "mainframe" fiind calculatorul utilizat pentru rezervarea locurilor la o companie de transport 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. Agentul companiei aeriene comunicã cu calculatorul "mainframe" prin intermediul unui terminal, ce este un ansamblu format din tastatură şi ecran, şi care transferă informaţiile către şi de la calculatorul "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 calculator monoutilizator 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 numai calculatoarele 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 unitate centrală 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. - 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 în conformitate cu o secvenţă de operaţii elementare, sau instrucţiuni, numită program. Deci, o unitate centrală de prelucrare poate executa un set limitat de operaţii elementare, care compun repertoriul de instrucţiuni al UCP-ului respectiv. La calculatoarele din generaţiile anterioare, UCP-ul era compus, din punct de vedere constructiv, din foarte multe componente. Datorită creşterii gradului de integrare a componentelor electronice, s-a ajuns ca o unitate centrală de prelucrare să fie condensată într-un singur circuit integrat. O unitate centrală de prelucrare realizată pe o singură pastilă de siliciu (sau cip) se numeşte microprocesor. Programele care sunt executate de microprocesor sunt stocate în memoria internă a calculatorului 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 memorie externă. Cele mai utilizate dispozitive de memorie externă sunt dispozitivele magnetice: discuri flexibile (floppy disks), benzile magnetice, discurile de mare capacitate sau discurile hard (hard disks), o altã denumire frecvent utilizată pentru acestea din urmă fiind cea de discuri 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 memoria internă. Deci, un microprocesor execută secvenţe de instrucţiuni din memoria internă. 6
  • 7. Pentru a "conversa" cu utilizatorul, un calculator dispune de următoarele dispozitive periferice 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 particular rezultatele prelucrării, şi imprimanta, pentru tipărirea pe hârtie a acestor informaţii. Unitatea centrală de prelucrare preia date de la dispozitivele de intrare prin intermediul porturilor de intrare, ş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 constitutiv principal al unui calculator personal, este şi această conectare a tuturor resurselor sale prin intermediul 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 calculatorului realizat în jurul procesorului respectiv. Dacă magistrala de date are 16 linii, deci transferurile de date se pot face numai pe cuvânt (1cuvânt = 2 octeţi), se spune că avem un calculator pe 16 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 efectua transferuri de date pe magistrală. De exemplu, prin utilizarea unui dispozitiv de acces direct la memorie, sau dispozitiv DMA (Direct Memory Access), procesorul poate ceda magistrala acestui dispozitiv DMA, care efectuează transferuri de date între dispozitivele periferice şi memorie, microprocesorul fiind degrevat de sarcina unor astfel de transferuri, şi efectuând în acest timp alte operaţii, care duc la creşterea gradului de paralelism şi implicit la creşterea vitezei de calcul. Când transferul DMA s-a terminat, dispozitivul DMA anunţă 7
  • 8. microprocesorul, printr-o linie a magistralei, că poate prelua controlul magistralei, şi deci poate 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 AT utilizau unul din microprocesoarele I8088 sau I8086 ale firmei INTEL, calculatoarele din familia IBM PS/2 unul din microprocesoarele I8086, I80286, I80386 sau chiar I80486, iar calculatoarele IBM actuale folosesc procesoare puternice cum ar fi Pentium II sau Pentium III. Pentru exemplificare, microprocesorul I8088 are magistrala de date de 8 biţi, magistrala de adrese de 16 biţi, magistrala de control de 8 biţi, iar microprocesorul I8086 are magistrala de 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 de memorie, unde na este numărul de linii de adresă ale magistralei microprocesorului. La calculatoarele personale actuale, unitatea elementară de memorie care poate fi adresată este octetul. 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 16 linii de date, se pot face transferuri de date între microprocesor şi memorie atât pe octet cât şi pe cuvânt (1 cuvânt = 2 octeti = 16 biţi). La microprocesoarele I80386 şi I80486, care au magistrala 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 memorie este 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ă de intrare/ieşire. Totalitatea adreselor de I/E formează spaţiul de I/E al unui microprocesor. La microprocesorul I8086, porturile pot fi pe 8 sau 16 biţi, după cum microprocesorul poate citi sau scrie date din/în porturile respective (pe octet sau pe cuvânt). Procesoarele din familia Intel 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 folosit pentru sincronizarea operaţiilor sale interne. Frecvenţa semnalului de ceas determină viteza cu care microprocesorul procesează datele, şi este important ca această frecvenţă să fie cât mai 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. 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 Inline Packages), 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. 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 o valoare. Astfel, cuvintele, numerele, imaginile de pe o foaie de hârtie sunt simboluri ce reprezintă o informaţie . Un calculator nu poate înţelege cuvinte, imagini sau chiar litere, şi nu poate procesa informaţ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". Un calculator poate procesa cantităţi mai mari de informaţie, tratând grupurile de biţi ca unităţi de informaţie. Astfel, o colecţie de 8 biţi numită octet sau "byte", unde fiecare bit poate fi 0 sau 1, poate distinge între 256 de stări diferite ( 28=256 ), deci dacă am vrea să comunicăm cu cineva folosind un octet, am putea transmite cel mult 256 de mesaje diferite, fiecare mesaj fiind 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 şir de biţi poate fi un număr, o literă a alfabetului, o instrucţiune a unui program sau orice alt lucru. Deoarece calculatoarele reduc orice informaţie la o combinaţie de 0 şi 1, numerele din calculator 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 şi caracterele, calculatorul procesând cuvinte, propoziţii etc. Pentru aceasta, este necesar ca fiecare 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 sunt ASCII - American Standard Code for Information Interchange - şi EBCDIC - Extended Binary Coded Decimal Interchange Code. În prezent, marea majoritate a calculatoarelor acceptă numai codul ASCII, în care fiecărui caracter alfanumeric îi corespunde un cod unic pe 7 biţi, sau pe 8 biţi în cazul codului ASCII extins. Întrucât codul ASCII este intens folosit de către utilizatori, este necesară menţionarea codurilor ASCII ale celor mai utilizate caractere : A - 65 a - 97 0 - 48 ' ' - 32 ( blanc ) 10
  • 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. De exemplu, 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 reguli folosite pentru reprezentarea unui număr. Un sistem de numeraţie poziţional este un sistem de numeraţie la care aportul unei cifre în valoarea totală a unui număr depinde atât de valoarea cifrei, cât şi de locul ocupat de cifră în reprezentarea numărului respectiv. Sistemul de numeraţie arab este un sistem de numeraţie poziţional, spre deosebire de sistemul de numeraţ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 unic egalitatea : 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 pentru numă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. Deoarece N1 〉 N2 〉 N3 〉 ... ≥ 0, se va ajunge inevitabil după un număr de paşi - m - la un câ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ând membru cu membru şi simplificând, obţinem egalitatea (1). Unicitatea descompunerii numă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 de cifre 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 de cifre 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ţilor fracţ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ţinem rezultatul 0, numărul real r are un număr finit de cifre zecimale, altfel va avea un număr infinit de cifre zecimale. 12
  • 13. În concluzie, conform celor relatate anterior, pentru reprezentarea oricărui număr întreg sau real, într-o baza oarecare p, se folosesc numai p simboluri sau cifre. Cifrele sistemului binar sunt 0 şi 1, ale sistemului octal (baza 8) sunt 0,1,2,3,4,5,6,7, iar ale sistemului hexazecimal (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, scris N(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 succesive luate î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 fiind efectuate în baza p. Fie r(p) un număr real scris în baza p. Deci, r(p) se descompune într-o parte întreagă şi o parte 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 date mai sus, obţinându-se o reprezentare de forma ymym-1 ... y1y0. Pentru conversia părţii fracţionare, se înmulţeşte rl(p) cu q, se separă partea întreagă de partea fracţionară, apoi se continuă înmulţirea părţii fracţionare cu q, repetându-se procedeul până când partea fracţionară devine zero, sau până când se obţin cifrele părţii fracţionare în baza q, cu o anumită 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. 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 conversie a numerelor întregi sau reale, din baza p în baza q, calculele fiind efectuate în baza q. Se va exemplifica 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 sistemul zecimal, sunt: sistemul binar, sistemul octal şi sistemul hexazecimal. Sistemul binar este sistemul de numeraţie în care lucrează calculatoarele electronice, datorită faptului că nu are decât două cifre, ceea ce duce la o implementare uşoară a calculelor în hardware. Sistemele de numeraţie octal şi hexazecimal sunt folosite deoarece comprimă şirurile lungi de biţi din reprezentarea unui număr în baza 2, iar conversia din baza 2 in baza 8 sau 16, şi invers, se face 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. 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ţine reprezentarea 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ă o sumă 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 conversia din baza 2 în baza 10 şi apoi conversia din baza 10 în baza 16, ci se poate face direct conversia 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ărul binar î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ă din tabela 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 binare din 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. 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ând o 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, distingem următoarele trei coduri de reprezentare: a) codul direct - în care numărul binar este reprezentat prin modulul numărului precedat 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. 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 este aceeaşi ca şi în codul direct. Pentru numerele negative, codul în complement faţă de 2 se obţ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 majoritatea calculatoarelor electronice, şi îl vom folosi în continuare. La reprezentare internă a unui număr binar, nu se poate face abstracţie de numărul de biţi pe care se reprezintă numărul binar. Dacă se doreşte reprezentarea numărului binar pe un număr mai mare de biţi, se face extensia bitului de semn în cei mai semnificativi biţi. De exemplu, 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 2 va fi 1001, la care se face extensia bitului de semn până la octet ). Reprezentat în cod complementar faţă de 2 pe un cuvânt, -7 va fi 1111111111111001 (de exemplu, în urma execuţ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ă numerele pozitive vor avea întotdeauna cel mai semnificativ bit 0, în timp ce numerele negative vor avea 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 pentru reprezentarea 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. 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 pentru partea fracţionară, numărul real maxim ce poate fi reprezentat este rmax = 011.. 1,111...1, ce conţ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ărcii zecimale 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 care se modifică mantisa pentru a îndeplini această condiţie, ajustând corespunzător exponentul, se numeş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ă sau mobilă, dar acestea nu vor fi tratate în secţiunea de faţă. Formatul de virgulă mobilă prezentat mai sus este formatul IEEE pentru numere reale scurte (pe 32 de biţi). Operaţiile cu numere în virgulă 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 preferate numerele 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 şi Pentium, coprocesorul arimetic este integrat pe cip împreună cu procesorul principal. 18
  • 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 - se asignează "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-o manieră simplificată, se poate considera că "1" logic este reprezentat de un nivel de tensiune apropiat 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 în calculatoare, 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 tabel de adevăr : Simbolul grafic cel mai utilizat pentru reprezentarea operatorului negaţie este următorul: Disjuncţia logică sau suma logică (operatorul SAU,OR) şi conjuncţia logică sau produsul 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. 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 din cei 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ă doi noi 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. O funcţie booleană de n variabile este o funcţie f : Bn→B, unde Bn = BxBx....xB de n ori. 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 ale variabilelor funcţiei, iar în coloana n+1 se trec valorile funcţiei corespunzătoare fiecărei combinaţii. Exemplu: f(X,Y,Z) = XYZ + YZ +XZ O funcţie booleană, sau o expresie booleană, este în forma canonică disjunctivă, dacă se scrie ca o disjuncţie de mintermeni, şi este în forma canonică conjunctivă, dacă se scrie ca o conjuncţie de maxtermeni. Un mintermen este un produs logic, conţinând fiecare variabilă o dată şi numai o dată, fie variabila fie negaţia ei. Un maxtermen este o sumă logică, ce conţine fiecare 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 cu ajutorul circuitelor fundamentale sau porţilor logice. Costul unei funcţii logice este egal cu numă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. 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ărul maxim 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 expresii logice echivalente cu cost minim, pentru un număr dat de niveluri logice. Funcţia din exemplul 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, în care 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 împart cele n variabile în 2 mulţimi de k şi p elemente, k + p = n. Vom forma o matrice cu 2k linii şi 22
  • 23. 2p coloane, fiecare element al matricii indicând valoarea funcţiei corespunzătoare valorilor variabilelor ce poziţionează elementul în matrice. În general, putem grupa 21, 22, 23,..., 2p termeni vecini cu valori 1 ale funcţiei , eliminându-se din termenul rezultant 1,2,3,...,p variabile, pentru care echivalenţii binari îşi schimbă valoarea în rangurile corespunzătoare acestor variabile. Pentru ordonarea coloanelor şi liniilor matricei Veitch-Karnaugh, se folosesc combinaţiile posibile ale valorilor variabilelor de intrare, două coloane sau linii ală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ţiile logice 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ă de circuit integrat pot fi implementate una sau mai multe porţi, depinzând de dimensiunea capsulei (numărul de pini al capsulei) precum şi de numărul de intrări ale porţilor logice. De 23
  • 24. exemplu, pe o capsulă cu 14 pini pot să încapă 6 inversoare, 4 porţi AND cu 2 intrări, 1 poartă NAND cu 8 intrări etc. Circuitul 7404, reprezentat mai sus, este o capsulă de 14 pini în tehnologie TTL, care conţine 6 inversoare; circuitul 7400 conţine 4 porţi NAND cu 2 intrări ; circuitul 7432 conţine 4 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 momentul modificării unei variabile la intrare şi momentul când răspunsul este furnizat la ieşirea circuitului. - 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 unui circuit 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, din cele 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 de circuite logice TTL, tensiunea de ieşire minimă garantată în starea "high" (atunci când la 24
  • 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 unele situaţii, cum este conectarea la magistrală, apare necesitatea conectării împreună a ieşirilor mai multor circuite logice. În acest caz devin utile circuitele "tri-state", ieşirea circuitului având trei stări posibile : nivel ridicat ("1"), nivel coborât ("0"), şi deconectat sau starea de mare 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 circuitului va fi deconectată de la magistrală, magistrala sau linia comună fiind controlată de ieşirea altui circuit 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ă cu intrarea 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ând circuite buffer: 25
  • 26. 3.4. Structuri logice combinaţionale O structură logică combinaţională, sau un circuit logic combinaţional, este un circuit cu n 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 2n variabile de ieşire, la care numai o singură ieşire este activă (de regulă în starea "low") la un moment dat, celelalte ieşiri fiind inactive. Va fi activă ieşirea yk, k=0,1, ...2n-1, unde k reprezintă corespondentul zecimal al numărului binar XnXn-1...X2X1 existent pe cele n linii de intrare. 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 un moment 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ţia de pe liniile C,B,A. Dacă circuitul este activ, acesta va funcţiona conform următoarei tabele de adevăr : 26
  • 27. Circuitul multiplexor este unul din principalele circuite combinaţionale, fiind denumit uneori şi circuit "selector", deoarece este utilizat ca un comutator de selectare a anumitor intrări. De exemplu, un multiplexor cu 8 intrări selectează şi trimite la ieşire una din cele 8 intră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 2n intrări de date, intrare care este cuplată la ieşire. Uneori, circuitele multiplexoare sunt prevăzute cu intrări de activare. Un exemplu concret de circuit multiplexor este circuitul 74151, 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. Circuitul este 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ă numere binare. De exemplu, circuitul sumator CDB483 adună două numere binare pe 4 biţi astfel : C4∑3∑2∑1∑0 = X3X2X1X0 +Y3Y2Y1Y0 + C0 27
  • 28. Pentru a aduna două numere pe n biţi, se conectează mai multe circuite CDB483 în cascadă, 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 diferite operaţ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 de control 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ă intrarea de 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 sau aritmetice pe mai mulţi biţi, se conectează mai multe circuite ALU74181 în cascadă. O asemenea unitate aritmetico-logică, dar mult mai performantă, se găseşte în interiorul oricărui microprocesor. 3.5. Sisteme logice secvenţiale Capacitatea de a memora este foarte utilă în soluţionarea unor probleme. Nu toate problemele pot fi rezolvate într-o manieră pur combinaţională. Funcţia de memorare ne permite să reţinem datele până în momentul când este necesară prelucrarea lor, împreună cu alte date de intrare. Dispozitivele secvenţiale sau dispozitivele cu memorie, au o intrare de ceas (sau intrare de tact), starea lor schimbându-se numai ca urmare a tranziţiei acestui semnal de ceas. 28
  • 29. Un sistem logic pur combinaţional nu posedă memorie, ieşirile la un moment dat fiind complet definite de intrări. La un sistem secvenţial, relaţia dintre ieşiri şi intrări este determinată şi de evoluţia anterioară a intrărilor şi ieşirilor. Un sistem logic secvenţial poate fi divizat î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 de memorare, şi în particular bistabilii, îşi modifică ieşirea în funcţie de intrări numai ca urmare a 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ă cu intrarea 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. Bistabilul de tip R-S Intrarea R, numită şi intrare de Reset, aduce ieşirea Q a bistabilului în zero la următorul front activ al semnalului de ceas, sau altfel spus, resetează ieşirea bistabilului. Dacă intrarea S, numită şi intrare de Set, este 1, ieşirea bistabilului va trece în 1 la următorul front activ al ceasului. Dacă R=S=0, ieşirea bistabilului rămâne nemodificată după a n+1-a tranziţie a semnalului de ceas. R=S=1 determină trecerea bistabilului într-o stare nedeterminată (ieşirea poate 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 ce intrarea 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 de bistabilele active pe front, la care tranziţia ieşirii este determinată de frontul crescător sau descrescător al semnalului de ceas. Bistabilul de tip D prezentat anterior este un bistabil activ pe 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 a bistabilului la momentul n+1 va fi egală cu ieşirea Q la momentul anterior tranziţiei n+1 a semnalului de ceas, inversată. 30
  • 31. Bistabilele integrate care pot fi întâlnite pe piaţă sunt puţin mai complicate decât cele prezentate anterior. Astfel, circuitul 7474 (sau echivalentul său CDB474) conţine 2 bistabile de tip D pe capsulă, care arată ca în figura 3.1. R şi S sunt intrări asincrone active pe nivel coborât, care resetează, respectiv setează ieşirea Q a bistabilului, indiferent de semnalul de ceas. De asemenea, fiecare bistabil mai este prevăzut cu o ieşire Q, ce reprezintă ieşirea Q inversată. Ceasul este activ pe front crescător. Capsula 7473 (sau CDB473) conţine 2 bistabile J-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. Registrele folosesc, de obicei, ca dispozitiv de memorare a datelor. Spre deosebire de bistabile, care memorează o informaţie de un bit, registrele sunt dispozitive care pot stoca cuvinte (mai mulţi biţi), deci registrele sunt realizate prin alăturare de bistabile, fiecare bistabil memorând un singur 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, pe frontul 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 la o intrare serială. Exemplu de registru serie, implementat cu bistabile de tip D: 31
  • 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 în figura 3.2, şi care este un registru de 4 biţi, cu posibilitate de operare sincronă serie sau paralelă. Funcţionarea circuitului 7495 este următoarea: Dacă S=1, este permisă operarea paralelă, şi se vor încărca în registru, în paralel, datele de la D0-D3, la o tranziţie din 1 în 0 a intrării de tact CP2 (ceas activ pe front descrescător). Dacă S=0, este permisă operarea serie, şi la o tranziţie din 1 în 0 a intrării de ceas CP1, se realizează deplasarea serie dreapta a informaţ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 asemenea configuraţie numărând impulsurile de la intrarea de ceas a bistabilelor. Ieşirile bistabilelor sunt interpretate, în acest caz, ca un număr binar ce reprezintă starea numărătorului, sau cu alte cuvinte, ieşirile bistabilelor reprezintă numărul de impulsuri de ceas apărute la intrarea de tact a bistabilelor. Astăzi nu se mai realizează practic numărătoare cu circuite bistabile individuale, existând numeroase numărătoare integrate. Astfel, circuitul 74193 este un numărător binar reversibil de 4 biţi (sau numărător modulo 16). Circuitul are două intrări de ceas active pe front pozitiv: Cu - pentru incrementarea numărătorului şi Cd - pentru decrementarea numărătorului. Numărătorul poate fi resetat (Y3=Y2=Y1=Y0=0), dacă intrarea R=1. PL este o intrare de comandă a încărcării paralele, 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. incrementează (adună 1) numărul binar Y3Y2Y1Y0 la fiecare front crescător al intrării Cu, şi decrementează (scade 1) numărul Y3Y2Y1Y0 la fiecare front crescător al intrării Cd. Ieşirile TCD şi TCU sunt "low" la trecerea prin zero a numărătorului când se numără înapoi, respectiv la trecerea 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 în cascadă, î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. 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 perfect compatibil î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 microprocesorului I8086 a fost lărgit cu instrucţiuni specifice modului de lucru protejat, ce oferă suportul necesar implementării unor sisteme de operare multitasking, cum este OS/2. Într-un asemenea sistem de operare, unitatea centrală de prelucrare serveşte pe rând mai multe taskuri, sau programe, 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 magistrala de adrese de 24 de biţi, cu care poate adresa în mod direct un spaţiu de memorie de 16Mocteţi. De asemenea, are în compunere o unitate de gestiune a memoriei, prin intermediul căreia poate adresa o memorie virtuală de 1Goctet. La fel ca şi I8086, poate adresa un spaţiu de 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 deosebire de I8087, poate asigura asistenţă microprocesorului I80286, în ce priveşte efectuarea calculelor matematice, şi în modul protejat. Microprocesorul I80286 este microprocesorul în jurul căruia sunt realizate calculatoarele IBM AT sau compatibile, folosind o magistrală de tip ISA - Industrial Standard Architecture. I80286 este livrat în două moduri diferite: într-o capsulă de plastic de formă pătrată, cu pini numai pe cele 4 laturi ale capsulei, sau într-o capsulă pătrată ce conţine o 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. Unitatea de interfaţă cu magistrala controlează toate operaţiile pe care microprocesorul le 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 cererea unităţii de execuţie. Dacă BU nu are o astfel de cerere din partea unităţii de execuţie, va aduce din memorie următoarea instrucţiune în secvenţă, pe care o plasează într-o coadă de instrucţiuni. Aceasta presupune că instrucţiunile se execută în secvenţă, una după alta, în ordinea în care apar în memorie. Dacă survine o ruptură în secvenţă (de exemplu o instrucţiune de salt), coada de instrucţiuni este resetată şi se reîncepe citirea instrucţiunilor cu anticipaţie de la noua adresă. Coada de instrucţiuni este o memorie internă de 6 octeţi, care memorează codurile instrucţiunilor înainte de a fi utilizate de unitatea instrucţiunilor. Acest mecanism de citire cu anticipaţie a instrucţiunilor permite eliminarea timpilor morţi de citire din 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ă, şi le plasează într-o altă coadă, cu lungimea de 3 octeţi, numită coada instrucţiunilor decodificate. Unitatea de execuţie execută instrucţiunile preluate din coada de instrucţiuni decodificate, şi face apel la unitatea de interfaţă cu magistrala, pentru toate transferurile de date 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 care intervin în execuţia instrucţiunilor. UAL efectuează calculele manevrând regiştrii generali şi 35
  • 36. operanzii instrucţiunilor, şi totodată gestionează indicatorii de condiţie şi stare conţinuţi în registrul 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 de unitatea 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 de execuţ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 executate anterior. În acelaşi timp, unitatea instrucţiunilor decodifică următoarea instrucţiune de executat, pe care o pune în coada de instrucţiuni decodificate, pentru a fi preluată de unitatea de 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ţiunilor aritmetice şi logice, şi pot fi folosite atât ca registre pe 16 biţi, cât şi ca registre pe 8 biţi. De exemplu, registrul AX, registru pe 16 biţi, este compus din registrul AH ce conţine cei 8 biţi 36
  • 37. mai semnificativi din AX, şi din registrul AL, ce conţine cei mai puţin semnificativi 8 biţi din AX. Registrele SP şi BP sunt denumite registre indicatoare de adresă (sau pointer) şi sunt folosite numai ca registre pe 16 biţi. Registrul SP conţine deplasamentul în octeţi al vârfului stivei, faţă de începutul segmentului de stivă curent. De cele mai multe ori, şi registrul BP conţine un deplasament în segmentul de stivă curent. Registrele BX şi BP mai sunt denumite uneori şi registre bază, fiind desemnate să conţină adresa de bază a unei structuri de date din memorie, 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 dimensiunea maximă de 64Kb. În general, programele sunt constituite din mai multe segmente (module) de cod, 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, fiecare registru 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 prin program. Conţinutul registrelor de segment este interpretat diferit în funcţie de modul de lucru al microprocesorului: real sau virtual. În modul de lucru real, care este modul de lucru compatibil I8086, registrele de segment conţin cei mai semnificativi 16 biţi ai adresei de bază a segmentelor de memorie. Pentru a face acces la o dată din memorie, microprocesorul trebuie să cunoască adresa de bază a segmentului în care se află data ce se doreşte a fi accesată (adresa primului octet din segment), precum şi adresa relativă în segment a datei respective, sau un deplasament, ce reprezintă 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ă a segmentului de cod curent, DS conţine cei mai semnificativi 16 biţi ai adresei de bază a segmentului de date curent ş.a.m.d. Segmentele de cod ale unui program conţin instrucţiunile programului, segmentele de date (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 de memorie organizate pe principiul stivei. 37
  • 38. În modul de lucru protejat, registrele de segment conţin un index într-o tabelă de descriptori a segmentelor. O intrare în această tabelă conţine un descriptor de segment, care cuprinde : - 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. Din această cauză, în modul de lucru protejat, registrele de segment mai sunt denumite şi selectori de 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 adresa relativă în raport cu începutul segmentului de cod curent, a următoarei instrucţiuni ce trebuie executată. Registrul IP este transparent la nivelul programatorului, el fiind actualizat automat după citirea instrucţiunii curente, astfel încât să indice deplasamentul următoarei instrucţiuni de executat. Registrul indicatorilor de stare şi control - F - conţine indicatorii de stare şi control ai microprocesorului. 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 unei operaţii aritmetice sau logice. Unele instrucţiuni ale microprocesorului testează aceşti indicatori şi, în funcţie de cum sunt poziţionaţi (în 0 sau în 1), se execută anumite acţiuni specifice. Indicatorii de stare sunt următorii: - indicatorul de transport - CF (Carry Flag ) - este unu dacă a apărut transport din bitul cel mai semnificativ în exterior, sau s-a făcut împrumut în exterior din bitul cel mai semnificativ al rezultatului. Indicatorul CF este afectat şi de instrucţiunile de rotire şi deplasare. - 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ţi unu. În caz contrar PF este poziţionat în zero. - indicatorul de transport auxiliar - AF (Auxiliary Carry Flag) - este unu dacă la execuţia instrucţiunii a apărut un transport între rangul 3 şi rangul 4 al rezultatului. De exemplu, 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 şi pune rezultatul în AH, apare un transport din rangul 3 în rangul 4, ceea ce determină setarea indicatorului AF. AH = 01101000 + BH = 00101001 ⎯⎯⎯⎯ 38
  • 39. AH = 10010001 - indicatorul de zero - ZF (Zero Flag) - este poziţionat în unu dacă rezultatul instrucţ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 al rezultatului, dat fiind faptul că, în reprezentarea numerelor în complement faţă de 2, numerele negative au primul bit 1. - indicatorul de depăşire - OF (Overflow Flag) - este unu dacă la execuţia instrucţiunii anterioare a apărut o depăşire, adică dimensiunea rezultatului depăşeşte capacitatea locaţiei de destinaţie. Indicatorii de control pot fi poziţionati în unu sau în zero prin program, asigurând prin aceasta controlul prin program al unor operaţii ale procesorului. Indicatorii de control sunt urmă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 la dreapta la stânga. Ştergând DF (poziţionând în zero), şirurile vor fi prelucrate de la stânga la dreapta. - indicatorul de întrerupere - IF (Interrupt Flag) - Dacă IF este poziţionat în unu prin program, microprocesorul va recunoaşte cererile de întrerupere externă. Ştergând acest indicator, î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ă posibilitatea investigă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 şi stare ai microprocesorului I8086. De fapt, toate registrele prezentate anterior pot fi întâlnite şi la I8086. În plus faţă de I8086, I80286 mai conţine în registrul indicatorilor de condiţie şi stare, 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ă în cadrul 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 de privilegiu cel mai slab, pentru care nivelul taskului în curs de execuţie trebuie să fie superior sau 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. 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 acestui registru de 16 biţi, ceilalţi biţi fiind rezervaţi pentru 80386. Semnificaţia biţilor este urmă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 resetarea microprocesorului acest bit poate fi adus în zero, determinând intrarea microprocesorului 80286 în modul de lucru real. La microprocesorul 80386, acest bit poate fi poziţionat în zero prin program. - MP (Monitor Processor extension) - Dacă MP=1 se indică prezenţa unui coprocesor matematic. - EM (Coprocessor EMulation) - Dacă EM este setat, toate funcţiile coprocesorului matematic vor fi emulate. Aceasta înseamnă că, spre exemplu, un logaritm nu este calculat de coprocesorul matematic I80287, ci de o rutină din biblioteca matematică, folosind numai instrucţiuni ale microprocesorului I80286. - TS (Task Switch) - Dacă bitul este setat a avut loc o comutare de task, şi este posibil să 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 80287 necesită până la 1000 de perioade de ceas, este posibil ca I80286 să servească alt task în acest timp, reîntorcându-se la taskul precedent atunci când coprocesorul a terminat de executat instrucţiunea. 4.1.4. Operaţiile de bază pe magistrală ale microprocesorului I80286 Activitatea pe magistrală a microprocesorului I80286 diferă mult faţă de activitatea procesoarelor anterioare, datorită mecanismului de tip "pipe-line" realizat de I80286. Procesorul I80286 plasează adresele pe magistrala de adrese înaintea sfârşitului ciclului de magistrală precedent, datele citite sau scrise fiind valide pe magistrala de date şi la începutul ciclului de magistrală următor. Acest lucru a permis reducerea ciclului de magistrală la numai doi cicli procesor, în timp ce ar fi fost necesari trei cicli procesor. Se definesc următoarele noţiuni: - Ciclul de ceas sistem - este timpul scurs între două fronturi crescătoare ale semnalului de ceas de la intrarea CLK a microprocesorului (perioada ceasului extern). 40
  • 41. - Ciclul procesor - este format din doi cicli de ceas sistem. Microprocesorul foloseşte un ceas intern PCLK, format prin divizarea cu doi a ceasului sistem CLK. Ciclul procesor este perioada ceasului PCLK. - Ciclul de magistrală - este timpul necesar unui transfer de date pe magistrală (de exemplu, citirea unui cuvânt din memorie sau porturile de intrare, sau scrierea unui cuvânt în memorie sau porturile de ieşire ). - Ciclul instrucţiune - este timpul necesar execuţiei unei instrucţiuni, şi este format din cicli de magistrală şi din cicli interni ai microprocesorului. În general, orice microprocesor execută un program prin execuţia repetată a urmă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ă a instrucţ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 ceas sistem CLK. Starea TI indică faptul că nu se solicită nici un transfer de date pe magistrală, procesorul controlâ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 generate semnalele de control, semnalele de adresă şi, în cazul unui ciclu de scriere, sunt generate şi semnalele de date. Starea TC urmează după o stare TS, şi semnifică o operaţie în curs de execuţie pe magistrală. În această stare sunt efectuate transferurile de date între memorie sau porturi pe de o parte, şi procesor pe de altă parte. Starea TH indică faptul că I80286 a pierdut controlul magistralei. În această stare magistrala este folosită de un alt dispozitiv, pentru efectuarea transferurilor de date, 80286 41
  • 42. fiind deconectat de la magistrală (toate semnalele de la pinii procesorului sunt în starea de mare 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, şi activează semnalele M/IO şi COD/INTA de pe magistrala de control, pentru a indica o operaţie cu memoria sau cu porturile de I/E. În starea TS a ciclului de citire, procesorul activează 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 de I/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 unui operand 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. Semnalele S0 şi S1 de pe magistrala de control disting între o operaţie de citire, scriere sau 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şitul ciclului 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 de memorie 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 sunt disponibile pe magistrala de date. La sfârşitul stării TC a ciclului de citire, procesorul testează semnalul READY, care este 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 va genera încă o stare TC, la sfârşitul căreia se va testa din nou semnalul READY ş.a.m.d. (se va prelungi 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 a ciclului de magistrală curent, pune S1 pe 1, S0 pe 0, indicând o operaţie de scriere, şi pe magistrala 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 semnalul READY pe 1, ceea ce determină procesorul să prelungească ciclul de magistrală curent cu stări TC suplimentare. 43
  • 44. Figura 4.1.4. Ciclul de scrire Ciclii de recunoaştere întrerupere apar în urma apariţiei unei întreruperi externe, când procesorul execută recunoaşterea întreruperii, pentru a afla adresa rutinei de tratare a întreruperii unde va transfera controlul. Ciclii de HALT şi blocare apar fie ca efect al execuţiei instrucţiunii HALT (ce opreşte procesorul din execuţia normală a instrucţiunilor), fie datorită apariţiei excepţiilor multiple la execuţia unei instrucţiuni. Procesorul poate fi scos din starea de HALT şi din starea de blocare fie prin resetarea microprocesorului, fie printr-o întrerupere externă nemascabilă. În plus, procesorul poate fi scos din starea de HALT şi printr-o întrerupere externă mascabilă, dacă întreruperile externe mascabile sunt validate. Resetarea, sau iniţializarea procesorului, se face prin aplicarea unui "1" logic pe intrarea RESET a procesorului. După reset I80286 intră în modul real, registrul MSW fiind încărcat cu valoarea FFF0H, cele mai semnificative linii de adresă, A20-A23, fiind tinute în "1" logic, astfel încât prima instrucţiune executată va fi instrucţiunea de la adresa fizică FFFFF0H, care, de regulă, este o instrucţiune de salt în zona de memorie de până la 1Mb. Această instrucţiune de salt determină dezactivarea liniilor A20-A23, care vor trece în zero, procesorul I80286 lucrând în modul real, ca un procesor I8086. Pentru a intra în modul protejat, trebuie setat, prin program, bitul PE din registrul MSW. 4.1.5. Modurile de lucru ale microprocesorului I80286 Modul de lucru real este modul compatibil I8086, asigurând posibilitatea rulării pe sisteme cu I80286 a programelor dezvoltate anterior pe microprocesoarele 8086/8088. Singurul avantaj este faptul că viteza de lucru este mai mare. În modul de lucru real memoria este adresată folosind un pointer de 32 de biţi, format din două componente: 44