Cum funcționează un microprocesor de calculator? Să ne uităm la câteva puncte importante despre cum funcționează un computer.

Acasă / Laptop-uri

Aproape toată lumea știe că într-un computer, elementul principal dintre toate componentele „hard” este procesorul central. Dar cercul de oameni care înțeleg cum funcționează un procesor este foarte limitat. Majoritatea utilizatorilor habar n-au despre asta. Și chiar și atunci când sistemul începe brusc să încetinească, mulți cred că procesorul este cel care nu funcționează bine și nu acordă importanță altor factori. Pentru a înțelege pe deplin situația, să ne uităm la câteva aspecte ale funcționării procesorului.

Ce este o unitate centrală de procesare?

În ce constă procesorul?

Dacă vorbim despre modul în care funcționează un procesor Intel sau concurentul său AMD, trebuie să vă uitați la modul în care sunt proiectate aceste cipuri. Primul microprocesor (apropo, era de la Intel, modelul 4040) a apărut în 1971. Putea efectua doar cele mai simple operații de adunare și scădere cu procesarea a doar 4 biți de informații, adică avea o arhitectură de 4 biți.

Procesoarele moderne, ca și primul născut, se bazează pe tranzistori și sunt mult mai rapide. Sunt realizate prin fotolitografie dintr-un anumit număr de plachete individuale de siliciu care alcătuiesc un singur cristal în care sunt imprimate tranzistoare. Circuitul este creat pe un accelerator special folosind ioni de bor accelerați. În structura internă a procesoarelor, componentele principale sunt nucleele, magistralele și particulele funcționale numite revizii.

Caracteristici principale

Ca orice alt dispozitiv, procesorul este caracterizat de anumiți parametri, care nu pot fi ignorați atunci când răspundeți la întrebarea cum funcționează procesorul. In primul rand asta:

  • numărul de nuclee;
  • numărul de fire;
  • dimensiunea cache (memorie internă);
  • frecvența ceasului;
  • viteza anvelopei.

Deocamdată, să ne concentrăm pe frecvența ceasului. Nu degeaba procesorul este numit inima computerului. Ca și inima, funcționează în modul pulsație cu un anumit număr de bătăi pe secundă. Frecvența ceasului este măsurată în MHz sau GHz. Cu cât este mai mare, cu atât dispozitivul poate efectua mai multe operațiuni.

La ce frecvență funcționează procesorul, puteți afla din caracteristicile sale declarate sau vă uitați la informațiile din Dar în timpul procesării comenzilor, frecvența se poate schimba, iar în timpul overclocking (overlocking) poate crește până la limite extreme. Astfel, valoarea declarată este doar un indicator mediu.

Numărul de nuclee este un indicator care determină numărul de centre de procesare ale procesorului (a nu se confunda cu firele - numărul de nuclee și fire de execuție poate să nu fie același). Datorită acestei distribuții, este posibilă redirecționarea operațiunilor către alte nuclee, crescând astfel performanța generală.

Cum funcționează un procesor: procesarea comenzilor

Acum puțin despre structura comenzilor executabile. Dacă vă uitați la modul în care funcționează un procesor, trebuie să înțelegeți clar că orice comandă are două componente - una operațională și una operand.

Partea operațională specifică în ce trebuie realizat în acest moment sistem informatic, operandul determină pe ce ar trebui să lucreze procesorul. În plus, nucleul procesorului poate conține două centre de calcul (containere, fire), care împart execuția unei comenzi în mai multe etape:

  • producție;
  • decriptare;
  • executarea comenzii;
  • accesând memoria procesorului propriu-zis
  • salvând rezultatul.

Astăzi, stocarea separată în cache este utilizată sub forma utilizării a două niveluri de memorie cache, ceea ce evită interceptarea de către două sau mai multe comenzi de accesare a unuia dintre blocurile de memorie.

În funcție de tipul de procesare a comenzilor, procesoarele sunt împărțite în liniare (execuția comenzilor în ordinea în care sunt scrise), ciclice și ramificate (execuția instrucțiunilor după procesarea condițiilor de ramificație).

Operațiuni efectuate

Dintre principalele funcții atribuite procesorului, în ceea ce privește comenzile sau instrucțiunile executate, se disting trei sarcini principale:

  • operatii matematice bazate pe un dispozitiv aritmetico-logic;
  • mutarea datelor (informațiilor) de la un tip de memorie la altul;
  • luarea unei decizii cu privire la executarea unei comenzi și, pe baza acesteia, alegerea trecerii la executarea altor seturi de comenzi.

Interacțiunea cu memoria (ROM și RAM)

În acest proces, componentele care trebuie remarcate sunt magistrala și canalul de citire-scriere, care sunt conectate la dispozitivele de stocare. ROM conține un set constant de octeți. Mai întâi, magistrala de adrese solicită un anumit octet de la ROM, apoi îl transferă pe magistrala de date, după care canalul de citire își schimbă starea și ROM-ul furnizează octetul solicitat.

Dar procesoarele nu pot doar să citească date din RAM, ci și să le scrie. În acest caz, se utilizează canalul de înregistrare. Dar, dacă te uiți la asta, în general calculatoare moderne Pur teoretic, ne-am putea lipsi deloc de RAM, deoarece microcontrolerele moderne sunt capabile să plaseze octeții necesari de date direct în memoria cipului procesorului însuși. Dar nu există nicio modalitate de a face fără ROM.

Printre altele, sistemul pornește din modul de testare hardware (comenzi BIOS) și abia apoi controlul este transferat către sistemul de operare de încărcare.

Cum se verifică dacă procesorul funcționează?

Acum să ne uităm la câteva aspecte ale verificării performanței procesorului. Trebuie să se înțeleagă clar că dacă procesorul nu ar funcționa, computerul nu ar putea începe deloc să se încarce.

Este o altă chestiune când trebuie să te uiți la indicatorul de utilizare a capabilităților procesorului la un moment dat. Acest lucru se poate face din „Task Manager” standard (opus oricărui proces este indicat câte procente din sarcina procesorului oferă). Pentru a determina vizual acest parametru, puteți utiliza fila de performanță, unde modificările sunt urmărite în timp real. Opțiunile avansate pot fi văzute folosind programe speciale de exemplu CPU-Z.

În plus, puteți utiliza mai multe nuclee de procesor folosind (msconfig) și opțiuni suplimentare descărcări.

Probleme posibile

În sfârșit, câteva cuvinte despre probleme. Mulți utilizatori întreabă adesea, de ce funcționează procesorul, dar monitorul nu pornește? Această situație nu are nicio legătură cu procesorul central. Faptul este că atunci când porniți orice computer, adaptorul grafic este testat mai întâi și abia apoi totul. Poate că problema constă tocmai în procesorul cipului grafic (toate acceleratoarele video moderne au propriile lor procesoare grafice).

Dar folosind exemplul funcționării corpului uman, trebuie să înțelegeți că, în cazul unui stop cardiac, întregul corp moare. La fel cu computerele. Procesorul nu funcționează - întregul sistem informatic „moare”.

Procesoarele moderne au forma unui dreptunghi mic, care este prezentat sub forma unei plăci de siliciu. Placa în sine este protejată de o carcasă specială din plastic sau ceramică. Toate circuitele principale sunt protejate, datorită acestora se realizează funcționarea completă a procesorului. Dacă cu aspect totul este extrem de simplu, cum rămâne cu circuitul în sine și cum este proiectat procesorul? Să ne uităm la asta mai detaliat.

CPU nu include număr mare diverse elemente. Fiecare dintre ele își realizează propria acțiune, datele și controlul sunt transferate. Utilizatori obișnuiți Suntem obișnuiți să distingem procesoarele după viteza de ceas, cantitatea de memorie cache și nuclee. Dar acest lucru nu este tot ceea ce asigură fiabil și lucru rapid. Merită să acordați o atenție deosebită fiecărei componente.

Arhitectură

Designul intern al CPU-urilor diferă adesea unul de celălalt, fiecare familie are propriul set de proprietăți și funcții - aceasta se numește arhitectura sa. Un exemplu de design al procesorului poate fi văzut în imaginea de mai jos.

Dar mulți oameni sunt obișnuiți să înțeleagă arhitectura procesorului într-un mod ușor diferit. Dacă îl considerăm din punct de vedere al programării, atunci este definit de capacitatea sa de a executa un anumit set de coduri. Dacă cumpărați un procesor modern, atunci cel mai probabil este arhitectura x86.

Miezuri

Partea principală a procesorului se numește nucleu, conține toate blocurile necesare și efectuează, de asemenea, sarcini logice și aritmetice. Dacă vă uitați la figura de mai jos, puteți vedea cum arată fiecare bloc funcțional al nucleului:

  1. Modul de preluare a instrucțiunilor. Aici, instrucțiunile sunt recunoscute după adresa, care este indicată în contorul de programe. Numărul de citire simultană a comenzilor depinde direct de numărul de unități de decriptare instalate, ceea ce ajută la încărcarea fiecărui ciclu de lucru cu cel mai mare număr de instrucțiuni.
  2. Predictor de tranziție este responsabil pentru funcționarea optimă a unității de preluare a instrucțiunilor. Determină secvența instrucțiunilor care urmează să fie executate, încărcând pipeline-ul kernel-ului.
  3. Modul de decodare. Această parte a nucleului este responsabilă pentru definirea anumitor procese pentru a efectua sarcini. Sarcina de decodare în sine este foarte dificilă din cauza dimensiunii variabile a instrucțiunii. În cele mai noi procesoare există mai multe astfel de blocuri într-un singur nucleu.
  4. Module de eșantionare a datelor. Ei preiau informații din RAM sau din memoria cache. Ei efectuează exact eșantionarea datelor care este necesară în acest moment pentru a executa instrucțiunea.
  5. Bloc de control. Numele în sine spune multe despre importanța acestei componente. În nucleu, este cel mai important element, deoarece distribuie energia între toate blocurile, ajutând la efectuarea fiecărei acțiuni la timp.
  6. Modul pentru salvarea rezultatelor. Proiectat pentru înregistrare după finalizarea procesării instrucțiunilor în RAM. Adresa de stocare este specificată în sarcina de rulare.
  7. Element de lucru cu întreruperi. CPU-ul este capabil să facă multitasking datorită funcției de întrerupere, care îi permite să oprească progresul unui program prin trecerea la o altă instrucțiune.
  8. Registrele. Rezultatele temporare ale instrucțiunilor sunt stocate aici; această componentă poate fi numită RAM rapidă mică. Adesea, dimensiunea sa nu depășește câteva sute de octeți.
  9. Contor de comenzi. Stochează adresa instrucțiunii care va fi folosită la următorul ciclu al procesorului.

Autobuz de sistem

Busul de sistem al procesorului conectează dispozitivele incluse în PC. Numai el este conectat direct la acesta; elementele rămase sunt conectate prin diverse controlere. Autobuzul în sine conține multe linii de semnal prin care sunt transmise informații. Fiecare linie are propriul protocol, care asigură comunicarea prin controlere cu alte componente ale computerului conectate. Autobuzul are propria frecvență în consecință, cu cât este mai mare, cu atât mai rapid are loc schimbul de informații între elementele de conectare ale sistemului.

Memoria cache

Performanța unui procesor depinde de capacitatea sa de a prelua instrucțiuni și date din memorie cât mai repede posibil. Datorita memoriei cache, timpul de executie al operatiilor este redus datorita faptului ca actioneaza ca un buffer temporar, asigurand transferul instant al datelor de la CPU la RAM sau invers.

Principala caracteristică a memoriei cache este diferența de niveluri. Dacă este mare, înseamnă că memoria este mai lentă și mai voluminoasă. Cea mai rapidă și mai mică memorie este primul nivel. Principiul de funcționare al acestui element este foarte simplu - CPU citește datele din RAM și le introduce într-un cache de orice nivel, ștergând în același timp informațiile care au fost accesate cu mult timp în urmă. Dacă procesorul are nevoie din nou de aceste informații, le va primi mai repede datorită bufferului temporar.

priză (conector)

Datorita faptului ca procesorul are propriul conector (mama sau slot), il puteti inlocui cu usurinta daca se strica sau face upgrade la calculator. Fără soclu, procesorul ar fi pur și simplu lipit pe placa de bază, ceea ce face reparațiile ulterioare sau înlocuirea mai dificilă. Merită să acordați atenție - fiecare slot este destinat exclusiv instalării anumitor procesoare.

Utilizatorii cumpără adesea din neatenție procesor incompatibilși placa de bază, care provoacă probleme suplimentare.

CPU este componenta principală de lucru a unui computer care efectuează operații aritmetice și logice, controlează procesul de calcul și coordonează funcționarea tuturor dispozitivelor informatice.

Procesorul central conține în general:

    unitate aritmetică-logică;

    magistrale de date și magistrale de adrese;

    registre;

    contoare de programe;

    cache - foarte memorie rapidă volum mic,

    coprocesor matematic în virgulă mobilă.

Procesoarele moderne sunt implementate ca microprocesoare. Din punct de vedere fizic, un microprocesor este un circuit integrat - o placă dreptunghiulară subțire de siliciu cristalin cu o suprafață de doar câțiva milimetri pătrați, pe care sunt amplasate circuite care implementează toate funcțiile procesorului. Placa de cristal este de obicei plasată într-o carcasă plată din plastic sau ceramică și conectată prin fire de aur la pini metalici, astfel încât să poată fi atașată la placa de bază a computerului.

Principalele caracteristici ale procesorului:

    Performanța este principala caracteristică care arată viteza cu care un computer efectuează operațiuni de procesare a informațiilor. La rândul său, depinde de următoarele caracteristici:

    Frecvența ceasului - determină numărul de cicluri ale procesorului pe secundă

    Capacitate de biți - determină dimensiunea informațiilor minime numită cuvânt de mașină

    Spațiu de adrese - lățimea magistralei de adrese, adică cantitatea maximă de RAM care poate fi instalată pe computer

8.2.3. Principiul de funcționare al procesorului.

Procesorul este elementul principal al unui computer. Acesta controlează direct sau indirect toate dispozitivele și procesele care au loc în computer.

În proiectarea procesoarelor moderne, există o tendință clară către o creștere constantă a frecvenței de ceas. Acest lucru este firesc: cu cât un procesor efectuează mai multe operații, cu atât performanța acestuia este mai mare. Frecvența maximă de ceas este determinată în mare măsură de tehnologia de producție a microcircuitelor existente (cele mai mici dimensiuni posibile ale elementelor, care determină timpul minim de transmisie a semnalului).

Pe lângă creșterea frecvenței de ceas, creșterea performanței procesorului este atinsă de dezvoltatori folosind tehnici mai puțin evidente asociate cu inventarea de noi arhitecturi și algoritmi de procesare a informațiilor. Să ne uităm la unele dintre ele folosind un exemplu procesor Pentium(P5) și modelele ulterioare.

Să enumerăm principalele caracteristici ale procesorului Pentium:

    procesarea informațiilor în conducte;

    arhitectura suprascalara;

    prezența unor memorii cache separate pentru comenzi și date;

    prezența unui bloc de predicție a adresei de tranziție;

    execuție dinamică a programului;

    prezența unei unități de calcul în virgulă mobilă;

    suport pentru operarea multiprocesor;

    disponibilitatea instrumentelor de detectare a erorilor.

Termenul „arhitectură superscalară” înseamnă că procesorul conține mai mult de o unitate de calcul. Aceste unități de calcul sunt mai des numite conducte. Rețineți că prima arhitectură superscalară a fost implementată în computerul casnic „Elbrus-1” (1978).

Prezența a două conducte în procesor îi permite să execute (completeze) simultan două comenzi (instrucțiuni).

Fiecare conductă împarte procesul de execuție a comenzii în mai multe etape (de exemplu, cinci):

    preluarea (citirea) unei comenzi din RAM sau din memoria cache;

    decodarea (decodarea) comenzii, adică determinarea codului operației care se execută;

    executarea comenzii;

    acces la memorie;

    stocarea rezultatelor obţinute în memorie.

Pentru a implementa fiecare dintre etapele enumerate (fiecare operație), este utilizată o etapă dispozitiv separată. Astfel, există cinci etape în fiecare conductă de procesor Pentium.

În procesarea pipeline, un ciclu al frecvenței de sincronizare (ceas) este alocat pentru execuția fiecărei etape. În fiecare ciclu nou, execuția unei comenzi se termină și începe execuția unei noi comenzi. Acest tip de execuție a comenzii se numește threading.

Figurat, poate fi comparat cu un transportor de producție (debit), unde la fiecare secție cu produse diferite se realizează întotdeauna aceeași operațiune. În același timp, atunci când un produs finit părăsește linia de asamblare, apare unul nou, iar restul produselor în acest moment se află în diferite etape de pregătire. Trecerea produselor fabricate de la secțiune la secțiune trebuie să se producă sincron, în funcție de semnale speciale (în procesor, acestea sunt cicluri generate de un generator de ceas).

Timpul total de execuție pentru o instrucțiune într-o conductă în cinci etape ar fi de cinci cicluri de ceas. În fiecare ciclu de ceas, conducta va procesa (executa) simultan cinci instrucțiuni diferite. Ca rezultat, cinci comenzi vor fi executate în cinci cicluri de ceas. Astfel, pipelining-ul crește performanța procesorului, dar nu reduce timpul de execuție al unei singure instrucțiuni. Câștigul se obține datorită faptului că mai multe comenzi sunt procesate simultan.

De fapt, pipelining chiar mărește timpul de execuție al fiecărei comenzi individuale datorită costurilor suplimentare asociate cu organizarea conductei. În acest caz, frecvența ceasului este limitată de viteza de funcționare a celei mai lente trepte a transportorului.

Ca exemplu, luați în considerare procesul de execuție a unei comenzi ai cărei timpi de execuție a etapei sunt 60, 30, 40, 50 și 20 ns. Să considerăm că costurile suplimentare de organizare a procesării conductei sunt de 5 ns.

Dacă nu ar exista conducte, atunci ar fi nevoie

60 + 30 + 40 + 50 + 20 = 200 ns.

Dacă se folosește o organizație de transport, atunci durata takt ar trebui să fie egală cu durata celei mai lente etape de procesare cu adăugarea de costuri „supraveghere”, de exemplu. 60 + 5 = 65 ns. Astfel, reducerea timpului de executare a comenzii obținută ca urmare a conductei va fi de 200/65”3,1 ori.

Rețineți că timpul de execuție a conductei pentru o instrucțiune este 5 × 65 = 325 ns. Această valoare este semnificativ mai mare de 200 ns - timpul de execuție a comenzii fără pipeline. Dar execuția simultană a cinci comenzi simultan oferă un timp mediu de finalizare a unei comenzi de 65 ns.

Procesorul Pentium are două cache L1 (se află în interiorul procesorului). După cum știți, memorarea în cache crește performanța procesorului prin reducerea numărului de ori în care așteaptă ca informațiile să ajungă din RAM lentă. Datele și comenzile necesare sunt preluate de procesor din memoria cache rapidă (buffer), unde sunt introduse în prealabil.

Având o singură memorie cache în proiectele anterioare de procesor, a dus la conflicte structurale. Două instrucțiuni executate de conductă au încercat uneori simultan să citească informații dintr-o singură memorie cache. Efectuarea de stocare separată în cache (buffering) pentru comenzi și date elimină astfel de conflicte, permițând ambelor comenzi să se execute simultan.

Dezvoltarea tehnologiei informatice este continuă. Designerii caută în mod constant noi modalități de a-și îmbunătăți produsele. Cea mai valoroasă resursă a procesoarelor este performanța lor. Din acest motiv, sunt inventate diverse tehnici pentru a crește performanța procesorului.

O astfel de tehnică este de a economisi timp prin prezicerea posibilelor căi de execuție ale unui algoritm de ramificare. Acest lucru se realizează folosind un bloc de predicție a adresei de ramură viitoare. Ideea cum funcționează este similară cu ideea cum funcționează memoria cache.

După cum se știe, există procese de calcul liniare, ciclice și ramificate. În algoritmii liniari, comenzile sunt executate în ordinea în care sunt scrise în RAM: secvenţial una după alta. Pentru astfel de algoritmi, blocul de predicție a adresei de ramură introdus în procesor nu poate produce niciun câștig.

În algoritmii de ramificare, alegerea instrucțiunii este determinată de rezultatele verificării condițiilor de ramificare. Dacă așteptați sfârșitul procesului de calcul la punctul de ramificare și apoi selectați din RAM comanda corectă, atunci vor exista inevitabil pierderi de timp din cauza timpului de inactivitate neproductiv al procesorului (citirea unei comenzi din RAM este lentă).

Blocul de predicție a adresei de ramură funcționează în mod proactiv și încearcă să prezică adresa de ramură în avans pentru a muta în avans instrucțiunea dorită din RAM lentă într-un buffer special țintă de ramificare rapidă BTB (Branch Target Buffer).

Când tamponul BTV conține o predicție corectă, tranziția are loc fără întârziere. Acest lucru amintește de memoria cache, care are și erori. Din cauza erorilor, operanzii trebuie să fie citiți nu din memoria cache, ci din OP lent. Din această cauză, timpul este pierdut.

Ideea de a prezice adresa de salt este implementată în procesor de două buffer-uri independente de preluare preliminară. Ele funcționează împreună cu un buffer de predicție de ramificație, unul dintre buffer-uri selectând instrucțiuni secvențial, iar al doilea - conform predicțiilor BTV.

Procesorul Pentium are două conducte în cinci etape pentru a efectua operațiuni în punct fix. În plus, procesorul are o conductă în virgulă mobilă în opt trepte. Astfel de calcule sunt necesare atunci când se efectuează calcule matematice, precum și pentru procesarea rapidă a imaginilor color 3D dinamice.

Dezvoltarea arhitecturii procesorului urmează calea creșterii constante a volumului memoriei cache de la primul și al doilea nivel. Excepție a fost procesorul Pentium 4, a cărui dimensiune cache a scăzut în mod neașteptat în comparație cu Pentium III.

Pentru a îmbunătăți performanța în noile modele de procesoare, două magistralele de sistem, care operează la frecvențe de ceas diferite. Autobuzul rapid este folosit pentru a lucra cu memoria cache de al doilea nivel, iar magistrala lentă este folosită pentru schimbul tradițional de informații cu alte dispozitive, cum ar fi RAM. Prezența a două magistrale elimină conflictele la schimbul de informații între procesor și memoria principală și memoria cache de nivel doi situate în afara cipul procesorului.

Procesoarele care urmează lui Pentium conțin un număr mare de etape în curs. Acest lucru reduce timpul de execuție al fiecărei operațiuni într-o etapă separată, ceea ce înseamnă că vă permite să creșteți frecvența tacului procesorului.

Procesorul Pentium Pro (P6) folosește o nouă abordare a ordinii în care instrucțiunile sunt executate secvenţial în RAM.

Noua abordare este de a executa comenzi în ordine aleatorie pe măsură ce sunt gata (indiferent de ordinea în RAM). Cu toate acestea, rezultatul final este întotdeauna generat în conformitate cu ordinea inițială a comenzilor din program. Această ordine de execuție a comenzii se numește dinamică sau anticipativă.

Luați în considerare ca exemplu următorul fragment al unui curriculum scris într-un limbaj (fictiv) orientat către mașină.

r1 ¬mem Comanda 1

r3 ¬r1 + r2 Comanda 2

r5 ¬r5 + 1 Echipa 3

r6 ¬r6 – r7 Echipa 4

Simbolurile r1...r7 indică registre scop general(RON), care sunt incluse în blocul de registru al procesorului.

Simbolul mem denotă o celulă de memorie RAM.

Să comentăm programul înregistrat.

Comanda 1: scrieți în RON r1 conținutul celulei de memorie RAM a cărei adresă este specificată în RON r4.

Comanda 2: scrieți în RON r3 rezultatul adunării conținutului registrelor r1 și r2.

Comanda 3: adăugați unul la conținutul registrului r5.

Comanda 4: reduceți conținutul RON r6 cu conținutul registrului r7.

Să presupunem că la executarea instrucțiunii 1 (încărcarea unui operand din memorie în registrul de uz general r1), s-a dovedit că conținutul memoriei celulei de memorie nu se află în memoria cache a procesorului (a avut loc o greșeală; operandul necesar nu a fost livrat anterior la tamponul din RAM).

Cu abordarea tradițională, procesorul va proceda la executarea instrucțiunilor 2, 3, 4 numai după ce datele din memoria celulei de memorie principală intră în procesor (mai precis, în registrul r1). Deoarece citirea va avea loc din RAM care rulează lentă, acest proces va dura destul de mult (după standardele procesorului). În așteptarea acestui eveniment, procesorul va fi inactiv, fără a efectua lucrări utile.

În exemplul de mai sus, procesorul nu poate executa instrucțiunea 2 înainte de finalizarea instrucțiunii 1, deoarece instrucțiunea 2 utilizează rezultatele instrucțiunii 1. În același timp, procesorul ar putea executa în avans instrucțiunile 3 și 4, care nu depind de rezultatul instrucțiunile 1 și 2.

În astfel de cazuri, procesorul P6 funcționează diferit.

Procesorul P6 nu așteaptă finalizarea execuției instrucțiunilor 1 și 2, ci trece imediat la execuția necorespunzătoare a instrucțiunilor 3 și 4. Rezultatele execuției în avans a instrucțiunilor 3 și 4 sunt stocate și preluate ulterior, după executarea instrucțiunilor 1 și 2. Astfel, procesorul P6 execută instrucțiuni în conformitate cu disponibilitatea lor pentru execuție, indiferent de locația lor inițială în program.

Productivitatea este, desigur, un indicator important al performanței computerului. Cu toate acestea, este la fel de important ca calculele rapide să aibă loc cu un număr mic de erori.

Procesorul are un dispozitiv de autotest care verifică automat funcționalitatea majorității elementelor procesorului.

În plus, detectarea defecțiunilor care apar în interiorul procesorului se realizează folosind un format special de date. La fiecare operand se adaugă un bit de paritate, ceea ce face ca toate numerele care circulă în interiorul procesorului să fie pare. Apariția unui număr impar indică o eroare. Prezența unui număr impar este ca apariția unei bancnote contrafăcute fără filigrane.

Unitățile de măsurare a vitezei procesoarelor (și a computerelor) pot fi:

    MIPS (MIPS - Mega Instruction Per Second) - un milion de comenzi (instrucțiuni) pe numere cu virgulă fixă ​​pe secundă;

    MFLOPS (Mega Floating Operation Per Second) - un milion de operații pe numere în virgulă mobilă pe secundă;

    GFLOPS (Giga Floating Operation Per Second) - un miliard de operațiuni pe numere în virgulă mobilă pe secundă.

Există rapoarte despre cel mai rapid computer din lume, ASCI White (IBM Corporation), care atinge 12,3 TFLOPS (trilioane de operațiuni).

Procesorul este, fără îndoială, componenta principală a oricărui computer. Această mică bucată de siliciu, de câteva zeci de milimetri, este cea care îndeplinește toate sarcinile complexe pe care le setați pentru computer. Aleargă aici sistem de operare, precum și toate programele. Dar cum funcționează totul? Vom încerca să examinăm această întrebare în articolul nostru de astăzi.

Procesorul gestionează datele de pe computerul dvs. și execută milioane de instrucțiuni pe secundă. Și prin procesor de text mă refer exact la ceea ce înseamnă cu adevărat - un mic cip din siliciu care realizează de fapt toate operațiunile de pe computer. Înainte de a trece la modul în care funcționează un procesor, trebuie mai întâi să luăm în considerare în detaliu ce este și în ce constă.

Mai întâi să ne uităm la ce este un procesor. CPU sau unitate centrală de procesare (unitate centrală de procesare) - care este un microcircuit cu un număr mare de tranzistori, realizat pe un cristal de siliciu. Primul procesor din lume a fost dezvoltat de Intel în 1971. Totul a început cu Intel 4004. Acesta putea efectua doar operații de calcul și putea procesa doar 4 octeți de date. Următorul model a apărut în 1974 - Intel 8080 și putea deja procesa 8 biți de informații. Urmează 80286, 80386, 80486. De la aceste procesoare a venit numele arhitecturii.

Viteza de ceas a procesorului 8088 a fost de 5 MHz, iar numărul de operații pe secundă a fost de doar 330.000, ceea ce este mult mai mic decât la procesoarele moderne. Dispozitivele moderne au frecvențe de până la 10 GHz și câteva milioane de operațiuni pe secundă.

Nu vom lua în considerare tranzistorii, vom trece la un nivel superior. Fiecare procesor este format din următoarele componente:

  • Miez- aici se efectuează toate procesarea informaţiei şi operaţiile matematice pot exista mai multe nuclee;
  • Decodor de comenzi- această componentă aparține nucleului, transformă comenzile software într-un set de semnale care vor fi executate de tranzistoarele nucleului;
  • Cache- o zonă de memorie ultra-rapidă, un volum mic, în care sunt stocate datele citite din RAM;
  • Registrele- acestea sunt celule de memorie foarte rapide în care sunt stocate datele procesate în prezent. Sunt doar câteva dintre ele și au o dimensiune limitată - de 8, 16 sau 32 de biți depinde de asta;
  • Coprocesor- un nucleu separat care este optimizat doar pentru efectuarea anumitor operațiuni, de exemplu, procesarea video sau criptarea datelor;
  • Autobuz de adrese- pentru comunicarea cu toate dispozitivele conectate la placa de baza, poate avea o latime de 8, 16 sau 32 de biti;
  • Autobuz de date- pentru comunicare cu RAM. Folosind-o, procesorul poate scrie date în memorie sau le poate citi de acolo. Busul de memorie poate fi de 8, 16 sau 32 de biți, aceasta este cantitatea de date care poate fi transferată la un moment dat;
  • Autobuz de sincronizare- vă permite să controlați frecvența procesorului și ciclurile de funcționare;
  • Reporniți autobuzul- pentru a reseta starea procesorului;

Componenta principală poate fi considerată nucleul sau dispozitivul de calcul aritmetic, precum și registrele procesorului. Orice altceva ajută aceste două componente să funcționeze. Să ne uităm la ce sunt registrele și care este scopul lor.

  • Registrele A, B, C- conceput pentru a stoca date în timpul procesării, da, sunt doar trei, dar acest lucru este suficient;
  • EIP- conține adresa următoarei instrucțiuni de program în RAM;
  • ESP- adresa datelor din RAM;
  • Z- contine rezultatul ultimei operatii de comparare;

Desigur, acestea nu sunt toate registrele de memorie, dar acestea sunt cele mai importante și sunt folosite cel mai mult de procesor în timpul execuției programului. Ei bine, acum că știi în ce constă procesorul, te poți uita la cum funcționează.

Cum funcționează un procesor de calculator?

Nucleul de calcul al procesorului poate efectua numai calcule, comparații și mutarea datelor între celule și RAM, dar este suficient pentru a vă permite să jucați jocuri, să vizionați filme, să navigați pe web și multe altele.

De fapt, orice program constă din următoarele instrucțiuni: mutați, adăugați, înmulțiți, împărțiți, diferențiați și mergeți la instrucțiune dacă este îndeplinită condiția de comparare. Desigur, acestea nu sunt toate comenzi, există altele care le combină pe cele deja enumerate sau le simplifică utilizarea.

Toate mișcările de date sunt efectuate folosind instrucțiunea de mutare (mov), această instrucțiune mută datele între celulele de registru, între registre și RAM, între memorie și hard disk. Există instrucțiuni speciale pentru operații aritmetice. Și instrucțiunile de salt sunt necesare pentru a îndeplini condițiile, de exemplu, verificați valoarea registrului A și dacă nu este zero, mergeți la instrucțiunea la adresa dorită. De asemenea, puteți crea bucle folosind instrucțiuni de salt.

Toate acestea sunt foarte bine, dar cum interacționează toate aceste componente între ele? Și cum înțeleg tranzistorii instrucțiunile? Funcționarea întregului procesor este controlată de un decodor de instrucțiuni. Face ca fiecare componentă să facă ceea ce trebuie să facă. Să ne uităm la ce se întâmplă atunci când trebuie să executăm un program.

În prima etapă, decodorul încarcă adresa primei instrucțiuni a programului din memorie în registrul următoarei instrucțiuni EIP, pentru aceasta activează canalul de citire și deschide tranzistorul latch pentru a introduce date în registrul EIP.

În al doilea ciclu de ceas, decodorul de instrucțiuni convertește comanda într-un set de semnale pentru tranzistoarele nucleului de calcul, care o execută și scriu rezultatul într-unul dintre registre, de exemplu, C.

În al treilea ciclu, decodorul crește adresa următoarei instrucțiuni cu una, astfel încât să indice următoarea instrucțiune din memorie. Apoi, decodorul continuă la încărcarea următoarei comenzi și așa mai departe până la sfârșitul programului.

Fiecare instrucțiune este deja codificată de o secvență de tranzistori și convertită în semnale, provoacă modificări fizice în procesor, de exemplu, schimbarea poziției unui latch care permite ca datele să fie scrise într-o celulă de memorie și așa mai departe. Diferitele comenzi necesită un număr diferit de cicluri de ceas pentru a fi executate, de exemplu, o comandă poate necesita 5 cicluri de ceas, iar alta, mai complexă, până la 20. Dar toate acestea depind încă de numărul de tranzistori din procesorul în sine.

Ei bine, totul este clar, dar toate acestea vor funcționa numai dacă rulează un singur program și dacă există mai multe dintre ele și toate în același timp. Putem presupune că procesorul are mai multe nuclee, iar apoi fiecare nucleu se execută programe separate. Dar nu, de fapt nu există astfel de restricții.

Un singur program poate fi executat la un moment dat. Tot timpul CPU este împărțit între toți rulează programe, fiecare program se execută pentru câteva cicluri de ceas, apoi procesorul este transferat într-un alt program, iar tot conținutul registrelor este stocat în RAM. Când controlul revine la acest program, valorile salvate anterior sunt încărcate în registre.

Concluzii

Asta e tot, în acest articol ne-am uitat la modul în care funcționează un procesor de computer, ce este un procesor și în ce constă. Poate fi puțin complicat, dar am păstrat-o simplă. Sper că acum înțelegeți mai bine cum funcționează acest dispozitiv foarte complex.

Pentru a încheia videoclipul despre istoria procesoarelor:

Î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 el partea din spate Există un număr mare de „puncte” aurii - acestea sunt contacte (le puteți vedea puțin în imagine). 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 suport (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, dispozitivul procesoarelor diferiți producătoriși chiar și modelele de la același producător pot varia foarte mult. Cu toate acestea schema circuitului Funcționarea rămâne aceeași - toate au un substrat de contact, un cristal (sau mai multe situate într-o singură carcasă) și un capac metalic pentru disiparea 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 lor depind de procesor și placa de baza computer (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, dispozitivul diferite modele procesoarele de la același producător pot diferi, avem un exemplu clar în acest sens - un procesor quad-core Intel Core 2 Quad, care este în esență 2 procesor dual core Core 2 linii 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.

În modelele moderne procesoare Intel 2 cristale (cipuri) se potrivesc deodată. Al doilea cip - nucleul grafic al procesorului, joacă în esență rolul unei plăci video încorporate în procesor, adică chiar dacă nu există nicio placă grafică în sistem, nucleul grafic va prelua rolul unei plăci video. , și destul de puternic (î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.

© 2024 ermake.ru -- Despre repararea PC-ului - Portal de informații