Informatica Lezione 4 Psicologia dello sviluppo e dell'educazione (laurea magistrale) Anno accademico: 2007-2008 Rappresentazione dei numeri • In realtà, una semplice codifica binaria come quella discussa fino ad ora non è sufficiente, per due motivi: – Numeri negativi – Numeri frazionari • Per questi numeri vengono utilizzate delle rappresentazioni differenti – Per esempio la notazione scientifica M x BE per i numeri frazionari • M è la mantissa, B è la base dell’esponente, ed E è l’esponente • Esempio in base 10: 5,75 = 0,575 x 102 • Stessa idea per la codifica binaria: rappresentare la mantissa e l’esponente nella rappresentazione binaria, B=2 – Per esempio “complemento a due” per rappresentare i numeri negativi Rappresentazione dei numeri negativi • Un approccio con dei problemi: si può pensare di usare un bit per il segno – “0” identifica “+” – “1” identifica “-” • Gli altri bit vengono usati per codificare il valore assoluto (modulo) del numero • Esempio con 3 bit: Numeri positivi e negativi [-22+1, 22-1] Solo numeri positivi [0, 23-1] -3 -2 -1 0 1 2 3 4 5 6 7 Rappresentazione dei numeri negativi • Con 3 bit avremo: 000 +0 001 +1 010 +2 011 +3 100 -0 101 -1 110 -2 111 -3 • Problemi: – Il numero 0 ha due rappresentazioni – Per l’operazione di somma si deve tener conto dei segni degli addendi 0010+ 1011= 1101 (+2) (-3) (-5 ERRATO) Rappresentazione dei numeri negativi • Complemento a due: – Il bit più significativo rappresenta il segno del numero: 0 per i numeri positivi e 1 per i numeri negativi – La rappresentazione di un numero positivo si ottiene codificando il valore assoluto del numero con i bit restanti – La rappresentazione di un numero negativo si ottiene in tre passi: • Si rappresenta in complemento a due il numeri positivo con lo stesso valore assoluto del numero negativo da codificare • Si invertono tutti i bit in tale rappresentazione (01,10) • Si somma uno al risultato ottenuto al passo precedente Complemento a due • Esempio (con 4 bit a disposizione): – La codifica di +5 è 0101 – La codifica del numero –5 avviene in tre passi: • La rappresentazione in complemento a due di +5 è 0101 • Invertendo tutti i bit si ottiene 1010 • Sommando 1 si ottiene 1011, la rappresentazione in complemento a due di -5 Complemento a due • Vice versa - per ottenere un numero con segno data la sua rappresentazione in complemento a due: – Se il primo bit è 0 il numero è positivo: per calcolarne il valore assoluto si esegue la conversione da binario a decimale – Se il primo bit è 1 il numero è negativo: • • • • Si ignora il primo bit Si invertono i restanti bit Si converte il numero da binario a decimale Si somma uno al numero ottenuto per ottenere il valore assoluto del numero negativo Complemento a due • Esempio: 1011 – – – – Si esclude il primo bit Invertendo 011 si ottiene 100 che è codifica di 4 Va aggiunto 1 per ottenere il valore assoluto 5 Il risultato è quindi -5 Complemento a due 3 bit: 4 bit: 0000 +0 0001 +1 0010 +2 0011 +3 0100 +4 0101 +5 0110 +6 000 +0 001 +1 010 +2 011 +3 0111 +7 100 -4 1000 -8 1001 -7 101 -3 1010 -6 110 -2 1011 -5 1100 -4 111 -1 1101 -3 1110 -2 1111 -1 • Esempi di addizione: 0010+ 1011= 1101 (+2) (-5) (-3) 0111+ 1011= 0010 (+7) (-5) (+2) Nel secondo esempio, l’overflow è ignorato Complemento a due • Codificare il numero negativo –1210 nella rappresentazione in complemento a due Codifica dell’informazione bit 1 cifra binaria memorizza 0 oppure 1 byte 8 bit memorizza un carattere parola da 16 a 64 bit numeri e indirizzi di memoria Kilobyte (KB) 1024 byte circa mezza pagina di testo Megabyte (MB) 1024 KB un libro di 200 pagine Gigabyte (GB) 1024 MB alcuni volumi Terabyte (TB) 1024 GB una biblioteca Petabyte (PB) 1024 TB molte biblioteche Architettura dei computer Processore Memoria principale Unità centrale Stampante Periferiche del calcolatore Tastiera e monitor Memoria secondaria Periferiche di input/output Architettura dei computer • Un computer deve: – elaborare l’informazione – memorizzare l’informazione – fare l’input/output dell’informazione • Per ogni funzione di base si possono prendere in considerazione i componenti in grado di svolgerla Architettura dei computer • Un computer deve: – elaborare l’informazione • usando il processore (Central Processing Unit CPU) – memorizzare l’informazione • usando la memoria principale (RAM) • usando la memoria secondaria – fare l’input/output dell’informazione • usando i dispositivi di input/output Architettura dei computer • Un computer deve: – elaborare l’informazione • usando il processore (Central Processing Unit CPU) – memorizzare l’informazione • usando la memoria principale (RAM) • usando la memoria secondaria – fare l’input/output dell’informazione • usando i dispositivi di input/output Componenti principali di un computer Processore Memoria principale Unità centrale Stampante Periferiche del calcolatore Tasteria e monitor Memoria secondaria Periferiche di input/output Componenti principali di un computer Processore Insieme al processore forma l’Unità Centrale di un elaboratore 0 1 2 3 4 5 Memoria principale Unità centrale Sequenza di celle – Ad ogni cella è associato un indirizzo (un numero progressivo a partire da 0) Conserva i programmi e i dati usati dal processore N Memoria principale (RAM) • Perché si chiama RAM (Random Access Memory)? – Si può accedere direttamente alle varie celle, una volta noto il loro indirizzo – Il tempo necessario per accedere ad una cella è lo stesso, indipendentemente dalla posizione della cella nella sequenza – Il termine “random” (casuale) indica proprio il fatto che non vi sono differenze nell’accesso alle varie celle della memoria (il computer può accedere in qualsiasi momento a qualsiasi locazione) Memoria principale (RAM) • Alcune proprietà della memoria principale – Volatile: è fatta di componenti elettronici, togliendo l’alimentazione si perde tutto – (Relativamente) costosa (costo per bit) • Dalla lezione 1: i costi sono in diminuzione –… Memoria principale (RAM) • Alcune proprietà della memoria principale –… – Veloce: per leggere/scrivere una cella ci vuole un tempo di accesso dell’ordine di poche decine di nanosecondi (millesimi di milionesimi di secondo = 10-9 sec.) • Tempo di accesso: il tempo tra – Il momento in cui il processore specifica l’indirizzo della cella sui cui vuole operare e dà il comando di lettura/scrittura – Il momento in cui l’operazione è terminata (il dato letto e disponibile oppure il dato scritto è in memoria) Memoria principale (RAM) • Tutte le celle hanno la stessa dimensione: 8, 16, 32, o 64 bit • Le operazioni che si eseguono sulla memoria sono operazioni di lettura e scrittura • Una cella può contenere (parte di) un dato o un’istruzione Contenuto (in questo esempio, 8 bit) Indirizzi 0 1 2 3 4 5 N Memoria principale (RAM) • Ogni calcolatore usa un numero di bit costante per rappresentare gli indirizzi • Maggiore è il numero di bit usati, maggiore sarà il numero di celle indirizzabili: spazio di indirizzamento – Se si usano 16 bit per codificare gli indirizzi, si potranno indirizzare fino a 65.536 celle (circa 64 KB di memoria, nell’ipotesi di celle di memoria di 1 byte) – Con 32 bit si potranno indirizzare fino a 4.294.967.296 celle (circa 4 GB di memoria) Memoria principale (RAM) • Le unità di misura della memoria RAM variano a seconda del tipo di calcolatore e vengono espresse in MB o GB • Nei PC generalmente si va dai 128MB ai 4 GB • La RAM, fino ad un certo limite, è espandibile (slot di espansione) L’Unità centrale: altri tipi di memoria • Memoria di sola lettura (ROM) – – – – Non può essere modificata A differenza della RAM non è volatile Veloce quasi come la RAM Contiene le informazioni di inizializzazione usate ogni volta che si accende l’elaboratore (bootstrap) L’Unità centrale: altri tipi di memoria • Memoria cache – Livello di memoria intermedio tra i registri e la RAM • Memorizza i dati usati più spesso senza doverli recuperare tutte le volte dalla RAM (che è più lenta) • Influisce moltissimo sulle prestazioni e sul costo della CPU (e quindi del computer) – È molto più costosa della RAM – In genere è interna al processore (cache L1), ma esiste anche una cache secondaria (L2) esterna al processore – Le sue dimensione tipiche vanno dai 256KB a 1MB L’Unità centrale: altri tipi di memoria • Buffer – Piccole parti di RAM con funzioni di memoria temporanea – Usati per il passaggio delle informazioni da un programma o dispositivo ad un altro – In Windows si parla di Clipboard, memoria temporanea usata per esempio per le operazioni di Copia e Incolla 1 2 3 4 5 Foglio elettronico Clipboard (buffer) Programma di videoscrittura Famiglie di memoria • SRAM (RAM statiche): – Costi elevati – Tempi di accesso ridotti – Normalmente usate per la memoria cache • DRAM (RAM dinamiche): – Tempi di accesso più della SRAM (40-60 nanosecondi) – Normalmente usate per la memoria principale – SDRAM: DRAM sincrono, un clock (che ha una frequenza misurata in MHz) sincronizza l’accesso alla memoria – DDR: Double Data Rate, raddoppia la velocità di trasferimento di dati tra la memoria e il processore • VRAM (RAM video): usate per la gestione delle immagini