CS570 Advanced Computer Architecture

Instructor: Xian-He Sun

Department of Computer Science

Project Report Guideline

Your project will contribute 30% toward your final grade. The goal of your project report is to explain your project sufficiently so that the reader can understand what the problem is and how you have solved it. The reader should be able to understand your methods without reading the code.

There are five main parts in your writeup:

The problem description should introduce the problem, and point out the essential parts of your problem with respect to its computational aspects. Existing approaches to the problem should be outlined in order to put the proposed solution into perspective. The description of your algorithm (if any) should be in prose and in pseudocode. In addition to explaining your approach, the prose should help clarify why you made important choices. The pseudocode should be at a high enough level to be easily and quickly read, yet it should illustrate the important points of the algorithm. Excessive details will be counterproductive, and will indicate that you have not thought enough about what the important issues are. The results should be brief, and, if appropriate, should compare with some known results. The analysis and conclusion should be a retrospective on your approach toward solving the problem, especially what you would do differently if you were to do it again. For example, was the environment chosen appropriate? Were there parts of your algorithm that seemed like a good idea when you started, but turned out to be not working well? Were there ideas that you tried and dropped? Your project report must be self-contained, including a short abstract and a list of references. If you don't know the format of technical papers, read any journal articles in IEEE Trans. on Computers or ACM International Symposium on Computer Architecture. Keep in mind that you have to give credits to all papers you referenced in your report. Your project report must be type-written using any of your favorite word processing or typeseting package. In general, your paper is expected to have 12 to 18 double-spaced pages, without counting the program code. Here is the breakdown about how will your term paper be graded.


You may study any topic relevant to instruction-level parallism, memory hierarchy design, storage system, performance analysis and evaluation. Here is a list of topics that I have in mind at this moment.

The next question you may have is where can I find out references? The papers in technical journals are usually two or three years old due to the long reviewing process. But the quality of journal articles (I mean prestigious journals) is usually better than conference articles or technical reports. However, you have to pay attention on one thing: Don't be easily convinced by conclusions or comments made by the author(s). Published papers do not guarantee that their arguments are correct. You have to make your own assessment.


In addition to the textbook and listed references, here I list some journals and conference proceedings which have useful articles to this course. You should be able to find most of them in the IIT digital library, or through online search. Note that you don't have to trace back all old issues. Except a few classical papers, only those issues published in the last five years may still be useful.


Computer architecture has been a very hot research area for over sixty years. You may find many other conferences in this area. The above listed publications are given from the viewpoint of computer architecture and parallel computing. More journal and conferences can be found from the viewpoint of the hardware, compiler and operating systems. Use on-line resources. Talk with me if you have difficulty in searching of references.


You have to submit a two-page project proposal including a short description of your topic and a list of references to me by Jan. 30, 2020. Your project report is due on April 30, 2020. In class presentation is required.

Contact Information