关闭

关闭

封号提示

内容

首页 考研秘笈-计算机组成考研指导.pdf

考研秘笈-计算机组成考研指导.pdf

考研秘笈-计算机组成考研指导.pdf

上传者: wanglei558 2012-03-12 评分 3 0 9 1 42 暂无简介 简介 举报

简介:本文档为《考研秘笈-计算机组成考研指导pdf》,可适用于考试题库领域,主题内容包含节选自《Computer Orgnization计算机组成考研指导》  考研系列丛书机械工业出版社                         符等。

节选自《Computer Orgnization计算机组成考研指导》  考研系列丛书机械工业出版社                            节选自《Computer Orgnization计算机组成考研指导》  考研系列丛书机械工业出版社 目录《Computer Orgnization计算机组成考研指导》  第章 计算机系统概述  复习提要  主要内容  重点与难点  例题与真题  例题讲解  真题解析  习题训练  选择题  填空题  简答题  参考答案  选择题  填空题  简答题 第章 数据表示与加法器  复习提要  主要内容  重点与难点  例题与真题  例题讲解  真题解析  习题训练  选择题  填空题  简答题  参考答案  选择题  填空题  简答题 第章 指令系统  复习提要  主要内容  重点与难点  例题与真题  例题讲解  真题解析  习题训练  选择题  填空题  问答题  参考答案  选择题  填空题  问答题 第章 中央处理器  复习提要  主要内容  重点与难点  例题与真题  例题讲解  真题解析  习题训练  选择题  填空题  问答题  参考答案  选择题  填空题  问答题 第章 运算方法及实现  复习提要  主要内容  重点与难点  例题与真题  例题讲解  历届考题  习题训练  选择题  填空题  计算题  参考答案  选择题  填空题  计算题 第章 存储器结构  复习提要  主要内容  重点与难点  例题与真题  例题讲解  真题解析  习题训练  选择题  填空题  设计题  参考答案  选择题  填空题  设计题 第章 总线  复习提要  主要内容  重点与难点  例题与真题  例题讲解  真题解析  习题训练  选择题  填空题  简答题  参考答案  选择题  填空题  简答题 第章 输入输出系统  复习提要  主要内容  重点与难点  例题与真题  基本例题  真题解析  习题训练  选择题  填空题  简答题  参考答案  选择题  填空题  简答题 附录 部分院校考研试题汇编 参考文献   41!"#$!411!"#$CPU包括运算器和控制器两部分。本章主要介绍控制器的组成、工作原理、实现方法以及CPU的总体结构。从信息流的角度来说控制器的工作就是把指令信息转换成控制信息来对数据流进行加工处理。1微操作和寄存器传输语言微操作(microoperation)是一个部件能够完成的基本操作是计算机中最基本的、不能再分割的操作。例如数据从一个寄存器到另一个的拷贝修改寄存器的值如加1或清除一个寄存器执行算术或逻辑功能如把两个值相加并将结果存入一寄存器中对主存的一次读或写等等。计算机的所有操作均可以分解为不同微操作的序列。寄存器传输语言(RegisterTransferLanguageRTL)是一种初级硬件描述语言适于描述寄存器级的硬件组成能够精确而简练地描述计算机的各种微操作。用RTL描述微操作的最基本语句形式为:条件:微操作当冒号左边的所有条件满足时执行微操作规定的数据传送。例如α:XY表示在控制信号α为高时将Y的信息传送到X。一条RTL语句可以描述多个微操作各微操作之间以逗号分隔。2CPU的功能和基本结构(1)CPU的功能CPU包括控制器和运算器两大部分对于冯诺依曼结构的计算机CPU负责协调和控制计算机各部分执行程序的指令序列并对数据进行加工处理。具体功能包括: 控制程序的顺序执行(称指令控制) 产生完成每条指令所需的控制命令(称操作控制) 对各种操作实施时间上的控制(称时间控制) 对数据进行算术和逻辑运算(称数据加工) 对计算机中出现的异常情况和特殊请求进行处理(称中断处理)(2)CPU的基本结构由于CPU执行指令序列时要不断地取指令、分析指令和执行指令因此CPU应有相应的76   寄存器来存放指令(IR)、指令地址(PC)和数据(若干通用寄存器)有指令译码器以及根据 图41 CPU结构框图译码信息在规定的时间内产生控制信号的控制单元CU有完成数据处理的运算部件ALU以及对异常情况处理的中断系统。CPU的基本结构如图41所示。3指令执行过程指令执行过程分为取指令、分析指令和执行指令三步控制器通过对指令执行的控制完成对整个计算机的控制。一条指令从取指令开始到指令执行完成所需要的时间称为指令周期。不同的指令完成的功能不同执行的时间不同指令周期也就不同。可以将指令周期分为取指周期(FETCH)、译码周期(Decode)和执行周期(Execute)三个部分。 图42 一般CPU状态图CPU实际上是一个复杂的有限状态机通过确定状态及其对应的微操作就可以明确CPU为了取指令、译码指令和执行指令所必须完成的步骤。图42是CPU的一般状态图。总的来说CPU执行如下的操作序列。(1)取指周期每条指令在取指周期完成的工作是相同的即从存储器中取出一条指令然后转到译码周期。其RTL描述如下:FETCH1:MARPCFETCH2:MDRMPCPC+1FETCH3:IRMDR其中MAR为主存地址寄存器用于存放将被访问的主存单元地址MDR为主存数据寄存器存放欲存入主存的数据或刚从主存读出的数据。(2)译码周期对该指令进行译码即确定取到的是哪一种指令然后转移到这种指令对应的执行周期。注意译码周期实际上不对应任何状态而仅仅是取指令结束到各个独立的执行阶段的一个多路选择。(3)执行周期执行该指令然后转移到取指令周期去取下一条指令。不同的指令完成的功能不同执行的微操作序列也不同。例如: 无条件转移指令的执行周期的RTL可以为:JMP1:PCIR[地址] ADDX(X为主存单元地址)指令的执行周期的RTL可以为:ADD1:MARIR[地址X]ADD2:MDRMADD3:ACAC+MDR 存数指令STRX的执行周期的RTL可以为:STR1:MARIR[地址X]STR2:MDRACSTR3:MMDR77   其他指令均可以根据具体的数据通路和时序安排设计出相应的微操作序列并写出其RTL描述。如果考虑中断系统则指令周期中还应设置中断周期其微操作序列的RTL可以为:INT1:MDRPCINT2:MAR保存地址INT3:MMDRINT4:PC中断服务程序首地址4数据通路的功能和基本结构(1)数据通路的功能CPU中各部件之间采用何种方式连接?一种较直观的方法是在各部件之间创建直接通路但这将导致硬件设备量大结构复杂。另一种方法是在各部件之间设置总线利用总线分时地为各部件传送信息。采用总线方式能有效减少传输线使结构简单且便于控制。CPU内部数据通路的功能是完成CPU内部各寄存器之间、寄存器与ALU之间的数据传送。设计好CPU的数据通路也就基本上确定了CPU的总体结构。(2)数据通路的基本结构CPU内部寄存器及ALU之间通常采用总线方式传送数据但不同计算机的CPU通路结构可能差别较大。图43为单总线结构ALU以及所有寄存器之间的联系都通过单总线连接。存储器与CPU的连接通过MAR和MDR。图44为双总线结构的框图。两总线之间有一个连接器G当G接通时数据从总线A传送到总线B当G断开时两总线之间没有任何电的联系。图43 采用单总线结构的CPU数据通路 图44 采用双总线结构的CPU数据通路78   图45是PDP11CPU内部组织它是一种三总线结构:输入数据总线、ALU输出总线和寄存器数据总线。 图45 PDP11机的CPU内部数据通路5控制器的功能和组成(1)控制器的功能在程序的运行过程中计算机的各部件在控制器的控制下有条不紊地工作在各部件之间流动的指令和数据形成了指令流(instructionstream)和数据流(datastream)。指令流是处理器执行的指令序列数据流是根据指令的操作要求依次存取数据的序列而控制流(controlstream)则是由控制器发出的控制信号序列。因此从程序运行的角度来看控制器的基本功能是对指令流和数据流在时间与空间上实施正确的控制。控制器对指令流的控制 指令流出的控制(对取指令的控制) 指令分析与执行的控制 指令流向的控制(确定下一条指令的地址) 程序运行环境的建立与保护:所谓执行环境指的是指令执行时所占用的全部资源的状态包括功能部件、特征寄存器以及机器工作方式等的状态。控制器对数据流的控制主要包括对数据的流出与流入(即数据的存和取)的控制以及对数据变换、加工等操作的控制。(2)控制器的组成控制器主要由以下6部分组成。 寄存器:主要包括程序计数器PC(存放现行指令的地址)、指令寄存器IR(存放现行指令)、程序状态字(PSW)寄存器(反映机器运行的状态)、主存地址寄存器MAR(存放将被访问的主存单元地址)和主存数据寄存器MDR(存放欲存入主存的数据或刚从主存读出的数据)等。 指令译码器ID:对指令寄存器中的操作码进行分析解释产生相应的控制信号。 地址形成部件:根据指令的不同寻址方式用来形成操作数的有效地址。 时序信号发生部件:产生计算机中各个部件所需的各种时序信号主要包括时钟脉冲源和时序信号产生器。脉冲源产生一定频率的脉冲信号作为整个机器的时钟脉冲是机器周期和工作节拍的基准信号。 微操作控制信号产生部件:将指令译码器译出的信号与时序信号部件产生的各种时序信号进行逻辑综合产生计算机中各个功能部件所需的所有微操作信号。 中断控制逻辑:用来控制中断处理的硬件逻辑。(3)控制器的控制方式主要有:同步控制方式、异步控制方式和联合控制方式。在同步控制方式中各项操作都由统一的时序信号控制以最复杂指令的操作时间作为统一的时间间隔标准。该方式设计简单容易实现但浪费时间。79   在异步控制方式中各项操作不采用统一的时序信号控制而根据指令或部件的具体情况决定。这是一种“应答”方式它没有时间上的浪费因而提高了机器的效率但是控制比较复杂。一般的小、微型机通常采用联合控制方式即CPU内部基本时序采用同步方式按多数指令的需要设置节拍数对于某些复杂指令如果节拍数不够可采取延长节拍等方法当CPU通过总线向主存或其他外设交换数据时就转入异步方式对于外设与CPU之间的速度过于不匹配的情况则采用中断的方式。6时序系统时序系统是控制器的心脏其功能是为指令的执行提供各种定时信号。时序问题是计算机中一个很重要的问题在设计与调试过程中不能有半点差错。(1)指令周期和机器周期指令周期是指取指令、分析指令到执行完该指令所需的全部时间。由于各种指令的操作功能不同有的简单有的复杂因此各种指令的指令周期不尽相同。机器周期通常又称CPU周期通常把一条指令周期划分为若干个机器周期每个机器周期完成一个基本操作。一般机器的CPU周期有取指周期、取数周期、执行周期、中断周期等。不同的指令其指令周期中所包含的机器周期数是不同的差别可以很大。(2)节拍把一个机器周期分为若干个相等的时间段每一个时间段称为一个节拍。节拍常用具有一定宽度的电位信号表示称为节拍电位。节拍的宽度取决于CPU完成一次基本的微操作的时间。指令周期、机器周期和节拍的关系如图46所示。图46 指令周期、机器周期和节拍的关系由于不同的机器周期内需要完成的微操作内容和个数是不同的因此不同机器周期内所需要的节拍数也不相同。节拍的选取一般有统一节拍法、分散节拍法、延长节拍法和时针周期插入法等方法。(3)工作脉冲在一个节拍内常常设置一个或几个工作脉冲作为各种同步脉冲的来源以实现将稳定的运算结果打入寄存器和周期状态切换等功能。80   (4)多级时序系统小型机中常采用的机器周期、节拍、工作脉冲三级时序系统。微型机中常用的时序系统与小型机的不同为时钟周期时序系统。(5)节拍电位和工作脉冲的时间配合关系在计算机中节拍电位和工作脉冲所起的控制作用是不同的。节拍电位信号在数据通路传输中起开门或关门的作用工作脉冲则作为打入脉冲加在触发器的脉冲输入端起一个定时触发作用。通常触发器使用“电位-脉冲”工作方式节拍电位控制信息送到触发器的D输入端工作脉冲送到CP输入端即可完成信息的装载。7CPU设计过程一个CPU就是一个复杂的有限状态机这也就告诉了我们设计CPU的途径主要步骤如下:1)明确CPU的用途确定指令集结构。首先分析CPU的应用一旦知道它的用途就可以确定它所运行的程序类型从而确定指令集结构(指令功能、指令格式、寻址方式等)选择程序员用来编写应用程序的那些指令以及这些指令用到的寄存器。另外还要确定数据的表示方法CPU与主存、I/O设备的连接方式。2)设计CPU的状态图。分析每条指令在取指周期、译码周期和执行周期所必须完成的微操作即分析指令流和数据流是如何流动的需要哪些微操作并据此设计CPU的状态图确定整个CPU所需的状态及每个状态所对应的微操作。3)建立CPU内部数据通路。首先考察CPU中存在哪些数据传送从而确定数据通路中需要有那些部件然后在直接通路和总线两种连接方式中做出选择(除了特别小的系统外通常总线方式更可行)下一步将每个部件都连接到总线上注意在寄存器的输出与总线之间均要加入三态缓冲器及相应的控制信号最后根据CPU的具体要求对数据通路进行优化。4)ALU设计。考察指令集中所有运算类指令的操作确定ALU需要完成的功能并采用具体的电路加以实现。5)设计控制单元。设计控制单元来产生控制信号从而使所有的操作能以正确的顺序执行。控制单元的设计主要有硬布线(亦称组合逻辑)和微程序(亦称存储逻辑)两种方法二者的根本区别在于微操作控制信号产生部件的实现方法不同而控制器中的其他部分基本上是大同小异的。硬布线控制器是采用组合逻辑技术来实现的其微操作控制信号产生部件是由门电路组成的复杂树形网络。微程序控制器是采用存储逻辑来实现的也就是把微操作信号代码化使每条机器指令转化成为一段微程序并存入一个专门的存储器(控制存储器)中微操作控制信号由微指令产生。8硬布线控制器设计控制器的输入是机器指令代码输出是微操作控制信号因此控制器的核心是微操作控制信号产生部件。一般来说组合逻辑控制器的设计步骤如下:1)列出微操作时间表。将指令流程图中的微操作合理地安排到各个机器周期的相应节拍和脉冲中去得到的一张表就称为微操作时间表。微操作时间表形象地表明:什么时间、根据什么条件发出哪些微操作信号。这是设计或分析控制逻辑的基本依据。2)进行微操作信号的综合。当列出所有指令的微操作时间表之后需要对它们进行综合分析把凡是要执行某一微操作的所有条件(哪条指令、哪个机器周期、哪个节拍和脉冲等)都考虑在内加以分类组合列出各微操作产生的逻辑表达式然后加以简化使逻辑表达式更为合理。81   3)实现电路。根据整理并化简的逻辑表达式组可以用一系列组合逻辑电路加以实现即根据逻辑表达式画出逻辑电路图用逻辑门电路的组合来实现之也可以直接根据逻辑表达式用PLA逻辑实现。9微程序控制器设计(1)微程序控制器的基本设计思想微程序控制器采用微程序的方式来实现计算机控制信号的形成它将有关微操作控制信号构成微指令若干微指令组成一个微程序所有微程序都存放在控制存储器中读出一条微指令就产生一组微操作控制信号。因此将原来的组合逻辑变成了存储逻辑还可以用类似程序设计的方法来设计控制逻辑。(2)基本概念微命令控制计算机各部件完成某个微操作的命令微操作由微命令实现的操作微指令在机器的一个节拍中一组实现一定操作功能的微命令。微周期执行一条微指令和取出下条微指令所需的时间。微程序一系列微指令的有序集合就是微程序。微操作是执行部件中最基本的操作。由于数据通路的结构关系微操作可分为相容的和互斥的两种。所谓相容的微操作是指能够同时或在同一个节拍内并行执行的微操作。所谓互斥的微操作是指不能同时或不能在同一个节拍内并行执行的微操作。(3)微程序控制器的基本组成 图47 微程序控制器的 基本结构框图图47给出了一个微程序控制器的基本结构框图微程序控制器主要由以下部分组成: 控制存储器(μCM):这是微程序控制器的核心部件用来存放微程序。 微指令寄存器(μIR):用来存放从μCM取出的正在执行的微指令它的位数同微指令字长相等。 微地址形成部件:用来产生初始微地址和后继微地址以保证微指令的连续执行。 微地址寄存器(μMAR):它接受微地址形成部件送来的微地址为下一步从μCM中读取微指令作准备。(4)微程序控制器的工作过程微程序控制器的工作过程实际上就是在微程序控制器的控制下计算机执行机器指令的过程该过程可以描述如下:1)执行取指令的公操作。取指令的公操作通常由一段取指微程序来完成在机器开始运行时自动将取指微程序的入口微地址送μMAR并从μCM中读出相应的微指令送入μIR。微指令的操作控制字段产生有关的微命令用来控制实现取机器指令的公操作。当取指微程序执行完后从主存中取出的机器指令就已存入指令寄存器IR中。2)由机器指令的操作码字段通过微地址形成部件产生出该机器指令所对应的微程序的入口地址并送入μMAR。3)从μCM中逐条取出对应的微指令并执行之每条微指令都能自动产生下一条微指令的地址。4)一条机器指令对应的微程序的最后一条微指令执行完毕后其下一条微指令地址又回到82   取指微程序的入口地址然后继续第步以完成取下条机器指令的公操作。以上是一条机器指令的执行过程如此周而复始直到整个程序的所有机器指令执行完毕。(5)微指令的基本格式 图48 微指令的基本格式微指令的基本格式如图48所示包括操作控制字段和顺序控制字段两大部分前者发出各种控制信号后者可指出后继微指令的地址(简称下址)以控制微指令序列的执行顺序。通常顺序控制字段又分为两个部分:选择域(SELECTfield)和地址域(ADDRfield)其中选择域定义了下一条微指令地址的源(注意它指明的不是实际的地址只是地址的来源)而地址域指明一个绝对地址。(6)微指令编码微指令编码指的是操作控制字段的编码方法主要有以下5种基本的编码方法。1)直接控制法操作控制字段的每一位就代表一个微命令该位为“1”表示这个微命令有效为“0”表示这个微命令无效。每个微命令对应并控制计算机中的一个微操作如图49所示。这种方法并行性强操作速度快但微指令字太长造成控存容量极大。2)最短字长编码法将所有的微命令统一编码每条微指令只定义一个微命令从而达到微指令字最短的目的如图410。最短字长编码法的微指令字长最短但必须通过译码以后才能得到需要的微命令且操作的并行性差。图49 直接控制法 图410 最短字长编码法3)字段直接编码法 图411 字段直接编码法将操作控制字段分为若干个小段将一组互斥的微命令放在一个字段中段内采用最短编码法段与段之间采用直接控制法如图411所示。这种编码方法缩短了微指令字因此得到了广泛的应用。4)字段间接编码法一个字段的某些编码不能独立地定义某些微命令而需要与其他字段的编码来联合定义因此又称为隐式编码如图412所示。这种方法进一步减少了微指令的长度但通常可能会削弱微指令的并行控制能力且译码电路相应比较复杂因此它只作为字段直接编码法的一种补充。83   图412 字段间接编码法5)常数字段的设置在微指令中一般设有一个常数字段E用来提供常数、计数器初值、转移地址参数以及建立状态字的条件码等。(7)微地址的形成每条机器指令对应一段微程序如何找到对应的微程序并按正确的顺序执行微程序中的微指令序列是微地址形成部件要解决的问题。图48微指令格式中的顺序控制字段就是用来控制产生微地址的。微程序控制器可以按照设计者希望的任何一种地址顺序来执行但常用的下址生成方法有:当前地址加1、绝对地址、映射机制和微子程序返回地址等四种。1)当前地址加1下址的一种可能的值是控制存储器μCM中的下一地址即当前地址加1。通常微程序在μCM中是顺序存放的这提高了可读性并使微程序的调试更容易。在很多CPU中取指周期和每条指令的执行周期的微指令都是顺序存储的此时微程序控制器通常用并行加法器把当前地址加1作为其可能的下址。2)绝对地址它是由顺序控制字段中地址域直接提供的一个绝对地址。在微程序中跳转是不可避免的比如说在每一条指令执行周期的末尾微程序控制器必须跳回到取指令周期的开始。跳转也可以用于更有效地利用控制存储器。3)映射机制每个微程序控制器必须能够访问正确的执行周期这一功能可用映射逻辑(mappinglogic)来实现。已读取指令的操作码输入到一个映射硬件此硬件将该操作码转换或映射成该指令执行周期的第一条微指令所在的地址把这一地址装载到μMAR寄存器微程序控制器就能转入到正确的执行过程。这种映射硬件只在CPU中用一次即在取指令周期的末端。4)微子程序返回地址微程序控制器可以有子程序当几条指令要完成同样的微操作序列作为其执行的一部分时这些序列就可以用微子程序(microsubroutine)来实现。当调用微子程序时其下址作为一个绝对地址由微指令中的地址域直接给出而返回地址即当前地址加1存储在微子程序寄存器(microsubroutineregister)或硬件堆栈中此地址用于从微子程序中返回。84   (8)微指令格式主要有三种:水平型微指令、垂直型微指令和直接生成控制信号的微指令。水平型微指令是指一次能定义并能并行执行多个微命令的微指令。它通常具有如下特征:微指令字较长微指令中的微操作有高度的并行性每条机器指令对应得微程序比较短微指令译码简单。垂直型微指令是在设置微操作控制字段时一次只能执行一个微命令的微指令。其特征是:微指令字短微指令的并行微操作能力有限一条微指令一般只包含一个微操作命令每条机器指令对应的微程序长微指令译码比较复杂。水平微指令和垂直微指令都是对微操作进行编码而直接生成控制信号的微指令则直接把控制信号值存储在微指令中。这种方法不需要额外的逻辑来把控制存储器的输出转化成控制信号但其代码的可读性差而且调试也更困难。(9)微程序控制器设计步骤在进行微程序控制器设计之前首先也要确定指令集结构、CPU状态图、数据通路和ALU结构然后再设计控制单元控制单元的设计步骤如下:1)拟定微命令系统。初步拟定微命令系统并同时进行微周期时序和微指令格式的设计包括微指令字段的划分、编码方式的选择、微地址(下址)的形成等等。2)编制微程序。从优化设计出发分析、综合和论证第1)步。对微命令系统、微指令格式进行反复的核对和审查并进行适当的修改对重复和多余的微指令进行合并和精简直至编制出全部机器指令的微程序为止。3)微程序代码化。将修改完善的微程序转换成二进制代码这一过程称为代码化或代真。代真工作可以用人工实现也可以在机器上用程序实现。4)写入控制存储器。最后将一串串二进制代码按地址写入控制存储器的对应单元。10微程序控制和硬布线控制的比较设计CPU时设计者既可以采用微程序控制单元也可以采用硬布线控制单元两种方法各有利弊并且都被用于主要的微处理器中。(1)指令集的复杂性随着指令条数的增加产生控制信号的硬件复杂性也随之增加。对硬布线控制来说有更多状态要发出这些微操作会导致用来生成寄存器装载、加1以及清除信号所需的组合逻辑的增加。对于微程序控制来说增加微操作只是增加微指令的位数或增加译码器的个数然而这种复杂性的增加比起硬布线控制来说要少得多。(2)修改的容易度硬布线控制单元需要修改硬件来扩充CPU而微程序控制单元常常只需改变微程序因此通常修改微代码比重新设计硬件要容易得多。(3)时钟速度硬布线CPU使用的组合逻辑产生控制信号通常比微程序ROM的查表速度要快因此硬布线CPU的时钟速度和程序运行速度通常都比微程序控制CPU的要快。11指令流水线(1)指令流水线的基本概念从前面的讨论可知指令的执行过程可以分成取指令、分析指令和执行指令三步在串行执行方式下程序中的各条指令是按顺序串行执行的即上一条指令执行完后才去取下一条指令如图413所示。串行方式控制简单但设备利用率低速度慢。85   图413 指令的串行执行方式指令流水线(instructionpipeline)类似于生产装配线它将指令的执行过程分成若干段各段并行重叠执行。例如MIPS处理器将一个指令周期分成取指(IF)、指令译码(ID)、取操作数(FO)、执行指令(EX)和存结果(WB)五个阶段就形成了五级流水线如图414所示。 图414 指令的流水线执行方式注意每个段都有一个寄存器在段的后期锁存数据并且在段与段之间同步数据流。采用流水线方式每个时钟周期一条指令进入流水线在填充流水线的初始延时后每个时钟周期产生一个结果因此程序的执行速度得以大幅度地提高。从图414可以看出假设每个段完成其操作的时间相等均为T那么每条指令的指令周期仍然是5T指令流水线并没有减少每条指令的处理时间(实际上段间寄存器使每条指令的处理时间稍微增加了一些在此忽略不计)但当第一条指令处理完后流水线每隔T时间就能得到一条指令的处理结果相当于处理器的速度提高了5倍。如果各段的执行时间不相等则各段应以所有段中处理时间最长的段(称为“瓶颈”段)为基准此时处理时间短的段会处于等待状态影响流水线作用的发挥。解决瓶颈段的问题可采用细分瓶颈段、重复设置瓶颈段、短段合并等方法。此外流水线中的“相关”有可能会使流水线停顿降低流水线性能。流水线中的相关是指相邻或相近的两条指令因存在某种关联后一条指令不能在原指定的时钟周期开始执行。有三种类型的相关:结构相关、数据相关和控制相关。当硬件资源满足不了同时重叠执行的指令的要求而发生资源冲突时就发生了结构相关。当一条指令需要用到前面某条指令的结果从而不能重叠执行时就发生了数据相关。当流水线遇到分支指令和其他能够改变PC值的指令时就会发生控制相关。目前已有多种解决相关问题的方法具体方案见计算机系统结构教材。(2)超标量和动态流水线的基本概念1)超标量流水线为了获得更高的性能可以使用超标量流水线。超标量在每个时钟周期内可以同时并行流出多条指令即以并行操作方式将两条或两条以上指令编译并执行从而使流水线在一个时钟周期内产生多条指令的结果。图415是两路超标量指令执行示意图每个周期流出两条指令:一条指令可以是取指令、存指令、分支指令或整数运算操作另一条指令可以是任意的浮点操作。图415 两路超标量指令执行示意图86   实际上目前的典型超标量处理器每个时钟周期可流出1到8条指令通常情况下这些指令必须不相关且满足某些限制条件。如果指令流中的指令相关或不满足限制条件则只能流出这条指令前面的指令这条指令只能暂停因此超标量处理器流出的指令数是不定的即具有动态多流出能力。超标量处理器的指令序列可以采用静态调度或动态调度。2)动态流水线对于多功能流水线来说按同一时间内各段之间的连接方式流水线可分为静态流水线和动态流水线两类。静态流水线是指在同一时刻各段只能按同一种功能连接方式工作的流水线。在静态流水线中只有当输入是一串相同的运算操作时流水的效率才能得到发挥。而动态流水线是指在同一时刻各段可以按不同功能连接方式工作的流水线。动态流水线不是非得相同运算的一串操作才能流水处理因此能提高流水线的效率但使流水线的控制变得复杂。例如TIASC多功能流水线由输入、减阶、对阶移位、相加、规格化、相乘、累加和输出等八个段组成其中输入、减阶、对阶移位、相加、规格化和输出等六段构成浮点加法运算功能输入、相乘、累加和输出等四段构成乘法运算功能。其动态流水线和静态流水线的示意图如图416所示。图416 静态、动态流水线时空图412!'()'1重点明确CPU的功能熟悉CPU的总体结构熟悉控制器的组成和各部件的作用。熟悉指令的执行过程。理解时序在控制中的重要作用。掌握组合逻辑控制器的设计步骤和方法。掌握微程序87   控制器的组成、工作原理及微指令。2难点多级时序系统微指令格式、微指令的编码方式和后继微指令地址的形成方式。42!'()'!421!*,第一部分 解释下列概念【例41】 指令周期和微指令周期答:指令周期是指从取指令开始到指令执行完成所需要的全部时间微指令周期是指从控制存储器读出一条微指令并执行完相应的微操作所需要的时间。【例42】 机器语言程序和微程序答:机器语言程序是机器指令的有序集合微程序是微指令的有序集合一条机器指令的功能由一个微程序来实现。【例43】 机器指令和微指令答:机器指令是指示计算机执行某种操作的命令是软件和硬件的接口之一是用户设计程序的最小单位还能被硬件直接识别。微指令是控制实现一定微操作功能的微命令的组合。机器指令可由有序微指令组成的微程序来解释。【例44】 微指令和毫微指令答:微指令是用来解释机器指令的毫微指令是用来解释微指令的。【例45】 微操作命令和微操作答:微操作命令是控制为操作完成的命令微操作是由微操作命令控制实现的最基本操作。【例46】 MAR和μMAR答:MAR为存储器地址寄存器用来存放欲访问的主存单元地址μMAR是控制存储器地址寄存器用来存放微指令在控制存储器中的地址。第二部分 问答题【例47】 指令周期内节拍划分的原则是什么?答:以时钟周期为单位将指令周期划分为若干相等的节拍。除了访存微操作以外一般的微操作需要在一个节拍内完成。【例48】 试述指令周期、时钟周期、存储周期及三者的关系。解:指令周期指从取指令开始到指令执行完成所需要的全部时间。时钟周期是计算机产生的相邻两个时钟脉冲间的间隔时间即机器主频的倒数。存储周期是存储器系统的工作周期即两次访问存储器的最小时间间隔。三者的关系是:指令周期由多个时钟周期构成并且通常是存储周期的整数倍。【例49】 说明控制器如何区分从主存中读出的信息是控制信息(指令)还是数据信息?答:根据程序计数器PC访问存储器得到的信息被送往指令寄存器IR即以PC为地址访存得到的信息是指令(控制信息)。从指令执行周期的角度也可以说控制器的取指令周期取出的88   一定是控制信息。而根据地址寄存器AR访问存储器得到参加运算的数据信息。从指令执行周期的角度也可以说控制器的其他工作周期从存储器取出的信息则是数据信息。【例410】 机器指令包含哪两个基本要素?微指令又包含哪两个基本要素?程序靠什么实现顺序执行?靠什么实现转移?微程序中顺序执行和转移依靠什么方法?答:机器指令包含操作码和地址码。微指令包含操作控制字段和顺序控制字段。程序中考程序计数器PC计数实现程序的顺序执行靠转移指令实现转移。在微程序中可以靠微程序计数器μPC计数实现微程序的顺序执行也可以靠顺序控制字段中的地址域实现而微程序的转移可以靠顺序控制字段中的地址域直接实现也可以靠选择域和地址域共同确定下一条微指令的地址来实现。【例411】 设计组合逻辑控制器的步骤有哪些?答:(1)明确设计环境包括指令系统、主存的存储周期、时钟周期、部件的结构等。(2)分析指令流程根据指令功能要求和各部件间的数据通路为各种指令的微操作序列选用适当的节拍信号。(3)编制指令操作时间表不断安排、调整与完善微操作的时序、控制器的结构和数据通路的设置。(4)形成微操作表便于清晰、有条理地进行微操作信号的综合。(5)进行微操作的逻辑综合形成每个微操作对应的逻辑表达式以及微操作控制部件的逻辑图。(6)产生各个微操作的逻辑线路。【例412】 试述微命令、微操作、微指令、微程序之间的关系。答:微命令是构成控制信号序列的最小单位由控制部件向执行部件发出。微操作是执行部件接受微命令后所进行的最基本的操作。微命令是微操作的控制信号而微操作是微命令控制的操作过程。对控制部件是微命令对执行部件是微操作在计算机内部实质上是同一个信号。微指令是一组实现一定操作功能的微命令的组合通常用二进制编码表示。微程序是由有序的微指令组成的存放在控制存储器中。一条机器指令对应一段微程序。【例413】 什么是垂直型微指令?什么是水平型微指令?各有何特点?答:一条微指令中定义并执行多个并行操作微命令的微指令是水平型微指令其并行操作能力强效率高。而且水平型微指令的微命令一般直接控制对象故执行每条微指令的时间短。又因水平型微指令字长故可用较少的微指令数来实现一条机器指令的功能。垂直型微指令的结构类似于一般机器指令的结构由微操作码译码规定微指令的功能。通常一条微指令只能有1~2个微操作命令。因为它要经过译码才控制对象影响每条微指令的执行时间。而且垂直型微指令字短实现一条机器指令的微程序要比水平型微指令编写的微程序长得多它是用较长的微程序结构来换取较短的微指令结构。【例414】 微指令字中微操作码字段(操作控制字段)有哪几种常见的编码方法?各有何特点?答:微指令中操作控制字段主要有直接控制编码、最短字长编码、字段直接编码、字段间接编码、常数源字段E等编码方式。(1)直接控制编码的特点是:控制简单直观操作并行性最好可以提高速度但微指令字太长控存容量过大且指令字利用效率低。(2)最短字长编码的特点是:指令字长短但执行效率低。(3)字段直接编码的特点是:吸收了直接控制编码和最短字长编码的优点既能缩短微指89   令字长又有较高的并行性执行速度快。(4)字段间接编码的特点是:一个控制字段的某些微操作需要另外一个解释字段来解释才能确定一个解释字段要同时解释多个控制字段。这种方法更能缩短微指令字长。(5)常数源字段E的特点是:可以减少微指令字长和增加微指令的灵活性。【例415】 组合逻辑控制器和微程序控制器的设计思想有什么不同?答:组合逻辑控制器的设计思想是采用硬布线逻辑。首先根据指令系统写出对应所有机器指令的全部微操作及其节拍安排然后列出操作时间表再写出每一种微操作的逻辑表达式化简后画出相应的逻辑图即完成了设计。这种逻辑电路主要是由门电路构成的复杂树形网络一旦构成后除非重新设计和物理上对它重新接线否则要增加新的控制功能是不可能的。微程序控制器的设计思想是采用存储逻辑。首先根据指令系统写出对应所有机器指令的全部微操作及其节拍安排然后列出操作时间表再根据微操作的数目经压缩确定微指令的控制方式、下地址形成方式、微指令格式及微指令字长编写出全部微指令的代码即码点即完成了设计。最后将微指令的码点注入到ROM中即可作为微操作的命令信号。【例416】 画出组合逻辑控制器框图根据指令处理过程结合有关部件说明控制器的工作原理。 图417 组合逻辑控制器框图答:组合逻辑控制器框图如图417所示。完成一条指令经过取指阶段和执行阶段。取指阶段完成的任务是:根据PC给定的地址发出读命令访存后取出相应的指令送至IR再经指令译码器ID给出信号控制微操作命令序列形成部件并修改PC。执行阶段完成的任务是:微操作命令序列形成部件同时还接受时序电路发来的时序信号在指令译码输出的共同作用下按指令操作码的含义发出一系列微操作命令信号控制相应部件操作实现指令功能。【例417】 画出微程序控制器框图根据指令处理过程结合有关部件说明控制器的工作原理。 图418 微程序控制器框图答:微程序控制器框图如图418所示。完成一条指令经过取指和执行两个阶段。首先将取指操作微程序的首地址送至μMAR读出该条微指令并送至μIR。此时微指令的微操作码字段(即控制字段)发出各种微命令同时由微地址码字段指出下条微指令的地址然后重复取微指令、执行微指令的操作直到将PC指出的存储单元中的指令读至IR并自动修改后继指令地址。这一过程为取指阶段。接着根据指令的操作码经过微地址形90   成部件产生对应该机器指令的微程序首地址并送至μMAR然后从控制存储器CM中读出微指令并送至μIR。此时微操作码字段发出各种微命令且微地址码指出下条微指令地址然后重复取微指令、执行微指令的操作直到对应该机器指令的操作全部执行完并指示出取指微程序的首地址。这一过程为执行机器指令的阶段。可见每完成一条机器指令需相应完成两个微程序:一个是取指微程序另一个是对应该机器指令的微程序。而且所有的微命令都是由控制存储器中的微指令发出的。【例418】 为什么说流水线CPU比非流水线CPU具有更大的吞吐能力?答:因为在流水线CPU中当任务饱满时任务源源不断输入流水线不论流水线有多少段每隔一个时钟周期都能输出一个结果。从理论上来说一个具有K段的流水线它处理n个任务需要的时钟周期数为TK=K+(n-1)其中K个周期用于处理第一个任务K个周期后流水线被填满剩余的n-1个任务只需要n-1个时钟周期就完成了。而在非流水线的情况下CPU处理n个任务需要的时钟周期数为T=nK。因此K级流水线CPU与非流水线CPU的加速比为CK=T/TK=(nK)/[K+(n-1)]。显然当nK时CKK。这就是说理论上流水线CPU的吞吐能力比非流水线CPU的大K倍。第三部分 应用题【例419】 设机器A的主频为8MHz机器周期含4个时钟周期且该机的平均指令执行速度是04MIPS试求该机的平均指令周期和机器周期每个指令周期中含几个机器周期?如果机器B的主频为12MHz且机器周期也含4个时钟周期试计算B机的平均指令执行速度为多少MIPS?解:根据机器A的主频为8MHz得时钟周期为1/8MHz=0125μs(1)机器周期=01254=05μs(2)平均指令执行时间是1/04=25μs(3)每个指令周期含25/05=5个机器周期(4)在机器周期所含时钟周期数相同的前提下两机平均指令执行速度与它们的主频有关即:A机的平均指令速度B机的平均指令速度=A机主频B机主频则B机的平均指令执行速度=04MIPS12MHz8MHz=06MIPS。 图419 主机框图【例420】 主机框图如图419所示其中有一个累加器AC一个状态条件寄存器和其他四个寄存器各部分之间的连线表示数据通路箭头表示信息传送方向。(1)标明图中a、b、c、d四个寄存器的名称。(2)简述指令从主存取到控制器的通路。(3)简述数据在运算器和主存之间进行存/取访问的数据通路。(4)以完成一条加法指令ADDK(K为主存地址)为例写出该指令取指阶段和执行阶段的信息通路。答:(1)a为存储器数据寄存器MDRb为指令寄存器IRc为存储器地址寄存器MARd为程序计数器PC。(2)MMDRIR操作控制器。91   (3)存储器读MMDRALUAC存储器写ACMDRM(4)取指阶段PCMAR  1R(命令存储器读)M(MAR)MDRMDRIRIR操作控制器PC+1PC执行阶段AD(IR)MAR  1RM(MAR)MDRMDRALU  ACALUALUAC及状态寄存器【例421】 双总线结构的机器(如图420所示)图中IR为指令寄存器PC为程序计数器MAR为存储器地址寄存器M为主存(受R/W信号控制)MDR为存储器数据寄存器R0、R1、R2、R3、X、Y均为寄存器ALU由+、-控制信号决定完成何种操作控制信号G控制一个门电路。此外线上标注有控制信号如Yi表示寄存器Y的输入控制信号R1o表示寄存器R1的输出控制信号未标字符的线为直通线不受控制。图420 双总线结构的机器图421 信息流程图及相应的控制信号图设ADDR2R0指令完成(R2)+(R0)R2的操作试画出其指令周期信息流程图(假设指令的地址已放在PC中)并列出相应的微操作控制信号序列。答:ADDR2R0指令周期的信息流程图及相应的控制信号如图421所示。【例422】 某假想机主要部件如图422所示其中: LAA输入端选择器 LBB输入端选择器M主存MDR主存数据寄存器IR指令寄存器MAR主存地址寄存器PC程序计数器R0~R3通用寄存器C、D暂存器92   (1)若采用单总线结构试补充各部件之间的主要连接线并注明数据流动方向。(2)写出“ADD(R1)(R2)”指令取指阶段和执行阶段的信息流程。R1寄存器中存放源图422 某假想机主要部件图操作数的地址R2寄存器中存放的是目的操作数的地址。答:根据要求采用单总线结构将各寄存器接到单总线上而且用C、D两个暂存器存放ALU两端口的操作数并将其输出直接接到ALU的AB两输入端上省去LA和LB则可得该机器框图如图423所示。ADD(R1)(R2)指令取指阶段和执行阶段的信息流程图如图424所示。 图 423图 424 【例423】 画出单总线CPU内部框图(寄存器级)拟出加法指令ADDR1(R2)的读取与执行流程。源寻址方式采用寄存器间址方式。解:单总线CPU内部框图如图425所示。图425 单总线CPU内部框图93   ADDR1(R2)的读取流程为:PCMARPC+1PCM(MAR)MDRIR其执行流程为:R2MARM(MAR)MDRYR1+YZZR1【例424】 假设某指令流水线分为取指(IF)、指令译码(ID)、取操作数(FO)、执行指令(EX)和存结果(WB)五个段现共有10条指令连续输入流水线。(1)画出指令周期流程。(2)画出非流水线时空图。(3)画出流水线时空图。(4)假设时钟周期为100ns求流水线的实际吞吐量(单位时间执行完毕的指令数)。(5)求该流水线的加速比。 图426 指令周期流程图解:(1)根据指令周期包括IF、ID、FO、EX、WB五个段可画出指令周期流程如图426所示。(2)假设一个时间单位为一个时钟周期则非流水线每隔5个时钟周期才有一个结果输出其时空图如图427所示。图427 非流水线时空图(3)流水线时空图如图428所示。由图可见第一条指令需要5个时钟周期出结果但之后每一个时钟周期可以输出一个结果即执行完一条指令。图428 流水线时空图(4)由流水线时空图图428可知10条指令在14个时钟周期结束时执行完毕故实际吞94   吐率为10/(14100ns)0

职业精品

精彩专题

上传我的资料

热门资料

资料评价:

/ 22
所需积分:1 立即下载

意见
反馈

返回
顶部

Q