42
1 Informatica Generale Susanna Pelagatti email: [email protected] Ricevimento: Mercoledì ore 14.30-17.30 presso Dipartimento di Informatica, Via Buonarroti, 2 stanza 346 DE Tel. 050.2212.772 o per posta elettronica Pagina web del corso: http://www.di.unipi.it/~susanna/IG02/

Informatica Generale

Embed Size (px)

DESCRIPTION

Informatica Generale. Susanna Pelagatti email: [email protected] Ricevimento: Mercoledì ore 14.30-17.30 presso Dipartimento di Informatica, Via Buonarroti, 2 stanza 346 DE Tel. 050.2212.772 o per posta elettronica Pagina web del corso: http://www.di.unipi.it/~susanna/IG02 /. - PowerPoint PPT Presentation

Citation preview

Page 1: Informatica Generale

1

Informatica Generale

Susanna Pelagatti email: [email protected]

Ricevimento: Mercoledì ore 14.30-17.30presso Dipartimento di Informatica, Via Buonarroti, 2stanza 346 DE Tel. 050.2212.772o per posta elettronica

Pagina web del corso: http://www.di.unipi.it/~susanna/IG02/

Page 2: Informatica Generale

2

La struttura hardware

Page 3: Informatica Generale

3

Ritorniamo alla …. struttura generale di un calcolatore

• Il calcolatore di Von Neumann

Memoria(RAM,dischi, etc)

Mantiene Dati e Programmi

Processore(CPU)

E’ un esecutore capacedi interpretare i singoli passirichiesti dai programmi (istruzioni elementari)

Sottosistemadi Interfaccia

Permette di comunicare dati e programmi alla macchina e di ottenere i risultati (tastiera, micr., stampante, schermo, )

Page 4: Informatica Generale

4

Struttura di un calcolatore (2)

RAM(memoria centrale)

Processore

bus

Linee dati, indirizzi e controllo

Interfacciadi I/O

Interfacciadi I/O

Interfacciadi I/O

Interfacciadi I/O

schermo dischi mouse modem

Page 5: Informatica Generale

5

Struttura di un calcolatore (3)

RAM(memoria centrale)

Processore

bus

Linee dati, indirizzi e controllo

Interfacciadi I/O

Interfacciadi I/O

Interfacciadi I/O

Interfacciadi I/O

schermo dischi mouse modem

.

.

.

01234

indirizzi Sequenza di parole (un array …)

Page 6: Informatica Generale

6

Struttura di un calcolatore (4)

RAM(memoria centrale)

Processore

bus

Linee dati, indirizzi e controllo

Interfacciadi I/O

Interfacciadi I/O

Interfacciadi I/O

Interfacciadi I/O

schermo dischi mouse modem

.

.

.

01234

indirizzi Sequenza di parole (un array …)

Valore da trasferire

Dove trasferirlo

Direzione di trasferimento, unitàcoinvolte etc.

Page 7: Informatica Generale

7

Struttura di un calcolatore (5)

RAM(memoria centrale)

Processore

bus

Linee dati, indirizzi e controllo

Interfacciadi I/O

Interfacciadi I/O

Interfacciadi I/O

Interfacciadi I/O

schermo dischi mouse modem

Page 8: Informatica Generale

8

Operazioni elementari eseguibili da un processore

• Dati numerici (binari) :– operazioni matematiche : +,-,divisione e moltiplicazione per

potenze di due– confronti con 0– operazioni logiche o booleane: AND, OR, XOR, NOT

• Dati numerici e non– letture/scritture nella memoria, letture e scritture nei registri

di controllo dei dispositivi– uguaglianza e disuguaglianza di due rappresentazioni

Page 9: Informatica Generale

9

Operazioni elementari eseguibili da un processore (2)

• Operazioni di ‘controllo di flusso’ :– salti condizionati (corrispondono alla

combinazione di istruzioni di controllo se ( …) vai al passo X )

– salti incondizionati (corrispondono alla istruzioni di controllo vai al passo X )

– chiamate di un sottoprogramma (CALL)– terminazione del programma (RETURN)

Page 10: Informatica Generale

10

Operazioni elementari eseguibili da un processore (3)

• Abbiamo elencato le funzionalità tipiche, i loro nomi ed il funzionamento specifico variano da macchina a macchina

• Esistono sul mercato processori ‘compatibili’ cioè in grado di eseguire lo stesso insieme di istruzioni (facilita la portabilità dei programmi in linguaggio macchina)– es : Intel Pentium, IBM-Cyrix, AMD

Page 11: Informatica Generale

11

Operazioni booleane

• Sono operazioni che lavorano su variabili che assumono valori di verità o boolani (vero, falso) :– es : se fuori piove e mi sposto a piedi allora apro l’ombrello– La due sotto-condizioni (fuori piove, mi sposto a piedi) avranno

un valore vero/falso che dipende dalla situzione in cui mi trovo– l’operatore booleano ‘e’ permette di combinare fra loro due

valori booleani – il risultato dell’operazione ‘e’ è il valore vero se entrambi gli

operando sono veri e falso altrimenti

Page 12: Informatica Generale

12

Operazioni booleane (2)

• Con le operazioni booleane è possibile complicare arbitrariamente le condizioni delle strutture se…allora…altrimenti e finchè...ripeti

• Anche i valori booleani si possono rappresentare in codifica binaria: generalmente– 1 rappresenta VERO– 0 rappresenta FALSO

• La definizione di ciascuna operazione booleana si può dare sotto forma di tabellina (la tabella di verità)

Page 13: Informatica Generale

13

Operazioni booleane (3)

Le operazioni boolane più comuni sono :• Operazione di and () :

– A and B : combina i valori di A e B in modo che il risultato sia vero solo se sono veri sia A che B

• Operazione di or () : – A or B : combina i valori di A e B in modo che il

risultato sia vero solo almeno uno fra A e B è vero

• Operazione di not () : – not A : restituisce falso se A e vero e viceversa

Page 14: Informatica Generale

14

Tabelle di verità delle operazioni and, or e not

A B A and B A or B Not A

0 0 0 0 1

0 1 0 1 1

1 0 0 1 0

1 1 1 1 0

Page 15: Informatica Generale

15

Operazioni logiche/booleane : perché sono importanti

• Sono facili da realizzare utilizzando circuiti elementari

• È possibile dimostrare che tutte le funzioni interessanti possono essere calcolate utilizzando una opportuna combinazione delle funzioni logiche

• Esiste un procedimento automatico per trovare questa combinazione, che viene utilizzato per realizzare le funzioni disponibili nell’hw

Page 16: Informatica Generale

16

Operazioni logiche : perché sono importanti (2)

• Quando si scrivono programmi che ‘parlano’ con l’hw spesso dobbiamo manipolare sequenze binarie direttamente

• Usando le funzioni logiche è sempre possibile costruire la manipolazione che ci interessa – es: mettere a 0 il terzo bit di una rappresentazione

consideriamo la rappr. 0001001111111

mi costruisco la ‘maschera’ 1111111111011

e poi calcolo AND 0001001111011

‘bit a bit’

AND

Page 17: Informatica Generale

17

Linguaggio macchina e assembler

• Linguaggio macchina :linguaggio comprensibile direttamente dal

processore della macchina (binario)

• Assembler : versione simbolica del linguaggio macchina in

cui i nomi delle operazioni e degli operandi sono indicati con codici simbolici

Page 18: Informatica Generale

18

Linguaggio macchina e assembler (2)

• Per ‘parlare direttamente con la macchina’ si usa l’assembler

• Assemblatori : programmi che traducono il codice simbolico in

sequenze di 0 e 1

• Nei prossimi lucidi vediamo un esempio di un tipico programma assembler e i passi necessari per la sua traduzione in binario

Page 19: Informatica Generale

19

Linguaggio macchina e assembler (3)

• Esempio: come si realizza in assembler l’operazione x=y+2 : LOAD Y, R1

ADD 2, R1

STORE R1, X

34

222

Y

X

Indirizzi di dueparole di memoriache rappresentanole variabili intere x e y

17R1

Registro interno del processore (variabile temporanea su cui lavorare)

Legge il valore in Y e lo scrive in R1

memoria

Page 20: Informatica Generale

20

Linguaggio macchina e assembler (4)

• Esempio x=y+2 (assembler)LOAD Y, R1

ADD 2, R1

STORE R1, X34

222

Y

X

Indirizzi di dueparole di memoriache rappresentanointeri

34R1

Registro interno del processore (variabile temporanea su cui lavorare)

Aggiunge 2 a R1

memoria

Page 21: Informatica Generale

21

Linguaggio macchina e assembler (5)

• Esempio x=y+2 (assembler)LOAD Y, R1

ADD 2, R1

STORE R1, X34

222

Y

X

Indirizzi di dueparole di memoriache rappresentanointeri

36R1

Registro interno del processore (variabile temporanea su cui lavorare)

Scrive il contenuto di R1 nella parola di indirizzo X

memoria

Page 22: Informatica Generale

22

Linguaggio macchina e assembler (6)

• Esempio x=y+2 (assembler)LOAD Y, R1

ADD 2, R1

STORE R1, X34

36

Y

X

Situazione finale dellamemoria

36R1

memoria

Page 23: Informatica Generale

23

Linguaggio macchina e assembler (7)

• Traduzione binaria (in linguaggio macchina) diLOAD Y, R1

ADD 2, R1

STORE R1, X

• Prima di tutto dobbiamo decidere quale è il vero indirizzo di X e Y

01101

11100

memoria

Y

X

Page 24: Informatica Generale

24

Linguaggio macchina e assembler (8)

• Codifica binaria diLOAD 01101, R1

ADD 2, R1

STORE R1, 11100

• Ogni operazione si codifica secondo un formato stabilito da chi costruisce l’hw– un formato semplificato è

Codice operativo Modo 1 Op1 Modo 2 Op2

Page 25: Informatica Generale

25

Linguaggio macchina e assembler (9)

• Vediamo i vari campi del formato :

Codice operativo Modo1 Op1 Modo2 Op2

È la codifica dell’operazione da eseguirees:

ADD 0001LOAD 0110STORE 0111

Page 26: Informatica Generale

26

Linguaggio macchina e assembler (9)

• Vediamo i vari campi del formato :

Codice operativo Modo1 Op1 Modo2 Op2

È la codifica primo operando, MODO1dice a cosa si riferisce OP1es:

se MODO1 = 00 l’operando è nel registro interno del processore (e OP1 è il numero del registro)se MODO1 = 01 l’operando è in memoria (e OP1 è l’indirizzo)se MODO1 = 10 l’operando è immediato, cioè OP1 è direttamente il valore dell’operando

Lo stesso vale per il secondo operando!

Page 27: Informatica Generale

27

Linguaggio macchina e assembler (10)

• Tipicamente la codifica di una istruzione ‘ lunga come una parola o multipli della parola per poterla leggere dalla memoria in modo più efficiente :– es : con parole di 4 byte (32 bit)

Codice operativo Modo1 Op1 Modo2 Op2

2bit 2bit4bit 12bit 12bit

Page 28: Informatica Generale

28

Linguaggio macchina e assembler (11)

• Problema …..– es : con 12 bit posso indirizzare ‘solo’ 212 parole di

memoria centrale (RAM) !

Cioè posso avere al massimo una RAM di 4K parole … se ne ho di più (oggi si arriva tranquillamente a 512K e siamo sempre in aumento …) devo inventarmi codifiche diverse….

Codice operativo Modo1 Op1 Modo2 Op2

2bit 2bit4bit 12bit 12bit

Page 29: Informatica Generale

29

Linguaggio macchina e assembler (12)

• Codifica binaria diLOAD 01101, R1

ADD 2, R1

STORE R1, 11100

Codice operativo Modo1 Op1 Modo2 Op2

MODI00 registro01 memoria10 immediatoCODICI OPERATIVIADD 0001LOAD 0110STORE 0111

2bit 2bit4bit 12bit 12bit

0110 01 01101 00 00001 load

0001 10 00010 01 00001 add

0111 00 00001 01 11100 store

Page 30: Informatica Generale

30

Il processore

• Come è strutturato il processore per riuscire ad eseguire i programmi in linguaggio macchina che abbiamo appena visto ….

• Dati e programmi sono codificati in binario e risiedono in Memoria Centrale (RAM) ad opportuni indirizzi

Page 31: Informatica Generale

31

Il processore (2)

• Esegue il seguente ciclo ininterrottamente :1. (fetch) legge una nuova istruzione da eseguire

dalla memoria centrale

2. (decode) risale alla operazione richiesta decodificando la rappresentazione binaria

3. (execute) porta a termine l’operazione richiesta

Page 32: Informatica Generale

32

Il processore: struttura base

Processore

Parte controllo

PC

IR

PSW

R0

R1R2...

R16 Registri generali

ALU

Operazione

Esegui

Esito

MAR

MDR

Memoria

centrale

Bus dati

Bus indirizzo

Bus controllo

Registro/i coinvolti

Page 33: Informatica Generale

33

Il processore struttura base (2)• PC (program counter)

indica l’indirizzo di memoria della prossima istruzione da eseguire

• IR (Instruction register) contiene copia della codifica dell’istruzione da eseguire

• MAR, MDR (Memory Address Register, Memory Data Register)contengono l’indirizzo della cella di memoria che vogliamo

leggere/scrivere (MAR) ed i dati da/per la memoria (MDR)

Page 34: Informatica Generale

34

Il processore struttura base (3)• PSW (program status word)

contiene informazioni, opportunamente codificate, sull’esito di operazioni aritmetico logiche o sull’esito di operazioni di confronto e informazioni sul funzionamento della macchina (le vedremo qundo parleremo dei sistemi operativi)

• ALU (Arithmetic-Logic Unit) effettua operazioni di tipo aritmetico e logico-

booleano (+,-,and,or …)

Page 35: Informatica Generale

35

Un esempio : ADD 2, R1 (fetch 1)

Processore

Parte controllo

40

IC

PSW

R0

R1R2...

R16 Registri generali

ALU

Operazione

Esegui

Esito

MAR

MDRBus dati

Bus indirizzo

Bus controllo

Registro/i coinvolti

000..01

40

memoria

Indirizzo della istruzione

codifica

PC

Page 36: Informatica Generale

36

Un esempio : ADD 2, R1 (fetch 2)

Processore

Parte controllo

41

IC

PSW

R0

R1R2...

R16 Registri generali

ALU

Operazione

Esegui

EsitoMDRBus dati

Bus indirizzo

Registro/i coinvolti

000..0140

memoria

Indirizzo della istruzione

codifica

PC

40

MAR

Leggi!

Page 37: Informatica Generale

37

Un esempio : ADD 2, R1 (fetch 3)

Processore

Parte controllo

41

000110000100100001

PSW

R0

R1R2...

R16 Registri generali

ALU

Operazione

Esegui

Esito

Bus dati

Bus indirizzo

Registro/i coinvolti

000..0140

memoria

PC

MAR

MDR

IC

Page 38: Informatica Generale

38

Un esempio : ADD 2, R1 (dec)

Processore

Parte controllo

41

000110000100100001

PSW

R0

R1R2...

R16 Registri generali

ALU

addEsegui

Esito

Bus dati

Bus indirizzo

Registro/i coinvolti

000..0140

memoria

PC

MAR

MDR

IC

Page 39: Informatica Generale

39

Un esempio : ADD 2, R1 (exe 1)

Processore

Parte controllo

41

000110000100100001

PSW

00010

R1R2...

R16 Registri generali

ALU

addEsegui

Esito

Bus dati

Bus indirizzo

Registro/i coinvolti

000..0140

memoria

PC

MAR

MDR

IC

Page 40: Informatica Generale

40

Un esempio : ADD 2, R1 (exe 2)

Processore

Parte controllo

41

000110000100100001

PSW

00010

34R2...

R16 Registri generali

ALU

addEsegui

Esito

Bus dati

Bus indirizzo

Registro/i coinvolti

000..0140

memoria

PC

MAR

MDR

IC

Page 41: Informatica Generale

41

Un esempio : ADD 2, R1 (exe 3)

Processore

Parte controllo

41

000110000100100001

PSW

00010

36R2...

R16 Registri generali

ALUEsito

Bus dati

Bus indirizzo

Registro/i coinvolti

000..0140

memoria

PC

MAR

MDR

IC

Page 42: Informatica Generale

42

Il processore : il clock ed i GHz• I vari sotto-passi che compongono l’esecuzione di una

istruzione seguono algoritmi cablati nei circuiti della macchina

• L’esecuzione è sincrona, – cioè esiste un segnale di ‘inizio della sottooperazione’ (detto

tick, in quanto generato da un clock) riconosciuto da tutti i componenti

• La frequenza con cui viene inviato il tick è misurata in ‘numero di tick al secondo’ (Hz) – nei computer attuali 1Ghz (giga hertz), ovvero uno al

nanosecondo, o più