Canalització: arquitectura, avantatges i desavantatges

Proveu El Nostre Instrument Per Eliminar Problemes





Augmentar la velocitat d'execució del programa en conseqüència augmenta la velocitat de el processador. Hi ha moltes maneres inventades, tant la implementació de maquinari com l'arquitectura de programari, per augmentar la velocitat d'execució. Es va observar que executant instruccions simultàniament es pot reduir el temps necessari per a l'execució. El concepte de paral·lelisme a programació es va proposar. Segons això, es poden executar més d'una instrucció per cicle de rellotge. Aquest concepte el pot practicar un programador mitjançant diverses tècniques com Canalització, diverses unitats d'execució i diversos nuclis . Entre tots aquests mètodes de paral·lelisme, el traçat de canonades es practica amb més freqüència. Llavors, com es pot executar una instrucció en el mètode de canalització? Com augmenta la velocitat d'execució?

Què és Pipelining?

Per comprendre el concepte de canalització de línies, analitzem el nivell arrel de com s’executa el programa. La instrucció és el paquet d'execució més petit d'un programa. Cada instrucció conté una o més operacions. Els processadors escalars simples executen una o més instruccions per cicle de rellotge, amb cada instrucció que conté només una operació. Les instruccions s’executen com una seqüència de fases, per produir els resultats esperats. Aquesta seqüència es dóna a continuació






Seqüència d’execució d’instruccions

Seqüència d’execució d’instruccions

  • IF: Inclou la instrucció al registre d'instruccions.
  • ID: Decodificació d’instruccions, descodifica la instrucció del codi op.
  • AG: Generador d'adreces, genera l'adreça.
  • DF: Data Fetch, recupera els operands al registre de dades.
  • EX: execució, executa l'operació especificada.
  • WB: escriu de nou, escriu el resultat a el registre.

No totes les instruccions requereixen tots els passos anteriors, però la majoria sí. Aquests passos utilitzen diferents funcions de maquinari. En la canalització, aquestes diferents fases es realitzen simultàniament. En la canalització, aquestes fases es consideren independents entre diferents operacions i es poden superposar. Per tant, es poden realitzar múltiples operacions simultàniament amb cada operació en la seva pròpia fase independent.



Instrucció de canonades

Vegem la manera com es processen les instruccions a la canalització. Això es pot entendre fàcilment amb el diagrama següent.

Instrucció de canonades

Instrucció de canonades

Suposem que les instruccions són independents. En el processador simple de canalització, en un moment determinat, només hi ha una operació en cada fase. La fase inicial és la fase IF. Per tant, al primer cicle de rellotge, s’obté una operació. Quan arriba el següent pols de rellotge, la primera operació passa a la fase d’ID deixant la fase IF buida. Ara, aquesta fase buida s’assigna a la següent operació. Per tant, durant el segon impuls de rellotge, la primera operació es troba en la fase d’identificació i la segona operació es troba en la fase IF.

Per al tercer cicle, la primera operació serà en fase AG, la segona operació serà en fase d'identificació i la tercera operació serà en fase IF. D'aquesta manera, les instruccions s'executen simultàniament i després de sis cicles el processador produirà una instrucció completament executada per cicle de rellotge.


Aquesta instrucció s'ha executat de manera seqüencial, inicialment la primera instrucció ha de passar per totes les fases i després s'obtindria la següent instrucció? Per tant, per a l'execució de cada instrucció, el processador requeriria sis cicles de rellotge. Però en un processador canalitzat, ja que l'execució d'instruccions té lloc simultàniament, només la instrucció inicial requereix sis cicles i totes les instruccions restants s'executen com una per cada cicle, reduint així el temps d'execució i augmentant la velocitat del processador.

Arquitectura de canonades

El paral·lelisme es pot aconseguir amb tècniques de maquinari, compilador i programari. Per explotar el concepte de canalització a arquitectura d'ordinadors moltes unitats de processador estan interconnectades i funcionen simultàniament. A l'arquitectura del processador canalitzat, hi ha unitats de processament separades proporcionades per a instruccions de punts enters i de coma flotant. Mentre que en l'arquitectura seqüencial, es proporciona una sola unitat funcional.

Unitat de processador canalitzat

Unitat de processador canalitzat

En la canalització estàtica, el processador ha de passar la instrucció per totes les fases de la canonada independentment del requisit de la instrucció. En un processador de canonades dinàmic, una instrucció pot obviar les fases en funció del seu requisit, però ha de moure's en ordre seqüencial. En un complex processador de canonades dinàmiques, la instrucció pot passar per alt les fases i triar les fases fora d’ordre.

Canalització en processadors RISC

El més popular Arquitectura RISC El processador ARM segueix una línia de canonades de 3 i 5 etapes. En el traçat de canonades de 3 etapes, les etapes són: Fetch, Decode i Execute. Aquesta canalització té una latència de 3 cicles, ja que una instrucció individual triga 3 cicles de rellotge a completar-se.

ARM 3 stage Pipelining

ARM 3 stage Pipelining

Per a la correcta implementació de la canonada, també s'hauria d'actualitzar l'arquitectura de maquinari. El maquinari per a la canonada de 3 fases inclou un banc de registres, ALU, canvi de barril, generador d'adreces, un incrementador, descodificador d'instruccions i registres de dades.

ARM 3 Etapa Pipelining Datapath

ARM 3 Etapa Pipelining Datapath

En 5 etapes, les línies de canalització són: Fetch, Decode, Execute, Buffer / data i Write back.

Riscos de canalització

En un programa informàtic típic, a més d’instruccions simples, hi ha instruccions de derivació, operacions d’interrupció, instruccions de lectura i escriptura. La canonada no és adequada per a tot tipus d’instruccions. Quan s’executen algunes instruccions a la canonada, poden aturar la canonada o netejar-la totalment. Aquest tipus de problemes causats durant la canonada s’anomenen Pipelining Hazards.

En la majoria dels programes d'ordinador, el resultat d'una instrucció s'utilitza com a operant per l'altra instrucció. Quan aquestes instruccions s'executen en canalització, es produeix un desglossament ja que el resultat de la primera instrucció no està disponible quan la instrucció dos comença a recollir operands. Per tant, la instrucció dos s’ha d’aturar fins que s’executi la primera i es generi el resultat. Aquest tipus de perill s’anomena perill de canalització de lectura després de l’escriptura.

Llegir després d

Llegir després d'escriure el risc de canalització

L’execució d’instruccions de sucursal també provoca un perill de canalització. Instruccions de ramificació mentre s’executen en canalització efectua les fases de recuperació de les instruccions següents.

Comportament de la branca canalitzada

Comportament de la branca canalitzada

Avantatges de la canonada

  • Augmenta el rendiment d’instruccions.
  • L'increment del nombre d'etapes de la canonada augmenta el nombre d'instruccions executades simultàniament.
  • Es pot dissenyar una ALU més ràpida quan s’utilitza la canonada.
  • La CPU canalitzada funciona amb freqüències de rellotge més altes que la RAM.
  • La canalització augmenta el rendiment general de la CPU.

Inconvenients de la canonada

  • El disseny del processador canalitzat és complex.
  • La latència d’instruccions augmenta en els processadors canalitzats.
  • El rendiment d’un processador canalitzat és difícil de predir.
  • Com més llarga sigui la canonada, pitjor serà el problema de perill per a les instruccions de sucursal.

El traçat de canonades beneficia totes les instruccions que segueixen una seqüència similar de passos per a l'execució. Els processadors que tenen instruccions complexes on totes les instruccions es comporten de manera diferent a les altres són difícils de canalitzar. Els processadors tenen eines raonables amb 3 o 5 etapes de la canonada, ja que a mesura que augmenta la profunditat de la canonada augmenten els perills relacionats amb aquesta. Voleu anomenar alguns dels processadors canalitzats amb la seva etapa de canalització?