Baixe o app para aproveitar ainda mais
Prévia do material em texto
ORGANIZAÇÃO DE COMPUTADORES O processador5 Assinale Verdadeiro ou Falso. (Questões 1 a 6) EXERCÍCIOS DE APOIO Apenas para praticar. Não vale nota. Os principais fatores que afetam o desempenho da CPU são: (i) a contagem de instruções, que é determinada pelo ISA e compilador; e (ii) CPI (clock por instrução) e tempo de ciclo, que são determinados pelo hardware da CPU. ( ) Verdadeiro ( ) Falso RESPOSTA: A resposta correta é: Verdadeiro. 1. Para executar uma instrução, três etapas devem ser cumpridas: (i) busca de instrução na memória; (ii) decodificação e busca de operandos; e (iii) a execução da instrução, cujas tarefas dependem do tipo de instrução. ( ) Verdadeiro ( ) Falso RESPOSTA: A resposta correta é: Vardadeiro. 2. O caminho mais comprido no fluxo de dados determina o período de clock. No caso do MIPS, o caminho crítico é determinado pela instrução de store. ( ) Verdadeiro ( ) Falso RESPOSTA: A resposta correta é: Falso - A instrução com caminho mais longo no fluxo de dados é o load, pois escreve no registrador após a leitura da memória. 3. A versão pipeline do MIPS possui cinco estágios: IF (busca de instrução na memória), ID (decodificação de instrução e leitura de registradores), EX (executa operação ou calcula endereço), MEM (acesso a operando na memória) e WB (escreve resultado no registrador). O estágio WB utiliza o banco de registradores na primeira metade do ciclo, e o estágio ID acessa o banco de registradores na segunda metade do ciclo. ( ) Verdadeiro ( ) Falso RESPOSTA: A resposta correta é: Verdadeiro. 4. A latência da instrução diminui na versão pipeline de um processador. ( ) Verdadeiro ( ) Falso RESPOSTA: A resposta correta é: Falso - A latência da instrução não diminui 5. A técnica de pipeline no fluxo de dados introduz três tipos de conflitos: estruturais, de dados e de controle. O encaminhamento de dados elimina completamente as bolhas, devido a conflitos de dados. ( ) Verdadeiro ( ) Falso RESPOSTA: A resposta correta é: Falso - O encaminhamento de dados reduz bolhas devido a conflitos de dados. Porém, quando a dependência é de instrução load, ainda tem uma bolha (dado pronto em MEM, e necessário em EX). 6. Considere o seguinte trecho de código para o processador MIPS: I0: R4 = R1 + R0; I1: R9 = R3 - R4; I2: R4 = R5 + R6; I3: R2 = MEM[R3 + 100]; I4: R2 = MEM[R2 + 0]; 7. I5: MEM[R4 + 100] = R2; I6: R2 = R2 & R1; I7: BEQ R9 == R1, Target; I8: R9 = R9 & R1; … Target: R7 = R7 & R9; Considere uma implementação do processador MIPS com organização pipeline com 5 estágios (IF, ID, EX, MD e WB), detecção de conflitos, resolução de desvios no estágio ID, sem previsão de desvios, sem forwarding. Quais são as dependências de dados existentes? Justifique sua resposta.? RESPOSTA: I1 depende de I0 (R4 é produzido por I0 e usado por I1); I4 depende de I3 (R2); I5 depende de I4 (R2); I5 depende de I2 (R4); → observe que I5 é instrução de store, e usa R2 I6 depende de I4 (R2); (R2 também foi produzido em I3, mas sobrescrito por I4) I7 depende de I1 (R9); Target depende de I1 (R9); a. Quantos ciclos são necessários para executar este trecho de código se o desvio não for executado? RESPOSTA: São necessários 20 ciclos. Note que, como não há previsão de desvios, uma decisão de desvio é tomada em ID, e ocorre uma bolha (nop) no estágio de busca (IF), no ciclo 15. b. Quantos ciclos são necessários para executar este trecho de código se o desvio for executado? RESPOSTA: Como não há previsão de desvios, são necessários 20 ciclos, pois a decisão de desvio é tomada em ID, e ocorre uma bolha (nop) no estágio de busca (IF), no ciclo 15. c. Considere as seguintes afirmações sobre o desempenho da CPU. Assinale a alternativa correta: RESPOSTA: A resposta correta é a alternativa a) "Apenas as afirmações I e II estão corretas." 8. Os principais fatores que afetam o desempenho da CPU são: (i) a contagem de instruções, que é determinada pelo ISA e compilador; e (ii) CPI (clock por instrução) e tempo de ciclo, que são determinados pelo hardware da CPU. I. Para executar uma instrução, três etapas devem ser cumpridas: (i) busca de instrução na memória; (ii) decodificação e busca de operandos; e (iii) a execução da instrução, cujas tarefas dependem do tipo de instrução. II. O caminho mais comprido no fluxo de dados determina o período de clock. No caso do MIPS, o caminho crítico é determinado pela instrução de store. III. Apenas as afirmações I e II estão corretas.a. Apenas as afirmações I e III estão corretas.b. Apenas a afirmação I está correta.c. As afirmações I, II e III estão corretas.d. Apenas as afirmações II e III estão corretas.e. Considere as seguintes afirmações sobre o pipeline do MIPS. 9. A versão pipeline do MIPS possui cinco estágios: IF (busca de instrução na memória), ID (decodificação de instrução e leitura de registradores), EX (executa operação ou calcula endereço), MEM (acesso a operando na memória) e WB (escreve resultado no registrador). I. Assinale a alternativa correta: RESPOSTA: A resposta correta é a alternativa d) "Apenas as afirmações I e II estão corretas." O estágio WB utiliza o banco de registradores na primeira metade do ciclo, e o estágio ID acessa o banco de registradores na segunda metade do ciclo. II. A latência da instrução diminui na versão pipeline de um processador.III. Apenas as afirmações II e III estão corretas.a. Apenas as afirmações I e III estão corretas.b. Apenas a afirmação I está correta.c. Apenas as afirmações I e II estão corretas.d. As afirmações I, II e III estão corretas.e. Considere as seguintes afirmações sobre conflitos (hazards) no pipeline. Assinale a alternativa correta: RESPOSTA: A resposta correta é a alternativa e) "Apenas as afirmações I e III estão corretas." 10. A técnica de pipeline no fluxo de dados introduz três tipos de conflitos: estruturais, de dados e de controle. I. O encaminhamento de dados elimina completamente as bolhas, devido a conflitos de dados. II. Conflitos de controle podem ser minimizados, mas não completamente eliminados.III. Apenas as afirmações II e III estão corretas.a. Apenas a afirmação I está correta.b. Apenas as afirmações I e II estão corretas.c. As afirmações I, II e III estão corretas.d. Apenas as afirmações I e III estão corretas.e. Considere as seguintes afirmações sobre desvios. 11. Uma maneira de minimizar o impacto causado pelos conflitos de controle gerados pelos desvios condicionais (branchs) é antecipar a sua resolução, trazendo-a para o I. Assinale a alternativa correta: RESPOSTA: A resposta correta é a alternativa c) "As afirmações I, II e III estão corretas." estágio ID. Ainda assim, perde-se um ciclo até que se conheça qual a próxima instrução a ser executada. A previsão de desvios é importante para diminuir o atraso devido a conflitos de controle. Pode ser estática (ex.: taken ou not-taken), ou dinâmica (hardware mede comportamento real, armazena informações, e usa como referência para determinar o próximo resultado). II. Pipelines mais profundos (ou seja, aqueles com mais estágios) sofrem maior impacto dos conflitos de controle, portanto, demandam mecanismos de previsão de desvios mais precisos, que são combinados com outras técnicas como branch delay slot. III. Apenas a afirmação II está correta.a. Apenas a afirmação I está correta.b. As afirmações I, II e III estão corretas.c. Apenas as afirmações I e II estão corretas.d. Apenas a afirmação III está correta.e. Considere o seguinte trecho de instruções do MIPS. I0: ADD R3 = R1 + R0; I1: SUB R5 = R3 - R4; I2: LDW R2 = MEM[R3 + 100]; I3: STW MEM[R4 + 100] = R5; I4: BEQ R9 == R5, Target; I5: AND R9 = R9 & R1; Assinale a(s) alternativa(s) correta(s): RESPOSTA: 12. A instrução I2 depende do resultado de R3 definido em I1.a. A instrução I5 só será executada se o conteúdo de R9 for igualao conteúdo de R5.b. A instrução I3 depende do resultado de R5 definido em I1.c. A instrução I3 depende do resultado de R4 definido em I1.d. A instrução I1 depende do resultado de R3 definido em I0.e. A resposta correta são as alternativas b), c) e e) "A instrução I5 só será executada se o conteúdo de R9 for igual ao conteúdo de R5."; "A instrução I3 depende do resultado de R5 definido em I1."; "A instrução I1 depende do resultado de R3 definido em I0." Considere o seguinte trecho de código para o processador MIPS. I0: LDW R1 = MEM[R3 + 4]; I1: LDW R2 = MEM[R3 + 8]; I2: ADD R4 = R1 + R2; I3: STW MEM[R3 + 12] = R4; I4: SUB R9 = R3 - R4; I5: AND R2 = R2 & R1; I6: BEQ R9 == R1, Target; I7: AND R8 = R9 & R1; Target: IX: ADD R7 = R9 + R6; Assinale a(s) alternativa(s) correta(s): RESPOSTA: A resposta correta são as alternativas a) e d) "Considerando uma implementação do processador MIPS com organização pipeline com 5 estágios (IF, ID, EX, MD e WB), detecção de conflitos, resolução de desvios no estágio ID, previsão estática not-taken e com forwarding, são necessários 13 ciclos para executar este trecho de código se o 13. Considerando uma implementação do processador MIPS com organização pipeline com 5 estágios (IF, ID, EX, MD e WB), detecção de conflitos, resolução de desvios no estágio ID, previsão estática not-taken e com forwarding, são necessários 13 ciclos para executar este trecho de código se o desvio não for executado. a. Considerando uma implementação do processador MIPS com organização pipeline com 5 estágios (IF, ID, EX, MD e WB), detecção de conflitos, resolução de desvios no estágio ID, mas sem forwarding, são necessários 16 ciclos para executar este trecho de código se o desvio não for executado. b. As dependências de dados existentes são: I2 depende de I0 e I1; I3 depende de I2; I4 depende de I3 e I2. c. Considerando uma implementação do processador MIPS com organização pipeline com 5 estágios (IF, ID, EX, MD e WB), detecção de conflitos, resolução de desvios no estágio ID, previsão estática not-taken e com forwarding, são necessários 14 ciclos para executar este trecho de código se o desvio for executado. d. Considerando uma implementação do processador MIPS com organização pipeline com 5 estágios (IF, ID, EX, MD e WB), detecção de conflitos, resolução de desvios no estágio ID, mas sem forwarding, são necessários 15 ciclos para executar este trecho de código se o desvio não for executado e se reordenarmos o código, colocando a instrução I5 após a I1. e. ESCONDER GABARITO desvio não for executado."; "Considerando uma implementação do processador MIPS com organização pipeline com 5 estágios (IF, ID, EX, MD e WB), detecção de conflitos, resolução de desvios no estágio ID, previsão estática not-taken e com forwarding, são necessários 14 ciclos para executar este trecho de código se o desvio for executado."
Compartilhar