# CA HW1 B08902093 石諾盟 ## Question 1 a. Formula, CPI = CPU time / (IC * Clock cycle time) 1. CPI_A = $1.1$ , CPI_B = $1.25$ b. Formula, Clock rate_A = 1.1 * 1E-9 /(CPU time) Clock rate_B = 1.25 * 1.2E-9 / (CPU time) 1. Clock rate_A = 0.73 * Clock rate_B, hence A is 27% slower or B is 36% faster. c. time_C = $(6 * 10^8)*(1.1) *(1*10^{-9})$ Speedup_vs_A = $1.67$ Speedup_vs_B = $2.27$ ## Question 2 total = 250ns, FP = 70ns, L/S = 85ns, B = 40ns, INT = 55ns 1. ans $= 55 + 40 + 85 + 70 * 0.8 = 236$ns -> reduced by 5.6% 2. ans $= 250 * 0.8 - 85 - 40 - 70 - x = 5$ns -> reduced by 91% 3. ans = No. since 250 - 40 is greater than 200 and branching operations do not take over 40s. ## Question 3 x5 = 0x00000000AAAAAAAA x5 << 4 = 0x0000000AAAAAAAA0 x5 >> 3 = 0x0000000015555555 x6 = 0x1234567812345678 x6 << 6 = 0x12345678123456780 1. ans = 0x1234567ABABEFEF8 2. ans = 0x2345678123456780 3. ans = 0x0000000000000545 ## Question 4 ```clike= int result = 0; for (int i = 0; i < 100; i++) { result += MemArray[0] MemArray++ } ``` ## Question 5 Idea ```clike= int sum(int MemArray[], int N) { /* in this case N is 99. */ if (N <= 0) return 0; return sum(MemArray, N - 1) + MemArray[N-1] } ``` ``` addi x29, x0, 800-8 // 8 * 100 since it's risc V convention and 792 -> 99 LOOP: ld x7 x29(x10) add x5, x5, x7 addi x29, x29, -8 // Decrement by 1 bge x29, x0, LOOP ```