写在前面,本文为软考复习系列笔记,可能会有疏漏,请指教。后续更新笔记会在文章前系列目录放上链接,希望可以帮到有需要的人。
系列目录(点击跳转)
软考复习笔记之计算机系统基础知识 二、计算机体系结构
软考复习笔记之计算机系统基础知识 三、存储系统
软考复习笔记之计算机系统基础知识 四、输入/输出技术与总线结构
软考复习笔记之计算机系统基础知识 五、安全性、可靠性与系统性能评测
附上完整版笔记md文件欢迎下载链接
计算机是由硬件和软件组成的。
计算机的基本硬件由运算器、控制器、存储器、输入设备和输出设备5大部件组成。控制器、处理器等部件被集成在一起统称为中央处理单元(CPU)。
CPU :硬件系统的核心,用于数据的加工处理,能完成各种算数、逻辑运算及控制功能。
存储器:计算机系统钟的记忆设备,分为外部存储器与内部存储器。前者速度高容量小,后者速度慢容量大。
输入设备和输出设备简称外部设备(外设)。
中央处理单元(CPU) 是计算机系统的核心部件,负责获取程序指令、对指令进行译码并加以执行。
主要由运算器、控制器、寄存器组和内部总线等部件组成。
由算术逻辑单元、累加寄存器、数据缓冲寄存器和状态条件寄存器等组成
主要功能:执行所有算术运算、执行所有逻辑运算并进行逻辑测试。
下面介绍运算器中各组成部件的功能。
(1)算术逻辑单元(ALU):负责处理数据、实现对数据的算术运算和逻辑运算。
(2)累加寄存器(AC):当运算器的算术逻辑单元执行算术或逻辑运算时,为ALU提供一个工作区。
(3)数据缓冲寄存器(DR):作为CPU和内存、外部设备之间数据传输的中转站;作为CPU和内存、外部设备之间操作速度上的缓冲。
(4)状态条件寄存器(PSW):保存由算术指令和逻辑运算指令或测试的结果建立各种条件码内容,主要分为状态标志和控制标志。
控制整个CPU的工作,决定了计算机运行过程中的自动化。控制器一般包括指令控制逻辑,时空控制逻辑和中断控制逻辑等几个部分。
时空控制逻辑要为每条指令按时间顺序提供应有的控制信号。
总线逻辑是为多个功能部件服务的信息通路的控制电路。
中断控制逻辑用于控制各种请求的中断。
指令控制逻辑要完成取指令、分析指令、执行指令的操作,其过程分为取指令、指令译码、按指令操作码执行、形成下一条指令地址等步骤。
(1)指令寄存器(IR):CPU执行一条指令时,先把他从内存储器取到缓冲寄存器 中,再送入IR暂存。
(2)程序计数器(PC):PC具有寄存信息和计数两种功能,又称指令计数器。
(3)地址寄存器(AR):AR保存当前CPU所访问的内存单元的地址。
(4)指令编译码(ID):指令包含操作码和地址码两个部分。指令编译就是对指令中的操作码字段进行分析解释,系列操作后完成所需的功能。
寄存器组分为专用寄存器和通用寄存器。
核心又称为内核,是CPU最重要的组成部分。
最大的优点是可满足用户同时进行多任务处理的要求。
参考博客 https://blog.csdn.net/Adorable_0623/article/details/88567074
一个数在计算机中的二进制表示形式,叫做这个数的机器数。
机器数是带符号的,在计算机中用一个数的最高位存放符号 正数为0 负数为1。
因为第一位是符号位 所以机器数的形式值不等于真正的数值 例如上面的有符号数 1000_0101 其最高位1代表负 其真正的数值是 - 5 而不是形式值 133 (10000101转换成十进制是133) 所以 ,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。
为了便于运算,带符号的机器数可采用原码、反码、补码、移码等不同的编码方法,机器上的这些编码方法称为码制。
原码
原码就是符号位加上真值的绝对值
即用第一位表示符号 其余位表示值 比如如果是8位二进制:
[+1]原 = 0000_0001
[-1]原 = 1000_0001
因为第一位是符号位 所以8位二进制的取值范围是
[1111_1111,0111_1111] 即[-127,127]
这个地方要注意一下 不是[-128,127]或者[-128,128]
原码是人脑最容易理解和计算的表示方式
反码
反码就是 : 正数的反码是其本身,负数的反码是在其原码的基础上符号位不变,其余各个位取反
[+1] = [0000_0001]原 = [0000_0001]反
[-1] = [1000_0001]原 = [1111_1110]反
可见如果一个反码表示的是负数,人脑无法直观的看出来它的数值,通常要将其转换成原码再计算。
补码
补码就是 : 正数的补码就是其本身,负数的补码是在其原码的基础上符号位不变,其余各位取反,最后+1,即取反+1
[+1] = [0000_0001]原 = [0000_0001]反 = [0000_0001]补
[-1] = [1000_0001]原 = [1111_1110]反 = [1111_1111]补
对于负数,补码表示方式也是人脑无法直观看出其数值的,通常也需要转换成原码再计算其数值。
移码
移码最简单,不管正负数,只要将其补码的符号位取反即可。
[+1] = [0000_0001]原 = [0000_0001]反 = [0000_0001]补 = [1000_0001]移
[-1] = [1000_0001]原 = [1111_1110]反 = [1111_1111]补 = [0111_1111]移
对于一个数 计算机要使用一定的编码方式进行存储 原码反码补码是机器存储一个具体数字的编码方式。
定点数
小数点的位置固定不变的数。
小数点的位置通常有两种约定方式:定点整数和定点小数。
浮点数
浮点数是小数点位置不固定的数。它能表示更大范围的数。
通常使用校验码的方法来检测传送的数据是否出错。其基本思想是把数据可能出现的编码分为两类:合法编码和错误编码。
常见的奇偶校验码有:水平奇偶校验码、垂直奇偶校验码和水平垂直奇偶校验码。
参考博客:https://www.cnblogs.com/dushikang/p/8334776.html
1)什么是奇偶校验码?
奇偶校验码也是一种校验码,它用来检测数据传输过程中是否发生错误,是众多校验码中最为简单的一种。
顾名思义,它有两种校验方法:奇校验和偶校验
奇校验:原始码流+校验位 总共有奇数个1
偶校验:原始码流+校验位 总共有偶数个1
2)算法
跟CRC类似,也是在原始码流后面,加上校验位。不同的是,它的校验位只有一位,要么是0,要么是1。并且它的校验码还可以放在码流的前面。
例如下图有5组原始码,校验位的计算方法如下。红色代表校验位。
奇偶校验码一个最为常见的应用场合就是ASCII码。
ASCII码占用一个字节,低7位是有效位,最高位用作奇偶校验。
4)错误检测能力
对于奇校验,只能检测出奇数个错误,对于奇校验,只能检测出奇数个错误。
例如还是ASCII码 大写字母 A
奇校验 正确码流 11000001
错1位 11000011 变成了偶数个1,能检测出错误
错2位 11000010 变成了奇数个1,检测不出错误
错3位 11001010 变成了偶数个1,能检测出错误
偶校验 正确码流 01000001
错1位 01000011 变成了奇数个1,能检测出错误
错2位 01000010 变成了偶数个1,检测不出错误
错3位 01001010 变成了奇数个1,能检测出错误
5)使用奇校验还是偶校验
奇校验一个重要的特征是产生不了全0代码,所以在实际操作过程中选择的时候要考虑到这一点。
是一种利用奇偶性来检验或者纠错的校验方法。
海明码只能检测出2位错,纠1位错
海明码默认进行偶校验(除非特殊说明使用奇校验)。
海明码是一串由0和1组成的序列
算法
参考博客 https://blog.csdn.net/Yonggie/article/details/83186280
CRC循环冗余校验码是数据通信中的一种查错校验码。
循环冗余检查对数据进行多项式计算,将计算结果附加在帧后面,接收数据的设备执行模2运算,保证数据传输的正确性和完整性。