计算机系统基础知识
计算机系统硬件基本组成
中央处理单元
中央处理单元(CPU)是计算机系统的核心部件,它负责获取指令、对指令进行译码并加以执行。
1.CPU的功能:(1)程序控制(重要功能)(2)操作控制(3)时间控制(4)数据处理(最根本的任务)(5)对系统内部和外部的中断(异常)作出响应,并进行相应处理。
2.CPU的组成
- 运算器:1.算术逻辑单元(ALU):处理数据,实现数据运算和逻辑运算 2.累加寄存器(AC):是通用寄存器、为ALU提供工作区 3.数据缓冲寄存器:对内存进行读写操作时,暂时存放由内存储器读写的数据 4.状态条件寄存器:反映当前指令完成之后的状态。
- 控制器:1.指令寄存器(IR):CPU执行指令时,指令→内存→缓冲寄存器→IR暂存 2.程序计数器(PC):寄存信息,计数。保存的总是将要执行的下一条指令的地址。3.地址寄存器:保存当前CPU所访问的内存地址,由于内存和CPU存在速度上的差异,所以需要保存地址信息,直到内存的读写操作完成为止。4.指令译码器:指令分为操作码和地址码两部分,指令译码器对指令中的操作码进行分析和解释,控制各部件工作。
存储系统
存储器分类
分类方式 | 类别 |
---|---|
位置 | 内存、外存 |
材料 | 磁存储器、半导体存储器、光存储器 |
工作方式 | 读写存储器、只读存储器 |
访问方式 | 按地址访问、按内容访问 |
寻址方式 | 随机存储器、顺序存储器、直接存储器 |
高速缓存(Cache)
Cache是位于CPU和主存之间的高速存储子系统。采用高速存储的主要目的是提高存储器的平均访问速度,是存储器的速度与CPU的速度相匹配。Cache的存在对程序员是透明的。其地址变换和数据块的替换算法均由硬件实现。主要特点,容量小、速度快、成本高。
1.Cache的组成
控制部分:判断CPU要访问的信息是否在Cache存储器中,若在则命中,直接对Cache存储器寻址,未命中时,按照替换原则决定主存的某一块信息放到Cache的哪一块中。
Cache存储器部分存放主存的部分复制信息。
2.Cache中的地址映像方法
(1)直接映像:主存中的块与Cache中块的对应关系是固定的。优点是地址变换简单,缺点是灵活性差。
(2)全相联映像:主存的任一块可以调入Cache任一块的空间。优点是主存的块调入Cache的位置不受限制,十分灵活;缺点是无法从主块号中直接获得Cache的块号,变换复杂,速度慢。
(3)组相联映像是前面两种方法的折衷,具体做法是将Cache中的块再分成组。组采用直接映像,块采用全相联映像。
3.替换算法
选择替换算法的目标是使Cache获得最高的命中率。常用替换算法:
(1)随机替换算法(2)先进先出算法(3)近期最少使用算法(4)优化替换算法
4.Cache的性能分析
若H为Cache的命中率,
t
a
t_a
ta为Cache的存取时间,
t
m
t_m
tm为主存的访问时间,则Cache的等效访问时间
t
a
t_a
ta为
t
a
=
H
t
c
+
(
1
−
H
)
t
m
t_a=Ht_c+(1-H)t_m
ta=Htc+(1−H)tm使用Cache比不使用Cache的CPU访问存储器的速度提高的倍数r可以用下式求得
r
=
t
m
/
t
a
r=t_m/t_a
r=tm/ta
虚拟存储器
虚拟存储器是有主存、辅存、存储管理单元及操作系统中的存储管理软件组成的存储系统。虚拟存储器的空间大小取决于计算机的访存能力而不是实际外存的大小,实际存储空间可以小于虚拟地址空间。
外存储器
1.磁盘存储器
2.光盘存储器
3.固态硬盘
磁盘阵列技术
磁盘阵列由多台磁盘存储器组成,是快速、大容量且高可靠的外存子系统。现在常见的磁盘阵列称为廉价冗余磁盘阵列(RAID)。
输入/输出技术
1.常见的内存与接口的编址方式
1.内存与接口地址独立的编址方法:内存地址与接口地址完全独立且相互隔离,在使用中内存用来存放程序和数据,接口就用于寻址外设。优点:编程序和读程序时很易使用和辨认。缺点:接口的指令太少,功能太弱。
2.内存与接口地址统一编址的方法
内存地址与接口地址统一在一个公共的地址空间,在这些地址空间里将一些地址分配给接口使用,而剩下的就可以归内存使用。
2.CPU与外设之间的数据传送方式。
1.直接程序控制方式:指在完成数据的输入/输出中,整个输入/输出过程是在CPU执行程序的控制下完成的。可分为无条件传送方式(无条件的与CPU交换数据)和程序查询方式(先通过CPU查询外设状态,准备好再与CPU交换数据,缺点①降低了CPU的效率,②对外部的突发事件无法做出实时响应。优点在于这种思想很易理解,同时实现这种工作方式也很容易)
2.中断方式:利用中断机制,使I/O系统在于外设交换数据时,CPU无需等待,也不必查询I/O状态,即可以抽身出来处理其他任务,因此提高了系统效率。
(1)中断处理方法 ①多中断信号线法。每个中断源都有属于自己的一根中断请求信号线向CPU提供中断请求。②中断软件查询法。 当CPU检测到一个中断请求信号以后,即转入到中断服务程序中轮询每个中断源以确定是谁发出的中断请求信号,对各设备的响应优先级由软件设定。③菊花链法。软件查询的缺陷在于花费的时间太多,菊花链法实际上是一种硬件查询法,所有的I/O模块共享一根共同的中断请求线,而中断确认信号则以链式在各模块间相连,当CPU检测到中断请求信号时,则发出中断确认信号。中断确认信号依次在I/O模块间传递,直到发出请求的模块,该模块则把他的ID送往数据线由CPU读取。④总线仲裁法。⑤中断向量表法。(2)中断优先级。优先级高的先响应。
3.直接存储器存取方式
DMA在存储器与I/O设备间直接传送数据,不需要CPU的任何干涉,是一种完全由DMA硬件完成I/O操作的方式。
4.输入/输出处理机
输入/输出处理机(IOP)是一个专用处理机,用于完成主机的输入/输出操作。IOP根据主机的I/O命令,完成对外设数据的输入输出。他的数据传输方式有三种:字节多路方式、选择传送方式和数组多路方式。
总线结构
1.数据总线(DB):用来传送数据信息,是双向的。DB的宽度决定了CPU和计算机其他设备之间每次交换数据的位数。
2.地址总线(AB):用于传送CPU发出的地址信息,是单向的。地址总线的宽度决定了CPU的最大寻址能力。
3.控制总线(CB):用来传送控制信号、时序信号和状态信息等。CB中每条线的传送方向是单方向且确定的。但CB作为一个整体则双向的。
指令系统
指令系统指的是一个CPU所能处理的全部指令的集合,是一个CPU的根本属性。
1.寻址方式:
立即寻址:操作数作为指令的一部分直接写在指令中,这种操作数称为立即数。
寄存器寻址:指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。
直接寻址:指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址。
寄存器间接寻址:操作数在存储器中,操作数的有效地址用SI、DI、BX和BP四个寄存器之一来指定。
寄存器相对寻址:操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容和指令中的8位/16位偏移量之和。
基址加变址寻址方式: 操作数在存储器中,其有效地址是一个基址寄存器(BX、 BP)和一个变址寄存器(SI,DI)的内容之和。
相对基址加变址寻址:操作数在存储器中,其有效地址是一个基址寄存器(BX、BP)的值、一个变址寄存器(SI、DI)的值和指令中的8位/16位偏移量之和。
2.CISC和RISC
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其他 |
---|---|---|---|---|
CISC | 数量多,使用频率差别大,可变长格式 | 支持多种 | 微程序控制技术 | |
RISC | 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器只有Load/Store操作内存 | 支持方式少 | 增加了通用寄存器,硬布线逻辑控制为主,采用流水线 | 优化编译,有效支持高级语言 |
指令的流水处理
1.指令控制方式
(1)顺序方式(2)重叠方式(3)流水方式
2.吞吐率和流水建立时间
吞吐率是指单位时间里流水线处理机流出的结果数。对指令而言,是单位时间里执行的指令数。如果流水线的子过程所用时间不一样,则吞吐p应为最长子过程的倒数,即
p
=
1
/
m
a
x
{
Δ
t
1
,
Δ
t
2
,
.
.
.
,
Δ
t
m
}
p=1/max\lbraceΔt_1,Δt_2,...,Δt_m\rbrace
p=1/max{Δt1,Δt2,...,Δtm}流水线开始工作后须经过一定时间才达到最大吞吐率,这就是建立时间。若m各个子过程所用时间一样,均为
Δ
t
0
Δ{t_0}
Δt0,则建立时间
T
0
=
m
Δ
t
0
T_0=mΔt_0
T0=mΔt0。当流水线各段所经历的时间不一样时,吞吐率的计算公式为
T
P
=
n
∑
i
=
1
m
Δ
t
i
+
(
n
−
1
)
Δ
t
i
TP={n\over\sum_{i=1}^mΔt_i+(n-1)Δt_i}
TP=∑i=1mΔti+(n−1)Δtin式中
m
m
m为流水线的段数;
Δ
t
Δt
Δt为第
i
i
i段所需时间:
n
n
n为输入的指令数;
Δ
t
j
Δt_j
Δtj为该段流水线中瓶颈段的时间。
可靠性与系统性能评测
1.计算机可靠性概述
计算机系统的可靠性是指从它开始运行(t=0)到某个时刻这段时间内能正常运行的概率,用R(t)表示。
失效率是指单位时间内失效的元件数与元件总数的比例,用λ表示。当λ为常数时,可靠性与失效率的关系为
R
(
t
)
=
e
−
λ
t
R(t)=e^{-λt}
R(t)=e−λt。
两次故障之间系统能正常工作的时间称为平均无故障时间(MTBF),即MTBF=1/λ。
通常用平均修复时间(MTRF)来表示计算机的可维修性,即计算机的维修效率,指从故障发生到机器修复平均所需要的时间。计算机的可用性是指计算机的使用效率,它以系统在执行任务的任意时刻能正常工作的概率A来表示,即
A
=
M
T
B
F
M
T
B
F
+
M
T
R
F
A=\frac{MTBF}{MTBF + MTRF}
A=MTBF+MTRFMTBF
计算机的RAS技术是指用可靠性R、可用性A和可维修性S这三个指标衡量一个计算机系统。但在实际应用中,引起计算机故障的原因除了元器件以外,还与组装工艺、逻辑设计等因素有关。
2.计算机可靠性模型
串联系统:可靠性为
R
=
R
1
R
2
.
.
.
R
N
R=R_1R_2...R_N
R=R1R2...RN,失效率为
λ
=
λ
1
+
λ
2
+
.
.
.
+
λ
N
λ=λ_1+λ_2 +...+λ_N
λ=λ1+λ2+...+λN。
并联系统:可靠性为R=1-(1-R)x(1- R.x…x(l-R、), 失效率为
μ
=
1
1
λ
∑
j
=
1
N
1
j
μ={1\over{1\overλ}\sum_{j=1}^{N}{1\over j}}
μ=λ1∑j=1Nj11
N模冗余系统 :可靠性为
R
=
∑
i
=
n
+
1
N
(
j
N
)
×
R
0
i
(
1
−
R
0
)
N
−
1
R=\sum_{i=n+1}^N \begin{pmatrix} j \\ N \\ \end{pmatrix} ×R_0^i(1-R_0)^{N-1}
R=i=n+1∑N(jN)×R0i(1−R0)N−1
提高计算机的可靠性一般采取两项措施:一 是提高元器件的质量, 改进加工工艺与工步结构,完善电路设计;二是发展容错技术。
3.计算机系统的性能评价
常用方法:
时钟频率:计算机的时钟频率在一定程度上反映了机器速度。一般来讲,主频越快,速度越快。
指令执行速度:速度是计算机的主要性能指标之一,在计算机发展初期,曾用加法指令的运算速度来衡量计算机的速度。
等效指令速度法:统计各类指令在程序中所占的比例,并进行折算。设某类指令
i
i
i在程序中所占比例为
ω
i
ω_i
ωi,执行时间为
t
i
t_i
ti,则等效指令时间为
T
=
∑
i
=
1
n
(
ω
i
×
t
i
)
T=\sum_{i=1}^n(ω_i×t_i)
T=i=1∑n(ωi×ti)式中,n为指令的种类数。
数据处理速率(PDR)法:采用计算PDR值的方法来衡量机器性能,PDR 值越大,机器性能越好,PDR与每条指令和每个操作数的平均位数以及每条指令的平均运算速度有关。
核心程序法: 把应用程序中使用最频繁的那部分核心程序作为评价计算机性能的标准程序,在不同的机器上运行,测得其执行时间,作为各类机器性能评价的依据。
基准测试程序:基准测试程序法是目前一致承认的测试性能的较好方法。基准测试程序多种多样,常见的有以下四种。①整数测试程序②浮点测试程序。③SPEC基准测试程序。④TPC 基准测试程序。