Fondamenti di informatica: un po’ di storiaenrigri/Corsi/Informatica/Lezione01.pdf · Fondamenti...

Post on 16-Feb-2019

238 views 1 download

Transcript of Fondamenti di informatica: un po’ di storiaenrigri/Corsi/Informatica/Lezione01.pdf · Fondamenti...

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

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

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

Introduzione all’Architettura del Computer

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?

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à

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)

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.

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

Come funziona un computer?

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

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)

Gerarchia di memoria Registri

Cache L1

Cache L2

RAM

Dischi

SRAM

SDRAM

O(10) unità

O(105) unità

O(108) unità

O(1010) unità

+ velocità+ costo- dimensione

- velocità- costo+ dimensione

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

Funzionamento della Cache

CPU

Cache

RAMCache line

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

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

Indirizzamento di byte e parole

0123

4567

89

1011

byte

0

1

2

parola00000000000000010000001000000011

00000100000001010000011000000111

00001000000010010000101000001011

in binario

Unità di misura della RAM

1 Kilo byte (KB) : 210 = 1024 bytes, ≈1000

1 Mega byte (MB) : 220 = 1.048.576 bytes, ≈1000000

1 Giga byte (GB) : 230 = 1.073.741.824 bytes, ≈109

1 Tera byte (TB) : 240 = 1.099.511.627.776 bytes, ≈ 1012

La CPU: unità centrale di calcolo

bus

RAM

ALU

CI1 CI2 CIk

PC

IP

RC

CPUR0

Rn

registri di calcolo(vengono memorizzati i datiusati dalle istruzioni)

registro del risultato(viene memorizzato il risultatodi ogni istruzione)

indirizzo dell’istruzionesuccessiva (program counter)

istruzione da eseguire

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)

Fetch

bus

RAM CI1

CI2

CIk P

IP

RC

CPUR0

RnALU

Decode

bus

RAM

P

IP

RC

CPUR0

RnALU

CI1 CI2 CIk

Execute

bus

RAM

P

IP

RC

CPUR0

RnALU

CI1 CI2 CIk

CPU: caratteristiche

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, PowerPC

Insieme di istruzioni offerte dall’architettura

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

CPU: Pipeline

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