123
Concetti Introduttivi Architettura del Computer http://www.dia.uniroma3.it/~roselli [email protected]

Architettura del Computer - Roma Tre University

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Concetti Introduttivi

Architettura del Computer

http://www.dia.uniroma3.it/~roselli [email protected]

Hardware

Hardware

• In questo corso ci occuperemo di software, ovvero applicazioni

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

Architettura

Dispositivi di uscita (audio, video, ...)

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

Architettura

Memoria RAM

Architettura

Memoria RAM

Dispositivi ausiliari (batterie, ...)

Architettura

Memoria RAM

Dispositivi ausiliari (batterie, ...)

Processore (detto anche CPU)

Architettura

Memoria RAM

Dispositivi ausiliari (batterie, ...)

Processore (detto anche CPU)

Memoria di massa (hard disk, SSD, ...)

Architettura

Architettura

Memoria RAM

Architettura

Memoria RAM

Dispositivi ausiliari (batterie, ...)

Architettura

Memoria RAM

Dispositivi ausiliari (batterie, ...)

Processore

Architettura

Memoria RAM

Dispositivi ausiliari (batterie, ...)

Processore

Memoria di massa

Architettura

Memoria RAM

Dispositivi ausiliari (batterie, ...)

Processore

Memoria di massa

Dispositivi di ingresso

Architettura di Von Neumann

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

Architettura di Von Neumann

Architettura di Von Neumann

RAM

Architettura di Von Neumann

RAM CPU

Architettura di Von Neumann

RAM CPU Output

Architettura di Von Neumann

RAM CPU Output Input

Architettura di Von Neumann

Bus di sistema

RAM CPU Output Input

Processore

Intel Core2 Duo @ 2.13 GHz

Processore

• CPU (Central Processing Unit)

Intel Core2 Duo @ 2.13 GHz

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

Via Technologies Southbridge

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

Memoria RAM

• Random Access Memory

Memoria RAM

• Random Access Memory

• Memoria di lavoro per la CPU

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

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

Architettura di Von Neumann: Esempio

• Esempio: elaborazione di un documento

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

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

Rappresentazione Binaria

• Con un bit

• due valori (0 e 1)

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

Unità di Misura

• Bit, valore 0, 1

Unità di Misura

• Bit, valore 0, 1

• Byte: 8 bit (unità convenzionale di riferimento)

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

Struttura della RAM

• Bit organizzati in registri

Struttura della RAM

• Bit organizzati in registri

• Registro è a 16, 32 o 64 bit

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

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

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

• 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

• Rappresentazione dei numeri reali

• Codifica in virgola mobile

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

Considerazioni

• Numeri di tipo diverso vengono rappresentati in modo completamente diverso

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

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

Rappresentazione dei Caratteri

• Limiti del codice ASCII a 7 bit

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.

Extended ASCII

Extended ASCII

Extended ASCII

Extended ASCII

Memorie

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

Hardware & Software

• Il software è un insieme di programmi eseguiti dal sistema hardware

Hardware

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

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)

Hardware

Software di base

Software applicativo