软件设计师 -- 计算机组成原理

计算机系统基础知识

1. 计算机系统硬件基本组成

计算机的基本硬件系统组成有运算器、控制器、存储器、输入设备和输出设备五大部分。运算器和控制器等被集成为中央处理单元。CPU负责对数据进行加工处理,能完成

  • 运算器和控制器:集成为中央处理单元。CPU负责对数据进行加工处理,能完成算术运算、逻辑运算及控制功能。
  • 存储器:分为内部存储器和外部存储器。前者速度快,容量小,一般用于存放程序,数据及中间结果。后者容量大,速度慢,可长期保存程序和数据。
  • 输入设备和输出设备:输入设备用于输入原始数据及各种命令,输出设备用于输出处理结果。

2. 中央处理单元

1.CPU的功能
(1)程序控制:通过执行指令来控制程序的执行顺序。
(2)操作控制:一条指令功能的实现需要若干操作信号配合完成。CPU将操作信号送 至相关部件。
(3)时间控制:指令执行时操作信号的出现时间,持续时间以及出现次序。
(4)数据处理:CPU最根本的任务。

2.CPU的组成
主要有运算器、控制器、寄存器组和内部总线组成。
(1)运算器:由算术逻辑单元(ALU)、累加寄存器(AC)、数据缓冲寄存器(DR)和状态寄存器(PSW)组成。
(2)控制器:由指令寄存器(IR)、程序计数器(PC)、地址寄存器(AR)和指令译码器(ID)组成。
(3)寄存器组:分为通用寄存器和专用寄存器。运算器和控制器中的寄存器为专用寄存器,其作用固定。

3. 数据表示

1)原、反、补、移码
(1)原码:在原数据前添加符号位0+1-;
(2)反码:正数的反码与原码相同,负数除符号位按位取反;
(3)补码:正数的补码与原码相同,负数除符号位按位取反后加1;
(4)移码:原数据加一个偏移量,原数据为纯整数时为2n-1(n 为机器字长),相当于其补码的符号位取反,否则等于其补码。常用于浮点数中表示阶码。

2)定点数与浮点数
(1)定点数:小数点位置固定不变的数。小数点位置约定方式:定点整数(纯整数,小数点在最低有效数值位之后)和定点小数(纯小数,小数点在最高有效数值位之前)。
(2)浮点数:小数点位置不固定的数,表示范围更大。
在浮点数表示法中,阶码通常为带符号的纯整数,尾数为带符号的纯小数。浮点数格式如下:

阶符阶码数符尾数

注:浮点数的表示不唯一,小数点位置改变时阶码也会改变。浮点数能够表示的数值范围主要由阶码决定,所表示数值的精确度由尾数决定。

为了充分利用尾数表示更多的有效数字,通常采用规格化浮点数。**规格化就是将尾数的绝对值限定在[0.5,1]之间。**当尾数用补码表示时,注意以下问题:

  • 若尾数M>=0,则其规格化的尾数形式是M=0.1xxx…x;其中x 可为0,也可为1,即将尾数限定在[0.5,1]之间。
  • 若尾数M<0, 则其规格化的尾数形式是M=1.0xxx…x;其中x可为0,也可为1,即将尾数限定在[-1,-0.5]之间。

**如果浮点数的阶码(包括一位阶符)用R 位的移码表示,尾数(包括一位数符)用M 位的补码表示,则表示的浮点数范围为:
最大的正数:+(1-2-M+1)*2(2R-1)
最小的负数:-1*2(2R-1)

工业标准IEEE754的标准表示为:(-1)S2E(b0b1b2……bn);

  1. (-1)S为浮点数的数符,S=0时为正数,S=1时为负数;
  2. E为指数(阶码);
  3. (b0b1b2……bn)为尾数,其长度为P,用原码表示。

浮点数的运算:

加减运算:

  1. 对阶:使两个数的阶码相同,将阶码小的向阶码大的对齐;
  2. 尾数求和(差);
  3. 结果规格化并判断溢出:若所得尾数不是规格化的,需要先进行规格化。当尾数溢出,需调整阶码。
  4. 舍入处理:对结果右归时,尾数的最低位将因被移出而舍弃,这就需要舍入处理,减小运算误差。
  5. 溢出判断:以阶码为准,若阶码溢出,则运算溢出;若阶码下溢(小于最小值),则结果为0,;否则结果正确,无溢出。

乘除运算:

  1. 浮点数相乘:其积的阶码等于两乘数的阶码相加,积的尾数等于两尾数相乘。
  2. 浮点数相除:其商的阶码等于被除数的阶码减去除数的阶码,商的尾数等于被除数的尾数除以除数的尾数。
    注:乘除运算的结果都需要进行规格化处理并判断阶码是否溢出。

4. 校验码

  • 奇偶校验码:在校验码中加入一位校验位来检使编码中的1的个数为奇数(奇校验)或偶数(偶校验),从而使码距变为2。常用的奇偶校验码有3种,分别为:水平奇偶校验码,垂直奇偶校验码和水平垂直校验码。
    注:只能检验出奇数位出错的编码,但不能发现偶数位出错的情况。

  • 海明码:在数据位间的确定位置上插入k 个校验位,通过扩大码距来实现检错和纠错。

    海明码的编码规则:
    设k 个校验位为Pk,Pk-1…,P1,n 个数据位为 Dn-1,Dn-2,…,D0,对应的海明码为 Hn+kHn+k-1,…,H1。那么:
    (1)Pi在海明码的第2i-1位置,即Hj=Pi,且j=2i-1,数据位依次从低到高占据海明码中剩下的位置。
    (2)海明码中的任何一位都由若干个校验位来校验的。其对应关系为:被检验的海明码下标等于所有参与校验该位的校验位的下标之和,校验位由自身校验。

    对于n 位数据,所需校验位为k,则应满足2K>n+k+1;

对于8位数据,需4个校验位,编码过程如下:
(1)确定数据位与校验位在海明码中的位置:
H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12
D7 D6 D5 D4 P4 D3 D2 D1 P3 D0 P2 P1
(2)确定校验关系:

海明码海明码的下标校验位组
H1(P1)1P1
H2(P2)2P2
H3(D0)3=1+2P1、P2
H4(P3)4P3
H5(D1)5=4+1P1、P3
H6(D2)6=4+2P2、P3
H7(D3)7=4+2+1P1、P2、P3
H8(P4)8P4
H9(D4)9=8+1P1、P4
H10(D5)10=8+2P2、P4
H11(D6)11=8+2+1P1、P2、P4
H12(D7)12=8+4P3、P4

(3)检验错误:
校验位与其所校验的位进行异或。若为奇校验,则所有的结果均为1无差错,若为偶校验,则所有的结果均为0无差错。若发生错误,所得结果的值为错误发生的海明码下标。

  • 循环冗余校验码(CRC):利用生成多项式为k 个数据位产生r 个校验位来进行编码,其编码长度为k+r。CRC 的格式为:
nn-1r+1rr-11
数据位校验位

在求CRC 编码时,采用模2运算,模2运算的加减规则是按位进行的,不发生进位和借位。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值