Sei sulla pagina 1di 27

Concetti Introduttivi

Architettura del Computer

http://plm.dia.uniroma3.it/milicchio/
milicchio@dia.uniroma3.it
@fmilicchio

Introduzione
Obiettivo: lo studio della programmazione dei calcolatori elettronici

Ovvero: scrivere programmi per risolvere problemi di calcolo

Prerequisiti

Architettura del calcolatore

Rappresentazione delle informazioni

Introduzione
In questo corso ci occuperemo di software, ovvero applicazioni

E necessario per avere unidea dellhardware, ovvero dei dispositivi fisici


che compongono il computer

Il software, eettivamente, specifica operazioni che vengono eseguiti


dallhardware

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 dellunit centrale

Architettura di Von Neumann ideata dal matematico e fisico John Von


Neumann

Larchitettura 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 eettua


calcoli

Responsabile di tutte le operazioni

Legge e scrive dati dalla memoria RAM

Eettua 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 linterfaccia attraverso il


bus di sistema

Linterfaccia 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 eettua 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 eettuate 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 della 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 = 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

Lutente ha limpressione 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 = 127

Nota bene: le cifre (0, 1, ..., 9) ed i caratteri speciali (es: +) sono caratteri

Carattere

Valore numerico

Valore in binario

65

1000001

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 doggi codice UNICODE (16 bit o superiore) prevede alfabeti non
occidentali, e.g., arabo, giapponese, devangari, cirillico, etc.

Extended ASCII

Memorie
La RAM volatile, non mantiene i dati in assenza di tensione elettrica

La dimensione ridotta, nellordine 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