CS 219 Computer Organization DR. SIMING LIU SPRING 2016 COMPUTER SCIENCE AND ENGINEERING UNIVERSITY OF NEVADA, RENO Session 1 – Course Contents Overview Overview of computer technologies Instruction set architecture (ISA) ISA design considerations RISC vs CISC Performance evaluation Assembly and machine language Instructions, Register Flow of control, Addressing mode Computer Arithmetic Number presentation Addition, subtraction, multiplication, and division Processor Arithmetic logic unit (ALU) Floating-point numbers and their arithmetic implementation Pipelining, Hazards, Pipelined processor design Memory Hierarchy, principles, structure, and performance of caches Storage, I/O, and Parallel Introduction This course is all about how computers work But what do we mean by a computer? Different types: desktop, servers, embedded devices Different uses: automobile, graphics, finance Different manufacturers: Intel, AMD, Apple, IBM, HP, Dell,… Different underlying technologies and different costs Best way to learn: Focus on a specific instance and learn how it works While learning general principles and historical perspectives Why learn computer organization? You want to call yourself a “computer engineer” You want to build software people use (performance) You need to make a purchasing decision Both Hardware and Software affect performance Algorithm determines number of source level statements Language/Compiler/Architecture determine machine instructions Processor/Memory determine how fast instructions are executed Chapter 2, 3 Chapter 4, 5 I/O and multiple cores determine overall system performance Chapter 6, 7 Organization of a Computer The BIG Picture Five classic components Control Datapath Memory Input Output What is a computer? Components: Input (mouse, keyboard) Output (monitor, printer) Memory (DRAM, SRAM, Disk Drives, DVD) Processor Our primary focus: the processor (datapath and control) Implemented using billions of transistors Impossible to understand by looking at each transistor We need … Abstraction! An abstraction omits unneeded detail, helps us cope with complexity. How do computers work? Need to understand abstractions such as: Application software System software Assembly language Machine language Architectural issues Arithmetic, logic Boolean logic, 1 and 0 Transistors used to build logic gate Semiconductors/Silicon used to build transistors Properties of atoms and electrons So much to learn! Computer Architecture Application Operation System Compiler Assembler Instruction Set Architecture Processor Memory Logic Design Hardware Implementation Circuit Design Layout I/O System Computer Architecture Instruction Set: a Critical Interface software instruction set hardware Instruction Set Architecture (ISA) ISA – the abstract interface between the hardware and the lowest level software that encompasses all the information necessary to write a machine language program, including instructions, registers, memory access, I/O. Enables implementations of varying cost and performance to run identical software Instruction Set Architecture “... the attributes of a computing system as seen by the programmer, i.e., the conceptual structure and functional behavior, as distinct from the organization of the data flows and controls, the logic design, and the physical implementation.” – Amdahl, Blaauw, and Brooks, 1964 SOFTWARE ISA includes Organization of storage Data types Encoding and representing instructions Instruction Set Modes of addressing data items Program visible exception handling Instruction Set Architecture A very important abstraction Interface between hardware and low-level software Standardizes instructions, machine language Advantage: different implementations of the same architecture Disadvantage: sometimes prevents using new innovations Common instruction set architectures: x86, PowerPC, MIPS, SPARC, ARM and others Case Study: MIPS ISA Instruction Categories Load/Store Arithmetic Jump and Branch Floating Point Memory Management Special 3 Instruction types, 32 bits wide OP rs rt rd sa funct OP rs rt immediate OP Jump target R0 - R31 PC Hi Lo