MC723 - Computer systems design laboratory

General Information

Teacher: Rodolfo Jardim de Azevedo (Email)

Classroom: Tue: 08h-12h

Waiters Send email by checking, indicating time preference. See more details in the service section below.

Living room: CC01 / CC02


See also


All group members must be present at the presentation on 22/06. The absence of one of the group members will prevent the presentation.
Partial notes on this spreadsheet. If you have any questions regarding the evaluations, contact me in the classroom or make an appointment.
See detailed work instructions below on this page.
There was a prolonged drop in the Unicamp network and the delivery period for Exercise 6 was extended by 2 days.
Students without groups were grouped in the spreadsheet. You can still change groups until next week (25/05). All themes must be defined by this date. Look for me first to talk.
04/05Set up your groups for the discipline's work using this spreadsheet.
26/04There was a problem with Susy, now it's OK. I increased the deadline by one day. Send only the report.
24/03Collaborative website for student questions. Use tag mc723.
Changed the submission of activities. All submissions will now be made via Susy. Get passwords with me in class.
01/03Report Template.
01/03 Important dates of graduation calendar.


Improve the concepts learned in the Computer Systems Design course through exercises and the modeling of system (s) with processor (s) and peripheral (s). Reinforce programming concepts in large code bases.


The semester will be divided into two parts: exercises and project. In the exercise section, each student will implement small activities to ensure understanding of some basic topics. In the second part, each group will implement a project that will be defined until the middle of the semester.

All deliveries have an automatic 24-hour grace period, but I will not accept any justification for postponement based on facts that occurred in those 24 hours. The grace period is not valid if you exceed the term limit.


Online documents, referenced here, are also available on my homedir IC3 (cd ~ rodolfo / mc723).

Customer service

In addition to the time reserved for the subject, I can serve students at various alternative times, including bits of the lunch time and also early evening hours ( until 20h).

To facilitate your service, try to book by email to ensure that I am available on the day. Send a message suggesting an opening time (look at my updated schedule). If you want to show me some code, try to have it installed on the machine so that it is easy to demonstrate on the spot (please avoid bringing something to install on my machine, my experience says that we will have great work to install).


Everyone must do each of the following exercises individually:

The exercises should be performed predominantly in the classroom.


See the delivery times in the calendar:

Each delivery must be in the form of a report with a maximum size of 2 pages. All groups must keep the code defined for each delivery for presentation. There will be a draw for the intermediate phases and all groups will make a final presentation directly with the teacher.

What is work

The job consists of assembling a platform with at least 2 processors and 2 new peripherals (you can use all the peripherals made so far, but you will have to create 2 new ones). This platform should run software that should take advantage of the parallelism offered. You are free to choose the program, there should be none of the programs used in exercise 6. Program suggestions: those chosen in exercise 3, one of the SPLASH-2 benchmark programs, or any other that you can extract parallelism.

The two peripherals must be created to increase the performance of the platform. Use profilling to find out what to improve on the code, migrate this part of the code to peripherals as per Exercise 4. You do not need to use the caches implemented in Exercise 5.

Your program has to work in parallel. There is no point in running the first part on the first processor while the second is stopped and then running the second part on the second processor while the first is stopped. You will probably need the Lock peripheral, the implementation of barriers, etc. This peripheral does not count as one of the two requested as it must have already been implemented in exercise 4.

Detailed Specification Report

This is the first report where the group must describe, in detail, what will be done at work. The limit is 2 pages, so please write only what is necessary. I recommend that you follow the following parts:

  1. Introduction: Briefly present what is expected of your platform: functionalities, features, components, motivation to create it, a general diagram of the platform can be useful for future sections, etc
  2. Platform components: Create a subsection for each of the components and indicate relevant questions about each one. Ex .: communication protocol, interface with the software, restrictions, form of implementation (at least one goal), etc.
  3. Software: What will be done in software, how will it work, what will run on each processor, etc.
  4. Address space used by peripherals.
  5. Allocation of activities to the group members: If the group is going to divide the activities, indicate which ones will remain with each member.

Delivery format

Deliveries will be via Susy. Use the password of one of the group members (if two members of the group send the files, I will choose what I will evaluate). See the delivery details below and on the calendar:

Any delivery out of specification that does not have a prior agreement with the teacher will be strictly disregarded.


02 / 03T Presentation of the discipline and Exercise 1.
09 / 03T

16 / 03T
Exercise 2
23 / 03T

30 / 03T
Exercise 3
06 / 04T

13 / 04T
Exercise 4
20 / 04T

27 / 04T
Exercise 5
04 / 05T

11 / 05T
Exercise 6
18 / 05T

25 / 05T
Work: Composition of the Groups and Definition of the Theme until 8am.
01 / 06T
Work: Delivery of the Specification until 8am. Presentation of the specification by at least one of the group members during class time.
08 / 06T

15 / 06T

22 / 06T
Work: Final Delivery and Presentation (no need)
29 / 06T
Disclosure of notes