12
Departamento de Engenharia Electrotécnica e de Computadores MEEC - Arquitectura de Computadores 2009/2010 Instituto Superior Técnico - Universidade Técnica de Lisboa Nome: Nº:____________ 1 de 12 ARQUITECTURA DE COMPUTADORES 1º EXAME Ano Lectivo: 2009/2010 Data: 17 de Junho de 2010 Duração: 2h30 INFORMAÇÕES GERAIS 1. Identifique todas as folhas do enunciado com nome e nº. 2. Mantenha na secretária apenas a sua identificação e uma caneta (azul ou preta), não são aceites testes ou exames realizados a lápis. 3. Responda no espaço delimitado a seguir a cada questão. 4. Utilize o verso da página, onde se encontra a pergunta, para rascunho ou para espaço adicional. 5. A não entrega do teste tem o mesmo significado da não comparência ao teste. 6. Justifique todas as respostas. LISTA DE INSTRUÇÕES ASSEMBLY (P3) Instrução Flags Afectadas Instrução Flags Afectadas ADD op1, op2 Flags: ZCNO ADDC op1, op2 Flags: ZCNO AND op1, op2 Flags: ZN BR <deslocamento> Flags: ---- BR.cond <deslocamento> Flags: ---- CALL <endereço> Flags: ---- CALL.cond <endereço> Flags: ---- CLC Flags: C CMC Flags: C CMP op1, op2 Flags: ZCNO COM op Flags: ZN DEC op Flags: ZCNO DIV op1, op2 Flags: ZCNO DSI Flags: E ENI Flags: E INC op Flags: ZCNO INT const Flags: ZCNOE JMP <endereço> Flags: ---- JMP.cond <endereço> Flags: ---- MOV op1, op2 Flags: ---- MUL op1, op2 Flags: ZCNO MVBH op1, op2 Flags: ---- MVBL op1, op2 Flags: ---- NEG op Flags: ZCNO NOP Flags: ---- OR op1, op2 Flags: ZN POP op Flags: ---- PUSH op Flags: ---- RET Flags: ---- RETN const Flags: ---- ROL op, const Flags: ZCN ROLC op, const Flags: ZCN ROR op, const Flags: ZCN RORC op, const Flags: ZCN RTI Flags: EZCNO SHL op, const Flags: ZCN SHLA op, const Flags: ZCNO SHR op, const Flags: ZCN SHRA op, const Flags: ZCNO STC Flags: C SUB op1, op2 Flags: ZCNO SUBB op1, op2 Flags: ZCNO TEST op1, op2 Flags: ZN XCH op1, op2 Flags: ---- XOR op1, op2 Flags: ZN Flags Condições (V/F) Transporte - C Zero – Z Sinal – N Interrupção – E Excesso - O Positivo - P Transporte– C/NC Zero – Z/NZ Sinal – N/NN Interrupção – I/NI Excesso - O/NO Positivo - P/NP

1 exameac0910vf sol1

Embed Size (px)

Citation preview

Page 1: 1 exameac0910vf sol1

Departamento de Engenharia Electrotécnica e de Computadores MEEC - Arquitectura de Computadores 2009/2010

Instituto Superior Técnico - Universidade Técnica de Lisboa

Nome: Nº:____________

1 de 12

ARQUITECTURA DE COMPUTADORES

1º EXAME

Ano Lectivo: 2009/2010 Data: 17 de Junho de 2010

Duração: 2h30

INFORMAÇÕES GERAIS

1. Identifique todas as folhas do enunciado com nome e nº.

2. Mantenha na secretária apenas a sua identificação e uma caneta (azul ou preta), não são aceites testes

ou exames realizados a lápis.

3. Responda no espaço delimitado a seguir a cada questão.

4. Utilize o verso da página, onde se encontra a pergunta, para rascunho ou para espaço adicional.

5. A não entrega do teste tem o mesmo significado da não comparência ao teste.

6. Justifique todas as respostas.

LISTA DE INSTRUÇÕES ASSEMBLY (P3)

Instrução Flags Afectadas Instrução Flags Afectadas ADD op1, op2 Flags: ZCNO

ADDC op1, op2 Flags: ZCNO

AND op1, op2 Flags: ZN

BR <deslocamento> Flags: ----

BR.cond <deslocamento> Flags: ----

CALL <endereço> Flags: ----

CALL.cond <endereço> Flags: ----

CLC Flags: C

CMC Flags: C

CMP op1, op2 Flags: ZCNO

COM op Flags: ZN

DEC op Flags: ZCNO

DIV op1, op2 Flags: ZCNO

DSI Flags: E

ENI Flags: E

INC op Flags: ZCNO

INT const Flags: ZCNOE

JMP <endereço> Flags: ----

JMP.cond <endereço> Flags: ----

MOV op1, op2 Flags: ----

MUL op1, op2 Flags: ZCNO

MVBH op1, op2 Flags: ----

MVBL op1, op2 Flags: ----

NEG op Flags: ZCNO

NOP Flags: ----

OR op1, op2 Flags: ZN

POP op Flags: ----

PUSH op Flags: ----

RET Flags: ----

RETN const Flags: ----

ROL op, const Flags: ZCN

ROLC op, const Flags: ZCN

ROR op, const Flags: ZCN

RORC op, const Flags: ZCN

RTI Flags: EZCNO

SHL op, const Flags: ZCN

SHLA op, const Flags: ZCNO

SHR op, const Flags: ZCN

SHRA op, const Flags: ZCNO

STC Flags: C

SUB op1, op2 Flags: ZCNO

SUBB op1, op2 Flags: ZCNO

TEST op1, op2 Flags: ZN

XCH op1, op2 Flags: ----

XOR op1, op2 Flags: ZN

Flags Condições (V/F) Transporte - C Zero – Z

Sinal – N Interrupção – E

Excesso - O Positivo - P

Transporte– C/NC Zero – Z/NZ

Sinal – N/NN Interrupção – I/NI

Excesso - O/NO Positivo - P/NP

Page 2: 1 exameac0910vf sol1

2 de 12

I – Arquitectura de Ciclo Único

UC UP

Memória

Dados

DATA_OUT

DATA_IN End.

Unidade

Funcional

A B

FSUF

Flags

Const.

Função

Bits de

Estado

Unidade deArmazenamento

A

AA BA

DA

DATA

FSUA

Sel A Sel B

Sel D

Escrita de

Registos

B

Endereço

BUS de Dados

Memória de

Instruções

Controlo de Salto

Descodificador de

Instruções

Actualização PC

PL,JB,BC

SelD, SelA, SelB, FSUA,

MA,MB,FSUF,MW,

MWMUX A

0 1MA

Offset

Zero Fill

Bits de

Estado

DATA_OUT

MB

MUX B

0 1

MD

MUX D

0 1

MD,

DATA_IN

FWFW

FW

Tabela I: Micro-operações na UF e UA

DA, AA, BA FSUF FSUA Função Cod. Função Cod. Função Cod.

R0 00 A 000 Não Escreve 000

R1 01 A + B 001 (RD) = 0 001

R2 10 A - B 010 (RD) = DATA 010

R3 11 B + 1 011 (R1) (R2), (R2) (R1) 011

-B 100 (R1) (R3), (R3) (R1) 100

A – 1 101 (R2) (R3), (R3) (R2) 101

SR (B) 110 (R3) (R0), (R2) (R0), (R1) (R0) 110

NAND (A,B) 111 Não utilizado 111

Formatos das Instruções: (16 bits)

Endereçamento por Registo

OpCode DR SA SB

Endereçamento Imediato

OpCode DR SB Const*

Endereçamento Relativo

OpCode Offset

*Constante de 5 bits

Registos da UC:

PC – Registo de 16 bits

Flags: As flags são guardadas num registo na UF.

FW – Selecção das flags para escrita no registo

00 Não escreve 01 Guarda Z

10 Guarda N e Z

11 Guarda N, Z, C e V

Sinais de Controlo para a UC:

PL – (0- Incremento ou 1- Carregamento

Paralelo do PC)

JB – (0- Salto Incondicional ou 1-Salto Condicional)

BC – Selecção da Condição de Salto

00 – Salta se Z (Zero), 01 – Salta se NZ (No Zero),

10 – Salta se C (Carry),

11 – Salta se V (Overflow)

Sinais de Controlo para a Memória de Dados:

MW – (0- Não Escreve ou 1- Escreve) Escrita Síncrona e Leitura Assíncrona

Unidade de Armazenamento:

Contém 4 registos de 16 bits e implementa as

micro-operações descritas por FSUA (Tabela I).

Unidade Funcional:

Implementa as micro-operações descritas por

FSUF (Tabela I).

Tabela II: Instruções a Implementar OpCode Operação Descrição Bits de Estado

00000 INITO R0 (R3) (R0), (R2) (R0), (R1) (R0) não são alterados

00001 LDI DR, Const (DR) Const N, Z

00010 MOV DR, SA (DR) (SA) N, Z

00011 INC DR, SB (DR) (SB) + 1 N, Z, C, V 00100 DEC DR, SA (DR) (SA) - 1 N, Z, C, V

00101 ADD DR, SA, SB (DR) (SA) + (SB) N, Z, C, V 00110 SUB DR, SA, SB (DR) (SA) - (SB) N, Z, C, V 00111 LD DR, SA (DR) M[(SA)] não são alterados 01000 ST SA, SB M[(SA)] (SB) não são alterados

01001 NEG DR, SB (DR) - (SB) N, Z 01010 NAND DR, SA, SB (DR) (SA) NAND (SB) Z

01011 SR DR, SB (DR) SR (SB) Z 01100 INIT DR (DR) 0 não são alterados 01101 JMP Offset (PC) (PC) + Offset não são alterados 01110 BZ Offset Z: (PC) (PC) + Offset não são alterados 01111 BNZ Offset NZ: (PC) (PC) + Offset não são alterados 10000 SWAP12 (R1) (R2), (R2) (R1) não são alterados

10001 SWAP13 (R1) (R3), (R3) (R1) não são alterados

10010 SWAP23 (R2) (R3), (R3) (R2) não são alterados

Page 3: 1 exameac0910vf sol1

Departamento de Engenharia Electrotécnica e de Computadores MEEC - Arquitectura de Computadores 2009/2010

Instituto Superior Técnico - Universidade Técnica de Lisboa

Nome: Nº:____________

3 de 12

1) [1,5 Val] Considere a Unidade de Armazenamento da Arquitectura de Ciclo Único. Determine para o caso do registo R1 a

função que deve ser aplicada à entrada de controlo (Load: 0 – não escreve, 1 – escreve), considerando que o registo R1 é

seleccionado pela saída SD1 de um descodificador em conjugação com a entrada FSUA.

FSUA LOAD FSUA0 SD0\FSUA2 FSUA1 "00" "01" "11" "10"

000 0 "00" 0 0 0 1

001 SD1 "01" 0 1 0 1

010 SD1 "11" 1 1 - 0

011 1 "10" 0 1 - 0

100 1

101 0

110 0

111 -

2) [1,5 Val] Considere a Unidade Funcional da Arquitectura de Ciclo Único. Admita que as operações aritméticas descritas

na tabela e seleccionadas por FSUF são implementadas com recurso a um somador completo de 16 bits e a alguma lógica

combinatória adicional para transformar os operandos A e B nas entradas do somador. Determine o bloco de lógica

necessário para transformar o bit menos significativo (B0) do operando B na respectiva entrada do somador completo (Y0).

FSUF Y0 FSUF0 A0\FSUF2 FSUF1 "00" "01" "11" "10"

000 0 "00" 0 0 - 0

001 B0 "01" 0 1 - 1

010 B0 "11" 1 1 - 1

011 B0 "10" 0 0 - 1

100 B0

101 1

110 -

111 -

3) [1 Val] Considere a Unidade de Controlo da Arquitectura de Ciclo Único. Admita que pretende implementar o

descodificador de instruções com recurso a uma memória. Determine a dimensão mínima da memória indicando a

estrutura de cada palavra de memória em função dos sinais de controlo e descreva o conteúdo das 2 primeiras palavras de

memória.

32 palavras (porque temos 19 instruções para descodificar) de 16 bits (porque temos 16 bits de sinais de controlo)

OPCODE PL JB BC FSUA MA MB FSUF FW MD MW

INITO R0 00000 0 - - - 1 1 0 - - - - - 0 0 - 0

LDI DR, Const 00001 0 - - - 0 1 0 0 - 0 0 0 1 0 0 0

onde aparecem indiferenças a memória pode ser programada com 0s ou 1s.

Page 4: 1 exameac0910vf sol1

4 de 12

II – Arquitectura de Ciclo Múltiplo

UC UP

Memória

Dados

DATA_OUT

DATA_IN End.

Unidade

Funcional

A B

FSUF

Flags

Const

Função

Flags

Unidade deArmazenamento

A

AA BA

DA

DATA

RW

TD!!SA TD||SB

TD||DR RW

B

Endereço

BUS de Dados

MW

Offset

DATA_OUT

MB

MUX B

0 1

MD

MUX D

0 1

DATA_IN/INSTR

Instruções

e

MM

MUX M

0 1

MUXC

0 1MC

Memória de

Controlo

IR

OpCode DR SA SB

CAR

PCPI

PL

Extensão

Sinal

Zero Fill

Sinais de

Controlo

NA

IL

MUX SMS

Condição

DATA_IN/

INSTR

0 1 7

8

Formatos das Instruções: (16 bits)

OpCode DR SA SB

Unidade de Armazenamento:

8 registos de uso geral (16 bits)

3 registos auxiliaries (16 bits) para uso ao nível da

microprogramação.

Registos de Controlo:

PC – Registo de 16 bits

CAR – Registo de 8 bits

IR – Registo de 16 bits

Flags:

Aplicadas directamente às entradas do

MUX S.

Unidade Funcional:

Implementa as micro-operações descritas por FS (Tabela IV).

Tabela III: Sinais de Controlo para a UC MS MC IL PI PL

Operação Símbolo Código Selec. Símbolo Oper. Símbolo Oper. Símbolo Oper. Símbolo Código

CAR+1 CNT 000 NA NXA No Load NLI No Load NLP No Load NLP 0

Load CAR NXT 001 OpCode OPC Load In. LDI Inc. PC INP Load PC LDP 1

if C Load CAR,

else CAR+1

BC 010

if V Load CAR,

else CAR+1

BV 011

if Z Load CAR,

else CAR+1

BZ 100

if N Load CAR,

else CAR+1

BN 101

if NC Load CAR,

else CAR+1

BNC 110

if NZ Load CAR,

else CAR+1

BNZ 111

Tabela IV: Sinais de Controlo para a UP e Memória TD TA TB FS MB MD RW MM MW

Selec. Selec. Selec. Código Oper. Código Selec. Selec. Oper. Selec. Oper. Código

R[DR] R[SA] R[SB] 00 F = A 00000 Registo UF Não Escreve Endereço Não Escreve 0

R8 R8 R8 01 F = A+1 00001 Constante Data In Escreve PC Escreve 1

R9 R9 R9 10 F = A+B 00010

R10 R10 R10 11 F = A+B+1 00011

F = A-B 00100

F = A-B-1 00101

F = A-1 00110

F = -A 00111

F = A and B 01000

F = A or B 01010

F = A xor B 01100

F = not A 01110

F = B 10000

F = sr B 10100

F = sl B 11000

Page 5: 1 exameac0910vf sol1

Departamento de Engenharia Electrotécnica e de Computadores MEEC - Arquitectura de Computadores 2009/2010

Instituto Superior Técnico - Universidade Técnica de Lisboa

Nome: Nº:____________

5 de 12

4) [1 Val] Considere a Arquitectura de Ciclo Múltiplo e o fluxograma que implementa a instrução XYZ DR, SA, SB.

Descreva sucintamente qual a operação realizada por esta instrução e determine o ganho de eficiência da solução

microprogramada vs a solução programada na mesma arquitectura, isto é, considerando o fluxograma apresentado excepto

as microinstruções IF e EX0.

?0000110IR

1

0

XYZ1 00000110

EX0 11000001

IF 11000000

PCMIR 1 PCPC

N ?

R[SA] - R[SB]

XYZ3

XYZ2

0

100000111

10000111

R[DR] R[SB]

R[DR] R[SA]

5) [3 Val] Apresente um fluxograma ASM correspondente à implementação de uma nova instrução descrita por:

[ ] [ ] ∑ [ ] [ ] [ ] ∑ [ ] [ ]

SUM?IR

1

0

SUM1

SUM2

EX0

IF

PCMIR 1 PCPC

SUM7

SUM8

SUM9

?

1

0SUM10

IF

IF

R DR 0

R8

R10

R DR D +

R8R9 -

R8R9 -

Z

R8 R8 + 1

SUM3

SUM4

SBRR9

1

0

1?N

0

1?N

R 9

SUM6

-R9

1

SUM5

R10 -1

R R R SA

R10

?N0

1

D-R RDR R

IF

SUM11

SUM12

RD MAX(R[SA], R[SB]) Ganho de eficiência:

1. Solução Microprogramada: 4 ciclos de relógio (embora tenha 5 estados!)

2. Solução Programada: Cada estado XYZ dá origem a uma instrução (CMP, MOV, MOV) e o teste é implementado com a instrução BN. A execução leva 3 ciclos com CMP, 3 ciclos com um MOV e 4 ciclos com o BR (na situação mais desfavorável) ou seja 10 ciclos de relógio.

3. Ganho = 10/4 = 2,5

R8: Limite inferior do somatório R9: Limite superior do somatório R10: Sinal a aplicar ao somatório

Page 6: 1 exameac0910vf sol1

6 de 12

III – Arquitectura Pipeline

REGISTO DE ESTADO

RE

GIS

TO

S:

DE

CO

DE &

OP

ER

AN

D F

ET

CH

(D

OF

)

RE

GIS

TO

S:

INS

TR

UC

TIO

N F

ET

CH

(IF

) ASA

Result

BSB

UNIDADE

FUNCIONAL

(UF)

RE

GIS

TO

S:

EX

EC

UT

E/M

EM

OR

Y (

EX

/ME

M)

PC

BC

I

NextPCUNIDADE DE

DESCODIFICAÇÃO

DE INSTRUÇÕES

(UDI)

S F

UNIDADE DE ARMAZENAMENTO (UA)

DAD WR

Address

CLK

Flags

(Z,N,C,V)

MU

X D

Data_out

Data_in

FSFS

SHSH

MU

X B

MEMÓRIA

DE PROGRAMA

(INST_MEM)

Data

Endereço

UNIDADE DE

CONTROLO DE

SALTO (UCS)

I

MW

MBAA

JB

PL

AD

MW

MD

DA

WR

FS

SH

AA BA AB

KNS KNS

FW

FW

F

Instruction Fetch

(IF)

Decode and Operand

Fetch (DOF)

Execute / Memory

(EX/MEM)

Write Back

(WB)

MEMÓRIA

DE DADOS

(DATA_MEM)

KNSBA

CLK

Leitura assincrona dos registos Escrita sincrona nos registos

FS

BC

JB

PL

AD

F

Escrita sincrona das flags

Leitura assincrona

do registo de estado

Instruções de dados RTL Assembly Exemplo

NOP NOP NOP NOP

Move DR SA MOV RD,SA MOV R2,R1

Increment DR SA + 1 INC RD,SA INC R1,R2

Add DR SA + SB ADD RD,SA,SB ADD R2,R3,R4

Subtract DR SA – SB SUB RD,SA,SB SUB R0,R1,R2

Decrement DR SA – 1 DEC RD,SA DEC R1,R1

Negative DR - SA NEG DR,SA NEG R3,R2

NAND DR !(SA & RB) NAND DR,SA,SB NAND R3,R2,R5

Exclusive OR DR SA RB XOR DR,SA,SB XOR R3,R2,R5

NOT DR !SA NOT DR,SA NOT R3,R2

Arithmetic Shift Right DR SA >> OP ASR DR,SA,OP ASR R2,R3,31

Arithmetic Shift Left DR SA << OP ASL DR,SA,OP ASL R2,R3,31

Load Immediate DR OP LDI DR,OP LDI R0,10011b

Add Immediate DR SA + OP ADI DR,SA,OP ADI R0,R1,7h

Load DR M[SA] LD DR,SA LD R2,R5

Store M[SA] SB ST SA,SB ST R5,R2

Instruções de dados RTL Assembler Exemplo

Branch on Zero if S(Z)=1 (1) PC PC + AD BZ AD BZ -27

Branch on Non Zero if S(Z)=0 (1) PC PC + AD BNZ AD BNZ 22

Branch on Negative if S(N)=1 (1) PC PC + AD BN AD BN 143

Branch on Non Negative if S(N)=0 (1) PC PC + AD BNN AD BNN 32

Branch on Overflow if S(V)=1 (1) PC PC + AD BV AD BV 2

Jump PC PC + AD JMP AD JMP -4

(1) Else: PC PC +1

Page 7: 1 exameac0910vf sol1

Departamento de Engenharia Electrotécnica e de Computadores MEEC - Arquitectura de Computadores 2009/2010

Instituto Superior Técnico - Universidade Técnica de Lisboa

Nome: Nº:____________

7 de 12

6) [1 Val] Considere a arquitectura Pipeline apresentada. Indique qual o limite máximo do ganho, em termos de tempo de

execução, quando comparado com a arquitectura equivalente de ciclo único e refira-se aos factores que podem contribuir

para limitar esse ganho.

Idealmente o limite máximo do ganho será 4 dado que com 4 andares teremos 4 instruções simultaneamente a serem processadas, contudo, na prática

as unidades de interligação entre andares (registos) e a possibilidade de ocorrência de

conflitos de dados e de

conflitos de controlo levam a uma redução do ganho.

7) [3 Val] Admitindo que se pretende executar o seguinte troço de código na Arquitectura Pipeline, (a) indique todas as

situações correspondentes a conflitos de dados e a conflitos de controlo. (b) Resolva esses conflitos (dados e controlo) por

software e determine o limite do ganho de eficiência (variando R4 entre -100 e 100) ao executar o código na Arquitectura

Pipeline vs na Arquitectura Convencional, por simplicidade considere que o sinal de relógio do Pipeline é 4 vezes mais

rápido que o da Arquitectura Convencional. (c) Determine como se alterariam os resultados se os conflitos de dados

fossem resolvidos por forwarding.

Parte I: Parte II: LDI R1, 0 LDI R2, 5 LDI R3, 1 LDI R4, -100 BNN LOOP1 (Flags in EX CONFLITO DE CONTROLO) NEG R3, R3 NEG R4, R4 LOOP1: DEC R4, R4 (NEG R4… in WB, DEC R4… in EXE C. DE DADOS) BN GETOUT (Flags in EX CONFLITO DE CONTROLO) ADD R1, R1, R2 JMP LOOP1 GETOUT: MOV R3, R3 BNN END (Flags in EX CONFLITO DE CONTROLO) NEG R1, R1 END: NOP 413 Ciclos na Arquitectura Convencional

N Ciclos (Parte II)= 413 + 4 (NOPs)+ 101(NOPs)=518, N Ciclos (Parte III)= 413 + 2 (NOPs) + 101(NOPs) = 516 TEXEC Ciclo Único = 413*TCLK

TEXEC Pipeline I = 518*TCLK’ = 518*TCLK/4 = 104,5*TCLK

no caso do forwarding, retiram-se 2 NOPs devido conflitos de dados

LDI R1, 0 LDI R2, 5 LDI R3, 1 LDI R4, -100 NOP BNN LOOP1 NEG R3, R3 NEG R4, R4 NOP NOP LOOP1: DEC R4, R4 NOP BN GETOUT ADD R1, R1, R2 JMP LOOP1 GETOUT: MOV R3, R3 NOP BNN END NEG R1, R1 END: NOP

TEXEC Pipeline I = 516*TCLK’ = 516*TCLK/4 = 104*TCLK

Nota: No caso do pipeline podem considerer-se 3 ciclos adicionais para garantir que a última instrução é concluída.

Page 8: 1 exameac0910vf sol1

8 de 12

Page 9: 1 exameac0910vf sol1

Departamento de Engenharia Electrotécnica e de Computadores MEEC - Arquitectura de Computadores 2009/2010

Instituto Superior Técnico - Universidade Técnica de Lisboa

Nome: Nº:____________

9 de 12

IV – Memória Cache

Admita a execução da rotina apresentada, numa arquitectura com as seguintes características: (1) cada instrução é codificada

em palavras de 32 bits; (2) a Memória Cache tem capacidade de armazenamento de 8 palavras de 32 bits e um tempo de

acesso de 10 ns; (3) a Memória Principal tem um tempo de acesso de 100ns; (4) Considere que a política de substituição,

quando necessária, corresponde a substituir em primeiro lugar a instrução mais antiga na Cache; (5) Os mapeamentos a

considerar são MAP1 (MAP1 – Mapeamento Associativo-Directo com uma Cache de 4 linhas e 2 colunas) e MAP2 (Directo

com uma Cache de 4 linhas e carregamento de 2 palavras de cada vez).

8) [2,5 Val] Complete a tabela, para os 2 tipos de mapeamento em análise, preenchendo as colunas relativas ao número de

falhas (MISS) e número de leituras da Cache (HIT), e determine para cada caso a “Hit Rate” e o tempo médio de acesso a

cada instrução.

N. MISS N. HIT N. MISS N. HIT

80 1000 0000 LDI R1, 0 1 - 1 -

84 1000 0100 LDI R2, 5 1 - - 1

88 1000 1000 LDI R3, 1 1 - 1 -

8C 1000 1100 LDI R4, -10 1 - - 1

90 1001 0000 BNN LOOP1 1 - 1 -

94 1001 0100 NEG R3, R3 1 - - 1

98 1001 1000 NEG R4, R4 1 - 1 -

9C 1001 1100 LOOP1: DEC R4, R4 1 10 - 11

A0 1010 0000 BN GETOUT 1 10 1 10

A4 1010 0100 ADD R1, R1, R2 1 9 - 10

A8 1010 1000 JMP LOOP1 1 9 1 9

AC 1010 1100 GETOUT: MOV R3, R3 1 - - 1

B0 1011 0000 BNN END 1 - 1 -

B4 1011 0100 NEG R1, R1 1 - - 1

B8 1011 1000 END: NOP 1 - 1 -

Map 1 Map 2End.

Hex.

End. Binário Código

9) [1,5 Val] Indique qual o conteúdo da Cache, para os 2 mapeamentos, após a execução da instrução: “END: NOP”.

MAP1 MAP2

Index Label Instrução Label Instrução Index Label Instrução

00 1010 BN GETOUT 1011 BNN END 00 101 BN GETOUT

01 1010 ADD R1, 1011 NEG R1, ADD R1, R1, R2

10 1010 JMP LOOP1 1011 END: NOP 01 101 JMP LOOP1

11 1010 GETOUT: MOV R3, 1001 LOOP1: DEC R4, R4 GETOUT: MOV R3, R3

10 101 BNN END

NEG R1, R1

11 101 END: NOP

Map1: Map2: Bits 1 e 0 constantes Bits 3 e 2 index Bits 7 a 4 label ou etiqueta NHits = 38, NMiss = 15, HitRate = 38/53 Tmédio (em ns) = (38*10+15*100)/53

Bits 1 e 0 constantes Bit 2 Word Bits 4 e 3 index Bits 7 a 5 label ou etiqueta NHits = 45, NMiss = 8, HitRate = 45/53 Tmédio (em ns) = (45*10+8*100)/53

Page 10: 1 exameac0910vf sol1

10 de 12

Page 11: 1 exameac0910vf sol1

Departamento de Engenharia Electrotécnica e de Computadores MEEC - Arquitectura de Computadores 2009/2010

Instituto Superior Técnico - Universidade Técnica de Lisboa

Nome: Nº:____________

11 de 12

V – Assembly

10) [1 Val] Analise o seguinte troço de código e determine qual a dimensão mínima do STACK para garantir uma boa

execução, tendo em conta apenas a rotina delay. Indique, para o caso da inicialização de R1 realizada na linha 00F0h o

conteúdo do STACK quando este tem o maior número de posições preenchidas (assuma que inicialmente o STACK se

encontra vazio)

End. Hex Código

00F0h MOV R1, 2004h00F2h CALL delay

00F4h XOR R1, R1

…0200h delay: AND R1, 00FFh

0202h DEC R1

0204h CALL.NZ delay0205h RET

11) [3 Val] Considere um sistema de rega, numa estufa de morangos, onde foram colocados sensores para medir a humidade

do solo e assim condicionar a activação dos aspersores de rega. Admita que os sensores de humidade assumem valores

entre 0 (solo completamente seco) e 20 (solo extremamente húmido).

Por simplicidade, considere que tem apenas 4 sensores de humidade

(SH0 a SH3), cada um associado a uma diferente zona de aspersores

(AP0 a AP3). Mais, os sensores de humidade possuem apenas um

porto de leitura (cujo valor, inteiro, pertence está entre 0 e 20), os

aspersores tem porto de leitura para indicar qual o estado actual (0 -

desligado e 1 – ligado) e porto de escrita para permitir a sua activação

ou desactivação (0 – desactivar e 1 – activar).

Sem & Asp Porto Leitura Porto Escrita

SH0 FF00h ----

SH1 FF01h ----

SH2 FF02h ----SH3 FF03h ----AP0 FF10h FF11hAP1 FF20h FF21h

AP2 FF30h FF31hAP3 FF40h FF41h

a) [1,5 Val] Admita que se pretende controlar o sistema de rega com recurso a um sistema de polling. Escreva o código

da rotina que deve verificar o estado dos 4 sensores e activar, os respectivos aspersores, se o valor cair abaixo de 5 ou

desactivar se o valor subir acima de 15.

A rotina deve consistir num loop onde é realizada a leitura dos vários sensores, comparar com o valor anterior (para detectar

entrada na zona de activação) e activação ou desactivação dos aspersores.

Dimensão mínima do STACK deve ser 255, devido à “filtragem” realizada pelo AND.

O conteúdo do STACK deverá ser (começando no topo do STACK): 00F4h , devido ao CALL delay 0205h , devido ao CALL.NZ delay 0205h , devido ao CALL.NZ delay 0205h , devido ao CALL.NZ delay

Page 12: 1 exameac0910vf sol1

12 de 12

b) [1,5 Val] Admita que os sensores de humidade comunicam com o processador através do mecanismo de interrupções

(utilizando respectivamente as interrupções de 0 a 3). A interrupção surge sempre que o valor cair abaixo de 5 ou

subir acima de 15. Escreva a rotina de interrupção associada ao sensor SH0 e o conjunto de instruções que permite

proceder às inicializações necessárias ao seu atendimento.

A rotina de interrupção deve consistir na leitura do sensor SH0 e em função do seu valor (<5 ou >15) activar ou desactivar o

aspersor AP0.

Devem ainda incluir a programação da TVI na posição 0 e a inicialização da máscara das interrupções.