Sabendo que o sinal de controle MemWrite possui um (1) bit e controla a escrita de dados na memória, informe o valor desse sinal para as seguintes instruções do MIPS em sua versão simplificada:
a) LW MemWrite
b) ADD MemWrite =
c) SW MemWrite =
d) JMP MemWrite =
a) LW MemWrite
b) ADD MemWrite =
c) SW MemWrite =
d) JMP MemWrite =
Passo 1
O enunciado pede para informar o valor do sinal de controle
(sinal de
bit que controla a escrita de dados na memória) para quatro instruções MIPS simplificadas:
,
,
e
.
Informações relevantes dadas pelo enunciado: tem valor
ou
e seu propósito é “controlar a escrita de dados na memória”.
Informações relevantes dadas pelo enunciado:
Passo 2
O que significa cada valor de
:
-
significa: a unidade de controle permite escrever um dado na memória de dados (Data Memory) durante o ciclo de execução da instrução. -
significa: não há escrita na memória de dados naquele ciclo (a memória não é escrita).
Explicação didática curta: pense na memória de dados como um arquivo onde só algumas instruções colocam bytes dentro — quando a instrução é uma store (armazenar), a porta de escrita fica aberta (); para loads, instruções aritméticas e saltos, essa porta fica fechada ( ).
Passo 3
Entender o comportamento de cada instrução (conceitos passo a passo):
-
(load word): lê uma palavra da memória de dados e a coloca em um registrador. Ou seja, a memória é lida, não escrita. Logo, a escrita na memória não ocorre para .
Observação prática: paracostuma-se ativar e deixar .
Passo 4
Continuação do comportamento das instruções:
-
(instrução aritmética do tipo R): executa uma operação na ALU e grava o resultado no banco de registradores (register file). Não acessa a memória de dados para escrita.
Conclusão:não provoca escrita na memória de dados, portanto .
Passo 5
Comportamento da instrução
:
-
(store word): pega o conteúdo de um registrador e grava esse conteúdo na memória de dados no endereço calculado pela ALU. Ou seja, esta instrução realiza explicitamente uma escrita na memória de dados.
Conclusão: paradevemos ativar a escrita na memória, logo .
Passo 6
Comportamento da instrução
(jump):
-
altera o contador de programa (PC) para saltar para outro endereço, possivelmente sem tocar a memória de dados. Em uma versão simplificada, não escreve dados na memória de dados.
Conclusão:para .
Passo 7
Resumo lógico / dica de prova (memorização): ative
somente para instruções cujo propósito é armazenar dados na memória (stores, por exemplo
). Para loads, ALU-only (ADD, SUB, etc.) e saltos, use
.
Resposta
a)
b)
c)
d)
b)
c)
d)