CN101566977A - 处理器访问共享数据的方法、装置及系统 - Google Patents
处理器访问共享数据的方法、装置及系统 Download PDFInfo
- Publication number
- CN101566977A CN101566977A CN200910147175.4A CN200910147175A CN101566977A CN 101566977 A CN101566977 A CN 101566977A CN 200910147175 A CN200910147175 A CN 200910147175A CN 101566977 A CN101566977 A CN 101566977A
- Authority
- CN
- China
- Prior art keywords
- described storage
- storage block
- storage system
- processor
- shared data
- 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 35
- 230000005540 biological transmission Effects 0.000 claims description 40
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 239000012467 final product Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种处理器访问共享数据的方法、装置及系统,涉及计算机领域,解决了存储系统效率较低的问题。该方法包括:处理器通过硬件线程向存储系统发送存储块锁定命令,以指示所述存储系统将所述存储块锁定;在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息;若在预设的时钟周期内,接收到所述存储系统发送的所述存储块锁定完成信息,则调度所述硬件线程访问所述存储块中的共享数据;若在预设的时钟周期内,没有接收到所述存储系统发送的所述存储块的锁定完成信息,则所述硬件线程继续等待所述存储系统发送的存储块锁定完成信息。本发明实施例主要用于多处理器系统下处理器访问共享数据的过程中。
Description
技术领域
本发明涉及计算机领域,尤其涉及处理器访问共享数据的方法、装置及系统。
背景技术
当前,多处理器系统蓬勃发展,其中多处理器通过共享存储器来处理数据,是多处理器处理数据的主要方式之一。所谓多处理器共享存储器是多个处理器共享单个集中式的存储器。目前多处理器共享存储器的结构主要是三级的存储结构,即多个处理器中的每个处理器有自己私有的容量比较小的一级高速缓冲存储器(Cache),所述多个处理器共享的容量比较大的二级高速缓冲存储器,最后所述多个处理器共享海量的单一物理存储器。具有该种存储器结构的多处理系统结构比较简单,性价比合算,得到了广泛应用。
但是,当所述多个处理器访问共享数据时,如果所述多处理器中的各个处理器的读写顺序没有合理的处理,导致多个处理器同时并发的读写共享存储器中的同一块存储区所包含的共享数据,使各处理器的读写互相交织,从而导致任何一个处理器都无法正确的访问所述共享存储器中的共享数据。
为了使多个处理器在访问共享数据时,能够排他性的访问共享存储器中的共享数据,现有技术中有以下两种处理方法,该两种多处理器访问共享数据的方法具体为:
第一种,采用总线锁技术,实现多处理器排他性的访问共享数据。该方法具体为:在处理器访问共享数据之前,查询总线是否处于非锁定状态,在总线处于非锁定状态时,通过命令将整个总线或者整个存储系统锁住,使除了所述处理器以外,其他处理器或者总线设备都不得访问存储系统中的共享数据,保证所述处理器对共享数据的独占访问。
该方法虽然可以实现多处理器在并发的读写共享数据时排他性的访问共享数据,但是,由于该方法是将整个通信总线或者整个存储系统锁定,只允许所述一个处理器使用所述总线和存储系统,使其他不访问共享数据的操作也无法进行,从而导致整个系统的利用率比较低。
第二种,采用软件锁技术,实现多处理器排他性的访问共享数据。所述软件锁,就是一个共享的变量,各处理器通过系统提供的原子操作指令,争夺这个变量的某个固定值(比如该固定值为0),哪个处理器获得了这个值,就代表哪个处理器获得了排他性访问共享数据的权利,便可以排他性的访问所述共享数据。
该方法在实现多处理器排他性的访问共享数据时,由各处理器之间竞争软件锁来实现排他性的访问共享数据,不用将整个通信总线或者整个存储系统锁定,即不用将整个通信总线或者整个存储系统独占,使其他非访问共享数据的操作可以正常进行,在一定程度上提高了系统的利用率;但是该种通过软件锁技术实现多处理器排他性的访问共享数据的方法,需要各处理器不停的向存储器发出存储器访问命令,直到获取软件锁成功为止,使所述处理器无谓的增加很多无效访问,而所述存储系统要不断的处理所述无效访问,使存储系统效率较低。
发明内容
本发明的实施例提供一种处理器访问共享数据的方法、装置及系统,提高了存储系统的效率。
为达到上述目的,本发明的实施例采用如下技术方案:
一种处理器访问共享数据的方法,包括:
通过硬件线程向存储系统发送存储块锁定命令,以指示存储系统将所述存储块锁定;
在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息;
若在预设的时钟周期内,接收到所述存储系统发送的所述存储块锁定完成信息,则调度所述硬件线程访问所述存储块中的共享数据;
若在预设的时钟周期内,没有接收到所述存储系统发送的所述存储块锁定完成信息,则所述硬件线程继续等待所述存储系统发送的存储块锁定完成信息。
一种处理器,包括:
发送单元,用于通过硬件线程向存储系统发送存储块锁定命令,以指示所述存储系统将所述存储块锁定;
判断单元,用于在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息;
执行单元,用于当在预设的时钟周期内,所述判断单元判定接收到所述存储系统发送的所述存储块锁定完成信息时,调度所述硬件线程访问所述存储块中的共享数据;
所述执行单元,还用于在预设的时钟周期内,所述判断单元判定没有接收到所述存储系统发送的所述存储块锁定完成信息,所述硬件线程继续等待所述存储系统发送的存储块锁定完成信息。
一种处理器访问共享数据的系统,包括处理器系统和存储系统,所述处理器系统由至少一个处理器构成;所述处理器通过硬件线程向存储系统发送存储块锁定命令,以指示所述存储系统将所述存储块锁定;在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息;若在预设的时钟周期内,接收到所述存储系统发送的所述存储块锁定完成信息,则调度所述硬件线程访问所述存储块中的共享数据;若在预设的时钟周期内,所述处理器没有接收到所述存储系统发送的所述存储块锁定完成信息,则所述硬件线程继续等待所述存储系统发送的存储块锁定完成信息。
所述存储系统接收所述处理器发送的存储块锁定命令,并将所述存储块锁定完成信息发送给所述处理器,以指示所述处理器访问所述锁定的存储块所包含的共享数据。
本发明技术方案,在处理器访问共享数据时,通过处理器的硬件线程向所述存储系统发送锁定共享数据所在的存储块;并在接收到所述存储系统返回的所述存储块锁定完成信息时,通过调度所述硬件线程访问所述锁定的存储块所包含的共享数据;使所述处理器获得所述共享数据的访问权限时,只需要等待所述存储系统发送的所述存储块锁定完成信息即可,不需要不断的向所述存储系统发送访问所述共享数据的请求信息,使所述存储系统不用处理过多的无效访问,提高了所述存储系统效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1中处理器访问共享数据的方法流程图;
图2为本发明实施例1中存储系统共享数据的方法流程图;
图3为本发明实施例1和2中处理器的组成框图;
图4为本发明实施例1和2中存储系统的组成框图;
图5为本发明实施例1中处理器访问共享数据的系统组成框图;
图6为本发明实施例2中处理器访问共享数据的方法流程图;
图7为本发明实施例2中存储系统共享数据的方法流程图;
图8为本发明实施例2中处理器访问共享数据的系统组成框图;
图9为本发明实施例3中处理器访问共享数据的操作流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
本发明实施例提供一种处理器访问共享数据的方法,如图1所示,该方法包括:
101、处理器通过硬件线程向存储系统发送存储块锁定命令,以指示存储系统将所述存储块锁定,以便所述处理器可以排他性的访问所述共享数据。
102、在将所述存储块的锁定命令发送给所述存储系统后,所述处理器需要在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息,所述预设的时钟周期为一经验值,可以根据存储系统执行指令的周期设定;若在预设的时钟周期内,所述处理器接收到所述存储系统发送的所述存储块锁定完成信息,则执行步骤103;若没有接收到所述存储系统发送的所述存储块锁定完成信息,则执行步骤104。
103、当所述处理器在预设的时钟周期内,接收到所述存储系统发送的所述存储块锁定完成的信息时,表明所述处理器获得了访问所述存储块的权限,所述处理器调度所述硬件线程访问所述存储块中的共享数据。
104、当所述处理器在预定的时钟周期内,没有接收到所述存储系统发送的所述存储块锁定完成的信息时,表明所述处理器要访问的所述存储块已被除所述处理器以外的其他处理器锁定,目前存储系统无法将所述存储块分配给所述处理器,所述处理器没有获得访问所述存储块所包含的数据的权利,则所述硬件线程继续等待所述存储系统发送的所述存储块锁定完成信息,直到接收到所述存储系统发送的所述存储块锁定完成信息,以便使所述处理器可以访问所述存储块所包含的共享数据。
本发明实施例提供一种存储系统共享数据的方法,包括:
201、存储系统接收处理器发送的存储块锁定命令;所述存储块锁定命令为一条软指令命令,处理器通过显式的方式将所述存储块锁定命令发送所述存储系统。
202、执行所述接收到的存储块锁定命令,检测所述接收到的存储块的状态,所述存储块的状态包括:锁定状态和非锁定状态;在所述存储块处于非锁定态时,所述存储系统将所述存储块锁定,并将所述存储块锁定完成信息发送给所述处理器,以指示所述处理器访问被锁定的所述存储块所包含的共享数据。
本发明实施例提供一种处理器,如图3所示,该处理器包括:发送单元31、判断单元32和执行单元33。
发送单元31用于处理器通过硬件线程向存储系统发送存储块锁定命令,以指示所述存储系统将所述存储块锁定,以便所述处理器可以排他性的访问所述存储块所包含的共享数据。
在所述处理器将所述存储块的锁定命令通过所述发送单元31发送给所述存储系统后,所述处理器通过判断单元32在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息,所述预设的时钟周期为一经验值,可以根据存储系统执行指令的周期设定;若所述判定单元32判定所述处理器在预设的时钟周期内,接收到所述存储系统发送的所述存储块锁定完成信息,则通过所述执行单元33调度所述硬件线程访问所述存储块中的共享数据;若所述判定单元32判定所述处理器在预设的时钟周期内,没有接收到所述存储系统发送的所述存储块锁定完成信息,所述执行单元33调度所述硬件线程继续等待所述存储系统发送的所述存储块锁定完成信息。
本发明实施例提供一种存储系统,如图4包括:接收单元41、执行单元42和发送单元43。
所述接收单元41用于接收处理器发送的存储块锁定命令,所述存储块锁定命令为一条软指令命令;在所述存储系统接收到所述存储块锁定命令后,通过执行单元42执行所述接收到的存储块锁定命令,检测所述接收到的存储块的状态,所述存储块的状态包括:锁定状态和非锁定状态;在所述存储块处于非锁定状态时,所述存储系统将所述存储块锁定;在将所述存储块锁定后,所述存储系统通过发送单元43将所述存储块锁定完成信息发送给所述处理器,以指示所述处理器访问所述存储块所包含的共享数据。
本发明实施例提供一种处理器访问共享数据的系统,如图5所示,该系统包括处理器系统51和存储系统52,所述处理器系统51由至少一个处理器构成;所述处理器通过硬件线程向存储系统发送存储块锁定命令,以指示所述存储系统将所述存储块锁定;在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息;若在预设的时钟周期内,接收到所述存储系统发送的所述存储块锁定完成信息,则处理器调度所述硬件线程访问所述存储块中的共享数据;若在预设的时钟周期内,所述处理器没有接收到所述存储系统发送的所述存储块的锁定完成信息,则所述硬件线程继续等待所述存储系统发送的存储块锁定完成信息。
所述存储系统52用于接收所述处理器发送的存储块锁定命令,并将所述存储块锁定完成的信息发送给所述处理器,以指示所述处理器访问所述存储块所包含的共享数据。
本发明实施例中,在处理器访问共享数据时,通过处理器的硬件线程向所述存储系统发送锁定共享数据所在的存储块的命令;并在接收到所述存储系统返回的所述存储块锁定完成信息时,通过调度所述硬件线程访问所述存储块所包含的共享数据;使所述处理器获得所述共享数据的访问权限时,只需要等待所述存储系统发送的所述存储块锁定完成信息即可,不需要不断的向所述存储系统发送访问所述共享数据的请求信息,使所述存储系统不用处理过多的无效访问,提高了所述存储系统效率。
实施例2
本发明实施例提供一种处理器访问共享数据的方法,如图6所示,该方法包括:
601、处理器通过硬件线程向存储系统发送存储块锁定命令,以指示存储系统将所述存储块锁定,以便所述处理器可以排他性的访问所述共享数据。
其中,所述存储块锁定命令为一条软件指令,所述软件指令包括锁定命令的指令头、需要锁定的所述存储块的首地址和需要锁定的所述存储块的大小,该命令可以具体抽象为如下形式:LockMem BlockBase,BlockSize,其中,LockMem:为存储块锁定命令的指令头,要求存储系统锁定指定的存储块,即只允许发出所述锁定命令的处理器访问所述存储块,其他处理器或设备不允许访问所述存储块;BlockBase:指示所述要锁定的存储块的首地址;BlockSize:指示要锁定的存储块的大小。为了提高存储系统的硬件处理所述命令的效率,BlockBase和BlockSize一般要求为2的整数次幂的倍数。
更近一步的,为了提高存储系统的硬件处理效率,可以将所述BlockSize参数缺省,并将所述存储块的大小定义为固定大小,则所述存储块锁定命令的软件命令,包括锁定命令的指令头和需要锁定的所述存储块的首地址;该命令可以具体抽象为如下形式:LockMem BlockBase。其中,所述要锁定的存储块的首地址,一般与所述存储系统高速缓存的行对齐。
602、所述处理器通过所述硬件线程将所述存储块锁定命令发送给所述存储系统后,所述处理器要在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息,所述预设的时钟周期为一经验值,可以根据所述存储系统执行指令的时钟周期设置;若在预设的时钟周期内,所述处理器接收到所述存储系统发送的所述存储块锁定完成信息,则执行步骤603;否则执行步骤605。
603、在一定的时钟周期内,所述处理器接收到所述存储系统返回的所述存储块锁定完成信息,表示所述处理器获得了访问所述存储块的权限,所以所述处理器通过自身的调度器,调度所述硬件线程访问所述存储块所包含的共享数据。
604、在所述处理器访问所述存储块所包含的共享数据后,所述处理器向所述存储系统发送所述存储块解锁命令,以指示所述存储系统解除对所述存储块的锁定,以便使所述存储块被其他的处理器或设备访问。
其中,所述处理器发送的存储块解锁命令为一条软件指令,包括解锁命令的指令头和需要解除锁定命令的所述存储块的首地址。具体可以抽象为如下形式:UnlockMem BlockBase;
其中,UnlockMem为:解锁命令的指令头,指示所述存储系统将所述存储块解锁;BlockBase为:需要解除锁定命令的所述存储块的首地址。
605、在一定的时钟周期内,所述处理器没有接收到所述存储块已锁定的命令,表明所述处理器当前需要访问的存储块已被除所述处理器以外的其他处理器锁定,使存储系统暂时不能将所述存储块分配给所述处理器,使所述处理器访问所述存储块所包含的共享数据。所述存储系统只能等待所述存储块释放,即所述存储块处于非锁定状态时,才能将所述存储块锁定,才能使所述处理器获得访问所述存储块的权限。为了不影响所述处理器的其他处理工作,在一定的时钟周期内,所述处理器没有接收到所述存储块锁定完成信息时,所述发送存储块锁定命令的硬件线程继续等待所述存储系统发送的所述存储块锁定完成信息,直到接收到所述锁定完成信息。
本发明实施例提供一种存储系统共享数据的方法,如图7所示,该方法包括:
701、存储系统接收处理器发送的存储块锁定命令;所述存储块锁定命令为一条软指令命令,所述处理器通过显式的方式将所述存储块锁定命令发送所述存储系统。
702、执行所述接收到的存储块锁定命令,检测所述接收到的存储块的状态,所述存储块的状态包括:锁定状态和非锁定状态;在所述存储块处于非锁定状态时,所述存储系统将所述存储块锁定,并执行步骤703;其中,当所述存储系统将所述存储块锁定后,其他的处理器访问所述锁定的存储块所包含的共享数据时为非法访问,只有所述发送存储块锁定命令的处理器访问所述存储块所包含的共享数据时为正常访问,以此实现处理器排他性的独占的访问所述共享数据。
本步骤中,当所述存储块处于锁定状态时,所述存储系统只有等到所述已锁定的存储块解锁后,所述存储系统才能将所述存储块分配给所述处理器并将所述存储块锁定完成消息发送给所述处理器,以指示所述处理器访问所述存储块所包含的共享数据。
703、在所述存储系统将所述存储块锁定后,将所述存储块锁定完成的信息发送给所述处理器,以指示所述处理器访问所述存储块所包含的共享数据。
704、在所述处理器访问所述共享数据结束后,所述处理器向所述存储系统发送所述存储块的解锁命令,以便所述存储系统解除所述存储块的锁定,当所述处理器的硬件线程向所述存储系统发送所述存储块的解锁命令时,所述存储系统接收所述处理器发送的解锁命令。
705、所述存储系统根据所述解锁命令将所述存储块的锁定解除,以便其他处理器和总线设备可以访问所述存储块所包含的共享数据。
本发明实施例提供一种处理器,如图3所示,该处理器包括:发送单元31、判断单元32和执行单元33。
发送单元31用于通过所述处理器中的硬件线程向存储系统发送存储块锁定命令,以指示所述存储系统将所述存储块锁定,所述存储块的锁定命令为一条软件指令,包括锁定命令的指令头、需要锁定的所述存储块的首地址和需要锁定的所述存储块的大小;为了提高所述存储系统硬件处理所述命令的了效率,将所述需要锁定的所述存储块的大小设定为一固定值,并缺省该参数。
在所述发送单元31将所述存储块锁定命令发送给存储系统后,所述处理器通过判断单元32在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息,所述预设的时钟周期为一经验值,可以根据所述存储系统执行所述锁定命令的时钟周期设定。
若所述判断单元32判定在一定的时钟周期内,所述处理器接收到所述存储系统发送的所述存储块锁定完成信息时,所述执行单元33调度所述硬件线程访问所述存储块所包含的共享数据;若所述判断单元32判定在一定的时钟周期内,所述处理器没有接收到所述存储系统发送的所述存储块锁定完成信息时,所述执行单元33调度所述硬件线程继续等待所述存储系统发送的存储块锁定完成信息,并调用所述判断单元32继续检测是否接收到所述存储系统发送的所述存储块锁定完成信息,直到检测到所述处理器接收到所述存储系统发送的所述存储模块锁定完成信息,并调用所述执行单元33调度所述硬件线程访问所述存储块中的共享数据。
在所述处理器访问完所述存储块所包含的共享数据后,所述发送单元31还用于向所述存储系统发送所述存储块解锁命令,指示所述存储系统将所述存储块的锁定解除,所述存储块的解锁命令为一条软件指令。
本发明实施例提供一种存储系统,如图4所示,该系统包括:接收单元41、执行单元42和发送单元43。
所述接收单元41用于接收处理器发送的存储块锁定命令,所述存储块锁定命令为一条软指令命令;在所述存储系统接收到所述存储块锁定命令后,通过执行单元42执行所述接收到的存储块锁定命令,检测所述接收到的所述存储块的状态,所述存储块的状态包括锁定状态和非锁定状态;在所述存储系统检测到所述需要锁定的存储块处于非锁定状态时,将所述存储块锁定;在将所述存储块锁定后,所述存储系统通过发送单元43将所述存储块锁定完成信息发送给所述处理器,以指示所述处理器访问所述锁定的存储块所包含的共享数据。
当所述处理器向所述存储系统发送所述存储块解锁命令时,所述接收单元41还用于接收所述处理器发送的所述存储解锁命令;在接收到所述解锁命令后,所述存储系统通过所述执行单元42将所述存储块解锁,以便其他处理器或者总线设备可以访问所述存储块所包含的共享数据。
本发明实施例提供一种处理器访问共享数据的系统,如图8所示,该系统包括处理器系统81和存储系统82,所述处理器系统81由至少一个处理器811构成。
所述处理器811通过硬件线程向存储系统82发送存储块锁定命令,以指示所述存储系统将所述存储块锁定;在将所述存储块锁定命令发出后,所述处理器811在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息;若在预设的时钟周期内,接收到所述存储系统发送的存储块锁定完成信息,则调度所述硬件线程访问所述存储块中的共享数据;若在预设的时钟周期内,所述处理器没有接收到所述存储系统发送的所述存储块锁定完成信息,则所述硬件线程继续等待所述存储系统发送的存储块锁定完成信息。
当所述处理器811在一定的时间周期内,接收到所述存储系统82发送的所述存储块锁定完成信息,并访问所述存储块所包含的共享数据结束后,所述处理器811还通过所述硬件线程向所述存储系统发送所述存储块解锁命令,指示所述存储系统82将所述存储块的锁定解除。
当所述处理器811通过硬件线程向所述存储系统发送所述存储块锁定命令后,所述存储系统82用于接收所述处理器发送的存储块锁定命令,并执行所述存储块锁定命令,若将所述存储块锁定,则将所述存储块锁定完成的信息发送给所述处理器,以指示所述处理器访问所述存储块所包含的数据。
当所述处理器811通过所述硬件线程,向所述存储系统82发送所述存储块的解锁命令时,所述存储系统82还用于接收所述处理器发送的解锁命令,并执行所述解锁命令,以便其他的处理器或者总线设备可以访问所述存储块所包含的共享数据。
本发明实施例中,在处理器访问共享数据时,通过处理器的硬件线程向所述存储系统发送锁定共享数据所在的存储块;并在接收到所述存储系统返回的所述存储块锁定完成信息时,通过调度所述硬件线程访问所述锁定的存储块所包含的共享数据;使所述处理器获得所述共享数据的访问权限时,只需要等待所述存储系统发送的所述存储块锁定完成信息即可,不需要不断的向所述存储系统发送访问所述共享数据的请求信息,使所述存储系统不用处理过多的无效访问,提高了所述存储系统效率。
并且当所述处理器在一定的时钟周期内没有接收到所述存储系统发送的所述存储块的锁定完成信息时,所述处理器使发送所述存储块锁定命令的硬件线程继续等待所述存储系统发送的所述存储块的锁定完成信息,而所述处理器将本处理器的其他功能切换到所述处理器的其他线程上继续进行,不会使所述处理器在一定的时钟周期内没有申请到所述共享数据的访问权时,空等获得访问所述共享数据的权利,从而提高了整个系统的利用率。
进一步的,当所述存储系统执行所述处理器发送的所述存储块的锁定命令时,当所述需要锁定的存储块处于锁定状态时,所述存储系统自动将所述处理器访问所述共享数据的请求挂起,在所述需要锁定的存储块的状态没有由锁定状态变为非锁定状态,所述存储系统对所述请求不进行任何处理,在一定程度上节约了所述存储系统的时钟周期,使所述存储系统有更多的时钟周期处理其他的操作,从而提高了整个系统的利用率。
实施例3
本发明实施例提供一种处理器访问共享数据的方法,如图9所示,该方法包括:
901、处理器通过硬件线程向存储系统发送存储块锁定命令;所述存储块锁定命令为一条软件指令。
902、所述处理器将所述存储块的锁定命令发送给所述存储系统后,所述处理器处于等待所述存储块的锁定完成信息状态。其中,所述等待的过程具体为:所述处理器在一定的时钟周期内不断的检测是否接收到所述存储系统发送的所处存储块锁定完成信息。
903、所述存系统接收所述处理器发送的所述存储块锁定命令,并执行所述存储块的锁定执行命令;所述存储系统执行所述存储块锁定命令时具体为:所述存储系统检测所述存储块的状态,其中,所述存储块的状态包括锁定状态和非锁定状态,当所述要锁定的存储块的状态处于非锁定状态时,所述存储系统将所述存储块锁定,并执行步骤904;若所述存储块的状态处于锁定状态,则所述处理器的锁定请求被所述存储系统挂起,一直等到已锁定的所述存储块解锁,所述处理器的锁定请求才被执行。
904、将所述存储块的锁定完成信息发送给所述处理器,以指示所述处理器获得了访问所述存储块中共享数据的权利,可以访问所述存储块所包含的共享数据。
905、所述处理接收所述存储系统发送的所述存储块锁定完成信息后,所述处理器通过自身的调度器调度所述硬件线程,访问所述存储块所包含的共享数据。
906、在所述处理器访问所述锁定的存储块所包含的数据结束后,所述处理器通过所述硬件线程,向所述存储系统发送所述存储块解锁命令,所述解锁命令为一条软件指令。
907、所述存储系统接收所述处理器发送的所述存储块的解锁命令,并执行所述存储块的解锁命令,以便其他的处理器或者总线设备访问所述存储块所包含的共享数据。
本发明实施例中,使所述处理器获得所述共享数据的访问权限时,只需要等待所述存储系统发送的所述存储块锁定完成信息即可,不需要不断的向所述存储系统发送访问所述共享数据的请求信息,使所述存储系统不用处理过多的无效访问,提高了所述存储系统效率;并且当所述处理器在一定的时钟周期内没有接收到所述存储系统发送的所述存储块的锁定完成信息时,所述处理器使发送所述存储块锁定命令的硬件线程继续等待所述存储系统发送的所述存储块的锁定完成信息,而所述处理器将本处理器的其他功能切换到所述处理器的其他线程上继续进行,不会使所述处理器在一定的时钟周期内没有申请到所述共享数据的访问权时,空等获得访问所述共享数据的权利,从而提高了整个系统的利用率。
进一步的,当所述存储系统执行所述处理器发送的所述存储块的锁定命令时,当所述需要锁定的存储块处于锁定状态时,所述存储系统自动将所述处理器访问所述共享数据的请求挂起,在所述需要锁定的存储块的状态没有由锁定状态变为非锁定状态,所述存储系统对所述请求不进行任何处理,在一定程度上节约了所述存储系统的时钟周期,使所述存储系统有更多的时钟周期处理其他的操作,从而提高了整个系统的利用率。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1、一种处理器访问共享数据的方法,其特征在于,包括
通过硬件线程向存储系统发送存储块锁定命令,以指示所述存储系统将所述存储块锁定;
在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息;
若在预设的时钟周期内,接收到所述存储系统发送的存储块锁定完成信息,则调度所述硬件线程访问所述存储块中的共享数据;
若在预设的时钟周期内,没有接收到所述存储系统发送的所述存储块锁定完成信息,则所述硬件线程继续等待所述存储系统发送的所述存储块锁定完成信息。
2、根据权利要求1所述的处理器访问共享数据的方法,其特征在于,在调度所述硬件线程访问所述存储块中的共享数据后,该方法还包括:
通过所述硬件线程向所述存储系统发送所述存储块解锁命令,以指示所述存储系统解除对所述存储块的锁定。
3、根据权利要求2所述的处理器访问共享数据的方法,其特征在于,所述存储块解锁命令为一条软件指令,包括解锁命令的指令头和需要解除锁定命令的所述存储块的首地址。
4、根据权利要求1所述的处理器访问共享数据的方法,其特征在于,所述存储块锁定命令是一条软件指令,包括锁定命令的指令头、需要锁定的所述存储块的首地址和需要锁定的所述存储块的大小。
5、根据权利要求1所述的处理器访问共享数据的方法,其特征在于,在需要锁定的存储块的大小固定时,所述存储块锁定指令包括锁定命令的指令头和需要锁定的所述存储块的首地址。
6、一种处理器,其特征在于,包括:
发送单元,用于通过硬件线程向存储系统发送存储块锁定命令,以指示所述存储系统将所述存储块锁定;
判断单元,用于在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息;
执行单元,用于当在预设的时钟周期内,所述判断单元判定接收到所述存储系统发送的所述存储块锁定完成信息时,调度所述硬件线程访问所述存储块中的共享数据;
所述执行单元,还用于在预设的时钟周期内,所述判断单元判定没有接收到所述存储系统发送的所述存储块锁定完成信息时,所述硬件线程继续等待所述存储系统发送的所述存储块锁定完成信息。
7、根据权利要求6所述的处理器,其特征在于,所述发送单元还用于,在调度所述硬件线程访问所述存储块中的共享数据后,通过所述硬件线程向所述存储系统发送所述存储块解锁命令,以指示存储系统解除对所述存储块的锁定。
8、一种处理器访问共享数据的系统,包括处理器系统和存储系统,其特征在于,
所述处理器系统包括至少一个处理器,所述处理器通过硬件线程向存储系统发送存储块锁定命令,以指示所述存储系统将所述存储块锁定;在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息;若在预设的时钟周期内,接收到所述存储系统发送的所述存储块锁定完成信息,则调度所述硬件线程访问所述存储块中的共享数据;若在预设的时钟周期内,没有接收到所述存储系统发送的所述存储块锁定完成信息,则所述硬件线程继续等待所述存储系统发送的存储块锁定完成信息;
所述存储系统接收所述处理器发送的存储块锁定命令,并将所述存储块锁定完成信息发送给所述处理器,以指示所述处理器访问所述锁定的存储块所包含的共享数据。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910147175.4A CN101566977B (zh) | 2009-06-08 | 2009-06-08 | 处理器访问共享数据的方法、装置及系统 |
US12/796,525 US20100312972A1 (en) | 2009-06-08 | 2010-06-08 | Method, apparatus and system for enabling processor to access shared data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910147175.4A CN101566977B (zh) | 2009-06-08 | 2009-06-08 | 处理器访问共享数据的方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101566977A true CN101566977A (zh) | 2009-10-28 |
CN101566977B CN101566977B (zh) | 2011-02-02 |
Family
ID=41283132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910147175.4A Expired - Fee Related CN101566977B (zh) | 2009-06-08 | 2009-06-08 | 处理器访问共享数据的方法、装置及系统 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100312972A1 (zh) |
CN (1) | CN101566977B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013075634A1 (en) * | 2011-11-22 | 2013-05-30 | Huawei Technologies Co., Ltd. | System and method for implementing locks shared between kernel and user space |
CN104346317A (zh) * | 2013-07-23 | 2015-02-11 | 中兴通讯股份有限公司 | 共享资源访问方法和装置 |
CN103262092B (zh) * | 2010-12-17 | 2016-03-30 | 英特尔公司 | 基于存储驱动器的防恶意软件方法和装置 |
CN109800238A (zh) * | 2018-12-03 | 2019-05-24 | 南方电网科学研究院有限责任公司 | 一种双单向数据库同步数据一致性保护方法 |
CN110059111A (zh) * | 2019-04-17 | 2019-07-26 | 珠海金山网络游戏科技有限公司 | 一种数据调用方法、装置、一种计算设备及存储介质 |
WO2019197935A1 (en) * | 2018-04-12 | 2019-10-17 | International Business Machines Corporation | Using track locks and stride group locks to manage cache operations |
CN111311278A (zh) * | 2020-02-13 | 2020-06-19 | 上海墨珩网络科技有限公司 | 一种跨部门的信息追溯方法及系统 |
US10831597B2 (en) | 2018-04-27 | 2020-11-10 | International Business Machines Corporation | Receiving, at a secondary storage controller, information on modified data from a primary storage controller to use to calculate parity data |
US10884849B2 (en) | 2018-04-27 | 2021-01-05 | International Business Machines Corporation | Mirroring information on modified data from a primary storage controller to a secondary storage controller for the secondary storage controller to use to calculate parity data |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104536916B (zh) * | 2014-12-18 | 2018-04-10 | 华为技术有限公司 | 一种多核系统的仲裁方法及多核系统 |
US10936502B2 (en) * | 2017-10-31 | 2021-03-02 | EMC IP Holding Company LLC | Shadow address space for sharing storage |
WO2020108496A1 (zh) * | 2018-11-30 | 2020-06-04 | 上海寒武纪信息科技有限公司 | 原子操作中的数据处理方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6845504B2 (en) * | 2001-02-08 | 2005-01-18 | International Business Machines Corporation | Method and system for managing lock contention in a computer system |
US7290105B1 (en) * | 2002-12-16 | 2007-10-30 | Cisco Technology, Inc. | Zero overhead resource locks with attributes |
US20060253662A1 (en) * | 2005-05-03 | 2006-11-09 | Bass Brian M | Retry cancellation mechanism to enhance system performance |
-
2009
- 2009-06-08 CN CN200910147175.4A patent/CN101566977B/zh not_active Expired - Fee Related
-
2010
- 2010-06-08 US US12/796,525 patent/US20100312972A1/en not_active Abandoned
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103262092B (zh) * | 2010-12-17 | 2016-03-30 | 英特尔公司 | 基于存储驱动器的防恶意软件方法和装置 |
US9128786B2 (en) | 2011-11-22 | 2015-09-08 | Futurewei Technologies, Inc. | System and method for implementing shared locks between kernel and user space for synchronize access without using a system call to the kernel |
WO2013075634A1 (en) * | 2011-11-22 | 2013-05-30 | Huawei Technologies Co., Ltd. | System and method for implementing locks shared between kernel and user space |
CN104346317A (zh) * | 2013-07-23 | 2015-02-11 | 中兴通讯股份有限公司 | 共享资源访问方法和装置 |
CN104346317B (zh) * | 2013-07-23 | 2019-08-27 | 南京中兴软件有限责任公司 | 共享资源访问方法和装置 |
GB2585320A (en) * | 2018-04-12 | 2021-01-06 | Ibm | Using track locks and stride group locks to manage cache operations |
US11151037B2 (en) | 2018-04-12 | 2021-10-19 | International Business Machines Corporation | Using track locks and stride group locks to manage cache operations |
WO2019197935A1 (en) * | 2018-04-12 | 2019-10-17 | International Business Machines Corporation | Using track locks and stride group locks to manage cache operations |
GB2585320B (en) * | 2018-04-12 | 2021-06-09 | Ibm | Using track locks and stride group locks to manage cache operations |
US10831597B2 (en) | 2018-04-27 | 2020-11-10 | International Business Machines Corporation | Receiving, at a secondary storage controller, information on modified data from a primary storage controller to use to calculate parity data |
US10884849B2 (en) | 2018-04-27 | 2021-01-05 | International Business Machines Corporation | Mirroring information on modified data from a primary storage controller to a secondary storage controller for the secondary storage controller to use to calculate parity data |
CN109800238A (zh) * | 2018-12-03 | 2019-05-24 | 南方电网科学研究院有限责任公司 | 一种双单向数据库同步数据一致性保护方法 |
CN110059111A (zh) * | 2019-04-17 | 2019-07-26 | 珠海金山网络游戏科技有限公司 | 一种数据调用方法、装置、一种计算设备及存储介质 |
CN110059111B (zh) * | 2019-04-17 | 2022-02-01 | 珠海金山网络游戏科技有限公司 | 一种数据调用方法、装置、一种计算设备及存储介质 |
CN111311278A (zh) * | 2020-02-13 | 2020-06-19 | 上海墨珩网络科技有限公司 | 一种跨部门的信息追溯方法及系统 |
CN111311278B (zh) * | 2020-02-13 | 2024-02-02 | 上海墨珩网络科技有限公司 | 一种跨部门的信息追溯方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101566977B (zh) | 2011-02-02 |
US20100312972A1 (en) | 2010-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101566977B (zh) | 处理器访问共享数据的方法、装置及系统 | |
Herman et al. | RTOS support for multicore mixed-criticality systems | |
CN100481014C (zh) | 用于信息处理的系统和方法 | |
CN100504763C (zh) | 启用同时多线程(smt)的系统及其管理方法 | |
US7428539B2 (en) | Method, system, and apparatus for managing access to a data object | |
US8775837B2 (en) | System and method for enabling turbo mode in a processor | |
KR101686010B1 (ko) | 실시간 멀티코어 시스템의 동기화 스케쥴링 장치 및 방법 | |
US9830189B2 (en) | Multi-threaded queuing system for pattern matching | |
CN101366012A (zh) | 用于多处理器系统中的中断分配的方法和系统 | |
CN106547612A (zh) | 一种多任务处理方法及装置 | |
WO2013049399A1 (en) | System and method for providing and managing message queues for multinode applications in a middleware machine environment | |
EP3295293B1 (en) | Thread safe lock-free concurrent write operations for use with multi-threaded in-line logging | |
CN107729267B (zh) | 资源的分散分配以及用于支持由多个引擎执行指令序列的互连结构 | |
CN110377402A (zh) | 业务数据处理方法、装置、存储介质及计算机设备 | |
CN101958808A (zh) | 一种服务于多网格接入的集群任务调度管理器 | |
CN101697136A (zh) | 一种资源控制方法和装置 | |
EP2904765B1 (en) | Method and apparatus using high-efficiency atomic operations | |
TWI291102B (en) | Sender to receiver request retry method and apparatus | |
CN108228330A (zh) | 一种串行化的多进程任务调度方法和装置 | |
CN1928811A (zh) | 处理操作管理系统和方法 | |
CN101448027A (zh) | 一种流水线Web服务器的系统及其工作方法 | |
CN115408117A (zh) | 协程运行方法、装置、计算机设备和存储介质 | |
US7958510B2 (en) | Device, system and method of managing a resource request | |
JP7346649B2 (ja) | 同期制御システムおよび同期制御方法 | |
CN108628676A (zh) | 一种面向多核系统的内存管理装置及方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110202 Termination date: 20190608 |
|
CF01 | Termination of patent right due to non-payment of annual fee |