本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net
该系列一共包括十三章
目录
第一章. 计算机组成与体系结构
第一节. 数据的表示
第三节. 计算机体系结构分类 (Flynn)
第四节. CISC 和 RISC
第五节. 流水线
第六节. 层次化存储器结构
第七节. cache
第八节. 主存
第九节. 磁盘结构与参数
第十节. 总线
第十一节. 系统可靠性分析与设计
第十二节. 差错控制——CRC 与海明校验码
第十三节. 输入输出系统
ps:在上午考试中一般占到 6 分
数的表示。不同进制之间的转换。按权展开法。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p0BCAFFs-1640573088259)(D:/RenXianShou/Documents/TyporaImages/image-20211225093118067.png)]
将R进制数转化为十进制,使用按权展开法。
进制的转换
1.R 进制转十进制: 将每一位数字用 R^k 表示然后相加,k 与该位与小数点的距离有关,小数点左边第一位为 0,右边第一位为 - 1,往左递增,网往右递减,如:二进制数 10100.01=1*2^4+1*2^2+1*2^-2
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5C1ldN8M-1640573088261)(D:/RenXianShou/Documents/TyporaImages/image-20211225094417075.png)]
原码 反码 补码 移码
+0
和-0
的补码是一样的。少占用了一个位置,所以能够表示的范围更大一点儿。浮点数运算:
浮点数的概念:浮点数即科学计数法,如 1000=1X10^3; 其中,1 为尾数,10 为基数,3 为指数。
计算机中浮点数的运算:当两个指数不等的浮点数相加时,计算机会把低阶浮点数的指数转化为高阶浮点数的指数,如:1.0X103+1.19X102, 计算机会将 1.19X10^2 转化为 0.119X10^3, 然后作和,然后结果格式化 (即通过指数的转化保证尾数必须为非零的一位数) 如:0.1119X103+1.119X102; 得到 11.3019X10^3 以后,要化为 1.13019X10^4
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WlNZl4jY-1640573088262)(D:/RenXianShou/Documents/TyporaImages/image-20211225105301911.png)]
CPU 由运算器和控制器组成
经常考到。
运算器,算术逻辑单元,ALU,做运算的职能,加法减法
控制器,交互,
加法运算
减法运算
包括:
包括:
程序计数器 (PC):程序计数器中存放的是下一条指令的地址。由于多数情况下程序是顺序执行的,所以程序计数器设计成自动加一的装置。当出现转移指令时,就需重填程序计数器。
指令寄存器 (IR):中央处理器正在执行的操作码表存放在这里,即当前正在执行的所有指令
指令译码器:将操作码解码,告诉中央处理器该做什么。
时序部件
注:
·CPU 的寻址方式除了直接寻址以外还有多种寻址方式,目的是为了在效率和方便性上找一个平衡
·CPU 根据指令周期的不同阶段来区分内存中以二进制编码形式存放的指令和数据
· 指令最先进入到数据寄存器暂存起来,然后在拿到指令寄存器中,再交由指令译码器来解码进而运算 (交给运算器),而这一过程一结束,就会迅速提取程序计数器中的指令 (即下一条指令),因此,程序计数器中存储的始终是暂未执行的,下一条指令的 “地址”;
2.阵列处理器,是对数组进行处理
4.多指令多数据流,现在所使用的机器是这样的。
会给出选项,看哪一项是对的或者错的。哪一项是谁谁的特点,哪一项不是。CISC是很久之前的了。计算机通用设备。简化,复杂–>排除,降低了指令的数量。排除了复杂指令。
硬布线逻辑设计,硬件设计复杂,但是设计出来之后,系统效率会很高。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H33cVQsW-1640573088263)(D:/RenXianShou/Documents/TyporaImages/image-20211225113703387.png)]
流水线能够充分利用系统。
指令执行的流程:取指——分析——执行, 注:指令执行步骤可能多于三步,应根据题意作答
流水线的概念:流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,他们可以同时为多条指令的不同部分进行工作,以提高各部分的利用率和指令的平均执行速度
流水线周期为执行时间中最长的那一段的时间。取值 分析 执行 三者中最长的一段时间。
流水线计算公式:一条指令的执行时间+(指令条数-1)*流水线周期
。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Mz8C7DM8-1640573088264)(D:/RenXianShou/Documents/TyporaImages/image-20211226104422521.png)]
这里面的:理论公式:(t1+t2+...+tk)+(n-1)*△t,△t为流水线周期,为t中最长的一段时间。t1=2ns,t2=2ns,t3=1ns;n=100;所以为(2+2+1)+(100-1)*2
。
这里面的:实际公式:(k+n-1)*△t
,k=3,三个工序。n=100;(3+100-1)*2=204,这是实际公式计算得到的时间。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Z9bX5gwA-1640573088265)(D:/RenXianShou/Documents/TyporaImages/image-20211226105643597.png)]
比如在上一章节,指令条数=100,流水线执行时间=203ns,那么只要记住这两条公式就行啦。
概念:是指在单位时间内流水线所完成的任务数量或输出的结果数量 【可以说港口啥的吞吐量,进出货物的数量,按年为单位】
计算公式:TP = 指令条数 / 流水线执行时间
流水线最大吞吐率计算公式:1/△t
;其中 △t
是流水线周期
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4hVDDcSi-1640573088266)(D:/RenXianShou/Documents/TyporaImages/image-20211226112308532.png)]
不使用流水线所用的时间=(2+2+1)*100=500ns
使用流水线所用的时间=(2+2+1)+99*2=203ns
500/203=约为2.5。加速比反映了使用流水线对程序提高的效率,越高越好。
使用流水线所用的时间这里面的:理论公式:(t1+t2+...+tk)+(n-1)*△t,△t为流水线周期,为t中最长的一段时间。t1=2ns,t2=2ns,t3=1ns;n=100;所以为(2+2+1)+(100-1)*2
。
使用流水线所用的时间这里面的:实际公式:(k+n-1)*△t
,k=3,三个工序。n=100;(3+100-1)*2=204,这是实际公式计算得到的时间。
概念:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比
加速比计算公式:不使用流水线的执行时间 / 使用流水线执行时间
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-42DK69P6-1640573088267)(D:/RenXianShou/Documents/TyporaImages/image-20211226112623868.png)]
概念:指流水线的设备利用率
计算公式:E=n 个任务占用的时空区 / k 个流水段的总的时空区 = T0/kTK;即从图形面积求解面积 【应该是阴影面积占总面积的大小】
如:
该流水线的效率即为 T0=24/KTk=60;等于 0.4
注:所有步骤花费时间相等的指令执行的效率最高
注:内存存储外存的部分内容,cache 存储内存的部分内容,CPU 只处理 cache 中的指令,cache 的作用是精简内存中重复出现的指令,提高 CPU 的执行效率,使得计算机的运算速度得到极大的提升;此外,结构中由上至下,速度越来越慢,但容量越来越大
cache并不是必须的。拿掉之后,速度极慢,慢上百倍。cache以kb为单位。内存以mb为单位。
局部性原理的存在提高了效率。循环体,cache与cpu交互。
cache按照内容存取,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oTSt0apJ-1640573088268)(D:/RenXianShou/Documents/TyporaImages/image-20211226151351812.png)]
除了寄存器cpu,cache的速率是最快的。cache用来提高cpu数据输入输出的速率,突破数据传送的带宽的限制。利用的是“局部性原理”。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EiNTjhhn-1640573088269)(D:/RenXianShou/Documents/TyporaImages/image-20211226152650047.png)]
上图结果是50.95ns
1.cache 的功能:提高 CPU 输入输出的速率,突破冯诺依曼瓶颈,即 CPU 与存储器系统间数据传送带宽限制,在程序执行过程中,Cache 与主存的地址映射是由硬件自动完成的。
2.与 cache 相关的计算:如果以 h 代表对 cache 的访问命中率,t1 表示 cache 的周期时间,t2 表示主存储器周期时间,以读操作为例,使用 “chche + 主存储器” 的系统的平均周期为 t3,则:t3=h*t1+(1-h)*t2
;其中,(1-h)又称为失效率(未命中率)。
注:CPU 会在 cache 中寻找它需要的数据,如果不能找到,CPU 就将前往内存中寻找,而 chche 的访问命中率就是 CPU 需要的数据在 cache 中被找到的比例,未能找到的数据 CPU 将前往内存中进行再次寻找
3.内存与 cache 地址映射的三种方式:cache 与内存的地址映像方式有三种,分别是直接映像 (cache 的区号与内存的区号一一对应)、全相连映像 (cache 的一个块号可以对应多个内存的块号,内存的一个块号也可以对应 cache 的多个块号),组相连映像 (即两种方式相结合的方法)
注:这三种映射方式都是计算机硬件自动完成的,不是软件
4.替换算法:替换算法的目的是使 cache 获得尽可能高的命中率,有以下四种:随机替换算法、先进先出算法、近期最少使用算法、优化替换算法
注:现代的计算机 cache 系统是分为了三个级别的,访问时先从第一层开始访问,直至三个级别的 cache 都被访问完全时才会访问内存
5.虚拟存储器:即 cpu 在给出需要访问的内存地址时,给出的并不是真正的物理地址,而是物理地址的抽象,虚拟存储器是由主存 - 辅存两级存储器组成
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IcLNa3yH-1640573088270)(D:/RenXianShou/Documents/TyporaImages/image-20211226152750609.png)]
时间局部性和空间局部性。
工作集是进程运行时被频繁访问的页面的集合。短时间内不被替换。
某个时段去集中的处理某些指令或者读取某些字段。采用多级存储体系,速度/量。局部性原理,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UqTuiqM4-1640573088270)(D:/RenXianShou/Documents/TyporaImages/image-20211226153151616.png)]
如上图中,体现了时间局部性原理,==刚刚访问完成的指令,现在还要去访问。==循环体,执行100w次,频繁执行循环体的语句内容,
空间局部性原理,对于数组的访问,读数组的初始化,操作的是临近的空间。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QNBqwjBC-1640573088271)(D:/RenXianShou/Documents/TyporaImages/image-20211226154116413.png)]
RAM,一掉电,信息就会丢失。
ROM,一掉电,信息不会丢失。
随机存取存储器:简称 RAM,断电后所有数据都将清除,有两类 RAM:静态的 (SRAM) 和动态的(DRAM),SRAM 比 DRAM 速度更快,但价格也更贵。SRAM 用来作为高速缓冲存储器(Cache),DRAM 用来作为主存及图形系统的帧缓冲区。SRAM 将每个位存储在一个双隐态的存储器单元中,DRAM 将每个位存储为对一个电容的充电,由于电容非常小,在 10~100ms 时间内会失去电荷,所以需要周期性地刷新充电以保持信息
只读存储器:简称 ROM,断电后仍然能够存储信息
1.概念:主存的编址就是把许多块芯片组成相应的存储器
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-7jN5aeCm-1640573088271)(D:/RenXianShou/Documents/TyporaImages/image-20211226154705174.png)]
8代表他有8个地址空间,4代表每一个地址空间存储了4个bit位的地址信息。000
用内存地址,大的减去小的。1C000H
。(1)填到的内容是112。
(2):112k*16bit / 28*16K*X=1
X=4,答案为4位。
注:一般表示方式如下图,其中左图一中的 8 表示它有 8 个地址空间,4 表示每一个地址空间存储了 4 位的信息,而两个图一则可以拼接为图二,两个图二可以拼接为图三
图注:其中 H 表示十六进制,存储单元数量等于大的内存地址减去小的内存地址再加上一;K=1024,第一个空即为存储单元数量除以 1024
注:磁道一般分为许多个小的扇形区,即物理块,磁头在依次读取这些物理块时 (磁头必须依次读取),会在读取的同时将其存放进缓存区,缓存区可以是单个,也可以是多个,存放完成后会在缓存区花费时间进行处理,处理期间磁头的读取不会停止,因此,如果缓存区过少,就会出现:读取一个物理块花费了一个周期甚至更长的时间。
磁盘调度管理中,先进行移臂调度寻找磁道,再进行旋转调度寻找扇区
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6ArFw5ey-1640573088272)(D:/RenXianShou/Documents/TyporaImages/image-20211226160319671.png)]
磁盘,环形盘片来存储数据,
扇区存储数据,旋转等待磁头到达指定扇区。
存取时间=寻道时间+等待时间。(平均定位时间+转动延迟)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6z9yv8iI-1640573088273)(D:/RenXianShou/Documents/TyporaImages/image-20211226161427310.png)]
11个物理块=11个扇区,
磁盘运作原理,
磁头读取数据是3ms。
单缓冲区,
磁盘会均匀转动。
一圈是33ms,再加3ms,这是(33+3)*10=360ms
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nwXAdnSY-1640573088274)(D:/RenXianShou/Documents/TyporaImages/image-20211226214434862.png)]
上图,没有任何的时间浪费,旋转了两圈,所以是33*2=66ms。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1xFGhlqZ-1640573088275)(D:/RenXianShou/Documents/TyporaImages/image-20211226214601717.png)]
总线的分类
计算机总线,根据总线所处的位置的不同,可以被分为三种类型,分别是:内部总线,系统总线,外部总线。
根据总线所处的位置不同,总线通常被分成三种类型
注:总线上的多个部件之间只能分时向总线发送数据,但可以同时从总线接收数据
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ShuZWNcr-1640573088276)(D:/RenXianShou/Documents/TyporaImages/image-20211226220805797.png)]
这种题基本不会考到了。记不住公式吧。
图片解释:数据输入 n 个子系统中,它们各自得出自己的结果,然后汇总到表决器,表决器将遵循少数服从多数的原则,输出大多数子系统得到的那个答案然后进行输出==【好像投票法的样子】==
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VY8gCoI8-1640573088277)(D:/RenXianShou/Documents/TyporaImages/image-20211226221418416.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BrGknI1E-1640573088278)(D:/RenXianShou/Documents/TyporaImages/image-20211226221616497.png)]
CRC,
检错,检查出错误。
纠错,纠正错误。
码距:整个编码系统中任意两个码字的最小距离。
检错与纠错
在尾部加上校验信息,能够让余数为0。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-So5EMWyx-1640573088279)(D:/RenXianShou/Documents/TyporaImages/image-20211226222535335.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sKjYJTYl-1640573088280)(D:/RenXianShou/Documents/TyporaImages/image-20211226222731091.png)]
上图是模2除法。
下图也需要采用模2除法。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-BxtWU68Q-1640573088281)(D:/RenXianShou/Documents/TyporaImages/image-20211226223058156.png)]
码距及其作用
码距的概念:指整个编码系统中任意两个码字的最小距离, 如 A 变化 X 个位得到 B,则 X 就为码距,如:若使用 2 位长度的二进制编码,若以 A=11,B=00 为例,A,B 之间的最小码距为 2
码距的作用:增大码距能够起到检错的作用,因为数据在传输的过程中如果链路出现了
问题,那么将会使得接收到的二进制数发生变化,若码距过小,则很可能造成信息的混淆,增大码距就使得被改变的二进制数混淆信息的概率极大的降低; 若码距再进行增大,则能够起到纠错的作用,因为数据链路出错的概率比较低,只能造成传输中极少二进制数的改变,我们可以根据该传输失真的二进制数中大部分二进制数的构成来进行推断,推断出结果就达到了纠错的目的。
注:在一个码组内为了检测 e 个误码,要求最小码距 d 应满足:d>=e+1
在一个码组内为了纠正 t 个误码,要求最小码距 d 应该满足:d>=2t+1
循环冗余校验码——CRC
这是一种可以检错但不能纠错的一种编码
1.CRC 的概念:在对信息进行编码的时候在其尾部加入一些校验信息,让编码后的数据能够与循环校验码的生成多项式相除余数为零,若不为零则说明传输过程出现了错误,其中,原码加上 (增添在右方) 校验信息加 (做加法) 上余数所得的码即为 CRC,
注 (1):生成多项式是一个二进制数,如 “X4+X3+X+1”, 这个生成多项式实际上就是二进制数 11011;在相除时,需在原码后方添加一些 0,添加的 0 的个数等于生成多项式的位数减去 1,增加的 0 即为校验信息。
注 (2):二进制的除法与算术除法相似,唯一不同的是所得除数在作减法时,减得的值要取绝对值,即 0-1=1;这样使得整个除法运算中不存在借位。
难点。考察频度高。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oFqdCfe4-1640573088281)(D:/RenXianShou/Documents/TyporaImages/image-20211226223346227.png)]
海明校验码,难点,考察的挺多的。哪些位置是校验位,校验位。信息位。信息位。
第8位只能放校验位。
具体的编码:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cIKh8vHq-1640573088282)(D:/RenXianShou/Documents/TyporaImages/image-20211227104109905.png)]
校验码——海明校验码
概念:海明码是一种利用奇偶性进行检错和纠错的校验码,是一种插入到信息中的编码,一般为多个码,其插入的位置满足规律:2^r>=x+r+1;其中,x 为信息的二进制数的位数,r 为校验码的个数,而插入信息的位置则是 2r-1,2r-2……2^0; 如 r=3 时,校验码就插在 1,2,4 位置
校验码的计算:如信息 1011,根据公式得出其校验码分别放在 1,2,4 位,因此其海明码将有 7 位数,其中 3,5,6,7 位即为信息位,将 3 写为 20+21; 将 5 写为 20+22… 将四个信息的位数用此方法表示以后可得到校验位的值的计算公式:r0=i4&i3&i2;r1=i4&i3&i1.r2=i4&i3&i2;其中,r 表示校验位的值,且从 0 开始计数;在信息位被 2^ 表示以后,将都有 2^2 的信息位进行异或操作并将值赋给 r2,将都有 2^1 的信息位进行异或操作并将值赋给 r1,ro 也一样操作,& 符号即为异或,在异或操作中,二者值相同即等于 1,不同即等于 0,而 ix 则是将其信息位施以一种运算:信息位所处的位置为奇数就将其赋值为 1,信息位所处的位置为偶数就将其赋值为 0,因此 i4=1,i3=0,i2=1,i1=1;
海明校验码的作用:将信息转换为海明校验码形式以后,我们就能进行纠错,如信息 1011,其海明校验码的正确形式为 1010101,若收到了 1011101,我们可以将两个数的校验码位的数提取出来,并在对应位置进行异或运算,如该例得到了 001,则说明第 1 位’(左数第一个信息位) 出错了, 若得到了 010,则说明第二个信息位出错了。
校验码——奇偶校验码
概念:一个码距为 1 的编码系统加上一位奇偶校验码后,码距就变成了 2。产生奇偶校验时将信息数据的各位进行模二加法 (即异或运算,相同则和为 0,相反则和为 1),直接使用这个加法的结果称为奇校验。把这个加法值取反后作为校验码的称为偶校验。从直观的角度而言,奇校验的规则是:信息数据中各位中 1 的个数为奇数,校验码为 1,否则校验码为 0,偶校验则相反
奇偶校验码的作用:使用一位奇偶校验码的方法可以检测出一个奇数或偶数位的错误,但无法判断是哪一位出现错误,当错误数超过一个时奇偶校验就无法检测出来,所以奇偶校验常用于对少量数据的校验,这种校验方式在通信领域被广泛采用
计算机中主机与外设间进行数据传输的输入输出的控制方法有程序控制方式、中断方式、DMA 等,输入输出系统是一组固化到计算机内主板上一个 ROM 芯片上的程序
程序控制方式:由 CPU 执行程序控制数据的输入输出过程
中断方式:外设准备好输入数据或接受数据时向 CPU 发出中断请求信号,若 CPU 决定响应该请求,则暂停正在执行的任务,转而执行中断服务程序进行数据的输入输出处理,之后再回去执行原来的被中断的任务,中断时根据中断服务程序的入口地址进行中断
3.DMA(直接存储器控制):CPU 只需向 DMA 控制器下达指令,让 DMA 控制器来处理数据的传送,数据传送完毕再把信息反馈给 CPU,这样就很大程度上减轻了 CPU 的负担
注:CPU 是在一个总线周期结束时响应 DMA 请求的,即不是 DMA 一请求 CPU 就响应,而是 CPU 在接收到 DMA 请求后,在该系统总线周期结束后进行响应,因为 DMA 控制器在需要的时候会代替 CPU 作为总线主设备,在不受 CPU 干预的情况下,控制 I/O 设备与系统主存之间的直接数据传输