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.