INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori....

25
1 Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018 INFORMATICA (modulo di Calcolatori Elettronici) Ing. Giuseppe Coldani e-mail: [email protected] [email protected] orario delle lezioni: martedì 8.30-12.30 orario di ricevimento: su appuntamento

Transcript of INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori....

Page 1: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

1Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

INFORMATICA (modulo di Calcolatori Elettronici)

Ing. Giuseppe Coldani

e-mail: [email protected]

[email protected]

orario delle lezioni: martedì 8.30-12.30

orario di ricevimento: su appuntamento

Page 2: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

2Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Calendario delle lezioni e degli esami

• Periodi di lezione

1) 26/2 ÷ 28/3

2) 4/4 ÷ 14/4

3) 23/4 ÷ 5/6

• Prova intermedia

16/4 ÷ 21/4

• Sessione d’esame

2 appelli nel periodo 14/6 – 28/7

1 appello nel periodo 20/8 – 15/9

2 appelli a gennaio/febbraio 2019

Page 3: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

3Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Esame (1)

• Prova scritta di valutazione di argomenti teorici

• Prova di programmazione

Prove degli appelli d’esame

Prova scritta di teoria + prova di programmazione nel linguaggio MIPS2000.

L’esame viene superato se è stata conseguita una valutazione sufficiente in

entrambe le prove. In caso di esito non sufficiente, anche in una sola prova, il

candidato dovrà ripetere l’intero esame. E’ prevista una prova orale facoltativa con

due finalità differenti:

1. nel caso in cui la prova scritta di teoria e la prova di programmazione siano

sufficienti, per permettere la modifica della valutazione globale risultante;

2. nel caso in cui una delle due prove suddette sia valutata insufficiente, ma almeno

8/15, per raggiungere una valutazione sufficiente.

Page 4: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

4Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Esame (2)

Prove in itinere

1a prova: argomenti trattati nel corso delle lezioni dei periodi 1 e 2

2a prova: argomenti trattati nel periodo 3 + prova di programmazione nel

linguaggio MIPS2000, da sostenere negli appelli della sessione estiva.

L’accesso a questa prova è vincolato dal superamento della prima prova in

itinere.

La valutazione globale è la media pesata delle tre prove sostenute, con il

vincolo che tutte siano sufficienti.

Page 5: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

5Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Esame (3)

Prove in itinere (2)

In caso di esito non sufficiente nella seconda prova in itinere, il candidato può

ripetere la prova suddetta nell’ultimo appello della sessione di luglio.

In caso di esito non sufficiente nella prima prova in itinere, il candidato dovrà

sostenere l’esame intero nelle rimanenti sessioni.

La valutazione conseguita nelle prove in itinere cessa la sua validità al

termine della sessione di luglio.

Page 6: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

6Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Materiale didattico (1)

• Testi consigliati:

David A. Patterson, John L. Hennessy,

Computer Organization & Design. The hardware/software interface (third edition)

Morgan Kaufmann Publishers.

David A. Patterson, John L. Hennessy,

Struttura e progetto dei calcolatori. L’interfaccia hardware-software

seconda edizione Zanichelli condotta sulla terza edizione americana

Zanichelli, 2006, Bologna.

Page 7: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

7Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Materiale didattico (2)

• Testi consultabili:

David A. Patterson, John L. Hennessy,

Computer Organization & Design. The hardware/software interface (secondedition)

Morgan Kaufmann Publishers.

David A. Patterson, John L. Hennessy,

Struttura, organizzazione e progetto dei calcolatori

Jackson libri, 1999, Milano.

• Documentazione varia è reperibile ai siti:

http://www.elsevierdirect.com/index.jsp

http://www.unibg.it

Page 8: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

8Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Argomenti del corso

•1. Architettura dei calcolatori

•2. Architettura di una CPU

•3. Linguaggio assemblativo

•4. L’aritmetica dei calcolatori

•5. L’ambiente di sviluppo dei progetti

Page 9: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

9Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Architettura di un computer

Diversi livelli di astrazione

I/O systemInstr. Set Proc.

Compiler

OperatingSystem

Application

Digital Design

Circuit Design

Firmware

Datapath & Control

Layout

Instruction Set

Page 10: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

10Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Linguaggio ad alto livello (HLL)

Linguaggio Assembly

Linguaggio Macchina

Segnali di controllo

Compilatore

Assemblatore

Interpretazione macchina

temp = v[k];

v[k] = v[k+1];

v[k+1] = temp;

lw $15, 0($2)lw $16, 4($2)sw $16, 0($2)sw $15, 4($2)

0000 1001 1100 0110 1010 1111 0101 1000

1010 1111 0101 1000 0000 1001 1100 0110

1100 0110 1010 1111 0101 1000 0000 1001

0101 1000 0000 1001 1100 0110 1010 1111

°

°

Rappresentazione delle istruzioni

Page 11: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

11Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Struttura del software (1)

• I linguaggi HLL permettono

– progettazione in linguaggio ~ a quello naturale

– una maggior concisione rispetto al linguaggio macchina

– indipendenza dal calcolatore

• Riutilizzo routine frequentemente impiegate ⇒ librerie di subroutine

• Un programma separato che supervisiona l’utilizzo della macchina da parte

dei programmi utente ⇒ sistema operativo

• Software di sistema= insieme di programmi che forniscono servizi (Sistema

Operativo, compilatori, assemblatori)

• Software applicativo=programmi utente o mirati all’utente (editors,

spreadsheet)

Page 12: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

12Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Struttura del software (2)

HW

Sw sistema

Sw applicativoSOFTWARE

Software appl. Software sistema

Word Compilatori Sist. Op. Assembl.

Memoria File I/Ovirtuale System drivers

Page 13: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

13Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Architettura del Set di Istruzioni

Un importante livello di astrazione

– interfaccia fra hardware e software di basso livello

– standardizza il formato delle istruzioni e i pattern di bit a livello di

linguaggio macchina

– vantaggi: differenti implementazioni della stessa architettura

– svantaggi: talora impossibilità di avvalersi di innovazioni tecnologiche

Architetture moderne di set di istruzioni

– Digital Alpha (v1, v3) 1992-97

– HP PA-RISC (v1.1, v2.0) 1986-96

– Sun Sparc (v8, v9) 1987-95

– SGI MIPS (MIPS I, II, III, IV, V) 1986-96

– Intel (8086,80286,80386, 1978-96

80486, Pentium, MMX, ...)

Page 14: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

14Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Di cosa ci occuperemo

•Le istruzioni: il linguaggio dei calcolatori

•L’aritmetica dei calcolatori

•Il processore: unità aritmetica ed unità di controllo

•Assemblatori, linker ed il simulatore SPIM

•Fondamenti sulla progettazione di reti logiche

•Realizzazione dell’unità di controllo

Page 15: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

15Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Architettura della macchina di Von Neumann

Memoria

ALU

Unità di

controllo

CPU

Unità di ingresso Unità di uscita

Programmi e

dati

Risultati

Unità centrale

Page 16: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

16Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

D

A

T

A

B

U

S

Unità Centrale

ALU

CPU

Unità di

controllo

MARMemoria ROM

MBR

MARMemoria RAM

MBR

C

O

N

T

R

O

L

B

U

S

A

D

D

R

E

S

S

B

U

S

Page 17: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

17Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Microprocessori e Bus

• I microprocessori sono dispositivi elettronici che implementano in ununico circuito integrato le funzioni di una intera CPU. I microprocessoriattuali hanno bus dati a 8, 16, 32, 64 bit.

• Il bus dati (data bus) esprime la capacità di elaborazione del processore(quanti bit possono essere elaborati in parallelo)

• Il bus indirizzi (address bus) esprime la capacità di memorizzazione delprocessore (2m celle di memoria, se m è il numero dei bit del bus)

• La capacità di indirizzamento indica il numero di celle diverse cui si puòaccedere:

210 Byte = 1024 byte = 1 KByte

220 Byte = 1048576 byte = 1 Mbyte

230 Byte = 1073741824 byte = 1 GByte

Page 18: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

18Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Un Esempio

• Variazione nella precisione di misura di 1 Kg. in un sistema di pesatura

basato su microprocessori con diversa dimensione del bus dati

Numero di bit bus dati 4 8 16

Dati rappresentabili 24=16 28= 256 216= 65536

Precisione relativa 6.25% ~3.9 ‰ ~0.015‰

Precisione max. 62.5 gr ~3.9 gr ~0.015 gr

Page 19: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

19Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Osservazioni

• I microprocessori a 8 bit di dato hanno tipicamente bus indirizzi a 16 bit

con capacità di indirizzamento di 64 KB

• I microprocessori a 16 bit di dato hanno tipicamente bus indirizzi a 20-24

bit con capacità di indirizzamento di 1-16 MB

• I microprocessori a 64 bit di dato hanno bus indirizzi a 64 bit con capacità

di indirizzamento fino a circa 1019 byte

• I microprocessori Single Chip riuniscono in un unico circuito integrato più

di uno dei blocchi costituenti un microcalcolatore (eventualmente tutti).

Page 20: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

20Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Architettura di una CPU

SP PC R

e

g

0

R

e

g

N

F

L

A

G

ACCC

O

N

T

R.

D

E

C

O

D.

I

N

S

T.

R

E

G.

BUS DATI INTERNO

….

BUS INDIRIZZI INTERNO BUS IND. ESTERNO

ALU

BUS DATI ESTERNO

Page 21: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

21Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Ciclo di esecuzione di un’istruzione

•FETCH (prelevamento dell’istruzione)

•DECODIFICA

•ESECUZIONE

La memoria (ROM e RAM) contiene il programma e i dati sui quali opera la

CPU. Il Program Counter (PC) contiene l’indirizzo della cella di memoria con la

prossima istruzione da eseguire.

FORMATO DELLE ISTRUZIONI

Codice Operativo Operando 1 Operando 2

Campo che caratterizza le varie istruzioni Gli operandi possono

essere 0, 1, 2

Page 22: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

22Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Sequenza di operazioni elementari per

l’esecuzione di ogni singola istruzione

•FETCH: vengono letti i campi che costituiscono l’istruzione:

1) (PC)→MAR

2) ((MAR)) →MBR; (PC)+1 →PC

3) (MBR) →IR

I passi 1, 2, 3 permettono di caricare in IR (instruction register) il codiceoperativo (OPCode) dell’istruzione corrente. Passi analoghi permettono dicaricare in opportuni registri della CPU gli operandi presenti nell’istruzione. Intal caso, nel passo 3 la destinazione del dato proveniente dalla memoria non èpiù IR, ma opportuni registri.

•DECODE: viene identificata l’istruzione corrente sulla base dell’OPCode

•EXECUTE: è diversa a seconda del tipo di istruzione. In pratica consistenell’inviare comandi e dati alle unità interessate.

•MAR= Memory Address Register; MBR: Memory Buffer Register

•Notazione: (X) →Y significa: “Il contenuto del registro X viene trasferito nelregistro Y

Page 23: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

23Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Formato delle istruzioni

• Le istruzioni sono codificate da stringhe di bit.

• Una volta caricata nell’IR, un’istruzione deve essere decodificata ed

eseguita. A tal scopo l’unità di controllo deve conoscere:

• codice operativo

• sorgente: dati su cui operare

• destinatario: dove porre il risultato e, se sorgente e destinazione sono in

memoria, la modalità di indirizzamento

Codice Operativo Sorgente Destinazione Mod. indirizzamento

Esempio 1: Somma tra il contenuto del registro R2 e il contenuto

dell’accumulatore. Il risultato va nell’accumulatore

FORMATO codice operativo

FETCH come in precedenza

ESECUZIONE (R2)+(ACC)→ACC

Page 24: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

24Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Esempio di esecuzione di istruzioni complete

Esempio 2: somma tra il contenuto della cella di memoria il cui indirizzo è

specificato nell’istruzione ed il contenuto dell’accumulatore; il risultato va

nell’accumulatore

•FORMATO: codice operativo+operando

•FETCH:

1) (PC)→MAR 4) (PC)→MAR

2) ((MAR)) →MBR; (PC)+1 →PC 5) ((MAR)) →MBR; (PC)+1 →PC

3) (MBR) →IR 6) (MBR) →Rn

•EXECUTE:

1) (Rn) →MAR 3) (MBR) →Rn

2) ((MAR)) →MBR 4) (Rn)+(ACC) →ACC

Page 25: INFORMATICA (modulo di Calcolatori Elettronici) · Struttura e progetto dei calcolatori. L’interfaccia hardware-software L’interfaccia hardware-software seconda edizione Zanichelli

25Università degli Studi di Bergamo - corso di Informatica (modulo di Calcolatori Elettronici) – a.a. 2017/2018

Esempio di esecuzione di istruzioni complete

Esempio 3: saltare all’istruzione che è memorizzata nella cella il cui indirizzo

è specificato all’interno dell’istruzione corrente

•FORMATO: codice operativo+operando

•FETCH:

1) (PC)→MAR 4) (PC)→MAR

2) ((MAR)) →MBR; (PC)+1 →PC 5) ((MAR)) →MBR; (PC)+1 →PC

3) (MBR) →IR 6) (MBR) →Rn

•EXECUTE:

1) (Rn) →PC