We use a processor with CPIs for the following classes of instructions to execute the following Ccode. 1) Count how many instructions are to be executed for each of the class, and 2) calculate the total number of cycles for each class and overall total cycles for all classes, and 3) calculate the percentage of total cycles by each class with respect to the overall total cycles. Addition used for calculating memory effective address for load and store instructions should NOT be considered. But loop count increment is considered as addition
Instruction class CPI add 1 mul 20 load/store 12 branch 2 int N = 1000,000; int A[N], B[N], i; for (i=0; i < N; i++) { A[i] += 3.14 * B[j] # instructions x106 Total Cycles x106 | Cycles Percentage Instruction class | CPI add mul load/store 2 branch 1 20 Overall Total cycles =
If you want to reduce the number of instructions used by this code, which instruction would you try to reduce, show the code for how would you do it, and how many instructions can be reduced per iteration?