Le prestazioni di un calcolatore la CPU

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Le prestazioni di un calcolatore la CPU"

Transcript

1 Le prestazioni di un calcolatore la CPU Mariagiovanna Sami 1

2 Perché valutare le prestazioni? Le prestazioni dello hardware (che si considerano qui) sono spesso essenziali per valutarwe le prestazioni di una applicazione, quindi del complesso hardware/software; ma Valutare le prestazioni non è banale per applicazioni diverse possono essere adatte metriche diverse! Una valutazione corretta è indispensabile per scegliere correttamente il processore più adatto a una data applicazione

3 Quali prestazioni? Sono possibili diverse definizioni: In termini di velocità: si possono dare due diverse interpretazioni: 1. Prestazioni riferite al tempo di risposta (detto anche a volte tempo di esecuzione): intervallo fra l inizio e la fine di un determinato compito; 2. Prestazioni riferite al throughput indicano la quantità totale di lavoro svolta in una data quantità di tempo

4 Quali prestazioni scegliere? Ad esempio, l utente di un PC è interessato al tempo di risposta per un determinato programma; il gestore di un web server sarà più interessato al throughput per l insieme dei suoi utenti; Si consideri il progettista di un sistema embedded che deve gestire streaming video : non è tanto la latenza della prima immagine che interessa, ma si deve garantire strettamente l intervallo fra due immagini consecutive la frequenza a cui vengono forniti i risultati delle successive ripetizioni dell elaborazione, che poi è il reciproco della frequenza

5 Quali prestazioni scegliere? Quasi sempre, ridurre il tempo di risposta migliora anche il throughput l inverso non è necessariamente vero; In questo corso, si farà prevalentemente riferimento al tempo di risposta come misura fondamentale delle prestazioni di un sistema di calcolo. Per massimizzare le prestazioni si vuole quindi minimizzare il tempo di risposta

6 Il tempo di risposta come prestazione In base a quanto detto, per un determinato calcolatore X: 1 prestazionex = execution _ time X Dati due calcolatori X e Y: prestazione X > prestazione Y significa 1 execution _ 1 > timex excution_ time Y

7 Il tempo di risposta come prestazione Quindi in definitiva Execution_time Y >execution_time X (come era d altra parte ovvio) Diremo che X è n volte più veloce di Y se prestazione prestazione X = Y n

8 Il tempo di risposta come prestazione In un sistema embedded, spesso sono presenti vincoli di tempo reale: si distinguono: Tempo reale stretto (hard real time): si dà un vincolo fisso al tempo ammissibile perché il sistema fornisca la risposta a un determinato evento (es., sistemi di controllo di sistemi critici, come un ABS); Tempo reale lasco (soft real time): basta che i limiti temporali si applichino al tempo medio di risposta oppure a una data percentuale (alta) delle risposte agli eventi

9 La misura delle prestazioni Si distinguono: Tempo di risposta: il tempo passato dall inizio alla fine di un compito di elaborazione (task); Tempo di esecuzione della CPU (indicato anche come tempo di CPU). È il tempo speso dalla CPU per eseguire un dato compito e non include il tempo passato in attesa delle operazioni di I/O o nell esecuzione di altri programmi d utente: può essere ulteriormente distinto in tempo di CPU di utente (impiegato a eseguire il programma di utente) e tempo di CPU di sistema (impiegato in compiti del sistema operativo correlati al programma d utente)

10 La misura delle prestazioni Nel seguito, si indicherà come prestazione della CPU quella correlata al tempo di CPU di utente; Spesso, invece di fare riferimento al tempo si fa riferimento ad un altra unità di misura: il ciclo di clock. Quasi tutti i calcolatori sono sincronizzati da un clock un segnale periodico a frequenza fissa che determina la frequenza degli eventi nello hardware, e il cui periodo è appunto il ciclo di clock (a volte con ciclo si indica la frequenza invece del periodo)

11 La misura delle prestazioni A questo punto, si può indicare: CPU Clock. time _ for _ a _ program = CPU clock _ cycles _ for _ a _ program _ cycle _ time exec Se ne deduce che il progettista può migliorare le prestazioni o riducendo il numero di cicli richiesti da un dato programma, o riducendo la durata del ciclo di clock; spesso i due fattori sono contrastanti e si deve cercare un compromesso

12 La misura delle prestazioni Si supponga che un programma richieda 10 secondi su un calcolatore A con clock a 4 GHz. Si vuole costruire un calcolatore B che esegua lo stesso programma in 6 secondi; il progettista ha verificato che un significativo aumento della frequenza di clock porterebbe però il numero di cicli necessari per eseguire il programma a 1.2 volte quello richiesto su A. Quale frequenza di clock si deve raggiungere? Si ricorda che clock _ cycle _ time = clock 1 _ rate

13 La misura delle prestazioni CPU 10sec = _ time A = CPU _ clock _ cycles clock _ rate CPU _ clock _ cycles 9 cicli 4 10 sec A A A CPU _ 10sec clock _ cycles A = cicli = secondo cicli

14 La misura delle prestazioni Il tempo di CPU di B si calcola da: CPU 6sec clock = _ time B 1.2 CPU _ clock _ cycles = clock _ rate cicli = clock _ rate _ rate B cicli secondi B = 6sec = 8GHz 9 B cicli = A

15 La misura delle prestazioni Il calcolatore B deve avere frequenza di clock doppia di quello A per ottenere un miglioramento delle prestazioni inferiore al doppio! Nelle equazioni viste non compare il numero delle istruzioni del programma; il tempo di esecuzione però ovviamente ne dipende. Il tempo di esecuzione può anche essere visto come il prodotto fra il numero di istruzioni eseguite e il numero medio di cicli per istruzione:

16 La misura delle prestazioni Attenzione: quando si valuta il tempo di esecuzione, con numero di istruzioni si intende il numero di istruzioni eseguite durante una data esecuzione ( run ) del programma, non al numero di istruzioni scritte nel programma; la stesura del programma costituisce il programma statico, mentre la successione delle istruzioni eseguite costituisce il programma dinamico. Le prestazioni si calcolano con riferimento al programma dinamico

17 La misura delle prestazioni Si indichi con I il numero delle istruzioni eseguite dai due calcolatori (che è identico nei due casi): si ha: CPU CPU clock clock cycles cycles si calcola quindi il tempo di CPU per i due casi: A B = = I I

18 La misura delle prestazioni CPU CPU _ time _ clock cycles = I ps = A = _ A clock 500 Ips _ cycle _ time A CPU _ CPU _ time clock cycles = I ps = B = _ B clock 600 Ips _ cycle _ time B

19 La misura delle prestazioni Il primo calcolatore garantisce quindi prestazioni migliori; il rapporto di prestazioni è: CPU CPU Ips Ips performance performance = 1.2 A B = execution execution time time B A =

20 La misura delle prestazioni Si riveda ora la valutazione delle prestazioni facendo riferimento a un parametro già introdotto il numero medio di cicli di clock per istruzione (valore calcolato con implicito riferimento all esecuzione di un programma!) o CPI (cycles per instruction): è CPU exec. cycles _ Instruction for _ a program count

21 La misura delle prestazioni L equazione delle prestazioni può anche essere formulata come: CPU _ time = Instruction _ count CPI Clock _ cycle _ time Instruction _ count CPI CPU _ time = clock _ rate questa formulazione permette di separare i tre fattori-chiave che influenzano le prestazioni

22 La misura delle prestazioni: i fattori Il conteggio delle istruzioni (derivato in esecuzione, quindi dal programma dinamico!): può essere ottenuto o mediante software strumentato oppure (su alcune CPU) grazie a appositi contatori hardware di cui le Cpu sono dotate

23 La misura delle prestazioni: i fattori Conteggio delle istruzioni: dipende dall insieme delle istruzioni ma è indipendente dalla realizzazione hardware dell ISA; CPI: dipende fortemente dall architettura hardware e dal compilatore, ma non dalla specifica tecnologia microelettronica adottata; Ciclo di clock: è fortemente legato alla tecnologia (e anche da aspetti di basso livello dell architettura)

24 Come valutare il codice oggetto? Si supponga che il compilatore possa scegliere fra due diverse alternative di traduzione per un espressione in linguaggio ad alto livello. Si possono usare istruzioni di tre classi, A, B e C: CPI per la classe di istruzioni A B C CPI

25 Come valutare il codice oggetto? Le due traduzioni alternative generano sequenze di codice con i seguenti conteggi di istruzioni di macchina dei vari tipi Sequenza di codice Conteggio di istruzioni per la classe A B C

26 Come valutare il codice oggetto? La prima sequenza esegue 5 istruzioni, la seconda ne esegue 6. Il calcolo dei cicli di clock viene fatto riferendosi al CPI per ogni classe di istruzioni: CPU _ clock _ cycles = n i= 1 ( CPI i C i ) CPU_clock_cycles 1 =(2*1)+(1*2)+(2*3)=10 CPU_clock_cycles 2 =(4*1)+(1*2)+(1*3)=9 La seconda traduzione, anche se più lunga, è più veloce

27 Come valutare il codice oggetto? Si può ora calcolare il CPI delle due diverse traduzioni; nel primo caso è CPI CPU _ clock _ cycles instruction _ count 10 1 = = 5 = 1 Mentre nel secondo è: CPI CPU _ clock _ cycles Instruction _ count 2 Come ci si poteva aspettare, il CPI del secondo caso è più basso = = =

28 Come valutare il codice oggetto? Quando si confrontano due soluzioni su architetture con istruzioni caratterizzate da diversi CPI, occorre tenere in conto sia il conteggio delle istruzioni sia il CPI, anche quando il ciclo di clock resta uguale; Quali programmi (workload) scegliere per valutare le prestazioni di un sistema di calcolo?

29 La scelta del workload Salvo che nei casi in cui si può utilizzare l applicazione definitiva (o un nucleo di programma significativo da essa estratto) come scegliere i programmi da utilizzare per valutare le prestazioni di un calcolatore? Uso di programmi neutrali (prodotti da aziende specializzate) detti benchmark. In passato, spesso si usavano benchmark sintetici esercitano alcune particolari funzionalità del calcolatore, ma non corrispondono ad alcuna applicazione reale

30 I benchmark Oggi, si tende a usare o programmi reali di grande diffusione (es.: compilatore C, text editor, programma di simulazione elettronica ) oppure benchmark estratti da programmi reali e che ben rappresentano le effettive sollecitazioni d uso. Benchmark: normalmente piuttosto brevi, nuclei ricavati da applicazione-campione; si deve garantire che un esperimento di misura delle prestazioni sia riproducibile da altri utenti (es., basato sull uso di compilatori largamente disponibili etc.)

31 I benchmark I benchmark tradizionali SPEC fanno riferimento al tempo di CPU; più recentemente sono stati sviluppati benchmark SPECweb (che valutano prevalentemente il throughput) e (da un altra azienda) vari benchmark per sistemi embedded relativi a diversi tipi di applicazioni (EEMBC)

32 Una diversa cifra di merito Problema che diventa sempre più importante: consumo di potenza fondamentale per sistemi portatili, ma oramai fondamentale anche a livello di supercomputer! Si distinguono potenza di commutazione (switching power - dissipata quando il sistema lavora) e potenza a riposo (leakage power - dovuta al fatto che l ossido nel CMOS non è un isolante perfetto, e dissipata anche con il sistema fermo!). Fino ad oggi, si è lavorato per limitare la prima (che dipende dalla frequenza di clock); oggi anche la seconda diventa rilevante

33 Una diversa cifra di merito In molte CPU progettate per uso in sistemi che possono essere sia collegati alla rete elettrica sia alimentati a batteria (es., i laptop) si prevede di poter variare la frequenza di funzionamento (il consumo in commutazione dipende approssimativamente dal cubo della potenza!) sia la tensione applicata alle porte logiche, accettando ovviamente per uan riduzione di tali parametri anche una riduzione delle prestazioni. Spesso si usano allora cifre di merito diverse (es. prestazioni/energia, o alternativamente prodotto energia-ritardo)

34 Le componenti della CPU La CPU deve essere in grado di leggere, interpretare ed eseguire le varie classi di istruzioni già indicate; questo coinvolge l unità di controllo (che decodifica le istruzioni e invia i segnali di attivazione alle diverse unità nell ordine opportuno) e un insieme di unità funzionali (compresa l ALU), registri e elementi di interconnessione che si chiamano più correttamente datapath

35 Le componenti della CPU Componenti funzionali come quelli elencati sono presenti in tutte le CPU, ma l organizzazione interna, le caratteristiche dei componenti funzionali etc., dipendono dalla particolare CPU. Per analizzare come è strutturata e come opera una CPU, si continuerà a fare riferimento al MIPS 1, esaminando passo per passo come dall insieme delle istruzioni di macchina (l ISa) SI può dedurre una realizzazione della CPU (come si vedrà, a una stessa ISA corrispondono più CPU possibili!)

36 Le componenti della CPU Per semplicità, si analizza una versione semplificata del MIPS che non è dotata di unità di virgola mobile e si fa riferimento solo a un sottoinsieme rappresentativo delle istruzioni disponibili. Si analizzeranno l influenza dell insieme di istruzioni sull architettura e si esploreranno le diverse scelte architetturali e la loro influenza sulle prestazioni

37 Le componenti della CPU Per iniziare a identificare le componenti dell architettura interna del DataPath e le loro interconnessioni, cominciamo con l esaminare per ogni classe di istruzione i passi che si devono compiere per giungere al suo corretto completamento e quindi lo hardware che sarà necessario per concretizzare tali passi

38 Le componenti della CPU Per tutte le istruzioni, indistintamente, si devono compiere due passi in modo identico: 1. Inviare il contatore di programma (d ora in poi, PC) al registro di indirizzamento della memoria e comandare la lettura da memoria dell istruzione (lettura o fetch); 2. Leggere uno o due registri, a seconda dell istruzione; I passi successivi variano con la particolare istruzione, e quindi dipendono dalla decodifica compiuta dall unità di controllo, ma sono in buona misura comuni alle diverse istruzioni di una stessa classe

39 Le componenti della CPU Durante la fase di lettura, per tutte le istruzioni viene compiuto un ulteriore passo l incremento del PC per puntare all istruzione immediatamente successiva (nel caso del MIPS, si incrementa di 4 poiché si indirizza il byte). Questo passo risulta inutile per i salti incondizionati, e può esserlo per i salti condizionati: dato peròche compierlo in parallelo alla lettura non provoca errore (eventualmente il valore calcolato verrà sostituito) e peraltro rende più veloce il funzionamento, lo si fa

40 Le componenti della CPU Dopo la lettura dei registri, tutte le istruzioni del MIPS (con l eccezione del salto incondizionato e della nop) usano l unità aritmetico-logica (ALU) per una qualche operazione sia essa la funzione richiesta da un istruzione operativa o il calcolo dell indirizzo di memoria per una Load o una Store o l indirizzo destinazione per un salto condizionato

41 Le componenti della CPU Si sono quindi identificati dei blocchi componenti: La memoria istruzioni; Il contatore di programma, e un circuito associato che somma al suo contenuto la costante 4 e un altro addizionatore che permette di calcolare l indirizzo nel caso di salti condizionati; Il banco dei registri; L unità aritmetico-logica; La memoria dati. I segnali che comandando l attivazione delle unità giungono dalla unità di controllo, della quale per ora non ci occupiamo!

42 Schema astratto del sistema MIPS dato Memoria dati PC Indir. Istruz. Memoria istruzioni N reg. N reg. N reg. R.F ALU Indir. dato

43 Lo schema del MIPS Si sono indicate le unità principali e le interconnessioni; Memoria istruzioni e memoria dati qui compaiono separate: in realtà, appartengono a un unico spazio degli indirizzi. Lo schema che ne fraziona gli accessi fisici (schema di Harvard) risponde all organizzazione di molte macchine recenti e permette successive ottimizzazioni;

44 Lo schema del MIPS In alcuni punti si vede che il valore instradato a un unità può provenire da origini diverse; occorre in realtà frapporre un multiplexer con segnali di controllo che indichino da quale sorgente si deve di volta in volta attivare l instradamento; Molte delle unità presenti possono compiere più funzioni (es., l ALU, ma anche il Register File cui si può accedere in lettura o in scrittur), la memoria dati, che ammette sia letture sia scritture): la scelta verrà fatta da opportuni segnali di controllo

45 Lo schema del MIPS Si veda ora lo stesso schema completato dai vari multiplexer e dai segnali essenziali provenienti dall unità di controllo;

46 Lo schema del MIPS branch PC MUX Indir. MUX Istru z. Memoria istruzioni dato N reg. R.F N reg. N reg. W MUX ALU zero Indir. dato Memoria dati W R controllo

47 Alcune note Compaiono tre multiplexer: 1. Uno stabilisce se l operando da inviare all ALU è il valore letto da un registro oppure un valore immediato contenuto nell istruzione; 2. Il secondo specifica se il dato da scrivere in un registro è il risultato prodotto dall ALU oppure un valore letto dalla memoria dati; 3. Il terzo stabilisce se l indirizzo della prossima istruzione (da scrivere nel PC) è quello calcolato per incremento dell indirizzo dell istruzione corrente oppure (nel caso di un salto condizionato) se deve essere calcolato sommando lo spiazzamento al PC (fatto che si verifica se il confronto dà risultato vero codice 0 e se l unità di controllo ha decodificato il salto condizionato)

48 Alcune note La realizzazione del MIPS include: 1. Elementi che operano sui valori dei dati: si tratta di dispositivi combinatori (privi di memoria); un esempio ne è la ALU; 2. Elementi che contengono uno stato: si tratta di elementi dotati di memoria (memorie, registri, PC ne sono esempi). Gli elementi di stato sono tutti sincroni, quindi oltre all ingresso di dati hanno un ingresso di clock (non esplicitamente indicato nello schema) che determina quando il dato viene scritto, in presenza di un opportuno segnale di controllo. L uscita presenta il dato che era stato scritto in un ciclo di clock precedente (si supporrà che tutti i registri siano di tipo master-slave)

49 Alcune note Quando la scrittura avviene a ogni ciclo di clock si eviterà di indicare esplicitamente segnali di controllo; la scrittura in un registro avviene solo quando il segnale W (scrittura) ha valore attivo (es., alto) come anche il segnale di clock; L uso di registri master-slave permette che nello stesso ciclo di clock si possa leggere e scrivere nello stesso registro; Di norma, tutti gli elementi hanno ingressi e uscite di 32 bit (si indicheranno i casi diversi);

50 Il Datapath Si considerano innanzitutto gli elementi del datapath richiesti da istruzioni rappresentative delle diverse classi: La fase di lettura dell istruzione si serve della memoria istruzioni (in cui è registrato il programma), del contatore di programma (che contiene l indirizzo della prossima istruzione da leggere) e un addizionatore (che permette di calcolare l indirizzo della prossima istruzione in sequenza, sommando la costante 4 al valore attualmente contenuto nel PC):

51 Il Datapath: : fase di fetch Componente base per la fase di lettura: PC Indir. 4 Istruz. Memoria istruzioni + Questa parte del datapath trasferisce il contenuto del PC alla porta di indirizzamento della memoria istruzioni, effettua la lettura della istruzione e simultaneamente incremento di 4 il contenuto del PC, in modo da puntare all istruzione successiva

52 Il Datapath: : istruzioni di tipo R Tutte le istruzioni di tipo R leggono il contenuto di due registri (inviando i due indirizzi al Register File e leggendo i valori alle due porte di lettura), instradano i valori all ALU, comandano l opportuna istruzione e scrivono il risultato nel register file (inviando l indirizzo del registro destinazione e presentando il valore da scrivere alla porta di scrittura). Si considerino prima lo schema del Register File e quello della ALU (che può compiere un certo numero di diverse operazioni fra cui si opera una selezione mediante 4 bit estratti dal campo funct dell istruzione)

53 Il Datapath: : istruzioni di tipo R Regsier numbers Data Read reg. 1 Read reg. 2 Write reg. Write data Register file Read data 1 Read data 2 Data Operazione ALU ALU zero result Reg. write

54 Il Datapath: : istruzioni di tipo R Quando a una porta di indirizzamento per la lettura si presenta il numero di un registro, alla corrispondente porta di lettura si ottiene il dato contenuto nel registro; Per scrivere, oltre a presentare alla porta di indirizzamento per la scrittura il numero del registro e alla porta di scrittura il valore da scrivere, occorre fornire anche un valore attivo del segnale di scrittura

55 Il Datapath: : uso dell ALU per le istruzioni load/store Le istruzioni di accesso alla memoria hanno la forma generale lw rx, spiazzamento (rb), o sw $rx, spiazzamento (rb); L indirizzo di memoria viene calcolato sommando lo spiazzamento al contenuto del registro base rb; lo spiazzamento è un valore algebrico di 16 bit, che dovrà essere opportunamente esteso a 32 bit prima di eseguire la somma (si introduce un unità sign_extend che realizza questa estensione)

56 Il Datapath: : uso dell ALU oper le istruzioni load/store Le istruzioni di accesso alla memoria fanno tutte uso di una delle porte di lettura del Register File (e della relativa porta di indirizzamento) per leggere il valore del registro base; l istruzione di Store accede anche alla seconda porta di lettura del Register File per leggere il dato da scrivere in memoria, mentre quella di Load accede alla porta di scrittura del R.F. per registrare il valore letto dalla memoria. Occorre inoltre una nuova unità per l estensione di un numero (positivo o negativo) da 16 a 32 bit (unità che serve poi anche per le istruzioni aritmetiche che usano per uno degli operandi l indirizzamento immediato)

57 Il Datapath: : uso dell ALU per le istruzioni load/store Si dovranno introdurre nel Datapath le due unità: memoria Dati e Sign_extend memwrite Indirizzo lettura dati Data Scrittura Memory dati Sign Extend memread

58 Il Datapath: : uso dell ALU per le istruzioni di salto condizionato le istruzioni di salto condizionato (branch) hanno una forma del tipo beq ra, rb, spiazzamento lo spiazzamento di 16 bit viene usato per calcolare l indirizzo destinazione del salto nel caso che la condizione specificata sia vera (nell esempio, se il valore in ra è uguale a quello in rb); deve essere esteso e sommato al contenuto del PC (che ne frattempo è stato già incrementato di 4 e punta quindi all istruzione immediatamente successiva al salto)

59 Il Datapath: : uso dell ALU per le istruzioni di salto condizionato Dato che lo spiazzamento viene dato come numero di parole, mentre gli indirizzi sono dati con riferimento al byte (una parola consta di 4 byte) occorre prima moltiplicare lo spiazzamento per 4 per avere l incremento espresso in byte; moltiplicare per 4 un numero binario significa farlo scorrere verso sinistra di due posti e inserire da destra altrettanti 0 (operazione che viene fatta prima di estendere il valore a 32 bit)

60 Il Datapath: : uso dell ALU per le istruzioni di salto condizionato Occorre poi calcolare la condizione del salto stabilire se il salto andrà fatto (branch taken) oppure no (branch not taken): 1. Branch taken (nell esempio, i due operandi sono uguali): il nuovo indirizzo, calcolato come detto, viene sostituito al contenuto del PC e la lettura della prossima istruzione riprende da questo valore; 2. Branch not taken (la condizione è falsa): si mantiene il valore sequenziale del PC già calcolato. Il datapath compie due operazioni: calcolo dell indirizzo obiettivo del salto e determinazione della condizione

61 Il Datapath: : uso dell ALU per le istruzioni di salto condizionato Si noti: l istruzione ha in realtà tre operandi i due registri da confrontare e lo spiazzamento da sommare al PC. Il Datapath deve quindi compiere due operazioni confrontare il contenuto dei due registri e calcolare il nuovo indirizzo nel caso la condizione sia vera. Si introdurrà un addizionatore dedicato al calcolo dell indirizzo obiettivo. Si deve introdurre un unità capace di estendere lo spiazzamento tenendo conto del segno (dopo di ciò si fa scorrere a sinistra il valore di due posizioni)

62 Istruz. Read reg. 1 Read reg. 2 Write reg. Write data Il Datapath: : uso dell ALU per le istruzioni di salto condizionato Register file PC+4 dal datapath dell istr. Read data 1 Read data 2 16 Reg. write 32 Estens. Con segno Shift left 2 somma ADD ALU Obiettivo del salto Operazione ALU zero Alla logica di controllo del salto

63 Il Datapath: : uso dell ALU per le istruzioni di salto condizionato Per verificare se i due operando sono uguali, li si invia all ALU selezionando una sottrazione; se l indicatore di risultato 0 è a valore vero (segnale alto ), il salto deve essere fatto e si usa come prossimo indirizzo quello prodotto dall addizionatore. Un salto incondizionato viene realizzato, molto semplicemente, sostituendo i 28 bit meno significativi del PC coi 26 bit di indirizzo indicati nell istruzione, fatti scorrere a destra di due posti e completati con due

64 Il Datapath: : comporre le diverse parti Le varie parti descritte in precedenza vengono composte nel Datapath complessivo mostrato all inizio; si farà l ipotesi iniziale che ogni istruzione venga letta ed eseguita in un unico ciclo di clock (si usa cioè un clock di sistema con ciclo molto lungo non una soluzione brillante, ma utile per semplificare inizialmente la trattazione); Si deve ora analizzare l insieme di funzionalità dell Unità di Controllo

65 L Unità di Controllo L unità di controllo deve: Ricevere ingressi dal datapath Inviare i comandi per effettuare la scrittura nei registri (se necessario), i segnali di selezione ai multiplexer, il codice di funzione all ALU. Il controllo dell ALU è piuttosto differente dagli altri; verrà trattato quindi separatamente; Il tutto sulla base del particolare codice operativo dell istruzione letta e trasferita nel registro istruzioni interno all unità di controllo

66 Il controllo dell ALU Per l ALU, l unità di controllo deve: Distinguere se l accesso all ALU è per compiere un operazione di tipo R oppure per calcolare l indirizzo in un operazione di accesso alla memoria o infine per valutare la condizione in un istruzione di salto condizionato; Per le istruzioni di tipo R, identificare ulteriormente la specifica dell operazione da compiere sulla base del campo funct dell istruzione; Da queste informazioni estrarre il codice di 4 bit per l ALU

67 Il controllo dell ALU L unità di controllo genera dapprima due bit di controllo ALUop che valgono 00 se si deve fare una somma per generare l indirizzo di una Load o di una Store, 01 se si deve compiere una sottrazione per l istruzione beq, 10 se l istruzione è di tipo R e quindi la funzione viene determinata dal campo funct. Da questi due bit e dal campo funct l unità di controllo genera finalmente la codifica su 4 bit della funzione che l ALU deve svolgere (codifica a più livelli)

68 Il controllo dell ALU Il circuito che realizza tutte le operazioni indicate è un semplice circuito combinatorio le uscite che si generano dipendono solo dall istruzione che si sta attualmente decodificando, non dagli avvenimenti precedenti!

69 L unità di controllo principale Il ridotto insieme di formati ammessi per le istruzioni del MIPS consente di semplificare in modo notevole il progetto dell unità di controllo: Le istruzioni sono tutte della stessa lunghezza una sola parola (anche quando si vogliono costruire costanti lunghe, di 32 bit, si devono in realtà usare due istruzioni che generano ognuna una metà della costante); Il codice operativo occupa sempre i sei bit più significativi (dalla posizione 31 alla 26);

70 L unità di controllo principale Nelle istruzioni in cui si devono legger i contenuti di due registri (istruzioni di tipo R, istruzione di Store, istruzioni di salto condizionato) i numeri d ordine dei due registri sono sempre nelle stesse due posizioni (indicate come rs bit da 25 a 21 e rt bit da 20 a 16); Il registro base per le istruzioni di accesso alla memoria è sempre contenuto nei bit da 25 a 21 (registro rs); Lo spiazzamento di 16 bit per la branch, la load e la store è sempre nei bit da 15 a 0;

71 L unità di controllo principale Il numero del registro destinazione può essere o nei bit da 20 a 16 per la Load o nei bit da 15 a 11 (rd) per le istruzioni di tipo R. Sarà quindi necessario introdurre un multiplexer per stabilire da quale campo dell istruzione può giungere il numero d ordine del registro destinazione; Le uniche istruzioni che fanno eccezione sono il salto incondizionato e la nop; Si può quindi completare lo schema del datapath introducendo le etichette dei vari campi dell istruzione e il nuovo multiplexer

72 Lo schema del MIPS PCs 4 MUX + shl2 + MUX crfw MWrite PC Indir Mem. Istr. Istruz. I[25:21] I[20:16] MUX I[15:11] rs rt rd I[15:0] wdata W R. F est 32 MUX zero ALU calu I[5:0] ALUop Indir Memoria dati dato W R MWRead

73 Lo schema del MIPS Le linee rosse indicano segnali che provengono dall unità di controllo; Con l esclusione del segnale di selezione PCs (che determina l indirizzo della prossima istruzione) l unità di controllo può determinare tutti gli altri segnali sulla base dell istruzione corrente, senza cioè ricorrere allo stato della CPU; Il segnale PCs è determinato dall AND fra un segnale generato dall unità di controllo (segnale branch) generato quando si decodifica un salto condizionato, e il segnale zero fornito dall ALU

74 L unità di controllo del MIPS Una prima deduzione: nello schema fondamentale visto finora l intera unità di controllo è essenzialmente una rete priva di memoria una rete combinatoria che può essere descritta mediante una semplice tabella che dia, per ogni configurazione significativa dei segnali in ingresso all unità, la configurazione dei segnali che essa genera

75 L unità di controllo del MIPS Si può suddividere concettualmente l insieme di operazioni comandate dall unità di controllo come una successione di passi, alcuni dei quali (i primi) sono identici per tutti i tipi di istruzioni (e quindi coinvolgono nello stesso modo le stesse unità) mentre altri variano per i diversi tipi di istruzioni

76 L attività delle istruzioni Istruzioni di tipo R: 1. L istruzione viene letta (fetch) e il PC incrementato; 2. Due registri (rs e rt) vengono letti dal Register File, e l unità di controllo ne instrada i contenuti agli ingressi dell ALU; 3. L ALU opera sui valori letti usando il codice del campo funct per stabilire la particolare operazione da compiere; 4. Il risultato prodotto dall ALU viene scritto nel Register File (i bit 15:11 dell istruzione indirizzano il registro destinazione)

77 L unità di controllo del MIPS Istruzione Load: 1. L istruzione viene letta (fetch) e il PC incrementato; 2. Il valore contenuto nel registro rs viene letto dal register file e trasferito all ALU; i 16 bit meno significativi dell istruzione (lo spiazzamento) vengono estesi (incluso il segno) fino a costituire un numero di 32 bit che è inviato all altro ingresso dell ALU; 3. L ALU esegue la somma algebrica; 4. Il valore calcolato viene inviato come indirizzo alla memoria dati, cui si invia un comando di lettura (Read); 5. Il dato letto dalla memoria viene scritto nel register file, nel registro il cui numero è dato dai bit 20:16 dell istruzione

78 L unità di controllo del MIPS Istruzione beq: 1. L istruzione viene letta (fetch) e il PC incrementato; 2. Due registri (rs e rt) vengono letti dal Register File, e l unità di controllo ne instrada i contenuti agli ingressi dell ALU; 3. L ALU esegue una sottrazione fra i due valori; i sedici bit meno significativi dell istruzione vengono spostati a destra di due posizioni (da sinistra si inseriscono due 0), ed estesi (mantenendone il segno) fino a costituire un numero di 32 bit; il risultat è l indirizzo obiettivo nel caso il salto debba essere fatto; 4. Il risultato Zero dell ALU viene usato per selezionare il valore da scrivere nel PC

79 PCs Il flusso di una branch 4 MUX + shl2 + crfw Codice di branch MUX MWrite PC Indir Mem. Istr. Istruz. I[25:21] I[20:16] MUX I[15:11] I[15:0] rs rt rd wdata W R. F est 32 MUX zero ALU calu I[5:0] ALUop Indir Memoria dati dato W R MWRead

80 L unità di controllo del MIPS Fino ad ora si è tralasciata l istruzione jump, la cui esecuzione è un po diversa dalle precedenti: 1. L istruzione viene letta (fetch) e il PC incrementato; 2. Nel PC viene portato un numero costituito concatenando i quattro bit più significativi presenti nel PC stesso, i 26 bit che costituiscono il campo indirizzo dell istruzione e i due bit 00; Per implementare questa istruzione occorre in realtà aggiungere un ulteriore multiplexer per ammettere questo nuovo possibile ingresso nel PC

81 L unità di controllo del MIPS E l istruzione nop Apparentemente, del tutto inutile: l unica operazione è L istruzione viene letta (fetch) e il PC incrementato; Come si vedrà più avanti, questa istruzione è spesso indispensabile per introdurre nell esecuzione ritardi predefinibili da programma (anche l istruzione nop, nella realizzazione elementare del MIPS, richiede un ciclo di clock!)

82 L unità di controllo: gli approcci attuali Oggi, la soluzione mono-ciclo esaminata finora non viene più usata perché risulterebbe molto inefficiente; il ciclo di clock qui è infatti determinato dal più lungo percorso all interno della macchina (nel nostro caso, quello richiesto dalla Load), e porta certamente a scarsa efficienza dato che molte istruzioni effettuano un percorso più breve (anche molto più breve). Il ciclo avrebbe dunque durata eccessivamente lunga e l esecuzione di un programma risulterebbe inutilmente rallentato

83 Le prestazioni ottenibili: un esempio per la macchina monociclo Per dimostrarlo, si consideri un esempio: I tempi di operazione per le varie unità siano: Unità di memoria: 200 ps ALU e addizionatori: 100 ps Lettura o scrittura nel register file: 50 ps. Multiplexer, unità di controllo, collegamenti, PC: si faccia l ipotesi che non abbiano ritardo. e si considerino due possibili implementazioni, ambedue per una macchina monociclo, ma con due soluzioni diverse:

84 Le prestazioni ottenibili: un esempio per la macchina monociclo A. Ogni istruzione richiede un ciclo di clock di lunghezza fissa; B. Ogni istruzione richiede un ciclo, ma il clock ha periodo variabile di lunghezza corrispondente a quella richiesta dalla singola istruzione (implementazione poco pratica, ma utile per la valutazione delle prestazioni!) In ambedue i casi, evidentemente, il CPI vale 1 per definizione occorre un ciclo per ogni istruzione!

85 Le prestazioni ottenibili: un esempio per la macchina monociclo Si supponga inoltre che il programma-benchmark usato includa 25% di load, 10% di store, 45% di istruzioni ALU, 15% di salti condizionati e 5% di salti incondizionati. Si confrontano innanzitutto i tempi di esecuzione della CPU, ricordando che: CPU_execution_time = Instruction_count*CPI*clock_cycle_time equazione che con CPI=1 si semplifica a CPU_execution_time = Instruction_count*clock_cycle_time

86 Le prestazioni ottenibili: un esempio per la macchina monociclo Si deve calcolare il tempo di ciclo per le due soluzioni: a questo scopo occorre innanzitutto identificare il percorso critico per ogni tipo di istruzione: Classe di istruz. Tipo R Fetch Unità funzionali usate dall istruzione Accesso a reg. ALU Accesso a reg Load word fetch Accesso a reg. ALU Accesso a mem. Accesso a reg Store word Fetch Accesso a reg. ALU Accesso a mem. Branch Fetch Accesso a reg. ALU Jump Fetch

87 Le prestazioni ottenibili: un esempio per la macchina monociclo Si possono ora calcolare le latenze per ogni classe di istruzioni: Classe di istruz. Instr. Memory Register read ALU op. Data memory Register write total Tipo R ps Load word ps Store word ps Branch ps Jump ps

88 Le prestazioni ottenibili: un esempio per la macchina monociclo Macchina A: il ciclo di clock è pari a 600 ps (questo è il tempo medio per istruzione TPI); Macchina B: il ciclo di clock varia da 200 a 600 ps; il tempo medio (TPI) per istruzione risulta quindi dato da: CPU_clock_cycle = 600* *0, *0, *0, *0,05 = 447,5 ps Evidentemente, la macchina B sarà più veloce; interessa ora valutare il rapporto di prestazioni fra le due soluzioni

89 Le prestazioni ottenibili: un esempio per la macchina monociclo CPU _ CPU _ = IC CPU IC CPU performance performance _ clock _ clock variableclock sin gleclock _ cycle _ cycle = sin gleclock CPU CPU variableclock _ execution _ time _ execution _ time ,5 = 1.34 sin gleclock variableclock In realtà, la realizzazione di un clock a ciclo variabile è estremamente complessa e non sarebbe giustificata dall effettivo guadagno in prestazioni; nella pratica si usa un clock con ciclo più breve, assegnando un diverso numero di cicli ai diversi tipi di istruzioni. = =

90 Il controllo su più cicli di clock Per creare un implementazione multiciclo si parte dalla suddivisione delle istruzioni in più passi successivi. Ogni passo dell esecuzione di un istruzione richiede un ciclo di clock; attività appartnenti a fasi diverse dell istruzione vengono quindi eseguite in cicli di cloock diversi. Prima conseguenza: una stessa unità funzionale può essere usata più volte in una stessa istruzione, a patto che sia usata in cicli diversi la condivisione permette di ridurre la complessità dello hardware

91 Il controllo su più cicli di clock Dal momento che un istruzione viene eseguita su più cicli di clock, e che la sequenza e il numero di cicli dipendono dal tipo di istruzione, l unità di controllo sarà ora una rete squenziale; La possibilità di riutilizzare una stessa unità funzionale in diverse fasi (cioè in diversi cicli di clock) permette in realtà di semplificare il Data path si eliminano alcune ridondanze presenti in precedenza

92 Il controllo su più cicli di clock Versione astratta del datapath multiciclo: PC Indir. Istruz. O dato Memoria dato Reg. istruz. Reg. dati dato N reg. N reg. N reg. R.F A B ALU ALU out

93 Il controllo su più cicli di clock Le modifiche principali: L unità di memoria per istruzioni e dati è unificata; C è una sola ALU (si sono eliminati i due diversi addizionatori usati per calcolare l indirizzo della prossima istruzione); Si sono dovuti aggiungere registri in uscita alle varie unità funzionali memoria, Register File, ALU allo scopo di stabilizzare il valore letto o prodotto fino a che possa essere usato nel successivo ciclo di clock. Al termine di ogni ciclo di clock, tutti i dati che verranno usati in un ciclo successivo devono essere registrati in un elemento di stato

94 Il controllo su più cicli di clock I dati usati da istruzioni successive in un successivo ciclo di clock vengono memorizzati dal programmatore in elementi di stato visibili al programmatore register file, PC, memoria; I dati usati dalla stessa istruzione in un successivo ciclo di clock vengono memorizzati in uno dei registri addizionali ora inseriti (che non sono visibili al programmatore):

95 Il controllo su più cicli di clock Si è supposto che in un ciclo di clock si possa compiere (al più) una delle seguenti operazioni: Accesso alla memoria (in lettura o in scrittura); Accesso al register file (due letture o una scrittura); Operazione ALU. A questo scopo: Si inseriscono il registro istruzioni (IR) e il registro dati della memoria (MDR) per scrivere quanto letto in memoria quando si legge rsipettivamente un istruzione oppure un dato; si usano due registri perché (come si vedrà) ambedue le informazioni possono essere necessarie in uno stesso ciclo di clock;

96 Il controllo su più cicli di clock I registri A e B conterranno i valori letti dal register file; Il registro ALUOut conterrà il risultato prodotto dall ALU; All infuori di IR, tutti i registri mantengono il valore solo fra due cicli di clock successivi; non è quindi necessario un segnale esplicito di scrittura (non occorre inibire scritture successive a quella utile); IR deve mantenere il proprio contenuto fino al termine dell esecuzione dell istruzione, quindi dovrà avere un segnale di scrittura esplicito

97 Il controllo su più cicli di clock Diverse unità funzionali vengono condivise per diversi scopi si dovranno inserire nuovi multiplexer o espandere quelli già esistenti (es., l indirizzo della memoria può giungere sia dal PC - nella fase di lettura di un istruzione - sia da ALUOut - nel caso di un istruzione di Load o Store); L ALU deve ora ricevere (tramitre MUX) tutti gli ingressi che nello schema precedente andavano a tre diverse unità aritmetiche

98 Il nuovo schema PC MUX Memoria Indir dati W. data I[25-21] I[20-16] I[15-0] Reg. Istruz MUX MUX Read Rs1 Read Rs2 Write reg Read Data 1 R.F Read Data 2 Writedata A B 4 MUX MUX zero ALU ALUOut Memory data reg. Est. 32 shl

99 Lo schema su più cicli Sul nuovo data path ogni istruzione richiede più cicli cambiano i segnali di controllo; l unità di controllo non sarà più una rete combinatoria, ma una macchina sequenziale (macchina a stati finiti FSM); Occorrono anche qui addizioni per supportare l incremento automatico del PC, i salti condizionati e incondizionati il funzionamento su più cicli di clock indica come generare le addizioni (e con quali segnali di controllo comandarle)

100 Lo schema su più cicli Valori possibili da scrivere nel PC: Valore prodotto dall ALU sommando 4 al valore del PC nel corso della fase di fetch (lettura dell istruzione); Contenuto del registro ALUOut, dove si scrive l indirizzo destinazione nel caso si debba compiere un salto condizionato; I 26 bit meno significativi di un istruzione di salto incondizionato, fatti scorrere a sinistra di due posizioni e concatenati con i 4 bit più significativi del PC già incrementato. Nel caso di un normale incremento o di un salto incondizionato, la scrittura nel PC è incondizionata: nel caso di un salto condizionato, il valore del PC viene sostituito da quello nuovo solo se la condizione è soddisfatta e il salto va fatto occorrono opportuni segnali di controllo

101 L organizzazione dell esecuzione su più cicli Scopo dell esecuzione su più cicli: ottimizzare le prestazioni; Si struttura l esecuzione di ogni istruzione in una serie di passi, ognuno dei quali richieda un ciclo di clock; le attività assegnate a ogni passo devono avere tutte circa la stessa complessità in termini di tempo (es.: al più un operazione ALU, oppure un accesso al register file, oppure un accesso alla memoria); Il datapath della nuova soluzione richiede meno componenti di quello visto con la soluzione a un solo ciclo

102 L organizzazione dell esecuzione su più cicli Alla fine di ogni ciclo di clock qualsiasi dato che sia utile in un ciclo successivo deve essere memorizzato in un registro o uno degli elementi di stato (PC, register file, memoria) oppure un registro ausiliario (A, B, ALUOut) oppure un registro relativo al controllo (es., Instruction Register); Si suppone che tutti i registri siano di tipo edgetriggered, quindi ammettano lettura e scrittura nello stesso ciclo

103 L organizzazione dell esecuzione su più cicli Tutte le operazioni che si raggrupperanno in un passo (= ciclo di clock) useranno in parallelo un certo insieme di elementi del datapath; passi successivi operano in serie durante cicli di clock diversi; Si devono distinguere: lettura o scrittura nel PC o in uno dei registri isolati (parte di un ciclo di clock con un altra operazione); Lettura o scrittura nel Register File richiedono un ciclo di clock separato (l accesso al register file è più complesso, comportando anche indirizzamento etc.)

104 I passi di un istruzione 1. Lettura dell istruzione (fetch): si legge l istruzione dalla memoria e si calcola l indirizzo della prossima istruzione in sequenza: IR<= Memory [PC]; PC<= PC + 4 Operazioni: il PC viene mandato come indirizzo alla memoria, l istruzione letta viene inviata all IR, dove viene scritta. Il PC viene incrementato di 4 (punta alla parola successiva a quella appena letta)

105 I passi di un istruzione 2. Decodifica dell istruzione e lettura dei registri: il significato dell istruzione non è ancora noto, quindi si possono compiere solo operazioni comuni a tutte le istruzioni oppure che anche se in un istruzione non risultano utili comunque non causano danno. Quindi: 1. Si leggono i due registri nei campi rs e rt dell istruzione anche quando non è necessario non fa danno; 2. I valori letti vengono scritti nei registri temporanei A e B; 3. Si calcola la potenziale destinazione di un salto condizionato usando l ALU se poi si scopre che l istruzione non è una branch, si ignorerà il risultato (che viene salvato in ALUOut);

106 I passi di un istruzione 2. (continua): compiere prima possibile, in modo ottimistico, delle operazioni riduce il numero di cicli di clock necessari per compiere un istruzione; la cosa qui è possibile grazie alla regolarità delle istruzioni; A<= Reg[IR[25:21]]; B<= Reg[IR[20:16]]; ALUOut<= PC + (sign-extend((ir[15-00]<<2));

107 I passi di un istruzione Operazioni nella fase 2: si leggono dal R.F. i registri con indirizzi rs e rt e si scrivono i valori nei registri temporanei A e B (la lettura può essere ripetuta in tutti i cicli dell istruzione - i numeri dei registri restano gli stessi!). Si calcola il potenziale indirizzo destinazione di un salto condizionato sommando al PC (aggiornato) i 16 bit meno significativi dell istruzione (spiazzamento), estesi a 32 bit (con segno), e il risultato viene scritto in ALUOut (se l istruzione è veramente un salto condizionato che deve essere effettuato, sarà usato nel prossimo ciclo). Dopo questo ciclo, le operazioni da compiere dal tipo di istruzione

108 I passi di un istruzione (passo 3) 3. Esecuzione, calcolo dell indirizzo di memoria, o completamento di un salto condizionato. È il primo ciclo nel quale le operazioni compiute dal datapath dipendono dal tipo (classe) dell istruzione eseguita. In ogni caso, l ALU esegue un operazione su operandi predisposti nel passo 2 (le operazioni alternative possibili sono 4, a seconda del tipo dell istruzione)

109 I passi di un istruzione (passo 3) 3.A) istruzioni che fanno riferimento alla memoria. Si tratta delle istruzioni Load e Store: l indirizzo di memoria viene calcolato sommando il contenuto del registro letto nel ciclo 2 (e portato in A) allo spiazzamento di 16 bit, già esteso a 32 bit (segno incluso) nel cilco 2: ALUOut<= A + sign-extend(ir[15:0])

110 I passi di un istruzione 3.B) istruzioni aritmetico-logiche (tipo R). l ALU compie l operazione specificata dal codice funzionale sui due valori letti dai registri rs e rt e portati nei registri temporanei A e B nel ciclo 2 ALUOut<= A + B

111 I passi di un istruzione (passo 3) 3.C) istruzioni di salto condizionato (branch). l ALU deve effettuare il confronto fra i due registri letti nel ciclo 2, durante il quale si era anche calcolato l indirizzo obiettivo del salto (che è stato registrato in ALUOut). Se il confronto dà risultato positivo, l indirizzo scritto in ALUOut viene portato nel PC, altrimenti l esecuzione procederà in sequenza e il valore scritto in ALUOut verrà distrutto. if (A==B) PC<= ALUOut

112 I passi di un istruzione (passo 3) 3.D) istruzioni di salto incondizionato (jump). Il contenuto del PC viene sostituito da quello destinazione del salto, ottenuto per concatenazione dello spiazzamento (fatto scorrere a sinistra di due posizioni) e dei quattro bit più significativi del PC. La notazione {x,y} indica la concatenazione dei campi di bit x e y; 2 b00 indica uno scorrimento a sinistra di due posizioni con inserimento di due zeri da destra PC<= {PC[31:28],(IR[25:0],2 b00)}

113 I passi di un istruzione 4. Accesso a memoria o completamento delle istruzioni di tipo R 4.a) le istruzioni Load e Store accedono alla memoria: per la Load, si legge il dato dalla parola di memoria il cui indirizzo è stato calcolato nel passo precedente e caricato in ALUOut; il dato viene portato nel registro dati della memoria (MDR) (viene dato un segnale di controllo MemRead): MDR <= Memory[ALUOut]

114 I passi di un istruzione (passo 4) 4.b) per la Store, il dato presente nel registro sorgente (che era stato letto nel ciclo 2 e viene ora riletto identico) si trova nel registro temporaneo B. Si invia alla memoria l indirizzo calcolato nel ciclo 3 e caricato in ALUOut, e si dà il segnale di controllo MemWrite in modo da trasferire il dato da B alla parola di memoria: Memory[ALUOut] <= B

115 I passi di un istruzione (passo 4) 4.c) Istruzioni di tipo aritmetico o logico (tipo R): il risultato dell operazione (calcolato nel passo precedente e scritto nel registro temporaneo ALUOut) viene scritto nel registro destinazione: Reg [IR[15:11]]<= ALUOut

116 I passi di un istruzione 5. Completamento della lettura da memoria: questo passo viene compiuto solo dall istruzione Load: il valore letto nel passo precedente e scritto nel registro dati della memoria viene scritto nel registro destinazione: Reg[IR[20:16]]<= MDR

117 I passi di un istruzione: sommario Nome del passo lettura Decodifica/ lettura dai registri Azione per le istruzioni di tipo R Azioni per le istruzioni Load e Store Azioni per i salti condizionati IR<= Memory[PC] PC<= PC+4 Azioni per i salti incondizionati A<= Reg[IR[25:21]] B<= Reg[IR[20:16]] ALUOut<= PC+(sign-extend[IR[15:0])<<2) Esecuz., calc. indir., salto cond., complet. jump Accesso a mem., complet. Tipo R Complet. Lettura memoria Reg[IR[15 :11]] <= ALUOut Reg[IR[15 :11]]<= ALUOut ALUOut<= A + sign-extend (IR[15:0]) Load:MDR<=Mem[A LUOut] Store:Mem[ALUOo ut]<=b Load: Reg[IR[20:16]]< =MDR If (A==B) PC<=ALUOut PC<={PC[31:28], (IR[25:0]],2 b00))}

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

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H

Architettura dei calcolatori e sistemi operativi. Il processore Capitolo 4 P&H Architettura dei calcolatori e sistemi operativi Il processore Capitolo 4 P&H 4. 11. 2015 Sommario Instruction Set di riferimento per il processore Esecuzione delle istruzioni Struttura del processore

Dettagli

Elementi base per la realizzazione dell unità di calcolo

Elementi base per la realizzazione dell unità di calcolo Elementi base per la realizzazione dell unità di calcolo Memoria istruzioni elemento di stato dove le istruzioni vengono memorizzate e recuperate tramite un indirizzo. ind. istruzione Memoria istruzioni

Dettagli

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini

Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Implementazione semplificata

Implementazione semplificata Il processore 168 Implementazione semplificata Copre un sottoinsieme limitato di istruzioni rappresentative dell'isa MIPS aritmetiche/logiche: add, sub, and, or, slt accesso alla memoria: lw, sw trasferimento

Dettagli

Capitolo 5 Elementi architetturali di base

Capitolo 5 Elementi architetturali di base Capitolo 5 Elementi architetturali di base Giuseppe Lami Istituto di Scienza e Tecnologie dell Informazione CNR Via Moruzzi, 1 - Pisa giuseppe.lami@isti.cnr.it Struttura - Unità di elaborazione e controllo

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

Valutazione delle Prestazioni

Valutazione delle Prestazioni Valutazione delle Prestazioni Misure per le Prestazioni T durata del ciclo di clock [secondi] F numero cicli di clock al secondo [hertz] F 1 / T T 1 / F Exe_Time X tempo di esecuzione (CPU) di un programma

Dettagli

Università degli Studi di Cassino

Università degli Studi di Cassino Corso di Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 2007/2008 Francesco Tortorella Istruzioni di confronto Istruzione Significato slt $t1,$t2,$t3 if

Dettagli

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M.

Corso di Calcolatori Elettronici MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. di Cassino e del Lazio Meridionale Corso di MIPS: Istruzioni di confronto Istruzioni di controllo Formato delle istruzioni in L.M. Anno Accademico 201/201 Francesco Tortorella Istruzioni di confronto Istruzione

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

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

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

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione Architettura di un calcolatore e linguaggio macchina Primo modulo Tecniche della programmazione CPU Central Processing Unit, processore Unita logica/aritmetica: elaborazione dati Unita di controllo: coordina

Dettagli

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche

Linguaggio macchina. 3 tipi di istruzioni macchina. Istruzioni per trasferimento dati. Istruzioni logico/aritmetiche 3 tipi di istruzioni macchina Linguaggio macchina e assembler 1) trasferimento tra RAM e registri di calcolo della CPU 2) operazioni aritmetiche: somma, differenza, moltiplicazione e divisione 3) operazioni

Dettagli

Cicli di clock e istruzioni

Cicli di clock e istruzioni Cicli di clock e istruzioni Numero di cicli di clock differenti per istruzioni differenti Le moltiplicazioni impiegano più tempo delle addizioni Operazioni in virgola mobile impiegano più tempo delle operazioni

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

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione:

Architettura degli Elaboratori. Classe 3 Prof.ssa Anselmo. Appello del 18 Febbraio Attenzione: Cognome.. Nome.... Architettura degli Elaboratori Classe 3 Prof.ssa Anselmo Appello del 18 Febbraio 2015 Attenzione: Inserire i propri dati nell apposito spazio sottostante e in testa a questa pagina.

Dettagli

Calcolo numerico e programmazione Rappresentazione dei numeri

Calcolo numerico e programmazione Rappresentazione dei numeri Calcolo numerico e programmazione Rappresentazione dei numeri Tullio Facchinetti 16 marzo 2012 10:54 http://robot.unipv.it/toolleeo Rappresentazione dei numeri nei calcolatori

Dettagli

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

Corso di Alfabetizzazione Informatica 2001/2002. La CPU. F. Tortorella Università degli Studi. di Cassino Corso di Alfabetizzazione Informatica / La CPU CPU (Central Processing Unit) Funzione: eseguire i programmi immagazzinati in memoria principale prelevando le istruzioni (e i relativi), interpretandole

Dettagli

Processore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite

Processore: Datapath & Control. Progetto CPU (ciclo singolo) Rivediamo i formati delle istruzioni. ISA di un MIPS-lite Processore: Datapath & Control Possiamo finalmente vedere il progetto di un processore MIPS-like semplificato Progetto CPU (ciclo singolo) Semplificato in modo tale da eseguire solo: istruzioni di memory-reference:

Dettagli

Esempio: aggiungere j

Esempio: aggiungere j Esempio: add Esempio: load Esempio: beq Esempio: aggiungere j Eccezioni e interruzioni Il progetto del controllo del processore si complica a causa della necessità di considerare, durante l esecuzione

Dettagli

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi

Somma di numeri floating point. Algoritmi di moltiplicazione e divisione per numeri interi Somma di numeri floating point Algoritmi di moltiplicazione e divisione per numeri interi Standard IEEE754 " Standard IEEE754: Singola precisione (32 bit) si riescono a rappresentare numeri 2.0 10 2-38

Dettagli

Laboratorio di Architettura degli Elaboratori

Laboratorio di Architettura degli Elaboratori Laboratorio di Architettura degli Elaboratori Dott. Massimo Tivoli Set di istruzioni del MIPS32: istruzioni aritmetiche e di trasferimento Istruzioni (Alcune) Categorie di istruzioni in MIPS Istruzioni

Dettagli

Architettura di tipo registro-registro (load/store)

Architettura di tipo registro-registro (load/store) Caratteristiche principali dell architettura del processore MIPS E un architettura RISC (Reduced Instruction Set Computer) Esegue soltanto istruzioni con un ciclo base ridotto, cioè costituito da poche

Dettagli

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura

Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina

Dettagli

Progetto di Contatori sincroni. Mariagiovanna Sami Corso di reti Logiche 8 Anno

Progetto di Contatori sincroni. Mariagiovanna Sami Corso di reti Logiche 8 Anno Progetto di Contatori sincroni Mariagiovanna Sami Corso di reti Logiche 8 Anno 08 Introduzione Per le reti sequenziali esistono metodologie di progettazione generali, che partendo da una specifica a parole

Dettagli

Il Modello di von Neumann (2) Prevede 3 entità logiche:

Il Modello di von Neumann (2) Prevede 3 entità logiche: Introduzione all Architettura degli Elaboratori Sommario Macchina di von Neumann Esecuzione dei programmi Rappresentazione dei dati Dati numerici Dati alfabetici 1 2 Il Modello di von Neumann (1) L architettura

Dettagli

Corso di Architettura (Prof. Scarano) 09/04/2002

Corso di Architettura (Prof. Scarano) 09/04/2002 Corso di Architettura (Prof. Scarano) 09/0/2002 Un quadro della situazione Lezione 15 Il Set di Istruzioni (1) Vittorio Scarano Architettura Corso di Laurea in Informatica Università degli Studi di Salerno

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

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003

Il Ciclo Fetch-Decode-Execute. C Nyssen/Aberdeen College 2003 Il Ciclo Fetch-Decode-Execute C Nyssen/Aberdeen College 2003 Linguaggio Assembler Op code (Mnemonico) Operando #assembly code program 0000 LDA-24 #loads 0001 ADD-25 #adds 0002 HLT #stops #end of program

Dettagli

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE Il computer o elaboratore è una macchina altamente organizzata capace di immagazzinare, elaborare e trasmettere dati con notevole precisione e rapidità. Schematicamente

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

Esercitazione su Instruction Level Parallelism

Esercitazione su Instruction Level Parallelism Esercitazione su Instruction Level Parallelism Salvatore Orlando Arch. Elab. - S. Orlando 1 Pipeline con e senza forwarding Si considerino due processori MIPS (processore A e B) entrambi con pipeline a

Dettagli

Influenza dell' I/O sulle prestazioni (globali) di un sistema

Influenza dell' I/O sulle prestazioni (globali) di un sistema Influenza dell' I/O sulle prestazioni (globali) di un sistema Tempo totale per l'esecuzione di un programma = tempo di CPU + tempo di I/O Supponiamo di avere un programma che viene eseguito in 100 secondi

Dettagli

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti

L unità di controllo. Il processore: unità di controllo. Le macchine a stati finiti. Struttura della macchina a stati finiti Il processore: unità di lo Architetture dei Calcolatori (lettere A-I) L unità di lo L unità di lo è responsabile della generazione dei segnali di lo che vengono inviati all unità di elaborazione Alcune

Dettagli

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo

Dettagli

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe.

Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. Problema: dati i voti di tutti gli studenti di una classe determinare il voto medio della classe. 1) Comprendere il problema 2) Stabilire quali sono le azioni da eseguire per risolverlo 3) Stabilire la

Dettagli

Architettura degli Elaboratori

Architettura degli Elaboratori Moltiplicazione e divisione tra numeri interi: algoritmi e circuiti slide a cura di Salvatore Orlando, Marta Simeoni, Andrea Torsello Operazioni aritmetiche e logiche Abbiamo visto che le ALU sono in grado

Dettagli

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina

Dettagli

I bistabili ed il register file

I bistabili ed il register file I bistabili ed il register file Prof. Alberto Borghese ipartimento di Scienze dell Informazione borghese@dsi.unimi.it Università degli Studi di Milano 1/32 Sommario I problemi dei latch trasparenti sincroni

Dettagli

I.4 Rappresentazione dell informazione

I.4 Rappresentazione dell informazione I.4 Rappresentazione dell informazione Università di Ferrara Dipartimento di Economia e Management Insegnamento di Informatica Ottobre 13, 2015 Argomenti Introduzione 1 Introduzione 2 3 L elaboratore Introduzione

Dettagli

Come funzionano i computer

Come funzionano i computer Fluency Come funzionano i computer Capitolo 6 Cosa sanno fare Esecuzione deterministica istruzioni per elaborare dati Devono ricevere una serie di istruzioni da seguire Cosa non sanno fare Non hanno immaginazione

Dettagli

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile) Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) La macchina di Von Neumann Le periferiche Software (tutto ciò che non e tangibile) Il sistema operativo I programmi applicativi

Dettagli

Istruzioni assembler Istruzione N Registri

Istruzioni assembler Istruzione N Registri Istruzioni assembler Istruzione N Registri Aritmetica add a, b, c a = b+c addi a, b, num a = b + sub a, b, c a = b - c mul a, b, c a = b*c div a, b, c a = b/c utilizzati Descrizione 3 Somma. Somma b e

Dettagli

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly

Lezione 20. Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Architettura degli Elaboratori Lezione 20 Assembly MIPS: Il set istruzioni, strutture di controllo in Assembly Prof. F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano

Dettagli

Capitolo 7: Input/Output. Es.1 - Bus sincrono. Es.1 - Risposta (a)

Capitolo 7: Input/Output. Es.1 - Bus sincrono. Es.1 - Risposta (a) Esercitazione di Calcolatori Elettronici Ing. Gian Luca Marcialis Corso di Laurea in Ingegneria Elettronica Capitolo 7: Input/Output Capitolo 7 Input/Output Esercizi sul BUS: 1. Bus sincrono 2. Arbitraggio

Dettagli

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.

Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A. < < } } Lezione 5 e 6 Accesso a memoria A questo livello di astrazione, la memoria viene vista come un array di byte Per ogni richiesta di un dato ad un certo indirizzo, la CPU ottiene un numero di byte

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

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Richiamo sull

Dettagli

Caratteristiche di un linguaggio ad alto livello

Caratteristiche di un linguaggio ad alto livello Caratteristiche di un linguaggio ad alto livello Un linguaggio ad alto livello deve offrire degli strumenti per: rappresentare le informazioni di interesse dell algoritmo definire le istruzioni che costituiscono

Dettagli

Rapida Nota sulla Rappresentazione dei Caratteri

Rapida Nota sulla Rappresentazione dei Caratteri TECNOLOGIA DIGITALE TECNOLOGIA DIGITALE (segue) CPU, memoria centrale e dispositivi sono realizzati con tecnologia elettronica digitale Dati ed operazioni vengono codificati tramite sequenze di bit 8 bit

Dettagli

Sviluppo di programmi

Sviluppo di programmi Sviluppo di programmi Per la costruzione di un programma conviene: 1. condurre un analisi del problema da risolvere 2. elaborare un algoritmo della soluzione rappresentato in un linguaggio adatto alla

Dettagli

Linguaggi di alto livello, compilatori e interpreti

Linguaggi di alto livello, compilatori e interpreti Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI

Dettagli

La "macchina" da calcolo

La macchina da calcolo La "macchina" da calcolo Abbiamo detto che gli algoritmi devono essere scritti in un linguaggio "comprensibile all'esecutore" Se il nostro esecutore è il "calcolatore", questo che linguaggio capisce? che

Dettagli

Progetto del processore e supporto del processore al SO (interruzioni eccezioni) Salvatore Orlando

Progetto del processore e supporto del processore al SO (interruzioni eccezioni) Salvatore Orlando Progetto del processore e supporto del processore al SO (interruzioni eccezioni) Salvatore Orlando Arch. Elab. - S. Orlando 1 Eccezioni e interruzioni Il progetto del controllo del processore si complica

Dettagli

Sistemi di numerazione

Sistemi di numerazione SOMMARIO Sistemi di numerazione...2 Sistema decimale (o a base 10)...2 Sistema binario...2 Operazioni sui numeri binari...3 Espressioni logiche...4 Definizione...4 Prodotto Logico : AND...4 Somma Logica

Dettagli

LA GESTIONE DELLA I/O

LA GESTIONE DELLA I/O LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono

Dettagli

Architettura di un processore basato su registri generali.

Architettura di un processore basato su registri generali. Architettura di un processore basato su registri generali. M. Esposito (mesposit@unina.it) 26 febbraio 2007 In Fig. 1 è riportato uno schema di principio che raffigura l architettura di un processore basato

Dettagli

Il calcolatore. Architettura di un calcolatore (Hardware)

Il calcolatore. Architettura di un calcolatore (Hardware) Il calcolatore Prima parlare della programmazione, e' bene fare una brevissima introduzione su come sono strutturati i calcolatori elettronici. I calcolatori elettronici sono stati progettati e costruiti

Dettagli

Architetture aritmetiche

Architetture aritmetiche Architetture aritmetiche Sommatori: : Full Adder, Ripple Carry Sommatori: Carry Look-Ahead Ahead, Carry Save, Add/Subtract Moltiplicatori: Combinatori, Wallace,, Sequenziali Circuiti per aritmetica in

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

FUNZIONI BOOLEANE. Vero Falso

FUNZIONI BOOLEANE. Vero Falso FUNZIONI BOOLEANE Le funzioni booleane prendono il nome da Boole, un matematico che introdusse un formalismo che opera su variabili (dette variabili booleane o variabili logiche o asserzioni) che possono

Dettagli

LEZIONE 2 Il processore e la memoria centrale

LEZIONE 2 Il processore e la memoria centrale Informatica per Igienisti Dentali LEZIONE 2 Il processore e la memoria centrale 1 Il linguaggio macchina Il processore è in grado di riconoscere (e quindi di eseguire) solo programmi scritti in un proprio

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

Informatica: Lez. 1. Andrea Payaro. (European Logistics Association)

Informatica: Lez. 1. Andrea Payaro. (European Logistics Association) Informatica: Lez. 1 Andrea Payaro Consulente Certificato da ELA (European Logistics Association) andrea@payaro.it Andrea Payaro Ph.D. in Business Management at University of Padova Committee member of

Dettagli

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari

Lezione 4. Sommario. L artimetica binaria: I numeri relativi e frazionari. I numeri relativi I numeri frazionari Lezione 4 L artimetica binaria: I numeri relativi e frazionari Sommario I numeri relativi I numeri frazionari I numeri in virgola fissa I numeri in virgola mobile 1 Cosa sono inumeri relativi? I numeri

Dettagli

Lezione4: MIPS e Istruzioni (1 Parte)

Lezione4: MIPS e Istruzioni (1 Parte) Architettura degli Elaboratori Lezione4: MIPS e Istruzioni (1 Parte) Michele Nappi mnappi@unisa.it http://www.biplab.unisa.it/ Alcune slide di questa lezione sono prodotte dal Prof. Luigi Palopoli AGENDA

Dettagli

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia

Cos è un algoritmo. Si dice algoritmo la descrizione di un metodo di soluzione di un problema che sia Programmazione Un programma descrive al computer, in estremo dettaglio, la sequenza di passi necessari a svolgere un particolare compito L attività di progettare e realizzare un programma è detta programmazione

Dettagli

PROGRAMMAZIONE STRUTTURATA

PROGRAMMAZIONE STRUTTURATA PROGRAMMAZIONE STRUTTURATA Programmazione strutturata 2 La programmazione strutturata nasce come proposta per regolamentare e standardizzare le metodologie di programmazione (Dijkstra, 1965) Obiettivo:

Dettagli

Bit, Byte, Word e Codifica Dati

Bit, Byte, Word e Codifica Dati Bit, Byte, Word e Codifica Dati Come vengono immagazzinati i dati nella memoria? Le informazioni salvate e non all'interno della memoria del calcolatore vengono gestite come un insieme di numeri in sistema

Dettagli

La codifica digitale

La codifica digitale La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore

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

Lecture 2: Prime Istruzioni

Lecture 2: Prime Istruzioni [http://www.di.univaq.it/muccini/labarch] Modulo di Laboratorio di Architettura degli Elaboratori Corso di Architettura degli Elaboratori con Laboratorio Docente: H. Muccini Lecture 2: Prime Istruzioni

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

Il processore: unità di elaborazione e unità di controllo (3)

Il processore: unità di elaborazione e unità di controllo (3) Il processore: nità di elaborazione e nità di lo () rchitettre dei Calcolatori (lettere -I) Limitazione del ciclo singolo I tempi di accesso per le diverse istrzioni variano, ad esempio ccesso in memoria:

Dettagli

Università degli Studi di Cassino e del Lazio Meridionale

Università degli Studi di Cassino e del Lazio Meridionale di Cassino e del Lazio Meridionale Corso di Misura delle prestazioni Anno Accademico Francesco Tortorella Misura delle prestazioni E fondamentale definire una metrica corretta per misurare le prestazioni

Dettagli

Modi di indirizzamento

Modi di indirizzamento Vari modi di specificare l indirizzo degli operandi Modi di indirizzamento Capitolo 11 Immediato Diretto Indiretto Registro Registro indiretto Spiazzamento Pila 1 2 Indirizzamento immediato L operando

Dettagli

Architettura di una CPU

Architettura di una CPU Massimo VIOLANTE Politecnico di Torino Dipartimento di Automatica e Informatica Sommario Organizzazione di un processore Linguaggio macchina Modi di indirizzamento Tipi di istruzioni 2 M. Violante 1.1

Dettagli

20 Tecnica del sequenziatore

20 Tecnica del sequenziatore 20 Tecnica del sequenziatore 1. Funzionamento di un sequenziatore logico Fig. 1. Modulo di base per sequenziatore. L uso del sequenziatore pneumatico presenta i seguenti vantaggi: semplicità di progettazione;

Dettagli

Sistemi Web per il turismo - lezione 3 -

Sistemi Web per il turismo - lezione 3 - Sistemi Web per il turismo - lezione 3 - Software Si definisce software il complesso di comandi che fanno eseguire al computer delle operazioni. Il termine si contrappone ad hardware, che invece designa

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

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012

Fondamenti di Informatica - 1. Prof. B.Buttarazzi A.A. 2011/2012 Fondamenti di Informatica - 1 Prof. B.Buttarazzi A.A. 2011/2012 Sommario Rappresentazione dei numeri naturali (N) Rappresentazione dei numeri interi (Z) Modulo e segno In complemento a 2 Operazioni aritmetiche

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Risoluzione dei circuiti elettrici col metodo dei sistemi di equazioni

Risoluzione dei circuiti elettrici col metodo dei sistemi di equazioni Risoluzione dei circuiti elettrici col metodo dei sistemi di equazioni Definizioni e breve richiamo alle principali leggi dei circuiti elettrici Risolvere un circuito elettrico significa determinare i

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

Modi di esecuzione user / kernel

Modi di esecuzione user / kernel Corso di Gestione eccezioni nel MIPS Interruzioni Anno Accademico 2006/2007 Francesco Tortorella Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione

Dettagli

Calcolatori Elettronici Parte VIII: linguaggi assemblativi

Calcolatori Elettronici Parte VIII: linguaggi assemblativi Anno Accademico 2013/2014 Calcolatori Elettronici Parte VIII: linguaggi assemblativi Prof. Riccardo Torlone Universita di Roma Tre Linguaggi di Programmazione Linguaggi ad alto livello Maggiore espressività

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

PROBLEMI ALGORITMI E PROGRAMMAZIONE

PROBLEMI ALGORITMI E PROGRAMMAZIONE PROBLEMI ALGORITMI E PROGRAMMAZIONE SCIENZE E TECNOLOGIE APPLICATE CLASSE SECONDA D PROGRAMMARE = SPECIFICARE UN PROCEDIMENTO CAPACE DI FAR SVOLGERE AD UNA MACCHINA UNA SERIE ORDINATA DI OPERAZIONI AL

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici La memoria gerarchica La cache: come migliorare le prestazioni Ricapitolando (1) La memoria principale e la cache sono scomposte in blocchi di uguale dimensione L indirizzo del

Dettagli

Esercitazioni di Reti Logiche. Lezione 4

Esercitazioni di Reti Logiche. Lezione 4 Esercitazioni di Reti Logiche Lezione 4 Progettazione dei circuiti logici combinatori Zeynep KIZILTAN zkiziltan@deis.unibo.it Argomenti Procedura di analisi dei circuiti combinatori. Procedura di sintesi

Dettagli

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

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf Architettura di un calcolatore e ciclo macchina Appunti per la classe 3 Dinf Il Sistema di Elaborazione Computer Hardware Software 2 Hardware Struttura fisica del calcolatore formata dai circuiti elettronici

Dettagli

Cap. 2 - Rappresentazione in base 2 dei numeri interi

Cap. 2 - Rappresentazione in base 2 dei numeri interi Cap. 2 - Rappresentazione in base 2 dei numeri interi 2.1 I NUMERI INTERI RELATIVI I numeri relativi sono numeri con il segno: essi possono essere quindi positivi e negativi. Si dividono in due categorie:

Dettagli

Struttura del processore. Funzionamento del processore

Struttura del processore. Funzionamento del processore Struttura del processore L unità di elaborazione Funzionamento del processore. Prelievo dell istruzione dalla memoria al processore (dall indirizzo indicato dal PC al registro di istruzione IR) IR [[PC]]

Dettagli

Introduzione alle macchine a stati (non definitivo)

Introduzione alle macchine a stati (non definitivo) Introduzione alle macchine a stati (non definitivo) - Introduzione Il modo migliore per affrontare un problema di automazione industriale (anche non particolarmente complesso) consiste nel dividerlo in

Dettagli

Soluzione Esercizio 1

Soluzione Esercizio 1 Esercizio 1 Si consideri una notazione binaria in virgola mobile a 16 bit, detta ALFA, di cui (nell ordine da sinistra a destra) si usa 1 bit per il segno (0=positivo), 6 bit per l esponente, che è rappresentato

Dettagli

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA

Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA Lezione n.11 n.11 Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di base relativi

Dettagli

APPUNTI DI INFORMATICA

APPUNTI DI INFORMATICA APPUNTI DI INFORMATICA Per il biennio di liceo scientifico scienze applicate Sommario Il calcolo binario... 2 Numerazione Decimale... 2 Numerazione Binaria... 2 Conversione Binario -> Decimale... 2 Conversione

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

Algoritmi. Pagina 1 di 5

Algoritmi. Pagina 1 di 5 Algoritmi Il termine algoritmo proviene dalla matematica e deriva dal nome di in algebrista arabo del IX secolo di nome Al-Khuwarizmi e sta ad indicare un procedimento basato su un numero finito operazioni

Dettagli