Abilità Informatiche A.A. 2010/2011 Lezione 2...
-
Upload
nguyendiep -
Category
Documents
-
view
214 -
download
0
Transcript of Abilità Informatiche A.A. 2010/2011 Lezione 2...
Abilità Informatiche A.A. 2010/2011
Lezione 2: Architettura del Calcolatore
Facoltà di Lingue e Letterature Straniere
2
programma dati soluzione
COMPUTER
{
{
PROBLEMA
ALGORITMO
PROGRAMMA
CONOSCENZA
SUL DOMINIO
DEL PROBLEMA
CONOSCENZA
LINGUAGGIO DI
PROGRAMMAZIONE
ANALISTA
PROGRAMMATORE
UTENTE
Dal problema al risultato:
il ruolo del computer
SVILUPPO
DELLA
SOLUZIONE
ESECUZIONE
DEL
PROGRAMMA
Architettura del calcolatore
La prima decomposizione di un calcolatore è relativa a due
macro-componenti:
Hardware
Software
3
Architettura del calcolatore
L’architettura dell’hardware di un calcolatore reale è molto complessa
La macchina di von Neumann è un modello semplificato dei calcolatori moderni, composta da Unità di calcolo
Una memoria che contiene programmi e dati dei programmi
Le istruzioni da eseguire stanno in memoria,
vengono prelevate, decodificate ed eseguite.
John von Neumann, matematico ungherese, progettò, verso il 1945, il primo calcolatore con programmi memorizzabilianziché codificati mediante cavi e interruttori
4
Macchina di Von Neumann
E’ composta da 4 tipologie di componenti funzionali:
unità centrale di elaborazione (CPU) esegue istruzioni per l’elaborazione dei dati
svolge anche funzioni di controllo
memoria centrale memorizza e fornisce l’accesso a dati e programmi
interfacce di ingresso e uscita componenti di collegamento con le periferiche del calcolatore
bus svolge la funzionalità di trasferimento di dati e di informazioni di
controllo tra le varie componenti funzionali
5
Modello di Von Neumann (1)
6
La CPU (Central Processing Unit) spesso integra due distinte unità: L’Unità di controllo si occupa di
controllare tutte le operazioni del calcolatore, interpretare le istruzioni prelevate dalla memoria e inviare alle altre unità i segnali per l'esecuzione delle operazioni
L’Unità aritmetico-logica, detta ALU(Arithmetic & Logic Unit), fornisce la capacità di effettuare operazioni di tipo aritmetico/logico di base. Si occupa di eseguire le operazioni : somme, confronti…A volte e’ affiancata da un co-processore matematico
CPU
ALU
Controllo
MEMORIA
PERIFERICHE
dati
istruzioni
Ingresso
Uscita
BUS
Le componenti fondamentali di un
moderno calcolatore elettronico
Modello di Von Neumann (2)
7
La Memoria centrale ha lo scopo di conservare le istruzioni e i dati da elaborare e i risultati ottenuti dalle elaborazioni;
Le Interfacce collegano alle
Unità di ingresso (Input) che immette le informazioni nel calcolatore per farle elaborare;
Unità di uscita (Output) che riceve le informazioni dalla memoria del calcolatore per renderle pronte all’uso;
le unità di ingresso e uscita
sono anche dette periferiche
Il Bus, vero e proprio canale di comunicazione che consente ai dati di transitare fra diversi componenti del calcolatore.
CPU
ALU
Controllo
MEMORIA
PERIFERICHE
dati
istruzioni
Ingresso
Uscita
BUS
Le componenti fondamentali di un
moderno calcolatore elettronico
8
Per ogni istruzione del programma:
la CPU, tramite la sua parte Controllo,
ordina il prelevamento di una istruzione
dalla Memoria;
la decodifica, cioè la interpreta capendo
quali azioni comporta;
la esegue utilizzando le opportune unità
coinvolte
durante l’esecuzione può:
usare la ALU
effettuare altri accessi in memoria per
leggere o scrivere dati
effettuare operazioni di ingresso (per
es. leggi un dato dalla tastiera) o di uscita
(per es. visualizza il risultato sul video).
CPU
ALU
Controllo
MEMORIA
PERIFERICHE
dati
istruzioni
Ingresso
Uscita
Segnali di controllo
Spostamento dati
e/o istruzioni
Modello di Von Neumann (3)
Macchina di Von Neumann,
uno schema
9
Macchina di Von Neumann (1)
Il funzionamento di un calcolatore è descrivibile in termini di
poche componenti (macro-unità) funzionali
ogni macro-unità è specializzata nello svolgimento di una tipologia
omogenea di funzionalità
Eccezione: l’unità centrale di elaborazione, che svolge sia funzionalità di
elaborazione che di controllo
10
Macchina di Von Neumann (2)
11
Memorizzazione
Un calcolatore memorizza
i dati, che rappresentano informazioni di interesse
i programmi per l’elaborazione dei dati
La memoria è l’unità responsabile della memorizzazione
dei dati
Una unità di memoria fornisce due sole operazioni
memorizzazione di un valore (scrittura)
accesso al valore memorizzato (lettura)
12
Elaborazione (1)
Le istruzioni di un programma corrispondono ad operazioni elementari di elaborazione operazioni aritmetiche
operazioni relazionali (confronto tra dati)
operazioni su caratteri e valori di verità
altre operazioni numeriche
13
Elaborazione (2)
Un calcolatore sa svolgere poche tipologie di operazioni elementari ma in modo molto efficiente un calcolatore può eseguire decine o centinaia di milioni di
istruzioni al secondo
L’elaborazione dei dati viene svolta dall’unità aritmetico-logica (ALU), che è un componente dell’unità centrale di elaborazione
14
Trasferimento
Obiettivo: permettere lo scambio di informazioni trale varie componenti funzionali del calcolatore trasferimento dei dati e delle informazioni di controllo
Due possibili soluzioni collegare ciascun componente con ogni altro componente
collegare tutti i componenti a un unico canale (bus)
L’utilizzo di un bus favorisce la modularità e l’espandibilità delcalcolatore
15
Controllo
Il coordinamento tra le varie parti del calcolatore è
svolto dall’unità di controllo
è un componente dell’unità centrale di elaborazione
ogni componente dal calcolatore esegue solo le azioni che gli
vengono richieste dall’unità di controllo
il controllo consiste nel coordinamento dell’esecuzione
temporale delle operazioni
sia internamente all’unità di elaborazione sia negli altri
elementi funzionali
16
Il computer „moderno‟ segue il modello di
Von Neumann, con diversi tipi di memoria
17
Unità 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, ecc.)
Periferiche e memorie esterne
18
OutputInput
Disks – flash cards – DVD - …
tastiera
mouse
scanner
PC
stampante
video
Memorie di massa
All‟interno: struttura di un PC
19
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, …
Componenti HW: Bus
20
Il bus
Linea a cui sono contemporaneamente connessi tutti i dispositivi
hardware del calcolatore.
Analogo alla colonna spinale.
Controllato dalla CPU
Consente il trasferimento di dati tra le unità hardware
Velocità misurata in megahertz (come la CPU), ma di solito più lento...
E’ il collo di bottiglia per molti PC.
Bus: le caratteristiche
21
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
Componenti HW:
motherboard (scheda madre)
22
Piastra ricavata da un sandwich di strati di vetronite e rame: generalmente ha da
quattro a sei strati di rame;
Ha integrato il bus di sistema, composto da 50 a 100 fili in rame incisi su di essa
Dotata di connettori separati ad intervalli regolari per l’innesto dei moduli di
memoria e di I/O. Si tratta di una serie di connessioni elettriche ognuna delle quali
può trasmettere cifre binarie (0 o 1) in successione,
Vi sono montate le componenti del computer (CPU, RAM, hard disk, etc.)
zoccolo per il processore
zoccolo per la memoria
zoccoli o slot per le schede
Motherboard: componenti principali
23
Alloggiamento per la CPU: Socket, (es. zoccolo ZIF, Zero Insertion Force) o SLOT1;
gli slot per l'installazione delle RAM;
la RAM CMOS, alimentata in permanenza da una pila o una piccola batteria che memorizza i parametri di configurazione del BIOS;
Controller e Slot di espansione:
PCI (schede video, audio, scheda rete, modem, sintonizzatore TV, controller firewire, USB…)
AGP, PCI Express (schede video);
Controller e slot IDE/ATA, SATA e/o SCSI per la gestione delle unità disco (Hard Disk, CD e DVD), floppy;
Porte: parallela, seriale, USB, PS2,…
In molte Mainboard, specie se compatte, molte schede di espansione possono trovarsi già integrate (es. la scheda video, la scheda audio, interfacce di rete LAN o Ethernet e porte Firewire)
Componenti HW: la memoria
24
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
Le memorie: diversi tipi
25
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
Le memorie: diversi usi
26
I computer usano 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
Memoria centrale: RAM
27
RAM: Random Access Memory
Memorizza:
I programmi in esecuzione
I dati dei programmi in esecuzione
Viene cancellata ogni volta che si spegne il
computer.
Notazione binaria
28
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.
RAM: struttura
29
I bit nella memoria sono raggruppati in celle (o registri)
Tutte le celle sono formate dallo stesso numero di bit
Le celle sono numerate in sequenza: il numero di ogni
cella costituisce il suo indirizzo
L’indirizzo serve per accedere all’informazione contenuta
nella cella
Specificando l’indirizzo di una cella, la CPU e’ in grado di
leggere e/o modificare il valore dei bit memorizzato in
quella cella
La cella è l’unità indirizzabile più piccola
Perchè si chiama RAM
(Random Access Memory)?
Si può accedere direttamente alle varie celle, una volta noto il loro
indirizzo
Il tempo necessario per accedere ad una cella è lo stesso,
indipendentemente dalla posizione della cella nella sequenza
Il termine “random” (casuale) indica proprio il fatto che non vi sono
differenze nell’accesso alle varie celle della memoria
30
RAM: principali proprietà
Veloce: per leggere/scrivere una cella ci vuole un tempo di accesso dell’ordine di poche decine di nanosecondi (millesimi di milionesimi di secondo = 10-9 sec.)
Volatile: è fatta di componenti elettronici, togliendo l’alimentazione si perde tutto
(Relativamente) costosa
Tutte le celle hanno uguale dimensione: 8, 16, 32, o 64 bit
Le operazioni che si eseguono sulla memoria sono
operazioni di lettura e scrittura
Una cella può contenere un dato o un’istruzione
31
Operazioni sulla memoria
32
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.
Componenti HW:
CPU - Central Processing Unit
Programmi e dati risiedono in file memorizzati in
memoria secondaria.
Per essere eseguiti (i programmi) e usati (i dati)
vengono copiati nella memoria primaria.
Il processore, CPU, è in grado di eseguire le istruzioni di
cui sono composti i programmi
I programmi che la CPU è in grado di eseguire sono
scritti in linguaggio macchina
33
CPU: funzionamento
RAM
HARD DISK
programma
programma
copia il programma in RAM
esegui le istruzioni del programma
CPU
34
Il set di istruzioni macchina
Ogni tipo di processore e’ in grado di eseguire un
numero limitato (40/100) di istruzioni
Combinando in modo diverso sequenze anche molto
lunghe di istruzioni (i programmi) si possono far fare
al computer tantissime cose completamente diverse
35
Legge di Moore
Osservazione fatta da Gordon Moore nel 1965:
il numero dei transistor per cm2
raddoppia ogni X mesi
In origine X era 12. Correzioni successive hanno portato a fissare
X=18. Questo vuol dire che c’è un incremento di circa il 60%
all’anno.
# Transistor [CPU Intel]
100 000
1 000 000
10 000 000
100 000 000
1989 1991 1993 1995 1997 1999
Legge di Moore e progresso
Il progresso della tecnologia provoca un aumento del numero di transistor per cm2 e quindi per chip.
Un maggior numero di transistor per chip permette di produrre prodotti migliori (sia in termini di prestazioni che di funzionalità) a prezzi ridotti.
I prezzi bassi stimolano la nascita di nuove applicazioni (e.g. non si fanno video game per computer da milioni di $).
Nuove applicazioni aprono nuovi mercati e fanno nascere nuove aziende.
L’esistenza di tante aziende fa crescere la competitività che, a sua volta, stimola il progresso della tecnologia e lo sviluppo di nuove tecnologie.
Componenti HW: altre memorie
Memoria di sola lettura (ROM)
Memoria cache
Buffer
39
Memoria di sola lettura (ROM)
ROM = Read Only Memory
Memoria permanente e di sola lettura
Non può essere modificata
A differenza della RAM non è volatile
Veloce quasi come la RAM
Contiene le informazioni di inizializzazione usate ogni
volta che si accende l’elaboratore (bootstrap)
40
Memoria cache
L’accesso alla RAM è comunque più lento rispetto alla velocità della CPU.
Si utilizza quindi una memoria che consenta accessi estremamente veloci su istruzioni e dati utilizzati di recente. Questa memoria è la cache memory: veloce, ma molto più costosa della RAM quindi piccola.
La cache rappresenta un livello di memoria intermedio tra i registri del processore e la RAM
Memorizza i dati usati più spesso senza doverli recuperare tutte le volte dalla RAM (che è più lenta)
Influisce moltissimo sulle prestazioni e sul costo della CPU (e quindi del computer)
41
Buffer
Piccole parti di RAM con funzioni di memoria temporanea
Usati per il passaggio delle informazioni da un programma o dispositivo ad
un altro
In Windows si parla di Clipboard, memoria temporanea usata per esempio per
le operazioni di Copia e Incolla
1
2
3
4
5
Foglio elettronicoProgramma di videoscrittura
Clipboard(buffer)
42
Componenti HW:
memorie secondarie o di massa
43
Caratteristiche principali:
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
Le memorie di massa
44
Hard disk
45
È costituito da una serie di
dischi magnetici rigidi
(piatti) sovrapposti e
ruotanti su un asse
verticale. La superficie è
divisa in aree di memoria,
sui cui scrive e legge una
testina. Le testine sono il
doppio dei piatti.
CD rom e DVD
46
Il disco ottico è fatto di tre
strati, di cui uno in vetro
temperato che produce un
sostrato rigido. Poi una
superficie di registrazione in
lega metallica e infine un
involucro di plastica
trasparente.
Memorie Flash
Funzioni: trasferimento dati;
archiviazione dati “sensibili”.
Tecnologia elettronica non volatile bassi consumi
piccole dimensioni
capacità dai 256MB ai 32GB
File system come per i dischi Il sistema operativo gestisce
l’accesso come se fossero dischi;
47
Nastri Magnetici e unità DAT
Capacità di diversi GigaByte
Spazio tra record
(inter record gap) Record fisico
Traccia 1
Traccia 2
Traccia 9
Traccia 8
… … …
Accesso sequenziale
Molto lenti
Utili solo per operazioni di backup
Gerarchia delle memorie
49
max
maxminCPU Registri
Cache
Memoria centrale
Dischi magnetici / ottici
Nastri magnetici
Dimensioni Velocità
min
Costo/bit
max
min
Componenti HW: porte di comunicazione
50
Porte seriali: trasportano 1 bit per volta, hanno velocità massima = 115 KB/sec e si usano per periferiche lente, come mouse e modem esterni, non sopportano cablaggi superiori a 300 metri
Porte parallele: trasmettono 8 bit alla volta in parallelo, sono più veloci delle seriali ma non sopportano cablaggi superiori a 30 metri, adatte a collegare stampanti, o altri dispositivi di immagazzinamento esterno delle informazioni. Hanno velocità massima = 150 KB/sec.
Porte SCSI (small computer system interface) permettono la connessione di molti dispositivi in cascata, e sono usate per scanner CD-ROM, ...
USB (Universal Serial BUS): seriali ad alta velocità velocità = 12 Mbit/sec
collegano fino a 127 periferiche in cascata
alimentano direttamente periferiche a basso consumo (tastiere, mouse) e sono completamente plug & play
la USB 2.0 del 1999 arrivano fino a 480 Mbps.
Quanto “potente” è il mio PC?
51
Parametri da considerare:
Frequenza del processore
Dimensione della RAM
Dimensione della memoria di massa
Velocità di accesso (bus)
Grandezza della cache
Numero e tipo di porte
Tassonomia dei calcolatori /1
Quantità vs. qualità:
Cambiare di un ordine di grandezza la quantità significa cambiare anche la qualità: un’auto in grado di raggiungere una velocità di 1000 km/h nel deserto
del Nevada è una macchina fondamentalmente diversa da un’auto che fa 100 km/h sull’autostrada;
un grattacielo di 100 piani non è solo un edificio di 10 piani un po’ più grande.
Nei computer le differenze sono di diversi ordini di grandezza.
I miglioramenti procurati dalla legge di Moore possono essere utilizzati in modi diversi: costruire calcolatori sempre più potenti a prezzo costante;
costruire lo stesso calcolatore a prezzi ogni anno più convenienti.
Tassonomia dei calcolatori /2
Tipo Prezzo (€) Applicazione tipica
Calcolatore monouso 1 Biglietti di auguri
Calcolatore dedicato 10 Orologi, automobili, …
Calcolatore per videogiochi 100 Videogiochi personali
Calcolatore per PC 1 K PC da tavolo o portatile
Server 10 K Server di rete
Reti di workstation 100 K Centro di calc.
dipartimentale
Mainframe 1 M Database di una banca
Supercalcolatore 10 M Previsioni del tempo
I prezzi sono solo indicativi.
Tassonomia dei calcolatori /3
Calcolatori monouso: chip singoli incollati all’interno dei biglietti di auguri;
si tratta in pratica di calcolatori usa e getta.
Sistemi embedded (calcolatori dedicati): calcolatori che si trovano in telefoni, televisori, forni, auto, …
questi calcolatori contengono un processore, meno di unmegabyte di memoria e qualche funzione di I/O.
Videogame normali calcolatori con particolari capacità grafiche, ma
software limitato e poche possibilità di estensione; fanno partedi questa categoria anche i PDA;
contengono un processore, alcuni megabyte di memoria, untipo di schermo (anche un televisore) e poco di più.
Tassonomia dei calcolatori /4
Personal computer (PC) o workstation: dotati di alcune decine di megabyte di memoria, di un disco
fisso contenente alcuni gigabyte di dati, drive CD–ROM,modem, scheda audio e altre periferiche;
dotati di sistemi operativi elaborati, molte opzioni diespansione e una vasta gamma di software disponibile.
Server di rete si tratta di PC o workstation potenziati utilizzati come
server di rete sia per le reti locali che per Internet;
esistono sia in configurazione con processore unico che conpiù processori, hanno alcuni gigabyte di memoria, moltigigabyte di spazio sul disco fisso e interfacce di rete ad altavelocità.
Tassonomia dei calcolatori /5
NOW (Networks of Workstations) o
COW (Cluster of Workstations) composti da PC o workstation normali collegate con reti ad elevate
prestazioni (qualche gigabit/sec) e funzionanti con software speciale, chepermette a tutte le macchine di lavorare insieme su un unico problema;
architetture sono facilmente scalabili (da alcune macchine ad alcunemigliaia) e sono paragonabili a minisupercomputer.
Mainframe calcolatori grandi come una stanza, in uso fin dagli anni ’60;
non sono più veloci di server potenti, ma solitamente hanno più capacitàdi I/O e sono dotate di grandi insiemi di dischi
sono macchine estremamente costose, che vengono spesso mantenuteper via dell’ingente investimento esistente in termini di software, dati,procedure operative e personale.
Tassonomia dei calcolatori /6
Supercomputer
hanno CPU velocissime, molti gigabyte di memoria centrale,
dischi e reti molto veloci.
Recentemente molti supercomputer sono diventati
macchine altamente parallele non molto diverse dai COW,
ma con componenti più veloci e più numerosi.
I supercomputer vengono utilizzati per risolvere problemi di
calcolo molto complicati in campi scientifici e ingegneristici:
simulazione di uno scontro fra galassie,
sintesi di nuovi farmaci,
modelli del comportamento dell’aria attorno alle ali di un aereo.
Il concetto di macchina astratta
58
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
… come una cipolla
59
Mettendo assieme le cose…
60
I programmi che non sono in esecuzione sono
memorizzati nella memoria secondaria
RAM DiskCPUCache
Bus
SOApp
Software: SO (Sistema Operativo)
61
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 ognidispositivo 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 SOApp
Lanciare un programma
62
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
Esecuzione
63
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