Ce nume are partea din spate a procesorului? Cum functioneaza procesorul? Socluri pentru procesor AMD

Designul și principiul de funcționare al procesorului

Procesorul este principalul dispozitiv de calculator care efectuează operații logice și aritmetice și controlează toate componentele computerului. Procesorul este o placă de siliciu dreptunghiulară subțire în miniatură pe care sunt plasate un număr mare de tranzistoare care implementează toate funcțiile îndeplinite de procesor. Placa de siliciu este foarte fragilă și, deoarece orice deteriorare a acesteia va duce la defectarea procesorului, este plasată într-o carcasă din plastic sau ceramică.

1. Introducere.

Un procesor modern este un dispozitiv complex și de înaltă tehnologie care include toate cele mai recente realizări în domeniul calculului și în domeniile conexe ale științei.

Cele mai multe procesoare moderne constau din:

  • unul sau mai multe nuclee care execută toate instrucțiunile;
  • mai multe niveluri de memorie cache (de obicei 2 sau trei niveluri), accelerând interacțiunea procesorului cu RAM;
  • controler RAM;
  • controler magistrală de sistem (DMI, QPI, HT etc.);

Și se caracterizează prin următorii parametri:

  • tip de microarhitectură;
  • frecvența ceasului;
  • set de comenzi de executat;
  • numărul de niveluri de memorie cache și volumul acestora;
  • tipul și viteza magistralei de sistem;
  • dimensiunea cuvintelor procesate;
  • prezența sau absența unui controler de memorie încorporat;
  • tipul de RAM suportat;
  • volumul memoriei adresabil;
  • prezența sau absența unui nucleu grafic încorporat;
  • Consumul de energie.

O diagramă bloc simplificată a unui procesor multi-core modern este prezentată în Figura 1.

Să începem revizuirea designului procesorului cu partea sa principală - nucleul.

2. Miezul procesorului.

Nucleul procesorului este partea sa principală, care conține toate blocurile funcționale și efectuează toate operațiile logice și aritmetice.

Figura 1 prezintă o diagramă bloc a miezului procesorului. După cum se poate vedea în figură, fiecare nucleu de procesor este format din mai multe blocuri funcționale:

  • bloc de preluare a instrucțiunilor;
  • blocuri de decodare a instrucțiunilor;
  • blocuri de eșantionare a datelor;
  • Unitatea de comandă;
  • blocuri de execuție a instrucțiunilor;
  • blocuri pentru salvarea rezultatelor;
  • bloc de lucru cu întreruperi;
  • ROM care conține microcod;
  • set de registre;
  • contor de programe.

Bloc de preluare a instrucțiunilor citește instrucțiuni la adresa specificată în contorul de programe. De obicei, citește mai multe instrucțiuni pe ciclu de ceas. Numărul de instrucțiuni citite este determinat de numărul de blocuri de decodare, deoarece este necesar să încărcați blocurile de decodare cât mai mult posibil la fiecare ciclu de operare. Pentru ca unitatea de preluare a instrucțiunilor să funcționeze optim, nucleul procesorului are un predictor de ramificație.

Predictor de tranzițieîncearcă să determine ce secvență de comenzi va fi executată după ce a fost efectuată o tranziție. Acest lucru este necesar pentru a încărca conducta de bază a procesorului cât mai mult posibil după un salt condiționat.

Blocuri de decodare, după cum sugerează și numele, sunt blocuri care se ocupă de instrucțiuni de decodare, i.e. determinați ce trebuie să facă procesorul și ce date suplimentare sunt necesare pentru a executa instrucțiunea. Această sarcină este foarte dificilă pentru majoritatea procesoarelor comerciale moderne construite pe conceptul CISC. Faptul este că lungimea instrucțiunilor și numărul de operanzi nu sunt fixe, iar acest lucru complică foarte mult viața dezvoltatorilor de procesoare și face ca procesul de decodare să fie o sarcină netrivială.

Adesea, instrucțiunile complexe individuale trebuie înlocuite cu microcod - o serie de instrucțiuni simple care efectuează în mod colectiv aceeași acțiune ca o instrucțiune complexă. Setul de microcoduri este flash în ROM-ul încorporat în procesor. În plus, microcodul simplifică dezvoltarea procesorului, deoarece nu este nevoie să se creeze blocuri complexe de nucleu pentru a executa comenzi individuale, iar repararea microcodului este mult mai ușoară decât repararea unei erori în funcționarea blocului.

Procesoarele moderne au de obicei 2-4 blocuri de decodare de instrucțiuni, de exemplu, în procesoarele Intel Core 2, fiecare nucleu conține două astfel de blocuri.

Blocuri de eșantionare a datelor Preluați datele din memoria cache sau RAM necesare pentru a executa instrucțiunile curente. De obicei, fiecare nucleu de procesor conține mai multe blocuri de eșantionare a datelor. De exemplu, procesoarele Intel Core folosesc două mostre de date pentru fiecare nucleu.

Bloc de control Pe baza instrucțiunilor decodificate, controlează funcționarea blocurilor de execuție a instrucțiunilor, distribuie sarcina între ele și asigură executarea corectă și la timp a instrucțiunilor. Acesta este unul dintre cele mai importante blocuri ale nucleului procesorului.

Blocuri de execuție a instrucțiunilor include mai multe tipuri diferite de blocuri:

ALU – unitate aritmetică logică;

FPU – dispozitiv pentru efectuarea de operații în virgulă mobilă;

Blocuri pentru procesarea extinderii setului de instrucțiuni. Sunt folosite instrucțiuni suplimentare pentru a accelera procesarea fluxurilor de date, criptarea și decriptarea, codificarea video și așa mai departe. Pentru a face acest lucru, în miezul procesorului sunt introduse registre și seturi de logică suplimentare. În prezent, cele mai populare extensii la seturile de instrucțiuni sunt:

MMX (Multimedia Extensions) este un set de instrucțiuni dezvoltat de Intel pentru a accelera codificarea și decodificarea datelor audio și video în flux;

SSE (Streaming SIMD Extensions) este un set de instrucțiuni dezvoltat de Intel pentru a efectua aceeași secvență de operații pe un set de date în timp ce paralelizează procesul de calcul. Seturile de comenzi sunt in permanenta imbunatatite, iar in acest moment sunt revizuiri: SSE, SSE2, SSE3, SSSE3, SSE4;

ATA (Application Targeted Accelerator) este un set de instrucțiuni dezvoltat de Intel pentru a accelera funcționarea software-ului specializat și a reduce consumul de energie atunci când lucrați cu astfel de programe. Aceste instrucțiuni pot fi utilizate, de exemplu, la calcularea sumelor de control sau la căutarea datelor;

3DNow este un set de instrucțiuni dezvoltat de AMD pentru a extinde capacitățile setului de instrucțiuni MMX;

AES (Advanced Encryption Standard) este un set de instrucțiuni dezvoltat de Intel pentru a accelera funcționarea aplicațiilor care utilizează criptarea datelor folosind același algoritm.

Bloc de salvare a rezultatelor se asigură că rezultatul executării instrucțiunii este înregistrat în RAM la adresa specificată în instrucțiunea în curs de procesare.

Blocarea întreruperii. Lucrul cu întreruperi este una dintre cele mai importante sarcini ale procesorului, permițându-i să răspundă la evenimente în timp util, să întrerupă progresul programului și să efectueze acțiunile necesare. Datorită prezenței întreruperilor, procesorul este capabil să funcționeze pseudo-paralel, adică la așa-numitul multitasking.

Întreruperile sunt tratate după cum urmează. Procesorul verifică o solicitare de întrerupere înainte de a începe fiecare ciclu. Dacă există o întrerupere de gestionat, procesorul stochează în stivă adresa instrucțiunii pe care trebuia să o execute și datele primite de la executarea ultimei instrucțiuni și trece la executarea funcției de serviciu de întrerupere.

După ce funcția de procesare a întreruperii se termină de execuție, datele stocate pe ea sunt citite din stivă, iar procesorul reia executarea sarcinii restaurate.

Registrele– RAM ultra-rapidă (accesul la registre este de câteva ori mai rapid decât accesul la memoria cache) de volum mic (câteva sute de octeți), inclusă în procesor, pentru stocarea temporară a rezultatelor intermediare ale execuției instrucțiunilor. Registrele procesoarelor sunt împărțite în două tipuri: registre de uz general și registre speciale.

Registrele de uz general sunt utilizate atunci când se efectuează operații aritmetice și logice, sau operații specifice ale seturilor de instrucțiuni suplimentare (MMX, SSE etc.).

Registrele cu scop special conțin date de sistem necesare pentru ca procesorul să funcționeze. Astfel de registre includ, de exemplu, registre de control, registre de adrese de sistem, registre de depanare etc. Accesul la aceste registre este strict reglementat.

Contor de programe– un registru care conține adresa instrucțiunii pe care procesorul o va începe să o execute la următorul ciclu de ceas.

2.1 Principiul de funcționare a nucleului procesorului.

Principiul de funcționare al nucleului procesorului se bazează pe un ciclu descris de John von Neumann în 1946. Într-o formă simplificată, etapele ciclului miezului procesorului pot fi reprezentate după cum urmează:

1. Unitatea de preluare a instrucțiunilor verifică întreruperi. Dacă există o întrerupere, atunci datele registrelor și ale contorului de programe sunt scrise în stivă, iar adresa comenzii de gestionare a întreruperilor este scrisă în contorul de programe. La sfârșitul funcției de gestionare a întreruperilor, datele din stivă vor fi restaurate;

2. Unitatea de preluare a instrucțiunii citește adresa instrucțiunii care urmează să fie executată din contorul de programe. Comanda este citită din memoria cache sau din RAM la această adresă. Datele primite sunt transmise la unitatea de decodare;

3. Unitatea de decodare a comenzii decriptează comanda, dacă este necesar folosind microcodul înregistrat în ROM pentru a interpreta comanda. Dacă aceasta este o comandă de salt, atunci adresa de salt este scrisă în contorul de program și controlul este transferat în blocul de preluare a instrucțiunilor (punctul 1), în caz contrar, contorul de program este mărit cu dimensiunea instrucțiunii (pentru un procesor cu o lungime a instrucțiunii de 32 biți - cu 4) și transferă controlul către blocul de preluare a datelor;

4. Unitatea de eșantionare a datelor citește datele necesare executării comenzii din memoria cache sau RAM și transferă controlul către planificator;

5. Blocul de control determină ce bloc de execuție a instrucțiunii va procesa sarcina curentă și transferă controlul acestui bloc;

6. Blocurile de execuție a instrucțiunilor efectuează acțiunile cerute de comandă și transferă controlul către blocul de salvare a rezultatelor;

7. Dacă este necesară salvarea rezultatelor în RAM, blocul de stocare a rezultatelor efectuează acțiunile necesare și transferă controlul către blocul de preluare a instrucțiunilor (punctul 1).

Bucla descrisă mai sus se numește proces (de aceea un procesor se numește procesor). Secvența de comenzi executate se numește program.

Viteza de trecere de la o etapă a ciclului la alta este determinată de frecvența de ceas a procesorului, iar timpul de funcționare al fiecărei etape a ciclului și timpul petrecut pentru execuția completă a unei instrucțiuni sunt determinate de proiectarea miezul procesorului.

2.2. Modalități de îmbunătățire a performanței nucleului procesorului.

Creșterea performanței nucleului procesorului prin creșterea frecvenței de ceas are o limitare strictă. Creșterea frecvenței de ceas implică o creștere a temperaturii procesorului, a consumului de energie și o scădere a stabilității funcționării și a duratei de viață a acestuia.

Prin urmare, dezvoltatorii de procesoare folosesc diverse soluții arhitecturale pentru a crește performanța procesorului fără a crește viteza de ceas.

Să ne uităm la principalele modalități de a crește performanța procesorului.

2.2.1. Conducte.

Fiecare instrucțiune executată de procesor trece secvențial prin toate blocurile de nucleu, fiecare dintre ele efectuând propria sa parte din acțiunile necesare executării instrucțiunii. Dacă începeți să procesați o nouă instrucțiune numai după finalizarea lucrării la prima instrucțiune, atunci majoritatea blocurilor de bază ale procesorului vor fi inactive la un moment dat și, în consecință, capacitățile procesorului nu vor fi utilizate pe deplin.

Să luăm în considerare un exemplu în care procesorul va executa un program format din cinci instrucțiuni (K1–K5), fără a utiliza principiul pipeline-ului. Pentru a simplifica exemplul, presupunem că fiecare bloc de bază al procesorului execută o instrucțiune într-un ciclu de ceas.

Deci tu Exemple de instrucțiuni Instrucțiuni de decodare Eșantionarea datelor Executarea instrucțiunilor Salvarea rezultatului
1 K1 - - - -
2 - K1 - - -
3 - - K1 - -
4 - - - K1 -
5 - - - - K1
6 K2 - - - -
7 - K2 - - -
8 - - K2 - -
9 - - - K2 -
10 - - - - K2
11 K3 - - - -
12 - K3 - - -
13 - - K3 - -
14 - - - K3 -
15 - - - - K3
16 K4 - - - -
17 - K4 - - -
18 - - K4 - -
19 - - - K4 -
20 - - - - K4
21 K5 - - - -
22 - K5 - - -
23 - - K5 - -
24 - - - K5 -
25 - - - - K5

După cum se poate observa din tabel, procesorul a avut nevoie de 25 de cicluri de ceas pentru a executa cinci instrucțiuni. În același timp, în fiecare ciclu, patru din cele cinci blocuri ale nucleului procesorului erau inactive, adică. Procesorul a folosit doar 20% din potentialul sau. Desigur, la procesoarele reale totul este mai complicat. Blocuri de procesoare diferite rezolvă probleme de complexitate diferită. De asemenea, instrucțiunile în sine variază în complexitate. Dar, în general, situația rămâne aceeași.

Pentru a rezolva această problemă, în toate procesoarele moderne, execuția instrucțiunilor este construită pe principiul unei conducte, adică pe măsură ce blocurile nucleului sunt eliberate, acestea sunt încărcate prin procesarea următoarei instrucțiuni, fără a aștepta până când instrucțiunea anterioară este complet executată. .

Să ne uităm la un exemplu de executare a aceluiași program, constând din cinci instrucțiuni, dar folosind principiul pipeline-ului.

Deci tu Exemple de instrucțiuni Instrucțiuni de decodare Eșantionarea datelor Executarea instrucțiunilor Salvarea rezultatului
1 K1 - - - -
2 K2 K1 - - -
3 K3 K2 K1 - -
4 K4 K3 K2 K1 -
5 K5 K4 K3 K2 K1
6 - K5 K4 K3 K2
7 - - K5 K4 K3
8 - - - K5 K4
9 - - - - K5

Același program a fost executat în 9 cicluri de ceas, ceea ce este de aproape 2,8 ori mai rapid decât atunci când lucrați fără o conductă. După cum se poate observa din tabel, sarcina maximă a procesorului a fost obținută la ciclul 5. În acest moment, toate blocurile nucleului procesorului au fost folosite. Și de la primul până la al patrulea ciclu, inclusiv, transportorul a fost umplut.

Deoarece procesorul execută instrucțiuni în mod continuu, atunci, în mod ideal, ar putea fi 100% ocupat, iar cu cât conducta este mai lungă, cu atât s-ar obține un câștig de performanță mai mare. Dar în practică nu este cazul.

În primul rând, fluxul de comandă real procesat de procesor este inconsecvent. Conține adesea tranziții. În același timp, până când comanda de salt condiționat este procesată complet, conducta nu va putea începe să execute o nouă comandă, deoarece nu știe la ce adresă se află.

După o tranziție condiționată, transportorul trebuie reumplut. Și cu cât conducta este mai lungă, cu atât durează mai mult. Ca rezultat, câștigul de productivitate din introducerea unui transportor este redus.

Pentru a reduce influența ramurilor condiționate asupra funcționării conductei, blocurile de predicție a ramurilor condiționate sunt introduse în miezul procesorului. Sarcina principală a acestor blocuri este de a determina când va fi făcută ramura condiționată și ce comenzi vor fi executate după ce va fi făcută ramura condiționată.

Dacă saltul condiționat poate fi prezis, atunci execuția instrucțiunilor la noua adresă începe înainte de finalizarea procesării instrucțiunii de salt condiționat. Ca urmare, umplerea transportorului nu va fi afectată.

Conform statisticilor, acuratețea blocurilor de predicție a ramurilor condiționate în procesoarele moderne depășește 90%, ceea ce face posibilă crearea unor conducte destul de lungi, dar în același timp bine umplute.

În al doilea rând, instrucțiunile procesate frecvent sunt interconectate, adică una dintre instrucțiuni necesită rezultatul executării unei alte instrucțiuni ca date de intrare.

În acest caz, poate fi executat numai după ce prima instrucțiune a fost complet procesată. Cu toate acestea, procesoarele moderne pot analiza codul mai multe instrucțiuni înainte și, de exemplu, în paralel cu prima instrucțiune, pot procesa o a treia instrucțiune, care nu depinde în niciun fel de primele două.

La majoritatea procesoarelor moderne, sarcina de a analiza relația instrucțiunilor și de a întocmi ordinea procesării lor cade pe umerii procesorului, ceea ce duce inevitabil la o scădere a performanței sale și la o creștere a costului.

Cu toate acestea, programarea statică devine din ce în ce mai populară, atunci când ordinea în care programul este executat de către procesor este determinată în etapa de compilare a programului. În acest caz, instrucțiunile care pot fi executate în paralel sunt combinate de compilator într-o singură instrucțiune lungă în care se știe că toate instrucțiunile sunt paralele. Procesoarele care lucrează cu astfel de instrucțiuni sunt construite pe arhitectura VLIW (Very long instruction word).

2.2.2. Superscalaritate.

Superscalaritatea este arhitectura nucleului de calcul, în care cele mai încărcate blocuri pot fi incluse în mai multe copii. De exemplu, într-un nucleu de procesor, o unitate de preluare a instrucțiunilor poate încărca mai multe unități de decodare simultan.

În acest caz, blocurile care efectuează acțiuni mai complexe și funcționează mai mult, datorită procesării paralele a mai multor instrucțiuni simultan, nu vor întârzia întreaga conductă.

Cu toate acestea, execuția paralelă a instrucțiunilor este posibilă numai dacă aceste instrucțiuni sunt independente.

O diagramă bloc a unui nucleu conductă al unui procesor ipotetic construit folosind principiul superscalar este prezentată în Figura 1. În această figură, fiecare nucleu de procesor are mai multe unități de decodare, mai multe unități de preluare a datelor și mai multe unități de execuție a instrucțiunilor.

2.2.3. Prelucrare paralelă a datelor.

Este imposibil să creșteți la nesfârșit performanța procesoarelor prin creșterea frecvenței de ceas. O creștere a frecvenței de ceas implică o creștere a generării de căldură, o scădere a duratei de viață și a fiabilității procesoarelor, iar întârzierile de la accesul la memorie reduc foarte mult efectul de creștere a frecvenței de ceas. Într-adevăr, în zilele noastre aproape niciodată nu găsești procesoare cu o viteză de ceas mai mare de 3,8 GHz.

Problemele asociate cu creșterea vitezei de ceas obligă dezvoltatorii să caute alte modalități de a crește performanța procesorului. Una dintre cele mai populare metode este calculul paralel.

Marea majoritate a procesoarelor moderne au două sau mai multe nuclee. Modelele de top pot conține 8 sau chiar 12 nuclee și cu suport pentru tehnologia hyper-threading. Avantajele introducerii de nuclee suplimentare sunt destul de clare, practic obținem mai multe procesoare, fiecare capabil să își rezolve în mod independent propriile sarcini și, desigur, crește performanța. Cu toate acestea, câștigurile de productivitate nu se ridică întotdeauna la nivelul așteptărilor.

În primul rând, nu toate programele acceptă distribuirea calculelor pe mai multe nuclee. Desigur, programele pot fi împărțite între nuclee, astfel încât fiecare nucleu rulează propriul set de programe independente. De exemplu, un nucleu rulează un sistem de operare cu un set de programe utilitare, un alt nucleu rulează programe de utilizator și așa mai departe.

Dar acest lucru oferă un câștig de performanță până când apare un program care necesită mai multe resurse decât poate oferi un nucleu. Este bine dacă acceptă distribuția sarcinii între mai multe nuclee. Dar în acest moment, programele disponibile public capabile să distribuie încărcarea între 12 nuclee și chiar și în modul Hyper-Threading, pot fi „numărate pe degetele unei mâini”. Desigur, exagerez, există programe optimizate pentru calculul multi-threaded, dar majoritatea utilizatorilor obișnuiți nu au nevoie de ele. Dar cele mai populare programe, și cu atât mai mult jocurile, încă se adaptează „prost” la procesoarele multi-core, mai ales dacă numărul de nuclee este mai mare de patru.

În al doilea rând, lucrul cu memoria devine mai complicat, deoarece există multe nuclee și toate necesită acces la RAM. Este necesar un mecanism complex care determină ordinea de acces a nucleelor ​​procesorului la memorie și la alte resurse ale computerului.

În al treilea rând, consumul de energie crește și, în consecință, disiparea căldurii crește și este necesar un sistem de răcire puternic.

Ei bine, în al patrulea rând, costul de producție al procesoarelor multi-core este destul de mare și, în consecință, prețul unor astfel de procesoare este abrupt.

În ciuda tuturor neajunsurilor, utilizarea procesoarelor cu 2-4 nuclee asigură, fără îndoială, o creștere semnificativă a performanței. Cu toate acestea, în acest moment, utilizarea procesoarelor cu mai mult de patru nuclee nu se ridică întotdeauna la nivelul așteptărilor. Cu toate acestea, în viitorul apropiat, situația ar trebui să se schimbe dramatic. Cu siguranță vor exista multe programe care acceptă multithreading, performanța nucleelor ​​individuale va crește, iar prețul acestora va scădea.

2.2.4. Tehnologia Hyper-Threading.

Tehnologia Intel Hyper-threading permite fiecărui nucleu de procesor să efectueze două sarcini simultan, transformând în esență un nucleu real în două virtuale. Acest lucru este posibil datorită faptului că în astfel de nuclee starea a două fire de execuție este salvată simultan, deoarece nucleul are propriul set de registre, propriul său număr de programe și propria sa unitate de întrerupere pentru fiecare fir de execuție. Ca rezultat, sistemul de operare vede un astfel de nucleu ca două nuclee separate și va funcționa cu ele în același mod în care ar funcționa cu un procesor dual-core.

Cu toate acestea, elementele nucleului rămase pentru ambele fire sunt comune și sunt partajate între ele. În plus, când dintr-un motiv oarecare unul dintre fire eliberează elemente ale conductei, celălalt fir folosește blocurile libere.

Elementele pipeline nu pot fi utilizate dacă, de exemplu, a existat o pierdere la accesarea memoriei cache și este necesară citirea datelor din RAM, sau o ramură a fost prezisă incorect sau se așteaptă rezultatele procesării instrucțiunii curente sau unele blocurile nu sunt folosite deloc în timpul procesării acestui manual etc.

Majoritatea programelor nu pot încărca complet procesorul, deoarece unele folosesc în principal calcule simple cu numere întregi, folosind cu greu unitatea FPU. Alte programe, cum ar fi 3D studio, necesită o mulțime de calcule folosind numere în virgulă mobilă, dar în același timp eliberând și alte unități de execuție și așa mai departe.

În plus, aproape toate programele conțin o mulțime de salturi condiționate și variabile dependente. Ca rezultat, utilizarea tehnologiei Hyper-threading poate oferi o creștere semnificativă a performanței, ajutând la maximizarea sarcinii pe conducta kernelului.

Dar nu este atât de simplu. În mod firesc, câștigul de performanță va fi mai mic decât în ​​cazul utilizării mai multor nuclee fizice, deoarece firele încă folosesc blocuri comune ale unei conducte și sunt adesea forțate să aștepte ca blocul necesar să fie eliberat. În plus, majoritatea procesoarelor au deja mai multe nuclee fizice, iar atunci când se utilizează tehnologia Hyper-threading, pot exista prea multe nuclee virtuale, mai ales dacă procesorul conține patru sau mai multe nuclee fizice.

Deoarece în acest moment există foarte puține programe capabile să distribuie calculele pe un număr mare de nuclee, în acest caz rezultatul poate dezamăgi utilizatorii.

Există o altă problemă serioasă cu tehnologia Hyper-Threading - conflicte care apar atunci când instrucțiunile din fire diferite au nevoie de același tip de blocuri. Poate apărea o situație când două fire similare funcționează în paralel, folosind adesea aceleași blocuri. În acest caz, câștigul de performanță va fi minim.

Drept urmare, tehnologia Hyper-Threading este foarte dependentă de tipul de încărcare a procesorului și poate da un bun spor de performanță sau poate fi practic inutilă.

2.2.5. Tehnologia Turbo Boost.

Performanțele majorității procesoarelor moderne de acasă pot fi ușor crescute, simplu spus, overclockate - forțate să funcționeze la frecvențe mai mari decât cele nominale, adică. declarat de producator.

Frecvența procesorului este calculată ca frecvența magistralei sistemului înmulțită cu un anumit coeficient numit multiplicator. De exemplu, un procesor Core i7-970 funcționează cu magistrala de sistem DMI la o frecvență de bază de 133 MHz și are un multiplicator de 24. Astfel, frecvența de ceas de bază a procesorului va fi: 133 MHz * 24 = 3192 MHz.

Dacă creșteți multiplicatorul în setările BIOS sau creșteți frecvența tacului magistralei de sistem, frecvența ceasului procesorului va crește și, în consecință, performanța acestuia va crește. Cu toate acestea, acest proces este departe de a fi sigur. Overclockarea poate face ca procesorul să devină instabil sau chiar să eșueze. Prin urmare, overclocking-ul trebuie abordat în mod responsabil și monitorizați cu atenție parametrii de funcționare a procesorului.

Odată cu apariția tehnologiei Turbo Boost, totul a devenit mult mai ușor. Procesoarele cu această tehnologie pot crește dinamic, pentru o perioadă scurtă de timp, frecvența ceasului, crescându-și astfel performanța. În același timp, procesorul controlează toți parametrii funcționării sale: tensiune, curent, temperatură etc., prevenind defecțiunile și, mai ales, defecțiunile. De exemplu, procesorul poate dezactiva nucleele neutilizate, scăzând astfel temperatura generală și, în schimb, crește viteza de ceas a nucleelor ​​rămase.

Întrucât în ​​momentul de față nu există foarte multe programe care să folosească toate nucleele de procesor pentru prelucrarea datelor, mai ales dacă sunt mai mult de patru dintre ele, utilizarea tehnologiei Turbo Boost poate crește semnificativ performanța procesorului, mai ales atunci când se lucrează cu aplicații single-threaded.

2.2.6. Eficiența executării comenzii.

În funcție de tipurile de instrucțiuni procesate și de metoda de executare a acestora, procesoarele sunt împărțite în mai multe grupuri:

  • pentru procesoare clasice CISC;
  • pe procesoare RISC cu un set de instrucțiuni redus;
  • pentru procesoare MISC cu un set minim de instrucțiuni;
  • pe procesoarele VLIW cu un set de instrucțiuni ultra-lungi.

CISC (calculator cu set de instrucțiuni complexe)- Acestea sunt procesoare cu un set complex de instrucțiuni. Arhitectura CISC se caracterizează prin:

  • instrucțiuni complexe și cu mai multe fațete;
  • un set mare de instrucțiuni diferite;
  • lungime nefixă a instrucțiunilor;
  • varietate de moduri de adresare.

Din punct de vedere istoric, au apărut primele procesoare cu arhitectură CISC, iar apariția lor s-a datorat tendinței generale de dezvoltare a primelor computere. Au încercat să facă computerele mai funcționale și, în același timp, mai ușor de programat. Desigur, inițial a fost mai convenabil pentru programatori să aibă un set larg de comenzi decât să implementeze fiecare funcție cu o subrutină separată. Ca urmare, volumul de programe a fost mult redus și, odată cu acesta, complexitatea programării.

Cu toate acestea, această situație nu a durat mult. În primul rând, odată cu apariția limbajelor de nivel înalt, nevoia de programare directă în codul mașinii și limbajul de asamblare a dispărut și, în al doilea rând, în timp, numărul de comenzi diferite a crescut foarte mult, iar instrucțiunile în sine au devenit mai complexe. Ca rezultat, majoritatea programatorilor au folosit în primul rând un set specific de instrucțiuni, ignorând practic instrucțiunile mai complexe.

Ca urmare, programatorii nu au mai beneficiat de un set larg de instrucțiuni, deoarece compilarea programelor a devenit automată, iar procesoarele înșiși procesau lent instrucțiuni complexe și variate, în principal din cauza problemelor legate de decodarea acestora.

În plus, dezvoltatorii de procesoare au depanat mai puțin instrucțiuni noi complexe, deoarece era un proces complex și laborios. Ca urmare, unele dintre ele pot conține erori.

Și, desigur, cu cât instrucțiunile sunt mai complexe, cu cât efectuează mai multe acțiuni, cu atât este mai dificilă paralelizarea execuției lor și, în consecință, cu atât încarcă mai puțin eficient conducta procesorului.

Cu toate acestea, până în acest moment, un număr mare de programe fuseseră deja dezvoltate pentru procesoarele cu arhitectură CISC, așa că nu era rentabil din punct de vedere economic să trecem la o arhitectură fundamental nouă, chiar dacă a oferit un câștig în performanța procesorului.

Prin urmare, a fost acceptat un compromis, iar procesoarele CISC, începând cu Intel486DX, au început să fie produse folosind un nucleu RISC. Adică, imediat înainte de execuție, instrucțiuni CISC complexe sunt convertite într-un set mai simplu de instrucțiuni RISC interne. Pentru a face acest lucru, ei folosesc seturi de microinstrucțiuni scrise în ROM situate în interiorul nucleului procesorului - o serie de instrucțiuni simple care împreună realizează aceleași acțiuni ca o instrucțiune complexă.

RISC (Computer cu set de instrucțiuni redus)– procesoare cu un set de instrucțiuni redus.

Conceptul de procesor RISC favorizează instrucțiuni scurte, simple și standardizate. Ca urmare, astfel de instrucțiuni sunt mai ușor de decodat și executat și, în consecință, designul procesorului devine și mai simplu, deoarece blocurile complexe nu sunt necesare pentru a executa instrucțiuni non-standard și multifuncționale. Ca urmare, procesorul devine mai ieftin și devine posibilă creșterea în continuare a frecvenței de ceas prin simplificarea structurii interne și reducerea numărului de tranzistori sau reducerea consumului de energie.

De asemenea, instrucțiunile RISC simple sunt mult mai ușor de paralelizat decât instrucțiunile CISC și, prin urmare, devine posibilă încărcarea conductei mai mult, introducerea unor unități suplimentare de procesare a instrucțiunilor etc.

Procesoarele construite pe arhitectura RISC au următoarele caracteristici principale:

  • lungime fixă ​​a instrucțiunii;
  • un set mic de instrucțiuni standardizate;
  • un număr mare de registre de uz general;
  • lipsa microcodului;
  • consum redus de energie în comparație cu procesoarele CISC cu performanțe similare;
  • structură internă mai simplă;
  • mai puțini tranzistori în comparație cu procesoarele CISC cu performanțe similare;
  • absența blocurilor complexe specializate în nucleul procesorului.

Ca rezultat, deși procesoarele RISC necesită mai multe instrucțiuni pentru a finaliza aceeași sarcină în comparație cu procesoarele CISC, ele oferă în general performanțe mai mari. În primul rând, executarea unei singure instrucțiuni RISC durează mult mai puțin decât executarea unei instrucțiuni CISC. În al doilea rând, procesoarele RISC folosesc mai mult capabilitățile de procesare paralelă. În al treilea rând, procesoarele RISC pot avea viteze de ceas mai mari decât procesoarele CISC.

Cu toate acestea, în ciuda avantajului evident al RISC, procesoarele nu au devenit la fel de răspândite ca CISC. Adevărat, acest lucru nu se datorează în principal faptului că, în unele privințe, ar putea fi mai proaste decât procesoarele CISC. Nu sunt mai rău. Faptul este că procesoarele CISC au apărut primele, iar software-ul pentru procesoarele CISC este incompatibil cu procesoarele RISC.

Drept urmare, este extrem de neprofitabilă să rescrieți toate programele care au fost deja dezvoltate, depanate și utilizate de un număr mare de utilizatori. Așa s-a dovedit că acum suntem nevoiți să folosim procesoare CISC. Adevărat, așa cum am spus deja, dezvoltatorii au găsit o soluție de compromis la această problemă și de foarte mult timp procesoarele CISC au folosit un nucleu RISC și au înlocuit instrucțiuni complexe cu microprograme. Acest lucru a permis ca situația să fie oarecum netezită. Dar totuși, procesoarele RISC depășesc în cele mai multe privințe chiar și procesoarele CISC cu un nucleu RISC.

MISC (Computer cu set minim de instrucțiuni)– dezvoltarea în continuare a arhitecturii RISС, bazată pe o și mai mare simplificare a instrucțiunilor și pe o reducere a numărului acestora. Deci, în medie, procesoarele MISC folosesc 20-30 de instrucțiuni simple. Această abordare a făcut posibilă simplificarea în continuare a designului procesorului, reducerea consumului de energie și utilizarea maximă a capabilităților de procesare paralelă a datelor.

VLIW (cuvânt de instrucție foarte lung)– o arhitectură de procesor care utilizează instrucțiuni lungi care conțin mai multe operații simultan, combinate de compilator pentru procesare paralelă. În unele implementări de procesor, instrucțiunile pot avea o lungime de 128 sau chiar 256 de biți.

Arhitectura VLIW este o îmbunătățire suplimentară a arhitecturilor RISC și MISC cu paralelism profund.

Dacă în procesoarele RISC, procesorul însuși era responsabil pentru organizarea procesării paralele a datelor, cheltuind în același timp o parte din resursele sale pentru analizarea instrucțiunilor, identificarea dependențelor și predicția ramurilor condiționate (și, adesea, procesorul putea face greșeli, de exemplu, în prezicerea ramuri condiționate, introducând astfel întârzieri serioase în procesarea instrucțiunilor sau vizualizarea codului programului în profunzime insuficientă pentru a identifica operațiuni independente care ar putea fi executate în paralel), apoi în procesoarele VLIW a fost atribuită compilatorului sarcina de optimizare a funcționării paralele, care nu a fost limitat în timp sau resurse și ar putea analiza tot un program de alcătuire a codului optim pentru procesor.

Drept urmare, procesorul VLIW a beneficiat nu numai de eliminarea costurilor generale pentru organizarea procesării paralele a datelor, dar a primit și o creștere a performanței datorită unei organizări mai optime a executării în paralel a instrucțiunilor.

În plus, designul procesorului a fost simplificat, deoarece unele blocuri responsabile cu analiza dependențelor și organizarea paralelizării procesării instrucțiunilor au fost simplificate sau eliminate complet, iar acest lucru, la rândul său, a condus la o reducere a consumului de energie și a costului procesoarelor.

Cu toate acestea, chiar și compilatorului îi este greu să analizeze codul și să organizeze paralelizarea acestuia. Adesea, codul programului era foarte interdependent și, ca rezultat, compilatorul trebuia să insereze comenzi goale în instrucțiuni. Din această cauză, programele pentru procesoarele VLIW ar putea fi mult mai lungi decât programele similare pentru arhitecturile tradiționale.

Primele procesoare VLIW au apărut la sfârșitul anilor 1980 și au fost dezvoltate de Cydrome. Procesoarele cu această arhitectură includ, de asemenea, procesoare TriMedia de la Philips, familia DSP C6000 de la Texas Instruments, Elbru?s 2000 - un procesor de fabricație rusă dezvoltat de MCST cu participarea studenților MIPT etc. Suport pentru instrucțiuni lungi cu paralelism explicit. disponibil în procesoarele din familia Itanium.

2.3. Modalități de reducere a consumului de energie al procesorului.

Nu mai puțin important decât performanța, un parametru precum consumul de energie este, de asemenea, important pentru un procesor. Problema consumului de energie a devenit deosebit de acută acum, când există un adevărat boom în popularitatea dispozitivelor portabile.

Viața noastră nu mai poate fi imaginată confortabilă fără utilizarea laptopurilor, tabletelor și smartphone-urilor. Cu toate acestea, singurul lucru care umbrește această tendință este durata de viață a bateriei unor astfel de dispozitive. Deci, laptopurile, în medie, pot funcționa autonom timp de 3-5 ore, tabletele - puțin mai mult, smartphone-urile pot rezista deja aproape o zi la încărcare maximă, și nu toate. Dar toate acestea sunt extrem de mici pentru a lucra confortabil cu ei.

Durata de viață a bateriei acestor dispozitive depinde direct de consumul lor de energie, iar o parte semnificativă din consumul de energie provine de la procesor. Sunt utilizate diverse metode și tehnologii pentru a reduce consumul de energie al procesorului. Să ne uităm la cele mai populare dintre ele.

Cea mai ușoară modalitate de a reduce consumul de energie și disiparea căldurii unui procesor este de a reduce frecvența și tensiunea acestuia, deoarece consumul de energie al unui procesor este proporțional cu pătratul tensiunii sale de funcționare și proporțional cu frecvența de ceas. Reducerea tensiunii are cel mai benefic efect asupra consumului de energie. Cu toate acestea, pe măsură ce tensiunea scade, mai devreme sau mai târziu și frecvența ceasului scade, ceea ce va duce în mod natural la o scădere a performanței.

Cu toate acestea, consumul de energie este adesea un parametru de funcționare mai critic și o anumită degradare a performanței este acceptabilă. Astfel, majoritatea procesoarelor mobile și încorporate au viteze de ceas și tensiuni de funcționare mult mai mici decât omologii lor desktop.

Dar producătorii nu stabilesc întotdeauna combinația optimă de tensiune și frecvență de ceas. Multe procesoare mobile cu o viteză de ceas setată ar putea funcționa la tensiuni mai mici, ceea ce ar prelungi semnificativ durata de viață a bateriei unui laptop.

Pentru a obține raportul optim între performanță și consumul de energie, este necesar să selectați o tensiune la care procesorul va funcționa stabil la o anumită frecvență de ceas.

Frecvența ceasului este determinată în funcție de nevoile utilizatorului, apoi este selectată tensiunea minimă de funcționare pentru aceasta prin reducerea treptată a tensiunii și testarea procesorului sub sarcină.

Există, de asemenea, modalități mai puțin drastice de a rezolva această problemă.

De exemplu, tehnologia EIST (Tehnologie Intel SpeedStep îmbunătățită) vă permite să modificați în mod dinamic consumul de energie al procesorului prin schimbarea frecvenței și a tensiunii de ceas a procesorului. Frecvența ceasului se modifică din cauza scăderii sau creșterii factorului de multiplicare.

Am menționat deja factorul de multiplicare mai sus, dar îl voi repeta. Viteza ceasului procesorului este calculată ca viteză a ceasului magistralei sistemului înmulțită cu un anumit factor numit factor de multiplicare. Scăderea sau creșterea acestui coeficient duce la scăderea sau creșterea frecvenței de ceas a procesorului și la scăderea sau creșterea tensiunii de funcționare.

În cazurile în care procesorul nu este utilizat pe deplin, viteza de ceas poate fi redusă prin reducerea multiplicatorului. De îndată ce utilizatorul necesită mai multe resurse de calcul, factorul de multiplicare va fi mărit, până la valoarea sa nominală. Astfel, este posibil să se reducă puțin consumul de energie.

O tehnologie similară pentru reducerea consumului de energie, bazată pe modificări dinamice ale tensiunii și frecvenței de ceas, în funcție de sarcina procesorului, este, de asemenea, utilizată de AMD, se numește - Cool'n'Quiet.

În marea majoritate a cazurilor, computerele fie sunt complet inactive, fie sunt folosite doar pentru o fracțiune din capacitățile lor. De exemplu, vizionarea unui film sau introducerea textului nu necesită capacitățile de calcul enorme pe care le au procesoarele moderne. Mai mult, aceste puteri nu sunt necesare atunci când computerul este inactiv, când utilizatorul a plecat sau pur și simplu a decis să ia o scurtă pauză. Prin reducerea frecvenței de ceas a procesorului și a tensiunii acestuia în astfel de momente, puteți obține o creștere foarte serioasă a economiilor de energie.

EIST poate fi configurat folosind BIOS-ul și software-ul sistemului de operare pentru a seta profiluri personalizate de gestionare a energiei pentru a echilibra performanța procesorului și consumul de energie.

Desigur, dezvoltatorii încearcă să optimizeze structura procesorului în sine pentru a reduce consumul de energie și pentru a permite procesorului să funcționeze la tensiuni ultra joase. Cu toate acestea, această sarcină este extrem de complexă și necesită timp. Procesoarele prototip au ajuns deja foarte aproape de pragul tensiunii minime de funcționare și întâmpină deja dificultăți în a distinge tensiunea unuia logic de un zero logic. Cu toate acestea, în ciuda acestui fapt, dezvoltatorii de procesoare, inclusiv inginerii Intel Corporation, promit să reducă consumul de energie al procesoarelor moderne de până la 100 de ori în următorii zece ani. Ei bine, hai să așteptăm și să vedem cu ce vin.

3. Memoria cache.

În ciuda tuturor tehnologiilor și trucurilor dezvoltatorilor, performanța procesorului depinde în continuare direct de viteza de preluare a comenzilor și a datelor din memorie. Și chiar dacă procesorul are o conductă echilibrată și bine gândită, utilizează tehnologia Hyper-Threading și așa mai departe, dar nu oferă viteza adecvată pentru preluarea datelor și comenzilor din memorie, atunci, ca rezultat, performanța generală a computerului nu va satisface așteptările dumneavoastră.

Prin urmare, unul dintre cei mai importanți parametri ai dispozitivului procesor este memoria cache, care este concepută pentru a reduce timpul de preluare a instrucțiunilor și a datelor din memoria RAM principală și acționează ca un buffer intermediar cu acces rapid între procesor și memoria RAM principală.

Memoria cache este construită pe baza unei memorie SRAM (memorie statică cu acces aleatoriu), care oferă acces la celulele de memorie mult mai rapid decât la celulele de memorie DRAM (memorie dinamică cu acces aleator), pe baza căreia este construită RAM. În plus, memoria SRAM nu necesită regenerare constantă, ceea ce îi mărește și performanța. Cu toate acestea, ne vom uita la designul SRAM, DRAM și a altor tipuri de memorie mai detaliat în articolul următor, iar acum ne vom uita mai detaliat la principiul de funcționare și designul memoriei cache.

Memoria cache este împărțită în mai multe niveluri. Procesoarele moderne au de obicei trei niveluri, iar unele modele de procesoare de top au uneori patru niveluri de memorie cache.

Cache-urile de nivel superior sunt întotdeauna mai mari și mai lente decât cache-urile de nivel inferior.

Cea mai rapidă și mai mică memorie cache este memoria cache de nivel 1. Funcționează de obicei la frecvența procesorului, are o capacitate de câteva sute de kiloocteți și este situat în imediata apropiere a unităților de eșantionare a datelor și a instrucțiunilor. Mai mult, poate fi unic (arhitectura Princeton) sau împărțit în două părți (arhitectura Harvard): memorie de comandă și memorie de date. Cele mai multe procesoare moderne folosesc un cache L1 partajat, deoarece aceasta permite preluarea datelor simultan cu preluarea instrucțiunilor, ceea ce este extrem de important pentru operarea pipeline.

Memoria cache de nivel al doilea este mai lentă (timp de acces, în medie, 8-20 de cicluri procesor), dar are o capacitate de câțiva megaocteți.

Memoria cache de nivel 3 este și mai lentă, dar are o capacitate relativ mare. Există procesoare cu memorie cache de nivel al treilea mai mare de 24 MB.

În procesoarele cu mai multe nuclee, ultimul nivel de memorie cache este de obicei comun tuturor nucleelor. Mai mult, în funcție de încărcarea nucleelor, cantitatea de memorie cache de ultimul nivel alocată nucleului se poate schimba dinamic. Dacă un nucleu are o încărcare mare, atunci îi este alocată mai multă memorie cache, prin reducerea cantității de memorie cache pentru nucleele mai puțin încărcate. Nu toate procesoarele au această capacitate, doar cele care acceptă tehnologia Smart Cache (de exemplu, Intel Smart Cache sau AMD Balanced Smart Cache).

Memoria cache de nivel inferior este de obicei individuală pentru fiecare nucleu de procesor.

Ne-am uitat la modul în care funcționează memoria cache, acum să ne dăm seama cum funcționează.

Procesorul citește datele din memoria RAM principală și le stochează în memoria cache la toate nivelurile, înlocuind datele care au fost accesate de mult timp și cel mai rar.

Data viitoare când procesorul are nevoie de aceleași date, acestea vor fi citite nu din memoria RAM principală, ci din memoria cache de primul nivel, care este mult mai rapidă. Dacă procesorul nu accesează aceste date pentru o lungă perioadă de timp, atunci va fi eliminat treptat din toate nivelurile de memorie cache, mai întâi de la primul, deoarece este cel mai mic ca volum, apoi de la al doilea și așa mai departe. Dar, chiar dacă aceste date rămân doar în al treilea nivel al memoriei cache, accesarea acestora va fi totuși mai rapidă decât accesarea memoriei principale.

Cu toate acestea, cu cât sunt mai multe niveluri de memorie cache, cu atât algoritmul de înlocuire a datelor învechite este mai complex și cu atât se petrece mai mult timp reconciliând datele din toate nivelurile memoriei cache. Ca rezultat, câștigul din viteza memoriei cache dispare rapid. În plus, memoria SRAM este foarte scumpă, și cu volume mari și, după cum vă amintiți, fiecare nou nivel de memorie cache trebuie să fie mai mare decât cel precedent, raportul preț-calitate scade rapid, ceea ce are un impact extrem de negativ asupra competitivitatea procesorului. Prin urmare, în practică, acestea nu realizează mai mult de patru niveluri de memorie cache.

Situația memoriei cache devine și mai complicată la procesoarele multi-core, unde fiecare nucleu conține propria sa memorie cache. Este necesar să se introducă o sincronizare suplimentară a datelor stocate în memoria cache a diferitelor nuclee. De exemplu, același bloc de date din memoria RAM principală a fost introdus în memoria cache a primului și celui de-al doilea nucleu de procesor. Primul procesor a modificat apoi acest bloc de memorie. Se pare că memoria cache a celui de-al doilea procesor conține deja date învechite și trebuie actualizată, iar aceasta este o încărcare suplimentară a memoriei cache, ceea ce duce la o scădere a performanței generale a procesorului. Această situație este mai complicată cu cât sunt mai multe nuclee în procesor, cu atât mai multe niveluri de memorie cache și volumul lor este mai mare.

Dar, în ciuda unor astfel de dificultăți în lucrul cu memoria cache, utilizarea acesteia oferă o creștere clară a vitezei de operare fără o creștere semnificativă a costului computerului. Și până când se inventează RAM care poate concura în viteză cu memoria SRAM și în preț cu memoria DRAM, se va folosi o organizare ierarhică a RAM folosind mai multe niveluri de memorie cache.

Poate că aici vom termina revizuirea dispozitivului procesorului, deoarece o revizuire a magistralelor de sistem și a principiului funcționării acestora a fost prezentată în articolul „Designul și scopul plăcii de bază” și o descriere a controlerului RAM principal, adesea incluse în procesor, tipurile de RAM și principiile de funcționare a acestuia vor fi în articolul următor.


În zilele noastre există o mulțime de informații pe internet pe tema procesoarelor, puteți găsi o grămadă de articole despre cum funcționează, unde sunt menționate în principal registre, ceasuri, întreruperi etc... Dar, pentru o persoană care este nu este familiarizat cu toți acești termeni și concepte, este destul de dificil ca această muscă" să înțelegi procesul, dar trebuie să începi puțin - și anume, cu o înțelegere de bază cum funcționează procesorul și din ce părți principale este compus.

Deci, ce va fi în interiorul microprocesorului dacă îl dezasamblați:

Cifra 1 desemnează suprafața metalică (capacul) a microprocesorului, care servește la îndepărtarea căldurii și la protejarea de deteriorarea mecanică a ceea ce se află în spatele acestui capac (adică în interiorul procesorului însuși).

La numărul 2 se află cristalul în sine, care de fapt este cea mai importantă și mai scumpă parte a microprocesorului de fabricat. Datorită acestui cristal au loc toate calculele (și aceasta este cea mai importantă funcție a procesorului) și cu cât este mai complex, cu atât este mai perfect, cu atât procesorul este mai puternic și cu atât este mai scump, în consecință. . Cristalul este realizat din silicon. De fapt, procesul de fabricație este foarte complex și conține zeci de pași, mai multe detalii în acest videoclip:

Numărul 3 este un substrat special de textolit la care sunt atașate toate celelalte părți ale procesorului, în plus, joacă rolul unui tampon de contact - pe reversul său există un număr mare de „puncte” aurii - acestea sunt contacte (ele; se vede puțin în figură). Datorită tamponului de contact (substrat), este asigurată o interacțiune strânsă cu cristalul, deoarece nu este posibilă influențarea directă a cristalului în niciun fel.

Capacul (1) este atașat de substrat (3) folosind un adeziv-etanșant care este rezistent la temperaturi ridicate. Între cristal (2) și capac nu există spațiu de aer; pasta termică îi ia locul când se întărește, formează o „punte” între cristalul procesorului și capac, ceea ce asigură un transfer de căldură foarte bun.

Cristalul este conectat la substrat folosind lipire și etanșare, contactele substratului sunt conectate la contactele cristalului. Această figură arată clar modul în care contactele de cristal sunt conectate la contactele substratului folosind fire foarte subțiri (mărire de 170x în fotografie):

În general, designul procesoarelor de la diferiți producători și chiar modelele de la același producător poate varia foarte mult. Cu toate acestea, principiul de funcționare rămâne același - toate au un substrat de contact, un cristal (sau mai multe situate într-un singur caz) și un capac metalic pentru îndepărtarea căldurii.

De exemplu, așa arată substratul de contact al unui procesor Intel Pentium 4 (procesorul este cu susul în jos):

Forma contactelor și structura aranjamentului acestora depind de procesorul și placa de bază a computerului (prizele trebuie să se potrivească). De exemplu, în imaginea de mai sus, contactele procesorului fără „pini”, deoarece pinii sunt amplasați direct în soclul plăcii de bază.

Și există o altă situație în care „pinii” contactelor ies direct din substratul de contact. Această caracteristică este tipică în principal pentru procesoarele AMD:

După cum am menționat mai sus, designul diferitelor modele de procesoare de la același producător poate diferi, avem un exemplu izbitor în acest sens - procesorul quad-core Intel Core 2 Quad, care este în esență 2 procesoare dual-core din linia core 2 duo; , combinate într-un singur caz:

Important! Numărul de cristale din interiorul unui procesor și numărul de nuclee de procesor nu sunt același lucru.

Modelele moderne de procesoare Intel se potrivesc cu 2 cristale (cipuri) simultan. Al doilea cip - nucleul grafic al procesorului, joacă în esență rolul unei plăci video încorporate în procesor, adică chiar dacă sistemul lipsește, nucleul grafic va prelua rolul unei plăci video și destul de unul puternic la fel (în unele modele de procesoare, puterea de calcul a nucleelor ​​grafice vă permite să jucați jocuri moderne cu setări grafice medii).

Asta e tot dispozitiv central cu microprocesor, pe scurt, desigur.

În zilele noastre, procesoarele joacă un rol deosebit doar în reclamă, ei fac tot posibilul să convingă că procesorul dintr-un computer este componenta decisivă, mai ales de la un producător precum Intel. Apare întrebarea: ce este un procesor modern și ce este un procesor în general?

Multă vreme, sau mai precis, până în anii 90, procesorul a fost cel care a determinat performanța unui computer. Procesorul a determinat totul, dar astăzi acest lucru nu este în întregime adevărat.

Nu totul este determinat de procesorul central, iar procesoarele de la Intel nu sunt întotdeauna de preferat celor de la AMD. Recent, rolul altor componente ale computerului a crescut considerabil, iar acasă, procesoarele devin rareori blocaj, dar la fel ca și alte componente ale computerului, au nevoie de o atenție suplimentară, deoarece nici un singur computer nu poate exista fără el. Procesoarele în sine nu mai sunt domeniul mai multor tipuri de computere, deoarece varietatea computerelor a devenit mai mare.

Procesor (unitate centrală de procesare) este un cip foarte complex care procesează codul mașinii și este responsabil pentru efectuarea diferitelor operațiuni și controlul perifericelor computerului.

Pentru a desemna pe scurt un procesor central, este adoptată abrevierea „CPU” și, de asemenea, foarte obișnuită CPU - Central Processing Unit, care se traduce ca o unitate centrală de procesare.

Utilizarea microprocesoarelor

Un dispozitiv precum un procesor este integrat în aproape orice echipament electronic, darămite dispozitive precum un televizor și un player video, chiar și în jucării, iar smartphone-urile în sine sunt deja computere, deși diferă prin design.

Mai multe nuclee CPU pot îndeplini sarcini complet diferite, independent unul de celălalt. Dacă computerul îndeplinește o singură sarcină, atunci execuția sa este accelerată datorită paralelizării operațiilor tipice. Productivitatea poate deveni destul de distinctă.

Factorul de multiplicare a frecvenței interne

Semnalele pot circula în interiorul cristalului procesorului la o frecvență înaltă, deși procesoarele nu pot gestiona încă componentele externe ale computerului la aceeași frecvență. In acest sens, frecventa la care placa de baza functioneaza singura, iar frecventa procesorului la alta, este mai mare.

Frecvența pe care o primește procesorul de la placa de bază poate fi numită referință, la rândul său, o înmulțește cu un coeficient intern, ceea ce are ca rezultat o frecvență internă, numită multiplicator intern.

Capacitățile coeficientului de multiplicare a frecvenței interne sunt foarte des folosite de overlockeri pentru a elibera potențialul de overclocking al procesorului.

Cache-ul procesorului

Procesorul primește date pentru lucrări ulterioare din RAM, dar în interiorul cipurilor procesorului semnalele sunt procesate la o frecvență foarte înaltă, iar apelurile către modulele RAM în sine au loc la o frecvență de câteva ori mai mică.

Un coeficient ridicat al multiplicatorului de frecvență intern devine mai eficient atunci când toate informațiile sunt localizate în interiorul acestuia, în comparație, de exemplu, decât în ​​RAM, adică din exterior.

Procesorul are puține celule pentru procesarea datelor, numite registre, de obicei nu stochează aproape nimic în ele, iar pentru a accelera funcționarea atât a procesorului, cât și a sistemului informatic cu acesta, a fost integrată tehnologia de caching.

Un cache poate fi numit un set mic de celule de memorie, care la rândul lor acționează ca un buffer. Când are loc o citire din memoria partajată, apare o copie în memoria cache a CPU. Acest lucru este necesar pentru ca, dacă aveți nevoie de aceleași date, accesul la acestea să fie la îndemână, adică într-un buffer, ceea ce crește performanța.

Memoria cache din procesoarele actuale are o formă piramidală:

  1. Memoria cache de nivel 1 este cea mai mică ca volum, dar în același timp cea mai rapidă ca viteză și face parte din cipul procesorului. Produs folosind aceleași tehnologii ca și registrele procesorului, este foarte scump, dar își merită viteza și fiabilitatea. Deși se măsoară în sute de kiloocteți, ceea ce este foarte mic, joacă un rol enorm în performanță.
  2. Memoria cache de nivel 2, la fel ca memoria cache de nivel 1, este situată pe cipul procesorului și funcționează la frecvența nucleului său. În procesoarele moderne, datele sunt măsurate de la sute de kiloocteți la câțiva megaocteți.
  3. Memoria cache de nivel 3 este mai lentă decât nivelurile anterioare ale acestui tip de memorie, dar este mai rapidă decât RAM, ceea ce este important și se măsoară în zeci de megaocteți.

Dimensiunile de cache de nivel 1 și de nivel 2 afectează atât performanța, cât și costul procesorului. Al treilea nivel de memorie cache este un fel de bonus în funcționarea unui computer, dar niciunul dintre producătorii de microprocesoare nu se grăbește să-l neglijeze. Memoria cache de nivel 4 există și dă roade doar în sistemele multiprocesor, motiv pentru care nu poate fi găsită pe un computer obișnuit.

Priză de instalare a procesorului (Socket)

Înțelegând că tehnologiile moderne nu sunt atât de avansate încât procesorul să poată primi informații la distanță, acesta trebuie să fie întotdeauna atașat, atașat la placa de bază, instalat în ea și să interacționeze cu ea. Această locație de montare se numește Socket și este potrivită doar pentru un anumit tip sau familie de procesoare, care sunt, de asemenea, diferite pentru diferiți producători.

Ce este un procesor: arhitectură și proces tehnologic

Arhitectura procesorului este structura sa internă, aranjarea diferită a elementelor determină și caracteristicile acestuia. Arhitectura în sine este inerentă unei întregi familii de procesoare, iar modificările făcute pentru îmbunătățiri sau remedieri de erori se numesc stepping.

Procesul tehnologic determină dimensiunea componentelor procesorului propriu-zis și se măsoară în nanometri (nm), iar dimensiunile mai mici ale tranzistorilor determină dimensiunea mai mică a procesorului în sine, ceea ce vizează dezvoltarea viitoarelor procesoare.

Consumul de energie și disiparea căldurii

Consumul de energie în sine depinde direct de tehnologia utilizată pentru producerea procesoarelor. Dimensiunile mai mici și frecvențele mai mari sunt direct proporționale cu consumul de energie și disiparea căldurii.

Pentru a reduce consumul de energie și disiparea căldurii, se utilizează un sistem automat de economisire a energiei pentru reglarea sarcinii procesorului, respectiv, în absența oricărei necesități de performanță. Calculatoarele de înaltă performanță trebuie să aibă un sistem bun de răcire a procesorului.

Pentru a rezuma materialul din articol - răspunsul la întrebarea ce este un procesor:

Procesoarele de astăzi au capacitatea de a lucra pe mai multe canale cu RAM apar noi instrucțiuni, care la rândul lor, datorită cărora nivelul său funcțional crește. Capacitatea de a procesa grafica cu procesorul în sine reduce costul atât al procesoarelor în sine, cât și, datorită acestora, al ansamblurilor computerelor de birou și de acasă. Apar nuclee virtuale pentru o distribuție mai practică a performanței, se dezvoltă tehnologii, iar odată cu ele computerul și componenta acestuia precum procesorul central.

Citiți aceste rânduri de pe un smartphone, tabletă sau computer. Oricare dintre aceste dispozitive este bazat pe microprocesor. Microprocesorul este „inima” oricărui dispozitiv de calculator. Există multe tipuri de microprocesoare, dar toate rezolvă aceleași probleme. Astăzi vom vorbi despre cum funcționează procesorul și ce sarcini îndeplinește. La prima vedere, toate acestea par evidente. Însă mulți utilizatori ar fi interesați să-și aprofundeze cunoștințele despre cea mai importantă componentă care face ca computerul să funcționeze. Vom afla cum tehnologia bazată pe o logică digitală simplă permite computerului dvs. nu numai să rezolve probleme de matematică, ci și să fie un centru de divertisment. Cum se transformă doar două numere - unu și zero - în jocuri și filme colorate? Mulți oameni și-au pus această întrebare de multe ori și vor fi bucuroși să primească un răspuns. La urma urmei, chiar și procesorul AMD Jaguar, pe care se bazează cele mai recente console de jocuri, se bazează pe aceeași logică străveche.

În literatura de limba engleză, un microprocesor este adesea numit CPU (unitate centrală de procesare, modul [unic] al procesorului central). Motivul acestui nume constă în faptul că un procesor modern este un singur cip. Primul microprocesor din istoria omenirii a fost creat de corporație în 1971.

Rolul Intel în istoria industriei microprocesoarelor


Vorbim despre modelul Intel 4004 Nu era puternic și putea efectua doar operații de adunare și scădere. Putea procesa doar patru biți de informații la un moment dat (adică era de 4 biți). Dar pentru vremea sa apariția sa a fost un eveniment semnificativ. La urma urmei, întregul procesor se potrivește într-un singur cip. Înainte de Intel 4004, computerele erau bazate pe un întreg set de cipuri sau componente discrete (tranzistoare). Microprocesorul 4004 a stat la baza unuia dintre primele calculatoare portabile.

Primul microprocesor pentru computerele de acasă a fost Intel 8080, introdus în 1974. Toată puterea de procesare a unui computer pe 8 biți era conținută într-un singur cip. Dar anunțul procesorului Intel 8088 a fost de o importanță cu adevărat mare A apărut în 1979 și din 1981 a început să fie folosit în primele computere personale produse în masă, IBM PC.

Apoi procesoarele au început să se dezvolte și să devină mai puternice. Oricine este cel puțin puțin familiarizat cu istoria industriei microprocesoarelor își amintește că 8088 a fost înlocuit cu 80286. Apoi a venit 80386, urmat de 80486. Apoi au existat mai multe generații de Pentium: Pentium, Pentium II, III și Pentium 4. Toate aceste procesoare Intel bazate pe designul de bază 8088 au fost compatibile. Aceasta înseamnă că Pentium 4 ar putea procesa orice bucată de cod pentru 8088, dar a făcut-o cu o viteză de aproximativ cinci mii de ori mai mare. Nu au trecut mulți ani de atunci, dar s-au mai schimbat câteva generații de microprocesoare.


Din 2004, Intel a început să ofere procesoare multi-core. Numărul de tranzistori folosiți în ele a crescut cu milioane. Dar și acum procesorul respectă regulile generale care au fost create pentru cipurile timpurii. Tabelul reflectă istoria microprocesoarelor Intel până în 2004 (inclusiv). Vom face câteva explicații despre ce înseamnă indicatorii reflectați în el:
  • Nume. Model de procesor
  • Data. Anul în care procesorul a fost introdus pentru prima dată. Multe procesoare au fost introduse de mai multe ori, de fiecare dată când viteza de ceas a fost crescută. Astfel, următoarea modificare a cipului ar putea fi reanunțată chiar și la câțiva ani după ce prima sa versiune a apărut pe piață
  • Tranzistori (Număr de tranzistori). Numărul de tranzistori din cip. Puteți vedea că această cifră a crescut constant
  • Microni (Lățimea în microni). Un micron este egal cu o milioneme dintr-un metru. Valoarea acestui indicator este determinată de grosimea celui mai subțire fir din cip. Pentru comparație, grosimea unui păr uman este de 100 de microni
  • Viteza ceasului. Viteza maximă a procesorului
  • Lățimea datelor. „Capacitatea de biți” a unității aritmetice-logice (ALU) a procesorului. Un ALU de 8 biți poate adăuga, scădea, înmulți și efectua alte operații pe două numere de 8 biți. Un ALU pe 32 de biți poate gestiona numere de 32 de biți. Pentru a adăuga două numere de 32 de biți, un ALU de opt biți trebuie să execute patru instrucțiuni. O ALU pe 32 de biți poate gestiona această sarcină într-o singură instrucțiune. În multe (dar nu toate) cazurile, lățimea magistralei de date externe coincide cu „numărul de biți” al ALU. Procesorul 8088 avea un ALU de 16 biți, dar o magistrală de 8 biți. Pentru Pentium-urile ulterioare, o situație tipică a fost atunci când autobuzul era deja pe 64 de biți, dar ALU era încă pe 32 de biți
  • MIPS (milioane de instrucțiuni pe secundă). Vă permite să estimați aproximativ performanța procesorului. Microprocesoarele moderne îndeplinesc atât de multe sarcini diferite încât acest indicator și-a pierdut sensul inițial și poate fi folosit în principal pentru a compara puterea de procesare a mai multor procesoare (ca în acest tabel)

Există o relație directă între viteza ceasului, precum și numărul de tranzistori și numărul de operații efectuate de procesor pe secundă. De exemplu, viteza de ceas a procesorului 8088 a ajuns la 5 MHz, iar performanța: doar 0,33 milioane de operații pe secundă. Adică a fost nevoie de aproximativ 15 cicluri de procesor pentru a executa o instrucțiune. În 2004, procesoarele puteau deja să execute două instrucțiuni pe ciclu de ceas. Această îmbunătățire a fost obținută prin creșterea numărului de procesoare de pe cip.

Cipul se mai numește și circuit integrat (sau doar circuit integrat). Cel mai adesea, aceasta este o placă mică și subțire de siliciu în care sunt „imprimate” tranzistorii. Cipul, a cărui latură atinge doi centimetri și jumătate, poate conține zeci de milioane de tranzistori. Cele mai simple procesoare pot fi pătrate cu latura de doar câțiva milimetri. Și această dimensiune este suficientă pentru câteva mii de tranzistori.

Logica microprocesorului


Pentru a înțelege cum funcționează un microprocesor, ar trebui să studiați logica pe care se bazează, precum și să vă familiarizați cu limbajul de asamblare. Aceasta este limba maternă a microprocesorului.

Microprocesorul este capabil să execute un set specific de instrucțiuni ale mașinii (comenzi). Funcționând cu aceste comenzi, procesorul îndeplinește trei sarcini principale:

  • Folosind unitatea sa aritmetico-logică, procesorul efectuează operații matematice: adunare, scădere, înmulțire și împărțire. Microprocesoarele moderne acceptă pe deplin operațiuni în virgulă mobilă (folosind un procesor aritmetic dedicat în virgulă mobilă)
  • Microprocesorul este capabil să mute date de la un tip de memorie la altul
  • Microprocesorul are capacitatea de a lua o decizie și, pe baza deciziei pe care o ia, să „sare”, adică să treacă la executarea unui nou set de instrucțiuni

Microprocesorul contine:

  • Autobuz de adrese. Lățimea acestei magistrale poate fi de 8, 16 sau 32 de biți. Ea este angajată în trimiterea adresei în memorie
  • Bus de date: 8, 16, 32 sau 64 de biți. Această magistrală poate trimite date în memorie sau poate primi date din memorie. Când se vorbește despre „capacitatea de biți” a unui procesor, vorbim despre lățimea magistralei de date
  • Canalele RD (citire) și WR (scriere) care asigură interacțiunea cu memoria
  • Linie de ceas (magistrală de impulsuri de ceas), care oferă cicluri de ceas al procesorului
  • Linia de resetare (ștergere magistrală, resetare magistrală), care resetează contorul programului și repornește execuția instrucțiunii

Deoarece informațiile sunt destul de complexe, vom presupune că lățimea ambelor magistrale - magistrala de adrese și de date - este de numai 8 biți. Să aruncăm o privire rapidă asupra componentelor acestui microprocesor relativ simplu:

  • Registrele A, B și C sunt cipuri logice utilizate pentru stocarea intermediară a datelor
  • Blocarea adresei este similară cu registrele A, B și C
  • Contorul de programe este un cip logic (latch) capabil să crească o valoare cu unul la un pas (dacă primește comanda corespunzătoare) și să pună la zero valoarea (sub rezerva primirii comenzii corespunzătoare)
  • O ALU (unitate logică aritmetică) poate efectua operații de adunare, scădere, înmulțire și împărțire între numere de 8 biți sau poate acționa ca un sumator obișnuit
  • Registrul de testare este un zăvor special care stochează rezultatele operațiunilor de comparare efectuate de ALU. De obicei, ALU compară două numere și determină dacă sunt egale sau unul este mai mare decât celălalt. Registrul de testare este, de asemenea, capabil să stocheze bitul de transport al ultimei acțiuni de adunare. Stochează aceste valori într-un circuit flip-flop. Aceste valori pot fi utilizate ulterior de decodorul de comenzi pentru a lua decizii
  • Șase blocuri din diagramă sunt etichetate „3-State”. Acestea sunt tampon de sortare. Mai multe surse de ieșire pot fi conectate la un fir, dar tamponul de sortare permite doar uneia dintre ele (o dată) să transmită o valoare: „0” sau „1”. Astfel, tamponul de sortare poate sări peste valori sau să blocheze sursa de ieșire să transmită date
  • Registrul de instrucțiuni și decodorul de instrucțiuni țin toate componentele de mai sus sub control

Această diagramă nu arată liniile de control ale decodorului de comandă, care pot fi exprimate sub forma următoarelor „comenzi”:

  • „Registrul A acceptă valoarea care vine în prezent din magistrala de date”
  • „Registrul B acceptă valoarea care vine în prezent din magistrala de date”
  • „Registrul C acceptă valoarea care provine în prezent de la unitatea logică aritmetică.”
  • „Registrul contorului programului ia valoarea care vine în prezent din magistrala de date”
  • „Registrul de adrese pentru a accepta valoarea care vine în prezent din magistrala de date”
  • „Registrul de comenzi acceptă valoarea care vine în prezent din magistrala de date”
  • „Măriți valoarea contorului programului [cu unu]”
  • „Contorul de comenzi va fi resetat la zero”
  • „Activați unul din șase tampon de sortare” (șase linii de control separate)
  • „Spuneți unității aritmetice-logice ce operație să efectueze”
  • „Registrul de testare acceptă biți de testare de la ALU”
  • „Activați RD (canal de citire)”
  • „Activați WR (canal de înregistrare)”

Decodorul de comandă primește biți de date din registrul de testare, canalul de sincronizare și, de asemenea, din registrul de comandă. Dacă simplificăm cât mai mult posibil descrierea sarcinilor decodorului de instrucțiuni, putem spune că acest modul este cel care „spune” procesorului ce trebuie făcut în acest moment.

Memorie cu microprocesor


Familiarizarea cu informațiile legate de memoria computerului și ierarhia acesteia vă va ajuta să înțelegeți mai bine conținutul acestei secțiuni.

Mai sus am scris despre autobuze (adresă și date), precum și despre canalele de citire (RD) și scriere (WR). Aceste magistrale și canale sunt conectate la memorie: memorie cu acces aleatoriu (RAM) și memorie doar pentru citire (ROM). În exemplul nostru, luăm în considerare un microprocesor a cărui lățime a fiecărei magistrale este de 8 biți. Aceasta înseamnă că este capabil să adreseze 256 de octeți (de la doi până la a opta putere). Poate citi sau scrie 8 biți de date din memorie simultan. Să presupunem că acest microprocesor simplu are 128 de octeți de ROM (începând de la adresa 0) sau 128 de octeți de RAM (începând de la adresa 128).

Un modul de memorie numai pentru citire conține un set persistent prestabilit de octeți. Autobuzul de adrese solicită un anumit octet din ROM să fie transferat pe magistrala de date. Când canalul de citire (RD) își schimbă starea, modulul ROM furnizează octetul solicitat magistralei de date. Adică, în acest caz, este posibilă doar citirea datelor.

Procesorul nu poate doar să citească informații din RAM, ci și să scrie date pe acesta. În funcție de faptul că se efectuează o citire sau o scriere, semnalul intră fie în canalul de citire (RD), fie în canalul de scriere (WR). Din păcate, memoria RAM este volatilă. Când alimentarea este oprită, pierde toate datele stocate în ea. Din acest motiv, un computer are nevoie de un dispozitiv de stocare non-volatil, doar pentru citire.

Mai mult, teoretic, un computer se poate lipsi deloc de RAM. Multe microcontrolere permit ca octeții de date necesari să fie plasați direct pe cipul procesorului. Dar este imposibil să faci fără ROM. În computerele personale, ROM-ul este numit sistemul de bază de intrare și ieșire (BIOS, Basic Input/Output System). La pornire, microprocesorul își începe lucrul executând comenzile găsite în BIOS.

Comenzile BIOS efectuează teste pe hardware-ul computerului, apoi accesează hard disk-ul și selectează sectorul de pornire. Acest sector de boot este un mic program separat pe care BIOS-ul îl citește mai întâi de pe disc și apoi îl plasează în RAM. După aceasta, microprocesorul începe să execute comenzi din sectorul de boot situat în RAM. Programul sectorului de pornire îi spune microprocesorului ce date (destinate pentru execuția ulterioară de către procesor) ar trebui mutate suplimentar de pe hard disk în RAM. Acesta este modul în care procesorul încarcă sistemul de operare.

Instrucțiuni pentru microprocesor


Chiar și cel mai simplu microprocesor este capabil să proceseze un set destul de mare de instrucțiuni. Un set de instrucțiuni este un fel de șablon. Fiecare dintre aceste instrucțiuni încărcate în registrul de comenzi are propriul său sens. Nu este ușor pentru oameni să-și amintească succesiunea de biți, așa că fiecare instrucțiune este descrisă ca un cuvânt scurt, fiecare dintre acestea reprezentând o comandă specifică. Aceste cuvinte alcătuiesc limbajul de asamblare al procesorului. Asamblatorul traduce aceste cuvinte într-un limbaj de cod binar pe care procesorul îl poate înțelege.

Iată o listă de cuvinte de comandă în limbajul de asamblare pentru un procesor simplu convențional, pe care le considerăm ca exemplu pentru povestea noastră:

  • LOADA mem — Încărcați registrul A dintr-o adresă de memorie
  • LOADB mem — Încărcați registrul B de la o adresă de memorie
  • CONB con — Încărcați o valoare constantă în registrul B
  • SAVEB mem — Salvați valoarea registrului B în memorie la o anumită adresă
  • SAVEC mem — Salvați valoarea registrului C în memorie la o anumită adresă
  • ADD — Adăugați (adăugați) valorile registrelor A și B. Stocați rezultatul acțiunii în registrul C
  • SUB — Scădeți valoarea registrului B din valoarea registrului A. Stocați rezultatul acțiunii în registrul C
  • MUL — Înmulțiți valorile registrelor A și B. Stocați rezultatul acțiunii în registrul C
  • DIV — Împărțiți valoarea registrului A la valoarea registrului B. Stocați rezultatul acțiunii în registrul C
  • COM - Comparați valorile registrelor A și B. Transferați rezultatul în registrul de testare
  • JUMP adresa - Salt la adresa specificată
  • JEQ addr - Dacă condiția pentru valorile a două registre este egală, săriți la adresa specificată
  • JNEQ addr - Dacă nu este îndeplinită condiția pentru valori egale a două registre, săriți la adresa specificată
  • JG addr - Dacă valoarea este mai mare, săriți la adresa specificată
  • JGE addr — Dacă valoarea este mai mare sau egală cu, săriți la adresa specificată
  • JL addr - Dacă valoarea este mai mică, săriți la adresa specificată
  • JLE addr - Dacă valoarea este mai mică sau egală cu, săriți la adresa specificată
  • STOP - Opriți execuția

Cuvintele în limba engleză care denotă acțiunile efectuate sunt date între paranteze pentru un motiv. Așa că putem vedea că limbajul de asamblare (ca multe alte limbaje de programare) se bazează pe engleză, adică pe mijloacele obișnuite de comunicare ale acelor oameni care au creat tehnologii digitale.

Funcționarea microprocesorului folosind exemplul de calcul factorial


Să luăm în considerare funcționarea unui microprocesor folosind un exemplu specific de execuție a unui program simplu care calculează factorialul numărului „5”. Mai întâi, să rezolvăm această problemă „într-un caiet”:

factorial de 5 = 5! = 5 * 4 * 3 * 2 * 1 = 120

În limbajul de programare C, această bucată de cod care efectuează acest calcul ar arăta astfel:

A=1;f=1;în timp ce (a

Când acest program se termină, variabila f va conține valoarea factorialului de cinci.

Compilatorul C traduce (adică traduce) acest cod într-un set de instrucțiuni în limbaj de asamblare. În procesorul pe care îl luăm în considerare, RAM începe la adresa 128, iar memoria permanentă (care conține limbaj de asamblare) începe la adresa 0. Prin urmare, în limbajul acestui procesor, acest program va arăta astfel:

// Să presupunem că a este la adresa 128 // Să presupunem că F este la adresa 1290 CONB 1 // a=1;1 SAVEB 1282 CONB 1 // f=1;3 SAVEB 1294 LOADA 128 // dacă a > 5 saltul la 175 CONB 56 COM7 JG 178 LOADA 129 // f=f*a;9 LOADB 12810 MUL11 SAVEC 12912 LOADA 128 // a=a+1;13 CONB 114 ADD15 SAVEC 12816 JUMP back to 4 //17

Acum apare următoarea întrebare: cum arată toate aceste comenzi în memoria permanentă? Fiecare dintre aceste instrucțiuni trebuie să fie reprezentată ca un număr binar. Pentru a simplifica înțelegerea materialului, vom presupune că fiecare dintre comenzile limbajului de asamblare ale procesorului pe care îl luăm în considerare are un număr unic:

  • ÎNCĂRCARE - 1
  • LOADB - 2
  • CONB - 3
  • SAVEB - 4
  • SAVEC mem - 5
  • ADAUGĂ - 6
  • SUB - 7
  • MUL - 8
  • DIV - 9
  • COM - 10
  • JUMP adresa - 11
  • Adresă JEQ - 12
  • Adresa JNEQ - 13
  • Adresa JG - 14
  • Adresa JGE - 15
  • Adresa JL - 16
  • Adresa JLE - 17
  • STOP - 18

// Să presupunem că a este la adresa 128 // Să presupunem că F este la adresa 129Addr machine instruction/value0 3 // CONB 11 12 4 // SAVEB 1283 1284 3 // CONB 15 16 4 // SAVEB 1297 1298 1297 1298 4 // 1289 12810 3 // CONB 511 512 10 // COM13 14 // JG 1714 3115 1 // LOADA 12916 12917 2 // LOADB 12818 12819 8 // MUL20 12819 8 // MUL20 12921 5 // 1292 5 // 823 1 2824 3 // CONB 125 126 6 // ADD27 5 // SAVEC 12828 12829 11 // JUMP 430 831 18 // STOP

După cum veți observa, șapte linii de cod C au fost convertite în 18 linii de limbaj de asamblare. Au ocupat 32 de octeți în ROM.

Decodare


Conversația despre decodare va trebui să înceapă cu o luare în considerare a problemelor filologice. Din păcate, nu toți termenii informatici au corespondență unu-la-unu în rusă. Traducerea terminologiei a avut loc adesea spontan și, prin urmare, același termen englez poate fi tradus în rusă în mai multe moduri. Acesta este ceea ce s-a întâmplat cu cea mai importantă componentă a logicii microprocesorului „decodor de instrucțiuni”. Experții în computer îl numesc atât decodor de comandă, cât și decodor de instrucțiuni. Niciuna dintre aceste opțiuni de nume nu poate fi numită mai mult sau mai puțin „corectă” decât cealaltă.

Este necesar un decodor de instrucțiuni pentru a traduce fiecare cod de mașină într-un set de semnale care conduc diferitele componente ale microprocesorului. Dacă simplificăm esența acțiunilor sale, atunci putem spune că el este cel care coordonează „software” și „hardware”.

Să ne uităm la funcționarea decodorului de comenzi folosind exemplul instrucțiunii ADD, care efectuează o acțiune de adăugare:

  • În timpul primului ciclu de ceas al procesorului, instrucțiunea este încărcată. În acest moment, decodorul de comandă trebuie să: activeze tamponul de sortare pentru contorul de programe; activarea canalului de citire (RD); activați dispozitivul de blocare a tamponului de sortare pentru a trece datele de intrare în registrul de instrucțiuni
  • În timpul celui de-al doilea ciclu de ceas al procesorului, instrucțiunea ADD este decodificată. În această etapă, unitatea logică aritmetică efectuează adunarea și transferă valoarea în registrul C
  • În timpul celui de-al treilea ciclu al frecvenței ceasului procesorului, contorul programului își mărește valoarea cu unu (teoretic, această acțiune se suprapune cu ceea ce s-a întâmplat în timpul celui de-al doilea ciclu)

Fiecare instrucțiune poate fi reprezentată ca un set de operații executate secvenţial care manipulează componentele microprocesorului într-o anumită ordine. Adică, instrucțiunile software duc la modificări complet fizice: de exemplu, schimbarea poziției unui zăvor. Unele instrucțiuni pot necesita două sau trei cicluri de ceas al procesorului pentru a fi executate. Alții pot necesita chiar și cinci sau șase cicluri.

Microprocesoare: performanță și tendințe


Numărul de tranzistori dintr-un procesor este un factor important care afectează performanța acestuia. După cum sa arătat mai devreme, procesorul 8088 a necesitat 15 cicluri de ceas pentru a executa o instrucțiune. Și pentru a efectua o operație pe 16 biți, a fost nevoie de aproximativ 80 de cicluri. Așa a fost conceput multiplicatorul ALU al acestui procesor. Cu cât mai mulți tranzistori și cu cât multiplicatorul ALU este mai puternic, cu atât procesorul poate face mai mult într-un singur ciclu de ceas.

Multe tranzistoare acceptă tehnologia pipelining. În cadrul unei arhitecturi pipeline, instrucțiunile executabile se suprapun parțial unele pe altele. O instrucțiune poate necesita aceleași cinci cicluri pentru a fi executată, dar dacă procesorul procesează simultan cinci instrucțiuni (la diferite etape de finalizare), atunci, în medie, va fi necesar un ciclu de ceas al procesorului pentru a executa o instrucțiune.

Multe procesoare moderne au mai mult de un decodor de comandă. Și fiecare dintre ele acceptă conducte. Acest lucru permite executarea mai multor instrucțiuni într-un ciclu de procesor. Implementarea acestei tehnologii necesită un număr incredibil de tranzistori.

procesoare pe 64 de biți


Deși procesoarele pe 64 de biți s-au răspândit cu doar câțiva ani în urmă, ele există de relativ mult timp: din 1992. Atât Intel, cât și AMD oferă în prezent astfel de procesoare. Un procesor pe 64 de biți poate fi considerat a fi unul care are o unitate logică aritmetică pe 64 de biți (ALU), registre pe 64 de biți și magistrale pe 64 de biți.

Principalul motiv pentru care procesoarele au nevoie de 64 de biți este că arhitectura extinde spațiul de adrese. Procesoarele pe 32 de biți pot accesa doar doi sau patru gigaocteți de memorie RAM. Pe vremuri aceste cifre păreau gigantice, dar anii au trecut și astăzi o astfel de amintire nu va mai surprinde pe nimeni. Acum câțiva ani, memoria unui computer tipic era de 256 sau 512 megaocteți. În acele zile, limita de patru gigabyte deranja doar serverele și mașinile care rulau baze de date mari.

Dar s-a dovedit rapid că chiar și utilizatorilor obișnuiți le lipsesc uneori doi sau chiar patru gigaocteți de memorie RAM. Această limitare enervantă nu se aplică procesoarelor pe 64 de biți. Spațiul de adrese disponibil pentru ei în prezent pare infinit: de la doi până la șaizeci și patru de octeți, sau ceva de genul un miliard de gigaocteți. În viitorul previzibil, nu este de așteptat o memorie RAM atât de gigantică.

Autobuzul de adrese pe 64 de biți, precum și magistralele de date largi și de mare viteză ale plăcilor de bază corespunzătoare, permit computerelor pe 64 de biți să mărească viteza de intrare și ieșire a datelor atunci când interacționează cu dispozitive precum hard diskul și placa video. Aceste noi caracteristici măresc semnificativ performanța mașinilor de calcul moderne.

Dar nu toți utilizatorii vor experimenta beneficiile arhitecturii pe 64 de biți. Este necesar, în primul rând, pentru cei care editează videoclipuri și fotografii și, de asemenea, lucrează cu diverse imagini mari. Calculatoarele pe 64 de biți sunt apreciate de cunoscătorii de jocuri pe calculator. Dar acei utilizatori care pur și simplu folosesc un computer pentru a comunica pe rețelele sociale și a naviga pe web și edita fișiere text, cel mai probabil, pur și simplu nu vor simți niciun avantaj al acestor procesoare.

Pe baza materialelor de pe computer.howstuffworks.com

Clasificarea și tipurile de procesoare. Specificații CPU

CPU.

Etape de dezvoltare a procesoarelor centrale pentru calculatoare personale. Tehnologie modernă și soluții arhitecturale. Tehnologii RISC și CISC. Parametrii de bază ai procesoarelor. procesoare pe 32 și 64 de biți. Procesoare pe 32 de biți de la producători importanți: Intel, AMD, VIA. Analiza comparativă a caracteristicilor procesoarelor moderne. Principalele tendințe și perspective de dezvoltare.

Studentul trebuie sa stie:

  • principalele caracteristici ale procesoarelor;
  • despre etapele dezvoltării procesorului;
  • tipuri de procesoare;
  • principalele modele moderne de procesoare;

Studentul trebuie să fie capabil să:

  • determinați principalele caracteristici ale procesorului folosind programe de testare;

Obiectivele lecției:

  • – familiarizarea elevilor cu componentele principale ale unui procesor de sistem.
  • – studiază tipurile de procesoare și caracteristicile acestora.
  • – cultivarea culturii informaționale a elevilor, atenție, acuratețe, disciplină, perseverență.
  • – dezvoltarea intereselor cognitive, a abilităților de autocontrol și a abilităților de a lua notițe.

Progresul lecției:

Partea teoretică.

„Creierul” unui computer personal este un microprocesor sau o unitate centrală de procesare - CPU (Central Processing Unit). Microprocesorul efectuează calcule și prelucrarea datelor (cu excepția unor operații matematice efectuate în calculatoare care au coprocesor) și este de obicei cel mai scump cip dintr-un computer. Toate computerele compatibile cu PC folosesc procesoare care acceptă familia de cipuri Intel, dar acestea sunt produse și proiectate nu numai de Intel însăși, ci și de AMD, Cyrix, IDT și Rise Technologies.

Intel domină în prezent piața procesoarelor, dar nu a fost întotdeauna cazul. Intel este strâns asociat cu inventarea primului procesor și apariția acestuia pe piață. Cel mai bun moment al Intel și Microsoft a venit în 1981, când IBM a lansat primul computer personal, IBM PC, cu un procesor Intel 8088 (4,77 MHz) și Microsoft Disk Operating System (DOS) versiunea 1.0. De acum încolo, aproape toate computerele personale sunt echipate cu procesoare Intel și sisteme de operare Microsoft.

  • Parametrii procesorului

Când se descriu parametrii și designul procesoarelor, adesea apare confuzie. Să ne uităm la câteva caracteristici ale procesoarelor, inclusiv lățimea magistralei de date și a magistralei de adrese, precum și viteza.

Procesoarele pot fi clasificate în funcție de doi parametri principali: capacitatea de biți și viteza. Viteza procesorului este un parametru destul de simplu. Se măsoară în megaherți (MHz); 1 MHz este egal cu un milion de cicluri de ceas pe secundă. Cu cât viteza este mai mare, cu atât mai bine (cu atât procesorul este mai rapid). Capacitatea procesorului este un parametru mai complex. Procesorul include trei dispozitive importante, a căror caracteristică principală este capacitatea de biți:

  • magistrală de intrare și ieșire a datelor;
  • registrele interne;
  • magistrala de adrese de memorie.

Procesoarele cu viteze de ceas mai mici de 16 MHz nu au cache încorporată. Pe sistemele anterioare procesorului 486, memoria cache rapidă a fost instalată pe placa de sistem. Începând cu cele 486 de procesoare, memoria cache L1 a fost instalată direct în șasiu și a rulat la viteza procesorului. Și memoria cache de pe placa de bază a început să fie numită memorie cache de nivel al doilea. A funcționat deja la frecvențele suportate de placa de bază.

În procesoarele Pentium Pro și Pentium II, memoria cache L2 este instalată în pachet și este fizic un cip separat. Cel mai adesea, o astfel de memorie funcționează la jumătate (procesoare Pentium II/III și AMD Athlon) sau chiar mai puțin (două cincimi sau o treime) frecvența de bază a procesorului.

La procesoarele Pentium Pro, Pentium II/III Xeon, Pentium III moderne, Celeron, K6-3, Athlon (model 4), procesoare Duron, memoria cache funcționează la frecvența de bază. Motivul pentru care memoria cache L2 a rulat la o frecvență mai mică decât nucleul procesorului a fost destul de simplu: cipurile cache existente nu îndeplineau condițiile pieței. Intel a creat un cip de memorie cache de mare viteză pentru procesorul Xeon, al cărui cost s-a dovedit a fi extrem de mare. Cu toate acestea, apariția noilor tehnologii de procesoare a făcut posibilă utilizarea memoriei cache care funcționează la viteza de bază în procesoare Celeron din a doua generație ieftine. Acest design a fost adoptat de a doua generație Intel Pentium III, precum și de procesoarele AMD K6-3, Athlon și Duron. Această arhitectură, utilizată în prezent în aproape toate modelele Intel și AMD, este singura modalitate mai mult sau mai puțin rentabilă de a utiliza memoria cache L2 de mare viteză.

Viteza procesorului

Viteza este una dintre caracteristicile procesorului care este adesea interpretată în moduri diferite. În această secțiune, veți afla despre viteza procesoarelor în general și a procesoarelor Intel în special.

Performanța unui computer depinde în mare măsură de viteza de ceas, de obicei măsurată în megaherți (MHz). Este determinat de parametrii unui rezonator de cuarț, care este un cristal de cuarț închis într-un recipient mic de tablă. Sub influența tensiunii electrice, într-un cristal de cuarț apar oscilații ale curentului electric cu o frecvență determinată de forma și dimensiunea cristalului. Frecvența acestui curent alternativ se numește frecvența ceasului. Cipurile tipice ale unui computer funcționează la o frecvență de câteva milioane de herți. (Hertz este o oscilație pe secundă.) Viteza este măsurată în megaherți, adică în milioane de cicluri pe secundă. În fig. Figura 1 prezintă un grafic al unui semnal sinusoidal.

Orez. 1. Reprezentarea grafică a conceptului de frecvență de ceas

Cea mai mică unitate de timp (cuantică) pentru un procesor ca dispozitiv logic este perioada de ceas sau pur și simplu ceasul. Fiecare operație necesită cel puțin un ciclu. De exemplu, procesorul Pentium II realizează schimbul de date cu memoria în trei cicluri de ceas plus câteva cicluri de așteptare. (Un ciclu de așteptare este un ciclu de ceas în care nu se întâmplă nimic; este necesar doar să împiedicați procesorul să „fugă” de nodurile mai lente ale computerului.)

Timpul necesar pentru executarea comenzilor variază, de asemenea.

8086 Și 8088 . În aceste procesoare, este nevoie de aproximativ 12 cicluri de ceas pentru a executa o instrucțiune.

286 Și 386 . Aceste procesoare au redus timpul de execuție a instrucțiunilor la aproximativ 4,5 cicluri de ceas.

Cele 486 și cele mai multe procesoare compatibile Intel din a patra generație, cum ar fi 5x86 de la AMD, au redus acest lucru la 2 cicluri de ceas.

Seria Pentium, K6. Arhitectura Pentium și a altor procesoare Intel de generația a cincea compatibile de la AMD și Cyrix, care include conducte de instrucțiuni duale și alte îmbunătățiri, permite să fie executate una sau două instrucțiuni pe ciclu de ceas.

Pentium Pro, Pentium II/III/Celeron și Athlon/Duron. Procesoarele de clasa P6, precum și alte procesoare din a șasea generație create de AMD și Cyrix, vă permit să executați minim trei instrucțiuni pe ciclu de ceas.

Numărul variabil de cicluri de ceas necesare pentru executarea comenzilor face dificilă compararea performanței computerelor pe baza exclusivității vitezei de ceas (adică, numărul de cicluri de ceas pe secundă). De ce un procesor rulează mai repede decât altul la aceeași viteză de ceas? Motivul constă în performanță.

Procesorul 486 este mai rapid decât 386, deoarece necesită în medie jumătate din câte cicluri de ceas ca 386 pentru a executa o comandă. Iar procesorul Pentium are de două ori mai puține cicluri de ceas decât 486. Astfel, un procesor 486 tactat la 133 MHz (tip AMD 5x86-133) este chiar mai lent decât un Pentium tactat la 75 MHz! Acest lucru se datorează faptului că, la aceeași frecvență, Pentium execută de două ori mai multe instrucțiuni decât procesorul 486 Pentium II și Pentium III sunt cu aproximativ 50% mai rapide decât un procesor Pentium care rulează la aceeași frecvență, deoarece pot executa mult mai multe instrucțiuni pentru aceeași frecvență. numărul de cicluri.

Comparând eficiența relativă a procesoarelor, se poate observa că performanța unui Pentium III care rulează la 1000 MHz este teoretic egală cu performanța unui Pentium care rulează la 1500 MHz, care la rândul său este teoretic egală cu performanța unui 486 care rulează. la 3.000 MHz și, la rândul său, este teoretic egală cu performanța procesoarelor 386 sau 286 care operează la o frecvență de ceas de 6.000 MHz, sau 8088, care funcționează la o frecvență de ceas de 12.000 MHz. Având în vedere că PC-ul original 8088 tacta la doar 4,77 MHz, computerele de astăzi sunt de peste 1.500 de ori mai rapide decât atât. Prin urmare, nu puteți compara performanța computerului doar pe baza vitezei de ceas; Trebuie avut în vedere că și alți factori influențează eficacitatea sistemului.

Evaluarea eficienței unui procesor central este destul de dificilă. Procesoarele centrale cu arhitecturi interne diferite execută instrucțiuni în mod diferit: aceleași instrucțiuni în diferite procesoare pot fi executate fie mai rapid, fie mai lent. Pentru a găsi o măsură satisfăcătoare pentru compararea CPU-urilor de diferite arhitecturi care rulează la viteze de ceas diferite, Intel a inventat un set specific de benchmark-uri care pot fi rulate pe cipuri Intel pentru a măsura eficiența relativă a procesoarelor. Acest sistem de referință a fost recent modificat pentru a măsura performanța procesoarelor pe 32 de biți; se numește index (sau indicator) iCOMP 2.0 (intel Comparative Microprocessor Performance - eficiența comparativă a microprocesorului Intel). A treia versiune a acestui index este în prezent în uz - iCOMP 3.0.

Viteza de ceas a procesorului

Aproape toate procesoarele moderne, începând cu 486DX2, funcționează la o frecvență de ceas care este egală cu produsul unui anumit multiplicator și frecvența de ceas a plăcii de bază. De exemplu, procesorul Celeron 600 rulează cu de nouă ori viteza de ceas a plăcii de bază (66 MHz), iar Pentium III 1000 rulează la șapte ori și jumătate viteza de ceas a plăcii de bază (133 MHz). Majoritatea plăcilor de bază au funcționat la 66 MHz; Aceasta este frecvența pe care au suportat-o ​​toate procesoarele Intel până la începutul anului 1998 și abia recent compania a dezvoltat procesoare și chipset-uri care pot rula pe plăci de bază evaluate la 100 MHz. Unele procesoare Cyrix sunt proiectate pentru plăci de bază evaluate la 75 MHz, iar multe plăci de bază concepute pentru Pentium pot rula și la această viteză. De obicei, viteza de ceas a plăcii de sistem și multiplicatorul pot fi setate folosind jumperi sau alte proceduri de configurare a plăcii de sistem (de exemplu, prin selectarea valorilor adecvate în programul de configurare BIOS).

La sfârșitul anului 1999, au apărut chipset-uri și plăci de bază cu o viteză de ceas de 133 MHz, care acceptă toate versiunile moderne ale procesorului Pentium III. În același timp, AMD a lansat plăci de bază Athlon și chipset-uri de 100 MHz folosind tehnologia duală de transfer de date. Acest lucru a permis ca rata de transfer de date între procesorul Athlon și chipset-ul principal să crească la 200 MHz.

Până în 2001, viteza magistralelor procesoarelor AMD Athlon și Intel Itanium a crescut la 266 MHz, iar viteza magistralei procesorului Pentium 4 a crescut la 400 MHz.

Uneori apare întrebarea de ce puternicul procesor Itanium folosește o magistrală CPU mai lentă decât Pentium 4. Această întrebare este extrem de relevantă! Răspunsul constă cel mai probabil în faptul că aceste componente au fost create de echipe complet diferite de dezvoltatori cu scopuri și obiective diferite. Procesorul Itanium, dezvoltat împreună cu HP (Hewlett Packard), a fost proiectat să folosească memorie DDR (Duble Data Rate), care, la rândul său, rulează la o frecvență de 266 MHz mai prietenoasă cu serverele. Potrivirea vitezei magistralei procesorului cu magistrala de memorie permite cea mai mare performanță, astfel încât un sistem care utilizează DDR SDRAM funcționează cel mai bine dacă viteza magistralei CPU (unitatea centrală de procesare) este, de asemenea, de 266 MHz.

Pe de altă parte, Pentium 4 a fost proiectat să folosească RDRAM, astfel încât viteza magistralei de sistem se potrivește cu cea a RDRAM-ului. Vă rugăm să rețineți că performanța magistralei, ca orice procesor lansat de Intel, se poate schimba în viitor.

Calculatoarele moderne folosesc un generator de frecvență variabilă, situat de obicei pe placa de sistem; generează frecvența de referință pentru placa de bază și procesor. Majoritatea plăcilor de bază cu procesoare Pentium pot fi setate la una din trei sau patru viteze de ceas. Astăzi, există multe versiuni de procesoare disponibile, care funcționează la frecvențe diferite, în funcție de viteza de ceas a unei anumite plăci de bază. De exemplu, viteza majorității procesoarelor Pentium este de câteva ori mai mare decât viteza plăcii de bază.

Toate celelalte lucruri fiind egale (tipuri de procesoare, numărul de cicluri de așteptare la accesarea memoriei și lățimea magistralelor de date), două computere pot fi comparate prin vitezele de ceas. Totuși, acest lucru ar trebui făcut cu precauție: performanța computerului depinde și de alți factori (în special, cei influențați de caracteristicile de design ale memoriei). De exemplu, un computer cu o viteză de ceas mai mică poate funcționa mai repede decât vă așteptați, dar un sistem cu o viteză de ceas nominală mai mare poate funcționa mai lent decât ar trebui. Factorul determinant în acest caz este arhitectura, designul și baza elementară a RAM-ului sistemului.

În timpul fabricării procesoarelor, testarea este efectuată la diferite viteze de ceas, temperaturi și presiuni. După aceasta, acestea sunt marcate, indicând frecvența maximă de funcționare pe întregul interval utilizabil de temperaturi și presiuni care pot fi întâlnite în condiții normale. Sistemul de notare este destul de simplu, așa că vă puteți da seama singur.

  • Eficiența procesoarelor Cyrix

Marcarea procesoarelor Cyrix/IBM 6×86 folosește scala PR (Performance Rating), ale cărei valori nu sunt egale cu frecvența ceasului real în megaherți. De exemplu, procesorul Cyrix 6x86MX/MII-PR366 rulează de fapt la o viteză de ceas de 250 MHz (2,5×100 MHz). Viteza de ceas a plăcii de bază a procesorului specificat ar trebui să fie setată ca și cum ar fi instalat un procesor cu o frecvență de ceas de 250, și nu 366 MHz (așa cum se poate presupune prin numărul 366 de pe marcaj).

Vă rugăm să rețineți că procesorul Cyrix 6x86MX-PR200 poate rula la 150, 165, 166 sau 180 MHz, dar nu la 200 MHz. Această evaluare a performanței este destinată comparării cu procesoarele Intel Pentium originale (Celeron, Pentium II sau Pentium III nu sunt incluse în această evaluare).

Se presupune că ratingul de performanță (P-Rating) determină performanța procesorului în raport cu Intel Pentium. Dar trebuie menționat că procesorul Cyrix comparat nu conține tehnologie MMX, cache-ul său L1 este mai mic, folosește o platformă de placă de bază și un chipset destul de vechi, ca să nu mai vorbim de memorie mai lentă. Din aceste motive, scala P-Rating nu este foarte utilă atunci când se compară procesoarele Cyrix cu Celeron, Pentium II sau Pentium III, ceea ce înseamnă că sunt mai bine evaluate după performanța reală. Cu alte cuvinte, procesorul Cyrix 6x86MX/MII-PR366 rulează doar la 250 MHz și poate fi comparat cu procesoarele Intel cu viteze de ceas similare. Cred că etichetarea MII-366 pentru un procesor care rulează de fapt la 250 MHz este puțin înșelătoare.

  • Eficiența procesoarelor AMD

Eficiența procesoarelor din seria AMD K5 este comparată într-un mod similar. Evaluarea eficienței seriilor K6 și Athlon indică frecvența reală de funcționare. La procesoarele din familia Athlon, magistrala funcționează la frecvența dublă a plăcii de bază (200 MHz).

Autobuz de date

Una dintre cele mai comune caracteristici ale unui procesor este lățimea magistralei de date și a magistralei de adrese. O magistrală este un set de conexiuni prin care sunt transmise diferite semnale. Imaginează-ți o pereche de fire care trec de la un capăt la altul al unei clădiri. Dacă conectați un generator de tensiune de 220 de volți la aceste fire și plasați prize de-a lungul liniei, veți primi un autobuz. Indiferent de priza în care este introdus ștecherul, veți primi întotdeauna același semnal, în acest caz 220 Volți AC. Orice linie de transmisie (sau mediu de transmisie a semnalului) care are mai mult de un terminal poate fi numită magistrală. Un computer tipic are mai multe magistrale interne și externe, iar fiecare procesor are două magistrale principale pentru transferul de date și adrese de memorie: magistrala de date și magistrala de adrese.

Când oamenii vorbesc despre o magistrală de procesor, se referă cel mai adesea la o magistrală de date, reprezentată ca un set de conexiuni (sau pini) pentru transmiterea sau primirea datelor. Cu cât mai multe semnale intră în magistrală în același timp, cu atât mai multe date sunt transferate peste acesta într-o anumită perioadă de timp și cu atât funcționează mai rapid. Lățimea unui magistral de date este similară cu numărul de benzi de pe un drum expres; Așa cum creșterea numărului de benzi permite mai mult trafic pe autostradă, creșterea numărului de benzi permite creșterea productivității.

Datele dintr-un computer sunt transmise sub formă de numere la intervale regulate. Pentru a transmite un singur bit de date într-un anumit interval de timp, este trimis un semnal de tensiune de nivel înalt (aproximativ 5 V), iar pentru a transmite un bit de date zero, este trimis un semnal de tensiune de nivel scăzut (aproximativ 0 V). Cu cât sunt mai multe linii, cu atât mai mulți biți pot fi transmisi în același timp. Procesoarele 286 și 386SX folosesc 16 conexiuni pentru a trimite și primi date binare, astfel încât au o magistrală de date pe 16 biți. Un procesor pe 32 de biți, cum ar fi 486 sau 386DX, are de două ori mai multe dintre aceste conexiuni, astfel încât transferă de două ori mai multe date pe unitatea de timp decât un procesor pe 16 biți. Procesoarele moderne de tip Pentium au magistrale de date externe pe 64 de biți. Aceasta înseamnă că procesoarele Pentium, inclusiv Pentium original, Pentium Pro și Pentium II, pot introduce simultan 64 de biți de date în (sau din) memoria sistemului.

Să ne imaginăm că anvelopa este o autostradă cu mașini care circulă de-a lungul ei. Dacă o autostradă are o singură bandă în fiecare sens, atunci o singură mașină poate circula de-a lungul ei într-o direcție la un moment dat. Dacă vrei să dublezi capacitatea unui drum, de exemplu, va trebui să-l lărgești adăugând încă o bandă în fiecare sens. Astfel, un cip de 8 biți poate fi gândit ca o autostradă cu o singură bandă, deoarece doar un octet de date trece prin el la un moment dat (un octet este egal cu opt biți). La fel, o magistrală de date pe 32 de biți poate transporta patru octeți de informații simultan, dar una pe 64 de biți este ca o autostradă cu opt benzi! O autostradă este caracterizată de numărul de benzi, iar procesorul este caracterizat de lățimea magistralei sale de date. Când un manual sau o fișă de date se referă la un computer pe 32 de biți sau 64 de biți, de obicei se referă la lățimea magistralei de date a procesorului. Poate fi folosit pentru a estima aproximativ performanța procesorului și, prin urmare, a întregului computer.

Lățimea magistralei de date a procesorului determină și lățimea băncii de memorie. Aceasta înseamnă că un procesor pe 32 de biți, cum ar fi clasa 486, citește sau scrie în memorie pe 32 de biți o dată. Procesoarele din clasa Pentium, inclusiv Pentium III și Celeron, citesc sau scriu în memorie pe 64 de biți o dată.

  • cache L1

Toate procesoarele care încep cu 486 au un controler cache integrat (nivel 1) cu 8 KB de memorie cache în procesoarele 486DX, precum și 32, 64 KB sau mai mult la modelele moderne. Un cache este o memorie de mare viteză concepută pentru a stoca temporar codul programului și datele. Accesele la memoria cache încorporată au loc fără stări de așteptare, deoarece viteza acesteia se potrivește cu capacitățile procesorului, de exemplu. Cache-ul L1 (sau cache pe cip) rulează la viteza procesorului.

Utilizarea memoriei cache reduce dezavantajul tradițional al computerelor că RAM rulează mai lent decât CPU (așa-numitul efect de blocaj). Datorită memoriei cache, procesorul nu trebuie să aștepte ca următoarea bucată de cod sau date să sosească din memoria principală relativ lentă, ceea ce duce la o creștere vizibilă a performanței.

La procesoarele moderne, memoria cache pe cip joacă un rol și mai important deoarece este adesea singurul tip de memorie din întregul sistem care poate funcționa sincronizat cu procesorul. Majoritatea procesoarelor moderne folosesc un multiplicator de ceas, ceea ce înseamnă că funcționează la viteza de ceas de câteva ori mai mare decât cea a plăcii de bază la care sunt conectate.

  • cache L2

Pentru a reduce încetinirea notabilă a sistemului care are loc la fiecare pierdere a memoriei cache, se utilizează memoria cache L2.

Cache-ul secundar pentru procesoarele Pentium se află pe placa de bază, iar pentru Pentium Pro și Pentium II - în interiorul carcasei procesorului. Prin mutarea memoriei cache secundare în procesor, îl puteți forța să ruleze la o viteză de ceas mai mare decât placa de bază - la fel ca și procesorul însuși. Pe măsură ce frecvența ceasului crește, timpul ciclului scade.

Vitezele de ceas standard ale plăcii de bază de astăzi sunt de 66, 100 sau 133 MHz, dar unele procesoare rulează la 600 MHz sau mai mult. Sistemele mai noi nu folosesc un cache pe placa de bază deoarece modulele rapide SDRAM sau RDRAM utilizate în sistemele moderne Pentium II/Celeron/III pot rula la viteza ceasului plăcii de bază.

Procesoarele Celeron cu viteze de ceas de 300 MHz și mai sus, precum și procesoarele Pentium III cu frecvențe de peste 600 MHz, conțin memorie cache L2, a cărei viteză este egală cu frecvența de bază a procesorului. Cache-ul pe cip din Duron și cele mai recente procesoare Athlon funcționează, de asemenea, la viteza procesorului. Versiunile anterioare ale procesorului Athlon, precum și Pentium II și III, folosesc un cache extern cu o frecvență de operare egală cu o jumătate, două cincimi sau o treime din viteza de ceas a procesorului. După cum puteți vedea, intervalul actual de viteze cache, de la frecvența completă a procesorului la frecvența mai mică a memoriei principale, minimizează durata stărilor de așteptare pe care procesorul le poate tolera. Acest lucru permite procesorului să funcționeze la o frecvență care este cea mai apropiată de viteza sa reală.

  • Tehnologia MMX

În funcție de context, MMX poate însemna extensii multimedia sau extensii matematice matrice. Tehnologia MMX a fost folosită în modelele mai vechi de procesoare Pentium din generația a cincea (Fig. 2) ca o extensie care accelerează compresia/decompresia video, manipularea imaginilor, criptarea și operațiunile I/O - aproape toate operațiunile utilizate în multe programe moderne.


Există două îmbunătățiri majore la arhitectura procesorului MMX.

Primul, fundamental, este că toate cipurile MMX au un cache intern mai mare decât omologii lor care nu folosesc această tehnologie. Acest lucru îmbunătățește eficiența de execuție a fiecărui program și a întregului software, indiferent dacă folosește de fapt comenzi MMX.

  • Tehnologia SSE

În februarie 1999, Intel a prezentat publicului procesorul Pentium III, care conține o actualizare a tehnologiei MMX numită SSE (Streaming SIMD Extensions). Până în acest moment, instrucțiunile SSE erau numite Katmai New Instructions (KNI), deoarece au fost incluse inițial în procesorul Pentium III, cu numele de cod Katmai. Celeron 533A și procesoarele superioare bazate pe nucleul Pentium III acceptă și instrucțiuni SSE. Versiunile anterioare ale procesorului Pentium II, precum și Celeron 533 și cele mai mici (bazate pe nucleul Pentium II), nu acceptă SSE.

Noile tehnologii SSE vă permit să lucrați mai eficient cu grafică 3D, fluxuri audio și video (redare DVD), precum și aplicații de recunoaștere a vorbirii. În general, SSE oferă următoarele beneficii:

  • rezoluție/calitate mai mare la vizualizarea și procesarea imaginilor grafice;
  • calitate îmbunătățită a redării fișierelor audio și video în format MPEG2 și
  • de asemenea, codificarea și decodarea simultană a formatului MPEG2 în aplicații multimedia;
  • Încărcare redusă a procesorului și precizie/reactivitate crescută atunci când
  • rulează software de recunoaștere a vorbirii.

Instrucțiunile SSE și SSE2 sunt deosebit de eficiente la decodarea fișierelor MPEG2, care este un standard de compresie audio și video utilizat în DVD-uri.

Unul dintre principalele avantaje ale SSE față de MMX este suportul pentru operațiunile SIMD în virgulă mobilă, care este foarte important atunci când procesează imagini grafice 3D. Tehnologia SIMD, precum MMX, vă permite să efectuați mai multe operații simultan atunci când procesorul primește o comandă.

  • 3DNow și tehnologia 3DNow îmbunătățită

Tehnologia 3DNow a fost dezvoltată de AMD ca răspuns la implementarea suportului pentru instrucțiunile SSE în procesoarele Intel. Pentru prima dată (mai 1998), 3DNow a fost implementat în procesoarele AMD K6, iar această tehnologie a fost dezvoltată în continuare - Enhanced 3DNow - în procesoarele Athlon și Duron. Similar cu SSE, tehnologiile 3DNow și Enhanced 3DNow sunt concepute pentru a accelera procesarea graficelor 3D, multimedia și a altor aplicații care necesită calcul intensiv.

Întrebări de control

  1. Ce dispozitive oferă compoziția minimă a unui PC?
  2. Oferiți o clasificare a diferitelor tipuri de memorie. Care este scopul lor?
  3. Ce etape principale ale dezvoltării STI cunoașteți?
  4. Care sunt principalele componente ale unei plăci de bază pentru PC?
  5. Care este scopul autobuzelor PC?
  6. Ce parametri caracterizează performanța procesorului?
  7. Care sunt principalele caracteristici ale cipurilor de memorie?