Show/hide contentOpenClose All
Curricular information is subject to change
On completion of this module students expected to be able to:
• Write, test and debug MIPS32 assembly language programs.
• Design and simulate simple logic circuits for simple processor.
• Explain the relationships between instruction set architecture, processor design and performance.
• Describe the most common processor organizations, understand how they operate and explain what their advantages and disadvantages are.
• Determine the performance of various design optimisations.
• Explain the operation of the computer memory systems including cache and main memory.
• Explain the operation of Java Virtual Machine and bytecode execution model.
Lecture 1: Introduction
Recaps on the basics of computer architecture and digital logic gates. Lectures 2-9: MIPS Assembly Language Programming
Students learn the syntax of MIPS assembly language and practice writing code fragments in class. Students are introduced to methods used to represent data in MIPS. Students learn the rules for converting MIPS assembly language to machine language and practice conversion examples in class. Students are given an overview of MIPS software development flow. Learning MIPS assembly language programming culminates with a case study examining a BubbleSort program.
Lectures 10-11: MIPS Processor Architecture & Organization
Students study the gate-level implementation of the MIP32 processor. The function and implementation of the main functional units (PC, Register File, ALU, Program RAM, Data RAM) are discussed in detail. Instruction execution is described in the context of the Von Neumann execution cycle.
Lecture 12: Computer Performance
Methods and metrics for evaluating and describing the performance of computer systems are explained. The advantages and disadvantages of various metrics are considered.
Lectures 13-20: Increasing Performance
Students learn about more advanced processor organizations intended to speed up processor execution, namely: multi-cycle execution, pipelining and parallelism. Techniques such as speculation, branch prediction and loop unrolling are explained, together with examples.
Lecture 21: Real-World Processors
The architectures and organizations of other current real-world processors are discussed, in particular, the Intel Architecture.
Lecture 22-24: Java Execution
Students learn how Java bytecode is written and is executed in a Java Virtual Machine. Contrasts will be drawn between the approach used for Java execution and that used in MIPS.
Practical 1-3: MIPS Assembly Language
Writing and verifying MIPS programs using the MARS Simulator. Starting with simple programs and moving to more complex problems involving processing of text and numbers.
Practical 4-5: Mini MIPS Processor
Development and verification of a cut-down MIPS processor implementation in the Logisim gate-level logic simulator. Design and execution of a machine language program on the processor.
Student Effort Type | Hours |
---|---|
Lectures | 24 |
Practical | 22 |
Autonomous Student Learning | 70 |
Total | 116 |
Students are recommended to have taken modules Comp10040 (Introduction to Computer Architecture) and Comp20020 (Digital Systems) or the equivalent of these modules.
Description | Timing | Component Scale | % of Final Grade | ||
---|---|---|---|---|---|
Assignment: 5 assignments | Varies over the Trimester | n/a | Alternative linear conversion grade scale 40% | No | 30 |
Examination: End of semester examination | 2 hour End of Trimester Exam | No | Alternative linear conversion grade scale 40% | No | 70 |
Resit In | Terminal Exam |
---|---|
Spring | Yes - 2 Hour |
• Feedback individually to students, post-assessment
Mark and written feedback will be provided online for submitted assignments.
Name | Role |
---|---|
Dr Arsalan Shahid | Lecturer / Co-Lecturer |
Dr Xiaoyu Du | Tutor |
Eric Gyamfi | Tutor |