• Non ci sono risultati.

Architettura degli Elaboratori Architettura degli Elaboratori

N/A
N/A
Protected

Academic year: 2022

Condividi "Architettura degli Elaboratori Architettura degli Elaboratori"

Copied!
11
0
0

Testo completo

(1)

Architetture degli Elaboratori

Corso di Corso di

Architettura degli Elaboratori Architettura degli Elaboratori

a.a. 2005/2006 a.a. 2005/2006

Linguaggi, livelli, macchine virtuali e struttura del calcolatore moderno

Matteo Baldoni Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 185 – I-10149 Torino baldoni[at]di[dot]unito[dot]it

       





     

Architetture degli Elaboratori

Livelli come astrazioni Livelli come astrazioni

 Un computer è una macchina programmabile, tuttavia esso non è direttamente utilizzabile da parte degli utenti poiché richiederebbe la conoscenza sull’organizzazione fisica della specifica macchina e del suo linguaggio macchina

 Ogni machina avrebbe le sue differenti caratteristiche

 Il linguaggio macchina è estremamente complicato e non di facile gestione

Linguaggio Macchina

Utente

?

? ?

Architetture degli Elaboratori

Livelli come astrazioni Livelli come astrazioni

 In altre parole desideriamo astrarci dai dettagli fisici della macchina in oggetto e dal suo specifico linguaggio macchina

 L’idea è quella di realizzare al di sopra della macchina reale una macchina virtuale astratta che abbia le funzionalità desiderate e che sia facile da utilizzare per l’utente

 L’utente interagisce con la macchina virtuale, ogni comando viene poi tradotto nei

corrispondenti comandi sulla macchina fisica

 La macchina virtuale è realizzata mediante software (programmi)

traduzione in LM Software

Macchina Virtuale

Utente

Linguaggio Macchina

Architetture degli Elaboratori

Livelli come astrazioni Livelli come astrazioni

 La macchina virtuale viene realizzata in genere mediante il software di base:

 Sistema Operativo: file system, memoria, cpu, risorse ausiliarie, comunicazione

 Linguaggi e ambienti di programmazione ad alto livello:

interpreti e compilatori

 Non vi sono limiti al numero e al tipo di macchine virtuali che possono essere realizzate

 In genere nelle macchine moderne sono strutturate su più livelli (struttura a cipolla)

traduzione in LM Software

Macchina Virtuale

Utente

Linguaggio Macchina traduzione

Software

Macchina Virtuale

(2)

Architetture degli Elaboratori

Livelli come astrazioni Livelli come astrazioni

 In termini un po’ più astratti, detto:

 Ih l’insieme delle istruzioni che costituiscono il linguaggio LM della macchina virtuale del livello h

 Mh l’insieme delle istruzioni utilizzabili al livello h, ma mascherate nei confronti dei livelli superiori

 Ch l’insieme dei comandi implementati a livello h utilizzando il linguaggio macchina Ih

 Il linguaggio macchina Ih+1 della macchina virtuale di livello h+1 puo’ essere definito nel modo seguente:

 Ih+1 = Ih + Ch - Mh

traduzione in LM Software

Macchina Virtuale

Utente

Linguaggio Macchina traduzione

Software

Macchina Virtuale

h=1

h=0

Architetture degli Elaboratori

Livelli come astrazioni Livelli come astrazioni

 Un browser è un programma

 Un browser interpreta il linguaggio HTML e visualizza le pagine sullo schermo

 Per la visualizzazione delle pagine un browser che per farlo si appoggia al software di base

 Il software di base si appoggia alla macchina fisica per realizzare effettivamente il “rendering” della pagina su video

traduzione in LM Software

Macchina Virtuale

Utente

Linguaggio Macchina traduzione

BROWSER

Macchina Virtuale

Architetture degli Elaboratori

Interpretazione Interpretazione

 Interprete (JavaScript, Scheme, Prolog, php, asp):

Interazione. Più facile modificare un programma durante l'esecuzione

Sparc/Solaris

Apple Codice Sorgente

Interprete Sparc/Solaris

Interprete MacOS

Interprete Intel/GNU-Linux

Intel/GNU-Linux Intel/Windows

Architetture degli Elaboratori

Interpretazione Interpretazione

 Affinché le due persone di lingua diversa possano dialogare tra di loro (nel caso nessuna delle due conosca la lingua dell’altro) è necessario che qualcuno interpreti (traduca sul momento) quanto dice una persona nella propria lingua nella lingua di chi ascolta

 Si interpreta quando è necessario una stretta interazione, quando si desidera dialogare e non solo trasmettere un messaggio

(3)

Architetture degli Elaboratori

Traduzione o compilazione Traduzione o compilazione

 Compilazione (Pascal, C, Ada, C++):Efficienza di esecuzione. Il codice generato dal

compilatore può essere ottimizzato, perché la compilazione è fatta una sola volta

Compilatore Sparc/Solaris

Compilatore MacOS

Compilatore Intel/GNU-Linux

binario binario

binario

Intel/GNU-Linux Intel/Wind

Apple Sparc/Solaris Codice Sorgente

Architetture degli Elaboratori

Traduzione o compilazione Traduzione o compilazione

 La traduzione è adatta per comunicare messaggio, come ad esempio una lettera

 Anche per effettuare una traduzione è necessario l’intervento di qualcuno che sia in grado di comprendere le frasi di un linguaggio e riportarle in un altro ma questo può operare in tempi separati rispetto la scrittura del messaggio e la sua lettura

 La lettura è più rapida e semplice, il traduttore ha senz’altro avuto tempo per meglio adattare il testo

 ma si penalizza l’interattività

Architetture degli Elaboratori

Soluzione mista: Java Soluzione mista: Java

 Soluzione mista (Java):Portabilità. Per eseguire un programma su macchine diverse è sufficiente implementare l'interprete del linguaggio intermedio, e non tutto il compilatore

Palm Compilatore

Java

bytecode

Interprete Java/Solaris

Interprete Java/MacOS

Interprete Java/GNU-Linux

Interprete

Java/PalmOS Intel/GNU-Linux

Intel/Wind Apple Sparc/Solaris

Codice Sorgente

Architetture degli Elaboratori

Panoramica del corso Panoramica del corso



Organizzazione strutturata del calcolatore



Studieremo i livelli 0, 1, 2



Nel secondo anno studierete il livello 3 e 4



Nel primo e secondo trimestre avete

incominciato a studiare il

livello 5

(4)

Architetture degli Elaboratori

Panoramica del corso Panoramica del corso

 Livello 0: Logico-Digitale

 porte

 registri

 memoria

 Livello 1: Microarchitettura

 Arithmetic Logic Unit (ALU)

 Data Path

 microprogramma

 Livello 2: Instruction set (ISA)

 Linguaggio Macchina

 Supporti architetturali

Architetture degli Elaboratori

Architettura e organizzazione Architettura e organizzazione

 L'insieme di tipi di dati, operazioni e caratteristiche di ogni livello si chiama architettura

 Lo studio dei come progettare le parti di un sistema che sono visibili ai programmatori si chiama architettura dei calcolatori

 Organizzazione, relazioni strutturali tra le unità funzionali di una data architettura (non visibile al programmatore)

 Spesso il termine organizzazione è usato come sinonimo di architettura

Architetture degli Elaboratori

Livelli come astrazioni Livelli come astrazioni

 Ogni livello nasconde i dettagli non necessari e costituisce l'insieme di astrazioni rilevnti per il livello superiore

 Ogni livello è costituito da un insieme di componenti e da un insieme di modi per combinare i componenti in strutture

 Le strutture così costruite rappresentano l'astrazione realizzata dal livello e costituiscono le entità su cui si opera a livello superiore

 Questo, a sua volta, le aggrega in modo da formare entità ancora più astratte per il livello soprastante.

traduzione in LM Software

Macchina Virtuale

Utente

Linguaggio Macchina traduzione

Software

Macchina Virtuale

h=1

h=0

Architetture degli Elaboratori

Livelli di macchine Livelli di macchine

HARDWARE E SOFTWARE SONO

LOGICAMENTE

EQUIVALENTI

(5)

Architetture degli Elaboratori

Hardware

Hardware

Software Software



Potremmo anche simulare

l'hardware di un intero computer via software



Un esempio è la 'vmware workstation' prodotta da

“VMWARE and EMC company”

Una virtual machine che simula l'hardware di un PC!

Architetture degli Elaboratori

Hardware

Hardware

Software Software



Tale software permette di installare un sistema operativo senza nessuna differenza con una installazione su un vero computer per mezzo della realizzazione di una “Virtual Infrastructure”

GNU/Linux RedHat Windows 2000

Architetture degli Elaboratori

Cos'è l'informatica?

Cos'è l'informatica?



L'informatica non è l'MP3 o il DivX



L'informatica non è Windows e Office



L'informatica non è il cellulare



L'informatica non è internet o WWW



L'informatica non è il computer



L'informatica non è l'ICT (Information & Communication Technology)

??? ma allora cos'è ???

Architetture degli Elaboratori 

Cos'è l'informatica?

Cos'è l'informatica?



L'informatica è la scienza del calcolo:

“la determinazione con metodo sia ipotetico-deduttivo che sperimentale, nonchè l'analisi e la definizione di protocolli e motodologie di verifica valide per la costruzione di prototipi e applicazioni ingegnerizzate riguardo a tutto cio' in cui consiste la definizione di dati di ingresso e la costruzioni di soluzioni che comportino la definizione di dati di uscita”

[ACM, Association for Computing Machinery,

Syllabus dei corsi universitari di Informatica]

(6)

Architetture degli Elaboratori

L'informatica è la scienza del calcolo L'informatica è la scienza del calcolo

Dati

Sequence of

Output

artihmetic and logic functions

!

L'informatica come la scienza della rappresentazione, organizzazione, elaborazione, trasformazione, comunicazione dell'informazione

Informatica



Architetture degli Elaboratori

L'informatica è la scienza del calcolo L'informatica è la scienza del calcolo

Dati

Sequence of

Output

artihmetic and logic functions

!

L'informatica è indipendente ed antecedente rispetto alla costruzione di calcolatori elettronici

!

Ovviamente, l'informatica ha ricevuto una spinta in avanti dall'elettronica (ed internet) ma è stata anche guida per l'elettronica (ed internet)



Architetture degli Elaboratori

L'informatica è la scienza del calcolo L'informatica è la scienza del calcolo

Dati

Sequence of

Output

artihmetic and logic functions



X dati iniziali



Y dati finali



F è la regola di trasformazione

Y = F ( X )



Architetture degli Elaboratori

L'informatica è la scienza del calcolo L'informatica è la scienza del calcolo

Dati

Sequence of

Output

artihmetic and logic functions



L'informatica è la scienza che studia le “F” effettivamente calcolabili”: un procedimento effettivo, concretamente eseguibile, che, in un numero finito di passi, ci dia la soluzione che cerchiamo



Processi, intuitivamente, meccanici (algoritmo: una procedura finitamente descrivibile)

Y = F ( X )

(7)



Architetture degli Elaboratori

L'informatica è la scienza del calcolo L'informatica è la scienza del calcolo

!

C. Babbage [1837]: “Di quali operazioni deve essere dotata una machina per effettuare tutti i calcoli che un essere umano può teoricamente effettuare?”

!

Anni ‘30: A. Church, K.

Gödel, E. Post, A. Tarski, A.

Turing proposero, nel giro di pochi anni, un gran numero di possibili definizioni, ciascuna basata su di un particolare aspetto della nozione di funzione calcolabile, ciascuno con le sue caratteristiche

C. Babbage

A. Church

K. Gödel

A. Turing



Architetture degli Elaboratori

L'informatica è la scienza del calcolo L'informatica è la scienza del calcolo

 A. Church, A. Turing: “Le funzioni ricorsive (parziali) sono esattamente le funzioni calcolabili” (tesi di Church)

 Le sole funzioni per cui esistono algoritmi (programmi) sono le funzioni ricorsive.

Quindi esistono decine di problemi per cui non è possibile trovare soluzioni ricorsive (es. non esiste un algoritmo per calcolare le soluzioni di qualunque equazone di grado n)

 Le funzioni calcolabili sono calcolabili mediante computer!

C. Babbage

A. Church

K. Gödel

A. Turing



Architetture degli Elaboratori

L'informatica è la scienza del calcolo L'informatica è la scienza del calcolo

 Altro problema “impossibile” da risolvere: “Decidere se un computer si ferma (e ottiene dunque un valore) quando calcola seguendo le istruzioni di un dato programma per un dato argomento”. (Decidere se una funzione ricorsiva parziale è definita per un dato argomento)

 “Se un programma che fornisce risposte a domande riguardanti la fermata di dati programmi per dati argomenti non mente mai, esso non può fornire tutte le risposte.”

 “Un sistema di assiomi e regole che sia definibile mediante un programma e che non menta mai non può fornire risposte a ogni domanda riguardo i numeri”

(teorema di Gödel)

C. Babbage

A. Church

K. Gödel

A. Turing



Architetture degli Elaboratori

Algoritmo Algoritmo



Un algoritmo è una sequenza di passi che sono necessari per risolvere un determinato problema: una successione finita di istruzioni che definiscono le operazioni da eseguire sui dati assegnati, per produrre risultati.



Ogni operazione definisce una azione compiuta sui dati d’ingresso per produrre dati in uscita

Marco Giovanni Alberto

Luisa Matteo

Carlo Cristina

Alberto Carlo Cristina Giovanni Luisa Matteo Marco Algoritmo di Ordinamento

Dati di Input Risultato

(8)



Architetture degli Elaboratori

Algoritmo Algoritmo

"

Le parole chiave di un algoritmo sono:

#

Sequenzialita` (di azioni)

#

Numero finito di passi elementari

#

Determinismo

#

Automatismo

Architetture degli Elaboratori 

Codifica delle informazioni Codifica delle informazioni

Dati

Sequence of

Output

artihmetic and logic functions



Processi, intuitivamente, meccanici (algoritmo: una procedura finitamente descrivibile)



E` necessaria una rappresentazione effettivamente maneggiabile, trattabile “meccanicamente” delle informazioni: codifica delle informazioni

Y = F ( X )

Architetture degli Elaboratori

Evoluzione storica Evoluzione storica



Due sorgenti interessanti di informazione



Commemorazione del 50- esimo anniversario del calcolo moderno

http://www.computer.org/c omputer/timeline



Museo virtuale

http://www.scuola.prato.it/

dagomari/museo/htm/ingr esso.htm



Architetture degli Elaboratori

http://www.dagomari.prato.it/museo/htm/ingresso.htm

http://www.dagomari.prato.it/museo/htm/ingresso.htm

(9)



Architetture degli Elaboratori

http://www.dagomari.prato.it/museo/htm/ingresso.htm http://www.dagomari.prato.it/museo/htm/ingresso.htm



Architetture degli Elaboratori

Vale la pena di leggere Vale la pena di leggere



La storia dell'Olivetti ELEA e del P101: quante occasioni mancate :-(

ELEA 6001

ELEA 9003

M24 P101

35 Architetture degli Elaboratori

Macchina di von Neumann Macchina di von Neumann

!

Von Neumann collaboro`

prima all'ENIAC (lenta aritmentica decimale), quindi alla macchina IAS (aritmetica binaria)

!

Cinque parti principali:

memoria, ALU, unita` di controllo e dispositivi di I/O

!

Registro accumulatore

!

E` alla base di quasi tutti i calcolatori digitali (dal 1949!)

36 Architetture degli Elaboratori

Software vs hardware Software vs hardware

!

Programming in hardware: il programma e` codificato da una sequenza di funzioni aritmetiche e logiche implementate nell'hardware

!

Programming in software: le istruzioni servono a configurare l'hardware (general purpose) per calcolare la funzione desiderata in quel momento

!

Von Neumann: dati e istruzioni possono essere memorizzati nella stessa memoria

Programming in hardware

Dati Output

Istruzioni

Dati Output

Segnali di controllo Programming

in software

Instruction interpreter

General purpose artihmetic and logic functions

Sequence of artihmetic and logic functions

(10)

Architetture degli Elaboratori 37

Unità funzionali Unità funzionali

 Unità di elaborazione e controllo (CPU):

interpretazione ed esecuzione delle istruzioni. Unità operativa (ALU) e di controllo

responsabile del coordinamento di tutte le attività. Registri: memoria temporanea ad alta velocità

 Memoria: contenitore di istruzioni e dati (in forma binaria). L'interpretazione dà luogo all'esecuzione dello specifico codice di istruzione.

Dati e istruzioni sono di per sé indistinguibili ma dipende dal modo in cui si leggono e

interpretano i bit Architetture degli Elaboratori 38

Unità funzionali Unità funzionali

 L'unità di controllo legge le istruzioni della memoria centrale e ne determina il tipo

 Sistema di ingresso e uscita:

l'insieme dei dispositivi per comunicare con il modo esterno e con l'utente.

 L'informazione in ingresso e uscito è sempre in forma codificata

 Un sistema di interconnessione per collegare le varie unità funzionali

39 Architetture degli Elaboratori

PDP-8: introduzione del bus PDP-8: introduzione del bus



1995-1965: seconda generazione, transistor



PDP-8 della DEC introduce per la prima volta un bus singolo, un insieme di fili usato per collegare i componenti di un calcolatore

40 Architetture degli Elaboratori

Sotto-bus Sotto-bus

Aumentare l'efficenza:



Bus degli indirizzi (dalla CPU verso la memoria)



Bus dei dati (dalla CPU dalla memoria e viceversa)



Bus dei controlli (comandi in genere provenienti dalla

CPU)

(11)

Architetture degli Elaboratori 41

Organizzazione dei primi PC ('80) Organizzazione dei primi PC ('80)



IBM '81



Industry Standard Architecture (ISA), 16 bit dati e 24 bit indirizzi

Architetture degli Elaboratori 42

Organizzazione recente dei PC Organizzazione recente dei PC

 Gerarchia di bus collegati tra di loro da bridge per soddisfare diverse necessità di velocità di trasferimento e compatibilità con gli standard

 North bridge e South bridge (bridge PCI-ISA)

 AGP (accelerated graphics port), PCI (peripheral componet interconnect, periferiche ad alta velocità), EIDE (enhanced integrated device electronics), USB (universal serial bus)

Riferimenti

Documenti correlati

•  NOTA: ciascuna somma vale 0 solo per quella data combinazione degli addendi (dei valori delle variabili in input)... Dalle forme canoniche ai circuiti

•  Set deve essere ridiretto verso la 1-bit ALU che fornirà in output il bit meno significativo del risultato!. Il blocco che controlla lʼoverflow lo fa sulla

  ogni passo da eseguire in un ciclo di clock (ciclo più corto rispetto alla CPU a ciclo singolo)!..   importante il bilanciamento della quantità di

✗ Un computer è una macchina programmabile, tuttavia esso non è direttamente utilizzabile da parte degli utenti poiché richiederebbe la conoscenza sull’organizzazione fisica

✗ Ogni CPU 486 (e successive) contengono un piccolo processore RISC che esegue le istruzioni piu` semplici (e piu` comuni) in un ciclo di data path, le istruzioni piu`.

 Architettura load/store: le unicheoperazioni con accesso diretto alla memoria sono LOAD e STORE, le istruzioni per spostare i dati fra i registri e la memoria, tutti gli

I dati sono disponibile nel terzo ciclo Vengono attivati i segnali di richiesta di accesso alla memoria e il segnale di lettura. Segnale di attesa dei dati La memoria nega il

 I dati vengono memorizzati dal master che nega i segnali di accesso alla memoria, lettura e Master SYNchronization. Bus asincrono (IV) Bus