Starting from:

$35

Assignment #1 Solution

Work through the “Notes for Assignment #1” (under Course Notes). These notes will assist you in the installation of QtSpim on your computer and will give you an opportunity to experiment with QtSpim.

Next, read the first 6 sections of Chapter 1 in the Computer Organization and Design text. This reading will give you a glimpse of what we will be looking at during the term.

Afterwards, submit answers for the following problems (where appropriate, show the details of your calculations):

    1. When working through the “Notes for Assignment #1”, you created a small assembly program called hello.s. Remove the period from the “.text” line in the program. Try loading this modified program into QtSpim. (2 points)

        a) What type of error do you get?

        b) Does the program load and execute properly if you get rid of the “text” line completely?

    2. I assume that you have just executed hello.s and are still inside of QtSpim. There are actually several different sections in the QtSpim screen. On the left side you are able to view the contents of the various MIPS integer and floating point registers; we will be learning all about these registers in the coming weeks. Make sure that “Int Regs” is selected. Notice that the PC register contains the value 400038. The General Purpose Registers are numbered starting with 0. Register 1 (also called “at”) contains the value 10010000. (8 points)

        a) Register 2 goes by what other name?  What value is in register 2?
        b) Register 15 goes by what other name?  What value is in register 15?
        c) Register 28 goes by what other name?  What value is in register 28?
        d) Register 31 goes by what other name?  What value is in register 31?

    3. Let’s now look at the right side of the QtSpim screen. We can view our data and our code (“Text”) on this side. Make sure that “Text” is selected. We are able to see the instructions as they are stored in memory. For example, location 00400000 contains

the value 8fa40000, which is the instruction “lw    $4, 0($29)”. (8 points)

    a) What value is stored at location 0040000c?  What instruction is this?
    b) What value is stored at location 00400034?  What instruction is this?
    c) What value is stored at location 00400038?  What instruction is this?
    d) What value is stored at location 80000184?  What instruction is this?

    4. Let’s move on to the data portion of the QtSpim screen (still assuming that we just executed hello.s). We are able to see the data (and the stack) as it is stored in memory. For example, location 90000030 contains the value 2000205d. (2 points)

        a) What value is stored at location 10010000?
        b) What value is stored at location 90000160?

    5. The bottom of the QtSpim screen contains some copyright information.  (2 points)

        a) Who developed the SPIM product (who has the original copyright)?
        b) What year was the original copyright established?

    6. I have created another small assembly program called bio.s that gives a little bit of information about yours truly. Here is the output that appears in the Console window when I execute the program:

My name is Steve Leach
I was born in Key West, Florida
I am a faculty member at FSU's Panama City Campus
I enjoy reading, singing karaoke and playing with my grandchildren

Create a bio.s program of your own that tells me a little about yourself. Make sure that your program is documented using a style similar to that used in hello.s. Submit a separate file called bio.s as well as placing your code in this assignment submission; the Mentor will clarify what I mean by this. (15 points)

    7. Do Exercise 1.4 on Page 55 in the textbook. For part (b), give answer to nearest millisecond. (4 points … 2 points each)

    8. Do Exercise 1.5 on Page 55 in the textbook. For part (a), simply compute the instructions/second (four significant digits) for each of the three processors (3 points). Part (b) will have six answers: the number of cycles and the number of instructions (four significant digits) for each of the three processors (6 points). For part (c), compute the new execution time and the new CPI for each of the three processors (4 points) and then compute the new required clock rate for each of the three processors, expressing these rates in GHz (four significant digits) (6 points). (19 points total)

    9. This is an adaptation of Exercise 1.6 on Page 55 in the textbook. We assume that there are two different implementations, P1 and P2, of the same instruction set architecture. The instructions are divided into four classes according their CPIs (classes A, B, C and D). P1 has a clock rate of 2.5 GHz and CPIs of 1, 2, 3 and 3 for the corresponding classes of instructions. Likewise, P2 has a clock rate of 3 GHz and CPIs of 2, 2, 2 and 2.
We next assume that we have a program that executes a million (106) instructions such that 10% of these instructions are of class A, 20% class B, 50% class C and 20% class D. Finally, the question: (8 points total)

        a) For our program, how many instructions of each class are executed?  (2 points)

        b) Compute the execution time of the program using P1 and using P2. Express the answer to the nearest microsecond. (6 points … 3 points each)

    10. Do Exercise 1.10.1 on Page 57 in the textbook. As part of this problem, you will want to derive a formula for die area (see page 28 of the textbook; note that this will be an approximation). For both wafers, give your calculated value (use 3.14 for π) of die area (in cm2, two decimal places) and the value of yield to four decimal places. (8 points … 2 points each)

    11. Do Exercise 1.10.2 on Page 57 in the textbook. The problem does not specify the unit of cost (it is simply 12 and 15). Therefore, your answer will not have a specific unit either. Give answer to four decimal places. (4 points … 2 points each)


Your assignment is due by 11:59 PM (Eastern Time) on the assignment due date (consult Course Calendar on course website).

More products