47586767 arhitectura sistemelor de calcul curs dan

Upload: tutulan-raluca

Post on 20-Jul-2015

135 views

Category:

Documents


4 download

TRANSCRIPT

UNIVERSITATEA DIN BACU FACULTATEA DE INGINERIE

DAN ROTAR

MARIUS ANGHELU

ARHITECTURA SISTEMELOR DE CALCULNote de curs Indrumar de laborator

EDITURA ALMA MATER BACU 2007

Cuprins

1.1. 1.2. 1.3. 1.3.1. 1.3.2. 1.4. 1.5.

CAPITOLUL 1 BAZE DE NUMERAIE Introducere Baza de numeraie zece Baza de numeraie doi Conversia binar-zecimal Conversia zecimal-binar Baza de numeraie opt (sistemul octal) Baza de numeraie aisprezece (sistemul hexazecimal) CAPITOLUL 2 OPERAII ARITMETICE Introducere Operaii aritmetice cu numere binare Adunarea Scderea nmulirea mprirea ntreag Operaii aritmetice cu numere reprezentate n octal i hexazecimal Adunarea i scderea n octal Adunarea i scderea n hexazecimal

pag. 6 6 6 7 7 8 10 12 13 14 14 14 14 15 16 17 18 19 20 21 21 25 26 29 29 32

2.1. 2.2. 2.2.1. 2.2.2. 2.2.3. 2.2.4. 2.3. 2.3.1. 2.3.2.

CAPITOLUL 3 ARHITECTURA SISTEMELOR DE CALCUL 3.1. Introducere 3.2. Arhitectura von Neumann 3.3. Arhitectura Harvard CAPITOLUL 4 UNITATEA CENTRAL Introducere 4.2. Microprocesorul universal (structura general a unui microprocesor) 3

4.3. 4.3.1. 4.3.2. 4.3.2.1. 4.4. 4.4.1. 4.5. 4.5.1. 4.5.2. 4.5.3.

Caracteristicile principalelor tipuri de microprocesoare Microprocesorul ZILOG Z80 Microprocesoarele INTEL 80x86 Microprocesorul INTEL 8086/8088 Procesoare de semnal digitale Procesorul de semnal digital, TMS320F240 Microcalculatoare integrate, microcontrolere Prezentare general Microcontrolerul AT90S2313 Microcontrolerul PIC 16F877 CAPITOLUL 5 MEMORIA Prezentare general Aplicarea principiului "cache n sistemele de calcul Memoria Cache Cache-ul de disc Cache-ul microprocesorului Cache-ul cu adresare direct (direct mapped) Cache-ul cu adresare asociativ (fully associative) Cache-ul parial asociativ (set-associative) Gruparea memoriilor Creterea capacitii memoriei prin creterea numrului de linii de date Gruparea memoriilor pentru creterea numrului de linii de adres Gruparea mixt Adresarea memoriilor Adresarea absolut Adresarea relativ (redundant) CAPITOLUL 6 PORTURI (INTERFEE) Prezentare general Interfaa serial programabil 8251 Interfaa logic programabil 8255 Interfaa USB (Universal Serial Bus) Introducere Prezentarea Universal Serial Bus Vitezele USB Conectorii Caracteristici electrice Identificarea vitezei Alimentarea VBUS Protocolul Interfeele microcontrolerelor Modulul convertor analog-digital (A/D) 4

33 33 34 37 51 54 58 58 59 62 76 76 82 82 85 86 87 87 88 89 91 92 94 94 94 95

5.1. 5.2. 5.2.1. 5.2.2. 5.2.3. 5.2.4. 5.2.5. 5.2.6. 5.3. 5.3.1. 5.3.2. 5.3.3. 5.4. 5.4.1. 5.4.2.

6.1. 6.2. 6.3. 6.4. 6.4.1. 6.4.2. 6.4.2.1. 6.4.2.2. 6.4.2.3. 6.4.2.4. 6.4.2.5. 6.4.2.6. 6.5. 6.5.1.

96 99 107 115 115 118 118 120 121 121 123 123 125 126

6.5.1.1. Cerinele achiziiei analog-digitale 6.5.1.2. Selecia ceasului conversiei analog-digitale 6.5.1.3. Conversia A/D CAPITOLUL 7 CIRCUITE SPECIALE Introducere Controlerul de ntreruperi programabil 8259 ntreruperile microcontrolerului TMS320F240 ntreruperile managerului de evenimente (EV) Accesul direct la memorie (DMA) Circuitul 8257 pentru acces direct la memorie DMA Conexiunile externe Registrele interne ale 8257 Registrele de canal Registrul de mod Registrul de stare Efectuarea transferurilor cu DMA 8257 Circuitul contor/periodizator programabil 8253 Circuitele timer ale microcontrolerelor Timerele de uz general GPTimer LABORATOR Laborator 1. Utilizarea interfeei seriale Laborator 2. Comunicaia ntre sistemele de calcul Laborator 3. Utilizarea interfeei paralele Laborator 4. Comanda unui motor pas cu pas prin interfaa paralel Laborator 5. Studiul convertorului analog numeric Laborator 6. Programe pentru determinarea structurii i a performanelor sistemului de calcul Laborator 7. Metode de testare a memoriei Bibliografie

130 131 132

7.1. 7.2. 7.3. 7.3.1. 7.4. 7.4.1. 7.4.1.1. 7.4.1.2. 7.4.1.3. 7.4.1.4. 7.4.1.5. 7.4.1.6. 7.5. 7.6. 7.6.1.

133 133 139 140 149 151 151 153 154 155 156 157 159 165 165

186 190 197 203 211 218 222 226

5

CAPITOLUL 1 BAZE DE NUMERAIE1.1. Introducere

Valorile numerelor pot fi exprimate n diferite baze de numeraie. Astfel, n activitile umane obinuite baza de numeraie folosit este baza zece. Nu acelai lucru se ntmpl n sistemele numerice. Din considerente tehnologice, n sistemele numerice nu putem reprezenta dect dou numere: zero i unu. De regul valoarea zero este asociat cu un nivel sczut de tensiune iar valoarea unu este asociat cu un nivel ridicat de tensiune, diferena dintre tensiunea asociat valorii zero i cea asociat valorii unu asigurnd securitatea la perturbaii a sistemului numeric (n sensul c dac diferena ntre cele dou tensiuni crete, crete i imunitatea la perturbaii a sistemului numeric). O baz de numeraie presupune existena unui numr de simboluri (numite adesea cifre) cu ajutorul crora vor fi reprezentate numerele, un mod de scriere a numerelor i o relaie de calcul a valorii numrului. Numrul simbolurilor utilizate ntro baz de numeraie definete numele bazei de numeraie. Reprezentarea numerelor se face n prezent n exclusivitate prin scrierea poziional adic poziia numrului exprim i rangul acestuia (exponentul bazei de numeraie). Simbolul (cifra) cel mai din dreapta reprezentrii numrului are rangul minim (zero) iar simbolul (cifra) cel mai din stnga din reprezentarea numrului are rangul cel mai mare. Calculul valorii numrului se face prin nmulirea valorii simbolului cu baza la puterea rangului. Atunci cnd se lucreaz cu mai multe baze de numeraie simultan este obligatorie indicarea bazei de numeraie la fiecare numr scris. Acest lucru se face prin scrierea valorii bazei de numeraie ca indice. De exemplu: 1210 sau 1001101012 sau 1B2C16. Pentru indicarea bazei de numeraie pot fi utilizate i litere astfel: z (zecimal) pentru baza 10 b (binar) pentru baza 2 o (octal) pentru baza 8 h (hexazecimal) pentru baza 16. Exemplul de mai sus poate fi scris i: : 12z sau 100110101b sau 1B2Ch. n continuare vor fi prezentate principalele baze de numeraie utilizate n sistemele numerice.

6

1.2.

Baza de numeraie zece

Aa cum s-a artat, baza de numeraie zece, cea utilizat n activitile umane, presupune existena a zece simboluri distincte pentru reprezentarea numerelor. Aceste simboluri sunt: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Reprezentarea numerelor este poziional deci atunci cnd scriem un numr, poziia acestuia va reprezenta rangul su: rang: simbol: 43210 75213

Valoarea numrului reprezentat mai sus este: apte zeci i cinci de mii dou sute treisprezece. Aceasta valoare a rezultat din regula prezentat mai sus adic: valoare numr = 7 x 104 + 5 x 103 + 2 x 102 + 1 x 101 + 3 x 100

1.3.

Baza de numeraie doi

Numerele reprezentate n baza doi sunt numite n mod obinuit numere binare. n baza doi sunt necesare numai dou simboluri pentru reprezentarea numerelor i acestea sunt: 0 (zero) i 1 (unu). Datorit faptului c TABELUL 1.1. sistemele numerice lucreaz, aa cum s-a artat mai sus, n Numr Numr sistem binar, studiul reprezentrii numerelor n baza doi binar zecimal este important atunci cnd vorbim de tehnologia DSP. De 0000 0 asemenea prin asocierea unor valori de adevr celor dou 0001 1 simboluri: 0 fals (false) i 1 adevrat (true) sistemele 0010 2 numerice vor putea lucra n logic binar sau Boolean. Abordarea logicii binare va fi fcut mai trziu n 0011 3 cuprinsul acestui manual. 0100 4 Revenind la scrierea numerelor n baza doi trebuie 0101 5 spus faptul c toate regulile stabilite la baza zece se aplic 0110 6 i aici. De exemplu, dac vom scrie numrul binar: 0111 7 1000 8 rang 6543210 1001 9 numr: 1011001 1010 10 1011 11 atunci valoarea acestuia va fi: 1100 12 1101 13 valoare = 1 x 26 + 0 x 25 + 1 x 24 + 1 x 23 + 0 x 22 + 1110 14 + 0 x 21 + 1 x 20 = 64z + 16z + 8z + 1z = 89z 1111 15 n tabelul 2.1 este prezentat echivalena primelor 7

16 numere binare cu cele zecimale. Pentru acest tabel putem face urmtoarele observaii: o dac citim numerele binare din acest tabel pe coloan observm faptul c succesiunea cifrelor zero i unu depinde de rangul cifrei. Astfel la rangul zero ntlnim succesiunea 0,1,0,1,0,1, ... , la rangul unu succesiunea 0,0,1,1,0,0,1,1, ... , i aa mai departe; o un numr zecimal putere a lui doi va determina o cifr binar cu un singur simbol unu pe poziia exponentului puterii lui doi. Este evident faptul c atunci cnd se dorete conversia numerelor dintr-o baz n alta este dificil de utilizat tabele, n special atunci cnd se lucreaz cu numere mari. Din acest motiv se stabilesc anumii algoritmi de conversie pentru simplificarea translatrii numerelor dintr-o baz n alta. 1.3.1. Conversia binar-zecimal Conversia unui numr binar ntreg n echivalentul su zecimal, cunoscnd c operaiile se efectueaz n sistemul zecimal, se face cu ajutorul metodei nmulirii repetate cu 2. Pentru a justifica, se consider numrul binar P exprimat prin: P = bn-1 2n-1 + bn-2 2n-2 + .... + b1 21 + b0 20 sau: P1 P = ({[ (bn-1 2 + bn-2) 2 + bn-3] 2 + bn-4} 2 + .... + b1) 2 + b0 P2 relaie din care rezult algoritmul conversiei numerelor ntregi binare n numere zecimale: o pentru a forma mrimea intermediar P1 se nmulete cu 2 cifra cea mai semnificativ (cifra de rang maxim) a numrului binar, adugnd urmtoarea cifr semnificativ; o pentru a obine mrimea intermediar P2, se nmulete P1 cu 2 adugnd cea de-a treia cifr semnificativ; o se continu acest algoritm pn la adugarea cifrei cel mai puin semnificative a numrului binar (cea de rang minim); o numrul zecimal obinut este echivalentul zecimal al numrului binar dat. EXEMPLU S se transforme numrul binar 10110110111 n echivalentul su zecimal: 8

1x2+0=2 2x2+1=5 5 x 2 + 1 = 11 11 x 2 + 0 = 22 22 x 2 + 1 = 45 45 x 2 + 1 = 91 91 x 2 + 0 = 182 182 x 2 + 1 = 365 365 x 2 + 1 = 731 731 x 2 + 1 = 1463 deci: 10110110111B = 1463Z

P1 = 2 P2 = 5 P3 = 11 P4 = 22 P5 = 45 P6 = 91 P7 = 182 P8 = 365 P9 = 731 P8 = 1463

Pentru conversia binar-zecimal a unui numr binar fracionar se folosete metoda mpririi repetate cu 2. Pentru a justifica, se consider numrul binar fracionar Q dat de: Q = b-1 2-1 + b-2 2-2 + .... + b-m 2-m care poate fi pus i sub forma: Q1

Q = 2-1 (b-1 + 2-1 { b-2 + 2-1 [b-3 + .... + 2-1 (b-m+1 + 2-1b-m)]}) de unde rezult algoritmul conversiei numerelor binare fracionare n numere zecimale: o pentru a obine mrimea intermediar Q1 se mparte cifra cea mai puin semnificativ (de rang minim) cu 2, adugnd urmtoarea cifr semnificativ; o pentru a obine mrimea intermediar Q2 se mparte Q1 cu 2 adugnd a treia a treia cifr de la dreapta spre stnga cifr semnificativ; o se continu acest algoritm pn cnd mprirea care corespunde cifrei 0 de la stnga virgulei a fost efectuat; o numrul obinut este echivalentul zecimal al numrului binar dat. EXEMPLU S se transforme numrul binar fracionar 0,001101111 n echivalentul su zecimal: 1 1,5 1,75 1,875 0,9375 1,46875 1,734375 : 2 + 1 = 1,5 : 2 + 1 = 1,75 : 2 + 1 = 1,875 : 2 + 0 = 0,9375 : 2 + 1 = 1,46875 : 2 + 1 = 1,734375 : 2 + 0 = 0,8671875 9 Q1 = 1,5 Q2 = 1,75 Q3 = 1,875 Q4 = 0,9375 Q5 = 1,46875 Q6 = 1,734375 Q7 = 0,8671875

0,8671875 0,4335937

: 2 + 0 = 0.4335937 : 2 + 0 = 0,2167968

Q8 = 0,4335937 Q9 = 0,2167968

deci: 0,001101111B = 0,2167968Z Dac se cere conversia unui numr binar care are att parte ntreag ct i parte fracionar n echivalentul su zecimal, se aplic prii ntregi algoritmul corespunztor conversiei numerelor ntregi, iar prii fracionare algoritmul corespunztor prii fracionare. 1.3.2. Conversia zecimal-binar Conversia zecimal-binar a numerelor ntregi se face dup metoda mpririi repetate prin 2. Pentru a justifica aceasta, se consider numrul ntreg N n baza 10, care poate fi exprimat n funcie de puterile lui 2 sub urmtoarea form : N = an-1 2n-1 + an-2 2n-2 + .... + a1 21 + a0 20 sau: N = (an-1 2n-2 + an-2 2n-3 + .... + a1) 2 + a0 = N1 2 + a0 Din ultima egalitate rezult c cifra cea mai semnificativ a0 din reprezentarea binar a numrului N constituie restul mpririi lui N cu 2. n mod analog, numrul N1 se poate exprima prin : N = (an-1 2n-3 + an-2 2n-4 + .... + a2) 2 + a1 = N2 2 + a1 Adic a1, care reprezint cifra semnificativ de rang imediat urmtor n reprezentare binar, constituie restul mpririi lui N1 cu 2. De aici rezult algoritmul conversiei numerelor ntregi zecimale n numere binare: o se mparte numrul ntreg n baza zece N prin 2; se obine ctul N1 i restul a0; o se mparte ctul N1 prin 2; se obine ctul N2 i restul a1; o se continu aceast operaie pn se ajunge la un ct Nn egal cu zero; o resturile obinute sunt cifrele numrului binar (biii), a0 fiind cifra cea mai puin semnificativ, a1 cifra urmtoare . a. m. d. EXEMPLU S se transforme numrul zecimal 53 n echivalentul su binar. 53 : 2 = 26 + 1 26 : 2 = 13 + 0 10 a0 = 1 a1 = 0

13 : 2 = 6:2= 3:2= 1:2= Deci 5310 = 1101012

6+1 3+0 1+1 0+1

a2 = 1 a3 = 0 a4 = 1 a5 = 1

Folosind acelai algoritm se prezint un alt mod de aranjare a calculelor, n aa fel, ca la sfritul operaiei s se obin direct numrul binar fr a fi necesar rescrierea sa. n acest sens, se aeaz succesiunea calculelor dup schema prezentat mai jos, unde al n-lea ct este ultimul ct, egal cu zero : Ct n Ct (n 1) Ct (n 2) .... Ct 2 Ct 1 Numr Rest n Rest (n-1) .... Rest 3 Rest 2 Rest 1 Considernd acelai exemplu se obine : 0 1 3 6 13 26 53 1 1 0 1 0 1 Conversia zecimal-binar a numerelor fracionare se face dup metoda nmulirii repetate cu 2. Pentru a justifica, se consider numrul fracionar zecimal M, care poate fi exprimat n funcie de puterile numrului 2 prin : M = a-1 2-1 + a-2 2-2 + .... + a-m 2-m Prin nmulirea ambelor pri ale ecuaiei de mai sus cu 2, se obine : 2 M = a-1 + (an-2 2-1 + .... + a-m 2-m+1) = a-1 + M1 partea dreapt a egalitii fiind format din numrul ntreg a-1, care reprezint cifra cea mai semnificativ a numrului binar subunitar i fracia M1. Aplicnd acelai procedeu lui M1, rezult: 2 M1 = a-2 + (an-3 2-1 + .... + a-m 2-m+2) = a-2 + M2 adic se obine urmtoarea cifr semnificativ a-2 a numrului fracionar binar i fracia M2 . Cu aceasta, algoritmul conversiei numerelor fracionare zecimale n numere fracionare binare este urmtorul: o se nmulete numrul zecimal fracionar M cu 2; rezult bitul a-1 i partea fracionar M1; o se nmulete partea fracionar M1 cu 2; rezult bitul a-2 i partea fracionar M2; 11

o se continu aceast operaie pn cnd Mm devine egal cu zero sau ne limitm la un numr de cifre binare n funcie de precizia impus. EXEMPLU 1. S se transforme numrul 0,40625 n echivalentul su binar. 0,40625 x 2 = 0,81250 0,8125 x 2 = 1,6250 0,625 x 2 = 1,250 0,25 x 2 = 0,5 0,5 x 2 = 1,0 deci 0,40625z = 0,01101b 2. S se transforme numrul zecimal 0,7 n echivalentul su binar. 0,7 x 2 = 1,4 a-1 = 1 0,4 x 2 = 0,8 a-2 = 0 0,8 x 2 = 1,6 a-3 = 1 0,6 x 2 = 1,2 a-4 = 1 0,2 x 2 = 0,4 a-5 = 0 0,4 x 2 = 0,8 a-6 = 0 ........................................................... deci 0,710 = 0,101100....2 a-1 = 0 a-2 = 1 a-3 = 1 a-4 = 0 a-5 = 1

1.4.

Baza de numeraie opt (sistemul octal)

Utilizatorii primei generaii de calculatoare au ntmpinat dificulti n manevrarea cifrelor binare, ntruct un numr exprimat n sistemul binar are o lungime de circa trei ori mai mare dect n exprimarea zecimal. Din acest motiv, s-a cutat un sistem de numeraie mai apropiat de baza zece, cu o contingen direct cu sistemul binar. Cunoscnd c 8 este o putere ntreag a lui 2 (23 = 8), aceste caliti sunt ntrunite de sistemul de numeraie octal, care are opt cifre pentru exprimare, de la 0 la 7 inclusiv. Ca urmare, conversia binar octal i octal binar se poate face direct, n primul caz nlocuind un grup de trei cifre binare socotite de la dreapta i de la stnga virgulei prin echivalentul lor octal, iar n al doilea caz nlocuind fiecare cifr octal printr-un grup de trei cifre binare. EXEMPLU 1. S se transforme numrul binar 10111,00 11 n echivalentul su octal. 010 111, 001 1002 = 27,148 2 7, 1 12 4

2. S se transforme numrul octal 26,341 n echivalentul su binar. 26,3418 = 010 110, 011 100 0012 2 6, 3 4 1

Prin folosirea sistemului octal, calculele binare sau structura informaiei din interiorul calculatorului nu se schimb, structur care poate fi verificat cu uurin din exterior. Din acest motiv, calculatoarele din prima i a doua generaie aveau o lungime a cuvntului egal cu un multiplu a lui 3, obinuit 24, 36 sau 42 de bii, pentru a facilita trecerea din sistemul octal n binar sau invers. Se menioneaz c pentru transformarea numerelor din baza de numeraie 10 n baza de numeraie 8 sau invers, cu calculele fcute n baza 10, toi algoritmii dedui anterior rmn valabili, cu observaia c nmulirile, respectiv mpririle prin 2 se nlocuiesc cu nmuliri, respectiv mpriri, cu 8.

1.5.

Baza de numeraie aisprezece (sistemul hexazecimal)

Pentru a reprezenta n calculator alte caractere dect numere, adic litere, semne de punctuaie etc. (caractere alfanumerice), au fost utilizate iniial 6 cifre binare. n cursul operaiilor de citire sau imprimare, dispozitivul respectiv fcea automat transformarea fiecrui caracter n cele 6 cifre binare sau invers. Folosind 6 cifre binare, adic dou cifre octale, nu puteau fi reprezentate dect 64 de caractere distincte. Acest numr de caractere s-a dovedit a fi n scurt timp insuficient pentru aplicaiile practice i din acest motiv s-a trecut, la majoritatea calculatoarelor generaiei a treia, la alocarea a 8 cifre binare, adic dou hexazecimale, fiecrui caracter. Un grup de 8 cifre binare este cunoscut i sub denumirea de octet sau byte i reprezint cea mai mic diviziune a informaiei care poate fi prelucrat n aceste calculatoare. ntruct baza de numeraie 16 este mai mare ca baza de numeraie 10, cifrele mai mari de 9 sunt notate n ordine cu literele alfabetului latin, adic : A zece B unsprezece C doisprezece D treisprezece E paisprezece F cincisprezece. Pentru conversia din baza 10 n 16 sau invers, sunt utilizate aceleai metode, fcndu-se calculele n baza 10. Conversia binar-hexazecimal i hexazecimal-binar se face n mod similar celei binar-octale, respectiv octal-binare, cu observaia c se vor lua grupe de cte 4 cifre binare n loc de 3.

13

CAPITOLUL 2 OPERAII ARITMETICE2.1. Introducere

n acest capitol se vor prezenta operaiile aritmetice simple realizate cu numere binare (numere reprezentate n baza doi), numere octale (numere reprezentate n baza opt) sau hexazecimale (numere reprezentate n baza aisprezece). Pentru exemplificarea operaiilor efectuate se vor folosi numai numere ntregi pozitive (numere naturale) deoarece acesta este modul de baz al reprezentrii informaiei ntr-un sistem de calcul numeric.

2.2.

Operaii aritmetice cu numere binare

2.2.1. Adunarea Operaia de adunare poate fi descris cu ajutorul celor patru combinaii posibile ntre dou numere binare: 0 + 0 = 0; 0 + 1 = 1; 1 + 0 = 1; 1 + 1 = 0; transport la rangul superior: 0 transport la rangul superior: 0 transport la rangul superior: 0 transport la rangul superior: 1

n mod obinuit se scrie: 1b + 1b = 10b deoarece n aceast situaie avem un transport la rangul superior. Este evident faptul c: 10b = 2z. EXEMPLE 1) S se adune numrul binar 110111 cu numrul binar 101. 111 110111 + 101 111100 putem efectua verificarea in zecimal: 110111b = 55z, 101b = 5z, 111100b = 60z. Verificarea este imediat. Se observ c dac trebuie s adunm un ir de n cifre unu n binar, rezultatul pe rangul respectiv va fi zero dac numrul de cifre unu adunate este par sau unu dac numrul de cifre adunate este impar iar transportul se face peste 14 transport

n:2 (mprire ntreag) ranguri pornind de la rangul respectiv (cel la care se efectueaz adunarea). 2) S se adune numrul binar 11111 cu numrul binar 1. transport 1111 11111 + 1 100000

De fapt rezultatul poate fi vzut imediat dac ne uitm la tabelul 1.1. Dup un numr cu o succesiune de cifre unu urmeaz un numr binar care are o cifr unu urmat de o succesiune de cifre zero. Numrul cifrelor zero este egal cu numrul cifrelor unu al numrului care se adun. De exemplu 1111b + 1b = 10000b. 2.2.2. Scderea Operaia de scdere poate fi descris cu ajutorul celor patru combinaii posibile ntre dou numere binare: 0 0 = 0; 0 1 = 1; 1 0 = 1; 1 1 = 0; mprumut de la rangul superior: 0 mprumut de la rangul superior: 1 mprumut de la rangul superior: 0 mprumut de la rangul superior: 0

n mod obinuit se scrie: 10b 1b = 1b deoarece n aceast situaie avem un mprumut de la rangul superior. Este evident faptul c: 10b = 2z. EXEMPLE 1) S se efectueze scderea numerelor binare: 11001 i 11. mprumut 11 11001 11 10110

Verificarea n zecimal: 11001b = 25z, 11b = 3z, 10110b = 22z. 25z 3z = 22z. 2) S se efectueze scderea 11001 1011. 111 11001 1011 01110 Verificarea n zecimal: 11001b = 25z, 1011b = 11z, 1110b = 14z. 25z 11z = 14z. 15 mprumut

Se pot face observaii similare cu cele de la adunare. 3) S se scad din 1000b valoarea 1. Rspunsul este imediat: 111b. 2.2.3. nmulirea Operaia de nmulire poate fi descris cu ajutorul celor patru combinaii posibile ntre dou numere binare: 0 x 0 = 0; 0 x 1 = 0; 1 x 0 = 0; 1 x 1 = 1. Operaia de nmulire se efectueaz identic cu cea din baza zece. Vom analiza n continuare cteva exemple. EXEMPLE 1) S se efectueze nmulirea n binar: 110101 x 1101. 110101 x 1101 110101 000000 110101 110101 1010110001 Verificarea n zecimal: 110101b = 53z, 1101b = 13z, 1010110001b = 689z. Rezult 53z x 13z = 689z. Din acest exemplu se observ c operaia de nmulire poate fi nlocuit cu operaii de deplasare a denmulitului spre stnga i adunarea rezultatelor obinute. Pentru aceasta se parcurge nmulitorul de la dreapta la stnga cifr cu cifr. Pentru fiecare cifr unu a nmulitorului se scrie denmulitul deplasat spre stnga cu un numr de cifre egal cu rangul cifrei unu a nmulitorului. La final se sumeaz rezultatele obinute. 2) S se efectueze nmulirea numrului 101101 cu numrul 1101. Vom aplica metoda deplasrii spre stnga a denmulitului i adunarea irurilor obinute. denmulitul deplasat la stnga cu 0 pai denmulitul deplasat la stnga cu 2 pai denmulitul deplasat la stnga cu 3 pai rezultatul (suma) 101101 101101 101101 1001001001

Verificarea n zecimal: 101101b = 45z, 1101b = 13z, 1001001001b = 585z. Rezult: 45z x 13z = 585z. 16

2.2.4. mprirea ntreag Operaia de mprire poate fi descris cu ajutorul celor patru combinaii posibile ntre dou numere binare: 0 : 0 = 0; 0 : 1 = 0; 1 : 0 = imposibil; 1 : 1 = 1. Operaia de mprire se efectueaz identic cu cea din baza zece. Vom analiza n continuare cteva exemple. EXEMPLE 1) S se efectueze mprirea numrului 11010110101 cu 1011. 11010110101 1011 1011 10011100 0010011 1011 10000 1011 001011 1011 000001 Rezultatul este: 10011100 rest 1. Verificarea n zecimal: 11010110101b = 1717z, 1011b = 11z, 10011100b = 156z. 1717z : 11z = 156z rest 1. Din acest exemplu se observ faptul c operaia de mprire ntreag se reduce la operaii succesive de deplasare la dreapta a mpritorului i scderi din demprit, ncepnd de la cifrele de rang maxim ale dempritului. Se continu cu dempritul nemodificat dac rezultatul scderii este negativ sau cu rezultatul scderii dintre demprit i mpritor dac rezultatul scderii este zero sau pozitiv. La fiecare scdere se noteaz cifra ctului care este unu dac rezultatul scderii este zero sau pozitiv (scderea se poate efectua) sau zero dac rezultatul scderii este negativ (scderea nu se poate efectua). Operaia de scdere se oprete cnd se efectueaz o scdere din bitul de rang zero al dempritului. Valoarea dempritului rmas constituie restul mpririi. 2) S se efectueze mprirea dintre numerele 111101101 si 101. Vom apela la procedeul deplasrii la dreapta a mpritorului i scderea din demprit. 111101101 101 010

- rezultatul scderii este pozitiv deci se continu cu valoarea rmas n urma scderii i se face o deplasare la dreapta; ct = 1

17

010101101 101 0000 000001101 101 000001101 101 000001101 101 000001101 101 001 000000011 101

- rezultatul scderii este zero deci se continu cu valoarea rmas n urma scderii i se face o deplasare la dreapta; ct = 11 - rezultatul scderii este negativ deci nu se efectueaz scderea i se face deplasarea dreapta a mpritorului; ct = 110 - rezultatul scderii este negativ deci nu se efectueaz scderea i se face deplasarea dreapta a mpritorului; ct = 1100 - rezultatul scderii este negativ deci nu se efectueaz scderea i se face deplasarea dreapta a mpritorului; ct = 11000 - rezultatul scderii este pozitiv deci se continu cu valoarea rmas n urma scderii i se face o deplasare la dreapta; ct = 110001

- rezultatul scderii este negativ deci nu se efectueaz scderea; ct = 1100010 iar restul este 11 deoarece s-a ncercat scderea din cifra de rang zero a dempritului. Verificarea n zecimal: 111101101b = 493z, 101b = 5z, 1100010b = 98z, 11b = 3z. 493z : 5z = 98z rest 3z.

2.3.

Operaii aritmetice cu numere reprezentate n octal i hexazecimal

Reprezentarea numerelor n octal sau hexazecimal se face, aa cum s-a artat, n scopul creterii claritii reprezentrii valorilor numerice. Trebuie subliniat aici, nc o dat, c n sistemele numerice de calcul, singurul mod de reprezentare a informaiei este cel binar. Utilizarea altor baze de numeraie cum sunt cel octal sau cel hexazecimal se face doar n scopul creterii claritii documentaiei nsoitoare. Baza de numeraie opt i baza de numeraie aisprezece au avantajul c au baze puteri a lui doi i din acest motiv permit scrierea condensat i comod a numerelor binare. Toate operaiile efectuate n alt baz de numeraie dect baza zece se bazeaz pe principii similare, aa cum s-a vzut i la descrierea operaiilor aritmetice n baza doi. Este important de reinut faptul c atunci cnd rezultatul adunrii depete ca valoare valoarea bazei se produce un transport n rangurile superioare iar cnd se efectueaz scderea unui numr mai mare dintr-un numr mai mic se produce un mprumut de la rangurile superioare (identic cu ceea ce deja tim de la operaiile n baza zece). Cele mai importante operaii efectuate n octal sau n hexazecimal sunt cele de adunare i de scdere. Din acest motiv vom exemplifica pe scurt, n continuare modul n care se efectueaz aceste operaii n cele dou baze de numeraie. 18

2.3.1. Adunarea i scderea n octal Adunarea, exemple 1) S se adune numerele reprezentate n baza opt 723o cu 523o. transport 1 723o + 523o 1446o n rangul doi, la adunarea cifrelor 7o cu 5o se produce un transport deoarece 7z + 5z = 12z este o valoare mai mare dect valoarea bazei care este 8. n acest caz se procedeaz astfel: se scade din valoarea obinut valoarea bazei 12z 8z = 4z, valoarea respectiv se scrie pe rangul doi i avem un transport la rangul 3. Trebuie inut cont de faptul c n octal: 7o + 1o = 10o. 2) S se efectueze adunarea n octal 375o + 276o. transport 11 375o + 276o 673o

Scderea, exemple 1) S se efectueze scderea n octal: 532o 251o. 1 532o 251o 261o La scderea de pe rangul unu: 3o 5o, trebuie s se efectueze un mprumut din rangul superior. O cifr mprumutat din rangul superior nseamn opt uniti n rangul inferior. Deci, n urma mprumutului, avem: 8z + 3z 5z = 6z. 2) S se scad n octal din 453o 264o. mprumut 11 453o 264o 167o mprumut

Verificarea n zecimal este imediat dac se face conversia din baza opt n baza zece utiliznd relaia: valoare zecimal = on-1 8n-1 + on-2 8n-2 + .... + o1 81 + o0 80 19

unde: o0, o1, o2, , on sunt cifrele numrului n baza opt. 2.3.2. Adunarea i scderea n hexazecimal Avnd n vedere faptul c operaiile sunt similare cu cele din octal, cu excepia faptului c baza are valoarea aisprezece, vom prezenta numai cte un exemplu pentru adunare i unul pentru scdere. Adunare, exemplu S se adune numerele n hexazecimal: 2A57h + 57B9h transport 111 2A57h + 57B9h 8210h

n acest caz depirea se produce cnd suma este mai mare dect aisprezece. De exemplu, 7z + 9z = 16z = 10h Scdere, exemplu S se efectueze scderea: 5C2Bh 3ACFh. mprumut 11 5C2Bh 3ACFh 215Ch

n cazul mprumutului, de pe rangul superior se mprumuta aisprezece uniti. De exemplu, n cazul Bh Fh, avem un mprumut i se obine: 16z + 11z (Bh) 15z (Fh) = 12z (Ch).

20

CAPITOLUL 3 ARHITECTURA SISTEMELOR DE CALCUL3.1. Introducere

Un sistem de calcul reprezint o main automat destinat prelucrrii informaiilor. O astfel de main va interaciona cu mediul extern pentru preluarea informaiilor de intrare i furnizarea informaiilor rezultate n urma prelucrrii informaiei de intrare. Prelucrarea informaiei se face ntr-un anumit scop ceea ce determin o anumit activitate intern a sistemului de calcul. n acest moment putem distinge mai multe faze ale prelucrrii informaiei de ctre un sistem de calcul. n primul rnd informaia prezentat la intrarea sistemului de calcul reprezint n accepia general un semnal. Acest semnal are un suport fizic i este reprezentat de o mrime electric, mecanic, optic etc. O astfel de mrime este descris de anumii parametri msurabili i are un suport energetic care permite interaciunea cu aceast mrime. O astfel de mrime trebuie s fie transformat (adaptat) n aa fel nct aceasta s fie compatibil cu formatul de intrare acceptat de sistemul de calcul. n al doilea rnd informaia o data prelucrat de sistemul de calcul trebuie furnizat mediului extern ntr-un anumit format impus de aplicaia pentru care se efectueaz prelucrarea informaiei. Este limpede c va fi necesar o nou transformare a informaiei din formatul furnizat la ieire de ctre sistemul de calcul n formatul impus de aplicaie. n sfrit, n afar de cele dou faze ce implic transformri ale suportului informaiei, putem distinge i a treia faz, cea a prelucrrii interne, n sistemul de calcul a informaiei. Pentru a asigura o flexibilitate ct mai mare a unui astfel de sistem, cele trei faze ale prelucrrii informaiei vor fi asigurate de ctre elemente diferite. Astfel, o anumit modificare ce s-ar impune pe parcurs nu va afecta dect un anumit element din structura sistemului. n prezent, cele trei faze ale prelucrrii informaiei, sunt realizate astfel: transformarea semnalelor ntr-un format compatibil cu cel acceptat de intrarea sistemului de calcul i transformarea informaiei furnizate de sistemul de calcul n semnale necesare aplicaiei, este realizat de ctre dispozitivele periferice. Acestea, dei sunt strns legate de funcionarea sistemului de calcul sunt considerate elemente externe sistemului de calcul; prelucrarea intern n sistemul de calcul a informaiei va fi faza de prelucrare a informaiei care determin o anumit structur a sistemului de calcul. Aceast structur va fi completat cu elemente de legtur cu dispozitivele periferice, elemente ce poart denumirea generic de interfee. 21

-

Pentru nceput ne vom ocupa de structura intern a sistemului de calcul ce constituie arhitectura intern a acestuia dup care se vor discuta cteva aspecte legate de periferice ntregul reprezentnd arhitectura unui sistem de calcul. Din punct de vedere al tipului informaiei prelucrate n sistemul de calcul, aceste pot fi de dou tipuri: calculatoarele analogice care prelucreaz semnale continue n timp, adic semnale ce sunt descrise de o funcie continu de timp; calculatoare numerice ce prelucreaz numere, adic informaia prezentat n format numeric.

ntre aceste dou tipuri de calculatoare exist deosebiri eseniale dei amndou sunt destinate prelucrrii informaiei. Primul aspect se refer la tipul informaiei prelucrate. Dac la calculatoarele analogice informaia trebuie s aib un anumit nivel al suportului energetic pentru ca aceasta s poat fi prelucrat, la calculatoarele numerice informaia este lipsit de suportul energetic fiind reprezentat de elemente abstracte cum sunt numerele. Acest lucru aduce o serie de avantaje importante n favoarea calculatoarelor numerice ceea ce face ca utilizarea acestora s fie din ce n ce mai rspndit. Pentru a lmuri lucrurile vom considera un exemplu simplu. Un instrument de msur a tensiunii (voltmetru) poate fi considerat ca un sistem de calcul foarte simplu. Un astfel de instrument preia o informaie din mediul extern (tensiunea electric), o adapteaz la formatul acceptat la intrare (de regul printr-un divizor de tensiune), prelucreaz informaia (prin comparare cu un element etalon) i furnizeaz la ieire o informaie compatibil cu aplicaia (n cazul cel mai simplu afind rezultatul msurtorii ntr-un anumit fel). n cazul unui voltmetru analogic (cu instrument de msur) informaia de intrare trebuie s furnizeze o anumit energie pentru ca msurtoarea s poat fi efectuat (aceast energie preluat de la semnalul msurat va determina o deplasare a acului indicator proporional cu mrimea msurat). n cazul unui voltmetru numeric prelucrarea informaiei se face n principal prin transformarea acesteia ntr-o valoare numeric. Din acest motiv energia preluat de la semnalul de intrare va fi cu mult mai mic (aceast energie nemaijucnd nici un rol n prelucrarea semnalelor). Vom aminti numai dou din concluziile ce pot fi desprinse din acest exemplu: msurtoarea efectuat cu un instrument numeric este mai precis prin scderea cantitii de energie preluate de la semnalul de intrare (cunoscndu-se faptul c preluarea unei anumite cantiti de energie din semnalul de msurat duce la alterarea acestuia) i mrimile reprezentate prin numere cum sunt cele de la voltmetrul numeric nu pot fi influenate de condiiile de mediu (temperatur, presiune, umiditate etc) cum sunt cele analogice prezente n cazul voltmetrului analogic. Aa cum s-a afirmat, n interiorul sistemului de calcul se realizeaz o anumit prelucrare a informaiei. Este important de vzut n ce fel anume se realizeaz aceast prelucrare. Dac ne gndim la exemplul de mai sus este limpede c voltmetrul analogic ndeplinete o anumit funcie prin modul n care este construit adic prin conexiunile electrice existente ntre elementele componente. Un astfel de sistem se numete cu logic cablat adic modul de prelucrare a informaiei este determinat de modul 22

particular de conectare a elementelor componente. Acelai lucru se poate realiza i n cazul unui sistem numeric i deci i astfel de sisteme pot fi n logic cablat. Un sistem realizat n logic cablat nu va putea ndeplini dect o anumit funcie (n exemplul nostru, nu ne vom putea gndi s folosim voltmetrul la altceva dect la msurarea tensiunii) cea pentru care s-a realizat un anumit mod de conectare ntre elementele componente. Rezult c un sistem n logic cablat este lipsit de flexibilitate, modificarea funciei ndeplinite presupunnd (cel puin) modificarea conexiunilor existente i (eventual) necesitatea adugrii unor componente noi. Un astfel de sistem are totui avantajul simplitii n sensul c el nu va conine dect elementele componente strict necesare aplicaiei particulare pentru care este destinat. Sistemele numerice prin faptul c prelucreaz informaia sub form numeric permit realizarea unor structuri generale, independente de aplicaia pentru care vor fi folosite. n aceast situaie prelucrarea intern a informaiei nu mai este legat de conexiunile existente ntre elementele structurii fizice. Pe aceast structur fizic generic (independent de aplicaie) prelucrarea informaiei se va face pe baza unui program (list de comenzi) ce se va afla n memoria sistemului de calcul. Astfel de sisteme se numesc cu logic programat. Ele sunt flexibile (schimbarea programului nseamn schimbarea sau modificarea aplicaiei pentru care sunt destinate) dar i redundante n sensul c structura fizic general poate avea mai multe elemente dect sunt necesare pentru o anumit aplicaie. Calculatoarele analogice nu pot fi construite dect n logic cablat pe cnd cele numerice pot fi construite att n logic cablat ct i n logic programat. Trebuie precizat aici faptul c, dei n cazul calculatoarelor numerice n logic programat se vorbete de o structur fizic general, aceasta nu poate fi total independent de aplicaia (sau familia de aplicaii) pentru care este folosit calculatorul respectiv. Dei varianta de sistem de calcul n logic programat prezint o serie de avantaje ce au dus la dezvoltarea rapid i extinderea aplicrii acesteia n cele mai variate domenii, calculatoarele analogice rmn importante i cu aplicaii extinse. Revenind la structura unui sistem de calcul n logic programat, existena programului indic faptul c trebuie s existe un element care s poat nelege i executa comenzile existente n acest program. Acest element se numete unitate central i pe lng funciile amintite va mai avea i alte sarcini n sistemul de calcul. Din cele prezentate s-a conturat o structur general a unui sistem de calcul numeric n logic programat i care trebuie s conin: unitatea central, memoria i interfeele. Intern, un calculator prelucreaz mai multe fluxuri de informaie dintre care principalele fluxuri sunt reprezentate de datele numerice i de instruciunile programului. Dup modul de prelucrare al acestor fluxuri informaionale calculatoarele se pot clasifica n: maini de tip SISD (Single Instruction Single Data) care prelucreaz la un moment dat o singur instruciune program i o singur valoare numeric; maini de tip SIMD (Single Instruction Multiple Data) care prelucreaz la un moment dat o singur instruciune program dar mai multe fluxuri de date numerice; 23

maini de tip MIMD (Multiple Instruction Multiple Data) care prelucreaz la un moment dat mai multe instruciuni program i mai multe date numerice.

Mainile de tip SIMD sau MIMD fac parte din categoria calculatoarelor paralele care pot prelucra n paralel mai multe fluxuri de informaie. Din punct de vedere al puterii de calcul, n prezent calculatoarele se clasific astfel: microsisteme, sisteme simple bazate pe un microcontroler (calculator integrat), un procesor de semnal DSP (microcontroler destinat prelucrrii digitale a semnalelor) sau un microprocesor (unitate central integrat pe un singur chip) destinate automatizrilor, dispozitivelor periferice, bunurilor de lar consum, comunicaiilor etc; calculatoare personale (PC Personal Computer), pentru un singur utilizator, construite pe baza unui microprocesor. Aceste maini sunt de cele mai multe ori de tipul SISD sau SIMD i sunt prevzute cu dispozitive de intrare (de exemplu: tastatur, mouse, joystick, scanner, etc.) pentru introducerea datelor de intrare, dispozitive de ieire (de exemplu: display, imprimant, plotter, etc.) pentru prezentarea datelor de ieire i dispozitive de stocare a datelor de intrare i de ieire (discuri, band magnetic, disc optic, etc.); staii de lucru (WS - WorkStation), pentru un singur utilizator, similare calculatoarelor personale dar dotate cu microprocesoare mai puternice i cu monitoare de calitate fiind destinate prelucrrilor complexe; minicalculatoarele, destinate mai multor utilizatori suportnd de la 10 la cteva sute de utilizatori simultan. Sunt maini de tip MIMD; calculatoare de tip mainframe, calculatoare mai puternice dect minicalculatoarele, destinate utilizrii simultane de ctre mai muli utilizatori (multi user) putnd suporta de la cteva sute la cteva mii de utilizatori; supercalculatoarele, calculatoare extrem de rapide care pot executa sute de milioane de instruciuni pe secund.

Avnd n vedere importana unei astfel de sistem de calcul ct i perspectivele de dezvoltare i aplicare, n continuare vom discuta principalele probleme legate de arhitectura acestora. Sistemele de calcul n logic programat, larg rspndite n prezent, folosesc dou tipuri de arhitecturi: arhitectura von Neumann i arhitectura Harvard. Aceste arhitecturi se numesc arhitecturi secveniale, care au o singur unitate central i care execut n mod secvenial programul aflat n memorie spre deosebire de arhitecturile paralele care sunt structuri realizate cu dou sau mai multe uniti centrale.

24

3.2. Arhitectura von NeumannCea mai simpl structur (structura minimal) a unui sistem de calcul este prezentat n figura 3.1.n m p Magistrala de adrese Magistrala de date Magistrala de comenzi

UNITATE CENTRAL

MEMORIE

PORTURI (INTERFEE)q

Sistem de calcul Mediul extern

PERIFERICE

Fig. 3.1. Structura general a unui sistem de calcul Structura prezentat este structura minimal a unui sistem de calcul numeric numit i arhitectur von Neumann. Evident, structura unui sistem de calcul poate conine i alte elemente care vor duce la ridicarea performanelor sistemului de calcul dar elementele prezentate n structura de mai sus sunt indispensabile funcionrii unui sistem numeric n logic programat. Trebuie observat faptul c aceast structur nu este legat de o anume aplicaie ci ea este determinat doar de modul de funcionare al unui sistem numeric n logic programat (main von Neumann n acest caz) si va acoperi o arie larg de aplicaii. Elementele componente ale acestei structuri vor fi prezentate n continuare. Unitatea central care are rolul de comand i control a sistemului de calcul i de execuie a programelor ce se gsesc n memorie. Un calculator poate avea o singur unitate central (in cele mai multe din cazuri) sau mai multe uniti centrale ce lucreaz n paralel. Sistemele de calcul cu o singur unitate central se numesc monoprocesor iar activitatea de prelucrare se numete monoprocesare iar cele care au mai multe uniti de calcul ce lucreaz n paralel se numesc multiprocesor iar activitatea de prelucrare a informaiei se numete multiprocesare. Din cauz c n continuare ne vom referi numai la calculatoarele monoprocesor nu se va mai specifica acest lucru explicit. Memoria care are rolul de a stoca (pstra) programe i date. Porturile sau interfeele care au rolul de a realiza schimbul de informaie dintre sistemul de calcul i mediul extern prin trensformarea i adaptarea semnalelor conform cerinelor. Toate aceste elemente, care sunt realizate cu ajurorul unor circuite integrate pe scar larg i foarte larg, sunt legate ntre ele prin intermediul unor conexiuni electrice. Prin aceste conexiuni circul semnale electrice care au o anumit semnificaie din punct de vedere al informaiei codificate (binar). Din acest motiv, conexiunile electrice sunt grupate dup semnificaia informaiei vehiculate i un astfel de grup poart numele de 25

magistral (bus). Avem trei tipuri principale de magistrale: magistrala de adrese, magistrala de date i magistrala de comenzi. Fiecare din aceste magistrale este alctuit, aa cum s-a artat, din mai multe conexiuni electrice. n figura noastr, magistrala de adrese are n linii, magistrala de date are m linii iar magistrala de comenzi are p linii. Perifericele nu aparin structurii sistemului de calcul dar sunt menionate aici deoarece sunt indispensabile funcionrii unui calculator. Vorbind la modul general, un periferic realizeaz conversia unei anumite forme de energie n energie electric. Spre exemplu, tastatura, care este un periferic transform energia mecanic cu care apsm tastele ntr-un semnal electric care este preluat de ctre interfa i adaptat formatului intern propriu sistemului de calcul, iar monitorul (display-ul) transform energia electric n energie luminoas. Se observ c interfeele sunt legate la rndul lor la periferice prin intermediul unor magistrale (de dimensiune q n figura noastr). Aceste magistrale sunt de diferite tipuri, au diferite dimensiuni i poart diferite denumiri legate de tipul interfeei la care sunt legate. Elementele care alctuiesc structura sistemului de calcul se mpart n dou categorii: elemente de comand (master) i elemente comandate (slave). ntr-o structur de calcul vom recunoate uor elementele de comand prin faptul c acestea pot genera adrese (sensul sgeii magistralei de adrese este dinspre modulele de comand spre cele comandate).

3.3.

Arhitectura HarvardStructura simplificat a arhitecturii Harvard este prezentat n figura 3.2.magistral de adrese de date m p magistral de date 2 magistral de comenzi

magistral de adrese de program magistral de date 1 magistral de comenzi t

r s

n

UNITATE CENTRAL

MEMORIE DE PROGRAM

MEMORIE DE DATE

PORTURI q PERIFERICE

Microcontroler

Figura 3.2. Arhitectura Harvard.

Principala caracteristic a acestui tip de arhitectur este reprezentat de utilizarea n structura sistemului de calcul a dou memorii cu destinaii diferite: o memorie de program i o memorie de date. Acest lucru permite suprapunerea ciclului de extragere a codului operaie din memorie cu ciclul de citire/scriere n memorie ceea ce duce la 26

creterea corespunztoare a vitezei de lucru. De asemenea astfel de sisteme folosesc cuvinte de lungimi diferite pentru codul instruciunii i pentru date (de exemplu, coduri de instruciuni pe 14 bii i date pe 8 bii) ceea ce permite utilizarea unui set complex de instruciuni. Utilizarea memoriilor cu destinaii diferite presupune existena unei magistrale de adrese de program i a unei magistrale de adrese de date i, de asemenea, existena unei magistrale de date pentru program pe care sunt aduse codurile de instruciune i a unei magistrale de date pentru datele programului (fiecare dintre aceste magistrale putnd avea dimensiune diferit). O astfel de arhitectur este utilizat cu precdere n structura procesoarelor de semnal (DSP Digital Signal Processor) sau a microcontrolerelor de tip Microchip PIC, Atmel AVR etc. n astfel de sisteme, programul i datele acestuia sunt stocate n memorii diferite. De regul memoria program este o memorie de tip FLASH n aa fel nct programul s nu se tearg la ntreruperea tensiunii de alimentare iar datele sunt stocate n memorii de tip RAM static i memorii de tip EEPROM. Asfel de sisteme reprezint microcalculatoare integrate care au unitatea central, memoria i porturile realizate pe un singur circuit integrat. Un calculator poate avea mai multe magistrale de acelai tip care se deosebesc prin viteza de variaie (frecvena) a semnalelor care parcurg aceste magistrale, dimensiunea i destinaia acestora. Din cauz c diferitele elemente conectate la magistral au viteze de lucru diferite, elementele mai lente (cu vitez de lucru mai sczut), vor impune frecvena maxim pe magistrale. Pentru creterea performanelor unui calculator, magistralele se realizeaz pe mai multe nivele cu frecvene de lucru diferite. Astfel, pe magistrala cu viteza cea mai mare se conecteaz de obicei unitatea central i memoriile rapide iar pe magistralele cu vitez mai sczut se conecteaz memoriile lente i porturile. Comunicaia ntre magistralele ce lucreaz la frecvene diferite se realizeaz cu ajutorul unor circuite integrate specializate numite controlere de magistral. Rezult c un criteriu de performan a unui calculator este reprezentat de frecvena maxim a magistralelor interne. Diferitele structuri particulare de calculatoare pot conine i alte elemente n afar de cele prezentate n figura 3.1, n scopul creterii performanelor calculatorului sau datorit destinaiei acestuia. Dintre aceste elemente suplimentare cele mai uzuale sunt: circuitul de acces direct la memorie (DMA), controlerul de ntreruperi, controlerul video i controlerul de comunicaie. Este de remarcat aici faptul c n cazul calculatoarelor de proces apar n plus ceasul de timp real i ceasul de gard (watchdog timer) necesare rulrii n timp real a aplicaiilor. n figura 3.3 este prezentat schema bloc a unui calculator de proces. n aceast figur se vede c sistemul este organizat n jurul a mai multor magistrale. Pe magistrala A se afl sistemul de calcul propriu-zis iar pe magistrala B se afl circuitele de interfa cu procesul. Fiecare dintre magistrale sunt alctuite, la rndul lor, din mai multe magistrale care nu sunt artate n figur. Pentru a evita confuziile, trebuie menionat faptul c n figura 3.3, printr-un abuz de limbaj, unitate central este denumit placa electronic, notat cu 880-P, ce conine att unitatea central propriu-zis ct i porturi de intrare/ieire. Tot aa, prin extinderea acestei expresii, unitate central este denumit cutia sau dulapul n care se afl aceast component din structura sistemului de calcul. 27

Fig. 3.3. Structura unui calculator de proces

28

CAPITOLUL 4 UNITATEA CENTRAL4.1. Introducere

Unitatea central reprezint componenta principal a sistemului care coordoneaz toate activitile acestuia. De performanele unitii centrale depind n mod esenial performanele calculatorului. La calculatoarele personale unitatea central este reprezentat de un singur circuit integrat numit microprocesor. Staiile de lucru conin unul, dou sau mai multe microprocesoare, conectate ntr-o arhitectur scalar, care lucreaz n paralel. n cazul minicalculatoarelor, a calculatoarelor mainframe sau a supercalculatoarelor, unitatea central este realizat cu ajutorul mai multor componente. De obicei sunt utilizate integrate de Fig. 4.1. Circuit integrat tip bit-slice care reprezint o parte (felie) dintr-o unitate central. Prin conectarea n paralel a mai multor astfel de circuite se obin uniti centrale cu diferite performane. Aceste uniti sunt microprogramabile de ctre utilizator ceea ce le confer flexibilitate n exploatare dar complic procesul de proiectare. Microprogramarea este o metod de realizare a automatelor de comand prin nscrierea programelor acestora ntr-o memorie. Prin microprogramare se obin microprograme, constituite din microinstruciuni. Microprogramarea presupune o cunoatere de detaliu a echipamentului cruia i sunt destinate microprogramele. Spre deosebire de marea majoritate a altor metode de programare instruciunile utilizate n microprogramare conin att codul operaiei ct i eventualii operatori, ct i adresa instruciunii urmtoare. n figura 4.1 este prezentat modul de realizare a unui circuit integrat. Principalele mrimi caracteristice ale unei Fig. 4.2. Microprocesorul uniti centrale sunt reprezentate de: setul de INTEL 486 instruciuni, numrul de bii prelucrai simultan (lrgimea magistralei de date) i frecvena de ceas (viteza la care funcioneaz unitatea central). Din punct de vedere al setului de instruciuni, unitile centrale sunt de dou categorii: uniti centrale de tip RISC (Reduced Instruction Set Comuter) cu un numr 29

relativ redus de instruciuni i uniti centrale de tip CISC (Complex Instruction Set Computer) cu un numr mare de tipuri de instruciuni. Unitile de tip RISC sunt ieftine i foarte rapide din cauz c setul simplu de instruciuni le permite execuia cu vitez mare a programului. Unitile centrale de tip CISC au avantajul posibilitilor extinse de lucru datorit setului complex de instruciuni iar n ultimul timp, ele sunt un concurent serios, la vitez, al unitilor centrale de tip RISC. Cunoscutul microprocesor al firmei INTEL, Pentium, este considerat ca fiind o unitate central de tip CISC dei conine n arhitectura sa multe elemente ale unei maini RISC. n figura 2.4 este prezentat microprocesorul INTEL 486. Numrul de bii prelucrai simultan de unitatea central reprezint de fapt limea magistralei de date din cauz c pe aceast magistral sunt vehiculate date i instruciuni. Limea magistralei de date este de regul un multiplu de opt, n prezent fiind ntlnite n mod uzual uniti centrale ce lucreaz pe 8, 16, 34, 64, 128 sau 256 de bii. Frecvena semnalului de tact (semnalul de ceas) aplicat unitii centrale reprezint de asemenea un criteriu de performan a acesteia. Avnd n vedere faptul c o instruciune este executat de unitatea central n una sau mai multe perioade de ceas, rezult c viteza de calcul crete odat cu creterea frecvenei de ceas. n prezent calculatoarele personale performante utilizeaz frecvene de tact de pn la 600MHz cu perspective de a ajunge la 1GHz. Aceste criterii de performan nu sunt absolute din cauz c ele depind n mare msur de arhitectura unitii centrale. Astfel, spre exemplu, dou uniti centrale cu aceeai frecven de ceas, pot merge cu viteze diferite, datorit structurii interne, cu pn la de 20 de ori. Un alt criteriu de performan l reprezint dimensiunea memoriei interne, memoria cache, a unitii centrale. Memoria cache este o memorie foarte rapid care este folosit ca intermediar ntre unitatea central i memoria principal a sistemului. Aceast memorie poate fi att intern (n structura unitii centrale) ct i extern. Din acest motiv se spune c memoria cache este organizat pe nivele. Cu ct dimensiunea memoriei cache interne este mai mare, cu att performanele unitii centrale vor fi mai bune. Alte criterii de performan ce pot fi luate n considerare n cazul unitilor centrale sunt: numrul maxim adresabil de porturi de intrare/ieire, numrul i dimensiunea registrelor interne, i modalitile de adresare. O unitate central execut o instruciune n unul sau mai muli cicli main. Un ciclu main reprezint o activitate elementar a unitii centrale (extragerea din memorie a codului operaiei, citire/scriere din/n memorie, citire/scriere din/n port, achitare cerere ntrerupere etc. Un ciclu main poate dura una sau mai multe perioade a ceasului de comand al unitii centrale. Pentru determinarea performanelor unitilor centrale se folosete o metod bazat pe determinarea numrului de operaii n virgul mobil (floating-point operations) executate de aceasta ntr-o secund. Unitatea de msur este FLOPS (FLoating-point Operations per Second), n mod obinuit performanele unitilor centrale fiind msurate n megaFLOPS sau gigaFLOPS. 30

La punerea sub tensiune unitatea central pornete dintr-o stare iniial cunoscut ncepnd s execute programul aflat n memorie de la o adres bine precizat. Pe timpul execuiei unui program unitatea central poate ajunge dintr-un motiv sau altul ntr-o stare nedorit care s afecteze modul corect de funcionare al calculatorului. n aceste situaii unitatea central trebuie readus n starea iniial. Acest lucru se face fie n mod automat de ctre circuitele specializate ale calculatorului fie de ctre utilizator prin apsarea unui buton (RESET). Este evident faptul c iniializarea unitii centrale poate fi fcut i prin ntreruperea tensiunii de alimentare dar acest lucru este nerecomandabil de cele mai multe ori pentru c se pot pierde informaii n curs de prelucrare de ctre periferice i/sau informaii legate de prelucrrile curente. De asemenea ocurile termice i de tensiune ce apar la pornirea calculatorului nu recomand folosirea acestui procedeu pentru reiniializarea unitii centrale. Butonul de iniializare a unitii centrale (RESET) este marcat uneori i cu simbolul: . Datorit dezvoltrii spectaculoase a microsistemelor i datorit faptului c unitile centrale a acestora, microprocesoarele, beneficiaz de o ntreag gam de inovaii tehnologice, ne vom concentra atenia asupra unitilor centrale de tip microprocesor. Principalele avantaje oferite de microsisteme fa de sistemele convenionale sunt: costul sczut al hardware-ului; sigurana n funcionare mbuntit; interferene electromagnetice sczute - nivelul larg de integrare evit influenele electromagnetice chiar i la nivele mari de variaie ale tensiunii i curentului prin circuitele electronice de putere. n general pentru protecie este suficient ecranul cu care prevzut componenta. Zgomotul de cuplare cu sursele de alimentare i semnalele de intrare poate fi minimizat printr-o bun filtrare analog-digital; absena mprtierii sau a variaiei parametrilor; compatibilitate cu controlul digital ierarhic; hardware i software universal; posibilitatea de diagnostic i autodiagnostic.

Principalele dezavantaje prezentate de ctre microsisteme sunt: viteza de rspuns (calcul) este n unele cazuri insuficient pentru elaborarea unui rspuns n timpul ateptat; eroarea de cuantizare - eroarea de cuantizare poate fi micorat prin creterea numrului de bii ai cuvintelor microsistemului i ai convertorului A/D; lipsa de acces la semnale software - nu se pot efectua msurtori cu osciloscopul asupra semnalelor software i deci trebuie concepute msuri adecvate de depanare. dezvoltarea software-ului poate fi uneori scump.

n cazul microsistemului cu microprocesor unitatea central i celelalte elemente ale microsistemului sunt componente distincte fapt ce particip la flexibilitatea soluiei. n 31

cazul microcontrolerelor ntr-o singur component sunt integrate pe lng unitatea central i o parte din elementele microsistemului. Dei microcontrolerele prezint o flexibilitate mai redus ele prezint avantajul miniaturizrii i a preului de cost sczut.

4.2.

Microprocesorul microprocesor)

universal

(structura

general

a

unui

Structura unui microprocesor cuprinde: o unitate aritmetic i logic, avnd drept scop efectuarea de operaii aritmetice i logice elementare; un set de registre pentru memorarea temporar i manipularea cu vitez ridicat a unui numr relativ mic de rezultate intermediare; un bloc de comand i secveniere care asigur desfurarea ordonat a tuturor operaiilor n interiorul microprocesorului, precum i comunicaia acestuia cu lumea exterioar; un bloc de decodificare a instruciunii curente, care interpreteaz instruciunea n curs i determin aciunile ce se impun; un bloc de tratare a cererilor de ntrerupere utilizat pentru luarea n considerare a evenimentelor asincrone fa de desfurarea programului; tampoane ntre microprocesor i magistralele sistemului. Microprocesoarele din ultimele generaii au inclus i un coprocesor matematic ce le permite realizarea unor calcule matematice complexe cu vitez ridicat i memoria cache. Structura de principiu a microprocesorului universal este prezentat n figura 4.3.

Fig.4.3. Schema bloc a microprocesorului universal

Aceast structur este format din urmtoarele elemente componente: RALU - unitatea logic i aritmetic i registrele de uz general i special; AC - automatul de control; RI - registrul de instruciune; RS - registrul de stare; MUX - un grup de multiplexoare ce asigur o parte din comenzile la bornele RALU de la AC sau RI, sub controlul (selecia) semnalelor din AC. Semnalele interne care asigur funcionarea sistemului sunt urmtoarele: 32

comenzi, generate de AC ctre subansambluri sau ctre exterior; instruciuni, generate din RI ctre AC i prin intermediul MUX, ctre RALU; indicatori, generai de ALU din RALU ctre RS; date - reprezint un bus intern bidirecional pe care sunt cuplate RALU, RS i RI (unidirecional); adrese - cale de adrese ce se emite n exterior din RALU pentru controlul dispozitivelor de memorare exterioare microprocesorului. Semnalele la bornele microprocesorului sunt urmtoarele: adrese - cale unidirecional; date - cale bidirecional; semnale de sincronizare: - READ - semnal ce comand citirea de la adres configuraiei binare de pe calea date; - WRITE - semnal ce comand la adres a configuraiei binare de pe calea date; - WAIT - semnal recepionat ce impune trecerea microprocesorului ntr-o stare de ateptare drept urmare a unei comenzi READ sau WRITE ce nu a fost nc executat; - INT - semnal de ntrerupere a crui recepionare stopeaz procesul curent de calcul pentru a da curs unui eveniment exterior sistemului; - INTA - semnal ce indic luarea n consideraie a semnalului de ntrerupere INT; ca urmare a acestui semnal, dispozitivul ce a activat INT va genera pe date o configuraie binar specific; - RESET - semnal de iniializare a funcionrii microprocesorului. Microprocesoarele sunt procesoare la care funcia de control intern este minimizat, n sensul c automatul de control AC este gndit foarte simplu. Procesoarele microprogramate se situeaz la extrema n care funcia de control intern are o pondere foarte important. Dac un microprocesor folosete ct mai direct codul instruciunii (biii din RI comand direct funcionarea RALU), n cazul imensei majoriti a instruciunilor, la o structur microprogramat, codul instruciunii acioneaz cu preponderen asupra automatului de control, declannd secvene complexe de comand.

4.3.

Caracteristicile principalelor tipuri de microprocesoare

n continuare sunt prezentate pe scurt principalele caracteristici ale unor tipuri reprezentative de microprocesoare. 4.3.1. Microprocesorul ZILOG Z80 Dei este un microprocesor care a aprut de o perioad de timp destul de lung el este unul dintre microprocesoarele pe 8 bii dintre cele mai populare. Pentru acest tip de microprocesor au fost dezvoltate o serie foarte mare de aplicaii ncepnd de la bunuri de larg consum pn la aplicaii industriale. 33

Microprocesorul Z80 mpreun cu componentele sale auxiliare formeaz o familie tipic pentru generaia de microprocesoare de 8 bii. Componentele din familie asigur posibilitatea realizrii tuturor funciilor clasice ale unui sistem cu microprocesor. Principalele caracteristici ale acestui microprocesor sunt: magistrala de date pe 8 bii; magistrala de adrese pe 16 bii; 12 registre de uz general pe 8 bii cu utilizare pe 16 bii, registre cu selectare alternant cte ase; 2 registre acumulator i 2 registre indicatori de condiii cu selectare alternant; 2 registre speciali, unul pentru determinarea vectorului de ntrerupere i unul pentru remprosptarea transparent a memoriei dinamice; 2 registre index pe 16 bii; o ntrerupere nemascabil i una mascabil cu un mecanism foarte flexibil de rspuns la cererea de ntrerupere; este capabil s execute operaii aritmetice (mai puin nmulirea i mprirea) i logice; frecven de tact maxim 6MHz.

4.3.2. Microprocesoarele INTEL 80x86 Familia microprocesoarelor INTEL s-a mbogit continuu cu noi membrii care au dus la creterea performanelor hardware i software a acestor componente. Principalul avantaj al acestei familii de microprocesoare este pstrarea compatibilitii software ntre diferitele generaii ncepnd cu microprocesorul 8086 ceea ce a permis dezvoltarea continu a aplicaiilor pentru aceste microprocesoare. ncepnd cu microprocesorul 80286 s-au introdus dou moduri de funcionare diferite: modul real (Real Address Mode) n care microprocesorul poate adresa ca i 80806 un spaiu de memorie de 1Mo i modul protejat (Protected Virtual Address Mode) n care spaiul adreselor fizice a crescut la 16Mo iar cel al adreselor virtuale la 1Go. Microprocesorul 80286 a fost proiectat pentru a permite (n mod protejat) sisteme multitasking, oferind cte un segment de stare ataat fiecrui task, care sunt structuri manevrate hardware i conin strile curente (incluznd toate registrele) ale taskurilor. Selectoarele acestor segmente de stare identific unic taskul ataat. De asemenea, este facilitat i comutarea taskurilor, care poate fi invocat printr-o singur instruciune. Fiecare task din sistem poate avea propriul lui spaiu de adrese logice. Microprocesorul 80286 ofer i un mecanism evoluat pentru comunicarea ntre taskuri, sincronizarea lor i partajarea memoriei. Istoria microprocesoarelor din familia 80x86 este strns legat de cea a coprocesoarelor matematice. Fiecrui element de baz din familie i-a fost asociat un coprocesor pentru a mbunti performanele sistemului de calcul. Pentru microprocesoarele 8086, 80286 i 80386 sunt folosite coprocesoarele 8087, 80287 i respectiv 80387. 34

Microprocesorul 80386 pe 32 de bii a fost proiectat pentru utilizarea n aplicaii intensive complexe. Datorit celor 32 de bii de adrese, spaiul adreselor fizice este de 4Go iar spaiul adreselor logice de 64To. Este prevzut cu microcod care suport direct aplicaii care utilizeaz ntregi mari, structuri complexe de date i un numr mare de programe. Microprocesorul are patru moduri distincte de funcionare: real, virtual 8086, protejat 286 i nativ 386. n figura 4.4 este prezentat schema bloc a microprocesorului 80386.

Fig. 4.4. Schema bloc a microprocesorului 80386

Microprocesorul 80486 ofer multe faciliti noi: o memorie cache de 8ko, o unitate de gestiune a memoriei compatibil 80386, un procesor 80386 i un subset 80387 pe un singur chip, ceea ce permite ca softul existent (fiind vorba de nalta compatibilitate) s ruleze mai repede pe 80486 dect pe perechea 80386-80387. Microprocesoarele de tip INTEL, ncepnd cu microprocesorul de tip 80386 au patru moduri de funcionare de baz: modul real, modul virtual i modul protejat. Avnd n vedere faptul c sistemul de operare DOS este destinat n exclusivitate microprocesoarelor de tip INTEL i datorit faptului c aceste mecanisme se ntlnesc i la alte tipuri de microprocesoare, ele vor fi descrise pe scurt n continuare. MODUL REAL. Acest mod este cel n care se intr dup iniializarea microprocesorului. De regul, sub sistemul de operare DOS microprocesorul se afl n modul real. Specific acestui mod de funcionare este faptul c microprocesorul nu poate rula dect un singur program odat. Exist posibilitatea rulrii programelor sub sistemul de operare DOS i n alte moduri ale microprocesorului, dar acest lucru necesit extensii ale sistemului de operare (existnd n acest sens programe specifice). MODUL VIRTUAL. Acest mod permite execuia programelor n contextul mecanismelor de protecie, gestiune a taskurilor i management al memoriei. Un program poate rula n mod virtual n paralel cu alte programe care ruleaz n mod protejat. De asemenea, pot fi executate deodat mai multe programe n mod virtual. Sistemul de operare Windows 9x se bazeaz pe acest mod performant de funcionare al 35

microprocesorului, permind execuia n paralel a mai multor programe (sesiuni DOS) ct i a mai multor programe Windows. MODUL PROTEJAT. n acest mod, microprocesorul emuleaz funcionarea unui microprocesor de tip 80286 n mod protejat. Modul protejat prezint un mecanism sofisticat pentru protejarea datelor, integritatea sistemului, concurena taskurilor i gestiunea memoriei incluznd i cea a memoriei virtuale. n modul protejat, n cazul microprocesorului 80286, spaiul adreselor fizice este mrit de la 1 Moctet la 16 Moctei, n timp ce spaiul adreselor virtuale a fost mrit la 1 Goctet. n acest mod, programele folosesc adrese virtuale, translatarea lor n adrese fizice fcndu-se automat pe baza unor tabele cu descriptori de segmente. Acest mecanism permite implementarea eficient a sistemelor cu memorie virtual n care utilizatorul vede memoria intern i cea extern ca o singur memorie. Modul protejat permite implementarea sistemelor multitasking, oferind cte un segment de stare ataat fiecrui task, care sunt structuri manevrate hardware i conin strile curente (incluznd toate registrele) ale taskurilor. Selectoarele acestor segmente de stare identific unic taskul ataat. De asemenea, este facilitat i comutarea taskurilor, care poate fi invocat printr-o singur instruciune. Fiecare task din sistem poate avea propriul lui spaiu de adrese logice, existnd de asemenea un mecanism evoluat pentru comunicarea ntre taskuri, sincronizarea lor, partajarea memoriei etc. MODUL NATIV. Acest mod folosete ntreaga putere a microprocesorului. Memoria virtual permite ca dimensiunea unui program s fie limitat de spaiul pe disc i nu de dimensiunea memoriei interne. Mecanismele de protecie sunt destul de puternice pentru a evita accidentele ntre taskuri sau ntre utilizatori. Spaiul de adrese al taskurilor este complet separat, segmentele sunt tipizate i au diferite drepturi de acces. De asemenea, se verific i depirea limitelor segmentelor. Exist trei nivele de prioritate, sistemul de operare avnd nivelul zero (cel mai prioritar), iar aplicaiile programatorilor avnd nivelul trei (cel mai puin prioritar). Microprocesorul INTEL Pentium Microprocesorul Pentium este integral compatibil cu procesoarele INTEL anterioare, dar se deosebete de acestea n multe privine. Cel puin una din aceste deosebiri este major: microprocesorul Pentium are dou canale identice de procesare a datelor, ceea ce i permite s execute dou instruciuni n acelai timp. Aceast capacitate de a executa simultan dou instruciuni este numit tehnologie superscalar (procesare paralel). Aceast tehnologie asigur performane suplimentare fa de cea a procesorului 486. Prin modul numit BTB (Branch Target Buffer) care utilizeaz o tehnic numit branch prediction (predicia salturilor) n scopul reducerii timpului de ateptare n canalele de procesare, cauzat de aducerea instruciunilor unei ramuri aflate la o alt locaie de memorie, se realizeaz la microprocesorul Pentium o utilizare mai eficient a memoriei cache interne. Modul BTB ncearc s prevad cnd va apare o instruciune de salt i s aduc n memorie instruciunile 36

corespunztoare ramurii la care se va face saltul. Utilizarea tehnicii de prevedere a ramificrii unui program permite microprocesorului s menin n funcionare la vitez maxim, cele dou canale pentru execuia instruciunilor. Principalele caracteristici ale microprocesorului Pentium sunt: gama frecvenelor maxime: 450MHz; dimensiunea registrelor: 32 bii; magistrala de date extern: 64 bii; magistrala memoriei 32 bii; memoria maxim: 4Gb; memorie cache ncorporat: 8kb pentru instruciuni i 8kb pentru date la primele tipuri ajungnd la 2Mb n prezent; tipul memoriei cache ncorporate: cu dou blocuri asociate, Write-Back Data; coprocesor matematic cu unitate de calcul n virgul mobil (FPU) inclus; gestionarea memoriei: SMM (System Management Mode), extins la a doua generaie.

Dezvoltarea microprocesoarelor a depit de mult acest prag. n prezent exist microprocesoare cu mai multe uniti centrale integrate care au mecanisme sofisticate. Datorit faptului c nelegerea funcionrii unui microprocesor este pe deplin posibil prin analiza funcionrii microprocesorului INTEL 8086, datorit structurii simple dar revoluionare a acestuia, compatibilitatea cu generaiile INTEL dezvoltate ulterior i datorit existenei unei consistente documentaii n legtur cu acest domeniu, vom prezenta n continuare structura n detaliu a acestui microprocesor. 4.3.2.1. Microprocesorul INTEL 8086/8088

Microprocesoarele 8086 i 8088 de generaia a III-a sunt microprocesoare cu o structur pe 16 bii, 8088 este proiectat cu o magistral de date extern de 8 bii n timp ce 8086 poate transfera 16 bii deodat. Datorit faptului c n afar de aceast deosebire funcionarea celor dou tipuri de microprocesoare este identic, n continuare ne vom referi numai la microprocesorul 8086. Performanele acestor microprocesoare sunt datorate structurii interne de 16 bii i arhitecturii pipeline care permite instruciunilor s fie prencrcate n timpul ciclurilor disponibile ale magistralei. Principalele caracteristici ale acestor microprocesoare sunt: magistrala de date de 16 bii; magistrala de adrese de 20 bii; adresare segmentat a memoriei; 4 registre de uz general pe 16 bii adresabile direct sau pe octei; 4 registre de segment pe 16 bii; 2 registre index pe 16 bii; un sistem foarte flexibil de adresare a memoriei (7 moduri); 37

Microprocesorul 8086 este un microprocesor pe 16 bii i memorie adresabil direct de 1Mo. Structura unitii centrale, cu elementele accesibile programatorului, este prezentat n figura 4.5.20

sistem de ntreruperi hardware i software; posibilitatea funcionrii n sisteme multiprocesor; posibilitatea efecturii operaiilor aritmetice (inclusiv nmulire i mprire) i operaii logice; frecven de tact 6MHz.

AH BH CH DH

SP BP DI SI

AL BL CL DL

16

Registre de uz general

EU

CODE SEGMENT DATA SEGMENT STACK SEGMENT EXTRA SEGMENT IP REGISTRE INTERNE20 16

BusBIUREGISTRE TEMPORARE

LOGICA DE COMANDA DE BUS

16

BUS AD 0 AD 15 MULTIPLEXAT

ALU

COMANDA EU

8

1 2 3 4 5 6COADA DE INSTRUCTIUNI

8

REG. FLAG- uri Figura 4.5. Structura unitii centrale 8086.

Aa cum se arat n figura 4.5, structura microprocesorului I 8086 se compune din dou uniti : EU = unitate de execuie i BIU = unitate de interfa cu magistrala (bus). BIU execut toate ciclurile de bus (READ, WRITE, INTA) fie la cererea EU sau pentru umplerea cu coduri a unei cozi Q de instruciuni. Coada de instruciuni este o memorie de tip FIFO cu 6 cuvinte. BIU execut noi cicluri FETCH n intervalele ct EU nu solicit bus-ul. EU obine coduri de la BIU (ateapt dac Q este vid), execut instruciunile, lucrnd cu adrese i date cu 8/16 bii, actualizeaz flag-urile i furnizeaz adrese i date ctre BIU. 38

EU calculeaz adresele efective ale operanzilor, conform modului de scheme utilizat. Adresa efectiv pe 16 bii, BIU genereaz adresa fizic cu 20 de bii, selectarea adresei efective, generate de EU. Dac Q este plin i EU nu solicit transferuri pe bus apar cicluri n rotire (ateptare). Exemplu: T1 T2 T3 T4 TI TI ... TI TI T1 T2 T3 T4 ... TI = Idle State. Modurile de lucru posibile pentru unitatea cuntral I8086 sunt : Modul minim MN / MX = 1 Semnale de comand: ALE, DT/K, DEN, M/IO, WR, INTA, HOLD, HOLDA. Folosit n sisteme mici, de regul monoprocesor. n figura alturat circuitele bufferde tip 8286 pot lipsi dac ncrcarea electric a bus-ului este redus. Modul maxim MN / MX =0 UCP genereaz ctre controlerul de sistem I 8288 semnale de stare identificare ale ciclului de bus, n rest genereaz semnale corespunztoare pe bus-ul de comand.

Conectarea UCP I 8086 n modul maxim. n modul maxim liniile RQ/GT0, RQ/GT1, LOCK, QS0, QS1 se pot utiliza pentru conexiuni de tip multiprocesor. Se pot, de exemplu, conecta alte procesoare pe bus-ul local al UCP, utiliznd pentru arbitrajul de bus liniile RQ/GT (care nlocuiesc pe HOLD/HOLDA din modul minim). Registrele unitii centrale Registrele unitii centrale aflate n seciunea EU (Execution Unit) sunt: AX, BX, CX, DX SP, BP, SI, DI F

16AX BX CX DX 15 AH BH CH DH 8 7 AL BL CL DL 0

8 Registre cu 16 bii de uz general, adresabile direct sau pe octet: AX = (AH, AL) BX = (BH, BL) CX = (CH, CL) DX = (DH, DL) fiecare din ele poate servi ca destinaie a datelor (accumulator)

39

Utilizrile implicite ale registrelor sunt: utilizat pentru operaii aritmetice (*), (/) pe 16 bii i pentru operaii de I/E pe 16 bii; n mod analog AL este utilizat pe 8 bii i n plus pentru aritmetic zecimal i conversii de cod; AH este utilizat la (*) i (/) pe 8 bii; BX: utilizat n conversii de cod i ca registru de baz de adrese; CX: utilizat n operaii cu iruri, cu rol de contor de cicluri; CL: utilizat n deplasri (stnga, dreapta cu un numr de pai dai ca parametru de valoare lui CL); DX: utilizat la (*), (/) pe 16 bii i ca registru de adresare indirect la porile de intrare ieire (I/E); SP: utilizat implicit n toate operaiile cu stiva; SI, DI: utilizate n operaiile asupra irurilor de date; F = registrul de flag-uri i control al procesorului (se afl n EU). Semnificaia fanioanelor din registrul F este: CF = C, PF = P, AF = H, ZF = Z, SF = S semnificaii obinuite : CF = "carry flag": depire aritmetic; PF = parity flag: paritate; AF = auxiliary flag: transport ntre bitul 3 i 4; ZF = "zero flag: valoare zero; SF = sign flag: semnul. TF = trip flag; TF = 1 determin UCP s lucreze n mod pas cu pas(single step), n care CA genereaz o ntrerupere intern dup fiecare execuie a unei instruciuni; IF = masca pentru ntreruperi externe (IF =1 => validarea ntreruperilor; IF =0 => invalidarea ntreruperilor); DF = direction flag- indic direcia deplasrii adresei la operaiile cu iruri de date (DF =1 => autodecrementare, DF =0 => autoincrementare, dup o operaie elementar); OF = V (depire). Registrele SP, BP sunt registre cu 16 bii utilizate n operaiile cu stiva. Registrele SI, DI sunt registre cu 16 bii utilizate n operaiile cu iruri; SI conine adresa sursei iar DI adresa destinaiei. Registrele aflate n seciunea BIU (Bus Interface Unit) a unitii centrale 8086 sunt: CS, DS, SS, ES = sunt registre segment care conin adresele de baz ale segmentelor logice de cod, date, stiv i extrasegment; IP = Instruction Printer = contor de program, cu 16 bii. Valoare ce reprezint adresa relativ (offset-ul) a instruciunii curente n segmentul de cod (relativ la CS). n cazul unei instruciuni de salt, IP este salvat n vrful 40 AX:

stivei (mpreun cu CS, deci saltul este inter-segment) i apoi ncrcat cu adresa relativ n segmentul de cod a instruciunii int ; Posibilitile de lucru n sisteme multiprocesor Arhitectura familiei I8086 conlucrarea ntre dou tipuri de procesoare: independente (execut propriile secvene de instruciuni) ; coprocesoare care obin instruciuni din memoria unui procesor gazd (host), urmrind ciclurile FETCHale gazdei, le recunosc pe cele destinate lor i le execut. Efectul obinut este extinderea setului de instruciuni al gazdei. Organizarea ierarhic a bus-urilor Familia admite dou tipuri de bus-uri: locale i de sistem. Ambele pot fi multimaster (mai multe UCP conectate la bus). ntre bus-ul local i cel de sistem se conecteaz interfee. Conexiunile externe ale I8086 n modul "maxim" UCP livreaz controlerului de sistem I 8288, n fiecare ciclu de bus, un cuvnt de comand (S0, S1, S2), pe care acesta l decodific i genereaz semnale de comand pe magistral (bus). n acest mod se pot conecta mai multe UCP la bus. Semnalele externe ale microprocesorului I8086 sunt prezentate n figura 4.6.Semnificaie n modul maxim ( MX = 0 )

A16 / S3 A17 / S4 A18 / S5 A19 / S6 AD 15 AD 0 Vcc CLK GHD RESET TEST16

MN/ MX BHE / S7 M / IO DT / R DEN READY RD (S2) (S1) (S0)

8086

WR HOLD HOLDA ALE INTA INTR NMI

( LOCK ) ( RQ / GT0 ) ( RQ / GT1 )

( QS0 ) ( QS1 )

Figura 4.6. Semnalele externe ale microprocesorului I8086.

n tabelul 4.1 sunt date semnificaiile semnalelor externe ale microprocesorului I8086 att n modul "minim" ct i cel "maxim". Microprocesorul I8086 este realizat n capsule de 40 de pini. Din acest motiv semnalele acestuia sunt multiplexate, n aa fel 41

nct s poat fi generate toate semnalele pe aceti pini (adrese 20 de semnale, date 16 semnale, comenzi i alimentare), cele 16 linii de adres A15 A0 fiind multiplexate cu cele 16 linii de date D15 D0. TABELUL 4.1.Simbol Nr. pin Semnificaie

Tip I/O, Z

SEMNIFICAII

AD15 AD0 A19 / S6 A18 / S5 A17 / S4 A16 / S3 MN / MX BHE / S7 RD READY RESET TEST INTR NMI CLK VCC GHN

216, 39 35 38 33 34 32 22 21 23 18 17 19 40 1, 20 28 290

Adresa n T1/D este n T2, T3, Tw, T4 Adresa n T1 / semnele de stare n T2, T3, Tw, T4 Comanda modului: 1 minim; 0 maxim Validare bus (HIGH) n T1 / stare n T2 T4 Comand de citire pe bus-ul local Memorie / (I/E) gotopentru transfer Comanda de resetare Testat de instruciuni WAIT (Ateapt pn ce TEST = 0 ntreruperi mascabile externe; activ pe nivel ntreruperi nemascabile externe; activ pe front (+) Semnal de test generat de 8284 Alimentare +5V Mas

FIXE

IO, Z

O, Z I I I I I I I O, Z O, Z O, Z O, ZO

N MOD

M / IO WRMINIM

Ieire de stare. Selecie memorie (I / E) Comand de scriere Comand semnul transferului; 1=> DT / R 27 transmisiune; 0 => recepie DEN 26 Validare date. Activ n cicluri M, I/E, INTA ALE 25 Indic prezena adresei pe AD0 ... AD15 READpentru cele dou cicluri INTA ale lui INTA 24 8086 HOLD 31 Cerere de bus de la alt master HLDA 30 Confirmare de cedare a bus-ului S2, S1, S0 26 28 Semnale de stare pentru ciclu de bus RQ / GT1 30 Comenzi cerere/cedare pentru arbitraj de bus RQ / GT0 31 Indicator c 8086 nu va ceda bus-ul altui LOCK 29 master QS1 Starea cozii de instruciuni din interfaa cu bus24, 25 QS0 ul a UCP unde: I = intrri; O = ieiri; Z = impedan mare; 42

SEMNIFICAII

O I O O I/O O O

SEMNIFICAII N MOD MAXIM

Observaii: cu Tn se noteaz ciclurile unitii centrale (T1 ciclul de extragere cod operaie etc.) AD15 AD0 : genereaz adrese n intervalul T1, devin intrri / ieiri de date n T2 T4 i trec n impedan mare n timpul ciclurilor INTA, sau dac UCP a cedat bus-ul (HDLA = 1); A19 / S6 A16 / S3: genereaz adrese n intervalul T1 (cu valoare 0dac ciclul de transfer este I/E) i semnale de stare n T2 T4. o S6 = 0 indic ocuparea bus-ului de ctre UCP; o S5 = IF copiaz starea flag-ului de ntrerupere. Astfel, starea de validare / invalidare se poate citi hardware din exteriorul UCP. S4 0 0 1 1

S3 0 1 0 1

Alternate data Stack Code or home Data

Indic registrul segment curent utilizat pentru adresare.

Aceti pini trec n starea Z n timpul ct HDLA = 1 BHE i A0 determin tipul transferului pe 8 sau 16 bii, astfel: BHE 0 0 1 1 A0 0 1 0 1 tipul transferului 16 bii MSB (adres impar) LSB (adres par) -

BHE = 0 atunci cnd un octet trebuie transferat pe cei 8 bii mai semnificativi (MSB) ai bus-ului cu 16 bii. El este activ n timpul ciclurilor RD, WR, INTA (este 0 n timpul primului ciclu INTA). BHE trebuie demultiplexat odat cu A0 A15 (prin memorare pe frontul negativ al semnalului I/E deoarece n T2 T4 el indic bitul de stare S7. n modul maxim, o parte din semnificaiile pinilor se modific. S2, S1, S0 identific tipul de ciclu main n intervalele T4, T1, T2, informnd controlerul de sistem I 8086 asupra tipului de transfer care urmeaz (ele sunt inactive n T3 i Tw). S2, S1, S0 0 confirmarea acceptrii ntreruperii, 1 citire I/E, 3 HALT (oprire), 4 Citirea codului instruciunii, 5 Citire din memorie a unui operand, 6 Scriere n memorie a unui operand, 43

7 Ciclu inactiv. Pinii S2, S1, S0 trec n starea Z n intervalele n care UCP cedeaz bus-ul. Liniile bidirecionale RQ / GT, (RQ/GT0 au prioritate fa de RQ/GT1) i sunt utilizate de alte module masterde pe bus-ul local pentru pentru a cere bus-ul de la UCP. Cererea se face prin RQ = 0 (intrare); la sfritul ciclului main curent UCP cedeaz bus-ul i genereaz GT = 0 (GranT). Semnalul LOCK = 0 indic faptul c UCP nu va ceda bus-ul deoarece execut o seciune de transfer nentreruptibil ce trebuie terminat. Semnalele QS0 i QS1 indic starea cozii de instruciuni existente n unitatea de interfa de bus a UCP.

Firma Intel a creat o serie de circuite integrate necesare realizrii microsistemelor cu microprocesor I8086. O parte din aceste circuite au devenit modele pentru dezvoltrile ulterioare, foarte multe din circuitele moderne fiind compatibile cu aceste circuite. Principalele circuite dezvoltate de firma Intel sunt :

8086 (IAPX 86/10), IAPX 186, IAPX 286 UCP cu 16 bii; 8087 (IAPX 86/20) procesor aritmetic n virgul mobil; 8088 (IAPX 88/10) UCP cu 16 bii n interior i 8 bii n exterior; 8089 UCP specializat n operaii I/E; IAPX 86/30, IAPX 88/30 procesor specializat coninnd un sistem de operare n timp real ncorporat n HW; 8284 generator de tact; 8288 controler de sistem (genereaz semnalele de comand pe busuri); 8289 arbitru de bus (coordoneaz funcionarea mai multor UCP-uri pe acelai bus) pentru sisteme multiprocesor; 8259A controler de ntreruperi; 8237A controler DMA; 8282, 8283 circuite latch (8bii); 8286, 8287 circuite buffer (8bii).

n figura 4.7 este prezentat un microsistem realizat cu microprocesorul I8086 conectat n modul "minim". Din aceast figur se observ existena celor trei magistrale : magistrala de comenzi, magistrala de adrese i magistrala de date. Magistrala de adrese i cea de date, datorit faptului c sunt multiplexate, necesit circuite suplimentare pentru generare : circuitul I8282 latch i circuitul I8286 buffer. n figura 4.8. este prezentat modul n care microprocesorul I8086 poate fi conectat n modul "maxim". Aa cum s-a artat, n acest mod sunt generate n mod suplimentar semnale de comand a magistralelor cu ajutorul circuitului controler de sistem I8288.

44

Figura 4.7. Microsistem cu microprocesor I8086 conectat n modul "minim.

Figura 4.8. Conectarea microprocesorului I8086 n modul "maxim

45

Organizarea memoriei principale Microprocesorul poate adresa direct 1Mo de memorie la adresele 0 0FFFFFH. Tipuri de date memorate:

8 bii (octei) 16 bii (cuvinte) 32 bii (cuvinte duble sau pointer-i)

Nu exist restricii privind plasarea acestor date n memorie (ele pot ncepela orice adres). n funie de plasarea datelor la scheme pare sau impare UCP va executa automat numrul de cicluri necesare pentru citirea lor. Convenia de reprezentare a datelor multi-cuvnt n memorie este cea standard la microprocesoarele INTEL: octeii mai puin semnificativi sunt plasai la adrese mai mici (n grupul de octei alocat cuvntului). Memoria lui I 8086 este segmentat. Pentru generarea adresei fizice AF, BIU execut operaia dat de relaia: AF = S x 24 + O (4.1)

S = coninutul registrului segment O = adresa efectiv (offset) Se impune deci restricia ca un segment s nceap la o adres absolut multiplu de 16. Registrele segment pot fi implicite sau explicite (la dorina programatorului): Tipul de referire la memorie FETCH * Operaii cu stiva * Date variabile (cu excepiile de mai jos) * Sursa la operaiile cu iruri * Destinaia la operaiile cu iruri * BP folosit ca registru de baz Registrul segment utilizat implicit CS SS DS DS ES SS _ _ CS, SS, ES CS, SS, ES _ CS, DS, ES Alte registre utilizate OFFSET (adresa relativ n cadrul segmentului) IP SP Adresa efectiv SI DI Adresa efectiv

Utilizarea altor registre segment fa de cele utilizate implicit trebuie indicat de programator n instruciunea respectiv cu ajutorul unor prefixe speciale (1 octet).

46

Memoria stiv Stiva sistemului se organizeaz n memoria principal. ntr-o aplicaie pot exista mai multe stive (fiecare cu dimensiunea maxim de 64Ko). Adresa de baz a stivei (valoarea iniial a registrului SP ntr-un program) este diferit de adresa de baz a segmentului de memorie alocat stivei. Modul de organizare al stivei microprocesorului I8086 este artat n figura 4.9.8 bii: Stiv de dimensiune 64 Ko SS Adresa de baz a segmentului de memorie alocat stivei

: :

locaii ocupate n stiv la un moment dat + FFFF

Adresa de baz a stivei (stiva vid) Figura 4.9. Organizarea stivei microprocesorului 8086.

Anumite zone din memoria principal a sistemului sunt rezervate pentru diferite utilizri de ctre unitatea central. Adrese rezervate:

0 13H = dedicate pentru ntreruperi interne; 14H 7FH = rezervate pentru dezvoltri ale familiei de componente (rezervate de firma INTEL); 0FFFF0H 0FFFFBH = dedicate pentru instruciunile executate resetarea procesului; 0FFFFC 0FFFFFH = rezervate de firm

Porturile de intrare / ieire (I / E) Spaiul de adrese de intrare / ieire este separat de spaiul adreselor memoriei. Spaiul este nesegmentat i cu dimensiunea de 64 Ko ceea ce asigur posibilitatea de adresare direct a unui mare numr de porturi I/E cu 8 sau 16 bii. ntr-un transfer I/E, UCP citete/scrie 16 bii/ciclu de bus dac portul I/E este localizat la adresa par i 8 bii/ciclu dac portul I/E este localizat la adres impar. Faciliti pentru lucru n sisteme multi-master Facilitile pentru lucrul multi-master sunt prezentate n continuare.

Interzicerea accesului la bus a altor module master cu ajutorul semnalului LOCK. Bus-ul se utilizeaz prin diviziune n timp, 47

ntreeserea ciclurilor de acces la bus a diverselor module master se face la nivel de ciclu de bus (i nu la nivel de ciclu de instruciune). LOCK = 0 indic faptul c 8086 execut o instruciune ce nu poate fi ntrerupt (instruciunea e prefixat LOCK ex. actualizarea unui pointer de 4 octei). Utilizarea liniilor RQ/GT0 i RQ/GT1 Liniile RQ/GT0 i RQ/GT1 bidirecionale permit controlul accesului la un bus local comun mai multor procesoare. Protocolul de cerere/cedare a bus-ului decurge astfel: o procesorul solicitator cere acces prin generarea unui impuls (RQ=0) ctre UCP; o UCP (la sfritul ciclului main curent) cedeaz bus-ul i rspunde prin impulsul (GT=0); o dup terminarea accesului, cellalt procesor elibereaz bus-ul informnd asupra acestui fapt printr-un nou impuls (GT=0).

Sistemul de ntreruperi Clasificarea ntreruperilor ntreruperile interne (software)o o

o o

INT n, unde tipul este TIP=n, n {0, ..., 255} INTO (INTerrupt ou Overflow), provoac o ntrerupere TIP=4 dac flag-ul overflow a fost setat n urma apariiei unor depiri la efectuarea operaiilor aritmetice; IDIV, cu TIP=0, generat automat dac apare o eroare de depire la operaia de mprirre; SINGLE STEP, cu TIP=1, se genereaz automat dup execuia fiecrei instruciuni, dac flag-ul TF (test flag) a fost setat n 1. Acest tip de ntrerupere practic UCP n modul de lucru pas cu pas, util pentru depanarea programelor.

ntreruperile externe (hardware) se genereaz prin aplicarea unor semnale pe intrrile de ntrerupere.o o

NMI pentru ntreruperile nemascabile, cu TIP=2; semnalul este activ pe frontul pozitiv. INTR pentru ntreruperi mascabile (prin flag-ul IF din registrul de flag-uri). Semnal activ prin nivel logic 1; acesta trebuie meninut activ pn la recunoaterea ntreruperii de ctre UCP. Tipul ntreruperii externe mascabile se genereaz de ctre dispozitivul ntreruptor (de exemplu controlerul de ntreruperi I8259A).

Servirea ntreruperilor Tipul unei ntreruperi este utilizat de ctre UCP ca adres relativ ntr-un tablou de pointer-i, amplasat n memoria principal ntre adresele 03FFH (256x4 octei).

48

Un pointer conine adresa logic pentru servirea ntreruperii. Pentru a efectua saltul la aceast adres se efectueaz urmtoarele operaii: IP TP(T+1,T); CSTP(T+3, T+2) T=4xTIP TP(+1, ) reprezint cuvntul cu 16 bii format din octeii de adres -1 i din tabloul de pointer-i. Efectul este asemntor cu cel al instruciunii CALL intersegment Prioritile de servire pentru diversele tipuri de ntreruperi (care pot apare eventual simultan) rezult din organigrama alturat. Ciclurile INTA pentru ntreruperile externe mascabile (INTR) pe durata celor dou cicluri INTA, semnalul LOCK este activ. Vectorul de ntrerupere este n acest caz numrul indicator al tipului i este citit de ctre UCP n al doilea ciclu INTA. n figura 4.10 se prezint modul de alocare n memorie a vectorilor de ntrerupere.16 biiIP CS TIPO (DIV) TIP I(SINGLE STEP)

TIP 2 (NMI) TIP 3(INSTR DE INTR CU 1 OCTET)

TIP 4 (INTO) Zon rezervat pentru compatibiliti cu alte produse INTEL . . .

0 2 4 6 8 A C E 10H 12H

ntreruperea break point destinat depanrii programelor

7EH 8OH

3FEH

Figura 4.10. Tabel de pointer-i pentru ntreruperi

n figura 4.11 se prezint organigrama corespunztoare servirii unei ntreruperi de ctre unitatea central I8086.

49

Completeaz instruciunea curent intreruperi interneNU Da

NMI ?NU

Da

INTR ?NU NU

Da

IF=1 ?

Da

TF=1 ?

Execut instruciunea urmtoare

Confirm receptarea ntreruperii (primul ciclu INTA)

Citete tipul ntreruperii (al doile ciclu INTA)Salveaz n stiv flag-urile

Restabilete IP, CS Restabilete flag-urile Reia programul ntrerupt

TEMP TF IF, IF 0Salveaz n stiv CS, IP CS, IP Adresa de sevire NMI ?Da

* TEMP = variabil intern pentru memorarea valorii lui TF (TEST FLAG) (definit de programator)

NU

TEMP=1NU

Da

Procedeu de servire a ntreruperii

Figura 4.11. Organigrama servirii unei ntreruperi.

Iniializarea unitii centrale. Starea HALT. Utilizarea intrrii TEST 1 pe RESET determin: CS FFFFH, IP 0 ; ceea ce determin generarea adresei fizice 0FFFF0H cu adres absolut a primei instr