Sunteți pe pagina 1din 18

Vasile Lungu : Procesoarele Intel. Programare n Limbaj de Asamblare. Ediia a II-a, Editura Teora, Bucureti, 450 pg., 2004.

Vasile Lungu, Gheorghe Petrescu, Costin Boiangiu, Programare n Limbaj de Asamblare. Probleme de Laborator. Editura PRINTECH, 168pg., 2003. intel.com/design/pentium4/manuals/index_new.htm The Art of Assembly Language, University of California: www.cs.ucr.edu\pub\pc\ibmpcdir
C1 1

De ce utilizm limbajul de asamblare ?


compilatoarele translateaz codul surs in limbaj (cod) main; ndeprtare de limbajul de asamblare, dar nu de renunare la el; multe medii IDE i compilatoare C, Pascal, Basic, Fortran, LabView etc.) prezint faciliti de inserare de linii scrise direct n limbaj de asamblare. componente ale SO, critice i performante realizate n LA, deoarece aceste secvene trebuie s consume ct mai puin timp i, eventual, ct mai puin memorie

C1

Programe hibride: LA + LNI. Modulele complexe sunt scrise n LNI, iar cele ce sunt critice in (LA). compilatorul are "cunotine limitate" asupra ntregului program -> set generalizat de instr. dar nu sunt optime n situaii particulare. Experiena LA -> programe mai eficiente i n limbajele evoluate; Depanarea ajunge i la depanarea codului obiect. LA este mult mai dificil dect un LNI, deoarece programatorul trebuie s cunoasc pe lng LA i structura intern a calculatorului.
C1 3

Scurt istoric Calculatoare


Charles Babbage, 1839, Main Analitic 1937, Howard Aiken, Univ. Harvard, Calculatorul cu Secven de Comand Automat (1939-1944), MARK I. 1942, ENIAC (Electronic Numerical Integrator And Computer), Pennsylvania, (1945-1946). El coninea circa 18.000 tuburi electronice i executa 5.000 adunri/sec. John von Neumann- EDVAC (Electronic Discrete VAriable Computer, 1952, universitatea Princeton, USA)- a stabilit cele 5 caracteristici principale ale calculatorului cu program memorat: mediu de intrare; memorie; seciune de calcul; mediu de ieire
C1 4

unitate de comand;
- generaia I-a ( 1946-1956), caracterizat prin:

hard : relee, tuburi electronice; soft : programe cablate, cod main, limbaj de asamblare; capacitate memorie : 2 Koctei; vitez de operare : 10.000 operaii/sec. - generaia II-a (1957-1963) a fost marcat de apariia tranzistorului: hard : tranzistoare, memorii cu ferite, cablaj imprimat; soft: limbaje de nivel nalt (Fortran-1956, Algol-1958, Cobol); memorie : 32 Koctei; viteza : 200.000 instruciuni/sec.
C1 5

C1

- generaia III-a (1964-1981), caracterizat prin : hard : circuite integrate (la nceput pe scar redus SSI, apoi pe scar medie, MSI i larg, LSI 1000 componente pe chip; scara de integrare se refer la numrul de componente electronice pe unitatea de suprafaa), cablaje imprimate multistrat, discuri magnetice, apariia primelor microprocesoare; soft : limbaje de nivel foarte nalt (C-1972, care a stat la baza sistemului de operare UNIX), programare structurat, baze de date, grafic pe calculator; memorie : 12 Moctei; viteza : 5.000.000 instruciuni/sec.

C1

- generaia IV-a (1982-1989) hard : circuite integrate pe scar foarte mare (VLSI100.000 componente/chip), sisteme distribuite de calcul, apar microprocesoarele de 16/32 bii; soft : pachete de programe de larg utilizare, sisteme expert, limbaje orientate obiect, baze de date relaionale; memorie : 810 Moctei; viteza : 30 mil. instr./sec. - generaia V-a, n curs de dezvoltare, se dorete a atinge urmtoarele performane: hard : circuite integrate pe scar ultralarg ULSI (proiectare circuite integrate 3D), arhitecturi paralele, reele de calculatoare, alte soluii arhitecturale noi (reele neurale etc.);
C1 8

soft : limbaje concurente, programare funcional FP, prelucrare simbolic, baze de cunotine, sisteme expert evoluate; memorie : zeci - sute Moctei; viteza : 1 Ginstr./sec. - 1 Tinstr./sec.

Procesoare
1970, INTEL 4004, 4 bii, calcule BCD, 60.000 op./sec. Firma INTEL (INTegrated Electronics) a fost fondat spre sfritul anilor 60 de Robert Noyce i Gordon Moore. 1972, INTEL 8008, 48 de instruciuni, 16 Koctei, 30.000 instr./sec 1974 INTEL 8080, 72 instruciuni, 64 Koctei, 300.000 op./sec.

C1

1979, INTEL, primul microprocesor de 16 bii (8086); 2 uniti: EU + BIU. 8088, mag. ext. 8 bii. Motorola 68000. 1980, Sinclair, Spectrum Zx80 (Z80), Basic. 1982, 80186, 286 - multiprelucrare/ acces, mod protejat, 4 uniti, mecanisme gest. mem. virtual, protecie mem. 1983, primul mediu integrat de programare (TP, Borland). 1986, 386, 32 bii, 6 unit., paginare; coprocesor mbuntit 1989, 486 = 386+387+cache unificat 8 Ko., band de asamblare, RISC (Reduced Instruction Set Computer); 1994, Pentium, 2 benzi (u,v), cache L1 separat 8Ko date + 8Ko instr., BTB(Branch Target Buffer), mag int 128 bii, APIC (Advanced Programmable Interrupt Controller); P6. 1996, Pentium Pro, superscalar pe 3 ci, execuie dinamic (analiz flux, execuie n orice ordine, predicie salt, execuie speculativ), 5 unit exec, L1 + L2 (256 Ko)
C1 10

1997, Pentium MMX (8 reg 64 bii, 3 tipuri de date noi mpachetate de 8-16-32 bii), 57 instr. noi, SIMD (Single Instruction Multiple Data), L1 dublat, alg. predicie mb. 1998, Pentium II = Pro + MMX, SECC (Single Edge Contact Cartridge); 1999, Pentium III = II + arh. SSE (Streaming SIMD Extension), 70 instr., 4*32 bii (virgul mobil, simpl precizie)= 128 bii. 2001, Pentium 4, extinde SIMD, SSE 2, pt. real dubl precizie, NetBurst (MP, Hyper-Threading, superband-20 nivele/ fa de 12 la PII/ PIII), L1: 8Ko date + 12 K micro-operaii trace cache. 2001, arhitectura Itanium, extindere a execuiei paralele, predictive i speculative; L3 (2 sau 4 Mo), L2 (96 Ko, linie 64 oct., 6 ci). 2002, Itanium 2 mrete performana de 1.5-2 ori.

C1

11

Procesoare INTEL: familia P6 (1995-1999): Pro, II, III


band de asamblare superscalar (2-3 instr/ciclu); extensia SSE, set 8 registre, XMM, pe 128 biti (real-sp) + reg. control/stare de 32 bii;

familia Pentium 4 (2000-2006)


micro-arh NetBurst (viteza dubla UAL/intregi, executie dinamica avansata, imb alg predictie, expandare reg cu redenumire, dim cache 64 octeti; SSE2, set registre pe 128 biti (real-dp, intregi), instruciunile utiliz. reg. XMM, MMX i reg. gen;

procesoarele Xeon i Pentium Extr Ed (2001-2007)


micro-arh NetBurst, tehnologia Hyper-Threading, 64 bii; instruciuni SSE3 (virg. mobil, sincronizare multi-thread), SSSE3-Supplemental Streaming SIMD Extensions (instr. accelereaz prel. semnal i MM), SSE4 cu 2 componente: SSE4.1-media, imagine, 3D i SSE4.2-prel text/string, 128 bii.
C1 12

Microarhitectura Intel Core :


Execuie dinamic larg
fiecare nucleu (core) fetch, decod, execut 4 instr/ciclu; Band asamblare 14 niveluri, 3 UAL, 4 decod, predict av;

Cache inteligent avansat


rat mare pentru nivel 2 cache: < 4M i asociativitate pe 16 ci; mag intern 256 bii pentru transferul L1-L2;

Acces la memorie inteligent


reduce cache-miss pentru execuia n orice ordine; hard prefetch ce reduce latena pt cache-miss la L2; hard prefetch ce reduce latena pt cache-miss la L1;

mb. prelucrrii de date media digitale


execuie pe singur ciclu pt. maj. instr. SIMD pe 128 bii; execuia pn la 8 operaii n virgul mobil/ciclu
C1 13

C1

14

Procesoarele iniial dezvoltate ca uni-core Procesor multi- core: implementeaz multiprocesarea pot fi puternic sau slab cuplate: partajeaz memorie cache comunicaie prin mesaje sau memorie partajat inter-core Performana limitat de procentul de soft ce poate fi paralelizat s ruleze simultan pe coruri multiple Unele metode de paralelism la nivel instruciune (ILP) precum asamblarea superscalara sunt adecvate

Consum mai mic dect dou procesoare single-core cuplate, nemaifiind necesar transmitere semnale n afara procesorului Procesoarele multi- core partajeaz aceleai circuite: cache L2, interfaa cu FSB(Front Side Bus); Necesit ajustri att ale SO ct i ale softului aplicaiilor curente; Softul multi-thread mai greu de depanat, dar tehnicile de programare paralel pot beneficia direct de multiple core-uri. Administrarea concurenei: partiionare/ descompunere problem n taskuri, Comunicare ntre taskuri, Aglomerare versus combinare taskuri pentru a furniza un numr mai mic de taskuri, fiecare de o dimensiune mai mare (replicare date sau calcule, pentru eficien), Maparea specific unde se execut fiecare task

C1

15

C1

16

several threads

several threads

several threads

several threads

c o r e 1

c o r e 2

c o r e 3

c o r e 4

C1

17

C1

18

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