Milap Neupane Blog

CPU, cunoscut și sub numele de microprocesor este inima și / sau creierul unui computer. Vă permite să se arunca cu capul adânc în miezul computerului și să înțeleagă modul în care funcționează CPU, care ne va ajuta să scrie programe de calculator eficient.

un instrument este de obicei mai simplu decât o mașină; este utilizat în general cu mâna, în timp ce o mașină este deplasată frecvent de puterea animalelor sau a aburului.

– Charles Babbage

un computer este o mașină alimentată în mare parte de electricitate, dar flexibilitatea și programabilitatea sa au ajutat la realizarea simplității unui instrument.

CPU este inima și / sau creierul unui computer. Execută instrucțiunile care le sunt furnizate. Sarcina sa principală este de a efectua operații aritmetice și logice și de a orchestra instrucțiunile împreună. Înainte de a vă scufunda în părțile principale, să începem prin a analiza care sunt componentele principale ale unui procesor și care sunt rolurile lor:

două componente principale ale unui procesor (Procesor)

  • unitate de Control — cu
  • Unitate aritmetică și logică — ALU

unitate de Control — CU

unitate de Control CU este partea procesorului care ajută la orchestrarea executării instrucțiunilor. Ea spune ce să facă. Conform instrucțiunii, ajută la activarea firelor care conectează procesorul la diferite alte părți ale computerului, inclusiv ALU. Unitatea de control este prima componentă a procesorului care primește instrucțiunile de procesare.

există două tipuri de unități de control:

  • unități de control cablate.
  • micro programabile (microprogramate) unități de control.

unitățile de control cablate sunt hardware-ul și au nevoie de schimbarea hardware-ului pentru a adăuga modificarea că funcționează, în timp ce unitatea de control micro-programabilă poate fi programată pentru a-și schimba comportamentul. Hardwired CU este mai rapid în procesarea instrucțiunilor, în timp ce micro-programabil este mai flexibil.

Unitate aritmetică și logică-ALU

Unitate aritmetică și logică ALU, după cum sugerează și numele, face toate calculele aritmetice și logice. ALU efectuează operații precum adunarea, scăderea. ALU constă din circuite logice sau porți logice care efectuează aceste operații.

cele mai multe porți logice iau două intrări și produc o ieșire

Mai jos este un exemplu de circuit pe jumătate de adder care ia două intrări și scoate rezultatul. Aici A și B sunt intrarea, S este ieșirea și C este transportul.

jumătate adder
jumătate sursă: https://en.wikipedia.org/wiki/Adder_(electronics)#/media / Fișier:Half_Adder.svg

stocare — registre și memorie

sarcina principală a procesorului este de a executa instrucțiunile furnizate acestuia. Pentru a procesa aceste instrucțiuni de cele mai multe ori, are nevoie de date. Unele date sunt date intermediare, unele dintre ele sunt intrări și altele sunt ieșirea. Aceste date împreună cu instrucțiunile sunt stocate în următoarea stocare:

registre

un registru este un set mic de locuri în care datele pot fi stocate. Un registru este o combinație de zăvoare. Zăvoarele cunoscute și sub numele de flip-flops sunt combinații de porți logice care stochează 1 bit de informații.

un zăvor are două fire de intrare, fir de scriere și intrare și un fir de ieșire. Putem activa firul de scriere pentru a face modificări la datele stocate. Când firul de scriere este dezactivat, ieșirea rămâne întotdeauna aceeași.

un zăvor SR, construit dintr-o pereche de porți NOR cuplate încrucișat

CPU are registre pentru stocarea datelor de ieșire. Trimiterea la memoria principală (RAM) ar fi lentă, deoarece sunt datele intermediare. Aceste date sunt trimise către alte registre care sunt conectate printr-o magistrală. Un registru poate stoca instrucțiuni, date de ieșire, adresa de stocare sau orice fel de date.

memorie(RAM)

Ram este o colecție de registru aranjate și compact împreună într-un mod optimizat, astfel încât să poată stoca un număr mai mare de date. RAM (Random Access Memory) este volatilă și datele sale se pierd atunci când oprim alimentarea. Ca RAM este o colecție de registre pentru a citi/scrie date un RAM ia intrare de adresa 8bit, de intrare de date pentru datele reale care urmează să fie stocate și în cele din urmă citit și scrie enabler care funcționează așa cum este pentru zăvoarele.

care sunt instrucțiunile

instrucțiunea este calculul nivelului granular pe care îl poate efectua un computer. Există diferite tipuri de instrucțiuni pe care un procesor le poate procesa.

instrucțiunile includ:

  • aritmetică, cum ar fi adunare și scădere
  • instrucțiuni logice, cum ar fi și, sau, și nu
  • instrucțiuni de date, cum ar fi muta, de intrare, de ieșire, de încărcare, și magazin
  • instrucțiuni de flux de Control, cum ar fi du-te, dacă … du-te, apel și retur
  • notifica CPU că programul sa încheiat opri

instrucțiunile sunt furnizate la un calculator folosind limbajul de asamblare sau limbi de nivel.

aceste instrucțiuni sunt cablate în interiorul procesorului. ALU conține aritmetică și logică, în timp ce fluxul de control este gestionat de CU.

într-un ciclu de ceas computerele pot efectua o instrucțiune, dar computerele moderne pot efectua mai multe.

un grup de instrucțiuni pe care un computer le poate efectua se numește set de instrucțiuni.

ceas CPU

ciclu de ceas

viteza unui computer este determinată de ciclul său de ceas. Este numărul de perioade de ceas pe secundă pe care funcționează un computer. Ciclurile cu un singur ceas sunt foarte mici ca în jur 250 * 10 *-12 sec. mai mare ciclul de ceas mai repede procesorul este.

un ciclu de ceas CPU este măsurat în GHz(Gigahertz). 1gHz este egal cu 10 Hertz(hertz). Un hertz înseamnă o secundă. Deci, 1gigahertz înseamnă 10 cicluri pe secundă.

cu cât ciclul ceasului este mai rapid, cu atât procesorul poate executa mai multe instrucțiuni. Clock cycle = 1 / clock rate CPU Time = number of clock cycle / clock rate

aceasta înseamnă că pentru a îmbunătăți timpul procesorului putem crește rata de ceas sau reduce numărul de cicluri de ceas prin optimizarea instrucțiunii pe care o oferim procesorului. Unele procesor oferă posibilitatea de a crește ciclul de ceas, dar din moment ce este modificări fizice ar putea fi supraîncălzire și chiar fumeaza/incendii.

cum se execută o instrucțiune

instrucțiunile sunt stocate pe memoria RAM în ordine secvențială. Pentru un procesor ipotetic, instrucțiunea constă din cod OP (Cod operațional) și memorie sau adresă de înregistrare.

există două registre în interiorul unui registru de instrucțiuni al unității de Control(IR) care încarcă codul OP al instrucțiunii și registrul de adrese de instrucțiuni care încarcă adresa instrucțiunii care execută în prezent. Există și alte registre în interiorul unui procesor care stochează valoarea stocată în adresa ultimilor 4 biți ai unei instrucțiuni.

să luăm un exemplu de set de instrucțiuni care adaugă două numere. Următoarele sunt instrucțiunile împreună cu descrierea acestora. CPU-ul funcționează executând următoarele instrucțiuni:

pasul 1 — LOAD_A 8:

instrucțiunea este salvată în RAM inițial ca să spunem<>. Primul bit 4 este codul op. Aceasta determină instrucțiunea. Această instrucțiune este preluată în IR-ul unității de control. Instrucțiunea este decodificată pentru a fi load_A, ceea ce înseamnă că trebuie să încarce datele din adresa 1000, care este ultimul bit 4 al instrucțiunii pentru a înregistra A.

pasul 2 — LOAD_B 2

Similar cu mai sus, aceasta încarcă datele din adresa de memorie 2 (0010) pentru a înregistra CPU B.

Pasul 3 — Adăugați B a

acum următoarea instrucțiune este să adăugați aceste două numere. Aici CU îi spune lui ALU să efectueze operația de adăugare și să salveze rezultatul înapoi pentru a înregistra A.

STEP 4-STORE_A 23

acesta este un set foarte simplu de instrucțiuni care ajută la adăugarea a două numere.

am adăugat cu succes două numere!

BUS

toate datele dintre CPU, registru, memorie și IO elaboreze sunt transferate prin bus. Pentru a încărca datele în memorie pe care tocmai le-a adăugat, CPU pune adresa de memorie la adresa-bus și rezultatul sumei la magistrala de date și permite semnalul potrivit în magistrala de control. În acest fel, datele sunt încărcate în memorie cu ajutorul autobuzului.

CPU bus
foto src: https://en.wikipedia.org/wiki/Bus_(computing)#/media / Fișier:Computer_system_bus.svg

Cache

CPU are, de asemenea, un mecanism pentru a prefetch instrucțiunea în cache. După cum știm, Există milioane de instrucțiuni pe care un procesor le poate finaliza într-o secundă. Aceasta înseamnă că va fi mai mult timp petrecut în preluarea instrucțiunii de la RAM decât executarea acestora. Deci, cache-ul procesorului prefetchează o parte din instrucțiuni și, de asemenea, date, astfel încât execuția să devină rapidă.

dacă datele din memoria cache și din memoria de operare sunt diferite, datele sunt marcate ca un bit murdar.

instrucțiuni pipelining

CPU moderne utilizează instrucțiuni pipelining pentru paralelizare în executarea de instrucțiuni. Adu, Decodează, Execută. Când o instrucțiune se află în faza de decodare, procesorul poate procesa o altă instrucțiune pentru faza de preluare.

ciclul ceasului CPU
Sursa foto: https://en.wikipedia.org/wiki/Instruction_pipelining#/media/File:Pipeline,_4_stage.svg

aceasta are o problemă atunci când o instrucțiune este dependentă de alta. Deci, procesoarele execută instrucțiunea care nu este dependentă și într-o ordine diferită.

computer Multicore

este practic CPU diferit, dar are unele resurse partajate, cum ar fi memoria cache.

performanță

performanța procesorului este determinată de timpul de execuție. Performance = 1 / execution time

Să presupunem că este nevoie de 20ms pentru un program pentru a executa. Performanța procesorului este de 1/20 = 0.05msrelative performance = timpul de execuție 1/ Timpul de execuție 2

factorul care este luat în considerare pentru performanța procesorului este timpul de execuție a instrucțiunilor și viteza ceasului procesorului. Deci, pentru a crește performanța unui program, trebuie fie să creștem viteza ceasului, fie să scădem numărul de instrucțiuni dintr-un program. Viteza procesorului este limitată, iar computerele moderne cu multi-core pot suporta milioane de instrucțiuni pe secundă. Dar dacă programul pe care l-am scris are o mulțime de instrucțiuni, acest lucru va scădea performanța generală.

notația Big o determină cu intrarea dată modul în care performanța va fi afectată.

există o mulțime de optimizări făcute în CPU pentru a face mai rapid și de a efectua la fel de mult ca se poate. În timp ce scriem orice program, trebuie să luăm în considerare modul în care reducerea numărului de instrucțiuni pe care le oferim procesorului va crește performanța programului de calculator.

interesat de optimizarea bazelor de date? Aflați mai multe despre el aici: https://milapneupane.com.np/2019/07/06/how-to-work-optimally-with-relational-databases/

Related Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *