Examine the difficulty of adding a proposed swap Rd, Rn instruction to the LEGv8
ID: 3594535 • Letter: E
Question
Examine the difficulty of adding a proposed swap Rd, Rn instruction to the LEGv8 instruction
set, which works as follows: Reg[Rd] = Reg[Rn]; Reg[Rn] = Reg[Rd]; (20 pts)
a. Which new functional blocks (if any) do we need for this instruction? (4 pts)
b. Which existing functional blocks (if any) require modification? (4 pts)
c. What new datapaths do we need (if any) to support this instruction? (4 pts)
d. What new control unit signals (if any) do we need for this instruction? (4 pts)
e. Modify the complete control and datapath Figure to demonstrate the implementation
of this new instruction. Use Figure 4.23, also shown in Chapter 4 slides, Slide 25. (4 pts)
Explanation / Answer
The Instruction set for the respective Interpretation:-
(a)
The process of the load with increment which can be done in two ways:-
(b)
(c)
The datapath parts and control signals needed to implement the TAL(Tump and Link) Instruction in a single cycle datapath.
(d)
Interprepation Set:
ADDI Rs,Ra, Imm12: Reg[Rd] = Reg[Rn].
ADDS Rb, Ra, Rz: Reg[Ra] = Reg[Rs] + Reg[Rb].
B Imm26: PC = PC
B.LT Imm19: PC = PC.
BL Imm26: X30 = PC + 4 , PC = PC
BR Rd: PC = Reg[Rd].
CBZ Rt, Imm19: If (Reg[Rt] == 0) PC = PC
LDUR Rt, [Rn, #Imm9]: Reg[Rt] = Mem[Reg[Rn]
STUR Rt, [Rn, #Imm9]: Mem[Reg[Rn] +
SUBS Rd, Rn, Rm: Reg[Rd] = Reg[Rn] - Reg[Rm].
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.