DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 20 Maggio.

Slides:



Advertisements
Presentazioni simili
La struttura fisica e logica di un elaboratore
Advertisements

Introduzione allarchitettura dei calcolatori 2/ed Carl Hamacher, Zvonko Vranesic, Safwat Zaky Copyright © 2007 – The McGraw-Hill Companies srl Versione.
Elaboratore e Sistemi Operativo
Algoritmi e Programmazione
Informatica Generale Susanna Pelagatti
Architettura di un sistema informatico Hardware
DAL MICROPROCESSORE AI SISTEMI EMBEDDED Informatica per lAutomazione II (Informatica B o II) Anno accademico 2008/2009 Prof. Giuseppe Mastronardi Ing.
CdL Ingegneria Informatica n.o. Anno Accademico 2007/08 Fondamenti di Informatica I – corso A Giacomo Piscitellipag. 1/30 Architettura dei calcolatori.
Il Linguaggio Macchina
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 21 Marzo 2013.
2 Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione dati memorizzazione dati trasferimento.
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Il Linguaggio Macchina
Com’è fatto un elaboratore?
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per lambiente e il territorio Il calcolatore Stefano Cagnoni e Monica Mordonini Dipartimento.
La macchina di von Neumann
L’Architettura del Sistema di Elaborazione
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
Architettura dell’elaboratore
ELETTRONICA DIGITALE (II Parte)
L' ARCHITETTURA DI VON NEUMANN
I vettore interruzioni
Architettura del calcolatore
Dimitri Caruso Classe 2^ Beat ISIS G. Meroni Anno Scolastico 2007/08
ARCHITETTURA DI UN ELABORATORE
Unità centrale di processo
Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione Anno accademico:
Architettura di una CPU
Architettura del calcolatore
Calcolatori Elettronici Il Processore
Luglio 2004Generalità Hardware1 Luglio Generalità Hardware2 MACCHINA DI VON NEUMAN (1947) BUS Processore Elaborazione Controllo Memoria Ingresso.
Parte 3 Lo stato: variabili, espressioni ed assegnazioni
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Ottobre 2014.
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Calcolatori Elettronici Il Processore (2)
Laboratorio Informatico
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
Algoritmi e basi del C Struttura di un programma
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori Marco D. Santambrogio – Ver. aggiornata al 11 Marzo 2014.
Corso di Informatica Corso di Laurea in Conservazione e Restauro dei Beni Culturali Gianluca Torta Dipartimento di Informatica Tel: Mail:
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 8 Aprile 2015.
Algoritmi e basi del C Struttura di un programma
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 26 Marzo 2014.
Architettura di un calcolatore e linguaggio macchina.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
L’esecuzione dei programmi
Informatica Generale Marzia Buscemi
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Il calcolatore Stefano Cagnoni e Monica Mordonini
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Informatica Lezione 4 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico:
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 14 Marzo 204.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 15 Maggio.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Array e “stringhe” Marco D. Santambrogio – Ver. aggiornata al 28 Ottobre 2014.
Codifica binaria dell’informazione
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 1 Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Codifica binaria dell’informazione Marco D. Santambrogio – Ver. aggiornata al 24.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Algoritmi e basi del C Marco D. Santambrogio – Ver. aggiornata al 24 Agosto 2015.
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Click to add text L’ Unità di Elaborazione. Struttura : Unità di controllo: coordina attività CPU ALU: unità aritmetico-logica, esegue operazioni tra.
I Microprocessori Unità 3 del libro Internet Working Sistemi e reti.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione pre 1ma prova in itinere Marco D. Santambrogio – Ver. aggiornata.
Il modello di Von Neumann
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Architettura degli elaboratori
Transcript della presentazione:

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il sistema di elaborazione Marco D. Santambrogio – Ver. aggiornata al 20 Maggio 2015

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Un po’ di logistica… 2

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 2ndo Compitino 21 NECST Lab (12.30pm) 22 CG1 (2pm) 22 CG1 (3.30pm) 3

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Info (con i compitini) ed EIM Avete superato INFO con i compitini?  Ricordo che si supera con un tot di 55% 4

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Info (con i compitini) ed EIM Avete superato INFO con i compitini?  Ricordo che si supera con un tot di 55% FINITO!!! 5

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Cristiana Bolchini 6

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Info (con i compitini) ed EIM Avete superato INFO con i compitini?  Ricordo che si supera con un tot di 55% Dovete superare EIM nella sessione estiva  Ricordo che una sessione = due prove (nello stesso periodo)  Ricordo che vi sono 3 sessioni Luglio (estiva), Settembre (autunnale(?)), Febbraio (invernale) 7

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Lab di EIM Giovedi’: Abba' a Conti Lunedi’: Core a Luraghi 8

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Giusto per fare il punto su ven… ENIAC (170m 2 30t 20 numeri)1960 Burroughs 205 Apple ~1980 (16kb)IBM 1981 (64kb) 2015

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Giusto per fare il punto su ven… ENIAC (170m 2 30t 20 numeri)1960 Burroughs 205 Apple ~1980 (16kb)IBM 1981 (64kb) 2015

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Giusto per fare il punto su ven… ENIAC (170m 2 30t 20 numeri)1960 Burroughs 205 Apple ~1980 (16kb)IBM 1981 (64kb) 2015

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Giusto per fare il punto su ven… ENIAC (170m 2 30t 20 numeri)1960 Burroughs 205 Apple ~1980 (16kb)IBM 1981 (64kb) 2015

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Giusto per fare il punto su ven… ENIAC (170m 2 30t 20 numeri)1960 Burroughs 205 Apple ~1980 (16kb)IBM 1981 (64kb) 2015

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONEObiettivi Codifica delle istruzioni e dei dati per l’esecuzione automatica Architettura dei calcolatori  Struttura e principi di funzionamento della CPU della memoria centrale 14

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE L’ “esecutore” Un calcolatore basato sull’architettura di Von Neumann esegue un programma sulla base dei seguenti principi: Un calcolatore basato sull’architettura di Von Neumann esegue un programma sulla base dei seguenti principi:  dati e istruzioni sono memorizzati in una memoria unica che permette sia la scrittura che la lettura;  i contenuti della memoria sono indirizzati in base alla loro posizione, indipendentemente dal tipo di dato o istruzione contenuto;  le istruzioni vengono eseguite in modo sequenziale. Il linguaggio per cui la CPU si comporta da esecutore è detto linguaggio macchina. Le istruzioni scritte in linguaggio macchina sono piuttosto rudimentali: Il linguaggio per cui la CPU si comporta da esecutore è detto linguaggio macchina. Le istruzioni scritte in linguaggio macchina sono piuttosto rudimentali:  il concetto di tipo di dato è quasi assente,  il numero di operandi è limitato (in genere non più di due),  il numero di operazioni previste è ridotto. Struttura istruzionecodice operativodestsrc1src2 Linguaggio assemblatoreaddR01R02R03 Linguaggio macchina

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ciclo Fetch–Decode–Execute Fetch Decode Execute 16

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Le parti di una CPU Data path (o percorso dei dati)  è la parte che si occupa dell’effettiva elaborazione dei dati;  comprende dispositivi diversi una o più unità aritmetico-logiche, dette ALU (Arithmetic Logic Unit); alcune unità di memorizzazione temporanea, i registri, memoria ad alta velocità usata per risultati temporanei e informazioni di controllo (il valore massimo memorizzabile in un registro è determinato dalle dimensioni del registro). Unità di controllo  coordina le operazioni di tutto il processore (anche quelle del data path!);  regola il flusso dei dati e indica quali registri debbano essere collegati agli ingressi e all’uscita dell’ALU;  invia all’ALU il codice dell’operazione da eseguire;  riceve indicazioni sull’esito dell’operazione appena eseguita dall’ALU e gestisce opportunamente queste informazioni;  comprende alcuni registri di uso specifico Program Counter (PC) – qual è l’istruzione successiva; Instruction Register (IR) – istruzione in corso d’esecuzione; Program Status Word (PSW) … 17

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Data path Registri ingresso ALU R00R01R02R03………… Registri ALUALU Registro uscita ALU X Y X+YX+YX+YX+Y Istruzione (e.g. add) esito X Y X+YX+YX+YX+Y X Y 18

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Unità di controllo Memoria Bus dati Bus indirizzi Bus controllo PC PSW Data path Unità di controllo CPU IR Registri ALU Collegamenti per il trasferimento dati Collegamenti di controllo Collegamenti per il trasferimento istruzioni 19

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Una sequenza di istruzioni … Ipotizziamo che Ipotizziamo che  si debba eseguire l’istruzione A A + B + C (assegna alla variabile A la somma del contenuto delle variabili A, B e C);  le corrispondenti istruzioni in linguaggio macchina si trovino all’indirizzo 789, 790, 791, … (come riportato nella tabella sottostante);  le variabili A, B e C si trovino rispettivamente nelle celle di memoria 4000 (A), 4004 (B) e 4008 (C). NumIstruzioneCommento …… … … 789load R02,4000 trasferisce il contenuto della cella 4000 (A) nel registro R02 790load R03,4004 trasferisce il contenuto della cella 4004 (B) nel registro R03 791add R01,R02,R03 somma il contenuto dei registri R02 e R03 e scrive il risultato in R01 792load R02,4008 trasferisce il contenuto della cella 4008 (C) nel registro R02 793add R01,R01,R02 somma il contenuto dei registri R01 e R02 e scrive il risultato in R01 794store R01,4000 trasferisce il contenuto del registro R01 nella cella 4000 (A) …… … … 20

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Situazione iniziale 0789 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati Collegamenti di controllo Collegamenti per il trasferimento dati Collegamenti per il trasferimento istruzioni 21

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0789 Lettura istruzione Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati load R02, lettura 22

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0790 Esecuzione istruzione 0789 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati load R02, lettura 23

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0790 Lettura istruzione Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati load R03, load R02, lettura 24

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0791 Esecuzione istruzione 0790 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati load R03, lettura

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0791 Lettura istruzione Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati add R01,R02,R load R03, lettura

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0792 Esecuzione istruzione 0791 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati add R01,R02,R add esito

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0792 Lettura istruzione Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati load R02, add R01,R02,R lettura

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0793 Esecuzione istruzione 0792 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati load R02, lettura

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0793 Lettura istruzione Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati add R01,R01,R load R02, lettura

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0794 Esecuzione istruzione 0793 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati add R01,R01,R add esito

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 0794 Lettura istruzione Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … … … … … … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati store R01, add R01,R01,R lettura

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE … … … … … … … … Esecuzione istruzione 0794 Bus dati Bus indirizzi Bus controllo … … … … 0789load R02, load R03, add R01,R02,R load R02, add R01,R01,R store R01,4000 … … … … PSW Data path Unità di controllo CPURegistri ALU IR PC R00 R01 R02 R03 R04 R05 … MemoriaIstruzioni Dati store R01, scrittura

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Ma dati e istruzioni, dove sono salvati? 34 in memoria

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Criteri di caratterizzazione di una memoria Velocità  tempo di accesso (access time) (quanto passa tra una richiesta e la relativa risposta)  velocità di trasferimento (transfer rate) (quanti byte al secondo si possono trasferire) Volatilità  cosa succede quando la memoria non è alimentata?  per quanto tempo i dati vi rimangono immagazzinati? Capacità  quanti byte può contenere? qual è la dimensione massima? Costo (per bit) Modalità di accesso  diretta (o casuale): il tempo di accesso è indipendente dalla posizione  sequenziale: il tempo di accesso dipende dalla posizione  mista: combinazione dei due casi precedenti  associativa: indicato il dato, la memoria risponde indicando l’eventuale posizione che il dato occupa in memoria. 35

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Gerarchia di memoria! 36 Obiettivo: realizzare una memoria grossa e veloce  dimensioni pari a circa quelle della memoria grossa; Memorie di gran capacità, relativamente lente, economiche ed accessibili tramite il bus  prestazioni pari a circa quelle della memoria veloce. Memorie veloci, integrate nello stesso chip della CPU, ma costose Man mano che ci si sposta verso il basso nella gerarchia aumenta il valore dei parametri fondamentali:  aumenta il tempo di accesso;  aumenta la capacità di memorizzazione;  ma diminuisce il costo per bit.

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Una gerarchia di memoria 37

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Indirizzi di memoria I bit nelle memorie sono raggruppati in celle: I bit nelle memorie sono raggruppati in celle:  tutte le celle sono formate dallo stesso numero di bit;  una cella composta da k bit, è in grado di contenere una qualunque tra le 2 k combinazioni diverse di bit. Ogni cella ha un indirizzo: Ogni cella ha un indirizzo:  serve come accesso all’informazione;  in una memoria con N celle gli indirizzi vanno da 0 a N–1. La cella è l’unità indirizzabile più piccola. In quasi tutti i calcolatori è di 8 bit (un byte). La cella è l’unità indirizzabile più piccola. In quasi tutti i calcolatori è di 8 bit (un byte). I byte vengono raggruppati in parole (che oggi sono di 32/64 bit), su cui la CPU esegue le operazioni. I byte vengono raggruppati in parole (che oggi sono di 32/64 bit), su cui la CPU esegue le operazioni. 38

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Organizzazione della memoria 39

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Organizzazione della memoria Anche gli indirizzi della memoria sono rappresentati come numeri binari: Anche gli indirizzi della memoria sono rappresentati come numeri binari:  un indirizzo di M bit consente di indirizzare 2 M celle;  per 6 o 8 celle bastano 3 bit, per 12 celle ne servono 4;  il numero di bit nell’indirizzo determina il numero massimo di celle indirizzabili nella memoria ed è indipendente dal numero di bit per cella (una memoria con 2 12 celle richiede sempre 12 bit di indirizzo, quale che sia la dimensione di una cella). Una memoria può essere organizzata in diversi modi: Una memoria può essere organizzata in diversi modi:  per esempio, con 96 bit possiamo avere 6 celle di 16 bit (6*16=96), 8 celle di 12 bit (8*12=96) 12 celle di 8 bit (12*8=96).  In genere si considerano celle di 8 bit (1 byte). 40

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Memoria e collegamenti al bus Viene selezionata la parola di indirizzo il contenuto è ; l’operazione è di lettura (load) o di scrittura (store) a seconda dei comandi presenti sul bus di controllo 41

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 42 Array  vettori di elementi indicizzati, omogenei, memorizzati in celle di memoria consecutive Dichiarazione di un array: int vett[3]; È un array di 3 elementi di tipo int Gli elementi di un array sono normali variabili: vett[0]  3; printf("%d", vett[0]); > 3 scanf("%d", &vett[1]); > 17vett[1] assume valore 17 Gli array

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 43 int a, vett[3]; Gli array vett[0] vett[1] vett[2] a a

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 44 int v[100];  alloca memoria per 100 elementi interi, a partire da un certo indirizzo di memoria la dimensione deve essere nota al compilatore deve essere una espressione costante Per accedere all' i-esimo elemento di v  calcola l'indice i i può essere un'espressione  all’indirizzo della prima cella di v somma il numero di celle pari allo spazio occupato da i elementi Come opera il calcolatore?

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Puntatori – premessa Dichiarare una variabile significa riservare una zona di memoria composta da diverse celle Il numero di celle dipende dal tipo di dato (short int 2 byte, float 4 byte, …) Ogni cella di memoria ha un indirizzo fisico e:  il nome della variabile indica il contenuto della cella di memoria  l’operatore & permette di ottenere l’indirizzo di memoria della cella associata alla variabile cui l’operatore è applicato 45

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Variabili e indirizzi Supponiamo che la dichiarazione riservi la zona di memoria all’indirizzo 1 var indica il contenuto della cella di memoria &var indica l’indirizzo della cella di memoria int var; var &var 46

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int 47

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 48 int dati[DIM]; In memoria dati[0] dati[1] dati[2]

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Giochiamo con gli array e i puntatori 49

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 50 int dati[DIM]; dati[0] dati[1] dati[2] int *valori; valori In memoria, macchina a 32bit, e.g. x86

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 51 int dati[DIM]; int *valori; valori dati[0]=53 dati[1]=7 dati[2]=20 In memoria, macchina a 32bit, e.g. x86

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 52 int dati[DIM]; int *valori; 01 dati[0]=53 dati[1]=7 dati[2]=20 valori=dati; In memoria, macchina a 32bit, e.g. x86

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 53 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x valori=dati; valori++;

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 54 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x valori=dati; valori++; Si prende il dato in valori e si somma 1

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 55 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x valori=dati; valori++; Si prende il dato in valori e si somma 1 Sommare 1 rispetto al tipo di dato a cui punta valori

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 56 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x valori=dati; valori++; Si prende il dato in valori e si somma 1 Sommare 1 rispetto al tipo di dato a cui punta valori valori punta ad un intero (=4byte)

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 57 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x valori=dati; valori++; Si prende il dato in valori e si somma 1 valori contiene 01 Sommare 1 rispetto al tipo di dato a cui punta valori valori punta ad un intero (=4byte)

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 58 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x valori=dati; valori++; Si prende il dato in valori e si somma 1 valori contiene 01 Sommare 1 rispetto al tipo di dato a cui punta valori valori punta ad un intero (=4byte) valori++ è 01 + lo spazio per 1 intero

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 59 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x valori=dati; valori++; Si prende il dato in valori e si somma 1 valori contiene 01 Sommare 1 rispetto al tipo di dato a cui punta valori valori punta ad un intero (=4byte) valori++ è 01 + lo spazio per 1 intero valori++ = = 05

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 60 int dati[DIM]; int *valori; In memoria, macchina a 32bit, e.g. x86 60 valori=dati; valori++; Si prende il dato in valori e si somma 1 valori contiene 01 Sommare 1 rispetto al tipo di dato a cui punta valori valori punta ad un intero (=4byte) valori++ è 01 + lo spazio per 1 intero valori++ = = 05 05

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 61 int dati[DIM]; int *valori; 05 dati[0]=53 dati[1]=7 dati[2]=20 valori=dati; valori++; In memoria, macchina a 32bit, e.g. x86

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 62 int dati[DIM]; int *valori; 09 dati[0]=53 dati[1]=7 dati[2]=20 valori=dati; valori++; In memoria, macchina a 32bit, e.g. x86

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 63 int dati[DIM]; int *valori; 09 dati[0]=53 dati[1]=7 dati[2]=20 valori=dati; valori++; *valori=43; In memoria, macchina a 32bit, e.g. x86

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 64 int dati[DIM]; int *valori; 09 dati[0]=53 dati[1]=7 dati[2]=20 valori=dati; valori++; *valori=43; In memoria, macchina a 32bit, e.g. x86 *

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 65 int dati[DIM]; int *valori; 09 dati[0]=53 dati[1]=7 dati[2]=20 valori=dati; valori++; *valori=43; 43 In memoria, macchina a 32bit, e.g. x86

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int: funzioni 66

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int: funzioni 67

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int: funzioni 68

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int: funzioni 69

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int: funzioni 70

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 71 int dati[DIM]; In memoria dati[0] (aka valori[0]) dati[0] (aka valori[0]) dati[1] (aka valori[1]) dati[1] (aka valori[1]) dati[2] (aka valori[2]) dati[2] (aka valori[2])

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int: funzioni – con int *valori 72

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Somma degli elementi di un array di int: funzioni – con int *valori 73

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE int *valori Vs int valori[] 74 Aritmetica dei puntatori Accesso tramite array

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Fonti per lo studio + Credits Fonti per lo studio  Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill Capitolo 2  Introduzione ai sistemi informatici, D. Sciuto, G. Buonanno, L. Mari, 4a Ed, McGrawHill Capitolo 1, 2, 5  The Art & Craft of Computing, S. Ceri, D. Mandrioli, L. Sbattella, Addison-Wesley Capitolo 2 Approfondimenti  Struttura e progetto dei calcolatori, D. A. Patterson, J. Hennessy, 3a Ed, Zanichelli Capitolo 1, 2 Credits  Prof. G. Buonanno e D. Sciuto, LIUC 75