Sei sulla pagina 1di 17

Obiettivi Essenziali del Corso

•Acquisire le conoscenze che stanno alla base del


funzionamento degli elaboratori ed al trattamento
dell’informazione (algebra binaria, codici, stima
grandezze binarie, ….)
•Conoscere e capire l’architettura a livelli di MV, la
struttura interna degli elaboratori, le principali
componenti HW e le tecniche di programmazione ai
livelli assembler e firmware
•Approfondire le principali scelte progettuali per le
architetture dei moderni elaboratori.
 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [1]

Perché ?
• Acquisire conoscenze competenze e capacità
per scrivere consapevolmente software per:
•migliorare le prestazioni di un sistema
•premettere interoperabilità tra sistemi
•interfacciare sistemi software esistenti
•interfacciare hardware esistente

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [2]

1
Informazioni generali sul corso
• Lezioni teoriche ed esercitazioni pratiche
• Prova scritta intermedia, progetto assembler e prova orale finale
• Testo adottato:
•William Stallings, "Architettura e organizzazione dei calcolatori. Progetto e
prestazioni (8ed)", Pearson Education Italia, ISBN: 978-8871925974
• Strumenti per sviluppo assembler:
• Arduino IDE: https://www.arduino.cc/en/software
• ATMEL Studio 7 per AVR: https://www.microchip.com/en-us/development-tools-
tools-and-software/microchip-studio-for-avr-and-sam-devices
• Approfondimenti:
•John Hennessy, David Patterson - Computer Architecture (6th Edition) - A
Quantitative Approach - Morgan Kaufmann 2017 - eBook ISBN: 9780128119068
Paperback ISBN: 9780128119051
• WEB: https://drive.google.com/drive/folders/1NJT5h6EGdK01pjGpJP8b0hZx_WVlohKW?usp=sharing
– AppuntiLezioni – Dispense integrative al libro di testo
– Slides – Pdf delle slides presentate a lezione

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [3]

Programma operativo competenze e capacità


•Prima Fase:
• Obiettivo: Costituzione gruppi di lavoro ed esercitazioni di
base finalizzate ad allineare le competenze di base
• Strumenti: Arduino IDE e scheda Arduino nano
•Seconda Fase:
• Obiettivo: Consolidamento composizione dei gruppi ed
esercitazioni avanzate
• Strumenti: ATMEL Studio 7 e scheda ATTiny
•Fase Finale:
• Obiettivo: Sviluppare in gruppo ed in autonomia un
progetto da presentare alla prova orale finale illustrando,
in particolare, il contributo individuale all’interno del
gruppo.
 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [4]

2
Cosa è un Computer
"Un computer digitale è una macchina in
grado di risolvere problemi eseguendo
istruzioni appositamente specificate"

- Macchina = hardware ovvero circuiti elettronici


- Istruzioni = software: programma e linguaggio di programm.

•Hardware e software sono strettamente correlati


•Il linguaggio di programmazione è correlato sia
all'hardware che all'utilizzatore del computer.

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [5]

Livelli gerarchici di Macchine Virtuali

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [6]

3
Compilatori
Programma Programma Dati Risultati
COMPILATORE PROGRAMMA
OGGETTO
Sorgente Oggetto

FASE DI COMPILAZIONE FASE DI ESECUZIONE

Interpreti

PROGRAMMA SORGENTE
Dati Risultati
--------------------------------------
INTERPRETE

INTERPRETAZIONE

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [7]

Livelli tipici di Macchine Virtuali


Livello 4

Livello 3

Livello 2

Livello 1

Livello 0

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [8]

4
Sotto livelli di MV4:
• MV4.3 APPLICAZIONI TRANSAZIONALI
• MV4.2 GESTIONE DI TRANSAZIONI
• MV4.1 GESTIONE DI DATA BASE
• MV4.0 LINGUAGGI

Sotto livelli di MV3:


• MV3.2 FUNZIONI DI SUPERVISORE
• MV3.1 GESTIONE ALTRE RISORSE
• MV3.0 GESTIONE PROCESSI/PROCESSORI

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [9]

Strutturazione a Moduli

Mi1
Mi2

STRUTTURA
DI
INTERAZIONE
Mij

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [10]

5
Unità di Elaborazione

P.C. x Rete y
Combinatoria
condizioni comandi s s’

x P.O. y Buffer

clock

Interconnessione PC/PO Rete LLC

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [11]

Modelli Matematici
Mealy
X Fs
Y(t) = Fy[X(t), S(t)]
S’
S(t+1) = Fs[X(t), S(t)] S buffer

Fy Y

Moore X Fs
Y(t) = Fy[S(t)] S’
S(t+1) = Fs[X(t), S(t)] S buffer
Fy Y

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [12]

6
La Tecnologia Hardware – MV0
•Condiziona le prestazioni, il costo, l’architettura,
l’usabilità, l’affidabilità …
•Evolve rapidamente:
•valvole  transistors  IC  LSI  VLSI  ULSI
•quadruplica le prestazioni ogni 3 anni
•Capacità di memoria
•Velocità del processore
I prodotti che compriamo oggi, domani saranno obsoleti

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [13]

Evoluzione tecnologica “massiva”


Processore:
• Capacità Logica :  30% per anno
• Frequenza Clock :  20% per anno
• Prestazioni :  50% per anno
Memoria:
• Capacità Memoria DRAM :  60% per anno
• Velocità Memoria :  10% per anno
• Costo per bit : migliora  25% per year
Dischi:
• Capacità:  60% per anno

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [14]

7
La legge di Moore

•Ogni 3 anni la dimensione della memoria si quadruplica


•Si ritieneva che rimanesse valida fino al 2020 (transistor a
dimensione atomica) ma in realtà terminò molto prima.
•Legge di Nathan: il software si espande come un gas occupando
tutto il recipiente che lo contiene
 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [15]

Silicio: siamo ormai al limite …

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [16]

8
Diminuzione dei costi dei componenti

Resa della produzione


miglioramento della tecnologia di fabbricazione

Volume di vendita
Raddoppiando il volume, diminuisce il costo di produzione
del 10%

Concorrenza
Stimolo per la ricerca e le ottimizzazioni.

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [17]

Macchine di Von Neumann

MEMORIA PROCESSORE

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [18]

9
Organizzazione di un Calcolatore

Rispetto al modello semplificato di Von Neumann lo schema sopra


aggiunge agli elementi Processore (o CPU) e Memoria, le unità di
Input/Output che possono essere:
• solo di Input, es.: la Tastiera
• solo di output, es.: la stampante
• sia di Input che di Output, es.: Hard Disk

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [19]

Componenti della Macchina di Von Neumann

•PROCESSORE
FETCH DECODE EXECUTE

N.I.

•MEMORIA Indirizzo Informazione


0 Istruzione o dato
1 Istruzione o dato
2 Istruzione o dato
….. …..
N-2 Istruzione o dato
N-1 Istruzione o dato

•LINGUAGGIO PROCEDURALE
•Stabilisce a priori la sequenza delle operazioni
•Si basa sull’organizzazione lineare della memoria

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [20]

10
Il Data Path nella Macchina di V. N.

Ciclo CPU:
1) FETCH
2) DECODE
3) SEARCH OP
4) LOAD OP
5) EXEC
6) Torna a 1

FETCH DECODE EXECUTE

N.I.

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [21]

Esecuzione delle Istruzioni (Esempio)


Public class RTS_MV2 { // Identifichiamo il ciclo della rete di governo
// come il Run Time Supporto di MV2
Static int PC; // Registro Program Counter, che punta alla
// prossima istruzione da eseguire
static int ALU_A; // Registro Accumulatore di ingresso A
static int ALU_B; // Registro Accumulatore di ingresso B
static int AC; // Registro Accumulatore di uscita
// registro di uscita dell’ALU
static int IR; // Registro Istruzione, destinato a contenere
// l’istruzione in esecuzione
static int Opcode; // Codice tipo istruzione
static int MAR; // Registro contenente l’indirizzo del registro da
// leggere/scrivere (-1 se non valido)
static boolean RUN=true; // Per fermare la Macchina sarà sufficiente
// porre questo bit a “false”
public static void RG(int registry[], int memory[], int start_address) {
// Procedura che simula il funzionamento di una semplice macchina
// con istruzioni composte da 0, 1 2 o 3 operandi, con un data path
// come quello riportato nella Figura a fianco
//
PC = start_address;
… segue …

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [22]

11
Esecuzione delle Istruzioni (Esempio 2/2)
while (RUN) {
IR = memory[PC]; // Fetch istruzione, memorizzandola in IR
PC = PC + 1; // Prepara PC per Next Instruction (N.I.)
Opcode = get_Opcode(IR); // Decodifica tipo istruzione in Opcode
MAR = Search_Operand(1, IR, Opcode); // Search Operand 1:
// (-1 se non c’è operando 1)
if(MAR >=0) ALU_A = registry[MAR];
// Se operando esistente, fetch dati input
MAR = Search_Operand(2, IR, Opcode); // Search Operand 2:
// (-1 se non c’è operando 2)
if(MAR >=0) ALU_B = registry [MAR];
// Se operando esistente, fetch dati input
MAR = Search_Operand(3, IR, Opcode); // Search Operand Result:
// (-1 se non c’è operando 2)
AC = ALU_exec(Opcode, ALU_A, ALU_B); // Esegue istruzione
If(MAR >=0 registry [MAR] = AC // Store Result, se previsto
}
}
private static int get_Opcode(int istruzione) { … }
private static int Search_Operand (int N, int istruzione, int type) { … }
private static int ALUexec(int type, int data_A, int data_B) { … }
}

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [23]

Macchine non di Von Neumann

Linguaggi a semantica dichiarativa a livello MV2

• Linguaggi FUNZIONALI (Data Flow Machine)


– Computazione = composizione di funzioni matematiche
– La memoria viene vista come supporto per conservare i
risultati di una funzione e passarli ad un’altra
• Linguaggi LOGICI (PROLOG, SQL)
– Costruzione di una base di conoscenza parziale dove vengono
specificati dei fatti e delle relazioni.
– Richieste per sapere quali elementi soddisfano una particolare
relazione.

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [24]

12
Evoluzione delle CPU
PRIME CPU con piccole e semplici istruzioni
Per avere CPU piu’ potenti:
 Istruzioni piu’ potenti e complesse
 Esecuzione piu’ rapida (FP, Autoincr., par. HW)
 Sistemi piu’ costosi
Come mantenere la compatibilita’ anche con macchine
economiche (IBM)?
--> Interpretare le istruzioni complesse (Wilkes - 1951)
VANTAGGI DELL’INTERPRETAZIONE:
- poter correggere l’implementazione delle istruzioni
- aggiungere nuove istruzioni post-vendita
- progettazione strutturata istruzioni complesse
 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [25]

Successo microprogrammazione:
esempio 68000 vs Z8000

• Zilog Z8000, senza microprogrammazione


• Motorola 68000, con consistente codice interpretato

Nonostante il vantaggio ottenuto dallo Z80 rispetto al


6800, Motorola entra prima nel mercato e batte
Zilog

FATTORE CHIAVE:
- Control Stores ad altissima velocita’

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [26]

13
Declino della microprogrammazione ?
Alla fine degli anni ‘70, quasi tutti i sistemi usavano la
microprogrammazione (punta massima = VAX)
Controcorrente erano i pionieri:
– ‘82 - Coke (IBM) con sistema sperimentale 801
– ‘82 - Patterson/Sequin (Berkley) con CPURISC I  SPARC
– ‘84 - Hennessy (Stanford) con MIPS
Punti di forza:
– Pochi vincoli progettuali, non dovevano essere compatibili
– focus sulla “velocita’ di messa in esecuzione” (issue rate)
– poche istruzioni (50 = R.I.S.C. contro 300 = C.I.S.C)
– Istruzioni orientate al Data Path (direttamente su registri)
– Senza microprogrammazione  esecuzione 10 volte piu’ veloce
dei CISC (velocita’ RAM  Control Store)
 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [27]

Intel rimane leader


Come mai una CPU RISC come il DEC Alpha (RISC)
non ha preso il posto di Intel x86 (CISC) ?

• La compatibilita’ software rimane un punto di forza dei


processori Intel (consistenti investimenti SW)
• Intel sfrutta l’idea RISC per progettare una CPU
“ibrida”: le istruzioni semplici venivano eseguite senza
interpretazione.
• Le prestazioni complessive risultanti risultano deludenti
rispetto alla CPU Intel/RISC

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [28]

14
Principi di progettazione RISC
I seguenti principi “RISC” sono stati ormai accettati:
• Istruzioni comuni eseguite direttamente in HW
• Iniziare più istruzioni possibili/secondo (issue rate)
• Ridondanza Unità funzionali piuttosto che tempo
esecuzione
• Rapidità di decodifica (istruzioni a lunghezza fissa)
• Memoria indirizzata solo da LOAD e STORE
• Disporre di molti registri (32)
• Parallelismo a livello di istruzioni ILP

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [29]

Pipelining

Esempio: se T=2ns, Ti= 10 ns  prestazioni = 100 MIPS


ma con pipeline piena Ti = 2 ns  prestazioni = 500 MIPS

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [30]

15
Architetture Superscalari: Doppia Pipeline

Esempio i486:
•pipeline u = principale, esegue qualunque istruzione
•pipeline v = secondaria esegue solo istruzioni semplici su interi
 se il compilatore riesce a riordinare le istruzioni
accoppiando istruzioni compatibili con u e v
 raddoppio della velocità di esecuzione dei programmi

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [31]

Architetture Superscalari
Unità Funzionali Multiple

•Questo Schema e usato dal Pentium II


•S3 deve essere 4 volte più veloce di S4

•fattore incremento massimo < 10

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [32]

16
Parallelismo a Livello di Processore:
Array Computer

Prestazioni 50 Mflops

Schema dell’array processor ILLIAC IV - 1972

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [33]

(MIMD) MultiProcessor e Multicomputer

a) Multiprocessor a bus unico b) Con aggiunta di memorie locali

Nei MultiComputer, macchine complete di memoria e I/O, sono


collegate tra di loro lascamente (RETI di computer e diversi sistemi
operativi) o strettamente (COMMON BUS e stesso sistema operativo).
Esistono M.C. con quasi 10.000 CPU connesse.

 Ing. Massimo Trojani - Architettura degli Elaboratori UNICAM 2021 [34]

17

Potrebbero piacerti anche