计算机系统结构之重要知识点总结1
第一章 计算机系统结构的概念
重要知识点:
1. 计算机系统结构的定义
答:计算机系统结构是程序员看到的计算机属性,即概念性结构和功能性结构
2. 计算机系统结构的Flynn分类法
答:
分类依据:
指令流(计算机执行指令的序列)
数据流(指令流调用的数据序列)
多倍性(在系统受限的部件上,同时处于同一执行阶段的指令或数据的最大数目)
四大分类:
1)单指令流单数据流(SISD)
2)单指令流多数据流(SIMD)
3)多指令流单数据流(MISD)
4)多指令流多数据流(MIMD)
Ps:S代表Single,M代表Multiple
3. 计算机系统设计的定量原理(4个),熟练运用Amdahl定律和CPU性能公式
答:
计算机系统设计的4个定量原理:
1)以经常性事件为重点
2)遵循Amdahl定律
3)CPU性能公式
4)程序局部性原理
关于定量原理的简单分析:
Amdahl定律:加速某部件执行速度所能获得的系统性能加速比,受限于改部件的执行时间占系统中总执行时间的百分比
加速比公式的推导:
加速比=改进前的总执行时间/改进后的总执行时间(核心定义式)
改进后的总执行时间=改进前的总执行时间*[(1-可改进比例)+可改进比例/部件加速比]
加速比=1/[(1-可改进比例)+可改进比例/部件加速比](这是针对只有一个部件改进的情况,如果有多个部件改进的话,要求加速比要根据核心定义式来)
多个部件改进求加速比:加速比=1/[(1-多个部件可改进比例之和)+多个部件可改进比例之和/多个部件加速比之和](预测是考试重点)
CPU性能公式的推导:
CPU时间=时钟周期数*单个时钟周期时间(单个时钟周期时间是系统频率的倒数)
新定义一个CPI,CPI=时钟周期数/指令条数
定义IC,IC=指令条数
那么CPU时间=IC*CPI*时钟周期时间
程序局部性原理的分析:
指的是程序执行时访问的存储器地址不是随机的,是相对成簇的,比如数组里面的数据在地址空间里面都是连续存在的,包括时间局部性和空间局部性
时间局部性:指程序将要用到的信息和可能是当前正在使用的信息
空间局部性:指程序将要用到的信息很可能与目前正在使用的信息在空间上相邻或者相近
(简单了解即可)
4. 理解执行时间和吞吐率的含义
答:
执行时间:计算机完成某一任务所花费的全部时间(包括磁盘访问,存储器访问,IO,操作系统开销等)
吞吐率:单位时间内计算机完成任务的多少
5. 系列机的含义与软件兼容方式
答:
系列机:由同一厂家生产的具有相同的系统结构,但具有不同的组成和实现的一系列不同型号的计算机
系列机的4种软件兼容方式:
1)向前兼容
2)向后兼容
3)向上兼容
4)向下兼容
6. 模拟与仿真的区别
答:
模拟:用软件的方法在一台现有的计算机上实现另外一台计算机的指令集
仿真:用一台现有计算机上的微程序去解释实现另一台计算机
区别:
1)模拟程序放在内存中,而仿真微程序放在存储器中
2)仿真的运行速度比模拟快
3)仿真只能在系统结构差距不大的计算机之间使用
7. 并行性,同时性,并发性的含义
答:
并行性:指计算机系统在同一时刻或同一时间间隔内进行多种运算或操作
注意:并行性包括同时性和并发性!!!!
同时性:指两个或者两个以上的事情在同一时间发生
并发性:指两个或者两个以上的事情在同一间隔发生
8.提高并行性的技术途径
答:
1)时间重叠:流水线技术
2)资源重复:多处理机系统
3)资源共享:多道程序,分时系统,打印机
第二章 计算机指令集结构
1. 根据储存操作数的存储单元的类型对指令集结构进行分类以及每类的特点
答:
指令集结构的分类:
1)堆栈类指令集结构
2)累加器类指令集结构
3)通用寄存器类指令集结构
堆栈类指令集结构的特点:
1)操作数都是隐式给出(即栈顶和次栈顶中的数据)(栈顶和次栈顶的数据取出来进行运算之后,结果再次压入堆栈当中)
2)只能通过psuh/pop指令访问存储器
3)指令字短,程序占用空间小但访问存在瓶颈(由堆栈这种数据结构决定)
累加器类指令集结构的特点:
1)一个操作数是隐式给出(累加器本身数据),一个操作数是显示给出(一个存储单元的数据)(运算结果再次送回累加器)
通用寄存器类指令集结构的特点:
1)所有操作数都是显示给出(或是来源于存储器,或是来源于通用寄存器本身,结果再次希尔通用寄存器)
2. 寻址方式的含义以及常见的寻址方式
答:
寻址方式的含义:
指一种指令集结构如何确所要访问的数据的地址
常见的寻址方式:
1)寄存器寻址(ADD R1,R2):Regs[R1] <– Regs[R1]+Regs[R2]
2)立即数寻址(ADD R3,#6):Regs[R3] <– Regs[R3]+6
3)偏移寻址(ADD R3,120(R2)):Regs[R3] <– Regs[R3]+Mem[120+Regs[R2]]
3. 偏移寻址方式中偏移量的取值范围的特点,立即数寻址方式中立即数取值范围的特点
答:
偏移量的取值范围特点:
1)分布广泛
2)较小偏移量和较大偏移量占的比重大
立即数取值范围的特点:
1)较小的立即数最常用,但有时也会用到较大的立即数
2)立即数范围大小设置为8位到16位
4. CISC复杂指令集结构存在的问题,RISC精简指令集结构的设计原则
答:
CISC复杂指令集结构存在的问题:
1)各种指令的使用频度相差悬殊,许多指令很少用到
2)指令集庞大,指令条数多,许多指令的功能又很复杂
3)许多指令由于操作复杂,其CPI值比较大,执行速度慢
4)由于指令功能复杂,规整性不好,不利于采用流水线技术来提高性能
RISC精简指令集结构的设计原则
1)指令条数小,指令简单
2)采用简单而有统一的指令格式,并减少寻址方式
3)指令的执行在单个机器周期内完成
4)只有load和store指令才能访问存储器,其他指令的操作都是在寄存器之间进行
5)大多数指令都采用硬连逻辑来实现
6)强调优化编译器的作用,为高级语言程序生成优化的代码
7)充分理由流水线技术来提高性能
5. 能够改变控制流的4种指令类型
答:
1)条件分支(if else)
2)跳转(break,continue)
3)过程调用(函数调用)
4)过程返回(return)
6. 数据表示的含义,操作数类型的两种表示方法
答:
数据表示:
指计算机硬件能够直接识别,指令集可以直接调用的数据类型
操作数类型的两种表示方法:
1)由指令中的操作码指定操作数的类型
2)给数据加上标识,由数据本身给出操作数的类型
7. 指令集的3种编码格式
答:
1)可变长度的编码格式(该编码格式适合指令集的寻址方式和操作种类很多时)
2)固定长度编码格式(该编码格式适合指令集的寻址方式和操作种类很少时)
8. MIPS的寄存器和数据寻址方式的特点
答:
MIPS寄存器的特点:
1)32个64位的通用寄存器,R0~R31,R0的值永远是0
2)32个64位的浮点寄存器(可存放单双精度)
3)还有一些特殊状态寄存器(比如浮点状态寄存器)
数据寻址方式的特点:
1)只有立即数寻址和偏移量寻址的两种方式
2)立即数字段和偏移量字段都是16位
3)寄存器间接寻址是通过把0作为偏移量来实现的
4)16位绝对寻址是把R0作为基址寄存器来完成的
9. MIPS的3种指令方式中各字段的含义
答:
MIPS指令都是32位的,操作码占6位,三类:I类,R类,J类
1)I类指令(load,store,立即数指令,分支指令,寄存器跳转指令,寄存器链接跳转指令)
操作码 + rs + rt + 立即数
Rs:第一个源操作数寄存器
Rt:第二个源操作数寄存器
2)R类指令(ALU指令,专用寄存器读写指令,move指令等)
操作码 + rs + rt + rd + shamt + funct
Rd:存放操作结果的目的寄存器
Shamt:移位的位数
Funct:运算操作码(功能码)
3)J类指令:(跳转指令,跳转并链接指令,自陷指令,异常返回指令)
操作码 + 与pc相加的偏移量
10.MIPS的4种操作类型,控制指令的组成
答:
MIPS的4种操作的类型:
1)Load和store
2)ALU操作
3)分支与跳转
4)浮点操作
控制指令的组成:
1)跳转指令
2)分支指令
第三章 流水线技术
1. 流水线的概念和时空图
答:
流水线的概念:把多个处理过程在时间上错开,依次通过各功能段,这样每个子过程就可以与其他子过程并行进行,这个就叫做流水线技术
流水线的工作过程采用时空图来描述,横坐标表示时间,纵坐标表示空间,即流水线中每一个流水段
2. 流水线的分类
答: 流水线由多种分类,分类依据不同,分类自然也不同
1)单功能流水线和多功能流水线(划分依据:功能的多少)
2)静态流水线和动态流水线(划分依据:同一时间内各段之间的连接方式)
3)部件级,处理机级及处理机间流水线(划分依据:流水的级别)
4)线性流水线和非线性流水线(划分依据:流水线中是否有反馈回路)
5)顺序流水线和乱序流水线(划分依据:任务流入和流出的顺序是否相同)
3. 计算以下两种情况的流水线的吞吐率(核心定义式:TP=n/Tk)
1)各段时间均等的流水线
2)各段时间不均等的流水线
4. 解决流水线瓶颈常用的两种方法
答:
1)细分瓶颈段
2)重复设置瓶颈段(不差钱的搞法,在瓶颈段设置多个运算部件)
5. 计算流水线的加速比和效率
答:
加速比=不采用流水线的时间/采用流水线的时间
效率=时空图所有小矩形总面积/时空图大矩形面积
6. 经典5段流水线的执行过程
答:
1)取指令周期
2)指令译码周期
3)执行/有效地址计算周期
4)储存访问/分支完成周期
5)写回周期
7. 指令相关定义(3种),运用换名技术解决名相关
答:指令相关的定义:
1)数据相关(此次运算需要前一次运算的结果作为数据)
2)名相关(指令所访问的寄存器或存储器单元相同)
3)控制相关(分支指令引起的相关)
换名技术:因为名相关的两条指令之间没有数据的传送,只使用了相同的名而已,所以如果把其中一条指令所使用的名换成别的,并不影响另外一条指令的正确执行
8. 流水线冲突的定义(3种),结构冲突和数据冲突的解决措施
答:
流水线冲突的定义:指对于具体执行的流水线来说,由于相关的存在,使得指令流中的下一条指令不能在指定的时间执行
流水线冲突的分类:
1)结构冲突(因硬件资源满足不了指令重叠执行的要求而引发的冲突)
2)数据冲突(当指令在流水线中重叠执行时,因需要后面指令的执行结果而引发的冲突)(通俗说就是现在要用到还没有算出来的结果)
3)控制冲突(流水线遇到分支指令和其他会改变pc值的指令所引起的冲突)
结构冲突的解决措施:
1)适当停顿流水线,推迟冲突中的一个操作
2)增加硬件设备资源
数据冲突的解决措施:
1)定向技术:把计算结果从产生的地方直接放到需要的地方)
2)适当停顿流水线(因为需要的东西还没有算,所以你先停下自己的工作,等它算出来,你再拿着算出来的结果继续开始工作)
第五章 储存系统
1. 多级存储层次的设计目标
答:
1)速度快
2)容量大
3)价格低
2. 以下概念的含义:命中率,失效率,命中时间,失效开销,平均访存时间的计算公式
答:
命中率:cpu访问存储系统时,找到所需信息的概率
失效率:cpu访问储存系统时,找不到所需信息的概率
命中时间:cpu访问存储系统时,找到所需信息所花费的时间
失效开销:cpu访问存储系统时,找不到所需信息所花费的时间
平均访存时间的计算公式=命中开销+不命中率*不命中开销
3.三种映像规则的实现原理
答:
1)全相连映像(主存中的任意一块可以放到cache中的任意一个位置)(任意一个)
2)直接映像(主存中的每一个块只能放置到cache的唯一一个位置)(唯一一个)
3)组相连映像(主存中的一个块可以放到cache中唯一一个组中的任意一个位置)(唯一一个组的任意位置)
4.cache块的查找方法
答:
标识+索引
先索引到组/块,然后在组/块内根据标识查找
同一组内索引相同,标识不同
5. cache的工作过程
答:
21064的cache的物理地址为24位(块地址29位+块内位移5位)
1)先得到标识的位数,进而得到索引
2)将索引作为地址从目录项里面得到相应的标识和有效位
3)同时用索引从cache的数据体中选一块,用块内位移作为偏移量得到相应的标识
4)将两个标识相比较(有效位为1比较才有效)
5)匹配成功且有效位为1,cache命中,发信号通知cpu取走数据
6)匹配不成功,cache不命中,给cpu发送一个等待信号,并从下一级存储器调入一个新的数据库(如需替换cache中数据块,则按照对应的替换算法进行替换)
6. 两种写策略的含义及其优缺点
答:
1)写直达法:不仅把数据写入cache,还写入下一级存储器
优点:数据保证了一致性
缺点:慢
2)写回法:只把数据写入cache,不写入下一级存储器
优点:快
缺点:数据没有保证一致性
7. 熟练运用平均访存时间公式,cpu时间公式,存储器停顿时钟周期数公式进行cache性能分析
8. cache失效的三种类型,降低cache失效率的四种方法
答:
Cache失效的三种类型:
1)强制性不命中(第一次访问时,cache中没有对应程序的任何数据)
2)容量不命中(容量限制,需要访问的数据因为cache容量有限被替换出去了)
3)冲突不命中(组相连映像中,太多的快映像到同一组,出现的在组内x块被y块替换了,需要访问x的时候访问不到情况)
降低cache失效率的四种方法:
1)增加cache块的大小(程序局部性原理,增加了块大小,所以减少了块数目,可能会增加冲突不命中)
2)增加cache的容量(以增加成本,命中时间为代价)
3)提高相连度(以增加命中时间为代价)
4)伪相连(列相连)(即获得了多路组相连cache的低不命中率,又保持了直接映像cache的命中速度
9. 减少cache失效开销的3种方法
答:
1)采用两级cache
2)让读不命中优先于写(等我写完再读)
3)写缓冲合并(不写重复的,提高了写的效率)
10. 减少命中时间的两种方法
答:
1)容量小,结构简单的cache(硬件越简单,速度就越快)
2)虚拟cache
第七章 互连网络
1.互连网络的定义与三大要素
答:
互连网络的定义:一种由开关元件按照一定的拓扑结构和控制方式构成的网络,用来实现计算机系统中结点之间的相互连接
互连网络的三大要素:
1)互连结构
2)开关元件
3)控制方式
2.常见的互连函数
略(不好写这上面,看书比较好)
第八章 多处理机
1. 依据存储器结构对多处理机进行分类
答:
1)对称式共享存储器多处理机
2)分布式存储器多处理机
2. 分布式存储器多处理机的两种通信方式
答:
1)共享地址空间
2)多个独立的地址空间
3. 多处理机Cache一致性的定义
答:
如果允许共享数据进入Cache,那么当其中一个处理器对自己Cache中的数据进行了修改之后,其他Cache中的副本数据没有被修改,数据不一致
4. 两种共享数据状态跟踪技术的实现过程
答:
1)目录式协议
2)监听式协议
实现过程:
1)目录式协议:
对于分布式存储器多处理机,由多个存储器,多个Cache,多个CPU,多个IO,一个存储器,一个Cache,和一个CPU和一个IO叫做一个处理单元,一个处理单元配备一个目录,该目录记载了该单元的存储器中的数据在哪些Cache中存在了副本,当该单元从自己的存储器读入一个数据然后又修改了之后,该单元会先把该数据从自己的Cache写回自己的存储器,然后查看自己的目录,看看我修改的数据在那些Cache中存在副本,依次修改数据,保证共享数据的一致性
2)监听式协议
所有的存储器一直监听总线,当某个存储器对共享数据进行了修改之后就对该数据被修改的信息进行广播,所有的存储器都是一直在监听总线的,收到消息之后会对比一下看看自己是否有被修改数据的副本,有的话进行修改,没有的话不进行操作
5. 两种更新协议的实现过程
答:
1)写作废协议
2)写更新协议
实现原理:
写作废协议:
当本地cache中的数据被修改之后,告诉所有的Cache你们的该数据作废了,因为被我修改了,你别用了
写更新协议:
当本地Cache中的数据被修改之后,告诉所有的Cache你们的该数据也要进行修改,因为我刚刚修改了我本地Cache的该数据
6. 对称式共享存储器系统中监听协议的实现过程
答:
对称式共享存储器系统由多个cache多个cpu,但是只有一个存储器,他们共用这个存储器,假定一个cahce和一个cpu叫做一个运算单元,假定发生数据修改的单元的cpu和cache分别叫做本地cache和本地cpu,当本地运算单元发送数据修改时,cpu写把修改之后的数据写入本地cache和存储器,然后向总线广播该数据被我修改的消息,其他运算单元看看自己的caceh中有没有改数据的副本,有的话也要进行修改,没有的话就跳过
7. 分布式存储器多处理机目录协议的实现过程
答:
分布式存储器多处理机系统有多个cache,多个cpu,多个存储器,多个目录,假定一个存储器一个cpu一个cache一个目录叫做一个运算单元,假定发生数据修改的单元的cpu和cache和存储器分别叫做本地cpu,本地cache,本地存储器,当本地运算单元发生数据修改时,先把修改的数据写回本地cache,然后查找本地目录,看看被修改的数据在哪些cache中存在副本,然后让他们都修改一下该数据在他们cache中的副本,从而保证数据一致性