$34.99
An instruction is termed “inconsequential” (note that this is a term currently being introduced by my research group, and so you will not find any literature online corresponding to this) if its execution by the processor core has no effective contribution to the overall execution of the application. We identify three types of root inconsequential instructions for this assignment:
1. Register root inconsequential instruction: if an instruction i writes to a register r, and a future instruction j writes to register r, with the value of r not being read in between i
and j, then instruction i is called a register root inconsequential instruction.
2. Memory root inconsequential instruction: if an instruction i writes to a memory location m, and a future instruction j writes to location m, with the value of m not being read in between i and j, then instruction i is called a memory root inconsequential instruction.
3. Branch root inconsequential instruction: if the outcome of a branch i is accurately predicted, then instruction i is called a branch root inconsequential instruction.
Perform the following analyses:
1. For each benchmark, find the dynamic counts of each of the above root inconsequential instructions.
2. For each benchmark, for each root inconsequential instruction category, find the PC of the root inconsequential instruction that dynamically occurs the most often. Look up the PCs in the executables of the benchmarks and discuss these instructions.
3. Find the dynamic counts of the following categories of instructions:
a. Register inconsequential instructions: Every register root inconsequential instruction is a register inconsequential instruction. An instruction is a register inconsequential instruction if all of its immediate data dependent instructions are also register inconsequential instructions.
b. Memory inconsequential instructions: Every memory root inconsequential instruction is a memory inconsequential instruction. An instruction is a memory inconsequential instruction if all of its immediate data dependent instructions are also memory inconsequential instructions.
c. Branch inconsequential instructions: Every branch root inconsequential instruction is a branch inconsequential instruction. An instruction is a branch inconsequential instruction if all of its immediate data dependent instructions are also branch inconsequential instructions.
d. Inconsequential instructions: Every root inconsequential instruction is an inconsequential instruction. An instruction is an inconsequential instruction if all of its immediate data dependent instructions are also inconsequential instructions.