处理器访问共享数据的方法、装置及系统的制作方法

文档序号:6578706阅读:162来源:国知局
专利名称:处理器访问共享数据的方法、装置及系统的制作方法
技术领域
本发明涉及计算机领域,尤其涉及处理器访问共享数据的方法、装置及系统。
背景技术
当前,多处理器系统蓬勃发展,其中多处理器通过共享存储器来处理数据, 是多处理器处理数据的主要方式之一。所谓多处理器共享存储器是多个处理器 共享单个集中式的存储器。目前多处理器共享存储器的结构主要是三级的存储
结构,即多个处理器中的每个处理器有自己私有的容量比较小的一级高速緩沖
存储器(Cache),所述多个处理器共享的容量比较大的二级高速缓冲存储器, 最后所述多个处理器共享海量的单一物理存储器。具有该种存储器结构的多处 理系统结构比较简单,性价比合算,得到了广泛应用。
但是,当所述多个处理器访问共享数据时,如果所述多处理器中的各个处 理器的读写顺序没有合理的处理,导致多个处理器同时并发的读写共享存储器 中的同一块存储区所包含的共享数据,使各处理器的读写互相交织,从而导致 任何一个处理器都无法正确的访问所述共享存储器中的共享数据。
为了使多个处理器在访问共享数据时,能够排他性的访问共享存储器中的 共享数据,现有技术中有以下两种处理方法,该两种多处理器访问共享数据的 方法具体为
第一种,采用总线锁技术,实现多处理器排他性的访问共享数据。该方法 具体为在处理器访问共享数据之前,查询总线是否处于非锁定状态,在总线 处于非锁定状态时,通过命令将整个总线或者整个存储系统锁住,使除了所述处理器以外,其他处理器或者总线设备都不得访问存储系统中的共享数据,保 证所述处理器对共享数据的独占访问。
该方法虽然可以实现多处理器在并发的读写共享数据时排他性的访问共享 数据,但是,由于该方法是将整个通信总线或者整个存储系统锁定,只允许所 述一个处理器使用所述总线和存储系统,使其他不访问共享数据的操作也无法 进行,从而导致整个系统的利用率比较低。
第二种,采用软件锁技术,实现多处理器排他性的访问共享数据。所述软 件锁,就是一个共享的变量,各处理器通过系统提供的原子操作指令,争夺这 个变量的某个固定值(比如该固定值为0),哪个处理器获得了这个值,就代表 哪个处理器获得了排他性访问共享数据的权利,便可以排他性的访问所述共享 数据。
该方法在实现多处理器排他性的访问共享数据时,由各处理器之间竟争软 件锁来实现排他性的访问共享数据,不用将整个通信总线或者整个存储系统锁 定,即不用将整个通信总线或者整个存储系统独占,^使其他非访问共享数据的
操作可以正常进行,在一定程度上提高了系统的利用率;但是该种通过软件锁 技术实现多处理器排他性的访问共享数据的方法,需要各处理器不停的向存储 器发出存储器访问命令,直到获取软件锁成功为止,使所述处理器无谓的增加 很多无效访问,而所述存储系统要不断的处理所述无效访问,使存储系统效率 较低。

发明内容
本发明的实施例提供一种处理器访问共享数据的方法、装置及系统,提高 了存储系统的效率。
为达到上述目的,本发明的实施例采用如下技术方案
6一种处理器访问共享数据的方法,包括
通过硬件线程向存储系统发送存储块锁定命令,以指示存储系统将所述存
储块锁定;
在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁
定完成信息;
若在预设的时钟周期内,接收到所述存储系统发送的所述存储块锁定完成 信息,则调度所述硬件线程访问所述存储块中的共享数据;
若在预设的时钟周期内,没有接收到所述存储系统发送的所述存储块锁定 完成信息,则所述硬件线程继续等待所述存储系统发送的存储块锁定完成信息。
一种处理器,包括
发送单元,用于通过硬件线程向存储系统发送存储块锁定命令,以指示所 述存储系统将所述存储块锁定;
判断单元,用于在预设的时钟周期内,判断是否接收到所述存储系统发送 的所述存储块锁定完成信息;
执行单元,用于当在预设的时钟周期内,所述判断单元判定接收到所述存 储系统发送的所述存储块锁定完成信息时,调度所述硬件线程访问所述存储块 中的共享ll据;
所述执行单元,还用于在预设的时钟周期内,所述判断单元判定没有接收 到所述存储系统发送的所述存储块锁定完成信息,所述硬件线程继续等待所述 存储系统发送的存储块锁定完成信息。
一种处理器访问共享数据的系统,包括处理器系统和存储系统,所述处理 器系统由至少一个处理器构成;所述处理器通过硬件线程向存储系统发送存储 块锁定命令,以指示所述存储系统将所述存储块锁定;在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息;若在预设的时 钟周期内,接收到所述存储系统发送的所述存储块锁定完成信息,则调度所述 硬件线程访问所述存储块中的共享数据;若在预设的时钟周期内,所述处理器 没有接收到所述存储系统发送的所述存储块锁定完成信息,则所述硬件线程继 续等待所述存储系统发送的存储块锁定完成信息。
所述存储系统接收所述处理器发送的存储块锁定命令,并将所述存储块锁 定完成信息发送给所述处理器,以指示所述处理器访问所述锁定的存储块所包 含的共享数据。
本发明技术方案,在处理器访问共享数据时,通过处理器的硬件线程向所 述存储系统发送锁定共享数据所在的存储块;并在接收到所述存储系统返回的 所述存储块锁定完成信息时,通过调度所述硬件线程访问所述锁定的存储块所 包含的共享数据;使所述处理器获得所述共享数据的访问权限时,只需要等待 所述存储系统发送的所述存储块锁定完成信息即可,不需要不断的向所述存储 系统发送访问所述共享数据的请求信息,使所述存储系统不用处理过多的无效 访问,提高了所述存储系统效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作筒单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图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和4丸行单元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、在一定的时钟周期内,所述处理器没有接收到所述存储块已锁定的命 令,表明所述处理器当前需要访问的存储块已被除所述处理器以外的其他处理 器锁定,使存储系统暂时不能将所述存储块分配给所述处理器,使所述处理器 访问所述存储块所包含的共享数据。所述存储系统只能等待所述存储块释放, 即所述存储块处于非锁定状态时,才能将所述存储块锁定,才能使所述处理器 获得访问所述存储块的权限。为了不影响所述处理器的其他处理工作,在一定 的时钟周期内,所述处理器没有接收到所述存储块锁定完成信息时,所述发送 存储块锁定命令的硬件线程继续等待所述存储系统发送的所述存储块锁定完成 信息,直到接收到所述锁定完成信息。
本发明实施例4是供一种存储系统共享数据的方法,如图7所示,该方法包

701、 存储系统接收处理器发送的存储块锁定命令;所述存储块锁定命令为 存储系统。
702、 执行所述接收到的存储块锁定命令,检测所述接收到的存储块的状态, 所述存储块的状态包括锁定状态和非锁定状态;在所述存储块处于非锁定状 态时,所述存储系统将所述存储块锁定,并执行步骤703;其中,当所述存储系 统将所述存储块锁定后,其他的处理器访问所述锁定的存储块所包含的共享数
含的共享数据时为正常访问,以此实现处理器排他性的独占的访问所述共享数据。
本步骤中,当所述存储块处于锁定状态时,所述存储系统只有等到所述已 锁定的存储块解锁后,所述存储系统才能将所述存储块分配给所述处理器并将 所述存储块锁定完成消息发送给所述处理器,以指示所述处理器访问所述存储 块所包含的共享数据。
703、 在所述存储系统将所述存储块锁定后,将所述存储块锁定完成的信息 发送给所述处理器,以指示所述处理器访问所述存储块所包含的共享数据。
704、 在所述处理器访问所述共享数据结束后,所述处理器向所述存储系统 发送所述存储块的解锁命令,以便所述存储系统解除所述存储块的锁定,当所 述处理器的硬件线程向所述存储系统发送所述存储块的解锁命令时,所述存储 系统接收所述处理器发送的解锁命令。
705、 所述存储系统根据所述解锁命令将所述存储块的锁定解除,以便其他 处理器和总线设备可以访问所述存储块所包含的共享数据。
本发明实施例提供一种处理器,如图3所示,该处理器包括发送单元31、 判断单元32和执行单元33。
发送单元31用于通过所述处理器中的硬件线程向存储系统发送存储块锁定 命令,以指示所述存储系统将所述存储块锁定,所述存储块的锁定命令为一条 软件指令,包括锁定命令的指令头、需要锁定的所述存储块的首地址和需要锁 定的所迷存储块的大小;为了提高所迷存储系统硬件处理所述命令的了效率, 将所述需要锁定的所述存储块的大小设定为一固定值,并缺省该参数。
在所述发送单元31将所述存储块锁定命令发送给存储系统后,所述处理器 通过判断单元32在预设的时钟周期内,判断是否接收到所述存储系统发送的所 述存储块锁定完成信息,所述预设的时钟周期为一经验值,可以根据所述存储系统执行所述锁定命令的时钟周期设定。
若所述判断单元32判定在一定的时钟周期内,所述处理器接收到所述存储
系统发送的所述存储块锁定完成信息时,所述执行单元33调度所述硬件线程访 问所述存储块所包含的共享数据;若所述判断单元32判定在一定的时钟周期内, 所述处理器没有接收到所述存储系统发送的所述存储块锁定完成信息时,所述 执行单元33调度所述硬件线程继续等待所述存储系统发送的存储块锁定完成信 息,并调用所述判断单元32继续检测是否接收到所述存储系统发送的所述存储 块锁定完成信息,直到检测到所述处理器接收到所述存储系统发送的所述存储 模块锁定完成信息,并调用所述执行单元33调度所述硬件线程访问所述存储块 中的共享数据。
在所述处理器访问完所述存储块所包含的共享数据后,所述发送单元31还 用于向所述存储系统发送所述存储块解锁命令,指示所述存储系统将所述存储 块的锁定解除,所述存储块的解锁命令为一条软件指令。
本发明实施例提供一种存储系统,如图4所示,该系统包括接收单元41、 4丸行单元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、所述存储系统接收所述处理器发送的所述存储块的解锁命令,并执行
所述存储块的解锁命令,以便其他的处理器或者总线设备访问所述存储块所包 含的共享数据。
本发明实施例中,使所述处理器获得所述共享数据的访问权限时,只需要 等待所述存储系统发送的所述存储块锁定完成信息即可,不需要不断的向所述 存储系统发送访问所述共享数据的请求信息,使所述存储系统不用处理过多的
无效访问,提高了所述存储系统效率;并且当所述处理器在一定的时钟周期内 没有接收到所述存储系统发送的所述存储块的锁定完成信息时,所述处理器使 发送所述存储块锁定命令的硬件线程继续等待所述存储系统发送的所述存储块 的锁定完成信息,而所述处理器将本处理器的其他功能切换到所述处理器的其 他线程上继续进行,不会使所述处理器在一定的时钟周期内没有申请到所述共 享数据的访问权时,空等获得访问所述共享数据的权利,从而提高了整个系统 的利用率。
进一步的,当所述存储系统4丸行所述处理器发送的所述存储块的锁定命令 时,当所述需要锁定的存储块处于锁定状态时,所述存储系统自动将所述处理 器访问所述共享数据的请求挂起,在所述需要锁定的存储块的状态没有由锁定 状态变为非锁定状态,所述存储系统对所述请求不进行任何处理,在一定程度 上节约了所述存储系统的时钟周期,使所述存储系统有更多的时钟周期处理其 他的操作,从而提高了整个系统的利用率。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发 明可借助软件加必需的通用硬件的方式来实现,当然也可以通过硬件,但很多 情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或 者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,硬盘或光盘等,包括若 千指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备 等)执行本发明各个实施例所述的方法。
以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到 变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应 所述以权利要求的保护范围为准。
权利要求
1、一种处理器访问共享数据的方法,其特征在于,包括通过硬件线程向存储系统发送存储块锁定命令,以指示所述存储系统将所述存储块锁定;在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息;若在预设的时钟周期内,接收到所述存储系统发送的存储块锁定完成信息,则调度所述硬件线程访问所述存储块中的共享数据;若在预设的时钟周期内,没有接收到所述存储系统发送的所述存储块锁定完成信息,则所述硬件线程继续等待所述存储系统发送的所述存储块锁定完成信息。
2、 根据权利要求1所述的处理器访问共享数据的方法,其特征在于,在 调度所述硬件线程访问所述存储块中的共享数据后,该方法还包括通过所述硬件线程向所述存储系统发送所述存储块解锁命令,以指示所述 存储系统解除对所述存储块的锁定。
3、 根据权利要求2所述的处理器访问共享数据的方法,其特征在于,所述 存储块解锁命令为一条软件指令,包括解锁命令的指令头和需要解除锁定命令 的所述存储块的首地址。
4、 根据权利要求1所述的处理器访问共享数据的方法,其特征在于,所 述存储块锁定命令是一条软件指令,包括锁定命令的指令头、需要锁定的所述 存储块的首地址和需要锁定的所述存储块的大小。
5、 根据权利要求1所述的处理器访问共享数据的方法,其特征在于,在需 要锁定的存储块的大小固定时,所述存储块锁定指令包括锁定命令的指令头和 需要锁定的所述存储块的首地址。
6、 一种处理器,其特征在于,包括发送单元,用于通过硬件线程向存储系统发送存储块锁定命令,以指示所述存储系统将所述存储块锁定;判断单元,用于在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息;执行单元,用于当在预设的时钟周期内,所述判断单元判定接收到所述存 储系统发送的所述存储块锁定完成信息时,调度所述硬件线程访问所述存储块 中的共享数据;所述执行单元,还用于在预设的时钟周期内,所述判断单元判定没有接收 到所述存储系统发送的所述存储块锁定完成信息时,所述硬件线程继续等待所 述存储系统发送的所述存储块锁定完成信息。
7、 根据权利要求6所述的处理器,其特征在于,所述发送单元还用于,在 调度所述硬件线程访问所述存储块中的共享数据后,通过所述硬件线程向所述 存储系统发送所述存储块解锁命令,以指示存储系统解除对所述存储块的锁定。
8、 一种处理器访问共享数据的系统,包括处理器系统和存储系统,其特征 在于,所述处理器系统包括至少一个处理器,所述处理器通过硬件线程向存储系 统发送存储块锁定命令,以指示所述存储系统将所述存储块锁定;在预设的时 钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息;若 在预设的时钟周期内,接收到所述存储系统发送的所述存储块锁定完成信息, 则调度所述硬件线程访问所述存储块中的共享勒:据;若在预设的时钟周期内, 没有接收到所述存储系统发送的所述存储块锁定完成信息,则所述硬件线程继 续等待所述存储系统发送的存储块锁定完成信息;所述存储系统接收所述处理器发送的存储块锁定命令,并将所述存储块锁 定完成信息发送给所述处理器,以指示所述处理器访问所述锁定的存储块所包 含的共享数据。
全文摘要
本发明公开了一种处理器访问共享数据的方法、装置及系统,涉及计算机领域,解决了存储系统效率较低的问题。该方法包括处理器通过硬件线程向存储系统发送存储块锁定命令,以指示所述存储系统将所述存储块锁定;在预设的时钟周期内,判断是否接收到所述存储系统发送的所述存储块锁定完成信息;若在预设的时钟周期内,接收到所述存储系统发送的所述存储块锁定完成信息,则调度所述硬件线程访问所述存储块中的共享数据;若在预设的时钟周期内,没有接收到所述存储系统发送的所述存储块的锁定完成信息,则所述硬件线程继续等待所述存储系统发送的存储块锁定完成信息。本发明实施例主要用于多处理器系统下处理器访问共享数据的过程中。
文档编号G06F13/16GK101566977SQ20091014717
公开日2009年10月28日 申请日期2009年6月8日 优先权日2009年6月8日
发明者高秋明 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1