Arhitectura Calculatoarelor

Curs
8.5/10 (2 voturi)
Domeniu: Calculatoare
Conține 2 fișiere: pdf
Pagini : 50 în total
Cuvinte : 22810
Mărime: 1.80MB (arhivat)
Cost: Gratis
Capitolele 1 si 2

Extras din document

CAPITOLUL I INTRODUCERE

1.1. Arhitectura calculatoarelor - definiţii şi terminologie

Arhitectura calculatoarelor este o ramură a informaticii percepută destul de divers în literatura de specialitate, de unde rezultă şi diversitatea modurilor în care ea este definită. Astfel, în unele lucrări se spune că domeniul se ocupă cu „studiul structurii, comportării şi proiectării calculatoarelor”, iar în altele, cu „proiectarea specificaţiilor generale pentru un întreg sistem de calcul sau numai pentru o parte a sa”. Alteori, arhitectura este definită ca „o interfaţă între hardware şi software-ul de cel mai scăzut nivel” sau se consideră că tratează „proiectarea unui sistem de calcul integrat capabil să devină un instrument eficient în mâna programatorilor”. Şi din punct de vedere istoric, domeniile abordate de către arhitectura calculatoarelor au evoluat: dacă în anii '60 acestea vizau numai aritmetica sistemelor de calcul, în anii '70 şi '80 vor fi abordate şi elemente legate de proiectarea setului de instrucţiuni, iar începând cu anii '90, pe lîngă problemele legate de proiectarea unităţii centrale, a ierarhiei memoriilor, a mecanismelor de intrare - ieşire, vor fi tratate şi aspecte conceptual-funcţionale vizând sistemele cu multiprocesare sau reţele de calculatoare. Extrapolând aceste tendinţe, suntem îndreptăţiţi să credem că în anul 2010 în aria arhitecturală a ştiinţei calculatoarelor vor fi cuprinse teme legate de studiul organizării sistemelor cu autoadaptare sau al structurilor autoinstruibile. Încercând totuşi o să alegem o definiţie, considerăm potrivit să ne oprim asupra următorului enunţ: arhitectura calculatoarelor se ocupă cu identificarea şi descrierea acelor atribute ale sistemului de calcul vizibile programatorului (setul de instrucţiuni, reprezentarea datelor şi a structurilor de date, organizarea memoriei pentru programe, modurile de adresare, mecanismul de intrare/ieşire), cât şi cu prezentarea principiilor structurale de proiectare ale maşinilor de calcul. Cu toate că avem de-a face cu două noţiuni care au semnificaţii diferite, în anumite lucrări conceptul de „arhitectură” este înlocuit sau confundat cu cel de „organizare”. Eroarea este evidentă, pentru că de fapt este vorba de cele două componente distincte care se îmbină armonios în arhitectura unui calculator: arhitectura se referă la setul de instrucţiuni al procesorului, iar organizarea, la structura maşinii de calcul. Arhitectura setului de instrucţiuni (ISA - Instruction Set Arhitecture) descrie structura maşinii de calcul din punctul de vedere al programatorului. Setul de instrucţiuni realizează interfaţa între software şi hardware. Prin abuz de limbaj, se spune uneori că membrii unei familii de procesoare au aceeaşi arhitectură, dacă ei rulează acelaşi set de instrucţiuni. În acest caz termenul „arhitectură” se referă numai la ISA. Este deci posibil ca procesoare care au diverse organizări interne şi sunt fabricate de producători diverşi să fie percepute de către programatori ca fiind identice, tocmai pentru că au seturi de instrucţiuni identice (este cazul familiilor arhitecturale de tip INTEL, IBM sau SUN). Aşa cum însă vom discuta mai târziu, este posibil să se construiască şi procesoare capabile să implementeze mai multe seturi de instrucţiuni, cum este cazul celor microprogramate, capabile să genereze microcod modificabil. Câteva exemple consacrate de arhitecturi tipice pentru seturi de instrucţiuni sunt: Digital Alpha (1992-1997), HP Precision Arhitecture (1986-1996), Sun Sparc (1987-1995), MIPS I-V (1986-1996), Intel 80x86, Pentium, Pentium MMX (1978-2002…). Organizarea maşinii de calcul desemnează atât modul în care a fost implementată arhitectura setului de instrucţiuni (tehnologiile utilizate, semnalele de comandă şi control, accesul la resurse), cât şi felul în care sunt interconectate diversele nivele ale unităţilor funcţionale. Organizarea calculatorului este transparentă programatorului. Datorită numai modului diferit de implementare al unor caracteristici organizaţionale - ca, de exemplu, numărul unităţilor funcţionale, complexitatea prelucrării instrucţiunilor şi posibilităţile ca acestea să fie tratate în paralel, dimensiunea şi organizarea memoriei cache ş.a. - pot fi întâlnite procesoare cu seturi de instrucţiuni identice, dar cu performanţe radical diferite.

Cele două componente arhitecturale - setul de instrucţiuni şi organizarea maşinii - sunt legate între ele, dar nu trebuie în mod necesar tratate împreună. Spre exemplu, instrucţiunea de înmulţire disponibilă într-un

calculator poate fi prezentată ca o caracteristică ISA a acestuia. Dacă însă este prezentat modul cum această operaţie este implementată, avem de-a face cu un aspect organizaţional al aceluiaşi calculator. Cu toate că detaliile organizării maşinii sunt transparente pentru software, nu trebuie pierdut din vedere faptul că ele contribuie în mare măsură la obţinerea performanţelor de calcul, astfel încât este de dorit ca unele elemente organizaţionale de bază să fie totuşi cunoscute de către programatori. Codul compilat va rula în mod similar pe sisteme cu structuri interne diferite, dacă ele au acelaşi ISA. El nu va fi capabil să detecteze dacă sistemul pe care rulează are sau nu memorie cache sau implementează mecanismele prelucrării pipeline, însă aceste caracteristici vor fi esenţiale pentru viteza cu care programul se execută. În consecinţă, eficienţa rulării codului va fi diferită de la un calculator la altul, dacă acestea au particularităţi organizaţionale distincte. Evoluţia arhitecturilor de calculatoare este strâns legată şi uneori chiar impusă de progresele din unele domenii conexe: tehnologiile de realizare ale componentelor electronice, limbajele de programare de nivel înalt, sistemele de operare, programele de aplicaţii, tehnicile de proiectare, măsurare şi evaluare, creativitatea ş. a.

1.2. Progresul tehnologic şi evoluţia calculatoarelor

Pentru a aduce argumente în sprijinul comentariilor de la sfârşitul paragrafului anterior legate de condiţionările evoluţiilor arhitecturale, vom ilustra prin câteva date statistice şi grafice dramaticele schimbări din ultimul timp ale parametrilor unei maşini de calcul, determinate de spectaculoasele progrese ale tehnologiei. Componentele vizate în special de aceste progrese tehnologice sunt procesoarele, memoria internă, discurile magnetice şi cele optice. Dinamica performanţelor procesoarelor poate fi reprezentată prin mai mulţi indicatori, însă oricare dintre aceştia poate fi edificator chiar de unul singur. Astfel, dacă rata anuală a creşterii capacităţii logice are valoarea de 30%, iar frecvenţa ceasului intern creşte anual cu circa 20%, gradul de integrare a depăşit în anul 2000 pragul celor 100 milioane de componente elementare într-un singur circuit (pe când - spre exemplu - Intel 4004 nu îngloba în 1971 decât ceva mai mult de 1000 de componente!). Nici evoluţia memoriilor nu rămâne mai prejos: în timp ce capacitatea memoriilor DRAM creşte de circa 4 ori în trei ani, iar rata de transfer a acestora se îmbunătăţeşte cu 10% pe an, costul per bit scade anual cu aproximativ 25%. Şi memoriile externe evoluează rapid, capacitatea discurilor hard mărindu-se cu 60% pe an, iar volumul de date disponibile dublându-se la fiecare 9 luni. În perioada 1982-1995 performanţele procesoarelor, măsurate prin indicatori SPEC, s-au dublat la fiecare 1.5 ani. Astfel, generaţia 1995 a microprocesoarelor familiei Intel x86 era de aproape 200 de ori mai performantă decât cea a anilor '80, pe când un procesor RISC din acelaşi an era de 300 de ori mai puternic. În fine, pentru a încheia şirul acestor câteva exemple, să mai menţionăm că lăţimea de bandă a comunicaţiilor din reţele se dublează anual. Dinamici ca şi cele de mai sus sunt cu mult mai multe. Preferăm totuşi să ne oprim aici, iar în loc de concluzii să invităm cititorul să întârzie câteva momente privind diagramele din figura 1.1, care ilustrează astfel de aspecte evolutive. Cum graficele din figură sunt sugestive prin ele însele, alte comentarii suplimentare asupra lor devin de prisos.

Preview document

Arhitectura Calculatoarelor - Pagina 1
Arhitectura Calculatoarelor - Pagina 2
Arhitectura Calculatoarelor - Pagina 3
Arhitectura Calculatoarelor - Pagina 4
Arhitectura Calculatoarelor - Pagina 5
Arhitectura Calculatoarelor - Pagina 6
Arhitectura Calculatoarelor - Pagina 7
Arhitectura Calculatoarelor - Pagina 8
Arhitectura Calculatoarelor - Pagina 9
Arhitectura Calculatoarelor - Pagina 10
Arhitectura Calculatoarelor - Pagina 11
Arhitectura Calculatoarelor - Pagina 12
Arhitectura Calculatoarelor - Pagina 13
Arhitectura Calculatoarelor - Pagina 14
Arhitectura Calculatoarelor - Pagina 15
Arhitectura Calculatoarelor - Pagina 16
Arhitectura Calculatoarelor - Pagina 17
Arhitectura Calculatoarelor - Pagina 18
Arhitectura Calculatoarelor - Pagina 19
Arhitectura Calculatoarelor - Pagina 20
Arhitectura Calculatoarelor - Pagina 21
Arhitectura Calculatoarelor - Pagina 22
Arhitectura Calculatoarelor - Pagina 23
Arhitectura Calculatoarelor - Pagina 24
Arhitectura Calculatoarelor - Pagina 25
Arhitectura Calculatoarelor - Pagina 26
Arhitectura Calculatoarelor - Pagina 27
Arhitectura Calculatoarelor - Pagina 28
Arhitectura Calculatoarelor - Pagina 29
Arhitectura Calculatoarelor - Pagina 30
Arhitectura Calculatoarelor - Pagina 31
Arhitectura Calculatoarelor - Pagina 32
Arhitectura Calculatoarelor - Pagina 33
Arhitectura Calculatoarelor - Pagina 34
Arhitectura Calculatoarelor - Pagina 35
Arhitectura Calculatoarelor - Pagina 36
Arhitectura Calculatoarelor - Pagina 37
Arhitectura Calculatoarelor - Pagina 38
Arhitectura Calculatoarelor - Pagina 39
Arhitectura Calculatoarelor - Pagina 40
Arhitectura Calculatoarelor - Pagina 41
Arhitectura Calculatoarelor - Pagina 42
Arhitectura Calculatoarelor - Pagina 43
Arhitectura Calculatoarelor - Pagina 44
Arhitectura Calculatoarelor - Pagina 45
Arhitectura Calculatoarelor - Pagina 46
Arhitectura Calculatoarelor - Pagina 47
Arhitectura Calculatoarelor - Pagina 48
Arhitectura Calculatoarelor - Pagina 49
Arhitectura Calculatoarelor - Pagina 50

Conținut arhivă zip

  • Arhitectura Calculatoarelor
    • CAPITOLUL_I.pdf
    • CAPITOLUL_II.pdf

Alții au mai descărcat și

Baze de Date

– Cunoaşterea limbajului de manipulare a datelor utilizat la extragerea informaţiilor prin intermediul clauzelor (SELECT, FROM, WHERE, GROUP BY,...

Structuri de Date și Algoritmi

Lucrarea 1 Evaluarea si masurarea timpului de executie al unui algoritm 1.Definitia unui tip de date abstract - TDA Un TDA este un model...

Baze de Date Relaționale

Notiuni introductive, concepte fundamentale Prin sistem se întelege un ansamblu (grupare) de elemente interdependente legate între ele pentru...

Aplicatii cu Arbori Binari - Evaluarea Arborilor Asociati Expresiilor

Obiective In urma parcurgerii acestui laborator, studentul va fi capabil: - sa inteleaga notiunea de arbore si structura unui arbore binar; - sa...

Elemente Fundamentale ale Limbajului C și C++

Un limbaj de programare reprezinta o interfata între problema de rezolvat si programul de rezolvare. Limbajul de programare, prin specificarea...

Functii si Variabile in C si C++

In cazul în care apelul functiei precede definitia, trebuie dat, la începutul textului sursa, un prototip al functiei, care sa anunte ca definitia...

Instructiuni in C si C++

1. Instructiunea expresie. O instructiune expresie se obtine punând terminatorul de instructiune (punct-virgula) dupa o expresie: expresie;...

Bazele utilizării calculatoarelor

Un computer (calculator sau sistem de calcul) poate fi definit ca un echipament electronic de prelucrare automată a datelor, pe bază de program....

Ai nevoie de altceva?