coletânea de problemas de iac - fenix.tecnico.ulisboa.pt · memória, especificando o valor do...

44
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

Upload: lykhanh

Post on 24-Jan-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

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 -

Programação Assembly

26

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 -

11.1

a)

43

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