Elaborazione dei dati Architettura dei computer Esploreremo i fondamenti dell architettura dei computer. Vedremo come un computer elabora i dati e comunica con periferiche come stampanti e tastiere. Linguaggio macchina Vedremo come i calcolatori sono programmati per mezzo di istruzioni codificate dette istruzioni macchina. Brookshear Informatica XI ed Capitolo 2 l 00/00/00 1
Funzionalità di un calcolatore
Il calcolatore: modello concettuale 1. Elaborazione 2. Memorizzazione Interconnessione 3. Comunicazione (interfaccia)
Architettura di un computer componenti per elaborare i dati memorizzare i dati inserire i dati per visualizzare/distribuire i dati (ottenuti quali risultato del processo di elaborazione) canali di comunicazione che permettono la trasmissione di dati tra una componente e l'altra
Macchina di Von Neumann (1946) John Von Neumann (Budapest 1903 Washington 1957)
Scheda madre (motherboar d) RAM CPU Bus Interfaccia di I/O Interfacc e di I/O Interfacce di I/O Schermo Tastiera e mouse Altoparlanti Memoria di massa
Scheda Madre
Periferiche di input Le periferiche di input sono costituite da tutti quei dispositivi che consentono l'inserimento nel computer di dati e istruzioni
Principali periferiche di input tastiera (keyboard) mouse/trackball/touchpad scanner joystick webcam macchina fotografica digitale microfono penna ottica (o lettore ottico) tavoletta grafica
Periferiche di output Le periferiche di output sono costituite dai dispositivi che consentono la comunicazione all'esterno dei dati elaborati, intermedi o finali
Principali periferiche di output monitor (display, video, schermo) proiettore stampante/plotter altoparlanti (casse acustiche) cuffie e auricolari
Periferiche di input/output Le periferiche di input/output sono quei dispositivi in grado di inviare dati al computer e allo stesso modo di riceverne Una periferica di input/output è il touchscreen Un'altra periferica di input/output è la cuffia-microfono
La memoria di massa Per memoria di massa (o secondaria o esterna) si intende l'insieme dei componenti magnetici, ottici ed elettronici che permettono di memorizzare dati e programmi in modo persistente, per conservarli finché l'utente non decide di eliminarli
Le memorie di massa On-line contro off-line Tipicamente più grandi delle memorie principali Tipicamente meno volatili delle memorie principali Tipicamente più lente delle memorie principali 14 Brookshear Informatica XI ed Capitolo 1 l 00/00/00
Principali tipi di memorie di massa dispositivi magnetici nastri hard disk (o disco rigido): interni ed esterni floppy disk (capacità 1,44 MB) dispositivi ottici CD (Compact Disk) DVD (Digital Versatile Disk) dispositivi elettronici USB flash drive memory card
Principali tipi di memorie di massa Sistemi magnetici Dischi Nastri Sistemi ottici CD DVD Flash Drives 16 Brookshear Informatica XI ed Capitolo 1 l 00/00/00
Principali tipi di memorie di massa Sistemi magnetici Dischi Nastri Sistemi ottici CD DVD Flash Drives 17 Brookshear Informatica XI ed Capitolo 1 l 00/00/00
Principali tipi di memorie di massa Sistemi magnetici Dischi Nastri Sistemi ottici CD DVD Flash Drives 18 Brookshear Informatica XI ed Capitolo 1 l 00/00/00
Principali tipi di memorie di massa Sistemi magnetici Dischi Nastri Sistemi ottici CD DVD Flash Drives (o chiave USB) 19 Brookshear Informatica XI ed Capitolo 1 l 00/00/00
La memoria centrale (o primaria o interna) È la memoria utilizzata dall'elaboratore per gestire i programmi. Costituita da una sequenza ordinata di celle ciascuna delle quali può memorizzare una word (parola). Una word è una sequenza di bit la cui lunghezza dipende dall'architettura del sistema. Solitamente, uno word è pari a 8, 16, 32 oppure 64 bit. Ciascuna cella di memoria ha un indirizzo predefinito e invariabile e rappresenta l'unità minima di memoria cui la CPU riesce ad accedere.
Tipi di memoria centrale RAM (Random Access Memory): memoria di lettura/scrittura volatile ad accesso diretto di lavoro e dinamica ROM (Read Only Memory): memoria di sola lettura BIOS ROM (Basic Input/Output System) autotest riconoscimento e gestione delle periferiche di input/output caricamento del sistema operativo
Composizione della CPU La CPU è un circuito integrato (microprocessore) in cui avvengono i processi di elaborazione CPU = ALU + CU ALU : Arithmetic and Logic Unit, unità aritmetico-logica CU: Control Unit, unità di controllo
Composizione della CPU Registri dispositivi di grado di memorizzazione una word ALU (Arithmetic and Logic Unit, unità aritmetico-logica) unità di elaborazione che esegue materialmente le operazioni aritmetiche (somme, sottrazioni, moltiplicazioni e divisioni tra numeri binari) logiche sui dati (confronto tra due numeri binari per capire se sono uguale o quale dei due è il maggiore) CU (Control Unit, unità di controllo) responsabile del coordinamento della varie componenti della macchina e dell'esecuzione delle istruzioni
La ALU e le operazioni elementari Primo operando Secondo operando ALU: Esegue un'operazione aritmetica o un'operazione logica Risultato operazione
CPU: il ciclo macchina (fetch-decode-execute) la CPU ha un clock interno che ne scandisce il ritmo di lavoro durante un ciclo di clock, la CPU esegue le operazioni: 1.Fetch (reperimento) la CU preleva l'istruzione da eseguire dalla memoria interna 2.Decode (decodifica) la CU decodifica l'istruzione 3.Execute (esecuzione) l'istruzione viene eseguita dalla ALU
CU regola l'esecuzione del ciclo fetch-decode-execute della CPU, invia segnali di controllo sul bus, decodifica le istruzioni e gestisce il trasferimento di dati da e verso la CPU
I registri della CPU registro dati contiene dati copiati/da copiare dalla/nella RAM registro indirizzi contiene l'indirizzo della cella della RAM registro istruzione corrente contiene l'indirizzo della cella della RAM che contiene l'istruzione che deve essere eseguita contatore di programma contiene l'indirizzo della cella della RAM contenente la prossima istruzione da eseguire registro interruzioni registri operandi contengono gli eventuali operandi e il risultato dell'istruzione dopo la sua esecuzione registro di stato contiene indicazioni sulla operazioni svolte dalla ALU
CPU e memoria principale collegate tramite bus Brookshear Informatica XI ed Capitolo 2 l 00/00/00 28
Somma di due valori archiviati in memoria. Brookshear Informatica XI ed Capitolo 2 l 00/00/00 29
Concetto di programma memorizzato È un programma che può essere codificato come un insieme di bit e salvato nella memoria principale. Da qui, la CPU può quindi estrarre le istruzioni ed eseguirle. A sua volta, il programma che deve essere eseguito, può essere modificato facilmente. Brookshear Informatica XI ed Capitolo 2 l 00/00/00 30
Terminologia Istruzione Macchina: Un istruzione (o comando) codificato come un insieme di bit riconoscibile dalla CPU Linguaggio Macchina: L insieme dei tutte le istruzioni riconosciute da una macchina Tipi di istruzioni macchina Trasferimento dei dati: copiano dati da una locazione ad un altra Istruz. Aritmetico/Logiche: utilizzano dati esistenti per crearne uno nuovo Istruzioni di Controllo: dirigono l esecuzione di un programma Brookshear Informatica XI ed Capitolo 2 l 00/00/00 31
Divisione di due valori archiviati in memoria. Brookshear Informatica XI ed Capitolo 2 l 00/00/00 32
Architettura della macchina (Appendice C) Brookshear Informatica XI ed Capitolo 2 l 00/00/00 33
Struttura di un istruzione per la macchina (Appendice C) Campo codice operativo (Opcode): Specifica quale operazione deve essere eseguita Campo operando: Fornisce maggiori dettagli sull operazione Interpretazione dell insieme di operandi che dipendono dall op-code Brookshear Informatica XI ed Capitolo 2 l 00/00/00 34
Struttura di un istruzione per la macchina Campo codice operativo (Opcode): Specifica quale operazione deve essere eseguita Campo operando: Fornisce maggiori dettagli sull operazione Interpretazione dell insieme di operandi che dipendono dall op-code Decodifica dell istruzione 35A7. Brookshear Informatica XI ed Capitolo 2 l 00/00/00 35
Versione codificata delle istruzioni usate per la somma Brookshear Informatica XI ed Capitolo 2 l 00/00/00 36
Ciclo macchina. Brookshear Informatica XI ed Capitolo 2 l 00/00/00 37
Decodifica dell istruzione B258 Brookshear Informatica XI ed Capitolo 2 l 00/00/00 38
Programma della somma trasferito nella memoria principale e pronto per l esecuzione Brookshear Informatica XI ed Capitolo 2 l 00/00/00 39
Esecuzione della fase di reperimento del ciclo macchina. Brookshear Informatica XI ed Capitolo 2 l 00/00/00 40
Istruzioni Aritmetico/Logiche Operazioni Logiche: AND, OR, XOR Su stringhe (11001100 AND 11000011)= 11000000 (11001100 OR 11000011)= 11001111 (11001100 XOR 11000011)= 00001111 Brookshear Informatica XI ed Capitolo 2 l 00/00/00 41
Istruzioni Aritmetico/Logiche Operazioni Logiche: AND, OR, XOR Su stringhe (11001100 AND 11000011)= 11000000 (11001100 OR 11000011)= 11001111 (11001100 XOR 11000011)= 00001111 Mascheramento AND usata per porre a zero alcuni bit lasciando altri inalterati es. 11110000 maschera per azzerare gli ultimi 4 bit 11110000 AND 10101010 =10100000 Brookshear Informatica XI ed Capitolo 2 l 00/00/00 42
Istruzioni Aritmetico/Logiche Operazioni Logiche: AND, OR, XOR Su stringhe (11001100 AND 11000011)= 11000000 (11001100 OR 11000011)= 11001111 (11001100 XOR 11000011)= 00001111 Mascheramento AND usata per porre a ZERO alcuni bit lasciando altri inalterati es. 11110000 maschera per azzerare gli ultimi 4 bit 11110000 AND 10101010 =10100000 OR usata per porre a UNO alcuni bit lasciando altri inalterati es. 11110000 maschera per porre ad uno i primi 4 bit 11110000 OR 10101010 =11111010 Brookshear Informatica XI ed Capitolo 2 l 00/00/00 43
Istruzioni Aritmetico/Logiche Operazioni Logiche: AND, OR, XOR Su stringhe (11001100 AND 11000011)= 11000000 (11001100 OR 11000011)= 11001111 (11001100 XOR 11000011)= 00001111 Mascheramento AND usata per porre a ZERO alcuni bit lasciando altri inalterati OR usata per porre a UNO alcuni bit lasciando altri inalterati XOR usata per complementare 11111111 11111111 XOR 10101010 =01010101 Brookshear Informatica XI ed Capitolo 2 l 00/00/00 44
Istruzioni Aritmetico/Logiche Operazioni Logiche: AND, OR, XOR Mascheratura Operazioni di Shift e Rotazione: shift circolare Shift circolare di un bit a destra. Brookshear Informatica XI ed Capitolo 2 l 00/00/00 45
Istruzioni Aritmetico/Logiche Operazioni Logiche: AND, OR, XOR Mascheratura Operazioni di Shift e Rotazione: shift circolare 11111011 11111101 shift logico (il bit caduto si perde, aggiunto sempre 0) 11111011 01111101 Brookshear Informatica XI ed Capitolo 2 l 00/00/00 46
Istruzioni Aritmetico/Logiche Operazioni Logiche: AND, OR, XOR Mascheratura Operazioni di Shift e Rotazione: shift circolare, logico Operazioni Aritmetiche: addizione, sottrazione, moltiplicazione, divisione Azioni precise dipendono da come i valori sono codificati (es. complemento a due oppure in virgola mobile). Brookshear Informatica XI ed Capitolo 2 l 00/00/00 47
Bus I bus sono dei canali attraverso i quali transitano le informazioni Una componente invia dati e un'altra componente riceve dati
Controller collegati al bus di un computer Contoller gestisce la comunicazione tra computer e dispositivi Brookshear Informatica XI ed Capitolo 2 l 00/00/00 49
ES. LINGUAGGIO MACCHINA OPERAZIONE OPCODE OPERANDO LOAD (X,Y indirizzi) 1 RXY LOAD (XY VALORE) 2 RXY STORE 3 RXY MOVE (R S) 4 0RS ADD (IN COMPL. A DUE) 5 RST ADD (VIRGOLA MOBILE) 6 RST OR (S or T R) 7 RST AND 8 RST XOR 9 RST ROTATE (R PER X VOLTE) A R0X JUMP (a cella XY se contenuto di R è uguale a quello del reg. 0) B Brookshear Informatica XI ed Capitolo 2 l 00/00/00 RXY HALT C 000 50
CALCOLO somma 3 numeri INDIRIZZO CELLA ISTRUZIONE 01 LOAD 1010 02 LOAD 1111 03 ADD 5201 04 LOAD 1012 05 ADD 5102 06 07 10 4 11 9 12 2
CALCOLO somma 3 numeri Da celle 10,11,12 risultato in 10 INDIRIZZO CELLA ISTRUZIONE 01 LOAD 1010 02 LOAD 1111 03 ADD 5201 04 LOAD 1012 05 ADD 5102 06 STORE 3110 07 HALT C000 10 15 11 9 12 2
Presentation Title runs here l 00/00/00 53
Bus di sistema bus dati transito dei dati tra registro dati e RAM bus indirizzi transito dell'indirizzo di una cella tra registro indirizzi e RAM bus controllo transito del codice dell'operazione da eseguire tra CPU e RAM transito del codice risultato dell'operazione tra CPU e RAM
Rappresentazione concettuale della tecnica memory-mapped I/O. Brookshear Informatica XI ed Capitolo 2 l 00/00/00 55