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
– Prova intermedia (?????????)
• 3-4 domande sul programma svolto
• 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
PC
Instruction memory 4
Registers
Sign extend
Mu x
Mu x
Mu x Control
ALU EX
M WB
M WB
WB ID/EX
EX/MEM
MEM/WB Mu
x
Data memory Mu
x Hazard
detection unit
Forwarding unit IF.Flush
IF/ID
Mu x Except
PC 40000040
0 Mu
x 0
Mu x
0 Mu
x
ID.Flush EX.Flush
Cause
Shift left 2
Write data
Readdata Address Readdata
Address Write
register Write data
data 1Read
data 2Read Readregister 1 Readregister 2
ALU control 32
16
Instruction
Instruction [15– 11]
Instruction [20– 16]
Instruction [20– 16]
Instruction [25– 21]
RegWrite
ALUOp ALUSrc
RegDst
MemWrite
MemRead
MemtoReg
Branch
=
Architettura di un DMAC (Direct Memory Access Controller) a 4 vie
PD 32 MEMORIA
SCO DEV 1
SCO DEV 2
SCO DEV 3
SCO DEV 4 IVN 1
IVN 2 IVN 3 IVN 4
Reg In Reg Out
Reg In Reg Out
Reg In Reg Out
Reg In Reg Out s
CB AB DB
IACK
2
32 DB
AB
CB
DEV SEL DATO PRONTO
DATO LETTO NEXT DATO DATO SCRITTO CAR 1
CAR 2 CAR 3 CAR 4
WC 1 WC 2 WC 3 WC 4
I/O FF 1 I/O FF 2 I/O FF 3 I/O FF 4 4
I/O WR
I/O WR 30 lsb
32 4
4 lsb I/O WR
4
BURST 1 BURST 2 BURST 3 BURST 4 4
START
4 lsb I/O WR
4
SELECT
Qr sr Q
sr Q
sr Q
IRQ
4
2
2 2 2 2
2 2 2 2 Interrupt
Dev Sel
START 1 START 2 START 3 START 4 Bcar
DECR Dev Sel 2
30
6 MWR MRD Mbi i=1..4
SCO DMAC 4
MBG MBR IACKout
CLEAR 32
8
8
32
30
8
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: per applicazioni molto diverse – usati da molti utenti,
– webserver,
– sistemi per la gestione del sistema informativo di una organizzazione (es:banca)
– supercalcolatori ( es. Previsione del tempo)
• embedded 98%; personal computer: 1-2%; server: < 0.1%
• Reti di Workstation : Aumento della potenza di calcolo
mediante il collegamento di PC o WS a rete ad alta velocità
Introduzione
Esempio d’impiego di calcolatori
• Posta elettronica
personal computer Applicazione
Client di posta
Client
Server Server
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 INDIRIZZO 1
8 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 4sec
– Prestazioni simili all’IBM 7090 – Prezzo meno di un decimo
– Schermo grafico 512 512 pixel (primi videogiochi) – Comincia la produzione di massa
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)
• Ex: forma corrispondente alla voce
tempo
Pressione aria Tensione elettrica
tempo
Grandezze elettriche (2)
Valori digitalizzati della Tensione elettrica
tempo
• Rappresentazioni digitali
• Le grandezze analogiche
vengono approssimate con valori discreti (di numero finito)
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..
tempo
V2
V1
Andamento ideale
0-> V1, 1-> V2 oppure
0-> V2, 1-> V1 …
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
tempo
3.32.8
0.50.0
Andamento reale
rumore
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 capacitorCharged capacitor
Programmable ROM Fuse blown Fuse intact
Magnetic disk No flux reversal Flux reversal
Compact disc No pit Pit
Mapping from physical world to binary world
Vantaggi dei sistemi digitali
• Riproducibilità del segnale analogico
– a meno dell’errore di rappresentazione
• Facilità di progetto
• Flessibilità
• Programmabilità
• Velocità di funzionamento (ns, 10
-9s)
• 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
• 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)
Macchina fisica MF e linguaggio macchina LF Macchina virtuale Mv1 e linguaggio macchina Lv1
Macchina virtuale Mvn e linguaggio macchina Lvn
Livello applicativo
• E’ il livello usato da chi scrive applicazioni per uno specifico problema (es programmi in java)
Program
in Java Programma eseguibile
int i;
i=i+2;
… bytecode
Compilat.
Compilat. JVMJVM
Macchina ISA
eseguita da
ISA: Instruction Set
Architecture (Macchina di von Neumann)
Macchina di von Neumann
Unità di Calcolo Unità di Controllo
Memoria di lavoro Unità di
Ingresso Unità di
Uscita
Macchina di von Neumann
Unità di Calcolo Unità di Controllo
Memoria di lavoro Unità di
Ingresso Unità di
Uscita
CPU
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
Hardware Software
Livello fisico (transistor..)
Livello
porte logiche Livello
firmware
INSIEME DELLE ISTRUZIONI (linguaggio macchina)
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