软件设计师学习-第一章 计算机系统知识

wiki

本章知识点会涉及单选题型和案例分析题型,约占 2~8 分,内容偏重于概念知识。

1. 计算机系统基础知识

计算机系统组成

1. 计算机系统硬件组成

计算机的基本硬件系统由运算器、控制器、存储器、输入设备、输出设备五大部件组成。

  • 存储器:实现记忆功能的部件用来存放计算程序及参与运算的各种数据
  • 运算器:负责数据的算术运算和逻辑运算,即数据的加工处理
  • 控制器:负责对程序规定的控制信息进行分析,控制并协调输入,输出操作或内存访问
  • 输入设备:实现计算程序和原始数据的输入
  • 输出设备:实现计算结果输出
  • 运算器、控制器等集成为中央处理器(CPU)
  • 存储器分为内外存储器:内部存储器(速度高、容量小,一般临时存放程序、数据、中间结果)、外部存储器(速度低、容量大,长期保存程序和数据)
  • 输入和输出合称外设

计算机组成框图

2. CPU 的功能和组成

1. 功能和组成

功能:程序控制、操作控制、时间控制、数据处理。

组成:CPU 主要由运算器、控制器、寄存器组、内部总线等部件组成。

2. 运算器

执行所有算数运算(加减乘除、附加运算),执行所有逻辑运算和逻辑测试(与或非、零值测试、两值比较)。

组成:

  • 算数逻辑单元(ALU):实现算数运算和逻辑运算
  • 累加寄存器(AC):通用寄存器,为 ALU 提供工作区,存放运算结果和源操作数
  • 数据缓冲寄存器(DR):暂时存放指令或数据字,将不同时间段内的读写隔离
  • 状态条件寄存器(PSW):存放指令结果条件码内容,分为状态标志和控制标志

3. 控制器

控制 CPU 工作,决定其自动化。包括指令、时序、总线、中断控制逻辑。

  • 指令控制逻辑:完成取指令、分析指令、执行指令操作,分为取指令、指令译码、按指令操作码执行、形成下一条指令地址
  • 时序控制逻辑:为每条指令按时间顺序提供控制信号
  • 总线控制逻辑:信息通路的控制电路
  • 中断控制逻辑:控制中断请求,按照优先级排队

组成:

  • 指令寄存器(IR):指令从内存储器取出到缓冲寄存器,在 IR 暂存,在送入 ID
  • 程序计数器(PC):又称指令计数器,寄存信息和计数,存放指令执行地址,分为顺序执行和转移执行
  • 地址寄存器(AR):保存当前 CPU 所访问内存单元地址
  • 指令译码器(ID):分析指令操作码,分为操作码和地址码

4. 寄存器组

分为专用和通用寄存器:

  • 专用寄存器:用在运算器和控制器中,作用固定
  • 通用寄存器:有程序员规定其用途

5. 内部总线

分为数据总线、地址总线、控制总线 3 类。

6. 多核 CPU

各种 CPU 核心都具有固定的逻辑结构,一级缓存、二级缓存、执行单元、指令级单元、总线接口等逻辑单元都会有合理的布局。

Intel 的方案称为 “双芯”,将 AMD 的方案称为 “双核”。

3.数据表示

  • 机器数:各种数值在计算机中的表现形式,采用二进制,小数点隐含,有无符号和带符号之分
  • 真数:机器数对应的实际数值
  • 机器数字长:二进制数的位数

1. 无符号机器数

只能表示正数,可约定:

  • 小数点位置在机器数最低位之后,则是纯整数
  • 小数点位置在机器数最高位之前,则是纯小数

2. 带符号机器数

带符号机器数可采用原码、反码、补码、移码等编码方式。

  • 小数的机器码采用 “乘2取整,顺序排列” 取值,直到小数位为 0
  • 正数,原码、反码、补码相同。
  • 负数,反码等于符号位不变,其余按位取反,补码等于反码+1
  • 移码表示在数 X 上增加一个偏移量来定义,常用于表示浮点数的阶码

3. 定点数和浮点数

使用二进制数据表示小数有两种规范,即定点数和浮点数。

  • 定点数:小数点的位置固定不变的数。需要提前约定。
  • 浮点数:一个二进制数 N=2E×F,E为阶码,F为尾数。浮点数可以表示为 “数符+阶码+尾数”

浮点数的所能表示的数值范围由阶码决定,所表示的精度由尾码决定。

4. 校验码

码距:一个编码系统中合法编码之间的二进制位数。

介绍 3 种检验码:

  • 奇偶校验码(Parity Code):在编码中增加一位校验位,使编码中 1 的个数为奇数(奇校验)或偶数(偶校验),从而使最小码距为 2
  • 海明码(Hamming Code):利用奇偶性来查错和纠错的校验方法,详见 软件设计师学习-海明码
  • 循环冗余校验码(Cyclic Redundancy Check,CRC):由两部分组成,左边为信息码(数据),右边为校验码

2. 计算机体系结构

1. 计算机体系结构的发展

从宏观上按处理数量分类:单处理系统、并行处理与多处理系统、分布式处理系统。

从微观上按并行程度分类:

  • Flynn 分类:单指令流单数据流(SISD)、单指令流多数据流(SIMD)、多指令流单数据流(MISD)、多指令流多数据流(MIMD)
  • 马泽云分类法:字串行位串行(WSBS)、字并行位串行(WPBS)、子串行位并行(WSBP)、子并行位并行(WPBP)
  • Handler 分类法:基于硬件和计算并行度:处理机级、每个处理机器中算术逻辑单元级、每个算术逻辑单元中的逻辑门电路
  • Kuck 分类法:、单指令流单执行流(SISE)、单指令流多执行流(SIME)、多指令流单执行流(MISE)、多指令流多执行流(MIME)

1. 指令系统

指令集系统结构分类:

  • 操作数在 CPU 中存储方式,即操作数从内存中取出后保存在哪
  • 显式操作数的数量,即在典型的指令中有多少个显式命名的操作数
  • 操作数的位置,即任一个 ALU 指令的操作数能否在主存中,如何定位
  • 指令的操作,即在指令集中提供哪些操作
  • 操作数的类型和大小

2. 复杂指令集计算机(CISC)

主要弊端:

  • 指令集过复杂
  • 每条复杂指令都需执行一段解释性微程序才能完成,降低了处理速度
  • 指系统过大,编译程序冗长
  • 完善的中断控制导致动作复杂
  • 芯片种类多,出错几率大,成品率低

3. 精简指令集计算机(RISC)

关键技术:

  • 重叠寄存器窗口技术
  • 优化编译技术
  • 超流水及超标量技术
  • 在微程序技术中结合硬布线逻辑与微程序

4. 指令系统的优化

面向高级语言的优化思路是尽可能缩小高级语言与机器语言之间的语义差异。

面向操作系统的优化思路是进一步缩小操作系统与体系架构之间的语义差异。

5. 指令流水处理

指令的控制方式:顺序方式、重叠方式、流水方式。

流水线的种类有:

  • 从流水级别上分:部件级、处理级、系统级
  • 从流水功能上分:单功能、多功能流水线
  • 从流水连接上分:静态、动态流水线
  • 从流水是否反馈回路分:线性、非线性流水线
  • 从流水流动顺序上分:同步、异步流水线
  • 从流水线数据表示上分:标量、向量流水线

RISC 采用的流水技术有三种:超流水线、超标量线、超长指令字

6. 阵列处理机、并行处理机、多处理机

区别:

  • 阵列处理机:将重复的多个处理单元连成阵列,在单个控制部件的控制下,进行数据处理完成指令
  • 并行处理机:典型的有 SIMD、MIMD
  • 多处理机:由多台机器组成,共享一个主存储器和所有外设

2. 存储系统

存储器层次结构

分类:

  • 按存储器所处位置分:内存、外存
  • 按存储器构成材料分:磁存储器、半导体存储器、光存储器
  • 按存储器工作方式分:读写存储器、只读存储器
  • 按访问方式分:按地址访问、按内容访问存储器
  • 按寻址方式分:随机存储器、顺序存储器、直接存储器

1. 高速缓存(Cache)

  • 组成:控制器、存储器
  • 地址映像方法:直接映像、全相联映像、组相联映像
  • 替换算法:随机替换算法、先进先出算法、近期最少使用算法、优化替换算法
  • 性能分析:命中率与容量关系,容量越大,命中率越高
  • 多级 Cache:一级(L1Cache)、二级(L2Cache)

2. 虚拟存储器

把很大的程序(数据)分成许多较小的块,全部存储在辅存中,运行时把要用到的程序(数据)块先调入主存,并且把马上就要用到的程序块从主存调入高速缓存。这样就可以一边运行程序,一边进行所需程序(数据)块的调进或调出。

分为页式、段式、段页式虚拟存储器。

3. 外存储器

常用的两种外存储器:

  • 磁盘存储器:读取快,存储大,常见的有硬盘
  • 光盘存储器:采用聚焦激光束在介质上非接触地记录高密度信息。分为只读型(CD-ROM)、只写一次型(WORM)、可擦除型光盘。

4. 磁盘阵列

磁盘阵列是由多台磁盘存储器组成的一个快速、大容量、高可靠的外存子系统,常见的磁盘阵列称为廉价冗余磁盘阵列(RAID)。

廉价冗余磁盘阵列

3. 输入输出技术

1. 内存与接口编址方法

  • 独立编址方法:两者是独立的地址空间,且互相隔离
    • 缺点:指令少,功能弱
  • 统一编址方法:公用地址空间
    • 优点:内存指令可用于接口,增强了接口操作工程
    • 缺点:内存不连续,维护时需要根据参数区分接口和内存指令

2. 直接程序控制

直接程序控制是指外设数据的输入/输出过程是在 CPU 执行程序的控制下完成的。分为两种情况:

  • 无条件传送:外设可以随时接收 CPU 数据,并向 CPU 输入数据
  • 程序查询方式:需要通过程序查询外设状态,降低了 CPU 效率,无法实时响应外设的异常

3. 中断方式

中断方式即由程序控制 I/O 的方法,缺点在于 CPU 必须等待 I/O 系统完成数据的传输任务,而且要定期查询 I/O 系统的状态,降低了性能。

中断处理方法:多中断信号线法、中断软件查询法、菊花链法、总线仲裁法、中断向量表法。

在进行中断优先级控制时解决以下两种情况:

  • 当不同优先级多个中断源提出请求时,优先响应优先级高的
  • 对某一中断源服务,又优先级更高的提出,CPU 暂时当前,处理高优先级的,称为中断嵌套

4. 输入输出处理机(IOP)

IOP 数据传送的方式包括字节多路方式、选择传送方式和数组多路方式。

4. 总线结构

任何连接两个以上电子元器件的导线都可以称为总线。可分为:

  • 数据总线(DB):在CPU与RAM之间来回传送需要处理或是需要储存的数据
  • 地址总线(AB):用来指定在RAM(Random Access Memory)之中储存的数据的地址
  • 控制总线(CB):将微处理器控制单元(Control Unit)的信号,传送到周边设备,一般常见的为 USB Bus和1394 Bus

3. 计算安全

1. 概述

1. 信息安全的基本要素

  • 机密性: 确保信息不暴露给未授权的实体或进程
  • 完整性: 只有被允许的人才能修改数据,并能判断数据是否已被篡改
  • 可用性: 得到授权的实体在需要时可访问数据
  • 可控性: 可控制授权范围内的信息流向及行为方式
  • 可审查性: 对出现的安全问题提供调查的依据和手段

2. 计算机的安全等级

计算机系统中的三类安全性是指技术安全性、管理安全性、政策法律安全性。重要的安全评估准则有:

  • 美国国防部和国家标准局推出的《可信计算机系统评估准则》(TCSEC)。
  • 加拿大的《可信计算机产品评估准则》(CTCPEC)。
  • 美国制定的《联邦(最低安全要求)评估准则》(FC)。
  • 欧洲英、法、德、荷四国国防部门信息安全机构联合制定的《信息技术安全评估准则》(ITSEC)。
  • 美国制定的《信息技术安全通用评估准则》(CC)。

《可信计算机系统评估准则》(TCSEC)将系统划分为 4 组 7 个等级:

  • A1: 可验证安全设计
  • B3: 安全域
  • B2: 结构化安全保护
  • B1: 标记安全保护
  • C2: 受控访问控制
  • C1: 自主安全保护
  • D: 无安全功能

3. 安全威胁

典型的安全威胁

4. 影响数据安全的因素

主要分为内部因素和外部因素。

2. 加密技术和认证技术

1. 加密技术

对数据加密的技术分为对称加密(私人密钥加密)和非对称加密(公开密钥加密)。

加密/解密算法的设计通常需要满足 3 个条件: 可逆性、密钥安全、数据安全。

2. 对称加密算法

常见的对称加密算法:

  • 数据加密标准(DES):主要采用替换和位移的方法加密
  • 三重DES(3DES,又称 TDEA):在 DES 基础上采用三重 DES,效果相当于将密钥的长度加倍
  • RC-5:在 RCF2040 中定义,RSA 数据安全公司的很多产品都在使用它
  • 国际数据加密算法(IDEA):在 DES 基础上发展来
  • 高级加密标准(AES):基于排序和置换运算,排列是对数据重新进行安排,置换是将一个数据单元替换

3. 非对称加密算法

非对称加密需要公钥和私钥,他们总是成对的。

  • 用公钥(私钥)加密的,只有对应的私钥(公钥)才能解密
  • 如果可以用公钥(私钥)解密,则必然是对应的私钥(公钥)加的密

非对称加密算法有两个不同的体制:

非对称加密算法的体制模型

RSA 算法是常见的公钥加密算法。

4. 认证技术

公开密钥体系(PKI)的基本构成:

  • 认证机构:数字证书的申请及签发机关(CA)
  • 数字证书库:存储已签发的数字证书及公钥
  • 密钥备份及恢复系统
  • 证书作废系统
  • 应用接口

5. 数字签名和数字加密

数字签名主要过程,即 “私钥签名,公钥验签” ,对应认证模型:

  • 信息发送者使用一个单项散列函数(Hash)对信息形成摘要(Digest)
  • 信息发送者使用私钥加密信息摘要,生成数字签名(Signature)
  • 信息发送者把信息本身和数字签名一起发送出去
  • 信息接收者使用发送者的公钥,解密发来的数字签名,得到摘要,确认信息发送者身份
  • 信息接收者使用同样散列函数对接收信息生成新摘要,通过比较新摘要和解密的摘要是否一致,确认信息是否被修改

数字加密主要过程,对应加密模型:

  • 信息发送者需要发送信息时,首先生成一对密钥,用该对密钥加密要发送的报文
  • 信息发送者用信息接收者的公钥加密上述对称的密钥
  • 信息发送者将上述两步结果一起发送给信息接收者,称为数字信封
  • 信息接收者使用自己的私钥解密被加密的对称密钥,再用对称密钥解密被发送者加密的密文,得到真正的报文

3. 计算机可靠性

  • 计算机可靠性:从它开始运行到某时刻 t 这段时间内能正常运行的概率,用 R(t) 表示。
  • 计算机失效率:单位时间内失效的元件数与元件总数的比例,用 λ 表示。当失效率 λ 为常数时,可靠性与失效率的关系为: R(t) = e-λt
  • 平均无故障时间(MTBF):两次故障之间的系统能正常工作的时间的平均值,即 MTBF = 1/λ
  • 平均修复时间(MTRF):从故障发生到机器修复平均所需时间。用来表示计算机的可维修性和维修效率。
  • 计算机可用性:计算机的使用效率,用系统在执行任务的任意时刻能正常工作的概率 A 表示,即 A = MTBF / (MTBF + MTRF)

计算机的 RAS 指可靠性 R=MTBF/(1+MTBF)、可用性 A=MTBF/(MTBF+MTRF)、可维修性 S=1/(1+MTRF) ,这 3 个指标来衡量一个计算机系统。

可靠性模型:

  • 串联系统可靠性:R = R1×R2×…×Rn
  • 并联系统可靠性:R = 1-(1-R1)(1-R2)…(1-Rn)
  • 串联系统平均无故障时间:λ = λ1+λ2+…+λn。
  • 相同子系统并联系统平均无故障时间:λ = 1/(λ1*(1+1/2+…+1/n))。

4. 计算计算机系统性能评测常用方法

时钟频率,指令执行速度,等效指令速度法,数据处理速率(PDR)

4. 其他补充

1.寻址方式

寻址指令:操作数+寻址特征+形式地址。

寻址速度由快到慢依次为:立即寻址,寄存器寻址,直接寻址,寄存器间接寻址,间接寻址。

  • 立即寻址:操作数就包含在指令中
  • 直接寻址:操作数存放在内存单元中,指令中直接给出操作数所在的存储单元的地址
  • 寄存器寻址:操作数存放在某一寄存器中,指令中给出存放操作数的寄存器名
  • 寄存器间接寻址:操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中
  • 间接寻址:指令中给出操作数地址的地址

2. 内存编址

  • 按字编址:将主存中的空间以字长(如32bit)为单位进行分割,每块给一个地址编号
  • 按字节编址:按字节(8bit)为单位划分主存空间的