Skip to content

Chapter1

提升性能:

  • 处理速度
  • 传输速率
  • 存储容量与速率

1.2 Performance

影响性能的因素:

  • Architecture 架构怎么设计
  • 架构的硬件实现
  • 架构的编译器
  • 操作系统

评估性能

  • 对于单个的用户:减少响应时间
  • 对于大数据的处理:关注吞吐量最大化

响应时间与吞吐量

  • 响应时间:用户发出请求到收到响应的时间,评估了完成任务的速度
  • 吞吐量(带宽):给定时间内做的所有工作量

二者受到以下因素的影响:

  • 用更快的处理器替换计算机中的处理器。
  • 增加更多的处理器?

性能

性能与执行时间成反比。

\(performance = \frac{1}{execution\ time_x}\)

faster than ...就是说执行时间是多少多少倍。

alt text

那什么是执行时间呢?

  • Elapsed time:从开始到结束的时间,包括阻塞时间(all aspects)。
  • CPU time:CPU实际运行的时间,不包括阻塞时间(即排除I/O时间和其他任务的时间占用)。

    • 包括用户CPU时间和系统CPU时间

      • 用户CPU时间:程序本身所消耗的CPU时间
      • 系统CPU时间:操作系统为程序执行任务时所消耗的CPU时间

The main goal of architectural design is to improve the performance of the system.

1.3 Technology trend

硬件实现的比例越来越高,且硬件成本大幅降低。

对于具有相同功能的计算机系统,软件和硬件功能的比例可以在一定范围内进行调整。

计算机体系结构的改进

  • 输入/输出的改进
  • 内存组织结构的发展
  • 联想存储器与相关处理器

    • 通用寄存器组
    • 缓存
  • 指令集发展的两种方向:

    • CISC(复杂指令集计算机)
    • RISC(精简指令集计算机)
  • 并行处理技术

    • 如何在传统机器中发展并行性?
    • 在不同层次上发展并行技术。
    • 例如:微操作级、指令级、线程级、进程级、任务级等。

alt text

1.4 CPU performance

Measuring Data Size

alt text

  • bit
  • niblle (4 bits)
  • byte
  • word (4 bytes / 32 bits)
  • kibibyte (1024 bytes) KB
  • mebibyte (1024 kibibytes) MB
  • gibibyte (1024 mebibytes) GB
  • tebibyte (1024 gibibytes) TB
  • pebibyte (1024 tebibytes) PB

CPU Performance

\(CPU\ Execution\ Time = \frac{CPU\ Clock\ Cycle}{Clock\ Rate} = CPU\ Clock\ Cycle * Clock\ Period\)

alt text

alt text

\(CPI = \frac{CPU\ Clock\ Cycle}{Instruction\ Counts}\)

so我们有:

\(CPU\ Execution\ Time = CPI * Instruction\ Counts * Clock\ Period\)

alt text

性能依赖于以下因素:

  • 算法:影响指令计数(IC),可能影响每指令时钟周期(CPI)。
  • 编程语言:影响指令计数(IC),可能影响每指令时钟周期(CPI)。
  • 编译器:影响指令计数(IC),可能影响每指令时钟周期(CPI)。
  • 指令集架构(ISA):影响指令计数(IC)、每指令时钟周期(CPI)和时钟周期时间(Tc)

Amdahl's law:

使用某种更快的执行模式所带来的性能提升是有限的,受限于更快模式可被利用的时间比例。

依赖于以下两个因素:

  • 可利用时间的比例:增强功能能够被利用的时间占总执行时间的比例。
  • 增强带来的改进:在可利用的时间段内,增强所带来的性能改进

\(Improved\ Execution\ Time = \frac{Affected\ Execution\ Time}{Amount\ of\ Improvement} + Unaffected\ Execution\ Time\)

alt text

alt text

\(Speendup_{overall} = \frac{1}{(1-Fraction_{enhanced}) + \frac{Fraction_{enhanced}}{Speedup_{enhanced}}}\)

  • 改进比例:在改进之前的系统中,改进部分的执行时间与总执行时间的比例。

    • 这个比例总是小于或等于1。
    • 例如:一个程序需要运行60秒,其中20秒的计算可以加速, 则比例为 \(\frac{20}{60}\)
    • 组件加速比:某个改进后的加速倍数。它是改进前执行时间与改进后执行时间的比值

    • 通常情况下,组件加速比大于1。

    • 例如:如果系统经过改进,改进部分的执行时间为2秒,在改进前其执行时间为5秒,则组件加速比为 \(\frac{5}{2} = 2.5\)

alt text

alt text

alt text

因为对于可改变的部分,其改变不足以将该部分的时间变为0(即速率不可能无穷大)

1.6 ISA

Instruction Set Architecture:指令集架构

指令集就是给定机器所有可能指令的集合。