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: [email protected] Titularul/titularii cursului / serie ZI, FR, ID (matematic, informatic) Prof. Univ. Dr. Albeanu Grigore [email protected] 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
Sistemelor de Calcul
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 & 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).
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!
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.
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 < |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 < 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 < [a]+1.1
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
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:
7
Aici este vorba de numrul b (baza de numeraie considerat; b 2)
Tabla nmulirii octale:
Tabla adunrii hexazecimale:
Tabla nmulirii hexazecimale:
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.
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 se formeaz aceste simboluri. Codificarea reprezint procesul de stabilire a unui cod. Dac mulimea A are n elemente, ne intereseaz determinarea lungimii codului, adic lungimea maxim a secvenei din B* pentru a se putea codifica toate cele n obiecte. Dac toate cuvintele din B* au aceeai lungime codul se numete uniform. O codificare : A B* n care toate cuvintele-cod (x), x A, au lungimea constant k se numete codificare bloc de lungime k, iar (A) este un cod bloc de lungime k. Mulimea codurilor bloc conine codul ASCII, codul Unicode, codul ISBN etc. ). Codul ASCII (eng. American Standard Code for Information Interchange) - n englez pronunat as-key - este cel mai popular cod utilizat n transmiterea datelor. Codul ISBN (eng. International Standard Book Number) este un cod folosit de toate editurile din lume, fiecare carte avnd codul su unic (compus dintr-un prefix, codul rii, codul editurii, codul publicaiei i cifra de control). Pentru cazul sistemelor de calcul, mulimea B este format din simbolurile unui sistem de numeraie, iar lungimea codului depinde de natura obiectelor mulimii A. Dac B are numai dou simboluri se obine codificarea binar. Un mesaj m este un element (ir) din A*: m = m1m2...m|m|. Codificarea mesajului m se obine prin concatearea irurilor (m1), (m2), ..., (m|m|). Evident mesajul vid se codific prin cuvntul vid. Codurile pot fi alfanumerice i grafice (folosind imagini). Un exemplu de cod nenumeric, foarte popular, este codul de bare (eng. bar code), utilizat n supermagazine. n cazul transferului datelor ntre sisteme de calcul pot aprea erori. De aceea se utilizeaz coduri de control cu posibilitatea detectrii i corectrii erorilor. Mai precis, se ataeaz cifre binare (de control) la emisia mesajului, recepia fiind responsabil de controlul modului de respectare a corectitudinii mesajului. Cele mai utilizate procedee pentru detectarea erorilor sunt: codurile pentru controlul paritii i codurile polinomiale ciclice. Din cele de mai sus rezult c datele sunt reprezentarea fizic (prin intermediul codului) a entitilor din care este compus informaia (cifre, litere, semne speciale, imagini, sunete etc.) pentru ca aceasta s poat fi stocat, prelucrat sau transmis. Din punct de vedere logic, unei date i se asociaz un identificator (simbol sau nume pentru diferenierea de alte date i pentru referirea acesteia). n vederea prelucrrii, datelor le sunt asociate atribute precum: tipul datei (numeric: ntreg sau real; logic; ir de caractere; enumerare, adres etc.), precizia reprezentrii interne i modul de vizualizare (poziie, aliniere, corpul simbolului, dimensiunea etc). n timpul prelucrrii unele date i pstreaz valoarea iniial (se numesc constante), iar altele se modific n timp (se numesc variabile). Constantele hexazecimale vor fi scrise cu ajutorul unuia dintre prefixele 0x, 0X, respectiv #, dup care va urma secvena simbolurilor 0..9, a-f sau A-F. Constantele octale vor fi descrise prin utilizarea prefixului 0. n lipsa acestor prefixe, constantele numerice vor fi considerate ca fiind de tip zecimal (n baza 10). Prin caracter se nelege un element al codului ASCII (sau Unicode), iar un ir de caractere, de obicei este ncheiat cu un cod special. Mai multe detalii vor fi prezentate, n seciunea 5, n conexiune direct cu programarea procesoarelor.+
1.3. Reprezentarea numerelor ntregiPrimele maini de calcul (n special mecanice) au folosit sistemul de numeraie zecimal. La baza tehnicii calculului electronic au stat rezultatele obinute n cadrul teoriei informaiei i n domeniul circuitelor electronice active. Cercetrile ntreprinse, au artat c sistemul de numeraie potrivit calculatoarelor digitale este cel binar, adic orice informaie, orict de complex este, poate fi exprimat prin informaii elementare. Informaia elementar este numit bit (eng. binary digit). Un bit este descris prin una din cifrele binare: 0, 1. Biii se pot grupa formnd un nyp (2 bii; denumire8 dat de Gregor N. Purdy, conform D. Knuth (2005) ), niblle (patru bii), octet (opt bii; eng. byte; denumire stabilit n 1956 de Dr. Werner Buchholz de la IBM) etc. Urmtoarele secvene de mai muli octei sunt foarte importante: wyde (doi octei), tetrabytes (patru octei), octabytes (opt octei). Intern, ceea ce prelucreaz un calculator numeric este un ir de cifre binare. Aceste iruri fr a avea vreo semnificaie se numesc date. ntr-un calculator, informaia reprezentat codificat formeaz mulimea datelor. Pentru a modela sistemul de numeraie binar, trebuie utilizat un mecanism cu dou stri (un comutator). Prin urmare, calculatorul poate fi privit ca un ansamblu de circuite electrice, electronice i pri mecanice, ansamblu numit hardware9. Prelucrarea datelor este realizat de programe, compuse din comenzi numite instruciuni. Totalitatea programelor poart numele de software10. Se pot efectua operaii de evaluare sau de transfer (cazul reelelor de calculatoare). Sistemele de calcul utilizeaz cel mai frecvent coduri alfanumerice cu 7, 8 i 16 cifre binare care permit reprezentarea a 128 (ASCII), 256 (Latin-1 sau ISO 8859-1), respectiv 65536 (Unicode sau ISO/IEC 10646 UCS-2) obiecte (cifre, litere, caractere speciale. Valorile din domeniul 0..31 ale codului ASCII descriu elemente de control, valorile din domeniul 32..126 descriu simboluri imprimabile (semne speciale, litere, cifre), iar valoarea 127 reprezint codul elementului de control DEL. n tabelul de mai jos este prezentat codul ASCII n exprimarea hexazecimal (de exemplu, #41 = 65, reprezint caracterul 'A', iar #20 = 32 = SP este caracterul 'spaiu'.)
Codurile numerice ofer posibilitatea reprezentrii numerelor folosind sistemul binar. Reprezentarea numerelor n acest sistem se face n mai multe forme, n funcie de mulimea8
Alte denumiri sunt: crumb, quad, quarter, tayste, tydbit, conform http://www.fullbooks.com/TheNew-Hacker-s-Dictionary-version-4-2.html, http://dictionary.reference.com/browse/crumb etc. 9 Cuvntul hardware descrie totalitatea resurselor fizice ale unui sistem de calcul. Conform dicionarului de informatic [DINF1981], hardware (din limba englez) reprezint un "termen general desemnnd circuitele, dispozitivele i echipamentele componente ale unui sistem de calcul", adic "toate unitile fizice existente, cu funcii bine determinate, n cadrul unui sistem de calcul; funciile sale, specificate de ctre fabricant, sunt la dispoziia utilizatorului care le poate exploata cum dorete." Cuvntul software descrie att programele de baz ct i pe cele aplicative. Conform [DINF1981], software (din limba englez) reprezint un "termen utilizat pentru a desemna: a) totalitatea programelor cu care este echipat un sistem de calcul; b) preocuprile corespunztoare realizrii produselor program i, n cel mai larg sens, analizei i cercetrilor efectuate n raport cu activitile conexe realizrii programelor."10
creia i aparin numerele, operaiile aritmetice fiind efectuate de ctre dispozitive aritmetice specializate (sumatoare, multiplicatoare etc.). Reprezentarea numerelor naturale se realizeaz pe un numr fix de poziii binare (de regul 8, 16, 32, sau 64) prin conversia numrului zecimal n baza 2. Pentru numrul natural x, aceast reprezentare este numit reprezentare aritmetic i furnizeaz aa numitul cod direct cd(x). Prin utilizarea a n poziii binare (n 1) se pot reprezenta aritmetic toate numerele naturale din plaja: 0 .. 2n-1. Se spune c aceste date sunt fr semn (eng. unsigned). Domeniile de valori acoperite de reprezentarea aritmetic sunt: unsigned byte unsigned wyde unsigned tetra unsigned octa 0 .. 255 0 .. 65.535 0 .. 4.294.967.295 0 .. 18.446.744.073.709.551.615
Reprezentarea numerelor ntregi (eng. signed)- numit i reprezentare algebric este asemntoare reprezentrii numerelor naturale, cu deosebirea c prima poziie este ocupat de semnul numrului ntreg, iar celelalte simboluri se obin n urma unei transformri bit cu bit. De obicei, reprezentarea unui numr ntreg negativ x utilizeaz codul complementar fa de doi c2(x) = c1(cd(|x|))+1, unde c1 asociaz oricrei secvene binare, irul obinut prin schimbarea lui 0 n 1 i a lui 1 n 0 (aa numitul cod invers sau complement fa de unu). n plus11, c2(x) = 2n +x, dac primul bit din c2(x) este 1 (x < 0). Cunoscnd numrul n (n 1) de poziii binare pe care se reprezint un numr ntreg n forma algebric, plaja numerelor care admit o reprezentare n cod complementar este -2n-1 .. 2n-1-1. Codul complementar este potrivit pentru aplicaii deoarece operaia de scdere este transformat n operaie de adunare conform formulei: a - b = a + (-b), iar scztorul este reprezentat n cod complementar. Dac rezultatul scderii este un numr negativ, acesta este reprezentat tot n cod complementar. Dac apare transport de la poziia alocat semnului, acesta se ignor. Domeniile de valori12 acoperite de reprezentarea algebric sunt: signed byte signed wyde signed tetra signed octa -128 .. 127 -32.768 .. 32.767 -2.147.483.648 .. 2.147.483.647 -9.223.372.036.854.775.808 .. 9.223.372.036.854.775.807
1.4. Reprezentarea IEEE 754Numerele reale (mai precis numerele raionale) se reprezint sub form fracionar prin intermediul codificrii n virgul mobil. Operaiile aritmetice cu numere n virgul mobil sunt, fie realizate software (biblioteca metodelor de calcul numit i API (eng. Application Programmer Interface)), fie prin intermediul unor dispozitive electronice specializate (procesoare de calcul n virgul mobil; FPU Floating Point Unit). Fie q i b numere naturale nenule, iar x R dat. Numim reprezentare cu virgul mobil a numrului x, cu excesul q, n baza b, perechea (e, f) cu semnificaia: x = fbe-q i f1 este baza unui sistem de numeraie, iar x y e(x) > e(y) sau ( e(x) = e(y) i f(x) > f(y) ). Despre un numr cu virgul mobil (e, f) se spune c este reprezentat normalizat dac cifra cea mai semnificativ a reprezentrii componentei f este nenul, adic 1/b f1. Pentru sistemele de calcul pentru care b = 2, n anul 1985, a fost elaborat standardul IEEE 754. Un numr n virgul mobil este reprezentat cu ajutorul a c+m+1 bii (un bit pentru semn, m bii pentru partea fracionar i c bii pentru reprezentarea lui e-q (numit i caracteristic)) astfel nct numrul c+m+1 s fie un multiplu al lungimii cuvntului sistemului de calcul. Exemplificm implementarea reprezentrilor n virgul mobil IEEE 754 pe 64 de bii (tipul de date double al limbajului Java). NaN, respectiv Inf sunt coduri care descriu nederminarea, respectiv (infinit). Cei 64 de bii sunt repartizai astfel: b63 - bit de semn, biii b52-b62 - caracteristica, iar biii b0-b51 pentru reprezentarea prii fracionare. Valoarea numrului reprezentat astfel, se obine dup cum urmeaz: D1: Dac 0 < c < 2047 atunci fl(x) = (-1)s.2(c-1023).(1.f). D2: Dac c = 0 i f 0 atunci fl(x) = (-1)s.2(c-1022). (0.f). D3: Dac c = 0 i f = 0 atunci fl(x) = (-1)s.0. D4: Dac c = 2047 i f = 0 atunci fl(x) = (-1)sInf. D5: Dac c = 2047 i f 0 atunci fl(x) =(-1)s NaN. Ilustrm aplicarea regulilor de mai sus pentru numrul 3.14. Folosind schema din 1.1 obinem: 3 = (11)2; 0.14 = 0.0(01000111101011100001) adic un numr binar periodic mixt. Astfel irul 11,0010001111010111000010100011110101110000101000111101011100001... este transformat n 21 x 1,10010001111010111000010100011110101110000101000111101011100001 ... ceea ce duce la - bitul de semn: 0 - caracteristica: x-1023=1 x = 1024 = (1000000000)2 - mantisa este: 10010001111010111000010100011110101110000101000111101011100001... cu pstrarea a exact 52 de poziii n reprezentarea cu trunchiere, respectiv 1001000111101011100001010001111010111000010100011111, n reprezentarea cu rotunjire. Prin asamblarea celor 64 de bii, pentru modelul cu rotunjire, se obine reprezentarea IEEE 754 a numrului 3.14, pe 64 de bii, cu afiare n sistemul de numeraie hexazecimal: 40091EB851EB851F. Totui, transformarea invers a irului 11,00100011110101110000101000111101011100001010001111 din baza 2 n baza 10 nu va duce la obinerea cu exactitate a numrului 3.14, n nici una din variantele posibile (cu rotunjire sau cu trunchiere), deoarece reprezentarea n baza doi a numrului 3.14 este infinit, iar irul de mai sus este unul finit. Alte exemple de aproximri IEEE 754 sunt date n tabelul urmtor: Numrul zecimal -3.14 0.6 0.1 -0.1 Reprezentare hexazecimal (cu rotunjire) C0091EB851EB851F 3FE3333333333333 3FB999999999999A BFB999999999999A
De reinut c dei adunarea/nmulirea sunt operaii interne i este satisfcut proprietatea de comutativitate, acestea nu sunt asociative. nmulirea nu este distributiv fa de adunare, sunt probleme cu existena opusului (pentru NaN) i cu relaia de monotonie.
1.5. Exerciii1. Numrul zecimal 0,6 se reprezint cu exactitate n memoria sistemelor de calcul binare. Aceast afirmaie este:a. b. adevrat ntotdeauna fals ntotdeauna c. d. adevrat pentru microprocesoare INTEL adevrat pentru procesoarele supercalculatoarelor
Rspuns: b) Numrul zecimal 0.6 are o reprezentare binar infint. Lungimea reprezentrii n sistemele de calcul este finit, deci se pierd o infinitate de poziii nenule, astfel c diferena dintre 0.6 i reprezentarea sa este nenul. 2. Conversia binar a numrului zecimal 24,25 este:a. b. 00100100,00100101 11000,01 c. d. 00100101,00100100 10,00011
Rspuns: b) Se aplic algoritmul de conversie a unui numr real, scris n baza 10, ntr-o baz de numeraie b (b >1). 3. Numrul zecimal reprezentat binar prin 101011,101 este:a. b. 12,345 c. 34,125 d. 43,625 nici una dintre variantele anterioare
Rspuns: c) Se aplic algoritmul de conversie n baza 10 a unui numr scris n baza b (b > 1). 4. n cazul reprezentrii cu semn (complement fa de doi) pe 16 bii (signed wyde) , afirmaia 32767 + 2 = -32767 este:a. adevrat b. fals
Rspuns: a) Complementul fa de doi al unui numr negativ este succesorul complementului fa de unu al valorii absolute a numrului. Pentru lungimea i tipul de reprezentare menionate, 32767+1 = -32768, iar 32767 + 2 = -32767. 5. Rezultatul operaiei 32 - 41 cu reprezentare n cod complementar (fa de doi) pe 8 cifre binare a scztorului este:a. b. 11110111 00001001 c. d. 10001001 10010000
Rspuns: a) Se efectueaz operaiile considernd lungimea i tipul reprezentrii menionate. 6. irul binar 11000000110011110000111100100001 reprezint un numr real n simpl precizie (32 bii: IEEE 754 - single, float). Numrul este:a. pozitiv b. negativ
Rspuns: b) Primul bit al secvenei este alocat semnului. Cum 1 este pentru numr negativ rezult c rspunsul corect este b). 7. Care sunt principalele atribute ale datelor? Rspuns: Datelor le sunt asociate atribute precum: tipul datei (numeric: ntreg sau real; logic; sir de caractere; enumerare, adres etc.), precizia reprezentrii interne i modul de vizualizare (pozitie, aliniere, corpul simbolului, dimensiunea etc). 8. Repartizarea biilor n reprezentarea IEEE 754 pe 32 de bii (single, float) este: _________ ___________________________________________________________________________ Rspuns: Reprezentarea IEEE 754 pentru single, respectiv float, utilizeaz 32 de bii repartizai astfel: b[31] - bit de semn (notat n continuare cu s), biii b[23]-b[30] pentru memorarea caracteristicii (c), iar biii b[0]-b[22] pentru reprezentarea prii fracionare (f). Valoarea fl(x), se obine conform regulilor (prin * este redat operaia de nmulire):S1: Dac 0 < c < 255 atunci fl(x) = (-1)s*2(c-127)*(1,f). S2: Dac c = 0 i f 0 atunci fl(x) = (-1)s*2(c-126)*(0,f). S3: Dac c = 0 i f = 0 atunci fl(x) = (-1)s*0. S4: Dac c = 255 i f = 0 atunci fl(x) = (-1)sInf (). S5: Dac c = 255 i f 0 atunci fl(x) = NaN. (Not a Number - nedeterminare)
2. BAZELE LOGICE ALE SISTEMELOR DE CALCUL2.1. Latici i algebre BooleDefiniia 2.1.1. Se numete latice o mulime nevid L nzestrat cu dou operaii binare notate + i astfel nct pentru oricare elemente x, y, z L s fie valabile urmtoarele proprieti: comutativitate: (1) x + y = y + x; (2) x y = y x; asociativitate: (3) (x + y) + z = x + (y + z); (4) (x y) z = x (y z); absorbie: (5) x (x + y) = x; (6) x + (x y) = x. Exemple
1) Mulimea prilor (submulimilor) unei mulimi M notat P(M) (sau 2M) nzestrat cu operaiile i formeaz o latice.2) Mulimea valorilor de adevr {0, 1} nzestrat cu operaiile (disjuncia logic) i (conjuncia logic) formeaz de asemenea o latice care, n plus, are i alte proprieti. Principiul dualitii pentru latici: Dac ntr-o propoziie adevrat din teoria laticilor se nlocuiete o operaie prin cealalt (i invers) se obine, de asemenea, o propoziie adevrat. Propoziia 2.1.1. n orice latice (L, +, ), pentru orice element x L sunt adevrate relaiile: (7) x + x = x; (8) x x = x. Propoziia 2.1.2. n orice latice (L, +, ) avem x + y = y dac i numai dac x y = x, oricare ar fi elementele x i y aparinnd mulimii L. Definiia 2.1.2. Fie x, y L, notm x y dac i numai dac x + y = y (echivalent cu x y = x). Propoziia 2.1.3. Relaia este o relaie de ordine. Observaie: n cazul laticei (P(M),, ), ordinea corespunde relaiei de incluziune definit pentru dou mulimi. Definiia 2.1.3. Fie (L, +, ) latice. Elementul L se numete prim element n L dac pentru oricare (ar fi) x L are loc relaia: x. Similar, elementul L se numete ultim element n L dac pentru oricare (ar fi) x L are loc relaia: x . Propoziia 2.1.4. Fie laticea (L, +, ) cu L = {a1, a2, ..., an} format cu n elemente (distincte), atunci L are att prim element ct i ultim element n raport cu relaia de ordine definit mai sus, iar: = a1 a2 ... an i = a1 + a2 + ... + an. Definiia 2.1.4. Laticea (L, +, ) se numete latice distributiv dac oricare ar fi elementele x, y, z din L sunt satisfcute relaiile: ( 9) x + (y z) = (x + y) (x + z); (10) x (y + z) = (x y) + (x z). Definiia 2.1.5. Latice (L, +, ) se numete latice complementat dac sunt ndeplinite condiiile: Exist elementul neutru pentru operaia + (numit element nul), notat (11) cu 0, astfel nct x + 0 = x, oricare ar fi x L. (12) Exist elementul neutru pentru operaia (numit element universal), notat cu 1, astfel nct x 1 = x, oricare ar fi x L.
Pentru oricare x L exist yx L, numit complementul lui x, care satisface relaiile: (13) x + yx = 1; (14) x yx = 0. n cele ce urmeaz elementul yx va fi notat prin x. Propoziia 2.1.4. ntr-o latice distributiv i complementat, complementul unui element este unic. Definiia 2.1.6. O latice distributiv i complementat se numete algebr boolean. Exemple 1. Structura (P(M), , ) este latice distributiv i complementat, elementul nul este , elementul universal este M, iar dac A P(M), atunci A = M-A (complementara mulimii A). 2. Structura ({0, 1}, , ) este latice distributiv i complementat cu 0=1 i 1=0. n continuare vom considera c o algebr boolean sau, mai simplu, o algebr Boole este dat prin ansamblul (B, +, , , 0, 1), evideniind mulimea nevid B, operaiile binare, operaia unar (pentru obinerea complementului) i elementele neutre. De asemenea pentru xy vom scrie, simplu, xy. Se poate arta c pentru a defini o algebr Boole este suficient ca, pentru oricare x, y, z elemente ale mulimii B, s fie satisfcute relaiile: (15) x + y = y + x; (16) xy = yx; (17) x+yz = (x+y)(x+z); (18) x(y+z) = xy + xz; (19) x + yy = x; (20) x(y+y) = x; Atunci, pentru oricare x i y din B, avem xx = yy (rezultat notat cu 0) i x + x = y + y (rezultat notat cu 1).
2.2. Funcii booleene. Forme normaleFie (B, +, , , 0, 1) o algebr Boole i n ( 1) numr natural. Notm cu Fn(B) mulimea funciilor de n variabile definite pe Bn cu valori n B. Este evident relaia: . card(Fn(B)) = card(B) Pentru n = 2 i B = {0, 1}, se obin 16 funcii de 2 variabile, date prin tabelul: x1 0 0 1 1 x2 0 1 0 1 f0 0 0 0 0 f1 0 0 0 1 f2 0 0 1 0 f3 0 0 1 1 f4 0 1 0 0 f5 0 1 0 1 f6 0 1 1 0 f7 0 1 1 1 f8 1 0 0 0 f9 1 0 0 1 f10 1 0 1 0 f11 1 0 1 1 f12 1 1 0 0 f13 1 1 0 1 f14 1 1 1 0 f15 1 1 1 1card(B)n
sau prin formule (ntre ghilimele trecem denumirea funciei conform logicii propoziiilor): f0(x1, x2) = 0; f1(x1, x2) = x1x2; f2(x1, x2) = x1x2; f3(x1, x2) = x1; f4(x1, x2) = x1x2; f5(x1, x2) = x2; f6(x1, x2) = f2(x1, x2) + f4(x1, x2) ; f7(x1, x2) = x1 + x2; f8(x1, x2) = x1x2; f9(x1, x2) = x1x2 + x1x2; f10(x1, x2) = x2; contradicia - funcia identic fals conjuncia negaia implicaiei prima proiecie negaia implicaiei inverse a doua proiecie sau exclusiv disjuncia, sau inclusiv , nici x1 nici x2 echivalena negaiavariabilei x2
f11(x1, x2) = x1+x2; f12(x1, x2) = x1; f13(x1, x2) = x1+x2; f14(x1, x2) = x1+x2; f15(x1, x2) = 1;
implicaia invers, x2 x1 negaia variabilei x1 implicaia, x1 x2 /, x1 este incompatibil cu x2 lege logic sau tautologie
Definiia 2.2.1. Numim termen prim att o variabil ct i complementul su. Numim conjuncie prim orice termen prim i orice conjuncie de termeni primi. Numim disjuncie prim orice termen prim i orice disjuncie de termeni primi. Conjunciile de termeni primi se mai numesc i monoame prime. Monoamele prime (respectiv, disjunciile prime) n care apar toate variabilele sau complementul acestora, o singur dat, dar nu simultan variabila i complementul su, se numesc monoame (respectiv, disjuncii) perfecte. i i i Pentru n variabile, un monom perfect este de forma x11 x 22 ... x nn , unde ik = 0, 1 ( k = 1 0 ' . n general, notm, x1 = x i x0 = x 1, 2, ..., n) cu convenia de notaie: x k = xk , xk = xk pentru oricare x B. Pentru n = 3, monoamele perfecte sunt: xyz, xyz, xyz, xyz, xyz, xyz, xyz, xyz. Analog se pot descrie disjunciile perfecte. Definiia 2.2.2. Se numete form normal disjunctiv (ND), disjuncia oricrei mulimi de conjuncii prime. Se numete form normal conjunctiv (NC), conjuncia oricrei mulimi de disjuncii prime. Se numete form normal perfect acea form normal format numai cu monoame perfecte (n cazul ND) respectiv sume perfecte (n cazul NC). Propoziia 2.2.1. Fie B algebra boolean de mai sus, (ci1 ,i2 ,...,in ) i1 ,i2 ,...,in {0,1} ,
(d i1 ,i2 ,...,in ) i1 ,i2 ,...,in {0,1} elemente din B i x1, x2, ..., xn B. Urmtoarele proprieti sunt(i1, i2, ..., in) (j1, j2, ..., jn) x11 x 22 ... x nn x1 1 x 2 2 ... x n n = 0, (i1, i2, ..., in, j1, j2, ..., jn {0, 1}),i i i j j ji1 i2 1 2 i1 ,i2 ,...,in {0,1}i1 ,i2 ,...,in {0,1}
adevrate: (21) (22)
x
in x ... x n = 1,
ci1i2 ...in x1i1 x 2 i2 ... x n in +i1
(23)
=
i1 ,i2 ,...,in {0,1}i1 ,i2 ,...,in {0,1}
i1 ,i2 ,...,in {0,1}
d i1i2 ...in x1i1 x 2 i2 ... x n in =
( ci1i2 ...in + d i1i2 ...in ) x1 x 2 i2 ... x n ini1 ,i2 ,...,in {0,1}
ci1i2 ...in x1i1 x 2 i2 ... x n in
d i1i2 ...in x1i1 x2 i2 ... xn in =
(24)
=
i1 ,i2 ,...,in {0,1}
(ci1i2 ...in d i1i2 ...in ) x1i1 x 2 i2 ... x n in'
i1 i2 in (25) c x x ... x (ci1i2 ...in ) ' x1i1 x2 i2 ... xn in i1i2 ...in 1 2 n = i1 ,i2 ,...,in {0,1} i1 ,i2 ,...,in {0,1} Definiia 2.2.3. Funciile booleene simple ale algebrei B sunt acele funcii booleene a cror expresie se obine plecnd de la proiecii i aplicnd operaiile algebrei booleene asupra unor elemente constituite anterior. Funciile booleene (la modul general) ale algebrei booleene se obin ca i cele simple, dar lund elemente de plecare att proieciile ct i constantele algebrei Boole B. Teorema 2.2.1. O funcie f: Bn B este boolean dac i numai dac exist constantele ci1i2 ...in B, (i1 , i2 ,..., in {0,1}) astfel nct(26)
f ( x1 ,..., x n ) =
i1 ,i2 ,...,in {0,1}
ci1i2 ...in x1i1 x 2 i2 ... xn in , x1 ,..., x n B.
Cnd (26) are loc, constantele ci1i2 ...in sunt unic determinate de
ci1i2 ...in = f (i1 , i2 ,..., in ),( i1 , i2 ,..., in {0,1}). (27) Propoziia 2.2.2. O funcie boolean de n variabile este simpl dac i numai dac (28) f(i1, i2, ..., in) {0, 1}, pentru oricare i1, i2, ..., in {0,1}.
Evident c o expresie de forma (26) transfomat astfel nct suma boolean se realizeaz numai pentru constantele egale cu 1 este o funcie boolean simpl. Propoziia 2.2.3. O funcie boolean este funcie boolean simpl dac i numai dac satisface: f ( x1 ,..., x n ) = x1i1 x 2 i2 ... x n in , x1 ,..., x n B. (29)i1 ,i2 ,...,in {0,1} f ( i1 ,i2 ,...,in ) =1
Comentariu: Din cele de mai sus rezult c mulimea funciilor booleene pe B coincide cu mulimea funciilor booleene simple (cu acelai numr de variabile) dac i numai dac B = {0, 1}. Exemplu: Pentru n=3, funcia f73 (definit n tabelul de mai jos, unde numrul 73 este convertit n baza doi) se poate scrie sub form ND perfect astfel: f73(x, y, z) = xyz + xyz + xyz.
Teorema 2.2.2. O funcie boolean f este boolean simpl dac i numai dac se scrie astfel:
f ( x 1 , x 2 ,... , x n ) =
i2 in f ( i 1 , i 2 , ... , i n ) + x 1i1 + x 2 ...+ x n ,
0
0
0'
lund n considerare notaiile i convenia de mai sus. Exemplu: Funcia f73 poate fi exprimat n form NC perfect astfel: f73(x, y, z) = (x + y + z) (x + y + z) (x + y + z) (x + y + z) (x + y + z). 2.3. Aplicaii O problem important legat de reprezentarea1 funciilor booleene o constituie reducerea la minimum a expresiei analitice a funciei booleene (mai puini termeni i ct mai puini factori). O funcie boolean poate avea mai multe forme disjunctive nesimplificabile. O metod pentru aflarea unei forme normale disjunctive minime const n construirea tuturor formelor normale disjunctive ale funciei i alegerea uneia dintre cele mai scurte. Pentru un numr mare de variabile aceast metod este ineficient. Din punct de vedere algoritmic, problema gsirii unei forme minimale a unei funcii booleene este decidabil. Algoritmul Quine-McCluskey este destinat obinerii formei ND a unei funcii booleene prin utilizarea sistematic a regulilor de calcul ntr-o algebr Boole. Pentru expresii booleene cu pn la 6 variabile se pot utiliza cu succes diagramele Karnaugh2.
Principalele aplicaii ale funciilor booleene sunt n analiza i sinteza sistemelor de calcul (de tip numeric). De asemenea, reducerea complexitii expresiilor booleene influeneaz timpul de evaluare a condiiilor precizate n cadrul instruciunilor if, while..do, for, cond, do...while, repeat...until, etc. i deci viteza de executare a programelor. 2 Diagrama Karnaugh se construiete cu ajutorul codului Gray, codul n care doi termeni succesivi difer printr-un singur bit, astfel c doi termeni vecini sunt cei ntre care exist o diferen de un bit, putndu-se astfel extinde diagramele Karnaugh pentru orict de multe variabile. Simplificarea expresiilor booleene folosind diagramele Karnaugh se bazeaz pe gruparea termenilor i utilizarea identitii x+x = 1 (care conduce la unificarea mintermenilor i generarea unor termeni cu mai puine variabile).1
Tabelul 2.3.1.
Tabelul 2.3.2.
Aplicaia 2.3.1. Fie B algebra Boole de mai sus i funcia f dat prin legea: f(x1, x2, x3) = x1x2+x1x2x3+x1x2+x1x2x3. Forma ND perfect este: f(x1, x2, x3) = x1x2x3+x1x2x3+x1x2x3+x1x2x3+x1x2x3+x1x2x3 i corespunde tabelului 2.3.1. Forma NC perfect este f(x1, x2, x3) = (x1+x2+x3) (x1+x2+x3) a crei evaluare necesit 3 operaii de negare (NOT), 4 disjuncii (OR) i o conjuncie (AND). Dup aplicarea regulilor de calcul asupra formei ND perfecte se pot obine urmtoarele exprimri posibile: ( *) f(x1, x2, x3) = x1x2+x2x3+x1x3 i (**) f(x1, x2, x3) = x1x3+x2x3+x1x3 ambele necesitnd 3 operaii NOT, 2 operaii OR i 3 operaii AND. Aplicaia 2.3.2. Operaia de adunare a doi bii se realizeaz conform tabelului 2.3.2. Cum z i tout sunt funcii booleene (folosind t n loc de tin), obinem: z = xyt+xyt+xyt+xyt; i tout = xyz+xyt+xyt+xyt = xy + xt + yt (dup simplificare). Circuitul sumator are trei intrri (cei doi bii x i y i bitul de transport anterior tin) i dou ieiri (bitul rezultat z i bitul de transport urmtor tout). Pentru adunarea a dou cuvinte a n bii fiecare este necesar s se nserieze n astfel de sumatoare. Dac considerm c cele dou cuvinte care se adun sunt situate iniial n dou registre (registrul X i Y), iar rezultatul se va obine n registrul Z (registrele X, Y i Z de aceeai capacitate) i are loc transport la sumatorul asociat cifrei cu rangul maxim atunci se va activa (trece n poziia on) bitul de transport din registrul de stare al procesorului. Acest bit se numete Carry. Aplicaia 2.3.3. Considerm dou numere binare a cte doi bii fiecare (x1, x2 biii primului numr; x3, x4 biii numrului al doilea). Funcia boolean va fi evaluat la 1 dac primul numr este cel mai mare i va avea valoarea 0, n caz contrar. Tabelul asociat funciei booleene de comparare este: x1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 x2 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 x3 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 x4 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 fc 0 0 0 0 1 0 0 0 1 1 0 0 1 1 1 0 Cea mai simpl form ND este: fc (x1, x2, x3, x4) = x1x3+x1x2x4+x2x3x4, iar circuitul poate fi reprezentat grafic ca mai jos.
2.4. Exerciii1. S se simplifice expresiile booleene:a) b) c) x y z + x y z + x y z (x+ y + z) (x + y+ z) (x+ y+ z) x y + xz + xy z.
Rspuns: Folosind regulile de calcul specifice unei algebre Boole, se obin urmtoarele rezultate: a) x(y+ yz), b) x z + xy+ xz, c) xy + xz. 2. S se determine forma normal disjunctiv a funciei f83 (x, y, z). Rspuns: Tabelul funciei f83 este: x Y z f83(x, y,z) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 Conform teoremei de reprezentare sub forma normal disjunctiv rezult c f83(x,y,z) = x yz + x y z + x y z + x y z (= x y + x z + y z). 3. S se determine forma normal conjunctiv a funciei f(x, y, z, w) = x y + y z w + x w. Rspuns: Tabelul valorilor funciei f este: x 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 y 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 z 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 w 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 f(x,y,z,w) 1 1 1 1 0 0 0 1 0 1 0 1 0 1 0 1 Rezult c f(x, y, z, w) = (x + y + z + w) (x + y + z + w)(x + y + z +w) (x + y + z + w) (x + y + z +w) (x + y + z + w) (x + y +z +w). 4. S se simplifice funcia de 4 variabile f(x, y, z, w) = x y z w + x y z w + x y z w + x y z w + x y z w + x y z w. Rspuns: f(x, y, z, w ) = x y + x z w + y z w. 5. S se reprezinte grafic circuitul combinaional descris de funcia f care apare n exerciiul 4. Rspuns: Folosind notaiile grafice de mai sus, rezult:
3. STRUCTURA SISTEMELOR DE CALCUL3.1. Resursele fizice ale sistemelor de calcul 3.1.1. Generaii de calculatoareTehnica de calcul a evoluat de la abac pn la supercalculatoarele actuale (sisteme hipercub .a.). n aceast evoluie se disting urmtoarele etape1: etapa dispozitivelor mecanice i electromecanice i etapa calculatoarelor electronice. Primul calculator electronic comercial a fost sistemul ENIAC (1942-1945). Aproximativ n acea perioad, John von Neumann (1944) a stabilit c un sistem de calcul trebuie s asigure urmtoarele funcii: memorare, comand si control, prelucrare, intrare-iesire. Primul calculator romnesc a fost CIFA-1 (1957) realizat la Institutul de Fizic Atomic de ctre un colectiv condus de inginerul Victor Toma2. Etapele de dezvoltare a calculatoarelor electronice sunt cunoscute sub numele de generaii de calculatoare. Pn n prezent au fost parcurse cinci generaii: generaia tuburilor electronice (programe binare sau cablate, suport informaional: cartela perforat sau banda de hrtie perforat), generaia tranzistorilor i diodelor (apar suporturile magnetice, apar limbajele de programare: FORTRAN: eng. FORmula TRANslation, COBOL: eng. COmmon Business-Oriented Language, ALGOL: eng. ALGOrithmic Language .a., apar primele sisteme de operare), generaia circuitelor integrate (apare conceptul de firmware, apar sisteme de operare evoluate rezidente pe disc (DOS: eng. Disk Operating System), apar noi limbaje de programare: PL/1, Pascal, LISP: eng. LISt Processing, BASIC), generaia VLSI: eng. Very Large Scale Integration (apar microprocesoarele, noi tipuri de arhitecturi: microcalculatoarele (de exemplu cele compatible IBM PC eng. Personal Computer, staiile MAC etc.), sisteme de operare precum CP/M, DOS (de la IBM sau Microsoft); se dezvolt reelele de calculatoare; apar limbajele de programare orientat spre obiecte) i generaia inteligenei artificiale (n continu dezvoltare) cu trimitere ctre viitoarele sisteme neurale, sisteme cuantice, calcul ADN etc. Cele mai populare sisteme de calcul ale momentului sunt cele dezvoltate n jurul proiectului IBM PC. Un microcalculator IBM sau o clon PC este format din trei pri: unitatea sistem (eng. system unit), tastatura (eng. keyboard) i ecranul (eng. display screen). Unitatea sistem este construit modular. Partea cea mai important este placa de baz (eng. mother board sau main board). Ea conine circuitele electronice cele mai importante: microprocesorul, ceasul (eng. clock), coprocesorul matematic (la generaiile mai vechi), memoria RAM (eng. Random Access Memory) i memoria ROM (eng. Read Only Memory). n plus, unitatea sistem mai conine: sursa de alimentare, ventilatoare i unitile de discuri. Diferitele plachete pentru cuplarea unor dispozitive de intrare-ieire (imprimant, disc, modem etc.) se cupleaz la placa de baz folosind conectorii la magistral. Magistrala (eng. bus) este un canal comun de comunicaie ntre plachetele calculatorului prin care circul semnalele de dialog ntre componente. Plachetele pot fi introduse opional n sloturi (conectori), n funcie de dorina utilizatorului. Cele mai importante plachete sunt: adaptorul video (eng. display screen adapter), adaptorul sau cuplorul de disc, plachetele de memorie, plachetele de comunicaie (pentru imprimant, modem etc.). Pentru microcalculatoare compatibile IBM-PC se utilizeaz mai multe tronsoane de magistral: ISA (eng. Industry Standard Architecture) , MCA (eng. Micro Channel1 2
Pentru detalii istorice i vizite virtuale putei accesa: http://archive.computerhistory.org/search/ Alte sisteme de calcul romnesti au fost CET (IFA Bucureti), DACICC (Cluj), MECIPT (Timioara) etc. pentru a meniona numai sistemele proiectate i instalate nainte de 1970. Pentru mai multe detalii se poate consulta: Mihai Drgnescu, Realizarea de calculatoare i retele de calculatoare n Romnia, http://www.atic.org.ro/anexe/MD.htm, ATIC, 2001.
Architecture), EISA (eng. Extended Industry Standard Architecture), PCI (eng. Peripheral Component Interconnect), etc. Prin intermediul magistralei se asigur o arhitectur deschis, astfel c utilizatorii pot extinde sistemul prin inserarea de plachete, cum a fost precizat mai sus. Totui numrul sloturilor este limitat. Conectarea unui numr suplimentar de dispozitive se poate realiza prin intermediul unui adaptor SCSI (eng. Small Computer System Interface se pronun scazzy). Se pot conecta pn la 7 dispozitive: imprimante, discuri rigide, uniti CD-ROM / CD-RW, etc. Minicalculatoarele sunt sisteme de calcul cu dimensiune i performane de prelucrare situate ntre cele ale microcalculatoarelor i sistemelor mainframe. Ele sunt utilizate de companiile medii sau departamentele companiilor mari pentru monitorizarea proceselor de fabricaie, gestiunea economic sau cercetare. Sistemele mainframe sunt calculatoare de dimensiune mare care necesit condiii speciale de funcionare (de exemplu, aer condiionat), dar au putere mare de calcul i pot stoca cantiti uriae de date. Sunt utilizate de organizaiile mari companii multinaionale, agenii guvernamentale, bnci, universiti etc. pentru a prelucra un numr foarte mare de tranzacii pe unitatea de timp. Supercalculatoarele sunt cele mai puternice sisteme de calcul. Ele sunt utilizate n cercetare de organizaii puternice pentru explorarea resurselor, simulri, predicii etc.
3.1.2. Procesor. Caracteristici. Set de instruciuniUna dintre componentele principale ale oricrui sistem de calcul o reprezint procesorul. Procesorul actualelor sisteme poate fi de tip special, un microprocesor sau un ansamblu integrat de (micro)procesoare. Orice procesor conine patru blocuri funcionale de baz: unitatea de comand i control (UCC), unitatea aritmetico-logic (UAL), registrele procesorului, unitatea de interfa cu celelalte componente (UI). Procesoarele performante utilizeaz structuri de date avansate precum stivele. Acestea sunt utile pentru salvarea contextului unei activiti nainte de ntreruperea acesteia. Primele trei componente formeaz unitatea de executare. UCC comand, coordoneaz i controleaz ntreaga activitate de prelucrare la nivelul componentelor calculatorului. Ea va executa instruciunile unui program. UAL realizeaz prelucrarea datelor cerut prin instruciuni: operaii aritmetice, logice, de comparare etc. Registrele reprezint o memorie foarte rapid a procesorului n care se pstreaz codul instruciunilor, datele de prelucrat, rezultatele prelucrrilor etc. Cele mai importante registre ale unui procesor sunt: registrul acumulator, registrul numrtor de adrese al programului, registrul indicatorilor de condiii (valoare negativ, pozitiv sau nul, transport n urma executrii operaiilor de calcul etc.), registrul de instruciuni i registrul de adresare a memoriei. n general, registrul acumulator pstreaz unul dintre operanzii unei instruciuni de calcul, fiind totodat i destinaia rezultatului operaiei. Registrul numrtor de adrese al programului sau registrul contor-program, arat adresa, n memoria intern, unde se afl stocat urmtoarea instruciune de executat. Indicatorii de condiie sunt poziionai automat n urma efecturi anumitor operaii. Registrul de instruciuni memoreaz instruciunea ce se execut. Coninutul acestui registru este analizat pentru a se determina operaia de executat, locul unde se afl stocai operanzii precum i locul unde va fi stocat rezultatul, dac instruciunea este una de calcul, respectiv adresa unde se va face un salt n program sau adresa unei zone de memorie unde/de unde se va stoca/citi o anumit dat, n alte situaii. Registrul de adresare a memoriei pstreaz adresa curent folosit pentru efectuarea accesului la memorie. De obicei, adresa efectiv se obine n urma unui calcul de adres. UI asigur legtura dintre procesor i celelalte componente ale calculatorului ndeplinind funcia de transfer de date de la/spre procesor. Comunicarea procesorului cu celelalte componente: adaptorul video, adaptorul de disc etc. se face prin intermediul
porturilor (puncte de intrare n procesor). Acestea pot fi porturi de intrare (vin date de la componente) respectiv porturi de ieire (pornesc date spre componente). n practic, un port este identificat printr-un numr (unic). Deoarece un sistem de calcul execut mai multe activiti, acestea pot avea nevoie de controlul procesorului. Rezult necesitatea ntreruperii unei activiti pentru a trece la o alt activitate. Aceste comutri sunt determinate fie prin hardware, fie prin software. ntreruperea hardware este declanat la apariia unui semnal de ntrerupere prin care procesorului i se cere s analizeze un anumit eveniment. Performanele procesorului pot fi exprimate prin: durata ciclului procesorului, lungimea cuvntului, repertoriul de instruciuni, numrul adreselor dintr-o instruciune, durata executrii instruciunilor etc. Durata ciclului procesorului reprezint intervalul de timp n care se efectueaz un transfer ntre dou registre ale procesorului. Lungimea cuvntului poate fi de 8 bii, 16 bii, 32 bii, 64 bii etc. n funcie de tipul procesorului. Repertoriul de instruciuni conine cel puin urmtoarele grupe de operaii (mnemonicele instruciunilor au caracter orientativ): - instruciuni generale (MOV - mutare de informaie (ncrcare n registre LD; stocare n memorie ST, atribuire condiionat (CS, ZS)), PUSH - punere de informaii n memoria organizat ca o stiv, POP - aducerea informaiei din memoria stiv etc.); - instruciuni de intrare/ieire (IN - depunerea n registrul acumulator a informaiei stocate n registrul de intrare/ieire (portul de date), OUT - scrierea n portul de date a informaiei aflate n registrul acumulator); - instruciuni aritmetice: adunare (ADD, ADC, INC etc.), scdere (SUB, DEC, NEG, CMP etc.), nmulire (MUL, IMUL etc.), mprire (DIV, IDIV etc.); - instruciuni de calcul n virgul mobil (FADD, FSUB, FMUL, FDIV, FSQRT, FEQLE, FEQL etc.); - instruciuni de manipulare a irurilor de bii: operaii logice (NOT, AND, OR, XOR, TEST), deplasare (SHL, SAL, SHR, SAR), rotire (ROL, ROR, RCL, RCR); - operaii la nivel de octet (DIF, MOR, MXOR) - instruciuni de transfer n regim de anticipare a salturilor (PBN, PBZ, PBP etc ) sau de transfer fr anticipare : salt necondiionat (CALL, RET, JMP, GO), salt condiionat - prin testarea indicatorilor de condiii (JC, JNC, JE, JG, JL, BN, BZ, BP etc.), cicluri (LOOP etc.), ntreruperi (INT, IRET, TRIP/TRAP etc.); - instruciuni de sincronizare extern (HLT, WAIT, NOP etc.) Durata executrii unei instruciuni reprezint timpul necesar desfurrii fazei de citireinterpretare i a fazei de execuie a acelei instruciuni. Pentru microcalculatoare, procesorul este reprezentat de un singur circuit integrat (eng. silicon chip), numit microprocesor (eng. microprocessor -microscopic processor). Microcalculatoarele prelucreaz (proceseaz) date i instruciuni n milionimi de secund, sau microsecunde, supercalculatoarele realizeaz prelucrri n nanosecunde i chiar picosecunde, ele fiind de peste un milion de ori mai rapide dect microcalculatoarele. n acest moment, exist dou categorii de microprocesoare: CISC (eng. Complex Instruction Set Computer) i RISC (eng. Reduced Instruction Set Computer). Cele mai rspndite microprocesoare sunt cele CISC (avnd ca reprezentai microprocesoarele INTEL : X86, Pentium). Microprocesoarele RISC implementeaz mai puine instruciuni, sunt mai simplu de proiectat i mai ieftine. Cteva exemple de microprocesoare RISC sunt: PowerPC dezvoltat de Motorola, IBM i Apple; Alpha i MIPS R400 dezvoltate de Digital Equipment Corporation. O abordare special o reprezint arhitectura CISC bazat pe tehnici de tip RISC care duce la o vitez de executare a aplicaiilor CISC comparabil cu cea a sistemelor RISC.Un exemplu interesant de procesor a fost propus de D. Knuth pentru implementarea calculatorului MMIX. Caracteristicile acestuia vor fi descrise n capitolul 4. Unelte software pentru experimentare pot fi obinute de la: http://www.cs.fhm.edu/~mmix/tools/tools.html (de exemplu).
3.1.3. MemoriiStocarea informaiilor n sistemul de calcul se realizeaz prin intermediul memoriei. Memoria este spaiul de lucru primar al oricrui sistem de calcul. n funcie de locul ocupat, distingem: memoria central (numit i memoria principal sau intern) i memoria secundar (numit i auxiliar sau secundar). n memoria central sunt stocate programele i informaiile utilizate de ele n timpul execuiei lor de ctre procesor. Memoria secundar pstreaz cantiti mari de date i programe folosite frecvent i ncrcabile rapid n memoria central. Memoria unui sistem de calcul este caracterizat prin: capacitate, timp de acces, vitez de transfer, cost, mod de accesare a informaiei stocate etc. Capacitatea memoriei este definit prin numrul de uniti de informaie (caractere, cuvinte) disponibile pentru stocarea informaiei. n general3, capacitatea memoriei se exprim n sistemul binar prin MB (mega octei, eng. mega bytes): 1 MB = 1024 KB = 1024*1024*8 bii). Localizarea zonelor de memorie (intern sau extern) se realizeaz prin intermediul adresei. Prima locaie a memoriei centrale are adresa 0 (zero). Dac unitatea de stocare este octetul, atunci adresa 10 (scris zecimal) reprezint locaia a unsprezecea. Timpul de acces exprim durata intervalului n care poate fi obinut informaia stocat n memorie. Viteza de transfer se exprim prin numrul de uniti de informaie transferate de memorie n unitatea de timp. n funcie de natura accesului la informaia ce o nmagazineaz, memoria central a unui calculator poate fi cu acces numai n citire i respectiv, cu acces n scriere i citire. Memoria de tip "numai citirea este permis" (ROM- eng. "Read Only Memory") se mai numete i memorie permanent sau nevolatil, deoarece programele i datele ce au fost nscrise n ea sunt fixate o dat pentru totdeauna. n general, n aceast memorie este depozitat firmware-ul4 (secven de instruciuni cu destinaie special). Memoria ce permite acces de tip "citire-scriere" se mai numete memorie cu acces aleator (RAM- eng. Random Access Memory) - dei, tot cu acces aleator este i memoria ROM - i este de tip volatil (trebuie s fie alimentat electric pentru a reine date). Din punct de vedere tehnologic au fost realizate dou clase de memorii RAM (SRAM: Static RAM i DRAM: Dynamic RAM). Atributul dinamic specific necesitatea unui interval de timp foarte mic ntre momentele de remprosptare (eng. refresh), remprosptarea realizndu-se de sute de ori pe secund pentru a se reine datele stocate n celulele de memorie. DRAM-ul este preferat pentru memoria principal a sistemelor, n timp ce SRAM-ul, care nu necesit remprosptare este utilizat n primul rnd la implementarea memoriei cache5. Rolul memoriei cache const n memorareaDe fapt, trebuie s facem diferen ntre denumirile adoptate n sistem decimal (folosit n afaceri) i cele caracteristice sistemului binar (folosit n programare). Astfel, sunt n uz urmtoarele prefixe: prefix zecimal binar (K) 1000 = 103 1024 = 210 = 1.024 kilo 10242 = 220 = 1.048.576 mega (M) 10002 = 106 3 9 10243 = 230 = 1.073.741.824 giga (G) 1000 = 10 4 12 1000 = 10 10244 = 240 = 1.099.511.627.776 tera (T) 5 15 1000 = 10 10245 = 250 = 1.125.899.906.842.624 peta (P) 6 18 1000 = 10 10246 = 260 = 1.152.921.504.606.846.976 exa (E) 7 21 1000 = 10 10247 = 270 = 1.180.591.620.717.411.303.424 zetta (Z) 8 24 1000 = 10 10248 = 280 = 1.208.925.819.614.629.174.706.176 yotta (Y) Ultima actualizare a acestui sistem a fost realizat n 1991. A se vedea http://www.bipm.fr/fr/CGPM/db/19/4/ i http://www.techno-science.net/?onglet=glossaire&definition=1653. 4 Firmware este un cuvnt care iniial a fost folosit pentru a desemna microprogramele cu ajutorul crora se realiza unitatea de comand i control a unui procesor. Astzi desemneaz i secvenele de cod (n limbajul procesorului) ce implementeaz interpretoare, nuclee de intrare-ieire etc. De asemenea, aceast component este util n implementarea stardardului PnP (eng. Plug and Play) util n reconfigurarea automat a sistemelor de calcul. 5 Memoria de tip cache poate aparine att procesorului (fiind integrat acestuia), dar i spaiului RAM. De aceea, recent, se utilizeaz organizarea stratificat pe niveluri - a memoriei cache.3
datelor i instruciunilor solicitate frecvent de ctre procesor. Memoria cache este primul loc unde procesorul caut datele de care are nevoie. Numai dac acestea nu se afl n memoria cache ele vor fi cutate n memoria principal (fiind transferate blocuri de date/instruciuni n memoria cache). Exist mai multe tipuri de module DRAM utilizate n sistemele de calcul moderne: SDRAM (eng. Synchronous DRAM), RDRAM (eng. Rambus DRAM), DDR i DDR2 (Double-Data-Rate Synchronous DRAM) .a. Circuitele de stocare nevolatile se ncadreaz n urmtoarele clase: - PROM (eng. Programmable Read-Only Memory) pentru nregistrarea codului cu ajutorul unui echipament special, odat ce este scris nu se mai poate schimba; - EPROM (eng. Erasable Programmable Read-Only Memory) circuit de stocare de tip ROM care poate fi ters cu ajutorul unui mediu n ultraviolet, iar apoi poate fi rescris, - Flash (un tip de memorie nrudit cu EPROM).
3.1.4. Dispozitive perifericeTotalitatea echipamentelor unui sistem de calcul diferite de unitatea central i memoria intern formeaz mulimea echipamentelor periferice. Din aceast categorie fac parte unitile de memorie extern, echipamentele de intrare, echipamentele de ieire i echipamentele de intrare/ieire. *** Discurile magnetice: Una dintre cele mai importante uniti de memorare extern este unitatea de disc magnetic. Memorarea informaiei pe discul magnetic urmeaz acelai principiu fizic cu cel utilizat n nregistrarea casetelor i benzilor audio-video. Deosebirea principal ntre cele dou sisteme de memorare este datorat naturii semnalului de nregistrare folosit: analogic, n cazul audio-video i numeric (eng. digital), n cazul discurilor sistemelor de calcul. Diferena fa de benzile magnetice (nregistrate totr numeric) const n modul de acces. Pe band accesul este secvenial, pe disc accesul este direct, dup cum se va vedea mai jos. Din punct de vedere fizic, o unitate de disc magnetic are n compunere unul sau mai multe platane, fiecare platan cu una sau dou suprafee de nregistrare, attea capete de citire/scriere cte suprafee de nregistrare exist, un bra ce permite accesul de la exterior spre centrul platanului al capetelor de citire/scriere, motoare pentru rotirea platanelor i deplasarea braului, precum i un set de circuite specializate (numit controler, cuplor sau adaptor) pentru comanda ntregului mecanism. Discurile magnetice care conin un singur platan se numesc discuri floppy, iar platanul propriu-zis se numete dischet sau disc flexibil. Discurile coninnd mai multe platane se numesc discuri rigide sau discuri dure (eng. harddisk). Att pentru dischete, ct i pentru discul rigid, ntreaga colecie de date formeaz aa-numitul volum. Suprafeele de nregistrare ale unui disc magnetic sunt mprite ntr-un numr fix de cercuri concentrice, fiecare cerc numindu-se pist. Adresa unei piste este definit de o pereche de numere ntregi reprezentnd numrul curent al suprafeei de nregistrare, respectiv numrul curent al pistei. Suprafeele de nregistrare se numeroteaz ncepnd de la zero, de sus n jos. Pistele se numeroteaz cresctor de la pista de raz maxim (indice 0) spre pista de raz minim. Aceast numerotare se reia pentru fiecare suprafa de nregistrare. Mulimea pistelor de pe toate suprafeele de nregistrare identificate prin acelai numr formeaz un cilindru. Cilindrii se numeroteaz de la zero, cresctor, ncepnd cu cel cu diametrul maxim spre cel cu diametrul minim. Fiecare pist este mprit n sectoare, de lungime fix, de regul 512 octei. Fiecare sector este adresat fizic de un triplet de numere ntregi reprezentnd numrul cilindrului, numrul suprafeei i numrul sectorului. Numerotarea sectoarelor pe cilindru ncepe de la unu. Pe fiecare cilindru, numrul de sectoare este acelai. Din punct de vedere logic, pistele sunt numerotate ncepnd de la zero pe suprafaa de nregistrare zero i continund cresctor pn la epuizarea suprafeelor i pistelor. De
asemenea, sectoarele sunt numerotate ncepnd de la zero (cilindrul zero, suprafaa zero), cresctor pn la epuizarea sectoarelor suprafeelor cilindrilor. Adresa fiecrui sector este nscris la nceputul acestuia ntr-un antet ce mai conine i o secven de octei de sincronizare utilizai de adaptor (cuplor) pentru identificarea unei adrese disc. Operaia de scriere a adresei i a celorlalte elemente ale antetului sectoarelor se numete formatare fizic a discului. n cazul modului de operare text (comanda cmd), formatarea fizic a dischetelor este realizat de comanda FORMAT. Pentru discul rigid, formatarea fizic este realizat, n majoritatea cazurilor, de ctre fabricantul acestuia. Cele de mai sus arat c discul magnetic este o memorie accesabil prin adres, deci datele se obin prin acces direct. Performanele unui disc magnetic depind de urmtorii factori: timpul de poziionare, numrul de rotaii pe minut, rata de transfer a discului etc. Discurile flexibile au dou suprafee pe care se poate scrie informaia i pot fi protejate la scriere prin fanta de protecie (n poziia liber). Cuplarea unitilor de disc se poate realiza intern (prin intermediul unei interfee standard: IDE, SCSI etc.) sau extern (prin intermediul interfeei paralele). Din punct de vedere constructiv, discurile rigide sunt de tip intern (capacitate fix, suportul de memorare nu poate fi demontat din unitatea de disc), cartridge (capacitate variabil suportul poate fi evacuat precum o caset din cititorul/nregistratorul de casete (casetofon sau videocasetofon), respectiv pachet de discuri (care se monteaz n unitile speciale de citire-scriere ale mini i supercalculatoarelor). *** Discurile optice: Cele mai recente uniti de memorie extern sunt unitile de disc optic sau magneto-optic. nscrierea optic a informaiei este un proces care folosete un fascicul de lumin (o raz laser) fie pentru citirea i/sau nregistrarea datelor, fie pentru a ajuta la realizarea acestor operaii pe un suport sensibil optic. Citirea datelor se bazeaz pe evidenierea unor modificri survenite n fasciculul de lumin reflectat de suport. Operaia de scriere folosete un fascicul laser pentru modificarea (sau pentru a facilita modificarea) unui material sensibil la lumin amplasat pe suport. Din punct de vedere tehnologic distingem urmtoarele tipuri de discuri optice: - discurile CD-ROM (eng. Compact Disc Read-Only Memory): Sunt discuri compacte prenregistrate pe care informaia nu poate fi actualizat. Coninutul unui astfel de disc este nscris de ctre productorul su i poate fi doar citit de ctre utilizator. - discurile CD-R (eng. C D-Recordable): Sunt discuri compacte ce pot fi nregistrate de ctre posesor, dac acesta dispune de un dispozitiv periferic special i programele de baz aferente. Dup nregistrare, fostul CD-R devine un CD-ROM pe care l poate citi orice unitate de citire CD-ROM. Discurile CD-R se mai numesc discuri WORM (eng. Write Once, Read Many). - discurile CD-E: sunt discuri compacte de pe care informaia poate fi tears. Aceste discuri suport un numr limitat de cicluri de citire/scriere. - discuri MO (magneto-optice): Sunt discuri la care scrierea se realizeaz magnetic, iar citirea optic. Aceste discuri pot fi scrise de cte ori este necesar, atta vreme ct suportul nu este deteriorat. Ele fac parte din clasa, mai larg, a discurilor RW (eng. ReWriteable optical discs). Caracteristicile principale ale unui disc optic sunt: dimensiunea (5,25" sau 3,5"), capacitatea de stocare, numrul de cicluri de citire/scriere (pentru CD-E) etc. Discurile compacte nregistrabile tind s devin cel mai convenabil suport pentru salvarea i transportul datelor. Ele pot stoca un volum mare de date (sute de MB), iar costul este din ce n ce mai mic. Astfel, ele tind s nlocuiasc dischetele, benzile i casetele magnetice n multe aplicaii de transport i arhivare a datelor. Noua generaie a discurilor optice o reprezint suportul DVD (eng. Digital Video/Versatile Disc.) cu caractersitici superioare suportului CD. Componentele principale al unei uniti DVD sunt urmtoarele: a) mecanismul pentru citirea discului; b) procesorul de semnal DVD-DSP (eng. Digital Signal Processing); c) decodorul digital audio/video i d) modulul de control. Exist mai multe tipuri de suporturi (deci i de uniti de citire/scriere)
DVD: a) DVD-R (DVD Recordable) nregistrabile o singur dat; b) DVD RW (Read/Write), DVD RAM (Random Access Memory) i DVD+RW (bazate pe o tehnologie cu schimbare de faz: Phase-Change Rewritable). *** Terminalul: Deoarece unitile de memorare extern, de obicei, permit att scrierea ct i citirea informaiei, aceste dispozitive periferice pot fi considerate i ca dispozitive de intrare-ieire. Un alt dispozitiv periferic de intrare-ieire este terminalul. Prin intermediul acestuia se asigur comunicaia utilizator - sistem de calcul. Prin intermediul acestuia utilizatorul poate conversa cu calculatorul. La un sistem de calcul pot fi cuplate unul sau mai multe terminale. Din punct de vedere al modului de cuplare la sistemul de calcul distingem dou tipuri de terminale: terminale seriale, terminale "memorie". Din punct de vedere software un rol important l are terminalul virtual6. Terminalul serial este cuplat la calculator prin intermediul interfeei de comunicaie standard RS-232 (conector RS-232C). El este compus din tastatur (ca dispozitiv de intrare) i un monitor (ca dispozitiv de ieire). Pentru a transmite un caracter unui astfel de terminal, calculatorul (prin circuitele sale de interfa) transmite: un bit de start, biii ce compun caracterul i unul sau doi bii de stop. Att terminalul ct i calculatorul dispun de circuite hardware specializate n conversia ir de caractere - ir de bii i invers. Interfaa unui terminal "memorie" cu calculatorul este asigurat prin intermediul unei memorii RAM cu destinaie special numit memorie video. Aceast memorie este adresabil ca i memoria principal. Controlul memoriei video i generarea semnalului video pentru monitor sunt realizate de un set de circuite care formeaz adaptorul video. La aceste terminale, tastatura este separat de monitor. Ea este cuplat printr-o interfa paralel (mai muli bii simultan), dar exist i tastaturi cuplate serial. Pentru sistemele de calcul ce utilizeaz terminale "memorie", tastatura este considerat un dispozitiv periferic separat, din clasa dispozitivelor periferice de intrare. *** Tastatura/Claviatura: Prin intermediul tastaturii utilizatorul poate transmite comenzi calculatorului. Comenzile se introduc sub forma unui ir de caractere (litere, cifre, semne speciale, caractere de control). Fiecare caracter se genereaz prin acionarea uneia sau mai multor taste (butoane; eng. keys). Acionarea unei taste sau combinaii de taste are ca efect nchiderea unui circuit electronic prin care se genereaz un cod unic, care este codul ASCII (sau Unicode) al caracterului respectiv. Orice tastatur modern are patru blocuri de taste: 1. Tastatura mainii de scris. Sunt disponibile butoane pentru introducerea urmtoarelor date simple: cifre, literele mari i mici, semne speciale, bara de spaiu, retur de car (CR - Carriage Return), salt la linie nou (LF - Line Feed), saltul cursorului cu un numr de coloane (Tab), ntreruperea unei activiti (Esc- Escape), tiprirea imaginii ecranului sau memorarea acesteia (Print Screen), suspendarea temporar a executrii unui program (Pause/Break). 2. Tastatura de editare. Editarea unui text const n scrierea textului i corectarea acestuia. Textul este afiat pe ecran. Acolo apare i o bar luminoas sau un indicator special (cursor7) care arat poziia n care va fi inserat urmtorul caracter. Sunt disponibile urmtoarele butoane: tastele sgei (pentru deplasarea cursorului), tastele Page Up i Page Down care comand deplasarea cursorului n sus / jos cu un anumit numr de rnduri, tastele Home i End care comand deplasarea cursorului la nceputul / sfritul textului, tasta Insert pentru alegerea tipului de corectur (cu suprascriere sau cu inserare), tastele pentru tergere (Delete terge caracterul din poziia cursorului, Backspace terge caracterul de la stnga cursorului).Terminalul (Consola) virtual() poate fi vazut() ca o aplicaie de serviciu care permite a) terminalelor unei reele multiuser s interacioneze cu alte sisteme pe baza tipului i caracteristicilor terminalului; b) accesul la distan pentru managementul resurselor logice ale unui sistem de calcul; c) crearea mai multor instane terminal etc. 7 A nu se confunda cu sensul precizat n DEX1996.6
3. Tastatura numeric conine tastele pentru cifre i operaiile aritmetice: + (adunare), - (scdere), * (nmulire) , / (mprire) i . (punct) ca separator ntre partea ntreag i partea zecimal a unui numr (conform sistemului englezesc de scriere). 4. Tastele funcionale: cele 12 butoane F1, F2, , F12 crora li se pot asocia diferite aciuni de ctre programatorul de aplicaii. Un utilizator, nainte de utilizarea tastelor funcionale, n cadrul unei noi aplicaii, trebuie s inventarieze lista asocierilor. Aplicaii diferite fac asocieri diferite, pentru aceeai tast. Chiar, n cadrul aceleiai aplicaii, asocierea se poate schimba de la un nivel funcional la altul. Unele taste sunt de tip "cald" (eng. hotkeys), iar altele de tip "rece" (eng. coldkeys). Tastele reci nu genereaz cod ctre calculator ci se folosesc mpreun cu tastele calde pentru a realiza combinaii. Tastele reci sunt: Shift, Ctrl, Alt. De exemplu, majoritatea programelor aplicative folosesc combinaiile: Ctrl+N (pentru lansarea unui nou proiect: program, document, imagine, desen tehnic etc;eng. New), Ctrl+O (ncarc un proiect existent pentru actualizare, tiprire etc; eng. Open), Ctrl+S (nregistreaz pe un suport de memorare extern proiectul curent; eng. Save), Ctrl+P (imprim imaginea proiectului curent folosind o imprimant sau trimite proiectul prin intermediul unui adaptor de tip fax; eng. Print), Ctrl+X (mut o parte a unui proiect ntr-o zon a memoriei RAM, numit clipboard; eng. Cut), Ctrl+C (copiaz o parte a unui proiect n clipboard; eng. Copy), Ctrl+V (copiaz coninutul zonei clipboard n proiectul curent, n locul specificat de utilizator; eng. Paste) etc. O tastatur are i taste comutator (cu dou stri): CapsLock (asigur comutarea ntre starea care genereaz litere mici i starea care genereaz litere mari), NumLock (comut ntre starea numeric i starea de editare pentru blocul tastelor numerice), Insert (comut ntre corectura prin inserare i corectura cu suprascriere). *** Monitorul: Monitorul oricrui terminal (compus din ecran i circuite de generarea imaginii) poate lucra n dou moduri: modul text i modul grafic. n modul text ecranul este mprit n rnduri (eng. rows) i coloane (eng. columns). Numrul de rnduri i numrul de coloane este dat de modul de lucru permis de monitor. De obicei sunt 25 de rnduri i 80 de coloane. La intersecia unei linii cu o coloan se genereaz un caracter printr-o matrice de puncte luminoase. Pentru fiecare poziie de afiare, se vor pstra (din motive de remprosptare a imaginii) codul ASCII (Unicode) al caracterului i atributul caracterului (cel care controleaz aspectul caracterului afiat i depinde de adaptorul folosit). De exemplu, pentru calculatoare personale, codul caracterului este stocat folosind 8 bii, iar atributul folosind ali 8 bii. Atributul pentru afiarea color este format din trei elemente: culoarea peniei (eng. foreground), culoare hrtiei (eng. background) i elementul de control al clipirii (eng. blink). Culoarea este specificat cu ajutorul a trei componente fundamentale: R-rou (eng. Red), G-verde (eng. Green) i B-albastru (eng. Blue). n modul grafic ecranul este o suprafa de puncte luminoase numite pixeli (elemente de imagine; eng. picture element). Fiecare pixel este caracterizat prin codul culorii. Urmtoarele elemente caracterizeaz un anumit mod grafic: Rezoluia - numrul de puncte de pe ecran; Definiia - distana dintre dou puncte pe ecran; Numrul de culori. Toate aceste elemente depind de modul grafic suportat de monitor. De exemplu modul VGA (eng. Video Graphics Array) asigur o rezoluie de 640 x 480 puncte i 16 culori, iar modul SVGA (eng. Super VGA) standard asigur rezoluia de 800 x 600 pixeli n 256 culori. Modul XGA (eng. eXtended Graphic Array) afieaz mai mult de 18 milioane de culori pentru o rezoluie de pn la 1024 x 768 de pixeli. Generarea unor imagini complexe, la o vitez de prelucrare mare, fr aportul procesorului sistemului de calcul, este asigurat astzi de coprocesoarele grafice (numite i acceleratoare) care realizeaz n mod independent: trasarea liniilor, generarea suprafeelor definite prin contur, desenarea umbrelor, deplasarea textului, deplasarea blocurilor de imagine etc.
Monitoarele sunt de tip desktop (la locul de munc sau acas) i portabile. Monitoarele desktop, numite i sisteme CRT (eng. Cathode-Ray Tubes) sunt similare ca dimensiune i tehnologie cu receptoarele emisiunilor de televiziune. Sunt de tip ntreesut (eng. interlaced) cu realizarea imaginii pe rndurile impare i apoi pe cele pare i, de tip nentreesut (noninterlaced). ntreeserea provoac plpirea, i deci oboseala ochilor. Monitoarele portabile echipeaz sistemele de tip laptop, notebook, subnotebook i PDA. *** Dispozitive pentru introducerea informaiei grafice: n categoria dispozitivelor periferice de intrare sunt incluse i echipamentele: mouse8, joystick, trackball, tablet grafic sau digitizor (eng. digitizer), creion optic (eng. light pen) etc. Primele trei dispozitive de interaciune controleaz deplasarea unui cursor pe ecranul unui sistem de calcul. Ele difer numai constructiv. Mausul dispune de butoane a cror apsare este interpretat de programele sistemului de calcul care genereaz o secven de operaii specific locului cursorului, butonului apsat i funciilor programului n executare. Creionul optic este un dispozitiv de selecie i se utilizeaz numai n combinaie cu terminale speciale, pentru aplicaii speciale (ex. proiectare grafic, pictur asistat de calculator etc.). Tableta grafic este un digitizor ce poate fi folosit fie pentru selecie, fie pentru introducere de date n aplicaii de proiectare nclusiv pentru arhitectur, sisteme informatice geografice etc. Mausul se poate deplasa pe o mas real (eng. pad) i va antrena deplasarea unui cursor pe ecran. Mausul are mai multe butoane utile n efectuarea urmtoarelor operaii: 1. indicare (eng. point) - cursorul mausului este deplasat pentru a indica un anumit punct de pe ecran (deci reprezentarea unui anumit obiect); 2. clic (eng. click) - se acioneaz, foarte scurt, un buton al mausului. Codul ce controleaz funcionarea mausului va trata evenimentul aprut; 3. clic dublu (eng. double click) - se acioneaz, foarte scurt, de dou ori, un buton al mausului; 4. tragere (eng. drag) - se asigur deplasarea mausului pe masa real, acesta avnd un buton apsat continuu. Tabletele grafice se pot clasifica pe baza a dou criterii: a) dup dimensiunea suprafeei active: A4, A3, A0; b) dup precizie i acuratee: pentru digitizare de planuri i pentru meniuri. Ele pot fi echipate cu un stylus sau un puck cu 4-16 butoane programabile. Un alt periferic de intrare, cu aplicaii n introducerea imaginilor, este scanerul (eng. scanner). Dup citirea imaginii, aceasta poate fi prelucrat: mrit, micorat, rotit, colorat, suprapus cu alte imagini i analizat folosind diferite metode. Principiul fundamental al funcionrii scanerului l reprezint modificarea intensitii unui fascicul luminos la ntlnirea unei suprafee de o culare oarecare. Scanarea unui document se desfoar n dou faze. Un fascicul luminos, n prima faz, baleiaz (scaneaz) documentul linie cu linie, iar fascicolul luminos care se reflect este direcionat (cu ajutorul unui sistem de oglinzi i lentile) spre o mulime de celule fotosensibile CCD (eng. Charge-Coupled Device). n etapa urmtoare, CCD-ul transform semnalele luminoase recepionate n semnale electrice care dup o conversie analog-digital sunt trimise programului care va salva imaginea. Scanerele color obin trei versiuni ale documentului de scanat: una de culoare roie (eng. red), una de culoare verde (eng. green) i una de culoare albastr (eng. blue) care contribuie la imaginea final. Observm c ceea ce se introduce nu este un punct ci o suprafa de puncte. Caracteristicile unui scaner sunt: a) rezoluia optic- numrul de puncte pe unitatea de suprafa pe care le poate citi (eng. dots per inch); b) numrul de culori i c) viteza de scanare (explorare). Alte scanere sunt specializate: cititorul de bare (eng. Bar Code Reader), cititorul de taloane (eng. Badge Reader), cititorul de text (eng. Document Scanner sau OCR Scanner), cititoare cu cerneal magnetic a nscrisurilor bancare (eng. Magnetic Character Ink Reader) etc. Transmiterea/Recepionarea documentelor la/de la distan se poate realiza, pe linie telefonic, folosind un adaptor special (modem) i un fax (eng. facsimile transmission8
Acest dispozitiv este denumit maus (plural: mausuri) n DEX1996: "dispozitiv acionat manual, conectat la un computer, a crui deplasare pe o suprafa antreneaz deplasarea cursorului pe ecran."
machines). n prezent cele dou componente sunt integrate pe o plachet numit internal faxmodem sau ntr-un dispozitiv extern care se cupleaz la un sistem de calcul prin portul serial. *** Echipamente de ieire: Din categoria echipamentelor de ieire ne vom referi la urmtoarele: imprimanta, plotterul i fotoplotterul. Plotterele au fost primele dispozitive periferice care au oferit sistemelor de calcul posibilitatea de a produce ieiri n form grafic. Plotterele pot fi cu peni, cu jet de cerneal, de tip termic i de tip electrostatic. Plotterele au n componen procesoare grafice proprii. De exemplu, plotterele cu peni recunosc primitive grafice precum: linie, poligon, arc de cerc, text etc. Dac suportul de informaie este filmul fotografic atunci dispozitivul asemntor plotterului, dar instalat n codiii specifice se numete fotoplotter. Imprimantele sunt dispozitive de afiare alfanumeric sau grafic. Ele pot fi: cu ace, cu jet de cerneal, cu transfer termic sau pe baz de laser. Sistemele multimedia accept i intrare/ieire sonor dispunnd de dispozitive specializate pentru analiza/sinteza vocii. Conversia vocii unei persoane n code numeric se realizeaz n scopul recunoaterii vorbirii. Sunt disponibile sisteme integrate pentru recunoaterea vorbirii (la nivel discret i la nivel continuu). Acestea sunt sisteme speciale care realizeaz i traducerea dintr-o limb n alta, a mesajului vorbit. *** Alte echipamente, a cror prezentare nu este realizat aici, sunt destinate redrii unor aspecte ale realitii virtuale: mnua de date (eng: data glove), casca VR (HMD: Head Mounted Display), camera VR (CAVE: Cave Automatic Virtual Environment) etc.
3.1.5. Viteza de procesareUn sistem de calcul este un dispozitiv automat n care datele reprezentate n binar sunt prelucrate pe baza unui program ce indic o succesiune determinat de operaii. Datele iniiale de prelucrat i programul constituit din instruciuni se introduc n sistemul de calcul prin intermediul unor dispozitive periferice de intrare. Prin intermediul unor canale de comunicaie, datele i instruciunile sunt transferate n memoria intern sub form binar, n locaii identificabile prin adresele la care au fost memorate (i nu prin coninutul acestora). Apoi fiecare instruciune este trimis la UCC care interpreteaz coninutul acesteia i trimite comenzi ctre: 1. memorie - prin care se solicit ca anumite date, localizate prin adresele la care sunt memorate, s fie transferate ctre UAL pentru execuia anumitor operaii; dup realizarea operaiei se va indica adresa din memorie unde se va depune rezultatul operaiei efectuate de UAL; 2. UAL - i se va solicita execuia operaiei indicate de instruciune; 3. canalele de intrare-ieire - pentru preluarea altor date i instruciuni de la dispozitivele de intrare-ieire, respectiv pentru nceperea transferului rezultatelor din memorie ctre dispozitivele periferice de ieire. Dup terminarea execuiei operaiilor solicitate, rezultatele memorate la anumite adrese din memorie sunt transferate ctre dispozitivele de ieire pentru vizualizarea acestora. Creterea vitezei de procesare a fost posibil prin accelerarea executrii instruciunilor (de exemplu prin tehnica pipeline band de asamblare), dar i prin utilizarea unor tehnici de organizare a memoriei (de exemplu prin utilizarea memoriei cache). Memoria cache este reprezentat de un bloc de memorie de dimensiune mai mic, dar cu timp de rspuns forte scurt, care funcioneaz ca un tampon (eng. buffer) ntre procesor (sau diferite componente ale procesorului) i memoria principal. Ideea principal care st la baza tehnicii bazate pe memorie cache este: Dac o instruciune acceseaz o anumit locaie de memorie atunci probabilitatea ca instruciunile urmtoare s acceseze locaii vecine este foarte mare. Aceast idee induce i o disciplin de programare bazat pe evitarea salturilor la distan (eng. jump) realizat n manier nlnuit i utilizarea instruciunilor n secven, eventual doar cu salturi locale (eng. branch).
Tehnica pipeline const n divizarea fiecrei instruciuni ntr-un numr de etape. fiecare etap fiind executat de o unitate funcional a procesorului. De obicei, etapele de executare a unei instruciuni (n 4 pai) sunt: extragerea (F fetch), decodificarea (D decode), executarea (E execute) i scrierea rezultatului (W write). n figura 3.1 se ilustreaz diferena (ca timp de procesare) a instruciunilor cu i fr pipeline.
Fig. 3.1. Procesarea instruciunilor fr pipeline (sus) / cu pipeline (jos) Observaii - Prelucrarea instruciunilor fr pipeline: Dac fiecare etap consum o unitate de timp, de-a lungul a patru uniti de timp se proceseaz o singur instruciune. - Prelucrarea instruciunilor n regim pipeline: ncepnd cu unitatea de timp 4, n fiecare unitate de timp se lucreaz simultan asupra a patru instruciuni. La fiecare nou unitate de timp se va ncheia procesarea complet a unei instruciuni. Acesta este motivul pentru care prelucrarea pipeline este numit prelucrare n regim band de asamblare. O alt modalitate de cretere a vitezei de procesare o constituie utilizarea arhitecturilor paralele, a arhitecturilor distribuite precum i a unor arhitecturi neconvenionale (de exemplu a sistemelor de tip cuantic).
3.1.6. Clasificarea sistemelor de calculSistemele de calcul pot fi de tip numeric (digitale), analogic i de tip hibrid. Calculatoarele numerice, sunt cele care primesc, prelucreaz i transmit date/informaii codificate binar. Ele fac obiectul acestei lucrri. Sistemele de calcul analogice sunt echipamente alctuite din amplificatoare operaionale i circuite numerice independente, interconectate n vederea realizrii unor operaii de tip continuu: integratoare, multiplicatoare etc. Mrimile corespunztoare condiiilor iniiale se introduc sub forma unor tensiuni electrice. Acestea sunt prelucrate i se obin noi tensiuni electrice ce vor fi vizualizate cu ajutorul unor dispozitive speciale. Sistemele hibride sunt rezultatul cuplrii unor sisteme numerice cu sisteme analogice. Comunicarea ntre cele dou tipuri de sisteme se realizeaz prin intermediul unor dispozitive de conversie: analogic-digital; digital-analogic. Sistemele analogice nu fac obiectul acestei lucrri. O clasificare interesant a sistemelor digitale a fost propus de Flynn (1972) i cuprinde att sistemele de calcul cu o singur unitate central, ct i pe cele cu mai multe uniti centrale (figura 3.2). Clasificarea lui Flynn consider ca eseniale dou caracteristici: mrimea fluxului instruciunilor i mrimea fluxului datelor. Un sistem de calcul cu flux unic de instruciuni i flux unic de date este numit sistem de calcul SISD (eng. Single Instruction Single Data Stream). Toate sistemele de calcul tradiionale (cu o singur unitate central) sunt maini SISD. Aceast categorie include
sisteme de calcul, de la microcalculatoarele personale pn la calculatoarele multiutilizator de mare putere (eng. mainframe): IBM/704, IBM/7040, IBM 360/40, IBM 370/135, PDP, FELIX C, microcalculatoarele IBM PC etc. Urmtoarea categorie o reprezint sistemele de calcul cu flux simplu de instruciuni, dar cu flux multiplu de date, numite sisteme SIMD (eng. Single Instruction Multiple Data Stream). Aceste sisteme se bazeaz tot pe o singur unitate central cu o singur unitate de comand, dar cu N elemente de prelucrare (UAL) i N module de memorie ataate acestora, toate interconectate (N2). Unitatea de comand emite instruciuni sub form de flux unic spre toate elementele de prelucrare, n mod simultan. La un moment dat, toate elementele de prelucrare active execut aceeai instruciune, numai asupra datelor situate n propriul modul de memorie, deci flux multiplu de date. Din aceast clas fac parte unele supercalculatoare (de exemplu, ILLIAC-IV cu 64 UAL i pentru fiecare UAL fiind disponibili 8KB de memorie).
Fig. 3.2. Tipuri de sisteme de calcul (Flynn) Sistemele SIMD sunt, la rndul lor, de mai multe categorii: a) matriceale prelucreaz datele n mod paralel i le acceseaz prin adrese n loc de index i valoare; b) cu memorie asociativ - opereaz asupra datelor accesate asociativ (prin coninut). n loc de adres, specificarea datelor se face prin valoare, cum ar fi: "mai mare dect", "mai mic dect", "ntre limitele", "egal cu" etc.; c) matriceal-asociative - sunt sisteme de tip asociativ ce opereaz asupra tablourilor multidimensionale (matrice i masive de date); d) ortogonale fiecare element procesor corespunde la un cuvnt (32 bii) de memorie i, astfel, biii de acelai rang a