Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6



Documenti analoghi
CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.7. Il moltiplicatore binario e il ciclo di base di una CPU

Più processori uguale più velocità?

CPU. Maurizio Palesi

Dispensa di Informatica I.1

Architettura hardware

Architettura del calcolatore

Architettura di un calcolatore

La macchina di Von Neumann. Archite(ura di un calcolatore. L unità di elaborazione (CPU) Sequenza di le(ura. Il bus di sistema

Corso di Informatica Applicata. Lezione 3. Università degli studi di Cassino

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

4 3 4 = 4 x x x 10 0 aaa

Contenuti. Visione macroscopica Hardware Software. 1 Introduzione. 2 Rappresentazione dell informazione. 3 Architettura del calcolatore

Esame di INFORMATICA

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

Lezione 8. La macchina universale

Fasi di creazione di un programma

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Linguaggi di programmazione

Struttura del calcolatore

Informatica - A.A. 2010/11

C. P. U. MEMORIA CENTRALE

La memoria centrale (RAM)

Gestione della memoria centrale

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Parte VIII. Architetture Parallele

CALCOLATORI ELETTRONICI A cura di Luca Orrù

Architettura di un computer

CALCOLO PARALLELO SUPERARE I LIMITI DI CALCOLO. A cura di Tania Caprini

Architettura dei computer

LABORATORIO DI SISTEMI

Introduzione. Il principio di localizzazione... 2 Organizzazioni delle memorie cache... 4 Gestione delle scritture in una cache...

ARCHITETTURA DELL ELABORATORE

Prestazioni CPU Corso di Calcolatori Elettronici A 2007/2008 Sito Web: Prof. G. Quarella prof@quarella.

Lezione 2 OPERAZIONI ARITMETICHE E LOGICHE ARCHITETTURA DI UN ELABORATORE. Lez2 Informatica Sc. Giuridiche Op. aritmetiche/logiche arch.

Architettura hw. La memoria e la cpu

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

VMware. Gestione dello shutdown con UPS MetaSystem

RETI E SISTEMI INFORMATIVI

Architettura dei calcolatori I parte Introduzione, CPU

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Il memory manager. Gestione della memoria centrale

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Calcolatori Elettronici. La Pipeline Criticità sui dati Criticità sul controllo Cenni sull unità di controllo

Calcolo numerico e programmazione Architettura dei calcolatori

INTRODUZIONE ALL' INFORMATICA

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

PROVA INTRACORSO TRACCIA A Pagina 1 di 6

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

Laboratorio di Informatica

Esercizi su. Funzioni

Dispense di Informatica per l ITG Valadier

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

Laboratorio di Informatica di Base Archivi e Basi di Dati

Lezione n.19 Processori RISC e CISC

Origini e caratteristiche dei calcolatori elettronici

All interno del computer si possono individuare 5 componenti principali: SCHEDA MADRE. MICROPROCESSORE che contiene la CPU MEMORIA RAM MEMORIA ROM

SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI

Programmazione in Java e gestione della grafica (I modulo) Lezione 1: Presentazione corso

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

Scopo della lezione. Informatica. Informatica - def. 1. Informatica

Corso di Informatica

Calcolatori Elettronici A a.a. 2008/2009

Excel. A cura di Luigi Labonia. luigi.lab@libero.it

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Dimensione di uno Spazio vettoriale

SISTEMI DI NUMERAZIONE E CODICI

Pronto Esecuzione Attesa Terminazione

STRUTTURE DEI SISTEMI DI CALCOLO

Informatica 3. Informatica 3. LEZIONE 10: Introduzione agli algoritmi e alle strutture dati. Lezione 10 - Modulo 1. Importanza delle strutture dati

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Convertitori numerici in Excel

Informatica di base. Hardware: CPU SCHEDA MADRE. Informatica Hardware di un PC Prof. Corrado Lai

Vari tipi di computer

Organizzazione della memoria

Introduzione all'architettura dei Calcolatori

CALCOLATORI ELETTRONICI A cura di Luca Orrù. Lezione n.6. Unità di controllo microprogrammata

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Ciclo di Istruzione. Ciclo di Istruzione. Controllo. Ciclo di Istruzione (diagramma di flusso) Lezione 5 e 6

ARCHITETTURE MICROPROGRAMMATE. 1. Necessità di un architettura microprogrammata 1. Cos è un architettura microprogrammata? 4

Manuale servizio ScambioDati

INTRODUZIONE ALLE RILEVAZIONI CONTABILI

Lezioni di Matematica 1 - I modulo

Utilizzo delle formule in Excel

Moto circolare uniforme

Struttura del Calcolatore Corso di Abilità Informatiche Laurea in Fisica. prof. Corrado Santoro

L unità di elaborazione pipeline L unità Pipelining

Esempi di algoritmi. Lezione III


SISTEMI INFORMATIVI AZIENDALI

ALLEGATO. del. regolamento delegato della Commissione

Architetture Applicative

Architettura dei calcolatori II parte Memorie

Laboratorio di Informatica

12 - Introduzione alla Programmazione Orientata agli Oggetti (Object Oriented Programming OOP)

Tipi classici di memoria. Obiettivo. Principi di localita. Gerarchia di memoria. Fornire illimitata memoria veloce. Static RAM. Problemi: Dynamic RAM

introduzione I MICROCONTROLLORI

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Architettura (10/9/2003) Pag. 1/6. Cognome e Nome (in stampatello):

- Algoritmi ed esecutori di algoritmi - ALGORITMI MACCHINA DI VON NEUMANN

Transcript:

Appunti di Calcolatori Elettronici Esecuzione di istruzioni in parallelo Introduzione... 1 Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 Introduzione L obbiettivo primario dei progettisti dei calcolatori è stato sempre, fin dagli albori dell informatica, quello di rendere i calcolatori quanto più veloci possibile: a tal proposito, ci si rese conto subito che le accelerazioni ottenibili tramite un miglioramento dell hardware sono comunque limitate; ad esempio, le leggi della fisica dicono che niente può andare più veloce della luce (cioè circa 30 cm per ns nel vuoto e 20 cm in un filo di rame), il che comporta che, per realizzare un calcolatore con un tempo di esecuzione di 1 ns per istruzione, la distanza totale su cui il segnale elettrico può viaggiare, all interno della CPU, verso la memoria e di ritorno dalla memoria, non può essere maggiore di 20 cm; in poche parole, calcolatori molto veloci devono anche essere molto piccoli. Non basta però dire che minori dimensioni equivalgono a maggiori velocità: infatti, i calcolatori veloci producono più calore di quelli lenti, per cui la riduzione delle dimensioni complica i meccanismi di dissipazione del calore. Proprio per questo, alcuni supercalcolatori sono immersi nel freon liquido, usato come liquido di raffreddamento, per riuscire a trasferire all esterno il calore il più velocemente possibile. Sulla scorta di queste ed altre considerazioni relative ai vincoli fisici di realizzazione dei calcolatori, si è pensato che, al posto di costruire un unica CPU ad alta velocità, si potrebbe costruire una macchina con molte ALU più lente (e quindi più economiche e facili da realizzare) o perfino con diverse CPU complete, da collegare e far funzionare in modo da ottenere la stessa potenza di calcolo ma ad un costo minore. Si parla in questo caso genericamente di macchine parallele;

Appunti di Calcolatori Elettronici vogliamo dare dei cenni ad alcune tecniche di realizzazione di questo tipo di macchine. Classificazione di Flynn In primo luogo, le macchine parallele possono essere divise in tre categorie, a seconda di quanti flussi di istruzioni e di dati sono presenti in esse (classificazione di Flynn): macchine SISD (Single Instruction Single Data): flusso di istruzioni unico e flusso di dati unico; macchine SIMD (Single Instruction Multiple Data): flusso di istruzioni unico e flusso di dati multiplo; macchine MIMD (Multiple Instruction Multiple Data): flusso di istruzioni multiplo e flusso di dati multiplo. La macchina tradizionale di Von Neumann è ovviamente di tipo SISD: essa ha un unico flusso di istruzioni (cioè un unico programma) eseguito da una CPU ed ha poi un unica memoria che contiene i dati usati dal programma; la prima istruzione viene presa dalla memoria e poi eseguita, dopodiché si passa al prelievo ed alla esecuzione dell istruzione successiva e così via fino al termine del programma. Si tratta perciò di un modello prettamente sequenziale. Nonostante questo, anche in un simile modello è possibile avere un limitato grado di parallelismo: infatti, si può tentare di prelevare una nuova istruzione e cominciare ad eseguirla prima che quella attualmente in esecuzione sia completata. Ad esempio, il calcolatore CDC 6600 ed alcuni dei suoi successori erano dotati di unità funzionali multiple (ALU specializzate), ognuna delle quali poteva eseguire una sola operazione ad alta velocità. Un esempio di una simile macchina è riportato nella figura seguente: 2

Esecuzione di istruzioni in parallelo Registri + + - * + Una CPU con 5 unità funzionali che possono operare in parallelo Come si vede, abbiamo 5 unità funzionali, tre per le operazioni di somma (molto frequenti) ed una ciascuno per le operazioni di sottrazione e moltiplicazione. L idea di fondo di una simile architettura è che l unità di controllo vada a prendere una istruzione dalla memoria e poi la passi ad una delle unità funzionali per l esecuzione; nel frattempo, l unità di controllo prende l istruzione successiva e la passa ad un altra unità funzionale. Questo procedimento continua fin quando tutte le unità funzionali del tipo richiesto sono occupate oppure quando l operando necessario ad una istruzione è ancora in fase di elaborazione. Questa strategia richiede che il tempo per eseguire una istruzione sia abbastanza maggiore di quello richiesto per prelevarla: per questo motivo, essa viene generalmente usata solo per operazioni in virgola mobile, che sono complesse e lunghe, e non per operazioni su interi, che sono invece semplici e veloci. Macchine a pipeline Una variante della strategia appena descritta consiste nel dividere l esecuzione di ogni istruzione in più parti; ad esempio, nella prossima figura è illustrato quello che accade per una CPU suddivisa in 5 unità di elaborazione, denominate P1, P2, P3, P4 e P5: 3

Appunti di Calcolatori Elettronici P1 P2 P3 P4 P5 prelevamento istruzioni Analizzatore di istruzioni calcolo indirizzi prelevamento dati esecuzione istruzioni P1: P2: P3: P4: P5: 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 1 2 3 4 5 6 1 2 3 4 5 tempo -> Macchina a 5 unità con pipeline (figura in alto). Lo stato di ogni unità di elaborazione (figura in basso) viene illustrato in funzione del tempo Durante il primo intervallo di tempo, l istruzione viene prelevata dalla memoria dall unità P1; nel secondo intervallo di tempo, l istruzione viene passata a P2 per essere analizzata, mentre, in contemporanea, P1 prende una nuova istruzione. In ognuno degli intervalli successivi, una nuova istruzione è prelevata da P1, mentre le altre istruzioni sono passate ad una unità successiva lungo il percorso. Una simile organizzazione è detta macchina a pipeline: se ciascun intervallo di tempo dura x ns, sono necessari 5x ns per eseguire una istruzione; tuttavia, all unità P5 arriva una istruzione completa ogni x ns, ottenendo così un incremento di prestazioni di ben 5 volte (una volta raggiunta la condizione di regime, a partire dal quinto intervallo di tempo). Una cosa importante da notare è che una macchina a pipeline, nonostante impieghi una sorta di parallelismo interno, è ancora una macchina SISD: c è infatti un solo programma ed un solo insieme di dati. Macchine vettoriali e Array Processor A differenze delle macchine SISD, le macchine SIMD operano invece in parallelo su insiemi multipli di dati. Una tipica architettura adatta a questo compito è la cosiddetta macchina vettoriale, schematizzata nella figura seguente: 4

Esecuzione di istruzioni in parallelo A Vettore in input B ALU vettoriale A+B Vettore in output Esempio di ALU vettoriale composta da 8 unità In questo caso, il percorso dei dati a simile a quello delle macchine SISD tradizionali, ad eccezione del fatto che, invece di avere una sola variabile per ogni ingresso della ALU, abbiamo ora un vettore con N input. Ovviamente, la ALU è ora una ALU vettoriale, capace cioè di eseguire delle operazioni ricevendo in ingresso non più due scalari, bensì due vettori, e restituendo a sua volta un vettore. Un approccio alternativo è costituito dal cosiddetto Array Processor, illustrato nella figura seguente: controllo Trasmette istruzioni Processore Griglia di processori/memoria di dimensione 8 8 5

Appunti di Calcolatori Elettronici Si tratta di una vera e propria griglia quadrata di elementi, ognuno dei quali è costituito da un processore e da una memoria. Esiste una singola unità di controllo, che trasmette le istruzioni, le quali sono eseguite da tutti i processori usando la propria memoria (caricata durante la fase di inizializzazione). Una simile architettura è particolarmente adatta per calcoli su matrici. Macchine MIMD La terza categoria di Flynn è costituita dalle macchine MIMD, in cui diverse CPU eseguono diversi programmi, a volte condividendo una parte di memoria comune. La figura seguente mostra ad esempio una macchina MIMD in cui più processori usano una memoria unica, cui accedono tramite un bus: CPU CPU CPU CPU condivisa BUS Multiprocessore di base Il problema di una simile architettura è che, se le CPU sono molte veloci, i conflitti sull uso del bus sono troppi. Una alternativa per aggirare questo problema sarebbe quella di dotata ciascun processore di una quantità di memoria propria, non accessibile agli altri, da affiancare alla memoria condivisa: CPU CPU CPU CPU condivisa BUS Multiprocessore con memorie locali 6

Esecuzione di istruzioni in parallelo La memoria può essere usata per il codice del programma e, in generale, per tutti gli elementi che non devono essere condivisi. Altri processori non usano addirittura un unico bus, ma diversi bus per ridurre ulteriormente il carico. Altri ancora usano la tecnica della memoria cache, in cui tenere le parole della memoria usate più frequentemente. e-mail: sandry@iol.it sito personale: http://users.iol.it/sandry 7