introduzione architettura dei calcolatori di calcolatori... · sistema di elaborazione un sistema...
TRANSCRIPT
1
Maurizio Palesi 1
IntroduzioneIntroduzioneall’Architettura deiall’Architettura dei
Calcolatori ElettroniciCalcolatori Elettronici
Maurizio Palesi
Maurizio Palesi 2
Sistema di ElaborazioneSistema di ElaborazioneUn Sistema di Elaborazione(SE) è una Macchina (M)capace di eseguire Programmi(P) scritti in un opportunoLinguaggio (L)
M
L
P(L)
Dati
Mondo Esterno
2
Maurizio Palesi 3
Sistema di ElaborazioneSistema di Elaborazione
Sistema diElaborazioneSistema di
Elaborazione
MacchinaMacchina ProgrammaProgramma LinguaggioLinguaggio
entità attiva entità passiva
Maurizio Palesi 4
Modello Funzionale vs. RealizzativoModello Funzionale vs. Realizzativo
Modello FunzionaleLa macchina è un puro esecutore delleistruzioni del proprio linguaggio
Due macchine dotate dello stesso linguaggio sonofunzionalmente identiche
Modello RealizzativoDescrive come la macchina è realizzata
Due macchine dotate dello stesso linguaggio non èdetto che siano identiche da un punto di vistarealizzativo
3
Maurizio Palesi 5
Gerarchie di MacchineGerarchie di Macchine
M1
L1
P12(L1)
Dati
Mondo Esterno
L2
M2
P(L2)
TraduzioneInterpretazione
Maurizio Palesi 6
Sistema di ElaborazioneSistema di ElaborazioneUn SE è costituito da una gerarchia dimacchine
Costruite a partire da una macchinaestremamente elementare
Il modello realizzativo di un SE è definito daModello funzionale della macchina piùelementare che si vuole trattareDalla descrizione degli interpreti e dei traduttori
4
Maurizio Palesi 7
GeneralizzazioneGeneralizzazioneLn
Mn
L2
M2
P(n-1)n
L1
M1
P(n-1)n
Trade-offTrade-off
Astrazione(Semplicità di
programmazione)
Astrazione(Semplicità di
programmazione)PrestazioniPrestazioni
Maurizio Palesi 8
ProcessoProcessoMacchina che esegue illinguaggio prodotto daicompilatori dei linguaggi di3G
Linguaggio binario
M.na Processo
L.ggio Binario
Compilatore C
Dati
Mondo Esterno
C
Macchina C
P(C)
5
Maurizio Palesi 9
Linguaggio BinarioLinguaggio BinarioLe istruzioni sono codificate in bitDipende dal SE
A differenza dei linguaggi di 3GTuttavia tutti i processi condividono lastessa impostazione generale
Maurizio Palesi 10
Macchina ProcessoMacchina ProcessoGli elementi fondamentali che caratterizzanoqualsiasi processo sono
Memoria del processoProgramma in esecuzione in memoriaPresenza di un registro Program CounterMeccanismo di esecuzione
Stato del processoContenuto di memoria + contenuto dei registri
Codiceoperativo OperandiIstruzione
6
Maurizio Palesi 11
Macchina AssemblerMacchina AssemblerSi realizza per eliminare la difficoltà dilavorare con il linguaggio binario
Linguaggio Assembly
Macchina Assembler
Linguaggio binario del proc.
Processo
Programma assemblatore
Maurizio Palesi 12
Esempi di Istruzioni AssemblyEsempi di Istruzioni AssemblyCategoria 1
somma X, Y ; Y := X + Yneg X ; X := -Xcopia X, Y ; Y := X
Categoria 2Salta I ; Passa ad eseguire l’istruzione ITest X, I ; Se X=0, vai a eseguire l’istruzione ITermina ; Termina l’esecuzione del programma
Categoria 3Leggi X ; Acquisisci un dato dall’esterno in XScrivi X ; Trasmetti il contenuto di X all’esterno
7
Maurizio Palesi 13
Esempio di Programma AssemblyEsempio di Programma AssemblyMoltiplicazione persomme ripetute
X: RISERVAY: RISERVAZ: RISERVAZERO: RISERVA 0NUNO: RISERVA -1
leggi Xleggyi Ycopia ZERO, Z
Ciclo:test X, Finesomma Y, Zsomma NUNO, Xsalta Ciclo
Fine:scrivi Ztermina
Maurizio Palesi 14
Codifica del Programma in Linguaggio BinarioCodifica del Programma in Linguaggio Binario
X: RISERVA 0 **** ****** ******Y: RISERVA 1 **** ****** ******Z: RISERVA 2 **** ****** ******ZERO: RISERVA 0 3 0000 000000 000000NUNO: RISERVA -1 4 1000 000000 000001
leggi X 5 1111 000000 ******leggyi Y 6 1111 000001 ******copia ZERO, Z 7 1000 000011 000010
Ciclo:test X, Fine 8 1010 000000 001100somma Y, Z 9 0110 000001 000010somma NUNO, X 10 0110 000100 000000salta Ciclo 11 1001 001000 ******
Fine: scrivi Z 12 0111 000010 ******termina 13 1011 ****** ******
8
Maurizio Palesi 15
Macchina AssemblerMacchina AssemblerAlcune differenze tra Linguaggio Binario eLinguaggio Assembly
I codici operativi binari sono sostituiti da codicisimboliciPresenza di direttive non rispondendi aistruzioni in linguaggio binarioSi possono usare simboli (labels) al posto diindirizzi binari
Maurizio Palesi 16
Macchina HardwareMacchina HardwareLa macchina sopra la quale viene realizzatoil processo è la Macchina HardwareIl Linguaggio della macchina HW è illinguaggio binarioIl programma che realizza la macchinaprocesso sopra la macchina HW si chiamaSistema Operativo
Il SO è in grado di realizzare molte macchineprocesso sulla macchina HW
9
Maurizio Palesi 17
Il Sistema OperativoIl Sistema Operativo
Prog.1 Prog.2 Prog.N
Proc. 1 Proc. 2 Pproc. N
Sistema Operativo
Linguaggio Macchina
Macchina Hardware
Maurizio Palesi 18
Caratteristiche FondamentaliCaratteristiche FondamentaliCapacità di eseguire sequenze di istruzionimemorizzateCalcolatore = Unità di Elaborazione + Unitàdi Controllo
1. Preleva le istruzioni dalla memoria2. Interpreta i codici di istruzione3. Effettua le azioni che questi prevedono
Programma = Insieme organizzato diistruzioni
10
Maurizio Palesi 19
Vista Vista FunzionaleFunzionale di un Calcolatore di un Calcolatore
AmbienteTraserimento
Elaborazione
Controllo
Memorizzazione
Maurizio Palesi 20
CalcolatoreCalcolatore
Componenti di un Componenti di un CalcolatoreCalcolatore
ProcessoreProcessore
Unità dicontrollo
Unitàoperativa
MemoriaMemoria
DispositiviDispositivi
Ingresso
Uscita
TastieraMouse
MonitorStampante
Unità di elaborazione econtrollo o Central
Processing Unit (CPU)
Contiene le istruzionida eseguire e i dati su
cui operare
Insieme di dispositiviche consentono la
comunicazione con eda il mondo esterno
11
Maurizio Palesi 21
Organizzazione GeneraleOrganizzazione Generale
CPUMemoria
Ingresso Uscita
Bus di sistema
Maurizio Palesi 22
Bus e Master-SlaveBus e Master-SlaveIl bus è una linea a cui sono contemporaneamenteconnesse le unità del calcolatore e che consente iltrasferimento di dati tra tali unità
Problema: contesa su un mezzo condiviso!Soluzione: CPU = master, periferiche = slave
12
Maurizio Palesi 23
Bus e Master-Slave - PregiBus e Master-Slave - PregiSemplicità: 1 sola linea di connessione ∀ # didispositiviEstendibilità: nuovi dispositivi possono essereaggiunti tramite un’interfaccia al bus senzainfluenzare l’HW preesistenteStandardizzabilità: definizione di normative checonsentono a periferiche di costruttori diversi diinteragire correttamente
Maurizio Palesi 24
Bus e Master-Slave - DifettiBus e Master-Slave - DifettiLentezza: l’uso in mutua esclusione del businibisce almeno parzialmente la parallelizzazionedelle operazioni di trasferimento di dati tradispositiviLimitata capacità: al crescere del numero didispositivi la presenza di una sola linea comportaun limite alla capacità di trasferire datiSovraccarico della CPU: l’unità centrale vienecoinvolta in tutte le operazioni di trasferimento didati
13
Maurizio Palesi 25
Lo Schema di RiferimentoLo Schema di Riferimento
Bus datiBus indirizzi
Bus di controllo
InterfacciaI/O
InterfacciaI/O
InterfacciaI/O
InterfacciaI/O
InterfacciaI/O
InterfacciaI/O
Memoriacentrale
Memoriacentrale CPUCPU
Maurizio Palesi 26
Tipi di BusTipi di BusBus dati: utilizzato per trasferire dati (es. framemoria e CPU, fra CPU e interfacce di I/O)Bus indirizzi: che identifica la posizione delle celledi memoria un cui la CPU va a scrivere o leggereBus di controllo: in cui transitano i segnali dicontrollo che consentono di selezionare le unitàcoinvolte in un trasferimento dati (sorgente edestinazione), di definire la direzione delloscambio (scrittura o lettura)
14
Maurizio Palesi 27
Architettura diArchitettura di Von Neumann Von NeumannBurks, Goldstein e Von Neumann sono stati i primi a proporre che ilcodice del programma potesse essere memorizzato nella stessamemoria dei dati
CPUCPU MemoriaMemoria
Indirizzi
Dati
Controllo
Memoria indifferenziata per dati o istruzioniSolo l'interpretazione da parte di CPU stabilisce se una dataconfigurazione di bit è da riguardarsi come un dato o comeun'istruzione
Maurizio Palesi 28
Collo di BottigliaCollo di Bottiglia Von Neumann Von NeumannL’organizzazione di Von Neumann è quella più popolareConsente al processore di manipolare i programmi in modo piùsempliceSvantaggi
La limitata larghezza di banda della memoria ha un’impattonegativo sulla velocità di esecuzione dell’applicazioneQuesto fenomeno è noto come “Von Neumann bottleneck”
15
Maurizio Palesi 29
ArchitetturaArchitettura Harward HarwardAltre organizzazioni memorizzano dati e programmi in memorie diverse
CPUCPU MemoriaDati
MemoriaDati
Indirizzi
Dati
Controllo
E’ principalmente utilizzata nei processori ad alte prestazioni e nellearchitetture dedicate per applicazioni di elaborazione digitale deisegnali (DSP)
MemoriaIstruzioniMemoriaIstruzioni
Indirizzi
Dati
Controllo
Maurizio Palesi 30
Organizzazione Tipica (busOrganizzazione Tipica (bus oriented oriented))
Unità diControlloUnità di
Controllo
UnitàAritmetica
Logica
UnitàAritmetica
Logica
Registri
CPU
MemoriaCentrale
MemoriaCentrale TerminaleTerminale Unità a
discoUnità adisco StampanteStampante
Dispositivi di I/O
BUS
16
Maurizio Palesi 31
Tre Tipologie di IstruzioniTre Tipologie di IstruzioniIstruzioni Aritmetico Logiche (Elaborazione dati)
Somma, sottrazione, divisione, …And, Or, Xor, …Maggiore, minore, uguale, maggiore uguale, …
Controllo del flusso delle istruzioniSequenzaSelezioneCiclo a condizione iniziale, a condizione finale, …
Trasferimento di informazioneTrasferimento dati e istruzioni tra CPU e memoriaTrasferimento dati e istruzioni tra CPU e dispositivi di I/O
Maurizio Palesi 32
Elementi di una CPUElementi di una CPUUnità di controllo
Legge le istruzioni dalla memoria e ne determina il tipo
Unità aritmetico-logicaEsegue le operazioni necessarie per eseguire le istruzioni
RegistriMemoria ad alta velocità usata per risultati temporaneiDetermina il parallelismo della CPUEsistono registri generici e registri specifici
Program Counter (PC)Instruction Register (IR)…
17
Maurizio Palesi 33
Struttura del “dataStruttura del “data path path””
A+B
A+B
AA BB
BB
AA
A+B
A+B
ALU
Registri Registri di ingressoall’ALU
Registro di uscitadell’ALU
Bus di ingressoall’ALU
Maurizio Palesi 34
18
Maurizio Palesi 35
L’EsecutoreL’EsecutoreUn calcolatore basato sull’architettura diVon Neumann esegue un programma sullabase dei seguenti principi
Dati e istruzioni sono memorizzati in unamemoria unica che permette sia la scrittura chela letturaI contenuti della memoria sono indirizzati inbase alla loro posizioneLe istruzioni vengono eseguite in modosequenziale
Maurizio Palesi 36
Linguaggio Macchina eLinguaggio Macchina e Assembly AssemblyLinguaggio macchina
RudimentaleIl concetto di tipo di dato è quasi assenteIl numero di operandi è limitatoIl numero di operazioni previste è ridotto
Struttura di una istruzione della CPU codice operativo op1 op2Specifica analoga alla codifica in assembly SOMMA Reg1 Reg2Codifica in un ipotetico linguaggio macchina 10000011 001 010
19
Maurizio Palesi 37
Maurizio Palesi 38
Esecuzione delle IstruzioniEsecuzione delle IstruzioniCiclo Fetch-Decode-Execute1. Prendi l’istruzione corrente dalla memoria e mettila nel
registro istruzioni (IR) [Fetch]2. Incrementa il program counter (PC) in modo che
contenga l’indirizzo dell’istruzione successiva3. Determina il tipo dell’istruzione corrente [Decodifica]4. Se l’istruzione usa una parola in memoria determina
dove si trova5. Carica la parola, se necessario, in un registro della
CPU6. Esegui l’istruzione [Execute]7. Torna al punto 1.
20
Maurizio Palesi 39
Struttura Semplificata di una CPUStruttura Semplificata di una CPU
Memoriacentrale
operiferiche
Memoriacentrale
operiferiche
PC
IR PSW
Unità di controllo
RegistroRegistro
...Registro
MDR
MAR
ALU
stat
o
Eseg
uiO
pera
zion
e
Unità centrale
LeggiScrivi
Bus Controllo
Indirizzo
Dato
Bus Indirizzi
Bus Dati
Maurizio Palesi 40
Esempio: Lettura dalla MemoriaEsempio: Lettura dalla Memoria
Memoriacentrale
operiferiche
Memoriacentrale
operiferiche
PC
IR PSW
Unità di controllo
RegistroRegistro
...Registro
MDR
MAR
ALU
stat
o
Eseg
uiO
pera
zion
e
Unità centrale
LeggiScrivi
Bus Controllo
Indirizzo
Dato
Bus Indirizzi
Bus Dati
Fase di Fetch (1 di 2)
21
Maurizio Palesi 41
Esempio: Lettura dalla MemoriaEsempio: Lettura dalla Memoria
Memoriacentrale
operiferiche
Memoriacentrale
operiferiche
PC
IR PSW
Unità di controllo
RegistroRegistro
...Registro
MDR
MAR
ALU
stat
o
Eseg
uiO
pera
zion
e
Unità centrale
LeggiScrivi
Bus Controllo
Indirizzo
Dato
Bus Indirizzi
Bus Dati
Fase di Fetch (2 di 2)
Maurizio Palesi 42
Esempio: Lettura dalla MemoriaEsempio: Lettura dalla Memoria
Memoriacentrale
operiferiche
Memoriacentrale
operiferiche
PC
IR PSW
Unità di controllo
RegistroRegistro
...Registro
MDR
MAR
ALU
stat
o
Eseg
uiO
pera
zion
e
Unità centrale
LeggiScrivi
Bus Controllo
Indirizzo
Dato
Bus Indirizzi
Bus Dati
Decodifica
22
Maurizio Palesi 43
Esempio: Lettura dalla MemoriaEsempio: Lettura dalla Memoria
Memoriacentrale
operiferiche
Memoriacentrale
operiferiche
PC
IR PSW
Unità di controllo
RegistroRegistro
...Registro
MDR
MAR
ALU
stat
o
Eseg
uiO
pera
zion
e
Unità centrale
LeggiScrivi
Bus Controllo
Indirizzo
Dato
Bus Indirizzi
Bus Dati
Esecuzione (1 di 2)
Maurizio Palesi 44
Esempio: Lettura dalla MemoriaEsempio: Lettura dalla Memoria
Memoriacentrale
operiferiche
Memoriacentrale
operiferiche
PC
IR PSW
Unità di controllo
RegistroRegistro
...Registro
MDR
MAR
ALU
stat
o
Eseg
uiO
pera
zion
e
Unità centrale
LeggiScrivi
Bus Controllo
Indirizzo
Dato
Bus Indirizzi
Bus Dati
Esecuzione (2 di 2)
23
Maurizio Palesi 45
Esempio: Somma tra due registriEsempio: Somma tra due registri
Memoriacentrale
operiferiche
Memoriacentrale
operiferiche
PC
IR PSW
Unità di controllo
RegistroRegistro
...Registro
MDR
MAR
ALU
stat
o
Eseg
uiO
pera
zion
e
Unità centrale
LeggiScrivi
Bus Controllo
Indirizzo
Dato
Bus Indirizzi
Bus Dati
Fetch (come prima)
Maurizio Palesi 46
Esempio: Somma tra due registriEsempio: Somma tra due registri
Memoriacentrale
operiferiche
Memoriacentrale
operiferiche
PC
IR PSW
Unità di controllo
RegistroRegistro
...Registro
MDR
MAR
ALU
stat
o
Eseg
uiO
pera
zion
e
Unità centrale
LeggiScrivi
Bus Controllo
Indirizzo
Dato
Bus Indirizzi
Bus Dati
Decodifica
24
Maurizio Palesi 47
Esempio: Somma tra due registriEsempio: Somma tra due registri
Memoriacentrale
operiferiche
Memoriacentrale
operiferiche
PC
IR PSW
Unità di controllo
RegistroRegistro
...Registro
MDR
MAR
ALU
stat
o
Eseg
uiO
pera
zion
e
Unità centrale
LeggiScrivi
Bus Controllo
Indirizzo
Dato
Bus Indirizzi
Bus Dati
Esecuzione
Maurizio Palesi 48
Struttura di una CPUStruttura di una CPU
Unità Operativa(datapath)
Unità Operativa(datapath)
Unità di ControlloUnità di Controllo
comandi
condizioniclock
Istruzione Comandi
Dati inuscita
Dati iningresso
CPU
25
Maurizio Palesi 49
FetchFetch-Esecuzione-EsecuzioneFetch
Prelievo e decodifica dell’istruzioneComune a tutte le istruzioni
EsecuzioneEsecuzione delle azioni previste dal codice di operazioneDiversa da istruzione a istruzione
Fetch Execute
Inizio esecuzione
Fine esecuzione
La prossimaistruzione viene
letta dalla memoriae decodificata
Viene svolta l’operazioneprevista dal codice
operativo dell’istruzionestessa
Maurizio Palesi 50
Il ProgrammaIl ProgrammaProgramma = Sequenza di istruzioniLe istruzioni sono in memoria a indirizzi contiguiOccorre un registro per memorizzare l’indirizzo dellaprossima istruzione da eseguire
Usualmente denominato Program Counter (PC)A termine dell’esecuzione di un’istruzione, PC devepuntare alla prossima istruzione
Le istruzioni sono a lunghezza fissa (stesso # di bytes)PC è incrementato di una quantità pari a tale numero
Le istruzioni hanno lunghezza variabilePC deve essere incrementato di volta in volta della dimensione in bytedell’istruzione appena eseguita
Le istruzioni di salto hanno l’effetto di aggiornare il PC conl’indirizzo di destinazione del salto
26
Maurizio Palesi 51
Elementi Fondamentali di una CPUElementi Fondamentali di una CPU
Logica di
controllo
IR
UC DATAPATH
R1
Rn
ALU
PCMARMDR
CPU
MEMORIA
I/O
Indirizzi
Dati
Controllo
Comandi
Condizioni
Maurizio Palesi 52
Registri di CPURegistri di CPUIR: Usato per contenere l'istruzione in corso di esecuzione
Caricato in fase di fetchRappresenta l'ingresso che determina le azioni svolte durante la fase diesecuzione
PC: Tiene traccia dell'esecuzione del programmaContiene l’indirizzo di memoria in cui è memorizzata la prossima istruzioneda eseguire
MAR: contiene l'indirizzo della locazione di memoria da leggere oscrivere
La dimensione di MAR determina l'ampiezza dello spazio di memoria fisicaDalla fine degli anni '80 vengono prodotti microprocessori con bus indirizzia 32 bit
MDR: Registro attraverso il quale viene scambiata l'informazione tra lamemoria e la CPU
Tradizionalmente la dimensione di MDR dà la misura del grado diparallelismo della macchina (8, 16, 32, 64 bit)
R0, R1,...Rn: Registri di uso generale
27
Maurizio Palesi 53
Diagramma a Stati della Fase diDiagramma a Stati della Fase di Fetch Fetch
MAR PCMAR PC
MDR M[MAR]MDR M[MAR]
IR MDRIR MDR
Fetch
Fase di ExecuteFase di Execute
Decodifica del codice operativo ed
incremento del PC
Decodifica del codice operativo ed
incremento del PC
Ogni stato ha durata di unperiodo di clock, eccetto ilsecondo il quale può richiederepiù cicli a causa della latenzadella memoria
Maurizio Palesi 54
Fase diFase di Execute Execute (1 bus) (1 bus)
R1
R2
R3
A
L
U
Temp1
Temp2
BUSBUS R1; Temp1 BUS
BUS R2; Temp2 Temp1+BUS
BUS Temp2; R3 BUS
ADD R3, R1, R2ADD R3, R1, R2
1 Abilitazione dell’uscita R1 e caricamento di Temp12 Abilitazione dell’uscita di R2, asserzione del comandoADD all’ALU e abilitazione dell’ingresso Temp23 Abilitazione dell’uscita Temp2 e dell’Ingresso di R3
28
Maurizio Palesi 55
Fase diFase di Execute Execute (3 bus) (3 bus)
R1
R3
A
L
U
ABUS R1;BBUS R2;
R3 ABUS+BBUS
ABUS BBUS CBUS
R2
ADD R3, R1, R2ADD R3, R1, R2
Maurizio Palesi 56
Fase diFase di Execute Execute (2 bus) (2 bus)
ABUS R2; A ABUS;BBUS R1; B BBUS
Ris A+B
BBUS Ris; R3 BBUS
ABUS BBUS
R1
R3
A
L
U
SCL1
R2SCL2
SCS2
A
B
SCSA
SCSB SCOP
Ris
SCL2
SCSR
ADD R3, R1, R2ADD R3, R1, R2
Nota: E’ l’Unità di Controllo che ha ilcompito di pilotare i segnali diabilitazione SCL e SCS
29
Maurizio Palesi 57
Controllo +Controllo + Datapath Datapath
PC
MUX
IndLettura
IndLetturaScritturaDati
LetturaDati
MEM
REG
ISTR
Reg.Let. 1
Reg.Scrittura
ScritturaDati
Let.Dati1
MUX
MUX
Reg.Let. 2 Let.
Dati2
MUX
MUX
ALU
Est.Segno
ShiftS.2 bit
Zero
Ris.
REG
FILE
ShiftS.2 bit
TARGET
MUX
Unità diControllo
RegDestRegWrite
ALUSelBALUSelAALUop
TargetWritePCSource
Mem2RegIRWrite
MemWriteMemRead
IorDPCWritePCWriteCond
Maurizio Palesi 58
L’Unità di ControlloL’Unità di ControlloRealizzazione CablataRealizzazione Microprogrammata
30
Maurizio Palesi 59
Unità di ControlloUnità di ControlloRealizzazione CablataRealizzazione Cablata
Cod.Op.Reg.Istruzione
Registro diStato
UnitàOperativa
ReteCombinatoria
StatoProssimo
Condizioni
Ingressi
Uscite
Unitàdi
Controllo
Maurizio Palesi 60
ProgettazioneSeguendo il classico flusso di sintesi di una retesequenziale
Ingressi: IR, StatoUscite: comandi, stato prossimo
Uso di ROMIngressi (indirizzi alla ROM): IR, stato di UO, stato di UCUscite: comandi, ingressi di eccitazione dei FF di stato
Misura della complessità di UC#stati × #ingressi × #uscite
Unità di ControlloUnità di ControlloRealizzazione CablataRealizzazione Cablata
31
Maurizio Palesi 61
Cod.Op.Reg.Istruzione
µPC
UnitàOperativa
Memoria diMicroProgramma
Condizioni
Unitàdi
Controllo
SelezioneIndirizzo
+
Unità di ControlloUnità di ControlloRealizzazioneRealizzazione Microprogrammata Microprogrammata
Maurizio Palesi 62
Tecnica affermatasi negli anni ‘70UC è una sorta di calcolatore nel calcolatoreLa memoria di controllo contiene le microistruzioniµPC: contatore di microprogramma
Contiene l’indirizzo della prossima microistruzioneAll’inizio della fase di fetch µPC contiene l’indirizzo (I0)del tratto di microprogramma corrispondente al fetchAlla fine della fase di fetch µPC viene aggiornato con ilcontenuto (o ad una opportuna decodifica) di IR inmodo da puntare alla microroutine che effettua le azionirichieste dalla particolare istruzioneAl termine, µPC viene di nuovo caricato con (I0)
Unità di ControlloUnità di ControlloRealizzazioneRealizzazione Microprogrammata Microprogrammata
32
Maurizio Palesi 63
Fino a fine anni ‘60: logica cablata (PDP8, HP 2116)Anni ‘70: microprogrammazione (VAX, Z80, 8086, 68000)
Repertorio di istruzioni molto esteso e variato: CISCIl VAX 11/789 (Digital) e il 370/168 (IBM) avevano oltre 400.000 bitdi memoria di controllo
Dagli anni ‘80 si è tornati alla logica cablataAffermazione delle macchine RISC
Istruttivo è esaminare l’evoluzione dell’architettura Intel: daCISC a (praticamente) RISC
Unità di ControlloUnità di ControlloCablata vs.Cablata vs. Microprogrammata Microprogrammata
Maurizio Palesi 64
CISCCISCCISC: Complex Instruction Set ComputingUn repertorio di istruzioni esteso è preferibileperché:
Istruzioni potenti semplificano la programmazioneRiduce il gap tra linguaggio di macchina e linguaggio dialto livelloL’uso efficiente della memoria (all’epoca era costosa)era la preoccupazione principale:
Meglio avere codici compattiEssendo (allora) la memoria di controllo molto più veloce dellamemoria centrale, portare funzionalità nella prima avrebbemigliorato le prestazioni della macchina
33
Maurizio Palesi 65
RISCRISCMemorie RAM
Molto più veloci delle precedenti a nucleiCache
Riducono ulteriormente i tempi di esecuzioneComportamento dei programmi
L'80% delle istruzioni eseguite corrispondeva al solo 20% delrepertorioConviene investire nella riduzione dei tempi di esecuzione di quel20%, anziché aggiungere raffinate istruzioni, quasi mai usate, maresponsabili dell'allungamento del tempo di ciclo di macchina
Conviene costruire processori molto veloci,necessariamente con repertori semplici, e contaresull’ottimizzazione del compilatoreRISC: Reduced Instruction Set Computing
Maurizio Palesi 66
RISC - Criteri di ProgettazioneRISC - Criteri di ProgettazioneLe istruzioni devono essere semplici
Se l'introduzione di una operazione di macchina facrescere del 10% il periodo di clock, allora essa deveprodurre una riduzione di almeno un 10% del numerototale di cicli eseguiti
Con memorie attualiNon c'è vantaggio a spostare le funzionalità a livello dimicrocodice
Ciò ha solo l'effetto di rendere più difficoltose modifiche ecambiamenti
Molto meglio modificare una libreria di sistema chemodificare una memoria di controllo
34
Maurizio Palesi 67
RISC - Criteri di ProgettazioneRISC - Criteri di ProgettazioneTutte le istruzioni occupano lo stesso spazio di memoria(una parola)Ristretto numero di formati
L'interpretazione del codice avviene attraverso un semplicedecodificatore (una rete AND-OR)La codifica “ordinata” consente accorgimenti per velocizzarel'esecuzione (pipeline), difficilmente applicabili a repertori diistruzioni complesse
La semplificazione del repertorio tende a far aumentare ladimensione del codice
Non è un problema, vista la tendenza alla riduzione dei costi eall'aumento della densità delle memorieDal punto di vista della velocità i guadagni che si ottengono nelsemplificare le istruzioni sono superiori all'effetto negativo delmaggior numero di istruzioni per programma
Maurizio Palesi 68
Capacità di Memoria (DRAM singolo chip)Capacità di Memoria (DRAM singolo chip)
size
Year
1000
10000
100000
1000000
10000000
100000000
1000000000
1970 1975 1980 1985 1990 1995 2000Incremento 1,4 per anno4000X dal 1980
Year Size Cyc. Time1980 64 Kb 250 ns1983 256 Kb 220 ns1986 1 Mb 190 ns1989 4 Mb 165 ns1992 16 Mb 145 ns1996 64 Mb 120 ns1999 256 Mb 100 ns2002 1 Gb 80 ns
Single Chip DRAM
35
Maurizio Palesi 69
RISC - Criteri di ProgettazioneRISC - Criteri di ProgettazioneConclusioni
Progetto di un’architettura che preveda solo operazionitra registri (non registro/memoria o memoria/memoria) eoperazioni di lettura/scrittura in memoria molto semplicicon poche modalità di indirizzamento
Architetture Load/Store
Il compilatore deve fare il miglior uso possibile deiregistri e tenere il più possibile le variabili nei registri
CPU con elevato numero di registri