Sunteți pe pagina 1din 147

UNIVERSITATEADINORADEA FACULTATEADETIINE

ArhitecturaSistemelor deCalcul
[suportdecurs]
Lect.univ.dr.HoreaOros [anuniv.20092010]

[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 =

i = m

b k
i

n 1

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 Punctul zecimal

Trei cifre n baza 16

Pentrualreprezentape(358)10nacestformatprocedmnfelulurmtor: Primulpasesteconvertireanumruluinvirgulfixdinbazaoriginalntrun numrnvirgulfixnbazaint.Conversianumruluidinbaza10nbaza16se faceastfel: Ctul Restul 358/16 = 22 6 22/16= 1 6 1/16 = 0 1 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 1 1 0
3 Exponentul

Bitul de semn (+)

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 1 1 0
3 Exponentul

Bitul de semn (+)

6 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

Aicisafolositreprezentareapentruunnumrmic,nloculreprezentriipentru celmaimicnumrdeoarecediferenadintrezeroiprimulnumrreprezentabil esteuncazparticular. Exemplu: Sseconverteasc(9.375x102)10nbaza2notaietiinific.Rezultatultrebuies aibformax.yyx2z. Primadatconvertimnumruldinreprezentareanvirgulmobilnreprezentarea nvirgulfixprinmutareapunctuluizecimalcudoupoziiiladreaptaiobinem: 0.09375.Maiapoiconvertimnumruldinbazazecereprezentarevirgulfixn baza2reprezentarevirgulfixprinmetodanmulirii: 31

Distan mic Numr mic

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 Index 0 1 2 3 4 5 6 7 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 A B C F 1 00 0-side 1-side

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.

A balance tips to the left or right depending on whether there are more 0s or 1s.

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

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

Aritmetic Control

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: 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.
ld[%fp12],%r1

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;

baTest True:add%r3,1,%r3

sepoateimplementaeficientnasamblareastfel:

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 ld [y], %r2 addcc %r1,%r2,%r3 st %r3, [z] jmpl %r15+4, %r0 15 9 0 1100 0010 0000 0000 0010 1000 0001 0100 1100 0100 0000 0000 0010 1000 0001 1000 1000 0110 1000 0000 0100 0000 0000 0010 1100 0110 0010 0000 0010 1000 0001 1100 1000 0001 1100 0011 1110 0000 0000 0100 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

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.

La receptor

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
Comunicaiaopticesteimunlainterfereneelectromagneticeisuportolime 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

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

Biii de verificare

Poziia biilor Biii de verificare

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:

Paritate impar par impar par

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.Nivelul Transportse 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