CN105453031A - 指令合并优化 - Google Patents

指令合并优化 Download PDF

Info

Publication number
CN105453031A
CN105453031A CN201380017107.0A CN201380017107A CN105453031A CN 105453031 A CN105453031 A CN 105453031A CN 201380017107 A CN201380017107 A CN 201380017107A CN 105453031 A CN105453031 A CN 105453031A
Authority
CN
China
Prior art keywords
built
command
instructions
instruction
optimization
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
CN201380017107.0A
Other languages
English (en)
Other versions
CN105453031B (zh
Inventor
M.K.格施温德
V.萨拉普拉
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN105453031A publication Critical patent/CN105453031A/zh
Application granted granted Critical
Publication of CN105453031B publication Critical patent/CN105453031B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30181Instruction operation extension or modification
    • 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/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • 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
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • G06F9/384Register renaming
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

用于优化指令的计算机系统包括:处理器,该处理器包括被配置为执行指令的指令执行单元和被配置为优化指令的指令优化单元;以及存储器,用于存储要由该指令执行单元执行的机器指令。该计算机系统被配置为进行包括以下的方法:分析来自要由该指令执行单元执行的指令流中的机器指令,所述机器指令包括存储器加载指令和基于该存储器加载指令进行数据处理功能的数据处理指令,将所述机器指令识别为合格用于优化,将所述机器指令合并为单个优化的内部指令,并执行该单个优化的内部指令以进行与所述存储器加载指令和所述数据处理指令对应的存储器加载功能和数据处理功能。

Description

指令合并优化
技术领域
本发明涉及指令优化,更具体地,涉及通过合并加载指令和访问由该加载指令加载的数据的数据处理指令来优化指令。
背景技术
处理器执行指令流以进行数据处理、存储和控制操作。处理器可以通过从数据存储器取得机器指令、基于该机器指令产生内部指令并且执行内部指令来执行指令以进行控制包括该处理器的系统的操作。
发明内容
根据本公开的一个实施例,用于优化指令的计算机系统包括:处理器,包括被配置为执行指令的指令执行单元以及被配置为优化两个或更多指令的指令优化单元;以及存储器,用于存储要由该指令执行单元执行的两个或更多机器指令。该计算机系统被配置为进行包括以下的方法:分析来自要由该指令执行单元执行的指令流中的机器指令,所述机器指令包括存储器加载指令和基于该存储器加载指令进行数据处理功能的数据处理指令,将所述机器指令识别为合格用于优化,将所述机器指令合并为单个优化的内部指令,并执行该单个优化的内部指令以进行与所述存储器加载指令和所述数据处理指令对应的存储器加载功能和数据处理功能。
根据本公开的另一实施例,用于实现指令优化的计算机程序产品。该计算机程序产品包括:有形存储介质,可由处理电路读取并且存储用于由该处理电路执行以进行一方法的指令。该方法可以包括:确定指令流的至少两个机器指令合格用于优化,所述至少两个机器指令包括存储器加载指令和基于该存储器加载指令处理数据的数据处理指令;基于确定所述至少两个机器指令合格用于优化,通过处理器将所述至少两个机器指令合并为单个优化的内部指令;以及执行该单个优化的内部指令以进行与所述存储器加载指令和所述数据处理指令对应的存储器加载功能和数据处理功能。
根据本公开的另一实施例,计算机实现的方法可以包括:确定指令流的两个或更多指令合格用于优化,所述两个或更多指令包括存储器加载指令以及基于该存储器加载指令处理数据的数据处理指令;通过处理器将所述两个或更多指令合并为单个优化的内部指令;以及执行该单个优化的内部指令以进行与所述存储器加载指令和所述数据处理指令对应的存储器加载功能和数据处理功能。
通过本发明的技术实现另外的特征和优点。在此详细描述了本发明的其他实施例和方面,并且它们被认为是要求保护的本发明的一部分。为了更好地理解具有这些优点和特征的本发明,参考描述和附图。
附图说明
特别指出并且在说明书的结尾处清楚地要求保护被认为是本发明的主题。本发明的上述以及其他特征和优点从结合附图考虑的以下详细描述是显然的,附图中:
图1绘出根据本公开的一个实施例的用于优化内部指令的系统的框图;
图2绘出根据本公开的一个实施例的用于优化内部指令的系统的配置;
图3绘出根据本公开的一个实施例的用于优化内部指令的处理流程;
图4绘出根据一个实施例的用于确定内部指令是否合格用于优化的处理流程;
图5图形地绘出根据本公开的一个实施例的内部指令的优化和执行;
图6绘出根据一个实施例的计算机程序产品。
具体实施方式
参考图1,用于优化指令的系统1包括指令存储单元10、发出(issue)队列11、指令优化单元12、指令执行单元13、操作数存储单元14以及寄存器15。系统1不限于以上元件或组件,而是为了描述的目的而提供这些组件。可以添加其他组件,并且根据在本公开的范围内的系统可以省略以上组件中的一个或多个。
指令存储单元10存储要由指令执行单元13执行的指令。可以根据任意架构将指令存储在指令存储单元10中,包括基于指令何时被编成、随机地、基于指令何时被系统1调用或访问、或者根据任何其他设计参数、要求或架构。在一个实施例中,指令存储单元10存储机器指令,并且在另一实施例中,指令存储单元10存储基于机器指令而产生的指令。
发出队列11包括用于存储在排队以由指令执行单元13执行的指令的预定数量的槽。当在队列前面的指令被执行时,发出队列11中的指令从队列一路前移。可以通过指向下一指令的指针、通过从队列电读取指令并按新顺序将指令重写回到队列中、或者通过任何其他处理来实现指令的前移。在一个实施例中,发出队列11存储机器指令,并且在另一实施例中,发出队列存储基于机器指令而产生的内部指令。
在本公开的一些实施例中,比如由指令执行单元13分析发出队列11中的多个指令以确定是否并行执行发出队列11中的多个指令以增加系统1完成指令集的速度。对发出队列11的槽中的每一个指令的分析花费预定时间量,使得增加发出队列11的深度以增加发出队列11中的指令的数量增加了系统1的等待时间。
在本公开的实施例中,指令优化单元12分析指令流中的多个指令以确定指令是否合格用于优化。指令流可以存储在指令存储单元10或者发出队列11中并且从指令存储单元10或者发出队列11访问。例如,在一个实施例中,分析存储在指令存储单元10或者发出队列11中的机器指令以确定它们是否合格用于优化。如果它们被确定为合格用于优化,则可以优化指令以产生优化的内部指令,并且优化的内部指令可以存储在发出队列11中。在另一实施例中,可以分析存储在发出队列11中的内部指令以确定对于优化的合格性。如果确定内部指令合格用于优化,则可以优化内部指令以产生优化的内部指令,并且可以将优化的内部指令存储在发出队列11中。
优化可以发生在例如指令被解码时。当确定指令合格用于优化时,指令优化单元12将这些指令合并为单个优化的内部指令,该单个优化的内部指令包括合格分别的内部指令。该单个优化的内部指令可以存储在发出队列11的仅一个槽(slot)中。当进行寄存器重命名时,该单个优化的内部指令可以使用单个目标重命名寄存器来反映已经被合并的第一和第二内部指令的结果,由此降低珍稀的重命名寄存器资源的消耗。
在内部指令的执行期间,指令执行单元13访问在发出队列11前面的指令并且通过访问来自操作数(operand)存储单元14或者寄存器15的一个或多个操作数以及通过将结果存储在操作数存储单元14和寄存器15的一个或多个中来执行指令。当由指令执行单元13执行的指令是优化的内部指令时,指令执行单元13可以执行该优化的内部指令两次——一次来执行优化的内部指令中的第一指令,并且再次来执行该优化的内部指令中的第二指令。
在本公开的实施例中,为了优化而被分析的两个或更多内部指令可以包括向从存储器中的位置输入数据和/或从存储器中的位置输出数据的至少一个I/O指令以及至少一个数据处理指令,比如用于将数据从一个位置移动到另一位置、用于进行运算功能或者任何其他数据处理功能的指令。在本公开的实施例中,作为I/O指令的对象的数据也可以是数据处理指令的对象。例如,第一内部指令可以是将操作数加载到寄存器的加载指令,并且数据处理指令可以是修改或操纵该操作数的运算指令或者任何其他指令。在本说明书和权利要求书中,数据处理指令被定义为修改或操纵操作数、基于该操作数进行比较或者另外使用该操作数来产生可能不同于该操作数的结果的功能。如所定义的,数据处理排除了加载指令,其仅仅将操作数放置在定义的位置处。
根据本公开的一个实施例,该两个或更多内部指令与精简指令集计算机(RISC)架构兼容。在RISC架构中,内部指令通常持续不长于一个存储器周期,并且一个功能通常被划分为两个内部指令:I/O指令和数据处理指令。例如,相加功能需要将操作数加载到寄存器中的加载指令以及将值与操纵数据相加并将结果存储在寄存器中的相加指令。在本公开的实施例中,指令优化单元12分析一起完成诸如运算功能或者将数据从一个位置移动到另一位置的功能的单个RISC功能的两个内部指令,并且优化这两个RISC兼容的内部指令以形成一个优化的内部指令,其可以作为一个指令被存储在发出队列10中。
图2例示根据本公开的一个实施例的用于优化指令的系统2的物理配置。系统2包括存储器21和处理器26。存储器21将操作数存储在操作数存储器22中,将指令存储在指令存储器23中,将数据存储在寄存器24中,并且将内部指令存储在发出队列25中。在本公开的实施例中,存储器21可以包括一个诸如随机存取存储器(RAM)的存储器芯片、多个存储器芯片、诸如易失性存储器、非易失性存储器、闪存、高速缓存存储器的不同类型的存储器或者任何其他类型的数据存储器。操作数存储器22、指令存储器23、寄存器24和发出队列25可以位于相同类型的存储器中、相同的储存器芯片中或者相同的集成电路中。可替换地,操作数存储器22、指令存储器23、寄存器24和发出队列25中的一个或多个可以位于与操作数存储器22、指令存储器23、寄存器24和发出队列25中的另一个不同类型的存储器中、不同的存储器芯片中或者不同的集成电路中。例如,尽管指令存储器23可以包括RAM或只读存储器(ROM),发出队列25可以包括高速缓存存储器。
处理器26包括指令执行单元27和指令优化单元28。在本公开的实施例中,指令执行单元27和指令优化单元28可以包括在处理器26中的硬连线的电路、由处理器26的处理元件访问以控制处理器26的操作的软件、一个或多个运算逻辑单元、其他逻辑、高速缓存存储器或者致使处理器优化并执行内部指令的任何其他电路。
图3例示根据本公开的一个实施例的优化指令的方法。该方法可以在具有图2所示的配置的系统2中或者在被配置为进行该方法的任何其他系统中进行。将理解,尽管在图3中例示了块31-36,但是本公开的实施例包括其中省略或修改块31-36中的一个或多个的方法或者其组合添加另外的块的方法。
在块31,分析多个指令用于优化31。分析的指令可以包括机器指令或者基于机器指令产生的内部指令。在本公开的实施例中,多个指令包括加载指令和用于处理作为该加载指令的对象的操作数的数据处理指令。
图4例示确定指令是否合格被优化的一个实施例。将理解,尽管在图4中例示了块41-44,但是本公开的实施例包括其中省略或修改块41-44中的一个或多个的方法或者其组合添加另外的块的方法。在块41,确定第一指令的目标目的地或者寄存器。在本公开的实施例中,第一指令可以是将操作数加载到该目标目的地或者寄存器中的加载指令。在块42,确定第二指令的操作数的位置和目标目的地或者寄存器。在本公开的实施例中,第二指令可以在指令流中在该第一指令的下游。另外,该第二指令可以是在执行该第一指令之后立即执行的指令。
在块43,确定第一和第二指令的目标目的地或寄存器是否相同以及该目标目的地或寄存器与第二指令的操作数的位置是否相同。如果是,在块44中,指令被指定为合格用于优化。如果基于块43的分析,第一和第二内部指令不合格用于优化,则处理结束。在本公开的一个实施例中,块43确定第二指令是否是访问在该第一指令的目标目的地或者寄存器处的操作数用于处理的数据处理指令。
尽管图4的实施例描述了基于操作的目的地寄存器确定指令是否合格用于优化,但是其他准则可以确定指令是否合格用于优化。具体地,只要第二指令的准确执行依赖于第一指令的结果,指令可以合格用于优化。例如,如果第二操作使用由第一操作写入的寄存器中的数据并且将该数据写到该寄存器,则在进行第一操作之前进行第二操作可能在第二操作中产生错误的结果。因为第二操作依赖于第一操作的执行,所以这些操作可以合格被优化。
在一些实施例中,发出队列的宽度被增加以容纳具有比单独的第一和第二内部指令更大的宽度的优化的内部指令。在一些实施例中,发出队列的深度或者发出队列中的槽的数量相对于与优化的内部指令相反而具有仅与单个指令对应的宽度的发出队列而被降低,以维持发出队列的总数据大小。在这样的实施例中,处理器分析发出队列中的所有槽的时间降低,因为发出队列包括更少的槽。但是,因为内部指令中的一个或多个是优化的内部指令,所以尽管槽的数量减少,但是处理器也能够分析相同数量的内部指令。
在另一实施例中,维持该发出队列的深度与具有仅与单个指令对应的宽度的发出队列相同,使得分析发出队列的槽中的内部指令的处理器由于具有优化的内部指令的一个或多个槽而能够分析相同数量的槽中的增加数量的总内部指令。
在一个实施例中,与对优化的内部指令的内部指令中的命名的逻辑寄存器操作数进行寄存器重命名结合,将优化的内部指令放置到发出队列中。在一个实施例中,通过仅分配单个目标重命名寄存器来存储优化的内部指令的第一内部指令和第二内部指令的结果,来进行寄存器重命名处理,其中第一内部指令的目标寄存器与第二内部指令的目标寄存器相同,或者其组合第一内部指令的目标寄存器与第二内部指令的操作数的源寄存器相同。
在至少一个实施例中,当已经被组合为优化的内部指令的第二内部指令读取该优化的内部指令的第一内部指令的结果时,公共目标寄存器不被命名为源寄存器并且表示另外的隐性(implicit)操作数,该另外的隐性操作数不被单独被存储在优化的内部指令中作为源操作数,但是当执行第二内部指令时或者当执行该优化的内部指令时,其作为源操作数被提供给第二内部指令。
在操作35中,执行优化的内部指令的第一内部指令。处理器可以读取优化的内部指令并且可以识别位于该优化的内部指令内的第一和第二内部指令。可以以具有由处理器识别的执行顺序这样的方式来布置第一和第二内部指令。例如,在一个实施例中,与第一内部指令对应的码可以位于相对于与第二内部指令对应的码更高的有效位中。
在操作36中,在执行第一指令之后执行优化的内部指令的第二内部指令。在本公开的实施例中,第一和第二内部指令按其中在被合并为优化的内部指令之前将这些内部指令布置在指令流中的相同顺序来执行。例如,如果第一内部指令在第二内部指令的上游,指示如果按顺序执行内部指令则第一内部指令将首先执行,则在优化的内部指令中将首先执行第一内部指令。
在一个实施例中,优化第一和第二机器指令以产生优化的内部指令,并且在块35和36中通过从与对应于第一和第二机器指令对应的优化的内部指令产生第一和第二内部指令,并且比如在分别的操作周期中分别执行第一和第二内部指令,来执行该第一和第二内部指令。在另一实施例中,优化第一和第二内部指令以形成要存储为单个指令的优化的内部指令,并且通过产生第一和第二内部指令并且比如在分别的操作周期中分别执行第一和第二内部指令,来执行该优化的内部指令。
在另一实施例中,在块35和36中通过执行该优化的内部指令两次来执行该第一和第二内部指令,其中该优化的内部指令包括与该第一内部指令对应的第一内部指令部分和与该第二内部指令对应的第二内部指令部分。在此实施例中,第一次执行该优化的内部指令时执行该第一内部指令部分,并且第二次执行该优化的内部指令时执行该第二内部指令部分。
在另一实施例中,在块35和36中通过执行该优化的内部指令一次而不是产生两个单独的内部指令来执行该第一和第二内部指令。在此实施例中,优化的内部指令包括与该第一内部指令对应的第一内部指令部分和与该第二内部指令对应的第二内部指令部分,并且在该第一内部指令部分之后立即执行该第二内部指令部分而不产生单独的内部指令。
本公开的实施例包括指令集架构,其包括RISC架构,其中为了处理的目的,诸如运算功能的系统的功能被划分为多个内部指令。例如,在与RISC架构有关的实施例中,每个指令可以被限制为一个存储器周期,使得诸如运算功能的将需要多个存储器周期的功能可以被划分为多个内部指令,比如寄存器加载指令和数据处理指令,其中数据处理被定义为操纵已经被加载到诸如寄存器的存储器位置的数据。在本公开的实施例中,尽管处理器可以通过优化RISC内部指令而减小发出队列的深度,但是当执行该优化的内部指令时,处理器仍然可以识别出该优化的内部指令中的单独的RISC兼容的内部指令。
图5例示根据本公开的实施例的合并指令以形成优化的内部指令并且执行优化的内部指令或者单独的内部指令的例子。参考图5,分析第一和第二机器指令51和52以确定它们是否可以优化。第一机器指令51被配置为控制处理器以基于寄存器r3处的地址和常数120将值加载到寄存器r1中。第二机器指令52被配置为控制处理器以基于寄存器r1和r5的内容的和来将值加载到寄存器r1中。换句话说,第二机器指令52被配置为通过对寄存器r1的内容进行相加功能来处理寄存器r1的内容。
当确定第一和第二机器指令51和52合格被优化时,合并第一和第二机器指令51和52以形成优化的内部指令53。能够理解尽管从图5的描绘中省略了诸如寄存器重命名处理的另外的处理,但是在机器指令51和52的优化和执行中可以包括另外的处理,或者另外的处理是该优化和执行中固有的。优化的内部指令53包括与第一和第二机器指令51和52的每个对应的内部指令部分。
图5示出在已经进行了寄存器重命名、分别用物理重命名寄存器p101、p103和p105替换逻辑寄存器指示符r1、r3和r5之后的优化的内部指令53。具体地,优化的内部指令53包括向对应于寄存器r1的物理位置101加载与在对应于寄存器r3的物理位置p103处的地址对应的值加上常数120的内部指令。优化的内部指令53还包括将对应于寄存器r5的物理位置p105的内容与对应于寄存器r1的物理位置p101的内容相加并将内容存储在物理位置p101中的内部指令。
例如,在其中仅当第二机器指令52访问并替换来自与第一机器指令51的目的地寄存器相同的寄存器的数据时第一和第二机器指令合格用于优化的实施例中,优化的内部指令可以省略在优化的内部指令53的第二指令部分的结尾处的操作数数据p101(省略的数据由括号指示),由此减小优化的内部指令53的大小。
尽管在图5中例示了优化的内部指令53的一个实施例,但是能够理解本公开的实施例包括具有不同内容和组织的优化的内部指令。例如,在一个实施例中,可以为优化的内部指令的第二操作的目的地或者寄存器提供单独的数据位置。在另一实施例中,可以为优化的内部指令的第二操作的每个操作数提供单独的数据位置,而不管该操作数是否与第一指令部分的目标目的地或寄存器相同。
在本公开的一个实施例中,通过执行两个单独的内部指令54和55来执行该优化的内部指令。第一内部指令54可以对应于第一机器指令51,第二内部指令55可以对应于第二机器指令52。按与第一和第二机器指令51和52将基于第一和第二机器指令51和52在指令流中的原始位置而被执行的相同顺序来执行第一和第二机器指令51和52,如由箭头E所示。
在一个实施例中,执行第一和第二内部指令54和55包括将优化的内部指令53划分为单独的内部指令54和55并且在单独的操作周期中执行单独的内部指令54和55的每个。在另一实施例中,执行第一和第二内部指令54和55包括执行该优化的内部指令53两次,第一次优化该优化的内部指令53时执行该优化的内部指令53的与该第一内部指令54对应的第一部分,第二次执行该优化的内部指令53时执行该优化的内部指令53的与该第二内部指令55对应的第二部分。
在一个实施例中,从该优化的内部指令53的该第二内部指令55对应的第二部分中省略了操作数源位置和目的地位置之一或两者,并且诸如图2的指令执行单元27的处理器提供该优化的内部指令53的与该第一内部指令54对应的第一部分的目的地位置,作为该第二内部指令55的省略的操作数源位置和目的地位置之一或两者。
在其中第一和第二机器指令51和52包括加载指令和使用该加载指令的加载的操作数的数据处理指令的本公开的实施例中,处理器可以将该优化的内部指令53的第一部分54识别为对应于加载指令并且将该优化的内部指令53的第二部分55识别为对应于数据处理指令。处理器可以将该优化的内部指令53划分为第一内部指令54和第二内部指令55以分别执行该第一和第二内部指令54和55。可替换地,该处理器可以执行该优化的内部指令53两次,而在每次执行该优化的内部指令53时,仅执行该优化的内部指令53的与该内部指令54和55之一对应的部分之一。
在一个实施例中,执行该优化的内部指令53而不是在单独的操作周期中操作单独的内部指令54和55。换句话说,在一个实施例中,不基于优化的内部指令53产生单独的内部指令54和55。而是,优化的内部指令53可以在同一操作周期中依次执行该优化的内部指令53的第一内部指令部分和第二内部指令部分。
为如上所述,实施例可以以计算机实现的处理和用于实践那些处理的装置的形式而体现。实施例可以包括如图6所示的在计算机可读/可用介质602上的计算机程序产品600,该计算机可读/可用介质602具有包含体现在作为一件制造品的有形媒体中的指令的计算机程序代码逻辑604。用于计算机可读/可用介质602的示例的制造品可以包括软盘、CD-ROM、硬盘、通用串行总线(USB)快闪驱动器或者任何其他的计算机可读存储介质,其中当该计算机程序代码逻辑604被加载到计算机中并且由计算机执行时,该计算机变为用于实践本发明的装置。实施例包括例如计算机程序代码逻辑604,无论其被存储在存储介质中、加载到计算机中和/或由计算机执行、经过一些传输介质、比如经过电导线或者线缆、通过光纤还是经由电磁辐射而传输,其中当计算机程序代码逻辑604被加载到计算机中并且由计算机执行时,该计算机变为用于实践本发明的装置。当实现在通用微处理器上时,计算机程序代码逻辑604段配置该微处理器以创建具体逻辑电路。
本公开的实施例的技术效果和益处包括减少了由处理器为了诸如并行处理的处理而分析的指令的数量、减少了被存储在存储器中的比如被存储在发出队列中的内部指令的数量、并且减少了由处理器进行以执行内部指令的步骤的数量。例如,在其中处理器被配置为进行并行处理并且该处理器分析被存储在指令队列或者发出队列中的指令流中的指令的实施例中,该处理器可以根据上述实施例形成优化的内部指令以得到用于处理器分析来并行处理的更少的内部指令,减少了包括处理器的系统中的等待时间。可以从根据本公开的实施例的系统、方法和计算机程序产品得到其他技术效果和益处,并且本发明的范围不限于上述效果或益处的任何一个。
这里使用的术语仅是为了描述特定实施例的目的而不意图限制本发明。如这里使用的,单数形式“一”、“一个”和“该”也意图包括复数形式,除非上下文以其他方式明确指示。将进一步理解,术语“包括”和/或“包含”在本说明书中使用时,指定了所述的特征、整体、步骤、操作、要素和/或组件的存在,但是不排除一个或多个其他特征、整体、步骤、操作、要素组件和/或它们的组的存在或添加。
已经为了例示和描述的目的给出了本发明的描述,但是不意图穷尽或限制到公开的形式的发明。不脱离本发明的范围和精神,许多修改和变更对本领域技术人员将是显然的。选择并描述实施例以便于最佳地说明本公开的原理和实际应用,并且使得本领域普通技术人员能够对于具有适合于所预期的具体用途的各种修改的各种实施例理解本公开。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
以上参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序内部指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(articleofmanufacture)。
计算机程序指令还可以加载到计算机、其他可编程数据处理设备或其他装置上以使得在计算机、其他可编程设备或其他装置上进行一系列操作步骤,以产生计算机实现的处理,使得在计算机或其他可编程设备上执行的指令提供用于实现在流程图和/或框图块或多个块中指定的功能/动作的处理。
如上所述,实施例可以以计算机实现的处理和用于实践那些处理的装置的形式而体现。在实施例,本发明可以体现在由一个或多个网络元件执行的计算机程序代码。实施例包括在计算机可用介质上的计算机程序产品,该计算机可用介质具有包含体现在作为一件制造品的有形媒介中的指令的计算机程序代码逻辑。用于计算机可用介质的示例的制造品可以包括软盘、CD-ROM、硬盘、通用串行总线(USB)快闪驱动器或者任何其他的计算机可读存储介质,其中当该计算机程序代码逻辑被加载到计算机中并且由计算机执行时,该计算机变为用于实践本发明的装置。实施例包括例如计算机程序代码逻辑,无论其被存储在存储介质中、加载到计算机中和/或由计算机执行、经过一些传输介质、比如经过电导线或者线缆、通过光纤还是经由电磁辐射而传输,其中当计算机程序代码逻辑被加载到计算机中并且由计算机执行时,该计算机变为用于实践本发明的装置。当实现在通用微处理器上时,计算机程序代码逻辑段配置该微处理器以创建具体逻辑电路。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

Claims (20)

1.一种用于优化指令的计算机系统,该计算机系统包括:
处理器,包括被配置为执行指令的指令执行单元以及被配置为优化两个或更多指令的指令优化单元;以及
存储器,用于存储要由该指令执行单元执行的两个或更多机器指令,
该计算机系统被配置为进行包括以下的方法:
分析来自要由该指令执行单元执行的指令流中的两个或更多机器指令,所述两个或更多机器指令包括存储器加载指令和基于该存储器加载指令进行数据处理功能的数据处理指令,将所述两个或更多机器指令识别为合格用于优化,将所述两个或更多机器指令合并为单个优化的内部指令,并执行该单个优化的内部指令以进行与所述存储器加载指令和所述数据处理指令对应的存储器加载功能和数据处理功能。
2.如权利要求1所述的计算机系统,其中确定所述两个或更多机器指令合格用于优化包括确定该存储器加载指令的目标目的地与该数据处理指令的操作数源位置相同。
3.如权利要求1所述的计算机系统,其中所述处理器被配置为通过分配单个目标寄存器以表示所述两个或更多机器指令的第一和第二机器指令两者的结果来进行寄存器重命名。
4.如权利要求1所述的计算机系统,其中所述处理器被配置为产生所述单个优化的内部指令以在其中仅存储所述两个或更多机器指令的目标寄存器的一个表示。
5.如权利要求4所述的计算机系统,其中所述单个优化的内部指令仅包括一个存储的重命名寄存器标识符以标识所述存储器加载指令的目标寄存器以及所述数据处理指令的源寄存器,以及
执行单个优化的内部指令包括:
选择存储器加载指令的目标寄存器作为数据处理指令的源寄存器。
6.如权利要求1所述的计算机系统,其中所述计算机系统被配置为执行所述单个优化的内部指令而不是执行与所述两个或更多机器指令对应的两个或更多内部指令。
7.如权利要求1所述的计算机系统,其中所述方法还包括:
在两个或更多单独的操作周期中执行所述优化的内部指令以执行所述存储器加载功能和所述数据处理功能。
8.如权利要求1所述的计算机系统,其中所述存储器包括具有多个槽的发出队列,每个槽被配置为将多个内部指令的单独一个内部指令按照所述多个内部指令要由所述指令执行单元执行的顺序而存储,以及
所述方法还包括:
将所述优化的内部指令存储在所述发出队列的一个存储槽中。
9.如权利要求1所述的计算机系统,其中所述执行单元被配置为通过产生与所述两个或更多机器指令对应的两个或更多单独的内部指令并且在单独的操作周期中执行所述两个或更多单独的内部指令的每个来执行所述优化的内部指令。
10.一种计算机程序产品,用于实现指令优化,该计算机程序产品包括:
有形存储介质,可由处理电路读取并且存储用于由该处理电路执行以进行包括以下的方法的指令:
确定指令流的至少两个机器指令合格用于优化,所述至少两个机器指令包括存储器加载指令以及基于该存储器加载指令处理数据的数据处理指令,
基于确定所述至少两个机器指令合格用于优化,通过处理器将所述至少两个机器指令合并为单个优化的内部指令;以及
执行该单个优化的内部指令以进行与所述存储器加载指令和所述数据处理指令对应的存储器加载功能和数据处理功能。
11.如权利要求10所述的计算机程序产品,其中执行所述单个优化的内部指令包括执行所述单个优化的内部指令而不是执行与所述至少两个机器指令对应的至少两个内部指令。
12.如权利要求10所述的计算机程序产品,其中所述方法还包括将所述单个优化的内部指令作为单个指令存储在所述有形存储介质中,以及
其中执行所述单个优化的内部指令包括产生与所述至少两个机器指令对应的至少两个内部指令并且在单独的操作中执行所述至少两个内部指令。
13.如权利要求10所述的计算机程序产品,其中所述方法还包括将所述单个优化的内部指令作为单个指令存储在所述有形存储介质中,以及
其中指令执行单元被配置为第一次执行所述单个优化的内部指令以进行与所述第一机器指令对应的操作并且第二次执行所述单个优化的内部指令以进行与所述第二机器指令对应的操作。
14.如权利要求10所述的计算机程序产品,其中所述指令优化单元被配置为通过识别所述加载指令的目的地与所述数据处理指令的目的地和操作数位置相同而将所述第一和第二机器指令识别为合格用于优化。
15.一种计算机实现的方法,包括:
确定指令流的两个或更多指令合格用于优化,所述两个或更多指令包括存储器加载指令以及基于该存储器加载指令处理数据的数据处理指令,
通过处理器将所述两个或更多指令合并为单个优化的内部指令;以及
执行该单个优化的内部指令以进行与所述存储器加载指令和所述数据处理指令对应的存储器加载功能和数据处理功能。
16.如权利要求15所述的计算机实现的方法,其中执行所述单个优化的内部指令包括执行所述单个优化的内部指令而不是执行与所述指令流的两个或更多指令对应的两个或更多单独的内部指令。
17.如权利要求15所述的计算机实现的方法,还包括将所述单个优化的内部指令存储在队列的单个指令槽中,
其中执行所述单个优化的内部指令包括从所述队列取得所述单个优化的内部指令并且从所述单个优化的内部指令产生与所述存储器加载指令和所述数据处理指令对应的两个或更多单独的内部指令。
18.如权利要求15所述的计算机实现的方法,其中确定所述两个或更多指令合格用于优化包括确定所述存储器加载指令的目标目的地与所述数据处理指令的操作数位置相同。
19.如权利要求15所述的计算机实现的方法,其中将所述两个或更多指令合并为单个优化的内部指令包括形成单个优化的内部指令以具有与所述两个或更多指令中的第一指令对应的第一指令部分以及与所述两个或更多指令中的第二指令对应的第二指令部分,以及
将所述两个或更多指令合并为单个优化的内部指令包括从所述第二指令部分中省略与所述两个或更多指令中的第二指令中的、与所述两个或更多内部指令中的第一指令的目标目的地相同的操作数位置和目的地的至少一个对应的数据。
20.如权利要求15所述的计算机实现的方法,其中执行所述单个优化的内部指令包括执行所述单个优化的内部指令两次,第一次执行所述单个优化的内部指令时执行所述存储器加载指令,并且第二次执行所述单个优化的内部指令时执行所述数据处理指令。
CN201380017107.0A 2012-03-28 2013-02-19 用于优化指令的方法和系统 Active CN105453031B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/432,537 US9513915B2 (en) 2012-03-28 2012-03-28 Instruction merging optimization
US13/432,537 2012-03-28
PCT/IB2013/051342 WO2013144734A2 (en) 2012-03-28 2013-02-19 Instruction merging optimization

Publications (2)

Publication Number Publication Date
CN105453031A true CN105453031A (zh) 2016-03-30
CN105453031B CN105453031B (zh) 2018-06-26

Family

ID=49236672

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380017107.0A Active CN105453031B (zh) 2012-03-28 2013-02-19 用于优化指令的方法和系统

Country Status (5)

Country Link
US (2) US9513915B2 (zh)
CN (1) CN105453031B (zh)
DE (1) DE112013001735T5 (zh)
GB (1) GB2514044B (zh)
WO (1) WO2013144734A2 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9940242B2 (en) 2014-11-17 2018-04-10 International Business Machines Corporation Techniques for identifying instructions for decode-time instruction optimization grouping in view of cache boundaries
WO2021203545A1 (en) * 2020-04-09 2021-10-14 Huawei Technologies Co., Ltd. Method and apparatus for balancing binary instruction burstization and chaining
CN113778528A (zh) * 2021-09-13 2021-12-10 北京奕斯伟计算技术有限公司 指令发送方法、装置、电子设备及存储介质
CN117215480A (zh) * 2023-06-25 2023-12-12 深圳市晶存科技有限公司 NAND Flash的数据处理方法、装置、电子设备及存储介质

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9619230B2 (en) 2013-06-28 2017-04-11 International Business Machines Corporation Predictive fetching and decoding for selected instructions
US9348596B2 (en) 2013-06-28 2016-05-24 International Business Machines Corporation Forming instruction groups based on decode time instruction optimization
US9372695B2 (en) 2013-06-28 2016-06-21 Globalfoundries Inc. Optimization of instruction groups across group boundaries
US20150205610A1 (en) * 2014-01-23 2015-07-23 Red Hat, Inc. Configuring managed systems using abstracted functions
US10831478B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Sort and merge instruction for a general-purpose processor
US10831503B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Saving and restoring machine state between multiple executions of an instruction
US10831502B2 (en) 2018-11-06 2020-11-10 International Business Machines Corporation Migration of partially completed instructions

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675288B2 (en) * 1998-08-24 2004-01-06 Hewlett-Packard Development Company L.P. Apparatus for mapping instructions using a set of valid and invalid logical to physical register assignments indicated by bits of a valid vector together with a logical register list
CN1655118A (zh) * 2004-02-12 2005-08-17 松下电器产业株式会社 处理器和编译器
CN101110017A (zh) * 2005-08-09 2008-01-23 英特尔公司 一种组合指令的技术
US7398372B2 (en) * 2002-06-25 2008-07-08 Intel Corporation Fusing load and alu operations
CN101290567A (zh) * 2007-04-18 2008-10-22 国际商业机器公司 通用寄存器重命名方法和具有通用寄存器重命名的微处理器
US20090204791A1 (en) * 2008-02-12 2009-08-13 Luick David A Compound Instruction Group Formation and Execution
CN101535947A (zh) * 2006-09-29 2009-09-16 Mips技术公司 两次发布的条件移动指令及其应用
CN101601008A (zh) * 2007-01-24 2009-12-09 高通股份有限公司 用于在扩展指令的组成指令之间转发中间结果的寄存器重命名系统的使用
CN102362257A (zh) * 2009-03-24 2012-02-22 国际商业机器公司 使用相关矩阵追踪解除分配的加载指令

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6338136B1 (en) * 1999-05-18 2002-01-08 Ip-First, Llc Pairing of load-ALU-store with conditional branch
US6675376B2 (en) 2000-12-29 2004-01-06 Intel Corporation System and method for fusing instructions
US7802076B2 (en) 2004-06-24 2010-09-21 Intel Corporation Method and apparatus to vectorize multiple input instructions
US7237094B2 (en) 2004-10-14 2007-06-26 International Business Machines Corporation Instruction group formation and mechanism for SMT dispatch
CN100390738C (zh) 2005-10-18 2008-05-28 中国科学院计算技术研究所 一种基于数据流分析的访存合并优化方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6675288B2 (en) * 1998-08-24 2004-01-06 Hewlett-Packard Development Company L.P. Apparatus for mapping instructions using a set of valid and invalid logical to physical register assignments indicated by bits of a valid vector together with a logical register list
US7398372B2 (en) * 2002-06-25 2008-07-08 Intel Corporation Fusing load and alu operations
CN1655118A (zh) * 2004-02-12 2005-08-17 松下电器产业株式会社 处理器和编译器
CN101110017A (zh) * 2005-08-09 2008-01-23 英特尔公司 一种组合指令的技术
CN101535947A (zh) * 2006-09-29 2009-09-16 Mips技术公司 两次发布的条件移动指令及其应用
CN101601008A (zh) * 2007-01-24 2009-12-09 高通股份有限公司 用于在扩展指令的组成指令之间转发中间结果的寄存器重命名系统的使用
CN101290567A (zh) * 2007-04-18 2008-10-22 国际商业机器公司 通用寄存器重命名方法和具有通用寄存器重命名的微处理器
US20090204791A1 (en) * 2008-02-12 2009-08-13 Luick David A Compound Instruction Group Formation and Execution
CN102362257A (zh) * 2009-03-24 2012-02-22 国际商业机器公司 使用相关矩阵追踪解除分配的加载指令

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9940242B2 (en) 2014-11-17 2018-04-10 International Business Machines Corporation Techniques for identifying instructions for decode-time instruction optimization grouping in view of cache boundaries
US10061705B2 (en) 2014-11-17 2018-08-28 International Business Machines Corporation Identifying instructions for decode-time instruction optimization grouping in view of cache boundaries
WO2021203545A1 (en) * 2020-04-09 2021-10-14 Huawei Technologies Co., Ltd. Method and apparatus for balancing binary instruction burstization and chaining
US11327760B2 (en) 2020-04-09 2022-05-10 Huawei Technologies Co., Ltd. Method and apparatus for balancing binary instruction burstization and chaining
CN113778528A (zh) * 2021-09-13 2021-12-10 北京奕斯伟计算技术有限公司 指令发送方法、装置、电子设备及存储介质
CN117215480A (zh) * 2023-06-25 2023-12-12 深圳市晶存科技有限公司 NAND Flash的数据处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
DE112013001735T5 (de) 2015-02-26
US9513916B2 (en) 2016-12-06
US9513915B2 (en) 2016-12-06
GB201414520D0 (en) 2014-10-01
WO2013144734A2 (en) 2013-10-03
US20130262841A1 (en) 2013-10-03
CN105453031B (zh) 2018-06-26
US20130262823A1 (en) 2013-10-03
GB2514044A (en) 2014-11-12
WO2013144734A3 (en) 2016-09-01
GB2514044B (en) 2015-06-17

Similar Documents

Publication Publication Date Title
CN105453031A (zh) 指令合并优化
CN104884145A (zh) 指令合并优化
US10776087B2 (en) Sequence optimizations in a high-performance computing environment
US9513922B2 (en) Computer system and a method for generating an optimized program code
US20160124649A1 (en) METHOD TO REDUCE FLASH MEMORY IOs WITH HOST MAINTAINED ADDRESS MAPPING TABLE
JP7088897B2 (ja) データアクセス方法、データアクセス装置、機器及び記憶媒体
CN103365626A (zh) 用于在循环缓冲器中缓存优化后的内部指令的方法和系统
KR101374065B1 (ko) 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치
US20150277876A1 (en) Compiling device, compiling method, and storage medium storing compiler program
KR20180137521A (ko) 벡터 연산들 수행시의 어드레스 충돌 관리 장치 및 방법
US9766866B2 (en) Techniques for determining instruction dependencies
CN105528183A (zh) 一种存储数据的方法及存储设备
KR101826828B1 (ko) 로그 데이터 관리 시스템 및 방법
JP2016192203A (ja) データ源解析に基づく逐次反復的な試験生成
US9009691B1 (en) Using an inline stack to improve performance of an applications binary
CN111095197B (zh) 代码处理方法和设备
CN107436769A (zh) 一种缓存配置的修改方法及装置
CN108121667B (zh) 数据擦除方法、装置及计算机存储介质
US9772827B2 (en) Techniques for determining instruction dependencies
KR102202211B1 (ko) 애플리케이션의 로딩 성능 개선을 위한 입출력 최적화 장치 및 방법
CN112486854B (zh) 与非型闪存Nand Flash存储管理方法及装置
JP4013972B2 (ja) プロセッサ、プロセッサでのプログラム実行方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant