Sei sulla pagina 1di 32

Calcolatori Elettronici M

A. A. 2009-10

Obiettivo dell’insegnamento è lo studio dei


principali aspetti dell’hardware dei calcolatori:
– requisiti
– Architettura
– principi di funzionamento
– progettazione
– prestazioni
– evoluzione
Il modulo si colloca a un livello di astrazione più alto
(meno circuitale) rispetto al modulo di calcolatori elettronici L-A
e rispetto agli altri moduli di progettazione digitale già frequentati
L’insegnamento è tenuto presso entrambe le Facoltà di Ingegneria dell’ALMA MATER
A Cesena è denominato Sistemi di Elaborazione M
Tullio Salmon Cinotti

Modalità di svolgimento dell’esame:


prova finale scritta

L’esame sarà costituito da una prova scritta di tre ore e mezza e comprenderà
2 esercizi, uno sull’architettura di sistema e uno sull’architettura dell’unità di
eleborazione, entrambi con alcune domande di teoria

Date importanti per il corso tenuto a


Bologna nell’A.A. 2009-10

• Ultimo giorno di lezione: Giovedì 17 Dicembre


• Data del primo appello:
• Mercoledì 13 ore 8:30 - Aula 6.1

21 settembre 2009 Sistemi di Elaborazione LM 2


Materiale didattico
• Il materiale utilizzato nel corso si trova in rete all’indirizzo:
http://didattica.arces.unibo.it (si acceda alla home di Salmon, e
quindi a Calcolatori Elettonici LS) ed è così suddiviso:
– lucidi presentati a lezione
– dispense (solo su alcune parti del corso)
– esercizi
• Per approfondimenti si segnalano i seguenti testi:
– Hennessy Patterson: "Computer architecture: a quantitative
approach" - Morgan Kaufmann pub. Inc., second edition (esiste
anche la versione in italiano edita da Zanichelli)
• Cap. 1..5
– G. BUCCI, “Calcolatori Elettronici - architettura e
organizzazione” McGraw-Hill)
– Link ad articoli, data sheet e altro materiale verranno messi a
disposizione durante il corso
21 settembre 2009 Sistemi di Elaborazione LM 3

Esempi di oggetti artificiali che contengono uno o più


sistemi di elaborazione

Tutti i seguenti prodotti dell’ingegneria industriale hanno all’interno


almeno uno o più sistemi di elaborazione opportunamente
specializzati nelle interfacce e nel software:

• I telefonini
• I pda (personal data assistant) palmari
• gli apparati per la creazione, la distribuzione e la fruizione
di contenuti multimediali
• gli apparati fissi per telecomunicazioni
• gli strumenti di misura
• gli strumenti biomedici
• i mezzi di trasporto

21 settembre 2009 Sistemi di Elaborazione LM 4


Caratteristiche delle applicazioni
della nostra era

• Distribuite
• Mobili
• Dipendenti dal contesto

INTERNET
Access Point o
Stazione radio Base

• Modello di riferimento:
– convergenza delle 5 C
• Computing
• Communication
• Consumer
• Content
• Context

Ad ogni “C” sono associati dispositivi o sistemi il cui


funzionamento si basa su calcolatori elettronici
21 settembre 2009 Sistemi di Elaborazione LM 5

Un punto di vista sulla storia


dell’Information Technology: le 5 C
Funzione Origine Riferimento (*) Note

Computing Dagli anni ENIAC (Univ. Pennsylvania, Eckert, ’43)


‘40 EDVAC(Von Neumann, 1945) Stored
EDSAC(Wilkes, Cambridge, 1949) Program
Communication Dagli anni ARPANET (reti geografiche) Internet
‘70 Ethernet (reti locali, SRI) (e_mail)
TCP/IP, SMTP
Consumer Dagli anni PC (IBM e Microsoft, 12/8/81, CPU 8088 a Personal
‘80 4.77 MHz) Computer
Content Dagli anni Hypertext, HTTP, HTML, URL WWW
‘90
Context Dagli anni Convergenza di GPS, WLAN, GSM, Digital Ubiquitous
2000 Media Broadcast su mobile clients Computing
GSM: Global System for Mobile Telecommunications dal ’91

21 settembre 2009 Sistemi di Elaborazione LM 6


Possibile user centered scenario
Main entities and semantics

Context-
senses aware
Has access to life Smart
Services systems
navigator environment may
provide
non
The device is the Is_a explicitely
madiator Interacts_ with requested
between the Physical assistance
users and their
environment
Space
Lives_in Structure
user (home,
Outdoor,
Media Convergence ….)

Satellite based
Mobile Phone Mobile TV Broad Band positioning system
(UMTS) (DVB-H) (WiFi) GPS

Multiradio
21 settembre 2009 Sistemi di Elaborazione LM 7

RICHIAMO da Calcolatori LA
Bus dati, bus degli indirizzi e
bus dei segnali di comando

INTERFACCE Rete
MEMORIA CPU
DI I/O
PRINCIPALE
ingressi e uscite
locali

Bus dati
Bus degli indirizzi

Bus dei segnali di comando

In questo schema a blocchi la CPU genera i segnali di indirizzo e


di comando per la memoria e le interfacce
21 settembre 2009 Sistemi di Elaborazione LM 8
RICHIAMO da Calcolatori LA
Esercizio di Richiamo
calcolo del numero di cicli di bus
necessario per eseguire un programma
• Domanda: quante volte accede al bus la CPU se si desidera eseguire il seguente
programma?
A = B+C
D = E-F
G = A*D
si facciano le seguenti tre ipotesi:
– un solo livello di memoria
– architettura dell’ISA: (3-3), cioè tre operandi espliciti e tre indirizzi
– tutte le variabili A, B, C, D, E, F, G sono residenti in memoria
– l’accesso a ciascuna di esse richiede un ciclo di bus
– la lettura di ogni istruzione in memoria richiede un ciclo di bus
• Risposta:
– il programma è lungo tre istruzioni, quindi la CPU deve eseguire tre fasi di FETCH e
tre fasi di EXECUTE
– ogni fase di FETCH (lettura dell’istruzione da eseguire) implica un accesso al bus
– ogni fase di EXECUTE implica 3 cicli di bus (2 per la lettura in memoria dei due
operandi e uno per la scrittura in memoria del risultato)
– dunque per eseguire il programma dato nelle ipotesi fissate
sono necessari 12 cicli di bus
21 settembre 2009 Sistemi di Elaborazione LM 9

IL MODELLO DI RIFERIMENTO
del sistema di elaborazione

Resta quello visto in Calcolatori Elettronici L-A:


La macchina digitale
a
esecuzione sequenziale
e
programma memorizzato
(Von Neumann, 1940)

Ma ne verranno considerate delle realizzazioni più


generali e molto più potenti, rese possibili dal
progresso della tecnologia e adeguate alle
applicazioni citate nei lucidi precedenti
Rappresentazione astratta
dell’hardware di un calcolatore

L’hardware del calcolatore si interfaccia con il software attraverso il suo set di istruzioni (linguaggio macchina)

Unità di
Memoria elaborazione Interfacce
principale PC
Rete
Registri di
Programma ALU
transito
Registri e di stato ingressi e uscite
Dati Cache
locali

Risorse interne

Bus di sistema

Struttura del calcolatore (macchina digitale a esecuzione sequenziale e programma memorizzato)

Ogni blocco della struttura è costituito da circuiti elettronici digitali


21 settembre 2009 Sistemi di Elaborazione LM 11

Spazio di indirizzamento in memoria: da 1MB a 4GB

4 Giga byte
• Gli indirizzi si indicano solitamente in codice
0FFFF FFFFH (4 G - 1)
esadecimale
Nello
Nellospazio
spaziodidi • la dimensione di uno spazio di indirizzamento si
indirizzamento
indirizzamento può esprimere in:
vengono
vengono“mappati”
“mappati” – Kilobyte (1KB = 210 Byte = 1024 B)
i i dispositivi
dispositivifisici
fisici – Megabyte (1MB = 1K KB = 220 Byte = 1.048.576 B)
didimemoria
memoria – Gigabyte (1GB = 1K MB = 230 Byte = 1.0e+9)
• Esempi
Spazio di – l’8085 aveva uno spazio di indirizzamento di 64 KB
indirizzamento (indirizzi di 16 bit)
di 4 GB – l’8086 aveva uno uno spazio di indirizzamento di 1
MB (indirizzi di 20 bit rappresentabili con 5 cifre
Es. Intel P5/P6 esadecimali)
0000F FFFFH – il Pentium aveva uno spazio di indirizzamento di 4
GB (indirizzi di 32 bit rappresentabili con 8 cifre
esadecimali)
00000 0000H
– Pentium III e Pentium IV indirizzano 64 GB (indirizzi
di 36 bit)
8 bit
21 settembre 2009 Sistemi di Elaborazione LM 12
Astrazione dell’Input Output
Il caso dei “mobile clients”

Multi Radio
(Technology convergence)

Rete
Registri di
transito
e di stato • Memoria di massa
System Management Bus
• Interfaccia utente
• Interfaccia ambiente (sensori)
Resource & Power management
• temperatura dei componenti
• Batteria e consumi
Bus di sistema • livelli di alimentazione
• frequenze, throttling
• ….

21 settembre 2009 Sistemi di Elaborazione LM 13

RICHIAMO da Calcolatori LA
Accesso alle interfacce di ingresso/uscita
Spazio di indirizzamento in I/O
• Durante l’esecuzione del programma anche i dati scambiati tra CPU e interfacce di
ingresso/uscita transitano per il bus
• Così come i dispositivi di memoria, anche le interfacce di ingresso/uscita sono mappate
in uno spazio di indirizzamento
• Le interfacce di I/O possono essere mappate in uno spazio distinto da quello della
memoria oppure nello stesso; in quest’ultimo caso si dice che l’I/O è mappato in
memoria (memory mapped I/O)
• Lo spazio di indirizzamento in I/O è solitamente più piccolo dello spazio di
indirizzamento in memoria; es: nelle architetture Intel IA16 e IA32 lo spazio di
indirizzamento in I/O è di 64 KB
• Anche se i due spazi di indirizzamento sono distinti, i segnali del bus che portano
l’indirizzo sono comuni (i segnali che portano gli indirizzi di I/O sono un sottoinsieme di
quelli che portano gli indirizzi negli accessi alla memoria)
• La distinzione tra i due spazi di indirizzamento viene affidata a appositi segnali del bus
0FFFFH
Spazio di indirizzamento in I/O di 64 KB
Es. IA16 e IA32
00000H
21 settembre 2009 8 bit Sistemi di Elaborazione LM 14
Architettura multiprocessore con cache private e
memoria centralizzata condivisa
(macchine con memoria a tempo di accesso uniforme o UMA)
Questa è l’architettura oggi più comunemente adottata nei server e nelle stazioni di lavoro. La presenza delle
cache private consente di ridurre al minimo il carico di ciascun processore sulle risorse condivise

Bus delle interruzioni (interrupt interprocessor inclusi)

CPU CPU CPU

Uno o più Uno o più Uno o più


livelli di cache livelli di cache livelli di cache

Bus di sistema
Sottosistema di I/O Controllore delle
Memoria
(inclusa la interruzioni
principale esterne
memoria di massa)

21 settembre 2009 Sistemi di Elaborazione LM 15

Esempio di architettura multiprocessore con


bus sincrono, memoria fisica condivisa e cache private
Questa è l’architettura più comunemente adottata nei server e nelle stazioni di lavoro. La presenza delle cache
private (L1 ed L2) consente di ridurre al minimo il carico di ciascun processore sulle risorse condivise

CPU core (es. 400 MHz P-II) Single CPU core (es. 400 MHz P-II) Single
Edge Edge
Cache L1 Cache L1 Cartridge Cache L1 Cache L1 Cartridge
Codice Dati Codice Dati
Es.: 16KB Es.: 16KB Es.: 16KB Es.: 16KB
Cache L2 Cache L2
Dual Independent Backside bus Dual Independent Backside bus
unificata unificata
Bus Interface 3.2 GB/sec Bus Interface 3.2 GB/sec
Es.: 1MB Es.: 1MB

Bus di sistema
Memoria Es.: P-II
Accelerated Bridge
principale 100 MHz, 64 bit
Graphic Port 533 MB/sec (Es. PCI-AGP set) 800 MB/sec (2-8 GB SDRAM) - 800 MB/sec -

Bus di I/O
Es.: un filmato non
compresso da 60 fps Interfaccia Interfacce Interfaccia Bridge verso altri bus di
su un monitor di 18” Es.: PCI
di I/O di I/O di I/O I/O (ISA, IDE, SCSI, USB,.)
(1024 X 1280 pixel 33 MHz, 32 bit
con DMAC con DMAC (slave)
di 24 bit) corrisponde - 133 MB/sec -
a 230 MB/sec
HD HD
21 settembre 2009 Sistemi di Elaborazione LM 16
La
Lafrequenza
frequenzadel
delclock
clockdella
dellaCPU
CPUeei ithroughput
throughputdei
deibus
buslocali
localialla
allaCPU
CPUsono
sonoquelli
quellidel
del1998
1998(0.25
(0.25µµm)
m)
Sintesi delle prestazioni della piattaforma
illustrata nel lucido precedente

·Numero di CPU che condividono lo spazio di indirizzamento fisico: da 1 a 4


•Gestione delle CPU: simmetrica (Symmetric Multiprocessing, SMP); a regime ogni task applicativo può essere
eseguito da qualunque CPU; in caso di applicazioni il cui codice è organizzato su più flussi di esecuzione (“multi-
threaded application”), si può accelerare l’esecuzione dell’applicazione assegnando ad ogni CPU il suo “threaed”
•Caratteristiche di ogni CPU: architettura non bloccante con esecuzione speculativa
•Frequenza del clock di ogni CPU: 400 MHz (tecnologia: 0.25 µm) (parametri da scalare, oggi 3060 MHz!!)
•Caratteristiche della cache di primo livello L1: cache di codice e di dati separate, 16KB ciascuna, mappate sugli
indirizzi fisici, architettura non bloccante con pipeline di tre stadi
•Caratteristiche della cache di secondo livello L2: parallelismo di 64 bit, dimensione da 0.5MB a 2 MB, pipeline
non bloccante di sei stadi
•Frequenza del clock del bus della L2: 400 MHz (pari alla velocità della CPU) (quindi parametro da scalare!)
•Protocollo di coerenza delle cache di primo e secondo livello: MESI gestito in hardware; assicura
che la memoria sia vista in modo coerente da tutte le CPU
• Caratteristiche del bus di sistema: 64 bit, sincrono, multiprocessor, split transaction (un ciclo di bus può essere
integralmente eseguito nell’intervallo tra la fase “indirizzo” e la fase “dati” di un altro ciclo di bus generato dallo
stesso o da un altro agente del bus)
• Clock del bus di sistema: 100MHz (1/4 della velocità della CPU) (nel 2003, fino a 133MHz X 4)
• Caratteristiche della memoria principale (o fisica): parallelismo 64 bit, tecnologia SDRAM, dimensione da
2 a 8 GB con spazio di indirizzamento fisico di 64GB, ECC, throughput max 800MB/sec
•Caratteristiche del sistema di I/O: larga banda assicurata dal bus PCI (multimaster, 33 MHz, parallelismo 32 o 64
bit) e dalla porta AGP (Accelerated Graphic Port, 533MB/sec) dedicata alla gestione del monitor
21 settembre 2009 Sistemi di Elaborazione LM 17

Astrazione a partire dal calcolatore del lucido precedente:


Schema a blocchi di riferimento per
gli esercizi di progetto del corso

Bus degli indirizzi BA[31..3], BE[7..0]#

CPUi RAM EPROM


(cache)

BD[63..0]
BRIDGE

IOB[7..0]

P_IN DMAC PIC P_OUT


n bit

21 settembre 2009 Sistemi di Elaborazione LM 18


Schema a blocchi di riferimento per
gli esercizi di progetto del corso

Bus degli indirizzi BA[31..3], BE[7..0]#

CPUi RAM EPROM


(un livello di cache)
Non è
rappresentato
il bus dei BD[63..0]
segnali di
comando
(IORD#,
BRIDGE
IOWR#,
Mass storage Interface
MRDC#, For Virtual Memory
MWRC#,
INTA#) IOB[7..0]

P_IN DMAC PIC P_OUT


n bit

21 settembre 2009 Sistemi di Elaborazione LM 19

Confronto tra le architetture di sistema


nei programmi di CE L-A e SE LS

SE LS
CE LA

• Bus dati da 8 bit • Bus dati multibyte


• Sistemi a singolo master • Sistemi multimaster
• Un livello di memoria • Memoria organizzata gerarchicamente

Un solo tipo di ciclo di bus • Varietà di cicli di bus
(ciclo singolo) (singoli, burst, in pipeline, a fasi separate)
• Un solo bus per memoria e I/O • Una gerarchia di bus
• Periferiche elementari con • Periferiche con interfaccia di bus
interfaccia CPU-specifica standard
• Sistemi mobili, con ricerca del
• Sistemi fissi, con alimentazione compromesso ottimo
ipotizzata permanentemente prestazioni/consumi
corretta
• Nessun bus oltre al bus di sistema • Bus per la gestione delle risorse di
sistema
21 settembre 2009 Sistemi di Elaborazione LM 20
Ci occuperemo anche
dell’Architettura e delle prestazioni
dell’unità di elaborazione ( aka processore o CPU)
L’architettura della CPU è definita dalla seguente terna:
• Il set di istruzioni (architettura vista dall’utente, detta anche ISA
(Instruction Set Architecture) o linguaggio macchina)
• La struttura interna
• La realizzazione circuitale (cioè la tecnologia microelettronica
impiegata nella realizzazione)

• Uno stesso set di istruzioni può essere realizzato con


strutture interne diverse (es. 386, 486, e Pentium)
• La stessa struttura interna può essere realizzata con
tecnologie diverse (es. 486, 486-DX2 e 486-DX4)
• Le prestazioni del calcolatore dipendono
dall’architettura
21 settembre 2009 Sistemi di Elaborazione LM 21

RICHIAMO da Calcolatori LA
Prestazioni di un calcolatore
CPUtime

• Le prestazioni di un calcolatore vanno sempre riferite a un programma di


riferimento (detto benchmark)
• Il parametro che caratterizza le prestazioni rispetto a un determinato benchmark
è il “tempo di esecuzione” detto anche CPUtime

• CPUtime può essere espresso come:


CPUtime = Nistruzioni * CPImedio * Tck
– Nistruzioni = numero di istruzioni necessarie per completare l’esecuzione del
programma (N dipende dal linguaggio macchina e dal benchmark)
– CPImedio è il numero medio di colpi di clock per ogni istruzione (CPImedio
dipende dalla struttura del calcolatore e dal benchmark)
– Tck = 1/f ck è il periodo del clock di macchina (dipende dalla tecnologia e dal
numero di livelli di logica combinatoria esistenti in ogni blocco della
macchina; dipende cioè anche dalla struttura)
21 settembre 2009 Sistemi di Elaborazione LM 22
Relazione tra architettura e velocità di esecuzione

Architettura: (ISA, Struttura, Tecnologia)

Si riduce Tck
CPUtime = Nistruzioni * CPImedio * Tck anche aumentando il
numero di stadi della
pipeline
Architettura
microprogrammata Pipeline
bloccante

CPI >> 1 superscalare


CPI=1+nstalli/ Nistruzioni non multicore
bloccante
Condizione necessaria: HT
1 clock per ogni stadio
in assenza di stalli
IPC > 1 IPC >> 1
>> 1 0

21 settembre 2009 Sistemi di Nck per ogniLM


Elaborazione commutazione di thread 23
L-A L-S Thread: (codice, stato)

Confronto tra architettura dell’unità di elaborazione


in CE L-A e SE LS

CE LA SE LS

• Architetture con modello di • Architetture con CPIideale<1:


esecuzione strettamente • Architetture superscalari
sequenziale (CPI= n) • Architetture non bloccanti
• Architetture in pipeline (modello di esecuzione fuori
bloccante (DLX con singola ordine)
pipeline di 5 stadi - CPIideale=1)

• CPU Intel con architettura da • CPU Intel con architettura


16 bit (IA16) multitasking protetta da 32 bit
(IA32)

21 settembre 2009 Sistemi di Elaborazione LM 24


Visualizzazione qualitativa del percorso didattico
e dei contenuti della prova finale

apparato

Periferiche e
calcolatore
meccanica

“Chipset” I blocchi in
rosso e arancio
non verranno
svolti
processori memorie dmac pic interfacce bus
Blocchi in
~10p ~10p ~10p verde già
studiati

Strutture logiche
21 settembre 2009 Sistemi di Elaborazione LM 25

Caratteristiche degli apparati


che contengono uno o più sistemi di
elaborazione al loro interno

• Sono prodotti molto diversi gli uni dagli altri


• Sono prodotti finalizzati a un uso specifico
• In ciascuno di essi i principali aspetti qualificanti e specificamente
studiati per l’uso a cui sono destinati sono:
– L’interfaccia
– Il design
– le dimensioni
– il peso e il consumo (nel caso degli apparati mobili)
• Il calcolatore è sempre la tecnologia abilitante, eppure:
– tende a incidere sempre meno sui costi (sia ricorrenti che non ricorrenti)
– tende ad essere sempre più nascosto, possibilmente invisibile
– perde le caratteristiche di macchina general purpose in quanto svolge le funzioni
specifiche dell’apparato in cui è installato

Nel ’90, in un articolo sul futuro dei calcolatori Mark Weiser aveva
previsto questa modalità di impiego dei calcolatori e la aveva
chiamata “pervasive computing” (elaborazione pervasiva)

21 settembre 2009 Sistemi di Elaborazione LM 26


Aspetti comuni ai calcolatori impiegati
nei sistemi di elaborazione pervasivi

• Software e interfacce sono specifiche del prodotto in cui sono installati


L’instruction Set Architecture (ISA) e la struttura interna possono essere diverse
• Il modello di riferimento è sempre la Macchina di von Neumann
• Le prestazioni necessarie sono di gran lunga superiori a quelle dei
calcolatori visti in Calcolatori Elettronici L-A

• E’ quindi interessante studiare le architetture oggi utilizzate


• I concetti studiati in calcolatori L-A saranno la base per la
comprensione dell’architettura dei sistemi di elaborazione che
studieremo in questo modulo
• In particolare si farà continuamente riferimento ai seguenti
argomenti:
• l’architettura del sistema
• l’architettura della CPU
• il progetto di semplici sistemi e interfacce

21 settembre 2009 Sistemi di Elaborazione LM 27

Esempi di design: la forma

Foto: gentile concessione di


Ducati Sistemi, Pasquale Sorrentino e
Soprintendenza Archeologica di Pompei

21 settembre 2009 Sistemi di Elaborazione LM 28


Design della meccanica:
la forma e la struttura interna

Rendering: gentile concessione


di Ducati Sistemi

Foto: gentile concessione


Interfaccia Radio di Ducati Sistemi

21 settembre 2009 Sistemi di Elaborazione LM 29

Design dell’elettronica :
scorcio dell’interno
(I moduli della “macchina di Von Neumann”
e alcune periferiche)

Alloggiamento per la Display


memoria RAM
(SDRAM)

La Cpu è sull’altro Hard disk


lato del circuito
stampato principale Foto: gentile concessione
di Ducati Sistemi

21 settembre 2009 Sistemi di Elaborazione LM 30


I sensori e relativo microcontroller
per la localizzazione dell’utente

Sensori
inerziali

Bussola

Foto: gentile concessione Ricevitore GPS


di Ducati Sistemi

21 settembre 2009 Sistemi di Elaborazione LM 31

Cenni Storici

La legge di Moore per le prestazioni dei calcolatori

Le prestazioni dei calcolatori aumentano


di
un’ordine di grandezza (cioè di un fattore 10)
ogni
5 anni

21 settembre 2009 Sistemi di Elaborazione LM 32


1971: La prima CPU in in un solo chip
il processore Intel i4004

Prezzo: $ 300
Prestazioni: circa 3000
somme da 32 bit al/sec

3 mm

Altri parametri
di riferimento:
$ 0.13 / transistor
Fck: 200 KHz
2300 transistor 4 mm 190 tr/mm2

Fotografia tratta da: Bell Lab Journal


parallelismo: 4 bit

21 settembre 2009 Sistemi di Elaborazione LM 33

Ritmi del progresso in


microelettronica e nell’architettura delle CPU
Migliaia di
operaz/sec
Migliaia di tr. La legge di Moore: 10.000.000
per chip ogni 5 anni n tr/chip cresce di un ordine di grandezza
1.000.000 1.000.000
sisiverifichi
verifichiche
chei ivalori
valoriindicati
indicatinel
nellucido
lucido
precedente
precedenterispettano
rispettanoleledue
dueleggi
leggisul
sul
100.000 progresso
progressonellenelleprestazioni
prestazionieenelnel 100.000
numero Memorie
numerodiditransistor
transistornella
nellaCPU
CPU

10.000 10.000
Prestazioni
Processori 1000
1000

100 100

10 10
3000
2300
1
1
‘71 ‘76 ‘81 ‘86 ‘91 ‘96 ‘01
21 settembre 2009 Sistemi di Elaborazione LM 34
Parziale aggiornamento del lucido precedente
(da www.intel.com)

Attuazione dela legge di Moore dal 1971 al 2005


riferita al numero di transistor per chip di CPU

21 settembre 2009 Sistemi di Elaborazione LM 35

Nuova struttura dei processori per superare i limiti dell’espressione :


CPUtime = Nistruzioni * CPImedio * Tck

“Chip Multicore”
Discovering Multi-Core:
P ≈ Ntrans fcoreV2 Extending the benefits of
Moore’s Law
By Geoff Koch

fcore_max ≈ kλV

da www.intel.com

Non essendo più possibile incrementare la potenza dissipata da un circuito integrato, è


possibile aumentare il numero di transistor per chip solo se si riduce l’alimentazione e di
conseguenza la frequenza di funzionamento; allora è possibile continuare ad aumentare le
performance dei chip, pur riducendo f core, moltiplicando il numero di CPU per chip; il software
andrà organizzato in più threads (flussi di codice) indipendenti, e quindi eseguibili in parallelo.

CPUtime_min = (Nistruzioni * CPImedio * Tck)/Nthreads


CPUtime_min = MAX (Nistruzioni/Thread * CPImedio / fcore)
21 settembre 2009 Sistemi di Elaborazione LM 36
Corrispondenza architettura – velocità di esecuzione

Architettura: (ISA, Struttura, Tecnologia)

Si riduce Tck
CPUtime = Nistruzioni * CPImedio * Tck anche agendo sulla struttura
(Es.aumentando il numero di
stadi della pipeline)
Architettura
microprogrammata Pipeline
bloccante

n >> 1 1+nstalli/ Nistruzioni superscalare multicore


non bloccante
Condizione necessaria: HT
1 clock per ogni stadio
in assenza di stalli
IPC > 1 IPC >> 1
>> 1 0

21 settembre 2009 Sistemi di Nck per ogniLM


Elaborazione commutazione di thread 37
L-A L-S Thread: (codice, stato)

1995: La prima versione delle CPU oggi


impiegata nei personal computer (il P6)
Foto tratta dall’archivio on-line Intel
Prezzo: $ 300
Prestazioni: circa 300
milioni di somme/sec

5.5 mil di transistor su 306 mm2


17.5 mm
Altri parametri
di riferimento:
$ 0.05/1000 tr
150 MHz
18000 tr/mm2
17.5 mm Parallelismo: 32 bit

21 settembre 2009 Sistemi di Elaborazione LM 38


Confronto tra due CPU distanti 25 anni

Anno 1971 1995 Rapporto


Foto tratta dall’archivio on-line Intel
Prezzo $ 300 $ 300 1

somme/sec 3000 300 milioni 100.000


Transistor/mm2 190 18000 100
Frequenza
0.2 150 750
(MHz)

Superficie
12 306 25
(mm2)
transistor 2300 5.5 mil 2500
Prezzo per
$ 0.13 $ 0.05/1000 2500
transistor
17.5 mm
ID
ID i4004
i4004 P6
P6
21 settembre 2009 Sistemi di Elaborazione LM 39

Impatto dalla contrazione


nelle dimensioni dei transistor sulle architetture
e sulle prestazioni
Operaz/ anno ’85 ’88 ’92 ’95 ’97 ’99 ’00
evento
0.18µ
µ

> 1/6
• • velocità
velocità
> 1/3 • • opportunità
opportunitàper
per
nuove
nuovearchitetture
architetture
• • costo/transistor
costo/transistor
>1 • • consumo
consumo

>2

Velocità in 16 25 50 150 300 600 1000


milioni di
eventi/sec
Immagine tratta dall’archivio on-line Intel
21 settembre 2009 Sistemi di Elaborazione LM 40
Realizzazioni
dell’architettura Intel IA32 - P6 (1997-2003)

Anno 1997 1998 1999 2001 2003


fck Core(MHz) 266 400 600 1400 3060

fck bus (MHz) 66 100 100 400 530

Tecnologia (µm) 0,35 0,25 0,18 0.13 0.13


Alimentazione
2,9 2,5 2,1 1,7 1,5
core (V)
Single Edge SEC SEC 423 pin 478 pin
Package Cartridge (SEC) slot 2 slot 2 PGA PGA
Slot 1 (240 pin) (330 pin) (330 pin) con dissip. con dissip.

Modello Pentium II Pentium II Pentium III Pentium IV P IV HT

Fonte principale: Intel ‘99, Milano, 28 ottobre 1998; ultime due colonne aggiornate nel 2003

21 settembre 2009 Sistemi di Elaborazione LM 41

Corrispondenza architettura – velocità di esecuzione

Architettura: (ISA, Struttura, Tecnologia)

Si riduce Tck
CPUtime = Nistruzioni * CPImedio * Tck anche agendo sulla struttura
(Es.aumentando il numero di
stadi della pipeline)
Architettura
microprogrammata Pipeline
bloccante

n >> 1 1+nstalli/ Nistruzioni superscalare multicore


non bloccante
Condizione necessaria: HT
1 clock per ogni stadio
in assenza di stalli
IPC > 1 IPC >> 1
>> 1 0

21 settembre 2009 Sistemi di Nck per ogniLM


Elaborazione commutazione di thread 42
L-A L-S Thread: (codice, stato)
Nuova struttura dei processori per superare i limiti dell’espressione :
CPUtime = Nistruzioni * CPImedio * Tck

“Chip Multicore”
Discovering Multi-Core:
P ≈ Ntrans fcoreV2 Extending the benefits of
Moore’s Law
By Geoff Koch

fcore_max ≈ kλV

da www.intel.com

Non essendo più possibile incrementare la potenza dissipata da un circuito integrato, è


possibile aumentare il numero di transistor per chip solo se si riduce l’alimentazione e di
conseguenza la frequenza di funzionamento; allora è possibile continuare ad aumentare le
performance dei chip, pur riducendo f core, moltiplicando il numero di CPU per chip; il software
andrà organizzato in più threads (flussi di codice) indipendenti, e quindi eseguibili in parallelo.

CPUtime_min = (Nistruzioni * CPImedio * Tck)/Nthreads


CPUtime_min = MAX (Nistruzioni/Thread * CPImedio / fcore)
21 settembre 2009 Sistemi di Elaborazione LM 43

2006 Platform architecture

• A symmetric multicore CPU, or a MPOC with individual cores dedicated to


individual function sets?

• Sharing sensor data or exchanging them with message passing?

21 settembre 2009 Sistemi di Elaborazione LM 44


Features and Benefits of the Intel® Core™ Duo Processor

• Shared 2MB L2 Cache


• Micro-architectural enhancements that include instruction optimizations
• Dynamic Bus Parking. This enables platform power savings by allowing the chipset to
power down with the processor.
• Dynamic Cache Sizing is a power savings mechanism to dynamically flush system cache
memory based on demand or during periods of inactivity.
• A new thermal management system delivers enhanced accuracy and more precise
acoustic control to enable quieter, cooler, thinner system designs.
• Power-Optimized 667 MHz bus Utilizes Source-Synchronous Transfer (SST) of address
and data enables improved performance by System Bus transferring data at 4X bus clock;
Advanced Gunning Transceiver Logic (AGTL+) signaling
• Enhanced Intel SpeedStep® Multiple performance modes enable optimum
performance at the lowest power, using real-time dynamic switching of the voltage
and frequency between multiple performance modes based on demand.
• New Intel 65nm Process
• visit www.intel.com/products/processor.
21 settembre 2009 Sistemi di Elaborazione LM 45

RICHIAMI DA

CALCOLATORI ELETTRONICI L-A


SULL’ANALISI DELLE
PRESTAZIONI

21 settembre 2009 Sistemi di Elaborazione LM 46


RICHIAMO da Calcolatori LA
CPUtime = Nistruzioni * CPImedio * Tck
Definizione di CPImedio
• In generale non tutte le istruzioni vengono eseguite nello stesso numero di periodi di clock
• Supponiamo che CPIi sia il numero di periodi di clock necessari a eseguire l’istruzione Ii
• Supponiamo che in un determinato benchmark ogni istruzione Ii venga eseguita Ni volte
• Allora per questo benchmark si avrà:
i=n
CPUtime = ( i∑
=1
CPIi * Ni ) * Tck
Uguagliando il secondo termine all’espressione con cui abbiamo definito CPUtime
(CPUtime = N istruzioni * CPImedio * Tck) , otteniamo:
n
Ni
CPImedio = ∑ (CPI i *
numero totale di istruzioni
)
i=1
• Al fine di minimizzare CPImedio è importante tenere basso il valore di CPI delle istruzioni
eseguite con frequenza maggiore (cioè per le quali si ha un valore grande di Ni)
• Si noti che il valore di CPImedio cambia al variare del benchmark
21 settembre 2009 Sistemi di Elaborazione LM 47

RICHIAMO da Calcolatori LA
Misure sulla frequenza di esecuzione
delle istruzioni al variare dell’architettura
al fine di valutare l’impatto di CPIi su CPImedio

Architettura M - R (2-1) R - R (3-0) M - M (3-3)

Tipo di Istruzioni Es.: 8086 Es.: DLX Es.: VAX

Control transfer 24 % 15 % 28 %
14% cond branch 11% cond branch 17% cond branch

42 % 30 %
Data transfer 19 %
27% mov 22% LD e 8% ST
51 % 48 %
Alu 30 % 20% add

• Dati indicativi mediati su molti benchmark non tutti coincidenti


• Il rapporto tra istruzioni control transfer è una stima del rapporto
tra le densità di codice
• Detto rapporto dipende sia dal L.M. sia dall’efficienza del compilatore

21 settembre 2009 Sistemi di Elaborazione LM 48


RICHIAMO da Calcolatori LA
Riesce una CPU a sfruttare tutti i clock
disponibili?

• In generale no; può capitare infatti che ci siano degli istanti in


cui la cpu non può fare nulla perché:
– Non sa ancora qual è l’indirizzo della prossima istruzione da
eseguire
– Non ha un’istruzione da eseguire (è in attesa dell’istruzione dalla
memoria)
– Deve eseguire un’operazione su un operando che non è ancora
disponibile perché è il risultato di una operazione precedente non
ancora terminata
– Ha un risultato disponibile, ma non è ancora disponibile la risorsa
(es. il registro) su cui il risultato va scritto

21 settembre 2009 Sistemi di Elaborazione LM 49

RICHIAMO da Calcolatori LA

Richiami sulle Alee

• Si chiamano alee quelle situazioni in cui l’esecuzione del codice non può
proseguire a causa della mancanza di:
– Un dato (alee di dato)
– Una risorsa (registro o cella di memoria su cui memorizzare un risultato)
(alea di nome)
– L’indirizzo della prossima istruzione da eseguire (alea di controllo)
– L’istruzione da eseguire (alea strutturale)
• Le alee possono essere dovute a dipendenze nel codice oppure possono
essere dovute esclusivamente alla struttura della CPU e alle risorse
disponibili su di essa (alee strutturali)
• Se in presenza di alea la CPU non riesce a fare altro se non aspettare,
allora si dice che la CPU risolve l’alea stallando.
• Obiettivo dell’architetto è cercare soluzioni che consentano alla CPU
di non stallare in presenza di alee

21 settembre 2009 Sistemi di Elaborazione LM 50


RICHIAMO da Calcolatori LA
Prestazioni di una CPU che esegue
un solo thread alla volta

• Il tempo di esecuzione di una istruzione non è sempre lo stesso, ma dipende da:


• dove si trova nel codice
• quali sono i suoi operandi

Detto CPImin il CPI medio in assenza di stalli, si ha:


• Espressione delle prestazioni ideali di un calcolatore:
• CPUtime = (N * CPImin) * tck

• Espressione delle prestazioni reali di un calcolatore:


• CPUtime = (N * CPImin + nstalli) * tck

• Origine degli stalli:


• alee che l'architettura non riesce a risolvere altrimenti
21 settembre 2009 Sistemi di Elaborazione LM 51

RICHIAMO da Calcolatori LA
Ha senso esprimere le prestazioni in MIPS
(milioni di istruzioni al secondo), come abbiamo fatto nel grafico
dimostrativo della legge di Moore?

• MIPS = Nistruzioni / (CPUtime * (106))


inoltre:
• MIPS = f ck / CPImedio (f ck in MHz)

• il numero di MIPS dipende da CPImedio e quindi dal benchmark


• il numero di MIPS non tiene conto di Nistruzioni pertanto a parità di benchmark e di
MIPS otteniamo valori diversi di CPUtime se Nistruzioni cambia (si scriva l’espressione
di CPUtime in funzione di N istruzioni e MIPS!!)
• Quindi il numero di MIPS, da solo, non è un buon indicatore delle prestazioni di una
CPU
• Si possono confrontare in base ai MIPS due CPU rispetto a un
determinato benchmark solamente se hanno lo stesso set di
istruzioni (e quindi Nistruzioni )

21 settembre 2009 Sistemi di Elaborazione LM 52


RICHIAMO da Calcolatori LA

SPEED UP

• Lo speed up di una CPU A (più veloce) rispetto a una CPU B (più lenta)
rispetto a un determinato benchmark è definito come il rapporto tra il
tempo di esecuzione del benchmark da parte della CPU più lenta e tempo
di esecuzione dello stesso benchmark da parte della CPU più veloce
• dunque:
SUA/B = CPUtime (B)/ CPUtime (A)
• Ad esempio se per eseguire un determinato benchmark la CPU A impiega
20 msec e la CPU B impiega 25 msec, allora si ha che:
SUA/B = CPUtime (B)/ CPUtime (A) = 25/20 = 1.25
• si dice anche che rispetto al benchmark assegnato la CPU A è più veloce
della CPU B del 25%; per fare questa affermazione è stata applicata la
seguente formula:
SUA/B % = (CPUtime (B)/ CPUtime (A) - 1) *100= (25/20 - 1)*100 = 25 %

21 settembre 2009 Sistemi di Elaborazione LM 53

Di nuovo il confronto tra architettura di sistema in


CE L-A e SE LS
Soluzioni per incrementare le prestazioni e facilitare la
diffusione dei calcolatori elettronici

CE LA CE LS

• Bus dati da 8 bit •Bus dati multibyte


• Sistemi a singolo master • Sistemi multimaster
• Un livello di memoria • Memoria organizzata gerarchicamente

Un solo tipo di ciclo di bus • Varietà di cicli di bus
(ciclo singolo) (singoli, burst, in pipeline, a fasi separate)
• Un solo bus per memoria e I/O • Una gerarchia di bus
• Periferiche elementari con
• Periferiche con interfaccia di bus
interfaccia CPU-specifica
standard
• Sistemi fissi, con alimentazione • Sistemi mobili, con ricerca del
ipotizzata permanentemente compromesso ottimo
corretta prestazioni/consumi
• Nessun bus oltre al bus di sistema • Bus per la gestione del sistema

21 settembre 2009 Sistemi di Elaborazione LM 54


… da cui lo schema a blocchi di riferimento per
gli esercizi di progetto del corso …

Bus degli indirizzi BA[31..3], BE[7..0]#

CPUi RAM EPROM


(un livello di cache)
Non è
rappresentato
il bus dei BD[63..0]
segnali di
comando
(IORD#,
BRIDGE
IOWR#,
Mass storage Interface
MRDC#, For Virtual Memory
MWRC#,
INTA#) IOB[7..0]

P_IN DMAC PIC P_OUT


n bit

21 settembre 2009 Sistemi di Elaborazione LM 55

Alcune definizioni introduttive a CE LS

• Sistemi multimaster
• Gerarchia delle memorie
• Architetture UMA

21 settembre 2009 Sistemi di Elaborazione LM 56


Agenti master e agenti slave
sistemi a singolo master
• Gli agenti del bus si
M CPU I/O suddividono in:
– agente master
– agente slave
bus
– agenti master/slave
• Si chiama agente del bus (bus agent) un modulo che si affaccia al bus
• Si chiama agente master un agente che genera indirizzi e segnali di comando; per i master
indirizzi e comandi sono segnali di uscita
• Si chiama agente slave un agente indirizzato dal master; per gli agenti slave indirizzi e
comandi sono segnali di ingresso
• Un sistema in cui c’è un solo agente master è detto sistema a singolo master
• Nell’architettura studiata in CE L-A la CPU è l’unico agente master; memoria e interfacce
sono agenti slave
• Un sistema in cui più bus master sono interconnessi a un bus si chiama “sistema
multimaster”
• Un agente che alterna nel tempo il ruolo di master con quello di slave si chiama agente
master/slave
21 settembre 2009 Sistemi di Elaborazione LM 57

Esempi di Sistemi Multimaster


Architetture multiprocessor

sistema multiprocessore
a memoria condivisa
MEM CPU 1 CPU 2 I/O

• Un sistema con più CPU affacciate al bus di sistema è un sistema


multimaster
• Un sistema di questo tipo si chiama sistema multiprocessore a memoria
condivisa
• L’architettura viene anche chiamata architettura UMA (Uniform Memory
Access) a indicare che tutte le CPU accedono nello stesso modo alla
memoria
• Non solo la memoria ma anche le interfacce vengono condivise da tutte
le CPU

21 settembre 2009 Sistemi di Elaborazione LM 58


Esempi di Sistemi Multimaster
Sistemi con accesso diretto alla memoria (DMA)

MEM CPU DMA e I/O I/O

Bus multimaster
• Esistono interfacce in grado di generare cicli di bus di accesso alla memoria
• Queste interfacce vengono attivate dalla CPU, dopodichè gestiscono da sole lo scambio di
informazioni tra la memoria e il mondo esterno, senza richiedere ulteriori interventi alla
CPU
• La funzione di accesso autonomo alla memoria si chiama DMA (Direct Memory Access)
• Un sistema con una CPU e un’interfaccia con DMA è ancora un sistema multimaster
• Esistono anche moduli il cui unico ruolo è quello di gestire il trasferimento dati tra agenti
slave (es. memoria e interfacce slave); questi moduli si chiamano DMA Controller
(DMAC)
• I DMAC e le interfacce con DMA sono in generale agenti master/slave (ma possono
anche essere solo master)

21 settembre 2009 Sistemi di Elaborazione LM 59

Esempi di Sistemi Multimaster


Sistemi con DMA controller

MEM CPU DMAC I/O

Bus multimaster

• Il DMA Controller (DMAC) è un modulo il cui unico ruolo è quello di gestire il


trasferimento dati tra agenti slave (es. memoria e interfacce slave)
• Detta “transazione di input/output” il trasferimento di un blocco di dati tra
memoria ed Input/output, compito del DMAC è quello di eseguire transazioni
di I/O su richiesta della CPU
• Quindi:
– I DMAC devono essere programmati dalla CPU, pertanto in generale sono agenti
master/slave in quanto devono essere indirizzati dalla CPU in fase di
programmazione
– Alcuni DMAC sono solo master; in questo caso questo caso troveranno in memoria
le istruzioni che descrivono le transazioni da eseguire

21 settembre 2009 Sistemi di Elaborazione LM 60


Sistemi multimaster

• In un sistema multimaster il bus diventa una risorsa condivisa gestita a


divisione di tempo: un solo bus master è attivo (bus owner) per ogni
ciclo di bus
• Quando un master è attivo gli altri master possono:
– osservare l’attività sul bus al fine di stabilire se ciò che avviene sul bus li
riguarda (in questo caso l’agente si chiama anche snooping agent)
– rimanere temporaneamente isolati dal bus
• E’ necessario prevedere un meccanismo di arbitraggio che assegna in
base a una regola di priorità il bus ai master che ne fanno richiesta
• I cicli di bus sono indivisibili; se un master inizia un ciclo, allora lo
termina prima di cedere il bus a un altro master (questa è una regola
generale con qualche eccezione non considerata in questo corso)

21 settembre 2009 Sistemi di Elaborazione LM 61

Di nuovo lo schema a blocchi di riferimento per


gli esercizi di progetto: in rosso gli agenti master
(il DMAC è MASTER/SLAVE)

Bus degli indirizzi BA[31..3], BE[7..0]#

CPUi RAM EPROM


(un livello di cache)
Non è
rappresentato
il bus dei BD[63..0]
segnali di
comando
(IORD#,
BRIDGE
IOWR#,
Mass storage Interface
MRDC#, For Virtual Memory
MWRC#,
INTA#) IOB[7..0]

P_IN DMAC PIC P_OUT


n bit

21 settembre 2009 Sistemi di Elaborazione LM 62


Introduzione sull’organizzazione della memoria

• Un calcolatore la cui CPU ha fck = 1 GHz e la cui memoria ha tacc = 50 nsec,


come può non stallare per 50 clock ogni volta che accede alla memoria?
• Come fa un calcolatore a eseguire un programma di 15 MB se dispone di soli 4
MB di ram?

Risposta: la memoria del calcolatore deve essere organizzata su più livelli: memoria
cache piccola e veloce, memoria centrale interconnessa al bus esterno della CPU e
mappata nello spazio di indirizzamento in memoria, e memoria virtuale residente su un
supporto di memorizzazione esterno indirizzabile come una periferica

Come fa un calcolatore con due utenti A e B contemporanei a continuare a


servire correttamente B se il programma di A va in errore e tenta di
sovrascrivere l’area riservata a B?
la protezione tra programmi può essere realizzata organizzando lo spazio di
indirizzamento logico in segmenti protetti contro accessi illegali.
21 settembre 2009 Sistemi di Elaborazione LM 63

Obiettivi: Soluzione:
Architettura del 1) Protezione Segmentazione
sistema di 2) Estensione
memoria 3) Velocità Gerarchia
4) Costo
Ordini di grandezza nel 1998
oggi i valori delle ultime due colonne
si sono molto ridotti
Gerarchia
Dimensione Velocità (latenza) Costo

Mem. Virtuale 4G 10 mSec 1 K£/MB

Mem. Centrale 16M 100 nSec 100 K£/MB

64K 10 nSec 104 K£/MB


Mem. Cache
Il sistema di memoria ideale ha la dimensione e il costo della memoria di massa e ha
il tempo medio di accesso che approssima il tempo di accesso alla memoria cache
21 settembre 2009 Sistemi di Elaborazione LM 64