中央处理单元(CPU)

中央处理单元的组成

由运算器、控制器、寄存器组和内部总线组成

中央处理单元功能

实现程序的控制、操作控制、时间控制、数据处理功能

运算器组成

  1. 1.

    算数逻辑单元(ALU):实现对数据的算术和逻辑运算

  2. 2.

    累加寄存器(AC):运算结果或源操作数的存放区

  3. 3.

    数据缓冲寄存器(DR):暂时存放内存的指令或数据

  4. 4.

    状态条件寄存器(PSW):保存指令的运行结果的条件码内容,如溢出条件

运算器的功能

执行多有的算术运算,如加减乘除。执行所有的逻辑运算并进行逻辑测试,如与、或、非、比较等

控制器的组成

  1. 1.

    指令寄存器(IR):暂存CPU执行指令

  2. 2.

    程序计数器(PC):存放指令执行地址

  3. 3.

    地址寄存器(AR):保存当前CPU所访问的内存地址

  4. 4.

    指令译码器(IP):分析指令操作码

控制器功能

控制整个CPU的工作,最为重要,包括程序控制,时序控制

海明校验码

海明码

本质也是利用奇偶性来检错和纠错的校验方法,构成方法使在数据位之间的确定位置上插入K个校验位,通过扩大码距实现检错方法和纠错方法

设数据位时n位,校验位是k为,则n和k必须满足以下关系:

2^k = n+k+1

2^k-1 >= n+k

例:求信息1011的海明码

校验位的位数和具体的数据位的位数之间的关系:所有位都编号,从最低位编号,从1开始递增,校验位处于2的n(n=0、1、2、3...)次方中,即处于第1,2,4,8,16,32..位上,其余位才能填充真正的数据位,若信息数据为1011则可知,第1,2,4位为校验位,第3,5,6,7位为数据为,用来从低位开始存放1011

7

6

5

4

3

2

1

位数

I4

I3

I2

I1

信息位

r2

r1

r0

校验位

在一个码组中,要检测e个误码,要求的最小码应该满足:d=e+1

在一个码组中,要纠正t个误码,要求的最小码距应该满足:d=2t+1

同时纠错检错:d=e+t+1

计算机指令

计算机指令的组成

一条指令由操作码和操作数两部分组成,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址

在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中

指令系统

两种指令系统

  1. 1.

    复杂指令系统(CISC)

    兼容性强,指令繁多,长度可变,由微程序实现

  2. 2.

    精简指令系统(RISC)

    指令少,使用频率接近,主要依靠硬件实现(通用寄存器,硬布线逻辑控制)

具体区别

复杂CISC:

特点:数量多,使用频率差别大,可变长格式

寻地方式:支持多种

实现方式:微程序控制技术(微码)

其他:研制周期长

精简RISC:

特点:数量少,使用频率接近,定长格式,大部分为单用期指令,操作寄存器只有Load/Store操作内存

寻址方式:支持方式少

实现方式:增加了通用寄存器,硬布线逻辑控制为主,适合采用流水线

其他:优化编译,有效支持高级语言

流水线相关计算

流水线周期

指令分成不同执行段,其中执行事件最长的段为流水线周期

流水线执行时间

1条指令总执行时间 +(总指令条数-1) x 流水线周期

流水线吞吐率

总指令数 / 流水线执行时间

流水线加速比

不使用流水线总执行时间 / 使用流水线总执行时间

超标量流水线技术

常规流水线是度为1时,即每个流水线阶段只执行一个部分,当度大于1时,就是超标量技术,当度为3时,相当于3条流水并行执行,即取指、分析、执行。每个阶段都同时处理了3条指令,因此,当题目提到度的概念时,计算时需要将指令条数=指令条数/度。然后再用流水线执行事件的公式

输入输出技术(CPU与外设之间的数据传送方式)

直接程序控制方式

整个输入/输出过程是在CPU执行程序的控制下完成的。这种方式还可以分为以下两种:

  1. 1.

    无条件传送方式:无条件与CPU交换数据

  2. 2.

    程序查询方式:先通过CPU查询外设状态,准备号之后再与CPU交换数据

中断方式

在与外设交换数据时,CPU无需等待,也不必查找I/O状态

直接存储存取方式(DMA)

直接存储存取(Direct Memory Access,DMA)方式是咋存储器与I/O设备直接传输数据,不需要CPU的任何干涉,是一种完全DMA硬件完成I/O操作的方式

一个总线周期结束后,CPU响应DMA请求,在一条指令执行结束,CPU响应程序中断

存储空间

局部性原理

在CPU运行时,所访问的数据会趋向于一个较小的局部性空间地址内,包括下面两个方面

时间局部性

如果一个数据项正在被访问,那么在近期它恒可能会被再次访问,即在相邻的时间里会访问同一个数据项

空间局部性

在最近的将来会被用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问

高速缓存Case

高速缓存Case用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成,其内容是主存内存的副本拷贝,对于程序员是透明的。

Case由控制部分和存储器组成的,存储器存储数据,控制部分判断CPU要访问的数据是否在Case中,在则命中,不在则依据一定算法从主存中替换

地址映射

在CPU工作时,送出的是主存单元的地址,而应从Case存储器中读/写信息。这就需要将主存地址转换为Case存储器地址这种地址的转换称为地址映射,由硬件自动完成,分为下列三种方法:

直接映射

优点:地址变化很简单

缺点:灵活性差

全相联映射

优点:不受限制,十分灵活

缺点:变化比较复杂,速度比较慢

组相联映射

前面两种方法的折中,将Case先分组再分块,组件采用直接映射,组内的块采用全相联映射

系统可靠性分析

平均无故障时间

MTTF = 1 / 失效率

平均故障修复时间

MTTR = 1 / 修复率

平均故障间隔时间

MTBF = MTTF + MTTR

系统可用性

MTTF / (MTTF + MTTR) * 100%

系统可靠度

无论什么系统,都是由多个设备组成的,协同工作,而这多个设备的组合方式可以是串联,并联,也可以是混合模式,假设每个设备的可靠度为R1、R2、R3...Rn,则不用的系统的可靠性R的计算公式如下:

串联系统

一个设备不可靠,整个系统崩溃:

R = R_1 * R_2 * R_3....R_n

并联系统

所有设备不可靠,整个系统崩溃:

R = 1(1-R_1) * (1-R_2) * (1-R_3)

混合系统

R*(1-(1-R)^3)*(1-(1-R)^2)

扩展

假设可靠度为R,那么不可靠度为1-R

串联公式:

R = R_1 * R_2 * R_3....*R_n

并联公式:

R = 1 - (1-R_1) * (1-R_2) * (1-R_3)*....*(1-R_n)