计算机组成原理期末总结

写在前面

为迎接期末,总结了下知识点,供个人复习使用,仅供参考。

本文用到的复习资料:点我跳转,提取码:1l49

为方便读者,PDF文件下载链接已放到文章底部。如需markdown文件,请移步优快云资源下载:点我跳转

我总结的其它专业课:点我跳转

1.计算机系统概论

知识点

image-20200608144821042

1.时钟周期是计算机中最基本的、最小的时间单位。在一个时钟周期内,CPU仅完成一个最基本的动作。

2.主频(时钟频率):每秒钟含有多少个时钟周期(1.2GHz即每秒钟含有1.2x109个时钟周期)。

3.CPI:一条指令所需要的时钟周期个数。

4.MIPS:每秒钟能执行多少个100万条指令。

5.MFLOPS:每秒百万次浮点操作次数。

6.CPU执行时间:TCPU=In×CPI×TC (指令条数*一条指令需要几个时钟周期*时钟周期长度)

In:执行程序中指令总数

CPI(Clock Cycle Per Instruction):执行每条指令所需的平均时钟周期个数
TC:时钟周期时间的长度

7.吞吐量:计算机某一时间间隔内能够处理的信息量(能吞多少)

8.响应时间:从事件开始到事件结束的时间,也称执行时间.

7.冯●诺依曼型计算机设计思想主要有两项:

  • 将十进制改为二进制,从而大大简化了计算机的结构和运算过程;
  • 存储程序的思想,将程序与数据一起存储在计算机内,使得计算机的全部运算成为真正的自动过程。

存储(程序)并按(地址)顺序执行,这是冯•诺依曼型计算机的工作原理。

8.用嘴(一句一句最后不生成目标程序)来解释,用手(一步到位最后生成目标程序)来编译

编译程序将高级语言转换为机器代码再执行,解释程序用源程序直接解释,解释一句执行一句不用转换成机器代码。所以编译要比解释速度快

9.控制器可根据不同的周期(取指周期或者执行周期)来区分该地址的存储单元存储的是数据还是指令。

习题

1.假定机器M的时钟频率为200MHz,程序P在机器M上的执行时间为12s。对P优化,将所有乘4指令都换成了一条左移两位的指令,得到优化后的程序P’。若在M上乘法指令的CPI为102,左移指令的CPI为2,P的执行时间是P’执行时间的1.2倍,则P中的乘法指令条数为_______4x106________

答:P’的执行时间为10s,比12少了2s,由时钟频率得每秒有2x108个时钟周期,即少了4x108个时钟周期

每条左移指令比乘法指令少了100个时钟周期,那么乘法指令个数即总共少的时钟周期/每条指令少的时钟周期

p和p’的时间差是因为指令被替换了,而所有被替换的指令个数就是乘法指令个数

2.此题MIPS为400

image-20200608152105898

答:平均CPI=2x0.5+ 3x0.2+4x0.1+5x0.2=3,即执行一个指令平均需要3个周期

MIPS为每秒可执行的百万条指令数,1.2GHZ为1200MHZ即一秒有1.2*109个周期,总周期=一个指令所需周期*有多少指令。1200/3=400(M=106,G=109

3.程序P在机器M上的执行时间是20s,编译优化后,P执行的指令数减少到原来的70%,而CPI增加到原来的1.2倍,则P在M上的执行时间是_______16.8s____

答:CPI即执行一条指令所需的时钟周期数。假设M机器原时钟周期为x,原CPI为y, P程序的指令数为z,可得P程序执行时间为xyz= 20s。

编译优化后M机器的CPI变为1.2y, P程序的指令数变为0.7z,则P程序执行时间为1.2*0.7xyz,故其执行时间为
16.8s。

4.某工作站采用时钟频率f为15MHz,处理速率为10MIP/S的处理机来执行一个已知混合程序。假定每次存储器存取为1周期延迟,此计算机的有效CPI是_______1.5_____________,假定将处理机的时钟频率提高到30MHz,但存储器子系统速率不变。这样,每次存储器存取需要两个时钟周期,如果30%指令每条只需要一次存储存取,而另外5%每条需要两次存储存取,还假定已知混合程序的指令数不变,并与原工作站兼容,则改进后的处理机性能相比原来的_______提高_____________

答:CPI即每个指令需多少周期,已知每秒有15*106个周期,每秒可以处理10*106个指令,那么总周期数/总指令数即为CPI

15*106/10*106=1.5 (注意和后面那个1周期延迟没有关系,不要被他迷惑,这个周期延迟已经被计算在前面的10MIP/s中了)

处理性能是否提高就看处理速率是否提高了。30%需要一次存取,由于每次存取增加了1周期延迟,那么这30%就得增加一个周期,而同理另外5%需要增加两周期。则CPInew=CPI+30%*1+5%*2=1.9 (原CPI已经包括原来的1周期延迟,只需将计算新增的即可)

又已知现在每秒有30*106个周期,那么处理速率为总周期数/每指令所需周期数=30×106/(1.9×106)= 15.79MIP/S,所以提高了

5.假定计算机M1和M2具有相同的指令集体系结构,主频分别为1.5 GHz和1.2 GHz。在M1和M2_上运行某基准程序P,平均CPI分别为2和1,则程序P在M1和M2_上运行时间的比值是?

答:M1的CPI为2即2周/指,而M2为1周/指。同样的程序P即指令数相同。M1的周期T1=1/1.5*109,M2的周期T1=1/1.2*109

那么每条指令所需时间分别为2×T1和1×T2,指令数相同,那时间比值就等于一条指令所需时间比值即(2×T1)/(1*T2)=8/5

2.运算方法和运算器

知识点

image-202006091432075611.数字0在原码反码补码的表示

[+0]原码=0000 0000, [-0]原码=1000 0000

[+0]反码=0000 0000, [-0]反码=1111 1111

[+0]补码=0000 0000, [-0]补码=0000 0000 (补码中是唯一的)

0的移码也是唯一的1000 0000

image-20200609151740827

由于补码0是唯一的所以补码范围要多一个负数(总共都是256个数)

2.对于规格化的浮点数,尾数有三种形式:(小数点左边的是符号位)

  • 原码表示时尾数的小数点后第一数位为1,数符任意

  • 补码和反码表示时尾数的符号位与小数点后第一数位不同

  • 1.1xx……X(原码)

  • 1.0XX……X(补码、反码)

  • 0.1xx……x(原码、补码、反码)

原理是保证 1> |M|≥ 0.5

3.余3码就是8421码加3所得

4.奇偶校验码:加上校验码后1的个数为奇数就是奇校验。不具备纠错能力。

5.海明码:设有k个数据位,则应设r个校验位,r满足2r-1 ≥ k + r 。发现两位错误纠正一位错误。

6.循环冗余检验码(CRC):k位校验位拼接在n位数据位后面,即为n+k,发现并纠正一位或多位错误

7.A的ascii码:65 a的ascii码:97

8.已知[x],求[-x]:将[x]连同符号位求反+1

9.移码就是补码的符号位求反

由于负数的补码如-21(101011)看着好像大于21(010101),实际正好是21更大,所以浮点数的阶码用移码表示能直观的看出大小便于加减运算

10.-1的补码永远是全1(可理解为全1加1等于全0)

11.由于补码溢出无法看出是上溢(大于最大数)还是下溢,因此引入变形补码

  • 两个符号位不同时表溢出(01为正溢出,10为负溢出(看第一位))
  • 最高位那个数代表真正的符号位
  • 两个符号位均参与运算,若进位舍去

12.IEEE754计算公式:真值x=(-1)S1.M2e(S为符号位(正还是负),E为阶码(转换成e代表多少次方),M为尾数(小数点后面的数),顺序为SEM)其中e=E-127(可记成大E大所以要减)

13.补码的1000 0000为什么代表-128

补码就是同余,比如-3的原码是1011而它的反码是1100则补码为1101,无符号的1101是13和-3正好模24同余

所以给出一个负数的补码将其看为无符号数减去2n(n为总位数)即代表真值

为什么会这样呢?4位二进制可表示16个数,那么想表示负数怎么办,就用同余的思想,-1就用15表示,-2就用14表示,-3就用13(1101)表示

回到本题,给出补码求真值,将其看成无符号数即为128,与128模28同余的负数即为-128(也可用128-28计算)

14.IEEE754的尾数用原码表示,阶码用指数的移码-1表示(所以E=e+127)

习题

1.写出D=101101的海明码

答:1️⃣首先确定检验位的个数:k=6,2r-1 ≥ k + r即2r ≥7+r,所以r=4

2️⃣确定检验码的位置:检验码Pi(i=1,2…)的位置为2i-1(20,21,22…)

注意从M10到M1,从大到小且没有0

image-20200609150117418

3️⃣求出检验码的值:校验位Pi的值即为所有需要Pi校验的数据位求异或。

image-20200609150430484

如P2对应M2,需要它的有D1即M3(2+1)、D3即M6(2+4)、D4即M7(2+4+1)…

所以最后的海明码为1011100100

2.已知x=11011,y=-10101,用变形补码计算x+y

image-20200609154616627

注意一定要先转换成补码再添符号位运算

3.假设M(x)=x3+1(发送信息的多项式),G(x)=x3+x+1(生成多项式,代表校验位信息)。

1️⃣ 那么M(x)代表的二进制码为: 1001(1*x3+1*x0),G(x)代表的二进制码为: 1011

2️⃣将M(x)的多项式左移G(x)的最高次数,变为1001 000

3️⃣将1001 000对1011做模2除法得到余数为110,将其与被除数1001合并得到CRC码1001 110

这里要注意第三步的模2除法和普通除法不同,模2除法不会向上一位借位也不比较被除数和除数的大小(位数相同即可),如图中第三位商数(1101>1000但仍可做减操作)image-20200609195155116

4.若浮点数x的754标准存储格式为(41360000)16 ,求其浮点数的十进制数值。

image-20200609225853843

注意阶码没有符号位

5.将数(20. 59375)10转换成754标准的32位浮点数的二进制存储格式。

image-20200609230432591

6.某机器数为1000 0000B,若它代表0,则它是(原)码形式。若代表-128,则它是(补)码形式。若代表-127,则它是(反)码形式。

答:若是原码形式,就是-0。若是反码形式时,转换为原码就是1111 1111即-127(-(27-1)) ,若是补码,1000 0000无符号时是27=128,所以该补码代表-128(详情见上面知识点)

7.某机字长32位,其中1位符号位,31位表示尾数,若用定点小数表示,则最大正小数为多少?(B)

A.(1-2-32) B.(1- 2-31 ) C.2-32 D.2-31

答:这样的题就用4位的先试试。4位最大小数就是 0 111,也就是0.875 即1-2-3 所以可推出32位时最大是 1-2-31

8.IEEE 754单精度浮点数格式

评论 557
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值