Run by School of Computer Science and Electronic Engineering
10 Credits or 5 ECTS Credits
Organiser: Dr David Edward Perkins
Overall aims and purpose
To introduce students to: the structure and components of a computer system; methods of data storage and manipulation; the concept of a multi-level machine; assembly and machine languages; the fetch-execute cycle; a range of architectures; micro-code; systems software.
- Concept of a von Neumann machine; CPU; Memory; Secondary Storage; Input and Output Devices; Bus System.
- Bits, nibbles and bytes; measuring data; place system of value; binary, octal, decimal and hexadecimal number systems; signed numbers; complement systems; binary arithmetic; floating point representation; logical operations.
- Digital level; two state machines; NOT, AND, OR, NOR, NAND, XOR gates; simple combinational circuits; micro-architecture level; building registers from bistable circuits; clock synchronization; half and full adders; construction of an ALU; role of the PSR.
- Micro-instructions; machine code; instruction format; opcodes and operands; assembly languages; production rules for programming languages; stacks and subroutines; CISC and RISC architectures.
- Fetch-execute cycle; CPU and memory models; assembly language programming; interrupts; addressing modes; input and output systems.
- System development software – interpreters, compilers, assemblers, linkers, loaders; editors; IDEs.
Learning outcomes mapped to assessment criteria
Demonstrate an understanding of the structure and components of a digital computer
|Provide a detailed description of the fundamental CPU components- registers, ALU and CU; describe how data is stored and accessed in RAM; describe a range of storage and IO technologies.||Provide a clear account of how data is transferred between the various components of a computer system.||Identify the principle components of a computer system and outline their function.|
Understand how data can be stored digitally; make use of common units of measurement e.g.KB, MB GB etc; understand and make use of various number systems.
|Perform base conversions; perform binary addition using twos complement arithmetic; perform a variety of bitwise operations.||Describe the IEEE 754 standard for floating point representation.||Understand the various units of data measurement; recognize and understand binary, octal and hexadecimal number systems.|
Describe the operation of the standard gates; understand how gates can be combined to produce registers and ALUs and other components of the micro-architecture level.
|Describe the function of various micro-architecture components e.g. half and full adders, the ALU, the role of the PSR.||Understand and describe in detail the internal structure of at least one micro-architecture component.||Identify and understand the operation of the standard logic gates; design simple combinational circuits.|
Describe the role of micro-code; understand the relation between the ISA and assembly language levels; understand a variety of assembly language instructions.
|Translate selected assembly language instructions into machine code; describe the operation of a variety of more advanced assembly language instructions (e.g. stack operations); distinguish between CISC and RISC architectures; describe the relation between the ISA and micro-code levels.||Translate short fragments of a high-level language into assembly language programs; construct ISA level instructions from micro-code instructions||Specify the operational semantics of a range of basic assembly language instructions; understand relation between assembly language and machine code.|
Analyse the fetch-execute cycle as it applies to a range of assembly language instructions.
|Identify and describe in general the sequence of steps involved in the fetch-execute cycle.||Provide a detailed trace for specific instructions during the course of the fetch-execute cycle; understand a range of addressing modes; describe how IO is managed.||Describe the role of interrupts and how they are dealt with during the course of the fetch-execute cycle; compare different IO schemes.|
Recognise system development software.; understand the difference between various kinds of language processors.
|Describe in outline the function of various kinds of systems software,||Explain how systems software figures in a multi-level view of a computer system.||Clearly distinguish different types of language processors and system development tools.|
|EXAM||Closed Book Examination||60|
|COURSEWORK||Pair Product Development Project||30|
Teaching and Learning Strategy
24 hours over 12 weeks
Laboratory preparation and reports
ASSESSED assignments, including tutorial questions. The group project will also take a good quantity of this time
- Literacy - Proficiency in reading and writing through a variety of media
- Numeracy - Proficiency in using numbers at appropriate levels of accuracy
- Computer Literacy - Proficiency in using a varied range of computer software
- Self-Management - Able to work unsupervised in an efficient, punctual and structured manner. To examine the outcomes of tasks and events, and judge levels of quality and importance
- Exploring - Able to investigate, research and consider alternatives
- Critical analysis & Problem Solving - Able to deconstruct and analyse problems or complex situations. To find solutions to problems through analyses and exploration of all possibilities using appropriate methods, rescources and creativity.
- Safety-Consciousness - Having an awareness of your immediate environment, and confidence in adhering to health and safety regulations
- Teamwork - Able to constructively cooperate with others on a common task, and/or be part of a day-to-day working team
Subject specific skills
- Knowledge and understanding of facts, concepts, principles & theories
- Use of such knowledge in modelling and design
- Problem solving strategies
- Deploy theory in design, implementation and evaluation of systems
- Specify, design or construct computer-based systems
- Evaluate systems in terms of quality and trade-offs
- Methods, techniques and tools for information modelling, management and security
- Knowledge of systems architecture
- Defining problems, managing design process and evaluating outcomes
- Knowledge and/or understanding of appropriate scientific and engineering principles
- Knowledge and understanding of mathematical principles
Pre- and Co-requisite Modules
Courses including this module
Compulsory in courses:
- H612: BEng Computer Systs Eng (3 yrs) year 1 (BENG/CSE)
- H61B: BEng Computer Sys Engineering (4yr with Incorp Foundation) year 1 (BENG/CSE1)
- H610: BENG Electronic Engineering (3 yrs) year 1 (BENG/ELE)
- H62B: BEng Electronic Engineering (4yr with Incorp Foundation) year 1 (BENG/ELE1)
- H621: BEng Electronic Engineering with International Experience year 1 (BENG/ELEIE)
- G40B: BSc Computer Science (4 year with Incorporated Foundation) year 1 (BSC/CS1)
- H64B: BSc Computer Sys Engineering (4yr with Incorp Foundation) year 1 (BSC/CSE1)
- H603: BSc Computer Systems Engineering year 1 (BSC/CSENG)
- I102: BSc Computer Science (with International Experience) year 1 (BSC/CSIE)
- H611: BSc Electronic Engineering year 1 (BSC/ELE)
- H63B: BSc Electronic Engineering (4yr with Incorp Foundation) year 1 (BSC/ELE1)
- H661: MEng Control and Instrumentation Engineering year 1 (MENG/CIE)
- H660: MEng Critical Safety Engineering year 1 (MENG/CRSEN)
- H617: MEng Computer Systs Eng (4 yrs) year 1 (MENG/CSE)
- H619: MEng Computer Systems Engineering (with International Exper) year 1 (MENG/CSEIE)
- H601: MEng Electronic Engineering (4 yrs) year 1 (MENG/EE)
- H618: MEng Electronic Engineering with International Experience year 1 (MENG/EEIE)