软考中级软件设计师--1.计算机系统知识

计算机组成与结构

参考

  • https://www.yuque.com/saodai/ss8tp9
  • B站视频

计算机系统知识

计算机系统由两部分组成:硬件、软件

1. 计算机硬件系统五大组成部分

  • 控制器、运算器、存储器、输入设备、输出设备
  • 存储器分为 内部存储器(内存、容量小、速度快、存放临时数据,断电消失)和外部存储器(硬盘、光盘、容量大、速度慢、长期数据保存)
  • 输入设备、输出设备统称外设
  • 主机(CPU + 主存储器)

2. 中央处理单元 CPU

  • CPU 组成:由运算器、控制器、寄存器组(读取速度最快)、内部总线组成
  • CPU 功能:实现程序控制、操作控制、时间控制、数据处理功能
  • 运算器组成(常考):
    • 算数逻辑单元 ALU(Arithmetic logic unit):实现对数据的算数和逻辑运算,提供一个工作区
    • 累加寄存器 AC(Accumulator): 运算结果或者源操作数的存放区
    • 数据缓冲寄存器 DR(Data Register): 暂时存放内存的指令或数据
    • 状态条件寄存器 PSW(Program Status Word): 保存指令运行结果的条件吗内容,如溢出标志等
  • 运算器功能:执行算数运算和逻辑运算
  • 控制器:
    • 指令寄存器 IR(Instruction Register): 暂存当前CPU正在执行的指令
    • 程序计数器 PC(Program Counter):存档指令执行地址
    • 地址寄存器 AR(Address Register):保存当前CPU所访问的内存地址
    • 指令译码器 ID(Instruction Decoder):分析指令操作码
  • 控制器功能:控制整个CPU的工作,最为重要,包括程序控制、时序控制
  • 程序员可以访问通用寄存器存取数据,也可以访问状态寄存器和程序计数器,但是不能访问指令寄存器

3. 数据进制转换

  • 二进制、十六进制(0x18F、18FH)
  • R 进制转10进制 案例:6进制 5043 转为十进制 => 36^0 + 46^1 + 06^2 + 56^3 => 1107
  • 十进制转 R 进制 案例:十进制 200 转 6 进制 => 200/6 = 33 余 2 => 33/6 = 5 余 3 => 5/6 = 0 余 5 => 6进制为余数的从后向前排列 532
  • m 进制转为 n 进制:通过十进制中转

4. 数的表示 (考得少)

  • 最小数据单位 b(比特bit)
  • 最小存储单位 1B(字节 byte)=8b
  • 1KB=1024B; 1MB=1024KB; 1GB=1024MB
  • 机器数:各种数值在计算机中表示的形式,特点是使用二进制计数制,数的符号用 0 和 1表示,小数点隐含不占位置 (例如 +0(0 0000000)-0(1 0000000))其中第一位是符号为,后七位表示数值位
  • 定点表示法:分为纯小数与纯整数两种,其中小数点不占存储位
    • 纯小数:约定小数点在机器数的最高数值位之前
    • 纯整数:约定小数点的位置在机器数的最低数值位之后
  • 真值:机器数对应的实际数值

5. 数的编码方式(不怎么考)

  • 原码:一个数的正常二进制表示 例如 +0(0 0000000)-0(1 0000000)
  • 反码:正数的反码即为原码;负数的反码是在原码的基础上,除了符号位以外,其他各位按位取反(例如如上数值的反码为 +0(0 0000000)-0(1 1111111))
  • 补码:正数的补码即原码;负数的补码是在原码基础上,除了符号位以外,其他各位按位取反,而后在末位+1,若有进位则产生进位 +0(0 0000000)-0(0 0000000))-0的补码有溢出
  • 移码:用作浮点运算的阶码,无论正数负数,都是将该原码的补码的首位(符号位)取反得到
  • 计算机系统中常采用补码来表示和运算数据,原因是采用补码可以简化计算机运算部件的设计

6.浮点表示(常考)

  • 浮点数 N = F * 2^E, 其中E称为阶码(带符号的纯整数),F称为尾数(带符号的纯小数),类似于十进制的科学记数法 例如 101.011=0.101011*2^3
  • 浮点数所能表示的数值范围由阶码确定,所表示的数值精度由尾数确定
  • 浮点数运算需要先 1.对阶,即将阶码换算成相同的后再计算,小阶向大阶对接,否则会损失尾数的精度 》2. 尾数计算 》3.结果格式化
  • 浮点数存储格式:| 阶符 | 阶码 | 数符 | 尾数 | ,一般尾数用补码,阶码用移码
  • 规格化浮点数:将尾数的绝对值限定在 [0.5, 1]
  • 浮点数的范围:M: 尾数补码位(包括数符),R: 阶码补码位(包括阶符),则最大正数 +(1-2^-M+1) * 2(2R-1 - 1), 最小负数 -1 * 2(2R-1 - 1)
  • 定点表示法与浮点表示法:定点表示法分为定点整数和定点小数,定点表示法的小数点不需要占用存储位,总位数相同时浮点表示法可以表示更大的数
  • 定点小数在机器字长为 n 的表示范围是定点整数表示范围除以 2^n-1

7. 寻址

  • 立即寻址:操作数包含在指令中
  • 直接寻址:操作数存在内存单元中,指令中给出操作数所在存储单元的地址
  • 寄存器寻址:操作数存在某一个寄存器中,指令中给出存放操作数的寄存器名,比直接寻址要快,寄存器"距离" CPU 更近
  • 寄存器间接寻址:操作数存在内存单元中,寄存器中存放了操作数所在的内存地址,指令中则存了寄存器名,也就是说寻址路径 指令 -> 寄存器 -> 内存
  • 间接寻址:指令中给出操作数地址的地址
  • 寻址效率:立即寻址 > 寄存器寻址 > 直接寻址 > 寄存器间接寻址 > 间接寻址
  • 采用不同寻址方式的目的:扩大寻址空间,提高编程灵活性

8. 校验码

  • 码距:指一个编码系统中,两个合法编码之间至少有多少个二进制不同
  • 奇偶校验码:在编码中增加一个校验位来使 1 的个数为奇数或者为偶数,码距为2
  • 奇偶校验只能校验错误不能纠正错误
  • 海明码:一种利用奇偶性来纠错的校验方法,码距为 3,设数据位有n位,校验位有k位,则 n 与 k 必须满足以下关系:2^k-1 >= n+k
  • 循环冗余校验码(CRC):可以检错但不能纠错,码距为 2,由 k个数据位 + r个校验位组成,校验码由信息码产生,校验码位数越多校验能力越强,求 CRC 编码时,采用模二运算

9. RISC 和 CISC

  • RISC: 精简指令集计算机,指令少,复杂度低,指令长度固定,寻址方式少,通用寄存器数量多,支持流水线技术,采用硬布线控制逻辑,组合逻辑控制器
  • CISC:复杂指令集计算机,指令多,复杂,指令长度变化,寻址方式复杂多样,通用寄存器数量一般,也支持流水线技术,使用微程序控制技术

10. 流水线技术

  • 流水线:多条指令重叠进行操作的一种准并行处理实现技术
  • 指令分为三个部分:取指 -> 分析 -> 执行
  • 一条完整指令的执行时间 = 取指时间 + 分析时间 + 执行时间
  • 流水线周期:指令步骤中所花时间最长的一段,例如:取指1ms -> 分析3ms -> 执行2ms 则流水线周期为 3ms,表示除了第一条外,后边的指令都只需要多花 3ms 就能完成
  • 流水线总共用时:理论公式:一条完整指令完成时间 + (指令总数-1)*流水线周期;实践公式:给第一条指令充分的时间,及第一条指令的每一个步骤都用一个流水线周期的时间
  • 吞吐率:指单位时间内流水线所完成的任务数量,计算公式:指令条数 / 流水线总共用时,最大吞吐率 = 1 / 流水线周期
  • 异步控制会延长时间,降低性能,每次操作结束后要发出结束信号

11. 存储器

  • 按照所处位置分类:内存;外存
  • 按工作方式分类: 读\写存储器 RAM;只读存储器 ROM
  • 按访问方式分类:按内容访问存储器(例如:相连存储器),按地址访问存储器
  • 按寻址访问存储器:随机存储器、顺序存储器、直接存储器
  • 闪存,一种只读存储器ROM,删除时以块为单位删除,类比为 U 盘
  • 虚拟存储器,由主存 + 辅存 组成
  • 存储系统的层次结构,由内而外: CPU 内部通用寄存器 》Cache(SRAM 静态随机存储器) 》主\内存储器(DRAM 动态随机存储器,需要周期性刷新来保持数据) 》外存储器
  • 空间局部性:若一个存储单元被访问,则其临近的存储单元在不久的将来也很可能被访问,这种特性就是空间局部性
  • 时间局部性:若一个存储单元被访问,则这个单元在以后也可能被再次访问,这种特性就是时间局部性

12. Cache 高速缓存

  • Cache 高速缓存:位于 CPU 与 主存之间,用来存放当前最活跃的程序和数据(主存的部分拷贝信息),速度比主存块 5~10倍,对程序员来说是透明的(程序员不可操作)
  • Cache 容量越大,命中率越高,逐渐接近 100%,但是随着容量变大,Cache 成本和命中时间也在增大
  • 替换算法:目标是使 Cache 获得更高的命中率
    • 随机替换算法
    • 先进先出算法
    • 近期最少使用算法
    • 优化替换算法
  • Cache 中的地址映像方法
    • 地址映像:CPU 工作时送出的主存地址,而要从 Cache 中读写信息,就需要将主存地址换算成Cache 地址,这种转换称为 地址映像
    • 直接映像:主存分区,Cache分块,主存每个区有与 Cache 相同的分块,主存每个区的块与 Cache 的块的对应关系时固定的,硬件电路简单,但是冲突率高
    • 全联映像:主存不分区,主存与Cache按照相同的大小分块 Cache 的块可以对应任意的主存上的块,电路设计难,只适用于小容量的 Cache,冲突率低
    • 组相连映像:是直接相连与全联映像的折中,先分组,组与组之间的直接映像,组内是全联映像
    • 发生冲突概率:全联映像《 组相连映像 《 直接映像
    • Cache 与 主存之间的映射是由硬件自动完成的

13. 中断

  • 中断:遇到急需处理的事件时,暂停当前正在运行的程序,转去执行有关程序,处理完后返回源程序,这个过程称为中断
  • 中断向量:提供中断服务程序的入口地址
  • 中断响应时间:发出中断请求开始到进入中断服务程序,这一段时间
  • 保存现场目的:为了能正确的返回被中断的程序然后继续执行

14. 输入输出(I/O)控制方式

  • 程序查询方式(程序直接控制方式):
    1. CPU 和 I/O 只能串行工作,CPU 需要一直轮询检查状态,长期处于忙等状态,CPU 利用率低
    2. 一次只能读写一个字
    3. 由 CPU 将数放入内存
  • 中断驱动方式:
    1. I/O 设备通过中断信号,主动向CPU 报告 I/O 操作已完成
    2. CPU 与 I/O 外设可并行操作, CPU 利用率提升
    3. 一次只能读写一个字
    4. 由 CPU 将数据放入内存
  • 直接存储器存储方式(DMA方式):
    1. CPU 向 I/O 模块发出数据读写的命令,然后CPU 就可以做其他事情,I/O 模块与内存建立直接的数据通路, I/O 模块操作完成后,通过中断信号告知 CPU
    2. CPU 与 I/O 外设可并行工作
    3. 由外设直接将数据放入内存
    4. 一次读写的单位是块而不是字
    5. 仅在传输数据块的起始和结束需要 CPU 的干预
    6. CPU 在一个总线周期结束时响应 DMA 的请求,每传输一个数据都要占用一个存储周期
  • 由 I/O 设备提出的中断请求是可屏蔽中断,电源掉电是不可屏蔽中断

15. 总线

  • 总线:链接计算机有关部件的一组信号线,是计算机用来传送信息代码的公共通道
  • 总线分类:数据总线,地址总线,控制总线
  • 总线的优点:简化系统结构,减少连接线数目,便于接口设计,便于故障诊断和维修,同时降低了成本
  • 总线带宽计算:时钟频率 * 每秒传送的字节
  • 地址总线宽度计算:地址总线的宽度表明 CPU 的寻址能力,与内存大小相关,内存多大就需要多宽的地址总线,例如:内存容量为 4GB -> 2^32 B -> 地址总线宽度为 32
  • 数据总线宽度计算:数据总线宽度就是处理机的字长
  • PCI:并行内总线,系统总线;SCSI: 并行外总线

16. 加密技术与认证技术

  • 加密解决的问题:窃听
  • 认证解决的问题:篡改、假冒、否认
  • 加密技术
    • 对称加密:加密解密用的是同一把秘钥,且只有一把秘钥;加解密速度快,适合大量明文数据,秘钥分发有缺陷
    • 非对称加密:加解密不是同一把秘钥,一共有两把秘钥(公钥私钥);加解密速度慢,秘钥分发没缺陷,公钥私钥之间不可推算
    • 混合加密:就是将对称加密与非对称加密混合使用:先用对称加密将大量明文数据加密,再用非对称公钥对“对称加密的秘钥”加密,并随着加密明文一起传给接收方,接收方使用非对称的私钥解密出 “对称加密的秘钥”,再用 “对称加密的秘钥” 解密明文
  • 认证技术
    • 摘要:将发送的明文Hash算法后得到摘要,放在密文后一起发送过去,与接收方解密后的明文 Hash 算法的摘要结果对比,一致则没有篡改
    • 数字签名:在摘要的基础上,对摘要进行私钥签名,接收方通过公钥对数字签名进行解密,可以判定是否被篡改,假冒,否认,用来验证消息来源的真实性
    • 数字证书:使用第三方机构CA 的私钥来对用户的公钥进行数字签名,来保证公钥不被篡改,接收方用 CA 的公钥解密来得到发送方的公钥
    • 用数字证书来认证用户身份,用数字签名来防篡改、假冒、否认
  • 加密算法
    • 对称加密算法(私钥,私有秘钥加密,共享秘钥加密算法)
      • DES 3DES RC-5 IDEA AES RC4
    • 非对称加密算吗(公钥,公开秘钥加密)
      • ECC RSA DSA
    • Hash 函数、MD5摘要算法、SHA-1 安全散列算法

17. 系统可靠性

  • 设一个系统由 N个子系统组成,子系统的可靠性分别为 R1 R2 R3
  • 串联系统可靠性:R = R1R2R3
  • 并联的系统可靠性:R = 1 - (1-R1)(1-R2)(1-R3)

18. 其他

  • 指令寄存器的位数取决于指令字长
  • 计算机分级存储速度依次为:CPU 内部通用寄存器 》Cache 》内存 》外存
  • 安全需求:
    • 物理线路安全 – 机房安全
    • 网络安全 – 入侵检测
    • 系统安全 – 漏洞补丁管理
    • 应用安全 – 数据库安全

你可能感兴趣的:(软考准备,软考,软件设计师)