5. A arquitetura MIPS Flashcards
Quais são as características das instruções tipo-R?
Em termos de distribuição de bits, tem-se:
opcode - 6 bits
rs, rt, rd - 5 bits cada
shift amnt - 5 bits
function - 6 bits
rs e rt são os destinos fonte, onde rs é o primeiro e rt o segundo.
rd é o registo de destino.
opcode é o código de operação. Tem o valor 0 nas instruções tipo-r.
funct é o parâmetro que de acordo com o opcode, especifica a operação a ser executada.
Como nas intruções tipo-r o opcode é 0, a operação é sempre determinada pela funct.
Quais são as características das instruções tipo-I?
Em termos de distribuição de bits, tem-se:
opcode - 6 bits
rs, rt- 5 bits cada
immediate constant - 16 bits
Os rs e rt são os destinos fonte, onde rs é o primeiro e rt o segundo.
O opcode é o código de operação. Tem um valor diferente de zero, pois nas intruções do tipo-I está sempre presente.
Quais são as características das instruções tipo-J?
Em termos de distribuição de bits, tem-se:
opcode - 6 bits
address - 26 bits
O opcode é o código de operação. No caso das intruções tipo-j está reservado ao jump.
O address é o destino em memória, ao qual são destinados 26 bits.
De um modo geral, como se procede à decodificação de instruções em código máquina?
Escrevê-mos todos os bits, separamos pela quantidade respetiva que cada operação aloca a diferentes partes da instrução e tentamos ver, através de uma tabela, qual é o tipo de instrução que está a ser executada.
Nas intruções tipo-I, os números estão representados em quê?
Em complemento para 2.
Qual é o efeito da instrução lógica AND em MIPS?
Mascara bits.
Ex:
Mascarar todos os bytes exceto o menos significativo
de uma palavra
0xF234012F and 0x000000FF = 0x0000002F
Qual é o efeito da instrução lógica OR em MIPS?
Combina bitfields
Ex:
Combinar 0xF2340000 com 0x000012BC:
0xF2340000 or 0x000012BC = 0xF23412BC
Qual é o efeito da instrução lógica XOR em MIPS?
Inverte com ‘1’, não-inverte com ‘0’
Ex:
0xFFFF0000 xor 0x46A1F0B7
= 0xB95EF0B7
Qual é o efeito da instrução lógica NOR em MIPS?
Força a ‘0’ com ‘1’, inverte com ‘0’
Ex:
0xFFFF0000 or 0x46A1F0B7
= 0x00000F48
O que faz a instrução shift left logical (sll)? A que é equivalente?
Desloca à esquerda e preenche com zeros os bits à direita
Multiplicar por 2^N.
O que faz a instrução shift right logical (srl)? A que é equivalente?
Desloca à direita e preenche com zeros os bits à esquerda
Dividir por 2^N.
O que faz a instrução shift right arithmetic (sra)? A que é equivalente?
Shift à direita e preenche com o bit de sinal os bits à esquerda
Dividir por 2^N.
Em que consiste a implementação single-cycle?
Single-cycle: A execução de cada instrução é efectuada
num único ciclo de relógio (clock). Todas as instruções
ocupam o mesmo intervalo de tempo.
Cada instrução é efetuada num só ciclo do relógio, ou seja, todas as instruções ocupam o mesmo espaço de tempo.
Em que consiste a implementação multi-cycle?
Cada instrução é dividida em passos mais simples, onde cada uma das intruções irá ocupar um ciclo de relógio maior. Ou seja, as intruções irão ter difrentes tempos de execução.
Em que consiste a implementação pipelined?
Pipelined: A execução de cada instrução é dividida numa
série de passos mais simples; o processador executa múltiplas instruções em simultaneo (em paralelo), aumentando, deste modo, a performance.
Cada instrução é dividida em passos mais simples, estas irão ser depois executadas em simultaneo pelo CPU, aumentando a performance.