1 fondamenti di informatica: un po di storia lidea di utilizzare dispositivi meccanici per...

38
1 Fondamenti di informatica: un po’ di storia L’idea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al ‘600 (Pascal, Leibniz) Nell’ottocento vengono realizzati i primi dispositivi meccanici “a programma”: telai Jacquard, pianole, macchine di Babbage

Upload: alberto-capelli

Post on 01-May-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

1

Fondamenti di informatica:un po’ di storia

• L’idea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al ‘600 (Pascal, Leibniz)

• Nell’ottocento vengono realizzati i primi dispositivi meccanici “a programma”: telai Jacquard, pianole, macchine di Babbage

Page 2: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

2

Fondamenti di informatica:un po’ di storia

• Nel 1896 Hollerith fonda la “Tabulating Machine Company” (poi IBM), che produce sistemi meccanografici a schede

• Negli anni ’30 vengono realizzate le prime macchine elettromecaniche (Zuse in Germania, Mark 1 ad Harvard)

• Nel ’46 entra in servizio l’ENIAC: elaboratore a valvole termoioniche e a programma filato

• Nel ’48 ENIAC viene esteso per permettere una forma di funzionamento a programma memorizato

Page 3: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

3

Fondamenti di informatica:lo sviluppo teorico

• Matematici e logici mostrarono come sia possibile risolvere importanti classi di problemi per via numerica

• Nel 1936 Turing pubblica “On computable numbers, with an aaplication to the entscheidungsproblem”, che mostra come sia concepibile una macchina universale in grado di calcolare tutto ciò che è calcolabile

• La teoria dell’informazione (con un famoso articolo di Shannon del 1948) mostra come fenomeni continui possano essere descritti in modo preciso in forma discreta (campionamento e quantizzazione)

• L’informatica teorica mostra che esistono problemi non risolvibili per via algoritmica, e problemi ardui non risolvibili (o difficilmente risolvibili) per mancanza di algoritmi efficienti

Page 4: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

Introduzione all’Architettura del Computer

Page 5: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

5

Domande di partenza:

1. Che cos’è un computer?

2. Da cosa è composto un computer?

3. Come interagisco con il computer?

4. Che cosa c’è dentro il case?

5. Come funziona un computer?

Page 6: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

6

Cos’è un computer?

Un computer è una macchina che:– Memorizza dati– Interagisce con dispositivi (schermo, tastiera, mouse)– Esegue programmi

I programmi sono sequenze di istruzioni che il computer esegue e di decisioni che il computer prende per svolgere una certa attività

Page 7: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

7

I diversi strati

Macchina

Sistema Operativo

Applicazioni

Page 8: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

8

Da cosa è composto un computer?

Quattro parti principali:1. Unità di input (tastiera, mouse)

2. Unità di output (monitor, stampante)

3. Central Processing Unit (CPU)

4. Unità di memoria (RAM, HD, FD)

Page 9: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

9

Che cosa c’è dentro il case?

1. Ci sono varie cose:1. Scheda madre + CPU

2. Memoria RAM e ROM

3. HD, FD, CD-ROM

4. Scheda video, Scheda audio

5. Scheda di Rete

6. Ecc.

Page 10: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

10

Come funziona un computer?(modello di John von Neumann)

CPU

Memoria principale (RAM e ROM)

Memoria secondaria (HD, FD e CD-rom)

Dispositivi di input e di

output

Bus dei dati

Page 11: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

11

Come funziona un computer?

Page 12: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

12

Come funziona un computer?

Architettura di Von Neumann:la memoria della macchina è condivisa dai dati e dai programmi

Architettura Harvard : esiste una memoria separata per i dati ed una per i programmi.

Oggi il termine “Architettura Harvard” è usato per macchine co una sola memoria principale ma con due cache separate una per i programmi ed una per i dati

Page 13: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

13

La memoria primaria

• E’ costituita da chip• RAM (Random Access Memory)

È memoria di lettura e scrittura e contiene dati in fase di modifica durante l’esecuzione dei programmi e perde i dati quando si spegne il computer (volatile):

SRAM (Static Random Access Memory)– Tempo di accesso 1÷10 ns, usata per cache L1/L2

DRAM/SDRAM ((Syncronous) Dynamic RAM)– Tempo di accesso 50÷100 ns, usata per memoria principale,

costo 5÷10 volte meno di SRAM e (50 volte più di dischi magnetici ma 100.000 volte più veloce)

Page 14: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

14

Gerarchia di memoria Registri

Cache L1

Cache L2

RAM

Dischi

SRAM

SDRAM

O(10) unità

O(102) KB

O(102) MB

O(102) GB

+ velocità+ costo- dimensione

- velocità- costo+ dimensione

Page 15: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

15

Gerarchia di memoriaFornire molta memoria

Costo delle tecnologie più economiche Prestazioni delle tecnologie più costose

Principio di localitài programmi accedono:

• a porzioni limitate di memoria

• durante limitati intervalli di tempo

Località temporale Località spaziale

Page 16: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

16

Funzionamento della Cache

CPU

Cache

RAMCache line

Page 17: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

17

RAM memoria ad accesso diretto

Nella RAM, come ovunque in un computer, le informazioni sono rappresentate con sequenze di 0 e di 1. Numeri binari.

La RAM quindi è fatta per contenere tali numeri.

•un bit può contenere o 0 o 1

•un byte è una sequenza di 8 bits

•una parola consiste di 4 bytes

Page 18: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

18

Organizzazione della RAM

La RAM è suddivisa in celle o locazioni di memoria, ognuna con un suo indirizzo univoco

byte

Si leggono e si scrivono singoli byte o blocchi di 4 bytes consecutivi: le parole.

bit

parola

Page 19: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

19

Indirizzamento di byte e parole

0

1

2

3

4

5

6

7

8

9

10

11

byte

0

1

2

parola00000000

00000001

00000010

00000011

00000100

00000101

00000110

00000111

00001000

00001001

00001010

00001011

in binario

Page 20: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

20

Unità di misura della RAM

1 Kilo byte: 210 = 1024 bytes, 1000

1 Mega byte: 220 = 1.048.576 bytes, 1000000

1 Giga byte 230 = 1.073.741.824 bytes, 109

1 Tera byte 240 = 1.099.511.627.776 bytes, 1012

Page 21: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

21

La CPU: unità centrale di calcolo

bus

RAM

ALU

CI1 CI2 CIk

P

IP

RC

CPU

R0

Rn

registri di calcolo

Page 22: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

22

Ciclo Fetch-Decode-Execute

Ogni ciclo di clock ha tre fasi:

•Accesso (legge istruzione da eseguire e la memorizza nel registro istruzione)

•Decodifica (l’istruzione da eseguire)

•Esecuzione (dell’istruzione)

Page 23: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

23

Fetch

bus

RAM CI1

CI2

CIk P

IP

RC

CPU

R0

RnALU

Page 24: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

24

Decode

bus

RAM

P

IP

RC

CPU

R0

RnALU

CI1 CI2 CIk

Page 25: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

25

Execute

bus

RAM

P

IP

RC

CPU

R0

RnALU

CI1 CI2 CIk

Page 26: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

26

CPU: caratteristiche

Page 27: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

27

Instruction set

CISC: (Complex Instruction Set Computer)

• Utilizzo del transistor budget per massimizzare la

taglia dell’instruction set

• Esempi: Intel X86, Pentium, P6

RISC: (Reduced Instruction Set Computer)

• Utilizzo del transistor budget per velocizzare un

repertorio limitato di istruzioni (load/store).

• Esempi: MIPS RX000, SPARC, IBM PowerPC

Insieme di istruzioni offerte dall’architettura

Page 28: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

28

CISC vs RISC

CISC RISC

Prezzo / prestazioni

Prezzo: complessità è spostata dal software all’hardware

Prestazioni: riduzione del codice, maggiore CPI.

Prezzo: complessità è spostata dall’ahrdware al software

Prestazioni: minore CPI, maggiore dimensione del codice

Strategie di progettazione

• Ampio insieme di istruzioni, che permettono di compiere sia operazioni semplici che complesse (corispondenti di istruzioni in HLL)• Supporto per HLL è in hardware• Unità di controllo in microcodice• Meno transistors per i registri

• Insieme di funzioni base, mono-ciclo• Supporto per HLL è fatto via software• Indirizzamento semplice (LOAD – STORE da registro a registro) • Transistors usati per aumentare il numero di registri• Pipeline

Page 29: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

29

CPU: Pipeline

• Devo una stessa sequenza di M istruzioni su N dati

• Una istruzione per ciclo di clock

• Per concludere l’elaborazione devo aspettare N*M cicli di clock

Page 30: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

30

CPU: Pipeline

• Ad ogni ciclo di clock:– Una istruzione è eseguita– Un solo circuito della ALU è attivo

Posso utilizzare più efficientemente i circuiti della ALU?

Page 31: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

31

CPU: Pipeline

Page 32: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

32

CPU: Pipeline

• Il primo risultato arriva dopo M (numero di stadi) cicli di clock

• I successivi risultati arrivano uno per ogni ciclo di clock

Tempo di elaborazione:

M+(N-1)

cicli per avere il primo risultato

cicli per avere gli altri risultati

Page 33: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

33

CPU: Pipeline

EsempioEsecuzione di 109 istruzioni su un processore a 500 Mhz:

Con pipeline a 5 stadi:(109-1)+5 cicli = ((109-1)+5) *2 ns = 2s

Senza pipeline109*5 cicli = 109 * 5 *2 ns = 10s

Page 34: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

34

La memoria secondaria

E’ di solito un disco rigido che contiene dati e programmi in modo permanente (può essere anche un cd-rom, floppy disk, etc).

Tempi di accesso:– Floppy: O(100) ms– Hard disk: O(10) ms

Programmi e dati risiedono sul disco rigido e vengono caricati nella RAM quando è necessario per poi tornarvi aggiornati se e quando necessario.

Page 35: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

35

La memoria secondaria - 2

Page 36: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

36

La memoria secondaria

traccia

settore

cilindro

piatto

rotazione

braccio

testina

Page 37: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

37

La memoria secondaria - 3

Tempo di accesso a un settore:

SEEK+LATENCY+TRANSMISSION

SEEK = ricerca della traccia

LATENCY = ricerca del settore da trasferire TRANSMISSION = trasmissione del settore

Page 38: 1 Fondamenti di informatica: un po di storia Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal,

38

La memoria secondaria - 4

EsempioAccesso ad un settore di 0.5 Kb per un disco che abbia

SEEK = 9msVelocità di rotazione = 7200 rpmTRANSMISSION = 4 Mb/s

0.009+0.5*60/7200+0.5/4000 = 13.3 ms