Calcolatori Elettronici
(9 crediti)
Informazione generali sul corso
• Obiettivo del corso:
– Conoscenza del funzionamento di un calcolatore
elettronico
• Verifica
– 2 prove scritte:
• Progetto di interfaccia processore-periferica e sua
programmazione
• 5-6 domande sul programma
– Orale
• discussione compito scritto
• Sito del corso
– http://www.dis.uniroma1.it/~ciciani/teaching.shtml
• Testo e Materiale integrativo che si trovano sul sito
– Trasparenze del corso
– Riferimenti ai testi consigliati
– Dispense
Obiettivo del corso
Architettura pipeline del processore MIPS
Branch
IF.Flush
EX.Flush
ID.Flush
Hazard
detection
unit
WB
Control
0
4
Instruction
memory
PC
Address
Read
data
Instruction
Shift
left 2
16
Read
Read
data 1
register 1
Read
register 2
Registers
Write
register Read
data 2
Write
data
Sign
extend
Instruction [20– 16]
Instruction [20– 16]
Instruction [15– 11]
M
u
x
0
WB
Cause
EX
Except
PC
=
ALUSrc
WB
Data
memory
ALU
M
u
x
MEM/WB
M
M
u
x
32
Instruction [25– 21]
EX/MEM
M
RegWrite
IF/ID
M
u
x
0
M
u
x
M
u
x
Address
Write
data
ALU
control
ALUOp
RegDst
M
u
x
Forwarding
unit
MemtoReg
ID/EX
M
u
x
MemWrite
40000040
Read
data
MemRead
M
u
x
Architettura di un DMAC (Direct Memory
Access Controller) a 4 vie
DB
30
AB
PD 32
CB
32
CB
MEMORIA
8
32
IACK
6
MWR
MRD
Mbi
i=1..4
AB
8
DB
32
8
CLEAR
IACKout
Reg In
Reg Out
Q s
IRQ
r
Q s
r
Q s
r
Q s
r
Interrupt
IVN 1
IVN 2
IVN 3
IVN 4
30
lsb
SELECT
Reg In
Reg Out
30
CAR 1
CAR 2
CAR 3
CAR 4
4
START 1
START 2
START 3
START 4
WC 1
WC 2
WC 3
WC 4
2
Dev Sel
I/O FF 1
I/O WR
4
I/O FF 2
I/O FF 3
I/O FF 4
2
2
NEXT DATO
BURST 1
BURST 2
BURST 3
BURST 4
2
DATO SCRITTO
2
DATO PRONTO
MBR
I/O WR
SCO
DEV 3
Reg In
Reg Out
MBG
4
lsb
SCO
DEV 2
Reg In
Reg Out
DECR
32
4
lsb
2
2
4
4
2
Bcar
START
I/O WR
SCO
DEV 1
Dev Sel 2
I/O WR
4
2
4
SCO DMAC 4
DATO LETTO
2
DEV SEL
SCO
DEV 4
Gamma dei sistemi di calcolo
• Sistemi “ embedded ” : incorporati in altri sistemi
– automobili, aerei, telefoni cellulari, PDA, frigoriferi ...
• Personal Computer, PC: diverse potenze di calcolo
• Server e Mainframe: caratteristiche molto diverse
– Applicazioni usate da molti utenti,
– webserver, sistemi per la gestione del sistema
informativo di una organizzazione (es:banca)
– Supercalcolatore ( es. Previsione del tempo)
• embedded 97%; personal computer: 2-3%; server: < 0.1%
• Reti di Workstation : Aumento della potenza di calcolo
mediante il collegamento di PC o WS mediante rete ad alta
velocità
Introduzione
Esempio d’impiego di calcolatori
• Posta elettronica
Server
personal computer
Applicazione
Client di posta
Server
Client
Breve Storia dei Sistemi
di Elaborazione
Preistoria (1600-1900)
• Pascal (1623-1662)
– Pascaline: addizioni e sottrazioni
• Leibniz (1646-1716)
– Anche moltiplicazioni e divisioni
• Charles Babbage (1792-1871)
A) Macchina Differenziale
• Algoritmo fisso
• Output su piastra di rame
B) Macchina Analitica
• Prima macchina programmabile
• Memoria: 1000 x 50 cifre decimali
• I/O su schede perforate
• Limite: tecnologia meccanica
Generazione zero
Macchine elettromeccaniche
• Konrad Zuse (~1930 Germania)
– Macchina a relè
– Distrutta nella guerra
• John Atanasoff (~1940 USA)
– Aritmetica binaria
– Memoria a condensatori
• Howard Aiken (~1940 USA)
– MARK 1: versione a relè della macchina di Babbage (~100
anni dopo!)
– Memoria: 72 x 23 cifre decimali
– tempo di ciclo: 6 sec.
– I/O su nastro perforato
Generazione zero
Tubi termoionici
• COLOSSUS (~1940
GB) Gruppo di Alan
Turing, Progetto
segreto
• ENIAC (~1946 USA)
J. Mauchley, J. Eckert
18.000 valvole
30 tonnellate
140kw assorbimento
Programmabile tramite
6000 interruttori e
pannelli cablati
20 registri da 10 cifre
La Macchina di Von Neumann
•
IAS (~ 1950, Princeton USA)
– Programma in memoria, Aritmetica binaria, Memoria: 4096 x
40 bit
– Formato istruzioni a 20 bit:
OPCODE
8
INDIRIZZO
1
2
I Generazione: Sistemi Commerciali
• Inizialmente il mercato è dominato dalla
UNIVAC
• L’IBM entra nel mercato nel 1953, e assume
una posizione dominante che manterrà fino agli
anni ‘80:
– IBM 701 (1953):
• Memoria: 2k word di 36 bit
• 2 istruzioni per word
– IBM 704 (1956):
• Memoria: 4k word di 36 bit
• Istruzioni a 36 bit
• Floating-point hardware
– IBM 709 (1958)
• Praticamente un 704 potenziato
• Ultima macchina IBM a valvole
II Generazione (1955-1965)
Tecnologia a transistor
• TXO e TX2 macchine sperimentali costruite al MIT
• Uno dei progettisti del TX2 fonda una propria
società la Digital Equipment Corporation (DEC)
• La DEC produce il PDP-1 (1961):
–
–
–
–
–
–
Memoria: 4k parole di 18 bit
Tempo di ciclo di 4sec
Prestazioni simili all’IBM 7090
Prezzo meno di un decimo
Schermo grafico 512  512 pixel
Comincia la produzione di massa
(primi videogiochi)
II Generazione: Minicomputer
•
•
•
•
•
•
DEC PDP-8 (1965)
Successore diretto del PDP-1
Interconnessione a bus, molto flessibile
Architettura incentrata sull’I/O
Possibilità di connettere qualsiasi periferica
Prodotto in oltre 50.000 esemplari
II Generazione: Supercomputer
• Macchine molto potenti dedicate al number
crunching
• 10 volte più veloci del 7090
• Architettura molto sofisticata
• Parallelismo all’interno della CPU
• Nicchia di mercato molto specifica (resta vero anche
oggi)
• CDC 6600 (1964)
• Progettista del CDC 6600 è Seymour Cray, poi
fondatore della CRAY
III Generazione (1965-1980)
Tecnologia LSI e VLSI
• Evoluzione dell’architettura HW
– Microprogrammazione
– Unità veloci floating-point
– Processori ausiliari dedicati alla gestione dell’I/O
• Evoluzione dei Sistemi Operativi
– Virtualizzazione delle risorse
– Multiprogrammazione: esecuzione concorrente di più
programmi
– Memoria Virtuale: rimuove le limitazioni dovute alle
dimensioni della memoria fisica
III Generazione
IBM: Serie IBM System/360 (famiglia elab.)
• Macchine con lo stesso linguaggio
• Range di prestazioni (e prezzo) 1-20
• Completa compatibilità
• Portabilità totale delle applicazioni
• OS comune OS/360
Digital PDP 11
• Architettura a bus (Unibus)
• Prodotto in milioni di esemplari
• Sistema operativo UNIX, indipendente dalla
piattaforma
…. nacque il Personal Computer
• fine anni 70: Apple I, progettato in un garage nel tempo
libero, venduto in scatola di montaggio
• 1981 PC IBM con Intel 8088 e MS DOS (Disk Operating
System) della minuscola Microsoft
• 1981 PC M-20, della Olivetti
processore Z8001 a 16 bit, OS proprietario, PCOS
• 1983 PC M-24, della Olivetti
processore 8086, MS DOS
• Informatica diffusa non solo per specialisti (importanza dei
videogames)
• Duopolio Intel/Microsoft
• Apple: “prestazioni migliori” , “costi elevati”, come
vedremo dovuta a migliore organizzazione dei bus
La legge di Moore (1965)
La capacità delle memorie DRAM quadruplica ogni tre
anni (60% anno)
• Analogo aumento del numero di transistor sul chip
• Aumento della capacità di memorizzazione dei chip di
memoria statica (SRAM)
• Aumento della capacità di calcolo delle CPU
Legge di Moore per le CPU
• Più transistor:
– parallelismo interno
• Maggiore frequenza di
funzionamento
• Rapp.prestazioni/costo
– 1951 valvola 1
– 1965 transistor 36
– 1975 circuito integrato
900
– 1995 circuito VLSI
2.400.000
– 2005 circuito ULSI
6.200.000.000
Legge di Nathan
Il software è come un gas: riempie sempre
completamente qualsiasi contenitore in cui lo
si metta
Al calare dei costi e all’aumentare della memoria
disponibile, le dimensioni del software sono sempre
cresciute in proporzione
• Il Circolo Virtuoso
–
–
–
–
Costi più bassi e prodotti migliori
Aumento dei volumi di mercato
Fattori di scala nella produzione
Costi più bassi …...
Calcolatore elettronico oggi…
Sistema elettronico digitale programmabile
Elettronico digitale
• Sfrutta componenti elettronici digitali (porte
logiche) che operano su grandezze binarie (bit)
che possono assumere due soli valori (0 e 1)
Sistema: Parti (o componenti) che
interagiscono in modo organico fra loro
(architettura di von Neumann)
Programmabile
• Il comportamento del sistema è flessibile e
specificato mediante un programma, ossia un
insieme di ordini
Intel Computer Family
Grandezze elettriche (1)
• Analogiche
– Il più possibile analoghe a ciò che
rappresentano (all’originale)
Tensione elettrica
Pressione aria
• Ex: forma corrispondente alla voce
tempo
tempo
Grandezze elettriche (2)
• Rappresentazioni digitali
Valori digitalizzati della
Tensione elettrica
• Le grandezze analogiche
vengono approssimate con valori
discreti (di numero finito)
tempo
Grandezze elettriche (3)
• Binarie
– Grandezze digitali che possono assumere due soli
valori, comunemente indicati con 0 ed 1
• La grandezza fisica può essere una tensione (alta,
bassa), una corrente (presente, non presente), suono
(alto, basso), luce (presente, non presente), etc..
V2
V1
Andamento ideale
0-> V1, 1-> V2
oppure
0-> V2, 1-> V1 …
tempo
Grandezze elettriche (4)
• Binarie
– In realtà…
• i valori 0 ed 1 sono rappresentati mediante
valori di un intervallo
• Il cambiamento da 0->1, 1->0 non è
istantaneo
3.3
2.8
0.5
0.0
rumore
Andamento reale
tempo
Mapping from physical world to binary world
Technology
State 0
State 1
Relay logic
Circuit Open
Circuit Closed
CMOS logic
0.0-1.0 volts
2.0-3.0 volts
Transistor transistor logic (TTL) 0.0-0.8 volts
2.0-5.0 volts
Fiber Optics
Light off
Light on
Dynamic RAM
Discharged capacitor Charged capacitor
Programmable ROM
Fuse blown
Fuse intact
Magnetic disk
No flux reversal
Flux reversal
Compact disc
No pit
Pit
Vantaggi dei sistemi digitali
• Riproducibilità del segnale analogico
– a meno dell’errore di rappresentazione
•
•
•
•
•
Facilità di progetto
Flessibilità
Programmabilità
Velocità di funzionamento (ns, 10-9 s)
Economia
La nozione di macchina …
Per studiare l’architettura di un calcolatore è
conveniente introdurre la nozione di macchina
• Macchina: entità in grado di eseguire istruzioni
appartenenti ad un linguaggio
– una macchina può essere fisica o virtuale
• Una macchina è composta da un insieme di risorse
che sono controllare e gestite dalle istruzioni
– Il significato di ogni istruzione è dato facendo riferimento
all’utilizzo delle risorse
Architettura a livelli di un sistema di
elaborazione
Macchina virtuale Mvn e
linguaggio macchina Lvn
Macchina virtuale Mv1 e
linguaggio macchina Lv1
Macchina fisica MF e
linguaggio macchina LF
• Un sistema di
elaborazione è
costituito da varie
macchine virtuali
• L’architettura di un
sistema di elaborazione
è la descrizione delle
caratteristiche delle
varie macchine virtuali
(livelli)
Livello applicativo
• E’ il livello usato da chi scrive applicazioni per
uno specifico problema (es programmi in java)
int i;
i=i+2;
bytecode
…
Program
in Java
Compilat.
Programma
eseguibile
ISA: Instruction Set
Architecture (Macchina di von
Neumann)
JVM
eseguita da
Macchina
ISA
Macchina di von Neumann
Unità di
Ingresso
Memoria di
lavoro
Unità di
Calcolo
Unità di
Controllo
Unità di
Uscita
Macchina di von Neumann
Unità di
Ingresso
Memoria di
lavoro
Unità di
Calcolo
Unità di
Controllo
CPU
Unità di
Uscita
Caratteristiche distintive..
• Singola memoria “monodimensionale”
acceduta sequenzialmente
• Memorizzazione sia di dati che del
programma
• Il tipo di dato non è memorizzato
• La macchina di von Neumann esegue le
istruzioni del programma (nel linguaggio
macchina)
Livelli di astrazione
Software
INSIEME DELLE ISTRUZIONI
(linguaggio macchina)
Livello
firmware
Livello
porte logiche
Livello fisico
(transistor..)
Hardware
Il livello firmware (microarchitettura)
Interpreta le istruzioni del linguaggio macchina
Le componenti principali di tale livello sono
• Registri (in grado di memorizzare gruppi di
bit, ex: 16-32 bit)
• ALU (Unità Aritmetica Logica)
• Data-path (connessioni per il trasferimento
dei dati)
Utilizza le porte logiche (livello 1)
Implementazione
• A una istruzione macchina corrisponde una
sequenza di comandi del livello 1 che la
realizzano
Istruzione
macchina…
1
2
3
Istruzione L2
kI
Sequenza
equivalente s