MACCHINA DI VON NEUMANN
UNITÀ DI INGRESSO (INPUT)
PROGRAMMI E DATI
BUS
UNITÀ DI USCITA (OUTPUT)
RISULTATI
MEMORIA CENTRALE
CELLA
ISTRUZIONE
LDA 104
DATI
INDIRIZZO
- RAM (Random Access Memory)
- ROM (Read Only Memory)
- BUFFER
MBR (Memory Buffer Register)
MAR (Memory Address Register)
MBR = dato da trasferire da/verso la memoria
MAR = indirizzo del dato da trasferire
• QUALUNQUE DATO O PROGRAMMA DA ESEGUIRE DEVE ESSERE TRASFERITO IN MEMORIA CENTRALE (RAM) PER POTER ESSERE UTILIZZATO DALLA CPU.
CPU
- Il compito della CPU è quello di eseguire le istruzioni di un programma. Elabora le informazioni.
- Il programma può trovarsi nella RAM, nella ROM, o in altri dispositivi: la CPU lo preleva e lo esegue.
- Durante l'esecuzione del programma la CPU legge o scrive dati nella RAM.
- Il risultato dell'esecuzione dipende:
- dall'istruzione
- dal dato
- dallo stato interno della CPU
La ALU esegue le operazioni di calcolo aritmetiche e logiche.
L'UNITÀ DI CONTROLLO stabilisce quali operazioni debbano essere eseguite.
Fornisce alla CPU dei segnali elettrici che attivano o disattivano le sue componenti.
Questi segnali vengono forniti IN SINCRONO con un orologio interno alla macchina chiamato CLOCK.
Ad ogni scatto del clock viene inviato un segnale e la CPU cambia il suo stato interno.
In questo modo ad ogni circuito che compone la CPU viene indotto se attivarsi o meno.
La FREQUENZA DEL CLOCK deve garantire che il ciclo di clock sia sufficientemente lungo da consentire a tutti i circuiti (anche il più lento) di completare le proprie operazioni.
Questa determina a che velocità la CPU esegue le istruzioni.
SET DI ISTRUZIONI DI BASE:
- Istruzioni aritmetico/logiche (ALU)
- Istruzioni di accesso alla memoria (trasferim. dati)
- memoria -> memoria
- memoria -> registri
- registri -> memoria
- Istruzioni di controllo (esempio: salti)
I REGISTRI
Sono gli elementi di memoria della CPU (celle nelle quali si può leggere/scrivere/memorizzare).
- REGISTRI DATI: dati da elaborare
- REGISTRO ISTRUZIONI (IR): istruzione da eseguire
- PROGRAM COUNTER (PC): indirizzo in memoria della prossima istruzione da eseguire
- REGISTRI FLAG: segnalano anomalie ed errori
- MAR: indirizzo memoria durante l'esecuzione
- MBR: dati prelevati da memorie o da trasferire in memoria
INDIRIZZO del dato da trasferire
DATO da trasferire da/verso la memoria
TRASFERISCI IL DATO CONTENUTO NELLA CELLA ALL'INDIRIZZO 123 NEL REGISTRO 2
- BUS CONTROLLI read
- MAR 123
- lettura
- MBR 45
- (MBR) → R2
- R2 45
TRASFERISCI IL DATO CHE SI TROVA NEL REGISTRO 5 NELLA CELLA DI INDIRIZZO 126
- (R5) → MBR
- MBR 32
- BUS CONTROLLI write
- MAR 126
- scrittura
ACC = accumulatore dei risultati della ALU (sono registri)
REGISTRO DI STATO (FLAG) = contiene informazioni che determinano lo stato dell'unità centr.
PROGRAM COUNTER (PC) = contiene l'indirizzo della cella di memoria contenente la prossima istruzione da eseguire
ISTRUCTION REGISTER (IR) = contiene l'istruzione da eseguire
Ciclo Macchina
FASE DI FETCH vengono letti i campi che costituiscono l'istruz:
- (PC) -> MAR
- ((MAR)) -> MBR
- (MBR) -> IR
(PC)+1 -> PC
FASE DI DECODE l'istruzione viene decodificata
FASE DI EXECUTE l'istruzione viene eseguita
ESERCIZI CODIFICA INTERI
Base β → Base 10 Calcolo del polinomio Base 10 → Base β Parte intera = divisione Parte fraz. = moltiplicazione
Esempio: 58,0710 → 111010, 0001001 2
MOLTIPLICARE "L'ARCOBALENO AL CONTRARIO"
DIVIDO ↗ 0 0 → 1 0 0 → 1 1 1 → 0 0 0 → 0 1 0 → 1 1 1LE TECNICHE DI CODIFICA:
- VALORE ASSOLUTO
- COMPLEMENTO A 2/16/8
- MODULO E SEGNO
- ECCESSO 127
VALORE ASSOLUTO
SOLO POSITIVI Compl A 2 Compl A 8 Compl A 16 H.S. ECCESSO 127 ∅ POS ∅ POS −F POS −F POS 1 POS 1 NEGse x = 2n positivo → valore assoluto se x = 2n negativo → bm − | x | = v x = valore assoluto (+) m = cifra v = numero rappresentato in complemento (-)
| ☐ | ☐ ☐ ☐ ☐ ☐ ☐ ☐ ☐ ☐ ☐ ☐ ☐ ☐ | | b2 b1 b0 | b2 b1 b0 |qRc−127 → numero
Esercizi Virgola Mobile
A = S OM x BE
- Da Decimale a Binario
- 1) Conversione in binario parte intera e decimale
- 2) Normalizzazione
- 3) Rappresentazione in virgola mobile
- (E se va scritto in eccesso 127 bisogna base 10 -> eccesso 127 (sommo))
- Da Binario a Decimale
- 1) Guardo il segno
- 2) Conversione in decimale dell’esponente
- (E se è scritto in eccesso 127 bisogna eccesso 127 -> base 10 (sottraggo))
- 3) Normalizzazione della mantissa
- 4) Conversione in decimale della mantissa
- vengono sommate/sottratte solo le mantisse
- se sono in IEEE 754, durante lo shift verso destra devo "far ricomparire" il bit nascosto (= 41)
- Codice di parità quando aggiungo 1 bit al codice non ridondante
- PARI → numero di 1 pari
- DISPARI → numero di 1 dispari
- 0 Falso
- 1 Vero
- Restituisce il valore opposto
- Restituisce 1 (vero) solo se entrambi gli operatori sono veri (1·1=1)
- Restituisce 1 (vero) se almeno uno dei due operatori è 1 (vero)
- Restituisce 1 se e solo se il numero degli operatori uguali a 1 è dispari, altrimenti restituisce 0
- 1 PIXEL = 8 BIT
- 3 PIXEL = 24 BIT (8x3)
- 16 COLORI = 24 COLORI → 4 BIT usati per codificare ciascun pixel
- 3 101
- 2 100011
- 1 001
- 0 000
- Dedicati
- A lotti (Batch)
- Multiprogrammazione
- Interattivi (Time-Sharing)
- Real-Time
- Per macchine multiprocessori (Sistemi concorrenti)
- Esamina la radice
- Visita il 1o sottoalbero (si parte da sx) in ordine anticipato
- Visita il no sottoalbero in ordine anticipato
- Visita il 1o sottoalbero (si parte da sx) in ordine differito
- Visita il no sottoalbero in ordine differito
- Esamina la radice
- Visita il sottoalbero sx in ordine simmetrico
- Esamina la radice
- Visita il sottoalbero dx in ordine simmetrico
- anticipato albero ordinato = anticipato albero binario
- differito albero ordinato = simmetrico albero binario
Operazioni (in virgola mobile):
0 02 6502 0000000000 +0 04 2347 0000000000 =
No→0 04 006502 0000000000 +0 04 2347 0000000000 =0 04 231202 0000000000 =
gli esponenti devono essere uguali!per farlo devo allineare le mantisse, quindi sposto verso dx del numero di cifre pari alla differenza tra gli esponenti(E più piccolo viene reso uguale all’E più grande)
Attenzione a:- esponenti- bit nascosto
Esercizi Sistemi di Codifica
C è la cardinalità (numero di elementi)
C ≤ 2n
n = ⌈log2(C)⌉ = M
numero di bit usato effettivamente nel codice
minimo numero di bit necessario
n = M → H = 1
il codice è NON RIDONDANTE
n > M → H ≥ 1
il codice È RIDONDANTE
H è la distanza di Hamming (numero di bit diversi che compaiono in posizioni corrispondenti di due parole della stessa lunghezza)
H di un codice è il minimo numero di bit di cui differiscono due parole qualsiasi del codice
000111 ] H = 11011100000101001011111 ] H = 21000100110110001 ] H = 3H = 2 Ha capacità di rivelazione d'errore
H > 2 Ha capacità di rivelazione + correzione d'errore
P P P0 0 00 0 10 1 01 0 0codice a parità dispari
se aggiungo questo bit, codice a parità pari
Codice BCD ogni cifra decimale viene codificata con 4 bit e con il suo corrispondente valore in binario
(245) → 0010 0100 0101No numeri negativi!
Codice ASCII: 7 bit → 128 simboli + 1 bit di parità (H >2)
8 bit → 256 simboli
Esercizi Algebra di Boole
NOT
(- solitamente sopra ma può stare anche sotto -)
AND (*)
OR (+)
NAND (/) = negazione dell'AND
NOR (↓) = negazione dell'OR
EXOR o "sommatore di modulo 2" (⊕)
Teorema di Dualità
Ogni identità resta valida se si scambiano tra loro gli elementi 0,1 e gli operatori AND, OR
x+1 = 1
x·0 = 0
De Morgan
x·y = x + y
x+y = x·y
e altre proprietà
ESERCIZI CODIFICA IMMAGINI
IMMAGINE SUDDIVISA IN PIXEL CODIFICATI IN BIT
numero di pixel per unità di lunghezza = RISOLUZIONE
numero di bit usati per codificare ogni pixel = PROFONDITÀ DI COLORE
2bit = NUMERO DI COLORI
MEMORIA
= numero totale di BIT necessari per codificare l'immagine.
RISOLUZIONE x PROFONDITÀ DI COLORE
PALETTE
= È una lista di colori scelti tra tutti quelli disponibili. Ogni colore della tavolozza è associato ad un indice che identifica il colore nella tavolozza stessa.
Esempio:
RISOLUZIONE = 400 x 800
PROFONDITÀ DI COLORE = 24 BIT
MEMORIA SENZA PALETTE = 400 x 800 x 24 BIT
PALETTE A 16 COLORI
PROFONDITÀ DI COLORE = 24 BIT non sono più i bit necessari a codificare ciascun pixel, ma i bit necessari ai colori nella palette!
Quindi
MEMORIA CON PALETTE = (PALETTE) + (IMMAGINE)
= (16 x 24 BIT) + (400 x 800 x 4 BIT)
kbit = 210 bit byt = bit
v = S/t → S la chiamo M → v = M/t (t = M/v)
ESERCIZI
CODIFICA
SEGNALI
R = range dei valori
P = precisione con cui rappresentare ciascun valore (= ampiezza di ogni livello)
M = numero di livelli
M = R/P
n = bit/campione
n = ⌈log2(R/P)⌉
(P = R/2n)
Q = Errore di quantizzazione
Q = P/2 = R/2n+1
Fc = frequenza di campionamento = 2 × B
Fc = campioni/sec
(kHz = 103 Hz)
t = 1/Fc
v = bit/sec
(kbit = 2n bit)
M = v · t = bit/sec · sec = (n · Fc) · t =
= bit/campione · campione/sec · sec = bit
NUMERO DI campioni × NUMERO DI/bit/campione = bit
Esercizi Sistemi Operativi
"Interfaccia Macchina - Utente" è l'insieme di programmi che rendono facilmente disponibile all'utente le potenzialità offerte dalla macchina. (hardware)
Nucleo (Kernel) + Software di Base + Sistema Operativo
Classificazione di Sistemi Operativi:
Esempio
"L'esecuzione occupa la CPU finché non finisce poi tocca all'altro"
Abbiamo assegnato la priorità al P1
"L'unità di tempo a testa"
Il processo ha terminato le operazioni di I/O
Running → processo in esecuzione
Blocked → il processo fa operazioni di I/O
ESERCIZI STRUTTURE INFORMATIVE
8-ALBERI
RADICE
livello 1
livello 2
sottoalbero
livello 3
livello 4
livello 5
GRADO di un nodo = numero di sottoalberi del nodo stesso
(Grado di A: 2)
(Grado di D: 0)
VISITA IN ORDINE ANTICIPATO: ABCILEGFHO
VISITA IN ORDINE DIFFERITO: LIGEFHCDBA
ALBERO BINARIO
Figlio sx = Primo figlio (es. C)
Figlio dx = Fratello (es. D)
VISITA IN ORDINE SIMMETRICO: LIGEFHCBDA
-
Appunti esame: Fondamenti di informatica
-
Appunti Fondamenti di informatica
-
Appunti Fondamenti di informatica
-
Appunti di fondamenti di informatica