ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

中级程序员考试备考笔记

2021-07-18 19:34:21  阅读:311  来源: 互联网

标签:10 字节 笔记 程序员 地址 备考 流水线 十进制 进制


笔记


一、数据的表示

1、进制转换

点击跳转,进制转换详解

例如:

 在数字后面加上不同的字母来表示不同的进位制。
B(Binary)表示二进制,
O(Octal)表示八进制,
D(Decimal)或不加表示十进制,
H(Hexadecimal)表示十六进制。

例如:
将(101011)B转换成八进制,从右往左分割数字,每3位数字可以对应一个八进制位
则将101011分割为 101 和 011 ,且101= 5,011=3
所以(101011)B=(53)O

将(101011)B转换成十进制,
等于1×2^5+1×2^3+1×2^1+1×2^0 = 43
所以(101011)B=(43)D

将(101011)B转换成十六进制,从右往左分割数字,每4位数字可以对应一个十六进制位
则将101011分割为 10 和 1011 ,将10补全则为 0010 和 1011
且0010=1×2^1= 2,1011=1×2^3+1×2^1+1×2^0 = 11 = B
所以(101011)B==(2B)H

在这里插入图片描述

R进制转十进制使用“按权展开法”

例如:二进制转换成十进制:

10100.01 = 1×2^4+1×2^2+1×2^-2

例如:七进制转换成十进制:

604.01 = 6×7^2+4×7^0+1×7^-2

十进制转R进制使用“短除法”

例如:将十进制数94转换成2进制:
在这里插入图片描述
例如:2进制与8进制与16进制之间的转换:

2进制转8进制(从右往左每3位数字可以对应一个八进制位)
在这里插入图片描述
2进制转16进制(从右往左每4位数字可以对应一个十六进制位)

在十六进制中:

  • 10——用A表示
  • 11——用B表示
  • 12——用C表示
  • 13——用D表示
  • 14——用E表示
  • 15——用F表示
  • 16——用G表示

2、源码,补码和反码

点击查看:源码,补码和反码的探究

3、浮点数运算

在这里插入图片描述
例如:

1000——→1.0×10^3
119——→1.19×10^2
两数相加步骤:
首先对阶(将低阶转换成高阶,保证阶数相同)——→再进行尾数计算——→最后将结果格式化
1.19×10^2转换成0.119×10^3——→1.0+0.119=1.119——→将结果1.119×10^3格式化仍为×10^3(尾数不能为0,也不能超过1位数字)

注意:
格式化的结果不能是0.1119×10^4或者是11.19×10^2</font>

4、运算器和控制器的构成

在这里插入图片描述

二、计算机体系结构分类——Flynn

在这里插入图片描述


三、CISC和RISC两种指令类型的比较

在这里插入图片描述

四、流水线

流水线的概念

在这里插入图片描述

1、流水线的计算

在这里插入图片描述

例如:如上图所示,若指令流水线把一条指令分为取指、分析和执行三部分,且三部分的时间分别是取指2ns,分析2ns,执行1ns。那么,流水线周期是多少?100条指令全部执行完毕需要的时间是多少?

  • 流水线周期为执行时间最长的一段:故流水线周期是2ns,
  • 100条指令全部执行完毕需要的时间是:
流水线计算方式分为两种:

(1)理论公式:一条执行指令+(指令条数-1)×流水线周期
    (t1+t2+..+tk)+(n-1)×△t 即:(2+2+1)+(100-1)×2 =203

(2)实践公式:一个完整任务完成时间 +(指令条数-1)×流水线周期
    这里将每个部分时间工整化,都取2ns
    k+(n-1)×△t 即:6+(100-1)×2 =204

2、流水线的吞吐率计算

在这里插入图片描述
例如:计算上题的流水线吞吐率为多少?

流水线吞吐率 = 指令条数 / 流水线执行时间 
即:TP=100 / 203 = 0.493

3、流水线的加速比

在这里插入图片描述
例如:计算上题的流水线加速比为多少?

流水线加速比  = 不使用流水线执行时间 / 使用流水线执行时间

计算不使用流水线执行100条指令需要花费的时间 T = (2+2+1)×100 =500,使用流水线执行时间为203
故S = 500 / 203 =0.985

该比值的高低决定了流水线的效率的好快程度(即:比值越高,流水线效率越高)

4、流水线的效率

在这里插入图片描述
例如:计算上图的流水线效率为多少?

E = n个任务占用的时空区/ K 个流水线的总时空区
即:E = (△t +△t +△t +3△t )×4 / 15△t×4

相当于计算阴影面积占全部面积的比值

五、计算机组成与体系结构

层次化存储结构

在这里插入图片描述

寄存器容量极小,但速度非常快,故是属于存储结构的最高层
Cache是高速缓存存储器
内存
外存

速度从上往下逐步变慢,内存从上往下逐步增大(实际上是基于性价比的考量)

1、Cache的概念

在这里插入图片描述
例如:Cache的访问命中率为95%,Cache的周期时间为1ns,主储存器周期时间为1ms,求系统的平均周期?
系统的平均周期 = 访问命中率×Cache的周期时间+(1-访问命中率)×主储存器周期

2、局部性原理

在这里插入图片描述

3、主存分类

在这里插入图片描述

4、主存编址计算

在这里插入图片描述

换算:
1KB (Kilobyte 千字节) = 1024B = 2^10B
1MB (Megabyte 兆字节 简称“兆”) = 1024KB = 2^10KB
1GB (Gigabyte 吉字节 又称“千兆”) = 1024MB = 2^10MB

在内存中:
1KB = 1024B = 1024字节 = 2^10字节
1MB= 1024KB = 1048576字节 = 2^20字节
1GB= 1024MB = 1073741824字节 = 2^30字节
1TB= 1024GB = 1099511627776字节 = 2^40字节
1PB= 1024TB = 1125899906842624字节 = 2^50字节

练习1

在这里插入图片描述

解:字节换算:1MB=2^20B,故16MB=2^24B,
             1B(字节)=8bit,所以16MB=2^24×8bit,
且按字节编址,就是每8bit编一个地址,所以需要2^24×8bit/8bit=2^24个地址。
故要产生这么多地址,所以主存地址至少需要你用24个二进制数表示。

若上题改成用4为编址,则主存地址需要多少位?

解:字节换算:16MB=2^24×8bit,2^24×8bit/4bit=2^25个地址。
故要产生这么多地址,所以主存地址至少需要你用25个二进制数表示。

若改成改成按字编址,且该计算机为64位,则主存地址需要多少位?

解:字节换算:64bit=8B,16MB=2^24B,2^24B/8B=2^21个地址
故要产生这么多地址,所以主存地址至少需要你用21个二进制数表示。

练习2

内存按字节编址,地址从DFFFF到A0000, 共有多少字节?

点击跳转,十六进制加减法

解:计算内存容量DFFFF-A0000= 3FFFF
3FFFFH换成二进制就是0011 1111 1111 1111 1111,从右往左第18位是最后一个1,也就是2的18次方
即2^10×2^8=1KB*256,即256KB;

练习3

例如:计算机地址范围C000H等于48k的计算方式为:

在这里插入图片描述


计算下题:
在这里插入图片描述

解:
首先十六进制计算:尾地址-首地址+1,即C7FFFH-AC000H+1 = 1C000
然后转换为十进制:
1C000 = 0001 1100 0000 0000 0000 =2^16+2^15+2^14 B= 2^14(2^2+2^1+1)B =7×2^4×2^10B
最后字节换算:B与KB之间的转换:
7×2^4×2^10B/2^10 = 112KB,故共有112K个地址单元

求存储单元:
112×16/28×16×Y,即Y=4,故该芯片每个存储单元存储4位

5、磁盘结构与参数

在这里插入图片描述

练习1

在这里插入图片描述
根据图片解析:
在这里插入图片描述

解:磁盘旋转周期为33ms,说明磁盘转动一周经过11个物理块时间为33ms,每个物理块的读取时间为3ms
而每条记录的处理时间也为3ms,且为单缓冲区,一次只能处理单个物理块
故:R0的处理时间为3+3=6ms
每个物理块的处理时间=磁盘转动一周+处理时间
故:R1到R9都处理完花费时间为,(33+3)×10 =360ms
总处理时间360+6 = 366ms,因此48题答案选择C

分布优化后每个物理块所需时间为 = 读取时间 + 处理时间
即(3+3)×11 = 66ms,因此48题答案选择B

6、总线

在这里插入图片描述

7、系统可靠性分析

串联系统

在这里插入图片描述

并联系统

在这里插入图片描述

混合系统

在这里插入图片描述

8、差错控制

码距

在这里插入图片描述

循环校验码CRC

在这里插入图片描述
具体案例计算:

在这里插入图片描述

海明校验码

标签:10,字节,笔记,程序员,地址,备考,流水线,十进制,进制
来源: https://blog.csdn.net/nuyoahso/article/details/118858890

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有