Chapter_01-RISC-V

Page 1: Introduction

  • Title: Computer Organization and Design: RISC-V Edition

  • Focus: Hardware/Software Interface

  • Book by Morgan Kaufmann

  • Chapter 1: Computer Abstractions and Technology

Page 2: The Computer Revolution

  • Notable Progress in Computer Technology

  • Moore’s Law as a foundation for progress

    • Prediction: Transistors on chips double approximately every two years

  • Innovation driven by computing capabilities

    • Examples of applications:

      • Computers in automobiles

      • Evolution of cell phones

      • Human genome project

      • World Wide Web emergence

      • Development of search engines

  • Computers are pervasive in daily life

Page 3: Classes of Computers

  • Personal Computers

    • General-purpose with a variety of software available

    • Subject to cost/performance tradeoff

  • Server Computers

    • Designed for network services

    • High capacity and performance, reliable

    • Range from small to large-scale servers

Page 4: Classes of Computers (continued)

  • Supercomputers

    • Used for advanced scientific and engineering calculations

    • Highest performance in computing; low market share

  • Embedded Computers

    • Integrated into other devices

    • Designed with strict power, performance, and cost constraints

Page 5: The PostPC Era

  • Sales trend for devices from 2007 to 2012:

    • Decline in personal computers vs surge in smartphones and tablets

Page 6: The PostPC Era (continued)

  • Definition of Personal Mobile Devices (PMD):

    • Battery-operated

    • Internet connectivity

    • Price in hundreds of dollars

  • Examples include smartphones, tablets, and electronic glasses

  • Introduction of cloud computing

    • Concept of Warehouse Scale Computers (WSC)

    • Software as a Service (SaaS) integrating cloud and local usage

    • Prominent companies: Amazon and Google

Page 7: What You Will Learn

  • Focus Areas:

    • Translation of programs into machine language and hardware execution

    • Understanding the hardware/software interface

    • Factors affecting program performance and ways to improve it

    • Role of hardware designers in performance improvement

    • Basics of parallel processing

Page 8: Understanding Performance

  • Key Factors in Performance:

    • Algorithm: determines the number of operations executed

    • Programming Language, Compiler, Architecture: affect machine instructions per operation

    • Processor and Memory System: influence execution speed of instructions

    • I/O System (including OS): impacts the speed of I/O operations

Page 9: Eight Great Ideas

  • Core Design Principles:

    • Design for Moore’s Law

    • Abstraction in design for simplification

    • Optimize for common-case performance

    • Enhance performance through parallelism and pipelining

    • Utilize prediction for efficient operations

    • Structure memory in hierarchical layers

    • Implement redundancy for dependability

Page 10: Below Your Program

  • Application Software:

    • Created in high-level languages

  • System Software:

    • Compiler: Converts high-level code to machine code

    • Operating System: Handles I/O, memory management, task scheduling

  • Components of Hardware:

    • Includes processor, memory, and I/O controllers

Page 11: Levels of Program Code

  • High-level Language:

    • Closer to user needs; enhances productivity and portability

  • Assembly Language:

    • Lower-level; more hardware-oriented textual representation

  • Hardware Representation:

    • Basis in binary digits (bits) for instructions and data

Page 12: Components of a Computer

  • Fundamental components are uniform across all computer types:

    • Input/Output:

      • User interface devices (display, keyboard, mouse)

      • Storage devices (hard disk, CD/DVD, flash)

      • Network adapters for communication

Page 13: Touchscreen

  • Definition: PostPC device replacing keyboard and mouse

  • Types include resistive and capacitive touch technologies

    • Capacitive touch allows for multiple simultaneous touches

Page 14: Through the Looking Glass

  • LCD screens: made of picture elements (pixels)

  • Function: Mirrors the content of frame buffer memory

Page 15: Opening the Box

  • Internal Components of a PostPC Device:

    • Capacitive multitouch LCD screen, battery, computer board

Page 16: Inside the Processor (CPU)

  • Key Functionalities:

    • Datapath: Executes data operations

    • Control: Manages sequences of operations involving datapath and memory

    • Cache Memory: Fast SRAM for immediate data access

Page 17: Inside the Processor - Apple A5

  • Components layout and function:

    • CPU data paths, GPIO, processor cores, logic blocks, memory interfaces

Page 18: Abstractions

  • Concept of abstraction:

    • Simplifies complexity by hiding low-level details

    • Instruction Set Architecture (ISA): Definition of hardware/software interface

    • Application Binary Interface: Integration of ISA with system software interface

    • Focus on understanding the deeper implementation details

Page 19: A Safe Place for Data

  • Volatile Memory:

    • Loses data upon power loss

  • Non-volatile Memory:

    • Includes magnetic disks, flash memory, optical disks (CD/DVD)

Page 20: Networks

  • Purpose of Networks:

    • Facilitates communication, resource sharing, and nonlocal access

  • Types of networks include:

    • Local Area Network (LAN): Commonly Ethernet

    • Wide Area Network (WAN): Represents the Internet

    • Wireless technologies: Wi-Fi, Bluetooth

Page 21: Technology Trends

  • Continuous evolution of electronic technology:

    • Enhanced capacity and performance

    • Decrease in costs over time

  • Historical performance and cost relationship

    • Timeline of technology milestones from 1951 to 2013 detailing significant innovations

Page 22: Semiconductor Technology

  • Semiconductor Material: Silicon

  • Methods for property transformation:

    • Addition of conducting and insulating materials

Page 23: Manufacturing ICs

  • Steps in manufacturing Integrated Circuits

    • Processing steps from slicing silicon wafers to testing packaged dies

    • Importance of yield: proportion of working dies from each wafer

Page 24: Intel Core i7 Wafer

  • Details of a significant IC wafer:

    • 300mm wafer with 280 chips utilizing 32nm technology

    • Each chip’s dimensions are given

Page 25: Integrated Circuit Cost

  • Relationship between die cost and manufacturing factors

    • Cost linked to area and defect rate within the manufacturing process

    • Impact of design decisions on die area and overall cost

Page 26: Defining Performance

  • Performance measurement examples using airplanes:

    • Factors include passenger capacity, cruising range, speed, etc.

Page 27: Response Time and Throughput

  • Response Time: Time to complete a single task

  • Throughput: Total work done within a timeframe

  • Considerations on how changes in hardware affect these metrics

Page 28: Relative Performance

  • Formula for defining performance metrics

    • Example calculations illustrating speed comparisons between two computers

    • Performance expressed as a ratio relating execution times

Page 29: Measuring Execution Time

  • Two key concepts of timing:

    • Elapsed Time: Total response time for a complete task

    • CPU Time: Time spent specifically on processing tasks, excluding I/O

Page 30: CPU Clocking

  • Digital hardware operation governed by a clock with a constant cycle rate

    • Definitions of clock period and frequency in modern CPUs

Page 31: CPU Time

  • Performance increase methods:

    • Reducing clock cycles or increasing clock rate

  • Importance of balancing clock rate and cycle count

Page 32: CPU Time Example

  • Example: Comparing two computers based on CPU performance targets

  • Calculating required clock rates from desired performance levels

Page 33: Instruction Count and CPI

  • Instruction Count: Total instructions executed for a program

  • CPI (Cycles Per Instruction): Average cycles needed per instruction, influenced by CPU design

Page 34: CPI Example

  • Comparative example between two computers with varying attributes

  • Illustrating calculations to determine faster performance

Page 35: CPI in More Detail

  • Weighted average consideration for CPI based on instruction class performance

    • Significance of relative frequency of instruction types

Page 36: CPI Example (continued)

  • Analysis of compiled code sequences across instruction classes

  • Calculations for average CPI based on different execution scenarios

Page 37: Performance Summary

  • Overview on how various factors influence performance optimization

    • Algorithm selection, programming language, compiler, and architecture play crucial roles

Page 38: Power Trends

  • Discussion of power consumption in CMOS technology and implications in design

Page 39: Reducing Power

  • Focuses on finding approaches to enhance performance while adhering to power limitations, addressing trends beyond voltage and frequency reductions

Page 40: Uniprocessor Performance

  • Overview of challenges and constraints in single-processor performance strategies

Page 41: Multiprocessors

  • Transition to multicore processors:

    • Requirements for explicit parallel programming and performance optimization strategies necessary for advanced SMP systems

Page 42: SPEC CPU Benchmark

  • Importance of standardized benchmarking for evaluating CPU performance across workloads

  • Description of SPEC CPU2006 and evaluation methodology

Page 43: CINT2006 for Intel Core i7 920 Execution

  • Detailed example of benchmark results for CPU performance on Intel Core i7 920

Page 44: SPEC Power Benchmark

  • Power consumption analysis related to performance benchmarks at different workload levels for efficient server management

Page 45: SPECpower_ssj2008 for Xeon X5650

  • Data on performance and power metrics across various target loads for Xeon X5650

Page 46: Pitfall: Amdahl’s Law

  • Warning about reliance on component improvements to expect linear performance gains

    • Example illustrating the dangers of this fallacy in improving computational tasks

Page 47: Fallacy: Low Power at Idle

  • Insights into real power consumption patterns for processors under varying loads, illustrating design considerations toward power efficiency

Page 48: Pitfall: MIPS as a Performance Metric

  • Critique of MIPS (Millions of Instructions Per Second) as a holistic performance metric

    • Calls out differences in instruction set architectures and complexity

Page 49: Concluding Remarks

  • Summary statements on advancements in cost/performance ratio owing to technology development

  • Reinforcement of performance measures concerning execution time and the importance of parallelism for optimization.