CN1177275C - 减少处理器中写入通信量的方法和系统 - Google Patents

减少处理器中写入通信量的方法和系统

Info

Publication number
CN1177275C
CN1177275C CNB018002161A CN01800216A CN1177275C CN 1177275 C CN1177275 C CN 1177275C CN B018002161 A CNB018002161 A CN B018002161A CN 01800216 A CN01800216 A CN 01800216A CN 1177275 C CN1177275 C CN 1177275C
Authority
CN
China
Prior art keywords
instruction
result
register file
pipeline
actuating equipment
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 - Fee Related
Application number
CNB018002161A
Other languages
English (en)
Other versions
CN1363063A (zh
Inventor
P��������
P·斯特拉维尔斯
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.)
Adeia Semiconductor Solutions LLC
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 CN1363063A publication Critical patent/CN1363063A/zh
Application granted granted Critical
Publication of CN1177275C publication Critical patent/CN1177275C/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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
    • 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/30185Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • 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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3873Variable length pipelines, e.g. elastic pipeline

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)
  • Devices For Executing Special Programs (AREA)

Abstract

公开了一种用于减少处理器中写入通信量的指令执行设备和方法。该指令执行设备包括一个指令管道,用于产生一条指令的一个结果,一个寄存器文件包括至少一个写入端口用于存储所述结果,一个旁路电路允许存取所述结果,一个用于决定所述结果是否仅另一条指令所用的装置,以及一个寄存器文件控制器,用于当所述结果已由所述旁路电路存取以及已仅被另一条指令所用时防止所述结果存入所述写入端口。

Description

减少处理器中写入通信量的方法和系统
技术领域
本发明一般属于数字计算电路领域,尤其涉及一种以处理器方式使用的指令执行设备的方法和系统。
背景技术
通常微处理器设计动机的标准在于,例如,减少这些设备的体积及能量消耗,以及减少整个成本。特别指出,在这一点上,可实现同时并行的大量指令的指令执行体系结构的发展代表此项技术的发展。
现有的系统和方法提供上述类型的指令执行体系结构,例如,微处理器指令设置体系(ISAs)。有代表性地,实现这些ISAs使用一种所谓的“管道”方法来覆盖并发指令的不同执行阶段。
一个传统的4-阶段管道包括(1)取数据,(2)解码,(3)执行以及(4)写回。数据传输类型的指令如一加载指令,通常需要另外一个指令管道阶段。
在该周期的第一阶段,处理器从存储器取得一条指令。所取得指令的地址存储在称为程序寄存器或PC的内部寄存器。由于处理器正在等待存储器对指令做出响应,因此PC增1。这意味着下一周期的取数据阶段将取出存储器中下一连续位置的指令(除非PC被该周期的较后阶段修改)。
在解码阶段,处理器存储另一称为指令寄存器或IR的内部寄存器返回的信息。上述IR将一条单独的机器指令解码为一二进制数。处理器再将IR中的数值解码以决定下一阶段将执行哪一操作。
在执行阶段,处理器执行该指令。这一步骤通常需要更多的存储操作。例如,该指令可指示处理器从存诸器中读取两个操作数(例如,将它们存入操作数寄存器),把它们相加以及将结果存储在第三位置(该操作数及结果的目的地址均被编码作为指令的一部分)。
在管道的写回阶段,管道中的上述计算结果被写入(回收)一个寄存器文件中的一目的寄存器中。
在另一种已有的管道方法中,提供电路为允许操作数或结果值不经过该寄存器文件。使用这种旁路电路,上述操作数及结果值在产生操作数指令被回收之前已经可用于并发指令(举例来说,写回到寄存器文件)。
然而,这些传统类型的管道有许多缺点。例如,传统的管道方法通常在一寄存器文件种需要大量独立的寄存器来充分执行大量同时并行的指令。有代表性的,大寄存器文件占整个能量消耗的大部分。另外,每一条指令执行时管道的每一阶段都必须运行。这些缺点依次体现在能量消耗和处理器的体积上。因此,管道中所需的管道阶段和电路元件的数量的任何减少都在处理器中运行指令执行时可以引起(1)改善整个能量消耗以及(2)缩小处理器的整个体积。
发明内容
本发明的一个目的是解决如上所述的包括处理器的指令执行设备的局限性。
本发明的另一个目的是提供一种处理器指令设置体系来减少管道方法中寄存器文件的写操作次数;另外一个优点是还可以减少处理器的整个能量消耗。另外,由于所需的写端口的数量减少寄存器文件的尺寸或硅面积减少了。
处理器中寄存器写入通信量的缺点被与本发明中提供的指令执行设备的思想一致的设计所克服或减少。所述指令执行设备包括一个产生一条指令的一个结果的指令管道,一个至少包括一个用于存储结果的写入端口的寄存器文件,一个旁路电路用于允许访问结果,一个用于指出结果是否仅被另外一条指令所用的装置,以及一个用于控制当上述结果经旁路电路存取以及被用于另外一条指令时防止该结果存入写入端口的寄存器文件。
在本发明的一个实施例中,用来指出结果是否被另外一条指令所用的方法包括对每一条指令编码。例如,每一条指令的“操作码”所指定的一个所谓的“死数据”域被指出上述结果是否将仅被另外一条指令所用。
在本发明的另一个实施例中,用来表明第一结果是否仅被第二条指令所用的方法包括一个指令通道,用于决定在指令管道中的一条指令的结果以及该指令管道中另一条指令的另一结果是否被存储在寄存器文件的同一个写入端口。由于寄存器文件的写入端口被一条已在指令管道中的随后的指令“再使用”的,这表明第一个结果将仅被另外一条指令所用。
本发明的这些和另外的实施例将在随后的介绍中详细描述。
附图说明
本发明的特点和优势将参考以下带有附图的最佳实施例的详细描述来理解,其中附图包括:
图1给出本发明一个指令执行设备的例子的一个框图;
图2给出本发明另一个指令执行设备的例子的一个框图;以及
图3给出一个描述如图1和2所示的减少寄存器写入通信量的处理过程的流程图。
实施例说明
随后详细描述的一部分体现在计算机存储器中数据位上的操作的符号表示法和算法或程序。这些算法描述以及表示法是一些数据处理技术的技术人员把他们的工作内容传达给其他也熟悉该技术的人员时所使用的方法。该算法通常设计为一系列有条理的步骤以得出所想要的结果。这些步骤需要物理量的物理操作。通常,但不是必须,这些物理量以电,磁或光信号的形式被存储,传输,结合,比较或进行其他操作。
如图1所示,给出本发明一个指令执行设备的例子的一个框图。图1只是就效果进行了简要说明,而适用于本发明的整个处理器环境会包括例如缓冲存储器,RAM和ROM存储器,编译器或汇编程序等所有无需陈列于此的装置。通常,指令执行装置10会采用一个从121到12n(下文中全部称为“管道12”)的阶段-n管道指令设置寄存器体系(ISA),一个传统旁路电路14,一个寄存器文件16以及一个寄存器文件控制器18。
上述管道12包括一定数量的管道阶段(例如,读数据,解码,执行和写回)。然而,应当理解,本发明不只是限制于一种特殊的管道体系。例如,管道中的阶段可以包括:指令读取,解码,操作数读取,ALU执行,存储器存取以及把操作结果写回。另外,所述管道中的一系列阶段能够再细分。管道中的阶段数量是一种能够根据对类似指令的专门阐述而相应改变的体系结构特征。
寄存器文件16包括至少一个用于存储数据可设定地址的目的写入端口20。本领域普通技术人员可以理解,所述寄存器文件可以是任何能够存储及允许存取记录/数据的传统的数据库/索引存储装置。
寄存器文件控制器18包括许多用于控制把写数据写回寄存器文件16操作的逻辑,控制,管理,及传输功能。寄存器文件控制器18还包括如图3描述的操作程序。正如以下详述,这些程序的运行实现了减少寄存器文件写操作数到管道中的次数所必需的功能。
指令可分为如下三种主要类型:运算/逻辑,数据传输,及控制。运算和逻辑指令提供一种或两个变量的简单的功能,例如相加,相乘或逻辑AND。
每一个阶段的时间取决于处理器的内部结构和所执行指令的复杂性。调节操作的时间片单元被称为时钟周期。指示处理器内部的操作的逻辑被外部时钟例如可以是一个在选定周期产生方波的电路来控制。执行一个操作数所需的时钟周期的数量决定它将需要的时间总和。
我曾提到大量的指令产生一个结果仅被同一算法中随后的一条指令使用,(我将把在前指令称为“产生者”在后指令称为“消耗者”)。另外,在SPEC基准的一个寄存器数据分析中揭露了70%的整数结果和80-99%的浮点结果仅被使用一次,参见由M.Franklin等人撰写的一篇文章,题为“Register Traffic Analysis for Streamlining Inter-Operation Communication in Fine Grain Parallel Processors”,刊登于1992年12月微型体系结构国际讨论会年刊第25期(MICRO-25),第236页至245页。此外,大部分情况下,产生者回收之前消耗者已进入管道结构。对于特殊类型的控制器这种情况更多,例如超标量体系结构和VLIM处理器。因此,消耗者除了寄存器文件之外还可通过某种方法获得结果值,例如,旁路电路。然而,所述结果仍然写回寄存器文件。
更重要的是,我已认识到这种情况下的产生者的结果值不必须写回到寄存器文件,因为它不将被任何其它消耗者使用。一旦产生者的结果值不被消耗者使用就变为一“死数据”。因此,依照本发明的一方面,寄存器文件控制器16决定一特殊指令是否应写回阶段-n例如写回阶段或其他阶段中的寄存器文件16。
如图1所示,每一条指令的显式编码表明特殊指令的结果值是否将仅被另一个消耗者所用(或者将仅被管道中的其它消耗者所用)。编码指令中被编译器或者汇编程序(未示出)设置或清除的一个专用的“死数据”位(一指令中所谓的“操作码”)将依照其消耗程度来使用。如果所述死数据位被设置,则该结果值不被写回到管道12的阶段-n中的寄存器文件16。特殊情况,与相邻指令的指令-标识符相同,所述死数据位提供给寄存器文件控制器18,通过一写使能信号依次控制寄存器文件16写回或不写回结果值。另一方面,如果一专用位是无效的,则只有一些被分配可选操作码以示出消耗程度的有用指令(例如,ADD和LOAD)可被选择。
如图2所示另一实施例,每一条指令的隐式编码表明特殊指令的结果值是否将仅被一消耗者所用(或者将仅被管道中的其他消耗着所用)。特别地,管道12决定管道中另一指令是否将用与管道中的一随后指令相同的目的地址(例如寄存器文件16中的写端口20)。这能通过许多方法决定。例如,如果阶段-3中的指令结果值被指定目的地址为寄存器文件16中的写端口20并且阶段-1121中的指令的结果值也被指定寄存器文件16中的相同的目的地址,则阶段-3中指令的结果值会“活”在阶段-2,否则将“死”于阶段-1,因为其目的地址将被管道中另一条指令再利用。换言之,只有一个消耗者使用该结果值。另一方面,这种方法也用于多于一个消耗者(管道中的)使用该结果值的情况。例如,如果阶段-n 12n中的指令的结果值被指定目的地址为寄存器文件16中的写端口20的目的地址并且阶段-1121中的指令的结果值也被指定寄存器文件16中的相同的目的地址,则阶段-n中指令的结果值会通过阶段n-1“活”在阶段-2,否则将“死”于阶段-1。以这种方式,结果值“活”状态时可被许多消耗者使用。因此,一旦结果值“死”它就被写回到寄存器文件16中。
在图2所示的实施例中,传统的门和逻辑电路22,例如OR门,如图2所示,用于把死数据位提供给寄存器文件控制器18。指令的指令-标识符也被提供给寄存器文件控制器18。然而,就像本技术领域所公知的那样,由于所述处理器已经包括了一个检测寄存器再用的结构,支持重命名寄存器的微型-体系结构不需要门和逻辑电路。
图3给出运行于图1和2中的装置来实现寄存器写入通信量的减少的一流程图。简单来说,图1中实施例用于描述本发明原理的操作。然而,可以理解,图3中所描述步骤同样适用于图2中的实施例。
图1和3中还同时提到,本发明预先设置的处理过程于图3中的步骤300开始启动,即当一条指令进入管道12时。在步骤302,寄存器文件控制器18决定所述死数据位是否已经被设置,如上所述。如果所述死数据位没有被设置,则处理过程继续在传统管道方式下运行,由步骤304实现。如果所述死数据位已被设置,所述寄存器文件控制器18,在步骤306中,决定特殊指令的结果值是否已经被管道12中另一条指令所使用,例如通过所述旁路电路。如果该决定是否定的,处理过程进行到步骤304,并继续运行于传统管道方式下。如果该决定是肯定的,处理过程进行到步骤308。在步骤308中,所述寄存器文件控制器决定相应于从管道12接受到的指令id的所述结果值并弃置它。例如,所述寄存器文件控制器18不允许所述写回阶段把结果值存入寄存器文件16中的一写入端口(或目的寄存器)。
接下来只是对本发明的原则进行解释。本领域普通技术人员设计出的这里并没有进行明确的描述的各种情况,均包含在本发明原则中及并落入本发明的思想及保护范围之内。另外,这里所述全部的本发明中的原理和实施例,像其中的具体实施例一样,其中包含类似的结构和功能。此外,这些类似物包括已经熟知的及在将来完善的类似物,即,能支持相同功能但不同结构的任何元件。
这里的权利要求中,任何元件作为支持一特殊功能的装置希望包含了能实现所述功能的所有方式,如:a)完成该功能的所有电路元件的结合b)包括固件,微代码或类似的结合适当电路来运行完成所述功能的软件的任何形式软件。权利要求所定义的本发明中,各种形式的方法实现的功能与权利要求所要求的方式结合在一起。因此,申请人对能支持上述功能的任何方法和此处所给出的方法一视同仁。

Claims (11)

1.一种用于一个处理器的指令执行设备,该指令执行设备包括:
一个指令管道(12),用于产生一个第一条指令的一个第一结果;
一个与所述指令管道相连的寄存器文件(16),该寄存器文件包括至少一个写入端口(20)用于存储所述第一个结果;
一个与所述指令管道(12)相连的旁路电路(14),该旁路电路(14)允许存取所述第一结果;
一个用于指示所述指令管道中所述第一结果是否被一个第二条指令所用的装置;以及
一个与所述指令管道(12)和寄存器文件(16)相连的寄存器文件控制器(18),该寄存器文件控制器(18)用于当所述第一结果已由所述旁路电路(18)存取以及已被管道(12)中的所述第二条指令所用时防止所述第一结果存入所述写入端口(20)。
2.根据权利要求1所述的指令执行设备,其特征在于,所述指令管道(12)有多个阶段。
3.根据权利要求2所述的指令执行设备,其特征在于,所述指令管道(12)在所述多个阶段中处理多条指令。
4.根据权利要求1所述的指令执行设备,其特征在于,用于指示所述第一结果是否仅被所述第二条指令所用的装置包括编码所述第一条指令以指示所述第一结果是否将仅被所述第二条指令所用。
5.根据权利要求4所述的指令执行设备,其特征在于,编码所述第一条指令包括在所述第一条指令的操作码中规定一个域来指出所述第一结果是否将仅被所述第二条指令所用。
6.根据权利要求5所述的指令执行设备,其特征在于,每一条指令均被编码以指示其各自的结果是否仅被另外一条指令所用。
7.根据权利要求3所述的指令执行设备,其特征在于,用于指示所述第一结果是否仅被所述第二条指令所用的装置包括所述指令管道决定所述指令管道中的所述第一条指令的所述第一结果和所述第二条指令的一个第二结果是否被指定存储到寄存器文件中的所述第一写入端口中。
8.根据权利要求7所述的指令执行设备,其特征在于,用于指示所述第一结果是否仅被所述第二条指令所用的装置还包括门和逻辑电路(20)
9.一种在处理器中执行一条指令的方法,该方法包括以下步骤:
用一个指令管道从一个第一条指令产生一个第一结果;
用旁路电路(14)允许对所述第一结果进行存取;
决定所述第一结果是否仅被所述指令管道中的一个第二条指令所用;
防止当所述第一结果已存取以及已被所述第二条指令所用时所述第一结果存入寄存器文件(16)。
10.根据权利要求9所述的方法,其特征在于,所述决定步骤包括编码所述第一条指令来指示所述第一结果是否将仅被所述第二条指令所用。
11.根据权利要求9所述的方法,其特征在于,所述决定步骤包括所述指令管道(12)决定所述指令管道(12)中的所述第一条指令的所述第一结果和所述第二条指令的一个第二结果在寄存器文件(16)中是否有相同的存储地址。
CNB018002161A 2000-02-16 2001-01-18 减少处理器中写入通信量的方法和系统 Expired - Fee Related CN1177275C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/505,985 US6862677B1 (en) 2000-02-16 2000-02-16 System and method for eliminating write back to register using dead field indicator
US09/505985 2000-02-16

Publications (2)

Publication Number Publication Date
CN1363063A CN1363063A (zh) 2002-08-07
CN1177275C true CN1177275C (zh) 2004-11-24

Family

ID=24012693

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018002161A Expired - Fee Related CN1177275C (zh) 2000-02-16 2001-01-18 减少处理器中写入通信量的方法和系统

Country Status (7)

Country Link
US (1) US6862677B1 (zh)
EP (1) EP1190311A2 (zh)
JP (1) JP2003523573A (zh)
KR (1) KR100900364B1 (zh)
CN (1) CN1177275C (zh)
TW (1) TW514782B (zh)
WO (1) WO2001061478A2 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128482A1 (en) * 2002-12-26 2004-07-01 Sheaffer Gad S. Eliminating register reads and writes in a scheduled instruction cache
CN1761940B (zh) * 2003-03-19 2010-06-16 皇家飞利浦电子股份有限公司 指令处理设备,指令执行方法和装置,指令编译方法和装置
US20070063745A1 (en) * 2003-04-16 2007-03-22 Koninklijke Philips Electronics N.V. Support for conditional operations in time-stationary processors
US20050138297A1 (en) * 2003-12-23 2005-06-23 Intel Corporation Register file cache
US20050283590A1 (en) * 2004-06-17 2005-12-22 Weaver Christopher T Reducing false error detection in a microprocessor by tracking dynamically dead instructions
US7555703B2 (en) * 2004-06-17 2009-06-30 Intel Corporation Method and apparatus for reducing false error detection in a microprocessor
US7386756B2 (en) * 2004-06-17 2008-06-10 Intel Corporation Reducing false error detection in a microprocessor by tracking instructions neutral to errors
US7290153B2 (en) * 2004-11-08 2007-10-30 Via Technologies, Inc. System, method, and apparatus for reducing power consumption in a microprocessor
WO2007057831A1 (en) * 2005-11-15 2007-05-24 Nxp B.V. Data processing method and apparatus
JP4607958B2 (ja) * 2006-01-20 2011-01-05 パナソニック株式会社 プロセッサおよびプログラム変換装置
US7984272B2 (en) * 2007-06-27 2011-07-19 International Business Machines Corporation Design structure for single hot forward interconnect scheme for delayed execution pipelines
US7865700B2 (en) * 2008-02-19 2011-01-04 International Business Machines Corporation System and method for prioritizing store instructions
US20090210666A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Resolving Issue Conflicts of Load Instructions
US20090210677A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Optimization Within a Group Priority Issue Schema for a Cascaded Pipeline
US7984270B2 (en) * 2008-02-19 2011-07-19 International Business Machines Corporation System and method for prioritizing arithmetic instructions
US7870368B2 (en) * 2008-02-19 2011-01-11 International Business Machines Corporation System and method for prioritizing branch instructions
US20090210672A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Resolving Issue Conflicts of Load Instructions
US7877579B2 (en) * 2008-02-19 2011-01-25 International Business Machines Corporation System and method for prioritizing compare instructions
US7996654B2 (en) * 2008-02-19 2011-08-09 International Business Machines Corporation System and method for optimization within a group priority issue schema for a cascaded pipeline
US8095779B2 (en) * 2008-02-19 2012-01-10 International Business Machines Corporation System and method for optimization within a group priority issue schema for a cascaded pipeline
US7882335B2 (en) * 2008-02-19 2011-02-01 International Business Machines Corporation System and method for the scheduling of load instructions within a group priority issue schema for a cascaded pipeline
US20090210669A1 (en) * 2008-02-19 2009-08-20 Luick David A System and Method for Prioritizing Floating-Point Instructions
US8108654B2 (en) * 2008-02-19 2012-01-31 International Business Machines Corporation System and method for a group priority issue schema for a cascaded pipeline
US7526638B1 (en) 2008-03-16 2009-04-28 International Business Machines Corporation Hardware alteration of instructions in a microcode routine
US9008464B2 (en) * 2009-06-16 2015-04-14 University-Industry Cooperation Group Of Kyung Hee University Media data customization
US9858077B2 (en) 2012-06-05 2018-01-02 Qualcomm Incorporated Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media
KR101711388B1 (ko) * 2013-01-28 2017-03-02 삼성전자주식회사 파이프라인에서 블럭을 스케줄하는 컴파일 방법 및 장치
CN104216681B (zh) * 2013-05-31 2018-02-13 华为技术有限公司 一种cpu指令处理方法和处理器
US11561792B2 (en) * 2015-06-08 2023-01-24 Qualcomm Incorporated System, apparatus, and method for a transient load instruction within a VLIW operation

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4228497A (en) * 1977-11-17 1980-10-14 Burroughs Corporation Template micromemory structure for a pipelined microprogrammable data processing system
AU553416B2 (en) * 1984-02-24 1986-07-17 Fujitsu Limited Pipeline processing
US6370623B1 (en) 1988-12-28 2002-04-09 Philips Electronics North America Corporation Multiport register file to accommodate data of differing lengths
JPH0719222B2 (ja) * 1989-03-30 1995-03-06 日本電気株式会社 ストアバッフア
AU629007B2 (en) 1989-12-29 1992-09-24 Sun Microsystems, Inc. Apparatus for accelerating store operations in a risc computer
US5222240A (en) 1990-02-14 1993-06-22 Intel Corporation Method and apparatus for delaying writing back the results of instructions to a processor
GB2241801B (en) 1990-03-05 1994-03-16 Intel Corp Data bypass structure in a register file on a microprocessor chip to ensure data integrity
US5253349A (en) * 1991-01-30 1993-10-12 International Business Machines Corporation Decreasing processing time for type 1 dyadic instructions
JPH04367936A (ja) * 1991-06-17 1992-12-21 Mitsubishi Electric Corp スーパースカラープロセッサ
EP0650116B1 (en) * 1993-10-21 1998-12-09 Sun Microsystems, Inc. Counterflow pipeline processor
JPH08212083A (ja) 1995-02-07 1996-08-20 Oki Electric Ind Co Ltd 割り込み処理装置
TW448403B (en) * 1995-03-03 2001-08-01 Matsushita Electric Ind Co Ltd Pipeline data processing device and method for executing multiple data processing data dependent relationship
JP3490191B2 (ja) 1995-06-30 2004-01-26 株式会社東芝 計算機
EP0798633B1 (en) * 1996-03-29 2005-06-08 Matsushita Electric Industrial Co., Ltd. Data processor having a variable number of pipeline stages
JP3449186B2 (ja) * 1997-08-19 2003-09-22 富士通株式会社 パイプラインバイパス機能を有するデータ処理装置
US5872986A (en) * 1997-09-30 1999-02-16 Intel Corporation Pre-arbitrated bypassing in a speculative execution microprocessor

Also Published As

Publication number Publication date
EP1190311A2 (en) 2002-03-27
KR100900364B1 (ko) 2009-06-02
US6862677B1 (en) 2005-03-01
CN1363063A (zh) 2002-08-07
JP2003523573A (ja) 2003-08-05
WO2001061478A3 (en) 2001-12-27
WO2001061478A2 (en) 2001-08-23
TW514782B (en) 2002-12-21
KR20010109354A (ko) 2001-12-08

Similar Documents

Publication Publication Date Title
CN1177275C (zh) 减少处理器中写入通信量的方法和系统
KR100431168B1 (ko) 단일 클럭 사이클 내에 불연속 명령을 페치하기 위한 방법 및 시스템
US6988183B1 (en) Methods for increasing instruction-level parallelism in microprocessors and digital system
US8443171B2 (en) Run-time updating of prediction hint instructions
US5710902A (en) Instruction dependency chain indentifier
CN100342325C (zh) 减少多线程处理器中寄存器文件端口的方法和装置
US5996060A (en) System and method for concurrent processing
Jacobson et al. Instruction pre-processing in trace processors
WO2003058435A1 (en) Dependence-chain processors
CN1127899A (zh) 具有推测指令取指的数据处理器及操作方法
JP2004145903A (ja) スーパースケーラマイクロプロセサ
Molina et al. Dynamic removal of redundant computations
Melvin et al. Enhancing instruction scheduling with a block-structured ISA
US6237083B1 (en) Microprocessor including multiple register files mapped to the same logical storage and inhibiting sychronization between the register files responsive to inclusion of an instruction in an instruction sequence
US6516462B1 (en) Cache miss saving for speculation load operation
Huang et al. Extending value reuse to basic blocks with compiler support
US5974531A (en) Methods and systems of stack renaming for superscalar stack-based data processors
US5729723A (en) Data processing unit
US20030212881A1 (en) Method and apparatus to enhance performance in a multi-threaded microprocessor with predication
JPWO2004012079A1 (ja) 命令制御装置、機能ユニット、プログラム変換装置および言語処理装置
GB2390443A (en) A processor where some registers are not available to compiler generated code
EP1208424A2 (en) Apparatus and method for reducing register write traffic in processors with exception routines
Asanović et al. Energy-exposed instruction sets
Winkel Optimal Global Instruction Scheduling for the Itanium® Processor Architecture
Tsai et al. Enhancing multiple-path speculative execution with predicate window shifting

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
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: ROYAL PHILIPS ELECTRONICS CO., LTD.

Effective date: 20070831

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20070831

Address after: Holland Ian Deho Finn

Patentee after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Patentee before: Koninklike Philips Electronics N. V.

ASS Succession or assignment of patent right

Owner name: YINGWEN SASI CO., LTD.

Free format text: FORMER OWNER: KONINKL PHILIPS ELECTRONICS NV

Effective date: 20120116

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120116

Address after: American California

Patentee after: Tessera Inc.

Address before: Holland Ian Deho Finn

Patentee before: Koninkl Philips Electronics NV

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20041124

Termination date: 20190118

CF01 Termination of patent right due to non-payment of annual fee