Baixe o app para aproveitar ainda mais
Prévia do material em texto
18/11/2020 Teste: Atividade para avaliação - Semana 5 https://cursos.univesp.br/courses/3214/quizzes/13131/take 1/4 2 ptsPergunta 1 Afirmativas I, III e VI. Afirmativas, I, III e V. Afirmativas II, III e V. Afirmativas II, III e VI. Afirmativas III, IV e VI. Com relação ao ciclo de execução de uma instrução, quais afirmativas abaixo são verdadeiras. Podemos dizer que o ciclo de execução de uma instrução tem as seguintes etapas: busca da instrução, decodificação, cálculo dos endereços, busca de operandos, execução e armazenamento do resultado da execução. I. Durante a etapa de decodificação, os bits menos significativos do campo de operando da instrução são usados pela Unidade de Controle para gerar os sinais de controle que irão gerenciar o processador na execução da instrução. II. Durante a operação de busca de instrução, os registradores Contador de Programa (PC), Registrador de Endereço de Memória (MAR), Registrador de Buffer de Memória (MBR) e Registador de Instrução, são necessários. III. Durante a etapa de execução, sempre é necessário o acesso à memória para leitura de dados IV. Em um ciclo indireto, o operando que está na instrução é na verdade um endereço do operando a ser processado, precisando para isto, mais uma leitura de memória. V. 2 ptsPergunta 2 Com relação aos problemas de conflitos encontrados em processadores RISC que utilizam pipeline, quais afirmativas abaixo são verdadeiras: O conflito (hazard) estrutural ou de recursos em um processador com pipeline, acontece quando duas ou mais instruções necessitam do mesmo dado que está sendo calculado por outra instrução que ainda está no pipeline. Estes hazards são evitados no projeto do processador e de seu conjunto de instruções. I. O conflito (hazard) de dados ocorre quando uma instrução que está no estágio de execução, necessita de um valor calculado por outra instrução, que ainda está no II. 18/11/2020 Teste: Atividade para avaliação - Semana 5 https://cursos.univesp.br/courses/3214/quizzes/13131/take 2/4 Afirmativas I, III e VI. Afirmativas I, II e III. Afirmativas, I, III e V. Afirmativas II, IV e VI. Afirmativas II, III e IV. pipeline e pode ser evitado de 3 maneiras: a) usando instruções NOP entre estas instruções de modo a permitir que o dado esteja armazenado quando for lido, b) adiantar a execução da instrução que gera o resultado necessário, de modo a permitir que o dado já esteja armazenado quando for lido; e c) usar um hardware de adiantamento de dados que permite que o resultado seja usado antes que seja armazenado. O conflito (hazard) de controle existe quando os sinais de controle gerados pela Unidade de Controle, para duas instruções, são direcionados para o mesmo recurso. Para minimizar isto, podemos ter um projeto onde os recursos que tenham concorrência possam ser duplicados ou tenham sua utilização priorizada. III. O conflito (hazard) estrutural ou de recursos em um processador com pipeline, acontece quando duas ou mais instruções necessitam do mesmo recurso (ULA, memória, registradores etc.) ao mesmo tempo e são evitados no projeto do processador e de seu conjunto de instruções. IV. O conflito (hazard) de dados ocorre quando duas ou mais instruções necessitam de um valor que está armazenando na memória ou em um registrador e pode ser evitado utilizando memórias e registradores com duas portas de saída. V. O conflito (hazard) de controle é gerado quando temos um salto condicional e a opção da próxima instrução a ser executada após o salto não é a certa. Quando isto ocorre, é necessário esvaziar o pipeline e começar a executar o caminho correto. Para minimizar isto, podemos antecipar a execução do salto condicional, desde que não cause um hazard de dados, e ou utilizar algoritmos de previsão de desvio. VI. 2 ptsPergunta 3 Quais alternativa é verdadeira para o problema abaixo: O trecho de código, da arquitetura MIPS com pipeline, abaixo faz a troca entre dois elementos de um vetor. Existe algum conflito (hazard) de dados neste trecho? Se sim, como é possível resolver o conflito alterando as ordens das instruções, mas mantendo a funcionalidade do código? 18/11/2020 Teste: Atividade para avaliação - Semana 5 https://cursos.univesp.br/courses/3214/quizzes/13131/take 3/4 Existe dependência entre as instruções 2 e 4, entre $t0 e $t2 e podemos resolver trocando a ordem de 1 com 2. Existe dependência entre as instruções 1 e 3, entre $t1 e $t2 e podemos resolver trocando a ordem de 1 com 3. Existe dependência entre as instruções 2 e 3, entre $t1 e $t2 e podemos resolver trocando a ordem de 3 com 4. Não temos nenhuma dependência de dados entre as instruções, pois todos os valores estão disponíveis em um ciclo de clock após a execução das instruções. Existe dependência entre as instruções 1 e 2, entre $t1 e $t2 e podemos resolver trocando a ordem de 1 com 2. 1 lw $t0, 0($t1) # $t1 tem endereço base do vetor e $t0 recebe vetor[i] 2 lw $t2, 4($t1) # $t2 recebe vetor[i+1] 3 sw $t2, 0($t1) # vetor[i] recebe conteúdo de vetor[i+1] que está em $t2 4 sw $t0, 4($t1) # vetor[i+1] recebe conteúdo de vetor[i] que está em $t0 Alternativas: 2 ptsPergunta 4 Afirmativas II, III e V. Afirmativas III, V e VI. Quais das afirmativas abaixo são verdadeiras: O desdobramento (unrolling) de loops tem como objetivo: Aumentar os acertos em acessos aos recursos de memória (registradores, caches de dados e TLB). I. Diminuir a quantidade de memória necessária para armazenar o loop.II. Aumentar o número de iterações de modo a evitar os conflitos (hazards) de recursos que possam aparecer na execução do loop. III. Aumentar o paralelismo de instruções de modo a melhorar o uso dos recursos em arquiteturas pipeline super escalares. IV. Possibilitar a redução da carga de trabalho do loop, pela redução de vezes de execução de algumas instruções. V. Diminuir a interação entre as instruções load/store e as instruções aritméticas e lógicas, em uma arquitetura superescalar VI. 18/11/2020 Teste: Atividade para avaliação - Semana 5 https://cursos.univesp.br/courses/3214/quizzes/13131/take 4/4 Nenhum dado novo para salvar. Última verificação às 23:22 Afirmativas I, III e IV. Afirmativas I, III e VI. Afirmativas, I, IV e V. 2 ptsPergunta 5 6,22 2,78 7,22 5,0 1,78 Considerando um processador RISC com pipeline de 5 estágios, qual seria o speedup (fator de aceleração) de em comparação a um processador CISC, para a execução de 10 instruções que utilizem todos os estágios do pipeline, sabendo-se que o tempo para execução no RISC e no CISC é de 5 t e que t é o tempo de cada estágio de pipeline: Enviar teste
Compartilhar