informatica lezione 5 scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea...

37
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Upload: marta-cirillo

Post on 03-May-2015

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Informatica

Lezione 5

Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale)

Anno accademico: 2007-2008

Page 2: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Architettura dei computer

• Un computer deve:– elaborare l’informazione

• usando il processore (Central Processing Unit - CPU)

– memorizzare l’informazione• usando la memoria principale (RAM)• usando la memoria secondaria

– fare l’input/output dell’informazione• usando i dispositivi di input/output

Page 3: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

I programmi e i dati

• Programmi:– Questa lezione: i programmi dal punto di visto dell’hardware– I programmi: sequenze di istruzioni per l’elaborazione delle

informazione• Definiscono quale debba essere il comportamento del

processore• I computer eseguono deterministicamente istruzioni

• Dati:– Distinzione tra dato e informazione:

• Dato: sequenza di bit, può essere interpretato in più modi diversi

• Informazione: dato + significato del dato

Page 4: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

I programmi e i dati

Processore

Stampante Memoria secondaria

Memoria principale

• I programmi e i dati risiedono nella memoria secondaria

Page 5: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

I programmi e i dati

Processore

Stampante Memoria secondaria

Memoria principale

• I programmi e i dati risiedono nella memoria secondaria• Per essere eseguiti (i programmi) e usati (i dati) vengono copiati

nella memoria principale

Page 6: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

I programmi e i dati

• I programmi e i dati risiedono nella memoria secondaria• Per essere eseguiti (i programmi) e usati (i dati) vengono copiati

nella memoria principale• Il processore è in grado di eseguire le istruzioni di cui sono

composti i programmi

Processore

Stampante Memoria secondaria

Memoria principale

Page 7: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Istruzioni macchina

• Per ogni tipo di processore è associato un insieme di istruzioni, chiamate istruzioni macchina– Ognuna delle quali corrisponde ad un’operazione

elementare– Le operazione più complesse possono essere

realizzate mediante sequenze di operazioni elementari

• Combinando in modo diverso sequenze anche molto lunghe di istruzioni si possono far svolgere al computer molti compiti diversi

Page 8: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Istruzioni macchina

• Tre tipi di istruzioni macchina:– Istruzioni aritmetico-logiche:

• Per esempio, la somma di due numeri, il confronto tra due numeri per stabilire se essi sono uguali

• Bisogna indicare dove si trovano i dati su cui operare

– Istruzioni di trasferimento dati:• Indicano quali dati trasferire e in quale direzione• Per esempio, dalla memoria al CPU o vice versa, dall’esterno

all’interno (input) o vice versa (output)• Anche bisogna indicare dove si trovano i dati su cui operare

– Istruzioni di controllo:• Permettono modificare il flusso di esecuzione delle istruzione

(per esempio, sulla base di eventi esterni o risultati intermedi ottenuti dalle istruzioni precedenti)

Page 9: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Istruzioni macchina

• Tre tipi di istruzioni macchina:– Istruzioni aritmetico-logiche:

• add: addizione• sub: sottrazione• and/or/not: congiunzione/disjunzione/negazione logica• …

A B A and B

0 0 0

0 1 0

1 0 0

1 1 1

A B A or B

0 0 0

0 1 1

1 0 1

1 1 1

A not A

0 1

1 0

Page 10: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Istruzioni macchina

• Tre tipi di istruzioni macchina:– …– Istruzioni di trasferimento dati:

• load: leggere dalla memoria principale• store: scrivere alla memoria principale• …

– Istruzioni di controllo:• if_eq: se una condizione è vero, proseguire in un certo

modo, altrimenti proseguire in un altro modo • goto: saltare a un’istruzione • …

Page 11: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Istruzioni macchina

• Le istruzioni possono avere formati diversi - per esempio:

cosa fare su cosa operareoppure

Codice istruzione Argomento 1 Argomento 2 Argomento 3

Codice istruzione Argomento 1 Argomento 2

Codice istruzione Argomento 1

oppure cosa fare su cosa operare

Page 12: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Istruzioni macchina

• Per esempio:

• ADD R1 R2 R3– Recuperare i valori memorizzati nei registri R2 e

R3 e inserire il risultato della somma dei valori nel registro R1

– Si nota che i valori nei registri possono cambiare da un’esecuzione all’altra (riferimenti indiretti)

(Che cosa un registro? Vedremo…)

Codice istruzione Argomento 1 Argomento 2 Argomento 3

Page 13: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Istruzioni macchina

• Per esempio:

• LOAD 3568 R2– Operazione di lettura dalla memoria: richiede la

lettura del valore contenuto nella cella con indirizzo 3568 e il suo caricamento nel registro R2

(Che cosa un registro? Vedremo…)

Codice istruzione Argomento 1 Argomento 2

Page 14: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Istruzioni macchina

• Per esempio:

• ADD R1 R2– Operazione aritmetica di somma: prevede la

somma del contenuto dei registri R1 e R2 e il caricamento del risultato nel registro R1

(Perché R1 non R2? Non c’è una ragione: la decisione è arbitraria)

Codice istruzione Argomento 1 Argomento 2

Page 15: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Linguaggio macchina

• Il linguaggio in cui si scrivono le istruzione macchina istruzioni prende il nome di linguaggio macchina– Una sequenza di tali istruzioni prende il nome di

programma in linguaggio macchina

• Il ruolo del processore:– Eseguire programmi in linguaggio macchina

• Ogni tipo di processore è in grado di eseguire un numero (molto) limitato di istruzioni macchina– Normalmente circa una centinaia

Page 16: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

I programmi e i processori

• Istruzioni visti dal computer:– Il formato dell’oggetto binario (sequenze di bit che

corrisponde alla codifica delle istruzioni di un programma) è l’unico che il computer può interpretare

10001111 10101010 00000011 1100110010101011 11111110 11001111 0000011000000100 00000111 11000101 1011100111111101 01011111 11001111 00101011

ADD R1 R2 R3

Page 17: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

I programmi e i processori

• Istruzioni visti dai programmatori:– I programmatori dei computer non

scrivono i programmi direttamente usando le istruzioni macchina

– I programmatori scrivono i programmi in linguaggi di un alto livello di astrazione: i linguaggi di programmazione a alto livello

• Per esempio, Java o C

– Un singolo commando di un linguaggio di programmazione può corrispondere a più istruzione macchina

Page 18: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

I programmi e i processori

• Tre forme principali di codifica dei programmi:– Linguaggio binario: i programmi sono codificati in

formato binario– Linguaggio assembler: rappresenta le istruzioni

macchina usando lettere e numeri (per esempio, ADD R1 R2 R3)

– Linguaggi di programmazione di alto livello (per esempio, Java o C):

• Livello di astrazione più alto rispetto a linguaggio assembler o linguaggio binario, usato dai programmatori dei computer

Page 19: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

I programmi e i processori

…ADD R1 R2 R3…

totale = num1 + num2;

00101000 1010000000001111 1010101000101000 10100000

compila

assembla

Linguaggio di programmazione

Linguaggio assembler

Linguaggio binario

Page 20: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

I programmi e i processori

Linguaggio di programmazione: esempio di un programma (codice scritto in Java)

Page 21: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

I programmi e i processori

• Famiglie di processori: Intel, Motorola, Sun, …• Processori della stessa famiglia normalmente possono eseguire

gli stessi programmi scritti in linguaggio macchina (ma non sempre)

• Processi di famiglie diverse normalmente non possono eseguire gli stessi programmi scritti in linguaggio macchina– Le istruzioni che “capiscono” sono diverse

• Attenzione! Stiamo considerando il livello delle istruzioni macchina (non il livello dei linguaggi di programmazione, come Java o C)– La stessa programma scritto in un linguaggio di programmazione di

alto livello può essere eseguito su processi di famiglie diverse (è un vantaggio del uso dei linguaggi di programmazione a alto livello)

Page 22: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Componenti del processore (CPU)

• La CPU non è un unico componente ma è costituita da componenti diversi che svolgono compiti diversi

Unità dicontrollo

Unità aritmeticologica

Program CounterREGISTRI

Registro di Stato

Bus Interno

Registro Istruzioni

Registri Generali 8 o 16…

Registro Indirizzi Memoria

Registro Dati Memoria

Registro di Controllo

Page 23: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Componenti del processore (CPU)

Unità dicontrollo

Unità aritmeticologica

Program CounterREGISTRI

Registro di Stato

Bus Interno

Registro Istruzioni

Registri Generali 8 o 16…

Registro Indirizzi Memoria

Registro Dati Memoria

Registro di Controllo

Page 24: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Unità di controllo

• L’unità di controllo è la parte più importante del processore– Esegue le istruzioni dei programmi– Coordina le attività del processore– Controlla il flusso delle istruzioni tra il

processore e la memoria

Page 25: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Unità di controllo

• Svolge la sua attività in modo ciclico (implementa il ciclo macchina)

• Fetch istruzione (preleva dalla memoria principale la “prossima” istruzione da eseguire)

• Decodifica istruzione• Fetch dati (preleva gli operandi specificati

nell’istruzione)• Esecuzione istruzione• Restituzione risultato

Page 26: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Unità di controllo

• L’esecuzione comporta l’invio di comandi opportuni all’unità relativa– Calcoli Unità aritmetico logica– Lettura/scrittura dati memoria– Acquisizione/stampa dispositivi di I/O

Page 27: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Componenti del processore (CPU)

Unità dicontrollo

Unità aritmeticologica

Program CounterREGISTRI

Registro di Stato

Bus Interno

Registro Istruzioni

Registri Generali 8 o 16…

Registro Indirizzi Memoria

Registro Dati Memoria

Registro di Controllo

Page 28: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Bus

• Bus interno: permette la comunicazione tra i componenti del processore

• Bus esterno: permette la comunicazione tra il processore e gli altri componenti dell’elaboratore

CPU RAM Interfaccia

dati

indirizzi

controllo

Page 29: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Bus

Unità dicontrollo

Unità aritmeticologica

REGISTRIBus Interno

…1000 LOAD 4809 R21001 LOAD 3568 R11002 ADD R1 R21003 STORE R1 35681004 GOTO 1001…3568 25…4809 30… Interfaccia

CPU RAM

Page 30: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Componenti del processore (CPU)

Unità dicontrollo

Unità aritmeticologica

Program CounterREGISTRI

Registro di Stato

Bus Interno

Registro Istruzioni

Registri Generali 8 o 16…

Registro Indirizzi Memoria

Registro Dati Memoria

Registro di Controllo

Page 31: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Registri

• I registri sono delle unità di memoria estremamente veloci

• Sono usate per mantenere le informazioni di necessità immediata per il processore

• Le dimensioni dei registri variano da 16, 32, 64 bit

Page 32: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Registri

• Per esempio: Program Counter– L’indirizzo della “prossima” istruzione da eseguire è

memorizzato nel registro Program Counter• Normalmente le istruzioni di un programma sono memorizzati

in sequenza nella memoria principale• Il Program Counter deve essere aumentato (di 1) ogni ciclo (in

modo tale che corrisponde all’indirizzo della prossima istruzione da eseguire)

• Eccezione: istruzione di controllo (per esempio, “salti” da un’istruzione a un’altra usando goto)

• Per esempio: i Registri Generali– I registri che possono essere utilizzati come memorie

temporanee per svolgere le operazioni matematiche

Page 33: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Componenti del processore (CPU)

Unità dicontrollo

Unità aritmeticologica

Program CounterREGISTRI

Registro di Stato

Bus Interno

Registro Istruzioni

Registri Generali 8 o 16…

Registro Indirizzi Memoria

Registro Dati Memoria

Registro di Controllo

Page 34: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Unità aritmetico logica

• L’Unità aritmetico logica (ALU) si occupa di eseguire le operazioni di tipo aritmetico/logico– Somme, sottrazioni, …, confronti, …

• Preleva gli operandi delle operazioni dai Registri Generali

• Deposita il risultato delle operazioni nei Registri Generali

• Insieme all’unità di controllo collabora al completamento di un ciclo macchina

Page 35: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

Clock

• Abbiamo visto che il processore svolga la sua attività in modo ciclico– Ad ogni ciclo corrisponde l’esecuzione di

un’operazione elementare (un’istruzione macchina)

• Il clock fornisce una cadenza temporale per l’esecuzione delle operazioni elementari

Page 36: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

• Consideriamo una ipotesi semplificata: ogni battito di clock corrisponde esattamente l’esecuzione di una sola istruzione macchina– Per esempio: il clock che ha circa 66 milione battiti per secondo il

computer può eseguire circa 66 milione operazioni per secondo

• In realtà, questa ipotesi non è sempre vero– L’esecuzione di una istruzione può richiedere più battiti di clock– Oppure nello stesso ciclo di clock si possono eseguire (parti) di

istruzioni diverse– Dipende dal tipo di processore - per esempio:

• Il processore Intel 80286 richiede 20 battiti del clock per calcolare la moltiplicazione di due numeri

• Il processore Intel 80486 può calcolare la moltiplicazione di due numeri usando solo un battito del clock

Clock

Page 37: Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008

• La frequenza del clock si misura in:– MHz (1 MHz corrisponde circa a un milione di istruzioni

elementari/battiti al secondo)– GHz (1 GHz corrisponde circa a un miliardo di istruzioni

elementari/battiti al secondo)

• Per esempio: se acquistate un calcolatore e vi dicono che ha un processore a 3 GHz– Vuol dire che il processore è in grado di eseguire (circa) 3

miliardi di istruzioni al secondo

• Esempi: – Pentium 4 – 3,0 – 3,8 GHz– Athlon 64 FX-SOI – 2,2 – 2,8 GHz– Pentium 4M (Centrino) – 1,6 – 2,4 GHz

Clock