C ONCETTI BASE DEI CALCOLATORI
A RCHITETTURA DEL CALCOLATORE
Il calcolatore è uno strumento programmabile per la rappresentazione, la memorizzazione e
l'elaborazione delle informazioni. Esso è un sistema costituito da molte componenti.
Usiamo due modi per descrivere il calcolatore:
1. Elencare le componenti funzionali del calcolatore, esse sono delle macro-unità, ognuna
specializzata in una tipologia omogenea di funzionalità. Tali componenti sono:
ELABORAZIONE PROCESSORE
CONTROLLO
MEMORIZZAZIONE MEMORIA
TRASFERIMENTO SCAMBIO DI DATI ALL'INTERNO DEL CALCOLATORE
SCAMBIO DI DATI CON L'UTENTE
“Controllo” e “scambio di dati con l’utente” servono a compiere lo scambio tra il pc e l’esterno
(ad esempio lo scanner o la stampante)
2. Rappresentarlo tramite la macchina di Von Neumann (architettura general purpose),
egli progettò, intorno al 1945, il primo calcolatore con programmi memorizzabili anziché
codificati mediante cavi e interruttori.
La macchina di Von Neumann è
caratterizzata da un’ipotesi
fondamentale: i dati e le istruzioni
che operano sui calcolatori possono
essere codificati in uno stesso
formato, così che un unico
dispositivo può essere impiegato per
memorizzare entrambi.
Secondo questa idea un calcolatore
general purpose è costituito da tre sottosistemi interconnessi:
Sottosistema di elaborazione;
Sottosistema di memorizzazione;
Sottosistema di interfaccia.
Sottosistema di memorizzazione: può contenere indifferentemente istruzioni e dati;
perciò, conserva i dati da elaborare e i risultati ottenuti dall’elaborazione.
Sottosistema di elaborazione: viene chiamato “unità centrale di elaborazione” (Central
Processing Unit, CPU). Esso opera sequenzialmente leggendo dalla memoria un’istruzione
e gli eventuali dati su cui l’istruzione deve operare, eseguendo tale istruzione, scrivendo
se necessario in memoria il risultato dell’esecuzione, passando poi all’istruzione
successiva e proseguendo in questo modo fino a che tutte le istruzioni che costituiscono il
programma non sono state eseguite.
Sottosistema di interfaccia: rende possibile agli utenti
l’input dei programmi e dei dati verso il calcolatore, mediante
dispositivi quali tastiere, mouse, microfoni e videocamere
mentre al calcolatore rende possibile l’output dei risultati
dell’elaborazione verso gli utenti, mediante dispositivi quali
monitori, stampanti e altoparlanti.
N.B.: input e output non appartengono alla macchina di Von
Neumann, sono componenti fisiche chiamate anche
periferiche.
È grazie al sottosistema di interfaccia che si ha la possibilità di
trasmettere informazioni agli altri calcolatori e di ricevere
rete di telecomunicazione
informazione da essi, grazie a quella che oggi chiamiamo . In
poche parole, tale sottosistema permette al calcolatore di ricevere informazioni
sensori attuatori
dall’esterno tramite e di operare sull’ambiente tramite .
BUS: consente ai dati di transitare fra le diverse componenti del calcolatore.
U ( )
NITÀ CENTRALE DI ELABORAZIONE CPU
È realizzata fisicamente con tecnologie microelettroniche chiamate anche microprocessori.
I micropocessori sono dispositivi elettronici estremamente complessi (oltre 42 milioni di
transistor in un singolo circuito integrato)
Presiede al controllo ed al coordinamento tra le parti del calcolatore.
Ogni componente del calcolatore esegue solo le azioni che gli vengono richieste dalla
CPU
Il controllo consiste nel coordinamento dell’esecuzione temporale delle operazioni.
Presiede all’elaborazione dati.
OPERAZIONI ARITMETICHE
OPERAZIONI RELAZIONALI (confronto tra dati)
Operazioni di livello macchina
OPERAZIONI SU CARATTERI E VALORI DI VERITÀ
ALTRE OPERAZIONI NUMERICHE
Le operazioni elementari di elaborazione corrispondono ad istruzioni del linguaggio macchina.
Ogni CPU è caratterizzata funzionalmente dal suo linguaggio macchina, svolge poche tipologie
di operazioni elementari ma in modo efficiente.
Dal punto di vista logico è costituita da:
- Registri
- Unità Aritmetico – ALU: è l’unità di calcolo
Logica (operazioni di tipo aritmetico e
- Unità di controllo logico), legge i valori presenti in
alcuni registri, esegue le
operazioni e memorizza il
risultato in un altro registro.
L’unità di controllo del microprocessore coordina
le varie unità nell’esecuzione dei
programmi, cioè nella lettura, codifica ed
esecuzione. Un programma è eseguito
fetch-decode-excute
ripetendo il ciclo (lettura-decodifica-esecuzione) chiamato anche ciclo
macchina. Tale ciclo rappresenta il tempo che impiega il processore a leggere, decodificare ed
eseguire un’operazione. Più veloce è la macchina nel completare il ciclo, migliore sarà il
processore.
Fetch: acquisizione dalla memoria di un’istruzione del programma
Decode: identifica del tipo di istruzione tra l’insieme delle istruzioni
Execute: effettuazione delle operazioni corrispondenti all’istruzione compreso il
recupero della memoria degli operandi.
PARAMETRI DEI MICROPROCESSORI
Numero di bit
Cache di primo livello
CPU 8088 8 bit
Integrata nello stesso chip della
CPU 286 16 bit
CPU
Vantaggi: velocità del clock
CPU 386, 486, Pentium 32 bit
uguale a quella del resto della
CPU Xeon, Athlon 64 bit
CPU, tecnologia all’avanguardia
Velocità del clock (orologio interno alla
Cache di secondo livello
macchina, indica il tempo di completamento del ciclo macchina)
Costo parecchio elevato
Prima pochi MHz
Integrata sullo stesso chip dai
Oggi da 600 MHZ fino a superare i 3 GHz
Pentium II
Assente in alcuni Pentium
Celeron
Istruzioni MMX (MultiMedia eXtension)
CONFRONTO
Frequenza: in GHz, è la velocità alla quale opera il chip, quindi più alta è più veloce è.
Le CPU variano la frequenza in base all’operazione da svolgere e alla temperatura.
Avremo perciò una frequenza di base (ovvero la minima) e una turbo (massima)
Core: misura della potenza, ovvero i “processori dentro al processore”. Le CPU moderne
offrono tra 2 a 32 core, solitamente tra 4 e 8.
Thread: il numero di processi indipendenti che un chip può gestire alla volta. In teoria
dovrebbe essere presente nella stessa quantità dei core. Più thread significa miglior
multitasking e prestazioni migliorate con i software che sfruttano i thread come gli
editor e i transcoder video.
TDP: il Thermal Design Power è la quantità massima di calore che un chip genera, ed è
misurata in Watt (W). Un TDP migliore coincide con migliori prestazioni.
Cache: utilizzata per velocizzare l’accesso ai dati e le istruzioni tra la CPU e la RAM
IPC: nonostante si abbiano 2 CPU, se esse arrivano da diverse aziende o sono costruite
su diverse architetture produrranno un IPC (istruzione per ciclo di clock) diverso.
DISPOSITIVI DI INPUT
DISPOSITIVI DI OUTPUT BUS
L’obiettivo è permettere lo scambio di informazioni tra le varie componenti funzionali del
calcolatore, ovvero il trasferimento dei dati e delle informazioni di controllo tramite due
possibili soluzioni:
Collegare ciascun componente con ogni altro componente
Collegare tutti i componenti a un unico canale (bus)
Perché si utilizza il bus? Elenchiamone le caratteristiche:
Semplicità: permette di avere un’unica linea di
connessione e di conseguenza costi ridotti di
produzione
Estendibilità: aggiunta di nuovi dispositivi
molto semplice
Standardizzabilità: regole per la comunicazione
da parte di dispositivi diversi
Lentezza: utilizzo in mutua esclusione del bus
Sovraccarico del processore (CPU): funge da
master sul controllo del bus
Limitata capacità
Il bus di sistema interconnette CPU, memorie ed interfacce verso dispositivi periferici, collega
due unità funzionali alla volta (una trasmette e l’altra riceve)
Il bus trasporta i dati, indirizzi e comandi. Componenti del bus (sottogruppi di linee):
Bus dati (data bus)
Serve per trasferire dati
- Tra la macchina centrale ed il registro dati della CPU
- Tra periferiche e CPU (o memoria centrale)
Bidirezionale
Bus indirizzi (address bus)
Serve per trasmettere il contenuto del registro indirizzi (MAR) alla memoria (o ad una
periferica)
- Identifica l’ID nella cella in memoria su cui la CPU scrive o legge
Unidirezionale
Bus comandi (command bus) o di controllo
Serve coordinare il sistema
- Direzione di scambio
- Selezionare le unità coinvolte
Unidirezionale
MEMORIA
Nell’architettura di Von Neumann l’unità di memoria ha il compito di archiviare in forma
digitale i programmi e i dati su cui opera la CPU, per il tempo di elaborazione. Nei calcolatori
attuali è inoltre da prevedere una memoria che mantenga dei dati per periodi di tempo lunghi,
fungendo da archivio digitale. Per consentire un’efficiente esecuzione dei programmi la
memoria che contiene dati e istruzioni dovrebbe essere veloce quanto la CPU e dovrebbe
avere dimensioni sufficienti a contenere sia il programma sia i dati.
Sarebbe poi comodo se la memoria potesse mantenere il suo contenuto anche in assenza di
alimentazione elettrica, cioè quando il calcolatore è spento.
Il compromesso tra le diverse esigenze si basa sulla suddivisione della memoria in due
categorie:
- Una memoria centrale, RAM, che 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 che mantengono tutti i dati ed i programmi in attesa di
essere eseguiti in modo persistente, anche dopo lo spegnimento del calcolatore.
PARAMETRI PER LA DESCRIZIONE DI UNA MEMORIA
Volatilità: le memorie volatili mantengono l’informazione finché vengono alimentate,
mentre in caso di spegnimento perdono il loro contenuto. Le memorie non volatili,
invece, mantengono l’informazione anche in assenza di alimentazione
Velocità di accesso: è in base ad essa che si calcola la rapidità della memoria di
svolgere operazioni di lettura/scrittura
Velocità di trasferimento dei dati: è la quantità di dati che la memoria riesce a trasferire
nell’unità di tempo
Capacità: è il numero di bit che si possono memorizzare e viene solitamente calcolato
in multipli di byte
Costo per bit: rapporto tra il costo dell’unità di memoria e la sua capacità espressa in
bit :
DIVERSE TECNOLOGIE
- Elettroniche: veloci, volatili, elevato costo per bit
- Magnetiche: lente, buona capacità, non volatili, basso costo
- Ottiche: simili alle magnetiche ma non riscrivibili
- Magneto/ottiche: simili alle ottiche ma riscrivibili, con veloci tempi di scrittura
La memoria centrale (o principale) è la memoria che può essere acceduta direttamente dal
processore.
È costituita da celle ognuna delle quali può contenere una quantità fissata di memoria
(numero di bit), detta parola di memoria. Ogni cella è caratterizzata da un indirizzo (che
identifica la cella e ne consente l’accesso) e un valore (sequenza di bit memorizzata dalla
cella)
( ):
RAM RANDOM ACCESS MEMORY
Memorizza i programmi in esecuzione e i dati dei programmi in
esecuzione, viene cancellata ogni volta che si spegne il
computer.
Tutte le informazioni vengono rappresentate mediante sequenze
di 0 e di 1, i bit (BInary digiT). I bit tra RAM e CPU fluiscono a
gruppi di 8 per esigenze di tipo logico-costruttive. Un’altra unità
di misura è il byte (pari a 8 bit), viene definita come la più
piccola unità accessibile singolarmente. Le memorie ROM (read only memory):
Le memorie RAM (random access memory): Permettono solo la lettura dei dati
o
Possono essere accedute sia in
o Sono persistenti
o
lettura che in scrittura Memorizzano alcuni programmi di
o sistema (firmware)
Tecnologia a semiconduttori
o
Sono volatili (i dati memorizzati vengono persi allo spegnimento del calcolatore)
o Sono usate per memorizzare dati e programmi
o Tecnologia a semiconduttori
o
MEMORIA CACHE
Memoria particolarmente veloce usata per memorizzare i dati usati più frequentemente.
Memorizza il contenuto di celle della memoria centrale che potrebbero essere acceduti
nuovamente dalla CPU.
Strategia di utilizzo:
- La prima volta che la CPU carica dati dalla memoria centrale, questi sono caricati anche
sulla cache
- Le volte
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Fondamenti di informatica 1
-
Appunti Fondamenti di informatica (Prima parte)
-
Prima parte teoria Fondamenti di informatica
-
Metà appunti di Fondamenti di informatica