CPU. Dispositivi di I/O. Bus. Terminale. Stampante. Memoria centrale. Unità disco CPU. Unità di controllo. Unità aritmetico logica (ALU) Registri

Documenti analoghi
Introduzione all'architettura dei Calcolatori. Maurizio Palesi

Elementi di informatica

Capitolo 4 Parte 1 Le infrastrutture hardware. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

CPU. Maurizio Palesi

Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill 3/2/2010

A.A. 2018/2019. CPU e Linguaggio Macchina FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE. Docente Prof. Raffaele Pizzolante

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori

La macchina di Von Neumann. UNIVERSITÀ DEGLI STUDI DEL SANNIO Benevento DING DIPARTIMENTO DI INGEGNERIA CORSO DI "PROGRAMMAZIONE I"

HARDWARE 1.4a: (Processore)

Architettura di un calcolatore

Fondamenti di Informatica A. A / 1 9

Architettura del Calcolatore

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica

Fondamenti di Informatica e Programmazione. P ro f. G i a n n i D A n g e l o

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Elementi di informatica

Architettura. Argomenti. Modello di Von Neumann. Corso di Laurea in Ingegneria Biomedica aa 2003/2004. Ing. Antonio Coronato. Modello di Von Neumann

Architettura di un Sistema Informatico

2. Architettura di un calcolatore

Corso integrato di Sistemi di Elaborazione. Modulo I. Prof. Crescenzio Gallo.

Corso di Informatica

Architettura del calcolatore (Seconda parte)

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Informatica. Le infrastrutture HardWare. Funzionalità di un calcolatore 21/03/2007. Introduzione ai sistemi informatici 1

Architettura del Calcolatore

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Il sistema di elaborazione

Componenti di un processore

Architettura dell elaboratore

Architettura dell elaboratore

Terza lezione 21 ottobre 2016

Richiami sull architettura del processore MIPS a 32 bit

Architettura di un calcolatore. Informatica per l Ingegneria

Le istruzioni del linguaggio gg macchina corrispondono ad operazioni elementari di elaborazione operazioni aritmetiche

L architettura del calcolatore

memoria PSW R1 R2 CPU Struttura logica dell elaboratore unità di controllo ALU unità di ingresso unità organo coordinatore clock di uscita

Componenti principali

L architettura del calcolatore (Seconda parte)

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni

L'architettura del processore MIPS

Sistemi e reti CPU Concetti di base

Architettura dei calcolatori

Richiami sull architettura del processore MIPS a 32 bit

Architettura del. Calcolatori (1) Calcolatori (2) L architettura di Von Neumann. CPU RAM Memoria I/O. secondaria. bus

Informatica di base 4 crediti 32 ore!!

Capitolo 2. Elaborazione dei dati. Mauro Giacomini Pearson Addison-Wesley. All rights reserved

Funzionalità di un calcolatore. Il calcolatore: modello architetturale. Lo schema di riferimento. L hardware dei sistemi di elaborazione (prima parte)

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti

Architettura di von Neumann

Abilità Informatiche e Telematiche

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).!

Il Processore: l unità di controllo

Agent and Object Technology Lab Dipartimento di Ingegneria dell Informazione Università degli Studi di Parma. Fondamenti di Informatica.

Abilità Informatiche e Telematiche

Introduzione all'architettura dei Calcolatori

Componenti e connessioni. Capitolo 3

Architettura degli Elaboratori Lez. 8 CPU MIPS a 1 colpo di clock. Prof. Andrea Sterbini

Funzionalità di un calcolatore. Il calcolatore: modello architetturale. Lo schema di riferimento. L hardware dei sistemi di elaborazione (prima parte)

Capitolo 6 Le infrastrutture HardWare

CPU. ALU e Registri della CPU. Elementi della CPU. CPU e programmazione (Parte 1) Central Processing Unit, processore

Il processore - CPU (CENTRAL PROCESSING UNIT)

Pag. 1. Informatica Facoltà di Medicina Veterinaria a.a. 2012/13 prof. Stefano Cagnoni. Architettura del calcolatore (parte II)

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

Lezione 15. L elaboratore Elettronico

Struttura di un elaboratore

Capitolo 5 Elementi architetturali di base

Un quadro della situazione. Lezione 15 Il Set di Istruzioni (2) Le operazioni e gli operandi. Dove siamo nel corso. Cosa abbiamo fatto

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

CPU a singolo ciclo. Lezione 18. Sommario. Architettura degli Elaboratori e delle Reti. Proff. A. Borghese, F. Pedersini

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

La macchina di Von Neumann

Architettura di un elaboratore. Il modello di von Neumann

Informatica. Mario Pavone - Dept. Mathematics & Computer Science - University of Catania. Trasferimento. Ambiente esterno.

Architettura degli elaboratori CPU a ciclo singolo

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Il Processore. Informatica di Base -- R.Gaeta 27

ESERCITAZIONE Unità centrale di elaborazione Ciclo base di un istruzione Meccanismo di interruzione

Architettura dei sistemi di elaborazione: La CPU: Architettura (parte 2)

Architettura del calcolatore (Prima parte)

Architettura degli elaboratori CPU a ciclo singolo

Introduzione all'architettura dei Calcolatori

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2

Lezione 1: L hardware

Architettura del processore e esecuzione delle istruzioni

Progetto CPU a singolo ciclo

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino

Fondamen( di Informa(ca

Istruzioni e linguaggio macchina

Cenni sull architettura del calcolatore

Architettura di Von Neumann

Architettura del computer

Architettura degli Elaboratori

HSA HSA HARDWARE SYSTEM ARCHITECTURE. Livelli. Livello assemblativo. Livello di. Sistema Operativo. Livello di. linguaggio macchina.

Macchina di Von Neumann

Sistemi di Elaborazione delle Informazioni

Progettazione dell unità di elaborazioni dati e prestazioni. Il processore: unità di elaborazione. I passi per progettare un processore

Transcript:

Capitolo 6 Le infrastrutture HardWare Il processore

CPU Central Processing Unit Unità Centrale di Elaborazione

Organizzazione tipica di un calcolatore bus oriented CPU Unità di controllo Dispositivi di I/O Unità aritmetico logica (ALU) Registri Terminale Stampante CPU Memoria centrale Unità disco Bus

L esecutore Un calcolatore basato sull architettura di Von Neumann esegue un programma sulla base dei seguenti principi: dati e istruzioni sono memorizzati in una memoria unica che permette sia la scrittura che la lettura; i contenuti della memoria sono indirizzati in base alla loro posizione, indipendentemente dal tipo di dato o istruzione contenuto; le istruzioni vengono eseguite in modo sequenziale.

L esecutore Il linguaggio per cui la CPU si comporta da esecutore è detto linguaggio macchina.. Le istruzioni scritte in linguaggio macchina sono piuttosto rudimentali: il concetto di tipo di dato è quasi assente, il numero di operandi è limitato (in genere non più di due), il numero di operazioni previste è ridotto. Struttura istruzione codice operativo dest src1 src2 Linguaggio assemblatore add R01 R02 R03 Linguaggio macchina 000000 00000 100000 00001 00010 00011

Ciclo Fetch Decode Execute Fetch Decode Execute

Le parti di una CPU Data path (o percorso dei dati) è la parte che si occupa dell effettiva elaborazione dei dati; comprende dispositivi diversi una o più unità aritmetico-logiche, dette ALU (Arithmetic Logic Unit); alcune unità di memorizzazione temporanea, i registri, memoria ad alta velocità usata per risultati temporanei e informazioni di controllo (il valore massimo memorizzabile in un registro è determinato dalle dimensioni del registro).

Data Path Registri R00 R01 R02 R03 X + Y X Y Registri ingresso ALU X Y add A L U esito Registro uscita ALU X + Y

Le parti di una CPU Unità di controllo coordina le operazioni di tutto il processore (anche quelle del data path!); regola il flusso dei dati e indica quali registri debbano essere collegati agli ingressi e all uscita dell ALU; invia all ALU il codice dell operazione da eseguire; riceve indicazioni sull esito dell operazione appena eseguita dall ALU e gestisce opportunamente queste informazioni; comprende alcuni registri di uso specifico Program Counter (PC) qual è l istruzione successiva; Instruction Register (IR) istruzione in corso d esecuzione;

Unità di controllo Data path CPU Unità di controllo PSW Bus controllo Bus dati Bus indirizzi IR PC Memoria

CPU In grado di eseguire solo istruzioni codificate in linguaggio macchina Ciclo Fetch Decode - Execute 1. Prendi l istruzione corrente dalla memoria (quella individuata dal contenuto del PC) e mettila nell IR (Instruction Register), contemporaneamente incrementa il Program Counter (PC) in modo che contenga l indirizzo dell istruzione successiva (fetch) 2. Determina il tipo di istruzione da eseguire (decode) 3. Se l istruzione usa dei dati presenti in memoria, determinane la posizione; 4. Carica la parola, se necessario, in un registro della CPU; 5. Esegui l istruzione (execute) 6. Torna al punto 1 e inizia a eseguire l istruzione successiva.

Tipologie di istruzioni Architettura di riferimento: load/store le operazioni aritmetico-logiche possono essere eseguite solo su dati che siano già stati caricati nei registri; le operazioni di caricamento dei dati dalla memoria nei registri (load) e di archiviazione dei risultati dai registri nella memoria (store) debbono essere previste esplicitamente.

Tre tipologie di istruzioni Istruzioni aritmetico-logiche (Elaborazione dati) Somma, Sottrazione, Divisione, And, Or, Xor, Maggiore, Minore, Uguale, Minore o uguale, Controllo del flusso delle istruzioni Sequenza Salto condizionato o non condizionato Ciclo a condizione iniziale, ciclo a condizione finale, Trasferimento di informazione Trasferimento dati e istruzioni tra CPU e memoria Trasferimento dati e istruzioni tra CPU e dispositivi di ingresso/uscita (attraverso le relative interfacce)

Esempi di istruzioni Istruzione Significato add R01,R02,R03 R01 R02 + R03 addi R01,R02,421 R01 R02 + 421 lw R01,R02,421 R01 M[R02 + 421] sw R01,R02,421 M[R02 + 421] R01 Categoria aritmetico-logica aritmetico-logica trasferimento trasferimento beq R01,R02, 421 se (R01 == R02) vai a PC 421 salto (condizionato) j 84210 vai a 84210 salto (non condizionato)

Esempio di Istruzioni aritmetico-logiche Un istruzione aritmetico-logica, ad esempio add RZ,RX,RY viene eseguita in quattro passi: 1. l istruzione viene prelevata dalla memoria e scritta nell IR mentre il PC viene incrementato (si tratta della fase di fetch già descritta in precedenza); 2. viene letto il contenuto dei due registri RX e RY (in pratica l unità di controllo attiva i collegamenti tra i registri RX e RY, individuati dal contenuto dell IR, e i registri di ingresso all ALU e provvede a effettuare il trasferimento dei dati); 3. la ALU opera sui dati letti dal banco dei registri, eseguendo l operazione indicata dal codice compreso nell istruzione (l unità di controllo attiva il collegamento di un pezzo dell IR con l ingresso di controllo dell ALU); 4. il risultato calcolato dall ALU viene scritto nel registro RZ (anche il registro destinazione viene individuato a partire dal contenuto dell IR).

Esempio di Istruzioni di trasferimento Un istruzione di trasferimento, ad esempio lw RY,RX,base viene eseguita in cinque passi: 1. l istruzione viene prelevata dalla memoria e scritta nell IR mentre il PC viene incrementato; 2. viene letto il contenuto del registro RX; 3. la ALU opera sui dati letti dal banco dei registri e sulla base scritta nell IR; 4. il risultato calcolato dall ALU viene utilizzato come indirizzo per la memoria dati; 5. il dato proveniente dalla memoria viene scritto nel registro RY.

L unità di elaborazione (CPU) Indirizzo prox istruzione Registro contatore di programma (PC) Registro interruzioni (INTR) Registro istruzione corrente (CIR) Istruzione in elaborazione Registro di stato (PSW) A B Clock Unità aritmetico logica (ALU) Stato CPU Operazioni aritmetiche e logiche Registri operandi Registri generali Unità di controllo (CU) Registro dati (DR) Sincronizzazione Parola letta/da scrivere in MM Registro indirizzi (AR) Controllo: -Prelievo -Decodifica Indirizzo cella MM -Esecuzione

Il bus di sistema Registro contatore di programma (PC) Registro interruzioni (INTR) Registro di stato (PSW) A B Unità aritmetico logica (ALU) CPU Registro istruzione corrente (CIR) Clock Unità di controllo (CU) Registro dati (DR) Registro indirizzi (AR) Bus dati, Bus indirizzi, Bus controlli Bus di sistema

Sequenza di lettura Passo 3 PC INTR CIR PSW A B Ck ALU CU 0 Passo 1 Passo 24 123 42 DR 42 123 AR 1023 READ OK

Sequenza di scrittura Passo 3 PC INTR IR PSW A B Ck ALU CU 0 Passo 1 Passo 42 123 42 70 123 Passo 3 DR 70 123 AR 1023 WRITE OK

Unità funzionali richieste dai diversi tipi di istruzioni Tipo di istruzione Unità funzionali utilizzate Aritmetico-logico Memoria (istruzioni) Banco registri ALU Banco registri Trasferimento Memoria Banco Memoria Banco ALU (registri memoria) (istruzioni) registri (dati) registri Trasferimento (registri memoria) Salto (condizionato) Salto (non condizionato) Memoria (istruzioni) Memoria (istruzioni) Memoria (istruzioni) Banco registri Banco registri ALU Memoria (dati) ALU

Durata indicativa di ogni categoria di istruzione (tempi in ns). Tipo di istruzione Memoria istruzioni (MI) Lettura registro (LR) ALU (AL) Memoria dati (MD) Scrittura registro (SR) Totale Aritmetico-logico 10 5 10 5 30 Trasferimento (registri memoria) Trasferimento (registri memoria) Salto (condizionato) Salto (non condizionato) 10 5 10 10 5 40 10 5 10 10 35 10 5 10 25 10 10

Un esempio Esecuzione di una successione di quattro istruzioni per il caricamento di due dati dalla memoria nei registri R01 e R02, la loro somma e la registrazione in memoria del risultato. lw R01,R11,421 MI LR AL MD SR Tempo lw R02,R11,842 40 ns MI LR AL MD SR 30 ns add R03,R01,R02 40 ns MI LR AL SR 35 ns sw R03,R11,421 MI LR AL MD Ordine di esecuzione delle istruzioni 145 ns

Es.: valutazione di espressione Vogliamo calcolare il valore dell espressione: (a+b) (c+d) leggendo i valori delle variabili a, b, c, d dal dispositivo di ingresso e scrivendo il risultato della valutazione sul dispositivo di uscita.

Un algoritmo generale 1. Leggi dal dispositivo di ingresso il valore delle variabili a, b, c, d 2. Somma il valore di a al valore di b 3. Salva il risultato parziale ottenuto 4. Somma il valore di c al valore di d 5. Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato 6. Scrivi sul dispositivo di uscita il risultato della valutazione complessiva 7. Termina l esecuzione del programma.

L algoritmo dettagliato (1) 1. Scrivi nella cella di memoria centrale riservata al valore della variabile a il valore letto dal dispositivo di ingresso (disponibile nel registro dati della periferica). Fai la stessa cosa per b, c, d 2. Somma il valore di a al valore di b 2.1 Copia il contenuto della cella di memoria riservata ad a nel registro A 2.2 Copia il contenuto della cella di memoria riservata a b nel registro B 2.3 Somma il contenuto dei registri A e B 3. Salva il risultato parziale, contenuto nel registro A, in una cella di memoria predisposta per il risultato (z).

L algoritmo dettagliato (2) 4. Somma il valore di c al valore di d 4.1 Copia il contenuto della cella di memoria riservata a c nel registro A 4.2 Copia il contenuto della cella di memoria riservata a d nel registro B 4.3 Somma il contenuto dei registri A e B (risultato è in A) 5. Moltiplica il risultato parziale appena ottenuto con quello precedentemente salvato 5.1 Copia il contenuto della cella riservata a z nel registro B (z e B contengono ora a+b, mentre A contiene c+d) 5.2 Moltiplica il contenuto dei registri A e B.

L algoritmo dettagliato (3) 6. Scrivi sul dispositivo di uscita il risultato della valutazione complessiva 6.1 Memorizza il risultato appena calcolato (e disponibile nel registro A) nella cella di memoria riservata a z 6.2 Copia il contenuto della cella di memoria riservata a z nel registro dati della periferica di uscita 7. Termina l esecuzione del programma.

Forma binaria del programma 0100000000010000 Leggi un valore dall input e mettilo nella cella 16 (a) 0100000000010001 Leggi un valore dall input e mettilo nella cella 17 (b) 0100000000010010 Leggi un valore dall input e mettilo nella cella 18 (c) 0100000000010011 Leggi un valore dall input e mettilo nella cella 19 (d) 0000000000010000 Carica il contenuto della cella 16 (a) nel registro A 0001000000010001 Carica il contenuto della cella 17 (b) nel registro B 0110000000000000 Somma i registri A e B 0010000000010100 Scarica il contenuto di A nella cella 20 (z) z (ris.parziale) 0000000000010010 Carica il contenito della cella 18 (c) nel registro A 0001000000010011 Carica il contenito della cella 19 (d) nel registro B 0110000000000000 Somma i registri A e B 0001000000010011 Carica il contenuto della cella 20 (z) (ris. parziale) in B 1000000000000000 Moltiplica i registri A e B 0010000000010100 Scarica il contenuto di A nella cella 20 (z) (ris. totale) 0101000000010100 Scrivi il contenuto della cella 20 (z) (ris. totale) in output 1101000000000000 Halt

Programma in memoria centrale Cella 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Spazio riservato per a 16 Spazio riservato per b 17 Spazio riservato per c 18 Spazio riservato per d 19 Spazio riservato per z 20 010000000001000 0 010000000001000 1 010000000001001 0 010000000001001 1 000000000001000 0 000100000001000 1 011000000000000 0 001000000001010 0 000000000001001 0 000100000001001 1 011000000000000 0

Fase di interpretazione 1 a istruzione IR 0100000000010000 Codice operativo 0100 = leggi da input

Fase di esecuzione 1 a istruzione Indirizzo operando 00000010000 = cella 16 0 Memoria centrale (MM) Passo 3 CIR 0100000000010000 16 0001000000011111 Passo 1 AR 0000010000 1023 Passo 2 Valore di a letto dall input (es. 4127) DR PDR 0001000000011111 0001000000011111

Incrementare le prestazioni con il parallelismo

Migliorare le prestazioni di una CPU La frequenza di clock influenza direttamente il tempo di ciclo del data path e quindi le prestazioni di un calcolatore; è limitata dalla tecnologia disponibile. Il parallelismo permette di migliorare le prestazioni senza modificare la frequenza di clock. Esistono due forme di parallelismo: parallelismo a livello delle istruzioni (architetture pipeline o architetture superscalari); parallelismo a livello di processori (multiprocessori o multicomputer).

Architettura pipeline Organizzazione della CPU come una catena di montaggio la CPU viene suddivisa in stadi, ognuno dedicato all esecuzione di un compito specifico; l esecuzione di un istruzione richiede il passaggio attraverso (tutti o quasi tutti) gli stadi della pipeline; in un determinato istante, ogni stadio esegue la parte di sua competenza di una istruzione; in un determinato istante, esistono diverse istruzioni contemporaneamente in esecuzione, una per ogni stadio.

Pipeline in cinque stadi: Esempio di pipeline /1 S1 [MI] lettura istruzioni dalla memoria, caricamento IR e incremento PC; S2 [LR] lettura dai registri degli operandi richiesti; S3 [AL] esecuzione delle operazioni aritmetico-logiche necessarie; S4 [MD] accesso alla memoria dati (per lettura/load o scrittura/store); S5 [SR] scrittura nei registri dei risultati. Stadio 1 Stadio 2 Stadio 3 Stadio 4 Stadio 5 Memoria Istruzioni (MI) Lettura Registri (LR) ALU (AL) Memoria Dati (MD) Scrittura Registri (SR) 10 ns 5 ns 10 ns 10 ns 5 ns

Con e senza pipeline Esempio a ds: Senza pipeline T = 145 Con pipeline T = 80 Rapporto 145/80 = 1.81 lw R01,R11,421 lw R02,R11,842 add R03,R01,R02 sw R03,R11,421 MI LR AL 40 ns Ordine di esecuzione delle istruzioni MD SR MI LR AL 40 ns MD 145 ns SR 30 ns MI LR AL SR Tempo 35 ns MI LR AL MD lw R01,R11,421 MI LR AL MD SR Tempo lw R02,R11,842 10 ns MI LR AL MD SR add R03,R01,R02 10 ns MI LR AL SR sw R03,R11,421 10 ns MI LR AL MD Ordine di esecuzione delle istruzioni 80 ns

Prestazioni di una pipeline Il tempo di esecuzione (latenza) della singola istruzione non diminuisce, anzi aumenta il tempo di attraversamento (latenza) della pipeline corrisponde al numero degli stadi (N) moltiplicato per il tempo di ciclo (T); il tempo di ciclo è limitato dallo stadio più lento! Aumenta il numero di istruzioni completate nell unità di tempo (throughput) si completa un istruzione a ogni ciclo di clock; l incremento di throughput è quasi proporzionale al numero degli stadi!

Esecuzione in pipeline Stadi Stadio 5 (SR) Stadio 4 (MD) Stadio 3 (AL) Stadio 2 (LR) Stadio 1 (MI) Istruzione 1 Istruzione 2 Istruzione 3 Istruzione 4 Istruzione 5 Istruzione 6 10 ns 20 ns 30 ns 40 ns 50 ns 60 ns Tempo

Esecuzione in pipeline Stadi Stadio 5 (SR) Istruzione 1 Istruzione 2 Stadio 4 (MD) Istruzione 1 Istruzione 2 Istruzione 3 Stadio 3 (AL) Istruzione 1 Istruzione 2 Istruzione 3 Istruzione 4 Stadio 2 (LR) Istruzione 1 Istruzione 2 Istruzione 3 Istruzione 4 Istruzione 5 Stadio 1 (MI) Istruzione 1 Istruzione 2 Istruzione 3 Istruzione 4 Istruzione 5 Istruzione 6 10 ns 20 ns 30 ns 40 ns 50 ns 60 ns Tempo

Esecuzione in pipeline Stadi Stadio 5 (SR) Istr. N 4 Istr. N 3 Istr. N 2 Istr. N 1 Istr. N Istr. N+1 Stadio 4 (MD) Istr. N 3 Istr. N 2 Istr. N 1 Istr. N Istr. N+1 Istr. N+2 Stadio 3 (AL) Istr. N 2 Istr. N 1 Istr. N Istr. N+1 Istr. N+2 Istr. N+3 Stadio 2 (LR) Istr. N 1 Istr. N Istr. N+1 Istr. N+2 Istr. N+3 Istr. N+4 Stadio 1 (MI) Istr. N Istr. N+1 Istr. N+2 Istr. N+3 Istr. N+4 Istr. N+5 t 1 t 2 t 3 t 4 t 5 t 6 Tempo In ogni istante (e.g. t 3 ) ci sono 5 istruzioni in esecuzione

Esecuzione in pipeline Stadi Stadio 5 (SR) Istr. N 4 Istr. N 3 Istr. N 2 Istr. N 1 Istr. N Istr. N+1 Stadio 4 (MD) Istr. N 3 Istr. N 2 Istr. N 1 Istr. N Istr. N+1 Istr. N+2 Stadio 3 (AL) Istr. N 2 Istr. N 1 Istr. N Istr. N+1 Istr. N+2 Istr. N+3 Stadio 2 (LR) Istr. N 1 Istr. N Istr. N+1 Istr. N+2 Istr. N+3 Istr. N+4 Stadio 1 (MI) Istr. N Istr. N+1 Istr. N+2 Istr. N+3 Istr. N+4 Istr. N+5 t 1 t 2 t 3 t 4 t 5 t 6 Tempo Ogni stadio (e.g. AL) esegue la parte di sua competenza di istruzioni successive l una all altra.

Evoluzione: superpipelining Per aumentare la frequenza a cui può funzionare un processore si può aumentare il numero di stadi della pipeline (Superpipeline) idea generale: la frammentazione ulteriore della pipeline in più stadi rende i singoli stadi più elementari e quindi i segnali possono attraversarli più velocemente (meno ritardi di propagazione dovuti alla semplificazione dei circuiti) estremizzazione del principio della pipeline Pentium 4 Prescott: 31 stadi anche il cambio di tecnologia permette fisicamente un aumento della frequenza di funzionamento

Evoluzione: multicore Il miglioramento tecnologico permette di aumentare la densità dei transistor idea: anziché complicare un processore o aumentare la frequenza per ottenere maggiori prestazioni, posso integrarne insieme più d uno in un componente fisico detto package vengono integrati più componenti logici detti core (che quindi sono progettati in modo integrato) che possono eseguire più flussi di elaborazione assolutamente indipendenti a una certa frequenza si può ottenere lo stesso livello di prestazioni di un processore a core singolo con frequenza molto più elevata (quindi che costa, assorbe e scalda di più) non si complica eccessivamente la scheda madre

Architetture multiprocessore Diverse CPU condividono una memoria comune: le CPU debbono coordinarsi per accedere alla memoria; esistono diversi schemi di collegamento tra CPU e memoria (che complicano il progetto della scheda madre, più cara), quello più semplice prevede che ci sia un bus condiviso; se i processori sono veloci il bus diventa un collo di bottiglia; esistono soluzioni che permettono di migliorarne le prestazioni, ma si adattano a sistemi con un numero limitato di CPU (<20). La memoria condivisa rende più semplice il modello di programmazione: si deve parallelizzare l algoritmo, ma si può trascurare la parallelizzazione dei dati. CPU CPU CPU CPU mem bus condiviso

Architetture multicomputer Sistemi composti da tanti calcolatori collegati fra loro ogni calcolatore è dotato di una memoria privata e non c è memoria in comune; comunicazione tra CPU basata su scambio di messaggi; uso di reti di calcolatori (spesso con tecnologie specializzate). Non è efficiente collegare ogni calcolatore a tutti gli altri, quindi vengono usate topologie particolari: griglie a 2/3 dimensioni, alberi e anelli; i messaggi, per andare da fonte a destinazione, spesso devono passare da uno o più calcolatori intermedi o switch. Tempi di trasferimento dei messaggi dell ordine di alcuni microsecondi sono comunque facilmente ottenibili. Sono stati costruiti multicalcolatori con ~10.000000 CPU.

Struttura di un multicomputer mem mem mem mem CPU CPU CPU CPU bus condiviso