跳转至

Computer Abstractions and Technology

约 1049 个字 预计阅读时间 7 分钟

认识计算机

计算机的分类 Classes of Computers

  • 个人计算机 Personal computer
  • 服务器 Server computers
  • 超级计算机 Supercomputers(也算服务器)
  • 嵌入式计算机 Embedded computers(不会单独存在,一般作为配件)

后PC时代 The PostPC Era

主要包括普通手机(Cell phone)、智能手机(Smart phone)、平板电脑(Tablet)等。

  • 个人手机 Personal Mobile Device (PMD)
  • 云计算 Cloud computing
    • 仓储式计算机 Warehouse Scale Computers (WSC)
    • Software as a Service (SaaS)

计算机发展中的七大思想 Senev Great Ideas

  • 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 冗余

语言层级 Levels of Program Code

  • High-level language 高级语言
  • Assembly language 汇编语言
  • Hardware representation 机器语言
    • 二进制语言

计算机的组成 Components of a Computer

  • 所有电脑都有的组成部分
    • Desktop, server, embended
  • 输入输出设备
    • 用户接口设备(键盘、鼠标)
    • 存储设备(硬盘、DVD/CD、flash)
    • 网络调试器

抽象 Abstraction

  • 抽象帮助处理复杂问题
    • 隐藏底层细节问题
  • 指令集 ISA
    • 硬件与软件的交互部分

摩尔定律:每隔18个月,计算机性能会翻一倍,价格会降低一半(以前适用,现在泛化了)

计算机的性能

响应时间和吞吐率 Response Time and Throughput

响应时间 Response time

计算机处理交给它的任务所需要的时间(需要对用户的请求做出快速的反应)

吞吐率 Throughput

单位时间内能够完成任务的数量

注意:响应时间与吞吐率之间有关联,但是并不一样。

具体衡量方式

Ececution Time 执行时间

\[ Define\quad Performance = \frac{1}{Execution\quad Time} \]

Elapsed time 整个处理过程的时间

​包括 processing, I/O, OS overhead, idle time 等,可用于体现系统性能

CPU time

除去 I/O 其他部分工作需要的时间,包括 user CPU time 和 system CPU time

  • CPU Clocking CPU时钟周期
    • Clock period 时钟周期:一个时钟周期的长度
      \(e.g.\quad 250ps = 0.25ns =250\times10^{-12}s\)
    • Clock frequency 时钟频率:单位时间内时钟周期个数
      \(e.g.\quad 4.0GHz = 4000MHz=4.0\times 10^9Hz\)

CPU Time的计算: $$ \begin{align} CPU\quad Time &= CPU\quad Clock\quad Cycles\times Clock\quad Cycle\quad Time \end{align} $$ $$ =\frac{CPU\quad Clock\quad Cycles}{Clock\quad Rate} $$

提高性能的方式:①减少 clock cycles 的数量 ②缩短时钟周期 ③增大时钟频率(注意②和③并不是无限制的)

  • Clock Cycles 和 CPU Time 的计算
\[ \begin{align} Clock\quad Cycles &= Instruction\quad Count\times Cycles\quad per\quad Instruction\\ CPU\quad Time &= Instruction\quad Count\times CPI\times Clock\quad Cycle\quad Time\\ &=\frac{Instruction\quad Count\times CPI}{Clock\quad Rate} \end{align} \]

​在计算过程中一般使用平均 CPI(由 CPU 硬件计算)

  • CPI 的计算
    • 不同指令耗时相同
      $$ Clock\quad Cycles = \sum^n_{i=1}(CPI_i\times Instruction\quad Count_i) $$
    • 不同指令耗时不同 Weighted average CPI
      $$ CPI = \frac{Clock\quad Cycles}{Instructuon\quad Count}=\sum^n_{i=1}(CPI_i\times\frac{Instruction\quad Count_i}{Instruction\quad Count}) $$
  • Performance Summary
    $$ \begin{align} CPU\quad Time&=\frac{Instructions}{Program}\times\frac{Clock\quad cycles}{Instruction}\times\frac{Seconds}{Clock\quad cycle}\ \end{align} $$
    $$ =指令数\times 每条指令所需时钟周期\times 每个时钟周期耗时 $$
    • 影响因素:算法、编程语言、编译器、ISA

功耗

功耗计算方式

In CMOS IC technology $$ \begin{align} Power = Capacitive\quad load\times Voltage^2\times Frequency \end{align} $$

\[ Capacitive\quad load: 电容\quad Volatge: 电压\quad Frequency: 频率 \]

功耗墙 power wall

  • 无法无限降低电压,无法通过降低电压的方式来降低功耗
  • 散热不足

多核

多核 CPU 处理器,可以进行多线程操作,需要程序员进行并行编程(与指令集的并行【由 CPU 自行判断】不同),相对要求较高。

性能评估

评估性能的三个指标:指令数、CPI、时钟频率

SPEC CPU 2006

对在整形和浮点型上计算的数据进行测试 $$ \sqrt[n]{\prod^n_{i=1}Execution\quad time\quad ratio_i} $$

计算不同电压下的工作负荷

\[ Overall\quad ssj\_ops\quad per\quad Watt=\frac{\sum^{10}_{i=0}ssj\_ops_i}{\sum^{10}_{i=0}power_i} \]

程序优化

Amdahl’s Law

针对程序中大量耗能耗时的部分进行优化 $$ T_{improved}=\frac{T_{affected}}{improvement\quad factor}+T_{unaffected} $$