Elementi di Informatica e Calcolo Numerico - dei.unipd.it enrigri/Corsi/InformaticaSdM_0708/  ...

download Elementi di Informatica e Calcolo Numerico - dei.unipd.it enrigri/Corsi/InformaticaSdM_0708/   Elementi

of 38

  • date post

    16-Feb-2019
  • Category

    Documents

  • view

    215
  • download

    0

Embed Size (px)

Transcript of Elementi di Informatica e Calcolo Numerico - dei.unipd.it enrigri/Corsi/InformaticaSdM_0708/  ...

1

Elementi di Informatica e

Calcolo Numerico

Prof. Enrico Grisan

Uff. : Via Ognissanti 72E-mail: enrico.grisan@dei.unipd.itTelefono: 049-8277827

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

mailto:enrico.grisan@dei.unipd.it

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)

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

4

Obiettivi del corso

Organizzazione di un elaboratore Introduzione alla progettazione ed

allanalisi degli algoritmi Strutture di dati ed algoritmi elementari Il linguaggio di programmazione

Python

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

6

Fondamenti di informatica:un po di storia

Lidea di utilizzare dispositivi meccanici per effettuare in modo automatico calcoli risale al 600 (Pascal, Leibniz)

Nellottocento vengono realizzati i primi dispositivi meccanici a programma: telai Jacquard, pianole, macchine di Babbage

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 lENIAC: elaboratore a valvole termoioniche e a programma filato

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

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 dellinformazione (con un famoso articolo di Shannondel 1948) mostra come fenomeni continui possano essere descritti in modo preciso in forma discreta (campionamento e quantizzazione)

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

Introduzione allArchitettura del Computer

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?

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

12

I diversi strati

Macchina

Sistema Operativo

Applicazioni

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)

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.

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

16

Come funziona un computer?

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

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 lesecuzione dei programmi e perde i dati quando si spegne il computer (volatile):

SRAM (Static Random Access Memory) Tempo di accesso 110 ns, usata per cache L1/L2DRAM/SDRAM ((Syncronous) Dynamic RAM) Tempo di accesso 50100 ns, usata per memoria principale,

costo 510 volte meno di SRAM e (50 volte pi di dischimagnetici ma 100.000 volte pi veloce)

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

20

Gerarchia di memoriaFornire molta memoria

Costo delle tecnologie pi economiche Prestazioni delle tecnologie pi costose

Principio di localiti programmi accedono:

a porzioni limitate di memoria

durante limitati intervalli di tempo

Localit temporale Localit spaziale

21

Funzionamento della Cache

CPU

Cache

RAMCache line

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

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

24

Indirizzamento di byte e parole

0123

4567

89

1011

byte

0

1

2

parola00000000000000010000001000000011

00000100000001010000011000000111

00001000000010010000101000001011

in binario

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

26

La CPU: unit centrale di calcolo

bus

RAM

ALU

CI1 CI2 CIk

P

IP

RC

CPUR0

Rn

registri di calcolo

27

Ciclo Fetch-Decode-Execute

Ogni ciclo di clock ha tre fasi:

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

Decodifica (listruzione da eseguire)

Esecuzione (dellistruzione)

28

Fetch

bus

RAM CI1

CI2

CIk P

IP

RC

CPUR0

RnALU

29

Decode

bus

RAM

P

IP

RC

CPUR0

RnALU

CI1 CI2 CIk

30

Execute

bus

RAM

P

IP

RC

CPUR0

RnALU

CI1 CI2 CIk

31

CPU: caratteristiche

32

Instruction set

CISC: (Complex Instruction Set Computer)

Utilizzo del transistor budget per massimizzare la taglia dellinstruction 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 dallarchitettura

33

CISC vs RISCCISC RISC

Prezzo / prestazioniPrezzo: complessit spostata dal software allhardware

Prestazioni: riduzione del codice, maggioreCPI.

Prezzo: complessit spostata dallahrdwareal 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

34

CPU: Pipeline

Devo una stessa sequenza di M istruzioni su N dati

Una istruzione per ciclo di clock

Per concludere lelaborazione devo aspettare N*M cicli di clock

35

CPU: Pipeline

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

Posso utilizzare pi efficientementei circuiti della ALU?

36

CPU: Pipeline

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

38

CPU: Pipeline

EsempioEsecuzione di 109 istruzioni su un processore a 500 Mhz:

Con pi