Organização de Computadores
(1) 3 pontos - Marque as linhas usadas na execução da instrução STORE no datapath abaixo.
(2)
(3) 4 pontos - Suponha que o OPCODE do LW seja 00xxxx, o do Store seja 01xxxx e do ADD/SUB/OR/AND seja 10xxxx. Suponha que o Campo FUNC para ADD seja 00xxxx, para SUB 01xxxx, para AND seja 10xxxx e 11xxxx para OR. Codifique o trecho de programa abaixo e mostre no datapath os valores das linhas e dos sinais de controle na execução do ADD. Suponha R1=R3=5, R2=0. Suponha a memória de dados com os valores de 32 bits 1,3,4,5,7,8,9 e 3 nas primeiras posições.
Lw r1,4(r2) lw r3,12(r2) add r3,r1,r3 sw r3,8(r2).
Lw r1,4(r2) = 00xxxx 00010 00001 0000 0000 0000 0100 opcode rs rt immediate
Lw r3,12(r2) = 00xxxx 00010 00011 0000 0000 0000 1100 opcode rs rt immediate add r3,r1,r3 = 10xxxx 00001 00011 00011 xxxxx 00xxxxx opcode rs rt rd sha funct
Sw r3,8(r2) = 01xxxx 00010 00011 0000 0000 0000 1000 opcode rs rt immediate
Supondo que o endereço vai de 4 em 4 (para endereçar 32 bits), a memória terá 1 na posição 0, 3 na posição 4, 4 na posição 8, 5 na posição 12.
(5) 6 pontos – Explique a função dos sinais de controle RegDst, MemToReg, IorD, AluSrcB no datapath da versão multiciclo. Explique o papel de cada sinal para as instruções de lw, sw e add.
REGDST – seleciona o registrador de destino para armazenar o resultado da operação. É usado nas instruções de LW e ADD. No caso do LW o registrador de destino é o rt bits 20 a 16 no código da instrução e o valor do REGDST=0. No caso do ADD, o registrador de destino é o rd bits 15 a 11 no código da instrução e o valor de REGDST = 1.
MemToReg Seleciona se o valor que será gravado no registrador de destino vem da Memória (valor 1) via o registro DATA ou se vem da ALU (valor 0). É usado para a instrução de LW vindo