计算机的应用的分类及其特性:
- 个人计算机:用于个人使用的计算机,价格低廉,通常包含图形显示器、键盘和鼠标等
- 服务器:用于为多用户运行大型程序的计算机,通常由多个用户并行使用,并且一般通过网络访问
- 嵌入式计算机:嵌入到其他设备中的计算机,一般运行预定义的一个或者一组应用程序
现代计算机的特征是处理器的并行性和内存的层次性
程序的性能取决于:
- 程序所用算法的有效性
- 用来建立程序并将其翻译成机器指令的软件系统
- 计算机执行机器指令的有效性
计算机结构中的 8 个伟大思想:
- 面向摩尔定律的设计
- 使用抽象简化设计
- 加速大概率事件
- 通过并行提高性能
- 通过流水线提高性能
- 通过预测提高性能
- 存储器层次
- 通过冗余提高可靠性
软件的层次结构:
- 应用软件 $\rightarrow$ 系统软件 $\rightarrow$ 硬件
- 系统软件:提供常用服务的软件,包括操作系统、编译程序、加载程序和汇编程序等:
- 操作系统:是用户和硬件之间的接口,为用户提供各种服务和监控功能,其最为重要的功能为:
- 处理基本的输入和输出操作
- 分配外存和内存
- 为多个应用程序提供共享计算机资源的服务
- 编译程序:把高级语言编写的程序翻译成硬件能执行的指令(机器语言)
- 操作系统:是用户和硬件之间的接口,为用户提供各种服务和监控功能,其最为重要的功能为:
组成计算机的部件:
- 输入
- 输出
- 存储器
- 处理器:
- 数据通路(运算器)
- 控制器
指令集体系结构 (ISA):
- 是最重要的抽象之一,是硬件和底层软件之间的接口
- 计算机的体系结构包括程序员正确编写二进制机器语言所需的全部信息(如指令、I/O设备等)
- 提供给应用程序员的基本指令
- 令集和操作系统接口合成为应用二进制接口(ABI)
存储设备:
主存储器、二级存储器、磁盘、闪存
联网的计算机的优点:
通信、资源共享、远距离访问
处理器制造中的一些概念:
- 定义:每块芯片的价格 $p_c$ ,每片晶圆的价格 $p_w$ ,每片晶圆的芯片数量 $m$ ,晶圆面积 $S$,成品率 $y$ ,合格芯片数量 $i$ ,总芯片数量 $I$ ,单位面积的瑕疵数量 $m_f$ ,芯片面积 $s$
- $y=\frac{i}{I}$ ,$y=\frac{1}{(1+m_f·s/2)^2}$ (后一个公式是基于集成电路工厂的成品率经验)
- $m \approx \frac{S}{s}$ (此处没有减去晶圆边上不满足芯片举行的面积)
- $p_c=\frac{p_w}{m·y}$
性能定义为执行时间的倒数
经典CPU性能公式:
- 定义:$CPU$ 时间为 $t_{cpu}$ ,指令的数量为 $I$ ,每条指令执行的平均时间为 $CPI$ ,时钟周期的频率为 $f$ ,时钟周期的时间为 $t$
- $t_{cpu}=I \times CPI/f=I \times CPI \times t$
唯一能够被完全可靠测量的计算机性能指标是时间,执行指令数量最少的代码其执行速度未必是最快的
能耗的相关公式:
- 能耗 $ \propto $ $\frac{1}{2} \times$ 负载电容 $\times$ 电压$^2$
- 功耗 $ \propto $ $\frac{1}{2} \times$ 负载电容 $\times$ 电压$^2$ $\times$ 开关频率
谬误:
- 改进计算机的某个方面时期望总性能的提高与改进大小成正比:即,加速大概率事件不等于同等倍数的加速于整个程序
- 利用率低的计算机功耗低
- 用性能公式的一个子集去度量性能