Chapter1 计算机抽象及相关技术
1.1 性能与相对性能
某台计算机x性能和程序执行时间的表达式为:
性能x=1执行时间x
{性能_x} = \frac{1}{执行时间_x}
性能x=执行时间x1
若有同时有计算机y,则两台计算机之间的性能比n为:
性能x性能y=执行时间y执行时间x=n
\frac{性能_x}{性能_y} = \frac{执行时间_y}{执行时间_x} = n
性能y性能x=执行时间x执行时间y=n
1.2 执行时间
执行时间分为消逝时间(Elapsed Time)和CPU时间。
1.2.1 CPU时钟
CPU时钟是数字电路由固定频率的时钟控制。时钟周期是时钟脉冲的间隔时间,例如250ps = 0.25ns = 250 * 10 -12s。时钟频率是每秒钟的时钟周期数,例如A4.0GHz = 4000MHz = 4.0 * 10 9Hz。
1.2.2 CPU时间
CPU时间其实就是CPU在运行某一个程序所需要花费的时间。CPU时钟周期数其实就是CPU为完成运行这个程序所需要进行的周期总数。时钟频率其实就是CPU在每秒钟内可以处理的周期数。从CPU时间遵循的公式:
CPU时间=CPU时钟周期数×时钟周期=CPU时钟周期数时钟频率
CPU时间 = CPU时钟周期数 \times 时钟周期 = \frac{CPU时钟周期数}{时钟频率}
CPU时间=CPU时钟周期数×时钟周期=时钟频率CPU时钟周期数
1.2.3指令数和CPI
指令数是程序在经过编译器编译后生成的需要执行的指令的总数。则CPU时钟周期数可以通过下式求得:
CPU时钟周期数=指令数×CPI
CPU时钟周期数 = 指令数 \times CPI
CPU时钟周期数=指令数×CPI
其中,CPI是执行每条指令所需的平均时钟周期数。结合CPU时间的公式,可以有:
CPU时间=指令数×CPI×时钟周期=指令数×CPI时钟频率
CPU时间 = 指令数 \times CPI \times 时钟周期 = \frac{指令数 \times CPI}{时钟频率}
CPU时间=指令数×CPI×时钟周期=时钟频率指令数×CPI
针对于CPI,其满足公式:
CPI=CPU时钟周期数指令数
CPI = \frac{CPU时钟周期数}{指令数}
CPI=指令数CPU时钟周期数
1.2.4谬误与陷阱
针对某一个性能进行改进
在针对某一个性能进行改进时,遵循以下的公式:
改进后的执行时间=受改进影响的执行时间改进量+不受影响的执行时间
改进后的执行时间 = \frac{受改进影响的执行时间}{改进量} + 不受影响的执行时间
改进后的执行时间=改进量受改进影响的执行时间+不受影响的执行时间
用性能公式的子集去度量性能
单纯的使用时钟频率、指令数和CPI之一去评估性能是不合理的,可通过每秒百万条指令MIPS取代时间以度量性能:
MIPS=指令数CPU时间×106=指令数指令数×CPICPU时钟频率×106=CPU时钟频率CPI×106
MIPS = \frac{指令数}{CPU时间 \times 10^6} = \frac{指令数}{\frac{指令数 \times CPI}{CPU时钟频率} \times 10 ^6} = \frac{CPU时钟频率}{CPI \times 10 ^ 6}
MIPS=CPU时间×106指令数=CPU时钟频率指令数×CPI×106指令数=CPI×106CPU时钟频率
1.3 计算机系统结构中的7个伟大思想
1.使用抽象简化设计,尤其是硬件和软件之间的设计
2.加速大概率事件
3.通过并行的提高性能,总线、多个处理器、多线程
4.通过流水线提高性能,例如指令的执行
5.通过预测提高性能
6.存储器层次
7.通过冗余提高可靠性