计算机系统知识(一)
计算机系统基础知识
计算机系统硬件的基本组成
计算机硬件由运算器、控制器、存储器、输入设备、输出设备组成;
运算器、控制器和存储器合起来为CPU;
输入设备与输出设备为外设;
存储器为记忆设备,分为外部存储器和内部存储器。
中央处理单元
负责获取程序的指令、并对指令进行编码、执行指令。
CPU功能
程序控制。CPU通过控制指令的执行来控制程序的执行顺序;
操作控制。CPU产生每条操作指令的操作信号,并将操作信号送往对应的部件,控制对应的部件按指令的功能进行操作;
时间控制。CPU对各种操作的时间进行控制,指令执行过程中操作信号的产生、持续时间、已经出现的时间顺序进行严格的控制。
数据处理。CPU对数据进行数据运算和逻辑运算,对数据加工处理,以便于处理结果被使用。
CPU组成
CPU主要是由运算器、控制器、寄存器组、内部总线等组成;
- 运算器
运算器由算数逻辑单元、累加寄存器、数据缓冲寄存器、状态条件寄存器组成。进行数据加工处理,用于计算机的算数计算和逻辑计算。
主要功能有两点:
执行所有的算数运算。进行加、减、乘、除以及附加运算。
执行所有的逻辑运算和进行逻辑测试。或、与、非、零值测试与数值比较。
算数逻辑单元(ALU)
负责数据处理,算数运算和逻辑运算。
累加寄存器(AC)
数据缓冲寄存器(DR)
状态条件寄存器
- 控制器
控制整个CPU工作,决定了运行过程的自动化。
控制器包括指令控制逻辑、时序控制逻辑、总线控制逻辑、中断控制逻辑。
指令控制逻辑:
完成获取指令、分析指令、执行指令等操作。即取指令、指令译码、按指令执行码执行、形成下一条执行码地址。
时序控制逻辑:
为每一条指令按时间顺序提供应有的控制信号。
总线控制逻辑:
为多个功能部件服务的信息通路的控制电路。
中断控制逻辑:
控制各种中断请求,并按系统的优先级进行排队,然后逐一交给CPU执行。
- 寄存器组
分类:
专用寄存器:运算器和控制器中的寄存器为专用寄存器,功能不能更改。
通用寄存器:功能可以由人员控制。
- 多核CPU
数据表示
- 权值表示法(R进制转十进制)
以小数点为准位,小数点左侧高位的标示位从低位向高加一,由侧由0减一;
例如:
1
2
3数 值: 7 6 1 . 1 1
标示位: 2 1 0 -1 -2
(761.11)8 = 7*8^2 + 6*8^1 + 1*8^0 + 1*8^-1 + 1*8^-2进制转化(十进制转R进制 除R取余法)
除R取余,逆向输出。(辗转相除法)
二进制与八进制互转
8进制一个数由3位2进制表示;
从低位向高位,每3位为一组。
8进制转2进制,将每一位用二进制表示即可。
二进制与十六进制互转
16进制一个数由4位2进制表示;
从低位到高位,每4位为一组。
16进制转2进制,将每一位用二进制表示即可。
数据运算
原码
一个数据8位,对于有符号位,最高位为符号位。0表示正数,1表示负数;
原码就是将数表示为二进制数;
反码
正数的反码,等于它的原码;
负数的反码,在原码的基础上,符号位不变,其他位取反;
补码
正数的补码,等于它的原码;
负数的补码,在反码的基础上 加1;
移码
在补码的基础上,符号位取反;
总结:
正数 三码合一;
计算机计算都是按 补码 进行计算。
数据表示
定点数
小数点位置不变的数。
定点整数:小数点位置在最低有效位置之后(纯整数)
定点小数:小数点位置在最高有效位置之前(纯小数)
浮点数
小数点位置不固定的数,能表示更大范围。
表示方法:
N = 2 ^ E * F
E: 阶码
F: 尾数
组成部分
阶符 阶码 数符 尾数
格式化
将尾数的绝对值限定在[0.5, 1]之间。
工业标准IEEE 754: (-1)^S 2^E (b0b1b2…bp)
当S为0时表示正数,1表示负数;
E为指数,即阶码,用移码表示;
(B0b1b2…bp) 为尾数,长度为P,用原码表示。
阶码计算:指数 + 浮点数指定的偏移量(例如单精度偏移量为127)
例子:将176.0625转化为单精度浮点数
176.0625将10进制转为2进制:
整数部分: 176除2取余为: 10110000
小数部分: 0.0625乘2取整为: 0001
转化后为: (10110000.0001)2 小数点不占位
格式化处理: 1.01100000001 * 2^7(b0可以为1)
将b0的尾部拓展单精度23位: 01100000001000000000000
阶符号为0,正7,阶码要求偏移量,127 + 7 = 134,即10000110
最后表示为:
0 10000110 01100000001000000000000
浮点数计算
第一步: 浮点数进行加减运算时,先进行对阶,低位向高位对,尾数右移;
第二步: 尾数求差和;
第三步:结果进行格式化并溢出判断;如果尾数溢出,则需要调整阶码;
第四步:阶码溢出判断。如果阶码溢出,则运算结果溢出,如果阶码下溢,则结果位0,否则结果正确。
浮点数乘除法
乘法: 其结果阶码等于阶码相加,尾数相乘;
除法: 其结果阶码等于被除数减除数的阶码,尾数相除;
校验码
作用
检测传输的数据是否出错
码距:是指在一个编码系统中,任意两个合法编码之间至少有多少个不同的二进制位;
分类
奇偶校验码
海明码
通过在数据位的特定位置插入K个校验位,通过扩大码距进行校错和纠错。
编码过程:
A. 设海明码为n位,则K的取值应满足下面条件:
2^k - 1 >= n + k
求出k的最小值即可.
B. 编码规则
则添加的海明码位为k个,分别为P1,P2,P3…Pk, 原始数据为: D0, D1,…,D(n-1),设生成的海明码为H1,H2….H(n+k).
将海明码位k个与数据n分别对应到生成的海明码H中,其中H和P的对应关系为:
Pi = H(2^(i - 1))
即: P1 = H1
P2 = H2
P3 = H4
…
C. 校验规则
海明码中的任何一位都是由若干校验位进行校验;
校验位由自身校验(海明码位P);
被校验的海明码位(数据位D)的下标等于所有参与校验该位的校验位的下标之和.
D. 对应关系表
如果再用奇校验,则将各位取反即可;
错误检测
G1 = P1 ⊕ D0 ⊕ D1 ⊕ D3 ⊕ D4 ⊕ D6
G2 = P2 ⊕ D0 ⊕ D2 ⊕ D3 ⊕ D5 ⊕ D6
G3 = P3 ⊕ D1 ⊕ D1 ⊕ D3 ⊕ D7
G4 = P4 ⊕ D4 ⊕ D5 ⊕ D6 ⊕ D7
如果采用偶校验,则G1G2G3G4全部为0,则校验成功,如果不是全部为0,则存在校验失败,找到对应为1的进行数据修正.(如果奇校验,则相反1)
数据位出错查判
例如,校验后的G1G2G3G4 = 0101
说明G1和G4出现问题,但是G0和G3没有问题,可以排除D0, D1, D3, D4, D6,D7,这个可以在G2G3中的到,则出问题的就是D5,即H(10)
根据数据求海明码
求出P1, P2, P3, Pk的值根据公式
将数据填充到H1至H(k+n)中
循环冗余校验码(CRC)
利用生成多项式,为k个数据生成r个校验位来进行编码.
组成:
校验码由信息码生成,校验码越长,校验能力越强.CRC编码采用模2运算.