Literature and Resources
Course Literature
We recommend the following course books:
- David Money Harris and Sarah L. Harris. Digital Design and Computer Architecture, Second Edition, Morgan Kaufmann, 2012.
- David A. Patterson and John L. Hennessy. Computer Organization and Design – the Hardware/Software Interface, Fifth Edition, Morgan Kaufmann, 2013.
Besides the course books, the following article is part of the course material.
- Mitchell Waldrop. More than Moore, Nature, Vol 530, 2016. [available online Links to an external site. if you are on the KTH network]
The reading guidelines contain detailed recommendations of reading guidelines for each of the course modules.
If you have logged in via KTH's system, both these books are available online:
- Harris & Harris, 2013, 2nd edition, available online from Science Direct.
- Patterson & Hennessy, 2009, 4th edition, available online thought KTH-Library.
Note that for Patterson & Hennessy, only the 4th edition is available online. However, the 4th edition is enough for the course. Please see the reading guidelines for more details.
We also provide a MIPS reference sheet Download MIPS reference sheet. This reference sheet will be available on the written exam.
Lecture slides, laboratory exercises, and exercise notes are also part of the course literature.
Below, there are some online material, links, and information about further readings. The information on these links will not be directly examined on the final exam. They should only be seen as support documents for the course literature.
Videos
Please check out this YouTube channel that includes various videos specific to the is1200/is1500 course.
https://www.youtube.com/channel/UC8O8yqCN2CHR0ZlL5_dvXfg Links to an external site.
Note that several of the videos are given in English because the is1200 course is also give to students who only speaks English. If you have any suggestions for new videos that I should make, please send us an email.
C-programming Resources
- The book The C programming Language Links to an external site., second edition by Brian W. Kernighan and Dennis M. Ritchie is the reference book for C. You can buy this book in a book store, but there are also a few copies available at the KTH library.
- The webpage C - Quick Guide Links to an external site. is a good online page that summarizes the basics about C.
- The book The C Book Links to an external site.is an online book that is fairly comprehensive.
UNIX Commands
In many of the labs, you will use UNIX shell commands. If you are unfamiliar with UNIX, please check out this tutorial Links to an external site..
PIC32 and ChipKIT Resources
The following list of links provides useful resources for lab 3 and the mini project:
- All information regarding the PIC32 system (the system that we are using in the labs) can be found on Microchip's homepage here.
Links to an external site. There are other compiled versions (one single PDF file) available on the Internet, but there is no guarantee that these documents actually are the latest versions. Here is a selection (with links) of the most important sections:
- Memory Organization (Section 3) Links to an external site.: Overview of memory layout and more.
- Interrupts (Section 8) Links to an external site.: Detailed information about interrupts, control registers etc.
- I/O Ports (Section 12) Links to an external site.: Information about control registers (TRISx, PORTx etc.)
- Timers (Section 14) Links to an external site.: Detailed information about types of timers and their functionality.
- PIC32 processor PIC32MX320F128H product page
Links to an external site.. This is the processor that is used on the chipKIT Uno32 platform. Specifically, from the above link, this document is available:
- PIC32MX3XX/4XX Family Data Sheet Links to an external site.. Includes complementary information to the PIC32 family manual.
- chipKIT Uno32 Prototype platform, resources
Links to an external site.. See documents at the bottom of the page. Some of the key documents from this webpage:
- chipKIT Uno32 Board reference manual Links to an external site.. Overview of the main board. Includes pinout table.
- chipKIT Uno32 Reference Design and schematics Links to an external site..
- chipKIT Uno32 Bootloader Links to an external site. (same image as the one loaded at the factory).
- chipKIT Basic I/O Shield, resources. Some of the key documents:
- chipKIT Basic I/O Shield reference manual Links to an external site..
- chipKIT Basic I/O Shield reference design and schematics Links to an external site..
- The Soloman Systech SSD1306 Links to an external site. display controller that is used to control to OLED graphic display.
- The official MIPS32 instruction set reference manual Links to an external site..
- This Github page Links to an external site. contains various code examples for how to use the different component on the chipKIT Basic I/O shield with mcb32.
- See Chapter 8.6 in the course book by Harris and Harris, which contains a lot of useful information about embedded systems and I/O.
Electronics and Protocols
Here are some advice about electronics and protocols. These links are useful if you are making a project, especially on more advanced level.
- I2C: A good starting point to the Inter-integrated Circuit (I2C) protocol is this introduction by sparkfun Links to an external site.. Another resource is the I2C Primer Links to an external site.. The official specification by NXP can be found here Links to an external site.. The PIC32 reference manual document can be found here Links to an external site.. Another reference can be found here Links to an external site..
- Pull-up Resistors are used both when using external buttons and in protocols, such as I2C. See for instance sparkfun's introduction Links to an external site..
- D/A converter. There is no D/A converter on the ChipKIT board. See H&H section 8.6.6 for alternative approaches.
- WiFi. If you plan to integrate WiFi in your project, you might take a look at ESP8266 modules (available from Kjell & Company, Electrokit and many other vendors). If you google ESP8266, you will find a lot of information about this module.
- A good intro to serial communication from SparkFun can be found here Links to an external site..
Mentorspace
If you would like to do some soldering, or you need equipment for making your project, you can get access to the KTH Kista mentorspace area. If you would like to get access, please send an email to Mark Smith.
Comics
The following comics show various concepts and ideas about computers and computations in an intuitive way. The pictures come from the Computer Science Illustrated Links to an external site. project, developed by graduate students at the University of California, Berkeley Links to an external site.. The pictures are distributed under the CC BY-NC-SA 3.0 Links to an external site. license.
- Caches (Part I Links to an external site., Part II Links to an external site., and Part III Links to an external site.)
- Floating Point Numbers (Part I Links to an external site., Part II Links to an external site., Part III Links to an external site.)
- Number Representation (Part I Links to an external site., Part II Links to an external site., Part III Links to an external site., Part IV Links to an external site.)
- Pointers and Arrays (Part I Links to an external site.)
Other Resources
- Compiler Explorer. Using the following compiler explorer, Links to an external site. you can test different C programs and directly see the ASM code that is generated. You can generate x86, ARM, and MIPS assembler code. Try it out!
- Simple heap. One of the students in a previous course round created this lightweight heap manager Links to an external site..
- x86 Assembly programming. A free book Links to an external site. about Assembly programming in Ubuntu.