Concetti introduttivi: architettura del computer

annuncio pubblicitario
Concetti Introduttivi
Architettura del Computer
http://www.dia.uniroma3.it/~roselli/
[email protected]
Credits
• Materiale a cura del Prof. Franco Milicchio
Introduzione
• In questo corso ci occuperemo di software, ovvero applicazioni
• E’ necessario però avere un’idea dell’hardware, ovvero dei dispositivi fisici
che compongono il computer
• Il software, effettivamente, specifica operazioni che vengono eseguite
dall’hardware
Architettura
Dispositivi di uscita
(audio, video, ...)
Dispositivi di ingresso
(mouse, tastiera, ...)
Memoria di massa
(DVD, penne USB, ...)
Architettura
Memoria RAM
Memoria di massa
(hard disk, SSD, ...)
Processore
(detto anche CPU)
Dispositivi ausiliari
(batterie, ...)
Architettura
Memoria RAM
Dispositivi di
ingresso
Memoria di
massa
Processore
Dispositivi ausiliari
(batterie, ...)
Architettura di Von Neumann
• Architettura Interna
• Architettura dei componenti dell’unità centrale • Architettura di “Von Neumann” ideata dal matematico e fisico John Von
Neumann
• L’architettura di tutti i calcolatori moderni (dagli anni ’50 ad oggi)
• Tre componenti fondamentali: processore, memoria RAM, e interfacce
delle periferiche
Architettura di Von Neumann
Bus di sistema
RAM
CPU
Output
Input
Processore
• CPU (Central Processing Unit)
• È il circuito elettronico integrato che effettua
calcoli
• Responsabile di tutte le operazioni
• Legge e scrive dati dalla memoria RAM
• Effettua operazioni aritmetiche
• È in grado di pilotare le periferiche
Intel Core2 Duo
@ 2.13 GHz
Interfacce verso Periferiche
• Circuiti a cui sono connesse le periferiche
• Memorie di massa
• Dispositivi di ingresso/uscita
• Il processore comanda l’interfaccia attraverso il
bus di sistema
• L’interfaccia si occupa di gestire la
comunicazione con la periferica
Via Technologies
Southbridge
Memoria RAM
• Random Access Memory
• Memoria di lavoro per la CPU
• Circuito elettronico capace di mantenere uno
stato (i.e., dati) in presenza di alimentazione
• Memorizza lo stato di segnali elettrici
• Volatile: perde lo stato in assenza di tensione
• Attenzione: le elaborazioni del processore
avvengono esclusivamente su dati nella RAM
Architettura di Von Neumann
• La CPU acquisisce dati dalle periferiche (e.g., di ingresso, memoria di massa)
• Li memorizza nella memoria RAM
• Accede alla RAM ed effettua operazioni
• Scrive i risultati nella RAM
• Invia i risultati alle periferiche di uscita
• Trasferisce i dati permanentemente sulle memorie di massa
Architettura di Von Neumann: Esempio
• Esempio: elaborazione di un documento
• Il documento è salvato su disco
• Viene aperto il file e caricato nella RAM
• Vengono effettuate modifiche
• Il contenuto della RAM e quello del disco sono ora disallineati
• Al termine delle modifiche è necessario salvare la nuova versione sul disco
Memoria RAM: Funzionamento
• Composta di numerosi circuiti (a celle)
• Ogni cella è capace di memorizzare un bit di
informazione
• Bit (“Binary Digit”)
• unità di memorizzazione per il calcolatore
• può valere 1, oppure 0
• facilmente rappresentabile con un segnale
elettrico
Rappresentazione Binaria
• Con un bit
• due valori (0 e 1)
• Con due bit
• quattro valori (00, 01, 10, 11)
• Con tre bit
• otto valori (000, 001, 010, ..., 110, 111)
• Con n bit 2n valori (e.g., 16 bit rappresenta al massimo 65536 valori: 0…216-1)
Unità di Misura
• Bit, valore 0, 1
• Byte: 8 bit (unità convenzionale di riferimento)
• KiloByte: 1024 byte (1024 byte)
• 1024 ∙ 8 bit = 8192 bit
• MegaByte: 1024 KiloByte (1 milione di byte ca.)
• circa 8 milioni di bit
• GigaByte: 1024 MegaByte (1 miliardo di byte ca.)
Struttura della RAM
• Bit organizzati in registri • Registro è a 16, 32 o 64 bit
bit 0
bit 31
0
1
2
...
...
...
• Ogni registro ha un suo indirizzo
• Esempio:
...
• 64MByte di RAM
• ca. 64 milioni di byte
2^24-1
• ca.16 milioni di registri da 32 bit (224 registri)
...
Rappresentazione delle Informazioni
• Tutte le informazioni sono rappresentate attraverso sequenze di bit
• Numero -57 su 16 bit è 1111111111000111
• Carattere ‘A’ su 8 bit è 10000001
• Opportune codifiche per rappresentare strutture dati più complesse
Rappresentazione delle Informazioni
• Una codifica (o codice) è un insieme di regole per rappresentare oggetti con
altri oggetti
• In questo caso: lettere, numeri, immagini, attraverso sequenze di bit
• Interazione con il calcolatore
• L’utente ha l’impressione di lavorare con oggetti familiari (e.g., parole, cifre)
• Rappresentazione interna in forma di bit
Rappresentazione dei Numeri
• Rappresentazione dei numeri interi positivi
• Rappresentazione posizionale in base 2
• Semplice (simile a quella dei numeri decimali): ogni bit è una cifra
• Rappresentazione dei numeri interi relativi
• Codifica in “complemento a 2”
• Regole complesse
Rappresentazione dei Numeri
• Rappresentazione dei numeri reali
• Codifica in virgola mobile
• Il numero viene rappresentato attraverso due altri numeri: mantissa ed
esponente
• N = m 2e, con 1/2 ≤ m < 1
• es: 2048 = 1 ∙ 211 = 1/2 ∙ 212
• 2048 viene rappresentato mettendo assieme la rappresentazione di 1/2,
ovvero (0.1)2, e la rappresentazione di 12, ovvero (1100)2
Considerazioni
• Numeri di tipo diverso vengono rappresentati in modo completamente
diverso
• La rappresentazione in virgola mobile è esponenziale (i valori crescono
rapidamente)
• La maggioranza dei numeri reali non possono essere rappresentati in modo
esatto
• La precisione dei numeri reali rappresentati è maggiore per numeri piccoli, e
bassa per numeri (in valore assoluto) grandi
Rappresentazione dei Caratteri
• Codice ASCII (American Standard Code for Information Interchange) a 7 bit
• Ad ogni carattere è associato un numero tra 0 e 27-1=> 128 valori
• Nota bene: le cifre (0, 1, ..., 9) ed i caratteri speciali (es: +) sono caratteri
Carattere
Valore numerico
Valore in binario
A
65
1000001
0
48
0011000
Rappresentazione dei Caratteri
• Limiti del codice ASCII a 7 bit
• Numero di caratteri rappresentabili molto basso (non include lettere
accentate)
• Codice ASCII a 8 bit, o Extended ASCII
• Ad ogni carattere è associato un numero tra 0 e 255
• Caratteri rappresentabili degli alfabeti occidentali
• Al giorno d’oggi codice UNICODE (16 bit o superiore) prevede alfabeti non
occidentali, e.g., arabo, giapponese, devanagari, cirillico, etc.
Extended ASCII
Memorie
• La RAM è volatile, non mantiene i dati in assenza di tensione elettrica
• La dimensione è ridotta, nell’ordine dei GB (1-20 GB)
• La memoria di massa, al contrario, è persistente
• La dimensione è notevolmente superiore, arrivando ai TB (200 GB-2000 GB)
• La RAM è molto veloce (nanosecondi)
• La memoria di massa è lenta (millisecondi)
Hardware & Software
• Il software è un insieme di programmi eseguiti dal sistema hardware
• Software di base (sistema operativo, e.g., Windows, MacOS X, Linux)
• Software applicativo (e.g., Word, un browser, i programmi da voi scritti)
Software
Applicativo
Software
di Base
Hardware
Scarica