MC723 - Computer systems design laboratory


23/06Submit the work report through Susy. Maximum 4 pages.
07/05Set up your groups in this spreadsheet. Deadline to complete groups: until 22/05
21/04First notes already in note board.
20/03Roadmap for installing the tools on your computer.
11/03Address for sending Report 1.
11/03I'm still having trouble setting up Susy. Wait for more details about sending the tasks.
22/02Collaborative site for student questions. Use tag mc723.
22/02Report template.
22/02 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 exercises 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 by 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.


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

Customer service

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

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 should do each of the following exercises individually:

The exercises should be performed in the classroom. The exercises are completely individual, including the interpretation of the statement. If in doubt, seek exclusively the teacher.


See the deadlines on 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 is to build 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 must run software that must take advantage of the parallelism offered. You are free to choose the program, it should not be any 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 from.

Both 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 in the work. The limit is 2 pages, so just write what you need. I recommend that you follow the following parts:

  1. Introduction: Present at a glance what is expected of your platform: features, characteristics, 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. Eg communication protocol, software interface, 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 components of the group: If the group will divide the activities, indicate which ones will remain with each component.

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 in the calendar:

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


28/02No class
06/031 Exercise
20/032 Exercise
03/043 Exercise
17/044 Exercise
01/05There will be no activities
08/055 Exercise
15/05No class
22/056 Exercise
26/06Delivery of Papers and Final Evaluation