![[The University of Leicester]](http://www.le.ac.uk/corporateid/departmentresource/000066/unilogo.gif) | Department of Mathematics & Computer Science |
 |
Next: MC117 Operating Systems and Networks
Up: Year 1
Previous: MC115 Information Systems
MC116 Computer Systems
Credits: 20 |
Convenor: Dr. R. Crole |
Semester: 1 |
Prerequisites: |
|
|
Assessment: |
Coursework: 30% |
Three hour exam in January: 70% |
Lectures: |
36 |
Problem Classes: |
12 |
Tutorials: |
none |
Private Study: |
90 |
Labs: |
none |
Seminars: |
none |
Project: |
none |
Other: |
none |
Surgeries: |
12 |
Total: |
150 |
Explanation of Pre-requisites
No specific knowledge is required, but a very rudimentary
understanding of logic and discrete mathematics will be helpful.
Course Description
While modern computers are complex devices, there are a small number
of key components from which the majority of computers can be seen to
be composed. This module will provide a broad picture of a modern
computer, covering hardware and software. The course will teach
details of processors, memory, and external storage, concentrating on
the internal details of processors and memory. In particular, the
course will cover the low level languages (such as assembler) which
allow programmers to write elementary programs and communicate
directly with the machine, the instruction set architecture (which
describes the composition of the processor, and how assembly programs
actually effect direct operation of the computer through machine
instructions), and finally microprograms, which manage and control the
execution of machine instructions on the processor.
Aims
This module aims to teach the basic details and principles of the
structure and operation of a modern computer. The main components of a
computer will be described broadly, these being memory and the memory
hierarchy, processors (control and the datapath), the software/hardware
interface, the concept of high and low level languages, and the
relationship of high and low level languages via translation and
interpretation.
Objectives
- Students will have broad knowledge of memory, processors,
the software/hardware interface, and the language
hierarchy.
- Students will have broad knowledge of binary numbers, addition
and subtraction, and a technical appreciation of arithmetic overflow.
- Ability to understand and manipulate binary arithmetic
algorithms.
- A basic understanding of
propositional logic, and representations of propositions
via digital circuits. The ability to solve problems in
truth tables, and circuit construction by standard methods.
- Knowledge of fundamental digital circuits, both combinational
and sequential, and applications such as construction of register
files.
- Knowledge of the
MIPS instruction set, and ability to write very simple
programs. Students will have a technical grasp of MIPS syntax and
formal semantics.
- Knowledge of datapath and control, and the detailed make up of a
simplified processor for the execution of a very small subset of MIPS.
Ability to solve new problems concerning execution of unseen
instructions.
- An understanding of computer
performance, such that students can manipulate performance equations
to make informed comparisons of processors and languages.
- Students will understand how to improve performance, and the
underlying ideas behind performance.
Transferable Skills
The ability to combine factual knowledge with problem solving skills
will pervade the course, and will benefit students within academia and
in real life computing situations. The course will be designed to
ensure students understand how to apply their understanding of
computer systems to those not specifically detailed in the module.
Syllabus
Examples throughout the course will be based on the MIPS
Instruction Set Architecture.
The top level view of a modern computer: memory, processors,
the software/hardware interface, microprograms,
instruction set architecture, assembly language and the operating
system.
The binary number system, elementary logic, and
truthtables. Binary arithmetic: basic definitions, algorithms for
computing arithmetic operations. 2s-complement integers, overflow and
correctness.
Basic digital electronics: gates for implementing
(Boolean models of) simple logical propositions, and the composition
of gates to make more complex circuits. Multiplexors, decoders, and
related circuits. Clocks. Implementation of atomic Arithmetic
Logic Units (ALUs) via digital
circuits. Construction of a 32-bit ALU. Simple memory
circuits, including caches. Register files.
The
MIPS instruction set and
simple MIPS programs. A subset of the MIPS language treated in detail
at the assembly and machine levels. Semantics, machine fields, branch
calculations, and assembly/machine translations.
Construction of a simple
datapath via
composition of atomic ALUs. Description of MIPS control program. The
interaction of the datapath and control to make a processor. Computing
performance: the performance equation and Amdahl's law.
Reading list
Recommended:
Hennessy and Patterson,
Computer Organization and Design,
Morgan Kaufmann, 1998.
Tanenbaum,
Structured Computer Organization,
Prentice Hall, 1998 (fourth edition).
Stallings,
Computer Organization and Architecture,
Prentice Hall, 2000 (fifth edition).
Background:
Baron and Higbie,
Computer Architecture,
Addison Wesley, 1992.
Clements,
The Principles of Computer Hardware,
Oxford University Press, 2000 (third edition).
Hayes,
Computer Architecture and Organization, 3rd edition,
McGraw Hill, 2000.
Hamacher, Vranesic and Zaky,
Computer Organization, 4th edition,
McGraw Hill, 1996.
MacCabe,
Computer Systems,
Irwin, 1993.
Mano,
Computer System Architecture, 3rd edition,
Prentice Hall, 1993.
Willis,
Computer Architecture and Communications, 2nd edition,
McGraw Hill, 1994.
Next: MC117 Operating Systems and Networks
Up: Year 1
Previous: MC115 Information Systems
Author: S. J. Ambler, tel: +44 (0)116 252 3884
Last updated: 2001-09-20
MCS Web Maintainer
This document has been approved by the Head of Department.
© University of Leicester.