• Non ci sono risultati.

-1.... Livello dei dispositivi ...-2.... (fisica dello stato solido) ...

N/A
N/A
Protected

Academic year: 2021

Condividi "-1.... Livello dei dispositivi ...-2.... (fisica dello stato solido) ..."

Copied!
12
0
0

Testo completo

(1)

Università degli Studi dell’Insubria Dipartimento di Scienze Teoriche e Applicate

Architettura degli elaboratori

Astrazione e Macchine Virtuali parte 2: in un tipico calcolatore

I livelli nei moderni calcolatori

6. … Livello delle applicazioni specifiche 5. Livello dei linguaggi applicativi

4. Livello del linguaggio assemblatore 3. Livello del sistema operativo

2. Livello dell’Instruction Set (ISA) 1. Livello della microarchitettura 0. Livello logico

-1. ... Livello dei dispositivi ...

(2)

Architettura degli elaboratori

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)

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

(3)

Architettura degli elaboratori

Livello 1: la microarchitettura

Livello 1 Microarchitettura

Livello 0 Logica digitale

Esecuzione diretta (Hardware)

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.

(4)

Architettura degli elaboratori

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.

Livello 2: Instruction Set Architecture

Livello 2 Instruction Set

Livello 1 Microarchitettura

Livello 0 Logica digitale

Interpretazione

(microprogramma)

o

esecuzione diretta

(hardware)

(5)

Architettura degli elaboratori

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 sintassidi ciascuna di queste istruzioni è costituita da sequenze di 0 e 1 (codifica binaria)

Livello 3: il sistema operativo

Livello 3 Sistema operativo

Livello 1 Microarchitettura

Livello 0 Logica digitale

Livello 2 Instruction Set

Interpretazione

parziale

(6)

Architettura degli elaboratori

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.

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 bassiprogrammazione di sistema Livelli altiprogrammazione 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.

(7)

Architettura degli elaboratori

Livello 4: il linguaggio assemblatore

Livello 4 Linguaggio assemblatore

Livello 1 Microarchitettura

Livello 0 Logica digitale

Livello 2 Instruction Set

Livello 3 Sistema operativo

Traduzione (assemblatore)

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.

(8)

Architettura degli elaboratori

Livello 5: i linguaggi applicativi

Livello 5 Linguaggi applicativi

Livello 1 Microarchitettura

Livello 0 Logica digitale

Livello 2 Instruction Set

Livello 3 Sistema operativo

Livello 4 Linguaggio assemblatore

Traduzione (compilatore)

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.

(9)

Architettura degli elaboratori

Livello 6: le applicazioni

Livello 6 Applicazioni specifiche

Livello 1 Microarchitettura

Livello 0 Logica digitale

Livello 2 Instruction Set

Livello 3 Sistema operativo

Livello 4 Linguaggio assemblatore

Design e sviluppo Livello 5 Linguaggi applicativi

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)

(10)

Architettura degli elaboratori

I livelli: uno schema riassuntivo

Livello 0 Logica digitale

Livello 2 Instruction Set

Interpretazione (microprogramma) o esecuzione diretta

(hardware)

Livello 5 Linguaggi Applicativi

Traduzione (compilatore)

Livello 3 Sistema operativo

Interpretazione parziale (sistema operativo)

Livello 4 Linguaggio Assemblatore

Traduzione (assemblatore)

Livello 1 Microarchitettura

Esecuzione diretta (Hardware)

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)

(11)

Architettura degli elaboratori

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)

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

(12)

Nelle parole di un famoso web-comic…

Architettura degli elaboratori

https://xkcd.com/676/

Riferimenti

Documenti correlati

Come spesso avviene, non è facile dare una definizione univoca e condivi- sa di una branca della scienza, semplicemente perché i confini tra le diverse discipline tendono ad essere

Le proprietà della materia nello stato solido riguardano la capacità dei corpi solidi di trasportare corrente elettrica, calore, vibrazioni, risposta alla temperatura e ai campi

(5 punti) Quali parametri costituiscono la tipica configurazione del software di rete di un host in una rete TCP/IP4. Spiegare, per ciascuno di essi, cosa sono e che

Se la chiamata non e` preceduta dalla dichiarazione dell’intestazione della funzione o dalla sua definizione il compilatore e` obbligato a formulare delle ipotesi sul tipo

Vi sono 3 paradigmi di programmazione principali: Imperativo, Logico e Funzionale (Logico e funzionale sono anche visti come molto simili tra loro, e vengono anche

Con la conduzione dell’incontro a cura della compagnia teatrale «Teatro educativo» di Bologna, si sono al- ternati al tavolo dei relatori: Fi- lippo Di Gregorio, Direttore risor-

Per completare il corso di 2’ livello di fitkid saranno necessarie anche ore pratiche in presenza ( si potranno svolgere nei weekend 4-5-6- settembre o 10 11 12 settembre durante

Prevedere uno stanziamento in rapporto al gettito 2010 pari a: 25 per mille nel 2012, 25 per mille nel 2013, 25 per mille.