Architettura dei Calcolatori
Williamette Core (0.18µm) Northwood Core (0.13µm)
2
217 mm2m/42Mtr
145 mm /55Mtr
Intel-Pentium-4 (11/2000)
Dothan Core (0.09µm)
84 mm2/140Mtr
Conroe Core (0.065µm)
Penryn Core (0.045µm)
143 mm2/291Mtr 107 mm2/410Mtr
Intel-Pentium-4 (01/2002) Intel-Pentium-M (05/2004) Intel-Core2-Duo (07/2006) Intel-Core2-Duo (01/2008)
Ivy Bridge (0.022µm) tri-gate
Bloomfield Core (0.045µm)
263
mm2/731Mtr
Intel-Core-i7 (11/2008)
Nehalem microarchitecture
Sandy Bridge (0.032µm)
216 mm2/995Mtr
Intel-Core-i7-2920XM (01/2011)
Sandy-Bridge microarchitecture
160 mm2/1400Mtr
Intel-Core-i73770 (04/2012)
Ivy-Bridge microarchitecture
Legge di Moore
• Il numero di transistor RADDOPPIA ogni 18 mesi
(successivamente modificato in “24 mesi”)
• Consentito sia da una maggiore densita’ che da chip di
maggiori dimensioni
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 2
Obiettivi del Corso
e Come Raggiungerli
1) Saper scegliere un calcolatore
esaminando i parametri che ne influenzano le prestazioni
Analisi quantitativa dei fattori che influenzano le prestazioni
e discussione su come le architetture incidono su tali fattori
2) Capire l’architettura dei moderni calcolatori
Analisi dell’organizzazione interna dei principali elementi:
processore, memoria, I/O, elementi di progettazione logica
3) Essere in grado di valutare l’efficacia dei meccanismi
architetturali atti a migliorare le potenzialita’ dei
calcolatori
Analisi di soluzioni architetturali non necessarie ma ormai
universalmente presenti quali cache, memoria virtuale, pipeline
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 3
1) Imparare a misurare e analizzare le prestazioni
• Definizione “software” della macchina
• Metriche e Benchmarks
• Influenza dei criteri prestazionali sulla definizione
“software” della macchina
IPC
OOO
SPEC2000
multithreading
Tempo di esecuzione
ILP
multiprocessore
TPC
CMP
multicore
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 4
2) Analisi dell’architettura di un calcolatore
• Il processore: parte di controllo e parte datapath
• Le reti di interconnessione e interfacciamento
• Il sistema di Input/Output
• La Memoria
Processor
Input
Dal 1946 tutti i computer
hanno questi 5 componenti!
Control
Memory
Datapath
Output
L’interno di ciascuno di questi
componenti e’ pero’ cambiato
in maniera impressionante!
• Progettazione Logica: come si passa dal dispositivo fisico,
agli elementi logici ed architetturali
• equazioni booleane, macchine a stati finiti, componenti logici
Understanding the TECHNOLOGY!!!
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 5
3) Architetture per Migliorare le Potenzialita’
• Memoria Cache
Spatial locality
• Memoria Virtuale
Striding
Loops
Locality Surface
25
30
• Pipeline
Temporal Locality(stride=0)
30
20
15
10
25
5
12
page offest
4096
1024
128
8
stride
32
2
0
-2
-8
-128
256
16
1,70E+07
64
1
stride
4
-4
1048576 distance
-1
-64
-16
-256
0
Temporal locality
10
P2 index
90
80
70
60
50
40
30
20
10
0
1
16
256
4096
65536
5
Spatial Locality(distance=1)
-32
10
10
P1 index
64
distance
15
Sequentiality
256
4
1
16
0
20
1K
foglie
1 radice
4KB
Tempo
F
4 bytes
D
X
M
F
D
X
M
F
D
X
M
F
D
X
M
F
D
X
M
F
D
X
Flusso di programma
4 bytes
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 6
W
W
W
W
W
M
W
Conoscenze di base dai corsi precedenti
• Saper formalizzare un problema descritto in linguaggio
naturale in modo che possa essere seguito dal calcolatore
• Saper leggere e saper scrivere semplici programmi C
• Struttura base della macchina
• Modello di Esecuzione
ovvero principi di una macchina astratta in grado di eseguire
programmi (ciclo fetch-execute, struttura di Von Neumann)
• Capire i passi che vengono compiuti
per generare un programma:
• compilazione, link, caricamento e esecuzione
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 7
Informazioni
Logistiche
Amministrazione del Corso
• Docente:
Roberto Giorgi ([email protected])
• Telefono:
0577-191-5182
• Ricevimento:
Lunedi 16:30/19:00
• Dispense:
http://www.dii.unisi.it/~giorgi/didattica/arcal1
• Testi di Riferimento:
• Patterson and Hennessy, Computer Organization and Design: The
Hardware/Software Interface, Fifth Edition, Morgan Kauffman, 2014
• Quarta edizione in Italiano (basata sulla precedente ed. In inglese):
D. A. Patterson, J. L. Hennessy, Struttura e Progetto dei Calcolatori,
Zanichelli, 2015
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 9
Formato dell’insegnamento
• STUDIO
• LEZIONI+ ESERCITAZIONI (totale 60 ore)
• Circa 40 ore di teoria, 20 ore di esercitazioni
• VALUTAZIONE
• 1 COMPITINO FINALE (65% valutazione) – 3 domande
-
MODALITA’ RECUPERO COMPITINO:
-
Scritto ad un appello ordinario – 5 domande
• 1 PROGETTO (35% valutazione) – dettagli nei prossimi giorni
-------------------------------------------ALTRI INSEGNAMENTI CORRELATI
• High Performance Computer Architecture (Master Degree)
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 10
Compitino
• La data del compitino e’ tentativamente il
• Giovedi
18-12-2015 ore 14/16
QUESTE INFORMAZIONI SONO TUTTE
RIPORTATE ANCHE SUL SITO DEL CORSO
http://www.ing.unisi.it/~giorgi/didattica/arcal1
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 11
Organizzazione della lezione di oggi
• Tipologie di calcolatori
• Definizione di Architettura di un Calcolatore
• Introduzione al processore MIPS
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 12
Tipologie
di Calcolatori
I 3 tipi principali di calcolatori oggi
Embedded
Desktop
Server
• Calcolatori ‘Desktop’/’Embedded’
Architettura dei Calcolatori
• Calcolatori ‘Server’/’Desktop’
High Performance
Computer Architecture
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 14
Parti principali di un calcolatore ‘desktop’
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 15
Contesto di lavoro di un Calcolatore
Web Server
Applicazioni
Kernels
SPEC
Benchmarks
Database
Operating System
MMU
Status
Registers
Real Time
Clock
Terminal
I/O MMU
Controller
DMA
Controller
IRQ
Controller
Serial Port
Processore
RAM
Calcolatore
Adattatore (Bridge)
PCIe Bus
INTERNET
Ethernet
Controller
SD-card
Audio
Card
Storage
Storage
Controller
…
Graphics
Card
Storage
I/O
• Tutti questi componenti hanno
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 16
• una propria interfaccia e
• una propria organizzazione interna
Livelli di Astrazione di un Calcolatore
Applicazione
Operating
System
SW
Compiler
Firmware
Instruction Set
Architecture
Instr. Set Processor
HW
I/O Subystem
Datapath & Control
Progetto Digitale
Progetto Circuitale
Layout
• Coordinamento fra molti livelli di astrazione
• Cambiamenti tecnologici che avvengono ogni giorno
• Ciclo virtuoso: progettazione simulazione valutazione
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 17
Il Set di Istruzioni: un’interfaccia critica
SW
instruction set
HW
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 18
Livelli di rappresentazione
temp = v[k];
Programma in
Linguaggio di Alto Livello
v[k] = v[k+1];
v[k+1] = temp;
Compilatore
Programma in
Linguaggio Assembly
Assemblatore
Programma
in Linguaggio Macchina
lw $15,
lw $16,
sw $16,
sw $15,
0($2)
4($2)
0($2)
4($2)
0000
1010
1100
0101
1100
0101
1010
0000
1001
1111
0110
1000
0110
1000
1111
1001
1010
0000
0101
1100
1111
1001
1000
0110
0101
1100
0000
1010
Esecuzione
Specifica dei Segnali di Controllo
°
°
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 19
ALUOP[0:3] <= InstReg[9:11] & MASK
1000
0110
1001
1111
Architettura
dei Calcolatori
Architettura dei Calcolatori
• “Il termine ARCHITETTURA e’ usato qui per
descrivere l’insieme degli attributi di un sistema, cosi’
come questo appare al programmatore*, ovvero la sua
struttura concettuale e il suo funzionamento, con una
distinzione dell’organizzazione delle reti che gestiscono
il flusso dei dati e delle reti di controllo, rispetto alla
progettazione logica e rispetto all’implementazione
fisica”
-- Gene Amdahl, IBM Journal of R&D, Apr. 1964
Una definizione piu’ “moderna” (da http://www.cs.wisc.edu/~arch/www/ )
“Con Architettura dei Calcolatori si intende la scienza e l’arte di
selezionare e collegare componenti hardware per creare calcolatori che
soddisfano determinati requisiti funzionali, di prestazioni e di costo.
L’architettura dei calcolatori non ha niente a che vedere con l’uso dei
calcolatori per progettare edifici.”
*programmatore ==
programmatore di sistema (operativo)
o ingegnere del compilatore
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 21
Cosa e’ la “Architettura di un Calcolatore”
Computer Architecture
=
Instruction Set Architecture +
Machine Organization
• Instruction Set Architecture:
• Come l’Hardware viene visto dal Software
• Machine Organization:
• Implementazione fisica
(in termini di blocchi funzionali e logici)
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 22
Instruction Set Architecture (es. MIPS 3000)
Registri FP
Registri INT
$0
$1
$f0
$f1
•
•
•
0
1
32
CAUSE
STATUS
232-1
BADVADDR
32 bit
32 bit
• Categorie di Istruzioni
•
•
•
•
•
•
•
EPC
$f31
32 bit
Memoria e I/O
PC
HI
LO
•
•
•
$31
Registri Speciali
Load/Store
Calcolo (per Interi e per Frazionari)
Jump/Branch
Istruzioni speciali
• Formato delle Istruzioni:
• lunghezza FISSA a 32 bit
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 23
CPU a 32 bit
8 bit
Organizzazione fisica del Calcolatore
• Caratteristiche e Prestazioni
delle principali Unita’ Funzionali
• (e.g., Registers, ALU, Shifters, Logic Units, ...)
• Metodi con cui tali componenti sono interconnessi
• Tipo di informazione che viene scambiata fra i
componenti
• Logica e Metodi per controllare tale scambio di
informazioni
• Insieme delle Unita’ Funzionali e loro interfacciamento
• Descrizione in termini di linguaggio
Register Transfer Level (RTL), ove necessario
Roberto Giorgi, Universita’ di Siena, C116L01, Slide 24