1.数据的表示
进制转换(按权展开法)
R进制转十进制使用按权展开法,其具体操作方式为:将R进制数的每一位数值用Rk形式表示,即幂的底数是R,指数为k ,k与该位和小数点之间的距离有关。当该位位于小数点左边,k值是该位和小数点之间数码的个数,而当该位位于小数点右边,k值是负值,其绝对值是该位和小数点之间数码的个数加1。
从十进制转任意(R)进制(短板法)
数据表示简化(二进制转八进制,转十六进制)
数值编码问题(原码,反码,补码,移码)
注意:在二进制中为了有正负数之分,所以取八位二进制的首位做符号位
为什么产生反码,补码,移码呢,因为使用原码表示数值会有问题
编码类型 | 正数1 | 负数1 | 1+(-1)结果表示 |
---|---|---|---|
原码 | 0000 0001 | 1000 0001 | 1000 0010=-2 ,表示结果有问题 |
反码 | 0000 0001(正数反码与原码相同) | 1111 1110(负数反码:符号位不变,其他位反转,0换1,1换0) | 1111 1111=1000 0000=-0(反码表示结果,因为是反码,所以要还原成原码的形式,符号位不变,表示数值没问题) |
补码 | 0000 0001(正数的补码与原码相同) | 1111 1111 (负数的补码在反码的基础上+1) | 0000 0000=0 |
移码 | 1000 0001 (正数的移码,只调换符号位,其余位不变) | 0111 1111(负数的移码,在补码的基础上调换符号位,其余位不变) | 1000 0000=-0 |
编码的表示范围
例如:二进制8位,那么它的原码范围就应该在-127~~127
浮点数运算
浮点数,不是指通常意义上的小数,而是通过科学技术法来表示的数
浮点数之间的运算要通过三步:
- 对阶:例如: 1.231 ∗ 1 0 3 1.231*10^{3} 1.231∗103加 1.02 ∗ 1 0 2 1.02*10^{2} 1.02∗102,需要先将指数低的一方转换为同等指数,对阶结果: 1.231 ∗ 1 0 3 + 0.102 ∗ 1 0 3 1.231*10^{3}+0.102*10^{3} 1.231∗103+0.102∗103
- 尾数计算:对阶完成后,才能进行尾数的计算(不知道什么是尾数,请看下图)
- 结果格式化:计算完成后要对结果格式化,要保证结果尾数的整数位不能为0,例如:结果 0.102 ∗ 1 0 3 0.102*10^{3} 0.102∗103要转化为: 1.02 ∗ 1 0 2 1.02*10^{2} 1.02∗102;结果整数位只能是一位,所以整数位只能包括在1~9以内
2.计算机结构
2.1.主机
注意:主机只包含CPU和内存(寄存器)
2.2.CPU
CPU包括两部分,运算器和控制器;运算器通常做一些算数运算,但是CPU光有运算能力是不够的,所以控制器是用来控制部件的运作,交互
运算器
- CPU中的运算器也称“算数逻辑单元ALU”
- 累加寄存器AC通常用来计算加法和减法
- 数据缓冲寄存器DR:
- 状态条件寄存器PSW:用来存储运算时的标志位,何为标志位,在运算时的有时涉及到进位,等一些状态的信息需要储存
控制器
- 指令寄存器IR:存储指令的
- 指令译码器:编译指令
- 程序计数器:我们在运行程序的时候,需要知道运行到哪儿了,下一步要运行哪一个
- 时序部件:
3.Flynn分类法
怎么记
看体系结构的缩写 例如:SISD(单指令流单数据流),控制部分只有一个:(single instruction),单个处理器:(single processor)看首字母缩写:SISD;
4.CISC 与RISC
怎么记忆
- 通过名字来区分,CISC全称(Complex Instruction Set Computer-CISC)复杂指令集计算机,RISC全称(Reduced Instruction Set Computer-RISC)精简指令集计算机
5.流水线技术
流水线的概念
流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度
流水线计算
1.流水线周期
执行步骤中时间最长的一段:例:取值用2ns,分析用2ns,执行用1ns,那么这条流水线的周期就是2ns
2.计算n条指令执行的时间:
公式类型 | 说明 | 考试概率 |
---|---|---|
理论公式 | 理论公式 :流水线建立的时间+(n-1)✖流水线周期;何谓流水线建立的时间:就是指第一条指令执行的时间,例如:流水线有取值2ns,分析2ns,执行1ns三个过程,那么执行第一条指令所花费的时间就等于5ns,又因为等第一条指令完全执行完,流水线也就建立起来了,所以称(流水线建立的时间=第一条指令执行的时间) | 80% |
实际公式 | 实际公式与理论公式其实是一样的计算方式,但是流水线建立的时间会变得不同,在实际公式中,将流水线步骤那些时常小于流水线周期的步骤的时常全都变化为与流水线周期一样;例如:有三个步骤,取值2ns,分析2ns,执行1ns,那么就会将执行这个时常看为2ns来计算 | 20% |
3.流水线的吞吐率计算:
4.流水线的加速比
例题:流水线的步骤为三步:取值2ns,分析2ns,执行2ns,,问执行100条指令的流水线的加速比为多少?
1.算出未使用流水线的的执行总时间:总时间=(取值+分析+执行)✖指令条数=6✖100=600
2.算出使用流水线的执行时间:总时间=流水线建立时间+(指令条数-1)✖流水线线周期=6+(100-1)*2=204
3.流水线加速比:未使用流水线的的执行总时间 ➗ 使用流水线的执行时间=600➗204=2.94=294%
5.流水线的效率
流水线的效率是指流水线的设备利用率。在时空图上,流水线的效率定义为n个任务占用的时空区与k个流水段总的时空区之比
例如:
在下图中,有4条指令,流水线的执行步骤有4步,s1,s2,s3所需要时长各为1t,s4所需要时长为3t,整个总时长为15t
流水线效率=(s1的时长+s2的时长+s3的时长+s4的时长)✖指令条数➗(总时长✖步骤数)=(1t+1t+1t+3t)✖4➗15✖4
6.存储系统
Cache
计算失效率:cache访问命中率✖cache的周期时间➕(1-cache访问命中率)✖主储存器时间
局部性原理
在CPU访问寄存器时,无论是存取数据抑或存取指令,都趋于聚集在一片连续的区域中,这就被称为局部性原理。
- 时间局部性(temporal locality)
时间局部性指的是:被引用过一次的存储器位置在未来会被多次引用(通常在循环中)。 - 空间局部性(spatial locality)
如果一个存储器的位置被引用,那么将来他附近的位置也会被引用。例如:数组 - 工作集理论
就是将频繁访问的资源打包放一起,以便将来访问
主存的分类
- RAM(随机存储器):随机存储器,在断电之后上面的数据都会清除,比如我们常见的内存就是属于RAM
- ROM(只读存储器):在断电之后仍然能存储信息,例如我们常见的硬盘
主存的编址
磁盘的工作原理
推荐文章:https://blog.csdn.net/heuguangxu/article/details/80072024
磁盘的结构
传统的硬盘盘结构是像下面这个样子的,它有一个或多个盘片,用于存储数据。盘片多采用铝合金材料;中间有一个主轴,所有的盘片都绕着这个主轴转动。一个组合臂上面有多个磁头臂,每个磁头臂上面都有一个磁头,负责读写数据。
磁道
每个盘片的盘面被划分成多个狭窄的同心圆环,数据就存储在这样的同心圆环上面,我们将这样的圆环称为磁道 (Track)。每个盘面可以划分多个磁道,最外圈的磁道是0号磁道,向圆心增长依次为1磁道、2磁道…磁盘的数据存放就是从最外圈开始的。
扇区
根据硬盘的规格不同,磁道数可以从几百到成千上万不等。每个磁道可以存储数 Kb 的数据,但是计算机不必要每次都读写这么多数据。因此,再把每个磁道划分为若干个弧段,每个弧段就是一个扇区 (Sector)。扇区是硬盘上存储的物理单位,现在每个扇区可存储 512 字节数据已经成了业界的约定。也就是说,即使计算机只需要某一个字节的数据,但是也得把这个 512 个字节的数据全部读入内存,再选择所需要的那个字节。
笔试题实战
假设某磁盘的每个磁道划分成11个物理块,每块存放1个逻辑记录。逻辑记录Ro,R1,…,R9,R10存放在同一个磁道上,记录的存放顺序如下表所示:
物理块 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
---|---|---|---|---|---|---|---|---|---|---|---|
逻辑块 | R 0 R0 R0 | R 1 R1 R1 | R 2 R2 R2 | R 3 R3 R3 | R 4 R4 R4 | R 5 R5 R5 | R 6 R6 R6 | R 6 R6 R6 | R 7 R7 R7 | R 8 R8 R8 | R 9 R9 R9 |
如果磁盘的旋转周期为33ms,磁头当前处在Ro的开始处。若系统使用单缓冲区顺序处理泛些记录**,每个记录处理时间为3ms**,则处理这11个记录的最长时间为( ? );若对信息存储进行优化分布后,处理11个记录的最少时间为( ? )。
未优化存储顺序所需要的花费的时间:
- 磁盘会一直朝某个方向旋转,不会因为处理数据而停止。
- 每个记录读取的时间:本题要求顺序处理 R0 到 R10,起始位置在 R1,一周是 33ms,共 11个记录,所以每个记录的读取时间为 3ms
- 首先读取并且处理 R 0 R0 R0,读取 R 0 R0 R0花费了3ms,处理 R 0 R0 R0花费了3ms(处理一条记录的时间在题目已经给出),一共花费了6ms。处理完 R 0 R0 R0后按顺序处理 R 0 R0 R0,但是磁盘是一直旋转的,此时磁针已经从扇区 R 0 R0 R0的开头转至 R 1 R1 R1末尾了,又因为磁盘不可以反向旋转,所以我们只能等磁盘转弯一圈才能让磁针回到 R 1 R1 R1开头,共花费10×3ms=33ms,以此类推,从 R 0 R0 R0至 R 9 R9 R9,处理完所有的记录需要花费的时间为:10×(3+33)=360ms,等读取 R 10 R10 R10时,因为 R 10 R10 R10后面没有扇区需要去读取处理,所以,只需要花费3ms+3ms=6ms的时间完成对 R 10 R10 R10的处理,所以的总的时间为:10×(3+33)+6ms=366ms
优化存储顺序之后的所需要的花费的时间
最理想的状态就是:我把第一条记录处理完,磁针的位置就在第二条记录的的开头,无需等待就可以开始处理第二条记录,如下面示意图所示
处理 R 0 R0 R0花费了6ms,这个时候磁针刚好在 R 1 R1 R1的开头,所有处理完所有的记录只需要磁盘旋转两周,也就是只需要花费66ms
示意图
7.总线系统
计算机中总线的分类
- 内部总线:往往是指微机外围的芯片与处理器之间的总线,属于芯片级别
- 系统总线:是指微机中各个插线板与系统板之间的总线,属于插线板级别
- 外部总线:是微机与外部设备的总线
我们需要了解的是系统总线
- 数据总线:是用来传输数据的,例如:通常说一个字节代表32bit,那么数据总线的宽度就是32bit,那么一个周期就只能传输32bit的数据
- 地址总线:地址总线的宽度为32bit位,那么能管理的地址宽度就为 2 32 2^{32} 232也就是4G,这就是为什么32位操作系统能管理的内存只有4G
- 控制总线:用来发送控制信号的总线
系统可靠性分析-串联系统与并联系统
类型 | 概念 | 可靠度计算 | 失效率计算 |
---|---|---|---|
串联系统 | 串联系统 每个环节都必须能够正常工作 | R0的正常率 * R1的正常率 * R2的正常率 * Rn的正常率 | |
并联系统 | 并联系统 仅当所有子系统都失效的时候该并联系统才会失效 | 1 - (1-R0成功的概率)×(1-R1成功的概率)×…(1-Rn成功的概率) | 1-可靠度 |
8.可靠性校验码
什么是校验码
1.什么是检错,纠错?
检错就是检查出错误,纠错是检查出错误并且纠正错误
2.什么是码距?
通过改变几位变成另一个合法码字的最小改变量就是码距。