Marco Tarini - Università dell'Insubria
A.A. 2016/17
Università degli Studi dell’Insubria
Dipartimento di Scienze Teoriche e Applicate
Astrazione e Macchine Virtuali
parte 2: in un tipico calcolatore
Architettura degli elaboratori
I livelli nei moderni calcolatori
6.
5.
4.
3.
2.
1.
0.
-1.
-2.
… Livello delle applicazioni specifiche
Livello dei linguaggi applicativi
Livello del linguaggio assemblatore
Livello del sistema operativo
Livello dell’Instruction Set (ISA)
Livello della microarchitettura
Livello logico
... Livello dei dispositivi ...
... (fisica dello stato solido) ...
Architettura degli elaboratori
Architettura degli elaboratori - Astrazione e Macchine Virtuali (Pt 1)
1
Marco Tarini - Università dell'Insubria
A.A. 2016/17
Livello dei dispositivi
Transistor che formano i circuiti elettronici di cui è composto un calcolatore.
Raggiunge un livello di dettaglio che viene in genere trascurato nella
progettazione dei calcolatori.
A un livello ancor più basso ci si occupa della fisica dello stato solido
(es silicio drogato, come semiconduttore)
Architettura degli elaboratori
Livello 0: la logica digitale
La macchina è formata da porte logiche.
Ogni porta riceve in ingresso dei segnali binari (cioè segnali che possono
essere 0 o 1) e calcola una semplice funzione (AND, OR, ...).
Alcune porte, collegate opportunamente, possono formare una memoria di
un bit (bistabile).
Combinando N memorie di un bit si può formare un registro capace di
memorizzare un numero binario (non più grande di 2N-1).
Combinando le porte si realizzano i circuiti che eseguono task come
fare operazioni aritmetiche fra numeri
leggere dalla memoria
etc
Architettura degli elaboratori
Architettura degli elaboratori - Astrazione e Macchine Virtuali (Pt 1)
2
Marco Tarini - Università dell'Insubria
A.A. 2016/17
Livello 1: la microarchitettura
Livello 1
Livello 0
Microarchitettura
Logica digitale
Esecuzione
diretta
(Hardware)
Architettura degli elaboratori
Livello 1: la microarchitettura
Elaborazione – Data Path
registri general purpose come memoria locale;
Arithmetic Logic Unit (ALU) capace di eseguire semplici operazioni
aritmetico-logiche;
Elementi di connessione tra registri e ALU.
Controllo
registri dedicati al controllo (PC, IR, ...);
Unità di controllo – Control Unit
che può microprogrammata o cablata.
Architettura degli elaboratori
Architettura degli elaboratori - Astrazione e Macchine Virtuali (Pt 1)
3
Marco Tarini - Università dell'Insubria
A.A. 2016/17
Control Unit:
cablata o microprogrammata?
Control Unit Microprogrammata
il funzionamento del Data Path viene controllato da un programma
chiamato microprogramma;
si tratta di un interprete delle istruzioni di livello 2;
era la soluzione più diffusa in passato, tanto che il termine µprogrammazione era a volte sinonimo di µ-architettura.
Control Unit Cablata
il funzionamento del Data Path viene controllato direttamente tramite
dispositivi hardware;
la sequenza di operazioni associate alle istruzioni di livello 2 non viene
generata da un interprete ma viene gestita direttamente via hardware.
Architettura degli elaboratori
Livello 2: Instruction Set Architecture
Livello 2
Instruction Set
Interpretazione
(microprogramma)
Livello 1
Microarchitettura
Livello 0
Logica digitale
o
esecuzione diretta
(hardware)
Architettura degli elaboratori
Architettura degli elaboratori - Astrazione e Macchine Virtuali (Pt 1)
4
Marco Tarini - Università dell'Insubria
A.A. 2016/17
Livello 2: Instruction Set Architecture
Insieme delle istruzioni che possono essere comprese dalla µ-architettura
(la µ-architettura agisce da interprete dell’Instruction Set).
È il livello cui si fa riferimento quando si descrive il “linguaggio macchina” di
un calcolatore.
la sintassi di ciascuna di queste istruzioni è costituita da sequenze di 0 e 1
(codifica binaria)
Architettura degli elaboratori
Livello 3: il sistema operativo
Livello 3
Sistema operativo
Livello 2
Instruction Set
Livello 1
Microarchitettura
Livello 0
Logica digitale
Interpretazione
parziale
Architettura degli elaboratori
Architettura degli elaboratori - Astrazione e Macchine Virtuali (Pt 1)
5
Marco Tarini - Università dell'Insubria
A.A. 2016/17
Livello 3: il sistema operativo
Il linguaggio di questo livello:
comprende molte istruzioni che si trovano già al livello 2;
comprende anche un insieme di istruzioni aggiuntive;
ha una diversa organizzazione della memoria;
esegue più programmi contemporaneamente.
La traduzione è ibrida
Le nuove funzionalità sono eseguite da un interprete
che viene definito “Sistema operativo”.
Le istruzioni identiche a quelle del livello 2 vengono eseguite direttamente
dalla microarchitettura.
Architettura degli elaboratori
Livelli bassi (1, 2, 3) vs livelli alti (4, 5)
I livelli bassi supportano il funzionamento dei compilatori e degli interpreti
utilizzati ai livelli alti:
Livelli bassi
⇔ programmazione di sistema
Livelli alti
⇔ programmazione di applicazioni
Per migliorare le prestazioni:
i livelli 2 e 3 vengono sempre interpretati;
i livelli 4 e 5 vengono spesso compilati.
Per questioni di efficienza e di “usabilità”:
i linguaggi dei livelli 2 e 3 sono in codifica binaria;
i linguaggi dei livelli 4 e 5 sono testuali (simbolici) cioè composti da
parole hanno un senso per l’uomo.
Architettura degli elaboratori
Architettura degli elaboratori - Astrazione e Macchine Virtuali (Pt 1)
6
Marco Tarini - Università dell'Insubria
A.A. 2016/17
Livello 4: il linguaggio assemblatore
Livello 4
Linguaggio assemblatore
Traduzione
(assemblatore)
Livello 3
Sistema operativo
Livello 2
Instruction Set
Livello 1
Microarchitettura
Livello 0
Logica digitale
Architettura degli elaboratori
Livello 4: il linguaggio assemblatore
Rappresentazione simbolica di uno dei livelli sottostanti.
I linguaggi binari dei livelli “bassi” sono difficili da usare per un
programmatore (... errori di “trascrizione” ...).
A ogni istruzione del linguaggio assemblatore corrisponde una istruzione
del linguaggio macchina.
I programmi in linguaggio assemblatore vengono tradotti in un linguaggio di
livello inferiore e poi eseguiti. Il programma che esegue la traduzione si
chiama assemblatore.
Architettura degli elaboratori
Architettura degli elaboratori - Astrazione e Macchine Virtuali (Pt 1)
7
Marco Tarini - Università dell'Insubria
A.A. 2016/17
Livello 5: i linguaggi applicativi
Livello 5
Linguaggi applicativi
Livello 4
Linguaggio assemblatore
Livello 3
Sistema operativo
Livello 2
Instruction Set
Livello 1
Microarchitettura
Livello 0
Logica digitale
Traduzione
(compilatore)
Architettura degli elaboratori
Livello 5: i linguaggi applicativi
Linguaggi di alto livello come C, C++, Java, Ada, LISP, Prolog, ...
Sono utilizzati per la realizzazione di programmi applicativi.
Il più delle volte la traduzione è affidata a un compilatore, mentre in alcuni
casi si usa un interprete (e.g. Java)
I linguaggi ad alto livello non fanno parte degli scopi di questo corso.
Architettura degli elaboratori
Architettura degli elaboratori - Astrazione e Macchine Virtuali (Pt 1)
8
Marco Tarini - Università dell'Insubria
A.A. 2016/17
Livello 6: le applicazioni
Livello 6
Applicazioni specifiche
Livello 5
Linguaggi applicativi
Livello 4
Linguaggio assemblatore
Livello 3
Sistema operativo
Livello 2
Instruction Set
Livello 1
Microarchitettura
Livello 0
Logica digitale
Design e
sviluppo
Architettura degli elaboratori
Livello 6 e oltre: applicazioni specifiche
Es:
adobe photoshop, microsoft word, microsoft powerpoint,
libreoffice calc, google chorme, final cut pro,
blender, unity, etc, etc, etc
Spesso attraverso molti livelli intermedi:
librerie, SDK, drivers…
(niente di questo fa parte degli scopi di questo corso)
Architettura degli elaboratori
Architettura degli elaboratori - Astrazione e Macchine Virtuali (Pt 1)
9
Marco Tarini - Università dell'Insubria
A.A. 2016/17
I livelli: uno schema riassuntivo
Livello 5
Livello 4
Linguaggi Applicativi
Traduzione
(compilatore)
Linguaggio Assemblatore
Traduzione
(assemblatore)
Livello 3
Sistema operativo
Interpretazione parziale
(sistema operativo)
Livello 2
Instruction Set
Livello 1
Microarchitettura
Livello 0
Logica digitale
Interpretazione
(microprogramma)
o esecuzione diretta
(hardware)
Esecuzione diretta
(Hardware)
Architettura degli elaboratori
I livelli: sommario
I calcolatori sono progettati come una serie di livelli ognuno dei quali si
basa sul livello precedente.
Ogni livello rappresenta una diversa astrazione con strutture dati e
funzionalità diverse.
L’insieme di tipi di dati, operazioni e caratteristiche di ogni livello prende il
nome di ARCHITETTURA.
La descrizione dell’architettura di un livello presenta l’insieme delle
caratteristiche visibili all’utente di quel livello (e.g. ad un programmatore di
applicazioni interessa sapere quanta è la memoria disponibile)
Architettura degli elaboratori
Architettura degli elaboratori - Astrazione e Macchine Virtuali (Pt 1)
10
Marco Tarini - Università dell'Insubria
A.A. 2016/17
I livelli: alcuni Principi generali
Livelli alti:
linguaggi potenti ed espressivi
linguaggi più «vicini all’uomo»
sintassi delle istruzioni: intuitiva
macchine virtuali
più cross platform (cross.browser, cross OS, …)
Livelli bassi:
linguaggi dai comandi semplici
linguaggi più «a misura di macchina»
pochi tipi di istruzione base
sintassi delle istruzioni: spesso non intuitiva (non è fatta per noi umani)
semantica delle istruzioni: molto semplice
(quindi serviranno più istruzioni per fare le stesse cose)
Livello più basso: esecutore hardware (macchina fisica)
Architettura degli elaboratori
Nota: Hardware vs. Software
Hardware: oggetti tangibili che compongono un calcolatore (circuiti elettronici,
memoria, dispositivi di I/O, ...).
Software: programmi, indipendentemente dal supporto su cui sono memorizzati
(HD, RAM, CD, ...).
Hardware e software sono logicamente equivalenti
qualsiasi operazione effettuata dal software può essere inglobata
nell’hardware (“hardware = software pietrificato”);
qualsiasi istruzione eseguita dall’hardware può essere simulata dal
software;
la decisione di realizzare una funzione in hardware o in software dipende
da parametri quali il costo, la velocità, l’affidabilità, la frequenza di
variazione, ...
Architettura degli elaboratori
Architettura degli elaboratori - Astrazione e Macchine Virtuali (Pt 1)
11
Marco Tarini - Università dell'Insubria
A.A. 2016/17
Nelle parole di un famoso web-comic…
https://xkcd.com/676/
Architettura degli elaboratori
Architettura degli elaboratori - Astrazione e Macchine Virtuali (Pt 1)
12