Concetti Introduttivi Architettura del Computer http://www.dia.uniroma3.it/~roselli/ roselli@dia.uniroma3.it
Credits Materiale a cura del Prof. Franco Milicchio
Introduzione 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 eseguite dall hardware
Architettura Dispositivi di uscita (audio, video,...) Dispositivi di ingresso (mouse, tastiera,...) Memoria di massa (DVD, penne USB,...)
Architettura Memoria RAM Processore (detto anche CPU) Memoria di massa (hard disk, SSD,...) 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 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 Bus di sistema RAM CPU Output Input
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 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 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 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 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 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 2 n valori (e.g., 16 bit rappresenta al massimo 65536 valori: 0 2 16-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 bit 31... bit 0 Registro è a 16, 32 o 64 bit 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 (2 24 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 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 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 2 e, con 1 /2 m < 1 es: 2048 = 1 2 11 = 1 /2 2 12 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 2 7-1=> 128 valori Nota bene: le cifre (0, 1,..., 9) ed i caratteri speciali (es: +) sono caratteri Carattere Valore numerico Valore in binario A 65 1000001 0 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 d oggi codice UNICODE (16 bit o superiore) prevede alfabeti non occidentali, e.g., arabo, giapponese, devanagari, cirillico, etc.
Extended ASCII
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) Software applicativo (e.g., Word, un browser, i programmi da voi scritti) Software Applicativo Software di Base Hardware