Articles

HTG explică: cum funcționează de fapt un procesor?

  • Anthony Heddings

    @anthonyheddings

  • actualizat la 28 februarie 2020, 4:58PM EDT
CPU
rost/

majoritatea lucrurilor dintr-un computer sunt relativ simple de înțeles: memoria RAM, stocarea, perifericele și software-ul funcționează împreună pentru a face o funcție a computerului. Dar inima sistemului dvs., CPU, pare a fi magie chiar și pentru mulți oameni de tehnologie. Aici, vom face tot posibilul să-l rupe în jos.

cele mai multe de cercetare pentru acest articol vine de la „Dar cum știu?”de J. Clark Scott. Este o citire fantastică, merge în profunzime mult mai mult decât acest articol va, și este bine în valoare de dolari cuplu pe Amazon.

o notă înainte de a începe: procesoarele moderne sunt ordine de mărime mai complexe decât ceea ce Prezentăm aici. Este aproape imposibil pentru o persoană să înțeleagă fiecare nuanță a unui cip cu peste un miliard de tranzistori. Cu toate acestea, principiile de bază ale modului în care se potrivește totul rămân aceleași, iar înțelegerea elementelor de bază vă va oferi o mai bună înțelegere a sistemelor moderne.

începând mici

computerele funcționează în binar. Ei înțeleg doar două stări: on și off. Pentru a efectua calcule în binar, ei folosesc ceea ce se numește tranzistor. Tranzistorul permite curentului sursă să curgă prin el la scurgere numai dacă există curent peste poartă. În esență, aceasta formează un comutator binar, care taie firul în funcție de un al doilea semnal de intrare.

RELATED: ce este binar și de ce îl folosesc computerele?

publicitate

computerele moderne folosesc miliarde de tranzistori pentru a efectua calcule, dar la cele mai joase niveluri, ai nevoie doar de o mână pentru a forma cele mai de bază componente, cunoscute sub numele de porți.

porti logice

stiva câteva tranzistori în mod corespunzător, și aveți ceea ce este cunoscut ca o poarta logica. Porțile logice iau două intrări binare, efectuează o operație pe ele și returnează o ieșire. Poarta OR, de exemplu, returnează true dacă oricare dintre intrări este true. Poarta și verifică dacă ambele intrări sunt adevărate, XOR verifică dacă doar una dintre intrări este adevărată, iar variantele N (NOR, NAND și XNOR) sunt versiuni inversate ale porților lor de bază.

face matematica cu Gates

cu doar două porți puteți face Plus binar de bază. Această diagramă de mai sus arată o jumătate de viperă, creată folosind Logicly, un loc de joacă online gratuit pentru porțile logice. Poarta XOR aici se va activa dacă doar una dintre intrări este activată, dar nu ambele. Poarta AND se va activa dacă ambele intrări sunt pornite, dar rămâneți oprit dacă nu există nicio intrare. Deci, dacă ambele sunt pornite, XOR rămâne oprit, iar poarta și se aprinde, ajungând la răspunsul corect de două:

publicitate

aceasta ne oferă o configurare simplă cu trei ieșiri distincte: zero, unu și doi. Dar un bit nu poate stoca nimic mai mare de 1, iar această mașină nu este prea utilă, deoarece rezolvă doar una dintre cele mai simple probleme de matematică posibile. Dar aceasta este doar o jumătate de viperă, iar dacă conectați două dintre ele cu o altă intrare, veți obține o viperă completă:

Sumatorul complet are trei intrări—cele două numere de adăugat și un „carry.”Transportul este utilizat atunci când numărul final depășește ceea ce poate fi stocat într-un singur bit. Viperele complete vor fi legate într-un lanț, iar transportul este trecut de la o viperă la alta. Carry se adaugă la rezultatul poarta XOR în prima jumătate vipera, și există un extra sau Poarta să se ocupe de ambele cazuri, atunci când, astfel încât ar trebui să fie pe.

când ambele intrări sunt pornite, Transportul se aprinde și îl trimite la următorul adder complet din lanț:

și acest lucru este la fel de complex ca și adăugarea devine. Mutarea până la mai mulți biți înseamnă, în esență, doar mai multe sumatoare complete într-un lanț mai lung.

publicitate

cele mai multe alte operații matematice se poate face cu adunare; înmulțirea se repetă doar adunare, scădere se poate face cu unele inversiune biți fantezie, și diviziunea este doar scădere repetată. Și, în timp ce toate computerele moderne au soluții bazate pe hardware pentru a accelera operațiunile mai complicate, puteți face totul din punct de vedere tehnic cu viperul complet.

autobuz, și memorie

chiar acum, computerul nostru nu este nimic mai mult decât un calculator rău. Acest lucru se datorează faptului că nu își poate aminti nimic și nu face nimic cu rezultatele sale. Mai sus este prezentată o celulă de memorie, care poate face toate acestea. Sub capotă, folosește o mulțime de porți NAND, iar în viața reală poate fi destul de diferită în funcție de tehnica de stocare, dar funcția sa este aceeași. Îi dați câteva intrări, porniți bitul de scriere și acesta va stoca intrările în interiorul celulei. Aceasta nu este doar o celulă de memorie, deoarece avem nevoie și de o modalitate de a citi informații din ea. Acest lucru se face cu un enabler, care este o colecție de porți și pentru fiecare bit din memorie, toate legate de o altă intrare, bitul „citit”. Biții de scriere și citire sunt adesea numiți „set” și „enable”.

acest întreg pachet este înfășurat în ceea ce este cunoscut sub numele de registru. Aceste registre sunt conectate la magistrală, care este un pachet de fire care rulează în jurul întregului sistem, conectate la fiecare componentă. Chiar și computerele moderne au un autobuz, deși pot avea mai multe autobuze pentru a îmbunătăți performanța multitasking.

fiecare registru are încă un bit de scriere și citire, dar în această configurare, intrarea și ieșirea sunt același lucru. Acest lucru este de fapt bun. De exemplu. Dacă doriți să copiați conținutul R1 în R2, ați activa bitul de citire pentru R1, care ar împinge conținutul R1 pe autobuz. În timp ce bitul de citire este activat, ați activa bitul de scriere pentru R2, care ar copia conținutul autobuzului în R2.

publicitate

registrele sunt folosite pentru a face RAM, de asemenea. Memoria RAM este adesea așezată într-o rețea, cu fire care merg în două direcții:

decodoarele iau o intrare binară și pornesc firul numerotat corespunzător. De exemplu, „11” este 3 în binar, cel mai mare număr de 2 biți, astfel încât decodorul ar porni cel mai înalt fir. La fiecare intersecție, există un registru. Toate acestea sunt conectate la magistrala centrală și la o intrare centrală de scriere și citire. Atât intrarea de citire, cât și cea de scriere se vor activa numai dacă cele două fire care traversează Registrul sunt, de asemenea, activate, permițându-vă efectiv să selectați registrul din care să scrieți și să citiți. Din nou, memoria RAM modernă este mult mai complicată, dar această configurare funcționează în continuare.

ceasul, pas cu pas, și decodorul

registrele sunt folosite peste tot și sunt instrumentul de bază pentru mutarea datelor în jurul și stocarea informațiilor în CPU. Deci, ceea ce le spune să se mute lucrurile în jurul?

ceasul este prima componentă din nucleul procesorului și se va opri și porni la un interval setat, măsurat în hertz sau cicluri pe secundă. Aceasta este viteza pe care o vedeți promovată alături de procesoare; un cip de 5 GHz poate efectua 5 miliarde de cicluri pe secundă. Viteza ceasului este adesea o valoare foarte bună pentru cât de rapid este un procesor.

publicitate

ceasul are trei stări diferite: ceasul de bază, ceasul de activare și ceasul setat. Ceasul de bază va fi pornit pentru o jumătate de ciclu și oprit pentru cealaltă jumătate. Ceasul de activare este utilizat pentru a activa registrele și va trebui să fie activat mai mult timp pentru a vă asigura că datele sunt activate. Ceasul setat trebuie să fie întotdeauna pornit în același timp cu ceasul de activare, altfel ar putea fi scrise date incorecte.

ceasul este conectat la stepper, care va conta de la unu la pasul maxim și se va reseta înapoi la unul când este terminat. Ceasul este, de asemenea, conectat la și porți pentru fiecare registru pe care procesorul îl poate scrie la:

acestea și porțile sunt, de asemenea, conectate la ieșirea unei alte componente, decodorul de instrucțiuni. Decodorul de instrucțiuni ia o instrucțiune precum” setați R2 la R1 ” și o decodifică în ceva pe care procesorul îl poate înțelege. Are propriul registru intern, numit” Registrul de instrucțiuni”, unde este stocată operația curentă. Cât de exact face acest lucru se reduce la sistemul pe care îl rulați, dar odată ce este decodat, va activa setul corect și va activa biți pentru registrele corecte, care se vor declanșa în conformitate cu ceasul.

instrucțiunile programului sunt stocate în memoria RAM (sau memoria cache L1 pe sistemele moderne, mai aproape de CPU). Deoarece datele programului sunt stocate în registre, la fel ca orice altă variabilă, pot fi manipulate din mers pentru a sări în jurul programului. Acesta este modul în care programele își obțin structura, cu bucle și declarații if. O instrucțiune jump setează locația curentă în memoria pe care decodorul de instrucțiuni o citește într-o altă locație.

cum se reunesc toate

acum, simplificarea excesivă a modului în care funcționează un procesor este completă. Autobuzul principal se întinde pe întregul sistem și se conectează la toate registrele. Complet adders, împreună cu o grămadă de alte operațiuni, sunt ambalate în unitatea logică aritmetică, sau ALU. Acest ALU va avea conexiuni cu autobuzul și va avea, de asemenea, propriile registre pentru stocarea celui de-al doilea număr pe care funcționează.

publicitate

pentru a efectua un calcul, datele programului sunt încărcate din memoria RAM a sistemului în secțiunea de control. Secțiunea de control citește două numere din memoria RAM, încarcă primul în registrul de instrucțiuni ALU și apoi încarcă al doilea pe autobuz. Între timp, trimite ALU un cod de instrucțiuni spunându-i ce să facă. ALU efectuează apoi toate calculele și stochează rezultatul într-un registru diferit, din care CPU poate citi și apoi continua procesul.

Image Credit: Rost9/

Anthony Heddings
Anthony Heddings este inginerul cloud rezident pentru LifeSavvy Media, scriitor tehnic, programator și expert la platforma AWS Amazon. El a scris sute de articole pentru Cum să-Geek și CloudSavvy-L care au fost citite de milioane de ori.Citește Bio complet ”