COMP15111: Fundamentals of Computer Architecture (2011-2012)
This unit aims to introduce computer instruction sets and the binary representation of information, by exploring the relationship between high-level language programs and the basic structure and operation of digital computers, including the process that implements this relationship. Java and the ARM processor are used as exemplars. Practical experience is gained in the laboratory through exercises which progressively expose features of the ARM instruction set. The course-unit aims to serve as an essential foundation for further studies in the single honours Computer Science degree programme.
|Programme outcome||Unit learning outcomes||Assessment|
|A3||Understand the basic Von Neumann/Imperative computational model.|
|A3||Understand the binary nature of digital computers, and how bit patterns can be used to represent such things as characters, numbers and instructions.|
|A3||Understand the essentials of the ARM instruction set and its registers.|
|C5 C6||Be able to understand the basics of assembly language programs.|
|A3||Understand the correspondence between imperative code & data and assembly language.|
|A3||Be aware of the role of Compiler, Assembler, Library, Linker, Loader, Interpreter and Operating System, and of some of the interactions between these and the underlying computer hardware.|
Introduction: Processors, simple ARM programs, binary representations, fetch-execute cycle, registers 
ARM code for imperative constructs: Basic data types and expressions, data structures, control structures, functions, input/output, interrupts 
System software: Operating Systems, Assemblers, Compilers, Libraries, Loaders, Interpreters, JVM 
There are no books that cover the syllabus exactly. However, here are three books that give information about the ARM processor, that you may want to refer to. The book by William Hohl is the most relevant, but he introduces topics in a completely different order and goes into a lot more detail than we do.
The Library has 23 copies; see http://catalogue.library.manchester.ac.uk/; then type in ?ARM Assembly Language: fundamentals and techniques?; then click ?search?; then click ?Check Availability?; and it will tell you where they are [which Library location] and ask if you would like to ?Reserve this item?.
Core TextTitle: ARM Assembly Language: fundamentals and techniques (2nd edition)
Author: Hohl, William and Christopher Hinds
Publisher: CRC Press
As it states at the start: "This book may be 14 years late...", ref. pp. xiv [in Preface]; a quote from a reviewer: "It's easy to read and the book isn't filled with Greek letters just to make it sound scholarly." will help you buy a copy...
Title: ARM system-on-chip architecture (2nd edition)
Author: Furber, Steve
Publisher: Addison Wesley
This book is a detailed look at the ARM and its variants with a lot of information on its use in embedded systems. A definitive guide written by the man responsible for much of the first design. The book covers the basic material and then examines the lat
Title: Principles of computer hardware (4th edition)
Author: Clements, Alan
Publisher: Oxford University Press
This book covers several 1st year courses and is a good introduction to Computer Architecture and peripherals. Note that the 2nd edition is not suitable as it does not cover the ARM processor.