CN104063331B - 处理器、共享存储区域访问方法和锁管理器 - Google Patents

处理器、共享存储区域访问方法和锁管理器 Download PDF

Info

Publication number
CN104063331B
CN104063331B CN201410315834.1A CN201410315834A CN104063331B CN 104063331 B CN104063331 B CN 104063331B CN 201410315834 A CN201410315834 A CN 201410315834A CN 104063331 B CN104063331 B CN 104063331B
Authority
CN
China
Prior art keywords
lock
memory area
occupied information
processor core
mark
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.)
Active
Application number
CN201410315834.1A
Other languages
English (en)
Other versions
CN104063331A (zh
Inventor
蔡飞
高翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Loongson Technology Corp Ltd
Original Assignee
Loongson Technology Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Loongson Technology Corp Ltd filed Critical Loongson Technology Corp Ltd
Priority to CN201410315834.1A priority Critical patent/CN104063331B/zh
Publication of CN104063331A publication Critical patent/CN104063331A/zh
Application granted granted Critical
Publication of CN104063331B publication Critical patent/CN104063331B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Multi Processors (AREA)

Abstract

本发明提供一种处理器、共享存储区域访问方法和锁管理器,其中,共享存储区域访问方法包括:接收处理器核发送的锁占用请求消息,所述锁占用请求消息包括存储区域锁的地址和所述处理器核的标识,所述存储区域锁用于管理共享存储区域的访问;根据所述锁占用请求消息对所述存储区域锁的占用信息进行管理。本发明提供的处理器、共享存储区域访问方法和锁管理器能够解决现有的共享存储区域的访问方法导致有效带宽利用率不高的问题,提高了有效带宽的利用率。

Description

处理器、共享存储区域访问方法和锁管理器
技术领域
本发明涉及处理器应用技术,尤其涉及一种处理器、共享存储区域访问方法和锁管理器。
背景技术
多核处理器是在一个处理器芯片上集成设置有至少两个处理器核,通过并行总线将各处理器核连接起来,使得至少两个处理器核分工合作,既能独立执行任务,又能相互配合执行任务,极大地提升了数据处理的速度。另外,处理器芯片上设置有共享存储区域,各处理器核之间可以通过互联网络对共享存储区域进行数据访问,以实现与其它处理器核进行数据交互。
目前,对多核处理器中的共享存储区域进行访问的方法通常包括两个步骤:申请过程和访问过程。其中,申请过程是由一个处理器核通过各处理器核之间的互联网络发起共享存储区域的访问请求,由专用的硬件设备来处理访问请求,待访问请求得到允许之后,相当于申请成功了,则进入访问过程,处理器核可以对共享存储区域进行访问;如果申请不成功则处理器核持续进行申请。申请过程的界限为处理器核发起访问请求至访问请求得到应答之前的时间段内,在申请过程中,互联网络被该处理器核锁定,其它处理器核均不能通过互联网络发送任何消息,在申请过程结束后,发起访问请求的处理器核才会解除对互联网络的锁定。
在申请过程中,发起访问请求的处理器核对各处理器核之间的互联网络进行锁定并独占该互联网络,其它处理器核均不能在互联网络上发起新的操作,必须等待互联网络被解除锁定之后才能发起新的操作,使得各处理器核的工作效率较低,进而降低了互联网络的有效带宽利用率。
发明内容
本发明提供一种处理器、共享存储区域访问方法和锁管理器,用于解决现有的共享存储区域的访问方法导致有效带宽利用率不高的问题,以提高有效带宽的利用率。
本发明实施例提供一种处理器,包括至少两个处理器核、锁管理器以及存储区域锁;其中,
所述处理器核,用于发送锁占用请求消息,所述锁占用请求消息包括存储区域锁的地址和所述处理器核的标识;
所述锁管理器,用于根据所述处理器核发送的锁占用请求消息对所述存储区域锁的占用信息进行管理;
所述存储区域锁,用于管理共享存储区域的访问。
如上所述的处理器,所述锁管理器,包括:
存储模块,用于存储所述存储区域锁的占用信息,所述存储区域锁的占用信息通过占用该存储区域锁的处理器核的标识表示;
控制逻辑,用于根据所述处理器核发送的锁占用请求消息对存储模块中存储的所述存储区域锁的占用信息进行管理。
如上所述的处理器,所述锁管理器设置在控制寄存器内;
所述存储模块由多个触发器组搭建构成,每个触发器组对应一个存储区域锁;
所述控制逻辑,包括译码子逻辑和判断子逻辑,其中,
所述译码子逻辑,用于对所述锁占用请求消息中的存储区域锁的地址进行译码,以实现对存储区域锁的对应;
所述判断子逻辑,用于当所述译码子逻辑实现对存储区域锁的对应后,根据所述处理器核的标识和所述存储区域锁的占用信息对所述锁占用请求消息进行写条件判断,并且,在判断出所述存储区域锁的占用信息为空时,将所述处理器核的标识写入所述存储区域锁的占用信息;以及在判断出所述存储区域锁的占用信息为所述处理器核的标识时,将所述存储区域锁的占用信息清空。
如上所述的处理器,所述存储模块为随机存储器RAM,所述控制逻辑包括状态机;
所述状态机,用于控制所述RAM的读写操作,所述状态机的状态包括空闲状态、RAM读取状态以及RAM写回状态。
如上所述的处理器,所述状态机由多个触发器搭建构成;所述多个触发器,用于存储发送请求消息的处理器核的标识、空闲状态标识、RAM读取状态标识、RAM写回状态标识、存储区域锁的标识、以及根据存储区域锁的标识从RAM读取的当前占用该存储区域锁的处理器核的标识,其中所述请求消息包括锁占用请求消息和锁占用信息查询消息。
本发明另一实施例提供一种共享存储区域访问方法,包括:
接收处理器核发送的锁占用请求消息,所述锁占用请求消息包括存储区域锁的地址和所述处理器核的标识,所述存储区域锁用于管理共享存储区域的访问;
根据所述锁占用请求消息对所述存储区域锁的占用信息进行管理。
如上所述的共享存储区域访问方法,还包括:
接收处理器核发送的锁占用信息查询消息,所述锁占用信息查询消息包括所述存储区域锁的地址;
根据所述存储区域锁的地址将对应的存储区域锁的占用信息发送给所述处理器核,以使所述处理器核对所述占用信息进行判断,并在判断出所述占用信息与所述处理器核的标识一致时对所述共享存储区域进行访问。
如上所述的共享存储区域访问方法,所述根据所述锁占用请求消息对所述存储区域锁的占用信息进行管理,包括:
根据所述存储区域锁的地址获取所述存储区域锁的占用信息;
判断所述占用信息是否为空;
当判断出所述占用信息为空时,将所述处理器核的标识写入所述占用信息,以锁定所述存储区域锁。
如上所述的共享存储区域访问方法,所述根据所述锁占用请求消息对所述存储区域锁的占用信息进行管理,还包括:
当判断出所述占用信息不为空时,判断所述占用信息与所述处理器核的标识是否一致;
当判断出所述占用信息与所述处理器核的标识一致时,将所述占用信息清空,以解除所述存储区域锁的锁定状态。
本发明又一实施例提供一种锁管理器,包括访问消息接收模块和锁管理模块;其中,
消息接收模块,用于接收处理器核发送的锁占用请求消息,所述锁占用请求消息包括存储区域锁的地址和所述处理器核的标识,所述存储区域锁用于管理共享存储区域的访问;
锁管理模块,用于根据所述锁占用请求消息对所述存储区域锁的占用信息进行管理。
如上所述的锁管理器,还包括消息发送模块:
所述消息接收模块,还用于接收处理器核发送的锁占用信息查询消息,所述锁占用信息查询消息包括所述存储区域锁的地址;
所述消息发送模块,用于根据所述存储区域锁的地址将对应的存储区域锁的占用信息发送给所述处理器核,以使所述处理器核对所述占用信息进行判断,并在判断出所述占用信息与所述处理器核的标识一致时对所述共享存储区域进行访问。
如上所述的锁管理器,所述锁管理模块包括:
占用信息获取单元,用于根据所述存储区域锁的地址获取所述存储区域锁的占用信息;
占用信息判断单元,用于判断所述占用信息是否为空;当判断出所述占用信息为空时,触发占用信息写入单元的操作;
占用信息写入单元,用于将所述处理器核的标识写入所述占用信息,以锁定所述存储区域锁。
如上所述的锁管理器,所述占用信息判断单元,还用于当判断出所述占用信息不为空时,判断所述占用信息与所述处理器核的标识是否一致,若一致,则触发占用信息清空单元的操作;
所述锁管理模块还包括:占用信息清空单元,用于将所述占用信息清空,以解除所述存储区域锁的锁定状态。
本发明实施例提供的技术方案通过采用锁管理器和存储区域锁来对共享存储区域的访问进行管理,其中锁管理器接收处理器核发送的携带有存储区域锁的地址和处理器核标识的锁占用请求消息,并根据该消息将相应的存储区域锁进行管理,以实现处理器核对存储区域锁进行锁定和解除锁定。在处理器核申请对某一存储区域锁进行占用的过程中,不会锁定处理器核之间的互联网络,因此,不会影响互联网络的正常工作,其它的处理器核可以通过互联网络进行正常的数据交互过程,解决了现有的共享存储区域的访问方法导致有效带宽利用率不高的问题,提高了有效带宽的利用率。另外,在处理器核申请对某一存储区域锁进行占用的过程中,其它的处理器核也可以通过互联网络对其它存储区域锁的占用进行申请,进一步提高了有效带宽的利用率。
附图说明
图1为本发明实施例一提供的共享存储区域访问方法的流程图;
图2为本发明实施例一提供的共享存储区域访问方法中对存储区域锁的占用信息进行管理的流程图;
图3为本发明实施例二提供的共享存储区域访问方法的流程图;
图4为本发明实施例三提供的锁管理器的结构示意图一;
图5为本发明实施例三提供的锁管理器中的锁管理模块的结构示意图;
图6为本发明实施例三提供的锁管理器的结构示意图二;
图7为本发明实施例三提供的处理器的结构示意图一;
图8为本发明实施例三提供的处理器的结构示意图二。
具体实施方式
鉴于现有技术中,处理器核在对共享存储区域的访问进行申请的过程是通过锁定并占用互联网络的方式来实现的,因此,在互联网络被一个处理器核锁定期间,其它处理器核均不能在互联网络上发起新的操作,必须等待互联网络解除锁定之后才能发起新的操作,使得互联网络的有效带宽利用率较低,且也降低了多核处理器的效率。本发明实施例提供了一种新的共享存储区域访问方法,不需要锁定互联网络,而是采用存储区域锁和锁管理器对共享存储区域的访问进行管理,不需要对互联网络进行锁定。
图1为本发明实施例一提供的共享存储区域访问方法的流程图。本实施例提供的共享存储区域访问方法适用于多核处理器中各处理器核共用存储区域的情况,也适用于多个处理器共用一个存储区域的情况。该方法可以由多核处理器中的锁管理器来执行,可以采用软件和/或硬件的形式实现。如图1所示,共享存储区域访问方法可以包括:
步骤101、锁管理器接收处理器核发送的锁占用请求消息。
当处理器核在需要对共享存储区域进行访问时,可以先申请将对应的存储区域锁进行锁定,即可以通过互联网络向锁管理器发送锁占用请求消息,该锁占用请求消息包括存储区域锁的地址和处理器核的标识。
其中,一个处理器核具有唯一的标识,处理器核的标识可以为处理器核的编号或者为其它的信息,以对处理器核进行识别。若处理器核标识为各处理器核的编号,则在对处理器的硬件结构进行搭建的过程中,可通过互联网络对各处理器核进行编号,例如从1开始依次编号,每一个处理器核对应有一个编号,该编号可作为处理器核标识。或者,该标识可以在处理器核通过互联网络发送消息的过程中,由互联网络向该消息的数据包中添加进处理器核的标识。
存储区域锁用于管理共享存储区域的访问,具体的,可以设定一个存储区域锁管理一个共享存储区域,也可以设定一个存储区域锁管理多个共享存储区域,或者也可以将一个共享存储区域划分为几部分,一个存储区域锁管理其中的一部分,或者也可以设定为其它方式。当存储区域锁被一个处理器核占用,即该存储区域锁处于锁定状态时,其对应的共享存储区域只能供占用的处理器核来访问,实现数据的读出和写入,而其它的处理器核均不能对该共享存储区域进行访问。待处理器核结束对共享存储区域的访问,可解除对存储区域锁的锁定,以使对应的共享存储区域能够被其它的处理器核访问。每个存储区域锁具有一个地址,处理器核发出的锁占用请求消息中携带有存储区域锁的地址,用于告知锁管理器需对该地址对应的存储区域锁进行管理。
步骤102、锁管理器根据锁占用请求消息对存储区域锁的占用信息进行管理。
锁管理器在接收到处理器核发送的锁占用请求消息后,首先进行消息数据包的解析,得到其中的存储区域锁的地址。然后根据该存储区域锁的地址找到对应的存储区域锁,并对存储区域锁的占用信息进行管理,以锁定该存储区域锁或解除锁定该存储区域锁,具体可将某一处理器核的标识写入占用信息,以表示存储区域锁被该处理器核占用,或者将占用信息清空,以表示当前该存储区域锁未被任何处理器核占用。
存储区域锁的占用信息中存储的是当前占用该存储区域锁的处理器核的标识,若存储区域锁当前未被任何一个处理器核占用,则该占用信息为空。在本实施例中,将占用信息写为0视为该占用信息为空,也即若存储区域锁当前未被任何一个处理器核占用,则该占用信息为0。
对于上述锁管理器对存储区域锁的占用信息进行管理,以锁定该存储区域锁或解除锁定该存储区域锁的具体方式,本领域技术人员可采用多种方式来实现。本实施例提供一种具体的实现方式:
图2为本发明实施例一提供的共享存储区域访问方法中对存储区域锁的占用信息进行管理的流程图。如图2所示,对存储区域锁的占用信息进行管理,可包括如下步骤:
步骤1021、锁管理器根据存储区域锁的地址获取存储区域锁的占用信息。
步骤1022、锁管理器判断占用信息是否为空。
根据上述内容,占用信息为空即为占用信息为0,则锁管理器判断占用信息是否为空,具体是判断占用信息是否等于0。
步骤1023、当判断出占用信息为空时,锁管理器将处理器核的标识写入占用信息,以锁定存储区域锁。
判断出占用信息为空,也即占用信息为0,相当于该存储区域锁当前未被任何处理器核占用,则锁管理器可将发起锁占用请求消息的处理器核的标识写入存储区域锁的占用信息中,以锁定该存储区域锁,使得该存储区域锁只供占用它的处理器核来访问相对的共享存储区域,而其它的处理器核均不能再访问该共享存储区域。
另外,当占用信息不为空时,也即占用信息不为0,表明当前存储区域锁被某一处理器核锁定,则锁管理器可以判断存储区域锁中的占用信息是归属于哪个处理器核的标识,如果是当前发送锁占用请求消息的处理器核,则相当于存储区域锁已经被该处理器核占用,那么此次发送锁占用请求消息的目的是解除对存储区域锁的锁定;如果占用信息不是当前发送锁占用请求消息的处理器核,则相当于存储区域锁被其它处理器核占用。具体按照如下步骤来执行:
步骤1024、当判断出占用信息不为空时,锁管理器判断占用信息与处理器核的标识是否一致。
步骤1025、当判断出占用信息与处理器核的标识一致时,锁管理器将占用信息清空,以解除存储区域锁的锁定状态。
上述步骤1023至步骤1025可以换个方式理解,即处理器核对某一存储区域锁的锁定和解除锁定的方式可以通过互联网络发送相同的锁占用请求消息,而对锁定和解除锁定的具体操作则由锁管理器对存储区域锁当前的占用信息进行判断,若占用信息为空,则执行锁定操作,若占用信息不为空,且与发送锁占用请求消息的处理器核的标识一致,则执行解除锁定操作。
若判断出占用信息与发起锁占用请求消息的处理器核的标识不一致,表明当前占用该存储区域锁的为其它处理器核,则锁管理器可以不执行任何操作,或者可以向发起锁占用请求消息的处理器核返回请求失败响应消息,以使该处理器核发起新的锁占用请求消息,以对其它的存储区域锁进行占用并锁定。
对于上述步骤1021至步骤1025,本领域技术人员也可以采取其它的实现方式,以达到相同的技术效果,例如在锁占用请求消息中设定具体的操作内容,例如锁定操作、解除锁定操作、查询操作,以使锁管理器根据该消息的内容执行具体的操作。
本实施例提供的技术方案通过采用锁管理器和存储区域锁来对共享存储区域的访问进行管理,其中锁管理器接收处理器核发送的携带有存储区域锁的地址和处理器核标识的锁占用请求消息,并根据该消息将相应的存储区域锁进行管理,以实现处理器核对存储区域锁进行锁定和解除锁定。在处理器核申请对某一存储区域锁进行占用的过程中,不会锁定处理器核之间的互联网络,因此,不会影响互联网络的正常工作,其它的处理器可以通过互联网络进行正常的数据交互过程,解决了现有的共享存储区域的访问方法导致有效带宽利用率不高的问题,提高了有效带宽的利用率。另外,在处理器核申请对某一存储区域锁进行占用的过程中,其它的处理器核也可以通过互联网络对其它存储区域锁的占用进行申请,进一步提高了有效带宽的利用率。
实施例二
图3为本发明实施例二提供的共享存储区域访问方法的流程图。本实施例是在上述实施例的基础上,对共享存储区域访问方法进行了优化。该方法可以由处理器中的锁管理器来执行,可以采用软件和/或硬件的形式实现。如图3所示,该共享存储区域访问方法还可以包括:
步骤103、锁管理器接收处理器核发送的锁占用信息查询消息。
在处理器核需对共享存储区域进行访问之前,可向锁管理器发送锁占用信息查询消息,以查询共享存储区域对应的存储区域锁的占用信息。该锁占用信息查询消息包括存储区域锁的地址。
步骤104、锁管理器根据存储区域锁的地址将对应的存储区域锁的占用信息发送给处理器核。
锁管理器根据存储区域锁的地址找到对应的存储区域锁,并将其中的占用信息发送给处理器核,以使处理器核对占用信息进行判断。
由于占用信息实质是当前占用该存储区域锁的处理器核的标识,则发送锁占用信息查询消息的处理器核对占用信息进行判断,判断该占用信息与自身的标识是否一致。当处理器核判断出该占用信息与自身的标识一致时,也即该存储区域锁是被自己占用的状态,则处理器核可以对共享存储区域进行访问;若与自身的标识不一致,则不可以对共享存储区域进行访问。
通常,上述实施例中的步骤101和102可以在本实施例的步骤103和104之前执行,但执行完步骤101和102之后,并不需要立即执行步骤103和104,或者说可以不连续执行。
本实施例提供的技术方案中,处理器核在对存储区域锁进行的操作(包括:锁定、解除锁定或查询)过程中,并不影响互联网络的正常工作,其它的处理器核可以通过该互联网络进行正常的数据交互,也可以通过互联网络向锁管理器发起锁占用信息查询消息或进行其它存储区域锁的申请。
本实施例提供的技术方案通过采用锁管理器和存储区域锁来对共享存储区域的访问进行管理,其中锁管理器接收处理器核发送的携带有存储区域锁的地址和处理器核标识的锁占用请求消息,并根据该消息将相应的存储区域锁进行管理,以实现处理器核对存储区域锁进行锁定和解除锁定。处理器核还可以通过锁管理器对存储区域锁的占用信息进行查询,在确定该存储区域锁被自身占用时才发起对共享存储区域的访问。在处理器核对某一存储区域锁进行锁定、解除锁定或查询的过程中,不会锁定处理器核之间的互联网络,因此,不会影响互联网络的正常工作,其它的处理器可以通过互联网络进行正常的数据交互过程,例如发起锁占用信息查询消息或进行其它存储区域锁的申请等,解决了现有的共享存储区域的访问方法导致有效带宽利用率不高的问题,提高了有效带宽的利用率。
实施例三
图4为本发明实施例三提供的锁管理器的结构示意图一。如图4所示,本实施例提供一种锁管理器,包括消息接收模块11和锁管理模块12。
其中,消息接收模块11用于接收处理器核发送的锁占用请求消息,锁占用请求消息包括存储区域锁的地址和处理器核的标识,存储区域锁用于管理共享存储区域的访问。锁管理模块12用于根据锁占用请求消息对存储区域锁的占用信息进行管理。
图5为本发明实施例三提供的锁管理器中的锁管理模块的结构示意图。如图5所示,锁管理模块12具体可以包括:占用信息获取单元121、占用信息判断单元122和占用信息写入单元123。
其中,占用信息获取单元121用于根据存储区域锁的地址获取存储区域锁的占用信息。占用信息判断单元122用于对占用信息获取单元121获取到的占用信息进行判断,判断该占用信息是否为空;当判断出占用信息为空时,触发占用信息写入单元123的操作。占用信息写入单元123用于将处理器核的标识写入占用信息,以锁定存储区域锁。
另外,锁管理模块12还可以包括占用信息清空单元124。占用信息清空单元124用于将占用信息清空,以解除存储区域锁的锁定状态。
当占用信息判断单元122判断出占用信息不为空时,还可以判断占用信息与处理器核的标识是否一致,若一致,则触发占用信息清空单元124的操作。
上述消息接收模块11还用于接收处理器核发送的锁占用信息查询消息,锁占用信息查询消息包括存储区域锁的地址。
图6为本发明实施例三提供的锁管理器的结构示意图二。如图6所示,另外,锁管理器还包括消息发送模块13,用于根据存储区域锁的地址将对应的存储区域锁的占用信息发送给处理器核,以使处理器核对占用信息进行判断,并在判断出占用信息与处理器核的标识一致时对共享存储区域进行访问。
当上述占用信息判断单元122判断出占用信息与处理器核的标识不一致时,可以不执行任何操作,也可以触发上述消息发送模块13的操作。消息发送模块13还可以用于向处理器核发送占用请求失败消息,以重新触发消息接收模块11的操作。
锁管理器对存储区域锁进行管理,使得处理器核对相应的存储区域进行访问的方法可参照上述任一实施例所提供的技术方案,此处不再赘述。
本实施例提供的技术方案通过采用锁管理器来对共享存储区域的访问进行管理,其中锁管理器接收处理器核发送的携带有存储区域锁的地址和处理器核标识的锁占用请求消息,并根据该消息将相应的存储区域锁进行管理,以实现处理器核对存储区域锁进行锁定和解除锁定。在处理器核申请对某一存储区域锁进行占用的过程中,不会锁定处理器核之间的互联网络,因此,不会影响互联网络的正常工作,其它的处理器可以通过互联网络进行正常的数据交互过程,解决了现有的共享存储区域的访问方法导致有效带宽利用率不高的问题,提高了有效带宽的利用率。另外,在处理器核申请对某一存储区域锁进行占用的过程中,其它的处理器核也可以通过互联网络对其它存储区域锁的占用进行申请,进一步提高了有效带宽的利用率。
实施例四
本实施例提供一种处理器,包括至少两个处理器核、锁管理器以及存储区域锁。其中,处理器核用于发送锁占用请求消息,该锁占用请求消息包括存储区域锁的地址和处理器核的标识。锁管理器用于根据处理器核发送的锁占用请求消息对存储区域锁的占用信息进行管理。存储区域锁,用于管理共享存储区域的访问。
具体的,上述锁管理器可以包括存储模块和控制逻辑,其中,存储模块用于存储存储区域锁的占用信息,存储区域锁的占用信息通过占用该存储区域锁的处理器核的标识表示。控制逻辑用于根据处理器核发送的锁占用请求消息对存储模块中存储的存储区域锁的占用信息进行管理。
上述实施例所提供的共享存储区域访问方法中,锁管理器和存储区域锁可采用软件和/或硬件的方式实现,对于软件的实现方式,本领域技术人员可采用熟知的编程方式编写具体的语句来实现。
本实施例提供一种硬件的实现方式,存储区域锁中可以设置有一个读地址端口,一个写地址端口,以及一个用于存储占用信息的电路构件,处理器核的标识L可以为1-32位的二进制数,连接在互联网络上的处理器核的数量应当小于或等于2L-1。当存储区域锁被一个处理器核占用时,该电路构件中存储的是该处理器核的标识,当存储区域锁被解除锁定时,该电路构件中存储的是数据0。
当处理器核的标识为1-8位的二进制数时,每个存储区域锁至少占用1字节的地址空间,锁的数量为N,则锁管理器在占用互联网络上至少占用N字节的地址空间;当处理器核的标识为9-16位的二进制数时,每个存储区域锁至少占用2字节的地址空间,可将每个存储区域锁的地址最低位设置为0,以保证2字节的地址对齐,且锁管理器在占用互联网络上至少占用2N字节的地址空间;当处理器核的标识为17-32位的二进制数时,每个存储区域锁至少占用4字节的地址空间,可将每个存储区域锁的地址最低两位设置为0,以保证4字节的地址对齐,且锁管理器在占用互联网络上至少占用4N字节的地址空间。
本实施例是对锁管理器和存储区域锁由硬件实现的方式进行进一步的说明,以两个实例为例:
实例1、图7为本发明实施例三提供的处理器的结构示意图一。
如图7所示,应用于嵌入式计算环境的多核处理器,包括4个处理器核,各处理器核通过AXI总线进行数据交互。也即处理器核通过AXI总线来发送锁占用请求消息,其中,将处理器核标识附在该访问消息的高位上。多核处理器需要存储区域锁的数量可以为32个,分别对共享存储区域的访问进行管理。存储区域锁中的存储模块可以采用多个触发器组搭建构成,每个触发器组与一个存储区域锁对应。每个触发器组包括多个触发器,其中,一个触发器可相应存储一位二进制数,假设处理器核的标识为3位二进制数,则存储一个处理器核的标识则需要三个触发器。该处理器中的32个存储区域锁共需要96个触发器来实现。
上述控制逻辑可以包括译码子逻辑和判断子逻辑,其中,译码子逻辑,用于对锁占用请求消息中的存储区域锁的地址进行译码,以实现对存储区域锁的对应。判断子逻辑用于当译码子逻辑实现对存储区域锁的对应后,根据处理器核的标识和存储区域锁的占用信息对锁占用请求消息进行写条件判断,并且,在判断出存储区域锁的占用信息为空时,将处理器核的标识写入存储区域锁的占用信息;以及在判断出存储区域锁的占用信息为处理器核的标识时,将存储区域锁的占用信息清空。
锁管理器可以设置在控制寄存器内,作为控制寄存器中的一部分,也可以由触发器构成,并结合其它的组合逻辑电路实现地址译码和对存储区域锁进行管理等功能,以对处理器核发送的锁占用信息查询消息和锁占用请求消息中的存储区域锁的地址进行译码,然后对相应的存储区域锁进行占用信息的读取和写入等操作。锁管理器和存储区域锁的具体实现方式可由本领域技术人员搭建具体的电路来实现,其采用的电路器件以及各器件的组合连接方式本实施例并不限定。
采用触发器来存储占用信息,也即处理器核标识,使得锁管理器可在单个时钟周期内完成处理器核标识的读取,并且根据该标识完成对存储区域锁的读取或写入的操作,相当于锁管理器对一个存储区域锁的锁定或释放操作仅需一个时钟周期,提高了每个处理器核访问共享存储区域的速度,也相应提高了整个处理器的运行和数据处理的速度,提高了有效带宽的利用率。
实例2、图8为本发明实施例三提供的处理器的结构示意图二。如图8所示,应用于嵌入式计算环境的多核处理器,包括4个处理器核,各处理器核通过AXI总线进行数据交互,也即处理器核通过AXI总线来发送锁占用请求消息,其中,将处理器核标识附在该访问消息的高位上。当多核处理器的应用环境需要使用较多的共享存储区域进行共享存储数据的交互时,需要更多的存储区域锁,多核处理器需要存储区域锁的数量可以为1024个,分别对存储区域的访问进行管理。如若采用触发器则会导致电路较为庞大,占用较多的处理器芯片面积。本实例可采用处理器芯片内部的随机存储器(Random Access Memory,简称RAM)来实现。
假设锁管理器占用2K字节的地址空间,其中,低1K字节的地址空间用于对存储区域锁的管理信息进行存储,例如锁定状态、解除锁定状态或查询状态的信息等,高1K字节的地址空间用于存储初始化信息,以对存储区域锁中用于存储处理器核标识的RAM进行初始化,具体是在锁管理器进行管理之前,对各存储区域锁中的占用信息全部置0。本领域技术人员也可以对上述2K字节的地址空间进行其他方式的分配和使用,本实施例对此不作限定。
假设处理器核的标识为8位二进制数,也即每个存储区域锁占用1字节的RAM空间,1024个存储区域锁共占用1K字节的RAM空间。
锁管理器中的存储模块可以为随机存储器RAM,控制逻辑可采用状态机的方式来实现,可包括空闲状态、读取状态和写回状态,用于控制RAM的读写操作。状态机的功能可采用多个触发器来实现,用于存储发送请求消息的处理器核的标识、空闲状态标识、RAM读取状态标识、RAM写回状态标识、存储区域锁的标识、以及根据存储区域锁的标识从RAM读取的当前占用该存储区域锁的处理器核的标识,其中所述请求消息包括锁占用请求消息和锁占用信息查询消息。具体的,由于在本实施例中使用的是总线协议(AXI),故所述多个触发器,可以具体用于存储AXI总线的请求号、状态机的空闲状态标识、状态机的读取状态标识、状态机的写回状态标识AXI总线请求的读写标识、AXI总线读/写请求地址的低11位以及当前占用存储区域锁的处理器核标识等。下面从三个状态的角度对锁管理器的状态机的转换逻辑进行具体的说明:
首先,需对锁管理器进行初始化,可以在互联网络上的控制寄存器模块中预留一位控制寄存器位,用于对锁管理器的初始化状态进行标示。当处理器对锁管理器中的高1K字节的地址空间全部写入0,且对控制寄存器位置位,以标示初始化已完成。
当处理器所在的***复位或锁管理器复位后,进入空闲状态。在空闲状态中,当锁管理器接收到处理器核发送的锁操作请求消息时,读取对应存储区域锁的占用信息,并且对该锁操作请求消息进行辨别,若为锁占用请求消息,则下一时钟周期跳转为写回状态;若为锁占用信息查询消息,则跳转为读取状态。
在写回状态中,根据读取的对应存储区域锁的占用信息更新对应RAM中存储的占用信息;若原占用信息为空(为0),则将锁占用请求消息中的处理器核标识写入该存储区域锁对应的RAM中;若原占用信息和锁占用请求消息中的处理器核标识相同,则将该锁对应RAM的内容写为空(0);若原占用信息不为空且不与锁占用请求消息中的处理器核标识相等,则不对该锁对应的RAM进行操作。
在读取状态中,锁管理器将已经读取到的该存储区域锁的占用信息,返回至发出锁操作请求的处理器核,以供处理器核进行判断。
本领域技术人员可以根据上述实施例提供的共享存储区域访问方法和处理器的实现方式,可采用多种实现方式,设计具体的硬件电路或软件程序,本实施例对此不作限定。
本实施例提供的技术方案通过采用锁管理器和存储区域锁来对共享存储区域的访问进行管理,其中锁管理器接收处理器核发送的携带有存储区域锁的地址和处理器核标识的锁占用请求消息,并根据该消息将相应的存储区域锁进行管理,以实现处理器核对存储区域锁进行锁定和解除锁定。在处理器核申请对某一存储区域锁进行占用的过程中,不会锁定处理器核之间的互联网络,因此,不会影响互联网络的正常工作,其它的处理器可以通过互联网络进行正常的数据交互过程,解决了现有的共享存储区域的访问方法导致有效带宽利用率不高的问题,提高了有效带宽的利用率。另外,在处理器核申请对某一存储区域锁进行占用的过程中,其它的处理器核也可以通过互联网络对其它存储区域锁的占用进行申请,进一步提高了有效带宽的利用率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (11)

1.一种处理器,其特征在于,包括至少两个处理器核、锁管理器以及存储区域锁;其中,
所述处理器核,用于发送锁占用请求消息,所述锁占用请求消息包括存储区域锁的地址和所述处理器核的标识;
所述锁管理器,用于根据所述处理器核发送的锁占用请求消息对所述存储区域锁的占用信息进行管理;
所述存储区域锁,用于管理共享存储区域的访问;
其中,其中所述锁管理器还用于根据所述存储区域锁的地址将对应的存储区域锁的占用信息发送给所述处理器核,以使所述处理器核对所述占用信息进行判断,并在判断出所述占用信息与所述处理器核的标识一致时对所述共享存储区域进行访问。
2.根据权利要求1所述的处理器,其特征在于,所述锁管理器,包括:
存储模块,用于存储所述存储区域锁的占用信息,所述存储区域锁的占用信息通过占用该存储区域锁的处理器核的标识表示;
控制逻辑,用于根据所述处理器核发送的锁占用请求消息对存储模块中存储的所述存储区域锁的占用信息进行管理。
3.根据权利要求2所述的处理器,其特征在于,所述锁管理器设置在控制寄存器内;
所述存储模块由多个触发器组搭建构成,每个触发器组对应一个存储区域锁;
所述控制逻辑,包括译码子逻辑和判断子逻辑,其中,
所述译码子逻辑,用于对所述锁占用请求消息中的存储区域锁的地址进行译码,以实现对存储区域锁的对应;
所述判断子逻辑,用于当所述译码子逻辑实现对存储区域锁的对应后,根据所述处理器核的标识和所述存储区域锁的占用信息对所述锁占用请求消息进行写条件判断,并且,在判断出所述存储区域锁的占用信息为空时,将所述处理器核的标识写入所述存储区域锁的占用信息;以及在判断出所述存储区域锁的占用信息为所述处理器核的标识时,将所述存储区域锁的占用信息清空。
4.根据权利要求2所述的处理器,其特征在于,所述存储模块为随机存储器RAM,所述控制逻辑包括状态机;
所述状态机,用于控制所述RAM的读写操作,所述状态机的状态包括空闲状态、RAM读取状态以及RAM写回状态。
5.根据权利要求4所述的处理器,其特征在于,所述状态机由多个触发器搭建构成;所述多个触发器,用于存储发送请求消息的处理器核的标识、空闲状态标识、RAM读取状态标识、RAM写回状态标识、存储区域锁的标识、以及根据存储区域锁的标识从RAM读取的当前占用该存储区域锁的处理器核的标识,其中所述请求消息包括锁占用请求消息和锁占用信息查询消息。
6.一种共享存储区域访问方法,其特征在于,包括:
接收处理器核发送的锁占用请求消息,所述锁占用请求消息包括存储区域锁的地址和所述处理器核的标识,所述存储区域锁用于管理共享存储区域的访问;
根据所述锁占用请求消息对所述存储区域锁的占用信息进行管理;
所述共享存储区域访问方法还包括:
接收处理器核发送的锁占用信息查询消息,所述锁占用信息查询消息包括所述存储区域锁的地址;
根据所述存储区域锁的地址将对应的存储区域锁的占用信息发送给所述处理器核,以使所述处理器核对所述占用信息进行判断,并在判断出所述占用信息与所述处理器核的标识一致时对所述共享存储区域进行访问。
7.根据权利要求6所述的共享存储区域访问方法,其特征在于,所述根据所述锁占用请求消息对所述存储区域锁的占用信息进行管理,包括:
根据所述存储区域锁的地址获取所述存储区域锁的占用信息;
判断所述占用信息是否为空;
当判断出所述占用信息为空时,将所述处理器核的标识写入所述占用信息,以锁定所述存储区域锁。
8.根据权利要求7所述的共享存储区域访问方法,其特征在于,所述根据所述锁占用请求消息对所述存储区域锁的占用信息进行管理,还包括:
当判断出所述占用信息不为空时,判断所述占用信息与所述处理器核的标识是否一致;
当判断出所述占用信息与所述处理器核的标识一致时,将所述占用信息清空,以解除所述存储区域锁的锁定状态。
9.一种锁管理器,其特征在于,包括访问消息接收模块和锁管理模块;其中,
消息接收模块,用于接收处理器核发送的锁占用请求消息,所述锁占用请求消息包括存储区域锁的地址和所述处理器核的标识,所述存储区域锁用于管理共享存储区域的访问;
锁管理模块,用于根据所述锁占用请求消息对所述存储区域锁的占用信息进行管理;
所述锁管理器还包括消息发送模块:
所述消息接收模块,还用于接收处理器核发送的锁占用信息查询消息,所述锁占用信息查询消息包括所述存储区域锁的地址;
所述消息发送模块,用于根据所述存储区域锁的地址将对应的存储区域锁的占用信息发送给所述处理器核,以使所述处理器核对所述占用信息进行判断,并在判断出所述占用信息与所述处理器核的标识一致时对所述共享存储区域进行访问。
10.根据权利要求9所述的锁管理器,其特征在于,所述锁管理模块包括:
占用信息获取单元,用于根据所述存储区域锁的地址获取所述存储区域锁的占用信息;
占用信息判断单元,用于判断所述占用信息是否为空;当判断出所述占用信息为空时,触发占用信息写入单元的操作;
占用信息写入单元,用于将所述处理器核的标识写入所述占用信息,以锁定所述存储区域锁。
11.根据权利要求10所述的锁管理器,其特征在于,所述占用信息判断单元,还用于当判断出所述占用信息不为空时,判断所述占用信息与所述处理器核的标识是否一致,若一致,则触发占用信息清空单元的操作;
所述锁管理模块还包括:占用信息清空单元,用于将所述占用信息清空,以解除所述存储区域锁的锁定状态。
CN201410315834.1A 2014-07-03 2014-07-03 处理器、共享存储区域访问方法和锁管理器 Active CN104063331B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410315834.1A CN104063331B (zh) 2014-07-03 2014-07-03 处理器、共享存储区域访问方法和锁管理器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410315834.1A CN104063331B (zh) 2014-07-03 2014-07-03 处理器、共享存储区域访问方法和锁管理器

Publications (2)

Publication Number Publication Date
CN104063331A CN104063331A (zh) 2014-09-24
CN104063331B true CN104063331B (zh) 2017-04-12

Family

ID=51551052

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410315834.1A Active CN104063331B (zh) 2014-07-03 2014-07-03 处理器、共享存储区域访问方法和锁管理器

Country Status (1)

Country Link
CN (1) CN104063331B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104536916B (zh) * 2014-12-18 2018-04-10 华为技术有限公司 一种多核***的仲裁方法及多核***
CN109471901B (zh) * 2017-08-18 2021-12-07 北京国双科技有限公司 一种数据同步方法及装置
CN111258935B (zh) * 2018-11-30 2022-01-25 上海寒武纪信息科技有限公司 数据传输装置和方法
CN111727414B (zh) * 2018-12-27 2023-09-15 配天机器人技术有限公司 机器人控制方法、控制***、机器人和存储装置
CN109739443B (zh) * 2019-01-08 2022-02-18 郑州云海信息技术有限公司 一种ssd混合读写的方法、装置、设备及存储介质
CN111832363A (zh) * 2019-04-22 2020-10-27 珠海格力电器股份有限公司 一种基于人脸识别的考勤方法、装置、***及电子设备
CN110347635B (zh) * 2019-06-28 2021-08-06 西安理工大学 一种基于多层总线的异构多核微处理器
CN112905365B (zh) * 2019-10-30 2024-02-13 支付宝(杭州)信息技术有限公司 一种数据处理方法、装置、设备及介质
CN112860740B (zh) * 2019-11-27 2022-12-20 金篆信科有限责任公司 一种触发器实现的方法和装置
CN111026336A (zh) * 2019-12-26 2020-04-17 中国建设银行股份有限公司 一种san存储***的自动化运维方法及运维***
CN112395142B (zh) * 2020-11-30 2023-05-26 重庆紫光华山智安科技有限公司 数据管理方法、装置、电子设备及存储介质
CN115033394B (zh) * 2022-05-23 2023-05-26 深圳市航顺芯片技术研发有限公司 一种多核mcu访问共享外设的控制***及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1758229A (zh) * 2005-10-28 2006-04-12 中国人民解放军国防科学技术大学 异构多核微处理器局部空间共享存储方法
CN101802798A (zh) * 2007-06-22 2010-08-11 密普斯技术股份有限公司 在多核处理器中使用干预消息来避免活锁
CN102566979A (zh) * 2011-12-02 2012-07-11 华为技术有限公司 实现自适应锁的方法和装置以及多核处理器***
CN103488563A (zh) * 2013-09-05 2014-01-01 龙芯中科技术有限公司 并行程序的数据竞争检测方法、装置及多核处理***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1758229A (zh) * 2005-10-28 2006-04-12 中国人民解放军国防科学技术大学 异构多核微处理器局部空间共享存储方法
CN101802798A (zh) * 2007-06-22 2010-08-11 密普斯技术股份有限公司 在多核处理器中使用干预消息来避免活锁
CN102566979A (zh) * 2011-12-02 2012-07-11 华为技术有限公司 实现自适应锁的方法和装置以及多核处理器***
CN103488563A (zh) * 2013-09-05 2014-01-01 龙芯中科技术有限公司 并行程序的数据竞争检测方法、装置及多核处理***

Also Published As

Publication number Publication date
CN104063331A (zh) 2014-09-24

Similar Documents

Publication Publication Date Title
CN104063331B (zh) 处理器、共享存储区域访问方法和锁管理器
CN101669082B (zh) 集群化多个独立的高速pci层次结构的装置和方法
TWI740097B (zh) 多層記憶體系統中之遠程直接記憶體存取
CN100375469C (zh) 在物理端口上模拟多个逻辑端口的方法和装置
CN100458757C (zh) 嵌入式实时操作***中多核处理器的核间通信方法及装置
CN101430651B (zh) 一种异构多核体系中外设的访问方法
TW201939305A (zh) 主機系統及其方法和加速模組
CN101477511B (zh) 一种实现多操作***共享存储介质的方法和装置
CN106598480B (zh) 具有接口控制机制的电子***及其操作方法
CN100361096C (zh) 交叉比较***和方法
CN106354544A (zh) 虚拟机创建方法、***以及主机
CN105242872B (zh) 一种面向虚拟集群的共享存储***
JPH09231123A (ja) データ完全性を維持するためのスピン・バッファおよび方法
CN102291423A (zh) 控制物理层芯片的方法及控制电路
CN111125049B (zh) 基于rdma与非易失内存的分布式文件数据块读写方法及***
EP2082323A1 (en) Reallocation of memory through global addressing
CN108319496A (zh) 资源访问方法、业务服务器、分布式***及存储介质
CN103827842A (zh) 向控制器存储器空间写入消息
CN106663062A (zh) 在事务性中间件机器环境中提供分布式事务锁的***和方法
CN104937564B (zh) 组表格的数据冲洗
CN105335306B (zh) 一种内存控制方法和装置
CN102307134A (zh) 用于运行平台功率状态的方法、设备和***
CN108667903B (zh) 数据发送方法、装置和存储介质
CN101027634B (zh) 数据传送机制
CN1979408A (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
GR01 Patent grant
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee after: Loongson Zhongke Technology Co.,Ltd.

Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd.