CPU的结构和功能_第1页
CPU的结构和功能_第2页
CPU的结构和功能_第3页
CPU的结构和功能_第4页
CPU的结构和功能_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章CPU的结构和功能8.1CPU的结构8.3指令流水8.2指令周期8.4中断系统大连理工大学软件学院赖晓晨改编8.1CPU的结构一、CPU的功能取指令分析指令执行指令,发出各种操作命令控制程序输入及结果的输出总线管理处理异常情况和特殊请求1.控制器的功能2.运算器的功能实现算术运算和逻辑运算大连理工大学软件学院赖晓晨改编二、CPU结构框图PCIR指令控制操作控制时间控制数据加工处理中断ALU寄存器中断系统1.CPU与系统总线CU时序电路寄存器ALU

中断

系统CUCPU控制总线数据总线地址总线大连理工大学软件学院赖晓晨改编2.CPU的内部结构算术和布尔逻辑取反移位状态标志内部数据总线寄存器CU中断系统ALU控制信号…CPU大连理工大学软件学院赖晓晨改编1.用户可见寄存器(1)通用寄存器三、CPU的寄存器存放操作数可作某种寻址方式所需的寄存器(2)数据寄存器存放操作数(满足各种数据类型)两个寄存器拼接存放双倍字长数据(3)地址寄存器存放地址,其位数应满足最大的地址范围用于特殊的寻址方式段基值栈指针(4)条件码寄存器存放条件码,可作程序分支的依据如正、负、零、溢出、进位等大连理工大学软件学院赖晓晨改编2.控制和状态寄存器(1)控制寄存器PC控制CPU操作(2)状态寄存器状态寄存器其中MAR、MDR、IR

用户不可见存放条件码PSW寄存器存放程序状态字

PC

用户可见3.举例Z80008086MC68000MARMMDRIR大连理工大学软件学院赖晓晨改编四、控制单元CU和中断系统1.CU产生全部指令的微操作命令序列组合逻辑设计微程序设计硬连线逻辑存储逻辑2.中断系统参见第4篇五、ALU参见8.4节参见第6章大连理工大学软件学院赖晓晨改编8.2指令周期一、指令周期的基本概念1.指令周期取出并执行一条指令所需的全部时间完成一条指令执行取指、分析取指阶段取指周期执行阶段执行周期(取指、分析)(执行指令)指令周期取指周期执行周期大连理工大学软件学院赖晓晨改编2.每条指令的指令周期不同取指周期指令周期取指周期执行周期指令周期NOPADDmemMULmem取指周期执行周期指令周期…大连理工大学软件学院赖晓晨改编3.具有间接寻址的指令周期4.带有中断周期的指令周期取指周期间址周期指令周期执行周期取指周期间址周期指令周期执行周期中断周期大连理工大学软件学院赖晓晨改编5.指令周期流程取指周期执行周期有间址吗?有中断吗?间址周期中断周期是是否否大连理工大学软件学院赖晓晨改编6.CPU工作周期的标志CPU访存有四种性质取指令取地址取操作数存程序断点取指周期间址周期执行周期中断周期FEDINDDINTDCLK1FE1IND1EX1INTEXDCPU的4个工作周期大连理工大学软件学院赖晓晨改编1FE1IND1EX1INT控制信号形成部件其他硬件大连理工大学软件学院赖晓晨改编1.取指周期数据流二、指令周期的数据流MDRCUMARPCIR存储器CPU地址总线数据总线控制总线IR+1大连理工大学软件学院赖晓晨改编2.间址周期数据流MDRCUMARCPU地址总线数据总线控制总线PCIR存储器MDR大连理工大学软件学院赖晓晨改编3.执行周期数据流4.中断周期数据流不同指令的执行周期数据流不同MDRCUMARCPU地址总线数据总线控制总线PC存储器大连理工大学软件学院赖晓晨改编8.3指令流水一、如何提高机器速度1.提高访存速度2.提高I/O和主机之间的传送速度提高整机处理能力高速芯片Cache多体并行I/O处理机DMA多总线通道高速器件改进系统结构,挖掘系统的并行性中断3.提高运算器速度高速芯片改进算法快速进位链大连理工大学软件学院赖晓晨改编二、系统的并行性时间上互相重叠2.并行性的等级指令级(指令)过程级(进程)两个或两个以上事件在同一时刻发生两个或两个以上事件在同一时间段发生并行1.并行的概念粗粒度软件实现细粒度硬件实现并发同时大连理工大学软件学院赖晓晨改编取指令3执行指令3三、指令流水原理2.指令的二级流水1.指令的串行执行取指令

取指令部件完成总有一个部件空闲指令预取若取指和执行阶段时间上完全重叠指令周期减半速度提高1倍…执行指令

执行指令部件

完成取指令1执行指令1取指令2执行指令2取指令3执行指令3取指令2执行指令2取指令1执行指令1大连理工大学软件学院赖晓晨改编必须等上条指令执行结束,才能确定下条指令的地址,造成时间损失3.影响指令流水效率加倍的因素(1)执行时间>取指时间

(2)条件转移指令对指令流水的影响

取指令部件指令部件缓冲区执行指令部件影响指令流水效率的因素主要是各种相关问题。大连理工大学软件学院赖晓晨改编指令的六级流水六级流水14个时间单位串行执行6×9=54

个时间单位完成一条指令6个时间单位COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t取指、译码、计算操作数地址、取数、执行,写回大连理工大学软件学院赖晓晨改编指令1与指令4冲突指令2与指令5冲突指令1、指令3、指令6冲突…COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t4.相关相近指令之间出现某种关联,使指令流水出现停顿,影响效率取指、译码、计算操作数地址、取数、执行,写回大连理工大学软件学院赖晓晨改编COFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFICOFOEIWODIFI指令1指令2指令3指令4指令5指令6指令7指令8指令91234567891011121314t4.相关1).结构相关不同指令争用同一功能部件产生资源冲突解决办法•停顿•指令存储器和数据存储器分开,多部件•指令预取技术(适用于访存周期短的情况)大连理工大学软件学院赖晓晨改编2).数据相关不同指令因重叠操作,可能改变操作数的读/写访问顺序采用旁路技术解决办法写后读相关(RAW)SUBR1,R2,R3ADDR4,R5,R1;(R2)

(R3)R1;(R5)+(R1)R4读后写相关(WAR)STAM,R2ADDR2,R4,R5;(R2)M存储单元;(R4)+(R5)R2写后写相关(WAW)后推法MULR3,R2,R1SUB

R3,R4,R5;(R2)×

(R1)R3;(R4)(R5)

R3取指译码执行写回取指译码执行写回大连理工大学软件学院赖晓晨改编2).数据相关不同指令因重叠操作,可能改变操作数的读/写访问顺序采用旁路技术解决办法写后读相关(RAW)SUBR1,R2,R3ADDR4,R5,R1;(R2)

(R3)R1;(R5)+(R1)R4读后写相关(WAR)STAM,R2ADDR2,R4,R5;(R2)M存储单元;(R4)+(R5)R2写后写相关(WAW)后推法MULR3,R2,R1SUB

R3,R4,R5;(R2)×

(R1)R3;(R4)(R5)

R3取指译码执行写回取指译码执行写回大连理工大学软件学院赖晓晨改编2.数据相关不同指令因重叠操作,可能改变操作数的读/写访问顺序采用旁路技术解决办法写后读相关(RAW)SUBR1,R2,R3ADDR4,R5,R1;(R2)

(R3)R1;(R5)+(R1)R4读后写相关(WAR)STAM,R2ADDR2,R4,R5;(R2)M存储单元;(R4)+(R5)R2写后写相关(WAW)后推法MULR3,R2,R1SUB

R3,R4,R5;(R2)×

(R1)R3;(R4)(R5)

R3ADDR0,R1,R2ADDR4,R5,R0第一条指令的和已经计算出从加法器直接取数取指译码取数执行写回取指译码取数执行写回取指译码取数执行写回取指译码取数执行写回大连理工大学软件学院赖晓晨改编3).控制相关DIV指令必须等BNE指令的结果才能确定是否转移LDA#0LDX#0INXCPX#NBNEMDIV#NSTAANSADDX,DM由转移指令引起大连理工大学软件学院赖晓晨改编3).控制相关WOEIFOCODIWOEIFODIFIFIDIFICOFIFOCODIFIWOEIFOCODIFIDIFOEIWOEIFOCOFIDICOWODIFICOFI指令1指令2指令3指令4指令5指令6指令7指令15指令161234567891011121314转移损失t设指令3是条件转移指令,等到指令2执行完毕后才知道转移地址怎么办?大连理工大学软件学院赖晓晨改编3).控制相关WOEIFOCODIWOEIFODIFIFIDIFICOFIFOCODIFIWOEIFOCODIFIDIFOEIWOEIFOCOFIDICOWODIFICOFI指令1指令2指令3指令4指令5指令6指令7指令15指令161234567891011121314转移损失t分支预测法设指令3是条件转移指令,等到指令2执行完毕后才知道转移地址大连理工大学软件学院赖晓晨改编四、流水线性能1.吞吐率单位时间内流水线所完成指令或输出结果的数量最大吞吐率实际吞吐率连续处理n条指令的吞吐率为设m

段的流水线,各段时间为ΔtTpmax=Δ1tTp=m

·Δ

+(n-1)·

Δ

ntt大连理工大学软件学院赖晓晨改编2.加速比Sp

m

段的流水线的速度与等功能的非流水线的速度之比设流水线各段时间为Δt完成n条指令在m

段流水线上共需

T=m

·

+(n-1)·

ttΔΔ完成n条指令在等效的非流水线上共需

T

′=nm

·tΔSp

=

m

·+(n-1)·

nm·=nmm

+n-1

ΔtΔΔtt

则大连理工大学软件学院赖晓晨改编由于流水线有建立时间和排空时间因此各功能段的设备不可能

一直处于工作状态

流水线中各功能段的利用率3.效率

mΔt31245312453124531245………………………………n-1nn-1nn-1nn-1nT时间S空间空间S4S3S2S1(n-1)Δt大连理工大学软件学院赖晓晨改编m(m

+n-1)Δt

=mnΔt

流水线各段处于工作时间的时空区流水线中各段总的时空区

效率=3.效率

mΔt31245312453124531245………………………………n-1nn-1nn-1nn-1nT时间S空间空间S4S3S2S1(n-1)Δt流水线中各功能段的利用率大连理工大学软件学院赖晓晨改编五、流水线的多发技术1.超标量技术每个时钟周期内可并发发射多条独立指令

不能调整指令的执行顺序配置多个功能部件通过编译优化技术,把可并行执行的指令搭配起来IFIDEX

WR0123

45

678

910111213时钟周期指令序列大连理工大学软件学院赖晓晨改编2.超流水线技术在一个时钟周期内再分段(3段)

不能调整指令的执行顺序在一个时钟周期内一个功能部件使用多次(3次)靠编译程序解决优化问题流水线速度是原来速度的3倍IFIDEXWR0

1

2

345

67

8

9

10111213时钟周期指令序列大连理工大学软件学院赖晓晨改编3.超长指令字技术采用多个处理部件具有多个操作码字段的超长指令字(可达几百位)由编译程序挖掘出指令间潜在的并行性,将多条能并行操作的指令组合成一条IFIDEXWR012345678910111213时钟周期指令序列大连理工大学软件学院赖晓晨改编六、流水线结构1.指令流水线结构完成一条指令分7段,每段需一个时钟周期若流水线不出现断流1个时钟周期出1结果不采用流水技术7个时钟周期出1结果理想情况下,7级流水的速度是不采用流水技术的7倍地址形成部件指令译码部件取操作数部件取指令部件操作执行部件回写结果部件修改指令指针部件大连理工大学软件学院赖晓晨改编2.运算流水线完成浮点加减运算可分对阶、尾数求和、规格化三段分段原则每段操作时间尽量一致锁存器对阶功能部件第一段尾数加部件锁存器第二段规格化部件锁存器第三段大连理工大学软件学院赖晓晨改编8.4中断系统一、概述1.引起中断的各种因素(1)人为设置的中断(2)程序性事故如转管指令溢出、操作码不能识别、除法非法(5)外部事件(4)I/O设备(3)硬件故障用键盘中断现行程序转管指令……管理程序可屏蔽中断vs不可屏蔽中断定时器中断大连理工大学软件学院赖晓晨改编2.中断系统需解决的问题(1)各中断源如何向CPU提出请求?(2)各中断源同时提出请求怎么办?(5)如何寻找入口地址?(4)如何保护现场?(3)CPU什么条件、什么时间、以什么方式

响应中断?(6)如何恢复现场,如何返回?(7)处理中断的过程中又出现新的中断怎么办?硬件

+软件大连理工大学软件学院赖晓晨改编二、中断请求标记和中断判优逻辑1.中断请求标记INTR一个请求源

一个INTR

中断请求标记触发器多个INTR

组成中断请求标记寄存器INTR

分散在各个中断源的接口电路中INTR集中在CPU

的中断系统内12345n掉电过热阶上溢主存读写校验错非法除法键盘输入打印机输出大连理工大学软件学院赖晓晨改编2.中断判优逻辑①

分散在各个中断源的接口电路中链式排队器②集中在CPU

内(1)硬件实现(排队器)111&1

&1&参见第五章INTR1INTR2INTR3INTR4INTR1、

INTR2、

INTR3、

INTR4

优先级按降序排列

INTP1INTP2INTP3INTP4根据紧急程度、重要程度、IO设备的速度来排队大连理工大学软件学院赖晓晨改编A、B、C

优先级按降序排列(2)软件实现(程序查询)否…是否A

请求?是否B

请求?是否C

请求?转A

的服务程序入口地址转B

的服务程序入口地址转C

的服务程序入口地址是是是否否大连理工大学软件学院赖晓晨改编三、中断服务程序入口地址的寻找1.硬件向量法入口地址200入口地址300入口地址40012H13H14H主存12H13H14HJMP200JMP300JMP400主存向量地址形成部件……中断向量排队器输出向量地址12H、13H、14H入口地址200、300、400大连理工大学软件学院赖晓晨改编2.软件查询法八个中断源1,2,8按降序排列…否…是否A

请求?是否B

请求?是否C

请求?转A

的服务程序入口地址转B

的服务程序入口地址转C

的服务程序入口地址是是是否否大连理工大学软件学院赖晓晨改编四、中断响应1.响应中断的条件允许中断触发器EINT=12.响应中断的时间指令执行周期结束时刻由CPU发查询信号

CPU中断查询INTR1DQINTR2DQINTRnDQ中断源1中断源2中断源n…至排队器大连理工大学软件学院赖晓晨改编3.中断隐指令(1)保护程序断点(2)寻找服务程序入口地址(3)硬件关中断断点存于特定地址(0号地址)内断点进栈向量地址PC(硬件向量法)中断识别程序入口地址MPC(软件查询法)大连理工大学软件学院赖晓晨改编五、保护现场和恢复现场1.保护现场2.恢复现场寄存器内容保护现场其它服务程序恢复现场中断返回PUSH视不同请求源而定POP中断服务程序完成中断服务程序中断服务程序完成IRET大连理工大学软件学院赖晓晨改编1.多重中断的概念klmk

+1l

+1m

+1第一次中断第二次中断第三次中断程序断点k+1,l+1,m+1六、中断屏蔽技术大连理工大学软件学院赖晓晨改编2.实现多重中断的条件B、CA中断请求主程序(2)优先级别高的中断源有权中断优先级别低的中断源(1)提前设置开中断指令(保护现场之后)ABCD中断服务程序(A、B、C、D优先级按降序排列)D大连理工大学软件学院赖晓晨改编

&3.屏蔽技术(1)屏蔽触发器的作用MASK=0(未屏蔽)INTR能被置“1”

&

&

&

&

1

1

1

1INTP1INTP2INTP3INTP4INTR1INTR2INTR3INTR4MASK1MASK2MASK3MASK4DQ1DINTR

MASKQCPU查询MASKi

=1(屏蔽)INTPi

=0(不能被排队选中)大连理工大学软件学院赖晓晨改编(2)屏蔽字

优先级屏蔽字111111111111111101111111111111110011111111111111000111111111111100001111111111110000011111111111…000000000000001100000000000000011234561516…16个中断源1,2,3,

16按降序排列…大连理工大学软件学院赖晓晨改编(3)屏蔽技术可改变处理优先等级响应优先级:cpu响应各中断源请求的优先次序响应优先级A→B→C→D

降序排列

处理优先级:cpu实际对各中断源请求的优先处理次序中断源原屏蔽字新屏蔽字ABCD11110111001100011111010001100111处理优先级A→D→C→B降序排列大连理工大学软件学院赖晓晨改编(3)新屏蔽字的设置保护现场置屏蔽字开中断

中断服务关中断恢复现场恢复屏蔽字开中断中断返回置屏蔽字恢复屏蔽字关中

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论