Answered step by step
Verified Expert Solution
Question
1 Approved Answer
You are given the following code. Note that floating - point instructions use floating point registers labeled f . Integer instructions use integer registers labeled
You are given the following code. Note that floatingpoint instructions use floating point registers labeled f Integer instructions use integer registers labeled x loop: fld fx fld fx fadd f f f fsub f f f fmul f f f fsd fx subi x x subi x x bnz x loop We are given the following latencies for the different types of instructions. Floating point Multiply: Floating Point AddSub: Integer arithmetic: LoadStore: Branch if not taken: Branch if taken: Remember how to use latencies. For example, since fadd and sub have latencies of the fmul f f f which needs the results of fsub f f f must wait cycles from when fsub starts. a Show how many cycles are needed to complete one iteration without reordering, but with data forwarding. DO NOT use delayed branch. Create a table that includes stalls not pipeline stages but stalls between instructions. b Reorder instructions and show how many cycles are needed to complete one iteration. Show reordered code and cycles needed. c Unroll the loop times, reorder instructions and show how many cycles are needed to complete two iterations.
You are given the following code. Note that floatingpoint instructions use floating point registers labeled f Integer instructions use integer registers labeled x loop: fld fx fld fx fadd f f f fsub f f f fmul f f f fsd fx subi x x subi x x bnz x loop We are given the following latencies for the different types of instructions. Floating point Multiply: Floating Point AddSub: Integer arithmetic: LoadStore: Branch if not taken: Branch if taken: Remember how to use latencies. For example, since fadd and sub have latencies of the fmul f f f which needs the results of fsub f f f must wait cycles from when fsub starts. a Show how many cycles are needed to complete one iteration without reordering, but with data forwarding. DO NOT use delayed branch. Create a table that includes stalls not pipeline stages but stalls between instructions. b Reorder instructions and show how many cycles are needed to complete one iteration. Show reordered code and cycles needed. c Unroll the loop times, reorder instructions and show how many cycles are needed to complete two iterations.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access with AI-Powered Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started