CN104536916A - 一种多核系统的仲裁方法及多核系统 - Google Patents
一种多核系统的仲裁方法及多核系统 Download PDFInfo
- Publication number
- CN104536916A CN104536916A CN201410797630.6A CN201410797630A CN104536916A CN 104536916 A CN104536916 A CN 104536916A CN 201410797630 A CN201410797630 A CN 201410797630A CN 104536916 A CN104536916 A CN 104536916A
- Authority
- CN
- China
- Prior art keywords
- request
- access
- shared region
- arithmetic core
- shared
- 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
Classifications
-
- 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/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/1652—Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
- G06F13/1663—Access to shared memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例公开了一种多核系统的仲裁方法及多核系统,其中多核系统包括至少两个运算核心,该至少两个运算核心通过总线连接多核系统的共享内存;所述方法包括:将共享内存划分为至少两片共享区域;接收一个运算核心发送的第一访问请求,第一访问请求中携带第一访问地址;查询所述至少两片共享区域的锁定记录,若锁定记录中第一访问地址对应的第一共享区域的占用状态是未锁定状态,而且第一访问请求为锁定请求,则把第一共享区域锁定为仅能被所述一个运算核心非只读访问。采用本发明实施例,在锁定第一共享区域时,只要其他运算核心请求访问的地址与锁定的第一共享区域不冲突,可允许其他运算核心同时访问共享内存,从而提高共享内存在被占用时的吞吐量和多核系统的并发性能。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种多核系统的仲裁方法及多核系统。
背景技术
随着电子技术的发展,如今市面上许多计算机系统都具有多个运算核心。这些运算核心通过总线共享计算机系统的内存,为了避免多个运算核心同时访问共享内存中的同一块数据而造成冲突,通常运算核心在访问共享内存之前,会向仲裁器请求锁定总线,取得总线的独占权限。在该运算核心锁定总线的期间内,其他运算核心无法执行总线操作,即使这段时间内锁定总线的运算核心并没有访问共享内存,其他运算核心也无法通过总线访问共享内存。
以上方法虽然能很好地避免由于多个运算核心同时访问共享内存而造成的冲突问题,但是也会导致其他运算核心对共享内存的访问无法及时得到响应,降低整个计算机系统的并发性能。
发明内容
本发明实施例提供了一种多核系统的仲裁方法及多核系统,可提高共享内存在被占用时的吞吐量以及多核系统的并发性能。
本发明实施例第一方面提供了一种多核系统的仲裁方法,所述多核系统包括至少两个运算核心,所述至少两个运算核心通过总线连接所述多核系统的共享内存;所述方法可包括:
将所述共享内存划分为至少两片共享区域;
接收一个运算核心发送的第一访问请求,其中所述第一访问请求中携带第一访问地址;
查询所述至少两片共享区域的锁定记录,若所述锁定记录中所述第一访问地址对应的第一共享区域的占用状态是未锁定状态,而且所述第一访问请求为锁定请求,则把所述第一共享区域锁定为仅能被所述一个运算核心非只读访问。
结合第一方面,在第一种可行的实施方式中,所述锁定所述第一共享区域之后,所述方法还包括:
接收另一个运算核心发送的第二访问请求,其中所述第二访问请求中携带第二访问地址,且所述第二访问请求不是只读请求;
若所述第二访问地址对应的第二共享区域的占用状态是未锁定状态,则允许所述另一个运算核心访问所述第二访问地址。
结合第一方面,在第二种可行的实施方式中,所述接收一个运算核心发送的第一访问请求之前,所述方法还包括:
记录所述至少两片共享区域中至少一片共享区域的占用状态,其中所述占用状态包括锁定状态或未锁定状态;
所述把所述第一共享区域锁定为仅能被所述一个运算核心非只读访问之后,所述方法还包括:
更新所述第一共享区域的占用状态为锁定状态,并将锁定所述第一共享区域的运算核心的标识更新为所述一个运算核心的标识。
结合第一方面的第二种可行的实施方式,在第三种可行的实施方式中,所述记录所述至少两片共享区域中至少一片共享区域的占用状态之后,所述方法还包括:
若所述至少一片共享区域的占用状态是锁定状态,记录锁定所述至少一片共享区域的至少一个运算核心的标识;
所述查询所述至少两片共享区域的锁定记录之后,所述方法还包括:
若所述锁定记录中所述第一共享区域的占用状态是锁定状态,则判断锁定所述第一共享区域的运算核心的标识与所述一个运算核心的标识是否相同;
若锁定所述第一共享区域的运算核心的标识与所述一个运算核心的标识相同,则允许所述一个运算核心访问所述第一访问地址。
结合第一方面,在第四种可行的实施方式中,所述查询所述至少两片共享区域的锁定记录之后,所述方法还包括:
判断是否记录有所述第一共享区域的占用状态;
若未记录有所述第一共享区域的占用状态,则判断所述第一访问请求是否为锁定请求;
若所述第一访问请求不是锁定请求,则在所述第一访问请求为只读请求时允许所述一个运算核心访问所述第一访问地址;
若所述第一访问请求是锁定请求,则拒绝所述第一访问请求。
结合第一方面,在第五种可行的实施方式中,所述接收一个运算核心发送的第一访问请求之后,所述方法还包括:
判断所述第一访问请求是否为解锁请求,若是,则解锁所述第一共享区域,并更新所述第一共享区域的占用状态为未锁定状态。
结合第一方面,在第六种可行的实施方式中,所述接收一个运算核心发送的第一访问请求之后,所述方法还包括:
根据所述第一访问地址以及每片共享区域对应的地址范围,确定所述第一访问地址对应的第一共享区域。
本发明实施例第二方面提供了一种多核系统,所述多核系统包括仲裁器以及至少两个运算核心,所述至少两个运算核心通过总线连接所述多核系统的共享内存;所述仲裁器用于:
将所述共享内存划分为至少两片共享区域;
接收一个运算核心发送的第一访问请求,其中所述第一访问请求中携带第一访问地址;以及,
查询所述至少两片共享区域的锁定记录,在所述锁定记录中所述第一访问地址对应的共享区域的占用状态是未锁定状态,而且所述第一访问请求为锁定请求时,把所述第一共享区域锁定为仅能被所述一个运算核心非只读访问。
结合第二方面,在第一种可行的实施方式中,所述仲裁器还用于:
接收另一个运算核心发送的第二访问请求,其中所述第二访问请求中携带第二访问地址,且所述第二访问请求不是只读请求;以及,
在所述第二访问地址对应的第二共享区域的占用状态是未锁定状态时,允许所述另一个运算核心访问所述第二访问地址。
结合第二方面,在第二种可行的实施方式中,所述仲裁器还用于:
在接收所述一个运算核心发送的第一访问请求之前,记录所述至少两片共享区域中至少一片共享区域的占用状态,其中所述占用状态包括锁定状态或未锁定状态;以及,
在把所述第一共享区域锁定为仅能被所述一个运算核心非只读访问之后,更新所述第一共享区域的占用状态为锁定状态,并将锁定所述第一共享区域的运算核心的标识更新为所述一个运算核心的标识。
结合第二方面的第一种可行的实施方式,在第三种可行的实施方式中,所述仲裁器还用于:
在记录所述至少两片共享区域中至少一片共享区域的占用状态之后,若所述至少一片共享区域的占用状态是锁定状态,记录锁定所述至少一片共享区域的至少一个运算核心的标识;
在查询所述至少两片共享区域的锁定记录之后,若所述锁定记录中所述第一共享区域的占用状态是锁定状态,则判断锁定所述第一共享区域的运算核心的标识与所述一个运算核心的标识是否相同;以及,
若锁定所述第一共享区域的运算核心的标识与所述一个运算核心的标识相同,则允许所述一个运算核心访问所述第一访问地址。
结合第二方面,在第四种可行的实施方式中,所述仲裁器还用于:
在查询所述至少两片共享区域的锁定记录之后,判断是否记录有所述第一共享区域的占用状态;
若未记录有所述第一共享区域的占用状态,则判断所述第一访问请求是否为锁定请求;
若所述第一访问请求不是锁定请求,则在所述第一访问请求为只读请求时允许所述一个运算核心访问所述第一访问地址;以及
若所述第一访问请求是锁定请求,则拒绝所述第一访问请求。
结合第二方面,在第五种可行的实施方式中,所述仲裁器还用于:
在接收所述一个运算核心发送的第一访问请求之后,判断所述第一访问请求是否为解锁请求;若是,则解锁所述第一共享区域,并更新所述第一共享区域的占用状态为未锁定状态。
结合第二方面,在第六种可行的实施方式中,所述仲裁器还用于:
在接收所述一个运算核心发送的第一访问请求之后,根据所述第一访问地址以及每片共享区域对应的地址范围,确定所述第一访问地址对应的第一共享区域。
本发明实施例中,将共享区域划分为至少两片共享区域,接收一个运算核心发送的第一访问请求,并查询所述至少两片共享区域的锁定记录,当第一访问请求为锁定请求且锁定记录中第一访问请求携带的第一访问地址对应的第一共享区域处于未锁定状态时,可以锁定第一共享区域以使所述第一共享区域仅能被所述一个运算核心进行非只读访问,而无需独占整个总线。采用此方法,当其他运算核心请求访问共享内存时,只要其他运算核心请求访问的地址与锁定的第一共享区域不冲突,仍然可以允许其他运算核心同时访问共享内存,从而可以提高共享内存在被占用时的吞吐量以及多核系统的并发性能。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的多核系统的仲裁方法的一实施例的流程示意图;
图2是本发明的多核系统的仲裁方法的另一实施例的流程示意图;
图3是本发明的多核系统的一实施例的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开了一种多核系统的仲裁方法以及多核系统,其中多核系统包括至少两个运算核心,所示至少两个运算核心通过总线连接所述多核系统的共享内存。可选地,所述多核系统可以包括多个CPU(Central Processing Unit,中央处理器),每个CPU中配备一个或多个运算核心;或者,所述多核系统可以包括单个CPU,该CPU中配备至少两个运算核心。实施本发明,可提高共享内存在被占用时的吞吐量以及多核系统的并发性能,以下结合附图进行详细说明。
请参见图1,图1为本发明的多核系统的仲裁方法的一实施例的流程示意图。如图1所示,其可包括以下步骤:
S101,将所述共享内存划分为至少两片共享区域。
具体地,根据共享内存的容量大小和/或需要的并行处理程度,可以在逻辑上将共享内存划分为至少两个逻辑空间,即所述的共享区域。可选地,所述至少两片共享区域的容量可以相同或不同。
具体实施中,共享内存的每个存储单元都有自己的地址,可预先根据各存储单元的地址和每片共享区域的容量建立存储单元地址和共享区域之间的映射,通常一片共享区域可对应于包括多个存储单元地址的一段地址范围。
S102,接收一个运算核心发送的第一访问请求,其中所述第一访问请求中携带第一访问地址。
在一些可行的实施方式中,本发明实施例的访问请求包括锁定请求、解锁请求以及其他请求。
当运算核心请求访问共享内存时,通常访问请求中携带有访问地址,该访问地址为所述运算核心请求访问的存储单元的地址。可选地,每次运算核心请求访问共享内存时,可以请求访问共享内存中的一个或多个存储单元。相应地,当第一访问请求为请求访问共享内存的一个存储单元时,第一访问地址为该存储单元的地址;当第一访问请求为请求访问共享内存的多个存储单元时,第一访问地址可包括该多个存储单元的起始地址和请求的数据长度,也可包括该多个存储单元的起始地址和结束地址。
S103,查询所述至少两片共享区域的锁定记录,若所述锁定记录中所述第一访问地址对应的第一共享区域的占用状态是未锁定状态,而且所述第一访问请求为锁定请求,则把所述第一共享区域锁定为仅能被所述一个运算核心非只读访问。
本发明实施例中,仲裁器可存储所述至少两片共享区域的锁定记录,该锁定记录中记录了所述至少两片共享区域中的一片或多片共享区域的占用状态,其中每片共享区域的占用状态包括锁定状态或未锁定状态。
根据共享内存中各存储单元的地址与各共享区域之间的映射,可以确定第一访问地址对应的第一共享区域。其中,一个访问地址和一片共享区域对应,意味着这个访问地址在这片共享区域的地址范围之内。或者说,这个访问地址指向的存储空间属于这片共享区域。可选地,第一共享区域可包括一片或多片共享区域。
本发明实施例中,处于未锁定状态的共享区域可以被任意运算核心读或者写。在一些可行的实施方式中,当第一共享区域包括多片共享区域时,若该多片共享区域的占用状态都是未锁定状态,而且该第一访问请求为锁定请求,可以把第一共享区域锁定为仅能被所述一个运算核心非只读访问。其中,所述一个运算核心锁定一片或多片共享区域后,可对该一片或多片共享区域进行读写操作;而其他运算核心对该一片或多片共享区域可以进行只读操作,不能进行写操作。
本发明实施例中,接收到所述一个运算核心的锁定请求后,如果仲裁结果为允许锁定,则将所述锁定请求中的第一访问地址对应的第一共享区域锁定,而不必锁定整个总线。相应地,接收到所述一个运算核心的访问请求后,在做出仲裁决定之前,可先判断所述第一访问地址对应的第一共享区域是否已被其他运算核心锁定,如果所述第一共享区域未被其他运算核心锁定,则可允许所述一个运算核心访问所述第一访问地址。可选地,当所述第一共享区域包括多片共享区域时,一种较佳的实施方式为:当所述第一共享区域包括的所有共享区域均未被其他运算核心锁定时,允许所述一个运算核心访问所述第一访问地址。
图1所述的多核系统的仲裁方法,将共享区域划分为至少两片共享区域,接收一个运算核心发送的第一访问请求,并查询所述至少两片共享区域的锁定记录,当第一访问请求为锁定请求且锁定记录中第一访问请求携带的第一访问地址对应的第一共享区域处于未锁定状态时,可以锁定第一共享区域以使所述第一共享区域仅能被所述一个运算核心进行非只读访问,而无需独占整个总线。采用此方法,当其他运算核心请求访问共享内存时,只要其他运算核心请求访问的地址与锁定的第一共享区域不冲突,仍然可以允许其他运算核心同时访问共享内存,从而可以提高共享内存在被占用时的吞吐量以及多核系统的并发性能。
请参见图2,图2为本发明的多核系统的仲裁方法的一实施例的流程示意图。如图2所示,其可包括以下步骤:
S201,将所述共享内存划分为至少两片共享区域。
其中,步骤S201的具体实施方式可参考图1所示实施例中的步骤S101,在此不赘述。
S202,记录所述至少两片共享区域中至少一片共享区域的占用状态,其中所述占用状态包括锁定状态或未锁定状态。
本发明实施例中,每片共享区域的占用状态包括两种:锁定状态或未锁定状态。可在仲裁器中添加记录单元,用来记录共享区域的占用状态。
在一些可行的实施方式中,可记录所有共享区域的占用状态;也可记录部分共享区域的占用状态。具体实施中,记录的共享区域可以随着各存储单元的被访问情况作出相应更改。例如,在一段时间间隔内,可以选择被访问次数较多的N个存储空间对应的至少一片共享区域,记录该至少一片共享区域的占用状态,其中N为大于或等于1的整数。
S203,当所述至少一片共享区域的占用状态为锁定状态时,记录锁定所述至少一片共享区域的至少一个运算核心的标识。
在一些可行的实施方式中,当记录有一片共享区域的占用状态为锁定状态时,相应记录锁定该共享区域的运算核心的标识;在另一种可行的实施方式中,当记录有多片共享区域的占用状态为锁定状态时,可以将每片共享区域的锁定状态和锁定该片共享区域的运算核心的标识对应记录。
S204,接收一个运算核心发送的第一访问请求,其中所述第一访问请求中携带第一访问地址。
其中,步骤S204的具体实施方式可参考图1所示实施例中的步骤S102,在此不赘述。
S205,根据所述第一访问地址以及每片共享区域对应的地址范围,确定所述第一访问地址对应的第一共享区域。
具体实施中,共享内存的每个存储单元都有自己的地址,可预先根据各存储单元的地址和每片共享区域的容量建立存储单元地址和共享区域之间的映射,通常一片共享区域可对应于包括多个存储单元地址的一段地址范围。当接收到第一访问请求后,可以根据第一访问请求中的第一访问地址以及每片共享区域对应的地址范围来确定该第一访问地址对应的第一共享区域。其中,一个访问地址和一片共享区域对应,意味着这个访问地址在这片共享区域的地址范围之内。或者说,这个访问地址指向的存储空间属于这片共享区域。
在一些可行的实施例中,该第一共享区域可包括一片或多片共享区域。
S206,判断所述第一访问请求是否为解锁请求,若是,转到S207,否则转到S208。
S207,解锁所述第一共享区域,并更新所述第一共享区域的占用状态为未锁定状态。
在一些可行的实施方式中,运算核心在锁定至少一片共享区域后,当不再需要锁定所述至少一片共享区域时,会发送解锁请求,请求解锁所述至少一片共享区域。此时若第一访问请求为解锁请求,可接受第一访问请求,解锁第一共享区域并将第一共享区域的占用状态更新为未锁定状态。
S208,查询所述至少两片共享区域的锁定记录,判断是否记录有所述第一共享区域的占用状态,若是,转到S209,否则转到S212。
S209,判断所述第一共享区域的占用状态是否为锁定状态,若是,转到S210,否则转到S214。
在一些可行的实施方式中,若第一访问请求不是解锁请求,可以进一步判断是否记录有第一共享区域的占用状态,若有记录第一共享区域的占用状态,则可从记录中判断第一共享区域是否被锁定。
在一些可行的实施方式中,当第一共享区域包括多片共享区域时,若所述多片共享区域全部或部分处于锁定状态,可以转到步骤S210,若所述多片共享区域全部处于未锁定状态,可以转到步骤S214。
S210,判断锁定所述第一共享区域的运算核心的标识与所述一个运算核心的标识是否相同,若是,转到S211,否则拒绝所述第一访问请求。
通过判断锁定所述第一共享区域的运算核心的标识与发送第一访问请求的所述一个运算核心的标识是否相同,可得知所述第一共享区域是否被其他运算核心锁定了。如果判断结果为是,说明锁定所述第一共享区域的正是发送第一访问请求的所述一个运算核心。
在一些可行的实施方式中,当第一共享区域包括多片共享区域时,若所述多片共享区域全部或部分处于锁定状态,可以进一步判断锁定所述全部或部分处于锁定状态的共享区域的运算核心的标识是否都与所述一个运算核心的标识相同,若是,转到S211,否则可以直接拒绝所述第一访问请求,或者根据所述第一访问请求的类型做出仲裁,例如:若所述第一访问请求为只读请求,则允许所述一个运算核心访问所述第一访问地址;若所述第一访问请求为锁定请求或写请求,则拒绝所述第一访问请求。
S211,允许所述一个运算核心访问所述第一访问地址。
本发明实施例中,若锁定第一共享区域的正是发送第一访问请求的运算核心,则可以允许该运算核心访问所述第一访问地址。
S212,判断所述第一访问请求是否为锁定请求,若是,拒绝所述第一访问请求,否则转到S213。
在一些可行的实施方式中,若未记录有第一共享区域的占用状态,即无法从记录中得知第一共享区域是否已被锁定以及被哪个运算核心锁定,此时可以根据第一访问请求的类别来决定仲裁结果。
若所述第一访问请求是锁定请求或写请求,考虑到所述第一共享区域可能已被其他运算核心锁定,为避免发生冲突,可以拒绝锁定请求或写请求。
S213,在所述第一访问请求为只读请求时允许所述一个运算核心访问所述第一访问地址。
若所述第一访问请求为只读请求,不会改变存储单元中存储的数据,则可以允许所述一个运算核心访问所述第一访问地址。
S214,判断所述第一访问请求是否为锁定请求,若是,转到S215,否则转到S211。
若所述第一共享区域的占用状态为未锁定状态,无论读写操作或只读操作,都不会引起共享内存的一致性冲突,则可以允许所述一个运算核心访问所述第一访问地址。具体实施中可以根据第一访问请求是否为锁定请求对第一访问地址的存储单元执行相应操作,例如锁定操作或读写操作。
S215,把所述第一共享区域锁定为仅能被所述一个运算核心非只读访问。
若所述第一共享区域的占用状态为未锁定状态,无论读写操作或只读操作,都不会引起共享内存的一致性冲突,则可以允许所述一个运算核心访问所述第一访问地址。具体地,若第一访问请求为锁定请求,则可以把第一共享区域锁定为仅能被所述一个运算核心非只读访问。其中,所述一个运算核心锁定一片或多片共享区域后,可对该一片或多片共享区域进行读写操作;而其他运算核心对该一片或多片共享区域可以进行只读操作,不能进行写操作。
在一些可行的实施方式中,当第一共享区域包括多片共享区域时,若该多片共享区域均处于未锁定状态,而且第一访问请求为锁定请求,可锁定该多片共享区域,使该多片共享区域只能被所述一个运算核心进行非只读操作。
S216,更新所述第一共享区域的占用状态为锁定状态,将锁定所述第一共享区域的运算核心的标识更新为所述一个运算核心的标识。
把所述第一共享区域锁定为仅能被所述一个运算核心非只读访问之后,所述第一共享区域的占用状态将从未锁定状态变为锁定状态,因此将所述第一共享区域的占用状态更新为锁定状态,并且将锁定所述第一共享区域的运算核心的标识更新为发送所述第一访问请求的所述一个运算核心的标识。
S217,接收另一个运算核心发送的第二访问请求,其中所述第二访问请求中携带第二访问地址,且所述第二访问请求不是只读请求。
可选地,锁定第一共享区域后,当另一个运算核心请求访问共享内存时,接收所述另一个运算核心发送的第二访问请求,其中所述第二访问请求不是只读请求,所述另一个运算核心请求访问的地址为第二访问地址,第二访问请求中携带第二访问地址。
可选地,第二访问请求可以是锁定请求、或其他非只读请求。
可选地,所述另一个运算核心可以请求访问共享内存中的一个或多个存储单元。相应地,当所述另一个运算核心请求访问共享内存的一个存储单元时,第二访问地址为该存储单元的地址;当所述另一个运算核心请求访问共享内存的多个存储单元时,第二访问地址可包括该多个存储单元的起始地址和请求的数据长度,也可包括该多个存储单元的起始地址和结束地址。
S218,若所述第二访问地址对应的第二共享区域的占用状态是未锁定状态,则允许所述另一个运算核心访问所述第二访问地址。
根据共享内存中各存储单元的地址与各共享区域之间的映射,可以确定第二访问地址对应的第二共享区域。可选地,第二共享区域可包括一片或多片共享区域。
在一些可行的实施方式中,当第二共享区域包括多片共享区域时,若该多片共享区域的占用状态都是未锁定状态,可以允许所述另一个运算核心访问所述第二访问地址。
可选地,若所述另一个运算核心发送的访问请求是只读请求,可以直接允许所述另一个运算核心访问其请求的地址。图2所述的多核系统的仲裁方法,将共享区域划分为至少两片共享区域,每片共享区域可以单独锁定或解锁,并记录至少一片共享区域的占用状态,当接收一个运算核心发送的第一访问请求时,可以查询所述至少两片共享区域的锁定记录,根据第一访问请求中携带的第一访问地址对应的第一共享区域的占用状态,对该运算核心的请求作出仲裁。采用此方法,当一个运算核心请求锁定共享内存时,只锁定共享内存中的一部分区域,其他运算核心仍然可以同时访问共享内存的其他区域,从而可以提高共享内存在被锁定时的吞吐量以及多核系统的并发性能。
请参见图3,图3为本发明的多核系统的一实施例的结构示意图。如图3所示,该多核系统可包括仲裁器301以及至少两个运算核心302,所述至少两个运算核心302通过总线303连接所述多核系统的共享内存304;其中仲裁器301用于:
将所述共享内存划分为至少两片共享区域;
接收一个运算核心发送的第一访问请求,其中所述访问请求中携带第一访问地址;以及,
查询所述至少两片共享区域的锁定记录,在所述锁定记录中所述第一访问地址对应的第一共享区域的占用状态是未锁定状态,而且所述第一访问请求为锁定请求时,把所述第一共享区域锁定为仅能被所述一个运算核心非只读访问。
具体地,根据共享内存的容量大小和/或需要的并行处理程度,可以在逻辑上将共享内存划分为至少两个逻辑空间,即所述的共享区域。可选地,所述至少两片共享区域的容量可以相同或不同。
具体实施中,共享内存的每个存储单元都有自己的地址,可预先根据各存储单元的地址和每片共享区域的容量建立存储单元地址和共享区域之间的映射,通常一片共享区域可对应于包括多个存储单元地址的一段地址范围。
在一些可行的实施方式中,本发明实施例的访问请求包括锁定请求、解锁请求以及其他请求。
当运算核心请求访问共享内存时,通常访问请求中携带有访问地址,该访问地址为所述运算核心请求访问的存储单元的地址。可选地,每次运算核心请求访问共享内存时,可以请求访问共享内存中的一个或多个存储单元,相应地,当第一访问请求为请求访问共享内存的一个存储单元时,第一访问地址为该存储单元的地址;当第一访问请求为请求访问共享内存的多个存储单元时,第一访问地址可包括该多个存储单元的起始地址和请求的数据长度,也可包括该多个存储单元的起始地址和结束地址。
本发明实施例中,仲裁器可存储所述至少两片共享区域的锁定记录,该锁定记录中记录了所述至少两片共享区域中的一片或多片共享区域的占用状态,其中每片共享区域的占用状态包括锁定状态或未锁定状态。
根据共享内存中各存储单元的地址与各共享区域之间的映射,可以确定第一访问地址对应的第一共享区域。其中,一个访问地址和一片共享区域对应,意味着这个访问地址在这片共享区域的地址范围之内。或者说,这个访问地址指向的存储空间属于这片共享区域。可选地,第一共享区域可包括一片或多片共享区域。
本发明实施例中,处于未锁定状态的共享区域可以被任意运算核心读或者写。在一些可行的实施方式中,当第一共享区域包括多片共享区域时,若该多片共享区域的占用状态都是未锁定状态,而且第一访问请求为锁定请求,可以把第一共享区域锁定为仅能被所述一个运算核心非只读访问。其中,所述一个运算核心锁定一片或多片共享区域后,可对该一片或多片共享区域进行读写操作;而其他运算核心对该一片或多片共享区域可以进行只读操作,不能进行写操作。
本发明实施例中,接收到所述一个运算核心的锁定请求后,如果仲裁结果为允许锁定,则将所述锁定请求中的第一访问地址对应的第一共享区域锁定,而不必锁定整个总线。相应地,接收到所述一个运算核心的访问请求后,在做出仲裁决定之前,可先判断所述第一访问地址对应的第一共享区域是否已被其他运算核心锁定,如果所述第一共享区域未被其他运算核心锁定,则可允许所述一个运算核心访问所述第一访问地址。可选地,当所述第一共享区域包括多片共享区域时,一种较佳的实施方式为:当所述第一共享区域包括的所有共享区域均未被其他运算核心锁定时,允许所述一个运算核心访问所述第一访问地址。
图3所述的多核系统中,仲裁器将共享区域划分为至少两片共享区域,接收一个运算核心发送的第一访问请求,并查询所述至少两片共享区域的锁定记录,当第一访问请求为锁定请求且锁定记录中第一访问请求携带的第一访问地址对应的第一共享区域处于未锁定状态时,仲裁器可以锁定第一共享区域以使所述第一共享区域仅能被所述一个运算核心进行非只读访问,而无需独占整个总线。当其他运算核心请求访问共享内存时,只要其他运算核心请求访问的地址与锁定的第一共享区域不冲突,仍然可以允许其他运算核心同时访问共享内存,从而可以提高共享内存在被占用时的吞吐量以及多核系统的并发性能。
在一些可行的实施方式中,在查询所述至少两片共享区域的锁定记录后,若所述锁定记录中第一共享区域的占用状态为未锁定状态,无论读写操作或只读操作,都不会引起共享内存的一致性冲突,则仲裁器301可以允许所述一个运算核心访问所述第一访问地址。具体实施中,仲裁器301可以根据第一访问请求是否为锁定请求对第一访问地址的存储单元执行相应操作,例如若第一访问请求为锁定请求,则可以锁定第一共享区域;若第一访问请求为读写请求,则允许所述一个运算核心对所述第一访问地址的存储单元进行读写操作。
在一些可行的实施方式中,仲裁器301还用于:
在接收所述一个运算核心发送的访问请求之前,记录所述至少两片共享区域中至少一片共享区域的占用状态,其中所述占用状态包括锁定状态或未锁定状态;以及,
在记录所述至少两片共享区域中至少一片共享区域的占用状态之后,若所述至少一片共享区域的占用状态是锁定状态,记录锁定所述至少一片共享区域的至少一个运算核心的标识。
本发明实施例中,每片共享区域的占用状态包括两种:锁定状态或未锁定状态。可在仲裁器301中添加记录单元,用来记录共享区域的占用状态。
在一些可行的实施方式中,可记录所有共享区域的占用状态;也可记录部分共享区域的占用状态。具体实施中,记录的共享区域可以随着各存储单元的被访问情况作出相应更改。例如,在一段时间间隔内,可以选择被访问次数较多的N个存储空间对应的至少一片共享区域,记录该至少一片共享区域的占用状态,其中N为大于或等于1的整数。
在一些可行的实施方式中,当记录有一片共享区域的占用状态是锁定状态时,相应记录锁定该共享区域的运算核心的标识;在另一些可行的实施方式中,当记录有多片共享区域的占用状态是锁定状态时,可以将每片共享区域的锁定状态和锁定该片共享区域的运算核心的标识对应记录。
在一些可行的实施方式中,仲裁器301还用于:
在把所述第一共享区域锁定为仅能被所述一个运算核心非只读访问之后,更新所述第一共享区域的占用状态为锁定状态,并将锁定所述第一共享区域的运算核心的标识更新为所述一个运算核心的标识。
把所述第一共享区域锁定为仅能被所述一个运算核心非只读访问后,所述第一共享区域的占用状态将从未锁定状态变为锁定状态,因此将所述第一共享区域的占用状态更新为锁定状态,并且将锁定所述第一共享区域的运算核心的标识更新为发送所述第一访问请求的所述一个运算核心的标识。
在一些可行的实施方式中,仲裁器301还用于:
接收另一个运算核心发送的第二访问请求,其中所述第二访问请求中携带第二访问地址,且所述第二访问请求不是只读请求;以及
在所述第二访问地址对应的第二共享区域的占用状态是未锁定状态时,允许所述另一个运算核心访问所述第二访问地址。
可选地,锁定第一共享区域后,当另一个运算核心请求访问共享内存时,接收所述另一个运算核心发送的第二访问请求,其中所述第二访问请求不是只读请求,所述另一个运算核心请求访问的地址为第二访问地址,第二访问请求中携带第二访问地址。
可选地,第二访问请求可以是锁定请求、或其他非只读请求。
可选地,所述另一个运算核心可以请求访问共享内存中的一个或多个存储单元。相应地,当所述另一个运算核心请求访问共享内存的一个存储单元时,第二访问地址为该存储单元的地址;当所述另一个运算核心请求访问共享内存的多个存储单元时,第二访问地址可包括该多个存储单元的起始地址和请求的数据长度,也可包括该多个存储单元的起始地址和结束地址。
根据共享内存中各存储单元的地址与各共享区域之间的映射,可以确定第二访问地址对应的第二共享区域。可选地,第二共享区域可包括一片或多片共享区域。
在一些可行的实施方式中,当第二共享区域包括多片共享区域时,若该多片共享区域的占用状态都是未锁定状态,可以允许所述另一个运算核心访问所述第二访问地址。
可选地,若所述另一个运算核心发送的访问请求是只读请求,可以直接允许所述另一个运算核心访问其请求的地址。在一些可行的实施方式中,仲裁器301还用于:
在接收所述一个运算核心发送的第一访问请求之后,根据所述第一访问地址以及每片共享区域对应的地址范围,确定所述第一访问地址对应的第一共享区域。
具体实施中,共享内存的每个存储单元都有自己的地址,可预先根据各存储单元的地址和每片共享区域的容量建立存储单元地址和共享区域之间的映射,通常一片共享区域可对应于包括多个存储单元地址的一段地址范围。当接收到第一访问请求后,可以根据第一访问请求中的第一访问地址以及每片共享区域对应的地址范围来确定该第一访问地址对应的第一共享区域。
在一些可行的实施方式中,仲裁器301还用于:
在接收所述一个运算核心发送的第一访问请求之后,判断所述第一访问请求是否为解锁请求;若是,则解锁所述第一共享区域,并更新所述第一共享区域的占用状态为未锁定状态。
在一些可行的实施方式中,运算核心在锁定至少一片共享区域后,当不再需要锁定所述至少一片共享区域时,会发送解锁请求,请求解锁所述至少一片共享区域。此时若第一访问请求为解锁请求,可接受第一访问请求,解锁第一共享区域并将第一共享区域的占用状态更新为未锁定状态。
在一些可行的实施方式中,仲裁器301还用于:
在查询所述至少两片共享区域的锁定记录之后,若所述锁定记录中所述第一共享区域的占用状态是锁定状态,则判断锁定所述第一共享区域的运算核心的标识与所述一个运算核心的标识是否相同;以及,
若锁定所述第一共享区域的运算核心的标识与所述一个运算核心的标识相同,则允许所述一个运算核心访问所述第一访问地址。
通过判断锁定所述第一共享区域的运算核心的标识与发送第一访问请求的所述一个运算核心的标识是否相同,可得知所述第一共享区域是否被其他运算核心锁定了。如果判断结果为是,说明锁定所述第一共享区域的正是发送第一访问请求的所述一个运算核心,此时可以允许所述一个运算核心访问所述第一访问地址。
在一些可行的实施方式中,当第一共享区域包括多片共享区域时,若所述多片共享区域全部或部分处于锁定状态,可以进一步判断锁定所述全部或部分处于锁定状态的共享区域的运算核心的标识是否都与所述一个运算核心的标识相同,若是,可允许所述一个运算核心访问所述第一访问地址;否则可以直接拒绝所述第一访问请求,或者根据第一访问请求的类型做出仲裁,例如:若第一访问请求为只读请求,则允许所述一个运算核心访问所述第一访问地址;若第一访问请求为锁定请求或写请求,则拒绝第一访问请求。
在一些可行的实施方式中,仲裁器301还用于:
在查询所述至少两片共享区域的锁定记录之后,判断是否记录有所述第一共享区域的占用状态;
若未记录有所述第一共享区域的占用状态,则判断所述第一访问请求是否为锁定请求;
若所述第一访问请求不是锁定请求,则在所述第一访问请求为只读请求时允许所述一个运算核心访问所述第一访问地址;以及
若所述第一访问请求是锁定请求,则拒绝所述第一访问请求。
在一些可行的实施方式中,若未记录有所述第一共享区域的占用状态,即无法从记录中得知所述第一共享区域是否已被锁定以及被哪个运算内核锁定,此时可以根据第一访问请求的类别来决定仲裁结果。
若所述第一访问请求是锁定请求或写请求,考虑到所述第一共享区域可能已被其他运算核心锁定,为避免发生冲突,可以拒绝锁定请求或写请求。
若所述第一访问请求为只读请求,不会改变存储单元中存储的数据,则可以允许所述一个运算核心访问所述第一访问地址。
本发明实施例中,将共享区域划分为至少两片共享区域,每片共享区域可以单独锁定或解锁,并记录至少一片共享区域的占用状态,当接收一个运算核心发送的第一访问请求时,可以查询所述至少两片共享区域的锁定记录,根据第一访问请求中携带的第一访问地址对应的第一共享区域的占用状态,对该运算核心的请求作出仲裁。采用此方法,当一个运算核心请求锁定共享内存时,只锁定共享内存中的一部分区域,其他运算核心仍然可以同时访问共享内存的其他区域,从而可以提高共享内存在被锁定时的吞吐量以及多核系统的并发性能。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本发明实施例设备中的模块或单元可以根据实际需要进行合并、划分和删减。
本发明实施例的模块或单元,可以以通用集成电路(如中央处理器CPU),或以专用集成电路(ASIC)来实现。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所述的实施方式,并不构成对该技术方案保护范围的限定。任何在上述实施方式的精神和原则之内所作的修改、等同替换和改进等,均应包含在该技术方案的保护范围之内。
Claims (14)
1.一种多核系统的仲裁方法,所述多核系统包括至少两个运算核心,所述至少两个运算核心通过总线连接所述多核系统的共享内存;其特征在于,所述方法包括:
将所述共享内存划分为至少两片共享区域;
接收一个运算核心发送的第一访问请求,其中所述第一访问请求中携带第一访问地址;
查询所述至少两片共享区域的锁定记录,若所述锁定记录中所述第一访问地址对应的第一共享区域的占用状态是未锁定状态,而且所述第一访问请求为锁定请求,则把所述第一共享区域锁定为仅能被所述一个运算核心非只读访问。
2.根据权利要求1所述的方法,其特征在于,所述锁定所述第一共享区域之后,所述方法还包括:
接收另一个运算核心发送的第二访问请求,其中所述第二访问请求中携带第二访问地址,且所述第二访问请求不是只读请求;
若所述第二访问地址对应的第二共享区域的占用状态是未锁定状态,则允许所述另一个运算核心访问所述第二访问地址。
3.根据权利要求1所述的方法,其特征在于,所述接收一个运算核心发送的第一访问请求之前,所述方法还包括:
记录所述至少两片共享区域中至少一片共享区域的占用状态,其中所述占用状态包括锁定状态或未锁定状态;
所述把所述第一共享区域锁定为仅能被所述一个运算核心非只读访问之后,所述方法还包括:
更新所述第一共享区域的占用状态为锁定状态,并将锁定所述第一共享区域的运算核心的标识更新为所述一个运算核心的标识。
4.根据权利要求3所述的方法,其特征在于,所述记录所述至少两片共享区域中至少一片共享区域的占用状态之后,所述方法还包括:
若所述至少一片共享区域的占用状态是锁定状态,记录锁定所述至少一片共享区域的至少一个运算核心的标识;
所述查询所述至少两片共享区域的锁定记录之后,所述方法还包括:
若所述锁定记录中所述第一共享区域的占用状态是锁定状态,则判断锁定所述第一共享区域的运算核心的标识与所述一个运算核心的标识是否相同;
若锁定所述第一共享区域的运算核心的标识与所述一个运算核心的标识相同,则允许所述一个运算核心访问所述第一访问地址。
5.根据权利要求1所述的方法,其特征在于,所述查询所述至少两片共享区域的锁定记录之后,所述方法还包括:
判断是否记录有所述第一共享区域的占用状态;
若未记录有所述第一共享区域的占用状态,则判断所述第一访问请求是否为锁定请求;
若所述第一访问请求不是锁定请求,则在所述第一访问请求为只读请求时允许所述一个运算核心访问所述第一访问地址;
若所述第一访问请求是锁定请求,则拒绝所述第一访问请求。
6.根据权利要求1所述的方法,其特征在于,所述接收一个运算核心发送的第一访问请求之后,所述方法还包括:
判断所述第一访问请求是否为解锁请求,若是,则解锁所述第一共享区域,并更新所述第一共享区域的占用状态为未锁定状态。
7.根据权利要求1所述的方法,其特征在于,所述接收一个运算核心发送的第一访问请求之后,所述方法还包括:
根据所述第一访问地址以及每片共享区域对应的地址范围,确定所述第一访问地址对应的第一共享区域。
8.一种多核系统,所述多核系统包括仲裁器以及至少两个运算核心,所述至少两个运算核心通过总线连接所述多核系统的共享内存;其特征在于,所述仲裁器用于:
将所述共享内存划分为至少两片共享区域;
接收一个运算核心发送的第一访问请求,其中所述第一访问请求中携带第一访问地址;以及,
查询所述至少两片共享区域的锁定记录,在所述锁定记录中所述第一访问地址对应的第一共享区域的占用状态是未锁定状态,而且所述第一访问请求为锁定请求时,把所述第一共享区域锁定为仅能被所述一个运算核心非只读访问。
9.根据权利要求8所述的多核系统,其特征在于,所述仲裁器还用于:
接收另一个运算核心发送的第二访问请求,其中所述第二访问请求中携带第二访问地址,且所述第二访问请求不是只读请求;以及,
在所述第二访问地址对应的第二共享区域的占用状态是未锁定状态时,允许所述另一个运算核心访问所述第二访问地址。
10.根据权利要求8所述的多核系统,其特征在于,所述仲裁器还用于:
在接收所述一个运算核心发送的第一访问请求之前,记录所述至少两片共享区域中至少一片共享区域的占用状态,其中所述占用状态包括锁定状态或未锁定状态;以及,
在把所述第一共享区域锁定为仅能被所述一个运算核心非只读访问之后,更新所述第一共享区域的占用状态为锁定状态,并将锁定所述第一共享区域的运算核心的标识更新为所述一个运算核心的标识。
11.根据权利要求10所述的多核系统,其特征在于,所述仲裁器还用于:
在记录所述至少两片共享区域中至少一片共享区域的占用状态之后,若所述至少一片共享区域的占用状态是锁定状态,记录锁定所述至少一片共享区域的至少一个运算核心的标识;
在查询所述至少两片共享区域的锁定记录之后,若所述锁定记录中所述第一共享区域的占用状态是锁定状态,则判断锁定所述第一共享区域的运算核心的标识与所述一个运算核心的标识是否相同;以及,
若锁定所述第一共享区域的运算核心的标识与所述一个运算核心的标识相同,则允许所述一个运算核心访问所述第一访问地址。
12.根据权利要求8所述的多核系统,其特征在于,所述仲裁器还用于:
在查询所述至少两片共享区域的锁定记录之后,判断是否记录有所述第一共享区域的占用状态;
若未记录有所述第一共享区域的占用状态,则判断所述第一访问请求是否为锁定请求;
若所述第一访问请求不是锁定请求,则在所述第一访问请求为只读请求时允许所述一个运算核心访问所述第一访问地址;以及,
若所述第一访问请求是锁定请求,则拒绝所述第一访问请求。
13.根据权利要求8所述的多核系统,其特征在于,所述仲裁器还用于:
在接收所述一个运算核心发送的第一访问请求之后,判断所述第一访问请求是否为解锁请求;若是,则解锁所述第一共享区域,并更新所述第一共享区域的占用状态为未锁定状态。
14.根据权利要求8所述的多核系统,其特征在于,所述仲裁器还用于:
在接收所述一个运算核心发送的第一访问请求之后,根据所述第一访问地址以及每片共享区域对应的地址范围,确定所述第一访问地址对应的第一共享区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410797630.6A CN104536916B (zh) | 2014-12-18 | 2014-12-18 | 一种多核系统的仲裁方法及多核系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410797630.6A CN104536916B (zh) | 2014-12-18 | 2014-12-18 | 一种多核系统的仲裁方法及多核系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104536916A true CN104536916A (zh) | 2015-04-22 |
CN104536916B CN104536916B (zh) | 2018-04-10 |
Family
ID=52852446
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410797630.6A Active CN104536916B (zh) | 2014-12-18 | 2014-12-18 | 一种多核系统的仲裁方法及多核系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104536916B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106407131A (zh) * | 2016-03-30 | 2017-02-15 | 沈阳泰科易科技有限公司 | 内存访问方法和装置 |
WO2017129036A1 (zh) * | 2016-01-29 | 2017-08-03 | 华为技术有限公司 | 处理节点、计算机系统及事务冲突检测方法 |
CN108121685A (zh) * | 2017-08-07 | 2018-06-05 | 鸿秦(北京)科技有限公司 | 一种嵌入式多核cpu固件运行方法 |
CN108804380A (zh) * | 2018-05-21 | 2018-11-13 | 南京大学 | 矢量运算硬件加速器多核级联的周期精确模型 |
WO2020108496A1 (zh) * | 2018-11-30 | 2020-06-04 | 上海寒武纪信息科技有限公司 | 原子操作中的数据处理方法及装置 |
CN111258653A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 原子访存方法、存储介质、计算机设备、装置和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101208671A (zh) * | 2005-06-27 | 2008-06-25 | 起元软件有限公司 | 管理消息队列 |
CN101216781A (zh) * | 2007-12-28 | 2008-07-09 | 中国科学院计算技术研究所 | 一种多处理器系统、装置及方法 |
US20100312972A1 (en) * | 2009-06-08 | 2010-12-09 | Huawei Technologies Co., Ltd. | Method, apparatus and system for enabling processor to access shared data |
CN103392167A (zh) * | 2012-12-28 | 2013-11-13 | 华为技术有限公司 | 分布式存储系统的缓存方法、节点和计算机可读介质 |
CN104063331A (zh) * | 2014-07-03 | 2014-09-24 | 龙芯中科技术有限公司 | 处理器、共享存储区域访问方法和锁管理器 |
-
2014
- 2014-12-18 CN CN201410797630.6A patent/CN104536916B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101208671A (zh) * | 2005-06-27 | 2008-06-25 | 起元软件有限公司 | 管理消息队列 |
CN101216781A (zh) * | 2007-12-28 | 2008-07-09 | 中国科学院计算技术研究所 | 一种多处理器系统、装置及方法 |
US20100312972A1 (en) * | 2009-06-08 | 2010-12-09 | Huawei Technologies Co., Ltd. | Method, apparatus and system for enabling processor to access shared data |
CN103392167A (zh) * | 2012-12-28 | 2013-11-13 | 华为技术有限公司 | 分布式存储系统的缓存方法、节点和计算机可读介质 |
CN104063331A (zh) * | 2014-07-03 | 2014-09-24 | 龙芯中科技术有限公司 | 处理器、共享存储区域访问方法和锁管理器 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017129036A1 (zh) * | 2016-01-29 | 2017-08-03 | 华为技术有限公司 | 处理节点、计算机系统及事务冲突检测方法 |
US10733101B2 (en) | 2016-01-29 | 2020-08-04 | Huawei Technologies Co., Ltd. | Processing node, computer system, and transaction conflict detection method |
CN106407131A (zh) * | 2016-03-30 | 2017-02-15 | 沈阳泰科易科技有限公司 | 内存访问方法和装置 |
CN106407131B (zh) * | 2016-03-30 | 2019-06-11 | 沈阳泰科易科技有限公司 | 内存访问方法和装置 |
CN108121685A (zh) * | 2017-08-07 | 2018-06-05 | 鸿秦(北京)科技有限公司 | 一种嵌入式多核cpu固件运行方法 |
CN108804380A (zh) * | 2018-05-21 | 2018-11-13 | 南京大学 | 矢量运算硬件加速器多核级联的周期精确模型 |
WO2020108496A1 (zh) * | 2018-11-30 | 2020-06-04 | 上海寒武纪信息科技有限公司 | 原子操作中的数据处理方法及装置 |
CN111258653A (zh) * | 2018-11-30 | 2020-06-09 | 上海寒武纪信息科技有限公司 | 原子访存方法、存储介质、计算机设备、装置和系统 |
CN111258653B (zh) * | 2018-11-30 | 2022-05-24 | 上海寒武纪信息科技有限公司 | 原子访存方法、存储介质、计算机设备、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN104536916B (zh) | 2018-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104536916A (zh) | 一种多核系统的仲裁方法及多核系统 | |
US20110173679A1 (en) | Resource access based on multiple scope levels | |
CN106548789A (zh) | 用于操作叠瓦式磁记录设备的方法和装置 | |
US7778986B2 (en) | Securing transfer of ownership of a storage object from an unavailable owner node to another node | |
US20090063668A1 (en) | Transfer of ownership of a storage object in response to an original owner node becoming available after a period of unavailability | |
CN104063331A (zh) | 处理器、共享存储区域访问方法和锁管理器 | |
EP2237155B1 (en) | Information processing program, information processing device and information processing method | |
CN107544918A (zh) | 一种内存页共享方法 | |
CN103064957B (zh) | 实现acl的方法及客户端 | |
CN109697127B (zh) | 一种对共享资源的访问操作加锁的方法和装置 | |
CN108595346B (zh) | 一种特征库文件管理方法和装置 | |
CN106326014A (zh) | 一种资源访问方法及装置 | |
CN104573112B (zh) | Oltp集群数据库中页面查询方法及数据处理节点 | |
CN109033353B (zh) | 一种电能质量管理系统共享内存更新方法 | |
CN105868023B (zh) | 一种分布式系统中的数据处理方法及计算节点 | |
CN107784091A (zh) | 一种操作权限查询方法及终端设备 | |
CN106796588A (zh) | 索引表的更新方法和设备 | |
CN116366317A (zh) | 远端内存访问保护机制构建方法、远端内存节点及设备 | |
US9323476B2 (en) | Hardware based cache scan with divert node handling | |
CN101996291B (zh) | 数据操作方法及装置 | |
CN110716814B (zh) | 一种进程间大数据量通讯的性能优化方法和装置 | |
Kimms et al. | A new modeling approach for the unrestricted block relocation problem | |
CN114138181B (zh) | 一种绑定池放置组选主的方法、装置、设备及可读介质 | |
CN113342274A (zh) | 一种数据处理方法及装置 | |
US8627494B2 (en) | Classification separation router |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |