Informatica Lezione 4 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008 Operazioni su numeri binari • Vediamo solo il caso della addizione nella codifica binaria: – Si mettono in colonna i numeri da sommare – Si calcola il riporto ogni volta che la somma parziale supera il valore 1 • Addizione: 0+0=0 0+1=1 1+0=1 1+1=0 con riporto 0 con riporto 0 con riporto 0 con riporto 1 Operazioni su numeri binari • Addizione: 0+0=0 0+1=1 1+0=1 1+1=0 con riporto 0 con riporto 0 con riporto 0 con riporto 1 • Esempi: 1+ 1= 10 101+ 11= 1000 10110101+ 1000110= 11111011 111+ 11= 1010 Codici a lunghezza fissa • Se si usa un numero prestabilito di cifre si ha un codice a lunghezza fissa – Normalmente i computer usano 32 o 64 bit per rappresentare i numeri • In questo modo si pone anche un limite al numero massimo rappresentabile • Esempio: qual è il numero più grande rappresentabile con 4 cifre? – – – – In base 10: In base 2: In base 16: In base 8: 9999 1111 FFFF 7777 (=1510) (=6553510) (=409510) Codici a lunghezza fissa • Numeri maggiori di quello massimo rappresentabile causano problemi di overflow – Ovvero per essere rappresentati richiedono più cifre di quelle a disposizione • Esempio: 4 cifre – – – – In base 10: In base 2: In base 16: In base 8: 9999 + 1 1111 + 1 FFFF + 1 7777 + 1 = 1000010 = 100002 (=1610) = 1000016 (=6553610) = 100008 (=409610) Codici a lunghezza fissa • In generale, con N cifre a disposizione e base b il più grande numero (intero positivo) rappresentabile si può esprimere come bN – 1 • Esempio: N=4 – – – – In base 10: In base 2: In base 16: In base 8: 9999 1111 FFFF 7777 = 104 - 1 = 24 - 1 = 164 - 1 = 84 - 1 Codici a lunghezza fissa • Esempio di overflow nel sistema binario dovuto a operazioni aritmetiche: – 5 + 4 = 9 (in sistema decimale) – Abbiamo usato solo un cifre decimale per il risulto • Ricordiamo: 510 = 1012 101+ 100= 1001 (in sistema binario) , 410 = 1002 Errore: overflow (non può essere codificato 910 = 10012 con tre bit) Codifica dei numeri • Codificare il numero 13210 nella corrispondente rappresentazione binaria • Ordinare in modo crescente i seguenti numeri: – – – – – 10410 128 100112 1000100002 1001110 Rappresentazione dei numeri • In realtà, una semplice codifica binaria come quella discussa fino ad ora non è sufficiente, per due motivi: – Numeri negativi – Numeri con la virgola • Per questi numeri vengono utilizzate delle rappresentazioni differenti – Per esempio “complemento a due” per rappresentare i numeri negativi 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