MO801 / MC972 - Topics in Architecture and Hardware - Methodologies and Tools for Computer Architecture Research

06 / decend grids
03 / augClassroom assignment. Our lectures will take place at CC52.
July 30thThe first week of this semester is reserved for SECOMP🇧🇷 Regular classes will start on August, 10th.
July 30thImportant dates in the school calendar: Graduate and Graduate programs.

This course will cover tools and methodologies for Computer Architecture research including modern simulators, benchmarks for single / multi-colors 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:

  • Microarchitecture Processor: 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 1 hour 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 minute 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.
03 / augSECOMP
05 / augSECOMP
10 / augRace Overviewslides
12 / augSome basic general tools and a few examplesslides
17 / augChapter 1 - Introduction to Microarchitectureslides video
19 / augpin and diner tutorialspin slides and diner slides
24 / augproject team
26 / augChapter 2 - Cachesvideo - slides
31 / augPARSECslides
02 / sepProject 1 presentations
07 / sepin class
09 / sepFetch Unitvideo - slides
14 / sepMcPATslides
16 / sepDecodevideo - slides
21 / sepPerformance Countersslides
23 / sepAllocationslides
28 / sepSimPointsslides
30 / sepIssueslides
05 / octSecond project - presentations
07 / octZYesslides
12 / octin class
14 / oct
19 / octProject 3 preliminary presentations
21 / oct
26 / oct
28 / octin class
02 / Novin class
04 / NovProject 3 presentations
09 / Nov
11 / NovProject 4 preliminary presentations
16 / Nov
18 / Nov
23 / Nov
25 / Novfinal exam
30 / NovProject 4 presentations