Elaborazione dati - Dipartimento di Informatica

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