系统架构师(1)计算机组成与结构[通俗易懂]

系统架构师(1)计算机组成与结构[通俗易懂]1.计算机硬件组成计算机得硬件基本系统由五大部分组成运算器、控制器、存储器、输入设备、输出设备存储器分为内部存储器:内存,容量小。特点是速度快,临时存放数据。外部存储器:硬盘,光盘。特点是容量大,速度慢,能长期存储数据。输入设备:键盘、鼠标。输出设备:音响、显示器。主机:CPU+主存储器…

大家好,又见面了,我是你们的朋友全栈君。

1.计算机硬件组成

计算机硬件基本系统由五大部分组成
在这里插入图片描述

2.中央处理单元CPU

2.1.CPU

中央处理单元功能:实现程序控制、操作控制、时间控制、数据处理功能。
中央处理单元组成:
在这里插入图片描述
主机:CPU + 主存储器

2.2.运算器

运算器功能:执行所有的算术运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,如与、或、非、比较等。
在这里插入图片描述

2.3.控制器

控制器功能:控制整个CPU的工作,最为重要,包括程序控制、时序控制等。
在这里插入图片描述

2.4.计算机指令

计算机指令的组成:一条指令操作码操作数两部分组成。
操作码决定要完成的操作
操作数指参加运算的数据及其所在单元的地址
在计算机中,操作要求和操作数地址都由二进制数码表示,分别称做操作码和地址码,整条指令以二进制编码的形式存放在存储器中。
计算机指令执行过程
1.取指令:将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR
2.分析指令:指令译码器ID进行分析,分析指令操作码
3.执行指令:取出指令执行所需的源操作数

2.5.指令寻址方式

顺序寻址方式
当执行一段程序时,是一条指令接着一条指令地顺序执行。
跳跃寻址方式
指下一条指令地址码不是由程序计数器给出,而是由本条指令直接给出,程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时更新新的指令地址。
指令操作数的寻址方式
立即寻址方式
指令的地址码字段指出的不是地址,而是操作数本身。
直接寻址方式
在指令的地址字段中直接指出操作数在主存中的地址。
间接寻址方式
指令地址码字段所指向的存储单元中存储的是操作数的地址。
寄存器寻址方式
指令中的地址码是寄存器的编号。

3.计算机数

3.1.数据的进制转化

进制的表示
二进制、十六进制一般在题目中都会给出中文说明,如果没有给出,需要注意的是,二进制符号位0b,一般表示为0b11011;十六进制符号为0x或者H,可表示为0x1AF或者1AFH。
R进制整数转十进制
位权:数制中每一固定位置对应的单位值成为位权。
位权展开法:每一位的数符×该位的权值,将所有的乘式相加即可。
在这里插入图片描述
十进制整数转R进制
在这里插入图片描述
M进制整数转R进制
通用方法:首先将M进制转成10进制数,在将十进制数转成R进制。
二进制转八进制
因为三个2进制刚好组成一个8进制数,即2的三次方刚好等于8,因此我们可以三个二进制一组,组成八进制数。
在这里插入图片描述
二进制转十六进制
二进制转16进制同上
在这里插入图片描述

3.2.数的表示

机器数
一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1.
比如,十进制中的数 +3 ,计算机字长为8位,转换成二进制就是00000011。如果是 -3 ,就是 10000011 。
定点表示法
定点表示法分为纯小数和纯整数两种,其中小数点不占存储位,而是按照以下约定
纯小数:约定小数点的位置在机器数的最高位置位之前。
纯整数:约定小数点的位置在机器数的最低数值位之后。
真值:机器数对应的实际数值。
因为第一位是符号位,所以机器数的形式值就不等于真正的数值。例如上面的有符号数 10000011,其最高位1代表负,其真正数值是 -3 而不是形式值131(10000011转换成十进制等于131)。
所以,为区别起见,将带符号位的机器数对应的真正数值称为机器数的真值。例:0000 0001的真值 = +000 0001 = +1,1000 0001的真值 = –000 0001 = –1

3.3.数的编码方式

原码
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值. 比如如果是8位二进制:
[+1]原 = 0000 0001
[-1 ]原 = 1000 0001
第一位是符号位. 因为第一位是符号位, 所以8位二进制数的取值范围就是:
[1111 1111 , 0111 1111]==>[-127 , 127]
反码
正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.
[+1] = [00000001]原 = [00000001]反
[-1 ] = [10000001]原 = [11111110]反
补码
补码的表示方法是:
正数的补码就是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
[+1] = [00000001]原 = [00000001]反 = [00000001]补
[-1 ] = [10000001]原 = [11111110]反 = [11111111]补
移码
移码(又叫增码或偏置码)通常用于表示浮点数的阶码,其表示形式与补码相似,只是其符号位用“1”表示正数,用“0”表示负数,数值部分与补码相同。
在这里插入图片描述

3.4.浮点数

浮点数表示
浮点数:表示方法为N = F * 2^E,
F称为尾数:决定精度,为带符号的纯小数
E称为阶码:决定数值大小范围,为带符号的纯整数
类似与十进制的科学技术法,如98.765 = 0.98765 * 10^2 。在这里插入图片描述
尾数的表示采用规格化方法
带符号尾数的补码必须为1.0xxxxx(负数)或者0.1xxxxx(正数)
浮点数的运算
1.对阶:使得两个数的阶码相同,小阶向大阶看齐
2.尾数计算
3.结果规格化

4.算术运算和逻辑运算

数与数之间的算术运算包括加、减、乘、除等基本算术运算,对于二进制数,还应该掌握基本逻辑运算。
逻辑与(&)
0&0=0;
0&1=0;
1&0=0;
1&1=1;
只有两个都为1(true),结果才为1(true),否则为0(false)如:if ( a == b & c == d) { }
逻辑或(|)
0|0=0;
0|1=1;
1|0=1;
1|1=1;
只要有一个为1(true),结果就为1(true),否则为0(false)如:if ( a == b || c == d) { }
逻辑非
~1 = 0;
~0 = 1;
非1(true)为0(false),非0(false)为(true)如:if ( ! a == b ) { }
异或⊕
0^0=0;
0^1=1;
1^0=1;
1^1=0;
相同为0,不同为1
左移
2进制数整体左移n位,高位若溢出,则舍去,低位补0,左移几位相当于乘以几个2
右动
2进制数整体右移n位,低位若溢出,则舍去,高位补0,右移几位相当于除以几个2

5.校验码

码距
从A码到B码转换所需要改变的位数称为码距。
如A码为00,B码为11,则码距为2
如A码1111,B码1110,则码距为1
如A码1001,B码1011,则码距为1

5.1.奇偶校验码

用来检测数据传输过程中是否发生错误,是众多校验码中最为简单的一种。通过添加一位校验码,使得编码中1的个数为奇数(奇校验)或者偶数(偶校验)
奇校验:原始码流+校验位 总共有奇数个1。编码中,含有奇数个1,发送给接收方,接收方收到后,会计算收到的编码中有多少个1,如果是奇数个,则正确,否则错误。
偶校验:原始码流+校验位 总共有偶数个1。编码中,含有偶数个1,发送给接收方,接收方收到后,会计算收到的编码中有多少个1,如果偶奇数个,则正确,否则错误。

5.2.循环冗余校验码CRC

什么是CRC
CRC即循环冗余校验码:是数据通信领域中最常用的一种查错校验码,其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查(CRC)是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性
CRC只能检错,不能纠错,其原理是找出一个能整除多项式的编码,因此首先要将原始报文除以多项式,将所得的余数作为校验位加在原始报文之后,作为发送数据发给接收方。
编码格式为:数据位+校验位
数据位:信息码(原始数据)
校验码:校验码由信息码进行模2除法运算得到的余数
模2运算
与四则运算相同,模2运算也包括模2加法、模2减法、模2乘法、模2除法四种二进制运算。与四则运算不同的是模2运算不考虑进位和借位
①模2加法运算定义为:
0+0=0
0+1=1
1+0=1
1+1=0
②模2减法运算定义为:
0-0=0
0-1=1
1-0=1
1-1=0
③模2乘法运算定义为:
0×0=0
0×1=0
1×0=0
1×1=1
④模2除法运算定义为:
0÷1=0
1÷1=1
求CRC的校验码
现假设选择的 CRC生成多项式为 G( X) = X4 + X3 + 1,要求出二进制序列(信息码) 10110011的 CRC校验码。
①根据多项式求除数。由 G( X) = X4 + X3 + 1,可知二进制一种有五位,第4位、第三位和第零位分别为1,其余位为0,因此除数为:11001;
②根据多项式和信息码求被除数。已知多项式为5位,则我们需要在信息码后面 添加5-1个0,此时信息码变为 101100110000,然后使用模2除法除以除数 11001,得到余数。需要注意的是,最后的余数一定是多项式的二进制位数减1,如本案例中,不足5-1位,则在前面补0。
在这里插入图片描述
发送方发送数据
上述案例中,信息码为:10110011,多项式为 G( X) = X4 + X3 + 1,我们求出来的校验码为0100。因此发送数据就为:信息码+校验码。即101100110100
接收方校验数据
接收方将收到的数据101100110100与多项式G( X) = X4 + X3 + 1的校验码0100进行模2除法,若余数为0,说明校验正确,数据传输正确。

5.2.海明校验码

海明码
本质也是利用奇偶性来验错和纠错的检验方法,构成方法是在数据位之间的确定位置上插入K个校验位,通过扩大码距实现验错和纠错。
设数据位是n位,校验位是k位,则n和k必须满足一下关系 2k>=n+k+1
验错:查验是对还是错(无法找到哪里错)
纠错:找出哪里错误
什么位置放校验位?
校验位的位置是位于整个信息编码中2n的位置,比如说20,21,22 对应的也就是1,2,4位,都是需要放校验位的,因此在海明码的编码体系当中,所有的校验位都是固定的,其他位置则是填充信息位。
例如:求信息1011的海明码
从信息1011中可知,数据位为4,
根据公式 2k>=n+k+1得 2k>= 4+k+1,因此校验位k=3,即20,21,22为校验位
在这里插入图片描述
每一位校验码如何获取?
即20,21,22为校验位时,即1,2,4位怎么来计算得出校验码的值?
校验位是通过信息位获取的,因此,我们将信息位(编号)拆成2进制表示
即在上表中信息位I4,I3,I2,I1表示为:
I4 => 7 = 22+ 21 + 20,即I4由r2,r1,r0校验
I3 => 6 = 22+ 21,即I3由r2,r1校验
I2 => 5 = 22+ 20,即I2由r2,r0校验
I1 => 3 = 21+ 20,即I1由r1,r0校验
I4,I3,I2,I1值分别为1、0、1、1
我们发现r2在I4,I3,I2中被使用,因此将这几个数进行异或以后,就为校验码的值
r2 = I4 ⊕ I3 ⊕ I2
r2 = 1 ⊕ 0 ⊕ 1 = 0;
我们发现r1在I4,I3,I2中被使用,因此将这几个数进行异或以后,就为校验码的值
r1 = I4 ⊕ I3 ⊕ I1
r1 = 1 ⊕ 0 ⊕ 1 = 0;
我们发现r0在I4,I2,I1中被使用,因此将这几个数进行异或以后,就为校验码的值
r0 = I4 ⊕ I2 ⊕ I1
r0 = 1 ⊕ 1 ⊕ 1 = 1;
因此 r2 ,r1,r0 分别为0,0,1
则得出下表,因此发送的海明校验码为1010101.
在这里插入图片描述
接收方如何进行纠错嗯?
接收方收到海明码以后,会将每一位校验位与其校验的位数分别异或
如果采用偶校验,那么运算得到的结果应该全为0,如果是奇校验,则全为1
假设采用偶校验
在这里插入图片描述
我们发现运算结果为100,不全为0, 其中第3位为1,因此第 3+1位出错,纠错的方法就是将该位逆取反。

6.计算机体系结构

6.1.Flynn分类

Flynn分类法,是基于指令流和数据流的数量对计算机进行分类的方法。
在这里插入图片描述

6.3.指令系统

CISC(Complex Instruction Set Computers,复杂指令集计算集)。
CISC以Intel,AMD的X86 CPU为代表,通过高速执行多个精简指令来提高整个微机的性能。
RISC(Reduced Instruction Set Computers,精简指令集计算集)。
RISC以ARM为代表,通过用尽可能少的指令通过用尽可能少的指令来执行各种过程来提高微型计算机的性能。
CISC复杂指令,兼容性强,指令繁多,长度可变,由微程序实现;
RISC精简指令,指令少,使用频率接近,主要依靠硬件实现(通用寄存器、硬布线逻辑控制)
在这里插入图片描述

6.4.指令流水线

指令流水线原理
将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件处理指令的不同段。
举个例子: 例如一条指令要执行要经过3个阶段:取指令、译码、执行,每个阶段都要花费一个机器周期,如果没有采用流水线技术,那么这条指令执行需要3个机器周期;如果采用了指令流水线技术,那么当这条指令完成“取指”后进入“译码”的同时,下一条指令就可以进行“取指”了,这样就提高了指令的执行效率。
指令流水线过程图
在这里插入图片描述
未使用流水线和使用流水线对比
在这里插入图片描述
流水线计算
流水线周期指令分成不同执行段,其中执行时间最长的段为流水线周期。流水线执行时间1条指令总执行时间 + (总指令条数 -1 )* 流水线周期流水线加速比不使用流水线总执行时间/使用流水线总执行时间

超标量流水线技术
常规流水线是度为1的,即每个流水线阶段只执行一个部分,
当度大于1时,就是超标量技术,
当度为3时,相当于3条流水线并行执行,即取指、分析、执行每个阶段都同时处理3条指令,
因此,当题目提到度的概念时,计算时需要将:指令条数=指令条数/度。然后再套流水线执行时间的公式。
习题
流水线技术是通过并行硬件来提高系统性能的常用方法。对于一个k段流水线,假设其各段的执行时间均相等(设为t),输入到流水线中的任务是连续的理想情况下,完成n个连续任务需要的总时间为( )。若某流水线浮点加法运算器分为5段,所需要的时间分别是6ns、7ns、8ns、9ns和6ns,则其最大加速比为( )。
A.nkt
B.(k+n-1)t
C.(n-k)kt
D.(k+n+1)t
A.4
B.5
C.6
D.7
解析
当流水线各段执行时间相等时,公式化简后,完成n个连续任务需要的总时间为(k+n-1)*t。加速比定义为顺序执行时间与流水线执行时间的比值,根据题干假设,假设一共有n条指令,则顺序执行时间为(6+7+8+9+6)n=36n,该流水线周期为最长的9ns,则在流水线中的执行时间为36+9(n-1)=9n+27,因此加速比为36n/(9n+27),题目问的是最大加速比,由这个公式可以知道,当n越大时,该公式值越大,因此最大的时候就是n趋向于无穷大的时候,此时可忽略分母的27,也就是36n/9n=4.

6.5.存储系统

计算机存储系统的层次结构
在这里插入图片描述
计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。
两级存储:Cache-主存、主存-辅存(虚拟存储体系)。

6.5.1.局部性原理

在这里插入图片描述

6.5.2.高速缓存Cache

高速缓存cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成。其内容是主存内存的副本拷贝,对于程序员来说是透明的。

Cache由控制部分和存储器组成,存储器存储数据,控制部分判断cPU要访问的数据是否在Cache中,在则命中,不在则依据一定的算法从主存中替换。

地址映射:在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换为Cache存储器地址,这种地址的转换称为地址映像,由硬件自动完成映射,分为下列三种方法:

1.直接映射
将Cache存储器等分成块,主存也等分成块并编号。主存中的块与Cache中的块的对应关系是固定的,也即二者块号相同才能命中。地址变换简单但不灵活,容易造成格源浪费(如图所示)
在这里插入图片描述
2.全相联映射
全相联映像:同样都等分成块并编号。主存中任意一块都与Cache中任意一块对应。因此可以随意调入Cache任意位置,但地址变换复杂,速度较慢。因为主存可以随意调入Cache任意块,只有当Cache满了才会发生块冲突,是最不容易发生块冲突的映像方式。如右图所示。
在这里插入图片描述
3.组组相连映射
组组相连映像:前面两种方式的结合,将Cache存储器先分块再分组,主存也同样先分块再分组,组间采用直接映像,即主存中组号与Cache中组号相同的组才能命中,但是组内全相联映像,也即组号相同的两个组内的所有块可以任意调换。
按照cache地址映像的块冲突概率,从高到低排列的是()。
A.全相联映像→直接映像→组相联映像
B.直接映像→组相联映像→全相联映像
C.组相联映像→全相联映像→直接映像
D.直接映像→全相联映像→组相联映像
答案:B

6.5.3.Cache置换算法

(1)随机算法
这是最简单的普换算法。随机法完全不管cache块过去、现在及将来的使用情况,简单地根据一个随机数,选择一块替换掉。
(2)先进先出(First In and First Out,FIFO)算法
按调入cache的先后决定淘汰的顺序,即在需要更新时,将最先进入cache的块作为被替换的块。这种方法要求为每块做一记录,记下它们进入cache的先后次序。这种方法容易实现,而且系统开销小。其缺点是可能会把一些需要经常使用的程序块(如循环程序)替换掉。
3)近期最少使用(Least Recently Used, LRU)算法
LRU算法是把cPu近期最少使用的块作为被替换的块。这种替换方法需要随时记录cache中各块的使用情况,以便确定哪个块是近期最少使用的块。LRu算法相对合理,但实现起来比较复杂,系统开销较大。通常需要对每一块设置一个称为“年龄计数器”的硬件或软件计数器,用以记录其被使用的情况。
(4)最不经常使用页置换(Least Frequently Used (LFU))算法
要求在页置换时置换引用计数最小的页,因为经常使用的页应该有一个较大的引用次数。但是有些页在开始时使用次数很多,但以后就不再使用,这类页将会长时间留在内存中,因此可以将引用计数寄存器定时右移一位,形成指数衰减的平均使用次数。LFU的复杂度以及计数器规模都比LRU大,LRU只关注近期访问情况,而LFU会统计累计访问次数作为淘汰的依据。

6.5.4.Cache命中率

当CPU所访问的数据在cache中时,称为命中,直接从Cache中读取数据,否则没有命中,需要从主存中读取所需的数据。

使用cache改善系统性能的依据是程序的局部性原理。程序中大部分指令是()的。设某计算机主存的读/写时间为100ns,有一个指令和数据合一的Cache,已知该Cache的读/写时间为10ns,取指令的命中率为98%,取数的命中率为95%。在执行某类程序时,约有1/5指令需要额外存/取一个操作数。假设指令流水线在任何时候都不阻塞,则设置cache后,每条指令的平均读取时间约为() ns.
A.顺序存储、顺序执行
B.随机存储、顺序执行
c.顺序存储、随机执行
D.随机存储、随机执行
A.12.3
B.14.7
C.23.4
D.26.3
答案AB
解析:(1002%+1098%)+(1005%+1095%)*20%=14.7

6.5.5.主存编址

主存编址的考察情况可通过下面例题讲解:
地址编号从80000H到BFFFFH且按字节编址的内存容量为(5 )KB,若用16K4bit的存储器芯片构成该内存,共需(6 ))片
5
A.128
B.256
C.512
D.1024
6
A.8
B.16
C.32
D.64
答案:B C
解析:首先计算出地址段包含的存储空间数,为BFFFFH-80000H+1=40000H,按字节编制,即一个存储空间占一个字节,共40000H个字节,转换为十进制即256KB;该存储芯片总容量为16K
0.5B=8KB,因此共需256/8=32片该芯片才够存储。

6.6.磁盘结构

磁盘有正反两个盘面,每个盘面有多个同心圆,每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就被存放在一个个扇区中。

磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转,旋转到指定的扇区,才能读取到对应的数据,因此,会产生寻道时间和等待时间。

公式为:存取时间=寻道时间+等待时间(平均定位时间+转动延迟)。

注意:寻道时间是指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.7.总线结构

从广义上讲,任何连接两个以上电子元器件的导线都可以称为总线,通常分为以下三类:
内部总线
内部芯片级别的总线,芯片与处理器之间通信的总线。

系统总线
是板级总线,用于计算机内各部分之间的连接,具体分为数据总线(并行数据传输位数)地址总线(系统可管理的内存空间的大小)、控制总线(传送控制命令)。代表的有ISA总线、EISA总线、PCI总线。

外部总线
设备一级的总线,微机和外部设备的总线。代表的有RS232(串行总线)、5CSI(并行总线)、USB(通用串行总线,即插即用,支持热插拔)。

以下关于总线的说法中,正确的是( )。
A.串行总线适合近距离高速数据传输,但线间串扰会导致速率受限
B.并行总线适合长距离数据传输,易提高通信时钟频率来实现高速数据传输
C.单总线结构在一个总线上适应不同种类的设备,设计复杂导致性能降低
D.半双工总线只能在一个方向上传输信息
答案: C

6.8.系统可靠性分析

平均无故障时间MTTF=1/失效率

平均故障修复时间MTTR=1/修复率

平均故障间隔时间MTBF=MTTF+MTTR

系统可用性=MTTF/(MTTF+MTTR)*100%。

无论什么系统,都是由多个设备组成的,协同工作,而这多个设备的组合方式可以是串联、并联,也可以是混合模式,假设每个设备的可靠性为R1,R.…….Rn,则不同的系统的可靠性R的计算公式如下:
串联系统
一个设备不可靠,整个系统崩溃:R=R1×R2×…×Rn
并联系统
所有设备都不可靠,整个系统才崩溃:R=1-(1-R1)×(1-R2)×.…(1-Rn)
串并联系统
在这里插入图片描述

某计算机系统的可靠性结构如下所示,若所构成系统的每个部件的可靠度分别为R1、R2、R3和R4,则该系统的可靠度为( )。
在这里插入图片描述
A.(1-( R1+R2)R3)+R4
B.(1-(1-R1R2)(1-R3))R4
C.(1-R1R2)(1-R3)R4
D.(1-R1)(1-R2)R3(1-R4)
答案:B
十进制转R进制

附录:习题

CPU习题

习题
CPU执行算术运算或逻辑运算时,常将源操作数和结果暂存在( )中
A、程序计数器(PC)
B、累加寄存器(AC)
C、指令寄存器(IR)
D、地址寄存器(AR)
解析:
程序计数器:存放执行指令的地方,计算前就要用到
累加寄存器:暂存算术逻辑运算部件ALU运算的结果信息
指令寄存器:保存当前正在执行的一条指令
地址寄存器:用来保存当前CPU所要访问的内存单元的地址
在这里插入图片描述

习题
执行CPU指令时,在一个指令周期的过程中,首先需从内存读取要执行的指令,此时先要将指令的地址即( )的内容送到地址总线上。
A. 指令寄存器(IR)
B. 通用寄存器(GR)
C. 程序计数器(PC)
D. 状态寄存器 (PSW)
解析:
程序计数器PC负责记录要执行的指令地址。
在这里插入图片描述

计算机数

习题
浮点数在机器中的表示形式如下所示,若阶码的长度为e,尾数的长度为m,则以下关于浮点表示的叙述中,正确的是( )。
①e的值影响浮点数的范围,e越大,所表示的浮点数值范围越大
②e的值影响浮点数的精度,e越大,所表示的浮点数精度越高
③m的值影响浮点数的范围,m越大,所表示的浮点数范围越大
④m的值影响浮点数的精度,m越大,所表示的浮点数精度越高
A. ①③
B. ②③
C. ①④
D. ②④

校验码

习题
循环冗余校验码(Cyclic Redundancy Check ,CRC)是数据通信领域中最常用的一种差错校验码,该校验方法中,使用多项式除法(模2 除法)运算后的余数为校验字段。若数据信息为n位,则将其左移k 位后,被长度为 k+1位的生成多项式相除,所得的k位余数即构成k 个校验位,构成n+k位编码。若数据信息为1100,生成多项式为 X3+X+1 (即1011) ,则CRC编码是( )。
A.1100010
B.1011010
C.1100011
D.1011110
解析
1.已知信息码为1100,多项式为X3+X+1 (即1011) ,因此被除数为1100000(信息码+多项式2进制位数-1个0)
2.1100000做模2除法运算,被除数为多项式1011,求得校验码(余数)为010
3.CRC码为信息码+校验码 即1100010

计算机体系结构

习题
Flynn分类法根据计算机在执行程序的过程中( )的不同组合,将计算机分为4类。当前主流的多核计算机属于( )计算机。
A.指令流和数据流
B.数据流和控制流
C.指令流和控制流
D.数据流和总线带宽
A.SISD
B.SIMD
C.MISD
D.MIMD
习题
以下关于复杂指令集计算机(Complex Instruction Set Computer,CISC) 的叙述中,正确的是( )。
A.只设置使用频度高的一些简单指令,不同指令执行时间差别很小
B.CPU 中设置大量寄存器,利用率低
C.常采用执行速度更快的组合逻辑实现控制器
D.指令长度不固定,指令格式和寻址方式多
习题
流水线的吞吐率是指流水线在单位时间里所完成的任务数或输出的结果数。设某流水线有5段,有 1 段的时间为2ns ,另外4 段的每段时间为1ns,利用此流水线完成 100 个任务的吞吐率约为( )个/s 。
A.500×106
B.490×106
C.250×106
D.167×106
解析
吞吐率是单位时间内执行任务的个数,也即将总任务/总执行时间;
流水线执行100个任务所需要的时间为:(2+1+1+1+1)+ (100-1)*2 = 204ns
所以每秒吞吐率为:(100/204)*109 = 490 * 106
备注:1秒等于109ns

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/138961.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • SqlSessionTemplate MapperScannerConfigurer「建议收藏」

    SqlSessionTemplate MapperScannerConfigurer「建议收藏」mybatis SqlSessionFactoryBean SqlSessionTemplateMapperScannerConfigurer1.MyBatis简介   MyBatis是什么?MyBatis是一款一流的支持自定义SQL、存储过程和高级映射的持久化框架。MyBatis几乎消除了所有的JDBC代码,也基本不需要手工去设置参数和获取检索结果。MyBatis能够使用简单的XM

  • 数学建模(7)动态规划以及matlab实现

    数学建模(7)动态规划以及matlab实现数学建模(7)动态规划概念运筹学分支,求解多阶段决策过程最优化问题的数学方法思路将复杂的多阶段决策问题分解为一系列的简单,离散的单阶段决策问题,顺序求解法在考虑本阶段最优的情况下兼顾整体最优的解决方法主要处理离散连续型问题特点没有特定的算法,需要具体问题具体分析无后效性马尔科夫性,系统从某个阶段后的发展仅与本阶段所处的状态和以后的决策所做的决策所决定,与之前的状态无关。具体问题企业…

    2022年10月30日
  • 数据可视化与解读_大数据可视化概念

    数据可视化与解读_大数据可视化概念前言数据可视化,是指将相对晦涩的的数据通过可视的、交互的方式进行展示,从而形象、直观地表达数据蕴含的信息和规律。早期的数据可视化作为咨询机构、金融企业的专业工具,其应用领域较为单一,应用形态较为保守。步入大数据时代,各行各业对数据的重视程度与日俱增,随之而来的是对数据进行一站式整合、挖掘、分析、可视化的需求日益迫切,数据可视化呈现出愈加旺盛的生命力,表现之一就是视觉元素越来越多样,从朴素的柱状图/

  • vue组件 订单支付15分钟倒计时

    vue组件 订单支付15分钟倒计时//支付倒计时ComputetTime(data){letst=data.currentTime.replace(/\-/g,”/”),//当前服务器时间ct=data.formatCreateTime.replace(/\-/g,”/”);//创建订单时间letts=newDate(st).getTime…

  • Pytorch中DataLoader的使用[通俗易懂]

    Pytorch中DataLoader的使用[通俗易懂]前言最近开始接触pytorch,从跑别人写好的代码开始,今天需要把输入数据根据每个batch的最长输入数据,填充到一样的长度(之前是将所有的数据直接填充到一样的长度再输入)。刚开始是想偷懒,没有去认真了解输入的机制,结果一直报错…还是要认真学习呀!加载数据pytorch中加载数据的顺序是:①创建一个dataset对象②创建一个dataloader对象③循环dataloader对象,将data,label拿到模型中去训练dataset你需要自己定义一个class,里面至少包含3个函数:①_

  • powerdesigner 画出 C++ UML 增加const,static,virtual属性

    powerdesigner 画出 C++ UML 增加const,static,virtual属性

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号