Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoMarta Cirillo Modificato 9 anni fa
1
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008
2
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
3
I programmi e i dati 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 computer eseguono deterministicamente istruzioni Dati: –Distinzione tra dato e informazione: Dato: sequenza di bit, può essere interpretato in più modi diversi Informazione: dato + significato del dato
4
I programmi e i dati Processore Stampante Memoria secondaria Memoria principale I programmi e i dati risiedono nella memoria secondaria
5
I programmi e i dati Processore Stampante Memoria secondaria Memoria principale I programmi e i dati risiedono nella memoria secondaria Per essere eseguiti (i programmi) e usati (i dati) vengono copiati nella memoria principale
6
I programmi e i dati I programmi e i dati risiedono nella 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 Processore Stampante Memoria secondaria Memoria principale
7
Istruzioni macchina Per ogni tipo di processore è associato un insieme di istruzioni, chiamate istruzioni macchina –Ognuna delle quali corrisponde ad un’operazione elementare –Le operazione più complesse possono essere realizzate mediante sequenze di operazioni elementari Combinando in modo diverso sequenze anche molto lunghe di istruzioni si possono far svolgere al computer molti compiti diversi
8
Istruzioni macchina Tre tipi di istruzioni macchina: –Istruzioni aritmetico-logiche: Per esempio, la somma di due numeri, il confronto tra due numeri per stabilire se essi sono uguali Bisogna indicare dove si trovano i dati su cui operare –Istruzioni di trasferimento dati: Indicano quali dati trasferire e in quale direzione Per esempio, dalla memoria al CPU o vice versa, dall’esterno all’interno (input) o vice versa (output) Anche bisogna indicare dove si trovano i dati su cui operare –Istruzioni di controllo: Permettono modificare il flusso di esecuzione delle istruzione (per esempio, sulla base di eventi esterni o risultati intermedi ottenuti dalle istruzioni precedenti)
9
Istruzioni macchina Tre tipi di istruzioni macchina: –Istruzioni aritmetico-logiche: add: addizione sub: sottrazione and/or/not: congiunzione/disjunzione/negazione logica … ABA and B 000 010 100 111 ABA or B 000 011 101 111 Anot A 01 10
10
Istruzioni macchina Tre tipi di istruzioni macchina: –… –Istruzioni di trasferimento dati: load: leggere dalla memoria principale store: scrivere alla memoria principale … –Istruzioni di controllo: if_eq: se una condizione è vero, proseguire in un certo modo, altrimenti proseguire in un altro modo goto: saltare a un’istruzione …
11
Istruzioni macchina Le istruzioni possono avere formati diversi - per esempio: cosa faresu cosa operare oppure Codice istruzioneArgomento 1Argomento 2Argomento 3 Codice istruzioneArgomento 1Argomento 2 Codice istruzioneArgomento 1 oppure cosa faresu cosa operare
12
Istruzioni macchina Per esempio: ADD R1 R2 R3 –Recuperare i valori memorizzati nei registri R2 e R3 e inserire il risultato della somma dei valori nel registro R1 –Si nota che i valori nei registri possono cambiare da un’esecuzione all’altra (riferimenti indiretti) (Che cosa un registro? Vedremo…) Codice istruzioneArgomento 1Argomento 2Argomento 3
13
Istruzioni macchina Per esempio: LOAD 3568 R2 –Operazione di lettura dalla memoria: richiede la lettura del valore contenuto nella cella con indirizzo 3568 e il suo caricamento nel registro R2 (Che cosa un registro? Vedremo…) Codice istruzione Argomento 1Argomento 2
14
Istruzioni macchina Per esempio: ADD R1 R2 –Operazione aritmetica di somma: prevede la somma del contenuto dei registri R1 e R2 e il caricamento del risultato nel registro R1 (Perché R1 non R2? Non c’è una ragione: la decisione è arbitraria) Codice istruzione Argomento 1Argomento 2
15
Linguaggio macchina Il linguaggio in cui si scrivono le istruzione macchina 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 Ogni tipo di processore è in grado di eseguire un numero (molto) limitato di istruzioni macchina –Normalmente circa una centinaia
16
I programmi e i processori Istruzioni visti dal computer: –Il formato dell’oggetto binario (sequenze di bit che corrisponde alla codifica delle istruzioni di un programma) è l’unico che il computer può interpretare 10001111 10101010 00000011 11001100 10101011 11111110 11001111 00000110 00000100 00000111 11000101 10111001 11111101 01011111 11001111 00101011 ADD R1 R2 R3
17
I programmi e i processori Istruzioni visti dai programmatori: –I programmatori dei computer non scrivono i programmi direttamente usando le istruzioni macchina –I programmatori scrivono i programmi in linguaggi di un alto livello di astrazione: i linguaggi di programmazione a alto livello Per esempio, Java o C –Un singolo commando di un linguaggio di programmazione può corrispondere a più istruzione macchina
18
I programmi e i processori Tre forme principali di codifica dei programmi: –Linguaggio binario: i programmi sono codificati in formato binario –Linguaggio assembler: rappresenta le istruzioni macchina usando lettere e numeri (per esempio, ADD R1 R2 R3) –Linguaggi di programmazione di alto livello (per esempio, Java o C): Livello di astrazione più alto rispetto a linguaggio assembler o linguaggio binario, usato dai programmatori dei computer
19
I programmi e i processori … ADD R1 R2 R3 … totale = num1 + num2; 00101000 10100000 00001111 10101010 00101000 10100000 compila assembla Linguaggio di programmazione Linguaggio assembler Linguaggio binario
20
I programmi e i processori Linguaggio di programmazione: esempio di un programma (codice scritto in Java)
21
I programmi e i processori Famiglie di processori: Intel, Motorola, Sun, … Processori della stessa famiglia normalmente possono eseguire gli stessi programmi scritti in linguaggio macchina (ma non sempre) Processi di famiglie diverse normalmente non possono eseguire gli stessi programmi scritti in linguaggio macchina –Le istruzioni che “capiscono” sono diverse Attenzione! Stiamo considerando il livello delle istruzioni macchina (non il livello dei linguaggi di programmazione, come Java o C) –La stessa programma scritto in un linguaggio di programmazione di alto livello può essere eseguito su processi di famiglie diverse (è un vantaggio del uso dei linguaggi di programmazione a alto livello)
22
Componenti del processore (CPU) La CPU non è un unico componente ma è costituita da componenti diversi che svolgono compiti diversi Unità di controllo Unità aritmetico logica Program Counter REGISTRI Registro di Stato Bus Interno Registro Istruzioni Registri Generali 8 o 16 … Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo
23
Componenti del processore (CPU) Unità di controllo Unità aritmetico logica Program Counter REGISTRI Registro di Stato Bus Interno Registro Istruzioni Registri Generali 8 o 16 … Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo
24
Unità di controllo L’unità di controllo è la parte più importante del processore –Esegue le istruzioni dei programmi –Coordina le attività del processore –Controlla il flusso delle istruzioni tra il processore e la memoria
25
Unità di controllo Svolge la sua attività in modo ciclico (implementa il ciclo macchina) Fetch istruzione (preleva dalla memoria principale la “prossima” istruzione da eseguire) Decodifica istruzione Fetch dati (preleva gli operandi specificati nell’istruzione) Esecuzione istruzione Restituzione risultato
26
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
27
Componenti del processore (CPU) Unità di controllo Unità aritmetico logica Program Counter REGISTRI Registro di Stato Bus Interno Registro Istruzioni Registri Generali 8 o 16 … Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo
28
Bus Bus interno: permette la comunicazione tra i componenti del processore Bus esterno: permette la comunicazione tra il processore e gli altri componenti dell’elaboratore CPU RAM Interfaccia dati indirizzi controllo
29
Bus Unità di controllo Unità aritmetico logica REGISTRI Bus Interno … … 1000 LOAD 4809 R2 1001 LOAD 3568 R1 1002 ADD R1 R2 1003 STORE R1 3568 1004 GOTO 1001 … 3568 25 … 4809 30 … Interfaccia CPU RAM
30
Componenti del processore (CPU) Unità di controllo Unità aritmetico logica Program Counter REGISTRI Registro di Stato Bus Interno Registro Istruzioni Registri Generali 8 o 16 … Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo
31
Registri I registri sono delle unità di memoria estremamente veloci Sono usate per mantenere le informazioni di necessità immediata per il processore Le dimensioni dei registri variano da 16, 32, 64 bit
32
Registri Per esempio: Program Counter –L’indirizzo della “prossima” istruzione da eseguire è memorizzato nel registro Program Counter Normalmente le istruzioni di un programma sono memorizzati in sequenza nella memoria principale Il Program Counter deve essere aumentato (di 1) ogni ciclo (in modo tale che corrisponde all’indirizzo della prossima istruzione da eseguire) Eccezione: istruzione di controllo (per esempio, “salti” da un’istruzione a un’altra usando goto) Per esempio: i Registri Generali –I registri che possono essere utilizzati come memorie temporanee per svolgere le operazioni matematiche
33
Componenti del processore (CPU) Unità di controllo Unità aritmetico logica Program Counter REGISTRI Registro di Stato Bus Interno Registro Istruzioni Registri Generali 8 o 16 … Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo
34
Unità aritmetico logica L’Unità aritmetico logica (ALU) 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 Insieme all’unità di controllo collabora al completamento di un ciclo macchina
35
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
36
Consideriamo una ipotesi semplificata: ogni battito di clock corrisponde esattamente l’esecuzione di una sola istruzione macchina –Per esempio: il clock che ha circa 66 milione battiti per secondo il computer può eseguire circa 66 milione operazioni per secondo In realtà, questa ipotesi non è sempre vero –L’esecuzione di una istruzione può richiedere più battiti di clock –Oppure nello stesso ciclo di clock si possono eseguire (parti) di istruzioni diverse –Dipende dal tipo di processore - per esempio: Il processore Intel 80286 richiede 20 battiti del clock per calcolare la moltiplicazione di due numeri Il processore Intel 80486 può calcolare la moltiplicazione di due numeri usando solo un battito del clock Clock
37
La frequenza del clock si misura in: –MHz (1 MHz corrisponde circa a un milione di istruzioni elementari/battiti al secondo) –GHz (1 GHz corrisponde circa a un miliardo di istruzioni elementari/battiti al secondo) Per esempio: se acquistate un calcolatore e vi dicono che ha un processore a 3 GHz –Vuol dire che il processore è in grado di eseguire (circa) 3 miliardi di istruzioni al secondo Esempi: –Pentium 4 – 3,0 – 3,8 GHz –Athlon 64 FX-SOI – 2,2 – 2,8 GHz –Pentium 4M (Centrino) – 1,6 – 2,4 GHz Clock
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.