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 2. 1. Memorizzazione Elaborazione 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) RAM CPU Scheda madre (motherboar d) Bus Interfacc e di I/O Interfaccia di I/O Schermo Tastiera e mouse Altoparlanti Interfacce di I/O 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 RXY HALT C 000 Brookshear – Informatica XI ed – Capitolo 2 l 00/00/00 50 CALCOLO somma 3 numeri INDIRIZZO CELLA ISTRUZIONE 01 LOAD 1010 02 LOAD 1111 03 ADD 04 LOAD 1012 05 ADD 06 … 07 … 10 4 11 9 12 2 5201 5102 CALCOLO somma 3 numeri Da celle 10,11,12 – risultato in 10 INDIRIZZO CELLA ISTRUZIONE 01 LOAD 1010 02 LOAD 1111 03 ADD 04 LOAD 1012 05 ADD 06 STORE 3110 07 HALT … 10 15 11 9 12 2 5201 5102 C000 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