Sunteți pe pagina 1din 147

UNIVERSITATEADINORADEA FACULTATEADETIINE

ArhitecturaSistemelor
deCalcul
[suportdecurs]

Lect.univ.dr.HoreaOros
[]

[LucrareareprezintsuportuldecurspentrudisciplinaArhitecturaSistemelordeCalcul
dinplanuldenvmntalstudenilordelaspecializrileInformaticanulI.]

Cuprins
1. Introducere ................................................................................................................. 5
Scurtistorieaevoluieisistemelordecalcul ............................................................ 5
ModelulvonNeumann .................................................................................................. 7
ModelulSystemBus(magistralsistem) .................................................................... 7
Nivelurialemainilordecalcul .................................................................................... 8
Unsistemdecalcultipic ............................................................................................. 12
Supercalculatoare ........................................................................................................ 13
Concluzii ....................................................................................................................... 14
2. Reprezentareadatelor ............................................................................................. 15
Introducere .................................................................................................................. 15
Reprezentareanumerelornvirgulfix .................................................................. 15
Reprezentareanumerelornvirgulmobil............................................................. 24
Coduridecaractere ..................................................................................................... 34
Concluzii ....................................................................................................................... 37
3. Logicadigital .......................................................................................................... 39
Logiccombinaional ................................................................................................ 39
Tabeledeadevr ......................................................................................................... 40
Porilogice ................................................................................................................... 41
Algebrboolean ......................................................................................................... 43
Formasumdeproduseidiagramelogice.............................................................. 45
Formaprodusdesume ............................................................................................... 47
Componentedigitale ................................................................................................... 48
Logicsecvenial ....................................................................................................... 58
Flipflop ........................................................................................................................ 58
Mainicunumrfinitdestri .................................................................................... 58
4. Aritmetic ................................................................................................................. 59
Introducere .................................................................................................................. 59
Adunareaiscdereanumerelornvirgulfix ....................................................... 59
nmulireaimprireanumerelornvirgulfix .................................................. 65
Aritmeticnvirgulmobil ....................................................................................... 70
Studiudecaz:AritmeticaBCD .................................................................................... 71
Concluzie ...................................................................................................................... 75
5. Arhitecturasetuluideinstruciuni ......................................................................... 76
Introducere .................................................................................................................. 76
Componentelehardwarealearhitecturiisetuluideinstruciuni(ASI) .................. 76
ARCARISCComputer ........................................................................................... 82
Pseudooperaii ........................................................................................................... 89
Exempledeprogramenlimbajdeasamblare ......................................................... 89
Variaiinarhitecturilesistemelordecalculinmoduldeadresare .................... 90
Accesareadatelornmemoriemodurideadresare .............................................. 92
Linkeditareasubrutineloristiv ............................................................................ 93
Intrareieirenlimbajdeasamblare ........................................................................ 98
StudiudecazASIpentruMainaVirtualJava .................................................... 100
Concluzie .................................................................................................................... 101

6. Limbajeimain................................................................................................... 102
Introducere ................................................................................................................ 102
Procesuldecompilare............................................................................................... 102
Procesuldeasamblare .............................................................................................. 108
Linkeditareincrcare ........................................................................................... 115
Unexempludeprogramare ...................................................................................... 119
Macrouri ..................................................................................................................... 120
Concluzii ..................................................................................................................... 122
7. Comunicaii............................................................................................................. 124
Modemuri ................................................................................................................... 124
Mediidetransmisie ................................................................................................... 126
Arhitecturidereea:LAN.......................................................................................... 129
Eroridecomunicaieicoduricorectoaredeerori................................................ 133
Arhitecturidereea:Internet ................................................................................... 141
Concluzii ..................................................................................................................... 147

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

1. Introducere
Arhitectura calculatoarelor (AC) se ocup cu comportamentul funcional al
sistemelor de calcul aa cum este vzut de programator. Aici sunt incluse aspecte
cum ar fi: dimensiunea tipurilor de date (de ex. folosirea a 16 cifre binare pentru
reprezentareaunuintreg)itipuriledeoperaiicesuntpermise(deex.adunarea,
scdereaiapeluldesubrutine).
Organizarea calculatoarelor se ocup cu relaiile structurale care nu sunt vizibile
programatorului,cumarfiinterfeelecudispozitiveleperiferice,frecvenadeceasi
tehnologiileutilizatepentrumemorie.
nacestcursvomdiscutaattdesprearhitecturctidespreorganizare,termenul
arhitecturvaincludeattarhitecturactiorganizareasistemelordecalcul.

n arhitectura calculatoarelor apare conceptul de nivel. Ideea este c exist mai


multe niveluri la care poate fi privit un sistem de calcul, de la nivelul de sus unde
ruleazprogramelepnlaniveluldejosformatdintranzistoriicircuiteintegrate.
ntreacestedouniveluriexistoseriedeniveluriintermediare.

Scurtistorieaevoluieisistemelordecalcul
nc din secolul XVI existau mecanisme mecanice
pentru controlul unor operaii complexe de
exemplu cilindrii care se roteau ntro cutie
muzical i produceau melodii. Mainile ce
efectuaucalculeauaprutnsecolulurmtor.
Blaise Pascal (16321662) a creat un calculator
mecanicpentrualajutapetatlsu,careseocupa
cu strngerea taxelor, la efectuarea calculelor.
CalculatorulluiPascalsenumeaPascaline.

De abia n secolul XIX, Charles Babbage (17911871) reuete s proiecteze o


maindecalculcarereuneaconceptuldecontrolmecanicicalculemecanicentr
un singur dispozitiv care are toate componentele eseniale dintrun calculator
modern aa cum l cunoatem astzi. Babbage este considerat bunicul
calculatoarelorinuprintelepentrucelnuaconstruitefectivmainarespectiv
ci doar a proiectato. Babbage a creat o main de calcul pentru calcularea unor
tabele matematice folosite la vremea respectiv n navigaie i munca tiinific.
Tabelele de pn atunci conineau numeroase erori. Maina lui Babbage putea citi
datedinintrare,puteastocadate,efectuacalcule,produceadatelaieireiefectua
controlul automataloperaiilormainii.Acesteasuntfunciiledebazceexistn
oricecalculatormoderndinzilelenoastre.Babbageacreatunprototippentruacest
motor diferenial, care evalua polinoame folosind metoda diferenelor finite.
Succesulacestuimotoraduslaproiectareaunuimotormultmaicomplexianume
motorul analitic, care era mult mai sofisticat, avea mecanisme pentru ramificare
5

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
(luareadedecizii)imecanismepentruafiprogramatfolosindcarteleperforaten
stilulcunoscutsubnumelederzboiuldeesutalluiJacquard.Motorulanalitica
fostproiectatdarnuafostrealizatefectivlavremearespectivdatoritfaptuluica
nuexistatehnologianecesar.OversiuneaamotoruluidiferenialalluiBabbagea
fostrealizatefectivlaMuzeultiineidinLondran1991ipoatefivzutiastzi.

Urmtorulpasimportantnevoluiasistemelordecalculsafcutdupunsecoln
timpul celui deal doilea rzboi mondial cnd submarinele germane produceau
AliailorpagubesemnificativenAtlantic.Acestesubmarineprimeauordineledela
baze din Germania criptat. Criptarea se realiza cu ajutorul unei maini de calcul
numiteENIGMAprodusdeSiemensAG.Procesuldecriptareeracunoscutdemult
timp dar decriptarea mesajelor, fr cunoaterea codului secret folosit la criptare,
eraooperaiefoartedificil.AlanTuring(19121954)ialioamenidetiindin
Anglia au reuit s sparg codurile produse de ENIGMA. Turing a transformat
criptografiadintroartpracticatdeoameniobinuiipentruadescifralimbivechi
de mult disprute (hieroglifele egiptenilor) ntro ramur a matematicii. Turing a
creatomaindedecriptarenumitColossus.ImplicarealuiTuringnacestproiect
nu este foarte bine documentat datorit confidenialitii care a planat asupra
acestuiproiect.

n aceeai perioad J. Presper Eckert i John Mauchly au creat o main pentru


calculul tabelelor balistice pentru armata SUA. Rezultatul a fost ENIAC (Electronic
NumericalIntegratorAndComputer).ENIACeraformatdin18000detuburividate,
care formau partea de calcul a mainii. Programarea i introducerea datelor se
efectuaucuajutorulunorntreruptoareiprinschimbareaunorcabluri.Nuexista
conceptul de program stocat i nu exista unitate central de memorie. A devenit
operaional de abia n 1946 i a fost folosit timp de nou ani, fiind considerat un
succes.
Dup succesul cu ENIAC, lui Eckert i Mauchly li sa alturat John von Neumann
(19031957). mpreun au proiectat o main de calcul cu program stocat numit
6

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
EDVAC.n1947MauriceWilkes(UniversitateaCambridge)aconstruitomainde
calculcuprogramstocatnumitEDSAC.

ModelulvonNeumann
Calculatoarele digitale convenionale au o baz comun care i este atribuit lui
vonNeumann.ModelulvonNeumannconstncincicomponentemajorelafelcan
figur. Unitatea de intrare furnizeaz instruciuni i date sistemului, care sunt
stocateulteriornUnitateadeMemorie.Instruciunileidatelesuntprocesatede
UnitateaAritmeticiLogic(ULA)subcontrolulUnitiideControl.Rezultatele
sunt trimise la Unitatea de Ieire. ULA i UC poart denumirea generic de CPU
(UnitateCentraldeProcesare).

Programul stocat este cel mai important aspect al modelului von Neumann. Un
program este stocat n memoria calculatorului mpreun cu datele ce sunt
procesate. nainte de apariia calculatoarelor cu program stocat, programele erau
stocate pe medii externe cum ar fi cartele perforate. n calculatorul cu program
stocatprogramulpoatefimanipulatcaicumarreprezentadate.Aceastaadusla
apariiacompilatoarelorisistemelordeoperareifaceposibilmareaversatilitate

acalculatoarelormoderne.

ModelulSystemBus(magistralsistem)
CalculatoarelemodernesebazeazpemodelulvonNeumann.Totuiacestmodela
fostorganizat(restructurat,simplificat)ntrunaltmodelianumemodelulSystem
Bus. Acest model mparte sistemul de calcul n trei subuniti: CPU, Memorie i
IntrareIeire. Aceast mbuntire a modelului von Neumann combin ULA i
unitatea de control ntro singur unitate funcional (CPU Central Processing
Unit).Intrareaiieireasuntcombinatedeasemeneantrosingurunitate.
Caracteristica principal a modelului System Bus este comunicarea ntre diferitele
componente care se face printro cale numit magistral sistem, format din
magistrala de date (care transport informaia transmis), magistrala de adrese
(careidentificundeestetrimisinformaia)imagistraladecontrol(caredescrie
aspecte ce in de modul n care este trimis informaia). Exist de asemenea i
7

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
magistrala de energie (curent electric) pentru alimentarea electric a
componentelor, care nu este prezentat n figur dar prezena ei se subnelege.
Unelearhitecturipotaveaomagistraldeintrareieireseparat.

Fizic,magistralelesuntformatedincoleciidefiregrupatepefuncii.Omagistral
de32debiiare32defireseparate,fiecaretransmindunbitdedate.Magistrala
sistemesteungrupdemagistraleindividualeclasificatedupfunciilelor.
Magistrala de data transport datele ntre diferitele componente ale sistemului.
Unele sisteme au magistrale de date separate pentru transportul datelor la/de la
procesor(datainidataout).Magistralele,celmaifrecvent,transportdatelentr
unsingursenslaunmomentdat.
Dacmagistralatrebuiepartajatdediferiteleentiticarecomunic,atunciaceste
entiti trebuie s aib adrese distincte. n unele sisteme de calcul toate adresele
sunt adrese de memorie indiferent dac fac parte din memoria calculatorului sau
sunt dispozitive de I/E. Pe de alt parte, unele sisteme au adrese separate pentru
adreseledeintrareieirealedispozitivelordeI/E.
Oadresdememorie,saulocaie,identificlocaiadememorielacaresuntstocate
datele.ntimpuluneioperaiidecitiresauscrieredememorie,adresademagistral
conine adresa locaiei de memorie de la care se vor citi datele sau la care se vor
scriedatele.TermeniicitirerespectivscrieresereferlaCPUcarecitetedatele
din memorie i scrie datele n memorie. Dac datele se citesc din memorie atunci
magistraladedateconinevaloareacititdelaadresadememorierespectiv.Dac
datele se scriu n memorie atunci magistrala de date conine valoarea care se va
scrienmemorie.
Magistraladecontrolcoordoneazaccesullamagistraladedateilamagistralade
adreseidirecioneazdatelesprediferitecomponente.

Nivelurialemainilordecalcul
Lafelcaoricesistemcomplex,uncalculatorpoatefiprivitdinmaimulteperspective
sauniveluridelanivelulcelmaidesus,nivelulutilizatorpnlanivelulcelmaide
jos, nivelul circuitelor integrate. Fiecare nivel reprezint o abstractizare a
calculatorului.Probabil c succesul calculatoarelor se datoreaz i gradului la care
aceste niveluri de abstractizare sunt separate (independente) unele de altele. Un
utilizatorcareruleazoaplicaiedetehnoredactarepeuncalculatornutrebuies
8

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
tienimicdespremodulncareaplicaiarespectivafostprogramat.Deasemenea
programatorul nu trebuie s tie nimic despre porile logice din structura unui
calculator. O modalitate interesant n care aceast separare a nivelurilor a fost
exploatatestedezvoltareadesistemecompatibilensus.
Compatibilitatea n sus invenia tranzistorilor a dus la o dezvoltare rapid a
hardwareului pentru calculatoare, dar o dat cu aceast dezvoltare a aprut
problemacompatibilitii.Utilizatoriidoreausutilizezecelemainoiimairapide
calculatoare dar fiecare model nou de calculator avea o arhitectur nou iar
softwareul vechi nu mai rula pe calculatoare noi. Aceast problem a
compatibilitiihardware/softwareadevenitattdeacutnctutilizatoriiamnau
achiziionareadecalculatoarenoidatoritcosturilorridicatederescriereasoftului
pentru a rula pe noul hardware. Conversia softului vechi pentru a rula pe
hardwareulnouduradestuldemult.
IBM a inventat i implementat conceptul de familie de maini ncepnd cu seria
360.Calculatoaremaiperformantedinaceeaifamilieputeaurulaprogramescrise
pentrumainimaipuinperformanteimaivechiframodificaaceleprograme
compatibilitateansus.
Nivelurile
Figura prezint cele apte niveluri din cadrul unui sistem de calcul, de la nivelul
utilizator pn la nivelul circuitelor integrate. Pe msur ce coborm nivelurile
devintotmaipuinabstracteiseexpunetotmaimultdinstructuraintern.

Nivelul de sus

Nivel utilizator: programele de aplicaie


Limbaje de nivel nalt
Limbaj de asamblare / cod main
Control
Unitile funcionale (memorie, ULA etc.)
Pori logice

Nivelul de jos

Tranzistori i circuite integrate

Nivelutilizatorsaunivelulprogramelordeaplicaie
9

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
Este nivelul cu care suntem cel mai familiarizai. La acest nivel utilizatorul
interacioneaz cu calculatorul prin rularea programelor de aplicaie. Utilizatorul
vede calculatorul prin intermediul programelor de aplicaie. Structura intern sau
structuriledeniveljossuntfoartepuinvizibile.

Nivelullimbajelordenivelnalt
Este nivelul cu care interacioneaz cei care programeaz ntrun limbaj de nivel
nalt (Pascal, C, C++,Java, C#).Programatorul vede doar limbajul i nu detaliile de
niveljos.Programatorulvedetipurilededate,instruciunilelimbajuluidenivelnalt
darnuvedeexactcumsuntimplementateaceledateiinstruciunilanivelmain.
Compilatorulestecelcarefaceasociereantretipurilededateiinstruciuniledela
nivelullimbajuluideprogramareihardwareulmainii.Programelescrisentrun
limbajdenivelnaltpotfirecompilatepediferitemainiiprobabilcvorrulafr
probleme(spunemcprogramelesursscrisenacestelimbajedeprogramaresunt
portabile). Aceast compatibilitate poart numele de compatibilitate la nivel de
codsur.Acestnivelnuareolegturfoartemarecumainapropriuzispentru
care este translatat codul surs. Compilatorul transform codul surs n
instruciunimain.

Nivelullimbajuluideasamblare/limbajuluimain
Limbajulmainseocupcuproblemeledehardwarecumarfiregistreitransferul
de date ntre acetia. Colecia de instruciuni main pentru un anumit calculator
poartnumeledesetdeinstruciunialmainii.Codulmainesteformatdoardin
cifrebinare.Programareafolosinddoarcifrebinareestefoartedificilaacprintre
primele programe de calculator care au fost create a fost asamblorul care
transformmnemonicedelimbajobinuite cumarfiMOVE, ADD,SUB nsecvena
corespunztoare n limbaj main (cod main). Acest limbaj n care exist
corespondeneunulauncucodulmainsenumetelimbajdeasamblare.
Ca rezultat al acestei separri a nivelurilor putem avea maini ce difer n
implementarea de nivel jos dar care au acelai set (sau subset sau superset) de
instruciuni.AceastaapermisIBMsproiectezeseriaIBM360caregarantafaptul
c programele vechi ruleaz pe sisteme noi (compatibilitate n sus). Acest tip de
compatibilitateestecunoscutsubnumeledecompatibilitatebinardeoarececodul
binarruleaznemodificatpeoricaremembrualfamilieidesisteme.Acestaafostn
marepartemotivulpentrusuccesulserieiIBM360.
Intel a accentuat aceast compatibilitate la nivel binar. Programele scrise pentru
procesorul 8086 rulau nemodificate i pe 80186, 80286, 80386, 80486, Pentium.
Existialtefamiliideprocesoarecareauunaltsetdeinstruciuniincompatibilecu
familiidiferite.Transportulprogramelorpeaceleprocesoarenuesteunproceslafel
desimplu.
Nivelulcontrol
Unitateadecontrolesteceacareefectueaztransferuldedatentreregistre.Pentru
aceasta folosete semnale de control care transfer datele dintrun registru ntr
10

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
altul, eventual printrun circuit logic care eventual poate s transforme datele.
Unitateadecontrolinterpreteazinstruciunilemainiiunacteuna,determinnd
transferuldedatentreregistresauoaltaciune.
Modul n care se realizeaz aceasta nu trebuie s priveasc pe programatorul n
limbaj de asamblare. Familia de procesoare 8086 este proiectat n aa fel nct
fiecare membru al familiei poate executa setul original 8086 i n plus orice alte
instruciunisuplimentare(noi)implementatepentrumembrulrespectivalfamiliei.
Prinurmareunprogramscrispentru8086varulapeoricealtprocesordinfamilie.
Unitatea de control se poate implementa n dou moduri: hardware, mod n care
semnaleledecontrolsuntgeneratedintrunblocdecomponenteculogicdigital;
software, mod n care un microprogram scris ntrun limbaj de nivel jos i
implementatnhardwareinterpreteazinstruciunilemain.Acestmicroprogram
se numete firmware pentru c are att elemente hardware ct i software.
Firmwareulseexecutnmicrocontrolere.

Nivelulunitilorfuncionale
Transferuldedatentreregistreialteoperaiiimplementatedeunitateadecontrol
transferdatenidinunitilefuncionale(registreinterneaCPU,ULA,memoria
principal). Unitile funcionale execut operaiile eseniale pentru sistemul de
calcul.

Nivelulporilorlogiceialtranzistorilor
Nivelul cel mai de jos este nivelul porilor logice i nivelul tranzistorilor. La acest
nivelncsevedefuncionalitateadelanivelurile superioare.Unitilefuncionale
sunt construite din pori logice iar porile logice sunt construite din tranzistori.
Porile logice implementeaz operaiile logice la nivelul cel mai de jos, operaii pe
caresebazeazfuncionalitateacalculatorului.Lanivelulcelmaidejoscalculatorul
este format din tranzistori dar la acest nivel funcionarea calculatorului este
exprimat n termeni de tensiuni ale curentului electric (voltaj), propagarea
semnalului,efectecuanticetoatefiindlaunnivelfoartejos.

Interaciuneadintreniveluri
Uneori separarea dintre niveluriestefoartevag. Onou arhitectur poate avea o
implementarecompletpentruinstruciunicunumerenvirgulmobil,pecndo
alt implementare mai minimalist poate avea doar implementarea operaiilor cu
numere ntregi. Instruciunile cu numere reale sunt nlocuite cu secvene de
instruciuninlimbajmaincareimit(emuleaz)instruciunilecunumerereale.
Aa se ntmpl cu microprocesoarele care au ca opiune coprocesorul matematic
pentruoperaiilecunumerereale.Instruciunileceemuleazoperaiilecunumere
reale sunt stocate n ROM (ReadOnly Memory). Nivelul limbaj de asamblare i
nivelurile superioare privesc ambele implementri identic singura diferen fiind
vitezadeexecuie.Oriceemularefuncioneazmaincet.Sepoateemulantregulset

11

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
de instruciuni al unui sistem de calcul pe un alt sistem de calcul. Un astfel de
softwaresenumeteemulator.

Perspectivaprogramatoruluiarhitecturasetdeinstruciuni
Programatorulnlimbajdeasamblareestepreocupatdelimbajuldeasamblareide
unitile funcionale ale sistemului de calcul. Colecia de mulimi de instruciuni i
uniti funcionale se numete arhitectura set de instruciuni (Instruction Set
ArchitectureISA)asistemuluidecalcul.

Perspectivaarhitectuluidesistemedecalcul
Arhitectuldesistemedecalcultrebuiesaiboperspectivasuprasistemuluidela
toate nivelurile. Arhitectul care se concentreaz pe proiectarea calculatorului este
preocupat de cerinele de performan i este constrns de costuri. Performana
poatefispecificatprinvitezadeexecuie,capacitateadestocaresaualiparametri.
Costul poate fi reflectat n bani, dimensiune, greutate sau consum de energie.
Designul propus de un arhitect de sisteme de calcul trebuie s ncerce s ating
elurile de performan i n acelai timp s respecte constrngerile de buget.
Aceasta necesit de multe ori compromisuri ntre diferitele niveluri ale sistemului
decalcul.

Unsistemdecalcultipic
Calculatoarelemoderneauevoluatdelamontrianilor50,60lacalculatoaremult
maimiciimaiperformante.Cutoateinovaiiletehnologiceaprutentretimp,cele
cinci uniti de baz din modelul von Neumann se pot identifica i astzi n
calculatoarelemoderne.
Unitateadeintrare:tastatur,mouse.
Unitatedeieire:monitor,imprimant.
Unitateaaritmeticilogiciunitateadecontrol=CPU
Unitateadememorie:RAM,harddisk,discheta,CDROM.

12

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Nucleulunuicalculatormodernesteconinutpeplacadebaz.Placadebazconine
circuite integrate, sloturi pentru plci de extensie i cabluri pentru conectarea
acestora.

Supercalculatoare
Unuldinmotivelepentrucaresupercalculatoareledisparesteprogresultehnologic
ndomeniulcalculatoarelorceeacefacecasistemeledecalculobinuitesatingo
putere de calcul ce reprezint o fraciune important din puterea de calcul a
supercalculatoarelor,launprefoartemicceilpermiteaproapeoricine.Raportul
pre/performan pentru calculatoarele desktop este foarte bun datorit
comercializrii acestor calculatoare pe scar larg. Supercalculatoarele nu se pot
vindencantitifoartemariaacacesteaauunraportpre/performanmare.
13

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Mark I Universitatea Manchester, lansat n 21 iunie 1948. (a nu se confunda cu Harvard Mark I,


donatUniversitiiHarvarddectreIBMnaugust1944)

GordonMoorecofondatorulIntel(1968), la oraactualChairman Emeritusof


theboardestecunoscutpeplanmondialprincelebralegealuiMoore.n1965el
aprevzutcnfiecareansevadublanumruldetranzistoricepotfipuintrun
chipdecalculator.n1975iaactualizatpreviziuneaspunndclafiecaredoiani
sevadublanumrultranzistorilordintrunchip.Aceastlegeadevenitunprincipiu
careaghidatindustriasemiconductorilornafurnizachipuritotmaiperformante
cucosturitotmaisczute.Investiiilentrouzinceproducemicroprocesoaresunt
enorme.Moorespuneaccelmaiurtcomaralsuarficantrozissetrezeasc
iomenireasnumaiaibnevoiedemaimultputeredecalcul.

Concluzii
AC se ocup cu acele aspecte ale sistemelor de calcul ce sunt vizibile pentru
programator,ntimpceorganizareacalculatoarelorseocupcuaspectelecesuntla
un nivel fizic i nu sunt foarte vizibile pentru programator. Dea lungul timpului
programatoriitrebuiausseocupedefiecareaspectalcalculatoruluiBabbagecu
dispozitivemecanice,ENIACcucabluriiconectori.Pemsurcecalculatoareleau
devenit mai sofisticate, conceptul de nivel al mainii a devenit tot mai important,
permind calculatoarelor s aib comportament extern respectiv intern foarte
diferit, gestionnd complexitatea prin intermediul nivelurilor stratificate. Cea mai
important inovaie care face posibil aceasta este programul stocat, care este
ncarnatnmodelulvonNeumann.ModelulvonNeumannestecelpecarelvedem
nziuadeastzincalculatoareleconvenionale.

14

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

2. Reprezentareadatelor
Introducere
Lanceputurileapariieicalculatoarelorexistauoseriedemiturinceeaceprivete
calculatoarele.Unmiteracuncalculatoresteomainuriadecalculat.Chiari
la vremea respectiv calculatoarele puteau face mult mai mult dect nite calcule.
Un alt mit era c un calculator poate face orice. Astzi tim c exist clase de
probleme care sunt de nerezolvat chiar i pentru cele mai performante
calculatoarele create dup modelul von Neumann. Adevrul n legtura cu
calculatoareleesteundevapelajumtateadistaneidintreceledoumituri.
Noisuntemfamiliarizaicuoperaiialecalculatoruluicenusuntaritmetice:grafic,
audio sau chiar micarea mouseului. Indiferent de tipul de informaie ce este
prelucrat de calculator, informaia trebuie reprezentat sub form de 0 i 1.
Aceasta ridic imediat problema reprezentrii informaiei respective n calculator
(codificareadatelorencoding).Oriceinformaietrebuiereprezentatntrunmod
sistematic,neambiguu.
Noi folosim n mod curent reprezentarea zecimal pentru numere pentru c este
reprezentarea pe care o cunoatem cel mai bine, dar folosirea informaiei binare
pentru transmiterea datelor sa folosit nc nainte de apariia calculatoarelor sub
formacoduluiMorse.
n continuarea vom prezenta cteva din cele mai simple moduri de codificare a
informaiei: reprezentarea numerelor n virgul fix cu semn i fr semn,
reprezentarea numerelor reale (n virgul mobil) i reprezentarea caracterelor.
Vomvedeacntotdeaunaexistmaimultemodurincarepotficodificatedatele,
fiecaremodfiindutilntrunanumitcontext.
Vom vedea c deciziile n legtur cu numrul de bii pe care o arhitectur
particularifolosetepentrureprezentareaunorntregi(deexemplu32debii)au
oconsecinimportantasupranumruluidevaloricepotfireprezentateiasupra
operaiilorcesepotefectua.Sumaadouvalorintregireprezentatepe32debiis
arputeasnusepoatreprezentape32debiiceeaceducelaocondiienumit
depire(overflow).

Reprezentareanumerelornvirgulfix
ntrunsistemdenumeraiecuvirgulfix,fiecarenumrareacelainumrdecifre
iar punctul zecimal este ntotdeauna n aceeai poziie. De exemplu 0.23, 5.12,
9.11.nacesteexemplefiecarenumreformatdintreicifreiarpunctulzecimaleste
poziionat dup prima cifr. n sistemul de numeraie binar putem scrie de
asemenea astfel de numere: 11.10, 01.10 i 00.11. Diferena dintre reprezentarea
numerelor cu virgul fix pe hrtie respectiv n calculator este c n calculator
punctulzecimalnusescrienicierielseconsidercseaflantroanumitpoziie.
Sespunecpunctulzecimalseafldoarnminteaprogramatorului.

15

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Intervaliprecizielanumerelecuvirgulfix
O reprezentare cu virgul fix poate fi caracterizat prin intervalul de valori
reprezentabile(adicdistanadintrecelmaimicicelmaimarenumr)iprecizia
(adic distana dintre dou numere consecutive). Pentru exemplu zecimal de mai
sus (cutrei cifre) intervalul este [0.00, 9.99]iar precizia este 0.01.Eroare n acest
cazestedindiferenadintredounumereconsecutive.Astfeleroareaeste0.01/2
= 0.005. Astfel, putem reprezenta orice numr din intervalul [0.00, 9.99] cu o
preciziede0.005.
Putem observa c exist un compromis ntre interval i precizie. Dac lum
intervalul [000, 999] se pot reprezenta numere dintrun interval mai mare dar i
eroarea este mai mare. De asemenea dac considerm intervalul [.000, .999]
eroareaeste.001.
n fiecare din cele trei cazuri numrul de numere reprezentabile este 1000,
indiferentundepunempunctulzecimal.
Intervalulnuesteobligatoriusnceapcu0.Unsistemzecimaldereprezentarea
numerelorcudoucifrepoateaveaintervalul[00,99]sauintervalul[50,+49]sau
[99,0].Desprereprezentareanumerelornegativevomdiscutamaimultntrunalt
paragraf.
Intervalul i precizia sunt dou aspecte importante n arhitectura calculatoarelor
pentrucambelesuntfiniten implementareaarhitecturii darinfiniten realitate,
aacutilizatorultrebuiesfiecontientdelimitrinmomentulncarencearcs
reprezinteinformaieexternntroformintern.

Axiomaasociativitiidinalgebrnuestentotdeaunavalabiln
reprezentareadatelor
timdelaalgebrc(a+b)+c=a+(b+c).Aceastaesteaxiomaasociativitii.
Dacconsidermunsistemnvirgulfixcuosingurcifrzecimalintervalulde
valoricepoatefi reprezentateste[9,9].Dacconsiderm a=7,b=4ic=3atunci
vom constata c a + (b+c) = 7+(4+ 3) = 7+1=8 ceea cea este corect i (a+b)+c =
(7+4)+(3)=11+3,dar11nuesteovaloarereprezentabilnacestsistemaacva
fi trunchiat la 1 i rezultatul final va fi 2 ceea ce este greit. Aadar, chiar dac
rezultatulfinalcorect(8)poatefireprezentatdacntruncalculintermediarapare
odepirerezultatulfinalnuvamaificorect.
Pentru a rezolva aceast problem nu se poate face nimic practic cu excepia
detectriidepiriiiainformriiutilizatoruluideapariiaei.

Bazedenumeraie
n aceast seciune vom vedea cum se lucreaz cu baze de numeraie diferite,
concentrnduneateniaasuprabazelor2(binar),8(octal)i16(hexazecimal).

16

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
Bazaunuisistemdenumeraiedefineteintervaluldevaloriposibilepentrucifrele
cepotfifolosite.nbazazececifrelesunt{0,1,,9}.Calculatorulfolosetebaza2
pentrureprezentareadatelor.
Forma general pentru determinarea valorii zecimale a unui numr n baza k
reprezentatnvirgulfixeste:

Valoare =

n 1

b k

i = m

Valoarecifreidinpoziiaiestedatdebi.Avemncifrelaparteantreagimcifrela
parteazecimal.
Exemplu: s se evalueze numrul (541.25)10, unde indicele 10 reprezint baza.
Avem,n=3,m=2ik=10.
5x102+4x101+1x100+2x101+5x102=(500)10+(40)10+(1)10+(2/10)10+
(5/100)10=(541.25)10

Putemconsideraunaltexemplunbaza2(1010.01)2unde,n=4,m=2ik=2:
1 x 23 +0x 22 + 1x 21 + 0 x 20 + 0 x 21 + 1 x 22 = (8)10 + (0)10 + (2)10 + (0)10 +
(0/2)10+(1/4)10
Deaicirezultomodalitatedeconversiedintrobazarbitrarnbaza10folosind
metodapolinomial.
naceastmodalitatedereprezentareanumerelornbaza2introducemnoiunile
de bit cel mai semnificativ (bitul din stnga prin convenie) respectiv bit cel mai
puinsemnificativ(bituldindreaptaprinconvenie).

Conversiintrebaze
Am vzut cum se face conversia din baza 2 n baza 10 (metoda polinomial).
Conversiainversdinbaza10nbaza2estepuinmaicomplicat.Ceamaisimpl
metoddeconversieestesconvertimparteantreagiparteazecimalseparat.
Deexempluvremsconvertim23.375dinbaza10nbaza2.
Conversia prii ntregi se face prin mpriri succesive la baza n care se face
conversia i prin reinerea resturilor (metoda resturilor). Primul rest obinut
reprezintcifraceamaipuinsemnificativanumruluintregconvertit.Laadou
mpriredempritulestectuldelamprireaprecedent.Procesulsecontinu
pnseobinectulzero.

17

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Putemconvertioricenumrdinbaza10noricealtbazprinmpririsuccesivela
bazancaresefaceconversia.

Conversia prii fracionare se face prin metoda nmulirii. Partea fracionar este
mai mic dect 1 iar prin nmulirea cu 2 rezultatul va fi mai mic dect 2 aa c
partea ntreag a acestui rezultat va fi chiar cifra cea mai semnificativ a prii
fracionare a numrului n baza 2. La pasul urmtor se nmulete cu 2 partea
fracionar a rezultatului obinut la pasul precedent i aa mai departe pn
obinemparteafracionar0saupncndobinemnumruldecifredorit.

Multiplicatorulestebazancaresefaceconversia.
Rezultatulfinalvafi(23.375)10=(10111.011)2

Fraciiperiodice
Cu toate c aceast metod de conversie funcioneaz pentru orice baze, se poate
ntmplacassepiardopartedinprecizientimpulconversiei.Nutoatefraciile
neperiodice din baza 10 au o reprezentarea neperiodic n baza 2. De exemplu
(0.2)10=(0.(0011))2.Aadar0.2dinbaza10esteofracieperiodicnbaza2.

18

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Decesentmplaceasta?Ofracieneperiodicdinbaza10sepoatereprezentasub
formai/10k=i/(5kx2k)=j/2k,undej=i/5k.Aadar5ktrebuiesfieunfactoralluii.

Reprezentarebinarreprezentarezecimal
Majoritatea calculatoarelor folosesc intern baza 2 pentru reprezentarea datelor i
operaiiloraritmetice.Totuiexistunelecalculatoarecarefolosescinternbaza10
pentrureprezentareadateloraacnusuferdeproblemaconversiilorprezentat
maisus.Metodafolosiriiinterneabazei10nuestenumaipentruevitareaerorilor
ce pot aprea la conversii ci i pentru a evita procesul de conversie la unitile de
intrareaiieire,procespentrucaresealocdestuldemulttimp.

Reprezentrinbinar,octalihexazecimal
Numerelebinarereflectreprezentareainternefectivanumerelornmajoritatea
sistemelor de calcul. Totui aceast modalitatea de scriere a numerelor are
dezavantajul c numerele folosesc mult mai multe cifre dect n alte baze de
numeraie.Numerelenbaza2sereprezintcairurilungide0i1.Bazele8i16
se folosesc mult mai des pentru scrierea i afiarea numerelor din reprezentarea
intern pentru c aceste dou numere reprezint puteri ale lui 2 i conversia din
baza2nacestebazesepoatefacefoarterepedeifoartesimpluprintrunprocedeu
pe care l vom descrie n continuare. Exist o serie de avantaje practice pentru
reprezentareanumerelornacestedoubaze.
Cifrele bazei8sunt{0, 1,, 7}iarcifrelebazei16sunt{0,1,,9,A, B,C,D,E,F}
undeAesteocifrcarecorespundevaloriizecimale10,Blui11,,Flui15.

Baza2 Baza8 Baza10 Baza16


0
0
0
0
1
1
1
1
19

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
10
11
100
101
110
111
1000
1001
1010
1011
1100
1101
1110
1111

2
3
4
5
6
7
10
11
12
13
14
15
16
17

2
3
4
5
6
7
8
9
10
11
12
13
14
15

2
3
4
5
6
7
8
9
A
B
C
D
E
F

Dintabelsevedecavemnevoiede3biipentruareprezentaoricecifrdinbaza8
ide4biipentruareprezentaoricecifrdinbaza16.ngeneralestenevoiedek
biipentruareprezentatoatecifrelebazei2k.
Pentruaconvertiunnumrdinbaza2nbaza8cremgrupedecte3cifrebinare
ncepnddelapunctulzecimalsprestngainspredreapta.Dacultimagrupnu
estecompletseadaugzero.Fiecareastfeldetripletseconvertetedirectnbaza
8,ncifracorespunztoare.
Deexemplu:
(10110)2=(010)2(110)2=(2)8(6)8=(26)8.
Pentruaconvertinbaza16seprocedeazanalognumaicnlocdegrupedecte3
cifrebinaresecreeazgrupedecte4cifre.
Exemplu:
(10110110)2=(1011)2(0110)2=(B)16(6)16=(B6)16.

Pentruaconvertiunnumrdintrobazxntroaltbazy(undexiysuntdiferite
de10)primadatsefaceconversiadinbazaxnbaza10(prinmetodapolinomial)
iarmaiapoidinbaza10nbazayprinmetodampririipentruparteantreagi
prinmetodanmuliriipentruparteazecimal.

Operaiilearitmeticealecalculatorului
Vom prezenta modul n care se efectueaz adunrile binare pentru c aceast
operaie este important n reprezentarea numerelor binare cu semn. Adunarea
binarsefacesimilarcumodulncarefacemadunareazecimal,aacumseveden
figur:

20

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Dou numere A i B sunt adunate de la dreapta la stnga, crend o sum i un


carry n fiecare poziie. Din moment ce avem dou cifre n momentul n care le
adunmavempatrusituaiidiferite0+0,0+1,1+0i1+1.Pentrufiecaredinaceste
patrusituaiiapareiuncarryacruivaloarepoatefitot0sau1aacntotal
suntoptsituaiicetrebuieconsideratelaadunare,situaiicesuntilustratenfigur.
Dac avem la dispoziie opt bii pentru reprezentarea numerelor atunci numrul
total de numere ce pot fi reprezentate este 256. Pn acum am luat n calcul doar
numerele pozitive darevident trebuie s putem reprezenta i numere negative. n
continuarevomtrecenrevistpatrumoduridereprezentareanumerelorcusemn
nbaza2.

Numerecusemnnvirgulfix
Cele patru moduri de reprezentare a numerelor cu semn n virgul fix sunt:
magnitudinecusemn,complementfadeunu,complementfadedoiinotaiacu
exces. Vom prezenta fiecare din aceste moduri de reprezentare folosind numere
ntregipentruexemple.Dealungulprezentriisepoateconsultatabeluldemaijos
ncareaparreprezentriletuturornumerelorpetreibiintoatecelepatrumoduri.

Zecimal Fr Magn.
Comp.1 Comp.2 Exces4
semn cusemn
7
111

6
110

5
101

4
100

3
011
011
011
011
111
2
010
010
010
010
110
1
001
001
001
001
101
+0
000
000
000
000
100
0

100
111
000
100
1

101
110
111
011
21

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
2
3
4

110
111

101
100

110
101
100

010
001
000

1. Magnitudinecusemn
Este cea mai familiar reprezentare pentru noi ntruct o folosim la
reprezentareanumerelornbaza10.Semnulplussauminusnstnganumrului
indicdacnumrulestepozitivsaunegativ(+1210sau1210).nreprezentarea
magnitudine cu semn n baza 2, cel mai semnificativ bit este folosit ca bit de
semn. Bitul 0 semnific numr pozitiv, iar bitul 1 semnific numr negativ.
Restulbiilorreprezintvaloareaabsolutanumrului.
Exempludereprezentarepe8bii:
(+12)10=(00001100)2
(12)10=(10001100)2
Numrulnegativseformeazprinsimplaschimbareabituluidesemndin0n1.
Pentruzeroexistdoureprezentri(zeropozitivizeronegativ):(00000000)2,
(10000000)2
Pe8biiexist256secvenebinarediferite,iardinacesteadoar255reprezint
numeredistinctepentruc+0i0reprezintacelainumr.
2. Complementfadeunu
Operaia complement fa de unu este foarte simplu de efectuat: se convertesc
toibiiidin0n1idin1n0.Dacbitulcelmaisemnificativeste0numrul
este pozitiv, dac este 1 numrul este negativ, la fel ca i la reprezentarea
magnitudinecusemn.Aceastoperaiedeschimbareabiilordin0n1idin0
n 1 poart numele de complementare. Aici avem urmtoarele reprezentri
pentruvaloriledinexempluprecedent,totpe8bii:
(+12)10=(00001100)2
(12)10=(11110011)2
i aici avem tot dou reprezentri pentru zero aa c numrul de numere
distinctereprezentabilepe8biiestetot255.Acestmoddereprezentarenueste
foarte des folosit datorit faptului c este greu de efectuat operaia de
comparaieatuncicndexistdoureprezentripentruzero.

3. Complementfadedoi
Seformeazntrunmodasemntorcucomplementulfadeunudarnplusse
maiadun1.Dacrezultuncarryoutdelacelmaisemnificativbitatunciacel
bit se ignor. i n aceast reprezentare dac bitul cel mai semnificativ este 0
avemdeafacecuunnumrpozitiv,iardaceste1avemdeafacecuunnumr
negativ. Avantajul acestui mod de reprezentare este c aici nu avem dou
reprezentripentru0.
(+0)10=(00000000)2

22

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
Complementul fa de unu este (11111111)2 iar adunarea lui 1 ne d:
(00000000)2aadar(0)10=(00000000)2
Fiind o singur reprezentare pentru zero, n complement fa de doi putem
reprezentape8bii256devaloridistincte.
Exemplu:
(+12)10=(00001100)2
(12)10=(11110100)2
Numrul de numere pozitive reprezentabile este egal cu numrul de numere
negativereprezentabile(daclconsidermpezeronumrpozitiv).Peoptbii
putemreprezentancomplementfadedoinumerelecusemndinintervalul:[
128, 127]. Pentru numrul 128 nu putem s gsim numrul pozitiv
corespunztor. Dac ncercm s facem acest lucru vom obine: (
128)10=(10000000)2,princomplementarefadeunuobinem(01111111)2iar
prinadunarealui1obinem(10000000)2,adicnumruliniial.
n calculatoarele convenionale aceast reprezentare se folosete cel mai
frecvent.
4. Reprezentarenexces
Aicinumrulestetratatcanumrfrsemn,darvaloareaestedeplasatprin
scderea unei valori (excesul). Cea mai mic valoare din aceast reprezentare
(cea care are toi biii zero) va fi opusul excesului iar celelalte secvene de bii
vor fi numerele n ordine cresctoare. n reprezentarea exces numrul este de
faptsumadintrecomplementulfadedoialsuiovaloarenumitexces.
Acum vom reprezenta din nou valorile (+12)10 i (12)10 pe opt bii folosind
reprezentareaexces 128. Unumrn forma exces128seobine prinadunarea
lui 128 la numrul original i prin crearea versiunii binare fr semn a lui.
Pentru(+12)10
Calculm(128+12=140)10irezultsecvenadebii(10001100)2.
Pentru(12)10calculm(12+128=116)10ceeacenbaza2este(01110100)2.
Valoareafolositpentruexcesnuareoimportannumericdeosebit,eafiind
folositdoarpentrudeplasareareprezentriinumerelorncomplementfade
doi.
i aici zero are o singur reprezentare, deoarece reprezentarea n exces este
doaroversiunedeplasatareprezentriincomplementfadedoi.
Pentru exemplul precedent, valoarea de exces este aleas n aa fel nct are
reprezentareanbazadoiidenticcucelmaimicnumrnegativpecarevrems
lreprezentm,ceeacearecaefectcasecveneledebiisfiesortatecresctor
dac sunt interpretate ca numere fr semn. Astfel cel mai mic numr negativ
este (128)10 = (00000000)2 iar cel mai mare numr pozitiv pe opt bii este
(+127)10=(11111111)2.
Aceastreprezentaresimplificefectuareacomparaiilorntrenumere,deoarece
secvenele de bii pentru numerele negative, interpretate ca valori fr semn,
suntmaimicidectsecveneledebiipentrunumerelepozitiveinterpretatede
asemeneacavalorifrsemn.
23

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Reprezentareazecimalcodificatbinar(BCDBinaryCodedDecimal)
Numerele pot fi reprezentate folosind baza 10 dar codificarea s se fac n baza 2
astfelnctfiecarecifrdinbaza10ocuppatrupoziiibinare.Aceastasenumete
codificare BCD. Exist 10 cifre i 16 secvene binare diferite de lungime 4 aa c
rezultatulestec6secvenesuntnefolosite.nfigursuntpatrucifrezecimaleaa
cavem104=10000secvenedebiivalidecutoatecexist216=65536secvene
debiidistinctepe16bii.

Cu toate c unele secvene de bii sunt nefolosite, formatul BCD este folosit n
calculatoare i aplicaii de bussines. n aceast reprezentare sunt mai puine
probleme n reprezentarea fraciilor neperiodice n baza 10 (fracii ce nu au o
reprezentareneperiodicnbaza2).Nuestenevoiedeasefaceconversialaintrare
dinbaza10nbaza2inicilaieiredinbaza2nbaza10.
Efectuarea operaiilor aritmetice asupra numerelor BCD cu semn nu este foarte
evident. Cu toate c suntem obinuii s folosim pentru baza 10 reprezentarea
magnitudine cu semn, n sistemele de calcul se folosete o alt metod pentru
reprezentareanumerelornbaza10.nsistemuldenumeraiecomplementfade
9,numerelepozitivesuntreprezentatenBCDdarcifraceamaidinstngaestemai
micdect5pentrunumerepozitiveimaimaresauegaldect5pentrunumerele
negative.Numrulnegativncomplementfade9seformeazprinscdereadin9
a fiecrei cifre. De exemplu, numrul +301 din baza 10 este reprezentat ca 0301
(saumaisimplu301)attncomplementfade9cticomplementfade10,aa
cumsevedenfigurademaisuslapunctula).Complementulfade9negativallui
este 9698 ceea ce se obine prin scderea din 9 a fiecrei cifre lui 0301 (figur
punctulb)).
Complementulfade10negativseobineadunndvaloare1lacomplementulfa
de 9 negativ, prin urmare reprezentarea n complement fa de 10 a lui 301 este
9698 +1 = 9699 (figur punctul c)). Pentru acest exemplu, intervalul de numere
pozitivecesepotreprezentaeste[0,4999]iarnumerelenegativesunt[5000,9999].

Reprezentareanumerelornvirgulmobil
nreprezentareanumerelorcuvirgulfixnumruldecifredinparteastng,
respectivdinparteadreaptapunctuluizecimalestefixat.nvirgulfixenevoie
demultecifrepentruareprezentaunintervaldevaloricaresaiboimportan
practic.Deexemplu,uncalculatorcarepoatereprezentanumerepnlauntrilion
24

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
nvirgularenevoiedecelpuin40debiinparteastngavirguleideoarece240
esteaproximativ1012.Dacacelaicalculatorvreasreprezintenvirgulfix1/un
trilionatunciarenevoie40decifrebinarenparteadreaptapunctuluizecimal,
ceeaceducelauntotalde80decifrebinare.
npracticaparnumeremultmaimariimultmaimicidectcelemenionatemai
sus,ceeacemreteimaimultresurselecetrebuieslealocecalculatorulpentru
reprezentarealor.Nunumaictrebuiealocatemaimulteresurseacestor
reprezentridenumeredaricalculelesevorefectuamailentdacfolosim
reprezentricuattdemultecifrebinare.Totui,atuncicndlucrmcunumere
foartemari,nuavemnevoiedeopreciziefoartemareiarcndlucrmcunumere
foartemicinuavemnevoiedeintervalemari.Putemmrieficienaprinreinerea
doaraprecizieidecareenevoie.

Intervaliprecizienreprezentareanumerelornvirgulmobil
Reprezentareanvirgulmobilpermitereprezentareaunuiintervalmultmaimare
denumerecuunnumrmaimicdecifreprinseparareacifrelorfolositepentru
preciziedecifrelefolositepentruinterval.
Exemplu:Reprezentareanvirgulmobilnbaza10anumruluiluiAvogadro:
+6,023x1023.
Aici,intervalulestereprezentatdeoputerealui10iarpreciziaestereprezentatde
numrulnvirgulfix6,023.nacestcontextnumrulnvirgulfixsenumete
mantissausignificandalnumrului.Astfel,unnumrnvirgulmobilpoatefi
caracterizatprintruntripletdenumere:semn,exponentimantis.
Intervalulestedeterminatnprimulrnddenumruldecifredinexponent(aicise
folosescdou)idebazafolosit(aiciestebaza10)iarpreciziaestedeterminatn
primulrnddenumruldecifredinmantis(aicisuntpatru).Astfel,totnumrul
poatefireprezentatprinsemniasecifre,doupentruexponentipatrupentru
mantis.nfigurademaijosesteprezentatmodulncaretripletulsemn,exponenti
mantisarputeafiformatatncalculator.

Aceastmodalitatedegrupareacelortreielementevomvedeacesteutiln
momentulncaresecompardounumerereprezentatenvirgulmobil.Punctul
zecimalnuestestocatpentrucacestantotdeaunaestenaceeaipoziiencadrul
mantisei(punctulzecimalestedoarnminteaprogramatorului).
Dacavemnevoiedeunintervalmaimareisuntemdispuissacrificmpentru
aceastaprecizia,atunciputemfolosidoartreicifrepentrumantisiarpentru
25

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
exponent,nlocdedoucifresfolosimtrei.nfelulacestamrimintervalulfrs
mrimnumruldecifrefolositepentrureprezentareanumrului.Oaltmodalitate
demrireaintervaluluiestedeamribazaceeaceduceilamrireapreciziei
pentrunumerelemicidarilascdereaprecizieipentrunumerelemari.
Compromisulntreintervaliprecizieesteunavantajimportantnreprezentarea
numerelornvirgulmobil,darpreciziareduspoateprovocananumitesituaii
neplceri.

Normalizareibitulascuns
Oproblemlareprezentareanumerelornvirgulmobilestecacelainumr
poatefireprezentatnmaimultemoduri,ceeacefacecaoperaiiledecomparaiei
celearitmeticesfiedificile.
Deexemplu:
3584.1x100=3.5841x103=.35841x104.

Pentruaevitaaceastproblemareprezentriimultiple,numerelenvirgulfix
suntpstratenformanormalizat.Punctulzecimalestedeplasatlastngasaula
dreaptaastfelnctsfienstngaceleimaisemnificativecifre,iarexponentuleste
ajustatnconsecin.nexempluldemaisusultimaformanumruluiesteforma
normalizat.Numrulzeronupoatefireprezentatastfel,aacpentruzeroseface
oexcepie:toatecifreledinmantissuntegalecu0.
Dacmantisaestereprezentatnbaza2atuncievidentvomaveacifraceamai
semnificativanumrului1(cifraceamaidinstnga).Majoritateaformatelorn
virgulmobil(inclusivIEEE754)nusalveazacestbit.Aceastcifrnutrebuie
stocatpentrucsesubnelegecesteacolo.Consecinaestecavemunbit
suplimentarpentruprecizie.Acestbitcelmaisemnificativsenumetebitulascuns.
Deexemplu,dacmantisanformnormalizateste.11010,atunciesuficientsse
stocheze1010.Bitulcelmaisemnificativ(dinstnga)estetrunchiat.

Reprezentareanumerelornvirgulmobilncalculator
Vomproiectaunformatsimpludestocareanumerelornvirgulmobilpentrua
ilustrafactoriiimportanicareintervin.Pentrumantisvomfolosioreprezentaren
magnitudinecusemn,cuunbitpentrusemnitreicifrehexazecimalepentru
mantis.Exponentulvafireprezentatcanumrpe3biinexces4cubaza16.
Formanormalizatanumruluiarepunctulzecimalnstngacelortreicifre
hexazecimale.Biiivorficombinainfelulurmtor:bituldesemnestebituldin
stnga,urmatde3biipentruexponent,urmaideceletreicifrehexazecimaleale
mantisei.Bazaipunctulzecimalnuvorfistocatenaceastform.
Motivulpentrucareamalesaceastreprezentareestecassepoatefectuacu
uurinoperaiiledecomparaienformampachetat(egalitate,inegalitate,mai
micsauegal,maimaresauegal).
26

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Bitul de
semn

Trei bii
pentru
exponent

Trei cifre n baza 16

Punctul zecimal

Pentrualreprezentape(358)10nacestformatprocedmnfelulurmtor:
Primulpasesteconvertireanumruluinvirgulfixdinbazaoriginalntrun
numrnvirgulfixnbazaint.Conversianumruluidinbaza10nbaza16se
faceastfel:

Ctul
Restul
358/16
=
22

6
22/16=
1

6
1/16 =
0

Astfel,(358)10=(166)16.Urmtorulpasesteconvertireanumruluinvirgulfixn
numrnvirgulmobil:
(166)16=(166.)16x160.(Expresia160nesugereazfaptulcavemdeafacecubaza
16,pecndnumrul16trebuieinterpretatnbaza10defapt(160)10=(100)16).
Urmtorulpasestenormalizareanumrului:
(166.)16x160=(.166)16x163.
Ultimulpasestecompletareabiilornumrului.Numrulestepozitivaacpunem
bitul0cabitdesemn.Exponentuleste3,darlreprezentmnexces4,aac
secvenadebiipentruexponentsecalculeaznfelulurmtor:

011(+3)10
Exces4
+100(+4)10
Exponentexces4=111
nfinal,fiecarecifrnbaza16estereprezentatnbinarca:1=0001,6=0110,
6=0110.Secvenadebiivafi:
0 1

Bitul de
semn (+)

0
3
Exponentul

6
Partea zecimal

27

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
Punctulzecimalnuestereprezentatexplicitnsecvenadebii.Prezenaacestuia
estesubneleas.nmemoriacalculatoruluisecvenadebiivafi:
0111000101100110,frspaiintrebiiiconsecutivi,aacumaparnfigur.
Folosireareprezentriiexces4pentruexponentnlocdecomplementfade2
simplificoperaiiledeadunareiscdereanumerelornvirgulmobil.Pentrua
adunasauascdeadounumerenormalizatereprezentatenvirgulmobil,
exponentulmaimictrebuiemritlaexponentulmaimare(aceastapstreaz
intervalul).Astfel,numrulmaimicnuvamaifinformnormalizat.Pentrua
determinacareexponentestemaimare,trebuiestratmsecvenadebiicaun
numrfrsemnisfacemcomparaia.Folosindreprezentareaexces4,celmai
micexponenteste4,adic000.Celmaimareexponenteste+3,adic111.Restul
secvenelordebii,pentru3,2,1,0,1,2vorfi001,010,011,100,101i110.
Dacavemosecvendebiipentru(358)10,mpreuncuodescrierea
reprezentriinvirgulmobil,putemdeterminacuuurinnumrul.Bitulde
semneste0,ceeacenseamncnumrulestepozitiv.Exponentulnformafr
semneste(+7)10,dardinmomentcefolosimexces4,trebuiesscdem4dineli
obinemexponentulreal(+74=+3)10.Fraciasegrupeazncifrehexazecimalede
cte4biifiecare,obinnd(0166)16.Concluzionnd(+.166x163)16=(358)10.
Acum,spresupunemclaparteafracionarsuntpermiidoar10bii,nlocde12
cumeramaisus.ntrebareaestecumseschimbreprezentarea.Ovariantarfis
rotunjimfraciaisajustmexponentulpemsur.Oaltvariant,pecareoi
descriemncontinuare,estestrunchiembiiiceimaipuinsemnificativiprin
eliminarealoriastfelevitmajustareaexponentului,aacnumrulpecarel
reprezentmestedefapt:

0 1

Bitul de
semn (+)

0
3
Exponentul

Partea zecimal

Dacbiiilipssuntinterpretaicafiind0,atunciaceastsecvendebiireprezint
(.164x163)16.
Aceastmetoddetrunchiereproduceoeroareneuniform,dinmomentcevalorile
00,01,10,11sunttoatetratateca0,aaceroareaestenintervalul[0,(.003)16].
Indiferentceformatfolosimpentrureprezentareanumerelornvirgulmobil,acel
formattrebuiecunoscutdetoiceicarevorsstochezerespectivsobinvalorile
reprezentate.IEEE(InstituteofElectricalandElectronicsEngineers),astandardizat
formateledereprezentarenvirgulmobil.StandardulIEEE754pentru
reprezentareanumerelornvirgulmobilestestandarduluniversalacceptati
folosit.Aceststandardlvomprezentantrunparagrafulterior.
28

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Erorinreprezentareanumerelornvirgulmobil
Faptulcpreciziafinitintroduceerorinseamncartrebuisanalizmctde
mareesteaceaeroare(prineroarenelegemdistanadintredounumere
consecutivereprezentabile),idaceroareaesteacceptabilpentruaplicaia
noastr.Deexemplu,osurspotenialdeeroriestereprezentareanumruluiun
milioncanumrrealnvirgulmobiliscdereadineldeunmiliondeoriavalorii
1.Lasfritpoatesrmntotunmiliondaceroareaestemaimaredect1.
Pentruacaracterizaeroarea,intervalulipreciziafolosimurmtoarelenotaii:

b
baza
s
numruldecifresemnificativealepriifracionare
M
celmaimareexponent
m
celmaimicexponent

Numruldecifresemnificativealepriifracionareestereprezentatdes,ceeace
estediferitdenumruldebiidinparteafracionardacbazaestediferitde2(de
ex.nbaza16enevoiede4biipentrureprezentareafiecreicifre).Dacbazaeste
2katuncienevoiedekbiipentrureprezentareafiecreicifre.Folosireaunuibit1
ascunsmretevaloarealuiscu1cutoatecnumretenumruldenumere
reprezentabile.nexemplulprecedent,existtreicifresemnificativelapartea
fracionaranumruluinbaza16iexist12biiceformeazceletreicifre.Exist
treibiinexponentulreprezentatnexces4,ceeacepermitereprezentareaoricrui
exponentdinintervalul[22,221].Pentruacestcaz,b=16,s=3,M=3im=4.
nreprezentareanumerelornvirgulmobilsuntcincicaracteristicipecarele
lumnconsiderare:numruldenumerereprezentabile,numerelecuceamaimare
respectivceamaimicmantisidimensiuneaceleimaimarirespectivaceleimai
micidiferenedintredounumeresuccesive.
Numruldenumerereprezentabilepoatefideterminatdupformulademaijos:

Bituldesemnpoateluadouvalori(A).Numrultotaldeexponeniesteindicatla
poziia(B).Nutoatesecveneledebiisuntvalidentoatereprezentrile.
StandardulIEEE754pentrureprezentareanumerelorrealenvirgulmobil,are
celmaimicexponent126cutoatecexponentul,fiindreprezentatpe8bii,poate

29

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
reprezentanumerelenegativepnla128.Secveneledebiicenupotfifolosite
suntrezervatepentrunumerespeciale:zeroiinfinit.
Primacifrapriifracionarepoateluaoricevaloarecuexcepialuizero,n
reprezentarenormalizat(cuexcepiautilizriibituluiascuns)aacumesteindicat
devaloarea(b1)dinpoziia(C).Restulcifrelorpriifracionarepotluaorice
valoaredincelebvalorialecifrelorbazeiaacumesteindicatdevaloareabs1din
poziia(D).Dacsefolosetebitulascuns,atuncipoziiaCesteeliminatipoziiaD
estenlocuitcubs.Avemnevoieideoreprezentarepentruzeroipentruasta
apareipoziia(E).
Celmaimicnumrreprezentabilarecelmaimicexponenticeamaimicform
normalizatdiferitdezero.Primacifrtrebuiesfiediferitdezero.i,din
momentce1esteceamaimicvaloarecepoatefiplasatrezultcceamaimic
valoarereprezentabilesteb1.Numrulcuceamaimicmagnitudineesteatunci:
bmb1=bm1.Numrulcuceamaimaremagnitudinearecelmaimareexponenticea
maimarepartefracionaradic:bM(1bs).
Caexemplu,sconsidermreprezentareanvirgulmobilncareavemunbitde
semn,unexponentpe2biireprezentatnexces2iopartefracionarnbaza2
reprezentatpe3biinformnormalizatncarebitulcelmaisemnificativeste
vizibil(adicnuesteascuns).Reprezentarealuizeroestesecvenadebii000000.
nfigurademaijossuntprezentatetoatenumerelecepotfireprezentatenacest
format.

Seobservcntre0iprimulnumrreprezentabilesteodistandestuldemare;
aceastasentmplpentrucreprezentareanormalizatnusuportsecvenede
biicecorespundnumerelordintrezeroiprimulnumrreprezentabil.
Celmaimicnumrreprezentabilestecelpentrucareexponentulipartea
fracionaraucelemaimicivalori.Celmaimicexponenteste2iceamaimic
partefracionarnormalizateste(.100)2.Celmaimicnumrreprezentabilestebm
xb1=bm1=221=1/8.
Celmaimarenumrreprezentabilestecelpentrucareexponentulipartea
fracionaraucelemaimarivalori.Ceamaimarepartefracionaresteceapentru
caretoibiiisuntegalicu1,adicnumrcareestecu23maimicdect1,din
momentcearetreicifrelaparteafracionar.Celmaimarenumrreprezentabil
estebMx(1bs)=21x(123)=7/4.
30

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
Ceamaimicdiferendintredounumerereprezentabilesuccesiveseobine
atuncicndexponentulareceamaimicvaloareicelmaisemnificativbitalprii
fracionaresemodific,adicbmxbs=bms=223=1/32.
Ceamaimarediferendintredounumerereprezentabilesuccesiveseobine
atuncicndexponentulareceamaimarevaloareiarcelmaisemnificativbitalprii
fracionaresemodific,adicbMxbs=bMs=213=.
Numruldesecvenedebiicarereprezintnumerevalideestemaimicdect
numrultotaldesecvenedebii,datoritnormalizrii.Numruldenumere
reprezentabileesteformatdincincipri(aacumamdiscutatmaisus).La
stabilireaacestuinumrseinecontdebituldesemn,exponentul,primacifr
semnificativ,restulcifrelorisecvenadebiipentruzero.Aceastasecalculeaz
dupformula:

2x((Mm)+1)x(b1)xbs1+1=2x(1(2)+1)x(21)x231+1=33.

Seobservcdifereneledintredounumeresuccesivesuntmicipentrunumere
miciisuntmaripentrunumerelemari.Eroarearelativesteaproximativaceeai
pentrutoatenumerele.Dacfacemraportuldintrediferenadintredounumere
mariiunnumrmarerespectivraportuldintrediferenadintredounumeremici
iunnumrmicvomobservacrapoartelesuntaceleai.

Distan mare
Numr mare

Distan mic
Numr mic

Aicisafolositreprezentareapentruunnumrmic,nloculreprezentriipentru
celmaimicnumrdeoarecediferenadintrezeroiprimulnumrreprezentabil
esteuncazparticular.

Exemplu:
Sseconverteasc(9.375x102)10nbaza2notaietiinific.Rezultatultrebuies
aibformax.yyx2z.
Primadatconvertimnumruldinreprezentareanvirgulmobilnreprezentarea
nvirgulfixprinmutareapunctuluizecimalcudoupoziiiladreaptaiobinem:
0.09375.Maiapoiconvertimnumruldinbazazecereprezentarevirgulfixn
baza2reprezentarevirgulfixprinmetodanmulirii:

31

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
.09375x2
=0.1875
.1875x2
=0.375
.375x2
=0.75
.75x2
=1.5
.5x2
=1.0

Astfel(.09375)10=(.00011)2.
Lasfritconvertimnumruldinreprezentareanvirgulmobilnforma
normalizatnbaza2:.00011=.00011x20=1.1x24.

StandardulIEEE754pentrureprezentareanvirgulmobil
Existnumeroasemoduridereprezentareanumerelornvirgulmobil,oparte
dinacesteafiindtrecutedejanrevist.Fiecarereprezentarearepropriile
caracteristicinceeacepriveteintervalul,preciziainumruldenumere
reprezentabile.Pentruambuntiportabilitateasoftwareuluiipentruaasigura
ouniformitateaacalculelorcunumerereprezentatenvirgulmobil,afost
dezvoltatstandardulIEEE754pentrureprezentareanumerelorbinarenvirgul
mobil(n1985).Toatearhitecturilenoiofersuportpentruaceststandard.
StandardulIEEE754,aacumlvomdescriencontinuare,trebuiesfiesuportatde
sistemuldecalculinudentreghardwareul.Aadarsepoatefolosiocombinaie
hardwaresoftwarepentruarespectastandardul.
Existdouformateprincipalenaceststandard:preciziesimplipreciziedubl.
nfigurademaijosseprezintschematicceledouformate:

Formatulnsimplprecizieocup32debii,iarformatulndublprecizieocup64
debii.
Bituldesemnestebitulcelmaisemnificativ(bituldinstnga).Urmeazexponentul
pe8biireprezentatnexces127pentrucaresecveneledebii00000000
respectiv11111111suntrezervatepentrucazurispeciale.Pentruformatulndubl
precizieexponentulsereprezintpe11biinexces1023.Urmeazpartea
fracionarreprezentatpe23debiiiexistunbitascunsnstngapunctului
zecimalaacrezultuntotalde24debiipentrusignificand.Laformatulndubl
32

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
preciziedeasemeneaesteunbitascunsceeaceducelauntotalde53debiipentru
significand.Pentruambeleformate,numerelesuntnormalizate.
Existcincitipuridenumerecepotfireprezentate:numerenormalizatediferitede
zero,zeropurcuratreprezentatprinsecvena00000000nexponentitoibiii
egalicuzerolaparteafracionar.Bituldesemnpoatefi0sau1ceeacenseamnc
existdoureprezentripentruzero+0i0.
Infinitareoreprezentarencareexponentulconinesecvenadebiirezervat
11111111iarparteafracionarconinedoarzerouri,bituldesemnfiind0sau1.
Infinitesteutilatuncicndtrebuietratatesituaiidedepiresaucndtrebuies
dmoreprezentarevalidunuinumrdiferitdezeroceafostmpritlazero.Dac
zeroestempritlazerosauinfinitestempritlainfinitrezultatulestenedefinit.
AceastasereprezintprinformatulNaN(NotaNumber)ncareexponentulconine
secvenadebiirezervat11111111,iarsignificandulestediferitdezerontimpce
bituldesemnpoatefi0sau1.NaNpoatefiprodusiprinncercareadeaextrage
rdcinaptratdin1.
Aacumsentmplcutoateformelenormalizate,existodiferenmarentrezero
iprimulnumrreprezentabil.Folosireareprezentriidenormalizate(zero
murdar)permitereprezentareaunornumeredinacestinterval(cuprinsntrezero
iprimulnumrreprezentabil).Bituldesemnpoatefi0sau1,exponentulconine
secvenadebiirezervat00000000ceeacereprezint126pentrupreciziesimpl
i1022pentruprecizieidubl,iarsignificandulconinesecvenadebiiefectiv
pentrumagnitudineanumrului.Aicinuexistbitascuns.Reprezentarea
denormalizatnuesteoreprezentarenenormalizat.Diferenaestecexisto
singurreprezentarepentrufiecarenumrdenormalizatioinfinitatede
reprezentripentruformanenormalizat.
nfigurademaijosdmctevaexempledenumerereprezentatenvirgulmobil.

Exempleledela(a)la(h)suntexempledenumerereprezentatecuformatulprecizie
simpl,iarexemplu(i)estereprezentareaunuinumrnpreciziedubl.

33

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
nexemplul(a)signifcanduleste1.101darestereprezentatexplicitdoarpartea
fracionar101.Exemplu(b)folosetecelmaimicexponent(preciziesimpl)care
este126iarexemplul(c)folosetecelmaimareexponent(preciziesimpl)care
este127.
Exemplele(d)i(e)ilustreazdoureprezentripentruzero.Exemplul(f)prezint
osecvendebiipentrureprezentarealuiinfinit.Exemplul(g)esteunnumr
denormalizat.Exemplu(h)prezintreprezentarealuiNaNcarepoatefipozitivsau
negativ.Ultimulexemplu(i)prezintreprezentarealui2128ndublprecizie.
Pelngreprezentrilenpreciziesimplidublexistiformatelesingle
extendedidoubleextended.Formateleextinsenusuntvizibileutilizatorului,dar
acesteasuntfolositepentruareineunnumrmaimaredeprecizieinternla
efectuareacalculelorpentruareduceefectuldeeroarederotunjire.Formatele
extinsemresclrgimeaexponeniloriapriifracionarecuunnumrdebiice
poatevariadelaoimplementarelaalta.Deexemplu,formatulsingleextended
adaugcelpuintreibiilaexponentioptbiilaparteafracionar.Formatul
doubleextendedarederegul80debiicu15biilaexponenti64debiilapartea
fracionar.

OimplementareaIEEE754trebuiesfurnizezecelpuinpreciziesimpl,celelalte
formatesuntopionale.Rezultatuloricreioperaiicunumerenvirgulmobil
trebuiesfiecorectpnlajumtatedebitdinbitulcelmaipuinsemnificatival
priifracionare.Aceastanseamncntimpuloperaiilortrebuiereinuiciva
biisuplimentaripentruprecizie(numiibiigard)itrebuiesfieometod
potrivitpentrurotunjirearezultatuluiintermediarlanumruldebiialfraciei.
ExistpatrumoduriderotunjirenstandardulIEEE754.Unuldinmoduri
rotunjetensprezero,altulnspreinfinitiaraltulrotunjetenspreminusinfinit.
Modulimplicitrotunjetelacelmaiapropiatnumrreprezentabil.njumtatedin
cazurirotunjireasevafacelanumrulpentrucarecifraceamaipuinsemnificativ
estepar.Deexemplu,1.01101serotunjetela1.0110pecnd1.01111se
rotunjetela1.1000.

Coduridecaractere

Spre deosebire de numerele reale, numrul de caractere este finit. Un set de


caracterecompletpoatefireprezentatcuajutorulunuinumrmicdebii/caracter.
n continuare vom descrie trei dintre cele mai obinuite reprezentri pentru
caractere:ASCII,EBCDICiUnicode.

SetuldecaractereASCII
ASCII=American StandardCodeforInformationInterchangeeste prezentatn
figurademaijos.
Este un cod pe apte bii ceea ce permite reprezentarea a 27=128 de caractere
diferite. Poziiile de la 00 la 1F i poziia 7F sunt caractere speciale de control
34

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

folositepentrutransmisii,controlultipririiialtescopuricarenuaulegturcu
textul obinuit. Restul caracterelor sunt toate caractere afiabile: litere, cifre,
semne de punctuaie, spaiu. Cifrele de la 0 la 9 apar una dup alta, la fel i
literele mari, respectiv mici. Aceast organizare simplific manipularea
caracterelor.Pentruaschimbareprezentareauneicifrenvaloareaeinumeric
trebuiesscdemdincodulcifreivaloareahexazecimal(30)16.Pentruaobine
codullitereimiciatuncicndtimcodullitereimaricorespunztoaretrebuies
adunm la codul literei mici valoarea hexazecimal (20)16. Caracterul care
reprezint litera A are codul (41)16, iar caracterul care reprezint litera a are
codul(61)16.

SetuldecaractereEBCDIC
Problema cu setul de caractere ASCII este c pot fi reprezentate doar 128 de
caractere,ceeaceesteolimitaredestuldedrasticpentrumultetastaturicare
au multe alte caractere n plus fa de literele mari i mici. Codul EBCDIC
(ExtendedBinaryCodedDecimalInterchangeCode)esteuncodpe8biifolosit
intenspecalculatoaremainframeIBM.
CodulASCIIsereprezintpe7biidarsestocheazpe8(uncaracter/byte).De
cele mai multe ori se adaug un bit suplimentar de regul n poziia cea mai
semnificativ o octetului. Prin urmare folosirea codului EBCDIC nu necesit n
realitatea mai muli bii. n schimb la transmiterea serial a datelor bitul
suplimentar are un impact mai mare. n figura de mai jos prezentm codul
35

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
EBCDIC.Sepoateobservacexistunelepoziiicarenuauatribuituncaracter.
Acelepoziiipotfifolositepentrucaracterespecialelaniveldeaplicaie.

Codul de
caractere
EBCDIC
EBCDIC este un
cod pe 8 bii

SetuldecaractereUnicode
Codurile de caractere ASCII i EBCDIC suport setul de caractere Latin. Pe
lngacestsetdecaracterececoninelitereledelaalazexistoseriedealte
seturidecaracterendiferitelimbi(chinez,japonez,arabetc.)Evidentcnu
se poate face o asociere simpl, unulaunu, de la codul ASCII la orice set de
caractereaacsacreatunstandardpentrucaractereuniversalnumitUnicode
caresuportmajoritateacaracterelordincelemaiimportantelimbi.
Unicode este un standard n permanent dezvoltare. Se schimb pe msur ce
noi seturi de caractere sunt introduse i pe msur ce seturile de caractere
existenteevolueazireprezentarealorseperfecioneaz.
Unicode a fost creat pentru a permite schimbul, procesarea i afiarea textelor
scrise n diferite limbi i n diferite discipline tehnice din lumea modern. De
asemeneasuporttexteclasiceiistoricedinmultelimbiscrise.
StandardulUnicodefolosete16biipentrureprezentareacaracterelorinanul
2005aajunslaversiunea4.
Unicode atribuie un numr unic pentru fiecare caracter, este independent de
platform,independentdeaplicaie,independentdelimb.
Fundamental, un calculator lucreaz numai cu numere. Pentru a stoca n memorie
litere sau alte semne, este necesar ca fiecrui caracter si fie asignat un numr.
nainte de inventarea Unicodeului, au existat sute de sisteme diferite de codare
pentruasignareaacestornumere.Dar,niciunuldintreacesteanuafostsatisfctor,
36

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
neputnd codifica suficiente caractere: de exemplu, numai Uniunea European
necesit mai multe codificri diferite pentru a acoperi toate limbile existente n
cadrulei.Nicimcarpentruosingurlimb,cumarfilimbaenglez,nuaexistatun
singur sistem de codare adecvat pentru toate literele, semnele de punctuaie i
simboluriletehniceuzuale.
De asemenea, sistemele de codare existente intr deseori n conflict ntre ele
deoarece, dou sisteme diferite pot utiliza acelai numr pentru dou caractere
diferite sau pot utiliza numere diferite pentru acelai caracter. Calculatoarele, n
specialserverele,suntnevoitessuportemaimultesistemediferitedecodare;de
aceea, de fiecare dat cnd datele sunt transferate ntre platforme cu sisteme
diferitedecodare,aparerisculcoruperiilor.
Unicodeschimbtoateacestea!
Unicodefurnizeazunnumrunicpentrufiecarecaracter,indiferentdeplatform,
aplicaiesaulimbafolosit.StandardulUnicodeafostadoptatdemultecompaniide
vrf, cum ar fi Apple, HP, IBM, JustSystem, Microsoft, Oracle, SAP, Sun, Sybase,
Unisysimultealtele.Deasemenea,Unicodeestenecesarstandardelormoderneca
de exemplu XML, Java, ECMAScript (JavaScript), LDAP, CORBA 3.0, WML etc. i
reprezint implementarea oficial a standardului ISO/IEC 10646. Unicode este
suportatdemultesistemedeoperare,navigatoaremodernedeinternetimultealte
produse. Apariia standardului Unicode precum i disponibilitatea instrumentelor
care l suport, reprezint cea mai semnificativ tendin spre globalizarea
dezvoltriidesoftware.
UtilizareaUnicodenaplicaiileclientserversaumultitier precuminsituriweb
ofer, pe lng simplificarea arhitecturii, i scderi semnificative ale costului
comparativcuseturiletradiionaledecaractere.Unicodepermitecaoaplicaiesau
un sit web unice s poat fi utilizate simultan i fr modificri pe platforme i n
ri diferite, folosind diverse limbi, permind totodat i transferul datelor ntre
sistemediferitefrpericolulcoruperiilor.

Pentrumaimultedetaliiconsultaisitulwww.unicode.org

Concluzii
Datele n calculator sunt reprezentate sub form de bii ce pot fi recunoscui i
interpretai n diferite moduri: ca ntregi, ca numere n virgul fix, ca numere n
virgulmobilsaucaicaractere.CoduriledecaracterecumsuntASCII,EBCDICi
Unicodeaudimensiunifiniteipotfireprezentatentotalitatepeunnumrfinitde
bii.Numruldebiifolosiipentrureprezentareanumerelorestedeasemeneafinit
ceea ce nseamncputemreprezentadoarosubmulimeanumerelorreale(mai
exactraionale).Aceastaducelanoiuniledeinterval,precizieieroare.Intervalul
defineteceamaimiciceamaimarevaloarecepoatefireprezentat.Acestedou
valorisuntdeterminatedebazainumruldebiiaiexponentuluireprezentriin
virgul mobil. Precizia este determinat de numrul de bii folosii n
37

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
reprezentarea magnitudinii (excluznd biii din exponent n reprezentarea
numerelornvirgulmobil).Eroareaaparenreprezentareanvirgulanumerelor
datorit faptului c exist numere reale n intervalul dintre dou numere
reprezentabileconsecutive.

38

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

3. Logicadigital
n acest capitol vom trece n revist cteva principii de baz ale logicii digitale,
principii ce pot fi aplicate n proiectarea calculatoarelor digitale. La nceput vom
discutadesprelogiccombinaional,ncaredeciziilelogiceseiaudoarnfunciede
combinaii ale intrrilor. Dup care, vom trece n revist logica secvenial n care
deciziileseiaunfunciedeintrrilecurenteiintrrilemaivechi.Prinnelegerea
acestorprincipiidebazvomputeaproiectacircuitelogicecuajutorulcrorasepot
construicalculatoarecomplete.Vomncepecuparteafundamentalacalculatorului
digital,unitateacombinaionallogic.

Logiccombinaional
O unitate combinaional logic (UCL) transform o mulime de intrri ntro alt
mulimedeieiriconformuneiasauamaimultorfuncii.IeirileUCLsuntcalculate
strict ca funcie a intrrilor, iar ieirile sunt actualizate imediat ce intrrile se
schimb.UnmodeldebazpentruUCLestedatnfigurademaijos.

Omulimedeintrrii0in,vordeterminacaUCLsproducomulimedeieiri
conformfunciilorf0,f1,,fm.ntrunUCLnuexistunfeedbackdelaieirenspre
intrare.
IntrrileiieirileunuiUCLaudereguldouvalori:highilow.Cndvalorilesunt
luatedintromulimefinit,circuitelecarelefolosescsuntnumitedigitale.Un
circuitdigitalelectronicprimeteintrriifurnizeazieirincare0voli(0V)se
considercafiindvaloarealow,iar+5Vesteconsideratvaloareahigh.Aceast
convenienuestefolositpestetot:circuiteledevitezmarefolosescderegul
voltajemaijoase;unelecircuitealecalculatoareloropereazndomeniulanalog,n
caresuntpermiseocontinuitatedevalori.Oaplicaiencarecircuiteleanalogicear
fimaipotriviteestesimulareazborurilor,dinmomentcecircuiteleanalogice
aproximeazmaiexactmecanicaunuiavion,fadecircuiteleanalogice.
Cutoatecmajoritateacalculatoarelordigitalesuntbinare,existicircuitemulti
valoare.Unmediudetransmisiecapabilstransmitmaimultdedouvaloripoate
fimaieficientlatransmitereainformaieidectunmediucaretransmitedoardou
valori.Uncircuitdigitalmultivaloareestediferitfadeuncircuitanalogprinaceea
cuncircuitmultivaloarepoateluaovaloareadintromulimefinit,pecndun
circuitanalogicpoateluaoinfinitatedevalori.Utilizareacircuitelormultivaloare
39

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
areoutilitateteoretic,darnpracticestedificilcreareaacestorcircuitecapabile
deafacedistincientremaimultdedouvalori.
Noinevomconcentraateniadoarpecircuitelebinaredigitale,ncaresuntpermise
doardouvaloripentruintraresauieire.

Tabeledeadevr
n1854GeorgeBooleapublicatolucrareimportantnlegturcuoalgebr
pentrureprezentarealogicii.Booleerainteresatnscoatereanevidena
matematiciigndiriiiadezvoltatoreprezentareainformaieifactualecumarfi:
UaestedeschissauUanuestedeschis.AlgebraluiBooleafostdezvoltat
maidepartedeClaudeShannonnformapecareofolosimastzi.nalgebra
Boolean,presupunemexistenaunuipostulatdebazianumecovariabil
binariaosingurvaloarecarepoatefi0sau1.Aceastvaloarecorespunde
voltajelorde0respectiv+5menionatemaisus.Atribuireasepoatefaceinordine
invers.Pentruanelegecomportamentulcircuitelordigitale,putemabstractiza
corespondenafiziccuvoltajeisconsidermdoarvalorilesimbolice0i1.
OcontribuieimportantaluiBooleafosttabeleledeadevr,careprezintrelaii
ntrunformattabelar.SconsidermocamerncaresuntdountreruptoareA
iB,cecontroleazunbecZ.Unntreruptorpoatefisusaltuljossauambele
ntreruptoarepotfisus,respectivjos.Cndunsingurntreruptorestesusbecul
esteaprins.Cndambelentreruptoaresuntsussaujosbeculestestins.

Sepoateconstruiotabeldeadevrcareenumertoatevalorileposibilepecarele
potaveaceledountreruptoare,aacumsevedenfigurademaisus.ntabel,un
ntreruptorprimetevaloarea0dacestejosivaloarea1dacestesus.Beculeste
aprinsatuncicndvaloarealuiZeste1.
ntrotabeldeadevr,toatecombinaiileposibiledevariabilebinaredelaintrare
suntenumerateiovaloarecorespunztoarede0sau1esteatribuitfiecrei
combinaii.ntabeladeadevrdinfigurademaisus,ieireaZdepindedevariabilele
dinintrareAiB.Pentrufiecarecombinaiedevariabiledinintrareexistdou
valoripecareZlepoateavea:0i1.Putemalegeoaltconfiguraiepentru
ntreruptoare,ncarebeculesteaprinsdoaratuncicndambelentreruptoare
suntsussaujos,situaiencaretabeladeadevrsetransformn:

40

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Legarea firelor ntre ntreruptoare ar trebui de asemenea s se modifice. Pentru


douvalorideintrareexist22=4combinaiii24=16posibilitideatribuirea
valorilordeieire.

Porilogice
Dac enumerm toate atribuirile de setri posibile pentru ntreruptoare cu dou
intrrivomobine16atribuiriprezentatentabeluldemaijos:

AcestefunciisenumescfunciilogiceBooleene.Opartedinfunciiaunume
speciale.FunciaANDproducevaloarea1doarcndAiBauvaloarea1,pecnd
funciaORproducevaloarea1(true)atuncicndcelpuinunadinvalorileluiAsau
Beste1.Vomconsideracvaloareauneifunciiestefalseatuncicndarevaloarea
0.ExistifunciileFalseiTrue.Semnul+ntroexpresieBooleansemnificOR
logicinuimplicadunareaaritmetic.Juxtapunereaadouvariabile,deex.AB,
semnificoperaiaANDlogicntreceledouvariabile.
FunciileAiBnufacaltcevadectsrepetevalorileluiArespectivBdinintrare,pe
cndfunciile A i B ,complementeazvalorileluiAiB,producnd0atuncicnd
41

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
valoareadinintrareeste1iinvers.ngeneralobardeasupraunuitermendenot
operaiadecomplementare,prinurmarefunciileNANDiNORsuntcomplemente
alefunciilorANDiOR.FunciaXORarevaloarea1(true)atuncicndunadin
valoriledinintrarearevaloarea1iarcealaltvaloarea0.FunciaXNOReste
complementulfuncieiXOR.
OpoartlogicesteundispozitivfizicceimplementeazofuncieBooleansimpl.
Funciileprezentatentabeluldemaisusaureprezentrisubformdesimbolurica
porilogice,opartedinacestesimbolurifiindprezentatemaijos.Pentrufiecare
funcie,AiBsuntintrribinareiFesteieirea.

nfigurademaisusporileANDiORsecomportexactaacumamdescris.Buffer
ulnufacealtcevadectscopiezeintrareanieire.Cutoatecbufferulnuareo
semnificaielogic,elareunrolpracticimportantianumeaceladeamplificator,
permindunuisingursemnalscontrolezemaimulteporilogice.PoartaNOT
(numitiinvertor)complementeazintrarea.Cerculeuldinvrfultriunghiului
denotoperaiadecomplementare.
TotnfigurademaisussuntprezentateporilelogiceNAND,NOR,XORiXNOR,
mpreuncutablaoperaiei.

Simbolurilelogicedinfigurademaisussuntdoarformeledebaz,existndoserie
devariantecaresuntfolositeadesea.Deexempluputemaveaporilogicecumai
multdedouintrriaacumsevedenfigurademaijos(a).

42

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Cerculeuldenotcomplementareidupcumsevede(b)poatefiplasatnunumai
la ieire ci i la intrare pentru a complementa intrarea. n funcie de tehnologia
folosit , unele pori logice pot produce dou ieiri complementate. Simbolul logic
corespunztor pentru aceast situaie prezint ambele ieiri, aa cum se vede n
figurademaisus(c).

Algebrboolean
ntabeluldemaijossuntprezentatectevaproprietialealgebreiBooleenecepot
fi aplicate expresiilor booleene logice. Postulatele (cunoscute sub numele de
postulateleluiHuntington)suntaxiomelealgebreiBooleene,aacnuaunevoiede
demonstraie. Teoremele pot fi demonstrate folosind postulatele. Fiecare relaie
prezentat are att o form AND ct i o form OR datorit principiului dualitii.
FormadualseobineprininterschimbarealuiANDcuOR.

43

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Proprietatea de comutativitate spune cordinean care apar dou variabile ntro


funcie AND sau ORnu esterelevant. Datorit principiului dualitii, proprietatea
decomutativitateareoformAND(AB=BA)ioformOR(A+B=B+A).Sensul
postulateloriteoremelorsepoatededucedintabel.
ntabeladeadevrdemaijosestedemonstratlegealuiDeMorgan:

FigurademaisusprezintechivalenauneiporiORcuopoartNAND,echivalen
lacaresepoateajungeculegealuiDeMorgan.

44

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
Pentruaobinecompletitudinecomputaional(posibilitateadeacreaoricecircuit
logiccuporilelogicedisponibile)nuestenevoiedetoateporilelogiceprezentate
pn acum. Trei mulimi de pori logice complete computaional sunt: {AND, OR,
NOT},{NAND},{NOR}(existialtele).
Echivalena funcional ntre diferite pori logice este important din punct de
vederepracticpentrucuntipdepoartlogicpoateaveacaracteristicideoperare
maibunepentruoanumittehnologie.

Formasumdeproduseidiagramelogice
Acumvomimplementaofunciemaicomplexdectsimpleleporilogiceianume
funciamajoritatecutreiintrridescrisdetabeladeadevrdemaijos.

Minterm

0
0
0
0
1
1
1
1

0
0
1
1
0
0
1
1

0
1
0
1
0
1
0
1

0
0
0
1
0
1
1
1

Index
0
1
2
3
4
5
6
7

1
00
0-side

1-side

A balance tips to the left or


right depending on whether
there are more 0s or 1s.

Funciamajoritate(carepoateprimilaintrareunnumrimpardevalori)are
valoare1(true)atuncicndmaimultdejumtatedinintrrisunt1ivaloarea0n
cazcontrar,aacumesteilustratcuajutorulbalaneidinfigur.Aceastaesteo
operaieobinuitfolositnanumiteaplicaiiatuncicndieirilemaimultor
circuiteidenticecareopereazasupraaceloraidate,suntcomparateicelmai
marenumrdevalorisimilaredeterminieirea(poateficonsideratovotare).
Dinmomentceniciunadinporilelogiceprezentatepnacumnuimplementeaz
funciamajoritatenmoddirect,vomtransformafunciantroecuaieANDORcu
douniveluriiarmaiapoivomimplementafunciafolosindporilogicedin
mulimea{AND,OR,NOT}.Vorfidouniveluripentrucunniveldevariabile
asupracroraseaplicoperaiaANDvafiurmatdeunaltnivellacareseaplic
operaiaOR.Ecuaiabooleancaredescriefunciamajoritatearevaloareatruede
fiecaredatcndFestetruentabeladeadevr.
Omodalitatedeareprezentaecuaiilelogiceestefolosireaformeisumdeproduse,
cepoatefidefinitcaocoleciedeexpresiiformateprinoperaiaORifiecare
termenalexpresieiesteformatdinvariabileasupracroraseaplicoperaiaAND.
Ecuaialogicbooleancareexprimfunciamajoritateeste:
F = ABC + A BC + ABC + ABC
Semnul'+'semnificORiarjuxtapunereaAND.

45

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
Prinexaminareaecuaieiobservmcpoateesteimplementatcupatruporilogice
ANDcutreiintrri,iarieirileacestorpatruporilogiceANDvorficonectatela
intrareauneiporilogiceORcupatruintrriaacumesteprezentatnfigurademai
jos.

nfiguresteprezentatmoduldereprezentareasituaieicndesteconexiune
respectivcndaceastalipsete,modcareesteprezentatinfigurademaijos.

Atuncicndunprodusconineexactoinstanafiecreivariabile,ntroanumit
form,complementatsaunu,acestasenumetemintermen.Unmintermenare
valoarea1pentruosingurliniedintabeladeadevradic,unnumrminimde
termeni(unul)vafacefunciatrue.Caalternativ,funciaesteuneoriscriscasum
logicpesteintrriletrue.Ecuaiapentrufunciamajoritatepoatefirescrissub
forma: F = 3,5,6,7 .
AceastformestepotrivitpentruformacanonicaecuaieiBooleene,care
coninedoarmintermeni.

46

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Formaprodusdesume
Caduallaformasumdeproduse,oecuaieBooleanpoatefireprezentatnforma
produsdesume.Oastfeldeecuaieconineocoleciedevariabileasupracrorase
aplicoperaiaORiarasuprarezultateleoperaiilorORseaplicoperaieAND.O
metoddeaobineformaprodusdesumeestedeapornidelacomplementul
formeisumdeproduseideaaplicateoremaDeMorgan.Deexemplu,dacne
referimdinnoulatabeladeadevrafuncieimajoritate,complementulseobine
prinselectareatermenilorcareproduc0leieire,aacumsevedenecuaiademai
jos.
F = A BC + ABC + ABC + ABC
Complementareaambelorprivaducela: F = ABC + ABC + ABC + ABC ,iarprin
aplicareateoremeiDeMorgannforma W + X + Y + Z = W X Y Z vomobine:
F = ( ABC )( ABC )( ABC )( A BC ) .AplicnddinnouteoremaDeMorgannforma:
WXYZ = W + X + Y + Z vomobine:
F = ( A + B + C )( A + B + C )( A + B + C )( A + B + C )
Aceastultimecuaieestenformaprodusdesumeiconinepatrumaxtermeni,
ncarefiecarevariabilapareosingurdatnformacomplementatsaunu.Un
maxtermen,deex.(A+B+C),arevaloarea0pentruosingurliniedintabelade
adevr.Adic,estetruepentrunumrulmaximdeliniidintabeladeadevrfrase
reducelafunciatrivialcarearevaloareatruentotdeauna.Oecuaiecareeste
formatnumaidinmaxtermeninformaprodusdesume,sespunecestenforma
canonicprodusdesume.UncircuitORANDcareimplementeazecuaiaeste
prezentatnfigurademaijos:

FormaORANDestelogicechivalentcuformaANDOR.
47

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Unmotivpentruutilizareformeiprodusdesumefadeformasumdeproduse
esteacelacaceastaarputeaducelaoecuaieBooleanmaimic.Oecuaie
Booleanmaimicimplicuncircuitmaisimplu.

Contoruldepoartaesteomsuracomplexitiiunuicircuitiseobineprin
numrareatuturorporilorlogice.Contoruldeintrripoartesteoaltmsur
pentrucomplexitateaunuicircuitiseobineprinnumrareatuturorintrrilorn
toateporilelogicecealctuiesccircuitul.

Componentedigitale
Circuitele digitale de nivel nalt sunt create de regul cu ajutorul unor colecii de
porilogicenumitecomponenteinucuporilogicesimple.Aceastapermitecantr
o anumit msur gradul de complexitate al circuitului s fie abstractizat i de
asemenea se simplific procesul de modelare a comportamentului circuitelor i
procesul de caracterizare a performanelor acestora. Aici vom prezenta cteva din
celemaiuzualecircuite.

Nivelurideintegrare
Pn acum neam concentrat atenia asupra circuitelor logice combinaionale. Din
moment ce am prezentat doar pori logice individuale nseamn c am lucrat la
nivelul de integrare la scal mic (small scale integration SSI), n care exist 10
pnla100decomponente/chip.(Aicitermenuldecomponentareunaltneles
i anume se refer la tranzistori i alte elemente discrete). Cu toate c uneori n
practicenevoieslucrmlaacestniveldeintegrarejos,deobiceipentrucircuitele
cu performane ridicate, microelectronica ne permite s lucrm la un nivel de
integraremultmaimare.nniveluldeintegraremedie(mediumscaleintegration
MSI)peunchipaparntre100i1000decomponente.nniveluldeintegraremare
(large scale integration LSI) avem un numr cuprins ntre 1000 i 10000 de
componente iar n nivelul de integrare foarte mare (very large scale integration
VLSI) avem peste 10000 de componente. Nu exist nite limite foarte fixe pentru
diferitelenivelurideintegrare,daresteimportantsfacemaceastdistinciepentru
comparareacomplexitiirelativeacircuitelor.

Multiplexor
Un multiplexor (MUX) este o component care conecteaz o serie de intrri la o
singurieire.OdiagramblocitabeladeadevrcorespunztoarepentruunMUX
4la1suntprezentatemaijos.

48

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

IeireaFvaaveavaloareaintrriiselectatedeliniiledecontrolAiB.Deexemplu,
dacAB=00,atuncivaloareadepeliniaD0(0sau1)vaaprealaF.CircuitulAND
ORcorespunztoresteprezentatnfigurademaijos:

AtuncicndseproiecteazcircuitecefolosescMUX,sefoloseteformaabstractizat
(cutia neagr) n locul formei detaliate din figura de mai sus. Astfel putem
abstractizaopartedindetaliiatuncicndproiectmcircuitecomplexe.
MUXpoatefifolositpentru aimplementafunciiBooleene. nfigurademaijosun
MUX8la1implementeazfunciamajoritate.

49

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Datele de intrare sunt luate direct din tabela de adevr a funciei majoritate, iar
datele de intrare pentru control sunt atribuite variabilelor A, B i C. MUX
implementeazfunciamajoritateprintransmitereaunui1delaintrareafiecrui
mintermenlaieire.Intrarea0marcheazporiunidinMUXcarenusuntnecesare
pentru implementarea funciei, iar rezultatul o serie de pori logice rmn
neutilizate. Cu toate c poriuni din MUX sunt aproape ntotdeauna neutilizate n
implementarea funciilor Booleene, multiplexoarele sunt folosite pe scar larg
pentru c ele simplific procesul de proiectare, iar modularitatea lor simplific
implementarea.
Ca un alt exemplu, s considerm implementarea unei funcii de trei variabile
folosind un MUX 4la1. n figura de mai jos este prezentat o tabel de adevr cu
treivariabileiunMUX4la1careimplementeazfunciaF.Vompermitecadatele
deintraresfieluatedinmulimea{0,1,C, C }iargrupareaseobineaacumeste
prezentatntabeladeadevr.AtuncicndAB=00,F=0,indiferentdevaloarealui
C.CndAB=01,F=1,indiferentdevaloarealuiC.CndAB=10,F=CiarcndAB=
11,F= C .AstfelputemimplementaofunciecutreivariabilefolosindunMUXcu
douvariabile.

50

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Demultiplexor
Demultiplexorul (DEMUX) este opusul multiplexorului. O diagram bloc pentru un
demultiplexor1la4itabeladeadevrcorespunztoaresuntprezentatenfigura
demaijos.

UnDEMUXtrimitesinguraintrare,D,laundinieiriFi,confirmvalorilorintrrilor
decontrol.CircuitulcorespunztorunDEMUXesteprezentatnfigurademaijos:

Rolul unui DEMUX este de a transmite date de la o singur intrare la mai multe
ieiri, de ex. chemare celui mai apropiat lift prin simpla apsare a unui buton.
DEMUXnuestefolositderegullaimplementareafunciilorBooleene,cutoatecse
poatefaceiacestlucru.

Decodor
Un decodor transform o codificare logic ntro locaia spaial. Exact una din
ieirile decodorului este high (valoarea logic 1), fiind determinat de configuraia
51

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

intrrilordecontrol.Odiagramblociotabeldeadevrpentruundecodor2la4
suntprezentatenfigurademaijos.

Diagramlogicasociatcareimplementeazdecodorulesteprezentatnfigurade
maijos:

Undecodorpoatefifolositpentruacontrolaaltecircuite,daruneorinuestepotrivit
pentru activarea altor circuite. Din acest motiv, adugm o intrare de activare
decodorului,caredetermintoatecatoateieirilesfie0dacesteaplicatlaintrare
un0.(ntreunDEMUXiundecodercuintrarea1existoechivalenlogic).
Oaplicaiepentrudecodorestelatranslatareaadreselordememorienlocaiifizice.
DecodoarelepotfifolositeilaimplementareafunciilorBooleene.Dinmomentce
fiecare linie de la ieire corespunde unui alt mintermen, o funcie poate fi
implementat prin efectuarea operaiei OR logic asupra ieirilor ce corespund
mintermenilorrealiaifunciei.Deexemplu,nfigurademaijos,undecodor3la8
implementeazfunciamajoritate.Ieirileneutilizatermndeconectate.

52

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Encodercuprioritate
Unencodertransformomulimedeintrrintrocodificarebinaripoatefiprivit
caopusulunuidecoder.Unencodercuprioritateesteuntipdeencoder,lacareeste
impus o ordine n valorile de intrare. O diagram bloc i tabela de adevr
corespunztoare este prezentat n figura de mai jos pentru un encoder cu
prioritate4la2.

OschemdeprioritateesteimpusasupraintrrilorncareAiareoprioritatemai
mare dect Ai+1. Ieire, format din doi bii, poate lua valorile 00,01, 10 sau 11 n
funciedecareintrrisuntactive(auvaloarealogic1)ideprioritatealorrelativ.
Cndnuesteactivniciointrare,ieireavaaveaovaloareaimplicitncareA0are
prioritate(F0F1=00).
Encoderulcuprioritateestefolositcaarbitrupentrudiferitedispozitivecefolosesc
aceleairesurse.Diagramaunuicircuitcereprezintunencodercuprioritate4la2
esteprezentatnfigurademaijos.

53

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Tablourilogiceprogramabile
Un tablou logic programabil (progammable logic array PLA) este o component
formatdintromatriceANDconfigurabilurmatdeomatriceORconfigurabil.n
figurademaijosesteprezentatunPLAcutreiintrriidouieiri.Celetreiintrri
A,BiCicomplementelelorsuntdisponibilelaintrrilefiecreiadinceleoptpori
AND care genereaz 8 termeni (fiecare termen fiind un produs). Ieirile porilor
ANDsuntdisponibilelaintrareafiecreiporiORcaregenereazfunciileF0iF1.

Osiguran(engl.fuse)programabilesteplasatnfiecarepunctdeintersecien
matricile AND i OR. Matricile sunt configurate pentru diferite funcii prin
54

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

dezactivareasiguranelor.Atuncicndosiguranestedezactivatlaointrarentr
o poart AND, poarta AND se comport ca i cum intrarea este ntotdeauna 1.
Analog,ointraredezactivatlaopoartORnPLAsecomportcaicumintrarea
estentotdeauna0.
CaexempludeutilizareaPLA,vomimplementafunciamajoritatefolosindunPLA
3x2 (trei variabile de intrare x dou ieiri). n figura de mai jos este prezentat n
modsimplificatPLAulcorespunztor.
CeleaseintrrinfiecarepoartANDaicisuntreprezentateprintrosingurlinie
iarceleoptintrrinfiecaredinceledouporiORsuntreprezentatedeasemenea
printro singur linie (pentru simplitate). Cercurile din punctele de intersecia a
liniilorindicloculncaresuntfcuteconexiunile.Dinfigurseobservcfuncia
majoritateesteimplementatfolosinddoarjumtatedinPLA,cealaltjumtatefiind
disponibilpentruimplementareaalteifuncii.
PLAurilesuntcomponentelecelemaidesfolositencadrulcircuitelordigitale.Un
avantaj al utilizrii PLAurilor este c au doar cteva intrri i cteva ieiri, iar
numrul porilor logice dintre intrri i ieiri este mare. Este important
minimizareanumruluideconexiunilalimiteleunuicircuitpentruamodularizaun
sistemncomponentediscretecaresuntproiectateiimplementateseparat.

Un PLA se poate reprezenta ca o cutie neagr aa cum se vede mai jos (pentru a
respectaprincipiulmodularitii).

55

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Exemplu:sumatorcupropagaredetransport
Ca un exemplu al modului n care un PLA este folosit la proiectarea circuitelor
digitale vom considera n continuare un circuit care adun dou numere binare.
Adunareabinarseefectueazsimilarcumodulncareefectumadunareazecimal
aacumsevedenfigurademaijos.

Dou numere binare A i B sunt adunate de la dreapta la stnga i se formeaz


pentrufiecarepoziieosumiuntransport(engl.carry).Doibiideintrareiun
carryin trebuie adunai la fiecare poziie, astfel nct trebuie s avem n vedere 8
combinaiiposibile,aacumsevedentabeladeadevrdemaijos.

Tabeladeadevrdemaisusdescrieunelementnumitsumatorcomplet,prezentat
schematicnfigurademaisus.Unsumatorincomplet(engl.halfadder)arputeafi
56

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

folositpentruadunareacelormaipuinsemnificativibii,pentrucnaceapoziie
nu avem carryin. Un sumator incomplet adun doi bii i produce o sum i un
transport(carryout).
Putem nlnui patru sumatori complei pentru a forma un sumator suficient de
mare pentru adunarea unor numere reprezentate pe 4 bii. Schema unui astfel de
circuitesteprezentatnfigurademaijos.

Sumatoruldinparteadreaptareuncarryinegalcuzero.
Se poate observa c o anumit sum nu poate fi calculat pn cnd nu a fost
calculat transportul de la sumatorul complet precedent. Circuitul se numete
sumator cu propagare de transport pentru c valorile corecte pentru bitul de
transportsepropagprincircuitdeladreaptalastnga.Cutoateccircuitulparea
fiparalele,nrealitatebiiisumsuntcalculaiserialdeladreaptalastnga.Acesta
esteundezavantajimportantalcircuitului.
O modalitate de a proiecta sumatori complei este utilizarea unui tablou logic
programabil.

57

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Logicsecvenial
Flipflop
Mainicunumrfinitdestri

58

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

4. Aritmetic
Introducere
Dupceamprezentatmoduldereprezentareanumerelorncalculatorvomtrecen
revistcelepatruoperaiifundamentalecepotfiefectuatecuacestenumere:
adunarea,scderea,nmulireaimprirea.Primadatvomprezentamoduln
careacesteoperaiiseefectueazasupranumerelorreprezentatenvirgulfixiar
maiapoiasupranumerelorreprezentatenvirgulmobil.

Adunareaiscdereanumerelornvirgulfix
Vomtrecenrevistadunareiscdereaattanumerelorcusemnctia
numerelorfrsemn.Nevomconcentramaimultpenumerelereprezentaten
complementfadedoidatoritfaptuluicaceastreprezentareestefolosit
aproapenexclusivitatensistemelemodernedecalcul.Vomtrecenrevisti
operaiileefectuatecunumerereprezentatencomplementfadeunu(acesteaau
oimportanndomeniicumarfireelistica)inBCD(importantepentru
calculatoareledebuzunar).

Adunareaiscdereancomplementfade2
Vomprezentaadunareanumerelorcusemnreprezentatencomplementfadedoi.
nmodimplicitvomprezentaiscdereapebazaprincipiului:

ab=a+(b).

Putem obine opusul unui numr prin complementarea lui (i adunarea lui 1 dac
reprezentarea este n complement fa de doi). Acest fapt este important pentru
hardwarentructnuenevoiedecreareadehardwarespecializatpentruoperaiile
descdere.
Vommodificainterpretareapecareodmrezultateloroperaiilordeadunareatunci
cndadunmdounumerereprezentatencomplementfadedoi.Pentruaceasta
vomconsiderafigurademaijos:

59

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Atunci cnd adunmdounumere reprezentate pe axa numerelor reale, numerele


pot fi orict de mari sau orict de mici. Aadar, pe axa numerelor reale se pot
reprezenta oricte numere. n figura de mai sus sunt prezentate circular toate
numerelereprezentatencomplementfade2pe3biimpreuncuechivalentul
lorzecimal.
Folosind acest cerc putem aduna sau scdea numere prin traversarea cercului n
sensulacelordeceasornic(pentruadunare)sauinvers(pentruscdere).Numerele
potfisczuteprincomplementareafade2adesczutuluiiadunarealascztor.
Trebuie remarcat c poate s apar situaia de depire n cazul adunrii unor
operanzicuacelaisemn.Depireaapareatuncicndsefacetrecereadela+3la4
ntimpuluneioperaiideadunareidela4la+3ntimpuluneioperaiidescdere.
Urmeazdouexempledeadunareaunornumerereprezentatencomplementfa
de doi pe 8 bii, prima dat dou numere pozitive iar mai apoi un umr pozitiv i
unulnegativ:

00001010(+10)10
+00010111(+23)10

00100001(+33)10

00000101(+5)10
+11111110(2)10

Elimin(1)00000011(+3)10

Transportul produs la bitul cel mai semnificativ este eliminat la adunarea n


complementfadedoi.Osituaiesimilaresteatuncicndadunmdounumere
negativeiavemtransportlapoziiaceamaisemnificativ:

11111111(1)10
+11111100(4)10

Elimin(1)11111011(5)10
60

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Bitul de transport de la poziia cea mai semnificativ este eliminat pentru c


sistemuldenumeraieestemodularsentoarcedelacelmaimarenumrpozitiv
lacelmaimicnumrnegativ.
Cu toate c la operaia de adunare poate apare un transport la poziia celui mai
semnificativbitaceastanunsemnntotdeaunacrezultatulestegreit.Laambele
exempledemaisusrezultatulestecorectcutoatecavemuntransportnpoziia
celuimaisemnificativbit.

Depire
Atuncicndadunmdounumeremaricuacelaisemnpoatesaparsituaiade
depire, adic rezultatul nu se poate reprezenta pe numrul de bii folosii n
reprezentare. De exemplu numerele (+80)10 i (+50)10 reprezentate pe opt bii n
complementfadedoi.Rezultatulartrebuisfie(+130)10dar,aacumvedemmai
jos,rezultatuleste(126)10.

01010000(+80)10
+00110010(+50)10

10000010(126)10

Celmaimarenumrcesepoatereprezentape8biincomplementfade2este
127 aa c este evident c 130 nu poate fi reprezentat. Rezultatul interpretat ca
numrfrsemnpe8biiestentradevr130.
n general, dac se adun dou numere cu semn opus, atunci nu poate s apar
depire. Motivul intuitiv pentru acest rezultat este c valoarea absolut a
rezultatului nu poate fi mai mare dect valoare absolut a operandului mai mare
(celpozitiv).Aadar,putemdadefiniiadepiriilacomplementfade2:
Dacnumerelecareseadunauacelaisemnirezultatularesemnopus,atunciare
locdepireirezultatulnuestecorect.Dacnumereleceseadunausemneopuse
atunci nu apare niciodat depire. O metod alternativ de depistare a depirii
este:dactransportulnbitulcelmaisemnificativdiferdetransportulceiesedela
bitulcelmaisemnificativatunciinumaiatunciavemdepire.
Dacunnumrpozitivsescadedintrunnumrnegativirezultatulestepozitiv,sau
dac un numr negativ se scade dintrun numr pozitiv i rezultatul este negativ,
atunciavemdepire.Dacnumerelecesescadauacelaisemnatuncinuvaapare
niciodatdepire.

Implementareahardwareaunorsumatoriiaunorscztori
nfigurademaijosesteprezentatunsumatorcupropagaredetransportdepatru
bii.
61

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

DounumereAiBseadundeladreaptalastnga,crendosumiuntransport
lafiecarepoziiebinarreprezentatprintrunsumatorcomplet.Sumatoruleste
modelatdupmodulncareefectumoperaiedeadunarenormal.
nfigurademaijospatrusumatoricupropagaredetransportsuntnlnuiipentru
acreaunsumatorpe16bii.Sumatorulcompletdinparteadreaptarecatransport
deintrarevaloareazero.

Scdereanumerelorbinaresefacentrunmodsimilarcuadunarea.Putemscdea
unnumrdintraltulprinefectuareaoperaieintrocoloanlaunmomentdat,
sczndcifreledesczutuluibidincifrelescztoruluiai,pemsurcemergemdela
dreaptalastnga.Lafelcainscdereazecimal,dacdesczutulestemaimare
dectscztorulsaudacesteunmprumutdelaocifrprecedentatunci
mprumutultrebuiessepropagelaurmtorulbitsemnificativ.Figurademaijos
prezinttabeladeadevriuncircuitpentruscdere.

62

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Scztoricompleipotfinlnuiipentruaformascztoricumprumutnacelai
modcaisumatoriicomplei.nfigurademaijosesteprezentatunscztorcu
mprumutpepatrubiiformatdinpatruscztoricomplei:

Ometodalternativpentruaimplementascdereaestedeaformacomplementul
fadedoinegataldesczutuluiisladunmlascztor.Circuituldemaijos
efectueazattadunareactiscdereaunornumerereprezentatepepatrubiin
complementfadedoiprinpermitereacaintrrilebisfiecomplementateatunci
cndvremsfacemscdere.

63

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Liniadecontrol ADD / SUBSTRACT determincarefuncieesteefectuat.Bara


deasupraluiADDindicfaptulcoperaiaADDesteactivatuncicndsemnalul
estelowsauzero.Dacvaloaredecontroleste0atunciintrrileaiibisunt
transmiseprinsumatoriarsumaestegeneratlaieirilesi.Dacsemnalulde
control1,atunciintrrileaisunttransmisesumatoruluinemodificateiarintrrilebi
vorficomplementatedectrepoartaXORnaintedeafitransmisesumatorului.
Pentruaformacomplementulfadedoinegativ,trebuiesadunm1
complementuluifadeununegativ,ceeaceserealizeazprinsetarealuic0la1.
Astfel,putemfolosihardwareulfolositpentruadunareilascdere.

Adunareiscderencomplementfadeunu
Reprezentareancomplementfadeununusemaifolosetenziuadeastziprea
multncalculatoarelemodernedarsafolositcndvalaprimelecalculatoare.
Adunareancomplementfadeunuestetratatdiferitdeadunareancomplement
fadedoi:transportulcareieselapoziiabituluicelmaisemnificativnueste
eliminat,ciesteadunatnapoilapoziiabituluicelmaipuinsemnificativaacumse
vedenfigurademaijos:

64

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Pentruavizualizamaibinemotivulpentrucareenevoiedeendarroundcarry
prinexaminareacerculuinumerelorreprezentatepe3biincomplementfade
unu.

nacestcercsuntdoupoziiipentruzero.Atuncicndadunmdounumere,
traversmatt+0cti0,aactrebuiescompensmfaptulczeroesteparcurs
dedouori.Endarroundcarryavanseazrezultatulcuopoziiepentruaceast
situaie.

nmulireaimprireanumerelornvirgulfix
nmulireaimprireanumerelorreprezentatenvirgulfixpoatefiefectuatcu
operaiideadunare,scdereideplasare.ncontinuarevomprezentametode
pentruefectuareaacestoroperaiiattpentrunumerefrsemnctipentrucele
cusemn.

nmulireanumerelorfrsemn
nmulireanumerelorbinarefrsemnsefacentrunmodsimilarcumodulncare
facemoperaiecucreionulpehrtie.nfigurademaijosprezentmmodulncarese
realizeazacestprocespentrudointregifrsemn:

Fiecarebitalmultiplicatoruluidetermindacmultiplicandul,deplasatnmod
corespunztorsprestngaesteadunatlarezultatulfinal.Dacnmulimdou
65

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

numerefrsemnreprezentatepenbiirezultatulvaavealungimeade2nbii.n
figurademaisusnmulireaadoioperanzipepatrubiivaproduceunrezultatpe
optbii.Dacnmulimdounumerecusemnreprezentatepenbii,rezultatulseva
reprezentapemaxim2(n1)+1=2n1bii.
Maijosprezentmschemapentruoimplementarehardwarepentrunmulirea
ntregilorpe4bii,ncareesteunsumatorpepatrubii,ounitatedecontrol,trei
registredepatrubiiiunregistrudeunbitpentrutransport.

Pentruanmulidounumere,multiplicandulesteplasatnregistrulM,
multiplicatorulesteplasatnregistrulQiarregistreAiCseseteazlazero.n
timpulnmulirii,bitulcelmaipuinsemnificativalmultiplicatoruluidetermin
dacmultiplicandulesteadunatlaproduslafiecarepas.Dupcemultiplicanduleste
adunatlaprodus,multiplicatoruliregistrulAsuntdeplasateladreaptasimultan.
Figurademaijosprezintprocesuldenmulire.

66

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

IniialCiAauvaloareazero,iarMiQconinmultiplicandulrespectiv
multiplicatorul.BitulcelmaidindreaptaalluiQeste1,aacmultipicatorulMeste
adunatlaprodusnregistrulA.RegistreAiQformeazprodusulpe8bii,darn
registrulAseadunmultiplicandul.DupceMesteadunatlaA,registreAiQsunt
deplasailadreapta.DinmomentceAiQsuntlegaipentruaformaprodusulde8
bii,bitulcelmaidindreaptaalluiAestedeplasatnbitulcelmaidinstnga(celmai
semnificativ)alluiQ.BitulcelmaidindreaptaalluiQesteeliminat,Cestedeplasat
nbitulcelmaisemnificativalluiAiCdevinezero.
Procesulcontinupentrutoibiiidinmultiplicator.Laadouaiteraie,bitulcelmai
dindreaptaalluiQestedinnou1,aacmultiplicandulesteadunatlaAi
combinaiaC/A/Qestedeplasatladreapta.Laultimaiteraie,bitulcelmaidin
dreaptaalluiQeste1aacMesteadunatlaAicombinaieC/A/Qestedeplasat
ladreapta.ProdusulesteconinutnregistreAiQ,ncareAconineparteaceamai
semnificativiarQconineparteaceamaipuinsemnificativ.

mprireanumerelorfrsemn
Lamprireabinar,ncercmsscdemmpritoruldindemprit,folosind
numrulminimdebiindemprit.Dinfigurademaijosreiesec(11)2nuncape
n0sau01,darncapen011.

mprireabinarncalculatorpoatefirezolvatsimilar,numaicsingurulmodn
careputemsdecidemdacmpritorulncapendempritestedeaface
efectivoperaiadescdereisverificmdacrezultatulestenegativ.Dac
rezultatulestenegativatunciscdereatrebuieanulatprinadunareanapoia
mpritorului.
nfigurademaijosprezentmschemaunuidivizorserialpentrunumerepepatru
bii.

67

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Aiciavemunsumatorde5bii,ounitatedecontrol,unregistrude4biipentru
dempritulQidouregistrede5biipentrumpritorulMrespectivpentru
restulA.Registrede5biisuntfolosiipentruAiMnloculunorregistrede4bii,
datoritfaptuluicenevoiedeunbitsuplimentarcaresindicesemnulrezultatului
intermediar.Cutoatecaceastmetoddemprireestepentrunumerefrsemn,
estefolositioperaiadescdereaacputemobineirezultatenegative,iar
bitulsuplimentarestepentrubituldesemn.
Pentruampridounumerepe4bii,dempritulesteplasatnregistrulQ,
mpritorulesteplasatnregistrulMiarregistrulAibitulcelmaisemnificatival
luiMsuntsetatelazero.BitulcelmaisemnificativalluiAdetermindac
mpritorulesteadunatladempritlafiecarepas.Aceastaestenecesarpentrua
restauradempritulatuncicndrezultatulestenegativ.Cndrezultatuleste
pozitiv,celmaipuinsemnificativbitalluiQestesetatla1,ceeaceindicfaptulc
mpritorulncapendemprit.
nfigurademaijosesteprezentatprocesuldemprire.

68

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

nmulireaimprireanumerelorcusemn
Dacaplicmmetodeledenmulireimpriredescrisepentrunumerefrsemn
lanumerecusemn,vomntmpinauneleprobleme.Considermnmulirealui1cu
1folosindoreprezentarepe4biiaacumestenfigurademaijos:

Ceea ce se produce este echivalentul lui +15 reprezentat pe 8 bii. Ceea ce sa


ntmplat a fost c bitul de semn nu sa propagat nspre stnga, nspre bitul de
semn.Aceastanuesteoproblempentrunumerelenegativecareoricumaubitulde
semn0.
O soluie este prezentat n figura de mai sus, n care fiecare produs parial este
extins la limea rezultatului i doar primii 8 bii mai puin semnificativi sunt
reinui. Dac ambii operanzi sunt negativi, atunci semnele extinse pentru ambii
operanzi,reinndtotprimii8biimaipuinsemnificativi.
69

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Aritmeticnvirgulmobil
Operaiile aritmetice cu numere reprezentate n virgul mobil pot fi efectuate
folosindmetodeledescrisepentrunumerelereprezentatenvirgul fix,cucteva
ajustri.ncontinuarevomprezentamodulncaresefacacesteoperaiinbaza2i
baza10.

Adunareaiscdereanumerelornvirgulmobil
Aritmetica pentru numerele reale difer de aritmetic pentru ntregi ntruct
trebuietratatattexponentulctimantisaoperanzilor.Lafelcailaaritmetican
baza 10 utiliznd notaie tiinific, exponenii operanzilor trebuie s fie egalizai
pentru adunare i scdere. Prile fracionare sunt apoi adunate sau sczute iar
rezultatulsenormalizeaz.
Acestprocesdeajustareapriifracionareirotunjireapoateducelapierdereade
precizienrezultat.Sconsidermadunareaadounumererealefrsemn(.101x
23+.111x24)ncareparteafracionararetreicifresemnificative.Primadatvom
ajusta exponentul mai mic pentru a fi egal cu cel mai mare i vom modifica n
consecinparteafracionar.Astfelvomavea:.101x23=.010x24,pierzndastfel
.001x23dinprecizienacestproces.Sumacarerezulteste:

(.010+.111)x24=1.001x24=.1001x25

iarrotunjindla3cifresemnificativeavem:.100x25,pierzndnc.001x24din
precizie.
Numerele reale au o structur complicat (mantisa este pstrat n reprezentare
magnitudine cu semn, exponentul este reprezentat n exces iar bitul de semn este
separat)daraceaststructurpermiterealizareaoperaiilordecomparaie(<,>,=)
fr a fi necesar despachetarea numrului. naintea unei operaii de adunare,
numrul trebuie despachetat din reprezentarea intern (IEEE754): exponentul i
mantisatrebuieextrase,trebuieefectuateoperaiileiarmaiapoirezultatultrebuie
renormalizatirotunjitiarsecvenadebiiesterempachetatnformatulintern.
Lacompararebituldesemnestecelmaiimportantiprinurmareestebitulcelmai
semnificativ n formatul IEEE754. Dup aceea cel mai important n compararea a
dounumererealeesteexponentul,dinmomentceomodificarede1nexponent
schimbnumrulcuunfactorde2(nbaza2),pecndoschimbare1chiarin
cel mai semnificativ bit al prii fracionare va avea un efect mai mic asupra
numrului.
Pentruainecontdebituldesemn,fraciilereprezentaten magnitudinecusemn
sunt reprezentate ca ntregi i sunt convertite n complement fa de 2. Dup
operaia de adunare sau scdere n complement fa de 2, apare nevoia de a
normalizarezultatulideaajustabituldesemn.Rezultatulestemaiapoiconvertit
napoinformamagnitudinecusemn.
70

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

nmulireaimprireanumerelornvirgulmobil
nmulireaimprireanumerelorreprezentatenvirgulmobilsefacesimilarcu
adunarea i scderea numerelor reprezentate n virgul mobil, cu excepia c
semnul, exponentul i mantisa rezultatului pot fi calculate separat. Dac operanzii
auacelaisemn,atuncisemnulrezultatuluiestepozitiv.Semnediferitevorproduce
semnul rezultatului negativ. Exponentul rezultatului nainte de normalizare se
obine prin adunarea exponenilor operanzilor surs la nmulire i prin scderea
lorlamprire.Seefectueazoperaiadoritiurmeaznormalizarea.
Sconsidermcfolosimfraciipe3biipentruaefectuaoperaianbaza2:(+.101
x 22) x (.110 x 23). Semnul operanzilor difer, ceea ce nseamn c semnul
rezultatuluivafinegativ.Efectumnmulireaacadunmexponeniiirezultatul
va fi 2+ 3 = 1. nmulim partea fracionar, ceea ce ne d .01111. Normalizarea
produsuluiireinereaadoar3biivaproduce.111x22.
Un alt exemplu, (+.110 x 25) / (+.100 x 24). Operanzii au acelai semn, cea ce
nseamncrezultatulvaaveasemnpozitiv.Scdemexponeniiiobinem54=1.
mprimfraciile,ceeacesepoatefacenmaimultemoduri. Dactratmfraciile
ca ntregi fr semn, atunci vom avea 110/100 = 1 rest 10. Ceea ce dorim este o
secvencontigudebiicereprezintfracianlocdevaloriseparatepentructi
rest, aa c putem scala dempritul la stnga cu dou poziii, ceea ce ne d:
11000/100 = 110. Dup aceea deplasm rezultatul la dreapta cu dou poziii i
obinem1.10.nconcluzie,rezultatulmpririilui(+.110x25)la(+.100x24)este
(+1.10x21).Dupnormalizare,rezultatulfinaleste:(+.110x21).

Studiudecaz:AritmeticaBCD
Aritmeticancalculatoareledebuzunarsefacenbaza10,nlocdebaza2.Aceste
calculatoare trebuie s fie mici i ieftine aa c numerele se reprezint n BCD
folosindpatrubiipentrufiecarecifrzecimal.Reprezentareanbaza2arnecesita
conversii de baze pentru care e nevoie de resurse destul de mari. O unitatea
aritmeticilogicde4biipoatefaceoperaiilearitmeticeserial,cifrcucifr.

Calculatorul HP9100A, care a aprut n anii 60 efectua operaii aritmetice


elementare:adunare,scdere,nmulireimprire,precumirdcinaptrat,ex,
71

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

lnxilogx,funciitrigonometriceialtefuncii,toatefolosindaritmeticanbaza10.
Calculatorul putea afia 10 cifre semnificative dar toate calculele se fcea folosind
12 cifre, ultimele dou cifre (cele mai puin semnificative) fiind folosite pentru
trunchieriieroriderotunjire.Cutoatecacestcalculatornziuadeastzipareo
relicv,metodelearitmeticesuntncrelevante.
ncontinuarevomprezentatehnicilegeneralepentruefectuareaadunriiiscderii
nvirgulfiximobilfolosindBCD.

AdunareiscdereBCD
Sconsidermadunareanumerelor(+255)10i(+63)10reprezentatenBCD.

FiecarecifrBCDocuppatrubiiiadunareaseefectueazcifrcucifr(nubitcu
bit), de la dreapta la stnga, aa cum am face n modobinuit. Rezultatul (+318)10
esteprodustotnformatBCD.
Scderea n BCD se efectueaz similar cu modul n care se efectueaz scderea n
complement fa de doi (se adun opusul desczutului) cu excepia faptului c se
folosetecomplementfade10nlocdecomplementfade2.

Laefectuareaoperaiei(255+(63)=192)10,formmcomplementulfade9allui
63dupcareadunm1pentruaobinecomplementulfade10.

Adunareasepoateacumefectuaaacumesteprezentatnfigurademaijos:

72

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Transportul ce iese de la cea mai semnificativ cifr este eliminat, la fel ca i la


adunareancomplementfadedoi.
Spredeosebiredereprezentareancomplementfadedoinuputemsexaminm
bitul cel mai semnificativ pentru a determina semnul. n complement fa de 10,
numrulestepozitivdaccifraBCDdinstnga(ceamaisemnificativ)estentre0i
4.Dacestentre5i9atuncinumrulestenegativ.Secvenadebiipentru4este
0100iarpentru5este0101.Ambelesecveneaubitulcelmaisemnificativ0dar,cu
toate acestea, cifra 4 nseamn numr pozitiv iar cifra 5 deja nseamn numr
negativ.Dacfolosimexces3pentruacodificafiecarecifr,atuncibituldinstnga
vaindicasemnul.nfigurademaijosesteprezentataceastcodificare:

UnsumatorcompletBCDtrebuiesadunedoucifreBCDiuntransportitrebuie
s produc o cifr BCD ca rezultat al adunrii i un transport la ieire, toate
reprezentatenexces3.nfigurademaijosesteprezentatunastfeldesumatorcare
folosetesumatoarecompletencomplementfadedoi.

73

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

CifreleBCDreprezentatenexces3suntadunatencelepatrusumatoarecomplete
n complement fa de doi din partea superioar. Din moment ce fiecare operand
este reprezentat n exces 3, rezultatul este n exces 6. Pentru a stoca rezultatul n
exces3,trebuiesscdem3dinrezultat.Caoalternativputemaduna13larezultat
pentruc163=16+13ntroreprezentarepepatrubii,eliminndtransportul
care iese de la bitul cel mai semnificativ. n figura de mai sus am folosit aceast
ultimalternativ,unde1310=11012esteadunatlarezultat.Aceastafuncioneaz
doardacnuavemtransport.Cndavemtransport,atuncitrebuiesmaiscdem10
(sau s adunm 6) din rezultat i s producem un transport. Aici am adunat 310 =
00112ceeaceareacelaiefectcuadunarea(6+13)%16=3.
Pentru a efectua scderi BCD, putem crea un scztor n complement fa de 10
folosindscztoricomplein baza10.Caoalternativputemcrea complementul
fade10negativaldesczutuluiisaplicmooperaiedeadunareBCD.nfigura
de mai jos prezentm calculul (2134 = 13)10 folosind aceast ultim metod de
scderepentrunumereformatedinpatrucifre.

Complementulfade10negativallui34esteadunatla21,ceeacened9987n
complementfade10,ceeaceeste(13)10nmagnitudinecusemn.

AdunareaiscdereaBCDanumerelornvirgulmobil
S considerm o reprezentare n virgul mobil n baza 10 cu exponentul
reprezentatpedoucifrenmagnitudinecusemnimantisareprezentatpe8cifre
n magnitudine cu semn. Un exemplu de ceea ce vede utilizatorul ar putea fi:
.37100000x1012,careestenformanormalizat.
Uncalculatorfoloseteinternoreprezentarencomplementfade10attpentru
exponent ct i pentru partea fracionar. Pentru exemplul de mai sus
74

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

reprezentarea n complement fa de 10 ar fi: 88 pentru exponent i 62900000


pentru partea fracionar. Folosind reprezentarea n exces 3 n binar va rezulta
exponentul10111011iparteafracionar:1001010111000011001100110011
0011. Din moment ce folosim bitul cel mai din stnga pentru semn, exponentul
variazntre50i49iarparteafracionarntre.50000000i+.49999999.
Dac ncercm s reprezentm +.9 n baza 10, atunci suntem din nou n impas
pentrucbitulcelmaidinstngaalestefolositpentrusemn.Adic,nuputemfolosi
1100cacifrceamaisemnificativ,deoarece,cutoatecereprezentareanexces3
alui9,fraciavaapreacafiindnegativ.Pentruaceastaavemosoluiemaibun:
folosimcomplementulfade10pentruaritmeticanbaza10laexponentifolosim
reprezentareanmagnitudinecusemnpentruparteafracionar.
Pentru a concluziona: Folosim reprezentarea n complement fa de 10 pentru
exponentdeoareceestentregifolosimreprezentareanmagnitudinecusemnn
baza10pentruparteafracionar.Unbitdesemnseparatestealocatpentrupartea
fracionar,aacfiecarecifrpoateluaoricaredin cele 10 valoridela0la9(cu
excepia primei cifre, care nu poate fi zero) aa c acum putem reprezenta +.9.
Exponentul trebuie reprezentat n exces 50 pentru a putea face mai uor
comparaiile.Exemplulprecedentvaartainternastfel:

Bituldesemn: 1
Exponentul:

01101011
Fracia:
011010100100001100110011001100110011

Estereprezentatnexces3,cudoucifrepentruexponentnexces50.
Pentruaadunadounumerenaceastareprezentare,trebuiesparcurgemaceeai
pai ca i pentru reprezentarea n baza 2 a numerelor reprezentate n virgul
mobil. Vom ajusta exponentul i partea fracionar a operandului mai mic pn
cnd exponenii ambilor operanzi sunt egali. Dac diferena dintre exponeni este
attdemarenctparteafracionaraoperanduluimaimicestedeplasatcompletla
dreapta atunci operandul mai mic este tratat ca zero. Dup ajustarea prii
fracionare mai mici, convertim unul sau ambii operanzi din reprezentarea n
magnitudine cu semn n complement fa de 10 n funcie de operaia pe care o
facem:adunaresauscdereinfunciedesemnuloperanzilor.

Concluzie
Aritmeticancalculatoarepoatefiefectuatexactlafelcumprocedmatuncicnd
efectumadunarezecimalcucreionulpehrtie,lundncalculbazadenumeraie.
Reprezentareancomplementfade2saucomplementfade10sefolosetede
regulpentruntregi,iarreprezentareanmagnitudinecusemnsefolosetede
regulpentrufraciidatoritdificultiimanipulriifraciilorpozitiveinegative
ntromanieruniform.
Sepoatembuntiperformanaoperaiiloraritmeticeprinfolosireaunoralgoritmi
specializai.
75

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

5. Arhitecturasetuluideinstruciuni
Introducere
n continuare vom trece n revist un subiect important pentru arhitectura
calculatoarelorianume:limbajulnelesdehardwareulsistemuluidecalculnumit
limbajmain.Desprelimbajulmainsediscutderegulntermeniilimbajului
deasamblareasociat,careesteechivalentdinpunctdevederefuncionallimbajului
maincorespunztor,cuexcepiafaptuluiclimbajuldeasamblarefolosetenume
intuitivecumarfi:Move,Add,Jumpnloculcuvintelorbinarealelimbajuluimain.
(Programatoriinelegmultmaisimpluinstruciunideforma"Addr0,r1,r2"dect
secvenedegenul0110101110101101.)
Pentruadescrielimbajuldeasamblareiprogramarenlimbajdeasamblare,vom
folosi ca model arhitectural maina ARC, care este o simplificare a arhitecturii
SPARCdelaSUN.

Componentelehardwarealearhitecturiisetuluideinstruciuni(ASI)
ASI a unui sistem de calcul prezint programatorului n limbaj de asamblare o
viziune asupra sistemului de calcul care include tot hardwareul accesibil
programatorului i instruciunile care manipuleaz datele n hardware. n
continuare vom prezenta componentele hardware aa cum sunt vzute de
programatorulnlimbajdeasamblare.
ModelulMagistralsistem

Scopul magistralei este de a reduce numrul de interconexiuni dintre procesor i


subsistemele sale. n loc s aib ci de comunicaie separate ntre memorie i
dispozitivelede I/E,procesorulesteinterconectatcumemoria i fiecaredispozitiv
de I/E printro magistral sistem partajat. ntrun sistem mai complex ar putea
exista magistrale separate ntre procesor (CPU) i memorie i ntre procesor i
dispozitiveledeI/E.
Nu toate componentele sunt conectate la magistrala sistem n acelai mod.
Procesorulgenereazadresecaresuntplasatepemagistraladeadreseiarmemoria
recepioneazadreseledelamagistraladeadrese.Memorianugenereazniciodat
76

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

adrese, iar procesorul nu recepioneaz niciodat adrese aa c sgeile


corespunztoaredinfigurademaisussuntunidirecionale.
Scenariulobinuiteste:utilizatorulscrieprogramulntrunlimbajdeprogramarede
nivel nalt, compilatorul l traduce n limbaj de asamblare. Asamblorul traduce
programul din limbaj de asamblare n program n cod main, program care este
stocatpedisc.naintedeexecuie,programulncodmainestencrcatdepedisc
nmemoriaprincipaldectresistemuldeoperare.
ntimpulexecuieifiecareinstruciuneesteadusperndnunitateaaritmetici
logicdinmemorie,mpreuncudatelenecesarepentruexecuiaei.Dateledeieire
aleprogramuluisuntplasatepeundispozitivcumarfiundisplayvideosaupedisc.
Toateacesteoperaiisuntorchestratedeunitateadecontrol.Comunicaiantrecele
treicomponente(CPU,memorie,I/E)serealizeazprinmagistrale.
Instruciunile se execut n unitatea aritmetic i logic (UAL), cu toate c
instruciunile i datele sunt stocate iniial n memorie. Aceasta nseamn c
instruciunileidateletrebuiencrcatedinmemorienregistreUALiarrezultatul
trebuiestocatnapoinmemorie.

Memoria
Este format dintro colecie de registre numerotate consecutiv (adresai), fiecare
registru poate stoca n mod normal un octet. Fiecare registru are o adres numit
locaie de memorie. Termenii bit respectiv byte (octet) au acelai neles pentru
oricearhitecturnschimbtermenulcuvntdepindedeprocesor.Dimensiunitipice
pentru un cuvnt sunt: 16, 32, 64 sau 128 bii, cel mai des n ziua de astzi, n
sistemeledecalculactualefolosindusecuvintede32debii.

ntrunsistemdecalculncareadresareasefacelaniveldeoctet,celmaimicobiect
cepoatefireferitnmemorieesteoctetul,cutoatecexistinstruciunicarecitesc
iscriucuvinteformatedinmaimulioctei.Cuvinteleformatedinmaimulioctei
suntstocatecasecvenedeocteiisuntadresate prinoctetulcuvntuluicareare

77

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

adresaceamaimic.Majoritateasistemeloractualeauinstruciunicarepotaccesa
octei,jumtidecuvnt,cuvinteicuvntdublu.
Atunci cnd se folosesc cuvinte formate din mai muli octei, exist dou variante
pentru stocare octeilor n memorie: cel mai semnificativ octet la adresa cea mai
mic,adicbigendian,saucelmaipuinsemnificativoctetlaadresaceamaimic,
adiclittleendian.
Exemple pentru cele dou variante sunt date n figura de mai jos n care sunt
prezentatecuvinteformatedinpatruoctei:

Octeiintruncuvntformatdinmaimuliocteisuntstocailaadreseconsecutive
aacumsevedenfigurademaisus.Dacavemdeafacecumemorieadresabilla
niveldeoctetfiecareoctetpoatefiadresatprinadresaluispecific.Cuvntulformat
din patru octei se acceseaz prin referenierea adresei octetului cu cea mai mic
adres (x n figur). Aceasta este valabil indiferent dac varianta de stocare este
littleendiansaubigendian.
ncontinuarevomfolosimemoriaprezentatnfigurademaijos.

Aceast memorie are un spaiu de adresare de 32 de bii, ceea ce nseamn c un


programpoateaccesaunoctetdinmemorieoriundenintervalul0..2321.Spaiulde
78

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

adresare este mprit pentru arhitectura noastr n regiuni distincte care sunt
folositepentrusistemuldeoperare,pentruintrareieire,programulutilizator,stiva
sistemului,care formeazhartamemorieiaacumesteprezentatnfigur.Harta
memorieidiferdelaoimplementarelaalta,acestafiindunuldinmotivelepentru
care un program compilat pentru acelai tip de procesor sar putea s nu fie
compatibildelaunsistemlaaltul.
Primii 2048 de octei sunt rezervai pentru sistemul de operare. Spaiu utilizator
este locul n care se ncarc programele i poate crete de la poziia 2048 pn
ntlnete stiva sistem. Stiva sistem ncepe la locaia 2314 i poate crete nspre
adrese mai mici. Spaiul de adresare de la 231 la 2321 este rezervat pentru
dispozitivele de intrareieire. Din moment ce dispozitivele de intrareieire sunt
tratatecalocaiidememorie,comenzileobinuitedecitireiscrierenmemoriepot
fifolositepentrucitireaiscriereadispozitivelor.
Trebuiefcutdistinciantreadresidate.Oadresare32debiiiaruncuvnt
estetot32debiidarnusuntacelailucru.Oadresesteunpointerlaolocaiede
memorie care conine date. O adres de memorie de n bii poate specifica 2n
elementeaacdimensiuneamemorieicepoatefiaccesatdepindedenumrulde
biirezervaipentruadresedememoriecepotfiplasatedeprocesorpemagistrala
deadrese.

Microprocesorul
Microprocesorul este format dintro seciune de date care conine registre i
Unitatea Aritmetic i Logic (UAL) i o seciune de control care interpreteaz
instruciunileiefectueaztransferulntreregistreaacumesteprezentatnfigura
demaijos.

SeciuneadedatesemainumeteDatapath.
Unitateadecontrolesteresponsabildeexecutareainstruciunilorprogramului,ce
sunt stocate n memorie principal. (Vom considera c instruciunile sunt
interpretate una cte una). Exist dou registre care formeaz interfaa ntre
unitatea de control i unitatea de date, numite Program Counter (PC contor
program) i Instruction Register (IR registru instruciune). PC conine adresa
79

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

instruciuniicareseexecut.InstruciuneaindicatdePCesteextrasdinmemorie
i este stocat n IR unde este interpretat. Paii pe care i efectueaz unitatea de
controllaexecuiaunuiprogramsunt:

1. Extragedinmemorieurmtoareinstruciunecesevaexecuta
2. Decodificcoduloperaiei
3. Citeteoperandul(operanzii)dinmemorie,dacexist
4. Executinstruciuneaistocheazrezultatul
5. Saltlapasul1.

Acestaesteciclulextragereexecuie.

Unitatea de control este responsabil pentru coordonarea diferitelor uniti n


execuiaunuiprogram.Aceastaiadeciziinlegturcumodulncaresecomport
restulsistemului.
Datapathulesteformatdintrocoleciederegistrenumiteregisterfile,idinUAL
aacumsevedenfigurademaijos:

Register file poate privit ca o memorie mic i rapid separat de memoria


sistemului, care este folosit pentru stocarea temporar n timpul operaiilor
aritmetice.Dimensiuneaacestuiaestedeobiceicuprinsntrectevaregistrepn
lactevamii.Fiecareregistruarealocatoadreslafelcaimemoriancepndde
lazero.Acesteadresederegistresuntmultmaimicidectadreseledememorie.
Pentruunregisterfilececonine32deregistredimensiuneaadreseiestede5bii.
Diferenamajoradintreregisterfileimemorieestececoninutnmicroprocesor
i de aceea este mult mai rapid. Din acest motiv programele ce folosesc intens
registre sunt mult mai rapide dect programele ce folosesc intens memoria, chiar
dacenevoiedemaimulteoperaiicuregistredectcumemoriepentruaefectuao
operaie.
80

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Setul de instruciuni este o colecie de instruciuni pe care procesorul poate s le


execute i acestea definesc procesorul. Setul de instruciuni este diferit de la un
procesor la altul. Aceste instruciuni difer prin dimensiunea instruciunilor, tipul
operaiilor pe care le permit, tipul operanzilor asupra crora opereaz i tipul
rezultatelorgenerate.Aceastcompatibilitatelaniveldesetdeinstruciuniesten
contrast cu compatibilitatea limbajelor de programare de nivel nalt cum sunt C,
Pascal.Programelescrisenacestelimbajepotrulaaproapenemodificatepemulte
procesoaredacsuntrecompilatepentruprocesorulrespectiv.
(OexcepielaaceastincompatibilitatelaniveldelimbajmainesteJavabytecode,
care reprezint un limbaj main pentru o main virtual. Aceste programe vor
rula nemodificate pe orice procesor care ruleaz Maina Virtual Java. MVJ este
scris n limbajul de asamblare al procesorului int. MVJ intercepteaz bytecodul
JavailexecutcaicumarrulapeunhardwareJava)
Datorit acestei incompatibiliti n setul de instruciuni, sistemele de calcul sunt
adeseaidentificateprintipuldeprocesorcucaresuntdotate.Setuldeinstruciuni
determin programele pe care sistemul le poate executa i are un efect important
asupra performanei. Programele compilate pentru IBM PC (sau compatibil)
folosescsetuldeinstruciunialunuiprocesor80x86,undexsenlocuietecuocifr
cecorespunde versiuniide procesor:2,3, 4, 5(Pentium).Aceste programe nuvor
rula pe Apple Macintosh sau IBM RS6000 din moment ce sistemele IBM execut
setuldeinstruciunialeprocesoruluiMotorolaPowerPC.Chiariunprogramscris
pentruunprocesornuvarulantotdeaunapesistemediferitedatoritdiferenelor
ntresistemeledeoperareiconveniilordeintrareieire.
Software pentru generarea de programe n limbaj main sunt de regul
compilatoareleiasambloarele.
Uncompilatoresteunprogramcaretransformprogramulscrisntrunlimbajde
programare de nivel nalt n limbaj main. Compilatoarele pentru un limbaj de
programare vor avea partea din fa (cea care recunoate construciile din
limbajul de programare de nivel nalt) identic, iar partea din spate (cea care
creeaz codul main) diferit pentru fiecare tip de sistem de calcul. Se poate ca
acelaiprogramcompilatcucompilatoarediferitepentruacelaisistemdecalculs
produccoddiferit.
nprocesuldecompilarealunuiprogram,programulsurs,scrisntrunlimbajde
programare de nivel nalt, este transformat n cod n limbaj de asamblare iar mai
apoicodulnlimbajdeasamblareestetransformatncodmaindectreasamblor.
Aceste traduceri au loc n faza de compilare respectiv de asamblare. Programul
obiect care rezult poate fi linkeditat cu alte programe obiect n faza de link
editare. Programul linkeditat, stocat de regul pe disc, este ncrcat n memoria
principal n faza de ncrcare a programului i este executat de ctre procesor n
fazadeexecuie(runtime).
Cutoatecmajoritateaprogramelorsescriunlimbajedenivelnalt,programatorii
potscrieprogramesausecvenedin uneleprograme,caretrebuiesrulezefoarte
81

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

repede,nasamblare.nplus,sarputeasnuexistecompilatoarepentruanumite
procesoare speciale sau compilatoarele s nu poat fi folosite pentru a efectua
anumiteoperaiispeciale.nacestecazuri,programatorulestenevoitsrecurgdin
noulalimbajuldeasamblare.
Limbajeledeprogramaredenivelnaltnepermitsignormarhitecturasistemului
de calcul int. Pe de alt parte, la nivel limbaj main, arhitectura este cel mai
importantaspectdecaretrebuieinutcont.

ARCARISCComputer
n continuare vom prezenta un model arhitectural bazat pe arhitectura SPARC
(Scalable Processor Architecture) dezvoltat de SUN la mijlocul anilor 60.
Arhitectura SPARC a devenit popular datorit naturii sale deschise: definiia
completaarhitecturiiSPARCafostfcutpublicn1992.Noi,vomprezentadoar
osubmulimeaSPARC,pecareovomnumiARC(ARISCComputer).

MemoriaARC
ARC este o main pe 32 de bii cu memoria adresabil la nivel de octet. Poate
manipula tipuri de date de 32 de bii, dar toate datele sunt stocate n memorie ca
octeiiaradresaunuicuvntde32debiiesetadresabituluicareseafllaadresa
cea mai mic. Memoria este mprit n mai multe zone aa cum prezentat harta
memorieintrofigurprecedent.Zonelememorieisunt:zonarezervatsistemului
de operare, zona rezervat programelor utilizator, stiva sistem i zona pentru
operaiideintrareieire.
ARCul are mai multe tipuri de date (octet, jumtate de cuvnt, cuvnt). Fiecare
ntregestestocatnmemoriecapatruocteinformatbigendian,aacoctetulcel
maisemnificativestelaadresaceamaimic.

SetuldeinstruciuniARC
ProcesorulARCare:
32deregistrede32debiipentruuzgeneral,precumiregistrelePCiIR.
Registrul PSR (Processor Status Register) care conine informaii despre
starea procesorului, inclusiv informaii despre operaiile aritmetice. Indicatorii
aritmetici din PSR se numesc coduri condiionale. Acestea specific dac o
anumit operaie aritmetic a generat valoarea zero (z), valoare negativ (n),
transport din UAL (c) i depire (v). Bitul v este setat atunci cnd rezultatul
operaieiaritmeticeestepreamarepentruaputeafitratatdeUAL.
Toateinstruciunileaudimensiuneadeuncuvnt(32debii).
ARC este o main de calcul de tip ncrcarestocare: singurele operaii de
acceslamemoriepermisesuntceledencrcareauneivaloridinmemorientr
un registru i stocarea unei valori dintrun registru ntro locaie de memorie.
Toate operaiile aritmetice opereaz asupra unor valori ce sunt coninute n
82

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

registre iar rezultatul este plasat tot ntrun registru. Arhitectura SPARC are
aproximativ 200 de instruciuni. Pentru ARC vom considera doar 15 cele mai
importante. Acestea sunt prezentate n tabelul de mai jos mpreun cu
mnemoniceleasociate(numelecarereprezintinstruciunea).

Memorie
Logic

Aritmetic
Control

Mnemonic neles
ld
st
sethi
andcc
orcc
orncc
srl
addcc
call
jmpl
be
bneg
bcs
bvs
ba

ncarcunregistrudinmemorie
Stocheazunregistrunmemorie
ncarcceimaisemnificativi22debiiaiunuiregistru
ANDlogicpebii
SAUlogicpebii
NORlogicpebii
Deplasareladreapta(logic)
Adunare
Apeldesubrutin
Saltilegtur(returndinapeldesubrutin)
Ramificarencazdeegalitate
Ramificaredacenegativ
Ramificaredacexisttransport
Ramificaredacaparedepire
Ramificarentotdeauna

Instruciunileld(load)ist(store)transferuncuvntntrememorieiunuldin
registreleARC.AcesteasuntsingureleinstruciunicarepotaccesamemorianARC.
Instruciunea sethi seteaz cei mai semnificativi 22 de bii ai unui registru cu o
constant pe 22 de bii coninut n instruciune. Este folosit pentru a construi o
constantpe32debiintrunregistru,mpreuncuoaltinstruciunecareseteaz
cei10biimaipuinsemnificativiairegistrului.
Instruciunileandcc,orcc,ornccefectueazoperaiileAND,OR,NORpebiiasupra
operanzilor lor. Unul din cei doi operanzi surs trebuie s fie ntrun registru.
Rezultatul este stocat ntrun registru. Sufixul cc indic faptul c dup terminarea
operaiei biii cod condiie din PSR sunt actualizai pentru a reflecta rezultatul
operaiei.Bitulzestesetatdacrezultatulestezero,bitulnestesetatdaccelmai
semnificativbitalrezultatuluieste1,iarcivsuntsetailazero.
Instruciunile call i jmpl formeaz o pereche de instruciuni folosite la apelul i
ntoarcereadintrosubrutin.Instruciuneajmplestefolositipentruatransfera
controluluneialtepriaprogramului.
Ultimele cinci instruciuni provoac o ramificare n execuia programului. Aceste
instruciuni verific anumii bii din PSR i execut ramificarea n funcie de
valoarea acestora. Aceste instruciuni sunt folosite pentru implementarea unor
instruciuni din cadrul limbajelor de nivel nalt cum sunt: goto, ifthenelse, do
while.

83

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

FormatulinstruciunilornlimbajdeasamblareARC
Fiecarelimbajdeasamblarearepropriasintax.PentruARCformatulvafi:

Etichet

Mnemonic

Operand
surs

Operand
destinaie

Comentariu

Avempatrucmpuri:oetichetopional,uncmppentruopcod(coduloperaiei),
unul sau mai multe cmpuri care specific operanzii surs i destinaie, un
comentariu(opional).Limbajulfacedistincientreliterelemariimici.
ArhitecturaARCconine32deregistreetichetate%r0%r31,fiecareavnd32de
bii. Exist un registru de 32 de bii PSR (Processor State Register) care descrie
stareacurentaprocesoruluiiunregistrude32debiiPC(ProgramCounter),care
ineevidenainstruciuniicareseexecut.Figurademaijosprezintacesteregistre.

Registrele%r14i%r15suntfolosiicapointerstiv(%sp)iregistrulink.
Operanzii instruciunilor n limbaj de asamblare sunt separai prin virgule iar
operandul destinaie apare ntotdeauna ultimul. Baza implicit pentru operaiile
aritmetice este baza 10. Dac valorile sunt precedate de 0x sau se termin cu H
atunciseconsiderafinbaza16.Instruciunea:

addcc%r1,12,%r3

are ca efect adunarea valorii din registrul %r1 cu constanta 12 iar rezultatul este
plasatnregistrul%r13.

FormatulinstruciunilorARC
Formatul instruciunilor definete modul n care cmpurile de bii ale
instruciunilorsuntcreatedectreasambloricumsuntinterpretatedeunitateade
84

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

control a ARC. Arhitectura ARC are doar cteva formate de instruciuni i anume
cinci:

Fiecareinstruciuneareomnemoniccumarfildiunopcod.Cmpulde5biird
identificregistrulintsausurspentruoperaie.

FormatuldatelorpentruARC
ARC suport 12 formate diferite pentru date aa cum sunt prezentate n figura de
maijos.
ARC nu face distincie ntre ntregi cu semn sau fr semn. Acetia sunt stocai i
manipulaicantregincomplementfadedoi.Ceeacevariazesteinterpretarea
lor.

DescriereainstruciunilorARC
ncontinuarereferireaconinutuluiuneilocaiidememorie(pentruldsaust)este
indicatprin"ld[x],%r1"cearecaefectcopiereaconinutuluilocaieixnregistrul
%r1.Oreferinlaadresauneilocaiidememoriesespecificdirect,frparanteze
drepte "call sub_r", ceea ce va apela subrutina sub_r. Doar ld i st pot accesa
memoria, prin urmare sunt singurele instruciuni la care se folosesc parantezele
drepte.Cndutilizmregistrentotdeaunaseacceseazconinutuliniciodatnuse
iaadresaacestoraaacnuenevoiesfiepusnumeleunuiregistruntreparanteze
drepte.

85

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Instruciunea:ld
Descriere: ncarc un registru cu o valoare din memoria principal. Adresa de
memorie trebuie s fie la nceputul unui cuvnt (s fie divizibil cu 4). Adresa se
calculeaz prin adunarea coninutului registrului din cmpul rs1 cu coninutul
registruluidincmpulrs2saucuvaloareacmpuluisimm13.
Exemple:
ld[x],%r1

ld[x],%r0,%r1

ld%r0+x,%r1
neles:copiazconinutullocaieidememoriexnregistrul%r1.

Instruciunea:st
Descriere: stocheaz coninutul unui registru n memorie. Adresa de memorie
trebuie s fie divizibil cu 4. Adresa se calculeaz prin adunarea coninutului
registruluidincmpulrs1cuconinutulregistruluidincmpulrs2saucuvaloarea
cmpuluisimm13.Cmpulrdestefolositpentruregistrulsurs.
Exemple:st%r1,[x]
neles:Copiazconinutulregistrului%r1nlocaiadememoriex.

Instruciunea:sethi

86

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Descriere:seteaz ceimaisemnificativi22debiiipune pezeroceilali10 (mai


puin semnificativi). Dac operandul este zero i registrul este %r0, atunci
instruciuneasecomportcaNOP(nooperation)adicnuarelocniciooperaie.
Exemple:sethi0x304F15,%r1
neles:seteazcei22debiimaisemnificativilavaloareaindicatiarceilali10la
zero.

Instruciunea:andcc
Descriere: I logic pe bii ntre operanzii surs iar rezultatul este salvat n
operanduldestinaie.Coduriledecondiiesuntsetateconformrezultatului.
Exemple:andcc%r1,%r2,%r3
neles: se efectueaz operaiaIlogic ntrevalorile din %r1 i %r2 iar rezultatul
estesalvatn%r3.

Instruciunea:orcc
Descriere: SAU logic pe bii ntre operanzii surs iar rezultatul este salvat n
operanduldestinaie.Coduriledecondiiesuntsetateconformrezultatului.
Exemple:orcc%r1,1,%r1
neles:seteazcelmaisemnificativbitallui%r1la1.

Instruciunea:orncc
Descriere: NOR logic pe bii ntre operanzii surs iar rezultatul este salvat n
operanduldestinaie.Coduriledecondiiesuntsetateconformrezultatului.
Exemple:orncc%r1,%r0,%r1
neles:Complementeaz%r1.

Instruciunea:srl
Descriere: deplaseaz un registru la dreapta cu 031 bii. Biii din partea dreapt
voraveavaloarea0.
Exemple:srl%r1,3,%r2
neles:deplaseaz%r1ladreaptacutreibiiistocheazrezultatuln%r2.

Instruciunea:addcc
Descriere: adun operanzii surs i stocheaz rezultatul n operandul destinaie
folosindaritmeticancomplementfade2.
Exemple:addcc%r1,5,%r1
neles:Adun5la%r1.

Instruciunea:call
Descriere:apeleazosubrutinistocheazadresainstruciuniicurente(undeeste
stocatapelul)n%r15,ceeacearecaefectooperaiedeapelilegtur.ncodul
asamblat, cmpul disp30 din formatul de apel va conine deplasamentul pe 30 de
biidinadresainstruciuniicall.
87

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Exemple:callsub_r
neles:Apeleazosubrutincarencepelalocaiasub_r.

Instruciunea:jmpl
Descriere:saltilink(ntoareceredinsubrutin).Saltlaonouadresistocarea
adresei instruciunii curente (unde este plasat instruciunea jmpl) n registrul
destinaie.
Exemple:jmpl%r15+4,%r0
neles:ntoarceredinsubrutin.ValoarearegistruluiPCpentruinstruciuneacalla
fost salvat iniial n %r15 aa c adresa de ntoarcere ar trebui calculat din
instruciunea care urmeaz apelului, la %r15+4. Adresa curent este eliminat n
%r0.

Instruciunea:be
Descriere:Daccoduldecondiiezeste1,atunciramificlaadresacalculatprin
adunarea valorii 4 x disp22 din formatul instruciunii de ramificare la adresa
instruciuniicurente.Daccoduldecondiiezeste0,atuncicontrolulestetransferat
lainstruciuneaurmtoare.
Exemple:beetichet
neles:Ramificlaetichetdaccoduldecondiiezeste1.

Instruciunea:bneg
Descriere: Dac codul de condiie n este 1, atunci ramific execuia la adresa
calculatprinadunareavalorii4xdisp22dinformatulinstruciuniideramificarela
adresa instruciunii curente. Dac codul de condiie n este 0, atunci controlul este
transferatlainstruciuneaurmtoare.
Exemple:bnegetichet
neles:Ramificlaetichetdaccoduldecondiieneste1.

Instruciunea:bcs
Descriere: Dac codul de condiie c este 1, atunci ramific execuia la adresa
calculatprinadunareavalorii4xdisp22dinformatulinstruciuniideramificarela
adresa instruciunii curente. Dac codul de condiie c este 0, atunci controlul este
transferatlainstruciuneaurmtoare.

Exemple:bcsetichet
neles:Ramificexecuiaprogramuluilaetichetdaccoduldecondiieceste1.

Instruciunea:bvs
Descriere: Dac codul de condiie v este 1, atunci ramific execuia la adresa
calculatprinadunareavalorii4xdisp22dinformatulinstruciuniideramificarela

88

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

adresa instruciunii curente. Dac codul de condiie v este 0, atunci controlul este
transferatlainstruciuneaurmtoare.
Exemple:bvsetichet
neles:Ramificexecuiaprogramuluilaetichetdaccoduldecondiieveste1.

Instruciunea:ba
Descriere: Ramific execuia la adresa calculat prin adunarea valorii 4 x disp22
dinformatulinstruciuniideramificarelaadresainstruciuniicurente.
Exemple:baetichet
neles:Ramificexecuiaprogramuluilaetichetindiferentdevaloarecodurilorde
condiie.

Pseudooperaii
PelnginstruciunileARCsuportatedearhitectur,existipseudooperaiicare
nureprezintopcoduri.Acesteasuntinstruciunipentruasamblorpentruaefectua
unele aciuni la asamblare. O list cu pseudooperaii i exemple de utilizare a lor
esteprezentatnlistademaijos.

Spredeosebiredeopcoduricaresuntspecificesistemului decalcul,tipulinatura
pseudooperaiilor sunt specifice unui anumit asamblor, deoarece acestea sunt
executatedeasamblor.

Exempledeprogramenlimbajdeasamblare
Procesuldescriereaunuiprogramnlimbajdeasamblareestesimilarcuprocesul
descriereaunuiprogramntrunlimbajdeprogramaredenivelnalt, cuexcepia
89

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

faptuluicmultedetaliicesuntabstractizatenlimbajeledenivelnalt,nlimbajele
deasamblaretrebuiescriseexplicit.

Program:Adunareaadointregi(15+9)

Program:Sumaunuitabloudentregi

Variaiinarhitecturilesistemelordecalculinmoduldeadresare
ARCesteuncalculatordetipncrcare/salvare.Programelescrisepentruastfelde
sisteme se execut de regul mai repede, datorit reducerii traficului dintre
procesorimemorieprinncrcareaoperanzilornprocesorosingurdatiprin
90

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

stocarearezultatelordoarcndcalcululestencheiat.Mrireadimensiuniimemoriei
programuluiesteunprecaremeritpltit.
DacARCulpoatefaceoperaiiaritmeticeilogicedoarcuoperanzicareseafln
registre,trebuietiutfaptulcunelesistemedecalculaveauinstruciuniiaritmetice
careefectuauoperaiilearitmeticefolosindtrei,dousauoadresdememorie.
SconsidermmodulncareesteevaluatexpresiaA=B*C+Ddefiecaredincele
treitipurideinstruciuni.nexempleledemaijosatuncicndnereferimlavariabila
A va nsemna operandul a crui adres este A. Pentru a efectua statisticile de
performan pentru fragmentele de cod de mai jos vom face urmtoarele
presupuneri:
Adreseleicuvintelesuntde16bii
Opcodurilesuntde8bii
Operanziiiopcodurilesuntmutatedininmemoriecteuncuvnt.
Vom calcula att dimensiunea programului, n octei ct i traficul de memorie
inndcontdeacestevalori.
Traficul de memorie are dou componente: codul propriuzis, care trebuie extras
dinmemorieincrcatnprocesorpentruafiexecutativalorileoperanziicare
trebuie mutai n procesor pentru a fi efectuate calculele, iar rezultatul trebuie
mutat napoi n memorie la ncheierea calculelor. Astfel putem vedea
compromisurile ntre dimensiunea programelor i traficul de memorie oferit de
diferiteleclasedeinstruciuni.

Instruciunicutreiadrese
ExpresiaA=B*C+Dpoateficodificatastfel:

multB,C,A
addD,A,A

ceea ce nmulete B cu C i salveaz rezultatul n A (operaiile mult i add sunt


genericeelenusuntinstruciuniARC)dupcareseadunDlaAisestocheaz
rezultatullaadresaA.Dimensiuneaprogramuluieste2x(1+2+2+2)=14octeiiar
traficuldememorieeste2x(7+(2+2+2))=26octei(7octeipentruncrcarea
instruciuniii6octeipentrutraficuldedate).

Instruciunicudouadrese
Expresiademaisuspoateficodificatastfel:

loadB,A
multC,A
addD,A

Dimensiuneaprogramuluiesteacum3x(1+2+2)=15octei.Traficuldememorie
este(5+4)+(5+6)+(5+6)=31octei.Lafiecareinstruciunesunt5octeipentru
91

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

ncrcareainstruciunii.Laprimainstruciunemaisunt4octeipentruvariabile,iar
laultimeledouinstruciunisuntcte6octei(cu2maimultdectlaprima)pentru
cambiioperanzitrebuiencrcainCPU.SalvarearezultatuluidinCPUnmemorie
sefacelafiecaredinceletreiinstruciuniceeacenecesit2octei.

Instruciunicuoadressauinstruciuniacumulator
O instruciuni cu o adres folosete un singur registru al procesorului, numit
acumulator. Acumulatorul conine un operand aritmetic i servete i ca int
pentrurezultatuluneioperaiiaritmetice.Acestformat nuesteobinuitnziuade
astzidarerafolositfrecventmaidemultcndprocesoareleaveauregistrepuinei
eraufolositepentrumaimultescopuri.Acesteregistreauroluldeastocatemporar
unuldinoperanziirezultatul.Expresiademaisussepoareexprimaastfel:

loadB
multC
addD
storeA

Fiecareinstruciuneare1+2=3octeiaacdimensiuneaprogramuluieste4x3=
12octei.Traficuldememoriepentrufiecareinstruciuneeste3+2=5octeiaac
traficultotaldememorieeste4x5=20deoctei.

Registrespeciale
Pe lng registrele generale, majoritatea arhitecturilor moderne includ i alte
registrededicateunorscopurispeciale.Deexemplu:
Registre pentru index de memorie: registrele SI (Source Index) i DI
(Destination Index) de la Inter 80x86. Acestea sunt folosite pentru a indica
nceputulsausfritulunuitabloudinmemorie.
Registre pentru virgul mobil: multe procesoare au registre speciale i
instruciunicareseocupdenumerelereprezentatenvirgulmobil.
Registrepentrutratareatimpuluiisincronizareaoperaiilor.
Registrepentrusuportulsistemelordeoperare.
Registrecarepotfiaccesatedoarprininstruciuniprivilegiate.

Accesareadatelornmemoriemodurideadresare
Pnacumamvzutpatrumoduridecalculareaadreseiuneivaloridinmemorie:
1. ovaloareaconstant,cunoscutlaasamblare,
2. coninutulunuiregistru,
3. sumaadouregistre,
4. sumadintreunregistruioconstant.
Tabeluldemaijosdnumeacestormoduride adresareiprezintctevamoduri
suplimentare:
92

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Sintaxadin tabel difer de cea a mainii ARC.Notaia M[x] presupune cmemoria


este un tablou, M, a crui index este dat de calculul adresei dintre parantezele
drepte.Fiecaremoddeadresarearepropriautilizare:
Modul de adresare Imediat permite referirea unei constante care este
cunoscutlaasamblare.
Modul de adresare Direct este folosit pentru a accesa date a cror adres
estecunoscutlaasamblare.
ModuldeadresareIndirectestefolositpentruaaccesaovariabilpointera
crei adres este cunoscut la compilare. Aceste mod nu este foarte folosit
ntructinstruciuneaestepreacomplicat.
Modul de adresare Register indirect este folosit atunci cnd adresa
operanduluinuestecunoscutdectlaexecuie.

Linkeditareasubrutineloristiv
O subrutin, numit i funcie sau procedur, este o secven de instruciuni care
este invocat ca i cum ar fi o singur instruciuni vzut de la un nivel superior.
Atuncicndunprogramapeleazosubrutin,controlulexecuieiestetransferatde
la program la subrutin, care execut o secven de instruciuni dup care se
ntoarce la instruciunea din program imediat urmtoare instruciunii de apel.
Existmaimultemodalitideatransmiteargumentelarutinaapelatidinrutina
apelat, modaliti care se numesc convenii de apel. Procesul de transmitere a
argumentelorntrerutinesenumetelinkeditareasubrutinelor.
Oconveniedeapelesteplasareaargumentelornregistre.Coduldemaijosncarc
dou argumente n registrele %r1 i %r2, apeleaz subrutina add_1 i salveaz
rezultatulnregistrul%r3naintedeasentoarcecujmpl.

93

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Aceast metod este rapid i simpl dar nu va funciona dac numrul de


argumente transmise ntre rutine depete numrul de registre libere sau dac
apeluriledesubrutinesuntimbricate(ncuibate)pemaimulteniveluri.
Oadouaconveniedeapelestecreareadezonepentrulegturadatelor.Adresa
zoneidelegturadatelorestetransmisntrunregistrupredefinitrutineiapelate.
Coduldemaijosfoloseteaceastconvenie:

Pseduoperaia.dwbdinrutinaapelantstabiletezonapentrulegturadatelorcare
are dimensiunea de 3 cuvinte la adresa x, x+4 i x+8. Rutina apelant ncarc cele
douargumentelaxix+4,apeleazsubrutinaadd_2dinmemoriedelaadresax+8
iiarezultatultransmisdinadd_2delalocaiadememoriex+8.Adresazoneipentru
legturadatelor,x,estetransmisrutineiadd_2nregistrul%r5.
Instruciuneasethitrebuiesaibcaoperandsursoconstantastfelcasamblorul
recunoateconstruciasethiilnlocuietepexcuadresalui.Instruciuneasrlce
urmeaz mut adresa lui x n cei mai puin semnificativi 22 de bii ai lui %r5, din
momentcesethiplaseazoperandulncei22debiidinstngaairegistruluiint.O
alternativpentruncrcareaadreseiluixn%r5arfisfolosimolocaiedestocare
pentruadresaluixisfolosiminstruciunealdpentruancrcaadresan%r5.
Subrutina add_2 citete cei doi operanzi din zona pentru legtura datelor de la
locaiile %r5 i %r5 + 4, i plaseaz rezultatul n zona pentru legtura datelor la
locaia %r5 + 8 nainte de a se termina. Folosind zona pentru legtura datelor,
putemtransmiteintoarcedinsubrutineblocurideoricedimensiunefracopia
94

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

maimultdeunregistru.Recursivitateapoatecomplicalucrurilepentrucorutin
care se autoapeleaz va avea nevoie de mai multe zone pentru legtura datelor.
Zonelepentrulegturadatelorauavantajulcdimensiunealorpoatefinelimitat,
darauidezavantajulcdimensiuneaacesteizonetrebuiesfiecunoscutnfaza
deasamblare.
Oatreiaconveniedeapelestefolosireastivei.Ideeaestecrutinaapelantpune
toateargumentele(saupointerilaargumente,dacobiectelededatesuntmari)peo
stivdetipultimulintratprimulieit.Rutinaapelatscoatedinstivargumentele
transmiseipunenstivvalorilepecarelentoarce.Rutinaapelantscoatevalorile
ntoarse din stiv i i continu execuia. Un registru al procesorului numit stack
pointer(pointerdestiv),conineadresavrfuluistivei.Multesistemedecalculau
instruciunipushipopcaredecrementeaziincrementeazautomatpointerulde
stivpemsurceobiectelesuntplasatenstivrespectivsuntscoasedinstiv.
Un avantaj al folosirii stivei este c aceasta poate crete i descrete dup nevoi,
ceeaceducelaposibilitateaimbricriinelimitateaapelurilordesubrutinefrafi
nevoie s se declare dimensiunea stivei la asamblare. Mai jos dm un exemplu de
utilizareastivei:

Registrul%r14areroluldepointerdestiv(%sp)careesteiniializatdesistemul
de operare nainte de execuia rutinei apelante. Rutina apelant plaseaz
argumentele(%r1i%r2)pestivdecrementndpointeruldestiv(semut%spla
urmtorulcuvntliberdeasuprastivei)istocndfiecareargumentpenoulvrfal
stivei.Subrutinaadd_3esteapelat,ceeacevadeterminascoatereaargumentelorei
dinstiv,efectuareaoperaieideadunare,istocareavaloriicalculatenvrfulstivei
nainte de ntoarcerea n rutina apelant. Rutina apelant scoate argumentul din
vrfulstiveiiicontinuexecuia.
Pentrufiecareconveniedeapel,estefolositinstruciuneacall,caresalveazPCul
(ProgramCounter)curentn%r15.Cndosubrutinsetermin,trebuiesntoarc
controlullainstruciuneacareurmeazapelului,instruciunecareestelauncuvnt
(patru octei) distan de contorul program (PC) salvat. Astfel, instruciunea jmpl
%r15 + 4, %r0 termin apelul. Dac rutina apelat, apeleaz la rndul ei o alt
95

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

rutin, atunci valoarea lui PC salvat iniial n %r15 va fi suprascris aa c


ntoarcerealarutinainiialnuvamaifiposibilprinintermediullui%r15.Pentru
a permiteapeluri imbricate, valoarea curent a registrului %r15 (care senumete
link register) trebuie salvat pe stiv, mpreun cu orice alt registru care trebuie
restauratdupterminareaapelului.
Dacsefoloseteoconveniedeapelbazatperegistre,atuncilinkregistertrebuie
salvat n unul din registrele nefolosite nainte de apelul unei subrutine. Dac este
folosit o zon pentru legtura de date, atunci ar trebui rezervat spaiu pentru
registerlink.Dacsefoloseteoschembazatpestiv,atunciregisterlinktrebuie
salvatpestiv.Pentrufiecareconveniedeapel,registerlinkivariabilelelocaledin
rutina apelattrebuies fie salvate nainte de a sefaceun alt apel, altfel, un apel
imbricatlaaceeairutinvadeterminasuprascriereavariabilelorlocale.
Cea mai folosit convenie de apel este cea bazat pe stiv. Cnd se apeleaz mai
multe rutine imbricate se creeaz un stack frame care conine argumentele
transmise rutinei apelate, adresa de ntoarcere pentru rutina apelant i orice
variabile locale. n exemplul de mai jos dm un exemplu de program scris ntrun
limbajdeprogramaredenivelnaltcareconineapeluriimbricate:

Operaiile efectuate de program nu sunt importante, nici faptul c am folosit


limbajul C, ceea este important este modul n care sunt implementate apelurile de
subrutine.
Comportamentulstiveipentruacestprogramesteprezentatnfigurademaijos:

96

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Programul principal apeleaz func_1 cu argumentele 1 i 2, iar mai apoi apeleaz


func_2 cu argumentul 10 nainte de ai ncheia execuia. Funcia func_1 are dou
variabilelocaleiijcaresuntfolositepentruacalculavaloareantoarsj.Funcia
func_2aredouvariabilelocalemincaresuntfolositepentruacreaargumentele
cesetransmitluifunc_1naintentoarcereavaloriim.
Pointeruldestiv(%r14princonvenielacarenereferimprin%sp)esteiniializat
nainte de pornirea programului, de obicei de sistemul de operare. Compilatorul
este responsabil pentru implementarea conveniei de apel, aa c va produce cod
pentru ncrcarea parametrilor i ntoarcerea adreselor pe stiv, rezervnd spaiu
pestivpentruvariabilelelocale,iarmaiapoireversndprocesullantoarcereadin
rutine.
Lanceputulexecuieiprogramuluiprincipal,pointeruldestivindicelementuldin
vrful stivei sistem (fig. a). Cnd funcia main apeleaz func_1 n linia 03 cu
argumentele 1 i 2, acestea sunt puse n stiv (fig. b). Controlul este transferat
funcieifunc_1printroinstruciunecall(nuesteprezentat),ifunc_1salveazpe
stivadresadentoarceren%r15carezultatalinstruciuniicall(fig.c).Pestivse
rezervspaiupentruvariabilelelocaleiijaleluifunc_1(fig.d).nacestmoment
avem un stack frame complet pentru funcia func_1, care este format din
argumenteletransmisefuncieifunc_1,adresadentoarecerenrutinaprincipali
variabilelelocalepentrufunc_1.
nainte ca func_1 s predea controlul rutinei apelante, elibereaz spaiul din stiv
rezervatpentruvariabileleeilocale,preiaadresadentoarceredinstiv,elibereaz
97

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

spaiuldinstivrezervatargumentelorpecareleaprimit,ipunenstivvaloarea
dereturn(fig..e).Controlulestentorslarutinaapelantprininstruciuneajmpl,i
rutina apelant este responsabil pentru luarea valorii ntoarse din stiv i
decrementarea pointerului de stiv la poziia la care a fost nainte de apel (fig. f).
Rutinafunc_2estemaiapoiexecutat,iprocesuldeconstruireastackframeului
rencepe(fig.g).Dinmomentcefunc_2apeleazfunc_1naintedeasetermina,vor
fistackframeattpentrufunc_2ctipentrufunc_1nacelaitimp(fig.h).nfinal
pointeruldestivvafilapoziiainiial(fig.ik).

Intrareieirenlimbajdeasamblare
Vom trece n revist modul n care un program n limbaj de asamblare poate
comunica cu exteriorul (activitile de intrareieire). O modalitatea de tratare a
comunicaiei cu dispozitivele de intrareieire este folosirea unor instruciuni
speciale,icuomagistraldeintrareieirespecialrezervatpentruacestscop.O
metod alternativ de interaciune cu dispozitivele de intrareieire este prin
folosirea memoriei asociat I/E, n care dispozitivele ocup seciuni din spaiul de
adresareundenuavemmemorieobinuit.Dispozitivelesuntaccesatecaicumar
filocaiidememorie,aacnuenevoiedetratareadispozitivelordeintrareieire
cuinstruciuninoi.
CaunexempludememorieasociatI/E,sconsidermhartamemorieipentruARC
dinfigurademaijos:

Aici vedem dou regiuni noi de memorie, pentru dou module video i pentru un
dispozitivtouchscreen.Untouchscreenpoatefidedoutipuri:fotonicielectric.O
ilustrareaversiuniifotoniceesteprezentatnfigurademaijos:

98

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

O matrice de raze acoper ecranul att pe vertical ct i pe orizontal. Dac raza


estentrerupt(prinatingerecudegetul)atuncipoziiaestedeterminatderazele
ntrerupte.
Memoriarealocupspaiuldeadresarecuprinsntre222i2231.(2234esteadresa
octetului din stnga a ultimului cuvnt n format bigendian). Restul spaiului de
adresareesteocupatdealtecomponente.Spaiudeadresarecuprinsntre0i2161
conine programele programul inclus de pornire a sistemului i rutinele grafice
elementare. Spaiul de adresare cuprins ntre 216 i 2191 este folosit pentru dou
moduledememorievideo.
Spaiul de adresare cuprins ntre 223 i 2241 este folosit pentru dispozitivele de
intrareieire. Pentru acest sistem, coordonatele X i Y care marcheaz poziia la
care un utilizator a fcut o selecie sunt actualizate automat n registre i sunt
plasatenmemorie.Registrelesuntaccesateprincitireadinmemoriealocaiilorla
care sunt localizate aceste registre. Locaia Screen flash determin ecranul s
plpiedefiecaredatcndsescrieceva.
Spresupunemcvremsscriemunprogramcaredeterminplpireaecranului
defiecaredatcndutilizatorulschimbpoziia.Schemalogicdemaijosilustreaz
modulncaresepoatefaceaceasta:

99

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Acesta este un exemplu de metod programat de accesare a unui dispozitiv de


intrareieire.

StudiudecazASIpentruMainaVirtualJava
JavaesteunlimbajdeprogramaredenivelnaltdezvoltatdeSunMicrosystems.Un
aspectesenialalJavaesteccodulbinarJavaesteindependentdeplatform,ceea
ce nseamn c acelai cod compilat va rula fr modificri pe orice sistem care
suport Maina Virtual Java (MVJ). MVJ este modul n care Java realizeaz
independena de platform: o specificare standard a MVJ este implementat cu
mulimea de instruciuni native ale sistemului pe care ruleaz iar codul compilat
JavapoaterulanoricemediuMVJ.
ProgramelescrisenlimbajecumsuntC,C++suntcompilatedirectncodnativale
arhitecturiiintiacesteanusuntportabilepeplatformediferitefrrecompilarea
codului surs. Limbajele interpretate, cum sunt Perl, Tcl, AppleScript sunt
independente de platform dar se execut mult mai ncet (de 100200 de ori mai
ncet) dect un limbaj compilat. Programele Java sunt compilate ntro form
intermediar numit bytecode, care se execut mult mai ncet dect un program
compilat n limbaj nativ dar, chiar i cu acest inconvenient, faptul c este
independent de platform l plaseaz naintea altor limbaje pentrumulte tipuri de
aplicaii.
nfigurademaijosdmprogramulJavacareadunnumerele15i9ibytecodeul
ncareafostcompilat.BytecodeulestenumitifiierclassJava.

100

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

O modalitatea de mbuntire a vitezei de rulare a programelor Java este


reprezentat de compilatoarele Just in time (JIT). Acestea, n loc s interpreteze
bytecodulinstruciunecuinstruciune,profitdefaptulcmajoritateatimpuluide
execuie a programelor este alocat unor bucle i altor rutine iterative. De fiecare
cndJitterulntlneteoliniedecodpentruprimadat,ocompileazncodnativ
iostocheaznmemoriepentruoutilizareulterioar.Laurmtoareleexecuiiale
aceleiinstruciuninumaitrebuierealizatcompilareadinbytecodncodnativ.

Concluzie
Am prezentat arhitectura setului de instruciuni pentru un sistemul ARC i am
trecut n revist unele proprieti generale ale ASI. n proiectarea unui set de
instruciuni, trebuie pstrat un echilibru ntre performana sistemului i
caracteristiciletehnologieincareesteimplementatprocesorul.Interaciuneantre
procesorimemorieesteunpunctimportant.
Cnd se face un acces la memorie, modul n care este calculat adresa este numit
moduldeadresareamemoriei.
Amtrecutnrevistmaimultecomponentealesistemuluidecalculcarejoacunrol
important n execuia programelor. Am vzut c programele sunt secvene de
instruciunicarefacpartedinsetuldeinstruciunialprocesorului.

101

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

6. Limbajeimain
Introducere
ncontinuareavomtrecenrevistprocesuldeasamblare,linkeditareincrcare
aunuiprogram.Vomprezentalegturadintrelimbajeledeprogramareisistemul
decalcul.
Prima dat vom discuta despre compilare, procesul de traducere a programului
scris ntrun limbaj de programare de nivel nalt ntrun program, echivalent
funcional,scrisnlimbajdeasamblare.Dupaceasta,vomdiscutadespreprocesul
de asamblare adic, traducerea programului din asamblare ntrun program
echivalent funcional n limbaj main. Vom prezenta linkeditarea, procesul de
legare mpreun a modulelor asamblate separat ntrun singur program i
ncrcarea,procesuldemutareaprogramuluinmemorieipregtirealuipentru
execuie. Vom prezenta folosirea macrourilor n limbaj de asamblare, care pot fi
privite ca proceduri n limbaj de asamblare, cu excepia faptului c acestea sunt
plasate inline, n programul n limbaj de asamblare n fiecare loc n care sunt
apelate.

Procesuldecompilare
Procesuldetransformareaunuiprogramdinlimbajdeasamblarenlimbajmain
estefoartesimplupentrucexistocorespondenunulaunantreinstruciunile
din limbaj de asamblare i instruciunile binare din codul main. Limbajele de
programaredenivelnaltreprezintoproblemmultmaicomplex.

Paiicompilrii
Sconsidermoinstruciunesimpldeatribuire:

A=B+4;

Compilatorul trebuie s execute o serie de sarcini destul de complexe pentru a


convertiaceastinstruciunenunasaumaimulteinstruciuninasamblare:
Reducereatextuluiprogramuluilasimbolurileelementarealelimbajului,de
exemplunidentificatoricumsuntAiB,notaiicumarfivaloareconstant4i
delimitatori de program cum ar fi + i =. Aceast parte a compilrii se numete
analizlexical.
Parsingul (Analizarea/Separarea intrrii n componente mai uor de
procesat) simbolurilor pentru a recunoate structura programului. n
instruciuneademaisus,parserultrebuiesrecunoascinstruciuneacafiindo
instruciune de atribuire de forma: Identificator = Expresie, unde Expresie
poatefiseparatmaidepartenforma:Identificator+Constant.Aceastfaz
desepararesemainumeteanalizsintactic.
102

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Analizanumelor:asociereanumelorAiBcuanumitevariabiledinprogram
iasocierealormaideparteculocaiidememorieparticulareundesevorlocaliza
variabilelelaexecuie.
Analiza tipurilor: determinarea tipurilor tuturor unitilor de date. n
exempluldemaisus,variabileleAiBiconstanta4vorfirecunoscutecafiind
detipintnunelelimbaje.Analizanumeloriatipurilorsemainumeteanaliz
semantic:determinareanelesuluicomponentelorprogram.
Maparea de aciune i generarea de cod: asocierea instruciunilor
programului cu secvenele corespunztoare din limbaj de asamblare. n
instruciuneademaisussecvenelenlimbajdeasamblarepotfi:
!Instructiuneadeatribuire
ld[B],%r0,%r1!variabilaBesteincarcatainregistru
add%r1,4,%r2!calculeazavaloareexpresiei
st%r2,%r0,[A]!efectueazaatribuirea

Existpaisuplimentaripecarecompilatorultrebuiesiefectueze:alocarea
de variabile registrelor, urmrirea utilizrii registrelor i optimizarea
programului.

Specificaiileasocierilorcompilatorului
Atunci cnd se creeaz un compilator, trebuie incluse n el informaii despre
arhitecturasetuluideinstruciunipentrucareestecreat.(ASIulpecareseexecut
compilatorul nu trebuie s fie identic cu ASIul pentru care genereaz cod, proces
numitcrosscompilare).Aceastincluderesemainumetespecificaredeasociere
pentrucompilator.Deexemplu,celcarescriecompilatorultrebuiesdecidcums
asociezevariabileleiconstanteledetipuridiferitenresurselesistemuluidecalcul.
Aceasta ar putea fi o funcie att a sistemului ct de calcul ct i a limbajului de
programaredenivelnalt.nlimbajulC,ntregii(int)potfide16sau32debiipe
cndnJavantotdeaunatipulintare32debii.
Cel care scrie compilatorul trebuie s in cont de particularitile i limitrile
sistemului de calcul atunci cnd asociaz construciile din limbajul de programare
denivelnaltlainstruciunisausecvenedeinstruciuninlimbajdeasamblare.De
exemplu, setul de instruciuni ARC necesit ca toi operanzii aritmetici s fie
constante imediate sau variabile registru. De aceea, compilatorul trebuie s
generezecodpentruncrcareatuturorvariabilelornregistrenaintedeaseputea
oriceinstruciunearitmetic.Acestaestemotivulpentruinstruciunea:

ld[B],%r1

dinexempluldemaisus.
Noivomprezentaasociereaconstruciilordinlimbajeledenivelnaltnechivalentul
lor n limbaj de asamblare, ignornd detaliile ce in de analiza sintactic i
semantic.
103

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Modulncarecompilatorulasociazceletreiclasedeinstruciunincod
nasamblare
Vomprezentandetaliuasociereacelortreiclasedeinstruciunimicareadatelor,
aritmeticeicontrolulfluxuluidinlimbajeledeprogramaredenivelnaltnlimbaj
deasamblare.ndiscuiaiexempleleceurmeazvomfolosilimbajulC.Cutoatec
limbajul este un limbaj de programare de nivel nalt, sintaxa i semantica lui este
destuldeaproapedeconcepteledinlimbajdeasamblare.
n exemplele de pn acum sa presupus c variabilele pot fi accesate direct prin
numele lor, nume ce este asociat unei locaii de memorie ce este cunoscut la
asamblare.nexemplulprecedent,A=B+4,sepresupunecvariabileleAiBau
adrese ce sunt cunoscute atunci cnd instruciunea este compilat. n C doar
variabilele globale statice, au adrese ce sunt cunoscute la compilare. Variabilele
declaratenfunciisaunblocuricenusuntdeclarateexplicitstaticsauglobal,sunt
create la intrarea n funcie sau n bloc i dispar atunci cnd funcia sau blocul se
termin. Aceste variabile se numesc locale, sau automatice n C. n majoritatea
programelorvariabilelelocalesuntmultmaidesfolositedectvariabileleglobale.
Avnd n vedere acest caracter efemer al variabilelor locale, o modalitate natural
dealeimplementaesteostivdetipultimulintratprimulieit.Variabilelestocate
n stiv se creeaz la apelul funciei i dispar cnd funcia se termin. Dac n
capitolulprecedentamfolositpointeruldestiv%sppentruaaccesastackframeul,
aici vom folosi un al registru %fp (frame pointer) pentru a accesa stiva pe durata
execuiei funciei. Motivul este c variabilele temporare pot fi puse i scoase din
stivnpermanenpedurataexecuieifunciei,ceeaceducelamodificareaoffset
uluidintre%spielementeledinstiv.Folosirealui%fpvapermitecompilatorului
sfoloseascunoffsetconstantntre%fpivaloareastocatpestiv,carermne
fixatpeduratadeviaaframeuluistivei.Adresareacubaz(basedaddresing)este
folosit pentru a accesa variabilele de pe stiv. De exemplu, o variabil ARC
localizatla12octeisub%fppoatefincrcatn%r1prininstruciunea

ld%fp,12,%r1

sau,sfoloseasconotaieobinuit:

ld[%fp12],%r1

Folosireaadresriicubazpermitecaaritmeticaadresei(adunconinutullui%fo
la 12) s fieefectuat ntro singurinstruciune. Adresarea cu baz este att de
obinuit nct toate seturile de instruciuni conin acest mod de adresare. Unele
mulimi de instruciuni conin moduri de adresare mai complicate pentru a putea
accesastructuridedatecomplexecesuntstocatepestiv.

104

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Variabilelecesuntstocatepestivauadresedememoriecesuntcunoscutedeabia
laexecuie.Adreselelordelamomentulcompilriisuntcunoscutecaoffseturidela
%fp. De abia la intrarea n funcie se tie care este adresa de memorie exact a
valorii.Astfel,cutoatecadreselevariabilelordepestivcumeste[%fp12]sunt
multmaiobinuitedectadreseledevariabileglobalecumesteA,vompresupunen
continuare c sunt folosite variabilele globale pentru c este mai uor de neles
relaiadintrenumelevariabilelordinlimbajeledenivelnaltiadresaacumeste
specificatnlimbajdeasamblare.
n continuarea vom prezenta cele trei clase de instruciuni: micarea datelor,
aritmeticeicontrolulexecuieiprogramelor.

Micareadatelor
Pelngvariabilelescalaresimple,majoritatealimbajelordeprogramarefurnizeaz
diferitetipuridestructuridedatemaicomplexe,inclusivstructurilefixe(structn
C)itablourile.
Unexempludestructurestereprezentareaunuipunctdinspaiultridimensional,
carearetreicoordonatentregix,y,z.Oastfeldestructursepoatedeclaraastfel:

structpoint
{

intx:

inty;

intz;
};

Oinstanaacesteistructurisedefineteastfel:

structpointpt;

Definindpunctulpt,programatorulpoaterefericomponenteleindividualealeluipt
prinnotaiapt.x,caresereferlacomponentaxastructurii.Compilatorulvapunen
memorieaceaststructurcatreilocaiidememorieconsecutive.
Adresa de memorie a structurii este cea mai mic valoare sau adresa de baz a
structurii, aa c componenta x va fi localizat la adresa pt, componenta y va fi
localizatlaadresapt+4iarcomponentazlaadresapt+8.Aadar,componentaya
structuriiptsencarcnregistrul%r1prininstruciunea:

ld[pt+4],%r1 !%r1<y

Tablourile sunt structuri de date ce pot fi declarate n majoritatea limbajelor de


programare. Tablourile sunt colecii de componente identice ce pot fi referite fie
individual,fiecolectiv.nC,untabloude10ntregisedeclarastfel:

intA[10];

105

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Aceastdefiniievaproduceocoleciede10ntregiindexaidela0la9.
Componenteleuneistructuritrebuienumiteexplicitcndsescrieprogramul,deex.
pt.z.Referinecumarfipt.i,undeiesteovariabilacreinumenuestedeterminat
pnlaexecuienusuntpermise.Latablouri,indexulpoateficalculatlaexecuie.De
exemplu,programatorulpoatespecificaunelementaltablouluiprinA[i],undeieste
ovariabilacreivaloare estecalculat la execuiei care poateluaoricevaloare
cuprins ntre 0 i 9. Dac n C indexul primului element al tabloului este
ntotdeauna 0, n alte limbaje de programare exist o flexibilitate mai mare. De
exemplu,nPascalsepoatedeclarauntablouastfel:

A:array[10..10]ofinteger

ncazulacestacalcululindecilorlaexecuieestemaicomplicat.Expresiageneral
pentrucalcululadresamainaunuielementaltablouluiestedatde:

AdresElement=BAZA+(INDEXSTART)*DIMENSIUNE

undeBAZAesteadresadenceputatabloului,INDEXesteindexulelementuluidorit,
START este primul index pentru tablou iar SIZE este dimensiunea unui element
individualnoctei.Astfel,elementul5dintablouldeclaratnPascaldemaisusare
adresaA+(5(10))*4=A+60.nlimbajuldeasamblareARC,dacpresupunemc
BASE este n %r2, INDEX este n %r3, START este n %r4 i presupunnd c SIZE
este4,codulpentruncrcareauneivaloriatablouluinmemorieeste:

ld%r3,%r4,
sll%r6,2,

ld[A+%r6],%r1

!%r6<INDEXSTART
!%r6<%r6*4
!%r1<valoareadintablou

(sllesteoperaiashiftleftlogicaldeplasarelastngalogic).Pentruaaccesaun
elementaltablouluiestenevoiedetreiinstruciuni,iardacSIZEnuesteputerea
lui 2 atunci e nevoie chiar de mai multe. n C, START fiind 0, se economisete o
instruciune main pentru accesarea unui element al tabloului. Aceasta duce la o
eficien mai mare a programelor care efectueaz accesri intense la elementele
unuitablou(programetiinificeideinginerie).

Instruciuniaritmetice
La instruciunile aritmetice pot s apar unele complicaii n mainile
ncrcare/stocare cum este maina ARC i mainile comerciale RISC. Indiferent de
numrul de registre cu care este dotat o main, exist posibilitatea ca un
compilator s ntlneasc o instruciune aritmetic ce necesit mai multe registre
dect sunt disponibile. n acest caz, compilatorul trebuie s stocheze variabilele
temporar pe stiv. Compilatoarele folosesc tehnici sofisticate pentru a decide care
registresuntdisponibile,folosindotehnicdinteoriagrafurilornumitcolorarea
106

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

registrelor,ipentruadecidecndnumaiestenevoiedeoanumitvaloaredintr
unregistru.

Controlulexecuieiprogramului
Majoritatea arhitecturilor de seturi de instruciuni folosesc ramificri condiionate
i indicatorii aritmetici ai procesorului pentru a implementa structurilor pentru
controlul execuiei programului. n continuare vom prezenta cele mai importante
instruciunipentrucontrolulexecuiei.
Cea mai trivial instruciune este instruciunea goto, goto Etichet, care este
implementatprininstruciuneaderamificarenecondiionatba(branchalways).

InstruciuneaifelsearenlimbajulCsintaxa:

if(expr)instr1.elseinstr2.

Compilatorul va evalua expresia logic expr, i va executa una din cele dou
instruciuni n funcie de valoarea de adevr a expresiei. Dac presupunem c
expresia este %r1 == %r2 i introducem instruciunea bne (branch if not equal)
atuncicodulpentruimplementareainstruciuniiifelseeste:

subcc%r1,%r2,%r0
bneOver
!codulinstruciunii1
baEnd
Over:!codulinstruciunii2
End:

Instruciuneawhile,arenlimbajulCsintaxa:

while(expr)instr;

Se evalueaz expresia i dac are valoarea true atunci se execut instruciunea,


dup care se reevalueaz condiia. Instruciunea se execut ct timp instruciunea
arevaloareatrue.
Cea mai eficient reprezentare a acestei instruciuni n limbaj de asamblare are
codulpentruevaluareaexpresieidupcodulinstruciunii.
Instruciunea:

while(%r1==%r2)%r3=%r3+1;

sepoateimplementaeficientnasamblareastfel:

baTest
True:add%r3,1,%r3

107

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
Test:subcc%r1,%r2,%r0

BeTrue;

Instruciuneadowhileare,nlimbajulC,sintaxa:

doinstruciunewhile(expresie)

se implementeaz n asamblare la fel ca i instruciunea precedent cu excepia


faptuluicprimainstruciunebaTestesteeliminat.

Instruciuneaforare,nlimbajulC,sintaxa:

for(expr1;expr2;expr3)instruciune;

Definiia limbajului C precizeaz c aceast instruciune este echivalent cu


secvena:

expr1;
while(expr2){

instruciune;

expr3;
}

Instruciuneaforseimplementeaznasamblarelafelcaiinstruciuneawhilecuo
singurmodificare:seadaugcodulpentruexpr1iexpr3.

Procesuldeasamblare
Procesuldetraducereaprogramuluidinlimbajdeasamblarenlimbajmaineste
numit proces de asamblare. Procesul de asamblare este unul direct i simplu, din
moment ce exist o coresponden unulaunu ntre instruciunile n asamblare i
instruciunile main. Spre deosebire, la compilare o instruciune din limbajul de
programare de nivel nalt poate fi tradus n limbaj de asamblare n mai multe
moduriechivalentedinpunctdevederecomputaional.
Chiar dac asamblarea se face direct, totui este grea i supus erorilor dac este
fcutdeopersoan.Defapt,asamblorulafostprimulsoftwarecreatdupinvenia
calculatoruluielectronicdigital.
Asambloareleaucelpuinurmtoarelefuncii:
Permit programatorului s specifice locaiile de la execuie ale datelor i
programelor. (de cele mai multe ori programatorul nu specific o locaie de
pornireabsolutpentruunprogram,deoareceprogramulvafimutat,relocatde
ctrelinkeditorsaudencrctoraacumvomvedeamaitrziu).
Furnizeaz mnemonici n limbaj de asamblare pentru toate instruciunile
main i modurile de adresare i traduc instruciunile valide din asamblare n
echivalentullorbinardinlimbajmain.
108

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Oferprogramatoruluiposibilitateadeainiializadateledinmemorienainte
deexecuiaprogramului.
Permit utilizarea de etichete simbolice pentru reprezentarea adreselor i a
constantelor.
Furnizeaz programatorului posibilitatea de a specifica adresa de pornire a
programului, dac exist una. (dac modulul asamblat este o procedur sau
funcieatuncinuarfioadresdepornire).
Furnizeazunanumitgraddearitmeticlamomentulasamblrii.
Includ mecanisme ce permit variabilelor s fie definite ntrun program n
limbajdeasamblareisfiefolositentrunaltprogramasamblatseparat.
Furnizeazsuportpentruexpansiunearutinelormacro,adic,rutinecarepot
fidefiniteosingurdatiinstaniatemaiapoidecteorienevoie.

Vom ilustra modul n care evolueaz procesul de asamblare prin asamblarea


manualaunuiprogramsimplupentruARC.Programulesteceldemaijos:

nprocesuldeasamblareaacestuiprogramvomfolosiformatelepentruinstruciuni
dinfigurademaijos:

109

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Figura prezint codificarea instruciunilor pentru maina ARC, adic specific


limbajulbinarintaunuicalculatorARCpecareasamblorultrebuieslgenereze
dintextulnlimbajdeasamblare.

Asamblareiasambloarendoipai
Majoritateaasambloarelortrecpesteprogramulnlimbajdeasamblarededouori
i de aceea se numesc asambloare n doi pai. La primul pas se determin adresa
tuturorelementelordedateiinstruciunilormainiseselecteazinstruciunile
maincesevorproducepentrufiecareinstruciunenasamblare(laacestpasnu
segenereazcodulmain).
Adresele datelor i instruciunilor sunt determinate prin folosirea unui analog la
nivel de asamblare pentru contorul program, numit contor de locaie. Contorul de
locaieineevidenainstruciuniicurentesauadatelorpemsurceseefectueaz
compilarea. De regul este iniializat la zero la nceputul primului pas i este
incrementat cu dimensiunea fiecrei instruciuni. Pseudooperaia .org determin
contorul de locaie s fie setat la o valoare specificat de instruciunea .org. Dac
asamblorulntlneteinstruciunea

.org1000

va seta contorul de locaie la 1000, iar instruciunea urmtoare sau datele vor fi
asamblate la acea adres. n timpul primului pas, asamblorul efectueaz orice
aritmetic de la momentul asamblrii i insereaz definiiile tuturor etichetelor i
valorilorconstantentrotabel,numittabeladesimboluri.
Motivulprincipalpentruexistenaceluidealdoileapasestedeapermiteutilizarea
n program a simbolurilor, nainte de a fi definite, ceea ce se numete refereniere
nainte(engl.forwardreferencing).Dupacestprimpas,asamblorulaidentificatia
introdusntabeladesimboluritoatesimbolurile,intimpulceluidealdoileapas
se va genera codul main, prin inserarea valorilor simbolurilor valori care sunt
cunoscutealacestaldoileapas.
Acum vom asambla manual programul de mai sus. Cnd asamblorul ntlnete
primainstruciune:

ld[x],%r1

folosete un proces pattern matching pentru a recunoate c e vorba de


instruciunea load. Mai departe se va identifica faptul c ncrcarea se face la o
adresspecificatdeovaloareconstant(aicix)ntrunregistru(aici%r1).Aceasta
corespunde celui deal doilea format de instruciuni de memorie, astfel c gsim
cmpulopalacesteiinstruciuni(11).Destinaiaacesteiinstruciunildestecmpul
rd, care este 00001 pentru %r1 n acest caz. Cmpul op3 este 000000 pentru ld.
110

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Cmpul rs1 identific registrul, %r0 n acest caz, care este adunat cu cmpul
simm13pentruaformaadresaoperanduluisurs.Urmeazbituli.Bituliestefolosit
pentruafacedistinciantreprimulformatdeinstruciunedememorie(i=0)icel
dealdoilea(i=1).Deaceeabituliestesetatlavaloarea1.Cmpulsimm13specific
adresaeticheteix,careaparelacincicuvintedupprimainstruciune.Dinmoment
ce prima instruciune apare la adresa 2048 i din moment ce fiecare cuvnt este
format din patru octei, adresa lui x este la 5 x 4 = 20 de octei dup nceputul
programului.Adresaluixvafi2048+20=2068,caresereprezintprinsecvenade
13bii:010000010100.Aceastsecvenintrncmpulde13biisimm13.
Prinurmareprimalinieaprogramuluivafiasamblatastfel:

11
op

00001 00000000000 1
rd
op3

rs1

0100000010100
i
simm13

Urmtoarea instruciune are o form asemntoare, iar secvena de bii


corespunztoareeste:

11
op

00010 00000000000 1
rd
op3

rs1

0100000011000
i
simm13

Procesuldeasamblarecontinupncndtoatecele8liniisuntasamblate:

ld [x], %r1

1100 0010 0000 0000 0010 1000 0001 0100

ld [y], %r2

1100 0100 0000 0000 0010 1000 0001 1000

addcc %r1,%r2,%r3

1000 0110 1000 0000 0100 0000 0000 0010

st %r3, [z]

1100 0110 0010 0000 0010 1000 0001 1100

jmpl %r15+4, %r0

1000 0001 1100 0011 1110 0000 0000 0100

15

0000 0000 0000 0000 0000 0000 0000 1111

0000 0000 0000 0000 0000 0000 0000 1001

0000 0000 0000 0000 0000 0000 0000 0000

Asamblorulciteteinstruciunileunacteunaigenereazcodmainpentruele.O
problem care poate s apar, aa cum sa menionat, este referenierea nainte a
unorsimboluri.nsecvenademaijos:

111

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

la ntlnirea instruciunii call, asamblorul nu tie care este locaia lui sub_r din
momentceetichetasub_rncnuafostntlnitdeasamblor.Aac,referinaeste
includ n tabela de simboluri i este marcat ca fiind nerezolvat. Referina va fi
rezolvatdoarmaitrziucndestentlnitnprogram.

Asamblareitabeladesimboluri
Tabeladesimboluriestecreatlaparcurgereapentruprimadataprogramului(la
unasamblorndoipai).Unsimbolesteorioetichet,oriunnumesimboliccarese
referlaovaloarefolositntimpulprocesuluideasamblare.
Pentru a vedea cum opereaz un asamblor n doi pai, s considerm asamblarea
coduluidemaijos:

Crearea tabelei de
simboluri

Asamblorulntlneteinstruciunea.org2048.Aceastavadeterminacaasamblorul
s seteze contorul de locaie la valoarea 2048 i asamblarea continu de la acea
adres.Primainstruciuneeste:

a_start.equ3000

n tabela de simboluri se creeaz o poziie pentru simbolul a_start, care primete


valoarea3000.(.equnugenerazcodaacnuprimeteoadreslaasamblare).
Primainstruciunemain,

112

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

ld[length],%r1

esteasamblatlaadresaspecificatdecontoruldelocaie,2048.Contoruldelocaie
esteincrementatcudimensiuneauneiinstruciuni,adic4octei,la2052.Cndeste
ntlnit simbolul length, asamblorul nc nu a vzut definiia lui. n tabela de
simboluri se creeaz o poziie pentru length, care este primete iniial valoarea
nedefinitaacumsevedenfigurademaisus(a).
Asamblorulntlneteinstruciunea:

ld[address],%r2

careesteasamblatlaadresa2052iseintroducentabeladesimbolurisimbolul
address a crui valoare se seteaz din nou la nedefinit. Contorul de locaii este
mritcu4la2056.Instruciuneaandccesteasamblatlaadresa2056,iarcontorul
de locaie este mrit cu 4 octei, la 2060. Urmtorul simbol care este ntlnit este
loop, care este introdus n tabela de simboluri cu valoarea 2060 valoarea
contoruluidelocaie.Urmtorulsimbolntlnitestedone,simbolceesteintrodusn
tabeladesimbolurifrovaloaredinmomentcenuestencdefinit.
Primulpasalasamblriicontinuisimbolurilenerezolvate:length,address,idone
primesc valorile 2092, 2096 respectiv 2088. Eticheta a este introdus n tabela de
simboluri cu valoarea 3000. Eticheta done apare la locaia 2088 deoarece sunt 10
instruciuni (40 de octei) ntre nceputul programului i done. Adresele pentru
restul etichetelor sunt calculate ntrun mod similar. Dac mai rmn etichete
nedefinitelasfritulprimuluipas,atuncinseamncexistoeroarenprogrami
asamblorul va semnala care este simbolul nedefinit i va opri procesul de
asamblare.
Dupcreareatabeleidesimbolurincepealdoileapasalasamblrii.Programuleste
parcurs nc o dat de la instruciunea .begin, dar de data asta se genereaz cod
obiect.Primainstruciunentlnitcedetermingenerareadecodesteldlalocaia
2048.Dintabeladesimbolurisevedecporiuneadeadreseainstruciuniildeste
2092 pentru adresa lui length aa c se genereaz cod de dimensiune egal cu un
cuvntfolosindformatulMemoryaacumsevedenfigurademaijos.

113

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Aldoileapascontinulafelpncndsetranslateaztotcodul.

Sarcinilefinalealeasamblorului
Dupterminareaasamblriiseadauglamodululasamblatinformaiesuplimentar
cevafifolositdelinkeditoriasamblor.
Numele modulului i dimensiunea. Dac modelul de execuie implic
segmente de memorie pentru cod, date i stiv atunci trebuie precizate
dimensiunileiidentitilediferitelorsegmente.
Adresa simbolului de start, dac este definit n modul. Majoritatea
asambloarelorilimbajelordenivelnaltfurnizeazoetichetrezervatspecial
cepermitprogramatoruluisspecificeloculncareprogramultrebuiesnceap
execuia. De exemplu, n C este funcia main(). Eticheta main este un semnal
pentruasamblorcexecuiatrebuiesnceapnacelloc.
Informaie despre simbolurile globale i externe. Linkeditorul va trebui s
tie adresa simbolurilor globale definite n modul i exportate de modul, i va
trebui s tie ce simboluri rmn nedefinite n modul deoarece acestea sunt
definitecaglobalenaltemodule.
Informaie despre rutinele de bibliotec care sunt refereniate de modul.
Unele biblioteci conin funcionalitate ce apare de multe ori cum ar fi funcie
matematicesaualtefunciispecializate.
Valorileconstantelorcetrebuiencrcatenmemorie.Unelencrctoarecer
cainiializareadatelorsfiespecificatseparatdecodulbinar.

114

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Informaiederelocare.Cndlinkeditorulesteinvocatmajoritateamodulelor
ce trebuie linkeditate vor trebui relocate n momentul cnd modulele sunt
concatenate.

Localizareaprogramelornmemorie
Pn acum am presupus c programele sunt localizate n memorie la o adres ce
este specificat de pseudooperaia .org. Aceasta sar putea s fie n regul pentru
programare de sisteme, atunci cnd programatorul are un motiv bine ntemeiat
pentru ca programul s se afle la acea locaie de memorie dar, de regul,
programatorulnuesteinteresatdelocalizareaprogramuluinmemorie.Atuncicnd
programareasamblatesaucompilateseparatsuntlegate,estedificilsaupoatechiar
imposibil pentru un programator s tie cu exactitate unde va fi localizat fiecare
modul dup linkeditare. Din acest motiv majoritatea adreselor sunt specificate ca
fiindrelocabilenmemorie,cuexcepiaunoradreseparticularecumarfiadresele
de intrareieire, care sunt fixate la locaii de memorie absolute. Asamblorul este
responsabilpentrumarcaresimbolurilorcafiindrelocabile.Dacunanumitsimbol
este relocabil sau nu depinde att de limbajul de asamblare ct i de conveniile
sistemului de operare. Informaia de relocare este inclus n modulul asamblat
pentruafifolositdelinkeditorsaudencrctor.

Linkeditareincrcare
Majoritatea aplicaiilor vor fi formate dintro serie de module compilate sau
asamblateseparat.Acestemodulepotfigeneratedediferitelimbajedeprogramare
saupotfiprezententrunmodulfurnizatcaparteamediuluipentrudezvoltareade
aplicaiisauasistemuluideoperare.Fiecaremodultrebuiesfurnizezeinformaia
pe care am prezentato mai sus, pentru ca s poat fi legate mpreun pentru
ncrcareiexecuie.
Un linkeditor, este un program care combin programele asamblate separat
(numite module obiect) ntrun singur program, numit modul ncrcabil. Link
editorul rezolv referinele globale externe i relocheaz adresele de memorie n
modulele separate. Modulul ncrcabil poate fi ncrcat n memorie de ctre
ncrctor,carelarndulsupoatemodificaadreseledacprogramulestencrcat
laolocaiediferitdelocaiadencrcarefolositdelinkeditor.
TehnicaDLL(DynamicLinkLibrary)dinWindows,prezentsubdiferiteformein
alte sisteme de operare, amn linkeditarea unor componente pn cnd este
nevoiedeelelaexecuie.

Linkeditare
n procesul de combinare a modulelor asamblate sau compilate separat ntrun
modulncrcabil,linkeditorultrebuies:
115

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Rezolvereferinelelaadresecaresuntexternemodulelorpemsurcesunt
linkeditate.
Relocheze fiecare modul prin combinarea lor caplacap. n timpul acestui
proces de relocare multe adrese din modul trebuie s fie schimbate pentru a
reflectanoualorlocaie.
Specificesimboluldepornirealmodululuincrcabil.
Dacmodululdememorieincludemaimultdeunsegmentdememorie,link
editorultrebuiesspecificeidentitileiconinutuldiferitelorsegmente.

Rezolvareareferinelorexterne
Pentru rezolvarea referinelor externe linkeditorul trebuie s fac distincie ntre
numele simbolurilor locale (folosite n cadrul unui singur modul surs) i numele
simbolurilorglobale(folositenmaimultdeunmodul).Aceastaserealizeazprin
folosirea pseudooperaiilor .global i .extern n timpul asamblrii. Pseudooperaia
.global indic asamblorului s marcheze simbolul ca fiind disponibil altor module
obiectntimpulfazeidelinkeditare.Pseudooperaia.externidentificoetichetce
este folosit ntrun modul dar este definit ntraltul. Astfel, .global este folosit n
modululncaresimbolulestedefiniti.externestefolositnfiecaremodulcarese
referlasimbol.Doareticheteledeadresepotfiglobalesauexterne:nuaraveasens
s marcm un simbol .equ ca fiind global sau extern, din moment ce .equ este o
pseudooperaie care este folosit doar n timpul procesului de asamblare, iar
procesuldeasamblareestencheiatnmomentulncarencepelinkeditarea.
Toate etichetele referite dintrun program referite din alte programe, vor avea o
liniedeforma:

.globalsimbol1,simbol2,

Toate celelalte etichete sunt locale, ceea ce nseamn c aceeai etichet poate fi
folositnmaimultdeunmodulsursfrconfuziedinmomentceetichetelelocale
nusuntfolositedupceprocesuldeasamblaresetermin.Unmodulcesereferla
simboluri definite ntrun alt modul trebuie s declare acele simboluri folosind
forma:

.externsimbol1,simbol2,

Unexempludeutilizaree.globali.externestedatnfigurademaijos:

116

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Fiecaremodulesteasamblatseparatnmoduleobiect,fiecarecupropriatabelde
simboluri,aacumsevedenfigurademaijos:

Tabelele de simboluri au un cmp suplimentar care indic dac un simbol este


externsauglobal.Programul mainncepelalocaia2048,ifiecareinstruciuneare
patruoctei,aac x i ysuntlalocaia2046 i2068..Simbolul subestemarcatca
fiind extern ca rezultat al pseudooperaiei .extern. Ca parte a procesului de
asamblareasamblorulincludeinformaiiantetnmoduldespresimbolurilecesunt
globaleiexterneaacacesteapotfirezolvatenfazadelinkeditare.

Relocare
nceledouprogramedemaisus,att maincti subauaceeaiadresdepornire
2048.Esteevidentcelenupotocupaaceeaiadresdememorie.Dacceledou
module sunt asamblate separat, asamblorul nu are cum s detecteze aceast
problem. Pentru a rezolva problema, asamblorul marcheaz ca relocabile
simbolurileacroradressepoateschimbantimpulprocesuluidelinkeditare,aa
cumsevedentabeleledemaisus.Ideeaestecunprogramasamblatlaadresade
start2048poatefincrcatlaadresa3000,attatimpcttoatereferinelelaadrese
relocabile din program sunt mrite 20002048 = 952. Relocarea se face de ctre
linkeditoraacadreselerelocabilesuntmodificatecuaceeaivaloarecucaresa
modificat originea de ncrcare. Adresele absolute sau nonrelocabile (cum ar fi
adresaceamaimareposibilpentrustiv2314)rmnlafelindiferentdeoriginea
lacaresencrcprogramul.
Asamblorulesteresponsabilpentrudeterminareaetichetelorrelocabileatuncicnd
construietetabeladesimboluri.Nuaresenscaoetichetexternsfierelocabil,
117

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

dinmomentceetichetaestedefinitntrunaltmodul,aacnsubnuareniciun
simbolrelocabilntabeladesimboluripentruprogramul main,darsubestemarcat
ca relocabil n biblioteca de subrutine. Asamblorul trebuie s identifice cod n
modululobiectcetrebuiesfiemodificatcarezultatalrelocrii.Numereleabsolute,
cumarficonstantele(marcatecu.equ,sauceleceaparnlocaiidememorie,cumar
ficoninutullui xi y,careeste105i92)nusuntrelocabile.Locaiiledememorie
poziionaterelativlaoinstruciune.org,cumarfi xi y(nuconinutullui xi y!)de
obiceisuntrelocabile.Referinelelalocaiifixe,cumarfirutinelegraficerezidente
permanentcaresuntnglobatenhardwaredinfabricaie,nusuntrelocabile.Toat
informaiadecareestenevoiepentruarelocaunmodulestestocatntrundicionar
derelocareconinutnfiierulasamblati,astfelestedisponibillinkeditorului.

ncrcare
ncrctorul este un program care plaseaz modulul n memoria principal.
Conceptual, sarcina ncrctorului nu este dificil. Trebuie s ncarce diferitele
segmentedememoriecuvalorilepotriviteisiniializezeanumiteregistre,cumar
fi%sp(stackpointer)i%pc(programcounter),lavaloriiniiale.
Dac exist un singur modul de ncrcare ce se execut la un moment dat, atunci
acestmodelfuncioneazbine.Totui,nsistemeledeoperaremodernemaimulte
programe sunt rezidente n memorie la un moment dat i asamblorul sau link
editorulnupoatetilaceadresesevorgsiacesteprograme.ncrctorultrebuie
srelochezeacestemodulelancrcareprinadugareaunuioffsetcoduluirelocabil
din modul. Acest tip de ncrctor (loader) se numete ncrctor cu relocare.
ncrctorul cu relocare nu repet doar sarcina linkeditorului. Linkeditorul
combin mai multe module obiect ntrun singur modul de ncrcare, pe cnd
loaderul doar modific adresele relocabile dintrun singur modul de ncrcare
astfel ca mai multe programe s poat rezida n memorie simultan. Un loader cu
legare (linking loader) efectueaz att procesul de linkeditare ct i procesul de
ncrcare: rezolv referinele externe, relocheaz modulele obiect i le ncarc n
memorie.
Fiierulexecutabillegatconineinformaiinantetcedescriuundetrebuiencrcat,
adresa de start i eventual informaiile de relocare, i punctele de intrare pentru
rutinelecaretrebuiesfiedisponibileextern.

DLL(DynamicLinkLibrarie)
Conceptul de bibliotec cu legare dinamic are numeroase trsturi atractive.
Rutinele folosite n mod obinuit, cum ar fi cele pentru gestiunea memoriei sau
pachetelegraficetrebuiesexistentrunsingurloc,bibliotecaDLL.Aceastaducela
programe de dimensiuni mai mici ntruct programele nu trebuie s aib propria
copie a codului din DLL. Toate programele partajeaz acelai cod, chiar i atunci
cndruleazsimultan.

118

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

DLLurile pot fi actualizate prin bugfixuri sau prin adugri de funcii


suplimentare, i programele ce le folosesc nu trebuie recompilate sau relegate.
Aceste trsturi pot fi n acelai timp i dezavantaje, deoarece comportamentul
programelor se poate modifica ntrun mod neprevzut (ca de exemplu epuizarea
memorieidincauzafaptuluicDLLulestepreamare).BibliotecaDLLtrebuiesfie
prezentntotdeaunaitrebuiesconinversiuneapecareocerefiecareprogram.
Muli utilizatori Windows au vzut mesajul A file missing from the dynamic
library.Pentruacomplicaimaimultlucrurile,nimplementareaWindowsexist
maimultelocurinsistemuldefiiereundesuntlocalizateDLLurile.

Unexempludeprogramare
Sconsidermproblemaadunriiadounumerepe64debiifolosindlimbajulde
asamblare ARC. Putem stoca numerele pe 64 de bii n dou cuvinte de memorie
distincte i s adunm separat cele dou perechi de cuvinte. Dac se genereaz
transportlaadunareacelordoucuvintemaipuinsemnificative,atuncitransportul
esteadunatlacuvntulmaisemnificativalrezultatului.
nfigurademaijosavemoposibilsoluielaaceastproblem.
Operanziipe64debiiAi Bsuntstocainmemorienformatulbigendian,ncare
cei mai semnificativi 32 de bii sunt stocai la adresa de memorie mai mic.
ProgramulncepeprinncrcareacuvintelorluiAn%r1(cuvntulmaisemnificativ)
in %r2(cuvntulmaipuinsemnificativ).Celedoucuvintealelui Bsencarcn
%r3i %r4.Subrutina add_64esteapelat,careadun Acu Biplaseazcuvntulmai
semnificativ al rezultatului n registrul %r5 iar cuvntul mai puin semnificativ n
%r6.Rezultatulde64debiisestocheaznCiprogramulsetermin.
Subrutina add_64 ncepe prin a aduna cele dou cuvinte mai puin semnificative.
Dacnusegenereaztransport,atuncicuvintelemaisemnificativesuntadunatei
rutina se termin. Dac se genereaz transport atunci acesta trebuie adunat la
cuvntul mai semnificativ al rezultatului. Dac nu se genereaz transport la
adunareacuvintelormaisemnificative,atuncitransportuldelacuvntulmaipuin
semnificativ al rezultatului este doar adunat la cuvntul mai semnificativ al
rezultatului i rutina se termin. Dac, se genereaz transport la adunarea
cuvintelor mai semnificative, atunci cnd transportul de la cuvntul mai puin
semnificativ este adunat la cuvntul mai semnificativ, starea final a codurilor de
condiievorartacnuavemtransportcareiesedincuvntulmaisemnificativ,ceea
ce este greit. Codul de condiie pentru transport este refcut prin plasarea unui
numrmaren%r7iadunareacuelnsui.

119

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Macrouri
Dac se folosete o convenie de apel bazat de stiv, atunci un anumit numr de
registrevorfiintroduseiscoasedepestivnmodfrecventntimpulapelurilori
ntoarcerilor din subrutine. Pentru a pune pe stiv registrul %r15 al ARC, trebuie
primadatsdecrementmpointeruldestiv(careesten%r14)iardupaceeas
copiem %r15 n locaia de memoria indicat de %r14, aa cum prezentm n
secvenademaijos:

addcc%r14,4,%r14 !decrementareapointeruluidestiv

st%r15,%r14

!sepune%r15pestiv

Onotaiemaicompactpentrurealizareaaceluiaiefecteste:

120

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
push%r15

Forma compact atribuie o nou etichet (push) secvenei de instruciuni care


realizeaz comanda. Eticheta push este considerat un macro, iar procesul de
traducere a macroului n echivalentul n limbaj de asamblare se numete macro
expansiune.
Unmacropoateficreatprinfolosireauneimacrodefiniii,aacumsevedenfigura
de mai jos. Macroul ncepe cu pseudooperaia .macro i se termin cu pseudo
operaia.endmacro.

Pelinia.macroprimulsimbolestenumeremacrourlui(push),iarrestulsimbolurilor
sunt argumentele liniei de comand folosite n macro. Exist un singur argument
pentru macroul push, i anume arg1. Aceasta corespunde lui %r15 n instruciunea
push %r15 sau lui %r1 n instruciunea push %r1. Argumentul este legat de arg1 n
timpulprocesuluideasamblare.
Potfifolosiiiparametriformalisuplimentari,separaiprinvirgul:

.macronumearg1,arg2,arg3,

iarmacroulestemaiapoiapelatcuacelainumrdeparametriactuali.

nume%r1,%r2,%r3,

Corpul macroului urmeaz dup pseudooperaia .macro. Orice comenzi pot urma,
inclusiv alte macrouri, sau chiar i apeluri la acelai macro, ceea ce duce la o
dezvoltarerecursivlaasamblare.Parametricareaparnlinia.macropotfinlocui
orice text din corpul macroului, aa c aceti parametri pot fi folosii pentru
etichete,instruciunisauoperanzi.
n timpul macroexpansiunii parametri formali sunt nlocuii cu parametri actuali
folosind o substituie simpl textual. Astfel, macroul push poate fi apelat att cu
argumentedememoriecticuregistre.

push%r1

sau

pushfoo

Programatorul trebui s in cont de aceast trstur a macroexpansiunii atunci


cnddefineteunmacro.
Pentru macroexpansiune recursiv este nevoie de pseudooperaii suplimentare.
Pseduooperaiile .ifi .endifdeschidinchidosecvendeasamblarecondiional.
121

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Dac argumentul lui .if este true, atunci codul care urmeaz pn la .endif este
asamblat.Dac argumentul este false atunci codul dintre .if i .endif este ignorat de
ctreasamblor.Operatoriicondiionalipentrupsedudooperaia.ifpotfioricaredin
mulimea{<,=,>,>=,<=,}.
n figura de mai jos este prezentat o macrodefiniie recursiv i extinderea ei n
timpulprocesuluideasamblare.

Codul extins nsumeaz coninutul registrelor de la %r1 pn la %rX i plaseaz


rezultatuln%r1.ArgumentulXesteverificatnlinia.if.DacXestemaimaredect2
atuncimacroulesteapelatdinnou,darcuargumentulX1.dacmacroulrecurs_add
esteapelatcuargumentul4,atuncisegenereaztreiliniidecod,aacumseveden
figur.Laprimulapelalmacroului recurs_add, Xarevaloarea4.Macroulesteapelat
dinnoucuX=3iX=2momentncaresegenereazprimainstruciuneaddcc.Adoua
iatreiainstruciuneaddccsuntgeneratelarevenireadinapelurilerecursive.
Pentru ca un asamblor s suporte macrouri, trebuie s existe o faz de macro
expansiune care are loc nainte de procesul de asamblare n doi pai. Macro
expansiunea este efectuat de macropreprocesor nainte de asamblarea
programului. Procesul de macroexpansiune este de regul invizibil
programatorului, din moment ce este apelat de asamblor. Macroexpansiunea de
regulnecesitdoufaze:nprimasenregistreazmacrodefiniiileiarnadouase
genereazinstruciunilenlimbajdeasamblare.Aldoileapasalmacroexpansiunii
poatefifoartelaboriosdacsuntsuportatedefiniiiledemacrorecursive.

Concluzii
Unlimbajdeprogramaredenivelnalt,cumsuntCsauPascalpermitcaarhitectura
sistemuluidecalculdelanivelurileinferioaresfietratatlamodulabstract.Pede
alt parte, un program n limbaj de asamblare are o form care este foarte
dependent de arhitectur. Arhitectura setului de instruciuni este vizibil
programatorului, care este responsabil de modul n care sunt folosite registrele i
linkeditarea subrutinelor. O parte din complexitatea programrii n limbaj de
asamblareestegestionatprinfolosireademacrouri,carediferdesubrutinesau
122

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

funcii, prin aceea c macrourile genereaz cod inline la asamblare, pe cnd


subrutinelesuntrulatelaexecuie.
Unlinkeditorcombinmoduleleasamblateseparatntrunsingurmodulcepoatefi
ncrcat. Modulul este plasat n memorie de ctre loader i ncepe execuia
programului. Loaderul poate face relocare dac dou sau mai multe module se
suprapunnmemorie.
npracticdetaliileasamblrii,linkeditriiincrcriisuntdependentedesistem
ilimbaj.Uneleasambloaresimple producfiiere binare directexecutabile,dar de
regulunasamblorvaproduceinformaiesuplimentarastfelcamodulelespoat
filegatempreundectrelinker.Unelesistemeoferncrctoarecareefectueaz
ilinkeditare.Unelencrctoarepotncrcaprogramuldoarlaadresaspecificat
n fiierul binar, pe cnd altele, de obicei, ncrctoarele cu relocare pot reloca
programul la o adres specificat la ncrcare. Aceste procese sunt dependente de
sistemuldeoperare.
nainte de apariia compilatoarelor, programele erau scrise direct n limbaj de
asamblare.nziuadeastzi,limbajuldeasamblarenumaiestefolositpentruascrie
programe, ntruct compilatoarele pentru limbajele de nivel nalt produc un cod
foarte eficient. Cu toate acestea limbajele de asamblare sunt importante pentru a
nelegeaspectedearhitecturacalculatoarelorcumarfi:linkeditareaprogramelor
compilatepentruconveniideapel.

123

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

7. Comunicaii
Comunicaiaesteprocesuldetransferareainformaieidelaosurslaodestinaie.
Sistemeledecomunicaieacoperdistaneledintrecalculatoareiimplicsistemul
public de telefonie, radio i televiziune. Sistemele de comunicaie pe arie larg au
devenit foarte complexe, transminduse combinaii de voce, date i video prin
firele de comunicaie, fibre optice, radio i microunde. Rutele de comunicaie trec
attprinpmntctiprinap,underadioisatelii.Datelecepornesccasemnal
analogicdevocepotficonvertitenfluxuridedatedigitalepentruorutareeficient
pestedistanemariisuntconvertiteladestinaienapoinsemnalanalog,frca
ceicecomunicscontientizezeacestfapt.
n continuare ne vom concentra asupra comunicaiilor ntre entiti localizate la
distane cuprinse ntre civa metri pn la un kilometru (LAN Local Area
Network) i entiti localizate la o distan mult mai mare (WAN Wide Area
Network),unexemplutipicfiindchiarreeauaInternet.

Modemuri
Oamenii comunic prin linii telefonice prin care semnalul sonor este convertit n
semnale electrice, ce sunt transmise la destinatar, unde sunt convertite napoi n
sunet. Aceasta nu nseamn c oamenii trebuie ntotdeauna s vorbeasc i s
ascultepentruaputeacomunicaprinliniiletelefonice.Acestmediudecomunicaie
poate transmite i informaia nonauditiv ce este transformat ntro form
auditiv.
n figura de mai jos prezentm o configuraie n care dou calculatoare comunic
prin linia telefonic prin utilizarea de modemuri (prescurtare de la modulator
demodulator).

Modemultransformsemnalulelectricdelacalculatorntroformauditivpentru
afitransmisiefectueazoperaiainversladestinaie.Modemurilesuntfolosite
doar pe liniile de comunicaie telefonice i n alte sisteme cum ar fi CATV
(transmisiadedateprinreeleledecabluTV).
Comunicaia prin modem pe liniile telefonice este efectuat ntrun mod serial, n
care biii au o codificare potrivit pentru mediul de transmisie. Exist numeroase
scheme de modulare folosite n comunicaie, ce reprezint codificri ale datelor n
mediuldecomunicaie.nfigurademaijossuntprezentatetreiformeobinuitede
modulare.
124

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

AM (Amplitude modulation) folosete puterea semnalului pentru a codifica


valorile 0 i 1. AM este destinat unor implementri simple ce se creeaz ieftin.
Totui, din moment ce exist informaie n amplitudinea semnalului, tot ceea ce
modific amplitudinea afecteaz semnalul. Pentru un radio AM, o serie de situaii
afecteazamplitudineasemnalului(trecereapesubunpodsauprinpreajmaliniile
denalttensiune,fulgereleetc.)
FM (Frequency modulation) nu este att de sensibil ca AM pentru c informaia
estecodificatnfrecvenasemnaluluiinunamplitudinealui.SemnalulFMpentru
radioestemultmaistabilinusedeterioreaznsituaiileenumeratemaisus.
PM (Phase modulation) este folosit de regul la modemuri. Aici patru faze
(despritedecte90degrade)dubleazlimeadebandprintransmitereaacte
doibiiodat(ceeacesenumetedibit).Folosireafazeioferungraddelibertate
suplimentar fa de frecven i este folosit atunci cnd numrul de frecvene
disponibileestelimitat.
PCM (Pulse code modulation) un semnal analog este eantionat i convertit n
formbinar.nfigurademaijosesteprezentatprocesuldeconversiealsemnalului
analognsecvenbinarPCM.

125

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Semnalul original este eantionat i se produc valori la intervale discrete.


Eantioanele sunt codificate n binar i concatenate pentru a produce o secven
PCM.
PCMreprezintoabordaredigitaliaretoateavantajelesistemelorinformaionale
digitale.Prinfolosireaderepeaterelaintervaleregulatesemnalulpoatefirecuperat
perfect.Prinmicorareadistaneidintrerepeatere,sepoatemrilimeadeband
nmodsemnificativ.Totuisemnalulanalog,poateficelmultghicitirestauratdoar
aproximativ.Nuexistomodalitatebundeafacesemnalulanalogperfectntrun
mediucuzgomot.

Mediidetransmisie
ntrunmediunchis,calculatoarelepotfiinterconectatendiferitemoduri.Pentru
sistemeleaflateladistansepoatefolositsistemulpublicdetelefonie.Utilizatorii
se pot conecta la sistemul detelefonie cu modemuri ce convertesc biii n sunete.
Oameniipotauzifrecvenedepnla20KHzdarpotemitesunetedepnla4KHz,
ceeaceesteaproximativlimeadebandpecareolinietelefonicotransmite.Un
semnal analog (vocea) care este aproximat cu un semnal digital trebuie s fie
eantionatcelpuindedouoriperciclu(pentruacaptavalorilemariimici),aa
coratdeeantionarede8KHzestenecesarpentruadigitizaoliniecetransmite
voce. La 8 bii/eantion, se obine o rat de 8bii/ciclu x 8 KHz = 64 Kbit/s. Un
eantion la fiecare 8 este folosit pentru administrarea liniei telefonice, aa c rata
maximposibilestede56Kbit/s.
Osecvenbinartransmisesteconvertitnvalorimari/mici,darfluctuaiilesunt
atenuateidistorsionatelafrecvenemariipedistanelungi.nfigurademaijos
esteprezentataceastproblemaeantionrii.

Fluctuaia ideal

Fluctuaia transmis

La receptor

Secvena binar 01011001 este reprezentat printro fluctuaie ideal, care este
aproximat de fluctuaia transmis. Fluctuaia ideal conine discontinuiti, care
sunt dificil de produs la fluctuaii reale. Frecvenele nalte sunt atenuate mai mult
dect frecvenele joase n majoritatea mediilor i frecvene diferite se propag la
rate diferite, ceea ce duce la distorsiuni ale fluctuaiilor pe msur ce se propag.
Graduldedistorsiunevariazcumediuldetransmisie.

126

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Liniideschisecudoufire
Celmaisimplumediudecomunicaieesteoperechedefirecetransportsemnalul
respectiv GND (ground). Firele emit radiaii electromagnetice i preiau zgomot n
cantiti diferite pentru cele dou linii, ceea ce distorsioneaz semnalul. Viteza i
distanalacaresepoatetransmitesemnalulsuntlimitate(19.2KHzrespectiv50m).

Liniitorsadatenpereche
Dacsersucescperechiledefiredeschiseatuncizgomotulexternvaafectaambele
fire la fel. n felul acesta poate crete att viteza ct i distana la care poate fi
transmissemnalul(1Mbpsrespectiv100m).

Cablucoaxial
Pentru viteze i distane mai mari (10Mbps, sute de metri) firul de semnal este
plasatininteriorulluiGNDnmodcoaxialcu unizolatorntre ele.Ideeaestedea
formaunscutpentruliniadincentrucareoprotejeazdeinterfereneleexternei
depierderiledesemnaldatorateradiaiilorelectromagnetice.

Fibroptic
Comunicaiaopticesteimunlainterfereneelectromagnetice isuportolime
debandmultmaimare. Lafiecare capte nevoiedeoconversie optoelectronic,
ceeaceestedisponibilpnlacivaGbps(folosinddiodelaser).Fibraopticconst
dintrunmiezoptic,unnveliopticiunizolatordeplastic.
Exist mai multe tipuri de fibre optice cu capabiliti i performane diferite:
multimodesteppedindexfiber,multimodegradedindexfiber,singlemodefible.
127

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Satelii
Sateliii de comunicaie ce orbiteaz n jurul Pmntului sunt folosii atunci cnd
este nevoie de a transmite semnalul pe o distan foarte mare cu costuri mai mici
dectliniiledecomunicaieterestre(maiieftinidectfibreleoptice).
ncomunicaiaprinsateliimicroundelesunttransmisedelasollasatelit,undeun
transponderceacoperoanumitbanddefrecveneretransmitesemnalullaoalt
zondepePmntaflatnariadeacoperireasatelitului.
Un satelit are o serie de transpondere. O arie de acoperire mai mic nseamn c
semnalul transmis este mai puternic i c antenele receptoare pot fi mai mici.
Aceasta este tipic la sateliii ce transmit semnal TV. Sateliii folosii pentru
transmitereasemnaluluiTVsuntplasaipeorbitejoase(aprox.700Km)aaceste
nevoie de o zon mai mic de colectare a semnalului, pe cnd sateliii plasai pe
orbite geosincrone (aprox. 23000 mile deasupra Pmntului) unde fora
gravitaionalaPmntuluiiforacentrifugsuntnechilibru,aacsateliiipar
staionarideasupraPmntului,orbitalorfiinddeasupraecuatorului.Pentruaceti
sateliiestenevoiedeantenemultmaimarindreptatenspreecuator.
Pentru comunicaie n ambele sensuri cu sateliii, exist o ntrziere tolerabil.
Uplinkul este mai lent dect downlinkul. Aceasta se potrivete cu modul de
operarealunuiutilizatorobinuitalInternetului,deoarecemaipuinde10%din
traficuldeInternetestetransmisdelautilizatornspreafaripeste90%dintrafic
esteadusdeutilizatordinInternet.Vitezadecomunicaieestelimitatdec(viteza
luminiinvid), care esteaproximativ300000km/s.pentruodistande23000 de
mile ntrzierea este de 100ms pn la satelit i nc 100ms napoi i n plus mai
apareintrziereadeprocesare.

Microundeterestre
Legturile terestre prin microunde sunt utile pe distane de pn la 50Km atunci
cnd trebuie transmis semnalul n zone greu accesibile dar sunt afectate de
turbulenelemeteorologice.

Radio
nreeleleradiocelulare,ostaieradioesteplasatnmijloculcelulei,carederegul
arediametrulmaimicde20dekm.Obandrestricionatdefrecveneestefolosit
n cadrul celulei, pentru comunicaia ntre dispozitivele celulare i staie. Celulele
nvecinatefolosescoaltbanddefrecvene,aacnuexistconfuzielagraniele
dintre celuleatunci cndunutilizatortrecedelao celullaaltantimp ce esten
micare.nacestesituaiideregularelocoschimbaredefrecven.

128

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Arhitecturidereea:LAN
Un LAN (Local Area Network) este un mediu de comunicaie care interconecteaz
calculatoarentrogeograficlimitatlacelmultcivakilometri.UnLANpermite
unui set de calculatoare i alte dispozitive s partajeze resurse comune cum ar fi:
date,aplicaiisoftware,imprimanteidispozitivedestocare.
Un LAN este format din hardware, software i protocoale. Hardwareul const din
cabluri i circuite de interfa. Softwareul de regul este integrat n sistemul de
operareiesteresponsabilpentruconectareaunuiutilizatorlareea.Protocoalele
sunt mulimi de reguli care guverneaz formatul, sincronizarea, secvena i
controlulerorilor.Protocoalelesuntimportantepentruasigurareafaptuluicdatele
suntmpachetatepentruafitrimisepereeaisuntextrasedinreeanmodcorect.
Datele sunt descompuse n elemente; fiecrui element i se adaug un antet care
conine informaii despre anumii parametri cum ar fi destinaia, sursa, biii de
protecie mpotriva erorilor i o marc de timp. Datele sunt combinate cu antetul
pentru a forma pachete ce sunt trimise n reea. Receptorul recurge la procesul
inversdeextragereadatelordinpachete.
Procesul de comunicaie prin reea este de regul efectuat ntro ierarhie de pai,
fiecareavndpropriulprotocol.Paiitrebuieefectuainordinepentrutransmisiei
ordineinverspentrurecepie.Aceastaducelanoiuneadestivdeprotocoale,ceea
ceizoleazprotocolulfolositncadrulierarhiei.

ModelulOSI
Modelul OSI (Open System Interconnection) este un set de protocoale stabilite de
ISO(InternationalStandardOrganization)nncercareadeadefiniiastandardiza
comunicaiadedate.ModelulOSIafostnlocuitdemodelulInternetTCP/IPdarin
ziua de astzi influeneaz comunicaia prin reea, n principal n industria
telecomunicaiilor.
n modelul OSI procesul de comunicaie este mprit n apte niveluri: aplicaie,
prezentare, sesiune, transport, reea, legtur de date i fizic aa cum se vede n
figurademaijos.

129

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

ModululOSInudosingurdefiniierelativlamodulncarearelocefectivprocesul
de comunicaie a datelor. Modelul OSI servete ca referin pentru modul n care
acest proces al trebuie mprit i ce protocoale ar trebuie folosite la fiecarenivel.
Conceptulestecafurnizoriide echipamentepotselectaunprotocolpentru fiecare
nivel asigurnd n acelai timp compatibilitate cu echipamente de la ali furnizori
carefolosescalteprotocoale.
Nivelul cel mai de sus n modelul OSI este nivelul aplicaie, care furnizeaz o
interfacepermiteaplicaiilorscomuniceunacualtaprinreea.Ofersuportde
nivelnaltpentruaplicaiicareinteracioneazprinreea,cumarfiserviciidebaze
de date pentru programe ce acceseaz baze de date prin reea, tratarea mesajelor
pentru programele de email i manipularea fiierelor pentru programele de
transferdefiiere.
Nivelulprezentareasigurcinformaiaesteprezentataplicaiilordecomunicaie
ntrunformatcomun.Aceastaenecesardeoarecesistemediferitepotfolosiintern
formate diferite de date. De exemplu, unele sisteme folosesc formatul intern big
endian pe cnd altele folosesc littleendian. Funcia nivelului prezentare este de a
izolaaplicaiadeacestediferene.
Nivelulsesiunestabileteiterminsesiuniledecomunicaientreprocese.Nivelul
sesiune este responsabil pentru meninerea integritii comunicaiilor chiar i
atuncicndniveluriledemaijospierddate.Deasemeneasincronizeazschimbuli
stabilete puncte de referin pentru continuarea unui proces de comunicaie
ntrerupt.
Nivelultransportasigurtransmisiasigurdelasursladestinaie.Alocresursede
comunicaie astfel ca datele s fie transmise rapid i eficient. Nivelul sesiune face
cereri nivelul transport, care ordoneaz cererile i face compromisuri ntre vitez,
cost i capacitate. De exemplu, transmisia poate fi mprit n mai multe pachete,
caresunttransmise prinmaimultereele pentruaobineuntimpdecomunicaie
mai mic. Pachetele pot ajunge la destinaie ntro ordine aleatoare, iar nivelul
transport este responsabil ca nivelul sesiune s primeasc pachetele n aceeai
ordinencareaufosttrimise.Nivelultransportfurnizeazcorectareadeeroridela
surs la destinaie i furnizeaz controlul fluxului (adic, asigur c vitezele
expeditoruluiireceptoruluisuntegale).
Nivelulreearuteaz dateleprin sistemeintermediareisubreele.Spredeosebire
de nivelurile superioare, nivelul reea ine cont de topologia de reea, care
reprezint conectivitatea dintre diferitele componente de reea. Nivelul reea
informeaznivelultransportdestareaconexiunilorpotenialeiexistentedinreea
nceeacepriveteviteza,fiabilitateaidisponibilitatea.Nivelulreeaestederegul
implementatcuroutere,careconecteazdiferitereelecefolosescacelaiprotocol
detransport.
Nivelullegturdedategestioneazconexiuniledirectedintrecomponentelereelei.
Acest nivel este mprit n LLC (logical link control), care este independent de
topologia de reea i MAC (media acces control) care este specific topologiei. n
130

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

unele reele conexiunile fizice dintre dispozitive nu sunt permanente, i este


responsabilitatea nivelului legtur de date s informeze nivelul fizic cnd s
realizezeconexiunile.Acestnivellucreazcuunitidedatenumiteframe(pachete
izolate,saucoleciidepachete)ceconinadrese,dateiinformaiidecontrol.
Nivelulfizicasigurtransmisiadatelorbrutedelasursladestinaieprinmediulde
comunicaiefizic.Transmiteirepetsemnaleleprinreea.Nivelulfizicnuinclude
hardwareulpropriuzisdarincludemetodeledeaccesareahardwareului.

Topologii
Existtreitopologiiimportantepentrureelelocaleaacumsevedenfigurademai
jos:

Cemaisimplestetopologiabus(a).Componentelesuntconectatelaomagistral
sistemprinlegarealorlasingurulcablusau,ncazulreelelorfrfir(wireless),prin
emitereadesemnalentrunmediucomun.Avantajulacestuitipdetopologieestec
fiecare component poate comunica direct cu orice alt component de pe
magistral i este relativ simplu s se adauge alte componente n reea. Controlul
este distribuit componentelor, i nu exist o anumit component cu rol de
intermediar,ceeacereducecosturileiniialepentruacesttipdereea.Dezavantajele
acestei topologii sunt: lungimea cablului de la magistral la componentele reelei;
pentruaadugaonoucomponentnreeaestenecesarntrerupereamagistralei,
ceeaceducelantrerupereantregiireele.Unexempludereeabazatpebuseste
Ethernet.
Topologia inel (b) folosete un singur cablu, pentru care capetele sunt legate.
Pachetele sunt transmise prin inel i trec prin fiecare component a reelei pn
cnd ajung la destinaie. La destinaie, pachetele sunt extrase din reea i nu mai
sunttransmisemaideparteprininel.Dacpachetulajungenapoilasistemulcarel
a iniiat, atunci nseamn c transmisia a euat, pachetul este oprit i poate fi
ncercat o nou transmisie. Un exemplu de LAN cu topologie inel este IBM token
ring.
ntopologiastea,fiecarecomponentesteconectatlaunhubcentral,carearerolul
deintermediarpentrutoatecomunicaiileprinreea.ntroconfiguraiesimplhub
ul primete datele de la o component i le trimite mai departe la toate celelalte
componente,lsndnseamacomponentelorindividualesdeterminedacdatele
131

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

lesuntadresate.ntroconfiguraiemaisofisticat,hubulrecepioneazdateleile
trimitedoardestinatarului.
Un avantaj al topologiei stea este c majoritate serviciilor de reea, modificrile,
cablarea se face la hubul central. Dezavantajul este c dac se defecteaz hubul
atuncitoatreeauaseoprete.Unaltdezavantajestectopologiasteanecesitmai
mult cablu pentru a conecta componentele reelei. Un exemplu de topologie stea
esteARCnet.

Transmisiadatelor
Comunicaia n cadrul unui calculator este sincronizat de un ceas, i transmisia
biilor este semnalat de voltaje joase/nalte ce sunt eantionate la momentul
determinatdecea.Aceastschemestesimpldarnufuncioneazpedistanemai
mari, aa cum este un LAN. Problema este c un ir lung de bii nu se poate
sincroniza cu exactitate att cu ceasul sistemului emitor ct i cu cel al
receptorului.DistaneledintrunLANsuntpreamaripentruamenineattunceas
globalctiovitezfoartemare.nreelelocalesefoloseteosincronizareceeste
inclusndatelecesetransmit.
La nivelul cel mai de jos al transmisiei se aplic aceast sincronizare. Al nivelul
urmtor fluxul de date este descompus n pachete i cadre (engl. frame) ce sunt
transmise prin reea ntro ordine aleatoare. Nivelul legtur de date este
responsabil pentru descompunerea fluxului de date n pachete, transformarea
pachetelorncadreiinjectareacadrelornreea.Cndrecepioneazcadre,nivelul
legturdedateextragepacheteleileasambleazntrunformatcepoatefiutilizat
de nivelul superior (nivelul reea). Dimensiunea pachetelor de date este de regul
civa KB i necesit cteva microsecunde s fie transmise la viteze i distane
obinuite.
Ethernet este una din cele mai populare reele bazate pe bus. Ethernet folosete
CSMA/CD (Carrier Sense Multiple Access with Collision Detection) pentru
transmisie. Cu aceast tehnologie, atunci cnd o component de reea vrea s
transmitdate,primadatateaptuncarrier.Dacexistpelinieuncarrier,care
este plasat de un dispozitiv ce transmite date, atunci nu va transmite nimic i va
atepta o anumit perioad de timp (de regul aleatoare). Perioada aleatoare este
important pentru a evita deadlockurile (situaiile fr ieire) n care
componentele care ncearc s trimit date pe bus ascult i ateapt n mod
sincron. Dac pe bus nu exist trafic, atunci poate ncepe transmisia prin plasarea
unui carrier mpreun cu datele. Surs de asemenea monitorizeaz busul pentru
coliziuni,situaiecareapareatuncicnddousaumaimultecomponentetransmit
date simultan. O coliziune este detectat atunci cnd sunt prezeni mai muli
carrieri. Coliziunile pot apare ntro reea ca rezultat al timpului finit necesar
semnalului pentru a traversa lungimea magistralei. Propagarea semnalului pe
magistralestelimitatdevitezaluminiipelungimeamagistralei,lungimecepoate
fipnla500demetripentruoreeaEthernettipic.Atuncicndauloccoliziuni,
132

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

componentele ce transmit date vor atepta un timp aleatoriu nainte de a


retransmitedatele.
Datelesunttransmisenambeledireciialemagistralei.Fiecarecomponentvede
fiecare pachet de date, dar extrage doar pachetele ce le sunt adresate. Dup ce un
pachetesterecepionat,ladestinaiesepoategeneraunmesajdeconfirmarepentru
transmitor, de regul la nivelul transport. Dac transmitorul nu primete
confirmarea dup o perioad de timp fixat (care trebuie s fie mai mare dect
ntrziereareeleilaunciclucomplet),atuncimesajulesteretransmis.
Coliziunile apar rar n practic, aa c latena dat de retransmisii nu este foarte
important. O degradare serioas n performana Ethernet nu are loc pn cnd
traficulestesublimitade35%dincapacitateareelei.

Bridge,router,gateway
Pemsurce crete dimensiune reelelor acestea pot fi divizate nreelemaimici
interconectate.Subreelelemaimiciopereazindependentunadealtaipotfolosi
protocoaleitopologiidiferite.
Dac toate subreelele folosesc aceeai topologie i aceleai protocoale, atunci
reeaua poate fi extins folosind repeatere. Un repeater amplific semnalul pe
reea, semnal ce se atenueaz pe msur ce strbate reeaua. Subreelele nu sunt
independententotalitatedeoarecefiecaresubreeavedetottraficuldepecelelalte
subreele. O reea ce folosete doar repeatere nu se poate extinde foarte mult.
Repeaterele amplific nu numai semnalul ci i zgomotul de pe fir ceea ce va
determina n final dominarea semnalului de ctre zgomot dac se folosesc prea
multerepeatere.
Unbridgenunumaicamplificsemnalul,acestarestaureaznivelurileindividuale
ale semnalului la valorile logice 0 i 1, ceea ce previne acumularea zgomotului.
Bridgeurile auunanumit nivelde inteligen i pot interpretaadreseledestinaie
ale pachetelor i le pot transmite la reeaua pentru care sunt adresate. Astfel,
traficul n reea poate fi redus, din moment ce metoda alternativ ar fi trimiterea
pachetelorlafiecaresubreea(aacumsentmplncazulfolosiriirepeaterelor).
Cu toate c bridgeurile au un anumit nivel de inteligen n sensul c analizeaz
pacheteleprimiteileruteazpebazaadreseidedestinaie,acesteanuincontde
protocol. Un router lucreaz la un nivel mai nalt. Routerul conecteaz de regul
reeleseparatelogiccarefolosescacelaiprotocoldetransport.
Un gateway translateaz pachete pn la nivelul aplicaie din modelul OSI
(nivelurile 4 pn la 7). Gatewayurile conecteaz reele diferite prin efectuarea
conversiilordeprotocol,conversiinformatulmesajelorialtefunciidenivelnalt.

Eroridecomunicaieicoduricorectoaredeerori
Atuncicndarelococomunicaientresistemedecalculsauchiarincadrulunui
sistemdecalculexistoanumitprobabilitatecadatelesfierecepionateeronat
datorit zgomotului din canalul de comunicaie. Reprezentrile pentru date
133

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

considerate pn acum utilizau simbolurile binare 0 i 1. n realitate, simbolurile


binare au o form fizic i anume voltaje sau curent electric. Forma fizic este
supus zgomotului introdus de mediul de comunicaie, cum ar fi fenomene
atmosferice, raze gamma i fluctuaii ale curentului electric. Zgomotul poate cauza
erori,ncarevalorile0sunttransformaten1iinvers.
PresupunemcsetransmitecaracterulASCIIbicntimpultransmisieiareloco
eroare n urma creia cel mai puin semnificativ bit este inversat. Secvena binar
corectpentrubeste1100010.Secvenadebiirecepionateste1100011,ceeace
corespundecaracteruluic.Receptorulnuarecumstiecaavutlocoeroaredoar
examinnd secvena de bii recepionat. Problema este c fiecare din cele 128 de
secvene de 7 bii reprezint caractere ASCII valide i dac unul din cei 7 bii se
modificsecvenacerezultestetotuncaracterASCIIvalid.
Expeditorulpoatetrimitebii deverificaresuplimentarimpreuncubiii dedate.
Receptorul poate examina aceti bii i n anumite condiii nu numai s detecteze
erori dar i s le corecteze. n continuare vom prezenta dou metode pentru a
realizaaceasta.

Definirearateideerorilaniveldebit
Existnumeroasemodurincarepotapareerorincadrulsistemeloriarerorilepot
lua diferite forme. Vom presupune c probabilitatea ca un bit recepionat s fie
eronatesteindependentdeprobabilitateacabiiinvecinaisfieeronai.nacest
cazputemdefiniratadeerorilaniveldebitcafiindprobabilitateacaunanumitbit
sfieeronat.Evidentcacestaesteunnumrfoartemic,deregulestemaimicde
1012pentrufibraoptic.Astanseamncdoarunuldin1012biivorfieronai.n
reeleleradiounuldin100depachetepotconineerori.
n cadrul unui sistem rata de erori este mai mic dect 1018. Un procesor de 500
MHz care prelucreaz 32 de bii la fiecare ciclul de ceas va avea un numr de
erori/secundegalcu1018erori/bitx500x106cuvinte/secundx32bii/cuvnt=
1.6x1018erori/secund,adicaproximativunbiteronatladoianidezile.
Pedealtparteunfluxdebiidelaoliniedecomunicaieserialdeunmilionde
bii/secundcuoratdeeroride1010,vaaveaunnumrdeeroriegalcu1x106x
1010sau104erori/secundadic,aproximativ10eroripezi.

Detectareaicorectareaerorilor
Unadincelemaisimpleimaivechimetodededetectareaerorilorfolosetebitul
deparitate(safolositncadrulsistemelordetelegraf).

134

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
Poziia bitului

Bitul de
paritate

Caracter ASCII pe 7
bii

Caracter

Unbitdeparitateseadauglafiecarecaracteretransmisastfelnctnumruldebii
egalicu1nfiecarecaractersfieparsauimpar,nfunciedeparitateaaleas.n
exemplul nostru de transmitere a caracterului ASCII b, 1100010, presupunem c
dorim s folosim paritate par i atunci vom aduga un bit 1 pentru a face par
numruldebiiegalicu1,rezultndsecvenadebii11100010pentrutransmitere.
Bitul de paritate se poate aduga la nceput sau la sfrit n funcie de convenia
aleas.Receptorulpoateexaminasecvenadebii,idacnumruldebiiegalicu1
este par, atunci poate considera c a recepionat caracterul fr erori. (Aceast
metod nu mai este de nici un folos dac probabilitatea ca doi bii s se modifice
estedestuldemare.nacestcaztrebuiefolositealtemetodeaacumvomvedean
continuare).
CoduriHamming
Dac se adaugbiisuplimentarila date,atuncieste posibilnunumais detectm
erori,darislecorectm.Uneledincelemaipopularecoduricorectoaredeerori
se bazeaz pe munca lui Richard Hamming de la Bell Telephone Laboratories
(LucentTechnology).
Putem detecta un singur bit eronat ntrun cod ASCII prin adugarea unui bit
redundant.Distana Hamming definete distana logic dintre dou cuvinte valide,
ca msura numrului de cifre binare care diferntrecele dou cuvinte. Dac se
modificunsingurbitntruncaracterASCII,atuncisecvenadebiicerezulteste
un alt caracter ASCII. Distana Hamming corespunztoare pentru acest cod este 1.
DacrecodificmtabelaASCIIastfelnctdistanaHammingsfie2,atuncitrebuie
modificaidoibiipentruaconvertiuncaracterASCIIvalidntraltul.Astfelputem
detecta un singur bit eronat deoarece caracterul invalid va fi ntre dou caractere
valide.
OmodalitateadeanregistrauncaracterASCIIpentruodistanHammingde2este
deaatribuiunbitdeparitate,careiavaloarea0sau1pentruafacenumruldebii
egali cu 1 din codificarea caracterului par sau impar. Dac folosim paritate par,
atuncibituldeparitatepentrucaracterulaeste1deoarecesecvenadebiipentru
acestcaracterconine3biiegalicu1:1100001.Bituldeparitatepentrucaracterul
c este 0, ceea ce va duce la secvena de bii recodificat: 01100011. Dac folosim
135

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

paritatea impar, atunci biii de paritate vor lua valoarea opus: 0 pentru a i 1
pentruc.
TabelulASCIIrecodificatareacum256depoziii,dincarejumtate(celecareauun
numrimpardebiiegalicu1)reprezintcaractereinvalide.Dacesterecepionat
un caracter invalid, atunci receptorul tie c a avut loc o eroare i poate cere
retransmitereacaracterului.
Retransmiterea nu este ntotdeauna practic iar pentru aceste cazuri ar fi util nu
numaissepoatdetectaeroriledarsseicorecteze.Folosireabituluideparitate
vadetectaeroareadarnuvalocalizapoziiabituluieronat.Dacesterecepionat
secvena de bii 11100011 ntrun sistem care folosete paritate par, atunci
eroarea este detectat pentru c paritatea cuvntului este impar. Nu exist
suficientinformaiepentruadeterminadoarcuajutorulbituluideparitatecarea
fostcaracterultransmis(chiaribituldeparitatepoatefieronat).
Pentru a construi un cod corector de erori capabil s detecteze i s corecteze
cuvinte ce conin un singur bit eronat, trebuie s adugm mai mult redundan
prinextindereanumruluidebiidincuvnt.Deexemplu,sconsidermsecvena
de bii pentru caracterul a 1100001. Dac vrem s detectm i s corectm un
singur bit eronat care poate s apar n orice poziie n cadrul cuvntului, atunci
trebuiesatribuimnc7secvenedebiicaracteruluiasecvenencareunsingur
bit este modificat fa de secvena binar corespunztoare lui a: 0100001,
1000001, 1110001, 1101001, 1100101, 1100011, 1100000. Putem face acelai
lucru i pentru celelalte caractere, dar trebuie s facem n aa fel nct nici o
secven de bii s nu fie comun la mai mult de un caracter ASCII; altfel nu vom
avealadispoziieunmoddedeterminareneambiguuasecveneibinareoriginale.
Oproblemcufolosirearedundaneinacestfelestecatribuim8secvenedebii
fiecrui caracter: una pentru caracterul original i nc apte pentru secvenele de
bii nvecinate eronate. Din moment ce avem 128 de caractere ASCII i 8 secvene
pentru fiecare caracter, nseamn c putem recodifica 128/8 = 16 caractere dac
folosimdoarcei7biipentrureprezentareacaracterelor.
Pentruarecodifica toatecaractereleASCII,trebuies adugmbiideredundan
suplimentari (numii bii de verificare). Acum trebuie s determinm de ci bii
avemnevoie.Daccuvintelecevremslerecodificmsuntdekbiiifolosimrbii
deverificareatunciarelocurmtoarearelaie:

2kx(k+r+1)<=2k+rechivalentcu,k+r+1<=2r

Argumentaia pentru aceast relaie este c pentru fiecare din cele 2k cuvinte
originale,existsecvenedekbiincareunsingurbitesteeronat,plussecvenede
rbiincareunbitdeverificareesteeronat,plussecvenaoriginalcorect.Aac
codulnostrucorectordeerorivaaveantotal2kx(k+r+1)secvenedebii.Pentru
aputeareprezentatoateacestesecvenedebiiavemnevoiedek+rbii,astfelcse
vor putea genera 2k + r secvene binare, numr care este mai mare sau egal dect

136

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

numruldesecvenebinaredincodulcorectordeerori.Pentruk=7vomobiner=
4aacvomavea11biinreprezentareacuvintelordincodulcorectordeerori.
Acum vom vedea cumputem recodifica tabela ASCIIntrun cod pe11 bii.Scopul
estedeaatribuibiiiredundanicuvntuluioriginalastfelnctoricebiteronats
poatfiidentificat.Omodalitatedeafaceaceastatribuireesteprezentatnfigura
demaijos:

Biii de verificare

Poziiile
verificate

Fiecaredincei11biiareunindexdela1la11,iarreprezentareabinarpe4biia
ntregilor de la 1 la 11 este prezentat lng fiecare index. Cu aceste atribuire,
fiecare din cele 11 linii sunt diferite (nu exist dou linii n care biii 1 s fie n
aceeaipoziie).
Citind n jos fiecare din cele patru coloane, bitul 1 ne spune c poziia verificat
(careaparencoloanadindreapta)vafiinclusntrungrupcaretrebuiesformeze
paritatepar.Deexemplu,bituldeverificareC8acoperungrupde4biinpoziiile
8, 9, 10 i 11, care trebuie s formeze paritate par.Dac aceast proprietate este
satisfcutatuncicndcuvntulde11biiestetransmis,daroeroaredetransmisie
produceoparitateaimparlareceptor,atuncireceptorulvaticesteoeroarela
unadinpoziiile8,9,10sau11.Poziiaexactpoatefideterminatprinexaminarea
celorlalibiideverificare,aacumvomvedea.
Fiecare bit din cuvntul codificat de 11 bii, care include biii de verificare, este
atribuit unei combinaii unice a celor patru bii de verificare C1, C2, C4 i C8.
Combinaiilesuntcalculatecareprezentarebinarapoziieibituluiceesteverificat,
ncepnddelapoziia1.C1esteastfelnpoziia1,C2estenpoziia2,C4npoziia
4iC8npoziia8.biiideverificarepotaparenoricepoziii,darderegulaparn
poziii ce corespund puterilor lui 2 pentru a simplifica procesul de localizare a
erorilor.AcestcodsenumeteSEC(SingleErrorCorrectingcode).
Din moment ce poziia fiecrui bit egal cu 1 n fiecare din combinaie de bii de
verificare este unic, putem localiza o eroare prin observarea unui bit de eroare
eronat.Dacconsidermconfiguraiadinfigurademaijos:

137

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Poziia bitului
Biii de verificare

valorilebiilordeverificaresuntdeterminatenconformitateacutabelulprecedent.
Bitul de verificare C1 = 0 creeaz paritate par pentru grupul de bii {1, 3, 5, 7, 9,
11}.Membriacestuigrupsuntluaidinpoziiilecareauvaloarea1ncoloanaC1din
tabel.BituldeverificareC2=1creeazparitateparpentrugrupuldebii{2,3,6,7,
10,11}.BituldeverificareC4=0creeazparitateparpentrugrupuldebii{4,5,6,
7}. Bitul de verificare C8 = 0 creeaz paritate par pentru grupul de bii {8, 9, 10,
11}.
Caoalternativlacutareantruntabelalbiilordeparitate,ngeneral,bitulnal
cuvntuluicodificatesteverificatdebiiideverificaredinpoziiileb1,b2,,bj,astfel
nctb1+b2++bj=n.Deexemplu,bitul7esteverificatdebiiidinpoziiile1,2i
4pentruc1+2+4=7.
Acum s presupunem c receptorul primete secvena de bii 10010111001.
Presupunem c sa folosit codul SEC descris mai sus pentru caractere ASCII i
ntrebarea este ce caracter a fost trimis. Prima dat calculm paritatea pentru
fiecarebitdeverificareaacumsevedenfigurademaijos:

Poziia erorii

Poziia biilor
Biii de verificare

Paritate
impar
par
impar
par

Aa cum se vede biii de verificare C1 i C4 au paritate impar. Pentru a localiza


eroarea,adunmpoziiilebiilordeverificareimpari.Astfel,eroareaestenpoziia
1+ 4 = 5. Cuvntul trimis este 10010101001. Dac eliminm biii de verificare,
obinemsecvena1000100,ceeacecorespundecaracteruluiASCIID.
OmodalitatedeapriviSECeste:cuvintelevalidesuntlaodistansuficientdemare
unuldealtulastfelnctosingureroarevaplasauncuvnteronatmaiaproapede
unanumitcuvntvalidfadeoricealtcuvntvalid.Deexemplu,putemconsidera
un cod SEC pentru doar dou simboluri {000, 111}. Relaia distanei Hamming
pentrutoatesecvenelede3biisuntprezentatenfigurademaijossubformaunui
cub:

138

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros
Coduri de
eronate

Cod
valid

Cod
valid

Schimbarea a trei bii ntr-un


cod valid duce la o distan
Hamming de 3
Coduri
eronate

Pentrucuvintededimensiunimaimarecubulareuncorespondentnumithipercub.
Celedoucuvintevalidesuntplasatenvrfuriopusealecubului.Oriceeroaredeun
singur bit va localiza un cuvnt eronat pe un alt vrf al cubului. Fiecare cuvnt
eronat are un cuvnt valid cel mai apropiat, ceea ce face posibil corectarea unui
singureerori.

CodifiareSECDED
Dac considerm acum c exist dou erori, atunci putem vedea c codul SEC
funcioneaz pentru dubl detectarea de erori (DDE) dar nu i pentru dubl
corectaredeerori(DCE).AceastasenumetecodificareSECDDE(engl.SECDED
SEC double error detection). Din moment ce cuvintele valide sunt desprite de o
distanHammingegalcu3,dou erorivorfi localizauncuvnt eronatpecub i
astfelpotfidetectatedouerori.Cuvntulvalidoriginalnsnupoatefideterminat
n mod neambiguu. Pentru a corecta dou erori, trebuie ntreinut o distan
Hammingegalcu5.ngeneraltrebuientreinutodistanHammingegalcup+
1pentruadetectaperoriiodistanHammingde2p+1pentruacorectaperori.

Verificareverticalaredundanei
Codul SEC este folosit pentru detectarea i corectarea unui singur bit eronat. Biii
redundani sunt adugai la fiecare cuvnt, fi fiecare cuvnt rezultat este tratat
independent. Schema de recodificare se mai numete verificare orizontal sau
longitudinalaredundaneideoarecelungimeacuvntuluiseextindecunumrulde
biiredundani.
O abordare alternativ este de a folosi verificare vertical a redundanei n care o
sum de verificare a cuvntului este adugat la sfritul unui grup de cuvinte
transmise. n acest caz, paritatea este calculat coloan cu coloan, formnd un
cuvntceconinesumadeverificare,cuvntceesteadugatmesajului.Cuvntulcu
suma de verificare este calculat i transmis de expeditor i este recalculat i
comparatcucuvntulceconinesumadeverificarerecepionatdectrereceptor.
Dac se detecteaz o eroare, atunci receptorul trebuie s cear retransmiterea
cuvntuluidinmomentcenuexistsuficientredundanpentruaidentificapoziia
eronat.
139

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Verificareciclicaredundanei(CyclicRedundancyCheckingCRC)
CRCesteoschemmaiputernicdedetectareicorectareaerorilorcareopereaz
nprezenaunorbursterrors,carencepisetermincuunbiteronat,cuzerosau
mai muli bii intermediari eronai. Biii eronai de la capete sunt inclui n burst
error.DaclungimeaunuibursterroresteB,atuncitrebuiesfieBsaumaimulibii
corecintremaimultebursterrors.
CRCfolosetecoduripolinomiale,ncareuncadrudedatecetrebuietransmiseste
mprit cu un polinom iar restul mpririi este adugat cadrului de date ca o
secven de verificare a cadrului (engl.Frame CheckSequence FCS), numit cifre
CRC. Dup recepionarea cadrului, receptorul face aceleai calcule, folosind acelai
polinom, i dac restul mpririi este identic cu cel recepionat atunci nu exist
eroridetectabile.Potexistaerorinedetectabile,iarscopullacreareaunuicodCRC
estedeaselectaunpolinomcareacopercelemaiprobabileeroripentruunanumit
model.
Abordarea este de a lua un mesaj de k bii ce trebuie transmis, M(x), la care se
adaug n bii 0, unde n este gradul polinomului generator, G(x), cu k > n. Forma
extins a lui M(x) este mprit la G(x) folosind aritmetic modulo 2 (n care
transportulimprumutulsuntignorate),iarrestulmpririiR(x),carenuaremai
multdenbii,formeazcifreleCRCpentruM(x).
Caexemplu,sconsidermctrebuietransmiscadrul:

M(x)=1101011011

i c polinomul generator este G(x) = x4 + x + 1. Gradul lui G(x) este 4, aa c


adugm4biizerolaM(x)pentruaformademprituloperaiei.
Divizoruleste10011,ceeacecorespundecoeficienilordinG(x)scrisca:

G(x)=1xx4+0xx3+0xx2+1xx1+1x0.

G(x)aregraduln=4iexistn+1=5coeficieni.CifreleCRCsuntcalculateaacum
esteprezentatnfigurademaijos:
Ctul este eliminat
la calculul CRC
original
G(x), de grad
n=4

n = 4 zerouri

SAU exclusiv pe bii


(XOR), este la fel ca
i adunarea i
scderea modulo-2
R(x) este CRC
pentru M(x)
Cadrul transmis

140

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

DacntimpultransmisieiT(x)=M(x)+R(x)sealtereazreceptorultrebuiespoat
determinaaceasta.ReceptorulmpartecadrulprimitG(x)itoatebursterrorscare
nulincludpeG(x)cafactorvorfiinterceptatepentrucrestulvafidiferitdezero.
Atta timp ct biii 1 din 10011 nu coincid cu poziiile erorilor din cadrul
recepionat, toate erorile vor fi interceptate. Un cod polinomial de grad n va
interceptatoatebursterrorsdelungimemaimicsauegalcun.
Polinoamecaredaurezultatebunenceeaceprivetedetectareerorilorsunt:

CRC16=x16+x15+x2+1
CRCCCITT=x16+x12+x5+1
CRC32=x32+x26+x23+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1

Arhitecturidereea:Internet
La nceputurile erei informatice sistemele de calcul erau centralizate i conineau
toateresurselenecesare.Dateleerautransferatentresistemedecalculdiferiteprin
diferitemedii(carteleperforate,benzimagnetice,discurimagnetice).
Pemsurceacrescutnumrulsistemelordecalculiarcosturilesaunclinatmai
mult dinspre hardware nspre servicii, a devenit rentabil din punct de vedere
economicconectareadirectacalculatoarelorastfelnctsfieposibilpartajarea
resurselor. Despre asta e vorba cnd vorbim despre reele. Am prezentat deja
reelelelocalencontextulcelorapteniveluridinmodelulOSI.ncontinuarevom
prezenta aspecte arhitecturale ale reelelor de calculatoare n contextul modelului
Internet.

ModelulInternet
n sistemele de telecomunicaii pot fi mai multe surse i mai multe destinaii. Un
exemplu pentru aceast form de comunicaie este o reea telefonic. Pentru ca
fiecare telefon s poat fi apelat de la orice alt telefon trebuie s existe o cale, un
canal,ntrefiecaresursidestinaie.DacexistunmiliondetelefoanenlocaiaA
iunmiliondetelefoanenlocaiaBatuncinumruldecanaledintrelocaiaAiB
trebuie s fie un milion x un milion. Din fericire nu toi cei din locaia A vor s
comunice cu toi cei din locaia B aa c un numr mult mai mic de canale este
suficient,canalecesuntpartajate.Pedealtpartetrebuiesfiecelpuinoliniedela
fiecaretelefondinlocaiaAlasediulcentralalcompanieidetelefoaneitrebuies
fiesuficienteliniintresediilecentraledinAiBpentruaputeagestionanumrul
maximdeconversaiisimultane.
Unnumrmicdeconexiunifizice(nfunciedetipuldemediudetransmisiefibr
opticsaufiretradiionale),estenecesarpentrucaconectalocaiileAiBdeoarece
nusevantmplaniciodatcasimultantoiceidinlocaiaAsapelezepecinevadin
locaia B. Capacitatea de transfer de informaie a conexiunilor (numit lime de
band) este partajat de toi utilizatorii astfel c se realizeaz o reducere
141

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

substanial a costurilor. Trebuie creat un mecanism de control care s permit


partajarealimiidebandntrunmodcorespunztor.

NivelurilensuitadeprotocoaleTCP/IP
Uninternet (cuimic) esteocolecie dereele interconectate.Internet (cuimare)
este probabil celmai cunoscut internet, care folosete protocolulTCP/IP i adrese
IP. Cele apte niveluri din modelul OSI au fost simplificate ntro oarecare msur
pentru modelul Internet, model care are doar patru niveluri, aa cum se vede n
figurademaijos.

La nivelul cel mai de jos este nivelul Legtur format din subnivelurile MAC
(MediumAccessControl)iPHY(Fizic).NivelulLegturrezolvdisputelepentru
mediul de comunicaie atunci cnd mai multe dispozitive ncearc s transmit,
gestioneaz gruparea logic a biilor n cadre de date i implementeaz protecia
mpotrivaerorilor.
Nivelul legtur este responsabil pentru transmiterea unui cadru de bii de la o
main la o alta main legat direct de ea. Aceasta funcioneaz bine ntre dou
procese aflate pe maini diferite care coopereaz. Pentru ca mai multe procese s
partajeze acelai mediu de comunicaie este nevoie de un protocol care s
coordonezedeplasaredatelordelaunproceslaaltul.Aceastaesteresponsabilitatea
niveluluiReea,careesteimplementatcuprotocolulIP(InternetProtocol).
NivelulReease ocupcu comunicaiade launpunct la altul.NivelulTransportse
ocupcucomunicaiaendtoend,ncarepotfimaimultepuncteintermediarentre
transmitor i receptor. Nivelul Transport se ocup cu retransmisia (n cazul
erorilor sau a pachetelor abandonate datorit congestionrii mediului de
comunicaie), secveniere (pachetele pot recepionate ntro ordine diferit de cea
de la transmisie), controlul fluxului, protecie mpotriva erorilor (nivelul Legtur
nu face suficient n acest sens). n Internet nivelul Transport este implementat cu
protocolulTCP(TransmissionControlProtocol).CombinaiaTCP/IPlanivelulReea
i Transport este suita de protocoale dominante n Internet. La nivelul Legtur i
Aplicaiepotfifolositeoricealteprotocoale.PentrunivelulTransportiReeaexist
ialtetipurideprotocoale.

142

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

La nivelul Aplicaie, un proces poate efectua schimb de date cuorice alt proces de
altundevadinInternetistratezeconexiuneacaicumarfiunfiierpesistemul
local, citind i scriind octei cu apeluri sistem obinuite. De regul aceste operaii
sunt implementate prin socketuri, care sunt ci de comunicaie spre reea prin
sistemuldeoperare.

AdreseInternet
Fiecare interfa pe Internet are o adres IP unic. Versiunea 4 a protocolului IP,
numit IPv4, este folosit nc pe scar larg dar este nlocuit de IPv6, care
folosete adrese de 4 ori mai mari dect IPv4 i are o serie de mbuntiri i
simplificri.UnexempludeadresIPv4nformacupuncteestedatmaijos:

165.230.140.67

Fiecare numr delimitat de caracterul punct este un numr ntreg fr semn pe 8


biidinintervalul0..255.Secvenabinarcorespunztoareadreseidemaisuseste:

10100101.11100110.10001100.01000011

Bitulcelmaidinstnga(celmaisemnificativ)determinclasadeadres.Figurade
maijosprezintcelecinciclasedeadresedinIPv4.

Clasa A are 7 bii pentru identificare reelei (ID) i 24 de bii pentru ID hostului.
Astfelpotficelmult27reeledeclasAfiecaredinelecu224hosturi.Opartedin
acesteadresesuntrezervate,aacnumruldeadresecepotfiatribuitehosturilor
estemaimicdectnumrultotaldeadreseposibile.
AdreseledeclasBfolosesc14biipentruidentificatoruldereeai16biipentru
identificatorulhosturilor.AdreseledeclasaCfolosesc21debiipentruIDulreelei
143

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

i 8 bii pentru identificatorul de host. Adresele de clas D sunt folosite pentru


grupuri multicast, la care un sistem care are adres de clas A, B sau C se poate
conecta i va primi tot traficul de reea ce este destinat grupului. Acesta este un
mecanismeficientpentrutrimitereaacelorai pachetelamaimultesisteme,fra
inunda reeaua prin broadcast i fr ca expeditorul s fie nevoit s in evidena
tuturorsistemelorconectate.AdreseledeclasEsuntrezervate.
n momentul n care toate adresele IPv4 (adrese pe 32 de bii) disponibile vor fi
atribuiteInternetulnuvamaiputeaevoluaaacestenecesaradoptareactmai
curnd a IPv6 ( acest protocol are adrese IP pe 128 de bii). n multe reele se
folosescprotocoalecepermitpartajareaadreselorIP;prinliniiledialupadreseleIP
suntatribuitedinamicdoarpeduratasesiunii.

Porturi
Un port este mijlocul prin care un proces se deschide spre exterior. Un numr de
portidentificprocesulsursiunaltnumrdeportidentificprocesuldestinaie.
Unportidentificunpunctdeintrarenreeapentruunproces.Porturiledela0la
1023suntporturibinecunoscutepentruprocesesever.Deexemplu,portultelnet
este23.PeunsistemUnix,comanda:

%telnetfs.uoradea.ro23

va conecta utilizatorul la sistemul fs.uoradea.ro. Dac portul 23 nu este prezent n


liniadecomandasevaconsideraimplicitcesteportul23.Dac23estenlocuitcu
alt port, de exemplu 13 (daytime), atunci se va ajunge la un alt serviciu, care are
comportamentdiferit.

ncapsulare
Dateledinreeasuntncapsulatepemsurcetrecprinniveluriledereeaaacum
sevedenfigurademaijos:

Dateleutilizatorsunttrimisenreeafolosindapelurisistempentrucitireiscriere
similare cu cele folosite la accesarea fiierelor. Nivelul Aplicaie trimite datele
144

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

utilizatorlanivelul Transport, undesistemuldeoperareadaugunantetTCPcare


identific porturile surs i destinaie, formnd un segment TCP. Segmentul TCP
estetransmislanivelulReea,undesegmentulTCPesterempachetatndatagrame
IP,fiecarecuunantetIPcareidentificsistemelesursidestinaie.DatagrameleIP
sunt trimise la nivelul Legtur unde datagramele sunt ncapsulate n segmente
(engl.frame)Ethernet(pentruacestexemplu).Ladestinaiearelocprocesulinvers.
Un segment TCP poate fi descompus n mai multe datagrame IP, care sunt rutate
independentprinInternet.FiecaredatagramconineadreseleIPsursidestinaie
(n antetul IP), porturile surs i destinaie (n headerul TCP) i protocolul de la
urmtorulnivel de ncapsulare (n antetul IP TCPeste doarun protocol denivel
transportfolositnInternet;maiexistialtele,deex.UDP).Aceticinciparametri
identific n mod unic fiecare datagram IP n drumul ei prin Internet, ceea ce
permitetrimitereadatagrameilaprocesuldestinatarcorect.

DNS(DomainNameSystem)
DNS este o baz de date distribuit care asociaz nume de host i adrese IP i
furnizeaz informaii pentru rutarea email. De exemplu adresa simbolic
www.uoradea.ro este asociat cu adresa IP 193.231.135.12. Mai multe nume pot fi
asociate cu aceeai adres IP. DNS este responsabil pentru interaciunea cu
programecareaunevoiedeacesteasociere.
Fiecare domeniu (cum ar fi uoradea.ro) are propria baz de date cu informaii i
ruleazunserverpecarealtesistemedinInternetlpotinteroga.AccesullaDNSse
face printrun resolver, care este integrat n rutinele de bibliotec, rutine ce sunt
linkeditatenprogrameleceacceseazreeaua.
NIC(NetworkInformationCenter)esteorganizaiacaregestioneazdomeniiletop
levelidelegautoritateapentrudomeniiledinnivelulurmtor(nivelul2).ncadrul
unei zone, un administrator local ntreine baza de date pentru serverul de nume.
Trebuiesexisteunserverdenumeprimar,careincarcbazadedatedintrun
fiieriserveredenumesecundare,careiiauinformaiadelaserverulprimar.Se
foloseteuncache,astfelnctointerogarecareprovoaccontactareaaltorservere
nuvamainecesitacontactareaulterioaraacelorservere.

WorldWideWeb
WWWesteformatdinproceseclient(browsereleWeb)iservereWebcareruleaz
http (HyperText Transfer Protocol) la nivelul Aplicaie al Internet. Ceea ce trebuie
tiuestecWWW!=Internet.WWWesteoaplicaiecreatpentruInternet.
n 1989, Tim BernersLee de la CERN (laboratorul european pentru fizica
particulelor) a dezvoltat un Web bazat pe text, pentru schimbul de documente
tehniceprintrecolegi.nfebruarie1993,NCSA(NationalCenterforSupercomputing
Applications) din cadrul Universitii Illinois a lansat o versiune grafic a
browserului Web Mosaic precum i un server http, ambele gratuite i de atunci
WWWaexplodatiaajunslaceeacetimastzi.

145

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Bridge,routeriswitch
Un hub este un punct de conexiune central pentru sisteme de calcul. Un hub se
numetebridgeatuncicndunsistemdecalculesteunalthub.Unhubdoarcopiaz
pacheteledepeointerfadereeapetoatecelelalte,aacumsenfigurademaijos
(a):

Huburile i bridgeurile nu au mult inteligen, ele fiind capabile doar s izoleze


conexiunilelaosingurreea(dacdoupacheteintrncoliziunentroreea,ceea
ceestedestuldenormaldardenedorit,semnaluldecoliziunenuestepropagatila
altereele),islimitezetrimitereaanumitortipuridetraficlaalteinterfee.
Un ruter (engl. router) conecteaz o reea laalta (fig. b) i iadecizii n legtur cu
transmiterea pachetelor dincolo de limitele unei reele. Un ruter are mai multe
interfee de reea i trimite pachetele de la o interfa la alta. Pe interfee diferite
protocoaleledereeapotsdifere.
Unrutertrimitepachetelepebazaprotocolului,pecndunswitchletrimitedoarpe
bazaadreseidedestinaie.Unswitchesteunhubdemarevitezcarenupartajeaz
limea de band (fig. c). Un switch elimin conflictele de acces la mediul de
transmisie.
Ombuntireaswitchuluiesteoreeacuautorutarencaresecreeazautomat
conexiunile sursdestinaie, pe baza adreselor din antetele pachetelor ce
traverseazreeaua.Unexempluesteunswitchcuautorutarecu4intrrii4ieiri.
Aceastasepoaterealizafolosindalgoritmulbubblesort,ncarepachetelecuceamai
micadressuntpusenparteadesus,prininterschimbareapachetelornvecinate,
pachetelecuceamaimareadresajungndnparteadejos.Pentruncanale,trebuie
fcute n(n1)/2 comparaii. Pentru n = 4 numrul de comparaii ce trebuie fcute
este 6, ceea ce nseamn c avem nevoie de 6 circuite de comparaie. Switchul
corespunztoresteprezentatnfigurademaijos:
146

Universitatea din Oradea, Facultatea de tiine, sem I, 2009-2010


Departamentul de Matematic i Informatic
Suport de curs pentru disciplina Arhitectura sistemelor de calcul
Specializarea: Informatic anul I Lector univ. dr. Horea Oros

Pachetelenesortateintrnparteastngiiessortatenpartedreaptdupadresa
dedesetinaie.

Concluzii
Comunicaia implic transferul informaiei ntre sisteme. Ca o regul, datele sunt
transmiseserialdeoareceexistontotdeaunaontrzierelatransferuldedateprin
reeleledemarevitez.Totuischemeledemodularepermitcodificareamaimultor
bii ntro singur unitate de transfer. Alegerea schemei de modulare influeneaz
apariia erorilor la transferul de informaie. Detecia i corecia erorilor sunt
posibileprin redundan,ceeacepresupuneexistenamaimultor secvenedebii
dectnumrulmaximdesecvenedebiivalide.Dacosecvendebiinuareun
singurcuvntvalidcelmaiapropiat,atuncidetectareaeroriiesteposibildarnui
corectarea.Dacfiecaresecvendebiipoateficreatdintrosingursecvende
biivalidatuncicorectareaeroriiesteposibil.
ReeleleLANgestioneazcomplexitateafolosindniveluricesuntbazatepemodelul
OSI. Reelele locale sunt conectate la reele WAN, n principal reeaua Internet.
Reeaua Internet se bazeaz pe suita de protocoale TCP/IP. Datele utilizator sunt
ncapsulate la nivelurile Aplicaie, Transport, Reea iLegtur i sunt trimise prin
Internet i decapsulate la destinaie. n drumul lor nspre destinaie, datele
traverseazoseriedemediidetransmisie,caredifernlimedebandidistana
maximlacaresepottransferadatele.

147

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