Computer Organization and Architecture – 14032205 Second Term(1443 AH) Dr. Ahmad Alagil Full Credit of these slides is given to Drs. Mohammad Sinky and AbdulBasit Abid 1 What you will gain in this course? 1. An ability to use MIPS instruction set architecture for assembly language programming 2. An ability to implement MIPS instruction set architecture by building datapath and controller 3. An ability to apply the concepts of pipelining to MIPS datapath and controller 4. An ability to understand and analyze design memory hierarchy 5. An ability to highlight the challenges/issues of modern computer architectures through a technical report/presentation 6. An ability to write assembly language programs using MIPS assembly language 2 Prerequisite • 14031201-4: Digital Logic Design Course Outline • Introduction (Chapter 1) • Performance (Chapter 1) • Instructions: Language of the Computer (Chapter 2) • Simple MIPS (Chapter 4) • Pipelining (Chapter 4) • Datapath and Control (Chapter 4) • Data Hazard (Chapter 4) • Memory Hierarchy (Chapter 5) 3 COMPUTER ORGANIZATION AND DESIGN The Hardware/Software Interface Chapter 1 Computer Abstractions and Technology 5th Edition Progress in computer technology Makes novel applications feasible Underpinned by Moore’s Law Computers in automobiles Cell phones Human genome project World Wide Web Search Engines Computers are pervasive §1.1 Introduction The Computer Revolution Classes of Computers Personal computers General purpose, variety of software Subject to cost/performance tradeoff Server computers Network based High capacity, performance, reliability Range from small servers to building sized Classes of Computers Supercomputers High-end scientific and engineering calculations Highest capability but represent a small fraction of the overall computer market Embedded computers Hidden as components of systems Stringent power/performance/cost constraints The PostPC Era Personal Mobile Device (PMD) Battery operated Connects to the Internet Hundreds of dollars Smart phones, tablets, electronic glasses Cloud computing Warehouse Scale Computers (WSC) Software as a Service (SaaS) Portion of software run on a PMD and a portion run in the Cloud Amazon and Google Design for Moore’s Law Use abstraction to simplify design Make the common case fast Performance via parallelism Performance via pipelining Performance via prediction Hierarchy of memories Dependability via redundancy §1.2 Eight Great Ideas in Computer Architecture Eight Great Ideas Abstraction Layers in Computing Application How do we ensure that application programs are solved correctly by electrons? Gap too large to bridge in one step Physics Muhamed Mudawar – slide 10 Abstraction Layers in Computing Application Algorithms, Programming Languages Compiler, Linker, Run-time Libraries Operating System, Virtual Machines Instruction Set Architecture (ISA) Microarchitecture Logic Gates, Circuits Devices, Layout Physics Muhamed Mudawar – slide 11 Abstraction programs device drivers Hiding details when they aren’t important focus of this course Focus? instructions registers datapaths controllers adders memories AND gates NOT gates amplifiers filters transistors diodes electrons Digital Design and Computer Architecture: ARM® Edition © 2015 Chapter 6 <12> Computer Architecture • Computer Architecture = Instruction set architecture + Computer organization • Why we study computer architecture? To increase computer performance: • Response Time (Execution Time) • Throughput (Total work done per unit time) 13 COMPUTER ARCHITECTURE COMPUTER ORGANIZATION Architecture describes what the computer does Organization describes how it does it Computer Architecture deals with functional behavior of computer system Computer Organization deals with structural relationship it deals with high-level design issue it deals with low-level design issue Architecture indicates its hardware Organization indicates its performance For designing a computer, its architecture is fixed first For designing a computer, organization is decided after its architecture 14 Five Classic Components • Five classic components of a computer: 1. 2. 3. 4. 5. Input Output Memory Datapath Control 15 Opening the Box Chapter 1 — Computer Abstractions and Technology — 16 Opening the Box Capacitive multitouch LCD screen 3.8 V, 25 Watt-hour battery Computer board Inside the Processor (CPU) Datapath: performs operations on data Control: sequences datapath, memory, ... Cache memory Small fast SRAM memory for immediate access to data Inside the Processor Apple A5 What is Under Your Program? • Application software: • Written in high-level language • System software: • Compiler: translates HLL code to assembly code • Operating System: • Linux, Windows … • Handling input/output operations • Managing memory and storage • Hardware: • Processor, memory, … Windows, iOS, Linux Compilers C, C++, Java 20 • Compiler: translates HLL code to assembly code • Commands are called instructions • Assembler: translates assembly code to machine code • Computer understands 0 and 1 (bits) 21 Hardware • Inputting data • Keyboard inputting data outputting data • Outputting data • Speakers • Processing data Hardware • Processor (Datapath & Control) • Storing data processing data storing data • Cache 22 The Hardware/Software interface ISA add $s1, $s2, $s3 beq $s1, $s2, CHECK . . Hardware ISA is the Interface between hardware and lowest level software 23 Summary • A computer processes digital data • A user solves problems by writing and running programs written in a high-level programming language like C • Inside computer, system programs called compiler and assembler break the user program down into assembly code (instruction set) and then into binary machine code • The machine code is processed by the 5-piece hardware (control unit, datapath, memory, input and output) to obtain the desired result 24