* Memory hiearchies, hardware for virtual memory management and memory protection
* Software and hardware methods for utilizing instruction level parallelism
* Orientation about thread level parallelism and hardware mechanisms to utilize thread level parallelism
* Orientation about shared memory and memory coherence
The overall objective with the course is to give knowledge and insights into the design of modern computers, in particular the processor design including parallel computational pipelines and advanced memory hierarchies.
The student should, for a passing grade, be able to>
* account for the basic quantitative principles of computer design,
* explain the design and function of microprocessors with parallel computational pipelines and dynamic scheduling of instructions,
* explain the design and function of a memory hierarchy for the above mentioned microprocessor,
* explain the design and function of a multi-core processor with shared address space,
* identify and predict a program behaviour favoured by a certain microarchitecture of a processor,
* design and implement a simple parallel program with shared memory and explain its performance on a certain processor architecture with multiple cores,
* describe how simulation can be used to evaluate different architectural alternatives,
* propose and motivate a modification to a processor architecture which has potential to improve performance with the same power consumption,
* propose and motivate a modification to a processor architecture which has potential to lower the power consumption with the same performance
Furthermore, the student should be able to plan and carry out a simple research study within the context of the course.