Introduzione al Pipelining
15 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Qual è l'obiettivo principale del pipelining in un processore?

  • Aumentare il numero di istruzioni eseguite contemporaneamente.
  • Ridurre la frequenza di clock.
  • Diminuire il consumo energetico.
  • Migliorare le prestazioni elaborando più istruzioni in sovrapposizione. (correct)

Quale stadio della pipeline si occupa di determinare l'operazione da eseguire e recuperare i dati necessari dai registri?

  • ID (Instruction Decode). (correct)
  • WB (Write Back).
  • IF (Instruction Fetch).
  • EX (Execute).

Quale stadio della pipeline esegue l'operazione aritmetico-logica utilizzando l'ALU?

  • ID (Instruction Decode)
  • EX (Execute) (correct)
  • MA (Memory Access)
  • IF (Instruction Fetch)

Cosa si intende per 'stallo' in una pipeline?

<p>Un'interruzione del flusso regolare delle istruzioni. (D)</p> Signup and view all the answers

Quale tipo di conflitto è causato dalla necessità di un'istruzione di utilizzare un risultato non ancora disponibile da un'istruzione precedente?

<p>Dipendenza di dato. (C)</p> Signup and view all the answers

In una pipeline, cosa sono i buffer interstadi B1, B2, B3 e B4?

<p>Registri temporanei che memorizzano dati e segnali di controllo tra gli stadi. (B)</p> Signup and view all the answers

Quale tecnica può essere utilizzata per risolvere le dipendenze di dato senza attendere che il risultato venga scritto nel registro?

<p>Inoltro di operandi. (B)</p> Signup and view all the answers

Cosa causa uno stallo in pipeline quando un'istruzione o un dato non sono presenti nella cache?

<p>Cache miss. (A)</p> Signup and view all the answers

Come può un compilatore ottimizzante ridurre gli stalli causati da 'cache miss'?

<p>Riorganizzando il codice per inserire istruzioni utili tra 'Load' e 'Subtract'. (D)</p> Signup and view all the answers

Qual è una tecnica per mitigare i ritardi causati dalle istruzioni di salto in una pipeline?

<p>Anticipare il calcolo della destinazione del salto. (A)</p> Signup and view all the answers

Cosa implica la predizione statica di salto?

<p>Assumere che il salto non sia effettuato, a meno che non si tratti di un ciclo. (D)</p> Signup and view all the answers

Qual è la funzione del Branch Target Buffer (BTB)?

<p>Memorizzare informazioni sui salti per velocizzare la predizione. (D)</p> Signup and view all the answers

In una pipeline, cosa si intende per 'limiti di risorse'?

<p>La situazione in cui due istruzioni necessitano della stessa risorsa nello stesso ciclo di clock. (D)</p> Signup and view all the answers

In che modo l'architettura superscalare aumenta il throughput?

<p>Utilizzando più unità di esecuzione in parallelo. (A)</p> Signup and view all the answers

Quale complicazione aggiuntiva presentano i processori CISC rispetto ai RISC in termini di pipelining?

<p>Istruzioni di dimensioni variabili. (D)</p> Signup and view all the answers

Flashcards

Pipelining

Organizzazione a stadi per l'esecuzione parallela di istruzioni.

IF (Instruction Fetch)

Recupero dell'istruzione dalla memoria.

ID (Instruction Decode)

Decodifica dell'istruzione e recupero degli operandi dai registri.

EX (Execute)

Esecuzione dell'operazione aritmetico-logica usando l'ALU.

Signup and view all the flashcards

MA (Memory Access)

Accesso alla memoria per operazioni di lettura o scrittura.

Signup and view all the flashcards

WB (Write Back)

Scrittura del risultato nel registro.

Signup and view all the flashcards

Throughput

Quantità di istruzioni eseguite per unità di tempo.

Signup and view all the flashcards

Stallo nella pipeline

Interruzione nel flusso regolare di istruzioni.

Signup and view all the flashcards

Conflitti o Hazard

Situazione che causa uno stallo nella pipeline.

Signup and view all the flashcards

Dipendenza di dato

Quando un'istruzione ha bisogno di dati non ancora disponibili.

Signup and view all the flashcards

Inoltro di operandi

Tecnica per evitare stalli dovuti a dipendenze di dato.

Signup and view all the flashcards

NOP (No Operation)

Istruzione che non fa nulla.

Signup and view all the flashcards

Cache miss

Quando un dato non è presente nella cache.

Signup and view all the flashcards

Penalità di salto

Cicli di clock impiegati nel prelievo di istruzioni da scartare.

Signup and view all the flashcards

Anticipare l'istruzione di salto

Anticipare l'istruzione di salto al ciclo 2.

Signup and view all the flashcards

Study Notes

Introduzione Al Pipelining

  • Il pipelining è un'organizzazione a stadi per l'esecuzione parallela di istruzioni in un processore, sovrapponendo diversi stadi.
  • L'obiettivo principale del pipelining è migliorare le prestazioni dei processori.
  • Un'istruzione viene suddivisa in diverse fasi, ognuna eseguita in un ciclo di clock.
  • Lo stadio più lento determina il ciclo di clock.
  • Una pipeline a cinque stadi include:
  • IF (Instruction Fetch): Recupero dell'istruzione dalla memoria.
  • ID (Instruction Decode): Decodifica e recupero degli operandi dai registri.
  • EX (Execute): Esecuzione dell'operazione aritmetico-logica usando l'ALU.
  • MA (Memory Access): Accesso alla memoria per operazioni di lettura/scrittura.
  • WB (Write Back): Scrittura del risultato nel registro.
  • Quando la pipeline è piena, un'istruzione viene completata ad ogni ciclo di clock, incrementando notevolmente il throughput.

Buffer Interstadi E Registri

  • A ogni ciclo di clock, una nuova istruzione entra nel processore.
  • I Buffer Interstadi lavorano in sintonia con i Registri Interstadi.
  • I buffer, come B1, B2, B3 e B4, sono registri temporanei che mantengono dati e segnali di controllo tra gli stadi.
  • B1 alimenta lo stadio di decodifica.
  • B2 alimenta lo stadio di elaborazione.
  • B3 alimenta lo stadio di accesso alla memoria.
  • B4 alimenta lo stadio di scrittura.
  • Abbreviazioni utilizzate: P (prelievo), D (decodifica), E (elaborazione), M (memoria), S (scrittura).

Conflitti (Hazards) Nel Pipelining

  • Il pipelining introduce conflitti o hazard, situazioni che causano uno stallo nella pipeline (interruzione del flusso delle istruzioni).
  • Un tipo comune di conflitto è la dipendenza di dato.
  • Una soluzione alla dipendenza di dato è l'inoltro di operandi, prelevando direttamente il risultato dall'ALU invece di aspettare la scrittura nel registro.
  • In alternativa, le dipendenze di dato possono essere gestite a livello di software inserendo istruzioni NOP (No Operation) per creare cicli di attesa.
  • Un compilatore può riordinare le istruzioni per spostare istruzioni utili al posto delle NOP.

Ritardi Della Memoria (Cache Miss)

  • L'accesso alla memoria è un collo di bottiglia comune nella pipeline.
  • Se un'istruzione o dato non sono presenti nella cache (cache miss), il processore deve accedere alla memoria principale, provocando uno stallo.
  • Tecniche per risolvere il problema:
  • Riorganizzazione del codice: inserire un'istruzione utile tra Load e Subtract per "riempire" il ciclo di stallo.
  • Cache separate per istruzioni e dati: permettono di procedere simultaneamente senza stalli.

Ritardi Nei Salti (Branch)

  • Le istruzioni di salto rappresentano una sfida per il pipelining perché cambiano il flusso di esecuzione.
  • La destinazione del salto è nota solo dopo la decodifica dell'istruzione.
  • Le istruzioni prelevate nel frattempo potrebbero essere sbagliate, causando una penalità di salto.
  • Esistono tipi di salti: incondizionati (U Branch) e condizionati (C Branch).
  • Tecniche per ridurre la penalità di salto:
  • Anticipare il calcolo della destinazione del salto aggiungendo un sommatore nello stadio di decodifica.
  • Predizione di salto: indovinare se il salto avverrà, prelevando l'istruzione corrispondente.
  • Predizione statica: basata su regole fisse (es. salti all'indietro avvengono sempre).
  • Predizione dinamica: basata sulla storia delle esecuzioni precedenti.
  • Posto del ritardo del salto (Branch Delay Slot): inserire un'istruzione utile dopo il salto, che verrà eseguita indipendentemente dall'esito del salto.

Predizione Di Salto Dettagliata

  • Predizione statica: assumere che il salto non sia effettuato.
  • Predizione dinamica: Usa una macchina a stati finiti per migliorare la predizione.
  • Macchina a stati finiti a due stati: PS (probabilmente salta) e PNS (probabilmente non salta).
  • Macchina a stati finiti a quattro stati: MPS (Molto Probabilmente Salta), PS, PNS, MPNS.

Buffer Di Destinazione Di Salto (Branch Target Buffer - BTB)

  • BTB è un buffer di destinazione di salto.
  • Migliora la predizione, una piccola cache che memorizza indirizzo dell'istruzione di salto, indirizzo di destinazione e bit di stato usati dall'algoritmo di predizione.
  • Durante il prelievo, il BTB è controllato per predire se il salto avverrà e ottenere l'indirizzo di destinazione.

Limiti Di Risorse E Valutazione Delle Prestazioni

  • Un'altra fonte di stallo sono i limiti di risorse: se due istruzioni richiedono la stessa risorsa nello stesso ciclo, una deve aspettare.
  • Soluzione: duplicare le risorse (es. cache separate).
  • Il Throughput viene influenzato dai vari tipi di stallo.
  • Per valutare le prestazioni di una pipeline: Tempo di esecuzione = (N * S)/R, dove N è il numero di istruzioni, S è il numero medio di cicli per istruzione (CPI) e R è la frequenza di clock.
  • Il Throughput (P) è il numero medio di istruzioni eseguite per unità di tempo: Throughput (P) = N / Tempo di esecuzione.

Effetti Degli Stalli E Della Penalità Di Salto

  • Gli stalli dovuti a dipendenze di dato, cache miss e limiti di risorse incrementano il CPI e riducono il throughput.
  • Stalli per dipendenze di dato: l'inoltro degli operandi riduce gli stalli, ma non li elimina completamente.
  • Stalli per cache miss: causano stalli perché il processore deve attendere il caricamento dei dati.
  • Stalli per penalità di salto: si verificano quando la predizione del salto è errata.
  • Calcolo della destinazione del salto al secondo stadio: riduce la penalità di salto a un ciclo.
  • Predizione dinamica di salto: riduce la penalità, ma introduce possibili errori di predizione.

Effetti Della Cache Miss

  • L'effetto di cache miss può essere valutato considerando la frequenza e il tempo di accesso alla memoria principale.

Numero Di Stadi Della Pipeline

  • Aumentare il numero di stadi della pipeline aumenta il throughput ideale ma anche la probabilità di stallo.

Architetture Superscalari

  • Per aumentare le prestazioni, si usano architetture superscalari con più unità di esecuzione in parallelo, aumentando il throughput.
  • Organizzazione hardware superscalare: prelievo, decodifica ed esecuzione sono svolte da unità separate.
  • Unità di prelievo: preleva più istruzioni per ciclo.
  • Unità di smistamento: decodifica le istruzioni e le invia alle unità funzionali appropriate.
  • Esecuzione fuori ordine: le istruzioni possono essere eseguite in ordine diverso da quello del programma.
  • Completamento dell'esecuzione: i risultati vengono messi in buffer temporanei e resi definitivi nell'ordine corretto.

Sfide Delle Architetture Superscalari

  • Conflitti: la presenza di più unità aumenta la probabilità di conflitti di risorse.
  • Dipendenze di dato: possono impedire un riordino efficace delle istruzioni.
  • Cache miss: impongono stalli di prelievo e di emissione.
  • Tecniche per gestire le sfide:
  • Predizione dinamica con buffer di destinazione di salto.
  • Esecuzione speculativa.
  • Stazioni di prenotazione.

Esecuzione Fuori Ordine E Funzionamento Dello Smistamento

  • Il parallelismo permette l'esecuzione delle istruzioni in ordine diverso da quello del programma.
  • Lo smistamento deve assicurare che tutte le risorse necessarie all'esecuzione siano disponibili.

Pipeline Nei Processori CISC

  • Nei processori CISC (Complex Instruction Set Computer) presentano ulteriori complicazioni rispetto ai RISC (Reduced Instruction Set Computer):
  • Istruzioni di dimensioni variabili: rende difficile il prelievo delle istruzioni.
  • Più operandi in memoria: aumenta il numero di accessi alla memoria.
  • Modi di indirizzamento complessi: complicano la decodifica.
  • Modifica di indirizzamento complessi: Complicano la decodifica delle istruzioni.

Effetti Degli Stalli (Stima Quantitativa)

  • Gli stalli residui sono dovuti principalmente a dipendenze di dato da istruzioni Load.

Effetti Della Penalità Di Salto E Della Cache Miss

  • La penalità di salto è pari a un ciclo quando decisione e indirizzo di destinazione sono determinati nello stadio di decodifica.
  • Si considerano vari approcci come il calcolo della destinazione di salto, la predizione dinamica e l'uso del buffer di destinazione di salto.
  • Per valutare l'effetto delle cache miss, si considera la frequenza con cui si verificano.

Riepilogo Sulla Predizione Statica E Dinamica

  • La forma più semplice di predizione di salto è assumere che il salto non sia eseguito.
  • Nei cicli, si prevede che il salto all'indietro venga eseguito.
  • Per migliorare la predizione di salto, si può usare una macchina a stati finiti (PS=probabilmente salta, PNS=probabilmente non salta).
  • Una macchina a stati finiti a 4 stati (MPS, PS, PNS, MPNS) offre maggiore accuratezza.

Riepilogo Sul Buffer Di Destinazione

  • Per migliorare le prestazioni, è cruciale anticipare l'istruzione di salto al ciclo 2.
  • Idealmente, la predizione di salto dovrebbe avvenire al ciclo 1.
  • Un buffer di destinazione di salto è una memoria veloce che conserva indirizzo, bit di stato e indirizzo di destinazione.

Funzionamento Superscalare Ed Organizzazione Hardware

  • Un processore con pipeline ha un throughput massimo di un'istruzione per ciclo di clock.
  • Per aumentare le prestazioni, un processore può essere equipaggiato con più unità di esecuzione:emissione multipla.
  • L'unità di prelievo preleva più istruzioni per ciclo e l'unità di smistamento decodifica le istruzioni.
  • L'esecuzione può avvenire fuori ordine, ma il completamento deve avvenire in ordine per evitare eccezioni.
  • Un'unità di commitment gestisce la fase finale delle esecuzioni.

Pipeline Nei Processori CISC: Principali Complicazioni

  • Istruzioni di dimensioni e formato di codifica variabili.
  • Più operandi in memoria.
  • Modi di indirizzamento complessi.
  • Uso di codici di condizione.
  • Effetti collaterali.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

Description

Il pipelining è un metodo per eseguire più istruzioni contemporaneamente suddividendole in fasi. Ogni fase viene eseguita in un ciclo di clock, con l'obiettivo di migliorare le prestazioni del processore. Quando la pipeline è piena, un'istruzione viene completata ad ogni ciclo di clock.

More Like This

Use Quizgecko on...
Browser
Browser