软考架构-计算机基础
软考架构-计算机基础
中央处理单元CPU
CPU的功能
- 程序控制
- 操作控制
- 时间控制
- 数据处理
CPU的组成
- 运算器
- 算数逻辑单元ALU
- 累加器
- 状态条件寄存器
- 缓冲寄存器
- 控制器
- 指令寄存器
- 程序计数器
- 地址寄存器
- 指令译码器
- 寄存器组
- 总线
进制转换
二进制和十进制
- 二进制转十进制
- 无符号的二进制 从右到左,依次乘以2的幂次,然后相加
- 有符号的二进制 从右到左,依次乘以2的幂次,最高位为符号位,0为正,1为负
- 小数部分 从左到右,依次除以2的幂次,然后相加
- 十进制转二进制
- 整数部分:除2取余法,从下往上读
- 小数部分:乘2取整法,从上往下读
具体转换方法
二进制转十进制
整数部分:
- 例:1101₂ = 1×2³ + 1×2² + 0×2¹ + 1×2⁰ = 8 + 4 + 0 + 1 = 13₁₀
小数部分:
- 例:0.101₂ = 1×2⁻¹ + 0×2⁻² + 1×2⁻³ = 0.5 + 0 + 0.125 = 0.625₁₀
有符号数:
- 原码:符号位0为正,1为负,数值部分按无符号处理
- 反码:正数不变,负数符号位不变,数值位取反
- 补码:正数不变,负数在反码基础上+1
十进制转二进制
整数部分(除2取余法):
- 例:13₁₀ → 二进制
- 13 ÷ 2 = 6 余 1
- 6 ÷ 2 = 3 余 0
- 3 ÷ 2 = 1 余 1
- 1 ÷ 2 = 0 余 1
- 从下往上读:1101₂
小数部分(乘2取整法):
- 例:0.625₁₀ → 二进制
- 0.625 × 2 = 1.25 取整数部分 1
- 0.25 × 2 = 0.5 取整数部分 0
- 0.5 × 2 = 1.0 取整数部分 1
- 从上往下读:0.101₂
其他进制转换
- 八进制转二进制:每位八进制数对应3位二进制数
- 十六进制转二进制:每位十六进制数对应4位二进制数
数据表示
计算机中均采用补码进行加减运算 移码的主要作用是表示浮点数的指数(阶码)
原码
- 带符号的二进制表示
反码
- 正数不变,负数符号位不变,数值位取反
补码
- 正数不变,负数在反码基础上+1
移码
- 补码的符号位取反
浮点数表示
N= 尾数*基数^指数
- 尾数 用补码表示,位数决定数的有效精度,位数越多精度越高
- 阶码 用移码表示,位数决定数的范围,位数越多范围越大
- 对阶时,小数向大数看齐,较小数的尾数右移
校验码
奇偶校验
添加一个校验位,使得整个数据中1的个数满足奇数或者偶数的要求
编码方法
- 奇校验 整个校验码(有效信息位+检验位)中1的个数为奇数
- 偶校验 整个校验码(有效信息位+检验位)中1的个数为偶数
- 如果有奇数个位发生误码,则奇偶性发生变化,可以检错,不能纠错
- 如果有偶数个位发生误码,则奇偶性不变,不能检测错误(漏检)
模二除法
模二除法是CRC校验码的基础运算,遵循以下规则:
模二除法步骤
- 从高位开始,够除就除(商1),不够除就商0
- 每次除法用异或运算代替减法
示例:1100100100 ÷ 1011
被除数:1100100100
除数: 1011
正确的模二除法过程:
1 1 1 0 1 1 1
____________________
1011)1 1 0 0 1 0 0 1 0 0
1 0 1 1 ← 101 ÷ 101 = 1,101 ⊕ 101 = 000
--------
1 1 1 1 ← 去掉前导0得1,下移一位得11
1 0 1 1 ← 11 < 101,商0,下移一位得110
--------
1 0 0 0 ← 110 ÷ 101 = 1,110 ⊕ 101 = 011
1 0 1 1 ← 去掉前导0得11,下移一位得110
--------
0 1 1 0 ← 110 ÷ 101 = 1,110 ⊕ 101 = 011
0 0 0 0 ← 去掉前导0得11,下移一位得110
--------
0 1 1 0 1 ← 11 < 101,商0,最终余数为11
1 0 1 1
-------
1 1 0 0
1 0 1 1
--------
1 1 1 0
1 0 1 1
-------
0 1 0 1
商:1 1 1 0 1 1 1
余数:101
CRC循环冗余检验码
步骤
- 约定一个生成多项式G(x),多项式要求必须包含最低次项
- 发送方基于数据和生成多项式计算出差错检测吗(冗余码),将其添加到数据后面一起传输
- 接收方通过生成多项式计算收到的数据是否产生误码
构造传输信息
待发送信息为101001, 生成多项式G(x) = x^3 + x^2 + 1
- 构造被除数 待发送信息后面添加生成多项式最高次数个0 最高次为3->101001000
- 构造除数 生成多项式各项系数构成的比特串 -> 1101
- 模二除法 101001000 ÷ 1101 余数为 1
- 检查余数 余数位数应与生成多项式最高次数相同,位数不够,余数前补0 -> 001 编码结果为101001001
解码检错
- 构造被除数 接受到的信息就是被除数 101001001
- 构造除数 生成多项式各项系数构成的比特串 -> 1101
- 模二除法 101001001 ÷ 1101 余数为 0
- 检查余数 余数为0,说明没有误码
海明校验
*** 能检错也能纠错 ***
设数据位n位,校验位K位,则n、k必须满足一下关系 2^k-1>=n+k
编码规则
- 检验码Pi必须放在2^(i-1)的位置上
- 海明码中的任何一位都是由若干个校验位来校验
- 被校验的海明位的下标等于所有校验该位的校验位的下标之和,而校验位由自身校验
做题技巧
- 奇校验、偶校验 则可以通过判断编码的1的个数
- 通过2^k-1>=n+k 来判断长度
- 海明码必定包含原始信息,检验吗会插入到信息中间
- 海明码的位是2^(i-1) 即第1位、第2位、第4位、第8位
存储器的层次结构
存储器按照访问速度和容量大小形成层次结构,遵循容量越大速度越慢,速度越快价格越高的规律。
- 寄存器 CPU内部 访问最快、容量最小、价格最高
- 高速缓存 SRAM L1 L2 L3 越来越大、越来越慢
- 内存、主存 DRAM 断电丢失数据
- 外存、辅存 容量大、价格低、最慢 固态SSD 机械硬盘、光盘、u盘
- 外存与内存 交互可以由软件和硬件结合实现
- 内存与Cache缓存交互只能由硬件实现
- Cache对程序员透明无法操作
- 寄存器可以使用汇编语言操作
- Cache的作用是解决CPU与内存速度、容量不匹配的问题
高速缓存Cache
-
特点
- 位于主存与CPU之间
- Cache对程序员透明无法操作
- 设置多级高速缓存Cache以提高命中率
- 使用Cache改善系统性能的依据是局部性原理
-
局部性原理
- 时间局部性 最近被访问的存储位置很可能在不久的将来再次被访问 主要体现在循环体内的指令
- 空间局部性 如果一个存储位置被访问,那么它附近的存储位置也很可能被访问 主要体现在顺序访问数组
-
Cache地址影像方法
- 直接相连映像 主存的块与Cache块的对应关系是固定的 硬件电路设计、地址变换比较简单 冲突率高、灵活性差
- 全相连映像 主存与Cache分成大小相同的块,允许主存中的任何一块可以存入Cahce的任何块中 冲突率低、灵活 电路难以设计实现、速度慢
- 组相连映像 Cache中的块分成组,组采用直接相连印象,组中的块使用全相连映像 是直接相连和全相连的折中
-
Cache 替换算法
- 随机替换 RAND
- 先进先出 FIFO
- 最近最少使用 LRU 近期最久被使用
- 最不频繁使用 LFU 使用了计数器
- 优化替换算法
-
Cache的读写过程
- 写直达 同时写Cache和内存
- 写回 只写Cache ,淘汰页面时,写回内存
- 标记法 只写内存,并将标志位情侣,若用到此数据,只需要再次调取
输入输出技术
- 直接程序控制
- 分为无条件传送和程序查询方式
- 降低了CPU的效率
- 对外部的突发事件无法做出实时响应
- 程序终端方式
- 利用中断方式完成数据的输入输出
- CPU接到中断请求信号后,保存正在执行的程序现场
- 与程序控制方式相比,因为CPU无需等待而提高了效率
- 鼠标、键盘
- DMA
- 在主存与IO设备之间建立数据通路进行数据的交换处理
- 在DMA传送过程中无需CPU的干预
- DMA传送数据时要占用系统总线,此时CPU不能使用总线
- 显卡、声卡、网卡
- 输入输出处理机(IOP)
- 分担了CPU的一部分功能,可以实现对外部设备的统一管理,完成外部设备与主存之间的数据传送
- 大大提高了CPU的工作效率,这种效率的提高是以增加更多的硬件为代价
flynn 分类法
基于指令流和数据流的数量来分类并行计算机系统
- SISD (Single Instruction, Single Data) 单指令单数据流
- 早期巨型机 冯诺依曼架构
- SIMD (Single Instruction, Multiple Data) 单指令多数据流
- 数字信号处理、图像处理、GPU 多媒体信息处理领域
- MISD (Multiple Instruction, Single Data) 多指令单数据流
- 没有实际应用
- MIMD (Multiple Instruction, Multiple Data) 多指令多数据流
- Intel AMD的多核处理器
CISC RISC
复杂指令集和精简指令集
复杂指令集
- 指令数量多,使用频率差别大,可变长格式
- 寻址方式 支持多种
- 实现方式 微程序控制技术 微码
- 其他 研制周期长
- 代表 X86
精简指令集
- 指令 数量少、使用频率接近,定长格式。大部分为单周期指令,操作寄存器,只有Load/tsore 操作内存
- 寻址方式 支持方式少
- 实现方式 增加了通用寄存器硬布线逻辑控制为主,更适合流水线
- 其他 优化编译、有效支持高级语言
- 代表 RISC-V ARM
流水线
指令通常需要通过 取指、 分析、 执行三个步骤,
在没有流水线的情况下,指令需要经过取指、分析、执行三个步骤,再执行下一条指令 在有流水线的情况下,取指完成后,就可以取指下一个指令了,分析完第一条指令后,就可以执行第一条指令了,可以更加紧凑
计算公式
- 流水线的执行周期是执行时间最长的一个步骤
- 理论公式 (t1+t2+t3+…+tk)+(n-1)t
- 实践公式 K*t+(n-1)t K为一条指令的K个步骤
- 加速比 不使用流水线与使用流水线的执行周期的比值 s=nk/(k+n-1)
- 吞吐率 单位时间内流水线完成的指令数 TP = 指令数/执行时间
- 最大吞吐率 TPmax = 1/执行周期
冯诺依曼结构和哈佛结构
- 冯诺依曼结构又称普林斯顿结构,将程序和数据存储在同一个存储器中。用于PC、AMD、Intel 指令和数据通过相同的数据总线传输
- 哈佛结构,将程序和数据存储在不同的存储器中。一般用于嵌入式、数字信号处理DSP。指令与数据分开存储,可以并行读取。具有四条总线:指令数据总线、数据数据总线、指令地址总线、数据地址总线
总线
-
数据总线 在CPU与RAM之间来回传送数据,双向
-
地址总线 在指定RAM之中存储的数据的地址,单向
-
控制总线 将微处理器控制单元,传送到周边设备。每条线本身是单向的,但整体上是双向的
-
特点:
- 共享 部件之间可以进行信息交换
- 分时 同一时刻仅允许一个部件发送信息,但允许多个部件接受相同的信息
- 串行总线 长距离传输,信息一位一位的传输
- 并行总线 短距离传输,信息多位多位的传输
- 单工 信息只能单方向传输
- 半双工 可切换方向的单工
- 全双工 可双向传输
加密技术和认证技术
对称加密
- 特点: 算法公开,加密解密速度快,适合大量数据
- 加解密过程: 明文+加密算法+私钥=>密文 密文+解密算法+私钥=>明文
- 常用算法: DES 3DES AES RC IDEA PGP
- 缺点:强度不高,密钥管理复杂
非对称加密
- 特点:使用一对秘钥,公钥和私钥。私钥自己保存不对外公开,公钥是公开的。可以使用其中一个进行加密,用另一个解密
- 加密模型 明文使用公钥加密,密文使用私钥解密
- 认证模型 明文通过私钥加密,密文使用公钥解密
- 常用算法: RSA DSA ECC(椭圆曲线算法)
- 缺点:话费时间长,速度慢,不适合对文件加密,只适用于少量数据
信息摘要
- 特点:对于特定文件,信息摘要是唯一的
- 算法: MD5 SHA-1 SHA-256
- 安全性 低------------>高 MD5 SHA-1 SHA-256
数字签名
- 特点:使用非对称密码机制,使用私钥加密,公钥解密
- 功能
- 报文鉴别 用于证明来源,接受者可以通过签名确定发送者
- 防止抵赖 防止发送者否认签名
- 防止伪造 防止接受者伪造发送者的签名
计算机可靠性模型
- 串联系统 可靠性R = R1 * R2 * R3
- 并联系统 可靠性R = 1 - (1 - R1) * (1 - R2) * (1 - R3)
软考架构-计算机基础
https://github.com/px6707/myblog 作者
panxiao
发布日期
2025 - 08 - 28
许可证
Unlicensed
评论