NUMERI INTERI IN MODULO E SEGNO
▪ Numeri binari interi (positivi e negativi) in modulo e segno (m & s): il primo bit a sinistra rappresenta
il segno del numero (bit di segno), i bit rimanenti rappresentano il valore. (0 per il segno positivo e
1 per il segno negativo)
▪ Esempi con n = 9 (8 bit + un bit per il segno)
000000000 = + 0
m&s
000001000 = + 1 × 23 = 8 = 000001000
m&s dec bin
100001000 = − 1 × 23 = −8dec
m&s
▪ Il bit di segno è applicato al numero rappresentato, ma non fa propriamente parte del numero in
quanto tale, il bit di segno non ha significato numerico.
▪ Distaccando il bit di segno, i bit rimanenti rappresentano il valore assoluto (ovvero il modulo) del
numero.
IL COMPLEMENTO A 2 (C )
2
▪ Numeri interi in complemento a 2: il C è un sistema
2
binario, ma il primo bit ha peso negativo, mentre tutti gli
altri bit hanno peso positivo.
▪ La sequenza di bit: b b … b rappresenta in C2 il valore:
n n−1 1
n−1 n−2 0
−b ×2 + b ×2 + … + b ×2
n n−1 1
▪ Il bit più a sinistra è ancora chiamato bit di segno.
▪ In base al bit di segno lo zero è considerato positivo.
INVERTIRE UN NUMERO IN C 2
▪ L’inverso additivo (o opposto) -N di un numero N rappresentato in C si ottiene invertendo (negando)
2
ogni bit del numero e sommando 1 alla posizione meno significativa.
CONVERSIONE DEC → C 2
▪ Se D ≥ 0: si converte D in binario naturale e si premette il bit 0 alla sequenza di bit ottenuta.
dec dec
▪ Se D < 0: si trascura il segno e si converte D in binario naturale, poi si premette il bit 0 alla
dec dec
sequenza di bit ottenuta. Poi si calcola l’opposto del numero così ottenuto, secondo la procedura di
inversione in C .
2
AUMENTO E RIDUZIONE DEI BIT IN C 2
▪ Estensione del segno: replicando in modo progressivo il bit di segno a sinistra, il valore del numero
non muta.
▪ Contrazione del segno: cancellando in modo progressivo il bit di segno a sinistra, il valore del numero
non muta, purché il bit di segno che rimane non abbia a invertirsi!
OSSERVAZIONI SUL C 2
→ Il segno è incorporato nel numero rappresentato in C2, non è semplicemente applicato (come in
m&s)
→ Il bit più significativo rivela il segno: 0 per numero positivo, 1 per numero negativo (il numero zero è
considerato positivo, ma anche -0 ha stessa rappresentazione)
→ NON si può distaccare il bit più significativo e dire che i bit rimanenti rappresentano il valore assoluto
del numero.
INTERVALLI DI RAPPRESENTAZIONE
▪ n
Binario naturale a n ≥ 1 bit: [0, 2 )
▪ n−1 n−1
Modulo e segno a n ≥ 2 bit: (−2 , 2 )
▪ n−1 n−1
C a n ≥ 2 bit: [−2 , 2 )
2
OPERAZIONI NUMERI BINARI NATURALI
▪ SOMMA ALGEBRICA: l’algoritmo decimale elementare è adattato alla base 2, tuttavia può verificarsi
un overflow (o trabocco).
Si ha overflow quando il risultato corretto dell’addizione eccede il potere di rappresentazione dei bit
a disposizione. Nell’addizione tra numeri binari naturali si ha overflow ogni volta che si genera un
riporto addizionando i bit della colonna più significativa (riporto “perduto”).
OPERAZIONI NUMERI in C 2
▪ SOMMA ALGEBRICA: l’algoritmo è identico a quello naturale, come se il primo bit non avesse peso
negativo.
- Si ha overflow quando il risultato corretto dell’addizione eccede il potere di rappresentazione dei bit
a disposizione (la definizione di overflow non cambia).
- Si può avere overflow senza “riporto perduto”: capita quando da due addendi positivi otteniamo un
risultato negativo.
- Si può avere un “riporto perduto” senza overflow: capita quando due addendi discordi generano un
risultato positivo.
- Se gli addendi sono tra loro discordi non si verifica mai, ma se gli addendi sono tra loro concordi, si
verifica se e solo se il risultato è discorde.
NUMERI FRAZIONARI
Dato che abbiamo a disposizione solo un numero discreto di valori (bit) per rappresentarli, possono essere
rappresentati solo in modo approssimato, in due modi:
▪ Codifica in virgola fissa: estensione dei numeri in complemento a due, uniformità della precisione e
costituiti da una parte frazionaria e una intera ciascuna con un numero fisso di cifre.
▪ Con codifica in virgola mobile: formato differente dal complemento a 2, precisione variabile sul
campo dei numeri reali (maggiore precisione per valori piccoli, minore per valori grandi).
CODIFICA DEI CARATTERI
Nei calcolatori i caratteri vengono codificati mediante sequenze di n ≥ 1 bit, ognuna rappresentante un
carattere distinto. Il Codice ASCII (American Standard Computer Interchange Interface): utilizza n=7 bit per
128 caratteri. Spesso, quando il codice ASCII a 7 bit è usato in un calcolatore avente parole di memoria da un
Byte (o suoi multipli), l’ottavo bit del Byte memorizzante il carattere funziona come bit di parità, un bit che
serve per rilevare eventuali errori che potrebbero avere alterato la sequenza di bit, purché siano errori di
tipo abbastanza semplice.
Si aggiunge (a destra) un bit extra, in modo che il numero di bit uguali a 1 sia sempre pari (se per errore un
(solo) bit si inverte, il conteggio dei bit uguali a 1 dà valore dispari), così si può rilevare l’esistenza di un errore
da un bit. Aggiungendo più bit extra (secondo schemi opportuni) si può anche localizzare l’errore. Il bit di
parità non rileva gli errori da due bit; ma sono meno frequenti di quelli da un bit.
→ ARCHITETTURA DEL CALCOLATORE
ELEMENTI FUNZIONALI
→ Unità di elaborazione, o CPU (Central Processing Unit): elabora dati, coordina trasferimento dei dati,
esegue i programmi, cioè interpreta ed esegue le loro istruzioni.
→ Memoria centrale: memorizza temporaneamente dati e programmi, ha una capacità limitata,
volatile e un accesso all’informazione molto rapido.
→ Memoria secondaria, o memoria di massa: memorizza grandi quantità di dati e programmi,
persistente e ha un accesso molto meno rapido della RAM.
→ Bus di sistema: collega e consente lo scambio di dati.
→ Unità periferiche (I/O): permettono la comunicazione con l’ambiente esterno (terminali, tastiera,
mouse, video, stampanti). N.B.: l’ambiente esterno non è sempre un utente umano (impianti
industriali, robot, strumenti di controllo).
LE MEMORIE DI MASSA: informazione memorizzata su supporto magnetico.
- Memoria permanente: le informazioni sono raggruppate in file gestiti dal sistema operativo.
- Dischi rigidi (Hard Disk): tempi di accesso dell’ordine delle decine di millisecondi e dimensione di
centinaia di GB.
- Nastri e Cartucce: per memorizzare informazioni “storiche” (back-up).
- CD-ROM e DVD-ROM: sola lettura (700 MB e 5 GB).
LA MEMORIA CENTRALE
- Contiene le istruzioni e i dati su cui la CPU può operare (contiene sia i dati che i programmi). Tutta
l’informazione, per poter essere elaborata, deve passare dalla memoria centrale (e successivamente
caricata in uno dei registri della CPU).
- Rispetto alla memoria di massa è memoria a breve-medio periodo ed è volatile.
- Ha dimensioni ridotte, dell’ordine dei Mega Byte, ma ormai anche dei Giga Byte.
- I tempi di accesso sono dell’ordine delle decine di nanosecondi (circa 1 milione di volte più veloce
delle memorie di massa).
- È un insieme ordinato di parole (celle) e la posizione di ogni parola è identificata da un indirizzo
- La capacità di indirizzamento in memoria è definita dalle dimensioni del bus indirizzi e del registro
indirizzi.
RAM (Random Access Memory):
- Le celle sono indirizzabili in un ordine qualunque (accesso random, diretto) e il tempo di accesso non
dipende dalla cella.
- È realizzata mediante circuiti a transistori.
- È modificabile (leggibile e scrivibile), ma deve essere continuamente alimentata per mantenere le
informazioni (volatile).
- All’accensione il suo contenuto è una sequenza casuale di 0 e 1
ROM (Read-Only Memory):
- Per programmi protetti e definiti dal costruttore.
- Esistono di diversi tipi: “Erasable”, “Programmable”, (EPROM) e hanno una via intermedia tra
Hardware e Software (Firmware).
- È solo leggibile: le informazioni sono di solito scritte in modo permanente dal costruttore.
- È caricata al momento della produzione del calcolatore e vi si accede ogni qualvolta questo viene
acceso.
- Contiene il bootstrap, un programma contenente le prime istruzioni che la CPU deve eseguire.
CPU: contiene gli elementi circuitali che regolano il funzionamento del calcolatore:
- L’unità di controllo (CU) è responsabile della decodifica e dell’esecuzione delle istruzioni. È la parte
che "dirige" l'esecuzione di tutte le altre parti.
- L’orologio di sistema (clock) permette di sincronizzare le operazioni temporizzando il funzionamento
del calcolatore.
- L’unità aritmetico-logica (ALU) realizza le operazioni aritmetiche e logiche eventualmente richieste
per l’esecuzione dell’istruzione. È priva di facoltà di scelta.
- I registri sono piccole memorie velocemente accessibili, utilizzate per memorizzare risultati parziali,
o informazioni necessarie al controllo. L’insieme dei valori contenuti in tutti i registri in un dato
istante dell’elaborazione viene chiamato contesto.
FORMATO DELLE ISTRUZIONI IN LINGUAGGIO MACCHINA: costituite da sequenze di 0 e 1, il campo del
codice operativo (obbligatorio) specifica l’operazione da eseguire, mentre il campo operandi (facoltativo)
indica i dati da utilizzare (gli operandi possono essere uno o due), l’operando può contenere direttamente il
valore o l’indirizzo della cella che contiene il valore (riferimento a una variabile).
CICLO “PRELEVA-ESEGUI”
• La memoria RAM contiene le istruzioni.
• Ciclicamente:
– Estrai la prossima istruzione.
– Decodificala ed eseguila.
• Le istruzioni sono di elaborazione dei dati o di trasferimento dei dati.
• Funzionamento scandito dall’orologio di sistema (“clock”).
FASI DEL CICLO DI CPU
I. Prelievo (o Fetch):
- il registro Program Counter (PC) contiene l’indirizzo della prossima istruzione.
- acquisizione prossima istruzione da memoria (che viene scritta nel Registro Istruzione Corrente, CIR)
- incremento del registro PC
II. Decodifica: interpretazione codice operativo
III. Esecuzione: attivazione esecuzione pertinente all’operazione
- Operazioni ALU su operandi (ind
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
Teoria Controlli
-
Informatica I - Esercizi teoria 5
-
Informatica I - Esercizi teoria 4
-
Informatica I - Esercizi teoria 3