执行程序指令的装置与方法

文档序号:6418799阅读:215来源:国知局
专利名称:执行程序指令的装置与方法
技术领域
本发明涉及按照权利要求1的前序特征部分执行程序指令的数据处理装置。本发明进一步涉及按照权利要求8的前序特征部分执行数据处理装置的指令的方法。
当前,DSP处理器存在两种主要体系结构。两种体系结构都要在处理速度与程序存储器大小之间前者还是后者享受更大利益作出折衷。第一种主要体系结构也可称作常规机器,它意味着每一机器周期执行一条单一的指令。第二种体系结构通常称作VLIW体系结构(甚长指令字)。使用VLIW体系结构,在一个单一机器周期中执行若干条指令。
每一机器周期执行一条单一指令的常规机器的特征为相对小的程序数据总线。通常,这一程序数据总线为32位宽。在DSP处理器环境中,处理器的执行单元中的计算单元的数目通常比上述第二种体系结构小。程序数据总线宽度与计算单元的数目是与处理器的功耗成正比的。从而,常规处理器体系结构通常比其它先进的体系结构消耗较少功率。然而,常规体系结构的主要缺点在于MIPS(每秒执行的兆指令)数比上述VLIW体系结构的少。
诸如在名为“有条件地将短存储器指令组合成虚拟长指令的指令预处理器”的美国专利5,163,139中描述的常规机器。这一常规机器包括两个计算单元及常规程序数据宽度的主程序存储器。这一专利中所提出的机器还包括指令预处理器单元,它检验是否能将程序存储器中的两条连续的指令有效地组合以便构成其本身的新的指令字。然后机器的两个计算单元解释与执行这一新指令字。美国专利5,163,139的机器的局限性在于只能组合符合预定标准的指令对。从而,该机器极大地制约了程序员开发程序代码。
上述第二种体系结构(VLIW)基于编译程序将若干简单的非互相关联的操作组装到同一指令字中的指令集思想。这种类型的体系结构是1983年6月第十次计算机体系结构年会会报上由J.A.Fisher在“甚长指令字体系结构及ELI-512”中初次提出的。该VLIW体系结构在处理器中采取多个计算单元及分析从程序存储器中取出的指令的若干译码单元。VLIW体系结构具有并行执行若干操作的优点,从而提高了处理器的MIPS性能。然而,VLIW处理器要求较大位宽度的程序存储器。这对于实现该处理器体系结构所需的芯片面积及其功耗都是负担。同时,对于为VLIW处理器编写代码的程序员所要求的编程技巧也内在地较高,因为需要考虑处理器的并行性。
名为“利用分支控制单元生成的路径信息来禁止不在正确路径上的操作的VLIW处理器”的美国专利5,450,556中提出了特殊的VLIW处理器。这一专利提出了有效地处理VLIW程序中的跳转指令的解决方法。为了克服这一问题,它提出了在VLIW指令中增加路径表达字段。这一路径表达字段由处理器中的分支控制单元读取,后者是为了加速条件转移操作而操作的。和所有以前的VLIW处理器体系结构一样,美国专利5,450,556中提出的结构也具有存储VLIW指令所需的相对地大的程序存储器的缺点,尤其是在只允许小的并行度的执行步骤的情况中。
本发明基于需要大的程序存储空间的高度并行计算机体系结构的问题。从而本发明寻求在保持处理器以高度并行方式执行指令的同时降低程序存储器需求。
这一问题是用具有权利要求1的特征的数据处理装置解决的。这一问题也用具有权利要求8的特征的执行数据处理装置的指令的方法解决。在各自的从属权利要求中描述本创造性装置与创造性方法的有利的实施例。
执行程序指令的较佳数据处理装置包括第一指令译码器、地址译码器、多个计算单元及执行逻辑单元。第一指令译码器从第一程序存储器顺序地取第一类型的程序指令并译码所述第一类型指令。地址译码器确定要从或向数据存储器加载或返回的数据的地址。各所述多个计算单元按照所述第一指令译码器的解释在数据上执行运算并提供这些运算的结果。执行逻辑提供数据给所述多个计算单元并按照所述第一类型指令控制所述多个计算单元的运算。该数据处理装置的特征在于所述第一指令译码器判别所述装置是否要执行参考指令。然后该参考指令起动第二类型指令的执行。
这样,本发明的数据处理装置便能执行两种类型的程序指令。最好这两种类型的指令具有明显不同的位宽度,其中所述第一类型的指令具有较短的位宽度。取决于要执行的实际指令,处理装置或者执行相对地短的位宽度的指令字或者执行相对地长的位宽度的指令。这允许灵活的程序存储器组织并从而降低特定程序的总存储器需求。
本创造性装置的较佳实施例还包括取所述第二类型指令的第二指令译码器。在更好的实施例中,所述第二类型的指令是存储在第二程序存储器中的。从而,所述第二指令译码器从所述第二程序存储器中取所述第二类型指令并随即译码所述第二类型的指令。
通过为各所述第一类型与所述第二类型的指令提供分开的存储器单元,便有可能存储频繁地使用的所述第二类型的指令并用所述数据处理装置容易地访问这些指令。最好将各所述第一与第二程序存储器的位宽度设定在固定长度上。这样便可将较佳数据处理装置的体系结构配置成以高效方式处理所述第一类型与所述第二类型的指令。
本创造性装置的较佳实施例的进一步特征在于所述第二类型的指令包括多个运算符,其中包含操作数的数据赋值信息及结果的数据赋值信息。所述执行逻辑最好还包括用于解释所述第二类型的所述指令的装置。
在本发明的特别好的实施例中,所述参考指令包含地址信息。地址信息涉及所述第二类型的指令要在其上执行的数据,该数据由所述第二类型的该指令在所述参考指令中引用。本创造性装置的这一较佳配置允许与译码所述第二类型指令的同时取数据。这能明显地提高创造性装置的性能。
在本发明的装置的较佳实施例中,配置成允许第一或第二类型中任何一种的指令的流水线执行。这种配置特别适用于同时执行运算。
数据处理装置执行指令的较佳方法包括从第一程序存储器中取第一类型指令,译码所述第一类型的所述指令来确定要执行的操作,按照包含在所述第一类型的所述指令中的操作数地址信息从数据存储器或所述数据寄存器中读取操作数,在所述操作数上执行操作,以及按照包含在所述第一类型的所述指令中的结果地址信息将所述操作的结果写入所述数据存储器或所述数据寄存器中等步骤。本创造性方法的特征在于译码包含预定信息的参考指令时,将其译码成执行按照包含在所述参考指令中的信息取第二类型的指令及译码所述第二类型的所述指令来确定要并行执行的操作的步骤。
如对上面提及的本发明的较佳数据处理装置所描述的,该较佳方法允许存储器空间的灵活使用,因为提供了两种类型的指令。通过引用所述第一类型指令中的进一步指令信息(所述第二类型指令)获得执行特定并行操作所需的附加信息。
本创造性方法的另一较佳实施例的特征在于所述参考指令包含基本上在译码所述参考指令时被译码的地址信息。这一特征能够明显地提高处理速度,因为在参考指令中引用的该指令所需的数据是在译码参考指令时加载的。
在本发明的方法的更佳实施例中,译码参考指令的步骤及取所述第二类型的指令的步骤是基本上同时执行的,其中所述参考指令与所述第二类型的所述指令是互相关联的,这允许更进一步提高处理速度,因为在译码所述参考指令时已提供了执行所述第二类型的指令所需的信息。
在本发明的方法的又一实施例中,所述从数据存储器中读取操作数的步骤及所述译码所述第二类型的指令的步骤是基本上同时执行的,其中所读取的操作数是与所译码的指令关联的。这一较佳特征允许更进一步提高处理速度,由于现在所有信息对于数据处理装置的计算单元都可以获得以按照所述第二类型的指令用于执行操作。
在下面供结合附图阅读的本发明的较佳实施例的描述中说明了使用本发明的进一步优点、特征及可能性。附图中

图1描绘按照本发明的较佳数据处理装置的电路图;图2a示出先有技术中使用的甚长指令字的结构的示例;图2b示出本发明的较佳实施例中所使用的两种不同类型的指令的结构;图3a为展示先有技术的数据处理装置中的流水线指令的顺序的表;以及图3b为展示按照本发明的较佳实施例的指令序列的表。
图1示出按照本发明的数据处理装置的较佳实施例的基本体系结构。将特别适用于数字信号处理的数据处理装置配置成用于并行执行若干操作并从而包括多个计算单元。在本较佳实施例中,设置了赋予参照数字61至64的四个计算单元。从执行逻辑单元7向各该计算单元61至64提供操作数数据。另一方面各该计算单元将计算结果发送到多端口寄存器组5的一个或多个寄存器与/或通过连接所述计算单元61至64到所述数据存储器3上的数据总线到数据存储器3,所述数据总线具有r位的位宽度。在较佳实施例中,可将两个结果直接写入具有16位数据位宽度的所述数据存储器中。从而,位宽度r等于2×16位。
通过位宽度n的总线线路将各多端口寄存器5的内容反馈回所述执行逻辑单元7。还将所述多端口寄存器5的内容提供给地址译码器4供有选择地将来自所述多端口寄存器5的数据写入所述数据存储器3。因此通过也具有n位位宽度的总线线路将多端口寄存器5连接在所述地址译码器4上。在较佳实施例中,各寄存器具有16位的数据位宽度。再者,多端口寄存器组5包括总共16个寄存器。从而,在数据处理装置的较佳实施例中,n设定为16×16位=256位。
利用较佳实施例的这种配置,本发明的数据处理装置便能作为寄存器-存储器体系结构机器或存储器-存储器体系结构机器操作。一方面,执行逻辑单元7不仅接收来自所述多端口寄存器5的数据,也接收直接来自所述数据存储器3的数据。另一方面,计算单元61至64不仅写到所述多端口寄存器5还直接写到所述数据存储器。对于熟悉本技术的人员应清楚本发明能类似地实施在加载-存储型体系结构(或者也称作寄存器-寄存器体系结构)的机器中而不偏离本发明的范围。
如上所述,执行逻辑单元7不仅接收来自所述多端口寄存器5的操作数数据,还通过具有o位位宽度的总线线路接收来自所述数据存储器3的操作数数据。所述数据存储器3与所述执行逻辑单元7之间的数据总线的位宽度o与要从所述数据存储器3加载的操作数的数目及各操作数的位宽度成正比。在较佳实施例中,从所述数据存储器3向所述执行逻辑单元7加载最多四个操作数,各具有16位的位宽度,得出总线宽度o为4×16位=64位。
执行逻辑单元7接收来自常规指令译码器1的译码的指令信息。从而执行逻辑单元7从所述多端口寄存器5与/或所述数据存储器3接收用于执行特定指令的操作数并将它们发送给由译码的常规指令所指示的所述计算单元61至64。执行逻辑单元7还包括用于从CLIW指令译码器9(可配置长度指令字)接收译码的指令的装置8。一旦接收到译码的CLIW指令,所述执行逻辑单元7中的所述接收装置8确信不按照从所述常规指令译码器1接收的信息而是只按照从所述CLIW指令译码器9接收的译码的指令进行执行。从而,所述接收装置8用从所述CLIW指令译码器9接收的信息取代来自所述常规指令译码器1的所有信息。
所述常规指令译码器1接收来自常规程序存储器2的一行代码供译码在其中所编码的指令。对于数据处理装置的顺序操作,常规程序存储器2是用程序计数器15的输出寻址的。常规指令译码器1发送译码的指令信息给所述执行逻辑单元7并发送特定指令中所编码的地址给所述地址译码器4。常规指令译码器1还连接在所述CLIW指令译码器9上用于指示下面要译码的是CLIW指令这一事实。
地址译码器4从所述常规指令译码器1接收地址信息用于译码编码在特定指令中的地址。通过具有m位位宽度的总线线路将译码后的地址发送给所述数据存储器3。位宽度m与一次要寻址的地址数目及每一地址的位数成正比。在较佳实施例中,地址译码器4译码各具有16位位宽度的四个地址,从而得出连接所述地址译码器4与所述数据存储器3的总线线路的位宽度m为64位。所述数据存储器3还通过线路R/W连接在所述常规指令译码器1上,线路R/W向所述数据存储器3指示是要从还是向特定地址上读取还是写入数据。
所述CLIW指令译码器9连接在其中存储有表示CLIW指令的代码行的CLIW存储器10上。要从所述CLIW存储器10中读取的特定指令是由所述常规指令译码器1通过连接所述常规指令译码器1的线路P向所述CLIW存储器10指示的。从而,常规指令译码器1指向所述CLIW存储器10的特定存储单元,将存储在其中的CLIW指令发送给所述CLIW指令译码器9。
本发明的较佳实施例的一般操作可描述如下。执行逻辑单元7按照从所述常规程序存储器2中顺序读取的指令操作。只要所述常规指令译码器1并未译码特殊指令,便实际上禁止所述CLIW指令译码器9及所述CLIW存储器10的操作。然而,一旦所述常规指令译码器1译码出特殊指令2(也可称作参考指令),便激活所述CLIW指令译码器9及所述CLIW存储器10的功能。实际上,执行逻辑单元7这时按照从所述CLIW指令译码器9接收的信息而不是从所述常规指令译码器1接收的信息独占地操作。
在本发明的较佳实施例中所提及的来自所述常规程序存储器2的特殊指令包含常规指令译码器1发送给所述地址译码器4的地址信息。为了使数据处理机执行这一特殊指令,将来自所述特殊指令的指令信息与来自相关CLIW指令的指令信息组合在一起。
图2a示出按照先有技术的甚长指令字的典型结构。图2a的指令字14基本上包含4段。第一段中定义多个操作。第二段中将操作数分配给这些操作中的每一个。第三段中将结果赋予这些段中各段。最后在第四段中分别为在所述第二与所述第三段中分配的操作数与结果定义存储器地址。
图2b示出结合本发明使用的指令字的结构。其中示出了具有K位长度的常规(短)指令11。常规指令11具有包含定义指令类型的操作码(op码)的指令首部。图2b还示出也具有K位长度的参考指令的结构。特殊op码存储在参考指令12的op码首部中,该op码区分参考指令12与其它常规指令11。参考指令12还包含特定参考指令要在其上执行的多个存储器地址。最后,参考指令包含指向CLIW指令的指针P。
图2b还示出CLIW指令13的结构。该结构基本上与按照图2a的VLIW指令14之一相同,但除CLIW指令13不包含任何存储器地址之外。事实上,特定CLIW指令的地址包含在通过其指针P指向特定CLIW指令13的参考指令12中。CLIW指令示出为具有1位的位长度。
虽然常规指令11与参考指令12存储在常规程序存储器2中,CLIW指令则存储在CLIW存储器10中。从而,常规程序存储器2与CLIW存储器10是用存储在其中的指令字的各自位长度配置的。在较佳实施例中,常规指令11与参考指令12具有48位的位长度。另一方面,CLIW指令13具有96位的位长度。虽然常规指令译码器1顺序地与连续地译码来自所述常规程序存储器2的指令,来自所述CLIW存储器10的附加指令信息只在所述常规指令译码器1译码参考指令时提供给所述执行逻辑单元7。此时,将来自CLIW指令译码器9的译码的指令馈送给执行逻辑单元7的接收装置8用于取代正常由所述常规指令译码器1提供的所有信息。
图3a为展示按照先有技术用5阶段流水线在处理器中执行正常VLIW指令的表。图3a的表显示了取指令、译码指令、读操作数、执行及写操作数的步骤。
图3b为展示按照本发明流水作业执行程序的表。对于处理常规程序指令,操作序列是与图3a的表中所示的相同的。然而,如果遇到了参考指令便插入两个附加步骤。在译码常规指令时,如果译码出为参考指令,便取出该参考指令中所参照的CLIW指令。例如,见机器周期2与机器周期6之间具有行首部“指令译码与CLIW取”的行。同时,在从存储器读取操作数时,译码前一机器周期中取出的CLIW指令。这是可能的,因为参考指令12包含读取必要的操作数的所有地址信息。参考指令12包含指向要取出与译码以便用要读取的数据执行的特定CLIW指令的指针。在图3b中的表中参见机器周期3与7之间具有行首部“读操作数及CLIW译码”的行。特定指令在流水线中执行的操作序列沿着用箭头指示的表中的对角线。
用一条VLIW指令并行控制多个执行单元的先有技术处理器为了数据处理装置的并行执行的优化使用通常需要大的程序存储器空间。本发明将长指令的使用限制在算法的非常费时的部分上,即所谓的内循环上。从而频繁地执行的指令是在高度并行的方式中执行的,同时大大地降低了不能并行执行的指令的程序代码所需要的存储器空间。先有技术的VLIW指令代码为各执行步骤确定操作码、操作数赋值、输出赋值及存储器地址。这种配置的极大多样性导致各VLIW指令的高的位宽度。虽然VLIW指令为各执行步骤提供完全的编码灵活性,并从而总是支持最大并行性,但程序代码耗用大量程序存储器,特别是对于并不允许完全并行操作的那些执行步骤。
数字信号处理器的典型程序通常包含内循环,其中少数指令非常频繁地重复。数字信号处理器的最大并行性应支持内循环中的指令,因为它们可将所需的运行时间降低到最大程度。
本发明通过使用短指令与可配置长度的指令字(CLIW)的组合解决这一问题。从而,本发明提供最大化内循环的执行效率及限制这些内循环外面的程序代码的程序空间的优点。
内循环外面的常规指令是顺序执行的。只将常规指令引导到执行单元与必要的操作数的某些频繁连接与操作。所有常规指令都是直接从常规程序存储器2中取出的。此外,CLIW指令存储在专用CLIW存储器10中。特殊的参考指令用来启动CLIW指令的执行。参考指令从CLIW存储器10加载CLIW指令。要取出的CLIW指令的地址P是由参考指令定义的。
CLIW指令13定义所有可能的操作类型、操作数连接及输出连接。参考指令包含在与之关联的CLIW指令中定义的操作的所有需要的存储器地址。从而,参考指令与其关联的CLIW指令一起具有按照先有技术的VLIW指令所需的所有信息。
由于最好将常规程序指令(并从而也是参考指令)的位宽度配置成明显小于CLIW指令的位宽度,便有可能编写出比只用VLIW指令紧致得多的程序代码。
相同的CLIW指令的每一次执行的程序代码只包含另一条常规(短)参考指令12。因为在一组CLIW指令内的并行操作的类型与连接通常并不改变(例如对于执行矩阵运算),便有可能只通过改变参考指令中的存储器地址来节省CLIW指令的程序空间。
从而,最好独立于对特定的CLIW指令13的引用指定参考指令12中的操作数的存储器地址。这不仅允许以相同的CLIW指令使用不同的存储器操作数,并且还在使用流水线执行时加速处理器中的指令流执行。
内循环中所需的CLIW指令的数目取决于实际程序。存在着扩展CLIW存储器中可获得的CLIW指令的固定数目的可能性。初始化之后,通过重新调用参考指令能动态地重新配置CLIW存储器。CLIW指令的不同包能用在一个算法的不同部分中。这一特征是通过在运行时重新加载CLIW存储器包实现的。
CLIW存储器的大小是用户可定义的。通常CLIW存储器的大小比程序储存器小得多。可将包含总是CLIW指令的恒定集合的CLIW存储器的这些部分作为只读存储器(ROM)实现。编码在ROM中的CLIW指令仍能与不同存储器地址上的数据一起调用,因为地址信息是包含在参考指令中的。
权利要求
1.一种用于执行包括多条指令的程序中的指令的数据处理装置,所述装置具有-第一指令译码器(1),用于从第一程序存储器(2)中顺序地取第一类型的程序指令(11)及用于译码所述第一类型的指令;-地址译码器(4),用于确定要从或向数据存储器(3)加载或写入的数据的地址;-多个计算单元(61、62、63、64),用于按照所述第一指令译码器(7)的解释在数据上执行操作及用于提供这些操作的结果;-执行逻辑单元(7),用于向所述多个计算单元(61、62、63、64)提供数据及用于按照所述第一类型的指令(11)控制所述多个计算单元(61、62、63、64)的操作;其特征在于所述第一指令译码器(1)辩识所述装置是否要执行起动第二类型的指令(13)的执行的参考指令(12)。
2.按照权利要求1的装置,其特征在于第二指令译码器(9),用于取出所述第二类型的指令(13)及用于译码所述第二类型的指令(13)。
3.按照权利要求2或3的装置,其特征在于所述第二类型的所述指令(13)包括具有操作数数据赋值信息及结果数据赋值信息的多个运算符。
4.按照前面任何一项权利要求的装置,其特征在于所述执行逻辑(7)包括用于解释所述第二类型的指令(13)的装置(8)。
5.按照前面任何一项权利要求的装置,其特征在于所述参考指令(12)包含要在其上执行所述第二类型的所述指令(13)的数据的地址信息。
6.按照前面任何一项权利要求的装置,其特征在于将所述装置配置成允许第一或第二类型的任何指令(11、12、13、14)的流水线执行。
7.权利要求2至6中任何一项的装置,其特征在于所述第二类型的指令(13)是存储在第二程序存储器(10)中的。
8.一种用于执行包含能并行操作的多个计算单元(61,62,63…,6n)及数据寄存器(5)的数据处理装置的指令的方法,该方法包括下述步骤-从第一程序存储器(2)中取(IF1,IF2,…,IF5)第一类型的指令(11);-译码(ID1,ID2,…,ID5)所述第一类型的所述指令(11)来确定它要执行的操作;-从数据存储器(3)或从所述数据寄存器(5)读取(OR1,OR2,…OR5)操作数;-在所述操作数上执行(E1,E2,…E5)操作;以及-将所述操作的结果写(OW1,OW2,…,OW5)入所述数据存储器(3)或所述数据寄存器(5);其特征在于在译码包含为了将其译码成参考指令的预定信息的参考指令(12)时,执行下述步骤-按照包含在所述参考指令(12)中的信息,取(CF1,CF2…,CF5)第二类型的一条指令(13);以及-译码所述第二类型的所述指令(12)来确定要并行执行的操作。
9.按照权利要求8的方法,其特征在于所述参考指令(12)包含具有操作数地址及结果地址的地址信息,这一信息是基本上在译码所述参考指令(12)时译码的。
10.按照权利要求8或9中任何一项的方法,其特征在于译码参考指令(12)的所述步骤及取与特定的参考指令(12)关联的所述第二类型的指令(13)的所述步骤是基本上同时执行的。
11.按照权利要求8至10中任何一项的方法,其特征在于从数据存储器(3)读操作数的所述步骤及译码与所述操作数关联的所述第二类型的指令(13)的所述步骤是基本上同时执行的。
12.按照权利要求8至11中任何一项的方法,其特征在于所述方法是由数据处理装置以流水作业方式执行的。
全文摘要
本发明涉及用于执行程序的指令的数据处理装置,该装置具有第一指令译码器、地址译码器、多个计算单元及执行逻辑单元。该数据处理装置的特征在于所述第一指令译码器判别所述装置是否要执行起动不同类型的指令的执行的参考指令。本发明还涉及执行数据处理装置的指令的方法,该方法的特征在于在译码参考指令时,执行按照包含在参考指令中的信息取不同类型的指令及译码所述不同类型的所述指令来确定要并行执行的操作的步骤。
文档编号G06F9/38GK1291306SQ99803152
公开日2001年4月11日 申请日期1999年2月4日 优先权日1998年2月19日
发明者Y·拉维, R·布卢姆, A·赫尔斯科, H·格拉诺特, E·维恩加滕, R·克努斯, A·罗姆, M·扬尼, G·申德洛维特克, E·科亨 申请人:因芬尼昂技术股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1