116 Introduzione al corso di Architettura degli Elaboratori
A. Rodà (adattamento da G. Chiola)
Architettura degli Elaboratori © 2013
Elaboratore elettronico 2
- Un elaboratore elettronico è una macchina automatizzata per l’elaborazione di dati, numerici o di altro tipo.
- Macchina di tipo «universale», capace cioè di eseguire diversi programmi per la risoluzione di una grande varietà di problemi.
Architettura degli Elaboratori © 2013
Un primo esempio di macchina... 3
- Si adatta a differenti tipi di bucato.
- Viene programmata mediante un linguaggio fatto da singole parole: "Cotone", "Colorati", "Sintetici", "Lana".
- Non esegue controlli: è compito dell’utente impartire ordini corretti leggendo prima il manuale d’uso.
- Anche impartendo ordini corretti la macchina potrebbe non dare i risultati aspettati -> guasto.
Architettura degli Elaboratori © 2013
Un primo esempio di macchina... 4
- Se la macchina si guasta, il tecnico della manutenzione userà descrizioni dello stesso elettrodomestico diverse dal manuale d'uso: schemi elettrici, catalogo delle parti, ecc.
- Utilizzerà quindi un modo diverso di osservare e manipolare la stessa macchina -> un diverso livello di astrazione.
Architettura degli Elaboratori © 2013
Preparare una pizza... 5
- Per cucinare una pizza occorre procurarsi gli ingredienti, la ricetta, ed una serie di attrezzi.
- La ricetta farà uso di un linguaggio che dobbiamo essere in grado di comprendere e dovrà descrivere il procedimento in termini di passi elementari che dobbiamo essere in grado di realizzare.
- In termini informatici, la realizzazione di una pizza seguendo passo passo le indicazioni di una ricetta costituisce una attività detta interpretazione da parte di una macchina virtuale (noi stessi nella fattispecie).
Architettura degli Elaboratori © 2013
Preparare una pizza... 6
- Talvolta potremmo aver bisogno di istruzioni più dettagliate per portare a termine un’operazione (ad es. “scaldare il forno”).
- L'eventuale interruzione della interpretazione della ricetta per leggere su un altro manuale le istruzioni dettagliate di accensione e regolazione della temperatura, in termini informatici costituisce una estensione procedurale, per sopperire ad una mancanza di corrispondenza tra le istruzioni contenute nella ricetta (programma da eseguire) e l'insieme delle istruzioni che la macchina virtuale (noi stessi) conosce ed è in grado di eseguire direttamente.
- Al termine dell'interpretazione della procedura "scaldare il forno" la macchina virtuale può tornare all'interpretazione del programma principale, dal punto in cui l'aveva interrotto.
Architettura degli Elaboratori © 2013
In pizzeria... 7
- In pizzeria l'interazione avviene con un cameriere, il quale assume agli occhi del cliente il ruolo di macchina virtuale.
- Il linguaggio usato per la comunicazione cliente-cameriere sarà quello dei nomi delle pizze scritte sul menù -> linguaggio ad alto livello.
- Ordinando al cameriere una “quattro stagioni" comandiamo alla macchina virtuale pizzeria l'esecuzione di una attività complessa, il cui risultato è quello di far arrivare al tavolo la pizza desiderata, disinteressandosi dei dettagli.
Architettura degli Elaboratori © 2013
In pizzeria... 8
- Il cameriere scriverà l'ordine su un pezzo di carta usando delle convenzioni per codificare in forma abbreviata l'ordine.
- Il cameriere, passato l’ordine, può dedicarsi a servire un altro tavolo, demandando quindi il completamento dell'esecuzione dell'istruzione ad un'altra macchina virtuale (il pizzaiolo) -> catena di montaggio, che gli informatici chiamano pipeline.
Architettura degli Elaboratori © 2013
In pizzeria... 9
- La macchina virtuale pizzaiolo interpreta gli ordini ricevuti dal cameriere applicando una serie di passi elementari che ha imparato ad eseguire una volta per tutte e che ricorda in permanenza (stendere la pasta, aggiungere la passata di pomodoro, aggiungere la mozzarella, ecc.).
- In termini informatici, il pizzaiolo esegue una istruzione della sua macchina virtuale interpretando una sequenza di micro istruzioni presenti in una sua memoria permanente (firmware) ed univocamente associate a ciascun codice che il cameriere scrive sull'ordine.
- L'esecuzione delle micro istruzioni può essere interrotta solo nel caso si manifestino delle eccezioni (o trap), ad esempio per esaurimento degli ingredienti o per mancato riconoscimento del codice di un comando.
- Il trattamento di una eccezione può comportare un ritardo nel completamento dell'esecuzione del comando (per esempio chiedendo a voce al cameriere di chiarire cosa c’era scritto nella comanda) o l'aborto (col cameriere che torna dal cliente e si scusa di non poter soddisfare l'ordine a causa dell'esaurimento dei carciofini).
Architettura degli Elaboratori © 2013
Stratificazione a livelli 10
- Storicamente si è venuta consolidando una stratificazione dei livelli di astrazione utilizzati per progettare e per descrivere un sistema di calcolo.
- L 5 Linguaggi di alto livello.
- L 4 Assembler.
- L 3 Nucleo del Sistema Operativo.
- L 2 Macchina convenzionale.
- L 1 Micro Architettura o Trasferimento tra Registri.
- L 0 Logica Circuitale.
- L-1 Elettronica Circuitale e/o Fotonica.
- L-2 Fisica dello stato solido.
Architettura degli Elaboratori © 2013
Stratificazione a livelli 11
- L 5 Linguaggi di alto livello: il livello di macchina virtuale normalmente usato dal programmatore di applicazioni eseguite dal sistema di calcolo.
- L 4 Assembler: il livello di macchina virtuale più basso utilizzabile dal programmatore di applicazioni eseguite dal sistema di calcolo.
- L 3 Nucleo del Sistema Operativo: il livello di macchina virtuale che permette l'attivazione di programmi indipendenti (processi) e l'uso delle risorse fisiche del sistema da parte di questi programmi, senza interazioni logiche tra loro.
- L 2 Macchina convenzionale: il livello di definizione delle istruzioni base del computer e degli altri dispositivi fisici che compongono il sistema.
Architettura degli Elaboratori © 2013
Stratificazione a livelli 12
- L 1 Micro Architettura o Trasferimento tra Registri: il livello di definizione del funzionamento dei singoli componenti fisici del sistema in termini di interconnessione e spostamento di informazioni tra circuiti logici elementari.
- L 0 Logica Circuitale: il livello di realizzazione dei circuiti logici elementari basato sulla logica Booleana.
- L-1 Elettronica Circuitale e/o Fotonica: il livello di progettazione dei circuiti logici elementari in termini di transistor o dispositivi optoelettronici.
- L-2 Fisica dello stato solido: il livello di progettazione dei dispositivi elettronici integrati sulla base delle caratteristiche fisiche dei semiconduttori.
Architettura degli Elaboratori © 2013
Stratificazione a livelli 13
Fondamenti di informatica
L 5 Linguaggi di alto livello
L 4 Assembler Sistemi operativi
L 3 Nucleo del Sistema Operativo
L 2 Macchina convenzionale
L 1 Micro Architettura o Trasferimento tra Registri
L 0 Logica Circuitale
L-1 Elettronica Circuitale e/o Fotonica
L-2 Fisica dello stato solido Corsi di elettronica
Architettura degli Elaboratori © 2013
Corso di Architettura degli elaboratori 14
L 5 Linguaggi di alto livello
L 4 Assembler
L 3 Nucleo del Sistema Operativo
L 2 Macchina convenzionale
L 1 Micro Architettura o Trasferimento tra Registri
L 0 Logica Circuitale
L-1 Elettronica Circuitale e/o Fotonica
L-2 Fisica dello stato solido
Architettura degli Elaboratori © 2013
Programma del corso 15
- Reti logiche (combinatorie e sequenziali) -> L0.
- Architettura ed organizzazione degli elaboratori -> L1.
- Istruzioni di macchina -> L2: PD32.
- Introduzione al linguaggio assembly -> L4.
- Il processore ARM: Samsung S3C2440.
- Attività di laboratorio: uso del linguaggio assembly.
Architettura degli Elaboratori © 2013
16 Fine
Introduzione al corso di Architettura degli Elaboratori
Architettura degli Elaboratori © 2013
Testo di rif.to: [Congiu] - 1.1 (pg. 1–17)
Rappresentazione delle informazioni - 1.g Informazioni numeriche
Rappresentazione delle informazioni 1
Stringa di 32 bit nella memoria di un elaboratore:
11100000100000010010000000000000
Cosa rappresenta? Dipende ... certamente una di 232 = 4294967296 (4G) possibili cose diverse:
- Un’istruzione ARM: add r2, r1, r0.
- Un numero naturale (in base 2): 403499417610.
- Un numero intero (complemento a 2): -25997312010.
- Un numero razionale (floating point): 66-74435494641179600000 (-1,0087890625) × 210.
- Una stringa di 4 caratteri (ASCII): ‘<SOH> <NUL>.
- Una stringa di 4 caratteri (ASCII estesa): ü <NUL>a.
- Uno di 4G possibili colori diversi di un pixel.
- . . .
© 2017 Architettura degli Elaboratori
Cosa vedremo 2
- I sistemi di numerazione.
- Decimale, binario, esadecimale…
- Conversioni di base.
- Le informazioni numeriche.
- Numeri naturali (senza segno o “unsigned”).
- Numeri interi (con segno o “signed”).
- Numeri non interi (Þ fixed-/floating-point).
- Le informazioni non numeriche.
- Testi, immagini, suoni, video…
© 2017 Architettura degli Elaboratori
Il sistema posizionale 3
(… .a =a a a a …) b2 1 0 -1 -2
= + + + + +… … + a · b2 a · b1 a · b0 a · b-1 a · b-2
i= a · bS i i
- b è la base del sistema di numerazione.
- Gli a i sono le cifre del numero.
- Il valore di una cifra dipende dalla sua posizione.
© 2017 Architettura degli Elaboratori
Sistema decimale 4
- b=10.
- Possibili cifre: {0;1;2;3;4;5;6;7;8;9}.
32095.42 = 2 · 103 + 102 + 0 · 109 · 10 +5 +4 / 10 +22 / 10
© 2017 Architettura degli Elaboratori
Sistema binario 5
- b=2.
- Possibili cifre: {0;1}.
4= 1 · 23 +11011.1012 31 · 2 +20 · 2 +1 · 2 +1 +1 / 2 +2 +0 / 2 3 = 27.62510
© 2017 Architettura degli Elaboratori
Sistema ottale 6
- b=8.
- Possibili cifre: {0;1;2;3;4;5;6;7}.
402= · 8 +3375.18 · 8 +7 +5 / 8 =1 253.12510
Una cifra ottale può rappresentare 3 cifre binarie:
110 011 101 001 110011101001 = 63512 8 6 3 5 1
© 2017 Architettura degli Elaboratori
Sistema esadecimale 7
- b=16.
- Possibili cifre: {0;1;2;3;4;5;6;7;8;9;A;B;C;D;E;F}.
402= · 16 +7B9.1 716 · 16 +11+9 / 16 =1 1977.062510
Una cifra esadecimale può rappresentare 4 cifre binarie:
1100 1110 1001 110011101001 = CE92 16C E 9
© 2017 Architettura degli Elaboratori
Conversioni di base (1 di 4) 8
- Da ottale/esadecimale a binario: espansione di ogni cifra in una terna/quaterna di cifre binarie.
- Da binario a ottale/esadecimale: raggruppamento in terne/quaterne di cifre e sostituzione di ciascuna terna/quaterna con l’opportuna cifra ottale/esadecimale.
- Da qualsiasi base a decimale: applicando la definizione di notazione posizionale.
© 2017 Architettura degli Elaboratori
Conversioni di base (2 di 4) 9
Da decimale a qualsiasi altra base b si prendono i resti delle divisioni successive per b.
Parte intera:
Esempio: 2009 = 7D910 16
2009/16 = 125 resto: 9
125/16 = 7 resto: 13=D L’ultima cifra16 è la più significativa.
7/16 = 0 resto: 7
Il procedimento si arresta.
© 2017 Architettura degli Elaboratori
Conversioni di base (3 di 4) 10
Da decimale a qualsiasi altra base b si prendono le parti intere delle moltiplicazioni successive per b.
Parte frazionaria:
Esempio: 0.6875 = 0.101110 2
0.6875·2 = 1.375 parte intera: 1 La prima cifra.
0.375·2 = 0.75 parte intera: 0 è la più significativa.
0.75·2 = 1.5 parte intera: 1
0.5·2 = 1 parte intera: 1
Il procedimento si arresta.
© 2017 Architettura degli Elaboratori
Conversioni di base (4 di 4) 11
Da decimale a qualsiasi altra base b.
Parte frazionaria.
Il procedimento può anche essere infinito!
= 0. …
Esempio: 0.3 0100110 2
0.3·2 = 0.6 parte intera: 0
0.6·2 = 1.2 parte intera: 1
0.2·2 = 0.4 parte intera: 0
0.4·2 = 0.8 parte intera: 0
0.8·2 = 1.6 parte intera: 1
0.6·2 = 1.2 parte intera: 1
… … …
© 2017 Architettura degli Elaboratori
Rappresentazione negli elaboratori 12
Negli elaboratori, l’elemento base per la rappresentazione delle informazioni è il BInary digiT o più semplicemente BIT (Tukey, 1947).
Può essere realizzato in molti modi diversi (carica elettrica, campo magnetico, ecc.), ma in tutti i casi può assumere esattamente 2 valori e corrisponde quindi a una cifra binaria.
Qualsiasi informazione in un elaboratore è rappresentata tramite un numero finito di bit.
© 2017 Architettura degli Elaboratori
Rappresentazione finita: osservazione 13
Utilizzando un numero di cifre finito si può rappresentare solo una quantità finita di numeri.
Esempio per i numeri naturali:
base n. di cifre quantità min max
M M10 M 10 0 10 -1
410 4 10 0 9999
M M0 2 -12 M 2 4
22 4 2 0 15
102 10 2 0 1023
202 20 2 0 1048575
302 30 2 0 1073741823
© 2017 Architettura degli Elaboratori
Potenze di 2 14
Quando il numero di bit è elevato, si usano delle abbreviazioni analoghe a quelle delle unità di misura.
Prefisso Nome Pot. di 2 Valore
101 Ki 1K kibi-kilo- 2 1.024
201 Mi 1M mega-mebi- 2 1.048.576
30 1.073.741.824 1Gi gibi-1G giga- 2
40 12 1T tera- 2 ~1.1 x 101
1Ti tebi-IEC60027 50 15
1P peta- 2 ~1.1 x 101
1Pi pebi- 60 18
1Ei 1E exbi-exa- 2
70 21 1Z zeta- 2 ~1.2 x 101
1Zi zebi- 80 24 1Y yotta- 2 ~1.2 x 101
1Yi yobi-
© 2017 Architettura degli Elaboratori
Numeri naturali 15
Esempio di rappresentazione con M=4 cifre (bit):
0000 = 02 10
0001 = 12 10
0010 = 22 10
0011 = 32 10
0100 = 42 10
…
1110 = 142 10
1111 = 152 10
I numeri maggiori di 15 non sono rappresentabili.
© 2017 Architettura degli Elaboratori
Numeri interi: ampiezza e segno 16
Il primo bit (quello più significativo) viene utilizzato per indicare il segno:
1111 -7«2 10
1110 -6«2 10
1101 -5«2 10
…
1001 -1«2 10
1000 -0«2 rappresentazioni 2 10 dello 0
0000 = +02 10
0001 = +12 10 Si riduce il numero
… di interi positivi rappresentabili
0110 = +62 10
0111 = +72 10
© 2017 Architettura degli Elaboratori
Numeri interi: eccesso P 17
Il valore rappresentato si ottiene sottraendo P al valore calcolato secondo la notazione posizionale.
M-1 Esempio con M=4 e P=8 (di solito P=2 ):
0000 -8 = 0 -8«2 10 10
0001 -7 = 1 -8« Dissimmetria2 10 10
0010 -6 = 2 -8«2 10 10 10
… -1
0111 «2 10 Una sola
1000 0 rappresentazione «2 10 dello 0
1001 1«2 10
…
1110 6«2 10
1111 7«2 10
© 2017 Architettura degli Elaboratori
Numeri interi: complemento a 1 18
La rappresentazione di un intero positivo coincide con quella del corrispondente numero naturale.
La rappresentazione di un intero negativo si ottiene complementando bit a bit quella del suo opposto.
1000 -7«2 10
1001 -6«2 10
…
1110 -1«2 10
1111 -0«2 rappresentazioni 2 10 dello 0
0000 = +02 10
0001 = +12 10
…
0110 = +62 10
0111 = +72 10
© 2017 Architettura degli Elaboratori
Numeri interi: complemento a 2 19
La rappresentazione di un intero positivo coincide con quella del corrispondente numero naturale.
La rappresentazione di un intero negativo si ottiene aggiungendo una unità al complemento a 1.
1000 -8«2 10
1001 -7«2 10
…
1111 -1«2 10
0000 = 02 10
0001 = +12 10
…
= +60
1102 10
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.
-
Appunti Architettura degli elaboratori
-
Appunti esame Architettura degli elaboratori (1 anno)
-
Architettura degli elaboratori - Appunti
-
Architettura degli elaboratori - Appunti