MO801/MC972 - Tópicos em Arquitetura e Hardware - Methodologies and Tools for Computer Architecture Research

06/decFinal grades
03/augClassroom assignment. Our lectures will take place at CC52.
30/julThe first week of this semester is reserved to SECOMP. Regular classes will start on August, 10th.
30/julImportant dates in the school calendar: Graduate and Undergraduate programs.

This course will cover tools and methodologies for Computer Architecture research including modern simulators, benchmarks for single/multi-cores and clusters. We will study recent papers on the area and how they model pipelines, caches, execution engines, power evaluation, etc.

The recommended bibliography contains:

  • Processor Microarchitecture: An Implementation Perspective. Antonio González, Fernando Latorre and Grigorios Magklis. Synthesis Lectures on Computer Architecture. Morgan && Claypool Publishers.
  • Recent papers from Top Conferences

Written exam: 40% of final grade.

Projects: 60% of final grade.

Any unethical behavior related to the evaluation process will result in failing the course with the lowest possible grade. Every assignment is an individual assignment unless otherwise mentioned. Students are not expected to talk to each other about solutions to the assignments unless otherwise mentioned.

I will provide 1h of office hour before each class. If you need more or alternative time, feel free to schedule by email.

Project 1

Task 1: Count the number of instructions in each SPEC 2006 benchmark programs execution.


  • Is there any variation?
  • How long should it take?
  • How long did it take?

Task 2: Do something else with this infrastructure (PIN and SPEC).

Oral presentation on September 2nd.

Create a folder called project1 in your repository. Put two files in it: count.csv and presentation.pdf. count.csv should have 2 columns: program name, instruction count. presentation.pdf is a 5 minutes presentation of your project.

Project 2

Task: Evaluate branch prediction alternatives in real programs.

10 minutes oral presentation on Oct 5th.

You should evaluate the branch prediction behavior using several programs from benchmarks. You should consider, at least, 3 branch predictors, in distinct configurations. In total, you should consider about 200-300 distinct executions.

Create a folder called project2 in your repository. Put:

  • All pintools
  • Makefile to compile all pintools (include configuration variables in the top of the Makefile). You should not include PIN source code in your repository.
  • file containing instructions to execute each pintool
  • A shell script called that, given one command line as parameter, executes all pintools using this command line.
  • presentation.pdf containing your 10 minutes presentation.

Project 3

Task: Reevaluate one of the paper premises. The papers will be distributed in class hour.

You should consider the same evaluation scenario. If necessary, you can suggest modifications and implement them to make it easy to reproduce the paper results. In case of mismatch, you should justify it.

Maximum 20 minutes oral presentation on Oct 19th about the paper and selected approach.

20 minutes result presentation on Nov 4th

Create a folder called project3 in your repository. Put:

  • All software you created and used (if they are small enough to fit in the repository)
  • file containing instructions to reproduce the results
  • presentation.pdf containing your 20 minutes presentation.

Project 4

Task: Propose one extension to the paper.

You can evaluate something that is not evaluated in the paper, or you can measure different characteristics, explore different approaches, etc

Maximum 20 minutes oral presentation on Nov 11th about your proposal.

20 minutes result presentation on Nov 30th

Create a folder called project4 in your repository. Put:

  • All software you created and used (if they are small enough to fit in the repository)
  • file containing instructions to reproduce the results
  • presentation.pdf containing your 20 minutes presentation.
10/augCourse Overviewslides
12/augSome basic general tools and a few examplesslides
17/augChapter 1 - Introduction to Microarchitectureslides video
19/augPIN and dinero tutorialsPIN slides and dinero slides
24/augProject time
26/augChapter 2 - Cachesvideo - slides
02/sepProject 1 presentations
07/sepNo class
09/sepFetch Unitvideo - slides
16/sepDecodevideo - slides
21/sepPerformance Countersslides
05/octSecond project - presentations
12/octNo class
19/octProject 3 preliminary presentations
28/octNo class
02/novNo class
04/novProject 3 presentations
11/novProject 4 preliminary presentations
25/novFinal exam
30/novProject 4 presentations