Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
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