LICENCIATURA EM ENGENHARIA INFORMÁTICA E DE COMPUTADORES
Introdução à Arquitetura de Computadores
Coletânea de Problemas
Janeiro 2014
(Versão 2.1)
INSTITUTO SUPERIOR TÉCNICO
- Introdução à Arquitectura de Computadores -
Conteúdo
Codificação de Instruções 3Interrupções 5Micro-programação 9Mapeamento de Memória 12Caches 15Memórial Virtual 18Comunicação 19Funções Lógicas 21Circuitos Combinatórios 23Instruções Assembly 24Programação Assembly 26Soluções 29
Lista de Revisões
Versão 2.1 - 2014.01.29 - Foi acrescentada uma solução de mais um exercício
Versão 2.0 - 2014.01.28 - Foram adicionados problemas para o 1o teste
Versão 1.1 - 2013.12.26 - Correção da solução do problema 4.3c
Versão 1.0 - 2013.12.16 - Versão inicial
Esta coletânea de problemas contém problemas do Livro “Arquitetura de Computadores - dos Siste-mas Digitais aos Microprocessadores” e de testes de Arquitetura de Computadores da Licenciatura emEngenharia Informática e de Computadores.
2
Codificação de Instruções - Introdução à Arquitectura de Computadores -
Codificação de Instruções Assembly
1.1
Considere os seguintes valores para os registos do processador P3:
R1 R2 R3 R4 R5 R6 R7 PC SP RE0001h EFD9h 0370h 41F0h 005Ah 0101h 0000h 0010h 7ADEh 0005h
Na execução da instrução PUSH M[R3+2], indique na tabela seguinte qual é a sequência de acessos àmemória, especificando o valor do barramento de endereços, do barramento de dados e tipo de acesso(leitura/escrita).
- a tabela tem 5 posições, utilize apenas as que achar necessárias;
- use notação hexadecimal;
- use ? para indicar que não tem informação suficiente para determinar um dado valor.
Endereço Dados Leitura/Escrita12345
1.2
Considere os seguintes valores para os registos do processador P3:
R1 R2 R3 R4 R5 R6 R7 PC SP RE0001h EFD9h 0370h 41F0h 005Ah 0101h 0000h 0010h 7ADEh 0005h
Na execução da instrução AND M[R6+20h], R7, indique na tabela seguinte qual é a sequência de acessosà memória, especificando o valor do barramento de endereços, do barramento de dados e tipo de acesso(leitura/escrita).
- a tabela tem 5 posições, utilize apenas as que achar necessárias;
- use notação hexadecimal;
- use ? para indicar que não tem informação suficiente para determinar um dado valor.
Endereço Dados Leitura/Escrita12345
3
Codificação de Instruções - Introdução à Arquitectura de Computadores -
1.3
Considere os seguintes valores para os registos do processador P3:
R1 R2 R3 R4 R5 R6 R7 PC SP RE0001h 8FD9h 0370h 41F0h 805Ah 0101h 0000h 0210h FADEh 0014h
Na execução da instrução RTI, indique na tabela seguinte qual é a sequência de acessos à memória, espe-cificando o valor do barramento de endereços, do barramento de dados e tipo de acesso (leitura/escrita).
- a tabela tem 5 posições, utilize apenas as que achar necessárias;
- use notação hexadecimal;
- use ? para indicar que não tem informação suficiente para determinar um dado valor.
Endereço Dados Leitura/Escrita12345
1.4
Considere os seguintes valores para os registos do processador P3:
R1 R2 R3 R4 R5 R6 R7 PC SP RE94B6h 17A6h 7496h 59BCh 2F89h 935Fh 002Dh 03D9h FB30h 0015h
Na execução da instrução ADDC M[SP+2], R0, indique na tabela seguinte qual é a sequência de acessosà memória, especificando o valor do barramento de endereços, do barramento de dados e tipo de acesso(leitura/escrita).
- a tabela tem 5 posições, utilize apenas as que achar necessárias;
- use notação hexadecimal;
- use ? para indicar que não tem informação suficiente para determinar um dado valor.
Endereço Dados Leitura/Escrita12345
4
Interrupções - Introdução à Arquitectura de Computadores -
Interrupções
2.1
Considere o seguinte troço de um programa em Assembly do processador P3 (assuma que a pilha já foiinicializada):
; Troco de codigo do ; Codigo da rotina de servico
; programa principal ; a interrupcao INTR0
1. ENI 8. INTR0: XOR R1, R1
2. MOV R1, AAh 9. RTI
3. MOV R2, 55h
4. ADD R3, R0 ; Codigo da rotina de servico
5. Ciclo: RORC R1, 1 ; a interrupcao INTR1
6. AND R1, R2 10. INTR1: MOV R4, 4
7. ... 11. OR M[SP+2], R4
12. RTI
Indique, justificando, o valor de R1 após a execução da instrução da linha 5, nas seguintes condições:
a) não ocorre nenhuma interrupção.
b) ocorre uma interrupção INTR0 durante a execução da instrução da linha 3.
c) ocorre uma interrupção INTR0 durante a execução da instrução da linha 3 e uma interrupçãoINTR1 durante a execução da instrução linha 4.
5
Interrupções - Introdução à Arquitectura de Computadores -
2.2
Considere o seguinte programa em Assembly do P3. Considere que a rotina EscCont escreve na janelade texto o número que se encontra na posição de memória Contador.
SP_INICIAL EQU FDFFh
INT_MASK_ADDR EQU FFFAh
IO_WRITE EQU FFFEh
...
ORIG 8000h
Contador WORD 0000h
ORIG 0000h
JMP Inicio
1: Event: PUSH R1
2: MOV R1, 18h
3: MOV M[SP+3], R1
4: POP R1
5: RTI
ContHex: INC M[Contador]
RET
...
Inicio: MOV R7, SP_INICIAL
MOV SP, R7
MOV R7, INT_MASK
MOV M[INT_MASK_ADDR], R7
ENI
CicloCont: CALL EscCont
INC R0
Espera: BR.NZ Espera
CALL ContHex
BR CicloCont
a) Indique como deve ser definida a tabela de vectores de interrupção por modo a que quando secarrega no botão I5 (“Janela Placa” do simulador) a rotina Event seja executada.
b) Para as mesmas condições da alínea anterior, indique qual o valor, em hexadecimal, que deverá terINT_MASK.
c) Descreva como funciona a rotina de interrupção Event e como ela afecta a execução do programa.
d) Pretende-se alterar o programa para que a rotina Event seja executada a cada 400ms.
i) Indique que constantes usaria
ii) Indique como inicializava a tabela de vectores de interrupção
iii) Indique que instruções acrescentaria na rotina Event. Use as linhas numeradas (de 1 a 5) paraindicar entre que linhas colocaria as novas instruções. (Nota: Ignore outras alterações queporventura possam ser necessárias no programa)
6
Interrupções - Introdução à Arquitectura de Computadores -
2.3
Considere o seguinte excerto de um programa para o processador P3.
BASETIME EQU 300
TIMER_UNITS EQU FFF6h
TIMER_CTRL EQU FFF7h
ORIG 8000h
DataReady WORD 0
Pointer TAB 1
DataSpace TAB 1024
ORIG 0000h
...
Timer: MOV R1, BASETIME
MOV M[TIMER_UNITS], R1
MOV R1, 1h
MOV M[TIMER_CTRL], R1
CALL ReadData
INC M[DataReady]
RTI
Data_IO: MOV R1, DataSpace
MOV M[Pointer], R1
PUSH R0
CALL Timer ; Timer Initialization
...
DataLoop: CMP M[DataReady], R0
BR.Z DataLoop
MOV M[DataReady], R0
CALL StoreData
INC M[Pointer]
...
BR DataLoop
a) Considere que, por lapso, se termina a rotina de tratamento de interrupção com a instrução RET,em vez de RTI. Diga, justificando, todas as implicações deste erro.
b) Explique de que forma é feita a primeira inicialização do temporizador. Considera correcto oprocedimento utilizado? Justifique a sua resposta.
c) Indique os passos de inicialização necessários para que a rotina Timer fique associada à interrupçãocom o vector 15. Exemplifique através de instruções/pseudo-instruções do assembly do P3.
7
Interrupções - Introdução à Arquitectura de Computadores -
2.4
No contexto do P3, considere o seguinte programa que inclui uma rotina de tratamento de interrupção(TIMER) associada ao temporizador.
1 ORIG <end> 16 TIMER: MOV R1, <time_val>
2 I WORD TIMER 17 MOV M[FFF6h], R1
3 18 MOV R1,M[SP+2]
4 ORIG 0000h 19 MOV R1, 1
5 MOV R1, FDFFh 20 MOV M[FFF7h], R1
6 MOV SP, R1 21 RTI
7 MOV R1, <mascara_int> 22
8 MOV M[FFFAh], R1 23 ACTION: ...
9 ENI 24 ...
10 ?
11 L1: SUB R1,R1
12 L2: AND R1,R1
13 BR.Z L2
14 CALL ACTION
15 JMP L1
a) O programa está incompleto faltando indicar o valor de várias constantes (linhas 1, 7 e 16). Nazona de respostas indique os valores em falta, considerando que se pretende que o temporizadormarque intervalos de tempo de 1 segundo.
b) Na linha 10 falta uma instrução que tem por objectivo chamar a rotina de interrupção do timer e,desse modo, desencadear a sua inicialização. Indique a instrução em falta.
c) Assuma que ocorre uma interrupção durante a execução da instrução da linha 11 (SUB R1,R1).Indique, na zona de respostas, o valor de R1 após o programa executar a instrução da linha 18.
8
Micro-programação - Introdução à Arquitectura de Computadores -
Micro-programação
3.1
Indique na tabela seguinte quais as micro-operações realizadas pela micro-instrução 1B222F9Dh.
Operações realizadas (em RTL):
NOTA1: Utilize apenas as posições
da tabela que considere necessárias.
NOTA2: Pode usar como ras-
cunho a tabela disponibilizada
abaixo.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0
M5
SR
1
SR
2 IAK
FM CALU MA MB M2 MR
B
RB WM
WR MD
MA
D
RAD
1 LS MCOND CC LI LF CONST/NA
Zona de rascunho para a pergunta
3.2
Indique na tabela seguinte quais as micro-operações realizadas pela micro-instrução 7290319Bh.
Operações realizadas (em RTL):
NOTA1: Utilize apenas as posições
da tabela que considere necessárias.
NOTA2: Pode usar como ras-
cunho a tabela disponibilizada
abaixo.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0
M5
SR
1
SR
2 IAK
FM CALU MA MB M2 MR
B
RB WM
WR MD
MA
D
RAD
1 LS MCOND CC LI LF CONST/NA
Zona de rascunho para a pergunta
9
Micro-programação - Introdução à Arquitectura de Computadores -
3.3
Indique na tabela seguinte quais as micro-operações realizadas pela micro-instrução 845000DDh.
Operações realizadas (em RTL):
NOTA1: Utilize apenas as posições
da tabela que considere necessárias.
NOTA2: Pode usar como ras-
cunho a tabela disponibilizada
abaixo.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0
M5
SR
1
SR
2 IAK
FM CALU MA MB M2 MR
B
RB WM
WR MD
MA
D
RAD
1 LS MCOND CC LI LF CONST/NA
Zona de rascunho para a pergunta
3.4
Pretende-se que as seguintes micro-operações se realizem num único ciclo de relógio:
CAR←SBR, RI←M[PC], PC←0000h
Indique na tabela seguinte a codificação de uma micro-instrução que faz com que isso aconteça ou justi-fique que tal não é possível.
NOTA: Preencher com 0, 1 ou X para os sinais indiferentes.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0
M5
SR
1
SR
2 IAK
FM CALU MA MB M2 MR
B
RB WM
WR MD
MA
D
RAD
1 LS MCOND CC LI LF CONST/NA
10
Micro-programação - Introdução à Arquitectura de Computadores -
3.5
Pretende-se que as seguintes micro-operações se realizem num único ciclo de relógio:
R8←0C30h, SBR←CAR+1, CAR←F1
Indique na tabela seguinte a codificação de uma micro-instrução que faz com que isso aconteça ou justi-fique que tal não é possível.
NOTA: Preencher com 0, 1 ou X para os sinais indiferentes.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0
M5
SR
1
SR
2 IAK
FM CALU MA MB M2 MR
B
RB WM
WR MD
MA
D
RAD
1 LS MCOND CC LI LF CONST/NA
3.6
Pretende-se que as seguintes micro-operações se realizem num único ciclo de relógio:
M[SP]←SP, SP←RE, Flag Z←1, CAR←CAR+1
Indique na tabela seguinte a codificação de uma micro-instrução que faz com que isso aconteça ou justi-fique que tal não é possível.
NOTA: Preencher com 0, 1 ou X para os sinais indiferentes.
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0
M5
SR
1
SR
2 IAK
FM CALU MA MB M2 MR
B
RB WM
WR MDM
AD
RAD
1 LS MCOND CC LI LF CONST/NA
11
Mapeamento de Memória - Introdução à Arquitectura de Computadores -
Mapeamento de Memória
4.1
Considere um sistema com um processador que possui 12 linhas de endereço - de A11 (maior peso)a A0 (menor peso) - e 8 linhas de dados. Neste sistema existem três zonas de memória e uma paraentradas/saídas (E/S):
• ROM M1 - Possui 512 palavras que ocupam a gama de endereços mais baixos.
• RAM M2 - Possui 2K palavras que ocupam a gama de endereços mais elevada.
• RAM M3 - Possui 256 palavras a começar imediatamente acima da ROM M1.
• E/S M4 - Ocupa 1K palavras localizada imediatamente abaixo da RAM M2.
Indique quais as funções de descodificação destas zonas de memória (MS - Memory Select).
MS1 =MS2 =MS3 =MS4 =
4.2
Considere um sistema com um processador com 17 linhas de endereço – de A16 (maior peso) a A0 (menorpeso) e 8 linhas de dados. Neste sistema existem três zonas de memória:
• M1 – Possui 32K palavras a começar em 8000h e acabar em FFFFh.
• M2 – Possui 8K palavras que começam a partir do meio do espaço de memória.
• M3 – Possui 16K palavras que ocupam a gama mais elevada de endereços.
a) Indique as respectivas funções de selecção.
M1 =M2 =M3 =
b) Indique o tamanho do espaço de memória não ocupado.
12
Mapeamento de Memória - Introdução à Arquitectura de Computadores -
4.3
Considere as seguintes funções de descodificação de três memória:
• Mem1 - A19 · A18 · A17 ·A16 ·A15
• Mem2 - A19 · A18 · A17
• Mem3 - A19 · A18
a) Indique, em hexadecimal, o primeiro e último endereço ocupado pelas memórias.
Início Mem1 =Fim Mem1 =
Início Mem2 =Fim Mem2 =
Início Mem3 =Fim Mem3 =
b) Indique as capacidades das memórias.
Mem1 =Mem2 =Mem3 =
c) A figura seguinte representa o mapa de memória do sistema. Assinale nessa figura a localizaçãodas três memórias.
13
Mapeamento de Memória - Introdução à Arquitectura de Computadores -
4.4
Considere as seguintes funções de selecção de duas memórias, num sistema com 1M palavras de capaci-dade.
• S1 = A19 · A18 · A17 ·A16
• S2 = A19 · A18
a) Indique as dimensões das zonas de memória correspondentes.
S1 =S2 =
b) Assinale na figura abaixo a localização das duas memórias no espaço de endereçamento. Indiquetambém, na figura, o primeiro e último endereço de cada memória.
FFFFFh
80000h
00000h
14
Caches - Introdução à Arquitectura de Computadores -
Caches
5.1
Considere um sistema de memória constituído por uma cache de 64k palavras de 1 octeto e uma memóriaprincipal de 16M palavras de 1 octeto. Considere ainda que a cache tem blocos de 8 palavras e utilizamapeamento directo.
a) Indique, justificando, o número de bits que se utiliza para endereçar a cache e a memória principal(isto é, a largura do barramento de endereços).
b) Indique, justificando, a largura dos campos de índice, etiqueta e deslocamento tal como interpretadopor esta cache.
c) Considere uma situação em que se pretende efectuar a leitura do seguinte conjunto de informaçãoem sequência:
Endereço Dados5AFFF8h 27h5AFFF2h B0h00FFF8h E5h
Considerando a cache inicialmente vazia, indique, justificando, qual é o conteúdo da cache no finaldestes acessos. Não se esqueça de indicar o número das linhas, e os campos etiqueta e dados paracada linha (utilize ? para indicar que não sabe um valor).
d) Considere que a taxa de sucesso nesta cache é de 98%, com tempo de acesso de 2ns. Admita que otempo de acesso à memória primária é de 80ns. Calcule o tempo médio para um acesso de leitura.
15
Caches - Introdução à Arquitectura de Computadores -
5.2
Considere um sistema que usa um processador semelhante ao P3 com um espaço de endereçamento de64K palavras de 16 bits. Nesse sistema será corrido o seguinte troço de programa.
DIM EQU 400h
ORIG 8000h
A TAB DIM
B TAB DIM
ORIG 0000h
MOV R1, R0
Rep: SUB M[R1+A], R1
ADD M[R1+B], R1
INC R1
CMP R1, DIM
BR.NZ Rep
...
a) Considere que o sistema possui uma cache de mapeamento directo com 1K palavras, usando blocoscom 4 palavras e uma política de escrita “write-back” com “write-allocate”. Se esta cache for usadaexclusivamente para acesso aos dados indique qual a taxa de sucesso (“hit rate”). Não se esqueçaque as instruções SUB e ADD geram 2 acessos a dados: um na leitura dos operandos, outro naescrita do resultado.
b) Se, em alternativa, for usada uma cache com o dobro da capacidade (2K palavras) e esta possuirblocos de 2 palavras, indique qual será a taxa de sucesso (“hit rate”).
c) Considere que o sistema possui memória primária com um tempo de acesso de 120 ns e que a cachepossui um tempo de acesso de 40 ns. Indique o valor da taxa de sucesso (“hit rate”) a partir doqual compensa ter cache.
16
Caches - Introdução à Arquitectura de Computadores -
5.3
O troço de programa seguinte é executado num sistema com o processador P3 com uma cache de dadoscom 1k palavras, 1 via de associatividade, blocos de 2 palavras e política write-back.
1 SIZE EQU 1000h
2 ORIG 8000h
3 A TAB SIZE
4 W WORD 0
5 X WORD 0
6 Y WORD 0
7 Z WORD 0
8 B TAB SIZE
9 ORIG 0000h
10 MOV R2, R0
11 Loop: MOV R1, M[R2+A]
12 ADD M[R2+B], R1
13 INC R2
14 CMP R2, SIZE
15 BR.NZ Loop
a) Qual é a taxa de sucesso na cache de dados ao executar este programa? (não se esqueça que ainstrução ADD gera 2 acessos a dados, um na leitura dos operandos, outro na escrita do resultado)
b) Sugira uma, e uma só, alteração à estrutura da cache, sem alterar a sua capacidade, que melhoreo desempenho ao executar este programa.Capacidade = 1k palavrasDimensão do bloco = palavrasVias de associatividade =
c) Admita que o desempenho do processador ao executar uma determinada aplicação é determinadopelo tempo de acesso à memória. Calcule o desempenho de um sistema com cache em relação a umsistema sem cache, assumindo que:
• a taxa de sucesso na cache é 90%.
• o tempo de acesso à cache é 60ns.
• o tempo de acesso à memória primária é 200ns. Só é lançado um acesso à memória apósverificação da cache.
17
Memórial Virtual - Introdução à Arquitectura de Computadores -
Memórial Virtual
6.1
Considere um sistema de memória virtual paginada. O endereço virtual tem 18 bits. O campo dedeslocamento do endereço virtual tem 7 bits. O espaço de endereçamento físico é de 8k palavras.
a) Indique a dimensão das páginas.
b) Indique quantas páginas tem o espaço de endereçamento virtual.
c) Pretende-se aceder ao endereço virtual 14A32h. Indique, em hexadecimal, o índice da tabela
d) No acesso ao endereço virtual 14A32h foi lida da tabela de páginas o valor 5h. Indique em hexade-cimal o endereço físico acedido.
6.2
Considere um sistema de memória virtual paginada. O espaço de endereçamento virtual é constituídopor 16 páginas, cada uma com 32 palavras. O espaço de endereçamento físico é constituído por 8 páginas.
a) Indique o número de bits do campo de deslocamento de um endereço virtual.
b) Indique o espaço de endereçamento virtual.
c) Pretende-se aceder ao endereço virtual 13Ch. Indique, em hexadecimal, o índice da tabela depáginas que será consultado.
d) Indique o número de bits guardados em cada entrada da tabela de páginas (sem contabilizar os bitsde controlo).
e) No acesso ao endereço virtual 13Ch foi lido da tabela de páginas o valor 3. Indique, em hexadecimal,o endereço físico que será acedido.
6.3
O processador P3V é um processador P3 mas com memória virtual paginada com 64k palavras, linhasde endereço A15-A0. As páginas têm 256 palavras.
a) Indique a estrutura do endereço virtual (nome e bits ocupados por cada campo).
b) Indique a estrutura da tabela de páginas num sistema com 8k palavras de memória primária insta-lada.
Número de entradas =Dimensão da entrada = octetos (não considere os bis de controlo)
18
Comunicação - Introdução à Arquitectura de Computadores -
Comunicação
7.1
Considere o seguinte diagrama temporal no receptor, respeitante à transmissão de informação atravésde comunicação série assíncrona. Nesta transmissão, primeiro é enviado o bit menos significativo de umvalor de 8 bits, é usado 1 stop bit e paridade par:
a) Indique, em hexadecimal, os valores recebidos e verifique se houve algum erro na transmissão.
b) Porque que razão na transmissão série assíncrona o número de bits entre o start bit e o stop bit énecessariamente baixo?
7.2
Considere uma comunicação série assíncrona com as seguintes características específicas: 7 bits de dados,paridade par e 1 stop bit.
a) Preencha abaixo a sequência de bits enviados correspondentes à transmissão do valor 66h (recorda-se que, relativamente aos bits de dados, é enviado primeiro o bit menos significativo e em últimolugar, o bit mais significativo).
1 1
b) Considerando as características da comunicação e assumindo que o envio de um bit demora 100 µs,indique o tempo mínimo que demora a enviar um ficheiro que possua 700 bytes (1 byte = 8 bits).
7.3
Dois sistemas dialogam entre si usando comunicação série síncrona em que a flag delimitadora é consti-tuída pelo padrão 0111 1110 e em que é usada a técnica bit stuffing.
Ao monitorizar a linha de comunicação observou-se a seguinte sequência de bits
0 1 1 1 1 1 1 0 0 1 1 1 1 1 0 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
Assinale abaixo qual a informação que foi enviada.
A: 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 1 1 1 1 1 1 0
B: 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0 1 1 1 1 1 1 0
C: 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0
D: 0 1 1 1 1 1 1 0 1 1 1 1 1 0 0 0 0
E: Nenhuma das anteriores
19
Comunicação - Introdução à Arquitectura de Computadores -
7.4
Admita que numa transmissão série assíncrona apenas são transmitidas palavras de entre um conjuntode 4 palavras possíveis, por uma ordem arbitrária: 65h,73h,A6h,CEh. A transmissão de cada palavraassume: 1 start-bit, 8 bits de dados, 1 bit de paridade e 2 stop-bits. As palavras são transmitidascomeçando pelo bit mais significativo.
a) Indique qual das sequências de bits anteriores está correcta.
Sugestão: Comece por identificar os start-bits e os bits de paridade de cada sequência.
b) Qual é a paridade adoptada?
c) Caso tenha identificado alguma sequência de bits transmitida correctamente, indique (em hexade-cimal) a sequência de palavras recebidas pelo receptor
d) Assuma que o ritmo de transmissão é de 24000 bps. Nas condições das alíneas anteriores, indiqueo tempo que demora a enviar um ficheiro constituído por 1000 bytes.
e) Qual é a eficiência da transmissão dos dados nas condições especificadas?
7.5
Dois sistemas dialogam entre si usando comunicação série síncrona em que a flag delimitadora é cons-tituída pelo padrão 0111 1110 e em que é usada a técnica de bit stuffing. Se na linha de comunicaçãofor recebida a sequência de bits indicada a seguir, indique em hexadecimal qual foi a informação útilrecebida. Assuma que o bit mais significativo é o primeiro a ser transmitido.
20
Funções Lógicas - Introdução à Arquitectura de Computadores -
Funções Lógicas
8.1
Elabore as tabelas de verdade das seguintes funções lógicas:
a) f(A,B,C) = A B +A B C
b) f(A,B,C,D) = A B (C ⊕D) +A B C +A C D +B C D
c) f(A,B,C) = A B C +A B + C
8.2
Minimize algebricamente as seguintes funções:
a) f(A,B,C,D) = A B (C ⊕D) +A B C +A C D +B C D
b) f(A,B,C,D) = A B C +A B (C +D) +A+B +D
8.3
Considere a seguinte função: f(A,B,C) = (A⊕B) C +A (B ⊕ C)
a) minimize algebricamente a função para obter um produto de somas.
b) minimize algebricamente a função para obter uma soma de produtos.
c) obtenha a forma canónica normal disjuntiva.
d) obtenha a forma canónica normal conjuntiva.
21
Funções Lógicas - Introdução à Arquitectura de Computadores -
8.4
Considere o seguinte logigrama:A
B
C
D
F
Determine uma expressão algébrica para a função F , minimize-a e desenhe o logigrama correspondenteà expressão resultante.
8.5
Determine um conjunto de funções lógicas que realize a multiplicação de dois números binários de doisalgarismos.
22
Circuitos Combinatórios - Introdução à Arquitectura de Computadores -
Circuitos Combinatórios/Aritméticos
9.1
Utilizando apenas dois descodificadores de duas entradas e portas and de duas entradas, construa umdescodificador de quatro entradas. Sugestão: Considere a hipótese de combinar as saídas dos dois desco-dificadores.
9.2
Utilizando como elemento base um descodificador de três variáveis de entrada e a lógica adicional queconsidere necessário, construa as quatro funções descritas na seguinte tabela:
x y z f0(x, y, z) f1(x, y, z) f2(x, y, z) f3(x, y, z)
0 0 0 0 1 0 00 0 1 0 0 1 00 1 0 0 0 1 00 1 1 1 0 1 11 0 0 0 1 0 01 0 1 1 1 0 01 1 0 0 1 0 01 1 1 1 0 1 0
9.3
Considere a função lógica f(A,B,C,D,E) = B C D + B D E + A B C + C E + A B C D E.Implemente-a usando um multiplexador de três variáveis de selecção e a lógica que considerar neces-sária.
Pista: quando se usa um multiplexador de n variáveis de selecção para implementar funções de n + 1variáveis, utiliza-se nas entradas de dados do multiplexador funções de uma variável.
9.4
Considere que realiza somas de números representados em complemento para 2 de 32 bits, utilizandosomadores de 8 bits, que têm, como saída, a soma, o bit de transporte e o bit de excesso. Como interligaos somadores para realizar a soma pretendida?
23
Instruções Assembly - Introdução à Arquitectura de Computadores -
Instruções Assembly
10.1
Considere os seguintes valores para os registos do processador P3:
R1 R2 R3 R4 R5 R6 R7 PC SP RE0001h EFD9h 0370h 41F0h 805Ah 0101h 0000h 0010h 7ADEh 0005h
Para as perguntas a), b) e c), indique quais são os novos valores, em hexadecimal, de todos (e apenas)os registos que são escritos na execução de cada instrução. Use ? para indicar que não tem informaçãosuficiente para determinar o novo valor de um registo. As perguntas são independentes, isto é, assumacomo valores iniciais para cada pergunta os indicados na tabela acima.
a) PUSH R3
R1 R2 R3 R4 R5 R6 R7 PC SP RE
b) ADDC R2, R6
R1 R2 R3 R4 R5 R6 R7 PC SP RE
c) SHRA R5,1
R1 R2 R3 R4 R5 R6 R7 PC SP RE
10.2
Considere os seguintes valores para os registos do processador P3:
R1 R2 R3 R4 R5 R6 R7 PC SP RE0001h 8FD9h 0370h 41F0h 805Ah 0101h 0000h 0210h FADEh 0014h
Para as perguntas a), b) e c), indique quais são os novos valores, em hexadecimal, de todos (e apenas)os registos que são escritos na execução de cada instrução. Use ? para indicar que não tem informaçãosuficiente para determinar o novo valor de um registo. As perguntas são independentes, isto é, assumacomo valores iniciais para cada pergunta os indicados na tabela acima.
a) DEC R3
R1 R2 R3 R4 R5 R6 R7 PC SP RE
b) RORC R2,1
R1 R2 R3 R4 R5 R6 R7 PC SP RE
c) RTI
R1 R2 R3 R4 R5 R6 R7 PC SP RE
24
Instruções Assembly - Introdução à Arquitectura de Computadores -
10.3
Considere os seguintes valores para os registos do processador P3:
R1 R2 R3 R4 R5 R6 R7 PC SP RE94B6h 17A6h 7496h 59BCh 2F89h 935Fh 002Dh 03D9h FB30h 0015h
Para as perguntas a), b) e c), indique quais são os novos valores, em hexadecimal, de todos (e apenas)os registos que são escritos na execução de cada instrução. Use ? para indicar que não tem informaçãosuficiente para determinar o novo valor de um registo. As perguntas são independentes, isto é, assumacomo valores iniciais para cada pergunta os indicados na tabela acima.
a) CALL.NN 01B7h
R1 R2 R3 R4 R5 R6 R7 PC SP RE
b) SHRA R1,5
R1 R2 R3 R4 R5 R6 R7 PC SP RE
c) MVBH R3, F5A4h
R1 R2 R3 R4 R5 R6 R7 PC SP RE
25
Programação Assembly - Introdução à Arquitectura de Computadores -
11.1
Pretende-se desenvolver uma rotina em Assembly do P3 que retire um elemento de uma lista simplesmenteligada. A estrutura de dados desta lista contém apenas um valor inteiro e um apontador para o elementoseguinte. Estes dois campos encontram-se em posições consecutivas de memória, por esta ordem. O fimda lista é indicado por um apontador a 0. A rotina recebe como parâmetros:
R1: com o endereço do primeiro elemento da lista;
R2: com o valor do elemento a apagar.
A rotina deve devolver em R3 o resultado da operação: 1 se o elemento foi retirado com sucesso; 0 seelemento não foi encontrado na lista. R1 deve continuar a apontar para o início da lista.
Por exemplo, com R1=0120h, esta lista tem a seguinte representação em memória:
45A9h 075Ah BC13h 3F98h 54EEh 0
Endereço Conteúdo0120h 45A9h0121h 075Ah
.
.
.075Ah BC13h075Bh 3F98h
.
.
.3F98h 54EEh3F99h 0000h
Após uma chamada à rotina com R2=BC13h, a lista ficará:
45A9h 3F98h 54EEh 0
Endereço Conteúdo0120h 45A9h0121h 3F98h
.
.
.075Ah BC13h075Bh 3F98h
.
.
.3F98h 54EEh3F99h 0000h
sendo retornado R3=1 e R1 mantém o seu valor.
a) Desenhe um fluxograma que realize a função pretendida.
b) Escreva a rotina em linguagem Assembly do P3.
27
Programação Assembly - Introdução à Arquitectura de Computadores -
11.2
Pretende-se desenvolver uma rotina ComputeAVG em Assembly do P3 que calcule a média dos valoresde uma coluna de uma tabela. A tabela tem um número variável de colunas (Ncols). O número delinhas (Nlinhas) da tabela é fixo e igual a 256. O valor da média deverá ser calculado sem perda deprecisão, considerando que os valores presentes na tabela estão compreendidos entre -32768 e +32767 eque o resultado será um valor também dentro dessa gama.
A tabela está armazenada em memória linha a linha: primeiro os valores da 1a linha, em endereçosconsecutivos, a que se seguem os valores da 2a linha e assim por diante. Apresenta-se em seguida umexemplo para uma tabela com 2 linhas e 3 colunas, guardada a partir do endereço 80A0h:
Tabela1001 1002 10032001 2002 2003
MemóriaEndereço 80A0h 80A1h 80A2h 80A3h 80A4h 80A5hConteúdo 1001 1002 1003 2001 2002 2003
A rotina recebe como parâmetros o endereço da primeira posição da tabela, o número de colunas databela e o número da coluna (entre 1 e Ncols) de que se deseja calcular a média. Os parâmetros sãopassados pela pilha, de acordo com o exemplo de chamada indicado a seguir. O resultado é devolvidoatravés da pilha.
PUSH Table
PUSH Ncols
PUSH Column
CALL ComputeAVG
POP M[Average]
a) Desenhe um fluxograma que realize a função pretendida.
b) Escreva a rotina em linguagem Assembly do P3.
28
Soluções - Introdução à Arquitectura de Computadores -
Soluções
1.1
Endereço Dados Leitura/Escrita1 0010h 5033h L2 0011h 2 L3 0372h ? L4 7ADEh ? E
1.2
Endereço Dados Leitura/Escrita1 0010 A1F6 L2 0011 0020 L3 0121 ? L4 0121 0000 E
1.3
Endereço Dados Leitura/Escrita1 0210 1C00 L2 FADF ? L3 FAE0 ? L
1.4
Endereço Dados Leitura/Escrita1 03D9 883E L2 03DA 0002 L3 FB32 ? L4 FB32 ? E
2.1
a) 0055h
b) 0000h
c) 8000h
29
Soluções - Introdução à Arquitectura de Computadores -
2.2
a)
ORIG FE05h
INT5 WORD Event
b) 0020h
c) Coloca bit de estado Z a um. Quando se carrega no botão 5 o contador é incrementado
e o novo valor escrito.
d)
i)
INT_MASK EQU 8000h
START_TIMER EQU 1
COUNT_TIMER EQU 4
ii)
ORIG FE0Fh
INT15 WORD Event
iii) Na linha 2 inserir:
MOV R1, COUNT_TIMER
MOV M[FFF6h], R1
MOV R1, START_TIMER
MOV M[FFF7h], R1
2.3
a) Pilha vai ficar com lixo (valores de RE) e interrupções ficariam desativadas (flag E é colocada a 0quano entra na rotina de interrupção e não é reposta a 1)
b) Não é correto fazer CALL de rotinas de interrupção. Apesar de neste caso se garantir que é colocadouma palavra na pilha para esse valor ser colocado posteriormente no RE, esse valor é zero e logoas interrupções ficarão desativadas. Para além disso é ainda incrementada a variável DataReady.
c)
ORIG FE0Fh
INT15 WORD Timer
MOV R1, 8000h
MOV M[FFFAh], R1
ENI
30
Soluções - Introdução à Arquitectura de Computadores -
2.4
a)<end> FE0Fh<mascara_int> 8000h<time_val> 000Ah
b) INT 15
c) R1 = 0018h
3.1
CAR←CAR+1
R13←SHL R13, flags ZC (RD ou R13)
M[R13]←R7
IAK←0
3.2
SD←!SD, flags ZN (SD ou R11)
M[SD]←R8
CAR←WB
IAK←0
3.3
CAR←CAR+1
SBR←CAR+1
RE←RD (RD ou R13)
RD←RE
3.4
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0
M5
SR
1
SR
2 IAK
FM CALU MA MB M2 MR
B
RB WM
WR MD
MA
D
RAD
1 LS MCOND CC LI LF CONST/NA
1 0 1 X X 0 X X X X 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
3.5
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0
M5
SR
1
SR
2 IAK
FM CALU MA MB M2 MR
B
RB WM
WR MD
MA
D
RAD
1 LS MCOND CC LI LF CONST/NA
1 1 1 0 0 1 X X X X 0 0 1 1 0 0 0 0 1 1 0 0 0 0 1 1 1 1 1 0 0 0
31
Soluções - Introdução à Arquitectura de Computadores -
3.6
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0
M5
SR
1
SR
2 IAK
FM CALU MA MB M2 MR
B
RB WM
WR MD
MA
D
RAD
1 LS MCOND CC LI LF CONST/NA
0 0 0 x x 0 1 0 0 0 0 0 0 0 1 0 0 x 1 1 1 1 0 1 1 1 0 1 1 1 1 0
ou
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
0
M5
SR
1
SR
2 IAK
FM CALU MA MB M2 MR
B
RB WM
WR MD
MA
D
RAD
1 LS MCOND CC LI LF CONST/NA
0 0 0 x x 0 1 0 0 0 0 1 x 1 1 0 0 x 1 1 1 1 0 1 1 1 0 1 1 1 1 0
4.1
MS1 = A11 ·A10 ·A9MS2 = A11MS3 = A11 ·A10 ·A9 ·A8MS4 = A11 ·A10
4.2
a)
M1 = A16 ·A15
M2 = A16 ·A15 ·A14 · A13M3 = A16 ·A15 ·A14
b) 217 = 128K128-32-8-16 = 72 K palavras
32
Soluções - Introdução à Arquitectura de Computadores -
4.3
a)
Início Mem1 = C0000hFim Mem1 = C7FFFh
Início Mem2 = 80000hFim Mem2 = 9FFFFh
Início Mem3 = 40000hFim Mem3 = 7FFFFh
b)
Mem1 = 32K palavrasMem2 = 128K palavrasMem3 = 256K palavras
c)
FFFFFh
C8000h
C0000hMem1
A0000h
Mem2
80000h
Mem3
40000h
00000h
33
Soluções - Introdução à Arquitectura de Computadores -
4.4
a)
S1 = 64K palavrasS2 = 256K palavras
b)
FFFFFh
S2
C0000h
A0000h
S190000h
80000h
40000h
00000h
34
Soluções - Introdução à Arquitectura de Computadores -
5.1
a) 24 bits
b)
Etiqueta Indíce Deslocamento
8 bits 13 bits 3 bits
64K = 216
Como é mapeamento direto, 24 - 16 = 8 bits de etiqueta8 = 23, logo deslocamento tem 3 bitsLogo indíce tem 16-3 = 13 bits
c)
Número da linha EtiquetaDados
0 1 2 3 4 5 6 71FFEh 5Ah ? ? B0h ? ? ? ? ?1FFFh 00h E5h ? ? ? ? ? ? ?
d)
t = 0.98 × 2 + .02 × (2 + 80) = 3, 6ns
5.2
a) 50%
b) 75%
c) 33%
5.3
a) 67%
b) Dimensão do bloco = 4 palavras
c) Desempenho = 200/(60 + .1× 200) = 2, 5
6.1
a) 128 palavras
b) 2k páginas
c) 294h
d) 2B2h
35
Soluções - Introdução à Arquitectura de Computadores -
6.2
a) 5 bits
b) 512 palavras
c) 9h
d) 3 bits
e) 7Ch
6.3
a)15 8 7 0
Indíce Deslocamento
b)
Número de entradas = 256Dimensão da entrada = 1 octeto
7.1
a) 80h, EEh. Sem erros de transmissão.
b) Devido ao desfasamento nas frequências do emissor e receptor (escorregamento).
7.2
a)
1 1 0 0 1 1 0 0 1 1 0 1 1
b) 800ms
7.3 C
36
Soluções - Introdução à Arquitectura de Computadores -
7.4
a) C
b) Ímpar
c) A6h, 65h, 73h
d) 500ms
e) 67%
7.5 3F87E0F8h
37
Soluções - Introdução à Arquitectura de Computadores -
8.1
a)
A B C f(A,B,C)
0 0 0 10 0 1 00 1 0 00 1 1 01 0 0 01 0 1 01 1 0 11 1 1 1
b)
A B C D f(A,B,C,D)
0 0 0 0 00 0 0 1 10 0 1 0 00 0 1 1 10 1 0 0 00 1 0 1 10 1 1 0 00 1 1 1 01 0 0 0 01 0 0 1 01 0 1 0 01 0 1 1 11 1 0 0 11 1 0 1 01 1 1 0 11 1 1 1 1
c)
A B C f(A,B,C)
0 0 0 00 0 1 10 1 0 00 1 1 01 0 0 01 0 1 11 1 0 11 1 1 1
38
Soluções - Introdução à Arquitectura de Computadores -
8.2
a) A B C +A B D +A C D +B C D
b) (A+B) · (C +D)
8.3
a) (A+B) · (B + C)
b) B C +A B
c) A B C +A B C +A B C +A B C
d) (A+B +C) · (A+B + C) · (A+B + C) · (A+B + C)
8.4
F = (B +A D)⊕ (B C +B A D)
F = A B C +A B D +B C D
A
B
CD
F
8.5 Operandos: A e B. Resultado: F
F0 = A0 · B0
F1 = A1 · A0 ·B1 +A1 · A0 · B0 +A1 ·B1 · B0 +A0 ·B1 · B0
F2 = A1 · A0 ·B1 +A1 · B1 ·B0
F3 = A1 · A0 ·B1 · B0
39
Soluções - Introdução à Arquitectura de Computadores -
9.1
0
0
1
2
3
1
2
3O0
O1
O2
O3
O4
O5
O6
O7
O8
O9
O10
O11
O12
O13
O14
O15
1
2
1
2
I0
I1
I2
I3
40
Soluções - Introdução à Arquitectura de Computadores -
9.2
1
2
4
0
1
2
3
4
5
6
7
xyz
f0
f1
f2
f3
9.3
Uma solução:
0
1
2
3
4
5
6
7
AE 0
1
0
B C D
f
9.4
0
A B+S CoutCin
O
8
8 8
A B+S CoutCin
O
8
8 8
A B+S CoutCin
O
8
8 8
A B+S CoutCin
O
8
8 8
Carry
Overflow
A7-A0
A15-A8 A23-A16
A31-A24
B7-B0
B15-B8 B23-B16
B31-B24
A B
S7-S0S15-S8 S23-S16
S31-S24
S
41
Soluções - Introdução à Arquitectura de Computadores -
10.1
a)
R1 R2 R3 R4 R5 R6 R7 PC SP RE
0011 FADD
b)
R1 R2 R3 R4 R5 R6 R7 PC SP RE
F0DB 0011 0002
c)
R1 R2 R3 R4 R5 R6 R7 PC SP RE
C02D 0011 0002
10.2
a)
R1 R2 R3 R4 R5 R6 R7 PC SP RE
036F 0211 0010
b)
R1 R2 R3 R4 R5 R6 R7 PC SP RE
C7EC 0211 0016
c)
R1 R2 R3 R4 R5 R6 R7 PC SP RE
? FAE0 ?
10.3
a)
R1 R2 R3 R4 R5 R6 R7 PC SP RE
01B7 FB2F
b)
R1 R2 R3 R4 R5 R6 R7 PC SP RE
FCA5 03DA 0016
c)
R1 R2 R3 R4 R5 R6 R7 PC SP RE
F596 03DB
42
Soluções - Introdução à Arquitectura de Computadores -
b)
Rotina: CMP R1, R0
BR.Z FIM0
CMP M[R1], R2
BR.Z FIM1
PUSH R1
PUSH R4
Proximo: MOV R4, R1
MOV R1, M[R4+1]
CMP R1, R0
BR.Z Fim00
CMP M[R1], R2
BR.NZ Proximo
MOV R3, M[R1+1]
MOV M[R4+1], R3
POP R4
POP R1
Fim1: MOV R3, 1
RET
Fim00: POP R4
POP R1
Fim0: MOV R3, R0
RET
44