软件设计师考试 | 第一章 计算机系统知识 | 计算机系统基础知

2020-07-21  本文已影响0人  Levi_moon

(一)计算机系统硬件基本组成

计算机系统是由硬件和软件组成的,它们协同工作来运行程序。
计算机的硬件组成:

计算机硬件组成

(二)中央处理单元

中央处理单元(CPU)是计算机系统的核心部件,负责获取程序指令、对指令进行译码并加以执行。

1.CPU的功能

  1. 程序控制。cpu通过执行指令来控制程序的执行顺序,是cpu的重要功能。
  2. 操作控制。cpu产生每条指令的操作信号并将操作信号送往对应的部件,控制相应的部件按指令的功能要求进行操作。
  3. 时间控制。cpu对指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都进行严格控制。
  4. 数据处理。cpu对数据进行算术运算及逻辑运算。

2.CPU的组成

  1. 运算器。是执行部件,执行所有的算术运算、逻辑运算。
  2. 控制器。控制整个cpu的工作,它决定了计算机运行过程的自动化。
  3. 寄存器组。分为专用寄存器(运算器和控制器中的寄存器)和通用寄存器。
  4. 内部总线。是计算机系统中最快的总线,用来与高速缓存、主存和北桥(或MCH)之间传送信息。

(1)运算器

运算器组成

(2)控制器

控制器组成

(3)寄存器

寄存器组成

3.多核CPU

(三)数据表示

数值在计算机中表示的形式称为机器数,参用的是二进制,用01表示。

机器数

1.原码、反码、补码和移码

(1)原码

数值X的原码记为[X]原,如果机器字长为nn个二进制位表示数据),则原码的定义如下:

原码表示法

在原码表示法中,最高位是符号位,0表示正号,1表示负号,其余的n-1位表示数值的绝对值。
数值0的原码表示有两种形式:[+0]原=0 0000000,[-0]原=1 0000000

(2)反码

数值X的反码记为[X]反,如果机器字长为n,则反码的定义如下:

反码表示法

在反码表示中,最高位是符号位,0表示正号,1表示负号,正数的反码与原码相同,负数的反码则是其绝对值按位求反。
数值0的反码表示有两种形式:[+0]反=0 000000,[-0]反=1 1111111

(3)补码

数值X的补码记为[X]补,如果机器字长为n,则补码的定义如下:

补码表示法

在补码表示中,最高位为符号位,0表示正号,1表示负号,正数的补码与其原码和反码相同,负数的补码则等于其反码的末位加1
数值0的补码表示只有一种形式:[+0]补=0 0000000,[-0]补=0 0000000

(4)移码

移码表示法是在数X上增加一个偏移量来定义的,常用于表示浮点数中断阶码。如果机器字长为n,规定偏移量为2^(n-1),则移码的定义如下:

移码表示法

实际上,在偏移2^(n-1)的情况下,只要将补码的符号位取反便可获得相应的移码表示。

2.定点数和浮点数

(1)定点数

定点数就是小数点的位置固定不变的数。分为:定点整数(纯整数,小数点在最低有效数值位之后)、定点小数(纯小数,小数点在最高有效数值位之前)。

(2)浮点数

浮点数是小数点位置固定不变的数,它能表示更大范围的数。
一个二进制数N可以表示为更一般的形式N=2^E*F,其中E称为阶码,F称为尾数。例如:

1011.10101=2^4*0.101110101
或
1011.10101=2^5*0.0101110101

用阶码和尾数表示的数称为浮点数,这种表示数的方法称为浮点表示法。在浮点表示法中,阶码为带符号的纯整数,尾数为带符号的纯小数。
浮点数的表示格式为:

阶符 阶码 数符 尾数

浮点数的特性:

(3)工业标准IEEE 754

浮点数的标准是IEEE 754工业标准,该标准的表示形式为:(-1)^S*2^E*(b0*b1*b2*b3*···bn)。其中(-1)^S为该浮点数的数符,当S0时表示正数,为1时表示负数;E为阶码,用移码表示;(b0*b1*b2*b3*···bn)为尾数,长度是n位,用原码表示。
根据IEEE 754工业标准,被编码的值分为3种:规格化的值、非规格化的值、特殊值。

(4)浮点数的运算

浮点数的加减运算步骤:

浮点数相乘,其积的阶码等于两乘数的阶码相加,积的尾数等于两乘数 的尾数相乘。
浮点数相除,其商的阶码等于被除数的阶码减去除数的阶码,商的尾数等于被除数的尾数除以除数的尾数。

(四)校验码

为了保证计算机系统运行时的数据传输的正确性,通常使用校验码的方法来检测传送的数据是否出错。
数据可能出现的编码分为两类:合法编码和错误编码。合法编码用于传送数据,错误编码不允许出现在数据中。
合理地设计错误编码及编码规则,使得数据在传送中出现某种错误时,会变成错误编码,这样就可以检测出接收到的数据是否有错。
码距,是指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。
常见的校验码:奇偶校验码、海明码、循环冗余校验码。

1.奇偶校验码

奇偶校验码通过在编码中增加一位校验码来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为2
对于奇校验来说,它可以检查代码中奇数位出错的编码,但不能发现偶数位出错的情况,即当合法编码中的奇数位发生了错误时,即编码中的1变成00变成1,则该编码中1的个数的奇偶性就发生了变化,从而可以发现错误。
常用的奇偶校验码有三种:水平奇偶校验码、垂直奇偶校验码、水平垂直校验码。

2.海明码

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

3.循环冗余校验码

循环冗余校验码由两部分组成,左边为信息码(数据),右边为校验码。利用生成多项式为k个数据位产生r个校验位来进行编码,编码长度位k+r


上一篇 下一篇

猜你喜欢

热点阅读