Unit name | Overview of Computer Architecture |
---|---|
Unit code | COMSM1302 |
Credit points | 20 |
Level of study | M/7 |
Teaching block(s) |
Teaching Block 1 (weeks 1 - 12) |
Unit director | Professor. Eder |
Open unit status | Not open |
Pre-requisites |
None |
Co-requisites |
None |
School/department | School of Computer Science |
Faculty | Faculty of Engineering |
This unit introduces students to how a computer works, linking high-level programming languages to the hardware on which programs are executed. The unit starts from basic digital electronics and gradually builds up to the design of a simple computer system.
The major topics covered are:
1. Fundamentals: Data representation, Boolean algebra and digital electronics, using transistors to build simple logic gates, historical background.
2. Building blocks: Arithmetic operations, storage, building flip-flops, registers, multiplexors etc., memory organization and types.
3. Simple controllers: Finite State Machines, counter machines, logic optimization using Karnaugh maps, controller implementation.
4. Processor design: Designing a processor to execute programs, including von Neumann and Harvard architectures, instruction set design with an introduction of CISC and RISC, the fetch-decode-execute cycle, data and control path.
5. Assembly languages and compilers: Assembly code, control structures including branching and loops, functions, stacks, assemblers, compiler phases, grammars, syntax and semantics of programming languages, typing and intermediate representation, optimization and code generation.
At this point students will be able to understand how a computer functions as a whole. They will be expected to design, build and test a simple computer system.
6. Energy aware computing: Energy consumption of computing, energy transparency, measuring energy of computing, basic introduction to static analysis for energy consumption, latest research on energy-aware computing.
On successful completion of this unit students will be able to:
1. Demonstrate a basic understanding of digital electronics and the components used in the design of computer systems.
2. Explain the design and operation of the principal components of a computer, including both hardware as well as software and how they interact.
3. Show how high-level programs are executed in hardware, by performing simple computations at various levels of abstraction in the machine.
4. Appreciate the impact of ICT on energy consumption and realize how important a good understanding of computer architecture is for programmers to develop more energy efficient code.
2 lectures per week supported by a combination of weekly laboratory sessions and problem classes
Contact Hours Per Week:
5 hours, including 2h of lectures, 2h of laboratory sessions and a 1h drop-in problem class
Assessment will be by in-class tests (20% and 30%) and exam (50%).
M Morris Mano. Computer System Architecture. Pearson Higher Education. 1992. ISBN: 0131757385 Essential A. Tanenbaum. Structured Computer Organization. Prentice Hall, 2005. ISBN: 0-131-48521-0 Background