Arh Sist Calcul

  • Published on
    13-Aug-2015

  • View
    41

  • Download
    6

Embed Size (px)

DESCRIPTION

sisteme calcul

Transcript

<p>UNIVERSITATEA SPIRU HARETFacultatea de Matematic - Informatic Platforma BLACKBOARD Codul cursului: Mmi1205 Denumirea cursului: Arhitectura Tip curs: Obligatoriu Durata cursului / Nr. Credite: semestrul 1 / 4 credite Perioada de accesare a cursului: 1 oct 2006 - 1 oct 2007 Manualul recomandat: Arhitectura Sistemelor de calcul, Editura FRM, sub tipar Obiectivul principal al cursului: Dobndirea de cunotinte, aptitudini i competene privind bazele aritmetice, logice i arhitecturale ale sistemelor de calcul precum i iniiere n programarea n limbaj de asamblare (a procesorului MMIX). Modul de stabilire a notei finale: 6u x 3p + 10m x 5p + 4d x 8p = 100p. n final se mparte numrul de puncte la 10 i se rotunjete la ntreg. ZI - Verificare (se va lua n considerare i activitatea desfurat n cadrul laboratorului cu ponderea de 50%) FR, ID - examen la calculator 6 ntrebri uoare, 10 ntrebri de nivel mediu i 4 ntrebri difcile). Consultaii pentru studeni: Mari, 7.30 - 16.00 Adrese e-mail responsabil pentru contactul cu studenii: info@spiruharet.ro Titularul/titularii cursului / serie ZI, FR, ID (matematic, informatic) Prof. Univ. Dr. Albeanu Grigore Grigore.Albeanu@gmail.com Str. Ion Ghica, Facultatea de matematic-informatic Ma, 7.30-16 2. Coninutul tematic al cursului 0. INTRODUCERE 1. BAZELE ARITMETICE ALE SISTEMELOR DE CALCUL 1.1. Sisteme de numeraie 1.2. Coduri 1.3. Reprezentarea numerelor ntregi 1.4. Reprezentarea IEEE 754 2. BAZELE LOGICE ALE SISTEMELOR DE CALCUL 2.1. Latici i algebre Boole 2.2. Funcii booleene. Forme normale 2.3. Aplicaii 3. STRUCTURA SISTEMELOR DE CALCUL 3.1. Resursele fizice ale sistemelor de calcul 3.1.1. Generaii de calculatoare 3.1.2. Procesor. Caracteristici. Set de instruciuni 3.1.3. Memorii 3.1.4. Dispozitive periferice</p> <p>Sistemelor de Calcul</p> <p>3.1.5. Viteza de procesare 3.1.6. Clasificarea sistemelor de calcul 3.1.7. Modelarea sistemelor digitale 3.2. Resursele logice ale sistemelor de calcul 3.2.1 Introducere n sisteme de operare 3.2.2. Iniiere n utilizarea sistemelor de calcul bazate pe UNIX 3.2.3. Iniiere n utilizarea PC/Windows 3.2.4. Resurse logice privind programarea calculatoarelor 4. CALCULATORUL MMIX 4.1. Instruciunile calculatorului MMIX 4.2. Programarea calculatorului MMIX 3. Bibliografie minim obligatorie [1] D. Knuth, Arta programrii calculatoarelor: MMIX - un calculator RISC pentru noul mileniu, Editura Teora, 2005 [2 ] A.S. Tanenbaum, Organizarea structural a calculatoarelor, Computer Press Agora, 1999 [3] J. Henessy &amp; D. Patterson, Computer Architecture: a Quantitative Approach, Morgan Kaufman, 2002. [4] G. Albeanu, Arhitectura Sistemelor de Calcul, Editura FRM (sub tipar) 4. Bibliografie facultativ [5] G. Albeanu, Sisteme de operare, Editura Petrion, Bucureti, 1996, ISBN 973-9116-04-3. [6] D. Knuth, Arta programrii calculatoarelor, Vol. I, Editura Teora, 1999, ISBN 973-601910-1. [7] D. Knuth, MMIXware. Lecture Notes in Computer Science, Vol. 1750, Springer Verlag, 1999. 5. Prezentarea cursului: Materialul este organizat n patru capitole, conform programei. Va fi prezentat capitol cu capitol pentru o mai uoar urmrire: ASC_capitol?.pdf, ASC_bibliografie.pdf. 6. Aplicaii: Fiecare capitol cuprinde exemple, studii de caz, teme de cas, teste. Terminologia este explicat acolo unde apare prima dat. Capitolul urmtor, dac depinde de cele anterioare, utilizeaz, tacit, definiiile, formulele de calcul i teoremele prezentate n capitolele anterioare. 7. Exemple de teste de autoevaluare: La sfritul fiecrei uniti de studiu (capitol), cursantul gsete exerciii al cror rspuns este prezentat. Prin aceasta se asigur o autoevaluare continu. A se vedea test_autoevaluare?.pdf 8. Evaluarea computerizat sub form de teste de tip gril: Sunt incluse teste similare celor prezentate n finalul fiecrei uniti sau in fiierul ASC_lista_probleme_propuse.pdf. ntrebrile sunt clasificate n uoare (u), medii (m) i dificile (d).</p> <p>ARHITECTURA SISTEMELOR DE CALCUL Prof. univ. dr. GRIGORE ALBEANU INTRODUCERESistemele de calcul au evoluat continuu, iar aceast evoluie continu s ne uimeasc. Materialul urmtor ncearc sa capteze att bazele matematice ale sistemelor de calcul (utile oricrui programator), ct i s prezinte o radiografie a principalelor concepte interesante att pentru utilizatori ct i pentru programatori. Pare surprinztor c se acord importan major bazelor de numeraie i funciilor booleene, dar orice utilizator/programator, mai devreme sau mai trziu, va avea nevoie de acestea. Stabilirea culorilor n realizarea paginilor HTML necesit cunoaterea sistemului hexazecimal, cutarea de informaie folosind motorul Google necesit utilizarea cuvintelor AND, OR etc. (deci a operaiilor logice). Sistemele de calcul au fost proiectate, iniial, pentru calcule tiinifice. Ori, reprezentarea IEEE 754 este doar unul dintre modelele de reprezentare a numerelor reale. Dac vrem s programm eficient trebuie s simplificm expresiile logice, s nelegem modul de funcionare a unui sistem de calcul particular. Iat, de ce este important s extindei cunoaterea dincolo de acest material. Resursele bibliografice i notele de subsol v dau doar cteva direcii. Partea a treia este doar pentru utilizatori, dar un programator are nevoie s cunoasc mult mai mult dect ofer prezentul material. Vei spune c nu este nevoie de UNIX pentru c Windows este sistemul de operare preferat. Nici o problem! Mai devreme sau mai trziu vei avea ocazia s utilizai i alte sisteme de calcul dect calculatoarele personale. Vei fi surprini s aflai ct de multe tipuri de sisteme de calcul / operare exist. Calculatorul MMIX este, deocamdat, unul virtual. Dar cte experimente se pot face. Aici putei nelege, c nainte de a avea un calculator pentru asamblat, acesta este proiectat (funcionarea acestuia fiind simulat pe alte sisteme existente deja), simulat, fabricat, testat i apoi multiplicat (eventual n clone precum calculatoarele IBM/PC). Prezentul material este structurat n patru pri. Prima parte se ocup de modaliti de reprezentare a datelor n sistemele de calcul. Att pentru numere naturale, numere ntregi ct i pentru numere raionale, sistemul binar se impune. Programatorii au nevoie, ns, i de sistemele hexazecimal sau octal. Complementul fa de doi, reprezentarea IEEE 754 nu trebuie s lipseasc din pregtirea informaticienilor. Ele v permit s nelegei tipurile de date cu care opereaz limbajele de programare (inclusiv cele care manipuleaz obiecte) precum i operaiile cu aceste date. Capitolul al doilea, aparent teoretic, are aplicaii majore n proiectarea sistemelor digitale i a optimizrii calculului. Seciunea 3.1.7 reprezint doar o introducere. Seciunea a treia este un sumar al tuturor componentelor unui sistem de calcul. El poate fi oricnd extins n funcie de noile tehnologii informaionale. Au fost introduse modurile de utilizare UNIX/Windows pentru c acestea domin piaa actual. Aceasta nu face ca cel care parcurge materialul s nu se poat descurca i cu alte sisteme de calcul. Experiena de utilizare / programare se poate mbuntii numai prin exerciiu, prin experiment. Instruciunile INTEL pot fi analizate folosind DEBUG (comand extern a oricrui sistem Microsoft), comenzile externe Windows pot fi studiate folosind Windows NT/2000/XP n mod text, iar comenzile UNIX prezentate pot fi experimentate cu orice versiune de Linux. Eventuale resurse necesare experimentrii MMIX pot fi obinute folosind referinele menionate n text. Bibliografia este minimal, ea poate fi completat cu alte referine i va fi permanent actualizat. Sistemele de calcul evolueaz permanent. Este o realitate!</p> <p>1. BAZELE ARITMETICE ALE SISTEMELOR DE CALCUL1.1. Sisteme de numeraiePentru prelucrarea datelor, omul lucreaz n sistemul de numeraie zecimal, folosind cele 10 simboluri: 0, 1, 2, ..., 9, numite cifre (eng. digits). Pentru domeniul sistemelor de calcul digitale1, cele mai importante sisteme de numeraie sunt: binar, octal i hexazecimal. Sistemul binar folosete baza de numeraie 2 (0 + 1 = 1 + 0 = 1; 0 + 0 = 0; 1 + 1 = (10)2 = 2 (n baza 10); 0 x 0 = 1 x 0 = 0 x 1 = 0, 1 x 1 = 1). Sistemul octal, cu baza opt, folosete simbolurile: 0, 1, ..., 7. Baza de numeraie a sistemului hexazecimal este 16, iar simbolurile folosite sunt: 0, 1, ..., 9, a, b, c, d, e, f. Se pot utiliza prin coresponden biunivoc - i simbolurile A, B, C, D, E, F cu semnificaia simbolurilor a, b, c, d, e, f. Datorit modului poziional, de lucru, indiferent de sistemul de numeraie utilizat, realizarea operaiilor aritmetice urmeaz acelai algoritm2 (de exemplu, la adunare se face transport de la ordinul curent la ordinul imediat superior. Procesul privind transformarea reprezentrilor exprimate n sisteme de numeraie se numete conversie. Referitor la sistemele de numeraie, descriem cteva metode de conversie i algoritmii de calcul corespunztori3. Codificarea unui numr real ntr-o baz de numeraie b (b 2), se bazeaz pe operaiile de mprire i nmulire aplicate numerelor ntregi. Pentru a converti un numr real format din parte ntreag i parte fracionar, din scrierea zecimal, n baza b (b 2), se procedeaz astfel: 1. se mparte (conform teoremei mpririi cu rest4) la b, partea ntreag i cturile obinute dup fiecare mprire, pn se obine ctul zero. Rezultatul conversiei este constituit din resturile obinute, luate n ordine invers apariiei acestora. 2. se nmulete cu b, partea fracionar5 i toate prile fracionare obinute din produsul anterior, pn cnd partea fracionar este nul sau a fost obinut numrul de cifre dorit. Rezultatul conversiei prii fracionare este constituit din prile ntregi6 ale produselor, luate n ordinea apariiei.</p> <p>Un sistem de calcul (calculator) este o structur destinat prelucrrii datelor. El este alctuit din resurse fizice (hardware), resurse logice (software) i resurse informaionale (fiiere de configurare, registre de profil etc.) care coopereaz pentru satisfacerea cerinelor utilizatorilor privind introducerea, memorarea (stocarea), prelucrarea, transmiterea (ctre un alt sistem de calcul), precum i regsirea (prin interogare) datelor. Se face distincie ntre sistemele de calcul digitale (numerice) i sistemele de calcul analogice. 2 Un algoritm este o reet care descrie un proces de calcul i este asociat rezolvrii problemelor decidabile. 3 Bazele de numeraie i vor dovedi utilitatea att n contextul programrii calculatoarelor (limbaj de asamblare, limbajul C, limbajul C++ etc.), ct i n contextul utilizrii calculatoarelor (de exemplu, la specificarea culorii textului cnd se realizeaz pagini Web: pentru culoarea avnd structura 40% rou, 20% verde i 40% albastru, se obine 40% din 255 = 102 = #66; 20% din 255 = 51 = #33, iar codul final al culorii se obine prin concatenare: #663366). 4 Teorema mpririi cu rest: dac a (demprit) i b (mpritor) sunt numere ntregi (b nenul), atunci exist i sunt unice numerele ntregi q (ctul) i r (restul), astfel nct a = b x q + r, 0 r &lt; |b|, unde |b| reprezint modulul (valoarea absolut) a numrului b. 5 Partea fracionar a unui numr real a, notat {a}, este diferen dintre numrul a i partea sa ntreag, notat [a], adic {a} = a [a]. 6 Conform principiului lui Arhimede, pentru orice numr real pozitiv x i pentru orice numr real a, exist un numr ntreg n, unic, astfel nct (n-1)x a &lt; nx. Pentru x = 1, numrul ntreg n se numete partea ntreag a numrului a i se noteaz cu [a]. Deci, [a] este cel mai mic numr ntreg mai mic sau egal cu a: [a] a &lt; [a]+1.1</p> <p>Conversia binar a numrului zecimal 24,25 este 11000,01. Numrul zecimal 2002,2003 este reprezentat n sistem octal cu 10 poziii n partea fracionar (b = 8) prin irul: 3722,1464011651. Numrul zecimal 1961,25 este reprezentat n format hexazecimal (b = 16) prin irul: 7A9,4. Pentru a transforma un ir de simboluri ale sistemului de numeraie n baza b (b 2), n zecimal, se va calcula suma produselor dintre cifra corespunzatoare (din ir) i baza7 ridicat la puterea specificat de poziia acesteia. Trebuie observat c poziiile sunt indicate: 1. pentru partea ntreag, de la dreapta la stnga, prin numerele 0, 1, .a.m.d. 2. pentru partea fracionar, de la stnga la dreapta, prin numerele: -1, -2, .a.m.d. irul binar 01100110101,10101 corespunde numrului zecimal: 821,65625 (= 1x29 + 1x28 + 0x27 + 0x26 + 1x25 + 1x24 + 0x23 + 1x22 +0x21 +1x20 +1x2-1 +0x2-2 +1x2-3 +0x2-4 +1x2-5). irul octal 765,567 corespunde numrului zecimal: 501,732421875. irul hexazecimal 3A5,4 reprezint numrul zecimal 933,25. Conversia din binar n octal, hexazecimal i invers se bazeaz pe observaia conform creia 8 = 23 i 16 = 24, Astfel, folosind proprietile de calcul, se obine o strategie de conversie automat ntre aceste sisteme. Conversia binar octal, respectiv octal binar folosete corespondena: Octal: Binar: 0 000 1 001 2 010 3 011 4 100 5 101 6 110 7 111</p> <p>Conversia binar hexazecimal, respectic hexazecimal binar, folosete corespondena: Hexazecimal: 0 1 2 3 4 5 6 7 Binar: 0000 0001 0010 0011 0100 0101 0110 0111 Hexazecimal: 8 9 A B C D E F Binar: 1000 1001 1010 1011 1100 1101 1110 1111 irul cu 64de poziii binare: 0111.0110.1110.1101.1011.1011.1010.1010.1110.1011.0101.0101.0101.0101.0101.0111 se va traduce n irul octal: 0733555672535325252527, respectiv n irul hexazecimal: 76EDBBAAEB555557. Se observ rolul sistemului binar ca sistem intermediar de conversie pentru sistemele de numeraie n care baza este o putere a numrului doi. Operaiile aritmetice cu numere binare, octale, respectiv hexazecimale se efectueaz similar operaiilor cu numere zecimale. La adunare va interveni transportul ctre ordinul superior, la scdere va interveni mprumutul de la ordinul superior, iar nmulirea se va desfura prin totalizarea unor produse pariale, analog modului de calcul zecimal. Pentru numere octale i hexazecimale, operaiile aritmetice sunt efectuate conform urmtoarelor reguli: Tabla adunrii octale:</p> <p>7</p> <p>Aici este vorba de numrul b (baza de numeraie considerat; b 2)</p> <p>Tabla nmulirii octale:</p> <p>Tabla adunrii hexazecimale:</p> <p>Tabla nmulirii hexazecimale:</p> <p>Exemple: 10110011 + 111110 = 11110001 (baza 2); 34022,56-1234,11=32566,45 (baza 8); 5DA2 x B8 = 434C70 (baza 16). Efectuai operaiile artnd modul de calcul.</p> <p>1.2. CoduriFie A i B dou mulimi nevide i B mulimea (infinit a) irurilor (numite i cuvinte nevide peste B) formate cu elemente din B (n calitate de alfabet). Practic, un cuvnt peste alfabetul B este o secven finit de simboluri din B: w = a1a2...ak, k 1, ai B, 1 i k. Numrul k reprezint lungimea cuvntului w, notat i prin |w|. Mulimea tuturor cuvintelor peste B, la care se adaug cuvntul de lungime zero (cuvntul vid), identificat prin , se noteaz cu B*, adic B* = B+ {}. Prin codificare a elementelor mulimii A cu ajutorul elementelor mulimii B nelegem determinarea unei funcii injective, , numit cod, definit pe mulimea A cu valori * n mulimea B . Uneori, se numete cod chiar imaginea mulimii A, notat (A), prin funcia de codificare. Codurile n care sunt reprezentate numai numere se numesc coduri numerice, iar cele care cuprind numere, literele i celelalte semne se numesc coduri alfanumerice. Altfel spus, un cod este un set de simboluri elementare mpreun cu o serie de reguli potrivit crora s...</p>