计算机组成原理(第八章: CPU的结构和功能)
2017-06-14 19:06
555 查看
第八章: CPU的结构和功能
1.CPU的功能1.取指令 2.分析指令 3.执行指令 CPU必须具有控制程序的顺序执行(指令控制)产生完成每条指令所需的控制命令(操作命令)对各种加以时间上的控制(时间控制)对数据进行算术运算和逻辑运算(数据加工)以及处理中断的能力 CPUI必须有一个寄存器专用于存放当前指令的地址, 要分析指令, 必须有存放当前指令的寄存器和对指令操作进行译码的部件, 要执行指令, 必须有一个能发出各种操作命令序列的控制部件
2.CPU的寄存器
首先我们来看一下寄存器的形式, 首先第一类为用户可见的寄存器, 这种寄存器是面向用户的, 用户可以对这些寄存器进行编程, 并且以优化CPU的寄存器而减少主存的访问次数. 第二类是属于 控制和状态寄存器, 用户不呢个对这些编程, 因为其已经固定好功能, 用来控制CPU的操作. 或者控制程序的执行. 用户可见的寄存器 1.通用寄存器: 可以满足设计者指定许多功能. 例如存放操作数, 存放数据地址 2.数据寄存器: 数据寄存器用于存放操作数, 其位数满足多数数据类型的数值范围 3.地址寄存器: 用于存放地址 4.条件寄存器: 存放条件码, 对用户来说是透明的, 其中条件码是CPU根据运算结果由硬件设置的. 控制和状态寄存器 1.MAR: 存储器地址寄存器, 存储单元的地址 2.MDR: 存储器数据寄存器, 最近从存储器读出的数据或者从CPU准备存放的数据 3.PC: 程序计数器, 存放现行指令的地址,具有具有计数功能, 4.IR: 指令寄存器, 存放当前欲执行的指令. 大概流程: 现在将指令从PC送至MAR, 启动存储器作读书操作, 存储器就可以将指定地址单元内的指令读至MDR , 再由MDR送至IR.
3.指令周期
基本概念: 指令周期: CPU每去除并执行一条指令所需要的全部时间称为指令周期. 取值周期: 在取值周期完成取指令和分析指令的操作. 执行周期: 执行阶段完成执行指令的操作 中断周期: 当CPU采用中断的方式与I/O设备进行设备信息交换时, 在执行指令阶段CPU都要发出检测中断信号来看谁提出了中断, 如果有请求, 就进入中断响应阶段.
4.指令周期的数据流
http://blog.csdn.net/u011240016/article/details/52733857 没这个心机写哈, 别人总结得很好!借鉴一下~~~
5.指令流水
首先说说其原理把, 什么是流水呢, 其实很简单, 就是相当于工厂的流水线, 首先我们观察非流水是怎样的, 有4个工人, 他们完成一个任务的话, 需要4个人同时待命,1号工人完成第一项任务, 但是234号工人在待命什么都没干, 然后到2号工人完成任务, 134号工人什么也不做在待命 ,如此类推一直到4号工人完成自己的任务. 从上面那个故事可以发现, 有一个人在工作, 但是另外3个人就待命了什么也不做, 这样很浪费时间的资源. 所以流水线就产生了. 流水线工作流程: 装配线利用了在装配的不同的阶段其装配过程不同这一特点, 使不同产品处在不同的装配段上, 即每个装配同时对不同产品进行加工. 因为CPU无非工作就是取指令, 执行指令, 所以如果采用多级流水处理任务的话, 如果执行部件空闲, 就将暂存的指令传给执行部件执行. 与此同时, 指令部件又可取下一条指令并暂存起来. 但是发现了2个问题: 1.指令的执行时间一般大于取址时间, 因此取址阶段可能要等待一段时间, 也就是存放在指令部件的缓冲区的指令不能立即传给执行部件, 缓冲区不能空出. 2.当遇到条件转移指令的时候, 下一条的指令是未知的, 因为必须等待到执行阶段结束后, 才能知道指令是否成立, 从而执行下一条指令, 造成时间损失. 影响流水线的因素 1.结构相关: 当多条指令进入流水线之后, 硬件资源满足不了指令重叠的执行要求产生的 2.数据相关: 当指令在流水线重叠执行时, 当后继指令需要用到前面指令的执行结果时产生的. 3.控制相关: 当流水线遇到分支指令和其他改变PC值的指令时产生的.
6.中断系统
中断的作用毋庸置疑, 简直一把神剑, 实现了各个处理器之间的信息交流和任务切换. 引起中断的因素: 1.人为设置中断(就好像你编程一样) 2.程序性事故(各种溢出, 各种非法操作) 3.硬件故障(多得是拉) 4.I/O设备提出的中断请求(CPU与I/O设备之间的信息交互) 5.外部事件(用户通过键盘实现的中断,具体我也不知道) OK,当有中断来时, CPU到底需要怎么handle这个中断请求 按照书上的例子就是: 这么多中断请求,我该选择那个, 什么时候去应答,应答前该做什么, 华友如何回复等等问题.
6.1中断请求标记和中断判优逻辑
中断请求标记: 为了判断中断请求源提出请求, 在中断系统中必须设置中断请求标记触发器. 简称中断请求触发器. 记作"INTR", 当其状态为1时,表示有中断源请求, 这个触发器呢, 既可以才能在于CPU的中断系统中,也可以分散到各个中断源中. 中断判优逻辑: 在任意一个时刻, 只能响应一个中断源的请求, 中断系统必须按其优先顺序给予回应. 1.硬件排队:一种链式排队器. 一种是设在CPU内, 当最高优先级的中断源有请求时INTR=1, 就可以封住比它等级低的中断源请求. 2.软件排队: 通过编写查询程序来实现. 按照中断源的优先级顺序从高到低查询各个中断源是否有请求.
6.2中断服务程序入口地址的寻求
由于不同的中断源对应不同的中断服务程序, 所以准确找i到 服务程序的入口地址是中断的核心问题 1.硬件向量法: 利用硬件产生向量地址, 再由向量地址找到中断服务程序的入口地址. 2.软件查询法: 用软件寻找中断服务程序的入口地址, 安排一条转移指令, 直接指向此中断源的中断服务程序入口地址, 机器便能自动进入中断处理.
6.3中断响应
中断隐指令: CPU在响应中断后, 进入中断周期, 在中断周期内CPU要完成的事. 1.保护程序断点: 将当前程序计数器PC的内容保存到存储器中, 可以存入堆栈. 2.寻找中断服务程序的入口地址: (6.2讲过了) 3.关中断: 当CPU进入了中断周期, 就要组织别的中断请求再次发送而发生干扰. 所以就要关闭CPU响应中断请求的功能.
6.4保护现场
包括: 保护程序断点和 保护CPU内部寄存器内容 恢复现场指的是在中断返回之前, 必须将寄存器的内容恢复到中断处理前的状态.
6.5中断屏蔽技术
这个技术主要应用于多重中断. "多重中断"到底是什么鬼: 当CPU正在执行一个中断服务程序时, 另外一个中断源又提出了新的中断请求, 而CPU又响应了这个请求, 暂时停止正在运行的服务程序, 转去执行新的中断服务程序. 实现"多重中断", 要具备以下条件. 1.提前设置"开中断"指令: 若CPU想响应新的中断请求, 就必须开中断(因为之前关了嘛) 2.优先级别高的中断源有权中断级别低的中断源 3.屏蔽技术: 屏蔽触发器和屏蔽字:程序中断接口电路中,完成触发器D,中断请求触发器INTR和屏蔽触发器MASK。当中断源被屏蔽时(MASK=1),此时即使D=1,中断查询信号到来时刻只能将INTR置“0”,CPU接收不到该中断源的中断请求,即它被屏蔽。若该中断源未被屏蔽(MASK=0),当设备工作已完成时(D=1),中断查询信号则将INTR置“1”,表示该中断源向CPU发出中断请求,该信号送至排队器进行优先级判断。显然,对于每个中断请求触发器就有一个屏蔽触发器,将所有屏蔽触发器组合在一起,便构成了一个屏蔽寄存器。屏蔽寄存器的内容称为屏蔽字。屏蔽字与中断源的优先级是一一对应的。
相关文章推荐
- 计算机组成原理与体系结构---计算机(CPU)结构
- 微机原理、计算机组成原理与计算机体系结构之间的关系
- [置顶] [计算机组成原理][R-I-J型指令CPU设计实验总结]
- 第八章 CPU的结构和功能
- 计算机组成原理与体系结构---层次化储存结构
- 计算机网络,操作系统,数据结构,算法设计,计算机组成原理,数据库,概率论 零散知识库
- 【软测试】(两)计算机组成原理-cpu
- 《软件设计师》——计算机组成原理与体系结构
- 中山大学计算机组成原理多周期CPU实验
- 计算机组成原理第一章 研究内容 层次结构 应对系统复杂的重要方法--抽象
- 用ModelSim、Mars和Verilog做计算机组成原理CPU实验注意事项
- 计算机结构和组成原理
- 计算机组成原理:流水CPU
- 【计算机组成原理系列学习三】关于CPU、指令集、架构以及芯片
- 【软考】(二)计算机组成原理-cpu
- 计算机虚拟机运行原理(结构组成)
- 【计算机组成原理】指令系统体系结构
- 计算机组成原理 及CPU,硬盘,内存三者的关系
- 计算机组成原理--CPU性能
- 计算机组成原理、操作系统、数据结构和计算机网络--转