Architettura dei calcolatori -...

71
17/03/2004 Prof. Cristina Silvano – Politecnico di Milano 1 Architettura dei calcolatori: La gerarchia di memoria Le periferiche di I/O 17/03/2004 Prof. C. Silvano – Politecnico di Milano 2 Architettura dei calcolatori Un calcolatore deve essere in grado di svolgere autonomamente i seguenti compiti: Memorizzare i dati sui quali operare Memorizzare sequenze di istruzioni Eseguire le istruzioni sui dati Controllare il flusso di esecuzione Comunicare con gli utenti e con altri dispositivi Sottosistema di interfaccia Sottosistema di memorizzazione Sottosistema di elaborazione Connessione

Transcript of Architettura dei calcolatori -...

Page 1: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 1

Architettura dei calcolatori:La gerarchia di memoria

Le periferiche di I/O

17/03/2004 Prof. C. Silvano – Politecnico di Milano 2

Architettura dei calcolatoriUn calcolatore deve essere in grado di svolgere autonomamente i seguenti compiti:• Memorizzare i dati sui quali operare• Memorizzare sequenze di istruzioni• Eseguire le istruzioni sui dati• Controllare il flusso di esecuzione• Comunicare con gli utenti e con altri dispositivi

Sottosistemadi interfaccia

Sottosistemadi memorizzazione

Sottosistemadi elaborazione

Connessione

Page 2: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 2

17/03/2004 Prof. C. Silvano – Politecnico di Milano 3

Caratteristiche dell’architettura

Flessibilità: adatta a svolgere diverse tipologie di compitiModularità: ogni componente ha una funzionalità specificaScalabilità: ogni componente può essere sostituito con uno equivalenteStandardizzazione: componenti facilmente sostituibili in caso di malfunzionamentoRiduzione dei costi: grazie alla produzione su larga scala

17/03/2004 Prof. C. Silvano – Politecnico di Milano 4

Architettura di riferimento dei calcolatori

Page 3: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 3

17/03/2004 Prof. C. Silvano – Politecnico di Milano 5

Architettura di riferimento dei calcolatori (Architettura di Von Neumann - 1946)

Elementi principali di un calcolatore:• Unità centrale di elaborazione (Central Processing Unit -

CPU) o processore• Memoria centrale o principale (Main Memory - MM)• Interfacce per i dispositivi di Input/Output - I/O:

• memoria di massa o memoria secondaria (di solito dischi magnetici)• periferiche (tastiera, monitor, mouse, modem, stampanti, ecc.)

• Bus di sistema• Bus dati, bus indirizzi, bus di controllo

17/03/2004 Prof. C. Silvano – Politecnico di Milano 6

Esempio: scheda madre (mother board)

Memoria

Processore Interfaccia I/O

Page 4: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 4

Unità centrale di elaborazione (Central Processing Unit - CPU)

17/03/2004 Prof. C. Silvano – Politecnico di Milano 8

Unità centrale di elaborazione (Central Processing Unit - CPU)

La CPU (o processore) provvede ad eseguire le istruzioni che costituiscono i diversi programmi elaborati dal calcolatore. Le istruzioni, insieme ai dati cui fanno riferimento, si trovano nella memoria principale e vengono trasferite alla CPU passando attraverso il bus. La CPU deve quindi prelevare le istruzioni dalla memoria (fase di fetch) per eseguirle.

Page 5: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 5

17/03/2004 Prof. C. Silvano – Politecnico di Milano 9

Unità centrale di elaborazione (Central Processing Unit - CPU)

La CPU non è in grado di elaborare direttamente i dati contenuti nella memoria principale, opera su dati che si trovano all’interno di appositi elementi di memorizzazione (registri) contenuti all’interno della CPU.Il tempo di accesso ai registri interni è circa 10 volte più veloce del tempo di accesso alla memoria principale.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 10

Unità centrale di elaborazione (Central Processing Unit - CPU)

Per effettuare un’operazione su dati contenuti in memoria, è necessario:• Trasferire i dati dalla memoria ai registri del

processore.• Effettuare l’operazione utilizzando i registri.• Trasferire il risultato in memoria.

Page 6: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 6

17/03/2004 Prof. C. Silvano – Politecnico di Milano 11

Banco di Registri

Banco di Registri (Register File) ad accesso rapido, per memorizzare temporaneamente gli operandi usati nelle istruzioni. Il banco di registri contiene n registri ad uso generale:R0, R1, …, Rn-1 – General-Purpose Registers

17/03/2004 Prof. C. Silvano – Politecnico di Milano 12

Registri e variabili

Il numero dei registri ad uso generale (ad esempio 32 registri da 32 bit ciascuno) non èsufficientemente grande da consentire di memorizzare tutte le variabili di un programma.Ad ogni variabile viene assegnata una locazione di memoria nella quale trasferire il contenuto del registro quando questo deve essere utilizzato per contenere un’altra variabile.

Page 7: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 7

17/03/2004 Prof. C. Silvano – Politecnico di Milano 13

Architetture LOAD/STORE

Architetture LOAD/STORE: gli operandidell’ALU possono provenire soltanto dai registri ad uso generale contenuti nella CPU e nonpossono provenire dalla memoria.Sono necessarie apposite istruzioni di:• caricamento (LOAD) dei dati da memoria ai

registri;• memorizzazione (STORE) dei dati dai registri alla

memoria.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 14

La memoria

Page 8: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 8

17/03/2004 Prof. C. Silvano – Politecnico di Milano 15

La memoria

Compito principale: contenere istruzioni e dati.• Supporto alla CPU: deve fornire alla CPU dati e

istruzioni dei programmi in esecuzione il piùrapidamente possibile.

• Archivio: deve consentire di memorizzare dati e istruzioni garantendone la conservazione e la reperibilità anche dopo elevati periodi di tempo.

Caratteristiche principali: dimensione complessiva e velocità di accesso.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 16

La memoria

Diverse esigenze:• velocità per il supporto alla CPU• non volatilità ed elevate dimensioni per

l’archivio.

Diverse tecnologie:• elettronica: veloce, ma costosa e volatile• magnetica e ottica: non volatile ed economica,

ma molto lenta.

Page 9: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 9

17/03/2004 Prof. C. Silvano – Politecnico di Milano 17

Caratteristiche di una memoriaCapacità • Misurata in numero di byte (e multipli del byte) che

possono essere memorizzati.Volatilità• Indica la capacità di conservare i valori memorizzati in modo

permanente o menoVelocità• Tempo di accesso (quanto tempo passa tra una richiesta e la

relativa risposta)• Velocità di trasferimento (quanti byte al secondo si possono

trasferire).Costo (per bit)

17/03/2004 Prof. C. Silvano – Politecnico di Milano 18

Caratteristiche di una memoria

Modalità di accesso• diretta (o casuale): il tempo di accesso è

indipendente dalla posizione.• sequenziale: il tempo di accesso dipende dalla

posizione.• mista: combinazione dei due casi precedenti.

Page 10: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 10

17/03/2004 Prof. C. Silvano – Politecnico di Milano 19

La memoria principale o centrale (Main Memory)

17/03/2004 Prof. C. Silvano – Politecnico di Milano 20

Memoria Principale o Centrale(Main Memory)

Memorizza al proprio interno i dati e le istruzioni dei programmi in esecuzione.Memoria ad accesso casuale (RAM – RandomAccess Memory)Tecnologia elettronica:• veloce ma volatile e costosa

Due “eccezioni”:• ROM (Read Only Memory): elettronica ma permanente e

di sola lettura.• Flash: elettronica ma permanente e riscrivibile.

Page 11: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 11

17/03/2004 Prof. C. Silvano – Politecnico di Milano 21

Memoria RAM e Memoria ROM

La memoria RAM (Random Access Memory) • permette sia la lettura che la scrittura• volatile (i dati memorizzati vengono persi allo

spegnimento del calcolatore)• usata per memorizzare dati e programmi

La memoria ROM (Read Only Memory) • permette solo la lettura dei dati • persistente (mantiene il suo contenuto anche

quando non c’è alimentazione) • usata per memorizzare il software di sistema

17/03/2004 Prof. C. Silvano – Politecnico di Milano 22

Memoria RAM

Nelle RAM ogni locazione può essere raggiunta in un breve e prefissato intervallo di tempo misurato a partire dall’istante in cui si specifica l’indirizzo desiderato.

Nelle RAM il tempo di accesso alla memoria (tempo necessario per accedere ad una parola di memoria) è fisso e indipendente dalla posizione della parola alla quale si vuole accedere.

Page 12: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 12

17/03/2004 Prof. C. Silvano – Politecnico di Milano 23

Memoria RAM: SRAM e DRAMDue principali tecnologie di memoria RAM:• SRAM (Static Random Access Memory)

• maggiormente utilizzate per le memorie cache• veloci• maggiore area fisica• “costose”

• DRAM (Dynamic Read Only Memory)• maggiormente utilizzate per la memoria principale• richiedono refresh continuo• lente• minore area fisica• “ economiche”

17/03/2004 Prof. C. Silvano – Politecnico di Milano 24

Memoria principale - DRAM

Fino all’inizio degli anni ’90 la memoria veniva prodotta, acquistata e installata su chip singoli• densità variabili da 1 Kbit a 1 Mbit• le schede avevano zoccoli vuoti dove inserire altri chip

Oggi si monta un gruppo di chip, tipicamente 8 o 16, su una piccola scheda stampata che si vende come unità minima installabile nei PC:• SIMM (Single Inline Memory Module) se la fila

di connettori si trova da un solo lato della scheda;• DIMM (Dual Inline Memory Module) se i

connettori si trovano su ambedue i lati della scheda.

Page 13: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 13

17/03/2004 Prof. C. Silvano – Politecnico di Milano 25

Organizzazione della memoriaI bit nella memoria principale sono raggruppati in celle.Ogni cella è caratterizzata da: • un indirizzo, che è un numero che identifica la

cella e ne consente l’accesso• un valore, che è la sequenza di bit memorizzata

dalla cella

17/03/2004 Prof. C. Silvano – Politecnico di Milano 26

Organizzazione della memoria

Tutte le celle sono formate dallo stesso numero di bit (k bit).• Una cella (composta da k bit) è in grado di

contenere una qualunque tra 2k combinazioni diverse di bit.

• In quasi tutti i calcolatori la cella è composta da k = 8 bit (un byte)

Page 14: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 14

17/03/2004 Prof. C. Silvano – Politecnico di Milano 27

Organizzazione della memoria

La cella è la più piccola unità di memoria indirizzabile.Ogni cella ha un indirizzo:• serve come accesso all’informazione contenuta nella

cella• in una memoria con N celle gli indirizzi vanno da 0

a N-1.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 28

Organizzazione della memoria

Le celle (i byte) sono raggruppati in parole(word) composte da n-bit che possono essere letti o scritti dalla CPU con una singola operazione di lettura/scrittura della memoria. Nei calcolatori più recenti la dimensione della parola (n o lunghezza di parola) va da 32 bit a 64 bit (da 4 a 8 Byte).

Page 15: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 15

17/03/2004 Prof. C. Silvano – Politecnico di Milano 29

Organizzazione della memoria

In genere, la dimensione della parola di memoria coincide con la dimensione dei registri contenuti nella CPU, in modo da poter caricare una parola di memoria in un registro della CPU.Se anche il bus dati è largo come la parola di memoria, le operazioni di load/store avvengono con una singola operazione.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 30

Organizzazione della memoriaGli indirizzi della memoria sono rappresentati come numeri binari.Ogni indirizzo di memoria composto da M-bit consente di indirizzare 2M celle di memoria • Per esempio con 3 bit di indirizzo è possibile

indirizzare fino a 8 celle di memoria.• Il numero M di bit nell’indirizzo determina il

numero massimo di celle indirizzabili nella memoria (ed è indipendente dal numero di bit per cella)

Page 16: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 16

17/03/2004 Prof. C. Silvano – Politecnico di Milano 31

Organizzazione della memoria

Se il MAR è costituito da M bit ⇒ i 2M indirizzi (corrispondenti a 2M celle di memoria) costituiscono lo spazio di indirizzamento del calcolatore (da 0 a 2M –1). Per esempio:• Indirizzo composto da M = 4 bit genera uno spazio

di indirizzamento di 24 = 16 celle di memoria.• Indirizzo composto da M = 32 bit genera uno

spazio di indirizzamento di 232 o 4G celle di memoria.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 32

Indirizzi nella memoria principale

Cella2M-12M-1

……

Cella ibk-1 …………………………..…b1 b0i

……

Cella 11

Cella 00

Cella⇐ k-bit ⇒Indirizzo

Page 17: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 17

17/03/2004 Prof. C. Silvano – Politecnico di Milano 33

Organizzazione della memoria: Esempio 1

Cella composta da k=8 bit (un byte)• Ogni cella è in grado di contenere una qualunque tra 28 =

256 combinazioni diverse di bit.

Parola di memoria composta da una cella (8 bit)Capacità di memoria = 8 parole = 8 x 8 bit = 64 bit (8 Byte)Indirizzo di memoria composto da M=3 bit consente di indirizzare 23 = 8 celle = 8 parole

17/03/2004 Prof. C. Silvano – Politecnico di Milano 34

Organizzazione della memoria: Esempio 1

Cella77 111

……

Cella ib7 ……..…b1 b0i

……

Cella 11 001

Cella 00 000

Cella = Parola⇐ 8-bit ⇒Indirizzo

Page 18: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 18

17/03/2004 Prof. C. Silvano – Politecnico di Milano 35

Diversa organizzazione della memoria: Esempio 2

Cella composta da k=8 bit (un byte)Parola di memoria composta da 2 celle (16 bit) ⇒ 4 parole da 16 bitCapacità di memoria = 4 parole = 4 x 16 bit = 64 bit (8 Byte)Indirizzo di memoria composto da M=2 bit consente di indirizzare 22 = 4 parole

17/03/2004 Prof. C. Silvano – Politecnico di Milano 36

Diversa organizzazione della memoria: Esempio 2

Parola 33 11

Parola 22 10

Parola 11 01

Parola 00 00

1 Parola = 2 Celle⇐ 8-bit ⇒ ⇐ 8-bit ⇒Indirizzo

0 1

Page 19: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 19

17/03/2004 Prof. C. Silvano – Politecnico di Milano 37

Organizzazione della memoria: Esempio 3

Cella composta da k=8 bit (un byte)Parola di memoria composta da una cella (8 bit)Capacità di memoria = 16 parole = 16 x 8 bit = 128 bit (16 Byte)Indirizzo di memoria composto da M=4 bit consente di indirizzare 24 = 16 celle = 16 parole

17/03/2004 Prof. C. Silvano – Politecnico di Milano 38

Organizzazione della memoria: Esempio 3

Cella1515 1111

……

Cella ib7 ……..…b1 b0i

……

Cella 11 0001

Cella 00 0000

Cella = Parola⇐ 8-bit ⇒Indirizzo

Page 20: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 20

17/03/2004 Prof. C. Silvano – Politecnico di Milano 39

Struttura della memoria: Es. 3

16 celledi memoria

Decodificatore

00000000100000000

0 1 1 0 1 1 0 0

0 1 1 0 1 1 0 0

Bus Dati

Dato (letto o da scrivere in memoria)

Parola selezionata1 0 0 0

Bus Indirizzi

Parola di 8 bit

Bus Controllo

leggi / scrivi

17/03/2004 Prof. C. Silvano – Politecnico di Milano 40

Memoria Principale

La memoria supporta:Operazione di lettura (load) • Copia nel Registro Dati (MDR) il contenuto della cella di

memoria indirizzata dal Registro Indirizzi (MAR)

Operazione di scrittura (store) • Copia il contenuto del Registro Dati (MDR) nella cella di

memoria indirizzata dal Registro Indirizzi (MAR)

Le operazioni avvengono sotto il controllo della CPU• La CPU seleziona una particolare cella di memoria ponendo il

suo indirizzo nel Registro Indirizzi (MAR)

Page 21: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 21

17/03/2004 Prof. C. Silvano – Politecnico di Milano 41

Memoria vs. CPU

Le CPU sono sempre state più veloci delle memorie• L’aumento di integrazione ha consentito di

realizzare CPU pipeline e superscalari, molto efficienti e veloci

Nelle memorie è aumentata la capacità più che la velocità.Divario delle prestazioni della CPU rispetto alla memoria

17/03/2004 Prof. C. Silvano – Politecnico di Milano 42

Problema: divario delle prestazioni CPU-memoria

Tempo

DRAM9%/anno(2X/10 anni)

10000µProc60%/anno(2X/1.5anni)

Divario delle prestazioniCPU / Memoria(cresce 50% / anno)

1

10

100

1000

1980

1981

1983

1984

1985

1986

1987

1988

1989

1990

1991

1992

1993

1994

1995

1996

1997

1998

1999

2000

DRAM

CPU

1982

Pres

tazi

oni Legge di Moore

2002

2001

2003

2004

2005

Page 22: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 22

17/03/2004 Prof. C. Silvano – Politecnico di Milano 43

Memoria vs. CPU

L’accesso alla memoria passa attraverso il bus• La frequenza di funzionamento del bus è molto più

bassa di quella della CPU.• Il bus può essere impegnato ad effettuare

trasferimenti controllati da dispositivi di I/O.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 44

Problema: la CPU accede alla memoria attraverso il bus

Page 23: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 23

17/03/2004 Prof. C. Silvano – Politecnico di Milano 45

Memoria cacheIdea: integrare una memoria cache nel chip della CPU• Memoria cache molto veloce (stessa frequenza

della CPU) ma piccola e costosa.

Banco Registri Cache

CPU

17/03/2004 Prof. C. Silvano – Politecnico di Milano 46

Gerarchia di memoriaGerarchia di memoria formata da memoria principale e memoria cache.Memoria centrale (tecnologia DRAM): memoria grande, relativamente lenta, poco costosa ed accessibile tramite il bus• Capacità pari a circa 10 unità• Tempo di accesso pari a circa 10 unità

Memoria cache (tecnologia SRAM): memoria piccola e veloce (integrata nello stesso chip della CPU) ma costosa• Capacità pari a circa 1 unità• Tempo di accesso pari a circa 1 unità

Page 24: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 24

17/03/2004 Prof. C. Silvano – Politecnico di Milano 47

Memoria cache

La cache contiene una copia di alcune celle della memoria principale contenenti istruzioni e dati usati più frequentemente.La minima quantità di informazione che può essere presente o assente nella cache è il blocco o cache line.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 48

Memoria cacheStrategia di utilizzo:La prima volta che la CPU richiede dei dati alla memoria principale, tali dati vengono caricati anche nella cache.Le volte successive, quando la CPU richiede l’accesso ad una cella di memoria, la richiesta va ad entrambe le memorie:• Se il dato si trova nella cache, viene passato

direttamente alla CPU.• Se il dato si trova nella memoria principale, viene

anche caricato nella cache e passato alla CPU.

Page 25: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 25

17/03/2004 Prof. C. Silvano – Politecnico di Milano 49

Successo nell'accesso alla cache

Se il dato richiesto dalla CPU è presente nella cache, si dice che la richiesta ha successo (hit).

Registri

Memoria Principale

Cache

17/03/2004 Prof. C. Silvano – Politecnico di Milano 50

Fallimento nell'accesso alla cache

Se il dato non si trova nella cache, si dice che la richiesta fallisce (miss) ⇒ per trovare il blocco che contiene i dati richiesti, bisogna accedere alla memoria principale.

Registri

Memoria Principale

Cache

Page 26: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 26

17/03/2004 Prof. C. Silvano – Politecnico di Milano 51

Fallimento nell'accesso alla cache

In caso di fallimento (miss) nell’accesso alla cache:• stallo della CPU;• richiesta del blocco contenente il dato cercato alla

memoria principale;• copia del dato in cache;• ripetizione dell’accesso in cache.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 52

DefinizioniHit (successo): il dato richiesto è presente in un blocco della cache (livello superiore della gerarchia).Hit Rate (frequenza di successo): numero di accessi che trovano il dato in cache sul numero totale di accessi a memoria.

Hit rate = num. di hit / num. di accessi a memoriaHit Time (tempo di successo): tempo per accedere al dato in cache, che comprende anche il tempo necessario per stabilire se il tentativo di accesso si risolve in un successo o in un fallimento.

Page 27: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 27

17/03/2004 Prof. C. Silvano – Politecnico di Milano 53

Miss (fallimento): il dato deve essere recuperato dal livello inferiore della gerarchia.Miss Rate (frequenza di fallimento): numero di accessi che non hanno trovato il dato in cache sul numero totale di accessi a memoria.

Miss rate = num. di miss / num. di accessi a memoriaHit Rate + Miss Rate = 1

Definizioni

17/03/2004 Prof. C. Silvano – Politecnico di Milano 54

Il principio di località spaziale

Località spaziale: quando si accede ad una cella di memoria di indirizzo A, è molto probabile che gli accessi successivi richiedano celle di memoria che hanno indirizzo vicino ad A. Per esempio: • La sequenza di istruzioni di un programma sono

memorizzate in locazioni consecutive della memoria.• Gli accessi a dati organizzati in vettori sono

memorizzate in locazioni consecutive della memoria.

Page 28: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 28

17/03/2004 Prof. C. Silvano – Politecnico di Milano 55

Il principio di località temporale

Località temporale: quando si accede ad una cella di memoria di indirizzo A, è molto probabile che negli accessi successivi si richieda di nuovo la cella di indirizzo A. Per esempio: • Nel riutilizzare istruzioni (e dati) contenuti nei cicli si

accede ripetutamente alle stesse locazioni di memoria.

• Istruzioni vicine tendono a utilizzare le stesse variabili.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 56

Soluzione: sfruttare la località dei riferimenti

Diversi approcci a seconda del tipo di località:• Località temporale: i dati prelevati dalla memoria

principale vengono conservati nella cache il più a lungo possibile.

• Località spaziale: quando si copia un dato dalla memoria principale alla cache, si copiano anche i dati vicini. E’ necessario che la dimensione del blocco della cache (cache line) sia un multiplo della dimensione della parola di memoria (per esempio: dimensione blocco 128 bit = 4 parole da 32 bit)

Sfruttando la località dei riferimenti, la frequenza di successo (hit rate) nell’accesso alla cache può arrivare fino al 95%.

Page 29: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 29

17/03/2004 Prof. C. Silvano – Politecnico di Milano 57

Frequenza di successo (hit rate)

La frequenza di successo dipende da due caratteristiche:• la dimensione dei blocchi (o cache line): un

blocco grande permette di sfruttare meglio la località spaziale;

• il numero di blocchi presenti in cache: se c’è spazio per tanti blocchi, un dato resta in cache più a lungo e si può sfruttare meglio la località temporale.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 58

Generalizzazione: gerarchia di memoria su più livelli

Page 30: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 30

17/03/2004 Prof. C. Silvano – Politecnico di Milano 59

Obiettivo

Migliorare le prestazioni di un calcolatore attraverso una gerarchia di memoria su più livelli in modo da:• fornire agli utenti l’illusione di poter usufruire di una

memoria contemporaneamente grande e veloce• Capacità pari a circa quelle della memoria grande• Velocità pari a circa quella della memoria veloce

• fornire la processore i dati alla velocità con cui è in grado di elaborarli.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 60

Soluzione: gerarchia di memoriaCPU

Incremento del tempo di accesso

Dimensioni della memoria ad ogni livello

Livelli della gerarchia di memoria

Livello 1

Livello 0

Livello n

CPU

Page 31: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 31

17/03/2004 Prof. C. Silvano – Politecnico di Milano 61

Soluzione: gerarchia di memoria

Utilizzare diversi livelli di memoria, ciascuno di diversa velocità e dimensione, realizzati con tecnologie diverse in modo da ottenere un buon compromesso costo/prestazioni.Obiettivo: fornire all’utente una quantità di memoria pari a quella disponibile nella tecnologia più economica, consentendo allo stesso tempo una velocità di accesso pari a quella garantita dalla tecnologia più veloce.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 62

Concetti base

Una gerarchia di memoria è composta da piùlivelli, ma i dati vengono di volta in volta copiati solo tra due livelli adiacenti: livello n e livello n+1• Per esempio: cache e memoria principale

La cache (livello superiore n ) è più piccola, veloce e costosa rispetto alla memoria principale (livello inferiore n+1).

Page 32: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 32

17/03/2004 Prof. C. Silvano – Politecnico di Milano 63

Concetti base

Livello n: memoria piccola, veloce ma costosa • Capacità pari a circa 1 unità• Tempo di accesso pari a circa 1 unità

Livello n+1: memoria grande, lenta e poco costosa• Capacità pari a circa 10 unità• Tempo di accesso pari a circa 10 unità

17/03/2004 Prof. C. Silvano – Politecnico di Milano 64

Livelli della gerarchia di memoriaLivello superiore

Livello inferiore

+ veloce

+ grande

+ costosoRegistri

Cache (SRAM)

Memoria Principale (DRAM)

Dischi Fissi (Hard Disk)

Nastri Magnetici e Dischi Ottici

CPU

Page 33: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 33

17/03/2004 Prof. C. Silvano – Politecnico di Milano 65

Livelli della gerarchia di memoriaLivello superiore

Livello inferiore

+ veloce

+ grande

+ costoso

Memoria Principale (DRAM)

Dischi Fissi (Hard Disk)

Nastri Magnetici e Dischi Ottici

Registri

Cache L1 (SRAM)

CPU

Cache L2 (SRAM)

17/03/2004 Prof. C. Silvano – Politecnico di Milano 66

Livelli della gerarchia di memoria

Registri interni alla CPU (Banco di Registri) molto veloci e realizzati con la stessa tecnologia della CPU stessa – stessa frequenza della CPUCache L1 (SRAM – Static RAM) interna alla CPU – stessa frequenza della CPUCache L2 (SRAM – Static RAM) esterna alla CPUMemoria principale (DRAM – Dynamic RAM)Dischi fissi (Hard Disk)Nastri magnetici e dischi ottici

Page 34: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 34

17/03/2004 Prof. C. Silvano – Politecnico di Milano 67

Caratteristiche dei livelli della gerarchia di memoria

17/03/2004 Prof. C. Silvano – Politecnico di Milano 68

Caratteristiche dei livelli della gerarchia di memoria

Man mano che ci si sposta verso il basso nella gerarchia cambiano le tecnologie:• aumenta la capacità di memorizzazione

(memoria più grande)• aumenta il tempo di accesso (memoria più

lenta)• diminuisce il costo per bit (memoria meno

costosa)

Page 35: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 35

17/03/2004 Prof. C. Silvano – Politecnico di Milano 69

La memoria di massa o secondaria (magnetica)

17/03/2004 Prof. C. Silvano – Politecnico di Milano 70

Memoria di massa o secondaria

Memorizza grandi masse di dati.Consente di memorizzare dati in modo non volatile.Non può essere indirizzata direttamente dalla CPU ma attraverso l’interfaccia di I/O.

Page 36: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 36

17/03/2004 Prof. C. Silvano – Politecnico di Milano 71

Architettura di riferimento dei calcolatori

17/03/2004 Prof. C. Silvano – Politecnico di Milano 72

Memoria di massa o secondaria

Memoria principale vs. memoria di massa:• la memoria di massa memorizza in modo

permanente i programmi e i dati del calcolatore• la memoria principale memorizza i programmi in

esecuzione e i dati necessari per la loro esecuzione

Page 37: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 37

17/03/2004 Prof. C. Silvano – Politecnico di Milano 73

Caratteristiche della memoria di massaNon volatilità• I dati memorizzati non si perdono allo spegnimento del

calcolatore (perché memorizzati in forma magnetica o ottica anziché elettronica)

Grande capacità• Capacità maggiore (anche di diversi ordini di grandezza)

rispetto alla memoria principaleBassi costi• Il costo per bit di una memoria di massa è minore (di

diversi ordini di grandezza) rispetto alla memoria principaleMaggiori tempi di accesso• Tempi di accesso maggiori (di qualche ordine di grandezza)

rispetto a quelli della memoria principale

17/03/2004 Prof. C. Silvano – Politecnico di Milano 74

Dischi magnetici

I dischi magnetici sono di due tipi principali:• Hard disk• Floppy disk

Page 38: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 38

17/03/2004 Prof. C. Silvano – Politecnico di Milano 75

Dischi magnetici: hard diskUn hard disk consiste in un insieme (da 1 fino a 25) di piatti d’alluminio (o di altro materiale) dotati di due facce (ricoperte di materiale ferromagnetico) I piatti ruotano attorno ad un perno centrale.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 76

Struttura di un hard disk

Page 39: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 39

17/03/2004 Prof. C. Silvano – Politecnico di Milano 77

Dischi magnetici: hard diskOgni faccia dispone di una propria testina di lettura/scrittura sospesa sopra la superficie magnetica.• Scrittura: il passaggio di corrente positiva o

negativa attraverso la testina magnetizza la superficie.

• Lettura: il passaggio sopra un’area magnetizzata induce una corrente positiva o negativa nella testina.

Le testine di facce diverse sono collegate rigidamente tra loro e si muovono contemporaneamente.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 78

Dischi magnetici: hard disk

Fattore di forma (diametro)• sempre più piccolo (consente maggiore densità di

integrazione e maggiore velocità di rotazione)• 3,5 pollici per sistemi desktop e fino a 1 pollice per

sistemi portatili.

Page 40: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 40

17/03/2004 Prof. C. Silvano – Politecnico di Milano 79

Dischi magnetici: hard diskOgni faccia è organizzata in circonferenze concentriche chiamate tracce (1000-5000).Ogni traccia è suddivisa in spicchi di uguale grandezza settori (64 - 200).Il settore è la più piccola unità che può essere letta/scritta da/su disco (blocco da 512 Byte o 1024 Byte).Un bit corrisponde ad uno stato di polarizzazione (positiva o negativa) del materiale magnetico che costituisce i dischi

17/03/2004 Prof. C. Silvano – Politecnico di Milano 80

Dischi magnetici: hard disk

Page 41: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 41

17/03/2004 Prof. C. Silvano – Politecnico di Milano 81

Traccia

Traccia (track): sequenza circolare di bit scritta mentre il disco compie una rotazione completa.La larghezza di una traccia dipende dalla dimensione della testina e dall’accuratezza con cui la si può posizionare.La densità radiale va da 800 a 2000 tracce per centimetro (5-10 µm per traccia).Tra una traccia e l’altra c’è un piccolo spazio di separazione (gap).

17/03/2004 Prof. C. Silvano – Politecnico di Milano 82

Settore

Settore (sector): parte di una traccia corrispondente a un settore circolare del disco.Un settore contiene 512 Byte di dati, preceduti da un preambolo e seguiti da un codice di correzione degli errori.La densità lineare è di circa 50-100 Kbit per cm (0,1-0,2 µm per bit).Tra settori consecutivi si trova un piccolo spazio (intersector gap).

Page 42: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 42

17/03/2004 Prof. C. Silvano – Politecnico di Milano 83

Formattazione

Operazione che predispone tracce e settori per la lettura/scritturaCirca il 15% dello spazio disco si perde in gap, preamboli e codici di correzione degli errori.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 84

Hard disk

L’insieme delle tracce equidistanti dal centro su piatti diversi è chiamato cilindro.La quantità di dati che possono essere memorizzati per traccia dipende dalla qualità del disco.Solitamente, ogni traccia di un disco contiene la stessa quantità di bit ⇒ le tracce più esterne memorizzano informazione con densità minore.

Page 43: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 43

17/03/2004 Prof. C. Silvano – Politecnico di Milano 85

Hard disk

I dati sono letti/scritti mediante la testina.Per leggere/scrivere informazioni sono necessari tre passi:• la testina deve essere posizionata sulla traccia

corretta;• il settore corretto deve passare sotto la testina;• i dati devono essere letti/scritti.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 86

Hard disk

Tempo di seek: tempo per posizionare la testina sulla traccia corretta.Tempo di rotazione: tempo per raggiungere il settore da trasferire.Tempo di trasferimento: tempo per trasferire l’informazione.A questi tempi va aggiunto il tempo per le operazioni dell’interfaccia di I/O (controller).

Page 44: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 44

17/03/2004 Prof. C. Silvano – Politecnico di Milano 87

Prestazioni dei dischi

Tempo di accesso (ms o 10-3s)• Tempo di seek (seek time)

• tempo necessario alla testina per posizionarsi sulla traccia richiesta;• dipende dalla meccanica (tempo medio di seek da 5 a 15 ms, 1

ms per tracce adiacenti)

• Tempo di rotazione (o latenza)• tempo necessario al disco per ruotare fino a portare il dato nella

posizione giusta;• dipende dalla velocità di rotazione del disco

(5400-10800 RPM ⇒ tempo medio di rotazione da 2,7 a 5,4 ms).

17/03/2004 Prof. C. Silvano – Politecnico di Milano 88

Prestazioni dei dischi

Tempo di trasferimento o Transfer Rate (MBps)• Velocità di trasferimento del disco

• dipende dalla densità di registrazione e dalla velocità di rotazione;

• un settore di 512 Byte richiede tra 25 e 100 µs (tempo medio di trasferimento da 5 a 20 MBps)

• Velocità di trasferimento del sistema di controllo (per esempio SCSI vs. EIDE).

Page 45: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 45

17/03/2004 Prof. C. Silvano – Politecnico di Milano 89

Dischi magnetici: floppy diskDischi magnetici di piccola capacità, portatili, usati per trasferire informazioni (file) tra computer diversiCostituiti da un unico disco con due superficiStoricamente ne sono stati creati vari tipi identificati dal loro diametro (3.5, 5.25 e 8 pollici)• Oggi sopravvivono solo dischetti da 3.5” (1.44 MByte)

17/03/2004 Prof. C. Silvano – Politecnico di Milano 90

Caratteristiche dei floppy disk

Funzioni: • distribuzione software;• archiviazione dati.

Struttura analoga a quella di un disco magnetico:• il disco si ferma quando non è operativo;• l’avvio della rotazione comporta un ritardo di 0.5 sec.

Caratteristiche tipiche di un floppy da 3.5”• Capacità 1.44 Mbyte• Tracce per settori: 80 x 18• RPM = 300• Velocità di trasferimento 500 Kbps

Page 46: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 46

17/03/2004 Prof. C. Silvano – Politecnico di Milano 91

Nastri magneticiNastri di materiale magnetizzabile raccolti su supporti circolari, o in cassetteSul nastro sono tracciate piste orizzontali parallele• di solito 9 piste, di cui 8 corrispondono ad un byte e la 9a è il bit di

paritàI dati sul nastro sono organizzati in zone contigue dette record, separate da zone prive di informazione (interrecord gap)

17/03/2004 Prof. C. Silvano – Politecnico di Milano 92

Caratteristiche dei nastri magnetici

Capacità di diversi GigaByteAccesso sequenzialeMolto lentiBasso costoUtili solo per operazioni di salvataggio dei dati (backup)

Page 47: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 47

17/03/2004 Prof. C. Silvano – Politecnico di Milano 93

La memoria di massa(ottica)

17/03/2004 Prof. C. Silvano – Politecnico di Milano 94

Dischi ottici

Lettura ottica basata sulla riflessione (o sulla mancata riflessione) di un raggio laser.Raggiungono densità di registrazione più alte dei dischi magnetici.Creati in origine per registrare programmi televisivi, usati poi come dispositivi di memoria nei calcolatori.

Page 48: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 48

17/03/2004 Prof. C. Silvano – Politecnico di Milano 95

Dischi ottici1984, CD-ROM (Compact-Disk Read-Only Memory)• Capacità di oltre 600 Mbyte e costo inferiore a $1• Velocità di trasferimento:

• originariamente 150 Kbyte / secondo ( “1X” )• OGGI: 12, 16, 24 volte tanto…

1984, WORM (Write Once Read Many)• Sono dischi ottici scrivibili (una sola volta) • Accesso diretto ai settori (capacità 2.048 Kbyte)

1997, DVD (Digital Video Disk)• Evoluzione del CD-ROM• Capacità fino a 17 GByte• Velocità di trasferimento molto elevata

17/03/2004 Prof. C. Silvano – Politecnico di Milano 96

Dischi ottici

La superficie di un disco presenta una successione di tratti disposti secondo un’unica traccia a spirale• pit: tratto di superficie avvallata• land: tratto di superficie liscia

Il passaggio pit/land (e land/pit) rappresenta 1, mentre l’assenza di variazione rappresenta 0.

riflettono i raggi luminosi in modo diverso

Page 49: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 49

17/03/2004 Prof. C. Silvano – Politecnico di Milano 97

Dischi ottici

17/03/2004 Prof. C. Silvano – Politecnico di Milano 98

Compact Disk (CD)Proposto nel 1980 (da Philips e Sony) per sostituire i dischi n vinile per la musica.Standard internazionale IS-10149 (Libro rosso)Diametro 12 cm, spessore 1.2 mm con un foro di 15 mm in mezzo.Un laser a bassa potenza manda una luce infrarossa (lunghezza d’onda di 0.78 µm) sul disco.Velocità lineare costante (120 cm/sec)• All’interno è di 530 RPM, all’esterno deve scendere a 200 RPM• Unità diversa da quella a velocità angolare costante usata per gli

hard disk• 530 RPM sono molto meno dei 7200/15000 RPM degli hard disk

Page 50: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 50

17/03/2004 Prof. C. Silvano – Politecnico di Milano 99

CD-ROM

Nel 1984 Philips e Sony pubblicano il Libro gialloche definisce lo standard dei CD-ROM (Compact Disc-Read Only Memory).• Viene definita la struttura e il formato da utilizzare per

memorizzare dati digitali invece che semplice musica.Rispetto ai CD audio i CD-ROM hanno:• stesse dimensioni• compatibilità dell’ottica e della meccanica• stesso processo produttivo• migliore capacità di correggere errori

Il Libro verde (1986) aggiunge grafica e possibilità di mischiare audio, video e dati nello stesso settore.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 100

Caratteristiche dei CD-ROM

Velocità base (1X)• 75 settori/sec• 153.6 KByte/sec (175.2 in modalità 2)• Velocità superiori crescono in proporzione (32X corrisponde

a 2400 settori/sec cioè quasi 5MB/sec)

Capacità• 74 minuti di musica = circa 650 Mbyte• 80 minuti di musica = circa 700 Mbyte

Tempo di accesso = alcune centinaia di msec

Page 51: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 51

17/03/2004 Prof. C. Silvano – Politecnico di Milano 101

CD-R e CD-RW

CD Recordable (CD-R) che vengono scritti una sola volta (WORM)• Utilizzati per backup, per generazione di master, per

distribuzioni in piccole serie, ecc.

CD ReWriteable (CD-RW) sono dischi ottici riscrivibili

17/03/2004 Prof. C. Silvano – Politecnico di Milano 102

Digital Versatile Disk (DVD)

Rappresentano un’evoluzione tecnologica con maggiore densità dei dati:• pit più piccoli (0.4 vs. 0.8 µm);• spirale più serrata (0.74 vs. 1.6 µm);• laser rosso (0.65 vs. 0.78 µm).

Caratteristiche dei DVD: • Capacità 4.7 GByte (133 minuti di video fullscreen MPEG-2

ad alta risoluzione 720 X 480 con colonna sonora in 8 lingue e sottotitoli in altre 32 lingue.

• 1X indica 1.4 MB/sec (vs. 150 KB/sec).

Page 52: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 52

17/03/2004 Prof. C. Silvano – Politecnico di Milano 103

Diversi formati di DVD

Esistono situazioni in cui servono più di 4.7 GByte. Pertanto sono stati definiti quattro formati:• Lato unico, strato unico (4.7 GB)• Lato unico, strato doppio (8.5 GB)• Due lati, strato unico (9.4 GB)• Due lati, strato doppio (17 GB)

17/03/2004 Prof. C. Silvano – Politecnico di Milano 104

Gestione dell’Input/Output

Page 53: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 53

17/03/2004 Prof. C. Silvano – Politecnico di Milano 105

Dispositivi di I/O

Un dispositivo di ingresso e/o uscita (periferica) è costituito da due componenti:• il dispositivo (device) fisico effettivo (stampante, mouse,

video, tastiera, ecc.);• un’interfaccia di I/O (device controller) che gestisce

tutte le operazioni che il dispositivo è in grado di svolgere. L’interfaccia di I/O è collegata attraverso il bus di sistema con CPU e memoria principale.L’interfaccia di I/O ha il compito di tradurre i segnali interni del calcolatore in un formato comprensibile alla periferica stessa, e viceversa

17/03/2004 Prof. C. Silvano – Politecnico di Milano 106

Dispositivi di I/O

Page 54: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 54

17/03/2004 Prof. C. Silvano – Politecnico di Milano 107

Dispositivi di I/O

I dispositivi di I/O hanno caratteristiche molto diverse tra loro.Possono essere classificati in base a tre dimensioni:• il comportamento: dispositivi di input/output o per la

memorizzazione di dati;• il modo di interazione: interazione con l’uomo o con la

macchina;• il tasso di trasferimento dati: a che velocità i dati

possono essere trasferiti dal dispositivo alla memoria centrale e viceversa (KB/sec.).

Anche le memorie di massa (es. unità disco e lettore di CD-ROM) sono considerate periferiche.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 108

Dispositivi di Input

Mouse

Penna ottica Scanner

WebcamMicrofono

Touch Screen

Trackball Touch padTastiera

Tavoletta grafica

Fotocameradigitale

Joystick

Page 55: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 55

17/03/2004 Prof. C. Silvano – Politecnico di Milano 109

Dispositivi di Output

Stampante

Casse acustiche Videoproiettore

Monitor Plotter

Cuffie

17/03/2004 Prof. C. Silvano – Politecnico di Milano 110

Bus di sistema

Il bus di sistema costituisce il canale di comunicazione tra le varie componenti di un elaboratore (CPU, memorie ed interfacce di I/O compresa la memoria di massa).Può diventare un collo di bottiglia in quanto le sue prestazioni sono limitate da:• lunghezza;• numero di dispositivi connessi.

Page 56: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 56

17/03/2004 Prof. C. Silvano – Politecnico di Milano 111

Bus di sistema

Il bus di sistema è composto da:• Bus dati• Bus indirizzi• Bus di controllo

17/03/2004 Prof. C. Silvano – Politecnico di Milano 112

Bus datiComprende le linee per trasferire dati e istruzioni da/verso la memoria. • Serve per trasferire dati tra Memoria Principale e

Registro Dati (MDR) della CPU oppure tra periferiche e CPU/Memoria Principale

In generale, la dimensione del bus dati è tale da garantire il trasferimento contemporaneo di una o più parole di memoria.Bus bidirezionale.

Page 57: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 57

17/03/2004 Prof. C. Silvano – Politecnico di Milano 113

Bus indirizziLa CPU provvede a trasmettere sul bus indirizzi l’indirizzo della parola di memoria da cui prelevare il dato nel caso di lettura dalla memoria, oppure in cui depositarlo nel caso di scrittura nella memoria.• Serve per trasmettere il contenuto del Registro

Indirizzi (MAR) alla memoria (o ad una periferica)per selezionare l’indirizzo da cui prelevare il dato, nel caso di lettura dalla memoria, oppure in cui depositarlo, nel caso di scrittura.

Bus unidirezionale

17/03/2004 Prof. C. Silvano – Politecnico di Milano 114

Bus di controllo

Comprende le linee dove transitano le informazioni ausiliarie per la corretta definizione delle operazioni da compiere (per esempio lettura oppure scrittura da/verso la memoria) e per la sincronizzazione tra CPU e memoria.Serve anche per inviare i comandi verso una periferica (es. stampa verso l’interfaccia della stampante).

Page 58: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 58

17/03/2004 Prof. C. Silvano – Politecnico di Milano 115

Bus di sistema

Esempio: Operazione di lettura dalla memoria.• La CPU fornisce l’indirizzo della parola desiderata

sul bus indirizzi, quindi viene richiesta l’operazione di lettura attivando il bus di controllo.

• Quando la memoria ha completato la lettura della parola richiesta, il dato viene trasferito sul bus dati e la CPU può prelevarlo ed utilizzarlo nelle sue elaborazioni.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 116

Operazioni di input

Un’operazione di input è un trasferimento dati dal device alla memoria:• Un segnale del bus di controllo indica che in

memoria deve essere eseguita una write.• Il bus indirizzi contiene l’indirizzo di memoria in

cui il dato deve essere trasferito.Quando la memoria è pronta, manda un segnale sul bus di controllo al devicecontroller che trasferisce i dati attraverso il bus dati.

Page 59: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 59

17/03/2004 Prof. C. Silvano – Politecnico di Milano 117

Operazioni di output

Un’operazione di output è un trasferimento dati dalla memoria al device:• Un segnale del bus di controllo indica che in memoria deve

essere eseguita una read.• Il bus indirizzi contiene l’indirizzo da cui i dati devono essere

letti.

La memoria accede ai dati da trasferire.La memoria trasferisce i dati al device mediante il bus dati, e segnala al device l’avvenuto trasferimento mediante il bus di controllo.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 118

Tipologie di bus

Esistono due schemi principali di comunicazione su di un bus:• sincrono: dotato di un segnale di sincronizzazione

(clock) ed esiste un protocollo di comunicazione scandito dai cicli di clock.• Questo tipo di protocollo permette di ottenere bus molto

veloci

• asincrono: non è dotato di segnale di clock.• La comunicazione tra due parti avviene mediante un

protocollo di handshaking.

Page 60: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 60

17/03/2004 Prof. C. Silvano – Politecnico di Milano 119

Utilizzo del busLa comunicazione su un bus deve essere regolata attraverso un protocollo di comunicazione.Vengono introdotti uno o più bus master il cui scopo è quello di controllare l’accesso al bus.L’architettura più semplice è quella con un unico bus master (la CPU) in cui tutte le comunicazioni vengono mediate dalla CPU stessa.• Il principale svantaggio dell’architettura con un singolo

master è che il master può diventare un collo di bottigliaL’alternativa è quella di avere più master e rispettare un protocollo per il loro coordinamento

17/03/2004 Prof. C. Silvano – Politecnico di Milano 120

Arbitraggio del bus

Occorre stabilire quale master autorizzare all’utilizzo del bus.Ad ogni dispositivo è assegnata una priorità.Il dispositivo che fa richiesta di accesso al bus e che possiede priorità maggiore può accedere al bus.Problema: assicurare la fairness.

Page 61: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 61

17/03/2004 Prof. C. Silvano – Politecnico di Milano 121

Come inviare comandi ad un dispositivo di I/O

I comandi devono essere inviati al corrispondente device controllerUn’istruzione di I/O (read,write) in un linguaggio ad alto livello viene trasformata in una serie di comandi per il controller.La trasformazione avviene ad opera del compilatore che traduce l’istruzione in una syscall (chiamata al sistema operativo)

17/03/2004 Prof. C. Silvano – Politecnico di Milano 122

Come inviare comandi ad un dispositivo di I/O

La comunicazione tra CPU e controller avviene tramite il bus di sistemaL’interfaccia di I/O (controller) è dotata di registri in cui memorizza:• stato della periferica (ad es.: idle, busy, down, … );• comando in esecuzione;• dati da/verso periferica.

Page 62: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 62

17/03/2004 Prof. C. Silvano – Politecnico di Milano 123

Interfaccia di I/O e bus

17/03/2004 Prof. C. Silvano – Politecnico di Milano 124

Device controller

Un device controller può quindi essere visto come un processore con ridotte potenzialitàOgni operazione eseguita dal device controller deve essere esplicitamente richiesta dalla CPU

Page 63: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 63

17/03/2004 Prof. C. Silvano – Politecnico di Milano 125

Come inviare comandi ad un dispositivo di I/O

Per richiedere un’operazione di I/O la CPU deve:• predisporre il contenuto dei registri del controller a

valori predeterminati;• avviare il controller stesso.L’operazione di predisposizione del controller può avvenire in due modalità:• memory-mapped I/O;• istruzioni di I/O dedicate.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 126

Memory-mapped I/O

I registri dei vari controller sono considerati logicamente come locazioni di memoria centrale, pur essendo fisicamente localizzati all’interno del devicecontrollerA tali registri vengono assegnati indirizzi a 32 bitPer caricare valori nei registri del controller :

sw $rt, indirizzo

Per leggere il contenuto dei registri del controller:lw $rt, indirizzo

Page 64: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 64

17/03/2004 Prof. C. Silvano – Politecnico di Milano 127

Memory-mapped I/O

Sul bus possono quindi transitare sia operazioni indirizzate a memoria centrale che ai controller delle perifericheI controller devono quindi essere dotati di un meccanismo che permetta loro di riconoscere le transazioni ad essi indirizzate

17/03/2004 Prof. C. Silvano – Politecnico di Milano 128

Memory-mapped I/O

I controller ascoltano tutti i segnali in transito sul bus (bus snooping) e si attivano solo quando riconoscono sul bus indirizzi un indirizzo corrispondente ad una propria locazione di memoria.Gli indirizzi riservati ai registri dei controller fanno di solito riferimento alla porzione di memoria riservata al sistema operativo e non accessibile quindi ai programmi utente.I programmi utente devono usare il sistema operativo come tramite per accedere a tali indirizzi riservati.

Page 65: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 65

17/03/2004 Prof. C. Silvano – Politecnico di Milano 129

Istruzione dedicate

Per consentire alla CPU di accedere ai registri dei controller delle periferiche vengono inserite nell’insieme delle istruzioni (instruction set) delle istruzioni dedicate alla gestione dell’I/O.Queste istruzioni dedicate fanno riferimento esplicitamente al dispositivo interessato all’operazione di I/O.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 130

Input/Output (I/O)

L’I/O può essere gestito in tre modalità:• Controllo da programma;• Interruzione (interrupt driven);• DMA (Direct Memory Access)

Page 66: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 66

17/03/2004 Prof. C. Silvano – Politecnico di Milano 131

I/O a controllo da programma

Tale tecnica prevede il completo coinvolgimento della CPU nella gestione dell’operazione di I/O richiesta.La CPU dopo aver predisposto il controller all’esecuzione dell’operazione di I/O interroga continuamente il controller per verificare l’esito dell’operazione.Ad operazione ultimata, la CPU provvede a trasferire il dato (nel caso di operazione di input) o ad eseguire una nuova istruzione.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 132

I/O a controllo da programma

La CPU è coinvolta durante tutta l’operazione di I/O per svolgere il ruolo di controllore.Il ciclo svolto dalla CPU in attesa che il ready bit assuma un determinato valore è detto busy waiting.

Page 67: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 67

17/03/2004 Prof. C. Silvano – Politecnico di Milano 133

I/O a controllo da programma

L’I/O a controllo da programma è molto semplice ma dispendioso in quanto la CPU spreca tempo nel ciclo di busy-waiting.Tale tecnica non deve essere usata per la gestione di periferiche lente poiché forza la CPU ad operare alla stessa velocità delle periferiche e di conseguenza la potenza di calcolo della CPU viene sprecata.Una miglioramento della tecnica a controllo di programma è la tecnica di polling.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 134

Polling

Durante un ciclo di busy-waiting vengono controllate dalla CPU tutte o parte delle periferiche di I/O gestite a controllo da programma.Quando una periferica necessita di un qualche intervento, si soddisfa la richiesta e si prosegue il ciclo di polling.

Page 68: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 68

17/03/2004 Prof. C. Silvano – Politecnico di Milano 135

Polling

I miglioramenti di prestazioni rispetto al controllo da programma sono limitati.I problemi principali del polling sono:• con periferiche lente, un eccessivo spreco di tempo

di CPU che per la maggior parte del tempo è occupata nel ciclo di busy waiting.

• con periferiche veloci, il lavoro svolto dalla CPU è quasi esclusivamente dovuto al trasferimento dati.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 136

I/O interrupt drivenPer evitare il busy waiting è necessario introdurre un metodo basato sulla gestione degli interrupt.La CPU predispone il controller ad eseguire l’operazione di I/O richiesta da un programma utente (es. read/write) e prosegue la sua computazione disinteressandosi dello svolgimento dell’operazione da parte del controller stesso.Il controller esegue il comando inviatogli dalla CPU e quando termina invia un segnale di interrupt alla CPU.La CPU, attraverso una routine di gestione dell’interrupt, provvederà a richiamare il driver per gestire l’evento di I/O comunicatole.

Page 69: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 69

17/03/2004 Prof. C. Silvano – Politecnico di Milano 137

I/O interrupt driven

Un interrupt (interruzione) è un meccanismo che consente di interrompere l’esecuzione di un programma utente al fine di eseguire una routine di SO.L’interrupt (a differenza di eccezioni e trap) non viene causato dall’istruzione correntemente in esecuzione ma da un evento esterno generalmente scorrelato rispetto all’istruzione stessa.Un segnale di interrupt è un evento asincronorispetto alle attività correnti della CPU (a differenza di eccezioni e trap che sono eventi sincroni).

17/03/2004 Prof. C. Silvano – Politecnico di Milano 138

I/O interrupt driven

Tra il momento in cui termina l’invio del comando l controller e la ricezione dell’interrupt inviatole dal controller stesso, la CPU è completamente svincolata dall’operazione di I/O e può dedicarsi ad altre attività (tipicamente all’esecuzione di un altro programma).Il meccanismo interrupt driven però non svincola la CPU dal dover eseguire l’operazione di trasferimento dati.Per periferiche veloci, l’attività di trasferimento dati è preponderante rispetto al tempo speso in busy waitingPer evitare l’intervento della CPU anche durante questa fase, è stato introdotto il DMA.

Page 70: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 70

17/03/2004 Prof. C. Silvano – Politecnico di Milano 139

Direct Memory Access (DMA)

Il DMA controller è un processore specializzato nel trasferimento dati tra dispositivo di I/O e memoria centrale.Utilizzando questa tecnica il DMA controllerattua direttamente il trasferimento dati tra periferiche e memoria centrale senza l’intervento della CPU.

17/03/2004 Prof. C. Silvano – Politecnico di Milano 140

DMA

A fronte di una richiesta di I/O da parte di un programma, la CPU tramite il device driver invia al DMA controller le seguenti informazioni:• tipo di operazione richiesta;• indirizzo di memoria da cui iniziare a

leggere/scrivere i dati;• numero di byte da leggere/scrivere;

Page 71: Architettura dei calcolatori - home.deib.polimi.ithome.deib.polimi.it/silvano/FilePDF/ARC-MULTIMEDIA/Intro_Mem_Disk.pdf · 17/03/2004 Prof. Cristina Silvano – Politecnico di Milano

17/03/2004

Prof. Cristina Silvano – Politecnico di Milano 71

17/03/2004 Prof. C. Silvano – Politecnico di Milano 141

DMA

La CPU si svincola completamente dall’esecuzione dell’operazione di I/O.Il controller avvia l’operazione richiesta e trasferisce i dati da/verso memoria.Dopo aver trasferito tutti i dati, il DMA invia un interrupt alla CPU per segnalare il completamento dell’operazione richiesta.