为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 超强计算机组成原理教程 第八章 CPU的结构与功能

超强计算机组成原理教程 第八章 CPU的结构与功能

2018-03-24 16页 doc 33KB 50阅读

用户头像

嘉然今天吃什么

暂无简介

举报
超强计算机组成原理教程 第八章 CPU的结构与功能超强计算机组成原理教程 第八章 CPU的结构与功能 计算机组成原理—CPU的结构与功能 第八章 CPU的结构与功能 8.1 CPU的结构 8.1.1 CPU的功能 冯•诺依曼机指令的执行过程: • 取指令 • 分析指令 • 执行指令 8.1.2 CPU结构框图 主要包括ALU、寄存器、CU和中断系统。 CPU ALU 寄存器 控数地中断 制据址CU 系统 总总总 线 线 线 系统总线 图8.1 使用总线的CPU 1 计算机组成原理—CPU的结构与功能 ALU 内 部状态标志 寄存器 , , 移...
超强计算机组成原理教程 第八章 CPU的结构与功能
超强计算机组成原理教程 第八章 CPU的结构与功能 计算机组成原理—CPU的结构与功能 第八章 CPU的结构与功能 8.1 CPU的结构 8.1.1 CPU的功能 冯•诺依曼机指令的执行过程: • 取指令 • 分析指令 • 执行指令 8.1.2 CPU结构框图 主要包括ALU、寄存器、CU和中断系统。 CPU ALU 寄存器 控数地中断 制据址CU 系统 总总总 线 线 线 系统总线 图8.1 使用总线的CPU 1 计算机组成原理—CPU的结构与功能 ALU 内 部状态标志 寄存器 , , 移位 , 数取反 据 总 CU 算术和布尔逻辑 线 中断 控制信号 系统 图8.2 CPU的内部结构 8.1.3 CPU的寄存器 1、用户可见寄存器 • 通用寄存器——可以存放数据,也可以存放地址(用于寻址) • 数据寄存器——用于存放数据 • 地址寄存器——用于存放d地址 • 条件代码寄存器——用于存放条件代码(标志),如Z、O、C等 y 2、控制和状态 • MAR——存储器地址寄存器 • MDR——存储器数据寄存器 • PC——程序计数器 • IR——指令寄存器 3、举例(参见图8.3和图8.4) 不同CPU的的寄存器组织结构一般不同。 1)Zilog Z8000 • 16个通用寄存器(其中2个作堆栈指针SP),寄存器可作8位 运算或32位运算。 2 计算机组成原理—CPU的结构与功能 • 5个与程序状态有关的寄存器:标志控制器(FCW)、PC段和PC偏移、P.S.A段和P.S.A偏移(辅助PC)。 2)Intel 8086 • 通用寄存器:AX、BX、CX、DX • 指针和变址寄存器:SP、BP、SI、DI • 段寄存器:CS、DS、SS、ES • 程序状态寄存器:IP、F 3)Motorola MC68000 • 8个32位数据寄存器:D,D 07 //• 9个32位地址寄存器:A,A、A,其中A为用户堆栈指针,A07777为管理堆栈指针。 • 程序状态寄存器:PC(32位)、F(16位) 4)升级的兼容性问题 Z8000和Intel8086均为16位(寄存器也是16位),发展为32位后,一般采取扩展的方式保持向下兼容。 (参见图8.3和图8.4) 8.1.4 控制单元CU和中断系统 控制单元CU提供完成机器全部指令操作的微操作命令序列。形成微操作命令序列有两种方法:1)组合逻辑方法(硬连线逻辑);2)微程序设计方法(存储逻辑)。 中断系统主要用于处理计算机的各种中断事件。 8.2 指令周期 8.2.1 指令周期的基本概念 指令周期:CPU每取出并执行一条指令所需要的全部时间。包括取指周期(取指、分析)和执行周期两部分。 • 不同指令的操作功能不同,指令周期也不相同。如: 3 计算机组成原理—CPU的结构与功能 JMP X ;直接给出转移地址,无需访存 ADD X ;给出操作数地址,需访存取数(访存子周期) MUL X ;给出操作数地址,需访存取数,同时操作费时 ADD [X] ;给出操作数间接地址,需间接访存取数(访存2次), ;即出现间址子周期 • 实际上,CPU在执行完一条指令后,需要发出中断查询信号,即需附加中断子周期。 完整的指令周期包括取指、间址(含直址)、执行、中断子周期。 取指周期 Yes 有间址? 间址周期 No 执行周期 Yes 有中断? 中断周期 No 图8.8 指令周期流程 在中断周期中,需要保存断点地址,取中断入口地址?PC。 这四个子周期可分别用FE、IND、EX、INT四个标志表示对应的操作,当为“0”时表示无对应的操作;当为“1”时表示有对应的操作;由“1”变为“0”时表示对应的操作结束。 4 计算机组成原理—CPU的结构与功能 8.2.2 指令周期的数据流 1、取指周期的数据流 ? MAR ? 地址总线 ? CU发存储器读命令 ? 存储器PC内容 内容 ? 数据总线 ? MDR ? IR (? MDR ? 数据总线 ? IR —— MDR位于存储器内) 2、间址周期的数据流 IND,1:MDR ? Ad(MDR)? MAR ? 地址总线 ? CU发存储器读命令 ? 存储器内容 ? 数据总线 ? MDR 3、执行周期的数据流 不同指令执行的操作不同,可能涉及寄存器间数据传送、存储器读/写操作、ALU操作等。 4、中断周期的数据流 INT,1:SP内容? MAR ? 地址总线 ? PC内容 ? MDR ? 数据总线 ? CU发存储器写命令 ? 存储器写操作; 此外,还应获取中断向量,在获取中断程序入口地址 ? PC。 8.3 指令流水 提高机器处理能力的途径: 1)提高期间的性能 包括速度、集成度、可靠性、价格等 2)改进系统的结构,开发系统的并行性 • 并行性包含同时性和并行性两方面 • 同时性指多个事件在同一时刻发生 • 并行性指多个事件在同一时间段发生,在时间上存在重叠; • 并行性体现在不同的等级上:作业级或程序级、任务级或进程级、指令间级和指令内部级。 作业级或程序级、任务级或进程级称为粗粒度级(过程级)并行 5 计算机组成原理—CPU的结构与功能 性,一般在多个处理机上分别运行多个进程。 指令间级和指令内部级称为细粒度级(指令级)并行性,指在处理机的操作级和指令级的并行性,而指令流水是一项重要的技术。 8.3.1 指令流水原理 指令流水类似于工厂的装配线,即不同的产品在装配线上的不同阶段同时装配,多个产品在装配时间上具有重叠性。 完整执行一条指令可以分为多个阶段,程序的执行是一个周而复始的重复过程。 取指令1 执行指令1 取指令2 执行指令2 取指令3 执行指令3 图8.13 指令的串行执行 实际上,在取指令时,执行部件是空闲的,在执行指令时,取指令部件基本上是空闲的。可以考虑在执行部件执行指令的同时取下一条指令,即两条指令的执行过程在时间上有重叠(即指令流水)。 取指令1 执行指令1 取指令2 执行指令2 取指令3 执行指令3 取指令4 执行指令4 图8.14 指令的二级流水 • 指令二级流水可以大大提高CPU的处理速度,但并不是成倍增加。 1)指令的执行时间一般大于取指时间; 2)当遇到转移指令时,必须等到本指令执行结束后才能知道下一条指令的地址。 • 为进一步提高处理速度,将处理过程分解为以下的几个阶段: ? 取指(FI) ? 指令译码(DI) 6 计算机组成原理—CPU的结构与功能 ? 计算操作数地址(CO) ? 取操作数(FO) ? 执行指令(EI) ? 写操作数(WO) 假设上述六个阶段的操作时间是相同的,则可得到下图的指令六级流水时序: t FI DI CO FO EI WO 指令1 FI DI CO FO EI WO 指令2 FI DI CO FO EI WO 指令3 FI DI CO FO EI WO 指令4 FI DI CO FO EI WO 指令5 FI DI CO FO EI WO 指令6 FI DI CO FO EI WO 指令7 FI DI CO FO EI WO 指令8 图8.15 指令六级流水时序 在指令六级流水中,并非每一条指令都包含上述六个阶段。同时FI、FO和WO均涉及存储器操作,若出现冲突就无法并行处理。 8.3.2 响应流水线性能的因素 1、访存冲突 避免方法: ? 设置两个存储器系统分别放置指令和数据 ? 采用预取指令技术——设置预指令队列,在执行指令过程中利用存储器空闲时间取下一条指令,只要预指令队列有空,就可以取下 7 计算机组成原理—CPU的结构与功能 一条指令。 2、相关问题 指程序中相近指令之间出现某种关联关系,使得指令流出现停顿。 ? 控制相关 当一条指令需要等到前一条指令(或前几条指令)作出转移方向的决定后才能进入流水线,即产生控制相关。 t FI DI CO FO EI WO 指令1 FI DI CO FO EI WO 指令2 FI DI CO FO EI WO 指令3 FI DI CO FO 指令4 FI DI CO 指令5 FI DI 指令6 FI 指令7 FI DI CO FO EI WO 指令15 FI DI CO FO EI 指令16 图8.16 条件转移堆指令流水操作得影响 ? 数据相关 指几条指令共用了同一个存储单元(或寄存器)的内容时所发生的关联。 可以采取旁路技术部分解决。 数据相关主要有读—写相关、写—读相关和写—写相关。 8 计算机组成原理—CPU的结构与功能 8.3.3 流水线的多发技术 设法在一个时钟周期内,产生多条指令的结果。 1、超标量技术 • 在每个时钟周期内可以同时并发多条独立指令,即以并行操作的方式将两条或两条以上的指令编译并执行。 • 超标量处理机内部配置有多个功能部件和指令译码电路,以及多个寄存器端口和总线。 • 条件:并发执行的指令不能相关。 2、超流水线技术 超流水线技术是将一些流水线寄存器插入流水线段中,好比将流水线分道。 3、超长指令字技术 •• 超长指令字处理具备多个处理部件,能同时处理多条指令; • 通过编译器把程序中能并行处理的指令组成一条具有多个操作码字段的超长指令,该指令控制处理机的多个独立工作的功能部件; • 对优化编译器要求很高,对Cache容量要求很大。 IF ID EX WR IF ID EX WR ,a,普通流水线 ,b,超标量流水 IF ID EX WR IF ID EX WR ,c,超流水线 ,d,超长指令 图8.17 四种流水线技术比较 9 计算机组成原理—CPU的结构与功能 8.3.4 流水线结构 1、指令流水线结构 修指地取操回 取改令址操作写指指 译形作执结令令指 码成数行果部针部部部部部 部件 件 件 件 件 件 件 图8.18 指令流水线结构 2、运算流水线结构 对尾规 阶锁锁锁数格 功存存存加化能 器 器 器 部部部 件 件 件 图8.19 浮点数加法运算操作流水线 8.4 中断系统 8.4.1 概述 1、引起中断的各种因素 ? 人为设置中断 人为在程序中调用中断(软中断) ? 程序性中断 出现定点溢出、浮点溢出、操作码不能识别、除数0等。 ? 硬件故障 ? I/O设备 10 计算机组成原理—CPU的结构与功能 ? 外部事件 如用户通过键盘来中断现行程序的运行。 2、中断系统需要解决的问题 ? 各中断源如何向CPU提出中断请求; ? 当多个中断源同时提出中断请求时,中断系统如何确定优先响应哪个中断源的请求; ? CPU在什么条件、什么时候、以什么方式来响应中断; ? CPU响应中断后如何保护现场; CPU响应中断后,如何停止现行程序的执行而转入中断服务程? 序的入口地址; ? 中断服务结束后,CPU如何恢复现场,如何返回原程序的间断处; ? 在中断处理过程中又程序新的中断请求时,CPU该如何处理。 8.4.2 中断请求标记和中断判优逻辑 1、中断请求标记 在中断系统中必须设置中断请求标记触发器(简称中断请求触发器,记做INTR),当触发器为“1”时,表示相应的中断源有请求。 1 2 3 4 5 n 内掉过阶非光打 存上法电印电 热 读除机机溢 写 法 输输校 验入 出 错 误 图8.21 中断请求标记寄存器 2、中断判优逻辑 1)硬件排队 •• 链式排队器 11 计算机组成原理—CPU的结构与功能 • CPU内部排队器 INTP1 INTP2 INTP3 INTP4 1 1 1 1 & & & 1 INTR1 INTR2 INTR3 INTR4 最优先级 次优先级 再次优先级 最低先级 中断请求 中断请求 中断请求 中断请求 图8.22 集中在CPU内部的排队器 2)软件排队 是 转A的服务 是否A请求? 程序入口地址 否 是 转B的服务 是否B请求? 程序入口地址 否 是 转C的服务 是否C请求? 程序入口地址 图8.23 按A>B>C……优先级别的软件排队 8.4.3 中断服务程序入口地址的寻找 1、硬件向量法 利用硬件产生中断向量地址,再由向量地址找到中断服务程序入 12 计算机组成原理—CPU的结构与功能 口地址。 中断向量 主存 „„ 入口地址200 12H 向量地址 形成部件 入口地址300 向量地址 13H 入口地址400 „„ 14H 来自中断 排队器输出 图8.25 中断向量地址表 图8.24 CPU内的向量地址形成部件 由向量地址找到服务程序入口地址有两种方法: 1)在向量地址内存放一条跳转指令(如图5.40); 2)设置向量地址表,向量地址所对应的存储单元的内容为中断服务程序的入口地址。 2、软件查询法 用软件寻找中断服务程序的入口地址,如图8.23所示。 8.4.4 中断响应 1、中断响应的条件 • 中断允许触发器 EINT为“1”(可用指令置“1”或“0”) • 有中断请求 2、响应中断的时间 在指令执行周期结束时刻响应中断 3、中断隐指令 ? 保护程序断点(保存PC的值) ? 寻址中断服务程序入口 •• 硬件向量法(中断响应周期中,CPU获取中断地址,然后送PC) • 软件查询法 ? 关中断(进入中断程序后防止新中断的干扰) 13 计算机组成原理—CPU的结构与功能 Q Q PC INT EINT S R S R & 1 向量地址 形成部件 ?1 排队器 图8.27 硬件关中断示意图 8.4.5 保护现场和恢复现场 ? 保护程序断点(硬件自动完成) ? 保护CPU内部的寄存器(用户编程实现) 8.4.6 中断屏蔽技术 1、多重中断的概念 • 若CPU在执行某个中断服务程序时,对任何新的中断请求均不响应,必须等到当前中断服务程序执行结束后才响应,称为单重中断。 • 若CPU在执行某个中断服务程序过程中,CPU又响应另一个新的中断请求,使得CPU暂时中断正在执行的中断服务程序,转去执行新的中断服务程序,称为多重中断。 k l m k+1 l+1 m+1 第一次第二次第三次 中断 中断 中断 14 计算机组成原理—CPU的结构与功能 2、实现多重中断的条件 1)在中断服务程序中提前设置“开中断”指令(保护现场后) 2)优先级别高的中断有权中断优先级别低的中断 3、屏蔽技术 中断屏蔽指用户通过指令禁止和开放某个或某几个中断的技术。 1)屏蔽触发器与屏蔽字 当中断屏蔽触发器MASK,1时,即使对应的中断源的INTR有效,ii该中断请求将被屏蔽掉,如图8.30所示。 INTP INTP INTP INTP1234 1 1 1 1 1 & & & INTR MASK MASK INTR1111 INTR MASK INTR MASK 2222 图8.30 具有屏蔽功能的排队器 每一个中断请求触发器均有与之对应的中断屏蔽触发器。所有中断屏蔽触发器组合起来构成一个中断屏蔽寄存器。 中断屏蔽寄存器的内容称为中断屏蔽字。中断屏蔽字与中断源的优先级别有一一对应的关系。 表8.1 中断优先级与中断屏蔽字的关系 优先级 屏 蔽 字 1 1111111111111111 2 0111111111111111 3 0011111111111111 „ „ 15 0000000000000011 16 0000000000000001 15 计算机组成原理—CPU的结构与功能 2)屏蔽技术可以改变中断优先级别 例如,将屏蔽字设为0000101111111111,则中断1、2、3、4、6被屏蔽,若中断5和6同时产生请求,则中断6得到CPU响应。若中断6响应后,将屏蔽字改为0000001111111111,则中断5得到CPU响应。 3)屏蔽技术的其他响应 可以在某个时间段内,单独禁止CPU对某个中断请求的响应。 4)多重中断的断点保护 一般来讲,应使用堆栈来对多重中断断点的保护。 k l m SP k+1 l+1 m+1 m+1 l+1 k+1 (SP) 第一次第二次第三次„ „ 中断 中断 中断 16
/
本文档为【超强计算机组成原理教程 第八章 CPU的结构与功能】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索