Course PM
Introduction
Welcome to the course about computer organization! In this course, you will learn how a computer system is constructed. After that the course finished, you will have a fundamental understanding of how a processor is constructed, how a computer executes machine code, how memory hierarchies affect execution time, and fundamental understanding of the principles of parallel computation. On the laboratory exercises, you will write assembly and C code, see how programs are executed on an embedded hardware platform, and construct a functional single-cycle processor in a simulation environment. Finally, in groups of two students, you will construct a mini-project on a real embedded platform.
This course website is valid for both IS1500 (taught at the KTH main campus each fall) and IS1200 (taught at the KTH Kista campus each spring). On the website, we will explicitly state if something is specific for one of the course editions. If nothing is stated, then the information is valid for both IS1200 and IS1500.
Learning Outcomes
After the course, the student will be able to:
- Analyze and demonstrate how logic gates, blocks, combinational circuits, and sequential circuits work (only for IS1500).
- Implement low-level programs in the C programing language and in an assembly language.
- Analyze processor microarchitectures, with and without a pipeline.
- Explain the principles of memory hierarchies, including cache structures.
- Implement low-level programs with input-output, timers, and interrupts.
- Explain the principles of multiprocessor computers and how they can be programmed.
- Explain and describe technical solutions, both orally and in writing.
Please see the syllabus for IS1500 and IS1200 for more details.
Teachers
Examiner and Course Responsible
Exercises, Labs, Seminars, Project
- Fredrik Lundevall
- Gizem Çaylak
- Oscar Ericsson
- Hamid Ghasemirahni
- Giacomo Verardo
- Zinat Behdad
- Lars Hummelgren
Examination
Both IS1200 and IS1500 contain the following two parts, which are reported into LADOK separately.
- LAB1 - Laboratory Work, 4.5 credits, grade scale: P, F. This part is reported as P (pass) when the student has passed Labs 1 to 4 and received a pass on the project.
- TEN1 - Examination, 3.0 credits, grade scale: A, B, C, D, E, FX, F. This part is reported after finishing the written exam. Note that it is allowed to write the exam several times to get a higher grade.
In addition, IS1500 students also have a lab in logic design:
- ANN1 - Component Demonstration, 1.5 credits, grade scale: P, F. This part is reported as P (pass) when the student passes the LD-LAB (IS1500 only)
The final grade for the course is given when LAB1 and TEN1 have pass grades (IS1200) and when LAB1, ANN1, and TEN1 have pass grades (IS1500). The final grade is the grade of TEN1. The labs are valid within one course year (i.e, until the next edition of the course starts). You can read more about lab and mini-project validity at the bottom of this page.
Written Exam
To get grade A or B on the written exam, the student must have completed an advanced project before the exam and within the same course year (i.e., 365 days from the beginning of the course). That is, the accomplishment of completing an advanced project gives the possibility to get grade A or B on the ordinary exam when the project was completed, and on the two following retake exams. You will have to register for the exam using LADOK, and you will not be permitted to take the exam if you have not registered.
Plussning: We allow "plussing", meaning that you are allowed to take the exam again to get a higher grade, even if you have already passed the exam. If you take the exam again and fail the exam or get a lower grade than the one in LADOK, you will keep the grade in LADOK. That is, you can not get a lower grade by doing "plussing". Note that if you are aiming for grade A or B, you still need to have passed the advanced project i) the same course year and ii) before the written exam as you are doing the exam for "plussing". Remember to register for plussing here as well as for the exam on Ladok. For plussing, remember also that you must have access to the most recent Canvas pages of the course.
There are three occasions to pass a written exam every course year:
- IS1200: March (main one), June (re-take), and January next year (re-take)
- IS1500: January (main one), March (re-take), and June (re-take)
The bonus points are valid within a course year. For example, if you got bonus points in IS1200, the bonus points will be valid for the March, June, and January (next year) exams. After that, one has to redo the seminars.
Literature
The following is the recommended course book:
- David Money Harris and Sarah L. Harris. Digital Design and Computer Architecture, Second Edition, Morgan Kaufmann, 2013.
- David A. Patterson and John L. Hennessy. Computer Organization and Design – the Hardware/Software Interface, Fifth Edition, Morgan Kaufmann, 2013.
For details, please see the course literature page.
Lectures, Exercises, Seminars, Labs, and Project
For details, see the specific pages on lectures, exercises, seminars, labs, and project.
Getting help
There are several ways to get help in the course. The main options are:
- Add a question to the Canvas discussion forum.
- Attend one of the lunch office hours (see the schedule).
- Get help from the general tutoring at EECS (Allmänhandledning). For more information about general tutoring, please see the following page.
Disability
If you have a disability, you may receive support from Funka.
Funka also recommends that you inform the course responsible (see above) regarding any needs you may have. Funka does not automatically inform teachers in courses.
Code of Honor
Please make sure that you are aware of and that you understand the KTH EECS Code of Honor.
Policy against Plagiarism
Note that all forms of cheating and plagiarism will be reported. Please see KTH's policy for handling plagiarism.
- Labs and Project code.You may collaborate and discuss with anyone, but you must be able to explain all code you present to us individually, including your lab partner’s code. When requested in the lab and project instructions, you must clearly declare who has authored the code you show at lab examination.
- Written reports and project abstracts. You are not allowed to copy, cut, or paste any text into your report that is not produced by you. The only exception is if you quote text properly, and give a citation to the original source.
- Seminar exercises. You are allowed to discuss the solutions of the exercises, but the final solutions must be written down and solved individually by you. It is not allowed to copy solutions in any way.
- Written Exam. You are allowed to bring one handwritten sheet of A4 paper. You may write on both sides. The A4 paper must not be printed or copied. All other aids (for instance calculators or text books) are not allowed.
Validity of Incomplete Labs
The following rules hold for IS1500 and IS1200 students.
- Each student will have 3 attempts of being examined for each lab. The three possible attempts will be available before the course starts the next time. If you have not finished some of the labs after these three possible attempts, you will need to redo all the labs in the course (all labs for a specific LADOK entry, e.g., LAB1 or ANN1). Note that it is the number of available possible attempts that counts. If you select not to use one of the possibilities, it still counts as a try.
- The first possible attempt will be given during the course, that is, the ordinary lab occasion. Most of the students will finish their labs during these occasions. For IS1500 students, this is during period 1 and 2 in the fall, and for IS1200 students, this is during period 3 in the spring.
- The second possible attempt will be at the end of the course or just after the course. For IS1500 students, this will be just before Christmas. For IS1200 students, their second possible attempt will be after Lab4 and between the EXPO day.
- The third attempt will be the last possible time to be examined on the labs. For IS1500 students, the last time will in the end of February, and for IS1200 students, it will be just before Christmas. Note that the second attempt for IS1200 coincide with the third attempt for IS1500. The reverse is also true.
- Again, if you have not passed all labs 1,2,3,4 and finished the project, you will need to redo the LAB1 LADOK part again the next course year (all the labs and the project). If you have already done some of the labs, you can of course reuse your own solutions, but you need to be examined on all labs again.
- LD-LAB (logic design) is just for IS1500 (not for IS1200). However, there you will first have a submission attempt, followed by a complementary work submission just a few weeks after the first submission. The third attempt for completing the lab is just before Christmas. If you have not completed it by then, you will need to redo the LD-LAB the next time IS1500 is given. Note, however, that LD-LAB is a separate LADOK entry (ANN1). As a consequence, completing this lab or not does not affect the other labs.
- For the project, you need to submit all the project descriptions and drafts on time. If you cannot show your project at the project expo, you will have to inform us well in advance, so that you can give a private demonstration before the project expo. If you fail the project, or you did not finish it, you can be examined for the project the next semester. For IS1200, it will be during the project expo for IS1500, and for IS1500, it will be at the project expo for IS1200. Note: if you have finished the labs but not the project within a course year, you will have to redo all parts again. Hence, please make sure to finish everything on time!
- NOTE: If you have finished all the labs and the project, and you have 4.5hp in Ladok (marked with code LAB1) then you do not have to redo any labs or the project, even if you have not finished the written exam a year after. This is also true (you do not have to redo the labs if you have LAB1 in Ladok) if you are redoing the seminars the year after to get new bonus points (remember that bonus points are only valid for the ordinary exam, and the two following retake exams).
The rationale for having these rules is twofold:
- It is extremely important that you finish your course the same course year (i.e., 365 days), and do not leave just some parts of the course unfinished. This rule with 3 possible opportunities for examination of each lab aims at getting as many students to pass as possible. We have experience of students coming back several years later with some parts unfinished, and this is not good for a student's study progress.
- It is very hard to keep track of detailed student results over many years, when different students come back several years after with just some parts left. Therefore, we strongly encourage you to finish the whole lab series direct, the same course year as you started the course (i.e., within 365 days).
Reporting
We will only report grades to LADOK via Canvas in batches. This means that all students that have finished all labs and the project at the end of the course will be reported at the same time at the end of the course. All students that have finished parts of their course after the second lab examination attempt will be reported at the same time. Finally, all students that pass after the third attempt will be reported to LADOK at the same time.