计算机组成结构
CPU(中央处理单元)
前景知识
计算机硬件系统组成:
- 运算器
- 控制器
- 存储器
- 输入设备
- 输出设备
cup的功能
获取指令 -> 译码指令->执行指令
控制器:
-
程序控制:控制程序的执行顺序。
-
操作控制:控制相应的部件完成操作
-
时间控制:cpu对操作进行时间上的控制
运算器
- 数据处理:对数据进行算数运算或者逻辑运算进行加工。
运算器
算数逻辑单元(ALU):对数据进行算数运算和逻辑运算。
累加寄存器(AC):提供给算数逻辑单元操作的空间。
数据缓存寄存器(DR):CPU、内部设备、外部设备的总转站。
条件状态寄存器(PSW):标志进位,错误...状态。
控制器
保证程序的正常执行,并且可以处理异常。
指令 = 操作码 + 地址码 例如 2+(操作码)3(地址码)
指令寄存器(IR):暂存指令。
指令译码器(Id):翻译操作码。发出具体控制信号。
地址寄存器(AR):保存当前cpu访问的地址单元。解决cpu快内存慢。
程序计数器(PC):保存下个指令的地址。
*进制转换
原码
二进制码
范围
128个数 0 - 127来表示
127 = 0 111 1111
-127=1 111 1111
反码
二进制取反
127 = 0 111 1111
-127=1 111 1111
*补码
补码 求原码 = 补码求补码
正: 0 - 127
负: -1 - 128

*浮点数
小数点可以浮动的数 $2.33 * 10 ^ 3$ = $0.233 * 10 ^ 4$

小阶对大阶 位数左移
奇 偶 奇
最小负数的阶符一定是奇数 最大正数的第一个二的阶数为偶数 第二个二的阶数为奇数
*寻址
- 立即寻址:操作数包含在指令中 指令 = 1+2
- 寄存器寻址:操作数在寄存器中 指令中给出存放操作数的寄存器名。R1+R2 [寄存器R1 1] [寄存器R2 1]
- 直接寻址:操作数在内存中。指令 = 0 x 11 + 0 x 22
- 寄存器间接寻址:指令中是寄存器的地址 寄存器中放操作数。 又去寄存器 又去内存。
- 间接寻址:指令中给出操作数地址的地址 相当于访问内存两次。
*校验码
校验数据传送过程中错码
奇偶校验码
就是用奇数个1或者偶数个1来校验数据是否传输错误
奇校验:
奇偶校验码只能校验奇数位出错,
符号位
0
0 1 0 ---数据传输---> 0
1 0 0 (2个位置出错无法检测)
1
1 1 0---数据传输---> 1
1 1 1 (一个位置出错可以检验)
码距
符号位(偶) | |||
---|---|---|---|
0 | 1 | 0 | 0 |
1 | 1 | 1 | 0 |
1 | 0 | 1(异或 不同为1) | 0 |
1 + 0 + 1 + 0 = 2 =>码距为 2
海明码
码距 = 2 检错
码距 >= 3 海明码可以 检错+纠错
n数据位 k校验位
$2^k - 1 >= n + k $
循环冗余校验码
- k个数据位+r个校验位。
- 模除2。
- 只能检错,码距 = 2。
*RISC和CISC
RISC
- 硬布线
- 寄存器多
- 支持流水线
*流水线
顺序执行
设备利用率低
I 输入
c 计算
o 输出
i= 0.1 c = 0.3 o=0.2 执行100条 =>总时间为 (0.1+0.3+0.2)* 100
流水线
利用率高
执行时间
i= 0.1 c = 0.3 o=0.2 执行100条 =>总时间为 (0.1+0.3+0.2)+ 99 * (0.3 最长的)
加速比
$不使用流水线的总时间/使用流水线的总时间$
操作周期:max(i,c,o)
吞吐率:最长时间段的倒数
执行n条指令的吞吐率:$n/流水线的执行时间$
*存储器
按照工作方式分类
读写存储器(Read Access Memory):可读可写。
只读存储器:
- 固定只读存储器(ROM Read Only Memory)
- 可编程的存储器(Progammable Read Only Memory):由用户一次性写入,不可修改。
- 可擦除 可编程 的只读存储器(Erasble P R O M):可以写入 可以修改 修改前要用紫外线照15-20min,再由特殊设别写入。
- 电擦除可编程的只读存储器(Electrically Erasble P R O M):用电擦除的方式。
- 闪速存储器(Flash Memory):介于Eprom和Eeprom之间的存储器,可以电擦除。
- 以块为单位。
- 断电信息不丢失。
- 可以代替Rom,不可以代替内存(DRAM)
按内容的存储器----相联存储器
按寻址方式分类
- 直接存储
- 按顺序存储
- 随机存储
虚拟存储器 ---- 主存+辅存
局部性
空间局部性:cpu访问内存的一个单元后,可能会访问旁边的单元。
时间局部性:对一个单元再一段时间内再次使用。
缓存
介于cpu和内存中间,cup先去访问缓存,缓存中没有就去内存中拿,拿到后复制副本到chche中。
替换算法
chche中存满了,需要拿一部分数据替换,纠错就出现了替换算法。
- 随机替换算法
- 先进先出算法
- 近期使用最少算法
- 优化替换算法
地址映像
- 直接映像(内存的分区块和chche的块映射对应,冲突大)
-
- 全相联映像(允许主存的任意一块映射到chche中的空闲区域,冲突小)
- 组相联映像(内存和cache都分块,每个块互相映射 但是内存块中的单元允许映射到chche块中的任意空闲位置 冲突较少)
-
中断
计算机在执行程序中,遇到了紧急处理的事件时,赞停正在运行的程序,转去执行有关 的程序,处理完成后返回源程序,这个过程称为中断。

断点:中断向量(提供中断服务程序的入口地址)
中断响应事件:发出中断请求开始 到 进入中断服务程序。
保存现场:(TODO) 堆栈的方式保存。
输入输出(I/O)控制方式
1.程序查询方式
- 一次只能读一个字
- cpu和I/o设备只能串行工作做轮询检查,检查状态,cpu处于忙(检查状态)等(等待I/O读取) 状态,cpu利用率低。
- cpu写入数据到存储器。
2.中断驱动方式

- cup和i/o可以并行
- i/o设备通过中断告诉cpu我读取完成,需要你来判断状态。判断完成cpu继续去到其他程序,cpu利用率高。
- 由cpu将数据放入主存。
3.直接存储器方式(DMA)

- 一次读取一块。
- cpu和i/o并行。
- 块读取完成中断告诉cpu。
- 由外设直接放入内存。
总线
分类
- 数据总线
- 地址总线
- 控制总线
*加密技术以及认证技术
窃听:偷听消息 加密
篡改:修改消息 摘要
假冒:冒充他人 数字签名
否认:我没收到你的消息 数字签名
加密

对称加密
加密解密 相同的密钥 只有一把密钥。
优点:
加密解密速度快,适合大量明文加密。
缺点
密钥分发缺陷:密钥容易被窃取。
非对称加密
用公钥加密必须用私钥解密 反之亦然。
公钥 (所有人知道)
私钥(自己知道)
用接受方的公钥加密
优点
安全
缺点
速度慢
混合加密
解决非对称加密的缺陷
用对称密钥加密明文,把明文和对称密钥再次用接收方的公钥加密。
认证技术
摘要
防止篡改
发送方:把信息提取出来摘要,使用hash算法生成哈希码,和密文一起发送过去。
接收方:收到密文,解密后得到摘要继续hash得到哈希码。把当前的哈希码和发送来的哈希码对比,即可知道是否被篡改。
数字签名
假冒 否认
发送方:用自己的私钥进行签名,和密文摘要一起发送。
接受方:用对方的公钥解密,看看数字签名是否一直。
数字证书
加密算法

可靠性分析
串联系统
R = R1 * R2 * ....*RN
并联系统
R = 1-(1-R1)(1-R2)(1-R3)...(1-Rn)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)