Undergraduate Course: Computer Architecture (INFR09009)
|School||School of Informatics
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 9 (Year 3 Undergraduate)
||Availability||Available to all students
|Summary||Computer architecture is about optimising the design of computer hardware and software under constraints of time, cost and power consumption. Over the years, improvements in technology and advances in computer architecture have resulted in huge increases in computer performance. This course examines the fundamentals of high-performance computer architecture and looks at how the interface between hardware and software (architecture and compiler) influences performance.
Performance evaluation methods and metrics, principles of high performance design, technology issues.
Instruction set classes, registers, memory addressing. Pipeline design, pipeline hazards & interlocks, out-of-order execution, scoreboards and reservation stations. Control prediction techniques and their exploitation. Techniques for exploting instruction- and loop-level parallelism.
3.Memory System Design
Memory hierarchies. Basic cache design and improvements. Main memory design and advanced organisations.
4.Introduction to Multiprocessors
Multiprocessor organisations. Cache coherence.
Relevant QAA Computing Curriculum Sections: Architecture
Entry Requirements (not applicable to Visiting Students)
|Prohibited Combinations|| Students MUST NOT also be taking
Computer Architecture and Design (INFR10076)
||Other requirements|| This course is open to all Informatics students including those on joint degrees. For external students where this course is not listed in your DPT, please seek special permission from the course organiser.
Information for Visiting Students
|High Demand Course?
Course Delivery Information
|Not being delivered|
On completion of this course, the student will be able to:
- Demonstrate the ability to describe the structure and operational characteristics of a pipelined microprocessor, and to explain principles of: orthogonal instruction set design; pipeline hazards and interlocks; out of order execution; scoreboards and reservation stations and their use; branch prediction (both static and dynamic); and techniques (both software and hardware) for exploiting loop-level parallelism
- Demonstrate the ability to quantitatively evaluate the performance of a combined processor and memory system with respect to cycles-per-instruction (CPI) and memory bandwidth requirements
- Demonstrate the ability to explain the principle of memory locality, to show how a memory hierarchy exploits the various forms of locality, and to analyze the performance of a memory hierarchy
- Demonstrate the ability to design, in outline, a memory hierarchy, and to specify reasonable parameters for each configuration point (capacity, associativity, block size, and write policies) at each level in the hierarchy
- Demonstrate an understanding of the memory coherency issues involved when designing a multiprocessor system, and to explain the behaviour of a typical cache coherency protocol
|J.L. Hennessy & D.A. Patterson, Computer Architecture: A Quantitative Approach (5e), Morgan Kaufmann Publishers Inc., 2011.|
|Course organiser||Dr Vijayanand Nagarajan
Tel: (0131 6)51 3440
|Course secretary||Mrs Michelle Bain
Tel: (0131 6)51 7607