1.1 计算机系统的基本组成
1.1.1 计算机硬件的基本组成
冯·诺依曼结构:
- 采用“存储程序”的工作方式
- 计算机由运算器、控制器、存储器、输入设备和输出设备4个基本部件组成
- 存储器不仅能存放数据,而且也能存放指令,形式上数据和指令没有区别,但计算机应区分它们;控制器应能控制指令的自动执行;运算器应能进行加、减、乘、除4种基本算术运算,并且也能进行逻辑运算;操作人员可以通过输入/输出设备使用计算机
- 计算机内部以二进制形式表示指令和数据;每条指令由操作码和地址码两部分组成,操作码指出操作类型,地址码指出操作数的地址;由一串指令组成程序。
1.中央处理器
中央处理器简称CPU或处理器,主要用于指令的执行。包含两种基本部件:数据通路和控制器。
数据通路主要包含算术逻辑部件(ALU)和通用寄存器,ALU进行算术和逻辑运算,通用寄存器用来暂存指令所用的操作数或执行结果。
控制器用来对指令进行译码。
2.存储器
存储器分为内存和外存,内存包括主存储器和高速缓存(cache)。
外存包括磁盘存储器和固态硬盘等直接和驻村交换信息的存储器,以及一些用于数据备份的海量后备存储器。
3.外部设备和设备控制器
外部设备简称外设,也称为I/O设备,通常由机械部分和电子部分组成,两部分通常是可以分开的。
外设通过设备控制器连接到主机上,各种设备控制器统称为I/O控制器、I/O接口或I/O模块。
1.5 计算机系统性能评价
计算机系统的性能主要考虑的是CPU性能,但二者不等价,有一些区别。系统性能是指系统的响应时间,它与CPU性能相关,同时也与CPU以外的其他部分有关。
几个重要的概念和参数:
-
时钟周期(clock cycle,tick,clock tick,clock)。计算机执行一条指令的过程被分成若干步骤来完成,每一步都要有响应的控制信号进行控制,这些控制信号何时发出、作用时间多长,都要有相应的定时信号进行同步。因此,计算机必须能够产生同步的时钟定时信号,也就是CPU的主脉冲信号,其宽度称为时钟周期。
-
时钟频率(clock rate)。时钟周期的倒数
-
CPI(cycles per instruction)。CPI表示执行一条指令所需的时钟周期数。不同指令的功能不同,所需的时钟周期数也可能不同,因此,对于一条特定指令而言,其CPI指执行该指令所需的时钟周期数,此时CPI是一个确定的值;
对于一个程序或一台机器来说,其综合CPI指该程序或该机器指令集中的所有指令执行所需的平均时钟周期数。
用户 C P U 时间 = 程序总时间周期数 × 时钟周期 = 程序总指令条数 × C P I × 时钟周期 用户CPU时间=程序总时间周期数×时钟周期=程序总指令条数×CPI×时钟周期 用户CPU时间=程序总时间周期数×时钟周期=程序总指令条数×CPI×时钟周期C P I = ∑ i = 1 n ( C P I i × F i ) CPI=\sum_{i=1}^n(CPI_i \times F_i) CPI=i=1∑n(CPIi×Fi)
C P I i CPI_i CPIi表示第i条指令的 C P I CPI CPI, F i F_i Fi表示第i条指令在程序中的比例。
用指令执行速度进行性能评估
最早用来衡量计算机性能的指标是每秒钟完成单个运算指令的条数。指令速度所用的计量单位为MIPS(million instructions per second),其含义是平均每秒钟执行多少百万条指令。类似的单位由GIPS,TIPS等
设某类指令i在程序中所占比例为
w
i
w_i
wi,执行时间为
t
i
t_i
ti,则等效指令的执行时间为
T
=
w
1
×
t
1
+
w
2
×
t
2
+
…
+
w
n
×
t
n
T=w_1\times t_1 +w_2 \times t_2 +…+w_n \times t_n
T=w1×t1+w2×t2+…+wn×tn
n为指令种类数,若执行时间用时钟周期数来衡量的话,则上式的结果就是
C
P
I
CPI
CPI。对指令平均执行时间求倒数能够得到MIPS值。
M
I
P
S
=
时钟频率
C
P
I
=
1
C
P
I
×
时钟周期
MIPS=\frac{时钟频率}{CPI}=\frac{1}{CPI\times时钟周期}
MIPS=CPI时钟频率=CPI×时钟周期1
选取一组合适的指令组合,使得得到的平均
C
P
I
CPI
CPI最小,由此得到的MIPS就是峰值MIPS(peak MIPS)。
与顶点指令执行速度MIPS相对应的用来表示浮点操作速度的指标是MFLOPS(million floating-point operations per second).表示每秒钟执行的浮点运算有多少百万次,它是基于所完成的操作次数而不是指令数来衡量的。类似指标还有GELOPS( 1 0 9 10^9 109次/s)、TFLOPS( 1 0 12 10^{12} 1012次/s)、PFLOPS( 1 0 15 10^{15} 1015次/s)和EFLOPS( 1 0 18 10^{18} 1018次/s)等。
Amdahl定律·
阿姆达尔定律是计算机系统设计方面重要的定量原则之一。
改进后的执行时间
=
改进部分执行时间
改进部分的改进倍数
+
未改进部分执行时间
改进后的执行时间=\frac{改进部分执行时间}{改进部分的改进倍数}+未改进部分执行时间
改进后的执行时间=改进部分的改进倍数改进部分执行时间+未改进部分执行时间
或
整体改进倍数
=
1
改进部分执行时间比例
改进部分的改进倍数
+
未改进部分执行时间的比例
整体改进倍数=\frac{1}{\frac{改进部分执行时间比例}{改进部分的改进倍数}+未改进部分执行时间的比例}
整体改进倍数=改进部分的改进倍数改进部分执行时间比例+未改进部分执行时间的比例1