CN1688967A - 具有并行操作功能单元的数据处理装置 - Google Patents
具有并行操作功能单元的数据处理装置 Download PDFInfo
- Publication number
- CN1688967A CN1688967A CN03824027.0A CN03824027A CN1688967A CN 1688967 A CN1688967 A CN 1688967A CN 03824027 A CN03824027 A CN 03824027A CN 1688967 A CN1688967 A CN 1688967A
- Authority
- CN
- China
- Prior art keywords
- instruction
- address
- word
- memory cell
- unit
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 22
- 238000013519 translation Methods 0.000 claims abstract description 3
- 230000004044 response Effects 0.000 claims abstract 3
- 238000000034 method Methods 0.000 claims description 22
- 230000006870 function Effects 0.000 claims description 15
- 230000000750 progressive effect Effects 0.000 claims description 15
- 230000015572 biosynthetic process Effects 0.000 claims 1
- 238000004590 computer program Methods 0.000 claims 1
- 230000002596 correlated effect Effects 0.000 claims 1
- 238000005755 formation reaction Methods 0.000 claims 1
- 238000012986 modification Methods 0.000 abstract 2
- 230000004048 modification Effects 0.000 abstract 2
- 230000001419 dependent effect Effects 0.000 abstract 1
- 230000008859 change Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005039 memory span Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
- 238000011079 streamline operation Methods 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- 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)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
利用一个VLIW数据处理装置执行一个指令字程序。该装置包括多个能并行执行来自每个指令字的多个指令的功能单元。来自至少一些指令字的指令被并行地取自各个存储器单元,该各个存储器单元是以对于功能单元共用的一个指令地址寻址的。能针对一个或多个特定的存储单元调整将该指令地址译码为一个物理地址的过程。该调整由程序中的调整更新指令控制。因此,能依靠程序执行情况,即响应该指令地址,选择将来自存储器单元的哪些指令合并进该指令字中。
Description
技术领域
本发明涉及一种数据处理装置,如VLIW(超长指令字)处理器,其能并行地执行一个指令字中的多个指令。
背景技术
VLIW处理器能以高度并行的指令执行程序。通常在每个指令周期中,VLIW处理器利用一个程序计数器取 一个含有固定数量指令(经常称为操作)的指令字,该固定数量大于一。VLIW处理器在相同的指令周期(或多个周期)中并行地执行这些操作。
因此,VLIW处理器含有多个功能单元,每个单元能每次执行指令字中的多个操作中的一个。典型地是设置有不同种类的功能单元,如ALU(算术逻辑单元)、多路复用器、分支控制器和存储器存取单元等。也包括通常用于专用目的的、设计成使特定应用的程序加速功能单元。因此,可以增加用于执行部分MPEG编码或解码的功能单元。在改良的VLIW处理器中可存在几百个功能单元。原则上,指令字必须含有用于执行所有这些并行的功能单元的指令。
正如缩写VLIW表示这会导致较宽的指令字。结果需要大量的指令存储器存储这些指令的程序,特别是当VLIW处理器执行的程序含有很多指令时。这导致成本增加。
已经提出了几个减少这些成本的措施。例如,将功能单元组织成含有一个或多个功能单元的组,以使指令字为每个组提供一个指令。这样就限制了必须包含在指令字中的指令的数量(当至少一些组包含一个以上的功能单元时),因此减少了存储器的容量,而没有减少能接收指令的功能单元的数量。然而,这样的分组减少了能并行执行指令的功能单元的数量。因此,在并行性和存储器容量的数量之间通常有一个直接的权衡。
更通常地,在VLIW指令中指令必须被结合在指令字中,这样的非灵活性也增加了程序所用的存储器的容量。例如,当在一个指令周期中程序必须支持交替执行不同的指令组合时,用于所有可能组合的指令字必须被存储起来。当一部分功能单元必须重复多次地执行相同的指令循环而其它的功能单元渐进地执行不同指令时,传统的VLIW处理器仅能在展开(unrolling)该循环(即通过将循环指令的重复复制与渐进的不同指令结合起来而扩大该程序),或在不同的指令周期中执行该循环和渐进指令之间做出选择。前者大大增加了所需的存储器的容量,且如果循环中的重复次数预先不知道则不能执行。后者降低了并行的数量,因此增加了执行时间。
发明内容
其中,本发明的一个目的是增加指令能被结合在VLIW处理器的指令字中的灵活性。
其中,本发明的另一个目的是减少在VLIW处理器中所需的指令存储器的数量。
本发明提供一种如权利要求1所述的数据处理装置。该数据处理装置是一类如VLIW处理器的装置,其采用以一指令地址对程序流进行中心控制,该指令字地址对包含有针对不同功能单元的多个指令的一个指令字进行寻址。然而,在执行程序期间,能个别地针对一个特定的功能单元或功能单元的一组,选择性地调整将该指令地址译码为物理地址的译码过程。
这可以被用来改变在执行程序期间从来自不同存储器单元的指令组成指令字的方式。因此,当第一VLIW指令字的一部分是该程序中的第二VLIW指令字的一部分的拷贝时,就没有必要为两个字都提供完整的存储位置。替代地,在给第一指令字提供指令地址并给第二指令字提供指令地址之间对地址译码过程进行调整,使得有可能在第二指令字中重新使用第一指令字的存储部分。因此,减少了存储程序的存储空间。这可以应用于实现其中部分功能单元必须重复地执行一个循环体而其它功能单元执行渐进指令的循环,或应用于执行“If-then-else”结构,其中部分功能单元有条件地执行可选分支,而其它功能单元则执行相同的指令而不管所述条件。
优选地,对地址译码过程的调整由调整更新指令来控制,所述指令是该程序中的指令的一部分。该调整更新指令可以包含在来自一个特定存储器单元的指令中,或者包含在来自该特定存储器单元之外的一个或多个存储器单元的指令中。因此,能实现对于循环和条件执行的灵活控制。然而,不背离本发明,也可以在该程序外实现对译码过程的调整的控制,例如,采用一个或多个存储器管理单元,其提供对于不同存储器单元而可以不同的指令地址的译码,因此对相同的指令地址能针对不同的存储器单元进行不同的译码,从而有可能将不同的指令地址的每一个针对提供该指令字的一部分的一个存储器单元译码为相同的物理地址,而将其针对提供该指令字的其它部分的其它存储器单元译码为不同的指令地址。这对于必须由存储器单元的仅一部分以一预定次数重复提供的指令循环特别有用。
在另一个具体实施例中,至少该特定的存储器单元仅有对应于一个地址范围的存储位置,该地址范围小于具有可用位置的另一个存储器单元的地址范围。当该指令地址导致寻址超出该范围时,可使从该特定存储器单元获取其指令的功能单元不工作,例如通过提供默认的无操作(No-op)指令,或使该功能单元无效。当使其不工作时,优选地将该功能单元切换至节能状态,例如使该功能单元中的时钟信号无效。
能采用该数据处理装置执行这样的程序,该程序包括在指令周期期间当其它功能单元执行渐进的指令时,一些功能单元执行一个循环。每当一个循环返回发生时,调整该循环中所涉及的该等功能单元的指令地址的译码过程,以便从相同的位置重复地取出该循环的指令。
可以改变一个以上的功能单元或功能组的共用指令地址译码为存储器地址的译码过程。因此,可以并行地执行多个指令数量彼此不同的循环。
附图说明
下面将利用附图更为详细地描述根据本发明的数据处理装置和方法的这些和其它优点。
图1显示了一个数据处理装置;
图2对一个指令循环的执行进行了说明;
图3显示了一个数据处理装置;
图4解释了程序流的一个例子;
图5显示了一个数据处理装置。
具体实施方式
图1显示了一个数据处理装置,其包含一个带有存储器单元12a-c的存储器系统10、一个控制器14和一个指令执行单元7,该指令执行单元包含功能单元18a-e的组70a-c、一个寄存器堆72和一个指令地址计数单元74、一个偏移加法器15a和一个偏移寄存器15b。指令地址计数单元74具有一个耦接控制器14的指令地址输出端。控制器14具有耦接各个存储器单元12a-c的地址输出端。该地址输出端的一个经由偏移加法器15a耦接存储器单元12c。存储器单元12a-c具有耦接组70a-c和寄存器堆72的指令输出端。该寄存器堆具有耦接组70a-c的操作数/结果输出/输入端口(未单独示出)。组70a-c的每一个包含一个或多个功能单元18a-e,其都具有耦接存储器单元12a-c的操作数代码输入端、耦接寄存器外存储器72的操作数输入端和耦接寄存器外存储器72的结果输出端(所有的通过存储器单元12a-c、功能单元18a-e的组70a-c和寄存器堆72之间的单独连接来表示)。组70b中的一个具有一个耦接指令地址计数单元74的分支地址输出端。组70c的另一个具有一个耦接偏移寄存器15b的偏移调整输出端,偏移寄存器15b具有一个耦接偏移加法器15a的偏移输出端。
在操作中,该处理装置在连续的指令周期中操作,其中地址计数单元74将连续指令的地址输出至控制器14(因为相应的指令是连续执行的,所以这些指令被称为连续,尽管在分支的情况下地址可以不是连续的)。控制器将从指令地址取得的更进一步的指令地址,输出至存储器单元12a-c。该更进一步的指令地址之一被偏移加法器15a调整,该偏移加法器将一个来自偏移寄存器15b的偏移加到该更多的指令地址上。该(修改后的)进一步的指令寻址存储器单元12a-c中的地址指令存储器位置。存储器单元12a-c将所寻址的指令输出给指令执行单元7。
从存储器单元12a-c输出的指令的组合形成了一个指令字,其字段被用于各种指令。功能单元18a-e的每个组70a-c从存储器单元12a-c中相应的一个接收一个指令。组70a-c的功能单元18a-e确定组70a-c的哪个功能单元18a-e应执行来自相应的存储器单元12a-c的指令,且确定该功能单元读取由来自寄存器堆72的指令寻址的操作数(若有的话)和将结果提供给寄存器堆72(若有的话)。
如显示的那样,组70a-c的一个具有一个来自分支功能单元18d的连接,用于响应一个指令来更新指令地址计数单元74中的指令地址。例如当功能单元18d确定已经满足某个条件时,功能单元18d执行该更新。更新可以是绝对的(替换地址计数单元74中的程序计数值)或相对的(增加程序计数值)。以实例的方式示出了单个连接。实际上一个以上的组a-c可以包含一个或多个耦接至指令地址计数单元74的分支功能单元。
通过分支功能单元18d更新地址计数单元74中的程序计数(指令地址)来影响功能单元的所有组70a-c的程序(指令地址)流。偏移加法器15a和偏移寄存器15b提供了一种单独影响功能单元的一个组70c的程序(指令地址)流的方式。为此目的,一个组70c包含一个局部分支功能单元18e,其基本上以与传统的分支功能单元18d相同的方式处理局部分支指令,除非局部分支功能单元18e不更新整个地址计数单元中的程序计数值。替代地局部分支功能单元18e更新偏移寄存器15b中的偏移值,该更新偏移寄存器用于调整提供给功能单元的一个组70a-c的存储器单元12a-c的地址。因此,在程序执行期间可取决于在执行期间发生的条件改变该偏移。
图2解释了其是如何可以用于利用功能单元的一个组70c重复地执行一个指令循环的,而功能单元的其它组70a,70b执行渐进的指令。在该图中,指令地址值A是垂直标出的,而表示时间的指令周期数是水平标出的。第一线20表示来自程序计数单元74的连续提供给存储器单元12a、12b的一部分的渐进指令地址,第二线表示循环地址22,其是以渐进的地址的形式并行地连续提供给存储器单元12c中的一个的。
在此情况下,一个存储器单元12c含有来自该循环的指令,其它的存储器单元12a-b含有渐进的指令。例如最初偏移寄存器15b中的偏移值是零,所有的存储器单元12a-c接收相同的地址。在该循环的末尾时,一个存储器单元12c将一个分支指令输出到局部分支功能单元18e,局部分支功能单元18e作出响应而使偏移寄存器15b中的偏移减去一个偏移值。该偏移等于循环的开始与分支指令之间的偏移。结果,尽管程序计数单元74中的程序计数值持续增加,然而存储器单元的一个12c开始重复从该循环的开始取指令。一旦来自该循环的指令已经被执行了足够的次数,局部分支功能单元18e不再使偏移值递减。替代地,隐含地缺少分支返回或响应一个连续指令,局部分支功能单元18e可将偏移寄存器15b中的偏移重新设置为零或设置为某个其它合适的值。
然而本发明不局限于循环。例如,通过更新偏移寄存器15b中的偏移量,可以支持用于部分功能单元的“if-else-then”结构,该偏移量取决于必须执行的是“then”-子句还是“else”-子句。类似的技术可以应用于“根据条件选择(switch by case)”的结构。
如图2所示,来自程序计数单元74的指令地址进展均一。当然,分支会引起偏离该均一进展。因此,最好在要求功能单元的一个组执行具有一个来自整个程序计数的可选偏移的地址的指令的部分程序期间,产生用于由该处理装置执行的指令字的编译器阻止全部的分支指令(特别是条件分支指令)。在一个实施例中,仅在检查应用了偏移的部分程序中没有产生这样的程序计数分支之后,产生用于由该处理装置执行的指令的该编译器增加改变指令的偏移,或相反地在应用了偏移的部分程序中避免程序计数分支指令(这例如可以利用所谓的“如果-变换(if-conversion)”来实施,即,通过实施一个“如果则I1否则I2(if then I1 else I2)”结构,该实施过程由在程序中包括并执行必须在“则(then)条件”下执行的指令I1与那些必须在“否则(else)条件”(如果有的话)下执行的指令I2,并根据从“如果”条件中计算出的某个保护位值有条件地完成指令I1、I2的每一个)。
然而,该编译器也可以插入相应的局部分支以更新该偏移,以消除对整个程序计数值的影响。因此,来自程序计数单元74的指令地址的分叉或循环状态可以与应用到存储器单元12a-c的一个单元的局部地址的稳定进展相结合。
尽管在此解释中已经假定控制器14给所有存储器单元12a-c提供相同的地址,这实际上并不必要。不背离本发明,控制器14可以应用不同形式的映射。类似地,尽管在其指令地址调整的功能单元90a-c的组中已经示出了局部分支功能单元18e,然而应理解不背离本发明局部分支功能单元18e可以位于功能单元70c的任何组中。此外,尽管已经示出了对于一个存储器单元仅一个局部分支功能单元18e,然而应理解为为了调整相同的存储器单元12c的偏移可以设置一个以上的局部分支功能单元,例如,为了调整偏移寄存器15b或多个偏移寄存器中的偏移。
图3示出了一个数据处理装置,其中用于调整地址的电路300被提供了一个以上的存储器单元12a-c。不背离本发明,这样的电路也可以仅被提供一个或多个存储器单元12a-c的一个子集。如显示的那样,由这些电路的每一个提供的偏移由各个局部分支功能单元18e控制。然而,不背离本发明,局部分支功能单元18e可以被构建为执行指令,选择应当调整偏移的存储器单元12a-c。也可以对于多个存储器单元12a-c使用一个共用的地址调整电路。
图4解释了程序流的一个例子,其中一组功能单元执行渐进的指令,而其它组功能单元在执行渐进的指令之前和之后重复执行各自的循环体。在图中,在执行期间,一个程序计数值PC从顶部增加到底部。在各个列400a-c中表示了各个功能组的指令执行情况。第一列400a示出了连续执行的指令的第一和第二块402、404。第二和第三列400b、400c示出了重复执行块406、408。由于数据的相关性,对块406、408的重复执行可以仅在执行了第一块402中的某个指令之后开始,然而仅能在上次已经执行了重复执行块408中的某个指令之后开始执行第二块404。在对第一块402的最后指令的执行与对第二块404的第一指令的执行开始之间,第一列包含一个仅可以执行无操作指令(No-Op)的中间块403。
根据本发明,此类执行可以这样实现:通过每次开始执行相关块的新重复时,更新重复执行的执行块406、408的功能单元的偏移。因此,尽管全部程序计数PC值稳定地增加,含有来自块406、408的指令的指令地址位置还是被重复地寻址。
在执行中间块403期间,执行来自第一列400a的指令的功能组可以从其相应指令存储器单元中的连续较高位置接收无操作指令。因此,可以在该指令存储器单元中提供许多无操作指令,其与重复执行来自其它功能单元中的块406,408的指令相对应。另一选择为,也可以周期性地更新带有第一列400a的指令的指令存储器的偏移,从而为重复执行中间块403中的无操作指令体或循环返回指令做好准备。因此,节省了存储器空间。优选地,此体应该尽可能的短,以便可以在块403中尽可能地重复多次,从而尽可能地利用重复的执行来填充该块。
当该装置设置为允许利用从执行第一列400a的指令的功能组中取得的指令来更新执行第二或第三列400b、c的指令的功能组的偏移寄存器时,第一列400a(包括中间块403)可以包括引起块406和/或408被重复执行的指令。否则,这些指令可以被包括在那些块中。
当采用本发明时,存储器单元12a-c的地址范围为联合大范围是没有必要的:存储器单元12a-c可以互相包含不同数量的可寻址位置。因此,例如,含有部分指令字的存储器单元12a-c的第一个单元可以比将指令应用于其它更专用的功能单元组的存储器单元12a-c提供更多数量的指令地址,其中,该第一单元中所包含的部分指令字将用于一个功能单元组70a,该功能单元组70a执行一组通用的指令包括分支和ALU(算术逻辑单元)指令。在此情况下,该通用的功能单元在执行程序期间通常对于执行指令可以是有效的,然而该更专用的功能单元地址在执行程序期间仅间歇地有效,或者它们重复地执行指令循环而通用的功能单元渐进地执行不同的指令。
当一组功能单元70a-c不需要执行指令时,用于执行该组的存储器单元12a-c的存储器地址的偏移可以被重复地更新,从而限制应用于该存储器单元的地址范围,因此地址停留在用于该存储器单元12a-c的范围内。然而,优选地,当在一部分程序期间该组功能单元70a-c不需要执行指令时,相关的存储器单元12a-c至少部分地无效。因此,能减少能量消耗。在此情况下,指令地址可以连续通过一个对于该相关的存储器单元12a-c不存储指令的地址值范围。
本发明不限于循环指令的重复执行。例如,包含了if-then-else子句(该子句仅影响功能单元组70a-c中的一部分,其它组在“then”条件和“else”条件下都执行相同的指令)的程序可以使用本发明。在这种情况下,被选择的组70a-c的存储器单元12a-c的偏移可以在其它功能单元组的指令地址运行时根据“if”条件而改变。
尽管所示出的所有的功能单元组70a-c没有差别,然而应理解,各组实际上有区别的:一些组中的功能单元可以接收文字数据,如分支地址或来自存储器单元12a-c的恒量,然而,其它组仅仅接收操作代码及从寄存器堆72提供的数据,一些组可以比其它组接收更多数量的操作数或产生更多数量的结果。
此外,尽管已经对于功能单元的各个组70a-c示出了分离的存储器单元12a-c,然而应理解为,一些组可以共用一个存储器单元12a-c,因此该存储器单元并行地产生用于这些组的指令(通常这些存储器单元将比其它存储器单元12a-c具有更宽的指令输出)。
还有,尽管已经示出了一个作为一种实施地址调整的简单方式的偏移寄存器,然而应理解:不背离本发明,可以使用其它方式为从指令字提供指令的部分存储器单元12a-c译码地址。
例如,图5显示了一个或多个存储器管理单元500,其本身是传统的,且其是在该指令地址计数单元和一些存储器单元12a-c之间使用的,用于供给依赖于译码的指令地址(不背离本发明,存储器管理单元可以用于仅一个存储器单元12a-c或所有存储器单元12a-c)。在此情况下,对不同存储器单元的译码可以不同,以使对于部分存储器单元将相互不同的第一和第二指令地址译码为相同物理地址,但是对于其它存储器单元则译码为相互不同的物理地址。通过根据共用的指令地址计数值来改变地址译码,以这样的方式可以实施上面已经给出的例子,而不需要为了调整更新程序中的指令。该指令地址计数(也称为程序计数)值在影响部分功能单元的连续的循环重复中有效。从该指令地址值能确定功能单元70a的一个特定组是否必须执行来自一个循环的指令,且若需要,甚至可以确定重复次数。因此,存储器管理单元500重复地对相关地存储器单元译码指令地址,从而重复地取回相同地指令。也可以注意到:在此情况下,对译码的调整甚至可以详细到单个指令地址级别,因此一个组70a-c能执行来自时间的循环部分的指令,而来自该相同组70a-c的功能单元能执行来自时间的剩余部分的渐进指令。
然而,一个程序控制的偏移寄存器比一个存储器管理单元实施起来复杂度小,且具有支持简单数据相关控制的优点,但是对于以预定的重复次数执行循环,这样的存储器管理单元也工作的很好。当然,不背离本发明,可以使用其它的实施方式,如偏移计数器,其周期性地自动更新偏移。也可以使用偏移寄存器和存储器管理单元的组合等。
实际上,该处理装置可以使用指令执行的流水线操作。即在相同的指令周期中,控制器14可以处理一个指令地址,存储器单元12a-c可以重新获得用于在前指令地址的指令,而功能单元18a-e可以处理一个或多个用于一个或还更在前的指令地址的处理阶段。在此情况下,也可以以流水线处理来自偏移寄存器15b的偏移的运用。
Claims (14)
1.一种数据处理装置,该装置包括:
一个指令寻址单元;
一个指令存储器系统,其设置为响应于一个来自该指令寻址单元的指令地址而输出一个能包含多个指令的指令字,该指令存储器系统包括多个存储器单元,设置为并行地输出该指令字的各个部分;
一个指令执行单元,包括多个功能单元,每个单元能执行来自该指令字的一个相应指令,并且来自该指令字其它指令的执行过程并行地由其它的功能单元来执行;
一个指令地址调整电路,设置为在执行程序期间相对于其它存储器单元,针对一个特定存储器单元调整将指令地址转换成物理地址的译码过程。
2.如权利要求1所述的数据处理装置,其中该指令地址调整单元设置为在执行程序期间在一个来自指令字的调整更新指令的控制下调整该译码过程。
3.如权利要求2所述的数据处理装置,其中该特定的存储器单元设置为专门将指令提供给一个含有功能单元的一个子集的组,该组包含一个构建为执行该调整更新指令的调整更新功能单元。
4.如权利要求2所述的数据处理装置,其中该特定的存储器单元设置为专门将指令提供给一个含有功能单元的一个子集的组,该功能单元包含一个位于该组外部的、构建为执行该调整更新指令的调整更新功能单元。
5.如权利要求2所述的数据处理装置,其中该调整更新指令是一个条件指令,该调整更新根据在调整更新指令中所规定的条件的满足而被执行。
6.如权利要求1所述的数据处理装置,其中为指令地址和存储器单元相关地址译码设置该指令地址调整电路,因此对于该特定的存储器单元将第一和第二指令地址译码为相同的物理地址,而对于该特定存储器单元之外的一个或多个存储器单元则译码为相互不同的物理地址。
7.如权利要求1所述的数据处理装置,编程为在该指令地址继续前进时,反复使用对该译码过程的调整来重复地输出一个或多个构成一个指令循环的指令,以使来自该循环的指令与渐进的指令在该指令字中组合,该渐进的指令至少在重复执行由该循环提供的指令期间是不重复的。
8.如权利要求2所述的数据处理装置,编程为使用该调整更新指令,在该指令地址继续前进时,根据数据相关条件,有选择地输出来自该特定存储器单元的一个或多个指令的第一或第二块,以使该存储器单元的至少一部分输出一个或多个来自第三指令块的指令,与来自该第一或第二块的指令相结合,作为指令字的一部分。
9.如权利要求1所述的数据处理装置,其中该特定存储器单元的可寻址的指令地址的第一数量不同于存储器单元的至少一个单元的可寻址指令地址的第二数量。
10.如权利要求9所述的数据处理装置,其中该特定的存储器单元被设置为,当该调整指令地址位于含有该指令地址的第一数量的一个地址范围或地址范围设定之外时切换到节能状态。
11.一种利用一种数据处理装置执行指令字的程序的方法,该装置包括多个能并行地执行来自每个指令字的多个指令的功能单元,其中来自至少一些指令字的每一个的指令是并行地从各个存储器单元取出的,该方法包括:
利用功能单元共用的指令地址来寻址该指令字;
使用针对一个特定的存储单元将该指令地址译码为一个物理地址的译码过程,根据程序执行情况,从存储单元选出将要响应该指令地址被组合到该指令字中去的指令。
12.如权利要求11所述的执行指令字的程序的方法,其中在程序中的一个调整更新指令控制下选择该可调整的译码过程。
13.如权利要求11所述的执行指令字的程序的方法,包括可调译码过程,响应于渐进的指令地址,从来自一个特定存储器单元中的重复物理地址的一个中循环重复地取出指令,以使至少来自该循环重复部分的指令能与来自该特定存储器单元之外的存储器单元的不同渐进指令被结合进该指令字中。
14.一种包括指令字的计算机程序产品,每个指令字由如权利要求2所述的数据处理装置在一个或多个各自的指令周期中执行,该指令字包括至少一个调整更新指令,用于使该数据处理装置在执行该调整更新字之后,在寻址该指令字中的第一个指令字之后,执行将来自该指令字的第一个指令字的指令与来自该第一个指令字以外的其它指令相结合。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP02079221 | 2002-10-11 | ||
EP02079221.4 | 2002-10-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1688967A true CN1688967A (zh) | 2005-10-26 |
Family
ID=32088029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN03824027.0A Pending CN1688967A (zh) | 2002-10-11 | 2003-09-17 | 具有并行操作功能单元的数据处理装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US7664929B2 (zh) |
EP (1) | EP1554648A2 (zh) |
JP (1) | JP2006502489A (zh) |
CN (1) | CN1688967A (zh) |
AU (1) | AU2003263491A1 (zh) |
WO (1) | WO2004034252A2 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100636596B1 (ko) * | 2004-11-25 | 2006-10-23 | 한국전자통신연구원 | 고에너지 효율 병렬 처리 데이터 패스 구조 |
JP5333433B2 (ja) * | 2008-02-26 | 2013-11-06 | 日本電気株式会社 | 低コストに複数命令流を実行するプロセッサ、その方法及びそのプログラム |
JP2009211192A (ja) * | 2008-02-29 | 2009-09-17 | Toshiba Corp | メモリシステム |
US8510709B2 (en) * | 2009-06-01 | 2013-08-13 | National Instruments Corporation | Graphical indicator which specifies parallelization of iterative program code in a graphical data flow program |
US9733914B2 (en) * | 2009-06-01 | 2017-08-15 | National Instruments Corporation | Loop parallelization analyzer for data flow programs |
US9703559B2 (en) | 2011-11-09 | 2017-07-11 | Nec Corporation | Digital signal processor, program control method, and control program |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3061836B2 (ja) * | 1990-05-22 | 2000-07-10 | 日本電気株式会社 | メモリ装置 |
US5163139A (en) | 1990-08-29 | 1992-11-10 | Hitachi America, Ltd. | Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions |
KR960024924A (ko) * | 1994-12-23 | 1996-07-20 | 리 패치 | 애넥스 레지스터 파일용 식별비트 발생 방법 및 장치 |
US6076159A (en) * | 1997-09-12 | 2000-06-13 | Siemens Aktiengesellschaft | Execution of a loop instructing in a loop pipeline after detection of a first occurrence of the loop instruction in an integer pipeline |
US6026479A (en) * | 1998-04-22 | 2000-02-15 | Hewlett-Packard Company | Apparatus and method for efficient switching of CPU mode between regions of high instruction level parallism and low instruction level parallism in computer programs |
FR2812417A1 (fr) * | 2000-07-27 | 2002-02-01 | St Microelectronics Sa | Processeur dsp a architecture parallele |
US7024538B2 (en) * | 2001-12-21 | 2006-04-04 | Hewlett-Packard Development Company, L.P. | Processor multiple function units executing cycle specifying variable length instruction block and using common target block address updated pointers |
US7349992B2 (en) * | 2002-01-24 | 2008-03-25 | Emulex Design & Manufacturing Corporation | System for communication with a storage area network |
-
2003
- 2003-09-17 US US10/530,375 patent/US7664929B2/en not_active Expired - Lifetime
- 2003-09-17 WO PCT/IB2003/004184 patent/WO2004034252A2/en not_active Application Discontinuation
- 2003-09-17 EP EP03807919A patent/EP1554648A2/en not_active Withdrawn
- 2003-09-17 CN CN03824027.0A patent/CN1688967A/zh active Pending
- 2003-09-17 JP JP2004542710A patent/JP2006502489A/ja not_active Withdrawn
- 2003-09-17 AU AU2003263491A patent/AU2003263491A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP1554648A2 (en) | 2005-07-20 |
US7664929B2 (en) | 2010-02-16 |
WO2004034252A2 (en) | 2004-04-22 |
JP2006502489A (ja) | 2006-01-19 |
WO2004034252A3 (en) | 2004-10-21 |
US20050273569A1 (en) | 2005-12-08 |
AU2003263491A8 (en) | 2004-05-04 |
AU2003263491A1 (en) | 2004-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100190738B1 (ko) | 데이타 처리 시스템 및 방법 | |
US8521997B2 (en) | Conditional execution with multiple destination stores | |
US7953955B2 (en) | Methods and apparatus for automated generation of abbreviated instruction set and configurable processor architecture | |
KR100715055B1 (ko) | Vliw 프로세서, 인스트럭션 컴파일 방법, 머신 판독가능한 매체 및 컴퓨터 프로그램 실행 방법 | |
US20090313458A1 (en) | Method and apparatus for vector execution on a scalar machine | |
US20030005365A1 (en) | Conditional execution per lane | |
US20230229730A1 (en) | Variable position shift for matrix processing | |
US7814302B2 (en) | Address calculation instruction within data processing systems | |
CN1266591C (zh) | 用于java硬件加速器的猜测执行的方法和装置 | |
WO2010112970A1 (en) | Data processing with variable operand size | |
CN1688967A (zh) | 具有并行操作功能单元的数据处理装置 | |
CN1806225A (zh) | 在具有多指令集的数据处理设备内的指令编码 | |
JPH1078872A (ja) | 複数命令並列発行/実行管理装置 | |
EP4278256A1 (en) | Parallel decode instruction set computer architecture with variable-length instructions | |
EP4150446A1 (en) | Masking row or column positions for matrix processing | |
US7272700B1 (en) | Methods and apparatus for indirect compound VLIW execution using operand address mapping techniques | |
US6405301B1 (en) | Parallel data processing | |
CN100343798C (zh) | 用于处理vliw指令的处理器和方法 | |
WO2000077622A1 (en) | Data processor comprising a register stack | |
CN100465880C (zh) | 移动位字段的方法和程控单元 | |
US20040148490A1 (en) | Multiple register load using a Very Long Instruction Word |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |