CN114281413A - 流水线冲突处理方法、数据处理装置、电子设备和介质 - Google Patents
流水线冲突处理方法、数据处理装置、电子设备和介质 Download PDFInfo
- Publication number
- CN114281413A CN114281413A CN202111627929.3A CN202111627929A CN114281413A CN 114281413 A CN114281413 A CN 114281413A CN 202111627929 A CN202111627929 A CN 202111627929A CN 114281413 A CN114281413 A CN 114281413A
- Authority
- CN
- China
- Prior art keywords
- conflict
- request
- pipeline
- time
- flag
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
一种流水线冲突处理方法、数据处理装置、电子设备和非瞬时可读存储介质。一种流水线包括流水线处理单元和请求队列,流水线处理单元和请求队列通信连接。该流水线冲突处理方法包括:响应于在流水线处理单元中的目标请求与在先请求存在冲突,将目标请求放入请求队列,为目标请求设置第一标志和第二标志;基于第一标志和第二标志,将目标请求从请求队列取出以用于后续处理,该第一标志基于冲突是否被释放,该第二标志基于冲突的时间系数。该流水线冲突处理方法通过设置第一标志和第二标志,可以有效减少请求队列中请求被错误唤醒的次数,从而有效提高流水线的吞吐率,进而提高处理器或高速缓存等部件的性能。
Description
技术领域
本公开的实施例涉及一种流水线冲突处理方法、数据处理装置、电子设备和非瞬时可读存储介质。
背景技术
为了提高中央处理器(CPU)核的性能,CPU核可以使用流水线的方式,也就是一条指令从被提取、解码、执行、结果写入的整个过程被分为多个流水阶段,一个时钟一个指令只能在某一个流水阶段。而CPU核则可以有多条指令运行在不同的流水阶段。每一个流水阶段可以包括多个流水级,每个流水级执行有限的操作,以进一步提高CPU核的性能。
发明内容
本公开至少一个实施例提供一种流水线冲突处理方法,流水线包括流水线处理单元和请求队列,所述流水线处理单元和所述请求队列通信连接。所述方法包括:响应于在所述流水线处理单元中的目标请求与在先请求存在冲突,将所述目标请求放入所述请求队列,为所述目标请求设置第一标志和第二标志;基于所述第一标志和所述第二标志,将所述目标请求从所述请求队列取出以用于后续处理。所述第一标志基于所述冲突是否被释放,所述第二标志基于所述冲突的时间系数。
例如,在本公开至少一个实施例中,所述流水线还包括仲裁器,所述仲裁器与所述流水线处理单元和所述请求队列通信连接。基于所述第一标志和所述第二标志,将所述目标请求从所述请求队列取出以用于后续处理,包括:基于所述第一标志和所述第二标志,将所述目标请求从所述请求队列取出并送入所述仲裁器,通过所述仲裁器对包括所述目标请求在内的一个或多个待处理访问请求进行选择。
例如,本公开至少一个实施例的流水线冲突处理方法还包括:响应于在所述流水线处理单元中的目标请求与在先请求存在冲突,获取所述冲突的冲突原因;基于所述冲突原因,设置所述冲突的时间系数。
例如,在本公开至少一个实施例中,所述冲突的时间系数包括冲突结束预测时间。
例如,在本公开至少一个实施例中,基于所述冲突原因,设置所述冲突的时间系数,包括:基于所述冲突原因以及冲突发生时间,获取所述冲突的冲突结束预测时间。
例如,本公开至少一个实施例的流水线冲突处理方法还包括:响应于所述冲突被释放,使能所述第一标志;响应于当前时间大于所述冲突的时间系数,使能所述第二标志。基于所述第一标志和所述第二标志,将所述目标请求从所述请求队列取出以用于后续处理,包括:响应于所述第一标志和所述第二标志都处于使能状态,将所述目标请求从所述请求队列取出以用于后续处理。
例如,在本公开至少一个实施例中,所述冲突被释放,包括:所述在先请求被所述流水线处理单元处理完毕;或者所述在先请求尚未被所述流水线处理单元处理完毕,设置所述冲突被释放。
例如,在本公开至少一个实施例中,基于所述冲突原因,设置所述冲突的时间系数,包括基于所述冲突原因、冲突发生时间和提前唤醒时间来设置所述冲突的时间系数。
例如,在本公开至少一个实施例中,所述提前唤醒时间是基于冲突检测时间来设置的,所述冲突检测时间是预先定义的。
例如,在本公开至少一个实施例中,基于所述冲突原因,设置所述冲突的时间系数,包括基于所述冲突原因、冲突发生时间和延迟唤醒时间来设置所述冲突的时间系数。
例如,在本公开至少一个实施例中,所述延迟唤醒时间是基于在预定时间段内,所述流水线处理单元中存在的冲突的统计数据来确定。
例如,在本公开至少一个实施例中,所述统计数据包括所述存在的冲突的总数量。
本公开至少一个实施例还提供一种数据处理装置,包括:冲突处理装置、流水线处理单元和请求队列,所述数据处理装置与所述请求队列和所述流水线处理单元通信连接。所述冲突处理装置包括设置单元和取出单元。所述设置单元配置为响应于在所述流水线处理单元中的目标请求与在先请求存在冲突,将所述目标请求放入所述请求队列,为所述目标请求设置第一标志和第二标志。所述取出单元配置为基于所述第一标志和所述第二标志,将所述目标请求从所述请求队列取出以用于后续处理,所述第一标志基于所述冲突是否被释放,所述第二标志基于所述冲突的时间系数。
例如,在本公开至少一个实施例中,数据处理装置还包括仲裁器,所述仲裁器与所述冲突处理装置、所述流水线处理单元和所述请求队列通信连接。所述取出单元包括传送单元,所述传送单元被配置为:基于所述第一标志和所述第二标志,将所述目标请求从所述请求队列取出并送入所述仲裁器。所述仲裁器被配置为对包括所述目标请求在内的一个或多个待处理访问请求进行选择。
例如,本公开至少一个实施例还提供一种数据处理装置,包括处理器和存储器。存储器包括一个或多个计算机程序模块。所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,用于执行上述任一实施例所述流水线冲突处理方法的指令。
例如,本公开至少一个实施例还提供一种电子设备,包括上述任一实施例所述的数据处理装置以及流水线。流水线与所述数据处理装置通信连接。
例如,本公开至少一个实施例还提供一种非瞬时可读存储介质,其上存储有计算机指令。所述计算机指令被处理器执行时执行上述任一实施例所述的流水线冲突处理方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1为本公开至少一个实施例提供的一种微处理器体系结构的示意图;
图2为本公开至少一个实施例提供的一种流水线的操作示意图;
图3为本公开至少一个实施例提供的请求队列中请求被错误唤醒的示意图;
图4为本公开至少一个实施例提供的一种流水线冲突处理方法的流程图;
图5为本公开至少一个实施例提供的一种流水线的结构示意图;
图6为本公开至少一个实施例提供的另一种流水线冲突处理方法的流程图;
图7为本公开至少一个实施例提供的一种流水线冲突处理方法的操作示意图;
图8为本公开至少一个实施例提供的一种请求唤醒方式的示意图;
图9为本公开至少一个实施例提供的另一种请求唤醒方式的示意图;
图10为本公开至少一个实施例提供的一种数据处理装置的结构示意图;
图11为本公开至少一个实施例提供的另一种数据处理装置的结构示意图;
图12为本公开至少一个实施例提供的另一种数据处理装置的示意框图;
图13为本公开至少一个实施例提供的又一种数据处理装置的示意框图;
图14为本公开至少一个实施例提供的一种电子设备的示意框图;以及
图15为本公开至少一个实施例提供的一种非瞬时可读存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”、“一”或者“该”等类似词语也不表示数量限制,而是表示存在至少一个。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
图1为本公开至少一个实施例提供的一种微处理器体系结构的示意图。
如图1所示,在本公开至少一个实施例中,一种示例性的微处理器体系结构包括五阶段流水线,其中,每条指令可在每个时钟周期发出并在固定的时间例如5个时钟周期内执行。每条指令的执行分成5步:取指(IF)阶段1001,读寄存器(RD)阶段1002,算术/逻辑单元(ALU)阶段1003,存储(MEM)阶段1004和写回(WB)阶段1005。在IF阶段1001中,从指令高速缓存器中取出指定指令。所取指令的一部分用于指定可用于执行指令的源寄存器。在RD阶段1002中,系统将指定源寄存器的内容取出。所取得的值可用在ALU阶段1003中执行算术或逻辑运算。在MEM阶段1004中,执行指令可读/写数据高速缓存器中的存储器。最后,在WB阶段1005中,通过执行指令而获得的值可写回到某个寄存器中。
通常,处理器处理数据速度很快,但是从主存储器中读取数据的时间较长,因此目前的高性能处理器一般会采用多级高速缓存(cache)用于缓存数据。高速缓存也可以使用流水线的方式,被连续读取、写入和更新。但是在进行连续的操作时,可能会对有相关性的结构同时进行操作,因此需要进行冲突检测。例如,当连续两个指令对具有同一个索引的高速缓存行(cache line)进行操作时,因为存在冲突,需要停止第二个指令的操作,重新仲裁,然后进入流水线。
需要说明的是,在本公开的实施例中,流水线中的冲突可以是指由于某些原因的存在,使得流水线中下一条指令不能在指定的时钟周期执行。例如,流水线中的冲突可以分为结构冲突、数据冲突、控制冲突三大种类。例如,结构冲突通常是当指令在重叠执行过程中,不同指令争用同一功能部件产生资源冲突时产生的。例如,数据冲突通常是指令在流水线中重叠执行时,当后续指令需要用到前面的指令产生的结果时产生的。例如,控制冲突通常是当流水线遇到转移指令时产生的。又例如,解决上述流水线冲突的基本方法是暂停部分指令的执行。
图2为本公开至少一个实施例提供的一种流水线的操作示意图。
例如,在本公开至少一个实施例中,如图2所示,一种流水线20包括请求队列210、仲裁器220和流水线处理单元230。例如来自上层的高速缓存或者处理器的请求被缓存到请求队列210中,请求队列210中的请求如果满足预设条件(例如,资源足够等)就可以进入仲裁器220,仲裁器220具有仲裁挑选逻辑,即按照一定规则挑选请求。挑选出请求后,将该请求放入流水线处理单元230中。
需要说明的是,在本公开的实施例中,对上述请求从请求队列210到仲裁器220的所需的预设条件不作限制,可以根据实际需要来设置。还需要说明的是,在本公开的实施例中对仲裁器220的仲裁挑选逻辑不作限制,例如,在一个示例中,仲裁挑选逻辑可以被设置为最先进入仲裁器的请求最先被取出,当然也可以是其他挑选逻辑,可以根据实际需要来设置。
因为在流水线处理单元230中的请求可能是连续的,因此可能存在连续的请求访问同一个结构的情况,比如具有同一个索引的结构,如果该结构不能连续地处理请求,那么流水线处理单元230中就会存在冲突。
例如,在一个示例中,如图2所示,在流水线处理单元203的第三个周期(即周期2),进行冲突检测。如果流水线处理单元230中发生了冲突,则记录冲突的原因,并将相应的请求放回请求队列210。在冲突被释放之后,被放回的请求重新被仲裁器220选择,进入流水线处理单元230。然而,在实践中可能会存在请求被错误唤醒的情况。
图3为本公开至少一个实施例中提供的请求被错误唤醒的示意图。
例如,如图3所示,在本公开至少一个实施例中,流水线处理单元30中包括依次排序的请求1、请求2、请求3和请求4。例如,在图3所示的示例中,请求4表示按时间顺序最先进入流水线处理单元30的请求,然后依次是请求3和请求2,请求1是按时间顺序最后进入流水线处理单元30的请求。需要说明的是,流水线处理单元30可以包括更多或更少个请求,本公开的实施例对此不作限制。
例如,如果检测到请求4与请求3之间存在某一结构冲突(例如,占用相同的资源),比如存在结构冲突原因为0,那么请求3被放回请求队列,并将冲突原因记录为CheckDection0。如果检测到请求2和请求1也存在相同原因的冲突,那么请求1被放回请求队列,并将冲突原因记录为CheckDetection0。
需要说明的是,在本公开至少一个实施例中,结构冲突类的冲突原因可以包括地址查找冲突、替换策略更新冲突、请求地址和替换地址冲突等,本公开的实施例对冲突原因不作限制,可以根据实际情况设置。
例如,在请求4结束时,会释放对应的冲突原因,即
CheckDetection0,在这种情况下,先前被放回请求队列的请求1和请求3都会被唤醒。如果请求1重新进入流水线处理单元30,仍有可能和请求2冲突。因此,对于请求1的唤醒属于错误唤醒。
针对上述流水线所面临的问题,本公开至少一个实施例提供了一种流水线冲突处理方法。流水线包括流水线处理单元和请求队列,流水线处理单元和请求队列通信连接,该流水线冲突处理方法包括:响应于在流水线处理单元中的目标请求与在先请求存在冲突,将目标请求放入请求队列,为目标请求设置第一标志和第二标志;基于第一标志和第二标志,将目标请求从请求队列取出以用于后续处理。第一标志基于该冲突是否被释放,第二标志基于该冲突的时间系数。
相应地,本公开至少一个实施例还提供了一种对应于上述流水线冲突处理方法的数据处理装置、电子设备和非瞬时可读存储介质。
本公开至少一个实施例提供的流水线冲突处理方法,通过设置第一标志和第二标志,可以有效减少请求队列中请求被错误唤醒的次数,从而有效提高流水线的吞吐率,进而提高处理器或高速缓存等部件的性能。
需要说明的是,本公开至少一个实施例提供的流水线冲突处理方法不仅可以应用于处理器中的流水线、高速缓存中的流水线,也可以应用于其他类型或其他结构的流水线,本公开的实施例对此不作具体限制。
下面通过几个示例或实施例对根据本公开的至少一个实施例提供的流水线冲突处理方法进行非限制性的说明,如下面所描述的,在不相互抵触的情况下这些具体示例或实施例中不同特征可以相互组合,从而得到新的示例或实施例,这些新的示例或实施例也都属于本公开保护的范围。
图4为本公开至少一个实施例提供的一种流水线冲突处理方法的流程图,以及图5为本公开至少一个实施例提供的一种流水线的结构示意图。
例如,本公开至少一个实施例提供了一种流水线冲突处理方法40,如图4所示。例如,该流水线冲突处理方法40可以应用于各种类型的流水线。例如,在本公开至少一个实施例中,该流水线冲突处理方法40可以应用于如图5所示的流水线50。例如,如图5所示,流水线50包括请求队列510和流水线处理单元520,请求队列510和流水线处理单元520之间通信连接。需要说明的是,图5所示的流水线结构仅仅是示例性的,在本公开的实施例中,流水线结构还可以包括更多或更少的部件,本公开的实施例对此不作具体限制,可以根据实际需求来设置。例如,本公开至少一个实施例,该流水线冲突处理方法40还可以应用于如图2所示的流水线20。
例如,在本公开至少一个实施例中,该流水线冲突处理方法40可以包括以下操作S401-S402:
步骤S401:响应于在流水线处理单元中的目标请求与在先请求存在冲突,将目标请求放入请求队列,为目标请求设置第一标志和第二标志。
步骤S402:基于第一标志和第二标志,将目标请求从请求队列取出以用于后续处理,第一标志基于冲突是否被释放,第二标志基于冲突的时间系数。
本公开至少一个实施例提供的流水线冲突处理方法40,通过设置第一标志和第二标志,可以有效减少请求队列中请求被错误唤醒的次数,从而有效提高流水线的吞吐率,进而提高处理器或高速缓存等部件的性能。
需要说明的是,在本公开至少一个实施例中,步骤S401-步骤S402可以顺序执行,可以并行执行,也可以按调整后的其他次序执行,本公开的实施例对各个步骤的执行顺序不作限制,可以根据实际情况调整。
还需要说明的是,在本公开至少一个实施例中,流水线冲突处理方法40可以选择地执行步骤S401-步骤S402中的部分步骤,也可以执行除了步骤S401-步骤S402以外的一些附加步骤,本公开的实施例对此不作限制。
例如,在本公开至少一个实施例中,对于步骤S401,当检测到流水线处理单元中的目标请求与在先请求存在冲突时,将目标请求放入请求队列中,为目标请求设置第一标志和第二标志。例如,在本公开至少一个实施例中,目标请求可以是流水线处理单元中任意一个请求,在先请求可以是指相对于目标请求,流水线处理单元会更早进行处理的请求。例如,在一个示例中,如图5所示,流水线处理单元520中包括依次排列的请求0、请求1、请求2、请求3等。例如,在本公开至少一个实施例中,如图5所示,假设流水线处理单元520中请求1与请求2存在冲突,当检测到请求1与请求2冲突时,由于流水线处理单元520优先处理在先请求(即请求2),那么请求1被放入请求队列510中。
例如,在本公开至少一个实施例中,为放入请求队列510中的请求1设置唤醒标志和时间标志。例如,唤醒标志基于所检测到的冲突是否被释放或解决,时间标志基于所检测到的冲突的时间系数。
需要说明的是,在本公开的实施例中,唤醒标志可以是本公开的实施例中提及的第一标志的具体实施方式,时间标志可以是本公开的实施例中提及的第二标志的具体实施方式。例如,在本公开至少一个实施例中,在相应的冲突被释放或者被解决时,唤醒标志被使能,即唤醒标志处于使能状态或者有效状态。例如,在本公开至少一个实施例中,在当前时间大于冲突的时间系数时,时间标志被使能,即时间标志处于使能状态或者有效状态。需要说明的是,第一标志和第二标志也可以包括其他参数,本公开的实施例对此不作限制,可以根据实际需求来设置。
例如,在本公开至少一个实施例中,唤醒标志和时间标志可以在使能状态/有效状态时被设置为“1”,在非使能状态/无效状态时被设置为“0”,当然也可以相反设置。还需要说明的是,本公开的实施例对唤醒标志和时间标志的位数不作限制,可以是一位数,也可以是更多位数,根据实际需求来设置。
例如,在本公开至少一个实施例中,如图2所示,流水线20包括请求队列210、仲裁器220和流水线处理单元230,仲裁器220与流水线处理单元230和请求队列210通信连接。例如,对于上述步骤S402,基于第一标志和第二标志,将目标请求从请求队列取出以用于后续处理,包括:基于第一标志和第二标志,将目标请求从请求队列取出并送入仲裁器,通过仲裁器对包括目标请求在内的一个或多个待处理访问请求进行选择。
图6为本公开至少一个实施例提供的另一种流水线冲突处理方法的流程图。
例如,本公开至少一个实施例中,如图6所示,流水线冲突处理方法40除了上述步骤S401和S402以外,还可以包括步骤S403和S404,如图6所示。
步骤S403:响应于在流水线处理单元中的目标请求与在先请求存在冲突,获取冲突的冲突原因。
步骤S404:基于冲突原因,设置冲突的时间系数。
例如,在本公开至少一个实施例中,对于步骤403,响应于目标请求与在先请求存在冲突,获取冲突的冲突原因,并记录冲突原因。例如,在本公开的实施例中,不同的冲突原因可以对应于不同的结构冲突。例如,在本公开至少一个实施例中,当冲突原因是地址查找冲突时,记录冲突原因为CheckDection0,当冲突原因是替换策略更新冲突时,记录冲突原因为CheckDection1,当冲突原因是请求地址和替换地址冲突时,记录冲突原因为CheckDection2,本公开的实施例对此不作限制,可以根据实际情况设置。
例如,在本公开至少一个实施例中,对于步骤404,基于所记录的冲突原因,设置冲突的时间系数。例如,在本公开至少一个实施例中,冲突的时间系数可以是冲突结束预测时间。需要说明的是,冲突的时间系数也可以是其他与冲突相关的参数,本公开的实施例对此不作限制,可以根据实际需求来设置。
例如,在本公开至少一个实施例中,对于步骤S404,基于冲突原因,设置冲突的时间系数,包括:基于冲突原因以及冲突发生时间,获取冲突的冲突结束预测时间。
例如,在本公开至少一个实施例中,冲突发生时间是指检测到目标请求与在先请求存在冲突的时间,冲突结束预测时间是指预测检测到的冲突被释放的时间。需要说明的是,在流水线处理单元中进行冲突检测的时间是预先定义的,本公开的实施例对此不作限制,可以根据实际需求来设置。
例如,在本公开至少一个实施例中,假设导致目标请求和在先请求之间存在冲突的冲突原因为地址查找冲突,即CheckDection0,例如根据经验或者根据设计需求等,这种冲突原因导致的冲突需要3个时钟周期才能释放,那么对应冲突的冲突结束预测时间则可以计算为冲突发生时间加上3个时钟周期。
例如,在本公开至少一个实施例中,在请求1进行流水线处理单元的第1个时钟周期检测到请求1和请求2存在由某种冲突原因(例如CheckDection0)导致的冲突,该冲突原因对应2个周期才能被释放,那么该冲突的冲突结束预测时间为第3个时钟周期。
需要说明的是,在设置冲突的冲突结束预测时间时,如果目标请求存在多个不同冲突原因导致的冲突,例如目标请求与多个在先请求存在冲突,各个冲突的冲突结束预测时间不相同,则只需要记录最长的冲突结束预测时间,这样可以保证最长的冲突结束预测时间对应的冲突被释放时,目标请求的其他冲突都已被释放。
还需要说明的是,在本公开的实施例中,当提及在第N个时钟周期检测冲突,或者在第N个时钟周期释放冲突等,可以是指相应的请求在进入流水线处理单元后的第N个时钟周期的上升沿检测冲突或者释放冲突等,也可以是指相应的请求在进入流水线处理单元后的第N个时钟周期的下降沿检测冲突或者释放冲突等,本公开的实施例对此不作限制,可以根据实际需求来设置。
例如,在本公开至少一个实施例中,流水线冲突处理方法40,除了上述步骤S401-S404以外,还可以包括步骤S405-S406。
步骤S405:响应于冲突被释放,使能第一标志。
步骤S406:响应于当前时间大于冲突的时间系数,使能第二标志。
例如,在本公开至少一个实施例中,响应于所检测到的冲突被释放,则使能唤醒标志。例如,在本公开至少一个实施例中,冲突被释放可以包括在先请求已经结束,即被流水线处理单元处理完毕的情况。例如,在本公开的实施例中,在先请求被处理完毕意味着在先请求不再占用导致冲突的资源,该资源可以处理新的请求。例如,在本公开至少一个实施例中,响应于当前时间大于冲突的时间系数,例如当前时间大于该冲突的冲突结束预测时间,则使能时间标志。
例如,在本公开至少一个实施例中,响应于唤醒标志和时间标志都处于使能状态或有效状态,则将目标请求从请求队列取出以用于后续处理。
例如,在本公开至少一个实施例中,在如图3所示的流水线处理单元30中,请求4和请求3之间存在某一结构冲突(例如由冲突原因CheckDection0导致的冲突),请求1和请求2之间存在同一种冲突(同样由冲突原因CheckDection0导致的冲突)。在检测到请求1和请求2之间存在冲突时,可以计算该冲突的冲突结束预测时间,例如预测在第6个时钟周期,请求2会结束,可以唤醒请求1。那么假设在第4个时钟周期,请求4结束,对应于CheckDection0的冲突被释放,唤醒请求1和请求3,请求1的唤醒标志被使能,但是当前时间(第4个时钟周期)还不大于冲突结束预测时间(第6个时钟周期),时间标志并不处于使能状态,因此请求1不会从请求队列取出。只有当第6个时钟周期到来,时间标志也被使能时,请求1才可以从请求队列取出,这样有效避免了请求1被错误唤醒。
因此,通过本公开至少一个实施例提供的流水线冲突处理方法40,可以有效减少请求队列中请求被错误唤醒的次数,从而提高流水线的吞吐率。
图7为本公开至少一个实施例提供的一种流水线冲突处理方法的操作示意图。
例如,在本公开的至少一个实施例中,如图7所示,待处理的请求在请求队列中等待,如果待处理的请求不与在先请求存在冲突,则可以直接进入仲裁器,被仲裁器挑选后进入流水线处理单元以用于后续处理。例如,如果在请求队列中等待的请求与在先请求存在冲突,则需要等待唤醒标志和时间标志两者都使能时,即对应的冲突被释放并且当前时间大于相应的冲突结束预测时间,才能进入仲裁器,被仲裁器挑选后进入流水线处理单元以用于后续处理。例如,如果请求在进入流水线处理单元后,被检测到与在先请求存在冲突,则该请求被放回请求队列中等待被唤醒,同时记录导致该冲突的冲突原因和与该冲突对应的冲突结束预测时间。图7所示的流水线冲突处理方法的操作示意图对应于本公开的实施例提供的流水线冲突处理方法40,在此不再赘述。
图8为本公开至少一个实施例提供的一种请求唤醒方式的示意图,图9为本公开至少一个实施例提供的另一种请求唤醒方式的示意图。
例如,本公开至少一个实施例中,提供了一种请求唤醒方式,如图8所示。
例如,本公开至少一个实施例中,冲突被释放可以是指与目标请求存在冲突的在先请求被流水线处理单元处理完毕。例如,如图8所示,在一个示例中,请求0与请求1存在冲突,当请求0在流水线处理单元中被处理完毕,即在请求0的周期7结束后,可以唤醒请求1,也就是将请求1的唤醒标志使能。因此,在图8所示的示例中,请求1最快进入流水线处理单元的时间在请求0的周期7结束后。请求1进入流水线处理单元后,经过两个时钟周期,即在请求1的周期2(第三个时钟周期)进行冲突检测,检测结果为不存在冲突。
例如,在本公开至少一个实施例中,冲突被释放可以是指与目标请求存在冲突的在先请求尚未被流水线处理单元处理完毕,设置冲突被释放。例如,如图9所示,在一个示例中,假设请求1在请求1进入流水线处理单元的固定时钟周期2(第3个时钟周期)进行冲突检测,而请求0占用与请求1相同的资源是从请求0的时钟周期3到时钟周期7。在图8所示的唤醒方案中,在请求0的周期7时,请求0释放资源,对请求1发出唤醒信号,请求1经过两个时钟周期之后,进行冲突检测,计算是否存在冲突。从请求0释放资源到请求1计算是否存在冲突的时间为两个时钟周期。因此可以提前唤醒请求1,提前使能请求1的唤醒标志。如图9所示,提前唤醒请求1的时间即为请求1从被仲裁后进入流水线处理单元到进行冲突检测的时间。
例如,在本公开至少一个实施例中,请求1进入流水线处理单元为请求1的周期0,进行冲突检测在请求1的周期2,时间间隔为2个时钟周期。而对于请求0,请求0在周期7时释放资源,7-2=5,因此请求0在周期5时,可以提前对请求1发出唤醒信号,“人为地”提前释放冲突。需要说明的是,提前释放冲突的时间与进行冲突检测时所在周期相关,与冲突原因无关。
例如,在图9所示的示例中,请求1最快进入流水线处理单元的时间在请求0的周期5结束后。请求1进入流水线处理单元后,经过两个时钟周期,即在请求1的周期2(第三个时钟周期)进行冲突检测,此时请求0已经结束,检测结果为不存在冲突。
需要说明的是,结合本公开至少一个实施例提供的流水线冲突处理方法40,决定目标请求是否可以从请求队列中取出的因素除了唤醒标志以外,还有时间标志。因此,在图9所示的提前唤醒方案中,冲突的时间系数在上述冲突结束预测时间的基础上需要被调整,以实现目标请求的提前唤醒。
例如,在本公开至少一个实施例中,对于步骤S404,基于冲突原因,设置冲突的时间系数,可以包括基于冲突原因、冲突发生时间和提前唤醒时间来设置冲突的时间系数。例如,在一个示例中,在如上所述通过冲突原因以及冲突发生时间,获取该冲突的冲突结束预测时间之后,在冲突结束预测时间的基础上减去提前唤醒时间,则计算得到时间系数。
例如,在本公开至少一个实施例中,提前唤醒时间是基于冲突检测时间来设置的,并且该冲突检测时间是预先定义的。例如,在一个示例中,冲突检测时间为目标请求进入流水线处理单元后的第二个时钟周期。需要说明的是,本公开的实施例对冲突检测时间不作限制,可以根据实际需求来设置。
例如,在一个示例中,通过以上描述的方法计算得到冲突结束预测时间为第6个时钟周期,设定的冲突检测时间为第2个时钟周期,那么在提前唤醒方案中,最终得到的时间系数为第4个时钟周期。即,只有当前时间大于第4个时钟周期时,相应的时间标志才会使能。
因此,通过本公开至少一个实施例提供的流水线处理方法40,可以提前唤醒存在冲突的请求,进一步增加了流水线的吞吐率。
例如,在本公开至少一个实施例中,对于步骤S404,基于冲突原因,设置冲突的时间系数,可以包括基于冲突原因、冲突发生时间和延迟唤醒时间来设置冲突的时间系数。例如,在一个示例中,在如上所述通过冲突原因以及冲突发生时间,获取该冲突的冲突结束预测时间之后,在冲突结束预测时间的基础上加上延迟唤醒时间,则计算得到时间系数。
例如,在本公开至少一个实施例中,延迟唤醒时间是基于在预定时间段内,流水线处理单元中存在的冲突的统计数据来确定。需要说明的是,预定时间段可以根据实际需求来设置,本公开的实施例对此不作限制。
例如,在本公开至少一个实施例中,在预定时间段内流水线处理单元中存在的冲突的统计数据可以包括预定时间段内流水线处理单元中存在的冲突的总数量。需要说明的是,冲突的统计数据还可以包括其他与冲突相关的参数,本公开的实施例对此不作限制,可以根据实际需求来设置。
例如,在本公开至少一个实施例中,当检测到的冲突总数量大于某一阈值时,可以设置延迟唤醒时间。例如,在一个示例中,当在预定时间段(例如1分钟内),检测到流水线处理单元中存在5个冲突时,可以设置延迟唤醒时间为2个时钟周期。例如,在一个示例中,通过以上描述的方法计算得到冲突结束预测时间为第3个时钟周期,在设置的延迟唤醒时间为2个时钟周期时,最终得到的时间系数为第5个时钟周期。即,只有当前时间大于第5个时钟周期时,相应的时间标志才会使能。例如,通过设置延迟唤醒时间,可以根据流水线的实际情况来调整时间系数,从而提供流水线的稳定性。
因此,本公开至少一个实施例提供的流水线冲突处理方法,通过设置唤醒标志和时间标志,可以有效减少请求被错误唤醒的次数。此外,通过增加提前唤醒机制,在在先请求尚未处理完毕时,提前发送唤醒信号,有效增加流水线的吞吐率。
图10为本公开至少一个实施例提供的一种数据处理装置的结构示意图,图11为本公开至少一个实施例提供的另一种数据处理装置的结构示意图。
例如,本公开至少一个实施例提供了一种数据处理装置10,如图10所示。该数据处理装置10包括冲突处理装置110、流水线处理单元120和请求队列130,该冲突处理装置110、流水线处理单元120和请求队列130之间彼此通信连接。例如,该冲突处理装置110包括设置单元和取出单元。
例如,设置单元被配置为响应于在流水线处理单元中的目标请求与在先请求存在冲突,将目标请求放入请求队列,为目标请求设置第一标志和第二标志。例如,设置单元可以实现步骤S401,其具体实现方法可以参考步骤S401的相关描述,在此不再赘述。
例如,取出单元被配置为基于第一标志和第二标志,将目标请求从请求队列取出以用于后续处理。第一标志基于冲突是否被释放,第二标志基于冲突的时间系数。例如,该取出单元可以实现步骤S402,其具体实现方法可以参考步骤S402的相关描述,在此不再赘述。
例如,上述设置单元和取出单元被配置执行的具体操作均可以参见上文中本公开的至少一个实施例提供的流水线冲突处理方法40的相关描述,在此不再赘述。
需要说明的是,设置单元和取出单元可以通过软件、硬件、固件或它们的任意组合实现,例如,设置单元和取出单元可以分别实现为设置电路和取出电路,本公开的实施例对它们的具体实施方式不作限制。
例如,在本公开至少一个实施例中,数据处理装置除了包括冲突处理装置、流水线处理单元和请求队列以外,还包括仲裁器。仲裁器与冲突处理装置、流水线处理单元和请求队列彼此之间通信连接。例如,在一个示例中,如图11所示,数据处理装置11包括冲突处理装置(图11中未示出)、流水线处理单元1103、请求队列1101和仲裁器1102,冲突处理装置中的取出单元还包括传送单元,该传送单元被配置为:基于第一标志和第二标志,将目标请求从请求队列取出并送入仲裁器。该仲裁器1102被配置为对包括目标请求在内的一个或多个待处理访问请求进行选择。
需要说明的是,图10和图11所示的数据处理装置10/11仅仅是示例性的,数据处理装置还可以包括更多或更少的部件,本公开的实施例对此不作限制。
例如,在本公开至少一个实施例中,冲突处理装置还包括原因获取单元和时间计算单元。例如,在一个示例中,时间计算单元可以为图11中示出时间计算单元1104。例如,原因获取单元被配置为响应于在流水线处理单元中的目标请求与在先请求存在冲突,获取冲突的冲突原因。例如,时间计算单元被配置为基于冲突原因,设置冲突的时间系数。例如,该原因获取单元可以实现步骤S403,其具体实现方法可以参考步骤S403的相关描述,在此不再赘述。例如,该时间计算单元可以实现步骤S404,其具体实现方法可以参考步骤S404的相关描述,在此不再赘述。
例如,在本公开至少一个实施例中,冲突的时间系数包括冲突结束预测时间。
例如,在本公开至少一个实施例中,时间计算单元可以包括结束时间单元,该结束时间单元被配置为基于冲突原因以及冲突发生时间,获取冲突的冲突结束预测时间。
例如,在本公开至少一个实施例中,时间计算单元可以包括提前时间单元,该提前时间单元被配置为基于冲突原因、冲突发生时间和提前唤醒时间来设置冲突的时间系数。例如,在本公开至少一个实施例中,提前唤醒时间是基于冲突检测时间来设置的,冲突检测时间是预先定义的。
例如,在本公开至少一个实施例中,时间计算单元可以包括延迟时间单元,该延迟时间单元被配置为包括基于冲突原因、冲突发生时间和延迟唤醒时间来设置冲突的时间系数。例如,在本公开至少一个实施例中,延迟唤醒时间是基于在预定时间段内,流水线处理单元中存在的冲突的统计数据来确定。例如,在一个示例中,冲突处理装置中可以包括冲突统计单元,该冲突统计单元被配置为获取基于在预定时间段内,流水线处理单元中存在的冲突的统计数据。例如,在一个示例中,冲突统计单元可以实现为图11中的冲突统计单元1105。例如,在本公开至少一个实施例中,统计数据包括存在的冲突的总数量。
例如,在本公开至少一个实施例中,在图11所示的数据处理装置11中,冲突统计单元1105与时间计算单元1104通信连接,时间计算单元1104可以基于冲突统计单元1105的统计数据,计算时间系数。例如,在一个示例中,可以在请求队列1101存储与请求对应的冲突原因和时间系数。
例如,本公开至少一个实施例,冲突处理装置还可以包括唤醒使能单元和时间使能单元。例如,唤醒使能单元被配置为响应于冲突被释放,使能第一标志。例如,时间使能单元被配置为响应于当前时间大于冲突的时间系数,使能第二标志。例如,取出单元中包括取出子单元,该取出子单元被配置为:响应于第一标志和第二标志都处于使能状态,将目标请求从请求队列取出以用于后续处理。
例如,在本公开至少一个实施例中,冲突被释放包括:在先请求被流水线处理单元处理完毕;或者在先请求尚未被流水线处理单元处理完毕,设置冲突被释放。
例如,在本公开的实施例中,上述传送单元、原因获取单元、时间计算单元、结束时间单元、提前时间单元、延迟时间单元、冲突统计单元、唤醒使能单元、时间使能单元、取出子单元被配置执行的具体操作均可以参见上文中本公开的至少一个实施例提供的流水线冲突处理方法40的相关描述,在此不再赘述。
需要说明的是,上述传送单元、原因获取单元、时间计算单元、结束时间单元、提前时间单元、延迟时间单元、冲突统计单元、唤醒使能单元、时间使能单元、取出子单元可以通过软件、硬件、固件或它们的任意组合实现,例如,上述传送单元、原因获取单元、时间计算单元、结束时间单元、提前时间单元、延迟时间单元、冲突统计单元、唤醒使能单元、时间使能单元、取出子单元可以分别实现为传送电路、原因获取电路、时间计算电路、结束时间电路、提前时间电路、延迟时间电路、冲突统计电路、唤醒使能电路、时间使能电路、取出子电路,本公开的实施例对它们的具体实施方式不作限制。
应当理解的是,本公开至少一个实施例提供的数据处理装置10/11可以实施前述流水线冲突处理方法40,也可以实现与前述流水线冲突处理方法40相似的技术效果,在此不作赘述。
需要注意的是,在本公开的实施例中,数据处理装置10/11可以包括更多或更少的电路或单元,并且各个电路或单元之间的连接关系不受限制,可以根据实际需求而定。各个电路的具体构成方式不受限制,可以根据电路原理由模拟器件构成,也可以由数字芯片构成,或者以其他适用的方式构成。
图12是本公开至少一个实施例提供的一种数据处理装置的示意框图。
例如,在本公开至少一个实施例中,如图12所示,数据处理装置12包括处理器1210和存储器1220。存储器1220包括一个或多个计算机程序模块1201。一个或多个计算机程序模块1201被存储在存储器1220中并被配置为由处理器1210执行,该一个或多个计算机程序模块1201包括用于执行本公开的至少一个实施例提供的流水线冲突处理方法40的指令,其被处理器1210执行时,可以执行本公开的至少一个实施例提供的流水线冲突处理方法40中的一个或多个步骤。存储器1220和处理器1210可以通过总线系统和/或其它形式的连接机构(未示出)互连。
例如,处理器1210可以是中央处理单元(CPU)、数字信号处理器(DSP)或者具有数据处理能力和/或程序执行能力的其它形式的处理单元,例如现场可编程门阵列(FPGA)等;例如,中央处理单元(CPU)可以为X86或ARM架构等。处理器1210可以为通用处理器或专用处理器,可以控制数据处理装置12中的其它组件以执行期望的功能。
例如,存储器1220可以包括一个或多个计算机程序产品的任意组合,计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓存等。非易失性存储器例如可以包括只读存储器(ROM)、硬盘、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、USB存储器、闪存等。在计算机可读存储介质上可以存储一个或多个计算机程序模块1201,处理器1210可以运行一个或多个计算机程序模块1201,以实现数据处理装置12的各种功能。在计算机可读存储介质中还可以存储各种应用程序和各种数据以及应用程序使用和/或产生的各种数据等。该数据处理装置12例如可以是片上系统(SOC)或者包括该SOC的计算机、电视、显示器等。该数据处理装置12的具体功能和技术效果可以参考上文中关于流水线冲突处理方法40的描述,此处不再赘述。
图13为本公开至少一个实施例提供的又一种数据处理装置300的示意框图。本公开实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图13示出的数据处理装置300仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
例如,如图13所示,在一些示例中,数据处理装置300包括处理装置(例如中央处理器、图形处理器等)301,其可以根据存储在只读存储器(ROM)302中的程序或者从存储装置308加载到随机访问存储器(RAM)303中的程序而执行各种适当的动作和处理。在RAM 303中,还存储有计算机系统操作所需的各种程序和数据。处理装置301、ROM 302以及RAM 303通过总线304被此相连。输入/输出(I/O)接口305也连接至总线304。
例如,以下部件可以连接至I/O接口305:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置306;包括诸如液晶显示器(LCD)、扬声器、振动器等的输出装置307;包括例如磁带、硬盘等的存储装置308;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信装置309。通信装置309可以允许数据处理装置300与其他设备进行无线或有线通信以交换数据,经由诸如因特网的网络执行通信处理。驱动器310也根据需要连接至I/O接口305。可拆卸介质311,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器310上,以便于从其上读出的计算机程序根据需要被安装入存储装置308。虽然图13示出了包括各种装置的数据处理装置300,但是应理解的是,并不要求实施或包括所有示出的装置。可以替代地实施或包括更多或更少的装置。
例如,该数据处理装置300还可以进一步包括外设接口(图中未示出)等。该外设接口可以为各种类型的接口,例如为USB接口、闪电(lighting)接口等。该通信装置309可以通过无线通信来与网络和其他设备进行通信,该网络例如为因特网、内部网和/或诸如蜂窝电话网络之类的无线网络、无线局域网(LAN)和/或城域网(MAN)。无线通信可以使用多种通信标准、协议和技术中的任何一种,包括但不局限于全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、宽带码分多址(W-CDMA)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi(例如基于IEEE 802.11a、IEEE 802.11b、IEEE 802.11g和/或IEEE 802.11n标准)、基于因特网协议的语音传输(VoIP)、Wi-MAX,用于电子邮件、即时消息传递和/或短消息服务(SMS)的协议,或任何其他合适的通信协议。
例如,数据处理装置300可以为手机、平板电脑、笔记本电脑、电子书、游戏机、电视机、数码相框、导航仪等任何设备,也可以为任意的数据处理装置及硬件的组合,本公开的实施例对此不作限制。
例如,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在非暂态计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置309从网络上被下载和安装,或者从存储装置308被安装,或者从ROM 302被安装。在该计算机程序被处理装置301执行时,执行本公开实施例所公开的流水线冲突处理方法40。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如HTTP(HyperText TransferProtocol,超文本传输协议)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”),广域网(“WAN”),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述数据处理装置300中所包含的;也可以是单独存在,而未装配入该数据处理装置300中。
本公开至少一个实施例还提供一种电子设备。图14是根据本公开至少一个实施例的一种电子设备140的示意框图。如图14所示,电子设备140可以包括图10-13中所示的任一数据处理装置;以及流水线,例如,流水线结构可以为本公开的实施例提供的图2所示的流水线20,图5所示的流水线50,也可以为其他类似或结构的流水线,本公开的实施例对此不作限制。该流水线与上述数据处理装置连接。应当理解的是,本公开实施例提供的电子设备140可以实施前述流水线冲突处理方法40,也可以实现与前述流水线冲突处理方法40相似的技术效果,在此不作赘述。
本公开至少一个实施例还提供一种非瞬时可读存储介质。图15是本公开至少一个实施例提供的一种非瞬时可读存储介质的示意框图。如图15所示,非瞬时可读存储介质150上存储有计算机指令111,该计算机指令111被处理器执行时执行如上所述的流水线冲突处理方法40中的一个或多个步骤。
例如,该非瞬时可读存储介质150可以是一个或多个计算机可读存储介质的任意组合,例如,一个计算机可读存储介质包含用于响应于在流水线处理单元中的目标请求与在先请求存在冲突,将目标请求放入请求队列,为目标请求设置第一标志和第二标志的计算机可读的程序代码,另一个计算机可读存储介质包含用于基于第一标志和第二标志,将目标请求从请求队列取出以用于后续处理的计算机可读的程序代码,第一标志基于冲突是否被释放,第二标志基于冲突的时间系数。当然,上述各个程序代码也可以存储在同一个计算机可读介质中,本公开的实施例对此不作限制。
例如,当该程序代码由计算机读取时,计算机可以执行该计算机存储介质中存储的程序代码,执行例如本公开任一个实施例提供的流水线冲突处理方法40。
例如,存储介质可以包括智能电话的存储卡、平板电脑的存储部件、个人计算机的硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM)、便携式紧致盘只读存储器(CD-ROM)、闪存、或者上述存储介质的任意组合,也可以为其他适用的存储介质。例如,该可读存储介质也可以为图12中的存储器1220,相关描述可以参考前述内容,此处不再赘述。
在本公开中,术语“多个”指两个或两个以上,除非另有明确的限定。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (17)
1.一种流水线冲突处理方法,其中,所述流水线包括流水线处理单元和请求队列,所述流水线处理单元和所述请求队列通信连接,所述方法包括:
响应于在所述流水线处理单元中的目标请求与在先请求存在冲突,将所述目标请求放入所述请求队列,为所述目标请求设置第一标志和第二标志;
基于所述第一标志和所述第二标志,将所述目标请求从所述请求队列取出以用于后续处理,
其中,所述第一标志基于所述冲突是否被释放,所述第二标志基于所述冲突的时间系数。
2.根据权利要求1所述的方法,其中,所述流水线还包括仲裁器,所述仲裁器与所述流水线处理单元和所述请求队列通信连接,
基于所述第一标志和所述第二标志,将所述目标请求从所述请求队列取出以用于后续处理,包括:
基于所述第一标志和所述第二标志,将所述目标请求从所述请求队列取出并送入所述仲裁器,通过所述仲裁器对包括所述目标请求在内的一个或多个待处理访问请求进行选择。
3.根据权利要求1所述的方法,还包括:
响应于在所述流水线处理单元中的目标请求与在先请求存在冲突,获取所述冲突的冲突原因;
基于所述冲突原因,设置所述冲突的时间系数。
4.根据权利要求3所述的方法,其中,所述冲突的时间系数包括冲突结束预测时间。
5.根据权利要求4所述的方法,其中,基于所述冲突原因,设置所述冲突的时间系数,包括:
基于所述冲突原因以及冲突发生时间,获取所述冲突的冲突结束预测时间。
6.根据权利要求1所述的方法,还包括:
响应于所述冲突被释放,使能所述第一标志;
响应于当前时间大于所述冲突的时间系数,使能所述第二标志,
其中,基于所述第一标志和所述第二标志,将所述目标请求从所述请求队列取出以用于后续处理,包括:
响应于所述第一标志和所述第二标志都处于使能状态,将所述目标请求从所述请求队列取出以用于后续处理。
7.根据权利要求6所述的方法,其中,所述冲突被释放,包括:
所述在先请求被所述流水线处理单元处理完毕;或者
所述在先请求尚未被所述流水线处理单元处理完毕,设置所述冲突被释放。
8.根据权利要求3所述的方法,其中,基于所述冲突原因,设置所述冲突的时间系数,包括
基于所述冲突原因、冲突发生时间和提前唤醒时间来设置所述冲突的时间系数。
9.根据权利要求8所述的方法,其中,所述提前唤醒时间是基于冲突检测时间来设置的,所述冲突检测时间是预先定义的。
10.根据权利要求3所述的方法,其中,基于所述冲突原因,设置所述冲突的时间系数,包括
基于所述冲突原因、冲突发生时间和延迟唤醒时间来设置所述冲突的时间系数。
11.根据权利要求10所述的方法,其中,所述延迟唤醒时间是基于在预定时间段内,所述流水线处理单元中存在的冲突的统计数据来确定。
12.根据权利要求11所述的方法,其中,所述统计数据包括所述存在的冲突的总数量。
13.一种数据处理装置,包括:冲突处理装置、流水线处理单元和请求队列,其中,所述冲突处理装置与所述请求队列和所述流水线处理单元通信连接,
所述冲突处理装置包括设置单元和取出单元,
所述设置单元配置为响应于在所述流水线处理单元中的目标请求与在先请求存在冲突,将所述目标请求放入所述请求队列,为所述目标请求设置第一标志和第二标志;
所述取出单元配置为基于所述第一标志和所述第二标志,将所述目标请求从所述请求队列取出以用于后续处理,
其中,所述第一标志基于所述冲突是否被释放,所述第二标志基于所述冲突的时间系数。
14.根据权利要求13所述的数据处理装置,还包括仲裁器,其中,所述仲裁器与所述冲突处理装置、所述流水线处理单元和所述请求队列通信连接,
所述取出单元包括传送单元,所述传送单元被配置为:
基于所述第一标志和所述第二标志,将所述目标请求从所述请求队列取出并送入所述仲裁器;
所述仲裁器被配置为对包括所述目标请求在内的一个或多个待处理访问请求进行选择。
15.一种数据处理装置,包括
处理器;
存储器,包括一个或多个计算机程序模块;
其中,所述一个或多个计算机程序模块被存储在所述存储器中并被配置为由所述处理器执行,用于执行如权利要求1-12中任一项所述流水线冲突处理方法的指令。
16.一种电子设备,包括
如权利要求13-15任一所述的数据处理装置;以及
流水线,与所述数据处理装置连接。
17.一种非瞬时可读存储介质,其上存储有计算机指令,其中,所述计算机指令被处理器执行时执行如权利要求1-12中任一项所述的流水线冲突处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111627929.3A CN114281413A (zh) | 2021-12-28 | 2021-12-28 | 流水线冲突处理方法、数据处理装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111627929.3A CN114281413A (zh) | 2021-12-28 | 2021-12-28 | 流水线冲突处理方法、数据处理装置、电子设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114281413A true CN114281413A (zh) | 2022-04-05 |
Family
ID=80877116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111627929.3A Pending CN114281413A (zh) | 2021-12-28 | 2021-12-28 | 流水线冲突处理方法、数据处理装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281413A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756444A (zh) * | 2023-06-14 | 2023-09-15 | 北京百度网讯科技有限公司 | 图像处理方法、装置、设备以及存储介质 |
-
2021
- 2021-12-28 CN CN202111627929.3A patent/CN114281413A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116756444A (zh) * | 2023-06-14 | 2023-09-15 | 北京百度网讯科技有限公司 | 图像处理方法、装置、设备以及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102074961B1 (ko) | 비대칭 실행 유닛들의 효율적인 스케줄링을 위한 방법 및 장치 | |
US9846581B2 (en) | Method and apparatus for asynchronous processor pipeline and bypass passing | |
US9477476B2 (en) | Fusing immediate value, write-based instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media | |
US9195466B2 (en) | Fusing conditional write instructions having opposite conditions in instruction processing circuits, and related processor systems, methods, and computer-readable media | |
EP2972787B1 (en) | Eliminating redundant synchronization barriers in instruction processing circuits, and related processor systems, methods, and computer-readable media | |
US10684859B2 (en) | Providing memory dependence prediction in block-atomic dataflow architectures | |
US20220283811A1 (en) | Loop buffering employing loop characteristic prediction in a processor for optimizing loop buffer performance | |
CN114356420A (zh) | 指令流水线的处理方法及装置、电子装置及存储介质 | |
CN107870780B (zh) | 数据处理装置和方法 | |
US20140047221A1 (en) | Fusing flag-producing and flag-consuming instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media | |
CN114281413A (zh) | 流水线冲突处理方法、数据处理装置、电子设备和介质 | |
CN110633433A (zh) | 一种页面缓存方法、装置、电子设备及存储介质 | |
EP4386554A1 (en) | Instruction distribution method and device for multithreaded processor, and storage medium | |
US20130290683A1 (en) | Eliminating Redundant Masking Operations Instruction Processing Circuits, And Related Processor Systems, Methods, And Computer-Readable Media | |
EP2856304B1 (en) | Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media | |
US20160077836A1 (en) | Predicting literal load values using a literal load prediction table, and related circuits, methods, and computer-readable media | |
EP3335111B1 (en) | Predicting memory instruction punts in a computer processor using a punt avoidance table (pat) | |
US11467844B2 (en) | Storing multiple instructions in a single reordering buffer entry | |
CN115185867A (zh) | 处理访问请求的方法 | |
EP3857356B1 (en) | Providing predictive instruction dispatch throttling to prevent resource overflows in out-of-order processor (oop)-based devices | |
US20140201505A1 (en) | Prediction-based thread selection in a multithreading processor | |
US20160291981A1 (en) | Removing invalid literal load values, and related circuits, methods, and computer-readable media | |
US20130326195A1 (en) | Preventing execution of parity-error-induced unpredictable instructions, and related processor systems, methods, and computer-readable media | |
CN115080121A (zh) | 指令处理方法、装置、电子设备及计算机可读存储介质 | |
CN116107927A (zh) | 数据处理装置、数据处理方法和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |