版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中央处理器第六章第六章中央处理器6.1计算机的运算6.2课堂实践四:运算器仿真6.3CPU的组成6.4课堂实践五:累加器仿真6.5指令系统6.6课堂实践六:程序计数器构建6.7流水线技术6.8课堂实践七:指令控制流仿真6.9并行处理系统6.1.1无符号数与有符号数在计算机科学中,有符号数和无符号数的区分基础在于是否能够表示负数。有符号数通过最高位(通常称为符号位)的0或1来区分正负,0代表正数、1代表负数,而无符号数则假设所有的位均用于表示数值的大小,因而只能表示非负数。这个差异导致了它们在表示范围、存储方式、以及运算规则上的不同。有符号数能表示负数,而无符号数只能表示正数或零。有符号数通常有原码、补码、反码多种形式来表示。6.1计算机的运算6.1.1计算机的运算1.原码生活中实际使用数值是有正负符号的,要在计算机中表示负数是将二进制的最高位用于表示正负,此时最高位称为符号位。原码表示的二进制约定符号位为0时表示正数,符号位为1时表示负数。原码是数值在计算机中最直观的表示,机器数和数值之间的转换比较简单易懂,缺点是实现加法、减法运算时比较复杂。这是因为,当两个数相加时,如果两个数同号,则直接将符号位以外的数值相加最后在结果之上补符号位即可;如果两个数异号,本质上是减法运算。而减法得到结果的正负还需要比较两个数的绝对值大小才能确定。当数值位有n位时(机器字长为n+1位),纯整数的原码的范围:
-(2n–1)≤x≤2n–1。6.1.1计算机的运算2.补码补码是在二进制中用正数表示负数的一种方法,其意义在于通过加法运算来解决计算机中减法运算的问题。补码的符号位与原码相同,其数值部分的表示与数值的正负有关:对于正数,补码的数值部分与数值对应的二进制一致;对于负数,需要将负数绝对值对应的二进制按位取反,再在最低位加上1,可以用“反转+1”的口诀来记忆补码的计算。当数值位为n时(机器字长为n+1),纯整数的补码的范围:–2n≤x≤2n–16.1.1计算机的运算3.反码反码表示与补码表示比较类似,规定正数的反码为其原码,与补码的区别在于负数的表示。对于负数,反码表示是将数值的绝对值换算成二进制之后再按位取反,与补码表示不同的是,不需要在最低位加1,因此很容易从补码表示推导出相应的反码表示。反码一般用作计算补码或原码的过渡。比如当使用原码进行减法运算时,1-2在计算机中用原码表示为:00000001+10000010,得到10000011,换算成十进制为-3,结果是不对的。如果使用反码进行同样的减法运算,则表示为00000001+11111101,结果为10000001,换算成十进制为-1,与实际计算结果一致。故当机器字长为n+1时,纯整数的反码表示范围与原码是相同:–(2n–1)≤x≤2n–16.1.1计算机的运算6.1.1计算机的运算4.移码移码本质上就是在数值基础上加一个常数2n
。在数轴上移码表示的范围刚好对应于数值在数轴上的范围向轴的正数方向移动2n个单元,这也是称为移码的原因。进一步观察可发现,同一个数值的移码和补码只差一个符号位,若将补码的符号位由“0”改为“1”,或从“1”改为“0”,即可得数值的移码。6.1.2数的定点表示和浮点表示由前文已知计算机中只能存储数字,因此需要用0和1来表示正负,同样的,计算机中的小数点,也要用特殊的形式来表示,共有两种,即接下来所要讲的定点数和浮点数。1.定点表示所谓定点数,就是指定点表示的数据,其小数点的位置是固定的,约定小数点在某一个位置上,因此,机器在处理定点数时,并不存储它的小数点。使用定点数的机器,被称为定点机。现代计算机一般只要有运算部件,都会提供对定点数运算的支持。虽然理论上,定点数的小数点的位置可以任意规定,但通常只会用定点数表示纯小数或整数,当表示纯小数时,小数约定在符号位和数值部分之间,同理,表示整数时,则在数值部分的后面。下图展示了定点小数和定点整数的结构:6.1.2数的定点表示和浮点表示2.浮点表示前面定点数由于本身性质的限制,难以处理复杂的非纯小数和整数,此时就需要浮点数来处理了。所谓浮点,与定点相对,就是小数点是浮动的,不固定的,它的形式有点像熟悉的科学计数法,比如12.34这个数,可以写成下面几种形式:浮点数的标准形式如下:其中,M为尾数,B为基数,E为阶码6.1.2数的定点表示和浮点表示2.浮点表示上面介绍的是浮点数的基本定义,但这是给人类看的,计算机中肯定有其特殊的存储形式,即现代计算机的通用国际标准IEEE754,目前现在在用的计算机基本上都是基于这个标准来存储浮点数的,包括短浮点数(float)、长浮点数(double),它们俩的表示方法相同,区别仅仅是阶码E和位数M的位数不同:上图是浮点数IEEE754的标准形式,第一个位置是数符,表示整个数字正负的符号,即0和1;接着是阶码E,这里的阶码也有正负,并且不用真值来表示,通常会用阶码的真值加上一个偏移量,作为实际存储的偏移值。6.1.2数的定点表示和浮点表示2.浮点表示表6.3为短浮点数(float)和长浮点数(double)在IEEE754中各个部分的位数:由此就很容易理解float是32位,精度没有64位的double高的原因。因为尾数代表了精度,而阶码代表了表示范围。6.1.3定点运算计算机中基本的定点运算是加法、减法、乘法和除法运算,其中减法、乘法和除法运算最终都可以归结为加法运算。1.加减法计算机中二进制的运算包括原码、补码和反码三种带符号的运算,其中补码运算实现最为方便,因此本文主要讨论加减运算时主要以补码为主。而根据前文补码的定义,正数的补码实际上就是其本身。(1)加法使用补码进行加法运算时,需先将两个参与运算的数值用补码表示,符号位也参与运算,求得的和即为两数值之和的补码,即:[A+B]补=[A]补+[B]补(2)
减法使用补码进行减法运算时,可以将减法运算转换为加法运算完成,即:[A-B]补=[A+(-B)]补=[A]补+[-B]补6.1.3定点运算1.加减法例6.1用四位补码计算-7-5和-2-5的值【解答】
由补码运算的特点可知,一个数的负数的补码可以由其补码“各位取反,末位加1”得到,因此:[-7]补=1001[-5]补=1011[-2]补=1110[-7-5]补=[-7]补+[-5]补=1001+1011=0100(+4)[-2-5]补=[-2]补+[-5]补=1110+1011=1001(-7)这里不难发现,当用四位补码计算-2-5的值时,结果是正确的;而计算-7-5发现结果是错误的,这是因为需要考到到一种情况:在进行补码加减运算时,有可能发生参加运算的两个数都在定点整数的表示范围内,但运算结果却超出来定点数的表示范围,这种情况就称为“溢出”。6.1.3定点运算2.移位运算与乘除运算的关系移位运算是一种对二进制的各位数字进行平移的运算,将各位数字向左移位称为左移运算,向右移位称为右移运算,运算时可以一次性移动多位。在移位运算中,最高位或者最低位多出来的数字会被直接舍弃,称之为溢出。对于左移运算,由于移动在低位产生的空位用0来填充;而对于右移运算中空出来的高位,填充的选择有0和1两种情况。在二进制下,将数字左移1位,数值就会变成原来的2倍,将数字左移2位,数值就会变成原来的4倍,将数字左移3位,数值就会变成原来的8倍。相反,在二进制下将数字右移1位,数值就会变成原来的1/2,数字右移2位,数值就会变成原来的1/4。因此,在一些情况下,可以用移位运算代替乘除法运算。一般约定,在右移运算中用0来填充高位称为逻辑右移运算;而当需要将二进制数作为带符号的数值参与运算时,右移时用原数符号位的值来填充高位,称为算术右移。乘除法通常是在移位运算和加减运算的基础上实现。6.1.3定点运算3.原码乘法运算原码一位乘法规则,具体如下:①参加运算的操作数取绝对值;②令乘数的最低位为判断位,若判队位为1则加被乘数,若判队位为0则加0③将上一步累加后所得的部分积以及乘数右移一位④重复执行第二步和第三步,直到乘数的位数用完⑤符号位单独处理,取乘数和被乘数的符号位进行异或运算,所得结果为最终结果的符号。6.1.3定点运算3.原码乘法运算例6.2已知[x]原=0.1101,[y]原=0.1011,用原码一位乘法计算[x×y]原。【解答】令C表示进位,初值为0,P表示部分积,初值为0,X为无符号数1101,Y为无符号数1011,原码一位乘法过程如下:6.1.3定点运算4.原码除法运算原码除法运算与原码乘法运算一样,要将符号位与数值位分开来处理。商的符号为相除两个数符号的“异或”运算的结果,商的数值为相除两个数绝对值的商。参考手算除法过程,得到计算机中两个无符号数除法的运算步骤和算法要点如下:①在确认被除数和除数都不为0后,将被除数放置在寄存器R和Q中,除数放置在寄存器Y中。②根据寄存器R和Y中的值相减所得结果的符号判断除数和被除数的大小,若为正,则上商为1,否则上商为0③当上商为0时,把减掉的余数再加回来,恢复原来的中间余数④由于在计算机内部实现除法运算时,除数保存在寄存器Y不会改动,因此,只能将中间余数左移,将左移结果与除数相减以进行比较。注意,左移时需要把中间余数和商一起左移,寄存器Q的最低位空出,以备上商。6.1.3定点运算4.原码除法运算根据以上算法第三步采用不同余数恢复方式,原码除法可以分为“恢复余数法”和“加减交替法”两种。当采用“上商为0时恢复余数”的方式便称为“恢复余数法”,当不采用“上商为0时恢复余数”的方式,而是在下一步运算时把当前多减的除数补回来,则称为“加减交替法”,也称为“不恢复余数法”。(1)恢复余数法例6.3已知[x]原=0.1011,[y]原=1.1101,用恢复余数法计算[x/y]原。【解答】分符号位和数值位两部分进行。商的符号位:0⊕1=1。商的数值位采用恢复余数法。恢复余数法过程中使用的到减法通过补码加法实现,因此,需计算出[|x|]补=0.1011,[|y|]补=0.1101,[|-y|]补=1.0011。运算过程如下:6.1.3定点运算4.原码除法运算6.1.3定点运算4.原码除法运算(2)加减交替法过程与恢复余数法相似,加减交替法是对恢复余数法的改良,优化了余数每次跟除数做完差后判断是否恢复的过程。开始时与原码运算法相同处理,取绝对值,然后第一次被除数对除数做一次差,判断最高位是否溢出,如果第一位商为0,则继续下去。移位后的处理由上一次的商决定,如果上一次商0,则对余数进行左移后-除数;若上一次商为1,则对余数左移后+除数。移位次数等于除数的尾数位数,上商次数为移位次数+1。例6.4已知[x]原=0.1011,[y]原=1.1101,用加减交替法计算[x/y]原。【解答】分符号位和数值位两部分进行。商的符号位:0⊕1=1。商的数值位采用加减交替法。加减交替法过程中使用的到减法通过补码加法实现,因此,需计算出[|x|]补=0.1011,[|y|]补=0.1101,[|-y|]补=1.0011。运算过程如下:6.1.3定点运算4.原码除法运算6.1.4算术逻辑单元1.定义算术逻辑单元(ArithmeticLogicUnit,简称ALU)是CPU或GPU中的集成电路,用于执行算术、逻辑和移位运算。ALU
是计算机的大脑,也是现代计算机的基石,基本上计算机所有的操作运算都会用到它。ALU功能如下:①算术运算符:指的是位减法和加法运算,尽管ALU要做乘法和除法运算,但乘法和除法运算的成本更高,所以可以用加法运算来完成乘法运算,用减法运算来完成除法运算。②位移位运算符:它负责乘法运算,该运算涉及将位的位置向右或向左移动特定数量的位置。③逻辑运算:这些包括NOR、AND、NOT、XOR、OR等。6.1.4算术逻辑单元2.应用ALU
有2单元,1个算术单元,1个逻辑单元,所以接下来分两块来分别介绍它们。(1)算术单元算数单元负责计算机里所有的数字操作,比如加减法等等。要完成“将两个数相加”这个操作,需要制造出新的部件“加法器”会用之前抽象出的“逻辑门”——与门、或门、非门、异或门来进行更高层次地抽象。(2)逻辑单元顾名思义逻辑单元在计算机内负责执行逻辑操作。比如之前说的“与”,“或”,“非”,“异或”。另外,它还能做简单的数值测试,比如利用许多个“或门”,来检测一个8位数字是否为“0”。6.1.4算术逻辑单元3.芯片过去大多数ALU是4位的,随着集成电路技术的发展,更多位的ALU已经相继问世,为了说明原理,下面仍旧以4位ALU芯片(74181)为例介绍ALU的结构,实物如下图6-3所示。6.2课堂实践四:运算器仿真通过本次课堂实验,读者能掌握全加器、多位串行加法器、可控加减法电路的逻辑结构以及仿真电路实现,并且掌握AUL运算模块、单总线结构下ALU的工作原理,以及仿真电路实现。6.2.1实验目的6.2.2实验要求在开始本次实践之前,读者需熟悉实验电路原理,根据全加器原理图、多位串行加法器原理图,要求读者按照数据通信原理图,完成仿真电路的连接。根据可控加减法电路的逻辑结构,完成仿真电路的连接;根据实验步骤过程,完成单总线结构ALU运算器仿真电路的连接。最后对实验过程进行总结,完成一份实验报告。6.3CPU组成中央处理器(CPU)是计算机的大脑,其内部由数百万至数亿个晶体管构成,控制着整个计算机系统的运行。CPU由控制器和运算器两大部分组成,运算器的基本功能已经在前文做过简要介绍,本小节重点介绍控制相关的功能。现代冯·诺依曼计算机需要将需要执行的程序存储在存储器中,便可由CPU中的控制器逐条取出指令执行,并协调控制计算机各部件。因此CPU的基本功能是取指令、分析指令和执行指令。6.3CPU组成中央处理器(CPU)是计算机的大脑,其内部由数百万至数亿个晶体管构成,控制着整个计算机系统的运行。CPU由控制器和运算器两大部分组成,运算器的基本功能已经在前文做过简要介绍,本小节重点介绍控制相关的功能。现代冯·诺依曼计算机需要将需要执行的程序存储在存储器中,便可由CPU中的控制器逐条取出指令执行,并协调控制计算机各部件。因此CPU的基本功能是取指令、分析指令和执行指令。6.3.1CPU结构框图CPU和内存本质上都是名为集成电路的电子部件,由大量晶体管构成。从功能上说,PU内部由寄存器、控制单元(CU)、运算单元(ALU)和中断四部分组成,他们之间通过系统总线互联互通。寄存器用于存放指令、操作数地址和操作数内容。一个CPU内部通常由几个到几十个不等的寄存器。控制单元负责将主存中的指令和数据读入寄存器,并根据指令的执行结果对计算机进行控制。ALU负责从寄存器中读取数据并完成指令中需要完成的算术运算和逻辑运算。中断系统负责处理指令执行过程中的异常情况和特殊请求。另外其实还有时钟负责产生控制CPU工作节律的时钟信号。6.3.2CPU的寄存器寄存器是程序的描述对象,对理解CPU如何执行程序非常重要。使用高级编程语言编写的程序,最终都会被编译成机器语言,然后在CPU内部通过寄存器进行处理。在计算机内部的存储部件中,寄存器读写速度最快,容量最小,位价最贵,通常设置在CPU内部。CPU的类型不同,其内部的寄存器数量、类型和存储的数据长度也有所不同。寄存器中的值可以是指令,也可以是数据,其中数据又可细分为用于运算的数据和表示内存地址的数值。CPU中的寄存器可大致分为两类:一类属于用户可见寄存器,程序编写者可基于这类寄存器编程,以及通过优化使用这类寄存器而减少程序对主存的访问次数;另一类属于控制和状态寄存器,程序编写者不可直接对这类寄存器编程,这类寄存器被控制部件使用。6.3.3CPU的主要技术参数影响CPU性能的参数包括指令集(将在6.5小节专门讨论)、机器字长、核心数量,主频、外频、倍频、高速缓存等。CPU的主要技术参数可以反映出CPU的大致性能,而一个计算机系统的优劣通常由CPU的性能决定。机器字长:CPU一次能够处理的二进制位数核心数量:这里的核心是指CPU内核,是一个可见可触及的物理元件,也称为物理核,有独立的电路元件以及L1,L2缓存,可以独立地执行指令主频、外频:CPU的主频是指CPU的时钟频率,是决定指令执行速度的计时器;外频是CPU外部的时钟频率,一般指主板上的时钟频率,外频具体是指CPU到芯片组之间的总线速度。高速缓存:用于暂时存储CPU运算时的部分指令和数据,CPU访问高速缓冲的速度比访问主存的速度快的多。6.3.4国产CPU芯片龙芯和申威是国内CPU领域的自主创新的引领者。龙芯通过自主研发LoongISA指令集,实现了对MIPS指令集的替代。并在去年推出了全新的LoongArch指令集,使得自主可控性更加突出。而申威则发展出了SW64指令集,虽然离不开alpha指令集,但仍然具有较高的自主性。作为大学生应该为国内CPU芯片研发的进步感到骄傲。自主可控是一个国家的关键能力,而取得在CPU领域的突破,对于我国的科技实力和国家安全具有重要意义。由此也应该能深切感受到了技术创新的力量。不同的指令集选择和授权方式,为企业提供了不同的自主可控程度。其中,龙芯通过自主研发的LoongArch指令集,体现出了自主创新的精神和决心。而RISC-V的开源特性,则展示了合作共享的力量,为全球技术创新提供了更多可能。然而也应该看到挑战和不足之处。相较于国际领先的厂商,国内CPU在技术上仍然有一定的差距。在面对竞争和外部风险的时候,仍旧需要更多的支持和投入,以加快技术的进步和创新的步伐。6.4课堂实践五:累加器仿真1.实验目的本次课堂实践的目的是使读者理解累加器的工作原理、掌握单总线结构下累加器工作原理。可以根据实验原理,掌握仿真电路的连接,以及相关任务的微操作。2.实验要求在开始本次课堂实践之前,需要进行课前预习,仔细阅读累加器的实验原理,需要理解累加器模块的作用,以及在完成计算任务时的工作原理。根据实验原理图,在头歌实践平台上完成仿真电路的连接。连接好实践仿真电路后,根据实践每个步骤的任务完成对应的微操作。最后对实验过程进行总结,完成一份实验报告。6.5指令系统6.5.1指令格式一条指令就是机器语言的一个语句,由操作码和地址码两部分组成,也可以理解为一组有特殊意义的二进制代码。指令的基本格式如下图所示:使用高级编程语言编写的程序,最终都会被编译成机器语言。机器语言是由一条条语句组成,每一条语句又能准确表达某种语义。例如,机器语言可以命令计算机完成某种操作,并在指令中给出参与操作的数所在地址。计算机就是连续执行机器语句而实现全自动工作的。因此,计算机的指令系统集中反映了计算机的功能。计算机的使用者可依据提供的指令系统使用汇编语言来编写各种程序。6.5.1指令格式1.操作码指令系统中每一条指令都有唯一确定的操作码。指令不同,其对应的操作码也不同。通常操作码的位数反映了计算机能过完成的操作的种类,即计算机能支持的指令操作种类,如操作码是8位二进制代码,则说明该计算机最多能支持256条指令。操作码的长度可以是固定的,也可以是不固定的。前者便于硬件设计,指令译码时间短,广泛用于字长较长、大中型计算机以及RISC(ReducedInstructionSetComputer,精简指令集计算机)中。而后者可有效的压缩操作码的平均长度,但也会增加指令译码和分析的难度,使得控制器的设计更加复杂,在字长较短的微型计算机中被广泛采用。在设计操作码不固定的指令系统时,为了压缩操作码的平均长度,应尽可能使得指令使用频率高的指令的操作码尽可能短,而允许使用频率相对较低的指令的操作码稍微长一些。6.5.1指令格式2.地址码地址码用来指出本条指令的源操作数的地址、操作结果保存的地址以及下一条指令所在地址。这里的“地址”可以是主存的地址,也可以是寄存器的地址。(1)四地址指令(2)三地址指令(3)二地址指令(4)一地址指令6.5.2寻址方式寻址方式是指确定本条指令的数据地址以及下一条将要执行的指令地址的方法。因此寻址方式分为指令寻址和数据寻址两大类。1.指令寻址寻址下一条将要执行的指令地址称为指令寻址,可细分为顺序寻址和跳跃寻址。顺序寻址可通过程序计数器PC加1,自动生成下一条指令的地址;而跳跃寻址则通过转移类指令实现。2.数据寻址寻址指令中的操作数的地址称为数据寻址。数据寻址方式种类较多。指令的地址码字段通常不表示操作数的真实地址,称为形式地址,记作A,需要经过将形式地址某种运算才能得到能过直接访问主存的有效地址,记作EA。从形式地址A生成有效地址EA的各种方式称为寻址方式
,即:6.5.2寻址方式(1)立即寻址立即寻址的地址码字段存放的不是操作数地址,而是操作数本身。(2)直接寻址直接寻址指令中地址码字段给出的地址A就是操作数的有效地址EA,即形式地址等于有效地址。这样给出的操作数地址是不能修改的,且与程序本身所在位置无关,因此也被称为绝对寻址方式。(3)间接寻址间接寻址是指指令中给出的地址A不是操作数的有效地址,而是存放操作数有效地址的主存单元的地址,即有效地址是由形式地址间接提供的。(4)寄存器寻址寄存器寻址的指令中,地址码字段给出某个通用寄存器的编号,而被指定的寄存器中则存放着操作数。由于操作数不在主存而在寄存器中,因此寄存器寻址在指令执行阶段不需要访问主存,执行效率高。而且地址码字段只需要指明寄存器编号,寄存器本身数量并不多,所需字段并不长,因此寄存器寻址方式在计算机中得到广泛应用。6.5.2寻址方式(5)寄存器间接寻址为了扩大寻址范围又克服间接寻址中需要多次访存的缺点,可采用寄存器间接寻址。寄存器间接寻址指令中的地址码字段给出某一通用寄存器编号,而而被指定的寄存器中则存放着操作数在主存中的有效地址,操作数则存放在主存单元中。(6)变址寻址变址寻址的过程就是把变址寄存器中的内容与指令中给出的地址A相加所得有效地址EA就是操作数在主存中实际存储地址(7)基址寻址基址寻址的过程是将基址寄存器中的基址与指令中给出的偏移量相加,形成操作数有效地址的过程。(4)相对寻址与基址寻址、变址寻址方式类似,相对寻址以程序计数器PC的当前值为基地址,指令中的地址编号作为偏移量,将两者相加后得到操作数的有效地址。6.5.3中断处理机制为了处理各种中断,CPU内通常配置中断系统,以统一解决各种中断的共性问题,并且在外设接口中配置中断控制器,在软件上设计相应的中断服务程序。本小节通过分析中断系统的功能,以便了解中断系统在CPU中的作用和地位。要深入分析中断系统的功能,必须要能解决以下问题:(1)各中断源如何向CPU提出中断请求。(2)当多个中断源同时提出中断请求时,中断系统如何确定优先响应哪个中断源的请求。(3)CPU在什么条件、什么时候、以什么方式来响应中断。(4)CPU响应中断后如何保护现场。(5)CPU响应中断后,如何停止原程序的执行而转入中断服务程序的入口地址。(6)中断处理结束后,CPU如何恢复现场,如何返回到原程序的中断处。(7)在中断处理过程中又出现来新的中断请求CPU又该如何处理。6.5.3中断处理机制1.中断源引发中断的因素很多,大多数都是随机的,通常将能引起中断的各个因素称为中断源。中断源可分为两大类:一类为不可屏蔽中断,这类中断CPU不能禁止响应,比如电源掉电、插件接触不良等硬件故障;另一类为可屏蔽中断,例如对可屏蔽中断源的请求,CPU可根据该中断源是否被屏蔽来确定是否予以响应。若未屏蔽则能响应,否则CPU不能响应。2.中断请求标记已知一台计算机允许有多个中断源,每个中断源向CPU发出中断请求的时间是随机的,为了记录中断事件并区分不同的中断源,设计者可采用具有存储功能的触发器来记录中断源,这个触发器称为中断请求触发器(INTR)。当某一个中断源向CPU发出中断请求时,其相应的中断请求触发器设置成“1”状态。6.5.3中断处理机制3.中断判优CPU在任一时刻只能响应一个中断源的请求,而许多中断源提出请求的时间都是随机的,当多个中断源同时发出中断请求时,中断系统必须按照中断的性质和处理的轻重缓急将这些中断源安排优先级,并根据优先级予以响应,这称为中断判优。确定中断优先级的原则是:对那些提出中断请求后需要立刻处理否则会造成严重后果的中断源予以最高优先级;而对那些可以适当延迟处理的中断源予以较低的优先级。中断判优可用硬件实现,也可用软件实现。6.5.3中断处理机制4.中断服务程序入口地址寻址不同的中断源对应不同的中断服务程序,识别中断源的目的在于是CPU转入该中断源所对应的中断服务程序,因此找到正确的中断服务程序入口是中断处理的核心问题。解决这个问题可以用硬件的方法,也可以用软件的方法。硬件向量中断法是实用的寻找入口地址的方法。当CPU响应某一中断请求时,利用硬件产生向量地址,再由向量地址找到中断服务程序的入口地址。向量地址由中断向量地址形成部件产生。向量地址通常有两种情况。一种是向量地址本身是中断服务程序入口地址,CPU响应中断时,只需要将向量地址送至PC,执行这条指令,就可以转向中断服务程序入口地址。另一种是设置向量地址表,向量地址是指向向量地址表的指针。向量地址表在主存内,存储单元地址为向量地址,存储单元内容为中断服务程序入口地址。此时中断源给出的向量地址是中断服务程序入口地址的地址,只有访问向量地址所指向的主存单元便可获得入口地址。6.5.3中断处理机制5.中断响应(1)CPU响应中断的条件由第四章已知,CPU响应I/O中断的条件是允许中断触发器必须为“1”,由此可知响应中断的条件如下:CPU接收到中断请求信号;CPU允许中断,即开中断。CPU内部有一个允许中断触发器(EINT),只有当EINT=1时,CPU才可以响应中断源发出的中断请求;若EINT=0,CPU处于不允许中断状态。(2)中断隐指令CPU响应中断后,即进入中断周期,在中断周期内,CPU需要自动完成某些操作,才能转去执行中断服务程序。这些操作是由硬件直接实现的,称之为中断隐指令。中断隐指令并不是指令系统中真正的指令,
没有操作码,因此中断隐指令是一种不允许、也不可能为用户使用的特殊指令。中断隐指令主要完成以下操作:①保存断点。将当前程序计数器PC中的内容保存到存储器中,也可压入堆栈;②关中断。为了确保保护中断现场的期间不被新的中断所打断,必须要关闭中断,从而确保被中断的程序在中断服务程序执行完成之后能接着原断点正确执行下去;③引出中断服务程序。6.5.3中断处理机制6.保护和恢复现场中断现场指的是发生中断时CPU的主要状态,其中最重要的是程序断点以及CPU内部各寄存器的内容两个方面。保护程序断点的现场由中断隐指令完成,保护CPU内各寄存器内的现场可在中断服务程序中用机器指令编程实现。恢复现场是指在中断返回前,必须将寄存器的内容恢复到中断处理前的状态,这部分工作由中断服务程序完成。7.多重中断和中断屏蔽在一个运行中的计算机系统中,可能会有多个设备同时发生中断请求,如果计算机系统在一定时间范围内只能处理一个中断请求,那么其他中断请求将无法的到及时处理,导致系统运行效率降低甚至出现系统崩溃的情况。为了解决计算机系统中可能出现的多个并发中断请求的现实需求,计算机系统引入了多重中断的概念。如果CPU在执行某一中断服务程序过程中,又遇到了新的更高级的中断请求,CPU暂停原中断的处理,而转去处理新的中断,待处理完毕后,再返回继续处理原来的中断,这种中断称为多重中断,也称中断嵌套。6.5.3中断处理机制在多重中断机制下,系统通过设置中断优先级和中断屏蔽等相关设置,合理地响应和处理多个并发中断请求。中断系统若要具有处理多重中断的功能,必须具备一些条件。首先要能保护多个断点,并且先发生中断请求的断点先保护后恢复,后发生中断请求的断点后保护先恢复。这个要求正好与堆栈后进先出的特点相符合;其次是在适当的情况下,允许开中断或者关闭中断。(2)中断屏蔽中断屏蔽的是指在某个中断源的中断服务程序执行过程中,不允许被其他中断打断。由前文可知,为了解决多重中断,对于不同中断源需要定义中断响应优先级,而为了提升效率这些优先级通常规定在硬件中,无法动态修改。因此如果要调整中断源的优先级,可以通过中断屏蔽寄存器来实现。6.5.3中断处理机制例6.5某计算机机有四个中断源,优先顺序按1234降序排列,若想将中断处理次序改为3142,则1,2,3,4中断源对应的屏蔽字应该如何设置?【解答】中断源3的优先级比中断源1高,因此中断源1的屏蔽字第3位为0,其余为1,即1101。中断源1,3,4优先级比中断源2高,因此中断源2的屏蔽字的第1,3,4位置0,其余为1,即0100。中断源3的优先级最高,因此屏蔽字全为1,即1111。中断源1,3比中断源4的优先级高,因此中断源4的屏蔽字第1,3位为0,其余为1,即0101。6.6课堂实践六:程序计数器构建1.实验目的本节课堂实践的目的是使读者掌握程序计数器在计算机执行程序过程中的核心作用,掌握取指令、分析指令以及执行指令的工作过程,根据其工作原理图掌握仿真电路的连接,理解指令与微操作控制信号之间的关系。2.实验要求在开始课堂实践之前,需要先预习,理解实验原理图、指令的格式,以及程序计数器芯片引脚的功能;根据实验原理图完成仿真电路的连接,根据实验的内容与步骤,仔细完成相应的操作;对实验过程进行总结,以及写一份实验报告。6.7流水线技术CPU完成一条指令可大致分为取指、译码和执行三个阶段。取指阶段根据PC内容访问主存储器(可能是Cache),取出一条指令送到IR中;分析阶段对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址EA,并从有效地址EA中取出操作数(可能从寄存器中取出,可能从主存中取出,也可能从Cache中取出);执行阶段根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或主存中。若采用串行方式完成多条指令,那么取指、译码和执行是按照顺序串行执行的,如图6-34所示。为了分析简便,设取指、分析、执行3个阶段的时间都相等用t表示,k表示第k条指令。那么串行方式完成n条指令的时间T=nx3t=3nt。这种顺序执行虽然控制简单,但CPU中各部件的利用率很低。如果通过流水线技术,将不同指令的并且没有冲突的阶段同时执行。6.7.1指令流水工作原理如果指令执行阶段不访问主存,则完全可以利用这段时间取下一条指令,这样取下一条指令的操作和执行当前指令的操作就可以同时进行,如图6-35所示。那么完成n条指令的时间T=3t+(n-1)x2t=(1+2n)t,程序的执行时间缩短近1/3,各功能部件的利用率也明显提高。6.7.1指令流水工作原理为了进一步提升CPU执行指令的速度,可以将指令的执行过程分为更细的六个阶段:取指(FI)、指令译码(DI)、计算操作数地址(CO)、取操作数(FO)、执行指令(EI)、写操作数(WO)。为了分析简便,假设这六个阶段每个占用一个时间单元,则指令六级流水时序图,6.7.2流水线相关性问题要使得指令流水线发挥高效率,就要使得流水线连续不断的流动,尽量不出现断流。如果流水线中的两条指令之间因为数据、结构或控制而存在的依赖关系。这种依赖关系决定了指令之间是否可以重叠执行,以及如何重叠执行以充分发挥流水线的效率,不可避免会带来流水线的停顿。两条指令之间存在的某种依赖关系可称为相关。如果两条指令相关,则它们就可能不能在流水线中重叠执行或者只能部分重叠执行。如何处理好流水线中的相关性问题,是流水线设计中要解决的重要问题之一。(1)结构相关(2)数据相关(3)控制相关6.7.2流水线相关性问题1.结构相关结构相关是指多条指令进入流水线后在重叠执行过程中争用同一功能部件所发生的冲突,因此也可称为资源相关。6.7.2流水线相关性问题2.数据相关数据相关是指流水线中多条指令重叠操作时,可能在流水线中重叠执行或者重新排序会改变指令读写操作数的顺序,使之不同于非流水实现时的顺序,从而导致出现数据相关冲突。6.7.2流水线相关性问题3.控制相关当指令中需要根据条件判断结果执行不同分支时需要使用到转移指令。控制相关主要由转移指令引起。当执行转移指令时,根据转移是否成功,有两种可能,一种可能是将程序计数器PC的内容改变为转移目标地址,另一种可能是PC的值保持正常递增,指向顺序执行的下一条指令。因此,当转移发生时,流水线的流动性将受到破坏。6.7.3流水线主要性能指标1.吞吐率吞吐率(简写为TP)是指在单位时间内流水线所完成的任务数或输出的结果数量,即;其中,n为指令数,Tk表示一条k段流水线处理完成n个指令所需要的时间。该式是计算流水线吞吐率最基本的公式。吞吐率又有最大吞吐率和实际吞吐率之分。最大吞吐率是指流水线在持续流动得到稳定状态后所获得的吞吐率。实际吞吐率是指流水线完成n条指令的实际吞吐率。为了计算简便,假设流水线中每条指令分为m段,各段时间均为,则最大吞吐率为:6.7.3流水线主要性能指标2.加速比
由上式可知,当n远远大于m时,Sp接近于m,即当流水线各段所需时间相等时,其加速比等于流水线的段数。6.7.3流水线主要性能指标3.效率流水线的效率(Efficiency,简写为E)是指流水线中的设备实际使用时间与整个运行时间的比值,即流水线设备的利用率。假设m段指令流水线,各段实际均为,为了计算简便,另m=4,则完成n条指令的时空图如下图所示。用流水线各段处于工作时间的时空区与流水线中各段总的时空区之比来衡量流水线效率,即:6.8课堂实践七:指令控制流仿真1.实验目的通过本次课堂实验,读者掌握计算机内部各部件的操作以及各部件元器件之间协调工作的过程,掌握微控制信号的设计。2.实验要求在开始实验之前,需先回顾一下前面的存储器、运算器、累加器实验中,对各部件元器件的操作,还有各部件的工作原理。按照实验内容和步骤,完成微控制信号的设置,以及实验操作。对实验过程进行总结,完成一份实验报告。6.9并行处理系统6.9.1并行处理系统概述计算机并行性根据不同的角度,可以划分为不同的等级。从计算机系统内部执行程序的角度来划分,等级由低到高可分为:
指令内部:一条指令内部各种操作之间的并行
指令之间:多条指令在某一时间或同一时间间隔内并行执行
任务或进程之间:多个任务或程序之间的并行执行
作业或程序:多个作业或多道程序之间的并行执行对并行计算机的分类有多种方法,其中最著名的是1966年由Flynn提出的分类法,称为Flynn分类法。Flynn按照指令流和数据流的不同组织方式,把计算机系统的结构分为以下四类:①单指令流单数据流(SingleInstructionstreamSingleDatastream--SISD)②单指令流多数据流(SingleInstructionstreamMultipleDatastream--SIMD)③多指令流单数据流(MultipleInstructionstreamSingleDatastream--MISD)④多指令流多数据流(MultipleInstructionstreamMultipleDatastream--MISD)6.9并行处理系统6.9.2GPU架构以NVIDIA公司的Tesla架构为例,说明GPU的结构。这种架构的GPU由流处理器阵列(streamingprocessorarray,SPA)和存储控制系统两部分组成。其中,SPA由多个线程处理器群(threadprocessorcluster,TPC)组成,而存储控制系统包括存储控制器、光栅操作单元和二级纹理缓存。存储控制器用于控制片外的DRAM显存,光栅操作单元则对存储器内的数据进行颜色和深度操作,通过片上互连总线,SPA可以将计算得到的深度和颜色信息发送到光栅操作单元(rasteroperationprocessork,ROP),也可以直接读写DRAM,或者通过纹理缓存以只读方式访问DRAM。6.9并行处理系统6.9.2GPU架构每个SM就是一个计算核心,下图给出了NVIDIAGT200的SM内部结构,一个SM相当于具有8条流水线的SIMD处理器核心,所有SP共享SM中的一套指令处理前端,因此一个SP类似于多线程CPU中的一条流水线,所以SP也称为线程处理器。每个SP核包含标量的单精度浮点数处理单元和整数处理单元,这些单元可以实现大部分运算指令。每个SP核最多可并发执行64个线程,都有各自私有的通用寄存器组。每个SP有1024个32位通用寄存器,根据SP所分配的线程数来分配寄存器。控制单元第七章7.1指令周期指令周期的概念指令周期的数据流7.2控制单元的功能控制器的组成控制单元的硬件实现7.3微程序控制器基本思想典型指令的微命令分析7.4组合逻辑控制器特点与对比第七章控制单元7.1指令周期INSTRUCTIONCYCLE7.1.1指令周期的概念核心定义计算机从取出一条指令到执行完成所需要的全部时间。01.取指周期(FetchCycle)任务:从内存中取出指令,并将其送入指令寄存器,为后续分析做准备。02.分析/取数周期(DecodeCycle)任务:分析指令的操作码,确定具体操作,并从内存或寄存器中取出操作数。03.执行周期(ExecutionCycle)任务:根据分析结果,执行指令规定的具体操作(如算术运算、逻辑运算等)。04.中断周期(InterruptCycle)任务:处理可能的中断请求,保存断点,转去执行中断服务程序(若有请求)。01.取指阶段根据PC值从内存取指令到IR,并自动更新PC指针。02.分析与执行译码指令类型,执行取数、运算、存数或跳转等操作。03.中断检查指令执行完毕后,硬件自动检查是否有外部中断请求。04.中断响应若有中断则转去执行服务程序;若无则回到取指阶段循环。控制单元完成指令的一般流程指令周期执行一条指令的总时间,是最大的时间单位。由若干个机器周期组成。机器周期(CPU周期)完成一个基本操作所需的时间,通常以访问一次内存的时间为基准。时钟周期(节拍)计算机中最基本的时间单位,由CPU主频决定。一个机器周期包含若干时钟周期。指令周期、机器周期与时钟周期示意图7.1.2指令周期的数据流核心本质:数据的流动指令的执行过程,本质上是数据在各个寄存器和功能部件之间流动的过程。分析数据流是理解控制单元如何发出控制信号、指挥数据流动的基础。分析维度:四个关键周期取指周期(IF)分析/取数周期执行周期(EX)中断周期(INT)1.PC→MAR将程序计数器中的指令地址送到内存地址寄存器,确定读取位置。2.读内存控制单元发读命令,从MAR指定的地址读取指令到MDR。3.MDR→IR从内存读出的指令由数据寄存器传送到指令寄存器,准备执行。4.PC++程序计数器自动加1,指向下一条指令的地址,为取下一条指令做准备。取指周期的数据流01.指令译码IR中的指令被送至译码器,解析出操作码和地址码,识别出间接寻址方式。02.第一次访存(取有效地址)将指令地址码送至MAR,发读命令,从内存读出真正的操作数地址,并送至MDR。03.准备第二次访存将MDR中的有效地址再次送至MAR,为最终读取操作数做好地址准备。分析/取操作数周期的数据流01.保存断点将当前PC值(断点地址)保存至内存栈区。操作流程:保存地址送至MAR→PC值送至MDR→发写命令。02.设置新PC将内存中存放的“中断服务程序入口地址”送至PC寄存器,为跳转做准备。03.执行服务程序进入下一个指令周期,CPU根据新的PC值,开始执行中断服务程序。中断周期的数据流7.2控制单元的功能深入探讨指挥核心的组成与实现机制7.2.1控制器的组成指令部件负责取指令和分析指令,核心组件包括程序计数器(PC)、指令寄存器(IR)及指令译码器。时序部件负责产生时间信号,控制各操作的执行顺序,包含脉冲源、节拍信号发生器等关键模块。微操作控制信号发生器控制单元的核心,根据当前指令和时序信号,产生控制数据流动的各种微命令。中断控制逻辑负责监测并响应外部的中断请求,处理突发事件,确保系统的实时性和可靠性。指令部件(PC/IR/译码器)负责提供指令信息,确定需要执行的具体操作内容。时序部件(脉冲源/节拍)提供精确的时间信号和节拍控制,协调各部件的执行时序。控制单元(核心枢纽)接收指令、时序和状态信号,产生微命令控制整个系统。控制器的组成示意图组合逻辑型(硬连线)由大量的门电路和触发器组成,通过硬件逻辑直接产生控制信号。
特点:速度快,但结构复杂,修改困难。存储逻辑型(微程序)将控制信号代码化,以微程序形式存储在控制存储器中,通过读取微程序产生信号。
特点:规整灵活,易于维护和修改。结合型(PLA)结合了组合逻辑与存储逻辑的特点,在可编程逻辑阵列(PLA)基础上实现。
特点:兼顾效率与灵活性,现代设计常用。7.2.3控制器的硬件实现实现类型核心优点主要缺点组合逻辑型速度极快,适用于高速场景纯硬件实现效率高。设计复杂不规整,调试维护困难,不易扩展修改。存储逻辑型(微程序)设计规整,易于实现调试便于指令系统升级扩展。速度相对较慢,增加了控制存储器的硬件开销。结合型(PLA)兼具速度优势与一定的灵活性,结构紧凑。设计和实现相对复杂,成本较高。控制器的实现类型对比7.2.4时序控制与微命令核心概念:时序控制控制信号的产生必须遵循严格的时间顺序,以确保指令的正确执行,如同交通信号灯的有序切换。早期三级时序体制将时间划分为三个层级:状态周期节拍电位节拍脉冲现代时序系统以时钟周期(节拍)为基本单位。一个机器周期包含若干个时钟周期,精确控制操作节奏。微操作序列将指令执行过程分解为一系列时间上有序的、最基本的原子操作,是指令实现的微观基础。部件与信号表示每个寄存器(PC,IR,MAR等)都配备输入(in)和输出(out)控制信号。例如`IRin`表示允许数据输入,`PCout`表示允许数据输出。微命令控制逻辑控制单元通过激活`in`和`out`信号指挥数据流动。如`PCout`和`MARin`同时有效,即实现将PC内容传送至MAR的操作。CPU内部的数据通路(分析微命令的基础)表7-2取指周期的微命令(通用)取指周期的任务是将指令从内存取到IR中并更新PC,其微命令对所有指令通用。步骤微命令功能说明1PCout,MARin将程序计数器的内容送至地址寄存器。2Read,MDRin发读命令,从内存读取指令到数据寄存器。3MDRout,IRin将数据寄存器中的指令送至指令寄存器。4PC+1程序计数器自增,指向下一条指令。💡核心逻辑:这四个步骤由控制单元发出的微命令精确控制,确保指令流的连续流动。7.3微程序控制器MicroprogrammedControlUnit7.3.1微程序设计思想微程序设计思想的提出提出背景为了克服组合逻辑控制器的固有缺陷:线路庞杂,物理实现困难设计周期长,调试复杂修改和扩展极其不便提出者与时间由英国剑桥大学教授M.V.Wilkes于1951年首次提出。
这一概念的提出,标志着计算机控制逻辑设计从“硬布线”时代迈向了“微程序”时代,是计算机体系结构发展史上的重要里程碑。核心思想用程序设计的思想方法来组织操作控制逻辑。
将复杂的控制逻辑分解为简单的基本操作序列,以“微程序”的形式存储在控制存储器中,通过执行这段程序来完成指令控制。程序与机器指令程序员视角:程序由机器指令组成,存储在主存中。这是计算机执行的宏观逻辑。微程序与微指令控制器视角:每条机器指令对应控制存储器中的一段微程序,由若干微指令构成。微命令与微操作硬件视角:微指令包含微命令,直接控制计算机完成最基本的微操作(如数据传送)。微程序控制器基本概念的关系核心概念辨析(一):微命令与微操作微操作(Micro-operation)定义:计算机中最基本的、不可再分解的原子操作。示例:PC→MAR(送地址)、M(MAR)→MDR(读内存)。微命令(Micro-command)定义:控制单元向执行部件发出的控制信号,是控制序列的最小单位。示例:PCout和MARin信号共同控制完成PC→MAR操作。概念关系与本质一一对应关系:微命令是微操作的“控制信号”,微操作是微命令的“执行过程”。逻辑:控制信号(因)→执行过程(果)。微命令分类兼容性:可同时发出的微命令(如PCout和MARin)。互斥性:不可同时发出的微命令(如ALU的加/减操作)。微指令(Micro-instruction)定义:若干微命令的集合,占据一个控制存储器单元。
1.操作控制字段决定发出哪些微命令(做什么)。
2.顺序控制字段决定下一条微指令的地址(接下来做什么)。微程序(Micro-program)定义:一系列微指令的有序集合,用于实现机器指令的功能。
关键对应关系每条机器指令,都对应一个微程序。
存储位置存储在控制存储器(CM)中。与普通程序的区别微程序由计算机设计者编写,普通程序由用户编写。
核心差异:透明性微程序对程序员是“透明”的,无法直接访问;普通程序可见且可操作。
存储介质微程序在控制存储器,普通程序在主存。核心概念辨析(二):微指令与微程序7.3.2微程序控制单元微地址形成部件根据机器指令操作码或微指令顺序控制字段,生成下一条微指令地址。微地址寄存器(μAR)存放当前要执行的微指令在控制存储器中的地址,功能类似于程序计数器PC。控制存储器(CM)存储所有微程序的高速存储器,是微程序控制器的核心部件。微指令寄存器(μIR)存放从控制存储器中取出的当前微指令,功能类似于指令寄存器IR。微程序控制单元的结构与数据流微程序控制单元的工作原理01.取指令(Fetch)执行公共的取指微程序,从主存中取出机器指令并送入指令寄存器(IR)。这是所有指令执行的必经之路。02.找微程序入口(Locate)将IR中的操作码送入微地址形成部件,生成对应的微程序入口地址,并送入微地址寄存器(μAR)。03.执行微程序(Execute)根据μAR地址从控制存储器(CM)逐条取出并执行微指令。每执行一条,根据顺序控制字段更新μAR,指向下一条。04.返回取指(Return)微程序执行完毕后,自动跳转回取指微程序入口,准备开始下一条机器指令的取指周期,形成循环。公用微程序包含取指、间址、中断等通用服务程序,为所有指令或特定事件共享。专用微程序每一条机器指令(如ADD,JMP)都对应一个独立的专用微程序,实现具体功能。布局特点微指令在控制存储器中连续存放,通过顺序控制字段实现微程序内部跳转与切换。数量计算若有n条机器指令,微程序总数至少为n+3(3个公用微程序:取指、间址、中断)。微程序在控制存储器中的分布示例表7-6指令ADD[R0],R1的工作过程(节选)指令周期控制单元视角控制存储器地址微命令功能说明取指周期执行取指微程序,取出机器指令P,P+1,P+2PCout,MARin;Read;MDRout,IRin将指令从主存取到IR分析/执行周期根据操作码找到加法微程序入口Q无OP(IR)→微地址形成部件→Q执行周期执行加法微程序第一条微指令QR0out,MARinR0内容(地址)送至MAR执行周期执行加法微程序第二条微指令Q+1Read,MDRin从内存读取操作数到MDR核心结论:执行一条机器指令,本质上就是在控制存储器中依次读取并执行其对应微程序的所有微指令。7.3.2微指令的设计微指令的编码方式(一)直接编码(直接控制)方式原理:操作控制字段的每一位代表一个微命令,为“1”表示有效,无需译码。优缺点:含义清晰,速度快;但微指令字长过长,控制存储器容量大。适用场景:教学演示和结构简单的控制器。字段直接编码方式原理:将字段分成若干部分,每段内微命令互斥,通过译码产生微命令。优缺点:有效缩短微指令字长;但增加了译码电路,速度稍有下降。适用场景:大多数实际应用的微程序控制器。微指令的编码方式(二)核心原理:优势互补结合直接编码和字段直接编码的优点,针对不同类型的微命令采用差异化的编码策略,实现性能与空间的平衡。具体实现策略高频微命令(如PCout,MARin):采用直接编码,确保快速响应。复杂/互斥微命令组:采用字段直接编码,有效压缩指令字长。方案特点:实用的折中方案兼顾了微指令的执行速度和指令字长,在硬件成本与运行效率之间找到了最佳平衡点。下地址字段直接指出(断定方式)最常用的方式。微指令的顺序控制字段直接包含下一条微指令的地址,无需额外计算。根据机器指令操作码形成用于从取指微程序跳转到对应机器指令的微程序入口,是连接机器指令与微程序的桥梁。增量计数器法(μAR+1)适用于微指令顺序执行的情况。通过微地址寄存器(μAR)自增1来获取下一条指令地址。分支转移(条件判断)根据状态标志位(如ZF,CF)或其他条件决定下一条地址,用于实现微程序的条件分支逻辑。微指令的地址形成方式本节总结:微程序控制器核心要点核心思想采用程序设计思想组织控制逻辑,将机器指令的执行分解为执行一段微程序,实现软件化控制。层级映射关系机器指令→微程序→微指令→微命令→微操作。层层分解,最终落实到硬件动作。硬件结构组成核心是控制存储器(CM),配合微地址寄存器(μAR)、微指令寄存器(μIR)及地址形成部件协同工作。执行工作流程遵循闭环循环:取指令→查找微程序入口→逐条执行微指令→执行完毕返回取指。微指令设计核心重点关注操作控制字段的编码方式(直接/字段/混合)以及顺序控制字段的地址形成方式。核心优势相比于硬布线控制器,微程序控制器具有规整性好、灵活性强、易于修改和扩展指令系统的优点。7.4课堂实践八:微程序控制器仿真MicroprogrammedControlUnitSimulation7.4.1实验目的实验目的理解控制单元核心作用深入探究控制单元在计算机体系结构中的指挥调度机制,透彻理解其工作原理与运行逻辑。建立指令与微程序映射建立机器指令与底层微程序的对应关系,理解一条机器指令的执行是如何通过一段微程序来具体实现的。掌握微程序设计方法根据指令的功能要求,掌握将复杂指令分解为微操作序列的基本设计方法,具备初步的微程序设计能力。7.4.2实验要求实验要求01实验前·预习准备务必认真预习实验指导书,重点理解核心器件(如EPROM2716C3)的引脚功能和工作原理,为实操打好理论基础。02实验中·规范操作严格按照实验步骤连接仿真电路,仔细观察每一步操作后的现象,并做好详细记录,确保数据真实有效。03实验后·总结分析对实验过程进行复盘总结,深入分析实验结果,回答思考题,并独立完成实验报告,巩固所学知识。7.4.3实验原理实验核心思路本次实验的核心任务是对微程序控制器进行仿真。
我们需要根据给定的指令集,手动设计并实现对应的微程序,然后将其固化到控制存储器中,模拟真实的计算机指令执行过程。关键硬件组成时序发生器提供整个实验系统的时钟信号,驱动电路同步工作。EPROM2716C3(控制存储器)存储设计好的微程序,是微程序控制器的核心存储部件。74LS175数据锁存器用作地址寄存器(AR),暂存微地址信息。总线、门电路及指示灯负责信号的传输、逻辑控制以及实验状态的实时显示。实验原理概述硬件引脚定义(Pinout)输入:4位微地址(A0-A3)输出:24位控制信号(Q0-Q23)功能:存储微程序,根据地址输出微指令关键控制信号映射(Q0-Q23)引脚位控制信号说明Q7PCout:程序计数器内容输出Q15LOAD:加载数据到寄存器Q0-Q23其他:对应ALU运算、总线控制等信号💡设计原理:每一条微指令本质上是一个24位的二进制数。通过配置EPROM中对应地址的存储单元内容,我们可以精确控制CPU的每一个微操作步骤。核心器件:EPROM2716C3(控制存储器)微地址形成操作码通过逻辑电路生成微程序入口地址,送至EPROM地址端,是指令解码的关键步骤。微指令读取与执行EPROM输出24位微指令控制信号,指挥CPU内部寄存器(PC,AR等)完成具体的微操作。地址更新循环根据微指令顺序控制字段形成下一条地址,循环执行直至整个微程序流程结束。微程序控制器电路原理图本实验使用的机器指令LOADA-数据加载指令功能:将内存A地址的内容加载到寄存器R0。格式:操作码(LOAD)+地址码(A)ADDA-加法运算指令功能:R0内容+内存A内容→结果存回R0。格式:操作码(ADD)+地址码(A)STOREA-数据存储指令功能:将寄存器R0的内容存储到内存A地址。格式:操作码(STORE)+地址码(A)JMPA-无条件跳转指令功能:无条件跳转到内存A地址执行后续指令。格式:操作码(JMP)+地址码(A)设计蓝图与执行逻辑该流程图详细描述了从取指周期开始,根据指令操作码(LOAD/ADD/STORE/JMP)分支执行的完整微操作序列,是我们编写微指令代码的核心依据。流程图元素解析微指令单元每个方框代表一个CPU周期内的一条微指令,包含具体微操作。存储地址方框右上角的八进制数字,代表该指令在EPROM中的位置。代码生成目标将流程图步骤转换为24位二进制微指令代码。实验任务目标为流程图中的每一个微操作步骤,设计并编写对应的24位微指令代码,使其能够被控制存储器(EPROM)正确识别和执行。微程序流程图7.4.4实验内容与步骤从理论到实践的关键环节实验内容与步骤概述01.准备微程序将填写完整的微程序代码,写入到EPROM2716C3芯片中,作为控制存储器。02.连接仿真电路严格按照仿真电路图,在实验平台上完成所有器件的连接,确保线路无误。03.初始化与运行设置片选、读使能等初始信号;打开电源,在指令寄存器IR中设置要执行的机器指令操作码。04.单步执行与观察单步触发时钟,观察微地址及控制信号指示灯变化,验证微程序是否按流程正确执行。05.切换指令验证更换IR中的指令操作码,重复单步执行步骤,验证系统对不同指令的处理能力。核心元件与连线图中绘制了EPROM2716C3、74LS175、时序发生器、开关及指示灯的连接关系,作为实验连线的参考。微程序控制器仿真电路图7.4.5实验思考ExperimentalReflection&Summary简单模型机设计第八章第八章简单模型机设计8.1简单模型机概述8.2实验原理与模型机总体设计8.3实验内容与步骤8.4实验思考8.1简单模型机概述简单模型机是一种抽象的计算机系统,它通过简化真实计算机的复杂性,保留了核心的硬件组件和操作逻辑。模型机由运算器、控制器、存储器和输入输出设备五大部件组成,以及一个简化的指令集,用于执行基本的计算任务。本实验基于DS-VLAB计算机组成原理网络虚拟实验平台设计一个简单模型机,更深入地理解和掌握计算机的工作过程。8.1.1实验目的(1)设计并实现一个简单的计算机模型,深入理解计算机的基本原理和工作方式。(2)区别微指令和机器指令在计算机操作中的作用。(3)采用微程序控制器控制模型机数据通路。(4)运行由四条机器指令组成的简单程序,加深对程序设计的理解。(5)在实验过程中,学习如何调试程序和解决硬件问题。(6)将理论知识应用到实践中,将所学知识与现实世界联系起来。(7)通过实验探索新的解决方案和方法,培养创新思维和实验精神。8.1简单模型机概述8.1.2实验任务(1)预习实验,对实验任务中可能遇到的问题进行预测并提供解决方案。(2)回顾微指令和机器指令的定义,理解实验电路图,掌握实验元件功能特点。(3)绘制准确的电路图,确保所有组件正确连接,理解模型机的组成。(4)在实验过程中,单步运行微程序,注意理解模型机的工作过程。(5)实验中逐条执行微程序,深入理解微程序与常规程序之间的联系与差异。(6)编写详细的实验报告和设计文档。8.1简单模型机概述8.2.1总体设计本实验实现了一个自动化的控制机制,该机制能够根据指令寄存器(IR)中的当前指令,自动地逐条取出并执行相应的微指令序列。本章实验综合了前面章节的几个实验,将运算器模块、存储器模块、程序计数器模块、控制器模块等通过总线连接在一起,构建一个简单的计算机系统,其结构如图8-1所示。实验的核心在于设计并构建一个模拟电路,开发一套简洁的指令集,并实现数据通路与控制逻辑,以此模拟和演示计算机指令的执行过程。8.2实验原理与模型机总体设计8.2.1总体设计图8-1简单模型机总体设计结构图1.机器指令格式模型机的工作就是执行程序,而程序就是为求解某一问题或进行某项工作的若干条机器指令的有序集合。指令,就是指示计算机进行某一工作的命令,在计算机中用二进制代码表示。指令基本格式如图8-2所示。操作码是指令中用于指明要执行的操作类型的唯一标识符,用来说明指令的类型和功能,它告诉处理器执行何种操作,如加法、跳转等。地址码是指令中用于指定操作数位置的部分,用来说明参与操作的数据在什么地方及操作的结果存储到什么地方。8.2.2指令系统设计1.机器指令格式一台计算机全部指令的集合称为该计算机的指令系统,不同的计算机有不同的指令系统。本实验中的简单模型机一共包含4条机器指令,除了IN指令是8位的,其余指令都是16位的,其机器指令格式如表8-1所示。8.2.2指令系统设计指令助记符机器指令格式指令长度(bits)功能操作码地址码(A为内存地址)IN00000000
8从数据开关手动设置数据,存入累加器R0ADDadr00100000A16二进制加法,R0+[adr]
R0STRadr01000000A16存数,R0
[adr]JMPadr01100000A16无条件转移,[adr]
PC表8-1机器指令格式2.程序与数据根据设计的指令格式,将上述4条机器指令用汇编语言编写成一个简单程序:8.2.2指令系统设计START:INR0,SW;通过数据开关设置数据,存入累加器R0ADDR0,M[07O];将R0与07O地址单元中的数据相加,结果存回累加器R0STAR0,M[07O];将累加器R0中的值存入07O地址单元
JMPSTART;无条件跳转到程序的起始位置,形成循环本任务中,把机器指令按照顺序存入RAM,让CPU自动读取指令并执行程序。要实现CPU自动从RAM中逐条取出指令放入IR,并按照IR中的指令自动从控制存储器读出相应的微程序并执行,需要设计相应的微程序,微程序将各种控制信号组合起来完成各种操作。2.程序与数据编写好汇编语言程序,将汇编语言程序手工转换为机器语言程序,并给这段程序和数据分配地址空间,将程序和数据写入RAM,如表8-2所示。8.2.2指令系统设计内存地址内容说明0000000000IN数据输入指令,开关数据自定义0100100000ADD加法指令,操作码0200000111地址码,07O0301000000STA存数指令,操作码0400000111地址码,07O0501100000JMP跳转指令,操作码0600000000地址码,00O0700001010
表8-2RAM中的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB 15744-2026摩托车和轻便摩托车燃油消耗量限值及测量方法
- 26年机构认知障碍心理需求课件
- 美甲店产品临期积压情况说明
- 美容院装修工程延期情况说明
- 满堂脚手架安全监理实施细则
- 全国卫生健康系统职业技能竞赛(传染病防治监督)复习题(宁夏回族自治区吴忠市2025年)
- 2025年设备监理师考试题库附参考答案(完整版)
- 2025年度公需科目考试物联网技术与应用考试题库含答案
- 大学生暑假实践总结
- 人际沟通 第六章 护理工作中的非语言沟通
- 年产200吨高纯金属铯铷项目报告书
- 2025具身智能行业发展研究报告
- 委托代缴社保协议书范例
- 智库能力测试题及答案
- 第五单元100以内的笔算加、减法达标卷(单元测试)(含答案)2024-2025学年一年级数学下册人教版
- 陕西单招数学试题及答案
- 《政府与集团项目型公关策略和销售技巧》
- CNAS-CC01:2015 管理体系认证机构要求
- 纪实摄影专题课件
- 国际多式联运单据与单证
- 抗衰知识培训课件
评论
0/150
提交评论