Instruções e a CPU no MIPS - aulas 5 e 6

Description

Capítulo 2, Capítulo 4 e Apêndice D.
Bela Cunha
Flashcards by Bela Cunha, updated more than 1 year ago
Bela Cunha
Created by Bela Cunha about 9 years ago
28
0

Resource summary

Question Answer
Quais as implementações de instruções mais importantes do MIPS? As implementações mais importantes são: lw, sw, add, sub, and, or, slt, beq, j.
Quais são as instruções de acesso à memória? Load word (lw) e Store word (sw).
Quais são as instruções aritméticas? Adição (add) e subtração (sub).
Quais são as instruções lógicas? AND, OR, slt
Quais são as instruções de fluxo de controle? Branch equal (beq) e jump (j). Sendo que o beq é uma instrução de tomada de decisão e o j é uma instrução de salto.
O que é o PC (program counter)? PC é o registrador que salva o endereço da instrução atualmente sendo executada no programa armazenado.
Qual a diferença de um circuito combinacional e um sequencial? Um circuito combinacional gera uma saída que é a combinação das entradas atuais, não dependendo de mais nada. Um sequencial também depende de entradas anteriores, depende dos estados.
A implementação do MIPS possui tanto circuitos combinacionais quanto sequenciais? Quando usa cada? ......
Do que são feitos os registradores? 32 Flip-flops (no MIPS)
Qual o tamanho das instruções do MIPS? 32 bits
Quantos formatos de instruções o MIPS possui? Quais são eles? 3 formatos: tipo-R (de registrador), tipo-I (de imediado) e tipo-J.
O que é uma instrução? É uma palavra em linguagem de máquina.
Considerando o MIPS, onde estão os operandos de uma instrução? Todos os operandos das instruções do MIPS estão em registradores. Uma instrução pode ter no máximo 3 operandos.
Para que serve o campo "shamt" nas instruções do tipo-R? "shamt" significa Shift Amount (quantidade de deslocamento) e é usada por instruções lógicas de deslocamento. Ex: sll (shift left logical) e srl (shift right logical). O valor desse campo diz quantos bits deve ser deslocado o valor que está em um dos registradores, o resultado é salvo em outro registrador (portanto, usa-se 2 registradores nessa instrução, rt e rd).
Dê um exemplo de um número binário deslocado 4 bits. (0000 1001)bin = (9)dec (1001 0000)bin = (144)dec. Deslocar um número binário i bits é o mesmo que multiplicá-lo por 2^i.
Como ficaria em assembly a seguinte instrução: reg $t2 = reg $s0 << 4 bits sll $t2, $s0, 4
Em que tipo de instrução load/store podem ser classificadas? Load e store são instruções de transferência de dados. Usam o formato do tipo-I de instruções.
O que as instruções load e store fazem? Qual a sintaxe usada em assembly? Load: copia os dados da memória para um registrador; lw $destino, deslocamento($base) Store: copia os dados de um registrador para a memória. sw $fonte, deslocamento($base)
Como a memória do MIPS é organizada? A memória do MIPS é dividida em grupos de 4 bytes (32 bits).
Como é o formato de uma instrução do tipo R?
Como é o formato da instrução tipo-I?
O que são instruções de desvio condicional? Dê exemplos. São instruções que requerem a comparação de dois valores (condição) e que leva em conta uma transferência de controle para um novo endereço no programa (desvio) com base no resultado da comparação. Ex: beq, bne.
Qual a diferença entre beq e bne? Beq significa "branch if equal" (ou seja, desviar se for igual). E bne, "branch if not equal" (desviar se não for igual). São as instruções de desvio condicional que desviam se a comparação de dois registradores forem iguais e se forem diferentes, respectivamente.
Qual a sintaxe das instruções beq e bne? beq registrador1, registrador2, L1 bne registrador1, registrador2, L1 L1 é um "label" e é para onde a instrução desvia se a condição for atendida.
Como as instruções de desvio condicional são representadas em linguagens de alto nível? As instruções de desvio condicional são a base para que códigos usando if, go to, switch/case, etc, funcionem.
Qual instrução pode ser classificada como desvio incondicional? Qual sua sintaxe? A instrução que desvia para outro endereço do programa independente de condições é o jump. Sua sintaxe é: j L1 L1 é o "label" para onde o programa será desviado.
O que faz a instrução "set on less than" (slt)? Qual sua sintaxe? A instrução slt compara se uma variável é menor que a segunda. Sintaxe: slt $t0, $s3, $s4 O registrador $t0 = 1 se $s3 < $s4. Caso contrário, $t0 = 0.
Quais são as seis etapas que o programa precisa seguir para a execução de um procedimento? 1. Colocar os parâmetros onde o procedimento possa acessar; 2. Ir para o endereço do procedimento; 3. Reservar espaço para armazenar as operações e variáveis temporárias do procedimento; 4. Realizar a tarefa; 5. Colocar o valor de retorno onde o programa possa acessar; 6. Retornar para o endereço de origem da chama de função do programa.
Como é o formato da instrução tipo-J?
O que é um endereçamento relativo ao PC? Que instrução usa esse tipo de endereçamento e porque? É um endereçamento calculado pela soma do PC mais uma constante de desvio da instrução. (PC = PC + endereço de desvio). As instruções de desvio condicional usam esse endereçamento, pois seu campo para endereço é de apenas 16 bits. Obs: na realidade é um endereçamento relativo à próxima instrução (PC+4), pois o MIPS sempre calcula a próxima instrução automaticamente.
Como colocar uma constante de 32 bits num registrador se os operandos do tipo-R são de apenas 5 bits e o imediato do tipo-I de 16 bits? Usando instruções especiais do tipo-I que dividem a constante de 32 bits em duas de 16 bits. Uma instrução (lui) carrega os primeiros 16 bits no registrador e outra (ori) carrega os 16 últimos bits. lui = load upper immediate ori = OR immediate
Quais são os 5 tipos de endereçamento do MIPS? 1. Endereçamento imediato (addi); 2. Endereçamento por registrador (add); 3. Endereçamento de base ou deslocamento (lw, sw); 4. Endereçamento relativo ao PC (beq, bne); 5. Endereçamento pseudodireto (jump, onde o endereçamento são os 26 bits da instrução concatenados com os 4 bits mais significativos do PC).
Quais são os 3 primeiros passos de todas as implementações de instruções? 1. Receber o endereço da instrução (PC); 2. Ler a instrução na memória; 3. Ler os registradores da instrução; 4. Depende da instrução...
Todas as instruções usam a ALU? Sim.t
O que é uma metodologia de clock? É o que define quando os sinais podem ser lidos e quando podem ser escritos.
Porque a implementação com um único ciclo é ineficiente? Usando apenas um ciclo, o ciclo deve ser longo o suficiente para acomodar a instrução mais longa (load). Além disso, com um único ciclo, não pode haver nenhum recurso que seja usado mais de uma vez por instrução (para evitar incoerências), por isso, todos os componentes que precisam ser usados novamente devem ser duplicados (como ter que criar uma memória para instrução e uma para dados).
Imagem de implementação de ciclo único:
Imagem da implementação multiciclo:
Dê um exemplo de operações que ocorrem em paralelo na implementação de ciclo único. O PC é incrementado ao mesmo tempo que a instrução é lida.
Show full summary Hide full summary

Similar

Biology AQA 3.1.2 Proteins
evie.daines
GCSE Biology heart notes
Kamila Woloszyn
Modern Studies - Democracy in Scotland/UK.
Daniel Cormack
GCSE REVISION TIMETABLE
gracemiddleton
Regular Verbs Spanish
Oliver Hall
Atomic numbers and mass numbers quiz
Sarah Egan
Using GoConqr to study Maths
Sarah Egan
Basic Korean Verbs
ASHISH AWALGAONKAR
Types of Learning Environment
Brandon Tuyuc
Which GoConqr Product is Right for Me?
Sarah Egan
Histologie
Moloșnicov Tanciu