Podcast
Questions and Answers
Qual è la formula per calcolare il throughput di un sistema SISD con pipelining?
Qual è la formula per calcolare il throughput di un sistema SISD con pipelining?
- throughput > 1/latenza (correct)
- throughput = K/(N-1)
- throughput = 1/ latenze
- throughput = N/(K+N-1)
Quanti cicli di clock sono necessari per elaborare N istruzioni in un modello SISD con pipeline a K stadi?
Quanti cicli di clock sono necessari per elaborare N istruzioni in un modello SISD con pipeline a K stadi?
- K + N
- K + (N-1) (correct)
- N
- KN
Qual è il guadagno massimo nello speed-up di un sistema SISD con pipelining?
Qual è il guadagno massimo nello speed-up di un sistema SISD con pipelining?
- speed-up = (K + N)/KN
- speed-up = KN/(K + N)
- speed-up = KN/(K + (N-1)) (correct)
- speed-up = N/(K - 1)
Qual è un fattore limitante della potenzialità della pipeline?
Qual è un fattore limitante della potenzialità della pipeline?
Quale dichiarazione è vera riguardo alle pipeline nei modelli SISD?
Quale dichiarazione è vera riguardo alle pipeline nei modelli SISD?
Quali sono le caratteristiche delle architetture CISC?
Quali sono le caratteristiche delle architetture CISC?
Cos'è una delle principali differenze tra architetture CISC e RISC?
Cos'è una delle principali differenze tra architetture CISC e RISC?
Quale affermazione è vera riguardo agli approcci CISC?
Quale affermazione è vera riguardo agli approcci CISC?
Quale affermazione descrive meglio le architetture RISC?
Quale affermazione descrive meglio le architetture RISC?
Perché le architetture CISC sono considerate vantaggiose per la programmazione ad alto livello?
Perché le architetture CISC sono considerate vantaggiose per la programmazione ad alto livello?
Qual è la principale caratteristica dell'architettura CISC?
Qual è la principale caratteristica dell'architettura CISC?
In quale modello il processore esegue un flusso di istruzioni su un insieme di dati scalari?
In quale modello il processore esegue un flusso di istruzioni su un insieme di dati scalari?
Qual è il vantaggio principale del pipelining nel modello SISD?
Qual è il vantaggio principale del pipelining nel modello SISD?
Qual è una limitazione architetturale del modello SISD?
Qual è una limitazione architetturale del modello SISD?
Quale tecnica può essere utilizzata per superare il collo di bottiglia nel modello SISD?
Quale tecnica può essere utilizzata per superare il collo di bottiglia nel modello SISD?
Quale affermazione è vera riguardo al modello MIMD?
Quale affermazione è vera riguardo al modello MIMD?
Qual è il numero di registri nella famiglia processori Intel IA-64?
Qual è il numero di registri nella famiglia processori Intel IA-64?
Quale non è un modello della classificazione di Flynn?
Quale non è un modello della classificazione di Flynn?
Cosa rappresenta la latenza nel contesto del pipelining?
Cosa rappresenta la latenza nel contesto del pipelining?
Qual è la caratteristica delle istruzioni della famiglia di processori IA-32?
Qual è la caratteristica delle istruzioni della famiglia di processori IA-32?
Cosa causa un conflitto RAW?
Cosa causa un conflitto RAW?
Qual è una tecnica utilizzata per ridurre il blocco della pipeline causato da istruzioni di salto condizionato?
Qual è una tecnica utilizzata per ridurre il blocco della pipeline causato da istruzioni di salto condizionato?
Cosa succede quando un salto condizionato viene effettuato in presenza di Delayed branch?
Cosa succede quando un salto condizionato viene effettuato in presenza di Delayed branch?
Qual è un effetto negativo del riordino delle istruzioni per gestire le dipendenze?
Qual è un effetto negativo del riordino delle istruzioni per gestire le dipendenze?
Quale tipo di istruzione non richiede necessariamente tutti gli stadi della pipeline?
Quale tipo di istruzione non richiede necessariamente tutti gli stadi della pipeline?
Quale delle seguenti affermazioni è vera riguardo all'architettura RISC in relazione alla pipeline?
Quale delle seguenti affermazioni è vera riguardo all'architettura RISC in relazione alla pipeline?
Cosa viene memorizzato in una Tabella della storia dei salti?
Cosa viene memorizzato in una Tabella della storia dei salti?
Qual è un aspetto negativo del fatto che ogni istruzione si assume che richieda tutti gli stadi della pipeline?
Qual è un aspetto negativo del fatto che ogni istruzione si assume che richieda tutti gli stadi della pipeline?
Flashcards
Architettura CISC
Architettura CISC
Un'architettura informatica che utilizza un set di istruzioni complesso con istruzioni di formato variabile, comprendendo sia istruzioni semplici che complesse.
Architettura RISC
Architettura RISC
Un'architettura informatica che utilizza un set di istruzioni ridotto con istruzioni di formato fisso, comprendendo solo istruzioni semplici.
Gap tra linguaggio di alto livello e architettura del computer
Gap tra linguaggio di alto livello e architettura del computer
La differenza tra le operazioni consentite da un linguaggio di programmazione di alto livello e quelle offerte dall'architettura del computer.
Caratteristiche di un'architettura RISC
Caratteristiche di un'architettura RISC
Comprende istruzioni che prevedono operandi nei registri e un numero limitato di istruzioni.
Signup and view all the flashcards
Approccio RISC: livello di microprogrammazione assente
Approccio RISC: livello di microprogrammazione assente
L'approccio RISC mira a semplificare l'esecuzione delle istruzioni, eliminando il livello di microprogrammazione.
Signup and view all the flashcards
Throughput con pipeline
Throughput con pipeline
Il throughput di un processore con pipeline è maggiore rispetto a un processore senza pipeline. Questo perché le istruzioni vengono completate in modo più rapido. Il throughput è misurato in istruzioni completate per ciclo di clock.
Signup and view all the flashcards
Tempo di elaborazione con pipeline
Tempo di elaborazione con pipeline
Un processore SISD con pipeline può elaborare N istruzioni in un tempo pari a K+(N-1) cicli di clock, dove K è il numero di stadi nella pipeline. Questo perché la pipeline può elaborare più istruzioni contemporaneamente.
Signup and view all the flashcards
Speed-up con pipeline
Speed-up con pipeline
Lo speed-up si riferisce al rapporto tra tempo di esecuzione di N istruzioni senza pipeline e con pipeline. È un modo per misurare il miglioramento delle prestazioni introdotto dalla pipeline.
Signup and view all the flashcards
Branch hazard in pipeline
Branch hazard in pipeline
Un branch hazard si verifica quando un'istruzione di salto interrompe la sequenza di esecuzione delle istruzioni nella pipeline. Questo perché il processore deve aspettare di decodificare l'istruzione di salto per sapere quale istruzione eseguire dopo.
Signup and view all the flashcards
Data hazard in pipeline
Data hazard in pipeline
Un data hazard si verifica quando un'istruzione dipende dai risultati dell'esecuzione di un'altra istruzione. Questo può rallentare la pipeline perché l'istruzione dipendente deve aspettare che l'istruzione precedente venga completata.
Signup and view all the flashcards
Conflitto RAW (Read After Write)
Conflitto RAW (Read After Write)
Si verifica quando un'istruzione deve operare sul risultato di un'altra istruzione.
Signup and view all the flashcards
SISD con Pipelining - Problema dei salti condizionati
SISD con Pipelining - Problema dei salti condizionati
La presenza di istruzioni di salto condizionato blocca la pipeline perché impedisce il pre-fetching delle istruzioni.
Signup and view all the flashcards
Delayed branch
Delayed branch
Anticipa il fetch dell'istruzione successiva, anche se il salto non è ancora determinato.
Signup and view all the flashcards
Branch prediction
Branch prediction
Prevede il salto in modo dinamico durante l'esecuzione del programma.
Signup and view all the flashcards
Dipendenza tra istruzioni (data hazard)
Dipendenza tra istruzioni (data hazard)
Si verifica quando un'istruzione deve usare il risultato di un'altra istruzione non ancora completata.
Signup and view all the flashcards
Dipendenza RAW
Dipendenza RAW
Un tipo di dipendenza in cui un'istruzione deve leggere il dato modificato da un'altra istruzione precedente.
Signup and view all the flashcards
Scheduling delle istruzioni
Scheduling delle istruzioni
Inserisce una logica di controllo nel processore per riordinare le istruzioni e ridurre le dipendenze.
Signup and view all the flashcards
Limitazioni del modello con pipeline
Limitazioni del modello con pipeline
Non tutte le istruzioni hanno bisogno di tutti gli stadi della pipeline. Le istruzioni semplici non hanno bisogno di tutti gli stadi.
Signup and view all the flashcards
Istruzioni Load e Store
Istruzioni Load e Store
Le istruzioni "Load" e "Store" sono utilizzate per trasferire dati tra la CPU e la memoria principale.
Signup and view all the flashcards
Registri generali
Registri generali
La CPU dispone di un numero limitato di registri generali, che sono delle piccole aree di memoria interne alla CPU utilizzate per memorizzare dati temporanei durante l'elaborazione.
Signup and view all the flashcards
Modi di indirizzamento
Modi di indirizzamento
Il modo in cui la CPU specifica l'indirizzo di memoria (ad esempio, usando un offset o un registro) è definito come modo di indirizzamento.
Signup and view all the flashcards
Formato delle istruzioni
Formato delle istruzioni
Il formato di un'istruzione macchina definisce la struttura dei bit che compongono l'istruzione, come il codice operativo e gli operandi.
Signup and view all the flashcards
Ciclo macchina
Ciclo macchina
Un'istruzione macchina è solitamente eseguita in un ciclo di clock, che è il tempo necessario per compiere una azione di base all'interno del processore.
Signup and view all the flashcards
Classificazione di Flynn
Classificazione di Flynn
La classificazione di Flynn (1972) classifica i modelli di computer in base al numero di istruzioni e di flussi di dati che possono essere elaborati simultaneamente.
Signup and view all the flashcards
Modello SISD
Modello SISD
Il modello SISD (Single Instruction Single Data) prevede un singolo processore che elabora una sola istruzione alla volta su un singolo flusso di dati. È il modello di von Neumann.
Signup and view all the flashcards
Pipelining
Pipelining
La tecnica del pipelining divide l'esecuzione di un'istruzione in più fasi (fetch, decode, execute), che vengono sovraposte nel tempo per aumentare la frequenza di completamento delle istruzioni.
Signup and view all the flashcardsStudy Notes
Introduzione
- Si parla di classificazione delle architetture.
Classificazione in base al numero di istruzioni eseguibili
- Architetture CISC (Complex Instruction Set Computer): Il set di istruzioni è composto da molte istruzioni con lunghezza variabile. Include sia istruzioni semplici che complesse, che necessitano dell'unità di controllo microprogrammata per l'esecuzione.
- Architetture RISC (Reduced Instruction Set Computer): Il set di istruzioni è costituito da un numero ridotto di istruzioni a lunghezza fissa. Comprende solo istruzioni semplici, che possono essere eseguite velocemente dall'unità di controllo cablata.
Architetture CISC
- L'approccio CISC è stato sviluppato per facilitare la programmazione ad alto livello.
- L'uso di linguaggi ad alto livello crea uno scarto tra le operazioni consentite dal linguaggio e quelle dell'architettura del calcolatore.
- Le architetture CISC hanno un ricco insieme di istruzioni macchina, simili ai comandi di alto livello.
- Questo permette compilatori meno complessi e codice eseguibile più compatto.
Architetture RISC
- L'approccio RISC non usa la microprogrammazione.
- Le architetture RISC dispongono di poche istruzioni macchina semplici.
- Le istruzioni prevedono operandi nei registri.
- Solo poche istruzioni (es. Load e Store) fanno riferimento alla memoria.
- Le architetture RISC dispongono di molti registri generali.
- Le architetture RISC usano semplici formati di indirizzamento.
- Ogni istruzione macchina è completata in un ciclo macchina.
Architetture CISC e RISC
- IA-32 (famiglia processori Intel fino al Pentium IV): è di tipo CISC. Le istruzioni macchina hanno lunghezza variabile, sono difficili da decodificare velocemente, e molti riferimenti alla memoria.
- IA-64 (nuova famiglia processori Intel a partire da ITANIUM): è di tipo RISC. Le istruzioni macchina hanno lunghezza fissa, sono facili da decodificare, con molti registri e poche istruzioni con riferimenti alla memoria.
Classificazione di Flynn (1972)
- SISD (Single Instruction Single Data): Un singolo processore esegue un flusso di istruzioni su un singolo insieme di dati.
- SIMD (Single Instruction Multiple Data): Un'istruzione macchina viene eseguita simultaneamente su più insiemi di dati.
- MISD (Multiple Instruction Single Data): Più processori eseguono diverse sequenze di istruzioni su un singolo insieme di dati (modello non comune).
- MIMD (Multiple Instruction Multiple Data): Più processori eseguono simultaneamente diverse sequenze di istruzioni su diversi insiemi di dati. (multiprocessori o multicomputer)
Modello SISD
- Il modello di Von Neumann, basato su un unico processore che esegue una sola istruzione per volta su un dato scalare.
- Le istruzioni vettoriali sono trasformate in istruzioni scalari eseguite sequenzialmente.
- L'esecuzione è strettamente sequenziale (solo un'istruzione per volta).
- L'ordine di esecuzione è definito dal programma.
- Un'immagine mostra la CPU, la memoria e le periferiche connessi da un bus.
- Il bus ha un limite architetturale, il collo di bottiglia, perché il processore può prelevare una istruzione alla volta dalla memoria.
Modello SISD con Pipeline
-
L'esecuzione dell'istruzione è divisa in più stadi (fetch, decode, operand fetch, execute, write back).
-
La tecnica del pipelining sovrappone gli stadi di diverse istruzioni, migliorando l'efficienza.
-
Ogni stadio è gestito da un'unità HW dedicata.
-
Lo schema mostra le diverse fasi del ciclo d'istruzione e le unità coinvolte.
-
La pipeline a cinque stadi è illustrata con un diagramma temporale che mostra la sovrapposizione temporale delle istruzioni.
-
Il modello SISD basato su pipelining rimane seriale nella sequenza temporale delle istruzioni e nella successione dei loro stadi.
-
L'esecuzione paralella succede a livello degli stadi del ciclo d'istruzione.
-
Il vantaggio principale del pipelining è quello di aumentare la frequenza di completamento delle istruzioni, aumentando il throughput.
-
Viene mostrata la latenza e il throughput.
-
Il pipelining introduce difficoltà (hardware più complesso, consumo maggiore) che limitano la potenzialità in situazioni reali.
-
Considerate le istruzioni di salto e le dipendenze tra le istruzioni (es. conflitto RAW).
-
Soluzioni come branch prediction e delayed branch sono utilizzate per affrontare le dipendenze data.
-
Non tutte le istruzioni necessitano di tutti gli stadi della pipeline.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.