l COMPONENTI FONDAMENTALI DI UN CALCOLATORE
Per quanto potente e complesso sia un calcolatore, vi sono alcuni componenti di partenza che non
mancano in nessuna macchina.
Si è cosi avuta un architettura di riferimento per la composizione di un calcolatore che prende il nome di
Architettura di Von Neumann (leggesi fon Noiman). eu,
Essa consta di 5 unità funzionali: lnput, Memoria, Alu, Output.
Vediamo nel dettaglio cosa sono e perché sono cosi indispensabili.
Il computer è nato per risolvere e semplificare problemi di vario genere quindi abbiamo bisogno di
comunicare i dati al calcolatore, li processi e restituisca il risultato all'utente.
detto possiamo sintetizzarlo in uno schema:
Quanto il mouse o
Per fornire i dati abbiamo bisogno di determinati dispositivi come la tastiera.
si dice fornire un algoritmo.
Insieme ai dati dobbiamo fornire anche un modo per risolvere il problema,
Esso è un insieme di regole ordinato che individua una soluzione per un certo problema.
si usa appunto la RAM
Abbiamo bisogno di salvare i nostri dati, anche solo temporaneamente, e per questo
(Random Access Memory).
Questa necessità è nata dalla mancanza di capacità di memorizzazione di dati da parte dell' ALU (Arithmetic
si occupa di eseguire le operazioni aritmetiche e logiche.
and Logic Unit), l'unità che la CU (Unità di Controllo) che controlla i vari percorsi e
A sovraintendere e coordinare le operazioni c'è
gestisce le varie operazioni tra cui anche il percorso memoria- ALU- memoria per il calcolo dei dati.
è quella di restituire in Output i dati ottenuti. Un esempio: il monitor.
L'ultima operazione
le unità funzionali senza però addentrarci, cosa che facciamo ora.
Abbiamo elencato
• Mouse: Inizialmente era di tipo elettromeccanico e usava una sfera che con il suo rotolamento
il
le coordinate (x,y). Ora mouse è di tipo ottico. Esso è un minuscolo processare
riusciva a cambiare
LED che illumina la superficie sottostante; le immagini vengono inviate al processare
include un
che
e confrontate per determinare l'avvenuto spostamento.
• Monitor: Sfrutta la stessa tecnologia della TV, un video a scansione basato su un tubo a raggi
(CRT), esso scandisce un'immagine alla volta, da 30 a 75 volte al secondo. Con questo
catodici
refresh rate non si avverte nessuno sfarfallio. L'immagine è composta da una matrice di ele menti, i
pixel.
• La memoria contiene i dati e permette di salvarli mentre essi sono in esecuzione .
Vi sono due tipi di RAM la DRAM dove gli accessi a qualsiasi area di memoria richiedono lo stesso tempo.
La SRAM(Static RAM), molto più veloci delle DRAM ma più costose. Un esempio: la cache.
Esegue le istruzioni di un programma. Comprende due componenti fondamentali : CU e
• Processare:
unità di elaborazione di dati (datapath) la cui combinazione viene chiamata CPU (Centrai Processing
Unit). Il datapath esegue operazioni aritmetiche mentre la CU indica al datapath, memoria e
dispositivi cosa fare in dipendenza delle istruzioni del programma.
COMUNICAZIONE TRA CALCOLATORI
Quando due entità desiderano comunicare devono utilizzare un insieme di regole comuni dette linguaggio.
è
la macchina comprende il cosiddetto linguaggio macchina che consta di due soli simboli 0,1
L'unico che
ovvero acceso,spento oppure alto,basso.
L'utente deve necessariamente parlare lo stesso linguaggio del calcolatore per poter comunicare. Le parole
del linguaggio del calcolatore sono dette istruzioni mentre il set viene detto insieme di istruzioni.
Da quanto detto possiamo evincere che inizialmente si programmava utilizzando solo O e 1 ma ciò
è
lunga serie di istruzioni per ricavarne il
comportava una minimo risultato, per tale motivo si preferito
costruire un linguaggio che si avvicinasse all'uomo e si allontanasse dalla macchina, il linguaggio Assembly.
è
troppo vicino alla macchina ed per questo motivo che sono stati
linguaggio, però, risultava ancora
Tale
realizzati i linguaggi ad alto livello, che permettono l'utilizzo di parole umane (come if o else) e dell'algebra.
L'utente dopo aver dato elaborato l'algoritmo, sviluppa il programma in un linguaggio ad alto livello
tradotto poi in Assembler (dal Compilatore) ed infine attraverso l'Assemblatore si ha il codice
(codifica)
macchina. SISTEMA POSIZIONALE, CONVERSIONI
2
Il calcolatore utilizza solo cifre (O e 1) mentre noi 10 (0 ..
9) utilizzando un sistema pesato .
Nel sistema posizionale pesato il valore di una cifra varia a seconda della sua posizione. La cifra più a destra
è è
quella meno significativa mentre quella a sinistra la più significativa. Per calcolare l'esatto valore di una
moltiplicare il numero per la base elevata alla posizione
cifra posta in una determinata posizione bisogna
che occupa all'interno del numero.
Es. 5555= 5 uk + 5 h+ 5 da+ 5 u. 1 2 3
Iniziando da destra moltiplichiamo 5 * 10°+ 5*10 + 5 *10 + 5*10 E quindi otteniamo
.
5 +50+ 500 + 5000= 5555; Ho utilizzato la base 10 perché a noi umani risulta più facile in quanto
possediamo 10 dita. Con un sistema base 10 abbiamo
2 Ii,:-l
i n- ai i
N =an-l 10n-l + an-2 lOn- ... a1lO +a Con a; V {0, 1 }. Compattando scriviamo * lO
D
o E E
10
Generalizzando possiamo scrivere (b indica la cardinalità ovvero la base) .
RAPPRESENTAZIONE DI NUMERI
Quanti numeri rappresentiamo con n bit? Risposta 2".
Dimostriamo per induzione. Tale procedimento consta di 2 fasi: base induttiva e passo dell'induzione.
a) Base n=l (caso più semplice) [0,1]
b) Passo lpotizzo che con n bit rappresento 2" numeri distinti. 1
bit rappresento 2" Tesi con n+ l bit rappresento 2"+
lp. con n
n-1 n-2 ..... l O -72" 1
n n-l n-2 .... 1 O -72"+2" = 2"+
Range di valori (O .. 2"- l)
a) Base induttiva: ìp. n=l tesi mìn=O; max= (2" -l)
Infatti con n=l otteniamo bit, appunto o O o l.
2 1
b) Passo dell'induzione: ip n bit min=O; max= (2" -l) tesi con n+ l bit mìn=O; max= (2"+ l)
-
1
Se con n-l bit riesco a rappresentare 2" - l allora con n bit rappresento 2"+ -1 poiché viene
aggiunto come MSB il che significa che ha peso 2" che aggiunto a 2"- l dà come risultato quanto
1
2"- l +2" =2"+ 1
cercato ovvero -
Conversione Dee -7 Bin
Sì divide il numero per 2 e si calcola il resto. Si prendono tutti i resti partendo dall'ultimo.
25
N10 =
= 20o + R = 2*12 +l
N o
1 0
N = 25 = 11001
10 Bin -7 Dee
Conversione
So = ao + 25 = 170
1
Formalmente:
So = a
o+ 251 = ao + 2a1 + 452 = a
o+ 2a1 + 4a2 + 8S3 = a o + 2a1 + 4a2 + 8a3 + 1654 = ao + 2a1 + 4a 2 + 8a 3 + 16a4 +
+ 16a4 + 32a +
= a + 2a1 + 4a 2 + 8a + 645 = a + 2a1 + 4a2 + 8a 16a4 + 32a + 64a + 128a
325 3 3
5 0 5 6 0 5 6 7
-7
Conversione Sin Ottale
Per convertire un numero da binario adottale basta raggruppare le cifre a 3 a 3 partendo da destra (se
mancano bit a sinistra se ne aggiungono quanti ne servono per avere un gruppo da 3) .
1+11
Es. 001 101
primo gruppo SO= 1 *2° =1
Parto dal 1 2
Continuo con il secondo gruppo 51= 0*2° +0*2 *2
+ 1 =4
2
1 + 1 =6
gruppo 52= 0*2° + 1 *2 *2
Terzo 1 2
+ 1 =
Quarto gruppo 53= 1 *2° + 0*2 *2 5.
-7
Conversione Ottale Bin
Converto cifra per cifra e la scrivo su 3 bit
Conversione Hex-7 Dee
Per convertire da esadecimale a binario invece bisogna convertire ogni singola cifra in binario scrivendola
su 4 bit.
COA4F1
C= 1100; 0=0000; A= 1010; 4=0100; F= 1111 ; 1=0001
COA4F1= 1100 0000 1010 0100 1111 0001
-7 Hex
Conversione Bin
Raggruppo a 4 bit alla volta e converto.
bit
Dire quanti sono necessari per rappresentazione di dandone opportuna motivazione.
la 78, n~
Per rappresentare 78 sono necessari 7 bit, numero ricavato dalla formula [log (N +1)].
2
10 10
è
La formula ottenuto dai seguent i passaggi:
n~ max = 2"-1
n~ n~
[log (N +l)]. Quindi [log (79)]=6, ... quindi 7 bit.
2 2
10 SEGNO
MODULO E
La rappresentazione in modulo e segno ci permette di rappresentare sia numeri positivi sia i numeri
negativi. Il MSB viene posto a O o a l per indicare rispettivamente se x >O o x<O. La rappresentazione in
è
mods stata soppressa perché avrebbe portato a creare un ALU troppo complessa per via della possibilità
±O ed inoltre le operazioni di addizioni e sottrazioni sarebbe risultate troppo difficili ed inoltre
di scrivere differenti (addizionatore e sottratto re) . Inoltre per svolgere un operazione bisogna
occorrono 2 moduli
prima verificare i segni,salvare quello con valore assoluto maggiore, ed inoltre se sono concordi addizionare
altrimenti sottrarre. Il mods dimezza il max. e è
• Dire quanti distinti numeri rappresentiamo in modulo segno con 10 bit e qual il massimo
opportuna motivazione.
rappresentabile, dandone
Con 10 bit possiamo rappresentare 1024 combinazioni, numero ricavato dal calcolo 2" come visto in
è
S. Ciò che cambia il massimo rappresentabile poiché con Mods abbiamo necessità di
domanda se precedentemente abbiamo potuto affermare per induzione che con
rappresentare anche il segno quindi 1
1 9
n+ l bit max= (2"+ -1) allora con un bit in meno ottengo (2"- -1) quindi con 10 bit rappresento 2 -l=
511. è
Dire qual l'intervallo di rappresentabilità in modulo e segno su 12 bit, dandone opportuna
motivazione. 1
è
Il range di valori -2047 .. +2047, numero ricavato dalla formula ±(2"- -1) . Dimostriamo per induzione
affermato .
quanto
a) Base induttiva: ip. n=l tesi min=-1; max= l
Infatti con n=l otteniamo o -l (Dato da 11) o l (Dato da 01).
1 1
b) Passo dell'induzione: ip n bit min=- (2"- -1); max=- (2"- -1)
2 2
tesi con n-l bit m in=- (2"- -l); max=- (2"- -l)
1 2
Se con n bit riesco a rappresentare 2"- -1 allora con n-l bit rappresento 2"- - l poiché il MSB che ha
1
peso 2" viene perso 2"- l- 2" =2"- 1
-
Modulo e segno (il primo bit indica il segno-)
Convertire numero in
10101010 = - 42
Sa = a + 2S = 42
0 1 COMPLEMENTO A 2 complemento a 2.
Per evitare i problemi legati alla rappresentazione in modulo e segno il
è nato
DEFINIZIONE
Considero una stringa : an-l an-2... .. a a E' in complemento a 2 se il valore ad esso associato è
.
1 0
n-l
_ N
"n-2 i_
2 2
+
an-l an-2
..... al ao-- an-l L...i=O ai -
In questo caso an-l non è più un etichetta che indica il segno come per il mods, bensì è un valore defin ito
avendo un peso. INTERVALLO DI RAPPRESENTABILITA'
1
Vogliamo dimostrare che l'intervallo di rappresentabilità è 0 ... 2n- -l per i positivi
lpotizzo che an-l =O quindi posso affermare che il numero è maggiore di O.
Distinguiamo 2 casi : se sono tutti i bit a O allora è O; se abbiamo tutti i bit a l allora è 2n-l -l
Dimostriamo cosi quanto affermato in precedenza . 1)
l'intervallo di rappresentabilità è -(2n- -l per i negativi
Vogliamo dimostrare che ...
lpotizzo che an-l = l quindi posso affermare che il numero è negativo.
-7 -
n-
i
Se a;= O allora 2n-l
V {0, 2}
E -7-
n-
i +
Se a; = l allora 2n-l 2n-l- l= -l
V {0, 2}
E
Abbiamo cosi visto che il range di valori varia da- 2n-l a 2n-l - Ciò perché lo O è considerato solo positivo .
l.
Il complemento a 2 quindi è asimmetrico .
DISTINTI BIT RAPPRESENTIAMO? La risposta è sempre 2n.
QUANTI CONVERSIONE
B-7D
1101111=-17 Si esclude il primo bit perchè vale -2n-l
S = a = l
5 5
So = a
o + 2S = 4 7
1 il
Calcolo la parte puramente numerica (ovvero escludo primo bit). Il risultato è+ 47 a cui addiziono
6
-2 =- 64. Il risultato è quindi -64 + 47 = -17 D-7B
5 l
N=+27 log 28= + per il segno= 6 bit.
2
= =
20o + R 2*13 +l
N1o 0
N = 27 = 011011
10 Algoritmo per ricavare l'opposto di un numero
Convertire +N in base 10; Eseguire il complemento bit a bit della stringa ottenuta dalla conversione;
Sommare l
Es. -27
N=+27=011011 Ne faccio il complemento
100100 + = 100101 = -27
l TAVOLA PITAGORICA ADDIZIONE
o l
+
o o l
lo
l l ADDIZIONE
111 0
1101+
10000
- ESERCIZIO D-7B
Scrivere -38 in mods e in complemento a 2.
MODS
= 20o + R = 2*19 +O
N10 0
~ =2Q + R = 2*0+1
5 5
N= 100110 in mods= 1100110
COMP2 +l= 1011010 ovvero -64 + 26 = -38
N=0100110 Complemento 1011001 ESERCIZIO B-7D
N= 1010101
= -21
MODS
= a =O
S
5 5
So = a + 2S = 21
1
0 6 + 21 = -43
COMP2 = -2 di 1010101. 0 101010 + 0000001 = 0101011 = + 43
Trovare l'opposto TAVOLA DELLA FUNZIONE ADDIZIONE
Vi~: { O,n-1 } è
La stringa C ovvero del Carry (riporto} viene costruita passo dopo passo. Inizialmente il riporto sempre O
va calcolato.
poi
b; S;
a; C; ci+ l
o o o o o
o o o
1 1
o o
o 1 1
o
o 1 1 1
o o o
1 1
o o
1 1 1
o o
1 1 1
1 1 1 1 1
è
Il risultato di S; funzione di 3 variabili S; S; (a;,b;,C;}
=
SCHE M A FISICO ADDIZIONATOR E A N BIT A PROPAGAZIONE DI RIPORTO
O bO
an-l bn-1 an-2 bn-2 al bl a l
l l l co
Cn-2 Cl
n-
n
C C - so
Sl
Sn-2
Sn-1
è
Il 1
problema però la lentezza. All'istante t(O} lavora solo la cella O, in quanto la cella attende la cella O che
~t ~128 .
è è
128
L'attesa in generale quindi su bit Consideriamo i vari casi : A e B maggiori,
fornisca C .
1 6
minori o uguali a O. Lavoriamo sempre su bit.
CASO l
A,B~ O
0001000
000111 +7
000100 +4
001011 +11 c'è il
Qui constatiamo che non overflow, ovvero possiamo rappresentare numero su 6 bit. In generale pe r
c'è
l'overflow basta confrontare Se sono uguali non overflow, altrimenti si.
verificare C6,C5.
Es. con OF
0111110
011111
011111 -7 il riporto finisce nel segno [overflow]
111110
CASO 2 : A, B<O
1110000
111111 -1
111000 -8
110111 -9
A~O
CASO 3 : B<O
0011100
001110 +14
101111 -17
111101 -3
B~O
CASO 4 : A<O
0000010 -31
100001
011001
111010 -6 REGOLA DEll' ESTENSIONE IN SEGNO
Se abbiamo necessità di scrivere un numero su 32 bit, ma effettivamente ne occorrono di meno per
rappresentare il nostro numero allora utilizziamo la regola dell'estensione in segno .
è
bit di segno m volte, dove m il numero che occorre per completare i z
Tale regola prevede di duplicare il
bit.
Riassumendo: n bit per rappresentare il numero, m bit da aggiungere,z bit da occupare . (Z=N+M)
±7(111)
Esempio : Scrivere su 8 bit. il
OOS : 00000111=+7; 10000111=-7. Osserviamo quindi che per Mods non abbiamo necessità di duplicare
M
bit bensì basta parlo come MBS per il segno.
il - r
--
+-7.
COMP2: 00000111=+7; Ne faccio il complemento: 11111000 Aggiungo 1 =11111001 Ottengo
RAPPRESENTAZIONE FRAZIONI PROPRIE
Si consideri una frazione propria, F<l.
Dobbiamo rappresentare una parte intera e una decimale.
2 1 2
lon-l lOn- 10-m
10 10- 10- 10-(m+l)
an-l + an-2 ... al + ao, a_l + a_2 ... am-1 + a_m
n-2 -m
n-l -1 -2 (-m-1)
CON BASE 2 2 2 2 2 2 2 2
: an-l + an-2 ... al + ao, a_l + a_2 ... am-1 + a_m
QUANTE DISTINTE FRAZIONI RAPPRESENTO?
Con m bit ottengo come al solito 2m distinte combinazioni
RANGE DI RAPPRESENTABILITA'
Il minimo rappresentabile è 1/m cioè OOOOO ...... m
Mentre il max: zi
m-t m-2 o m
2
considerombittutticonvalorel:lx~+ lx~+lx~+lx ~= 2 2 2 2 1 1
+
+ zm + .... =Ir;;(/ m= =1-zm:
;::
2 2
ALGORITMO DECIMALE BINARIO
il
Si cicla fin quando risultato delle moltiplicazioni è 1.000 oppure fino ad esaurimento bit
F=.125=F 0
2 F = O + .250 = a_ F_
+
1 1
0
2 F_1 =O+ .500 = a-2 + F-2
2 F_2 = 1 + .000 = a_3 + F_3
Si acquisisce da a_ ad a_m = .001
1
F= .217=F 0
2 F = O + = a_l + F_l
.434
0
2 F-1 = O+ .868 = a-2 + F-2
Potremmo ancora continuare ma forse sarebbe inutile è
F=.00100 Supponiamo di avere solo 3 bit a disposizione, il risultato sarebbe .0011o stesso di .125, questo
un problema di rappresentazione della virgola fissa
RAPPRESENTAZIONE IN VIRGOLA FISSA
il
Si sceglie a priori numero di bit da dedicare alla parte intera e a quella decimale.
Es. Lunghezza parola 1=12 Kinteri=6; Kdec=6
F=101.0101 Si esegue il PADDING,ovvero si aggiungono m bit per completare la lunghezza ma il conto non
cambia. l bit vanno aggiunti a sinistra per la parte intera e a destra per la frazionaria.
f ·.
~\o~~ ~ &.;~~{
F=000101.010100 V
~k ~~.~w~ t-c'lr
. . .
~t~ ~cee b.-.t
(~<:>e~~ ~~ ~ ~u
d..-
&r."\ (..).jv-Qj (À, L
.. __
F-(m- = F_ = a_m /2= (a.2+F.2)/2 = (1+.25)/2 = .625 -1- -/.
n. <r> t?
ùDY
) 1
3 ,~- ~ -v."'t\l_V~ ..Q_~ f~-'L Q"'u...v.à'~~
..Xc....
j):cL.(S._,
~ ~'>~~L:
F-(m-4) = F.o = a_m /2= (a _
+F_ )/2 =(O+ .625)/2 = .3125
1 1 i]
[Q
't.U.. .o\ff\-ti; -')- 9..!24-
h-.
VIRGOLA MOBILE l · ]
r"' :'(e..
~~\)~-~co , "~-J-g
1175*10.2
1 1
Consideriamo +11,75. Lo possiamo scrivere come +11,75*10° = +117,5*1
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.
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.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
-
architettura
-
architettura degli elaboratori
-
Architettura degli elaboratori
-
Architettura degli elaboratori