introduzione architettura dei calcolatori di calcolatori... · sistema di elaborazione un sistema...

35
1 Maurizio Palesi 1 Introduzione Introduzione all’Architettura dei all’Architettura dei Calcolatori Elettronici Calcolatori Elettronici Maurizio Palesi Maurizio Palesi 2 Sistema di Elaborazione Sistema di Elaborazione Un Sistema di Elaborazione (SE) è una Macchina (M) capace di eseguire Programmi (P) scritti in un opportuno Linguaggio (L) M L P(L) Dati Mondo Esterno

Upload: donhan

Post on 25-Feb-2019

217 views

Category:

Documents


0 download

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