【软件设计师01】计算机组成与体系结构

计算机组成与体系结构

1. 数据的表示

1. 进制转换

按权展开法:R进制 -> 十进制

二进制 10100.01 -> 1*2^4 + 1*2^2 + 1*2^-2

八进制 705.3 -> 7*8^2 + 5*8^0 + 3*8^-1

短除法:十进制 -> R进制
不断除R进制标记余数,当下一次余数为0时停止,从后往前连接
94转二进制
94/2 -> 0
47/2 -> 1
23/2 -> 1
11/2 -> 1
5/2 -> 1
2/2 -> 0
1
得到结果:1011110

二进制转八进制/十六进制可以分为3/4个数为一组计算

小数转换(精度丢失)
十进制小数部分转R进制会丢失精度,只有一些特定数值可以完美转换
0.125转二进制
0.125*2=0.25 取整数部分0
0.25*2=0.5. 取整数部分0
0.5*2=1 取整数部分1
从前往后连接得到结果:0.001

在这里插入图片描述
B
在这里插入图片描述
在这里插入图片描述
B
在这里插入图片描述
B
在这里插入图片描述
D
在这里插入图片描述
B、C
在这里插入图片描述
A
在这里插入图片描述
B

2. 数据编码(原/反/补/移)

一般用1个字节8位表示码值
原码(-127~127):用n个字节表示二进制数,首位为符号位(0正 1负),中间补0
反码(-127~127):正数的反码不变,负数符号位不变其他位取反
补码(-128~127):正数的补码不变,负数的补码为反码加1
移码(-128~127):补码的首位取反,其余不变;一般做浮点运算中的阶码

反码、补码、移码都能正确的做加减运算;在原码和反码中0分正负两种表示方式,因此表示范围少1位
在这里插入图片描述
C
在这里插入图片描述
B 转2进制后反推
在这里插入图片描述
C
在这里插入图片描述
B
在这里插入图片描述
B
在这里插入图片描述
B
在这里插入图片描述
D

3. 浮点数运算 - 科学计数法

N = M*R^e
M尾数、e指数、R基数
运算方式:对阶 -> 尾数计算 -> 结果格式化
即两个指数不同的数加减运算需要先对阶,再算尾数,再格式化成科学计数法(尾数为1位数字且不为0)

对阶:小阶向大阶对,尾数向右移
浮点数表示对范围由阶码决定,精度由尾数决定
在这里插入图片描述
在这里插入图片描述
B
在这里插入图片描述
C、D;规格化是指要求将尾数的绝对值限定在区间 [0.5,1],(3)D有一点争议
在这里插入图片描述
A
在这里插入图片描述
B
在这里插入图片描述
A
在这里插入图片描述
B
在这里插入图片描述
D

2. CPU(运算器+控制器)

计算机硬件系统:运算器、控制器、存储器、输入设备、输出设备
在这里插入图片描述
A
在这里插入图片描述
B
在这里插入图片描述
B、10001转原码11111,首位是符号位,其余位可表示范围24 - 1,及范围215,后面部分是求这个数所以不是之前的题型求范围用1减去

1. 运算器组成

算术逻辑单元ALU 算术和逻辑运算
累加寄存器AC 运算结果或源操作数存放区
数据缓冲寄存器DR 暂存指令或数据
状态条件寄存器PSW 暂存运算结果的相关标志位,如溢出标志

累加寄存器AC用来为算术逻辑单元ALU提供暂存运算结果
在这里插入图片描述
D
在这里插入图片描述
B

2. 控制器组成

指令寄存器IR 暂存CPU执行指令
程序计数器PC 存放下一条指令的地址
地址寄存器AR 当前CPU访问的内存单元地址
指令译码器ID 分析指令操作码
时序部件
在这里插入图片描述
C
在这里插入图片描述
B
在这里插入图片描述
B
在这里插入图片描述
B 透明是指无法访问,在汇编语言中B不可以访问

在这里插入图片描述
B

在这里插入图片描述
B
在这里插入图片描述
A
在这里插入图片描述
B
在这里插入图片描述
C !!!
在这里插入图片描述
C 注意是取指令操作码,指令=操作码+地址码
在这里插入图片描述
B
在这里插入图片描述
A
在这里插入图片描述
A

3. 寻址方式
从快到慢可以分为:
立即寻址:操作数就包含在指令中。
寄存器寻址:操作数存放在某一寄存器中,指令中给出存放操作数的寄存器名。
直接寻址(指令中存操作数地址):操作数存放在内存单元中,指令中直接给出操作数所在的存储单元的地址。
寄存器间接寻址(寄存器中存操作数地址):操作数存放在内存单元中,操作数所在存储单元的地址在某个寄存器中。
间接寻址:指令中给出操作数地址的地址。

在这里插入图片描述
D
在这里插入图片描述
A、转移
在这里插入图片描述
B
在这里插入图片描述
C;2G/32 -> 2048 * 1024 / (32/4) -> 512MB
在这里插入图片描述
C
在这里插入图片描述
A

3. 计算器体系结构分类 Flynn

体系结构分类结构关键特性代表
单指令流单数据流SISD控制部分:1单处理器系统(单片机系统多见)
处理器:1
主存模块:1
单指令流多数据流SIMD控制部分:1各处理器以异步形式执行同一条指令并行处理机、阵列处理机(适合数组与数组之间的运算)、超级向量处理机
处理器:多
主存模块:多
多指令流单数据流MISD控制部分:多没有实际意义目前没有,有文献称流水线计算机称此类
处理器:1
主存模块:多
多指令流多数据MIMD控制部分:多能够实现作业、任务、指令等各级全面并行多处理机系统、多计算机
处理器:多
主存模块:多
## 4. CISC与RISC
指令系统类型指令寻址方式实现方式其他
CISC(复杂)数量多,使用频率差别大,可变长格式支持多种微程序控制技术研制周期长
RISC(精简)数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存支持方式少增加了通用寄存器,硬布线逻辑控制为主,适合采用流水线优化编译,有效支持高级语言

在这里插入图片描述
以下关于CISC(Complex Instruction Set Computer, 复杂指令集计算机)和RISC(Reduced Instruction Set Computer, 精简指令集计算机)的叙述中,错误的是 (2) 。(2009年下半年)
A. 在CISC中,其复杂指令都采用硬布线逻辑来执行
B. 采用CISC技术的CPU,其芯片设计复杂度更髙
C. 在RISC中,更适合采用硬布线逻辑执行指令
D. 采用RISC技术,指令系统中的指令种类和寻址方式更少

A

(5) 不是RISC的特点。(2013年下半年)
A. 指令种类丰富 B. 高效的流水线操作
C. 寻址方式较少 D. 硬布线控制

A

以下关于RISC和CISC的叙述中,不正确的是 (5) 。(2014年下半年)
A. RISC通常比CISC的指令系统更复杂
B. RISC通常会比CISC配置更多的寄存器
C. RISC编译器的子程序库通常要比CISC编译器的子程序库大得多
D. RISC比CISC更加适合VLSI工艺的规整性要求

A

CISC是 (6) 的简称。(2015年下半年)
A. 复杂指令集系统计算机 B. 超大规模集成电路
C. 精简指令集系统计算机 D. 超长指令字

A

以下关于RISC(精简指令系统计算机)技术的叙述中,错误的是 (6) 。(2019年上半年)
A. 指令长度固定、指令种类尽量少
B. 指令功能强大、寻址方式复杂多样
C. 增加寄存器数目以减少访问次数
D. 用硬布线电路实现指令解码,快速完成指令译码

B

以下关于RISC和CISC计算机的叙述中,正确的是 (2) 。(2021年上半年)
A. RISC不采用流水线技术,CISC采用流水线技术
B. RISC使用复杂的指令,CISC使用简单的指令
C. RISC采用很少的通用寄存器,CISC采用很多的通用寄存器
D. RISC采用组合逻辑控制器,CISC普遍采用微程序控制器

D

5. 流水线(必考计算)

取指➡️分析➡️执行

例:若指令流水线把一条指令分为取指、分析和执行三部分,且三部分的时间分别是取指2ns,分析2ns,执行1ns,那么流水线周期是多少?100条指令全部执行完毕需要时间?(实际做题优先算理论时间)

1. 周期/执行时间

周期 = 执行时间段最长的一段时间

执行时间:

理论公式 = 1条指令完整时间 + (指令条数 - 1) * 周期

实际公式 = (指令步骤数 + 指令条数 - 1) * 周期


周期2ns

理论时间=5+(100-1)*2=203

实际时间=(3+100-1)*2=204

2. 吞吐率

在时间单位内流水线所完成的任务数量或输出的结果数量

计算公式:TP=指令条数/流水线执行时间

最大吞吐率=1/流水线周期 (忽略了流水线建立时间比执行多消耗的时间,当指令条数n趋近无穷,n/(k+n-1)周期)=1/周期


TP=100/203

最大吞吐率=1/2

3. 加速比

不使用流水线的时间/使用流水线执行时间


500/203

4. 效率

在时空图上,使用流水线后n个任务占用时空区/k个流水段的总时空(阴影部分面积/占用总面积)

例如:效率E=24/60=0.4
在这里插入图片描述

6. 层次化存储结构

在这里插入图片描述

内存存储外存的部分内容,cache存储内存的部分内容,CPU处理cache中的指令,cache的作用是精简内存中重复出现的指令,大幅提高CPU的执行效率,使得计算机的运算速度得到极大的提升。结构中由上至下,速度越来越慢,但容量越来越大。

7. cache

功能:提高CPU输入输出的速率,突破冯·诺依曼瓶颈,即CPU与存储器系统间数据传送带宽限制。

在计算机的存储体系中,cache是访问速度最快的层次。

使用cache改善系统性能的依据是程序的局部性原理。

计算:h为cache访问命中率,t1为cache周期时间,t2为主存储器周期时间,以读操作为例,使用cache+主存储器的系统平均时间t3为:(1-h)又称失效率、未命中率,如果未命中cpu会再去内存调用

t3 = h*t1 + (1-h)*t2

8. 局部性原理

1. 时间局部性

例子:刚刚访问完的指令再次访问

循环体里的s+=j会执行一百万次,如果每次执行都从cache里取数据而不是内存,速度就会提升;

int i,s=0;
for(i=1;i<1000:i++)
  for(j=1;j<1000;j++)
    s+=j
printf("%d",s);

2. 空间局部性

数组初始化为0,操作的都是临近空间,当程序访问到了一个空间又立即访问临近空间时,称为空间局部性

3. 工作集理论:工作集是进程运行时被频繁访问的页面集合

把要频繁访问的页面集合打包,让要频繁访问的一起调用

9. 主存

随机存储器RAM:断电清除数据

只读存储器ROM:断电仍存储信息。如bios芯片

主存编址:把许多芯片组成相应的存储器

在这里插入图片描述

两块8*4位的芯片可以组成图2,3

**例题:**内存地址从AC000H到C7FFFH,共有?K地址单元,如果该内存地址按字(16bit)编址,由28片存储芯片构成。已知构成此内存的芯片每片由16K个存储单元,则该芯片每个存储单元存储?位。

地址单元(K=1024) = C7FFFH+1-AC000H=1C000=(1*16^4 + 12*16^3)/1024=112

设美每个存储单元存储X位

112K*16 / 28*16K*X = 1

求得每个存储单元存储X=4

10. 磁盘结构与参数

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

注意:寻道时间时指磁头移动到磁道所需的时间;等待时间为等待读写的扇区转到磁头下方所用的时间。

例题:

在这里插入图片描述

如下图顺序放置R0到R10

最长时间:转一圈为33ms,读取一个记录则是33/11=3ms;单缓冲区表示每读取一个就需要处理一次花费3ms,而在磁盘等待处理的过程中不会停止,它仍会匀速旋转运动,等R0处理完时磁盘已经转到R2位置,所以磁盘下一个要读取R1需要再转动到R2,正好一圈33ms,后面每一个记录同理知道最后一位,所以处理一个区域时间时33+3=36ms;R0到R9花费时间=36*10=360ms,最后一位R10花费6ms(因为R9已经包含了找10的时间,直接读取时间加处理时间就可以了),共366ms。

最短时间:优化后最优可以如下读取R0加处理6ms,然后正好定位到R1后面同理,共花费66ms。

在这里插入图片描述

11. 总线

内部总线:微机内部芯片之间

系统总线:数据总线、地址总线、控制总线;数据总线如32、64位,一次能传输到数据(地址总线则表示地址空间)为232、264

外部总线:外部设备之间

12. 系统可靠性分析与设计

1. 串联系统与并联系统

串联系统:一个子系统故障,整个系统失效

可靠度R = R1*R2*…*Rn

失效率U=U1+U2+…+Un

失效率公式是近似的,并不准确

并联系统:所有子系统同时失效才失效

可靠度R=1-(1-R1)*(1-R2)*…*(1-Rn)

2. 冗余系统与混合系统(现在很少考)

输出结果通过表决器少数服从多数

在这里插入图片描述

**3. 例题:**串联和并联混合的系统求可靠度
在这里插入图片描述

R * (1-(1-R)^3) * (1-(1-R)^2)

13. 差错控制——CRC与海明校验码

码距:整个编码系统中任意两个码字的最小距离
码距=2,检错能力;码距>=3,才可能有纠错能力

增大码距可以检错、纠错

0. 奇偶校验吗,让二进制数1的个数保持奇数或偶数个;不管哪种都只能检测出奇数位出错

1. 循环冗余校验码CRC

例:原信息编码为1010001101,多项式g(x) = x^5 + x^4 + x^2 + 1
a.多项式二进制CRC码设为:110101
b.多项式最高幂次为5,则校验码有5位,需补5位0。新原编码:101000110100000
c.新原编码除以CRC码,CRC校验码为:01110

相除采用模二除法:在出发运算过程中不计进位
在这里插入图片描述

2. 海明校验码

记住公式基本可以应付大多数真题

海明码是一种利用奇偶性来差错和纠错的校验方法。海明码的构成方法是在数据位之间的特定位置插入K个校验位,通过扩大码距来实现检错和纠错。

假设数据位是n位,校验位是k位,则n和k的关系必须满足以下关系:

2^k -1 >= n+k

依据给定的数据位,很容推断到校验位。

例子:原始数据:1011

这样 n=4 , 将 k=1,2,3,… 从小到大代入公式发现 k=3就满足条件,2^3-1 >=4+3

所以校验码位数为3位,数据和校验码一共7位。

校验码的位置都处在2的n(n=0,1,2,3…)次方中,即位于1,2,4,8,16…的位置上,其余为才能填充数据。

本例就7位数据组成:D4D3D2D1+P2P1P0

7654321
D4D3D2P2D1P1P0
1010101

7=4+2+1 ==> 第4位 P2,第2位P1,第1位 P0 这3个校验位共同校验

6=4+2==> 第4位 P2,第2位P1 这2个校验位共同校验

5=4+1 ==> 第4位 P2,第1位 P0 这2个校验位共同校验

3=2+1 ==> 第2位P1,第1位 P0 这2个校验位共同校验

校验码计数,异或运算:

P2 = D7D6D5=101=0

P1=D7D6D3=101=0

P0=D7D5D3=111=1

校验码为:001

传输数据为: 1 0 1 0 1 0 1

检错和纠错原理

接收方依据同样的规则重新计算三位校验码的值(由于校验码都在2^n,取数据很容易)。而后与接收到的校验码进行异或。当数据无误时,产生的校验码无误,若接收到的校验码有误,那么这不同的2个校验码异或,必然为1.

若某位的校验码最终异或结果为1,则表示产生了错误,找出错误位之后,就可以纠错了,纠错方法就时将该位逆转。

例如:收到的数据计算出校验位001,而收到的校验吗100

001异或100 = 101 -> 转为10进制5,第5位出错将其数据取反

在这里插入图片描述
C

以下关于校验码的叙述中,正确的是 (5) 。(2009年下半年)
A. 海明码利用多组数位的奇偶性来检错和纠错
B. 海明码的码距必须大于等于1
C. 循环冗余校验码具有很强的检错和纠错能力
D. 循环冗余校验码的码距必定为1

A

以下关于海明码的叙述中,正确的是 (5) 。(2017年下半年)
A. 海明码利用奇偶性进行检错和纠错
B. 海明码的码距为1
C. 海明码可以检错但不能纠错
D. 海明码中数据位的长度与校验位的长度必须相同

A

以下关于采用一位奇校验方法的叙述中,正确的是 (5) 。(2018年下半年)
A. 若所有奇数位出错,则可以检测出该错误但无法纠正错误
B. 若所有偶数位出错,则可以检测出该错误并加以纠正
C. 若有奇数个数据位出错,则可以检测出该错误但无法纠正错误
D. 若有偶数个数据位出错,则可以检测出该错误并加以纠正

C

海明校验码是在n个数据位之外增设k个校验位,从而形成一个k+n位的新的码字,使新的码字的码距比较均匀地拉大。n与k的关系是 (1) 。(2009年上半年)
(1) A. 2k - 1 ≥ n + k B. 2n - 1≤ n + k
C. n=k D. n-1≤k

A

海明码利用奇偶性检错和纠错,通过在n个数据位之间插入k个校验位,扩大数据编码的码距。若n=48,则k应为 (3) 。(2014年上半年)
(3) A. 4 B. 5 C. 6 D. 7

C

已知数据信息为16位,最少应附加 (4) 位校验位,以实现海明码纠错。(2016年下半年)
(4) A. 3 B. 4 C. 5 D. 6

C

己知数据信息为16位,最少应附加 (5) 位校验位,才能实现海明码纠错。(2017年上半年)
(5) A. 3 B. 4 C. 5 D. 6

C

在这里插入图片描述
D、B;校验位都在2n上,从右到左开始排…3,2,1,D5(10位) = P4(8位) + P2(2位)

循环冗余校验码(CRC)利用生成多项式进行编码。设数据位为k位,校验位为r位,则CRC码的格式为 (2) 。(2012年下半年)
A. k个数据位之后跟r个校验位
B. r个校验位之后跟k个数据位
C. r个校验位随机加入k个数据位中
D. r个校验位等间隔地加入k个数据位中

A

在 (5) 校验方法中,采用模2运算来构造校验位。(2019年上半年)
A. 水平奇偶 B. 垂直奇偶
C. 海明码 D. 循环冗余

D

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

摘星喵Pro

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

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

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

打赏作者

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

抵扣说明:

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

余额充值