EE 306, Fall, 2002
Yale Patt, Instructor
TAs: Asad Bawa, Linda Bigelow, Mustafa Erwa, Lester Guillory, Kevin Major,
   Tanay Shah, Moinuddin Qureshi, Paroma Sen, Santhosh Srinath,
   Matt Starolis, David Thompson, Vikrant Venkateshwar

Problem Set #4
Due: Monday, October 7, 2002 before class

0. Problem No.9 from PS #3.

1. Problem No. 4.5 ( Page 87) from the textbook.

2. For the opcodes: 0001, 0010, 0000; write what operations occur in each phase of the instruction cycle.

3. Consider the following machine language program:

                    X3000   0101010010100000
                    X3001   0001001001111111
                    X3002   0001001001111111
                    X3003   0001001001111111
                    X3004   0000100000000111
                    X3005   0001010010100001
                    X3006   0000111000000001
                    X3007   1111000000100101

a) What are the possible intial values of R1 that cause the final value in R2 to be 3. ?
b) In less than ten words, what does this program do?
 
4. Problem No. 4.7 ( Page 88) from the textbook.

5. Problem No. 5.2 ( Page 114) from the textbook.

6. Problem No. 5.3 ( Page 114) from the textbook.

7. Problem No. 5.9 ( Page 115) from the textbook.
Note: This problem is intended to stretch your mind.  Do not be disappointed (or surprised) if each part makes you think.

8. Problem No. 5.10 ( Page 115) from the textbook.

9. For this question, assume that all data memory is initialized to x1000 more than its address. So for example, Address 0x8000 will have have the value 0x9000.

Now, execute the following LC-2 machine language program and write the values stored in all the registers(R0-R7).
Initially, all the registers have the value 0 stored in them. Also PC=0x3000 to start with.

0x3000:
1110000100000000
0010001100000000
1010010100000000
0110011001100100

10. Suppose we build a machine in the old style that requires each  instruction to complete (store its result) before the next instruction can start (fetch the instruction).  This was the way things were in the old days before we came up with a lot of techniques that you will learn about in 360N, if you take it.  Suppose on the average, instructions take 1.2 cycles to FETCH, 1 cycle to decode, 1 cycle to figure out the addresses of the operands, 1.8 cycle to get the operands, 2 cycles to execute, and 1 cycle to store the result.  How many instructions can a 2.5 GHz computer of this ilk process in one second.