Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del...

82
Elementi di Informatica - Architettura del Calcolatore 1 © A. Valenzano – 1996-2002 Architettura del calcolatore

Transcript of Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del...

Page 1: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 1 © A. Valenzano – 1996-2002

Architettura del

calcolatore

Page 2: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 2 © A. Valenzano – 1996-2002

Sommario

• Struttura del calcolatore• CPU, memoria, unità di I/0• Istruzioni e loro esecuzione• Software: linguaggi macchina, assem-

bler e ad alto livello

Page 3: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 3 © A. Valenzano – 1996-2002

Schema a blocchi di un calcolatore (Von Neumann)

UNITA' DICONTROLLO

UNITA' ARITMETICA

MEMORIACENTRALE

UNITA' DIINGRESSO

UNITA' DIUSCITA

Page 4: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 4 © A. Valenzano – 1996-2002

Control unit (I)• Coordina tutte le attività della macchina e

garantisce la corretta sequenza delle operazioni.

• Esegue sempre un ciclo operativo del tipo: Preleva una istruzione dalla memoria (instruction fetching);Interpreta l'istruzione analizzandone il codice operativo (instruction decoding);Genera i segnali con le tempistiche opportune per eseguire l'istruzione (instruction execution).

Page 5: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 5 © A. Valenzano – 1996-2002

Control unit (II)

Contiene i seguenti elementi:• Contatore di programma (Program counter)• Registro di istruzione (Instruction register)• Registri aritmetici (condivisi con la ALU)• Flags (registri da 1 bit condivisi con la ALU)• Registri puntatori alla memoria• Registri di uso generale

Page 6: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 6 © A. Valenzano – 1996-2002

Control unit (III)Esempio di control unit:

Buffer datiBuffer indirizzi

Instruction register

+1

Program counterReg. ausiliari

Registri aritmetici (ALU)

Alla/dalla memoria

Circuiti dicontrollo

addressbus

databus

Page 7: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 7 © A. Valenzano – 1996-2002

Arithmetic-logic unit (I)

• Esegue operazioni aritmetiche (+,-,x,:), logiche (AND,OR,NOT) e di manipolazione di dati (shift,...) sotto il controllo della CU.

• Contiene:registri aritmetici (condivisi con la CU);flags (condivisi con la CU).

• Realizza operazioni fixed-point (sempre meno raramente anche in floating-point) in singola e (spesso) doppia precisione.

Page 8: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 8 © A. Valenzano – 1996-2002

Arithmetic-logic unit (II)

Esempio di ALU:

Registro aritm. B

Sommatore

Registro aritm. A

Page 9: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 9 © A. Valenzano – 1996-2002

Memoria principale• E' costituita da componenti a semiconduttore.• E' organizzata come una sequenza di locazioni

con la stessa dimensione (byte, word, long-word etc.).

• Ad ogni locazione è associato un indirizzo (po-sizione che la locazione occupa rispetto all'origine della memoria).

• Ogni locazione ha un contenuto (informazione).• Ogni locazione è accessibile in modo diretto (ran-

dom access).

Page 10: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 10 © A. Valenzano – 1996-2002

Organizzazione della memoria

Dato 1Istruz. 2 (I)Istruz. 2 (II)

Dato 2Dato 3

Istruzione 1 0

21

43

5

Indirizzi

Il numero di bit di indirizzo determina il numero delle celle.Il numero di bit di dato determina la dimensione di ogni cella.

Contenuti

Page 11: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 11 © A. Valenzano – 1996-2002

Tipi di memoria

• RAM (Random Access Memory)

• ROM (Read Only Memory)

• PROM (Programmable ROM)

• EPROM (Erasable Programmable ROM)

• EEPROM (Electrically Erasable ProgrammableROM)

• . . .

Page 12: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 12 © A. Valenzano – 1996-2002

Gerarchia di tipi di memoria

RegistriCPU

Memoriacache

Memoriaprincipa-

le

Memoriadi massa

tipo: semicond. semicond. semicond. dischi, nastri etc.

tempo di accesso

capacità

costo

Page 13: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 13 © A. Valenzano – 1996-2002

Input unit (I)

• Contiene dispositivi dedicati all'introduzione di informazioni nel calcolatore.

• Può essere pensata come costituita da 2 parti:una parte meccanica o elettromeccanica;una parte elettronica (interfaccia).

• Svolge 2 tipi di funzioni:introduzione di dati e programmi;comunicazione con dispositivi non compati-bili con il calcolatore (interfacciamento).

Page 14: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 14 © A. Valenzano – 1996-2002

Input unit (II)

Esempio di Input Unit:

Parte elettronica

registro di stato

registro comandiregistro datiParte

meccanica oelettromeccanica

dati dati

alcalcolatore

Page 15: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 15 © A. Valenzano – 1996-2002

Output unit

Serve ad emettere informazioni ed ha una struttura logica simmetrica alla IU:

Parte elettronica

registro di stato

registro comandiregistro dati Parte

meccanica oelettromeccanica

datidati

dalcalcolatore

Page 16: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 16 © A. Valenzano – 1996-2002

Formato delle istruzioni

COD. OPERATIVO OPERANDI

E' un campo sempre pre-sente. Indica l'operazione che la CPU (CU + ALU) de-ve eseguire.

Se presenti sono costituiti da uno o più campi che con-tengono i dati su cui opera-re e/o le indicazioni neces-sarie a rintracciare i dati.

Page 17: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 17 © A. Valenzano – 1996-2002

Linguaggio macchina

3E

21

43

56

0

87

3EH20H27H03H

3AH

C6H

10H20H76H

Sposta nel reg. A il dato specifi-cato

Sposta nel reg. B il dato specifi-cato

Somma i reg. A e B - risultato in A

Sposta il dato dal reg. A alla loca-zione di memoria che ha l’indiriz-zo specificato

Stop

Page 18: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 18 © A. Valenzano – 1996-2002

Esecuzione del programma (1)

+1

Pr. counter

Circuitidi

controllo

Instr. register

Addr. buffer

W Z Data buffer

Registro A Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 19: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 19 © A. Valenzano – 1996-2002

Esecuzione del programma (2)

+1

0000

Circuitidi

controllo

Instr. register

Addr. buffer

W Z Data buffer

Registro A Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 20: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 20 © A. Valenzano – 1996-2002

Esecuzione del programma (3)

+1

0000

Circuitidi

controllo

Instr. register

0000

W Z Data buffer

Registro A Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 21: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 21 © A. Valenzano – 1996-2002

Esecuzione del programma (4)

+1

0000

Circuitidi

controllo

Instr. register

0000

W Z Data buffer

Registro A Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 22: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 22 © A. Valenzano – 1996-2002

Esecuzione del programma (5)

+1

0000

Circuitidi

controllo

Instr. register

0000

W Z 3E

Registro A Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 23: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 23 © A. Valenzano – 1996-2002

Esecuzione del programma (6)

+1

0001

Circuitidi

controllo

3E

0000

W Z 3E

Registro A Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 24: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 24 © A. Valenzano – 1996-2002

Esecuzione del programma (7)

+1

0001

Circuitidi

controllo

3E

0000

W Z 3E

Registro A Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 25: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 25 © A. Valenzano – 1996-2002

Esecuzione del programma (8)

+1

0001

Circuitidi

controllo

3E

0001

W Z 3E

Registro A Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 26: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 26 © A. Valenzano – 1996-2002

Esecuzione del programma (9)

+1

0001

Circuitidi

controllo

3E

0001

W Z 3E

Registro A Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 27: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 27 © A. Valenzano – 1996-2002

Esecuzione del programma (10)

+1

0001

Circuitidi

controllo

3E

0001

W Z 20

Registro A Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 28: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 28 © A. Valenzano – 1996-2002

Esecuzione del programma (11)

+1

0002

Circuitidi

controllo

3E

0001

W Z 20

20 Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 29: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 29 © A. Valenzano – 1996-2002

Esecuzione del programma (12)

+1

0002

Circuitidi

controllo

3E

0001

W Z 20

20 Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 30: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 30 © A. Valenzano – 1996-2002

Esecuzione del programma (13)

+1

0002

Circuitidi

controllo

3E

0002

W Z 20

20 Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 31: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 31 © A. Valenzano – 1996-2002

Esecuzione del programma (14)

+1

0002

Circuitidi

controllo

3E

0002

W Z 20

20 Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 32: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 32 © A. Valenzano – 1996-2002

Esecuzione del programma (15)

+1

0002

Circuitidi

controllo

3E

0002

W Z 27

20 Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 33: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 33 © A. Valenzano – 1996-2002

Esecuzione del programma (16)

+1

0003

Circuitidi

controllo

27

0002

W Z 27

20 Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 34: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 34 © A. Valenzano – 1996-2002

Esecuzione del programma (17)

+1

0003

Circuitidi

controllo

27

0002

W Z 27

20 Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 35: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 35 © A. Valenzano – 1996-2002

Esecuzione del programma (18)

+1

0003

Circuitidi

controllo

27

0003

W Z 27

20 Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 36: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 36 © A. Valenzano – 1996-2002

Esecuzione del programma (19)

+1

0003

Circuitidi

controllo

27

0003

W Z 27

20 Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 37: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 37 © A. Valenzano – 1996-2002

Esecuzione del programma (20)

+1

0003

Circuitidi

controllo

27

0003

W Z 03

20 Registro B

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 38: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 38 © A. Valenzano – 1996-2002

Esecuzione del programma (21)

+1

0004

Circuitidi

controllo

27

0003

W Z 03

20 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 39: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 39 © A. Valenzano – 1996-2002

Esecuzione del programma (22)

+1

0004

Circuitidi

controllo

27

0003

W Z 03

20 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 40: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 40 © A. Valenzano – 1996-2002

Esecuzione del programma (23)

+1

0004

Circuitidi

controllo

27

0004

W Z 03

20 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 41: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 41 © A. Valenzano – 1996-2002

Esecuzione del programma (24)

+1

0004

Circuitidi

controllo

27

0004

W Z 03

20 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 42: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 42 © A. Valenzano – 1996-2002

Esecuzione del programma (25)

+1

0004

Circuitidi

controllo

27

0004

W Z C6

20 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 43: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 43 © A. Valenzano – 1996-2002

Esecuzione del programma (26)

+1

0005

Circuitidi

controllo

C6

0004

W Z C6

20 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 44: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 44 © A. Valenzano – 1996-2002

Esecuzione del programma (27)

+1

0005

Circuitidi

controllo

C6

0004

W Z C6

20 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 45: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 45 © A. Valenzano – 1996-2002

Esecuzione del programma (28)

+1

0005

Circuitidi

controllo

C6

0004

W Z C6

20 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 46: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 46 © A. Valenzano – 1996-2002

Esecuzione del programma (29)

+1

0005

Circuitidi

controllo

C6

0004

W Z C6

20+03 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 47: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 47 © A. Valenzano – 1996-2002

Esecuzione del programma (30)

+1

0005

Circuitidi

controllo

C6

0004

W Z C6

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 48: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 48 © A. Valenzano – 1996-2002

Esecuzione del programma (31)

+1

0005

Circuitidi

controllo

C6

0005

W Z C6

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 49: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 49 © A. Valenzano – 1996-2002

Esecuzione del programma (32)

+1

0005

Circuitidi

controllo

C6

0005

W Z C6

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 50: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 50 © A. Valenzano – 1996-2002

Esecuzione del programma (33)

+1

0005

Circuitidi

controllo

C6

0005

W Z 3A

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 51: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 51 © A. Valenzano – 1996-2002

Esecuzione del programma (34)

+1

0006

Circuitidi

controllo

3A

0005

W Z 3A

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 52: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 52 © A. Valenzano – 1996-2002

Esecuzione del programma (35)

+1

0006

Circuitidi

controllo

3A

0005

W Z 3A

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 53: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 53 © A. Valenzano – 1996-2002

Esecuzione del programma (36)

+1

0006

Circuitidi

controllo

3A

0006

W Z 3A

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 54: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 54 © A. Valenzano – 1996-2002

Esecuzione del programma (37)

+1

0006

Circuitidi

controllo

3A

0006

W Z 3A

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 55: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 55 © A. Valenzano – 1996-2002

Esecuzione del programma (38)

+1

0006

Circuitidi

controllo

3A

0006

W Z 10

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 56: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 56 © A. Valenzano – 1996-2002

Esecuzione del programma (39)

+1

0007

Circuitidi

controllo

3A

0006

10

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

W 10

Page 57: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 57 © A. Valenzano – 1996-2002

Esecuzione del programma (40)

+1

0007

Circuitidi

controllo

3A

0006

10

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

W 10

Page 58: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 58 © A. Valenzano – 1996-2002

Esecuzione del programma (41)

+1

0007

Circuitidi

controllo

3A

0007

W 10 10

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 59: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 59 © A. Valenzano – 1996-2002

Esecuzione del programma (42)

+1

0007

Circuitidi

controllo

3A

0007

W 10 10

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 60: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 60 © A. Valenzano – 1996-2002

Esecuzione del programma (43)

+1

0007

Circuitidi

controllo

3A

0007

W 10 20

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

Page 61: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 61 © A. Valenzano – 1996-2002

Esecuzione del programma (44)

+1

0008

Circuitidi

controllo

3A

0007

20

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

20 10

Page 62: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 62 © A. Valenzano – 1996-2002

Esecuzione del programma (45)

+1

0008

Circuitidi

controllo

3A

0007

20

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

20 10

Page 63: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 63 © A. Valenzano – 1996-2002

Esecuzione del programma (46)

+1

0008

Circuitidi

controllo

3A

0007

20

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

20 10

Page 64: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 64 © A. Valenzano – 1996-2002

Esecuzione del programma (47)

+1

0008

Circuitidi

controllo

3A

2010

23

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 11

20 10

Page 65: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 65 © A. Valenzano – 1996-2002

Esecuzione del programma (48)

+1

0008

Circuitidi

controllo

3A

2010

23

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 23

20 10

Page 66: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 66 © A. Valenzano – 1996-2002

Esecuzione del programma (49)

+1

0008

Circuitidi

controllo

3A

2010

23

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 23

20 10

Page 67: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 67 © A. Valenzano – 1996-2002

Esecuzione del programma (50)

+1

0008

Circuitidi

controllo

3A

0008

W 10 23

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 23

Page 68: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 68 © A. Valenzano – 1996-2002

Esecuzione del programma (51)

+1

0008

Circuitidi

controllo

3A

0008

20 10 23

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 23

Page 69: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 69 © A. Valenzano – 1996-2002

Esecuzione del programma (52)

+1

0008

Circuitidi

controllo

3A

0008

20 10 76

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 23

Page 70: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 70 © A. Valenzano – 1996-2002

Esecuzione del programma (53)

+1

0009

Circuitidi

controllo

76

0008

76

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 23

20 10

Page 71: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 71 © A. Valenzano – 1996-2002

Esecuzione del programma (54)

+1

0009

Circuitidi

controllo

76

0008

76

23 03

Sommatore

0000 3E0001 200002 270003 030004 C60005 3A0006 100007 200008 760009 ...

2010 23

20 10

Page 72: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 72 © A. Valenzano – 1996-2002

Linguaggi assembler

Semplificano la codifica in linguaggio macchina di un programma. L'uso del linguaggio macchina è oneroso per:– l'ampiezza del set di istruzioni;– la difficoltà di "ricordare" codici operativi ed

indirizzi degli operandi in memoria;– la scarsa flessibilità riscontrata nella modifi-

ca/correzione dei programmi.L'assembler consente di definire in modo simbo-lico indirizzi, dati ed istruzioni.

Page 73: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 73 © A. Valenzano – 1996-2002

Assemblatore

E' un programma che consente di tradurre il testo (simbolico) del programma utente in istruzioni macchina.

TextEditor

Assem-bler Linker

testo delprogramma

file sorgente(.asm)

file oggetto(.obj)

file eseguibile(.exe)

Page 74: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 74 © A. Valenzano – 1996-2002

Esempio di istruzioni assembler

move A, dato1

move B, dato2

add A,B

store risul,Ahalt

define dato1 20Hdefine dato2 03H

define risul 2011H

3E 20

3F 03

C6

10 20 11

76

linguaggio macchina

linguaggio assembler

Page 75: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 75 © A. Valenzano – 1996-2002

Limiti del linguaggio assembler

• "machine-dependent" (i programmi non sono "portabili");

• non è possibile definire strutture dati complesse;

• debugging del programma non agevole;• elevata probabilità di commettere errori;• scarsa "leggibilità" del programma.

Page 76: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 76 © A. Valenzano – 1996-2002

Linguaggi ad alto livello (HLL)

Hanno caratteristiche complementari ai linguaggi assembler:

• "machine-independence" (o quasi !);• gestione di strutture dati complesse;• ridotta possibilità di errore;• maggior facilità di "debugging";• maggior "leggibilità" e semplicità di docu-

mentazione del s/w;• maggior produttività nello sviluppo del s/w.

Page 77: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 77 © A. Valenzano – 1996-2002

Programmazione in HLL

• non occorre indicare gli indirizzi delle aree di memoria destinate a contenere le variabili;

• non occorre scrivere programmi per gestire operazioni matematiche comuni o per effettuare operazioni di I/O.

L'associazione tra nomi delle variabili e locazioni in memoria è sotto il controllo del compilatore che si occupa di tradurre le istruzioni (statement) in operazioni macchina e di richiamare gli opportuni sottoprogrammi dove richiesto.

Page 78: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 78 © A. Valenzano – 1996-2002

Compilatori• Effettuano la traduzione da HLL a linguaggio

macchina.• Occorrono compilatori diversi per ogni

linguaggio e per ogni tipo di ambiente s/w (sistema operativo).

Es. di programma in linguaggio C:main(){

printf("Hello world\n");}

Page 79: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 79 © A. Valenzano – 1996-2002

LinkerPermette di :• realizzare un programma suddividendolo in

moduli fisicamente indipendenti;• collegare i moduli ed i sottoprogrammi di

"libreria" utilizzati dal programma.Il linker ha funzioni di

collegamento di moduli (risoluzione dei riferi-menti).rilocazione degli indirizzi.

Page 80: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 80 © A. Valenzano – 1996-2002

Esempio di uso del linker (I)

MAIN SUBR1 SUBR2

000

xxx

000 000

yyy

zzz

moduli "oggetto"compilati separatamente

call subr1

call subr2

Page 81: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 81 © A. Valenzano – 1996-2002

Uso del linker (II)

MAIN SUBR1 SUBR2

000

xxx

kkk j j j

kkk + yyy

j j j + zzz

call kkk

call j j j

programma in linguaggio macchina;i moduli sono stati rilocati in memoriae sono stati "risolti" i riferimenti tra moduli

Page 82: Architettura del calcolatore - areeweb.polito.it · Elementi di Informatica - Architettura del Calcolatore 9 ©A. Valenzano – 1996-2002 Memoria principale •E' costituita da componenti

Elementi di Informatica - Architettura del Calcolatore 82 © A. Valenzano – 1996-2002

Linguaggi interpretati

La traduzione in linguaggio macchina av-viene al tempo dell'esecuzione tramite un apposito programma detto interpreter.Vantaggi:

• semplicità di debugging;• ridotta occupazione di memoria.

Svantaggi:• efficienza ridotta (ogni istruzione vie-

ne "interpretata" tutte le volte che de-ve essere eseguita).