© danilo bruschi a.a. 09/10 architetture degli elaboratori i architetture i lez. 1 introduzione...

50
A.A. 09/10 Architetture degli Elaboratori I © Danilo Bruschi Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

Upload: gennaro-ferraro

Post on 02-May-2015

223 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Architetture I

Lez. 1Introduzione all'architettura degli elaboratori

Page 2: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I 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

Page 3: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 4: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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]

Page 5: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Mainframe

Page 6: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Desktop

Page 7: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Laptop

Page 8: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Smartphone

Page 9: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Page 10: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 11: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 12: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 13: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Dettaglio (I)

Page 14: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Dettaglio (II)

Page 15: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Dettaglio (III)

Page 16: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Rappresentare le informazioni

Page 17: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 18: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 19: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 20: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 21: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 22: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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.

Page 23: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 24: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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:

Page 25: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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.

Page 26: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 27: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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.

Page 28: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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}.

Page 29: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 30: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 31: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 32: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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.

Page 33: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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?

Page 34: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 35: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 36: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 37: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 38: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 39: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 40: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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.

Page 41: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Addizioni

Page 42: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Moltiplicazione

Page 43: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 44: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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.

Page 45: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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.

Page 46: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

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

Page 47: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Riassumendo

Page 48: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Esempi

Page 49: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi

Binario-ottale-esadecimale

• 10011012 = 1158 = 5D16

• 110001112 = 3078 = A716

Page 50: © Danilo Bruschi A.A. 09/10 Architetture degli Elaboratori I Architetture I Lez. 1 Introduzione all'architettura degli elaboratori

A.A. 09/10 Architetture degli Elaboratori I

© Danilo Bruschi