Elementi di Informatica e Calcolo Numerico -...

38
1 Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via Ognissanti 72 E-mail: [email protected] Telefono: 049-8277827 web: http://www.dei.unipd.it/~enrigri

Transcript of Elementi di Informatica e Calcolo Numerico -...

Page 1: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

1

Elementi di Informatica e

Calcolo Numerico

Prof. Enrico Grisan

Uff. : Via Ognissanti 72E-mail: [email protected]: 049-8277827

web: http://www.dei.unipd.it/~enrigri

Page 2: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

2

Organizzazione del corso

Mod A: 1 Ottobre – 30 Novembre2 ore di lezione a settimana2 ore di laboratorio a settimana

Mod B: 6 Dicembre – 25 Gennaio(Prof. Alvise Sommariva)

Page 3: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

Orario

• Lezioni in aula H Giovedì dalle 11.30 alle 13.30.

• Laboratorio in aula C (Matematica, Via Paolotti) Mercoledì dalle 11.30 alle 13.30

• Esercitazioni libere nei laboratori

Page 4: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

4

Obiettivi del corso

• Organizzazione di un elaboratore• Introduzione alla progettazione ed

all’analisi degli algoritmi• Strutture di dati ed algoritmi elementari• Il linguaggio di programmazione

Python

Page 5: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

Copyright, 1996 © Dale Carnegie & Associates, Inc.

Materiale didattico• Filè, Rossi, “Informatica di Base” presso la Libreria

Progetto.

• Copia dei trasparenti ed eventuale materiale integrativo nel sito web del docente.

• Linguaggio di programmazione:• Allen Downey, “Pensare da Informatico”

http://www.python.it/doc/libri.html

Page 6: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

6

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 7: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

7

Fondamenti di informatica:un po’ di storia

• Nel 1896 Hollerith fonda la “Tabulating MachineCompany” (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 8: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

8

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 anaaplication 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 Shannondel 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 9: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

Introduzione all’Architettura del Computer

Page 10: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

10

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 11: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

11

Cos’è un computer?

Un computer è una macchina che:– Memorizza dati– Interagisce con dispositivi (schermo, tastiera, mouse)– Esegue programmiI programmi sono sequenze di istruzioni che il computer

esegue e di decisioni che il computer prende per svolgere una certa attività

Page 12: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

12

I diversi strati

Macchina

Sistema Operativo

Applicazioni

Page 13: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

13

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 14: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

14

Che cosa c’è dentro il case?

1. Ci sono varie cose:1. Scheda madre + CPU2. Memoria RAM e ROM3. HD, FD, CD-ROM4. Scheda video, Scheda audio5. Scheda di Rete6. Ecc.

Page 15: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

15

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

CPUMemoria principale (RAM e ROM)

Memoria secondaria (HD, FD e CD-rom)

Dispositivi di input e di output

Bus dei dati

Page 16: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

16

Come funziona un computer?

Page 17: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

17

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 18: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

18

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/L2DRAM/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 dischimagnetici ma 100.000 volte più veloce)

Page 19: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

19

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 20: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

20

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 21: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

21

Funzionamento della Cache

CPU

Cache

RAMCache line

Page 22: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

22

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 23: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

23

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

byte

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

bit

parola

Page 24: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

24

Indirizzamento di byte e parole

0123

4567

89

1011

byte

0

1

2

parola00000000000000010000001000000011

00000100000001010000011000000111

00001000000010010000101000001011

in binario

Page 25: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

25

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 26: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

26

La CPU: unità centrale di calcolo

bus

RAM

ALU

CI1 CI2 CIk

P

IP

RC

CPUR0

Rn

registri di calcolo

Page 27: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

27

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 28: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

28

Fetch

bus

RAM CI1

CI2

CIk P

IP

RC

CPUR0

RnALU

Page 29: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

29

Decode

bus

RAM

P

IP

RC

CPUR0

RnALU

CI1 CI2 CIk

Page 30: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

30

Execute

bus

RAM

P

IP

RC

CPUR0

RnALU

CI1 CI2 CIk

Page 31: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

31

CPU: caratteristiche

Page 32: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

32

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 33: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

33

CISC vs RISCCISC RISC

Prezzo / prestazioniPrezzo: complessità è spostata dal software all’hardware

Prestazioni: riduzione del codice, maggioreCPI.

Prezzo: complessità è spostata dall’ahrdwareal software

Prestazioni: minore CPI, maggioredimensione del codice

Strategie di progettazione• Ampio insieme di istruzioni, chepermettono di compiere sia operazionisemplici 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 numerodi registri• Pipeline

Page 34: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

34

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 35: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

35

CPU: Pipeline

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

Posso utilizzare più efficientementei circuiti della ALU?

Page 36: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

36

CPU: Pipeline

Page 37: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

37

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 avereil primo risultato

cicli per averegli altri risultati

Page 38: Elementi di Informatica e Calcolo Numerico - dei.unipd.itenrigri/Corsi/InformaticaSdM_0708/Lezione01.pdf · Elementi di Informatica e Calcolo Numerico Prof. Enrico Grisan Uff. : Via

38

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