全文结构参考->知识点大纲(思维导图)
推荐一个B站UP的软考视频:zst_2001,如果只为了把证拿到手,这个UP讲的很容易理解
计算机组成与结构
计算机系统基础
比特、位、字节、字之间的换算
1位 =1bit
1字节=1Byte=8bit
1字 =1word=2Byte=16bit
1KB =1024B
1MB=1024KB
1GB =1024MB
原码、反码、补码、移码
-
原码
第一位是符号位,其余位即2进制数值。8位2进制数表示的范围是 [-127,127]
如
[+3]原=0000 0011
[-3]原=1000 0011 -
反码
第一位是符号位,正数的反码等于 原码,负数的反码除了符号位,在原码的基础上取反。 8位2进制数表示的范围是 [-127,127]
如[+3]反=0000 0011
[-3]反=1111 1100 -
补码
第一位是符号位,正数的反码等于原码,负数的补码除了符号位,在反码的基础上+1。 8位2进制数表示的范围是 [-128,127]
如[+3]补=0000 0011
[-3]补=1111 1101 -
移码
-
第一位是符号位,在补码的基础上,把符号位取反。 8位2进制数表示的范围是 [-128,127]
如[+3]移=1000 0011
[-3]移=0111 1101
校验码
奇偶校验码
奇偶校验码是奇校验码和偶校验码的统称,在实际使用时又可分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验等几种。奇偶校验码无法检测出哪位出错.所以属于无法矫正错误的校验码,且只有奇数个错误位才能被检测出
校验位的确定
奇偶校验码的校验位可以放在原始码流的前面或者后面,即,
校验位+原始码流 或 原始码流+校验位
奇校验:如果原始码流中,1的个数为奇数,则校验位为0;1的个数为偶数,则校验位为1。
偶校验:如果原始码流中,1的个数为偶数,则校验位为0;1的个数为奇数,则校验位为1。
另一种思考方式:
奇校验:如果原始码流中,1的个数为偶数,需要把校验位定为1,使得整段检验码中1的个数保持为奇数。
偶校验:如果原始码流中,1的个数为奇数,需要把校验位定为1,使得整段检验码中1的个数保持为偶数。
例如:
设校验位在最后
原始码流 110 0111(1的个数为奇数)
奇校验 1100 1110
偶校验 1100 1111
海明校验码
被广泛采用的一种很有效的校验方法,是只要增加少数几个校验位,就能检测出二位同时出错、亦能检测出一位出错并能自动恢复该出错位的正确值的有效手段,后者被称为自动纠错。
校验位的确定
信息位的个数即原始码流的长度,用k表示;
校验位的个数用r表示,原始码流的长度用k表示。
他们之间满足
2
r
≥
k
+
r
+
1
2^r \geq k+r+1
2r≥k+r+1
校验位一般放在第20、21、…、2(r-1)位
例如:
原始码流 0011 0110 (k=8)
r=1时,2<1+8+1=10
r=2时,4<2+8+1=11
r=3时,8<3+8+1=12
r=4时,16>4+8+1=13 满足条件
海明校验码的总长度应为r+k=12位,校验码位置如下,
0011 r011 r0rr(r表示校验位)
海明校验码中 每一个信息位的校验都与不同的校验位相关,由位置决定,这里举例说明
位置 | 信息位的值 | 由哪几位校验位校验 |
---|---|---|
1 | 校验位 | – |
2 | 校验位 | – |
3 | 0 | 1和2(因为3=1+2) |
4 | 校验位 | – |
5 | 1 | 1和4(因为5=1+4) |
6 | 1 | 2和4(因为6=2+4) |
7 | 0 | 1和2和4(因为7=1+2+4) |
8 | 校验位 | – |
9 | 1 | 1和8(因为9=1+8) |
10 | 1 | 2和8(因为10=2+8) |
11 | 0 | 1和2和8(因为11=1+2+8) |
12 | 0 | 4和8(因为12=4+8) |
反过来再统计每个校验位校验哪几个信息位,并将对应的几个信息位用异或运算求值
校验位的位置 | 校验哪几个信息位 | 校验位的值 |
---|---|---|
1 | 3,5,7,9,11 | 0 ⨁ \bigoplus ⨁ 1 ⨁ \bigoplus ⨁ 0 ⨁ \bigoplus ⨁ 1 ⨁ \bigoplus ⨁ 0 = 0 |
2 | 3,6,7,10,11 | 0 ⨁ \bigoplus ⨁ 1 ⨁ \bigoplus ⨁ 0 ⨁ \bigoplus ⨁ 1 ⨁ \bigoplus ⨁ 0 = 0 |
4 | 5,6,7,12 | 1 ⨁ \bigoplus ⨁ 1 ⨁ \bigoplus ⨁ 0 ⨁ \bigoplus ⨁ 0 = 0 |
8 | 9,10,11,12 | 1 ⨁ \bigoplus ⨁ 1 ⨁ \bigoplus ⨁ 0 ⨁ \bigoplus ⨁ 0 = 0 |
由此可得,0011 0110的海明校验码为0011 0011 0000
循环冗余校验码(CRC校验码)
一种常用的、具有检错、纠错能力的校验码,奇偶校验码和海明校验码都是采用奇偶检测为手段检错和纠错的(奇偶校验码不具有纠错能力),而循环冗余校验则是通过某种数学运算来建立数据位和校验位的约定关系的。
校验位的确定
收发方约定好一个生成多项式G(x),注意,算法要求生成多项式G(x)必须包含最低次项(常数项)。
这里举例:
G ( x ) = x 3 + x 2 + l G(x)=x^3+x^2+l G(x)=x3+x2+l
将生成多项式G(x)每项都写出来,写成,
G ( x ) = 1 ∗ x 3 + 1 ∗ x 2 + 0 ∗ x + 1 ∗ l G(x)=1* x^3+1*x^2+0*x+1 * l G(x)=1∗x3+1∗x2+0∗x+1∗l
将生成多项式G(x)每项的系数挑出来,得到除数1101;
设原始码流为110101,则110101为被除数。
计算110101/1101,得到余数——001,余数被看作冗余码添加到原始码流尾部,得到循环冗余校验码1101001。
计算机体系结构
计算机体系结构分类
参考
https://blog.csdn.net/qq_40120946/article/details/107981299
指令系统
CISC(复杂指令系统 Complex Instruction Set Computer)
目前,桌面计算机流行的x86体系结构即使用CISC。微处理器(CPU)厂商一直在走CISC的发展道路。可以说CISC是一种算术方法,它包含丰富的指令集,通过用尽可能少的指令来执行各种过程来提高微型计算机的性能,处理特殊任务效率较高。在CISC微处理器中,程序的各条指令是按顺序串行执行的,每条指令中的各个操作也是按顺序串行执行的。顺序执行的优点是控制简单,但计算机各部分的利用率不高,执行速度慢。
RISC(精简指令系统 Reduced Instruction Set Computer)
是一种执行较少类型计算机指令的微处理器,起源于80年代的MIPS主机(即RISC机),RISC机中采用的微处理器统称RISC处理器。RISC也是一种算术方法,通过高速执行多个精简指令来提高整个微机的性能。设计者把主要精力放在那些经常使用的指令上,尽量使它们具有简单高效的特色。对不常用的功能,常通过组合指令来完成。因此,在RISC 机器上实现特殊功能时,效率可能较低。因为计算机执行每个指令类型都需要额外的晶体管和电路元件,计算机指令集越大就会使微处理器更复杂,执行操作也会更慢。但可以利用流水技术和超标量技术加以改进和弥补。RISC固定了指令长度,并采用了流水线的概念。在流水线处理中,将各种处理划分为多个阶段,并且执行部分并行处理。
指令系统的流水线处理
一般一条指令要执行要经过3个阶段:取指令、译码、执行,各阶段都需要耗费一定的时间周期。
在串行执行n条指令时,总共耗费的时间为3个阶段时间周期的总和*n,
t
=
(
T
1
+
T
2
+
T
3
)
∗
n
t=(T_1+T_2+T_3)*n
t=(T1+T2+T3)∗n;
采用流水线方式执行时,取阶段中耗时最久的时间周期为流水线的操作周期T,执行n条指令时,总共耗费的时间为
t
=
(
n
−
1
)
∗
T
+
T
1
+
T
2
+
T
3
t=(n-1)*T+T_1+T_2+T_3
t=(n−1)∗T+T1+T2+T3
例如:
存储系统
存储器的层次结构
其中,内存又称为主存,存储设备又称为辅存或外存,缓存与内存能直接被CPU读写。从金字塔顶越往下,存储的速度越慢、存储的容量越大、价格也越低(不包含输入源)。
存储器分类
-
按存储介质分类
半导体存储器:用半导体器件组成的存储器。
磁表面存储器:用磁性材料做成的存储器。 -
按存储方式分类
随机存储器:任何存储单元的内容都能被随机存取,且存取时间和存储单元的物理位置无关。
顺序存储器:只能按某种顺序来存取,存取时间与存储单元的物理位置有关。 -
按存储器的读写功能分类
只读存储器(ROM):存储的内容是固定不变的,只能读出而不能写入的半导体存储器。
随机读写存储器(RAM):既能读出又能写入的半导体存储器。 -
按信息的可保存性分类
非永久记忆的存储器:断电后信息即消失的存储器。
永久记忆性存储器:断电后仍能保存信息的存储器。 -
按在计算机系统中的作用分类
主存储器(内存):用于存放活动的程序和数据,其速度高、容量较小、每位价位高。(DRAM)
辅助存储器(外存储器):主要用于存放当前不活跃的程序和数据,其速度慢、容量大、每位价位低。
缓冲存储器:主要在两个不同工作速度的部件起缓冲作用。(SRAM)
磁盘
参考
https://blog.csdn.net/heuguangxu/article/details/80072024
输入输出技术
微型计算机中最常用的内存与接口的编制方法
内存与接口地址独立编址方法
内存地址和接口地址是完全独立的两个地址空间。访问数据时所使用的指令也完全不同,用于接口的指令只能用于接口读写,其余的指令全都是用于内存的。(给外设分配地址0 ~ N,那么内存就不能使用0~N了,只能使用N ~ M)
优点:在编程序或读程序时很容易使用和辨认。
缺点:用于接口的指令太少,导致功能很弱。
内存与接口地址统一编址方法
内存地址和接口地址统一在一个公共的地址空间里,即内存单元和接口共用地址空间。在这些地址空间里划分出一部分地址分配给接口使用,其余地址归内存单元使用。划分好后不共用,各用各的,指令共用。(内存编址可以从0~N,外设编址也可以从0~N)
优点:用于内存的指令全部可以用于接口,大大增强了对接口的操作功能,而且在指令上也不再区分内存指令或接口指令。
缺点:内存地址不连续,内存和接口共用指令导致程序维护不便。
直接程序控制
无条件传送方式
无条件传送方式是在假定外设已经准备好的情况下,直接利用输入指令(IN指令)或输出指令(OUT指令)与外设传送数据,而不去检查(查询)外设的工作状态。只用于一些较简单外设的操作,如对开关信号的输入,对LED显示器的输出等。
优点:控制程序简单。
缺点:必须是在外设已经准备好的情况下才能使用,否则传送就会出错。
程序查询传送方式
程序查询传送方式也称为条件传送方式,输入和输出完全是通过CPU执行程序来完成的。一旦某一外设被选中并启动后,主机将查询这个外设的某些状态位,看其是否准备就绪?若外设未准备就绪,主机将再次查询;若外设已准备就绪,则执行一次I/O操作。
优点:是最简单、最经济的输入输出方式。
缺点:外设和主机不能同时工作,各外设之间也不能同时工作,系统效率很低,因此,仅适用于外设的数目不多,对I/O处理的实时要求不那么高,CPU的操作任务比较单一,并不很忙的情况。
中断方式
程序控制方式
在程序控制方式模式下,输入输出完全由CPU控制,在整个I/O过程中CPU必须等待其完成,限制了CPU的高速能力。不过这种方式下,是由程序主动查询外设,完成主机与外设间的数据传送,方法简单,硬件开销小。这种方式分为无条件传送方式和程序查询传送方式两种情况。
程序中断方式
在I/O控制中引入中断,是为了解决"程序控制输入输出"方法中CPU低效等待的缺陷。采用该机制,它将无须定期查询I/O系统的状态,而可以抽身处理其他途径,提高了传输请求的响应速度。当I/O系统完成后,则以中断信号通知CPU,之后CPU保存正在执行程序的现场(包括程序计数器PC,记住执行到哪个指令),然后转入I/O中断服务程序完成数据交换。而收到中断请求后,停止正在执行的代码,保存现场的时间称之为中断响应时间,这个时间应该尽可能短。
DMA方式
DMA方式使用DMA控制器(DAMC)来控制和管理数据传输。DMAC与CPU共享系统总线,并且具有可以独立访问存储器的能力。在使用DMA传送时,CPU收到提出接管总线控制权的总线请求后,会在当前总线周期结束后对该请求进行响应,同时放弃对系统总线的控制,改由DMAC控制总线;由DMAC提供存储器地址及必须的读写控制信号,实现外设与存储器的数据交换。
DMA方式是为了在主存与外设之间实现高速、批量数据交换而设置的,比程序控制方式与中断方式都高效。(虽然缓解了CPU的负担,但仍会占用总线,传输大型文件时可能运行程序变慢)
直接存储器存取(Direct Memory Access,DMA)
工作原理基本在上面的DMA方式中讲了。
实现DMA传送的基本流程如下:
(1)外设可通过DMA控制器向CPU发出DMA请求:
(2)CPU响应DMA请求,系统转变为DMA工作方式,并把总线控制权交给DMA控制器;
(3)由DMA控制器发送存储器地址,并决定传送数据块的长度;
(4)执行DMA传送;
(5)DMA操作结束,并把总线控制权交还CPU。
输入/输出处理机
扩展DMA的概念,为了进一步减轻CPU在I/O操作中的负担,延伸出了输入输出处理机(I/O Processor,IOP)。IOP控制和管理输入输出任务。 IOP与CPU相似,只不过它只处理I/O处理的细节。 同时IOP比典型的DMA更强大,它可以获取并执行自己的指令(这些IOP指令仅用于管理I/O传输)。
总线结构
总线的分类
地址总线(Address Bus,AB)
地址总线是一类信号线的集合,是模块间传输信息的公共通道,通过它,计算机各部件间可传输储存数据的地址。
数据总线(Data Bus,DB)
数据总线就是电脑内部数据传输以及处理的带宽。它是双向三态形式的总线,即它既可以把CPU的数据传送到存储器或I/O接口等其它部件,也可以将其它部件的数据传送到CPU。
控制总线(Control Bus,CD)
控制总线主要用来传送控制信号和时序信号。它的传送方向由具体控制信号而定,一般是双向的,而且控制总线的位数要根据系统的实际控制需要而定。
常见总线
ISA总线、EISA总线、PCI总线、PCI Express总线、前端总线、…(有时间了再细写)
安全性、可靠性与系统性能评测
加密技术
原理详细可以参考ZhInen丶的密码学合集
对称加密技术
这种方法也称为私钥密码术或密钥算法,要求发送者和接收者能够访问相同的密钥。因此,接收者需要在消息被解密之前拥有密钥。这种方法最适合第三方入侵风险较小的封闭系统。
优点:对称加密比非对称加密更快。
缺点:双方都需要确保密钥的安全存储,并只适用于需要使用密钥的软件。
数据加密标准(Data Encryption Standard,DES)
DES加密算法属于块加密,将需要加密的明文数据分成多个大小为64bit的块,再将各个块用64bit的密钥加密以后的密文数据连到一起就是密文输出,其中密钥每个字节的最后一位为校验位,真正的密钥只有56bit。其加密的主要原理就是对数据位的多轮换位(大概这个意思,应该不会考太细)。
三重DES
由于计算机运算能力的增强,原版DES密码的密钥长度变得容易被暴力破解;3DES即是设计用来提供一种相对简单的方法,即通过增加DES的密钥长度来避免类似的攻击,而不是设计一种全新的块密码算法。3DES使用两个密钥,执行三次DES算法,加密的过程是加密-解密-加密,解密的过程是解密-加密-解密。
国际数据加密算法(IDEA)
IDEA也是在DES算法的基础上发展出来的,它也将需要加密的明文数据分成多个大小为64bit的块,但是,每块的密钥为128bit。它设计了一系列加密轮次,每轮加密都使用从完整的加密密钥中生成的一个子密钥。与DES的不同处在于,它采用软件实现和采用硬件实现同样快速。
RC-5
RC5作为一种较新的对称加密算法,比DES、IDEA灵活性更强,具有三个可变参数w、r、b,因此其特定实例记作RC5-w/r/b。利用加、异或和循环左移三种运算实现对明文的加密。
参数含义:
w——明文字分组后的字长,一般长度为16,32,64。(完整明文/秘文字长为2w)
r——加密轮数
b——密钥字节长度
高级加密标准(ASE)
AES是一个对称分组密码算法,旨在取代DES成为广泛使用的标准。根据使用的密码长度,AES最常见的有3种方案,用以适应不同的场景要求,分别是AES-128、AES-192和AES-256。AES加密过程是在一个4×4的字节矩阵上运作,涉及到4种操作:字节替代(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns)和轮密钥加(AddRoundKey)。