Instituto Federal de Educação, Ciência e Tecnologia Curso: Bacharelado em Ciência da Computação Disciplina: Arquitetura e Organização de Computadores Professor: Mário Luiz Rodrigues Oliveira/Otávio de Souza Martins Gomes Atividade: 2ª Lista de Exercícios Formiga, MG, 25 de fevereiro de 2014 INSTRUÇÕES: 1. Esta lista de exercícios poderá ser resolvida em grupo com no máximo 3 integrantes. 2. Caso você ache que falta algum detalhe nas especificações, você deverá fazer as suposições que julgar necessárias e escrevê-las com as suas respostas. Pode acontecer também de algum enunciado conter dados e/ou especificações supérfluas para a solução de alguma pergunta específica. Utilize sua capacidade de julgamento para separar o supérfluo do necessário. 3. Entregue apenas uma resolução por grupo. 4. A data final para entrega desta lista de exercícios é o dia 12/03/2014, no início da aula. 5. Listas plagiadas serão desconsideradas, sendo atribuída nota 0 (zero) a todos os envolvidos. EXERCÍCIOS 1) [TAN-Adaptado]Considere o conteúdo de cada posição de memória, conforme descrito a seguir: • registrador 8 contém o valor 40 • registrador de base (RB) contém o valor 10 • palavra 20 contém o valor 40 • palavra 30 contém o valor 50 • palavra 40 contém o valor 60 • palavra 50 contém o valor 70 Considere que as instruções a seguir referem-se a uma máquina com um endereço e com um acumulador. Explique qual o valor estará carregado no acumulador após a execução de cada instrução (as operações não devem ser consideradas cumulativas e referem-se sempre ao estado descrito acima): a) LOAD IMEDIATO 20 b) LOAD REGISTRADOR DIRETO 8 c) LOAD REGISTRADOR INDIRETO 8 d) LOAD ABSOLUTO DIRETO 20 e) LOAD ABSOLUTO INDIRETO 20 f) LOAD RELATIVO DIRETO 20 g) LOAD RELATIVO INDIRETO 20 Instituto Federal de Educação, Ciência e Tecnologia Curso: Bacharelado em Ciência da Computação Disciplina: Arquitetura e Organização de Computadores Professor: Mário Luiz Rodrigues Oliveira/Otávio de Souza Martins Gomes Atividade: 2ª Lista de Exercícios Formiga, MG, 25 de fevereiro de 2014 2) [EXAME QUALIFICAÇÃO DOUTORADO UFMG-2010-1] a) Descreva objetivamente as duas vantagens da arquitetura load/store? b) As arquiteturas load/store são mais típicas de máquinas Reduced Instruction Set Computer (RISC) ou Complex Instruction Set Computer (CISC)? Explique objetivamente. c) Assumindo que os demais fatores sejam iguais, uma arquitetura load/store apresentará uma CPI maior ou menor do que uma arquitetura memory-memory? Justifique objetivamente. d) Descreva objetivamente, para cada uma das seguintes arquiteturas, sua principal característica e o número de endereços de memória explícitos em uma instrução típica: 1. load/store 2. memory-memory 3. pilha 4. acumulador 3) [PAT-Adaptado] Este exercício tem por objetivo comparar diferentes estilos de conjunto de instruções. Os estilos de instruções a serem comparados são: • Acumulador: um operando é implicitamente o acumulador. • Memory-Memory: todos os três operandos da instrução estão na memória. • Pilha: todas operações ocorrem considerando que os operandos estão no topo da pilha. Apenas as instruções push e pop podem fazer acessos à memória. • Load-Store: todas as operações ocorrem nos registradores e as instruções register- register possuem três operandos. Assuma que o opcode de cada instrução possui 4 bits, todos os endereços de memória são de 2 bytes, todos os operandos ocupam 4 bytes de memória, existem 16 registradores de propósito geral e que o tamanho das instruções é múltiplo inteiro de um byte. Considere as seguintes instruções e suponha que todas as variáveis estão inicialmente na memória: E:= F + G; F:= E * G; D:= E / F; a) Para a sequência de código acima, calcule a quantidade de bytes necessários para executá-la em cada um dos estilos de instrução acima especificados. Instituto Federal de Educação, Ciência e Tecnologia Curso: Bacharelado em Ciência da Computação Disciplina: Arquitetura e Organização de Computadores Professor: Mário Luiz Rodrigues Oliveira/Otávio de Souza Martins Gomes Atividade: 2ª Lista de Exercícios Formiga, MG, 25 de fevereiro de 2014 b) Qual estilo de arquitetura é mais eficiente considerando como parâmetro de desempenho o tamanho do código em bytes? Justifique sua resposta. c) Qual estilo de arquitetura é mais eficiente considerando como parâmetro de desempenho o tráfego de memória gerado pelo código durante a execução, incluindo busca de instruções? Justifique sua resposta. d) Algumas arquiteturas são caracterizadas considerando o número de endereços de memória por instrução. Normalmente usam-se os termos 0,1,2 e 3 endereços por instrução. Associe esses termos a cada categoria de arquitetura acima especificadas. 4) [TAN] Nas CPU´s Intel, as instruções podem conter qualquer número de bytes, par ou ímpar. Nas CPU´s Motorola, todas as instruções contém um número par de bytes. Dê uma vantagem do esquema Intel. 5) [STA-Adaptado] a) Uma instrução em linguagem de máquina é formada por opcode e operandos. A especificação de onde estão os operandos é conhecida como endereçamento. Cite e explique 3 (três) modos de endereçamento. b) Quantas vezes a CPU acessa a memória quando busca e executa uma instrução que requer um único operando, usando os seguintes modos de endereçamento? 1. direto 2. indireto 3. imediato 4. registrador c) Quantas vezes a CPU acessa a memória quando busca e executa uma instrução que requer dois operandos, usando os seguintes modos de endereçamento? 1. direto 2. indireto 3. imediato 4. registrador 6) [TAN-Adaptado] Algumas arquiteturas Complex Instruction Set Computer (CISC) possuem uma operação denominada CLR (limpar) que inicializa uma posição de memória ou registrador com o valor zero. As arquiteturas Reduced Instruction Set Computer (RISC) são desprovidas de tal instrução, pois uma de suas características é possuir um número simples e reduzido de instruções. No entanto, nada impede a criação de Instituto Federal de Educação, Ciência e Tecnologia Curso: Bacharelado em Ciência da Computação Disciplina: Arquitetura e Organização de Computadores Professor: Mário Luiz Rodrigues Oliveira/Otávio de Souza Martins Gomes Atividade: 2ª Lista de Exercícios Formiga, MG, 25 de fevereiro de 2014 um programa que inicializa uma posição de memória ou registrador com o valor zero. Planeje uma maneira eficiente de limpar uma posição de memória ou registrador numa máquina com arquitetura MIPS (Microprocessor Without Interlocked Pipeline Stages). Lembre-se que a arquitetura MIPS é um exemplo típico de máquina RISC. 7) [STA-Adaptado] Considere um processador Reduced Instruction Set Computer (RISC) e a função A=(BC)*(D-E). Suponha opcode de 8 bits, operandos e endereços de memória de 16 bits. Considere ainda que o processador possui registradores endereçados por 4 bits. Escreva um programa para calcular essa função. Seu código não deve sobrescrever quaisquer dos operandos e você pode utilizar quaisquer registradores temporários necessários. a) Qual o número máximo de registradores a disposição do programador? Justifique sua resposta. b)Qual o tamanho do seu programa em bytes? Justifique sua resposta. c)Qual o tráfego de memória gerado pelo seu programa durante a execução, incluindo a busca de instruções? Justifique sua resposta. 8) [PAR-Adaptado] Vários autores sugerem que adicionar um modo de endereçamento register-memory numa arquitetura laod-store pode ser útil. A ideia é trocar sequências do tipo: LOAD R1, M ADD R2,R2,R1 Por ADD R2, M, onde M é o endereço de uma posição de memória qualquer. Suponha que a nova instrução faça o ciclo de clock aumentar 10%. Suponha também que a frequência média de loads em programas típicos na máquina load-store é 20%. A nova instrução só afeta o ciclo de clock e não a quantidade de ciclos por instrução (CPI). Qual a porcentagem de loads deve ser eliminada para que a máquina com a nova instrução tenha pelo menos o mesmo desempenho? 9) [TAN] Uma máquina contém instruções de 16 bits e endereços de 6 bits. Algumas instruções têm um endereço e outras têm dois. Se houver n instruções de dois endereços, qual o número máximo de instruções de um endereço? Instituto Federal de Educação, Ciência e Tecnologia Curso: Bacharelado em Ciência da Computação Disciplina: Arquitetura e Organização de Computadores Professor: Mário Luiz Rodrigues Oliveira/Otávio de Souza Martins Gomes Atividade: 2ª Lista de Exercícios Formiga, MG, 25 de fevereiro de 2014 10) [TAN] Um de seus amigos lhe informa que teve um brilhante ideia: uma instrução com dois opcodes. Você deve mandá-lo para o cartório de registro de patentes ou de volta a prancheta? Referências: [TAN] TANENBAUM, Andrew S. Organização Estruturada de Computadores. 5ª edição. São Paulo: Pearson Prentice Hall, 2007. [PAT] PATTERSON, David A. e HENNESSY, John L. Organização e Projeto de Computadores: a interface hardware/software. 3ª edição. São Paulo: Campus, 2008. [STA] STALLINGS, William. Arquitetura e Organização de Computadores. 8ª edição. São Paulo: Pearson Prentice Hall, 2010. [PAR] PARHAMI, Behrooz. Arquitetura de Computadores: de microprocessadores a supercomputadores. 1ª edição. McGraw-Hill, 2008. [HEN] HENNESSY, John L. e PATTERSON, David A. Arquitetura de Computadores: uma abordagem quantitativa. 5ª edição. São Paulo: Campus, 2014.