Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche
Hardware: architettura dei computer (in breve) In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale la memoria secondaria i dispositivi di input (inserimento)/output (restituzione di risultati) Il processore e la memoria principale costituiscono l’unità centrale del computer
Componenti principali di un computer Processore Stampante Periferiche di input/output Memoria secondaria Memoria principale Tasteria e monitor Unità centrale Periferiche del calcolatore
L’uso dell’informazione Un computer deve: memorizzare l’informazione usando la memoria principale (RAM) usando la memoria secondaria elaborare l’informazione usando il processore (Central Processing Unit - CPU) fare l’input/output dell’informazione usando i dispositivi di input/output
L’uso dell’informazione Un computer deve: memorizzare l’informazione usando la memoria principale (RAM) usando la memoria secondaria elaborare l’informazione usando il processore (Central Processing Unit - CPU) fare l’input/output dell’informazione usando i dispositivi di input/output
I programmi Questa lezione: i programmi dal punto di visto dell’hardware I programmi: sequenze di istruzioni per l’elaborazione delle informazione Definiscono quale debba essere il comportamento del processore
I programmi I programmi e i dati risiedono nel memoria secondaria Per essere eseguiti (i programmi) e usati (i dati) vengono copiati nella memoria principale Il processore è in grado di eseguire le istruzioni di cui sono composti i programmi
I programmi I programmi: sequenze di istruzioni Per ogni tipo di processore è definito un insieme di istruzioni, chiamate istruzioni macchina Ognuna delle quali corrisponde ad un’operazione elementare (somma dei numeri, confronta due numeri, leggi/scrivi dalla memoria, ecc.) Le operazione più complesse possono essere realizzate mediante sequenze di operazioni elementari
I programmi Il linguaggio in cui si scrivono queste istruzioni prende il nome di linguaggio macchina Una sequenza di tali istruzioni prende il nome di programma in linguaggio macchina Il ruolo del processore: Eseguire programmi in linguaggio macchina
I programmi Le istruzioni possono avere formati diversi Per esempio: Codice istruzione Argomento 1 Argomento 2 cosa fare su cosa operare Codice istruzione Argomento 1
I programmi Per esempio: 01000110 1111000 01010111 00001111 cosa fare su cosa operare 11110101 01110110 11001001
I programmi Ogni tipo di processore è in grado di eseguire un numero limitato di istruzioni Famiglie di processori: Intel, Motorola, Sun, ecc. Processori della stessa famiglia possono eseguire gli stessi programmi scritti in liguaggio macchina (ma non sempre) Processi di famiglie diverse non possono eseguire gli stessi programmi scritti in liguaggio macchina Le istruzioni che “capiscono” sono diverse
Componenti del processore (CPU) La CPU è costituita da componenti diversi che svolgono compiti diversi REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni … Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo
Componenti del processore (CPU) La CPU è costituita da componenti diversi che svolgono compiti diversi REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni … Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo
Bus Permette la comunicazione tra i vari componenti dell’elaboratore I dati possono essere trasmessi in modalità seriale oppure parallela seriale 1 time 1 parallela time
Componenti del processore (CPU) REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni … Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo
Componenti del processore (CPU) REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni … Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo
Registri I registri sono delle unità di memoria estrememente veloci Sono usate per mantenere le informazioni di necessità immediata per il processore Le dimensioni dei registri variano da 16, 32, 64 bit Sono una caratteristica fondamentale del processore
Registri Per esempio: Program Counter Per esempio: i Registri Generali L’indirizzo della “prossima” istruzione da eseguire è memorizzato nel registro Program Counter Per esempio: i Registri Generali I registri che possono essere utilizzati come memorie temporanee per svolgere le operazioni matematiche
Componenti del processore (CPU) REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni … Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo
Componenti del processore (CPU) REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni … Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo
Unità di controllo Esegue le istruzioni dei programmi Coordina le attività del processore Controlla il flusso delle istruzioni tra il processore e la memoria
Unità di controllo Svolge la sua attività in modo ciclico Preleva dalla memoria principale la “prossima” istruzione da eseguire Preleva gli operandi specificati nell’istruzione Decodifica ed esegue l’istruzione Ricomincia
Unità di controllo L’esecuzione comporta l’invio di comandi opportuni all’unità relativa Calcoli: Unità aritmetico logica Lettura/scrittura dati: memoria Acquisizione/stampa: dispositivi di I/O
Componenti del processore (CPU) REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni … Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo
Componenti del processore (CPU) REGISTRI Bus Interno Program Counter Registro di Stato Unità di controllo Registro Istruzioni … Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo
Unità aritmetico logica L’Unità aritmetico logica si occupa di eseguire le operazioni di tipo aritmetico/logico Somme, sottrazioni, …, confronti, … Preleva gli operandi delle operazioni dai Registri Generali Deposita il risultato delle operazioni nei Registri Generali
Clock Abbiamo visto che il processore svolga la sua attività in modo ciclico Ad ogni ciclo corrisponde l’esecuzione di un’operazione elementare (un’istruzione macchina) Il clock fornisce una cadenza temporale per l’esecuzione delle operazioni elementari
Clock La frequenza del clock indica il numero di operazioni elementari che vengono eseguite nell’unità di tempo Consideriamo una ipotesi semplificata in cui ogni ciclo di clock corrisponde esattamente l’esecuzione di una sola istruzione macchina In realtà, questa ipotesi non è sempre vero L’esecuzione di una istruzione può richiedere più cicli di clock Oppure nello stesso ciclo di clock si possono eseguire di istruzioni diverse Depende dal tipo di processore
Clock La frequenza del clock si misura in: MHz (1 MHz corrisponde circa a un milione di battiti al secondo) GHz (1 GHz corrisponde circa a un miliardo di battiti al secondo) Per esempio: se aquisate un calcolatore e vi dicono che ha un processore a 1 GHz Vuol dire che il processore è in grado di eseguire (circa) 1 miliardo di istruzioni al secondo (nell’ipotesi semplificata)
L’uso dell’informazione Un computer deve: memorizzare l’informazione usando la memoria principale (RAM) usando la memoria secondaria elaborare l’informazione usando il processore (Central Processing Unit - CPU) fare l’input/output dell’informazione usando i dispositivi di input/output
Memoria principale (RAM) Insieme alla CPU forma l’Unità Centrale di un elaboratore Conserva i programmi e i dati usati dalla CPU Sequenza di celle Ad ogni cella è associato un indirizzo (un numero progressivo a partire da 0) 1 2 3 4 5 N
Memoria principale (RAM) Perchè si chiama RAM (Random Access Memory)? È possibile effettuare l’accesso diretto (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 indica proprio il fatto che non vi sono differenze nell’accesso alle varie celle della memoria
Memoria principale (RAM) 345 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 un dato o un’istruzione 1 13.200.985 2 3.890 LOAD 3568 R1 3 LOAD 56 R1 4 5 ADD R1 R2 N
Istruzioni… Per esempio: LOAD 3568 R2 ADD R1 R2 Codice istruzione Operazione di lettura dalla memoria: richiede la lettura del valore contentuto nella cella con indirizzo 3568 e il suo caricamento nel registro R1 ADD R1 R2 Operazione aritmetica di somma: prevede la somma del contentuto dei registri R1 e R2 e il caricamento del risultato nel registro R1 Codice istruzione Argomento 1 Argomento 2
Memoria principale (RAM) Le unità di misura della memoria RAM variano a seconda del tipo di calcolatore e vengono espresse in MB Nei PC generalmente si va dai 128MB ai 512MB Alcune server hanno 1-2 GB di RAM
Memoria principale (RAM) Alcune prioprietà 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.) Volatile: è fatta di componenti elettronici, togliendo l’alimentazione si perde tutto Costosa
Memoria di sola lettura (ROM) Non può essere modificata A differenza della RAM non è volatile Veloce quasi come la RAM Contiene le informazioni di inializzazione usate ogni volta che si accende l’elaboratore (bootstrap)
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)
Memoria cache In genere è interna al processore (cache L1) Esiste anche una cache secondaria (L2) esterna al processore È molto più costosa della RAM Le sue dimensione tipiche vanno dai 256KB a 1MB
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