CN104050034A - 用于静态调度处理器的无阻塞执行的设备和方法 - Google Patents

用于静态调度处理器的无阻塞执行的设备和方法 Download PDF

Info

Publication number
CN104050034A
CN104050034A CN201410079697.6A CN201410079697A CN104050034A CN 104050034 A CN104050034 A CN 104050034A CN 201410079697 A CN201410079697 A CN 201410079697A CN 104050034 A CN104050034 A CN 104050034A
Authority
CN
China
Prior art keywords
processor
input data
input buffer
end value
time delay
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
CN201410079697.6A
Other languages
English (en)
Other versions
CN104050034B (zh
Inventor
权劝宅
禹相玉
李时和
郑锡润
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN104050034A publication Critical patent/CN104050034A/zh
Application granted granted Critical
Publication of CN104050034B publication Critical patent/CN104050034B/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/46Multiprogramming arrangements
    • 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, 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/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • 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, look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers
    • 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, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative 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, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory
    • G06F9/38585Result writeback, i.e. updating the architectural state or memory with result invalidation, e.g. nullification

Abstract

本发明公开了用于静态调度处理器的无阻塞执行的设备和方法。所述设备包括:处理器,用于使用传输的输入数据处理至少一个操作;输入缓冲器,用于将输入数据传输到处理器,并存储处理所述至少一个操作的结果,其中,处理器可包括用于执行所述至少一个操作的至少一个功能单元(FU),所述至少一个FU使用规则延时操作和不规则延时操作中的至少一个来处理传输的输入数据。

Description

用于静态调度处理器的无阻塞执行的设备和方法
本申请要求于2013年3月11日在韩国知识产权局提交的第10-2013-0025509号韩国专利申请的优先权利益,该申请的公开通过引用包含于此。
技术领域
以下描述涉及一种用于静态调度处理器的无阻塞执行的设备和方法,当在针对输入数据的操作期间发生比预期延时大的延时时,所述设备和方法可维持操作能力,而不需要在长周期内将整个处理器转换到停滞状态。
背景技术
静态调度处理器表示当编译时将执行的功能单元(FU)以及该FU的顺序,其中,通过所述功能单元将操作应用于输入数据。在软件流水线操作算法中,确定调度的三星可重构处理器(SRP)可对应于静态调度处理器。
可针对操作产生处理器的操作调度以产生最佳执行性能,考虑到可用的FU,例如,准备用于操作的输入数据的时间点和操作的延时。
这里,计算针对规则延时操作(更具体地说,延时是规则的操作)的精确时序在编译时是可能的,因此可产生最佳调度。然而,在不规则延时操作(更具体地说,当进行延时是不规则的操作时)的情况下,可采用通过在编译时假设单个延时值、并在运行时处理与假设的延时不同的延时的发生来产生调度的方法。
发明内容
在基于静态调度的处理器中,在编译时调度操作以被顺序执行,并且每个操作被分配用于执行的预定时间段。因此,如果操作需要比分配的时间更长的执行时间,则处理器可能停滞,从而影响性能。
因此,当确定操作超出为其分配的执行时间时,处理器可输出虚值而不是停滞。因此,可在没有延迟的情况下执行后续操作。随后可再次执行被确定超出为其分配的执行时间的操作,以获得基于操作的正常完成的结果。
由于与由停滞导致的延迟相比可在更少的时间内执行操作的再次执行,因此可提高处理器的性能。
可通过提供一种用于静态调度处理器的无阻塞执行的设备来实现上述和/或其他方面,所述设备包括:处理器,用于使用传输的输入数据处理至少一个操作;输入缓冲器,用于将输入数据传输到处理器,并存储处理所述至少一个操作的结果。这里,处理器可包括用于执行所述至少一个操作的至少一个功能单元(FU),所述至少一个FU可使用规则延时操作和不规则延时操作中的至少一个来处理传输的输入数据。
所述至少一个FU可确定是使用规则延时操作还是不规则延时操作来处理输入数据。
当确定使用不规则延时操作来确定输入数据时,所述至少一个FU可验证从针对输入数据的先前操作获得的结果值是否被存储在输入缓冲器中。
当从先前操作获得的结果值被存储在输入缓冲器中时,所述至少一个FU可在由调度定义的预期延时到期之后输出该从先前操作获得的结果值。
当在输入缓冲器中不存在从先前操作获得的结果值时,所述至少一个FU可执行操作,并确定在操作的执行期间是否发生额外延时。
当在操作的执行期间发生额外延时时,所述至少一个FU可输出虚值并将与输出的虚值相应的状态信息记录在输入缓冲器中。
在终止执行发生额外延时的操作之后,所述至少一个FU可将从所述操作获得的最终结果值记录在输入缓冲器中。
当在操作的执行期间没有发生额外延时时,所述至少一个FU可输出从所述操作的执行获得的结果值,并将输出的结果值记录在输入缓冲器中。
输入缓冲器可包括状态寄存器和结果缓冲器。状态寄存器可存储针对输入数据的状态,结果缓冲器可存储从先前操作获得的结果值。
状态寄存器可存储与针对输入数据的操作是否将被再次执行相关联的状态。
可通过提供一种静态调度处理器来实现以上和/或其他方面,所述静态调度处理器包括:操作处理单元,用于接收从输入缓冲器传输的输入数据,并使用多个功能单元FU执行操作;确定器,用于确定在针对输入数据的操作期间是否在所述多个FU的至少一个中发生额外延时;存储处理单元,用于在发生额外延时输出虚值,并且将虚值存储在输入缓冲器中。
操作处理单元可验证从针对传输的输入数据的先前操作获得的结果值是否被存储在输入缓冲器中,当从先前操作获得的结果值被存储在输入缓冲器中时,在由调度定义的预期延时到期之后输出所述从先前操作获得的结果值。
操作处理单元可验证从针对传输的输入数据的先前操作获得的结果值是否被存储在输入缓冲器中,当在输入缓冲器中不存在从先前操作获得的结果值时,执行输入数据的操作。
可通过提供一种用于静态调度处理器的无阻塞执行的方法来实现以上和/或其他方面,所述方法包括:通过处理器使用传输的输入数据处理至少一个操作;使用输入缓冲器将输入数据传输到处理器;存储处理所述至少一个操作的结果。这里,所述处理可包括使用规则延时操作和不规则延时操作中的至少一个来处理传输的输入数据。
所述处理可包括:确定是使用规则延时操作还是不规则延时操作来处理输入数据。
所述处理可包括:当确定使用不规则延时操作处理输入数据时,验证从针对输入数据的先前操作获得的结果值是否被存储在输入缓冲器中。
所述处理可包括:当从先前操作获得的结果值被存储在输入缓冲器中时,在由调度定义的预期延时到期之后输出所述从先前操作获得的结果值。
所述处理可包括:当在输入缓冲器中不存在从先前操作获得的结果值时,执行操作并确定在所述操作的执行期间是否发生额外延时。
所述处理可包括:当在所述操作的执行期间发生额外延时时,输出虚值并将与输出的虚值相应的状态信息记录在输入缓冲器中。
所述处理可包括:在终止执行发生额外延时的操作之后,将从所述操作获得的最终结果值存储在输入缓冲器中。
所述处理可包括:当在所述操作的执行期间没有发生额外延时时,输出从所述操作的执行获得的结果值,并将输出的结果值记录在输入缓冲器中。
通过提供一种用于在静态调度处理器中的操作方法来实现以上和/或其他方面,所述方法包括:通过操作处理单元接收从输入缓冲器传输的输入数据,使用多个FU执行操作,通过确定器确定在执行针对输入数据的操作期间在上述多个FU的至少一个中是否发生额外延时,当发生额外延时时,通过存储处理单元输出虚值,并将虚值存储在输入缓冲器中。
所述执行可包括:验证从针对传输的输入数据的先前操作获得的结果值是否被存储在输入缓冲器中,当从先前操作获得的结果值被存储在输入缓冲器中时,在由调度定义的预期延时到期之后输出所述从先前操作获得的结果值。
所述执行可包括:验证从针对传输的输入数据的先前操作获得的结果值是否被存储在输入缓冲器中,当在输入缓冲器中不存在从先前操作获得的结果值时,执行输入数据的操作。
在以下描述中将部分阐述实施例的附加方面,并且通过描述这部分将是清楚的,并可通过本公开的实践被学习。
附图说明
从下面结合附图对实施例的描述中,这些和/或其他方面将变得更明显且更易于理解,在附图中:
图1示出根据示例实施例的用于静态调度处理器的无阻塞执行的设备;
图2示出根据示例实施例的用于无阻塞执行的设备的输入缓冲器;
图3示出根据示例实施例的静态调度处理器;
图4示出根据示例实施例的用于静态调度处理器的无阻塞执行的方法;
图5示出根据示例实施例的处理器的操作方法。
具体实施方式
现在将详细参照实施例,实施例的示例在附图中示出,附图中的相同标号始终表示相同元件。下面描述实施例以参照附图解释本公开。
当确定详细描述涉及现有的公知功能或构造,而这样的描述会使本公开的目的不必要地模糊时,将省略这样的详细描述。此外,定义这里使用的术语,以合适地描述示例性实施例,因此可根据用户、操作者的意图或习俗来改变术语。因此,必须基于本说明书中的下面的整体描述来定义术语。
图1示出根据示例实施例的用于静态调度处理器的无阻塞执行的设备100。
参照图1,设备100可包括输入缓冲器110和处理器120。
下面,处理器可包括基于静态调度的处理器。
处理器120可使用传输的输入数据来处理至少一个操作。
输入缓冲器110可被用于将输入数据传输到处理器120,并存储处理至少一个操作的结果。
处理器120可包括被配置为分配执行至少一个操作的至少功能单元(FU)121。
至少一个FU121可使用规则延时操作和不规则延时操作中的至少一个来处理传输的输入数据。
至少一个FU121可识别输入数据,基于识别的结果确定是使用规则延时操作还是不规则延时操作来处理输入数据。
当操作的延时规则时,至少一个FU121可使用规则延时操作来处理输入数据,使得当编译时可实现精确的时序计算和最佳调度产生。
相反,在针对输入数据的操作的延时不规则的情况下,至少一个FU121可通过在编译时假设单个延时值来产生调度。因此,虽然在运行时发生与假设的延时不同的延时,但是至少一个FU121也可维持操作能力,而不需要在长周期内转换到停滞状态。
具体地说,设备100可在执行基于静态调度的处理器的操作的同时维持无阻塞特性。
在终止执行发生额外延时的操作后,至少一个FU121可将从操作获得的最终结果值记录在输入缓冲器110中。
处理器120可确定当编译时将执行的FU以及该FU的顺序,其中,通过所述FU将操作应用于输入数据。
处理器120可以基于静态调度,并因此在与基于动态调度的处理器相比时具有更小和更简单的硬件。此外,处理器120可不在与发生额外延时相应的时间段内停滞处理器120的操作。因此,可解决传统的静态调度处理器不能够处理在运行时发生的延时的问题。
在由处理器120执行的操作中,不受外部因素影响的可执行的操作可持续地产生规则延时。例如,在通过参考高速缓存存储器等处理操作时的高速缓存命中的情况下,可能不发生除了预定延时以外的外部延时。例如,预定时延可包括处理器执行周期计时。处理器120可使用规则延时操作来处理这样的操作。
针对包括受外部因素影响的操作(诸如访问外部存储器)的操作、或用于执行根据条件的选择性操作的操作,传统处理器可在每次执行这样的操作时都产生不同的延时。处理器120可使用不规则延时操作来处理这样的操作。
例如,当传统处理器通过数据高速缓存器执行访问外部存储器的操作时,可基于发生高速缓存命中还是发生高速缓冲未中来改变操作,并且用于执行所需的延时可改变。此外,虽然发生相同的高速缓存未中,用于访问外部存储器的所花费的时间量也可能每次都不同,用于执行所需要的延时可能改变。
相反,处理器120可将确定值指定为将被执行的每个操作的延时。指定的值可以是用于将被执行的所有操作的相同值,或可以不是用于将被执行的所有操作的相同值。因此,处理器120可基于指定的延时产生调度以产生最佳执行性能,并在运行时根据确定的调度进行操作。
当在运行时需要用于执行预定操作的更长的时间量时,处理器120可为了系统效率而不基于额外延时维持停滞状态,并且不在完成对预定操作的处理之前待机。此外,处理器120可忽略发生额外延时的预定操作,并可不输出不正确的数据。
具体地说,当发生除了指定延时以外的额外延时时,处理器120可能不能在由调度确定的时间点执行使用操作的结果的后续操作。更具体地说,当延时比预先指定的值大时,可不在由调度确定的时间点执行使用操作的结果的后续操作。
在这种情况下,总体来说,处理器可被停滞与发生的额外延时相应的时间段,并且当预定操作完成时可恢复根据原始调度的操作的执行。
当发生除了指定延时以外的额外延时时,处理器120可以通过处理预定操作的FU121输出与无意义值相应的虚值(dummy value)。此外,与输出的虚值相应的状态信息可通过结果存储信号140被存储在输入缓冲器110中作为结果值。
输入缓冲器110可存储从针对输入数据的多个不规则延时操作获得的结果值。
处理器120可针对每个输入项(entry)存储从不规则延时操作获得的结果值,并在处理预定操作之前通过结果查找信号30查找先前存储的结果值。
具体地说,在处理预定操作之前,由于与虚值相应的状态信息被存储在被输入的输入数据的先前结果值中,因此处理器120可验证是否通过FU121执行再次执行。例如,在不规则延时操作的情况下,处理器120可在启动操作的时间点首先查找先前结果值,以验证从针对相应数据的操作获得的结果值是否被存储在输入缓冲器110中。
当存在相应的结果值时,处理器120可在由调度定义的预期延时到期之后输出找到的结果值,以代替再次执行操作。当输入了与虚值相应的状态信息,或输入缓冲器110中不存在结果值时,处理器120可在有效操作中再次执行相应操作。
当作为由FU121执行的结果,在预期延时内完成了操作时,处理器120可输出从有效操作获得的结果值。
当作为由FU121执行的结果,没有在预期延时内完成操作时,处理器120可输出虚值。当处理器120实际上执行操作时,相应的结果值可被存储在输入缓冲器110中,而不管延时。
处理器120可输出虚值以避免使处理器120的操作停滞与发生额外延时相应的时间段,并可不输出由于虚值导致的不正确的结果值。
处理器120可验证是否在先前针对所有中间操作输出了虚值,所述中间操作用于输出针对输入数据的执行的最终结果。
具体地说,处理器120可在指定延时内终止操作以输出正常输出值,并将该输出值存储在输入缓冲器110中。在此情况下,处理器120可将完成标志通过完成标志信号150发送到输入缓冲器110。通过此动作,输入缓冲器110可用于识别与存储的输出值相应的完成标志,并指示针对输入数据的操作被正常终止。
被正常终止的输入数据可作为输出数据被输出到外部,并被用于后续处理。可从输入缓冲器110删除已经正常输出的输入项。
当没有识别完成标志时,相应的输入数据可被确定为包括虚值的结果,并在操作的处理可被恢复的合适时间点被再次从输入缓冲器110发送到处理器120。
具体地说,处理器120可在针对输入数据的操作中感测比预期延时大的不规则延时操作的结果,并且使得针对相应数据的操作被再次执行。在此情况下,先前处理的结果值可被存储在输入缓冲器110中的与输入数据相应的位置。
通过该动作,可针对例外延时维持预定调度,并且同时可实现相同的操作结果。此外,由于整个处理器可不被停滞与额外延时相应的时间段,因此可提高处理器的处理性能。
根据示例实施例,当使用设备100时,虽然在针对输入数据的操作期间发生比预期延时大的延时,但是可防止由于整个处理器在长周期内的停滞状态而引起的操作能力的劣化。
根据示例实施例,当使用设备100时,虽然发生比预期延时大的延时,但是处理器可将相应的操作值处理为虚值,而不需要停滞操作,从而继续正常地针对后续数据执行操作。之后,当操作的原始执行和未完成的额外延时操作(诸如外部存储器访问)完成时,处理器可再次执行被处理为虚值的针对数据的操作。具体地说,可减少与额外延时相应的停滞周期,并可提高与针对相应数据的再次操作相应的处理性能。
一般而言,对于针对输入数据的单个项的操作,处理器花费大约10至50个周期。与此相比,对于高速缓存存储器访问操作的额外延时,可花费大约100至300个周期。
因此,当使用设备100时,可防止由于在每次发生额外延时时花费的100至300个停滞周期导致的周期浪费,并且由于对于操作的再次执行仅需要10至50个周期,因此可提高性能。
图2示出根据示例实施例的用于无阻塞执行的设备的输入缓冲器200。
参照图2,输入缓冲器200可基于将根据每个输入项被分类的至少一条输入数据被输入的顺序来存储所述至少一条输入数据。
当从外部环境将输入数据提供给处理器时,可在输入缓冲器200中存储所述输入数据。
输入缓冲器200可用于从存储的输入项中选择单个输入项,并传输选择的输入项作为对处理器的实际输入。单个输入项可以被输入到单个输入缓冲单元210中。输入缓冲器200可由多个输入缓冲单元组成。
被输入有单个输入项的输入缓冲单元210可包括状态位211、输入数据212和结果缓冲器213。根据本发明的实施例,状态位还可以是状态寄存器。
将针对单个输入项被存储在输入缓冲器200中的内容可包括单个输入项的状态信息、输入数据和从多个不规则延时操作获得的结果值。处理器可存储从针对单个输入项的不规则延时操作获得的结果值,并还可检索存储的结果值。
具体地说,处理器可基于由FU处理输入数据212的结果将完成标志存储在状态位211中。处理器可验证输入缓冲器200的状态位211以确定相应的输入数据是否将被再次执行。
输入数据212可表示将被FU执行的单元,并可以输入数据212被存储的顺序被累积在输入缓冲器200中。
结果缓冲器213可存储通过由FU处理输入数据212获得的结果值。当在FU中发生额外延时时,与虚值相应的状态信息可被记录在结果缓冲器213中。此外,当与虚值相应的状态信息被记录在结果缓冲器213中时,完成标志可不被记录在状态位211中。
作为被传输为对处理器的输入的单个输入项可保持在输入缓冲器200中,而不是被删除。可在当完成所有处理而产生输出数据的时间点删除所述单个输入项。
图3示出根据示例实施例的静态调度处理器300。
参照图3,静态调度处理器300可包括操作处理单元310、确定器320和存储处理单元330。
当参照外部存储器时,虽然相同的高速缓存未中发生,但是由于用于访问外部存储器而花费的时间量每次都可改变,因此用于执行的延时可改变。
静态调度处理器300可指定确定值作为将被执行的所有操作的延时。因此,静态调度处理器300可基于指定延时产生调度以产生最佳执行性能,并在运行时根据确定的调度进行操作。
操作处理单元310可从输入缓冲器接收输入数据,并使用多个FU执行操作。
确定器320可确定在针对输入数据的操作的执行期间是否在多个FU中的至少一个中发生额外延时。
当发生额外延时时,存储处理单元330可输出虚值,并且将虚值存储在输入缓冲器中。
在此情况下,静态调度处理器300可进行后续操作,而不需要停滞针对输入数据的操作。
静态调度处理器300可基于预定延时处理针对输入数据的操作。当操作处理单元310通过数据高速缓存器执行访问外部存储器的操作时,可基于是发生高速缓存命中还是高速缓存未中来改变操作,并且可产生执行所需要的额外延时。
例如,当在运行时花费用于执行预定操作的更大的时间量时,静态调度处理器300可为了系统效率而不基于额外延时维持停滞状态,并可不在完成预定操作的处理之前待机。此外,静态调度处理器300可忽略发生额外延时的预定操作,从而避免输出不正确的数据。
具体地说,当发生除了指定延时以外的额外延时时,静态调度处理器300可能不能在由调度确定的时间点执行使用操作结果的后续操作。更具体地说,当延时比预先指定的值大时,可不在由调度确定的时间点执行使用操作结果的后续操作。
在这种情况下,当发生额外延时时,存储处理单元330可输出虚值并将虚值存储在输入缓冲器中。
操作处理单元310可验证从针对输入数据的先前操作获得的结果值是否被存储,其中,所述输入数据传输自输入缓冲器。当从先前操作获得的结果值被存储时,操作处理单元310可在由调度定义的预期延时到期之后,输出从先前操作获得的结果值。
当在输入缓冲器中不存在从先前操作获得的结果值时,操作处理单元310可再次执行针对输入数据的操作。
根据示例实施例,当使用静态调度处理器300时,虽然在针对输入数据的操作期间发生比预期延时大的延时,但是可防止由于整个处理器在长周期内的停滞状态而引起的操作能力的劣化。
根据示例实施例,当使用静态调度处理器300时,虽然发生比预期延时大的延时,但是静态调度处理器300可将相应的操作值处理为虚值,而不需要停滞操作,从而继续正常地针对后续数据执行操作。之后,静态调度处理器300可再次执行被处理为虚值的针对数据的操作。具体地说,可减少与额外延时相应的停滞周期,并可提高与针对相应数据的再次操作相应的处理性能。
一般而言,对于针对输入数据的单个项的操作,处理器花费大约10至50个周期。与此相比,对于高速缓存存储器访问操作的额外延时,可花费大约100至300个周期。
因此,当使用静态调度处理器300时,可防止由于在每次发生额外延时时花费的100至300个停滞周期导致的周期浪费,并且由于对于操作的再次执行仅需要10至50个周期,因此可提高性能。
图4示出根据示例实施例的用于静态调度处理器的无阻塞执行的方法。
参照图4,在操作401,可使用输入缓冲器将输入数据传输到处理器。
在操作402,处理器可使用传输的输入数据处理至少一个操作。
在操作403,输入缓冲器可用于将输入数据传输到处理器,并存储处理所述至少一个操作的结果。
为了处理所述至少一个操作,可使用规则延时操作和不规则延时操作中的至少一个来处理传输的输入数据。
可基于预定延时处理针对输入数据的操作。在此情况下,可通过应用规则延时操作来执行针对输入数据的操作。
当通过数据高速缓存器执行访问外部存储器的操作时,可基于发生高速缓存命中还是高速缓存未中来改变操作,并且可产生用于执行的额外延时。在此情况下,可通过应用不规则延时操作来执行针对输入数据的操作。
为了处理至少一个操作,可确定是使用规则延时操作还是不规则延时操作来处理输入数据。
当确定使用不规则延时操作来执行输入数据时,可验证从针对输入数据的先前操作获得的结果值是否被存储在输入缓冲器中。
当从先前操作获得的结果值被存储在输入缓冲器中时,可在由调度定义的预期延时到期之后输出所述从先前操作获得的结果值。
当在输入缓冲器中不存在从先前操作获得的结果值时,可执行操作,并可确定在操作的执行期间是否发生额外延时。
当在操作的执行期间发生额外延时时,例如由于高速缓存未中,因此可输出虚值,并且可将与输出的虚值相应的状态信息记录在输入缓冲器中,以指示结果值不正确。
当在操作的执行期间没有发生额外延时时,可输出从操作的执行获得的结果值。此外,可将输出的结果值记录在输入缓冲器中。
根据示例实施例,当使用图4的方法时,虽然在针对输入数据的操作期间发生比预期延时大的延时,但是可防止由于整个处理器在长周期内的停滞状态而引起的操作能力的劣化。
根据示例实施例,当使用图4的方法时,虽然发生比预期延时大的延时,但是处理器可将相应的操作值处理为虚值,而不需要停滞操作,从而继续正常地针对后续数据执行操作。之后,处理器可再次执行被处理为虚值的针对数据的操作。具体地说,可减少与额外延时相应的停滞周期,并可提高与针对相应数据的再次操作相应的处理性能。
图5示出根据示例实施例的处理器的操作方法。
根据本实施例,可接收从输入缓冲器传输的输入数据,并且可执行针对输入数据的操作。可确定在针对输入数据的操作期间是否在多个FU中的至少一个中发生额外延时。当发生额外延时时,可输出虚值,并且可将虚值存储在输入缓冲器中。
具体地说,在操作501,在执行针对来自输入缓冲器的输入数据的操作之前,可确定是使用规则操作还是不规则操作来处理传输的输入数据。例如,当在输入缓冲器的状态位中设置了针对相应输入数据的完成标志时,可使用规则操作来处理输入数据。
当确定使用规则操作来处理输入数据时,可在操作502执行针对输入数据的预定操作,并且可在操作503输出从执行获得的结果有效值。
当确定使用不规则操作来处理输入数据时,可在操作504验证从针对传输自输入缓冲器的输入数据的先前操作获得的结果值是否被存储,以执行操作。
当从先前操作获得的结果值被存储时,在操作503,可将该从先前操作获得的结果值输出为有效值。具体地说,可在由调度定义的预期延时到期之后输出从先前操作获得的结果值。
当不存在从先前操作获得的结果值时,可在操作505执行针对输入数据的操作。
在操作506,可确定在针对输入数据的操作执行期间是否发生额外延时。例如,如果在指定的4个执行周期的延时之后操作没有完成,则可确定发生了操作的额外延时。然而,本公开不限于上述确定,可使用确定是否发生额外延时的其他方法。
当没有发生额外延时时,在操作507,可将从执行获得的结果值记录在输入缓冲器中。当发生额外延时时,在操作508,可输出虚值以防止处理器的停滞。
在操作509,可将输出的虚值存储在输入缓冲器中。
根据示例实施例,当使用图5的方法时,虽然在针对输入数据的操作期间发生比预期延时大的延时,但是可防止由于整个处理器在长周期内的停滞状态而引起的操作能力的劣化。
根据示例实施例,当使用图5的方法时,虽然发生比预期延时大的延时,但是处理器可将相应的操作值处理为虚值,而不需要停滞操作,从而继续正常地针对后续数据执行操作。之后,处理器可再次执行被处理为虚值的针对数据的操作。
根据上述实施例的方法可记录在包括用于实现由计算机实施的各种操作的程序指令的非暂时性计算机可读介质中。所述介质还可包括单独的程序指令、数据文件、数据结构等或它们的组合。记录在介质上的程序指令可以是为了实施例的目的被专门设计和构造的程序指令,或者它们可以是计算机软件领域的技术人员公知并可用的程序指令。非暂时性计算机可读介质的示例包括磁介质,诸如硬盘、软盘和磁带;光介质,诸如CD ROM盘和DVD;磁光介质,诸如光盘;被专门构造为存储和执行程序指令的硬件装置,诸如只读存储器(ROM)、随机存取存储器(RAM)、闪存等。计算机可读介质还可以是分布网络,从而程序指令以分布方式被存储和执行。可通过一个或更多个处理器执行程序指令。计算机可读介质还可被实施在执行(像处理器那样执行)程序指令的专用集成电路(ASIC)或现场可编程门阵列(FPGA)的至少一个中。程序指令的示例包括诸如由编译器产生的机器代码和包含可由计算机使用解释器执行的更高级代码的文件两者。描述的硬件装置可被构造为用作用于执行上述实施例的操作的一个或更多个软件模块,反之亦然。
已经在上面描述了多个示例。然而,应理解可进行各种修改。例如,如果以不同的顺序执行上述技术和/或如果上述系统、构造、装置或电路中的组件以不同的方式组合和/或被其他组件或它们的等同物代替或替代,则可实现合适的结果。因此,其他实施方式在权利要求的范围内。

Claims (23)

1.一种用于静态调度处理器的无阻塞执行的设备,所述设备包括:
处理器,用于使用传输的输入数据处理至少一个操作;
输入缓冲器,用于将输入数据传输到处理器,并存储处理所述至少一个操作的结果,
其中,处理器包括用于执行所述至少一个操作的至少一个功能单元FU,
其中,所述至少一个FU使用规则延时操作和不规则延时操作中的至少一个来选择性地处理传输的输入数据。
2.如权利要求1所述的设备,其中,所述至少一个FU确定是使用规则延时操作还是不规则延时操作来处理输入数据。
3.如权利要求2所述的设备,其中,当确定使用不规则延时操作来处理输入数据时,所述至少一个FU验证从针对输入数据的先前操作获得的结果值是否被存储在输入缓冲器中。
4.如权利要求3所述的设备,其中,当从先前操作获得的结果值被存储在输入缓冲器中时,所述至少一个FU在由调度定义的预期延时到期之后输出该从先前操作获得的结果值。
5.如权利要求3所述的设备,其中,当在输入缓冲器中不存在从先前操作获得的结果值时,所述至少一个FU执行操作,并确定在操作的执行期间是否发生额外延时。
6.如权利要求5所述的设备,其中,当在操作的执行期间发生额外延时时,所述至少一个FU输出虚值并将与输出的虚值相应的状态信息记录在输入缓冲器中。
7.如权利要求6所述的设备,其中,在终止执行发生额外延时的操作之后,所述至少一个FU将从所述操作获得的结果值记录在输入缓冲器中。
8.如权利要求5所述的设备,其中,当在操作的执行期间没有发生额外延时时,所述至少一个FU输出从所述操作的执行获得的结果值,并将输出的结果值记录在输入缓冲器中。
9.如权利要求5所述的设备,其中:
输入缓冲器包括状态寄存器和结果缓冲器,
状态寄存器存储针对输入数据的状态,
结果缓冲器存储从先前操作获得的结果值。
10.如权利要求9所述的设备,其中,状态寄存器存储与针对输入数据的操作是否将被再次执行相关联的状态。
11.一种静态调度处理器,包括:
操作处理单元,用于接收从输入缓冲器传输的输入数据,并使用多个功能单元FU执行操作;
确定器,用于确定在针对输入数据的操作期间是否在所述多个FU的至少一个中发生额外延时;
存储处理单元,用于在发生额外延时输出虚值,并且将虚值存储在输入缓冲器中。
12.如权利要求11的处理器,其中,操作处理单元验证从针对传输的输入数据的先前操作获得的结果值是否被存储在输入缓冲器中,当从先前操作获得的结果值被存储在输入缓冲器中时,在由调度定义的预期延时到期之后输出所述从先前操作获得的结果值。
13.如权利要求11所述的处理器,其中,操作处理单元验证从针对传输的输入数据的先前操作获得的结果值是否被存储在输入缓冲器中,当在输入缓冲器中不存在从先前操作获得的结果值时,执行输入数据的操作。
14.一种用于静态调度处理器的无阻塞执行的方法,所述方法包括:
将输入数据传输到处理器;
通过处理器使用传输的输入数据处理至少一个操作;
存储处理所述至少一个操作的结果,
其中,所述处理包括使用规则延时操作和不规则延时操作中的至少一个来处理传输的输入数据。
15.如权利要求14所述的方法,其中,所述处理包括:确定是使用规则延时操作还是不规则延时操作来处理输入数据。
16.如权利要求15所述的方法,其中,所述处理包括:当确定使用不规则延时操作处理输入数据时,验证从针对输入数据的先前操作获得的结果值是否被存储在输入缓冲器中。
17.如权利要求16所述的方法,其中,所述处理包括:当从先前操作获得的结果值被存储在输入缓冲器中时,在由调度定义的预期延时到期之后输出所述从先前操作获得的结果值。
18.如权利要求16所述的方法,其中,所述处理包括:当在输入缓冲器中不存在从先前操作获得的结果值时,执行操作并确定在所述操作的执行期间是否发生额外延时。
19.如权利要求18所述的方法,其中,所述处理包括:当在所述操作的执行期间发生额外延时时,输出虚值并将与输出的虚值相应的状态信息记录在输入缓冲器中。
20.如权利要求19所述的方法,其中,所述处理包括:在终止执行发生额外延时的操作之后,将从所述操作获得的最终结果值记录在输入缓冲器中。
21.一种用于在静态调度处理器中执行多个操作的方法,所述方法包括:
基于多个操作中的第一操作的执行时间在第一操作的执行期间选择性地输出虚值;
执行所述多个操作中的第二操作;
通过再次执行第一操作来获得基于第一操作的正常完成的结果。
22.如权利要求21所述的方法,其中,如果第一操作的执行时间超过预定值,则输出虚值。
23.如权利要求22所述的方法,其中,预定值包括第一操作的处理器执行周期计时。
CN201410079697.6A 2013-03-11 2014-03-06 用于静态调度处理器的无阻塞执行的设备和方法 Active CN104050034B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0025509 2013-03-11
KR1020130025509A KR102028729B1 (ko) 2013-03-11 2013-03-11 정적 스케쥴 프로세서의 논블로킹 실행 장치 및 방법

Publications (2)

Publication Number Publication Date
CN104050034A true CN104050034A (zh) 2014-09-17
CN104050034B CN104050034B (zh) 2019-11-01

Family

ID=50389194

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410079697.6A Active CN104050034B (zh) 2013-03-11 2014-03-06 用于静态调度处理器的无阻塞执行的设备和方法

Country Status (5)

Country Link
US (1) US9405546B2 (zh)
EP (1) EP2778906A1 (zh)
JP (1) JP6474196B2 (zh)
KR (1) KR102028729B1 (zh)
CN (1) CN104050034B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102101834B1 (ko) 2013-10-08 2020-04-17 삼성전자 주식회사 영상 처리 장치 및 방법
JP7218594B2 (ja) * 2019-01-31 2023-02-07 オムロン株式会社 処理装置、ドライバモニタリングシステム、処理方法、及びプログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1026582A2 (en) * 1999-02-04 2000-08-09 Sun Microsystems, Inc. Handling of load errors in computer processors
CN101777027A (zh) * 2010-01-21 2010-07-14 北京龙芯中科技术服务中心有限公司 基于动静态混合调度策略的访存操作管理装置及其方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010042187A1 (en) * 1998-12-03 2001-11-15 Marc Tremblay Variable issue-width vliw processor
US20060095715A1 (en) * 2002-12-30 2006-05-04 Koninklijke Philips Electronics N.V. Very long instruction word processor
US20090150890A1 (en) * 2007-12-10 2009-06-11 Yourst Matt T Strand-based computing hardware and dynamically optimizing strandware for a high performance microprocessor system
US8719553B2 (en) 2008-01-31 2014-05-06 Arm Norway As Method for re-circulating a fragment through a rendering pipeline
GB2494731B (en) * 2011-09-06 2013-11-20 Nds Ltd Preventing data extraction by sidechannel attack

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1026582A2 (en) * 1999-02-04 2000-08-09 Sun Microsystems, Inc. Handling of load errors in computer processors
JP2000235491A (ja) * 1999-02-04 2000-08-29 Sun Microsyst Inc コンピュータ・プロセッサにおけるロード・エラーの処理
CN101777027A (zh) * 2010-01-21 2010-07-14 北京龙芯中科技术服务中心有限公司 基于动静态混合调度策略的访存操作管理装置及其方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANDREW HILTON等: "iCFP:Tolerating All-Level Cache Misses in In-Order Processors", 《IEEE INTERNATIONAL SYMPOSIUM ON HIGH PERFORMANCE COMPUTER ARCHITECTURE》 *
TOSHINORI SATO: "A Simple Mechanism for Collapsing Instructions under Timing Speculation", 《IEICE TRANSACTION ON ELECTRONICS》 *

Also Published As

Publication number Publication date
EP2778906A1 (en) 2014-09-17
KR102028729B1 (ko) 2019-11-04
KR20140111416A (ko) 2014-09-19
JP6474196B2 (ja) 2019-02-27
US9405546B2 (en) 2016-08-02
US20140258690A1 (en) 2014-09-11
JP2014174994A (ja) 2014-09-22
CN104050034B (zh) 2019-11-01

Similar Documents

Publication Publication Date Title
US10510007B2 (en) Systems and methods for generating performance prediction model and estimating execution time for applications
CN105164639B (zh) 控制由计算系统执行的任务
CN106257411B (zh) 单指令多线程计算系统及其方法
CN109885857B (zh) 指令发射控制方法、指令执行验证方法、系统及存储介质
US20210081248A1 (en) Task Scheduling
US11288047B2 (en) Heterogenous computer system optimization
KR20180137521A (ko) 벡터 연산들 수행시의 어드레스 충돌 관리 장치 및 방법
US11507386B2 (en) Booting tiles of processing units
CN109445797A (zh) 处理任务执行方法及装置
US20150127926A1 (en) Instruction scheduling approach to improve processor performance
US9495169B2 (en) Predicate trace compression
CN104050034A (zh) 用于静态调度处理器的无阻塞执行的设备和方法
US20230119126A1 (en) Processing sequential inputs using neural network accelerators
US20080098403A1 (en) Data flow execution of methods in sequential programs
US20160274873A1 (en) Computer-implemented method for computer-aided generation of an executable control program, and also computer-implemented method for computer-aided translation of a graphical model describing the functionality of a control program
CN107769987B (zh) 一种报文转发性能评估方法和装置
US11144238B1 (en) Background processing during remote memory access
US11875153B1 (en) Executing concurrent threads on a reconfigurable processing grid
US20240160448A1 (en) Mixed scalar and vector operations in multi-threaded computing
US9870340B2 (en) Multithreading in vector processors
JP6473023B2 (ja) 性能評価モジュール及びこれを組み込んだ半導体集積回路
US20220391216A1 (en) Graphics processing
US11403108B2 (en) Exception handling
US9772825B2 (en) Program structure-based blocking
Marantos Design Methodologies and Tools for Energy-aware IoT-based Applications

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