Linguaggio macchina

Transcript

Linguaggio macchina
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)
RAM
CPU
Scheda
madre
(motherboar
d)
Bus
Interfac
ce di I/O
Interfaccia di
I/O
Schermo
Tastiera e
mouse
Altoparlanti
Interfacc
e 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 cuffiamicrofono
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
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
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
invariabilee 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
● 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 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
➢ la CU preleva l'istruzione da eseguire dalla memoria
interna
2.Decode
➢ la CU decodifica l'istruzione
3.Execute
➢ 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
Bus
I bus sono dei canali, dotati di clock,
attraverso i quali transitano le informazioni
Ad ogni quanto di tempo, una componente invia dati e un'altra
componente riceve dati
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
Linguaggio macchina
codice istruzione
dato da utilizzare
(valore numerico o indirizzo di memoria)
word contenente una sequenza di bit
esempio di una word a 8 bit
101 01011
codice istruzione
dato da utilizzare
Come vengono eseguite le istruzioni
espresse in linguaggio macchina
Ogni cella di memoria contiene un dato che rappresenta un
valore numerico oppure un'istruzione
Supponiamo che
il registro istruzione corrente della CPU contenga il valore x
(ossia l'istruzione da eseguire è quella nella cella di indirizzo x)
•il registro istruzione corrente viene aggiornato con il valore
x+1 (prossima istruzione da eseguire) e
•l'istruzione contenuta nella cella di indirizzo x viene eseguita
dalla CPU
Istruzioni in linguaggio macchina
Le istruzioni in linguaggio macchina disponibili in un computer dipendono
dalla CPU
Generalmente, tutti gli elaboratori forniscono le seguenti istruzioni
Cosa fanno i programmi?
I programmi forniscono all'elaboratore delle
strategie risolutive a determinati problemi
Una strategia risolutiva che gode di certe
proprietà prende il nome di algoritmo
Algoritmo
Ricorda: Un algoritmo è una sequenza di passi che
portano alla realizzazione di un compito
Caratteristiche di un algoritmo
● non ambiguità
➢ i passi devono essere univocamente
interpretabili dall'esecutore
● eseguibilità
➢ l'esecutore deve essere in grado di eseguire
ogni passo utilizzando le risorse di cui dispone
● finitezza
➢ l'esecuzione di un algoritmo deve terminare in
un tempo finito
Es. Pascal, C, Java, …