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

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

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

【软件设计师】——计组原理_第1张图片

中央处理单元

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

CPU的功能

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

CPU的组成

​ CPU主要由 运算器控制器寄存器组内部总线 等部件组成。
【软件设计师】——计组原理_第2张图片

运算器

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

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

控制器

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

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

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

多核CPU

核心,又称内核,使CPU最重要的组成部分。CPU所有的 计算、接收/存储命令、处理数据 都由 核心 执行。
【软件设计师】——计组原理_第3张图片

单核多线程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位)
参数 单精度浮点 双精度浮点 扩充精度浮点
浮点数字长 32 64 80
尾数长度P 23 52 64
符号位S 1 1 1
指数长度E 8 11 15
最大指数 +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 1010 1010 1010 0 (偶数个1) 1010 1010 1 (奇数个1)
0101 0100 0101 0100 1 0101 0100 0
0111 1111 0111 1111 1 0111 1111 0
1111 1111 1111 1111 0 1111 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)码。

你可能感兴趣的:(软件设计师,软件工程)