Ce este o conductă de instrucțiuni?

Orice instrucțiune de procesor are mai multe etape de funcționare. Fiecare dintre aceste etape durează un singur ciclu CPU pentru a se finaliza. Aceste etape sunt preluarea instrucțiunilor, decodificarea instrucțiunilor, executarea, accesul la memorie și scrierea înapoi. Respectiv, acestea primesc instrucțiunea care trebuie completată, separă operația de valorile pe care se operează, execută procesul, deschid registrul pe care va fi scris rezultatul și scrie rezultatul în registrul deschis.

Procesoare istorice în ordine

La primele calculatoare, procesorul nu folosea o conductă de instrucțiuni. În aceste procesoare, fiecare operație cu un singur ciclu trebuia să aibă loc pentru fiecare instrucțiune. Aceasta a însemnat că au fost necesare cinci cicluri de ceas pentru ca instrucțiunea medie să fie procesată în întregime înainte ca următoarea să poată fi pornită. Este posibil ca unele operațiuni să nu fie nevoie să scrie niciun rezultat într-un registru, ceea ce înseamnă că etapele de acces la memorie și de scriere înapoi pot fi sărite.

Ce este o conductă de instrucțiuni?

Într-un procesor subscalar fără conductă, fiecare parte a fiecărei instrucțiuni este executată în ordine.

Există totuși o problemă care pândește atunci când rulați o instrucțiune completă în ordine înainte de a putea trece la instrucțiunea următoare. Problema este ratarea cache-ului. CPU stochează datele pe care le procesează activ în registru. Acesta poate fi accesat cu o latență de un ciclu. Problema este că registrul este mic pentru că este încorporat în nucleul procesorului. CPU trebuie să treacă la memoria cache L1 mai mare, dar mai lent, dacă datele nu au fost deja încărcate. Dacă nu este acolo, trebuie să meargă din nou în memoria cache L2 mai mare și mai lent. Următorul pas este cache-ul L3; opțiunea finală este RAM de sistem. Fiecare dintre aceste opțiuni necesită din ce în ce mai multe cicluri CPU pentru a verifica.

Acum, această latență suplimentară poate fi o mare problemă într-un sistem care trebuie să completeze fiecare instrucțiune în ordine, înainte de a începe următoarea instrucțiune. Ceea ce a fost un procesor cu 5 cicluri per instrucțiune, poate fi blocat brusc de o instrucțiune pentru zeci sau sute de cicluri de ceas. În tot acest timp, nimic altceva nu se poate întâmpla pe computer. Din punct de vedere tehnic, acest lucru poate fi atenuat oarecum prin existența a două nuclee independente. Nimic, însă, nu îi împiedică pe amândoi să facă același lucru, potențial simultan. Deci, mersul pe traseul multi-core nu rezolvă acest lucru.

Conducta clasică RISC

RISC înseamnă Reduced Instruction Set Computer . Este un stil de design al procesorului care optimizează performanța facilitând decodarea fiecărei instrucțiuni. Acest lucru este în comparație cu CISC sau Complex Instruction Set Computer, care proiectează seturi de instrucțiuni mai complexe, permițând să fie necesare mai puține instrucțiuni pentru a efectua aceleași sarcini.

Designul clasic RISC include o conductă de instrucțiuni. În loc să ruleze oricare dintre cele cinci etape de instrucțiuni în orice ciclu dat, conducta permite efectuarea tuturor celor cinci etape. Desigur, nu puteți rula toate cele cinci etape ale unei instrucțiuni dintr-un ciclu. Dar puteți pune la coadă cinci instrucțiuni consecutive cu o compensare de câte o etapă fiecare. În acest fel, o nouă instrucțiune poate fi completată la fiecare ciclu de ceas. Oferind o potențială creștere a performanței de 5 ori pentru o creștere relativ scăzută a complexității de bază.

Ce este o conductă de instrucțiuni?

Într-un procesor scalar cu pipeline, fiecare etapă a execuției unei instrucțiuni poate fi efectuată o dată pe ciclu de ceas. Acest lucru permite un debit maxim de o instrucțiune finalizată pe ciclu.

Procesoarele care nu au o conductă pot fi întotdeauna sub-scalare, deoarece nu pot executa o instrucțiune completă pe ciclu. Cu această conductă primară în cinci etape, puteți crea un procesor scalar care poate finaliza o instrucțiune pentru fiecare proces. Prin crearea unor conducte și mai ample, puteți crea procesoare superscalare care pot executa mai mult de o instrucțiune pe ciclu de ceas. Desigur, există încă probleme potențiale.

Încă secvenţial

Nimic din toate acestea nu rezolvă problema așteptării mai multor cicluri pentru un răspuns atunci când trebuie să interogați diferitele niveluri de cache și RAM. De asemenea, introduce o nouă problemă. Ce se întâmplă dacă o instrucțiune se bazează pe rezultatul instrucțiunii anterioare? Aceste probleme sunt rezolvate independent cu un dispecer avansat. Planifică cu atenție ordinea de execuție, astfel încât nicio instrucțiune care se bazează pe rezultatul altuia să nu fie prea apropiată. De asemenea, se ocupă de pierderile de cache, parcând o instrucțiune și înlocuind-o în canal cu alte instrucțiuni care sunt gata de rulare și nu necesită rezultatul acesteia, reluând instrucțiunea când este gata.

Aceste soluții pot funcționa pe procesoare nepipeline, dar sunt necesare pentru un procesor superscalar care rulează mai mult de o instrucțiune pe ceas. Un predictor de ramură este, de asemenea, foarte util, deoarece poate încerca să prezică rezultatul unei instrucțiuni cu mai mult de un rezultat potențial și să continue să presupună că este corect, dacă nu se dovedește altfel.

Concluzie

O conductă permite ca toate capabilitățile distincte ale procesorului să fie utilizate în fiecare ciclu. Face acest lucru rulând diferite etape ale diferitelor instrucțiuni simultan. Acest lucru nici măcar nu adaugă multă complexitate designului CPU. De asemenea, deschide calea pentru a permite mai multor instrucțiuni să execute o singură etapă pe ciclu.



Leave a Comment

Ce să faci dacă Powerbeats Pro nu se încarcă în carcasă

Ce să faci dacă Powerbeats Pro nu se încarcă în carcasă

Dacă Powerbeats Pro nu se încarcă, folosește o altă sursă de alimentare și curăță-ți căștile. Lasă carcasa deschisă în timp ce încarci căștile.

Canon Pixma MG5220: Scanare Fără Cerneală

Canon Pixma MG5220: Scanare Fără Cerneală

Cum să activezi scanarea pe Canon Pixma MG5220 când ai rămas fără cerneală.

5 Motive pentru care laptopul tău se supraîncălzește

5 Motive pentru care laptopul tău se supraîncălzește

Află care sunt unele dintre posibilele motive pentru care laptopul tău se supraîncălzește, împreună cu sfaturi și trucuri pentru a evita această problemă și a menține dispozitivul răcoros.

Cum să rezolvi codul de eroare GeForce Now 0xC272008F

Cum să rezolvi codul de eroare GeForce Now 0xC272008F

Te pregătești pentru o seară de gaming și va fi una mare – tocmai ai achiziționat „Star Wars Outlaws” pe serviciul de streaming GeForce Now. Descoperă singura soluție cunoscută care îți arată cum să repari codul de eroare GeForce Now 0xC272008F pentru a putea începe din nou să joci jocurile Ubisoft.

Elementele de bază ale imprimării 3D: Sfaturi de întreținere pentru imprimanta ta 3D

Elementele de bază ale imprimării 3D: Sfaturi de întreținere pentru imprimanta ta 3D

Întreținerea imprimantelor 3D este foarte importantă pentru a obține cele mai bune rezultate. Iată câteva sfaturi importante de reținut.

Cum să găsești adresa IP a unei imprimante

Cum să găsești adresa IP a unei imprimante

Ai probleme în a descoperi ce adresă IP folosește imprimanta ta? Te vom învăța cum să o găsești.

Principiile Imprimării 3D: O listă de verificare esențială pentru întreținere

Principiile Imprimării 3D: O listă de verificare esențială pentru întreținere

Menținerea echipamentului tău într-o stare bună este esențială. Iată câteva sfaturi utile pentru a-ți menține imprimanta 3D în condiții de vârf.

Cum să folosești AirPods cu telefoanele Samsung

Cum să folosești AirPods cu telefoanele Samsung

Dacă ești nesigur dacă să cumperi AirPods pentru telefonul tău Samsung, acest ghid te poate ajuta cu siguranță. Întrebarea cea mai evidentă este dacă cele două sunt

Cum se clonează un hard disk

Cum se clonează un hard disk

În era digitală modernă, în care datele sunt un bun valoros, clonarea unui hard disk pe Windows poate fi un proces crucial pentru mulți. Acest ghid cuprinzător

Cum să remediați driverul WUDFRd care nu s-a încărcat pe Windows 10?

Cum să remediați driverul WUDFRd care nu s-a încărcat pe Windows 10?

În timpul pornirii computerului, vă confruntați cu mesajul de eroare care spune că driverul WUDFRd nu s-a încărcat pe computer?