CS2300 - Foundations of Computer Systems Design

Course Data :

Course Objectives

This course is intended to understand the different components of a computer system, namely, digital hardware, the microarchitecture, the operating systems and the compilers, and their interconnection.

Course Contents

Introduction: Functional components of a computer system, Interaction among functional components.
Design of Arithmetic and Logic Unit: Digital logic gates, Boolean algebra, Simplification of Boolean Expressions, Combinational logic circuits – Encoder, Decoder, Multiplexer and Demultiplexer; Representation of integer data, Integer adders, Integer multipliers, Design of integer unit, Floating point representation of real data, Floating-point adder/subtractor, Floating-point multiplier, Design of Floating point unit.
Design of Register File and Memory Unit: Flip-flops, Synchronous sequential circuits – Registers and Counters; Memory unit.
Generation and Execution of Machine Code: Instruction set architecture of a simple CPU, Assembler, Code generation, Application binary interface, Microarchitecture of CPU, Execution of machine code.
Processing of High Level Language Code: Virtual machine, Interpreter, A simple compiler, Fundamentals of operating system.

Text Books

  • N. Nisan and S. Schocken, The Elements of Computing Systems – Building a Modern Computer from First Principles, The MIT Press, 2005.
  • C.H. Roth and L.L.Kinney, Fundamentals of Logic Design, 7th Edition, Cengage Learning, 2014.
  • C.Hamacher, Z.Vranesic, S.Zaky and N.Manjikian, Computer Organization and Embedded Systems, 6th Edition, McGraw-Hill, 2012.

Reference Books

  • S. Brown and Z Vranesic, Fundamentals of Digital Logic with VHDL Design, McGraw-Hill Education, 3rd Ed, 2009.



Credits Type Date of Introduction
3-0-0-0-6-9 Core Jul 2015

Previous Instances of the Course

© 2016 - All Rights Reserved - Dept of CSE, IIT Madras
Website Credits