CN85101065A - 高速处理器 - Google Patents
高速处理器 Download PDFInfo
- Publication number
- CN85101065A CN85101065A CN 85101065 CN85101065A CN85101065A CN 85101065 A CN85101065 A CN 85101065A CN 85101065 CN85101065 CN 85101065 CN 85101065 A CN85101065 A CN 85101065A CN 85101065 A CN85101065 A CN 85101065A
- Authority
- CN
- China
- Prior art keywords
- instruction
- register
- group
- execution
- high speed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Executing Machine-Instructions (AREA)
Abstract
与计算机系统主处理器联在一起的高速处理器当计算机系统中正执行一程序时,高速处理器执行一个程序中某些经选择的指令,这些指令比程序中其它指令“更频繁执行”。高速处理器不工作时,主处理器执行程序中所剩余的指令。高速处理器是按重叠执行方式运行,即在执行当前指令的同时,它正准备下一条指令的执行。但其地址比较线路保证在下一条指令执行前、完成当前指令的执行。此外,还有一专用的重做缓冲寄存器,在指令重复执行时使用。这样的系统可使一个程序的指令处理时间减少约40%。
Description
发明领域
本发明涉及一种计算机系统、特别是关于计算机系统中执行某些经选择形成指令子集的指令,辅助主处理器执行指令的高速处理器。所选择的指令属于简单的,而且是计算机系统经常执行的指令。
现有技术的描述
现有技术中至少有两种不同类型的多处理器计算机系统:(1)在第一类中,至少有两个处理器,其中每一个都执行程序中的全部指令,并且一齐或同时运行,其目的是改善计算机系统的处理部分的可靠性;而(2)在第二类中,至少也有两个处理器,其中每一个执行不同的程序或者完成不同的任务或功能。
一个计算机系统的性能部分地取决于速度,即计算机系统中的处理器执行一组指令的速度。通常这组指令是按顺序执行的,且以一定的速率执行每条指令。构成该组指令的某些指令在硬件中是容易完成的,属于简单指令类。另外一些指令在硬件中较难完成,属于复杂指令类。简单指令比复杂指令执行得更频繁。但是,除开这一事实以外,一组指令(包括简单的、频繁执行的指令)通常是在一定的速率下,按顺序执行。由于计算机系统的性能可以根据顺序执行该组每条指令所消耗的时间来衡量,如果该组指令中简单的、频繁执行的指令比复杂的、较少执行的指令执行速度更快,那么该计算机系统的性能可以得到改善。
发明的概述
本发明的基本目的是改善现有计算机系统的性能。
本发明的另一个目的是通过以高于复杂的、较少执行的指令执行速度来执行程序中一组指令的简单的、频繁执行的指令,以便改善现有计算机系统的性能。
本发明的再一个目的是利用附加到主处理器上的一个专用的高速处理器来执行程序中简单的、频繁执行的指令以得到比执行复杂的、较少执行的指令更快的速度,即该高速处理器执行简单的、反复执行的程序指令,且高速处理器执行一条指令的速度高于主处理器执行一条指令的速度。
根据本发明的这些目的,与本申请在“现有技术的描述”一节中的第一类和第二类多处理器系统相对比,本发明的多处理器系统属于第三种类型。在第三类中,程序的执行由多处理器系统的两个处理器完成,但每个处理器执行程序中不同的指令组。这些处理器执行程序中的指令不是同时的,即一个处理器执行一条指令时,另一处理器的运行被中断。一个处理器执行程序中经选择的专门的指令,其目的是改善计算机系统的性能。其所执行的、经选择的专门指令是“简单的”,“频繁执行的”,而另一组执行的是程序的“复杂”指令。为了改善计算机系统的性能,该处理器被设计为以非常快的速度执行经选择的指令。这个特殊的处理器称之为“高速处理器”。
所选择的“简单的”和“频繁执行的”指令的快速执行是用两条顺序指令的重叠执行来实现的。即当一条简单指令在执行时,下一条指令在准备执行。当该高速处理器没有执行简单指令时,另一个处理器即计算机系统的主处理器执行复杂的、较少执行的指令,因此比统一执行程序中的一组指令所需的指令处理时间减少约40%。
从下文的详细介绍中,可以看出本发明进一步可应用的范围。然而应该懂得,在阐述本发明的最佳具体方案时,细节描述和具体例子都是用图示的方式给出,因为对有专业技术的人而言,阅读下述细节描述便可以知道在本发明的意图和范围上的各种改变和修正。
附图简述
通过阅读细节描述以及附图,可以完全了解本发明,而附图仅作为说明本发明的一种方法,故对本发明没有什么限制,其中:
图1为本发明的高速处理器,它跟通用数据处理系统相连,用来执行数据处理系统要处理的指令组中的频繁执行的指令。
图2给出了本发明的高速处理器的详细结构。
图3给出了图2中的指令译码和控制线路12c的详细结构。
图4给出了图2中的通用寄存器12d的详细结构。
图5给出了一张图表,其中包括几个指令的例子和与每个指令有关的混合百分数。
图6给出了图3中的操作码译码器控制线路12c1的详细结构。
较佳实施例的详细描述
参看图1,给出了一个通用的数据处理系统10,它包括存贮器10a,通过线10e,10f和10g连接到存贮器10a的主处理器10b以及一个连接到主处理器10b的控制存贮器10c,即一个只读存贮器(ROM)。存贮器10a包括一个主存贮器10a1和一个连接到主存贮器10a1上的超高速缓冲子存贮系统10a2。连线10e用于连接超高速缓冲子存贮系统10a2和主处理器10b,用于传送数据。连线10f/10g被用来传输指令。主处理器10b通过输入/输出线10d与各种外部设备相联。涉及该数据处理系统结构的细节可从技术手册上找到,该手册指明了IBM370计算机的结构和操作原理,手册的号码是“GA22-7000-9”,本说明书中包括了该手册的内容,供参考。
根据本发明,通过连线10f和10g,将高速处理器12连接在存贮器10a和主处理器10b之间。高速处理器12接收从存贮器10a送来的指令。在高速处理器12所接受的这些指令中,某些指令比其他指令执行得更为频繁。高速处理器12确定所接受的指令是否属于“频繁执行”的范畴。如果所接受的指令属于该范畴,则主处理器10b不执行此指令,而由高速处理器12执行此指令。但是如果该指令不属于“频繁执行”的范畴,则高速处理器12发出信号通知主处理器10b,结果,主处理器10b被允许执行该指令。在这种情况下,高速处理器12的运行被中断。由于高速处理器12被设计成专门执行某些经选择的、属于“频繁执行”范畴的指令,所以由高速处理器12执行这些经选择的指令的速度远高于由主处理器执行其他余下的指令的速度。因此,相对于现有技术中没有采用高速处理器12的计算机系统,本发明的、采用了高速处理器的计算机系统的性能最佳和/或提高了。
图2描绘了根据本发明的高速处理器12的详细结构。图2中,高速处理器12包括一个跟存贮器10a相连的指令缓冲寄存器12a,用于暂时存贮准备执行的指令。跟指令缓冲寄存器12a相连的指令寄存器12b用来接受和执行该指令。指令寄存器12b的输出接到主处理器10b,用于将指令传送到主处理器10b。当高速处理器12不能执行该指令时,主处理器10b将执行该指令。指令寄存器12b的输出也连到一个指令译码和控制线路12c上,以便将指令寄存器12b中被执行的指令译码。主处理器10b被连接到指令译码器和控制线路12c上,以便在主处理器执行当前的指令,而希望从通用寄存器12d中重新取回一个或多个操作数时,提供与通用寄存器12d中的位置有关的地址信息。指令译码器和控制单元12c,通过标有“给主处理器信号”的连线,连接到主处理器10b上,以便给主处理器一个信号,决定执行还是不执行该指令。如“给主处理器信号”线是高电位(二进制的1),则主处理器10b将执行该指令。但如果“给主处理器信号”线为低电位(二进制的0),主处理器将不执行该指令。如果主处理器10b没有执行该指令,则高速处理器12将执行该指令。
通过连线12e将指令译码和控制线路12C连接到一组通用寄存器12d上。该组通用寄存器12d通过一个A寄存器12g连接到一个算术逻辑单元(ALU)12f上。通用寄存器组12d也通过B寄存器12h连接到ALU12f上。A寄存器12g的一个输出端连接到指令译码和控制线路12c的输入端上。A寄存器12g的该输出端也跟主处理10b的输入端相连,以便在主处理器执行指令时,将存放在通用寄存器12d的数据(如操作数)传输给主处理器10b。指令寄存器12b的输出端也跟一个移位寄存器12s相连,以便存放一个当时的移位值。移位寄存器12s的输出通过连线12M连接到ALU12f上。ALU12f的输出跟D寄存器12i的输入相连。此外,指令译码和控制线路12c的一个输出端也跟D寄存器12i的输入相连。D寄存器12i的输出又连接到A寄存器12g、B寄存器12h和通用寄存器12d的输入上。D寄存器12i的输出也连到存贮器12a的输入端上。
存贮器10a被连到数据寄存器12j的输入上。D寄存器12i的输出也连接到数据寄存器12j的另一个输入上。跟A寄存器12g相连的通用寄存器12d的输出通过连线12Q连接到数据寄存器12j的另一个输入上。连接到B寄存器12h的通用寄存器12d的输出通过线12R跟数据寄存器12j的另一个输入相连。数据寄存器12j的输出跟一个字节移位器12k相连,以便按一定的量对输入的数据字节移位,使得数据字节的第一位处于其正确的位置上。字节移位器12k跟B寄存器12h的输入相连。该字节移位器12k还跟“或”门12L的输入以及存贮器10a相连。连接到A寄存器12g的通用寄存器12d的输出也连接到该“或”门12L的另一个输入上。“或”门12L的输出连接到指令寄存器12b的另一个输入上。
图3给出了指令译码和控制线路12c的详细结构。在图3中,指令译码和控制线路包括一个操作码译码控制线路12c1,12c1跟指令寄存器12b相连,用来将存放在指令寄存器12b中的指令的操作码译码,以便确定指令类型,例如一条“执行”指令。操作码译码和控制线路12c1的输出连到主处理器10b上。如果根据指令操作码,操作码译码控制线路12c1确定该指令属于“反复执行”类型,则从操作码译码和控制线路12c1产生一个标有“给主处理器信号”的输出信号将是低的(即二进制的0)。相应于该低输出信号,主处理器10b将不执行此指令,而高速处理器12将执行此条指令。如果操作码译码控制线路12c1确定该指令不属于“反复执行”类型,由12c1产生的输出信号将是高的(二进制的1)。相应于这个高输出信号,主处理器10b将执行该指令,而高速处理器则中止它的运行。
为了接收和存放来自存贮在指令寄存器12b中的指令的地址信息,指令译码和控制线路12c还包括一个通用A组寄存器(GPRA)地址控制器12c2和一个通用B组寄存器地址控制器12c3,它们跟指令寄存器12b相连。来自GPRA地址控制器12c2和GPRB地址控制器12c3的两个输出,一同构成连线12e,连接到通用寄存器12d上。指令寄存器12b还连接到一个GPR地址比较线路12c4上。GPRA地址控制线路12c2的输出也连接到GPR地址比较线路12c4上。GPR地址比较线路12c4将预定要存放在GPRA地址控制器12c2的新来的地址跟GPRA地址控制线路12c2正在产生地址进行比较,如果所比较的地址是相同的,则中止下一条指令的执行。要不然,地址比较线路12c4将ALU12f的结果放回到B寄存器12h中,以便允许进一步处理上述结果。根据上面提到过的重叠处理两条顺序的指令的观点,如果来自下一条将执行的指令的新地址跟由当前正在执行的指令在GPRA地址控制线路正产生的地址相同,则GPR地址比较线路12c4产生一个不允许重叠的信号。该信号(1)制止指令译码和控制线路12c通过线12e给通用寄存器12d地址,(2)避免启动A-寄存器12g和B-寄存器12h,以及(3)防止下一条指令被操作码译码控制线路12c1预译码。其结果是当ALU12f正在执行一个处理从通用寄存器12d预先提取的操作数的运算时,地址比较线路12c4产生的不允许重叠信号将禁止涉及该操作数的下一条指令从通用寄存器12d中提取该操作数。
GPRA地址控制线路12c2的输出也连接到指令重做缓冲寄存器12c5的一个输入上。A-寄存器12g的输出连接到指令重做缓冲寄存器12c5的另一个输入上。从指令重做缓冲寄存器12c5的输出连接到D-寄存器12i的输入上。当正在执行的指令指示运算操作是在两个操作数之间进行时,在执行该指令前,两个操作数中的一个被存放在指令重做缓冲寄存器12c5中。如果机器发生校验,则指令重做缓冲寄存器12c5中存有这一操作数以备指令重新执行而用。如下面将要指明的那样,在该指令执行前必须将一个操作数存放在指令重做缓冲寄存器12c5中。而另一个操作数并不因执行该指令而破坏,因此不需要预先存放。
图4给出了图2中的通用寄存器12d的详细结构。图4中通用寄存器12d包括通用A组寄存器12d1(GPRA)和通用B组寄存器12d2(GPRB)。应该注意,GPRB组12d2的内容是GPRA组12d1内容的精确复制。D-寄存器12i的输出分别跟GPRA组12d1和GPRB组12d2的输入相联。GPRA地址控制器12c2通过连线12e连接到GPRA组12d1上。GPRB地址控制器12c3通过线12e连接到GPRB组12d2上。GPRA地址控制器12c2和GPRB地址控制器12c3是地址寄存器,分别用来指出GPRA组12d1和GPRB组12d2中的位置。GPRA组12d1连接到A-寄存器12g的输入上。GPRB组12d2跟B-寄存器12h的输入相连。每个GPRA组和GPRB组输出都跟数据寄存器12j的输入相连。
图5给出了表20,该表包括几个“简单”,“频繁执行”指令的例子,还包括几个“复杂”,“较少执行”指令的例子。图5中,该表被分成三列。第一列20A包括了许多指令缩写。第二列20B包括许多指令操作码,每一个与20A列的每一指令缩写对应。第三列20C包括相应于列20A中每个指令缩写的混合百分数。一个指令缩写指明一条专门的指令。由于每条指令占有一个专门的操作码,所以一个指令操作码也指明一条专门的指令。因此,表20中第一列20A和第二列20B包括了指令缩写和操作码,以指明专门的指令。平均而言,每条指令在一组指令中出现一定的次数。当用一组指令中的指令总数除某指令出现的次数,其结果则为混合百分数。因此表20的第三列20C包括了许多混合数,每个混合数表示在该组指令中指令总数的百分数。在图5中,请注意到指令“BC”,“L”和“ST”表示了约占一组指令总数的19%,13%和6%。而指令“XC”,“MVCL”和“MVC”表示了约占一组指令总数的0.5%,0.06%和1.5%。以这些混合百分数为依据,指令“BC”,“L”和“ST”代表简单,频繁执行的指令,而“XC”,“MVCL”和“MVC”指令代表了复杂,较少执行的指令。
图6给出了图3中的操作码译码控制线路12c1的一部分的详细结构。图6中,操作码译码控制线路12c1包括了一个“或非”门(NOR)12c1(a)。该“或非”门12c1(a)的输入端通过多个操作码译码器12c1(c)连接到指令寄存器12b上。每一个操作码译码器12c1(c)跟或非门12c1(a)的每一个输入端相连。每个操作码译码器12c1(c)是为译码以及对不同的指令操作码响应而设计的。例如,如果指令是“条件转移(BC)”,则指令操作码是47。因此如图6所示,连接到或非门12c1(a)的第一个输入端的第一个操作码译码器12c1(c)被设计成译码和响应于这条指令,使第一个操作码译码器产生一个输入信号。但是其他操作码译码器12c1(c)对此操作码不起作用,因为它们是为译码和响应不同的指令操作码而设计的。或非门12c1(a)的输出端跟主处理器10b相连,并产生一个“给主处理器信号”的输出信号,如图2和图3所示。或非门12c1(a)包括一个或门12c1(a)(1)和一个跟或门12c1(a)(1)的输出相连的反相器12c1(a)(2)。
和高速处理器12结合的数据处理系统10的函数运算将参照附图的图1在下面描述。
从存贮器10a中提取一条指令,并被高速处理器12所接收。如果该指令是一组“频繁执行”指令中的一个。则高速处理器12执行该指令。主处理器10b被禁止执行该指令。但是,如果指令并不是“频繁执行”指令中的一条,则主处理器不会被禁止执行该指令。在这种情况下,主处理器10b执行该指令,而高速处理器12停止工作,直到主处理器10b完成该指令的执行为止。控制存贮器10c是一个只读存贮器,其中存放某些专门的微操作码指令,它们被用来辅助主处理器执行指令。当主处理器10b被允许执行该指令时,它(10b)按照存放在控制存贮器10e中的微操作码指令执行该指令。由于从存贮器10e提取的指令中大部分属于“频繁执行”类型,因此这类指令由高速处理器执行。
其次,当高速处理器12执行指令时,它是按重叠执行方式操作的。在重叠执行方式期间,高速处理器12执行第一条指令时,同时准备开始执行顺序指令中的第二条指令。其结果是由于高速处理器12是在重叠执行方式下执行所选择的指令,因此它执行“频繁执行”指令能够比主处理器10b执行“频繁执行”指令更快。
结果与从存贮器10a提取指令执行相联系的指令处理时间减少约40%。因此,相对于已有技术的计算机系统而言,本发明的计算机系统的性能得到了改善。
图1所示的高速处理器的函数运算将参照图2到图4在下面描述。
从存贮器10a提取的指令被高速处理器12接收。该指令暂时被存放在指令缓冲存贮器12a中,并被看做是“下一条要执行的指令”。继之,该指令被传送并存放在指令寄存器12b中,以供执行。当传到指令寄存器12b的指令传送完成时,在指令执行前,指令译码和控制线路12c的操作码译码和控制线路12c1译码该指令,以便确定上述指令是否属于“频繁执行”类型。如果该指令不属于这个类型,操作码译码控制线路12c1产生一个高输出信号,该高输出信号是“给主处理器”信号。作为此高输出信号的响应,主处理器10b执行该指令。在这种情况下,高速处理器12的操作被中止。但是,如果操作码译码和控制线路12c1确定该指令属于“频繁执行”类,来自操作码译码和控制线路12c1的“给主处理器信号”输出信号保持低电平,因此主处理器10b被禁止执行指令。
请记住,涉及第一个操作数的指令地址信息和涉及第二个操作数的指令地址信息分别存放在GPRA地址控制器12c2和GPRB地址控制器12c3中。假设存放在指令寄存器12b中的指令是一条“加”指令,则两个操作数相加,其和存放在通用寄存器12d中。再假设两个操作数现都存放在通用寄存器12d中,一个操作数存放在GPRA组12d1中,另一个操作数存放在GPRB组12d2中。还请记住,GPRA组12d1的内容是GPRB组12d2内容的精确复制。存放在GPRA地址控制器12c2中的地址信息用来寻址GPRA组12d1,而存放在GPRB地址控制器12c3中的地址信息用来寻址GPRB组12d2。事实上,组12d1和12d2分别由地址控制器12c2和12c3同时寻址。结果节省了寻址通用寄存器12d所耗费的时间。时间的节约帮助了计算机系统性能的优化。
当组12d1和12d2被寻址时,存放在那里的操作数同时被提取出来,并分别存放在A-寄存器12g和B-寄存器12h中。算术逻辑单元(ALU)12f从该A-寄存器和该B-寄存器中重新取回这些操作数,并完成两个操作数的指令操作,即把它们加在一起,得到两个操作数的和。这个和的结果通过D-寄存器12i存放在通用寄存器12d中的GPRA组12d1和GPRB组12d2中。
在ALU12f实现两个操作数的指令操作时,按指令顺序的下一条将执行的指令被存放在指令寄存器12b中,并由操作码译码和控制线路12c1进行预译码,以确定下一条指令是否属于“频繁执行”类型。然而,高速处理器12以重叠执行方式运行,按照这种方式,现指令的执行和按顺序的下一条指令执行的准备操作是重叠的。这种重叠执行的结果是高速处理器12执行现指令的能力比若由主处理器10b执行现指令更快。仍如下面将提到的那样,地址比较线路12c4保证由ALU12f进行的现指令的执行在按顺序的执行下一条指令前完成,即在涉及下一条指令的寻址通用寄存器12d以前开始。
假设一个操作数存放在通用寄存器12d的GPRB组12d2中,而另一个操作数存放在存贮器10a中。和前面所提到的一样,假设一条加法指令存放在指令寄存器12b中,利用该指令,一个操作数被加到另一个操作数上,并将其和存放在通用寄存器12d的GPRB组12d2中。在操作数相加以前,必须寻址存贮器10a,以便从存贮器10a中提取另一个操作数。因此,当在指令译码和控制线路12c中的操作码译码和控制线路12c1将存放在下一条指令的缓冲寄存器12b1中的指令译码并确定该指令属于“频繁执行”类指令时,“给主处理器信号”线是低电位,在指令译码和控制线路12c中的GPRA地址控制器12c2和GPRB地址控制器12c3寻址通用寄存器12d,特别是寻址GPRA组12d1和GPRB组12d2。当12d1和12d2组分别被GPRA地址控制器12c2和GPRB地址控制器12c3寻址时,一个二进制数从GPRA组12d1读出,另一个二进制数从GPRB组12d2读出,这些二进制数被存放在A-寄存器12g和B-寄存器12h中。此外,存放在指令寄存器12b中的指令包括一个移位值。指令移位值被存放在移位寄存器12s中。来自移位寄存器12s、表示移位值的信号通过线12M提供给ALU12f。从A寄存器12g和B寄存器12h来的、表示所存放的二进制数的信号通过线N和线12P加到ALU12f。ALU12f将表示二进制数的和的部分和加到移位值上,形成一个总和,该总和存放在D-寄存器12i中。D-寄存器12i产生一个表示该总和的地址以及供给存贮器10a和寻找存贮器10a中另一个操作数的位置地址。该操作数通过数据寄存器12j和字节移位器12k存放在B寄存器12h中。字节移位器12k排列所接收的另一个操作数的字节,使得该操作数的第一个字节的第一位排在B寄存器12h中的正确的第一位的位置。指令译码和控制线路12c中的地址控制线路12c2寻址通用寄存器12d中的GPRA组12d1,因此从那里读出一个操作数存放在A-寄存器12g中。ALU12f将存放在A-寄存器12g中的操作数和存放在B-寄存器12h中的另一个操作数相加。此两个操作数的和通过D-寄存器12i被存放在GPRB组12d2中。
假设存放在指令寄存器12b中的指令是一条“执行”指令。这条特殊的执行指令包括如下特殊性信息组:“EX..MODIFY..SUBJECT INSTRUCTION”,其中“EX”表示该指令是一条执行指令,“MODIFY”是一个修改信息段,而“SUBJECTINSTRUCTION”表示一条存放在存贮器10a中的待执行指令,它包括与安排在通用寄存器12d中的GPRA组12d1和GPRB组12d2内容有关的移位值和地址信息。存放在移位寄存器12s中的移位值通过线12M施加到ALU12f上。从GPRA地址控制线路12c2和从GPRB地址控制线路12c3中产生的表示地址信息的信号通过线12e加到通用寄存器12d中的GPRA组12d1和GPRB组12d2上。安排在通用寄存器12d中的GPRA组和GPRB组的内容通过线12N和12P施加到ALU12f上。ALU12f将移位值加到GPRA组和GPRB组的内容上,形成另一个和,该另一个和暂时存放在D-寄存器12i中,并寻址存贮器10a。从存贮器10a中提取待执行指令,并暂时存放在数据寄存器12j中。待执行指令的字节按要求在字节移位器12k中移位,并施加到或门12L的一个输入端上。
该执行指令的修改信息段(MODIFY)通过线12e对通用寄存器12d中的GPRA组寻址。按照修改信息数据寻址的要求,特定的数据字节从通用寄存器12d中的GPRA组12d1读出。这些特定的数据施加在或门12L的另一个输入端上。结果,加在或门12L一个输入端的待执行指令的字节,按照加在或门12L另一个输入端的特定数据字节而修改。一个表示修改后的待执行指令的信号从或门12L产生,该修改后的待执行指令被存放在指令寄存器12b中,以供执行。
在“重叠执行方式”下运行时,如果ALU12f完成当前指令以前,高速处理器12开始对通用寄存器12d寻址,以便执行下一条指令,则地址比较线路12c4将中止下一条指令的执行。下一条指令的中止是按以下方式进行。GPR地址比较线路将执行的下一条指令的地址和正在执行的当前指令的地址进行比较,并在GPR地址控制线路12c2上输出。如果两个地址相同,则地址比较线路12c4产生不许重叠信号。这个不许重叠信号(1)禁止指令译码和控制线路12c通过线12e对通用寄存器12d寻址,(2)使A-寄存器12g和B-寄存器12h为不能用状态,(3)禁止用操作码译码和控制线路12c1对下一条指令进行预译码。在这个例子中,结果是地址比较线路12c4中止下一条指令的执行,直到当前指令的执行被完成为止。
当地址控制线路12c2产生一个代表GPRA组12d1中的位置信号时,该位置地址被存放在指令重做缓冲器12c5中。相应于该位置地址的内容的第一个操作数通过A-寄存器12g的输出也被存放在指令重做缓冲器中。在指令必须重新执行的时候,即当机器检验出现时,第一个操作数应存放在指令重做缓冲器12e5中,并处于可用状态。由于当指令执行完成时,相应于第一个操作数在A组12d1和B组12d2的位置要被结果重叠,所以它不能被存放在GPRA组12d1中。第二个操作数仍然存放在GPRA组12d1和GPRB组12d2中并可供使用,因为在指令执行完成时,这组的内容并不被结果所重叠。
GPRA组12d1和GPRB组12d2的内容通过线12Q和12R、数据寄存器12j以及移位器12k存放在存贮理10a中。
图3中,操作码译码和控制线路12c1的函数运算将参照图5和图6描述如下。
在图6中,或非门12cl(a)的操作码译码器12cl(c)被设计为译码和对图5中所示的指令响应,或者用缩写“BC”,“L”和“ST”或者用操作码“47”,“58”和“50”标记。例如,如果存放在指令寄存器12b中的指令是“BC”指令,其操作码为“47”,则仅是连接或非门12c1(a)输入端的第一个操作码译码器12C1(C)响应,标有“47”的连接到或非门12c1(a)输入端的第一个操作码译码器12c1(c将产生一个输出信号。而其他操作码译码器将不会产生输出信号。假设这个输出信号是高电平信号(二进制的1),则或非门12c1(a)产生一个低的(二进制的0)“给主处理器信号”的输出信号。如前所述,“BC”指令是一条“简单,“频繁执行”指令。由于“给主处理器信号”的输出信号是低的,所以主处理器10b被禁止执行“BC”指令。结果,本发明的高速处理器将执行该指令。但是,如果存放在指令寄存器12b中的指令是“XC”指令,其操作码为“D7”,操作码译码器12c1(c)没有任何响应。因此操作码译码器12c1(c)不产生输出信号。或非门12c1(a)的每个输入端都是低的(二进制的0)。由于反相器12c1(a)(2)的操作,或非门12c1(a)的输出信号是高的(二进制的1)。这个信号代表了图2和3中的“给主处理器信号”的输出信号。由于这个输出信号是高的,主处理器10b将执行“XC”指令。如前所述,“XC”指令是一条“复杂的,较少执行的”指令。鉴于“给主处理器信号”输出为高电平,主处理器10b执行“XC”指令,因此它没被禁止执行“XC”指令。
对发明作了这些描述以后,很明显,同样的东西可以按许多方式改变。这些改变被认为并不背离本发明的意图和范围。而且所有这些改变都认为包括在以下权项的范围内,这一点对有专业技术的人员说来是显而易见的。
Claims (4)
1、一个用于计算机系统中的处理系统,该系统执行一组指令,而且在硬件中执行此指令组的第一指令子集比剩余的指令子集更容易、更频繁。该系统的特征为:
用于快速执行上述指令组的第一指令子集的第一种处理装置以及用于执行指令组的剩余指令子集,而跟所说第一种处理装置相连接的第二种处理装置。
2、权项1的处理系统,其特征在于当所说第一种处理装置不执行指令组的第一指令子集时,所说第二种处理装置执行指令组的剩余指令子集。
3、权项1的处理系统,其特征在于第一种处理装置包括:
用于存放指令的第一装置;
跟所说第一种和第二种处理装置相连的译码控制装置。该装置用于将存放在所说第一种装置中的指令译码,以及确定该指令是否属于指令组的第一指令子集范畴或者属于剩余指令子集范畴。当所说指令属于指令组剩余指令子集范畴时,该译码控制装置产生第一种输出信号;而当所说指令属于指令组的第一指令子集范畴时,它产生第二类输出信号。对应于译码控制装置产生的第一类输出信号,第二种处理装置执行该指令;对应于译码控制装置产生的第二类输出信号,第二种处理装置被禁止该指令。
4、权项3的处理系统,其特征在于所说第一种处理装置按重叠执行方式运行。当所说第一处理装置正在执行与当前指令有关的操作数的算术运算时,所说第一处理装置的译码控制装置对存放在所说第一种装置中的下一条指令预译码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 85101065 CN85101065A (zh) | 1985-04-01 | 1985-04-01 | 高速处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 85101065 CN85101065A (zh) | 1985-04-01 | 1985-04-01 | 高速处理器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN85101065A true CN85101065A (zh) | 1987-01-10 |
Family
ID=4791607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 85101065 Pending CN85101065A (zh) | 1985-04-01 | 1985-04-01 | 高速处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN85101065A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1054224C (zh) * | 1993-01-29 | 2000-07-05 | 国际商业机器公司 | 提高数据处理系统中从存储器到多个处理机的数据传送效率的方法和系统 |
CN108509013A (zh) * | 2017-02-28 | 2018-09-07 | 华为技术有限公司 | 一种处理指令的方法及装置 |
-
1985
- 1985-04-01 CN CN 85101065 patent/CN85101065A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1054224C (zh) * | 1993-01-29 | 2000-07-05 | 国际商业机器公司 | 提高数据处理系统中从存储器到多个处理机的数据传送效率的方法和系统 |
CN108509013A (zh) * | 2017-02-28 | 2018-09-07 | 华为技术有限公司 | 一种处理指令的方法及装置 |
CN108509013B (zh) * | 2017-02-28 | 2020-06-26 | 华为技术有限公司 | 一种处理指令的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0057788B1 (en) | Data processing system with external microcode control unit | |
EP0071028B1 (en) | Instructionshandling unit in a data processing system with instruction substitution and method of operation | |
US9336125B2 (en) | Systems and methods for hardware-assisted type checking | |
EP0286354B1 (en) | A method and apparatus for modifying micro-instructions using a macro-instruction pipeline | |
CN1136182A (zh) | 对推测性指令中例外情况的处理 | |
JPH03116235A (ja) | 分岐処理方法及び分岐処理装置 | |
CN1355902A (zh) | 高级微处理器中增强调度的方法和设备 | |
US5761467A (en) | System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field | |
US7949862B2 (en) | Branch prediction table storing addresses with compressed high order bits | |
CN1266591C (zh) | 用于java硬件加速器的猜测执行的方法和装置 | |
JPH01137331A (ja) | 制御ワード分岐方法 | |
US5819078A (en) | Addressing extended memory using millicode by concatenating a small millicode address and address extension data | |
US5991872A (en) | Processor | |
US5713035A (en) | Linking program access register number with millicode operand access | |
CN85101065A (zh) | 高速处理器 | |
US7003651B2 (en) | Program counter (PC) relative addressing mode with fast displacement | |
CN1531680A (zh) | 在程序控制流中实现改变的装置和方法 | |
US6606703B2 (en) | Processor using less hardware and instruction conversion apparatus reducing the number of types of instructions | |
US5121474A (en) | Bit string data processor using dynamically addressable bit locations in memory so overlapping strings do not destroy data in memory | |
US20070245120A1 (en) | Multiple microcontroller system, instruction, and instruction execution method for the same | |
CN101216755A (zh) | Risc处理器及其浮点寄存器的非对齐访存方法 | |
US4977497A (en) | Data processor | |
US5621909A (en) | Specialized millicode instruction for range checking | |
US20100125720A1 (en) | Instruction mode identification apparatus and method | |
EP0336091A2 (en) | Pipeline type microprocessor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
WD01 | Invention patent application deemed withdrawn after publication |