CN101794271A - 多核内存一致性的实现方法和装置 - Google Patents
多核内存一致性的实现方法和装置 Download PDFInfo
- Publication number
- CN101794271A CN101794271A CN201010137699A CN201010137699A CN101794271A CN 101794271 A CN101794271 A CN 101794271A CN 201010137699 A CN201010137699 A CN 201010137699A CN 201010137699 A CN201010137699 A CN 201010137699A CN 101794271 A CN101794271 A CN 101794271A
- Authority
- CN
- China
- Prior art keywords
- processor group
- level cache
- data
- cache
- cluster
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000015654 memory Effects 0.000 title claims abstract description 49
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000001914 filtration Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0813—Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
- G06F12/0833—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means in combination with broadcast means (e.g. for invalidation or updating)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明实施例公开了一种多核内存一致性的实现方法和装置。其中,一种多核内存一致性的实现方法,包括:第一处理器组的二级缓存接收第一处理器组读取第一数据的控制信号;若第一数据当前由第二处理器组维护,通过第二处理器组的一级缓存的快速一致性接口在第二处理器组的一级缓存中读取第一数据,其中,第一处理器组的二级缓存与第二处理器组的一级缓存的快速一致性接口连接;将读取的所述第一数据通过第一处理器组的二级缓存提供给第一处理器组处理。本发明实施例的技术方案能够解决ARM Cortex-A9架构cluster间内存一致性的问题。
Description
技术领域
本发明涉及计算机技术领域,具体涉及多核内存一致性的实现方法、多核处理设备。
背景技术
目前,ARM公司提出Cortex-A9多核系统(MPcore,Multi-processors core)处理器,Cortex-A9MPcore处理器可支持4核,其一个处理器组(cluster)内各处理器核之间通过内存一致性监控单元(SCU,Snooping Control Unit)保证内存访问一致性(Memory Coherency),一个cluster内包含4个处理器核。
一个cluster内通常自带一级缓存(L1 cache),为进一步提高数据读取的效率,通常还会为cluster配套一个二级缓存(L2 cache),但是,Cortex-A9 MPcore的一级缓存仅支持写回(write back),不支持写直通(write through)操作,即其不支持L1 cache更新后同步更新L2 cache,这就产生了多个cluster之间的cache一致性问题。
ARM Cortex-A9系列目前并没有提供4核以上联合工作的解决方案,这对多于4核的应用造成极大不便。例如,某产品应用需要大于4核的架构,一个任务需要分割到多个核中按多线程(pipeline)处理,若让某个任务的处理经过一个cluster处理而在另一个cluster终结,此时,pipeline的处理会遇到跨cluster的情况,cluster之间需要解决cache一致性的问题。
发明内容
本发明实施例提供多核内存一致性的实现方法和装置,能够解决ARMCortex-A9架构cluster间内存一致性的问题。
为解决上述技术问题,本发明实施例提供以下技术方案:
一种多核内存一致性的实现方法,包括:
第一处理器组的二级缓存接收第一处理器组读取第一数据的控制信号;
若第一数据当前由第二处理器组维护,通过第二处理器组的一级缓存的快速一致性接口在第二处理器组的一级缓存中读取第一数据,其中,第一处理器组的二级缓存与第二处理器组的一级缓存的快速一致性接口连接;
将读取的所述第一数据通过第一处理器组的二级缓存提供给第一处理器组处理。
一种多核内存一致性的实现方法,包括:
第一处理器组的二级缓存接收第一处理器组读取第二数据的控制信号;
若第二数据当前维护在共享缓存中,从所述共享缓存中读取第二数据,其中,第一处理器组的一级缓存的快速一致性接口连接到所述共享缓存,第一处理器组的二级缓存连接到所述共享缓存;
将读取的所述第二数据通过第一处理器组的二级缓存提供给第一处理器组处理。
一种多核处理设备,其特征在于,包括:
第一处理器组、第二处理器组、第一处理器组的二级缓存以及第二处理器组的二级缓存;其中,第一处理器组的二级缓存与第二处理器组的一级缓存的快速一致性接口连接;
其中,第一处理器组的二级缓存,用于接收第一处理器组读取第一数据的控制信号;若第一数据当前由第二处理器组维护,通过第二处理器组的一级缓存的快速一致性接口在第二处理器组的一级缓存中读取第一数据;将读取的所述第一数据通过第一处理器组的二级缓存提供给第一处理器组处理。
一种多核处理设备,包括:
第一处理器组、第二处理器组、共享缓存、第一处理器组的二级缓存以及第二处理器组的二级缓存;其中,第一处理器组的二级缓存、第一处理器组的一级缓存的快速一致性接口与所述共享缓存连接;
其中,第一处理器组的二级缓存,用于接收第一处理器组读取第二数据的控制信号;若第二数据当前维护在共享缓存中,从所述共享缓存中读取第二数据;将读取的所述第二数据通过第一处理器组的二级缓存提供给第一处理器组处理。
由上可见,在本发明实施例的一种方案中,若系统中的多个处理器组之间需要跨处理器组联合处理,当发现第一处理器组需要处理当前由第二处理器组维护的某一数据时,则利用第二处理器组的一级缓存的ACP接口,从第二处理器组的一级缓存中读取该数据进行处理,由于是从当前维护该数据的第二处理器组的一级缓存中读取出的,能够保证该数据的有效性,该处理方式能够保证多个处理器组间的内存一致性,进而能够实现4核以上联合工作。
本发明实施例的另一种方案中,若系统中的多个处理器组之间需要跨处理器组联合处理,增设一个共享缓存,各处理器组的一级缓存的ACP接口、二级缓存与该增设的共享缓存连接,当发现例如第一处理器组需要处理当前维护在共享缓存的某一数据时,则从该共享缓存中读取该数据并通过第一处理器组的二级缓存提供给第一处理器组处理。由于可将需要跨处理器组联合处理的数据维护在共享缓存中,各处理器组都从共享缓存中获取该类型数据处理,该处理方式能够保证多个处理器组间的内存一致性,进而能够实现4核以上联合工作。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种cluster的外部结构示意图;
图2是本发明实施例一提供的一种多核内存一致性的实现方法流程图;
图3-a是本发明实施例二提供的一种多核处理设备示意图;
图3-b是本发明实施例二提供的另一种多核处理设备示意图;
图3-c是本发明实施例二提供的一种多核内存一致性的实现方法流程图;
图3-d是本发明实施例二提供的另一种多核处理设备示意图;
图4是本发明实施例三提供的一种多核内存一致性的实现方法流程图;
图5-a是本发明实施例四提供的一种多核处理设备示意图;
图5-b是本发明实施例四提供的另一种多核处理设备示意图;
图5-c是本发明实施例四提供的一种多核内存一致性的实现方法流程图;
图6-a是本发明实施例五提供的一种多核处理设备示意图;
图6-b是本发明实施例五提供的另一种多核处理设备示意图;
图7-a是本发明实施例六提供的一种多核处理设备示意图;
图7-b是本发明实施例六提供的另一种多核处理设备示意图。
具体实施方式
本发明实施例提供多核内存一致性的实现方法和装置,能够解决ARMCortex-A9架构多个cluster间内存一致性的问题。
以下分别进行详细说明。
首先参见图1,图1为一种Cortex-A9架构的一个cluster(包含4核)的外部结构示意图,一个cluster包括:4个处理器核、一级缓存、SCU、以及一个快速一致性接口(ACP,Accelerate Coherency Port)。其中,一个cluster内的各处理器核之间通过内存一致性监控单元SCU保证内存访问一致性,cluster的SCU可连接到与该cluster配套的二级缓存;外部设备可以通过cluster的ACP接口访问该cluster的一级缓存,例如外部设备可通过cluster的ACP接口,从该cluster的一级缓存读取数据,或通过cluster的ACP接口,向该cluster的一级缓存写入数据。
本发明实施例的方案主要基于上述结构的cluster,解决在多个cluster联合工作时,各cluster间内存一致性的问题。
实施例一
下面以某个基于ARM Cortex-A9架构的多核处理设备至少包括第一处理器组和第二处理器组联合工作,其中,第一处理器组的多核内存一致性的实现功能由第一处理器组的二级缓存主要负责实现为例,介绍第一处理器组的多核内存一致性的实现过程,参见图2,本发明实施例中实现多核内存一致性的方法的一个实施例,可以包括:
210、第一处理器组的二级缓存接收第一处理器组读取第一数据的控制信号。
在一种应用场景下,当第一处理器组需要处理第一数据时,第一处理器组可发出读取第一数据的控制信号,例如第一数据当前由第二处理器组维护,第二处理器组可将第一数据维护在其一级缓存中。
220、若第一数据当前由第二处理器组维护,第一处理器组的二级缓存通过第二处理器组的一级缓存的ACP接口在第二处理器组的一级缓存中读取第一数据,其中,第一处理器组的二级缓存与第二处理器组的一级缓存的ACP接口连接。
在实际应用中,cluster配套的二级缓存可以设置如先进可扩展接口(AXI,Advanced Extensible Interface)总线接口和地址过滤(M-F,Master-filter)接口,其中,二级缓存可通过AXI总线接口与系统总线连接,还可通过M-F接口与其它设备连接。
第一处理器组的二级缓存例如通过M-F接口与第二处理器组的一级缓存的ACP接口直接连接,或通过总线连接(即第一处理器组的二级缓存的M-F接口和第二处理器组的一级缓存的ACP接口分别连接到总线,在此架构下,其它一个或多个处理器组的二级缓存的M-F接口、一级缓存的ACP接口亦可连接到该总线上,可实现多个处理器组的互通),其中,利用总线连接二级缓存的M-F接口和一级缓存的ACP接口,有利于实现处理器组的扩展。
此时,通过第二处理器组的一级缓存的ACP接口可读取缓存在第二处理器组的一级缓存中的第一数据,读取出的该第一数据可能是原始数据,或是被第二处理器组或其它处理器组进行一次或多次处理后的结果数据。
在一种应用场景下,当第一数据当前由第二处理器组维护时,第一处理器组的二级缓存可通过第二处理器组的一级缓存的快速一致性接口,向第二处理器组的一级缓存发送操作属性为可缓存的读取第一数据的控制信号,读取第二处理器组的一级缓存中的第一数据,以获得较高的读取效率。
230、第一处理器组的二级缓存将读取的第一数据通过第一处理器组的二级缓存提供给第一处理器组处理。
当然,若第二处理器组也需要参与跨处理器组处理,第二处理器组的二级缓存例如也可通过M-F接口与第一处理器组的一级缓存的ACP接口直接连接,或通过总线连接(即第二处理器组的二级缓存的M-F接口和第一处理器组的一级缓存的ACP接口分别连接到总线)。第二处理器组的多核内存一致性的实现功能亦可由第二处理器组的二级缓存主要负责实现,其实现过程可与第一处理器组的二级缓存类似,此处不再赘述。
可以理解,本实施例是以第一处理器组的二级缓存主要负责实现其多核内存一致性的实现功能的,当然基于上述的实现思想,也可利用其它元器件来完成该多核内存一致性的实现功能。
由上可见,本实施例中若系统中的多个处理器组之间需要跨处理器组联合处理,当发现第一处理器组需要处理当前由第二处理器组维护的某一数据时,则利用第二处理器组的一级缓存的ACP接口,从第二处理器组的一级缓存中读取该数据进行处理,由于是从当前维护该数据的第二处理器组的一级缓存中读取出的,能够保证该数据的有效性,该处理方式能够保证多个处理器组间的内存一致性,进而能够实现4核以上联合工作。
进一步的,当第一处理器组对第一数据进行处理后,可以获取第一处理器组对第一数据的处理结果;通过第二处理器组的一级缓存的ACP接口,向第二处理器组的一级缓存或二级缓存中写入第一处理器组对第一数据的处理结果(将其维护在第二处理器组的一级缓存或二级缓存中,以供第二处理器组或其它处理器组后续处理);或,将第一处理器组对第一数据的处理结果缓存在第一处理器组的二级缓存中。
实施例二
为便于更好的理解本发明实施例的技术方案,下面以基于ARM Cortex-A9架构的多核处理设备至少包括cluster-A和cluster-B联合工作,进行跨cluster处理的过程为例进行描述。
本实施例多核处理设备的cluster-A和cluster-B的连接架构可设计为如图3-a所示、cluster-A的SCU连接到其配套的二级缓存,cluster-A的二级缓存的AXI总线接口连接到系统总线,cluster-A的二级缓存的M-F接口直连到cluster-B的一级缓存的ACP接口;cluster-B的SCU连接到其配套的二级缓存,cluster-B的二级缓存的AXI总线接口连接到系统总线,cluster-B的二级缓存的M-F接口直连到cluster-A的一级缓存的ACP接口。或者,也可设计为如图3-b所示,cluster-A和cluster-B的二级缓存的M-F接口分别连接到总线、cluster-A和cluster-B的一级缓存的ACP接口分别连接到总线,即cluster-A的二级缓存的M-F接口和cluster-B的一级缓存的ACP接口通过总线连接;cluster-B的二级缓存的M-F接口和cluster-A的一级缓存的ACP接口通过总线连接,可以发现,基于如图3-b所示的架构,多核处理设备还可以扩展连接更多的cluster。
以对数据N的处理为例,参见图3-c,本发明实施例中实现多核内存一致性的方法的另一个实施例,可以包括:
301、当cluster-A需要处理数据N时,cluster-A可发出读取数据N的控制信号;其中,此处假设数据N当前由cluster-B维护;
302、cluster-A的二级缓存接收cluster-A读取数据N的控制信号,若cluster-A的二级缓存发现数据N当前由cluster-B维护,cluster-A的二级缓存通过cluster-B的一级缓存的ACP接口在cluster-B的一级缓存中读取数据N。
本发明实施例中的二级缓存以及一级缓存可以理解为具有一定数据处理能力的硬件单元,而不只是用于存储数据。可以通过cluster-A的二级缓存来读取或改写数据等。
在实际操作中,若数据N当前缓存在cluster-B的一级缓存中,则cluster-A的二级缓存通过cluster-B的一级缓存的ACP接口,直接将cluster-B的一级缓存中的数据N读取到cluster-A的二级缓存;此外,若数据N当前缓存在cluster-B的二级缓存中,cluster-B的一级缓存在获知cluster-A的二级缓存请求读取数据N时,cluster-B的一级缓存可以先将数据N读取到一级缓存中,然后cluster-A的二级缓存再通过cluster-B的一级缓存的ACP接口,将cluster-B的一级缓存中的数据N读取到cluster-A的二级缓存。
其中,cluster从其一级缓存以外的模块读取或写入数据,则其会将读取或写入该数据的控制信号的操作属性设置为不可缓存(non-Cacheable),而操作属性为可缓存(Cacheable)的读取或写入效率相对较高,两者对应的一次性读取写入的数据量不同,读取或写入该数据的控制信号的操作属性也体现出该数据的一种读写属性。
本实施例中,当cluster-A需要读取数据N时,由于数据N当前并没有维护在cluster-A的一级缓存中,即cluster-A需要从其一级缓存以外的模块读取数据N,此时,cluster-A将读取数据N的控制信号的操作属性设置为不可缓存。
此处,cluster-A的二级缓存若接收到来自cluster-A的操作属性为不可缓存的读取数据N的控制信号后,则将该读取数据N的控制信号的操作属性修改为可缓存(Cacheable),通过cluster-B的一级缓存的ACP接口,在cluster-B的一级缓存中读取数据N,即,cluster-A的二级缓存可通过cluster-B的一级缓存的ACP接口,向cluster-B的一级缓存发送操作属性为可缓存的读取数据N的控制信号,读取cluster-B的一级缓存中的数据N。
其中,non-Cacheable读写操作的效率要低于Cacheable读写操作,并且non-Cacheable读写操作通常是从双倍速率(DDR,Double Data Rate)同步动态随机处理器、邮箱(MailBox)等存储器读写,其读写速度远低于通过ACP接口访问另一cluster的一级缓存,因此,本发明实施例中二级缓存将该读取数据N的控制信号的操作属性修改为可缓存,在实现内存一致性的基础上,还提高了读取的效率。
此时,cluster-A的二级缓存通过cluster-B的一级缓存的ACP接口读取到cluster-A的二级缓存中的数据N,可能是某个任务的一个原始数据,或是一个被cluster-B或其它处理器组进行一次或多次处理后的结果数据。
303、cluster-A的二级缓存将读取的数据N通过cluster-A的二级缓存提供给cluster-A处理。
可以发现,cluster-A的二级缓存为cluster-A提供的数据N,是从当前维护数据N的cluster-B的一级缓存中读取出的,能够保证数据N的有效性,实现了多个处理器组之间跨处理器组联合处理时的内存一致性。
304、cluster-A的二级缓存获取第一处理器组对数据N的处理结果(为便于描述,下面将cluster-A对数据N的处理结果记为数据N′),通过cluster-B的一级缓存的ACP接口,向cluster-B的一级缓存或二级缓存中写入数据N′。
在一种应用场景下,若cluster-A将缓存数据N′的控制信号的操作属性设置为不可缓存(non-Cacheable),则cluster-A的二级缓存在接收到操作属性为不可缓存的缓存数据N′的控制信号后,可将该缓存数据N′的控制信号的操作属性修改为可缓存(Cacheable),通过cluster-B的一级缓存的ACP接口,向cluster-B的一级缓存或二级缓存中写入数据N′,将数据N′维护在cluster-B的一级缓存或二级缓存中,以供cluster-B或其它处理器组后续处理。其中,实现将数据N′写入到cluster-B的二级缓存的方式例如可以是:先将数据N′写入cluster-B的一级缓存,cluster-B的二级缓存再从其一级缓存中读取出数据N′,cluster-B的一级缓存再删除其缓存的数据N′。
此外,cluster-A亦可将处理数据N得到的数据N′直接缓存在其一级缓存中,或cluster-A的二级缓存在获取到数据N′后,也可直接将其缓存在cluster-A的二级缓存中,也就是说,数据N′由cluster-A维护,此后,若cluster-B(或其它处理器组)需要处理由cluster-A维护的数据N′,cluster-B的二级缓存亦可采用类似的方式,通过cluster-A的一级缓存的ACP接口在cluster-A的一级缓存中读取数据N′,并提供给cluster-B处理。
此外,在例如数据N′已经为对应任务的一个最终处理结果,或,后续各个处理器组都不需要再使用或处理数据N′等情况下,cluster-A的二级缓存也可直接缓存在cluster-A的二级缓存中,或进一步将其写入到DDR中,而可以不必通过cluster-B的一级缓存的ACP接口,向cluster-B的一级缓存或二级缓存中写入数据N′。
可以理解,若cluster-B需要处理当前由cluster-A维护的某个数据,cluster-B的二级缓存亦可采用类似的方式,通过cluster-A的一级缓存的ACP接口在cluster-A的一级缓存中读取该数据,并提供给cluster-B处理,其处理过程可与cluster-A的二级缓存相同,此处不再赘述。
下面以报文数据的过程举例来说,如图3-d所示,例如网口输入的报文数据N1通过cluster-A的一级缓存的ACP接口,被缓存到cluster-A的一级缓存或二级缓存中。当cluster-B需要处理报文数据N1时,cluster-B的二级缓存可通过cluster-A的一级缓存的ACP接口在cluster-A的一级缓存中读取该报文数据N1,提供cluster-B处理,此时为进一步提高访问效率,cluster-B的二级缓存可将读取报文数据N1的控制信号的操作属性设置为Cacheable。当报文数据N1处理完后,在通过cluster-A的一级缓存的ACP接口,将报文数据N1的处理结果更新到cluster-A的一级缓存或二级缓存中,此时,若cluster-B将缓存报文数据N1的处理结果的控制信号的操作属性设置为Cacheable,则可进一步做同步操作,将报文数据N1的处理结果从cluster-B的一级缓存中清空。
由上可见,本实施例中若多核处理设备中的多个处理器组之间需要跨处理器组联合处理,当发现cluster-A需要处理当前由cluster-B维护的某一数据时,则利用cluster-B的一级缓存的ACP接口,从cluster-B的一级缓存中读取该数据进行处理,由于是从当前维护该数据的cluster-B的一级缓存中读取出的,能够保证数据N的有效性,该处理方式能够保证多个处理器组间的内存一致性,进而能够实现4核以上联合工作。
进一步的,cluster的二级缓存通过对读写数据的控制信号的操作属性进行灵活转换,可进一步的提高访问效率;并且,所有配置均可以通过底层软件完成,对于上层应用可做到完全透明;配置pipeline跨cluster执行,根据二级缓存占用情况,可更灵活合理的分配例如ACP接口带宽等资源,进一步提高多核处理设备的运行效率。
实施例三
本实施例中仍以某个基于ARM Cortex-A9架构的多核处理设备至少包括第一处理器组和第二处理器组联合工作,其中,第一处理器组的多核内存一致性的实现功能由第一处理器组的二级缓存主要负责实现为例,介绍第一处理器组的多核内存一致性的实现过程。其中,本实施例在多核处理设备增设一个共享缓存,各处理器组的一级缓存的ACP接口连接共享缓存,各处理器组的二级缓存连接该共享缓存,利用该共享缓存实现多核内存的一致性。参见图4,本发明实施例中实现多核内存一致性的方法的另一个实施例,可以包括:
410、第一处理器组的二级缓存接收第一处理器组读取第二数据的控制信号;
在一种应用场景下,当第一处理器组需要处理第二数据时,第一处理器组可发出读取第二数据的控制信号,例如第二数据当前维护在共享缓存中。
420、若第二数据当前维护在共享缓存中,从该共享缓存中读取第二数据,其中,第一处理器组的一级缓存的快速一致性接口连接到该共享缓存,第一处理器组的二级缓存连接到该共享缓存;
420、将读取出的第二数据通过第一处理器组的二级缓存提供给第一处理器组处理。
在实际应用中,cluster配套的二级缓存可以设置例如AXI总线接口和地址过滤M-F接口。其中,二级缓存可通过AXI总线接口与系统总线连接,还可通过M-F接口与其它设备连接。
例如,第一处理器组的二级缓存通过M-F接口与共享缓存直连,第一处理器组的一级缓存的ACP接口与共享缓存直连,或通过总线连接(即第一处理器组的一级缓存的ACP接口、二级缓存的M-F接口、以及共享缓存的相应接口分别连接到总线,可以理解在此架构下,其它的一个或多个处理器组的一级缓存的ACP接口、二级缓存的M-F接口亦可连接到该总线上,可实现多个处理器组与共享缓存的互通),其中,利用总线将共享缓存与二级缓存的M-F接口、一级缓存的ACP接口连接,有利于实现处理器组的扩展。
此时,通过第一处理器组的二级缓存的M-F接口可以从共享缓存中读取第二数据,读取出的该第二数据可能是原始数据,或是已被第二处理器组或其它处理器组进行一次或多次处理后的结果数据。还可通过第一处理器组或第二处理器组的一级缓存的ACP接口,将第一处理器组或第二处理器组的一级缓存中的数据写入到共享缓存中。
进一步的,在第一处理器组处理第二数据得到第二数据的处理结果后,还可通过第一处理器组的一级缓存的快速一致性接口,将第一处理器组对第二数据的处理结果写入共享缓存中,具体可以是,利用控制信号,控制共享缓存通过第一处理器组的一级缓存的快速一致性接口,从第一处理器组的一级缓存中读取并缓存第一处理器组对第二数据的处理结果。或者,也可以获取第一处理器组对第二数据的处理结果;并将第一处理器组对第二数据的处理结果缓存在第一处理器组的二级缓存中(例如,在第一处理器组对第二数据的处理结果已经为对应任务的一个最终处理结果,或,后续各个处理器组都不需要再使用或处理该第二数据的处理结果等情况下)。
当然,若第二处理器组也需要参与跨处理器组处理,第二处理器组的二级缓存例如也可通过M-F接口、一级缓存的ACP接口与共享缓存直连,或通过总线连接(即第二处理器组的一级缓存的ACP接口、二级缓存的M-F接口、和共享缓存的相应接口分别连接到总线)。第二处理器组的多核内存一致性的实现功能亦可由第二处理器组的二级缓存主要负责实现,其实现过程可与第一处理器组的二级缓存类似,此处不再赘述。
由上可见,本实施例中若系统中的多个处理器组之间需要跨处理器组联合处理,增设一个共享缓存,各处理器组的一级缓存的ACP接口、二级缓存与该增设的共享缓存连接,当发现例如第一处理器组需要处理当前维护在共享缓存的某一数据时,则从该共享缓存中读取该数据并通过第一处理器组的二级缓存提供给第一处理器组处理。由于可将需要跨处理器组联合处理的数据维护在共享缓存中,各处理器组都从共享缓存中获取该类型数据处理,该处理方式能够保证多个处理器组间的内存一致性,进而能够实现4核以上联合工作。
实施例四
为便于更好的理解本发明实施例的方案,下面以仍基于ARM Cortex-A9架构的多核处理设备至少包括cluster-A和cluster-B联合工作,进行跨cluster处理的过程为例进行描述。
本实施例多核处理设备的cluster-A和cluster-B的连接架构可设计为如图5-a所示、cluster-A的SCU连接到其配套的二级缓存,cluster-A的二级缓存的AXI总线接口连接到系统总线,cluster-A的一级缓存的ACP接口、二级缓存的M-F接口直连到共享缓存;cluster-B的SCU连接到其配套的二级缓存,cluster-B的二级缓存的AXI总线接口连接到系统总线,cluster-B的一级缓存的ACP接口以及二级缓存的M-F接口直连到共享缓存。或也可设计为如图5-b所示,cluster-A一级缓存的ACP接口、二级缓存的M-F接口连接到总线;cluster-A的一级缓存的ACP接口、二级缓存的M-F接口连接到总线;共享缓存也连接到该总线。即cluster-A的一级缓存的ACP接口、二级缓存的M-F接口与共享缓存通过总线连接;cluster-B的一级缓存的ACP接口、二级缓存的M-F接口与该共享缓存也通过总线连接,可以发现,基于如图5-b所示的架构,多核处理设备还可以扩展连接更多的cluster。
以对数据M的处理为例,参见图5-c,本发明实施例中实现多核内存一致性的方法的另一个实施例,可以包括:
501、当cluster-A需要处理数据M时,cluster-A可发出读取数据M的控制信号;其中,此处假设数据M当前维护在共享缓存中;
502、cluster-A的二级缓存接收cluster-A读取数据M的控制信号,若cluster-A的二级缓存发现数据M当前维护在共享缓存中,cluster-A的二级缓存从该共享缓存中读取数据M并通过cluster-A的二级缓存提供给cluster-A处理。
此时,cluster-A的二级缓存从共享缓存中读取的数据M,可能是某个任务的一个原始数据,或是一个被cluster-B或其它处理器组进行一次或多次处理后,通过其一级缓存的ACP接口写入到共享缓存中的结果数据。
503、cluster-A的二级缓存利用控制信号,控制共享缓存通过cluster-A的一级缓存的ACP,从cluster-A的一级缓存中读取并缓存cluster-A对数据M的处理结果(为便于描述,下面将cluster-A对数据M的处理结果记为数据M′),以供cluster-B或其它处理器组后续处理。
此外,在例如数据M′已经为对应任务的一个最终处理结果,或,后续各个处理器组都不需要再使用或处理数据M′等情况下,cluster-A的二级缓存也可直接缓存在cluster-A的二级缓存中,或进一步将其写入到DDR中,而可以不必通过cluster-B的一级缓存的ACP接口,将数据M′写入共享缓存。
可以理解,若cluster-B需要处理当前维护在共享缓存中的某数据,cluster-B的二级缓存亦可采用类似的方式,从共享缓存中读取该数据,通过cluster-B的二级缓存提供给cluster-B处理,并可将cluster-B处理该数据的结果通过cluster-B的一级缓存的ACP接口写入共享缓存,或缓存在cluster-B的二级缓存,其处理过程可与cluster-A的二级缓存相同,此处不再赘述。
由上可见,本实施例中若多核处理设备中的多个处理器组之间需要跨处理器组联合处理,通过增设一个共享缓存,各处理器组的一级缓存的ACP接口、二级缓存与该增设的共享缓存连接,当发现例如cluster-A需要处理当前维护在共享缓存的某一数据时,则从该共享缓存中读取该数据并通过cluster-A的二级缓存提供给cluster-A处理。由于可将需要跨处理器组联合处理的数据维护在共享缓存中,各处理器组都从共享缓存中获取该类型数据处理,该处理方式能够保证多个处理器组间的内存一致性,进而能够实现4核以上联合工作。
进一步的,通过共享缓存访问可提高访问效率,且有利于减小二级缓存的物理面积;并且,所有配置均可以通过底层软件完成,对于上层应用可做到完全透明;配置pipeline跨Cluster执行,根据二级缓存占用情况,可更灵活合理的分配例如ACP接口带宽等资源,进一步提高多核处理设备的运行效率。
为便于更好的实施本发明实施例的技术方案,本发明实施例还提供一种多核处理设备。
实施例五
参见图6-a和图6-b、本发明实施例提供的一种多核处理设备600,可以包括:
第一处理器组610、第二处理器组620、第一处理器组的二级缓存612以及第二处理器组的二级缓存622;其中,第一处理器组的二级缓存612与第二处理器组620的一级缓存的快速一致性接口连接。具体的,第一处理器组的二级缓存612与第二处理器组620的一级缓存的快速一致性接口可以直连;或者通过总线连接,即第一处理器组的二级缓存612和第二处理器组的一级缓存622分别连接到总线。
其中,第一处理器组的二级缓存612,用于接收第一处理器组610读取第一数据的控制信号;若第一数据当前由第二处理器组维护,通过第二处理器组620的一级缓存的快速一致性接口在第二处理器组620的一级缓存中读取第一数据;将读取的第一数据通过第一处理器组的二级缓存612提供给第一处理器组610处理。
在一种应用场景下,第一处理器组的二级缓存612还可用于,获取第一处理器组610对第一数据的处理结果;通过第二处理器组620的一级缓存的快速一致性接口,向第二处理器组620的一级缓存或二级缓存中写入第一处理器组610对第一数据的处理结果;或,将第一处理器组对第一数据的处理结果缓存在第一处理器组的二级缓存612中。
在一种应用场景下,第一处理器组的二级缓存612可以包括:
第一接收模块,用于接收第一处理器组610读取第一数据的控制信号,其中,第一处理器组610读取第一数据的控制信号的操作属性为不可缓存;
第一读取模块,用于当第一数据当前由第二处理器组620维护时,通过第二处理器组620的一级缓存的快速一致性接口,向第二处理器组620的一级缓存发送操作属性为可缓存的读取第一数据的控制信号,读取第二处理器组620的一级缓存中的第一数据;
第一提供模块,用于将第一读取模块读取的第一数据通过第一处理器组的二级缓存612提供给第一处理器组610处理。
在一种应用场景下,第二处理器组的二级缓存620与第二处理器组610的一级缓存的快速一致性接口连接(直连或通过总线连接);
其中,第二处理器组的二级缓存622,用于接收第二处理器组620读取第三数据的控制信号;若第三数据当前由第一处理器组610维护,通过第一处理器组610的一级缓存的快速一致性接口在第一处理器组610的一级缓存中读取第三数据;将读取的第三数据通过第二处理器组的二级缓存622提供给第二处理器组620处理。
在一种应用场景下,第二处理器组的二级缓存622还可用于,获取第二处理器组620对第三数据的处理结果;通过第一处理器组610的一级缓存的快速一致性接口,向第一处理器组610的一级缓存或二级缓存中写入第二处理器组620对第三数据的处理结果;或,将第二处理器组620对第三数据的处理结果缓存在第二处理器组的二级缓存622中。
在一种应用场景下,第一处理器组的二级缓存622可以包括:
第二接收模块,用于接收第二处理器组620读取第三数据的控制信号,其中,第二处理器组620读取第三数据的控制信号的操作属性为不可缓存;
第二读取模块,用于当第三数据当前由第一处理器组610维护时,通过第一处理器组610的一级缓存的快速一致性接口,向第一处理器组610的一级缓存发送操作属性为可缓存的读取第三数据的控制信号,读取第一处理器组610的一级缓存中的第三数据;
第二提供模块,用于将第二读取模块读取的第三数据通过第二处理器组的二级缓存622提供给第二处理器组620处理。
可以理解,本实施例多核处理设备600各个部件的功能可以根据上述实施例中的方法具体实现,此处不再赘述。本实施例多核处理设备600可以是路由器、交换机等网络设备。
由上可见,本实施例中若多核处理设备600中的多个处理器组之间需要跨处理器组联合处理,当第一处理器组的二级缓存发现第一处理器组需要处理当前由第二处理器组维护的某一数据时,则利用第二处理器组的一级缓存的ACP接口,从第二处理器组的一级缓存中读取该数据进行处理,由于是从当前维护该数据的第二处理器组的一级缓存中读取出的,能够保证该数据的有效性,该处理方式能够保证多个处理器组间的内存一致性,进而能够实现4核以上联合工作。
为便于更好的实施本发明实施例的技术方案,本发明实施例还提供一种多核处理设备。
实施例六
参见图7-a和图7-b、本发明实施例提供的一种多核处理设备700,可以包括:
第一处理器组710、第二处理器组720、共享缓存730、第一处理器组的二级缓存712以及第二处理器组的二级缓存722;
其中,第一处理器组的二级缓存712、第一处理器组710的一级缓存的快速一致性接口与共享缓存730连接。具体的,第一处理器组的二级缓存712、第一处理器组710的一级缓存的快速一致性接口可以分别直连到共享缓存730;或者通过总线连接到共享缓存730,即第一处理器组的二级缓存712、第一处理器组710的一级缓存的快速一致性接口、共享缓存730分别连接到总线。
其中,第一处理器组的二级缓存712,用于接收第一处理器组710读取第二数据的控制信号;若第二数据当前维护在共享缓存730中,从共享缓存730中读取第二数据;将读取的第二数据通过第一处理器组的二级缓存712提供给第一处理器组710处理。
在一种应用场景下,第一处理器组的二级缓存712还可用于,通过第一处理器组710的一级缓存的快速一致性接口,将第一处理器组710对第二数据的处理结果写入共享缓存730;或,获取第一处理器组710对第二数据的处理结果;将第一处理器组710对第二数据的处理结果缓存在第一处理器组的二级缓存712中。
在一种应用场景下,第二处理器组的二级缓存722、第二处理器组720的一级缓存的快速一致性接口与共享缓存730连接(直连或通过总线连接);
其中,第二处理器组的二级缓存722,用于接收第二处理器组720读取第四数据的控制信号;若第四数据当前维护在共享缓存730中,从共享缓存730中读取第四数据;将读取的第四数据通过第二处理器组的二级缓存722提供给第二处理器组720处理。
在一种应用场景下,第二处理器组的二级缓存722还可用于,通过第二处理器组720的一级缓存的快速一致性接口,将第二处理器组720对第四数据的处理结果写入共享缓存730;或,获取第二处理器组720对第四数据的处理结果;将第二处理器组720对第四数据的处理结果缓存在第二处理器组的二级缓存722中。
由上可见,本实施例中若多核处理设备700中的多个处理器组之间需要跨处理器组联合处理,增设一个共享缓存,各处理器组的一级缓存的ACP接口、二级缓存与该增设的共享缓存连接,当发现例如第一处理器组需要处理当前维护在共享缓存的某一数据时,则从该共享缓存中读取该数据并通过第一处理器组的二级缓存提供给第一处理器组处理。由于可将需要跨处理器组联合处理的数据维护在共享缓存中,各处理器组都从共享缓存中获取该类型数据处理,该处理方式能够保证多个处理器组间的内存一致性,进而能够实现4核以上联合工作。
可以理解,本实施例多核处理设备700各个部件的功能可以根据上述实施例中的方法具体实现,此处不再赘述。本实施例多核处理设备600可以是路由器、交换机等网络设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
综上,本发明实施例的一种方案中,若系统中的多个处理器组之间需要跨处理器组联合处理,当发现第一处理器组需要处理当前由第二处理器组维护的某一数据时,则利用第二处理器组的一级缓存的ACP接口,从第二处理器组的一级缓存中读取该数据进行处理,由于是从当前维护该数据的第二处理器组的一级缓存中读取出的,能够保证该数据的有效性,该处理方式能够保证多个处理器组间的内存一致性。
进一步的,cluster的二级缓存通过对读写数据的控制信号的操作属性进行灵活转换,可进一步的提高访问效率;并且,所有配置均可以通过底层软件完成,对于上层应用可做到完全透明;配置pipeline跨cluster执行,根据二级缓存占用情况,可更灵活合理的分配例如ACP接口带宽等资源,进一步提高多核处理设备的运行效率。
本发明实施例的另一种方案中,若系统中的多个处理器组之间需要跨处理器组联合处理,增设一个共享缓存,各处理器组的一级缓存的ACP接口、二级缓存与该增设的共享缓存连接,当发现例如第一处理器组需要处理当前维护在共享缓存的某一数据时,则从该共享缓存中读取该数据并通过第一处理器组的二级缓存提供给第一处理器组处理。由于可将需要跨处理器组联合处理的数据维护在共享缓存中,各处理器组都从共享缓存中获取该类型数据处理,该处理方式能够保证多个处理器组间的内存一致性。
进一步的,通过共享缓存访问可提高访问效率,且有利于减小二级缓存的物理面积;并且,所有配置均可以通过底层软件完成,对于上层应用可做到完全透明;配置pipeline跨cluster执行,根据二级缓存占用情况,可更灵活合理的分配例如ACP接口带宽等资源,进一步提高多核处理设备的运行效率。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘或光盘等。
以上对本发明实施例所提供的多核内存一致性的实现方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种多核内存一致性的实现方法,其特征在于,包括:
第一处理器组的二级缓存接收第一处理器组读取第一数据的控制信号;
若第一数据当前由第二处理器组维护,通过第二处理器组的一级缓存的快速一致性接口在第二处理器组的一级缓存中读取第一数据,其中,第一处理器组的二级缓存与第二处理器组的一级缓存的快速一致性接口连接;
将读取的所述第一数据通过第一处理器组的二级缓存提供给第一处理器组处理。
2.根据权利要求1所述的方法,其特征在于,还包括:
获取第一处理器组对第一数据的处理结果;
通过第二处理器组的一级缓存的快速一致性接口,向第二处理器组的一级缓存或二级缓存中写入第一处理器组对第一数据的处理结果;或,
将第一处理器组对第一数据的处理结果缓存在第一处理器组的二级缓存中。
3.根据权利要求1或2所述的方法,其特征在于,
所述接收第一处理器组读取第一数据的控制信号,包括:
接收操作属性为不可缓存的第一处理器组读取第一数据的控制信号;
所述通过第二处理器组的一级缓存的快速一致性接口在第二处理器组的一级缓存中读取第一数据,包括:
通过第二处理器组的一级缓存的快速一致性接口,向第二处理器组的一级缓存发送操作属性为可缓存的读取第一数据的控制信号,读取第二处理器组的一级缓存中的第一数据。
4.一种多核内存一致性的实现方法,其特征在于,包括:
第一处理器组的二级缓存接收第一处理器组读取第二数据的控制信号;
若第二数据当前维护在共享缓存中,从所述共享缓存中读取第二数据,其中,第一处理器组的一级缓存的快速一致性接口连接到所述共享缓存,第一处理器组的二级缓存连接到所述共享缓存;
将读取的所述第二数据通过第一处理器组的二级缓存提供给第一处理器组处理。
5.根据权利要求4所述的方法,其特征在于,还包括:
通过第一处理器组的一级缓存的快速一致性接口,将第一处理器组对第二数据的处理结果写入所述共享缓存;
或者,
获取第一处理器组对第二数据的处理结果;将第一处理器组对第二数据的处理结果缓存在第一处理器组的二级缓存中。
6.一种多核处理设备,其特征在于,包括:
第一处理器组、第二处理器组、第一处理器组的二级缓存以及第二处理器组的二级缓存;其中,第一处理器组的二级缓存与第二处理器组的一级缓存的快速一致性接口连接;
其中,第一处理器组的二级缓存,用于接收第一处理器组读取第一数据的控制信号;若第一数据当前由第二处理器组维护,通过第二处理器组的一级缓存的快速一致性接口在第二处理器组的一级缓存中读取第一数据;将读取的所述第一数据通过第一处理器组的二级缓存提供给第一处理器组处理。
7.根据权利要求6所述的多核处理设备,其特征在于:
第一处理器组的二级缓存还用于,获取第一处理器组对第一数据的处理结果;通过第二处理器组的一级缓存的快速一致性接口,向第二处理器组的一级缓存或二级缓存中写入第一处理器组对第一数据的处理结果;或,将第一处理器组对第一数据的处理结果缓存在第一处理器组的二级缓存中。
8.根据权利要求6或7所述的多核处理设备,其特征在于:
所述第一处理器组的二级缓存包括:
第一接收模块,用于接收第一处理器组读取第一数据的控制信号,所述第一处理器组读取第一数据的控制信号的操作属性为不可缓存;
第一读取模块,用于当第一数据当前由第二处理器组维护时,通过第二处理器组的一级缓存的快速一致性接口,向第二处理器组的一级缓存发送操作属性为可缓存的读取第一数据的控制信号,读取第二处理器组的一级缓存中的第一数据;
第一提供模块,用于将所述第一读取模块读取的第一数据通过第一处理器组的二级缓存提供给第一处理器组处理。
9.一种多核处理设备,其特征在于,包括:
第一处理器组、第二处理器组、共享缓存、第一处理器组的二级缓存以及第二处理器组的二级缓存;其中,第一处理器组的二级缓存、第一处理器组的一级缓存的快速一致性接口与所述共享缓存连接;
其中,第一处理器组的二级缓存,用于接收第一处理器组读取第二数据的控制信号;若第二数据当前维护在共享缓存中,从所述共享缓存中读取第二数据;将读取的所述第二数据通过第一处理器组的二级缓存提供给第一处理器组处理。
10.根据权利要求9所述的多核处理设备,其特征在于:
第一处理器组的二级缓存还用于,通过第一处理器组的一级缓存的快速一致性接口,将第一处理器组对第二数据的处理结果写入所述共享缓存;或,获取第一处理器组对第二数据的处理结果;将第一处理器组对第二数据的处理结果缓存在第一处理器组的二级缓存中。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101376998A CN101794271B (zh) | 2010-03-31 | 2010-03-31 | 多核内存一致性的实现方法和装置 |
GB1105414.5A GB2479267B (en) | 2010-03-31 | 2011-03-31 | Method and apparatus for implementing multi-processor memory coherency |
US13/077,191 US8799584B2 (en) | 2010-03-31 | 2011-03-31 | Method and apparatus for implementing multi-processor memory coherency |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010101376998A CN101794271B (zh) | 2010-03-31 | 2010-03-31 | 多核内存一致性的实现方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101794271A true CN101794271A (zh) | 2010-08-04 |
CN101794271B CN101794271B (zh) | 2012-05-23 |
Family
ID=42586975
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010101376998A Active CN101794271B (zh) | 2010-03-31 | 2010-03-31 | 多核内存一致性的实现方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8799584B2 (zh) |
CN (1) | CN101794271B (zh) |
GB (1) | GB2479267B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855214A (zh) * | 2011-06-27 | 2013-01-02 | 上海华为技术有限公司 | 实现数据一致性的方法和一种多核系统 |
CN105874441A (zh) * | 2013-01-17 | 2016-08-17 | 埃克索科茨股份有限公司 | 利用卸载处理器的上下文切换 |
CN107851040A (zh) * | 2015-07-23 | 2018-03-27 | 高通股份有限公司 | 用于使用高速缓存需求监视在异构处理器簇架构中调度任务的系统和方法 |
CN108228481A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于保证数据一致性的方法和设备 |
CN112306663A (zh) * | 2020-11-12 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种并行计算加速器及嵌入式系统 |
WO2021114768A1 (zh) * | 2019-12-11 | 2021-06-17 | 成都海光微电子技术有限公司 | 数据处理装置、方法、芯片、处理器、设备及存储介质 |
CN114116531A (zh) * | 2022-01-28 | 2022-03-01 | 苏州浪潮智能科技有限公司 | 一种缓存一致性写回的方法、装置、设备及介质 |
CN117170986A (zh) * | 2023-11-03 | 2023-12-05 | 北京微核芯科技有限公司 | 芯片一致性处理系统,及其方法、装置、设备及介质 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8966152B2 (en) * | 2011-08-02 | 2015-02-24 | Cavium, Inc. | On-chip memory (OCM) physical bank parallelism |
US8923306B2 (en) | 2011-08-02 | 2014-12-30 | Cavium, Inc. | Phased bucket pre-fetch in a network processor |
US20130318269A1 (en) | 2012-05-22 | 2013-11-28 | Xockets IP, LLC | Processing structured and unstructured data using offload processors |
US9258276B2 (en) | 2012-05-22 | 2016-02-09 | Xockets, Inc. | Efficient packet handling, redirection, and inspection using offload processors |
KR20140075370A (ko) * | 2012-12-11 | 2014-06-19 | 한국전자통신연구원 | 계층적 캐시 구조를 가지는 멀티코어 프로세서 |
US9378161B1 (en) | 2013-01-17 | 2016-06-28 | Xockets, Inc. | Full bandwidth packet handling with server systems including offload processors |
US10180796B2 (en) * | 2015-10-16 | 2019-01-15 | SK Hynix Inc. | Memory system |
US10331532B2 (en) * | 2017-01-19 | 2019-06-25 | Qualcomm Incorporated | Periodic non-intrusive diagnosis of lockstep systems |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060230237A1 (en) * | 2005-04-07 | 2006-10-12 | Fujitsu Limited | Method and system for maintaining cache coherence of distributed shared memory system |
CN1991794A (zh) * | 2005-12-30 | 2007-07-04 | 国际商业机器公司 | 多处理器系统中维持数据一致性的方法和系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6272601B1 (en) * | 1999-05-20 | 2001-08-07 | International Business Machines Corporation | Critical word forwarding in a multiprocessor system |
US7536514B2 (en) * | 2005-09-13 | 2009-05-19 | International Business Machines Corporation | Early return indication for read exclusive requests in shared memory architecture |
US7925836B2 (en) * | 2008-01-25 | 2011-04-12 | Arm Limited | Selective coherency control |
US9164910B2 (en) * | 2008-02-21 | 2015-10-20 | Arm Limited | Managing the storage of data in coherent data stores |
-
2010
- 2010-03-31 CN CN2010101376998A patent/CN101794271B/zh active Active
-
2011
- 2011-03-31 GB GB1105414.5A patent/GB2479267B/en active Active
- 2011-03-31 US US13/077,191 patent/US8799584B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060230237A1 (en) * | 2005-04-07 | 2006-10-12 | Fujitsu Limited | Method and system for maintaining cache coherence of distributed shared memory system |
CN1991794A (zh) * | 2005-12-30 | 2007-07-04 | 国际商业机器公司 | 多处理器系统中维持数据一致性的方法和系统 |
Non-Patent Citations (3)
Title |
---|
《ARM WHITE PAPER》 20090930 ARM The ARM Cortex-A9 Processors , 2 * |
《Cortex-A9 MPCore Revision:r2p0 Technical Reference Manual》 20091002 ARM Cortex-A9 MPCore Revision:r2p0 Technical Reference Manual , 2 * |
《Proceedings of the 18th International Symposium on Computer Architecture and High Performance Computing》 20061231 Mario Donato Marino 32-core CMP with multi-sliced L2: 2 and 4 cores sharing a L2 slice , 2 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102855214A (zh) * | 2011-06-27 | 2013-01-02 | 上海华为技术有限公司 | 实现数据一致性的方法和一种多核系统 |
CN102855214B (zh) * | 2011-06-27 | 2015-07-29 | 上海华为技术有限公司 | 实现数据一致性的方法和一种多核系统 |
CN105874441A (zh) * | 2013-01-17 | 2016-08-17 | 埃克索科茨股份有限公司 | 利用卸载处理器的上下文切换 |
CN107851040A (zh) * | 2015-07-23 | 2018-03-27 | 高通股份有限公司 | 用于使用高速缓存需求监视在异构处理器簇架构中调度任务的系统和方法 |
CN108228481A (zh) * | 2016-12-21 | 2018-06-29 | 伊姆西Ip控股有限责任公司 | 用于保证数据一致性的方法和设备 |
WO2021114768A1 (zh) * | 2019-12-11 | 2021-06-17 | 成都海光微电子技术有限公司 | 数据处理装置、方法、芯片、处理器、设备及存储介质 |
CN112306663A (zh) * | 2020-11-12 | 2021-02-02 | 山东云海国创云计算装备产业创新中心有限公司 | 一种并行计算加速器及嵌入式系统 |
CN114116531A (zh) * | 2022-01-28 | 2022-03-01 | 苏州浪潮智能科技有限公司 | 一种缓存一致性写回的方法、装置、设备及介质 |
CN117170986A (zh) * | 2023-11-03 | 2023-12-05 | 北京微核芯科技有限公司 | 芯片一致性处理系统,及其方法、装置、设备及介质 |
CN117170986B (zh) * | 2023-11-03 | 2024-02-06 | 北京微核芯科技有限公司 | 芯片一致性处理系统,及其方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
US8799584B2 (en) | 2014-08-05 |
GB2479267B (en) | 2012-08-29 |
GB2479267A (en) | 2011-10-05 |
GB201105414D0 (en) | 2011-05-11 |
US20120079209A1 (en) | 2012-03-29 |
CN101794271B (zh) | 2012-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101794271B (zh) | 多核内存一致性的实现方法和装置 | |
US10114749B2 (en) | Cache memory system and method for accessing cache line | |
US20150325272A1 (en) | In-memory lightweight coherency | |
CN109154910A (zh) | 用于存储器中处理的高速缓存一致性 | |
KR20150031293A (ko) | 공유된 가상 메모리 | |
US9208088B2 (en) | Shared virtual memory management apparatus for providing cache-coherence | |
US20210373799A1 (en) | Method for storing data and method for reading data | |
US20230195633A1 (en) | Memory management device | |
EP3036648B1 (en) | Enhanced data transfer in multi-cpu systems | |
EP2800008A1 (en) | Method and system for multiprocessors to share memory | |
CN108089995A (zh) | 在计算系统内刷新快取内容的方法与用于刷新快取内容的系统 | |
CN118113631B (zh) | 一种数据处理系统、方法、设备、介质及计算机程序产品 | |
CN117806833B (zh) | 一种数据处理系统、方法及介质 | |
CN115443453A (zh) | 用于减少传输延迟的链路关联 | |
CN113535611A (zh) | 数据处理方法及装置、异构系统 | |
CN105874431A (zh) | 减少数据交换负载的计算系统以及相关的数据交换方法 | |
CN104461941B (zh) | 一种内存系统架构及管理方法 | |
CN104750614B (zh) | 用于管理存储器的方法和装置 | |
US10318428B2 (en) | Power aware hash function for cache memory mapping | |
US11847049B2 (en) | Processing system that increases the memory capacity of a GPGPU | |
CN105488012B (zh) | 一种基于独占数据的一致性协议设计方法 | |
US11126568B2 (en) | Object coherence in distributed shared memory systems | |
CN104679688A (zh) | 数据访问方法、装置及系统 | |
CN106897021A (zh) | 一种读写数据的方法和装置 | |
JP6565729B2 (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |