第一章.计算机组成与体系结构
第一章.计算机组成与体系结构
ps:在上午考试中一般占到6分
第一节 数据的表示
进制的转换
1.R进制转十进制:将每一位数字用R^k表示然后相加,k与该位与小数点的距离有关,小数点左边第一位为0,右边第一位为-1,往左递增,网往右递减,如:二进制数10100.01=1*2^4+1*2^2+1*2^-2
2.十进制转R进制: 整数位使用短除法,即将十进制数除以R再取余,直至余数为零,然后将余数由下往上按顺序排列,小数位乘以R,每乘一次就取它的整数位(整数位为零时就取零),直至小数位为零,然后将取得的整数位由上往下排列即可。
eg: 求十进制数29的二进制:
3.二进制转八进制及二进制转十六进制:将二进制数以小数点为界向左及向右每三个一组(转八进制),或者每四个一组(转十六进制),缺的数用零来补充,然后依次转化为相应的进制数然后按顺序排列即可。
原码反码补码移码
1.原码:将一个十进制数转换为二进制数,并且该二进制数的首位表示正负,0表示正,1表示负,不足八位的就在首位与二进制数中间用零填充。如-1的原码就是10000001
2.反码:原码在计算机中进行加减不能得到正确的答案,而反码的加减则符合事实,正数的反码为本身,负数的反码为其原码除首位不变外全部取反,即零变为一,一变为零 [ 原码的符号位不变,其他位按位取反 ]
3.补码:正数的补码与原码相同,负数的补码即为其反码加一(补码的运算也符合正确答案) [ 反码+1 ]
4.移码:将正数和负数的补码首位取反,其余位不改变(移码的运算也符合正确答案) [ 补码的符号位取反,其他位不变 ]
移码运算符: << 左移 左移n位相当于乘于2的n次方
>> 带符号右移
>>> 无符号右移
注意:正数的反码、补码和原码相同,负数的原码、补码和原码不同
5.各自数值表示范围:其中n一般等于8
补码的 -0 和 +0 都是0000 0000 所以取值范围更大一位
浮点数运算:
1.浮点数的概念:浮点数即科学计数法,如1000=1X10^3; 其中,1为尾数,10为基数,3为指数。
2.计算机中浮点数的运算:当两个指数不等的浮点数相加时,计算机会把低阶浮点数的指数转化为高阶浮点数的指数,如:1.0X10^3+1.19X10^2,计算机会将1.19X10^2转化为0.119X10^3,然后作和,然后结果格式化(即通过指数的转化保证尾数必须为非零的一位数)如:0.1119X10^3+1.119X10^2;得到11.3019X10^3以后,要化为1.13019X10^4
浮点数规格化指阶码采用移码,尾数采用补码
浮点数所表示的数值范围由阶码决定,精度由尾数决定
第二节.*处理器(CPU)
CPU由运算器和控制器组成
运算器(ALU)
包括:
1.累加寄存器(AC):专门存放算术或逻辑运算的一个操作数和运算结果的寄存器。能进行加,减,读出,移位,求补等操作。是运算器的主要部分。
2.程序状态寄存器(PSW):该部件用来存放两类信息,一类是体现当前指令执行结果的各种状态信息(条件码),如有无进位,有无溢出,结果正负,信息是否为零等;另一类是存放控制信息,如允许中断,跟踪标志等。
控制器
包括:
1.程序计数器(PC):程序计数器中存放的是下一条指令的地址。由于多数情况下程序是顺序执行的,所以程序计数器设计成自动加一的装置。当出现转移指令时,就需重填程序计数器
2.指令寄存器(IR):*处理器正在执行的操作码表存放在这里,即当前正在执行的所有指令 [ 指令寄存器的位数取决于指令字长 ]
3.指令译码器:将操作码解码,告诉*处理器该做什么。
4.时序部件
注:
·地址寄存器(属于存储器):保存当前CPU所访问的内存单元的地址
·程序员可以访问的寄存器:通用寄存器、程序计数器、程序状态寄存器
·CPU的寻址方式除了直接寻址以外还有多种寻址方式,目的是为了在效率和方便性上找一个平衡
·CPU根据指令周期的不同阶段来区分内存中以二进制编码形式存放的指令和数据
·指令最先进入到数据寄存器暂存起来,然后在拿到指令寄存器中,再交由指令译码器来解码进而运算(交给运算器),而这一过程一结束,就会迅速提取程序计数器中的指令(即下一条指令),因此,程序计数器中存储的始终是暂未执行的,下一条指令的“地址”;
第三节.计算机体系结构分类(Flynn)
多指令流单数据流目前只是理论形式
第四节.CISC和RISC
CISC: 复杂指令系统计算机 RISC: 精简指令系统计算机
第五节.流水线
流水线的基本概念
1.指令执行的流程:取指——分析——执行,注:指令执行步骤可能多于三步,应根据题意作答
2.流水线的概念:流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,他们可以同时为多条指令的不同部分进行工作,以提高各部分的利用率和指令的平均执行速度
流水线周期及流水线执行时间计算
1.流水线周期计算:流水线周期为执行时间最长的一段
2.流水线执行时间计算:(1)理论公式:1条指令完整执行的时间+(指令条数-1)*流水线周期;(2)实际公式(实际生产中工厂往往采用该方法,因为该方法效率更高): (一个完整指令的步骤数+指令条数-1)*流水线周期 ;注:计算时优先用理论公式,选项中没有该答案时再采用实际公式
流水线——流水线吞吐率计算
1.概念:是指在单位时间内流水线所完成的任务数量或输出的结果数量
2.计算公式:TP=指令条数/流水线执行时间
3.流水线最大吞吐率计算公式:1/&;其中&是流水线周期
流水线——流水线的加速比
1.概念:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比称为流水线的加速比
2.加速比计算公式:不使用流水线的执行时间/使用流水线执行时间
流水线——流水线的效率
1.概念:指流水线的设备利用率
2.计算公式:E=n个任务占用的时空区/k个流水段的总的时空区=T0/kTK;即从图形面积求解面积
如:
该流水线的效率即为T0=24/KTk=60;等于0.4
注:所有步骤花费时间相等的指令执行的效率最高
第六节 层次化存储器结构
注:内存存储外存的部分内容,cache存储内存的部分内容,CPU只处理cache中的指令,cache的作用是精简内存中重复出现的指令,提高CPU的执行效率,使得计算机的运算速度得到极大的提升;此外,结构中由上至下,速度越来越慢,但容量越来越大
第七节.cache
cache 与外存无关
CPU访问速度最快的是通用寄存器,其次是cache
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的多个块号),组相连映射(即两种方式相结合的方法)
直接映射:块冲突率高,cache空间利用率低
全相联映射:块冲突率低,cache空间利用率高,实现主存任意一块装入cache任意位置,装满才替换
注:这三种映射方式都是计算机硬件自动完成的,不是软件
4.替换算法:替换算法的目的是使cache获得尽可能高的命中率,有以下四种:随机替换算法、先进先出算法、近期最少使用算法、优化替换算法
注:现代的计算机cache系统是分为了三个级别的,访问时先从第一层开始访问,直至三个级别的cache都被访问完全时才会访问内存
5.虚拟存储器:即cpu在给出需要访问的内存地址时,给出的并不是真正的物理地址,而是物理地址的抽象,虚拟存储器是由主存-辅存两级存储器组成
6、相联存储器是一种按内容访问的存储器
第八节.主存
主存的分类
1.随机存取存储器:简称RAM,断电后所有数据都将清除,有两类RAM:静态的(SRAM)和动态的(DRAM),SRAM比DRAM速度更快,但价格也更贵。SRAM用来作为高速缓冲存储器(Cache),DRAM用来作为主存及图形系统的帧缓冲区。SRAM将每个位存储在一个双隐态的存储器单元中,DRAM将每个位存储为对一个电容的充电,由于电容非常小,在10~100ms时间内会失去电荷,所以需要周期性地刷新充电以保持信息
2.只读存储器:简称ROM,断电后仍然能够存储信息
( BIOS 保存在ROM中 )
主存的编址
1.概念:主存的编址就是把许多块芯片组成相应的存储器
注:一般表示方式如下图,其中左图一中的8表示它有8个地址空间,4表示每一个地址空间存储了4位的信息,而两个图一则可以拼接为图二,两个图二可以拼接为图三
2.编址相关计算:
答案:B、A
图注:其中H表示十六进制,存储单元数量等于大的内存地址(C7FFFH)加上一减去小的内存地址(AC000H);K=1024,第一个空即为存储单元数量除以1024
第九节.磁盘结构与参数
注:磁道一般分为许多个小的扇形区,即物理块,磁头在依次读取这些物理块时(磁头必须依次读取),会在读取的同时将其存放进缓存区,缓存区可以是单个,也可以是多个,存放完成后会在缓存区花费时间进行处理,处理期间磁头的读取不会停止,因此,如果缓存区过少,就会出现:读取一个物理块花费了一个周期甚至更长的时间。
公式:
硬盘非格式化容量=面数*(磁道数/面)*内圆周长*最大位密度
硬盘格式化容量=面数*(磁道数/面)*(扇区数/道)*(字节数/扇)
每面的磁道数= (外直径-内直径)*10*磁道密度/2
磁盘调度管理中,先进行移臂调度寻找磁道,再进行旋转调度寻找扇区
第十节.总线
总线的分类
总线宽度:总线的线数
总线的带宽:总线的最大数据传输率
根据总线所处的位置不同,总线通常被分成三种类型
0.概念:总线是连接计算机有关部件的一组信号线,是计算机中用来传送信息代码的公共通道。
1.内部总线:微机内部的,各个外围芯片与处理器之间的总线,属于芯片级别
2.系统总线:系统总线即为各个插线板和系统板之间的总线;包括(1)数据总线:如32位,64位等一次性能够传输的位(2)地址总线:假设该计算机的地址总线为32位,那就代表它的地址空间为2^32个字节(3)控制总线:发送相应的控制信号的总线
3.外部总线:即微机和外部设备的总线
注:总线上的多个部件之间只能分时向总线发送数据,但可以同时从总线接收数据
第十一节.系统可靠性分析与设计
串联系统
1.串联系统的结构:只要一个子系统失效,则整个系统都将失效
2.串联系统可靠性的计算:即各个串联子系统可靠性相乘,如上图,其中R为可靠性,此外,1-可靠性即为失效率,而总的失效率即为串联各个部件的失效率作和(近似计算)
并联系统
1.并联系统的结构 注:少数子系统的失效将不会影响整个系统
2.并联系统可靠性的计算:通过计算失效率来求得可靠性,即各个子系统的失效率相乘,再由1减去它,即可得到系统可靠性
模冗余系统与混合系统
1.结构
图片解释:数据输入n个子系统中,它们各自得出自己的结果,然后汇总到表决器,表决器将遵循少数服从多数的原则,输出大多数子系统得到的那个答案然后进行输出
第十二节.差错控制——CRC与海明校验码
检错与纠错
1.检错:将错误检查出来
2.纠错:将错误检查出来的同时并进行纠正
码距及其作用
1.码距的概念:指整个编码系统中任意两个码字的最小距离,如A变化X个位得到B,则X就为码距,如:若使用2位长度的二进制编码,若以A=11,B=00为例,A,B之间的最小码距为2
2.码距的作用:增大码距能够起到检错的作用,因为数据在传输的过程中如果链路出现了
问题,那么将会使得接收到的二进制数发生变化,若码距过小,则很可能造成信息的混淆,增大码距就使得被改变的二进制数混淆信息的概率极大的降低;若码距再进行增大,则能够起到纠错的作用,因为数据链路出错的概率比较低,只能造成传输中极少二进制数的改变,我们可以根据该传输失真的二进制数中大部分二进制数的构成来进行推断,推断出结果就达到了纠错的目的。
注:在一个码组内为了检测e个误码,要求最小码距d应满足:d>=e+1
在一个码组内为了纠正t个误码,要求最小码距d应该满足:d>=2t+1
循环冗余校验码——CRC
这是一种可以检错但不能纠错的一种编码
CRC采用模2运算来构造校验码
1.CRC的概念:在对信息进行编码的时候在其尾部加入一些校验信息,让编码后的数据能够与循环校验码的生成多项式相除余数为零,若不为零则说明传输过程出现了错误,其中,原码加上(增添在右方)校验信息加(做加法)上余数所得的码即为CRC,
注(1):生成多项式是一个二进制数,如"X^4+X^3+X+1",这个生成多项式实际上就是二进制数11011;在相除时,需在原码后方添加一些0,添加的0的个数等于生成多项式的位数减去1,增加的0即为校验信息。
注(2):二进制的除法与算术除法相似,唯一不同的是所得除数在作减法时,减得的值要取绝对值,即0-1=1;这样使得整个除法运算中不存在借位。
校验码——海明校验码
校验码的个数需要满足2^r>=x+r+1;其中,x为信息的二进制数的位数,r为校验码的个数
1.概念:海明码是一种利用奇偶性进行检错和纠错的校验码,是一种插入到信息中的编码,一般为多个码,其插入的位置满足规律:2^r>=x+r+1;其中,x为信息的二进制数的位数,r为校验码的个数,而插入信息的位置则是2^r-1,2^r-2……2^0;如r=3时,校验码就插在1,2,4位置
2.校验码的计算:如信息1011,根据公式得出其校验码分别放在1,2,4位,因此其海明码将有7位数,其中3,5,6,7位即为信息位,将3写为2^0+2^1;将5写为2^0+2^2.......将四个信息的位数用此方法表示以后可得到校验位的值的计算公式: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;
3.海明校验码的作用:将信息转换为海明校验码形式以后,我们就能进行纠错,如信息1011,其海明校验码的正确形式为1010101,若收到了1011101,我们可以将两个数的校验码位的数提取出来,并在对应位置进行异或运算,如该例得到了001,则说明第1位'(左数第一个信息位)出错了,若得到了010,则说明第二个信息位出错了。
校验码——奇偶校验码
1.概念:一个码距为1的编码系统加上一位奇偶校验码后,码距就变成了2。产生奇偶校验时将信息数据的各位进行模二加法(即异或运算,相同则和为0,相反则和为1),直接使用这个加法的结果称为奇校验。把这个加法值取反后作为校验码的称为偶校验。从直观的角度而言,奇校验的规则是:信息数据中各位中1的个数为奇数,校验码为1,否则校验码为0,偶校验则相反
2.奇偶校验码的作用:使用一位奇偶校验码的方法可以检测出一个奇数或偶数位的错误,但无法判断是哪一位出现错误,当错误数超过一个时奇偶校验就无法检测出来,所以奇偶校验常用于对少量数据的校验,这种校验方式在通信领域被广泛采用
第十三节.输入输出系统
计算机中主机与外设间进行数据传输的输入输出的控制方法有程序控制方式、中断方式、DMA等,输入输出系统是一组固化到计算机内主板上一个ROM芯片上的程序
1.程序控制方式:由CPU执行程序控制数据的输入输出过程
2.中断方式:外设准备好输入数据或接受数据时向CPU发出中断请求信号,若CPU决定响应该请求,则暂停正在执行的任务,转而执行中断服务程序进行数据的输入输出处理,之后再回去执行原来的被中断的任务,中断时根据中断服务程序的入口地址(中断向量)进行中断
3.DMA(直接存储器控制):CPU只需向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU的负担 [ 不需要CPU的干预 ]
注:CPU是在一个总线周期结束时响应DMA请求的,即不是DMA一请求CPU就响应,而是CPU在接收到DMA请求后,在该系统总线周期结束后进行响应,因为DMA控制器在需要的时候会代替CPU作为总线主设备,在不受CPU干预的情况下,控制I/O设备与系统主存之间的直接数据传输(主存与外设)