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

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

Introdução à Arquitetura de Computadores

Introdução à Arquitetura de Computadores

Arquitectura de Computadores 2011/2012 2º Semestre 1º Teste (A) - 11/04/2012

Introdução à Arquitetura de Computadores

Arquitectura de Computadores 2011/2012 2º Semestre 1º Teste - Repescagem - 27/06/2012

Introdução à Arquitetura de Computadores

Arquitectura de Computadores 2006/2007 2º Semestre 2º Teste (B) - 15/06/2007. Folha de Respostas

Arquitectura de Computadores 2006/2007 2º Semestre 2º Teste (A) - 15/06/2007. Folha de Respostas

Arquitectura de Computadores

INSTITUTO SUPERIOR TÉCNICO

INSTITUTO SUPERIOR TÉCNICO

Arquitectura de Computadores 2007/2008 2º Semestre 2º Teste (A) - 16/06/2008

Arquitectura de Computadores 2007/2008 2º Semestre 1º Teste (A) - 30/04/2008. Folha de Respostas

Arquitectura de Computadores

Arquitectura de Computadores 2007/2008 2º Semestre Repescagem 2º Teste - 03/07/2008

Arquitectura de Computadores 3º TESTE

Arquitetura de Um Processador III

Arquitectura de Computadores (ACom)

Arquitectura de Computadores 2007/2008 2º Semestre Repescagem 1º Teste - 03/07/2008

Arquitectura de Computadores (ACom)

Arquitectura de Computadores 2006/2007 2º Semestre Repescagem 1º Teste - 11/07/2007. Folha de Respostas

MICROPROCESSADORES 3º TESTE

Conjunto de Instruções (ISA) I

Arquitectura de Computadores

2.º Teste de Introdução à Arquitetura de Computadores IST LEIC-Taguspark 1.º Semestre 2014/2015 Duração: 60 minutos 16 dezembro 2014

Grupo I (5 valores) CD AB

Repescagem - 2.º Teste de Introdução à Arquitetura de Computadores 1.º Semestre 2014/2015 Duração: 60 minutos 16 janeiro 2015

Prova de Arquitectura de Computadores (21010) Data: 23 de Junho de 2009

Arquitectura de Computadores

Arquitetura de Um Processador I

Arquitectura de Computadores

Arquitectura de Computadores

Prova de Arquitectura de Computadores (21010) Data: 5 de Fevereiro de 2009

Conjunto de Instruções (ISA) II

Prova de Arquitectura de Computadores (21010) Data: 18 de Junho de 2010

Repescagem - 2.º Teste de Introdução à Arquitetura de Computadores 1.º Semestre 2014/2015 Duração: 60 minutos 16 janeiro 2015

Prova de Arquitectura de Computadores (21010) Data: 12 de Fevereiro de 2010

p-fólio Arquitectura de Computadores U.C de julho de 2018 INSTRUÇÕES

Guia de Laboratório 2013 / 2014

Prova de Arquitectura de Computadores (21010) Data: 5 de Fevereiro de 2009

Introdução à Arquitetura de Computadores

INSTITUTO SUPERIOR TÉCNICO. Arquitectura de Computadores (ACom)

Arquitectura de Computadores

Sistemas de Memória II

Arquitectura de Computadores (ACom)

Arquitetura de Computadores

Aula 14 Funcionamento de Processadores (Visão específica)

Arquitectura de Computadores (ACom)

RESOLUÇÃO. Identifique todas as folhas! Não escreva nada fora dos rectângulos

2.1 Circuitos electrónicos analógicos Circuitos electrónicos digitais...29

FCA - Editora de Informática xv

1 REPRESENTAÇÃO DIGITAL DE INFORMAÇÃO Bases de Numeração Representação de Números em Base 2 5

Sistemas de Memória I

Arquitetura de Computadores

Arquitectura de Computadores

Arquitectura de Computadores (ACom)

EEC2104 Microprocessadores

Problemas de Arquitectura de Computadores IST - Taguspark 2016/2017 Endereçamento. Prob 3 8 a 12 de Abril de 2017 (semana 12)

Arquitectura de Computadores

MICROPROCESSADORES 2º TESTE - A

Arquitectura de Computadores

Exercícios resolvidos (aula de 4 de Maio) Resolução:

Antes de começar o exame leia atentamente esta folha de rosto

Arquitectura de Computadores MEEC (2014/15 2º Sem.)

Arquitectura de Computadores. Guia de Laboratório 2010 / 2011

Arquitectura de Computadores (ACom)

I. Considere os seguintes processadores A e B, ambos com arquitectura em pipeline, conforme ilustrado

Arquitectura de Computadores

Arquitectura de Computadores

Arquitectura de Computadores

Arquitectura de Computadores (ACom)

Arquitectura de Computadores

UNIVERSIDADE PAULISTA (UNIP) Curso de Engenharia Mecatrônica Disciplina: Microprocessadores e Microcontroladores (MM) LISTA III

Introdução à Arquitetura de Computadores

Assembly Sintaxe do Assembly. Instruções que afectam Flags. Aplicações de Microprocessadores 2006/2007

Solução Lista de Exercícios Processadores

ORGANIZAÇÃO DE COMPUTADORES

MICROPROCESSADORES E MICROCONTROLADORES. PROVA 1 - Solução da Versão 1

SISTEMAS DIGITAIS MEEC de Janeiro de 2016, 11:30

7. A pilha e subrotinas

X Y Z A B C D

Exame de 2ª Época - 8 de Fevereiro de Antes de começar o exame leia atentamente esta folha de rosto

Arquitectura de Computadores

Endereçamento. UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Arquitectura de Computadores (ACom)

Símbolos e abreviaturas utilizadas na descrição das instruções

Tópicos: 1 - Modos de endereçamento do Pilha e instruções de Pilha. 3 - Instruções que usam pilha: - instrução CALL - instrução RET

SEL-614 MICROPROCESSADORES E APLICAÇÕES. Adilson Gonzaga

Organização de Memórias

Arquitectura de Computadores. Dicas e Truques do Assembly do P3

Sistemas Digitais (SD) Memórias

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES A UNIDADE LÓGICA ARITMÉTICA E AS INSTRUÇÕES EM LINGUAGEM DE MÁQUINA

Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios

Exame 2 Sistemas Digitais - MEEC 2009/10 1

ENGª DE ELECTRÓNICA E COMPUTADORES

Transcrição:

LICENCIATURA EM ENGENHARIA INFORMÁTICA E DE COMPUTADORES Introdução à Arquitetura de Computadores Coletânea de Problemas Outubro 2014 (Versão 3.0) INSTITUTO SUPERIOR TÉCNICO

- Introdução à Arquitectura de Computadores - Conteúdo Funções Lógicas 3 Circuitos Combinatórios 5 Instruções Assembly 6 Programação Assembly 8 Codificação de Instruções 10 Interrupções 12 Micro-programação 16 Mapeamento de Memória 19 Caches 22 Memórial Virtual 25 Comunicação 26 Soluções 28 Lista de Revisões Versão 3.0-2014.10.01 - Versão inicial de 2014/2015 Esta coletânea de problemas contém problemas do Livro Arquitetura de Computadores - dos Sistemas Digitais aos Microprocessadores e de testes de Arquitetura de Computadores da Licenciatura em Engenharia Informática e de Computadores. 2

Funções Lógicas - Introdução à Arquitectura de Computadores - Funções Lógicas 1.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 1.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 1.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. 3

Funções Lógicas - Introdução à Arquitectura de Computadores - 1.4 Considere o seguinte logigrama: A B C F D Determine uma expressão algébrica para a função F, minimize-a e desenhe o logigrama correspondente à expressão resultante. 1.5 Determine um conjunto de funções lógicas que realize a multiplicação de dois números binários de dois algarismos. 4

Circuitos Combinatórios - Introdução à Arquitectura de Computadores - Circuitos Combinatórios/Aritméticos 2.1 Utilizando apenas dois descodificadores de duas entradas e portas and de duas entradas, construa um descodificador de quatro entradas. Sugestão: Considere a hipótese de combinar as saídas dos dois descodificadores. 2.2 Utilizando como elemento base um descodificador de três variáveis de entrada e a lógica adicional que considere necessário, construa as quatro funções descritas na seguinte tabela: x y z f 0 (x,y,z) f 1 (x,y,z) f 2 (x,y,z) f 3 (x,y,z) 0 0 0 0 1 0 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 1 0 1 1 1 0 0 0 1 0 0 1 0 1 1 1 0 0 1 1 0 0 1 0 0 1 1 1 1 0 1 0 2.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 necessária. Pista: quando se usa um multiplexador de n variáveis de selecção para implementar funções de n + 1 variáveis, utiliza-se nas entradas de dados do multiplexador funções de uma variável. 2.4 Considere que realiza somas de números representados em complemento para 2 de 32 bits, utilizando somadores de 8 bits, que têm, como saída, a soma, o bit de transporte e o bit de excesso. Como interliga os somadores para realizar a soma pretendida? 5

Instruções Assembly - Introdução à Arquitectura de Computadores - Instruções Assembly 3.1 Considere os seguintes valores para os registos do processador P3: 0001h EFD9h 0370h 41F0h 805Ah 0101h 0000h 0010h 7ADEh 0005h Para as perguntas a), b) e c), indique quais são os novos valores, em hexadecimal, de todos (e apenas) os registos que são escritos na execução de cada instrução. Use? para indicar que não tem informação suficiente para determinar o novo valor de um registo. As perguntas são independentes, isto é, assuma como valores iniciais para cada pergunta os indicados na tabela acima. a) PUSH R3 b) ADDC R2, R6 c) SHRA R5,1 3.2 Considere os seguintes valores para os registos do processador P3: 0001h 8FD9h 0370h 41F0h 805Ah 0101h 0000h 0210h FADEh 0014h Para as perguntas a), b) e c), indique quais são os novos valores, em hexadecimal, de todos (e apenas) os registos que são escritos na execução de cada instrução. Use? para indicar que não tem informação suficiente para determinar o novo valor de um registo. As perguntas são independentes, isto é, assuma como valores iniciais para cada pergunta os indicados na tabela acima. a) DEC R3 b) RORC R2,1 c) RTI 6

Instruções Assembly - Introdução à Arquitectura de Computadores - 3.3 Considere os seguintes valores para os registos do processador P3: 94B6h 17A6h 7496h 59BCh 2F89h 935Fh 002Dh 03D9h FB30h 0015h Para as perguntas a), b) e c), indique quais são os novos valores, em hexadecimal, de todos (e apenas) os registos que são escritos na execução de cada instrução. Use? para indicar que não tem informação suficiente para determinar o novo valor de um registo. As perguntas são independentes, isto é, assuma como valores iniciais para cada pergunta os indicados na tabela acima. a) CALL.NN 01B7h b) SHRA R1,5 c) MVBH R3, F5A4h 7

Programação Assembly - Introdução à Arquitectura de Computadores - Programação Assembly 4.1 Pretende-se desenvolver uma rotina ComputeAVG em Assembly do P3 que calcule a média dos valores de uma coluna de uma tabela. A tabela tem um número variável de colunas (Ncols). O número de linhas (Nlinhas) da tabela é fixo e igual a 256. O valor da média deverá ser calculado sem perda de precisão, considerando que os valores presentes na tabela estão compreendidos entre -32768 e +32767 e que o resultado será um valor também dentro dessa gama. A tabela está armazenada em memória linha a linha: primeiro os valores da 1 a linha, em endereços consecutivos, a que se seguem os valores da 2 a linha e assim por diante. Apresenta-se em seguida um exemplo para uma tabela com 2 linhas e 3 colunas, guardada a partir do endereço 80A0h: Tabela 1001 1002 1003 2001 2002 2003 Memória Endereço 80A0h 80A1h 80A2h 80A3h 80A4h 80A5h Conteúdo 1001 1002 1003 2001 2002 2003 A rotina recebe como parâmetros o endereço da primeira posição da tabela, o número de colunas da tabela e o número da coluna (entre 1 e Ncols) de que se deseja calcular a média. Os parâmetros são passados pela pilha, de acordo com o exemplo de chamada indicado a seguir. O resultado é devolvido através da pilha. PUSH Table PUSH Ncols PUSH Column CALL ComputeAVG POP M[Average] a) Desenhe um fluxograma que realize a função pretendida. b) Escreva a rotina em linguagem Assembly do P3. 8

Programação Assembly - Introdução à Arquitectura de Computadores - 4.2 Pretende-se desenvolver uma rotina em Assembly do P3 que retire um elemento de uma lista simplesmente ligada. A estrutura de dados desta lista contém apenas um valor inteiro e um apontador para o elemento seguinte. Estes dois campos encontram-se em posições consecutivas de memória, por esta ordem. O fim da lista é indicado por um apontador a 0. A rotina recebe como parâmetros: R1: com o endereço do primeiro elemento da lista; R2: com o valor do elemento a apagar. A rotina deve devolver em R3 o resultado da operação: 1 se o elemento foi retirado com sucesso; 0 se elemento não foi encontrado na lista. R1 deve continuar a apontar para o início da lista. Por exemplo, com R1=0120h, esta lista tem a seguinte representação em memória: 45A9h 075Ah BC13h 3F98h 54EEh 0 Após uma chamada à rotina com R2=BC13h, a lista ficará: 45A9h 3F98h 54EEh 0 sendo retornado R3=1 e R1 mantém o seu valor. Endereço 0120h 0121h 075Ah 075Bh 3F98h 3F99h Endereço 0120h 0121h 075Ah 075Bh 3F98h 3F99h............ Conteúdo 45A9h 075Ah BC13h 3F98h 54EEh 0000h Conteúdo 45A9h 3F98h BC13h 3F98h 54EEh 0000h a) Desenhe um fluxograma que realize a função pretendida. b) Escreva a rotina em linguagem Assembly do P3. 9

Codificação de Instruções - Introdução à Arquitectura de Computadores - Codificação de Instruções Assembly 5.1 Considere os seguintes valores para os registos do processador P3: 0001h EFD9h 0370h 41F0h 005Ah 0101h 0000h 0010h 7ADEh 0005h Na execução da instrução PUSH M[R3+2], indique na tabela seguinte qual é a sequência de acessos à memória, especificando o valor do barramento de endereços, do barramento de dados e tipo de acesso (leitura/escrita). - a tabela tem 5 posições, utilize apenas as que achar necessárias; - use notação hexadecimal; - use? para indicar que não tem informação suficiente para determinar um dado valor. 1 2 3 4 5 Endereço Dados Leitura/Escrita 5.2 Considere os seguintes valores para os registos do processador P3: 0001h EFD9h 0370h 41F0h 005Ah 0101h 0000h 0010h 7ADEh 0005h Na execução da instrução AND M[R6+20h], R7, indique na tabela seguinte qual é a sequência de acessos à memória, especificando o valor do barramento de endereços, do barramento de dados e tipo de acesso (leitura/escrita). - a tabela tem 5 posições, utilize apenas as que achar necessárias; - use notação hexadecimal; - use? para indicar que não tem informação suficiente para determinar um dado valor. 1 2 3 4 5 Endereço Dados Leitura/Escrita 10

Codificação de Instruções - Introdução à Arquitectura de Computadores - 5.3 Considere os seguintes valores para os registos do processador P3: 0001h 8FD9h 0370h 41F0h 805Ah 0101h 0000h 0210h FADEh 0014h Na execução da instrução RTI, indique na tabela seguinte qual é a sequência de acessos à memória, 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. 1 2 3 4 5 Endereço Dados Leitura/Escrita 5.4 Considere os seguintes valores para os registos do processador P3: 94B6h 17A6h 7496h 59BCh 2F89h 935Fh 002Dh 03D9h FB30h 0015h Na execução da instrução ADDC M[SP+2], R0, indique na tabela seguinte qual é a sequência de acessos à memória, especificando o valor do barramento de endereços, do barramento de dados e tipo de acesso (leitura/escrita). - a tabela tem 5 posições, utilize apenas as que achar necessárias; - use notação hexadecimal; - use? para indicar que não tem informação suficiente para determinar um dado valor. 1 2 3 4 5 Endereço Dados Leitura/Escrita 11

Interrupções - Introdução à Arquitectura de Computadores - Interrupções 6.1 Considere o seguinte troço de um programa em Assembly do processador P3 (assuma que a pilha já foi inicializada): ; Troco de codigo do ; Codigo da rotina de servico ; programa principal ; a interrupcao INTR0 1. ENI 8. INTR0: XOR R1, R1 2. MOV R1, AAh 9. RTI 3. MOV R2, 55h 4. ADD R3, R0 ; Codigo da rotina de servico 5. Ciclo: RORC R1, 1 ; a interrupcao INTR1 6. AND R1, R2 10. INTR1: MOV R4, 4 7.... 11. OR M[SP+2], R4 12. RTI Indique, justificando, o valor de R1 após a execução da instrução da linha 5, nas seguintes condições: a) não ocorre nenhuma interrupção. b) ocorre uma interrupção INTR0 durante a execução da instrução da linha 3. c) ocorre uma interrupção INTR0 durante a execução da instrução da linha 3 e uma interrupção INTR1 durante a execução da instrução linha 4. 12

Interrupções - Introdução à Arquitectura de Computadores - 6.2 Considere o seguinte programa em Assembly do P3. Considere que a rotina EscCont escreve na janela de texto o número que se encontra na posição de memória Contador. SP_INICIAL EQU FDFFh INT_MASK_ADDR EQU FFFAh IO_WRITE EQU FFFEh... ORIG 8000h Contador WORD 0000h ORIG 0000h JMP Inicio 1: Event: PUSH R1 2: MOV R1, 18h 3: MOV M[SP+3], R1 4: POP R1 5: RTI ContHex: INC M[Contador] RET... Inicio: MOV R7, SP_INICIAL MOV SP, R7 MOV R7, INT_MASK MOV M[INT_MASK_ADDR], R7 ENI CicloCont: CALL EscCont INC R0 Espera: BR.NZ Espera CALL ContHex BR CicloCont a) Indique como deve ser definida a tabela de vectores de interrupção por modo a que quando se carrega no botão I5 ( Janela Placa do simulador) a rotina Event seja executada. b) Para as mesmas condições da alínea anterior, indique qual o valor, em hexadecimal, que deverá ter INT_MASK. c) Descreva como funciona a rotina de interrupção Event e como ela afecta a execução do programa. d) Pretende-se alterar o programa para que a rotina Event seja executada a cada 400ms. 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) para indicar entre que linhas colocaria as novas instruções. (Nota: Ignore outras alterações que porventura possam ser necessárias no programa) 13

Interrupções - Introdução à Arquitectura de Computadores - 6.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: DataLoop: MOV R1, DataSpace MOV M[Pointer], R1 PUSH R0 CALL Timer ; Timer Initialization... CMP M[DataReady], R0 BR.Z DataLoop MOV M[DataReady], R0 CALL StoreData INC M[Pointer]... BR DataLoop a) Considere que, por lapso, se termina a rotina de tratamento de interrupção com a instrução RET, em vez de RTI. Diga, justificando, todas as implicações deste erro. b) Explique de que forma é feita a primeira inicialização do temporizador. Considera correcto o procedimento utilizado? Justifique a sua resposta. c) Indique os passos de inicialização necessários para que a rotina Timer fique associada à interrupção com o vector 15. Exemplifique através de instruções/pseudo-instruções do assembly do P3. 14

Interrupções - Introdução à Arquitectura de Computadores - 6.4 No contexto do P3, considere o seguinte programa que inclui uma rotina de tratamento de interrupção (TIMER) associada ao temporizador. 1 ORIG <end> 16 TIMER: MOV R1, <time_val> 2 I WORD TIMER 17 MOV M[FFF6h], R1 3 18 MOV R1,M[SP+2] 4 ORIG 0000h 19 MOV R1, 1 5 MOV R1, FDFFh 20 MOV M[FFF7h], R1 6 MOV SP, R1 21 RTI 7 MOV R1, <mascara_int> 22 8 MOV M[FFFAh], R1 23 ACTION:... 9 ENI 24... 10? 11 L1: SUB R1,R1 12 L2: AND R1,R1 13 BR.Z L2 14 CALL ACTION 15 JMP L1 a) O programa está incompleto faltando indicar o valor de várias constantes (linhas 1, 7 e 16). Na zona de respostas indique os valores em falta, considerando que se pretende que o temporizador marque intervalos de tempo de 1 segundo. b) Na linha 10 falta uma instrução que tem por objectivo chamar a rotina de interrupção do timer e, desse modo, desencadear a sua inicialização. Indique a instrução em falta. c) Assuma que ocorre uma interrupção durante a execução da instrução da linha 11 (SUB R1,R1). Indique, na zona de respostas, o valor de R1 após o programa executar a instrução da linha 18. 15

Micro-programação - Introdução à Arquitectura de Computadores - Micro-programação 7.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 rascunho 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 SR1 SR2 IAK FM CALU MA MB M2 1 LS MCOND CC LI LF CONST/NA MRB RB WM WR MD MAD RAD Zona de rascunho para a pergunta 7.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 rascunho 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 SR1 SR2 IAK FM CALU MA MB M2 1 LS MCOND CC LI LF CONST/NA MRB RB WM WR MD MAD RAD Zona de rascunho para a pergunta 16

Micro-programação - Introdução à Arquitectura de Computadores - 7.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 rascunho 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 SR1 SR2 IAK FM CALU MA MB M2 1 LS MCOND CC LI LF CONST/NA MRB RB WM WR MD MAD RAD Zona de rascunho para a pergunta 7.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 justifique 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 SR1 SR2 IAK FM CALU MA MB M2 1 LS MCOND CC LI LF CONST/NA MRB RB WM WR MD MAD RAD 17

Micro-programação - Introdução à Arquitectura de Computadores - 7.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 justifique 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 SR1 SR2 IAK FM CALU MA MB M2 1 LS MCOND CC LI LF CONST/NA MRB RB WM WR MD MAD RAD 7.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 justifique 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 SR1 SR2 IAK FM CALU MA MB M2 1 LS MCOND CC LI LF CONST/NA MRB RB WM WR MD MAD RAD 18

Mapeamento de Memória - Introdução à Arquitectura de Computadores - Mapeamento de Memória 8.1 Considere um sistema com um processador que possui 12 linhas de endereço - de A11 (maior peso) a A0 (menor peso) - e 8 linhas de dados. Neste sistema existem três zonas de memória e uma para entradas/saídas (E/S): ROM M1 - Possui 512 palavras que ocupam a gama de endereços mais baixos. RAM M2 - Possui 2K palavras que ocupam a gama de endereços mais elevada. RAM M3 - Possui 256 palavras a começar imediatamente acima da ROM M1. E/S M4 - Ocupa 1K palavras localizada imediatamente abaixo da RAM M2. Indique quais as funções de descodificação destas zonas de memória (MS - Memory Select). MS1 = MS2 = MS3 = MS4 = 8.2 Considere um sistema com um processador com 17 linhas de endereço de A16 (maior peso) a A0 (menor peso) e 8 linhas de dados. Neste sistema existem três zonas de memória: M1 Possui 32K palavras a começar em 8000h e acabar em FFFFh. M2 Possui 8K palavras que começam a partir do meio do espaço de memória. M3 Possui 16K palavras que ocupam a gama mais elevada de endereços. a) Indique as respectivas funções de selecção. M1 = M2 = M3 = b) Indique o tamanho do espaço de memória não ocupado. 19

Mapeamento de Memória - Introdução à Arquitectura de Computadores - 8.3 Considere as seguintes funções de descodificação de três memória: Mem1 - A19 A18 A17 A16 A15 Mem2 - A19 A18 A17 Mem3 - A19 A18 a) Indique, em hexadecimal, o primeiro e último endereço ocupado pelas memórias. Início Mem1 = Fim Mem1 = Início Mem2 = Fim Mem2 = Início Mem3 = Fim Mem3 = b) Indique as capacidades das memórias. Mem1 = Mem2 = Mem3 = c) A figura seguinte representa o mapa de memória do sistema. Assinale nessa figura a localização das três memórias. 20

Mapeamento de Memória - Introdução à Arquitectura de Computadores - 8.4 Considere as seguintes funções de selecção de duas memórias, num sistema com 1M palavras de capacidade. S1 = A19 A18 A17 A16 S2 = A19 A18 a) Indique as dimensões das zonas de memória correspondentes. S1 = S2 = b) Assinale na figura abaixo a localização das duas memórias no espaço de endereçamento. Indique também, na figura, o primeiro e último endereço de cada memória. FFFFFh 80000h 00000h 21

Caches - Introdução à Arquitectura de Computadores - Caches 9.1 Considere um sistema de memória constituído por uma cache de 64k palavras de 1 octeto e uma memória principal de 16M palavras de 1 octeto. Considere ainda que a cache tem blocos de 8 palavras e utiliza mapeamento directo. a) Indique, justificando, o número de bits que se utiliza para endereçar a cache e a memória principal (isto é, a largura do barramento de endereços). b) Indique, justificando, a largura dos campos de índice, etiqueta e deslocamento tal como interpretado por esta cache. c) Considere uma situação em que se pretende efectuar a leitura do seguinte conjunto de informação em sequência: Endereço 5AFFF8h 5AFFF2h 00FFF8h Dados 27h B0h E5h Considerando a cache inicialmente vazia, indique, justificando, qual é o conteúdo da cache no final destes acessos. Não se esqueça de indicar o número das linhas, e os campos etiqueta e dados para cada linha (utilize? para indicar que não sabe um valor). d) Considere que a taxa de sucesso nesta cache é de 98%, com tempo de acesso de 2ns. Admita que o tempo de acesso à memória primária é de 80ns. Calcule o tempo médio para um acesso de leitura. 22

Caches - Introdução à Arquitectura de Computadores - 9.2 Considere um sistema que usa um processador semelhante ao P3 com um espaço de endereçamento de 64K palavras de 16 bits. Nesse sistema será corrido o seguinte troço de programa. DIM EQU 400h ORIG 8000h A TAB DIM B TAB DIM ORIG 0000h MOV R1, R0 Rep: SUB M[R1+A], R1 ADD M[R1+B], R1 INC R1 CMP R1, DIM BR.NZ Rep... a) Considere que o sistema possui uma cache de mapeamento directo com 1K palavras, usando blocos com 4 palavras e uma política de escrita write-back com write-allocate. Se esta cache for usada exclusivamente para acesso aos dados indique qual a taxa de sucesso ( hit rate ). Não se esqueça que as instruções SUB e ADD geram 2 acessos a dados: um na leitura dos operandos, outro na escrita do resultado. b) Se, em alternativa, for usada uma cache com o dobro da capacidade (2K palavras) e esta possuir blocos de 2 palavras, indique qual será a taxa de sucesso ( hit rate ). c) Considere que o sistema possui memória primária com um tempo de acesso de 120 ns e que a cache possui um tempo de acesso de 40 ns. Indique o valor da taxa de sucesso ( hit rate ) a partir do qual compensa ter cache. 23

Caches - Introdução à Arquitectura de Computadores - 9.3 O troço de programa seguinte é executado num sistema com o processador P3 com uma cache de dados com 1k palavras, 1 via de associatividade, blocos de 2 palavras e política write-back. 1 SIZE EQU 1000h 2 ORIG 8000h 3 A TAB SIZE 4 W WORD 0 5 X WORD 0 6 Y WORD 0 7 Z WORD 0 8 B TAB SIZE 9 ORIG 0000h 10 MOV R2, R0 11 Loop: MOV R1, M[R2+A] 12 ADD M[R2+B], R1 13 INC R2 14 CMP R2, SIZE 15 BR.NZ Loop a) Qual é a taxa de sucesso na cache de dados ao executar este programa? (não se esqueça que a instrução ADD gera 2 acessos a dados, um na leitura dos operandos, outro na escrita do resultado) b) Sugira uma, e uma só, alteração à estrutura da cache, sem alterar a sua capacidade, que melhore o desempenho ao executar este programa. Capacidade = 1k palavras Dimensão do bloco = palavras Vias de associatividade = c) Admita que o desempenho do processador ao executar uma determinada aplicação é determinado pelo tempo de acesso à memória. Calcule o desempenho de um sistema com cache em relação a um sistema sem cache, assumindo que: a taxa de sucesso na cache é 90%. o tempo de acesso à cache é 60ns. o tempo de acesso à memória primária é 200ns. Só é lançado um acesso à memória após verificação da cache. 24

Memórial Virtual - Introdução à Arquitectura de Computadores - Memórial Virtual 10.1 Considere um sistema de memória virtual paginada. O endereço virtual tem 18 bits. O campo de deslocamento do endereço virtual tem 7 bits. O espaço de endereçamento físico é de 8k palavras. a) Indique a dimensão das páginas. b) Indique quantas páginas tem o espaço de endereçamento virtual. c) Pretende-se aceder ao endereço virtual 14A32h. Indique, em hexadecimal, o índice da tabela d) No acesso ao endereço virtual 14A32h foi lida da tabela de páginas o valor 5h. Indique em hexadecimal o endereço físico acedido. 10.2 Considere um sistema de memória virtual paginada. O espaço de endereçamento virtual é constituído por 16 páginas, cada uma com 32 palavras. O espaço de endereçamento físico é constituído por 8 páginas. a) Indique o número de bits do campo de deslocamento de um endereço virtual. b) Indique o espaço de endereçamento virtual. c) Pretende-se aceder ao endereço virtual 13Ch. Indique, em hexadecimal, o índice da tabela de páginas que será consultado. d) Indique o número de bits guardados em cada entrada da tabela de páginas (sem contabilizar os bits de controlo). e) No acesso ao endereço virtual 13Ch foi lido da tabela de páginas o valor 3. Indique, em hexadecimal, o endereço físico que será acedido. 10.3 O processador P3V é um processador P3 mas com memória virtual paginada com 64k palavras, linhas de endereço A15-A0. As páginas têm 256 palavras. 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 instalada. Número de entradas = Dimensão da entrada = octetos (não considere os bis de controlo) 25

Comunicação - Introdução à Arquitectura de Computadores - Comunicação 11.1 Considere o seguinte diagrama temporal no receptor, respeitante à transmissão de informação através de comunicação série assíncrona. Nesta transmissão, primeiro é enviado o bit menos significativo de um valor de 8 bits, é usado 1 stop bit e paridade par: a) Indique, em hexadecimal, os valores recebidos e verifique se houve algum erro na transmissão. b) Porque que razão na transmissão série assíncrona o número de bits entre o start bit e o stop bit é necessariamente baixo? 11.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 (recordase que, relativamente aos bits de dados, é enviado primeiro o bit menos significativo e em último lugar, o bit mais significativo). 1 1 b) Considerando as características da comunicação e assumindo que o envio de um bit demora 100 µs, indique o tempo mínimo que demora a enviar um ficheiro que possua 700 bytes (1 byte = 8 bits). 11.3 Dois sistemas dialogam entre si usando comunicação série síncrona em que a flag delimitadora é constituí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 26

Comunicação - Introdução à Arquitectura de Computadores - 11.4 Admita que numa transmissão série assíncrona apenas são transmitidas palavras de entre um conjunto de 4 palavras possíveis, por uma ordem arbitrária: 65h,73h,A6h,CEh. A transmissão de cada palavra assume: 1 start-bit, 8 bits de dados, 1 bit de paridade e 2 stop-bits. As palavras são transmitidas começando pelo bit mais significativo. a) Indique qual das sequências de bits anteriores está correcta. Sugestão: Comece por identificar os start-bits e os bits de paridade de cada sequência. b) Qual é a paridade adoptada? c) Caso tenha identificado alguma sequência de bits transmitida correctamente, indique (em hexadecimal) a sequência de palavras recebidas pelo receptor d) Assuma que o ritmo de transmissão é de 24000 bps. Nas condições das alíneas anteriores, indique o tempo que demora a enviar um ficheiro constituído por 1000 bytes. e) Qual é a eficiência da transmissão dos dados nas condições especificadas? 11.5 Dois sistemas dialogam entre si usando comunicação série síncrona em que a flag delimitadora é constituída pelo padrão 0111 1110 e em que é usada a técnica de bit stuffing. Se na linha de comunicação for recebida a sequência de bits indicada a seguir, indique em hexadecimal qual foi a informação útil recebida. Assuma que o bit mais significativo é o primeiro a ser transmitido. 27

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

Soluções - Introdução à Arquitectura de Computadores - 1.2 a) A B C +A B D +A C D +B C D b) (A+B) (C +D) 1.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) 1.4 F = (B +A D) (B C +B A D) F = A B C +A B D +B C D A B F C D 1.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 29

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

Soluções - Introdução à Arquitectura de Computadores - 2.2 f0 x y z 1 2 4 0 1 2 3 4 f1 f2 5 6 7 f3 2.3 Uma solução: A E 0 0 1 0 1 2 3 4 5 6 7 f B C D 2.4 A B A7-A0 A31-A24 A15-A8 A23-A16 B7-B0 B31-B24 B15-B8 B23-B16 8 8 8 8 8 8 8 8 0 Cin A + S B O Cout Cin A + S B O Cout Cin A + S B O Cout Cin A + S B O Cout Overflow Carry 8 8 8 8 S7-S0 S15-S8 S23-S16 S31-S24 S 31

Soluções - Introdução à Arquitectura de Computadores - 3.1 a) b) c) 0011 7ADD F0DB 0011 0002 C02D 0011 0002 3.2 a) b) c) 036F 0211 0010 C7EC 0211 0016? FAE0? 3.3 a) 01B7 FB2F b) FCA5 03DA 0016 c) F596 03DB 32

Soluções - Introdução à Arquitectura de Computadores - 4.1 a) 33

Soluções - Introdução à Arquitectura de Computadores - b) ComputeAVG: PUSH R1 PUSH R2 PUSH R3 PUSH R4 PUSH R5 MOV R1, M[SP+9] MOV R2, M[SP+8] MOV R3, M[SP+7] MOV R5, R0 CMP R2, R3 BR.NN Sair DEC R3 ADD R3, R1 MOV R1, R0 MOV R4, R0 MOV R5, R0 Ciclo: ADD R5, M[R3] ADDC R4, R0 ADD R3, R2 INC R1 CMP R1, 256 BR.N Ciclo SHR R5, 8 SHL R4, 8 MBBH R5, R4 Sair: MOV M[SP+9], R5 PUSH R5 PUSH R4 PUSH R3 PUSH R2 PUSH R1 RETN 2 34

Soluções - Introdução à Arquitectura de Computadores - 4.2 a) 35

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 5.1 Endereço Dados Leitura/Escrita 1 0010h 5033h L 2 0011h 2 L 3 0372h? L 4 7ADEh? E 5.2 Endereço Dados Leitura/Escrita 1 0010 A1F6 L 2 0011 0020 L 3 0121? L 4 0121 0000 E 36

Soluções - Introdução à Arquitectura de Computadores - 5.3 Endereço Dados Leitura/Escrita 1 0210 1C00 L 2 FADF? L 3 FAE0? L 5.4 Endereço Dados Leitura/Escrita 1 03D9 883E L 2 03DA 0002 L 3 FB32? L 4 FB32? E 6.1 a) 0055h b) 0000h c) 8000h 37

Soluções - Introdução à Arquitectura de Computadores - 6.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) ii) INT_MASK EQU 8000h START_TIMER EQU 1 COUNT_TIMER EQU 4 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 6.3 a) Pilha vai ficar com lixo (valores de RE) e interrupções ficariam desativadas (flag E é colocada a 0 quano entra na rotina de interrupção e não é reposta a 1) b) Não é correto fazer CALL de rotinas de interrupção. Apesar de neste caso se garantir que é colocado uma palavra na pilha para esse valor ser colocado posteriormente no RE, esse valor é zero e logo as interrupções ficarão desativadas. Para além disso é ainda incrementada a variável DataReady. c) ORIG FE0Fh INT15 WORD Timer MOV R1, 8000h MOV M[FFFAh], R1 ENI 38

Soluções - Introdução à Arquitectura de Computadores - 6.4 a) <end> <mascara_int> <time_val> FE0Fh 8000h 000Ah b) INT 15 c) R1 = 0018h 7.1 CAR CAR+1 R13 SHL R13, flags ZC (RD ou R13) M[R13] R7 IAK 0 7.2 SD!SD, flags ZN (SD ou R11) M[SD] R8 CAR WB IAK 0 7.3 CAR CAR+1 SBR CAR+1 RE RD (RD ou R13) RD RE 7.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 SR1 SR2 IAK FM CALU MA MB M2 1 LS MCOND CC LI LF CONST/NA MRB RB WM WR MD MAD RAD 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 7.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 SR1 SR2 IAK FM CALU MA MB M2 1 LS MCOND CC LI LF CONST/NA MRB RB WM WR MD MAD RAD 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 39

Soluções - Introdução à Arquitectura de Computadores - 7.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 SR1 SR2 IAK FM CALU MA MB M2 1 LS MCOND CC LI LF CONST/NA MRB RB WM WR MD MAD RAD 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 SR1 SR2 IAK FM CALU MA MB M2 1 LS MCOND CC LI LF CONST/NA MRB RB WM WR MD MAD RAD 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 8.1 MS1 = A11 A10 A9 MS2 = A11 MS3 = A11 A10 A9 A8 MS4 = A11 A10 8.2 a) M1 = A16 A15 M2 = A16 A15 A14 A13 M3 = A16 A15 A14 b) 2 17 = 128K 128-32-8-16 = 72 K palavras 40

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

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

Soluções - Introdução à Arquitectura de Computadores - 9.1 a) 24 bits b) Etiqueta Indíce Deslocamento 8 bits 13 bits 3 bits 64K = 2 16 Como é mapeamento direto, 24-16 = 8 bits de etiqueta 8 = 2 3, logo deslocamento tem 3 bits Logo indíce tem 16-3 = 13 bits c) d) Número da linha Etiqueta Dados 0 1 2 3 4 5 6 7 1FFEh 5Ah?? B0h????? 1FFFh 00h E5h??????? t = 0.98 2+.02 (2+80) = 3,6ns 9.2 a) 50% b) 75% c) 33% 9.3 a) 67% b) Dimensão do bloco = 4 palavras c) Desempenho = 200/(60+.1 200) = 2,5 10.1 a) 128 palavras b) 2k páginas c) 294h d) 2B2h 43

Soluções - Introdução à Arquitectura de Computadores - 10.2 a) 5 bits b) 512 palavras c) 9h d) 3 bits e) 7Ch 10.3 a) 15 8 7 0 Indíce Deslocamento b) Número de entradas = 256 Dimensão da entrada = 1 octeto 11.1 a) 80h, EEh. Sem erros de transmissão. b) Devido ao desfasamento nas frequências do emissor e receptor (escorregamento). 11.2 a) 1 1 0 0 1 1 0 0 1 1 0 1 1 b) 800ms 11.3 C 11.4 a) C b) Ímpar c) A6h, 65h, 73h d) 500ms e) 67% 11.5 3F87E0F8h 44