Upload
hoangnhan
View
214
Download
0
Embed Size (px)
Citation preview
Componenti dell’elaboratore
Hardware
Parte fisica del sistema
Dispositivi fisici
Software
Parte logica del sistema
Programmi e dati
2
6
Il computer “moderno”
Unita' di elaborazione, processore, CPU (Central
Processing Unit)
Memoria centrale, RAM (Random Access Memory)
Memoria secondaria, memoria di massa
Bus di sistema (collega tutti gli altri componenti)
Periferiche di I/O (mouse, tastiera, terminali,
stampanti, scanner, ecc.)
7
Lo schema di un computer
La comunicazione fra le varie componenti avviene attraverso il bus di sistema. Tramite
il bus la CPU legge\scrive dati e istruzioni in memoria, trasferisce da\a la memoria ai
dispositivi di I/O, …
9
Il bus
Il bus è una linea a cui sono contemporaneamente connesse tutte le unità del calcolatore e che consente il trasferimento di dati tra tali unità.
Cosa succede se mentre la CPU sta accedendo alla memoria per leggere un dato contemporaneamente da una interfaccia di ingresso/uscita arrivano dei dati che devono transitare sullo stesso bus ?
1010
Lo schema di riferimento
Schermo Tastiera MouseAltre
periferiche
InterfacciaI/O
InterfacciaI/O
InterfacciaI/O
InterfacceI/O
Memoriacentrale
CPU
Bus Dati
Bus Indirizzi
Bus di Controllo
1111
Organizzazione di un calcolatore “bus oriented”
Memoria
centraleUnità disco
Terminale Stampante
Unità di
controllo
Unità aritmetico
logica (ALU)
Registri
Dispositivi di I/O
BUS
1212
Caratteristiche del collegamento a BUS
Vantaggi
Semplicità: unica linea di connessione implica costi ridotti
Estendibilità: aggiunta di nuovi dispositivi molto semplice
Standardizzabilità: regole precise di comunicazione tra dispositivi diversi
Svantaggi
Lentezza: il bus è utilizzabile solo in mutua esclusione
Limitata capacità: al crescere del n. di dispositivi collegati
Sovraccarico del processore: la CPU funge infatti da master sul controllo del bus
13
La scheda madre (motherboard)
Collega tra di loro tutte le componenti del
computer (CPU, RAM, hard disk, floppy disk,
etc.)
zoccolo per il processore
zoccolo per la memoria
zoccoli o slot
per le schede
15
Motherboard
Memoria
temporanea RAM
CPU
(Processore)Slots per
interfacce
Plugs
per dispositivi I/O
Memoria
di sistema permanente ROM
Unità di controllo
16
La CPU ha il ruolo di master
La CPU ha il compito di gestire (si dice che ha il ruolo di master) l’intero sistema e in particolare l’accesso al bus, impedendo alle unità periferiche la possibilità di accedervi autonomamente.
Ogni trasferimento di dati attraverso il bus avviene sotto la supervisione della CPU che sincronizza con segnali di controllo i dispositivi che devono colloquiare.
18
La CPU (o processore)
Si occupa di:
fare i calcoli
controllare le altre componenti
E' il cuore del computer!
Esistono diversi tipi di processore
(Pentium, Alpha, AMD (Athlon), etc.)
20
La struttura del processore
L’unità aritmetico-logica (Arithmetic-Logic Unit, ALU) effettua le operazioni di tipo aritmetico e logico sugli operandi forniti ai suoi ingressi.
I registri sono piccole celle di memoria interne alla CPU su cui vengono memorizzate le informazioni necessarie per l’esecuzione delle istruzioni (es., l’istruzione che il processore sta elaborando, i dati su cui opera l’istruzione corrente, l’indirizzo della prossima istruzione da eseguire, …)
L’unità di controllo coordina le varie unità nell’esecuzione dei programmi, comandando opportunamente i segnali di controllo dei registri, dell’ALU e dei bus che interfacciano la memoria.
21
Microprocessore
Con il termine microprocessore si intende un
processore realizzato interamente su un unico
chip (CPU integrata).
Un chip o circuito integrato è costituito da milioni di
transistor collegati da sottilissimi fili di alluminio, il tutto
all'interno di una piastrina di silicio.
Un transistor è un dispositivo elettronico a due stati,
una sorta di microscopico interruttore che può essere
acceso o spento.
22
Tutte le sue operazioni sono sincronizzate
da un clock.
Le varie componenti della CPU devono operare in modo
coordinato anche dal punto di vista della temporizzazione
degli eventi. Questo si ottiene grazie ad un orologio (clock)
che fornisce una cadenza temporale a cui tutte le attività
elementari sono sincronizzate.
23
Frequenza del clock
La frequenza del clock, cioè il numero delle attività
elementari che vengono eseguite nell’unità di tempo
(tale frequenza viene misurata in hertz, Hz),
determina la velocità di elaborazione della CPU.
Più alta è la frequenza di clock, maggiore è la velocità di
elaborazione del computer.
I calcolatori sono perciò caratterizzati non solo dal
tipo di CPU che adottano ma anche dalla frequenza
del loro clock: frequenze tipiche sono dell’ordine dei
100 MHz per i processori più lenti, sino ai calcolatori
più potenti che superano il GHz (1000 MHz).
24
Larghezza del bus
La velocità e la potenza di un computer dipendono
anche dalla larghezza del bus, ovvero dal numero di
bit (lunghezza del singolo dato) che il processore è
in grado di ricevere e di elaborare simultaneamente.
I primi processori potevano elaborare solo dati di 8 bit.
In breve si passò prima a 16 e poi a 32 bit.
Oggi tutti i processori sono in grado di elaborare dati
rappresentati con 64 bit.
25
La memoria
Supporto alla CPU: deve fornire alla CPU dati
e istruzioni il più rapidamente possibile
Archivio: deve consentire di archiviare dati e
programmi garantendone la conservazione e
la reperibilità anche dopo elevati periodi di
tempo
Diverse esigenze:
Velocità per il supporto alla CPU
Non volatilità ed elevate dimensioni per l’archivio
26
Le memorie
Cosa può fare la tecnologia ?
Memorie elettroniche relativamente piccole e
veloci, volatili, a costo medio alto
RAM : lettura e scrittura nell’ordine delle decine di
nanosecondi per parola
Memorie magnetiche e ottiche, grandi, molto
capienti, persistenti e lente
Dischi rigidi : lettura e scrittura nell’ordine di
alcuni millisecondi per blocco
CD ROM, DVD
27
Le memorie
I computer usano quindi supporti di
memorizzazione di più tipi :
una memoria centrale, RAM : contiene i
programmi durante la loro esecuzione ed i dati
relativi
altrimenti il processore sarebbe per la maggior parte
del tempo fermo in attesa di dati da/per la memoria
una o più memorie di massa (dischi etc.) : che
mantengono tutti i dati ed i programmi in attesa
di essere eseguiti in modo persistente, anche
dopo lo spegnimento del calcolatore
28
La memoria centrale
E' la RAM (Random Access Memory)
Memorizza:
I programmi in esecuzione
I dati dei programmi in esecuzione
Viene cancellata ogni volta che si spegne il
computer.
29
La notazione binaria
Tutte le informazioni vengono rappresentate mediante
sequenze di 0 e di 1
bit: binary digit
Per esigenze logico-costruttive, i bit tra RAM e CPU
fluiscono a gruppi di 8.
Altra unità di misura utilizzata: byte (sequenza di otto bit)
Un byte è la più piccola unità accessibilie singolarmente.
30
Quantità
in byte
Valore in base
10
Quantità
di informazioni testuali
1 byte 100 Un carattere
1 kilobyte 103 Una pagina di testo
1 megabyte 106 Due o tre racconti
1 gigabyte 109 Una biblioteca di facoltà
1 terabyte 1012 La biblioteca di una
grande Università
1 petabyte 1015
Tutto il materiale
stampato in tutte le
biblioteche degli USA
1 exabyte 1018 Tutte le parole stampate
nella storia dell’uomo
1 zattabyte 1021 …
1 yottabyte 1024 …
31
La struttura della memoria
I bit nella memoria sono raggruppati in celle
(o registri)
Tutte le celle sono formate dallo stesso
numero di bit
Ogni cella ha un indirizzo che serve per
accedere all’informazione contenuta nella
cella
La cella è l’unità indirizzabile più piccola
33
Operazioni sulla memoria
Si possono eseguire solo due operazioni:
lettura e scrittura
Lettura: con questa operazione si accede al
contenuto di una cella di memoria che viene
trasferito, senza essere modificato, alla CPU.
Scrittura: con questa operazione il contenuto di
una cella di memoria viene modificato, e viene
sostituito con dati provenienti dalla CPU.
34
Caratteristiche della memoria RAM
Il nome random access (accesso casuale) deriva dal fatto che
in una memoria RAM si può accedere ai dati in qualunque
posizione si desideri, specificandone l’indirizzo.
La memoria RAM di un computer domestico può contenere
fino a qualche GigaByte, mentre nelle macchine professionali
si arriva anche a decine di GigaByte.
Il tempo di accesso è dell’ordine di pochi miliardesimi di
secondo.
35
Il ciclo fetch-decode-execute
Il processore esegue le istruzioni di un programma una alla voltain sequenza: estrae le istruzioni dalla memoria, le interpreta e le esegue una dopo l’altra.
Un programma indica la sequenza di istruzioni da eseguire per ottenere la soluzione ad un dato problema.
Il processore esegue ogni istruzione mediante una sequenza ben definita di operazioni detta ciclo di istruzione o ciclo macchina.
Estrazione di una istruzione (fase di fetch)
Decodifica dell’istruzione (fase di decode)
Esecuzione dell’istruzione (fase di execute)
Ripetendo questa semplice sequenza di operazioni, il processore è in grado di eseguire programmi comunque complessi.
36
Il ciclo fetch-decode-execute
Per ogni istruzione da eseguire, il
processore estrae l'istruzione, la
decodifica, e la esegue.
37
Processore e RAM
La connessione tra memoria e processore rappresenta un limite degli elaboratori di Von Neumann.
Limite architetturale: permette l’accesso ad una sola informazione per volta (“collo di bottiglia”).
Limite tecnologico: la velocità con cui il processore ottiene le informazioni dalla memoria centrale (velocità di accesso della RAM) è inferiore alla velocità con cui è in grado di elaborarle.
Soluzioni:
Allargamento del bus di dati, in modo da poter estrarre più istruzioni e/o dati per volta.
Superamento del limite tecnologico mediante l’introduzione di una memoria intermedia tra memoria centrale e processore che approssimi la velocità del processore.
38
La memoria Cache
Piccola RAM molto veloce, interposta tra
CPU e memoria principale per migliorare le
prestazioni del sistema.
Quando viene indirizzata una parola, quella
parola e alcune di quelle vicine vengono trasferite
dalla lenta memoria centrale nella più piccola e
veloce memoria cache, in modo che la parola
successiva sia accessibile più velocemente.
40
Memoria cache
Processore Cache
Memoria piccola
e molto veloce
RAM
Tutti i dati
Copia dei dati usati
di recente
42
Memoria cache
I computer attuali hanno tutti uno o più livelli
di cache per ottimizzare le prestazioni della
CPU.
La memoria cache viene collegata
direttamente alla CPU, senza che i dati
debbano passare attraverso il bus.
44
Memorie secondarie o di massa
Le memorie secondarie o di massa sono utilizzate per memorizzare grandi volumi di dati in modo permanente.
La caratteristica principale di tali memorie è la non volatilità.
Consentono la memorizzazione di dati e programmi che non sono istantaneamente utilizzati ma che possono essere reperiti nel momento in cui la CPU ne fa richiesta.
Tali memorie comprendono due elementi distinti:
il supporto di memorizzazione, ovvero il componente fisico su cui vengono memorizzati i dati;
Dischetto, CD-Rom…
il drive, ovvero il relativo dispositivo di funzionamento e di memorizzazione.
Unità floppy disk, masterizzatore…
45
Memorie secondarie o di massa
Le caratteristiche principali sono:
non volatilità: mantengono le informazioni anche a
computer spento
grande capacità
Le memorie secondarie o di massa sono basate
principalmente su tecnologie magnetiche e ottiche.
ES. Hard disk, floppy disk, CDROM, DVD, etc.
I dati sono organizzati in file e gestiti dal file system
46
Dischi magnetici
Un disco magnetico si compone di uno o più piatti di alluminio rivestiti di un sottile strato di materiale ferromagnetico.
L’informazione viene registrata magnetizzando la superficie del disco.
Ogni bit occupa una piccola area sulla superficie.
Il disco per funzionare deve essere affiancato da un dispositivo chiamato controller, in genere presente sotto forma di scheda, che si occupa di posizionare la testina sul disco e prelevare le informazioni richieste.
Il disco deve essere formattato prima di essere usato.
La formattazione consiste nella suddivisione della superficie del disco in tracce e settori.
52
CPU, RAM e Hard Disk sono...
...componenti fisiche, fatte di circuiti e parti
meccaniche.
L'insieme di tutte le componenti fisiche
e' detto hardware
5353
Quanto “potente” è il mio PC?
Frequenza del processore
Dimensione della RAM
Dimensione della memoria di massa
Velocità di accesso (bus)
Grandezza della cache
Numero e tipo di porte
54
Dispositivi di I/O
Le unità di ingresso/uscita, dette periferiche di
input/output permettono di realizzare l'interazione
tra l'uomo e la macchina.
La loro funzione primaria è quella di consentire
l'immissione dei dati all'interno dell'elaboratore (Input), o
l'uscita dei dati dall'elaboratore (Output).
5555
Il concetto di macchina astratta
Alla base di un moderno computer c’è l’idea di rappresentare i
programmi in forma digitale. L'elaboratore diviene una
macchina “universale” in grado di eseguire qualsiasi compito
“calcolabile”, semplicemente inserendo un nuovo programma.
Il progettista hw definisce il set di istruzioni dell’elaboratore,
ovvero un linguaggio minimo (L1) mediante il quale
l’elaboratore può essere programmato
A sua volta, anche L1 può essere limitato e difficile da usare,
ma si può usare per realizzare un nuovo linguaggio, L2, che
consente di eseguire operazioni più sofisticate di L1, e quindi
semplifica la programmazione dell’elaboratore
5858
Mettendo assieme le cose...
I programmi che non sono in esecuzione sono memorizzati nella
memoria secondaria
RAM DiskCPUCache
Bus
SOApp
5959
Software: SO
Il sistema operativo è caricato dalla memoria secondaria in memoria principale quando viene acceso il computer, e vi rimane finché non viene spento.
Il SO agisce come “manager” del sistema, garantendo che ogni dispositivo hw dialoghi correttamente con gli altri dispositivi.
Offre l’interfaccia perché l’utente interagisca con il computer.
Esempi: MacOS, WindowsXP, UNIX, Linux, Solaris, ...
RAMCPUCache
Bus
SO
Disk
SOApp
6060
Lanciare un programma
Quando si lancia un programma il sistema operativo controlla la
CPU e carica il programma dalla memoria secondaria alla RAM.
RAMCPUCache
Bus
SOAppSO
Disk
SOApp
6161
Esecuzione
Quando il programma è in esecuzione, carica ad ogni passo una
nuova istruzione (dalla memoria o dalla cache), la esegue, e
memorizza il risultato nella memoria.
RAMCPUCache
Bus
SOApp
App
Disk
SOApp
Archittetture
non Von Neumann
Collo di bottiglia di Von Neumann: limite all’aumento della
velcità del processore.
1. Impossibilità fisiche di rimpicciolire i circuiti (ad oggi i transistor
sono separati da distanze inferiori a 0.0001 cm)
2. Il tempo richiesto per inviare segnali tra due parti del computer è
limitato dal fatto che i segnali elettronici non possono viaggiare
a velocità superiori a 299 792 458 metri al secondo (velocità
della luce)
Se è impossibile costruire qualcosa che lavori
due volte più veloce,
conviene costruire due cose per volta.
Il risultato sarà identico. 62
Elaborazione parallela
SIMD (Single Instruction stream/Multiple Data stream): esiste un
singolo programma le cui istruzioni sono
prelevate/decodificate/eseguite in modo sequenziale da una sola
unità di controllo. L’ALU è replicata più volte, con una propria
memoria locale. Quando l’unità di controllo legge un’istruzione la
distribuisce a ogni ALU che la esegue sui propri dati locali.
MIMD (Multiple Instruction stream/Multiple Data Stream): si replica
l’itero processore e ogni processore è in grado di eseguire il proprio
programma separato nella propria memoria separata. Ognuno dei
processori si occupa di una parte del problema complessivo.
63