Calculatoare
Procesor. proprietati. mod de functionarePROCESOR. PROPRIETATI. MOD DE FUNCTIONARE1 CONCEPTE CHEIE: BIOS (basic input/output system, system de intrare/iesire de baza). O colectie interna de coduri software ale unui calculator personal care gestioneaza unele sarcini fundamentale privind transimiterea de date dintr o parte a calcuatorului intr-alta. Pornire sau boot-are. Procesul care are loc atunci cind un calculator personal este pornit si efectuaeaza rutinele necesare pentru a si face toate componentele sa funcitioneze corect si apoi incarca sistemul de operare. Ceas. Un microcip care regleaza timing-ul si viteza tuturor functiilor calculatorului. Cipul include un cristal care vibreaza la o anumita frecventa atunci cind prin el trece curente electric. Cea mai scurta perioada de timp in care un calculator poate efectua o operatie oarecare reprezinta un ceas sau o vibratie a cipului ceas. Viteza ceasurilor – si, prin urmare, a calculatoarelor- este exprimata in mega-hertzi (Mhz). Un megahertz reprezinta un milion de cicluri (sau vibratii) pe secunda. Memorie ROM si RAM. Prescurtari pentru Read Only Memory si Random Access Memory. Memoria ROM reprezinta cipuri de memorie sau date stocate pe discuri, care pot fi citite de procesorul calculatorului. Calculatorul personal nu poate scrie date noi in aceste cipuri sau pe aceste discuri. Memoria RAM este reprezentata de memorie sau discuri care pot fi citite si pe care, de asemenea, se poate si scrie. Random Acces Memory este in realitate o denumire eronata, deoarece chiar si memoria ROM poate fi accesata in mod aleatoriu. Termenul a fost destinat initial deosebirii memoriei RAM de datele si programele stocate pe caseta magnetica, care puteau fi accesate doar secvential. Aceasta inseamna ca, pentru a ajunge la ultima transa de date sau cod de pe o caseta, un calculator trebuie sa citeasca toate informatiile continute de caseta respectiva, pana cand ajunge la locatia unde sunt stocate datele sau codul pe care le cauta. In schimb, un calculator poate sari direct la orice informatie stocata in locatii aleatorii din cipurile RAM sau pe disc. Fisiere de sistem. Mici fisiere care contin cod software si reprezinta primele fisiere pe care un calculator le citeste de pe disc atunci cand este pornit. In sistemele DOS si Windows, fisierele sunt denumite IO.SYS si MSDOS.SYS si sunt invizibile, astfel incat in mod obisnuit nu le puteti vedea atunci cand sunt afisate fisierele de pe un disc. Fisierele de sistem contin informatiile necesare pentru a incarca restul unui sistem de operare dupa boot-area hardware initiala. In DOS, un alt fisier de sistem este COMMAND.COM care contine functiile de baza ale sistemului de operare, cum ar fi afisarea unei liste de fisiere (director). Un disc de sistem trebuie sa contina toate cele trei fisiere pentru ca un calculator personal sa poata porni. Fisierele de sistem pot include, de asemenea, CONFIG.SYS care efectueaza unele setari initiale ale componentelor hardware, si AUTOEXEC.BAT, o colectie de comenzi sunt executate atunci cand au fost terminate toate celelalte functii de boot-are. Adder, half-adder, full-adder Diferite combinatii de tranzistori care efectueaza operatiuni matematice si logice asupra datelor care sunt procesate. Calcul cu set complex de instructiuni (complex instruction set computing, CISC). Un design de arhitectura de procesor in care instructiunile mari si complicate sunt defalcate in sarcini mai mic, inainte ca procesorul sa le execute. Calcul cu set redus de instructiuni (reduced instruction set computing, RISC). Un design de procesor in care sunt folosite numai instructiuni mici, rapid executabile. Opusul calculului de set complex de instructiuni. Canal (drain). Partea unui tranzistor in care curentul electric iese intr-un tranzistor, atunci cand acesta este inchis. Condensator. O componenta care stocheaza o sarcina electrica. Linie de adresa. O linie electrica sau un circuit asociat (a) cu o anumita locatie din memoria RAM. Linie de date. O linie electrica sau un circuit care transporta date; in special in cipurile de memorie RAM, un circuit care determina daca un bit reprezinta un 0 sau 1. Megahertz (Mhz). Unitate de masura, in milioane, a numarului de ori in care un lucru oscileaza sau vibreaza. Vitezele procesorului sunt, de regula, masurate in megahertzi. Pipelining. O arhitectura de calculator conceputa astfel incat toate componentele unui circuit functioneaza permanent, nici o parte din circuit nefiind blocata in asteptarea unor date de la o alta componenta. Memorie ascunsa (cache). Un bloc de memorie de mare viteza in care sunt copiate datele atunci cand acestea sunt recuperate din memoria RAM. In momentul in care datele sunt necesare pot fi recuperate din memoria ascunsa mai rapid decat din memoria RAM. Memoria Cache este mai rapida decat memoria RAM, asigurand viteza necesara lucrului cu procesorul. Memoreaza datele si instructiunile care se utilizeaza la un moment dat. Capacitate: 256KB-2MB. Pentium are memorii ascunse multiple, care totalizeaza pina la 2 MB de memorie. Ele sunt concepute pentru a asigura alimentarea constanta a unitatii aritmetice logice cu datele si instructiunile de care aceasta are nevoie. Aceste componente trebuie sa gestioneze fluxul de date si instructiuni in interiorul procesorului, sa interpreteze instructiunile astfel incat ele sa poata fi executate de procesor si sa trimita rezultatele inapoi la memoria calculatorului. In mod ideal, procesorul executa o instructiune la fiecare tact al ceasului calculatorului, care reglementeaza cat de repede functioneaza sistemul, un ideal care este desemnat prin expresia pipeling. Memoria CMOS memoreaza partea din BIOS si parametrii de functionare care pot fi stabiliti de catre utilizator. Este o memorie volatila care este pastrata sub tensiune de catre o baterie astfel ca datele nu se pierd la oprirea calculatorului. Magistrala(bus) este un canal comun de comunicatie intre placile calculatorului. Magistrala este formata dintr-un set de trasee de cupru pe o placa de circuit, pe care circula informatia (date, comenzi, semnale de control) sub forma de impulsuri electrice cu doua niveluri de tensiune corespunzatoare celor doua cifre binare 0 si 1. Conectorii la magistrala (bus connectors) prin intermediul carora se leaga optional la placa de baza placile adaptoare sau interfetele pentru imprimanta, pentru modemul liniei telefonice, pentru ecran, pentru unitatile de discuri flexibile etc. Daca aceste placi ar fi legate direct la placa de baza, ar trebui definite clar conexiunile penru fiecare placa. In plus, ar trebui stabilite semnalele de dialog antre fiecare pereche de placi care dialogheaza. Sistemul ar avea o flexibilitate redusa. El ar deveni un sistem inchis. Microcip. O bucata de dioxid de silicon pe care au fost gravate circuite electrice microscopice, folosint un sistem de lumini, filme senzitive la lumina si bai acide. MMX. Un set de instructiuni care accelereaza operatiunile solicitate pentru multimedia. Setul este construit in procesoarele Intel Pentium. Registru. Un set de tranzistori dintr-un procesor in care sunt stocate temporar date in timp ce procesorul efectueaza calcule care implica datele respective . SIMD (Single Instruction Multiple Data/ Instructiune unica, date multiple). O arhitectura de procesor care permite aceleiasi operatiuni sa fie efectuate simultan asupra unor seturi multiple de date. Tranzistor. Un comutator microscopic care controleaza fluxul de electricitate ce trece prin el, in functie de modul in care o sarcina electrica diferita a deschis sau a inchis circuitul. Tranzistorul este blocul fundamental din care sunt construite toate microcipurile. Tranzistorul poate crea numai informatii binare : un 1 daca curentul trece si un 0 daca curentul nu trece. Bitii pot, la fel de usor, sa tina locul valorilor de “adevarat” (1) sau “fals” (0), ceea ce permite calculatoarelor sa trateze logica booleana. Combinatiile de tranzistori in diferite configuratii sunt numite porti logice. In plus, tranzistorii fac posibil ca o cantitate mica de curent electric sa controleze un al doilea curent, mult mai puternic- la fel cum cantitatea mica de energie necesara pentru a aprinde un comutator de perete poate controla energia mult mai puternica ce circula prin fire. Crearea unui cip din tranzistoriMii de tranzistori sunt conectati pe o singura placa de siliciu. Placa este incadrata intr o bucata de material plastic sau ceramic, iar capetele circuitelor sunt atasate la piste metalice care se extind, pentru a conecta cipul la alte componente ale placii de circuite integrate. Pistele transporta semnale in interiorul cipului si trimit semnale din cip catre componente ale calculatorului. 2 MicroprocesorulMicroprocesorul este componenta de baza a unitatii centrale de prelucrare, reprezentand creierul artificial al unui microcalculator. Din punct de vedere fizic este realizat dintr-o capsula ceramica sau plastic (circiut integrat pe scara larga in interiorul caruia se afla mai multe componente electronice, numarul acestora diferind de la un tip la altul in functie de tehnologia de fabricatie si generatia din care face parte. La microprocesor este atasat un racitor (cooler), ansamblu format dintr-un ventilator mic si un radiator avand rolul important de racire a microprocesorului. Cooler-ul este necesar pentru microprocesoare mai puternice decat un 486DX2/66 MHz. Datorita curentului electric care circula prin circuitele integrate, fara un cooler, un microprocesor devine de neatins (datorita caldurii la care materialul din care este confectionat poate ajunge) intr-un timp extrem de scurt, aproximativ 20 de secunde, iar dupa o scurta perioada de timp, se deterioreaza, circuitele practic topindu-se. De la aparitia circuitului integrat, procesoarele au cunoscut progrese rapide. Numarul de tranzistori pe care proiectantii au reusit sa-l impacheteze intr-un cip s-a dublat la fiecare 18 luni. Astfel, in intervalul de 10 ani procesoarele din familia x86 au crescut in densitatea circuitelor logice de 20 de ori. Bazele acestei imbunatatiri continue o reprezinta fotolitografia, tehnologie prin care circuitele integrate se realizeaza prin depunerea, una peste alta, in straturi succesive, a unor structuri de metal sau siliciu tratat chimic prin care se obtine pastila de siliciu. Posibilitati de dezvoltare mai exista dar, dupa cum afirma specialistii, aceasta tehnologie este limitata de frecventa razei de lumina si de rezolutia lentilelor. De aceea cercetatorii cauta noi solutii, una oferind reale posibilitati si are la baza principiile mecanicii cuantice. Procesorul actualelor sisteme poate fi un microprocesor sau un ansamblu integrat de microprocesoare. Orice procesor contine patru blocuri functionale de baza: unitatea de comanda si control (UCC), unitatea aritmetico-logica (UAL), registrele procesorului, unitatea de interfata cu celelalte componente (UI). Unitatea de comanda si control comanda, controleaza si coordoneaza intregul proces de prelucrare a datelor si functionarea corecta a tuturor componentelor sistemului pe baza comenzilor transmise de utilizator si memorate in memoria interna a calculatorului. Unitatea aritmetico-logica (UAL) este alcatuita din totalitatea circuitelor electronice prin care se realizeaza prelucrarea datelor ceruta prin instructiuni si comenzi. Aceste circuite sunt structurate pe registre (8, 16, 32, 64 biti) corelate cu lungimea cuvantului de memorie (16, 32, 64 biti). Principalele tipuri de operatii elementare pe care le poate realiza UAL sunt: adunare logica, operatii logice de tip AND, OR, NOT, XOR, operatii de complementare a datelor, operatii de deplasare a datelor cu un bit la stanga sau la dreapta. Operatiunile complexe asupra datelor sunt realizate de microprocesor prin combinarea operatiunilor elementare. Registrele microprocesorului functioneaza ca o memorie RAM proprie in sensul ca pastreaza temporar informatii ce urmeaza a fi prelucrate sau rezultate ale prelucrarilor pana la transmiterea acestora catre memoria RAM. Dintre registrele de date si de adresare ale microprocesorului mai importante sunt: n registrul de date care pastreaza datele ce urmeaza a fi prelucrate de microprocesor sau rezultatele prelucrarii care urmeaza a fi transmise catre memorie pentru stocare; n registrul de instructiuni care contine intotdeauna codul instructiunii curente, identificat de UCC pentru a genera secventa de operatii elementare si a decide executia acesteia. n registrul contor-program contine adresa urmatoarei instructiuni ce urmeaza a fi apelata din memoria RAM si prelucrata. Codul instructiunii continute in registrul contor-program va fi transferat in registrul de instructiuni dupa terminarea prelucrarii instructiunii curente, iar instructiunea adresata prin registrul program va deveni instructiune curenta n registrul contor-date contine adresa operanzilor ce vor fi preluati din memoria RAM si depusi in registrul de date pentru prelucrare. Odata cu incarcarea codului instructiunii ce urmeaza a se executa in registrul de instructiuni are loc si transmiterea unei comenzi de incarcare a operanzilor in registrul de date, pe baza adresei contiunte de registrul contor-date. Toate operatiunile aritmetice si/sau logice, de adresare, de transfer etc au loc pe baza unui dialog intre microprocesor si memoria interna, pe de o parte, iar pe de alta parte intre componentele functionale ale microprocesorului. Un microprocesor este caracterizat in principal de: frecventa de lucru; dimensiunea memoriei intene ce poate fi adresata la un moment dat setul de instructiuni ce poate fi executat; fiabilitatea si costul de fabricatie. Frecventa de lucru a microprocesorului se masoara in megahertzi (MHz), adica in milioane de impulsuri pe secunda. De exemplu, daca un microprocesor are frecventa de 900 MHz inseamna un semnal cu 900 de milioane de impulsuri pe secunda. Cu cat aceasta frecventa este mai mare, cu atat microprocesorul este mai performant, deoarece ea este direct proportionala cu viteza cu care microprocesorul executa instructiunile, deci cu viteza de lucru a calculatorului. Pentru sistemul de operare Windows XP , care este un mare consumator de resurse, se recomanda un procesor cu o frecventa de cel putin MHz. Toate aceste elemente determina viteza de lucru a microprocesorului, adica determina cat de repede executa microprocesorul o instructiune. Viteza se masoara in milioane de instructiuni pe secunda - MIPS sau MFLOPS. Un calculator performant are o viteza de executie de ordinul a 2-30 MIPS. In acest moment, exista doua categorii de microprocesoare: CISC (Complex Instruction Set Computer) si RISC (Reduced Instruction Set Computer). Cele mai raspandite microprocesoare sunt cele CISC (avand ca reprezentati microprocesoarele INTEL : X86, Pentium). Microprocesoarele RISC implementeaza mai putine instructiuni, sunt mai simplu de proiectat si mai ieftine. Cateva exemple de microprocesoare RISC sunt: PowerPC (dezvoltat de Motorola, IBM si Apple); Alpha si MIPS R400 (dezvoltate de Digital Equipment Corporation). O abordare speciala o reprezinta arhitectura CISC bazata pe tehnici de tip RISC care duce la o viteza de executare a aplicatiilor CISC comparabila cu cea a sistemelor RISC. Este cazul solutiilor AMD si Cyrix. Viteza depinde de depinde de urmatorii factori:
A. Frecventa ceasului intern Functionarea microprocesorului este coordonata de un ceas intern al calculatorului. Ceasul intern este ca un oscilator care trimite in calculator pulsuri, la intervale egale de timp, bine determinate necesare pentru a comanda realizarea operatiunilor programate si sincronizarea tuturor functiilor calculatorului. Frecventa ceasului se masoara in MHz. Cu cat aceasta frecventa este mai mare cu atat microprocesorul este mai performant deoarece ea este direct proportionala cu viteza cu care microprocesorul executa instructiunile, deci cu viteza de lucru a calculatorului. B.Dimensiunea registrelor interne si a magistralei de date Cu cat dimensiunea registrilor microprocesorului este mai mare, cu atat creste viteza de lucru a acestuia, aceasta deoarece creste capacitatea de memorare in interiorul microprocesorului (in registrii sai) si deci numarul de operatii de transfer cu memoria interna (care necesita timp) scade. De asemenea, dimensiunea magistralei de date influenteaza viteza de lucru a microprocesorului intrucat debitul de date care circula pe magistrala este direct proportional cu dimensiunea acesteia. O magistrala de date ingusta poate gatui un calculator, chiar daca toate celellate componente sunt rapide. C. Dimensiunea memoriei cache Toate microprocesoarele, incepand cu familia 486 dispun de o componenta standard, incluzand un controler pentru memoria cache (memoria tampon rapida). Memoria cache este o zona de memorie foarte rapida cu rol de a pastra o parte din seturile de instructiuni si de date cu care se lucreaza in mod curent. Acesta memorie poate lucra integral in ritmul procesorului, ea fiind accesata fara cicluri de asteptare. Aceasta solutie face ca procesorul sa nu mai stea in asteptarea codurilor de instructiuni sau a datelor primite de la memoria principala, mult mai lenta, ducand la imbunatatirea performantelor. Cu cat memoria cache este mai mare, cu atat viteza microprocesorului creste. 2. Dimensiunea memoriei interne ce poate fi accesata la un moment dat Valoarea maxima a memoriei adresabile este importanta in primul rand pentru ca microprocesorul lucreaza mult mai rapid cu memoria interna decat cu cea externa, iar in al doilea rand pentru ca un program sa poata fi executat trebuie sa se gaseasca neaparat in memoria interna 3. Setul de instructiuni pe care un calculator le poate executa este in general caracterizat direct de tipul microprocesorului. Cu cat setul este mai bogat, cu atat mai multe domenii de activitate pot fi abordate. O instructiune sau o comanda transmisa de utilizator, prin program, contine o serie de informatii privind natura operatiei sau functiei ce trebuie executata, operanzii care participa la realizarea operatiunilor aritmetice sau logice, locul unde se afla operanzii sau unde se vor depune rezultatele prelucrarii, componentele sistemului ce trebuie activate pentru executarea operatiunilor. Instructiunile din setul recunoscut de procesor pot fi grupate in: - instructiuni aritmetice; - instructiuni de transfer a datelor - generale, de conversie, de intrare/iesire etc. - instructiuni de prelucrare a sirurilor; - instructiuni de manipulare a informatiilor la nivel de bit; - instructiuni de control a programelor, salt conditionat, salt neconditionat, iteratii si intreruperi; - instructiuni logice (AND, OR, NOT, XOR, TEST), de deplasare si rotire (stanga, dreapta si dublu sens). Fiabilitatea si costul de fabricatie Functionarea corecta, pe o perioada mai indelungata a microprocesorului indica o fiabilitate soprita si care raportata la costul acestuia constituie criteriile de decizie in alegerea unui anumit tip de microcalculator. Performantele procesorului pot fi exprimate prin: durata ciclului procesorului lungimea cuvantului repertoriul de instructiuni durata executarii instructiunilor Tipul microprocesorului Durata ciclului procesorului reprezinta intervalul de timp in care se efectueaza un transfer intre doua registre ale procesorului. Cuvantul microprocesorului reprezinta numarul de biti intotdeauna multiplu de octeti care pot fi prelucrati la un moment dat de catre microprocesor (de exemplu 8 biti,16 biti,32 biti,64 biti). Cu cat cuvantul are mai multi biti, cu atat viteza de lucru a microprocesorului este mai mare si el este mai performant. Repertoriu de instructiuni contine mnemonicele instructiunilor au caracter orientativ. Durata executarii unei instructiuni reprezinta timpul necesar desfasurarii fazei de citire-interpretare si a fazei de executie a acelei instructiuni. Tipul microprocesorului defineste apartenenta microprocesorului la o familie de microprocesoare care au caracteristici comune. Pe calculatoarele IBM-PC, cat si pe cele compatibile IBM se intalnesc microprocesoarele din familiile INTEL 80x86, unde x=0, 1, 2, 3, 4, 5, 6, Cu cat x este mai mare, cu atat microprocesorul este mai performant (de exemplu, 80686) va putea intelege si executa instructiunile unui program scris pentru un microprocesor mai putin performant (de exemplu, 80486). Procesoarele folosite de calculatoarele IBM-PC sau compatibile IBM-PC sunt produse de firme ca Intel, AMD, Cyrix, etc. Familia din care acestea fac parte se stabileste prin compararea performantelor cu familiile de procesoare Intel: 286, 386, 486, Pentium, PentiumII, PentiumIII, PentiumIV,etc. In cadrul aceleiasi familii, microprocesoarele sunt compatibile intre ele. Trebuie amintit ca un calculator poate avea unul sau mai multe procesoare . Placile de baza ‘normale’ permit prezenta unui singur procesor , insa sunt producatori ce ofera optiunea de ‘dual processor’. Astfel in sistemele produse de Digital , HP se pot intalni intre 2-8 procesoare. Problema este ca numai anumite sisteme de operare stiu sa foloseasca multiprocesarea (Linux , SunOs , Unix , WindowsNT) . Astfel in Windows 9x prezenta unui processor suplimentar nu va influenta cu nimic performanta sistemului. Sistemele multiprocessor sunt folosite in servere sau in statii de lucru cu flux mare de date (CAD , GIS , etc) . Un alt motiv de a folosi un sistem multiprocessor este securitatea oferita. Astfel in cazul unei defectiuni produse la unul din procesoare conducerea va fi luata de celalalt . 3 CUM FUNCTIONEAZA UN CIP PENTIUMPas 1. Microprocesorul Pentium de la Intel este alcatuirt din doua bucati de siliciu. Una este unitatea centrala de prelucrare de 5,5-9,5 milioane de tranzistori, unde sunt executate intructiunile programelor. Cealalta este o memorie ascunsa 2 (cache 2, L2), de mare viteza, special conceputa. Cei 15,5 milioane de tranzistori ai sai pot stoca pana la 512 kilobytes de date si cod. Primele procesoare foloaseau, de regula, o memorie cache separata de procesor, care de regula facea parte din placa de baza a calculatorului. Pas 2. Procesorul si memoria cache partajeaza aceeasi interfata pe 64 de biti pentru informatiile calculatorului. Codul de program sau datele manipulate de codul respectiv intra si ies din cip la viteza maxima a magistralei (bus) calculatorului personal, nu mai mult de 100MHz chiar si pentru procesoarele care functioneaza intern la 200 MHzⁿ(la puterea 20). O mare parte din designul pentiumului este structurata pentru a micsora piedica reprezentata de magistrala reducand numarul de ori in care un ceas cicleaza –cel mai mic interval de timp in care un calculator poate realiza o operatiune – fara ca procesorul sa finalizeze o operatiune. Pas 3. Atunci cand informatiile intra in procesor prin intermediul unitatii de interfata cu magistrala (bus interface unit, BIU), aceasta duplica informatiile, trimite o copie la memoria L2 cache care este strans legata de unitatea centrala de prelucrare si o alta la o pereche de memorii ascunse de nivelul 1 (L1 cache), a caror marime variaza de la 8 la 16 KB si care sunt construite direct in unitatea centrala de prelucrare. Unitatea de interfata a magistralei trimite codul de program la memoria ascunsa de instructiuni L1( instructiuni cahe sau l-cache) si trimite date care trebuie sa fie folosite de cod catre o alta memorie ascunsa L1, memoria ascunsa de date (data cache, D-cache). Pas4. In timp ce unitatea de apelare/decodare (fetch/decode unit) extrage instructiunile din memoria cache de instructiuni, unitatea branch target buffer (BTB) compara fiecare instructiune cu o inregistrare dintr-un tampon separat, pentru a vedea daca o anumita instructiune nu a fost folosita anterior. Unitatea branch target buffer cauta in particular instructiuni care implica defalcarea (branching), o situatie in care executia programului poate urma oricare din doua cai. Daca unitatea branch target buffer gaseste o instructiune de defalcare, el prezice, pe baza experientei din trecut, calea pe care o va lua programul. Predictiile sunt corecta in proportie de peste 90% din cazuri. Pas In timp ce unitatea de apelare/decodare extrage instructiunile in ordinea prezisa de unitatea branch target buffer, trei decodoare care lucreaza in paralel defalcheaza instructiunile mai complexe in mu-ops, care sunt micro-operatiuni mai mici, pe 274 biti. Unitatea de livrare/executie (dispatch/execution unit) proceseaza mai rapid mai multe micro-operatiuni decat ar procesa o singura instructiune de nivel mai inalt. Pas 6. Unitatea de decodare trimite toate micro-operatiunile la cartelul de instructiuni (instruction pool), care mai este denumit si Tampon de re-ordonare (ReOrder Buffer). Acesta contine doua unitati aritmetice logice (arithmetic logic units, ALUs) care gestioneaza toate calculele care implica numere intregi. Unitatile aritmetice logice folosesc un tampon circular, cu un cap si o coada, care contine micro-operatiunile in ordinea in care unitatea BTB estimeaza ca va fi nevoie de ele. Pas 7. Unitatea de livrare/executie verifica fiecare micro-operatiune din tampon, pentru a vedea daca are toate informatiile necesare pentru procesarea sa si, atunci cand gaseste o micro-operatiune gata de procesare, unitatea o executa, stocheaza rezultatul in chiar micro-operatiunea respectiva si o marcheaza ca efectuata. Pas 8. Daca o micro-operatiune are nevoie de mai multe date din memorie, unitatea de executie trece peste ea si procesorul cauta informatiile mai intai in memoria cache L1 aflata in imediata apropiere. Daca datele nu se afla aici, procesorul verifica memoria cache L2, de dimensiuni mult mai mari. Deoarece memoria cache L2 este integrata cu unitatea centrala de prelucrare, informatiile se transfera intre ele de 2-4 ori mai repede decat intre unitatea centrala de prelucrare si magistrala externa. La o viteza a cipului de 150MHz, informatiile sunt recuperate cu o rata de 1,2 GB pe secunda, in comparatie cu 528 MB /s, daca unitatea centrala de prelucrare trebuie sa ajunga la memoria externa pentru a obtine informatiile. Pas 9. In loc sa stea inactiva pana cand informatiile sunt apelate, unitatea de executie continua inspectarea fiecarei micro-operatiuni din tampon. Atunci cand ea gaseste o micro-operatiune care are toate informatiile care are toate informatiile de care este nevoie pentru procesarea sa, unitatea o executa, stocheaza rezultatele in chiar micro-operatiunea respectiva si trece la urmatoarea micro-operatiune. Aceastqa procedura este denumita executie speculativa, deoarece ordinea micro-operatiunilor din tamponul circular se bazeaza pe prezicerile unitatii BTB. Unitatea executa pana la cinci micro-operatiuni simultan. Atunci cand unitatea de executie ajunge la sfarsitul tamponului, ea reia de la inceput, verificand din nou toate micro-operatiunile, pentru a vedea daca vreuna dintre ele a primit datele de care are nevoie pentru a fi executata. Pas 10. Daca o operatiune implica numere cu virgula mobila (floating-point numbers), cum ar fi 3,14 sau 0,33333, unitatile aritmetice logice transmit sarcina unitatii matematice cu vigula mobila, care contine instrumente de procesare concepute pentru manipularea rapida a numerelor cu virgula mobila. Pas 11. Atunci cand o micro-operatiune care a fost amanata este in cele din urma procesata, unitatea de executie compara rezultatele cu cele prezise de unitatea BTB. Atunci cand prezicerea este eronata, o componenta numita unitate de executie a sariturii (jump execution unit, JEU) muta marcatorul de final de la ultima micro-operatiune la aceea care a prezis ca toate micro-opertiunile de dupa marcatorul de final trebuie ignorte si pot fi supra-scrise de alte micro-operatiuni. Se transmite BTB ca predictia sa era incorecta si informatiile respective devin parte din viitoarele sale preziceri. Pas 12. Intre timp, tamponul cicular este inspectat, de asemenea, de catre unitatea de retragere (retirement unit). El verifica sa vada daca micro-operatiunea de la inceputul tamponului a fost executata. Daca nu a fost executata, unitatea de retragere continua sa verifice pana cand ea a fost procesata. Apoi, unitatea de retragere verifica a doua si a treia micro-operatiune. Daca acestea sunt deja executate, unitatea trimite toate cele trei rezultate – numarul maxim – catre tamponul de stocare. Acolo, unitatea de prezicere le verifica o ultima data inainte de a fi trimise la locul corespunzator din memoria RAM a sistemului.
|