一、计算组成结构
1.1计算机硬件组成
- 计算机五大组成:运算器、控制器、存储器、输入设备、输出设备
- 存储器:内部存储器、外部存储器
- 外设:输入设备、输出设备
- 主机:cpu+主存储器
- 虚拟存储体系:主存+辅存
- cache存储体系:cache+主存储器
1.2中央处理单元CPU
- 中央处理单元组成:运算器 、控制器、寄存器组、内部总线
- 中央处理单元功能:程序控制、操作控制、时间控制、数据处理功能
- 运算器组成
1)算术逻辑单元ALU:对数据的算术和逻辑运算
2)累加寄存器AC:运算结果和源操作数的存放区
3)数据缓冲寄存器DR:暂时存放内存的指令或数据
4)状态条件寄存器PSW:保存指令运行结果的条件码内容,如溢出标志
- 运算器:执行所有算术运算,如加减乘除;执行所有的逻辑运算,与、或、非、比较
- 控制器组成:
1) 指令寄存器IR:暂存cpu执行指令
2)程序计算器PC:存放指令执行地址
3)地址寄存器AR:保存当前cpu所访问的内存地址
4)指令译码器ID:分析指令操作码
控制器功能:控制整个CPU的工作,程序控制、时序控制
1.3数据的进制转化
- R进制转十进制:位权展开法,用R进制数的每一位乘以R的n次方,n是变量,从R进制数的整数最低位开始,依次为0,1,2,3累加
- 十进制转R进制:十进制整数(除以R倒取余数)
- m进制转n进制:先将m进制转化为十进制数,再将十进制数转化为n进制数
- 不需要十进制中转:二进制转八进制:每三位二进制转换为一位八进制数,二进制数个数不是三的倍数,前面补0;二进制转十六进制:每四位二进制数转换为一位十六进制数,二进制数位个数不是四的倍数,则在前面补0
1.4数的表示
- 机器数:二进制数计数,数的符号是0或1,小数点则隐含,不占位,正数符号为0,负数符号为1
- 定点表示法分为:纯小数、纯整数
- 纯小数:约定小数点的位置在机器数的最高数值位之前
- 纯整数:约定小数点的位置在机器数的最低数值位之后
- 真值:机器数对应的实际数值
1.5数的编码方式
- 原码:一个数的正常二进制表示
- 反码:正数的反码即原码,负数的反码是在原码的基础上,除符号位外,其他各位按位取反
- 补码:正数的补码即原码,负数的补码是原码的基础上,除符号位外,其他各位按位取反,而后末位+1,若有进位则产生进位
- 移码:用作浮点运算的阶码,无论正数负数,都是该原码的补码的首位(符号位)取反得到移码
- 取值范围
1.6浮点数
- 浮点数:表示方法为N=F*2^E,其中E成为阶码,F称为尾数,类似十进制的科学计数法
- 在浮点数的表示中,阶码为带符号的纯整数,尾数为带符号的纯小数,要注意符号最高为(正数0负数1)
- 尾数的表示采用规格化方法
- 浮点的运算:对阶:使用两个数的阶码相同,小阶向大阶看齐,较小阶码增加几位,尾数就向右移几位
- 尾数计数:相加,若是减法运算,则加负数
- 结果规格化
1.7算术运算和逻辑运算
- 逻辑与&&
- 逻辑或||
- 异或:同0非1
- 逻辑非
- 逻辑左移<<:二进制整体左移n位,高位若溢出则舍去,低位补0
- 逻辑右移>>:二进制整体右移n位,低位溢出则舍去,高位补0
1.8校验码
- 码距:从A码到B码转换所需要改变的位数称为码距
- 奇偶校验:在编码中增加1位校验位来使编码中的1的个数位奇数(奇校验),偶校验使码距变为2
1.9循环冗余校验码CRC
- CRC只能检错,不能纠错,其原理是找出一个能整除多项式的编码,因此首先要将原始报文除以多项式,将所得的余数作为校验位加在原始报文之后,作为发送数据发给接收方
1.10海明码校验
- 海明码:本质利用奇偶性来检错和纠错的检验方法,构成方法是在数据之间的确定位置上插入K个校验位,通过扩大码距实现检错和纠错,该数据位是n位,校验位是k位,则n和k必须满足以下关系:2^k-1>=n+k
1.11计算机体系结构分类
- flynn分类法
1.12计算机指令
- 计算机指令的组成:操作码和操作数两部分,操作码决定要完成的操作,操作数指参加运算的数据及所在的单元地址
- 指令执行:取指令--分析指令--执行指令 ,第一步将程序计数器PC中的指令地址取出,送入地址总线,cpu依据指令地址去内存中取出指令内容存入指令寄存器IR,第二步由指令译码器进行分析,分析指令操作码,第三步执行指令,取出指令执行所需的源操作数
1.13指令寻址方式
- 指令寻址方式:顺序寻址方式、跳跃寻址方式
- 顺序寻址凡是:当执行一段程序时,是一条指令接着一条指令地顺序执行
- 跳跃寻址方式:指下一条指令的地址吗不是由程序计数器给出,而是由本条指令直接给出,程序跳跃后,按新的指令地址开始顺序执行,因此,程序计数器的内容必须相应改变,以便及时跟踪新的指令地址
- 指令操作数的寻址方式:立即寻址方式、直接寻址方式、间接寻址方式、寄存器寻址方式、其他寻址方式
- 立即寻址:指令的地址码字段指出的不是地址,而是操作数本身
- 直接寻址:在指令的地址字段中直接指出操作数在主存中的地址
- 间接寻址:指令地址码字段所指向的存储单元中存储的是操作数的地址
- 寄存器寻址:指令中的地址码是寄存器的编码
- 其他寻址
1.14指令系统
- CISC是复杂指令系统,兼容性强,指令繁多,长度可变,由微程序实现
- RISC是精简指令系统,指令少,使用频率接近,主要靠硬件实现(通用寄存器、硬件布线逻辑控制)
1.15指令流水线
- 指令流水线原理:将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段
1.16流水线相关计算
- 流水线周期:指令分成不同执行段,其中执行时间最长的段为流水周期
- 流水线执行时间:1条指令总执行时间+(总指令条数-1)*流水线周期
- 流水线吞吐率:总指令条数/流水执行时间
- 流水线加速比:不使用流水线总执行时间/使用流水线总执行时间
- 超标量流水线技术:常规流水线的度为1,即每个流水线阶段只执行一个部分,当大于1时,就是超标量,当度为3时,相当于3条流水线并行执行,题目提到度的概念,计算需:指令条数=指令条数/度,套用流水线执行时间公式
1.17存储系统
- 计算机存储系统的层次结构:
- 分级存储体系目的:解决存储容量、成本、速度之间矛盾问题
- 两级存储:cache-主存,主存-辅存(虚拟存储体系)
-
局部性原理:时间局部性:如果一个数据项正在被访问,那么近期它很可能会被再次访问,即相邻的时间会访问同一个数据项;空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问
1.18高速缓存Cache
- cache由控制部分和存储器组成,存储器储存数据,控制部分判断cpu要访问的数据是否在cache中,在则命中,不在则依据一定的算法从主存中替换
- 地址映射:在cpu工作时,送出的是主存单元的地址,而应从cache存储器中读/写信息,这就需要将主存地址转换为cache存储地址,这种地址的转换称为地址映像,由硬件自动完成映射,分为下列三种方法:
- 直接映像:将cache存储器等分成块,主存也等分成块并编号,主存中的块与cache中的块对应关系是固定的,也即二者块号相同才能命中,地址变换简单但不灵活,容易造成资源浪费
- 全相联映像:同样都等分成块并编号,主存中任意一块都与cache中任意一块对应,因此可以随意调入cache任意位置,但地址变换复杂,速度较慢,因为主存可以睡衣调入cache任意块,只有cache满才会发生块冲突,是最不容易发生块冲突的映射方式
-
组相连映像:组号相同的两个组内的所有块可以任意调换
- 块冲突排序:直接映像>组相联映像>全相联映像
1.19cache置换算法
- 随机算法:最简单的替换算法,完全不管cache块过去、现在、将来的使用情况,简单地根据一个随机数,选择一块替换
- 先进先出:按调入cache的先后决定淘汰的顺序,机在需要更新时,将最先进入cache的块作为被替换的块,这种方法要求为每块做一记录,记下它们进入cache的先后次序,优点:容易实现,系统开销小,缺点:可能会把一些经常使用的程序块(入循环程序)替换掉
- 近期最少使用算法:LRU算法是把cpu近期最少使用的块作为被替换的块,需要随时记录cache中各块的使用情况,以便确定哪个块是近期最少使用的块,LRU算法相对合理,但实现起来比较复杂,系统开销大,通常需要对每一块设置一个称为‘年龄计数器’的硬件或软件计数器,用以记录其被使用的情况
- 最不经常使用页置换算法:要求在页置换引用计数最小的页,因为经常使用的页应该有一个较大的引用次数,但是有些页在开始使用次数很多,以后就不再经常使用,这类页将会长时间留在内存中,因此可以将引用计数器寄存器定时右移一位,形成指数衰减的平均使用次数。LFU的复杂度以及计数器规模都比LRU大,LRU只关注近期访问情况,统计累计访问次数作为淘汰的依据
- CPU访问的数据在cache中时,称为命中,直接从cache中读取数据;否则没有命中,需要从主存中读取所需的数据
1.20主存编址
- 地址编号从80000H到BFFFFH,按字节编址内存容量为 BFFFFFH-800000H+1=40000H,共40000H个字节,转十进制等于256kb
- 16k*4bit存储芯片,共需芯片数256/(16k*0.5B)=32(片)
1.21总线结构
- 内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线
- 系统总线:搬级总线,用于计算机内各部分之间的连接,具体分为数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传送控制命令),代表:ISA、EISA、PCI
- 外部总线:设备一级的总线,违纪和外部设备的总线,RS232串行总线、SCSI并行总线、USB通用串行总线
1.21系统可靠性分析
- 平均无故障时间MTTF=1/失效率
- 平均故障修复时间MTTR=1/修复率
- 平均故障间隔时间MTBF=MTTF+MTTR
- 系统可用性=MTTF/(MTTF+MTTR)*100%
- 串联系统:一个设备不可靠,整个系统崩溃 R=R1*R2*Rn
- 并联系统:所有设备不可靠,整个系统才崩溃 R=1-(1-R1)*(1-R2)*(1-Rn)
1.21其他
- 中段向量:中断服务程序的入口地址
- 中断向量表:把系统中所有的中断类型吗及对应的中断向量按一定的规律存放在一个区域内,这个存储区域就称为中断向量表,cup根据中断号获取中断向量,即对应中断服务程序的入口地址值
- DMA(直接存储器存取)是在DMA控制器硬件的控制下实现数据的传递,不需要CPU参与工作
-