Architetture I
Lez. 1
Introduzione all'architettura degli elaboratori
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Finalità del corso
• Fornire le nozioni di base relativamente ai
principi di funzionamento di un calcolatore
• Acquisire familiarità con i calcolatori e saperne
valutare le differenze in termini tecnologici
• Acquisire i rudimenti della programmazione
Assembler
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Argomenti Principali
• Il corso è strutturato in tre parti:
• Introduzione alla programmazione assembler
• Principi di Elettronica Digitale
• Panoramica delle principali componenti di un
calcolatore: CPU, Memoria, e alcuni dispositivi di I/O
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Bibliografia
• 4 ore di lezione settimanali (6 crediti)
• Esame:
• Scritto con domande a risposta multipla + orale
• 3 Prove a Gennaio-Febbraio, Giugno, Luglio, Settembre
• Lo scritto può essere sostituito per chi frequenta da prove
in itinere
• Libro di testo per la parte di teoria: G. Bucci,
Architettura e organizzazione dei calcolatori
(Fondamenti), McGraw-Hill
• Sito ufficiale del corso:
• Email: [email protected]
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Mainframe
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Desktop
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Laptop
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Smartphone
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Le componenti principali

Motherboard

Raffreddamento

Processore

Video

Memoria

Tastiera

Alimentatore

Mouse

Case

CD-DVD

Scheda grafica

Hard disk
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Un unico modello di riferimento: la macchina di Von Neumann
INPUT
MEMORIA
CPU
DATI
PROGRAMMI
OUTPUT
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Ciclo d’esecuzione
A.A. 09/10
Carica dalla memoria
la prox. istruzione
FETCH
Interpreta l’istruzione
DECODE
ESEGUI l’istruzione
EXECUTE
Architetture degli Elaboratori I
© Danilo Bruschi
Dettaglio (I)
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Dettaglio (II)
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Dettaglio (III)
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Rappresentare le informazioni
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Bit e Byte
• Un calcolatore svolge fondamentalmente due
funzioni
• Esegue calcoli a velocità elevatissime
• Gestisce (memorizza, trasforma, invia, reperisce)
DATI
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Bit e Byte
• Dati: sono sequenze di simboli scritti rispettando
opportune regole, che descrivono attributi o
proprietà di cose, persone, eventi di varia natura
• I dati sono di diversa natura:
• Numeri
• Articoli o libri
• Fotografie
• Video
• Suoni
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Bit e Byte
• Rappresentazione dati
• Analogica: uso un numero infinito di simboli
• Digitale: uso un numero finito di simboli
• Nei calcolatori i dati sono rappresentati in formato
digitale usando esclusivamente due simboli: 1 e 0
chiamati BIT (b) (Binary Digit)
• Per una maggiore potenza espressiva i calcolatori
adottano come dato elementare il BYTE (B) (8 bit), che
consente di rappresentare grandezze che assumono
sino a 256 “stati” diversi
• WORD (16b, 32 b), DWORD
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Informazione vs. Dato
• Un dato diventa informazione nel momento in cui si
procede ad una sua interpretazione, e diventa per noi
informazione se arricchisce la nostra conoscenza
DATI
A.A. 09/10
SEMANTICA
INFORMAZIONE
Architetture degli Elaboratori I
© Danilo Bruschi
Rappresentazione dei numeri
• Numero è un concetto astratto utile nelle
operazioni di conteggio di oggetti di varia natura
(cioè, di vari insiemi).
• Un numero è un’astrazione legata al numero di
elementi di un insieme
• Di un numero possiamo avere diverse
rappresentazioni
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
I sistemi di numerazione
• Nati con lo scopo di rappresentare simbolicamente i
numeri, ne conosciamo almeno due:
• Decimale: esempio di sistema posizionale in quanto i simboli
della rappresentazione (le cifre) acquistano significato
diverso in base alla loro posizione;
• Romano: esempio di sistema non posizionali in cui ogni
simbolo rappresenta sempre un ben preciso numero,
indipendentemente dalla posizione in cui compare.
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
La notazione posizionale
• Introdotta dai Caldei e dai Babilonesi.
• Ogni simbolo assume un significato diverso a
seconda della posizione (casella) in cui
compare.
• Esempio: nel sistema decimale, nella
rappresentazione 707 il 7 più a sinistra
rappresenta il numero settecento, mentre il 7 più
a destra rappresenta il numero sette
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Sistemi di numerazione posizionali
• Per definire un sistema di numerazione
posizionale occorre fissare:
• il valore numerico della base b, cioè il peso dato alle
diverse posizioni;
• i simboli (cifre) utilizzabili nelle rappresentazioni:
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Notazione decimale
• La notazione decimale è così chiamata: perché
utilizza 10 simboli {0,1,2,3,..,9} e la sua base, il
peso dei simboli è dato da potenze di dieci
• Il motivo della denominazione è che :
• unità: 100 = 1
• decine: 101 = 10
• centinaia: 102 = 100
• migliaia: 103 = 1000
• Ecc.
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Sistemi di numerazione posizionali
• La notazione posizionale è universale, nel
senso che il sistema resta invariato
indipendentemente dalla base, che diventa il
fattore determinante
• Esempio: 707 può essere anche un numero in
base otto,in questo caso il 7 più a sinistra “pesa”
64, mentre il 5 più a destra “pesa” 1
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Convenzione
• Se non è evidente dal contesto, è opportuno
denotare la base del sistema di numerazione
mettendola a pedice della rappresentazione
numerica:
• 5210 è la rappresentazione decimale di 52;
• 526 è la rappresentazione in base 6 di 52.
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Sistemi posizionali in informatica
• Nel mondo dell’informatica sono utilizzate le
basi 2, 8 e 16 (sistemi binario, ottale e
esadecimale).
• sistema binario: base = 2, cifre: {0, 1};
• sistema ottale: base = 8, cifre: {0, 1, 2, 3, 4, 5, 6, 7};
• sistema esadecimale: base = 16, cifre: {0, 1, 2, 3, 4,
5, 6, 7, 8, 9, A, B, C, D, E, F}.
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Con tre bit :
A.A. 09/10
000
0
001
1
010
2
011
3
100
4
101
5
110
6
111
7
Architetture degli Elaboratori I
© Danilo Bruschi
4 bit
A.A. 09/10
0000
0
1000
8
0001
1
1001
9
0010
2
1010
10
0011
3
1011
11
0100
4
1100
12
0101
5
1101
13
0110
6
1110
14
0111
7
1111
15
Architetture degli Elaboratori I
© Danilo Bruschi
Numero combinazioni
• Quindi:
• con 1 bit possiamo rappresentare 2(21) numeri diversi;
• con 2 bit possiamo rappresentare 4(22) numeri diversi;
• con 3 bit possiamo rappresentare 8(23) numeri diversi;
• con 4 bit possiamo rappresentare 16(24) numeri diversi;
• –…
• con n bit possiamo rappresentare 2n numeri diversi.
• In generale in un sistema posizionale con base b,
possiamo rappresentare bn numeri diversi utilizzando n
cifre
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Un po’ di conti
• Quanti bit sono necessari per rappresentare m
numeri diversi?
• il più piccolo valore n tale che 2n ≥m.
• In generale n è il valore intero immediatamente
superiore a log2m (denotato con log2m )
• Esempio: se devo rappresentare 110 valori o un
valore inferiore a 110 avrò bisogno di 7 bit.
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Conversioni
• Come passo da un numero rappresentato in una
base b allo stesso numero rappresentato in
base b’?
• Esempio: come faccio a calcolare il
corrispondente binario di 98 o viceversa?
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Conversione in base 10
• Per convertire in base 10 il numero x rappresentato in
base b x = (xnxn-1…x0)b, è sufficiente eseguire il
calcolo seguente:
• (xn×bn+xn-1 ×bn-1+ … + x1×b1+ x0 ×b0)10
• Ad esempio:
(B3E)16 = (11×162 + 3×161 + 14×160)10
= (11×256+ 3×48+ 14×1)10
= (2816+ 144+ 14)10
= (2974)10
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Da base 10 a base b
• Per passare da una rappresentazione in base 10ad una in base
b, è sufficiente dividere successivamente(finché si ottiene zero
come risultato) il numero di partenza per la base b e leggere i
resti delle divisioni al contrario.
• Esempio: convertire (324)10 in base 8
324
4
40
0
5
5
0
• (324)10 = (504)8
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Passaggio da binario a ottale
• È sufficiente dividere (a partire da destra) a
gruppi di tre, i bit che compongono la
rappresentazione binaria e convertire in cifra
ottale ogni singolo gruppo di bit;
• Es.:
11000110100101
11 000 110 100 101
3
A.A. 09/10
0
6
4
5
Architetture degli Elaboratori I
© Danilo Bruschi
Da ottale a binario
• È sufficiente espandere ogni cifra del numero in
ottale nel corrispondente binario:
• Es.:
A.A. 09/10
( 657)8 = 110 101 111
Architetture degli Elaboratori I
© Danilo Bruschi
Da binario e esadecimale
• È sufficiente dividere (a partire da destra) a
gruppi di tre, i bit che compongono la
rappresentazione binaria e convertire in cifra
ottale ogni singolo gruppo di bit;
• Es:
11000110100101
11 0001 1010 0101
3
A.A. 09/10
1
A
5
Architetture degli Elaboratori I
© Danilo Bruschi
Da Esadecimale a Binario
• È sufficiente espandere ogni cifra del numero in
esadecimale nel corrispondente binario:
• Es.:
A.A. 09/10
( B79)8 = 1011 0111 1001
Architetture degli Elaboratori I
© Danilo Bruschi
Addizioni
• Eseguire le addizioni di numeri è banale:
• vanno sommate le singole cifre in posizioni
corrispondenti, andando a leggere la tavola
dell’addizione (incrociando la riga e la colonna
relative alle cifre in gioco);
• nel caso la somma abbia come risultato un numero
di due cifre, si effettua il riporto di quella più a
sinistra.
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Addizioni
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Moltiplicazione
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Aritmetica al calcolatore
• Va ricordato che il calcolatore opera su dati di
dimensione fissata
• Quindi è in grado di gestire soltanto valori con
un limite massimo prestabilito
• Nel caso in cui durante un’operazione aritmetica
si dovesse superare questo limite, viene dato
origine ad un errore di OVERFLOW
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Numeri negativi
• Per risolvere il problema della rappresentazione
dei numeri negativi vi sono vari approcci:
• rappresentazione con bit di segno;
• notazione in complemento a uno;
• notazione in complemento a due.
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Rappresentazione con bit di segno
• Supponiamo di avere a disposizione 8 bit; dividiamo l’intervallo
dei 256 valori rappresentabili in due parti:
• 0…127 (rappresentanti i numeri da 0 a 127);
• 128…255 (rappresentanti i numeri da –0 a –127).
• Il bit più significativo (più a sinistra) rappresenta quindi il segno
del numero:
• 0: numero positivo (intervallo da 0 a 127);
• 1: numero negativo (intervallo da 128 a 255).
• Aspetti negativi:
• lo zero ha due rappresentazioni: +0 (00000000), –0 (10000000)
• Devo realizzare degli appositi circuiti per la sottrazione.
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Complemento a due
•
Dato X = xn-1 xn-2 … x0 otteniamo il suo opposto
-X nel seguente modo:
1. calcolo il complemento a 1 di X invertendo tutti gli
1 in zero e gli zero in 1
2. Sommo al valore ottenuto al punto 1 il valore 1
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Riassumendo
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Esempi
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Binario-ottale-esadecimale
• 10011012 = 1158 = 5D16
• 110001112 = 3078 = A716
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
A.A. 09/10
Architetture degli Elaboratori I
© Danilo Bruschi
Scarica

Slides