CN103377086A - 用于异步多核系统操作共享资源的方法、装置及系统 - Google Patents
用于异步多核系统操作共享资源的方法、装置及系统 Download PDFInfo
- Publication number
- CN103377086A CN103377086A CN2012101286223A CN201210128622A CN103377086A CN 103377086 A CN103377086 A CN 103377086A CN 2012101286223 A CN2012101286223 A CN 2012101286223A CN 201210128622 A CN201210128622 A CN 201210128622A CN 103377086 A CN103377086 A CN 103377086A
- Authority
- CN
- China
- Prior art keywords
- lock
- processor
- hardware resource
- state
- command
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/176—Support for shared access to files; File sharing support
- G06F16/1767—Concurrency control, e.g. optimistic or pessimistic approaches
- G06F16/1774—Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
-
- 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)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Multi Processors (AREA)
Abstract
本发明提供一种用于异步多核系统操作共享资源的方法、装置及系统的技术效果是:异步多核系统中的处理器通过锁定硬件资源锁实现对共享资源的操作,且硬件资源锁通过寄存器实现,使得异步多核系统中的总线无需支持同步操作,处理器也不必具有支持同步操作的特性,只需通过访问寄存器的方式便可实现对共享资源的操作,简化了异步多核系统中处理器操作共享资源的操作,扩大了异步多核系统中处理器的选择范围,也提高了异步多核系统的灵活性。
Description
技术领域
本发明涉及计算机技术,尤其涉及一种用于异步多核系统操作共享资源的方法、装置及系统。
背景技术
片上系统(System On Chip,SoC)如单核操作系统(Operating System,OS)多进程系统,对称多核(Symmetric Multiprocessing,SMP)系统,非对称多核(Asymmetric Multiprocessing,AMP)系统,都会涉及到共享资源的访问。
对单核OS系统来说,通常资源的同步和共享是通过操作系统提供的信号量来实现的,而信号量可以通过软件实现,不需要硬件支持。单核OS系统多个进程间在访问共享资源时,需要先获取一个信号量,该信号量通常由操作系统提供的数据结构(即通过软件数据结构的方式)实现。进程按时间片获得处理器的执行时间,因此任一时刻处理器对信号量的访问都是唯一的,不会出现总线竞争的问题。
多核系统由于各处理器执行完全独立,因此任何时刻各处理器都可能发出对一个资源的独立访问操作,就会存在总线竞争,通过软件的方式解决不了信号量访问的总线竞争问题,因此资源的同步和共享需要硬件的支持。例如ARM一般通过AMBA总线的排外操作(exclusive)实现。多核系统实现资源的同步和共享需要满足两个条件:硬件支持及处理器可以发出同步操作。
但是,多核系统访问共享资源时,总线需要支持同步操作,且处理器需要支持同步访问操作,不仅增加了逻辑难度,而且对处理器的选择存在局限性,降低了灵活性。
在实际的SoC设计中,会经常碰到不满足资源同步和共享的条件。如果系统中有一个控制处理器例如ARM7、Cortex M3、MCU,这个处理器作为系统控制或低功耗控制,该控制处理器发不出同步操作,而控制处理器会和主处理器访问相同的资源,就会存在资源的同步问题,这种处理器一般和主处理器不挂在相同的总线上,难以通过统一的总线支持来实现。
发明内容
本发明实施例提供一种用于异步多核系统操作共享资源的方法、装置及系统,用于简化异步多核系统中对共享资源的操作。
第一方面,本发明实施例提供一种用于异步多核系统操作共享资源的方法,包括:
硬件资源锁接收异步多核系统中第一处理器发出的锁定命令,所述硬件资源锁通过寄存器实现;
所述硬件资源锁在锁定的状态下,忽略所述锁定命令,所述硬件资源锁在未锁定的状态下,设置为被所述第一处理器锁定的状态,以使所述第一处理器操作共享资源。
第二方面,本发明实施例提供一种用于异步多核系统操作共享资源的方法,包括:
所述异步多核系统中第一处理器在硬件资源锁未锁定的状态下,向所述硬件资源锁下发锁定命令,以锁定所述硬件资源锁,所述硬件资源锁通过寄存器实现;
在所述硬件资源锁被所述第一处理器锁定的状态下,所述第一处理器操作共享资源。
第三方面,本发明实施例提供一种硬件资源锁,包括:
锁定状态寄存器,用于给出硬件资源锁的状态;
锁定寄存器,用于接收异步多核系统中第一处理器发出的锁定命令,并在所述硬件资源锁为锁定的状态下,忽略所述锁定命令,在所述硬件资源锁为未锁定的状态下,设置为被所述第一处理器锁定的状态,以使所述第一处理器操作共享资源。
第四方面,本发明实施例提供一种异步多核系统中的处理器,包括:
锁定单元,用于在硬件资源锁未锁定的状态下,向所述硬件资源锁下发锁定命令,以锁定所述硬件资源锁,所述硬件资源锁通过寄存器实现;
资源操作单元,用于在所述硬件资源锁被所述第一处理器锁定的状态下,操作共享资源。
第五方面,本发明实施例提供一种异步多核系统,包括上述硬件资源锁和至少两个上述异步多核系统中的处理器。
本发明实施例提供的用于异步多核系统操作共享资源的方法、装置及系统的技术效果是:异步多核系统中的处理器通过锁定硬件资源锁实现对共享资源的操作,且硬件资源锁通过寄存器实现,使得异步多核系统中的总线无需支持同步操作,处理器也不必具有支持同步操作的特性,只需通过访问寄存器的方式便可实现对共享资源的操作,简化了异步多核系统中处理器操作共享资源的操作,扩大了异步多核系统中处理器的选择范围,也提高了异步多核系统的灵活性。
附图说明
图1为本发明实施例提供的一种用于异步多核系统操作共享资源的方法的流程图;
图2为本发明实施例提供的另一种用于异步多核系统操作共享资源的方法的流程图;
图3为本发明实施例提供的一种硬件资源锁的结构示意图;
图4为本发明实施例提供的另一种硬件资源锁的结构示意图;
图5为图4所示硬件资源锁中各寄存器的存储内容信息;
图6为图4所示硬件资源锁中锁定寄存器的逻辑实现图;
图7为图4所示硬件资源锁中解锁寄存器的实现逻辑图;
图8为图4所示硬件资源锁中锁定状态寄存器的实现逻辑图;
图9为本发明实施例提供的一种异步多核系统的结构示意图;
图10为本发明实施例提供的异步多核系统中的处理器的结构示意图;
图11为本发明实施例提供的另一种异步多核系统的结构示意图。
具体实施方式
图1为本发明实施例提供的一种用于异步多核系统操作共享资源的方法的流程图。如图1所示,该方法包括:
步骤11、硬件资源锁接收异步多核系统中第一处理器发出的锁定命令,该硬件资源锁通过寄存器实现;
步骤12、该硬件资源锁在锁定的状态下,忽略该锁定命令,该硬件资源锁在未锁定的状态下,设置为被该第一处理器锁定的状态,以使该第一处理器操作共享资源。
可选地,硬件资源锁接收异步多核系统中第一处理器发出的锁定命令之前,还包括:
接收该第一处理器发出的查询命令,该第一查询命令用于查询该硬件资源锁的状态;
向该第一处理器返回该硬件资源锁的状态。
可选地,该硬件资源锁在锁定的状态下,忽略该锁定命令,该硬件资源锁在未锁定的状态下,设置为被该第一处理器锁定的状态,以使该第一处理器操作共享资源之后,还包括:
接收该第一处理器发出的第二查询命令,该第二查询命令用于查询该硬件资源锁是否由该第一处理器锁定;
向该第一处理器返回锁定结果。
可选地,该硬件资源锁在未锁定的状态下,设置为被该第一处理器锁定的状态,以使该第一处理器操作共享资源之后,还包括:
接收该第一处理器发出的解锁命令;
该硬件资源锁根据该解锁命令恢复为未锁定的状态。
可选地,硬件资源锁接收异步多核系统中第一处理器发出的锁定命令之后,还包括:
接收该异步多核系统中第二处理器发出的锁定命令;
该硬件资源锁忽略该第二处理器发出的锁定命令。
可选地,接收该异步多核系统中第二处理器发出的锁定命令之前,还包括:
接收该第二处理器发出的第一查询命令,该第二处理器发出的第一查询命令用于查询该硬件资源锁的状态;
向该第二处理器返回该硬件资源锁的状态。
可选地,该硬件资源锁忽略该第二处理器发出的锁定命令之后,还包括:
接收该第二处理器发出的第二查询命令,该第二处理器发出的第二查询命令用于查询该硬件资源锁是否由该第二处理器锁定;
向该第二处理器返回锁定结果。
本发明实施例中,异步多核系统通过锁定硬件资源锁实现对共享资源的操作,且硬件资源锁通过寄存器实现,使得异步多核系统中的总线无需支持同步操作,处理器也不必具有支持同步操作的特性,只需通过访问寄存器的方式便可实现对共享资源的操作,简化了异步多核系统中处理器操作共享资源的操作,扩大了异步多核系统中处理器的选择范围,也提高了异步多核系统的灵活性。
图2为本发明实施例提供的另一种用于异步多核系统操作共享资源的方法的流程图。如图2所示,该方法包括:
步骤21、该异步多核系统中第一处理器在硬件资源锁未锁定的状态下,向该硬件资源锁下发锁定命令,以锁定该硬件资源锁,该硬件资源锁通过寄存器实现;
步骤22、在该硬件资源锁被该第一处理器锁定的状态下,该第一处理器操作共享资源。
可选地,该第一处理器操作共享资源之前,还包括:
该第一处理器读取该硬件资源锁的状态。
可选地,该第一处理器操作共享资源之后,还包括:
该第一处理器向该硬件资源锁发出解锁命令,以使该硬件资源锁恢复为未锁定的状态。
本发明实施例中,异步多核系统中的处理器通过锁定硬件资源锁实现对共享资源的操作,且硬件资源锁通过寄存器实现,使得异步多核系统中的总线无需支持同步操作,处理器也不必具有支持同步操作的特性,只需通过访问寄存器的方式便可实现对共享资源的操作,简化了异步多核系统中处理器操作共享资源的操作,扩大了异步多核系统中处理器的选择范围,也提高了异步多核系统的灵活性。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
图3为本发明实施例提供的一种硬件资源锁的结构示意图。如图3所示,硬件资源锁包括:锁定状态寄存器31及锁定寄存器32。
锁定状态寄存器31用于给出硬件资源锁的状态;锁定寄存器32用于接收异步多核系统中第一处理器发出的锁定命令,并在该硬件资源锁为锁定的状态下,忽略该锁定命令,在该硬件资源锁为未锁定的状态下,设置为被该第一处理器锁定的状态,以使该第一处理器操作共享资源。
可选地,该锁定状态寄存器31还用于接收该第一处理器发出的查询命令,该第一查询命令用于查询该硬件资源锁的状态,并向该第一处理器返回该硬件资源锁的状态。
可选地,该锁定寄存器32还用于接收该第一处理器发出的第二查询命令,该第二查询命令用于查询该硬件资源锁是否由该第一处理器锁定,并向该第一处理器返回锁定结果。
可选地,该硬件资源锁还包括:解锁寄存器,用于在该硬件资源锁在未锁定的状态下,设置为被该第一处理器锁定的状态,以使该第一处理器操作共享资源之后,接收该第一处理器发出的解锁命令,并根据该解锁命令恢复为未锁定的状态。
可选地,该锁定寄存器32还用于在接收异步多核系统中第一处理器发出的锁定命令之后,接收该异步多核系统中第二处理器发出的锁定命令,并忽略该第二处理器发出的锁定命令。
可选地,该锁定状态寄存器还用于在该锁定寄存器32接收该异步多核系统中第二处理器发出的锁定命令之前,接收该第二处理器发出的第一查询命令,该第二处理器发出的第一查询命令用于查询该硬件资源锁的状态,并向该第二处理器返回该硬件资源锁的状态。
可选地,该锁定状态寄存器31还用于在该锁定寄存器忽略该第二处理器发出的锁定命令之后,接收该第二处理器发出的第二查询命令,该第二处理器发出的第二查询命令用于查询该硬件资源锁是否由该第二处理器锁定,向该第二处理器返回锁定结果。
本发明实施例中,硬件资源锁通过锁定寄存器及锁定状态寄存器,使得异步多核系统信号的处理器能够通过锁定硬件资源锁实现对共享资源的操作,且硬件资源锁通过寄存器实现,使得异步多核系统中的总线无需支持同步操作,处理器也不必具有支持同步操作的特性,只需通过访问寄存器的方式便可实现对共享资源的操作,简化了异步多核系统中处理器操作共享资源的操作,扩大了异步多核系统中处理器的选择范围,也提高了异步多核系统的灵活性。
图4为本发明实施例提供的另一种硬件资源锁的结构示意图。如图4所示,硬件资源锁包括锁定寄存器41,解锁寄存器42和锁定状态寄存器43等3个寄存器。每个寄存器的存储容量为4bit,如图5所示,锁定寄存器41,解锁寄存器42和锁定状态寄存器43的最低的1个比特位分别为锁定命令位、解锁命令位和锁定状态标志位,高的3个比特位为对应的主标识(master ID)号,也即锁定、解锁硬件资源锁的处理器的标识。
以对共享资源进行写操作为例。其中,锁定寄存器41的逻辑实现如图6所示。其中,各信号说明如下:
resoucelock_wen:为异步多核系统中处理器发出的锁定写使能信号,即锁定写命令;
pwdata[3:0]:为异步多核系统中处理器发出的锁定写数据信号;其中,pwdata[0]为处理器发出的锁定命令,pwdata[3:1]为发出锁定命令的处理器的标识;
resourcelock_st[0]:为硬件资源锁的状态信号,由锁定状态寄存器43给出。
resourcelock_en:为锁定寄存器41发出的锁定使能信号。
假设锁定寄存器41接收到异步多核系统中第一处理器发出的锁定写命令及锁定命令时,若resourcelock_st[0]表示未锁定状态,则锁定寄存器41发出锁定使能信号给锁定状态寄存器43,若resourcelock_st[0]表示锁定状态,则锁定寄存器41不发出的锁定使能信号。
解锁寄存器42的实现逻辑如图7所示,其中,各信号说明如下:
resourceunlock_wen:为异步多核系统中处理器发出的解锁写使能信号,即解锁写命令;
pwdata[0]:为异步多核系统中处理器发出的解锁命令;
pwdata[3:1]:为发出解锁命令的处理器的标识;
resourcelock_st[3:1]:为锁定硬件资源锁的处理器的标识,由锁定状态寄存器43给出;
resourceunlock_en:为解锁寄存器42发出的解锁使能信号。
解锁寄存器42不需要知道硬件资源锁的状态,如果解锁寄存器42接收到来自异步多核处理系统中处理器发出的解锁命令,则硬件资源锁必然为锁定的状态,即锁定状态寄存器43给出的状态必然是锁定状态,解锁寄存器42只需要判断发出解锁命令的处理器的标识与发出锁定命令的处理器的标识是否一致,这样,锁定状态寄存器43需要将resourcelock_st[3:1]提供给解锁寄存器42,而resourcelock_st[0]提供给锁定寄存器41。
锁定状态寄存器43的实现逻辑如图8所示,各信号说明如下:
resourceunlock_en:为解锁寄存器42发出的解锁使能信号;
resourcelock_en:为锁定寄存器41发出的锁定使能信号;
pwdata[3:1]:为发出锁定命令的处理器的标识,由异步多核系统中的处理器发出;
resourcelock_st[3:0]:为锁定状态寄存器43给出的资源锁状态信号。
锁定状态寄存器43接收到锁定使能信号时,resourcelock_st[3:0]中的resourcelock_st[3:1]为锁定硬件资源锁的处理器的标识,resourcelock_st[0]表示硬件资源锁处于锁定状态。锁定状态寄存器43接收到解锁使能信号时,resourcelock_st[3:0]中的resourcelock_st[3:1]无效,resourcelock_st[0]表示硬件资源锁处于未锁定状态。
当硬件资源锁处于未锁定状态时,允许异步多核系统中的处理器下发锁定命令锁定该硬件资源锁,否则,下发锁定命令无效。
当硬件资源锁处于锁定状态时,允许下发解锁命令解锁该资源锁,解锁时,发出解锁命令的处理器的标识必须与锁定硬件资源锁的处理器的标识一致,否则解锁失败。硬件资源锁的锁定过程具有互斥特性,当两个处理器同时发起对一个资源锁的锁定命令时,资源锁先接收到的锁命令会被接受,后接收到的锁命令被忽略,因此,某一处理器的进程发起锁定命令后,需要回读锁状态,以确认是否本进程锁定了资源锁。
现以图9所示的两个处理器CPU0、CPU1为例做进一步详细说明。
首先,CPU0、CPU1分别查询锁定状态寄存器的锁定状态,如果未锁定,CPU0发出ID为000的锁定命令(向锁定寄存器写入的值为4’b0001),CPU1发出ID为001的锁定命令(向锁定寄存器写入的值为4’b0011)。
CPU0、CPU1发出的锁定命令通过总线后,CPU1发出的锁定命令先到硬件资源锁接口,锁定寄存器发出锁定使能信号,触发锁定状态寄存器将锁定状态域设置为1,锁定master ID域设定为001,即锁定状态寄存器发出的resourcelock_st[3:0]为4’b0011。
由于CPU0发出的锁定命令后到达硬件资源锁接口,硬件资源锁中的锁定寄存器判断硬件资源锁已被锁定,则忽略CPU0发出的锁定命令。
硬件资源锁被锁定后,只接受标识为锁定硬件资源锁的处理器发的解锁命令,其余命令或操作全部忽略。
CPU0、CPU1发出锁定命令后,均发出操作查询命令,查询是否由本处理器锁定,如可通过读锁定状态寄存器获知锁定硬件资源锁的处理器的标识,从而可获知本处理器是否锁定成功。
本实施例中,CPU0查询锁定失败,CPU1查询锁定成功。CPU0继续查询硬件资源锁的锁定状态,直到CPU1发出解锁操作,CPU0才可以出发锁定命令锁定硬件资源锁,从而通过硬件资源锁操作共享资源。
CPU1获知锁定成功后,通过硬件资源锁完成对共享资源的操作。之后,发出解锁命令pwdata[3:0]。如CPU1向解锁寄存器写入4’b0011,硬件资源锁收到解锁命令后,先判断是否是ID为001的处理器发的操作,若是,则发出解锁使能信号,触发锁定状态寄存器将硬件资源锁定的状态设置为未锁定状态,同时把master ID域设置为0。
CPU0查询到硬件资源锁为未锁定的状态后,发出锁定命令锁定硬件资源锁,锁定成功后,通过硬件资源锁操作共享资源。
图10为本发明实施例提供的异步多核系统中的处理器的结构示意图。如图10所示,异步多核系统中的处理器包括:锁定单元101及资源操作单元102。
锁定单元101用于在硬件资源锁未锁定的状态下,向该硬件资源锁下发锁定命令,以锁定该硬件资源锁,该硬件资源锁通过寄存器实现。资源操作单元102用于在该硬件资源锁被该第一处理器锁定的状态下,操作共享资源。
可选地,本发明实施例提供的异步多核系统中的处理器还包括:锁定回读单元,用于在该资源操作单元102操作共享资源之前,读取该硬件资源锁的状态。
可选地,本发明实施例提供的异步多核系统中的处理器还包括:解锁单元,用于在该资源操作单元102操作共享资源之后,向该硬件资源锁发出解锁命令,以使该硬件资源锁恢复为未锁定的状态。
本发明实施例中,异步多核系统信号的处理器通过锁定单元锁定硬件资源锁,实现了对共享资源的操作,且硬件资源锁通过寄存器实现,使得异步多核系统中的总线无需支持同步操作,处理器也不必具有支持同步操作的特性,只需通过访问寄存器的方式便可实现对共享资源的操作,简化了异步多核系统中处理器操作共享资源的操作,扩大了异步多核系统中处理器的选择范围,也提高了异步多核系统的灵活性。
本发明实施例提供的异步多核系统包括处理器及硬件资源锁。其中,处理器至少有两个,可为上述实施例提供的任一种异步多核系统的处理器。硬件资源锁可为上述实施例提供的任一种硬件资源锁。
本发明实施例提供的异步多核系统一种示例如图9所示,另一种示例如图11所示,其中,A9集群(A9Cluster)和MCU各为一个处理器,InterConnect为总线,与硬件资源锁111共同构成了异步多核系统。该异步多核系统中,A9Cluster处理器和MCU可以通过硬件资源锁111访问共享资源。
本发明实施例中,异步多核系统信号的处理器通过锁定硬件资源锁实现对共享资源的操作,且硬件资源锁通过寄存器实现,使得异步多核系统中的总线无需支持同步操作,处理器也不必具有支持同步操作的特性,只需通过访问寄存器的方式便可实现对共享资源的操作,简化了异步多核系统中处理器操作共享资源的操作,扩大了异步多核系统中处理器的选择范围,也提高了异步多核系统的灵活性。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (21)
1.一种用于异步多核系统操作共享资源的方法,其特征在于,包括:
硬件资源锁接收异步多核系统中第一处理器发出的锁定命令,所述硬件资源锁通过寄存器实现;
所述硬件资源锁在锁定的状态下,忽略所述锁定命令,所述硬件资源锁在未锁定的状态下,设置为被所述第一处理器锁定的状态,以使所述第一处理器操作共享资源。
2.根据权利要求1所述方法,其特征在于,硬件资源锁接收异步多核系统中第一处理器发出的锁定命令之前,还包括:
接收所述第一处理器发出的查询命令,所述第一查询命令用于查询所述硬件资源锁的状态;
向所述第一处理器返回所述硬件资源锁的状态。
3.根据权利要求1所述方法,其特征在于,所述硬件资源锁在锁定的状态下,忽略所述锁定命令,所述硬件资源锁在未锁定的状态下,设置为被所述第一处理器锁定的状态,以使所述第一处理器操作共享资源之后,还包括:
接收所述第一处理器发出的第二查询命令,所述第二查询命令用于查询所述硬件资源锁是否由所述第一处理器锁定;
向所述第一处理器返回锁定结果。
4.根据权利要求1-3任一项所述方法,其特征在于,所述硬件资源锁在未锁定的状态下,设置为被所述第一处理器锁定的状态,以使所述第一处理器操作共享资源之后,还包括:
接收所述第一处理器发出的解锁命令;
所述硬件资源锁根据所述解锁命令恢复为未锁定的状态。
5.根据权利要求1-3任一项所述方法,其特征在于,硬件资源锁接收异步多核系统中第一处理器发出的锁定命令之后,还包括:
接收所述异步多核系统中第二处理器发出的锁定命令;
所述硬件资源锁忽略所述第二处理器发出的锁定命令。
6.根据权利要求5所述方法,其特征在于,接收所述异步多核系统中第二处理器发出的锁定命令之前,还包括:
接收所述第二处理器发出的第一查询命令,所述第二处理器发出的第一查询命令用于查询所述硬件资源锁的状态;
向所述第二处理器返回所述硬件资源锁的状态。
7.根据权利要求5所述方法,其特征在于,所述硬件资源锁忽略所述第二处理器发出的锁定命令之后,还包括:
接收所述第二处理器发出的第二查询命令,所述第二处理器发出的第二查询命令用于查询所述硬件资源锁是否由所述第二处理器锁定;
向所述第二处理器返回锁定结果。
8.一种用于异步多核系统操作共享资源的方法,其特征在于,包括:
所述异步多核系统中第一处理器在硬件资源锁未锁定的状态下,向所述硬件资源锁下发锁定命令,以锁定所述硬件资源锁,所述硬件资源锁通过寄存器实现;
在所述硬件资源锁被所述第一处理器锁定的状态下,所述第一处理器操作共享资源。
9.根据权利要求8所述方法,其特征在于,所述第一处理器操作共享资源之前,还包括:
所述第一处理器读取所述硬件资源锁的状态。
10.根据权利要求8或9所述方法,其特征在于,所述第一处理器操作共享资源之后,还包括:
所述第一处理器向所述硬件资源锁发出解锁命令,以使所述硬件资源锁恢复为未锁定的状态。
11.一种硬件资源锁,其特征在于,包括:
锁定状态寄存器,用于给出硬件资源锁的状态;
锁定寄存器,用于接收异步多核系统中第一处理器发出的锁定命令,并在所述硬件资源锁为锁定的状态下,忽略所述锁定命令,在所述硬件资源锁为未锁定的状态下,设置为被所述第一处理器锁定的状态,以使所述第一处理器操作共享资源。
12.根据权利要求11所述硬件资源锁,其特征在于,所述锁定状态寄存器还用于接收所述第一处理器发出的第一查询命令,所述第一查询命令用于查询所述硬件资源锁的状态,并向所述第一处理器返回所述硬件资源锁的状态。
13.根据权利要求11所述硬件资源锁,其特征在于,所述锁定寄存器还用于接收所述第一处理器发出的第二查询命令,所述第二查询命令用于查询所述硬件资源锁是否由所述第一处理器锁定,并向所述第一处理器返回锁定结果。
14.根据权利要求11-13任一项所述硬件资源锁,其特征在于,还包括:
解锁寄存器,用于在所述硬件资源锁在未锁定的状态下,设置为被所述第一处理器锁定的状态,以使所述第一处理器操作共享资源之后,接收所述第一处理器发出的解锁命令,并根据所述解锁命令恢复为未锁定的状态。
15.根据权利要求11-13任一项所述硬件资源锁,其特征在于,所述锁定寄存器还用于在接收异步多核系统中第一处理器发出的锁定命令之后,接收所述异步多核系统中第二处理器发出的锁定命令,并忽略所述第二处理器发出的锁定命令。
16.根据权利要求15所述硬件资源锁,其特征在于,所述锁定状态寄存器还用于在所述锁定寄存器接收所述异步多核系统中第二处理器发出的锁定命令之前,接收所述第二处理器发出的第一查询命令,所述第二处理器发出的第一查询命令用于查询所述硬件资源锁的状态,并向所述第二处理器返回所述硬件资源锁的状态。
17.根据权利要求15所述硬件资源锁,其特征在于,所述锁定状态寄存器还用于在所述锁定寄存器忽略所述第二处理器发出的锁定命令之后,接收所述第二处理器发出的第二查询命令,所述第二处理器发出的第二查询命令用于查询所述硬件资源锁是否由所述第二处理器锁定,向所述第二处理器返回锁定结果。
18.一种异步多核系统中的处理器,其特征在于,包括:
锁定单元,用于在硬件资源锁未锁定的状态下,向所述硬件资源锁下发锁定命令,以锁定所述硬件资源锁,所述硬件资源锁通过寄存器实现;
资源操作单元,用于在所述硬件资源锁被所述第一处理器锁定的状态下,操作共享资源。
19.根据权利要求18处理器,其特征在于,还包括:
锁定回读单元,用于在所述资源操作单元操作共享资源之前,读取所述硬件资源锁的状态。
20.根据权利要求18或19处理器,其特征在于,还包括:
解锁单元,用于在所述资源操作单元操作共享资源之后,向所述硬件资源锁发出解锁命令,以使所述硬件资源锁恢复为未锁定的状态。
21.一种异步多核系统,其特征在于,包括上述权利要求11-17任一项所述的硬件资源锁和至少两个上述权利要求18-20任一项所述的异步多核系统中的处理器。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101286223A CN103377086A (zh) | 2012-04-27 | 2012-04-27 | 用于异步多核系统操作共享资源的方法、装置及系统 |
US13/870,586 US9519652B2 (en) | 2012-04-27 | 2013-04-25 | Method, apparatus, and system for operating shared resource in asynchronous multiprocessing system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012101286223A CN103377086A (zh) | 2012-04-27 | 2012-04-27 | 用于异步多核系统操作共享资源的方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103377086A true CN103377086A (zh) | 2013-10-30 |
Family
ID=49462245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012101286223A Pending CN103377086A (zh) | 2012-04-27 | 2012-04-27 | 用于异步多核系统操作共享资源的方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9519652B2 (zh) |
CN (1) | CN103377086A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014173364A1 (zh) * | 2013-07-23 | 2014-10-30 | 中兴通讯股份有限公司 | 共享资源访问方法和装置 |
CN106294272A (zh) * | 2015-06-03 | 2017-01-04 | 北京佳讯飞鸿电气股份有限公司 | 一种互斥访问多端口存储器的方法及多处理器终端 |
CN106874125A (zh) * | 2017-01-13 | 2017-06-20 | 北京元心科技有限公司 | 多容器系统间共享系统资源的方法及装置 |
WO2017202155A1 (zh) * | 2016-05-27 | 2017-11-30 | 深圳市中兴微电子技术有限公司 | 共享硬件资源的方法、控制器、存储器及系统 |
CN112130904A (zh) * | 2020-09-22 | 2020-12-25 | 黑芝麻智能科技(上海)有限公司 | 处理系统、处理器间通信方法、以及共享资源管理方法 |
CN114036091A (zh) * | 2021-10-30 | 2022-02-11 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 多处理器外设复用电路及其复用方法 |
CN117271148A (zh) * | 2023-11-21 | 2023-12-22 | 苏州旗芯微半导体有限公司 | 硬件互斥锁共享方法、装置和计算机设备 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9501332B2 (en) * | 2012-12-20 | 2016-11-22 | Qualcomm Incorporated | System and method to reset a lock indication |
US9436844B2 (en) * | 2013-08-29 | 2016-09-06 | Microsoft Technology Licensing, Llc | Access enablement security circuit |
US9716708B2 (en) | 2013-09-13 | 2017-07-25 | Microsoft Technology Licensing, Llc | Security certificates for system-on-chip security |
US9930133B2 (en) * | 2014-10-23 | 2018-03-27 | Netapp, Inc. | System and method for managing application performance |
US9766828B2 (en) | 2015-06-25 | 2017-09-19 | Samsung Electronics Co., Ltd. | Mailbox communication mechanism with ownership locking |
CN112732628A (zh) | 2019-10-29 | 2021-04-30 | Oppo广东移动通信有限公司 | 核间数据处理方法、系统、片上系统以及电子设备 |
CN115033394B (zh) * | 2022-05-23 | 2023-05-26 | 深圳市航顺芯片技术研发有限公司 | 一种多核mcu访问共享外设的控制系统及相关设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1537275A (zh) * | 2001-02-24 | 2004-10-13 | �Ҵ���˾ | 低等待时间存储器系统访问 |
WO2006057208A1 (ja) * | 2004-11-26 | 2006-06-01 | International Business Machines Corporation | マルチプロセッサシステム及びそれにおける排他制御方法 |
CN101078996A (zh) * | 2006-05-06 | 2007-11-28 | 辉达公司 | 硬件共享系统和方法 |
CN101216781A (zh) * | 2007-12-28 | 2008-07-09 | 中国科学院计算技术研究所 | 一种多处理器系统、装置及方法 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4574350A (en) * | 1982-05-19 | 1986-03-04 | At&T Bell Laboratories | Shared resource locking apparatus |
JPS60107170A (ja) * | 1983-11-15 | 1985-06-12 | Nec Corp | マルチプロセッサ制御方式 |
US4709326A (en) * | 1984-06-29 | 1987-11-24 | International Business Machines Corporation | General locking/synchronization facility with canonical states and mapping of processors |
JP2830116B2 (ja) * | 1989-07-27 | 1998-12-02 | 日本電気株式会社 | マルチプロセッサシステムにおけるロック制御機構 |
JPH0640324B2 (ja) * | 1989-10-26 | 1994-05-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | マルチプロセッサ・システムおよびそのプロセス同期方法 |
US5226143A (en) * | 1990-03-14 | 1993-07-06 | International Business Machines Corporation | Multiprocessor system includes operating system for notifying only those cache managers who are holders of shared locks on a designated page by global lock manager |
US5669002A (en) * | 1990-06-28 | 1997-09-16 | Digital Equipment Corp. | Multi-processor resource locking mechanism with a lock register corresponding to each resource stored in common memory |
US6105085A (en) * | 1997-12-26 | 2000-08-15 | Emc Corporation | Lock mechanism for shared resources having associated data structure stored in common memory include a lock portion and a reserve portion |
US6209069B1 (en) * | 1998-05-11 | 2001-03-27 | Intel Corporation | Method and apparatus using volatile lock architecture for individual block locking on flash memory |
US6154819A (en) * | 1998-05-11 | 2000-11-28 | Intel Corporation | Apparatus and method using volatile lock and lock-down registers and for protecting memory blocks |
US6973521B1 (en) * | 2000-05-16 | 2005-12-06 | Cisco Technology, Inc. | Lock controller supporting blocking and non-blocking requests |
US6523033B1 (en) * | 2000-07-13 | 2003-02-18 | International Business Machines Corporation | Apparatus and method for file locking for computer programs that use different size locks |
EP1182569B8 (en) * | 2000-08-21 | 2011-07-06 | Texas Instruments Incorporated | TLB lock and unlock operation |
US6592449B2 (en) | 2001-02-24 | 2003-07-15 | International Business Machines Corporation | Smart fan modules and system |
US7143414B2 (en) * | 2001-09-26 | 2006-11-28 | International Business Machines Corporation | Method and apparatus for locking multiple semaphores |
JP2003271574A (ja) * | 2002-03-14 | 2003-09-26 | Hitachi Ltd | 共有メモリ型マルチプロセッサシステムにおけるデータ通信方法 |
US7100060B2 (en) * | 2002-06-26 | 2006-08-29 | Intel Corporation | Techniques for utilization of asymmetric secondary processing resources |
GB0409326D0 (en) * | 2004-04-27 | 2004-06-02 | Ibm | Locker manager for managing access to shared resources |
US7765547B2 (en) * | 2004-11-24 | 2010-07-27 | Maxim Integrated Products, Inc. | Hardware multithreading systems with state registers having thread profiling data |
JP2006185348A (ja) * | 2004-12-28 | 2006-07-13 | Fujitsu Ltd | マルチプロセッサシステム及びロックフラグ操作方法 |
US7318126B2 (en) * | 2005-04-11 | 2008-01-08 | International Business Machines Corporation | Asynchronous symmetric multiprocessing |
JP2007328461A (ja) * | 2006-06-06 | 2007-12-20 | Matsushita Electric Ind Co Ltd | 非対称マルチプロセッサ |
US8321872B2 (en) * | 2006-06-28 | 2012-11-27 | Nvidia Corporation | Reusable, operating system aware hardware mutex |
US8996152B2 (en) * | 2006-06-28 | 2015-03-31 | Nvidia Corporation | Operating system aware hardware mutex |
US7571270B1 (en) * | 2006-11-29 | 2009-08-04 | Consentry Networks, Inc. | Monitoring of shared-resource locks in a multi-processor system with locked-resource bits packed into registers to detect starved threads |
US8140823B2 (en) * | 2007-12-03 | 2012-03-20 | Qualcomm Incorporated | Multithreaded processor with lock indicator |
US8055856B2 (en) * | 2008-03-24 | 2011-11-08 | Nvidia Corporation | Lock mechanism to enable atomic updates to shared memory |
ES2399683T3 (es) * | 2008-11-24 | 2013-04-02 | Barcelona Supercomputing Center - Centro Nacional De Supercomputacion | Procedimiento, mecanismo y producto de programa informático para ejecutar varias tareas en un procesador multihilo y para proporcionar estimaciones del peor tiempo de ejecución |
US8381308B2 (en) * | 2009-05-27 | 2013-02-19 | International Business Corporation | Computer-implemented multi-resource shared lock |
US8103910B2 (en) * | 2009-11-13 | 2012-01-24 | International Business Machines Corporation | Local rollback for fault-tolerance in parallel computing systems |
US8336051B2 (en) * | 2010-11-04 | 2012-12-18 | Electron Database Corporation | Systems and methods for grouped request execution |
US20130111168A1 (en) * | 2011-10-27 | 2013-05-02 | Freescale Semiconductor, Inc. | Systems and methods for semaphore-based protection of shared system resources |
-
2012
- 2012-04-27 CN CN2012101286223A patent/CN103377086A/zh active Pending
-
2013
- 2013-04-25 US US13/870,586 patent/US9519652B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1537275A (zh) * | 2001-02-24 | 2004-10-13 | �Ҵ���˾ | 低等待时间存储器系统访问 |
WO2006057208A1 (ja) * | 2004-11-26 | 2006-06-01 | International Business Machines Corporation | マルチプロセッサシステム及びそれにおける排他制御方法 |
CN101078996A (zh) * | 2006-05-06 | 2007-11-28 | 辉达公司 | 硬件共享系统和方法 |
CN101216781A (zh) * | 2007-12-28 | 2008-07-09 | 中国科学院计算技术研究所 | 一种多处理器系统、装置及方法 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014173364A1 (zh) * | 2013-07-23 | 2014-10-30 | 中兴通讯股份有限公司 | 共享资源访问方法和装置 |
CN106294272A (zh) * | 2015-06-03 | 2017-01-04 | 北京佳讯飞鸿电气股份有限公司 | 一种互斥访问多端口存储器的方法及多处理器终端 |
WO2017202155A1 (zh) * | 2016-05-27 | 2017-11-30 | 深圳市中兴微电子技术有限公司 | 共享硬件资源的方法、控制器、存储器及系统 |
CN106874125A (zh) * | 2017-01-13 | 2017-06-20 | 北京元心科技有限公司 | 多容器系统间共享系统资源的方法及装置 |
CN106874125B (zh) * | 2017-01-13 | 2021-04-06 | 北京元心科技有限公司 | 多容器系统间共享系统资源的方法及装置 |
CN112130904A (zh) * | 2020-09-22 | 2020-12-25 | 黑芝麻智能科技(上海)有限公司 | 处理系统、处理器间通信方法、以及共享资源管理方法 |
CN112130904B (zh) * | 2020-09-22 | 2024-04-30 | 黑芝麻智能科技(上海)有限公司 | 处理系统、处理器间通信方法、以及共享资源管理方法 |
CN114036091A (zh) * | 2021-10-30 | 2022-02-11 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 多处理器外设复用电路及其复用方法 |
CN117271148A (zh) * | 2023-11-21 | 2023-12-22 | 苏州旗芯微半导体有限公司 | 硬件互斥锁共享方法、装置和计算机设备 |
CN117271148B (zh) * | 2023-11-21 | 2024-02-02 | 苏州旗芯微半导体有限公司 | 硬件互斥锁共享方法、装置和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
US20130290286A1 (en) | 2013-10-31 |
US9519652B2 (en) | 2016-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103377086A (zh) | 用于异步多核系统操作共享资源的方法、装置及系统 | |
CN100578454C (zh) | 高效同步多线程 | |
CN101452400B (zh) | 处理多处理器系统中事务缓冲器溢出的方法和系统 | |
US20080288691A1 (en) | Method and apparatus of lock transactions processing in single or multi-core processor | |
CN104346317B (zh) | 共享资源访问方法和装置 | |
CN102681937B (zh) | 一种缓存一致性协议正确性验证方法 | |
CN101931580B (zh) | Arinc 659背板数据总线接口芯片片上系统 | |
CN103279428B (zh) | 一种显式的面向流应用的多核Cache一致性主动管理方法 | |
CN101566977B (zh) | 处理器访问共享数据的方法、装置及系统 | |
CN101840390B (zh) | 适用于多处理器系统的硬件同步电路结构及其实现方法 | |
CN101470629A (zh) | 用于在事务性存储器系统中实现强原子性的机制 | |
US10733101B2 (en) | Processing node, computer system, and transaction conflict detection method | |
US9015436B2 (en) | Performing an atomic operation without quiescing an interconnect structure | |
CN103744644A (zh) | 采用四核结构搭建的四核处理器系统及数据交换方法 | |
CN101458636A (zh) | 用于硬件锁省略(hle)的后期锁获取机制 | |
CN102929711B (zh) | 一种软件实时事务内存的实现方法 | |
US20070050527A1 (en) | Synchronization method for a multi-processor system and the apparatus thereof | |
CN102681890B (zh) | 一种应用于线程级推测并行的限制性值传递方法和装置 | |
US6941308B1 (en) | Methods and apparatus for accessing a doubly linked list in a data storage system | |
US20040059818A1 (en) | Apparatus and method for synchronizing multiple accesses to common resources | |
US20140115213A1 (en) | Tiered locking of resources | |
CN105095144A (zh) | 基于栅栏和锁的多核Cache一致性维护的方法和装置 | |
CN101533363B (zh) | 引退前-后混合硬件锁定省略(hle)方案 | |
CN104268105B (zh) | 处理器局部总线互斥存取的扩展结构及操作方法 | |
Tootoonchian et al. | Distributed shared memory for machine learning |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131030 |
|
RJ01 | Rejection of invention patent application after publication |