Computer Systems
TIC2401 Introduction to Computer Systems: Zoom Lesson 1: 12th Jan 2021
In this lesson, we first discuss the scope of this module and the learning outcomes that we aim to achieve. We then view the Computer Architecture of a system from a high-level perspective. Following that, we start with our recap of the C Programming Language. |
TIC2401 Introduction to Computer Systems: Zoom Lesson 2: 19th Jan 2021
In this lesson, we complete our review of C Programming basics. We discuss concepts like Loops, if-else statements, and operators. Following that, we move onto Number Systems and learn how to convert between the different formats like Binary, Octal, and Hexadecimal. We also talk about the Complement operation and how we represent Negative Numbers. |
TIC2401 Introduction to Computer Systems: Zoom Lesson 3: 26th Jan 2021
In this video, we first the concept of Overflow in Arithmetic Operations. We then move on to understanding the IEEE 754 floating-point format. With that, the topic on Number Systems is complete and we move on to discuss the questions from Tutorial 1. We then start on the topic of MIPS. The basics of the Fetch, Decode and Execute cycle are discussed, and we carry on with some Assembly Language Programming. |
TIC2401 Introduction to Computer Systems: Zoom Lesson 5: 9th Feb 2021
In this lesson, we first review Tutorial 2 which covers both C programming and Assembly Language Programming. Following that, we look at how we can use the QtSPIM software simulator to test our MIPS assembly language code. We then move onto the chapter on Instruction Encoding and understand how the different R-type, I-type, and J-type instructions are encoded in MIPS. |
TIC2401 Introduction to Computer Systems: Zoom Lesson 6: 16th Feb 2021
In this Lecture, we focus on the Datapath of the MIPS processor. We look at how the various bits of the instruction are used to activate different peripheral subsystems. We look at how data flows through the processor from one stage to the next until the instruction is complete. |
TIC2401 Introduction to Computer Systems: Zoom Lesson 7: 2nd Mar 2021
In this lesson, we recap on the Datapath of the MIPS and discuss the operation of the Control block. We understand how the various control signals are generated and their effect on the flow of data through the processor. We then review the Tutorial 3 Questions that give us a good overview of both the Datapath and Control blocks of the MIPS. |
TIC2401 Introduction to Computer Systems: Zoom Lesson 8: 9th Mar 2021
In this lesson, we first review the concepts of Interrupts and DMA and understand how a Computing System is able to make use of these techniques to improve the efficiency of the system. We then look at various software architectures like the polled-loop, background/foreground, and function queue scheduling. An examination of the demands and timing constraints of a self-driving car is done, and this gives us the right motivation to move towards developing an architecture that runs on a Real-Time Operating System. |
TIC2401 Introduction to Computer Systems: Zoom Lesson 9: 16th Mar 2021
In this lesson, we focus on 2 main concepts in OS. The first is on the topic of Mutex. We understand what is a critical section and how data corruption can occur when it is not properly protected. From there, we see how a Mutex is able to protect access to a shared resource to prevent data corruption. The next topic is on Semaphores. We understand the idea of resource sharing and how we can use semaphores to manage the allocation of resources to various tasks. |
TIC2401 Introduction to Computer Systems: Zoom Lesson 10: 23th Mar 2021
In this lesson, we review two main concepts of using Messages to allow tasks to send data to each other while achieving synchronization. We first look at message passing through a Generic Queue. We then look at the concept of TaskQueues and see how it can be implemented in the uCOS III. |
TIC2401 Introduction to Computer Systems: Zoom Lesson 11: 30th Mar 2021
In this lesson, we look at some other concepts of real-time systems like Reentrant Functions, Watchdog Timers, Deadlocks, etc. With all of that done, we can wrap up the section on OS. We then look at Cache Design. We understand how a Direct-Mapped Cache works and how it actually helps improve the overall efficiency of the Computing System. |