【软件设计师】——计组原理

计算机系统硬件的基本组成

​ 计算机系统是由 软件和硬件 构成的。硬件系统由 运算器、控制器、存储器、输入设备、输出设备 五大部件组成。运算器、控制器等部件被集成在一起统称为中央处理单元 Central Processing Unit 。输入和输出设备合称为外部设备。存储器分为内部存储器和外部存储器,内部存储器 速度高、容量小,一般用于临时存放程序、数据及中间结果, 外部存储器 速度慢、容量大,长期保存程序和数据。

中央处理单元

​ 中央处理单元 CPU 是计算机系统的核心不见,它负责 获取 程序指令、对指令进行 译码 并进行 处理

CPU的功能

  • 程序控制 :控制程序执行的 顺序
  • 操作控制 :发出 操作信号 至对应部件并使对应部件执行程序
  • 时间控制 :控制操作信号的 出现 时间、保持 时间和出现的 时间顺序
  • 数据处理 :算术和 逻辑运算
  • 中断(异常)响应

CPU的组成

​ CPU主要由 运算器控制器寄存器组内部总线 等部件组成。
cpu

运算器

​ 运算器由 算术逻辑单元(Arithmetic and Logic Unit, ALU)、累加寄存器数据缓冲寄存器状态条件寄存 等组成。它是数据加工处理部件,用于完成计算机的各种算术和逻辑运算。

  • 算术逻辑单元 ALU 处理数据
  • 累加寄存器 AC 提供工作区,存放结果
  • 数据缓冲寄存器 DR 数据暂存,速度缓冲,单AC结构兼做操作数寄存器
  • 状态条件寄存器 PSW 保存状态标志和控制标志

控制器

​ 保证程序正确执行,且能够处理异常事件。一般包括指 令控制逻辑时序控制逻辑总线控制逻辑终端控制逻辑 几个部分。

​ 指令控制逻辑要完成取指令、分析指令和执行指令的操作,其过程分为取指令、指令译码、按指令操作码执行、形成下一条指令地址 等步骤。

  • 指令寄存器 IR 指令暂存,指令从内存中取出放入DR中,再从DR通过总线到达IR。
  • 程序计数器 PC 寄存信息、计数,指向下一条地址
  • 地址寄存器 AR 保存当前访问的指令
  • 指令译码器 ID 分析解释操作码字段,发出控制信号

多核CPU

核心,又称内核,使CPU最重要的组成部分。CPU所有的 计算、接收/存储命令、处理数据 都由 核心 执行。
多核

单核多线程CPU是 交替地转换执行 多个任务。多核在理论上则是在 任何时间内 每个核执行各自的任务,不存在交替问题。因此多核速度更快。注:采用了 Intel超线程技术 的单核可以视为是双核,但 比不上 实际双核的性能。

数据表示

仅在数值为 时,各种码的相互转换 如下图 。当数值为 时各码 相同
码转换

数值0的原码表示有两种形式: [ + 0 ] 原 = 00000000 [+0]_原=0 0000000 [+0]=00000000 [ − 0 ] 原 = 10000000 [-0]_原=1 0000000 [0]=10000000

浮点数表示时采用 IEEE754 标准, N = 2 E × F N = 2^E \times F N=2E×F , E为解码,F为尾数。浮点数所能表示的 数值范围阶码 决定,所表示数值的 精度 则是由 尾数 决定。为了充分利用尾数来表示更多的有效数字,通常采用 规格化浮点数 。将尾数的绝对值限定在区间[0.5,1]。

IEEE754标准,一般单精度浮点个参数需牢记

数符 S(1位)阶码 E (8位)尾数 M (23位)
参数单精度浮点双精度浮点扩充精度浮点
浮点数字长326480
尾数长度P235264
符号位S111
指数长度E81115
最大指数+127+1023+16383
最小指数-126-1022-16383
指数偏移量+127+1023+16383
可表示的实数范围 1 0 − 38 − 1 0 + 38 10^{-38}-10^{+38} 103810+38 1 0 − 308 − 1 0 + 308 10^{-308}-10^{+308} 1030810+308 1 0 − 4932 − 1 0 + 4932 10^{-4932}-10^{+4932} 10493210+4932

IEE754对阶码采用偏移量表示,单精度浮点数 偏移值为 127 ,双精度浮点数的偏移值为1023,临时浮点数的偏移值为16383。计算阶码时需要在 阶数的原码上加上偏移量,以单精度浮点数为例阶数为7,则 [ 7 ] 原 [7]_原 [7] = 0000 0111 ,阶码为 [ 7 ] 原 + [ 偏移量 ] 原 [7]_原+[偏移量]_原 [7]+[偏移量]= 0000 0111 + 0111 1111 = 1000 0110

  • 规格化的值 :阶码部分的二进制值不全为0或1。表示的是规格化的值。
  • 非规格化的值 :当阶码部分的二进制全为0时,所表示的数是非规格化的。表示数值0,或是哪些非常接近0的数
  • 特殊值 :当阶码部分的二进制权威1时,符号位为0表示正无穷,为1表示负无穷

校验码

  • 合法编码 :用于传送数据。
  • 错误编码 :不允许在数据中出现的编码。
  • 码距 : 任意两个合法编码之间至少有多少个二进制位不同。

奇偶校验码

奇偶校验 Parity Codes ,通过在编码中加入一位校验位来使编码中的 1的个数为奇数 (奇校验),或者使1的个数为偶数 (偶校验)

数据偶校验编码C奇校验编码C
1010 10101010 1010 0 (偶数个1)1010 1010 1 (奇数个1)
0101 01000101 0100 10101 0100 0
0111 11110111 1111 10111 1111 0
1111 11111111 1111 01111 1111 1

海明码

海明码 Hamming Code 在数据为之间的特定位置上插入k个校验码,通过扩大码距来实现检错和纠错。假设k个校验位为 P k , P k − 1 , . . . , P 1 P_k,P_{k-1},...,P_1 Pk,Pk1,...,P1,n个数据位为 D n − 1 , D n − 2 , . . . , D 0 D_{n-1},D_{n-2},...,D_{0} Dn1,Dn2,...,D0 ,对应的海明码为 H k + n . . . , H 1 H_{k+n} ... ,H_1 Hk+n...,H1

  • P i P_i Pi 在海明码的第 2 i − 1 2^{i-1} 2i1 位置,数据位则依序从低到高占据海明码的剩余位置
  • 海明码中的任何一位都是由若干个校验位来校验的。其对应关系如下:被校验的海明位的下标等于所有参与校验该位的校验位的下标之和,而校验位由自身校验。
海明码海明码的下标校验位组
H 1 ( P 1 ) H_1(P_1) H1(P1)1 P 1 P_1 P1
H 2 ( P 2 ) H_2(P_2) H2(P2)2 P 2 P_2 P2
H 3 ( D 0 ) H_3(D_0) H3(D0)3=1+2 P 1 , P_1, P1, P 2 P_2 P2
H 4 ( P 3 ) H_4(P_3) H4(P3)4 P 3 P_3 P3
H 5 ( D 1 ) H_5(D_1) H5(D1)5=1+4 P 1 , P 3 P_1,P_3 P1,P3
H 6 ( D 2 ) H_6(D_2) H6(D2)6=2+4 P 2 , P 3 P_2,P_3 P2,P3
H 7 ( D 3 ) H_7(D_3) H7(D3)7=1+2+4 P 1 , P 2 , P 3 P_1,P_2,P_3 P1,P2,P3
H 8 ( P 4 ) H_8(P_4) H8(P4)8 P 8 P_8 P8

其中校验位的生成由校验位组的异或和决定:

P 1 = D 0 ⊕ D 1 ⊕ D 3 P_1 = D_0\oplus D_1 \oplus D_3 P1=D0D1D3

P 2 = D 0 ⊕ D 2 ⊕ D 3 P_2 = D_0\oplus D_2\oplus D_3 P2=D0D2D3

P 3 = D 1 ⊕ D 2 ⊕ D 3 P_3 = D_1\oplus D_2 \oplus D_3 P3=D1D2D3

循环冗余校验码

循环冗余校验码 Cyclic Redundancy Check 广泛应用于数据通信领域和磁介质存储系统中。利用生成多项式为k个数据为产生r个校验位来进行编码。左边信息码k位,右边校验码n-k位。故又称(n,k)码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栉风沐雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值