DIREZIONI FUTURE... 2 Introduzione... 2 Tassonomia dei calcolatori secondo Flynn... 2 Calcolatori SIMD... 3 Calcolatori MISD... 5 Calcolatori MIMD...

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "DIREZIONI FUTURE... 2 Introduzione... 2 Tassonomia dei calcolatori secondo Flynn... 2 Calcolatori SIMD... 3 Calcolatori MISD... 5 Calcolatori MIMD..."

Transcript

1 Appunti di Calcolatori Elettronici Capitolo 10 Parallelismo nei calcolatori DIREZIOI FUTURE... 2 Introduzione... 2 Tassonomia dei calcolatori secondo Flynn... 2 Calcolatori SIMD... 3 Calcolatori MISD... 5 Calcolatori MIMD... 5 Terminologia per le macchine MIMD... 6 Architettura MIMD a scambio di messaggi... 7 Architettura MIMD a memoria condivisa... 8 Problema della coerenza delle cache... 9 Prestazioni e problemi delle macchine MIMD Processori per applicazioni speciali: DSP APPUTI VARI SUI SISTEMI PARALLELI Limiti della classificazione di Flynn e nuova classificazione Architetture sincrone Architetture MIMD Paradigmi MIMD Confronto tre architetture seriali, pipelined e parallele Pipelining Parallelismi Valutazione delle prestazioni Strutture di interconnessione Banda passante di un sistema di calcolo Legge di Amdahl applicata ad una macchina con processori Legge di Braunl per architetture SIMD Tempo di comunicazione inter-processor Legge di Amdahl modificata... 25

2 Appunti di Calcolatori Elettronici Capitolo 10 Diireziionii future Introduzione In questo capitolo vogliamo abbandonare la prospettiva sostanzialmente conservativa seguita nei precedenti capitoli, dando invece dei cenni al futuro dell architettura dei calcolatori. In generale, possiamo allora subito dire che gli obbiettivi dei progetti innovativi sono essenzialmente due, alternativi tra loro: riduzione del rapporto costo/prestazioni; raggiungimento di un alta scalabilità ( 1 ) affiancata da un soddisfacente rapporto costo/prestazioni. Abbiamo ampiamente visto che le CPU con parallelismo a livello di istruzioni sfruttano il parallelismo intrinseco di un programma, ossia quello esistente tra le singole istruzioni. Si può però facilmente verificare che il parallelismo di tale tipo è relativamente limitato, salvo applicazioni molto particolari: risulta infatti difficile raggiungere una buona efficienza di uso al di sopra di 8 unità funzionali parallele all interno della singola CPU. A questo, si aggiunge il fatto che esistono applicazioni nelle quali è molto difficile, se non impossibile, individuare parallelismo a livello di istruzione: i sistemi operativi sono un classico esempio a questo proposito. L alternativa emersa da alcuni decenni è quella dei cosiddetti sistemi paralleli, nei quali cioè il parallelismo sfruttato è quello a livello di sequenza di istruzioni o di processo: l architettura, in questi sistemi, è costituita da un certo numero di unità di elaborazione, dotate ognuna di proprie risorse e che interagiscono l'una con l altra in modo opportuno. Il concetto alla base dei sistemi paralleli è quello per cui, eseguendo simultaneamente più passi di uno stesso problema, si può completare il lavoro molto più velocemente. Tassonomia dei calcolatori secondo Flynn Diversi anni fa, Flynn propose un semplice metodo di classificazione dei calcolatori, basato sul parallelismo del flusso di istruzioni e del flusso di dati ad esso connesso: con flusso di istruzioni intendiamo la sequenza di istruzione eseguite da una unità di elaborazione (un processore); con flusso di dati intendiamo invece la sequenza di operandi manipolato dalla suddetta unità di elaborazione. Flynn propose le seguenti 4 categorie (classificazione di Flynn): 1 La scalabilità è sostanzialmente la possibilità di ripartire lo svolgimento di un dato compito tra più unità funzionali, al fine di sveltire lo svolgimento stesso. Autore: Sandro Petrizzelli aggiornamento: 15 luglio

3 Parallelismo nei sistemi di calcolo macchine SISD (Single Instruction Single Data): flusso di istruzioni unico e flusso di dati unico; sono le classiche macchine monoprocessore di tipo sequenziale; macchine SIMD (Single Instruction Multiple Data): esiste un unico flusso di istruzioni, che però viene applicato a più flussi di dati; risono dunque più processori che eseguono simultaneamente la stessa istruzione su dati diversi ( 2 ); macchine MISD (Multiple Instruction Singole Data): esiste un unico flusso di dati, cui però vengono applicati diversi flussi di istruzioni; in pratica, più processori eseguono in maniera autonoma istruzioni diverse sullo stesso flusso di dati; macchine MIMD (Multiple Instruction Multiple Data): in quest ultimo caso, più processori eseguono in maniera autonomia istruzioni diverse su dati diversi. onostante questa classificazione appaia un po grossolana (molte macchine sono infatti un ibrido tra varie categorie) e ormai decisamente superata, essa è indubbiamente semplice e facile da comprendere e, in ogni caso, fornisce una prima approssimazione accettabile della realtà attuale. La macchina tradizionale di Von eumann è ovviamente di tipo SISD: essa ha un unico flusso di istruzioni (cioè un unico programma) eseguito da una sola CPU ed ha poi un unica memoria che contiene i dati su cui opera il flusso di istruzioni; 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. Le altre tre tipologie, invece, fanno tutte riferimento a macchine che si definiscono parallele, dove il parallelismo riguarda appunto il flusso di istruzioni o il flusso di dati o entrambi. elle classi SIMD e MIMD ricade la quasi totalità di macchine parallele realmente costruite. Le macchine MISD, invece, sono sostanzialmente un caso particolare della classe MIMD. Calcolatori SIMD Come anticipato nel precedente paragrafo, una macchina SIMD è caratterizzata dal fatto che il flusso di istruzioni è singolo, ma opera su più flussi di dati. In questo caso, si può pensare ad una sola unità di controllo che acceda ad una sola memoria istruzioni ed invii, ciclo per ciclo, la stessa istruzione da eseguire a un insieme di unità di esecuzione, che accedono invece ognuna a una propria area della memoria dati (o, alternativamente, che sono dotate ognuna di una propria memoria dati opportunamente precaricata) ( 3 ). Architetture di questo tipo possono essere ricondotte nello schema più semplice alla struttura seguente: 2 Vedremo più avanti che macchine di questo tipo sono anche dette calcolatori matriciali o array computers. 3 I processori vettoriali che abbiamo esaminato nel capitolo 7 potrebbero sembrare delle macchine SIMD, ma in realtà non lo sono: infatti, abbiamo visto che le istruzioni vettoriali operano su più dati, usando una sola unità funzionale con un parallelismo di tipo pipeline; quindi, al contrario di quanto avviene nelle macchine SIMD, una singola istruzione vettoriale non attiva molte unità funzionali; invece, una macchina SIMD effettiva potrebbe ad esempio avere 64 dati che vanno simultaneamente a 64 unità ALU per formare 64 somme nello stesso ciclo di clock. aggiornamento: 15 luglio Autore: Sandro Petrizzelli

4 Appunti di Calcolatori Elettronici Capitolo 10 Memoria istruzioni e unità di controllo Unità di elaborazione Unità di elaborazione... Unità di elaborazione Memoria Dati Le varie unità di elaborazione possono naturalmente essere organizzate secondo schemi più complessi ed eventualmente scambiarsi informazioni. In ogni caso, in una struttura di questo tipo, i singoli processori possono anche essere dispositivi molto semplici (al limite, unità aritmetiche dotate di registri di ingresso e di uscita) come anche architetture dedicate a particolari computazioni. La sincronizzazione fra i diversi nodi è rigida, dato che tutti, almeno in linea di principio, devono eseguire l'identica istruzione, con la stessa latenza, sui propri dati. Il vantaggio principale delle macchine SIMD è dunque quello per cui tutte le unità funzionali per l esecuzione parallela sono sincronizzate e rispondono ad una sola istruzione, proveniente da un unico registro PC ( 4 ). Ci sono poi altri vantaggi: in primo luogo, si può ridurre il costo dell unità di controllo affiancandola a decine di unità di esecuzione; in secondo luogo, di recente ci si è resi conto che si può anche adottare una dimensione ridotta della memoria di programma: infatti, le macchine SIMD necessitano di una sola copia del programma da eseguire, al contrario per esempio delle macchine MIMD che richiedono una copia per ogni processore. In questo modo, anche in presenza di un elevato numero di unità funzionali, il costo della memoria di programma risulta minore per le architetture della classe SIMD rispetto alle altre. I calcolatori SIMD, al pari delle macchine vettoriali, presentano istruzioni compatibili sia con la classe SIMD (ovviamente) sia anche con la classe SISD: per esempio, operazioni come il calcolo di diramazioni o di indirizzi non richiedono alcun parallelismo e sono quindi eseguite da un host computer di tipo SISD. Le istruzioni SIMD sono invece trasmesse a tutte le unità di esecuzione, ognuna delle quali è provvista del suo insieme di registri. Come le macchine vettoriali, anche le macchine SIMD hanno istruzioni che disabilitano le singole unità di esecuzione. Al contrario delle macchine vettoriali, invece, l elevato parallelismo delle macchine SIMD dipende strettamente dalle reti di interconnessione, ossia da tutto quanto (hardware e software) viene usato per lo scambio di dati tra i vari elementi processanti. 4 In questo senso, dal punto di vista del programmatore, il comportamento della macchina è molto simile a quello di una classica macchina SISD (monoprocessore). Autore: Sandro Petrizzelli aggiornamento: 15 luglio

5 Parallelismo nei sistemi di calcolo Le architetture SIMD raggiungono le loro massime prestazioni quando le istruzioni vettoriali vengono utilizzate in pieno, ad esempio quando gli array vengono scanditi all interno di cicli FOR. Questo per dire che, per ottenere il massimo parallelismo, occorre una grande quantità di dati, intesa naturalmente come parallelismo dei dati. Il limite principale di una macchina SIMD emerge invece quando essa deve eseguire comandi in cui ogni singola unità di esecuzione deve svolgere operazioni diverse su dati diversi. Il progetto di una macchina SIMD richiede di porre attenzione a due importanti fattori ed al loro rapporto: l efficienza di utilizzo del singolo processore ed il numero di processori. La tendenza attuale delle macchine SIMD sembra privilegiare un elevato grado di parallelismo rispetto all elevato rendimento del singolo processore. Architetture di tipo SIMD sono state ampiamente studiate, in particolare per l'elaborazione di segnale e per quella delle immagini: per esempio, è interessante ricordare che l'estensione MMX dell'architettura Pentium, progettata esplicitamente per elaborazione di immagine, è riconducibile a uno schema SIMD. Calcolatori MISD on è del tutto intuitivo immaginare una macchina MISD, in cui cioè più flussi di istruzioni operano contemporaneamente su un unico flusso di dati, in quanto risulta molto più semplice pensare a flussi multipli ognuno associato ad un proprio flusso di dati (che poi è la definizione di macchine MIMD). Ad ogni modo, due esempi di macchine MISD potrebbero in qualche modo essere le macchine superscalari e le architetture VLIW descritte nel paragrafo 6, che però presentano una differenza non irrilevante con le macchine MISD propriamente dette: hanno un unico registro PC, mentre invece le macchine MISD prevedono un registro PC per ciascun flusso. Calcolatori MIMD Potremmo affermare che le macchine MIMD sono le macchine parallele per eccellenza, dato che presuppongono il parallelismo sia a livello di flusso di istruzioni sia a livello di flusso di dati. In effetti, fin dalle prime realizzazioni di calcolatori, i progettisti si sono sempre sforzati di ottenere macchine di questo tipo, in cui cioè la potenza in generale fosse ottenuta semplicemente connettendo molti calcolatori più piccoli. Con una simile architettura, l utente dispone, in modo ordinato, di tante CPU quante se ne può permettere ed ottiene un rendimento di quantità proporzionata ( 5 ). Le architetture MIMD hanno almeno altri due vantaggi, oltre le prestazioni particolarmente elevate: un rendimento assoluto più alto rispetto al più potente monoprocessore ed anche un più alto rapporto affidabilità/disponibilità, ottenuto proprio sfruttando la ridondanza di processori (se un processore si guasta, ce ne sarà un altro pronto a lavorare per lui). 5 Vedremo comunque tra poco che l aumento di prestazioni non è lineare come l aumento delle CPU utilizzate. aggiornamento: 15 luglio Autore: Sandro Petrizzelli

6 Appunti di Calcolatori Elettronici Capitolo 10 Termiinollogiia per lle macchiine MIIMD Prima di fornire qualche dettaglio maggiore sulle macchine MIMD, risulta opportuno introdurre un po di terminologia relativa a questo tipo di macchine. Una importante suddivisione delle macchine MIMD è relativa alle modalità con cui viene ripartita l informazione : nei processori a memoria condivisa, esiste una zona di memoria cui possono accedere tutti i processori ( 6 ); i processori comunicano attraverso variabili allocate in tale zona di memoria condivisa. Per coordinare i vari processi, sono disponibili delle primitive di sincronizzazione; in alternativa, per la condivisione dei dati si può pensare di mettere in comunicazione i vari processi tramite uno scambio di messaggi. Sulla base di questa suddivisione, Bell ha suggerito l uso delle seguente terminologia: multiprocessore è una macchina MIMD in cui la comunicazione avviene tramite memoria condivisa; multicalcolatore è invece una macchina MIMD in cui la comunicazione avviene solo tramite il passaggio di messaggi espliciti. In effetti, ci sarebbe da precisare una cosa: in presenza di memoria condivisa, la si potrebbe comunque usare per lo scambio di messaggi, per cui un multiprocessore potrebbe essere in grado di eseguire programmi basati invece sullo scambio di messaggi (e quindi destinati ai multicalcolatori); dualmente, un multicalcolatore potrebbe simulare, proprio tramite i messaggi, la presenza di una memoria condivisa, in modo da eseguire programmi che richiedono l uso della memoria condivisa. Ecco allora che la distinzione proposta da Bell è specificamente basata sull hardware a disposizione della macchina e sul modello di esecuzione del programma e non sul software che dovrebbe essere eseguito. Ci sono sostenitori sia del multiprocessore sia del multicalcolatore: i primi mettono in discussione la programmabilità dei multicalcolatori (data la necessità e la difficoltà di progettare le primitive per lo scambio dei messaggi), mentre invece i secondi mettono in discussione la scalabilità dei multiprocessori (data appunto la presenza di un unica memoria condivisa, che potrebbe essere limitante delle prestazioni). Ad ogni modo, analizziamo con maggiore dettaglio le due soluzioni: architetture a scambio di messaggi: o o il parallelismo è fra processi: tipicamente, si alloca un processo su ogni nodo, dove per nodo intendiamo un singolo processore e la sua memoria; i processi comunicano solo scambiandosi messaggi, mediante primitive send (accompagnate dall identificatore del destinatario, da un'etichetta e dal messaggio vero e proprio) e receive (accompagnata da etichetta e messaggio); o i processi si sincronizzano bloccandosi sui messaggi: il processo che ha inviato il messaggio si blocca in attesa della risposta. Inoltre, essi si 6 I multiprocessori dotati di cache coerenti sono tipiche macchine a memoria condivisa. Autore: Sandro Petrizzelli aggiornamento: 15 luglio

7 Parallelismo nei sistemi di calcolo bloccano ponendo delle barriere che non possono essere superate fino a quando lo scambio non è andato a buon fine. architetture a memoria condivisa: o o o sono i cosiddetti threads (cioè sottoprocessi che condividono lo stesso spazio di indirizzamento) ad essere allocati sui diversi nodi (CPU); i threads comunicano attraverso uno spazio di memoria condiviso (mediante normali istruzioni load e store del tipo visto per il DLX); i threads si sincronizzano tra loro, mediante operazioni "atomiche" (non divisibili) sulla memoria o mediante barriere. In una macchina MIMD, in generale, l applicazione da eseguire deve essere innanzitutto partizionata (in processi o in threads), in modo da essere allocata sui diversi nodi, e le diverse unità di programma devono poi essere ordinate nel tempo (schedulazione) in modo da garantire che le dipendenze di dati e di controllo vengano rispettate. Archiitettura MIIMD a scambiio dii messaggii Lo schema generale di una simile architettura (detta anche a memoria distribuita) è il seguente: nodo CPU CPU CPU... Memoria Memoria Memoria Rete di Interconnessione I vari calcolatori (nodi) sono collegati tramite una rete di interconnessione; ogni nodo viene dotato di una interfaccia veloce alla suddetta rete, in modo da implementare in modo efficiente le primitive di send e di riceive, nonché le barriere di cui si è parlato. A parte questo, sotto ogni altro aspetto il sistema è indistinguibile da un normale sistema monoprocessore. In queste architetture, i collegamenti tra le unità di elaborazione sono tali che ognuna di essere abbia il controllo esclusivo di una certa porzione di memoria. Ci sono in proposito vari schemi di connessione: ad anello, a maglia, ad albero binario. Una soluzione particolare è quella che prevede una topologia ad ipercubo: le unità di elaborazione sono collegate tra loro come se si trovassero ai vertici di un cubo multidimensionale. Il vantaggio è che, pur senza realizzare un numero elevato di collegamenti, ogni unità di elaborazione può inviare messaggi ad una qualsiasi altra tramite un percorso comunque breve. aggiornamento: 15 luglio Autore: Sandro Petrizzelli

8 Appunti di Calcolatori Elettronici Capitolo 10 Archiitettura MIIMD a memoriia condiiviisa Lo schema generale di una simile architettura è il seguente: CPU CPU... CPU Rete di Interconnessione Memoria Condivisa I vari processori condividono in questo caso un unico spazio di indirizzamento; le comunicazioni sono implicite, in quanto avvengono mediante letture e scritture in posizioni di memoria condivise. La sincronizzazione avviene ancora mediante la condivisione della memoria e mediante le barriere. All aumentare del numero di processori, la memoria condivisa diviene il collo di bottiglia di tutto il sistema; al contrario, nel caso delle architetture con scambio di messaggi, questo problema non si poneva, ma il collo di bottiglia era comunque nella struttura di interconnessione. Per aggirare il problema del collo di bottiglia sulla memoria, in molti casi questa architettura concettuale viene in realtà implementata con un multiprocessore in cui lo spazio di indirizzamento viene distribuito sulle memorie locali dei vari nodi o in cui comunque ogni nodo è dotato di una cache locale mentre è la RAM ad essere condivisa. Si realizza perciò una architettura del tipo seguente: nodo CPU CPU CPU... Cache Cache Cache Rete di Interconnessione Memoria Condivisa Autore: Sandro Petrizzelli aggiornamento: 15 luglio

9 Parallelismo nei sistemi di calcolo Uno svantaggio di questo sistema si ha quando si decide che ogni unità di elaborazione può accedere a tutte le unità di memoria globali e comuni: servono infatti molti collegamenti (si parla di schema a connessione diretta). Una alternativa sarebbe l uso di un bus lungo il quale le unità di elaborazione inviano richieste ai banchi di memoria, i quali in risposta inviano i dati: tuttavia, sarebbe nuovamente il bus ad essere troppo affollato. Una ulteriore possibilità è la cosiddetta rete a OMEGA: le unità di elaborazione sono connesse ai banchi di memoria tramite una serie di commutatori, ognuno dei quali ha due linee di ingresso e due di uscita; in tal modo, ogni unità di elaborazione può accedere a tutti i banchi di memoria, ma non è necessario avere tante linee di comunicazione come nello schema a connessione diretta, in quanto ci pensano i commutatori ad instaurare il percorso richiesto dal collegamento. E chiaro che il vantaggio è tanto maggiore quanto maggiore è il numero di unità di elaborazione e di banchi di memoria. Al contrario, c è lo svantaggio per cui ogni messaggio deve passare attraverso molti commutatori prima di giungere a destinazione. Problema della coerenza delle cache Una soluzione in cui i nodi sono dotati ciascuna di una propria cache fa nascere un problema particolare: è il cosiddetto problema della coerenza della cache. Ad esempio, un processore potrebbe leggere dati vecchi nella propria cache, mentre quelli nella memoria condivisa sono stati aggiornati da un altro processore; oppure, un processore può leggere dati vecchi nella memoria condivisa invece di quelli aggiornati nella cache di un altro professore. Si può pensare a varie soluzioni per questo problema: la soluzione più banale consiste nell'evitare di portare in cache i dati condivisi; una soluzione più efficiente richiede invece l'introduzione di un protocollo per la coerenza delle cache: tale protocollo deve tener traccia delle varie copie dei dati condivisi e deve informare i nodi (con un aggiornamento o semplicemente invalidando i dati vecchi) quando un nodo compie un operazione di scrittura. A proposito di questa seconda soluzione, si può pensare a due diverse implementazioni effettive: la prima è quella di un protocollo snoopy (cioè curioso ): in pratica, una scrittura viene inviata in broadcast a tutti i nodi, il che presuppone ovviamente che ogni nodo resti in ascolto delle eventuali scritture e stabilisca se deve aggiornare o meno la propria cache; la seconda implementazione è quella dei cosiddetti protocolli directorybased, nei quali una transazione di scrittura viene inviata solamente a quei nodi di cui è noto che possiedono una copia del dato da aggiornare. In questo caso, deve esserci da qualche parte una specie di tabella consultabile da ciascun nodo, in cui siano registrati i nodi che possiedono una copia del dato che si sta per scrivere; così facendo, il nodo che vuole effettuare la scrittura può informare solo i nodi interessati e inviare solo a loro i nuovi dati. aggiornamento: 15 luglio Autore: Sandro Petrizzelli

10 Appunti di Calcolatori Elettronici Capitolo 10 E evidente che la prima soluzione è più semplice, ma comporta un traffico molto più elevato sul bus, data la necessità del broadcast; essa si adatta perciò soprattutto a quelle architetture in cui il collegamento tra i nodi viene effettuato mediante un bus condiviso. Ad ogni modo, ad prescindere dalla soluzione scelta, il nodo può poi decidere se aggiornare la copia invalidata oppure no: ad esempio, se i dati coinvolti non sono più necessari, non è necessario perdere tempo ad aggiornarli. Resta poi insoluta un ultima questione: se aggiornare anche la memoria primaria quando si aggiornano le cache, oppure considerare corretti solo i dati contenuti in queste ultime. Prestaziionii e probllemii delllle macchiine MIIMD Rispetto ad una tradizionale macchina SISD, le macchine MIMD offrono prestazioni decisamente migliori per l implementazione di sistemi time sharing (cioè a condivisione di tempo): a parità di carico di lavoro, in una macchina MIMD si possono infatti eseguire in parallelo più compiti tra loro indipendenti, nonostante il tempo di CPU di ciascun compito rimanga invariato rispetto alle macchine SISD. Il risultato è dunque un maggiore throughput, mentre la latenza dei singoli programmi rimane invariata ( 7 ). Proprio per questo motivo, attualmente le macchine MIMD rappresentano una fetta di mercato significativa, che si aggiudica la maggior parte del settore dei mainframe e in pratica tutto il settore dei supercalcolatori. Ad ogni modo, non bisogna pensare, relativamente alle macchine MIMD, che sia tutto rose e fiori. Infatti, uno dei principali punti deboli per queste macchine è il numero ancora troppo esiguo di applicazioni destinate specificamente a questo tipo di macchine e quindi in grado di sfruttarne le potenzialità: la maggior parte delle applicazioni non sono state scritte o adattate (rispetto alle versioni originali per le macchine SISD) per sfruttare tutti i processori presenti e ridurre così il throughput, il che inficia l opportunità di acquistare questo tipo di macchine. Viene ovviamente da chiedersi il perché di questa carenza di applicazioni: la risposta sta proprio nella difficoltà di scrivere simili applicazioni. Per comprendere a pieno il concetto, facciamo una analogia, confrontando il tempo necessario affinché un dato lavoro venga svolto da un unica persona o da un gruppo di persone: almeno a livello teorico, se il gruppo è formato da persone, il lavoro dovrebbe essere completato in un tempo volte inferiore rispetto a quello impiegato da un singolo individuo (per cui si avrebbe una accelerazione pari idealmente ad ); in realtà, non sarà mai così, in quanto è necessario quanto meno che le varie persone del gruppo comunichino tra loro man mano che svolgono i propri compiti; la difficoltà di tale comunicazione è minima se le persone sono 2 o 3, ma se diventano 1000 o 10000, allora è evidentemente che le cose si complicano non poco. Più avanti nel capitolo faremo una analisi più quantitativa di questo discorso. Un altra difficoltà per la scrittura di applicazioni per macchine MIMD è il grado di conoscenza dell hardware richiesta al programmatore: se quest ultimo deve scrivere una applicazione (in un linguaggio ad alto livello) per una macchina SISD, può tranquillamente disinteressarsi dell hardware della macchina, in quanto sarà poi compito del compilatore ottimizzare il codice macchina in funzione di tale hardware; al contrario, per una macchina multiprocessore, il programmatore scriverà 7 Accade cioè una cosa analoga a quella che riguarda il singolo programma eseguito su una macchina SISD dotata di pipeline: la latenza delle singole istruzioni rimane invariata, ma il CPI viene molto ridotto e quindi l throughput finale è maggiore. Autore: Sandro Petrizzelli aggiornamento: 15 luglio

11 Parallelismo nei sistemi di calcolo programmi tanto più efficienti e scalabili quanto maggiore è la sua conoscenza sia dell hardware sia dell organizzazione della macchina. Tra l altro, quest ultima considerazione rende i programmi paralleli poco portabili, proprio perché nascono specificamente per una macchina e difficilmente si adeguano ad un altra macchina (o quanto meno non riescono a sfruttarne a pieno le potenzialità). L ultima limitazione per la scrittura di applicazioni parallele proviene direttamente dalla legge di Amdahl: infatti, questa legge evidenzia che anche le parti meno importanti di un programma devono essere parallelizzate se si vuole raggiungere il pieno potenziale, in quanto tutte le eventuali migliorie apportate alla macchine e/o al programma forniscono incrementi di prestazioni tanto più pronunciati quanto maggiore è la frazione di tempo in cui possono essere impiegati. Per comprendere bene questo aspetto, possiamo fare un esempio molto semplice: supponiamo di voler eseguire un programma su un macchina dotata di 100 processori e di voler ottenere un incremento di prestazioni equivalente rispetto ad una macchina SISD; ci chiediamo quale porzione della computazione originale può rimanere sequenziale e quale invece debba essere parallelizzata. Ci basta applicare la legge di Amdahl, che riportiamo qui di seguito nella sua espressione riassuntiva: Accelerazione = ( 1- Frazione ) migliorata In questa espressione, il termine Frazione 1 Frazione + Accelerazione migliorata migliorata migliorata indica la frazione di computazione che deve risultare migliorata (ossia, nel nostro caso, la frazione di codice che deve essere parallelizzata), mentre invece il termine Accelerazi one è migliorata il miglioramento di prestazioni ottenibile nel caso ideale in cui tutta la computazione venisse ottimizzata. el nostro caso, quest ultima quantità vale 100, dato che usiamo 100 processori al posto di uno solo, per cui cominciamo a scrivere che 1 Accelerazione = Frazione migliorata ( 1- Frazione migliorata ) Dobbiamo ora inserire l obbiettivo che ci siamo preposti, ossia un miglioramento complessivo delle prestazioni pari a 100: 100 = 1 ( 1- Frazione ) migliorata + Frazione 100 migliorata Questa equazione va risolta nell unica incognita rimasta ed è intuitivo il risultato finale: = 1, il che significa che, per ottenere un incremento lineare con Frazione migliorata 100 processori, TUTTA la computazione originale deve essere parallelizzata. Se per esempio avessimo voluto una accelerazione complessiva pari a 99, sarebbe risultato Frazione migliorata = , ossia solo una parte pari a di computazione originale sarebbe potuta rimanere sequenziale. Visto in un altra prospettiva, quest ultimo calcolo mostra che anche una piccolissima porzione di codice non parallelizzato (0.0001, cioè lo 0.01%) può determinare una riduzione dell accelerazione aggiornamento: 15 luglio Autore: Sandro Petrizzelli

12 Appunti di Calcolatori Elettronici Capitolo 10 complessiva rispetto a quella ideale desiderata. Anche di questo aspetto ci occuperemo comunque in seguito nel capitolo. Processori per applicazioni speciali: DSP Quanto detto nei paragrafi precedenti illustra dunque la grande attenzione che i progettisti devono rivolgere e rivolgono effettivamente al parallelismo ottenibile nei calcolatori. Un'altra questione ampiamente approfondita da progettisti è quella dei calcolatori per applicazioni speciali: grazie all ausilio di sempre più sofisticati programmi di CAD (Computer Aided Design) e all incremento della capacità dei singoli chip, si è infatti presentata l opportunità di produrre, rapidamente ed a prezzi ridotti, circuiti volti a risolvere in maniera efficiente compiti particolari. Esempi classici sono riscontrabili nei dispositivi per il riconoscimento vocale in tempo reale e per l elaborazione di immagini. I dispositivi per uso speciale (detti spesso coprocessori) agiscono generalmente in collaborazione con la CPU. Uno dei filoni attualmente più diffusi è quello dei dispositivi per l elaborazione dei segnali digitali (DSP, Digital Signal Processing): questi dispositivi non rispondono ai modelli di calcolo tradizionali, ma sembrano piuttosto macchine microprogrammate orizzontali ( 8 ) o al più macchine VLIW ( 9 ). Essi tendono a risolvere problemi in tempo reale partendo essenzialmente da un flusso di dati (in questo caso bit) di tipo continuo. 8 e abbiamo parlato nel capitolo 5: sono macchine in cui si predilige l uso di poche microistruzioni ma di grande lunghezza al posto di molte microistruzioni di piccola lunghezza. 9 e abbiamo parlato nel capitolo 6: sono macchine in cui una singola istruzione corrisponde all esecuzione di più operazioni. Autore: Sandro Petrizzelli aggiornamento: 15 luglio

13 Parallelismo nei sistemi di calcolo Appuntii varii suii siistemii parallllellii Limiti della classificazione di Flynn e nuova classificazione La classificazione di Flynn (che suddivide le architetture dei calcolatori in SISD, SIMD, MISD e MIMD), per quanto molto semplice, appare oggi insufficiente per classificare i calcolatori presenti sul mercato. Ad esempio, i cosiddetti processori vettoriali in pipeline possono essere considerati come macchine parallele, ma difficilmente li si può classificare secondo Flynn: infatti, non sono macchine di tipo SIMD in quanto non hanno più processori che eseguono la stessa istruzione, né possono essere viste come macchine MIMD in quanto non sono asincrone. Una classificazione senz altro più attuabile, al giorno d oggi, è quella che individua le seguenti categorie: architetture sincrone: o processori vettoriali in pipeline; o processori SIMD del tipo processor array; o processori SIMD del tipo associative memory; o processori sistolici; architetture MIMD: o architetture a memoria distribuita; o architetture a memoria condivisa; paradigmi MIMD: o calcolatori ibridi MIMD/SIMD; o calcolatori data flow; o calcolatori di riduzione; o calcolatori wave front. Archiitetture siincrone I processori vettoriali in pipeline (come il DLXV) sono caratterizzati dall avere più unità funzionali in pipeline, che effettuano in parallelo operazioni aritmetiche e logiche sia su vettori sia su scalari. Il parallelismo si manifesta nella sovrapposizione di fasi diverse di una stessa istruzione su dati diversi, come in una catena di montaggio in cui vengono lavorati simultaneamente più pezzi. In strutture di questo tipo, il tempo di latenza è definito come il tempo che intercorre tra l inizio dell elaborazione e l apparire del primo risultato. Una struttura con elevato tempo di latenza può risultare comunque efficiente solo quando vi è un gran numero di calcoli identici da eseguire, in quanto in questo modo nessuna unità funzionale risulta inattiva. aggiornamento: 15 luglio Autore: Sandro Petrizzelli

14 Appunti di Calcolatori Elettronici Capitolo 10 I processori SIMD di tipo processor array (detti anche processori matriciali) forniscono invece ottime prestazioni solo per quei programmi che contengono una alta percentuale di istruzioni vettoriali. Tipiche applicazioni per queste macchine sono quelle per l elaborazione delle immagini: la singola immagine è organizzata in forma matriciale e può essere sia sistemata in una memoria comune sia partizionato su più memorie locali, a seconda del tipo di elaborazione da compiere. Da notare che una differenza fondamentale tra i processori vettoriali e i processori matriciali è che questi ultimi sono dotati di un dispositivo di comunicazione dei dati che invece i processori vettoriali non hanno. Una variante dei processori matriciali consiste nell usare un gran numero di processori single-bit. I processori SIMD di tipo associative memory (detti anche semplicemente processori associativi) sono caratterizzati dal fatto che l insieme delle memorie dati è realizzato tramite una memoria associativa: ogni parola di tale memoria è associata a speciali registri ed alla logica di confronto che compone un processore: Memoria di programma Controllore di Programma Array Controller ALU e registri speciali Memoria associativa Infine, i sistemi di tipo sistolico sono stati pensati per sfruttare la tecnologia VLSI ed il fatto che le interconnessioni semplici sono quelle che consentono implementazioni più economiche, alta densità di integrazione ed alte prestazioni; tali sistemi inglobano contemporaneamente i concetti di pipeline, parallelismo e regolarità nelle interconnessioni. In generale, un sistema sistolico è una rete di processori, collegati tramite interconnessioni dedicate, secondo topologie regolari. Ciascun processore autonomamente calcola dati e li trasmette attraverso le proprie interconnessioni. Il pulsare regolare dei processori conduce ad un flusso di dati regolare e continuo attraverso l intero sistema. Questo tipo di architetture sono molto usate nell elaborazione dei segnali, dove infatti l uscita deve essere cadenzata così come è cadenzato l ingresso dei dati. Archiitetture MIIMD Come più volte detto in precedenza, in questo caso il programmatore può controllare più flussi di istruzioni e più flussi di dati. Le due alternative sono tra architetture a memoria condivisa ed architetture a memoria distribuita e sono state già esaminate in precedenza. Autore: Sandro Petrizzelli aggiornamento: 15 luglio

15 Parallelismo nei sistemi di calcolo Paradiigmii MIIMD Le macchine appartenenti a questa classe sono tutte basate sui principi MIMD di operazioni asincrone e manipolazione concorrente di più istruzioni e più flussi di dati. Si tratta in genere di macchine ancora sperimentali. I processori ibridi MIMD/SIMD sono architetture che consentono a parti selezionate di una architettura MIMD di essere controllate in maniera SIMD. In queste macchine, è fondamentale avere dei collegamenti a larghissima banda, in modo che dati ed istruzioni possano spostarsi rapidamente tra le unità di elaborazione, rendendo minimi i temi morti: in genere, le unità di elaborazione sono poche e molto veloci e sono collegate da fibre ottiche. Un processore ibrido a flussi di dati (o data flow) prende le basi da una rappresentazione grafica particolare, introdotta da Dennis: in pratica, si utilizza un grafo in cui i nodi corrispondono a operatori e gli archi corrispondono a canali di comunicazione per trasmettere valori da un operatore all altro; la particolarità è che le operazioni non vengono eseguite dai nodi secondo una sequenza definita dal programma: ogni nodo esegue la propria operazione solo nel momento in cui possiede tutti i dati necessari, dopodiché trasmette il risultato al nodo successivo. Questo schema computazionale è molto simile ad una corsa a staffetta: ogni atleta (nodo) parte non appena ha ricevuto il testimone (dato) dall atleta che ha percorso il tratto precedente di gara. aturalmente, proprio per il fatto che ogni nodo esegue il compito assegnatogli solo quando possiede tutti i dati necessari, non c è il pericolo di eseguire operazioni prematuramente, così come, ad esempio, non ci può essere il tentativo di molte unità di elaborazione di leggere simultaneamente una stessa locazione di memoria. Il vantaggio finale delle architetture a flusso di dati è che si evitano i casi di strozzatura delle architetture parallele e, allo stesso tempo, si offre un nuovo modo per sfruttare il parallelismo implicito nei programmi. Per concludere con questa panoramica, nei primi anni 80 Kung sviluppò i concetti del wave front array: il principio di fondo è che, quando un processore ha eseguito i suoi calcoli ed è pronto a passare i dati al successore, lo informa di ciò ed aspetta che questi gli dia il via per il trasferimento. Confronto tre architetture seriali, pipelined e parallele Consideriamo l esecuzione di tre processi (A, B e C) su un calcolatore; supponiamo che ogni processo richieda un certo numero di variabili di ingresso (ad esempio due, denominate x ed y) e produca un certo numero di variabili in uscita (ad esempio una sola, denominata z). Supponiamo inoltre di poter dividere ogni singolo processo in 4 sottoprocessi (S1, S2, S3 e S4). ella prossima figura vengono confrontate le modalità di esecuzione dei vari sottoprocessi in tre architetture: architettura seriale classica (SISD); architettura seriale con pipeline (MISD); architettura parallela con tre processori (MIMD). aggiornamento: 15 luglio Autore: Sandro Petrizzelli

16 Appunti di Calcolatori Elettronici Capitolo 10 x A y A S1 S2 S3 S4 z A x B y B S1 S2 S3 S4 z B x C y C S1 S2 S3 S4 z C Esecuzione seriale x A y A S1 S2 S3 S4 z A x B y B S1 S2 S3 S4 z B x C y C S1 S2 S3 S4 z C Esecuzione pipelined x A y A S1 S2 S3 S4 z A x B y B S1 S2 S3 S4 z B x C y C S1 S2 S3 S4 z C Esecuzione parallela E ovvio che, nell esecuzione pipelined, si suppone che non ci siano ostacoli (quelli che nel capitolo 6 abbiamo chiamato conflitti) all esecuzione contemporanea di più sottoprocessi. Analogamente, nell esecuzione parallela, si suppone che siano disponibili almeno tre processori, uno per ciascun processo, e che i tre processi siano del tutto indipendenti tra loro, proprio per consentire la contemporaneità della loro esecuzione. Sull esecuzione seriale dei programmi, abbiamo ben poco da dire. Al contrario, i prossimi due paragrafi forniscono qualche dettaglio in più circa il pipelining e l esecuzione parallela. Piipelliiniing Il concetto di pipelining può essere applicato fondamentalmente a tre livelli distinti: pipeline a livello di processore (processor pipeline); pipeline a livello di istruzioni (instruction pipeline); pipeline a livello di operazioni aritmetiche (arithmetic pipeline). Autore: Sandro Petrizzelli aggiornamento: 15 luglio

17 Parallelismo nei sistemi di calcolo La seconda e la terza tipologia di pipelining sono quelle presenti nei processori vettoriali (specialmente il pipeline aritmetico). Il pipeline a livello di processori corrisponde invece ad usare una catena di processori funzionanti in pipeline. In ogni caso, il pipelining è un esempio di sistema MISD, in cui cioè un insieme multiplo di istruzioni opera contemporaneamente sullo stesso insieme di dati. Le figure seguenti schematizzano le tre possibilità: CPU MEM CPU MEM CPU MEM Processors Pipeline. Si suppone che ciascuna memoria abbia una doppia porta di accesso. Si suppone inoltre che il funzionamento sia sincrono, perché solo in questo caso si parla rigorosamente di pipeline. Potrebbe capitare che un processore sia più veloce di altri: si potrebbe allora pensare di farlo lavorare su quantità di dati maggiori rispetto agli altri, ad esempio operando procedure di sovracampionamento dei dati in ingresso MEM FETCH istr i DECOD istr i-1 FETCH istr i-2 EXE istr i-3 ALU MEM Instructions Pipeline MEM R 1 ALU 1 R 2 ALU 2 R n ALU n MEM Arithmetic Pipeline Soffermiamoci sull ultima figura, in cui abbiamo schematizzato il pipelining a livello di operazioni in virgola mobile (ossia quindi il pipelining dello stadio EX, con riferimento alla terminologia usata nel capitolo 6): con R 1, R 1,,R n-1 abbiamo indicato i risultati parziali delle operazioni in virgola mobile, mentre ovviamente R n è il risultato finale. el caso di pipeline vettoriale, quando il primo scalare esce da R1, entra lo scalare successivo, in modo che, in condizioni di regime si abbia uno nuovo scalare per ogni ciclo di clock. Segnaliamo infine che il concetto di pipelining, almeno in generale, è applicabile a qualsiasi livello: intero sistema, singolo processo, singola istruzione, singola operazione, singolo stadio di esecuzione di una operazione (livello più basso). A prescindere dal livello cui venga applicato, il pipelining è tale per cui, all aumentare del numero di stadi della pipeline, aumentino anche le probabilità di conflitti: abbiamo ad esempio visto, nel capitolo 6, che quanto maggiore è il numero di stadi della pipeline di esecuzione delle istruzioni nel DLX, tanto maggiore è la probabilità di avere conflitti di dati. aggiornamento: 15 luglio Autore: Sandro Petrizzelli

18 Appunti di Calcolatori Elettronici Capitolo 10 Parallllelliismii In un calcolatore, il parallelismo si può ottenere in vari modi: parallelismo temporale pipeline (vector processor): abbiamo una rete di unità di esecuzione, con una sola unità di controllo; parallelismo spaziale sincrono array processor: abbiamo tanti processori (omogenei tra loro) che scambiano dati in modo sincrono, nonostante eseguano istruzioni diverse; i processori sono disposti secondo una matrice, in modo che ciascuno possa comunicare con quelli che ha attorno (che generalmente sono 4 se la matrice è quadrata, ma possono anche essere di più o di meno). Proprio per questa particolare disposizione si parla di parallelismo spaziale ; parallelismo spaziale asincrono multiprocessori: abbiamo una rete di processori autonomi ed eterogenei; essi si scambiano informazioni secondo protocolli del tipo domanda risposta. Rispetto al caso precedente, la disposizione può anche essere la stessa, ma in generale manca la sincronizzazione tra i processori. Ci sono del resto casi in cui i processori sono comunque sincronizzati, come avviene ad esempio nelle macchine SIMD. Possiamo inoltre fare la seguente classificazione: elaborazione concorrente (concurrent processing): si ha quando un sistema di calcolo esegue il suo carico elaborativo costituito da più processi indipendenti (ed eventualmente eterogenei tra di loro), eseguibili in tempi successivi ed eventualmente sotto il controllo di un unica unità di controllo. In questo caso, dunque, i vari task (o compiti o processi) concorrono per la produzione del risultato finale nonché per l uso dell unica unità di controllo; elaborazione distribuita: si ha quando un sistema di calcolo esegue il suo carico elaborativo costituito da un insieme di processi (concorrenti nell esecuzione del codice) eseguibili contemporaneamente su diverse unità di elaborazione (PU, Processing Unit); esiste ovviamente una unità di elaborazione che potremmo definire master e che ha il compito di ripartire il carico di lavoro tra i vari nodi del sistema; elaborazione parallela: si ha quando il carico elaborativo del sistema di calcolo è costituito da più parti (dette unità atomiche ( 10 ) o moduli) eseguibili nello stesso tempo su differenti unità di calcolo (fondamentalmente delle ALU), che sono in grado di scambiarsi dati d utente e dati di controllo. Questo tipo di elaborazione presuppone dunque che una applicazione venga decomposta in più moduli, omogenei tra loro, che interagiscano tra loro mediante opportuni meccanismi di comunicazione e sincronizzazione e che possano essere eseguiti in concorrenza come processi paralleli: si parla in questo caso di programmazione concorrente (più processi su più processori) da non confondere con la multiprogrammazione (più processi contemporanei su un solo processore). 10 Cioè non ulteriormente divisibili Autore: Sandro Petrizzelli aggiornamento: 15 luglio

19 Parallelismo nei sistemi di calcolo I processori con pipeline (MISD) e gli array processor (SIMD) effettuano l elaborazione parallela, mentre invece i multiprocessori (MIMD) eseguono l elaborazione concorrente ( 11 ). Per poter effettuare il calcolo parallelo, è necessario che l insieme dei processi locali che operano concorrentemente possano scambiarsi tra loro dei dati medianti appositi canali di comunicazione logici; questi ultimi non devono necessariamente essere fisici. Lo scopo del calcolo parallelo è quello di migliorare le prestazioni semplicemente ripartendo le attività su un numero crescente di nodi della rete (definizione di scalabilità). Occorre dunque avere una architettura che consenta lo svolgimento in parallelo del maggior numero di operazioni, allo scopo di ridurre il tempo totale di elaborazione. Il parallelismo può essere di quattro tipi: 1. parallelismo a livello di fasi di esecuzione di singole istruzioni (pipeline); 2. parallelismo a livello di accessi gerarchici alla memoria (shared memory); 3. parallelismo nell esecuzione di una singola istruzione su strutture dati (processori vettoriali); 4. istruzioni multiple interagenti (ci sono cioè più istruzioni eseguite contemporaneamente ed in grado anche di interagire tra loro). Le prime due tipologie di parallelismo non alterano la struttura dei programmi, mentre invece le altre due richiedono espressamente che vengano isolate le operazioni da eseguire in parallelo. Valutazione delle prestazioni Possiamo subito distinguere due casi: componenti di calcolo: in questo caso, dobbiamo valutare le prestazioni di picco di uno specifico componente, fornendo le sue caratteristiche di targa ( 12 ), ossia caratteristiche che non siano degradate dall uso di periferiche o di memorie o di altro; sistema di calcolo: in questo caso, dobbiamo valutare la risposta di un software complesso (inteso come composizione di software applicativo e software di configurazione) eseguito su un determinato hardware. Fondamentalmente, l analisi ed il progetto di un sistema di calcolo dotato di più processori presuppongono che si valuti l aumento della capacità di calcolo ottenibile aumentando il numero di processori e lasciando invariata la tecnologia adottata. I parametri di prestazione cui prestare attenzione sono i seguenti: 11 In quest ultima affermazione si tenga conto che ciascun processore di una macchina MIMD può anche eseguire più processi: di conseguenza, l eventuale elaborazione concorrente avviene quando, sul sistema MIMD nel suo complesso, ci sono più processori che lavorano per arrivare ad un risultato unico, anche se ciò non esclude che gli stessi processori si stiano dedicando anche ad altro. Del resto, se non fosse così, se cioè o gni processore si potesse dedicare solo ad un processo, una macchina MIMD con processori potrebbe eseguire solo processi. 12 Le attuali architetture di microprocessori tendono a fornire elevate prestazioni su piccoli programmi benchmark, facendo uso di registri, memorie cache, ecc. aggiornamento: 15 luglio Autore: Sandro Petrizzelli

20 Appunti di Calcolatori Elettronici Capitolo 10 tempi di elaborazione, sia assoluti sia relativi (cioè confrontati rispetto al clock oppure rispetto ad altre macchine); efficienza computazionale (riferita cioè all impiego delle risorse di calcolo); accelerazione, ossia guadagno di velocità rispetto al sistema monoprocessore (con uguale tecnologia): per esempio, se la scalabilità è massima, l uso di processori dovrebbe idealmente garantire una accelerazione pari proprio ad ; quantità di memoria locale necessaria (ad esempio, deve essere sufficiente per non dover spezzare in più parti un unico codice sequenziale); rapporto costo/prestazioni. Gli obbiettivi cui bisogna mirare sono i seguenti: massimo parallelismo del codice eseguibile; massimo bilanciamento, tra le varie unità di elaborazione, del carico computazionale; minima attività di comunicazione tra i vari nodi (unità di elaborazione) del sistema di calcolo; ottimizzazione della quantità di memoria a disposizione del singolo nodo; ottimizzazione della potenza di calcolo di ciascun nodo. Strutture di interconnessione Si è detto più volte che, in un sistema dotato di più unità di elaborazione (sistema parallelo), devono essere presenti delle adeguate strutture di interconnessione per lo scambio di informazioni. Si è verificato che proprio tali strutture sono spesso i veri colli di bottiglia per un sistema parallelo ( 13 ), in quanto introducono delle forti limitazioni sul numero di processori collegabili e possono essere oggetto di contesa da parte di più processori. Un concetto fondamentale, per le strutture di interconnessione, è la cosiddetta banda passante: è la portata (espressa in bit per secondo, bps) della rete di interconnessione tra i vari processori nonché tra i processori ed il mondo esterno. Banda passante di un sistema di calcolo Consideriamo il caso semplice di un sistema monoprocessore con h processi da eseguire: indicando con b la banda passante del processore, la banda passante del sistema (cioè il numero di eventi o processi da eseguire) risulta pari a (1) B h = b ( 1 rt(h) ) K In questa espressione, rt(h) è la frazione di carico computazionale spesa per l attività di routing, ossia per l instradamento dei dati nel rispetto della topologia 13 Qualcosa di analogo avviene per il bus nei sistemi a singolo processore del tipo Von eumann Autore: Sandro Petrizzelli aggiornamento: 15 luglio

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico)

CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico) CLASSIFICAZIONE DEI SISTEMI OPERATIVI (in ordine cronologico) - Dedicati Quelli dei primi sistemi operativi. La macchina viene utilizzata da un utente per volta che può eseguire un solo programma per volta.

Dettagli

Valutazione delle prestazioni

Valutazione delle prestazioni Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Valutazione delle prestazioni Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di

Dettagli

Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione

Valutazione delle prestazioni. Valutazione delle prestazioni. Tempo di risposta e throughput. Prestazioni e tempo di esecuzione Valutazione delle prestazioni Valutazione delle prestazioni Architetture dei Calcolatori (lettere A-I) Misura/valutazione di un insieme di parametri quantitativi per Quantificare le caratteristiche di

Dettagli

Sistemi a processori multipli

Sistemi a processori multipli Sistemi a processori multipli Sommario Classificazione e concetti di base Sistemi multi-processore Sistemi multi-computer (cluster) Sistemi distribuiti Obiettivo comune Risolvere problemi di dimensioni

Dettagli

Classificazione delle Architetture Parallele

Classificazione delle Architetture Parallele Università degli Studi di Roma Tor Vergata Facoltà di Ingegneria Classificazione delle Architetture Parallele Corso di Sistemi Distribuiti Valeria Cardellini Anno accademico 2009/10 Architetture parallele

Dettagli

I formati delle istruzioni

I formati delle istruzioni Appunti di Calcolatori Elettronici Le istruzioni I formati delle istruzioni... 1 Criteri generali di progettazione dei formati delle istruzioni... 2 Cenni all indirizzamento... 4 Indirizzamento immediato...

Dettagli

Architettura hardware

Architettura hardware Architettura hardware la parte che si può prendere a calci Architettura dell elaboratore Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

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

Il calcolatore. È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica Il calcolatore È un sistema complesso costituito da un numero elevato di componenti. è strutturato in forma gerarchica ogni livello di descrizione è caratterizzato da una struttura rappresentante l organizzazione

Dettagli

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

La CPU e la Memoria. Sistemi e Tecnologie Informatiche 1. Struttura del computer. Sistemi e Tecnologie Informatiche 2 La CPU e la Memoria Sistemi e Tecnologie Informatiche 1 Struttura del computer Sistemi e Tecnologie Informatiche 2 1 I registri La memoria contiene sia i dati che le istruzioni Il contenuto dei registri

Dettagli

Come aumentare le prestazioni Cenni alle architetture avanzate

Come aumentare le prestazioni Cenni alle architetture avanzate Politecnico di Milano Come aumentare le prestazioni Cenni alle architetture avanzate Mariagiovanna Sami Richiamo: CPI CPI = (cicli di clock della CPU richiesti dall esecuzione di un programma)/ numero

Dettagli

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

Il Processore. Informatica di Base -- R.Gaeta 27 Il Processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Componenti principali

Componenti principali Componenti e connessioni Capitolo 3 Componenti principali n CPU (Unità Centrale di Elaborazione) n Memoria n Sistemi di I/O n Connessioni tra loro Architettura di Von Neumann n Dati e instruzioni in memoria

Dettagli

Indirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect)

Indirettezza. Fetch/Execute. Fetch/Execute. Introduzione della Indirettezza (indirect) Ciclo esecutivo delle istruzioni: Fetch/Execute Lo avete visto nel corso di Introduzione alle Architetture degli Elaboratori Stallings, Capitolo 3 Ne vediamo una versione revisionata Indirettezza Per recuperare

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Università degli Studi di Padova Scuola di Scienze Corso di Laurea in Informatica docente: Alessandro Sperduti Informazioni Generali Lucidi ed esercizi disponibili in formato

Dettagli

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

Componenti principali. Programma cablato. Architettura di Von Neumann. Programma cablato. Cos e un programma? Componenti e connessioni Componenti principali Componenti e connessioni Capitolo 3 CPU (Unita Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro 1 2 Architettura di Von Neumann Dati e instruzioni in memoria

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Università degli Studi di Padova Facoltà di Scienze MM.FF.NN. Corso di Laurea in Informatica docente: Alessandro Sperduti Informazioni Generali Lucidi ed esercizi disponibili

Dettagli

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

ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! ARCHITETTURA DI UN ELABORATORE! Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).! MACCHINA DI VON NEUMANN! UNITÀ FUNZIONALI fondamentali! Processore

Dettagli

Il processore. Istituzionii di Informatica -- Rossano Gaeta

Il processore. Istituzionii di Informatica -- Rossano Gaeta Il processore Il processore (detto anche CPU, ovvero, Central Processing Unit) è la componente dell unità centrale che fornisce la capacità di elaborazione delle informazioni contenute nella memoria principale

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Architettura degli Elaboratori Università degli Studi di Padova Scuola di Scienze Corso di Laurea in Informatica docenti: Silvia Crafa, Nicolò Navarin (lab), Alessandro Sperduti Docenti Silvia Crafa Nicolò

Dettagli

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo 31 Luglio - 4 Agosto 2017

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo 31 Luglio - 4 Agosto 2017 Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo 31 Luglio - 4 Agosto 2017 www.u4learn.it Alessandro Bruno Introduzione al calcolo parallelo Approcci per il calcolo parallelo Programmazione

Dettagli

Componenti e connessioni. Capitolo 3

Componenti e connessioni. Capitolo 3 Componenti e connessioni Capitolo 3 Componenti principali CPU (Unità Centrale di Elaborazione) Memoria Sistemi di I/O Connessioni tra loro Architettura di Von Neumann Dati e instruzioni in memoria (lettura

Dettagli

Introduzione al Many/Multi-core Computing

Introduzione al Many/Multi-core Computing Introduzione al Many/Multi-core Computing Sistemi Operativi e reti 6 giugno 2011 Parte I Architettura Classificazione fra architetture Flynn s taxonomy SISD Single instruction on Single Data- (es. architetture

Dettagli

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Programma del corso Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Evoluzione dei sistemi informatici Cos è una rete? Insieme di

Dettagli

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli

Dettagli

Esame di INFORMATICA Lezione 4

Esame di INFORMATICA Lezione 4 Università di L Aquila Facoltà di Biotecnologie Esame di INFORMATICA Lezione 4 MACCHINA DI VON NEUMANN Il sottosistema di memorizzazione (memoria) contiene dati + istruzioni, inseriti inizialmente tramite

Dettagli

Architetture della memoria

Architetture della memoria Architetture della memoria Un elemento determinante per disegnare una applicazione parallela e' l architettura della memoria della macchina che abbiamo a disposizione. Rispetto all architettura della memoria

Dettagli

Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo. Daniele Loiacono

Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo. Daniele Loiacono Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo Riferimenti q Questo materiale deriva dalle slide del prof. Lanzi per il corso di Informatica B, A.A. 2009/2010 q Il materiale presente in

Dettagli

Lezione 15. L elaboratore Elettronico

Lezione 15. L elaboratore Elettronico Lezione 15 Architettura di un calcolatore L elaboratore Elettronico Un elaboratore elettronico è una macchina elettronica in grado di elaborare dati secondo le specifiche fornite da un algoritmo Internamente

Dettagli

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

Architettura dei Calcolatori. Macchina di von Neumann /2. Macchina di von Neumann /1. Architettura dei Calcolatori rchitettura dei Calcolatori Giuseppe Pozzi Impianti di Elaborazione Facoltà di Ingegneria dell'informazione Politecnico di Milano giuseppe.pozzi@polimi.it - versione del 20 settembre 2002 - rchitettura

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Cos'è un calcolatore? Architettura dei calcolatori Esecutore automatico di algoritmi Macchina universale Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura

Dettagli

I sistemi paralleli: architetture multiprocessore.

I sistemi paralleli: architetture multiprocessore. I sistemi paralleli: architetture multiprocessore. Le CPU con parallelismo a livello di istruzioni espongono il parallelismo intrinseco di un programma con una granularità molto fine - quella, appunto,

Dettagli

La memoria principale

La memoria principale La memoria principale DRAM (Dynamic RAM) il contenuto viene memorizzato per pochissimo tempo per cui deve essere aggiornato centinaia di volte al secondo (FPM, EDO, SDRAM, RDRAM) SRAM (Static RAM) veloce

Dettagli

Unità di apprendimento 6. Dal problema al programma

Unità di apprendimento 6. Dal problema al programma Unità di apprendimento 6 Dal problema al programma Unità di apprendimento 6 Lezione 1 Conosciamo gli algoritmi e i linguaggi In questa lezione impareremo: cos è un problema come affrontarlo come descrivere

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Caratteristiche principali dell architettura del processore MIPS Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini E un architettura RISC

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici Valutazione delle Prestazioni Francesco Lo Presti Rielaborate da Salvatore Tucci Valutazione delle Prestazioni q Misura/valutazione di un insieme di parametri quantitativi per caratterizzare

Dettagli

Corso di Fondamenti di Informatica Elementi di Architettura

Corso di Fondamenti di Informatica Elementi di Architettura di Cassino e del Lazio Meridionale Corso di Informatica Elementi di Architettura Anno Accademico 2016/2017 Francesco Tortorella Modello di von Neumann Bus di sistema CPU Memoria Centrale Interfaccia Periferica

Dettagli

Criteri di caratterizzazione di una memoria

Criteri di caratterizzazione di una memoria La memoria Supporto alla CPU: deve fornire alla CPU dati e istruzioni il più rapidamente possibile; Archivio: deve consentire di archiviare dati e programmi garantendone la conservazione e la reperibilità

Dettagli

Come aumentare le prestazioni Cenni alle architetture parallele

Come aumentare le prestazioni Cenni alle architetture parallele Politecnico di Milano Come aumentare le prestazioni Cenni alle architetture parallele Mariagiovanna Sami La necessità di architetture con prestazioni più elevate Per particolari applicazioni (alcune di

Dettagli

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale

Programmazione A.A Architettura dei Calcolatori. ( Lezione V ) Componenti hardware e loro schema funzionale Programmazione A.A. 2002-03 I Architettura dei Calcolatori ( Lezione V ) Componenti hardware e loro schema funzionale Prof. Giovanni Gallo Dr. Gianluca Cincotti Dipartimento di Matematica e Informatica

Dettagli

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati

TEORIA DEI SISTEMI OPERATIVI. Sistemi monoprogrammatie multiprogrammati TEORIA DEI SISTEMI OPERATIVI Sistemi monoprogrammatie multiprogrammati 1 STRUTTURA DEL SISTEMA OPERATIVO UTENTE La struttura di un sistema operativo è di tipo gerarchico: i programmi che lo compongono

Dettagli

Architettura di von Neumann

Architettura di von Neumann Fondamenti di Informatica per la Sicurezza a.a. 2008/09 Architettura di von Neumann Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università

Dettagli

Architettura di von Neumann

Architettura di von Neumann Fondamenti di Informatica per la Sicurezza a.a. 2007/08 Architettura di von Neumann Stefano Ferrari UNIVERSITÀ DEGLI STUDI DI MILANO DIPARTIMENTO DI TECNOLOGIE DELL INFORMAZIONE Stefano Ferrari Università

Dettagli

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori

Programma del corso. Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Programma del corso Introduzione Rappresentazione delle Informazioni Calcolo proposizionale Architettura del calcolatore Reti di calcolatori Cos è un Calcolatore? Un computer (calcolatore) è una macchina

Dettagli

Prestazioni 1. Prestazioni 2. Prestazioni 3

Prestazioni 1. Prestazioni 2. Prestazioni 3 Valutazione delle Prestazioni Architetture dei Calcolatori Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare le prestazioni

Dettagli

Parte VIII. Architetture Parallele

Parte VIII. Architetture Parallele Parte VIII Architetture Parallele VIII.1 Motivazioni Limite di prestazioni delle architetture sequenziali: velocità di propagazione dei segnali, la luce percorre 30 cm in un nsec! Migliore rapporto costo/prestazioni

Dettagli

I sistemi multiprocessori

I sistemi multiprocessori Indice I sistemi multiprocessori Corso di Sistemi per Elaborazione dell Informazione Prof. Bruno Carpentieri A.A. 2004/2005 Loredana D Arienzo Maurizio Cembalo Sistemi Multiprocessore Caratteristiche Modelli

Dettagli

Architettura dei Calcolatori Elettronici

Architettura dei Calcolatori Elettronici Architettura dei Calcolatori Elettronici Prof. Orazio Mirabella L architettura del Calcolatore: esame delle sue caratteristiche Fondamentali Capacità di eseguire sequenze di istruzioni memorizzate Calcolatore

Dettagli

Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo. Daniele Loiacono

Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo. Daniele Loiacono Introduzione al Calcolo Parallelo Algoritmi e Calcolo Parallelo Riferimenti Questo materiale deriva dalle slide del prof. Lanzi per il corso di Informatica B, A.A. 2009/2010 Il materiale presente in queste

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come

Dettagli

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232

Il protocollo RS Introduzione. 1.2 Lo Standard RS-232 1 Il protocollo RS232 1.1 Introduzione Come noto un dispositivo di interfaccia permette la comunicazione tra la struttura hardware di un calcolatore e uno o più dispositivi esterni. Uno degli obiettivi

Dettagli

Elementi di informatica

Elementi di informatica Elementi di informatica Architetture degli elaboratori Il calcolatore Un calcolatore è sistema composto da un elevato numero di componenti Il suo funzionamento può essere descritto se lo si considera come

Dettagli

CORSO DI RETI DI CALCOLATORI II (Docente Luca Becchetti) Esercizi su instradamento e tabelle di routing 1

CORSO DI RETI DI CALCOLATORI II (Docente Luca Becchetti) Esercizi su instradamento e tabelle di routing 1 CORSO DI RETI DI CALCOLATORI II (Docente Luca Becchetti) Esercizi su instradamento e tabelle di routing 1 1. Si proponga una topologia di rete corrispondente alla seguente porzione della tabella di instradamento

Dettagli

Calcolatori Elettronici A a.a. 2008/2009

Calcolatori Elettronici A a.a. 2008/2009 Calcolatori Elettronici A a.a. 2008/2009 Instruction Set Architecture: nozioni generali Massimiliano Giacomin 1 DOVE CI TROVIAMO Livello del linguaggio specializzato Traduzione (compilatore) o interpretazione

Dettagli

Modelli di programmazione parallela

Modelli di programmazione parallela Modelli di programmazione parallela Oggi sono comunemente utilizzati diversi modelli di programmazione parallela: Shared Memory Multi Thread Message Passing Data Parallel Tali modelli non sono specifici

Dettagli

senza stato una ed una sola

senza stato una ed una sola Reti Combinatorie Un calcolatore è costituito da circuiti digitali (hardware) che provvedono a realizzare fisicamente il calcolo. Tali circuiti digitali possono essere classificati in due classi dette

Dettagli

Richiami sull architettura del processore MIPS a 32 bit

Richiami sull architettura del processore MIPS a 32 bit Richiami sull architettura del processore MIPS a 32 bit Architetture Avanzate dei Calcolatori Valeria Cardellini Caratteristiche principali dell architettura del processore MIPS E un architettura RISC

Dettagli

Sistemi di Elaborazione delle Informazioni

Sistemi di Elaborazione delle Informazioni SCUOLA DI MEDICINA E CHIRURGIA Università degli Studi di Napoli Federico II Corso di Sistemi di Elaborazione delle Informazioni Dott. Francesco Rossi a.a. 2016/2017 1 Programma del corso Informatica di

Dettagli

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

Introduzione. Classificazione di Flynn... 2 Macchine a pipeline... 3 Macchine vettoriali e Array Processor... 4 Macchine MIMD... 6 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...

Dettagli

Struttura hw del computer

Struttura hw del computer Informatica per laurea triennale facoltà di medicina LEZIONE 3 Il processore, la memoria e l esecuzione dei programmi 1 Struttura hw del computer Il nucleo di un computer è costituito da 3 principali componenti:

Dettagli

(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B Compito: Domanda 1 Per l'algoritmo fornito di seguito, qual è il valore assunto dalla variabile contatore quando l'algoritmo termina: Passo 1 Poni il valore di contatore a 1 Passo 2 Ripeti i passi da 3

Dettagli

Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP Laurea Specialistica in Ingegneria Informatica Laurea Specialistica in Ingegneria Elettronica e delle Telecomunicazioni Sistemi e Tecnologie per l'automazione LS HW per elaborazione digitale in automazione:

Dettagli

Introduzione. Caratteristiche generali. Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP

Introduzione. Caratteristiche generali. Sistemi e Tecnologie per l'automazione LS. HW per elaborazione digitale in automazione: Microcontrollori e DSP Laurea Specialistica in Ingegneria Informatica Laurea Specialistica in Ingegneria Elettronica e delle Telecomunicazioni Sistemi e Tecnologie per l'automazione LS HW per elaborazione digitale in automazione:

Dettagli

Architettura hardware

Architettura hardware Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione

Dettagli

Architettura dei computer

Architettura dei computer Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La

Dettagli

Introduzione all'architettura dei Calcolatori

Introduzione all'architettura dei Calcolatori Introduzione all'architettura dei Calcolatori Architettura dei calcolatori Che cos è un calcolatore? Come funziona un calcolatore? un calcolatore è un sistema un sistema è un oggetto costituito da molte

Dettagli

Laboratorio di Informatica

Laboratorio di Informatica per chimica industriale e chimica applicata e ambientale LEZIONE 7 Le reti telematiche 1 Le reti telematiche Tra le tecnologie del XX secolo dominano l elaborazione e la distribuzione delle informazioni

Dettagli

Architettura dei calcolatori

Architettura dei calcolatori Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Elaborazione di Immagini e Suoni / Riconoscimento e Visioni Artificiali 12 c.f.u. Anno Accademico 2009/2010 Docente: ing. Salvatore

Dettagli

La gestione dell I/O (Cap. 5, Tanenbaum)

La gestione dell I/O (Cap. 5, Tanenbaum) La gestione dell I/O (Cap. 5, Tanenbaum) Prestazioni e generalità Gestione software Supporti su disco Orologi Lezione Architettura degli Elaboratori - 1 - A. Sperduti Pagina 1 Prestazioni e generalità

Dettagli

Introduzione alle gerarchie di memoria

Introduzione alle gerarchie di memoria Introduzione alle gerarchie di memoria 1 Un ripasso Circuito sequenziale Segnale di clock Circuito sincrono Temporizzazione sensibile ai fronti Latch tipo S-R Latch tipo D Flip-flop tipo D Register file

Dettagli

Architettura di un calcolatore: Introduzione parte 2

Architettura di un calcolatore: Introduzione parte 2 Corso di Calcolatori Elettronici I Architettura di un calcolatore: Introduzione parte 2 Prof. Roberto Canonico Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle

Dettagli

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE

PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE PROCESSI NON SEQUENZIALI E TIPI DI INTERAZIONE 1 ALGORITMO, PROGRAMMA, PROCESSO Algoritmo Procedimento logico che deve essere eseguito per risolvere un determinato problema. Programma Descrizione di un

Dettagli

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi

G L O S S A R I O. Fondamenti di Informatica I - Università degli Studi di Trento Dott. Roberti Pierluigi G L O S S A R I O BIT: acronimo di Binary Digit. E l unità elementare di informazione. Può assumere solo il valore 0 o 1. CALCOLATORE: macchina che opera la trasformazione dei dati (informazioni) HARDWARE:

Dettagli

L'architettura del processore MIPS

L'architettura del processore MIPS L'architettura del processore MIPS Piano della lezione Ripasso di formati istruzione e registri MIPS Passi di esecuzione delle istruzioni: Formato R (istruzioni aritmetico-logiche) Istruzioni di caricamento

Dettagli

ELETTRONICA II. Prof. Dante Del Corso - Politecnico di Torino

ELETTRONICA II. Prof. Dante Del Corso - Politecnico di Torino ELETTRONICA II Prof. Dante Del Corso - Politecnico di Torino Gruppo G: Interfacciamento e interconnessioni Lezione n. 34 - G - 5: Protocollo a livello transazione Esempi di bus reali Interconnessioni 3

Dettagli

Componenti di un processore

Componenti di un processore Componenti di un processore Unità di Controllo Bus Interno REGISTRI Program Counter (PC) Registro di Stato (SR) Registro Istruzioni (IR) Registri Generali Unità Aritmetico- Logica Registro Indirizzi Memoria

Dettagli

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. I SISTEMI OPERATIVI Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore. Le funzioni di un S.O. non sono definibili in modo esaustivo e puntuale così come non

Dettagli

La macchina di Von Neumann

La macchina di Von Neumann Università degli Studi di Palermo Facoltà di Ingegneria La macchina di Edoardo Ardizzone & Ignazio Infantino Appunti per il corso di Fondamenti di Informatica Corso di Laurea in Ingegneria Informatica

Dettagli

Calcolatori Elettronici: introduzione

Calcolatori Elettronici: introduzione Calcolatori Elettronici: introduzione G. Lettieri 3 Marzo 2017 1 Introduzione e richiami La Figura 1 mostra l architettura generale di un calcolatore. Nel corso approfondiremo ogni componente. I principali

Dettagli

Sottosistemi ed Architetture Memorie

Sottosistemi ed Architetture Memorie Sottosistemi ed Architetture Memorie CORSO DI CALCOLATORI ELETTRONICI I CdL Ingegneria Biomedica (A-I) DIS - Università degli Studi di Napoli Federico II La memoria centrale Memoria centrale: array di

Dettagli

Architettura del calcolatore: gerarchia delle memorie, coprocessori, bus (cenni)

Architettura del calcolatore: gerarchia delle memorie, coprocessori, bus (cenni) Architettura del calcolatore: gerarchia delle memorie, coprocessori, bus (cenni) Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Migliorare

Dettagli

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

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O L ARCHITETTURA DEI CALCOLATORI Il processore La memoria centrale La memoria di massa Le periferiche di I/O Caratteristiche dell architettura 2 Flessibilità adatta a svolgere diverse tipologie di compiti

Dettagli

Dispositivi per il controllo

Dispositivi per il controllo Dispositivi per il controllo ordini di comando PARTE DI COMANDO PARTE DI POTENZA Controllori monolitici Controllori con architettura a bus Controllori basati su PC informazioni di ritorno PLC (Programmable

Dettagli

Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill

Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill Mari, Buonanno, Sciuto Informatica e cultura dell informazione McGraw-Hill // Copyright 7 The McGraw-Hill Companies srl Copyright 7 The McGraw-Hill Companies srl Supporto alla CPU: deve fornire alla CPU

Dettagli

Lezione 15 Il Set di Istruzioni (1)

Lezione 15 Il Set di Istruzioni (1) Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno Un quadro della situazione Input/Output Sistema di Interconnessione Registri

Dettagli

Livello logico digitale bus e memorie

Livello logico digitale bus e memorie Livello logico digitale bus e memorie Principali tipi di memoria Memoria RAM Memorie ROM RAM (Random Access Memory) SRAM (Static RAM) Basata su FF (4 o 6 transistor MOS) Veloce, costosa, bassa densità

Dettagli

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione

Che cos e l Informatica. Informatica generale. Caratteristiche fondamentali degli algoritmi. Esempi di algoritmi. Introduzione Che cos e l Informatica Scienza dell elaborazione dell informazione Informatica generale non si riduce all utilizzo di strumenti (e.g. linguaggi di programmazione e basi di dati); si occupa del trattamento

Dettagli

Blocchi di più parole

Blocchi di più parole Blocchi di più parole Per trarre vantaggio dalla località spaziale non conviene avere blocchi di una sola parola ma blocchi di più parole che occupano nella memoria principale posizioni vicine. Esempio:

Dettagli

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario

Sistemi RAID. Motivazioni Concetti di base Livelli RAID. Sommario Sistemi RAID 1 Motivazioni Concetti di base Livelli RAID Sommario 2 1 Motivazione L evoluzione tecnologica ha permesso di avere dischi sempre più piccoli e meno costosi E facile equipaggiare un sistema

Dettagli

Valutazione delle prestazioni

Valutazione delle prestazioni Valutazione delle prestazioni Cristina Silvano Università degli Studi di Milano Dipartimento di Scienze dell Informazione email: silvano@dsi.unimi.it Cristina Silvano pag 1 Valutazione delle prestazioni

Dettagli

Problemi del ciclo singolo

Problemi del ciclo singolo Problemi del ciclo singolo Ciclo di clock lungo Istruzioni potenzialmente veloci sono rallentate Impiegano sempre lo stesso tempo dell istruzione più lenta Unità funzionale e collegamenti della parte operativa

Dettagli

SISD - Single Instruction Single Data. MISD- Multiple Instructions Single Data. SIMD Single Instruction Multiple Data. Architetture di processori

SISD - Single Instruction Single Data. MISD- Multiple Instructions Single Data. SIMD Single Instruction Multiple Data. Architetture di processori Classificazione di Flynn Architetture di processori SISD - Single Instruction Single Data Le istruzioni sono eseguite sequenzialmente su un solo insieme di dati Le macchine sequenziali comuni appartengono

Dettagli

Capitolo 6 Le infrastrutture SoftWare

Capitolo 6 Le infrastrutture SoftWare Capitolo 6 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: garantire la correttezza e la precisione nell elaborazione

Dettagli

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo

INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo INGEGNERIA E TECNOLOGIE DEI SISTEMI DI CONTROLLO Processori per sistemi di controllo Prof. Carlo Rossi DEIS - Università di Bologna Tel: 051 2093020 email: crossi@deis.unibo.it Classificazione Processori

Dettagli

Appunti di informatica. Lezione 5 anno accademico Mario Verdicchio

Appunti di informatica. Lezione 5 anno accademico Mario Verdicchio Appunti di informatica Lezione 5 anno accademico 2015-2016 Mario Verdicchio L algoritmo di Euclide per l MCD Dati due numeri A e B, per trovare il loro MCD procedere nel seguente modo: 1. dividere il maggiore

Dettagli

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso, misurata in base al tempo impiegato dal processore per accedere ad uno specificato indirizzo

Dettagli

Architettura di Von Neumann

Architettura di Von Neumann Architettura di Von Neumann L architettura è ancora quella classica sviluppata da Von Neumann nel 1947. L architettura di Von Neumann riflette le funzionalità richieste da un elaboratore: memorizzare i

Dettagli

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

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042) Computer elaboratore di informazione riceve informazione in ingresso (input) elabora questa informazione restituisce informazione ottenuta elaborando

Dettagli

Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO)

Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO) Cosa è? Come lo si usa? Come iniziare? Author: Ing. Sebastiano Giannitto (ITIS M.BARTOLO PACHINO) 1^ parte Cosa è Arduino? Arduino è una piattaforma di sviluppo open-source basata su una semplice scheda

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it Il Processore (CPU) 2 rchitettura del processore CPU Unità di Controllo Unità ritmetica Logica

Dettagli

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Hardware, software e periferiche Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre Riepilogo - Concetti di base dell informatica L'informatica è quel settore scientifico disciplinare

Dettagli