Elementi di Informatica e Programmazione Architettura del calcolatore (seconda parte) Sotto-sistema di memoria! Due necessità contrastanti: 1. Elevata velocità di accesso 2. Elevata capacità (dimensioni)! Il compromesso: Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela Fogli Memoria centrale Memoria di massa (dischi e nastri) Contiene i programmi in esecuzione e i relativi dati Alta velocità di accesso Contiene grandi moli di dati in modo persistente Velocità di accesso medio-bassa Daniela Fogli Elementi di Informatica e Programmazione 2 Realizzazione di unità di memoria Memoria Centrale! Utilizzo di tecnologie differenti:! Memorie elettroniche: elevata velocità di accesso, buona capacità, volatilità (a parte la ROM), elevato costo per bit! memoria centrale (RAM), ROM, cache! Memorie magnetiche: bassa velocità di accesso, elevata capacità, non volatilità, basso costo per bit! dischi fissi (hard disk), nastri! Memorie ottiche: bassa velocità di accesso, elevata capacità, non volatilità, medio-basso costo per bit, tempi di scrittura molto alti! CD, DVD! Con il termine RAM (Random Access Memory, memoria ad accesso casuale o anche memoria ad accesso uniforme) si intende il tipo di memoria realizzata mediante circuiti a semiconduttori, di tipo volatile! Tale tecnologia è utilizzata per la memoria centrale e per le cache (ormai però il termine RAM è diventato sinonimo di memoria centrale)! Nella memoria centrale si impiega uno stesso tempo di accesso per tutte le parole Daniela Fogli Elementi di Informatica e Programmazione 3 Daniela Fogli Elementi di Informatica e Programmazione 4
Memoria ROM Conciliare velocità e dimensioni! ROM (Read Only Memory, memoria di sola lettura): è un tipo di memoria a semiconduttori non volatile! E scritta al momento della sua produzione e non può essere cancellata! E utilizzata per contenere le informazioni di inizializzazione del calcolatore e per la diagnosi delle varie unità, infatti include il BIOS (Basic Input Output System), software che permette al calcolatore di attivare i dispositivi periferici (es. tastiera, video, disco) e di caricare i programmi da eseguire all avvio del sistema! Oggi si usano memorie flash: elettroniche, non volatili, ma riscrivibili (rendono possibile aggiornamento del BIOS) (nota: le memorie flash sono quelle che si trovano anche nelle macchine fotografiche digitali, nei riproduttori di MP3, nelle pendrive)! Al crescere della velocità di accesso aumenta il costo di memorizzazione per bit! Obiettivo: coniugare la presenza di una memoria piccola e veloce con altri dispositivi grandi e lenti, mantenendo i costi contenuti! Si sfrutta il principio di località Daniela Fogli Elementi di Informatica e Programmazione 5 Daniela Fogli Elementi di Informatica e Programmazione 6 Principio di località Memoria cache! Si è osservato che statisticamente un programma indirizza più del 90% delle sue richieste di lettura e/o scrittura a un area di memoria contigua di dimensioni inferiori al 10% dell area complessiva occupata dal programma e dai suoi dati! Località spaziale: quando un programma fa riferimento a un elemento in memoria (istruzione o dato), è molto probabile che faccia riferimento entro breve tempo ad altri elementi il cui indirizzo è vicino a quello dell elemento riferito! Località temporale: quando un programma fa riferimento a un elemento in memoria (istruzione o dato), è molto probabile che faccia riferimento allo stesso elemento entro breve tempo! Memoria piccola e veloce! Contiene un sottoinsieme delle informazioni presenti in memoria centrale! E organizzata in blocchi! I blocchi vengono trasferiti tra memoria centrale e cache come unità indivisibili! Quando la CPU emette un indirizzo di parola, il blocco che contiene la parola viene prima cercato nella cache, se è presente si accede alla parola all interno del blocco, altrimenti si accede alla memoria principale e si trasporta il blocco in cache! Si usano tipicamente due livelli di cache: cache interna (primo livello) e cache esterna (secondo livello) Daniela Fogli Elementi di Informatica e Programmazione 7 Daniela Fogli Elementi di Informatica e Programmazione 8
Esempio: caso di una cache completamente associativa La gerarchia di memoria 0 1 2 3 4 blocchi di 4 parole ciascuno Cache 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Memoria centrale blocco di 4 parole Aumenta la capacità Registri CPU Cache L1 Cache L2 Memoria centrale Memoria di massa Aumenta la velocità di accesso Daniela Fogli Elementi di Informatica e Programmazione 9 Daniela Fogli Elementi di Informatica e Programmazione 10 Quali vantaggi? Si sfrutta la località!! L utente (il programmatore) dispone di una quantità di memoria paragonabile a quella disponibile nella tecnologia più economica (memoria di massa costituita da memorie magnetiche e ottiche)! Allo stesso tempo la velocità di accesso è paragonabile a quella garantita dalla tecnologia più veloce (registri, cache - memorie elettroniche)! Costi totali ridotti, prestazioni elevate A seconda del tipo di località! località temporale: i dati prelevati dalla memoria più grande e più lenta vengono conservati nella memoria più piccola e più veloce il più a lungo possibile! località spaziale: quando si copia un dato dalla memoria più grande e più lenta alla memoria più piccola e più veloce, si copiano anche i dati vicini (es. un blocco da memoria centrale a cache di secondo livello, una pagina da disco a memoria centrale) Daniela Fogli Elementi di Informatica e Programmazione 11 Daniela Fogli Elementi di Informatica e Programmazione 12
I dispositivi di memoria di massa Disco magnetico! Non volatilità! Grande capacità! Basati su tecnologie magnetiche (nastri e dischi magnetici) e ottiche (dischi ottici)! Supporti magnetici:! supporto ricoperto da uno strato di materiale magnetico! testina di lettura/scrittura che rileva lo stato di magnetizzazione della superficie! Supporti ottici:! zone microscopiche di una pellicola di alluminio che vengono rese opache o lucide (pit e land) per indicare 0 o 1! raggio laser che esplora la superficie e rileva il valore dei bit in base alla riflessione o meno del raggio luminoso! Il materiale magnetico è su entrambe le facce! Informazioni memorizzate in cerchi concentrici (tracce)! Le tracce sono divise in settori! Ogni settore contiene un record (unità minima di trasferimento)! Tracce adiacenti e settori successivi separati da gap! Formattazione: operazione con la quale il disco viene organizzato in tracce e settori! Ogni record (blocco) è individuato dal numero della traccia e dal numero del settore Daniela Fogli Elementi di Informatica e Programmazione 13 Daniela Fogli Elementi di Informatica e Programmazione 14 Accesso ad un disco La faccia di un disco! La testina di lettura/scrittura si deve posizionare sopra la traccia desiderata e all inizio del settore! Unità a disco: motore + braccio mobile alla cui estremità è posizionata la testina di lettura/scrittura! L unità, una volta accesa, porta il disco in rotazione a velocità costante! Il braccio si muove in direzione radiale e posiziona la testina sopra la traccia desiderata! Tempo di accesso dato da: seek time (tempo di posizionamento della testina) + latency time (tempo di attesa che il settore passi sotto la testina) + tempo per l operazione (di lettura o scrittura)! Il tempo di accesso non è costante Daniela Fogli Elementi di Informatica e Programmazione 15 Daniela Fogli Elementi di Informatica e Programmazione 16
Disco fisso (hard disk) Dischi ottici Superficie Superficie Alcuni dati: Velocità di rotazione: fino a 10.000 giri/m Velocità di trasferimento: fino a 150 Mbyte/s Capacità: centinaia di GByte Testina di lettura/ scrittura! Il primo: CD audio, contiene 74-80 minuti di audio stereo! Per scrivere su un disco ottico: raggio laser ad alta intensità che rende opache o lucide (a seconda che si voglia memorizzare uno 0 o un 1) delle zone sulla superficie del disco! Per leggere: un altro raggio laser che individua come bit a 0 le aree che non provocano riflessione e bit a 1 le aree riflettenti! I dati non sono organizzati in tracce e settori, ma secondo un unico percorso a spirale dal centro alla periferia Daniela Fogli Elementi di Informatica e Programmazione 17 Daniela Fogli Elementi di Informatica e Programmazione 18 Tipologie di dischi ottici Altri dispositivi di memoria di massa! CD-ROM (Compact Disk Read Only Memory):! di sola lettura come quelli musicali, capacità 650 MB 700 MB! Velocità di un CD-ROM: esempio 44x ( 1x indica la velocità di trasferimento del progetto originario dei CD, pari a 153.6 KB/s)! quindi 44x = 44 x 153.6 ~ 6600 KB/s ~ 6,6 MB/s! CD-R (Compact Disk Recordable):! possono essere scritti una sola volta! CD-RW (Compact Disk Rewritable)! DVD (Digital Versatile Disk):! capacità fino a 17 GB! le macchie corrispondenti agli 0 e 1 sono molto più piccole e ravvicinate rispetto a un CD! 1x indica 1.4 MB/s! DVD-ROM, DVD-R, DVD+R, DVD-RW, DVD+RW! Supporti a tecnologia flash! Pen Drive, capacità di memorizzazione: 2 GB, 4 GB, 8 GB, 16 GB,! Memorie flash per macchine fotografiche digitali, riproduttori MP3, etc., capacità di memorizzazione: 4 GB, 8 GB, 16 GB, 32 GB,! Sono memorie elettroniche, riscrivibili ma non volatili! In alcuni calcolatori (tablet e notebook), memorie flash sostituiscono dischi fissi Daniela Fogli Elementi di Informatica e Programmazione 19 Daniela Fogli Elementi di Informatica e Programmazione 20
I dispositivi periferici Tipologie di periferiche periferia parte centrale periferica periferica orologio sottosistema di ingresso-uscita interfaccia di ingresso-uscita interfaccia di ingresso-uscita bus di sistema sottosistema unità centrale-memoria unità centrale memoria centrale! Dispositivi di ingresso-uscita - periferiche di ingresso: inviano al calcolatore dati provenienti dall esterno (es. tastiera, mouse, touchpad, scanner) - periferiche di uscita: inviano all esterno dati provenienti dal calcolatore (es. stampante, schermo, casse audio, plotter) - periferiche di ingresso e uscita (es. modem)! Dispositivi di memoria di massa: archivi di lungo termine per programmi e dati - non volatilità - grande capacità Di questi abbiamo già parlato - basati su tecnologie magnetiche (nastri e dischi magnetici), ottiche (dischi ottici) ed elettroniche (memorie flash). Daniela Fogli Elementi di Informatica e Programmazione 21 Daniela Fogli Elementi di Informatica e Programmazione 22 Esempio di periferica di uscita: Lo schermo Prestazioni! Rappresentazione immagini basata sul concetto di pixel! In modo simile, schermi realizzati con un certo numero di aree ognuna in grado di visualizzare un pixel! Negli schermi ogni riga è costituita da una serie di pixel! Immagine visualizzata dall alto a sinistra - pixel con coordinate (0,0) fino in basso destra (prima riga (0,0) (0,1) (0,2) )! I programmi di grafica fanno riferimento alle coordinate per agire sui pixel! Un video è caratterizzato da diversi parametri! Risoluzione: numero di pixel visualizzato in ciascuna dimensione esempi:! VGA: 640 x 480 pixel! SVGA: 800 x 600 pixel! XGA: 1024 x 768 pixel! UXGA: 1600 x 1200 pixel! Full-HD: 1920 x 1080 pixel! Aspect ratio: rapporto tra dimensione orizzontale/verticale (es. 4:3, 16:9)! Dimensione: misura diagonale, espressa in pollici (es. 15.6 )! Frequenza di refresh: numero di volte al secondo in cui si completa una scansione dell intero schermo (es. 60 Hz)! Contrasto: rapporto di luminosità fra il colore più brillante che il display può realizzare (bianco) e quello più scuro (nero) Daniela Fogli Elementi di Informatica e Programmazione 23 Daniela Fogli Elementi di Informatica e Programmazione 24
La gestione delle periferiche I problemi periferia parte centrale periferica sottosistema di ingresso-uscita interfaccia di ingresso-uscita sottosistema unità centrale-memoria unità centrale! I diversi dispositivi periferici possono essere i più disparati, ma devono interagire con il processore (che può solo eseguire un insieme determinato di istruzioni) attraverso il bus interfacce di ingresso-uscita, chiamati anche controller che contengono registri e memorie periferica interfaccia di ingresso-uscita memoria centrale! I diversi dispositivi devono essere identificati (es: come posso mandare un carattere alla stampante?) interfacce identificate da indirizzi orologio bus di sistema! Flussi di dati dipendono dal dispositivo (velocità diverse dei singoli dispositivi): tecniche di sincronizzazione con CPU Daniela Fogli Elementi di Informatica e Programmazione 25 Daniela Fogli Elementi di Informatica e Programmazione 26 Interfaccia ingresso-uscita Lettura di un dato da un dispositivo NB: modello semplificato! memoria centrale unità centrale circuito di controllo dispositivo periferico interfaccia ingresso-uscita decodificatore indirizzi registro dati registro di stato comandi indirizzi! Il circuito di controllo trasferisce il dato acquisito dal dispositivo di ingresso nel registro dati! La CPU pone nel bus indirizzi l indirizzo del dispositivo cui si vuole accedere e attiva il segnali di lettura nel bus comandi! Il decodificatore indirizzi riconosce l indirizzo ad esso associato e attiva il circuito di controllo! Il circuito di controllo (riconoscendo il segnale di lettura) pone nel bus dati il valore memorizzato nel registro dati! Successivamente l unità centrale preleva il valore presente nel bus dati Componenti interfaccia (oltre al circuito di controllo): - registro dati: dato da trasferire a/da dispositivo - registro di stato: stato del dispositivo (pronto, errore, ecc.) - decodificatore indirizzi (riconosce l indirizzo sul bus indirizzi) dati (Esempio: lettura da tastiera) Daniela Fogli Elementi di Informatica e Programmazione 27 Daniela Fogli Elementi di Informatica e Programmazione 28
Scrittura di un dato su un dispositivo Il calcolatore a livello fisico! La CPU pone nel bus indirizzi l indirizzo del dispositivo a cui vuole accedere e nel bus dati il dato da trasferire; attiva segnale di scrittura nel bus comandi! Il decodificatore indirizzi riconosce l indirizzo ad esso associato ed attiva il circuito di controllo! Il circuito di controllo (riconoscendo il segnale di scrittura) attiva la scrittura nel registro dati del valore presente nel bus dati! Successivamente il circuito di controllo avvia il trasferimento del dato ricevuto dal registro dati al dispositivo periferico (Esempio: invio dati a stampante)! Scheda madre (motherboard): unica scheda che contiene:! alloggiamenti per la CPU, memoria centrale, cache! bus locali! prese in cui si possono inserire i connettori delle schede di I/O! CPU socket: zoccolo che accoglie la CPU! Chipset: insieme dei circuiti integrati allocati sulla scheda madre che ne pilotano il funzionamento (si occupano di smistare e dirigere il traffico di informazioni passante attraverso CPU, RAM e controller delle periferiche)! Northbridge: componente principale del chipset che connette processore, RAM e interfacce veloci (e.g. interfacce ATA e/o SATA per gli hard disk)! Southbridge: componente del chipset che gestisce le interfacce a bassa velocità (e.g. interfacce per la tastiera e il mouse) Daniela Fogli Elementi di Informatica e Programmazione 29 Daniela Fogli Elementi di Informatica e Programmazione 30 Esempio di scheda madre Interfaccia Ogni periferica è controllata da un interfaccia realizzata tramite una scheda che viene inserita nel calcolatore e connessa direttamente al bus Il collegamento fra un interfaccia e una periferica avviene attraverso una porta predisposta sulla scheda e accessibile dall esterno Sempre presenti: interfacce per il collegamento al video, alla tastiera, al mouse e alla stampante Esempio: scheda audio permette comunicazione fra processore, altoparlanti, microfono Daniela Fogli Elementi di Informatica e Programmazione 31 Daniela Fogli Elementi di Informatica e Programmazione 32
! Modalità Trasmissione dati tra interfaccia e periferica! Trasmissione seriale! Trasmissione parallela Standard di connessione seriale! Universal Serial Bus (USB)! Collega fino a 127 periferiche in cascata! Può alimentare direttamente le periferiche a basso consumo (e.g. tastiere e mouse)! Completamente Plug and Play (anche per collegamento a caldo )! Firewire - IEEE 1394! Bus seriale ad alte prestazioni per la connessione di videocamere, videoregistratori digitali, lettori DVD, periferiche audio! Connette 64 periferiche in cascata! Supporta il Plug and Play e connessione a caldo Daniela Fogli Elementi di Informatica e Programmazione 33 Daniela Fogli Elementi di Informatica e Programmazione 34 Daniela Fogli Elementi di Informatica e Programmazione 35