La struttura hardware
1
Esecuzione di programmi
Algoritmo
Codifica in un linguaggio di
programmazione C, Java etc.
Programma
Compilatore
Input : programma
Output : rappresentazione di dati ed istruzioni elementari
comprensibile alla macchina
Eseguibile
Effetto : esecuzione delle istruzioni
sulla macchina fisica
Hardware
2
Esecuzione di programmi (2)
• L’eseguibile dipende dalla macchina che
dobbiamo specializzare (es. processore
Intel, o processore SUN), dal sistema
operativo (es. Windows, Linux …) e dal
linguaggio usato (es: C o Java)
• Gli eseguibili di alcuni linguaggi (come
Java) contengono operazioni complesse che
non possono essere eseguite direttamente!
• In questo caso si utilizza un programma
interprete (es Java Virtual Machine) che
realizza le operazioni elementari complesse
3
Esecuzione di programmi (3)
Algoritmo
Codifica in un linguaggio di
programmazione Java-like
Programma
Compilatore
Input : programma
Output : rappresentazione di dati ed istruzioni elementari
comprensibile all’interprete (es JVM)
Eseguibile
Interprete
Hardware
Effetto : esecuzione delle istruzioni elementari
dell’interprete sulla macchina fisica
4
Esecuzione di programmi (4)
Algoritmo
Codifica in un linguaggio di
programmazione (C, Java etc)
Programma
Compilatore
Input : programma
Output : rappresentazione di dati ed istruzioni elementari
comprensibile alla macchina o all’interprete
Eseguibile
Sistema operativo
Hardware
Interprete
Effetto : esecuzione delle istruzioni
sulla macchina fisica
5
Ritorniamo alla …. struttura generale
di un calcolatore
• Il calcolatore di Von Neumann
Memoria
(RAM,dischi, etc)
Mantiene
Dati e Programmi
Processore
(CPU)
E’ un esecutore capace
di interpretare i singoli passi
richiesti dai programmi
(istruzioni elementari)
Sottosistema
di Interfaccia
Permette di comunicare
dati e programmi alla
macchina e di ottenere i
risultati (tastiera, micr.,
stampante, schermo, )
6
Struttura di un calcolatore (2)
RAM
(memoria centrale)
Processore
bus
Linee dati, indirizzi e controllo
Interfaccia
di I/O
Interfaccia
di I/O
Interfaccia
di I/O
Interfaccia
di I/O
schermo
dischi
mouse
modem
7
Struttura di un calcolatore (3)
Sequenza di parole (un array …)
indirizzi
0
1
2
3
4
RAM
(memoria centrale)
Processore
.
.
.
bus
Linee dati, indirizzi e controllo
Interfaccia
di I/O
Interfaccia
di I/O
Interfaccia
di I/O
Interfaccia
di I/O
schermo
dischi
mouse
modem
8
Struttura di un calcolatore (4)
Sequenza di parole (un array …)
indirizzi
0
1
2
3
4
Valore da trasferire
RAM
(memoria centrale)
Processore
Dove trasferirlo
.
.
.
Direzione di
trasferimento, unità
coinvolte etc.
bus
Linee dati, indirizzi e controllo
Interfaccia
di I/O
Interfaccia
di I/O
Interfaccia
di I/O
Interfaccia
di I/O
schermo
dischi
mouse
modem
9
Struttura di un calcolatore (5)
RAM
(memoria centrale)
Processore
bus
Linee dati, indirizzi e controllo
Interfaccia
di I/O
Interfaccia
di I/O
Interfaccia
di I/O
Interfaccia
di I/O
schermo
dischi
mouse
modem
10
Operazioni elementari eseguibili
da un processore
• Dati numerici (binari) :
– operazioni matematiche : +,-,divisione e moltiplicazione
per potenze di due
– confronti con 0
– operazioni logiche o booleane: AND, OR, XOR, NOT
• Dati numerici e non
– letture/scritture nella memoria, letture e scritture nei
registri di controllo dei dispositivi
– uguaglianza e disuguaglianza di due rappresentazioni
11
Operazioni elementari eseguibili
da un processore (2)
• Operazioni di ‘controllo di flusso’ :
– salti condizionati (corrispondono alla
combinazione di istruzioni di controllo se ( …)
vai al passo X )
– salti incondizionati (corrispondono alla
istruzioni di controllo vai al passo X )
– chiamate di un sottoprogramma (CALL)
– terminazione del programma (RETURN)
12
Operazioni elementari eseguibili
da un processore (3)
• Abbiamo elencato le funzionalità tipiche, i
loro nomi ed il funzionamento specifico
variano da macchina a macchina
• Esistono sul mercato processori
‘compatibili’ cioè in grado di eseguire lo
stesso insieme di istruzioni (facilita la
portabilità dei programmi in linguaggio
macchina)
– es : Intel Pentium, IBM-Cyrix, AMD
13
Operazioni booleane
• Sono operazioni che lavorano su variabili che
assumono valori di verità o boolani (vero, falso) :
– es : se fuori piove e mi sposto a piedi allora apro
l’ombrello
– La due sotto-condizioni (fuori piove, mi sposto a piedi)
avranno un valore vero/falso che dipende dalla situzione
in cui mi trovo
– l’operatore booleano ‘e’ permette di combinare fra loro
due valori booleani
– il risultato dell’operazione ‘e’ è il valore vero se entrambi
gli operando sono veri e falso altrimenti
14
Operazioni booleane (2)
• Con le operazioni booleane è possibile
complicare arbitrariamente le condizioni delle
strutture se…allora…altrimenti e finchè...ripeti
• Anche i valori booleani si possono rappresentare
in codifica binaria: generalmente
– 1 rappresenta VERO
– 0 rappresenta FALSO
• La definizione di ciascuna operazione booleana
si può dare sotto forma di tabellina (la tabella di
verità)
15
Operazioni booleane (3)
Le operazioni boolane più comuni sono :
• Operazione di and () :
– A and B : combina i valori di A e B in modo che il
risultato sia vero solo se sono veri sia A che B
• Operazione di or () :
– A or B : combina i valori di A e B in modo che il
risultato sia vero solo almeno uno fra A e B è vero
• Operazione di not () :
– not A : restituisce falso se A e vero e viceversa
16
Tabelle di verità delle operazioni
and, or e not
A
B
A and B A or B
Not A
0
0
0
0
1
0
1
0
1
1
1
0
0
1
0
1
1
1
1
0
17
Operazioni logiche/booleane : perché
sono importanti
• Sono facili da realizzare utilizzando circuiti
elementari
• È possibile dimostrare che tutte le funzioni
interessanti possono essere calcolate
utilizzando una opportuna combinazione delle
funzioni logiche
• Esiste un procedimento automatico per trovare
questa combinazione, che viene utilizzato per
realizzare le funzioni disponibili nell’hw
18
Operazioni logiche : perché sono
importanti (2)
• Quando si scrivono programmi che ‘parlano’
con l’hw spesso dobbiamo manipolare
sequenze binarie direttamente
• Usando le funzioni logiche è sempre possibile
costruire la manipolazione che ci interessa
– es: mettere a 0 il terzo bit di una rappresentazione
consideriamo la rappr.
mi costruisco la ‘maschera’
e poi calcolo AND
‘bit a bit’
0001001111111
1111111111011
0001001111011
AND
19
Linguaggio macchina e
assembler
• Linguaggio macchina :
linguaggio comprensibile direttamente dal
processore della macchina (binario)
• Assembler :
versione simbolica del linguaggio macchina in
cui i nomi delle operazioni e degli operandi
sono indicati con codici simbolici
20
Linguaggio macchina e
assembler (2)
• Per ‘parlare direttamente con la macchina’
si usa l’assembler
• Assemblatori :
programmi che traducono il codice simbolico in
sequenze di 0 e 1
• Nei prossimi lucidi vediamo un esempio di
un tipico programma assembler e i passi
necessari per la sua traduzione in binario
21
Linguaggio macchina e
assembler (3)
• Esempio: come si realizza in assembler
l’operazione x=y+2 :
LOAD Y, R1
ADD
2, R1
STORE R1, X
R1
Legge il valore in Y
e lo scrive in R1
17
Registro interno del
processore (variabile
temporanea su cui lavorare)
memoria
Y
34
X
222
Indirizzi di due
parole di memoria
che rappresentano
le variabili intere x e y
22
Linguaggio macchina e
assembler (4)
• Esempio x=y+2 (assembler)
LOAD Y, R1
ADD
2, R1
STORE R1, X
R1
memoria
Aggiunge 2 a R1
34
Registro interno del
processore (variabile
temporanea su cui lavorare)
Y
34
X
222
Indirizzi di due
parole di memoria
che rappresentano
interi
23
Linguaggio macchina e
assembler (5)
• Esempio x=y+2 (assembler)
LOAD Y, R1
ADD
2, R1
STORE R1, X
R1
memoria
Scrive il contenuto
di R1 nella parola
di indirizzo X
36
Registro interno del
processore (variabile
temporanea su cui lavorare)
Y
34
X
222
Indirizzi di due
parole di memoria
che rappresentano
interi
24
Linguaggio macchina e
assembler (6)
• Esempio x=y+2 (assembler)
LOAD Y, R1
ADD
2, R1
STORE R1, X
R1
36
memoria
Y
34
X
36
Situazione finale della
memoria
25
Linguaggio macchina e
assembler (7)
• Traduzione binaria (in
linguaggio macchina) di
memoria
LOAD Y, R1
ADD
2, R1
STORE R1, X
• Prima di tutto dobbiamo
decidere quale è il vero
indirizzo di X e Y
Y
01101
11100
X
26
Linguaggio macchina e
assembler (8)
• Codifica binaria di
LOAD 01101, R1
ADD
2, R1
STORE R1, 11100
• Ogni operazione si codifica secondo un
formato stabilito da chi costruisce l’hw
– un formato semplificato è
Codice operativo
Modo 1
Op1
Modo 2
Op2
27
Linguaggio macchina e
assembler (9)
• Vediamo i vari campi del formato :
Codice operativo
Modo1
Op1
Modo2
Op2
È la codifica dell’operazione da eseguire
es:
ADD
LOAD
STORE
0001
0110
0111
28
Linguaggio macchina e
assembler (9)
• Vediamo i vari campi del formato :
Codice operativo
Modo1
Op1
Modo2
Op2
È la codifica primo operando, MODO1
dice a cosa si riferisce OP1
es:
se MODO1 = 00 l’operando è nel registro
interno del processore
(e OP1 è il numero del registro)
se MODO1 = 01 l’operando è in memoria
(e OP1 è l’indirizzo)
se MODO1 = 10 l’operando è immediato, cioè
OP1 è direttamente il valore
dell’operando
Lo stesso vale per il secondo operando!
29
Linguaggio macchina e
assembler (10)
• Tipicamente la codifica di una istruzione ‘
lunga come una parola o multipli della
parola per poterla leggere dalla memoria
in modo più efficiente :
– es : con parole di 4 byte (32 bit)
Codice operativo
4bit
Modo1
2bit
Op1
Modo2
Op2
12bit
2bit
12bit
30
Linguaggio macchina e
assembler (11)
• Problema …..
– es : con 12 bit posso indirizzare ‘solo’ 212
parole di memoria centrale (RAM) !
Codice operativo
4bit
Modo1
2bit
Op1
Modo2
Op2
12bit
2bit
12bit
Cioè posso avere al massimo una RAM di 4K
parole … se ne ho di più (oggi si arriva
tranquillamente a 512K e siamo sempre in
aumento …) devo inventarmi codifiche
diverse….
31
Linguaggio macchina e
assembler (12)
MODI
00 registro
01 memoria
10 immediato
CODICI OPERATIVI
ADD
0001
LOAD
0110
STORE 0111
• Codifica binaria di
LOAD 01101, R1
ADD
2, R1
STORE R1, 11100
Codice operativo
4bit
Modo1
2bit
Op1
Modo2
Op2
12bit
2bit
12bit
0110
01
01101
00
00001
load
0001
10
00010
01
00001
add
0111
00
00001
01
11100
store
32
Il processore
• Come è strutturato il processore per riuscire
ad eseguire i programmi in linguaggio
macchina che abbiamo appena visto ….
• Dati e programmi sono codificati in binario
e risiedono in Memoria Centrale (RAM) ad
opportuni indirizzi
33
Il processore (2)
• Esegue il seguente ciclo ininterrottamente :
1. (fetch) legge una nuova istruzione da eseguire
dalla memoria centrale
2. (decode) risale alla operazione richiesta
decodificando la rappresentazione binaria
3. (execute) porta a termine l’operazione richiesta
34
Il processore: struttura base
M
e
m
o
r
i
a
c
e
n
t
r
a
l
e
PC
Bus controllo
Bus
indirizzi
Bus dati
M
A
R
Operazione
PSW
Esegui
IR
Parte controllo
Registro/i coinvolti
M
D
R
R0
R1
R2
...
R16
ALU
Registri
generali
Esito
Processore
35
Il processore struttura base (2)
• PC (program counter)
indica l’indirizzo di memoria della prossima
istruzione da eseguire
• IR (Instruction register)
contiene copia della codifica dell’istruzione da
eseguire
• MAR, MDR (Memory Address Register,
Memory Data Register)
contengono l’indirizzo della cella di memoria
che vogliamo leggere/scrivere (MAR) ed i dati
da/per la memoria (MDR)
36
Il processore struttura base (3)
• PSW (program status word)
contiene informazioni, opportunamente
codificate, sull’esito di operazioni aritmetico
logiche o sull’esito di operazioni di confronto e
informazioni sul funzionamento della macchina
(le vedremo qundo parleremo dei sistemi
operativi)
• ALU (Arithmetic-Logic Unit)
effettua operazioni di tipo aritmetico e logicobooleano (+,-,and,or …)
37
Un esempio : ADD 2, R1 (fetch 1)
Indirizzo della istruzione
memoria
Bus
controllo
000..01
40
Bus
indirizzi
Bus dati
40
M
A
R
PSW
Esegui
IC
Parte controllo
Registro/i coinvolti
M
D
R
R0
R1
R2
...
R16
codifica
PC
Operazione
ALU
Registri
generali
Esito
Processore
38
Un esempio : ADD 2, R1 (fetch 2)
Indirizzo della istruzione
memoria
Leggi!
41
40 000..01
PC
Operazione
PSW
Esegui
IC
Parte controllo
40
Bus
indirizzi
Bus dati
MAR
M
D
R
Registro/i coinvolti
R0
R1
R2
...
R16
codifica
ALU
Registri
generali
Esito
Processore
39
Un esempio : ADD 2, R1 (fetch 3)
memoria
41
40 000..01
PC
Operazione
PSW
Esegui
IC
Parte controllo
000110000100100001
Bus
indirizzi
MAR
Bus dati
MDR
Registro/i coinvolti
R0
R1
R2
...
R16
ALU
Registri
generali
Esito
Processore
40
Un esempio : ADD 2, R1 (dec)
memoria
41
40 000..01
PC
add
PSW
Esegui
IC
Parte controllo
000110000100100001
Bus
indirizzi
MAR
Bus dati
MDR
Registro/i coinvolti
R0
R1
R2
...
R16
ALU
Registri
generali
Esito
Processore
41
Un esempio : ADD 2, R1 (exe 1)
memoria
41
40 000..01
PC
add
PSW
Esegui
IC
Parte controllo
000110000100100001
Bus
indirizzi
MAR
Bus dati
MDR
Registro/i coinvolti
00010
R1
R2
...
R16
ALU
Registri
generali
Esito
Processore
42
Un esempio : ADD 2, R1 (exe 2)
memoria
41
40 000..01
PC
add
PSW
Esegui
IC
Parte controllo
000110000100100001
Bus
indirizzi
MAR
Bus dati
MDR
Registro/i coinvolti
00010
34
R2
...
R16
ALU
Registri
generali
Esito
Processore
43
Un esempio : ADD 2, R1 (exe 3)
memoria
41
40 000..01
PC
PSW
IC
Parte controllo
000110000100100001
Bus
indirizzi
MAR
Bus dati
MDR
Registro/i coinvolti
00010
36
R2
...
R16
ALU
Registri
generali
Esito
Processore
44
Il processore : il clock ed i GHz
• I vari sotto-passi che compongono
l’esecuzione di una istruzione seguono
algoritmi cablati nei circuiti della macchina
• L’esecuzione è sincrona,
– cioè esiste un segnale di ‘inizio della
sottooperazione’ (detto tick, in quanto generato
da un clock) riconosciuto da tutti i componenti
• La frequenza con cui viene inviato il tick è
misurata in ‘numero di tick al secondo’ (Hz)
– nei computer attuali 1Ghz (giga hertz), ovvero
uno al nanosecondo, o più
45
Il processore : nella realtà ...
• La struttura è estremamente più complessa
– ci sono più registri interni di quelli mostrati, es
Stack Pointer (SP) usato per implementare le
chiamate a sottoprogrammi
• Vengono eseguite più attività in parallelo:
– pipelining : si eseguono fasi diverse di
istruzioni consecutive contemporaneamente (es.
fetch I3, decode I2, execute I1...)
– superscalari : più istruzioni sono eseguite in
parallelo (duplicazione unità funzionali)
46
Il processore : nella realtà … (2)
• E molto altro ancora ….
• Per chi è interessato
– Patterson Hennessy. Computer Organization
and Design: The Hardware / Software Interface
(3ed). Morgan and Kaufmann, 2004
47
Le memorie
• Cosa vorremmo :
– una memoria veloce
– abbastanza grande da contenere tutti i dati e i
programmi che servono
– persistente (o non volatile) cioè capace di
mantenere il suo contenuto anche in assenza di
alimentazione elettrica
– di basso costo
48
Le memorie (2)
• Cosa può fare la tecnologia ?
– Memorie relativamente piccole (qualche
centinaio di MB) e veloci, volatili, a costo
medio alto
• RAM : lettura e scrittura nell’ordine delle decine di
nanosecondi per parola
– Memorie grandi, molto capienti (decine di GB),
persistenti e lente
• Dischi rigidi : lettura e scrittura nell’ordine di alcuni
millisecondi per blocco (qualche KB)
• Nastri magnetici, CD ROM, DVD
49
Le memorie (3)
• I computer quindi utilizzano supporti di
memorizzazione di più tipi :
– una memoria centrale, tipo RAM : contiene i
programmi durante la loro esecuzione ed i dati
relativi
• altrimenti il processore sarebbe per la maggior parte
del tempo fermo in attesa di dati da/per la memoria
– una o più memorie di massa (dischi etc.) : che
mantengono tutti i dati ed i programmi in attesa
di essere eseguiti (in modo persistente)
50
La memoria centrale
51
Struttura di un calcolatore (ancora!)
RAM
(memoria centrale)
Processore
bus
Linee dati, indirizzi e controllo
Interfaccia
di I/O
Interfaccia
di I/O
Interfaccia
di I/O
Interfaccia
di I/O
schermo
dischi
mouse
modem
52
Bus
indirizzi
00003
Bus
controllo
Decodificatore
Struttura di una RAM elettronica
0
0
0
1
0
.
.
0
0
0
0
0
0
0
1
2
1 0 1 1 0 0 3
4
...
Indirizzo
Dato letto o
da scrivere
1 0 1 1 0 0
Bus dati
Parola :
gruppo minimo
di bit
indirizzabili
memoria
53
Struttura di una RAM elettronica (2)
• La dimensione massima della RAM è data
dalla dimensione della parte indirizzi del
bus
– al solito con N linee posso indirizzare da
0 a 2N-1
• Velocità, ordine decine di nanosecondi
– ancora troppo lenta per i processori attuali (1 op
elementare al nanosecondo o più)
54
Struttura di una RAM elettronica (3)
E allora ?
• Si usano memorie velocissime e molto
piccole realizzate con tecnologia speciale
• Si usa il principio dello scaffale e della
scrivania ovvero
– tengo impilati sulla scrivania i testi che sto
consultando per la mia attività corrente
– se prendo un nuovo testo dallo scaffale
generalmente poi lo poso per un po’ sulla
scrivania in attesa che mi serva di nuovo
55
Memoria cache
Memoria piccola
e molto veloce
Processore
Cache
RAM
56
Memoria cache
Memoria piccola
e molto veloce
Processore
Cache
Copia dei dati usati
di recente
RAM
Tutti i dati
57
Memoria cache (2)
Algoritmo seguito:
• Il dato viene cercato prima nella cache
• Se è presente abbiamo finito (cache hit)
• Se non è presente si legge in RAM e si
mette una copia nella cache (cache miss)
• Per le scritture generalmente si scrive la
RAM e si aggiorna la copia se c’è
58
Memoria cache (3)
• Costo medio di un accesso :
tempo_RAM *p + tempo_cache * (1-p)
– p è un valore compreso nell’intervallo (0,1) ed
esprime la probabilità che si verifichi un cache
miss
– p può essere reso piccolo usando il principio di
località
59
Memoria cache (4)
• Località temporale
se un programma accede una parola al tempo t è
molto probabile che la stessa parola sia
acceduta di nuovo a breve
• Località spaziale
se il programma accede all’indirizzo K è molto
probabile che anche gli indirizzi vicini siano
acceduti a breve
60
Memoria cache (5)
E se devo inserire un nuovo dato e non c’è più
posto nella memoria cache?
– Questo accade perché le memorie cache sono
molto più piccole delle RAM (< 1MB)
– La soluzione è sovrascrivere una posizione già
in uso.
– Ci sono diverse strategie : di solito si
sovrascrive la posizione con dati utilizzati meno
di recente (strategia LRU Least Recently Used)
applicando il principio di località.
– Nelle cache si usa con successo anche la
Random
61
Memoria cache (6)
• I computer attuali hanno tutti 1 o più livelli
di cache
• Si riesce ad approssimare la velocità della
memoria più piccola e le dimensioni della
memoria grande a prezzi contenuti
62
Le memorie secondarie
63
Hardware del disco (1)
Testine (una per superfice)
Braccio (direzioni movimento)
1
Superfici
0
Struttura di un disco rigido
64
Hardware del disco (2)
settore
Unità minima di
informazione
leggibile/scrivibile
Ampiezza standard:
512 byte
traccia
• Ogni superficie è divisa in tracce concentriche
(una per ogni possibile posizione della testina)
65
Struttura di un settore
preambolo
dati
dati
ECC
Codici correttori di errore :
dati in più per accorgersi se
la lettura è andata bene
Permette alla testina di capire che
sta iniziando un nuovo settore, fornisce
il numero del settore etc
66
Sommario memorie
Tipo
Dimensioni
T. accesso
Volatile?
Registri
< 1KB
< .5 ns
si
Cache
< 1MB
< 10ns
si
RAM
< 1GB
< 100ns
si
Dischi
> 50 GB
10 ms ca.
No
Nastri
> 10 GB
100 ms ca.
No
10 ms ca
No
10 ms ca
No
CD-ROM
650 MB
CD-RW
DVD
17 GB
(Digital Versatile Disc)
67
Dispositivi di ingresso/uscita
(I/O)
(o periferiche)
68
Struttura di un calcolatore (5)
RAM
(memoria centrale)
Processore
bus
Linee dati, indirizzi e controllo
Interfaccia
di I/O
Interfaccia
di I/O
Interfaccia
di I/O
Interfaccia
di I/O
schermo
dischi
mouse
modem
69
La connessione dei dispositivi di I/0
(periferiche)
• L’interfaccia (adapter) :
– traduce i segnali interni al calcolatore in modo
comprensibile alla periferica
– mantiene informazioni sullo stato della periferica
• La periferica
– è connessa all’interfaccia tramite porte di I/O
(mouse, tastiera …)
– oppure è integrata assieme all’interfaccia
internamente al calcolatore (dischi, schede di rete)
70
La connessione dei dispositivi di I/0
(periferiche) (2)
• Diversi tipi di porte :
– seriali (i bit arrivano uno alla volta)
• mouse, modem, collegamenti wireless,IR
– parallela (tutto il byte assieme)
• stampante
• Diversi standard per scambiare il segnale
sui vari tipi di porte :
– seriale : RS - 232C, USB, Firewire,Bluetooth
– parallela : Centronics
71
La connessione dei dispositivi di I/0
(periferiche) (3)
Dati da/per
la periferica
Sottoprogramma per realizzare
l’operazione richiesta
Unità di
controllo
Periferica
porta
Registro dati
Registro stato
Interfaccia I/O
Operazione /
esiti
Bus dati
Bus controllo
Bus indirizzi
72
La connessione dei dispositivi di
I/0 (periferiche) (4)
• Vari tipi di gestione delle interazioni con le
periferiche
– a controllo di programma : il processore esegue
personalmente tutti i trasferimenti dalla RAM
alle periferiche e viceversa
– in DMA (Direct Memory Transfer) l’interfaccia
può accedere direttamente alla RAM
• possibilità di trasferire dati mentre il processore
elabora
• la periferica avverte quando ha finito attraverso una
particolare linea di controllo del bus (interruzione)
73
L’hardware del Video (1)
Scheda
grafica
Parallel port
Segnale analogico
per il dispositivo
Si usano delle schede di interfaccia speciali che
effettuano tutto il calcolo necessario all’invio dei
segnali analogici per il video
74
Domande ed esercizi
• È possibile far eseguire direttamente al
processore un programma ad alto livello
(C/Java)?
• Che differenza c’è fra linguaggio assembler
e linguaggio macchina?
• Cosa contiene un file eseguibile?
• Cos’è un compilatore?
75
Domande ed esercizi (2)
• In cosa consiste il ciclo fetch, decode
execute?
• Che differenza c’è fra una memoria
persistente ed una volatile?
• Supponedo un hit-rate dell’80%, tempo di
accesso alla cache di 1ns, e tempo di
accesso in RAM di 70ns, calcolare il tempo
medio di ogni accesso alla memoria.
76
Domande ed esercizi (3)
• Perché è necessario utilizzare diversi tipi di
memorie all’interno della macchina?
• A cosa servono i registri PC ed IC del
processore?
• Come vengono collegati i dispositivi?
• Fornire esempi di informazioni che vengono
inviate sui diversi gruppi di linee del bus
• Costruire la tabella di verità di
– (~ a) AND (b OR c)
77
Scarica

Lucidi