多核处理器中共享变量获取方法、装置及多核处理器与流程

文档序号:11948744阅读:260来源:国知局
多核处理器中共享变量获取方法、装置及多核处理器与流程

本申请实施例涉及多核处理器技术领域,更具体的涉及多核处理器中共享变量获取方法、装置及多核处理器。



背景技术:

随着网络安全设备对处理性能要求的日益提高,多核处理器得以广泛应用。一般地,在处理系统中都存在着临界资源,临界资源是指每次仅允许一个进程访问的资源,也就是多个核必须互斥访问的资源。为了防止多个核同时访问某一临界资源,在软件设计中通常是通过自旋锁加以保护。

现有技术中,通过全局共享的共享变量作为自旋锁资源判断的依据。具体地,请参考图1,多核处理器的设计上通常为:每个核拥有一个独立的一级缓存,所有核共享最后一级缓存和内存。共享变量分别在内存、最后一级缓存以及每个一级缓存中存在有对应的映像。核需要对共享变量进行操作时,包括两种模式,有效执行序列模式、无效执行序列模式。有效执行序列模式是指:核访问其对应的一级缓存,若一级缓存中的状态为有效状态,则此核就依据自身的标识对共享变量进行更改,并将其它核对应的一级缓存的状态设置为失效状态,并占用临界资源。或者,核对共享变量进行操作时,首先访问其对应的一级缓存,如果一级缓存中的状态为失效状态,则此核就访问最后一级缓存或内存,核从最后一级缓存或内存中获取共享变量后,与自身的标识比较,当相同时,占用临界资源,占用临界资源完毕后,释放临界资源,并将共享变量更改为下一个需要占用临界资源的核的标识,当再次需要临界资源时,再次访问共享变量。无效执行序列模式是指:核对共享变量进行操作时,首先访问其对应的一级缓存,如果一级缓存中的状态为失效状态,则此核就访问最后一级缓存或内存。从最后一级缓存或内存中获取共享变量后,与自身的标识比较,如果不相同,则继续从最后一级缓存或内存获取共享变量。

由于最后一级缓存和内存的访问效率远远低于一级缓存的访问效率,一般情况下,一级缓存的访问速度为3至4个时钟周期,最后一级缓存的访问速度一般是50个时钟周期,内存的访问速度更慢,一般是150个时钟周期。且每个核当发现共享变量与自身标识不符时,就会一直循环访问最后一级缓存或内存中,使得各个核的访问操作过于频繁且时间冗长,不仅导致对共享变量的操作效率低下,还消耗了设备的电能,进而影响设备的整体运行速率。



技术实现要素:

有鉴于此,本发明提供了一种多核处理器中共享变量获取方法、装置及多核处理器,以克服现有技术中各核发现共享变量与自身标识不符时,会循环访问最后一级缓存或内存,使得各个核的访问操作过于频繁且时间冗长,不仅导致共享变量的操作效率低下,还消耗了设备的电能,进而影响设备的整体运行速率的问题。

为实现上述目的,本发明提供如下技术方案:

一种多核处理器中共享变量获取方法,应用于多核处理器中每一核,所述多核处理器中共享变量获取方法包括:

检测到自身的当前运行状态满足预设条件时,进入低功耗状态,处于所述低功耗状态下的核,停止访问共享变量;

接收其它核发送的更新后的更新共享变量。

其中,所述检测到自身的当前运行状态满足预设条件时,进入低功耗状态包括:

检测所述核的当前运行的序列模式,所述序列模式为所述无效执行序列模式或有效执行序列模式;

记录连续出现无效执行序列模式的失效次数;

当所述失效次数大于等于第一预设阈值时,进入低功耗状态。

其中,所述检测到自身的当前运行状态满足预设条件时,进入低功耗状态包括:

检测所述核的当前运行的序列模式,所述序列模式为所述无效执行序列模式或有效执行序列模式;

记录运行无效执行序列模式和有效执行序列模式的总次数;

当所述总次数大于等于第二预设阈值时,进入低功耗状态。

其中,所述检测到自身的当前运行状态满足预设条件时,进入低功耗状态包括:

记录运行持续时间;

当所述运行持续时间大于等于预设时间时,进入低功耗状态。

优选地,还包括:

将自身的标识与所述更新共享变量相匹配;

当自身的标识与所述更新共享变量相匹配时,退出所述低功耗状态。

一种多核处理器中共享变量获取装置,包括:

访存单元,用于检测到与其对应的核的当前运行状态满足预设条件时,控制所述核的执行单元进入低功耗状态,所述执行单元处于所述低功耗状态时,所述核停止访问所述共享变量;

监控代理单元,用于接收其它核发送的更新后的更新共享变量;以及将所述更新共享变量发送至所述执行单元。

优选的,还包括:执行单元,所述执行单元,用于检测所述核的当前运行状态。

其中,所述访存单元在检测到与其对应的核的当前运行状态满足预设条件时,控制所述核的执行单元进入低功耗状态时,具体用于:

记录与其对应的所述核连续出现无效执行序列模式的失效次数;

当所述失效次数大于等于第一预设阈值时,控制所述执行单元进入低功耗状态;

所述执行单元在检测所述核的当前运行状态时,具体用于:

检测所述核的当前运行的序列模式,所述序列模式为所述无效执行序列模式或有效执行序列模式;

将所述序列模式发送至所述访存单元。

其中,所述访存单元在检测到与其对应的核的当前运行状态满足预设条件时,控制所述核的执行单元进入低功耗状态时,具体用于:

记录与其对应的所述核运行无效执行序列模式和有效执行序列模式的总次数;

当所述总次数大于等于第二预设阈值时,控制所述执行单元进入低功耗状态;

所述执行单元在检测所述核的当前运行状态时,具体用于:

检测所述核的当前运行的序列模式,所述序列模式为所述无效执行序列模式或有效执行序列模式;

将所述序列模式发送至所述访存单元。

其中,所述执行单元还用于:

将自身的标识与所述更新共享变量相匹配;

当自身的标识与所述更新共享变量相匹配时,退出所述低功耗状态。

其中,所述访存单元在检测到与其对应的核的当前运行状态满足预设条件时,控制所述核的执行单元进入低功耗状态时,具体用于:

记录所述核的运行持续时间;

当所述运行持续时间大于等于预设时间时,控制所述执行单元进入低功耗状态。

一种多核处理器,所述多核处理器中每一核包括:如上任一所述多核处理器中共享变量获取装置。

其中,所述执行单元还用于:

接收到所述访存单元发送的进入低功耗状态指令时,将所述核对应的一级缓存的状态更改为有效状态;

所述监控代理单元在将所述更新共享变量发送至所述执行单元时,具体用于:

将所述共享变量存储至所述一级缓存,以便所述一级缓存将所述共享变量发送至所述执行单元。

经由上述的技术方案可知,与现有技术相比,本发明实施例提供了一种多核处理器中共享变量获取方法,当核的当前运行状态满足预设条件时,核进入低功耗状态,此时,核不再访问共享变量,即核处于被动等待共享变量的状态,等待其他核给其发送更新后的更新共享变量,简化了核频繁访问最后一级缓存或内存的操作,从而节省了核所在的设备的电能,提高了对共享变量操作的效率,进而提高了设备的整体运行速率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为现有技术中多核处理器中各核对应的缓存示意图;

图2为本申请实施例提供的多核处理器中共享变量获取方法的一种实现方式的流程图;

图3为本申请实施例提供的一种多核处理器中共享变量获取装置;

图4为多处理器的详细内部结构示意图;

图5为本申请实施例提供的多核处理器中共享变量获取过程的一种具体实现方式的信令图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

请参阅图2,为本申请实施例提供的多核处理器中共享变量获取方法的一种实现方式的流程图,该方法可以应用于多核处理器中每一核,该方法包括:

步骤S201:检测到自身的当前运行状态满足预设条件时,进入低功耗状态,处于所述低功耗状态下的核,停止访问共享变量。

处于低功耗状态下的核不再主动访问与其对应的一级缓存、最后一级缓存和内存中的共享变量,而是处于被动等待状态。

在多核处理器中,多核处理器中各核的所处的状态可能相同,可能不同,例如当核处于低功耗状态时,其他核可能处于非低功耗状态。

步骤S202:接收其它核发送的更新后的更新共享变量。

这里“其他核”是指多处理器中除步骤S201中提及的核以外的其他核。假设其他核中核A使用完毕临界资源后,会将最后一级缓存或内存中的共享变量更改为下一个需要使用临界资源的核的标识,假设更改为核B的标识,则会给多核处理器中所有的核(除核A)发送更改共享变量的指令。

该更改共享变量的指令中可以携带有更新的更新共享变量的具体值。

在实际应用中更改共享变量的指令的格式,可能与携带更新共享变量的指令的格式不同,或者更改共享变量的指令的长度已经很长,不适合再携带更新共享变量,此时可以将更改共享变量的指令和携带更新共享变量的指令,作为两个单独的指令依次发送给核。

具体的,上述接收其它核发送的更新后的更新共享变量包括:

接收到所述其他核发送的更改共享变量的指令时,从所述更改共享变量的指令获得所述更新共享变量。

或,接收到所述其他核发送的更改共享变量的指令时,进入接收所述更新共享变量的状态,将所述其他核发送的下一数据作为所述更新共享变量。

本发明实施例提供了一种多核处理器中共享变量获取方法,当核的当前运行状态满足预设条件时,核进入低功耗状态,此时,核不再访问共享变量,即核处于被动等待共享变量的状态,等待其他核给其发送更新后的更新共享变量,简化了核频繁访问最后一级缓存或内存的操作,从而节省了核所在的设备的电能,提高了对共享变量操作的效率,进而提高了设备的整体运行速率。

本申请实施例还提供了多核处理器中共享变量获取方法实施例中,检测到自身的当前运行状态满足预设条件时,进入低功耗状态的多种实现方式,具体如下:

第一种,检测到自身的当前运行状态满足预设条件时,进入低功耗状态的实现方法包括:

检测所述核的当前运行的序列模式,所述序列模式为所述无效执行序列模式或有效执行序列模式;记录连续出现无效执行序列模式的失效次数;当所述失效次数大于等于第一预设阈值时,进入低功耗状态。

上述无效执行序列模式是指核需要对共享变量进行操作时,首先访问其对应的一级缓存,如果一级缓存中的状态为失效状态,则此核就访问最后一级缓存或内存。从最后一级缓存或内存中获取共享变量后,与自身的标识比较,如果不相同,则继续从最后一级缓存或内存获取共享变量的过程。

无效执行序列模式可以是通过上述各执行指令来确定的,例如“访问其对应的一级缓存,如果一级缓存中的状态为失效状态,则此核就访问最后一级缓存或内存”可以对应“共享变量的下载指令”;“从最后一级缓存或内存中获取共享变量后,与自身的标识比较,如果不相同”可以对应“比对失败指令”;“则继续从最后一级缓存或内存获取共享变量”可以对应“返回共享变量的下载指令”。可以认为上述指令执行依次执行一次即为出现一次无效执行序列模式。

第一预设阈值可以依据实际情况而定,例如5、6、10、15等等。

多处理器中的各核在一开始运行时,可以与现有技术中主动访问共享变量的过程相同,即能够执行无效执行序列模式和有效执行序列模式。如果核一直处于无效执行序列模式,则说明当前可能有很多核需要占用临界资源,此时为了降低各核循环访问共享变量产生的功耗,可以让核处于低功耗状态。

有效执行序列模式是指:核访问其对应的一级缓存,若一级缓存中的状态为有效状态,则此核就依据自身的标识对共享变量进行更改,并将其它核对应的一级缓存的状态设置为失效状态,并占用临界资源。或者,核对自旋锁进行操作时,首先访问其对应的一级缓存,如果一级缓存中的状态为失效状态,则此核就访问最后一级缓存或内存,核从最后一级缓存或内存中获取共享变量后,与自身的标识比较,当相同时,占用临界资源,占用临界资源完毕后,释放临界资源,并将共享变量更改为下一个需要占用临界资源的核的标识,当再次需要临界资源时,再次访问共享变量。。

有效执行序列模式可以是通过上述各执行指令来确定的,例如,“核访问其对应的一级缓存,若一级缓存中的状态为有效状态”可以对应“独占指令”;“则此核就依据自身的标识对共享变量进行更改,并将其它核对应的一级缓存的状态设置为失效状态,并占用临界资源”可以对应“占用临界资源指令”;可以认为上述指令执行依次执行一次即为出现一次有效执行序列模式。

“核对共享变量进行操作时,首先访问其对应的一级缓存,如果一级缓存中的状态为失效状态,则此核就访问最后一级缓存或内存,核从最后一级缓存或内存中获取共享变量后”可以对应“共享变量的下载指令”;“与自身的标识比较,当相同时,占用临界资源,占用临界资源完毕后,释放临界资源”可以对应“比较成功指令”;“当再次需要临界资源时,再次访问共享变量”可以对应“再次访问共享变量指令”。可以认为上述指令执行依次执行一次即为出现一次有效执行序列模式。

第二种,检测到自身的当前运行状态满足预设条件时,进入低功耗状态的实现方法包括:

检测所述核的当前运行的序列模式,所述序列模式为所述无效执行序列模式或有效执行序列模式;记录运行无效执行序列模式和有效执行序列模式的总次数;当所述总次数大于等于第二预设阈值时,进入低功耗状态。

第一预设阈值可以与第二预设阈值相等,也可以不相等。

多处理器中的各核在一开始运行时,可以与现有技术中主动访问共享变量的过程相同,即能够无效执行序列模式和有效执行序列模式。

上述“记录运行无效执行序列模式和有效执行序列模式的总次数”是指,记录核正常运行状态下,运行无效执行序列模式和有效执行序列模式的总次数。

第三种,检测到自身的当前运行状态满足预设条件时,进入低功耗状态的实现方法包括:

记录运行持续时间;当所述运行持续时间大于等于预设时间时,进入低功耗状态。

多处理器中的各核在一开始运行时,可以与现有技术中主动访问共享变量的过程相同,即能够执行无效执行序列模式和有效执行序列模式。当核运行一段时间后,就可以控制核进入低功耗状态,无论核当前已经执行完毕有效执行序列模式,还是已经执行完毕无效执行序列模式。

本申请实施例提供的多核处理器中共享变量获取方法实施例中,还可以包括:

将自身的标识与所述更新共享变量相匹配;当自身的标识与所述更新共享变量相匹配时,退出所述低功耗状态。

当自身的标识与更新共享变量相匹配时,说明该核可以占用临界资源,此时该核就可以退出低功耗状态了。

或者检测到失去CPU(Central Processing Unit,中央处理器)的控制权,例如任务被抢占或出现中断时,可以退出低功耗状态。

下面对本申请实施例提供的多核处理器中共享变量获取装置进行描述,下文描述的多核处理器中共享变量获取装置与上文描述的多核处理器中共享变量获取方法可相互对应参照。

请参阅图3,为本申请实施例提供的一种多核处理器中共享变量获取装置,该多核处理器中共享变量获取装置可以应用于多处理器中每一核中,该多核处理器中共享变量获取装置包括:访存单元301以及监控代理单元302,其中:

访存单元301,用于检测到与其对应的核的当前运行状态满足预设条件时,控制所述核的执行单元进入低功耗状态,所述执行单元处于所述低功耗状态时,所述核停止访问所述共享变。

处于低功耗状态下的核不再主动访问与其对应的一级缓存、最后一级缓存和内存中的共享变量,而是处于被动等待状态。

在多核处理器中,多核处理器中各核的所处的状态可能相同,可能不同,例如当核处于低功耗状态时,其他核可能处于非低功耗状态。

监控代理单元302,用于接收其它核发送的更新后的更新共享变量;以及将所述更新共享变量发送至所述执行单元。

这里“其他核”是指多处理器中除步骤S201中提及的核以外的其他核。假设其他核中核A使用完毕临界资源后,会将最后一级缓存或内存中的共享变量更改为下一个需要使用临界资源的核的标识,假设更改为核B的标识,则会给多核处理器中所有的核(除核A)发送更改共享变量的指令。

该更改共享变量的指令中可以携带有更新的更新共享变量的具体值。

在实际应用中更改共享变量的指令的格式,可能与携带更新共享变量的指令的格式不同,或者更改共享变量的指令的长度已经很长,不适合再携带更新共享变量,此时可以将更改共享变量的指令和携带更新共享变量的指令,作为两个单独的指令依次发送给核。

具体的,上述监控代理单元302可以包括:

获取变量子单元,用于接收到所述其他核发送的更改共享变量的指令时,从所述更改共享变量的指令获得所述更新共享变量。

或,处理子单元,用于接收到所述其他核发送的更改共享变量的指令时,进入接收所述更新共享变量的状态,将所述其他核发送的下一数据作为所述更新共享变量。

本发明实施例提供了一种多核处理器中共享变量获取装置,当访存单元301检测到核的当前运行状态满足预设条件时,控制执行单元进入低功耗状态,此时,核不再访问共享变量,即核处于被动等待共享变量的状态,等待其他核给监控代理单元302发送更新后的更新共享变量,简化了核频繁访问最后一级缓存或内存的操作,从而节省了核所在的设备的电能,提高了对共享变量操作的效率,进而提高了设备的整体运行速率。

本申请实施例提供的多核处理器中共享变量获取装置实施例中,还可以包括:执行单元,所述执行单元,用于检测所述核的当前运行状态。

本申请实施例还提供了多核处理器中共享变量获取装置实施例中,访存单元和/或执行单元的多种实现方式,具体如下:

第一种,实现方式:

所述访存单元在检测到与其对应的核的当前运行状态满足预设条件时,控制所述核的执行单元进入低功耗状态时,具体用于:记录与其对应的所述核连续出现无效执行序列模式的失效次数;当所述失效次数大于等于第一预设阈值时,控制所述执行单元进入低功耗状态。

所述执行单元在检测所述核的当前运行状态时,具体用于:检测所述核的当前运行的序列模式,所述序列模式为所述无效执行序列模式或有效执行序列模式;将所述序列模式发送至所述访存单元。

检测所述核的当前运行的序列模式,所述序列模式为所述无效执行序列模式或有效执行序列模式;记录连续出现无效执行序列模式的失效次数;当所述失效次数大于等于第一预设阈值时,进入低功耗状态。

上述无效执行序列模式是指核需要对共享变量进行操作时,首先访问其对应的一级缓存,如果一级缓存中的状态为失效状态,则此核就访问最后一级缓存或内存。从最后一级缓存或内存中获取共享变量后,与自身的标识比较,如果不相同,则继续从最后一级缓存或内存获取共享变量的过程。

无效执行序列模式可以是通过上述各执行指令来确定的,例如“访问其对应的一级缓存,如果一级缓存中的状态为失效状态,则此核就访问最后一级缓存或内存”可以对应“共享变量的下载指令”;“从最后一级缓存或内存中获取共享变量后,与自身的标识比较,如果不相同”可以对应“比对失败指令”;“则继续从最后一级缓存或内存获取共享变量”可以对应“返回共享变量的下载指令”。可以认为上述指令执行依次执行一次即为出现一次无效执行序列模式。

第一预设阈值可以依据实际情况而定,例如5、6、10、15等等。

多处理器中的各核在一开始运行时,可以与现有技术中主动访问共享变量的过程相同,即能够执行无效执行序列模式和有效执行序列模式。如果核一直处于无效执行序列模式,则说明当前可能有很多核需要占用临界资源,此时为了降低各核循环访问共享变量产生的功耗,可以让核处于低功耗状态。

有效执行序列模式是指:核访问其对应的一级缓存,若一级缓存中的状态为有效状态,则此核就依据自身的标识对共享变量进行更改,并将其它核对应的一级缓存的状态设置为失效状态,并占用临界资源。或者,核对共享变量进行操作时,首先访问其对应的一级缓存,如果一级缓存中的状态为失效状态,则此核就访问最后一级缓存或内存,核从最后一级缓存或内存中获取共享变量后,与自身的标识比较,当相同时,占用临界资源,占用临界资源完毕后,释放临界资源,并将共享变量更改为下一个需要占用临界资源的核的标识,当再次需要临界资源时,再次访问共享变量。。

有效执行序列模式可以是通过上述各执行指令来确定的,例如,“核访问其对应的一级缓存,若一级缓存中的状态为有效状态”可以对应“独占指令”;“则此核就依据自身的标识对共享变量进行更改,并将其它核对应的一级缓存的状态设置为失效状态,并占用临界资源”可以对应“占用临界资源指令”;可以认为上述指令执行依次执行一次即为出现一次有效执行序列模式。

“核对共享变量进行操作时,首先访问其对应的一级缓存,如果一级缓存中的状态为失效状态,则此核就访问最后一级缓存或内存,核从最后一级缓存或内存中获取共享变量后”可以对应“共享变量的下载指令”;“与自身的标识比较,当相同时,占用临界资源,占用临界资源完毕后,释放临界资源”可以对应“比较成功指令”;“当再次需要临界资源时,再次访问共享变量”可以对应“再次访问共享变量指令”。可以认为上述指令执行依次执行一次即为出现一次有效执行序列模式。

第二种,实现方式:

访存单元在检测到与其对应的核的当前运行状态满足预设条件时,控制所述核的执行单元进入低功耗状态时,具体用于:记录与其对应的所述核运行无效执行序列模式和有效执行序列模式的总次数;当所述总次数大于等于第二预设阈值时,控制所述执行单元进入低功耗状态。

所述执行单元在检测所述核的当前运行状态时,具体用于:检测所述核的当前运行的序列模式,所述序列模式为所述无效执行序列模式或有效执行序列模式;将所述序列模式发送至所述访存单元。

检测所述核的当前运行的序列模式,所述序列模式为所述无效执行序列模式或有效执行序列模式;记录运行无效执行序列模式和有效执行序列模式的总次数;当所述总次数大于等于第二预设阈值时,进入低功耗状态。

第一预设阈值可以与第二预设阈值相等,也可以不相等。

多处理器中的各核在一开始运行时,可以与现有技术中主动访问共享变量的过程相同,即能够无效执行序列模式和有效执行序列模式。

上述“记录运行无效执行序列模式和有效执行序列模式的总次数”是指,记录核正常运行状态下,运行无效执行序列模式和有效执行序列模式的总次数。

第三种,实现方式:

所述访存单元在检测到与其对应的核的当前运行状态满足预设条件时,控制所述核的执行单元进入低功耗状态时,具体用于:记录所述核的运行持续时间;当所述运行持续时间大于等于预设时间时,控制所述执行单元进入低功耗状态。

多处理器中的各核在一开始运行时,可以与现有技术中主动访问共享变量的过程相同,即能够执行无效执行序列模式和有效执行序列模式。当核运行一段时间后,就可以控制核进入低功耗状态,无论核当前已经执行完毕有效执行序列模式,还是已经执行完毕无效执行序列模式。

本申请实施例提供的多核处理器中共享变量获取装置中的执行单元还用于:将自身的标识与所述更新共享变量相匹配;当自身的标识与所述更新共享变量相匹配时,退出所述低功耗状态。

或者,执行单元还用于:检测到失去CPU(Central Processing Unit,中央处理器)的控制权(例如任务被抢占或出现中断)时,退出低功耗状态。

可选的,本申请实施例还提供了多核处理器中共享变量获取装置实施例中,访存单元和/或执行单元的多种结构,具体如下:

第一种,结构实现方式:

访存单元包括:第一记录子单元,用于记录与其对应的核连续出现无效执行序列模式的失效次数;第一控制子单元,用于当所述失效次数大于等于第一预设阈值时,控制所述执行单元进入低功耗状态;

所述执行单元包括:检测子单元,用于检测所述核的当前运行的序列模式,所述序列模式为所述无效执行序列模式或有效执行序列模式;发送子单元,用于将所述序列模式发送至所述访存单元。

第二种,结构实现方式:

访存单元包括:第二记录子单元,用于记录与其对应的所述核运行无效执行序列模式和有效执行序列模式的总次数;第二控制子单元,用于当所述总次数大于等于第二预设阈值时,控制所述执行单元进入低功耗状态;

所述执行单元包括:检测子单元,用于检测所述核的当前运行的序列模式,所述序列模式为所述无效执行序列模式或有效执行序列模式;发送子单元,用于将所述序列模式发送至所述访存单元。

第三种,结构实现方式:

执行单元还包括:第三记录子单元,用于记录所述核的运行持续时间;第三控制子单元,用于当所述运行持续时间大于等于预设时间时,控制所述执行单元进入低功耗状态。

本申请实施例提供的多核处理器中共享变量获取方法实施例中,还可以包括:匹配子单元,用于将自身的标识与所述更新共享变量相匹配;退出子单元,用于当自身的标识与所述更新共享变量相匹配时,退出所述低功耗状态。或者,包括:检测子单元,检测到失去CPU(Central Processing Unit,中央处理器)的控制权(例如任务被抢占或出现中断)时,可以退出低功耗状态。

本申请实施例还提供了一种多核处理器,该多核处理器,包括多个核,每一核包括:如上述任一所述多核处理器中共享变量获取装置。

本申请实施例提供的一种多核处理器中执行单元还可以用于:接收到所述访存单元发送的进入低功耗状态指令时,将所述核对应的一级缓存的状态更改为有效状态;相应的,所述监控代理单元在将所述更新共享变量发送至所述执行单元时,具体用于:将所述共享变量存储至所述一级缓存,以便所述一级缓存将所述共享变量发送至所述执行单元。

可选的,本申请实施例还提供了以下具体结构:执行单元包括:更改子单元,用于接收到所述访存单元发送的进入低功耗状态指令时,将所述核对应的一级缓存的状态更改为有效状态;相应的,所述监控代理单元包括:存储子单元,用于将所述共享变量存储至所述一级缓存,以便所述一级缓存将所述共享变量发送至所述执行单元。

如图4所示,为多处理器的详细内部结构示意图。图4中示出了多核处理器4中的2个核,多核处理器4还可以包括2个或2个以上的核,但在图4中未示出,核41包括:执行单元411、访存单元412、监控代理413、一级缓存414;核42包括:执行单元421、访存单元422、监控代理423、一级缓存424。

为了本领域技术人员更加理解本申请实施例提供的多核处理器中共享变量获取方法、装置和多处理器的实现过程,下面将结合多处理器的内部结构,对本申请实施例提供的多核处理器中共享变量获取过程进行详细说明,如图5,为本申请实施例提供的多核处理器中共享变量获取过程的一种具体实现方式的信令图。图5中只示出了核42的监控代理423,其他的未示出。

步骤S501:核41的执行单元411检测所述核当前的运行的序列模式。

所述序列模式为所述无效执行序列模式或有效执行序列模式;

步骤S502:核41的执行单元411将所述序列模式发送至核41的访存单元412。

步骤S503:核41的访存单元412用于检测到核当前的运状态满足预设条件时,向核41的执行单元411发送进入低功耗状态指示。

步骤S501和步骤S502是可选步骤,因此在图5中用虚线框表示。因为访存单元412可以依据核的运行时间来判断执行单元411是否需要进入低功耗状态,此时就不需要执行单元411检测核的运行的序列模式了。

步骤S504:核41的执行单元411接收到进入低功耗状态指示时,进入低功耗状态。

步骤S505:核42占用完毕临界资源后,将共享变量更改为核41的标识,并通过监控代理423向各个核的监控代理发送更改共享变量的指令。

步骤S506:核41的监控代理411接收更改共享变量的指令,并获取更新共享变量。

该更改共享变量的指令中可以携带有更新的更新共享变量的具体值。

在实际应用中更改共享变量的指令的格式,可能与携带更新共享变量的指令的格式不同,或者更改共享变量的指令的长度已经很长,不适合再携带更新共享变量,此时可以将更改共享变量的指令和携带更新共享变量的指令,作为两个单独的指令依次发送给核。

步骤S507:核41的监控代理413将该更新共享变量发送至核41的执行单元411。

步骤S508:核41的执行单元411将更新共享变量与自身的标识相匹配,当确定出更新共享变量与自身的标识相匹配时,退出低功耗状态。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1