版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 计算机组成原理当用计算机解决某个问题时,我们首先必须为它编写程序。从上一章知道,程序是一个指令序列,这个序列明确告诉计算机应该执行什么操作,在什么地方找到用来操作的数据。一旦把程序装入内存储器,就可以由计算机来自动完成取出指令和执行指令的任务。专门用来完成此项工作的计算机部件称为中央处理器,通常简称CPU。 计算机组成原理作为控制并执行指令的部件,CPU对整个计算机系统的运行是至关重要的 不仅要与计算机的其他功能部件进行信息交换 还要控制这些功能部件的操作CPU工作过程 编写程序,把程序同数据预先保存到主存储器中 计算机工作时, 按顺序逐条取出指令,分析指令,执行指令 自动转到下一条指令 计
2、算机一条一条地执行指令,实现预先设计的程序控制,直到程序规定的任务完成为止1)程序控制 2)操作控制 3)时间控制 4)数据加工程序控制就是控制指令的执行顺序程序是指令的有序集合 指令的相互顺序不能任意颠倒,必须严格按照程序规定的顺序执行保证计算机按一定顺序执行程序是CPU的首要任务操作控制就是控制指令进行操作一条指令的功能往往由若干个操作信号的组合来实现 CPU管理并产生每条指令的操作信号 把各种操作信号送往相应的部件 从而控制这些部件按指令的要求进行操作时间控制就是对各种操作实施定时控制 因为在计算机中,各种指令的操作信号均受到时间的严格定时。另一方面,一条指令的整个执行过程也受到时间的严
3、格定时。 只有这样,计算机才能有条不紊地工作数据加工就是对数据进行算术和逻辑运算完成数据的加工处理,是CPU的根本任务传统上,CPU由控制器和运算器这两个主要部件组成 新型CPU集成了一些原先置于CPU之外的分立功能部件 如浮点处理器、高速缓存(Cache)等 大大提高CPU性能指标,也使得CPU的内部组成日益复杂化控制器是整个计算机系统的指挥中心 在控制器的指挥控制下,运算器、存储器和输入/输出设备等部件协同工作,构成一台完整的通用计算机控制器根据程序预定的指令执行顺序, 从主存取出一条指令, 按照该指令的功能,用硬件产生带有时序标志的一系列微操作控制信号 控制计算机内各功能部件的操作 协调
4、和指挥整个计算机实现指令的功能控制器的组成 程序计数器(PC)、指令寄存器(IR)、指令译码器(ID)、时序发生器、操作控制器控制器的主要功能从主存中取出一条指令,并指出下一条指令在主存中的位置对指令进行译码,并产生相应的操作控制信号,以便启动规定的动作指挥并控制CPU、主存和输入/输出设备之间数据流动的方向运算器是计算机中用于实现数据加工处理功能的部件 接受控制器的命令,完成对操作数据的加工处理任务 其核心部件是算术逻辑单元ALU相对控制器而言,运算器接受控制器的命令而进行动作 即运算器所进行的全部操作都是由控制器发出的控制信号来指挥的 所以是执行部件运算器的组成 算术逻辑单元(ALU)、累
5、加寄存器(AC)、数据寄存器(DR)、程序状态字寄存器(PSW)运算器主要功能执行所有的算术运算执行所有的逻辑运算,并进行逻辑测试三、CPU中的主要寄存器各种计算机的CPU可能有这样或那样的不同,但是在CPU中至少要有六类寄存器,如上图所示。 这些寄存器是:(1)指令寄存器(IR);(2)程序计数器(PC);(3)地址寄存器(AR);(4)缓冲寄存器(DR);(5)累加寄存器(AC);(6)状态条件寄存器(PSW)。 上述这些寄存器用来暂存一个计算机字。根据需要,可以扩充其数目。下面详细介绍这些寄存器的功能与结构。数据寄存器(Data Register,DR)又称数据缓冲寄存器 其主要功能是作
6、为CPU和主存、外设之间信息传输的中转站 用以弥补CPU和主存、外设之间操作速度上的差异数据寄存器用来暂时存放由主存储器读出的一条指令或一个数据字当向主存存入一条指令或一个数据字时,也将它们暂时存放在数据寄存器中数据寄存器的作用作为CPU和主存、外围设备之间信息传送的中转站弥补CPU和主存、外围设备之间在操作速度上的差异在单累加器结构的运算器中,数据寄存器还可兼作操作数寄存器指令寄存器(Instruction Register,IR)用来保存当前正在执行的一条指令当执行一条指令时, 首先把该指令从主存读取到数据寄存器中 然后再传送至指令寄存器指令译码器(Instruction Decoder,
7、ID) 对操作码进行测试,识别出所要求的操作 对指令寄存器的操作码部分进行译码,以产生指令所要求操作的控制电位,并将其送到微操作控制线路上 在时序部件定时信号的作用下,产生具体的操作控制信号指令寄存器中操作码字段的输出就是指令译码器的输入 操作码一经译码,即可向操作控制器发出具体操作的特定信号程序计数器(Program Counter,PC)用来指出下一条指令在主存储器中的地址在程序执行之前, 首先必须将程序的首地址,即程序第一条指令所在主存单元的地址送入PC 因此PC的内容即是从主存提取的第一条指令的地址当执行指令时, CPU能自动递增PC的内容,使其始终保存将要执行的下一条指令的主存地址,
8、为取下一条指令做好准备 若为单字长指令,则(PC)+1PC 若为双字长指令,则(PC)+2PC,以此类推 当遇到转移指令时,下一条指令的地址将由转移指令的地址码字段来指定程序计数器具有寄存信息和计数两种功能地址寄存器(Address Register,AR)用来保存CPU当前所访问的主存单元的地址由于在主存和CPU之间存在操作速度上的差异,必须使用地址寄存器来暂时保存主存的地址信息,直到主存的存取操作完成为止当CPU和主存进行信息交换时,都要使用地址寄存器和数据寄存器如果把外围设备与主存单元进行统一编址,那么,当CPU和外围设备交换信息时,同样要使用地址寄存器和数据寄存器累加寄存器通常简称累加
9、器(Accumulator,AC),是一个通用寄存器累加器的功能 当运算器的算术逻辑单元ALU执行算术或逻辑运算时,为ALU提供一个工作区,可以为ALU暂时保存一个操作数或运算结果显然,运算器中至少要有一个累加寄存器程序状态字(Program Status Word,PSW)用来表征当前运算的状态及程序的工作方式程序状态字寄存器 用来保存由算术/逻辑指令运行或测试的结果所建立起来的各种条件码内容 如运算结果进/借位标志(C)、运算结果溢出标志(O)、运算结果为零标志(Z)、运算结果为负标志(N)、运算结果符号标志(S)等 这些标志位通常用1位触发器来保存 还用来保存中断和系统工作状态等信息 以
10、便CPU和系统及时了解机器运行状态和程序运行状态程序状态字寄存器是一个保存各种状态条件标志的寄存器四、操作控制器与时序产生器从上面叙述可知,CPU中的6类主要寄存器,每一个完成一种特定的功能。然而信息怎样才能在各寄存器之间传送呢?也就是说,数据的流动是由什么部件控制的呢? 微操作(Microoperation) 控制器在实现一条指令的功能时,总是把每一条指令分解成时间上先后有序的一系列最基本、最简单、不可再分的操作控制动作 这种最基本、最简单、不可再分的操作称为微操作数据通路(Data Path) 通常把许多寄存器之间传输信息的通路称为数据通路 控制信息从什么地方开始,中间经过哪个寄存器或多路
11、开关,最后传送到哪个寄存器在数据通路中, 微操作通过自身的控制作用和彼此之间的密切配合,使指令流、数据流等信息流按照预定的路径流动,以实现指令的功能 每一条指令的功能决定了它所需要的一系列带时序的微操作信号在各寄存器之间建立数据通路的任务,是由称为操作控制器的部件来完成的。操作控制器的功能,就是根据指令操作码和时序信号,产生各种操作控制信号,以便正确地建立数据通路,从而完成取指令和执行指令的控制。控制器的基本功能是负责指令的读出、识别和解释,并指挥协调各功能部件执行指令操作控制器是CPU中完成取指令和执行指令全过程的部件 其主要功能是根据指令操作码和时序信号的要求,产生各种操作控制信号 以便在
12、各寄存器之间正确地建立数据通路,从而完成取指令和执行指令的控制根据设计方法不同,操作控制器可分为组合逻辑控制器和微程序控制器两种 二者的区别在于其中的控制信号形成部件不同,进而反映出不同的设计原理和方法 根据使用器件的不同,组合逻辑控制器又可进一步细分为硬连线控制器和门阵列控制器CPU中除了操作控制器外,还必须包括时序发生器由于计算机的高速工作,每一个动作的时间必须非常严格,不能有任何差错时序发生器的作用 对操作控制器产生的各种控制信号实施时间上的严格控制 产生各功能部件所需要的定时控制信号下图示出了微程序控制器中使用的时序信号产生器的结构图时钟源用来为环形脉冲发生器提供频率稳定且电平匹配的方
13、波时钟脉冲信号。它通常由石英晶体振荡器和与非门组成的正反馈振荡电路组成,其输出送至环形脉冲发生器。 环形脉冲发生器的作用是产生一组有序的间隔相等或不等的脉冲序列,以便通过译码电路来产生最后所需的节拍脉冲。 为了在节拍脉冲上不带干扰毛刺,环形脉冲发生器通常采用循环移位寄存器形式。下图示出了一种典型的环形脉冲发生器及其译码逻辑。我们假定时钟源输出5MHz(脉冲宽度200ns)的时钟信号。当CPU发生出总清零信号( )使触发器C4置“1时,门3打开,第一个正脉冲通过门3触发器C1C3清“0”。经过半个主脉冲周期(100ns)的延迟,触发器C4由“1”状态翻到“0”状态,再经过半个主脉冲周期的延迟后,
14、第二个正脉冲的上升沿(即第一个 的后沿)作移位信号,使触发器C1C3变为“100”状态。此后,第二个 、第三个 连续通过门2形成移位信号,使C1C3相继变为“110”,“111”状态,其过程如下图所示。 在上面的环形脉冲发生器与译码逻辑图中的上半部示出了节拍脉冲和读/写时序的译码逻辑。我们假定在一个CPU周期中产生四个等间隔的节拍脉冲,那么其译码逻辑可表示为:节拍脉冲T10T40的脉冲宽度均为200ns,因此一个CPU周期便是800ns,在下一个CPU周期中,它们又按固定的时间关系,重复T10,T20,T30,T40的先后次序,以供给机器工作所需的原始节拍脉冲。计算机组成原理读/写时序信号的译
15、码逻辑表达式为:其中RD,WE和MREQ信号配合后进行存储的读/写操作; 而RD,WE和IORQ信号配合后配合后可进行外围设备的读/写操作。表达式右边带撇号的RD,WE,MREQ,IORQ是来自微程序控制器的控制信号,它们都是持续时间为一个CPU周期的节拍电位信号。这就是说,读/写时序信号RD,WE,MREQ,IORQ是受到控制的,它们只有在等式右边带撇号的控制信号有效后才能产生,而不像节拍脉冲T10T40那样,一旦加上电源后就会自动产生。 机器一旦接通电源,就会自动产生原始的节拍脉冲信号T10T40,然而,只有在启动机器运行的情况下,才允许时序产生器发出CPU工作所需的节拍脉冲T1T4。为此
16、需要由启停控制逻辑来控制T10T40的发送。同样,对读/写时序信号也需要由启停逻辑加以控制。下图给出的启停控制逻辑,它是一个实用有效的工具性电路。启停控制逻辑的核心是一个运行标志触发器Cr。当运行触发器为“1”时,原始节拍脉冲T10T40和读/写时序信号RD,WE,MREQ通过门电路发送出去,变成CPU真正需要的节拍脉冲信号T1T4和读/写。反之,当运行触发器“0”时,就关闭时序产生器。 由于启动计算机是随机的,停机也是随机的,为此必须要求:当计算机启动时,一定要从第一个节拍脉冲前沿开始工作,而在停机时一定要在第四个节拍脉冲结束后关闭时序产生器。只有这样,才能使发送出去的脉冲都是完整的脉冲。上
17、图中,在Cr(D触发器)下面加上一个RS触发器,且用 信号作Cr触发器的时钟控制端,那么就可以保证在T1的前沿开启时序产生器,而在T4的后沿关闭时序产生器。 计算机组成原理河北经贸大学信息技术学院2. 80386结构及外部连线Intel 80386包括指令部件、执行部件和存储管理部件等。指令部件完成取指及指令译码功能,并产生控制信号;执行部件包括ALU、乘法部件、寄存器组等;存储管理部件用来确定存储器地址。CPU的基本工作是执行预先存储的指令序列(即程序)程序的执行过程实际上是不断地取出指令、分析指令、执行指令的过程 CPU从存放程序的主存储器里取出一条指令 译码并执行这条指令 保存执行结果
18、紧接着又去取指令,译码,执行指令 如此周而复始,反复循环,使得计算机能够自动地工作 除非遇到停机指令,否则这个循环将一直进行下去1取指令阶段2指令译码阶段3执行指令阶段4访存取数阶段5结果写回阶段几乎所有的冯诺伊曼型计算机的CPU,其工作都可以分为5个阶段 取指令 指令译码 执行指令 访存取数 结果写回指令的执行过程取指令(Instruction Fetch,IF)阶段是将一条指令从主存中取到指令寄存器的过程程序计数器PC中的数值,用来指示当前指令在主存中的位置 当一条指令被取出后,PC中的数值将根据指令字长度而自动递增: 若为单字长指令,则(PC)+1PC; 若为双字长指令,则(PC)+2P
19、C,依此类推取出指令后,计算机立即进入指令译码(Instruction Decode,ID)阶段在指令译码阶段, 指令译码器按照预定的指令格式,对取回的指令进行拆分和解释,识别区分出不同的指令类别以及各种获取操作数的方法在组合逻辑控制的计算机中, 指令译码器对不同的指令操作码产生不同的控制电位,以形成不同的微操作序列在微程序控制的计算机中, 指令译码器用指令操作码来找到执行该指令的微程序的入口,并从此入口开始执行在传统的设计里,CPU中负责指令译码的部分是无法改变的在众多运用微程序控制技术的新型CPU中,微程序有时是可重写的,可以通过修改成品CPU来改变CPU的译码方式在取指令和指令译码阶段之
20、后,接着进入执行指令(Execute,EX)阶段 完成指令所规定的各种操作 具体实现指令的功能为此,CPU的不同部分被连接起来,以执行所需的操作 例如,如果要求完成一个加法运算, 算术逻辑单元ALU将被连接到一组输入和一组输出 输入端提供需要相加的数值 输出端将含有最后的运算结果根据指令需要,有可能要访问主存,读取操作数,这样就进入了访存取数(Memory,MEM)阶段 根据指令地址码,得到操作数在主存中的地址 从主存中读取该操作数用于运算作为最后一个阶段,结果写回(Writeback,WB)阶段把执行指令阶段的运行结果数据“写回”到某种存储形式: 结果数据经常被写到CPU的内部寄存器中,以便
21、被后续的指令快速地存取 在有些情况下,结果数据也可被写入相对较慢、但较廉价且容量较大的主存 许多指令还会改变程序状态字寄存器中标志位的状态 标识不同的操作结果,可被用来影响程序的动作在指令执行完毕、结果数据写回之后,若无意外事件(如结果溢出等)发生, 计算机就接着从程序计数器PC中取得下一条指令地址,开始新一轮的循环,下一个指令周期将顺序取出下一条指令许多新型CPU可以同时取出、译码和执行多条指令,体现并行处理的特性我们知道,指令和数据均放在内存里。从形式上看,它们都是二进制代码,所以对人来说,很难区分出这些代码是指令还是数据。然而CPU却能识别这些二进制代码:它能准确地判别出哪些是指令字,哪
22、些是数据字,并将它们送往相应的地方。本节我们将讨论在一些典型的指令周期中,CPU的各部分是怎样工作的,从而能加深对这一问题的理解和体验。 计算机所以能自动地工作,是因为CPU能从存放程序的内存里取出一条指令并执行这条指令;紧接着又是取指令,执行指令,如此周而复始,构成了一个封闭的循环。除非遇到停机指令,否则这个循环将一直继续下去,其过程如下图所示。动画CPU每取出并执行一条指令,都要完成一系列的操作,这一系列操作所需的时间通常叫做一个指令周期。更简单地说,指令周期是取出并执行一条指令的时间。由于各种指令的操作功能不同,有的简单,有的复杂,因此各种指令的指令周期是不尽相同的。例如,一条访内指令的
23、指令周期,同一条非访内指令的指令周期是不相同的。 指令周期常常用若干个CPU周期数来表示,CPU周期也称为机器周期。由于CPU内部的操作速度较快,CPU访问一次内存所花的时间较长,因此通常用内存中读取一个指令字的最短时间来规定CPU周期。这就是说,一条指令的取出阶段(通常称为取指)需要一个CPU周期时间。而一个CPU周期时间又包含有若干个时钟周期(通常称为节拍脉冲或T周期,它是处理操作的最基本单位)。这些时钟周期的总和则规定了一个CPU周期的时间宽度。取出和执行任何一条指令所需的最短时间为两个CPU周期。就是说,任何一条指令,它的指令周期至少需要两个CPU周期,而复杂一些的指令周期,则需要更多
24、的CPU周期。但必须指出,对CPU周期的规定在各种计算机中不尽相同。下表列出了由五条指令组成的一个简单程序。这五条指令是有意安排的,因为它们是非常典型的。其中CLA指令是非访内指令,ADD指令和STA指令是访内指令,NOP指令也是一条非访内指令,而JMP指令则是程序控制指令。我们将在下面通过CPU执行这一程序的过程,或者说通过每一条指令取指阶段与执行阶段的分解动作,来具体认识每一条指令的指令周期 非访内指令的指令周期 CLA是一条非访内指令,其指令周期如下图所示。它需要两个CPU周期,其中取指令阶段需要一个CPU周期,执行指令阶段需要一个CPU周期。 在第一个CPU周期,即取指令阶段,CPU完
25、成三件事:(1)从内存取出指令;(2)对程序计数器PC加1,以便为取下一条指令做好准备;(3)对指令操作码进行译码或测试,以便确定进行什么操作。 在第二个CPU周期,即执行指令阶段,CPU根据对指令操作码的译码或测试,进行指令所要求的操作。对非访内指令来说,执行阶段通常涉及到累加器的内容,如累加器内容清零、累加器内容求反等操作。显然,其他一些零地址格式的指令,执行阶段一般也仅需要一个CPU周期。1. 取指令阶段 我们假定上表的程序已装入内存中,因而在此阶段内,CPU的动作如下: 程序计数器PC的内容20(八进制)被装入地址寄存器AR; 程序计数器内容加1,变成21,为取下一条指令做好准备; 地
26、址寄存器的内容被放到地址总线上; 所选存储器单元20的内容经过数据总线,传送到数据缓冲寄存器DR; 缓冲寄存器的内容传送到指令寄存器IR; 指令寄存器中的操作码被译码或测试; CPU识别出是指令CLA,至此,取指令阶段即告结束。指令周期示意图2. 执行指令阶段 在此阶段,CPU的动作如下: 操作控制器送一控制信号给算术逻辑运算单元ALU; ALU响应该控制信号,将累加寄存器AC的内容全部清零,从而执行了CLA指令。 三、直接访内指令的指令周期 程序的第二条指令是ADD指令,这是一条访问内存取数并执行加法的指令。其中第一个CPU周期为取值指令阶段,它的过程完全与CLA指令相同。执行指令阶段由两个
27、CPU周期组成:其中在第二个CPU周期中将操作数的地址送往地址寄存器并完成地址译码,而在第三个CPU周期从内存取出操作数并执行相加的操作。我们看到,取出第一条指令CLA时,程序计数器的内容已经加1变成21,这正好是存放“ADD 30”指令的内存单元。这样,当从内存取第2条指令时,取指令阶段的过程和数据通路完全与第一条指令相同。我们就不讨论ADD指令的第一个CPU周期即取指令阶段,我们从第二个CPU周期开始来讨论这条指令的执行阶段。假定第一个CPU周期结束时,指令寄存器中已经存放好ADD指令并进行译码测试,同时,程序计数器内容又加1,变为22,为取第三条指令做好准确。 1. 送操作数地址 第二个
28、CPU周期主要完成送操作数地址,其数据通路示于下图中。在此阶段,CPU的动作只有一个,那就是把指令寄存器中的地址码部分(30)装入地址寄存器,其中30为内存中存放操作数的地址。 2. 两操作数相加 第三个CPU周期主要完成取操作数并执行加法操作,在此阶段,CPU完成如下动作: (1) 把地址寄存器中的操作数的地址(30)发送到地址总线上。 (2) 由存储器单元30中读出操作数(6),并经过数据总线传送到缓冲寄存器。 (3) 执行加操作:由数据缓冲寄存器来的操作数(6)可送往ALU的一个输入端,已等候在累加器内的另一个操作数(因为CLA指令执行结果现累加器内容为零)送往ALU的另一输入端,于是A
29、LU将两数相加,产生运算结果为0+66。这个结果放回累加器,替换了累加器中原先的数0。 间接访问内存指令的指令周期 程序的第三条指令是“STA 31指令,这是一条间接访问内存的存数指令。其中第一个CPU周期仍然是取指令阶段,其过程和CLA指令、ADD指令完全一样,不同的是此阶段中程序计数器加1后变为23,因而为取第四条指令做好了准备。我们假定,第一个CPU周期结束后,“STA i 31”指令已放入指令寄存器并完成译码测试。所以下面我们仍不讨论第一个CPU周期,而讨论从第二个CPU周期开始的指令执行阶段的各个操作。 1. 送操作数地址 在执行阶段的第一个CPU周期中,CPU完成的动作是,把指令寄存器中地址码部分的形式地址31装到地址寄存器。其中数字31是操作数地址的地址。 2.取操作数地址 cpu完成从内存中取出操作数地址,然后把操作数地址存入地址寄存器3. 存储和数 执行阶段的第三个CPU周期中,累加寄存器的内容传送到缓冲寄存器,然后再存入到所选定的存储单元(40)中第一个CPU周期仍然是取指令阶段,CPU把23号单元的“JMP 21”指令取出放
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Perfluoropentane-Dodecafluoropentane-生命科学试剂-MCE-3888
- Ergocornine-生命科学试剂-MCE-6625
- 10-Norparvulenone-生命科学试剂-MCE-1894
- 二零二五年度智能制造股权融资协议
- 二零二五年度游戏软件试用授权合同
- 二零二五年度企业退休人员再就业解除合同协议
- 2025年度货运驾驶员绿色出行与节能减排合同
- 2025年度新能源项目电力施工简易协议书
- 2025年度豪华公寓私人房屋转租管理服务合同
- 科技在校园食品安全保障中的应用
- 学前教育普及普惠质量评估幼儿园准备工作详解
- 第十五章《探究电路》复习课课件沪科版九年级物理
- 2024年中考物理科技创新题型(教师版)
- 唐山市重点中学2024-2025学年全国高考大联考信息卷:数学试题试卷(3)含解析
- 未成年上班知情协议书
- 2024年山东药品食品职业学院单招职业适应性测试题库含答案
- 2023-2024学年高中政治统编版选择性必修二7-1 立足职场有法宝 课件(34张)
- 2024年高考语文标点符号的基本用法大全(新标准)
- 恩施州巴东县核桃树煤矿有限公司核桃树煤矿矿产资源开发利用与生态复绿方案
- 部编版语文一年级下册全册大单元整体作业设计
- 学生平板电脑使用规则
评论
0/150
提交评论