Procesorul (CPU)
Procesorul sau CPU (Central Processing Unit) e creierul calculatorului. E cel mai important component din calculator. El "gandeste" si construieste toate datele.
Cel mai important lucru la procesor e viteza, sau frecventa lui, care se masoara in GHz (gigahertzi).
1 hertz = o oscilatie (sau pulsatie) pe secunda. 1 GHz = 1 miliard de hertzi.
Cu cat are frecventa mai mare, cu atat mai bine, deoarece cu atat gandeste si "pulseaza" datele mai repede.
Un procesor din ziua de azi are pana la 4 GHz (4000 MHz).
Arhitectura procesorului (forma lui interioara) e pe 32 de biti, sau pe 64 de biti, (mai vechi pe 16 biti, 8 biti.).
Vezi explicarea acestor biti la pagina dedicata.
Cei doi mari producatori de procesoare sunt Intel si AMD.
Au foarte multe modele. De exemplu,
Intel are Celeron, Pentium, Core 2, Core i3, core i5, Core i7, Core i9, Xeon, etc.
AMD are Phenom, Athlon, Sempron, Turion, Opteron, FX, Ryzen, etc.
Cel mai rapid procesor Intel e Core i9-12900K, iar AMD e Rizen 9 5900X. (iunie 2022)
Intel are Celeron, Pentium, Core 2, Core i3, core i5, Core i7, Core i9, Xeon, etc.
AMD are Phenom, Athlon, Sempron, Turion, Opteron, FX, Ryzen, etc.
Cel mai rapid procesor Intel e Core i9-12900K, iar AMD e Rizen 9 5900X. (iunie 2022)
Cum functioneaza procesorul?
Procesorul ia bitii (0-urile si 1-urile) de pe hard disk sau din memorie (RAM) si le trimite inapoi pe ecran, in difuzoare sau pe un mediu de stocare, dupa ce le-a procesat, adica le-a aranjat intr-o forma ordonata pe care o intelegem noi (vizual sau sonor), forma care-i dictata de codurile (instructiunile) scrise de tipul care a facut programul pentru noi.
Codurile sunt luate din hard disk (sau alte medii) si sunt trimise in RAM unde le proceseaza. Apoi trimite rezultatul pe ecran prin placa video, sau sunetul prin placa audio (evident, le trimite si la imprimanta, pe stick, in retea, etc).
Tot ce exista pe ecran (sau in difuzoare) e ceea ce a vrut programul sa apara.
Am inteles ca programele sunt coduri ce trebe procesate, dar melodiile si pozele ce sunt?
Melodiile si pozele sunt numere sau biti fara sens pentru procesor. Sunt doar numere pe hard. Programul cu care asculti melodia sau cu care vezi poza le da un sens. In instructiunile acelui program scrie cum tre sa se poarte procesorul cu numerele alea. Procesorul nu stie ce e melodia, dar stie ce e codul programului. Procesorul manevreaza acesti biti dupa cum ii zice programul, astfel ca rezulta melodie sau poza. Programul are sens pentru procesor, dar melodia nu are pana nu e construita de instructiunile programului. De fapt, melodia sau poza are sens doar pentru noi, nu si pentru un aparat electronic.
O melodie e o colectie imensa de unde sonore. Pe hard, e numere. Intr-un program cum e Winamp sau AIMP exista o formula matematica ce genereaza unde sonore in functie de numerele alea scrise pe hard (sau stick, etc) cand ai copiat sau inregistrat melodia. Dupa ce a gandit numerele, adica le-a dat un sens, procesorul trimite melodia in boxe prin placa audio.
O poza e o colectie imensa de pixeli, sau patratele colorate. Din nou, astea sunt o colectie de numere. Programul cu care vezi poza are o formula care construieste un tabel colorat din aceste numere, adica o imagine, apoi o trimite pe ecran prin placa video.
Procesorul gandeste totul din memoria RAM, pentru ca-i de vreo 150 de ori mai rapida decat hard disk-ul, in cazul in care am putea pune hard-disk-ul la socoteala ca spatiu de procesare. Oricum, calculatoarele nu sunt concepute sa functioneze fara RAM.
Procesorul gandeste milioane de instructiuni pe secunda, instructiuni care au fost scrise de programator linie cu linie. O instructiune e o linie de cod dintr-un program si are nevoie de un numar fix de cicluri (adica de hertzi). In functie de complexitatea instructiunii, intre 1 si 18 cicluri. Asta inseamna ca un procesor normal de 3 GHz proceseaza intre 3 miliarde si 166 de milioane de instructiuni pe secunda
Vezi aici cum se fac programele.
Cum functoneaza procesorul la nivel mai profund?
Procesorul e compus din mai multe unitati care se leaga intre ele. Fiecare unitate, sector din CPU e specializat sa faca o anumita treaba. Procesorul nu e doar un cip si gata. Procesorul e, de fapt... computerul, sa o luam pe aia dreapta.
In primul rand, pe placa de baza exista un asa-numit clock, un ceas (nu, nu ceasul care arata ora), e un cristal de quartz care vibreaza cu o frecventa specifica. (orice chestie care face ceva repetat la intervale regulate in mod natural se poate numi ceas). Acesta sincronizeaza toate celelalte unitati ca sa functioneze la unison, si pe acestea, cu northbridge. Clock-ul e cel care da viata procesorului, pentru ca acesta pulseaza curentul prin CPU in mod inteligent, curent care e "filtrat" prin celelalte sectoare. Fara clock, procesorul ar fi ca un balon gaurit, sau mai bine zis, ca o orchestra fara dirijor. Cand clock-ul pulseaza, toate celelalte unitati se activeaza si fac ce au de facut atata timp cat au curentul si frecventa stabilita de clock.
In al doilea rand, procesorul are un decodor de instructiuni care face programul sa aiba sens, ca sa-l poata executa.
Degeaba programul, care e o lista mare de instructiuni, e smecher si bine gandit daca procesorul nu-l converteste in limbajul lui propriu, in setul propriu de instructiuni, ala frumos si compact cu care se simte confortabil (vedem imediat).
In al treilea rand, are o unitate de logica si aritmetica (ALU) , prin care instructiunile decodate trebuie sa treaca sa fie executate in functie de scopul lor, apoi le transforma in numere, in rezultate finale. Da, la urma urmei deaia-i calculator fiindca calculeaza. Ce ar fi un calculator fara o unitate de logica si aritmetica? Aceste numere se apropie cel mai bine de limbajul binar, de nivelul electricitatii care e seva oricarui aparat electronic. Unitatea asta e puntea dintre abstract si concret, pentru ca numerele sunt cele care ne gadila noua simturile (mai bine zis frecventele, care se bazeaza pe numere).
In al patrulea rand, are o unitate de control (CU - Control Unit) care leaga memoria (implicit northbridge-ul) de procesor si selecteaza/dirijeaza intrarile si iesirile.
Memoria Cache
Procesorul are o memorie interna de rezerva, care se numeste "cache" (ascunzis, locas sigur).
Memoria cache e ca un sertar personal al procesorului in care pastreaza temporar datele marunte dar de importanta inalta.
Sunt mai multe nivele de cache, si anume level 1, level 2 si level 3 (L1, L2, L3). Fiecare nivel fiind mai "lent" pe masura ce "urca" (L1->L3), pentru ca nivelul cel mai de jos e cel mai apropiat de CPU.
Acest cache, mai precis, e o memorie RAM interna in procesor, pentru a nu cere nici macar din RAM-ul principal tot timpul fisierele cu care procesorul lucreaza frecvent. Memoria Cache e de tip SRAM (Static RAM) mult mai rapida decat memoria RAM normala (DRAM), dar e mult mai scumpa si de aceea vine in cantitati foarte mici.
De exemplu, daca deschizi frecvent un fisier, acesta este adaugat in memoria cache a procesorului, astfel incat nu mai e nevoie sa-l ia de fiecare data din din RAM-ul principal (sau de pe hard), pentru ca il are acolo. Ca data viitoare sa il acceseze mai rapid.
Cu cat exista mai multa memorie cache, cu atat mai bine. Pentru ca cu atat mai multe fisiere pot fi indexate in cache, si atunci lucreaza mai repede.
Exista cache de 64 KB, 128 KB, 512 KB... 2 MB, 30 MB, chiar si pana la 64 MB.
In cache datele sunt pastrate temporar. Se sterg in functie de cerintele procesorului si de dimensiunile fisierelor.
Registrii
Registrii sunt minimul de cantitate de memorie posibila din CPU. Acestia sunt "cuanta" informatiei. Sunt minimul cu care poate sa lucreze procesorul. Cel mai mic nivel de memorie posibil dintr-un computer.
Cand procesorul "judeca" datele, acestea vin ori in cantitatea din registrii, ori deloc.
Cand mananci supa, lingura e minimul de cantitate de supa pe care o mananci.
Un procesor pe 32 bit, are, ai ghicit, registrii de 32 biti.
Pentru procesoare cu registrii de 32 biti, se fac instructiuni de 32 biti, care constituie programele pe 32 biti, inclusiv sistemele de operare pe 32 bit.
Pentru procesoare cu registrii de 64 biti, se fac instructiuni de 64 biti, care constituie programele de 64 biti, din nou, inclusiv sistemele de operare 32 bit.
Registrii sunt mult mai mici decat memoria cache, dar mullt mai rapizi, facandu-i extrem de importanti in procesarea informatiei.
Ce pastreaza procesorul in registrii? Codul lui propriu, cod de baza. Instructiuni extrem de urgente, instructiuni vitale pentru procesarea programelor. Nu pastreaza linii mari de text, instructiuni complexe, logica avansata, etc. precum in cache.
Gandeste-te la analogia asta:
Esti un constructor.
Internetul = Cantitatea de unelte de la Dedeman sau Brico
Hard Disk-ul = Cantitatea de unelte din debara
Memoria RAM = Cantitatea de unelte de pe masa de lucru
Memoria Cache = Cantitatea de unelte din buzunare / centura
Registrii = Cantitatea de unelte din mainile tale
Pe masura ce scade cantitatea si optiunile, creste si importanta uneltelor folosite pentru a-ti face treaba.
Setul de instructiuni
Oricat de complexe ar fi aplicatiile, oricate milioane de linii de cod fantastice ar avea, oricate propozitii complexe, oricate cuvinte smechere sau ciudate vezi in orice cod, totul se reduce la setul de instructiuni al procesorului de relativ cateva cunvinte, adica la propriul lui cod incorporat. Nu conteaza cum, sau in ce limbaj programezi calculatorul, totul se reduce la acel set de instructiuni, si anume:
(click pe imagine pentru a mari)
Cu aceste instructiuni procesorul face totul. Codul sursa (ala scris de programator) este transformat in acest set, apoi se executa programul. Procesorul nu stie "cout<<i++<<endl;", sau "for(int i=0;i<sizeof(x);i++)". Acestea sunt codurile omului, programatorului, care sunt convertite in setul nativ de instructiuni al procesorului.
Procesoarele relativ noi* (1997) au un set de instructiuni multimedia, adica au in plus cateva "cuvinte" dedicate pentru muzica, poze, video, pentru ca in ziua de azi calculatoarele sunt folosite cel mai mult pentru asta.
*procesoarele exista din 1971, deci pana in 1997 calculatoarele au tins mult catre sisteme multimedia.
Cisteste aici mai multe despre seturile de instructiuni
Procesoarele relativ noi* (1997) au un set de instructiuni multimedia, adica au in plus cateva "cuvinte" dedicate pentru muzica, poze, video, pentru ca in ziua de azi calculatoarele sunt folosite cel mai mult pentru asta.
*procesoarele exista din 1971, deci pana in 1997 calculatoarele au tins mult catre sisteme multimedia.
Cisteste aici mai multe despre seturile de instructiuni
Compatibilitate
Asigura-te ca placa de baza suporta procesorul pe care vrei sa-l pui. Te poti insela, fiindca procesoarele sunt foarte asemanatoare intre ele, iar un singur tip de procesor (de exemplu i3) e produs pentru mai multe socketuri. De aceea trebuie sa te uiti atent la detalii.
De exemplu, daca vrei sa cumperi un procesor Core i3, care vine atat pe socket 1156 cat si 1150, asigura-te ca placa de baza suporta procesorul ales, dar numai varianta acestui procesor care se potriveste cu socketul placii de baza. Oricum. in specificatiile produsului e mentionat socket-ul, iar tu trebuie doar sa nu-l treci cu vederea.
Socket-urile suporta doar procesorul corespunzator, de exemplu procesor 1155 -> socket 1155. De fapt, au niste limitari fizice, niste "blocaje" mici de plastic, sa nu poti baga gresit alt procesor.
Tipuri de procesoare
In trecut, un procesor insemna un nucleu. Acesta era standardul, ca si cum ai zice om cu un singur creier.
Dar treaba a devenit un pic mai "SF" in 2004 cand AMD a lansat primul CPU dual-core. De atunci se pot categoriza procesoarele dupa numarul de nuclee:
Single Core - Procesor cu un singur nucleu
Dual Core - Procesor cu doua nuclee
Triple Core - Procesor cu trei nuclee
Quad Core - Procesoare cu patru nuclee (de exemplu Intel Core i7)
Octa Core - Procesoare cu opt nuclee
Deca Core - Procesoare cu 10 nuclee
Hexadeca Core - Procesoare cu 16 nuclee
nu stiu daca pronunta cineva denumirile astea... dar in fine.
Procesoarele sunt produse pe/pentru mai multe tipuri de socket-uri (sloturi):
Ce inseamna aceste numere (cel putin la procesoarele Intel)? Inseamna numarul de pini/contacte. De exemplu LGA 775 inseamna ca procesorul are 775 contacte metalice / slotul de pe placa de baza are 775 de pini.
Tipuri generale de socket (slot):
La tipul LGA, pinii se afla pe placa de baza si nu pe procesor. Procesorul are o suprafata neteda, avand doar contacte metalice. Acest tip se foloseste la procesoarele Intel din 2002.
Dar treaba a devenit un pic mai "SF" in 2004 cand AMD a lansat primul CPU dual-core. De atunci se pot categoriza procesoarele dupa numarul de nuclee:
Single Core - Procesor cu un singur nucleu
Dual Core - Procesor cu doua nuclee
Triple Core - Procesor cu trei nuclee
Quad Core - Procesoare cu patru nuclee (de exemplu Intel Core i7)
Octa Core - Procesoare cu opt nuclee
Deca Core - Procesoare cu 10 nuclee
Hexadeca Core - Procesoare cu 16 nuclee
nu stiu daca pronunta cineva denumirile astea... dar in fine.
Procesoarele sunt produse pe/pentru mai multe tipuri de socket-uri (sloturi):
- Procesoare 775 (Intel)
- Procesoare 1151 (Intel)
- Procesoare 1155 (Intel)
- Procesoare 1156 (Intel)
- Procesoare 1366 (Intel)
- Procesoare 2011 (Intel)
- Procesoare 2066 (Intel)
- Procesoare AM2 (AMD)
- Procesoare AM3 (AMD)
- Procesoare AM3+ (AMD)
- Procesoare AM4 (AMD)
- Procesoare FM1 (AMD)
- Procesoare FM2 (AMD)
- Procesoare FM2+ (AMD)
Ce inseamna aceste numere (cel putin la procesoarele Intel)? Inseamna numarul de pini/contacte. De exemplu LGA 775 inseamna ca procesorul are 775 contacte metalice / slotul de pe placa de baza are 775 de pini.
Tipuri generale de socket (slot):
- LGA (Land Grid Array)
- PGA (Pin Grid Array)
La tipul LGA, pinii se afla pe placa de baza si nu pe procesor. Procesorul are o suprafata neteda, avand doar contacte metalice. Acest tip se foloseste la procesoarele Intel din 2002.
La tipul PGA, pinii sunt situati pe procesor. Aceasta metoda este inca folosita de AMD (desi au inceput sa produca si ei procesoare LGA).
Istoria procesorului
Primul procesor a fost inventat de Intel in 1971, se numea Intel 4004 si continea 6 tranzistori (in comparatie cu procesoarele actuale care au sute de milioane de tranzistori) si rula la o frecventa de 740 KHz. Acesta a fost urma de Intel 8008 in 1972, rula la o frecventa maxim de 800 KHz, iar apoi de Intel 8086 in 1978 (procesor al carui set de instructiuni este mostenit pana acum de procesoarele moderne, x86).
In 1989 apare procesorul Intel 80486 (486), iar in 1993 apare primul procesor Pentium, Pentium 1 care trebuia sa fie defapt 586, dar au vrut ca numele lui sa fie marca inregistrata, iar 586 a fost prea banal.
Ce-i inauntrul procesorului?
Sunt foarte multe sectoare care, fiecare are un rol. Un sector pentru aritmetica, unul pentru decodare de instructiuni, unul care controleaza viteza, unul care contine registrii (cea mai mica memorie posibila din calculator), unul care se ocupa cu grafica si mai nou Northbridge-ul.
(poza facuta la microscop)
Tot ce vezi acolo sunt grupuri de grupuri de grupuri de tranzistori, pusi cap la cap sa formeze porti logice, puse cap la cap sa formeze functiile procesorului. Toate cadrele si patratele pe care le vezi sunt grupuri specializate de tranzistori.
Diagrama unui procesor tipic:
Greseli comune:
Core 2... Dual Core... este acelasi procesor?
Nu. Dual Core si Core 2 sunt doua denumiri total diferite. Multi oameni se incurca la treaba asta si sunt nedumeriti. "Core 2" este un nume de brand, ca si "Pentium", sau "Celeron"... dar Dual Core este un atribut, o chestie fizica, arata ca-i vorba de procesorul care are doua nuclee. De exemplu Pentium Dual Core.
Core 2 este un procesor Dual Core.
Cum se fabrica un procesor?
Contact: [email protected]