一种宏指令集的指令体系的制作方法

文档序号:6406600阅读:431来源:国知局
专利名称:一种宏指令集的指令体系的制作方法
技术领域
本发明涉及一种计算机的指令系统,更明确地说,本发明涉及一种宏指令集指令体系。
多思宏指令集的指令体系(DSSMISC)是本发明的申请人多思软件有限公司提出的,具有超长指令格式并采用了宏加工技术的计算机指令系统,是DSSMISC系列微处理器,的系统核心指令所固有的结构特性,宏指令集计算机(MISCmacroinstructionSetComputer)是多思公司发明的新一代计算机的简称。所谓超长指令格式,至今没有确切的定义,但国际计算机界普遍认为指令字长在64bit(含64bit)以上的指令都可称作具有超长指令格式。所谓宏加工是指由许多基本而相对较简单的低一级处理功能,经选择、重组等处理后,产生出新的、相对较复杂的高一级处理功能,这种处理过程称之为宏加工,传统的微处理器指令格式称为CISC(Complicatedirstruc-tionSetComputer-复杂指令集计算机)指令,其特征在于指令集中指令条数较多(几百至几千条);指令格式不固定(指令字长与指令域排列不定);指令的执行较复杂,每条指令平均需要几个甚至几十个机器周期才能完成。CISC指令的这些特点,使得CISC计算机设计与实现都相对复杂,而计器的指令处理效率不高。
八十年代中后期以来,国际计算机界不断推出基于一种称为RISC(reducedinstnutionsetComputer-精简指令集计算机)指令体系的微处理器芯片(如MIPS公司的RR4000系列,Motorola的8804广泛应用于以小型机、工作站,直至大、巨型计算机中。RISC指令体系的特点在于指令条数少(几十到一、二百条,这也正是其精简指令集这一名称的由来);指令格式相对固定(32位字长),指令功能简单,硬件构成相对于CISC体系微处理器,变得十分简洁,由于采用了流水线硬件处理结构,使得RISC指令计算机的指令执行效率较之CISC有了很大提高,其处理速率约为每周期一件指令。九十年代初出现的超级流水RISC结构,使得RISC计算机的指令处理速率达到2条/周期以上。
RISC指令体系计算机的指令处理效率虽然较CISC有了较大提高,但指令功能不强又成为其一个弊端。许多较常用的处理操作功能,需用几条、十几条RISC指令去构造(而CISC仅需一条基本指令即可完成相应功能)。所以,总的来说,RISC指令体系还不能尽如人意。实际上,现在较成功的RISC芯片,都不是纯RISC体系,而是将RISC与CISC体系相溶合,取长补短,设计实现的。
本发明的目的是克服上述现有技术中存在的缺点,为此,提出了一种宏指令集指令体系。该指令体系的指令用的指令域中包括操作类型代码域,功能单元操作控制代码域,返回标志域和地址/数据域。使用本发明的指令体系,可以使程序结构调用和返回实现零开销,并可实现单周期混合字长的载出/存入操作。
本发明的指令体系的指令中还设置了分别与各个运算部件相对应的乘除运算控制域、加减运算控制域、移位运算控制域、逻辑运算控制域和数据流控制域。它们对数据在计算机内部各个功能部件之间流动的不同路径给予不同的编码,从而控制数据流过各功能部件的顺序和方向,达到使运算操作序列可编的目的。
DSSMISC指令体系正是吸取了CISC指令体系指令功能较强,RISC指令体系指令简洁,格式相对固定,处理速率高的优点,由北京多思软件有限公司(DSS)提出,并开发成功的,其主要特点如下①采用超长(64位)而固定的指令字长格式。
②指令字长固定,但指令域可变,其中的指令类型控制、主存访问控制、堆栈控制等域又相对固定。
③直接支持一种高级语言-FORTH语言,以FORTH词作为MISC指令体系的基本指令构成,从而使得基于MISC指令体系的微处理器的汇编语言实际上就是一种高级语言-Forth,从而减少了人与计算机之间的语言层次界面,提高了计算机处理问题的效率。
④一条指令同时驱动CPU内多功能模块并行运作,且指令的处理时间均为单一机器周期,从而使得CPU的实际处理效率可达3-5个FORTH词/周期,理论峰值可达7个FORTH词/周期。


图1是MISC指令的域格式分配图;
图2是图1所示的指令的另一种实施方式;
图3是计算机系统中的各个功能部件的硬件示意图;
图4是完成操作序列可编的指令的与运算相关的指令域构成示意图。
下面是对本发明实施例的详细叙述。
本发明的指令体系可以实现程序结构调用与返回操作的单周期零开销设计,所谓零开销,指的是某种操作不特别占用机器周期,即从外部特性看,该种操作不需要额外时间,我们称这种特性叫作零开销。它实际上是一种操作与另一种操作复合并行处理的外在表现形式。例如,在MISC体系中,程序结构的调用与返回操作就是与算术运算操作复合处理而完成的。我们只强调程序结构操作的零开销特性,却不说运算操作具有零开销特性。是因为运算操作是CPU内部-基本功能,而程序调用与返回却要涉及主存及外总线。
在MISC指令格式下,条件转移-IF…ELSE…THEN,定循环-DO…LOOP,DO…+LOOP,FOR…NEXT,不定循环BEGIN…UNTIL;条件不定循环BEGIN…WHILE…REPEAT;以及子程序与函数调用-CALL…RETURN等程序结构的调用与返回操作处理均实现了零开销设计。
这里所用的语言保留字均是FORTH语言单词,关于FORTH语言的详细情况请参阅专门书籍。本发明的说明如下图1所示是MISC指令的域格式分配图,在进行程序结构操作时,操作类型代码域(63∶61)设置为程序结构操作类型代码;地址/数据域(31∶φ)填充以程序结构处理的入口地址;功能单元操作控制代码域(60∶33)除了设定对应于程序结构处理所需的多功能单元的特定动作外,还设置了经优化编译得到的部分后续运算操作的编码,使CPU能并行处理程序结构调用及其后续操作,从而在外在表现上,程序结构调用具有了零开销特性。结构返回标志代码域(32)根据是否完成了程序结构操作以及后续程序的要求,相应地设置是否返回标志。当该标志有效时,该域代码就控制CPU内的相应部件,并行复合完成结构返回以及其他后续操作,使程序结构返回呈现零开销特性。
本发明的指令体系还可实现单周期完成混合字长的LOAD/STORE操作。
在MISC体系结构计算机中,CPU与主存贮器间采用载出/存入(LOAD/STORE)方式进行数据交换。图2所示的指令格式与图1所示的相同。只是在功能单元操作控制域(6φ∶33)的47∶46位间开辟了一个数据长度控制子域。在进行LOAD/STORE操作时,操作类型代码域(63∶61)为对应于LOAD/STORE的指令代码,返回标志域(32)及其他功能单元控制域(6φ∶48、45∶33)设定相应的CPU内部操作代码;地址/数据域(31∶6)填充要载出的数据。与固定数据长度的LOAD/STORE处理所不同的是在指令格式中,数据长度控制域(47∶46)的不同编码分别对应于4组8bit数据、2组16bit数据、2组8bit数据与1组16bit数据、1组32bit数据的LOAD/STORE操作。我们称之为混合字长的LOAD/STORE。同MISC指令体系中的其他指令一样,LOAD/STORE指令也具有单一时钟周期完成的特性。
本发明的指令体系可实现运算操作序列可编、的特性。
所谓运算操作序列可编,是指由于电路结构的某种设置,对于几种操作算子的多种不同排列顺序所构成的多类运算,只需对指令体系中的数据流控制域相应地给出不同的代码,就能方便地予以实现。
现举例说明如下(下列程序实例是用Forth语言给出的,其中,A,B,C为三个操作数,“*”表示乘法运算;“←”表示左移一位,二进制数左移一位即是乘以2;“NOT”表示逻辑求反,有关Forth语言的语法、语义细节可参阅相关书图)ABC*←NOT+与ABC+NOT←*两个程序段,其算子与操作数都是相同的,只是由于算子的顺序不同,就成为两种不同的运算,ABC*←NOT+的含义,用算术逻辑关系表述就是(B *C)*2+A;而ABC+NOT←*的含义是(B +C)*2*A。在传统体系结构的计算机中,对于这两段程序就需要以顺序不同的指令流逐步地加以实现。而在我们的以数据流为体系结构特征的计算机中,只需要两条仅是数据流控制域不同的指令,就能实现上述两种操作,数据流控制域的实质是对数据在计算机内部多功能部件间流动的不同路径给以不同的编码,从而控制数据流过多功能部件的顺序以及数据流动的方向,得到程序所要求的相应的运算结果。
这种结构使得构建于加、减、乘、除、移位等算术运算以及与、或、非等逻辑运算这些基本运算操作基础上的复合操作,只通过指令多功能域及数据流控制域的不同编码,就能简便地予以控制实现。
下面给出这一特性的一个具体实现示例,需要指出的是这里给出的只是基于操作序列可变的超长指令体系这一思想的一种实现方式,本领域的工作人员能够由此思想,给出多种不同的实现方式,但均不超出本专利范围。
如图3所示,其结构包括加、减运算部件,乘除运算部件,移位运算部件,逻辑运算部件四个基本运算部件,以及各运算部件的输入选通部件和生成结果的输出选通部件,其中基本运算部件能分别独立地完成加、减、乘、除,移位,基本逻辑运算等基本操作,而各运算部件的输入选通部件,产生各运算部件的操作权,其数据来源包括各运算部件的结果以及由有些部件外部口来的运算数据。输出选通部件从各基本运算部件的结果中选择生成最后的结果数据。
每个运算部件均由超长指令格式中的相应域给出当前所需运算操作的控制代码,与运算相关的指令域构成见图4,(这里给出的仅是一种原理性的说明形式,具体的指令构成形式可以不同,但原理均相同),例如,ABC*←NOT+其指令各域含义如下乘除运算控制域给出作乘法运算的控制代码,加减运算控制域给出加法运算的控制代码,移位运算控制域给出左移一位的控制代码,逻辑运算控制域给出求反操作的控制码;而数据流控制域的编码,则应使得数据流动过程为乘除运算部件输入选择B、C作为操作数,加、减运算部件输入选择A和逻辑运算部件结果为操作数;移位运算部件以乘除运算部件结果为操作数;逻辑运算部件选择移位部件的结果作为操作数;而输出选择部件则选择加减运算部件的结果作为输出的最终结果,这样,经过一段时间后,就能得到正确的,由ABC*SLNOT+指定的稳定的运算,操作结果。
对于ABC+NOT←*其各运算控制域的控制代码部分与ABC*←NOT+相同只是数据流控制域给出的编码,使得数据流动过程变成乘除运算部件以A和移位运算部件结果为操作数;加减运算部件以B和C作为操作数,移位运算部件以逻辑运算部件结果为操作数;逻辑运算部件以加减运算部件结果为操作数,而最终结果则选择乘除运算部件的结果,经过一段时间后,就能得出稳定的,由ABC*NOT←指定的正确的运算操作结果,以上实施例中给出的仅仅是依照本发明构思而产生的具体实例,但是本发明并不局限于此,本领域的一般技术人员完全可以依照本发明提出的原理作出各种变更和修改。因此本发明申请的专利保护范围以所附的权利要求为准。
权利要求
1.一种具有超长指令格式并采用宏加工技术的计算机指令系统,其特征在于指令中的指令域包括操作类型代码域,功能单元操作控制代码域,返回标志域和地址/数据域。
2.如权利要求1所述的具有超长指令格式并采用宏加工技术的计算机指令系统,其特征在于指令的字长固定,但其指令域可变。
3.如权利要求2所述的具有超长指令格式并采用宏加工技术的计算机指令系统,其特征在于指令采用64位的超长指令字长格式。
4.如权利要求3所述的具有超长指令格式并采用宏加工技术的计算机指令系统,其特征在于指令直接支持FORTH高级计算机语言,并以FORTH语言词作为其本指令构成,从而减少了人与计算机之间的语言层次界面,提高了计算机的效率。
5.如权利要求4所述的具有超长指令格式并采用宏加工技术的计算机指令系统,其特征在于指令同时驱动计算机的CPU内各多功能模块并行运算,其处理时间均为单一机器周期。
6.如权利要求5所述的具有超长指令格式并采用宏加工技术的计算机指令系统,其特征在于操作类型代码域设置为程序结构操作类型代码;地址/数据域中填充程序结构处理的入口地址;功能单元操作控制代码域设定对应于程序结构处理所需的各功能单元的特定动作,以及经优化编译得到的部分后续运算操作的编码,使CPU能并行处理程序结构调用以及后续操作;从而在外在表现上,程序结构调用具有零开销特性;返回标志代码域中根据程序结构操作是否已经完成以及后续程序的要求相应地设置是否返回的标志,当该标志有效时,该返回标志代码域中的代码就控制CPU内的相应部件,并行复合完成结构返回以及其它后续操作,使程序结构返回呈现零开销特性。
7.如权利要求6所述的具有超长指令格式并采用宏加工技术的计算机指令系统,其特征在于指令的第0位至第31位是地址/数据域;指令的第32位是返回标志域;指令的第33位至第60位是功能单元操作控制代码域;指令的第61位至第63位是操作类型代码域。
8.如权利要求1所述的具有超长指令格式并采用宏加工技术的计算机指令系统,其特征在于在计算机中,CPU与主存贮器之间采用载出/存入(Load/Store)方式进行数据交换,载出/存入指令的特征在于,在本发明的指令格式的功能单元操作控制域中又设置一个数据长度控制子域。
9.如权利要求8所述的具有超长指令格式并采用宏加工技术的计算机指令系统,其特征在于在进行载出/存入操作时,操作类型代码域置为对应于载出/存入的指令代码;返回标志域及其它功能单元控制域设定相应的CPU内部操作代码;地址/数据域填充要载出的数据。
10.如权利要求9所述的具有超长指令格式并采用宏加工技术的计算机指令系统,其特征在于数据长度控制子域设在指令的第46和第47位上。
11.如权利要求10所述的具有超长指令格式并采用宏加工技术的计算机指令系统,其特征在于数据长度控制子域的不同编码分别对应于4组8位数据;2组16位数据;2组8位数据;1组16位数据以及1组32位数据。
12.一种计算机的结构中包括加减运算部件、乘除运算部件、移位运算部件和逻辑运算部件,以及各运算部件的输入选通部件和生成结果的输出选通部件,该计算机中应用的使运算操作序列可编的指令系统的特征在于在指令中对数据在计算机内部各个功能部件流动的不同路径给予不同的编码,从而控制数据流过各功能部件的顺序及数据流动的方向,从而达到使运算操作序列可编的目的。
13.如权利要求12所述的使运算操作序列可编的指令系统,其特征在于指令格式中包含有乘除运算控制域、加减运算控制域、移位运算控制域、逻辑运算控制域以及数据流控制域,它们分别与各个运算部件对应,在各个对应的控制域中给出当前所需运算操作的控制代码,它们控制各个运算部件的操作以及数据在各个部件中的流动方向,从而达到运算操作序列可编的目的。
全文摘要
本发明提出了一种具有超长指令格式并采用了宏加工技术的计算机指令系统,该指令系统中的指令字长固定,但指令域可变,指令域中包括操作类型代码域、功能单元操作控制代码域、返回标志域和地址数据域。采用该指令系统可以使程序结构调用与返回操作实现零开销,并且实现单周期完成载出/存入操作,另外,本发明的指令系统还可以使计算机的运算操作序列可编。
文档编号G06F9/30GK1078318SQ9210309
公开日1993年11月10日 申请日期1992年4月27日 优先权日1992年4月27日
发明者刘大力 申请人:北京市大兴县多思软件有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1