16
MIS 6010: IT INFRASTRUCTURE ASSIGNMENT #1 Given on: 30 th January 2015 Due: 14 th February 2015 Lecturer: Dr. G. Chege ([email protected]; Answer all Questions except Question 1which is for your own exercise. Question #1 – not for grading A given application written in Java runs 15 seconds on a desktop processor. A new Java compiler is released that requires only 0.6 as many instructions as the old compiler. Unfortunately, it increases the cycles per instruction (CPI) by 1.1. How fast can we expect the application to run using this new compiler? Pick the right answer from the three choices below: Question #2 (6 marks) For problems below, use the information about access time for every type of memory in the following table. Ca che DRAM Flash Memory Magnetic Disk a) Find how long it takes to read a file from a DRAM if it takes 2 microseconds from the cache memory.

MIS 6110 Assignment #1 (Spring 2015).doc

Embed Size (px)

DESCRIPTION

MIPS ASSIGNMENT QUESTIONS

Citation preview

Page 1: MIS 6110 Assignment #1 (Spring 2015).doc

MIS 6010: IT INFRASTRUCTURE ASSIGNMENT #1 Given on: 30th January 2015 Due: 14th February 2015

Lecturer: Dr. G. Chege ([email protected];

Answer all Questions except Question 1which is for your own exercise.

Question #1 – not for grading A given application written in Java runs 15 seconds on a desktop processor. A newJava compiler is released that requires only 0.6 as many instructions as the old compiler. Unfortunately, it increases the cycles per instruction (CPI) by 1.1. How fast can we expect the application to run using this new compiler? Pick the right answer from the three choices below:

Question #2 (6 marks)For problems below, use the information about access time for every type of memoryin the following table.Ca

che DRAM Flash Memory Magnetic Diska) Find how long it takes to read a file from a DRAM if it takes 2 microseconds from the cache memory.

1microsecond = 1000 nanoseconds

Hence:

2*1000 = 2000 nanoseconds to be read

Number of times to be accessed

Page 2: MIS 6110 Assignment #1 (Spring 2015).doc

Cache a = 2000 / 5 = 400

Cache b = 2000 / 7 = 285.7142857

Now to multiply the times accessed by Magnetic Disk’s access time

Time a

400 * 5000 = 2000000 ns

20000 / 1000 = 2000 microseconds

Time b

285.71 * 70000 = 19999700 ns

19999700/ 1000 = 19999.7 microseconds

b) Find how long it takes to read a file from a disk if it takes 2 microseconds from the cache memory.

Cache a = 2000 / 5 = 400

Cache b = 2000 / 7 = 285.7142857

Now to multiply the times accessed by DRAM’s access time

Time a

400 * 50 = 20000 ns

20000 / 1000 = 20 microseconds

Time b

285.71 * 70 = 19999.7 ns

19999.7/ 1000 = 19.9997 microseconds

Approximately 20 microseconds

Page 3: MIS 6110 Assignment #1 (Spring 2015).doc

c) Find how long it takes to read a file from a flash memory if it takes 2 microseconds from the cache memory.

Number of times to be accessed

Cache a = 2000 / 5 = 400

Cache b = 2000 / 7 = 285.7142857

Therefore

Time a = 400 * 5 = 2000 µs

Time b = 285.71 * 15 = 4285.65 µs

Question #3 (6 marks)Consider three different processors P1, P2, and P3 executing the same instruction set with the clock rates and CPIs given in the following table.

a) Which processor has the highest performance expressed in instructions per second?

Execution time = (instruction count * cycles per instruction) / clock rate

ic = instruction count

Processor p1 part a:

10 = ic * (5.5 * 10^ -10)Number of instructions = 1.8 * 10^10

Page 4: MIS 6110 Assignment #1 (Spring 2015).doc

Cycles/1.8 * 10^10 = 2.23.96 * 10^10 cycles

Time = (ic *1.0) / (3* 10^9)1 = ic * (5.0 * 10^-10)ic = 2 * 10^9

Processor p2 part a:Time = (ic *1.5) / (2.5* 10^9)1 = ic * (4.0 * 10^-10)ic = 2.5 * 10^9

Processor p3 part a:Time = (ic *2.2) / (4.0* 10^9)1 = ic * (5.5 * 10^-10)ic = 1.8 * 10^9

Processor p1 part b:Time = (ic *1.2) / (2.0* 10^9)1 = ic * (6.0 * 10^-10)ic = 1.67 * 10^9

Processor p2 part b:Time = (ic *= 0.8) / (3.0* 10^9)1 = ic * (2.67 * 10^-10)ic = 3.75 * 10^9

Processor p3 part b:Time = (ic *= 2.0) / (4.0* 10^9)1 = ic * (5.0 * 10^-10)ic = 2.0 * 10^9

Processor P2 has the highest performance as it has more instructions per second.

b) If the processors each execute a program in 10 seconds, find the number of cycles and the number of instructions.

From question a above we can use the value 10 instead of 1 to equate to (Instruction count * cycles per instruction) / clock rate

Page 5: MIS 6110 Assignment #1 (Spring 2015).doc

Processor p1 part a:10 = ic * (5.0 * 10^ -10)Number of instructions = 2.0 * 10^10

CPI = cycles / instructions= cycles / (2.0 * 10^10) = 1.5=3.0 * 10^10 cycles

Processor p2 part a:

10 = ic * (4.0 * 10^ -10)Number of instructions = 2.5 * 10^10

Cycles/2.5 * 10^10 = 12.5 * 10^10 cycles

Processor p3 part a:

10 = ic * (5.5 * 10^ -10)Number of instructions = 1.8 * 10^10

Cycles/1.8 * 10^10 = 2.23.96 * 10^10 cyclesProcessor p1 part b:

10 = ic * (6.0 * 10^ -10)Number of instructions = 1.67 * 10^10

Cycles/1.67 * 10^10 = 1.22.004 * 10^10 cycles

Processor p2 part b:

10 = ic * (2.67 * 10^ -10)Number of instructions = 3.75 * 10^10

Cycles/3.75 * 10^10 = 0.83.0 * 10^10 cycles

Processor p3 part b:

10 = ic * (5.0 * 10^ -10)Number of instructions = 2.0 * 10^10

Cycles/2.0 * 10^10 = 2.04.0 * 10^10 cycles

Page 6: MIS 6110 Assignment #1 (Spring 2015).doc

c) We are trying to reduce the time by 30% but this leads to an increase of 20% in the CPI. What clock rate should we have to get this time reduction?

To reduce time using the 10 seconds used in question b above:

10 – (10 * 0.3) = 7Percentage increase in CPI = (100 + 20)% =120%=1.2 increase in CPI

Processor p1 part a:7 = (2 * 10^10 * 1.2 * 1.5) / Clock = 5.14 GHz

Processor p2 part a:7 = (2.5 * 10^10 * 1.2 * 1.0) / Clock = 5.29 GHz

Processor p3 part a:7 = (1.8 * 10^10 * 1.2 * 2.2) / Clock = 6.79 GHz

Processor p1 part b:7 = (1.67 * 10^10 * 1.2 * 1.2) / Clock = 3.44 GHz

Processor p2 part b:7 = (3.75 * 10^10 * 1.2 * 0.8) / Clock = 5.14 GHz

Processor p3 part b:7 = (2.0 * 10^10 * 1.2 * 2.0) / Clock = 6.86 GHz

Question #4 (6 marks)Consider two different implementations of the same instruction set architecture.There are four classes of instructions, A, B, C, and D. The clock rate and CPI of eachimplementation are given in the following table.

Page 7: MIS 6110 Assignment #1 (Spring 2015).doc

a) Given a program with 106 instructions divided into classes as follows: 10% class A, 20% class B, 50% class C, and 20% class D, which implementation is faster?

Class A:

106 * .1 = 10.6 = 11

Class B:

106 * .2 = 21.2 = 21

Class C:   

106 * .5 = 53 = 53

Class D:

106 * .2 = 21.2 = 21

   

Time = ((Ia * CPIa) + (Ib * CPIb) + (Ic * CPIc) + (Id * CPId))  / Clock

p1 part a:

((11 * 1) + (21 * 2) + (53 * 3) + (21 * 3))  / (2.5*10^9)

= 1.1 * 10^-7

p2 part a:

((11 * 2) + (21 * 2) + (53 * 2) + (21 * 2))  / (3*10^9)

= 7.067 * 10^-8

p1 part b:

Page 8: MIS 6110 Assignment #1 (Spring 2015).doc

((11 * 2) + (21 * 1.5) + (53 * 2) + (21 * 1))  / (2.5*10^9)

= 7.22*10^-8

p2 part b:

((11 * 1) + (21 * 2) + (53 * 1) + (21 * 1))  / (3*10^9)

= 4.23 * 10^-8

b) What is the global CPI for each implementation?

CPI = (Time * Clock) / Instruction

P1 part a:

((1.1*10^-7) * (2.5*10^9))/106

= 2.59433962264

P2 part a:

((7.067 * 10^-8) * (3*10^9))/106

= 2.00009433962

P1 part b:

((7.22*10^-8) * (2.5*10^9))/106

= 1.70283018868

P2 part b:

((4.23 * 10^-8) * (3*10^9))/106

Page 9: MIS 6110 Assignment #1 (Spring 2015).doc

= 1.19716981132

c) Find the clock cycles required in both cases.

T = (Instruction * (Cycle/Instruction)) / Clock

T * Clock = Instruction (Cycle/Instruction)

(T*Clock) / Instruction = Cycle/Instruction

T*Clock = Cycle

P1 part a:

(1.1 * 10^-7)*(2.5*10^9)

= 275

P2 part a:

(7.067 * 10^-8)*(3*10^9)

= 212.01

P1 part b:

(7.22*10^-8)*(2.5*10^9)

= 180.5

P2 part b:

(4.23 * 10^-8)*(3*10^9)

= 126.9

Question #5 (6 marks)Consider two different implementations, P1 and P2, of the same instruction set. There are five classes of instructions (A, B, C, D, and E) in the instruction set. The clock rate and CPI of each class is given below.

Page 10: MIS 6110 Assignment #1 (Spring 2015).doc

Clo

ate CPI Class A CPI Class B CPI Class C CPI Class D CPI Class Ea) Assume that peak performance is defined as the fastest rate that a computer can execute any instruction sequence. What are the peak performances of P1 and P2 expressed in instructions per second?

Execution time = (instruction time * cycles per instruction) / clock frequency

T = 1second

Fastest execution rate = Lowest CPI Class

P1 part a:

1 = (I * 1)/(2.0 * 10^9)

1 * (2.0 * 10^9) = (I * 1)

(1 * (2.0 * 10^9))/1 = I

=2.0 * 10^9 instructions per second

P2 part a:

1 = (I * 1)/(4.0 * 10^9)

1 * (4.0 * 10^9) = (I * 1)

(1 * (4.0 * 10^9)) / 2 = I

=2.0 * 10^9 instructions per second

P1 part b:

1 = (I * 1)/(2.0 * 10^9)

Page 11: MIS 6110 Assignment #1 (Spring 2015).doc

1 * (2.0 * 10^9) = (I * 1)

(1 * (2.0 * 10^9))/1 = I

=2.0 * 10^9 instructions per second

P2 part b:

1 = (I * 1)/(3.0 * 10^9)

1 * (3.0 * 10^9) = (I * 1)

(1 * (3.0 * 10^9))/1 = I

=3.0 * 10^9 instructions per second

b) If the number of instructions executed in a certain program is divided equally among the classes of instructions except for class A, which occurs twice as often as each of the others, which computer is faster? How much faster is it?

2 Instructions for Class A, 1instruction for the rest

T = (2 * 1 + 2 + 3 + 4 + 3) / (2.0 * 10^9)

= 7.0 * 10^-9 

T = (2 * 2 + 2 + 2 + 4 + 4) / (4.0 * 10^9)

=4.0 * 10^-9 

P = ( 4*10^-9) / (2.0 * 10^-9) = 2.0 times faster

 T = (2 * 1 + 1 + 2 + 3 + 2) / (2.0 * 10^9)

=5.0 * 10^-9 

T = (2 * 1 + 2 + 3 + 4 + 3) / (3.0 * 10^9)

=4.67*10^-9 

 P = ( 5.0 * 10^-9) / (4.67*10^-9) = 1.07 times faster

Page 12: MIS 6110 Assignment #1 (Spring 2015).doc

c) If the number of instructions executed in a certain program is divided equally among the classes of instructions except for class E, which occurs twice as often as each of the others, which computer is faster? How much faster is it?

2 Instructions for Class E, 1instruction for the rest

T = (2 * 3 + 2 + 3 + 4 + 1) / (2.0 * 10^9)

= 8.0 * 10^-9 

T = (2 * 4 + 2 + 2 + 4 + 2) / (4.0 * 10^9)

=4.5 * 10^-9 

P = ( 8.0 * 10^-9) / (4.5 * 10^-9) = 1.78 times faster

 T = (2 * 2 + 1 + 2 + 3 + 1) / (2.0 * 10^9)

=5.5 * 10^-9 

T = (2 * 3 + 2 + 3 + 4 + 1) / (3.0 * 10^9)

=5.33 * 10^-9 

 P = ( 5.5 * 10^-9) / (5.33 * 10^-9) = 1.04 times faster

Question #6 (6 marks)The table below shows instruction-type breakdown for different programs. Using this data, you will be exploring the performance trade-offs for different changes made to an MIPS processor.

Page 13: MIS 6110 Assignment #1 (Spring 2015).doc

a) Assuming that computes take 1 cycle, loads and store instructions take 10 cycles, and branches take 3 cycles, find the execution time on a 3 GHz MIPS processor.

Program 1:

Execution time of A = ((600*1) + (200 *10) + (600*10) + (50*3)) / (3*10^9)

=600 + 2000 + 6000 + 150) / (3*10^9)

Execution time = 2.92 * 10^-6

Program 2:

Execution time of A = ((900*1) + (100 *10) + (500*10) + (200*3)) / (3*10^9)

=900 + 1000 + 5000 + 600) / (3*10^9)

Execution time = 0.0000025

b) Assuming that computes take 1 cycle, loads and store instructions take 2 cycles, and branches take 3 cycles, find the execution time on a 3 GHz MIPS processor.

Program 1:

Execution time of A = ((600*1) + (200 *2) + (600*2) + (50*3)) / (3*10^9)

=600 + 400 + 1200 + 150) / (3*10^9)

Execution time = 7.83 * 10^-7

Program 2:

Execution time of A = ((900*1) + (100 *2) + (500*2) + (200*3)) / (3*10^9)

=900 + 200 + 1000 + 600) / (3*10^9)

Execution time = 0.0000009

c) Assuming that computes take 1 cycle, loads and store instructions take 2 cycles, and branches take 3 cycles, what is the speedup if the number of compute instruction can be reduced by one-half?

Page 14: MIS 6110 Assignment #1 (Spring 2015).doc

Program 1:

Execution time of A = ((600*1) + (200 *2) + (300*2) + (50*3)) / (3*10^9)

=600 + 400 + 600 + 150) / (3*10^9)

Execution time = 5.83 * 10^-7

Program 2:

Execution time of A = ((900*1) + (100 *2) + (250*2) + (200*3)) / (3*10^9)

=900 + 200 + 500 + 600) / (3*10^9)

Execution time = 7.33 * 10^-7