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

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?

Cum să remediați codul de eroare NVIDIA GeForce Experience 0x0003

Cum să remediați codul de eroare NVIDIA GeForce Experience 0x0003

Aveți experiența NVIDIA GeForce cu codul de eroare 0x0003 pe desktop? Dacă da, citiți blogul pentru a afla cum să remediați această eroare rapid și ușor.

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Cum să eliminați un GPU de pe un computer Windows în 2023

Cum să eliminați un GPU de pe un computer Windows în 2023

Trebuie să eliminați GPU-ul de pe computer? Alăturați-vă pentru a explica cum să eliminați un GPU de pe computer în acest ghid pas cu pas.

Cum se instalează un SSD NVMe pe un desktop și laptop

Cum se instalează un SSD NVMe pe un desktop și laptop

Ați cumpărat un nou SSD NVMe M.2, dar nu știți cum să îl instalez? Citiți mai departe pentru a afla cum să instalați un SSD NVMe pe laptop sau desktop.

Ce este o bombă logică?

Ce este o bombă logică?

O bombă logică este un incident de securitate în care un atacator stabilește o acțiune întârziată. Continuați să citiți pentru a afla mai multe.

Ce este un SoC?

Ce este un SoC?

Dacă v-ați uitat vreodată în interiorul unui turn de PC, puteți vedea că există o mulțime de componente diferite. Laptopul tău obișnuit conține majoritatea componentelor

Ce este criptarea asimetrică?

Ce este criptarea asimetrică?

Algoritmii de criptare asimetrică utilizează două chei distincte. O cheie este folosită pentru criptare, iar cealaltă pentru decriptare.

Steam Deck: Cum se formatează cardul SD

Steam Deck: Cum se formatează cardul SD

Steam Deck vine în trei opțiuni de stocare: eMMC de 64 GB, SSD NVMe de 256 GB și SSD NVMe de 512 GB. În funcție de biblioteca dvs. de jocuri și de dimensiunea jocurilor