Baixe o app para aproveitar ainda mais
Prévia do material em texto
LISTA 02: 1. Faça a tradução dos seguintes códigos abaixo para instruções de máquina (assembly): A)a = a + a add $a, $a, $a B)a = b – c sub $a, $b, $c C)A[10]=c sw 40($A), $c D)if ( a != b) a = a + b beq a, b, label add $a, $a, $b label exit E)if ( a == b) a = a – b bne a, b, label sub $a, $a, $b label exit F)a = b + C[100]; lw $t1, 400($C) add $a, $b, $t1 2. Em relação ao endereçamento imediato, porque existe uma instrução addi mas não uma subi? A instrução addi permite que se faça uma soma com um valor constante. A instrução subi não existe pois para fazer uma subtração imediata basta adicionar um constante negativo. 3. Qual é o único conjunto de instruções que pode ser usado para ler e escrever na memória, em uma arquitetura RISC? São as instruções load e store, representadas em assembly por lw e sw. 4. O que é modo de endereçamento e quais os modos de endereçamento das instruções do MIPS? Modo de endereçamento é uma forma de alocar a memória RAM em porcões, de modo que a CPU possa determinar qual posição de memória será utilizada por determinada instrução. O MIPS possui cinco modos de endereçamento por deslocamento, imediato, registrador indireto, relativo ao pc e absoluto. 5. Com relação ao subsistema de busca de instruções, explique porque precisamos de um somador dedicado para somar o endereço do PC com a constante 4 para calcular o endereço da próxima instrução. Porque não podemos utilizar o somador localizado na ULA? Devemos ter um somador dedicado para incrementar o PC, porque como no MIPS monociclo cada instrução e executada em um único ciclo não seria possível incrementar o PC e depois fazer uma operação no mesmo ciclo, pois só pode utilizar a ULA uma vez por ciclo. 6. Descreva as etapas da execução de uma instrução Tipo R. 1 busca a instrução na memória e incrementa o PC;⁰ 2 decodifica ela e gera os sinais de controle para o resto do bloco operativo;⁰ 3 faz os cálculos na ULA;⁰ 4 escreve o resultado do cálculo no registrador destino;⁰ 7. Desenhe um diagrama da ULA contendo todas as entradas, saídas e sinais de controle. Defina também o número de bits de cada linha. A seguir explique a função de cada um. 1 5 4 2 3 1-Dado lido 1: possui 32 bits, recebe o valor do registrador um para efetuar a operação; 2-Dado lido 2: possui 32 bits, recebe o valor do registrador dois para efetuar a operação; 3-Controle da ULA: possui 3 bits, e determina a operação a ser realizada 4-Resultado: possui 32bits, resultado da operação realizada pela ULA que será gravado no registrador destino; 5-Zero: usada para implementar desvios; 8. Desenhe um diagrama do banco de registradores contendo todas as entradas, saídas e sinais de controle. Defina também o número de bits de cada linha. A seguir explique a função de cada um. 1 7 2 3 6 4 5 ULA Registradores 1-Registrador a ser lido 1: possui 5 bits, indica qual registrador será usado na operação da ULA; 2-Registrador a ser lido 2: possui 5 bits, indica qual registrador será usado na operação da ULA; 3-Registrador a ser escrito: possui 5 bits, indica qual registrador recebera o resultado da operação da ULA; 4-Dado de escrita: possui 32 bits, resultado da operação da ULA para ser escrito no registrador destino; 5-Escrita no registrador: possui 1bit, indica para o banco de registradores se a instrução que está sendo executada ira salvar dados nos registradores; 6-Dado lido 1: possui 32 bits, saída do valor do registrador um para a ULA; 7-Dado lido 2: possui 32 bits, saída do valor do registrador dois para a ULA; 9. Porque é importante na implementação MIPS que a memória de instrução e a memória de dados sejam distintas? Porque como a execução de uma instrução ocorre em um único ciclo no MIPS monociclo, ele só poderá fazer acesso a esses tipos de memória uma vez, se elas fossem unificadas o processador só conseguiria buscar ou instrução, ou dados, não conseguindo os dois. 10. Calcule o tempo total que o seguinte código de máquina será executado no MIPS Monociclo, sabendo que todas as instruções são executadas em um clico de relógio e as etapas demoram: busca de instrução 4 ns, leitura do banco de registradores 1 ns, execução na ULA 2 ns, acesso à memória 4 ns e escrita no banco de registradores 1 ns. add $1, $2, $1=2 lw $3, 10($4)=4 sw $1, 10($4)=4 sub $3, $1, $3=2 sw $3, 11($4)=4 Total= 12 x 5= 60ns LISTA 3: 11. Quais as vantagens do MIPS: Multiciclo em relação ao MIPS: Monociclo? -As instruções são divididas em etapas que são executadas cada uma em um ciclo de relógio; -Cada instrução executa apenas no número de ciclos necessários; -Os recursos de hardware podem ser reaproveitados reduzindo o custo do bloco operativo; -Possui apenas uma memória para instruções e dados; -Apenas uma ULA dispensa somadores extras; 12. Em quantos ciclos são executadas as instruções beq, lw, sw e instruções tipo R? -beq possui 3 ciclos; -lw possui 5 ciclos; -sw possui 4 ciclos; -tipo R possui 4 ciclos; 13. Por qual motivo são necessários registradores extras na implementação do MIPS: Multiciclo? Ele possui registradores extras para salvar dados que serão usados por ciclos posteriores, pois uma única instrução no MIPS multiciclo pode ser dividida em vários ciclos. 14. Por que o MIPS: Multiciclo requer um subsistema de controle mais complexo? Ele requer um subsistema complexo pois é necessário que o subsistema de controle saiba em que passo da Execução da instrução ele se encontra para poder gerar os sinais de Controles adequados para cada passo; 15. Quais são as etapas do MIPS: Pipeline e o que é feito em cada etapa? -Busca da instrução: busca da instrução indicada pelo PC na memória. -Decodificação da instrução: e feita a leitura do banco de registradores, são gerados os sinais de controle, prepara a instrução para ser executada. -Execução: realiza cálculos aritméticos, desvios condicionais ou incondicionais. -Acesso a memória: faz leitura de um endereço de memória armazenado em um registrador e carrega um operando direto da memória para ser processado. -Escrita no banco de registradores: escreve o resultado da operação da ULA no registrador destino. 16. Explique os conceitos de conflito de Dados e conflito de Controle. Conflito de dados: quando a execução de uma instrução depende do resultado de outra que ainda está sendo executada em outro ciclo do pipeline. Conflito de controle: quando a necessidade de tomar uma decisão com base nos resultados de uma instrução, enquanto outras estão sendo executadas. 17. Calcule o tempo total que o seguinte código de máquina executará no MIPS Multiciclo e MIPS: Pipeline, sabendo que as etapas demoram: busca de instrução 2 ns, leitura do banco de registradores 1 ns, execução na ULA 2 ns, acesso à memória 2 ns e escrita no banco de registradores 1 ns. add $1, $2, $1=4 lw $3, 10($4) =5 sw $1, 10($4) =4 sub $3, $1, $3=4 sw $3, 11($4)=4 MIPS Multiciclo= 21x2= 42ns MIPS Pipeline= 5x2= 10+(4x2)= 18ns
Compartilhar