计算机组成原理 - (7)

第八章CPU的结构和功能
1 CPU的 结构:首先的功能就对一条指令进行解释,指令的执行过程:
控制器的功能:取指令 分析指令 执行指令 发出各种操作命令。 控制程序输入以及结果的输出 总线管理 处理异常情况和特殊请求
运算器的功能:实现算数运算和逻辑运算
2 CPU的结构框图:
1CPU 与系统总线:基本的结构框图(ALU 寄存器 中断系统 CU 实际上除了以上的这些部分以外还有一些辅助电路,记忆各个部分连接的内部的互联机构)

3CPU的寄存器
1用户可见寄存器:(与之对应的就是用户不可见寄存器例如 流水段寄存器都是不可见的)
1通用寄存器 存放操作数 可做 某种寻址方式所需要的专用寄存器
2 数据寄存器 存放操作数(满足各种数据类型) 两个寄存器拼接存放双倍字长数据。
3地址寄存器:存放地址: 其位数应满足最大的地址范围。 用于特殊的寻址方式, 段基值 栈指针。
4 条件码寄存器: 存放着条件码 可做程序分支的依据。 如正 负 零 溢出 进位等
2第二种分法:
控制和状态寄存器
1控制寄存器
程序状态字就是保存程序中断时的状态 和恢复断点
4 控制单元CU 和中断系统
1 CU 产生全部指令的微操作命令序列(不仅仅是要产生这种为操作命令 而且要保证 先后次序)
组合逻辑设计 硬连线逻辑 (RISC 通常都是使用组合逻辑来实现的)
微程序设计 存储逻辑
中断系统
五 ALU
8.2指令周期:
一 指令周期的 基本概念:
什么是指令周期:取出并执行一条指令所需的全部时间
完成一条指令(取指 分析 --取指周期 执行 – 执行周期)【注意】这里仅仅是一个例子
2每条指令的指令周期不同:
例如NOP 取指周期 = 指令周期 ADD 取指周期等于执行周期 MUL:执行周期大于取值周期
3具有间接寻址的指令周期= 取指周期 + 间址周期 + 执行周期
4带有中断周期的指令周期 = 取指周期 +间址周期 + 执行周期 + 中断周期
5指令周期流程: 取指令 判断间址 执行周期 判断中断
6 CPU工作周期的标志:CPU访存有四种性质 取指令 取地址 存取操作数或结果 存程序断点
二指令周期的数据流:
1取指周期的数据流
2间址周期的数据流
3执行周期的数据流:不同的指令的执行周期数据流不同
4 中断周期的数据流:中断不需要使用IR
中断服务的程序 pc中
8.3指令流水:
1如何提高机器速度:
1提高访存度速度: 就是使用高速芯片 cache 多体并行 (对多个存储体进行交叉访问 CPU 在一个访问周期中能够访问多个存储体)、
2提高IO和主机之间的传送速度。 中断的方式 DMA 方式 通道方式 IO处理机方式(数据校验的过程由IO处理机完成 CPU被独立出来) 多总线的方式
3 提高运算器的速度: 高速芯片 改进算法 快速进位链
4 提高整机处理能力:高速器件 改进系统结构 开发系统的并行性
2 系统的并行性:
1并行的概念:并发:两个或是两个以上的事件在同一时间段发生例如 分时操作系统
同时:两个或是两个以上的事件在同一个时刻发生 例如:流水线方式
时间上是相互重叠的
2 并行性的等级: 过程级(程序 进程) 粗粒度 一般上是软件实现
指令级(指令之间 指令内部)细粒度 一般上是硬件实现
3 指令流水的原理:
1 指令的串行执行:(就是一条指令的取指+ 执行指令过程完成之后)
取指令 取指令部件 完成 使用串行的方式 总有一个部件是空闲的
执行指令 执行指令部件 完成
2 指令的二级流水:
若取指和执行阶段时间上是完全重叠的。 指令周期减半速度提高一倍(是在理想的情况下且流水线满负荷运转的情况下)
3 影响指令流水效率加倍的因素:(二级流水) 1执行时间>取指时间:就在取指部件和执行部件中加上一个缓冲区,取指的速度快, 就将指令放在指令部件缓冲区中,一旦执行指令部件空闲了 就到指令缓冲区中取指令。 2 条件转移指令 对指令流水的影响:必须等到上条指令执行结束之后,才能确定下调指令的地址造成时间的损失。
4指令的六级流水:

三影响指令流水线的性能的因素: 1结构相关:不同指令争用同一功能部件产生资源冲突:解决方式就是1停顿(或是叫做加入气泡) 2 是将指令存储器和数据存储器分开(哈弗结构)。 3 指令预取技术:(适用于访存周期短的情况) 2 就是数据相关:不同指令因重叠操作,可能改变操作数的读写 访问顺序。 先写后读相关:RAW 先读后写相关 WAR 写后写相关:WAW(要保障和串行执行的结果相同)
解决方式:1后推法: 2 采用旁路技术(前项通道) 3控制相关(由转移指令引发)
四:流水线性能:
1流水线性能指标:1吞吐率:单位时间内流水线所完成指令或输出结果的数量 最大吞吐率 实际吞吐率
2 加速比: 就是使用流水线技术与等功能的非流水线的速度之比。(不一定只用在流水线技术中 其他的技术也有加速比)
3效率:流水线中各功能段的利用率。 由于流水线有建立时间和排空时间 因此各功能段的设备不可能一直处于工作状态。流水线种各功能段的利用率
五流水线的多发技术:1超标量技术:每个时钟周期中内可以有并发多条独立指令 配置多多个功能部件 不能调整指令的执行顺序 通过编译优化的技术,把课并行执行的指令打配起来 2 超流水线技术:超流水线技术:就是将一个流水段在进行细分 将一个时钟周期内在分为三段。 在一个时钟周期内一个功能部件使用多次(3次)超流水关键的技术就是图通的指令在同一个时钟周期内相互的信号不能叠加。流水线的速度就是原来的三倍 3 超长指令字技术:由编译程序挖掘出指令间的潜在并行性,将多条能并行操作的指令组合成一条
具有多个操作码字段的超长指令字。(可达几百位其实就相当于一次取出多条指令,然后同时执行)
六:流水线结构: 完成一段指令分为六段,每段需要一个时钟周期。
若流水线不出现断流: 1 指令流水线:1个时钟周期出一个结果;不使用流水线技术:6个时钟周期出一个结果。在理想的情况下,6级流水的速度是不采用流水技术的6倍, 2运算流水线:(用在较为复杂的运算)浮点数加减运算:对阶 (求阶差)尾数求和,规格化三段。就是使用一个三段流水线来完成, 分段的原则是:每段的操作时间尽量一致。
8.5中断系统:中断系统的作用不是体现在输入和输出上,它的用途非常广泛,还可以用在程序调试,或是计算机系统发生异常事件冬可以使用中断系统来处理。
1概述:
1引发中断的各种因素: 1 是人为设置的中断:如转管指令, 2 程序性事故:运算的溢出 操作码不能识别, 除法非法。 3就是硬件的故障, 4IIO设备5 外部事件,用键盘上的中断键来中断现行程序,
2中断系统需要解决的问题: 中断系统的功能实现主要是软件和硬件的方式来实现的 不同的计算机对中断系统的软硬件的划分是不一样的。(主要是依据与要求的中断系统的速度 设计的复杂性和设计的灵活性)
二中断请求标记和中断判优逻辑。
1各中断源如何向CPU提出请求。中断请求标记:一个请求源 一个INTR中断请求标记触发器 多个INTR 组成中断请求标记寄存器。
2中断判优逻辑。就是有多个中断源 怎么响应 响应哪一个 将中断源产生事件的重要性 对中断源进行分级,这个分级就是中断源的优先级。 通过中断判优逻辑来判断哪个中断源的优先级最高,就响应那个中断源的中断。两种方法:
1硬件实现:排队器现在的计算机中大多数都是使用硬件来实现的。两种方式 1链式排队器:分散在各个中断源的接口电路中。 2就是集中起来 可能是CPU中 或是CPU外的一个判优的部件中,2 使用软件的方式来实现:使用程序查询的方式。
三:中断服务程序的入口地址的寻找 两个方式:
1硬件向量法 使用跳转指令来跳转到中断服务成序的入口地址, 或者是在内存 中保存入口地址。(这个输入就是排队器的输出 简单但是不灵活)
2 软件查询法:查找中断程序的入口地址实际上是执行中断识别程序来进行的。
四:中断响应:
1 响应中断的条件:允许中断触发器:EINT = 1 的时候允许CPU响应中断。
2 响应中断的时间:指令执行周期结束时刻由CPU发出查询信号。中断响应的时间一般是指令执行完成之后, 但是有些指令太复杂也会为了及时响应中断 可以在指令的执行过程中进行中断响应。
3 中断隐指令: 1保护程序断点:(两种方式)断点保存到特定地址(0号地址)
内 断点进栈 2 寻找服务程序的入口地址 :(上面家讲过了)向量地址—>PC (硬件向量法)中断识别程序入口地址 M —>PC (软件查询法) 硬件关中断(多重中断 为了保存中断现场)
隐指令:是指下面的三个操作都是由计算机的硬件来完成的 但是并不是在具体的某一条指令的驱动下完成的【注意】中断隐指令不是计算机指令系统中的一条指令 但是在相应中断的 时候硬件操作都要进行。
五:保护现场和恢复现场
1 保护现场实际上包含了两部分的内容。一方面的内容是保护断点。(由中断隐指令来做:保存断点 寻找入口地址 硬件关中断)另一方面就是CPU中的某一些寄存器在中断的时候会用到。这些寄存器的内容需要保存将来进行中断返回的时候 主程序还会用到。 (中断服务程序完成)
2 恢复现场 中断服务程序来 完成 中断服务程序可能包含的内容:保护现场(主要是保护寄存器的内容 PUSH来实现 使用栈来实现)其他的服务程序 (视不同请求源而定) 恢复现场(POP )中断返回IRET指令
六:多重中断
1多重中断的概念:
2 实现多重中断的条件:1提前设置开中断指令 2 只有优先级别高的中断源才有权中断优先级别低的中断源。【注意】中断谁就返回谁
3 屏蔽技术使用中断屏蔽技术通过设置中断屏蔽字来改变中断服务的优先级,从而提高中断响应的灵活性。 1屏蔽触发器的作用:MASK = 0 表示未屏蔽 INTR能够设置为1 MASK = 1表示中断被屏蔽INTP = 0就不能被排队器选中 2 屏蔽字 3屏蔽技术可以改变处理优先等级:响应优先级 不可改变 处理优先级:可改变(通过重新设置屏蔽字) 4屏蔽技术的其他作用:可以人为地屏蔽某个中断源的请求 5新屏蔽字的设置需要提前开中断(为了能够实现多重中断)因此设置中断屏蔽字要在开中断之前
4 多重中断的断点保护: 1 断点进栈 中断隐指令完成 2 断点存入“0”地址(不一定是物理的0地址 可能是一个给定的地址)中断隐指令的完成 中断周期 0 —>MAR 命令存储器的写 PC —>MDR断点 —> MDR (MDR)—>存入存储器中
三次中断 三个断点都存入“0”地址 如何保护断点的内容不丢失? 3程序断点存入“0”地址的断点保护。
第九章:控制单元的功能:
9.1微操作命令分析:
完成一条指令分为四个工作周期:取指周期 — 间址周期 — 执行周期 — 中断周期
1 取指周期:要做哪些微操作。PC — MAR — 地址线 第五步就是:将IR的操作码放到CU中译码来确定做什么操作。
2 间址周期:(有间址周期说明是间接寻址)指令形式地址—MAR中 将IR中的地址码部分送到MAR中
3 执行周期:指令不一样 执行的操作也不一样分为三种(非访存指令 +访存指令 + 转移指令): 1非访存指令:CLA 清A 0—>ACC中,一个微指令就能完成操作 COM:取反(将ACC中的值按位取反) SHR:算数右移两条操作就是将ACC右移一位 + 将符号位进行填充, 2 访存指令:加法指令 和存数指令 和取数指令 3 转移指令: 无条件转移 条件转移
4 三类指令的指令周期:非访存指令周期(不需要间接寻址 因为不需要访存 ):只有取指周期+ 执行周期; 直接访存的指令周期:取指周期+ 执行周期 间接访存指令周期:取指周期 + 间址周期 + 执行周期; 转移指令周期:取指周期 + 执行周期; 间接转移指令周期: 取指周期 + 间址周期 + 执行周期
四:中断周期:做三件事 保存断点 形成中断服务程序的入口地址 关中断
程序段断点存入“0”地址,程序断点进栈。
9.2控制单元的功能
1控制单元的外特性
1时钟:CU受时钟信号控制一个时钟脉冲 发送一个操作命令或是一组同时执行的操作命令 2 指令寄存器:OR(IR) —> CU 控制信号与操作码是有关的 3 标志CU受标志控制 4 外来信号 如 中断请求 信号 和 总线请求信号
2 输出信号。CPU内的各种控制信号, 和送至控制总线的信号
2控制信号举例: 1不采用CPU内部总线的方式 PC 和IR @ 是间接寻址方式
ALU是组合逻辑电路
3 多级时序系统:1机器周期的概念:所有的指令的执行过程中的一个基准时间 2 确定机器周期考虑的因素:每条指令执行的步骤+每一步骤所需要的时间 基准时间的确定:
一完成最复杂指令功能的时间为准 :一般是访问依次存储器的时间为准(最复杂)若 指令字长 = 存储字长 那么 取值周期 = 机器周期 2 时钟周期(节拍 状态): 一个机器周期可完成若干个微操作 每一个微操作需要一定的时间 将一个机器周期分为若干个时间相等的时间段(节拍 状态 时钟周期)时钟周期是控制计算机操作的最小单位时间 用时钟周期控制产生一个或是几个微操作命令 多级时序系统:就是机器周期 节拍(状态)组成 的多级时序系统 一个指令周期包含若干个机器周期; 一个机器周期包含若干个时钟周期
4 机器的速度和主频的关系:机器的主频越快机器的速度也越快 但是这样的说法是有前提条件的。 就是机器周期所含时钟周期数相同的前提下,两机平均指令执行的速度之比等于两机主频之比。 机器速度不仅和主频有关 海域机器周期所含的时钟周期(主频的倒数)数以及指令周期中所含的机器周期数有关,
四:控制方式
产生不同的微操作命令序列所用的时序控制方式: 1同步控制方式:任一微操作均由统一基准时标的时序信号控制(统一的定宽定距的时标)(1)采用定长的机器周期:一最长的微操作序列和最复杂的微操作作为标准(可能会造成时间的浪费)(2)采用不定场的机器周期:机器周期内的节拍数不等。(3)采用中央控制和局部控制相结合的方式。一部分是由中央控制节拍来控制 延长的部分是由局部控制节拍来控制:局部控制的节拍宽度和中央控制的节拍宽度是一致的。 2 就是异步的方式:没有定宽定距的时钟 ,无基准时标信号 无固定的周期节拍和严格的时钟同步:使用 握手信号或是应答信号来控制 3 联合控制方式实际上就是同步和异步的相结合。4人工控制方式(1)Reset (2)连续和单条指令执行转换开关。(3)符合停机开关。
第十章:控制单元的设计:指令的周期:四个阶段(取指周期 间址周期 执行周期 中断周期)
1组合逻辑设计:CU的外特性: 节拍信号:由节拍信号来控制微操作命令发出的时间
2微操作的的节拍安排:采用的同步控制的方式 一个机器中期内有三个节拍(时钟周期)CPU内部是采用的非总线方式:所有的控制信号都是CU产生的,来控制ALU做相应的算数或是逻辑运算。 (1)安排微操作时序的原则:1微操作的先后顺序不得随意修改。 2 被控对象不同的微操作 尽量在一个节拍内完成。 3占用时间较短的微操作 尽量安排在一个节拍内完成, 并允许有先后顺序。间址周期的地址是在IR中的地址码部分给了MAR
3 组合逻辑的设计步骤: 1 列出操作时间表 2 写出微操作命令的最简表达式
2 微程序设计:组合逻辑设计优缺点是:思路简单 明了 但是电路较为复杂一个控制信号需要单独的电路来完成控制信好的生成 修改起来较为复杂 困难。设计较为容易 控制起来也较为容易的设计方式:就是微程序设计的方式,
1微程序设计的思想的产生:1951年的 英国剑桥大学教授 Wilkes:完成一条机器指令分为多个微操作命令 并行执行
2 微程序控制单元框图及工作原理:
3 就是微指令的编码方式:1 直接编码(直接控制方式)方式:不需要译码速度快 2 字段直接编码方式:将伪指令的控制字段分为若干段,每段经译码后发出控制信号。 3 字段间接编码方式 4 混合编码 5 其他方式
4 微指令序列地址的形成,:1微指令的下地址字段指出 2 根据机器指令的操作码形成。 3 就是增量计数器(部分指令的下地址字段可以省略)4就是分支转移:操作控制字段 转移方式 转移地址(转移方式:指明判判别条件 转移地址:指明转移成功后的去向。)5通过测试网络6由硬件产生微程序入口地址7 后序微指令地址的形成方式的原理图。
5 微指令格式:1水平型微指令(一次能定义并执行多个并行操作)如 直接编码、字段直接编码、字段间接编码、直接和字段混合编码。 2 垂直型微指令:就是类似机器指令操作码的方式 由微操作吗字段规定微指令的功能 3 两种微指令的格式的比较:四个不同
6 静态微程序设计和动态的微程序设计:静态:微程序无序改变 采用的ROM;动态:通过改变微指令和微程序改变机器指令 有利于仿真 采用EPROM
7 毫微程序设计:微程序设计:用微指令来解释机器指令 ; 毫微程序设计:用 毫微程序解释微指令。毫微指令与微指令的关系好比是微指令和机器指令的关系,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上山打卤面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值