arquitectura de computadores - instituto superior técnico...

40
Arquitectura de Computadores Colectânea de Problemas Fevereiro de 2003

Upload: vodien

Post on 09-Nov-2018

216 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

Arquitectura de Computadores

Colectânea de Problemas

Fevereiro de 2003

Page 2: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

2

Page 3: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

1 Transferência entre Registos

1. Represente 17 e -24 em notação de complemento para 2, usando 8 bits.

2. Converta os segundos números decimais para números representados em binário com 8 bits(incluindo o sinal) na notação de complemento para 2. Realize as operações indicadas comos números e anote, para cada caso, o valor dos últimos dois bit de transporte. Explicite seesses bits indicam um overflow. Lembre-se que, com 8 bits, se podem representar númerosde -128 a +127.

a) (+65)+(+36)

b) (+65)-(-90)

c) (-36)+(-90)

d) (-65)-(+90)

3. Considere um sistema com 3 registos de 4 bits,R1,R2eR3. Considere que os registos contêmnúmeros sem sinal. Inicialmente R1 contém o valor 5, R2 o valor 3 e R3 o valor 6.

Indique o conteúdo dos registos após cada uma das microoperações seguintes:

a) R1 � R1 � R3

b) R2 � R1+ R2

c) R3 �SHL R1

4. Começando com um número de 8 bits em notação de complemento para 2, R = 10110010,indique os valores obtidos aplicando cada um dos deslocamentos seguintes:

a) R�SHL R (deslocamento à esquerda)

b) R�SHR R (deslocamento à direita)

c) R�ROL R (rotação à esquerda)

d) R�ROR R (rotação à direita)

e) R�SHAL R (deslocamento aritmético à esquerda)

f) R�SHAR R (deslocamento aritmético à direita)

5. Projecte um circuito aritmético de 4 bits com duas variáveis de selecção � � e � � que gere asseguintes operações aritméticas.

� � � � ��� = 0 ��� = 10 0 � � � (soma) � � � � �0 1 � (transferência) � � � (incremento)1 0 � � (negação) � � � � (mudança de sinal)1 1 � � � � � � � � (subtracção)

3

Page 4: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

Bancode

Registos

ULA

RW

Bits deEstado

Função

RegD

write

A B

D

Constante

LeituraDados

EscritaDados

MUX D

MB EndereçoMemória

A B

SelD

SelA

SelB

0 1

MUX B01

RegA

MD

RegB

n

nn

n

n

n

n

3

3

3

5

Figura 1: Unidade de processamento.

6. Considere a unidade de processamento da Figura 1. A palavra de controlo está organizadada seguinte forma:

17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

RegD RegA RegB MB operação ULA MD RW MW

As operações da ULA estão definidas na Tabela 1. Especifique a palavra de controlo quedeve ser aplicada à unidade de processamento para realizar as seguintes micro-operações.

a) R2 � R1+ 1

b) R3 � R4+ R5

c) R6 �NOT R6

d) R7 � R7 - 1

e) R1 �SHR R1

f) R2 � R5+ Constante

g) R5 � R1 � 2

h) R6 � M[R7]

i) M[R0] � R3

7. Nas condições da alínea anterior, determine as microoperações executadas para cada umadas seguintes palavras de controlo.

a) 001 010 011 0 00001 0 1 0

b) 110 001 000 0 10101 0 1 0

4

Page 5: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

������� ��� Micro-Operação

00000� � � � soma

00001� � � � subtracção

00010� � � � � � soma com bit transporte

00011� � � � � � subtracção com bit transporte

00100� � � � decremento

00101� � � � incremento

00110� � � � decremento, se � �

00111� � � � incremento, se � �

01-00� � complemento

01-01� � � � conjunção

01-10� � � � disjunção

01-11� � � � ou exclusivo

10000� �

SHR deslocamento lógico à direita

10001� �

SHL deslocamento lógico à esquerda

10010� �

SHRA deslocamento aritmético à direita

10011� �

SHLA deslocamento aritmético à esquerda

10100� �

ROR rotação à direita

10101� �

ROL rotação à esquerda

10110� �

RORC rotação à direita com transporte

10111� �

ROLC rotação à esquerda com transporte

11- - -� � transferência

Tabela 1: Tabela das micro-operações da ULA.

c) 010 101 000 0 01111 0 1 0

d) 101 000 000 0 00000 1 1 0

e) 111 111 000 1 01001 0 1 0

f) 010 000 000 0 01100 0 0 1

8. Um sistema digital tem três registos: AR, BRe PR. Três flip-flops fornecem as variáveis decontrolo do sistema: � é um flip-flop que é posto a 1 por um sinal exterior para iniciar aoperação do sistema; � e � são dois flip-flops usados para sequenciar as micro-operaçõesquando o sistema está em funcionamento. Um quarto flip-flop é posto a 1 pelo sistemaquando a operação está completa. A operação do sistema é descrita pelas seguintes instru-ções de transferência de registos:

� : PR� 0, � � 0, � 0, � � 1� : � � 0, if (AR=0) then ( � 1) else (� � 1)�: PR� PR+ BR, AR� AR- 1,

� � 0, � � 1

5

Page 6: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

a) Mostre que o sistema digital descrito multiplica o conteúdo dos registo ARe BRe colocao resultado em PR.

b) Desenhe um diagrama de blocos da implementação em hardware. Inclua um sinal deinício para colocar a 1 o flip-flop � e um sinal de operação completa a partir do flip-flop .

9. [2� Exame, 01/02]

1. Considere a seguinte unidade de processamento:

RA

RB

LdA

LdB

ResA

F

0

1

LoadReset

Load

MUX

+

+

n

n

n nn

Sel

Descreva esta unidade de processamento na linguagem de transferência entre registos estu-dada nas aulas.

10. [1� Exame, 00/01]

Um sistema digital tem três registos de � bits: RA, RB e RC. Três flip-flops - K1, K2, K3 -fornecem as variáveis de controlo. N corresponde à flag Negative associada ao registo RAeStart é um sinal de controlo externo.

A operação do sistema é descrita pelas seguintes instruções de tranferência entre registos:

Start.K1: RA � DataInA ,RB� DataInB ,RC� 0, K1 � 0, K2 � 1K2: RA � RA-RB, RC� RC+1, K2 � 0, K3 � 1K3: K3 � 0, if (N=1) then (RA� RA+RB, RC� RC-1, K1 � 1) else (K2 � 1)

a) Indique, justificando sucintamente, qual é a função que esta descrição de tranferênciaentre registos executa. (Sugestão: calcule o resultado com os valores iniciais RA=7 eRB=3)

b) Desenhe um diagrama de blocos da unidade de processamento (registos e funções arit-méticas) identificando claramente os bits de controlo e os bits de estado.

c) Desenhe a unidade de controlo para este sistema executar a função indicada, utilizandoum flip-flop por estado.

11. [1� Exame, 99/00]

Um sistema digital tem três registos: RC, RDe RN. O sistema recebe a informação a processarem RDe produz um resultado na linha BitOut . Quatro flip-flops – K1, K2, K3 e K4 – forne-cem as variáveis de controlo do sistema. P é uma flag gerada internamente pelo sistema; D0

6

Page 7: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

é o bit de menor peso de RD. Admita que RNfoi previamente inicializado com um númerointeiro � � �.A operação do sistema é descrita pelas seguintes instruções de transferência entre registos:

K1: RD � DataIn ,RC� RN, BitOut � 1, P � 1, K1 � 0, K2 � 1K2: BitOut � 0, RC� RC- 1, K2 � 0, K3 � 1K3: BitOut � D0, P � P � D0, RC� RC-1, RD� shr RD , if (RC=0) then (K3 �0,

K4�1)K4: BitOut � P, K4 � 0, K1 � 1

(shr : deslocamento à direita de 1-bit)

a) Indique, justificando sucintamente, qual é a função que esta descrição de transferênciaentre registos executa. De que campos se compõe o resultado?

b) Desenhe um diagrama de blocos da unidade de processamento (registos e funções ari-tméticas e lógicas) identificando claramente os bits de controlo e os bits de estado.

c) Sintetize a função geradora de BitOut e desenhe o seu diagrama lógico.

12. [1� Exame, 97/98]

Considere um sistema com 3 registos de 4 bits, AR, BRe CR, e no qual as seguintes operações,em complemento para 2, são possíveis:

X. �: CR � AR + BRY.S: CR � AR - BR

Desenhe um diagrama de blocos da implementação em hardware deste sistema. Assuma quetem disponíveis registos, um somador (com carry-in e carry-out) e todas as portas lógicassimples que quiser. As entradas de ARe BR, assim como os sinais de controlo X, Y e S vêmdo exterior. Não se preocupe com o carregamento dos registos ARe BR.

13. [2� Exame, 97/98]

Considere um sistema com 4 registos de 32 bits, AR, BR, CRe DR, e no qual as seguintesoperações são possíveis:

X: CR � max(AR, BR)Y: DR � CR

em que a função max retorna o maior dos operandos (números sem sinal).

Desenhe um diagrama de blocos da implementação em hardware deste sistema. Assuma quetem disponíveis os seguintes blocos: registos, flip-flops, comparadores, somadores, multi-plexadores, shifters e lógicos. As entradas de ARe BR, assim como os sinais X e Y, vêm doexterior.

14. Considere um sistema com 6 registos de 32 bits, AR, BR, CR, DR, SRe TR, e um flip-flop C eno qual as seguintes operações são possíveis:

7

Page 8: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

X: SR � AR + BR, C � CoutY: TR � CR + DR + C

Desenhe um diagrama de blocos da implementação em hardware deste sistema. Assuma quetem disponíveis os blocos com a funcionalidade que desejar, por exemplo, comparadores,multiplexadores, etc. A única restrição é que só pode usar um somador. Este somador, paraalém dos operandos e do resultado de 32 bits, tem um bit de entradaCin , o carry-in, e um bitde saída Cout , o carry-out. As entradas de AR, BR, CRe DR, assim como os sinais de controloX e Y, vêm do exterior.

15. [1� Exame, 00/01]

Considere a seguinte unidade de processamento:

Banco de

Registos

Mux A

ALU

Unidade de

Deslocamento

Memória

Mux D

Constante

2ns

5ns

1ns

4ns

3ns

1ns

5ns

Os tempos indicados na figura são os atrasos de cada módulo:Módulo Atraso

Mux A 1nsALU 4nsUnid. Deslocamento 3nsMemória (leitura) 5nsMux D 1nsLeitura registos 5nsEscrita registo 2ns

Para simplificar, considere apenas os casos de leitura da memória. Assuma também que aConstante está disponível em simultâneo com o valor dos registos de entrada.

a) Qual é a frequência máxima de funcionamento deste circuito?

8

Page 9: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

b) Pretende-se colocar este circuito a funcionar com um pipeline de 2 andares. Indiquena figura seguinte onde colocar os registos que separam os dois andares do pipeline.Justifique.

Banco de

Registos

Mux A

ALU

Unidade de

Deslocamento

Memória

Mux D

Constante

2ns

5ns

1ns

4ns

3ns

1ns

5ns

16. Indique se as seguintes afirmações são verdadeiras ou falsas:

a) Em complemento para 2, para transformar um somador num subtractor basta comple-mentar bit a bit um dos operandos e colocar o sinal carry-in a 1.

b) O intervalo de números inteiros que se consegue representar num byte é o mesmo nasrepresentações de sinal-magnitude e complemento para 2.

c) Se num byte é possível representar o número � em complemento para 2, então tambémé possível representar �� .

d) O número 8000h é inválido em complemento para 2.

e) 8001h em sinal/magnitude e FFFEh em complemento para 2 representam o mesmovalor.

9

Page 10: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

2 Unidade de Controlo

1. Considere o sistema da figura:

Controlo

Load1

Load2

CarryOut

DataIn

DataOut

DV

al

Ack

In

Re

sRe

d

Ca

rry

Ack

Ou

t

Registo 1 Registo 2

Somador

O comportamento pretendido é o seguinte. Do exterior, através do barramento ����� ,são transferidos, sucessivamente, dois números que serão guardados nos dois registos. Osomador (circuito combinatório) realiza a soma e coloca-a no barramento ������. A trans-ferência dos dados de entrada faz-se através de um processo normal de handshaking paracada dado. O resultado é transferido para um circuito exterior, também com um protocolode hanshaking. Esse circuito exterior é ainda avisado pela linha � ���� se o resultado da somateve ou não carry out.

Nota: Para recordar o protocolo de handshaking se necessitar, ilustra-se o diagrama temporalrespectivo:

Dados

DVal

Ack

Defina o fluxograma do controlo necessário.

2. Pretende-se projectar um sistema digital que calcule o máximo divisor comum de dois nú-meros inteiros positivos de � bits. O seguinte pseudo-código descreve um algoritmo conhe-cido para realizar esta operação:

Maior_Divisor_Comum(X, Y)1. enquanto (Y �0){2. se X�Y3. então X=X-Y4. se não, troca X com Y5. }6. resultado em X

10

Page 11: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

a) Proponha uma unidade de processamento para este sistema.

b) Desenhe o fluxograma que descreve o algoritmo sobre essa unidade de processamento.Assuma que existe um sinal de entrada inicio para dar início à operação, e que nessaaltura os operandos já estão carregados nos registos.

c) Obtenha um circuito sequencial que implemente este fluxograma, utilizando lógica dis-creta.

3. [2� Exame, 01/02]

Considere a seguinte unidade de controlo micro-programada:

CAR

ROM deControlo

MUXC0

1

MUXS

3

2

Sel

inicio

Z

+1

1

0

Dec

Mult

Estado Seguinte

Sel

SEL2 2

2

27

fim

0

1

O registo CARé inicializado a 0. A micro-instrução tem o seguinte formato:

6 5 4 3 2 1 0

Estado Seguinte Sel. Condição fim Mult Dec

A ROM de Controlo tem os seguintes valores nas suas 4 posições de memória:

End. Dados0 00h1 2Bh2 14h3 5Fh

Determine o fluxograma realizado por esta unidade de controlo.

4. [1� Exame, 01/02]

Considere um sistema digital cuja unidade de processamento é constituída por um somadore três registos de � bits: RA, RBe RC. Cada um destes registos possui os seguintes quatrosinais de controlo:Reset: para colocar o registo a zero (ResA, ResB, ResC)Inc: para incrementar o valor guardado no registo (IncA, IncB, IncC)Dec: para decrementar o valor guardado no registo (DecA, DecB, DecC)Load: para guardar no registo o valor à sua entrada, definidos em termos de lingua-

gem de transferência entre registos da seguinte forma:

11

Page 12: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

LdA: RA�RA+RBLdB: RB�RA

LdC �� : RC�DataInLdC �� : RC�RA

Para além disso, os registos dispõem de uma saída Zero (ZA, ZB, ZC) que fica activa quandoo valor guardado no registo é zero.

a) Desenhe um diagrama de blocos desta unidade de processamento, identificando clara-mente os bits de controlo e os bits de estado.

b) Pretende-se calcular com esta unidade de processamento os números de Fibonacci, cujadefinição é dada por:

� � �� � ��� ��� � � ���� , para � � �

Assuma que o valor de � está disponível na entradaDataIn quando um sinal de controloexterno Start é activado. Após o cálculo, o sistema deve activar uma saída de controloReady e o resultado deve estar disponível em RC.

Desenhe o fluxograma da unidade de controlo para este sistema.

c) Projecte o circuito lógico da unidade de controlo da alínea b), utilizando um flip-floppor estado.

5. [2� Exame, 00/01]

Pretende-se construir um sistema que calcule o factorial (� � � � �� � �� � �� � �� � � � ��� ��)de um número com a Unidade de Processamento da figura seguinte:

RA

RB

X

DataIn

DataOut

LoadDec

One

LoadSet

Esta unidade possui um multiplicador e dois registos com os seguintes sinais:

12

Page 13: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

RA: Load - memoriza no registo o valor que estiver à sua entrada.Set - coloca o registo a 1.

RB: Load - memoriza no registo o valor que estiver à sua entrada.Dec - decrementa o valor guardado no registo.One - flag que fica 1 quando o valor do registo é 1, e a 0 caso contrário.

Assuma que existe um sinal externo Start para dar início à operação, estando o valor para oqual se pretende calcular o factorial na entrada DataIn . O resultado deve ficar disponívelem DataOut e um sinal Ready deve ser activado.

a) Descreva o funcionamento desta Unidade de Processamento na linguagem de transfe-rência entre registos.

b) Desenhe o fluxograma da Unidade de Controlo para este sistema.

c) Projecte esta Unidade de Controlo usando o método que preferir, devendo o estado serguardado em básculas do tipo D.

6. [2� Exame, 99/00]

Um sistema digital tem três registos: RA, RBe RC. Três flip-flops – K1, K2 e K3 – fornecem asvariáveis de controlo do sistema. I e Z são, respectivamente, as flags Ímpar e Zero do registoRB.

A operação do sistema é descrita pelas seguintes instruções de transferência entre registos:

K1: RA� DataInA ,RB� DataInB , RC� 0, K1 � 0, K2 � 1K2: K2 � 0, K3 � 1, if (I = 1) then (RC � RC + RA)K3: RA� shl RA , RB� shr RB , K3 � 0, if (Z = 1) then (K1 � 1) else (K2

� 1)

(shl, shr : deslocamento de 1 bit à esquerda e à direita respectivamente)

a) Indique, justificando sucintamente, qual é a função que esta descrição de transferênciaentre registos executa?

b) Desenhe um diagrama de blocos da unidade de processamento (registos e funções ari-tméticas e lógicas) identificando claramente os bits de controlo e os bits de estado.

c) Desenhe a unidade de controlo para este sistema executar a função indicada, utilizandoum flip-flop por estado.

7. [1� Exame, 98/99]

As figuras seguintes representam um controlador de DMA dedicado à leitura de um portode E/S e o diagrama das temporizações associadas à transferência. Todos os dispositivospartilham os barramentos de endereços e de dados com o CPU.

13

Page 14: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

Drq

DackPorto de E/S Controladorde DMA

MemoriaWrite

Address

Brq Bgt

CPU

Brq

Bgt

Drq

Dack

Address

Write

Por cada pedido de serviço do porto (Drq�1), o controlador pede ao CPU o acesso ao barra-mento da memória (Brq�1); quando este liberta o barramento (Bgt�1) o controlador faz aleitura do porto para um registo interno (Dack�1) e, a seguir, faz a escrita deste para a me-mória (sequência Address=1, Write=1); por fim devolve o controlo do barramento ao CPU(Brq�0). Os pares de sinais Drq,Dack e Brq,Bgt seguem um protocolo de handshake.

O endereço inicial da região de memória para onde é feita a escrita é pré-programado eé incrementado por cada palavra transferida; o número de palavras a transferir também épré-definido e a transferência é feita em modo de bloco.

Internamente o canal de DMA é constituído pelos seguintes registos, portos e flags:

� AR (address register): armazena o endereço de memória para onde são feitas as escritas;� CR (count register): é inicializado com o número de palavras a transferir;� DR (data register): armazena temporariamente os dados em trânsito entre o porto deE/S e a memória;

� registos de 1 bit com sinais de controlo a enviar para a interface externa do controlador:

– DackR (DMA Acknowledge)– BrqR (Bus Request)– AddressR (coloca o valor de AR no barramento de endereços)– WriteR

� flags que correspondem a entradas externas:

– Drq (DMA Request)– Bgt (Bus Granted)

� Z (Zero): estado do CR.

Os registos AR e CR são realizados com contadores binários up/down com carregamento deuma palavra, com controlo da direcção de contagem e com indicação de Zero. As básculasde estado são básculas D.

14

Page 15: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

Esta organização interna está representada na figura seguinte:

Registos de 1 bit

AR

CR

DR

Data In

Data Out

Controlo Externo

Reg

F

3

3

n

n

j

kflags

mAddress

As entradas Reg e F servem respectivamente para seleccionar qual o registo a alterar e quala operação sobre esse registo, de acordo com as seguintes tabelas:

R2 R1 R0 Registo F2 F1 F0 Função Registos em que é válida0 0 0 AR 0 0 0 Load from Data In AR, CR, DR0 0 1 CR 0 0 1 Increment (R�R+1) AR0 1 0 DR 0 1 0 Decrement (R�R-1) CR1 0 0 DackR 1 0 1 Set (R�1) DackR, BrqR1 0 1 BrqR AddressR, WriteR1 1 0 AddressR 1 1 0 Reset (R�0) DackR, BrqR1 1 1 WriteR AddressR, WriteR

a) Indique, justificando, o formato da palavra de controlo.

b) Escreva em linguagem de transferência de registos o programa que executa um ciclode transferência, incluindo o controlo dos sinais externos. Por cada micro-instruçãoque envolva o datapath especifique o conteúdo da palavra de controlo. Em caso desalto, indique a condição do salto e para que linha salta. Assuma que AR e CR forampreviamente carregados.

15

Page 16: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

# Transferência de registos Palavra de Controlo123456789101112131415161718

c) Sugira modificações à estrutura do datapath e da palavra de controlo para acelerar ociclo de transferência porto de E/S � Memória.

d) Considere agora que o porto de E/S é de 16 bits e o barramento da memória é de 32bits. Pretendia-se que o controlador de DMA fosse capaz de ler duas palavras (de 16bits cada) do porto de E/S seguidas de uma só escrita (de 32 bits) na memória. Sugiraas modificações ao datapath e à palavra de controlo adequadas para realizar esta novaforma de transferência.

8. As figuras seguintes representam um controlador de DMA dedicado à leitura de um portode E/S e o diagrama das temporizações associadas à transferência. Todos os dispositivospartilham os barramentos de endereços e de dados com o CPU.

16

Page 17: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

Drq

DackPorto de E/S Controladorde DMA

MemoriaWrite

Address

Brq Bgt

CPU

Brq

Bgt

Drq

Dack

Address

Write

Por cada pedido de serviço do porto (Drq�1), o controlador pede ao CPU o acesso ao barra-mento da memória (Brq�1); quando este liberta o barramento (Bgt�1) o controlador faz aleitura do porto para um registo interno (Dack�1) e, a seguir, faz a escrita deste para a me-mória (sequência Address=1, Write=1); por fim devolve o controlo do barramento ao CPU(Brq�0). Os pares de sinais Drq,Dack e Brq,Bgt seguem um protocolo de handshake.

O endereço inicial da região de memória para onde é feita a escrita é pré-programado eé incrementado por cada palavra transferida; o número de palavras a transferir também épré-definido. A sincronização entre o programa que corre no CPU e o fim da transferência éfeita por interrupção gerada pelo porto de E/S, não envolvendo o controlador de DMA.

a) Desenhe o fluxograma de um ciclo de transferência entre o porto de E/S e a memória,especificando a leitura e o controlo apenas dos sinais externos relevantes (Drq, Dack, Brq,Bgt, Address, Write).

b) Sintetize a lógica de controlo das transferências usando a técnica de 1 flip-flop por es-tado.

9. Indique se as seguintes afirmações são verdadeiras ou falsas:

a) Considere que lhe é dado um fluxograma, representando uma unidade de controlo,para ser realizado usando 1 flip-flop por estado. Neste caso, a codificação dos estadosé irrelevante.

b) O registo CARde uma unidade de controlo microprogramada serve para guardar oestado actual da máquina de estados.

17

Page 18: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

3 Instruções Assembly

1. [1� Exame, 01/02]

Considere o seguinte programa Assembly, do processador P3:

; programa principal ; servico a interrupcao1. ORIG 0000h inicio 8. intr: POP R12. inicio: ENI 9. PUSH R23. MOV R1, 1 10. MOV R2, 14. MOV R2, 2 11. MOV R3, 25. MOV R3, 3 12. SUB R3, R26. CMP R2, R3 13. POP R27. fim: JMP fim 14. PUSH R1

15. RTI

Indique, justificando, o valor deR1,R2,R3e o estado de todos os bits de estado após a execu-ção do programa, assumindo que ocorreu uma interrupção durante a execução da instruçãoCMPna linha 6.

2. [2� Exame, 01/02]

Considere os seguintes valores para os registos do processador P3:

R1 R2 R3 R4 R5 R6 R7 PC SP RE93BAh CC00h 18AFH 0034h 6BEEh CF03h 8441h 0707h F105h 0004h

Para as alíneas a), b) e c), indique qual o novo valor, em hexadecimal, para todos (e apenas)os registos que são alterados pela execução de cada instrução. Use ? para indicar que nãotem informação suficiente para determinar o novo valor de um registo.

As alíneas são independentes, isto é, assuma como valores iniciais para cada alínea os indi-cados na tabela acima.

a) SUB R2, 105dR1 R2 R3 R4 R5 R6 R7 PC SP RE

b) RORC R1, 2R1 R2 R3 R4 R5 R6 R7 PC SP RE

c) CALL.NZ BEEFhR1 R2 R3 R4 R5 R6 R7 PC SP RE

d) Na execução da instrução XOR M[R6],R2 , indique na tabela seguinte qual é a sequên-cia de acessos àmemória, especificando o endereço, dados e tipo de acesso (leitura/escrita).Nota1: a tabela tem 5 posições, utilize apenas as que achar necessárias.Nota2: utilize os valores iniciais dos registos indicados na tabela no cimo desta página.

18

Page 19: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

Endereço Dados Leitura/Escrita12345

3. [1� Exame, 01/02]

Considere os seguintes valores para os registos do processador P3:

R1 R2 R3 R4 R5 R6 R7 PC SP REF000h 672Bh C05Dh 23E3h 0012h 300Bh B7FFh 09CAh A01Fh 0007h

Para as alíneas a), b) e c), indique qual o novo valor, em hexadecimal, para todos (e apenas)os registos que são alterados pela execução de cada instrução. Use ? para indicar que nãotem informação suficiente para determinar o novo valor de um registo.

As alíneas são independentes, isto é, assuma como valores iniciais para cada alínea os indi-cados na tabela acima.

a) TEST R5, FF00hR1 R2 R3 R4 R5 R6 R7 PC SP RE

b) ADD R3, R1R1 R2 R3 R4 R5 R6 R7 PC SP RE

c) RTIR1 R2 R3 R4 R5 R6 R7 PC SP RE

d) Na execução da instrução PUSH M[E340h] , indique na tabela seguinte qual é a sequên-cia de acessos àmemória, especificando o endereço, dados e tipo de acesso (leitura/escrita).Nota1: a tabela tem 5 posições, utilize apenas as que achar necessárias.Nota2: utilize os valores iniciais dos registos indicados na tabela no cimo desta página.

Endereço Dados Leitura/Escrita12345

[1� Exame, 00/01]

Considere os seguintes valores para os registos do processador P3 das aulas práticas:

R1 R2 R3 R4 R5 R6 R7 PC SP RE94AFh 672Bh C05Dh 23E3h 0012h 300Bh B7FFh 909Ch 0A1Bh 0007h

19

Page 20: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

Para as alíneas seguintes, indique qual o novo valor, em hexadecimal, para todos (e apenas)os registos que são alterados pela execução de cada instrução. Assuma como valores iniciaispara cada alínea os indicados na tabela acima.

a) MOV R2, 32d

R1 R2 R3 R4 R5 R6 R7 PC SP RE

b) NEG R7

R1 R2 R3 R4 R5 R6 R7 PC SP RE

c) RORC R1, 2

R1 R2 R3 R4 R5 R6 R7 PC SP RE

d) BZ R6

R1 R2 R3 R4 R5 R6 R7 PC SP RE

e) CALL 1234h

R1 R2 R3 R4 R5 R6 R7 PC SP RE

4. [1� Exame, 00/01]

Considere o seguinte troço de um programa assembly do processador P3:

; Troco de codigo do ; Codigo da rotina de servico; programa principal ; a interrupcao INTR01. ENI 8. INTR0: XOR R1, R12. MOV R1, 0AAH 9. RTI3. MOV R2, 55H4. XOR R3, R3 ; Codigo da rotina de servico5. Ciclo: RORC R1 ; a interrupcao INTR16. AND R1, R2 10. INTR1: POP R47. .... 11. OR R4, 02H

12. PUSH R413. RTI

Indique, justificando, o valor de R1 após a execução da instrução da linha 5, nas seguintescondiçõ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 inter-rupção INTR1 durante a execução da instrução linha 4.

20

Page 21: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

5. Indique se as seguintes afirmações são verdadeiras ou falsas:

a) Dado um número em hexadecimal, F7A3H, não é possível saber se está ou não emrepresentação de complemento para 2.

b) Para se poder efectuar uma multiplicação de dois operandos em vírgula flutuante temque se primeiro deslocar a mantissa de um deles de forma a que fiquem os dois com omesmo valor no expoente.

c) Com o formato das instruções assembly do processador P3, as instruçõesMOV R1,R2

eMOV M[M[R1+20h]],R2

têm o mesmo OPCODE.

d) Na multiplicação de 2 números em vírgula flutuante, a mantissa é somada.

e) A instrução PUSH R1usa um segundo operando usando o modo de endereçamentoimplícito.

f) Quer em vírgula fixa, quer em vírgula flutuante, a multiplicação de 2 números diferen-tes de 0 pode dar resultado 0.

g) Não pode haver uma instrução assembly com o mesmo código que o código ASCII deuma letra.

h) O númeromáximo de operandos que uma instrução assembly de qualquer processadorpode ter é 2.

i) Após a execução da instrução RTI a flag EI (enable interrupts) está sempre a 1.

j) Para o processador P3, um possível opcode para a instrução JMPé 7fh.

k) Na micro-programação do CISC do Mano, só se deve utilizar uma micro-instrução dotipo RET se antes se tiver colocado o endereço de retorno na pilha do processador.

l) Após a execução da instrução POP R1, o novo valor deR1 continua também na posiçãode memóriaM[SP-1] .

m) A instrução de deslocamento aritmético à esquerda (SHLA) de um número negativo emcomplemento para 2 coloca sempre a flag de carry a 1.

n) A existência das instruções IN e OUTno conjunto de instruções Assembly de um pro-cessador indica que este utiliza uma arquitecturaMemory-Mapped IO.

21

Page 22: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

4 Programação Assembly

1. [2� Exame, 01/02]

Pretende-se desenvolver uma rotina insere em Assembly do P3 que insere um novo ele-mento num vector ordenado. Os elementos do vector encontram-se em posições consecuti-vas de memória. A rotina deverá receber pela pilha os seguintes parâmetros, colocados napilha pelo ordem indicada:

1. número de elementos do vector2. apontador para o primeiro elemento do vector3. elemento a inserir

O apontador para o primeiro elemento do vector não deve ser alterado. Assuma que existesempre uma posição de memória livre, mas uma só, a seguir ao vector.

Exemplo: considere que se pretende inserir o elemento 21h no vector � [8h 17h 32h 7Bh A4h] .Se o primeiro elemento deste vector estiver no endereço 0100h , a representação emmemóriado vector antes e depois da rotina ser executada será, respectivamente:

Endereço Dados Endereço Dados0100h 8h 0100h 8h0101h 17h 0101h 17h0102h 32h 0102h 21h0103h 7Bh 0103h 32h0104h A4h 0104h 7Bh0105h 3Eh 0105h A4h

e a chamada à rotina será feita da seguinte forma:

PUSH 5PUSH 100hPUSH 21hCALL insere

a) Desenhe um fluxograma que realize a função pretendida.

b) Escreva a rotina em linguagem Assembly do P3.

2. [1� Exame, 01/02]

Pretende-se desenvolver uma rotina transpoe emAssembly do P3 que calcula a transpostade uma matriz (para quem não se lembre, transpor uma matriz é a operação de, para cadaelemento da matriz, trocar a linha pela coluna,

� �� � � � �� � ��).

As matrizes estão representadas em posições consecutivas de memória, por linhas. A rotinadeverá receber pela pilha os seguintes parâmetros, colocados na pilha pela ordem indicada:

1. apontador para a matriz resultado2. apontador para a matriz origem3. número de linhas da matriz origem4. número de colunas da matriz origem

22

Page 23: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

Assuma que foi reservado previamente espaço emmemória para guardar amatriz resultado,portanto na sua rotina não tem que se preocupar com este problema.

Exemplo: considere que se pretende calcular a transposta da matriz �� � �� � � � , cujo

resultado será portanto � ��� � �

� �� � � . Se a matriz origem começar no endereço 0100h e a

matriz resultado no endereço 0200h , a representação em memória destas matrizes será:

Endereço Dados Endereço Dados0100h 1 0200h 10101h 2 0201h 40102h 3 0202h 20103h 4 0203h 50104h 5 0204h 30105h 6 0205h 6

e a chamada à rotina será feita da seguinte forma:

PUSH 0200hPUSH 0100hPUSH 2PUSH 3CALL transpoe

3. [1� Exame, 00/01]

Pretende-se desenvolver uma rotina em assembly do processador P3 que imprima na janelade texto o conteúdo de uma zona de memória. Cada posição de memória deve aparecernuma linha separada e o seu conteúdo apresentado em binário (não é necessário imprimiro endereço, apenas o conteúdo). Suponha que os parâmetros de entrada são passados pelosseguintes registos:

R1: contém o endereço de início dessa zona de memória

R2: contém o número de posições de memória a imprimir

a) Desenhe um fluxograma que realize a função pretendida.

b) Escreva a rotina em linguagem assembly do processador P3.

4. [2� Exame, 00/01]

Pretende-se desenvolver uma rotina em assembly do processador P3 que retire um elementode uma lista simplesmente ligada. A estrutura de dados desta lista contém apenas um valorinteiro 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 o apontador a0. A rotina recebe como parâmetros:

23

Page 24: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

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 comsucesso; 0 se o elemento não foi encontrado na lista. R1 deve continuar a apontar para oinício da lista.

Por exemplo, com R1=0120h , esta lista tem a seguinte representação em memória

45A9h BC13h 54EEh 0075Ah 3F98h

Endereço Conteúdo0120h 45A9h0121h 075Ah

...075Ah BC13h075Bh 3F98h

...3F98h 54EEh3F99h 0000h

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

54EEh 045A9h 3F98h

Endereço Conteúdo0120h 45A9h0121h 3F98h

...075Ah BC13h075Bh 3F98h

...3F98h 54EEh3F99h 0000h

sendo retornado R3=1 e R1mantém o seu valor.

a) Desenhe um fluxograma que realize a função pretendida.

b) Escreva a rotina em linguagem assembly do processador P3.

5. [1� Exame, 99/00]

Pretende-se desenvolver uma rotina em assembly do processador P3 que retorne o númerode bits a 1 nas palavras de uma dada zona de memória. Suponha que os parâmetros deentrada são passados pelos seguintes registos:

R1: contém o endereço de início dessa zona de memória

R2: contém o número de palavras na zona de memória a analisar

O resultado deverá ser retornado no registo R3.

Por exemplo, com

24

Page 25: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

Endereço DadosR1=A30FH A30FH A522HR2=2 A310H 00FFH

a rotina deverá retornar R3=14.

a) Desenhe um fluxograma que realize a função pretendida.

b) Escreva a rotina em linguagem assembly do processador P3.

6. [2� Exame, 99/00]

Pretende-se desenvolver uma rotina em assembly do processador P3 que procure uma string(sequência de caracteres), a string_a_procurar, dentro de uma outra string, a string_base. Asstrings são terminadas pelo valor 0, com um caracter por cada posição de memória. (nota:os caracteres terminadores 0 não são considerados na procura).

Suponha que os parâmetros de entrada são passados pelos seguintes registos:

R1: endereco de início da string_base

R2: endereco de início da string_a_procurar

A rotina retornará em R1 o endereço dentro da string_base onde tem início a primeira ocor-rência da string_a_procurar. Caso a string_a_procurar não seja encontrada na string_base, arotina deverá retornar em R1 o endereço da última posição da string_base (que contém oterminador 0).

Por exemplo, se a string_base for “abcdef” e tiver início no endereço 734AH, a procura dastring_a_procurar “de” deverá retornar R1=734DH.

a) Desenhe um fluxograma que realize a função pretendida.

b) Escreva a rotina em linguagem assembly do processador P3.

7. [1� Exame, 98/99]

Suponha que num determinado protocolo de comunicação entre dois computadores é ne-cessária a introdução de alguns caracteres de controlo (=, /, &, %, $, #). Por exemplo, se otexto a transmitir é:

A Quinta das Cruzadas, o mais recente Centro deExposicoes, tem patente uma exposicaorepresentativa do movimento dos jovens portugueses,que incluem inumeras obras de artistas nacionais.

no destino chega:

A Q=ui&nta das Cruzad&as, o m=ais rec$ente Cen%tro deExp=osicoes, te&m paten=te um/a exposi$caorepr=esentati&va do mo=vimento dos jo=vens portugue$ses,qu=e incl#uem i=numeras obra&s de a=rtistas nacio%nais.

Pretende-se desenvolver uma rotina que no computador destino suprima estes caracteres dotexto, de forma a obter de novo o texto original. Considere que:

25

Page 26: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

� a mensagem se encontra em memória e que o endereço início do texto e o númerode caracteres recebidos são passados pela pilha, sendo primeiro colocado o início e sódepois o número de caracteres.

� o texto é para ser escrito na janela de IO (o porto da janela de IO é FFFFH).� os caracteres de controlo são =, /, &, %, $, # e podem estar em qualquer parte do texto.

a) Desenhe um fluxograma que realize a função pretendida.

b) Escreva a rotina em linguagem assembly do processador P3.

8. [2� Exame, 98/99]

Considere um vector de números em posições consecutivas memória e cujo fim é indicadopelo valor 0. Pretende-se desenvolver uma rotina que incremente (em uma unidade) cadaum dos números ímpares do vector. Por exemplo:

vector inicial = [1 2 3 4 5 0]resultado = [2 2 4 4 6 0]

Considere que o endereço de início do vector é passado para a rotina pela pilha e que oresultado deve ficar nas mesmas posições de memória do vector inicial.

Será dada preferência a soluções que não usem a instrução DIV .

a) Desenhe um fluxograma que realize a função pretendida.

b) Escreva a rotina em linguagem assembly do processador P3.

9. Considere um vector de números em posições consecutivas memória e cujo fim é indicadopelo valor 0. Pretende-se desenvolver uma rotina que inverta a ordem dos números novector. Por exemplo:

vector inicial = [1 2 3 4 5 0]resultado = [5 4 3 2 1 0]

Considere que o endereço de início do vector é passado para a rotina pela pilha e que oresultado deve ficar nas mesmas posições de memória do vector inicial. Considere aindaque não dispõe de memória auxiliar.

a) Desenhe um fluxograma que realize a função pretendida.

b) Escreva a rotina em linguagem assembly do processador P3.

10. [1� Exame, 97/98]

Pretende-se realizar uma rotina que substitua num texto em memória todas as ocorrênciasda letra ’A’ (em maiúsculas) por ÁLPHA’ . O endereço de início do texto será passado emDS:SI e o fim do texto assinalado pelo caracter ’#’ .

Considere que pode usar espaço auxiliar de memória, mas que este espaço auxiliar não ésuficiente para conter todo o texto. O texto final terá início na mesma posição de memóriado texto original.

26

Page 27: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

a) Desenhe um fluxograma que realize a função pretendida.

b) Escreva a rotina em linguagem assembly do processador P3.

11. [2� Exame, 97/98]

Pretende-se realizar uma rotina que calcule o valor de um polinómio da forma

���� � ��� ���� � � � � � � ��� � � � �� � �� �

Os coeficientes � � são todos de 16 bits e estão guardados em posições consecutivas de me-mória, sendo �� o primeiro valor desta tabela. A rotina é chamada com 3 parâmetros:� o valor de �, de 16 bits, é passado pelo stack.� a ordem do polinómio � está numa posição de memória N.� a label COEFSindica o endereço de início da tabela de coeficientes.

O resultado deverá ser retornado em R1. Pode assumir que todos os valores cabem sempreem 16 bits.

a) Desenhe um fluxograma que realize a função pretendida.

b) Escreva a rotina em linguagem assembly do processador P3.

12. Pretende-se desenvolver uma rotina que capitalize todas as palavras de um texto emmemó-ria, isto é, independentemente do seu estado inicial, todas as palavras do texto devem ficarcom a primeira letra maiúscula e as restantes letras minúsculas. Considere que:

� o endereço de início do texto será passado em R1 e o fim do texto assinalado pelocaracter ’$’.

� não pode usar espaço extra de memória, portanto o texto final ficará na posição dememória do texto original.

� não existem caracteres de pontuação no texto, só caracteres alfa-numéricos e espaços.� pode existir mais do que um espaço entre palavras.� os algarismos devem ficar inalterados.

a) Desenhe um fluxograma que realize a função pretendida.

b) Escreva a rotina em linguagem assembly do processador P3.

27

Page 28: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

5 Processador P3

1. [1� Exame, 00/01]

Pretende-se implementar no processador P3 a instrução

��� �� �

que testa se o valor de op1 é 0 ou não, actualizando a flag Zero (portanto, a flag Zero ficaa 1 se op1=0). Adicionalmente, e em qualquer dos casos, após a execução desta instruçãoop1 deve conter o valor 1. O comportamento das outras flags não é definido, podendo seralteradas com qualquer valor.

a) Sugira um código (opcode) para esta instrução.

b) Indique a representação em binário da instrução TAS M[PC+F03DH] (utilize X paraindicar bits que podem assumir qualquer valor).

c) Escreva um micro-programa em linguagem de transferência entre registos da fase deexecução para esta instrução.

d) Traduza este micro-programa para micro-instruções, em binário.

2. [2� Exame, 00/01]

Pretende-se implementar no processador P3 a instrução

���

que copia texto com início no endereço indicado no registoR1para o endereço em R2, sendoo número de posições de memória a copiar indicado pelo registoR3. O incremento das posi-ções R1 e R2 é especificado pelo registo R4, normalmente +1 para incrementar, ou -1 paradecrementar. O pseudo-código para esta instrução é:

for(i = 0; i � R3; i++) {M[R2] = M[R1];R1 = R1 + R4;R2 = R2 + R4;

}

a) Sugira um código (opcode) para esta instrução.

b) Qual é o modo de endereçamento do registo R1utilizado nesta instrução?

c) Indique a representação em binário da instrução TAS M[PC+F03DH] (utilize X paraindicar bits que podem assumir qualquer valor).

d) Escreva um micro-programa em linguagem de transferência entre registos da fase deexecução para esta instrução.

e) Traduza este micro-programa para micro-instruções, em binário.

28

Page 29: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

3. [1� Exame, 99/00]

Pretende-se implementar no processador P3 a instrução

���� �� �����

que decrementa o valor do operando op1 e, caso este não tenha chegado a zero salta para oendereço especificado por op2 . Caso op1 tenha chegado a zero, este salto não é efectuado eé executada a instrução no endereço seguinte.

a) Sugira um código (opcode) para esta instrução.

b) Indique a representação em memória da instrução LOOP R7,M[R5+94ABH] (utilize Xpara indicar bits que podem assumir qualquer valor).

c) Escreva um micro-programa em linguagem de transferência entre registos da fase deexecução para esta instrução.

d) Traduza este micro-programa para micro-instruções, em binário.

4. [2� Exame, 99/00]

Pretende-se implementar no processador P3 a instrução

���� �� �

que, caso a flag carry esteja a 1 retorna da rotina, caso contrário faz um salto relativo somandoop1 ao PC (as flags devem permanecer inalteradas). Em pseudo-código:

if(carry)RET

elsePC

�PC+op1

a) Sugira um código (opcode) para esta instrução.

b) Indique a representação binária em memória da instrução RETC M[M[R2+0B28H]](utilize X para indicar bits que podem assumir qualquer valor).

c) Escreva um micro-programa em linguagem de transferência entre registos da fase deexecução para esta instrução.

d) Traduza este micro-programa para micro-instruções, em binário.

5. [1� Exame, 98/99]

Pretende-se implementar no processador P3 a instrução

���� �� �����

que realiza a função lógica exclusive-nor bit-a-bit entre os dois operandos.

a) Sugira um código (opcode) para esta instrução.

b) Indique a representação em memória da instrução XNOR R1,M[R2+15A0H] (utilize Xpara indicar bits que podem assumir qualquer valor).

c) Escreva um micro-programa em linguagem de transferência entre registos da fase deexecução para esta instrução.

29

Page 30: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

d) Traduza este micro-programa para micro-instruções, em binário.

6. [2� Exame, 98/99]

Pretende-se implementar no processador P3 a instrução

����

que coloca o registo RE no topo da pilha (isto é, faz o push das flags). Considere que o stackpointer aponta para a última posição preenchida.

a) Sugira um código (opcode) para esta instrução.

b) Indique a representação emmemória da instrução PSHF(utilize X para indicar bits quepodem assumir qualquer valor).

c) Escreva um micro-programa em linguagem de transferência entre registos da fase deexecução para esta instrução.

d) Traduza este micro-programa para micro-instruções, em binário.

7. Pretende-se implementar no processador P3 a instrução

����� � ��

que decrementa o registo R1 e caso o novo valor de R1 seja diferente de 0 salta para o endere-ço op .

a) Sugira um código (opcode) para esta instrução.

b) Indique a representação em memória da instrução LOOPR1 M[PC+A3C5H](utilize Xpara indicar bits que podem assumir qualquer valor).

c) Escreva um micro-programa em linguagem de transferência entre registos da fase deexecução para esta instrução.

d) Traduza este micro-programa para micro-instruções, em binário.

8. Indique se as seguintes afirmações são verdadeiras ou falsas:

a) Se R1 contém o valor 1, após a execução no P3 da instrução CMP R1,FFFFh a flagnegative fica a 1.

b) Assim que se entra na fase de fetch de uma instrução assembly, esta instrução executa-sesempre até ao fim mesmo que surja uma interrupção entretanto.

c) A execução de uma micro-instrução demora sempre um ciclo de relógio.

d) O número de acessos à memória para a execução das instruções ADD R1,R0 e ADDR1,0 é o mesmo.

e) Se R1 contém o valor 1, após a execução no P3 da instrução ADD R1,FFFFh a flagoverflow fica a 1.

f) No processador P3, as micro-instruções 181EB403h e 804AAA65h são equivalentes.

g) Para realizar a micro-operação R7�R6�REno P3 são necessários 2 ciclos de relógio.

30

Page 31: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

h) O número de registos de uso genérico nos processadores CISC é em geral superior aonúmero de registos genéricos nos RISC.

i) Um processador RISC tem que normalmente executar mais instruções do que um CISCpara realizar uma mesma função.

j) Para um mesmo programa, o tamanho dos ficheiros executáveis para processadoresRISC é geralmente superior aos executáveis para os CISC.

k) No formato do processador P3, a instrução MUL R2,R3ocupa 2 posições de memória.

l) No processador P3, não é possível realizar a operação R7�R6�9h num único ciclo derelógio.

m) A unidade de processamento pode realizar somas sem actualizar as flags do processa-dor vistas pelo programador (registo RE).

n) No processador P3, durante a execução do micro-programa correspondente a umainstrução Assembly, o sinal LI pode estar a 1 no máximo em uma micro-instrução.

o) No processador P3 não é possível realizar a operação R2�R2-5 com uma única micro-instrução.

p) Durante a execução de uma micro-instrução, o CARé actualizado uma e uma só vez.

31

Page 32: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

6 Entradas e Saídas

1. [2� Exame, 00/01]

Considere um processador com um espaço de endereçamento de 32k palavras ( � � �� �,sendo � a linha de menor peso). No entanto, apenas estão instalados 8k palavras de memó-ria, na parte mais baixa do espaço de endereçamento. Existem 2 periféricos, X e Y, mapeadosrespectivamente nos endereços 7FF0h e 7FFAh. Na interface destes periféricos está dispo-nível um registo de status que em particular possui um bit que fica a 1 quando o periféricopretende transferir informação para o processador.

a) Quantas linhas tem o barramento de endereços?

b) Desenhe a lógica de descodificação para o periférico X usando portas elementares (istoé, a lógica para a geração do sinal de chip select, CS).

c) Desenhe a lógica de descodificação para o circuito de memória (sinal de chip select, CS,para a memória).

d) Suponha que o processador usa interrupções não vectorizadas e que o periférico X temmais prioridade do que o Y. Explique sucintamente quando vem uma interrupção comoé que o processador identifica qual o periférico que a gerou.

2. [2� Exame, 99/00]

Considere o seguinte diagrama temporal, respeitante à transmissão de informação atravésde comunicação série. Primeiro é enviado o bit menos significativo, e é usado 1 stop bit:

1 2 3 4 5 6

a) Complete a legenda seguinte:

Tipo de transmissão:

Bit 1: Conjunto de bits 2:

Bit 3: Bit 4:

Bit 5: Estado da linha 6:

b) Indique justificando, qual é ou quais são os códigos em hexadecimal que estão a sertransmitidos.

3. [1� Exame, 99/00]

a) Utilizando a linguagemAssembly do processador P3, programe uma rotina de interrup-ção, associada à interrupção Int0, para colocar a flag Carry a zero.

b) Indique, justificando, qual é o efeito da ocorrência da interrupção Int0 em qualqueraltura durante a execução do troço de programa que a seguir se apresenta:

32

Page 33: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

XOR R1, R1MOV R2, FFFFhSHL R2, 1ENI

ciclo1: ROLC r1, 1CMP R1, 80hJMP.NZ ciclo1

4. [1� Exame, 98/99]

Considere uma linha série de 9600 baud, em que os caracteres são codificados com 8 bits,sem bit de paridade e com um stop bit.

a) Quantos caracteres são transmitidos por segundo?

b) Desenhe o diagrama temporal correspondente à transmissão consecutiva dos caracteresASCII ’1’ e ’9’ (código ASCII 31H e 39H, respectivamente). Nota: Considere que o bitmenos significativo é transmitido primeiro.

c) Identifique as vantagens e desvantagens da transmissão assíncrona, relativamente àtransmissão síncrona.

5. [2� Exame, 98/99]

Considere o seguinte troço de programa assembly da arquitectura P3.

X: POP R1 A: DSIXOR R1,2h MOV R2,R0PUSH R1 ADD R2,1hRTI ENI

B: BR.NC BSHL R2,1JMP B...

a) Identifique, justificando, a rotina de serviço à interrupção.

b) Indique a função realizada pela rotina de serviço à interrupção.

c) Indique, justificando, entre que linhas de programa principal é que a interrupção estáhabilitada.

d) Considere que ocorrem 10 interrupções, e que são todas atendidas. Qual o valor finalde R2 ?

6. [2� Exame, 98/99]

Um controlador de rede comunica com o CPU através de uma memória de duplo portointerna com capacidade para 16 palavras. O controlador lê os dados em série, converte-os para paralelo e deposita-os na memória, através da interface interna desta; o CPU lê osdados desta memória através da sua interface externa. A sincronização entre o controladore o CPU é feita por interrupções:

33

Page 34: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

� quando o controlador enche metade da memória (8 palavras) gera uma interrupção- Half, então a rotina de serviço deverá ir ler 8 palavras da memória. O pedido deinterrupção é retirado sempre que o nível de enchimento da memória esteja abaixo das8 palavras.

Outras causa para a geração de interrupção é a ocorrência de:

� overflow (o controlador enche a memória e tenta fazer mais uma escrita).

As causas da interrupção são armazenadas em flags só limpas após a sua leitura pelo CPU.

Interface de rede

porto

de duplo

Memória

Controlador de rede

CPU

dados

Write Read

dados

Interrupção

O endereçamento da memória de duplo porto é feito por dois registos, um por cada porto.O registo “interno” IAR (Internal Address Register) deve ser incrementado sempre que ocor-rer um acesso interno (escrita interna: Write = 0�1�0); o registo “externo” XAR (ExternalAddress Register) deve ser incrementado sempre que ocorrer um acesso externo (do CPU,em leitura: Read = 0�1�0). As flags Half (IAR - XAR � 8), Overflow e Interrupt tambémcorrespondem a registos alinhados com o bit de menor peso do bus interno.

Endereçamento dos registos do controlador de memória

R2 R1 R0 Registos0 0 0 RZ = 0 (zero)0 0 1 R8 = 8 (oito)0 1 0 IAR0 1 1 XAR1 0 0 TR (temporário, registo auxiliar)1 0 1 HR (Half)1 1 0 OF (Overflow)1 1 1 IR (Interrupt)

A unidade de processamento (datapath) inclui uma unidade aritmética capaz de executar asseguintes operações:

Tabela de Operações

F2 F1 F0 Função0 0 0 Move (Ri � Rj)0 0 1 Increment (Ri � Rj + 1)0 1 0 Sum (Ri � Rj + Rk)0 1 1 Subtract (Ri � Rj - Rk)1 0 0 Not (Ri � ��)1 1 1 Test (Ri � 1, se Rj � Rk; Ri � 0, se Rj � Rk; )

34

Page 35: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

Admita, por simplicidade, que não há acessos simultâneos à memória por parte do contro-lador e do CPU.

a) Indique, justificando, o formato da palavra de controlo, assumindo que, no caso geral,se pretendem executar operações entre registos do tipo Ri � Rj op Rk.

b) Escreva em linguagem de transferência de registos o programa que executa um ciclode escrita interna ao controlador de rede (interface de rede � memória) incluindo aactualização do estado das flags. Por cada micro-instrução que envolva o datapath es-pecifique o conteúdo da palavra de controlo. Em caso de salto, indique a condição desalto e para que linha salta.

# Transferência de registos Palavra de Controlo12345678910111213141516

c) Que modificações era necessário introduzir no programa da alínea anterior para passartambém a tratar os acessos em leitura do CPU? Identifique claramente, por referênciaao número de linha da tabela da alínea b), os pontos onde seriam introduzidas as altera-ções e descreva-as funcionalmente.

d) Que modificações era necessário introduzir na estrutura do datapath e nas capacidadesda unidade aritmética para passar a aceitar a configuração do nível do pedido de servi-ço (“Half”) para qualquer valor entre 1 e 15 por inicialização do CPU?

7. Indique se as seguintes afirmações são verdadeiras ou falsas:

a) Num microprocessador com uma organização independent IO, a memória e os disposi-tivos entrada/saída podem partilhar o mesmo barramento de endereços.

b) Durante uma transferência DMA, o microprocessador fica bloqueado à espera de poderfazer o fetch da próxima instrução da cache.

35

Page 36: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

c) No caso do simulador utilizado nas aulas práticas, se se admitir que apenas está insta-lada memória nas 48k palavras menos significativas do espaço de endereçamento, o bitmais significativo do barramento de endereços é suficiente para descodificar os acessosà janela de IO.

d) Num controlador DMA, as linhas de controlo read e write são bidireccionais.

e) Numa comunicação assíncrona usando o protocolo handshaking são necessários pelomenos 2 sinais de controlo.

f) Numa comunicação série assíncrona são necessários pelo menos dois sinais: o sinal dedados e o relógio.

g) As interrupções externas, se habilitadas pela flag enable interrupts, são atendidas noflanco de relógio imediatamente a seguir ao sinal de interrupção ser activado.

h) Num sistema com memory-mapped IO não pode haver um dispositivo num porto com omesmo endereço que uma posição de memória.

i) No final da rotina de serviço a uma interrupção é necessário colocar a flag enable inter-rupts activa para que se possam aceitar de novo interrupções.

j) Numa comunicação série assíncrona os stop bits indicam o fim da transmissão da men-sagem.

k) Durante uma transferência DMA, o controlador DMA tem controlo sobre os barramen-tos do sistema e o processador tem que esperar que o controlador DMA lhe devolva ocontrolo dos barramentos antes de poder aceder ao exterior.

l) Considere um processador com um barramento de endereços de 24 bits, no qual sepretende instalar um circuito de memória RAM com 4k, a partir do endereço 16k. Ocircuito combinatório que descodifica esta RAM (circuito que gera o chip-select) tem 12entradas.

m) Num sistema usando memory-mapped I/O, não pode haver sobreposição de endereçosno mapeamento dos periféricos de entrada/saída e da memória.

n) Na comunicação série assíncrona, o ritmo de transmissão de caracteres com 8 bits ésempre inferior a �

��� ����� , em que baud rate é o ritmo de transmissão em bits.

o) Como resposta a um pedido DMA, o processador activa a linha de “DMA Ackno-wledge” e pára a execução de instruções.

p) Numa comunicação série assíncrona com um dado baud-rate, quanto maior o númerode stop-bits, menor o ritmo de transmissão de dados.

q) Num protocolo hand-shaking, o sinal de ready só pode ser activado se o sinal de ackno-wledge estiver desactivo.

r) Assim que a linha de interrupção externa de um processador é activada, este pára ime-diatamente o que está a fazer e levanta a linha de interrupt acknowledge.

s) Numa transmissão série com 2 stop-bits e 1 bit de paridade, são necessários 12 bits paratransmitir um byte.

t) Num processador que utilize memory-mapped IO a instrução assembly OUTnão é neces-sária.

u) O processador deve dar prioridade mais elevada na resposta às interrupções de perifé-ricos associados à interacção com o utilizador.

36

Page 37: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

v) O protocolo de hand-shaking é mais usado na comunicação série do que na comunicaçãoparalela.

w) No seguinte diagrama,

correspondente a uma transmissão série assíncrona de palavras de 1 byte, com 2 stop-bitse paridade par, não houve erros na transmissão.

x) O processador tem sempre prioridade em relação ao controlador de DMA no acessoaos barramentos do sistema.

z) Na arquitectura do P3 não existem os sinais de controlo IOR e IOW.

aa) Na transmissão paralela assíncrona usando o protocolo Strobing iniciado pelo emissor,o emissor não tem confirmação de os dados terem sido ou não bem recebidos peloreceptor.

ab) Numa transmissão série assíncrona a nível do byte, com um ritmo de transmissão de110 bits/s, com bit de paridade e 1 stop-bit, são transmitidos 11 caracteres/s.

ac) O controlador DMA pode ter prioridade no acesso aos barramentos e assim causarque o processador tenha estados de espera até que o controlador DMA liberte essesbarramentos.

37

Page 38: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

7 Hierarquia de Memória

1. [2� Exame, 01/02]

Considere um processador com um espaço de endereçamento de 64k palavras e que usauma cache de mapeamento directo que interpreta os bits de endereço da seguinte forma:

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Etiqueta Índice Bloco

a) Qual é a capacidade para dados desta cache?

b) Mantendo a capacidade da cache, mas tornando-a uma cache com duas vias de associ-atividade, qual são as alterações em termos da forma como o endereço é interpretado?

c) Na situação da alínea a), indique quais as condições necessárias na cache para que umacesso de leitura ao endereço B711h seja um sucesso (hit) na cache.

d) Diga o que entende por uma política de escrita write-through.

2. [1� Exame, 99/00]

Considere um sistema com o seguinte endereçamento, em que as palavras são de 1 Byte:

Endereço virtual:Página virtual Deslocamento

31 12 11 0

Endereço físico:Página física Deslocamento

29 12 11 0

a) Indique, justificando, qual é a dimensão do espaço de endereçamento virtual e do es-paço de endereçamento físico.

b) Indique, justificando, qual é a dimensão de cada página.

c) Considere que a tabela de páginas contém as páginas 1 e 5 de um dado programa queestá em execução. Indique, de forma sucinta e justificada, o que sucede quando o refe-rido programa pretende efectuar a leitura do endereço virtual 3025h .

3. [2� Exame, 99/00]

Considere um sistema de memória constituído por uma cache de 64k palavras de 1 Byte euma memória principal de 16M palavras de 1 Byte. Considere ainda que a cache tem blocosde 1 palavra 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) Identifique os campos de índice (index) e etiqueta (tag).

38

Page 39: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

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

Endereço Dados3DFF80h 62h3DFF20h A6h00FF80h 33h

Considerando a cache inicialmente vazia indique, justificando, quais são as posições dacache que vão ser ocupadas e qual é o seu conteúdo.

4. Considere um computador com 16 bits de endereço, em que os dados são representados por16 bits, e uma cache em mapeamento directo, com capacidade de 1KB. Considere tambémque cada linha da cache contém uma palavra de dados e cada bloco contém 4 palavras.

a) Indique, justificando, quantos bits de índice tem a cache.

b) Indique a dimensão de cada palavra da cache (bits de controlo e de dados), explicitandocada um dos seus campos.

c) Considere a situação em que cada cache está inicialmente vazia. Descreva o que sepassa com a cache quando o seguinte troço de programa é executado.

Endereço Código0000 MOV R1,AAAAh0002 ROLC R1,10003 BR.C 01020005 JMP 0002

. .

. .0102 RORC R1,10103 BR.NC 00020105 JMP 0102

5. Indique se as seguintes afirmações são verdadeiras ou falsas:

a) Mantendo fixa a capacidade da cache, quanto maior o número de palavras por blocomaior o campo índice do endereço.

b) Numa cache de mapeamento directo nunca se substituem dados enquanto houveremposições livres na cache.

c) Um dos bits de controlo possíveis numa cache write-through é o dirty bit.

d) Num sistema com memória virtual, duas leituras consecutivas do mesmo endereçodemoram sempre o mesmo tempo se não houver nenhum page fault.

e) Numa cache completamente associativa os dados podem estar em qualquer linha dacache.

f) O uso de memória virtual permite aumentar a rapidez no acesso à memória.

g) Uma cache associativa com 1-via é mais flexível que um cache de mapeamento directo.

39

Page 40: Arquitectura de Computadores - Instituto Superior Técnico ...web.ist.utl.pt/fabio.ferreira/material/ac/colect-prob.pdf · a) Mostrequeosistemadigital descritomultiplica oconteúdodosregistoAReBRecoloca

h) A largura das palavras numa cache é igual à largura do barramento de dados do sistema.

i) A utilização de memória virtual permite aumentar a velocidade de acesso do processa-dor à memória.

j) Num acesso à memória, em leitura, os endereços são sempre colocados no respectivobarramento antes dos dados.

k) A cache tem um espaço de endereçamento próprio.

l) Numa cache de mapeamento associativo, um dado endereço da memória principal ésempre colocado na mesma posição da cache.

m) Numa cache demapeamento directo, um dado endereço damemória principal é semprecolocado na mesma posição da cache.

n) Nas caches completamente associativas, não existe o campo índice no endereço.

o) Devem-se usar caches com um número maior de vias de associatividade para códigodo que para dados.

p) Em geral, para caches com a mesma capacidade, a taxa de faltas aumenta com o au-mento do número de vias de associatividade da cache.

q) Numa cache write-through, a cache pode ter valores mais recentes do que a memória.

r) Em caso de sucesso, a TLB envia logo os dados pedidos pelo processador.

s) Num sistema com 3 níveis de cache, com taxas de sucesso de 80%, 90% e 95% para oprimeiro, segundo e terceiro nível respectivamente, apenas 1 em cada 1000 acessos doprocessador à memória é que de facto chegam a esta.

t) Num sistema virtual paginado, o conjunto de bits de controlo do descritor de páginainclui normalmente o dirty bit.

40