This course will teach the fundamentals of Computer Organization and Architecture and elaborate on the Application Binary Interfaces described in Course CS2300.
Hardware support for segmentation, paging, interrupt service, task switching, instruction set architecture and addressing modes, performance enhancement through Instruction level parallelism, branch prediction, pipelined arithmetic units, caches, translation look-aside buffers and multi core. Advanced techniques for cache-coherency in multi-core architecture.
The Lab part shall include assembly language programming to demonstrate translation of standard programming language constructs, setting up hardware assisted structures to demonstrate segmentation, interrupt service, task context maintenance and paging.
- Computer Architecture and Organization – Designing for Performance, William Stallings, Ninth edition, Pearson Education series, 2014.
- Computer Organization and Design – The Hardware/Software Interface, David A. Patterson and John L. Hennessy, Fifth Edition, Morgan Kaufmann, 2013