CN1365047A - 在一个超长指令字中执行的子流水线和流水线 - Google Patents
在一个超长指令字中执行的子流水线和流水线 Download PDFInfo
- Publication number
- CN1365047A CN1365047A CN01122080.5A CN01122080A CN1365047A CN 1365047 A CN1365047 A CN 1365047A CN 01122080 A CN01122080 A CN 01122080A CN 1365047 A CN1365047 A CN 1365047A
- Authority
- CN
- China
- Prior art keywords
- hardware
- migration
- architecture
- execution
- instruction
- 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.)
- Granted
Links
- 230000005012 migration Effects 0.000 claims description 62
- 238000013508 migration Methods 0.000 claims description 62
- 238000000034 method Methods 0.000 claims description 22
- 238000000605 extraction Methods 0.000 claims description 14
- 238000013519 translation Methods 0.000 claims description 13
- 239000000284 extract Substances 0.000 claims description 10
- 230000006870 function Effects 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 4
- 235000019800 disodium phosphate Nutrition 0.000 abstract description 10
- 238000012163 sequencing technique Methods 0.000 abstract 1
- 238000005516 engineering process Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000036961 partial effect Effects 0.000 description 2
- 241000761456 Nops Species 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 108010020615 nociceptin receptor Proteins 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000011079 streamline operation Methods 0.000 description 1
- 238000005728 strengthening Methods 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/3017—Runtime instruction translation, e.g. macros
- G06F9/30174—Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
- Advance Control (AREA)
Abstract
公开了在超长指令字中执行的子流水线和流水线,能在当前与后代DSP之间提供二进制兼容。当从存储器检索到提取包时,按请求时的执行模式为其指定操作模式。提取包经语法分析成为执行包,并在两种执行模式共享的数据通道中由执行单元作分类。由于迁移与基础体系中的提取包语法和执行单元编码不同,所以两种模式具有单独的控制逻辑电路。基础或迁移体系的译码逻辑电路根据原始指令提取包所约束的执行模式译码。经译码的代码产生控制寄存器文件和执行硬件功能单元用的机器字。操作模式控制多路复用器选择机器字,以产生用于子流水线的机器字和顺续逻辑电路。选中的机器字控制全局寄存器文件,为所有硬件执行单元提供操作数并接受返回结果。
Description
本发明一般涉及指令系统结构,并尤其涉及在一个VLIW(超长指令字)中执行的子流水线和流水线指令。
传统的,对于超长指令字,VLIW处理器已经被下列特征所定义。能够指定多种处理,在每个指令中独立操作。(一个多操作指令。)VLIW体系结构是水平机器,带有每个宽指令字或多操作(MultiOp),由几个操作或Ops组成。一个MultiOp中的所有Ops被发布在相同的执行进度中。对假设用于操作的特定非单元等待时间编程并且实际上,仅在那些假定是真实的时,编程是正确的。针对静态的需求,编译时间的操作调度要考虑到操作等待时间和资源的利用。因此,对于功能操作单元的数量和操作等待时间,需要硬件精确地符合假定建成的程序。尽管是多操作,缺少了任何互锁硬件,流水线操作每个周期被发布。
这种类型体系结构的最初的吸引力在于,它能够使用相对简单和不昂贵的控制硬件开发利用大量的指令字并行(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的方法,进一步包括从所述迁移体系结构控制电路发布无操作指令的步骤,以便保留迁移体系结构中指令的语义。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/603,226 | 2000-06-26 | ||
US09/603,226 US6895494B1 (en) | 2000-06-26 | 2000-06-26 | Sub-pipelined and pipelined execution in a VLIW |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1365047A true CN1365047A (zh) | 2002-08-21 |
CN1175348C 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)
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)
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 |
WO1996029646A1 (fr) * | 1995-03-17 | 1996-09-26 | Hitachi, Ltd. | Processeur |
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 |
-
2000
- 2000-06-26 US US09/603,226 patent/US6895494B1/en not_active Expired - Lifetime
-
2001
- 2001-06-14 CN CNB011220805A patent/CN1175348C/zh not_active Expired - Lifetime
- 2001-06-25 EP EP01000251A patent/EP1168159A1/en not_active Withdrawn
- 2001-06-26 TW TW090115471A patent/TW518516B/zh not_active IP Right Cessation
- 2001-06-26 JP JP2001193066A patent/JP2002041283A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
EP1168159A1 (en) | 2002-01-02 |
TW518516B (en) | 2003-01-21 |
CN1175348C (zh) | 2004-11-10 |
JP2002041283A (ja) | 2002-02-08 |
US6895494B1 (en) | 2005-05-17 |
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 | |
JPH06250846A (ja) | コンパイル装置 | |
Bala et al. | Efficient instruction scheduling using finite state automata | |
Postiff et al. | The Limits of Instruction Level Parallelism in ĖPEC95 Applications | |
CN1983165A (zh) | 用于在simd结构中处理线程组的系统和方法 | |
JPH04307625A (ja) | ループ最適化方法及び装置 | |
CN102750131A (zh) | 一种面向gpu的双调归并排序方法 | |
CN100428184C (zh) | 具有自驱动功能的指令仿真解析系统及其实现方法 | |
JP2002532775A (ja) | インタープリタプログラム実行方法 | |
CN107357552A (zh) | 基于bwdsp芯片实现浮点复数向量求和的优化方法 | |
Fauth | Beyond tool-specific machine descriptions | |
US7000091B2 (en) | System and method for independent branching in systems with plural processing elements | |
CN1175348C (zh) | 在一个超长指令字中执行的子流水线和流水线 | |
Uhrig et al. | A two-dimensional superscalar processor architecture | |
CN1545026A (zh) | 依据确定延迟的动态vliw指令调度方法 | |
Yeh et al. | Branch history table indexing to prevent pipeline bubbles in wide-issue superscalar processors | |
CN100583042C (zh) | 针对程序中循环的编译方法和编译设备 | |
Huang et al. | ASIA: Automatic synthesis of instruction-set architectures | |
Ma et al. | Design of a machine-independent optimizing system for emulator development | |
JP2008523523A (ja) | プログラム内のループ用のコンパイル方法、コンパイル装置およびコンピュータシステム | |
Gursoy et al. | Simulating message-driven programs | |
Zhang et al. | Performance modeling and code partitioning for the DS architecture | |
Marwedel | Code generation for embedded processors: An introduction |
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20041110 |