CN102937915B - 用于多核处理器的硬件锁实现方法及装置 - Google Patents

用于多核处理器的硬件锁实现方法及装置 Download PDF

Info

Publication number
CN102937915B
CN102937915B CN201210493920.2A CN201210493920A CN102937915B CN 102937915 B CN102937915 B CN 102937915B CN 201210493920 A CN201210493920 A CN 201210493920A CN 102937915 B CN102937915 B CN 102937915B
Authority
CN
China
Prior art keywords
weights
lock request
request queue
counter
lock
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
CN201210493920.2A
Other languages
English (en)
Other versions
CN102937915A (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.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201210493920.2A priority Critical patent/CN102937915B/zh
Publication of CN102937915A publication Critical patent/CN102937915A/zh
Application granted granted Critical
Publication of CN102937915B publication Critical patent/CN102937915B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Multi Processors (AREA)

Abstract

本发明公开了一种用于多核处理器的硬件锁实现方法及装置,方法步骤如下:1)建立与处理器核一一对应的锁请求队列,初始化设置各个锁请求队列的权值,所述锁请求队列按照先入先出的原则分别缓存各处理器核发送的硬件锁访问请求;2)选择权值最小且请求有效的锁请求队列获得服务,将锁请求队列的权值在获得服务后递增,同时从获得服务的锁请求队列中选出最先进入的硬件锁访问请求并执行锁存储空间访问操作,然后返回应答报文;装置包括锁请求队列单元、权值计数逻辑单元、最小权值判断逻辑、队列选择器、硬件锁存储空间访问逻辑。本发明具有能够使各处理器核获取硬件锁的机会均衡、硬件实现代价小、扩展性好、结构简单、易于实现的优点。

Description

用于多核处理器的硬件锁实现方法及装置
技术领域
本发明涉及多核微处理器设计领域,具体涉及一种用于多核处理器的硬件锁实现方法及装置。
背景技术
锁同步是软件系统中多个任务间广泛使用的同步方法,而且现代软件对锁的访问频度很高,因此提高锁的访问效率,对于提高软件性能具有较大的好处。硬件锁通常是现代微处理器中提高锁访问效率的常用手段之一。硬件锁通常拥有一定容量的集成在处理器内的存储单元,访问速度快,而且与Cache等多层次存储系统隔离,因此避免了频繁的Cache失效、替换等操作,故相比利用存储系统实现的软件锁,硬件锁拥有更高的访问效率。
硬件锁的存储是集中式的,在处理器中位于一个固定的位置。在现代多核微处理器中,受物理布局和体系结构的限制,各个处理器核访问硬件锁时经过的路径是不同的,各个核访问同一硬件锁的执行速度通常是不平衡的,这会导致硬件锁的同步时间增长。
如图1所示,现有技术含有硬件锁部件的多核处理器共有N+1个内核(Core0~CoreN),每两个内核共用一个路由器(Router),多级路由器将所有内核连接在一起,并共享同一个硬件锁。因为到硬件锁的路由器级数的不同,各个内核访问硬件锁的延迟是不一致的,例如Core2相对于Core0需要多经过一级路由器才能访问到硬件锁,其访问的绝对延迟必然大于Core0,这样的结构导致不同的处理器核之间访问硬件锁绝对延迟的不平衡。虽然软件上各个核发出锁访问的机率相同,但是硬件上绝对访问延迟的不同导致了锁访问不平衡,绝对访问延迟短的核(如Core0)能够频繁地访问锁,而绝对访问延迟长的核(如CoreN)则很难获取锁,而锁同步机制在各个核访问锁的次数均衡的情况下才能拥有最高的效率,故上述情况将导致锁同步的时间增大,降低硬件锁的应用效能。如何实现各个核对硬件锁的访问次数的平衡以提高锁同步应用的性能,成为了多核微处理器设计领域关于硬件锁设计的关键技术问题。
发明内容
本发明要解决的技术问题是提供一种能够使各处理器核获取硬件锁的机会均衡、硬件实现代价小、扩展性好、结构简单、易于实现的用于多核处理器的硬件锁实现方法及装置。
为了解决上述技术问题,本发明采用的技术方案为:
一种用于多核处理器的硬件锁实现方法,其实施步骤如下:
1)建立与处理器核一一对应的锁请求队列,初始化设置各个锁请求队列的权值,通过所述锁请求队列按照先入先出的原则分别缓存各处理器核发送的硬件锁访问请求;
2)获取锁请求队列的最小权值,选择最小权值对应的锁请求队列获得服务,将锁请求队列的权值在获得服务后递增,同时从获得服务的锁请求队列中选出最先进入的硬件锁访问请求执行锁存储空间访问操作并返回应答报文。
作为本发明用于多核处理器的硬件锁实现方法的进一步改进:
所述步骤1)中初始化设置各个锁请求队列的权值的详细步骤如下:
1.1)初始化设置各个锁请求队列的权值计数器和权值递增值;
1.2)将权值计数器的值初始化为权值递增值作为锁请求队列的权值。
所述步骤2)中获取锁请求队列的最小权值具体是指采用二叉树结构获取锁请求队列的最小权值。
所述采用二叉树结构获取锁请求队列的最小权值的详细步骤如下:
2.1)将各个锁请求队列的权值和权编号分别输入二叉树的末梢节点;
2.2)所述二叉树的每一个节点将子节点输入的权项的权值进行比较并选择权值较小的权项作为输出至父节点的权项,最终由所述二叉树的根节点将最终选择得到的权项作为最终选择得到的权值最小的锁请求队列;
2.3)选择最小权值对应的锁请求队列获得服务。
所述步骤2)中将锁请求队列的权值在获得服务后递增的详细步骤如下:将有效的锁请求队列的权值在获得服务后的下一个周期将权值递增值累加到对应的权值计数器作为新的权值;同时判断获得服务的锁请求队列的权值计数器的值是否等于权值计数器的最大计数值,如果是则将所有锁请求队列的权值计数器初始化为权值递增值。
本发明还提供一种用于多核处理器的硬件锁装置,包括:
锁请求队列单元,包含多个与处理器核一一对应的锁请求队列,所述锁请求队列按照先入先出的原则分别缓存各处理器核发送的硬件锁访问请求;
权值计数逻辑单元,用于初始化设置各个锁请求队列的权值,并将锁请求队列的权值在获得服务后递增;
最小权值判断逻辑,用于获取锁请求队列的最小权值;
队列选择器,用于选择权值最小且请求有效的锁请求队列获得服务;
硬件锁存储空间访问逻辑,用于从获得服务的锁请求队列中选出最先进入的硬件锁访问请求执行锁存储空间访问操作并返回应答报文。
作为本发明用于多核处理器的硬件锁装置的进一步改进:
所述权值计数逻辑单元包括与锁请求队列一一对应的多个权值计数逻辑,所述权值计数逻辑包括步进寄存器、加法器、第一选择器、权值计数器、第二选择器和比较器,所述步进寄存器用于存储对应锁请求队列的权值递增值;所述权值计数器用于存储对应锁请求队列的权值;当对应锁请求队列的权值计数器尚未初始化或者收到全部计数器复位命令时,第一选择器将权值递增值写入权值计数器作为对应锁请求队列的权值并通过第二选择器输出;当对应锁请求队列为在上一个周期被选择的权值最小的锁请求队列时,加法器将对应锁请求队列的权值计数器加上步进寄存器存储的权值递增值后写入权值计数器作为对应锁请求队列的权值并通过第二选择器输出;当对应锁请求队列为在上一个周期未被选择的权值最小的锁请求队列时,第二选择器直接读取对应锁请求队列的权值计数器的数值作为对应锁请求队列的权值输出;且所述第二选择器在对应锁请求队列无效时优先选择权值计数器的最大计数值作为对应锁请求队列的权值输出;所述比较器则在权值计数器的数值等于权值计数器的最大计数值时向各个权值计数逻辑发送全部计数器复位命令。
所述最小权值判断逻辑为二叉树结构,所述二叉树结构的末梢节点的输入端分别与各个权值计数逻辑相连,所述二叉树结构的根节点的输出端与队列选择器相连,所述二叉树结构的末梢节点分别获取各个锁请求队列的权值和权编号,所述二叉树结构的每一个节点将两个子节点输入的权项的权值进行比较并选择权值较小的权项作为输出至父节点的权项,并由所述二叉树结构的根节点将最终选择得到的权项作为最终选择得到的最小权值并输出给队列选择器。
本发明用于多核处理器的硬件锁实现方法具有下述优点:
1、本发明通过锁请求队列分别缓存各处理器核发送的硬件锁访问请求、计算每一个锁请求队列的权值并选择权值最小且请求有效的锁请求队列,并从中选出最先进入的硬件锁访问请求,能够为多核处理器中不同位置的处理器核提供基本一致的请求服务概率,能够使各处理器核获取硬件锁的机会均衡,有利于提升锁同步效率,避免了因锁请求服务次数的不平衡而导致的同步效率低下问题,同时本实现方法具有硬件实现代价小的优点。
2、本发明实现的硬件锁部件允许各个核访问该部件的绝对延迟不同,但仍具有接近平衡访问时的锁应用效果,因此该部件在多核处理器中的物理位置是十分灵活的,并不要求处于距离各核的路径延迟相同,而且对于各种核数的处理器均适用,具有良好的可扩展特性。
3、本发明用于实现平衡访问的逻辑结构简单,易于实现。
本发明用于多核处理器的硬件锁装置为与本发明用于多核处理器的硬件锁实现方法相对应的装置,因此与用于多核处理器的硬件锁实现方法相同的技术效果,在此不再赘述。
附图说明
图1为现有技术包含硬件锁的多核处理器的内部结构示意图。
图2为本发明实施例方法的流程示意图。
图3为本发明实施例装置的框架结构示意图。
图4为本发明实施例中权值计数逻辑的框架结构示意图。
图5为本发明实施例中二叉树结构的判断逻辑结构示意图。
图例说明:1、锁请求队列单元;2、权值计数逻辑单元;21、权值计数逻辑;211、步进寄存器;212、加法器;213、第一选择器;214、权值计数器;215、第二选择器;216、比较器;3、最小权值判断逻辑;4、队列选择器;5、硬件锁存储空间访问逻辑。
具体实施方式
如图2所示,本实施例用于多核处理器的硬件锁实现方法的实施步骤如下:
1)建立与处理器核一一对应的锁请求队列,初始化设置各个锁请求队列的权值,通过所述锁请求队列按照先入先出的原则分别缓存各处理器核发送的硬件锁访问请求;
2)获取锁请求队列的最小权值,选择最小权值对应的锁请求队列获得服务,将锁请求队列的权值在获得服务后递增,同时从获得服务的锁请求队列中选出最先进入的硬件锁访问请求执行锁存储空间访问操作并返回应答报文。
本实施例中,步骤1)中初始化设置各个锁请求队列的权值的详细步骤如下:
1.1)初始化设置各个锁请求队列的权值计数器和权值递增值;
1.2)将权值计数器的值初始化为权值递增值作为锁请求队列的权值。
步骤2)中获取锁请求队列的最小权值具体是指采用二叉树结构获取锁请求队列的最小权值。本实施例中,采用二叉树结构获取锁请求队列的最小权值的详细步骤如下:
2.1)将各个锁请求队列的权值和权编号分别输入二叉树的末梢节点;
2.2)所述二叉树的每一个节点将子节点输入的权项的权值进行比较并选择权值较小的权项作为输出至父节点的权项,最终由所述二叉树的根节点将最终选择得到的权项作为最终选择得到的权值最小的锁请求队列;
2.3)选择最小权值对应的锁请求队列获得服务。
本实施例中,步骤2)中将锁请求队列的权值在获得服务后递增的详细步骤如下:将有效的锁请求队列的权值在获得服务后的下一个周期将权值递增值累加到对应的权值计数器作为新的权值;同时判断获得服务的锁请求队列的权值计数器的值是否等于权值计数器的最大计数值,如果是则将所有锁请求队列的权值计数器初始化为权值递增值。
如图3所示,本实施例用于多核处理器的硬件锁装置包括:
锁请求队列单元1,包含多个与处理器核一一对应的锁请求队列,所述锁请求队列按照先入先出的原则分别缓存各处理器核发送的硬件锁访问请求;
权值计数逻辑单元2,用于初始化设置各个锁请求队列的权值,并将锁请求队列的权值在获得服务后递增;
最小权值判断逻辑3,用于获取锁请求队列的最小权值;
队列选择器4,用于选择权值最小且请求有效的锁请求队列获得服务;
硬件锁存储空间访问逻辑5,用于从获得服务的锁请求队列中选出最先进入的硬件锁访问请求执行锁存储空间访问操作并返回应答报文。
锁请求队列单元1拥有与处理器核数相同的锁请求队列(图中为队列0~队列N,共计N+1个锁请求队列,N+1为多核处理器的处理器核数),其主要功能是将锁访问请求的报文分发到相应的锁请求队列中,分发的原则是依据报文中的内核编号。锁请求队列内的请求按照先进先出的原则顺序执行,能够保证同一个核对硬件锁访问的存储一致性。不同锁请求队列间的请求则是乱序执行的,例如由不同的核发出的A、B两个先后到达的锁访问请求,如果分别进入了不同的锁请求队列,那么B可能先于A被服务。
权值计数逻辑单元2是支持硬件锁平衡访问特性的核心部件。如图4所示,本实施例中的权值计数逻辑单元2包括与锁请求队列一一对应的多个权值计数逻辑21,权值计数逻辑21包括步进寄存器211、加法器212、第一选择器213、权值计数器214、第二选择器215和比较器216。步进寄存器211用于存储对应锁请求队列的权值递增值,步进寄存器211决定该队列被访问后权值计数器214的步进累加值;权值计数器214用于存储对应锁请求队列的权值;当对应锁请求队列的权值计数器214尚未初始化或者收到全部计数器复位命令时,第一选择器213将权值递增值写入权值计数器214作为对应锁请求队列的权值并通过第二选择器215输出;当对应锁请求队列为在上一个周期被选择的权值最小的锁请求队列时,加法器212将对应锁请求队列的权值计数器214加上步进寄存器211存储的权值递增值后写入权值计数器214作为对应锁请求队列的权值并通过第二选择器215输出;当对应锁请求队列为在上一个周期未被选择的权值最小的锁请求队列时,第二选择器215直接读取对应锁请求队列的权值计数器214的数值作为对应锁请求队列的权值输出;且第二选择器215在对应锁请求队列无效时优先选择权值计数器214的最大计数值作为对应锁请求队列的权值输出;比较器216则在权值计数器214的数值等于权值计数器214的最大计数值时向各个权值计数逻辑21发送全部计数器复位命令。
本实施例的权值计数逻辑单元2对每路锁请求队列都有对应的权值计数逻辑21(图中为权值计数逻辑0~权值计数逻辑N,共计N+1个权值计数逻辑21,N+1为多核处理器的处理器核数),该权值计数逻辑21包含有权值计数器214和步进寄存器211,权值计数器214在每次锁请求队列被选择后累加步进寄存器211。步进寄存器211的值与内核访问硬件锁的绝对路径延迟相关,延迟越大的核对应的步进寄存器值越小,反之则越大;最小权值判断逻辑3按照二叉树型结构组织,以尽量小的逻辑延迟实现最小权值的判断,生成对当前权值最小的有效队列的选择信号;硬件锁存储空间访问逻辑5实现对被选出的锁请求报文的读写服务,并返回对应的写应答或者读应答报文。权值计数逻辑单元2在同步复位、队列被选择、请求队列有效这三根信号的控制下,步进寄存器211、加法器212、第一选择器213、权值计数器214、第二选择器215和比较器216相互配合,共同生成最终输出的当前权值和全部计数器复位信号。
本实施例中,权值计数逻辑单元2的详细工作过程如下:
A1)硬件锁部件复位或者收到计数器复位信号后,权值计数器214的值初始化为对应的步进寄存器211的值,同步复位信号有效,第一选择器213选择通道1x。这里步进寄存器211的值与对应核访问硬件锁的绝对延迟有关,延迟越大的核对应的步进值越小,反之则越大,具体步进值的选择可在实现中根据实际情况调整;
A2)相关锁请求队列被选择并执行后,队列被选择信号有效,第一选择器213选择通道01,权值计数器214在下一个时钟周期到来后变为其原值与步进寄存器211的累加值;
A3)权值计数器214的权值若超出最大计数值,则比较器216会产生全部计数器复位信号,复位硬件锁部件中的全部权值计数器214;
A4)相关锁请求队列有效时,当前权值通过第二选择器215选择通道1,即权值计数器214的值,若相关锁请求队列无效,则当前权值选择通道0,固定为最大计数值。
权值计数器214累加超过最大计数值后,产生的全部计数器复位信号会影响上述访问平衡方法的有效性,因此应尽量减小溢出发生的次数,故权值计数器214的位宽应较大,一般选择为32位以上。
最小权值判断逻辑3负责生成选择当前权值最小的有效请求队列的控制信号。本实施例中,最小权值判断逻辑3为二叉树结构,二叉树结构的末梢节点的输入端分别与各个权值计数逻辑21相连,二叉树结构的根节点的输出端与队列选择器4相连,二叉树结构的末梢节点分别获取各个锁请求队列的权值和权编号,所述二叉树结构的每一个节点将两个子节点输入的权项的权值进行比较并选择权值较小的权项作为输出至父节点的权项,并由所述二叉树结构的根节点将最终选择得到的权项作为最终选择得到的最小权值并输出给队列选择器4。最小权值判断逻辑3为二叉树结构,能够减小逻辑级数、缩短路径延迟、加快逻辑处理的时间。
二叉树结构的末梢节点分别获取各个锁请求队列的权值和权编号,二叉树结构的每一个节点将两个子节点输入的权项的权值进行比较并选择权值较小的权项作为输出至父节点的权项,并由二叉树结构的根节点将最终选择得到的权项作为最终选择得到的权值最小且请求有效的锁请求队列。图中树叶上任意一个权x包含有两部分值:当前权值和权的编号,比较逻辑仅比较权值,但选择较小的结果时要包含权的编号,如此逐级比较,最后一级(树根)选出的结果即是最小的有效请求队列的编号,此编号将被传递到队列选择器4来选择目标队列中的请求。这里需要注意的是,如果某请求队列内容为空,那么对应的当前权值应置为计数器的最大值,否则可能选出无效的队列,导致逻辑错误。如图5所示,两个子节点输入的权项的权值(权0和权1)进行比较并选择权值较小的权项作为输出至父节点的权项(权值为Min0),以此类推向根节点上溯,最终得出整个二叉树结构中权值最小的权项(权值为Mink)。
队列选择器4负责从所有锁请求队列中读出指定队列的当前锁访问请求的报文,选择信号为最小权值判断逻辑3输出的控制信号,读出的报文被传递给硬件锁存储空间访问逻辑5。
硬件锁存储空间访问逻辑5负责服务锁存储空间的访问,该逻辑根据报文的读写属性,执行相应的读写功能,并返回写应答或者读应答报文,其逻辑结构与基本的存储空间访问基本一致。
本实施例用于多核处理器的硬件锁装置的工作步骤如下:
B1)建立锁请求队列单元1,锁请求队列单元1包含与处理器核一一对应的锁请求队列,权值计数逻辑单元2初始化设置各个锁请求队列的权值,通过所述锁请求队列按照先入先出的原则分别缓存各处理器核发送的硬件锁访问请求;
B2)最小权值判断逻辑3获取锁请求队列的最小权值,队列选择器4选择最小权值对应的锁请求队列获得服务,权值计数逻辑单元2将锁请求队列的权值在获得服务后递增,同时硬件锁存储空间访问逻辑5从获得服务的锁请求队列中选出最先进入的硬件锁访问请求执行锁存储空间访问操作并返回应答报文。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (8)

1.一种用于多核处理器的硬件锁实现方法,其特征在于其实施步骤如下:
1)建立与处理器核一一对应的锁请求队列,初始化设置各个锁请求队列的权值,通过所述锁请求队列按照先入先出的原则分别缓存各处理器核发送的硬件锁访问请求;
2)获取锁请求队列的最小权值,选择最小权值对应的锁请求队列获得服务,将锁请求队列的权值在获得服务后递增,同时从获得服务的锁请求队列中选出最先进入的硬件锁访问请求并执行锁存储空间访问操作,然后返回应答报文。
2.根据权利要求1所述的用于多核处理器的硬件锁实现方法,其特征在于,所述步骤1)中初始化设置各个锁请求队列的权值的详细步骤如下:
1.1)初始化设置各个锁请求队列的权值计数器和权值递增值;
1.2)将权值计数器的值初始化为权值递增值作为锁请求队列的权值。
3.根据权利要求2所述的用于多核处理器的硬件锁实现方法,其特征在于:所述步骤2)中获取锁请求队列的最小权值具体是指采用二叉树结构获取锁请求队列的最小权值。
4.根据权利要求3所述的用于多核处理器的硬件锁实现方法,其特征在于:所述采用二叉树结构获取锁请求队列的最小权值的详细步骤如下:
2.1)将各个锁请求队列的权值和权编号分别输入二叉树的末梢节点;
2.2)所述二叉树的每一个节点将子节点输入的权项的权值进行比较并选择权值较小的权项作为输出至父节点的权项,最终由所述二叉树的根节点将最终选择得到的权项作为最终选择得到的权值最小的锁请求队列;
2.3)选择最小权值对应的锁请求队列获得服务。
5.根据权利要求4所述的用于多核处理器的硬件锁实现方法,其特征在于:所述步骤2)中将锁请求队列的权值在获得服务后递增的详细步骤如下:将有效的锁请求队列的权值在获得服务后的下一个周期将权值递增值累加到对应的权值计数器作为新的权值;同时判断获得服务的锁请求队列的权值计数器的值是否等于权值计数器的最大计数值,如果是则将所有锁请求队列的权值计数器初始化为权值递增值。
6.一种用于多核处理器的硬件锁装置,其特征在于,包括:
锁请求队列单元(1),包含多个与处理器核一一对应的锁请求队列,所述锁请求队列按照先入先出的原则分别缓存各处理器核发送的硬件锁访问请求;
权值计数逻辑单元(2),用于初始化设置各个锁请求队列的权值,并将锁请求队列的权值在获得服务后递增;
最小权值判断逻辑(3),用于获取锁请求队列的最小权值;
队列选择器(4),用于选择权值最小且请求有效的锁请求队列获得服务;
硬件锁存储空间访问逻辑(5),用于从获得服务的锁请求队列中选出最先进入的硬件锁访问请求执行锁存储空间访问操作并返回应答报文。
7.根据权利要求6所述的用于多核处理器的硬件锁装置,其特征在于:所述权值计数逻辑单元(2)包括与锁请求队列一一对应的多个权值计数逻辑(21),所述权值计数逻辑(21)包括步进寄存器(211)、加法器(212)、第一选择器(213)、权值计数器(214)、第二选择器(215)和比较器(216),所述步进寄存器(211)用于存储对应锁请求队列的权值递增值;所述权值计数器(214)用于存储对应锁请求队列的权值;当对应锁请求队列的权值计数器(214)尚未初始化或者收到全部计数器复位命令时,第一选择器(213)将权值递增值写入权值计数器(214)作为对应锁请求队列的权值并通过第二选择器(215)输出;当对应锁请求队列为在上一个周期被选择的权值最小的锁请求队列时,加法器(212)将对应锁请求队列的权值计数器(214)加上步进寄存器(211)存储的权值递增值后写入权值计数器(214)作为对应锁请求队列的权值并通过第二选择器(215)输出;当对应锁请求队列为在上一个周期未被选择的权值最小的锁请求队列时,第二选择器(215)直接读取对应锁请求队列的权值计数器(214)的数值作为对应锁请求队列的权值输出;且所述第二选择器(215)在对应锁请求队列无效时优先选择权值计数器(214)的最大计数值作为对应锁请求队列的权值输出;所述比较器(216)则在权值计数器(214)的数值等于权值计数器(214)的最大计数值时向各个权值计数逻辑(21)发送全部计数器复位命令。
8.根据权利要求6或7所述的用于多核处理器的硬件锁装置,其特征在于:所述最小权值判断逻辑(3)为二叉树结构,所述二叉树结构的末梢节点的输入端分别与各个权值计数逻辑(21)相连,所述二叉树结构的根节点的输出端与队列选择器(4)相连,所述二叉树结构的末梢节点分别获取各个锁请求队列的权值和权编号,所述二叉树结构的每一个节点将两个子节点输入的权项的权值进行比较并选择权值较小的权项作为输出至父节点的权项,并由所述二叉树结构的根节点将最终选择得到的权项作为最终选择得到的最小权值并输出给队列选择器(4)。
CN201210493920.2A 2012-11-28 2012-11-28 用于多核处理器的硬件锁实现方法及装置 Active CN102937915B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210493920.2A CN102937915B (zh) 2012-11-28 2012-11-28 用于多核处理器的硬件锁实现方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210493920.2A CN102937915B (zh) 2012-11-28 2012-11-28 用于多核处理器的硬件锁实现方法及装置

Publications (2)

Publication Number Publication Date
CN102937915A CN102937915A (zh) 2013-02-20
CN102937915B true CN102937915B (zh) 2016-02-24

Family

ID=47696814

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210493920.2A Active CN102937915B (zh) 2012-11-28 2012-11-28 用于多核处理器的硬件锁实现方法及装置

Country Status (1)

Country Link
CN (1) CN102937915B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104102547B (zh) * 2014-07-25 2017-12-26 珠海全志科技股份有限公司 多处理器系统的同步方法及其同步装置
CN104182360B (zh) * 2014-08-18 2017-12-08 记忆科技(深圳)有限公司 多核环境的跟踪日志输出处理方法及系统
CN105095144B (zh) * 2015-07-24 2018-08-24 中国人民解放军国防科学技术大学 基于栅栏和锁的多核Cache一致性维护的方法和装置
US10911341B2 (en) * 2018-11-19 2021-02-02 Cisco Technology, Inc. Fabric data plane monitoring

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1038712A (zh) * 1988-03-10 1990-01-10 霍尼韦尔有限公司 用于多任务操作环境的操作系统
CN1606301A (zh) * 2004-07-09 2005-04-13 清华大学 一种共享资源访问的调度控制方法及装置
CN101510164A (zh) * 2009-03-25 2009-08-19 北京中星微电子有限公司 一种多业务调度方法、装置与系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1038712A (zh) * 1988-03-10 1990-01-10 霍尼韦尔有限公司 用于多任务操作环境的操作系统
CN1606301A (zh) * 2004-07-09 2005-04-13 清华大学 一种共享资源访问的调度控制方法及装置
CN101510164A (zh) * 2009-03-25 2009-08-19 北京中星微电子有限公司 一种多业务调度方法、装置与系统

Also Published As

Publication number Publication date
CN102937915A (zh) 2013-02-20

Similar Documents

Publication Publication Date Title
CN111367495B (zh) 一种异步先入先出的数据缓存控制器
CN109564556B (zh) 具有条纹和读取/写入事务管理的存储器控制器仲裁器
CN106992770B (zh) 时钟电路及其传输时钟信号的方法
US6460107B1 (en) Integrated real-time performance monitoring facility
US9053058B2 (en) QoS inband upgrade
US7200688B2 (en) System and method asynchronous DMA command completion notification by accessing register via attached processing unit to determine progress of DMA command
CN102937915B (zh) 用于多核处理器的硬件锁实现方法及装置
US20020178311A1 (en) Quantized queue length arbiter
CN103744644B (zh) 采用四核结构搭建的四核处理器系统及数据交换方法
CN103597460A (zh) 用于利用存储命令的系统和方法
CN100576140C (zh) 产生数字信号处理器和存储器的时钟信号的电路和方法
CN102929836A (zh) 一种航天专用asic芯片系统
WO2009105295A1 (en) Adjustable pipeline in a memory circuit
US20040006724A1 (en) Network processor performance monitoring system and method
KR101334111B1 (ko) 쿼드 데이터 레이트(qdr) 제어기 및 그의 실현방법
Fenwick et al. The AlphaServer 8000 series: High-end server platform development
US12074800B2 (en) Memory control system and memory control method
Xia et al. Asynchronous communication mechanisms using self-timed circuits
US11561694B2 (en) Arithmetic processor and arithmetic apparatus
CN101667448B (zh) 存储器存取控制装置及其相关控制方法
KR100358178B1 (ko) 공유메모리 스위치에서의 멀티캐스팅 장치 및 그 방법
WO2023278176A1 (en) Work queue for communication between a producer and a consumer
CN110618950A (zh) 一种异步fifo读写控制电路及方法、可读存储介质及终端
CN209120216U (zh) 一种通信设备
Naruko et al. FOLCS: A lightweight implementation of a cycle-accurate NoC simulator on FPGAs

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