5. A arquitetura MIPS Flashcards

1
Q

Quais são as características das instruções tipo-R?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quais são as características das instruções tipo-I?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quais são as características das instruções tipo-J?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

De um modo geral, como se procede à decodificação de instruções em código máquina?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Nas intruções tipo-I, os números estão representados em quê?

A

Em complemento para 2.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Qual é o efeito da instrução lógica AND em MIPS?

A

Mascara bits.

Ex:
Mascarar todos os bytes exceto o menos significativo
de uma palavra

0xF234012F and 0x000000FF = 0x0000002F

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Qual é o efeito da instrução lógica OR em MIPS?

A

Combina bitfields

Ex:
Combinar 0xF2340000 com 0x000012BC:

0xF2340000 or 0x000012BC = 0xF23412BC

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qual é o efeito da instrução lógica XOR em MIPS?

A

Inverte com ‘1’, não-inverte com ‘0’

Ex:

0xFFFF0000 xor 0x46A1F0B7
= 0xB95EF0B7

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Qual é o efeito da instrução lógica NOR em MIPS?

A

Força a ‘0’ com ‘1’, inverte com ‘0’

Ex:

0xFFFF0000 or 0x46A1F0B7
= 0x00000F48

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

O que faz a instrução shift left logical (sll)? A que é equivalente?

A

Desloca à esquerda e preenche com zeros os bits à direita

Multiplicar por 2^N.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

O que faz a instrução shift right logical (srl)? A que é equivalente?

A

Desloca à direita e preenche com zeros os bits à esquerda

Dividir por 2^N.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

O que faz a instrução shift right arithmetic (sra)? A que é equivalente?

A

Shift à direita e preenche com o bit de sinal os bits à esquerda

Dividir por 2^N.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Em que consiste a implementação single-cycle?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Em que consiste a implementação multi-cycle?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Em que consiste a implementação pipelined?

A

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.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Como funciona um CPU MIPS a nivel da sua microarquitetura?

A

O CPU MIPS interage com duas memórias.
• Após o Reset, o registo PC (Program Counter) é carregado com
o endereço da Memória de Instruções, para ler a primeira
Instrução a ser executada pelo CPU.
• O CPU gera os sinais de Controlo necessários à execução da
Instrução, a qual pode ou não envolver a Memória de Dados.

O CPU interage sempre com duas memórias. Sempre que se dá o reset (sendo este, por simplificação, o passo inicial) o registo do PC é carregado com o endereço de memória de instruções, ou seja, vai ler a primeira instruição a ser executada.

De seguida o CPU envia sinais de controlo, os necessários para a execução da instrução, os quais podem ou não envolver a memória de dados.

17
Q

O que é, em concreto o Datapath?

Quais são os seus elementos de estado? Descreva cada um deles.

A

São todos os componentes que armazenam e/ou processam dados.

Elementos de estado:

Program Counter (PC) - É um registo de 32-bits normal; A saída (PC) é o endereço da instrução corrente; A entrada (PC’) é o endereço da instrução seguinte.

Memória de Instruções - Tem um único porto de leitura.

Memória de Dados - Tem um único porto de leitura
ou de escrita e um sinal de
WriteEnable.

Banco de 32 Registos- Tem dois portos de leitura e um porto de escrita. As instruções do tipo-R lêm os operandos dos portos (RD1 e RD2) e
escrevem o resultado no porto (WD3), e.g., add $t2, $t1, $t0.

18
Q

Qual é o propósito da unidade de controlo dentro do CPU?

A

Intruir a Datapath.

19
Q

Como funciona a leitura de instrução (Fetch)?

A

O PC gera o endereço (A) para a Memória de Instruções.

De seguida esse endereço vai ser descodificado e interpretado, ou seja, vai ser lido o opcode, isto é, os bits 31:26 vão ser interpretados.

Os bits 25:21, alocados para o rd, vão entrar na porta A1 do Register File e vão ser transmitidos para a saída RD1(ReadData1).

O próximo passo será dar sign-extend aos bits alocados para o immediate, de 16 bits para 32.

Agora temos os dois registos encaminhados, ou seja, ambos passaram pela Register File, mas um deles, o immediate, foi reencaminhado para a unidade de sign-extend e o outro passo diretamente para ALU, através do Register File, para a ALU, esta faz a operação necessária e dá output ao resultado.

Depois de termos o resultado, o valor lido da memória é escrito no registo rt, com os bits 20:16 reservados, usando o Register File.

Por fim, falta atualizar o PC, somam-se 4 para obter a próxima instução.

20
Q

Funcionamento geral do single-cycle datapath:

A

Começamos por ler a instrução da memória(Fetch).

Depois os registos são lidos. Onde as instruções são decodificadas, isto passa-se na Register File.

Normalmente, depois de descodificados os registos estes são enviados para a ALU e só aí são ou não enviados para Data Memory, se for o caso de ser guardado algum resultado, ou no caso de ser preciso ir buscar algum resultado à memória.

Depois a informação volta ao Register File, para ser WriteBack nos registos que foram chamados se for o caso, ou seja, normalmente são 3, se for o caso de se fazer uma operação lógica num deles e se tiver de se guardar num deles o resultado lógico então o que se faz é no WriteBack o registo que não continha os registos de operações vai ser usado nesta fase.

21
Q

Funcionamento geral do single-cycle datapath:

A

Começamos por ler a instrução da memória(Fetch).

Depois os registos são lidos. Onde as instruções são decodificadas, isto passa-se na Register File.

Normalmente, depois de descodificados os registos estes são enviados para a ALU e só aí são ou não enviados para Data Memory, se for o caso de ser guardado algum resultado, ou no caso de ser preciso ir buscar algum resultado à memória.

Depois a informação volta ao Register File, para ser WriteBack nos registos que foram chamados se for o caso, ou seja, normalmente são 3, se for o caso de se fazer uma operação lógica num deles e se tiver de se guardar num deles o resultado lógico então o que se faz é no WriteBack o registo que não continha os registos de operações vai ser usado nesta fase.

22
Q

Falando sobre a Unidade de Controlo, em específico, quais são as suas características?

A

A unidade de controlo gera os sinais que controlam todo o datapath, usando os bits que recebe do opcode da funct da instrução.

No caso de instruções do Tipo-R, o opcode não é suficiente, precisam do campo funct para determinar qual a operação da ALU.

Está dividida em duas partes, uma que se encarrega de descodificar o opcode e outra que está encarregue de descodificar o parâmetro da funct.

O main decoder, responsável pela descodificação do opcode, gera dois tipos de sinais, de seleção dos multiplexers e de seleção da memória.