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
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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.
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
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.
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
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
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
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
10 de 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º:____________
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
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
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.