Sunteți pe pagina 1din 87

3

1. Introducere
nc din cele mai vechi timpuri, omul a fost nevoit s efectueze calcule. Odat cu creterea
complexitii calculelor, s-au pus n eviden dou deficiene majore ale calculului manual:
- viteza de efectuare a calculelor, care este limitat, astfel anumite probleme nu pot fi
rezolvate ntr-un timp rezonabil;
- greeala, care intervine iminent la calculele umane.
Putem compara pentru nceput procesul de calcul manual (a) i cel al mainii (b):

Creierul

Control Instruciuni
Hrtia

Execuie Date

a)
Calculator
de buzunar

Unitatea
central b)
de prelucrare

Unitatea Instruciuni
de control
Unitatea Echipamente
de memorie de intrare/ieire
Unitatea
aritmetic Date
i logic

Fig. 1.1.

Hrtia este folosit pentru stocarea informaiei care poate fi algoritm, respectiv dat.
Putem distinge clar cele dou funcii ale creierului uman: cel de interpretare a informaiei i
executarea diverselor funcii, aceasta din urm putnd fi preluat de diferite echipamente
ajuttoare (abac, calculatoare mecanice, calculatoare de buzunar etc).
Elementele caracteristice ale calculatoarelor snt similare cu cele din modelul uman.
Unitatea de memorie stocheaz instruciuni i date. Unitatea central de prelucrare conine o
unitate de control, care interpreteaz i realizeaz secvenierea instruciunilor, i o unitate
aritmetic i logic, care execut secvene de instruciuni.
Diferena major dintre cele dou sisteme const n reprezentarea informaiei. Omul
folosete un limbaj cu un numr foarte mare de simboluri, i reprezint numerele (n mod
uzual) n baza 10. Calculatoarele moderne, pornind de la natura fizic a elementelor
electronice, reprezint informaia n baza 2, i reduce numrul simbolurilor n mod esenial.
4

Comunicarea dintre main i om, conversia informaiei din limbajul main n limbajul uman
este realizat de echipamentul de intrare-ieire.
Pe baza acestor componente putem construi un model abstract.

Obiecte reflectante

Semantic

<Semn>, <Semn>
sintax Mesaj
<Semn>, <Semn>

Pragmatic

Sistem
interpretor

Informaie

Fig. 1.2.

Semnul este un element, obiect sau fenomen capabil de a reflecta nsuirile altor obiecte,
s in locul acestora. Sintaxa precizeaz regulile de mbinare ale semnelor pentru a forma
mesaje. Semantica reprezint ansamblul regulilor de reprezentare, de interpretare a cuvintelor
unui limbaj. Sistemul interpretor i schimb starea n funcie de mesajul primit i a strii
curente. n sistemul interpretor putem distinge sistemul reprezentor, care reprezint toate
semnele i mesajele primite; i sistemul procesor, care realizeaz transformrile n sistemul
reprezentor.
Un model abstract de calcul reprezint maina Turing.

Procesor

Cap de citire/scriere

Memorie de tip band

Fig. 1.3.

Sistemul reprezentor sau memoria calculatorului este o band magnetic fr capete,


mprit n uniti de dimensiune egal, capabil de a stoca un numr finit de semne.
Procesorul este un circuit secvenial cu numr finit de stri. Instruciunile pe care le poate
efectua i care alctuiesc setul de instruciuni, snt urmtoarele:
5

- schimb simbolul de pe band de la poziia curent;


- poziionez capul de citire cu o poziie la dreapta;
- poziionez capul de citire cu o poziie la stnga;
- oprete sistemul.
Pentru a realiza un calcul cu aceast main, se nscriu datele ntr-un cod convenabil, i se
descompune algoritmul de calcul n funcie de modul de reprezentare a datelor ntr-o secven
de instruciuni ale mainii. Ultima instruciune este cea de oprire a mainii, la care banda
trebuie s conin rezultatul calculului.
Exemplu : Adunarea a dou numere naturale cu maina Turing.
Orice numr natural n poate fi reprezentat cu un ir alctuit din n uniti. Numerele
snt separate de spaii. Cele dou numere ce urmeaz a fi adunate snt stocate unul
dup altul pe banda magnetic. Adunarea lor const n nlocuirea spaiului delimitator
dintre ele cu o unitate, iar ultima unitate va fi nlocuit de un spaiu.
Din studiul acestui model abstract rezult urmtoarele limitri ale sistemelor de calcul:
- maina nu poate stoca rspunsul la toate problemele posibile, are un numr finit de
stri;
- spaiul de stocare al datelor este finit;
- timpul de execuie trebuie s fie finit.
6

2. Evoluia calculatorelor
Primul calculator funcional a fost construit n anul 1642 de filozoful Blaise Pascal (n
cinstea lui un limbaj de programare i poart numele). Aceasta era o main cu contoare
mecanice care efectua adunri i scderi n baza zece. n jurul anului 1671, filozoful Gottfried
Leibniz a adugat mainii lui Pascal un modul de nmulire-mprire, dar acest calculator
mecanic cu patru operaii a rmas o curiozitate tiinific pn n secolul XIX, cnd a nceput
producia n serie a calculatoarelor de acest gen.
n 1823, matematicianul Charles Babbage a nceput construcia mainii difereniale, care a
fost conceput pentru realizarea automat a tabelelor matematice necesare n navigaie.
Principiul de funcionare a acestor maini era aproximarea funciilor pe baza diferenelor finite.
Calculatorul era capabil de a rula un singur algoritm. Din necesitatea de a crea un calculator de
uz general, n 1834 el a conceput maina analitic. Acesta consta din 4 uniti: unitatea de
stocare, unitatea de calcul, unitatea de intrare (cartele), unitatea de ieire (imprimanta i
perforatorul de cartele). Unitatea de calcul putea efectua cele 4 operaii de baz, dar operaia
urmtoare n fiecare pas era citit de pe cartelele de operaii, iar operanzii corespunztori snt
selectai din memorie pe baza adresei date de cartelele de variabile.

Unitatea Imprimant
aritmetic Date Memorie
i logic i perforator

Instruciuni

Cartele Cartele
cu operaii cu operanzi

Program

Fig. 2.1. Structura mainii analitice

Marea descoperire a lui Babbage a fost implementarea instruciunii de salt condiionat,


precum i crearea mecanismului de control al cartelelor care s asigure saltul nainte sau napoi.
Prima programatoare a mainii lui Babbage a fost Ada Lovelace (amintirea fiicei lordului Byron
a fost pstrat i de limbajul ce i poart prenumele).
n 1938, Konrad Zuse a construit calculatorul electromecanic Z1, care difer de cel al lui
Babbage prin faptul c lucra n baza 2. Zuse, n 1941, a construit maina Z3, care efectua
operaii n virgul flotant.
Independent de el, n USA, Howard Aiken a propus structura unui calculator
electromecanic de uz general (1937). Acesta a devenit operaional n 1944, sub numele de
Harward Mark. Mark I, produs de firma IBM, coninea 3304 de relee, iar durata medie a unei
operaii era de 1 secund.
Al II-lea rzboi mondial a reprezentat un stimulent important pentru apariia
calculatoarelor electronice.
n 1943, John Mauchley i Presper Eckert au nceput construcia calculatorului electronic
cu tuburi, denumit ENIAC. Terminat n 1946, nu mai putea fi folosit n rzboi, dar a fost
prezentat celor interesai n cadrul unei coli de var. Calculatorul coninea o memorie de lucru
format din 20 de acumulatoare (capabil de a lucra n baza 10), unitate de adunare, nmulire,
extragerea rdcinii ptratice. Calculatorul era programat manual cu ajutorul comutatoarelor,
7

care realizau o legtur ntre dou elemente, dac era necesar comunicarea. Era alctuit din
18000 tuburi i 1500 relee, cntrind 30 de tone. Executa 300 de nmuliri pe secund.
Pornind de la ENIAC, al crui consultant a fost, Jnos Neumann a proiectat primul
calculator cu program memorat, n 1945. Programul era reprezentat n form digital i nscris
n aceeai memorie cu datele. Acest arhitectur denumit i main von Neumann a
determinat direcia de evoluie a calculatoarelor.
Primul calculator construit pe acest principiu a fost EDVAC, care a devenit operaional n
1951.

Memoria
Unitatea secundar
central
de prelucrare

Unitatea
aritmetic Consol
i logic
Memoria
principal

Unitatea Cititor
de control de cartel

Imprimant
i perforator

Echipamente
de intrare/ieire

Fig. 2.2. Arhitectura calculatoarelor din prima generaie

nainte de execuia unui program, toate instruciunile i datele trebuiau transferate din
memoria secundar (band magnetic sau cartele) n memoria principal. Instruciunile
aritmetice aveau urmtorul format: A1 A2 A3 A4 OP, unde A1 i A2 reprezint adresa
operanzilor din memoria principal, A3 adresa rezultatului, A4 adresa instruciunii urmtoare,
iar OP operaia codificat. n cazul instruciunilor de salt, cmpurile primesc o alt semnificaie.
Dac coninutul locaiei de memorie adresat de A1 este mai mare sau egal ca cel adresat de A2,
adresa instruciunii urmtoare este A3, n caz contrar A4.
n anul 1946 Neumann i colegii lui de la Princeton Institute au construit un nou
calculator, denumit IAS, care ulterior a fost considerat calculator de generaia I. Instruciunile
pentru acest calculator conineau un singur cmp de adrese, formatul lor fiind OP A. Din acest
motiv, se foloseau registre pentru stocarea operanzilor, a rezultatului i a adresei instruciunilor
ulterioare.
Execuia instruciunilor se realizeaz n unitatea aritmetic i logic, care primete
operanzii din acumulator (AC), din registrul de multiplicare (MQ), respectiv din registrul de
date (RD). Rezultatul va fi stocat n acumulator. Circuitul de control primete date din registrul
de instruciuni (RI) pe care le decodific. Operaiile din sistem snt sincronizate de un ceas
intern. Registrul de adrese (RA) conine adresa operandului, care va fi transferat totdeauna
prin intermediul registrului de date (RD). Se presupune la operare c instuciunile unui
program snt depuse la locaii consecutive de memorie. Numrtorul de program (PC) conine
adresa instruciunii urmtoare, care n mod normal este incrementat dup fiecare operaie, iar
8

n cazul operaiei de salt, va fi ncrcat din registrul de adrese. Deoarece se extrag dou
instruciuni deodat pentru a reduce numrul de accese la memorie, instruciunea care nu va fi
imediat executat se stocheaz n registrul buffer instruciuni (RBI), iar cealalt instruciune n
registrul de instruciuni, unde va fi decodificat.

Unitatea central de prelucrare

Unitatea aritmetic i logic

AC MQ

Circuite aritmetice Echipamente de


i logice intrare/ieire

RD

Instruciuni
i date

RBI PC

Memoria
principal

RI RA

Adrese

Circuite de . Semnale de
control . control
.

Unitatea de control

Fig. 2.3. Structura calculatorului IAS

Setul de instruciuni poate fi clasificat n urmtoarele tipuri:


- instruciuni de transfer (ex. MOV AC,MQ - transfer coninutul registrului MQ n
acumulator);
- instruciuni aritmetice (ex. ADD AC,adr - adun coninutul acumulatorului cu
locaia de memorie a crei adres s-a specificat n instruciune i depune
rezultatul n acumulator);
9

- instruciuni logice (ex. OR AC,adr - funcia sau ntre acumulator i locaia de


memorie a crei adres s-a specificat n instruciune i depune rezultatul n
acumulator);
- salt necondiionat (ex. JMP adr - sare la instruciunea de la adresa specificat);
- salt condiionat (ex. JZ adr - sare la instruciunea de la adresa specificat dac
coninutul acumulatorului este zero).
Un ciclu instruciune se descompune n dou faze: faza de extragere i faza de execuie.
Faza de extragere este comun tuturor instruciunilor, fiind alctuit din urmtorii pai:
RA PC se transfer adresa instruciunii din numrtorul de program
n registrul de adrese;
RD M(RA) se extrage instruciunea din memorie, i se depune n
registrul de date;
RI RD se transfer codul instruciunii n registrul de instruciuni;
PC PC + 1 numrtorul de program este incrementat pentru a indica
adresa instruciunii urmtoare, n acelai timp se decodific
instruciunea din RI.
Faza de execuie difer n funcie de tipul instruciunii.
MOV AC,MQ
AC MQ
ADD AC,adr
RA RI se extrage adresa operandului din codul instruciunii, i se
depune n registrul de adrese;
RD M(RA) se extrage operandul din memorie i se depune n registrul
de date;
AC AC + RD se realizeaz operaia de adunare.
JMP adr
RA RI se extrage adresa de salt din codul instruciunii, i se depune
n registrul de adrese;
PC RA se realizeaz saltul.
Fiecare instruciune const deci dintr-o secven de microoperaii. O microoperaie
implic un singur transfer ntre registre. Unitatea de control realizeaz secvenierea
instruciunilor n funcie de tipul acestora (elaboreaz secvena corespunztoare de
microoperaii) i genereaz semnale de control pentru fiecare microoperaie.
n 1948 a fost inventat tranzistorul, care a revoluionat construcia calculatoarelor. Ca
rezultat, au aprut calculatoarele din generaia a II-a.
La aceste calculatoare reprezentarea informaiei se face att n virgul fix, ct i n virgul
flotant, i snt nglobate instruciuni aritmetice n virgul flotant.
S-a ntrodus adresarea indirect, adic adresa fizic se calculeaz ca suma dintre
coninutul registrului de adres i registrul index. Aceast facilitate duce la creterea capacitii
de adresare prin blocuri suprapuse, precum i la posibilitatea de ncrcare a unui program la
diferite adrese. Existena mai multor registre index uureaz lucrul cu tabele.
Sistemul este organizat n jurul unei magistrale, care reprezint o serie de conexiuni
electrice ntre mai multe componente, dintre care la un moment dat numai unul comand
magistrala (master).
10

Procesor
UCP Memoria Consola
de I/O

Magistrala (adrese, date, semnale de control)

Fig. 2.4.

O parte dintre operaiile de intrare/ieire au fost preluate de la unitatea central de


prelucrare (UCP) de procesoarele de intrare/ieire, astfel s-a redus timpul de ateptare al UCP.
Procesoarele de intrare/ieire supervizeaz transferul datelor dintre memorie i echipamente de
intrare/ieire. Ele execut programe speciale stocate n memorie. Execuia unei secvene de
program este iniiat de UCP, dup care cele dou programe ruleaz n paralel. Terminarea
operaiei de intrare/ieire este semnalizat printr-un semnal de ntrerupere dat de procesorul
de intrare/ieire ctre UCP.
La calculatoarele din generaia a II-a au fost incluse instruciuni de tip apel de subrutin
(CALL adr), care au dus la apariia limbajelor de nivel nalt (FORTRAN, ALGOL, COBOL),
precum i a compilatoarelor, care transform diferitele limbaje n limbaj main. Aceste
instruciuni au cerut o organizare special a unei zone din memorie, denumit stiv, care
permite salvarea adresei de revenire, precum i comunicarea parametrilor ntre proceduri. Din
punct de vedere logic, stiva este o list de tip LIFO (Last In First Out - ultimul intrat primul
ieit), care are un singur indicator (SP), artnd prima poziie liber. Putem defini operaia de
depunere n stiv (PUSH), care nscrie valoarea la adresa indicat de SP, i incrementeaz
aceasta; precum i operaia de scoatere din stiv (POP), care decrementeaz SP, i returneaz
valoarea de la adresa indicat de SP. Instuciunea CALL depune automat n stiv adresa de
revenire, instruciunea de revenire din subrutin (RETURN) va scoate din stiv adresa de
revenire corespunztoare. n cazul apelurilor succesive, adresele de revenire vor fi extrase n
ordinea corect din stiv datorit organizrii acestuia.
Apariia circuitelor integrate n 1965 a dus la realizarea calculatoarelor din generaia a
III-a. Dezvoltarea lor a urmat dou direcii: cea a minicalculatoarelor, care permiteau accesul
concomitent a mai multori utilizatori, i cea a microcalculatoarelor, care prin pre i uurarea
muncii utilizatorilor au fost ntroduse n toate domeniile de activitate uman.
n cazul minicalculatoarelor s-au ntrodus tehnici de procesare concurent sau paralel,
cum ar fi multiprocesarea, multiprogramarea (programe care se execut n paralel, mprind
acelai spaiu de memorie) avnd ca obiectiv creterea vitezei de execuie efectiv, prin
folosirea activ a timpilor de ateptare dup echipamentele de intrare/ieire.
n anii '70 au fost realizate mai multe tipuri de microprocesoare (din familia Intel i
Motorola). Ele au fost utilizate n cadrul microcalculatoarelor.
O caracteristic important a calculatoarelor din generaia a III-a a fost costrucia
modular, care a permis integrarea uoar a noilor echipamente de intrare/ieire.
Sistemele de operare dezvoltate n aceast perioad au rolul de a gestiona resursele
comune, cum ar fi procesorul, memoria sau echipamentele de intrare/ieire, folosite de mai
muli utilizatori (la minicalculatoare), i mascarea arhitecturii calculatorului pentru utilizatorul
care nu este specialist n domeniu.
Dup o jumtate de secol de la apariia primului calculator electronic, azi sute de milioane
de calculatoare lucreaz n cele mai variate domenii. Dezvoltarea lor a urmat dou direcii
principale: creterea vitezei i a capacitii memoriei la calculatoarele personale, realizarea
supercalculatoarelor (Cray) cu arhitecturi paralele folosite n simulri i prognoz, caracterizate
de o vitez de prelucrare de 1 Gflops (10 9 instruciuni n virgul flotant pe secund).
Problema actual este legarea n reea a diferitelor tipuri de calculatoare, pentru a crea un
sistem unitar de calculatoare. Prin rezolvarea lui, fiecare utilizator devine beneficiar al datelor
11

i capacitilor celorlaltor calculatoare. Azi exist deja tehnica necesar: fibrele optice snt
capabile de a transmite 109 bii pe secund; iar comunicaiile prin satelit permit chiar i
conectarea calculatoarelor portabile la sistem. Datorit acestei direcii de dezvoltare,
prognozele prevd apariia aa-numitelor pericalculatoare, care vor avea dimensiuni i pre
redus, i o singur funcie - de a se lega de sistem. Cerinele pieii legate de pericalculatoare: s
fie uor de comandat (verbal), iar afiarea imaginii-rspuns s fie de calitate ridicat. Spre
aceast direcie arat staiile multimedia dezvoltate n ultimii ani.
12

3. Unitatea central de prelucrare


Funcia principal a unitii centrale de prelucrare (UCP) este de a executa o secven de
instruciuni, stocat n memorie. Un ciclu instruciune are dou faze: cea de extragere a
instruciunii din memorie ntr-un registru intern al UCP i cea de execuie. Faza de execuie
include decodificarea instruciunii, extragerea operanzilor, efectuarea operaiei specificate n
codul instruciunii i depunerea rezultatului n memorie dac este cazul. Un ciclu instruciune
poate fi definit ca o secven de microoperaii, fiecare dintre ele reprezentnd un transfer ntre
registre (vezi fig. 2.3.).
UCP, totodat, supervizeaz celelalte componente ale sistemului prin liniile de control. De
ex.: controleaz direct sau indirect operaiile de intrare/ieire, deci transferul datelor dintre
periferice i memorie. UCP-ul este rar solicitat pentru astfel de operaii, din care cauz
echipamentele de intrare/ieire iniiaz cererea de date prin ntreruperi. Cnd apare o cerere de
ntrerupere (pe o linie de control al UCP), UCP-ul suspend execuia programului curent dup
terminarea instruciunii n curs de execuie, i trece la rutina de tratare a ntreruperii. La
terminarea acestei rutine (instruciunea RETI), se revine la programul curent n punctul n care
a fost ntrerupt. Testarea liniei de ntrerupere are loc la sfritul fiecrui ciclu instruciune.
UCP-ul este un bloc legat de sistem prin cele trei magistrale. Magistrala de date
bidirecional este folosit pentru transferul instruciunilor i datelor n i din UCP. Prin
magistrala de adrese, UCP transmite adresa datelor din memorie sau echipamente de
intrare/ieire, pentru a realiza transferul. Liniile magistralei de control pot fi:
- linii de control al transferului de date - comand operaiile de acces la memorie,
respectiv la echipamentele de intrare/ieire;
- linii de cerere de ntrerupere - de la echipamente de I/O la UCP;
- linii de acceptare a cererii de ntrerupere - de la UCP la I/O;
- linii de arbitrare a magistralei - folosite pentru cazurile n care exist mai multe
procesoare n sistem, pentru determinarea celui care va controla transferul de
date.
UCP-ul poate fi divizat n dou pri componente: cea de procesare i cea de control.
Partea de procesare const dintr-un set de registre interconectate prin circuite combinaionale.

Magistral intern

c1 c2

c3 c4
R1 R2
c5 c6

c8
c7
Unitate c10 R3
c9 funcional

c11

Fig. 3.1.

Regitrii (R) stocheaz operanzii i instruciunea. Magistrala intern este un ansamblu de


linii, care asigur transferul datelor dintr-un registru n altul, astfel realizndu-se o structur
13

foarte flexibil. Unitatea funcional este un circuit combinaional, care realizeaz operaiile
aritmetice i logice.
Partea de control trebuie s asigure secvena semnalelor de control (c), corespunztoare
instruciunii descompuse n microoperaii. Aceste semnale de control selecteaz cile de date i
operaia cerut din unitatea funcional. Semnalele de control acioneaz prin blocarea-
deschiderea cilor de date n punctele de control indicate prin cerc pe schem.
Realizarea fizic a magistralelor interne
a) prin pori:

Decodificator Registru A Registru B


1 bit 1 bit
BD
c1 BC
AD
c2 BC

Tact Registru C Tact Registru D


1 bit 1 bit

Fig. 3.2.

b) folosind registre cu ieiri tri-state:

Decodificator

Tact Tact
c1
Registru A Registru B
OE 8 bii OE 8 bii

Registru C Registru D
OE 8 bii OE 8 bii

Tact

c2
Tact

Decodificator

Fig. 3.3.
14

Structura de baz a UCP este cea propus de Neumann (fig. 2.3.), care conine un set
minim de registre i circuite adiionale, capabil de a executa un set redus de instruciuni cu un
singur mod de adresare. Acumulatorul (un registru al UCP) joac un rol central, coninnd unul
dintre operanzi i rezultatul operaiei.
Structura Neumann a putut fi extins prin urmtoarele ci:
1. Includerea mai multor registre de uz general, capabile de a stoca operanzi i adrese.
Aceste registre pot fi cuplate la mai multe magistrale interne.

PC

SP

IR

-1

A latch B latch
Magistrala
de adrese
RA
Magistrala
de date
RD

MUX

c1 ALU cy
c2 z

Fig. 3.4.

Aceast structur permite o realizare mai rapid a operaiilor, prin stocarea


operanzilor n registre, reducndu-se considerabil timpii de acces la memorie.
Posibilitatea de calcul al adreselor faciliteaz implementarea diferitelor moduri
de adresare, folosite mai ales de limbajele de nivel nalt.
15

2. Extinderea unitilor aritmetice i logice cu nmulire i mprire n virgul fix i


operaii n virgul flotant.
3. Includerea unui buffer de instruciuni capabil de a stoca cteva nstruciuni extrase,
dar nc nedecodificate. Astfel apare posibilitatea de a prelucra simultan mai
multe instruciuni, prin extragerea unei instruciuni n timpul execuiei unei alte
instruciuni care nu lucreaz cu memoria. Aceast operaie reduce considerabil
timpul de execuie. Se realizeaz cu procesoare cu structur pipeline, care
const dintr-o secven de uniti de procesare, denumite segmente. n fiecare
segment se realizeaz o procesare parial, iar rezultatul final se obine dup ce
data a parcurs toate segmentele pipeline-ului. La UCP se poate defini o
structur pipeline pentru instruciuni, care are ca scop suprapunerea fazei de
execuie a instruciunii. Cea mai simpl structur de pipeline are dou segmente
(extragerea instruciunii i execuia instruciunii). Din cauza timpilor inegale de
parcurgere a segmentor, ntre cele dou segmente se intercaleaz un buffer de
instruciuni extrase i nc nedecodificate. Timpul de execuie al instruciunilor
fiind foarte variabil, urmtoarea structur este mai eficient (structura pipeline
este folosit la capacitatea maxim):

Extragerea instruciunii

Buffer pentru instruciuni extrase

Descompunerea n microoperaii

Buffer pentru microoperaii

Execuie

Fig. 3.5. Structur pipeline cu trei segmente

Extragerea instruciunii se realizeaz numai dac microoperaia n curs de


execuie nu lucreaz cu magistrala exterioar. n cazul instruciunii de salt, apel
de subrutin sau revenire din subrutin trebuie golite bufferele.
4. Implementarea instruciunii de apel de subrutin prin salvarea adresei de revenire
automat n stiv.
5. ntroducerea posibilitii de prelucrare paralel prin structuri de tip SIMD (singur
instruciune, date multiple) i tip MIMD (multiple instruciuni, multiple date).
Primul are o singur unitate de control, i lucreaz simultan asupra elementelor
unui vector, prin multiplicarea unitilor aritmetice i logice, toate executnd
aceeai operaie. Al doilea este capabil de a executa simultan programe
independente (denumite i structuri multiprocesor).
16

Unitatea aritmetic i logic

Implementarea unitii logice cu patru operaii se realizeaz n modul urmtor:

X Y

NOT
c1
XOR
OR Decodificator c2

AND

Fig. 3.6.

Realizarea instruciunilor de salt condiionat cu ajutorul flagului 0:

Acumulator

RI
Flag D
zero Q Q
JZ
JNZ Decodificator

ncrcare
paralel
PC

Fig. 3.7.
17

Circuite de adunare
Snt realizate cu sumatoare pe un bit, definite de urmtoarele relaii:
zi = xi yi ci+1
ci = xiyi + xici+1 + yici+1
n care ieirile snt suma (z i) i transportul (ci), iar intrrile datele (xi, yi), i transportul
de la rangul inferior (ci+1).

Zi (suma)

Ci
(ieire transport)
+ Ci+1
(intrare transport)

Xi Yi

Fig. 3.8.

Pentru a aduna dou numere de lungime arbitrar, putem folosi sumatoare seriale.

D Q

Tact
T Q
C

Reset

Zi

Ci
+ Ci+1

Xi Yi

Fig. 3.9.

Biii de intrare se aplic sumatorului la fiecare semnal de tact, ncepnd cu rangul cel mai
puin semnificativ. Transportul generat se stocheaz ntr-un bistabil D, i se aplic la sumator n
tactul urmtor.
Pentru a realiza o adunare mai rapid, se folosesc sumatoare paralele:

Z0 Zn-2 Zn-1

C0
+ C1
...
Cn-2
+ Cn-1
+ Cin

X0 Y0 Xn-2 Yn-2 Xn-1 Yn-1

Fig. 3.10.
18

Transportul generat de un sumator reprezint intrare n urmtorul element, din care motiv
timpul de calcul este egal cu timpul de propagare al transportului prin ntregul lan de
sumatoare. Pentru a mrii viteza de calcul, se folosesc circuite speciale de calcul al tranportului
anticipat, alctuite din circuite combinaionale, care genereaz simultan transportul pentru mai
multe sumatoare. Aceste circuite se bazeaz pe urmtoarele ecuaii:
gi = xiyi
pi = xi yi
c3 = g3 + p3cin
c2 = g2 + p2g3 + p2p3cin
c1 = g1 + p1g2 + p1p2g3 + p1p2p3cin
c0 = g0 + p0g1 + p0p1g2 + p0p1p2g3 + p0p1p2p3cin
Acest principiu poate fi extins pentru mai muli bii, dar circuitul devine mult mai complex.
n acest caz circuitul nu se mai poate realiza cu pori, ci cu PLA-uri.

Transport anticipat

G0 P0 G1 P1 G2 P2 G3 P3
Z0 Z1 Z2 Z3

C0
+ C1 + C2 + C3 + Cin

X0 Y0 X1 Y1 X2 Y2 X3 Y3

Fig. 3.11.

Circuite de nmulire
Pentru un numr redus de bii, circuitele de nmulire pot fi realizate cu circuite
combinaionale, obinndu-se astfel viteze mari de calcul.
Fig. 3.12. reprezint circuitul care realizeaz nmulirile pe un bit, a cror ieiri se aplic
sumatoarelor din fig. 3.13. pentru a obine rezultatul nmulirii a dou numere pe trei bii.

Y0 Y1 Y2

X2

X2Y0 X2Y1 X2Y2


X1

X1Y0 X1Y1 X1Y2


X0

X0Y0 X0Y1 X0Y2

Fig. 3.12.
19

X2Y0 X2Y1 X2Y2

X1Y0
+ X1Y1
+ X1Y2

X0Y0
+ X0Y1
+ X0Y2

+ +

Z4 Z5
Z0 Z1 Z2 Z3

Fig. 3.13.

Pentru a realiza un circuit de nmulire pe mai muli bii, se folosete o structur


secvenial, care are o construcie mai simpl, dar o vitez de calcul mai redus fa de
implementarea cu circuite combinaionale.
nmulirea este realizat prin adunri i deplasri repetate, analog cu calculul manual.
Registrul M conine multiplicandul, iar registrul Q multiplicatorul. Acumulatorul (A) este
conectat cu registrul Q, i au posibilitatea de a deplasa la dreapta rezultatul intermediar.
Unitatea de control primete un semnal de start de la UCP pentru a iniia procesul de nmulire,
precum i un semnal de tact. Totodat are rolul de a genera semnalele de control interne,
conform organigramei din fig. 3.14.b.

1 Start
A Q M

A 0
Numrtor 0
M multiplicand
Sumator
paralel Q multiplicator
Q7

OUTBUS Da
8 Q(7) = 0 ?
INBUS
8 Nu
A A+ M Num. Num. + 1

Adunare Depl. dreapta, A, Q

START Deplasare dreapta


Circuit de Nu
Semnale Num. = 7 ?
END control
... de control
intern
TACT OUTBUS A Da
OUTBUS A

OUTBUS Q

Numrtor a) End b)

Fig. 3.14. Structura (a) i organigrama (b) circuitului de nmulire


20

Aceast structur poate fi folosit pentru operaii de adunare, scdere, nmulire i


mprire. UCP va trimite ctre unitatea de control, n afara liniilor START i TACT, patru linii,
prin care se va selecta operaia dorit. Unitatea de control trebuie s conin algoritmii i
pentru aceste operaii.
Operaii n virgul flotant
Pornind de la reprezentarea numerelor n virgul flotant n urmtoarea form:
X = XM 2XE
unde XM este mantisa n complementul fa de 2 n form normalizat, X E exponentul n
complementul fa de 2, putem definii operaiile aritmetice n forma:
X + Y = (XM2XE - YE + YM) 2YE
X - Y = (XM2XE - YE - YM) 2YE
X Y = (X Y ) 2XE + YE
M M
X Y = (XM YM) 2XE - YE
(pentru adunare i scdere s-a presupus XE YE).
Datorit faptului c numerele snt stocate n forma normalizat, dup efectuarea operaiei
cerute trebuie normalizat rezultatul. Astfel operaia de adunare poate fi descompus n
urmtorii pai:
a) compararea exponenilor prin scdere pentru a obine exponentul mai mic;
b) alinierea mantiselor prin hiftare, astfel ca exponenii s fie egali;
c) adunarea mantiselor;
d) normalizarea rezultatului.
Exponenii stocai n regitrii E1, E2 vor fi comparai prin scdere, exponentul mai mic va
fi pstrat ca fiind cel comun, iar mantisa corespunztoare exponentului mai mare va fi deplasat
cu E1-E2 poziii. Mantisa astfel obinut va fi nsumat cu cealalt mantis, nemodificat.
Rezultatul sumei este depus n registrul temporar R, i un circuit special, denumit detector de
zerouri, va numra zerourile nesemnificative de la nceputul mantisei (R). Acest numr este
folosit pentru deplasarea mantisei (aducerea n form normalizat), i se scade din exponent. n
caz c R=0 se seteaz i exponentul pe zero.

Magistrala de intrare

E1 E2 M1 M2 Compararea exponenilor
i alinierea mantisei

E1 - E2
Sumator 1 Deplasare 1

Adunarea mantiselor
Sumator 2

R
Detectare 0

Sumator 3 Deplasare 2 Normalizarea rezultatului

E3 M3

Magistrala de ieire

Fig. 3.15. Sumator n virgul flotant


21

Pentru a mrii viteza de calcul, se folosesc pipeline-uri aritmetice. Aceste devin rentabile,
dac snt alimentate continuu cu operanzi, de exemplu n cazul prelucrrii vectorilor. Cei patru
pai ai adunrii pot fi implementai ca patru nivele ale unui structuri pipeline. Diferena fa de
structura precedent reprezint regitrii care au fost ntrodui pentru a separa nivelele. Aceast
structur permite prelucrarea simultan a patru perechi de operanzi (fiecare pereche realizeaz
un alt pas al adunrii), i obinerea unui rezultat la fiecare pas. Regitrii avnd capacitatea de a
stoca un operand, trecerea de la un nivel la altul se realizeaz comandat de un semnal de tact,
obinndu-se un pipeline sincron. Frecvena semnalului de tact este determinat de timpul cel mai
lung de parcurgere al unui nivel, motiv pentru care sumatoarele, circuitele de deplasare i
circuitul detector de zero trebuie realizate n versiunea cea mai rapid i pe ct posibil cu timp
de parcurgere egal, pentru a evita timpii de ateptare.

Magistrala de intrare

E1 E2 M1 M2

Compararea exponenilor

Sumator 1

E4 E5 M4 M5

Alinierea mantisei

Deplasare 1

E6 M6 M7

Adunarea mantiselor

Sumator 2

E7 R

Detectare 0

Normalizarea rezultatului
Sumator 3 Deplasare 2

E3 M3

Magistrala de ieire

Fig. 3.16. Sumator n virgul flotant cu structur pipeline

Unitatea de control

Rolul unitii de control este de a extrage instruciunea din memorie, de a o interpreta i


de a trimite semnalele de control corespunztoare unitii de procesare. Se pot identifica dou
funcii ale unitii de control: secvenierea instruciunilor (metodele prin care se selecteaz
instruciunea ce urmeaz a fi executat) i interpretarea instruciunilor (metode de activare a
semnalelor de control corespunztoare instruciunii decodificate).
22

Secvenierea instruciunilor
Majoritatea instruciunilor unui program au un singur succesor. Din acest motiv, cea mai
simpl metod de implementare a secvenierii instruciunilor se realizeaz prin numrtoare de
program (PC), care se incrementeaz automat dup decodificarea unei instruciuni. n aceast
situaie nu este necesar specificarea adresei instruciunii urmtoare n codul instruciunii, dect
n situaii speciale: instruciuni de salt, apel de subrutin, ntreruperi. n cazul instruciunii de
salt, unitatea de control asigur ncrcarea paralel a numrtorului de program cu adresa
specificat n formatul instruciunii. Cnd se apeleaz o subrutin, adresa instruciunii
urmtoare apelului de subrutin este salvat automat n stiv de unitatea de control, se ncarc
numrtorul de program cu adresa de nceput a subrutinei; la instruciunea de revenire din
subrutin (RETURN), unitatea de control scoate adresa salvat n stiv, i o ncarc n
numrtorul de program.
Interpretarea instruciunilor
Se pot defini patru categorii de semnale:
- C''in - semnale de intrare de la alte uniti de control sau de la sistemul supervizor -
dac exist (semnalele de tip START, STOP i cele de sincronizare cu alte
componente);
- C''out - semnale de ieire spre alte uniti de control, indicnd starea UCP-ului
(operaie n curs, operaie terminat);
- C'in - semnale de intrare de la unitatea de procesare, care influeneaz direct
semnalele de ieire (semnale de eroare, flaguri, depire);
- C'out - semnale de ieire care controleaz fluxul de date i selecteaz operaia prin
unitatea de procesare.
Funcia de baz a unitii de control este generarea acestor semnale C'out.

C''in C''out
Unitatea de
control

C'in C'out

Intrare Ieire
date Unitatea de date
procesare

Fig. 3.17.

Unitatea de control cablat


Una dintre metodele de implementare se bazeaz pe numrtoare secveniale, care constau
dintr-un numrtor modulo k, a crui ieiri au fost conectate la un decodificator.
Decodificatorul genereaz la ieire k impulsuri consecutive, decalate cu o perioad de tact,
denumite faze. Exist posibilitatea de pornire a numrtorului prin semnalul Start (ncepnd cu
faza 1), i de oprire prin semnalul Stop, care cauzeaz tergerea numrtorului.
23

Start Start
S 1 Tact
Stop
Numrtor Numrtor secvenial
Stop modulo k
R 0 Reset Tact modulo k

Reset
Tact
...
Validare ...
Reset Decodificator 1/k

Perioada ...
a) tactului b)

Fig. 3.18. Numrtor secvenial a) schema logic b) simbolul

Realizarea unitii de control al multiplicatorului cu numrtoare secveniale pornete de


la urmtoarea schem logic:

S0
Start

Da
Q(7) = 0?

S1 C1 Nu Faza 1
S3 C3 S6 C6
A 0
A A+ M Mag. ie. A
M Mag. intr.

S2 C2
S4 C4 S7 C7
Num. 0
Deplas. A,Q Mag. ie. Q Faza 2
Q Mag. intr.

S0
Da
Num. = 7? Stop

Nu Faza 3
S5 C5
Num. Num. + 1

Pas 1 Pas 2 Pas 3

Fig. 3.19.

Se numeroteaz strile (Si), i se completeaz organigrama cu semnalele de ieire Ci.


Bucla cea mai lung conine trei stri, care vor fi repetate de opt ori. Se realizeaz un
numrtor secvenial modulo 3, care genereaz trei faze. Paii care nu snt inclui n bucl, vor
24

fi sincronizai tot cu aceleai faze. Cele trei bistabile FFi vor face distincia dintre pai. Toate
semnalele care apar n blocuri de decizie, reprezint intrri de la unitatea de procesare.

Start
Stop
Tact Numrtor secvenial
modulo 3
Reset


ncrcare M
START
S 1 C1
FF1
ncrcare Q
R 0
C2

Q(7)
Adunare
S 1 C3
FF2
Deplasare
R 0
C4
NUM.
Incrementare
C5

Ieire A
S 1 C6
FF3
Ieire Q
R 0
C7
END

Fig. 3.20.

Varianta simplificat a unitii de control pentru UCP interpreteaz urmtorul set de


instruciuni:
- LOAD X - transfer coninutul locaiei de memorie de la adresa X n acumulator;
- STORE X - transfer coninutul acumulatorului n memorie la adresa X;
- ADD X - A = A + M(X);
- AND X - A = A M(X);
- JMP X - salt necondiionat la adresa X;
- JZ X - salt la adresa X dac coninutul acumulatorului este 0;
- NOT - complementarea coninutului acumulatorului;
- RSHIFT - deplasare spre dreapta a coninutului acumulatorului.
Pentru a realiza unitatea de control, se descomune fiecare instruciune n microoperaii, se
determin semnalele de control i numrul de stri pe baza organigramei din fig. 3.21. Se
presupune c durata fiecrei microoperaii este egal cu un ciclu, exceptnd READ M i WRITE M,
care au lungimea de doi ciclii. Instruciunea cea mai lung are 8 cicli.
25

Start

No
UCP activ? Stop

Yes

AR PC

READ M

PC PC + 1
IR DR(OP)

No No No No No No No
LOAD? STORE? ADD? AND? JMP? JZ? NOT?

Yes Yes Yes Yes Yes Yes Yes

AR DR(ADR) AR DR(ADR) AR DR(ADR) AR DR(ADR) No


AC = 0?

Yes
READ M DR AC READ M READ M

AC DR WRITE M AC AC + DR AC AC DR PC DR(ADR) PC DR(ADR) AC AC SHIFT AC

Fig. 3.21.

Semnalele de control care rezult din organigram snt:


- c0 AC AC + DR; - c7 AR DR(ADR);
- c1 AC AC L DR; - c8 PC DR(ADR);
- c2 AC NOT AC; - c9 PC PC + 1;
- c3 READ M; - c10 AR PC;
- c4 WRITE M; - c11 IR DR(OP);
- c5 DR AC; - c12 SHIFT AC.
- c6 AC DR;

C0
C1 ALU

C2

C3
C4 AC C12

Memoria C5 C6

D
R

C7 C8 C11

PC C9 IR

A
R C10 C0
AC = 0 Unitatea de C1
control ...
C12

Fig. 3.22. Structura simplificat a UCP


26

Unitatea de control este realizat cu un numrtor secvenial modulo 8, care va fi resetat


dup i pai n cazul instruciunilor care dureaz i ciclii (i < 8). Pe baza organigramei se scriu
ecuaiile pentru fiecare semnal de control ci, implementat de circuitul combinaional.
Pentru semnalul de citire din memorie (c3):
c3 = 2 + 6 (LOAD + ADD + AND).

Numrtor secvenial modulo 8


LOAD
STORE
ADD
AND
Decodificator JMP
de instr. Circuit combinaional
JZ
NOT
RSHIFT

IR Z C0 C1 ... C12

Fig. 3.23. Unitatea de control al UCP

Unitatea de control microprogramat


Dac numrul de instruciuni crete, sau structura UCP-ului devine mai complex,
realizarea cablat a unitii de control este dificil. Orice modificare ulterioar (pentru a
corecta o eroare sau a modifica setul de instruciuni) cere reproiectarea unitii de control.
Microprogramarea nseamn stocarea semnalelor de control i de secveniere ntr-o
memorie cu acces aleator - denumit memorie de control. Semnalele de control care snt
activate la un moment dat, formeaz o microinstruciune, i snt extrase din memoria de
control n mod asemntor extragerii instruciunilor unui program din memoria principal. Un
set de microinstruciuni alctuiesc un microprogram. Sistemele astfel realizate snt mult mai
flexibile, permind modificri ulterioare, dar snt mai lente dect cele cablate. Fiecare
instruciune al UCP constituie un microprogram, i este interpretat n timp real. Emulatorul
este un set de microprograme care interpreteaz totalitatea instruciunilor unui procesor.
Cea mai simpl form a unei microinstruciuni conine dou cmpuri: cmpul de control
(totalitatea liniilor de control care se activeaz) i cmpul de adres (adresa urmtoarei
microinstruciuni). Fiecare bit al cmpului de control corespunde unui semnal de control, i
valoarea 1 reprezint starea activ a liniei.
Pornind de la organigrama care urmeaz s fie realizat, se numr i se codific strile i
intrrile. Acestea vor reprezenta liniile de adrese. Numrul liniilor de date este suma liniilor de
stare i a celor de control. Se alege un ROM de dimensiune corespunztoare i un registru de
adrese care asigur secvenierea instruciunilor.
Exemplu: Proiectarea unitii de control al multiplicatorului.
27

Cele apte stri pot fi codificate pe trei bii, care mpreun cu cele dou intrri (Q(7),
Num.) vor forma cele cinci linii de adrese. Din zece linii de date apte reprezint
semnale de control, iar trei semnale de stare. Se alege un ROM cu 32 (2 5) de locaii
cu 10 bii, i un registru de adrese (cu 5 bii), a crei ieiri se modific sincron cu
semnalul de tact.

A4 D9 C7 Adresa curent Adresa Cmp de control


D8 C6 urmtoare
A3
... N Q7 C7 C6 C5 C4 C3 C2 C1
R
A2 O
D3 C1 S0 X X 0 0 0 0 0 1 0 0 0 0 0 0 0
M
D2
A1 S1 X X 0 0 1 0 1 0 0 0 0 0 0 0 1
D1
A0 D0 X 0 0 1 0 0 1 1 0 0 0 0 0 1 0
S2
X 1 0 1 0 1 0 0 0 0 0 0 0 1 0
Stare
S3 X X 0 1 1 1 0 0 0 0 0 0 1 0 0
0 X 1 0 0 1 0 1 0 0 0 1 0 0 0
S4
1 X 1 0 0 1 1 0 0 0 0 1 0 0 0
Registru
de adrese X 0 1 0 1 0 1 1 0 0 1 0 0 0 0
Q7 S5
X 1 1 0 1 1 0 0 0 0 1 0 0 0 0
Ck R Num. S6 X X 1 1 0 1 1 1 0 1 0 0 0 0 0
Tact Start S7 X X 1 1 1 0 0 0 1 0 0 0 0 0 0

Fig. 3.24. Structura unitii de control pentru multiplicator, i coninutul ROM-ului

Exist dou ci de a reduce dimensiunea ROM-ului din structura de baz prezentat:


- prin codificarea informaiilor de control;
- prin schimbarea modului de adresare.
Formatul necodificat, denumit microinstruciune orizontal, are avantajul de a genera
direct semnalul de control, dar cere o dimensiune mare pentru cmpul de control. Prin
codificarea complet a cmpului de control se reduce considerabil numrul liniilor de date ale
ROM-ului. Astfel se obin microinstruciuni verticale; semnalele de control vor fi decodificate,
adic la un moment dat va fi activ un singur semnal de control. n majoritatea situaiilor trebuie
asigurat activarea simultan a mai multor semnale de control, care se obine prin codificarea
parial a cmpului de control. Pornind de la organigram, se citete numrul maxim de semnale
de control care apar simultan, formnd tot attea grupuri distincte, n aa fel nct n nici un grup
s nu existe semnale care apar simultan. Fiecrui grup se ataeaz un decodificator.

Cmpuri de control Cmp de control Cmpuri de control

a) b) c)

Linii de control Linii de control Linii de control

Fig. 3.25. Microinstruciuni necodificate (a), complet codificate (b) i parial codificate (c)
28

Un numr mare de intrri are ca urmare creterea numrului de locaii n ROM. Intrrile
fiind relativ rar testate, valoarea lor n majoritatea strilor este indiferent. Din acest motiv
coninutul mai multor locaii din memorie este identic. O alt posibilitate pentru a specifica
adresa memoriei este folosirea numrtorului de microprogram (PC). Astfel adresa
instruciunii urmtoare va fi coninut de PC, i nu trebuie specificat n mod explicit, dect
la instruciunile de salt. Testarea intrrilor n cazul instruciunilor de salt condiionat se
realizeaz cu ajutorul unui multiplexor (MUX), condiia de selectare fiind nscris n
microinstruciune.
Exemplu: Specificarea condiiei de selectare pentru dou instruciuni de salt condiionat.
s0 s1 interpretare
0 0 fr salt, numrtorul de PC va fi incrementat automat
0 1 salt dac intrarea v1 = 1
1 0 salt dac intrarea v2 = 1
1 1 salt necondiionat
n cazul instruciunilor de salt, dac condiia este indeplinit, PC va fi ncrcat paralel cu
adresa de salt specificat n microinstruciune. Datorit faptului c instruciunile de salt nu
conin cmpuri de control, cmpul de adrese i cmpul de control pot fi suprapuse.

Cmp de control Selectare condiie Adres de salt

0 0
a) b)

Fig. 3.26. Formatul microinstruciunilor operaionale (a) i de salt (b)

Pentru a reduce dimensiunea ROM-ului, structura unitii de control al multiplicatorului


trebuie modificat.
29

START
Tact
Adresa de salt

0 0 Reset
Q(7) 1 ncrcare PC
MUX
Num. 2
1 3

Selectare ROM
condiie

CMDR

Decodificator

END
Semnale de control

Fig. 3.27.

Se va alege un ROM cu 16 locaii a 6 bii, care va fi nscris conform tabelului, locaiile


nespecificate reprezentnd situaii de eroare, care se vor nscrie cu condiia de oprire.

Sel. Cmp contr.


Adr. curent cond. Comentariu
sau adr. salt
0 0 0 0 0 0 0 0 0 1 A 0, M Mag. int.
0 0 0 1 0 0 0 0 1 0 Num. 0, Q Mag. int.
0 0 1 0 0 1 0 1 0 0 Salt dac Q7 = 0
0 0 1 1 0 0 0 0 1 1 A A + M.
0 1 0 0 0 0 0 1 0 0 Deplasare dreapta
0 1 0 1 1 0 1 0 0 0 Salt dac Num. = 7
0 1 1 0 0 0 0 1 0 1 Num. Num. + 1
0 1 1 1 1 1 0 0 1 0 Salt necondiionat
1 0 0 0 0 0 0 1 1 0 Mag. ie. A
1 0 0 1 0 0 0 1 1 1 Mag. ie. Q
1 0 1 0 1 1 1 0 1 0 Oprire

Fig. 3.28.

Unitatea de control pentru UCP simplificat (vezi fig. 3.22.) reprezint de fapt un
emulator al celor opt tipuri de instruciuni. Fiecare dintre ele are o parte comun de extragere,
realizat de microprogramul de la adresa FETCH, dup care microprogramul se continu de la
o adres care este dependent de coninutul registrului de instruciuni. Se poate folosi, de
exemplu, un PLA care genereaz adresa de intrare a microprogramului, n funcie de tipul
instruciunii. Un bit al cmpului de selecie asigur microinstruciunea salt la IR. Programul
pentru acest emulator poate fi descris n form simbolic:

FETCH: AR PC;
30

READ M;
PC PC + 1, IR DR(OP);
salt la IR;
LOAD: AR DR(ADR);
READ M;
AC DR, salt la FETCH;
STORE: AR DR(ADR);
DR AC;
WRITE M, salt la FETCH;
ADD: AR DR(ADR);
READ M;
AC AC + DR, salt la FETCH;
AND: AR DR(ADR);
READ M;
AC AC DR, salt la FETCH;
JUMP: PC DR(ADR), salt la FETCH;
JUMPZ: dac AC 0, salt la FETCH;
PC DR(ADR), salt la FETCH;
COMP: AC NOT AC, salt la FETCH;
RSHIFT: RIGHT-SHIFT (AC), salt la FETCH;
n cazul n care se extinde setul de instruciuni, de exemplu cu o instruciune de tergere a
acumulatorului (CLEAR), nu trebuie modificat structura hardware, ci se adaug doar o
secven la microprogram:

CLEAR: DR AC;
AC NOT AC;
AC AC DR, salt la FETCH;
31

Registru instruciuni

Cod instruciune

PLA
Adresa de salt

MUX

Incrementare
0 0
AC = 0 1 ncrcare PC Reset
MUX
2
1 3

Selectare
condiie ROM

CMDR

Decodificator

Semnale de control

Fig. 3.29. Structura unitii de control al UCP


32

4. Organizarea memoriei
Memoria unui sistem de calcul poate fi de trei tipuri:
- memoria intern a procesorului - cu dimensiuni foarte reduse, este cea mai rapid -
se folosete la stocarea temporar a instruciunilor i datelor (de ex. registre);
- memoria principal (RAM) - folosit la stocarea instruciunilor i datelor, fiind activ
doar n timp ce calculatorul lucreaz - CPU are acces direct la locaiile lui;
- memoria secundar - are capacitate mare de stocare, dar este foarte lent - conine
datele care snt folosite temporar (de ex. disc magnetic).
Dup modul de acces, se pot distinge:
- memorii cu acces aleator (RAM) - timpul de acces la orice locaie de memorie este
acelai, indiferent de poziie (adres);
- memorii cu acces serial - accesul la o locaie de memorie se realizeaz ntr-o ordine
predeterminat, timpul de acces difer n funcie de poziie, i snt caracterizate
de timpul de cutare.

D2
D1
D0
D Q D Q D Q

Cuvnt 0
CK CK CK

D Q D Q D Q

Cuvnt 1
CK CK CK

D Q D Q D Q
A1
A0 Cuvnt 2

CK CK CK

D Q D Q D Q

Cuvnt 3

CK CK CK

CS
WR D2

D1

D0

RD

Fig. 4.1. Organizarea RAM-ului de 4x3 bii


33

RAM-ul este organizat pe cuvinte. Citirea i scrierea datelor se realizeaz simultan la toi
biii care formeaz cuvntul. O structur posibil pentru RAM este prezentat n fig. 4.1.
Semnalul de selecie (CS), format din restul liniilor de adrese, condiioneaz operaiile de citire
i scriere pentru ntreaga memorie. Liniile de adrese (A0, A1) selecteaz cuvntul dorit. Ieirile
vor fi realizate cu circuite three-state, astfel pot fi cuplate direct pe magistrala de date.
Semnmalele de citire i scriere (RD, WR) snt generate de procesor la executarea
instruciunilor corespunztoare.

a) Ciclu de citire b) Ciclu de scriere


T1 T2 T3 T1 T2 T3

Tact Tact

Magistrala Magistrala
de adrese Adresa locaiei citite de adrese Adresa locaiei scrise

Magistrala Magistrala
Date Date
de date de date

RD WR

c) Ciclu de citire
T1 T2 TW T3

Tact

Magistrala
de adrese Adresa locaiei citite

Magistrala Date
de date

RD

READY

Fig. 4.2. Ciclu de citire (a.), ciclu de scriere (b.) i ciclu de citire cu stri de ateptare (c.)

Adresa locaiei ce urmeaz a fi citit sau scris trebuie trimis pe magistrala de adrese de
ctre UCP nainte de a genera semnalele de comand corespunztoare, pentru a putea fi
decodificate. Datorit diferenei vitezei de lucru dintre UCP i memorii, exist situaii cnd
memoria nu poate fi citit n timpul cerut. n aceste cazuri memoria poate cere intercalarea
unor stri de ateptare prin activarea liniei READY. Aceast linie este testat de UCP n T 2.
Dac este activ, se intercaleaz o stare de ateptare (T W), la sfritul creia linia este din nou
testat. Ciclul se repet pn cnd memoria dezactiveaz aceast linie, dup care urmeaz
citirea propriu-zis.
Exist posibilitatea ca dou procesoare s aib acces la aceai locaie de memorie printr-o
organizare special, denumit memorii cu dublu port.

INT INT

RD / WR RD / WR

READY RAM READY


Procesor B Procesor A
cu dublu port
Mag. adr. Mag. adr.

Mag. date Mag. date

Fig. 4.3.
34

Construcia acestor memorii permite citirea lor simultan de ctre dou procesoare, prin
dublarea registrelor de ieire. Dac un procesor a nceput s scrie n memorie, se blocheaz
scrierea sau citire de ctre cellalt procesor, care va intra n stare de ateptare prin activarea
liniei READY. Logica de generare a ntreruperilor este opional, i este folosit pentru
sincronizarea procesoarelor. n cazul n care un procesor a scris o locaie de memorie, cellat
procesor va primi un semnal de ntrerupere pentru a iniia citirea mesajului.

Metode de extindere a capacitii de memorie

Dac spaiul de memorie adresat direct de UCP este prea mic (16 linii de adrese - 64
kbyte), exist mai multe metode de extindere a capacitii de memorie.
Organizare n pri suprapuse (overlay; rezolvare prin soft)
Programul i datele snt mprite de programator pentru a le organiza n modul overlay.
Partea principal a programului, care rspunde i de gestionarea prilor, este permanent n
memoria operativ, dar la un moment dat doar un singur overlay este ncrcat n memoria
principal, restul fiind stocate n memoria secundar. Cnd se cere o dat dintr-o parte extern,
programatorul va avea n vedere ca aceea parte s fie ncrcat n memoria principal. Dac se
modific datele din memoria principal, aceea parte trebuie suprascris i n memoria principal.
Organizare n blocuri suparpuse (rezolvare prin hard)
Exist mai multe blocuri de memorii fizice, toate cuplate la aceleai adrese. O logic de
selectare a blocurilor va asigura adresarea doar unui singur bloc de memorie la un moment dat.
Acest circuit de selectare este cuplat de UCP ca un periferic, adic operaia de selectare este
realizat de o instruciune OUT.

Selectare bloc n

Selectare bloc 2
... Selectare bloc 1

Lolgica de
Memorie Memorie Memorie
selectare bloc 0 bloc 1 ... bloc n
blocuri

Mag. adrese
Mag. date
UCP
Mag. comand

Fig. 4.4.

Dezavantajul acestei metode, ca urmare a mpririi rigide n blocuri, este lipsa posibilitii
de comunicare ntre blocuri. Datele dintr-un bloc nu pot fi citite de un program care se afl
ntr-un alt bloc. Din acest motiv, doar o parte a memoriei principale va fi organizat n acest
mod, iar partea care este comun asigur comunicarea.
Adresare indexat
Fa de metoda precedent, la acest organizare a memoriei, logica de selectare a
blocurilor este realizat de UCP prin schimbarea modului de adresare. Adresa logic va fi
mprit n dou cmpuri: index i deplasament. Prin cmpul index se selecteaz una dintre
registrele index din UCP. Registrul selectat conine adresa de nceput al unui bloc de memorie.
Deplasamentul va indica adresa locaiei din cadrul blocului de memorie selectat.
35

Adresa logic
Adresa din cadrul blocului
Index Deplasament

Memorie ...
Memorie ... ... Memorie ...
bloc 0 bloc 1 bloc n
Registre index
Adresa de ncep. bl. 7

Adresa de ncep. bl. 2


Adresa de ncep. bl. 12

... ... ...

Adresa de ncep. bl. 2


Adresa de nceput bloc

Fig. 4.5.

Adresare virtual prin paginare


Baza adresrii virtuale este definirea unui spaiu de adrese (denumit memorie virtual),
care nseamn de fapt o memorie secundar, i este mult mai mare ca memoria operativ.
Memoria virtual este mprit n pagini de dimensiuni egale. n memoria operativ exist un
tabel de pagini, care conine informaii despre fiecare pagin: adresa paginii din memoria
operativ - dac a fost ncrcat - i biii de stare (drepturile de acces la pagin, prezena
paginii n memoria operativ, existena modificrilor, ordinea de acces al paginilor).
O adres virtual (cea vzut de utilizator) este format din numrul paginii i un
deplasament. Procesorul, prin unitatea de gestionare a memoriei, caut n tabel informaiile
corespunztoare numrului de pagin. Dac pagina este prezent n memoria principal, scoate
adresa de nceput al paginii, i, adugnd deplasamentul, formeaz adresa fizic a informaiei
cerute. Totodat modific biii de stare care indic ordinea de acces al paginilor. Dac n
memoria principal nu este prezent pagina, aceasta va fi ncrcat din memoria secundar,
completnd totdat i tabela de pagini. Exist posibilitatea ca n memoria principal s nu fie
spaiu pentru ncrcarea paginii. n acest caz pagina cea mai demult folosit este nlocuit cu
pagina cerut. Dac n ea au survenit modificri, va fi copiat n memoria secundar.
ntreaga operaie este realizat de unitatea de gestionare a memoriei, fr intervenia
utilizatorului, care simte doar ncetinirea rulrii programului.
Posibiliti de a reduce timpul de acces la o dat care nu se afl n memoria operativ:
- realizarea tabelei de pagini n unitatea de gestionare a memoriei, sau cel puin a unei
pari a tabelei, care conine informaiile despre paginile din memoria operativ;
- ntroducerea unei tehnici mai complicate n alegerea paginii care va fi nlocuit,
pentru a alege, pe ct posibil, o pagin care nu a fost modificat, evitnd astfel
copierea ei.
Adresare virtual prin segmentare
La aceast metod memoria virtual este mprit n segmente de lungimi variabile.
mprirea este executat de sistemul de operare i/sau de utilizator, urmrind mai flexibil
structura programului.
Tabela de segmente, n afara celor prezentate mai sus, conine i lungimea segmentului.
Problema apare la nlocuirea unui segment din memoria operativ, datorit diferenelor de
lungimi. Dac segmentul care trebuie ncrcat este mai mic dect cel nlocuit, n memoria
operativ rmne un gol. n cazul n care nu exist un segment mai mare care poate fi nlocuit,
se nlocuiesc mai multe segmente. Dup o serie de nlocuiri, memoria principal devine
fragmentat datorit multitudinii de goluri. Cnd un segment nicicum nu mai poate fi ntrodus
36

din cauza golurilor, automat se reorganizeaz memoria principal, micnd toate segmentele
pentru compactare. Operaia, numit relocare dinamic, necesit i actualizarea tabelei de
segmente.

S3 S3 S3 S3
S1 S1
S4

S2 S2 S2 S5 S2 S5

S4 S4

Fig. 4.6.

Aceast reorganizare dureaz n timp, dar poate fi evitat prin combinarea metodei de
segmentare i paginare. n acest caz segmentele snt compuse din mai multe pagini mici, de
aceeai dimensiuni.

Memorii asociative

Una din problemele importante este cutarea unei date n memorie. La memoriile clasice,
aceasta se realizeaz prin citirea succesiv a fiecrei locaii de memorie, i compararea lui cu
data cutat. Memoriile asociative, adresabile prin coninut, asigur cutarea simultan a datei
cerute n ntreaga zon de memorie. De obicei, numai o parte a coninutului (cmpul cheie) este
folosit n cutare, restul informaiei poate fi citit dup ce s-au gsit locaiile. Un circuit de
selectare va asigura citirea secvenial a locaiilor la care s-a constatat cioncidena cmpului
cheie.
Celula de 1 bit al memoriei asociative const dintr-un bistabil de tip RS, folosit pentru
stocarea datei, i un circuit de detectare a coincidenei.

A WR

Fig. 4.7.

nscrierea se realizeaz prin aplicarea adresei (A), a datelor de intrare (I), activarea liniilor
de validare nscriere (WR) i validare intrare (C). La citire se aplic adresa i se dezactiveaz
liniile de validare intrare i validare nscriere, i se obine data la ieire (O). Data cutat se
aplic la intrare, se activeaz linia de validare intrare, adresele i validare nscriere snt
dezactivate, iar la ieirea de coinciden (M) se obine 0 dac coninutul celulei corespunde cu
37

cea cutat. Ieirea de coinciden provine de la o poart cu colector n gol, pentru a putea fi
legat mpreun cu ieirile asemntoare din celelalte celule, realiznd un I cablat.
Pentru a realiza din celule pe 1 bit o memorie asociat organizat pe cuvinte de lungime
fix, liniile de adres, de validare nscriere i de coinciden al unui cuvnt vor fi legate
mpreun; la fel i liniile de validare intrare, de intrare i de ieire de acelai rang de la toate
locaiile memoriei.

A0
A1

A WR A WR A WR
C O C O C O
Cuvnt 0
I M I M I M

M0

WR

A WR A WR A WR
C O C O C O
Cuvnt 1
I M I M I M

C0 M1
C1
C2

I0 O0 I1 O1 I2 O2

Fig. 4.8. Memorie asociativ 2 cuvinte x 3 bii

Liniile de validare intrare C0, C1, C2 vor fi activai numai pentru bitul care intervine n
cutare. Liniile de coinciden vor fi n zero logic numai dac toi biii unui cuvnt care intervin
n cutare vor coincide cu coninutul locaiei.

Intrare

Registru
de intrare

Registru masc

Cheie
Coinciden
Memorie Selecie Circuit
asociativ de selecie

Registru
de ieire

Ieire

Fig. 4.9.
38

Cutarea unui cuvnt se realizeaz simultan la toate cuvintele memoriei. Registrul masc
va activa liniile de validare intrare numai la biii corespunztori cuvntului cheie. Circuitul de
selecie are rolul de a genera adrese succesive n cazul n care exist mai multe locaii a cu un
coninut identic cu cel cutat. Registrul de ieire va avea nscris, pe rnd, coninutul complet al
locaiilor la care s-a gsit coinciden.
Memoriile asociative snt folosite pentru implementarea tabelelor de pagini sau de
segmente n adresarea virtual. Astfel aceste operaii devin mai rapide.

Memorii cache

Dezvoltarea tehnologiilor a condus la crearea unitilor centrale de prelucrare foarte


rapide (microprocesoare cu frecven de tact de peste 60 MHz). RAM-urile dinamice, folosite
pentru realizarea memoriei principale, nu au putut rspunde cerinelor de vitez, fiecare ciclu
de citire fiind lungit prin intercalarea strilor de ateptare. RAM-urile statice, care au nlturat
aceste neajunsuri, snt foarte costisitoare, i au dimensiuni mult mai mari la aceleai capaciti
de stocare. O soluie de compromis este intercalarea ntre procesor i memorie principal a
RAM-urilor statice (numite memorii cache). Memoria cache, de dimensiune mult mai redus,
conine copia datelor din memoria principal, care snt cel mai frecvent folosite. Copierea
datelor n memoria cache se realizeaz pe blocuri (eventual pe pagini), i nu la nivel de octei.
Dac datele snt n interiorul aceluia bloc, timpul de acces se reduce foarte mult (aproximativ
de 10 ori), n caz contrar, datorit copierilor succesive, timpul de acces crete.
ntr-un sistem pot apare dou tipuri de memorii cache: una pentru instruciuni i una
pentru date. Memoria cache pentru instruciuni nu se modific, deci controlerul ei nu va
urmrii coninutul ei, ci doar instruciunile da salt, cnd cachul trebuie golit, i rencrcat de la o
adresa nou. Problema neconcordanei dintre cele dou memorii n cazul memoriei cache
pentru date poate fi rezolvat prin:
- transcrierea imedat a modificrilor aprute n una din memorii n cealalt;
- transcrierea prin intermediul unui buffer (modificarea aprut este rapid transcris n
buffer, din care va fi ulterior transferat, cnd magistrala este liber - orice cerere
venit de la un alt procesor va fi interzis n timpul transferului);
- transcrierea condiionat de o cerere venit de la un alt procesor pentru o locaie
care a fost modificat, sau de nlocuirea blocului modificat din cache.
Exist dou posibiliti de conectare a memoriilor cache: ele se pot lega de procesor sau
de memoria operativ.

Procesor 1

Controler RAM Memoria


Memorie cache Controler cache
cu dublu port principal

Magistral sistem

Procesor 2 Echipamente I/O

Fig. 4.10. Cache legat de procesor


39

n cazul legrii cache-ului de procesor operaiile de intrare/ieire sau accesul unui alt
procesor la memoria principal, pot fi suprapuse cu operaiile de citire/scriere a procesorului 1.
n aceast situaie coninutul blocului din memoria cache i din memoria operative trebuie s
corespund. Orice modificare survenit n una din memorii se va nscrie n cealalt memorie,
astfel controlerul cache devine foarte complex.

Echip. I/O Procesor 1 Procesor 2 ... Procesor n

Cache

Memorie

Fig. 4.11. Cache legat de memorie

Dac cache-ul se leag de memorie, ea este comun pentru toate procesoarele. Astfel
magistrala sistemului nu va fi eliberat, dar orice modificare n memoria cache va fi vzut de
toate procesoarele, deci blocul trebuie transcris numai dac se va nlocui.
Cnd se cere o dat, se verific dac este sau nu ncrcat deja n cache, cutnd adresa ei
ntr-o tabel. Tabela de coresponden a adreselor din memoria cache i memoria operativ
poate fi realizat cu memorii asociative.

Controler cache

Magistrala
de adrese Memorie
asociativ

Memoria
Memorie operativ
cache
Magistrala
de date

Fig. 4.12.

n anumite situaii, ntreaga memorie cache poate fi memorie asociativ. n acest caz
memoria cache este organizat pe cuvinte, de lungimi egale. Data cerut va fi cutat rapid n
memoria cache, i dac ea nu exist, va fi adus din memoria operativ.
40

5. Microprocesorul 80386
Este un procesor cu o magistral de date i de adrese pe 32 de bii, capabil de a adresa 4
Gbyte (232) memorie fizic i 64 Tbyte (246) memorie virtual. Are nglobat o unitate de
gestionare a memoriei i mecanisme de protecie, care faciliteaz sistemele de operare multi-
user. i-a pstrat compatibilitatea cu toate procesoarele precedente ale familiei 80X86. Are o
structur pipeline cu ase nivele, care permite simultanetinatea extragerii, decodificrii,
executrii instruciunilor, gestionrii memoriei i controlului magistralei. Unitatea de control al
magistralei realizeaz legtura ntre microprocesor i mediu, gestionnd cererile de date, de cod
sau predarea magistralei. Unitatea de extragere a instruciunilor stocheaz instruciunile primite
de la unitatea de control al magistralei ntr-o coad de ateptare de 16 byte. Instruciunile snt
decodificate, descompuse n microoperaii, i stocate ntr-o alt coad de ateptere. Unitatea de
execuie conine un set de registre, subuniti de adunare i de nmulire. Unitile de
segmentare i paginare transform adresele logice n adrese fizice.

Registre

Sumare - iftare Controlul magistralei

nmulire - mprire

Registre segment Extragere instruciuni

Translator de segment List instruciuni

Memorie asociativ Decodificare

Translator de pagin Instr. decodificate

Fig. 5.1. Arhitectura microprocesorului 80386

Registre de uz general

Microprocesorul conine opt registre de 32 bii (EAX, EBX, ECX, EDX, ESP, EBP, ESI,
EDI), accesul pe ultimii doi byi putndu-se realiza i separat (AX, BX, CX, DX, SP, BP, SI,
DI). Patru dintre ele (AX, BX, CX, DX) formeaz o pereche de dou registre (AH i AL).

EAX

AX

AH AL

Fig. 5.2.
41

Registrele ESP, EBP snt folosite ca indicatoare de stiv, iar ESI, EDI pentru indexare i
operaii cu iruri.

Registre segment

Procesorul are 6 registre segment denumite CS, DS, SS, ES, FS, GS, care permit
separarea segmentelor de cod, date, stiv i un segment definit de utilizator, asigurnd
modularitatea programelor:
- CS - adresa segment al programului n execuie;
- DS - adresa segmentului de date curent;
- SS - adresa segment al stivei;
- ES, FS, GS - conin adresa a 3 segmente (numite extrasegment) definite de
utilizator, folosite concurent.

Flaguri

Procesorul conine un registru de 32 de bii pentru flaguri, avnd urmtoarea structur:

31 16 15 0

VM RF // NT IOPL OF DF IF TF SF ZF // AF // PF // CF EFLAGS

Fig. 5.3.

- CF (transport) - se nscrie n urma operaiilor aritmetice pe 8 sau 16 bii, dac apare


transport sau mprumut, folosit de asemenea n operaiile de shiftare sau rotire;
- PF (paritate) - valoarea '1' indic paritate impar;
- AF (transport auxiliar) - folosit n aritmetica BCD, indicnd un transport de la bitul al
4-lea;
- ZF (zero) - insciindu-se indic 0 ca rezultat al operaiei aritmetice;
- SF (semn) - are valoarea '1' pentru numere negative;
- OF (depire) - operaia aritmetic a depit capacitatea prevzut;
- TF (trap) - permite executarea pas cu pas al instruciunilor;
- IF (ntrerupere) - valideaz ntreruperile externe dac este setat pe '1';
- DF (direcie) - indic direcia operaiilor pe iruri, incremental pentru '0' sau
decremental pentru '1';
- VM (mod virtual) - trecerea procesorului din mod protejat n mod real;
- IOPL (nivelul de privilegiu al operaiilor de I/O) - garanteaz dreptul la operaiile de
intrare-ieire;
- NT - valoarea '1' indic necesitatea taskului curent de a se rentoarce la taskul
apelant;
- RF - folosit n depanare pentru a fora executarea unei instuciuni, este ters dac
operaia s-a executat cu succes.

Registre speciale

Registrele care conin adresa de nceput a celor patru tabele de descriptori segment snt:
- TR - registrul stare task;
- IDTR - registrul tabelei de descriptori ai ntreruperilor;
- GDTR - registrul tabelei descriptorilor globali;
42

- LDTR - registrul tabelei descriptorilor locali.


Registrele de control, CR0, CR1, CR2, CR3 definesc starea procesorului.
CR0 conine cuvntul stare main, avnd urmtoarea structur:

31 0
PG Rezervat ET TS EM MP PE CR0

Fig. 5.4.

- PE - trecerea n mod protejat;


- MP - folosit mpreun cu bitul TS pentru a determina, dac instruciunea WAIT va
genera o ntrerupere intern de 'coprocesor nu este prezent';
- EM - emulare coprocesor - dac are valoare '1' va genera o intrerupere intern
('coprocesor nu este prezent') pentru fiecare instruciune coprocesor permind
astfel emularea; pentru '0' va executa instruciunile respective pe un 80287 sau
80387;
- ET - tipul coprocesorului (80287 sau 80387);
- TS - schimbare taskuri.
CR1 este rezervat, iar CR2 i CR3 folosit de mecanismul de paginare.
Registrele de depanare snt:
- DR0, DR1, DR2, DR3 - conin adresa a 4 puncte de oprire;
- DR4, DR5 - rezervate;
- DR6 - registru de control al punctelor de oprire;
- DR7 - registru stare al punctelor de oprire.

Tehnici de adresare

Setul de instruciuni a procesorului 80386 conine informaii asupra tipului operandului,


precum i a adresei acestuia. Tipul operandului poate fi bit, octet, cuvnt, cuvnt dublu, cuvnt
cu trei, patru i zece octei.
Modurile de adresare snt:
- adresarea imediat - codul instruciunii conine operandul (MOV AL,4; MOV
EBX,0ABCDFFFFH);
- adresarea prin registru - operandul este stocat ntr-un registru intern al
microprocesorului (MOV EBX,EAX);
- adresarea direct a memoriei - codul instruciunii conine partea de offset a adresei
operandului, registrul segment folosit este DS (MOV AX,adr);
- adresarea indirect prin registru - partea de offset a adresei operandului se afl n
una din registrele SI, DI, BX, BP (MOV EAX,[BX]);
- adresarea relativ la baz - adresa efectiv a operandului se calculeaz adunnd
coninutul registrului BX sau BP cu deplasamentul specificat n codul
instruciunii, schimbnd coninutul registrului de baz, avem acces la acelai
cmp al diferitelor nregistrri (MOV CX,[EBX+4]);
- adresarea indexat - adresa efectiv a operandului se calculeaz adunnd
deplasamentul cu coninutul registrului index, unde deplasamentul indic adresa
de nceput a tabelei, iar coninutul registrului index selecteaz elementul din
structur (MOV EAX,ARAY1[SI]);
43

- adresarea indexat relativ la baz - adresa efectiv a operandului se calculeaz


adunnd deplasamentul cu coninutul registrului index i cu coninutul registrului
de baz (MOV EAX,[BX+ARAY1+SI]);
- adresarea unui bit - se realizeaz prin instruciuni speciale.

Adresare n mod real

Dup pornire sau dup reset, microprocesorul intr automat n mod real de lucru, i
rmne n acest mod pn cnd va fi trecut n mod protejat prin program. Lucreaz ca un 8086
cu performan ridicat, cu set extins de instruciuni i cu registre de 32 de bii. Spaiul de
adresare al procesorului este acelai ca la 8086, adic de 1 Mbyte pentru memorii i 64 kbyte
pentru operaii de intrare/ieire. Lungimea maxim al unui segment este de 64 kbyte i pot fi
folosite simultan 6 segmente.
Formarea adreselor fizice se realizeaz conform formulei:
AF = (reg. segment) x 16 + offset
Descompunerea adreselor fizice n adrese logice nu este unic. Offsetul reprezint adresa
n cadrul segmentului, dar nceputul de segment poate fi definit oriunde (cu restricia ca adresa
lui s fie multiplu de 16). Pentru operaii de I/O nu este nevoie de registru segment. Adresa
segment se afl totdeauna ntr-un registru segment, iar locul offsetului depinde de modul de
adresare. Registrul segment care va fi folosit este nscris tot n codul instruciunii, dar poate fi
schimbat cu un prefix.
Tratarea ntreruperilor
Vectorul de ntrerupere (provenind din surs intern sau extern) se nmulete cu 4, astfel
se obine un index n tabela descriptorilor de ntrerupere, unde snt stocate adresele (segmentul
i offsetul) rutinelor de servire al ntreruperilor. Adresa de nceput i lungimea acestei tabele
snt definite n registrul IDTR. Dup reset, adresa de baz are valoarea 0, iar lungimea este de
3FFh, pentru a pstra compatibilitatea cu procesorul 8086. Ea poate fi modificat la
microprocesorul 80386, dar fixarea unor valori incorecte va cauza ntreruperi interne.
Intreruperile interne n mod real snt:
0 divizare cu 0;
1 executare pas cu pas;
3 puncte de oprire;
4 depire aritmetic;
5 depirea limitelor la instruciunea BOUND;
6 cod invalid;
7 coprocesorul nu este prezent la instruciunea WAIT sau ESC;
8 limita tabelei descriptorilor de intrerupere este prea mic;
13 depirea segmentului.
Schimbarea modurilor de lucru
Trecerea n mod protejat se realizeaz prin setarea bitului PE din registrul CR0, iar
revenirea n mod real prin tergerea aceluiai bit. La revenirea n mod real, trebuie urmrit
folosirea corect a adreselor. Dac a fost activat i opiunea de paginare, se va verifica dac
pagina respectiv se afl n memoria operativ sau nu. Trebuie dezactivat opiunea de
paginare (prin resetarea bitului PG din CR0), i ncrcat 0 n registrul CR3 pentru a terge
cache-ul de pagin. Noul segment trebuie s aib limita egal cu 64 kbyte, s fie prezent n
memoria operativ, i s aib drept de scriere. Procedura de revenire dezactiveaz
ntreruperile, ncarc registrul IDTR cu valoarea corect, resetez bitul PE, execut o
instruciune JMP (pentru a goli lista instruciunilor extrase i decodificate).
44

Adresare n mod protejat

n modul protejat, procesorul permite adresarea memoriei virtuale, paginarea, protecia


datelor i asigur posibilitile de multitasking. Spaiul de adresare crete la 4 Gbyte, mprit n
segmente de lungime variabil (fiind posibile i segmente mai mari de 64 kbyte).
Adresa logic este format dintr-un selector de 16 bii, aflat ntr-un registru segment i un
offset pe 32 de bii. Cu ajutorul selectorului (ca index), din tabela descriptorilor de segment se
scoate adresa de nceput al segmentului, lungimea lui, precum i drepturile de acces al
utilizatorului. Offsetul reprezint adresa operandului n cadrul segmentului selectat. Pentru a
asigura i mecanismele de protecie, se definesc 3 tabele de descriptori, fiecare avnd asociat un
registru, care conine adresa de nceput al tabelei.

Adresa 48/32 Bit Descriptor segment

Selector Offset Drepturi de acces

Limita
47/31 31/15 0
Adresa de baz

Operand
Segmentul
Maxim 4 gigabyi ales

Fig. 5.5. Calculul adreselor n mod protejat

Tabela de descriptori globali este o resurs al sistemului folosit de fiecare task, care
conine descriptori system. Registrul GDTR (48 bii) definete lungimea tabelei de descriptori
globali pe 16 bii (lungimea maxim de 65536 byte), i adresa de baz a tabelei, care poate fi
poziionat oriunde n cei 4 Gbyte. Registrul GDTR trebuie ncrcat nainte de a trece la modul
protejat, i de regul nu este modificat n acest mod.
45

Memorie fizic

8192

8191

8090

.
GDTR .
.
Tabela de descriptori
47 40 39 16 15 0
globali (GDT)

BAZA 31-24 BAZA 23-0 LIMITA 3

Fig. 5.6.

Tabela de descriptori de ntrerupere este definit asemntor, dar cu ajutorul registrului


IDTR. Aceast tabel conine descriptori de poart de ntrerupere (interrupt gates), cu adresa
de nceput a rutinei de servire al ntreruperii. Lungimea acestei tabele poate fi de 65536 byte,
dar microprocesorul accept doar 256 de ntreruperi, deci lungimea maxim va fi de
8x256=4096 byte. IDTR se ncarc nainte de a trece la modul protejat, i nu se mai modific.

Memorie fizic

256

255

254

.
IDTR .
.
Tabela descriptorilor
47 40 39 16 15 0 de intrerupere (IDT)

BAZA 31-24 BAZA 23-0 LIMITA 3

Fig. 5.7.
46

Fiecare task poate avea acces la tabela de descriptori globali i la o tabel proprie,
denumit tabela de descriptori locali.

Memorie fizic

15 0 Descriptor local

LDTR GDT

47 16 15 0
Cache
Baza Limita
pentru LDTR

LDT

Fig. 5.8.

Ea conine decriptori segment de cod i date pentru taskul respectiv, din care rezult
posibilitatea de a defini n sistem mai multe tabele locale. Registrul LDTR de 16 bii nu
definete direct tabela de descriptori locali; ea conine un selector care arat ctre un descriptor
din tabela de descriptori globali. De fiecare dat cnd LDTR este ncrcat cu un selector
transparent din tabela de descriptori globali, descriptorul corespunztor va fi ncrcat n
memoria cache ataat acestui registru, definind astfel tabela de descriptori locali (adresa de
nceput, lungimea i drepturile de acces).
Mecanismul de calcul al adreselor n modul protejat este foarte complex, dar
microprocesorul conine o unitate de gestionare a memoriei, care realizeaz transpunerea
adreselor virtuale (logice) n adrese fizice.
n modul protejat, calculatorul lucreaz cu adrese virtuale (logice) de 48 bii, compus din
partea de selector (16 bii) i offset (32 bii). Lungimea unui segment poate fi definit de la 1
byte la 4 Gbyte. Selectorul conine 2 bii, care reprezint nivelul de privilegiu cerut al
segmentului, i este folosit n mecanismele de protecie, nu intr deci n calculul adreselor.
Pentru a forma adrese virtuale, rmn 46 de bii, care reprezint un spaiu de adresare de
246=64 terabyte. Un alt bit al selectorului (TI) va selecta ntre tabela de descriptori locali i cel
global, deci spaiul de adresare virtual se mparte n 32 terabyte spaiu de adresare global i
32 terabyte spaiu de adresare local. Magistrala de adres fiind de 32 bii, spaiul fizic de
adresare este de 4 Gbyte. Acest lucru permite echiparea sistemului cu un mediu de stocare
extern (de ex. hard disk), vzut ca un ntreg din punct de vedere al adreselor. Segmentele care
nu snt folosite la un moment dat, vor fi stocate aici. Unitatea de gestionare a memoriei
determin existena segmentului cerut n memoria fizic; cazul contrar se va semnala print-o
ntrerupere intern. Sistemul de operare poate iniia n acest caz ncrcarea segmentului de pe
suportul extern, i eventual salvarea unui segment din memorie pe suportul extern.
Calculul adreselor fr paginare
Selectorul se afl ntr-un registru segment al procesorului. Fiecare registru segment are
ataat un registru cache de 64 bii, care conine descriptorul corespunztor selectorului, i care
este ncrcat automat din tabela de descriptori (local sau global dup cum indic bitul TI al
47

selectorului). Offsetul care se afl ntr-un registru, sau direct n instruciune, va selecta
operandul din segmentul indicat de registrul segment corespunztor.

Memoria fizic

80386

47 32 31 0
Segment date
Adres Selector (DS) Offset (EBX)
Operandul

Registru cache Tabela


Descriptor
pentru DS segment descriptorilor locali

64 0

Fig. 5.9.

Calculul adreselor cu paginare


Dac a fost activat mecanismul de paginare (bitul PG din registrul CR0 a fost setat),
spaiul fizic de adresare va fi mprit n pagini de lungimi egale (4096 byte fiecare). Adresa
liniar de 32 bii obinut dup algoritmul percedent va fi transpus cu ajutorul mecanismului de
paginare. Aceast adres liniar va fi compus din trei cmpuri: 10 bii directorul, 10 bii
pagina, 12 bii offsetul n cadrul paginii. Locul tabelei directorilor va fi indicat de registrul
CR3, i directorul corespunztor va fi selectat din aceast tabel. Fiecare director are definit o
tabel de pagini, de unde se selecteaz pagina corespunztoare. Offsetul va identifica locul
operandului n pagina astfel obinut. Microprocesorul este prevzut cu un buffer intern, folosit
de mecanismul de translatare a paginii, capabil de a stoca 32 de intrri de pagini distincte, la
care accesul poate fi realizat direct.

Memoria fizic

80386
...
Directorul Pagina Offset

Operandul Pagina

Cache pagin
...

Pagina curent
Tabela de pagini

...

Directorul curent Tabela de directoare

...
CR3

Fig. 5.10.
48

Structura descriptorilor
Fiecrui segment de memorie i corespunde un descriptor, care se afl n tabela de
descriptori globali, locali sau de ntrerupere. Fiecare descriptor are o lungime de 8 byte i are
urmtoarea structur:

31 24 23 16 15 8 7 0

7 Baza 31 ... 24 G X 0 AVL Limita 19 ...16 P DPL S Tip A Baza 23 ... 16 4

3 Baza 15 ... 0 Limita 15 ... 0 0

Fig. 5.11.

20 bii definesc lungimea segmentului, 32 bii adresa de nceput al segmentului, iar restul
tipul i drepturile de acces. Putem distinge descriptori segment (cod sau date) i descriptori
sistem. Biii care definesc drepturile de acces snt:
A 0 - nu a existat acces la segment;
1 - selectorul de segment a fost ncrcat ntr-un registru segment;
S 0 - descriptor sistem;
1 - descriptor segment;
DPL - nivelul de privilegiu al descriptorului;
P 1 - segmentul este prezent n memoria fizic;
E 0 - segment de date;
1 - segment de cod;
G 0 - lungimea segmentului exprimat n byte;
1 - lungimea segmentului exprimat n pagini.
O parte a biilor de acces pot avea semnificaii diferite n funcie de tipul segmentului.
Pentru segmentele de cod, biii pot fi:
W/R 0 - segmentul nu poate fi citit;
1 - segmentul poate fi citit;
C 1 - segmentul de cod poate fi executat dac CPL DPL i CPL rmne
neschimbat,
iar pentru segment de date:
W/R 0 - segmentul nu poate fi scris;
1 - segmentul poate fi scris;
C 0 - offsetul trebuie s fie mai mic ca limita;
1 - offsetul trebuie s fie mai mare ca limita.

Multitasking i protecie

Microprocesorul 80386 permite prin structura lui hard coexistena a mai multor taskuri
care vor fi executate divizate n timp. Controlul va fi schimbat de la un task la altul dup
trecerea unui interval de timp fixat. Taskul curent executat va trece la sfritul listei taskurilor
ce ateapt execuia. Taskul poate fi definit ca o colecie de proceduri care execut o sarcin
specificat. Are implementat un mecanism de schimbare a taskurilor, care la un procesor ce
ruleaz la o frecven de 16 MHz dureaz 19 microsecunde. Fiecare task va avea acces la
memoria global, i definete o memorie local la care are acces numai el. n acest sistem
protecia la acces incorect sau neautorizat a zonelor de memorie devine necesar. Procesorul
include i aceste mecanisme de protecie. Segmentarea, paginarea i descriptorii fac parte din
acest mecanism de protecie. Segmentul este unitatea de memorie cea mai mic care posed
drepturi de acces. Acestea snt definite n descriptorul segmentului conform celor prezentate
49

anterior. La citirea/scrierea unei date se testeaz posibilitatea de acces de la nivelul de


privilegiu curent la segmentul cerut. Dac tipul segmentului nu corespunde cu registrul
segment folosit, dreptul de scriere citire este violat, sau offsetul depete limitele, se
genereaz o ntrerupere intern, i accesul nu este permis.
Modelul de protecie permite 4 nivele de privilegiu pentru fiecare task, nivelul 0 fiind cel
mai privilegiat, iar nivelul 3 cel mai puin privilegiat. Partea de kernel a sistemului de operare,
funciile de intrare/ieire, secvenierea taskurilor, gestionarea memoriei ruleaz la nivelul de
privilegiu 0. Nivelul 1 conine servicii sistem, cum ar fi accesul la fiiere. La nivelul 2 ruleaz
diverse rutine care apeleaz funcii sistem, iar la nivelul 3 ruleaz aplicaiile utilizatorilor.
Taskuri mai puin prioritare pot apela rutine mai privilegiate, dar nu le pot modifica.
Pentru a descrie mecanismul de protecie, trebuie s definim urmtorii termeni:
- DPL - nivelul de privilegiu al descriptorului (practic al segmentului) care este nscris
n descriptor;
- CPL - nivelul de privilegiu curent, nscris n registrul cache ataat registrului segment
cod;
- RPL - nivelul de privilegiu cerut, nscris n selectorul segmentului ce urmeaz s fie
selectat.
Un program poate avea acces direct la date care snt la acelai nivel de privilegiu, sau mai
puin privilegiate. Dac nivelul de privilegiu curent este 1, se poate realizeaz acces la date de
pe nivelele de privilegiu 1,2,3 (DPL CPL, RPL). Accesul la stiv prin registrul SS reprezint
o excepie, deoarece DPL = CPL (fiecare nivel de privilegiu are stiv proprie).
Schimbarea segmentului de cod se obine n urma operaiilor de salt, de apel de subrutin,
de revenire din subrutin, de ntrerupere i de schimbare de task. Dac DPL = CPL, transferul
se realizeaz fr nici o problem. Dac DPL > CPL, i segmentul este conform (bitul C al
descriptorului este setat), se execut rutina, fr a schimba nivelul de privilegiu (astfel se evit
trecerea de la un nivel mai puin privilegiat la unul mai privilegiat la instruciunea de revenire
din subrutin). Dac DPL < CPL, trecerea la noul segment este permis prin intermediul unui
descriptor sistem special, denumit descriptor de poart.

31 24 23 16 15 8 7 0

7 Offset 31 ... 16 P DPL Tip 000 Nr. cuv. duble 4

3 Selector Offset 15 ... 0 0

Fig. 5.12.

Descriptorii de poart pot fi de tip CALL, TASK, INTERRUPT sau TRAP, dup
instruciunea la care snt folosite. Conin selectorul i offsetul destinaiei la care se va realiza
transferul, offsetul indicnd instruciunea ce urmeaz a fi executat. Cnd se execut o
instruciune CALL, offsetul acestuia va fi ignorat, iar selectorul va arta ctre un descriptor de
poart, care va determina segmentul i offsetul instruciunii. La revenire (RET), se restabilete
nivelul de privilegiu al programului care coninea instruciunea CALL.
50

Cod instr. Offset Selector


CALL Neutilizat Index RPL

Tabela de descriptori

Offset DPL Nr. cuv.


Segment cod
Selector Offset
Descriptor de poart

Procedur

Baza DPL Baza


Baza
Descriptor
segment cod

Fig. 5.13.

Schimbare de taskuri
Fiecrui task i este asociat un selector care se afl n registrul TR, i arat ctre un
descriptor stare task din tabela de descriptori globali. De fiecare dat cnd se schimb un task,
starea lui curent trebuie salvat n segmentul stare task (TSS) ataat acestuia, i starea noului
task va fi ncrcat din segmentul corespunztor n registre. Structura segmentului stare task:

0000000000000000 Baza TSS


ESP0
0000000000000000
ESP1
0000000000000000
ESP2
0000000000000000
CR3
EIP
EFLAGS
EAX
ECX
EDX
EBX
ESI
EDI
0000000000000000 ES
0000000000000000 CS
0000000000000000 SS
0000000000000000 DS
0000000000000000 FS
0000000000000000 GS
0000000000000000 LDT
BIT_MAP_OFFSET 0000000000000000 T
Stare sistem
0
Harta permisiunilor operaiilor de intrare/ieire
65535
11111111 Limita TSS

Fig. 5.14. Segment stare task (TSS)


51

Schimbarea se realizeaz n modul urmtor: exist un task curent, care ruleaz i face apel
la un alt task (JMP sau CALL), seteaz bitul NT din flaguri; taskul curent va fi suspendat, iar
regitrii vor fi salvai n TSS; taskul 2 va fi marcat n descriptorul lui ca fiind ocupat (pentru a
nu fi apelat de un alt task), i starea lui va fi ncrcat din TSS n regitrii; se execut
instruciunea indicat de CS i EIP.
Dac se trece la un nivel mai privilegiat prin schimbare de task, aceasta se realizeaz prin
descriptor de poart TASK, care conine un selector ctre TSS -ul noului task.

31 24 23 16 15 8 7 0
7 Neutilizat P DPL 00101 Neutilizat 4

3 Selector Neutilizat 0

Fig. 5.15

Sistemul de ntreruperi
Tabela descriptorilor de ntrerupere poate fi plasat oriunde n memorie, adresa lui de
nceput fiind specificat de IDTR. n mod protejat tot 256 de ntreruperi pot fi tratate. Tabela
va conine descriptori de poart de ntrerupere, de task sau de trap. Schimbarea nivelului de
privilegiu este posibil deoarece ntreruperile se execut totdeauna prin descriptori de poart.
La apariia unei ntreruperi, selectorul va fi calculat nmulind cu 8 numrul ntreruperii.
Cu ajutorul acestui selector din tabela descriptorilor de ntrerupere se scoate un descriptor
poart. Dac descriptorul este de tip ntrerupere, se reseteaz bitul IF (dezactivnd astfel
ntreruperile externe), i se transfer controlul unei rutine din taskul curent. Dac descriptorul
este de tip task, se realizeaz schimbare de task, dar acesta nefiind reentrant, trebuie asigurat s
nu apar o nou ntrerupere nainte de a se termina ntreruperea n curs. Dac segmentul de
cod, care conine rutina de tratare a ntreruperii, este conform, nu se schimb nivelul de
privilegiu; n aceast situaie se salveaz n stiv EFLAG, CS, EIP. n situaia n care se
schimb nivelul de privilegiu, se schimb i stiva, deci vechiul indicator de stiv va fi salvat.

SS:ESP vechi SS:ESP vechi

EFLAGS SS

CS SS:ESP nou ESP


EIP EFLAGS
SS:ESP nou
CS

EIP
a) b)

Fig. 5.16. Starea stivei dup iniierea secvenei de tratare a ntreruperii


a) fr schimbarea nivelului de privilegiu, b) cu schimbarea nivelului de privilegiu

Operaii de intrare/ieire
O operaie de intrare/ieire n mod protejat se va executa dac CPL este mai mare ca
IOPL nscris n EFLAG. Fiecare segment stare task (TSS) poate conine o hart a
permisiunilor pentru operaii de I/O. Pentru fiecare adres de I/O corespunde un bit, care
52

pentru valoarea 0 permite executarea operaiei de I/O la adresa respectiv, iar pentru valoarea
1 inhib operaia. Dimensiunea acestei hri poate varia, nu exist restriciunea de a o defini
pn la capt, dar totdeauna ncepe cu adresa 0. Testarea biilor de protecie se realizeaz
numai n situaia n care CPL este mai mic ca IOPL. Accesul la o adres care nu este cuprins
n hart va genera o nrerupere intern.

Modul virtual

Permite executarea programelor scrise pentru 8086 n modul protejat, fr modificarea lor.
Deoarece 8086 adresez doar 1 Mbyte memorie, devine posibil simularea mai multor
procesoare 8086 n regim multitasking. Se pot executa simultan i programe n mod protejat,
iar schimbarea din mod protejat n mod virtual i invers se realizeaz de un program special,
denumit monitor virtual. n modul virtual se trece setnd pe 1 bitul VM din EFLAG, dar numai
n mod protejat. Aceast setare nu se efectueaz direct, ci prin schimbare de task sau
ntrerupere, amndou modificnd EFLAG. Ieirea se face n mod asemntor. Testarea bitului
VM se realizaez n urmtoarele dou condiii:
1. cnd se ncarc un registru segment pentru a vedea dac adresa trebuie calculat ca
la 8086;
2. cnd este vorba de o instruciune de intrare/ieire.
n mod virtual registrul segment este tratat ca n mod real, i va forma mpreun cu
offsetul o adres liniar; aceasta va fi transpus ntr-o adres fizic prin mecanismul de
paginare. Adresa fizic poate fi oriunde n spaiul de adrese de 4 Gbyte.
Instruciunile CLI, STI, PUSHF, POPF, INT, IRET, IN, INS, OUT, OUTS n mod
protejat snt sensibile la nivelul de privilegiu dat de IOPL. Nivelul de privilegiu curent (CPL) n
cazul rulrii n mod virtual este 3, iar dac IOPL este mai mic ca 3 oricare dintre instruciunile
mai sus amintite vor genera o intrerupere intern, astfel asigurnd posibilitatea interceptrii i
emulrii lor.
53

6. Sistemul de intrare/ieire
n funcie de distana dintre componentele unui sistem de calcul, putem distinge
comunicaii prin magistral (comunicaii paralele) i comunicaii la distan (comunicaii
seriale).

Comunicaii prin magistral

La comunicaiile paralele, toi biii de date vor fi transmise simultan pe linii separate. Se
pot distinge comunicaii prin magistrale sincrone i asincrone. La comunicaiile sincrone
transferul se realizeaz ntr-un ciclu (sau multiplu ntreg). Sursa i destinaia trebuie s aib
acelai semnal de tact, sau n cazul n care au ceasuri diferite, un semnal de sincronizare al
ceasurilor trebuie transmis periodic. La comunicaiile asincrone exist linii de control distincte,
pe care se transmit mpreun cu datele i semnalele de sincronizare (destinaie pregtit, date
valide, acceptare date). n aceast situaie, fiecare echipament trebuie s fie capabil de a
interpreta i de a genera aceste semnale de control.
O metod de conectare a componentelor este formarea unei magistrale unice n sistem.

Magistral sistem

UCP Memorie Periferic1 ... Periferic n

Fig. 6.1.

Magistrala de sistem conine liniile de adrese, de date i de control. Fiecare component


urmrete magistrala de adrese; n cazul n care decodific propriile adrese, transmite sau
recepioneaz date, n funcie de semnalele de control genereate de UCP. Perifericul cel mai
lent va ocupa un timp ndelungat magistrala, meninnd procesorul n stare de ateptare. n
aceste situaii este mult mai avantajos cuplarea perifericelor la o magistral extern, care va
comuica cu restul sistemului printr-un procesor de intrare/ieire care lucreaz n paralel cu
UCP.

Magistral sistem

UCP Memorie Procesor I/O


Magistral de intrare/ieire

Periferic1 ... Periferic n

Fig. 6.2.

Indiferent de modul de interconectare, spaiul de adrese al echipamentelor de intrare/ieire


poate fi suprapus cu memoria. Operaiile de acces la memorie vor fi folosite i pentru
periferice.
n cazul n care perifericele au un spaiu de adresare distinct de cel al memoriei, unitatea
central de prelucrare va avea operaii speciale (IN, OUT) i linii de control corespunztoare.
Cea mai simpl metod de comunicare se realizeaz prin operaii directe de intrare/ieire
(IN, OUT). Procesorul selecteaz perifericul prin liniile de adrese, genereaz semnalele de
54

control corespunztoare direciei de transfer (IOR, IOW) i realizeaz comunicarea prin


magistrala de date. Perifericul trebuie s fie totdeauna pregtit pentru transfer; dac
instruciunea dorit nu se poate realiza ntr-un ciclu, perifericul, asemntor memoriilor, poate
cere intercalarea unor stri de ateptare. Aplicaii tipice: citirea unor comutatoare, comanda
afiajelor.
Datorit faptului c majoritatea perifericelor nu pot fi permanent n stare pregtit, se
aplic transferuri condiionate, dar trebuie s se asigure sincronizarea echipamentelor care
comunic.
Metod condiionat bazat pe flaguri
La aceast metod numai procesorul rspunde de sincronizare, el fiind ntotdeauna n stare
pregtit, iar starea periferiei poate fi citit dintr-un flag.

Flag

R S
RD READY

MD OE EN MD
UCP Periferic
Registru de date

Fig. 6.3.

Testarea flagului de stare poate fi realizat prin citire periodic de ctre procesor sau prin
generarea unei ntreruperi.
Metod condiionat bazat pe semafoare (handshake)
n cazul acestei metode procesorul i periferia se sincronizeaz reciproc. Avem informaii
att n legtur cu nceperea, ct i cu terminarea operaiei.

STROBE READY
Flag

R S
RD WR

MD OE EN MD
UCP Registru de date Periferic

Fig. 6.4.

La dialogul iniiat de surs, se trimit datele mpreun cu semnalul de validare a datelor


(STROBE), iar preluarea datelor va fi semnalizat prin activarea liniei READY, dup care
poate urma un nou transfer.
55

Date

STROBE

READY

Fig. 6.5.

La dialogul iniiat de destinaie, aceasta indic starea lui pregtit prin linia READY, dar
transferul de date are loc numai cnd apare semnalul de validare.

Date

READY

STROBE

Fig. 6.6.

Combinnd cele dou tipuri de dialog, se poate obine un dialog cu interblocare complet.
Transmisia datelor va fi nceput numai dac destinaia este pregtit (READY activ), iar
terminarea prelurii datelor este semnalizat tot de destinaie (ACKNOWLEDGE).

READY

STROBE

ACKNOWLEDGE

Fig. 6.7.

Forma sincron al dialogului cu interblocare complet permite dezactivarea simultan al


semnalelor de validare i acceptare, astfel obinndu-se un ciclu mai scurt. Dezavantajul
metodei este necesitatea de a sincroniza sursa i destinaia pe acelai semnal de tact.

Tact

READY

STROBE

ACKNOWLEDGE

Fig. 6.8.
56

Metode de determinare ale prioritilor

n cazul cuplrii mai multor echipamente pe magistral, exist posibilitatea cererilor


simultane, dar la un moment dat doar o singur surs poate fi legat la magistral. Metodele de
determinare al prioritilor asigur selectarea sursei care va fi cuplat la magistral.
Legare n cascad (daisy-chaining)
Toate echipamentele se cupleaz la o singur linie de cerere (REQUEST). Cnd una din
echipamente a primit acces la magistral, activeaz linia BUSY indicnd starea ocupat a
magistralei. O nou cerere va fi luat n considerare numai dup dezactivarea liniei BUSY.
Deoarece linia de acceptare a cererii (GRANT) parcurge n serie toate echipamentele, n cazul
cererilor simultane, se va accepta echipamentul care fizic este mai aproape de unitatea de
control al magistralei. Ordinea de prioritate este determinat de locul fiecrui echipament, i nu
poate fi schimbat. Dac un echipament se defecteaz, blocheaz restul lanului. Exist
posibilitatea, ca ultimul element al lanului s nu primeasc acces la magistral. Avantajul
metodei const n numrul redus de linii (3).

Unitatea de GRANT
control al U1 U2 ... Un
magistralei
REQUEST
BUSY

Magistral

Fig. 6.9.

Numrtoare (polling)
Difer de metoda precedent prin schimbarea liniei de acceptare prin liniile de ieire al
unui numrtor reprezentnd o adres. Fiecare echipament are o adres unic. n cazul cererilor
simultane, echipamentul care detecteaz mai repede adresa proprie va primi accesul la
magistral, i numrtorul va fi oprit. La dezactivarea linie BUSY, numrtorul va fi
incrementat n continuare. Prioritatea poate fi schimbat prin ncrcarea sau iniializarea
numrtorului. Defectarea unui echipament nu are implicaii asupra funcionrii restului
sistemului. Dezavantajul metodei const n limitarea numrului de echipamente ce pot fi
cuplate de capacitatea numrtorului.

Unitatea de
U1 U2 Un
control al
magistralei

Num.

REQUEST
BUSY
Magistral

Fig. 6.10.
57

Cereri independente
Fiecare echipament va fi cuplat de unitatea de control al magistralei cu o linie proprie de
cerere i acceptare. Prioritatea va fi determinat de unitatea de control prin program. Sistemul
astfel realizat este foarte rapid i flexibil din punctul de vedere al prioritilor, dar cere multe
linii de interconectare n cazul unui numr mare de componente.

Unitatea de
control al U1 U2 Un
magistralei

BUSY
Magistral

Fig. 6.11.

ntreruperi

n cazul unei ntreruperi provenite de la o surs intern sau extern, UCP transfer
temporar controlul de la programul n curs de execuie la o secven special de tratare a
ntreruperii. ntreruperile externe provenite de la echipamentele de intrare/ieire elibereaz
procesorul de urmrirea strii lor, i vor iniia un transfer de fiecare dat cnd snt pregtite. Ele
pot indica terminarea unei operaii iniiate de UCP, apariia unei erori la echipamentul de
intrare/ieire sau iniierea unui nou transfer. Generearea ntreruperii se realizeaz prin activarea
liniei de control corespunztoare (INT), legat de un registru al UCP-ului. Unitatea central de
prelucrare la terminarea fiecrui ciclu de instruciune testeaz starea registrului.
Etapele prelucrrii unei ntreruperi snt:
- identificarea sursei cererii de ntreruperi;
- obinerea adresei rutinei de servire;
- salvarea numrtorului de program (adres de revenire) i a informaiilor de stare al
UCP;
- executarea rutinei de tratare a ntreruperii pn la instruciunea de revenire din
ntrerupere (RETI);
- refacerea numrtorului de program i a strii salvate, revenirea la programul
ntrerupt.
UCP-urile snt prevzute, de regul, cu instruciuni speciale pentru activarea, dezactivarea
i mascarea ntreruperilor. Aceastea snt necesare n seciunile critice ale programului, cnd
apariia unei ntreruperi ar afecta funcionarea ntregului sistem (de ex. n cazul programrii
unei componente a sistemului). Sistemele de calcul pot fi prevzute i cu linii speciale de cerere
de ntrerupere care nu pot fi dezactivate, denumite ntreruperi nemascabile. Acestea se folosesc
pentru detectarea unor erori critice (de ex. scderea tensiunii de alimentare).
Metodele de determinare al prioritilor n cazul ntreruperilor multiple (provenite de la
mai multe echipamente) snt similare cu cele din cadrul cererilor de magistral. Cea mai simpl
metod const dintr-o unic linie de ntrerupere, iar n cazul acceptrii cererii, echipamentul
corespunztor trebuie s trimit adresa rutinei de tratare prin magistrala de date.
58

Flag de INT
ntrerupere

Echipament 1 Echipament 2 ... Echipament n


UCP Mag. de date

Fig. 6.12.

n cazul n care echipamentul de intrare/ieire nu poate trimite o adres, se folosete


schema cu ntreruperi multiple, n care fiecare echipament este conectat cu propria linie de
cerere a ntreruperii. Adresa rutinei de ntrerupere va fi generat de UCP n funcie de linia de
cerere activat. Determinarea prioritilor se realizeaz tot de UCP.

INT n

...
Registru de INT 2
ntreruperi
INT 1

UCP Echipament 1 Echipament 2 ... Echipament n

Fig. 6.13.

Pentru a reduce numrul de date transmise de periferic, n locul adreselor se trimite un


vector de ntrerupere. UCP-ul va scoate adresa rutinei de tratare din tabela vectorilor de
ntrerupere aflat n memorie. Metoda are avantajul schimbrii rutinelor de ntrerupere ataate
unui periferic.

INT1 INT2 INT3 INT4

Registru Registru de
masc ntrerupere

Codificator prioritar

INT Vector de ntrerupere

Fig. 6.14.

De obicei, mai multe periferice vor folosi un singur circuit de generare a vectorilor de
ntrerupere. Circuitul poate deservi mai multe linii de ntrerupere provenite de la diferite
echipamente de intrare/ieire. Cererile vor fi stocate ntr-un registru de ntrerupere. Registrul
masc de ntrerupere permite sau interzice trecerea unei ntreruperi. Codificatorul prioritar
genereaz o unic ntrerupere ctre UCP, i formeaz vectorul de ntrerupere corespunztor
cererii deservite.
59

Sistemul de ntreruperi va fi dezactivat automat dac a fost acceptat o ntrerupere. Ea


trebuie activat prin program. Dac exist ntreruperi mai prioritare care trebuie tratate n
timpul servirii unei cereri, se seteaz bitul corespunztor din registrul masc, i se activeaz
sistemul de ntreruperi la nceputul rutinei de servire. n caz contrar, activarea sistemului de
ntreruperi se realizaeaz la sfritul rutinei.

Transfer de date cu acces direct la memorie (DMA)

n mod obinuit, transferul de date dintre memorie i periferic se realizeaz prin


intermediul UCP-ului cu dou instruciuni: se citesc datele din memorie n UCP de unde se
transmit la echipamentul de intrare/ieire. UCP-ul trebuie s testeze linia de stare al
perifericului, pentru a realiza sincronizarea cu aceasta.
Exist posibilitatea ca un circuit special s realizeze transferul direct al datelor.

Memorie

Magistrala de adrese
Magistrala de date

RA RD Numrtor RA RD

DRQ

RI Unit. contr. Unit. contr. DACK


Echipament
de
UCP Controler DMA intrare/ieire

Fig. 6.15.

Procesorul trimite adresa de nceput i lungimea blocului ce urmeaz s fie transferat,


precum i direcia. Acestea vor fi nscrise n registre speciale. Circuitul DMA va incrementa
adresa automat dup fiecare transfer, i va decrementa numrtorul ce a fost nscris iniial cu
lungimea blocului. Cnd numrtorul ajunge la 0, circuitul va semnaliza procesorului terminarea
operaiei de transfer printr-o ntrerupere. UCP-ul nscrie registrul de adrese i numrtorul din
acest circuit cu operaii de intrare/ieire clasice.
Transferul de date dintre memorie i echipamentul de intrare/ieire se realizeaz direct,
datele nu trec prin circuitul DMA. Fiecare periferic are un canal propriu de DMA. Cnd un
periferic cere date (DRQ), circuitul DMA care este deja programat va cere accesul la
magistral. La acceptarea cererii (DACK), va trimite adresa locaiei de memorie pe magistrala
de adrese, iar prin magistrala de date se realizeaz legtura direct ntre locaia de memorie
selectat i perifericul legat la canalul respectiv. Un controler DMA poate avea mai multe
canale a cror prioritate este programabil. Canalele snt folosite i pentru transferul dintr-o
zon de memorie n alta, dar aceast operaie se realizeaz cu dou accese la magistral, iar
data citit va fi stocat temprorar n registrul de date. n acest caz transferul este iniiat de UCP
prin programare.
Exist dou moduri de transfer:
- n rafal - UCP suspend operaiile n timpul transferului unui bloc, dup care preia
ciclul de instruciune din punctul n care s-a suspendat;
- prin furt de ciclu - DMA are acces la memorie tot timpul cnd UCP nu folosete
magistrala.
60

Ciclu instruciune
Ciclu UCP

Extragere Decodificare Extragere Execuie nscriere


instruciune instruciune operand instruciune rezultat

Puncte de
suspendare pentru DMA
Puncte de
suspendare pentru ntreruperi

Fig. 6.16.

Comunicaii la distan

n cazul comunicaiilor seriale, biii de date vor fi transmise succesiv, pe o singur linie.
Formatul datelor poate fi sincron sau asincron. La forma asincron, fiecrui caracter se
adaug informaia de cadru, care const dintr-un bit de start i unul sau doi bii de stop. Bitul
de star indic receptorului nceputul procesului de asamblare a unui caracter din fluxul serial de
bii care urmeaz, precum i sincronizarea cu transmitorul. Sincronizarea are loc pe durata
transmisiei unui singur caracter. La forma sincron, caracterele se asambleaz sub forma unor
mesaje, adugndu-se caractere de sincronizare. Transmisia serial poate fi sincron sau
asincron. Transmisia asincron se realizeaz cu modemuri asincrone care folosesc semnale de
frecven diferite pentru 1, respectiv 0 logic. La transmisia sincron, modemul furnizeaz
semnalul de sincronizare ctre terminal, i impune ca datele s fie transmise sincron cu acest
semnal. n unele cazuri, cnd se urmrete creterea vitezei, fr a schimba protocolul, se
opereaz ntr-un mod hibrid, datele cu format asincron fiind transmise sincron. Aceast
transmisie este denumit izosincron.
Elementele caracteristice transmisiei la distan snt:
- suportul informaiei;
- modul de organizare a datelor n cadrul unui caracter transmis;
- vitezele de transmisie, standardizate, fiind msurate n baud (bit/sec);
- sensul de transmisie;
- detecia erorii.
Suportul informaiei este specific terminalului, impunnd de regul viteza de transfer i
modul de organizare a datelor. Vitezele maxime snt:
- prin cablu coaxial 56 kbaud;
- prin fibre optice 1,5 Mbaud;
- prin satelit 50 Mbaud.
Organizarea datelor n mod caracter const din fixarea numrului de cifre utile pe
numrul total de bii (5/7, 7/9, 8/10, 8/11), numrului biilor de stop (1 sau 2) i a paritii
(par, impar i fr paritate).

start A parit. stop start B parit. stop

Fig. 6.17. Diagrama de timp pentru transmisia caracterelor A i B, cu paritate par


61

Transmisia datelor n mod mesaj implic gruparea caracterelor n blocuri de lungime


variabil i anexarea unui antet care conine date referitoare la lungimea i destinaia blocului.
Caracterele de control n cazul unui mesaj snt:
- SYN - sincronizare;
- SOH - nceput antet;
- STX - nceput text;
- ETX - sfrit text;
- EOT - sfrit transmisie;
- ENQ - interogare;
- ACK - acceptare date;
- NAK - refuzare date;
- DLE - suspendare.

STAIE CENTRAL STAIE TERMINAL

SYN
ENQ
Cerere date

SYN SYN
EOT SOH
Terminal nepregtit Antet
STX
Text
ETX
Control

Transmisie date

SYN SYN SYN


ACK NAK DLE
Suspendare

SYN
EOT

Repetare

SYN
SOH
Antet
STX
Text
EOT
Control

SYN SYN
ACK NACK

SYN
EOT

Fig. 6.18. Transmisie date de la staia terminal


62

STAIE CENTRAL STAIE TERMINAL


Selectare staie
SYN
ENQ

SYN SYN
NAK ACK
Terminal nepregtit

SYN
SOH
Antet Transmisie date
STX
Text
ETX
Control

SYN SYN SYN


NAK DLE ACK
Repetare

SYN Suspendare
EOT

SYN
SOH
Antet
STX
Text
EOT
Control

SYN SYN
NAK ACK

SYN
EOT

Fig. 6.19. Transmisie date de la staia central

n ambele situaii, staia central va iniia transmisia prin selectarea staiei terminale.
Retransmisia informaiei n caz de eroare are loc n urmtoarele situaii:
- lips de rspuns (Timeout);
- bloc incorect (caracterul NAK recepionat);
- bloc invalid;
- secven de recepie incorect.
Detecia erorii const n verificarea paritii la nivel de caracter, i verificarea sumei de
control la nivel de bloc. Exist i protocoale cu retransmisie permanent (tot blocul va fi
retransmis la surs pentru a realiza o siguran ridicat). Textul nu poate conine caractere de
control sau dac acestea apar, trebuie prefixate cu DLE (de ex. DLE ETX, DLE EOT).
63

Sensul de transmisie poate fi semiduplex (alternativ n ambele sensuri) sau duplex


(simultan n ambele sensuri).

E1 R1

R2 E2

Fig. 6.20. Transmisie semiduplex

E1 R1

R2 E2

Fig. 6.21. Transmisie duplex

Dispozitive specifice cuplrii la distan

Cn. 0 Terminal

Cn. 0 Modem Concentrator ...

Cn. n Modem Modem Terminal


Calculator Cuplor ...

Cn. n Modem Modem Term. master

Term. slave Term. slave

Fig. 6.22.

Cuplarea terminalelor pn la 3-5 km se pot realiza i fr modemuri. Concentratoarele


cupleaz mai multe terminale care lucreaz n mod caracter, i transmit mai departe n mod
mesaj. Cuplorul accept transmisiile de la UCP, asambleaz informaia n format prestabilit,
transmite informaia pe calea stabilit. La recepia datelor de la terminale, verific existena
64

erorilor, dezasambleaz informaia, gestioneaz i recunoate caracterele de control, transmite


secvena de acceptare sau neacceptare ctre terminal i transmite informaia recepionat i
dezasamblat ctre UCP. Cuplorul trebuie s realizeze o interfa standard cu canalul de
comunicaie, permind posibilitatea de a programa parametrii comunicaiei.
Modemurile asigur modularea i demodularea semnalului.

Date 2
Modulator Filtru Amplificator
Cerere emisie 4

Gata de emisie 5
Tact emisie 15

Tact recepie 17 Ceas

Date 3
Demodulator Filtru
Post pregtit 20

Date pregtite 6
Prez. purtt. 8 Detector de
purttoare
7

Fig. 6.23.

Semnalul emis, condiionat de existena cererii de emisie este aplicat modulatorului.


Semnalul de cerere emisie este returnat ctre echipamentul emitor. La recepie, blocul de
detecie a purttoarei va indica prezena semnalului. Att la emisie, ct i la recepie, semnalele
de tact snt furnizate de modem ctre echipamentul de date.

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

a)

b)

c)

d)

Fig. 6.24. Semnal binar (a) modulat n amplitudine (b), n frecven (c) i n faz (d)
65

7. Reele de calculatoare
Reelele de calculatoare se impun n locurile unde se necesit comunicarea datelor ntre
sisteme de calcul sau posibilitatea corelrii datelor provenite de la calculatoare independente.
Cea mai important caracteristic este mprirea surselor, adic accesul la programe, date i
echipamente, pentru fiecare utilizator, indiferent de locul unde se afl. Un alt avantaj al
reelelor este posibilitatea accesului simultan, prin duplicarea fiierelor. Dup distana la care
snt distribuite componentele, putem distinge:
- reele locale (LAN) - de la 10 m la 1 km;
- reele teritoriale (WAN);
- superreea (Internetworking) - reeaua care leag mai multe reele teritoriale.
Reelele locale snt acele sisteme la care timpul de propagare a semnalelor, comparativ cu
durata de transmisie a unui singur bit, este mai mare, iar comparativ cu durata tipic a unui
mesaj, este mai mic. Snt independente de sistemele publice de telecomunicaie existente, i
pot folosi medii de comunicaii private. Mediile de transmisie asigur o rat de eroare foarte
redus. Nu au comutatoare de pachete, ns fiecare element de prelucrare va poseda o interfa
de reea. La aceast interfa pot fi conectate terminale inteligente, calculatoare personale,
micro- i minicalculatoare. Reelele locale trebuie concepute ntr-un mod care permite
interconectarea cu reelele teritoriale.
Reelele teritoriale utilizeaz un subsitem de comunicaie, deci funciile de comunicaie
snt fizic separate de cele de prelucrare, i snt implementate ca noduri de comunicaie
interconectate. Comunicaia se bazeaz pe tehnica comutrii de pachete care asigur partajarea
eficient a resurselor de comunicaie. Fiecare mesaj se mparte n pachete care se transmit
independent. Un pachet trebuie s conin suficiente informaii de control, ca dirijarea sa prin
reea s se realizeze independent de celelalte pachete. Rolul nodurilor este gestionarea i
realizarea rutei pentru fluxul de pachete.
Dorina de a realizara o superreea la care snt conectate toate calculatoarele existente a
aprut n anii '80. n cadrul ei, reelele teritoriale snt legate prin satelite.
Reelele de calculatoare au fost concepute ntr-o maniera stratificat ierarhic, ca o
succesiune de nivele. Sub egida ISO s-a elaborat Modelul de Referin pentru interconectarea
Sistemelor Deschise. Obiectivele de baz ale acestui model snt legate doar de comportamentul
extern al sistemelor interconectate, caracterul deschis al unui sistem nu este legat de
organizarea particular i funcionarea intern specific sistemului, doar de schimbul de
informaii i de cooperarea dintre sistemele interconectate. A fost conceput pentru reele
teritoriale, dar se aplic, cu anumite particulariti, reelelor locale.
Dou principii eseniale stau la baza conceptului de arhitectur stratificat:
- valorificarea serviciilor asigurate de nivelurile inferioare pentru fiecare nivel, astfel
nct celui mai nalt nivel s-i fie oferit setul de servicii necesare pentru realizarea
unei aplicaii distribuite;
- asigurarea independenei fiecrui nivel, prin definirea serviciilor ctre nivelul
urmtor, independent de modul de realizare a acestora.
Nivelul este compus conceptual din subsistemele de acelai rang ale tuturor sistemelor
interconectate. Se utilizeaz termenul de protocol pentru desemnarea comunicaiei dintre
entitile aparinnd aceluiai nivel, i cel de interfa pentru comunicaia dintre nivele la aceai
entitate. Detaliile unei interfee reprezint n general o opiune local de implementare. Nivelele
trebuie astfel concepute ca fluxul de date prin interfee s fie minim, i schimbarea
implementrii unui nivel s nu afecteze i interfaa. Un nivel poate lipsi dintr-un sistem n
intregime, dac funciile lui nu snt folosite.
Modelul de referin OSI descrie apte nivele funcionale, care, mpreun cu mediul fizic,
asigur un set complet de servicii de comunicaie.
66

Protocol
7 Aplicaie Aplicaie 7

Interfa

6 Prezentare Prezentare 6

5 Sesiune Sesiune 5

4 Transport Transport 4

Sistem intermediar de comunicare


3 3
Reea Reea Reea Reea

2 Legtur date Legtur date Legtur date Legtur date 2

1 Nivel fizic Nivel fizic Nivel fizic Nivel fizic 1

Fig. 7.1.

Aceast arhitectur poate fi conceput ca fiind compus din dou pri diferite:
- partea de suport (1, 2, 3);
- partea de utilizator (5, 6, 7).
Cele dou pri snt separate de nivelul de transport, care are rolul de a ascunde detaliile
constructive ale comunicaiei.
Nivelul fizic asigur mijloacele mecanice, electrice funcionale i procedurale pentru
accesul la mediul fizic. Totodat realizeaz transmisia la nivel de bit al informaiei. Problemele
caracteristice ale nivelului snt: codificarea informaiei, modul de transmisie, cuplarea-
decuplarea echipamentelor, nivelul semnalelor, modul de conexie i configuraia pinilor.
Legtura de date, prin organizarea biilor n blocuri, asigur posibilitatea detectrii i
corectrii erorilor care apar la nivel fizic. Cuprinde facilitile de sincronizare pentru
comunicaii semiduplex i duplex.
Nivelul de reea se preocup de dirijare mesajelor ntre dou noduri intermediare folosind
blocuri speciale de control, care conine adresa destinaiei. Acest nivel va alege ruta pe care
informaia va ajunge la destinaie i va aduga adresele nodurilor intermediare.
Nivelul transport realizeaz transferul datelor de la surs la destinaie pe ruta stabilit de
nivelul precedent cu o integritate ridicat. Se utilizeaz protocoale bazate pe confirmare, care
implic transmisia, retransmisia i recuperarea datelor eronate. Transportul este de la cap la
cap, programul de pe calculatorul surs conversnd cu un program similar de pe calculatorul
destinaie. La acest nivel canalelor logice se asociaz adrese fizice.
Nivelul sesiune permite legarea utilizatorului la un calculator central care lucreaz cu
divizarea timpului (time sharing) i transmiterea fiierelor prin funciile de stabilire i eliberare
de conexiuni, sincronizare, raportare ntrerupere. Pentru a evita repetarea ntregului transfer n
caz de eroare, nsereaz periodic puncte de control de la care poate fi reluat transmisia.
67

Nivelul de prezentare are rolul de a elibera aplicaiile de diferenele existente n


reprezentarea datelor. Asigur totodat codificarea datelor ntr-un standard corespunztor
aplicaiei. n cazul n care la transmisie se folosesc date comprimate pentru a reduce timpul de
transfer, acest nivel rezolv comprimarea i decomprimarea datelor.
Nivelul aplicaie permite funcionarea concurent a proceselor n vederea realizrii unui
obiectiv definit de utilizator, fr ca acesta s cunoasc locul unde se afl procesele. Funciile
asigurate de acest nivel snt: lansarea programelor, vizualizarea i transferul fiierelor de pe
ntregul sistem, pota electronic (E-mail).

Reele locale (LAN)

n comparaie cu modelul de referin, reelele locale au urmtoarele particulariti:


- la legtura de date exist un singur canal fizic de comunicaie, care este cerut i
eliberat n mod dinamic de ctre elementele interconectate, folosind un protocol
de acces multiplu la canal;
- nivelul reea este opional, pentru c nu exist probleme de rutare - ea poate fi
folosit pentru comunicaii inter-reea;
Factorii de care se ine cont la alegerea unui LAN potrivit: numrul de puncte care trebuie
conectate, aria fizic acoperit i distana maxim dintre puncte, posibilitatea de extindere a
reelei, performanele dorite, siguran i securitatea datelor, posibilitatea de comunicare n
afara reelei. Reeaua local, n general, este realizat pe baza urmtoarelor elemente hardware:
mediul fizic de transmisie, setul de mecanisme de acces i transmisie pe mediu, interfaa de
reea.
Interfaa de reea trebuie s funcioneze n paralel cu elemetul de prelucrare gazd.
Elementele de prelucrare snt toal indepedente de schema de interconectare. Elementele pasive
(imprimante, scannere etc.) conectate n reea snt asociate pe o anumit cale cu elementele
active. Comunicaiile cu elemetele pasive vor avea loc prin intermediul elementelor gazd
asociate.
Este necesar adoptarea unei proceduri administrative, care s permit gestiunea alocrii de
adrese la dispozitivele conectate n reea. Cea mai simpl metod de a aloca adrese unice
globale este cea a partiionrii spaiului de adrese pe blocuri. Adresarea de grup sau multipl
permite trimiterea mesajelor sau a pachetelor la mai multe destinaii. Alocarea dinamic asigur
o adresare flexibil, i nu cere implicarea utilizatorului.
Ci fizice, topologii de baz
Calea multipunct global conduce la o topologie de tip magistral, i permite conectarea
unui nod simultan cu toate celelalte. Poate fi bidirecional (fig. 7.2. a) sau unidirecional (fig.
7.2. b). Prima este realizat cu un singur cablu coaxial, prevzut cu conectori de cuplare
bidirecionali. Buna funcionare a reelei este condiionat de respectarea lungimilor derivaiilor
i a spaiilor ce le separ, pentru a evita pierderile i reflexiile de semnal. n cazul celei de a
doua, emisia fiecrui nod este conectat la una dintre ramurile topologiei, numit i canal de
emisie, iar recepia la cealalt ramur, denumit i canal de recepie. Reflexiile de semnal,
datorat dezadaptrii de impedan, vor sosi la nivelul receptorilor cu o amplitudine neglijabil.
Acest tip va permite tolerarea unor defecte de cablu i de conector, ct i extragerea unui nod
din reea.
n cazul topologiei de tip inel (fig. 7.2. c), fiecare nod este legat la dou noduri vecine, n
scopul constituirii unui inel unidirecional. Fiecare nod poate aciona ca un simplu repetor al
informaiei sau ca emitor activ. Reduce timpii de acces, dar defectarea unui element conduce
la cderea reelei. Metodele de evitare snt utilizarea liniilor punct la punct redunante sau
folosirea unui inel de rezerv.
Topologia de tip stea (fig. 7.2. d), format din ci punct la punct, realizeaz conexiuni
unice ntre perechi de noduri. Necesit implementarea unor strategii de rutare (nodul central).
68

... ...

a) b)

c) d)

Fig. 7.2.

Protocoale de comunicaie pentru reele locale n inel


Permisiunea de a utiliza inelul de transmise este transferat secvenial i unidirecional de
la un nod la altul.
Metoda dreptului de control circulant (token passing) const n utilizarea unei combinaii
specifice de bii (jeton de control sau token) identificat de reea, care n absena traficului
circul continuu pe inel. Posesorul jetonului are acces la inel. Dac nu are nimic de transmis,
trimite mai departe jetonul; n caz contrar, jetonului i se anexeaz mesajul. nlturarea
mesajului de pe inel se realizeaz de nodul surs (cel care a transmis mesajul), care n acest
moment verific identitatea datelor trimise cu cele sosite. Poate fi realizat cu un singur mesaj
sau cu tren de mesaje. O situaie particular apare la pornirea sistemului, sau la alterarea
jetonului, cnd fiecare nod va asculta inelul pe o durat proprie, dup care prima dintre ele va
genera un jeton.
Metoda accesului prin competiie se deosebete de metoda dreptului circulant prin lipsa
jetonului cnd nu exist trafic n reea. n cazul n care o staie are de transmis, verific dac n
momentul respectiv trece sau nu un mesaj n faa lui. Dac nu, transmite mesajul i un jeton la
sfritul acestuia. Cnd mesajul revine la staia surs, se va nltura mpreun cu jetonul. Dac
staia observ existena unui trafic, ateapt recepionarea jetonului pe care o va transforma n
conector de pachete, i nsereaz pachetul propriu.
Metoda containerului gol urmrete nbuntirea utilizrii inelului prin divizarea benzii de
trecere a canalului disponibil ntr-un numr ntreg de secvene de bii de lungime fix (denumite
container), delimitate ntre ele. Containerele snt permanent circulate unidirecional pe inel, i n
ele pot fi plasate pachete de date mpreun cu adresa de destinaie. Un bit de control al
containerului indic starea de ocupat sau gol al acestuia. Un mesaj va fi mprit n pachete de
lungimea unui container, astfel diferitele poriuni ale inelului vor transmite pachetele aceluiai
mesaj. Destinatarul unui pachet extrage pachetul, i marcheaz containerul ca fiind gol, el
putnd fi utilizat deja de nodul curent. Aceast tehnic poate conduce la dominarea inelului de
anumite noduri (dialog ntre dou noduri). Pentru a avita aceast deficien, se utilizeaz dou
tehnici: primul const n copierea coninutului la destinaie, iar marcarea containerului va fi
realizat de un nod special, numit controler de inel; al doilea realizeaz copierea coninutului la
destinaie, dar containerul se elibereaz la surs.
Metoda inseriei de registru realizeaz ncrcarea mesajului care trebuie transmis ntr-un
registru de deplasare de lungime variabil. Acest registru este localizat n interfaa de inel, i
are posibilitatea de a fi conectat n serie cu inelul, fiind parcurs de traficul curent din reea.
Cnd un nod al reelei are un mesaj de transmis, acesta va fi ncrcat n registrul de transmisie
69

(TSR) din interfaa proprie, care se va nsera n reea doar cnd inelul de transmisie este liber
(poz. 2 a comutatorului). Mesajul este circulat n reea; n acest timp orice alt mesaj care
sosete este ntrziat, i nscris n registrul de recepie (RSR). Dup transmiterea mesajului
propriu, se comut la registrul de recepie (poz. 3), pn cnd i acesta va fi golit, dup care se
reface configuraia iniial a inelului (poz. 1).

Inel reea

Interfa
de inel

3 1
RSR 2
Nod
TSR

Fig. 7.3.

Un nou mesaj poate fi transmis de acelai nod numai dup golirea celor dou registre.
Protocoale de comunicaie pentru reele locale cu magistral de difuzare
Snt caracterizate de necesitatea alocrii unei resurse unice (canal de comunicare) la o
multitudine de surse de mesaje. Competiia din interiorul acestor sisteme este provocat nu
numai de natura lor aleatoare, ci i de imposibilitatea utilizatorilor de a se observa reciproc pe
msura apariiei cererilor de utilizare. Informaia de control trebuie transferat pe acelai canal
cu informaia propriu-zis.
Exist dou tipuri de strategii:
- strategii cu competiie (cu acces aleator);
- strategii cu consultare (acces fr coliziuni).
n cadrul strategiilor cu competiie apar dou probleme: rezolvarea coliziunilor (prin
tehnicile adaptive i neadaptive) i controlul accesului (prin tehnicile transmite surd, ascult
i transmite, ascult, transmite i ascult transmisia).
Dac fiecare nod implicat ar fi capabil s aleag un moment de retransmisie care s difere
de momentele alese de ceilali, problema coliziunilor ar fi simplificat.
Tehnicile neadaptive nu in cont de traficul curent n reea, planificarea ntrzierilor fiind
fixe. Snt adecvate numai n sisteme cu numr redus de surse.
n cazul tehnicilor adaptive, fiecare utilizator blocat ntr-o coliziune ncearc s evalueze
numrul utilizatorilor blocai n reea, i s ajusteze rata de retransmisie n mod corespunztor.
De obicei, acest lucru se realizeaz cu ajutorul unui controler unic de reea.
Tehnica trasmite surd (ALOHA) asigur transmiterea pachetului n momentul generrii
sale, fr nici o restricie. Sursa trebuie s atepte un interval de timp prestabilit sosirea
confirmrii recepiei. n cazul lipsei confirmrii, se va retransmite tot mesajul. Coliziunea care
ar afecta cea mai mic fraciune din timpul de transmisie, va avea acelai efect ca o interferen
complet de pachete. Prin urmare, timpul maxim nefolosit din cauza coliziunilor este de dou
ori timpul de transmisie. Aceast tehnic este nbuntit prin discretizarea timpului. Alegerea
momentelor de acces la canal nu va fi total asincron. O cuant de timp este egal cu durata de
transmisie a unui pachet.
Prin tehnica ascult i transmite (CSMA) s-a realizat ascultarea canalului nainte de
transmisie de fiecare surs. Dac sursa detecteaz o transmisie n curs, i va amna propria
transmisie pn cnd canalul va fi gsit liber. Coliziunea de pachete poate s apar i n cazul
70

transmisiei pe canalul aparent liber, datorit timpilor de propagare. Tehnica se bazeaz pe


ipoteza fundamental conform creia ntrzierea maxim de propagare este mic n raport cu
durata maxim de transmisia unui pachet.
Tehnica ascult, transmite i ascult transmisia (CSMA/CD) nbuntete pe cea
precedent prin detectarea ferm a coliziunilor. Sursa, dup ce transmite pachetul, ateapt un
interval foarte scurt de timp (dependent de ntrzierea din sistem), dup care i ascult propria
transmisie. Dac detecteaz o diferen ntre informaia transmis i cea recepionat, transmite
un mesaj specific de bruiaj, ca toate sursele implicate s fie informate.
La strategiile cu consultare se definete un inel logic dreptul de a transmite pe magistral
se transfer succesiv de la o staie la alta. Inelul logic se refer doar la dreptul de emisie al
staiilor, neavnd nici un rol la recepia mesajelor. Toate staiile pot s asculte orice mesaj
transmis, dar numai cele care fac parte din inelul logic vor iniia transmisii. Dac staia n
recepioneaz mesajul transfer de jeton de la staia n - 1, va considera c are dreptul la
emisie.

Tipuri caracteristice de reele

ETHERNET
Prezint o structur cu magistral de difuzare, folosind tehnica ascult, transmite i
ascult transmisia pentru controlul accesului.

Terminator
Transceiver Transceiver

Controler Repetor

Calculator Noduri

Tr. Tr.
Transceiver
multiport
Repetor

Fig. 7.4.

Legturile se realizeaz prin cablu coaxial cu impedan de 50 ohmi, i lungimea maxim a


segmentului de 500 m, la care snt conectate elementele de prelucrare prin transceiver i
controler. Transceiverul are rolul de detectare a purttoarei i a coliziunilor. n cazul sesizrii
coliziunilor, va genera semnalul de bruiaj specific. Transceiverul multiport realizeaz legtura
mai multor elemente de prelucrare (maxim 8). Cablul de legtur dintre transceiver i controler
nu poate depi 50 m. Controlerul asigur algoritmii necesari accesului la canal, recunoaterea
adreselor, constituirea pachetelor, codificarea i decodificarea datelor, precum i serializarea i
deserializarea informaiei. Exist controlere cu procesor i buffer propriu, i variante cu DMA.
Sistemul include n mod opional i repetoare, pentru extinderea ariei de ntindere a reelei.
Permite conectarea a dou segmente adiacente prin intermediul transeiverilor.
TOKEN RING
71

Este o reea extrem de vast i fiabil, cu topologie hibrid stea-inel, folosind tehnica
jetonului circular. Configuraia minimal este alctuit dintr-un singur inel, realizat din cablu
coaxial care leag interfeele de reea. Numrul maxim de staii pe inel este de 250. Datorit
numrului mare de repetri a semnalului circulant, pot apare desincronizri la nivel de bit. Dac
nodurile snt distribuite pe distane mari, este preferabil s se realizeze mai multe inele
interconectate prin puni. Puntea este un calculator echipat cu cte o interfa pentru fiecare
inel.

Nod

Interfa

Punte

Fig. 7.5.

Sistemul de operare n reea

Sistemul de operare are ca scop gestiunea resurselor aflate n reea. Cea mai important
funcie a lui este mprirea numelor i adreselor n sistem, asigurnd o compatibilitate cu mai
multe tipuri de reele i mai multe sisteme de operare. Asigur configurarea i reconfigurare a
resurselor, precum i a parametrilor reelei, iar la identificarea unor erori activeaz sau
dezactiveaz anumite surse. Funcia de monitorizare permite urmrirea evenimentelor din
reea.
Gestiunea securitii cuprinde controlul accesului (creaz conturi, atribuiri de parole,
restricii la folosirea anumitor staii, determin numrul de staii folosite simultan de un
utilizator, eventual timpul maxim de utilizare) i protecia resurselor, care atribuie unui
utilizator sau unui grup dreptul de a folosi o resurs sau se aplic un atribut resursei (citire,
scriere, creare, cutare).
Gestiunea fiierelor trebuie s asigure fiecrui utilizator accesul la toate datele din sistem,
indiferent de modul de reprezentare al acestora. La reele locale, uzual, toate datele vor fi
pstrate pe un fileserver, care va pstra toate datele din sistem. Acest lucru impune msuri de
siguran n plus. De obicei se dubleaz tabela de directoare, dar exist situaii cnd ntregul
volum de date este dublat.
Serviciile suplimentare ale reelei snt: transmisia mesajelor electronice, gestiunea
contabil, gestiunea listrilor.
72

Nod

Punte ETHERNET
TOKEN RING

Fig. 7.6. Modul de interconectare al diferitelor tipuri de reele


73

8. Arhitecturi speciale

Procesoare cu set redus de instruciuni

Urmrind evoluia calculatoarelor se observ c tendina de dezvoltare este de a creea


procesoare cu set complex de instruciuni, cu multe moduri de adresare, care faciliteaz
compilarea programelor scrise n limbaj de nivel nalt. Odat cu dezvoltarea tehnicii
microprogramate acesta a devenit i mai atrgtoare. Unitile de control microprogramate s-
au rspndit deoarece prezint cteva avantaje:
- setul de instruciuni este uor de realizat
- costurile de realizare snt mult mai sczute dect la varianta cablat
- permite adugarea noilor instruciuni sau modificarea celor existente relativ uor
- dezvoltarea i depanarea instruciunilor este mai uoar.
Realiznd o analiz a programelor scrise n diferite limbaje de nivel nalt s-a constatat c
instruciunile de asignare i apel de procedur reprezint 85% din totalul folosit. i mai
interesant este distribuia numrului de termeni ce apar n operaii de asignare, numrul de
parametrii locali, precum i numrul pe pararmetrii de apel. Majoritatea operaiilor de asignare
( 80%) conin o singur variabil i sub 1% folosesc mai mult de 5 variabile. 22% din
proceduri nu definesc nici o variabil local iar 80% conin mai puin de 5 variabile local i
doar 8% transfer mai mult de 5 parametrii. Aceste rezultate conduc la concluzia c
majoritatea variabilelor ar putea fi definite n registre.
Setul complex de instruciuni canduce la compilatoare mai complicate i mai puin
eficiente, precum i la decodificarea mai lent a instruciunilor.
Toate acestea au condus la reactualizarea conceptului de RISC:
- instruciunile snt mai simple
- instruciunile au lungimi egale i format unic
- exist un singur mod de adresare
- numai instruciunile LOAD i STORE vor lucra cu memoria
- conine puine tipuri de date de ex. ntreg i real
- fiecare instruciune se execut ntr-un singur ciclu
- unitatea de control se implementeaz cablat
- conine multe registre.
Acesta nu reprezint un standard, dar majoritatea procesoarelor prezint proprietile
enumerate.
Considernd modul de implementare al acestor procesoare cea mai important
caracteristic este c instruciunile constau dintr-o singur microoperaie. Se extrag cei doi
operanzi din registru, trec prin ALU, se stocheaz rezultatul n registru ntr-un singur ciclu.
Instruciunile n virgul flotant se execut de un coprocesor (poate fi nglobat n procesor) n
mod asemntor.
Instruciunile au un format fix iar cmpul operand este folosit direct de un decodificator
pentru a genera semnalele de control al fluxului de date. ntreaga unitate de control este cablat
sau implementat cu PLA. Dac se crete numrul de instruciuni decodificatorul este mai
complex i timpul de execuie crete. Un bit al instruciunii (C) arat dac instruciunea
afecteaz sau nu Flagurile. Cte 5 bii snt rezervai pentru a selecta una dintre registrele surs
i destinaie iar 1 bit pentru a indica dac cmpul offset va fi interpretat ca un operand direct.
74

Bii 7 1 5 5 1 13

OPCODE C DEST SOURCE I OFFSET

Fig. 8.1. Formatul instruciunii

Acest format asigur urmtoarele moduri de adresare pentru operaii aritmetice:


- registrul 0 reprezint valoarea 0
- bitul I setat inseamn c offsetul este interpretat ca cel de al doilea operand
- bitul I resetat - ultimii 5 bii ai offsetului vor selecta registrul ce conine al doilea
operand.
Pentru instruciunile LOAD/STORE acelai format se interpreteaz astfel:
- offsetul se adun la registrul surs pentru a forma adresa efectiv; adresare indexat
- dac offsetul este 0 ; adresare indirect prin registru
- dac registrul este 0 se adreseaz direct primul 8k memorie direct.
Deoarece instruciunile se execut ntr-un singur ciclu se folosete o structur pipeline cu
dou nivele de extragere i de execuie. Instruciunile de referire a memoriei nu pot fi executate
ntr-un singur ciclu. n aceast situaie se va ncepe execuia urmtoarei instruciuni fr ca
operaia cu memoria s-ar fi terminat. Compilatorul trebuie s asigure reorganizarea
instruciunilor astfel nct instruciunea urmtoare s nu foloseasc rezultatele referirii la
memorie. n situaia n care nu este posibil se intercaleaz instruciunea NOP. Acest efect este
denumit incrcare ntrziat. Unele procesoare asigur i un blocaj hard n situaia n care
registrul care este implicat n operaii cu memoria este folosit. Asemntor se rezolv i
instruciunile de salt i apel de subrutin.
Pentru a crete viteza de prelucrare arhitectura procesoarelor prezint urmtoarele
caracteristici:
- nu permit automodificarea programului, adica accesul de scriere n zona program
- au ci separate pentru date i program
- are registre separate pentru ntregi i reali precum i uniti de prelucrare separai
- posed memorii cache separai pentru date i program
- asigur transferul de parametrii prin registre suprapuse
- asigur ncrcarea simultan a mai multor registre cu elementele unui ir
- are i instruciuni pentru prelucrarea vectorilor.
Compilatoarele joac un rol important. Un compilator suboptimal conduce la rezultate
mult mai slabe ca la CISC. Rolul compilatoarelor RISC este de a reorganiza secvena de cod
astfel ca s foloseasc la maximum paralelismul unitii centrale de prelucrare; folosirea
eficient a intrzierilor create dup instruciunile de ncrcare i salt fr intercalarea NOP-
urilor; alocarea corect a registrelor.
Un rol important joac modul de organizare al registrelor, realizat n parte de compilator
dar cu ajutorul unor mecanisme hard. Cele mai multe operaii cu memoria vor fi efectuate n
cazul apelrii unei proceduri i transmiterea parametrilor. In aceast situaie de obicei se
salveaz regitrii i adresa de revenire n stiv, i se schimb parametrii tot prin stiv. Acesta se
rezolv la RISC-uri prin ferestre de registre suprapuse.
75

R0 R0 R0
R7 Var. globale R7 Var. globale R7 Var. globale
R8 CWP=8
R15 Param. intrare
R16
Var. locale
R23
R24 R8 CWP=24
R31 Param. ieire R15 Param. intrare
R16
Var. locale
R23
R24 R8 CWP=40
R31 Param. ieire R15 Param. intrare
R16
R23 Var. locale
R24
Param. ieire
R31

Fig. 8.2. Structura de registre

Procesorul conine un numr vast de registre dar la un moment dat vor fi folosite doar 32
dintre ele. Acestea vor fi mprite n 4 grupe egale sau inegale. Primul grup va conine
variabile globale primul registru fiind rezervat pentru a conine 0. Al doilea grup conine
parametrii de apel (intrare) ai unei proceduri. urmtorul grup este rezervat pentru parametrii
locali iar ultimul pentru parametrii de ieire. In cazul n care parametrii nu ncap n numrul de
registre rezervat restul vor fi definii n stiv n modul obinuit. n majoritatea situaiilor ns
este acest spaiu suficient. Spaiul de registre globali va fi folosit de orice procedur. Restul
regitrilor vor fi relativi la indicatorul ferestrei curente (CWP). Cnd procedura A apeleaz
procedura B CWP va fi incrementat cu 16. Astfel regitrii de intrare pentu procedura B vor fi
de fapt registrii de ieire pentru procedura A, deci se evit mutarea parametrilor dintr-un loc n
altul i nu se face acces nici la memorie. Compilatorul va respecta cteva reguli:
- primul parametru se depune n registrul R24
- ultimul parametru in registrul R30
- R31 este rezervat pentru adresa de revenire
- dac snt mai muli parametrii restul se transfer prin stiv
- va schimba coninutul CWP la ficare apel i reface la revenire.
Pentru a optimiza folosirea registrelor compilatorul va determina timpul de folosire al unei
variabile pentru a determina posibilitile de reutilizare al unui registru.
n prezent exist argumente n favoarea celor dou tipuri de procesoare n egal msur.
Adepii CISC-urilor enumer urmtoarele:
- operaiile implementate n microcod se execut mai repede ca programul
- setul complex de instruciuni nu crete preul de producie
- este mai uor de realizat compatibilitatea cu componentele precedente din aceeai
familie
- simplific realizarea compilatoarelor.
Evoluia tehnologic a diminuat unele din aceste avantaje prin realizarea memoriilor cu
timp de acces redus. ntroducerea memoriilor cache a condus la creterea considerabil a
vitezei de transfer ntre memorii i procesor.
n concluzie putem enumera urmtoarele avantaje ale RISC-urilor:
- structura hard fiind mai simpl, snt mai rapide
- compilatoarele pot crea un cod optim
- permit ntroducera paralelismului n unitatea de control.
76

Calculatoare vectoriale

Performana unui calculator poate fi nbuntit introducnd instruciuni asupra vectorilor.


Prin extragerea unei singure instruciuni, vor fi prelucrate un ir de date. Structurile pipeline
asigur suprapunerea secvenelor de prelucrare pentru mai multe elemente ale aceluiai vector.
Lungimea pipeline-ului determin numrul de componente care pot fi prelucrate simultan. Dac
aceai structur trebuie s prelucreze i date scalare, performanele scad. Din acest motiv,
calculatoarele vectoriale snt prevzute cu uniti separate pentru calcul vectorial i scalar.
Pentru a asigura alimentarea continu a pipeline-ului cu date, se ntroduc registre vectoriale,
care vor fi ncrcate din memoria operativ.
Principalele tehnici de realizare a supercomputerelor vor fi:
- uniti de control cu structura pipeline,
- mai multe uniti funcionale cu arhitecturi pipeline care vor lucra n paralel,
- bancuri de memorie ntreesute,
- memorii cache independente pentru date i instruciuni,
- mai multe magistrale independente pentru transferul datelor.
Arhitectura calculatoarelor vectoriale de tip CRAY-2 prezint patru uniti centrale de
prelucrare, cuplate la o memorie comun de 8Mword. O unitate central de prelucrare este
compus din opt registre pentru adrese, opt registre scalare de 64 bii, opt registre vectoriale
(fiecare avnd posibilitatea de a memora 64 de elemente a 64 de bii). Operaiile n virgul
mobil se execut n trei uniti pipeline pentru nmulire, adunare i calculul inversului, care
primesc operanzii din registrele scalare sau vectoriale. Un registru de 7 bii specific numrul
elementelor implicate ntr-o operaie vectorial, iar un registru de 64 bii (VM) are un bit
pentru fiecare element al unui registru vectorial, i este folosit pentru mascarea anumitor
elemente n sensul neparticiprii la o operaie vectorial. Exist uniti separate pentru
prelucrri scalare i pentru calculul adreselor. Memoria local are rolul de a stoca temporar
scalarii i vectorii n cursul calculelor. Transferul ntre registre i memoria comun se realizeaz
pe trei ci de date. Perioada ceasului este de 4,1 ns. Performana maxim a unui procesor este
de dou rezultate n virgul mobil la fiecare perioad de ceas, adic 500 Mflop/s.
Poate aprea un conflict de simultanitate cnd un bloc de memorie este accesat simultan pe
linii independente de ctre diferite CPU. Acesta se rezolv prin atribuirea unei prioriti diferite
UCP-urilor la fiecare 4 perioade. Conflictul pe linie apare la acelai procesor cnd dou sau mai
multe ci solicit acces la aceeai zon de memorie. Snt rezolvate prin atribuirea prioritii mai
mari operaiilor vectoriale, sau prin intercalarea strilor de ateptare la transferuri scalare.
Fiecare CPU are 4 buffere pentru instruciuni cu capacitatea de 128 cuvinte. Bufferele snt
ncrcate ciclic din memoria operativ. Dac o instruciune nu se afl n buffer se ncarc
urmtorul.
77

Reg. verticale Adunare


Virgul mobil
VL, VM
V0 V7 nmul.-mpr.

Reg. scalare Logic


Vectorial
S0 S7 ntreg

Mem. local Logic


Memoria
comun 16 K x 64'
4 T = 16 ns Deplasare Scalar

Adres ntreg

A0 A7
32' Adunare
Calculul adreselor
Bufer instr. nmulire

256 Mword
128 blocuri 4 x 128 x 16' Coada de at.

Fig. 8.3.

Toate unitile funionale snt pipeline, i pot accepta un nou set de argumente la fiecare
perioad de ceas. O instruciune poate fi lansat n execuie dac unitatea nu este ocupat cu o
operaie, i dac registrele necesare pentru operanzi i rezultat nu snt rezervate de alte
instruciuni n curs de execuie. O instruciune vectorial (de ex. adunarea a doi vectori)
rezerv registrele pentru toat durata operaiei. Dac o instruciune vectorial folosete un
registru scalar, el nu se rezerv, deoarece unitatea funcional pstreaz o copie a lui. Astfel n
perioada de ceas ce urmeaz lansrii n execuie a instruciunii, coninutul lui poate fi
modificat. Similar, valoarea registrului ce conine lungimea vectorului poate fi modificat
imediat dup trecerea instruciunii. Instruciunile cu vectori de lungimi diferite se pot executa
concurent. n cazul instruciunilor scalare, instruciunea rezerv numai registrul pentru rezultat,
astfel previne citirea lui de alte instruciuni.
O caracteristic important a arhitecturii este posibilitatea de a inlnui o serie de operaii
vectoriale, astfel nct s poat opera mpreun ca un pipeline continuu.
Seciunea de intercomunicaii conine 3 grupe de registre comune, care pot fi accesate de
ctre toate CPU pentru comunicaii i sincronizare. De asemenea exist un ceas comun.
Are aproximativ 128 de instruciuni. Toate unitile funionale lucreaz numai cu registre,
deci fiecare instruciune va conine doar 3 bii pentru definirea sursei i a destinaiei.

Arhitecturi paralele

Sistemele multiprocesor reprezint structuri de interconectare a mai multor procesoare


care ruleaz n mod paralel pri ale aceluiai algoritmi, realiznd astfel o unic sarcin. Aceste
arhitecturi permit o prelucrare mai rapid i o siguran ridicat n funcionare. Dup modul de
distribuire al sarcinilor la procesoare putem distinge sisteme cu distribuire dinamic i
distribuire static.
La sistemele cu distribuire dinamic, toate procesoarele snt de acelai tip, i pot prelua
orice sarcin general. n cazul defectrii unui procesor, sistemul poate fi reconfigurat,
localiznd eroarea fr a afecta funcionarea corect a ntregului sistem. Pentru utilizarea
78

eficient a resurselor trebuie s existe un sistem unic de operare care mparte sarcinile pe
procesoare.
n cazul sistemelor cu distribuire static, fiecare procesor are o sarcin specific, putnd fi
adaptat pentru acesta. Sistemul de operare devine mult mai simplu, dar n cazul apariiei unei
defeciuni, ntregul sistem poate fi afectat.
Sistemele cu multiprocesor trebuie s asigure comunicarea i sincronizarea proceselor care
ruleaz pe diferite procesoare. Deoarece nu exist un ceas unic n sistem, se definete un ceas
logic, care este actualizat i citit periodic de fiecare procesor prin mesaje.
Reeaua de interconectare realizeaz legtura ntre procesoarele i unitile de memorie
distribuite. Este folosit n mod tipic pentru:
- schimbarea semnalelor de control ntre procesoare,
- conectarea procesoarelor la diferite bancuri de memorie,
- schimbarea mesajelor ntre procesoare,
- realizarea transferului de date,
- conectarea procesoarelor de echipamente de I/O.
Elementele interconectate vor fi denumite noduri ce pot fi legate prin comutare de circuite
sau comutare de pachete. La reelele cu comutare de circuite se stabilete legtura ntre noduri
pe toat durata transferului de date. La reelele cu comutare de pachete fiecare pachet va urma
calea proprie prin reeaua de interconectare, iar nodurile vor avea buffere pentru reasamblarea
mesajelor.
Dup modul de comunicare dintre procesoare, putrem distinge sisteme slab cuplate i
sisteme strns cuplate.
La sistemele slab cuplate, comunicarea se realizeaz prin canale de intrare/ieire speciale.

Magistral intern

P1 M1 I/O I/O I/O I/O M2 P2

Canal de comunicaie

I/O P3 M3 I/O

Magistral intern

Fig. 8.4.

Aceast metod de interconectare permite comunicarea procesoarelor care snt cuplate


prin canale directe.
Fiecare procesor are resurse proprii, i ruleaz o copie a sistemului de operare, care se afl
n memoria proprie. Comunicaiile snt relativ lente, dar viteza poate fi mrit, folosind canale
cu acces direct la memorie. Reconfigurarea sistemului, dei fiecare procesor este identic,
necesit transmisia unui volum mare de date.
Sistemele strns cuplate se bazeaz pe conectarea tuturor procesoarelor pe o magistral
unic, la care comunicarea se realizeaz prin memoria comun cuplat la magistral.
79

Magistral comun

Cuplor ... Cuplor Mem. I/O


1 n comun comun

P1 Pn

M1 Mn Magistral intern proprie

I/O1 I/On

Fig. 8.5.

Un procesor depune datele n memoria comun, i semnalizeaz prin linia de ntrerupere a


magistralei comune terminarea operaiei respective. Performana sistemului este mult
influenat de capacitatea de trecere a magistralei comune, acesta reprezentnd un punct de
strangulare n sistem. Din acest motiv, fiecare element procesare dispune i de o memorie
proprie, i numai datele care se comunic vor fi depuse n memoria comun. Pot exista i
echipamente de intrare/ieire cuplate la magistrala comun, pentru a putea fi utilizate de fiecare
procesor, dar acesta contribuie n plus la ncrcarea magistralei. Legtura la magistrala comun
se realizeaz prin cuploare care trebuie s asigure evitarea conflictelor de magistral, i
determinarea prioritilor n cazul cererilor multiple.
Sisteme strns cuplate pot fi implementate i cu ajutorul reelelor de comutare.

Procesor

Procesor

...

Procesor

Memorie Memorie ... Memorie

Fig. 8.6. Reea de comutare complet


80

0 0
2x2
1 1

2 2
3 3

4 4
5 5
6 6
7 7

Fig. 8.7. Reele cu mai multe etaje

O alt problem la sistemele multiprocesor este protecia datelor mpotriva accesului


simultan din partea a mai multor procesoare. Magistrala comun va fi prevzut cu linii
speciale de blocare, care nu permit cedarea magistralei la un alt procesor pn la terminarea
operaiei ncepute. Procesorul care a blocat magistrala, rspunde de deblocarea lui la
terminarea operaiei critice.
Pentru a reduce timpii de ateptare datorate magistralei comune, fiecrui procesor i se
ataeaz o memorie cache proprie, care conine o parte a datelor din memoria comun. Trebuie
s se asigure existena copiei corecte a datelor n memoriile cache, astfel orice modificare n
memoria comun se va sesiza de fiecare controler, i se va modifica copia n cazul n care
exist n cache-ul propriu.

Sisteme cu siguran ridicat

Sistemele cu siguran ridicat trebuie s asigure o funcionare permanent fr erori.


Imposibilitatea excluderii erorilor de proiectare hard i soft a impus ca sistemele s fie
prevzute cu faciliti de autotestare i autodiagnoz. Aceste sisteme pot fi construite prin
dublarea anumitor componente critice (redundan). Sistemele multiprocesor lucreaz cu o
siguran mai ridicat prin testare reciproc. Cea mai simpl metod de constatare a erorii se
realizeaz prin temporizri. Procesorul care lucreaz, periodic va iniializa un monostabil care
trebuie reiniializat nainte de expirarea temporizrii. Dac acest lucru nu se realizeaz, sistemul
nu a ajuns n punctul dorit; deci se presupune o eroare, i comut la cellalt procesor. n acelai
timp, pentru a asigura preluarea datelor de noul procesor, se genereaz o ntrerupere.

INT
Microcalculator Latch

Declanare

Dezactivare Validare
Temporizator Magistral
extern

Temporizator

Microcalculator Latch
INT

Fig. 8.8.
81

Aceast metod prezint un dezavantaj datorit faptului c comutarea nu se realizeaz n


momentul defectrii; astfel datele eronate pot fi preluate. Magistrala extern comun mpiedic
testarea complet a sistemului, deoarece se presupune c eroarea nu apare pe aceasta, i nici n
memoria legat de ea.
n cazul n care se cere un sistem care comand o periferie i n situaia n care un modul
se defecteaz, se folosete o alt structur.

Magistral de date

Magistral de adrese
Magistral de date
Procesor Memorii
Magistral de control

Procesor Memorii

Procesor Memorii

Circuit majoritar

Periferie

Fig. 8.9.

Circuitul majoritar asigur comanda periferiei dac cel puin dou sisteme cer acest lucru.
Cele trei procesoare lucreaz sincron, i execut aceai secven. Problema cea mai important
este sincronizarea procesorului la care s-a eliminat eroarea. Procesorul trebuie adus la aceai
stare cu celelalte, i memoria proprie va fi ncrcat cu datele corespunztoare. Pentru a evita
punctele critice din sistem, att circuitul de sincronizare, ct i circuitul de ncrcare date vor fi
realizate cu circuite majoritare.
82

Circuit majoritar Procesor Memorie Circuit majoritar

Logic de reset

Circuit majoritar Procesor Memorie Circuit majoritar

Logic de reset

Circuit majoritar Procesor Memorie Circuit majoritar

Logic de reset

Fig. 8.10.

Singura restricie a sistemului este evitarea apariiei unei erori noi n timpul coreciei celei
precedente. Sistemul asigur o flexibilitate mare n timpul depanrii, prin comanda permanent
a periferiei.

Masive de procesoare

Calculatoarele vectoriale prezint avantaje n cazul instruciuilor complexe, dar exist


situaii n care se cer operaii simple asupra unui foarte mare numr de componente. n aceste
situaii se folosesc procesoare simple interconectate ntre ele, care alctuiesc un masiv.
Interconectarea prin magistral producnd strangulri, comunicarea dintre procesoare se
realizeaz cu o reea de comutare. Diferenele dintre arhitecturile astfel obinute depind de:
- dimensiunea masivului i puterea procesorului individual;
- complexitatea reelelor de comutare;
- distribuia controlului sistemului (masivul poate fi condus de procesor central, sau
fiecare procesor are controlerul lui);
- forma de control al sistemului.
Control cu flux de date (data flow)
n cadrul modelului, o instruciune nu se execut sub influena numrtorului de program,
numai dac toi operanzii ei snt disponibili. Un program poate fi descris ca un graf orientat,
dealungul cruia circul date (token), ieirea unei operaii fiind conectat la operaiile care i
consum rezultatul. O instruciune conine cmpuri de identificatori pentru operanzi. n cursul
execuiei, identificatorii din instruciuni snt comparai cu cele ale datelor sosite, i cnd toi
operanzii unei instruciuni snt disponibili, instruciunea este plasat ntr-o coad de ateptare
pentru execuie. Un astfel de sistem conine un controler al fluxului de date, un sistem de
comunicare i elementele individuale de prelucrare.
83

Control al fluxului
de date

Sistem de comunicare

Comutatoare Comutatoare Comutatoare

Element de prelucrare Element de prelucrare Element de prelucrare

Buffer instruciuni Buffer instruciuni Buffer instruciuni

Fig. 8.11.

Unitatea de control al fluxului de date repartizeaz instruciunile la procesoarele


individuale, dup care asigur circulaia datelor n sistem. n cazul n care o dat intervine n
mai multe instruciuni, se genereaz mai multe copii ale acestuia, atand identificatorii
corespunztori. Paralelismul problemelor va fi exploatat automat, fr ca acesta s fie prescris
de programator.
Un procesor elementar conine un comutator de intrare care primete datele din sistemul
de comunicare, i dac acestea nu se refer la procesorul propriu, le trimite la urmtorul
element prin comutatorul de ieire. Cuplorul verific dac pachetul sosit reprezint o
instruciune sau un operand, genereaz adresa corespunztoare i le depune n bufferul de
instruciuni sau n memoria de date. n acelai timp, acest element va declana execuia unei
instruciuni n cazul n care au sosit operanzii corespunztori.

Date
Comutator Element
Control Memorie date
de ieire de prelucrare

Coad de ateptare Generator


Buffer instruciuni
pentru execuie de adrese

Date
Comutator
Control Cuplor
de intrare

Fig. 8.12.
84

Connection Machine

Nu reprezint o unitate de sine stttoare ci este cuplat la una sau mai multe calculatoare
gazd.Const din patru pri identice fiecare avnd 16384 de procesoare.Fiecare parte are 2
canale de comunicare pentru operaii de I/O. Programul va fi secveniat de calculatorul gazd
i transmis instruciune cu instruciune la procesoarele de prelucrare. Fiecare procesor va
executa aceeai instruciune. Procesoarele nu au memorie program local.
Cele patru pri pot fi configurate a rula programe independente sau pot forma un singur
sistem.

Calculatoare gazd Calculatoare gazd

Secveniator Secveniator Secveniator Secveniator

8KP 8KP 8KP 8KP 8KP 8KP 8KP 8KP

Canale de intrare / ieire

Fig. 8.13.

Un procesor const dintr-o unitate aritmetic i logic pe un bit, 64kbit memorie local, 4
bii de flag, interfaa cu memoria, cu canalele de I/O i un router.
85

Memorie 64k

ALU

Condiia pentru nscriere

Fig. 8.14.

n fiecare ciclu instruciune un procesor va extrage 2 bii din memoria privat i un bit din
registrul flag. n urma execuiei unei instruciuni se obin 2 bii ca rezultat, care pot fi stocai in
memoria privat sau n flaguri. Un procesor are definit 256 de funii distincte, iar rezultatul
unei operaii se obine dintr-o tabel de adevr.

Bii 16 16 2 2 2 1 8 8

Tabela de adevr Tabela de adevr


Adresa A Adresa B
pentru memorie pentru flag

Flag intrare
Flag ieire
Flag condiie
Stare activ

Fig. 8.15. Formatul instruciunii

Cmpurile A i B vor adresa sursele respectiv destinaia (A), urmtoarele 2 cmpuri


selecteaz bitul surs i cel destinaie din flaguri. Exist posibilitatea ca un procesor s nu
execute o instruciune n funie de starea unui bit al flagului. Urmtoarele cmpuri vor selecta
acest bit, precum i starea activ a acestuia.
Procesoarele snt legate intre ele formnd un hipercub cu 12 laturi. Fiecare procesor poate
comunica direct cu 12 vecini i transmite mai departe informaia prin circuitele router
nglobate. Limea canalului de I/O este de 64 bii.
Control cu procesor central - sistemul DAP
Sistemul DAP care utilizeaz metoda controlului cu procesor central, const dintr-o o
unitate de control master i un masiv bidimensional de 1024 procesoare pe 1 bit. Masivul este
secionat dup dou direcii ortogonale, iar unitatea de control are registre de 64 bit pentru
fiecare direcie. Se folosesc dou magistrale de date care strbat liniile i coloanele de elemente
procesoare. Astfel elementul de prelucrare i, j va avea o magistral pe 1 bit legat direct de biii i
i j ai registrelor unitii de control.
86

La i de la MCU via
magistrale linie/coloan

Ieire MUX

La vecini
Suma
Memorie
4/16 Kbii Q Sumator pe 1 bit C
Y X Carry in

AND A Controlul
activitii

MUX intrare

N
E
S
1 0 W

Fig. 8.16.

Fiecare procesor este legat direct de cei patru vecini, iar conexiunile de la marginea
masivului snt definite de instruciunea n curs de execuie.
ntr-un procesor exist trei registre pe un bit, dou multiplexoare i un sumator complet.
Registrul A asigur controlul programat al procesorului, deoarece anumite instruciuni de
transfer snt executabile dac acest registru este setat. Are intrarea comandat de pori, care
permit realizarea funciei I ntre registru i intrare, realiznd astfel mti de control. Sumatorul
adun registrul Q, C i data de la intrare, producnd suma i transportul, care vor fi memorate
n registrul corespunztor.
Dac o instruciune este n interiorul unui ciclu, extragerea instruciunilor se execut o
singur dat pentru cele N iteraii ale buclei. Instruciunea de ciclare trebuie s specifice
lungimea buclei (max. 60 instruciuni) i numrul de iteraii (max 254).
Tipurile de instruciuni posibile la DAP snt:
- adunare pe 1 bit;
- adunare vectorial;
- adunare serial;
- transfer registru registru n cadrul unui procesor;
- transfer registru al unitii de control masiv;
- transfer registru la unitii de control memorie;
- operaii logice cu registrele unui procesor;
- operaii logice cu registrele unitii de control.
Modul normal de funcionare al calculatorului DAP este serial pe bit, paralel pe 4096
cuvinte. Mecanismul de adresare va folosi posibilitatea hard de execuie a buclelor prin accesul
consecutiv la biii de date memorai continuu. Alternativ, elementele de calcul pot fi configurate
pentru a forma un sumator paralel, astfel pot fi prelucrate n paralel 64 cuvinte a 64 bii. Cnd
datele nu corespund structurii calculatorului DAP, naintea execuiei calculelor, datele trebuie
reorganizate.
Masive de procesoare reconfigurabile
Aceste tipuri de masive i pot adapta structura fizic ntr-o oarecare msur structurilor
de date. Snt similare sistemelor DAP n cea ce privete structura i controlul comun. Diferena
const n posibilitatea modificrii locale a unei instruciuni prin distribuirea cuvintelor de
control n masiv. Acesta permite ca la un moment dat un procesor elementar s execute o alt
87

instruciune. Un astfel de masiv poate fi vzut ca o memorie inteligent al unui alt sistem de
calcul.
Procesoarele pot lucra ntr-un mod diferit, dar preprogramat local, astfel masivul permite
o implemetare eficient a operaiilor de manipulare a datelor, inclusiv cele cu structuri
neregulate (arbori sau grafuri).

Magistral rezultat

Conexiuni
Stiv pe Stiv pe Stiv de
la ALU R
cuvnt bit activitate
vecini

Magistral operand

Fig. 8.17.

Elementul procesor are dou magistrale pe doi bii, pentru rezultat i operand, astfel
permind transferul simultan a patru valori. ALU execut operaii logice i aritmetice, folosind
numai operanzi locali. Mecanismul de selecie al vecinului permite transferul datelor de la un
procesor la altul. operaiile aritmetice paralele snt realizate prin folosirea ALU i a seleciei
vecinului, care mpreun formeaz un sumator rapid. Cmpurile prestabilite de control, nscrise
n registrul R, snt folosite la programarea comutatoarelor la operaiile aritmetice i de
deplasare. Exist posibilitatea conectrii directe a intrrilor la ieire. Aceste conexiuni snt
folosite pentru distribuirea datelor tuturor elementelor procesoare, sau pentru ocolirea unui
procesor, implementnd structuri arborescente. Memoria intern a unui element funcioneaz ca
o stiv. Stiva de activitate este folosit pentru decuplarea condiionat a elementului procesor.
Memoria de date, funcionnd ca o stiv pentru cuvinte, realizeaz conversia paralel-serie i
serie-paralel a datelor. Stiva poate fi scris sau citit condiional n funie de stiva de activitate.
Setul de instruciuni pentru un masiv cuprind:
- operaii logice binare (dou operaii independente pot fi executate ntr-un singur
ciclu);
- deplasri ciclice;
- copierea unui bit de ctre toi ceilali;
- operaii aritmetice cu transport anticipat;
- nmulire prin folosirea adunrilor multiple.
88

Bibliografie

Anderson D., Shanley T.: Pentium Processor System Architecture. MindShare Press,
Richardson , Tx, 1993.

Hayes J.: Computer Architecture and Organization. McGraw-Hill, New York, 1978.

Hockney R.W., Jesshope C.R.: Calculatoare paralele. Editura Technic, Bucureti, 1991.

Lam H, O'Malley J.: Fundamentals of Computer Engineering. John Willy & Sons, New
York, 1988.

Nmeth G. Horvth L.: Szmtgp architektrk. Akadmiai Kiad, Budapest, 1991.

Pappas C., Murray W.: 80386 Microprocessor Handbook. McGraw-Hill, New York, 1988.

Punescu F., Goleteanu D. P.: Sisteme cu prelucrare distribuit i aplicaiile lor. Editura
Tehnic, Bucureti, 1993.

Singh A., Triebel W.: 16 bit and 32 bit Microprocessors Architecture, Software and
Interfacing Technique. Prentice-Hall, Englewood Cliffs, N. J., 1991.

Tili K., Tth E.: Szmtgpek. Mszaki Egyetem, Budapest, 1992.

Tanenbaum A.: Structured Computer Organization. Prentice-Hall, Englewood Cliffs, N. J.,


1990.

Tanenbaum A.: Computer Networks. Prentice-Hall, Englewood Cliffs, N. J., 1989.


89

Cuprins
Introducere .......................................................................................................... 3

Evoluia calculatoarelor ....................................................................................... 6

Unitatea central de prelucrare .......................................................................... 12


Unitatea aritmetic i logic ................................................................... 16
Unitatea de control ................................................................................. 22

Organizarea memoriei ........................................................................................ 31


Metode de extindere a capacitii de memorie ....................................... 33
Memorii asociative ................................................................................. 35
Memorii cache ........................................................................................ 37

Microprocesorul 80386.......................................................................................39
Registre de uz general ............................................................................ 39
Registre segment .................................................................................... 40
Flaguri .................................................................................................... 40
Registre speciale ..................................................................................... 40
Tehnici de adresare ................................................................................. 41
Adresare n mod real .............................................................................. 42
Adresare n mod protejat ........................................................................ 43
Multitasking i protecie ......................................................................... 47
Modul virtual .......................................................................................... 51

Sistemul de intrare/ieire .................................................................................... 52


Comunicaii prin magistral .................................................................... 52
Metode de determinare ale prioritilor .................................................. 55
ntreruperi ............................................................................................... 56
Transfer de date cu acces direct la memorie ........................................... 58
Comunicaii la distan ........................................................................... 59

Reele de calculatoare ........................................................................................ 64


Reele locale ........................................................................................... 66
Tipuri caracteristice de reele ................................................................. 69
Sistemul de operare n reea ................................................................... 70

Arhitecturi speciale ............................................................................................ 72


Sisteme multiprocesor ............................................................................ 72
Sisteme cu siguran ridicat .................................................................. 73
Calculatoare vectoriale ........................................................................... 75
Masive de procesoare ............................................................................. 77

Bibliografie ........................................................................................................ 81

S-ar putea să vă placă și