CN1175348C - 在一个超长指令字中执行的子流水线和流水线 - Google Patents

在一个超长指令字中执行的子流水线和流水线 Download PDF

Info

Publication number
CN1175348C
CN1175348C CNB011220805A CN01122080A CN1175348C CN 1175348 C CN1175348 C CN 1175348C CN B011220805 A CNB011220805 A CN B011220805A CN 01122080 A CN01122080 A CN 01122080A CN 1175348 C CN1175348 C CN 1175348C
Authority
CN
China
Prior art keywords
migration
hardware
instruction
architecture
bag
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.)
Expired - Lifetime
Application number
CNB011220805A
Other languages
English (en)
Other versions
CN1365047A (zh
Inventor
D��E��ʩ̩˹
D·E·施泰斯
小L·R·西马
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Texas Instruments Inc
Original Assignee
Texas Instruments Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Texas Instruments Inc filed Critical Texas Instruments Inc
Publication of CN1365047A publication Critical patent/CN1365047A/zh
Application granted granted Critical
Publication of CN1175348C publication Critical patent/CN1175348C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3818Decoding for concurrent execution
    • G06F9/3822Parallel decoding, e.g. parallel decode units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions

Abstract

公开了在超长指令字中执行的子流水线和流水线,能在当前与后代DSP之间提供二进制兼容。当从存储器检索到提取包时,按请求时的执行模式为其指定操作模式。提取包经语法分析成为执行包,并在两种执行模式共享的数据通道中由执行单元作分类。由于迁移与基础体系中的提取包语法和执行单元编码不同,所以两种模式具有单独的控制逻辑电路。基础或迁移体系的译码逻辑电路根据原始指令提取包所约束的执行模式译码。经译码的代码产生控制寄存器文件和执行硬件功能单元用的机器字。操作模式控制多路复用器选择机器字,以产生用于子流水线的机器字和顺续逻辑电路。选中的机器字控制全局寄存器文件,为所有硬件执行单元提供操作数并接受返回结果。

Description

在一个超长指令字中执行的子流水线和流水线
技术领域
本发明一般涉及指令系统结构,并尤其涉及在一个VLIW(超长指令字)中执行的子流水线和流水线指令。
背景技术
传统的,超长指令字(VLIW)处理器已经被下列特征所定义。这些处理器能够在每个指令中指定多种独立操作。(即,一个多操作指令。)VLIW体系结构是水平机,其中每个宽指令字或多操作(MultiOp)由几个操作组成。一个多操作中的所有操作被发布在相同的执行进度中。程序假设用于这些操作的特定非单元等待时间,并且仅在那些假定是真实时,程序才是正确的。这些处理器要求静态的、编译时间的操作调度要考虑到操作等待时间和资源的利用。因此,这些处理器要求对于功能单元的数量和操作等待时间,硬件能精确地符合在所述程序中建立的假设。尽管每个周期都发出多个流水线操作,但这些处理器没有联锁硬件。
这种类型体系结构的最初的吸引力在于,它能够使用相对简单和不昂贵的控制硬件开发利用大量的指令字并行(ILP)。尽管许多VLIW产品已经建立了每个周期[4,5,3]能够发布六个或更多的操作,但并不能证明用ILP[18,2,14,8,7,6]这样的等级建立超标量产品的可行性。而且,完全暴露现有硬件资源的编译程序和确切的操作等待时间允许最佳的调度。
此外,这些非常相同的特性已经让我们感觉到,VLIW处理器作为产品它的利益是有限的。固定假设建立的程序把硬件看作成具有排除处理器之间目标代码兼容性,它们用不同的技术建立于不同的时期并因此具有不同的等待时间。即使在一个单一处理器的语境中,也需要编译器调度一个等待时间,这就是说固定的编译时间对于操作时存在问题的,比如负载,基于是否一个高速缓存命中或出现错误,它们的等待时间能具有很高的可变性。由于后者的问题,无论什么VLIW产品很少附着于理想的非互锁硬件。换句话说,对于一个VLIW体系结构的实现,当一个负载花费了多于预期的时间时,处理器的互锁和失速是常见的。
进行动态调度的传统智慧不适用于VLIW处理器。应该明白,在VLIW处理器上如何完成动态调度的第一步是要认识到传统VLIW处理器和一个VLIW体系结构概念之间的区别。一个VLIW处理器通过一组具体的资源(功能操作单元,总线,等等)和各种被执行操作的具体的执行等待时间而被定义。假设如果用于一个VLIW处理器被编译和被调度的程序恰好符合哪些资源和等待时间,它能在那个处理器上以一种指令级并行方式被执行而不需要任何特殊的控制逻辑。相反,不具有特殊控制逻辑的VLIW处理器只能执行那些正确的编译了假设的资源和等待时间的程序。VLIW处理器已经被传统的构造成没有特殊控制逻辑,这导致的后果是VLIW处理器必须按这样的方式进行设计。
VLIW作为一个体系结构,一个不同的观点就是,在为体系结构写入的程序类别和实现那个体系结构的处理器的组之间使用一个契约接口。通常的观点是这个契约关心指令的格式和构成一个指令的比特的翻译。但是该契约更进一步的方面是这个专利最重要的。第一,经过它的MultiOp能力,一个VLIW体系结构指定一组保证相互独立的操作(并因此可以同时发布而不用通过发布硬件进行任何检验。
第二,经过断定操作等待时间,如果正确地了解了操作之间的相关性,一个体系结构规定如何翻译一个程序。在序列体系结构的情况下,通过程序编制器假设最大等待时间是一个单一周期。所以,被所有发布的操作(而且,在多数情况下,已经完成)所确定的用于一个操作的操作数在所述操作之前必须出现在程序编制器。这是实际的,因为有许多序列体系结构,例如SPARC,它的一些指令(带有延迟时隙的分支)具有非单元等待时间。
对于VLIW体系结构的程序,在使用具有非单元等待时间的操作的情况下,用于一个操作的输入操作数在所述操作之前没有被所有发布的操作所确定。无论怎样操作,假设在所述操作的发布之前已经完成操作。操作较早地被发布,但不能推测已经被完成,不能根据所述操作强加一个流程。
一个程序具有单元的假定等待时间(UAL),如果通过假设全部操作以一个指令在下一个指令被发布之前完成而正确理解了程序的语义。如果至少一个操作具有一个非单元假定等待时间L,它大于1,一个程序具有非单元假定等待时间(NUAL),也就是说,如果恰好下一个L-1指令被理解并在这个操作完成之前已经被发布,则该程序的语义被正确理解。如果被假定执行的程序的类别是UAL(NUAL)的话,则一个体系结构是UAL(NUAL)。我们应该交替使用术语NUAL程序和认知等待时间的程序。
在指令级并行方面取得的成绩使超长指令字VLIW处理器具有很大的吸引力,因为它们能够使用相对简单的控制逻辑在每个周期发布多种操作。尽管VLIW体系结构具有设计简单化和高发布率的优点,使用VLIW和其他新颖的ILP体系结构的最大障碍是,它们与现有的软件基础不兼容。在VLIW体系结构中,目标代码兼容性的缺点贯穿于具有不同的硬件等待时间和变化的并行级的处理器中,严重的限制了它们成为通用的计算范例。这意味着一个二进制的已安装的软件基础不能围绕着几代的家族进行建立。这蕴含着巨大的经济问题,并且,如果VLIW体系结构继续发展的话,需要有效地解决这个问题。对于这个问题,学术论文中给出了两种类别的方法:硬件方法和软件方法。尽管这些技术可以提供兼容性,但昂贵硬件的复杂性能潜在的影响周期时间。一个典型的软件方法是静态的重新编译来自目标文件的VLIW程序。该方法产生多个可执行的程序,造成商业复制保护和系统管理的困难。例如,如果第一代机器针对每个功能单元具有确定的等待时间而第二代VLIW机器针对那些相同的功能单元具有不同的等待时间,由于在不同操作之间的流依赖,以前的VLIW调度不能保证在第二代机器上正确地执行。如果第二代机器包括一个附加的功能单元,则会出现同样的问题。即使保持相同的等待时间,用于新机器的调度码也不能在以前的机器上正确地执行,因为调度程序为了利用附加的乘法器已经移动了操作。没有简单的方法使这个调度适应以前的机器。这是几代机器之间向下不兼容的情况。在该情况中,兼容性也需要一个机制调整调度或需要用于每代的不同组的二进制。IBM描述了用于一个ILP机器被称为DAISY(Yorktown动态体系结构指令集)的硬件特征。DAISY特别想模仿现存的体系结构,以便能运行用于以前体系结构(包括操作系统核心(kernel)码)的所有现存软件而不改变VLIW的体系结构。每次一个新分段码在首次被执行时,代码被翻译成VLIW原语,通过位于只读存储器中的虚机监控程序,该代码被并行和被存储在以前体系结构不可见的主存储器的一个部分中。后面相同分段的执行不需要翻译(除非驱逐)。硬件方法的限制在于用于进行调度的范围受到运行时间可见的Ops的窗口的限制,因此可用的ILP比一个编译器所能开发利用的要少。这些方案也导致周期时间拉长,出现这样的现象是由于在后代机器的超标量体系结构上过多地考虑使用VLIW模式。
等级程序员能看到描述计算机体系结构的指令级体系结构。程序员用的计算机体系结构的模型是相同的。在一个无掩蔽的流水线的体系结构中,与流水线执行指令相关的延迟在指令集体系结构中是可见的并能被开发利用以便提高计算的带宽。
解决兼容性问题的其他技术包括把软件跨越迁移到一个新的机器体系结构。在这些应用中,经常试图模仿原始的老体系结构,或者模仿被称为基础体系结构的处理器的原本指令集体系结构。VLIW模仿以前的体系结构,或者模仿不同于给定处理器的基础体系结构的任意指令级体系结构,从而得到那个处理器上的支持,被称为迁移体系结构。
通过本发明,可以反映出一个关于不掩蔽流水线VLIW DSPs的当代和后代之间代码兼容性的示例。例如,TI C6000 DSP和TI 64位 C6000 DSP扩充是当前的和未来的体系结构。TI 64-位 C6000 DSP体系结构包含对ISA可见流水线技术和其他体系结构特征的许多改变,以便提供较高的操作频率。这些改变协调了二进制兼容性和下面使用本发明实现的一个加强码迁移路径的需求。
发明内容
公开了一种具体化流水线翻译,提供当前DSPs和后代DSPs之间的二进制兼容性。当从存储器检索一个提取包时,全部提取包在该请求到达提取包的指令存储器时按照执行方式被指定一个操作方式(基础指令集或迁移指令集)。通过执行单元(被调度的),来自指令存储器的提取包被语法分析成执行包并在由两种执行方式(基础和迁移)共享的一个数据通道中被分类。由于在此情况下,在迁移和基础体系结构之间,对于提取包的语法和执行单元进行的译码是不同的,两个执行方式具有单独的控制逻辑。基于正被译码的原始指令提取包所约束的执行方式,通过基础体系结构的译码逻辑或迁移体系结构的译码逻辑,对来自输送数据通道的指令进行译码。被迁移和基础译码流水线处理的代码产生控制寄存器堆(文件)和控制执行硬件的功能单元的机器字。使用一个多路复用器选择这些机器字。通过提取包所约束的操作方式支配从多路复用器选择最后的机器字,以便产生的机器字和顺序逻辑能用于子流水线的执行。选择的机器字控制全局寄存器文件,全局寄存器文件把操作数提供给所有硬件执行单元并接受所有硬件执行单元的结果。
附图说明
图1是一个子流水线执行迁移体系结构的迁移代码的示例,它具有基础体系结构1/4的指令等待时间。
图2示例了在子流水线执行方式中运行的迁移代码的重调度,在翻译到基础体系结构代码之后,图解说明了翻译的无效性。
图3是按照本发明优选实施例图解说明了一个子流水线翻译的实施例。
具体实施方式
子流水线执行是一种硬件效果的方法,用于执行来自一个迁移无掩蔽流水线体系结构的代码。在此方法中,使用固定的多个(叫做S)期望迁移体系结构的指令等待时间设计基础体系结构。根据迁移和基础体系结构之间的相互联系,通过将迁移指令的发布延迟S-1时钟周期,能够在基础体系结构上执行来自迁移体系结构的代码。除了提供子流水线的执行方式外,还提供以低额外开销在基础和迁移指令集之间进行改变的设施。
对于图1所示的代码,下表示出了一种基础体系结构,对于所有指令,它具有4倍于迁移体系结构的指令等待时间:
  指令   迁移延迟时隙   迁移等待时间   基础延迟时隙   基础等待时间
  加   0   1   3   4
  与   0   1   3   4
  或   0   1   3   4
  乘(MUL)   1   2   7   8
表1.迁移和基础体系结构等待时间的比较
代码可以在基础体系结构中被重新安排,如图2所示,因为所有的NOPs需要弥补基础和迁移代码之间等待时间的差异,在子流水线执行方式中的代码运行不会超出基础体系结构指令集的部分性能。根据代码的性能要求和其他的特点,利用两个自动的方法提高来自迁移体系结构的代码性能。首先,使用编写在基础体系结构中的程序库对迁移体系结构的代码进行重链接,第二,使用离线二进制翻译技术把迁移体系结构代码转换成基础体系结构代码。
在使用基础程序库的情况中,迁移代码在子流水线上的性能增益是与花费在基础程序库中的执行时间和在基础ISA中程序库例行程序的性能成比例的。花费在程序库中的时间随应用程序明显变化,但在32-位 C6000 DSP指令集的程序库中,它通常大于一个应用程序执行时间的50%。
离线二进制翻译接受来自迁移体系结构的二进制码,反汇编该代码并把它转换到基础体系结构。通过许多方法可以实现转换处理过程。可以通过具有的子流水线执行方式来简化转换:在子流水线方式中执行被认为是困难的或不可翻译的情况。这允许离线翻译增加配置:随着在时间上困难概念的变化,在子流水线方式中执行的部分代码发生变化。
尽管先前讨论了(在背景技术部分中)IBM和HP以及北卡罗来纳州立大学(North Carolina State University)有关在几代VLIW处理器之间兼容问题的解决方案,它们可以导致VLIW基础体系结构支持迁移体系结构,但这些解决方案不能适用于DSPs。特别是,IBM和NCSU所描述的动态翻译方法不能为实时DSP应用程序提供所要求的可预测的运行时间。HP所描述的方法具有复杂性但可确定运行时间,但是,必须在延迟发布指令缓冲器、延迟寄存器文件和复原单元的硬件上花费巨大的成本。
此外,还发表了涉及CISC(复杂指令集计算机)到超标量RISC(精简指令集计算机)翻译的著作。同一著作的以后版本涉及静态翻译连同运行在基础体系结构上的迁移体系结构的软件仿真。在本发明中,所有迁移体系结构的软件仿真功能可以被在子流水线方式中的硬件执行所替代。
图3是按照本发明优选实施例图解说明了一个子流水线翻译的实施例。在本发明中,代码从存储器中被提取。指令存储器可以用一个直接寻址RAM或高速缓(冲)存(储器)来实现。指令存储器中的代码可以出现在程序编制器上,从而出现在迁移指令集或基础指令集中。在一个实现中,指令存储器中的代码可以被预先译码,以便后续的指令处理。从存储器中同时检索到的一组指令被称为一个提取包。根据在向指令存储器请求提取包时的执行方式,将提取包分配给一个操作方式(基础指令集或迁移指令集)。这样就允许了快速的方式过渡。
来自指令存储器的诸提取包被语法分析成诸执行包,并在由两种执行方式(基础和迁移)共享的一个数据通道中被分类。由于在此情况下,在迁移和基础体系结构之间,对于提取包的语法和执行单元进行的译码是不同的,两个执行方式具有单独的控制逻辑。
基于正被译码的原始指令提取包所约束的执行方式,通过基础体系结构的译码逻辑或迁移体系结构的译码逻辑,对来自输送数据通道的指令进行译码。在无掩蔽流水线VLIW指令集的情况下,基础和迁移体系结构的译码逻辑首先把操作码翻译成要求的控制信号,以便在执行硬件功能单元上执行指定的指令。由于在本发明中所定义的对于迁移和基础指令集的等待时间之间的相互关系(基础操作的等待时间是迁移操作的等待时间的两倍)以及这些指令集的无掩蔽流水线的特征,则对于需要知道流水线的深度、指令分度以及指令依赖性的指令译码技术,就不需要了。其结果是减少了指令译码逻辑中的硬件和复杂性。
被迁移和基础译码流水线处理过的代码产生控制寄存器堆(文件)和控制执行硬件的功能单元的机器字。使用一个多路复用器选择这些机器字,也能选择一个第三种无操作指令的机器字。通过提取包所约束的操作方式支配从上述三种可能的机器字中选择最后的机器字,以便产生的机器字和顺序逻辑能用于子流水线的执行。
在本发明的第一优选实施例中,选择的机器字控制全局寄存器文件,全局寄存器文件把操作数提供给所有硬件执行单元,并接受所有硬件执行单元的结果。两个硬件流水线时钟周期之后,选择的机器字控制局部寄存器文件,这些局部寄存器文件把操作数提供给局部硬件执行单元或者提供给相邻的硬件执行功能单元。最后,选择的机器字控制各种类型的执行硬件,执行硬件在操作数上计算函数以产生结果。

Claims (15)

1.一种子流水线化的翻译设备,用于在基础体系结构和VLIW体系结构之迁移体系结构之间提供二进制兼容性,其特征在于,包括:
VLIW体系结构,包括一个基础体系结构和一个迁移体系结构,并且具有一个基础执行方式和一个迁移执行方式;
指令提取单元,用于同时从存储器中提取一组多个指令,每组形成一个提取包,所述提取包的操作方式依赖于向存储器请求所述提取包时的执行方式;
由基础和迁移体系结构共享的数据通道,用于把所述基础体系结构方式和迁移体系结构方式的诸提取包语法分析成执行包,并把那些基础执行包输送到执行硬件的适当基础体系结构译码器,所述提取包内的指令可以同时执行;
基础体系结构控制电路,用于输送具有基础执行方式的执行包指令;
迁移体系结构控制电路,用于把具有迁移执行方式的执行包指令输送到迁移体系结构译码器;
基础体系结构译码器,它与所述共享的数据通道和所述基础体系结构控制电路相连,用于按所述基础方式对一执行包译码,并生成一相应的机器字;
迁移体系结构译码器,它与所述共享的数据通道和所述迁移体系结构控制电路相连,用于按所述迁移方式对一执行包译码,并生成一相应的机器字;
执行硬件,用于在执行单元上对执行包指令进行执行,并具有一个基础体系结构译码器和一个迁移体系结构译码器,用于在进行执行之前,根据正被译码的指令的提取包的执行方式,分别对所述基础体系结构指令和所述迁移体系结构指令进行译码;
多路复用器,具有至少两个输入端和一个机器字输出端,其中一个输入端是所述迁移体系结构译码器的机器字输出端,另一个输入端是所述基础体系结构译码器的机器字输出端,所述多路复用器根据所述提取包的操作方式进行选择;以及
机器字,用于控制执行硬件单元,执行硬件与所述多路复用器相连,用于在对应于所述多路复用器选择的所述机器字的执行单元上,对执行包指令作执行。
2.如权利要求1所述的子流水线化的翻译设备,其特征在于,所述多路复用器进一步包括第三输入,所述第三输入是一个无操作指令机器字。
3.如权利要求1所述的子流水线化的翻译设备,其特征在于,所述机器字控制一个全局寄存器文件,该全局寄存器文件把操作数提供给所有硬件执行单元并接受所有硬件执行单元的结果。
4.如权利要求3所述的子流水线化的翻译设备,其特征在于,在所述机器字对所述全局寄存器文件进行控制之后,所述的机器字控制局部寄存器文件,该局部寄存器文件把操作数提供给局部硬件执行单元或者提供给相邻的硬件执行功能单元。
5.如权利要求4所述的子流水线化的翻译设备,其特征在于,在所述机器字对所述局部寄存器文件进行控制之后,所述机器字控制各种类型的执行硬件,该执行硬件在操作数上计算函数以便产生硬件执行单元的结果。
6.如权利要求1所述的子流水线化的翻译设备,其特征在于,基础和迁移体系结构的译码单元把操作码翻译成要求的控制信号以便在执行硬件功能单元上执行指定的指令。
7.如权利要求1所述的子流水线化的翻译设备,其特征在于,进一步包括,所述迁移体系结构控制电路用于发布无操作指令,以便保留迁移体系结构中指令的语义。
8.一种在基础体系结构和VLIW体系结构之迁移体系结构之间提供二进制兼容性的方法,其特征在于,包括以下步骤:
在一个VLIW体系结构上,分别在一个基础体系结构和一个迁移体系结构上执行基础执行方式和迁移执行方式;
从一存储器中同时提取了一组多个指令,每组形成一个提取包,所述提取包的操作方式依赖于向存储器请求所述提取包时的执行方式;
在一个由基础和迁移体系结构共享的数据通道上,把所述基础体系结构方式和迁移体系结构方式的诸提取包语法分析成执行包,并且把那些基础执行包输送到执行硬件的适当基础体系结构译码器,所述提取包内的指令可以同时执行;
输送具有基础执行方式的执行包指令;
在一个迁移体系结构控制电路上,把具有迁移执行方式的执行包指令输送到迁移体系结构译码器;
按所述基础方式对一执行包译码,并生成一相应的机器字;
按所述迁移方式对一执行包译码,并生成一相应的机器字;
在执行硬件的执行单元上,对执行包指令进行执行,所述执行硬件具有一个基础体系结构译码器和一个迁移体系结构译码器,用于在进行执行之前,根据正被译码的指令的提取包的执行方式,分别对所述基础体系结构指令和所述迁移体系结构指令进行译码;
在具有一机器字输出方式的多路复用器中,根据所述提取包的操作方式,在按所述体系译码方式译码得到的机器字输出与按所述基础体系结构译码器中译码得到的机器字输出之间,选择一个机器字输出;
使用所述选中的机器字,控制执行硬件单元。
9.如权利要求8所述的方法,其特征在于,进一步包括,在所述迁移体系结构译码器的输出和所述基础体系结构译码的输出以及一个无操作指令机器字之间进行选择。
10.按照权利要求8的方法,进一步包括,使用所述机器字对寄存器进行控制。
11.按照权利要求8的方法,使用所述机器字对一个全局寄存器文件进行控制,该全局寄存器文件把操作数提供给所有硬件执行单元并接受所有硬件执行单元的结果。
12.按照权利要求11的方法,进一步包括,在所述的对所述全局寄存器文件进行控制之后,控制局部寄存器文件,该局部寄存器文件把操作数提供给局部硬件执行单元或者提供给相邻的硬件执行功能单元。
13.按照权利要求12的方法,进一步包括,在所述的对所述局部寄存器文件进行控制之后,控制各种类型的执行硬件,该执行硬件在操作数上计算函数以便产生所述硬件执行单元的结果。
14.按照权利要求8的方法,进一步包括,在基础和迁移体系结构的译码单元内把操作码翻译成要求的控制信号以便在执行硬件功能单元上执行指定的指令。
15.按照权利要求8的方法,进一步包括从所述迁移体系结构控制电路发布无操作指令的步骤,以便保留迁移体系结构中指令的语义。
CNB011220805A 2000-06-26 2001-06-14 在一个超长指令字中执行的子流水线和流水线 Expired - Lifetime CN1175348C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/603,226 US6895494B1 (en) 2000-06-26 2000-06-26 Sub-pipelined and pipelined execution in a VLIW
US09/603,226 2000-06-26

Publications (2)

Publication Number Publication Date
CN1365047A CN1365047A (zh) 2002-08-21
CN1175348C true CN1175348C (zh) 2004-11-10

Family

ID=24414550

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011220805A Expired - Lifetime CN1175348C (zh) 2000-06-26 2001-06-14 在一个超长指令字中执行的子流水线和流水线

Country Status (5)

Country Link
US (1) US6895494B1 (zh)
EP (1) EP1168159A1 (zh)
JP (1) JP2002041283A (zh)
CN (1) CN1175348C (zh)
TW (1) TW518516B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7292586B2 (en) * 2001-03-30 2007-11-06 Nokia Inc. Micro-programmable protocol packet parser and encapsulator
GB2411990B (en) * 2003-05-02 2005-11-09 Transitive Ltd Improved architecture for generating intermediate representations for program code conversion
GB2435116B (en) 2006-02-10 2010-04-07 Imagination Tech Ltd Selecting between instruction sets in a microprocessors
US9612840B2 (en) 2014-03-28 2017-04-04 Intel Corporation Method and apparatus for implementing a dynamic out-of-order processor pipeline

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5884057A (en) 1994-01-11 1999-03-16 Exponential Technology, Inc. Temporal re-alignment of a floating point pipeline to an integer pipeline for emulation of a load-operate architecture on a load/store processor
US6496922B1 (en) 1994-10-31 2002-12-17 Sun Microsystems, Inc. Method and apparatus for multiplatform stateless instruction set architecture (ISA) using ISA tags on-the-fly instruction translation
US5638525A (en) * 1995-02-10 1997-06-10 Intel Corporation Processor capable of executing programs that contain RISC and CISC instructions
US6401190B1 (en) * 1995-03-17 2002-06-04 Hitachi, Ltd. Parallel computing units having special registers storing large bit widths
US5774686A (en) * 1995-06-07 1998-06-30 Intel Corporation Method and apparatus for providing two system architectures in a processor
US5848288A (en) * 1995-09-20 1998-12-08 Intel Corporation Method and apparatus for accommodating different issue width implementations of VLIW architectures
US5961632A (en) * 1996-07-25 1999-10-05 Texas Instruments Incorporated Microprocessor with circuits, systems, and methods for selecting alternative pipeline instruction paths based on instruction leading codes
US7114056B2 (en) 1998-12-03 2006-09-26 Sun Microsystems, Inc. Local and global register partitioning in a VLIW processor
US6615338B1 (en) * 1998-12-03 2003-09-02 Sun Microsystems, Inc. Clustered architecture in a VLIW processor
EP1050796A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics S.A. A decode unit and method of decoding
EP1050799A1 (en) 1999-05-03 2000-11-08 STMicroelectronics S.A. Execution of a computer program
US6415376B1 (en) * 2000-06-16 2002-07-02 Conexant Sytems, Inc. Apparatus and method for issue grouping of instructions in a VLIW processor

Also Published As

Publication number Publication date
US6895494B1 (en) 2005-05-17
EP1168159A1 (en) 2002-01-02
CN1365047A (zh) 2002-08-21
JP2002041283A (ja) 2002-02-08
TW518516B (en) 2003-01-21

Similar Documents

Publication Publication Date Title
KR100871956B1 (ko) 다중 스레드 초장 명령어 프로세서, 명령 처리 방법 및 컴파일러
Smith Dynamic instruction scheduling and the Astronautics ZS-1
US6112299A (en) Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching
EP0454985B1 (en) Scalable compound instruction set machine architecture
WO2019194915A1 (en) Apparatuses, methods, and systems for unstructured data flow in a configurable spatial accelerator
JPH06250846A (ja) コンパイル装置
Bala et al. Efficient instruction scheduling using finite state automata
CN1983165A (zh) 用于在simd结构中处理线程组的系统和方法
JPH04307625A (ja) ループ最適化方法及び装置
CN102750131A (zh) 一种面向gpu的双调归并排序方法
CN100428184C (zh) 具有自驱动功能的指令仿真解析系统及其实现方法
WO2004040445A1 (en) Method and apparatus for selectively optimizing interpreted language code
US7000091B2 (en) System and method for independent branching in systems with plural processing elements
CN1175348C (zh) 在一个超长指令字中执行的子流水线和流水线
CN100583042C (zh) 针对程序中循环的编译方法和编译设备
JP2008523523A (ja) プログラム内のループ用のコンパイル方法、コンパイル装置およびコンピュータシステム
US7739481B1 (en) Parallelism with variable partitioning and threading
Gursoy et al. Simulating message-driven programs
Jee et al. Performance evaluation for a compressed-VLIW processor
Marwedel Code generation for embedded processors: An introduction
Tyson Evaluation of a Scalable Decoupled Microprocessor Design
Thorson Internet Nuggets
JP2819668B2 (ja) 命令の最適化方式
Radhakrishnan et al. n-pipe: Application specific heterogeneous multi-pipeline processor design
Arita et al. High speed synchronization for a statically scheduled superscalar processor

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CX01 Expiry of patent term

Granted publication date: 20041110

CX01 Expiry of patent term