Concetti Introduttivi
Architettura del Computer
http://www.dia.uniroma3.it/~roselli [email protected]
Hardware
• 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
Hardware
• 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 eseguiti dall’hardware
Architettura
Dispositivi di uscita (audio, video, ...)
Dispositivi di ingresso (mouse, tastiera, ...)
Architettura
Dispositivi di uscita (audio, video, ...)
Dispositivi di ingresso (mouse, tastiera, ...)
Memoria di massa (DVD, penne USB, ...)
Architettura
Memoria RAM
Dispositivi ausiliari (batterie, ...)
Processore (detto anche CPU)
Memoria di massa (hard disk, SSD, ...)
Architettura
Memoria RAM
Dispositivi ausiliari (batterie, ...)
Processore
Memoria di massa
Dispositivi di ingresso
Architettura di Von Neumann
• Architettura Interna
• Architettura dei componenti dell’unità centrale
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)
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
Processore
• CPU (Central Processing Unit)
• È il circuito elettronico integrato che effettua calcoli
Intel Core2 Duo @ 2.13 GHz
Processore
• CPU (Central Processing Unit)
• È il circuito elettronico integrato che effettua calcoli
• Responsabile di tutte le operazioni
Intel Core2 Duo @ 2.13 GHz
Processore
• CPU (Central Processing Unit)
• È il circuito elettronico integrato che effettua calcoli
• Responsabile di tutte le operazioni
• Legge e scrive dati dalla memoria RAM
Intel Core2 Duo @ 2.13 GHz
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 Intel Core2 Duo @ 2.13 GHz
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
Via Technologies Southbridge
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
Via Technologies Southbridge
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
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
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)
Architettura di Von Neumann
• La CPU acquisisce dati dalle periferiche (e.g., di ingresso, memoria di massa)
• Li memorizza nella memoria 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
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
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
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
Architettura di Von Neumann: Esempio
• Esempio: elaborazione di un documento
• Il documento è salvato su disco
• Viene aperto il file e caricato nella RAM
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
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
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
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)
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)
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 65535 = 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
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
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
• Ogni registro ha un suo indirizzo
Struttura della RAM
• Bit organizzati in registri
• Registro è a 16, 32 o 64 bit
• Ogni registro ha un suo indirizzo
• Esempio:
• 64MByte di RAM
• ca. 64 milioni di byte
• ca.16 milioni di registri da 32 bit (224 registri)
Struttura della RAM
• Bit organizzati in registri
• Registro è a 16, 32 o 64 bit
• Ogni registro ha un suo indirizzo
• Esempio:
• 64MByte di RAM
• ca. 64 milioni di byte
• ca.16 milioni di registri da 32 bit (224 registri)
...
...
...
...
...
012
2^24-1
bit 0bit 31
Struttura della RAM
• Bit organizzati in registri
• Registro è a 16, 32 o 64 bit
• Ogni registro ha un suo indirizzo
• Esempio:
• 64MByte di RAM
• ca. 64 milioni di byte
• ca.16 milioni di registri da 32 bit (224 registri)
...
...
...
...
...
012
2^24-1
bit 0bit 31
Struttura della RAM
• Bit organizzati in registri
• Registro è a 16, 32 o 64 bit
• Ogni registro ha un suo indirizzo
• Esempio:
• 64MByte di RAM
• ca. 64 milioni di byte
• ca.16 milioni di registri da 32 bit (224 registri)
...
...
...
...
...
012
2^24-1
bit 0bit 31
Rappresentazione delle Informazioni
• Tutte le informazioni sono rappresentate attraverso sequenze di bit
• Numero -57 su 16 bit è 1111111111000111
• Carattere ‘A’ su 8 bit è 10000001
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
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
• 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
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
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.0 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)
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
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
Rappresentazione dei Caratteri
• Codice ASCII (American Standard Code for Information Interchange) a 7 bit
• Ad ogni carattere è associato un numero tra 0 e 27 = 127
Rappresentazione dei Caratteri
• Codice ASCII (American Standard Code for Information Interchange) a 7 bit
• Ad ogni carattere è associato un numero tra 0 e 27 = 127
• Nota bene: le cifre (0, 1, ..., 9) ed i caratteri speciali (es: +) sono caratteri
Carattere Valore numerico Valore in binarioA 65 10000010 48 0011000
Rappresentazione dei Caratteri
• Limiti del codice ASCII a 7 bit
• Numero di caratteri rappresentabili molto basso (non include lettere accentate)
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
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, devangari, cirillico, etc.
Memorie
• La RAM è volatile, non mantiene i dati in assenza di tensione elettrica
• La dimensione è ridotta, nell’ordine dei GB (1-20 GB)
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)
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)
Hardware
Software di base