• Non ci sono risultati.

A hie adeg

N/A
N/A
Protected

Academic year: 2021

Condividi "A hie adeg"

Copied!
60
0
0

Testo completo

(1)

10 - Il Livello di Mi roar hitettura

Ugo DalLago

DipartimentodiS ienzedell'Informazione

UniversitàdegliStudidiBologna

Anno A ademi o2007/2008

(2)
(3)

Comesappiamo, illivellodi mir oar hitetturasi ollo atra

illivellologi o-digitale, he abbiamoappena nitodi trattaree

illivellodell'instru tionset.

Pro ederemonellostudiodel livellodi mi roar hitetturanel

modo seguente:

Introdurremoprimadituttounami roar hitetturadi esempio,

dettaMi -1, he onsisteinunper orsodatieinun'unitàdi

ontrollo(quest'ultima ontenenteilmi ro odi everoe

proprio).

Introdurremopoiunesempiodiinstru tionset,dettoIJVM.

Studieremopoi omes riveremi ro odi eperMi -1 he

interpretileistruzioniIJVM.

Al passosu essivo, er heremodimigliorareMi -1tramite

l'impiegodite ni hequaliilbuerdiprefet heilpipelining.

A enneremopoiadal unete ni heperilmiglioramento delle

prestazioni.

Daremoinneunosguardoadal unemi roar hitetture

(4)

Il per ordo datidi Mi -1 omprendeprima ditutto unaALU, del tutto simileaquella heabbiamo giàvistoparlando del

livellologi o-digitale.

L'ALUavràdueulteriorioutputNeZ heindi anoseil

risultatoènullooppureno.

Visono poi un ertonumero di registri a32bit, tra ui

ri ordiamoPC, SP eMDR.

Leus itedell'ALU ontenentiilrisultatovannoanireininput

ad unregistro a s orrimento, omandato dadue ingressidi

ontrollo

Visarannoinne tre bus:

IlbusesternoA, hepermettedi omuni are onlamemoria

entrale.

IlbusinternoB, hera oglieidatidairegistrielidàinpasto

allaALU.

IlbusinternoC, hepartedalleus itedelregistroa

(5)

H

Shifter control Shifter

ALU

2 N

A B

B bus C bus

6 ALU control

Control signals Memory control registers

Enable onto B bus Write C bus to register To

and from main memory

Z SP

LV

CPP

TOS

OPC PC MDR MAR

MBR

(6)

Latemporizzazionedel per orso dati heabbiamo appena

des rittoè abbastanzasempli e.

Tuttii registriri evono iningressounsegnale proveniente da

unsingolo lo k.

Ogni i lo di lo kè suddivisoin un ertonumero di fasi:

Nellaprimafase,isegnalidi ontrollosipropaganoegiungono

airegistri,allaALUealregistrodis orrimento.

Inunase ondafase, i32bitpresentinelregistroHvannoa

niresulprimoingressodell'ALUei32bitpresentipresentiin

unodeglialtriregistrisipropaganoattraversoilbusB evanno

aniresulse ondoingressodell'ALU.

Nellaterzafase,ilsegnalasipropagaattraversol'ALUe,

su essivamente,attraversloilregistroas orrimento.

Nellaquartaeultimafase,ilrisultatoprodottodalloshiftersi

propagaattraversoil busC evaanireinuno(opiù)registri.

Lafrequenza di lo kdovrà esseresu ientemente bassada

garantire hele quattrofasi possano essereeseguitein un

(7)

Cycle 1 starts here

Shifter output stable

Registers loaded instantaneously from C bus and memory on rising edge of clock

Set up signals to drive data path

ALU and shifter

Drive H and B bus

Propagation from shifter to registers

∆w ∆x ∆y ∆z

Clock cycle 1 Clock cycle 2

MPC available here

New MPC used to

load MIR with next

microinstruction here

(8)

Lamemoria on ui Mi -1interagis eè una memoria a4

Gigabyte. Ogni byte orrisponderàad unindirizzoa 32bit.

Lami roar hitetturaMi -1può interagire onlamemoria

attraversodue porte.

Abbiamo innanzituttouna porta a32 bit.

È ontrollatadairegistriMAR(MemoryAddressRegister)eMDR

(MemoryDataRegister).

IlregistroMAR ontieneindirizziespressiinparole(a32bit).

Sesiinseris e ilvaloreninMAR,sarà ari atainMDRlaparola

dimemoria omprendenteiquattrobytediindirizzo ompreso

tra4ne4n

+

3.

Abbiamo poiuna porta a8 bit.

È ontrollatadairegistriPCeMBR.

IlregistroPC ontieneindirizziespressiinparole.

IlregistroMBRèunregistroa8bitepuòessere opiatosulbus

B induemodi diversi: onesenzasegno. Nelse ondo asosi

(9)

Un operazione diletturao dis ritturain memoria iniziaalla

ne del i lodi lo k,dopo heMAR (o PC)sonostati ari ati.

L'operazione di letturanis ealterminedel i lo di lo k

su essivo aquelloin ui èiniziata.

Idatisarannoutilizzabilinel i loan orasu essivo.

Inaltreparole,un'operazionediletturainiziataallane del

i lok trasmettedati hepossonoessereutilizzatiapartiredal

i lok

+

2.

IregistriMBR eMDR possonoessere lettinei i li in ui si sta

svolgendo unanuova letturadellamemoria.

(10)

Discarded 32-Bit MAR (counts in words)

32-Bit address bus (counts in bytes)

0 0

(11)

Per ontrollareilper orso datidiMi -1 abbiamobisogno di29 segnalisuddivisibiliin 5gruppi:

9segnaliper ontrollarelas ritturadeidatidalbusC sui

registri.

9segnaliper ontrollarel'abilitazionedeiregistrisulbusB.

8segnaliper ontrollareALUeregistroas orrimento.

2segnaliperindi areallamemoriadileggere(o s rivere)

attraversolaportaa32bit.

Unsegnaleperindi areil prelievodallamemoriaattraversola

portaa8bit.

Inrealtà soltanto unodei noveregistripotràessere abilitato

sulbusB e quindiirelativisegnalidi ontrollopotranno

diventare 4.

Le mi roistruzionidi Mi -1 onsistonoin una sequenza di36

bit.

I24bitpiùsigni ativi orrispondonoaisegnalidi ontrollo

appenades ritti.

Irimanenti12bitsonosuddivisiindue ampi hiamati

NEXT_ADDRESSeJAM, hedeterminano omevieneselezionata

(12)

Bits 9 3 8 9 3 4

NEXT_ADDRESS

Addr JAM ALU C Mem B

R E A D

E F C T H J

A M N J M P C

J A M Z

S L L 8

S R A 1

F 0 F 1 E N A

E N B I N V A I N C

H O P C

T O S C P P L V

S P

P C

M D R

M A R

W R T I E

B bus

B bus registers 0 = MDR 1 = PC 2 = MBR 3 = MBRU 4 = SP

5 = LV

6 = CPP

7 = TOS

8 = OPC

9 -15 none

(13)

Lamemoria di ontrolloè una omponente essenzialedi

Mi -1.

Consistedi 512paroleda 36bit.

Puòessere implementata ome:

Unamemoriaasolalettura onindirizzia9bitedatia36bit.

Unarete ombinatoria on9ingressie36us ite.

Lamemoria di ontrollo ne essitadi:

Unregistropergliindirizzi, he hiameremoMPC.

Unregistroperidati, he hiameremoMIR.Inognimomento,

MIR ontienelami roistruizoneinese uzione.

(14)

Oltreaguidare ilper orsodati, ilmi roprogrammadeve

parallelamentedeterminare qualesarà l'istruzionesu essiva.

L'indirizzo dellaprossimami roistruzione vienedeterminato

onsiderando ivaloridi al uni registri,ovvero MIR,MBR, N,e Z

e vieneinserito inMPC

Inparti olare, sipro ede omesegue:

Primaditutto si opianoi9bitdi NEXT_ADDRESSinMPC.

Nelfrattempo,siispezionanoi3bitdel ampoJAMesi

pro edeinmodidiversiase onda deipossibilivaloridiquesti

trebit, hiamatiJMPC,JAMNeJAMZ.

Ilbitpiùsigni ativodi MPCprendeil valoredell'espressione

(

JAMZ

·

Z

) + (

JAMN

·

N

) +

NEXT_ADDRESS

[

8

]

doveNEXT_ADDRESS

[

8

]

èilbitpiùsigni ativotraquelliin NEXT_ADDRESS.

Gli8bitmenosigni atividiMPCprendonoinve eilvalore

degli8bitmenosigni atividiNEXT_ADDRESS(seJMPC

=

0)

oppurelasommalogi adegli8bitmenosigni atividi

NEXT_ADDRESS onilvaloredi MBR(seJMPC

=

1).

(15)

H

Shifter ALU

2 N B bus

6 ALU control

Control signals Memory control signals (rd, wr, fetch)

Enable onto B bus

Write C bus to register Z

C bus SP LV CPP TOS OPC PC MDR MAR

MBR

9

O

512 × 36-Bit control store for holding the microprogram 3

8 4-to-16 Decoder

2 9

4

MPC

MIR

Addr J ALU C M B

1-bit flip–flop High bit

JMPC

JAMN/JAMZ

(16)

Possiamo aquesto puntoritornarea parlaredella

temporizzazionedi Mi -1,tenendo ontodel ruolo svoltodalla

memoriadi ontrolo edai registriMPC e MIR.

Ogni i lo di lo kè suddivisonei seguenti sotto i li:

1. In orrispondenzadelfrontedidis esadel lo k,l'indirizzo

dellamemoriadi ontrollo ontenutoinMPCvienelettoe

ari atoinMIR.

2. IsegnalisipropaganodaMIRversoilper orsodatieilregistro

selezionatoviene ari atosulbusB.

3. LaALUeloshiftersvolgonoleloroazioniegeneranoun

risultatostabile.

4. IlbusC eibus dimemoriadiventanostabili.

5. In orrispondenzadelfrontedisalitadel lo k,iregistrisu ui

insisteilbus C,iip-opNeZeiregistriMBReMDRvengono

ari ati.

6. NonappenaMBR,NeZsonostabili,si ari aMPCinprevisione

(17)

IJVM èuna parti olarema hina astratta, derivatadalla

ma hina virtualeJVM.

Inquesta parte del orso ostruiremo uninterpretedi IJVM

nella mi roar hitetturaMi -1.

Inaltreparole,faremovedere omesiapossibileeseguire

istruzioniIJVMpresentiinmemoria(mi ro)-programmando

opportunamenteMi -1.

Il linguaggiodi IJVM omprendeal uni ostrutti he sono

tipi i deilinguaggi del livelloISAe heanalizzeremoquiperla

prima volta.

Ciriferiamo,inparti olare,allesubroutine(opro edureo

metodi).

Lama hina virtualeIJVM,inoltre,utilizzaunmodellodi

memoriamolto omune,basatosul on etto dista k.

(18)

Lo sta kèun'areadi memoria ui nonsipuò a edere

arbitrariamente(o in modo  asuale).

Piùnellospe i o,lo sta ksi puòleggere os rivere solo ad una estremità.

Proprioperquestosiutilizzailterminesta k, hesigni a

pila.

Lo sta kviene utilizzatoinIJVM perdues opispe i i:

Daunapartepertenertra iadellevariabililo alidiuna

subroutine.

Dall'altrapermemorizzareglioperandiduranteil al olodi

un'espressionearitmeti a.

IdueregistriSPe LVservono proprioad a edereallosta k.

LV ontienel'indirizzodellaprimaparoladimemoriatraquelle

he ontengonolevariabililo alidellasubroutineattualmente

inese uzione.

SP ontieneinve el'indirizzodell'ultimaparola dimemoriatra

(19)

SP LV

a3 a1 (a)

108 100

a2 104

SP

LV

a3 a1 (b) a2 b3 b4

b1 b2

a3 a1 (c) a2 b3 b4

LV c1

SP c2

b1 b2

LV

a3 a1 (d) a2 d3 d4

SP d5

d1

d2

(20)

LV

a3

??

??

SP a2

a1 (a) a2

LV

a3

??

??

a2

?

?

SP a3

a1 (b) a2

LV

a3

??

??

SP a2 + a3

a1 (c) a2

LV

SP a3

a2 + a3

(d)

a2

(21)

Lamemoria diIJVMpuò esserevista ome uninsieme di2 32

byteoppure omeun insiemedi 2 30

paroleda 4byte ias una.

Non sipossonousare indirizziespli itipera edere alla

memoria. O orre faresempreriferimentoad unindirizzo

ontenuto in unregistro.

distinguiamole seguentiareedi memoria:

Laporzione ostantedi memoria, he ontienedati henon

verrannomodi atidurantel'ese uzionedelprogramma. Visi

a edetramiteil registroCPP

Ilblo odelle variabililo ali, he ontienelevariabililo ali

ditutteleinvo azionidimetodiattive. Visi a edetramiteil

registroLV.

Losta kdegli operandi, he noisupponiamoesserepartedel

blo odellevariabililo ali. Visia edetramiteil registroSP.

L'areadeimetodi, he ontieneilprogrammaattualmentein

ese uzione. Visi a edetramiteilregistroPC.

IregistriCPP,LVe SP ontengono riferimentiaparole(di32

(22)

SP

LV

PC

CPP Constant

Pool

Current Operand Stack 3

Current Local Variable Frame 3

Local Variable Frame 2

Local Variable Frame 1

Method

Area

(23)

Esistonoprima ditutto un ertonumero di istruzioniper

inserire nellosta k una parola proveniente davariefonti:

BIPUSH byte

S rive byte in imaallosta k.

DUP

Legge la parola in ima allo

sta k e la inseris ein ima allo

sta k.

ILOAD varnum

S rive una variabile lo ale in

imaallosta k.

LDC_W index

S rive in ima allo sta k una

ostante proveniente dalla

porzione ostantedi memoria.

(24)

Possiamo an hetogliereuna paroladalla imadellosta k:

ISTORE varnum

Preleva una parola dalla ima

dello sta k e la memorizza in

una variabilelo ale.

POP

Rimuove la parola di memoria

hesta in imaallosta k.

(25)

Esistonopoiun ertonumero diistruzioni logi he e

aritmeti he:

IADD

Sostituis eledueparolein ima

allosta k onlalorosomma.

IAND

Sostituis eledueparolein ima

allo sta k on la loro ongiun-

zionelogi a.

IINC varnum onst

Aggiunge onstadunavariabile

lo ale.

IOR

Sostituis eledueparolein ima

allo sta k on la loro disgiun-

zionelogi a.

ISUB

Sostituis eledueparolein ima

(26)

Possiamo poiindividuare un ertonumero di istruzionidi

salto:

GOTO oset

Diramazionein ondizionata.

IFEQ oset

Estrae una parola in ima

allo sta k e eettua una dira-

mazione sevale zero.

IFLT oset

Estrae una parola in ima

allo sta k e eettua una dira-

mazione seha valorenegativo.

IF_ICMPEQ oset

Estrae due parole dalla ima

dello sta k e eettua una dira-

mazione sesono uguali.

(27)

InIJVM esistelapossibilitàdi hiamare un metodo:

INVOKEVIRTUAL disp

Invo a il metodo he si trova

nell'area dei metodi on spiaz-

zamento disp.

IRETURN

Terminaunmetodorestituendo

unvaloreintero, hevieneposto

in imaallosta k.

(28)

Inne, esistono un ertonumero di istruzionidiverse:

NOP

Nonesegue nulla.

SWAP

S ambia le due parole in ima

allosta k.

WIDE

Funge da presso. L'istruzione

su essivahaunindi ea16bit.

(29)

Primadi invo are unmetodo (tramitel'istruzione

INVOKEVIRTUAL) o orre he sullosta k vi siaunriferimento

all'oggetto hiamante,seguito daiparametri attuali.

InIJVMl'oggetto hiamanteèsempreOBJREF.

L'istruzioneINVOKEVIRTUAL in ludeuno spiazzamento

all'interno dellaporzione ostante dimemoria,asua volta

ontenentel'indirizzodel metodo veroe proprio.

Laporzionedell'areadei metodirelativa ad una parti olare

pro edura inizia on32 bit,dopo iquali troviamoil odi e

vero e proprio.

Iprimiquattrobyte odi anoil numerodi parametridel

metodoeladimensionedel blo odelle variabililo ali.

L'eetto diuna istruzioneINVOKEVIRTUALè quellodi riservare

nuovo spazio perlevariabililo ali, salvandoan heil ontenuto

di LVe PCalmomentodella hiamata. IregistriSP eLV

sarannomodi ati.

Similarmente,l'istruzioneIRETURN liberaspazio sullosta k,

opiando opportunamenteil valoredi ritorno. IregistriSPe LV

(30)

Pushed parameters

Caller's local variable frame

Stack before INVOKEVIRTUAL

Stack after INVOKEVIRTUAL

SP

SP

LV

LV

(a) (b)

Stack base after INVOKEVIRTUAL

Stack base before INVOKEVIRTUAL Parameter 3

Parameter 2 Parameter 1 OBJREF Previous LV

Previous PC Previous PC

Caller's local variables Parameter 2 Parameter 1 Link ptr

Caller's local variables Space for caller's local

variables

Parameter 2 Parameter 1 Link ptr Caller's LV Caller's PC

Previous LV

Parameter 3

Parameter 2

Parameter 1

Link ptr

(31)

Caller's local variable frame

Stack before IRETURN

Stack after IRETURN SP

LV SP

LV

(a) (b)

Stack base before IRETURN

Stack base after IRETURN Parameter 3

Parameter 2 Parameter 1 Link ptr Previous LV

Previous PC Previous PC

Caller's local variables

Caller's local variables

Parameter 2 Parameter 1 Previous LV Return value

Previous PC

Link ptr

Caller's

local

variables

Parameter 2

Parameter 1

Link ptr

Previous LV

Return value

(32)

Aquesto punto, possiamo des riverelemi roistruzionidi

Mi -1 he permettono di interpretare IJVM.

Inteoria,potremmolimitar iadelen are le512 parole a36 bit

he ostituis onoil ontenuto della memoria di ontrollo.

Èperòs onveniente denotare lemi roistruizionitramite mere sequenze dibit.

Inparti olare,siperdemoltointerminidiintuizione.

Des riveremo lemi roistruzionitramite unlinguaggio hiamato MAL(Mi ro AssemblyLanguage).

Ognimi roistruzione orrispondeadunarigadi odi es ritta

inMAL.

L'istruzionefondamentalediMAL èl'assegnamento,laquale

des riveinmodo ompattoun'operazionearitmeti o-logi aei

registri oinvolti.

EsistonopoialtreistruzionidiMAL hepermettonodiindi are

l'iniziodiunalettura(odiunas rittura)dalla(oversola)

memoria.

Inne,esistonol'istruzionegoto, hepermettedi atturarei

(33)

Tramite unassegnamentopossiamo indi areinmodo

ompatto un'operazione aritmeti o-logi ae irelativiregistri.

Sempli iesempisonoMDR

=

SPoppure MDR

=

H

+

SP.

Inogni mi roistruzione,ovviamente,può esserepresentealpiù

unassegnamento.

Solo al uni assegnamentisonole iti. Inparti olare,possono

essereutilizzatisolo gliassegnamenti he possano essere

realizzati tramiteilper orso dati.

Peresempio,l'assegnamentoMDR

=

SP

+

MDRnonèvalido,

per héunodeidueoperandidi un'addizionedeveessere

sempreilregistroH.

Èpossibileassegnare ilrisultatodiun'operazione logi ao aritmeti a apiùregistri.

Peresempio,l'assegnamentoSP

=

MDR

=

SP

+

1è

perfettamentele ito.

(34)

Il fatto hein orrispondenzadi una mi roistruzioneinizi una

lettura(o una s rittura)dalla(o versola)memoriaviene

indi ata inMAL on rde wr(perlaportaa 32bit) oppure

onfet h (perlaporta a8bit).

Ogni mi roistruzionedeve spe i areinmodo espli ito l'indirizzodellasu essiva mi roistruzione. In MAL iò può

avvenire invarimodi:

Innanzitutto onunsaltoin odizionatogoto label dovelabel

èl'indirizzo(simboli oonumeri o)dellasu essivaistruzione.

Tramiteunsalto ondizionatoalvalorediNoppuredi Z,per

esempio

if

(

N

)

goto label1 else goto label2

.

Intal asoo orre helabel1 elabel2 dieris anosoloperil

valoredelbitpiùsigni ativo. Stiamoimpli itamentesettando

a1ilbitJAMZoilbitJAMN.

Tramiteunsaltoin ondizionatonellaforma

goto

(

MBR OR valore

)

. Stiamoimpli itamentesettando a1il

(35)

Il mi roprogramma Mi -1 heinterpreta leistruzioni IJVMè omposto da 112mi roistruzioni.

Nonanalizzeremol'interpretazionedi tutteleistruzioniIJVM,

on entrando isual uni asitipi i.

Sullibrotrovateildettagliorelativoatuttelealtreistruzioni.

IregistriCPP,LVe SP ontengono, rispettivamente,puntatori

alla porzione ostantedi memoria,alblo odellevariabili

lo aliealla imadellosta k.

All'inizioealla ne dell'interpretazione diogni istruzione

IJVM,ilregistroTOS ontiene ilvalore puntatodaSP.

Il registroOPC èunregistrotemporaneo.

Il mi roprogramma Mi -1 heinterpreta leistruzioni IJVM

ontiene una mi roistruzione he vieneeseguitaappena dopo

he il odi e operativo dell'istruzioneIJVM su essivaè stato

ari atonelregistroMBR:

Main1 PC

=

PC

+

1

;

fet h

;

goto

(

MBR

)

(36)

iadd1 MAR

=

SP

=

SP

1

;

rd

iadd2 H

=

TOS

iadd3 MDR

=

TOS

=

MDR

+

H

;

wr

;

goto Main1

(37)

dup1 SP

=

SP

+

1

dup2 MDR

=

TOS

;

wr

;

goto Main1

(38)

bipush1 SP

=

MAR

=

SP

+

1

bipush2 PC

=

PC

+

1

;

fet h

bipush3 MDR

=

TOS

=

MBR

;

wr

;

goto Main1

(39)

iload1 H

=

LV

iload2 MAR

=

MBRU

+

H

;

rd

iload3 MAR

=

SP

=

SP

+

1

iload4 PC

=

PC

+

1

;

fet h

;

wr

iload5 TOS

=

MDR

;

goto Main1

(40)

wide1 PC

=

PC

+

1

;

fet h

wide2 goto

(

MBR OR 0x100

)

wide_iload1 PC

=

PC

+

1

;

fet h

wide_iload2 H

=

MBRU

<<

8

wide_iload3 H

=

MBRU OR H

wide_iload4 MAR

=

LV

+

H

;

rd

;

goto iload3

(41)

INDEX BYTE 1

INDEX BYTE 2 WIDE

(0xC4)

ILOAD (0x15) ILOAD

(0x15) INDEX

(a) (b)

(42)

goto1 OPC

=

PC

1

goto2 PC

=

PC

+

1

;

fet h

goto3 H

=

MBR

<<

8

goto4 H

=

MBRU OR H

goto5 PC

=

OPC

+

H

;

fet h

goto6 goto Main1

(43)

Memory

1 Byte n + 3

n + 2 n + 1 n

OFFSET BYTE 2 OFFSET BYTE 1 GOTO (0xA7)

OFFSET BYTE 2 OFFSET BYTE 1 GOTO (0xA7)

OFFSET BYTE 2 OFFSET BYTE 1 GOTO (0xA7)

OFFSET BYTE 2 OFFSET BYTE 1 GOTO (0xA7)

OFFSET BYTE 2 OFFSET BYTE 1 GOTO (0xA7)

Registers PC

OPC

MBR H

n

n n n

n + 1 n + 1 n + 2 n + 2

OFFSET BYTE 1 OFFSET BYTE 2

OFFSET BYTE 1 OFFSET BYTE 1

0xA7

OFFSET 1 << 8

(a) (b) (c) (d) (e)

(44)

it1 MAR

=

SP

=

SP

1

;

rd

it2 OPC

=

TOS

it3 TOS

=

MDR

it4 if

(

N

)

goto T else goto F.

T OPC

=

PC

+

1

;

goto goto2

F PC

=

PC

+

1

F1 PC

=

PC

+

1

;

fet h

F2 goto Main1

(45)

if_i mpeq1 MAR

=

SP

=

SP

1

;

rd

if_i mpeq2 MAR

=

SP

=

SP

1

if_i mpeq3 H

=

MDR

;

rd

if_i mpeq4 OPC

=

TOS

if_i mpeq5 TOS

=

MDR.

if_i mpeq6 Z

=

OPC

H

;

if

(

Z

)

goto T else goto F .

T OPC

=

PC

+

1

;

goto goto2

F PC

=

PC

+

1

F1 PC

=

PC

+

1

;

fet h

F2 goto Main1

(46)

ireturn1 MAR

=

SP

=

LV

;

rd

ireturn2

ireturn3 LV

=

MAR

=

MDR

;

rd

ireturn4 MAR

=

LV

+

1

ireturn5 PC

=

MDR

;

rd

;

fet h.

ireturn6 MAR

=

SP.

ireturn7 LV

=

MDR.

ireturn8 MDR

=

TOS

;

wr

;

goto Main1.

(47)

L'impiegodi nuove te nologienel livello deidispositiviha

prodotto unmiglioramentonotveoledelleprestazioni.

Noi siamoperòinteressati aimiglioramentidelleprestazioni

indotti da ambiamentinel livellodella ar hitettura.

Una voltas elta una te nologiaperi ir uitie ssatoun linguaggioallivelloISA,esistonoprin ipalmentetreappro i

tramiteiqualiè possibileaumentarelavelo itàdiese uizione:

Ridurrelalunghezza delper orso, ossiailnumerodi i lidi

lo kne essaripereseguireun'istruzione.

Sempli are l'organizzazioneinmodo heil i lodi lo k

possaesserepiùbreve.

Sovrapporrel'ese uzionedi piùistruzioni,peresempio

tramiteme anismidipipelining.

Lariduzionedella lunghezzadel per orsopuòessereeettuata

tramite l'impiegodiunità hardware spe ializzate.

Lasovrapposizione dell'ese uzionediistruzioneè di granlunga

late ni apiùe a e traquelleelen ate.

Adunaumento dellavelo itàspesso orrisponde unaumento

(48)

Fondamentalmente,sonotrele te ni he piùimportanti tra

quelle hepermettonodi ridurre lalunghezzadel per orso di

ese uzione.

Primadi tutto,sipuòtentaredi sovrapporre l'ese uzione

del i lo prin ipale (ovverodella mi roistruzioneMain1)

all'ese uzione diuna delleultimemi roistruzionirelative ad

ogni istruzioneIJVM.

Intaluni asièpossibileridurreilnumerodi mi roistruzioni

ne essarie.

Si puòpoipassare ad un'ar hitettura a tre bus.

An heinquesto aso, èpossibile heil numerodi

mi roistruzionine essariediminuis a.

Inmolteo asioni,infatti,o orreun'istruzioneaggiuntivaper

spostareil ontenutodiun registronelregistroH.

C'è inne lapossibilitàdiutilizzareun'unità di prelievo delle istruzioni(o IFU) he memorizzilesu essive istruzioni da

eseguirein unbuer.

Inquestomodopossiamootteneremiglioramentinettinelle

(49)

Nell'interpretazionedi un'istruzioneIJVM,laALUviene

utilizzata, oltre heperi al oliveri epropri,an heperil

prelievodell'istruzione.

Perpotersovrapporre il i lo prin ipaleè ne essarioliberarela ALUda al uni diquesti ompiti.

Sipotrebbeintrodurreun'altraALU,an hese nonsonoin

realtàne essarietuttelefunzionalitàdiunaALU.

Èpossibileintegrare fa ilmentein Mi -1un'unitàhardware he

abbia ilsolo ompitodi in rementareilregistroPCin modo

indipendente,prelevandodallamemoriale istruzionie irelativi

operandi. Taleunità è hiamataIFU(o Instru tion Fet h

Unit).

Il registroMBR èrimpiazzato dadue registriMBR1 (a8 bit)e

MBR2(a 16 bit), hevengono alimentatida unpi olobuera

6 byte.

Soltantoil buerinteragirà onlamemoria.

OltrealregistroPCesisterà an heunregistroIMAR.

Soltantoil registroIMARinteragirà onlamemoriaenonsarà

(50)

MBR2

Shift register From memory

MBR1 +1

Write PC

2 low-order bits

B bus C bus

IMAR

PC

+1, 2

(51)

L'ar hitetturaatrebus ostruita apartire da Mi -1e

estendendola onuna IFUè hiamataMi -2.

InMi -2 nono orrepreo uparsidi modi arePCperfarlo

puntare all'istruzionesu essiva.

OgniqualvoltaunodeiregistriMBR1oppureMBR2sonoletti,la

IFUaggiornaPCautomati amenteeprovvedea re uperarele

paroledimemoriane essarie.

Mi -2permettedi risparmiaremolti i li di lo k,an heseil

miglioramentoalivelloprestazionale nonè lostessopertutte

le istruzioni.

LDC_Wpassadanoveatremi roistruzioni.

SWAPpassainve esoltantodaottoa seimi roistruzioni.

Il prezzoda pagare onsistenei nuovi omponentihardwaredi

ui abbiamo bisogno(inparti olare,l'IFU).

(52)

IFU

Word fetched

Word fetched

Word fetched

0 MBR1

MBR2 MBR2

MBR2 MBR2

MBR2

Transitions

MBR1: Occurs when MBR1 is read MBR2: Occurs when MBR2 is read

Word fetched: Occurs when a memory word is read and 4 bytes are put into the shift register 1 MBR1

2 MBR1

3 MBR1

4 MBR1

5 MBR1

6

(53)

H

Shifter

ALU N

B bus C bus

ALU 6 control Control signals

Memory control registers

Enable onto B bus Write C bus to register

To and from main memory

Z MBR2

SP

LV

CPP TOS PC MDR MAR

MBR

OPC Instruction

fetch unit (IFU)

A bus

(54)

Un altrate ni apermigliorareleprestazionidella nostra

mi roar hitetturadi esempio, onsiste nell'introdurreun erto

livellodiparallelismo.

Si potrebbe aumentarelafrequenzadi lo k.

Sappiamo,però, heil periododi lo knonpuòessereminore

deltempone essarioaisegnaliperpropagarsilungoilper orso

dati.

Il i lo delper orsodatiè omposto da tre omponenti prin ipali:

Iltempone essarioaportareiregistriselezionatisuibusAeB.

IltempoimpiegatodallaALUedalloshifterper ompiereil

lorolavoro.

Iltempone essarioperriportareirisultati neiregistri.

Introdu endotrelat h nelmezzo dei busA, B e C

otteniamo iduevantaggi seguenti:

Primaditutto,possiamoa ellerare il lo k.

Possiamopoi(potenzialmente)utilizzaretuttele parti del

(55)

H

A latch

C latch B latch

Shifter

ALU N

B bus C bus

ALU 6 control Control signals

Memory control registers

Enable onto B bus Write C bus to register

To and from main memory

Z MBR2

SP

LV

CPP TOS PC MDR MAR

MBR1

OPC Instruction

fetch unit (IFU)

A bus

(56)

Adogni i lo di lo k,vi sonopotenzialmentetre

mi roistruzioniattive:

Laprima omandalapartedi per orsodati ompresatrai

registrieilat hAandB.

Lase onda omandalapartedi per orsodati ompresatrai

lat hAeB eillat hC.

Laterza omandalapartedi per orso dati ompresatrail

lat hC eiregistri.

Inal une situazioni,però, questolivellodiparallelismononè

possibile,per hé unadellemi roistuzionipotrebbedipendere

dal risultatodi una dellemi roistruzionipre edenti.

Siparlainquesto asodidipendenzaRAW odipendenza

eettiva.

(57)

1

Instr uction

Cycle 1 Cycle 2

Time

Cycle 3 Cycle 4

IFU

ALU Reg

Shifter

C A B

IFU

ALU Reg

Shifter

C A B

IFU

ALU Reg

Shifter

C A B

IFU

ALU Reg

Shifter

C A B

IFU

ALU Reg

Shifter

C A B

IFU

ALU Reg

Shifter

C A B

IFU

ALU Reg

Shifter

C A B

IFU

ALU Reg

Shifter

C A B

IFU

ALU Reg

Shifter

C A B

IFU

ALU Reg

Shifter

C A B

2 IFU

ALU Reg

Shifter

C A B

IFU

ALU Reg

Shifter

C A B

IFU

ALU Reg

Shifter

C A B

3 IFU

ALU Reg

Shifter

C A B

IFU

ALU Reg

Shifter

C A B

4 IFU

ALU Reg

Shifter

C A B

(58)

Possiamo estenderelapipelinea quattrostadidi Mi -3ad una

pipelineasettestadi,ottendendoquindi unami roar hitettura

hiamataMi -4.

InMi -4, laIFU alimentaunanuova omponente, hiamata

unità di de odi a,dotata diuna ROMindi izzata

attraverso il odi eoperativoIJVM.

Perogni odi eoperativo,laROMtienetra iadelnumero

deglioperandiediun indi eadun'altraROM, hiamataROM

delle mi ro-operazioni.

L'unitàdi de odi a inviaall'unità di a odamentol'indi e

relativoalla ROMdellemi ro-operazioni heha trovatonella

sua tabella.

L'unitàdia odamento er a nellaROMdelle

mi ro-operazionilami ro-operazione orrispondenteela opia

inuna odainterna,assiemeatuttelemi ro-operazioni

su essive

Inquestomodo, lasequenzadiistruzioniIJVMinmemoria

viene onvertitain unasequenzadimi ro-operazioni, he

(59)

ALU B C

Shifter A Registers

Queueing unit

IADD ISUB ILOAD IFLT Micro-operation ROM

Instruction fetch unit From

memory

IJVM length

Micro-op ROM index

Decoding unit

Queue of pending micro-ops Final

Goto

1 2 3

4

5 6

7 To/from memory

ALU C M A B

ALU C M A B

ALU C M A B

ALU C M A B Drives stage 4

Drives stage 5

Drives stage 6

Drives stage 7

MIR1

MIR2

MIR4

MIR3

(60)

1

IFU

2

Decoder 3

Queue

4

Operands 5

Exec

6

Write back

7

Memory

Riferimenti

Documenti correlati

◮ Sappiamo he ogni ella di una mappa di Karnaugh orrisponde ad un assegnamento di valore di verità alle variabili

essere trasformata in una rete equivalente ontenente solo la.. porta NAND o, in alternativa, ontenente solo la

I dati sono inseriti nella memoria durante la fabbri

Nella sezione Stato futuro sono elen ati i valori dello stato.. futuro per ogni ombinazione dei valori dello stato

- ad adeguare e/o ridurre le aree occupate in ampliamento, a semplice richiesta degli organi di vigilanza e controllo, prestando fin da subito acquiescenza alle determinazioni

• E’ possibile iscriversi ad uno dei Corsi di studio post-laurea dell’Università degli Studi di Teramo esclusivamente on-line seguendo la procedura

Nel caso in cui le domande superino il numero massimo dei partecipanti stabilito, e qualora il Consiglio Scientifico del Master ritenga di voler ampliare il numero

 E’ possibile iscriversi ad uno dei Corsi di studio post-laurea dell’Università degli Studi di Teramo esclusivamente on-line seguendo la procedura