| 
 Undergraduate Course: Computer Architecture (INFR09009)
Course Outline
| 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 |  
| SCQF Credits | 10 | ECTS Credits | 5 |  
 
| 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. |  
| Course description | 1.Fundamentals Performance evaluation methods and metrics, principles of high performance design, technology issues.
 
 2.Processor Design
 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)
| Pre-requisites |  | Co-requisites |  |  
| 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 
| Pre-requisites | None |  
		| High Demand Course? | Yes |  
Course Delivery Information
| Not being delivered |  
Learning Outcomes 
| 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 parallelismDemonstrate the ability to quantitatively evaluate the performance of a combined processor  and memory system with respect to cycles-per-instruction (CPI) and memory bandwidth  requirementsDemonstrate 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 hierarchyDemonstrate 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 hierarchyDemonstrate an understanding of the memory coherency issues involved when designing a  multiprocessor system, and to explain the behaviour of a typical cache coherency protocol |  
Reading List 
| J.L. Hennessy & D.A. Patterson, Computer Architecture: A Quantitative Approach (5e), Morgan Kaufmann Publishers Inc., 2011. |  
Contacts 
| Course organiser | Dr Vijayanand Nagarajan Tel: (0131 6)51 3440
 Email: vijay.nagarajan@ed.ac.uk
 | Course secretary | Mrs Michelle Bain Tel: (0131 6)51 7607
 Email: michelle.bain@ed.ac.uk
 |  |  |