Architettura dei Calcolatori - robotica educativaArchitettura dei Calcolatori Ing. L.Testa -...
Transcript of Architettura dei Calcolatori - robotica educativaArchitettura dei Calcolatori Ing. L.Testa -...
-
Architettura dei Calcolatori
Ing. L.Testa - Fondamenti di Informatica 2
Introduzione
Che cos’è un calcolatore? Come funziona un calcolatore?
è possibile rispondere a queste domande in molti modi, ciascuno relativo a un diverso punto di vista
in questo corso, il punto di vista prevalente è quello del calcolatore come macchina programmabile, ovvero in grado di eseguire programmi
-
Ing. L.Testa - Fondamenti di Informatica 3
Che cos’è un calcolatore?
“il calcolatore è un esecutore di programmi”punto di vista degli utenti finaliviene considerato l’uso del calcolatore
“il calcolatore è un sistema”punto di vista funzionaleviene considerato il suo funzionamento e la sua architettura
“il calcolatore è una macchina programmabile”punto di vista della programmazione
Ing. L.Testa - Fondamenti di Informatica 4
Calcolatori e applicazioni
Che cos’è un calcolatore?un calcolatore è una macchina programmabile, ovvero in grado di eseguire programmi
Questa definizione descrive, in parte, il punto di vista degli utenti dei calcolatori
l’utente di un calcolatore interagisce con il calcolatore attraverso una o più applicazioniuna applicazione (o programma applicativo o programma) consente di far svolgere al calcolatore una molteplicità di operazioni
ciascuna operazione di una applicazione costituisce uno strumento per l’utente dell’applicazione, da utilizzare per perseguire un certo scopo
-
Ing. L.Testa - Fondamenti di Informatica 5
Tipologie di applicazioni informatiche
Esistono moltissime tipologie di applicazioni per i calcolatori
dai giochi alla gestione della telefonia
dalla gestione di immagini e documenti alla possibilità di comunicare con altre persone e calcolatori
dalla gestione alla simulazione di sistemi complessi
dal supporto delle attività individuali alla gestione dei sistemi informativi di grandi organizzazioni
Fondamenti di Informatica 6
Applicazioni e risoluzione di problemi
La possibilità di poter eseguire su un medesimo calcolatore applicazioni diverse rende il calcolatore una macchina che può essere utilizzata da un utente per la risoluzione di problemi
un utente può risolvere un problema usando una applicazione e uncalcolatore se è in grado di fornire all’applicazione eseguita dal calcolatore le istruzioni dettagliate di come il problema possa essere risolto
Dal punto di vista dell’utente, con riferimento all’esecuzione di una applicazione
le istruzioni che è possibile richiedere al calcolatore di eseguire sono quelle corrispondenti alle richieste di esecuzione delle operazioni fornite dall’applicazioneciascuna applicazione può essere caratterizzata
dall’insieme delle operazioni che fornisce (e dalle regole per usarle)dalla tipologia di informazioni che permette di gestire
-
Fondamenti di Informatica 7
Uso di applicazioni
Per usare una applicazione, l’utente deve conoscere l’insieme delle operazioni che l’applicazione fornisce, comprenderne il significato e saperne richiedere l’esecuzione
la capacità di comprendere e usare una applicazione è abbastanzaindipendente dalla comprensione del funzionamento del calcolatore
è utile comprendere i principi e i meccanismi su cui è basata l’interazione con il calcolatore, e in particolare l’organizzazione e l’uso delle interfacce grafiche
Fondamenti di Informatica 8
Applicazioni e interfacce
Una applicazione viene utilizzata tramite la sua interfaccia utente
l’interfaccia di una applicazione è il mezzo di interazione tra l’utente (utente dell’applicazione) e il calcolatore (esecutore dell’applicazione)in generale, le applicazioni moderne dispongono di interfacce utente grafiche (GUI)
l’interazione con una GUI avviene ad esempio selezionando menu e bottoni con il mouse
alcune applicazioni sono basate su una interfaccia a caratteri
in questo caso, l’interazione può avvenire mediante la digitazione di una sequenza di comandi
-
Fondamenti di Informatica 9
Interazione con una applicazione
L’uso di una applicazione richiede la comprensionedelle operazioni che l’applicazione permette di eseguire
della corrispondenza tra gli elementi dell’interfaccia dell’applicazione e i dati e le operazioni
della modalità di richiesta dell’esecuzione di ciascuna operazione
Fondamenti di Informatica 10
Architettura dei calcolatori
Che cos’è un calcolatore? Come funziona un calcolatore?un calcolatore è un sistemaun sistema è un oggetto costituito da molte parti (componenti) che interagiscono, cooperando, al fine di ottenere un certo comportamento
Studiare l’architettura di un sistema vuol direindividuare ciascun componente del sistemacomprendere i principi generali di funzionamento di ciascun componentecomprendere come i vari componenti interagiscono tra di loro
-
Fondamenti di Informatica 11
Hardware e software
La prima decomposizione di un calcolatore è relativa alle seguenti macro-componenti:hardware
la struttura fisica del calcolatore, costituita da componenti elettronici ed elettromeccanici
softwarel’insieme dei programmi che consentono all’hardware di svolgere dei compiti utiliil software comprende il software di base (tra cui il sistema operativo) e il software applicativo
Fondamenti di Informatica 12
Organizzazione a livelli
Hardware e software sono organizzati a livelli (o strati)
ciascun livello corrisponde a una macchina (reale o virtuale) in grado di eseguire un proprio insieme di operazioni
ciascun livello fornisce un insieme di operazioni più semplici da utilizzare rispetto a quelle del livello sottostante
ciascun livello è realizzato in termini dell’insieme di operazioni fornite dal livello immediatamente sottostante
Software applicativo
Software di base
Hardware
-
Fondamenti di Informatica 13
Software e macchine virtuali
In generale, il software ha lo scopo di mostrare ai suoi utenti il calcolatore come una macchina virtuale più semplice da usare rispetto all’hardware che viene effettivamente utilizzato
per macchina virtuale si intende una macchina che fisicamente non esiste nella realtà, ma di cui si può avere la sensazione dell’esistenzail software di base ha lo scopo di mostrare all’utente il calcolatore come una macchina virtuale più semplice da gestire eprogrammare rispetto all’hardware utilizzatoil software applicativo mostra all’utente il calcolatore come una macchina virtuale che può essere utilizzata per la risoluzione di problemi
il software applicativo viene realizzato in termini della macchina virtuale mostrata dal software di base, e dipende solo parzialmente dall’hardware utilizzato
Fondamenti di Informatica 14
Organizzazione a livelli
Nell’organizzazione a livelli, l’hardware è l’unica macchina reale, mentre gli strati software corrispondono a macchine virtuali
il repertorio di operazioni (chiamate istruzioni) che l’hardware sa eseguire direttamente è chiamato linguaggio macchina del calcolatore
il linguaggio macchina è composto da istruzioni estremamente elementari, ma che il calcolatore sa eseguire in modo molto efficiente
le diverse macchine e i relativi insiemi di operazioni sono via via più astratti
nel senso che il significato di ciascuna operazione è sempre più vicino alla logica dell’utente e più lontano dalla logica del calcolatore come dispositivo elettronicoè per questo motivo che sono via via più semplici da usare
le diverse macchine sono comunque ugualmente espressivealla fin fine, l’unico responsabile dell’esecuzione del software è comunque l’hardware disponibile
-
Fondamenti di Informatica 15
Tipologie di calcolatori
Esistono diversi tipi di calcolatori:Personal computer
Dotati di monitor e tastiera separati dall’unità centraleDotati di diversi dispositivi di memoria di massa interni o esterni all’unità centrale
Notebook (portatile)Versione portatile del personal computerUsualmente dotata di caratteristiche (leggermente) inferiori in termini di potenza di calcolo e memorizzazioneIn alcuni casi la differenza è solo in espandibilità vs portabilità
Handheld computer / PDA / SmartPhoneDi dimensioni limitateUsualmente privi di memorie di massa tradizionali
Sensori intelligentiOggi la tendenza è di avere sistemi sempre più piccoli e integrati
Fondamenti di Informatica 16
Tipologie di calcolatori
WorkstationVersione “potente” del personal computerOrientate alle applicazioni grafiche o CADSpesso condivise da più utenti
Mainframe e minicomputerIn passato denotavano calcolatori di elevata potenza di calcolo e memorizzazioneOrientati all’elaborazione dati per l’intera aziendaCondivisibili da più utenti (anche contemporaneamente)
ClusterSistemi di calcolo basati sull’aggregazione di più macchineUtilizzati per applicazioni computazionalmente pesanti
Calcolo numerico, simulazioni, etc
-
Fondamenti di Informatica 17
Architettura del calcolatore:il modello di Von Neumann
Data la diversità di dispositivi e la complessità dell’architettura hardware di un calcolatore reale, serve un modello comune:
Tutte le diverse tipologie di calcolatori sono accomunate dalla medesima architettura logica
Macchina di Von Neumann: modello semplificato dei calcolatori moderni
Von Neumann è stato il progettista (intorno al 1945) del primo calcolatore in cui i programmi potevano essere memorizzati anziché codificati mediante cavi e interruttori
Fondamenti di Informatica 18
La macchina di Von Neumann
La macchina di Von Neumann è composta da quattro tipologie di componenti funzionali fondamentali:
unità centrale di elaborazione (CPU)componente in grado di eseguire istruzioni per l’elaborazione dei datisvolge anche funzioni di controllo (ovvero, di coordinamento) delle altre componenti funzionali
memoria centralememorizza e fornisce l’accesso a dati e programmi
interfacce di ingresso e uscita (I/O)componenti di collegamento con le periferiche del calcolatorele periferiche sono dispositivi (esterni al calcolatore) che consentono lo scambio di dati tra calcolatore e utente
bussvolge la funzionalità di trasferimento di dati e di informazioni di controllo tra le varie componenti funzionali
-
Fondamenti di Informatica 19
La macchina di Von Neumann
Fondamenti di Informatica 20
Funzionalità nella macchina di Von Neumann
Il funzionamento di un calcolatore può essere quindi descritto in termini di poche componenti (macro-unità) funzionali
ciascuna macro-unità è specializzata nello svolgimento di una tipologia omogenea di funzionalità, ad eccezione dell’unità centrale di elaborazione, che svolge sia funzionalità di elaborazione che dicontrollo
-
Fondamenti di Informatica 21
Funzionamento (in sintesi) della macchina di Von Neumann
Il processore estrae le istruzioni dalla memoria e le esegueLe istruzioni possono comportare operazioni di manipolazione deidati
Oppure operazioni di trasferimento dei dati
I trasferimenti di dati attraverso elementi funzionali diversi avvengono attraverso il bus di sistema
Le fasi di elaborazione si susseguono in modo sincrono rispetto ad un orologio di sistema detto clock
Durante ogni intervallo di tempo l’unità di controllo (parte del processore) stabilisce la funzione da svolgere
L’intera macchina opera in maniera sequenziale
Fondamenti di Informatica 22
Rappresentazione delle informazioni
Lo scopo fondamentale di un calcolatore è di permettere l’elaborazione di informazioni
le informazioni sono rappresentate sotto forma di datiun dato è una informazione elementare
I dati che un calcolatore sa rappresentare ed elaborare direttamente sono molto semplici
i dati vengono rappresentati nel calcolatore mediante delle codifiche binarie (che studieremo in seguito)
-
Fondamenti di Informatica 23
Elaborazione
Le istruzioni del linguaggio macchina di un calcolatore corrispondono ad operazioni elementari di manipolazione dei dati
operazioni aritmetichesomma, prodotto, ...
operazioni relazionali (confronto tra dati)
operazioni su caratteri e valori di verità
altre operazioni numerichecalcolo di logaritmi, funzioni trigonometriche, ...
Un calcolatore sa dunque svolgere poche tipologie di operazioni elementari
ma le sa eseguire in modo molto efficiente
un calcolatore può eseguire decine o centinaia di milioni di istruzioni del linguaggio macchina al secondo
L’elaborazione dei dati viene svolta dall’unità aritmetico-logica (ALU), che è un componente dell’unità centrale di elaborazione
Fondamenti di Informatica 24
Memorizzazione
Un calcolatore ha la necessità di memorizzare, in modo temporaneo o permanente, i dati per la rappresentazione delle informazioni diinteresse e i programmi per la loro elaborazione
La memoria è l’unità responsabile della memorizzazione dei datiuna unità di memoria è organizzata in celle
a ciascuna cella è associato un indirizzo, che la identifica
ciascuna cella è in grado di memorizzare un singolo dato
Una unità di memoria fornisce due sole operazioni
memorizzazione di un valore in una cella (scrittura)dato un valore da memorizzare e l’indirizzo di una cella, memorizza il valore nella cella, modificando pertanto lo stato della memoria
accesso al valore memorizzato in una cella (lettura)dato l’indirizzo di una cella, restituisce il valore memorizzato nella cella
-
Fondamenti di Informatica 25
Trasferimento
Il bus è il componente del calcolatore dedicato al trasferimento dei dati e delle informazioni di controllo tra le varie parti del calcolatore
il bus è l’insieme dei collegamenti su cui vengono trasferiti i dati e i segnali di controllo in un calcolatore
L’idea alla base del bus è la seguentenel calcolatore è necessario collegare tutti i componenti tra di loro (per permettere lo scambio di dati tra componenti)ci sono due modalità per collegare un insieme di componenti
collegare ciascun componente con ogni altro componentecollegare tutti i componenti a un unico insieme di linee (il bus, appunto)
l’uso del bus favorisce la modularità e l’espandibilità del calcolatore
Fondamenti di Informatica 26
Controllo
Il coordinamento tra le varie parti del calcolatore è svolto dall’unità di controllo
l’unità di controllo è un altro componente dell’unità centrale di elaborazione
ogni componente dal calcolatore esegue solo le azioni che gli vengono richieste dall’unità di controllo
Caratteristiche dell’attività di controllo svolta dall’unità di controllo
il controllo avviene in modo sincrono rispetto alla scansione temporale imposta dall’orologio di sistema (clock)
il controllo consiste nel coordinamento dell’esecuzione temporale delle funzioni che devono essere svolte sia internamente all’unità di elaborazione che negli altri elementi funzionali
-
Fondamenti di Informatica 27
Unità centrale di elaborazione (CPU)
L’unità centrale di elaborazione (o processore) è composta dall’unità di controllo e dall’unità aritmetico-logica
l’unità centrale di elaborazione controlla l’esecuzione di un programma (memorizzato in memoria centrale sotto forma di una sequenza di istruzioni del linguaggio macchina) eseguendo ordinatamente le istruzioni del programma
Fondamenti di Informatica 28
Periferiche e interfacce di ingresso-uscita
Un calcolatore può essere collegato a diversi dispositivi di ingresso e/o uscita (chiamati periferiche)
ad esempio, la tastiera, il mouse, lo schermo, le stampanti, il modem
anche le memorie di massa (ad esempio, le unità disco e il lettore di CD-ROM) sono considerati periferiche
Nella macchina di Von Neumann, le periferiche non fanno parte del calcolatore
ogni periferica viene controllata mediante un’opportuna interfaccia
una interfaccia ha il compito di tradurre i segnali interni del calcolatore in un formato comprensibile alla periferica stessa, e viceversa
-
Fondamenti di Informatica 29
Tecnologia dei calcolatori
La conoscenza dell’architettura della macchina di VonNeumann ci consente di studiare alcuni aspetti tecnologici relativi all’hardware dei calcolatori
Vengono ora introdotti alcuni principi di funzionamento e alcune caratteristiche tecnologiche dei componenti effettivamente utilizzati nei calcolatori
Fondamenti di Informatica 30
Codifica dei dati
In un calcolatore, i dati (e le istruzioni) sono codificati in forma binaria, ovvero mediante delle sequenze finite di cifre 0 e 1
il bit la più piccola unità di informazione in un calcolatoreun bit può avere valore 0 oppure 1la parola “bit” è una forma contratta per binary digit (cifra binaria)
ciascun bit è memorizzato da una cella elementare di memoria, fisicamente realizzata da un dispositivo elettronico in cui sonochiaramente distinguibili due stati
questi due stati vengono fatti corrispondere allo 0 e all’1
Un bit è una unità di informazione troppo piccola per essere usata individualmente
i dati vengono codificati sotto forma di sequenze di bitciascuna sequenza di bit può essere interpretata come un dato solo se viene opportunamente decodificata
-
Fondamenti di Informatica 31
Unità centrale di elaborazione (CPU):il microprocessore
L’unità centrale di elaborazione è solitamente realizzata fisicamente sotto forma di microprocessorei microprocessori sono dispositivi elettronici estremamente complessi
Fondamenti di Informatica 32
Unità centrale di elaborazione (CPU):il microprocessore – qualche esempio…
0.250.13
9.500.00044.000.000
450 MHz1,4 GHz
1999Pentium III
0.1890 nm
42.000.000169.000.000
1,4 GHz3,73 GHz
2001Pentium 4
0.350.25
7.500.00019.000.000
233-533 MHz1997Pentium II
0.80.35
3.100.0003.300.000
60-200 MHz1993Pentium
10.6
1.200.0001.600.000
25-100 MHz198980486
329.0005-10 MHz19788086
Tecnologia(micron)
N. TransistorsFrequenza(Hz)
AnnoProcessore
-
Fondamenti di Informatica 33
Unità centrale di elaborazione (CPU):Schema architetturale (semplificato)
Fondamenti di Informatica 34
Unità centrale di elaborazione (CPU):Componenti
Unità di controllo (UC)Unità aritmetico-logica (ALU)Bus internoRegistri
PC program counterContiene l’indirizzo della prossima istruzione da eseguire
IR instruction registercontiene l’istruzione che deve essere eseguita
MAR registro di indirizzamento memoriaindirizzo della cella di memoria che deve essere acceduta o memorizzata
MDR registro dati di memoriadato che è stato acceduto o che deve essere memorizzato
Registro di stato (o dei flag)contiene informazioni sull’esito delle operazioni eseguite
Registri genericiper la memorizzazione degli operandi o del risultato di una operazione
-
Fondamenti di Informatica 35
Unità centrale di elaborazione (CPU):Funzionamento
L’unità di centrale di elaborazione esegue una istruzione svolgendo le seguenti tre operazioni di base
(lettura) fetchlegge dalla memoria la prossima istruzione da eseguire
(decodifica) decodeDetermina (decodifica) il tipo di istruzione che deve essere eseguito
(esecuzione) executerichiede lo svolgimento di tutte le azioni necessarie per l’esecuzione dell’istruzione (compreso l’incremento automatico del registro contatore delle istruzioni) — ciascuna azione viene richiesta al componente opportuno
L’esecuzione di un programma avviene eseguendo ordinatamente le istruzioni del programma,
svolgendo ripetutamente il ciclo fetch-decode-execute
Fondamenti di Informatica 36
Unità centrale di elaborazione (CPU):Funzionamento - 1
L’esecuzione di un programma ha inizio con il caricamento della locazione della prima istruzione nel PC
La UC manda un segnale di controllo affinché il contenuto del PC sia spostato nel MAR
Viene inviato un segnale di controllo (read) alla memoria per effettuare la lettura del dato posto all’indirizzo specificato nel MAR
In conseguenza del passo precedente il dato viene reso disponibile nel MDR (la UC attende fino all’arrivo del segnale MFC - memory function completed)
-
Fondamenti di Informatica 37
Unità centrale di elaborazione (CPU):Funzionamento - 2
La UC manda un segnale di controllo affinché il contenuto del MDR (registro dati) sia spostato nel IR (registro istruzione corrente)
La UC decodifica l’istruzione corrente
La UC genera la sequenza di segnali di controllo necessari ad eseguire l’istruzione (vedi esempio slide successiva)
Il PC viene incrementato al fine di puntare alla prossima istruzione
Fondamenti di Informatica 38
Unità centrale di elaborazione (CPU):Funzionamento – 3 (esempio)
La UC genera la sequenza di segnali di controllo necessari ad eseguire l’istruzione
Esempio: caricamento di un dato presente in memoria nel registro A
Il valore del PC incrementato di 1 viene spostato nel IR (registro indirizzi)
Viene inviato un segnale di controllo (read) alla memoria per effettuare la lettura del dato posto all’indirizzo specificato nel IR
In conseguenza del passo precedente il dato viene reso disponibile nel registro dati MDR (la UC attende il segnale MFC)
La UC manda un segnale di controllo affinché il contenuto del registro dati MDR sia spostato nel registro A
-
Fondamenti di Informatica 39
Unità centrale di elaborazione (CPU):Tipologia di istruzioni eseguibili
Le istruzioni eseguite dal processore possono essere classificate in tre categorie principali:
Istruzioni aritmetiche/logicheSomme, sottrazioni, moltiplicazioni, divisioni, etc.And, or, minore, maggiore
Istruzioni di salto (... condizionale, chiamate a sottoprogramma)
Istruzioni di trasferimento dei datiDa un registro all’altroDa uno dei registri alla memoria o viceversa
Fondamenti di Informatica 40
Esempio: Fase di fetch
0000000000PC
MAR
0100000000010000
Memoria centrale (MM)
0
MDR
1023
IR
0000000000
0100000000010000
0100000000010000
0000000001
Passo 1 Passo 2
Passo 3
Passo 4
-
Fondamenti di Informatica 41
Esempio: Fase di decode
0100000000010000IR
Codice operativo 0100 = scrivi il registro B in memoria
Fondamenti di Informatica 42
Esempio: Fase di esecuzione
MAR
Memoria centrale (MM)
0
MDR
1023
0001000000011111B
0100000000010000IR 16
Valore del registro B (es. 4127)
Indirizzo operando00000010000 = cella 16
0000010000
0001000000011111
0001000000011111
Passo 1
Passo 2
Passo 3
-
Fondamenti di Informatica 43
Unità centrale di elaborazione (CPU):le interruzioni (interrupt)
Al fine di gestire richieste provenienti dalle periferiche può essere necessario interrompere la normale esecuzione di un programma
La periferica segnala sue particolari necessità attraverso una interruzione (interrupt)Ad ogni passo di esecuzione la UC verifica lo stato del registro delle interruzioni
Se si è verificata una interruzione:Lo stato del processore (registri) viene salvato in memoria
Viene attivata una speciale procedura di gestione delle interruzioni
Quando la procedura di gestione delle interruzioni termina lo stato del processore viene ripristinato ed il programma viene ripreso
Fondamenti di Informatica 44
Unità centrale di elaborazione (CPU):caratteristiche dei microprocessori
Caratteristiche principali di un microprocessorerepertorio di istruzioni
le istruzioni del linguaggio macchina del processorevelocità (misurata come frequenza del clock)
la frequenza del clock misura la durata del ciclo macchina, che è l’unità di tempo all’interno del processoreva osservato che l’esecuzione di ciascuna istruzione richiede solitamente più cicli macchina
ampiezza del busnumero di bit nel bus interno del processore
co-processorei moderni processori sono integrati a co-processori specializzati (ad esempio, il co-processore matematico)
cacheuna memoria veloce locale al processore, che consente una accelerazione nell’esecuzione dei programmi
-
Fondamenti di Informatica 45
Il bus di sistema
Il bus di sistema collega tra loro i vari elementi del calcolatore
In ogni istante il bus è dedicato a collegare due unità, una trasmette ed una riceve
Il processore seleziona la connessione da attivare e indica l’operazione da svolgere
Approccio master-slave
CPU = master
Periferiche = slave
Fondamenti di Informatica 46
Il bus di sistema
Il bus è suddiviso in tre insiemi di linee:Bus dati
utilizzato per trasferire dati (es. fra memoria e CPU, fra CPU einterfacce di I/O)
Bus indirizziidentifica la posizione delle celle di memoria un cui la CPU va a scrivere o leggere
Bus di controlloin cui transitano i segnali di controllo che consentono di selezionare le unità coinvolte in un trasferimento dati (sorgente e destinazione), di definire la direzione dello scambio (scrittura o lettura), informazioni di temporizzazione
-
Fondamenti di Informatica 47
Il bus di sistema: vantaggi e svantaggi
Semplicità: 1 sola linea di connessione per qualunque # di dispositivi
Estendibilità: nuovi dispositivi possono essere aggiunti tramite un’interfaccia al bus senza influenzare l’HW preesistente
Standardizzabilità: definizione di normative che consentono a periferiche di costruttori diversi di interagire correttamente
Lentezza: l’uso in mutua esclusione del bus inibisce almeno parzialmente la parallelizzazione delle operazioni di trasferimento di dati tra dispositivi
Limitata capacità: al crescere del numero di dispositivi la presenza di una sola linea comporta un limite alla capacità di trasferire dati
Sovraccarico della CPU: l’unità centrale viene coinvolta in tutte le operazioni di trasferimento di dati
Fondamenti di Informatica 48
La memoria centrale
La memoria centrale (o principale) è la componente del calcolatore in cui vengono immagazzinati e da cui vengono acceduti i dati e i programmi
Una memoria:si compone di una sequenza di celle (o locazioni)ogni cella di memoria è in grado di memorizzare una parola di memoria (ovvero, un sequenza di bit di lunghezza fissata)
la lunghezza di una parola dipende dalla macchina
ogni cella è caratterizzata daun indirizzo, che è un numero che identifica la cella e ne consente l’accessoun valore, che è la sequenza di bit memorizzata dalla cella fornisce le operazioni di lettura e scrittura
-
Fondamenti di Informatica 49
La memoria centrale: schema semplificato
Fondamenti di Informatica 50
La memoria centrale: caratteristiche
Caratteristiche principali:
capacitàil numero di bit che possono essere memorizzati, misurati in byte (e multipli del byte)
velocità di accessomisura la velocità di esecuzione delle operazioni di lettura/scrittura
organizzazione/lunghezza parola
volatilitàIndica la capacità o meno di mantenere le informazioni memorizzate in mancanza di alimentazione elettrica (RAM, ROM)
-
Fondamenti di Informatica 51
La memoria centrale: RAM e ROM
Spesso ci si riferisce alla memoria centrale come memoria RAMRAM Random Access Memory (memoria ad accesso casuale)Viene cosi detta una memoria il cui tempo di accesso sia indipendente dall’indirizzo della parola alla quale si vuole accedereSi tratta di una memoria volatileI dati possono essere sia letti che scritti
Altri tipi di memoria presenti in un calcolatore sono le memorie ROMROM Read Only MemoryHanno caratteristiche generali simili alle RAMUn tempo di accesso notevolmente maggioreSi tratta di memorie permanentiI dati possono essere solamente lettiSono tipicamente utilizzate per memorizzare quei dati e programmi che servono al momento dell’accensione dell’elaboratore, prima del caricamento del S.O.
Fondamenti di Informatica 52
Memoria vs CPU
Le CPU sono sempre state più veloci delle memorie L’aumento di integrazione ha consentito di progettare CPU pipelined, superscalari, molto velociNelle memorie è aumentata più la capacità che la velocità
L’accesso alla memoria passa attraverso il busLa frequenza di funzionamento del bus è molto più bassa di quella della CPUGran parte delle istruzioni eseguite sono di accesso alla memoria
Esempio:Il tempo di accesso alla RAM è di ~30-70 nsUn processore con clock ad 1Ghz esegue in media 1 istruzione ogni ns
Se un processore deve accedere alla memoria, si blocca per molto tempo in attesa dei dati
La velocità effettiva del sistema computer è quella della memoria, non quella della CPULa memoria è un “collo di bottiglia” per le prestazioni del sistema computer
Migliorare la velocità di accesso alla memoria significa migliorare notevolmente le prestazioni d’insieme
-
Fondamenti di Informatica 53
Gerarchie di memorie
Memorie di gran capacità, relativamente lente, economiche ed accessibili tramite il bus
MGL ovvero Memoria Grossa e Lenta
Memorie veloci integrate nello stesso chip della CPU ma costose
MPV ovvero Memoria Piccola e Veloce
Obiettivo: Realizzare una memoria grossa e veloceDimensioni: pari a circa quelle della memoria grossaPrestazioni: pari a circa quelle della memoria veloce
E’ possibile realizzare questo obiettivo?
Fondamenti di Informatica 54
Gerarchie di memorie
Memoria formata da una MPV e da una MGL
La MPV contiene una copia di alcune celle della MGL
Quando la CPU chiede una particolare cella di memoria la richiesta va ad entrambe le memorie
Se il dato si trova nella MPV viene passato direttamente alla CPU
Se il dato si trova nella MGL viene anche caricato nella MPV
-
Fondamenti di Informatica 55
Principio di località
Località spazialeQuando si accede ad un indirizzo A è molto probabile che gli accessi successivi richiedono celle vicine ad A
Le istruzioni del codice vengono in genere lette da locazioni consecutive in memoriaGli accessi ad array o a strutture dati sono “vicini”
Località temporaleQuando si accede all’indirizzo A, è molto probabile negli accessi successivi si richieda di nuovo la cella A
Cicli di istruzioni accedono ripetutamente alle stesse locazioni di memoriaIstruzioni vicine tendono ad utilizzare le stesse variabili
Fondamenti di Informatica 56
Memoria cache
CPUregistri
Memoria cachedi livello 1 (L1)
Memoria cachedi livello 2 (L2)
Memoria centraleRAM
Memoria di massaHard disk
velocità capacità Costo (€/bit)
alta
bassa alta
altobassa
basso
-
Fondamenti di Informatica 57
Memoria cache
Denominazione Capacità Tempo di accesso
Registri < 1 KB < 1 nsCache di livello 1 2 KB – 64 KB 1 nsCache di livello 2 256 KB – 2 MB 2 nsMemoria centrale 256 MB – 2 GB 10 nsHard Disk 40 GB –300 GB 10 ms
Fondamenti di Informatica 58
Memoria cache
La presenza di una memoria cache efficiente (che, cioè, risponde “al posto della RAM” nel 95-98% dei casi) è fondamentale per le prestazioni del sistema computer
La presenza della cache complica notevolmente l’architettura di un sistema di elaborazione
Problema del rimpiazzoProblema della scrittura (coerenza dei dati)
-
Fondamenti di Informatica 59
L’interfaccia delle periferiche
Concettualmente si occupa della gestione dello scambio di dati tra processore e periferiche
In generale contiene:Un registro dati della periferica (RDP)
Un registro di comando della periferica (RCP)
Un registro di statoTalvolta collegato al registro delle interruzioni del processore
A seconda del processore, i registri delle periferiche possono:
Condividere lo spazio di indirizzi della memoria (memory mapped I/O)
Adottare uno spazio di indirizzi distinti
Fondamenti di Informatica 60
L’interfaccia delle periferiche: schema
Bus dati
Bus indirizzi
Bus di controllo
Decodificatoredegli indirizzi
Circuiti dicontrollo
Registri dei datie di stato Interfaccia di I/O
Periferica
-
Fondamenti di Informatica 61
L’interfaccia delle periferiche: standardizzazione
E’ possibile avere una interfaccia diversa per ogni periferica
ma è più logico avere delle interfacce standard per periferiche simili
Esempi di interfacce standard:
Interfaccia seriale RS-232-C
Interfaccia PS2
Interfaccia USB (Universal Serial Bus)
Interfaccia parallela Centronix
Interfaccia ISA
Interfaccia SCSI
Interfaccia EIDE
Fondamenti di Informatica 62
Gestione delle periferiche
I moderni processori operano a velocità notevolmente maggiori di ogni altra periferica
sorge la necessità di sincronizzare le operazioni di processore e periferiche
Due approcci possibili:
a controllo di programma (polling)o mediante interrupt
La gestione a polling: un esempio di lettura da memoria di massaIl processore invia sul bus il comando di lettura e si pone in attesa che il dato sia disponibile sul registro dati della periferica
Durante l’attesa il processore esegue un ciclo verificando il valore del registro di stato della periferica
Appena il dato è pronto il processore lo trasferisce dal registro dati della periferica in uno dei suoi registri interni e da qui in memoria
-
Fondamenti di Informatica 63
Gestione delle periferiche
Difetti dell’approccio a polling
Il processore resta impegnato in un ciclo in attesa del dato
La gestione a interrupt: un esempio di lettura da memoria di massaIl processore invia sul bus il comando di lettura e procede nelle sue operazioni
Quando il dato è disponibile la periferica “solleva” un interruzione
Il processore interrompe le sue operazioni, salva il proprio stato ed esegue una opportuna routine di gestione delle interruzioni (parte del S.O.)
La routine di gestione delle interruzioni verifica che un dato è disponibile sulla periferica e lo trasferisce dal registro dati della periferica in uno dei registri interni del processore e da qui in memoria
Fondamenti di Informatica 64
Tipologie di periferiche
Memorie secondarie (di massa)Floppy disk, hard disk, CD, DVD, Nastri magnetici
Periferiche di inputTastiera, mouse
Periferiche di outputMonitor, speaker, stampanti
Periferiche di comunicazioneInterfaccia di rete, modem
VarieScanner, webcam, microfoni, etc
-
Fondamenti di Informatica 65
Memorie secondarie (o di massa)
Con il termine memoria di massa ci si riferisce ad un dispositivo di memorizzazione permanente capace di contenere grosse quantità di dati
Caratteristiche specifiche (che la differenziano dalla memoria centrale):non volatilità
i dati memorizzati non vengono persi allo spegnimento del calcolatore (perché memorizzati in forma magnetica o ottica anziché elettronica)
grande capacitàuna unità di memoria secondaria ha capacità maggiore (anche di diversi ordini di grandezza) rispetto alla memoria centrale
bassi costiil costo per bit di una memoria secondaria è minore (di diversi ordini di grandezza) rispetto alla memoria centrale
bassa velocità di accessoi tempi di accesso a una memoria secondaria sono maggiori (di qualche ordine di grandezza) rispetto alla memoria principale
Fondamenti di Informatica 66
Memorie secondarie (o di massa)
Esiste un numero grandissimo di dispositivi di tale tipo
Possibili categorizzazioniDispositivi ad accesso sequenziale o casualeDispositivi in sola lettura (RO), in lettura e scrittura (RW) o WORM (Write Once Read Many)Dispositivi magnetici, ottici o magneto-ottici
Dimensioni tipiche delle principali memorie di massa odierneFDD: 1.44 MBCD: 650 MBDVD: 4 GBHard-Disk: 80+ GBNastri: QIC80: 350 MB, DAT 4¸20+ GB
-
Fondamenti di Informatica 67
Memorie secondarie
In pratica, i dati di una memoria secondaria per essere acceduti dal processore devono comunque transitare nella memoria centrale
la memoria secondaria memorizza tutti i programmi e i dati del calcolatore
la memoria centrale memorizza i programmi in esecuzione e i dati necessari per la loro esecuzione
Fondamenti di Informatica 68
Hard disk
Un disco magnetico (disco fisso) è composto da uno o più piatti di alluminio rotanti ricoperti di materiale magnetico e da un gruppo di testine
una testina permette la scrittura e lettura di bit su un disco, memorizzati sotto forma di stati di polarizzazione (positiva e negativa)
-
Fondamenti di Informatica 69
Hard disk
In un disco magneticociascun piatto è composto da due superfici (facce)ciascuna faccia è suddivisa in tracce(circolari) e settori (a spicchio)
un cilindro è l’insieme delle tracce in una data posizione radiale
i settori sono le unità logiche di memorizzazione
la capacità di un settore è tipicamente di 512 byte
l’indirizzo di un settore è dato dalle seguenti informazioni: cilindro, superficie, settore
Fondamenti di Informatica 70
Hard disk: caratteristiche prestazionali
Caratteristiche prestazionali di un HDTempo di posizionamento (seek time): il tempo necessario a posizionare le testine sulla traccia richiesta
Nell’ordine di 8-10 ms
Tempo di latenza o di rotazione (latency time): il tempo affinché il settore richiesto “passi” sotto la testina (dipende dalla velocità di rotazione del disco)
Nell’ordine di 2-4 ms
Tempo di trasferimento: il tempo per trasferire i dati dal disco alla memoria
In genere trascurabile
Tempo di accesso (la somma dei tre tempi precedenti)
-
Fondamenti di Informatica 71
Hard disk: esempi
Il disco WD Caviar SE16 (SATA)Caratteristiche costruttive
Number of Heads (Physical) 6 Capacity 250 GB Number of Platters 3 Bytes Per Sector 512
Caratteristiche prestazionaliRotational Speed 7,200 RPM Average Latency4.20 ms Seek Times
Read Seek Time 8.9 ms Write Seek Time 10.9 ms (average) Track-To-Track Seek Time 2.0 ms (average)
Transfer Rates Buffer To Host (Serial ATA) 300 MB/s (Max) Buffer To Disk 748 Mbits/s (Max)
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071