1、计算机组成原理武汉科技大学 计算机科学与技术学院,第五章 中央处理机,本章内容 5.1 CPU的功能和组成 5.2 指令周期 5.3 时序产生器和控制方式 5.4 微程序控制器 5.5 硬连线控制器 *5.6 传统CPU 5.7 流水CPU 5.8 RISC CPU *5.9 多媒体CPU,中央处理机(CPU)控制计算机自动取指令并执行 传统CPU的构成运算器、控制器 现代CPU的构成运算器、控制器和Cache,5.1 CPU的功能和组成,5.1.1 CPU的功能,指令控制、操作控制、时间控制、数据加工 1. 指令控制控制程序中指令的执行顺序(首要任务) 2. 操作控制形成执行指令所需的控制信
2、号并送往相应部件 3. 时间控制对操作控制信号加以时间上的约束 4. 数据加工对数据进行算术、逻辑运算(根本任务),目录,CPU,运 算 器,控 制 器,是执行机构接受控制器送来的命令,负责数据的加工处理:执行所有算术、逻辑运算及比较、测试等,组 成,功 能,算术逻辑单元ALU、通用寄存器 数据缓冲寄存器DR、状态条件寄存器PSW,组 成,功 能,“决策机构”协调和指挥整个系统的操作: (1)取出一条指令,并指出下一条指令的位置 (2)对指令进行译码或测试,并产生相应的操作控制信号,以启动规定的动作 (3)指挥并控制CPU、内存和输入/输出设备之间数据流动的方向,程序计数器PC、指令寄存器IR
3、 指令译码器ID、时序产生器、操作控制器,5.1.2 CPU的基本组成运算器控制器Cache,cache,CPU模型,返回方框图,硬布线控制器,CPU中至少有六类寄存器 1. 数据缓冲寄存器(DR Data buffer Register) 暂存ALU的运算结果,或由数据存储器/外部接口读出的一个数据字 其作用 : (1) ALU运算结果和通用寄存器间传送时,作为时间上的缓冲 (2)补偿CPU和内存、外设间速度上的差异 2. 指令寄存器(IRInstruction Register) 保存当前正在执行的一条指令 指令由指令cache(简称指存)读出后IR,其中的操作码字段送给指令译码器,5.1
4、.3 CPU中的主要寄存器,3. 程序计数器(PCProgramming Counter),也叫指令计数器结构是寄存器+计数 保存将要执行的下一条指令的地址;自动加1计数 (程序首地址;转移目标地址) 4. 数据地址寄存器(ARAddress Register) 保存当前CPU访问的数据存储器(数存)单元的地址 5. 通用寄存器(图5.1的模型中有4个:R0R3) ALU执行算术或逻辑运算时,为ALU提供一个工作区 指令格式中要对寄存器号加以编址 通用寄存器还可作地址指示器、变址寄存器、堆栈指示器等,5.1.3 CPU中的主要寄存器,6. 状态条件寄存器(状态字寄存器,PSW) 保存算术、逻辑
5、运算或测试结果建立的各种条件代码,以及中断和系统工作状态等条件码进位标志(C),溢出标志(V),为零标志(Z),为负标志(N)等(通常,各标志位分别由1位触发器保存),5.1.3 CPU中的主要寄存器,数据通路 寄存器之间传送信息的通路 操作控制器的功能根据指令操作码和时序信号,产生各种操作控制信号,正确选择数据通路,从而完成对取指令和执行指令的控制 按设计方法不同,操作控制器的分类: 时序逻辑型、存储逻辑型1.硬布线控制器采用时序逻辑技术实现2.微程序控制器采用存储逻辑实现(本书重点) 时序产生器对各种操作信号实施时间上的控制,5.1.4 操作控制器与时序产生器,“CPU功能和组成”试题,C
6、,【2010年计算机联考真题】 下列寄存器中,汇编语言程序员可见的是( )。 A. 存储器地址寄存器(MAR) B. 程序计数器(PC) C. 存储器数据寄存器(MDR) D. 指令寄存器(IR),B,5.2 指令周期,读取指令 指令地址送入内存地址寄存器 读内存,读出内容送入指令寄存器 分析指令 按指令规定内容执行指令 不同指令的操作步骤数及操作内容不同 检查有无中断请求 若无,则转入下一条指令的执行过程,指令的执行过程,目录,1. 指令周期 CPU取出并执行一条指令所需的时间 2. 机器周期(CPU周期) 由内存中读取一个指令字的最短时间 3. 时钟周期(节拍脉冲或T周期) 处理操作的最基
7、本单位 一个指令周期由若干个CPU周期组成 一个CPU周期包含若干个时钟周期,5.2.1 指令周期的基本概念,指令周期,六条典型指令组成的简单程序,5.2.2 MOV指令的指令周期 MOV R0,R1,RR型指令,需两个CPU周期,第1个CPU周期(取指令),CPU完成三件事: (1)从内存取出指令 (2) PC加1,为取下一条指令做准备 (3)对指令操作码进行译码或测试,以确定具体操作第2个CPU周期(执行指令):(R1) R0,MOV R0,R1 指令的指令周期图示,WR/RD,101,1,102,10,10,10,MOV R0,R1,说明,1、取指令阶段 (1)程序计数器PC中装入第一条
8、指令地址101(八进制) (2)PC的内容放到地址总线ABUS(I)上,对指存译码并启动读 (3)从101号地址读出的MOV指令通过指令总线IBUS装入IR (4)PC加1,变成102,为取下一条指令做准备 (5)指令寄存器中的操作码(OP)被译码 (6)CPU识别出是MOV指令,至此,取指周期结束2、执行指令阶段 (1)操作控制器(OC)送出控制信号到通用寄存器,选择R1(10)作为源寄存器,R0作目标寄存器 (2)OC送出控制信号到ALU,指定ALU做传送操作 (3)OC送出控制信号,打开ALU输出三态门,结果DBUS上 (4)OC送出控制信号,将DBUS上的数据打入DR(10) (5)O
9、C送出控制信号,将DR中的数据打入R0,R0的内容变为10,图示,5.2.3 LAD指令的指令周期 LAD R1,6,组成LAD指令周期的三个CPU周期: 第1个CPU周期为取指令阶段,和MOV指令相同 第2个CPU周期中将操作数的地址送往地址寄存器并完成地址译码 第3个CPU周期中从6号内存取出操作数100并送通用寄存器R1,RS型指令,指令周期需要3个CPU周期 访问两次存储器一次访问指存,一次访问数存,一个CPU周期,一个CPU周期,取指令阶段,执行指令阶段,开始,取指令PC+1,对指令译码,送操作数地址,取下条指令PC+1,取出操作数,装入通用寄存器,一个CPU周期,LAD R1,6
10、指令周期图示,LAD R1,6 执行过程图示,6,100,100,5.2.4 ADD指令的指令周期 ADD R1,R2,ADD指令是RR型指令,指令周期只需两个CPU周期,与MOV类似,ADD R1,R2执行过程图示,120,20120,5.2.5 STO指令的指令周期 STO R2,(R3),RS型指令 指令周期需要3个CPU周期,其中执行周期为2个CPU周期,一个CPU周期,一个CPU周期,取指令阶段,执行指令阶段,开始,取指令PC+1,对指令译码,送操作数地址,取下条指令PC+1,送操作数,写数存,一个CPU周期,STO R2,(R3)执行过程图示,30,120,5.2.6 JMP指令的
11、指令周期 JMP 101,指令周期为两个CPU周期 第1个周期是取指令周期 第2个周期为执行阶段:CPU把指令寄存器中的地址码部分101送到程序计数器下一条指令将从101单元开始读出并执行,JMP(无条件转移)指令,JMP 101 执行过程图示,106 101,5.2.7 用方框图表示指令周期,方框CPU周期,内容表示数据通路的操作或某种控制 菱形符号某种判别或测试,时间上不单独占用CPU周期,而依附于它前面一个方框的CPU周期 符号“”代表一个公操作,CPU模型,【例1】如图所示为双总线结构机器的数据通路,IR为指令寄存器,PC为程序计数器(具有自增功能),M为主存(受R/W信号控制),AR
12、为地址寄存器,DR为数据缓冲寄存器, ALU由加、减控制信号决定完成何种操作,控制信号G控制的是一个门电路。另外,线上标注有小圈表示有控制信号,例中yi表示y寄存器的输入控制信号,R1O为寄存器R1的输出控制信号,未标字符的线为直通线,不受控制。画出下面两条指令的指令周期流程图,并列出相应的微操作控制信号序列 1.“ADD R2,R0”指令完成(R0)+(R2)R0功能操作,假设该指令的地址已放入PC中。 2.“SUB R1,R3”指令完成(R3)-(R1)R3的功能操作。,题目,解答2,解答1,【解】 根据给定的数据通路图, “ADD R2,R0”的指令周期流程图如图 包括取指令阶段和执行指
13、令阶段 右边标注了每个机器周期中用到的微操作控制信号序列,PC AR,M DR,DR IR,R2 Y,R0 X,Y+X R0,PCO,G,ARi,R/W=R,DRO,G,IRi,+,G,R0i,R0O,G,Xi,R2O,G,Yi,执行,取指,注:图中省去了“” 号左边各寄存器代码上应加的括号,PC AR,M DR,DR IR,R3 Y,R1 X,Y - X R3,PCO,G,ARi,R/W=R,DRO,G,IRi,-,G,R3i,R1O,G,Xi,R3O,G,Yi,“SUB R1,R3”的指令周期流程图 与ADD指令不同的是:在执行指令阶段,微操作控制信号序列有所不同,执行,取指,数据通路图,
14、【2009年计算机联考真题】 冯.诺依曼计算机中指令和数据均以二进制形式存放在存储器中,CPU区分它们的依据是( )。 A.指令操作码的译码结果 B.指令和数据的寻址方式 C.指令周期的不同阶段 D.指令和数据所在的存储单元【2011年计算机联考真题】 假定不采用Cache和指令预取技术,且机器处于“开中断”状态,则在下列有关指令执行的叙述中,错误的是( )。 A.每个指令周期中CPU都至少访问内存一次 B.每个指令周期一定大于或等于一个CPU时钟周期 C.空操作指令的指令周期中任何寄存器的内容都不会被改变 D.当前程序在每条指令执行结束时都可能被外部中断打断,C,“指令周期”试题(1),C,
15、【2009年计算机联考真题】 某计算机字长16位,采用16位定长指令字结构,部分数据通路结构如图所示。图中所有控制信号为1时表示有效,为0时表示无效。例如,控制信号MDRinE为1时表示允许数据从DB打入MDR,MDRin为1表示允许数据从内总线打入MDR。假设MAR的输出一直处于使能状态。加法指令“ADD (R1), R0”的功能为(R0)+(R1)(R1),即将R0中的数据与R1的内容所指主存单元的数据相加,并将结果送入R1的内容所指主存单元中保存。 表中给出了上述指令取值和译码阶段每个节拍(时钟周期)的功能和有效控制信号,请按表中描述方式用表格列出指令执行阶段每个节拍的功能和有效控制信号
16、。,“指令周期”试题(2),参考答案,“指令周期”试题(2)的数据通路图,返回题目,参考答案,“指令周期”试题(2)的表,返回题目,参考答案,“指令周期”试题(2)参考答案,返回题目,数据通路图,表格,5.3 时序产生器和控制方式,5.3.1 时序信号的作用和体制 1. 作用为计算机各部件的协调动作提供时间标志 CPU中的控制器用时序信号指挥机器的工作 操作控制器发出的各种信号是时间(时序信号)和空间(部件位置)的函数 CPU通过时序信号/周期信息辨认从内存中取出的是指令(取指阶段)还是数据(执行阶段)指令流与数据流的区分 一个CPU周期中时钟脉冲对CPU的动作有严格的约束,目录,5.3 时序
17、产生器和控制方式,5.3.1 时序信号的作用和体制,2. 体制 时序信号的基本体制是电位脉冲制(以寄存器为例) D为电位输入端 CP(Clock Pulse)为脉冲输入端 R,S为电位输入端 有些部件只用电位信号,目录,硬布线控制器中,时序信号一般采用主状态周期-节拍电位-节拍脉冲三级体制,硬布线控制器中的时序信号,采用节拍电位节拍脉冲二级体制,触发器,数据(电位),控制信号(脉冲),数据准备好后,以电位的方式送触发器 当控制信号来到时用一个脉冲信号即可把数据装入触发器,微程序控制器中的时序信号,微程序控制器中使用的时序信号产生器的组成,5.3.2 时序信号产生器,启停控制逻辑,节拍脉冲和读写
18、时序译码逻辑,环形脉冲发生器,IORQ MREQ RD WE T1 T2 T3 T4,IORQMREQRDWE T1 T2 T3 T4,MREQ,IORQ,RD,WE,时钟脉冲源,CLK,时钟脉冲源,环形脉冲发生器,节拍脉冲和读写时序译码逻辑,启停控制逻辑,启动,停机,硬连线控制器中:节拍电位信号由时序产生器本身产生 微程序设计的计算机中:节拍电位信号由微程序控制器提供,2. 环形脉冲发生器 作用:产生一组有序的间隔相等或不等的脉冲序列,以便通过译码电路来产生最后所需的节拍脉冲 组成:环形计数器 3. 节拍脉冲和存储器读写时序 环形脉冲发生器与译码逻辑电路 4. 启停控制逻辑,1. 时钟源 作
19、用:为环形脉冲发生器提供频率稳定且电平匹配的方波时钟脉冲信号 组成:石英晶体振荡器和与非门组成的正反馈振荡电路,5.3.2 时序信号产生器,返回,时序发生器组成,环形脉冲发生器与译码逻辑电路,环形脉冲发生器波形图,脉冲和读写译码波形图,环形脉冲发生器波形,C4,C1,C2,C3,1,2,3,4,5,6,7,8,9,10,11,12,逻辑电路,0,1,0,1,1,0,1,1,1,0,0,0,节拍脉冲和存储器读写时序波形,一个CPU周期产生四个等间隔节拍脉冲,读写时序的译码逻辑表达式: RDo=C2RD WEo=C3WE,逻辑电路,启停控制逻辑 作用:控制原始节拍脉冲信号T1oT4o的发送,以保证
20、只有在启动机器运行的情况下,才产生CPU工作所需的节拍脉冲,核心是Cr(运行标志触发器) 启停时刻的控制:在Cr输入端引入RS触发器 确保时序从T1前沿开始,到 T4后沿才结束,时序发生器组成,节拍脉冲和存储器读写时序波形,一个CPU周期产生四个等间隔节拍脉冲,读写时序的译码逻辑表达式: RDo=C2RD WEo=C3WE,时序发生器组成,控制不同操作序列时序信号的方法 常用方法同步控制、异步控制、联合控制 1. 同步控制方式 任何情况下,指令执行时所需的机器周期数和时钟周期数都固定不变 实现方案: 采用完全统一的机器周期执行各种不同的指令所有指令周期具有相同的节拍电位和相同的节拍脉冲数 采用
21、不定长的机器周期 中央控制和局部控制相结合中央控制将大部分指令安排在固定的机器周期完成局部控制少数复杂的指令采用另外的时序进行定时,5.3.3 控制方式(反映时序信号的定时方式),每条指令、每个操作控制信号按需占用时间 每条指令的指令周期可由数目不等的机器周期数组成;或者,控制器发出某一操作控制信号后,等待执行部件完成操作并发“回答”信号,再开始新的操作 形成的操作控制序列没有固定的CPU周期数(节拍电位)或严格的时钟周期(节拍脉冲)与之同步,2. 异步控制方式,方案1:大部分操作序列安排在固定的机器周期中;时间难以确定的操作以执行部件的“回答” 作为本次操作的结束 方案2:机器周期的节拍脉冲
22、数固定,但各条指令周期的机器周期数不固定,3. 联合控制方式同步和异步控制相结合,5.4 微程序控制器,发展 1951年英国剑桥大学的MVWilkes教授,在曼彻斯特大学计算机会议上,首先提出微程序的概念和原理,当时还没有合适的存放微程序的控制存储器元件 1964年,IBM公司在IBM 360系列机上成功地采用了微程序设计技术 20世纪70年代以来,由于VLSI技术的发展,推动了微程序设计技术的发展和应用 目前,从大型机到小型机、微型机都普遍采用了微程序设计技术,目录,优点:具有规整性、灵活性、可维护性 基本思想: 把操作控制信号编成“微指令”存放在只读存储器中,机器运行时,逐条读出“微指令”
23、,从而产生全机所需的各种微操作控制信号,使相应部件执行规定的操作,计算机,控制部件控制器:通过控制线发出控制命令,执行部件,运算器 存储器 外设,执行控制命令并反馈状态信息,5.4.1 微程序控制原理,控制部件与执行部件通过控制线和反馈信息进行联系,微命令和微操作 (1) 微命令:控制部件通过控制线向执行部件发出的各种控制命令;它是构成控制序列的最小单位 (2) 微操作:是微命令的操作过程,是执行部件中最基本的操作微命令和微操作是一一对应的 (3) 状态测试反馈信息 (4) 微操作的种类: 相斥性微操作:不能同时或在同一个CPU周期内并行执行 相容性微操作:能够同时或在同一个CPU周期内并行执
24、行,5.4.1 微程序控制原理,一个简单运算器的数据通路图示,相斥,相斥,简单运算器的数据通路,1、2、3相容 4 、 6 、 8与5、7、9也是相容的,微命令和微操作,相斥,返回微指令格式,(1) 微指令(Microinstruction) 在一个CPU周期中使计算机实现一定操作功能的一组微命令的组合;存储在控制存储器中,2. 微指令和微程序,实现一条机器指令功能的所有微指令组成的序列 一段微程序对应一条机器指令,微程序的总和构成指令系统 (3)微地址 存放微指令的控制存储器的单元地址,(2) 微程序,微指令的组成: 操作控制字段:产生某一步操作所需的各个微操作控制信号,某位为1,表示发微命
25、令 顺序控制字段:控制产生下一条要执行的微指令地址 微指令发出的控制信号都是节拍电位信号,持续时间为一个CPU周期,微命令信号还要引入时间控制,运算器的数据通路,组成部分 控制存储器、微指令寄存器、地址转移逻辑,3. 微程序控制器原理框图,1. 控制存储器CS 作用:存放实现全部指令系统的微程序;只读 微指令周期;控制存储器的字长及容量 要求:速度快,读出周期短 2. 微指令寄存器IR 作用:存放由控制存储器读出的一条微指令信息 组成:微命令寄存器+微地址寄存器AR 3. 地址转移逻辑 作用:需要转移时,根据机器指令的操作码字段OP和状态条件及P字段实现对AR的修改 如果微程序不出现分支,下一
26、条微指令的地址(微地址)直接由微指令给出(存放在微地址寄存器中),微程序控制器的组成,数据通路,4. 微程序举例(以“十进制加法”指令为例),设a、b在R1、R2中 数6在R3中,四条微指令(方框)表示组成,算法:先计算a+b+6;然后根据进位标志Cy决定是否减去6,微指令格式:,数据通路,(1) 第1条微指令是取指周期 完成3个任务: 从内存取指令到IR; 对程序计数器PC加1; 对OP用P1进行判别测试,修改微地址寄存器该微指令的二进制代码是:000 000 000 000 11111 10 0000 设十进制加法的OP为1010,P1有效时,修改AR的内容为1010,则第2条微指令从10
27、10处开始执行,微指令流程图,(2) 第2条微指令完成a+b,即R1+R2 R2该微指令的二进制编码是:010 100 100 100 00000 00 1001 P1P2均为0,表示不测试,直接给出下一条微指令地址(1001),运算器通路,(3) 第3条指令完成加6修正,即R2+R3 R2该微指令的二进制编码是:010 001 001 100 00000 01 0000 P2为1,表示进行P2测试,测试的“状态条件”为Cy 若Cy=1,微程序进入取指令周期取下一条指令 若Cy=0,由P2将下址字段修改为0001,执行第4条微指令,运算器通路,(4) 第4条微指令完成减6操作,即R2-R3 R
28、2该微指令的二制编码是:010 001 001 001 00000 00 0000 执行完第4条指令后,应转取指操作,所以下址字段为0000,运算器通路,串行方式的微程序控制器中 微指令周期=读出微指令的时间 + 执行该条微指令的时间,某计算机中CPU周期与微指令周期的时间关系:,设一个CPU周期为0.8s,包含4个等间隔的节拍脉冲T1T4,每个脉冲宽度为200ns用T4时间读取微指令,用T1+T2+T3时间执行微指令 可用T4上升沿将运算结果打入某个寄存器,并用T4间隔读取下条微指令;用T1上升沿将取出的下条微指令打入IR,5. CPU周期与微指令周期的关系,如忽略触发器的翻转延迟,则每条微
29、指令的微命令信号从T1上升沿开始有效,直到下一条微指令读出并打入微指令寄存器为止一条微指令的时间恰好是0.8s,等于一个CPU周期,6. 机器指令与微指令的关系,1.一条机器指令对应一个微程序 一条机器指令所完成的操作划分成若干条微指令来完成,由微指令进行解释和执行 2.从指令与微指令、程序与微程序、地址与微地址的一一对应关系看,前者与内存储器有关,后者与控制存储器有关 3.每一个CPU周期对应一条微指令,有利于缩短微指令字长度 有利于减小控制存储器的容量 有利于提高微程序的执行速度 有利于对微程序的修改 有利于提高微程序设计的灵活性,微程序设计首先要设计微指令结构,追求的目标:,5.4.2
30、微程序设计技术,微指令操作控制字段的表示方法,通常有3种:,直接表示法操作控制字段的每一位代表一个微命令 优点: 简单直观,输出直接用于控制 缺点: 微指令字较长,使控制存储器容量较大 编码表示法把一组相斥性的微命令信号组成一个小组(即一个字段) ,然后通过小组(字段)译码器对每一个微命令信号译码 ,译码输出作为操作控制信号,1 微命令编码,混合表示法混合使用直接表示法与字段编码法,以便能综合考虑微指令字长、灵活性、执行微程序速度等方面的要求 注: 微指令中可附设一个常数字段,微命令编码方式举例,优点:缩短微指令字长度 例如 3位/4位二进制位译码后可分别表示7个/15个微命令 缺点:增加译码
31、电路,使微程序的执行速度减慢,编码表示法,微命令编码方法,编码表示法的分段原则: (1) 相斥性微命令分在同一字段内保证相斥,并缩短微指令字长;相容性微命令分在不同的字段内有利于实现并行操作,加快指令的执行速度 (2) 每个小字段包含的信息位不能太多(一般不超过6位),否则将增加译码线路的复杂性和译码时间,微命令编码方式举例,微命令编码方法,例:有一个24位长的微指令格式,采用混合表示法:D23D15采用直接控制法;D14D6分为A、B、C三组,均采用编码表示法,其中A(D14D12)和B(D11D9)直接译码出微命令,C(D8D6)译码输出中除了表示4种控制转移的判别测试P1P4外,其余的表
32、示微命令,问: (1) 最多可以表示多少种微命令? (2) 一条微指令中可同时发出的微命令最多有多少个? (3) 所需控制存储器的容量是多少?,解: (1) 最多可以表示的微命令有:9+(23-1)+(23-1)+(23-1-4)=26种 (2) 可同时出现的微命令最多有:9+1+1+1=12个 (3) 所需控制存储器的容量是:2624位=6424位,计数器方式(将AR改为PC) 顺序执行时,PC1PC(微指令序列在连续单元中) 非顺序执行时,用新的微地址更新PC 特点:顺序控制字段较短,微地址产生机构简单;但多路并行转移功能较弱,速度较慢,灵活性较差 多路转移方式 多路转移一条微指令具有多个
33、转移分支的能力 不产生分支时,直接由微指令的顺序控制字段给出 出现分支时,提供若干“候选”微地址按顺序控制字段的“判别测试”标志和“状态条件” 、“指令操作码”选择其中一个微地址 n位“状态条件” 标志2n路转移;涉及AR的n位 特点:由顺序控制字段配合,能实现多路并行转移,灵活性好,速度较快;但转移地址逻辑复杂,2 微地址的形成方法(产生后继微地址的方法),【例2】微地址寄存器有6位(A5A0),需要修改其内容时,可通过某一位触发器的强置端S将其置“1”。现有三种情况: (1)执行“取指”微指令后,微程序按IR的OP字段(IR3IR0)进行16路分支;(2)执行条件转移指令微程序时,按进位标
34、志C的状态进行2路分支;(3)执行控制台指令微程序时,按IR4,IR5的状态进行4路分支。请按多路转移方法设计微地址转移逻辑。 【解】依题意,微程序有三种判别测试P1、P2、P3,现将对A5A0的修改分配如下: (1)用P1和IR3IR0修改A3A0 ,根据IR的OP实现16路转移 (2)用P2和C修改A0 (3)用P3和IR5、IR4修改A5、A4 另外,还要考虑时间因素T4(CPU周期最后一个节拍脉冲),可得转移逻辑表达式:,A5=P3IR5T4 A4=P3IR4T4 A3=P1IR3T4 A2=P1IR2T4 A1=P1IR1T4 A0=P1IR0T4+P2CT4,A5=P3IR5T4
35、A4=P3IR4T4 A3=P1IR3T4 A2=P1IR2T4 A1=P1IR1T4 A0=P1IR0T4+P2CT4,用触发器强置端(低有效)修改,前5个表达式用“与非”门实现,最后1个用“与或非”门实现 A2、A1、A0触发器的微地址转移逻辑图,微指令格式的类型:水平型微指令、垂直型微指令,(1) 水平型微指令 一次能定义并执行多个并行操作微命令 基本特征: 微指令字较长 一条微指令能控制数据通路中多个功能部件并行操作 微命令的编码简单,尽可能使微命令与控制门之间具有直接对应关系 格式:,按照控制字段的编码方法不同,水平型微指令分为三种: 全水平型(不译法)微指令 字段译码法水平型微指令
36、 直接和译码相混合的水平型微指令,3 微指令格式,(2) 垂直型微指令 类似于机器指令的结构,设置微操作码字段 设置微操作码字段时,采用微操作码编译法规定微指令的功能 一条微指令中只有12个微操作命令;每条微指令的功能简单 基本特征: 微指令字短 并行操作能力有限,一条微指令只能控制数据通路中的一、两个信息传送以较长微程序结构换取较短微指令结构 编码比较复杂,全部微命令组成一个微操作码字段,再译码微指令的各二进制位与数据通路的各控制点间完全不存在直接对应关系垂直型微指令举例 (设微指令字长16位,微操作码3位1315位), 寄存器-寄存器传送型微指令,源寄存器和目标寄存器编址各5位,可指定31
37、个寄存器, 运算控制型微指令,选择ALU的左、右两输入源(可指定31种信息源之一),按ALU字段指定的运算功能(8种操作)进行处理,结果送入暂存器, 访问主存微指令,存储器编址是指按规定的寻址方式进行编址,第1、2位指定读操作或写操作(二选一), 条件转移微指令,9位D字段不足以表示完整的微地址,可用来替代现行PC的低位地址;测试条件字段有4位,可规定16种测试条件,(3) 水平型微指令与垂直型微指令的比较 水平型微指令并行操作能力强,效率高,灵活性强;垂直型微指令则较差 水平型微指令执行一条指令的时间短;垂直型执行时间长 由水平型微指令解释指令的微程序,微指令字较长而微程序较短;垂直型微指令
38、则相反 水平型微指令用户难以掌握;垂直型微指令与指令相似,比较容易掌握,微程序设计分为静态微程序设计和动态微程序设计 (1) 静态微程序设计对应于一台计算机的机器指令只有一组微程序,而且这一组微程序设计好后,一般无需改变也不好改变 (2) 动态微程序设计 微指令和微程序可以根据需要加以改变,从而改变机器的指令系统,控制存储器可采用E2PROM 可在一台机器上实现不同类型的指令系统,又称为仿真其他机器指令系统,4 动态微程序设计,1. 基本思想 把控制部件看作产生固定时序控制信号的逻辑电路 设计目标:(1)使用最少元件(2)取得最高操作速度,电路构成:门电路和触发器构成的复杂树形逻辑网络,故称为
39、硬布线控制器 优点:速度快 缺点:结构复杂,不易修改 结构方框图,5.5 硬连线控制器,目录,输入信号来源3个: 来自指令操作码译码器的输出Im 来自执行部件的反馈信息Bj 来自时序产生器的时序信号,包括节拍电位信号M和节拍脉冲信号T 输出信号就是微操作控制信号,用来控制执行部件 结论:某一微操作控制信号C是指令译码器输出Im、时序信号(节拍电位Mi、节拍脉冲Tk)和状态条件信号Bj的逻辑函数 即:C=f(Im,Mi,Tk,Bj),树形逻辑网络N,2. 指令执行流程,微程序控制器中,一个机器指令对应一个微程序;一个微指令周期对应一个节拍电位节拍电位由微指令周期来体现,因而,时序产生器只需产生若
40、干节拍脉冲信号 硬连线控制器中,时序产生器除了产生节拍脉冲信号外,还应产生节拍电位信号,以对指令周期中要顺序执行的一系列微操作进行定时 前面提到的五条典型指令的指令周期流程,五条指令的指令周期流程图,说明,CPU模型,M1、M2、M3三个节拍电位信号,用于定时 M1节拍所有指令的取指周期,操作控制器发出微操作信号,从指令存储器取出一条机器指令 M2、M3两个节拍电位构成指令的执行周期 MOV、ADD和JMP指令的执行只需一个节拍电位(M2) LAD和STO指令需要两个节拍电位(M2、M3) 指令执行阶段节拍电位的控制方法: 采用同步工作方式,即各指令的执行均用最长的节拍数 设计短指令流程时可以
41、跳过某些节拍,指令周期流程图,微操作控制信号产生的方法: 微程序控制器中,由微指令产生,并可重复使用 硬连线控制器中,由布尔表达式描述的输出函数产生 硬连线控制器中设计微操作控制信号的方法、过程及注意事项,3. 微操作控制信号的产生,例3 根据指令周期流程图写出以下操作控制信号: RD(I)、RD(D)、WE(D)、LDPC、LDIR、LDAR、LDDR、PC1、LDR2的逻辑表达式。其中各操作控制信号的含义是: RD(I)指存读命令 RD(D)数存读命令 WE(D)数存写命令 LDPC打入程序计数器 LDIR打入指令寄存器 LDAR打入数存地址寄存器 LDDR打入数据缓冲寄存器 PC1程序计
42、数器加1 LDR2打入R2寄存器 【解】:设M1、M2、M3为节拍电位信号,T1、T2、T3、T4为一个CPU周期中的节拍脉冲信号,而MOV、LAD、ADD、STO、JMP分别表示对应机器指令的OP操作码译码输出信号 指令流程图及各信号逻辑表达式,转5.7,RD(I)=M1(电位信号) RD(D) =M3LAD(电位信号) WE(D)=M3T3STO(脉冲信号) LDPC=M1T4+M2T4JMP LDIR=M1T4,LDAR=M2T4(LAD+STO) LDDR=M2T3(MOV+ADD)+M3T3LAD PC1=M1 LDR2=M2T4ADD,转5.7,RD(I),【2009年计算机联考真
43、题】 相对于微程序控制器,硬布线控制器的特点是( )。 A.指令执行速度慢,指令功能的修改和扩展容易 B.指令执行速度慢,指令功能的修改和扩展难 C.指令执行速度快,指令功能的修改和扩展容易 D.指令执行速度快,指令功能的修改和扩展容难,D,“控制器的功能和工作原理”试题,5.6* 传统的CPU,5.6.1 Intel 8088 CPU 准16位微处理器;40条引线封装,单相时钟,电源为5V 内部结构为16位,与外部交换的数据线8位;可处理16位/8位数据; 20条地址线,内部结构,从功能上来说分成两大部分:总线接口单元BIU 负责与存储器和外围设备接口执行单元EU 负责指令的执行,目录,寄存
44、器8位/16位通用寄存器;累加器 SP、BP(基数指针)、SI(源变址)、DI(目的变址)、指令指针IP 状态寄存器PSW由九个标志位组成 段寄存器 (代码段CS,数据段DS,堆栈段SS,附加段ES),各种操作地址的确定:取指令、堆栈操作、存取操作数 在不改变段寄存器值的情况下,寻址的最大范围是64KB,5.6.2 IBM 370系列CPU,IBM370 CPU (自己看) 1972年 32位 ALU的三个功能部件 寄存器结构 CPU控制状态 管态 目态,5.7 流水CPU,目录,并行性的两种含义: 同时性:两个以上事件在同一时刻发生 并发性:两个以上事件在同一时间间隔内发生 并行处理技术的三
45、种主要形式: 1. 时间并行 指时间重叠,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分;采用流水处理部件实现 2. 空间并行 指资源重复,主要体现 在多处理器系统和多计算机系统 3. 时间并行+空间并行 如超标量流水技术,5.7.1 并行处理技术,1. 流水计算机的系统组成 流水CPU:指令部件、指令队列、执行部件,构成3级流水线,5.7.2 流水CPU的结构,存储器多体交叉存储器 指令部件采用流水线,构成指令流水线 指令队列(FIFO)采用流水线 执行部件具有多个用流水线方式构成的ALU,具体方法: EU分为定点和浮点两部分 在浮点执行部件中,又有浮点加法部件和浮点
46、乘/除部件 浮点EU都以流水线方式工作,2. 流水CPU的时空图 计算机的流水处理过程子任务;并发执行;高速缓冲存储器;流水线的输出;实现子任务级的并行性 流水计算机的时空图 指令周期子过程的划分 取指令(IF)、指令译码(ID)、执行运算(EX)、结果写回(WB) 时空图 非流水计算机:每4个时钟周期输出一个结果 (标量)流水计算机:满载时,每个时钟周期输出一个结果 超标量流水计算机具有两条以上的指令流水线,是时间并行和空间并行技术的综合应用,返回,3. 流水线分类 常见的流水线形式: 指令流水线指令步骤的并行 将指令流的处理过程划分为取指令、译码、取操作数、执行、写回等几个并行处理的过程段
47、 算术流水线运算操作步骤的并行 如流水加法器、流水乘法器、流水除法器等 处理机流水线(宏流水线)程序步骤的并行 由一串级联的处理机构成流水线的各个过程段,每台处理机负责某一特定的任务 处理机流水线应用在多机系统中,引起流水线断流的三种相关冲突: 1. 资源相关 多条指令进入流水线后在同一机器时钟周期内争用同一个功能部件所发生的冲突 假定一条指令流水线由五段组成,5.7.3 流水线中的主要问题,在时钟4时,指令I1与I4发生争用存储器资源的相关冲突,解决方法: 一是第I4条指令停顿一拍后再启动 二是增设存储器,将指令和数据分开存储(哈佛结构),2. 数据相关 两条指令数据相关前一条指令执行完,才
48、能执行后一条指令 发生数据相关冲突的情况:流水线中由于多条指令的重叠处理,可能会发生“先读后写”的数据相关冲突,解决办法: 推后后继指令对相关单元的读 使用“向前”或定向传送技术设置若干运算结果缓冲寄存器,SUB与ADD发生了先读后写的数据相关冲突 AND和ADD发生了同时读写数据的相关冲突,流水线中有三类数据相关冲突: RAW(写后读,Read After Write)相关:后继指令用到前面指令所写的数据 WAR(读后写,Write After Read)相关:后继指令覆盖前面指令所读的单元 WAW(写后写,Write After Write)相关:两条指令同写一个单元 按序执行的流水线中不会出现WAR相关和WAW相关的冲突,