1 / 37

Informatica

Informatica. Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico: 2007-2008. Architettura dei computer. Un computer deve: elaborare l’informazione usando il processore (Central Processing Unit - CPU) memorizzare l’informazione

vielka-lang
Download Presentation

Informatica

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 • I programmi e i dati risiedono nella memoria secondaria Processore Memoria principale Stampante Memoria secondaria

  5. 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 Processore Memoria principale Stampante Memoria secondaria

  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 Memoria principale Stampante Memoria secondaria

  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 • …

  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: Codice istruzione Argomento 1 Argomento 2 Argomento 3 cosa fare su cosa operare oppure Codice istruzione Argomento 1 Argomento 2 cosa fare su cosa operare oppure Codice istruzione Argomento 1

  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 istruzione Argomento 1 Argomento 2 Argomento 3

  13. Codice istruzione Argomento 1 Argomento 2 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…)

  14. Codice istruzione Argomento 1 Argomento 2 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)

  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 Linguaggio di programmazione totale = num1 + num2; compila … ADD R1 R2 R3 … Linguaggio assembler assembla 00101000 10100000 00001111 10101010 00101000 10100000 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. Unità di controllo Componenti del processore (CPU) • La CPU non è un unico componente ma è costituita da componenti diversi che svolgono compiti diversi REGISTRI Bus Interno Program Counter Registro di Stato Registro Istruzioni … Registri Generali 8 o 16 Unità aritmetico logica Registro Indirizzi Memoria Registro Dati Memoria Registro di Controllo

  23. 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

  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. Unità di controllo Componenti del processore (CPU) REGISTRI Bus Interno Program Counter Registro di Stato Registro Istruzioni … Registri Generali 8 o 16 Unità aritmetico logica 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 Interfaccia RAM dati indirizzi controllo

  29. Bus RAM CPU … 1000 LOAD 4809 R2 1001 LOAD 3568 R1 1002 ADD R1 R2 1003 STORE R1 3568 1004 GOTO 1001 … 3568 25 … 4809 30 … REGISTRI Bus Interno Unità di controllo … Unità aritmetico logica Interfaccia

  30. Unità di controllo Componenti del processore (CPU) REGISTRI Bus Interno Program Counter Registro di Stato Registro Istruzioni … Registri Generali 8 o 16 Unità aritmetico logica 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. Unità di controllo Componenti del processore (CPU) REGISTRI Bus Interno Program Counter Registro di Stato Registro Istruzioni … Registri Generali 8 o 16 Unità aritmetico logica 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. Clock • 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

  37. Clock • 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

More Related