COM181 Computer Hardware
Download
Report
Transcript COM181 Computer Hardware
COM181 Computer Hardware
Ian McCrum
Room 5B18, 02890366364
[email protected]
Http://www.eej.ulst.ac.uk/~ian/modules/COM181
Basic Structure
• Lectures 24hrs
• Tutorials 14hrs
• Practicals 10hrs
48 hours:
delivered as
6 sessions of
8+ hours
Independent study (including assessment) 152
hours
Two three day short courses and then study
packs for the intervening period.
This short course focuses on hardware & CPU
design, introduces assembly language.
AIMS
•
•
•
•
•
•
•
•
To introduce the principles that are shaping computing.
To demonstrate that the interaction between hardware and software at a number
of levels provide a framework for understanding the fundamentals of computing.
To develop an appreciation of the computer as a system of interrelated hardware
and software components.
To demonstrate how performance and functionality of a computer system are
directly influenced by decisions taken at the design stage.
To develop an appreciation for the organisational paradigms that determine the
capabilities, performance and success of computer systems.
To develop an appreciation of the role of abstraction in understanding complex
systems.
To provide the opportunity to gain hands-on experience of using a modern
assembly language development environment
To provide the opportunity to gain hands-on experience of building digital circuits
used in a typical computer.
Be able to
•
Describe how programs written in a high level language such as C are
translated into the language of the hardware and how the hardware
executes the resulting program.
•
Explain the interface between the hardware and software and how the
software instructs the hardware to perform needed functions
•
Analyse the various memory types found in modern computers.
•
Analyse what determines the performance of a program and describe
techniques that programmers and hardware designer use to improve
the performance of programs and computing systems
•
Understand environmental issues with repect to the creation, use and
disposal of hardware
•
Make decisions on the upgrading and designing computer components
to improve overall system performance.
•
Analyse computer system specifications to choose a system fit for
purpose..
Professional/Practical and
Transferable skills
•
Produce truth tables and characteristic tables for digital circuits.
•
Write and analyse assembly language programs and use assembly
language
•
Design wiring diagrams for digital circuits used in computers simulation
tools
•
Recognise risk in the operation of computer equipment
•
Exercise initiative and personal responsibility in professional practice
•
Work as an active member of a group/team to complete a specified
task.
•
Work on individual projects and meet deadlines.
•
Reflect on the acquisition of employability related skills
Content
Computer Abstractions and Technology
To provide an overview of computer hardware and software and informally
introduce terms that are dealt with in more depth later in the semester.
Instruction: Language of the Computer
Students will be introduced to operations and operands of the computer
hardware, Instruction representation, logical operations and the MIPs assembly
language
MIPs Assembly language (continued)
MIPs instruction set, translating and starting a program, compiler, assembler,
linker, compiler optimization, understanding programs performance, object
orientated language and the MIPs assembler
Arithmetic for Computers
Number systems, ASCII, binary, hex, signed and unsigned numbers, binaryhexdecimal conversions, Binary - addition, subtraction, multiplication, division,
arithmetic logic unit (ALU), floating point numbers
Content
• Assessing and Understanding Performance
CPU performance and it factors; measuring, evaluating, understanding and improving
performance; performance implications, power, energy efficiency, cost,
• The Processor: Datapath and Control
Logic design conventions, building a datapath – the component of the processor that
performs arithmetic operation, instruction execution, clock cycles, handling exceptions,
the Pentium 4.
• Enhancing Performance with Pipelining
Overview of pipelining, pipelined datapath, pipelined control, issue with pipelining,
performance and pipelining,
• Large and Fast: Exploiting Memory Heirarchy
Memory hierarchy, cache, measuring and improving cache performance, virtual memory,
DRAM, RAM,
• Storage, Networks, and Other Peripherals
Disk storage and dependability; networks; buses and connections between processors,
memory, and I/O devices; interfacing I/O devices to the processor, memory and operating
system; I/O performance measures; disk and file systems; designing an I/O system.
• Multicore, Multiprocessors and Clusters
Programming multiprocessors; Multiprocessors connected by single bus/by a network;
Clusters; Network topologies; Multicore and multithreading
Content
Risk
Assemblers, Linkers and SPIM Simulator
The Basics of Logic Design
Mapping control to hardware
Architectures for Desktop, Server and Embedded
Computers
Environmental issues in the creation, use and disposal
of computing equipment.
Specifics (part 1, Day1)
• Lecture on “The story of ‘1’” Digital signals and circuits. Codes
• Simple digital Logic
– AND, OR gates etc.,
– Multiplexors
– One bit stores (D-type flipflops)
– Registers
– Memory (Read-only, read/write )
• Boolean Logic; designing logic circuits
• Laboratory on manipulating digital circuits (Quartus simulator)
Specifics (part 1: day 2/3)
• What a computer is; a simple CPU
• Designing a simple hypothetical CPU (SHC-01)
• Controlling the parts of the CPU: Control unit
• Classification of machine instructions
• Microcode, The Fetch-Execute cycle
• Improving the CPU
• Improving the Control Unit
• Simple Pipelining (in context of SHC-01)
• Memory Hierarchy (in context of SHC-01)
Specifics (part 1: Day 3)
• An overview of Microprocessors
• An overview of the MIPS family
• The architecture of the MIPS2000
• Its instruction set – the classes of machine instructions
• Simple programs, assembled by hand
• Software tools: assemblers, linkers, compilers, simulators
• Introduction to SPIM
• Tutorials/practicals on running SPIM
• Exercises/assessments for the summer: microcode & MIPS