CS/ECE 3810 - Computer Organization
Fall 2008

Extra Credit
Due Friday, December 19


Overview

I am posting these two extra credit options to encourage studying and comprehension of computer organization topics.  Extra credit points will be awarded to any student who uses this opportunity to demonstrate that they understand the material presented in this class.

The extra credit problem centers around the design and analysis of an imaginary computer system.  The requirements for this computer system are given in the next section.  Students have two options for earning the extra credit:

  1. Analyze my computer design:  I will give you a complete (but inefficient) solution to the design problem.  To earn this extra credit you will need to give a thoroughly detailed evaluation and analysis of the performance of my solution.  (The exact requirements are given below.)  This extra credit option is worth up to a two grade increment advancement on your final grade, depending on the quality of your work.
  2. Design and analyze your own computer that is better than mine:  To earn this extra credit you will prepare a complete design that meets the requirements given in the next section.  In addition, you will perform the a thoroughly detailed evaluation and analysis of the performance of your solution compared to mine.  (This part is exactly the same as option #1, but you analyze both solutions instead.)  This extra credit option is worth up to a four grade increment advancement on your final grade, depending on the quality of your work.
To hand in your extra credit, you will need to set up an appointment with me for the end of finals week.  I will post sign-up sheets for appointment times on my door on Monday of finals week.  You must bring a printout of your extra credit work to my office at your scheduled time.  During the appointment I will review your solutions with you and assess your understanding of the material. 

All work should either be typed, or very neatly written.  There are three possible grades for the extra credit work:

Extra credit points will be applied after all letter grades have been determined.  If you get a 'B' on the extra credit, I will not advance your grade above a 'B'.  Examples: If you earned an 'A' on the first extra credit option, and you had a 'B-' before, you would receive a 'B+'.  If you earned a 'B' on the second extra credit option, and you had a 'B-' before, you would receive a 'B'.

Your goal in completing the extra credit should be to make sure you understand the material, and to convince me that you deserve a better grade. 


Computer System Design Requirements

Premise:  Assume you are working with a team to build an embedded device that collects sensor data, sorts it, and sends it to a database.  This project could be completed by using a hardware description language to design logic gates; however, you have been asked by your boss to create small on-chip computer complete with a CPU, memory, cache, an instruction set, and I/O, and an embedded program for controlling the CPU. 

The embedded system must read one hundred 16-bit words from an input sensor, sort the words (as unsigned data), and write the sorted words out to an output device.  It must then repeat this process over and over again.  As you design your system, keep in mind that a faster part will result in more profit to the company (and to you).  The goal is to process as much data each second as possible.

Constraints:  Your computer system will be placed on a chip with other components and is subject to the following constraints:

My solution

Solution - This solution took me about twelve hours to plan, design, and write. I have double-checked it, but it is very likely that there is a small error or two still in it. I will post new revisions if I make any further corrections.

Extra credit option #2

Begin by analyzing my design; do the first extra credit option. Then, create your own design for all the major components of the computer system: CPU, memory, cache, an instruction set, I/O, and an embedded program for controlling the CPU to perform the task.  Then, perform the analysis for extra credit option #1 on both systems and compare the result.  Here are the requirements for your design:

Your designs should not be significantly similar to mine.  Once you complete your design, analyze your code/design and compare it to your analysis of my code/design.

Extra credit option #1

To perform the analysis, answer the following questions about my system design (to be posted).  (If you are doing the second extra credit option, perform this analysis on your system as well.)

Justify each answer by showing your work and explaining the result!  No credit will be given if you just show numbers.

  1. What is the clock period for this design?  Was there any penalty due to the number of instructions?  If so, what was it?

  2. What is the latency for a cache hit?  What is the latency for a cache miss?  What is the latency for a read from the input device?  What is the latency for writing to the output device?  In this design, do you have to wait for output device writes to complete?

  3. Compute how long will each instruction will take to complete for each possible combination of cache misses / hits.  (This can be done separately for each instruction.)

  4. If the design is pipelined, what hazards are there, and how many cycles will you have to stall for each hazard?

  5. Analyze in depth the total running time for reading, sorting, and writing 100 data values using the supplied software.  While it is impractical to fully simulate the cache, you should estimate its performance for each instruction / data access.  Your analysis should include a justification for the average time to complete each and every instruction in the program. 

    In addition, you should total up the time required for each major portion of the program, and give a grand total for how long the program will take to do one set of data.

    How many times a second will this design read, sort, and write one set of data?

    This is the bulk of this part of the extra credit.  Make sure to spend the time needed to get it right.  Show your work, and give written explanations for each step you take.

  6. (For extra credit #1, but not for #2) List at least three possible improvements that could be made to my design, and estimate their impact.  You do not need to redesign the system, just speculate and justify your answers.

    Write three short paragraphs, one for each possible improvement.

That's it.  Have a great winter!

Page updated Sunday November 30, 2008 at 15:21:04.