Sei sulla pagina 1di 247

Sistemi e reti

Classe 3 – 2021/22
Architettura del computer

DEFINIZIONI COMPUTER

2
Architettura del computer

DEFINIZIONI COMPUTER
- Dispositivo fisico che implementa il funzionamento di una
macchina di Turing
- Dispositivo in grado di elaborare un programma sulla base di dati
in ingresso (INPUT) e di restituire i risultati dell'elaborazione in
uscita (OUTPUT)
- Interconnessione di un insieme di sottosistemi (unità)
concorrenti e interagenti direttamente o
indirettamente al fine di fornire un prefissato numero di
servizi (strutturale, HW)
3
Architettura del computer

DEFINIZIONI COMPUTER

CONCORRENTI: le attività vengono svolte nello stesso tempo

INTERAGENTI: l’attività di un sottosistema comincia prima che


termini l’attività dell’altro (oppure DISGIUNTI)
Interazione INDIRETTA: logicamente indipendenti ma utilizzano le
stesse risorse
Interazione DIRETTA: quando dipendono l’uno dall’altro
4
Architettura del computer

DEFINIZIONI COMPUTER
(funzionale, SW)
Sistema di elaborazione: interconnessione di 2 sottosistemi:
- sezione di controllo SC = SW
- sezione operativa: SO = HW

La sezione operativa invia alla sezione di controllo input e riceve i


comandi da eseguire:
Il computer svolge il compito di eseguire programmi

5
Architettura del computer

TIPI DI COMPUTER
Classificati in base al compito che devono svolgere:

general purpose: gestiscono


diverse applicazioni (esempio PC)

special purpose: sistemi dedicati a una sola


specifica applicazione (esempio microcontrollori)

6
Architettura del computer

TIPI DI COMPUTER
Classificati in base tipo di sistema operativo:

monoutente/multiutente

monotasking/multitasking

7
Architettura del computer
TIPI DI COMPUTER
Classificati in base alla capacità di integrazione: quanti
transistor sono contenuti in un circuito elettronico integrato:

- Small Scale Integration (SSI) < 10


- Mediun SI 10< 100
- Large SI 100< 10000
- Very Large SI 10000<100.000
- Ultra Large SI 100.000 < 10.000.000

8
Architettura del computer
TIPI DI COMPUTER
Classificati in base alla potenza di calcolo e al tipo di uso:
- MAINFRAME: macchina centrale e
diversi terminali secondari
- SUPERCOMPUTER: alta potenza di calcolo
- MINICOMPUTER: minor numero di
terminali rispetto ai mainframe
- MICROCOMPUTER (1970-80)
- HOME COMPUTER (1980-1990)
- PERSONAL COMPUTER (PC)
9
Architettura del computer
TIPI DI COMPUTER
- WORKSTATION: maggiori risorse di
elaborazione (grafica e calcolo)
- MICROCONTROLLORI: specifiche applicazioni
- SISTEMI BAREBONE: PC assemblati
non aggiornabili da parte dell'utente,
dimensioni ridotte
- NOTEBOOK / NETBOOK
- PDA
- TABLET
- SMARTPHONE
10
Architettura del computer

I componenti elettronici che formano un computer appartengono a


due categorie:

- Porte logiche
- Generatori di segnali

11
Architettura del computer

PORTE LOGICHE
Circuiti elettronici elementari in gradi di svolgere le operazioni
logiche dell'algebra booleana, basati sui valori VERO, FALSO.

Le porte principali sono


- AND: vero se entrabe sono vere
- OR: vero se almeno uno è vero
- NOT: vero se l'ingresso è falso

12
Architettura del computer

GENERATORI DI SEGNALE

Componenti in grado di produrre un segnale periodico utile a


sincronizzare gli elementi hardware presenti nei computer

Esempio: segnale di clock

13
Architettura del computer

L'insieme dei componenti di un sistema di elaborazione vengono


progettati e uniti logicamente per formare l'architettura del
computer
→ ARCHITETTURA HARDWARE

Esiste anche l'architettura software che comprende il


sistema operativo (il software che si occupa di gestire e controllare
le risorse hardware)

14
Struttura dell'elaboratore

Modello di Von Neumann: modello di calcolatore convenzionale

Un sistema di elaborazione nella quale viene eseguito un


ISTRUZIONE alla volta in ordine SEQUENZIALE, a meno che
l'istruzione non indichi una sequenza diversa.

15
Struttura dell'elaboratore

Modello di Von Neumann: sottosistemi

1- sottosistema della memoria


2- sottosistema di calcolo
3- sottosistema di input-output
4- sottosistema di comunicazione (BUS) per far interagire i
sottosistemi precedenti

16
Struttura dell'elaboratore

Modello di Von Neumann

Questo modello è tuttora utilizzato in tutti gli elaboratori, l’evoluzione


ha riguardato i singoli elementi e l’ottimizzazione del funzionamento
degli elementi fra di loro

17
Struttura dell'elaboratore

CPU: è l’elemento principale di elaborazione della macchina di Von


Neumann:
Funzioni:
- Riceve dei comandi e dei dati da elaborare
- Gestisce le funzionalità delle periferiche e della memoria

MICROPROCESSORE: il dispositivo fisico che realizza le funzioni


della CPU

18
Struttura dell'elaboratore

CPU:
- preleva e modifica il contenuto della memoria
- preleva e modifica le informazioni dei dispositivi di I/O

La velocità della CPU è legata alla frequenza di clock: indica il


numero di azioni al secondo (CICLI MACCHINA) svolte dalla CPU

Clock: segnale elettrico di ampiezza e frequenza costanti usato per


sincronizzare tutti i dispositivi che comunicano con il
microprocessore (in istanti ben precisi)
19
Struttura dell'elaboratore

MIPS: numero di ISTRUZIONI al secondo


eseguite dalla CPU

Ma la CPU impiega diversi cicli macchina per eseguire un'istruzione

20
Struttura dell'elaboratore

La frequenza di clock indica quanti CICLI macchina esegue il


processore in un secondo.
Ma numero di cicli macchina <> numero di istruzioni al secondo
→ alcune istruzioni richiedono più cicli macchina per essere
eseguite.

21
Struttura dell'elaboratore

ISTRUZIONI
- indica la codifica di tutti i comandi eseguibili dal processore (è
composto da 0 e 1): LINGUAGGIO MACCHINA

Tali istruzioni derivano da un programma scritto in un altro


linguaggio (evoluto) tradotto in linguaggio macchina
LINGUAGGIO ASSEMBLY: primo linguaggio superiore al linguaggio
macchina

22
Struttura dell'elaboratore

FUNZIONAMENTO DI UNA CPU:


- ESTRAE le istruzioni dalla memoria
- CODIFICA le istruzioni
- ESEGUE le istruzioni

Tutte le elaborazioni sono sincronizzate rispetto ad un orologio di


sistema (clock)

La CPU stabilisce le operazioni da eseguire (unità di controllo)

23
Struttura dell'elaboratore

MEMORIE: contengono i dati e i comandi da elaborare per il


processore

Classificazioni:
- Memorie interne: veloci, di capacità ridotta, costo elevato, volatilità
informazioni
- Memorie esterne: più lente delle interne, elevata capacità, costo
basso, conservano informazioni
24
Struttura dell'elaboratore

MEMORIA

ROM: è di sola lettura e permanente, usata per memorizzare


programmi non modificabili e per i dati di avviamento (BIOS)

RAM: ad accesso casuale, volatile e riscrivibile, usata per i dati e


programmi temporanei

25
Struttura dell'elaboratore

MEMORIA
Immagazzina istruzioni e dati

È organizzata in locazioni o CELLE in grado di memorizzare un'unità


di informazione (byte)

L'accesso alle celle avviene attraverso indirizzi numerici (memory


address) che identificano la casella dove si trova il dato: INDIRIZZI
LOGICI
26
Struttura dell'elaboratore

MEMORIA

TEMPO DI ACCESSO: tempo necessario per leggere o scrivere un


dato su una cella di memoria
(ordine nanosecondi)

27
Struttura dell'elaboratore

PERIFERICHE DI INPUT/OUTPUT

Dispositivi che consentono al processore di dialogare con l’utente:


ricevere informazioni dall’esterno (input: inviano dati al processore);
fornire i risultati dell’elaborazione (output: periferiche alle quali il
microprocessore invia i dati)

28
Struttura dell'elaboratore

PERIFERICHE DI INPUT/OUTPUT

attraverso le periferiche è possibile gestire i bit che vengono inviati


e/o ricevuti dai dispositivi (SEGNALI)

CONTROLLER: dispositivo che che si pone tra il sistema e la


periferica per gestire il dialogo, dotato di un PROTOCOLLO DI
COMUNICAZIONE: insieme di regole che governano la
comunicazione tra CPU e dispositivo

29
Struttura dell'elaboratore

BUS
Insieme di collegamenti e dispositivi che permette il dialogo fra
processore, memorie e periferiche, per scambiarsi
- I dati (bus DATI)
- Le informazioni sulla posizione dei dati (bus INDIRIZZI)
- Lo stato di funzionamento di processore, memorie periferiche (bus
di CONTROLLO)

30
Struttura dell'elaboratore

BUS

DATA BUS: bidirezionale


ADDRESS BUS: monodirezionale: indica la cella di memoria (o il
dispositivo) sul quale la CPU vuole operare
CONTROL BUS: bidirezionale: trasporta gli ordini della CPU e
restituisce i segnali di “condizione” dei dispositivi

31
Struttura dell'elaboratore

MODELLO NON VON NEUMANN


→ modello HARVARD
- dati e istruzioni non condividono la stessa memoria
- usata per i DSP (digital signal process): trattamento audio e video

oppure

PIC (programmable interface controller) : esempio microcontrollori

32
Struttura dell'elaboratore

MODELLO NON VON NEUMANN


→ modello HARVARD

33
Struttura dell'elaboratore

MODELLO NON VON NEUMANN


La gestione della memoria dati e delle istruzioni avviene su circuiti
separati. L' unità centrale può effettuare un accesso ai due bus
contemporaneamente e si può eseguire una istruzione per ogni ciclo
macchina.

I due bus possono avere ampiezze diverse: ad esempio, nei PIC


con bus dati a 8 bit, il bus istruzioni può essere ampio 12, 14 o 16
bit.

34
Architettura dell'elaboratore

DEFINIZIONI COMPUTER
Dispositivo fisico che implementa il funzionamento di una
macchina di Turing
AUTOMA



35
Architettura dell'elaboratore

AUTOMA
Dispositivo in grado di svolgere un’attività senza l’intervento
dell’uomo
In sintesi possiamo vedere l’automa come:
input  AUTOMA output
(comandi/stimoli) (risposte/azioni)

36
Architettura dell'elaboratore

AUTOMA
Esempio: Ascensore di una palazzina
INGRESSO: pressione del tasto
USCITA: si muove al piano (azione)
Le azioni dipendono dal piano in cui si trova e dal pulsante
premuto
 Oggetto dotato di MEMORIA

37
Architettura dell'elaboratore

AUTOMA
Esempio: Semaforo
Ingresso: segnale temporizzato di sincronismo
Uscita: accende una luce (colore R, V, G)

38
Architettura dell'elaboratore

Un automa è un sistema dinamico, discreto e a stati finiti


caratterizzato da:
- Un numero finito di ingressi I.
- Un numero finito di uscite U.
- Un numero finito di stati Q, tra cui un solo STATO INIZIALE e uno
o più STATI FINALI (obiettivi).

39
Architettura dell'elaboratore

Un automa è un sistema dinamico, discreto e a stati finiti


caratterizzato da:
...
- Un insieme di regole definite da una FUNZIONE DI
TRANSAZIONE DI STATO che determina lo stato futuro noto lo
stato attuale e l’ingresso
Un insieme di regole definite da una FUNZIONE DI TRANSAZIONE
DELLE USCITE che fornisce il valore dell’uscita noti lo stato attuale
e l’ingresso

40
Architettura dell'elaboratore

Un automa può essere rappresentato graficamente da un GRAFO


I grafi sono costituiti da NODI (cerchi) e ARCHI ORIENTATI (linee
che uniscono i nodi)
I nodi rappresentano gli stati
Gli archi rappresentano un evento che indica l’ingresso, la
transazione di stato e di uscita
(rappresentati sopra l’arco l’ingresso e l’uscita)
(Grafo di Mealy)

41
Architettura dell'elaboratore

Esempio grafo

L’arco che unisce q0 a q1 fornisce la seguente informazione:


Se l’automa si trova nella condizione q0 ed arriva un ingresso a,
passa nella condizione q1 producendo in uscita il valore NO

42
Architettura dell'elaboratore

Esempio Automa
Determinare una macchina sequenziale in grado di riconoscere la
sequenza di caratteri OK
Ingressi: {0,K}
Uscite: {SI,NO}

43
Architettura dell'elaboratore
Esempio Automa
Rappresentare un automa che riconosca la parola ORO

44
Architettura dell'elaboratore

Esercizio
Ascensore a 3 piani con display che visualizza il numero di piano ed
un unico pulsante (x) che se posto a 1, fa salire l'ascensore di un
piano, a meno che non si trovi già all'ultimo piano; se posto a 0,
l'ascensore deve scendere di un piano, a meno che non si trovi già a
piano terra.

45
Architettura dell'elaboratore

Soluzione

46
Architettura dell'elaboratore

L’automa può essere rappresentato anche da una TABELLA DI


FLUSSO
- Sulle righe gli stati dell’automa
- Sulle colonne gli ingressi
- Nelle celle lo stato futuro e l’uscita

47
Architettura dell'elaboratore

Esercizio
Scrivere l’automa che emette in uscita una lattina dopo che sono
state inserite 2 monete da 20c. L’automa funziona solo con monete
da 20c e non fornisce resto

48
Architettura dell'elaboratore

Esercizio
Scrivere l’automa che emette in uscita una lattina dopo che sono
state inserite 2 monete da 20c. L’automa funziona solo con monete
da 20c e non fornisce resto

49
Architettura dell'elaboratore

Esercizio
Scrivere l’automa che emette in uscita una lattina dopo che sono
state inseriti 20c. L’automa funziona solo con monete da 10c e 20c e
non fornisce resto

50
Architettura dell'elaboratore

Esercizio
Scrivere l’automa che emette in uscita una lattina dopo che sono
state inseriti 20c. L’automa funziona solo con monete da 10c e 20c e
non fornisce resto

51
Architettura dell'elaboratore
Esercizio
Costruire una macchina distributrice di merendine dal costo di 1,5€
ciascuna (indipendentemente dal tipo di merenda scelta). La
macchina deve poter accettare e riconoscere monete da 1€ e 0,5€.
La macchina non da resto eventuali importi superiori a 1,5€
costituiscono credito per un acquisto successivo.

52
Architettura dell'elaboratore

Esercizio
Un sistema riceve sequenzialmente ma disordinatamente, rondelle,
viti e dadi. La macchina deve ordinare la successione secondo la
sequenza V-R-D. I pezzi non in ordine devono essere scartati.

53
Architettura dell'elaboratore

Esercizio
Scrivere l’automa che emette in uscita una lattina dopo che sono
state inseriti 20c. L’automa funziona solo con monete da 10c e 20c e
fornisce resto
I = {m10,m20,resto }
O = { lattina, 10c}

54
Architettura dell'elaboratore

Esercizio
Scrivere l’automa che emette in uscita una lattina dopo che sono
state inseriti 20c. L’automa funziona solo con monete da 10c e 20c e
fornisce resto
I = {m10,m20,resto }
O = { lattina, 10c}

55
Architettura dell'elaboratore

Esercizio
Cambia Monete
L’automa fornisce monete da 50c in cambio di monete da 10c e 20c.
L’automa non fornisce resto

56
Architettura dell'elaboratore

Esercizio
Cambia Monete
L’automa fornisce monete da 50c in cambio di monete da 10c e 20c.
L’automa non fornisce resto

57
Macchina di Turing

Rappresenta bene il concetto di sistema automatico

Dispositivo in grado di operare mediante una successione finita di


passi discreti e secondo determinate regole (programma), su un
numero finito di simboli.

58
Macchina di Turing

Composto dai seguenti elementi:


- Nastro infinito
- Testina lettura /scrittura TLS
- Un insieme di stati interni, tra cui lo stato INIZIALE
- Meccanismo di controllo (o programma)

59
Macchina di Turing

NASTRO:
- È la memoria principale della MDT
- È suddiviso il celle, ogni casella può contenere solo un simbolo
appartenente a un alfabeto finito di simboli
- Possiede un numero infinito di caselle
TLS: permette di scrivere o leggere sul nastro, accedendo ad una
sola casella per volta
60
Macchina di Turing

PROGRAMMA: è identificato come un automa perché assume uno


tra un numero finito di stati e
- Comanda la scrittura di un simbolo nella casella sotto al TLS
- Comanda lo spostamento della TLS verso destra, verso sinistra o
arresta il movimento
- Comanda la sostituzione dello stato attuale con quello successivo
61
Macchina di Turing

Durante il suo funzionamento la MdT evolve da una configurazione


all’altra:
- in corrispondenza del simbolo letto sul nastro e dello stato in cui si
trova (simbolo letto, stato)
- determina lo stato successivo e il movimento della testina (simbolo
scritto, stato successivo, movimento della testina)
All’inizio del processo sul nastro si trova la sequenza dei simboli di
input; al termine si trova l’output del procedimento eseguito
62
Macchina di Turing
Formalmente MDT è definita come una quintupla:
MDT= (IU, Q, mfn, sfn, dfn) dove:
IU: alfabeto dei simboli di ingresso e di uscita
Q: l’insieme finito degli stati compreso lo stato di arresto (STOP)
della macchina e lo stato di inizio
Mfn: funzione di trasformazione delle uscite (machine function)
Sfn: funzione di transazione degli stati (state function)
Dfn: funzione di movimento della testina (direction function): avanti
>, arresta =, indietro < 63
Macchina di Turing
Il PROGRAMMA definisce il comportamento della macchina
attraverso delle regole, che hanno la seguente forma:
(A, x, B, y, dir)
La regola viene applicata se siamo nello stato A e riceve in input la
lettera x sul nastro
- l’applicazione produce lo stato B
- la scrittura della lettera y
- lo spostamento verso una direzione dir
64
Macchina di Turing
Ogni regola può essere rappresentata con una MATRICE
FUNZIONALE di TRANSIZIONE che ha:
sulle colonne i simboli di ingresso
Sulle righe gli stati
Ogni cella contiene 3 informazioni
- lo stato futuro
- il simbolo di uscita
- il movimento della testina
65
Macchina di Turing

La Macchina opera come segue:


- Determina la regola da applicare in base alla coppia (stato interno,
simbolo letto)
- Se esiste tale combinazione, cambia stato, scrive simbolo, sposta
la TLS
- Se non esiste regola, termina l’esecuzione

OSS: non esistono due regole con stesso (stato,simbolo)


66
Macchina di Turing

Esempio: programmare la MdT che dato in input una stringa di A e B


sostituisca ogni occorrenza di A con B
Soluzione
Si tratta di cambiare A con B e spostare la testina sul prossimo
carattere
I = {A, B} Stati= {0, STOP} spostamenti={>,=}
REGOLE
(0, A, 0, B, >) (0, B, 0, A, >):
67
Macchina di Turing

Esempio: programmare la MdT che dato in input una stringa di A e B


sostituisca ogni occorrenza di A con B
Soluzione

Matrice di transazione:

68
Macchina di Turing

Esempio:
Progettare una MdT che data in ingresso una sequenza di simboli A
(A A B A …) sostituisca le lettere A di posto pari con la lettera B
[A A B A A…] --> [A B B B A …]

69
Macchina di Turing

Esempio:

Definiamo gli elementi della MDT


- UI: alfabeto {A, B,#} dove #=null simbolo fine input
- Q ={Stop, Q0, Q1} dove
Q0 è lo stato in cui la macchina legge una A di posto pari e
Q1 è lo stato in cui la macchina legge una A di posto dispari
70
Macchina di Turing

Soluzione:
Sia q0 lo stato quando legge A di posto pari
Sia q1 lo stato quando legge A di posto dispari
REGOLE
(q0, A, q1, A, >) (q0, B, q1, B, >)
(q1, A, q0, B, >) (q1, B, q0, B, >)

71
Macchina di Turing
Notazione a GRAFO
Per esprimere il programma si può utilizzare un grafo
STATO → NODO
La regola provoca la transazione in un altro stato con
sull’ARCO fra i noti i valori:
(letto, scritto, direzione)
Esempio: regola (0, A, 1, B >)
diventa:
72
Macchina di Turing

Esercizio
Dato un numero > 0 in base 10, scrivere sul nastro lo stesso numero
decrementato di 1
Supponiamo che la TLS si trova sulla cifra meno significativa, al
termine sulla prima cifra del numero
Esempi 39 30 100

73
Macchina di Turing

Soluzione
Dato un numero > 0 in base
10, scrivere sul nastro lo
stesso numero decrementato
di 1

74
Macchina di Turing

Esempio Macchina di Turing


Determinare una macchina di turing in grado di riconoscere la
sequenza di caratteri OK
Ingressi: {0, K, - }
Uscite: {SI,NO}

75
Macchina di Turing
Esempio Macchina di Turing
Determinare una macchina di turing in grado di riconoscere la
sequenza di caratteri OK
Ingressi: {0, K, - }
Uscite: {SI,NO}

76
Macchina di Turing

Scrivere

- Matrice di transizione
- Istruzioni per il simulatore: www.turingsimulator.net
77
Macchina di Turing

Esercizio Macchina di Turing


Programmare una MdT che, dato un nastro iniziale contenente una
sequenza di A con una P, termina la sua escuzione lasciando sul
nastro la somma di A presenti.
Esempio
AAPA → AAA
AAAAPAA → AAAAAA

78
Macchina di Turing

Esercizio
Dato un numero intero positivo n, (n div 2) è il quoziente della
divisione di n per 2. Ad esempio, 6 div 2 = 3 , mentre 9 div 2 = 4 .
Programmiamo una macchina di Turing che, dato un nastro iniziale
contenente una sequenza composta da n A consecutive (con n > 1),
termina la sua esecuzione lasciando sul nastro la sequenza
composta da (n div 2) A consecutive (senza considerare l’eventuale
resto).
79
Macchina di Turing

Esercizio

Ad esempio:

80
Macchina di Turing
MdT che risolva il problema in esame può ad esempio adottare la
seguente strategia:
1. scorre la sequenza di ingresso, partendo dalla A più a sinistra;
2a. se la sequenza di ingresso contiene una sola A, la cancella e
si ferma;
2b. se invece la sequenza di ingresso contiene almeno due A, le
cancella entrambe e va ad aggiungere una A alla sequenza “di
uscita”, nella parte del nastro che si trova a destra della sequenza di
ingresso. Quindi torna sulla cella più a sinistra di ciò che rimane
della sequenza di ingresso e riparte da (1) 81
Macchina di Turing

Una MdT che si comporti nel modo appena descritto può essere
definita dal seguente insieme di quintuple:
(0,A,1,-,>) (1,A,2,-,>) (2,A,2,A,>)
(2,-,3,-,>) (3,-,4,A,<) (3,A,3,A,>)
(4,A,4,A,<) (4,-,5,-,<) (5,A,5,A,<)
(5,-,0,-,>) (0,-,F,-,-)
Provare a scrivere il grafo e simulare il comportamento
82
Macchina di Turing

Esercizio

Programmare una MdT che calcola il successivo di un numero


binario

Supponiamo che la TLS si trova sull’ultimo carattere del numero


binario

83
Macchina di Turing

soluzione:
Programmare una MdT che calcola il successivo di un numero
binario: REGOLE
(q0, 0, q1, 1, <) (q0, 1, q0, 0, <) (q0, -, END,-, =)
(q1, 0, q1, 0, <) (q1, 1, q1, 0, <) (q1, -, 1, q0, -)
(q2, 0, q1, 1, <) (q2, 1, q2, 0, <) (q2, -, q1, 1, <)

84
Macchina di Turing
soluzione:
Programmare una MdT che calcola il successivo di un numero
binario (grafo)

85
Macchina di Turing

soluzione:
Programmare una MdT che calcola il successivo di un numero
binario (tabella)

86
Macchina di Turing

Esercizio

Una sequenza si dice palindroma se la sua lettura da sinistra


verso destra è uguale alla sua lettura da destra verso sinistra.
Programmare una Macchina di Turing che, dato un nastro
iniziale contenente una sequenza di “a” e “b” , termina la sua
esecuzione lasciando sul nastro la sola sequenza SI se la
sequenza iniziale è palindroma, la sola sequenza NO altrimenti.

87
Macchina di Turing
Soluzione

(0,a,s1,-,>) (0,b,s2,-,>) (0,-,s9,S,>)


(s1,a,s1,a,>) (s1,b,s1,b,>) (s1,-,s3,-,<)
(s2,a,s2,a,>) (s2,b,s2,b,>) (s2,-,s5,-,<)
(s3,a,s4,-,<) (s3,b,s7,-,<) (s3,-,s9,S,>)
(s4,a,s4,a,<) (s4,b,s4,b,<) (s4,-,0,-,>)
(s5,b,s4,-,<) (s5,a,s7,-,<) (s5,-,s9,S,>)
(s7,a,s7,-,<) (s7,b,s7,-,<) (s7,-,s8,N,>)
(s8,-,f,O,>)
(s9,-,f,I,>) 88
Struttura dell'elaboratore

PROCESSORE

89
Processore

MICROPROCESSORE: circuito integrato (chip) di silicio con


capacità di condurre la corrente elettrica (SEMICONDUTTORE)

90
Processore

Funzioni del microprocessore:


- sovrintende a tutte le operazioni del sistema
- esegue i calcoli aritmetici/logici

Componenti fondamentali del microprocessore:


- unità di controllo (CU)
- unità aritmetico/logica (ALU)
- Registri di memoria

91
Processore

REGISTRI: una cella di memoria contenuta all'interno della


CPU.

- La dimensione dei registri si esprime in bit


- Dipende dall'architettura dell'elaboratore
- Memorizzano temporaneamente dei dati
- Sono indirizzati da un nome specifico (es. AL)

92
Processore
FUNZIONAMENTO della CPU
(ciclo macchina)
- fase di fetch dell'istruzione: preleva dalla memoria il
codice macchina dell'istruzione da eseguire
- decode dell'istruzione: l'istruzione traferita in un
registro viene tradotta per emettere i segnali necessari
all'esecuzione
- fetch degli operandi: la traduzione dell'istruzione
permette di prelevare eventuali operandi dalla memoria
- Execute: la CPU emette i segnali per l'esecuzione
dell'istruzione
93
Processore

FETCH DELL'ISTRUZIONE

Fetch: prelevamento
La CPU dialoga con la MEMORIA per ottenere il codice
macchina dell'istruzione da eseguire
Come avviene il prelevamento?
LA CU legge nel registro PC (Program Counter) l'indirizzo della
cella di memoria in cui è memorizzata l'istruzione, preleva
l'istruzione dalla memoria, incrementa di 1 il registro PC
94
Processore

DECODE DELL'ISTRUZIONE

La CPU interpreta l'istruzione: codifica il codice macchina in


operazioni da eseguire in:
- circuiti logici costruttivi del processore
- microistruzioni contenute nella ROM

95
Processore

FETCH DEGLI OPERANDI

In base alla codifica dell'istruzione se necessario preleva dalla


memoria i dati per completare l'esecuzione dell'istruzione

→ operazioni di lettura della MEMORIA

96
Processore

EXECUTE DELL'ISTRUZIONE

La CU invia i segnali che rappresentano i comandi per


l'esecuzione dell'istruzione

97
Processore

Dettaglio passi:
1- lettura istruzione dalla memoria
2- decodifica
3- calcolo degli indirizzi operandi
4- caricamento operandi
5- esecuzione istruzione
6- salva il risultato in un registro/cella
7- analisi delle interruzioni, priorità di processo
8- calcola istruzione successiva, va passo 1
98
Processore
ARCHITETTURA INTERNA DELLA CPU

REGISTRI GENERALI
MAR: Memory Address Register, indirizza il bus address
MDR: Memory Data Register, indirizza il bus dati
UNITÀ di controllo:
- PC: Program counter
- IR: Instruction Register
- PSW: Process Status Word
ALU
BUS interno: collega gli elementi della CPU
99
Processore

ARCHITETTURA INTERNA DELLA CPU

100
Processore

ESEMPIO
Sommare il contenuto della cella di memoria 0008h al contenuto
di AL
AL = AL + val(0008h)
ASM: [0008h], AL

Codice macchina Istruzione: 00 05 80 00 00 00

Supponiamo che questa istruzione si trovi all'indirizzo (0100h)


101
Processore

ESEMPIO

PC= 0100h

IR = 00 05 80 00 00 00
AL = 0Ah

Memoria
0100h: 00 05 80 00 00 00
0008h: 05h
102
Processore

ESEMPIO

FETCH: viene prelevata l'istruzione nel registro PC


DECODE: viene decodificata l'istruzione presente in IR
FETCH recupera l'operando presente in 0008h (valore 05h)
EXECUTE: viene sommato il valore 05h al valore 0Ah, in cui
risultato 0Fh viene memorizzato nella posizione 0008h

103
Processore

REGISTRI GENERALI

- alcuni registri sono accessibili al programmatore (modello di


programmazione)
- altri vengono usati direttamente dalla CPU per le operazioni di
controllo (inaccessibili al programmatore)

104
Processore

REGISTRI inaccessibili al programmatore:

- MDR: contiene i dati che la cpu vuole inviare o ricevere dalla


MEMORIA o da I/O
- MAR: contiene l'indirizzo della cella di memoria o del
dispositivo I/O coinvolto nell'operazione
- IR: registro che contiene il codice operativo dell'istruzione
prelevata durante la fase di fetch

105
Processore

REGISTRI inaccessibili al programmatore:

106
Processore

REGISTRI accessibili al programmatore →


MODELLO DI PROGRAMMAZIONE:

Insieme degli elementi accessibili al programmatore mediante


linguaggio ASSEMBLY
Alcuni registri sono specializzati (svolgono una sola funzione)
altri
sono generali (usabili dal programmatore per qualsiasi scopo)

107
Processore

MODELLO DI PROGRAMMAZIONE

- PC (program counter): contiene l'indirizzo dove si trova


l'istruzione successiva da eseguire
(è un registro di tipo puntatore)
- PSW (process status word): registro degli stati, ogni bit
fornisce informazioni sul risultato dell'operazione effettuata
(registro dei flag)

108
Processore

MODELLO DI PROGRAMMAZIONE

- PSW flag:
ZF (zero flag): contiene true (1) quando il risultato dell'ultima
operazione =0, false (0) altrimenti
CF (carry flag): contiene true quando si verifica un riporto del bit
più significativo del risultato durante un'operazione aritmetica
OF (overflow flag): contiene true quando il risultato dell'ultima
operazione discorda dagli operandi o quando il risultato ha
ampiezza superiore alla capacità di memorizzazione 109
Processore

MODELLO DI PROGRAMMAZIONE

- PSW flag:
PF (parity flag): contiene true quando il risultato dell'ultima
operazione ha un numero di 1 pari
SF (sign flag): contiene true quando il risultato dell'ultima
operazione è negativo

110
Processore

REGISTRI GENERALI

Sono registri che ospitano temporaneamente i dati in corso di


elaborazione

Sono accessibili al programmatore

Ogni microprocessore ha una propria organizzazione dei registri

111
Processore

REGISTRI accessibili al programmatore

112
Processore

UNITÀ DI CONTROLLO

È il blocco che:
- invia i comandi esecutivi all'ALU in base alla decodifica
dell'istruzione e
- gestisce l'incremento del PC in modo da predisporsi
all'istruzione successiva e
- attiva l'esecuzione del tipo di operazione (LEGGI / SCRIVI/
ESEGUI) e
- riceve lo stato dell'operazione (tramite il PSW)
113
Processore

CPU ed
ESECUZIONE DELLE
ISTRUZIONI

114
Processore

Dettaglio passi:
1- lettura istruzione dalla memoria
Trasmette il contenuto del PC alla MAR e attiva la lettura, la
memoria riceve l'indirizzo e il comando di LETTURA e invia il
contenuto nel BUS DATI che viene salvato nel MDR
2- decodifica
Il contenuto del registro MDR viene trasferito al IR per la
decodifica dell'istruzione
115
Processore

3- calcolo degli indirizzi operandi


Se l'istruzione prevede la lettura di operandi in MEM avviene
una fase di FETCH DEGLI OPERANDI
4- caricamento operandi
Si trasmette nel MAR gli indirizzi prima calcolati e si attiva la
linea di LETTURA, il dato presente in MDR viene trasferito nel
registro di destinazione
116
Processore

5- esecuzione istruzione
Terminata l'esecuzione il valore prodotto dall'ALU viene salvato
nel registro destinazione
6- salva il risultato in un registro/cella
se il valore deve essere scritto in memoria occorre aggiornare il
MAR con la posizione in memoria, il MDR con il dato da scrivere
e attivare la linea SCRIVI 117
Processore

7- analisi delle interruzioni, priorità di processo


8- calcola istruzione successiva, va passo 1
Il calcolo aggiorna il valore del PC che indica la prossima
istruzione da esegure

118
Processore

ALU

È il blocco che esegue le operazioni sui DATI.


→ operazioni aritmetico / logiche
Opera su 1 o 2 operandi presenti in registri interni/memoria e
produce un risultato che è salvato in registro interno/ memoria

119
Processore
ALU

Possiamo immaginare la ALU come costituita dalla


combinazione di operatori AND, OR, NOT, XOR

X1 X2 AND
0 0 0
1 0 0
0 1 0
Il risultato è 1 (Vero) se entrambe le
1 1 1 variabili hanno valore 1

120
Processore

ALU

Possiamo immaginare la ALU come costituita dalla


combinazione di operatori AND, OR, NOT, XOR

X1 X2 O
0 0 R
0
1 0 1 Il risultato è 1 (Vero) se almeno una delle
0 1 1
variabili ha valore 1
1 1 1

121
Processore

ALU

Possiamo immaginare la ALU come costituita dalla


combinazione di operatori AND, OR, NOT, XOR

X NOT
0 1
1 0
Il risultato è la negazione della variabile

122
Processore

ALU

Possiamo immaginare la ALU come costituita dalla


combinazione di operatori AND, OR, NOT, XOR

X1 X2 XOR
0 0 0
1 0 1 Il risultato è 1 (Vero) se una sola delle due
0 1 1
1 1 0
variabili ha valore 1

123
Processore
ALU

Possiamo immaginare la ALU come costituita dalla


combinazione di operatori AND, OR, NOT, XOR

Esempio ADDIZIONATORE:

124
Processore
ALU

Possiamo immaginare la ALU come costituita dalla


combinazione di operatori AND, OR, NOT, XOR

Esempio ADDIZIONATORE:

125
Processore

ALU

Per realizzare un addizionatore a 4 bit senza riporto

126
Processore

ALU
Si realizzi un automa a stati finiti che, date in ingresso due
sequenze di bit, dal bit meno significato ai bit più significativi,
realizzi la somma binaria con l’algoritmo aritmetico della
somma bit a bit con riporto

127
Processore
ALU
Il sistema in ogni passo di calcolo deve ricordare il risultato della
somma dei due bit in ingresso al momento e l’eventuale riporto
generato dai due bit che andrà propagato ai due
bit seguenti. Il numero di stati del sistema è quindi pari a
quattro:

128
Processore

ALU
L’ingresso del sistema è costituito dai due bit da sommare. Le
configurazioni in ingresso possibili (corrispondenti all’alfabeto di
ingresso) sono quindi quattro: 00, 01, 10, 11.
L’uscita è costituita da un solo bit che può assumere solo due
configurazioni, 0 oppure 1, corrispondente alla somma dei due
bit in ingresso più l’eventuale riporto precedente.

129
Processore

ALU
Esempio : 101+11 =

130
Processore

Ogni processore possiede un “set” di istruzioni macchina che


costituiscono i programmi. (ISA Istruction Set Architecture)
Una distinzione fondamentale fra i processori è quella che li
differenzia in:
CISC: Complex Instructions Set Computer.
RISC: Reduced Instructions Set Computer.

131
Processore

La differenza è nel set di istruzioni.


I CISC hanno un linguaggio macchina formato da un numero
elevato di istruzioni, anche complesse.
Es.: Intel x86, Motorola 68000.

I RISC sono dotati di istruzioni più semplici e in numero minore.


Es.: PowerPC, Sparc.

132
Processore

L’obiettivo dell’evoluzione dei microprocessori è la riduzione del


tempo di esecuzione di un processo
Soluzioni:
- Scrivere programmi con il minor numero di istruzioni possibili
- Ridurre il numero dei cicli macchina per l’esecuzione delle
istruzioni
- Aumentare la frequenza di lavoro del microprocessore in modo
da ridurre il tempo di ciclo
133
Processore

Con tecnologia CISC l’ampio numero di istruzioni permette di


eseguire le operazioni con una specifica istruzione macchina
CISC ha come obiettivo la corrispondenza 1:1 tra codice
assembler e codice macchina, così il codice macchina è
compatto ed occupa meno spazio in memoria

134
Processore

Esempio: per l’operazione prodotto m*n se il processore è in


grado di eseguire la moltiplicazione a livello hw anche il
linguaggio macchina utilizza una solo istruzione.
Altrimenti l’istruzione deve essere tradotta in somme
successive: ad una istruzione del programma corrispondono più
istruzioni macchina

135
Processore

Ma la riduzione del numero di istruzioni non sempre corrisponde


a una riduzione del tempo complessivo di esecuzione.
La complessità delle istruzioni aumenta il numero di cicli
macchina per eseguirla e potrebbe anche aumentare la
dimensione del circuito con aumento del tempo di ciclo

136
Processore

L’architettura RISC tende a ridurre il numero di clicli per ogni


istruzione macchina e ridurre il tempo di ciclo AUMENTANDO la
frequenza
Statisticamente in un programma ci sono molte più operazioni
semplici (es addizioni) che complesse (es radice quadrata)

137
Processore

Se le istruzioni sono semplici, il percorso dei circuiti è più corto,


quindi aumenta la frequenza di lavoro
Il tempo aumenta per le istruzioni più complesse, che sono però
statisticamente in numero limitate

138
Struttura elaboratore

www.netacad.com

139
Struttura elaboratore

Fisicamente sulla SCHEDA MADRE si trovano gli elementi che


compongono l’elaboratore:
- CPU
- MEMORIA (RAM e ROM)
- SISTEMI DI RAFFREDDAMENTO
- ALIMENTATORE

Tutti questi elementi sono racchiusi all'interno di un CASE

140
Struttura elaboratore

La motherboard è probabilmente il componente più


importante di un computer;
svolge funzioni di integrazione e comunicazione tra tutti gli altri.

Si può definire come


un’infrastruttura di
collegamento tra i
componenti del
computer

141
Struttura elaboratore

È caratterizzata da:
- organizzazione (forma e design)
- supporto per il processore
- supporto per le periferiche (numero e tipo di alloggiamenti)
- prestazioni (indirettamente e direttamente, attraverso il
chipset)
- possibilità di aggiornamenti/espansioni

142
Struttura elaboratore

Il chipset è l’insieme dei processori


collocati sulla scheda madre che si
incaricano di gestire e coordinare il
funzionamento di tutti i componenti
presenti su di essa.

143
Struttura elaboratore

Il chipset è composto da due differenti circuiti integrati


- northbridge: collega la CPU alla MEM e grafica (AGP)
- southbridge: collega i diversi bus di espansione: PCI, USB,
IDE,....

FSB: front side bus: collega la CPU al northbridge

144
Struttura elaboratore

Il Socket (zoccolo) è il connettore, presente su ogni mainboard,


sul quale alloggia il microprocessore.

Lo zoccolo ha diversi formati, determinati i vari tipi di CPU


utilizzabili
- Pin Grid Array
- Land Grid Array

145
Struttura elaboratore

Socket 370 (Celeron)


Socket 7 ( Intel Pentium, Pentium MMX, AMD k5/K6/K6-2/K6-
III, Cyrix)
Slot 1( Pentium II e III,Celeron)
Slot A (Amd Athlon)
Socket A (462) - AMD Duron, AMD Athlon
Socket 754/939/940 - AMD Athlon 64 /FX 64
Socket 478 – Celeron, Pentium IV 478 fino all’anno 2004
Socket 775 – Pentium IV LGA775 a partire dal 2004
Socket 603/604 – Intel XEON
146
Struttura elaboratore

Socket FM2 – AMD Trinity Processor (2012)


Socket AM1 – AMD Atholon (2014)
Socket H4 1151 – Intel Skylake (2015)
Socket R4 LGA2066 – Intel Skylake-X, Kaby Lake-X (2017)

https://en.wikipedia.org/wiki/CPU_socket

147
Struttura elaboratore

CASE
- Influiscono sulla scelta del fattore di forma della motherboard
- devono consentire una buona circolazione dell'aria
- sono disponibili in diverse dimensioni
- case orizzontali
- full size tower
- tower compatto
- all-in-one

148
Struttura elaboratore

ALIMENTATORI
- Forniscono alimentazione a tutti i
componenti del computer
- È necessario sceglierli in base alle
esigenze attuali e future.
- Forniscono livelli di tensione diversi per
soddisfare le diverse esigenze dei
componenti interni.
POTENZA DI ALIMENTAZIONE
P=VxA
149
Struttura elaboratore
ALIMENTATORI

Di seguito sono riportati alcuni componenti più comuni del


computer e il relativo consumo energetico medio:
- Motherboard 35 W (valore minimo) 75 W (valore massimo)
- CPU 77 W (valore minimo) 120 W (valore massimo)
- Memoria 3 W (valore minimo) 4,5 W (valore massimo)
- Schede video 70 W (valore minimo) 470 W (valore
massimo)

http://outervision.com/power-supply-calculator
150
Struttura elaboratore

SISTEMI DI RAFFREDDAMENTO
- disperdono il calore generato dai componenti del computer
SCHEDE E SLOT DI ESPANSIONE
DISPOSITIVI DI STORAGE
PORTE VIDEO
PORTE GENERICHE

151
Struttura elaboratore
VIDEO:
https://www.youtube.com/watch?reload=9&v=bk5GjchtkI8

152
Struttura elaboratore

Memoria

153
Struttura elaboratore – Memoria

Memoria = elemento in grado di conservare un’informazione

Memorie Volatili = in grado di conservare l’informazione solo se


alimentate

Memorie Non Volatili = non perdono l’informazione anche se


non alimentate

154
Struttura elaboratore – Memoria

MEMORIA PRINCIPALE

Memorizza i programmi e i dati


Per una sola unità di elaborazione

- (calcolo parallelo): tanti calcolatori indipendenti che


interagiscono fra loro

Proprietà:
- Tempo di accesso(nanosecondi): richiesta dati, disponibilità
- Capacità memorizzazione: MB, GB 155
Struttura elaboratore – Memoria

Fisicamente le informazioni sono memorizzate in BIT: binary


digit (0, 1)
→ da un punto di vista eletttronico il bit è memorizzato in un
dispositivo detto FLIP-FLOP

156
Struttura elaboratore – Memoria

FLIP-FLOP:
- Scrittura: quando vengono attivati WRITE e SELECT il dato
presente viene memorizzato
- Lettura: quando vengono attivati READ e SELECT il valore
presente viene trasferito in uscita
READ Data
WRIRE FLIP-FLOP
SELECT

157
Struttura elaboratore – Memoria

CONTROL BUS: read, write


ADDRESS BUS: select
DATA BUS: data

READ Data
WRIRE FLIP-FLOP
SELECT

158
Struttura elaboratore – Memoria

159
Struttura elaboratore – Memoria

RAM = Random Access Memory


ogni locazione è individuata da un indirizzo e il contenuto è
letto/scritto in tempo costante

Memoria nella quale e possibile


Scrivere WRITE ( W )
Leggere READ ( R )
in qualunque locazione di memoria

160
Struttura elaboratore – Memoria

Fasi di operazioni lettura/scrittura

LETTURA
- La CPU genera l’indirizzo della cella e lo invia alla memoria
tramite l’address bus
- La memoria decodifica l’indirizzo e legge la cella interessata
- Lo stato dei bit della cella è trasferito sul data bus
- La memoria immette il dato sul data bus ed invia sul control
bus per la CPU: dato pronto

161
Struttura elaboratore – Memoria

Fasi di operazioni lettura/scrittura

SCRITTURA
- Microprocessore genera indirizzo su cui scrivere e lo invia
tramite Address bus
- La memoria decodifica l’indirizzo e attiva la cella interessata,
pronto per ricevere il dato
- Il MCPU invia il dato sul bus dati
- Il dato è trasferito in cella e la memoria comunica che il dato è
stato memorizzato
162
Struttura elaboratore – Memoria

TIPOLOGIE DI RAM

SRAM: informazione memorizzata in celle continuamente


alimentate; tempo di risposta breve (maggior velocità), consumi
elettrici elevati, costi di costruzione elevati

DRAM: cella costituita da condensatori che mantiene la carica,


circuito ricarica le celle; capacità maggiore perché celle piccole;
gestione complessa

163
Struttura elaboratore – Memoria

RAM Statica = se alimentata, conserva l’informazione per un


tempo infinito
Tempi di accesso: da 5 a 10nsec

RAM Dinamica = anche se alimenta, dopo un certo tempo perde


l’informazione
Tempi di accesso: da 20 a 70nsec

OSS nelle DRAM è necessario un rinfresco periodico dei dati

164
Struttura elaboratore – Memoria

TIPOLOGIE DI RAM

(DRAM) DDR Double data rate (flusso dati doppio): dati trasferiti
durante fronte di salita/discesa del clock

Es. DDR2 funziona a 400- 533 Mhz, identificati dal chip


DDR2-800 lavora a 400 Mhz

165
Struttura elaboratore – Memoria

TIPOLOGIE DI RAM

(DRAM) DDR Double data rate


- DDR3: standard presente per normali microprocessori
- DDR5: evoluzione, es per schede video

166
Struttura elaboratore – Memoria

ROM: l’informazione è registrata in modo


permanente nel momento della costruzione

Sola lettura, dati mai modificati

FUNZIONAMENTO:
- Lettura come la RAM: dato l’indirizzo legge l’informazione in
memoria

167
Struttura elaboratore – Memoria

PROM: programmabile ROM: la programmazione non avviene


in costruzione ma programmabile (1 Sola volta) autonomamente

EPROM: Erasable: esposizione del chip a radiazione


ultraviolette per un certo tempo, attraverso una finestra di
cancellazione

168
Struttura elaboratore – Memoria

Svantaggi EPROM:
- Cancella tutta la memoria
- Riprogrammabili solo per un certo numero di volte (es.10)
- Riprogrammabili off-line (togliere il chip, irradiarlo,
riprogrammarlo)
- Necessario proteggere la finestra di cancellazione dalla luce
solare

169
Struttura elaboratore

EEPROM: (elettronically erasable ROM)


Cancellabili elettricamente (flash ROM PROGRAMMABILI)
Vantaggi
- Tempi di cancellazione più veloci (10 millisec)
- Cancellabili on line, dall’alimentazione sulla sk madre
- Usati per aggiornare il bios con nuove versioni rilasciate dal
produttore
- Cancellabili in modo selettivo: una sola cella
EAPROM(elettronically alterable)
170
Struttura elaboratore – Memoria

INDIRIZZI DELLE CELLE DI MEMORIA

Memoria RAM di “H” parole di “N” bit


- H è una potenza del 2
- N solitamente può valere 1, 4, 8
Osservazione:
210 = 1.024 1K (Kilo)
220 = 1.048.576 1M (Mega)
230 = 1.073.741.824 1G (Giga)
171
Struttura elaboratore – Memoria

Memoria RAM 64K x 4

172
Struttura elaboratore – Memoria

Memoria RAM 64K x 4

SPAZIO DI INDIRIZZAMENTO
Quantità di celle presenti nella memoria
Esempio 64k
Ultimo indirizzo di memoria 65535

173
Struttura elaboratore – Memoria

DECODIFICA DELL'INDIRIZZO

Gli indirizzi sono codificati in binario


È necessario un decodificatore K – 2K
che traduce la sequenza binaria in un segnale che consente
di selezionare la cella coinvolta nell'operazione
→ attivare il segnale SELECT utilizzato nei flip-flop

174
Struttura elaboratore – Memoria

DECODIFICA DELL'INDIRIZZO

Address decoder
0
.
K D .
E .
C .
.
2K

175
Struttura elaboratore – Memoria

DECODIFICA DELL'INDIRIZZO

Address decoder
- il bus di controllo attraverso il segnale MEM attiva
l'address decoder.
- l'address decoder riceve il bus indirizzi e traforma nel
segnale select di attivazione del flip-flop che attiva la cella
interessata
176
Struttura elaboratore – Memoria

Punto Critico:
- comunicazione CPU MEM

Ottimale:
- capacità massima
- tempi di accesso al dato minimo

177
Struttura elaboratore – Memoria

La memoria all'interno della scheda madre di un PC è


organizzata in LIVELLI GERARCHICI:
- per ogni livello, si ha dimensione crescente e
- tempi di accesso decrescenti

Memoria CACHE: memoria temporanea che memorizza un


insieme di dati recuperabili ad altissima velocità

178
Struttura elaboratore – Memoria

Memoria CACHE: memoria conserva dati immediatamente


utilizzati microprocessore

CACHE CONTROLLER: dispositivo che permette al


microprocessore di gestire la memoria cache (non gestita dai
programmi)

179
Struttura elaboratore – Memoria

- Memoria CACHE: più veloci della memoria centrale; aumento


costi, basse capacità

- Memoria CACHE: integrata nel microprocessore, suddivisa in


3 livelli L1,L2,L3
Aumento capacità (8-12MB), diminuzione velocità

180
Struttura elaboratore – Memoria

Gestione CACHE
In memoria cache: dati della memoria centrale + posizione in
memoria centrale
Il cache controller verifica che il dato in memoria sia presente in
cache (dall’indirizzo richiesto)

Cache hit: trova il dato in cache, trasferisce velocemente

Cache miss: non trova in cache cerca in memoria centrale, e


carica anche in memoria cache
181
Struttura elaboratore – Memoria

Gestione CACHE

In memoria cache: quali dati rimpiazzare?


I dati non usati da più tempo LRU (last recently used)

182
Struttura elaboratore – Memoria

Gestione CACHE: scrittura dei dati

Aggiornare la mem centrale ai cambiamenti della cache:


- write-through: riporta immediatamente da cache a centrale
- write-back: l’aggiornamento è fatto all’eliminazione del dato
(LRU)

183
Struttura elaboratore – Memoria

Gestione CACHE

PROTOCOLLI DI COERENZA: garantire che i dati presenti in


cache e mem centrale siano aggiornati fra di loro (es mem
centrale dati aggiornati da altri processo: sist multiprocessore)

184
Struttura elaboratore – Memoria

Gestione CACHE

POSIZIONE dei dati in memoria cache:


- libero: dove c'è posto celle vicine
- vincolato: alle aree in mem centrale associato alla mem cache
(trasferimento + veloce ma gestione spazio libero)

185
Struttura elaboratore – Memoria

ESEMPIO: MC. 64 kB = 65536 byte


Dividiamo la MC in gruppi di 1 byte
0 1 … 65535 = 16 bit per indirizzare ogni cella di memoria

La memoria CACHE di 1024 byte


Posizioni 0..1023  10 bit

186
Struttura elaboratore – Memoria

Suddividiamo la CACHE in blocchi di 16 byte:


1024 /16 = 64 blocchi 2^6  6 bit

La memoria cache nei dati può contenere 64 blocchi dei 4096


della MC  12 bit
Una volta presente il blocco in cache, la posizione del dato
viene individuata dall’OFFSET (16 Byte  4 bit)

187
Struttura elaboratore – Memoria

Come determina se il blocco è presente?

Con una struttura associativa: es 64 celle di 12 bit, contiene i 12


bit che indicano la posizione in MC della cella contenuta in
CACHE

188
Struttura elaboratore – Memoria
Come avvengono le operazioni di lettura/scrittura all'interno di
un chip di memoria ?

All'interno del chip la memoria è vista come tabella a 2


dimensioni: ossia disposta per riga e colonna.

Per poter accedere al dato è necessario l'attivazione della Riga


indicata dall'indirizzo di riga (operazione ACTIVE)
Solo dopo che la riga viene “attivata” è possibile accedere alle
celle in essa contenuta.
OSS: è possibile attivare solo una riga per volta
189
Struttura elaboratore – Memoria

Memoria vista come tabella a 2 dimensioni: l'accesso ai dati


richiede
- un segnale di RAS: Row Address Strobe per identificare la riga
- un segnale di CAS Column Address Strobe per identificare la
colonna

Quando una riga è attiva è possibile effettaure sulle celle tutte le


letture/scritture che si desiderano specificando l'indirizzo di
colonna
190
Struttura elaboratore – Memoria

Nel momento in cui viene richiesta una cella che si trova su


un'altra riga, è necessario la Disattivazione della riga
(PRECHARGE)

Solo dopo aver “disattivato” la riga è possibile procedere


all'attivazione di un'altra riga e il ciclo di accesso si ripete...

191
Struttura elaboratore – Memoria

Le operazioni ACTIVE, READ/WRITE, PRECHARGE non sono


istantanee bensì il chip di memoria impiega un certo tempo a
realizzare ciascuna di esse

Tali tempi sono detti tempi di latenza (DELAY): indica il tempo


necessario affinché il dato venga letto dalla memoria

Durante questo tempo il processore deve attendere il dato

192
Struttura elaboratore – Memoria

Le latenze sono espresse in cicli di clock anziché in unità di


tempo

Esempio: una RAM a freq. 1000MHz ha un


ciclo di clock = 1 /1.000.000.000 sec = 1nsec.
Un tempo di latenza di 3 cicli significa, un tempo di attesa pari a
3 ns

193
Struttura elaboratore – Memoria

I principali tempi di latenza delle RAM


sono:
- RAS to CAS Delay: pausa tra segnale di
RAS e segnale di CAS per verificare
l'avvenuto indirizzamento, indica il numero
di cicli che è necessario attendere dopo il
comando ACTIVE prima di poter dare un
comando READ/WRITE (è il tempo che
impiega il chip ad attivare la riga)

194
Struttura elaboratore – Memoria
I principali tempi di latenza delle RAM
sono:
- CAS Latency Time: intervallo di tempo
tra l'istante in cui il comando di lettura
giunge ad una certa cella di memoria e
quello in cui inizia il trasferimento dei dati.
Indica il numero di cicli che è necessario
attendere tra il comando di READ e il
momento in cui il dato è disponibile sul
BUS (per WRITE rappresenta il tempo in
cui il dato è effettivamente memorizzato)
195
Struttura elaboratore – Memoria

I principali tempi di latenza delle RAM


sono:
- RAS Precharge time: tempo necessario
per attivare i circuiti di determinazione
della riga, il numero di cicli che è
necessario attendere tra il comando
PRECHARGE e il successivo comando
ACTIVE (è il tempo che impiega il chip a
“disattivare” la riga)

196
Struttura elaboratore – Memoria

Il tempo di latenza più importante è il CAS latency perché è la


latenza che si ripete più volte durante i normali cicli di accesso
alla RAM: spesso infatti capita di leggere/scrivere più volte sulla
riga attiva prima di dover accedere ad una riga diversa

197
Struttura elaboratore – Memoria
Il tempo di latenza, insieme alla frequenza sono i parametri per
valutare le prestazioni di una RAM.
Generalmente tali caratteristiche sono espresse dai costruttori
con la notazione:
PCxx–t(CAS latency)–t(RAS to CAS delay)–t(RAS Precharge)–

Esempio: PC2-6400-5-5-5-9- indica una RAM PC2-6400


(DDR2 a 800MHz) con t(CAS latency)= 5
t(RAS to CAS delay)=5
t(RAS Precharge)= 5 e altre latenze meno importanti.
198
Struttura elaboratore – Memoria

CISCO CAP 1. –

199
Struttura elaboratore – Memoria

Per incrementare le prestazioni della memoria centrale:


- aumentare la frequenza del FSB
- ottimizzare l'architettura del controller della memoria
- aumentare la frequenza di lavoro della memoria
- diminuire i tempi di latenza della memoria
- aumentare la quantità di memoria installata

200
Struttura elaboratore – MEMORIE SECONDARIE
MEMORIE SECONDARIE

- Sono tutte le memorie non necessarie al funzionamento


dell’elaboratore
- Usate solo in alcune fasi di funzionamento

201
Struttura elaboratore – MEMORIE SECONDARIE

registri

cache
capacità
velocità memoria centrale

costo dischi

nastri

202
Struttura elaboratore – MEMORIE SECONDARIE

Sono ad esempio:

● HARD DISK
● SSD
● FLASH MEMORY
● CD-ROM/DVD

203
Struttura elaboratore – MEMORIE SECONDARIE

HARD DISK
Memoria permanente di tipo magnetico con elevate capacità
(GB / TB)

Funzionamento:
- 1 o piu’ piatti rigidi rivestiti di materiale ferromagnetico x
registrazione magnetica dei dati
+
- testina lettura/scrittura (braccetto metallico che si muove
radialmente ai dischi)
204
Struttura elaboratore – MEMORIE SECONDARIE

HARD DISK

Per ogni piatto:

TRACCIA: cerchi concentrici

SETTORI: spicchi radiali al disco

CILINDRO: insieme delle tracce alla stessa distanza dal centro

205
Struttura elaboratore – MEMORIE SECONDARIE

HARD DISK

206
Struttura elaboratore – MEMORIE SECONDARIE

HARD DISK

INDIRIZZAMENTO
Modalità con la quale è possibile individuare sul disco la
posizione del dato richiesto:

CHS (clilindro, testina, settore): indica la geometria logica del


disco

207
Struttura elaboratore – MEMORIE SECONDARIE

Prima di poter scrivere su un supporto di memorizzazione è


necessario compiere l’operazione di FORMATTAZIONE
che consiste nel predisporre degli spazi all’interno dei quali
troveranno posto le informazioni.

208
Struttura elaboratore – MEMORIE SECONDARIE

Nel caso dei dischi la suddivisione è


rappresentata da cerchi concentrici
(detti tracce) a loro volta ripartiti in
segmenti (detti settori) adibiti al
contenimento dei dati.

Tale suddivisione permette di identificare i


punti nei quali i file sono memorizzati.

209
Struttura elaboratore – MEMORIE SECONDARIE

Esiste uno spazio particolare, detto FAT (File Allocation Table),


all’interno del quale è memorizzato l’indice del contenuto dei
settori.

Tale tabella permette di conoscere la collocazione dei blocchi di


informazione che compongono i file.

210
Struttura elaboratore – MEMORIE SECONDARIE

Per effettuare un’operazione di lettura (scrittura) su un blocco è


necessario che la testina raggiunga il blocco desiderato.

- Single-sided

- Double-sided (doppia faccia, ho bisogno di due testine)

211
Struttura elaboratore – MEMORIE SECONDARIE

Il tempo di accesso alle informazioni (access time) dipende da


tre fattori fondamentali.

Seek time: La testina si sposta in senso radiale fino a


raggiungere la traccia desiderata.

Latency time: Il settore desiderato passa sotto la testina.


La velocità di rotazione è espressa in rpm (round per minute).

Transfer time: Tempo di lettura vero e proprio.


212
Struttura elaboratore – MEMORIE SECONDARIE

DISK DRIVE: dispositivo per eseguire le operazioni di


Lettura/Scrittura dei dati sul disco prevede
- Perno per il disco
- Motore di rotazione del disco (7200rpm 10000rpm)
- Testina di lettura/scrittura sul pettine
- Motore pettine testine
- Circuiti di controllo

213
Struttura elaboratore – MEMORIE SECONDARIE

214
Struttura elaboratore – MEMORIE SECONDARIE

DISK CONTROLLER: interfaccia tra disco e CPU


Collegamento con il system bus
- IDE (Integrated Drive Electronics)
- EIDE (Enhanced Integrated Drive Electronics)
- SATA (Serial Advanced Technology Attachment)
- eSata (external) [per dischi esterni]
- USB (Universal Serial Bus) [per dischi esterni]

215
Struttura elaboratore – MEMORIE SECONDARIE

CISCO 1.

216
Struttura elaboratore – MEMORIE SECONDARIE

IDE (standard ATA):


vecchio sistema ormai in disuso

Caratteristiche:
Capacità 504 MB
Bus 16bit
Trasferimento controllato dal processore

217
Struttura elaboratore – MEMORIE SECONDARIE

EIDE standard ATA2, fast ATA

Caratteristiche:
- Compatibile con IDE
- Capacità maggiore di 504MB
- Collegamento a 32 bit
- Trasferimento dati in DMA: direttamente da HD - MEMORIA
senza uso della cpu

218
Struttura elaboratore – MEMORIE SECONDARIE

EIDE standard ATA2, fast ATA

In EIDE esistono 2 canali: per ogni canale è possibile inserire 2


dispositivi.
PB: occorre distinguere i dispositivi in modo che possono
essere indirizzati singolarmente.

Tale configurazione avviene con jumper /cable selected

219
Struttura elaboratore – MEMORIE SECONDARIE
EIDE standard ATA2, fast ATA

Configurazione MASTER /SLAVE: in modo da associare le


lettere identificative del drive

SETTORE: unità di memorizzazione in un processo di


lettura/scrittura tra bios e controller

CLUSTER: unità di memorizzazione in un trasferimento tra file


system e BIOS
220
Struttura elaboratore – MEMORIE SECONDARIE

EIDE standard ATA2, fast ATA

FORMATTAZIONE
- Basso livello: fissa la geometria del disco CHS
- Alto livello: crea il file system del disco (FAT, FAT32, NTFS….)
MBR sul settore 0, traccia 0, cilindro 0

221
Struttura elaboratore – MEMORIE SECONDARIE

RAID: Redundant Array of Indipendent Disk

Tecnica di organizzazione dei dischi fissi per ottenere


- migliori prestazioni
- integrità dei dati (il sistema riconosce dati errati)
- tolleranza ai guasti

222
Struttura elaboratore – MEMORIE SECONDARIE

RAID
Sono definiti x livelli a secondo dagli obiettivi diversi, ad
esempio di utilizzo

RAID 0: gestisce una pila di dischi (1,2,3,4)


Con 2 pile di uguale dimensione (1,3) (2,4)
I dati vengono partizionati con segmenti di uguale lunghezza e
scritti su dischi diversi

223
Struttura elaboratore – MEMORIE SECONDARIE

RAID 0

→ accede simultaneamente a 2 pile, tempo di accesso


dimezzato

→ nessuna tolleranza ai guasti

→ nessuna integrità dei dati

224
Struttura elaboratore – MEMORIE SECONDARIE

RAID 1 (mirroring)
Il sistema scrive su un disco e contemporaneamente fa la copia
sull’altro creando un’immagine speculare

Vantaggio
→ Alta tolleranza ai guasti
Svantaggio
→ Dimezza la capacità di memorizzazione

225
Struttura elaboratore – MEMORIE SECONDARIE

RAID 5

Divide i dati a livello di blocco, con


dati di parità distribuiti su tutti i dischi
appartenenti al raid

226
Struttura elaboratore – MEMORIE SECONDARIE

RAID 5

Una richiesta per i blocchi A1 e B2


può essere evasa in
contemporanea

227
Struttura elaboratore – MEMORIE SECONDARIE

RAID 5
Vantaggi
→ Viene generato un blocco di parità che gestisce la condizione
di errore: integrità dei dati

Svantaggi
→ Tempi di scrittura più lunghi
→ Capacità ridotta rispetto alle altre configurazioni

228
Struttura elaboratore – MEMORIE SECONDARIE

RAID
OSS esistono anche possibili combinazioni
Es. Raid 1+0
1 mirroring: tolleranza ai guasti
0 stripping: vede più dischi come unico

229
Struttura elaboratore – MEMORIE SECONDARIE

RAID
OSSERVAZIONI Altre soluzioni per migliorare l’efficienza:

- HD hot swap: possibilità di sostituire i dischi della pila a caldo

- Scegliere HD di lotti produttivi diversi, in modo da ottenere


tempi di vita diversi

230
Struttura elaboratore – MEMORIE SECONDARIE

HARD DISK

SSD (Solid State Drive)

Costruiti da particolari memorie, conservano il loro stato anche


in assenza di alimentazione.

231
Struttura elaboratore – MEMORIE SECONDARIE

HARD DISK

SSD (Solid State Drive)

- Le informazioni vengono registrate in una tipologia di transistor


in grado di mantenere carica elettrica per un tempo lungo
- Ogni transistor costituisce una "cella di memoria" che
conserva il valore di un bit

232
Struttura elaboratore – MEMORIE SECONDARIE

Vantaggi:
→ Non hanno parti in movimento
- tempi di accesso in lettura di circa 0.1ms
- tempi di accesso in scrittura di circa 0.2ms
→ Dimensioni ridotte

Svantaggi:
→ Costo a bit più elevato
→ Rischio di guasti (in diminuzione legato al numero di
scritture)
233
Struttura elaboratore – MEMORIE SECONDARIE

FLASH MEMORY = USB key

La memoria flash(flash memory) è una tipologia di


memoria a stato solido, di tipo non volatile, che per le sue
prestazioni può anche essere usata come memoria a lettura-
scrittura.

Quando viene utilizzata come ROM viene anche chiamata


flash ROM.
234
Struttura elaboratore – MEMORIE SECONDARIE

FLASH MEMORY = USB key


Svantaggi
→ Periferiche di ridotta capacità
→ Limitata durata all’uso

Vantaggi
→ Estrema robustezza
→ Facilità di trasporto
→ Basso costo
235
Struttura elaboratore – MEMORIE SECONDARIE

FLASH MEMORY

Connessione di tipo USB

OSS: attualmente è possibile utilizzarle anche in fase di


caricamento del sistema operativo

236
Struttura elaboratore – MEMORIE SECONDARIE
CD / DVD

Supporto: substrato di materiale plastico


su cui è depositato uno strato di alluminio
e uno strato di materiale trasparente.

Per memorizzare il singolo bit si realizza dei punti (pit) nello


strato.

Il raggio laser che colpisce il CD sarà riflesso o meno in base


alla presenza di un “buco” consentendo la lettura del dato.
237
Struttura elaboratore – MEMORIE SECONDARIE

Prima classificazione in funzione delle operazioni

→ CD-ROM: per sola lettura


→ CD-R: operazione di scrittura una sola volta
→ CD-RW: ReWritable: operazione di lettura e scrittura più
volte

238
Struttura elaboratore – MEMORIE SECONDARIE

CD-ROM

Dati memorizzati in una traccia a forma di spirale


Diametro 120mm
Spessore 1,2mm
Foro centrale 15mm

239
Struttura elaboratore – MEMORIE SECONDARIE

CD-ROM

Dati memorizzati in blocchi cosituito da PIT (fori largo 0.6micro


e profondo 0.12micron) e LAND(spazi fra i fori)

Il raggio laser colpisce la spirale

Quando colpisce il pit: è diffratto


Quando colpisce il land è riflesso

240
Struttura elaboratore – MEMORIE SECONDARIE

CD-ROM
0 logico: un pit o un land
1 logico: transazione tra land-pit o pit-land

pit land

241
Struttura elaboratore – MEMORIE SECONDARIE

CD-R
Dischi che possono essere scritti una sola volta e letti più volte
Usato per distribuzione di limitate copie non proponibile per la
produzione del classico CR-ROM
Capacità da 650MB-900MB

CD-RW
Cd riscrivibili,
il processo di masterizzazione è reversibile

242
Struttura elaboratore – MEMORIE SECONDARIE

CD-RW
Metodi di Scrittura:
DAO (disc at once): copiare e chiudere il disco in un’unica
sessione, senza spegnere il raggio laser
TAO (track at once): multisessione: ogni traccia è registrata in
modo autonomo, tra una traccia e l’altra pausa di 2 sec
RAW (grezzo): lettura / scrittura senza effettuare controlli degli
errori (CRC)

243
Struttura elaboratore – MEMORIE SECONDARIE

DVD (digital video disc)

Compatibile verso il basso: leggono anche CD


Stesse dimensioni fisiche ma 2 substrati di 0.6 mm
Si possono leggere entrambi gli strati (single-double layer) e
entrambi i lati (single/double side)

Capacità da 4.7GB a 17.08GB (double)

244
Struttura elaboratore – MEMORIE SECONDARIE

BLU-RAY

Grazie all'utilizzo di un laser a luce blu (405 nm), di lunghezza


d'onda più corta rispetto al CD (720 nm) o DVD (650 nm)

Blu-ray contiene fino a 200 GB di dati

Disco da 25 GB risulta sufficiente per contenere circa 2 ore di


filmato ad alta definizione

245
Struttura elaboratore – MEMORIE SECONDARIE

BLU-RAY

Blu-ray offre tre differenti capacità di archiviazione (23, 25 e 27


GB), sono leggermente differenti in quanto utilizzano i medesimi
supporti ma variano la quantità di dati immagazzinati grazie
all'utilizzo di tre differenti lunghezze dei pit.

246
Struttura elaboratore – MEMORIE SECONDARIE

CAPACITÀ

- CD 700 MB
- DVD 4.7 GB singola faccia
- BLUE RAY 25GB

247

Potrebbero piacerti anche