© Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione...
-
Upload
gennaro-ferraro -
Category
Documents
-
view
223 -
download
5
Transcript of © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione...
A.A. 09/10 Architetture degli Elaboratori I
© Danilo Bruschi
Architetture I
Lez. 1Introduzione 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
Processore
Memoria
Alimentatore
Case
Scheda grafica
Hard disk
Raffreddamento
Video
Tastiera
Mouse
CD-DVD
A.A. 09/10 Architetture degli Elaboratori I
© Danilo Bruschi
Un unico modello di riferimento: la macchina di Von Neumann
INPUT
CPU
OUTPUT
MEMORIA
DATI
PROGRAMMI
A.A. 09/10 Architetture degli Elaboratori I
© Danilo Bruschi
Ciclo d’esecuzione
Carica dalla memoria la prox. istruzione
Interpreta l’istruzione
ESEGUI l’istruzione
FETCH
DECODE
EXECUTE
A.A. 09/10 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 SEMANTICA INFORMAZIONE
A.A. 09/10 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 :
000 0
001 1
010 2
011 3
100 4
101 5
110 6
111 7
A.A. 09/10 Architetture degli Elaboratori I
© Danilo Bruschi
4 bit
0000 0
0001 1
0010 2
0011 3
0100 4
0101 5
0110 6
0111 7
1000 8
1001 9
1010 10
1011 11
1100 12
1101 13
1110 14
1111 15
A.A. 09/10 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 0 6 4 5
A.A. 09/10 Architetture degli Elaboratori I
© Danilo Bruschi
Da ottale a binario
• È sufficiente espandere ogni cifra del numero in ottale nel corrispondente binario:
• Es.: ( 657)8 = 110 101 111
A.A. 09/10 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 1 A 5
A.A. 09/10 Architetture degli Elaboratori I
© Danilo Bruschi
Da Esadecimale a Binario
• È sufficiente espandere ogni cifra del numero in esadecimale nel corrispondente binario:
• Es.: ( B79)8 = 1011 0111 1001
A.A. 09/10 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