• Nenhum resultado encontrado

Introdução à Arquitetura de Computadores. Coletânea de Problemas. Janeiro 2014

N/A
N/A
Protected

Academic year: 2021

Share "Introdução à Arquitetura de Computadores. Coletânea de Problemas. Janeiro 2014"

Copied!
44
0
0

Texto

(1)

LICENCIATURA EM ENGENHARIA INFORMÁTICA E DE COMPUTADORES

Introdução à Arquitetura de Computadores

Coletânea de Problemas

Janeiro 2014

(Versão 2.1)

(2)

Introdução à Arquitectura de Computadores

-Conteúdo

Codificação de Instruções 3 Interrupções 5 Micro-programação 9 Mapeamento de Memória 12 Caches 15 Memórial Virtual 18 Comunicação 19 Funções Lógicas 21 Circuitos Combinatórios 23 Instruções Assembly 24 Programação Assembly 26 Soluçõ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

(3)

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 RE

0001h 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/Escrita 1 2 3 4 5 1.2

Considere os seguintes valores para os registos do processador P3:

R1 R2 R3 R4 R5 R6 R7 PC SP RE

0001h 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/Escrita 1 2 3 4 5 3

(4)

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 RE

0001h 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/Escrita 1 2 3 4 5 1.4

Considere os seguintes valores para os registos do processador P3:

R1 R2 R3 R4 R5 R6 R7 PC SP RE

94B6h 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.

(5)

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á foi inicializada):

; 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ção INTR1 durante a execução da instrução linha 4.

(6)

Interrupções Introdução à Arquitectura de Computadores

-2.2

Considere o seguinte programa em Assembly do P3. Considere que a rotina EscCont escreve na janela de 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 se carrega 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á ter INT_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.

(7)

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 o procedimento utilizado? Justifique a sua resposta.

c) Indique os passos de inicialização necessários para que a rotina Timer fique associada à interrupção com o vector 15. Exemplifique através de instruções/pseudo-instruções do assembly do P3.

(8)

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). Na zona de respostas indique os valores em falta, considerando que se pretende que o temporizador marque 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.

(9)

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 S R 1 S R 2 IA K FM CALU MA MB M2 MR B RB WM WR MD M A 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 S R 1 S R 2 IA K FM CALU MA MB M2 MR B RB WM WR MD M A D RAD 1 LS MCOND CC LI LF CONST/NA

Zona de rascunho para a pergunta

(10)

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 S R 1 S R 2 IA K FM CALU MA MB M2 MR B RB WM WR MD M A 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 S R 1 S R 2 IA K FM CALU MA MB M2 MR B RB WM WR MD M A D RAD 1 LS MCOND CC LI LF CONST/NA

(11)

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 S R 1 S R 2 IA K FM CALU MA MB M2 MR B RB WM WR MD M A 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 S R 1 S R 2 IA K FM CALU MA MB M2 MR B RB WM WR MD M A D RAD 1 LS MCOND CC LI LF CONST/NA 11

(12)

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 para entradas/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 (menor peso) 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 =

(13)

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ção das três memórias.

(14)

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. Indique também, na figura, o primeiro e último endereço de cada memória.

FFFFFh

80000h

(15)

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ória principal de 16M palavras de 1 octeto. Considere ainda que a cache tem blocos de 8 palavras e utiliza mapeamento 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 interpretado por esta cache.

c) Considere uma situação em que se pretende efectuar a leitura do seguinte conjunto de informação em sequência:

Endereço Dados 5AFFF8h 27h 5AFFF2h B0h 00FFF8h E5h

Considerando a cache inicialmente vazia, indique, justificando, qual é o conteúdo da cache no final destes acessos. Não se esqueça de indicar o número das linhas, e os campos etiqueta e dados para cada 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 o tempo de acesso à memória primária é de 80ns. Calcule o tempo médio para um acesso de leitura.

(16)

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 de 64K 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 blocos com 4 palavras e uma política de escrita “write-back” com “write-allocate”. Se esta cache for usada exclusivamente para acesso aos dados indique qual a taxa de sucesso (“hit rate”). Não se esqueça que as instruções SUB e ADD geram 2 acessos a dados: um na leitura dos operandos, outro na escrita do resultado.

b) Se, em alternativa, for usada uma cache com o dobro da capacidade (2K palavras) e esta possuir blocos 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 cache possui um tempo de acesso de 40 ns. Indique o valor da taxa de sucesso (“hit rate”) a partir do qual compensa ter cache.

(17)

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 dados com 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 a instruçã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 melhore

o desempenho ao executar este programa. Capacidade = 1k palavras

Dimensão do bloco = palavras Vias de associatividade =

c) Admita que o desempenho do processador ao executar uma determinada aplicação é determinado pelo tempo de acesso à memória. Calcule o desempenho de um sistema com cache em relação a um sistema 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ós verificação da cache.

(18)

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 de deslocamento 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ído por 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 de páginas que será consultado.

d) Indique o número de bits guardados em cada entrada da tabela de páginas (sem contabilizar os bits de 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, linhas de endereço A15-A0. As páginas têm 256 palavras.

(19)

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és de comunicação série assíncrona. Nesta transmissão, primeiro é enviado o bit menos significativo de um valor 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 último lugar, 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

(20)

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 conjunto de 4 palavras possíveis, por uma ordem arbitrária: 65h,73h,A6h,CEh. A transmissão de cada palavra assume: 1 start-bit, 8 bits de dados, 1 bit de paridade e 2 stop-bits. As palavras são transmitidas começ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, indique o 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ção for recebida a sequência de bits indicada a seguir, indique em hexadecimal qual foi a informação útil recebida. Assuma que o bit mais significativo é o primeiro a ser transmitido.

(21)

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.

(22)

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 dois algarismos.

(23)

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 um descodificador 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 que considere 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 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 1 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 + 1 variá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, utilizando somadores de 8 bits, que têm, como saída, a soma, o bit de transporte e o bit de excesso. Como interliga os somadores para realizar a soma pretendida?

(24)

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 RE

0001h 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ção suficiente para determinar o novo valor de um registo. As perguntas são independentes, isto é, assuma como 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 RE

0001h 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ção suficiente para determinar o novo valor de um registo. As perguntas são independentes, isto é, assuma como valores iniciais para cada pergunta os indicados na tabela acima.

a) DEC R3

(25)

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 RE

94B6h 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ção suficiente para determinar o novo valor de um registo. As perguntas são independentes, isto é, assuma como 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

(26)

Programação Assembly Introdução à Arquitectura de Computadores

(27)

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 simplesmente ligada. A estrutura de dados desta lista contém apenas um valor inteiro e um apontador para o elemento seguinte. Estes dois campos encontram-se em posições consecutivas de memória, por esta ordem. O fim da 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 se elemento 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údo 0120h 45A9h 0121h 075Ah . . . 075Ah BC13h 075Bh 3F98h . . . 3F98h 54EEh 3F99h 0000h

Após uma chamada à rotina com R2=BC13h, a lista ficará:

45A9h 3F98h 54EEh 0 Endereço Conteúdo 0120h 45A9h 0121h 3F98h . . . 075Ah BC13h 075Bh 3F98h . . . 3F98h 54EEh 3F99h 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.

(28)

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 valores de uma coluna de uma tabela. A tabela tem um número variável de colunas (Ncols). O número de linhas (Nlinhas) da tabela é fixo e igual a 256. O valor da média deverá ser calculado sem perda de precisão, considerando que os valores presentes na tabela estão compreendidos entre -32768 e +32767 e que 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ços consecutivos, a que se seguem os valores da 2a linha e assim por diante. Apresenta-se em seguida um exemplo para uma tabela com 2 linhas e 3 colunas, guardada a partir do endereço 80A0h:

Tabela 1001 1002 1003 2001 2002 2003

Memória

Endereço 80A0h 80A1h 80A2h 80A3h 80A4h 80A5h Conteú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 da tabela e o número da coluna (entre 1 e Ncols) de que se deseja calcular a média. Os parâmetros são passados pela pilha, de acordo com o exemplo de chamada indicado a seguir. O resultado é devolvido atravé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.

(29)

Soluções Introdução à Arquitectura de Computadores

-Soluções

1.1

Endereço Dados Leitura/Escrita

1 0010h 5033h L

2 0011h 2 L

3 0372h ? L

4 7ADEh ? E

1.2

Endereço Dados Leitura/Escrita

1 0010 A1F6 L

2 0011 0020 L

3 0121 ? L

4 0121 0000 E

1.3

Endereço Dados Leitura/Escrita

1 0210 1C00 L

2 FADF ? L

3 FAE0 ? L

1.4

Endereço Dados Leitura/Escrita

1 03D9 883E L 2 03DA 0002 L 3 FB32 ? L 4 FB32 ? E 2.1 a) 0055h b) 0000h c) 8000h 29

(30)

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 0 quano 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 é colocado uma palavra na pilha para esse valor ser colocado posteriormente no RE, esse valor é zero e logo as 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

(31)

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 S R 1 S R 2 IA K FM CALU MA MB M2 MR B RB WM WR MD M A 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 S R 1 S R 2 IA K FM CALU MA MB M2 MR B RB WM WR MD M A 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

(32)

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 S R 1 S R 2 IA K FM CALU MA MB M2 MR B RB WM WR MD M A 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 S R 1 S R 2 IA K FM CALU MA MB M2 MR B RB WM WR MD M A 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 · A9 MS2 = A11 MS3 = A11 · A10 · A9 · A8 MS4 = A11 · A10 4.2 a) M1 = A16 · A15

M2 = A16 · A15 · A14 · A13 M3 = A16 · A15 · A14 b) 217

= 128K

(33)

Soluções Introdução à Arquitectura de Computadores -4.3 a) Início Mem1 = C0000h Fim Mem1 = C7FFFh Início Mem2 = 80000h Fim Mem2 = 9FFFFh Início Mem3 = 40000h Fim Mem3 = 7FFFFh b) Mem1 = 32K palavras Mem2 = 128K palavras Mem3 = 256K palavras c) FFFFFh C8000h C0000h Mem1 A0000h Mem2 80000h Mem3 40000h 00000h 33

(34)

Soluções Introdução à Arquitectura de Computadores -4.4 a) S1 = 64K palavras S2 = 256K palavras b) FFFFFh S2 C0000h A0000h S1 90000h 80000h 40000h 00000h

(35)

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 etiqueta 8 = 23

, logo deslocamento tem 3 bits Logo indíce tem 16-3 = 13 bits c)

Número da linha Etiqueta Dados

0 1 2 3 4 5 6 7 1FFEh 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

(36)

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 = 256 Dimensã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

(37)

Soluções Introdução à Arquitectura de Computadores -7.4 a) C b) Ímpar c) A6h, 65h, 73h d) 500ms e) 67% 7.53F87E0F8h 37

(38)

Soluções Introdução à Arquitectura de Computadores -8.1 a) A B C f (A, B, C) 0 0 0 1 0 0 1 0 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 b) A B C D f (A, B, C, D) 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 1 1 0 1 1 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 1 1 1 0 0 1 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 c) A B C f (A, B, C) 0 0 0 0 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1

(39)

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

C

D

F

8.5Operandos: A e B. Resultado: F F 0 = A0 · B0 F 1 = A1 · A0 · B1 + A1 · A0 · B0 + A1 · B1 · B0 + A0 · B1 · B0 F 2 = A1 · A0 · B1 + A1 · B1 · B0 F 3 = A1 · A0 · B1 · B0 39

(40)

Soluções Introdução à Arquitectura de Computadores -9.1 0 0 1 2 3 1 2 3 O0 O1 O2 O3 O4 O5 O6 O7 O8 O9 O10 O11 O12 O13 O14 O15 1 2 1 2 I0 I1 I2 I3

(41)

Soluções Introdução à Arquitectura de Computadores -9.2 1 2 4 0 1 2 3 4 5 6 7 x y z f0 f1 f2 f3 9.3 Uma solução: 0 1 2 3 4 5 6 7 A E 0 1 0 B C D f 9.4 0 A B + S Cout Cin O 8 8 8 A B + S Cout Cin O 8 8 8 A B + S Cout Cin O 8 8 8 A B + S Cout Cin 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-S0 S15-S8 S23-S16 S31-S24 S 41

(42)

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

(43)

Soluções Introdução à Arquitectura de Computadores

-11.1

a)

(44)

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

Referências

Documentos relacionados

Por fim, na terceira parte, o artigo se propõe a apresentar uma perspectiva para o ensino de agroecologia, com aporte no marco teórico e epistemológico da abordagem

A realização desta dissertação tem como principal objectivo o melhoramento de um sistema protótipo já existente utilizando para isso tecnologia de reconhecimento

F REQUÊNCIAS PRÓPRIAS E MODOS DE VIBRAÇÃO ( MÉTODO ANALÍTICO ) ... O RIENTAÇÃO PELAS EQUAÇÕES DE PROPAGAÇÃO DE VIBRAÇÕES ... P REVISÃO DOS VALORES MÁXIMOS DE PPV ...

Realizar a manipulação, o armazenamento e o processamento dessa massa enorme de dados utilizando os bancos de dados relacionais se mostrou ineficiente, pois o

O capítulo I apresenta a política implantada pelo Choque de Gestão em Minas Gerais para a gestão do desempenho na Administração Pública estadual, descreve os tipos de

de professores, contudo, os resultados encontrados dão conta de que este aspecto constitui-se em preocupação para gestores de escola e da sede da SEduc/AM, em

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento

Fonte: elaborado pelo autor. Como se pode ver no Quadro 7, acima, as fragilidades observadas após a coleta e a análise de dados da pesquisa nos levaram a elaborar