Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

81
L’elaboratore elettronico PARTE A

Transcript of Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Page 1: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

L’elaboratore elettronico

PARTE A

Page 2: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

input

(dati)

output

(risultati)

(elaborazione)

Page 3: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Evoluzione storica

Page 4: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Le generazioni informatiche

1942-’57, 1a gen. = tubi a vuoto

1958-’63, 2a gen. = transistori

1964-’80, 3a gen. = circuiti integrati

1980-oggi, 4a gen. = circuiti VLSI

(futuro) 5a gen. = ?

Page 5: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

ENIAC (1943): Electronic Numerical Integrator And Calculator

• Primo eleboratore general-purpose

• 18000 Valvole, 1500 relay

• Uso per calcoli balistici

•Lunghezza 25m, altezza 3m, superficie 180m2, peso 30ton, potenza assorbita 140KW

• Programmazione con interruttori manuali

• Aritmetica decimale, 5000 operazioni/sec

• MTBF = 8 ore

Page 6: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

n transistori per chip

anni1980 2000

8086

Pentium III

La potenza della sabbia (silicio)...ovvero: l’evoluzione dei microprocessori

Page 7: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

n transistori per chip

anni1980 2000

8086

• 1 milione di addizioni al secondo• 30.000 transistor

La potenza della sabbia (silicio)...ovvero: l’evoluzione dei microprocessori

Page 8: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

n transistori per chip

anni1980 1998

8086

• 1 milione di addizioni 1 milione di addizioni al secondoal secondo• 30.000 transistor30.000 transistor

PENTIUM III • 2 miliardi di addizioni al secondo • 9.000.000 transistor.

Pentium III

La potenza della sabbia (silicio)...ovvero: l’evoluzione dei microprocessori

Page 9: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Microprocessori INTEL 80x86

8088/8086MIPS: 0.33 (5 MHz)Transistors: 29.000

80286MIPS: 3 (12 MHz)

Transistors: 134.000

80386MIPS: 11 (33 MHz)

Transistors: 275.000

80486MIPS: 41 (50 MHz)

Transistors: 1.200.000

PentiumMIPS: 100+ (66 MHz)

Transistors: 3.000.000+

1979

1982

1985

1989

1993

Page 10: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Pentium 32 bit - (166 MHz)

Transistors: 3.000.000+

19931993

Pentium II64 bit - 450 MHz

Transistors: 7.000.000+

19981998

Pentium PRO64 bit - 200 MHz

Transistors: 7.000.000+

19951995

Microprocessori INTEL 80x86Pentium III

64 bit – 1.13 GHzTransistors: 9.000.000+

19991999

Page 11: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Nozioni fondamentali

Page 12: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Hardware

Definizione:

l’insieme delle apparecchiature (elettroniche, meccaniche, ecc.) che costituiscono fisicamente il sistema di elaborazione.

Page 13: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Software

Definizione:

l’insieme dei programmi e dei dati che permettono lo svolgimento delle funzioni di elaborazione

Page 14: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Programmi e Istruzioni

Un programma è un insieme ordinato di istruzioni

Un’istruzione è la specifica di una operazione che può essere svolta da un elaboratore.

Page 15: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

I dati

• I dati numerici sono quelli più usati

• Tutti gli altri tipi di dato sono trasformati in dati numerici

V 43 3 r

1234567890

Page 16: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Il sistema decimale

252 = 2 100 + 5 10 + 2 1

= 2 102 + 5 101 + 2 100

Sistema di numerazione del mondo occidentale (sistema arabo):

• decimale (base 10, cifre { 0, 9 })

• posizionale

Page 17: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Il sistema binario

• base: 2

• cifre: { 0, 1 }

Esempio:

1012 = 1 22 + 0 21 + 1 20

= 1 4 + 1 1

= 510

Page 18: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Alcuni numeri binari

0 ... 0 1000 ... 81 ... 1 1001 ... 9

10 ... 2 1010 ... 1011 ... 3 1011 ... 11

100 ... 4 1100 ... 12101 ... 5 1101 ... 13110 ... 6 1110 ... 14111 ... 7 1111 ... 15

Page 19: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

BIT (BInary digIT) 0 1

BYTE = otto bit 00110110

WORD = n byte 00001111

10101010

Terminologia

Page 20: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Terminologia

LSB

LeastSignificantBit

MSB

MostSignificantBit

Page 21: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Multipli binari

Si usano le potenze di due invece di quelle di dieci:

chilo K 210 ~ un migliaio

mega M 220 ~ un milione

giga G 230 ~ un miliardo

tera T 240 ~ mille miliardi

Page 22: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

La logica deglielaboratori elettronici

Logica Booleana:

• 1847 George Boole

• logica formale

• enunciati di cui fosse possibile verificare in modo inequivocabile la verità o la falsità

• le variabili sono in grado di assumere solo due valori: VERO, FALSO

.

Page 23: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Logica Booleana: un esempio

Se domani ci sarà il sole, allora andrò a fare una gita.

Page 24: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Architettura degli elaboratori

Page 25: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Il transistore

È l’elemento base degli attuali elaboratori elettronici digitali:

• piccole dimensioni ( m )

• basso consumo di energia ( W )

• alta velocità di funzionamento (milioni di operazioni al secondo)

Page 26: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Chip

Chip:circuito integrato, microcircuito, componente elettronico contenenteal suo interno moltissimi transistor

Da migliaia a milionidi TRANSISTOR

Page 27: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Il chip sta al calcolatore come il mattone sta alla casa

Calcolatore

Page 28: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Blocchi funzionali(architettura di Von Neumann 1951)

INPOUT

MEM

UO

UC

Page 29: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Problematiche

• codifica dei dati (in un formato comprensibile all’elaboratore)

• codifica degli ordini (sequenza di operazioni che compongono l’elaborazione)

• decodifica dei risultati (in un formato comprensibile agli umani)

Page 30: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Flusso dei dati

INPOUT UO

MEM

UC

Page 31: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Informazioni di stato

INPOUT UO

MEM

UC

Page 32: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Ordini

INPOUT UO

MEM

UC

Page 33: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Struttura a blocchi

INPOUT UO

MEM

UC

Page 34: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Unità di input:schema funzionale

TTADCADCBB

control logiccontrol logic

dato

readyget

Page 35: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Unità di output:schema funzionale

TTDACDACBB

control logiccontrol logic

dato

readyput

Page 36: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Unità operativa: schema funzionale

operandi

operazione

destinazione

flag

risultato

dati

registriregistri

ALUALU FF

Page 37: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Unità di controllo:schema funzionale

PC

IR

logica dicontrollo

M

stato

comandi

Page 38: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Il ciclo base di un elaboratore

Preleva una istruzione dalla memoria RAM

Interpreta l’istruzione

Esegue l’istruzione

Reset

Fetch

Decode

Execute

Page 39: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Esecuzione di un’istruzione

Tre fasi distinte:

• fetch IR M [ PC ]PC PC + 1

• decode ordini decode(IR)

• execute ready? go!

Page 40: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

CPU Central Processing Unit

La CPU controlla tutte le operazioni di un elaboratore

Le operazioni possono essere:• interne alla CPU (ad es. somma)• esterne: trasferimenti da/per memoria o I/O

CPUL’imperatoreSONO IO !

Page 41: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Il clock

Ogni elaboratore contiene un elemento di temporizzazione (detto clock ) che genera un riferimento temporale comune per tutti gli elementi costituenti il sistema di elaborazione.

Page 42: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Il clock

• T = periodo di clock

• f = frequenza di clock ( = 1 / T )

t

T

Page 43: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Velocità di elaborazione MIPS ( Million Instructions Per Second )

f = frequenza di clock [ Hz = cicli/s ]

T = periodo di clock = 1 / f [ s ]

C = cicli macchina / istruzione

IPS = f / C = 1 / ( T C )

MIPS = IPS / 106

Page 44: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Memoria centrale

Page 45: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Memoria: schema funzionale

MEMindirizzo

read/write

dato

ready

Page 46: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Memoria

Memorizza i dati e le istruzioni necessarie all’elaboratore per operare.Caratteristiche:• indirizzamento• parallelismo• accesso (sequenziale o casuale)• tipo (volatile-non volatile, lettura-

lettura/scrittura, etc.)

Page 47: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Indirizzamento

Ad ogni cella di memoria è associato un indirizzo (numerico) per identificarla univocamente.

Page 48: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Parallelismo

Ogni cella di memoria contiene una quantità fissa di bit:

• identica per tutte le celle

• accessibile con un’unica istruzione

• è un multiplo del byte

• minimo un byte

Page 49: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Memoria ad accesso casuale

• il tempo di accesso è costante (indipendente dalla cella scelta)

Ta = costante

• anche detta RAM (Random Access Memory)

Page 50: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Memoria ad accesso sequenziale

• il tempo di accesso dipende dalla cella a cui si accede

• spesso la dipendenza è lineare

Ta = K indirizzo

Page 51: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Memoria interna

• all’interno dell’elaboratore

• è allo stato solido (chip)

• solitamente è volatile

• veloce (nanosecondi, 10-9s)

• quantità limitata (decina MB)

• non rimovibile

• costosa (5000 Lit / MB)

Page 52: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Memoria esterna

• all’esterno dell’elaboratore

• talvolta rimovibile

• non elettronica (es. magnetica)

• permanente

• lenta (millisecondi, 10-3 s)

• grande quantità (qualche GB)

• economica (500 Lit / MB)

Page 53: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

La memoria centrale

Sistema Operativo

Programmi

Memoria Video

Programma d’avvio

(boot program)

RAM

RAM

RAM Video

ROM

Page 54: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Memoria

Tecnologia:

• RAM: memorie a lettura e scrittura

(Random Access Memory)

• ROM: memorie a sola lettura

(Read Only Memory)

Page 55: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Memorie RAM

Le memorie RAM possono essere di due tipi:

• SRAM: RAM statiche• veloci (10 ns)

• minor impaccamento

• elevato costo per bit

• DRAM: RAM dinamiche• meno veloci (60 ns)

• maggior impaccamento (16 Mbit/chip)

• minor costo per bit

Page 56: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Tipologie di memorie ROM

PROM (Programmable ROM)• programmabili una sola volta, dall’utente

EPROM (Erasable PROM)• cancellabili e riprogrammabili più volte,

dall’utente

FLASH• cancellabili e riprogrammabili

elettricamente più volte dalla cpu

Page 57: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Memoria CACHE….. ovvero la lentezza delle

RAM

microprocessore DRAM

Page 58: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Memoria CACHEMemoria intermedia VELOCE

Trasferisco nella cachedati/istruzioni usatipiù frequentemente

CPU CACHE MEMORIA(DRAM)

Page 59: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Prestazioni della cache

Tempo medio di accesso in memoria:

TM = H · Tcache + ( 1 - H ) · TRAM

Ove

H = hit ratio (percentuale di celle trovate nella cache rispetto al totale degli accessi in memoria)

H 90% TM Tcache

Page 60: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Prestazioni della cache

Tcache = 20 nsTRAM = 80 ns

H = 60%TM = 0.6 · 20 + 0.4 · 80 = 44 ns

H = 95%TM = 0.95 ·20 + 0.05 · 80 = 23 ns

Page 61: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Connessioni (Bus)

Page 62: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

connettori

I Bus (ovvero il sistema circolatorio del PC)

Page 63: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Struttura a bus

Problema: collegamento completo tra N unità richiede N(N-1)/2 collegamenti

Esempi: 4U:6C, 10U:45C, 20U:190C

C

A B

D

Page 64: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Struttura a bus

Soluzione:segnali omologhi raggruppati in un bus, usato a turno dalle varie unità

A CB D

Page 65: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Tipi fondamentali di bus

• bus dati ( DBus )

• bus degli indirizzi ( ABus )

• bus di controllo ( CBus )

M1 IM2 O

DBusABusCBus

Page 66: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

II

Architettura di un Calcolatore

IRAM O

DBusABusCBus

CPU

ROM

Page 67: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Software

Page 68: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Nel mezzo del cammin di nostra vita...

0110101101001101100101101010010110100101

letteredell’alfabeto

0

1

bitABCDE FGHILM NOPQR STUVZ

Il linguaggio del calcolatore

Page 69: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Che cos’è un programma?

1. metti l’acqua2. accendi il fuoco

3. aspetta4. se l’acqua non

bolle torna a 35. butta la pasta6. aspetta un po’

7. assaggia8. se è cruda

torna a 6 9. scola la pasta

Sequenza di istruzioni

Page 70: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Esecuzione dei programmi

Programmi pronti per

essere eseguiti

Memoria di massa

(i dischi)

Page 71: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Esecuzione dei programmi

Programma ora in

esecuzione

RAM

Memoria di massa

(i dischi)CPU

Page 72: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Classificazione del software

hardware

software di base

middleware

software applicativo

Page 73: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Linguaggi di programmazione

Servono a tradurre gli algoritmi in istruzioni per l’elaboratore.

Ne esistono varie categorie:

• linguaggi macchina

• linguaggi assembler

• linguaggi ad alto livello

Page 74: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Linguaggio macchina

• codifica binaria delle istruzioni

• dipende dalla CPU (registri, operazioni, ...)

• dipende dall’architettura del calcolatore (quantità di memoria, modalità di I/O, ...)

Page 75: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Linguaggio assembler

• codifica simbolica delle istruzioniADD R1, R2, M[R4] ; R1= R2+ M [ R4 ]

• meta-istruzioniTOT: DB 0 ; crea ed azzera TOT

• linguaggio unico per architettura di CPU (es. Dec AXP, Intel 80x86)

Page 76: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Linguaggi ad alto livello(HLL - High Level Language)

• elaboratore virtuale

• istruzioni orientate alla soluzione di problemiA = SINH (5.57*C)

• linguaggio indipendente dalla piattaforma HW (richiedono programmi di traduzione)

Page 77: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Traduzione dei linguaggi

editoreditor

compilatorecompilatore

linkerlinker

filesorgente

fileoggetto

algoritmo

fileeseguibile

libreria

Page 78: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

RAM

interpreteinterprete

10 for I=1 to 520 print I, I*I30 next IRUN

filesorgente

Page 79: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Interprete o compilatore?

Compilatore (+ linker):

• controlla e traduce le istruzioni una sola volta

+ caricamento ed esecuzione veloce

+ codice non leggibile

– correzione degli errori e debug lenti

Page 80: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Interprete o compilatore?

Interprete:

• controlla e traduce le istruzioni ad ogni esecuzione del programma

+ correzione degli errori e debug veloce

– caricamento ed esecuzione lenta

– codice sorgente leggibile

Page 81: Lelaboratore elettronico PARTE A. input (dati) output (risultati) (elaborazione)

Alcuni interpreti

• interprete di un linguaggio di programmazione

• interprete dei comandi di un sistema operativo (command.com in MS-DOS, le shell UNIX, ...)

• i fogli elettronici (Lotus 1-2-3, Excel, QuattroPro, ...)