我已将图片中的内容整理成文字,以下是对应doc文档的内容(可直接复制到doc中):
1.4 计算机的工作过程和主要性能指标
将编制好的程序放在主存中,由控制器控制逐条取出指令执行,以计算(a+b-c=?)为例加以说明。 设(a)、(b)、(c)为已知的3个数,分别存放在主存的5~7号单元中,结果将存放在主存的8号单元。
计算机的控制器将控制指令逐条执行,最终得到正确的结果。步骤如下: ① 执行取数指令,从主存5号单元取出数(a),送入累加寄存器中。 ② 执行加法指令,将累加寄存器中的内容(a)与从主存6号单元取出数(b)一起送到ALU中相加,结果(a+b)保留在累加寄存器中。 ③ 执行减法指令,将累加寄存器中的内容(a+b)与从主存7号单元取出的数(c)一起送到ALU中相减,结果(a+b-c)保留在累加寄存器中。 ④ 执行存数指令,把累加寄存器的内容(a+b-c)存至主存8号单元。 ⑤ 执行停机指令,计算机停止工作。
1.4.2 计算机硬件的主要性能指标
机器字长 机器字长是指参与运算的数的基本位数,它是由加法器、寄存器的位数决定的。 在计算机中为了更灵活地表达和处理信息,又以字节为基本单位,用大写字母B表示。一个字节等于8位二进制位。
数据通路宽度 数据总线一次所能并行传送信息的位数,称为数据通路宽度。它影响到信息的传送能力,从而影响计算机的有效处理速度。这里所说的数据通路宽度是指外部数据总线的宽度,它与CPU内部的数据总线宽度(内部寄存器的大小)有可能不同。
主存容量 主存储器所能存储的全部信息量称为主存容量。通常,以字节数来表示存储容量,这样的计算机称为字节编址的计算机,也有一些计算机是以字为单位编址的,它们用字数乘以字长来表示存储容量。
运算速度 运算速度是指每秒钟所能执行的指令数目或每秒钟执行的浮点运算次数。 MIPS表示每秒执行多少百万条指令。 MFLOPS表示每秒执行多少百万次浮点运算。
1.5.1 计算机系统设计的定量原理
- Amdahl定律 Amdahl定律指出:当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,要限于该部件的执行时间占总执行时间的比例。 [ \text{加速比}=\frac{\text{改进前的性能}}{\text{改进后的性能}}=\frac{\text{改进前的总执行时间}}{\text{改进后的总执行时间}} ] Amdahl定律使人们能快速得出改进所获得的效益。系统加速比依赖于以下两个因素:
- 可改进比例((F_e)),它总是小于1。
- 性能提高比((S_e)),它总是大于1。
吞吐量是指系统在单位时间内处理请求的数量。响应时间是指系统对请求作出响应的时间,包括CPU时间与等待时间的总和。
计算机系统的性能评价参数: (1) 主频 CPU的主频又称为时钟频率,表示在CPU内数字脉冲信号振荡的速度。
(2) 时钟周期 主频的倒数就是时钟周期,这是CPU中最小的时间元素。每个动作至少需要一个时钟周期。
(3) CPI CPI是指每条指令执行所用的时钟周期数。
3. CPU执行时间
程序执行的CPU时间为: [ \text{CPU执行时间}=\frac{\text{CPU时钟周期数}}{\text{时钟频率}}=\frac{IC \times CPI}{\text{时钟频率}} ] 它取决于3个要素:① 时钟频率;② 指令执行所需的时钟周期数CPI;③ 程序所含指令条数IC。这3个因素是相互制约的。
2.2 机器数的定点表示和浮点表示
最常见的移码的偏置值为(2^n)。当字长8位时,偏置值为(2^7)。
例1:(X=1011101) [ [X]{\text{移}}=2^7+X=1000000+1011101=11011101 ] [ [X]{\text{补}}=01011101 ]
例2:(X=-1011101) [ [X]{\text{移}}=2^7+X=1000000-1011101=00100011 ] [ [X]{\text{补}}=10100011 ]
7.6.3 流水线的主要性能指标
- 吞吐率 流水线的吞吐率(TP)是指在单位时间内流水线所完成的任务数量或输出的结果数量。若流水线(T_k)时间完成(n)个任务,则吞吐率为(TP=n/T_k)。
流水线存在“瓶颈”流水段时,连续输入(n)个任务的一条(k)段线性流水线的实际吞吐率为: [ TP=\frac{n}{\sum_{i=1}^{k}\Delta t_i + (n-1)\max{\Delta t_1, \Delta t_2, \cdots, \Delta t_k}} ]
7.6 流水线技术
例7-1:有一指令流水线连接图和各段时间消耗如图7-38所示,请问该计算机的CPU时钟至少是多少?完成10个任务的吞吐率是多少?最大吞吐率是多少?
(图:入→1(50ns)→2(50ns)→3(100ns)→4(200ns)→出)
解:这个指令流水线的各功能段执行时间是不相同的。由于各功能段的时间不同,计算机的CPU时钟周期应当以最长的功能段执行时间为准,(\max{50,50,100,200}),即CPU时钟至少为200ns。
实际吞吐率(TP=10/[(50+50+100+200)+9×200]=1/220)条指令/秒 最大吞吐率(TP_{\text{max}}=1/200)条指令/秒
例7-2:假定非流水线机器,时钟周期为10ns,ALU和分支操作需要4个时钟周期,存储器操作需要5个时钟周期,以上操作的比例相应为40%,20%,40%,流水线机器上由于存在时钟偏移和启动时间,时钟周期增加了1ns,并忽略其他的影响,求该流水线的加速比。
解:非流水线的机器上,指令的平均执行时间: [ \begin{align*} \text{指令平均执行时间}&=\text{时钟周期}×\text{平均CPI} \ &=10\text{ns}×[(40%+20%)×4 + 40%×5] \ &=44\text{ns} \end{align*} ]
在流水线方式下,时钟周期为(10+1=11\text{ns})。 所以加速比为(44/11=4)。
存储层次访问时间计算
已知某计算机存储层次结构中,Cache访问时间为10ns,主存访问时间为100ns,辅存访问时间为(10\text{ms}=10^7\text{ns})。Cache命中率为95%,主存命中率为99%(即访问主存未命中时才访问辅存),计算该存储层次的平均访问时间(需写出计算公式及代入过程)。
存储层次访问时间计算 已知Cache访问时间(T1)=10ns,主存访问时间(T2)=100ns,辅存访问时间(T3)=10ms=10⁷ns,Cache命中率(H1)=95%=0.95,主存命中率(H2)=99%=0.99。
存储层次平均访问时间(TA)计算公式为: [ TA=H1×T1 + (1-H1)×(H2×T2 + (1-H2)×T3) ]
代入数据: [ \begin{align*} TA&=0.95×10 + (1-0.95)×(0.99×100 + (1-0.99)×10^7) \ &=9.5 + 0.05×(99 + 100000) \ &=9.5 + 0.05×100099 \ &=9.5 + 5004.95 \ &=5014.45\text{ns} \end{align*} ]
要不要我帮你把这些内容按原文档的章节结构整理成带格式的doc文本?