CN1714338A - 带有复制寄存器文件的vliw处理器 - Google Patents

带有复制寄存器文件的vliw处理器 Download PDF

Info

Publication number
CN1714338A
CN1714338A CN200380103708.XA CN200380103708A CN1714338A CN 1714338 A CN1714338 A CN 1714338A CN 200380103708 A CN200380103708 A CN 200380103708A CN 1714338 A CN1714338 A CN 1714338A
Authority
CN
China
Prior art keywords
register file
copy
instruction
register
result
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
Application number
CN200380103708.XA
Other languages
English (en)
Other versions
CN100342328C (zh
Inventor
B·斯里尼瓦桑
M·J·G·贝库伊
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1714338A publication Critical patent/CN1714338A/zh
Application granted granted Critical
Publication of CN100342328C publication Critical patent/CN100342328C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30098Register arrangements
    • G06F9/30141Implementation provisions of register files, e.g. ports
    • 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 or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3826Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
    • G06F9/3828Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage with global bypass, e.g. between pipelines, between clusters
    • 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional 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 or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
    • G06F9/3891Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters

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)
  • Advance Control (AREA)

Abstract

在VLIW处理器中执行计算机程序,该VLIW处理器包含多个功能部件和多个寄存器文件,每个寄存器文件都耦合到功能部件的一个相应子集。当执行第一条指令时,它将结果写入跟据来自该指令的结果地址所寻址到的寄存器文件中的一个寄存器,该结果被复制到复制寄存器文件中的一个寄存器。复制寄存器是根据写入结果的寄存器文件而选择的,但至少部分独立于结果地址,以使写入寄存器文件中寻址到的不同的寄存器中的结果被复制到寄存器文件中的相同寄存器。接着可以执行复制指令以从复制寄存器文件将该结果复制到第二寄存器文件,该结果从中可被用作另一指令的操作数。

Description

带有复制寄存器文件的VLIW处理器
本发明涉及一种数据处理设备,其所具有的指令字包含了用于多个并行功能部件的指令,例如超长指令字(VLIW)处理设备。
VLIW处理器包含多个能够执行来自程序的指令的功能部件。指令以包含用于多个并行功能部件的指令的指令字的形式发出。通过寄存器文件在功能部件之间传送操作数数据。每个寄存器文件包含一组寄存器和用于访问选中的寄存器的多个读和写端口。每个功能部件(或功能部件组)耦合到不同的端口组。因而,一个功能部件能够读取由其它功能部件产生的操作数并写下结果供其它功能部件使用。
实际上VLIW处理器可以包括非常多的功能部件。这使得无法耦合所有功能部件到单个寄存器文件。作为一种替代体系结构,已经提出将功能部件组织成集群。对每个集群提供一个寄存器文件,以使一个集群中的所有功能部件耦合到这个集群的端口。在这种体系结构中由某个特定功能部件产生的结果只能由与该特定功能部件同属一个集群的功能部件从寄存器文件读取。在这后面的思想是来自需要交换结果的不同任务的指令通常只由功能部件的子集执行,即由某一特定集群中的功能部件执行。因此那些任务不需要到集群之外的寄存器文件的连接。
不过,有时需要在不同集群的功能部件之间交换有限的操作数和结果。已经提出了多种不同的解决方案来从一个寄存器文件传送数据到另一个寄存器文件,以使一个集群中的功能部件所产生的结果可以由别的集群中的功能部件使用。
美国专利号6,269,437公开了具有多个寄存器文件和一个复制器的处理器。该复制器执行在不同寄存器文件中指定源和目标寄存器的指令。该复制器与所述寄存器文件的读和写端口相耦合。该复制器响应指令而从源寄存器复制数据到目标寄存器。
当编译该处理器的一个程序时编译器生成用于多种不同功能部件的一个指令集合并确定分别产生和使用特定结果的指令之间的依赖关系。编译器确定由不属于相同集群(没有耦合到一个共同的寄存器文件的端口)的功能部件执行的指令之间何时存在这种依赖关系。假使这样,编译器就为复制器生成一条指令以将生产指令的结果复制到与执行该使用指令的功能单元相耦合的寄存器文件中的一个寄存器。
这项技术对指令字的生成施加了额外的调度限制。在生产指令执行之后,必须调度复制指令,然后是使用指令。所涉及的寄存器必须至少保持分配到相关指令已经执行过为止。这降低了处理器的效率。
除了别的以外,本发明的一个目标是为使用分布在不同寄存器文件上的寄存器,具有多个能并行执行来自一个指令字的指令的功能部件的数据处理设备提高效率。
权利要求1中阐明了依照本发明的数据处理设备。依照本发明提供了一个特殊的复制寄存器文件,它充当复制功能部件的操作数源。写到寄存器文件的寄存器中的结果被作为产生该结果的指令执行的一部分复制到复制寄存器文件,即不需要额外的指令。复制功能部件由来自指令字的指令控制。复制功能部件的指令指示哪些结果需要从复制寄存器文件复制到其它寄存器文件。
优选地,其中复制寄存器文件通过一个端口耦合链路与寄存器文件的至少部分端口相耦合,用于将写入到那些端口中各端口的数据各自复制到复制寄存器文件中一个相应寄存器中,该相应寄存器的选择依赖于该相应的写入端口,但与用来向该相应的端口提供数据所用的寄存器地址至少部分无关。因而,对每个源寄存器文件在复制寄存器文件中只需要有限数量的复制寄存器,少于源寄存器文件中寄存器的总数。优选地,完全独立于寄存器地址选择复制寄存器。
原则上,写入普通寄存器的每个结果可以被自动复制到复制寄存器文件。但是,这可能会导致覆盖需要从复制寄存器文件复制出的先前的结果。为了限制或防止不必要的复制,依照本发明的数据处理设备的一种实施方案使用的指令包括一个指示是否必须将指令中至少一条指令的结果复制到复制寄存器文件的字段,端口耦合链路被安排用来根据所述字段中的值复制数据。因而,可以由程序防止不必要的覆盖,为复制指令留下更多时间用于从复制寄存器文件复制。
本发明的主要应用是不具有耦合到相同寄存器文件的端口的功能部件的寄存器文件之间的结果复制。进一步的应用是减小寄存器使用上的压力,即在一个寄存器文件之外临时保存数据,以便使该寄存器文件中的寄存器可以用于其它数据。假使这样就用复制寄存器文件保存最初写入到一个寄存器文件随后又被覆盖的结果,随后当需要该结果时可以再次写回那个寄存器文件。写回可以从复制寄存器文件直接进行,或者在存储在另一寄存器文件之后或在另一寄存器文件中进行。
将用下列附图阐明该数据处理设备的这些和其它目标以及优势方面、数据处理的方法以及编译指令字的方法。
图1示出了一种数据处理设备。
图2示出了一个复制寄存器文件。
图3示出了为该处理设备生成一个程序的流程图。
图1示出了一种具有指令发射部件10、功能部件12a-d、复制功能部件14、寄存器文件16a-b和复制寄存器文件18的数据处理设备。指令发射部件10具有与功能部件12a-d和复制功能部件14相耦合的发射槽连接。指令发射部件10设计用来发射指令字,每个指令字包含一个指令组合,每个指令用于功能部件12a-d和复制功能部件14中相应的一个。为此目的,指令发射部件10通常包含指令存储器、程序计数器和可选的指令解压缩电路,但因为这些是众所周知的并且与本发明无关就不再单独示出。
第一和第二功能部件12a,b具有与第一寄存器文件16a的读端口15a,b耦合的操作数输入。第一和第二功能部件12a,b具有与第一寄存器文件16a的写端口17a,b耦合的结果输出端口。同样,第三和第四功能部件12c,d具有与第二寄存器文件16b的读端口耦合的操作数输入。第三和第四功能部件12c,d具有与第二寄存器文件16b的写端口17c,d耦合的结果输出。读和写端口包括寄存器寻址部件(未单独示出)以在指令中寄存器选择字段的控制下寻址寄存器文件16a,b中的寄存器。读端口各自包括一个寄存器内容连接(未单独示出)用于将地址寄存器的内容提供给功能部件12a-d。写端口各自包括一个结果连接(未单独示出)用于将功能部件12a-d的结果提供给寄存器文件16a,b。
功能部件12a-d可以是任意类型,例如算术逻辑部件(LAU)或存储访问部件等。尽管只示出了有限数量的功能部件,但应该理解实际中可以提供多得多的功能部件。同样,可以提供很多寄存器文件。如图所示,每个寄存器文件16a,b规定了一个与该寄存器文件相连的功能部件12a-d集群。作为例子,每个功能部件12a-d只与一个寄存器文件相耦合,但应该理解通过寄存器文件选择硬件一些功能部件12a-d可以使输入和/输出耦合到不止一个寄存器文件16a,b,以便可以在指令的控制下选择那些寄存器文件中任意一个中的寄存器从中读出和/或从那些功能部件写入。但是,优选地每个功能部件12a-d只与一个寄存器文件相耦合,因为连接到多个寄存器文件增加了所需端口数、指令宽度、硬件成本及延迟。
尽管将依据功能部件12a-d描述本发明,但您将理解功能部件12a-d中的一个或多个可以由一组共享相同读写端口并可替换执行指令的功能部件代替。
复制寄存器文件18的输入耦合到寄存器文件16a,b的每一个写端口17a-d。复制寄存器文件还有一个读端口耦合到复制功能部件14的操作数输入。复制功能部件14的结果输出19a,b耦合到寄存器文件16a,b的相应端口。
在操作中,指令发射部件10发射指令字,每个指令字包含一个指令组合,每条指令用于功能部件12a-d和复制功能部件14中相应的一个。用于功能部件12a-d的指令通常包含操作代码、第一和第二操作数寄存器选择代码及结果寄存器选择代码。操作代码命令该功能部件选择特定的操作类型,操作数寄存器选择代码及结果寄存器选择代码被提供给寄存器文件的端口以分别选择操作数和结果寄存器。
当结果被写入到寄存器文件16a,b时,至少部分结果被自动复制到复制寄存器文件18的寄存器中。复制功能部件14执行指令以复制复制寄存器文件18中寄存器的内容到寄存器文件16a,b中寻址到的寄存器。
复制功能部件14的指令通常包含复制寄存器文件18中包含操作数数据的操作数寄存器的地址以及对数据应该被复制到的结果寄存器的说明。结果寄存器的说明通常包含寄存器文件选择字段和寄存器选择字段,分别用于寻址所选的寄存器文件16a,b和该寄存器文件16a,b中的寄存器。响应该指令,数据从寻址到的带操作数的寄存器被复制到所选寄存器文件16a,b中寻址到的寄存器(实际中应该实现远远不止两个寄存器文件16a,b以从中选择)。
因而,由指令发射部件10发射给复制功能部件14的复制指令的执行可以用来使由始发功能部件12a-d执行的操作的结果能够由和始发功能部件12a-d没有耦合到相同寄存器文件16a,b的功能部件12a-d用作操作数。
在一种替代实施方案中,复制功能部件14复制到寄存器文件16a,b的预定寄存器中。假使这样在复制功能部件14的指令中就不需要结果寄存器地址。另外,复制功能部件14可以并行地将副本广播到所有寄存器文件16a,b中。如果这样在复制功能部件14的指令中就不需要寄存器文件选择字段,但是,当然在很多只有一个或部分寄存器文件16a,b需要该副本的应用中,这种方法可能会导致不必要的寄存器覆盖。
图2示出了复制寄存器文件18(图1所示)的一种实施方案。这个实施方案包括多路复用器20和多个寄存器22a-d。寄存器文件16a-b的写端口17a-d的数据部分与寄存器22a-d中的相应寄存器的输入28a-d相耦合。寄存器22a-d的输出通过多路复用器20与复制功能部件14(未示出)的操作数输入26相耦合。控制输入24用于从复制功能部件14的复制指令接收操作数地址。
在操作中,当一个功能部件12a-d将结果写入到一个写端口17a-d时,该结果也被自动写入到那个写端口17a-d所属的寄存器22a-d。在复制指令的控制下来自寄存器22a-d中被选中的寄存器的操作数数据被提供给复制功能部件14的操作数输入26。
将会认识到来自一个特定写端口17a-b的所有数据都被复制到复制寄存器文件18中该特定的写端口17a-b所属的同一个寄存器22a-d,与在写端口17a-d的寄存器文件16a,b中所选择的寄存器无关。因而,复制寄存器文件18中寄存器22a-d的数量远远小于寄存器文件16a-d中寄存器数量之和,所以可以用很短的地址字段寻址复制寄存器文件18中的寄存器22a-d。这样做的价值在于,不需要进一步的措施就能保证寄存器22a-d的内容在被覆盖之前必定会被复制到其它寄存器文件16a,b中。
优选地,来自指令发射部件10的指令字控制是否复制结果数据到复制寄存器文件18中的寄存器22a-d。例如,通过用复制控制信息扩充功能部件12a-d的指令可以实现到这一点,例如每个特定指令中的一个复制控制位指示当功能部件12a-d将该特定指令的结果写入它的寄存器文件16a,b时是否应该复制该特定指令的结果到复制功能部件18中的相关寄存器22a-d。假使这样,该特定指令的复制控制位就被提供给执行该指令的功能部件12a-d的写端口17a-d对应的寄存器22a-d的写允许输入(图2中未示出)。复制控制位的使用使得能够延迟覆盖寄存器22a-d中的数据,所以能够延迟要从寄存器22a-d复制数据的复制功能部件14的指令,例如当必须首先复制来自另一寄存器22a-d的数据时。
在一种可选实施方案中复制寄存器文件18中用于一个写端口17a-d的寄存器22a-d可由多个寄存器代替。假使这样,复制功能部件的复制指令包含用于在各个写端口17a-d对应的多个寄存器之间进行选择的选择代码。来自写端口17a-d的结果被以循环方式复制到用于该写端口17a-d的这多个寄存器中不同的寄存器。因而,即使没有复制控制位也延迟了对寄存器22a-d中数据的覆盖。
尽管对写端口17a-d中的各个端口示出了单独的寄存器22a-d,但也可以为写端口组(例如一个寄存器文件16a,b的所有写端口)提供共享寄存器(或寄存器组)。在每个指令周期中只有来自该写端口17a-d的组中一个组的数据被写入用于该写端口组的寄存器(或寄存器组中的一个)。这减少了到复制寄存器文件18中的寄存器的连接数。例如,通过复制控制位,可以控制从相关写端口组中的哪个写端口复制数据。
作为选择,可以为同一个寄存器文件中的不同寄存器组提供独立的寄存器22a-d。假使这样,提供给写端口17a-d的寄存器地址的一部分也被提供给复制寄存器文件18以在复制寄存器文件18中选择适当的寄存器22a-d。这降低了复制寄存器文件18中的寄存器22a-d被覆盖的平均频率,给了复制功能部件16更多的时间复制数据。通过在编译阶段调整对不同结果的寄存器分配以使以后需要的数据在复制寄存器文件18中不被覆盖,能够确保这个数据保持可用。为此不需要整个寄存器地址:仅仅地址位中的一个子集(例如一个或多个位)就足以为此目的在复制寄存器文件18中选择一个寄存器。
图3示出了用于为图1的处理设备生成指令字的一个过程的流程图。这种用于产生指令的过程可以由任何计算机执行,包括图1中的设备。该过程导致一组指令字可能在一些介质(如磁盘或光盘)上的中间存储之后存储在指令发射部件10中以供功能部件12a-d和复制功能部件14执行。
在第一步31中以某种形式例如像C这样的高级语言或其它形式接收程序说明。在第一步中这个程序被转换成对必须由功能部件12a-d执行以实现该程序的机器操作集的说明以及这些操作之间的数据依赖的说明。在第二步32中,这些操作被分配给功能部件12a-d并通过分配调度到不同的指令字。通常并不是所有功能部件12a-d都能够执行所有的操作,因此对功能部件12a-d的操作的分配受限于功能部件12a-d的能力。此外,指导分配以便将指令分配到不同的功能部件使得需要执行的指令字数量最少。另外第二步32还为操作的结果分配寄存器。
在第三、第四和第五步33、34、35中,一个接一个地处理指令字中的指令以确保指令操作数可用。在第四步中测试产生指令操作数的功能部件12a-d是否与执行指令的功能部件12a-d耦合到了相同的寄存器文件。如果是,就设置该指令的操作数指向相关寄存器。如果不是,就执行第四步35,在必须执行该指令的功能部件12a-d的寄存器文件16a,b中分配一个中间寄存器。设置该指令的操作数指向该中间寄存器。第四步35在指令字中增加一条复制指令以命令复制功能部件14从复制寄存器文件18复制操作数到中间寄存器。第五步36为产生该操作数作为结果的指令设置复制控制位,以使该结果被写入复制寄存器文件18。第六步37测试是否已经执行完所有指令。如果没有,就重复第三到第五步33-35。如果已执行完,就执行第七步37,汇编程序并将它存储在计算机可读介质如指令发射部件10中的可寻址半导体存储器或者中间介质之中。
将会理解图3仅示出了本发明最直接涉及的那些步骤。实践中可以添加很多其本身实现已知的步骤。例如,如果必要的话,可能发生重新调度步骤以确保复制功能部件14有足够的时间复制数据,或者确保足够的寄存器空闲可用。
尽管已经描述了本发明应用于在没有端口耦合到相同寄存器文件的功能部件的寄存器文件之间复制结果,但应该认识到本发明可以有更广泛的应用。例如,可以用复制来减轻寄存器使用上的压力。假使这样复制寄存器文件就用来保存那些在其最初被写入的寄存器文件中被覆盖的结果,以后当需要该结果时再将其写回那个寄存器文件。写回可以直接从复制寄存器文件进行,或者通过存储器等。因而如果在复制操作之后一个源寄存器文件中的值在一个特定寄存器文件中不再需要,可以对其它数据复用该寄存器,因为该值在以后可以复制到别的寄存器文件。

Claims (9)

1.一种数据处理设备,包括:
-多个功能部件;
-多个寄存器文件,每个寄存器文件都有端口耦合到来自各个功能部件集群的功能部件;
-一个指令字发射部件,用于发射指令字到功能部件,指令字可以包括在一个公共指令周期中分别由各个功能部件执行的指令的组合;
-耦合到寄存器文件的一个复制寄存器文件,用于响应写入数据到寄存器文件中的任一个而接收写入到那个寄存器文件中的数据的副本;
-耦合到复制寄存器文件的一个复制功能部件,该复制功能部件用于执行来自指令字的一条指令以从复制寄存器文件复制一个寄存器的内容到寄存器文件中一个寻址到的寄存器。
2.依照权利要求1的数据处理设备,其中复制寄存器文件通过相应的端口耦合链路耦合到寄存器文件的至少部分端口,,用于将写入这些端口中相应端口的数据各自复制到复制寄存器文件中相应的一个或多个寄存器集合中的一个寄存器中。该相应集合根据端口中的相应端口选择,该集合中寄存器的选择(如果有的话)与向端口中的相应端口提供数据所用的寄存器地址至少部分无关。
3.依照权利要求2的数据处理设备,其中至少一条指令包括用于指示该指令的结果是否必须被复制到与其写入结果的端口相对应的一个或多个寄存器的集合中的寄存器之中,端口耦合链路用于在所述字段的值的控制下控制数据是否被复制。
4.为依照权利要求1的具有多个功能部件、多个寄存器文件且每个寄存器文件都有端口耦合到功能部件的一个相应集群的处理器编译计算机程序的一种方法,该方法包括:
-产生执行任务的指令;
-分配每条指令到相应的功能部件;
-确定由功能部件之一执行的指令之一是否需要由与该功能部件之一不属于同一集群的功能部件之二产生的结果;
-为复制功能部件添加复制指令以从复制寄存器文件复制结果到具有与该功能部件之一相耦合的接口的寄存器文件之一;
-在计算机可读介质中用包含指令及复制指令的指令字存储该程序,以由处理器执行。
5.依照权利要求4的方法,包括更新由该功能部件之二执行产生所述结果的指令之二,以在该结果被写入到寄存器文件之二时复制该结果到复制寄存器文件,所述更新即在指令之二中设置一个允许复制到复制寄存器文件的复制控制字段。
6.一种包括用于依照权利要求1的处理设备的指令的计算机程序产品,这些指令包括用于产生结果并将该结果写入第一寄存器文件、并且作为该指令执行的一部分将副本写入到复制寄存器文件的第一指令,用于从复制寄存器文件复制该结果到第二寄存器文件的第二指令,和使用来自第二寄存器文件的结果的第三指令。
7.执行程序的一种方法,该方法包括:
-用第一功能部件执行第一指令,第一指令产生结果并将结果写入根据来自第一指令的结果地址所寻址到的第一寄存器文件中的第一寄存器,将结果的一个副本写入复制寄存器文件中至少部分独立于该结果地址所选择的一个复制寄存器;
-执行复制指令以从复制寄存器文件复制该结果到第二寄存器文件;
-用来自第二寄存器文件的结果作为操作数用第二功能部件执行第二条指令;
8.依照权利要求7的方法,其中复制寄存器是根据该结果被写入第一寄存器文件所用的端口而选择的。
9.依照权利要求7的方法,其中测试来自第一条指令的复制控制信息以确定结果是否被复制到了复制寄存器文件。
CNB200380103708XA 2002-11-20 2003-10-28 带有复制寄存器文件的vliw处理器 Expired - Fee Related CN100342328C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02079815.3 2002-11-20
EP02079815 2002-11-20

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CNA2007100863970A Division CN101097513A (zh) 2002-11-20 2003-10-28 带有复制寄存器文件的vliw处理器

Publications (2)

Publication Number Publication Date
CN1714338A true CN1714338A (zh) 2005-12-28
CN100342328C CN100342328C (zh) 2007-10-10

Family

ID=32319628

Family Applications (2)

Application Number Title Priority Date Filing Date
CNA2007100863970A Pending CN101097513A (zh) 2002-11-20 2003-10-28 带有复制寄存器文件的vliw处理器
CNB200380103708XA Expired - Fee Related CN100342328C (zh) 2002-11-20 2003-10-28 带有复制寄存器文件的vliw处理器

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNA2007100863970A Pending CN101097513A (zh) 2002-11-20 2003-10-28 带有复制寄存器文件的vliw处理器

Country Status (6)

Country Link
US (1) US20060095743A1 (zh)
EP (1) EP1579314A2 (zh)
JP (1) JP2006506727A (zh)
CN (2) CN101097513A (zh)
AU (1) AU2003272035A1 (zh)
WO (1) WO2004046914A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101859242A (zh) * 2010-06-08 2010-10-13 广州市广晟微电子有限公司 一种寄存器读写方法及装置
CN101529436B (zh) * 2006-10-27 2012-12-12 微软公司 用于增强软件安全性的方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9477473B2 (en) 2012-12-31 2016-10-25 Cadence Design Systems, Inc. Bit-level register file updates in extensible processor architecture
US9448801B2 (en) * 2012-12-31 2016-09-20 Cadence Design Systems, Inc. Automatic register port selection in extensible processor architecture
GB2501791B (en) * 2013-01-24 2014-06-11 Imagination Tech Ltd Register file having a plurality of sub-register files
JP6237241B2 (ja) * 2014-01-07 2017-11-29 富士通株式会社 処理装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5481743A (en) * 1993-09-30 1996-01-02 Apple Computer, Inc. Minimal instruction set computer architecture and multiple instruction issue method
JPH1131137A (ja) * 1997-07-11 1999-02-02 Nec Corp レジスタファイル
KR100243100B1 (ko) * 1997-08-12 2000-02-01 정선종 다수의 주프로세서 및 보조 프로세서를 갖는 프로세서의구조 및 보조 프로세서 공유 방법
US6366999B1 (en) * 1998-01-28 2002-04-02 Bops, Inc. Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution
US6269437B1 (en) * 1999-03-22 2001-07-31 Agere Systems Guardian Corp. Duplicator interconnection methods and apparatus for reducing port pressure in a clustered processor
US6629232B1 (en) * 1999-11-05 2003-09-30 Intel Corporation Copied register files for data processors having many execution units
EP1346282A1 (en) * 2000-12-11 2003-09-24 Koninklijke Philips Electronics N.V. Signal processing device and method for supplying a signal processing result to a plurality of registers

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101529436B (zh) * 2006-10-27 2012-12-12 微软公司 用于增强软件安全性的方法
CN101859242A (zh) * 2010-06-08 2010-10-13 广州市广晟微电子有限公司 一种寄存器读写方法及装置
CN101859242B (zh) * 2010-06-08 2013-06-05 广州市广晟微电子有限公司 一种寄存器读写方法及装置

Also Published As

Publication number Publication date
WO2004046914A3 (en) 2004-09-30
AU2003272035A1 (en) 2004-06-15
WO2004046914A2 (en) 2004-06-03
CN101097513A (zh) 2008-01-02
JP2006506727A (ja) 2006-02-23
US20060095743A1 (en) 2006-05-04
EP1579314A2 (en) 2005-09-28
CN100342328C (zh) 2007-10-10

Similar Documents

Publication Publication Date Title
US5966143A (en) Data allocation into multiple memories for concurrent access
US11436143B2 (en) Unified memory organization for neural network processors
US5313551A (en) Multiport memory bypass under software control
US5781758A (en) Software emulation system with reduced memory requirements
US7222264B2 (en) Debug system and method having simultaneous breakpoint setting
US8490066B2 (en) Profiler for optimizing processor architecture and application
US20040123071A1 (en) Cellular engine for a data processing system
US5848255A (en) Method and aparatus for increasing the number of instructions capable of being used in a parallel processor by providing programmable operation decorders
US7143271B2 (en) Automatic register backup/restore system and method
CN100362474C (zh) 单处理器流水线内的头线程和推理性线程的交替执行的方法和设备
EP1760580B1 (en) Processing operation information transfer control system and method
CN100342328C (zh) 带有复制寄存器文件的vliw处理器
CN1214321C (zh) 信号处理设备
EP1623318B1 (en) Processing system with instruction- and thread-level parallelism
CN101320335A (zh) 信息处理系统中的协同式多任务处理方法及信息处理系统
US6704858B1 (en) Information processor and method for switching those register files
US5642523A (en) Microprocessor with variable size register windowing
CN102112965B (zh) 运算处理装置
US20220019531A1 (en) Allocating Variables to Computer Memory
US11640302B2 (en) SMID processing unit performing concurrent load/store and ALU operations
JP5145659B2 (ja) ベクトルリネーミング方式およびベクトル型計算機
KR20150051083A (ko) 재구성 가능 프로세서, 재구성 가능 프로세서의 구성 메모리의 사용을 최적화하는 방법 및 장치
US20040034858A1 (en) Programming a multi-threaded processor
KR20070034342A (ko) 코드 메모리 상의 프로그램의 코드 크기를 줄이는 방법
US20230084298A1 (en) Processing Device Using Variable Stride Pattern

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
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee