1、计算机基本组成
计算机的基本硬件系统由 运算器、控制器、存储器、输入设备和输出设备5大部件组成。运算器、控制器
等部件被集成在一起统称为中央处理单元(Central Processing Unit,CPU)。
- CPU是硬件系统的核心用于数据的加工处理,能完成各种算术、逻辑运算及控制功能。
- 存储器是计算机系统中的记忆设备,分为
内部存储器
和外部存储器
。前者速度高、容量小,一般用于临时存放程序、数据及中间结果。后者容量大、速度慢,可以长期保存程序和数据。 - 输入设备和输出设备合称为外部设备 (简称外设),输入设备用于输入原始数据及各种命令,而输出设备则用于输出计算机运行的结果。
1.1 CPU
中央处理单元 (CPU) 是计算机系统的核心部件,它负责获取程序指令、对指令进行译码并加以执行。
CPU的功能
- 程序控制:CPU通过执行指令来控制程序的执行顺序,这是CPU的重要功能。
- 操作控制:一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号引并将操作信号送往对应的部件,控制相应的部件按指令的功能要求进行操作。
- 时间控制:CPU对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间,持续时间及出现的时间顺序都需要进行严格控制。
- 数据处理:CPU通过对数据进什算术运算及逻辑运算方式进行加工处理,数据加工处理的结果被人们所利用。所以,对数据的加工处理也是CPU最根本的任务。
此外,CPU还需要对系纷内部和外部的中断(异常)做出响应,进行相应的处理。
CPU的组成
1.2 运算器
运算器由算术逻辑单元、累加寄存器、数据缓冲寄存器和状态条件寄存器等组成,它是数据加工处理部件,用于完成计算机的各种算术和逻辑运算相对控制器而言,运算器接受控制器的命令而进行动作,即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的,所以它是执行部件。
运算器的功能
运算器有如下两个主要功能:算术运算和逻辑运算
- 执行所有的算术运算,例如加、减、乘、除等基本运算及附加运算。
- 执行所有的逻辑运算并进行逻辑测试,例如与、或、非、零值测试或两个值的比较等。
运算器组成部分
-
算术逻辑单元 (ALU):ALU是运算器的重要组成部件,负责处理数据,实现对数据的算术运算和逻辑运算。常将源操作数和结果暂存累加寄存器 (AC) 中。
-
累加寄存器 (AC):AC通常简称为累加器,它是一个通用寄存器,其功能是当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。
例如,在执行一个减法算前,先将被减数取出暂存在AC中,再从内存储器中取出减数,然后同AC的内容相减,将所得的结果送回AC中。运算的结果是放在累加器中的,运算器中至少要有一个累加寄存器。
-
数据缓冲寄存器 (DR):在对内存储器进行读/写操作时,用DR暂时存放由内存储器读/写的一条指令或一个数据字,将不同时间段内读/写的数据隔离开来。
DR的主要作用为:
- 作为CPU和内存、外部设备之间数据传送的中转站
- 作为CPU和内存、外围设备之间在操作速度上的缓冲
- 在单累加器结构的运算器中,数据缓冲寄存器还可兼作为操作数寄存器。
-
状态条件寄存器 (PSW):PSW保存由算术指令和逻辑指令运行或测试的结果建立的各种条件码内容,主要分为状态标志和控制标志
例如运算结果进位标志©、运算结果流出标志(V)、运算结果为0标志(Z)、运算结果为负标志()、中断标志(I)、方向标志(D)和单步标志等。这些标志通常分别由1位触发器保存,保存了当前指令执行完成之后的状态。通常,一个算术操作产生一个运算结果,而一个逻辑操作产生一个判决。
1.3 控制器
控制器的功能
- 运算器只能完成运算,而控制器用于控制整个CPU的工作,它决定了计算机运行过程的自动化。
- 它不仅要保证程序的正确执行,而且要能够处理异常事件。
- 控制器一般包括指令控制逻辑、时序控制逻辑、总线控制逻辑和中断控制逻辑等几个部分。
指令包括地址码和操作码,指令控制逻辑要完成取指令、分析指令和执行指令的操作,其过程分为取指令、指令译码、按指令操作码执行、形成下一条指令地址等步骤。
控制器的组成部分
-
指令寄存器 (IR):当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器中,再送入IR暂存,指令译码器根据 IR 的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。(存放地址码和操作码)
-
程序计数器 (PC):PC具有寄存信息和计数两种功能,又称为指令计数器。
程序的执行分两种情况,一是顺序执行,二是转移执行。在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的内容即是程序第一条指令的地址。执行指令时,CPU自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出的直接转移的地址得到
-
地址寄存器 (AR):AR保存当前CPU所访问的内存单元的地址。由于内存和CPU存在着操作速度上的差异,所以需要使用 AR 保持地址信息,直到内存的读/写操作完成为止。
-
指令译码器 (ID):指令包含
操作码
和地址码
两部分,为了能执行任何给定的指令,必须对操作码进行分析,以便识别所完成的操作。指令译码器就是对指令中的操作码字段进行分析解释,识别该指令规定的操作,向操作控制器发出具体的控制信号,控制各部件工作,完成所需的功能。
程序被加载到内存后开始运行,当CPU执行一条指令时,先把它从内存储器取到缓冲寄存器DR中,再送入IR暂存,指令译码器根据IR的内容产生各种微操作指令,控制其他的组成部件工作,完成所需的功能。
程序计数器(PC)具有寄存信息和计数两种功能,又称为指令计数器。程序的执行分两种情况,一是顺序执行,二是转移执行。在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的内容即是程序第一条指令的地址。执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出的直接转移地址得到。
1.4 真题🤏🏻
- PC只能存放指令地址,其他的不行,它只是能计数
- 在计算机中透明是指看不到
可以把指令操作码理解为是地址,所以指令地址存放在PC
2、数据表示
各种数值在计算机中表示的形式称为机器数,其特点是采用二进制计数制,数的符号用0和1表示,小数点则隐含,表示不占位置。机器数对应的实际数值称为数的真值。机器数有无符号数和带符号数之分。
- 无符号数表示正数,在机器数中没有符号位。对于无符号数,若约定小数点的位置在机器数的最低位之后,则是纯整数;若约定小数点的位置在机器数的最高位之前,则是纯小数。
- 带符号数,机器数的最高位是表示正、负的符号位,其余位则表示数值。为了便于运算,带符号的机器数可采用原码、反码和补码等不同的编码方法,机器数的这些编码方法称为码制。
2.1 进制表示及转换
-
位,也叫比特(bit,简写
b
):计算机最小的数据单位,每一位只能是0或1。 -
字节(Byte,简写
B
):8个二进制构成一个字节,是存储空间的基本构成单位一个英文字母占一个字节,在不同编码集中中文的占位不同,GBK中一个汉字占俩个字节;UTF-8一个汉字占3个字节。KB:1KB 代表1024个字节,
1KB = 2^10 B = 2^13 b
-
兆字节(
MB
):1MB = 1024 kB
-
GB、TB每相隔1024倍率
进制的表示
- 十进制(D):
0~9
- 二进制(B):0、1
- 八进制(O):
0~7
- 十六机制(H):
0~15
,计算机中表示,0~9
、A、B、C、D、E、F。
n进制 -> 十进制
- 按权展开求和
十进制 -> n进制
- 除 n 余数法(其中整数部分余数从下往上写,小数部分从上往下)
217 (D) -> 11011001 (B)
二进制 -> 八进制
- 每三个二进制位对应一个八进制位
例:对于二进制数10001110,从低位开始三位三位的看,二进制的110对应八进制的6;二进制的001对应八进制的1;而此时只剩下两位10,那么在最前面补0(补满3位即可),也就是010,对应八进制的2,所以该二进制数10 001 110就对应八进制数216,10001110 (D) -> 216 (O)。
二进制 -> 十六进制
- 每四个二进制位对应一个十六进制位
例:对于二进制数10001110,从低位开始四位四位的看,二进制的1110对应十六进制的E(14);二进制的1000对应十六进制的8;如果不满四位,与转八进制一样,在最前面补0(补满4位即可)。在十六进制中,A=10,B=11,C=12,D=13,E=14,F=15,10001110 (D) -> 8E (H)
进制加减法
加法:满n进一,减法:借一当n
二进制相加 二进制相减
0111+1010=10001 100-1=011
八进制相加 八进制相减
167(O)+43(O)=232 205(O)-7(O)=176
十六进制相加 十六进制相减
ABDFE(H)+1024(H)=ACE22(H) 90E(H)-F(H)=8FF(H)
真题🤏🏻
- 思路:大地址减小地址+1,再转kB。DABFF (H) - B3000(H) ->162,815 (D),162,815 +1 B = 159*2^10B = 159KB
2.2 原码反码补码移码
- 原码:最高位是符号位,0表示正号,1表示负号,其余的n-1位表示数值的绝对值。
- 反码:正数的反码和原码一样,负数的反码符号位不变,其余按位取反。
- 补码:正数的补码与其原码和反码相同,负数的补码则等于其反码的末位加1。
- 移码:移码就是把对应的补码的符号位取反。
- 补码的补码是原码
原码
反码
- 正数的反码和原码一样,负数的反码是其绝对值按位取反(符号位不变,其余按位取反)
补码
- 正数的补码与其原码和反码相同,负数的补码则等于其反码的末位加1。
移码
- 移码就是把对应的补码的符号位取反就可以了
n字长各码的范围
真题🤏🏻
- 补码的补码是原码,补码FFFF (H) -> 1111 1111 1111 1111 1111,符号位为 -1 说明这个数是负数,再将FFFF 看做原码求其补码就可以得到FFFF的原码。
2.3 浮点数运算
原理
- N=2^E × F,其中E称为阶码,F称为尾数.
- 在进行浮点数运算时,小阶向大阶对其,再对尾数做运算
真题🤏🏻
3、差错控制
3.1 校验码基本概念
- 码距:所谓码距,是指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。
- 码距 = 2 时,具有检错能力
- 码距 >= 3 时,具有纠错能力
3.2 循环校验码(CRC)
码距为2,可以检错不能纠错
3.3 奇偶校验码(PC)
- 奇偶检验码只能检查错误不能纠正错误,也就是它能够发现你错了但是错哪里了不知道,并且奇数校验只能检查出代码奇数个出错的编码不能检查出偶数个出错的编码
3.4 海明校验码(HC)
海明码可以检错和纠错,码距是3,记住上面公式即可
3.5 真题🤏🏻
4、指令系统
4.1 指令系统类型 CISC和RISC
精简指令集计算机:Reduced Instruction Set Computer,复杂:complex
真题
这里答案是A,画错了
4.2 局部性原理
局部性原理主要是指计算机在处理相关的数据和程序的时候,一般都会有某一个时段集中的去访问某些指令或者读取某些空间的数据
- 时间局部性:程序中某条指令被执行,则不久的将来,该指令可能再次被执行。
- 空间局部性:程序访问某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。
- 工作集理论:将频繁访问的页面的集合打包起来,使频繁访问的可以一起调入进来,短时间内不被替换出Cache,以提高效率。
4.3 寻址方式
- 立即数寻址:操作数包含在指令中。
- 直接寻址:操作数存放在内存单元中,指令中给出操作数内存单元的地址。
- 寄存器寻址:操作数存放在寄存器中,指令中存放操作数的寄存器名。
- 寄存器间接寻址:操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中。
- 间接寻址:指令中给出操作数地址的地址。
- 相对寻址:指令地址吗给出一个偏移量,操作数地址等于本指令的地址加上该偏移量。
- 变址寻址:操作数地址等于编制寄存器的内容加偏移量。
寻址速度:立即寻址 > 寄存器寻址 > 直接寻址 > 寄存器间接寻址 > 间接寻址
真题
4.4 Flynn分类法
Single Instruction Multiple Data:单指令流多数据流
4.5 流水线技术
-
流水线周期:取指、分析指令、执行指令中最长的一段
-
流水线执行时间,t1、t2、t3分别表示取指、分析指令、执行指令,n表示n条指令
-
吞吐率
-
加速比
- 吞吐率=指令条数/【一条完整指令的时间+(n-1)* 流水线周期】
5、输入输出控制方式
输入输出技术的三种方式:
直接查询控制:有无条件传送和程序查询方式,都需要通过CP执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。在这种情况下CPU不做别的事情,只是不停地对外设的状态进行查询
中断方式:当I/O系统与外设交换数据时,CPU无须等待也不必查询I/O的状态,而可以抽身来处理其他任务。当I/O系统准备好以后,则发出中断请求信号通知CPU,CPU接到中断请求信号后,保存正在执行的程序的现状,转入I/O中断服务程序的执行,完成I/O系统的数据交换后,然后再返回被打断的程序继续执行。与程序控制方式相比,中断方式因为CP∪无需等待而提高了效率
DMA(direct memory access):直接寄存器存取方式,是指数据在内存与I/O设备间的直接成块传送,即在内存与I/O设备间传送一个数据块的过程中,不需要CPU的任何干涉,只需要CPU对过程开始启动与过程结束时的处理,实际操作由DMA硬件直接执行完成。
共同点:都是CPU与外设之间数据传送
优缺点: 查询方式 需要CPU每次询问外设状态,外设状态就绪,CPU工作,否则CPU一直处于就绪状态,利用率低,并行时候更低 中断方式 借助CPU传送数据,但是对于io设备大量数据传送,也比较低 DMA方式 可以脱离CPU工作,不需要恢复现场,传送大量数据时,比较快
I/O设备管理软件一般分为四层:中断处理程序、设备驱动程序、与设备无关系统软件、用户级软件。
常用的输入输出方式有:无条件传输、中断、程序查询、DMA方式
5.1 程序查询方式
- CPU和 I/O(外设)只能串行工作,CPU需要一直轮询检查,长期处于忙等状态。CPU利用率低
- 一次只能读/写一个字
- 由CPU将数据放入内存
5.2 中断驱动方式
中断是一种非常重要的技术,输入输出设备和主机交换数据、分时操作、实时系统、计算机网络和分布式计算机系统中都要用到中断技术。为了提高响应中断的速度,通常把所有中断服务程序的入口地址(中断向量)汇集为中断向量表。
- I/O设备通过中断信号主动,向CPU报告I/O操作已完成
- CPU和I/O(外设)可并行工作
- CPU利用率得到提升
- 一次只能读/写一个字
- 由CPU将数据放入内存
- 程序中断: 程序运行时,CPU暂时终止现行程序,而转去处理更紧迫的事件,在处理完成后CPU将自动返回原程序继续执行。
- 进行中断处理时,为了能够返回到被中断的程序继续执行,需要保护现场。实现多级中断嵌套时,可以使用堆栈来保护断点和现场。
- 中断向量:提供中断服务程序的入口地址
- 中断响应时间:发出中断请求开始,到进入中断服务程序
5.3 直接存储器方式(DMA)
- CPU和I/O(外设)可并行工作
- 仅在传送数据块的开始和结束时才需要CPU的干预
- 由外设直接将数据放入内存
- 一次读写的单位为 “ 块 ” 而不是字
6、层次化存储
6.1 存储结构及分类
CPU对计算器的访问速度:寄存器 > Cache > 内存 > 外存
6.2 Cache
6.3 Cache与主存之间的映射
发生块冲突从少到多的顺序:全相联映射 --> 组相联映射 --> 直接映射
6.4 真题
真题9
7、总线系统
微机中的总线分为数据总线、地址总线和控制总线
3类。不同型号的CPU芯片,其数据总线、地址总线和控制总线的条数可能不同。
- PCI总线是并行内总线,SCSI总线是并行外总线
8、可靠性分析
- 串联系统
R = R1 R2 …Rn
- 并联系统
R = 1-(1-R)(1-R2)…(1-Rn)
9、认证与加密技术
9.1 加密技术(只能防止第三方窃听)
- 对称加密:加密和解密是同一把密钥,缺点:无法保证密钥只有接收方一个人持有;优点:加解密速度快,适合大量明文数据;
- 非对称加密:加密和解密不是同一把密钥,公钥加密只能私钥解密,公钥任何人都可以拥有,私钥只有自己持有;用接收方的公钥加密明文
- 混合加密
9.2 认证技术
- 摘要:将发送的明文进行Hash算法后得到摘要放在密文后一起发送过去,与接收方解密后的明文进行相同的Hash算法得到的摘要进行对比如果一致,则没有篡改,否则有篡改
- 数字签名:发送方用自己的私钥对摘要进行签名(加密),得到数字签名放在密文后一起发送过去
9.3 数字证书
CA:权威机构
- 数字证书:用户向CA机构申请数字证书,将个人信息和公钥发给CA机构,CA机构颁给用户数字证书,数字证书用CA的私钥进行签名(加密),用CA的公钥验证(解密)数字证书得到用户的公钥
9.4 常见加密算法
-
对称密钥(私钥、私有密钥加密)算法 (共享密钥加密算法),DES、3DES、RC-5、IDEA、AES、RC4
-
非对称密钥(公钥、公开密钥加密)算法,RSA、ECC、DSA
-
其他 Hash函数 、MD5摘要算法、 SHA-1安全散列算法
9.5 真题
这里注意是验证消息的一个真实性,而这个消息是用户A用自己的私钥进行加密的,所以用A的公钥进行加密
数字证书主要是用来对用户身份进行认证,而数字签名主要用于确保消息不可被否认
评论区