Objective:

  • To learn the internal organization of CPU and physical memory unit, different types of instruction set architecture used in CPUs, hardware support for operating system functions, I/O subsystem design, and hardware support for security.
Course Contents:
  • Basics of Computer Organization: Digital logic level, Microarchitecture, Instruction set architecture design, Basic arithmetic circuits, Assembly programming.
  • Memory Management: Memory management on x86 and ARM platforms, Segmentation, Paging and virtual memory, Multi-level memory protection, Cache organization, Microkernel design in assembly language for memory management.
  • Hardware for Process Management: Hardware support for advanced scheduling concepts, Inter and intra process protection, Interrupt service routines.
  • Input/Output Subsystem: Direct Memory Access, Peripheral interfaces like SPI, I2C, PCIe, Block devices, Embedded system architecture.
  • Hardware Security: Crypto accelerators, Trusted platform module, High assurance boot and tamper detect, Hardware based side-channel attacks.
Lab:
  • Assembly Programming: Demonstrating assembly programming by implementing standard high level language constructs, segmentation, task switching, interrupt service routines, paging. Embedded ARM kit peripheral interfacing.
Reference Books:
  • A.S. Tanenbaum and T. Austin. Structured Computer Organization, Pearson Education, 6th Edition, 2016.
  • C. Hamacher, Z. Vranesic, S. Zaky, and N. Manjikian. Computer Organization and Embedded Systems, McGraw-Hill, 6th Edition, 2012.
  • J.L. Hennessy and D.A. Patterson. Computer Organization and Design -- The Hardware/Software Interface, Elsevier, 5th Edition, 2014.
  • W. Stallings. Computer Organization and Architecture -- Designing for Performance, Pearson Education, 10th Edition, 2016.