CN115373877A - 异构多核处理器保证共享缓存一致性的控制方法和装置 - Google Patents

异构多核处理器保证共享缓存一致性的控制方法和装置 Download PDF

Info

Publication number
CN115373877A
CN115373877A CN202211305649.5A CN202211305649A CN115373877A CN 115373877 A CN115373877 A CN 115373877A CN 202211305649 A CN202211305649 A CN 202211305649A CN 115373877 A CN115373877 A CN 115373877A
Authority
CN
China
Prior art keywords
data
core
kernel
sending
response
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
Application number
CN202211305649.5A
Other languages
English (en)
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.)
State Grid Corp of China SGCC
State Grid Jiangsu Electric Power Co Ltd
Beijing Smartchip Microelectronics Technology Co Ltd
Original Assignee
State Grid Corp of China SGCC
State Grid Jiangsu Electric Power Co Ltd
Beijing Smartchip Microelectronics Technology 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 State Grid Corp of China SGCC, State Grid Jiangsu Electric Power Co Ltd, Beijing Smartchip Microelectronics Technology Co Ltd filed Critical State Grid Corp of China SGCC
Priority to CN202211305649.5A priority Critical patent/CN115373877A/zh
Publication of CN115373877A publication Critical patent/CN115373877A/zh
Pending 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • 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
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
    • 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
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本公开涉及计算机技术领域,具体涉及一种异构多核处理器保证共享缓存一致性的控制方法和装置,所述异构多核处理器保证共享缓存一致性的控制方法包括:接收第一内核发送的写请求;发送数据同步消息至所述异构多核处理器中所有内核,以使所述异构多核处理器中所有内核的缓存开启总线嗅探;发送应答响应至所述第一内核,以使所述第一内核在接收到所述应答响应后,将数据写入所述共享缓存,并使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。通过对各内核私有缓存中的数据与共享缓存中的数据同步进行更新,提高了数据更新的实时性,提升了数据处理效率。

Description

异构多核处理器保证共享缓存一致性的控制方法和装置
技术领域
本公开涉及计算机技术领域,具体涉及一种异构多核处理器保证共享缓存一致性的控制方法和装置。
背景技术
在多核处理器的应用中,有一些数据需要被该处理器中的多个内核访问。实际应用中通常会将这些数据存储在处理器芯片的共享缓存中。由于共享缓存访问时间较长,为了缩短对数据块的访问,通常会将该数据复制一份缓存到内核自身的私有缓存中,下次访问该数据只需要访问私有缓存中的数据即可。由于对数据的访问除了读访问以外还有写访问,所以如果某内核对该数据块进行写访问,其他私有缓存中存在该数据的内核就需要同步更新自己私有的数据,此过程被称为缓存一致性操作。
缓存一致性操作目前最常见的一种解决方案,叫做总线嗅探。总线嗅探是把所有的读写请求通过总线广播给所有的内核。各内核接收到这些请求后根据自身私有缓存情况进行操作。基于总线嗅探机制,其中最常用的就是伊利诺斯MESI 协议。MESI协议,是一种叫做写失效的协议:在写失效协议里面,只有一个中央处理器(Central Processing Unit ,CPU)内核负责写入数据,其他的内核,只是同步读取这个内核的写入,在这个CPU内核写入共享缓存之后,它会去广播一个“失效”请求告诉所有其他内核,其他内核只是去判断自己的私有缓存中是否也有一个同样的数据备份,如果有该数据则把把这个数据标记成失效。
现有私有缓存中被标记为失效的数据必须要在下次使用时才会读取进私有缓存,但是私有缓存中的数据均为常用数据,属于使用非常频繁的数据,使用的时候再进行读取增加了时间的开销,降低了私有缓存的性能。
发明内容
为了解决相关技术中的问题,本公开实施例提供一种异构多核处理器保证共享缓存一致性的控制方法和装置。
第一方面,本公开实施例中提供了一种异构多核处理器保证共享缓存一致性的控制方法,所述方法包括:
接收第一内核发送的写请求;
发送数据同步消息至所述异构多核处理器中所有内核,以使所述异构多核处理器中所有内核的缓存开启总线嗅探;
发送应答响应至所述第一内核,以使所述第一内核在接收到所述应答响应后,将数据写入所述共享缓存,并使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。
根据本公开的实施例,所述第二内核包括至少一个内核。
根据本公开的实施例,在发送所述数据同步消息后,还包括:
确定所述共享缓存是否正在执行写操作;
若否,则在发送数据同步消息后应答所述第一内核发送的写请求;
若是,则在发送数据同步消息后,且在当前写操作完成后应答所述第一内核发送的写请求。
根据本公开的实施例,所述发送应答响应至所述第一内核,包括:
确定当前是否有其他内核针对相同数据发送写请求;
若否,则直接发送应答响应至所述第一内核;
若是,则按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
根据本公开的实施例,所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。
第二方面,本公开实施例中提供了一种异构多核处理器保证共享缓存一致性的控制方法,所述方法包括:
第一内核发送写请求至同步控制单元;
接收同步控制单元发送的应答响应,所述应答响应是在所述同步控制单元向所述异构多核处理器中所有内核发送数据同步消息后发送的,所述数据同步消息用于使所述异构多核处理器中所有内核的缓存开启总线嗅探;
将数据写入所述共享缓存,以使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。
根据本公开的实施例,所述第二内核包括至少一个内核。
根据本公开的实施例,所述接收同步控制单元发送的应答响应,还包括:
若所述共享缓存当前正在执行写操作,则所述同步控制单元发送的应答响应是在所述共享缓存当前正在执行的写操作执行完成后发送的。
根据本公开的实施例,所述接收同步控制单元发送的应答响应,还包括:
若当前还有其他内核针对相同数据发送了写请求,则所述同步控制单元按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
根据本公开的实施例,所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。
第三方面,本公开实施例中提供了一种异构多核处理器保证共享缓存一致性的控制方法,所述方法包括:
第二内核在接收到同步控制单元发送的数据同步消息时,开启总线嗅探,其中,所述数据同步消息是在所述同步控制单元接收到第一内核发送的写请求后发送至所述第二内核的;
在基于所述总线嗅探确定第一内核写入所述共享缓存的数据在该第二内核本地存储有副本时,更新所述副本中的数据。
根据本公开的实施例,所述第二内核包括至少一个内核。
根据本公开的实施例,还包括:
所述第一内核在接收到所述同步控制单元发送的应答响应后将数据写入共享缓存;
所述同步控制单元在发送所述应答响应前,确定所述共享缓存是否正在执行写操作;
若否,则在发送数据同步消息后应答所述第一内核发送的写请求;
若是,则在发送数据同步消息后,且在当前写操作完成后应答所述第一内核发送的写请求。
根据本公开的实施例,还包括:
所述同步控制单元在发送所述应答响应前,确定当前是否有其他内核针对相同数据发送写请求;
若否,则直接发送应答响应至所述第一内核;
若是,则按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
根据本公开的实施例,所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。
第四方面,本公开实施例中提供了一种异构多核处理器保证共享缓存一致性的控制装置,所述装置包括:
第一接收模块,被配置为接收第一内核发送的写请求;
第一发送模块,被配置为发送数据同步消息至所述异构多核处理器中所有内核,以使所述异构多核处理器中所有内核的缓存开启总线嗅探;
第二发送模块,被配置为发送应答响应至所述第一内核,以使所述第一内核在接收到所述应答响应后,将数据写入所述共享缓存,并使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。
根据本公开的实施例,所述第二内核包括至少一个内核。
根据本公开的实施例,在发送所述数据同步消息后,还包括:
确定所述共享缓存是否正在执行写操作;
若否,则在发送数据同步消息后应答所述第一内核发送的写请求;
若是,则在发送数据同步消息后,且在当前写操作完成后应答所述第一内核发送的写请求。
根据本公开的实施例,所述发送应答响应至所述第一内核,包括:
确定当前是否有其他内核针对相同数据发送写请求;
若否,则直接发送应答响应至所述第一内核;
若是,则按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
根据本公开的实施例,所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。
第五方面,本公开实施例中提供了一种异构多核处理器保证共享缓存一致性的控制装置,所述装置包括:
第三发送模块,被配置为第一内核发送写请求至同步控制单元;
第二接收模块,被配置为接收同步控制单元发送的应答响应,所述应答响应是在所述同步控制单元向所述异构多核处理器中所有内核发送数据同步消息后发送的,所述数据同步消息用于使所述异构多核处理器中所有内核的缓存开启总线嗅探;
写入模块,被配置为将数据写入所述共享缓存,以使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。
根据本公开的实施例,所述第二内核包括至少一个内核。
根据本公开的实施例,所述接收同步控制单元发送的应答响应,还包括:
若所述共享缓存当前正在执行写操作,则所述同步控制单元发送的应答响应是在所述共享缓存当前正在执行的写操作执行完成后发送的。
根据本公开的实施例,所述接收同步控制单元发送的应答响应,还包括:
若当前还有其他内核针对相同数据发送了写请求,则所述同步控制单元按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
根据本公开的实施例,所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。
第六方面,本公开实施例中提供了一种异构多核处理器保证共享缓存一致性的控制装置,所述装置包括:
根据本公开的实施例,开启模块,被配置为第二内核在接收到同步控制单元发送的数据同步消息时,开启总线嗅探,其中,所述数据同步消息是在所述同步控制单元接收到第一内核发送的写请求后发送至所述第二内核的;
更新模块,被配置为在基于所述总线嗅探确定第一内核写入所述共享缓存的数据在该第二内核本地存储有副本时,更新所述副本中的数据。
根据本公开的实施例,所述第二内核包括至少一个内核。
根据本公开的实施例,还包括:
所述第一内核在接收到所述同步控制单元发送的应答响应后将数据写入共享缓存;
所述同步控制单元在发送所述应答响应前,确定所述共享缓存是否正在执行写操作;
若否,则在发送数据同步消息后应答所述第一内核发送的写请求;
若是,则在发送数据同步消息后,且在当前写操作完成后应答所述第一内核发送的写请求。
根据本公开的实施例,还包括:
所述同步控制单元在发送所述应答响应前,确定当前是否有其他内核针对相同数据发送写请求;
若否,则直接发送应答响应至所述第一内核;
若是,则按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
根据本公开的实施例,所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。
第七方面,本公开实施例提供了一种电子设备,包括存储器和处理器,其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如上所述的方法。
第八方面,本公开实施例提供了一种芯片,所述芯片包括如第四方面和第六方面中任一实施例所述的装置。
第九方面,本公开实施例中提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如上所述的方法。
根据本公开实施例提供的技术方案,通过对异构多核处理器中各内核私有缓存中的数据与共享缓存中的数据同步进行更新,与现有技术中各内核私有缓存中的数据需要在下次使用时才会从共享缓存中读取更新相比,提高了数据更新的实时性,提升了数据处理效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中。
图1示出根据本公开实施例的异构多核处理器保证共享缓存一致性的控制方法的流程图。
图2示出根据本公开实施例的另一种异构多核处理器保证共享缓存一致性的控制方法的流程图。
图3示出根据本公开实施例的又一种异构多核处理器保证共享缓存一致性的控制方法的流程图。
图4示出根据本公开实施例的异构多核处理器保证共享缓存一致性的控制装置的结构框图。
图5示出根据本公开实施例的另一种异构多核处理器保证共享缓存一致性的控制装置的结构框图。
图6示出根据本公开实施例的又一种异构多核处理器保证共享缓存一致性的控制装置的结构框图。
图7示出根据本公开实施例的异构多核处理器的示意图。
图8示出根据本公开实施例的电子设备的结构框图。
图9示出适于用来实现根据本公开实施例的方法的计算机系统的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施例,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施例无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
在本公开中,如涉及对用户信息或用户数据的获取操作或向他人展示用户信息或用户数据的操作,则所述操作均为经用户授权、确认,或由用户主动选择的操作。
上文提及,现有缓存被标记为失效的数据必须要在下次使用时才会读取进缓存,但是缓存中的数据均为常用数据,属于使用非常频繁的数据,使用的时候再进行读取增加了时间的开销,降低了缓存的性能。
鉴于此,本公开实施例提供了一种异构多核处理器保证共享缓存一致性的控制方法,包括:接收第一内核发送的写请求;发送数据同步消息至所述异构多核处理器中所有内核,以使所述异构多核处理器中所有内核的缓存开启总线嗅探;发送应答响应至所述第一内核,以使所述第一内核在接收到所述应答响应后,将数据写入所述共享缓存,并使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。根据本公开实施例的技术方案,通过对异构多核处理器中各内核私有缓存中的数据与共享缓存中的数据同步进行更新,与现有技术中各内核私有缓存中的数据需要在下次使用时才会从共享缓存中读取更新相比,提高了数据更新的实时性,提升了数据处理效率。
图1示出根据本公开实施例的异构多核处理器保证共享缓存一致性的控制方法的流程图。
如图1所示,所述异构多核处理器保证共享缓存一致性的控制方法包括步骤S101-步骤S103:
在步骤S101中,接收第一内核发送的写请求;
在步骤S102中,发送数据同步消息至所述异构多核处理器中所有内核,以使所述异构多核处理器中所有内核的缓存开启总线嗅探;
在步骤S103中,发送应答响应至所述第一内核,以使所述第一内核在接收到所述应答响应后,将数据写入所述共享缓存,并使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。
在本公开实施例中,所述异构多核处理器保证共享缓存一致性的控制方法可以由同步控制单元执行,所述同步执行单元可以位于异构多核处理器芯片中,其与异构多核处理器中的所有内核以及异构多核处理器的共享缓存通信,控制各内核中私有缓存和所述共享缓存的数据读写,以保证所述各内核中私有缓冲与所述共享缓存中数据的一致性。
在本公开实施例中,所述同步控制单元首先接收第一内核发送的写请求,所述第一内核为所述异构多核处理器中任一需要对所述共享缓存中的数据进行写操作的内核。同步控制单元在接收到第一内核发送的所述写请求后,在应答所述写请求前,先发送数据同步消息至所述异构多核处理器中所有内核,以使所述异构多核处理器中所有内核的缓存开启总线嗅探。在开启总线嗅探后,当所述共享缓存中的数据被任一内核修改时,其他内核均会收到相应的数据变更通知,此时其他内核会确认自己的私有缓存中是否本地存储了所述数据的副本,若是则会将所述副本中的数据标记为失效。
在本公开实施例中,同步控制单元在接收到第一内核发送的写请求后,还可以根据当前共享缓存的状态判断是否允许所述第一内核对所述共享缓存执行写操作。具体地,可以判断所述共享缓存是否正在执行写操作,若是,则需要等待当前写操作完成后,并在发送数据同步消息后应答所述第一内核发送的写请求,允许所述第一内核对所述共享缓存执行写操作;若否,则可以在发送数据同步消息后直接应答所述第一内核发送的写请求。
在本公开实施例中,同步控制单元在判断当前允许所述第一内核对所述共享缓存执行写操作,并发送了发送数据同步消息后,可以发送应答响应至所述第一内核,以使所述第一内核在接收到所述应答响应后,将数据写入所述共享缓存,并使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。具体地,如前所述,现有技术方案中,各内核基于总线嗅探发现共享缓存中发生变更的数据,在自己的私有缓存中本地存储了所述数据的副本时,仅会将所述副本中的数据标记为失效,需要等待下次使用时才会读取进私有缓存。而在本公开实施例的技术方案中,当所述异构多核处理器中的第二内核基于总线嗅探发现共享缓存中发生变更的数据,在自己的私有缓存中本地存储了所述数据的副本时,直接更新所述副本中的数据,使私有缓存中存储的数据与共享缓存中存储的数据保持了一致性。其中,所述第二内核可以包括一个或多个内核。
根据本公开实施例的技术方案,通过对异构多核处理器中各内核私有缓存中的数据与共享缓存中的数据同步进行更新,与现有技术中各内核私有缓存中的数据需要在下次使用时才会从共享缓存中读取更新相比,提高了数据更新的实时性,提升了数据处理效率。
相关技术中,若异构多核处理器中同时有多个第一内核向同步控制单元发送写请求时,可能存在后写入的数据并非最终的正确数据,从而导致错误的情况。鉴于此,本公开实施例还提出了将异构多核处理器中的各内核针对不同的数据进行所有权分级,通过优先写入低所有权等级的数据的方式,保证最后写入的是对数据具有高优先权等级的内核中的数据,保证了数据在正确性和安全性。
具体地,在本公开实施例中,所述同步控制单元在发送应答响应至所述第一内核前,还可以确定当前是否有其他内核针对相同数据发送写请求;若否,则直接发送应答响应至所述第一内核;若是,则按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
在本公开实施例中,所述各内核对所述数据的所有权等级可以由数据与各内核的关联因子确定。其中,所述关联因子可以由所述数据被各内核的调用频率、调用类型等确定。在确定了所述关联因子后,可以根据关联因子由大至小确定各内核对所述数据的所有权等级,并将该所有权等级与各内核的唯一编号关联,得到所有权等级查询表。通过查询所述所有权等级查询表,即可得到各内核对所述数据的所有权等级。
根据本公开实施例的技术方案,通过将异构多核处理器中的各内核针对不同的数据进行所有权分级,优先写入低所有权等级的数据,保证了最后写入的是对数据具有高优先权等级的内核中的数据,进而保证了数据在正确性和安全性。
图2示出根据本公开实施例的另一种异构多核处理器保证共享缓存一致性的控制方法的流程图。
如图2所示,所述异构多核处理器保证共享缓存一致性的控制方法包括步骤S201-步骤S203:
在步骤S201中,第一内核发送写请求至同步控制单元;
在步骤S202中,接收同步控制单元发送的应答响应,所述应答响应是在所述同步控制单元向所述异构多核处理器中所有内核发送数据同步消息后发送的,所述数据同步消息用于使所述异构多核处理器中所有内核的缓存开启总线嗅探;
在步骤S203中,将数据写入所述共享缓存,以使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。
在本公开实施例中,所述异构多核处理器保证共享缓存一致性的控制方法可以由异构多核处理器中的第一内核执行。
在本公开实施例中,所述第一内核首先发送写请求至同步控制单元,所述第一内核为所述异构多核处理器中任一需要对所述共享缓存中的数据进行写操作的内核,所述同步执行单元可以位于异构多核处理器芯片中,其与异构多核处理器中的所有内核以及异构多核处理器的共享缓存通信,控制各内核中私有缓存和所述共享缓存的数据读写,以保证所述各内核中私有缓冲与所述共享缓存中数据的一致性。
在本公开实施例中,所述第一内核在发送写请求至同步控制单元后,可以接收同步控制单元发送的应答响应,所述应答响应是在所述同步控制单元向所述异构多核处理器中所有内核发送数据同步消息后发送的,所述数据同步消息用于使所述异构多核处理器中所有内核的缓存开启总线嗅探。在开启总线嗅探后,当所述共享缓存中的数据被任一内核修改时,其他内核均会收到相应的数据变更通知,此时其他内核会确认自己的私有缓存中是否本地存储了所述数据的副本,若是则会将所述副本中的数据标记为失效。
在本公开实施例中,所述第一内核在接收同步控制单元发送的应答响应后,可以将数据写入所述共享缓存,以使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。具体地,如前所述,现有技术方案中,各内核基于总线嗅探发现共享缓存中发生变更的数据,在自己的私有缓存中本地存储了所述数据的副本时,仅会将所述副本中的数据标记为失效,需要等待下次使用时才会读取进私有缓存。而在本公开实施例的技术方案中,当所述异构多核处理器中的第二内核基于总线嗅探发现共享缓存中发生变更的数据,在自己的私有缓存中本地存储了所述数据的副本时,直接更新所述副本中的数据,使私有缓存中存储的数据与共享缓存中存储的数据保持了一致性。其中,所述第二内核可以包括一个或多个内核。
根据本公开实施例的技术方案,通过对异构多核处理器中各内核私有缓存中的数据与共享缓存中的数据同步进行更新,与现有技术中各内核私有缓存中的数据需要在下次使用时才会从共享缓存中读取更新相比,提高了数据更新的实时性,提升了数据处理效率。
相关技术中,若异构多核处理器中同时有多个第一内核向同步控制单元发送写请求时,可能存在后写入的数据并非最终的正确数据,从而导致错误的情况。鉴于此,本公开实施例还提出了将异构多核处理器中的各内核针对不同的数据进行所有权分级,通过优先写入低所有权等级的数据的方式,保证最后写入的是对数据具有高优先权等级的内核中的数据,保证了数据在正确性和安全性。
具体地,在本公开实施例中,所述同步控制单元在发送应答响应至所述第一内核前,还可以确定当前是否有其他内核针对相同数据发送写请求;若否,则直接发送应答响应至所述第一内核;若是,则按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
在本公开实施例中,所述各内核对所述数据的所有权等级可以由数据与各内核的关联因子确定。其中,所述关联因子可以由所述数据被各内核的调用频率、调用类型等确定。在确定了所述关联因子后,可以根据关联因子由大至小确定各内核对所述数据的所有权等级,并将该所有权等级与各内核的唯一编号关联,得到所有权等级查询表。通过查询所述所有权等级查询表,即可得到各内核对所述数据的所有权等级。
根据本公开实施例的技术方案,通过将异构多核处理器中的各内核针对不同的数据进行所有权分级,优先写入低所有权等级的数据,保证了最后写入的是对数据具有高优先权等级的内核中的数据,进而保证了数据在正确性和安全性。
图3示出根据本公开实施例的又一种异构多核处理器保证共享缓存一致性的控制方法的流程图。
如图3所示,所述异构多核处理器保证共享缓存一致性的控制方法包括步骤S301-步骤S302:
在步骤S301中,第二内核在接收到同步控制单元发送的数据同步消息时,开启总线嗅探,其中,所述数据同步消息是在所述同步控制单元接收到第一内核发送的写请求后发送至所述第二内核的;
在步骤S302中,在基于所述总线嗅探确定第一内核写入所述共享缓存的数据在该第二内核本地存储有副本时,更新所述副本中的数据。
在本公开实施例中,所述异构多核处理器保证共享缓存一致性的控制方法可以由异构多核处理器中的第二内核执行,所述第二内核可以包括一个或多个内核。
在本公开实施例中,所述第二内核首先在接收到同步控制单元发送的数据同步消息时,开启总线嗅探,其中,所述数据同步消息是在所述同步控制单元接收到第一内核发送的写请求后发送至所述第二内核的。其中,所述同步执行单元可以位于异构多核处理器芯片中,其与异构多核处理器中的所有内核以及异构多核处理器的共享缓存通信,控制各内核中私有缓存和所述共享缓存的数据读写,以保证所述各内核中私有缓冲与所述共享缓存中数据的一致性。
相关技术中,所述第二内核在开启总线嗅探后,当所述共享缓存中的数据被任一内核修改时,其他内核均会收到相应的数据变更通知,此时其他内核会确认自己的私有缓存中是否本地存储了所述数据的副本,若是则会将所述副本中的数据标记为失效。
在本公开实施例中,所述第二内核在基于所述总线嗅探确定第一内核写入所述共享缓存的数据在该第二内核本地存储有副本时,更新所述副本中的数据。具体地,如前所述,现有技术方案中,各内核基于总线嗅探发现共享缓存中发生变更的数据,在自己的私有缓存中本地存储了所述数据的副本时,仅会将所述副本中的数据标记为失效,需要等待下次使用时才会读取进私有缓存。而在本公开实施例的技术方案中,当所述异构多核处理器中的第二内核基于总线嗅探发现共享缓存中发生变更的数据,在自己的私有缓存中本地存储了所述数据的副本时,直接更新所述副本中的数据,使私有缓存中存储的数据与共享缓存中存储的数据保持了一致性。
根据本公开实施例的技术方案,通过对异构多核处理器中各内核私有缓存中的数据与共享缓存中的数据同步进行更新,与现有技术中各内核私有缓存中的数据需要在下次使用时才会从共享缓存中读取更新相比,提高了数据更新的实时性,提升了数据处理效率。
在本公开实施例中,所述第一内核在接收到所述同步控制单元发送的应答响应后将数据写入共享缓存,然后所述第二内核才能基于总线嗅探确定第一内核写入所述共享缓存的数据在该第二内核本地存储有副本。所述第一内核可以在接收到所述同步控制单元发送的应答响应后将数据写入共享缓存,所述同步控制单元在发送所述应答响应前,还可以先确定所述共享缓存是否正在执行写操作,若否,则在发送数据同步消息后应答所述第一内核发送的写请求;若是,则在发送数据同步消息后,且在当前写操作完成后应答所述第一内核发送的写请求。
相关技术中,若异构多核处理器中同时有多个第一内核向同步控制单元发送写请求时,可能存在后写入的数据并非最终的正确数据,从而导致错误的情况。鉴于此,本公开实施例还提出了将异构多核处理器中的各内核针对不同的数据进行所有权分级,通过优先写入低所有权等级的数据的方式,保证最后写入的是对数据具有高优先权等级的内核中的数据,保证了数据在正确性和安全性。
具体地,在本公开实施例中,所述同步控制单元在发送应答响应至所述第一内核前,还可以确定当前是否有其他内核针对相同数据发送写请求;若否,则直接发送应答响应至所述第一内核;若是,则按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
在本公开实施例中,所述各内核对所述数据的所有权等级可以由数据与各内核的关联因子确定。其中,所述关联因子可以由所述数据被各内核的调用频率、调用类型等确定。在确定了所述关联因子后,可以根据关联因子由大至小确定各内核对所述数据的所有权等级,并将该所有权等级与各内核的唯一编号关联,得到所有权等级查询表。通过查询所述所有权等级查询表,即可得到各内核对所述数据的所有权等级。
根据本公开实施例的技术方案,通过将异构多核处理器中的各内核针对不同的数据进行所有权分级,优先写入低所有权等级的数据,保证了最后写入的是对数据具有高优先权等级的内核中的数据,进而保证了数据在正确性和安全性。
图4示出根据本公开实施例的异构多核处理器保证共享缓存一致性的控制装置的结构框图。
如图4所示,所述异构多核处理器保证共享缓存一致性的控制装置400包括:
第一接收模块410,被配置为接收第一内核发送的写请求;
第一发送模块420,被配置为发送数据同步消息至所述异构多核处理器中所有内核,以使所述异构多核处理器中所有内核的缓存开启总线嗅探;
第二发送模块430,被配置为发送应答响应至所述第一内核,以使所述第一内核在接收到所述应答响应后,将数据写入所述共享缓存,并使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。
在本公开实施例中,所述第二内核包括至少一个内核。
在本公开实施例中,在发送所述数据同步消息后,还包括:确定所述共享缓存是否正在执行写操作;若否,则在发送数据同步消息后应答所述第一内核发送的写请求;若是,则在发送数据同步消息后,且在当前写操作完成后应答所述第一内核发送的写请求。
在本公开实施例中,所述发送应答响应至所述第一内核,包括:确定当前是否有其他内核针对相同数据发送写请求;若否,则直接发送应答响应至所述第一内核;若是,则按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
在本公开实施例中,所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。其中,所述关联因子可以由所述数据被各内核的调用频率、调用类型等确定。在确定了所述关联因子后,可以根据关联因子由大至小确定各内核对所述数据的所有权等级,并将该所有权等级与各内核的唯一编号关联,得到所有权等级查询表。通过查询所述所有权等级查询表,即可得到各内核对所述数据的所有权等级。
根据本公开实施例的技术方案,通过对异构多核处理器中各内核私有缓存中的数据与共享缓存中的数据同步进行更新,与现有技术中各内核私有缓存中的数据需要在下次使用时才会从共享缓存中读取更新相比,提高了数据更新的实时性,提升了数据处理效率。
图5示出根据本公开实施例的另一种异构多核处理器保证共享缓存一致性的控制装置的结构框图。
如图5所示,所述异构多核处理器保证共享缓存一致性的控制装置500包括:
第三发送模块510,被配置为第一内核发送写请求至同步控制单元;
第二接收模块520,被配置为接收同步控制单元发送的应答响应,所述应答响应是在所述同步控制单元向所述异构多核处理器中所有内核发送数据同步消息后发送的,所述数据同步消息用于使所述异构多核处理器中所有内核的缓存开启总线嗅探;
写入模块530,被配置为将数据写入所述共享缓存,以使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。
在本公开实施例中,所述第二内核包括至少一个内核。
在本公开实施例中,所述接收同步控制单元发送的应答响应,还包括:若所述共享缓存当前正在执行写操作,则所述同步控制单元发送的应答响应是在所述共享缓存当前正在执行的写操作执行完成后发送的。
在本公开实施例中,所述接收同步控制单元发送的应答响应,还包括:若当前还有其他内核针对相同数据发送了写请求,则所述同步控制单元按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
在本公开实施例中,所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。其中,所述关联因子可以由所述数据被各内核的调用频率、调用类型等确定。在确定了所述关联因子后,可以根据关联因子由大至小确定各内核对所述数据的所有权等级,并将该所有权等级与各内核的唯一编号关联,得到所有权等级查询表。通过查询所述所有权等级查询表,即可得到各内核对所述数据的所有权等级。
根据本公开实施例的技术方案,通过对异构多核处理器中各内核私有缓存中的数据与共享缓存中的数据同步进行更新,与现有技术中各内核私有缓存中的数据需要在下次使用时才会从共享缓存中读取更新相比,提高了数据更新的实时性,提升了数据处理效率。
图6示出根据本公开实施例的又一种异构多核处理器保证共享缓存一致性的控制装置的结构框图。
如图6所示,所述异构多核处理器保证共享缓存一致性的控制装置600包括:
开启模块610,被配置为第二内核在接收到同步控制单元发送的数据同步消息时,开启总线嗅探,其中,所述数据同步消息是在所述同步控制单元接收到第一内核发送的写请求后发送至所述第二内核的;
更新模块620,被配置为在基于所述总线嗅探确定第一内核写入所述共享缓存的数据在该第二内核本地存储有副本时,更新所述副本中的数据。
在本公开实施例中,所述第二内核包括至少一个内核。
在本公开实施例中,还包括:所述第一内核在接收到所述同步控制单元发送的应答响应后将数据写入共享缓存;所述同步控制单元在发送所述应答响应前,确定所述共享缓存是否正在执行写操作;
若否,则在发送数据同步消息后应答所述第一内核发送的写请求;
若是,则在发送数据同步消息后,且在当前写操作完成后应答所述第一内核发送的写请求。
在本公开实施例中,还包括:所述同步控制单元在发送所述应答响应前,确定当前是否有其他内核针对相同数据发送写请求;若否,则直接发送应答响应至所述第一内核;若是,则按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
在本公开实施例中,所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。其中,所述关联因子可以由所述数据被各内核的调用频率、调用类型等确定。在确定了所述关联因子后,可以根据关联因子由大至小确定各内核对所述数据的所有权等级,并将该所有权等级与各内核的唯一编号关联,得到所有权等级查询表。通过查询所述所有权等级查询表,即可得到各内核对所述数据的所有权等级。
根据本公开实施例的技术方案,通过对异构多核处理器中各内核私有缓存中的数据与共享缓存中的数据同步进行更新,与现有技术中各内核私有缓存中的数据需要在下次使用时才会从共享缓存中读取更新相比,提高了数据更新的实时性,提升了数据处理效率。
图7示出根据本公开实施例的异构多核处理器的示意图。
如图7所示,所述异构多核处理器包括同步控制单元、共享缓存、数据总线以及0-n多个内核,n为正整数,每个内核中包括各自的私有缓存。各内核可以发送写请求至所述同步控制单元,同步控制单元接收到写请求后,首先发送数据同步消息至所有内核,以使所有内核开启总线嗅探;然后由所述同步控制单元发送应答响应至发送了写请求的内核,该内核在接收到所述应答响应后,通过数据总线将待写入的数据写入所述共享缓存。其他内核在基于总线嗅探确认共享缓存中的数据发生了变化时,判断自己的私有缓存中是否有保存了该数据的副本,若有,则更新所述副本。通过这种方式,保证了异构多核处理器中共享缓存和私有缓存之间数据的一致性。
本公开实施例还提供一种芯片,所述芯片包括上述异构多核处理器保证共享缓存一致性的控制装置,所述装置可以通过软件、硬件或者两者的结合实现成为芯片的部分或者全部。
本公开还公开了一种电子设备,图8示出根据本公开实施例的电子设备的结构框图。
如图8所示,所述电子设备包括存储器和处理器,其中,存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现根据本公开的实施例的异构多核处理器保证共享缓存一致性的控制方法。
其中,所述异构多核处理器保证共享缓存一致性的控制方法包括:接收第一内核发送的写请求;发送数据同步消息至所述异构多核处理器中所有内核,以使所述异构多核处理器中所有内核的缓存开启总线嗅探;发送应答响应至所述第一内核,以使所述第一内核在接收到所述应答响应后,将数据写入所述共享缓存,并使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。
图9示出适于用来实现根据本公开实施例的方法的计算机系统的结构示意图。
如图9所示,计算机系统包括处理单元,其可以根据存储在只读存储器(ROM)中的程序或者从存储部分加载到随机访问存储器(RAM)中的程序而执行上述实施例中的各种方法。在RAM中,还存储有计算机系统操作所需的各种程序和数据。处理单元、ROM以及RAM通过总线彼此相连。输入/输出(I/O)接口也连接至总线。
以下部件连接至I/O接口:包括键盘、鼠标等的输入部分;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分。通信部分经由诸如因特网的网络执行通信过程。驱动器也根据需要连接至I/O接口。可拆卸介质,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器上,以便于从其上读出的计算机程序根据需要被安装入存储部分。其中,所述处理单元可实现为CPU、GPU、TPU、FPGA、NPU等处理单元。
特别地,根据本公开的实施例,上文描述的方法可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包含用于执行上述方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分从网络上被下载和安装,和/或从可拆卸介质被安装。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元或模块可以通过软件的方式实现,也可以通过可编程硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中电子设备或计算机系统中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。

Claims (33)

1.一种异构多核处理器保证共享缓存一致性的控制方法,其特征在于,包括:
接收第一内核发送的写请求;
发送数据同步消息至所述异构多核处理器中所有内核,以使所述异构多核处理器中所有内核的缓存开启总线嗅探;
发送应答响应至所述第一内核,以使所述第一内核在接收到所述应答响应后,将数据写入所述共享缓存,并使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。
2.根据权利要求1所述的方法,其特征在于,
所述第二内核包括至少一个内核。
3.根据权利要求1所述的方法,其特征在于,在发送所述数据同步消息后,还包括:
确定所述共享缓存是否正在执行写操作;
若否,则在发送数据同步消息后应答所述第一内核发送的写请求;
若是,则在发送数据同步消息后,且在当前写操作完成后应答所述第一内核发送的写请求。
4.根据权利要求1所述的方法,其特征在于,所述发送应答响应至所述第一内核,包括:
确定当前是否有其他内核针对相同数据发送写请求;
若否,则直接发送应答响应至所述第一内核;
若是,则按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
5.根据权利要求4所述的方法,其特征在于,
所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。
6.一种异构多核处理器保证共享缓存一致性的控制方法,其特征在于,包括:
第一内核发送写请求至同步控制单元;
接收同步控制单元发送的应答响应,所述应答响应是在所述同步控制单元向所述异构多核处理器中所有内核发送数据同步消息后发送的,所述数据同步消息用于使所述异构多核处理器中所有内核的缓存开启总线嗅探;
将数据写入所述共享缓存,以使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。
7.根据权利要求6所述的方法,其特征在于,
所述第二内核包括至少一个内核。
8.根据权利要求6所述的方法,其特征在于,所述接收同步控制单元发送的应答响应,还包括:
若所述共享缓存当前正在执行写操作,则所述同步控制单元发送的应答响应是在所述共享缓存当前正在执行的写操作执行完成后发送的。
9.根据权利要求6所述的方法,其特征在于,所述接收同步控制单元发送的应答响应,还包括:
若当前还有其他内核针对相同数据发送了写请求,则所述同步控制单元按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
10.根据权利要求9所述的方法,其特征在于,
所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。
11.一种异构多核处理器保证共享缓存一致性的控制方法,包括:
第二内核在接收到同步控制单元发送的数据同步消息时,开启总线嗅探,其中,所述数据同步消息是在所述同步控制单元接收到第一内核发送的写请求后发送至所述第二内核的;
在基于所述总线嗅探确定第一内核写入所述共享缓存的数据在该第二内核本地存储有副本时,更新所述副本中的数据。
12.根据权利要求11所述的方法,其特征在于,
所述第二内核包括至少一个内核。
13.根据权利要求11所述的方法,其特征在于,还包括:
所述第一内核在接收到所述同步控制单元发送的应答响应后将数据写入共享缓存;
所述同步控制单元在发送所述应答响应前,确定所述共享缓存是否正在执行写操作;
若否,则在发送数据同步消息后应答所述第一内核发送的写请求;
若是,则在发送数据同步消息后,且在当前写操作完成后应答所述第一内核发送的写请求。
14.根据权利要求13所述的方法,其特征在于,还包括:
所述同步控制单元在发送所述应答响应前,确定当前是否有其他内核针对相同数据发送写请求;
若否,则直接发送应答响应至所述第一内核;
若是,则按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
15.根据权利要求14所述的方法,其特征在于,
所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。
16.一种异构多核处理器保证共享缓存一致性的控制装置,其特征在于,包括:
第一接收模块,被配置为接收第一内核发送的写请求;
第一发送模块,被配置为发送数据同步消息至所述异构多核处理器中所有内核,以使所述异构多核处理器中所有内核的缓存开启总线嗅探;
第二发送模块,被配置为发送应答响应至所述第一内核,以使所述第一内核在接收到所述应答响应后,将数据写入所述共享缓存,并使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。
17.根据权利要求16所述的装置,其特征在于,
所述第二内核包括至少一个内核。
18.根据权利要求16所述的装置,其特征在于,在发送所述数据同步消息后,还包括:
确定所述共享缓存是否正在执行写操作;
若否,则在发送数据同步消息后应答所述第一内核发送的写请求;
若是,则在发送数据同步消息后,且在当前写操作完成后应答所述第一内核发送的写请求。
19.根据权利要求16所述的装置,其特征在于,所述发送应答响应至所述第一内核,包括:
确定当前是否有其他内核针对相同数据发送写请求;
若否,则直接发送应答响应至所述第一内核;
若是,则按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
20.根据权利要求19所述的装置,其特征在于,
所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。
21.一种异构多核处理器保证共享缓存一致性的控制装置,其特征在于,包括:
第三发送模块,被配置为第一内核发送写请求至同步控制单元;
第二接收模块,被配置为接收同步控制单元发送的应答响应,所述应答响应是在所述同步控制单元向所述异构多核处理器中所有内核发送数据同步消息后发送的,所述数据同步消息用于使所述异构多核处理器中所有内核的缓存开启总线嗅探;
写入模块,被配置为将数据写入所述共享缓存,以使所述异构多核处理器中的第二内核在基于所述总线嗅探确定写入的所述数据在该第二内核本地存储有副本时,更新所述副本中的数据。
22.根据权利要求21所述的装置,其特征在于,
所述第二内核包括至少一个内核。
23.根据权利要求21所述的装置,所述接收同步控制单元发送的应答响应,还包括:
若所述共享缓存当前正在执行写操作,则所述同步控制单元发送的应答响应是在所述共享缓存当前正在执行的写操作执行完成后发送的。
24.根据权利要求21所述的装置,其特征在于,所述接收同步控制单元发送的应答响应,还包括:
若当前还有其他内核针对相同数据发送了写请求,则所述同步控制单元按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
25.根据权利要求24所述的装置,其特征在于,
所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。
26.一种异构多核处理器保证共享缓存一致性的控制装置,包括:
开启模块,被配置为第二内核在接收到同步控制单元发送的数据同步消息时,开启总线嗅探,其中,所述数据同步消息是在所述同步控制单元接收到第一内核发送的写请求后发送至所述第二内核的;
更新模块,被配置为在基于所述总线嗅探确定第一内核写入所述共享缓存的数据在该第二内核本地存储有副本时,更新所述副本中的数据。
27.根据权利要求26所述的装置,其特征在于,
所述第二内核包括至少一个内核。
28.根据权利要求26所述的装置,其特征在于,还包括:
所述第一内核在接收到所述同步控制单元发送的应答响应后将数据写入共享缓存;
所述同步控制单元在发送所述应答响应前,确定所述共享缓存是否正在执行写操作;
若否,则在发送数据同步消息后应答所述第一内核发送的写请求;
若是,则在发送数据同步消息后,且在当前写操作完成后应答所述第一内核发送的写请求。
29.根据权利要求28所述的装置,其特征在于,还包括:
所述同步控制单元在发送所述应答响应前,确定当前是否有其他内核针对相同数据发送写请求;
若否,则直接发送应答响应至所述第一内核;
若是,则按照针对相同数据发送了写请求的各内核对所述数据的所有权等级由低至高的顺序,发送应答响应至所述各内核。
30.根据权利要求29所述的装置,其特征在于,
所述各内核对所述数据的所有权等级由数据与各内核的关联因子确定。
31.一种电子设备,其特征在于,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现权利要求1到15中任一项所述的方法步骤。
32.一种芯片,其特征在于,
所述芯片包括如权利要求16-30中任一项所述的装置。
33.一种计算机可读存储介质,其上存储有计算机指令,其特征在于,该计算机指令被处理器执行时实现权利要求1到15中任一项所述的方法步骤。
CN202211305649.5A 2022-10-24 2022-10-24 异构多核处理器保证共享缓存一致性的控制方法和装置 Pending CN115373877A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211305649.5A CN115373877A (zh) 2022-10-24 2022-10-24 异构多核处理器保证共享缓存一致性的控制方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211305649.5A CN115373877A (zh) 2022-10-24 2022-10-24 异构多核处理器保证共享缓存一致性的控制方法和装置

Publications (1)

Publication Number Publication Date
CN115373877A true CN115373877A (zh) 2022-11-22

Family

ID=84073246

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211305649.5A Pending CN115373877A (zh) 2022-10-24 2022-10-24 异构多核处理器保证共享缓存一致性的控制方法和装置

Country Status (1)

Country Link
CN (1) CN115373877A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117014504A (zh) * 2023-08-11 2023-11-07 北京市合芯数字科技有限公司 数据传输方法、装置、设备、介质及产品
CN117407181A (zh) * 2023-12-14 2024-01-16 沐曦集成电路(南京)有限公司 一种基于屏障指令的异构计算进程同步方法及系统
CN117608864A (zh) * 2024-01-23 2024-02-27 中诚华隆计算机技术有限公司 一种多核缓存一致性方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101470669A (zh) * 2007-12-28 2009-07-01 无锡江南计算技术研究所 多缓存数据一致性的处理方法及主存处理机
CN104991868A (zh) * 2015-06-09 2015-10-21 浪潮(北京)电子信息产业有限公司 一种多核处理器系统和缓存一致性处理方法
US20160232107A1 (en) * 2015-02-05 2016-08-11 Alberto Ros Systems and methods for coherence in clustered cache hierarchies
CN106126450A (zh) * 2016-06-20 2016-11-16 中国航天科技集团公司第九研究院第七七研究所 一种应对多核处理器监听访问冲突的Cache设计结构及方法
CN112416615A (zh) * 2020-11-05 2021-02-26 珠海格力电器股份有限公司 多核处理器及其缓存一致性的实现方法、装置和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101470669A (zh) * 2007-12-28 2009-07-01 无锡江南计算技术研究所 多缓存数据一致性的处理方法及主存处理机
US20160232107A1 (en) * 2015-02-05 2016-08-11 Alberto Ros Systems and methods for coherence in clustered cache hierarchies
CN104991868A (zh) * 2015-06-09 2015-10-21 浪潮(北京)电子信息产业有限公司 一种多核处理器系统和缓存一致性处理方法
CN106126450A (zh) * 2016-06-20 2016-11-16 中国航天科技集团公司第九研究院第七七研究所 一种应对多核处理器监听访问冲突的Cache设计结构及方法
CN112416615A (zh) * 2020-11-05 2021-02-26 珠海格力电器股份有限公司 多核处理器及其缓存一致性的实现方法、装置和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘柯: "多核处理器Cache一致性的改进", 《西安邮电大学学报》 *
娄耘赫: "面向大数据处理的多核处理器Cache一致性协议", 《中国知网》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117014504A (zh) * 2023-08-11 2023-11-07 北京市合芯数字科技有限公司 数据传输方法、装置、设备、介质及产品
CN117014504B (zh) * 2023-08-11 2024-04-16 北京市合芯数字科技有限公司 数据传输方法、装置、设备、介质及产品
CN117407181A (zh) * 2023-12-14 2024-01-16 沐曦集成电路(南京)有限公司 一种基于屏障指令的异构计算进程同步方法及系统
CN117407181B (zh) * 2023-12-14 2024-03-22 沐曦集成电路(南京)有限公司 一种基于屏障指令的异构计算进程同步方法及系统
CN117608864A (zh) * 2024-01-23 2024-02-27 中诚华隆计算机技术有限公司 一种多核缓存一致性方法及系统
CN117608864B (zh) * 2024-01-23 2024-04-09 中诚华隆计算机技术有限公司 一种多核缓存一致性方法及系统

Similar Documents

Publication Publication Date Title
CN115373877A (zh) 异构多核处理器保证共享缓存一致性的控制方法和装置
CN1729458B (zh) 状态转发方法
US9753954B2 (en) Data node fencing in a distributed file system
US10275347B2 (en) System, method and computer program product for managing caches
JP4261487B2 (ja) キャッシュ・コヒーレンス・プロトコルに対する投機的分散競合解決
US20110289510A1 (en) Atomic-operation coalescing technique in multi-chip systems
EP2244189A1 (en) Multi-core processor cache coherence for reduced off-chip traffic
JP2002528814A (ja) 分散型トランザクション処理システムと方法
US7664900B2 (en) Multiprocessor system and method for processing memory access
CN113761294B (zh) 数据管理方法、装置、存储介质以及电子设备
US7925838B2 (en) Directory-based data transfer protocol for multiprocessor system
JP2007207223A (ja) 複数のコヒーレンシ・ドメインを有するデータ処理システムでフラッシュ動作を処理するデータ処理システム、方法、およびメモリ・コントローラ
WO2019193455A1 (en) Coordination of cache memory operations
US20200133869A1 (en) Method, electronic device and computer program product for data storage
CN108536473B (zh) 读取数据的方法和装置
EP1304621A2 (en) Updating directory cache
US20080047005A1 (en) Access monitoring method and device for shared memory
US7912998B2 (en) DMA access systems and methods
CN113094430A (zh) 一种数据处理方法、装置、设备以及存储介质
KR20050074310A (ko) 캐시 라인 소유권 이전 방법 및 장치
KR101858597B1 (ko) 프로세싱 인 메모리 시스템의 연산할 작업, 연산할 데이터 및 연산 결과 데이터 전달 방법 및 프로세싱 인 메모리 시스템
US20140164324A1 (en) Utilization of data structures to synchronize copies of a resource
US20190087333A1 (en) Converting a stale cache memory unique request to a read unique snoop response in a multiple (multi-) central processing unit (cpu) processor to reduce latency associated with reissuing the stale unique request
JP3202939B2 (ja) キャッシュ・コヒーレンシを維持するための方法及び装置
EP4124963A1 (en) System, apparatus and methods for handling consistent memory transactions according to a cxl protocol

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20221122

RJ01 Rejection of invention patent application after publication